IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ グーグル インコーポレイテッドの特許一覧

特許7399891ナビゲーション中に難しい操縦についての追加の命令を提供すること
<>
  • 特許-ナビゲーション中に難しい操縦についての追加の命令を提供すること 図1
  • 特許-ナビゲーション中に難しい操縦についての追加の命令を提供すること 図2
  • 特許-ナビゲーション中に難しい操縦についての追加の命令を提供すること 図3
  • 特許-ナビゲーション中に難しい操縦についての追加の命令を提供すること 図4
  • 特許-ナビゲーション中に難しい操縦についての追加の命令を提供すること 図5
  • 特許-ナビゲーション中に難しい操縦についての追加の命令を提供すること 図6
  • 特許-ナビゲーション中に難しい操縦についての追加の命令を提供すること 図7
  • 特許-ナビゲーション中に難しい操縦についての追加の命令を提供すること 図8
  • 特許-ナビゲーション中に難しい操縦についての追加の命令を提供すること 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-08
(45)【発行日】2023-12-18
(54)【発明の名称】ナビゲーション中に難しい操縦についての追加の命令を提供すること
(51)【国際特許分類】
   G01C 21/36 20060101AFI20231211BHJP
   G08G 1/0969 20060101ALN20231211BHJP
【FI】
G01C21/36
G08G1/0969
【請求項の数】 12
(21)【出願番号】P 2020568674
(86)(22)【出願日】2019-12-17
(65)【公表番号】
(43)【公表日】2022-03-09
(86)【国際出願番号】 US2019066893
(87)【国際公開番号】W WO2021126170
(87)【国際公開日】2021-06-24
【審査請求日】2021-02-18
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】アレクス・クラクン
(72)【発明者】
【氏名】マット・シャリフィ
【審査官】▲高▼木 真顕
(56)【参考文献】
【文献】米国特許出願公開第2015/0276421(US,A1)
【文献】特開2007-040809(JP,A)
【文献】特開2008-064483(JP,A)
【文献】特開2009-264860(JP,A)
【文献】米国特許出願公開第2017/0314954(US,A1)
【文献】特表2019-529945(JP,A)
【文献】特開2007-256185(JP,A)
【文献】米国特許出願公開第2012/0191343(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G01C 21/00 - 21/36
G08G 1/00 - 99/00
G09B 29/00 - 29/10
G06N 3/00 - 99/00
(57)【特許請求の範囲】
【請求項1】
ナビゲーション命令を提供する方法であって、
1つまたは複数のプロセッサによって、a)複数のロケーションおよびb)前記複数のロケーションにおいて1つまたは複数の車両によって実行されるかまたは試行される1つまたは複数の操縦のセットを記述するデータセットを受信するステップであって、前記データセットが前記複数のロケーションにおけるロケーション特徴を表すストリートレベルの画像を含む、ステップと、
前記1つまたは複数のプロセッサによって、ロケーション特徴及び操作のセットと難易度のメトリックとの間の相関を学習することによって、前記ロケーション特徴及び操縦のセットについての難易度のメトリックを生成することができるような機械学習モデルを構成するために、前記データセットを使用して前記機械学習モデルをトレーニングするステップと、
前記1つまたは複数のプロセッサによって、(i)ロケーションおよび(ii)前記ロケーションにおいて車両によって実行されるべき操縦の指示を含むクエリデータを受信するステップと、
前記1つまたは複数のプロセッサによって、前記操縦についての難易度のメトリックを生成するために、前記クエリデータを前記機械学習モデルに適用するステップと、
前記1つまたは複数のプロセッサによってユーザインターフェースを介して、前記操縦についてのナビゲーション命令や前記ストリートレベルの画像を提供するステップであって、
前記生成された難易度のメトリックに基づいて前記ナビゲーション命令の少なくとも1つのパラメータを選択するステップを含む、ステップと
を含む方法。
【請求項2】
前記生成された難易度のメトリックに基づいて前記少なくとも1つのパラメータを選択するステップが、
前記難易度のメトリックが難易度しきい値を超えるときに、前記ナビゲーション命令のより高い詳細レベルを選択するステップと、
前記難易度のメトリックが前記難易度しきい値を超えないときに、前記ナビゲーション命令のより低い詳細レベルを選択するステップと
を含む、請求項1に記載の方法。
【請求項3】
前記少なくとも1つのパラメータが、前記ナビゲーション命令を提供する前記ステップと前記車両が前記ロケーションに到着することとの間の時間間隔を含み、
前記生成された難易度のメトリックに基づいて前記少なくとも1つのパラメータを選択するステップが、
前記難易度のメトリックが前記難易度しきい値を超えるときに、より長い時間間隔を選択するステップと、
前記難易度のメトリックが前記難易度しきい値を超えないときに、より短い時間間隔を選択するステップと
を含む、請求項1または2に記載の方法。
【請求項4】
前記少なくとも1つのパラメータを選択するステップが、前記生成された難易度のメトリックに基づいて、前記ナビゲーション命令が視覚ランドマークを含むべきかどうかを判定するステップを含む、請求項1、2または3に記載の方法。
【請求項5】
前記データセットを受信するステップが、前記複数のロケーションおよび前記クエリデータにおいて示された前記ロケーションについての衛星画像をさらに受信するステップを含み、
前記機械学習モデルが、ロケーション間の視覚類似性を考慮して前記操縦のセットについての前記難易度のメトリックを生成する、
請求項1から4のいずれか一項に記載の方法。
【請求項6】
前記データセットを受信するステップが、前記複数のロケーションおよび前記クエリデータにおいて示された前記ロケーションについての(i)衛星画像、(ii)マップデータ、または(iii)車両センサデータのうちの少なくとも1つを受信するステップを含み、
前記機械学習モデルをトレーニングするステップが、前記1つまたは複数のプロセッサによって、対応するロケーションにおける道路ジオメトリを判定するために特徴抽出関数を前記データセットに適用するステップを含み、
前記機械学習モデルが、ロケーション間の道路ジオメトリの類似性を考慮して前記操縦のセットについての前記難易度のメトリックを生成する、
請求項1から5のいずれか一項に記載の方法。
【請求項7】
前記データセットを受信するステップが、前記1つまたは複数の車両が対応する操縦を完了するのにどのくらい時間がかかったかの指示を受信するステップを含み、
前記機械学習モデルが、それぞれのロケーションにおける前記操縦の相対的な持続時間を考慮して前記操縦についての前記難易度のメトリックを生成する、
請求項1から6のいずれか一項に記載の方法。
【請求項8】
前記データセットを受信するステップが、対応する操縦を試行するときに前記1つまたは複数の車両がたどったナビゲーションルートの指示を受信するステップを含み、
前記機械学習モデルが、前記車両が前記対応する操縦を完了したかまたは省略したかを考慮して前記操縦のセットについての前記難易度のメトリックを生成する、
請求項1から7のいずれか一項に記載の方法。
【請求項9】
ユーザデバイスにおいて実装され、前記データセットを受信するステップが、ネットワークサーバから前記データセットを受信するステップを含む、請求項1から8のいずれか一項に記載の方法。
【請求項10】
ネットワークサーバにおいて実装され、前記ユーザインターフェースを介して前記ナビゲーション命令を提供するステップが、前記ユーザインターフェースを介して表示のために前記ナビゲーション命令をユーザデバイスに送るステップを含む、請求項1から9のいずれか一項に記載の方法。
【請求項11】
システムであって、
処理ハードウェアと、
命令を記憶した非一時的コンピュータ可読メモリと
を備え、前記命令が、前記処理ハードウェアによって実行されると、前記システムに請求項1から10のいずれか一項に記載の方法を実装させる、
システム。
【請求項12】
ナビゲーション命令を提供するためのユーザデバイスにおける方法であって、
処理ハードウェアによってユーザインターフェースを介して、出発地から目的地まで走行するためのナビゲーション命令を提供するという要求を受信するステップと、
前記処理ハードウェアによって、前記出発地から前記目的地までのナビゲーションルートを取得するステップであって、
前記ナビゲーションルートが、請求項1から10のいずれか1項に記載の方法または請求項11に記載のシステムによって提供されるようなナビゲーション命令を含む、ステップと
を含む方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、ナビゲーション命令を生成することに関し、より詳細には、操縦(maneuver)の難易度を判定し、判定された難易度を考慮して操縦に関連するナビゲーション命令の1つまたは複数のパラメータを調整することに関する。
【背景技術】
【0002】
本明細書で提供される背景技術の説明は、本開示の文脈をおおまかに提示することを目的とする。この背景技術の項で説明される範囲での目下名前が挙げられている発明者の研究、ならびに出願の時点で従来技術として他の形で認定され得ない説明の態様は、本開示に対する従来技術として明示的にも黙示的にも認められない。
【0003】
現在、コンピュータ、スマートフォンなどまたは組み込みデバイスにおいて実行する様々なソフトウェアアプリケーションは、ステップバイステップのナビゲーション指令を生成する。典型的には、ユーザが出発点および目的地を指定し、ソフトウェアアプリケーションが出発点から目的地までのナビゲーションルートを取得する。次いで、ユーザがナビゲーションルートに沿って走行すると、ソフトウェアアプリケーションがナビゲーション命令を生成する。たとえば、ソフトウェアアプリケーションは、「500フィート先で、メインストリートを左折してください」という命令を生成し、発声することができる。
【0004】
場合によっては、たとえば、詳細の量を増やすまたは減らすために、ナビゲーション命令を修正することが望ましいことがある。しかしながら、詳細レベルを変化させるのに適している操縦、またはそのような操縦が行われるロケーションを自動的に識別することは、依然として難しい技術作業である。
【発明の概要】
【課題を解決するための手段】
【0005】
一般に言えば、本開示のシステムは、いくつかの識別可能なパラメータを有するそれぞれの地理的ロケーション(たとえば、いくつかのジオメトリを有するいくつかのタイプの交差点)において運転者が施行し、場合によっては完了した様々な操縦(たとえば、いくつかのタイプの転回、合流、標識に起因する停止)を記述するデータセット、ならびに過去の操縦データが入手できないロケーションを記述するデータを、対応するロケーションにおける操縦の難易度の定量的なメトリックを生成するために効率的に処理する。完了したまたは試行された操縦に関連するデータの場合、データセットが、運転者が操縦を成功裏に完了したかどうか、運転者が操縦を完了するのにかかった時間などの明示的な指示を含むことができるか、またはシステムが、データセット中のその他のパラメータからこの情報を導出することができる。いずれの場合も、一定のロケーションについて、システムは、一定の操縦を行うことに関連付けられた難易度の定量的なメトリックを生成することができる。このために、システムは、データセットを使用して機械学習モデルをトレーニングし、このモデルを、以前のデータが入手できないロケーションを含む様々なロケーションおよび操縦に適用することができる。
【0006】
実装形態に応じて、システムは、運転者固有のモデルを(たとえば、運転者が運転者のパーソナルコンピューティングデバイス上でローカルに記憶され得るそのようなモデルに対する自分の願望を表すときに)構築することによって、すべての潜在的な運転者または特定の運転者のための難易度の定量的なメトリックを生成することができる。
【0007】
システムは、一定のロケーションにおける操縦に関連するナビゲーション命令の1つまたは複数のパラメータを変化させるために、そのロケーションにおける操縦の生成された難易度のメトリックを使用することができる。たとえば、システムは、詳細レベルを上げるもしくは下げるおよび/またはナビゲーション命令を提供するタイミングを変化させることができる。さらに、システムは、ロケーションにおける操縦を含むナビゲーションルートを変化させ、場合によっては、ロケーションの周囲にユーザをナビゲートするために、生成された難易度のメトリックを使用することができる。またさらに、判定された操縦の難易度を考慮して自律(または「自動運転」)車両が操縦を実行する方法を調整するために、自律車両において類似の技法が実装され得る。
【0008】
システムは、電動式二輪車(たとえば、オートバイ)または非電動式二輪車(たとえば、自転車)などの他の輸送手段の操縦の難易度を評価するための類似の技法を適用することができる。
【0009】
これらの技法の1つの例示的な実施形態は、命令を提供するための方法である。方法は、1つまたは複数のプロセッサによって実行されることが可能であり、複数のロケーションおよびそのロケーションにおいて1つまたは複数の車両によって試行される1つまたは複数の操縦のセットを記述するデータセットを受信するステップを含む。方法は、操縦のセットについての難易度のメトリックを生成するように機械学習モデルを構成するために、データセットを使用して機械学習モデルをトレーニングするステップをさらに含む。またさらに、方法は、ロケーションおよびそのロケーションにおいて車両によって実行されるべき操縦の指示を含むクエリデータを受信するステップと、操縦についての難易度のメトリックを生成するために、クエリデータを機械学習モデルに適用するステップと、ユーザインターフェースを介して、操縦についてのナビゲーション命令を提供するステップであって、生成された難易度のメトリックに基づいてナビゲーション命令の少なくとも1つのパラメータを選択するステップを含む、ステップとを含む。
【0010】
機械学習モデルは、教師あり方式または教師なし方式でトレーニングされてもよい。
【0011】
各ロケーションは、道路網のロケーションを示してもよく、さらに、そのロケーションにおける道路ジオメトリを示してもよい。たとえば、各ロケーションは、そのロケーションにおける道路網の1つまたは複数の道路合流点を示してもよい。操縦のセットは、たとえば、左折する、右折する、直進するなどの、所与のロケーションにおいて道路網に対して車両が行うことができる操縦であってもよい。
【0012】
操縦のセットについての難易度のメトリックは、車両の操作者が操縦を成功裏に実行する確率を示してもよい。
【0013】
生成された難易度のメトリックに基づいて少なくとも1つのパラメータを選択するステップは、難易度のメトリックが難易度しきい値を超えるときに、ナビゲーション命令のより高い詳細レベルを選択するステップと、難易度のメトリックが難易度しきい値を超えないときに、ナビゲーション命令のより低い詳細レベルを選択するステップとを含んでもよい。ナビゲーション命令のより高い詳細レベルを提供することは、より多い数の命令を提供することを含んでもよく、ナビゲーション命令のより低い詳細レベルを提供することは、より少ない数の命令を提供することを含んでもよい。
【0014】
少なくとも1つのパラメータは、ナビゲーション命令を提供するステップと車両がロケーションに到着することとの間の時間間隔を含んでもよく、生成された難易度のメトリックに基づいて少なくとも1つのパラメータを選択するステップは、難易度のメトリックが難易度しきい値を超えるときに、より長い時間間隔を選択するステップと、難易度のメトリックが難易度しきい値を超えないときに、より短い時間間隔を選択するステップとを含んでもよい。
【0015】
いくつかの実装形態では、少なくとも1つのパラメータは、ナビゲーション命令の詳細レベルと、ナビゲーション命令を提供するステップと車両がロケーションに到着することとの間の時間間隔の両方を含む。
【0016】
少なくとも1つのパラメータを選択するステップは、生成された難易度のメトリックに基づいて、ナビゲーション命令が視覚ランドマークを含むべきかどうかを判定するステップを含んでもよい。
【0017】
データセットを受信するステップは、複数のロケーションおよびクエリにおいて示されたロケーションについての(i)衛星画像または(ii)ストリートレベルの画像のうちの少なくとも1つを受信するステップを含んでもよく、機械学習モデルは、ロケーション間の視覚類似性を考慮して操縦のセットについての難易度のメトリックを生成する。
【0018】
データセットを受信するステップは、複数のロケーションおよびクエリにおいて示されたロケーションについての(i)衛星画像、(ii)マップデータ、または(iii)車両センサデータのうちの少なくとも1つを受信するステップを含んでもよく、機械学習モデルをトレーニングするステップは、1つまたは複数のプロセッサによって、対応するロケーションにおける道路ジオメトリを判定するために特徴抽出関数をデータセットに適用するステップを含み、機械学習モデルは、ロケーション間の道路ジオメトリの類似性を考慮して操縦のセットについての難易度のメトリックを生成する。
【0019】
データセットを受信するステップは、1つまたは複数の車両が対応する操縦を完了するのにどのくらい時間がかかったかの指示を受信するステップを含んでもよく、機械学習モデルは、それぞれのロケーションにおける操縦の相対的な持続時間を考慮して操縦についての難易度のメトリックを生成する。
【0020】
データセットを受信するステップは、対応する操縦を試行するときに1つまたは複数の車両がたどったナビゲーションルートの指示を受信するステップを含んでもよく、機械学習モデルは、車両が対応する操縦を完了したかまたは省略したかを考慮して操縦のセットについての難易度のメトリックを生成する。
【0021】
指示ロケーションは、データセットにおいて参照されないことがある。
【0022】
方法は、ユーザデバイスにおいて実装されてもよく、データセットを受信するステップは、ネットワークサーバからデータセットを受信するステップを含む。
【0023】
方法は、ネットワークサーバにおいて実装されてもよく、ユーザインターフェースを介してナビゲーション命令を提供するステップは、ユーザインターフェースを介して表示のためにナビゲーション命令をユーザデバイスに送るステップを含む。
【0024】
方法はまた、ユーザデバイスとネットワークサーバの両方において実装されてもよい。たとえば、モデルをトレーニングすることに関する態様は、ネットワークサーバにおいて実行されてもよく、モデルを使用することに関する態様は、ユーザデバイスにおいて実行されてもよい。
【0025】
これらの技法の別の例示的な実施形態は、ナビゲーション命令を提供するためのユーザデバイスにおける方法であり、方法は、処理ハードウェアによってユーザインターフェースを介して、出発地から目的地まで走行するためのナビゲーション命令を提供するという要求を受信するステップと、処理ハードウェアによって、出発地から目的地までのナビゲーションルートを取得するステップであって、ナビゲーションルートが、上記で説明された方法によって提供されるようなナビゲーション命令を含む、ステップとを含む。
【0026】
これらの技法の別の例示的な実施形態は、処理ハードウェアと、命令を記憶する非一時的コンピュータ可読媒体とを含むシステムである。命令は、処理ハードウェアによって実行されると、システムに上記の方法を実行させる。
【0027】
これらの技法のさらに別の例示的な実施形態は、ナビゲーション命令を提供するためのユーザデバイスにおける方法である。方法は、処理ハードウェアによって実行されることが可能であり、ユーザインターフェースを介して、出発地から目的地まで走行するためのナビゲーション命令を提供するという要求を受信するステップと、出発地から目的地までのナビゲーションルートを取得するステップであって、ナビゲーションルートが、ロケーションにおいて実施された過去の操縦を記述するデータが入手できない、そのロケーションにおける一定のタイプの操縦を含む、ステップと、そのロケーションについてのナビゲーション命令を提供するステップとを含む。ナビゲーション命令は、操縦の難易度のレベルを考慮して修正される少なくとも1つのパラメータを含み、難易度のレベルは、他のロケーションにおいて実施される同じタイプの操縦に対する操縦の類似度の1つまたは複数のメトリックに基づいて判定される。
【0028】
難易度のレベルを考慮して修正される少なくとも1つのパラメータは、ナビゲーション命令の詳細レベルであってもよい。難易度のレベルを考慮して修正される少なくとも1つのパラメータは、ナビゲーション命令を提供するステップと車両がロケーションに到着することとの間の時間間隔であってもよい。
【0029】
これらの技法の別の例示的な実施形態は、処理ハードウェアと、命令を記憶する非一時的コンピュータ可読媒体とを含むユーザデバイスである。命令は、処理ハードウェアによって実行されると、ユーザデバイスに上記の方法を実行させる。
【0030】
1つの実施形態の任意選択の特徴は、適切な場合には、任意の他の実施形態と組み合わされてもよい。
【図面の簡単な説明】
【0031】
図1】操縦の難易度の定量的なメトリックを考慮してナビゲーション命令を生成するための技法が実装され得る、例示的なコンピューティング環境を示す図である。
図2図1のコンピューティング環境において実装され得る、ナビゲーション命令を生成するときに操縦の難易度のメトリックを生成するために機械学習モデルを使用する例示的な方法の流れ図である。
図3図1の環境において実装された機械学習モデルが処理することができる、道路配置の類似性を有するそれぞれの地理的ロケーションにおける4つの右折操縦のセットを示す図である。
図4図1の環境において実装された機械学習モデルが処理することができる、道路配置の類似性を有する地理的ロケーションにおける4つの右折操縦の別のセットを示す図である。
図5図1の環境において実装された機械学習モデルが処理することができる、環状交差点を含む地理的ロケーションにおける4つの左折操縦のセットを示す図である。
図6図1の環境において実装された機械学習モデルが処理することができる、ロケーションにおける地形情報が示される、地理的ロケーションにおける4つの左折操縦のセットを示す図である。
図7図1の環境において実装された機械学習モデルが処理することができる、類似のロケーションにおける類似の左折操縦のセットに対応する4つのストリートレベルのフレームを示す図である。
図8図1の環境において実装された機械学習モデルが処理することができる、4つの類似の右折の文脈における4つのストリートレベルのフレームを示す図である。
図9】左折に失敗した直後に車両操作者によって実行され得る4つの修正操縦を示す図であり、図1の環境において実装された機械学習モデルは、その左折を使用して操縦の難易度を評価することができる。
【発明を実施するための形態】
【0032】
概要
本開示のナビゲーションシステムおよび方法は、操縦の難易度のメトリックを考慮して、車両を操作するユーザにナビゲーション命令を提供することができる。ナビゲーションシステムは、これらの指示を自律(または「自動運転」)車両に提供することもできるが、簡潔にするために、以下の例は、人間のユーザ、または自動車、トラック、オートバイ、自転車などの車両の「操作者」に言及する。ナビゲーションシステムは、特定のユーザのための「主観的な」難易度のメトリック(たとえば、環状交差点はユーザXにとっては難しい操縦である)および/またはすべてのユーザに適用可能な「客観的な」難易度のメトリック(たとえば、特定の交差点における左折は道路が交差する角度のせいで難しい)を生成することができる。以下で論じられるように、様々な実装形態におけるナビゲーションシステムは、機械学習技法を使用して、操縦、ロケーション、運転者の挙動などの間の関係を自動的に判定する。
【0033】
操縦についての難易度のメトリックは、場合によっては、操作者が操縦を成功裏に実行する確率を示す。いくつかの実装形態またはシナリオでは、操縦を実行することの成功は、操縦に失敗し、それに続いて代替ルートを取るのではなく、時間制限なしで操縦を完了することに対応することができる。他の実装形態またはシナリオでは、操縦を実行することの成功は、一定の時間内で操縦を安全に完了することに対応することができる。たとえば、車両の操作者が、転回に失敗しそうになって非常に唐突に曲がるか、または逆に、予想される遅延の一定のしきい値を超えて減速する場合、ナビゲーションシステムは、操作者が操縦を完了するのに失敗したと判定することができる。ナビゲーションシステムは、場合によっては、特に操縦を実行する現在の時点または計画された時点での環境条件(たとえば、時間、天候、交通量)に関して、操縦についての難易度のメトリックを生成することができる。
【0034】
難易度のメトリックを生成した後、所与の操縦の成功の確率を高めるために、ナビゲーションシステムは、操縦についてのナビゲーション命令および/またはナビゲーションシステムがナビゲーション命令をユーザに提供する方法を調整することができる。たとえば、ナビゲーションシステムは、ユーザのために操縦に関連するプロンプトの数を増加することができる。より具体的な例として、転回の前の一定の距離のところで「200フィート先でリンデンアベニューで右折してください」などの単一の警告を生成する代わりに、ナビゲーションシステムは、同じ操縦に対する一連のプロンプト、たとえば、「200フィート先でリンデンアベニューで右折してください。転回は次の曲がり角の後です。右折の準備をしてください。リンデンアベニューを右折してください」を生成してもよい。追加または代替として、ナビゲーションシステムは、単一のナビゲーション命令の詳細レベルを上げることができる。またさらに、ナビゲーションシステムは、操縦の難易度をユーザに知らせる別個のプロンプトを生成することができる。より詳細な命令は、ユーザエクスペリエンスを改善し、人命、健康、および財産の損失を軽減するだけでなく、下手に実行された操縦に起因する渋滞を減らすことによって道路の機能も改善し得る。
【0035】
実装形態のうちのいくつかでは、システムは、これらのメトリックを生成するために機械学習モデルを利用する。特に、機械学習システムは、難易度のメトリックを生成するための技法を実装し、場合によっては、コンピューティングリソースおよび通信帯域幅を効率的に利用するために、いつどのようにナビゲーションシステムが効率的な方法で難しい操縦についての追加の命令を提供すべきかを判定することができる。
【0036】
本開示の機械学習モデルは、所定の操縦の成功する実行の確率のメトリックまたは、より一般的には、一定のロケーションにおける操縦についての難易度のメトリックを、そのロケーションにおける操縦の過去の実行を記述する履歴データがなくても生成することができる。このために、ナビゲーションシステムは、いくつかのロケーションおよびそのいくつかのロケーションにおいて車両によって実行されるべき操縦を記述するデータセットを使用して機械学習モデルをトレーニングすることができ、トレーニングデータセット中のロケーションは、所定の操縦のロケーションを含む必要はない。機械学習モデルの精度は一般に、トレーニングデータが所定の操縦のロケーションに類似した多数のロケーションにおける所定の操縦に類似している多数の操縦についての情報を含むときに向上する。
【0037】
以下でより詳細に論じられるように、本開示のシステムは、トポロジの類似性、見通し障害、および運転者が操縦する能力に影響を及ぼす他の要因を効率的に検出するように機械学習モデルをトレーニングし、ロケーションおよびこれらのロケーションにおいて実施されるべき操縦についての予測を生成することができる。
【0038】
場合によっては、機械学習モデルによって生成される操縦の難易度のメトリックは、対応するロケーションにおける操縦についての過去の成功の統計値(たとえば、失敗した操縦、遅延、危険なまたは急いだ実行)のみに基づいた成功の確率および/または操縦難易度の推定値よりも正確である。たとえば、操縦は、一定の交差点における右折であり得る。運転者が過去に転回を失敗した回数を数え、運転者がこの転回を試行した回数を数えることによって、この転回を成功裏に実行する確率を推定することが可能であるが、このタイプの解析は、多くのロケーションに常に当てはまるというわけではない、交差点を通過して操縦するという多数のインスタンスについてのデータが入手できない限り、不正確な推定値を生み出すことがある。一方、本開示のナビゲーションシステムは、ロケーション間の類似性を識別することができ、場合によっては、当該のロケーションに類似したロケーションにおいて試行された(かつ、所望される場合は、類似の条件および/または状況下での)多数の右折についてのデータを適用することができ、それによって、このロケーションにおける操縦の難易度の推定値を大幅に改善する。
【0039】
例示的なコンピューティング環境
図1は、操縦の難易度のメトリックを生成するための技法が実装され得る例示的な環境10を示す。環境10は、通信ネットワーク50を介して相互接続されたポータブルシステム20およびサーバシステム30を含む。さらに、ポータブルシステム20および/またはサーバシステム30は、通信ネットワーク50を介して車両輸送システム60と接続され得る。環境10において動作するナビゲーションシステムは、ポータブルシステム20、サーバシステム30を使用して、またはポータブルシステム20において部分的にかつサーバシステム30において部分的に実装されてもよい。ナビゲーションシステムは、機械学習モデルをトレーニングするためのデータを車両輸送システム60から収集し得る。
【0040】
ポータブルシステム20は、たとえば、スマートフォンなどのポータブル電子デバイス、スマートウォッチもしくはヘッドマウントディスプレイなどのウェアラブルデバイス、またはタブレットコンピュータを含んでもよい。いくつかの実装形態またはシナリオでは、ポータブルシステム20はまた、車両に組み込まれたまたは取り付けられたコンポーネントを含む。たとえば、タッチスクリーンを有するヘッドユニットなどの電子コンポーネントを備えた車両の運転者(または同等には操作者)は、ナビゲーション用に自分のスマートフォンを使用してもよい。スマートフォンは、車両のセンサにアクセスするためにおよび/またはナビゲーション命令をヘッドユニットのスクリーンに投影するために、Bluetooth(登録商標)などの単距離通信リンクを介して車両のヘッドユニットに接続し得る。一般に、ポータブルまたはウェアラブルユーザデバイスのモジュール、車両のモジュール、およびデバイスの外部デバイスまたはモジュールは、ポータブルシステム20のコンポーネントとして動作し得る。
【0041】
ポータブルシステム20は、1つまたは複数のプロセッサを含む処理ユニット122を含んでもよく、1つまたは複数のプロセッサは、1つもしくは複数の中央処理ユニット(CPU)、グラフィックスコンテンツを効率的にレンダリングするための1つもしくは複数のグラフィックス処理ユニット(GPU)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、または任意の他の適切なタイプの処理ハードウェアを含んでもよい。さらに、ポータブルシステム20は、永続的(たとえば、ハードディスク、フラッシュドライブ)コンポーネントおよび/または非永続的(たとえば、RAM)コンポーネントから成るメモリ124を含んでもよい。ポータブルシステム20は、ユーザインターフェース126をさらに含む。シナリオに応じて、ユーザインターフェース126は、ポータブル電子デバイスのユーザインターフェースまたは車両のユーザインターフェースに対応し得る。いずれの場合も、ユーザインターフェース126は、タッチスクリーン、マイクロフォン、キーボードなどの1つまたは複数の入力コンポーネント、ならびにスクリーンまたはスピーカーなどの1つまたは複数の出力コンポーネントを含んでもよい。またさらに、ポータブルシステム20は、センサユニット128を含んでもよい。センサユニット128は、車両のセンサとインターフェースしてもよく、および/あるいは、1つもしくは複数の加速度計、全地球測位受信機(GPS)などのセンサ、および/またはナビゲーションにおいて使用され得る他のセンサを含んでもよい。
【0042】
ポータブルシステム20は、インターネットなどのワイドエリアネットワークであり得るネットワーク50を介してサーバシステム30と通信し得る。サーバシステム30は、複数の地理的ロケーションにわたって分散されたデバイスを含む1つまたは複数のサーバデバイスにおいて実装されてもよい。サーバシステム30は、ナビゲーションモジュール132、機械学習モジュール134、およびデータアグリゲーションモジュール136を実装し得る。コンポーネント132~136は、ハードウェア、ファームウェア、およびソフトウェアの任意の適切な組合せを使用して実装されてもよい。サーバシステム30のハードウェアは、1つもしくは複数のCPU、1つもしくは複数のGPU、FPGA、ASIC、または任意の他の適切なタイプの処理ハードウェアなどの1つまたは複数のプロセッサを含んでもよい。さらに、サーバシステム30は、クラウドにおいて完全にまたは部分的に実装されてもよい。サーバシステム30は、任意の適切なデータストレージおよびアクセス技法を使用して実装されてもよい、操縦データベース142、ロケーションデータベース144、およびユーザデータベース146などのデータベースにアクセスし得る。
【0043】
動作の際に、ナビゲーションモジュール132は、ポータブルシステム20からナビゲーション命令に対する要求を受信し得る。要求は、たとえば、出発地と、目的地と、有料道路を回避するという要求などの1つまたは複数のユーザ選好とを含み得る。それに応答して、ナビゲーションモジュール132は、出発地から目的地までのルートを生成するために、ロケーションデータベース144から道路ジオメトリデータ、道路および交差点の制限(たとえば、一方通行、左折禁止)、道路タイプデータ(たとえば、幹線道路、地方道路)、制限速度データなどを取り出し得る。いくつかの実装形態では、ナビゲーションモジュール132はまた、最良のルートを選択するときにライブの交通データを取得する。最良のまたは「一次」ルートに加えて、ナビゲーションモジュール132は、1つまたはいくつかの代替ルートを生成してもよい。
【0044】
道路データに加えて、ロケーションデータベース144は、川、山、および森などの様々な自然の地理的特徴ならびに建物および公園などの人工の地理的特徴についてのジオメトリ指示およびロケーション指示の記述を記憶し得る。ロケーションデータベース144は、数あるデータの中でも、ベクターグラフィックスデータ、ラスター画像データ、音響データ、無線スペクトルデータ、およびテキストデータを含み得る。例示的な実装形態では、ロケーションデータベース144は、マップデータ155およびストリートレベルの画像データ156を含む。マップデータ155は、たとえば、衛星画像データを分類、縮小および/または圧縮し、得られたマップデータ155をマップタイルに編成することに基づいて導出された衛星画像データおよび/または図解データを含み得る。ロケーションデータベース144は、マップタイルを四分木などのトラバースできるデータ構造に編成し得る。ストリートレベルの画像データ156は、運転者または車両操作者の視点を示す画像フレームの集合を含み得る。いくつかの実装形態では、ストリートレベルの画像データ156は、画像フレームの分類された、縮小されたおよび/または圧縮された表現を含み得る。ロケーションデータベース144は、ストリートレベルの画像データ156を木などの適切なデータ構造に編成し得る。
【0045】
サーバ30のナビゲーションモジュール132は、対応する1つまたは複数のプロセッサによって、1つまたは複数の生成されたルートに基づいてナビゲーション命令のシーケンスを生成し、提供するために、ポータブルシステム20と協調し得る。各ルートは、たとえば、直進、右折、左折、右合流、左合流、Uターン、および/または任意の他の適切な操縦を含む1つまたは複数の操縦を含み得る。ナビゲーションモジュール132は、1つまたは複数の生成されたルートに基づいて命令のシーケンスを生成し、命令をポータブルシステム20に通信し得る。命令は、テキスト、オーディオ、またはその両方を含み得る。ポータブルシステム20は、ユーザインターフェース126によって、ポータブルシステム20に関連付けられた運転者に対する可視信号、聴覚信号、および/または触覚信号として命令をレンダリングし得る。ナビゲーション命令の例は、「500フィート先でエルムストリートを右折してください」および「4マイル直進してください」などの、操縦を実行するためのプロンプトを含む。ナビゲーションモジュール132および/またはポータブルシステム20は、ポータブルシステム20に関連付けられた運転者の言語でこれらの句および類似の句を構築するために、自然言語生成技法を実装し得る。以下でより詳細に論じられるように、ポータブルシステム20において実装されるナビゲーションモジュール132および/またはソフトウェアコンポーネントは、初期ナビゲーション命令を生成し、ポータブルシステム20がルートの途中にある間に命令を調整し得る。
【0046】
ナビゲーションモジュール132および/またはポータブルシステム20は、対応するルートにおける操縦の生成された難易度のメトリックに少なくとも部分的に基づいた詳細レベルで、より少ないまたはより多い詳細を有する命令を生成し、提供し得る。より具体的な例として、ナビゲーションモジュール132は、難易度のメトリックが一定のしきい値を超えるときに、より詳細であるナビゲーション命令を生成し、難易度のメトリックが一定のしきい値であるかまたはそれを下回るときに、あまり詳細ではないナビゲーション命令を生成することができる。ナビゲーションモジュール132は、機械学習モジュール134からこれらのナビゲーション命令を受信することができる。
【0047】
機械学習モジュール134は、機械学習モデルを使用することによって、ルートにおける操縦の難易度を少なくとも部分的に評価することができる。機械学習モジュール134は、ロケーション、操作者によるそのロケーションにおける実行が意図された操縦の指示を含むクエリデータを受信し、クエリデータを(たとえば、1つまたは複数の機械学習モデルに)適用して、操縦についての難易度のメトリックを生成し得る。
【0048】
機械学習モジュール134は、サーバシステム30の1つまたは複数のプロセッサ上で1つまたは複数のソフトウェアコンポーネントとして実装され得る。いくつかの実装形態では、機械学習モジュール134は、機械学習モデルの効率的な実装のために、GPU、FPGA、または任意の他の適切なハードウェアなどの専用のハードウェアコンポーネントを含む。機械学習モジュール134のコンポーネントのうちの少なくともいくつかは、たとえば、クラウドコンピューティングを含む分散アーキテクチャにおいて実装され得る。
【0049】
機械学習モジュール134に実装された機械学習モデルは、それぞれ、数(たとえば、0と1との間)またはクラス(たとえば、非常に難しい、やや難しい、やや簡単、または非常に簡単)としてメトリックを生成する、回帰モデルまたは分類モデルを使用し得る。機械学習モデルは、畳み込みニューラルネットワーク(CNN)または再帰型ニューラルネットワーク(RNN)などのニューラルネットワーク、ランダムフォレスト、クラスタリングアルゴリズムなどの決定木アルゴリズム、または任意の他の適切な技法およびそれらの組合せを含み得る。
【0050】
機械学習モジュール134は、操縦データベース142、ロケーションデータベース144、および/またはユーザデータベース146からトレーニングデータを受信し得る。他の実装形態では、単一のデータベースが操縦データベース142、ロケーションデータベース144、および/もしくはユーザデータベース146の機能を組み合わせてもよく、ならびに/または追加のデータベースがデータをサーバ30に提供してもよい。
【0051】
データアグリゲーションモジュール136は、サーバシステム30の1つまたは複数のプロセッサによって、ロケーションおよび対応するロケーションにおいて車両によって実行されるべき操縦を記述するデータセットを受信したことに基づいて、データベース142~146をポピュレートし得る。データアグリゲーションモジュール136は、車両輸送システム60から情報を収集し得る。
【0052】
引き続き図1を参照すると、例示的な車両輸送システム60は、各々が地理的エリアの輸送環境において対応する操縦を実行する車両162a~dを含む。車両162a~dの各々は、ポータブルシステム20に類似しているポータブルシステムおよび/または車両162a~dによって実行される操縦に関連付けられたデータを測定し、記録し、通信し得る追加のセンサデバイスもしくは通信デバイスを含み得る。車両162a~dのうちの少なくともいくつかは、車車間(V2V:vehicle-to-vehicle)デバイスを備え、操縦関連およびロケーション関連のデータを互いに通信し得る。追加または代替として、車両輸送システム60は、操縦関連およびロケーション関連のデータを感知し、収集するための路車間(V2I:vehicle-to-infrastructure)デバイスまたは路車間モジュール(たとえば、V2Iモジュール164)を含み得る。
【0053】
データアグリゲーションモジュール136はまた、衛星、航空機、ならびに/または、交通および/もしくは車両による道路使用を監視するための任意の他の適切なプラットフォームから情報を収集し得る。いくつかの実装形態および/または適用例では、データアグリゲーションモジュール136は、すべての準拠法、倫理規範、および/またはユーザの期待の順守を確実にするために、収集されたデータを匿名化する。追加または代替として、データをデータアグリゲーションモジュール136に供給するデバイス、モジュール、およびシステムは、収集されたデータを匿名化し得る。
【0054】
データアグリゲーションモジュール136は、たとえば、車両輸送システム60の影響を受けるユーザの特別許可を得て、操縦に関連付けられた影響を受けるユーザについてのデータを収集し得る。ユーザについてのデータは、ユーザデータベース146に記憶されてもよく、操縦データベース142および/またはロケーションデータベース144内のデータ記録に関連付けられてもよい。
【0055】
機械学習モジュール134は、データアグリゲーションモジュール136によって収集され、操縦データベース142、ロケーションデータベース144、およびユーザデータベース146に関連付けられた記録に記憶されたデータを使用して、機械学習モデルをトレーニングし得る。データベース142~146の記録は、各操縦に関連付けられた様々な条件についての情報またはそれらの条件の指示を含み得る。いくつかの実装形態および/または状況では、条件の指示は、以下、すなわち、照明(たとえば、車両に設置されたセンサ、またはリアルタイムで天候条件を監視する衛星などの車両の外部のセンサを使用して判定される)、視認性(たとえば、内蔵ダッシュボードカメラまたはダッシュボードに取り付けられたポータブルデバイスを使用して判定される)、現在の道路条件(たとえば、たとえばクラウドソーシング技法を使用してまたは車両のIMUに基づいて判定されるポットホールの現在の補修または存在)、降水(たとえば、車両センサまたはリアルタイムの天候サービスを使用して判定される)、および交通条件(たとえば、クラウドソーシング技法を使用して判定される)のうちの少なくとも1つを含む。ユーザがあるタイプのデータを機械学習モジュール134に提供するという自分の意志を示すとき、条件の指示は、操作者が運転している車両のタイプ(たとえば、二輪車、自動車)および/または車両の操作者が車両によって実行されるべき操縦を熟知していること(たとえば、操作者が以前に操縦を実行した回数に基づいて判定される)を含み得る。
【0056】
一般的に言えば、機械学習モジュール134に実装された機械学習モデルのトレーニングは、操作者によるロケーションにおける実行が意図された操縦と対にされたそのロケーションの1つまたは複数の指示と、操作者が操縦を成功裏に実行する確率の指示および/または操縦の難易度のメトリックとの間の関連付けを作成する。言い換えれば、トレーニング時に、機械学習モジュール134は、入力として、(i)ロケーションおよび(ii)操作者によるそのロケーションにおける実行が意図された操縦の指示を含むクエリデータを取り、そのクエリデータに少なくとも部分的に基づいて確率のメトリックを生成し得る。クエリデータは、追加として、クエリに関連付けられたロケーション、操縦、および/または操作者に関連付けられた条件の指示を含み得る。条件の指示は、操縦が実行され得るときに関連付けられ得る。条件は動的で、すぐに(たとえば、1分、2分、5分、10分、20分、50分後に実質的に異なる)またはゆっくり(たとえば、1時間、2時間、5時間、10時間、20時間、50時間またはそれ以上の持続時間の間、実質的に同様である)変化することがある。確率の評価は条件によって変化することがあり、したがって、条件が変化すると、評価は途中で更新されることがある。
【0057】
機械学習モデルのトレーニングにおいてまたはクエリにおいて使用される条件の指示は、照明、視認性、道路条件、降水、および/または交通条件についての情報を含み得る。たとえば、周囲照明または光レベルは、車両におよび/またはインフラストラクチャに配設されたセンサによって記録され得る。いくつかの実装形態、適用例、および/または状況では、データアグリゲーションモジュール136および/またはそれがそこからデータを受信する情報のソースは、現地時間およびロケーション(たとえば、緯度、経度、高度)に少なくとも部分的に基づいて照明レベルを推定し得る。視認性を判定することは、V2Iモジュール164内の車両162a~d上のセンサを使用した測定および/あるいはパブリックデータベースもしくはプライベートデータベース、気象サービス、または任意の他の適切なソースから大気汚染のレベルを取得することを含み得る。同様に、道路条件および/または降水(たとえば、霧、雨、雪、みぞれ、またはひょうの激しさ)を判定することは、V2Iモジュール164内の車両162a~d上のセンサを使用した測定および/または気象サービス、ならびに任意の他の適切なソースを含み得る。一方、交通条件を判定することは、V2VデバイスもしくはV2Iデバイスおよび/または交通報告サービスから情報を取得することを含み得る。
【0058】
追加または代替として、機械学習モデルのトレーニングにおいてまたはクエリにおいて使用される条件の指示は、各操縦について、たとえば、車両のタイプおよび/または車両の操作者が車両によって実行されるべき操縦を熟知していること(たとえば、操作者が以前に操縦を実行した回数に基づいて判定される)を含み得る。たとえば、狭い交差点で右折を実行する難易度は、数ある要因の中でも、車両が二輪車であるかまたは自動車であるか(および、いくつかの実装形態では、自動車が小型であるかまたは大型であるか)に依存し得る。
【0059】
機械学習モジュール134は、候補のナビゲーション命令の異なるセットについての確率を評価し、たとえば一定の費用関数を最適化する命令のセットを選び得る。費用関数の最適化は、操縦の成功する実行の確率を最大化することと同等であってもよく、または他の考慮事項のために成功の確率のいくらかの低下をトレードオフしてもよい。
【0060】
費用関数を評価し、命令のセットを選ぶ際の考慮事項は、追加の命令の予測される押し付け(たとえば、操作者が追加の命令をうっとうしく思うことがある確率)、操縦の実行に失敗することによる潜在的な結果、最適化の計算複雑性、ポータブルシステム20内の電力管理、ユーザ選好、および/または他の適切な考慮事項を含み得る。たとえば、幹線道路の出口を逃すことで長い回り道をすることになる場合、幹線道路の出口における合流操縦を成功裏に実行する確率のわずかな改善でさえも、追加のナビゲーション命令(たとえば、車間の注意、車線変更命令)の正当な理由となり得る。一方、操縦に失敗することによる回り道が実質的に無視できる時間をルートに追加する(たとえば、総ルート持続時間の0.1%、0.2%、0.5%、1%、2%未満またはしきい値遅延を下回る遅延)および/またはユーザ設定が疎な命令に対する選好を示すとき、追加のナビゲーション命令は操縦を成功裏に実行する確率を高め得るが、ナビゲーションモジュール132および/またはポータブルシステム20は追加のナビゲーション命令を控え得る。
【0061】
あるロケーションにおける操縦についての難易度のメトリックを生成することは、同じおよび/または他の車両操作者による同じロケーションにおける同じ操縦の成功する実行の統計値を計算することを含むことができる。しかしながら、いくつかの状況では、同じロケーションにおける同一の操縦のみに基づいて計算された統計値は、確率の不正確な推定をもたらし得る。関心のあるロケーションにおけるデータは、特にデータを類似の条件下で試みられた操縦(たとえば、ルートに不慣れな運転者が、雨の夜に時速32~38マイルで進み、5分にわたって直進した後に特定の小さい通りで左折する)に限定することを考慮に入れるときに疎であることがある。一方、本開示の機械学習モジュールは、類似の状況下で試みられた、類似のロケーションにおける多くの類似の操縦からの統計値を考慮に入れることができる。適切に構成され、トレーニングされた機械学習モデルは、以下でより詳細に論じられるように、あまり似ていない操縦および条件の組合せよりも、似ている操縦および条件の組合せの統計値により多くの重みを与え得る。
【0062】
操縦についての難易度のメトリックを判定し、適用する例示的な方法
図2は、たとえば、図1のポータブルシステム20およびサーバシステム30において実装され得るナビゲーション命令を提供する方法200を示すフローチャートである。より具体的な例として、機械学習モジュール134は、データベース142、144、146などから取り出されたデータを使用して機械学習モデルをトレーニングするために方法200を少なくとも部分的に実装することができ、ナビゲーションモジュール132は、ナビゲーション命令を生成するために機械学習モデルを適用することができる。より一般的には、機械学習モデルをトレーニングし、ナビゲーションデータに適用することが可能であり、モバイルプラットフォーム内にもしくはサーバ上に配設されたまたは複数のコンピューティングコンポーネント間で分散された任意の適切なコンピュータシステムは、ナビゲーション命令を提供する方法200を実装し得る。
【0063】
ブロック210において、方法200は、ロケーションおよびこれらのロケーションにおいて1つまたは複数の車両によって実行されるかまたは試行される操縦を記述するデータセットを受信することを含む。たとえば、図1に示される環境10において、ポータブルシステム20および/またはサーバ30は、通信ネットワーク50を介して車両輸送システム60からデータセットの少なくとも部分を受信し得る。追加または代替として、ユーザが、(特に機械学習モジュール134がユーザ固有のモデルを構築するときに)データセットのいくつかの部分を供給することができるか、またはサーバ30が、サードパーティサーバからデータセットの少なくとも一部分を取得することができる。サーバ30は、操縦データベース142、ロケーションデータベース144、および/またはユーザデータベース146からいくつかのデータを取得することができる。
【0064】
ブロック220において、方法200は、データセットを使用して機械学習モデルをトレーニングすることによって、複数の操縦を成功裏に実行する確率を出力するように機械学習モデルを構成することを含む。機械学習モデルは、これらの確率を操縦についての難易度のメトリック(たとえば、成功のより低い確率はより高い難易度を示す)に関連付けるか、または成功の確率から難易度のメトリックを導出することができる。機械学習モデルは、サーバ(たとえば、図1のサーバ30の機械学習モジュール134)上でまたはポータブルシステムにおいて(たとえば、図1のポータブルシステム20内で)実装され得る。図1に関して論じられるように、機械学習モデルは、回帰モデル、分類モデル、または回帰モデルと分類モデルの任意の適切な組合せであり得る。いくつかの実装形態では、方法200を実行するシステムは、たとえば、様々なユーザ、様々な環境条件、様々な時刻などについて複数の機械学習モデルを構成し、トレーニングし得る。さらに、以下でより詳細に説明されるように、方法200は、ナビゲーション命令についての適切な詳細レベル、タイミングなどを判定するためにモデルの組合せを適用することを含むことができる。図1のサーバ30は、たとえば、機械学習モジュール134を使用して、場合によっては、データアグリゲーションモジュール136、または任意の他の適切なハードウェアモジュールおよび/もしくはソフトウェアモジュールを使用して機械学習モデルを構成し得る。いくつかの実装形態では、機械学習モデルを構成する機械学習モジュールは、ポータブルシステム(たとえば、図1のポータブルシステム20)上で少なくとも部分的に実装されてもよく、複数のサーバおよび/もしくはポータブルシステムにわたって分散されてもよく、ならびに/またはクラウドにおいて実装されてもよい。
【0065】
機械学習モデルを構成することは、ロケーション、操縦、および/またはロケーションにおいて操縦が実行された条件を記述する特徴を選択することを含み得る。所与の操縦についての条件は、環境(たとえば、道路条件、交通、天候、照明)を記述するかまたは示すものであり得る。追加または代替として、機械学習モデルを構成することは、モデルのタイプ(たとえば、ランダムフォレスト、畳み込みニューラルネットワーク)を選択することならびに選ばれたモデルタイプのパラメータおよび/またはハイパーパラメータ(たとえば、木の数、木の深さ、ネットワーク内のレイヤの数、レイヤタイプ、レイヤサイズ、または任意の他の適切なパラメータおよび/もしくはハイパーパラメータ)の値を選ぶことを含み得る。
【0066】
ブロック230において、方法200は、(i)ロケーションおよび(ii)操作者によるそのロケーションにおける実行が意図された操縦の指示を含むクエリデータを受信することを含む。いくつかの実装形態では、サーバ30の機械学習モジュール134は、たとえば、図1のポータブルシステム20によって送られたクエリデータを受信し得る。いくつかの実装形態では、サーバ30のナビゲーションモジュール132は、クエリを生成し、クエリデータを機械学習モジュール134に送り得る。ナビゲーションモジュール132は、ポータブルシステム20上でまたはクラウド上で少なくとも部分的に実装され得る。したがって、それ自体が分散され得る機械学習モジュール134は、任意の適切なソースからネットワーク(たとえば、ネットワーク50)を介してクエリデータを受信し得る。
【0067】
クエリにおいて示される操縦は、ロケーションにおいて実施された過去の操縦を記述するデータが入手できないロケーションに対応し得る。いくつかの実装形態における難易度のメトリックを生成するための機械学習モデルは、ロケーションの特徴と、ロケーション特徴と難易度および/または成功のメトリックとの間の学習された相関とに基づいて難易度のメトリックを予測する。
【0068】
実行が意図された操縦を示すクエリデータは、意図された操縦が右折であるか、左折であるか、Uターンであるか、右合流であるか、または左合流であるかの指示を含み得る。操縦を示すクエリデータは、追加または代替の操縦分類を示す情報を含み得る。たとえば、右折(または左折)は、急角度、斜め方向、またはラベル付けされたものとして異なる方法で示され得る。合流操縦は、合流が車線変更であるか、オンランプであるか、オフランプであるかの指示を含むか、または任意の他の適切な指示(たとえば、合流に関連付けられた速度変更)を含み得る。
【0069】
いくつかの実装形態では、クエリデータはまた、操縦が実行されると予想される条件の指示を含み得る。実装形態またはシナリオに応じて、条件の指示は、いくつかのものが完了した条件を指定してもよく、または一定の条件が生じる確率を指定することができる。データにおいて反映される条件は、どのくらいの照明が利用可能であるか、操縦時の視認性、道路条件、交通量、操縦を実行するときの降水の量および種類(たとえば、雨、雪)または濃度(たとえば、霧、スモッグ)などの指示を含み得る。追加または代替として、条件の指示は、操作者が使用している二輪車もしくは自動車などの車両のタイプおよび/または操作者が実行されるべき操縦を熟知していることを含むことができる。
【0070】
いくつかの実装形態では、機械学習モジュール134は、条件の指示を操縦の特徴として使用して機械学習モデルをトレーニングする。他の実装形態では、1つの機械学習モデル(本例の目的で第1の機械学習モデルと呼ばれる)は、操縦およびロケーションデータに基づいて出力を生成し得るが、別個のアルゴリズムまたは機械学習モデルは、条件が第1の機械学習モデルの出力に及ぼす影響を評価し得る。
【0071】
ブロック240において、方法200は、操作者が操縦を成功裏に実行する確率のメトリックを生成するためにクエリデータを機械学習モデルに適用することを含む。たとえば、サーバ(たとえば、サーバ30)、ポータブルシステム(たとえば、ポータブルシステム20)、またはクラウド上に少なくとも部分的に実装された図1の機械学習モジュール134または任意の他の適切なモジュールは、クエリデータを1つまたは複数の機械学習モデルに対する1つの入力ベクトルまたは複数の異なる入力ベクトルにフォーマットするかまたは事前処理し得る。1つまたは複数の機械学習モデルは、1つまたは複数のメトリックを出力してもよく、1つまたは複数のメトリックは、当該の操縦が当該の操作者によって当該のロケーションにおいて成功裏に実行される確率のメトリックを生成するために、単独でまたは組み合わせて事後処理されてもよい。
【0072】
確率は、操作者が受信することになるナビゲーション命令のセットを条件とし得る。より具体的には、確率の1つまたは複数の値が対応する1つまたは複数のナビゲーション命令セットに対して生成され得る。たとえば、システム(たとえば、サーバ30)は、最低限の命令があると、操作者が操縦を成功裏に実行する可能性が低い(たとえば、幹線道路の出口を逃す)(メトリックが低い確率を示す)と判定し得る。一方、システムは、追加の命令があると、当該の操縦の成功する実行の確率が著しく高まる(たとえば、操作者が安全にかつ成功裏に幹線道路を出る可能性が高い)と判定し得る。
【0073】
ブロック250において、方法200は、生成された確率のメトリックに基づいて少なくとも部分的に操縦についてのナビゲーション命令を提供することを含む。いくつかの実装形態では、ナビゲーションモジュール(たとえば、ナビゲーションモジュール132)は、潜在的なナビゲーション命令の1つまたは複数のセットに対応する1つまたは複数の生成された確率のメトリックを受信すると、クエリデータに対応する車両の操作者に最終的に配信するためのナビゲーション命令を生成し、提供し得る。いくつかの実装形態では、ナビゲーション命令の上位セットは、ナビゲーションが操作者によって要求されるときに、車両に配設され得るポータブルシステム(たとえば、ポータブルシステム20のメモリ124)にロードされる。計画されたルートにおける操縦の各々は、命令がポータブルシステムにロードされる前に成功の確率について(機械学習モデルを使用して)評価されてもよく、命令は、生成された成功の確率を考慮して、場合によっては反復的に適合されてもよい。たとえば、ナビゲーションシステムは、対応する操縦についての難易度のメトリックが一定のしきい値を超える場合、短い命令「カウンティロードを右折してください」をより長い命令「カウンティロードが半マイル先に接近しています。300フィート先でカウンティロードを右折する準備をしてください。もうすぐカウンティロードを右折してください」に置き換えることができる。
【0074】
場合によっては、図1のナビゲーションシステムは、難易度のメトリックに従ってナビゲーション命令のタイミングを変化させることができる。たとえば、ナビゲーションシステムは、車両が次の操縦のロケーションに接近するときに一定のナビゲーション命令の複数のインスタンスを生成することができ、難易度のメトリックに従ってインスタンス間の時間間隔を変化させることができる。より具体的な例として、ナビゲーションシステムは、難易度のメトリックが一定のしきい値を超える場合は最初のインスタンスの5秒後に、または難易度のメトリックがそのしきい値を超えない場合は最初のインスタンスの7秒後に一定のナビゲーション命令を繰り返すことができる。代替として、ナビゲーションシステムは、ナビゲーション命令を提供することと車両が操縦のロケーションに到着することとの間の間隔の持続時間を変化させることができる。したがって、ナビゲーションシステムは、難易度のメトリックが一定のしきい値を超えるときにナビゲーション命令を早期に提供(し、それによって間隔をより長く)するか、または難易度のメトリックがそのしきい値を超えないときにナビゲーション命令を直後に提供(し、それによって間隔をより短く)することができる。
【0075】
またさらに、ナビゲーションシステムは、場合によっては、難易度のメトリックが一定のしきい値を超えるときに、視覚ランドマークでナビゲーション命令を増強することができる。一定のロケーションにおける一定の難しい操縦について、ナビゲーションシステムは、独特の目立つ視覚ランドマークを参照することによってナビゲーション命令を補完することができる(たとえば、「赤の看板で左折してください」)。
【0076】
いくつかの実装形態では、ナビゲーションモジュール132は、ルートに沿って取得された情報を考慮して、操作者のためのナビゲーション命令を動的に変更することができる。追加または代替として、ナビゲーションシステムは、上記で説明された条件などの条件の変化に基づいて少なくとも部分的に命令を動的に調整してもよい。たとえば、天候、影響を及ぼす視認性、道路条件、および/または降水の変化は、機械学習モデルを使用してナビゲーションシステムによって生成された、所与の操縦における成功の確率に影響を及ぼし得る。霧の発生は、特に機械学習モデルによって判定された視認性の変化の影響をより受けやすい操縦について、命令における追加の詳細をプロンプトし得る。別の例では、ナビゲーションシステムは、車両の条件および/または意図された操縦が実施されることになる任意の他の適切な条件に変化が生じたと判定し得る。いくつかの実装形態では、ポータブルユニット(たとえば、ポータブルシステム20)は、たとえば、センサユニット128を使用して、条件の変化を検出し得る。ナビゲーションシステムは、任意の適切なソース(たとえば、図1のV2Iモジュール164)から条件の変化を示す情報を取得することができ、それに応答して、ナビゲーションシステムは、操縦を成功裏に実行する確率を再評価するおよび/または操作者に提供されるべき命令の詳細レベルを選択することができる。
【0077】
ナビゲーションシステムは、1つまたは複数の信号モード(たとえば、視覚信号、聴覚信号、触覚信号または任意の他の適切な信号)を介して命令を操作者に(たとえば、ポータブルシステム20のユーザインターフェース126を介して)提供し得る。いくつかの実装形態では、ナビゲーションシステムは、1つまたは複数の機械学習モデルを使用して生成された(操縦の成功する実行の)確率の1つまたは複数のメトリックに少なくとも部分的に基づいて、1つもしくは複数の信号モードおよび/または1つもしくは複数の信号振幅を選び得る。たとえば、いくつかの実装形態および/またはシナリオ(たとえば、操作者によって選ばれたオプション)では、ナビゲーションシステムは、対応する操縦を成功裏に実行することの生成された確率のメトリックがしきい値を下回るときに、合成音声コマンドのみを有するナビゲーション命令を提供し得る。
【0078】
例示的なシナリオおよび追加の実装形態の詳細
さらに明確にするために、図1の例示的なナビゲーションシステムを参照しながら、いくつかの例示的なシナリオが以下で論じられる。これらのシナリオにおける機械学習モジュール134は、視覚的類似性(たとえば、衛星画像またはストリートレベルの画像を使用する)、道路ジオメトリの類似性(たとえば、図解マップデータ、衛星画像、車両センサからのデータを使用する)を認識するようにモデルをトレーニングすることによって、操縦についての難易度のメトリックを生成する。
【0079】
図3は、機械学習モジュール134が自動的に認識するように学習することができる、道路配置の類似性を有する地理的ロケーション320~326における4つの右折操縦のセットを示す。各操縦および/または操縦のタイプ(または、同様に、操縦タイプ、操縦クラス、操縦の種類)について、ロケーション情報は、操縦が実行される交差点および適切な距離マージン内のエリアを含み得る適切な地理的エリアを包含し得る。適切な距離マージンは、接近方向に対して異なる方向に沿って異なり得る。マージンは、地理的ロケーションのタイプ(たとえば、都市、郊外、地方)、制限速度、および/または他の適切な要因に依存し得る。いくつかの実装形態では、距離マージンは、操縦が実行される条件(たとえば、光、降水)に依存し得る。
【0080】
いくつかの実装形態では、個別のロケーションは、特定の交差点および接近に対応し得る。たとえば、操縦320は、サードストリートからメインストリートに沿ってセカンドストリートに接近することとして定義され得る。ファーストストリートの側から同じ交差点に接近することは、類似の操縦についての異なるロケーションとして定義され得る。いくつかのタイプの操縦(たとえば、Uターン、車線変更)は、交差点に関連付けられないことがある。これに対応して、そのような操縦に対応する地理的エリアは、転回に対応する地理的エリアよりも小さい、接近方向を横切るマージンを有し得る。
【0081】
機械学習モジュール134によって実装される機械学習モデルは、これらの4つのロケーション320~326および/または他のロケーションのうちのいずれか1つにおいて操作者が右折を成功裏に実行する確率のメトリックをより正確に生成するために、トレーニングを通じて、ロケーション320~326の各々における操縦データを取り入れ得る。機械学習モデルのトレーニング、および実行が意図された新しい操縦の成功の確率のメトリックを生成するために機械学習モデルを適用することは、モデル入力として、ロケーションデータならびに/または操縦が実行されたおよび/もしくは実行されることになる条件を含み得る。
【0082】
ロケーション320~326を記述するモデル入力(すなわち、ロケーションデータ)は、地理的座標(たとえば、緯度、経度、高度)、マップデータ、衛星画像、ストリートレベルの画像データ、制限速度、道路分類(たとえば、一般道路、主要幹線)、局所環境分類(たとえば、密集都市、郊外、地方)、および/または他の適切なデータを含み得る。追加または代替として、モデル入力は、機械学習モジュール134が、たとえば、マップデータ、衛星データ、および/または別の適切なソースに基づいて判定することができるストリート構成または道路構成を示すデータを含み得る。
【0083】
さらに、図示されたロケーション320~326における右折操縦の各々についてのモデル入力は、各操縦に関連付けられた条件を示すおよび/または記述するデータを含み得る。条件の指示は、照明、視認性、道路条件、および/または降水についてのメトリックまたはカテゴリを含み得る。追加または代替として、条件の指示は、車両のタイプ、車両の条件、車両の操作者が車両によって実行されるべき操縦を熟知していることについてのメトリックまたはカテゴリを含み得る。
【0084】
モデル入力は、分類別(たとえば、良い、悪い、非常に悪い)、連続的(たとえば、浮動小数点数のコンピュータ精度でのまたは一定のビット数までの固定された段階で量子化された、0から1、-10から10)、ベクトル(たとえば、サウンドファイル、画像ファイルなど)であり得る。カテゴリの数または機械学習モデルの所与の入力もしくは特徴の精度を低減することは、計算複雑性を低減し得る。ストリート画像またはマップデータの前処理も、機械学習モデル(たとえば、ニューラルネットワーク)の次元を低減し得る。
【0085】
例示的なトレーニングデータセットは、ロケーション320~326の各々に対して異なる数の転回を含み得る。4つの交差点の各々におけるトレーニングに利用可能なアグリゲートされた右折インスタンスの数の相違は、交通パターンの相違またはデータアグリゲーションモジュール136にとっての交通データの利用可能性の違いに起因し得る。いくつかの実装形態では、各操縦(たとえば、図3に示される右折の各インスタンス)は、モデルをトレーニングするための個別のデータ記録として働く。他の実装形態では、各ロケーションにおける同じ転回は、たとえば、データアグリゲーションモジュール136によって、一緒にビニングされるかまたはアグリゲートされ得る。データアグリゲーションモジュール136は、各ビンについて、成功のアグリゲート統計値を評価し得る。データアグリゲーションモジュール136は、各転回に関連付けられた条件ごとにビンを分離し得る。たとえば、データアグリゲーションモジュール136は、夜の暗闇の中で実行される所与のロケーションにおける右折を1つのビンにアグリゲートし、昼の光の中で実行される転回を異なるビンにアグリゲートすることができる。データアグリゲーションモジュール136は、天候条件および/または任意の他の適切な条件を含み得る他の条件に基づいてビンをさらに細分し得る。
【0086】
ロケーション320~326の各々における、同じビンに置かれた右折を実行することの成功率は、異なり得る。各成功率は、0から1までの数または0%から100%までの値であり得る。成功率は、たとえば、成功率を推定するために使用される転回の数に依存し得る信頼度の関連する指示を有し得る。成功率の推定は、以下でより詳細に論じられる。
【0087】
いくつかの実装形態では、操縦の各インスタンスは、機械学習モデルをトレーニングする目的で別個のデータ記録として扱われる。たとえば、交差点において100回の右折が行われる場合、各右折は、カテゴリにビニングされるのではなく、トレーニングするために別々に扱われ得る。転回の各インスタンスは、成功もしくは失敗の2値のカテゴリ化を有し得るか、または、たとえば、ためらいなしの成功、ためらいながらの成功、惜しい失敗、失敗を含む様々な成功カテゴリを有し得る。機械学習モジュール134は、以下でより詳細に説明されるように、これらのカテゴリの各々の確率を推定するように機械学習モデルをトレーニングし得る。
【0088】
4つのロケーション320~326の各々についてのロケーションデータは、機械学習モデルをトレーニングおよび/またはクエリするための入力として働き得る。いくつかの実装形態では、機械学習モジュール134は、顕著な特徴を抽出、カテゴリ化、および/または定量化するために、ベクトルロケーションデータ(たとえば、衛星画像、ストリートレベルの画像、交通パターンデータ、他の地理空間データまたはマップデータ)に対してデータ縮小解析を実施し得る。他の実装形態では、データアグリゲーションモジュール136または別の適切なシステムモジュールは、データ縮小解析のうちの少なくとも一部を実施し、縮小されたデータをロケーションデータベース144に記憶し得る。顕著な特徴は、ロケーション分類(たとえば、地方、都市)、難しい交差点の存在および難しい交差点までの距離、交差点の視認性、標識の視認性、ならびに/または他の適切なデータを含み得る。顕著な特徴は、異なる操縦クラスまたはタイプで異なり得る。たとえば、標識の視認性に関して、交差点における右折の道路標識は目に見えるものであり得るが、同じ交差点における左折の道路標識は見えないものであり得る。
【0089】
右折についてロケーション320を分類する際に、データアグリゲーションモジュール136および/または機械学習モジュール134は、ファーストストリートおよびサードストリートでの右折を潜在的な誤答の操縦として識別し得る。前の誤答の操縦(サードストリートを右)と意図された操縦(セカンドストリートを右)との間の距離は、意図された操縦を記述する特徴のうちの1つとして働き得る。類似的に、後の誤答の操縦(ファーストストリートを右)と意図された操縦(セカンドストリートを右)との間の距離は、意図された操縦を記述する特徴のうちの別の1つとして働き得る。追加または代替として、誤答の操縦までの距離は、制限速度および/または接近速度に正規化され得る。さらに、意図された右折に対する誤答の操縦としての左折までの距離の存在は、右折操縦特徴に含まれ得る。
【0090】
ロケーション322~326における図示された右折に対する誤答の操縦の存在および誤答の操縦までの距離は、ロケーション320における同等の特徴とは異なり得る。トレーニングセットでモジュールをトレーニングした後、いくつかのシナリオにおける機械学習モジュール134は、誤答の操縦特徴が意図された操縦を実行することに成功する確率に及ぼす影響を定量化することができる。さらに、機械学習モジュール134は、操縦実行時の条件を考慮して、誤答の操縦特徴の影響を定量化することができる。たとえば、後の誤答の操縦(すなわち、ファーストストリートを右、アマゾンドライブを右、パリストリートを右)の影響は、視認性が低いときにより小さい。
【0091】
いくつかの実装形態では、機械学習モデルへの入力は、上記で説明された縮小された特徴ではなく、生のまたは実質的に縮小されていないフォーマットでのロケーションデータを含み得る。たとえば、ロケーションデータは、道路トポロジ、衛星画像、および/またはストリートレベルの画像を含み得る。画像は、生の画像、圧縮された画像、および/またはセグメント化された画像であり得る。十分な量のトレーニングデータがあれば、機械学習モデルは、必ずしも誤答の操縦パラメータを記述および定量化する縮小された特徴を含むとは限らない他の関連のある要因とともに、さらなる生の高次元ベクトルロケーションデータに基づいて成功確率を推定するようにトレーニングされ得る。
【0092】
例示的なシナリオでは、日没後のラッシュアワーに雨の中で自動車を運転する操作者は、ロケーション320に図示された操縦から1分(たとえば、時速30マイルすなわち30mphで進んで半マイル)離れたところにいる場合がある。機械学習モジュールのための例示的な入力ベクトルは、操縦およびロケーション識別子(たとえば、メインストリートからセカンドストリートを右)、速度(たとえば、30mph)、交通条件(たとえば、10点中7点、10点が最も激しい)、降水/程度(たとえば、雨/5点中3点、5点が最も激しい)、照明(5点中2点、5点が最も明るい)、および運転者がこのロケーションを熟知していること(5点中3点、5点が最も熟知している)を包含し得る。機械学習モジュール134は、同様に構造化された入力ベクトルを含むデータセットでトレーニングされた1つまたは複数の機械学習モデルを取り出すことができる。機械学習モジュール134は、トレーニングデータセット中の、および差し迫った操縦を記述するクエリデータ中のロケーション情報(たとえば、衛星画像データ、マップデータなど)を(上記で説明されたような)ロケーション固有の記述子のベクトルに縮小し、条件固有の記述子のベクトルにアペンドすることができる。合成されたベクトルは、1つまたは複数の機械学習モデルをトレーニングする際におよび確率のメトリックを生成する際に使用され得る。
【0093】
いくつかの実装形態では、機械学習モジュール134(またはナビゲーションシステムの別の適切なモジュール)は、操縦実行についての成功統計値の類似性に基づいたクラスタリングアルゴリズムを使用して、各操縦について類似のロケーションをクラスタリングし得る。たとえば、ロケーション322~326は、対応する図示された右折について同じクラスタにクラスタリングされ得る。確率のメトリックを生成するための機械学習モデルは、各クラスタ(すなわち、クラスタリングアルゴリズムによって生成されるロケーションクラス)について別々にトレーニングされ得る。各クラス内で、異なるロケーションは、各操縦、一定の条件などに固有であり得る相関行列によって相互に関係づけられ得る。
【0094】
示された右折について、ロケーション320についての成功統計値は、たとえば、ロケーション322、324、および326における成功統計値に対して、それぞれ0.8、0.7、および0.9の相関を有し得る。異なる相関は、操縦、標識の視認性、および/または他の要因の存在およびその構成に起因し得る。したがって、ロケーション326における操縦成功の統計値は、意図された操縦についての成功の予想される確率を生成するために、その他の2つのロケーションよりもやや関連があるものとして判定され得る。トレーニングされた機械学習モデルは、特にロケーションを区別する特徴がロケーション記述の一部であるときに、相関を反映し得る。
【0095】
上記で論じられたように、システムは、ロケーション間の違いを考慮に入れて、(ロケーション320~326を含む)複数のロケーションにおける右折統計値を考慮してロケーション320における所与の右折についての成功の確率を計算する。次の議論では、ロケーション/操縦の組合せのさらなる例が示される。
【0096】
図4は、道路配置および関連する操縦の類似性を有する地理的ロケーション420~426における4つの右折操縦のセットを示す。いくつかの実装形態では、操縦のすべての4つは右折として分類される。他の実装形態では、ロケーション420および422における操縦は通常の右折として分類され得るが、ロケーション424、426における操縦はそれぞれ、急角度の右折および斜め方向の右折として分類され得る。
【0097】
機械学習モジュール(たとえば、機械学習モジュール134)は、すべての4つのロケーション420~426を、右折の文脈についての類似のロケーションとして分類してもよく、統一的特徴は、交差点における4つを超える角の存在である。いくつかの実装形態では、ロケーション422は、T字交差点として別個のクラスに分類され得る。他の実装形態では、ロケーション420および422は、互いと一緒に、ただしロケーション424および426とは別々に分類され得る。この場合もやはり、意図された操縦(たとえば、この場合は右折)の文脈で類似のロケーションとして分類されるロケーションについて、機械学習モデルは、操縦を実行することに成功する確率のメトリックを判定するためにトレーニングされ得る。いくつかの実装形態では、交差点の特徴(たとえば、難しい転回の存在およびその相対的な位置)は、機械学習モデルにおける入力ベクトルとして働き得る。
【0098】
ロケーション420~426において実行される右折の異なる特徴は、転回の角度(たとえば、垂直、斜め方向、急角度、または転回角)、難しい転回の指示(たとえば、高、中、もしくは低の混乱要因、または準連続インジケータ)、混乱させる転回の位置(たとえば、前のもしくは後のならびに/または相対的な距離および角度)を含み得る。ナビゲーションシステムは、たとえば、データアグリゲーションモジュール136、機械学習モジュール134、任意の他の適切なモジュールまたはモジュールの組合せを使用して、特徴の抽出および解析を実施し得る。
【0099】
機械学習モジュール(たとえば、機械学習モジュール134)はまた、交差点トポロジを分類することおよび/または明示的な特徴の抽出なしで、その代わりに、すべての右折、またはさらに広くは、すべての操縦に基づいて機械学習モデルをトレーニングして、確率メトリックを判定し得る。そのような実装形態では、衛星画像を有するベクトルデータまたは(上記で論じられたようなマージンを有する)ロケーションデータに対応するマップデータサブセットは、機械学習モデルをトレーニングするためのおよび/または関心のある操縦のモデルを評価するための入力の一部として働き得る。
【0100】
図5は、環状交差点を含む地理的ロケーション520~526における4つの左折操縦のセットを示す。いくつかの実装形態では、環状交差点において左折を実行することに成功する確率のメトリックは、他の類似の操縦についての成功統計値を考慮して計算され得る。他の分類された操縦に類似して、環状交差点における左折(または単なる転回)についての専用の機械学習モデルは、確率のメトリックを生成するために事前トレーニングされ、呼び出され得る。環状交差点の特徴セットは、環状交差点からの放射状の出口の総数(および/または角度位置)と、意図された操縦の出口のインデックス(たとえば、それぞれ、ロケーション520、522、524、および526に対応する3、3、3、および4)とを含み得る。
【0101】
いくつかの操縦は、命令の特定のセットによっておよび/または異なる条件下で、操縦を実行する確率をより著しく低下させる場合がある。デロングストリートは、チャベスストリートでの転回(両方ともロケーション520における)について、レオナルドストリートでの転回(両方ともロケーション522における)に対するドナテロストリートよりも難しい場合があり、これは、ロケーション520における両方のストリートは接近方向に対して左折であるが、ロケーション522におけるドナテロストリートは右折であるからである。それでもなお、ロケーション520~526におけるすべての統計値は、機械学習モデル用に設定されたトレーニングセットに寄与することによって少なくとも部分的に、ロケーション520~526のうちのいずれか1つにおける成功する操縦の生成された確率のメトリックに影響を及ぼし得る。
【0102】
図3図5の議論は、マップデータ(すなわち、道路配置など)に基づいた異なる操縦のロケーション類似性に焦点を合わせた。一方、図6は、ロケーションにおける地形情報が示される、地理的ロケーション620~626における4つの左折操縦のセットを示す。データアグリゲーションモジュール136および/または機械学習モジュールは、衛星画像からまたは他の別の適切なソースから地形情報を抽出し得る。地形情報は、所与の操縦についての成功の確率の指示を生成するために1つまたは複数の機械学習モデルをトレーニングおよび/または評価する際に追加の特徴として使用され得る。たとえば、ロケーション620におけるフォレストドライブでの転回およびロケーション622におけるフィールドストリートでの転回に通じる道の中の森林エリアは、接近している左折への視界を遮るおよび/または夕暮れ時の光の減少を示すことがある。一方、ロケーション624におけるマーシュウェイおよびロケーション626におけるパークストリートに通じる道の中の田畑は、特に田畑の植物が低いと考えられ得る時期に、転回のはっきりした視界を示すことがある。さらに、ロケーション624における住宅エリアは、太陽が地平線の下にあるとき、人工光による照明が視認性を改善し得ることを示すことがある。したがって、生の衛星画像を通じてであろうと、または分類された地形データを通じてであろうと、地形情報を取り入れることは、より正確な機械学習モデルを生み出し得る。したがって、ロケーションを記述するデータセットは、1つまたは複数の機械学習モデルを構成するために衛星画像および/またはマップデータを含み得る。
【0103】
図7は、類似のロケーションにおける類似の左折操縦のセットに対応する4つのストリートレベルのフレーム720~726を示す。ストリートレベルの画像のうちの少なくともいくつかは、ポータブルシステムを使用して(たとえば、ポータブルシステム20のセンサ128を使用して)取得され得る。たとえば、上記で論じられたように、カメラおよび/またはライダー(lidar)システムデータは、ストリートレベルの画像を生成および/または分類するのに役立ち得る。
【0104】
上記で論じられた衛星画像および/またはマップデータと同様に、4つのセットは議論を簡略化するためにのみ選ばれる。いくつかの実装形態では、ストリートレベルのフレーム720~726は、事前処理アルゴリズムをクラスタリングおよび/または分類することによって事前選択された類似のロケーションのセットのサブセットを表し得る。機械学習モデルは、数十、数百、数千、数万、数百万(すなわち、任意の適切な数)の類似のロケーションのセットでトレーニングされ得る。それでもなお、図7は、機械学習モデルを構成する際の複数のロケーションを示すストリートレベルの画像の例示的な使用を例示するのに役立つ。
【0105】
いくつかの実装形態では、ストリートレベルのフレーム720~726から取得されたベクトルは、対応するロケーションにおける左折を記述する特徴として直接追加され得る。他の実装形態では、ストリートレベルのフレームおよび/またはストリートレベルのフレームのシーケンスは、情報のためにマイニングされ得る。たとえば、ストリートレベルのフレームは、ランドマークおよび/またはキューの視認性(たとえば、転回視認性、よく見えないもの(obscurants)の存在、標識の存在およびその視認性など)を含む様々な特徴、ならびにロケーションに関連付けられた一時的なまたはより永続的な条件についての情報(たとえば、道路品質、近くの構造物、誤答の存在など)を抽出するためにセグメント化され、分類され得る。抽出された特徴は、所与の操縦の難易度および/または成功確率を予測するために使用され得る。
【0106】
たとえば、フレーム720において、左折は矢印のシーケンスによってマークされている。フレーム720からは、道路の湾曲ははっきりと目に見え、ナビゲーションシステムは、(たとえば、ポータブルシステム20の機械学習モジュール134、データアグリゲーションモジュール136、および/または処理ユニット122を使用して)湾曲のメトリックを抽出し得る。同様に、ナビゲーションシステムは、左折に関して類似のロケーションに関連付けられたフレーム722から湾曲のメトリックを抽出し得る。フレーム720および722の解析は、左折に関してロケーションの追加の類似性および違いを明らかにし得る。たとえば、交差点の視認性または交差点が目に見える距離に対応する特徴は、両方のロケーションにおいて(少なくとも交差点からのいくらかの距離について)合流点を見えなくする木の存在により、2つのロケーションで類似していることがある。ストリートレベルの画像、衛星画像、および/または気候データの解析を含み得る追加の解析は、視認性への影響が群葉の存在によって変化する季節的なものであり得ることを明らかにし得る。ストリートレベルのフレーム720および722のさらなる解析は、フレーム722中の標識の存在およびフレーム720中の対応する標識の不在を抽出し得る。上記で説明された特徴は前処理において判定され得るが、抽出された特徴が生成された操縦難易度および/または操縦を成功裏に実行する確率に及ぼす統計的な影響は、機械学習モデルのトレーニングを通じて判定され得る。
【0107】
フレーム724および726は、フレーム720および722に関連付けられた操縦に類似したロケーション(たとえば、類似の道路ジオメトリ)における左折操縦に関連付けられたストリートレベルのフレームを示している。ナビゲーションシステムは、ロケーションをフレーム720および722のロケーションに類似したものにするおよび/またはそれらのロケーションとは異なるものにするロケーションの特徴を抽出するために、フレーム724および726を使用し得る。たとえば、ナビゲーションシステムは、フレーム724を解析して、道路湾曲が図7の他のフレームとは異なり(より真っすぐであり)、交差点を部分的に見えなくする木があるが、交差点が目に見える範囲はフレーム720および722中の対応する特徴とは異なり得ると判定し得る。一方、フレーム726は、フレーム720および722中の道路湾曲に類似しているが、交差点を見えなくする物体がない道路湾曲を示し得る。
【0108】
図8は、図7と同じように、4つのストリートレベルのフレーム820~826を、ただし4つの類似の右折の文脈において示す。標識の存在、標識の視認性、および難しい交差点の存在を含むいくつかの特徴がフレーム820~826から抽出され得る。ある抽出される特徴は、フレーム822を除いたすべてに存在する道路標識の指示を含み得る。別の特徴は、フレーム820および826では良好であるが、フレーム824では部分的である、標識の視認性であり得る。また別の特徴は、フレーム824の場合のように、難しい交差点の存在(および/またはそれまでの距離)であり得る。難しい交差点は、車両操作者が早く曲がるかまたは転回に失敗するように仕向けることがある。(たとえば、ナビゲーションモジュール132によって提供される)指令におけるタイムリーな注意またはランドマークの使用は、操縦を容易にし得る。
【0109】
図9は、左折に失敗した直後に車両操作者によって実行され得る4つの修正操縦920~926を示す。操縦920~926は、車両内に配設された1つまたは複数のセンサ(たとえば、ポータブルシステム20中のセンサ)および/または車両操作者が操縦しているインフラストラクチャ内に配設されたセンサ(たとえば、V2Iモジュール164)によって検出され得る。いくつかのシナリオでは、図1のナビゲーションシステムは、操作者が一定のナビゲーション命令に従い、一定の操縦についてのナビゲーション命令に従うことができず、ナビゲーションシステムが更新された命令を提供した後で元のルートに戻る(または合流する)ときに、修正操縦920~926を検出する。他のシナリオでは、操作者が現在、ナビゲーションシステムからの指令に従っていないが、ナビゲーションシステムがこれらの目的で操作者のロケーションデータを使用してもよいことを示すとき、ナビゲーションシステムは、ループ(操縦920)、Uターンまたはより長い方向転換(操縦924および926)、余分な操縦(操縦922)を検出し、ユーザが自分が行うことを意図した転回に失敗したかもしれないと判定する。
【0110】
いくつかの実装形態および/または状況では、ナビゲーションシステムは修正操縦920~926の経路を検出しないことがある。一方、短い修正操縦でさえも、操縦を実行するのにかかる時間に寄与することがある。操縦の特徴として操縦を実行するのにかかる時間を検出することは、対応する機械学習モデルをトレーニングすることおよび操縦についての難易度のメトリックを生成することに寄与することがある。
【0111】
追加の考慮事項
以下の追加の考慮事項は上記の議論に適用される。本明細書全体を通して、複数のインスタンスは、単一のインスタンスとして説明されたコンポーネント、動作、または構造を実装し得る。1つまたは複数の方法の個々の動作は別個の動作として図示され、説明されるが、個々の動作のうちの1つまたは複数は同時に実施されてもよく、何も動作が示された順序で実施されることを必要としない。例示的な構成において別個のコンポーネントとして提示される構造および機能は、組み合わされた構造またはコンポーネントとして実装されてもよい。同様に、単一のコンポーネントとして提示される構造および機能は、別個のコンポーネントとして実装されてもよい。これらのおよび他の変形、修正、追加、および改善は、本開示の主題の範囲内に入る。
【0112】
加えて、いくつかの実施形態は、論理またはいくつかのコンポーネント、モジュール、もしくは機構を含むものとして本明細書で説明される。モジュールは、ソフトウェアモジュール(たとえば、機械可読媒体上に記憶されたコード)またはハードウェアモジュールのいずれかを構成し得る。ハードウェアモジュールは、いくつかの動作を実施することが可能な有形のユニットであり、一定の方式で構成または配置され得る。例示的な実施形態では、1つもしくは複数のコンピュータシステム(たとえば、スタンドアロン、クライアントもしくはサーバコンピュータシステム)またはコンピュータシステムの1つもしくは複数のハードウェアモジュール(たとえば、プロセッサもしくはプロセッサのグループ)は、本明細書で説明されるようないくつかの動作を実施するように動作するハードウェアモジュールとして、ソフトウェア(たとえば、アプリケーションまたはアプリケーション部分)によって構成され得る。
【0113】
様々な実施形態では、ハードウェアモジュールは、機械的にまたは電子的に実装され得る。たとえば、ハードウェアモジュールは、いくつかの動作を実施するように(たとえば、フィールドプログラマブルゲートアレイ(FPGA)または特定用途向け集積回路(ASIC)などの専用プロセッサとして)永続的に構成される専用回路または論理を備え得る。ハードウェアモジュールはまた、いくつかの動作を実施するようにソフトウェアによって一時的に構成される(たとえば、汎用プロセッサまたは他のプログラマブルプロセッサ内に包含されるような)プログラマブル論理または回路を備え得る。機械的に、専用の永続的に構成された回路において、または(たとえば、ソフトウェアによって構成された)一時的に構成された回路においてハードウェアモジュールを実装するという決定は、費用および時間の考慮事項によって促され得ることを諒解されたい。
【0114】
したがって、ハードウェアという用語は、一定の方式で動作するようにまたは本明細書で説明されるいくつかの動作を実施するように物理的に構築されるか、永続的に構成される(たとえば、ハードワイヤードされる)か、または一時的に構成される(たとえば、プログラムされる)エンティティである、有形エンティティを包含するものと理解されるべきである。ハードウェアモジュールが一時的に構成される(たとえば、プログラムされる)実施形態を考慮して、ハードウェアモジュールの各々が任意のある時点で構成されるかまたはインスタンス化される必要はない。たとえば、ハードウェアモジュールが、ソフトウェアを使用して構成された汎用プロセッサを備える場合、汎用プロセッサは、異なるときにそれぞれの異なるハードウェアモジュールとして構成され得る。ソフトウェアは、それに応じて、たとえば、ある時点で特定のハードウェアモジュールを構成し、異なる時点で異なるハードウェアモジュールを構成するようにプロセッサを構成し得る。
【0115】
ハードウェアモジュールおよびソフトウェアモジュールは、他のハードウェアモジュールおよび/またはソフトウェアモジュールに情報を提供し、それらのモジュールから情報を受信することができる。したがって、説明されたハードウェアモジュールは、通信可能に結合されるものと見なされ得る。複数のそのようなハードウェアモジュールまたはソフトウェアモジュールが同時に存在する場合、通信は、ハードウェアモジュールまたはソフトウェアモジュールを接続する信号送信を通じて(たとえば、適切な回路およびバスを介して)達成され得る。複数のハードウェアモジュールまたはソフトウェアモジュールが異なるときに構成またはインスタンス化される実施形態では、そのようなハードウェアモジュールまたはソフトウェアモジュール間の通信は、たとえば、複数のハードウェアモジュールまたはソフトウェアモジュールがアクセスできるメモリ構造内の情報の記憶および取出しを通じて達成され得る。たとえば、あるハードウェアモジュールまたはソフトウェアモジュールが、動作を実施し、そのモジュールが通信可能に結合されたメモリデバイスにその動作の出力を記憶し得る。次いで、さらなるハードウェアモジュールまたはソフトウェアモジュールが、後になって、メモリデバイスにアクセスして、記憶された出力を取り出し、処理し得る。ハードウェアモジュールおよびソフトウェアモジュールはまた、入力デバイスまたは出力デバイスとの通信を開始してもよく、リソース上で動作することができる(たとえば、情報の収集)。
【0116】
本明細書で説明される例示的な方法の様々な動作は、少なくとも部分的に、(たとえば、ソフトウェアによって)一時的に構成されたまたは関連する動作を実施するように永続的に構成された1つまたは複数のプロセッサによって実施され得る。一時的に構成されるかまたは永続的に構成されるかにかかわらず、そのようなプロセッサは、1つまたは複数の動作または機能を実施するように動作するプロセッサ実装モジュールを構成し得る。本明細書で言及されるモジュールは、いくつかの例示的な実施形態では、プロセッサ実装モジュールを含み得る。
【0117】
同様に、本明細書で説明される方法またはルーチンは、少なくとも部分的にプロセッサで実装され得る。たとえば、方法の動作のうちの少なくともいくつかは、1つまたは複数のプロセッサもしくはプロセッサ実装ハードウェアモジュールによって実施され得る。動作のうちのいくつかの実施は、単一の機械内に存在するだけでなく、いくつかの機械にわたって展開される1つまたは複数のプロセッサの間で分散され得る。いくつかの例示的な実施形態では、1つまたは複数のプロセッサは単一のロケーションに(たとえば、家庭環境、オフィス環境内にまたはサーバファームとして)配置され得るが、他の実施形態では、プロセッサはいくつかのロケーションにわたって分散され得る。
【0118】
1つまたは複数のプロセッサはまた、「クラウドコンピューティング」環境におけるまたはSaaSとしての関連する動作の実施をサポートするように動作し得る。たとえば、上記で示されたように、動作のうちの少なくともいくつかは、(プロセッサを含む機械の例として)コンピュータのグループによって実施されてもよく、これらの動作は、ネットワーク(たとえば、インターネット)を介しておよび1つまたは複数の適切なインターフェース(たとえば、API)を介してアクセス可能である。
【0119】
動作のうちのいくつかの実施は、単一の機械内に存在するだけでなく、いくつかの機械にわたって展開される1つまたは複数のプロセッサの間で分散され得る。いくつかの例示的な実施形態では、1つまたは複数のプロセッサもしくはプロセッサ実装モジュールは、単一の地理的ロケーションに(たとえば、家庭環境、オフィス環境、またはサーバファーム内に)配置され得る。他の例示的な実施形態では、1つまたは複数のプロセッサもしくはプロセッサ実装モジュールは、いくつかの地理的ロケーションにわたって分散され得る。
【0120】
本明細書のいくつかの部分は、機械メモリ(たとえば、コンピュータメモリ)内にビットまたは2値デジタル信号として記憶されたデータに対する動作のアルゴリズムまたは記号的表現の観点で提示される。これらのアルゴリズムまたは記号的表現は、データ処理分野の当業者によって自分の仕事の内容を他の当業者に伝えるために使用される技法の例である。本明細書で使用される場合、「アルゴリズム」または「ルーチン」は、所望の結果をもたらす、動作の自己矛盾のないシーケンスまたは類似の処理である。この文脈では、アルゴリズム、ルーチンおよび動作は、物理的な量の物理的な操作を伴う。典型的には、必ずではないが、そのような量は、記憶、アクセス、転送、合成、比較、または他の方法での操作が機械によって行われることが可能な電気信号、磁気信号、または光学信号の形態を取り得る。「データ」、「コンテンツ」、「ビット」、「値」、「要素」、「シンボル」、「文字」、「用語」、「数」、「数字」などの語を使用してそのような信号に言及することが、主に共通使用の理由で、時として便利である。しかしながら、これらの語は便利なラベルであるにすぎず、適切な物理的な量に関連付けられるべきである。
【0121】
特に別途述べられない限り、「処理する」、「算出する」、「計算する」、「判定する」、「提示する」、「表示する」などの語を使用する本明細書の議論は、1つまたは複数のメモリ(たとえば、揮発性メモリ、不揮発性メモリ、またはそれらの組合せ)、レジスタ、または情報を受信、記憶、送信、もしくは表示する他の機械コンポーネント内の物理的(たとえば、電子的、磁気的、または光学的)な量として表されるデータを操作または変換する機械(たとえば、コンピュータ)のアクションまたはプロセスに言及することがある。
【0122】
本明細書で使用される場合、「1つの実施形態」または「一実施形態」へのいかなる言及も、実施形態に関して説明された特定の要素、特徴、構造、または特性が少なくとも1つの実施形態に含まれることを意味する。本明細書の様々な箇所における「1つの実施形態では」という句の出現は、必ずしもすべてが同じ実施形態を指しているとは限らない。
【0123】
いくつかの実施形態は、「結合された」および「接続された」という表現をそれらの派生語とともに使用して説明されることがある。たとえば、いくつかの実施形態は、2つ以上の要素が物理的または電気的に直接接触していることを示すために、「結合された」という用語を使用して説明されることがある。しかしながら、「結合された」という用語は、2つ以上の要素が互いに直接接触していないが、それでもやはり、互いと協働または相互作用することも意味することがある。実施形態は、この文脈において限定されない。
【0124】
本明細書で使用される場合、「備える(comprises)」、「備える(comprising)」、「含む(includes)」、「含む(including)」、「有する(has)」、「有する(having)」という用語またはそれらの任意の他の変形は、非排他的な包含をカバーすることが意図される。たとえば、要素のリストを含むプロセス、方法、物品、または装置は、必ずしもそれらの要素のみに限定されるとは限らず、明示的に列挙されていないか、またはそのようなプロセス、方法、物品、もしくは装置に固有ではない他の要素を含むことがある。さらに、そうではないことが明示的に述べられていない限り、「または(or)」は、排他的なまたは(or)ではなく、包含的なまたは(or)を指す。たとえば、条件Aまたは条件Bは、以下、すなわち、Aが真である(または存在する)かつBが偽である(または存在しない)、Aが偽である(または存在しない)かつBが真である(または存在する)、およびAとBの両方が真である(または存在する)のうちのいずれか1つによって満たされる。
【0125】
加えて、「a」または「an」の使用は、本明細書の実施形態の要素およびコンポーネントを説明するために用いられる。これは、単に便宜的に、説明の一般的な意味を与えるために行われる。この説明は、1つまたは少なくとも1つを含むものと読まれるべきであり、単数形は、そうではないことが意図されていることが明らかでない限り、複数も含む。
【符号の説明】
【0126】
10 環境
20 ポータブルシステム
30 サーバシステム、サーバ
50 通信ネットワーク、ネットワーク
60 車両輸送システム
122 処理ユニット
124 メモリ
126 ユーザインターフェース
128 センサユニット、センサ
132 ナビゲーションモジュール、コンポーネント
134 機械学習モジュール、コンポーネント
136 データアグリゲーションモジュール、コンポーネント
142 操縦データベース、データベース
144 ロケーションデータベース、データベース
146 ユーザデータベース、データベース
155 マップデータ
156 ストリートレベルの画像データ
162a~d 車両
164 V2Iモジュール
200 方法
320、322、324、326 地理的ロケーション、ロケーション
420、422、424、426 地理的ロケーション、ロケーション
520、522、524、526 地理的ロケーション、ロケーション
620、622、624、626 地理的ロケーション、ロケーション
720、722、724、726 ストリートレベルのフレーム、フレーム
820、822、824、826 ストリートレベルのフレーム、フレーム
920、922、924、926 修正操縦、操縦
図1
図2
図3
図4
図5
図6
図7
図8
図9