(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-17
(45)【発行日】2024-09-26
(54)【発明の名称】ユーザがナビゲーション中に誤りを犯す可能性が高いときにあらかじめ生成される代替のナビゲーション進路
(51)【国際特許分類】
G01C 21/34 20060101AFI20240918BHJP
G16Y 10/40 20200101ALI20240918BHJP
G16Y 20/20 20200101ALI20240918BHJP
G16Y 40/60 20200101ALI20240918BHJP
【FI】
G01C21/34
G16Y10/40
G16Y20/20
G16Y40/60
(21)【出願番号】P 2022529891
(86)(22)【出願日】2020-03-12
(86)【国際出願番号】 US2020022353
(87)【国際公開番号】W WO2021183128
(87)【国際公開日】2021-09-16
【審査請求日】2022-07-22
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】レイチェル・ハウスマン
(72)【発明者】
【氏名】コリン・アーウィン
【審査官】佐々木 佳祐
(56)【参考文献】
【文献】特表2015-517666(JP,A)
【文献】特開2012-233725(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G01C 21/00-25/00
G16Y 10/40
G16Y 20/20
G16Y 40/60
(57)【特許請求の範囲】
【請求項1】
ルートを進んでいくときのユーザによる過誤の確率を予測するための方法であって、
1つまたは複数のプロセッサにおいて、ルートを介した出発地から目的地へのナビゲーション進路に対するユーザによる要求を受信するステップと、
前記1つまたは複数のプロセッサによって、複数のナビゲーション命令を含むナビゲーション進路のセットを前記ユーザに提供するステップであって、各ナビゲーション命令が操作および前記操作のための前記ルート上の場所を含む、ステップと、
前記ルート上の少なくとも1つの今度の操作に対して、前記1つまたは複数のプロセッサによって、前記ユーザが前記操作を誤って実行する確率を決定するステップと、
前記確率が閾値の確率を超えると決定したことに応答して、前記操作のための前記場所に前記ユーザが到達する前に、前記1つまたは複数のプロセッサによって、代替のルートを介して前記ルートから外れた場所から前記目的地に進んでいくためのナビゲーション進路の代替のセットを生成するステップと、
前記1つまたは複数のプロセッサによって、前記ユーザが前記操作のための前記場所に到達した後の前記ユーザの現在地を決定するステップと、
前記1つまたは複数のプロセッサによって、前記ユーザの前記現在地に基づいて前記ユーザが前記操作を誤って実行したと決定するステップと、
前記1つまたは複数のプロセッサによって、
前記代替のルートを介して前記ユーザの前記現在地から前記目的地に進んでいくためのナビゲーション進路の前記代替のセットを提供するステップであって、ナビゲーション進路の前記代替のセットは、前記操作を実行することを試みた後に前記ルート上の場所から前記ルートから外れた場所に前記ユーザが移動したと決定することに応答して、前記ユーザに提示されるステップと、
を備える、方法。
【請求項2】
前記ユーザが前記操作を誤って実行する確率を決定するステップが、
前記1つまたは複数のプロセッサによって、車両内の雑音水準を決定するステップと、
前記1つまたは複数のプロセッサによって、前記車両内の前記雑音水準に基づいて前記ユーザが前記操作を誤って実行する前記確率を決定するステップとを含む、請求項1に記載の方法。
【請求項3】
前記ユーザが前記操作を誤って実行する確率を決定するステップが、
前記1つまたは複数のプロセッサによって、前記操作の複雑度を決定するステップと、
前記1つまたは複数のプロセッサによって、前記操作の前記複雑度に基づいて前記ユーザが前記操作を誤って実行する前記確率を決定するステップとを含む、請求項1に記載の方法。
【請求項4】
前記ユーザが前記操作を誤って実行する確率を決定するステップが、
前記1つまたは複数のプロセッサによって、前記少なくとも1つの今度の操作の1つまたは複数の特性を決定するステップと、
機械学習モデルを前記少なくとも1つの今度の操作および前記少なくとも1つの今度の操作の前記1つまたは複数の特性に適用して、前記ユーザが誤って前記少なくとも1つの今度の操作を実行する前記確率を決定するステップとを含む、請求項1に記載の方法。
【請求項5】
前記ユーザが前記操作を誤って実行する確率を決定するステップが、
前記1つまたは複数のプロセッサによって、(i)前記操作の環境に関する1つ又は複数の特性および(ii)前記操作が正しく実行されたかどうかの標示を使用して、ナビゲーション進路を受信しながら複数のユーザによって以前に実行された複数の操作を使用することによって、前記複数の以前に実行された操作の各々に対するものを含めて、ユーザが誤って操作を実行する確率を決定するための機械学習モデルを訓練するステップを含み、
前記操作の環境に関する前記1つ又は複数の特性は、
車両における雑音水準、
前記操作の複雑度、
前記車両の速度、
前記車両の車線位置、
前記操作の場所、
ルート上の前の操作の場所、
前記操作の前記場所における交通量、
操作のタイプ、
連続する操作と操作の間の時間もしくは距離の量、または
前記車両が前記操作の前記場所に接近した際に緊急車両が前記車両とすれ違ったかどうか
のうちの少なくとも1つを含む、請求
項4に記載の方法。
【請求項6】
前記操作のための前記場所に前記ユーザが到達する前に、前記1つまたは複数のプロセッサによって、前記ユーザが適応されたナビゲーション命令を正しく理解する確率を高めるようになさされる、前記操作に対する前記適応されたナビゲーション命令を前記ユーザに提供するステップをさらに備える、請求項1に記載の方法。
【請求項7】
前記適応されたナビゲーション命令が、
前記操作に関する警告、または
前記操作に対応するナビゲーション命令の反復
のうちの1つまたは複数を含む、請求
項6に記載の方法。
【請求項8】
前記適応されたナビゲーション命令が、
前記適応されたナビゲーション命令の表示の明るさが上げられること、
前記適応されたナビゲーション命令の表示のサイズが上げられること、または
前記適応されたナビゲーション命令が表示される期間が長くされること
のうちの1つまたは複数が行われるようになされる、請求
項6に記載の方法。
【請求項9】
前記適応されたナビゲーション命令が、
前記適応されたナビゲーション命令の音量が上げられること、または
前記適応されたナビゲーション命令が提供される期間が延ばされること
のうちの1つまたは複数が行われるようになされる、請求
項6に記載の方法。
【請求項10】
前記ルートから外れた前記場所が、前記操作の前記場所、前記ユーザが前記操作の前記場所に接近する際に前記ユーザが前記ルート上を移動している方向、前記操作のタイプ、または、前記操作の場所において実行され得る1つまたは複数の代替の操作のうちの1つまたは複数に基づいて決定される、請求項1に記載の方法。
【請求項11】
ルートを進んでいくときのユーザによる過誤の確率を予測するためのコンピューティングデバイスであって、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサに結合され、命令を記憶している非一時的コンピュータ可読メモリとを備え、前記命令が、前記1つまたは複数のプロセッサによって実行されると、前記コンピューティングデバイスに、
ルートを介した出発地から目的地へのナビゲーション進路に対するユーザによる要求を受信させ、
複数のナビゲーション命令を含むナビゲーション進路のセットを前記ユーザへ提供させ、各ナビゲーション命令が操作および前記操作のための前記ルート上の場所を含み、
前記ルート上の少なくとも1つの今度の操作に対して、前記ユーザが前記操作を誤って実行する確率を決定させ、
前記確率が閾値の確率を超えると決定したことに応答して、前記操作のための前記場所に前記ユーザが到達する前に、代替のルートを介して前記ルートから外れた場所から前記目的地に進んでいくためのナビゲーション進路の代替のセットを生成させ、
前記ユーザが前記操作のための前記場所に到達した後の前記ユーザの現在地を決定させ、
前記ユーザの前記現在地に基づいて前記ユーザが前記操作を誤って実行したと決定させ、
前記操作を実行することを試みた後に前記ルート上の場所から前記ルートから外れた場所に前記ユーザが移動したと決定することに応答して、
前記代替のルートを介して前記ユーザの前記現在地から前記目的地に進んでいくためのナビゲーション進路の前記代替のセットが前記ユーザに提示されるように、ナビゲーション進路の前記代替のセットを提供させる
コンピューティングデバイス。
【請求項12】
前記ユーザが前記操作を誤って実行する確率が、
車両内の雑音水準、または
前記操作の複雑度
のうちの1つまたは複数に基づいて決定される、請求
項11に記載のコンピューティングデバイス。
【請求項13】
前記ユーザが前記操作を誤って実行する確率を決定するために、前記命令が、前記コンピューティングデバイスに、
前記少なくとも1つの今度の操作の1つまたは複数の特性を決定させ、
機械学習モデルを前記少なくとも1つの今度の操作および前記少なくとも1つの今度の操作の前記1つまたは複数の特性へ適用させて、前記ユーザが誤って前記少なくとも1つの今度の操作を実行する前記確率を決定させる、請求
項11に記載のコンピューティングデバイス。
【請求項14】
命令を記憶しているコンピュータ可読メモリであって、前記命令が、1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、
ルートを介した出発地から目的地へのナビゲーション進路に対するユーザによる要求を受信させ、
複数のナビゲーション命令を含むナビゲーション進路のセットを前記ユーザへ提供させ、各ナビゲーション命令が操作および前記操作のための前記ルート上の場所を含み、
前記ルート上の少なくとも1つの今度の操作に対して、前記ユーザが前記操作を誤って実行する確率を決定させ、
前記確率が閾値の確率を超えると決定したことに応答して、前記操作のための前記場所に前記ユーザが到達する前に、代替のルートを介して前記ルートから外れた場所から前記目的地に進んでいくためのナビゲーション進路の代替のセットを生成させ、
前記ユーザが前記操作のための前記場所に到達した後の前記ユーザの現在地を決定させ、
前記ユーザの前記現在地に基づいて前記ユーザが前記操作を誤って実行したと決定させ、
前記操作を実行することを試みた後に前記ルート上の場所から前記ルートから外れた場所に前記ユーザが移動したと決定することに応答して、
前記代替のルートを介して前記ユーザの前記現在地から前記目的地に進んでいくためのナビゲーション進路の前記代替のセットが前記ユーザに提示されるように、ナビゲーション進路の前記代替のセットを提供させる
非一時的コンピュータ可読メモリ。
【請求項15】
前記ユーザが前記操作を誤って実行する確率が、
車両内の雑音水準、または
前記操作の複雑度
のうちの1つまたは複数に基づいて決定される、請求
項14に記載のコンピュータ可読メモリ。
【請求項16】
前記ユーザが前記操作を誤って実行する確率を決定するために、前記命令が、前記1つまたは複数のプロセッサに、
前記少なくとも1つの今度の操作の1つまたは複数の特性を決定させ、
機械学習モデルを前記少なくとも1つの今度の操作および前記少なくとも1つの今度の操作の前記1つまたは複数の特性へ適用させて、前記ユーザが誤って前記少なくとも1つの今度の操作を実行する前記確率を決定させる、請求
項14に記載のコンピュータ可読メモリ。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、代替のナビゲーション進路を提供することに関し、より具体的には、ルートを進んでいくときのユーザによる過誤の確率を予測し、その確率に基づいて代替のナビゲーション進路をあらかじめ生成することに関する。
【背景技術】
【0002】
本明細書で提供される背景の説明は、本開示の文脈を全般に提示するためのものである。この背景技術のセクションにおいて説明される範囲内で、本明細書で名前を挙げられる発明者の成果、ならびに、出願の時点において従来技術として別様に適格ではない可能性がある説明の態様は、本開示に対する従来技術として明確にも暗黙的にも認められない。
【0003】
今日、コンピュータ、スマートフォンなどにおいて実行されるソフトウェアアプリケーション、または組み込みデバイスは、段階を追ったナビゲーション進路を生成する。通常、ユーザは出発地と目的地を指定し、ソフトウェアアプリケーションは、直ちに、ならびに/またはユーザが出発地から目的地に移動するにつれて、進路を表示し、および/もしくは進路をオーディオフォーマットで提示する。
【0004】
これらのソフトウェアアプリケーションは一般に、ルートに基づいてナビゲーション進路を生成するために、距離、街路名、建物番号を示すものを利用する。たとえば、これらのシステムは、「4分の1マイル進み、Maple Streetへと右折してください」のような命令を運転手に提供することができる。
【発明の概要】
【課題を解決するための手段】
【0005】
ナビゲーション中の過誤の確率を予測するために、ナビゲーション過誤予測システムは、ナビゲーション命令のセットに含まれる今度の操作の特性を決定する。この特性は、操作のタイプ、前の操作および/もしくはユーザの現在地に基づく最初の車線位置、操作を実行するための最後の車線位置、操作と前の操作との間の距離および/もしくは時間、操作の複雑度などの、操作自体の特性、ならびに/または、操作を実行する車両内の雑音水準、操作の場所、操作が実行される道路の交通量、車両の速度、車両が操作の場所に接近する際に緊急車両がその車両とすれ違ったかどうかなどの、操作の環境に関する特性であり得る。
【0006】
ナビゲーション過誤予測システムは次いで、これらの特性に基づいて、ユーザが操作を誤って実行する確率を決定し得る。たとえば、この確率は、車両内の雑音水準がより高い場合にはより高くなり得る。別の例では、この確率は、より高い操作の複雑度に対してより高いことがある。いくつかの実装形態では、ナビゲーション過誤予測システムは、これらの特性のうちの1つまたは複数にスコアを割り当て、そして、任意の適切な方式で特性スコアを組み合わせて、今度の操作に対する総スコアを生成し得る。ナビゲーション過誤予測システムは次いで、総スコアに従って、ユーザが操作を誤って実行する確率を決定し得る。
【0007】
他の実装形態では、ナビゲーション過誤予測システムは、機械学習技法を利用して、様々な操作および/または環境でのユーザの過去の経験に基づき機械学習モデルを生成し得る。たとえば、一事例では、ラジオの音量が大きすぎたとき、またはトラックとすれ違ったときに、ユーザがナビゲーション命令に従うことができなかった可能性がある。別の事例では、操作が六叉路での緩い右折であったがユーザがきつい右折をしたとき、ユーザがナビゲーション命令に従うことができなかった可能性がある。
【0008】
したがって、ナビゲーション過誤予測システムは、操作が実行または試行された環境に関する情報とともにユーザに与えられる操作のセットを収集する。各操作に対して、ナビゲーション過誤予測システムは、操作が正しく実行されたかどうかの標示を収集し、実行されていない場合、操作を試みた後のユーザの場所を収集する。この情報は次いで、ユーザが操作を誤って実行する確率を決定し、および/またはユーザが操作を試みた後にいるであろう場所を予測するように、機械学習モデルを訓練するための訓練データとして使用される。たとえば、操作の複雑度が高く、または非常に高く、ユーザが毎時60マイルより速い速度で移動しているとき、機械学習モデルは、ユーザが操作を誤って実行する確率が0.7であると決定し得る。
【0009】
今度の操作に対して、ナビゲーション過誤予測システムは、ユーザがその操作を誤って実行する決定された確率を、閾値の確率(たとえば、0.25)と比較する。その確率が閾値の確率より高い場合、ナビゲーション過誤予測システムは、予防的な行動をとり得る。予防的な行動の例は、操作を試みた後のユーザの予測される場所から目的地へのナビゲーション進路の代替のセットを生成することを含み得る。ナビゲーション進路の代替のセットは、ユーザが操作のための場所に到達する前に生成され得る。このようにすると、ユーザが操作を試みた後でルートから外れた場所にいる場合、ユーザは、ユーザの現在地からナビゲーション進路の代替のセットが生成され得るまで待つ必要がない。代わりに、ユーザがさらなる混乱を経験せず、ナビゲーションアプリケーションがルートを再計算する間に目的地から遠く離れることがないように、ナビゲーション進路の代替のセットがあらかじめ生成され、シームレスにユーザに提供される。
【0010】
予防的な行動の別の例は、今度の操作を実行するための難易度に関する警告を提供することを含み得る。警告に加えて、ナビゲーション過誤予測システムは、今度の操作のための場所に到達する前に代替のルートをユーザが選択するためのユーザコントロールを提供し得る。
【0011】
予防的な行動はまた、前の操作のためのナビゲーション命令が提示されている間に、今度の操作のためのナビゲーション命令を提示することを含み得る。このようにすると、前の操作を実行するか、または代替のナビゲーション進路を要求するかをユーザが決定できるように、ユーザは、ユーザが前の操作を実行する前に次の操作を認識させられることがある。加えて、ユーザが前の操作を完了するとすぐに次の操作を実行するために必要な対策をとることができるように、ユーザは次の操作を実行する準備ができていることがある。たとえば、第1の操作は、ユーザが4車線の高速道路の左車線へと合流するような、高速道路に乗ることであり得る。次の操作は、高速道路に乗ってから右車線を0.3マイル走り高速道路を降りることであり得る。このシナリオでは、高速道路を降りるためのナビゲーション命令は、高速道路に乗るためのナビゲーション命令とともに提示され得る。このようにすると、ユーザは、次の操作が難しすぎると決定することがあり、そして高速道路に乗らないことがあり、または、ユーザは、出口に到達する前に右車線に移れるように高速道路に乗るとすぐに車線を変更する準備をすることがある。
【0012】
予防的な行動のさらに他の例は、今度の操作を含むナビゲーション命令を反復すること、今度の操作を含むオーディオナビゲーション命令の音量を上げること、今度の操作を含むナビゲーション命令を長くすることおよび/またはその詳細度を上げること、今度の操作を含む視覚ナビゲーション命令を提示する表示の明るさを上げること、視覚的ナビゲーション命令のための表示のサイズを上げることなどを含み得る。
【0013】
本開示の技法の1つの例示的な実施形態は、ルートを進んでいくときのユーザによる過誤の確率を予測するための方法である。方法は、あるルートを介した出発地から目的地へのナビゲーション進路に対するユーザによる要求を受信するステップと、複数のナビゲーション命令を含むナビゲーション進路のセットをユーザに提供するステップとを含む。各ナビゲーション命令は、操作および操作のためのルート上の場所を含む。ルート上の少なくとも1つの今度の操作に対して、方法は、ユーザが操作を誤って実行する確率を決定するステップと、その確率が閾値の確率を超えると決定したことに応答して、かつ操作のための場所にユーザが到達する前に、ルートから離れた場所から目的地に代替のルートを介して進んでいくためのナビゲーション進路の代替のセットを生成するステップとを含む。
【0014】
別の例示的な実施形態は、ルートを進んでいくときのユーザによる過誤の確率を予測するためのコンピューティングデバイスであり、コンピューティングデバイスは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに結合され、命令を記憶している非一時的コンピュータ可読メモリとを含む。命令は、1つまたは複数のプロセッサによって実行されると、コンピューティングデバイスに、あるルートを介した出発地から目的地へのナビゲーション進路に対するユーザによる要求を受信させ、複数のナビゲーション命令を含むナビゲーション進路のセットをユーザへ提供させる。各ナビゲーション命令は、操作および操作のためのルート上の場所を含む。ルート上の少なくとも1つの今度の操作に対して、命令は、コンピューティングデバイスに、ユーザが操作を誤って実行する確率を決定させ、その確率が閾値の確率を超えると決定したことに応答して、かつ操作のための場所にユーザが到達する前に、ルートから離れた場所から目的地へ代替のルートを介して進んでいくためのナビゲーション進路の代替のセットを生成させる。
【0015】
さらに別の例示的な実施形態は、命令を記憶している非一時的コンピュータ可読メモリである。1つまたは複数のプロセッサによって実行されると、命令は、1つまたは複数のプロセッサに、あるルートを介した出発地から目的地へのナビゲーション進路に対するユーザによる要求を受信させ、複数のナビゲーション命令を含むナビゲーション進路のセットをユーザへ提供させる。各ナビゲーション命令は、操作および操作のためのルート上の場所を含む。ルート上の少なくとも1つの今度の操作に対して、命令は、1つまたは複数のプロセッサに、ユーザが操作を誤って実行する確率を決定させ、その確率が閾値の確率を超えると決定したことに応答して、かつ操作のための場所にユーザが到達する前に、ルートから離れた場所から目的地へ代替のルートを介して進んでいくためのナビゲーション進路の代替のセットを生成させる。
【図面の簡単な説明】
【0016】
【
図1】ナビゲーション中の過誤の確率を予測するために本開示の技法が使用され得る例示的な車両を示す図である。
【
図2】ナビゲーション中の過誤の確率を予測するための技法が実施され得る例示的なシステムのブロック図である。
【
図3A】ユーザが実行するのが困難である例示的な操作を示す図である。
【
図3B】ユーザが実行するのが困難である例示的な操作を示す図である。
【
図4】特定の操作に対するユーザによる過誤の確率を予測するための機械学習モデルを生成するために
図2のナビゲーション過誤予測システムが利用できる例示的な操作データテーブルの図である。
【
図5】機械学習モデルを使用した操作の過誤の確率の予測を示す合成されたブロック図および論理図である。
【
図6】出発地から目的地へのルートを示し、ルート上の操作に関する警告を含む、例示的なナビゲーション表示を示す図である。
【
図7】ナビゲーション過誤予測システムにおいて動作する、またはそれと協働するコンピューティングデバイスにおいて実施され得る、ルートを進んでいくときのユーザによる過誤の確率を予測するための例示的な方法の流れ図である。
【発明を実施するための形態】
【0017】
概要
本明細書において説明される主題は、以下の利点のうちの1つまたは複数を実現するために特定の実施形態で実装され得る。ユーザが操作を誤って実行する確率が閾値の確率を超えると決定したことに応答してナビゲーション進路の代替のセットを生成することによって、ユーザが操作を誤って実行した場合にユーザが用意ができているように、ナビゲーション進路の代替のセットが、ユーザによる潜在的な誤りの前に準備される。これは、必要なとき、すなわちユーザが操作を誤って実行したときに、訂正のナビゲーション進路の用意ができており、これらの命令を提供するのに遅延がないことを意味する。これは重要であり、それは、ユーザが効率的に目的地へと進むことを可能にするために、ユーザによる誤りの後ですばやく代替のナビゲーション命令が出される必要がしばしばあるからである。あらゆる遅延が、ユーザによるさらなる誤りの確率を高め、目的地までの時間を増やす最適ではない操作をユーザが行う確率を高める。さらに、誤りの確率が閾値の確率を超えるときに代替のナビゲーション進路を生成するだけで、本明細書において説明される実装形態は、あらゆる操作に対して代替のナビゲーション進路を生成することに関連する過剰な処理とデータ検索をなくす。したがって、これは計算効率の改善をもたらす。
【0018】
加えて、実装形態は、ナビゲーション命令のうちの1つまたは複数が、わかりやすさを改善してユーザによる過誤の確率を下げるようになされることを可能にする。たとえば、ユーザが操作を誤って実行する確率が閾値の確率を超えると決定したことに応答して、ユーザが適応されたナビゲーション命令を正しく理解する確率を高めるようになされる、操作のための適応されたナビゲーション命令がユーザに提供され得る。これは、命令の音量を上げること、または表示の明るさもしくは命令のサイズを上げることを含み得る。これは、適応された命令内で、操作のための命令の1つまたは複数の反復を提示することを含み得る。これはさらに、適応された命令が提供される期間を延ばすこと、または、適応された命令内で、操作が難しい、または別様に誤りの可能性が高いというユーザへの1つまたは複数の警告またはアラートを含めることを含み得る。適応された命令はまた、1つまたは複数の追加のインターフェースを介して提供されるようになされ得る。たとえば、命令がディスプレイインターフェースを介して別様に提供されている場合、適応された命令はオーディオインターフェースを介しても提供され得る(またはその逆も然りである)。適応されたナビゲーション命令を提供することによって、ユーザが操作を誤って実行する確率が下がり、それにより、訂正のナビゲーション進路/命令を出す必要がなくなる可能性がある。
【0019】
例示的なハードウェアおよびソフトウェア構成要素
図1を参照すると、上で概説された技法が実装され得る例示的な環境1は、ポータブルデバイス10と、ヘッドユニット14を伴う車両12とを含む。ポータブルデバイス10は、たとえば、スマートフォンまたはタブレットコンピュータであり得る。ポータブルデバイス10は、有線(たとえば、ユニバーサルシリアルバス(USB))、またはワイヤレス(たとえば、Bluetooth、Wi-Fi Direct)であり得る通信リンク16を介して、車両12のヘッドユニット14と通信する。ポータブルデバイス10はまた、第4世代または第3世代セルラーネットワーク(それぞれ、4Gまたは3G)などのワイヤレス通信ネットワークを介して、様々なコンテンツプロバイダ、サーバなどと通信することができる。
【0020】
ヘッドユニット14は、デジタルマップなどのナビゲーション情報を提示するためのディスプレイ18を含み得る。いくつかの実装形態におけるディスプレイ18は、タッチスクリーンであり、目的地、起点などの名前または住所を含み得る、テキスト入力を入力するためのソフトウェアキーボードを含む。ヘッドユニット14およびステアリングホイール上のそれぞれのハードウェア入力制御装置20および22は、英数字を入力するために、またはナビゲーション進路を要求するための他の機能を実行するために使用され得る。ヘッドユニット14はまた、たとえば、マイクロフォン24およびスピーカー26などのオーディオ入力および出力構成要素を含み得る。スピーカー26は、ポータブルデバイス10から送信されるオーディオ命令を再生するために使用され得る。
【0021】
ナビゲーション過誤予測システムが実装され得る例示的な通信システム100が、
図2に示される。通信システム100は、「地図アプリケーション22」とも呼ばれ得る地理的アプリケーション22を実行するように構成されるクライアントコンピューティングデバイス10を含む。実装形態に応じて、アプリケーション22は、対話型デジタル地図を表示し、運転、歩行、または音声および視覚によるナビゲーション進路を含む他のナビゲーション進路を提供するために、ルーティングデータを要求および受信し、様々なジオロケーションコンテンツを提供することなどができる。クライアントコンピューティングデバイス10は、様々な場所へと進みながらデジタル地図を表示するユーザにより操作され得る。
【0022】
クライアントコンピューティングデバイス10に加えて、通信システム100は、操作を実行するときのユーザによる過誤の確率を予測し、その確率に基づいて代替のナビゲーション進路をクライアントデバイス10に提供するように構成される、サーバデバイス60を含む。サーバデバイス60は、例示的な実装形態において、今度の操作を実行するときの過誤の確率を予測するための機械学習モデルを、機械学習モデルを訓練するための訓練データに加えて記憶する、データベース80に通信可能に結合され得る。訓練データは、ナビゲーション命令のセットに含まれる操作およびそれらの操作の特性を含む、ユーザに提供されるナビゲーション命令のセットを含み得る。操作の特性は、操作のタイプ、前の操作および/もしくはユーザの現在地に基づく最初の車線位置、操作を実行するための最後の車線位置、操作と前の操作との間の距離および/もしくは時間、操作の複雑度、操作を実行する車両内の雑音水準、操作の場所、操作が実行される道路の交通量、車両の速度、車両が操作の場所に接近する際に緊急車両がその車両とすれ違ったかどうかなどを含み得る。またさらに、各操作に対して、訓練データは、操作が正しく実行されたかどうかを示すもの、および実行されていない場合、操作を試みた後のユーザの場所を含み得る。訓練データは、
図4を参照して以下でさらに詳しく説明される。
【0023】
より一般的には、サーバデバイス60は、任意のタイプの適切な地理空間情報、または地理的背景に関係し得る情報を記憶する、1つまたはいくつかのデータベースと通信することができる。通信システム100はまた、たとえば、運転、歩行、自転車運転、または公共交通の進路を提供する、ナビゲーションデータサーバ34を含み得る。さらに、通信システム100は、地図表示を生成するためにサーバデバイス60に地図データを提供する、地図データサーバ50を含み得る。通信システム100において動作するデバイスは、通信ネットワーク30を介して相互接続され得る。
【0024】
様々な実装形態において、クライアントコンピューティングデバイス10は、スマートフォンまたはタブレットコンピュータであり得る。クライアントコンピューティングデバイス10は、メモリ20と、1つまたは複数のプロセッサ(CPU)16と、グラフィクス処理ユニット(GPU)12と、マイクロフォンおよびスピーカーを含むI/Oモジュール14と、ユーザインターフェース(UI)32と、全地球測位システム(GPS)モジュールを含む1つまたはいくつかのセンサ19とを含み得る。メモリ20は、非一時的メモリであってもよく、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、フラッシュメモリ、他のタイプの永続的メモリなどの、1つまたはいくつかの適切なメモリモジュールを含んでもよい。I/Oモジュール14は、たとえば、タッチスクリーンであり得る。様々な実装形態では、クライアントコンピューティングデバイス10は、
図2に示されたものよりも少ない構成要素、または逆に、追加の構成要素を含み得る。他の実施形態では、クライアントコンピューティングデバイス10は、任意の適切なポータブルまたは非ポータブルコンピューティングデバイスであり得る。たとえば、クライアントコンピューティングデバイス10は、ラップトップコンピュータ、デスクトップコンピュータ、スマートウォッチまたはスマートグラスなどのウェアラブルデバイスなどであり得る。
【0025】
メモリ20は、任意のタイプの適切なモバイルまたは汎用オペレーティングシステムであり得る、オペレーティングシステム(OS)26を記憶する。OS26は、アプリケーションがセンサの読取値を取り出すことを可能にする、アプリケーションプログラミングインターフェース(API)機能を含み得る。たとえば、コンピューティングデバイス10上で実行するように構成されるソフトウェアアプリケーションは、その瞬間にクライアントコンピューティングデバイス10の現在の場所を取り出すためのOS26のAPIを呼び出す命令を含み得る。APIはまた、APIが推定値にどの程度の確信があるかの定量的標示を(たとえば、百分率として)返すことができる。
【0026】
メモリ20は地図アプリケーション22も記憶しており、これは、上で示されたように、対話型デジタル地図を生成し、および/または、他の地理的機能を実行するように構成される。地図アプリケーション22は、ナビゲーション命令を受信し、ナビゲーション表示24を介してナビゲーション命令を提示することができる。地図アプリケーション22はまた、運転、歩行、または公共交通の進路を表示し、一般に、ナビゲーション表示24を介して、地理、ジオロケーション、ナビゲーションなどに関する機能を提供することができる。
【0027】
図2は、地図アプリケーション22をスタンドアロンアプリケーションとして示しているが、地図アプリケーション22の機能はまた、クライアントコンピューティングデバイス10上で実行する別のソフトウェアアプリケーションのためのプラグインまたは拡張などとして、クライアントコンピューティングデバイス10上で実行するウェブブラウザを介してアクセス可能なオンラインサービスの形態で提供され得ることに留意されたい。地図アプリケーション22は一般に、異なるそれぞれのオペレーティングシステムの異なるバージョンにおいて提供され得る。たとえば、クライアントコンピューティングデバイス10のメーカーは、Android(商標)プラットフォームのための地図アプリケーション22を含むソフトウェア開発キット(SDK)、iOS(商標)プラットフォームのための別のSDKなどを提供することができる。
【0028】
いくつかの実装形態では、サーバデバイス60は、1つまたは複数のプロセッサ62と、メモリ64とを含む。メモリ64は、有形の非一時的メモリであってもよく、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、フラッシュメモリ、他のタイプの永続的メモリなどを含む、任意のタイプの適切なメモリモジュールを含んでもよい。メモリ64は、ナビゲーション過誤予測エンジン68を構成するプロセッサ62上で実行可能な命令を記憶し、ナビゲーション過誤予測エンジン68は、今度の操作に対するユーザによる過誤の確率を決定し、操作を試みた後のユーザの予測される場所から代替のナビゲーション進路を生成することなどの予防的な行動をとることができる。ナビゲーション過誤予測エンジン68は、車両の中の雑音の量、操作の場所における交通量、車両が操作の場所に接近する際の車両の速度などの、操作に対する環境の特性を含む操作の特性に基づいて、今度の操作に対するユーザによる過誤の確率を決定し得る。いくつかのシナリオでは、ナビゲーション過誤予測エンジン68は、今度の操作に対してユーザによる過誤の確率を決定するための機械学習モデルを生成し得る。ナビゲーション過誤予測エンジン68は次いで、今度の操作の特性を機械学習モデルに適用し、今度の操作に対するユーザによる過誤の確率を決定し得る。加えて、ナビゲーション過誤予測エンジン68は、代替のナビゲーション進路をクライアントデバイス10に提供することができ、代替のナビゲーション進路は次いで、たとえば今度の操作を試みた後でユーザの現在地がルートから外れているときに、ナビゲーション表示24によって提示される。いくつかの実施形態では、ナビゲーション過誤予測エンジン68は、以下でより詳しく説明される機械学習エンジンを含む。
【0029】
ナビゲーション過誤予測エンジン68およびナビゲーション表示24は、ナビゲーション過誤予測システムの構成要素として動作することができる。代替的に、ナビゲーション過誤予測システムは、サーバ側の構成要素のみを含み、単に、ナビゲーション命令を提示するための命令をナビゲーション表示24に提供することができる。言い換えると、これらの実施形態におけるナビゲーション過誤予測技法は、ナビゲーション表示24に対して透過的に実装され得る。別の代替形態として、ナビゲーション過誤予測エンジン68の機能全体が、ナビゲーション表示24において実装され得る。
【0030】
簡単のために、
図2は、サーバデバイス60を、サーバのただ1つのインスタンスとして示す。しかしながら、いくつかの実装形態によるサーバデバイス60は、各々が1つまたは複数のプロセッサを備え、他のサーバデバイスとは無関係に動作することが可能な、1つまたは複数のサーバデバイスのグループを含む。そのようなグループにおいて動作するサーバデバイスは、要求を処理することと関連付けられるある動作があるサーバデバイス上で実行され、一方で同じ要求を処理することと関連付けられる別の動作が別のサーバデバイス上で実行されるような、分散した方式で、または任意の他の適切な技法に従って、(たとえば、可用性に基づいて)個々にクライアントデバイス10からの要求を処理することができる。この説明のために、「サーバデバイス」という用語は、個々のサーバデバイス、または2つ以上のサーバデバイスのグループを指すことがある。
【0031】
動作時、クライアントコンピューティングデバイス10において動作するナビゲーション表示24は、データを受信し、サーバデバイス60に送信する。したがって、一例では、クライアントコンピューティングデバイス10は、出発地から目的地までのナビゲーション進路を要求する通信をナビゲーション過誤予測エンジン68(サーバデバイス60において実装される)に送信し得る。したがって、ナビゲーション過誤予測エンジン68は、その要求に応答してナビゲーション進路のセットを取得し、ナビゲーション進路のセットをクライアントコンピューティングデバイス10に提供し得る。
【0032】
次いで、今度の操作に対して、ナビゲーション過誤予測エンジン68は、操作に関する環境の特性を取得する。これは、車両の中の雑音水準、車両の速度などの、今度の操作に対するクライアントコンピューティングデバイス10の周囲の環境を示すセンサデータを取得するステップを含み得る。結果として、ナビゲーション過誤予測エンジン68は、操作の特性に基づいて、ユーザが今度の操作を誤って実行する確率を決定し得る。ナビゲーション過誤予測エンジン68は次いで、ユーザが操作を実行する際に誤りを犯した場合に、ナビゲーション進路の代替のセットを生成し、クライアントコンピューティングデバイス10に提供し得る。
【0033】
クライアントコンピューティングデバイス10は、ユーザの現在地を決定することができ、現在地がナビゲーション進路のルートから外れている場合、クライアントコンピューティングデバイス10は、代替のナビゲーション進路を提示することができる。他の実装形態では、ナビゲーション過誤予測エンジン68は、ナビゲーション表示24に提示され得る今度の操作に対する警告をクライアントコンピューティングデバイス10に提供し得る。さらに他の実装形態では、ナビゲーション過誤予測エンジン68は、ユーザが適応されたナビゲーション命令を正しく理解する確率を上げるために、ナビゲーション表示24に提示され得る今度の操作に対する適応されたナビゲーション命令をクライアントコンピューティングデバイス10に提供し得る。適応されたナビゲーション命令は、繰り返されてもよく、より大きい音量もしくは表示の明るさで提示されてもよく、より長い時間提示されてもよく、または前のナビゲーション命令が提示されている間に前のナビゲーション命令とともに提示されてもよい。
【0034】
ナビゲーション過誤予測エンジン68は、ナビゲーション進路を生成すると、前の操作が完了した後で、前の操作の前の操作が完了した後で、今度の操作より所定の回数前の操作が完了した後で、または任意の他の適切な時間に、今度の操作に関する環境の特性を取得し得る。
【0035】
ナビゲーション過誤予測システムは、例示を簡単にすることだけを目的に、運転の進路に関連して本明細書において説明される。ナビゲーション過誤予測システムは、歩行、自転車運転、公共交通、または任意の適切なナビゲーション進路のために実装され得る。雑音水準は、クライアントコンピューティングデバイス10の周囲のエリア内の雑音水準であってもよく、速度データは、クライアントコンピューティングデバイス10が車両内にあるかどうかにかかわらずクライアントコンピューティングデバイス10の速度であってもよい。
【0036】
いずれにしても、ナビゲーション過誤予測エンジン68は、今度の操作の特性に基づいて、ユーザが今度の操作を誤って実行する確率を決定する。いくつかの実装形態では、ナビゲーション過誤予測エンジン68は、車両内の雑音水準に基づいて、ユーザが今度の操作を誤って実行する確率を決定する。ナビゲーション過誤予測エンジン68は、より高い雑音水準に対してより高い確率を決定し得る。さらに、ユーザが今度の操作を誤って実行する確率は、雑音水準の変化に基づいて決定され得る。たとえば、雑音水準が中程度の雑音水準であるが、経時的に一定のままである場合、ユーザは、ナビゲーション命令がユーザに提示されたときに雑音水準の大きな上昇がある場合より、ナビゲーション命令を誤解する可能性はより低いことがある。したがって、ナビゲーション過誤予測エンジン68は、経時的な雑音水準のより大きな上昇に対して、より高い確率を決定し得る。いくつかの実装形態では、ナビゲーション過誤予測エンジン68は、雑音水準の適切な組合せおよび雑音水準の変化に基づいて、ユーザが今度の操作を誤って実行する確率を決定する。
【0037】
他の実装形態では、ナビゲーション過誤予測エンジン68は、操作の複雑度に基づいて、ユーザが今度の操作を誤って実行する確率を決定する。複雑度は、1から100などの複雑さスコアであってもよく、「極低」、「低」、「中」、「高」、「極高」などのカテゴリであってもよく、または任意の他の適切な方式で示されてもよい。操作の複雑度は、四叉路での右左折、六叉路での右左折、ラウンドアバウト、Uターン、高速道路の合流、高速道路の離脱などの、操作タイプに基づいて決定され得る。いくつかの実装形態では、操作の複雑度は、操作タイプと操作の場所の組合せに基づいて決定され得る。操作タイプが一般的であるような場所において操作が行われる(たとえば、その場所を含む地理的エリア内での操作タイプの頻度が閾値の頻度を超える)場合、操作タイプが一般的ではないような場所において操作が行われる場合より、複雑度は低いことがある。たとえば、ラウンドアバウトが一般的である英国では、ラウンドアバウトが一般的ではない米国よりも、複雑度はより低いことがある。
【0038】
複雑度はまた、今度の操作と前の操作の間の時間または距離の量に基づいて決定され得る。前の操作のすぐ後に行われる操作は、より高い複雑度を有し得る。さらに、複雑度は、ユーザが操作を実行するために変更する必要のある車線の数に基づいて決定され得る。たとえば、ナビゲーション過誤予測エンジン68は、前の操作を実行した後のユーザの最初の車線を、今度の操作を実行するためのユーザの最後の車線と比較し得る。操作を実行するための車線変更の回数が増えるにつれて、複雑度が上がり得る。
【0039】
図3Aは、複雑度が高い(たとえば、70という複雑さスコア)難しい操作の一例を示す。
図3Aに示されるように、ユーザはValeri Streetを北に向かっている。ユーザが交差点に接近すると、操作は、ラウンドアバウトの3番目の出口からChavez Streetに出ることである。多くのユーザはラウンドアバウトについて多くの経験がないので、ユーザは誤って1番目または2番目の出口でラウンドアバウトから出る可能性がある。
図3Bは、複雑度が高い(たとえば、85という複雑さスコア)難しい操作のさらに別の例を示す。
図3Bに示されるように、ユーザは左車線から合流する高速道路に乗る。この高速道路は5車線の高速道路であり、今度の操作は0.3マイルで一番右の車線から高速道路を降りることである。ユーザがLake Streetで高速道路を降りるには、ユーザは、0.3マイル未満で一番左の車線から一番右の車線に移動しなければならない。これは、必要な車線変更をユーザが行うのに十分な時間を与えないことがあり、ユーザはLake Streetで高速道路を降りることができないことがある。
【0040】
さらに他の実装形態では、ナビゲーション過誤予測エンジン68は、雑音水準、操作の複雑度、および/または操作の他の特性の任意の適切な組合せに基づいて、ユーザが今度の操作を誤って実行する確率を決定する。たとえば、ナビゲーション過誤予測エンジン68は、操作の特性の各々にスコアを割り当て、任意の適切な方式で特性スコアを組み合わせて、操作に対する総スコアを生成し得る。ナビゲーション過誤予測エンジン68は次いで、操作の総スコアに基づいて確率を決定し得る。
【0041】
他の実装形態では、ナビゲーション過誤予測エンジン68は、ユーザが操作を誤って実行する確率を決定するための機械学習モデルを生成する。ユーザが操作を誤って実行する確率を決定するための機械学習モデルを生成するために、ナビゲーション過誤予測エンジン68は、以前にユーザに提供されたナビゲーション命令のセットを含む訓練データを取得し、各ナビゲーション命令が操作を含む。
【0042】
訓練データはまた、操作が実行された環境の特性を含むこれらの操作の各々の特性を含み得る。たとえば、ロケーションデータおよび/または他のユーザデータを共有するためのオプションを選択するユーザは、ナビゲーション命令が提示されたときに収集されるそれぞれのクライアントコンピューティングデバイス10からのセンサデータとともに、それぞれのクライアントコンピューティングデバイス10によって提示されるナビゲーション命令のセットを送信し得る。センサデータは、各ナビゲーション命令に対して、ナビゲーション命令が提示されたときの交通量、ナビゲーション命令が提示されたときの時刻、ナビゲーション命令が提示されたときの気象条件、ナビゲーション命令が提示されたときの雑音水準、ナビゲーション命令が提示されたときのユーザの現在地、ナビゲーション命令が提示されたときのユーザの現在の速度などを含み得る。
【0043】
いくつかの実施形態では、クライアントコンピューティングデバイス10は、それぞれクライアントコンピューティングデバイス10に含まれる時計およびマイクロフォンを介して、時刻および雑音水準を決定する。天候を決定するために、クライアントコンピューティングデバイス10は、レインセンサを含むことがあり、またはNational Weatherサービスなどの外部サービスと通信することがある。たとえば、クライアントコンピューティングデバイス10は、GPSモジュールと通信して現在地を取得し、現在地を含む領域に対する気象データについてNational Weatherサービスに要求を送信し得る。同様に、交通量を決定するために、クライアントコンピューティングデバイス10は、GPSモジュールと通信して現在地を取得し、現在地を含む領域に対する交通データについて交通サービスに要求を送信し得る。
【0044】
いずれにしても、提示される各ナビゲーション命令に対して、ナビゲーション過誤予測エンジン68は、操作の特性、操作が正しく実行されたかどうかの標示、および、実行されていない場合、操作を試みた後のユーザの場所を取得する。たとえば、ナビゲーション命令が提示された後で、ユーザの現在地が元のルートの経路と異なっていたので、地図アプリケーション22が新しいルートを生成した場合、ナビゲーション過誤予測エンジン68は、操作が正しく実行されなかったことの標示を受信してもよく、操作を試みた後でユーザの現在地の標示を受信してもよい。
【0045】
ナビゲーション命令のセット、操作特性、操作が正しく実行されたかどうかの標示、および/または操作を試みた後のユーザの場所が、機械学習技法を使用して機械学習モデルを生成するための訓練データとして提供され得る。
【0046】
機械学習モデルを生成するための例示的な訓練データ
図4は、機械学習モデルを生成するために使用され得る例示的な訓練データ400を示す。いくつかの実施形態では、訓練データ400はデータベース80に記憶され得る。訓練データ400は、操作特性410、および試みられた操作の結果420という、2つの部分を含み得る。操作特性410は、操作402、および、四叉路での右左折、六叉路での右左折、ラウンドアバウト、高速道路の合流、高速道路の離脱、Uターン、きつい右左折、緩い右左折、車線変更などの操作のタイプ404を含み得る。
【0047】
操作特性410はまた、操作の複雑度406を含み得る。複雑度406は、1から100などの複雑さスコアであってもよく、「極低」、「低」、「中」、「高」、「極高」などのカテゴリであってもよく、または任意の他の適切な方式で示されてもよい。操作の複雑度406は、四叉路での右左折、六叉路での右左折、ラウンドアバウト、Uターン、高速道路の合流、高速道路の離脱などの、操作タイプ404に基づいて決定され得る。複雑度406はまた、今度の操作と前の操作の間の時間または距離の量に基づいて決定され得る。前の操作のすぐ後に行われる操作は、より高い複雑度を有し得る。さらに、複雑度406は、ユーザが操作を実行するために変更する必要のある車線の数に基づいて決定され得る。たとえば、ナビゲーション過誤予測エンジン68は、前の操作を実行した後のユーザの最初の車線を、今度の操作を実行するためのユーザの最後の車線と比較し得る。操作を実行するための車線変更の回数が増えるにつれて、複雑度406が上がり得る。
【0048】
さらに、操作特性410は操作の場所408を含み得る。データテーブル400における場所の列408はGPS座標を含むが、場所は、交差点、街路住所、または任意の他の適切な場所であり得る。
【0049】
加えて、操作特性410は、少ない交通量、中程度の交通量、または多い交通量として分類される、操作の場所における交通量412を含み得る。たとえば、道路の交通量が少ないことは、道路上の車両が速度制限以上で移動していることを示し得る。道路の交通量が中程度であることは、道路上の車両が速度制限を閾値の速度以内だけ下回る(たとえば、速度制限の5~10マイル毎時以内の)速度で移動していることを示し得る。道路の交通量が多いことは、道路上の車両が速度制限を閾値の速度を超えて下回る(たとえば、速度制限より5~10マイル毎時低い)速度で移動していることを示し得る。
【0050】
その上、操作特性410は、ユーザが操作の場所414に接近する際の車両またはクライアントコンピューティングデバイス10の速度と、車両の中の背景音楽もしくは会話、街路の雑音、警笛、電話の呼び出しなどの、車両の中または周囲における雑音水準416とを含み得る。雑音水準416は、デシベル(dB)で示されてもよく、または、小(たとえば、第1の閾値のデシベル量より小さい)、中(第1の閾値のデシベル量と、第1の閾値のデシベル量より高い第2の閾値のデシベル量との間にある)、大(たとえば、第2の閾値のデシベル量より大きい)などとして分類されてもよい。いくつかの実施形態では、雑音水準416はまた、ラジオまたは他の音楽再生、街路の雑音などの、雑音源の標示を含み得る。またいくつかの実施形態では、雑音水準416は、ユーザが操作の場所に接近するにつれて小から大になる、大から中になるなどの、経時的な雑音水準の変化の標示を含み得る。
【0051】
例示的な訓練データ400は、操作402、操作のタイプ404、操作の複雑度406、操作の場所408、交通データ412、速度データ414、および雑音データ416を操作特性410として含むが、これらは例示を簡単にすることのみを目的とする操作特性のいくつかの例にすぎない。操作および/または操作に関する環境を示す任意の適切な特性が、ルート上の前の操作の場所、連続する操作と操作の間の時間または距離の量、車両の車線位置、車両が操作の場所に接近する際に緊急車両が車両とすれ違ったかどうかなどの、操作特性410として使用され得る。
【0052】
操作特性410に加えて、訓練データ400は、試みられた操作420の結果を示すデータを含み得る。試みられた操作420の結果を示すデータは、操作が正しく実行されたかどうかの標示422を含み得る。たとえば、ユーザが操作の場所に到達した後でユーザの現在地がルートの経路と異なる場合、ナビゲーション過誤予測エンジン68は、ユーザが操作を実行する際に誤りを犯したことの標示を受信し得る。試みられた操作の結果420を示すデータは、ユーザの現在地がルートの経路と異なる場合、操作を試みた後のユーザの現在地の標示も含み得る。たとえば、操作が緩い右折であるときに、ユーザがきつい右折をしたことをユーザの現在地が示すことがある。別の例では、操作がラウンドアバウトの3番目の出口で出ることである場合に、ユーザがラウンドアバウトの2番目の出口で出たことをユーザの現在地が示すことがある。
【0053】
機械学習モデルを生成するために、ナビゲーション過誤予測エンジン68は、正しく実行された操作および誤って実行された操作に対応するものとして訓練データ400のサブセットを分類し得る。たとえば、訓練データ400の最初の行(騒々しい環境における低複雑度の右折を含む)は、正しく実行された操作に対応するものとして分類され得る。訓練データ400の4番目の行(静かな環境における高複雑度のラウンドアバウトを含む)は、誤って実行された操作に対応するものとして分類され得る。
【0054】
次いで、ナビゲーション過誤予測エンジン68は、第1および第2のサブセットを分析して機械学習モデルを生成し得る。機械学習モデルは、回帰分析(たとえば、ロジスティック回帰、線形回帰、または多項式回帰)、k近傍法、決定木、ランダムフォレスト、ブースティング、ニューラルネットワーク、サポートベクターマシン、深層学習、強化学習、ベイジアンネットワークなどの、様々な機械学習技法を使用して生成され得る。いくつかの実施形態では、ナビゲーション過誤予測エンジン68は、ユーザが操作を誤って実行する確率を決定するための第1の機械学習モデルと、操作を試みた後のユーザの場所を予測するための第2の機械学習モデルとを生成し得る。
【0055】
たとえば、ユーザが操作を誤って実行する確率を決定するための機械学習モデルは、枝によって接続されるいくつかのノードを有する決定木であってもよく、各ノードは操作特性についての試験(たとえば、操作の複雑度が低いか?)を表し、各枝は試験の結果(たとえば、いいえ)を表し、各葉はユーザが操作を誤って実行する確率(たとえば、0.4)を表す。他の実装形態では、各葉は確率の範囲(たとえば、0.2~0.3)を表し得る。
【0056】
より具体的には、ナビゲーション過誤予測エンジン68は決定木を生成してもよく、第1のノードは雑音水準が高いかどうかに対応する。雑音水準が高くない場合、第1の枝は、交通量が多いかどうかに対応する第2のノードに接続し得る。交通量が多い場合、第2の枝は、複雑度が高いかどうかに対応する第3のノードに接続し得る。複雑度が高い場合、第3の枝は、ユーザが操作を誤って実行する確率が0.3であることを示し得る葉ノードに接続し得る。決定木は1つの葉ノードおよび3つの枝を含むが、これは例示を簡単にすることのみを目的とする例にすぎない。各決定木は、操作特性についての任意の適切な数および/またはタイプの試験を有する、任意の数のノード、枝、および葉を含み得る。
【0057】
操作を試みた後のユーザの場所を予測するための機械学習モデルは、各ノードが操作特性についての試験を表すような、枝によって接続されたいくつかのノードを有する決定木でもあり得る。他の実装形態では、操作を試みた後のユーザの場所を予測するための機械学習モデルは、ニューラルネットワークであり得る。たとえば、訓練データに基づいて、機械学習モデルは、ユーザが緩い右折について誤りを犯すときにはユーザがきつい右折をした可能性が高いと決定し得る。したがって、機械学習モデルは、操作のための交差点できつい右折をしたことに対応する場所にユーザがいるであろうと予測し得る。別の例では、訓練データに基づいて、機械学習モデルは、道路標識が見づらい場所でユーザが左折について誤りを犯すとき、および/または雑音水準が高いときには、ユーザが直進を続ける可能性が高いと決定し得る。したがって、機械学習モデルは、操作のための交差点を直進することに対応する場所にユーザがいるであろうと予測し得る。
【0058】
機械学習技法を使用したナビゲーション中の過誤を予測するための例示的な論理
図5は、
図2のナビゲーション過誤予測エンジン68が、例示的なシナリオにおける各操作に対するナビゲーション中の過誤をどのように予測するかを、概略的に示す。
図5のブロックのいくつかは、ハードウェアおよび/またはソフトウェア構成要素(たとえば、ブロック502)を表し、他のブロックは、これらのデータ構造、レジスタ、もしくは状態変数を記憶するデータ構造またはメモリを表し(たとえば、ブロック504、512、520)、他のブロックは出力データを表す(たとえば、ブロック506)。入力信号は、対応する信号名で標識された矢印により表現される。
【0059】
機械学習モデル520を生成するために、
図5の機械学習エンジン502がナビゲーション過誤予測エンジン68内に含まれ得る。機械学習モデル520を生成するために、機械学習エンジン502は、ユーザへのナビゲーション命令において以前に提供された第1の操作522を含む訓練データを、第1の操作が提供されたときの操作特性の第1のセット、およびユーザが操作を正しく実行したかどうかの第1の標示とともに受信する。訓練データはまた、同じまたは異なるユーザへナビゲーション命令において以前に提供された第2の操作524を、第2の操作が提供されたときの操作特性の第2のセット、およびユーザが操作を正しく実行したかどうかの第2の標示とともに含む。さらに、訓練データは、同じまたは異なるユーザに以前に提供された第3の操作526を、第3の操作が提供されたときの操作特性の第3のセット、およびユーザが操作を正しく実行したかどうかの第3の標示とともに含む。またさらに、訓練データは、同じまたは異なるユーザへ以前に提供された第nの操作528を、第nの操作が提供されたときの操作特性の第nのセット、およびユーザが操作を正しく実行したことの第nの標示とともに含む。
【0060】
例示的な訓練データが同じまたは異なるユーザに提供される4つの操作522~528を含むが、これは例示を簡単にすることのみを目的とする例にすぎない。訓練データは、任意の数のユーザからの任意の数の操作を含み得る。
【0061】
機械学習エンジン502は次いで、ユーザが操作を誤って実行する確率を決定するための、および/または操作を試みた後のユーザの場所を予測するための機械学習モデル520を生成するために、訓練データを分析する。いくつかの実施形態では、機械学習エンジン502は、ユーザが操作を誤って実行する確率を決定するための、および操作を試みた後のユーザの場所を予測するための別個の機械学習モデルを生成する。機械学習モデル520は線形回帰モデルとして示されるが、機械学習モデルは、ロジスティック回帰モデル、決定木、ニューラルネットワーク、超平面、または任意の他の適切な機械学習モデルなどの、別のタイプの回帰モデルであり得る。
【0062】
いずれにしても、ユーザによるナビゲーション進路に対する要求に応答して、
図5のシステムは、たとえば、ナビゲーションサーバ34からのファイルにおいてルートに対するナビゲーション命令504のセットを受信する。この例では、ナビゲーション命令504のセットは操作1~3の説明を含むが、一般に、ナビゲーション命令504のセットは任意の数の操作を含み得る。ナビゲーション命令504のセットの中の各操作に対して、システムは、ユーザのクライアントコンピューティングデバイス10の周りの外部環境512を示すセンサデータを含む操作特性を取得する。センサデータは、ユーザの車両の周りのエリアの交通データ、ユーザの車両の周りのエリアの時刻および/または気象データなどの可視データ、車両の中の背景音楽もしくは会話、街路の雑音、警笛、電話の呼び出しなどの、車両の中または周りの雑音水準を示す雑音データを含み得る。
【0063】
機械学習エンジン502は次いで、外部環境512を示すセンサデータを含む操作特性を機械学習モデル520に適用して、操作を実行するときにユーザが誤りを犯す確率を決定し得る。機械学習エンジン502はまた、操作特性を機械学習モデル520に適用して、操作を試みた後のユーザの場所を予測し得る。いくつかの実装形態では、機械学習モデル520は、操作を実行するときにユーザが誤りを犯す確率が閾値の確率(たとえば、0.25)を超えるとき、操作を試みた後のユーザの場所を予測する。
【0064】
たとえば、第1の操作506に対して、機械学習モデル520は、操作を実行するときにユーザが誤りを犯す確率が0.3であると決定する。機械学習モデル520は、操作を試みた後のユーザの場所が高速道路1上の出口34の北であると予測する。この例では、操作は出口34で高速道路1を降りることであった可能性があり、機械学習モデル520は、ユーザがその出口で降りなかった場合にユーザが高速道路1を直進する可能性が最も高いと決定し得る。
【0065】
いくつかの実施形態では、ナビゲーション過誤予測エンジン68は、操作を実行するときにユーザが誤りを犯す確率を閾値の確率と比較する。その確率が閾値の確率を超えると決定したことに応答して、ナビゲーション過誤予測エンジン68は、たとえば操作を試みた後のユーザの予測される場所から目的地への、ナビゲーション進路の代替のセットを生成し得る。ナビゲーション過誤予測エンジン68は、たとえば、ナビゲーションサーバ34からナビゲーション進路の代替のセットを受信し得る。ナビゲーション過誤予測エンジン68は、ナビゲーション進路の代替のセットをユーザのクライアントコンピューティングデバイス10に提供し得るので、ユーザのクライアントコンピューティングデバイス10は、ユーザが操作を試みた後にルートから外れる場合に、遅延なしでナビゲーション進路の代替のセットを提示し得る。
【0066】
いくつかの実装形態では、ナビゲーション過誤予測エンジン68は、操作を試みた後でユーザがいる可能性のある複数の場所からのナビゲーション進路の複数の代替のセットを生成する。たとえば、操作が高速道路1を出口34で降りることである場合、ナビゲーション過誤予測エンジン68は、出口34を過ぎた高速道路1からのナビゲーション進路の第1の代替のセット、出口33からのナビゲーション進路の第2の代替のセット、および出口35からのナビゲーション進路の第3の代替のセットを生成し得る。ナビゲーション過誤予測エンジン68は、ナビゲーション進路の各々の代替のセットをユーザのクライアントコンピューティングデバイス10に提供し得る。そして、ユーザが操作を実行するときに誤りを犯す場合、クライアントコンピューティングデバイス10は、操作を試みた後のユーザの現在地を決定することができ、ユーザの現在地に基づいてナビゲーション進路の代替のセットを選択することができる。たとえば、ユーザの現在地が出口35である場合、クライアントコンピューティングデバイス10は、出口35からナビゲーション進路の第3の代替のセットを提示し得る。
【0067】
またいくつかの実施形態では、ナビゲーション過誤予測エンジン68はまず、ナビゲーション命令の全体のセットをユーザのクライアントコンピューティングデバイス10に提供する。そして、各操作に対して、ナビゲーション過誤予測エンジン68は、外部環境512を示す特性を含む操作特性を受信し、機械学習モデル520に適用する。次に、機械学習モデル520は、ユーザが操作を誤って実行する確率を決定し、ナビゲーション過誤予測エンジン68は、その確率を閾値の確率と比較し、予防的な行動をとるかどうかを決定する。いくつかの実装形態では、ナビゲーション過誤予測エンジン68は、ユーザが前の操作を実行した後にユーザが操作を誤って実行する確率を決定する。他の実装形態では、ナビゲーション過誤予測エンジン68は、前の操作の前の操作が完了した後の、操作より所定の回数前の操作が完了した後の、または任意の他の適切な時間におけるその確率を決定する。
【0068】
例示的なナビゲーション表示
上で言及されたように、操作を実行するときにユーザが誤りを犯す確率が閾値の確率を超えるとナビゲーション過誤予測エンジン68が決定するとき、ナビゲーション過誤予測エンジン68は、誤りの発生を防ぐために、またはユーザのさらなる混乱および/もしくは誤りを防ぐために、予防的な行動をとり得る。これは、操作を試みた後のユーザの予測される場所から目的地へのナビゲーション進路の代替のセットを生成することを含み得る。予防的な行動はまた、今度の操作を実行するための難易度に関する警告を提供することを含み得る。
図6は、出発地から目的地へのルート602を示し、ルート上の操作に関する警告604を含む、例示的なナビゲーション表示600を示す。
図6に示されるように、操作は、2つのタイプの右折を含む五叉路におけるきつい右折を含む。ナビゲーション過誤予測エンジン68は、ユーザが操作を誤って実行する確率が0.4であると決定し得る。したがって、ナビゲーション過誤予測エンジン68は、ユーザの40%がきつい右折を逃すことを示す、ナビゲーション表示600に含めるべき警告604を提供し得る。警告604はまた、今度の操作のための場所に到達する前にユーザが代替のルートを選択するためのユーザコントロールの標示を含む。たとえば、ユーザは、右にスワイプして代替のナビゲーション進路を受け取ることができ、これはきつい右折をするのではなく五叉路を直進することを含む。
【0069】
他の実装形態では、ナビゲーション表示600は、前の操作のためのナビゲーション命令が提示されている間に、今度の操作のためのナビゲーション命令を提示し得る。このようにすると、前の操作を実行するか、または代替のナビゲーション進路を要求するかをユーザが決定できるように、ユーザは、ユーザが前の操作を実行する前に次の操作を認識させられることがある。加えて、ユーザが前の操作を完了するとすぐに次の操作を実行するために必要な対策をとることができるように、ユーザは次の操作を実行する準備ができていることがある。たとえば、第1の操作は、ユーザが4車線の高速道路の左車線へと合流するような、高速道路に乗ることであり得る。次の操作は、高速道路に乗ってから右車線を0.3マイル走り高速道路を降りることであり得る。このシナリオでは、高速道路を降りるためのナビゲーション命令は、高速道路に乗るためのナビゲーション命令とともに提示され得る。このようにすると、ユーザは、次の操作が難しすぎると決定することがあり、そして高速道路に乗らないことがあり、または、ユーザは、出口に到達する前に右車線に移れるように高速道路に乗るとすぐに車線を変更する準備をすることがある。
【0070】
さらに他の実装形態では、ナビゲーション過誤予測エンジン68は、その確率が閾値の確率を超えるとき、今度の操作のためのナビゲーション命令が繰り返されるようにし得る。ナビゲーション過誤予測エンジン68はまた、今度の操作を含むオーディオナビゲーション命令の音量を上げてもよく、今度の操作を含むナビゲーション命令を長くし、またはその詳細度を上げてもよく、今度の操作を含むナビゲーション表示600の明るさを上げてもよく、今度の操作を含むナビゲーション表示600のサイズを上げてもよく、それぞれクライアントコンピューティングデバイス10のスピーカーおよびディスプレイを介して音声と視覚の両方によるナビゲーション命令が提示されるようにしてもよい、などである。
【0071】
操作に対する過誤の確率を予測するための例示的な方法
図7は、ルートを進んでいくときのユーザによる過誤の確率を予測するための例示的な方法700の流れ図を示す。方法700は、コンピュータ可読メモリ上に記憶された、サーバデバイス60の1つまたは複数のプロセッサにおいて実行可能な、命令のセットにおいて実施され得る。たとえば、この方法は、ナビゲーション過誤予測エンジン68によって実施され得る。
【0072】
ブロック702において、ナビゲーション過誤予測エンジン68は、ユーザのクライアントコンピューティングデバイス10による出発地から目的地へのナビゲーション進路に対する要求を受信する。出発地は、クライアントコンピューティングデバイス10の現在地であり得る。いずれにしても、この要求に応答して、ナビゲーション過誤予測エンジン68は、ナビゲーション命令のセットを生成する(ブロック704)。ナビゲーション命令のセットは、テキストフォーマットで生成され得る。加えて、ナビゲーション過誤予測エンジン68は、ナビゲーションデータサーバ34に要求を転送し、ナビゲーションデータサーバ34からナビゲーション命令のセットを受信することによって、ナビゲーション命令のセットを生成し得る。
【0073】
次いで、ナビゲーション命令のセットの中の今度の操作に対して、ナビゲーション過誤予測エンジン68は、たとえばユーザが操作のための場所に到達する前に、ユーザが操作を誤って実行する確率を決定する(ブロック706)。いくつかの実施形態では、ナビゲーション過誤予測エンジン68は、今度の操作が右左折を含むとき、ユーザが今度の操作を誤って実行する確率を決定する。今度の操作が右左折を含まない(たとえば、今度の操作が直進することである)場合、ナビゲーション過誤予測エンジン68は、リソースを節約して過剰な処理およびデータ検索をなくすために、ユーザが操作を誤って実行する確率を決定しなくてもよい。
【0074】
より具体的には、ナビゲーション過誤予測エンジン68は、操作自体の特性を含む今度の操作の特性(たとえば、操作のタイプ、前の操作および/もしくはユーザの現在地に基づく最初の車線位置、操作を実行するための最後の車線位置、操作と前の操作との間の距離および/もしくは時間、操作の複雑度など)、ならびに/または、操作に関する環境の特性(たとえば、操作を実行する車両内の雑音水準、操作の場所、操作が実行される道路の交通量、車両の速度、車両が操作の場所に接近する際に緊急車両がその車両とすれ違ったかどうかなど)を取得し得る。
【0075】
ナビゲーション過誤予測エンジン68は次いで、これらの特性に基づいて、ユーザが操作を誤って実行する確率を決定し得る。たとえば、この確率は、より高い雑音水準に対してより高いことがある。別の例では、この確率は、より高い操作の複雑度に対してより高いことがある。いくつかの実装形態では、ナビゲーション過誤予測エンジン68は、これらの特性のうちの1つまたは複数にスコアを割り当て、そして、任意の適切な方式で特性スコアを組み合わせて、今度の操作に対する総スコアを生成し得る。ナビゲーション過誤予測エンジン68は次いで、総スコアに従って、ユーザが操作を誤って実行する確率を決定し得る。他の実装形態では、ナビゲーション過誤予測エンジン68は、機械学習技法を利用して、様々な操作および/または環境でのユーザの過去の経験に基づき機械学習モデルを生成し、ユーザが操作を誤って実行する確率を決定し得る。
【0076】
ブロック708において、ナビゲーション過誤予測エンジン68は、その確率を閾値の確率と比較する。その確率が閾値の確率を超える場合、ナビゲーション過誤予測エンジン68は、誤りの発生を防ぐために、またはユーザのさらなる混乱および/もしくは誤りを防ぐために、予防的な行動をとり得る。
【0077】
いくつかの実装形態では、ナビゲーション過誤予測エンジン68は、操作を試みた後のユーザの場所を予測する(ブロック710)。たとえば、ナビゲーション過誤予測エンジン68は、ユーザが操作の場所において実行できる代替の操作に基づくなどして、操作の場所に基づいて操作を試みた後のユーザの場所を予測し得る。
【0078】
ナビゲーション過誤予測エンジン68は、ユーザが操作の場所において実行できる代替の操作に基づいて、操作を試みた後のユーザの場所の候補を特定し得る。次いで、ナビゲーション過誤予測エンジン68は、操作を試みた後にユーザが候補の場所に到達する確率に基づいて、場所の候補の各々にスコアを割り当てることができ、割り当てられたスコアに従って場所の候補を順位付けることができる。より具体的には、ナビゲーション過誤予測エンジン68は、操作の場所、ユーザが操作の場所に接近する際にユーザがルート上を移動している方向、操作のタイプ、および/または、ユーザが操作の場所において実行できる代替の操作に基づいて、各々の場所の候補を特定および/またはスコアリングし得る。ナビゲーション過誤予測エンジン68は、最高のスコアを有する場所の候補を、操作を試みた後のユーザの予測される場所として選択し得る。他の実装形態では、上で説明されたように、ナビゲーション過誤予測エンジン68は、操作の特性を機械学習モデルに適用することによって、操作を試みた後のユーザの場所を予測し得る。
【0079】
いずれにしても、ナビゲーション過誤予測エンジン68は次いで、操作に対応しない場所(すなわち、元のルートの経路から外れた場所)から目的地への代替のルートのためのナビゲーション進路の代替のセットを生成し得る(ブロック712)。操作に対応しない場所は、ユーザの予測される場所であり得る。他の実装形態では、ナビゲーション過誤予測エンジン68は、操作を試みた後でユーザがいる可能性のある複数の場所からのナビゲーション進路の複数の代替のセットを生成する。ナビゲーション過誤予測エンジン68は、ユーザが操作の場所に到達する前にナビゲーション進路の代替の1つまたは複数のセットをユーザのクライアントコンピューティングデバイス10に提供し得るので、ユーザのクライアントコンピューティングデバイス10は、ユーザが操作を試みた後にルートから外れる場合に、遅延なしでナビゲーション進路の代替のセットを提示し得る。
【0080】
そしてブロック714において、ナビゲーション過誤予測エンジン68は、ユーザが目的地に到達するかどうかを決定し得る。ユーザが目的地に到達する場合、処理は終了する。それ以外の場合、ナビゲーション過誤予測エンジン68は、ユーザが次の今度の操作を誤って実行する確率を決定し得る(ブロック706)。
【0081】
追加の考慮事項
以下の追加の考慮事項が、上記の議論に適用される。本明細書の全体にわたって、複数のインスタンスは、単一のインスタンスとして説明された構成要素、動作、または構造を実装し得る。1つまたは複数の方法の個々の動作が、別個の動作として示され説明されているが、個々の動作のうちの1つまたは複数は、同時に実行されることがあり、それらの動作が図示された順序で実行されることを要求するものは何もない。例示的な構成において別個の構成要素として提示された構造および機能は、組み合わせられた構造または構成要素として実装され得る。同様に、単一の構成要素として提示された構造および機能は、別個の構成要素として実装され得る。これらおよび他の変形、変更、追加、および改良は、本開示の主題の範囲内に入る。
【0082】
加えて、いくつかの実施形態が、論理、またはいくつかの構成要素、モジュール、もしくは機構を含むものとして、本明細書で説明されている。モジュールは、ソフトウェアモジュール(たとえば、機械可読媒体に記憶されたコード)、またはハードウェアモジュールのいずれかを構成し得る。ハードウェアモジュールは、いくつかの動作を実行することが可能な有形のユニットであり、ある方法で構成または配置され得る。例示的な実施形態では、1つまたは複数のコンピュータシステム(たとえば、スタンドアロン、クライアント、またはサーバコンピュータシステム)、またはコンピュータシステムの1つまたは複数のハードウェアモジュール(たとえば、プロセッサ、またはプロセッサのグループ)は、本明細書において説明されるようないくつかの動作を実行するように動作するハードウェアモジュールとして、ソフトウェア(たとえば、アプリケーション、またはアプリケーション部分)によって構成され得る。
【0083】
様々な実施形態では、ハードウェアモジュールは、機械的または電子的に実装され得る。たとえば、ハードウェアモジュールは、いくつかの動作を実行するように(たとえば、フィールドプログラマブルゲートアレイ(FPGA)、または特定用途向け集積回路(ASIC)などの専用プロセッサとして)永続的に構成される、専用回路または論理を備え得る。ハードウェアモジュールはまた、いくつかの動作を実行するようにソフトウェアによって一時的に構成される、(たとえば、汎用プロセッサまたは他のプログラマブルプロセッサに包含されるような)プログラマブル論理または回路を備え得る。ハードウェアモジュールを機械的に、専用の永続的に構成された回路において、または(たとえば、ソフトウェアによって構成された)一時的に構成された回路において実装するための判断は、コストおよび時間の考慮事項によって駆り立てられ得ることが理解されるだろう。
【0084】
したがって、ハードウェアという用語は、ある方式で動作するように、または本明細書において説明されるいくつかの動作を実行するように、物理的に構築されるエンティティであるか、永続的に構成される(たとえば、ハードワイヤード)エンティティであるか、または一時的に構成される(たとえば、プログラムされる)エンティティであるかにかかわらず、有形のエンティティを包含するものとして理解されるべきである。本明細書において使用される場合、「ハードウェアで実装されたモジュール」はハードウェアモジュールを指す。ハードウェアモジュールが一時的に構成される(たとえば、プログラムされる)実施形態を考えると、ハードウェアモジュールの各々は、時間内にいずれか1つのインスタンスにおいて構成またはインスタンス化される必要はない。たとえば、ハードウェアモジュールが、ソフトウェアを使用して構成された汎用プロセッサを備える場合、汎用プロセッサは、異なる時間にそれぞれの異なるハードウェアモジュールとして構成され得る。それに応じて、ソフトウェアは、たとえば、ある時間のインスタンスにおいて特定のハードウェアモジュールを構成するように、および、異なる時間のインスタンスにおいて異なるハードウェアモジュールを構成するように、プロセッサを構成し得る。
【0085】
ハードウェアモジュールは、他のハードウェアに情報を提供し、他のハードウェアから情報を受信することができる。したがって、説明されるハードウェアモジュールは、通信可能に結合されているように見なされ得る。そのようなハードウェアモジュールのうちの複数が同時に存在する場合、通信は、それらのハードウェアモジュールを接続する(たとえば、適切な回路およびバスを介した)信号送信を通じて達成され得る。複数のハードウェアモジュールが、異なる時間に構成またはインスタンス化される実施形態では、そのようなハードウェアモジュール間の通信は、たとえば、それらの複数のハードウェアモジュールがそれへのアクセス権を有するメモリ構造における情報の記憶および取出しを通じて達成され得る。たとえば、あるハードウェアモジュールは、動作を実行し、それが通信可能に結合されるメモリデバイスにその動作の出力を記憶し得る。次いで、さらなるハードウェアモジュールは、後で、メモリデバイスにアクセスして、記憶された出力を取り出して処理し得る。ハードウェアモジュールはまた、入力または出力デバイスとの通信を開始することがあり、リソース(たとえば、情報の集合)において動作することができる。
【0086】
方法700は、非一時的コンピュータ可読記憶媒体に記憶されコンピューティングデバイス(たとえば、本明細書において説明されるように、サーバデバイス、パーソナルコンピュータ、スマートフォン、タブレットコンピュータ、スマートウォッチ、モバイルコンピューティングデバイス、または他のクライアントコンピューティングデバイス)のプロセッサを使用して実行される、有形のコンピュータ実行可能命令の形式で、1つまたは複数の機能ブロック、モジュール、個々の関数またはルーチンを含み得る。方法700は、任意のバックエンドサーバ(たとえば、本明細書において説明されるような、地図データサーバ、ナビゲーションサーバ、または任意の他のタイプのサーバコンピューティングデバイス)、例示的な環境のクライアントコンピューティングデバイスモジュールの一部として、たとえば、またはそのような環境の外部のモジュールの一部として含まれ得る。説明を簡単にするために、図は他の図を参照して説明され得るが、方法700は、他の物体およびユーザインターフェースについて利用され得る。さらに、上の説明は、方法700のステップが特定のデバイス(サーバデバイス60またはクライアントコンピューティングデバイス10など)によって実行されることを説明するが、これは例示を目的に行われるものにすぎない。方法700のブロックは、1つまたは複数の他のデバイスまたは環境の他の部分によって実行され得る。
【0087】
本明細書において説明される例示的な方法の様々な動作は、関連する動作を実行するように、(たとえば、ソフトウェアによって)一時的に構成されるか、または永続的に構成される、1つまたは複数のプロセッサによって、少なくとも部分的に実行され得る。一時的に構成されるか、永続的に構成されるかにかかわらず、そのようなプロセッサは、1つもしくは複数の動作または機能を実行するように動作する、プロセッサ実装モジュールを構成し得る。本明細書で言及されるモジュールは、いくつかの例示的な実施形態では、プロセッサで実装されるモジュールを備え得る。
【0088】
同様に、本明細書で説明される方法またはルーチンは、少なくとも部分的にプロセッサで実施され得る。たとえば、方法の動作のうちの少なくともいくつかは、1つまたは複数のプロセッサ、またはプロセッサで実装されるハードウェアモジュールによって実行され得る。動作のうちのいくつかの実行は、単一のマシン内に存在するだけではなく、いくつかのマシンにわたって展開された、1つまたは複数のプロセッサの間で分散され得る。いくつかの例示的な実施形態では、1つまたは複数のプロセッサは、単一の場所に(たとえば、住宅環境、オフィス環境内に、またはサーバファームとして)位置し得るが、他の実施形態では、プロセッサは、いくつかの場所にわたって分散され得る。
【0089】
1つまたは複数のプロセッサはまた、「クラウドコンピューティング」環境において、またはSaaSとして、関連する動作の実行をサポートするように動作し得る。たとえば、上で示されるように、動作のうちの少なくともいくつかは、(プロセッサを含むマシンの例としての)コンピュータのグループによって実行されることがあり、これらの動作は、ネットワーク(たとえば、インターネット)を介して、および1つまたは複数の適切なインターフェース(たとえば、API)を介してアクセス可能である。
【0090】
またさらに、図は、例示のみを目的に、例示的な環境のいくつかの実施形態を示す。本明細書において示される構造および方法の代替の実施形態は、本明細書において説明される原理から逸脱することなく利用され得ることを、以下の議論から当業者は容易に認識するだろう。
【0091】
本開示を読めば、本明細書で開示される原理を通じて、ルートを進んでいくときのユーザによる過誤の確率を予測するためのさらに追加の代替の構造的および機能的設計を、当業者は理解するだろう。したがって、特定の実施形態および適用例が示され説明されたが、開示される実施形態は、本明細書で開示される厳密な構造および構成要素に限定されないことを理解されたい。当業者に明らかになる、様々な変更、変化、および変形が、添付の特許請求の範囲において定義された趣旨および範囲から逸脱することなく、本明細書で開示される方法および装置の配置、動作、および詳細において行われ得る。
【符号の説明】
【0092】
10 クライアントコンピューティングデバイス
12 GPU
14 ヘッドユニット
16 CPU
18 ディスプレイ
19 センサ
20 メモリ
22 地図アプリケーション
24 ナビゲーション表示
26 OS
30 ネットワーク
32 UI
34 ナビゲーションデータサーバ
50 地図データサーバ
60 サーバデバイス
62 プロセッサ
64 メモリ
68 ナビゲーション過誤予測エンジン
80 データベース
410 操作特性
420 結果
502 機械学習エンジン
512 外部環境
520 機械学習モデル