(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-15
(45)【発行日】2022-12-23
(54)【発明の名称】道路の交差点の検証
(51)【国際特許分類】
G09B 29/00 20060101AFI20221216BHJP
G06F 16/907 20190101ALI20221216BHJP
G08G 1/00 20060101ALI20221216BHJP
【FI】
G09B29/00 F
G06F16/907
G08G1/00 D
G09B29/00 Z
(21)【出願番号】P 2021510750
(86)(22)【出願日】2019-08-23
(86)【国際出願番号】 US2019048007
(87)【国際公開番号】W WO2020046755
(87)【国際公開日】2020-03-05
【審査請求日】2021-04-13
(32)【優先日】2018-08-31
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】317015065
【氏名又は名称】ウェイモ エルエルシー
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100126480
【氏名又は名称】佐藤 睦
(72)【発明者】
【氏名】モンテメルロ,マイケル
【審査官】早川 貴之
(56)【参考文献】
【文献】特表2014-517399(JP,A)
【文献】米国特許出願公開第2018/0012486(US,A1)
【文献】韓国公開特許第10-2018-0086951(KR,A)
(58)【調査した分野】(Int.Cl.,DB名)
G01C 21/00-21/36
23/00-25/00
G08G 1/00-99/00
G09B 23/00-29/14
(57)【特許請求の範囲】
【請求項1】
コンピュータ実装方法であって、
特定の候補交差点の
複数の車線の各車
線の1つ以上の属性を
表す注釈付き交差点データを受信することと、
前記注釈付き交差点データを処理して
、前記特定の候補交差点の交差点フィンガープリントを生成すること
であって、前記交差点フィンガープリントは、前記特定の候補交差点の幾何学的歪みに対して不変である1つ以上の車線プロパティを表す、ことと、
前記特定の候補交差点の前記交差点フィンガープリント
を1つ以上のすでに検証済みの交差点テンプレートと比較して、前記特定の候補交差点が交差点テンプレートに関連付けられている程度を示す値がしきい値を満たす場合、前記特定の候補交差点を検証済みとして指定することと、
前記特定の候補交差点を検証済みとして指定することに応答して
、前記特定の候補交差点の表現をロードグラフに格納することと、を含む、コンピュータ実装方法。
【請求項2】
前記注釈付き交差点データを受信することと、前記注釈付き交差点データを処理して前記交差点フィンガープリントを生成することと、前記特定の候補交差点を検証済みとして指定することと、を行う前に、
前記特定の候補交差点についての他の注釈付き交差点データを受信することと、
前記他の注釈付き交差点データを処理して、前記特定の候補交差点の異なる交差点フィンガープリントを生成することと、
少なくとも前記特定の候補交差点の前記異なる交差点フィンガープリントに基づいて、前記1つ以上の品質管理プロセスを実行することと、を含み、
後で受信される前記特定の候補交差点の前記注釈付き交差点データが、少なくとも前記特定の候補交差点の前記異なる交差点フィンガープリントに基づいて前記1つ以上の品質管理プロセスを実行したときの出力を含む、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記特定の候補交差点を検証済みとして指定することが、前記1つ以上の品質管理プロセスの実行をバイパスすることを決定することを含む、請求項1に記載のコンピュータ実装方法。
【請求項4】
前記特定の候補交差点を検証済みとして指定することが、前記特定の候補交差点に関連付けられているデータに対して前記1つ以上のプロセスを再実行しないことを決定することを含む、請求項1に記載のコンピュータ実装方法。
【請求項5】
前記注釈付き交差点
データが、(i)1つ以上の品質管理プロセスを正常に完了させた候補交差点を検証済みとして指定する品質保証エンジンと、(ii)ロードグラフを格納する1つ以上のデータベースと、(iii)検証済みの候補交差点の表現を前記ロードグラフに格納させるロードグラフマネージャと、を含むシステムによって受信される、請求項1に記載のコンピュータ実装方法。
【請求項6】
前記注釈付き交差点データによって示される前記車線の前記1つ以上の属性のうちの少なくとも1つが、車線ペアの属性を含む、請求項1に記載のコンピュータ実装方法。
【請求項7】
前記注釈付き交差点データを処理して前記特定の候補交差点の交差点フィンガープリントを生成することが
、前記注釈付き交差点データを処理して
、前記特定の候補交差点のハッシュ値を生成することを
含む、請求項1に記載のコンピュータ実装方法。
【請求項8】
前記注釈付き交差点データによって示される前記車線の前記1つ以上の属性の各々が、前記属性のバイナリ値によって表され、
前記特定の候補交差点のハッシュ値を生成することが、
前記特定の候補交差点の前記車線の前記属性のうちの1つ以上の前記バイナリ値を組み合わせて、1つ以上の文字列を生成することと、
少なくとも前記1つ以上の文字列に基づいて
、前記特定の候補交差点のハッシュ値を生成することと、を含む、請求項7に記載の方法。
【請求項9】
前記特定の候補交差点を検証済みとして指定することが、
前記1つ以上の交差点テンプレートにアクセスするこ
とを含む、請求項1に記載の方法。
【請求項10】
前記交差点テンプレートが、前記1つ以上の品質管理プロセスを実行することによって正当なものとして指定された交差点のフィンガープリントである、請求項
1に記載の方法。
【請求項11】
前記1つ以上の車線プロパティは、前記特定の候補交差点の回転、前記特定の候補交差点の縮小、または前記特定の候補交差点の一部の引き伸ばしの影響を受けない、請求項1に記載の方法。
【請求項12】
前記特定の候補交差点
の車線の幅、車線間の距離、
および車線間の角度
は、前記交差点フィンガープリントの生成に使用しない、請求項11に記載の方法。
【請求項13】
前記注釈付き交差点データが、前記特定の候補交差点の注釈付き画像データまたは前記特定の候補交差点の注釈付きレーダーデータのうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項14】
システムであって、
1つ以上の処理デバイスと、前記1つ以上の処理デバイスによって実行されたときに前記1つ以上の処理デバイスに動作を実行させるように動作可能な命令を格納する1つ以上の格納デバイスと、を備え、前記動作が、
前記1つ以上の処理デバイスによって、特定の候補交差点の
複数の車線の各車
線の1つ以上の属性を
表す注釈付き交差点データを受信することと、
前記1つ以上の処理デバイスによって、前記注釈付き交差点データを処理して
、前記特定の候補交差点の交差点フィンガープリントを生成すること
であって、前記交差点フィンガープリントは、前記特定の候補交差点の幾何学的歪みに対して不変である1つ以上の車線プロパティを表す、ことと、
前記1つ以上の処理デバイスによって
、前記特定の候補交差点の前記交差点フィンガープリント
を1つ以上のすでに検証済みの交差点テンプレートと比較して、前記特定の候補交差点が交差点テンプレートに関連付けられている程度を示す値がしきい値を満たす場合、前記特定の候補交差点を検証済みとして指定することと、
前記特定の候補交差点を検証済みとして指定することに応答して、前記1つ以上の処理デバイスによって、前記特定の候補交差点の表現をロードグラフに格納することと、を含む、システム。
【請求項15】
前記注釈付き交差点データを受信することと、前記注釈付き交差点データを処理して前記交差点フィンガープリントを生成することと、前記特定の候補交差点を検証済みとして指定することと、を行う前に、
前記特定の候補交差点についての他の注釈付き交差点データを受信することと、
前記他の注釈付き交差点データを処理して、前記特定の候補交差点の異なる交差点フィンガープリントを生成することと、
少なくとも前記特定の候補交差点の前記他の交差点フィンガープリントに基づいて、前記1つ以上の品質管理プロセスを実行することと、を含み、
後で受信される前記特定の候補交差点の前記注釈付き交差点データが、少なくとも前記特定の候補交差点の前記異なる交差点フィンガープリントに基づいて前記1つ以上の品質管理プロセスを実行したときの出力を含む、請求項14に記載のシステム。
【請求項16】
前記特定の候補交差点を検証済みとして指定することが、前記1つ以上の品質管理プロセスの実行をバイパスすることを決定することを含む、請求項14に記載のシステム。
【請求項17】
前記特定の候補交差点を検証済みとして指定することが、前記特定の候補交差点に関連付けられているデータに対して前記1つ以上のプロセスを再実行しないことを決定することを含む、請求項14に記載のシステム。
【請求項18】
前記注釈付き交差点データによって示される前記車線の前記1つ以上の属性のうちの少なくとも1つが、車線ペアの属性を含む、請求項14に記載のシステム。
【請求項19】
前記注釈付き交差点データを処理して前記特定の候補交差点の交差点フィンガープリントを生成することが、前記1つ以上の処理デバイスによって、前記注釈付き交差点データを処理して
、前記特定の候補交差点のハッシュ値を生成することを
含む、請求項
14に記載のシステム。
【請求項20】
コンピュータプログラムを格納した1つ以上のコンピュータ可読格納媒体であって、前記コンピュータプログラムが、1つ以上の処理デバイスによって実行されたときに前記1つ以上の処理デバイスに動作を実行させる命令を含み、前記動作が、
前記1つ以上の処理デバイスによって、特定の候補交差点の
複数の車線の各車
線の1つ以上の属性を
表す注釈付き交差点データを受信することと、
前記1つ以上の処理デバイスによって、前記注釈付き交差点データを処理して
、前記特定の候補交差点の交差点フィンガープリントを生成すること
であって、前記交差点フィンガープリントは、前記特定の候補交差点の幾何学的歪みに対して不変である1つ以上の車線プロパティを表す、ことと、
前記1つ以上の処理デバイスによって
、前記特定の候補交差点の前記交差点フィンガープリント
を1つ以上のすでに検証済みの交差点テンプレートと比較して、前記特定の候補交差点が交差点テンプレートに関連付けられている程度を示す値がしきい値を満たす場合、前記特定の候補交差点を検証済みとして指定することと、
前記特定の候補交差点を検証済みとして指定することに応答して、前記1つ以上の処理デバイスによって、前記特定の候補交差点の表現をロードグラフに格納することと、を含む、1つ以上のコンピュータ可読格納媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概して、ロードグラフを使用したナビゲーションおよび経路計画に関する。
【背景技術】
【0002】
ナビゲーションシステムは、交差点および道路の記述を含むロードグラフを使用して、車両が走行するための安全で合法的な経路を計画することができる。
【発明の概要】
【0003】
道路の交差点は、異なる向きと速度の車両が近接して相互作用する道路網内の領域である。車両ナビゲーションシステムは、交差点および道路の記述を含むロードグラフを使用して、車両の安全で合法的な軌道を計画し、道を譲る判断の優先順位を理解し、他の車両の挙動を予測することができる。交差点での衝突のリスクが高いことを考えると、ロードグラフに含まれる交差点の記述が確実に正確であることが特に重要となる。ロードグラフの交差点の記述の正確性を確実にするために、システムは、1つ以上の品質管理プロセスを正常に完了させるために交差点の候補記述を必要とする場合がある。品質管理プロセスは、コンピュータシステムまたは場合によっては人間のオペレータによって実装することができる。
【0004】
いくつかの実装態様では、注釈付きの交差点データを使用して、システムは、交差点の候補記述のフィンガープリントを生成することができる。フィンガープリントは、交差点の車線のトポロジ構造に敏感であるが、交差点の特定のジオメトリに対しては不変である。例えば、フィンガープリントは、交差点の車線の運転性の関係(例えば、車線の数、車線の配置、車線のファンアウト)には敏感であるが、車線の幾何学的な関係(例えば、車線の幅、車線間の距離、車線間の角度)には敏感ではない。
【0005】
フィンガープリントは、例えば、交差点車線の1つ以上の属性に基づいて生成されたハッシュ値にすることができる。車線の属性には、車線のタイプ(例えば、ターン車線、通過車線、Uターン車線)、車線管制手段の存在(例えば、信号機、止まれ標識、譲れ標識)、車線が入口または出口の兄弟を有するかどうか(例えば、車線が共通車線からファンアウトするか、または共通車線に合流するか)、および車線が通過車線を横切るかどうかなどの、個々の車線のプロパティが含まれ得る。車線の属性には、車線の配置(例えば、車線が互いに隣接している、車線が互いに交差している)、車線が入口または出口の兄弟であるかどうか(例えば、車線が共通の入口または出口車線を共有する)、および車線が共通の開始の向き(例えば、車線のトラフィックが同じ方向から交差点に入る)または終了の向き(例えば、車線のトラフィックが、同じ方向で交差点を出る)を共有するかどうかなどの、車線ペアのプロパティ(例えば、車線ペアプロパティ)も含まれ得る。
【0006】
1つ以上の品質管理プロセスを実行せずに候補交差点の記述を検証するために、システムは、候補交差点フィンガープリントを、正当な交差点構成を記述することがわかっている1つ以上の交差点テンプレートと比較することができる。例えば、システムは、候補交差点が交差点テンプレートに類似している程度を示す値(例えば、候補交差点フィンガープリントのハッシュ値と交差点テンプレートフィンガープリントとの間の距離)を生成することができる。候補交差点フィンガープリントが検証済みの交差点テンプレートと十分に類似している場合、システムは、追加の品質管理プロセスを実行することなく、交差点の候補記述を正当なものとして指定することができる。次に、システムは、ナビゲーションおよび経路計画で車両による使用のために、検証済みの候補交差点の記述の表現をロードグラフに格納することができる。
【0007】
いくつかの実装形態では、方法は、1つ以上の処理デバイスによって、特定の候補交差点の各車線について、車線の1つ以上の属性を示す注釈付き交差点データを受信する動作と、1つ以上の処理デバイスによって、注釈付き交差点データを処理して、特定の候補交差点の車線のトポロジ構造に敏感であり、かつ特定の候補交差点の車線のジオメトリに対して不変である特定の候補交差点の交差点フィンガープリントを生成する動作と、を含む。この方法はまた、1つ以上の処理デバイスによって、少なくとも特定の候補交差点の交差点フィンガープリントに基づいて1つ以上の品質管理プロセスを実行せずに特定の候補交差点を検証済みとして指定する動作と、特定の候補交差点を検証済みとして指定することに応答して、1つ以上の処理デバイスによって、特定の候補交差点の表現をロードグラフに格納する動作と、を含む。
【0008】
いくつかの実装形態では、システムは、(i)1つ以上の品質管理プロセスを正常に完了させた候補交差点を検証済みとして指定する品質保証エンジンと、(ii)ロードグラフを格納する1つ以上のデータベースと、(iii)検証済みの候補交差点の表現をロードグラフに格納させるロードグラフマネージャと、を含む。システムは、(i)システムによって、特定の候補交差点の各車線について、車線の1つ以上の属性を示す注釈付き交差点データを受信する動作と、(ii)システムによって、注釈付き交差点データを処理して、特定の候補交差点の車線のトポロジ構造に敏感であり、かつ特定の候補交差点の車線のジオメトリに対して不変である特定の候補交差点の交差点フィンガープリントを生成する動作と、(iii)システムによって、少なくとも特定の候補交差点の交差点フィンガープリントに基づいて1つ以上の品質管理プロセスを実行せずに特定の候補交差点を検証済みとして指定する動作と、(iv)特定の候補交差点を検証済みとして指定することに応答して、システムによって、特定の候補交差点の表現をロードグラフに格納する動作と、を含む方法を実行することができる。
【0009】
いくつかの実装形態では、システムによって受信される注釈付き交差点データは、(i)特定の候補交差点の注釈付き画像データ、または(ii)特定の候補交差点の注釈付きレーダーデータのうちの少なくとも1つを含む。
【0010】
いくつかの実装形態では、注釈付き交差点データによって示される車線の1つ以上の属性のうちの少なくとも1つは、車線ペアの属性を含む。いくつかの実装形態では、注釈付き交差点データによって示される車線の1つ以上の属性のうちの少なくとも1つは、個々の車線の属性を含む。
【0011】
いくつかの実装形態では、特定の候補交差点の車線のトポロジ構造は、幾何学的歪みの下で変化しない特定の候補交差点の1つ以上の車線のトポロジプロパティを含む。例えば、特定の候補交差点の1つ以上の車線のトポロジプロパティは、車線の数、車線の配置、または車線のファンアウトのうちの少なくとも1つを含むことができる。いくつかの実装形態では、特定の候補交差点の車線のジオメトリは、車線の幅、車線間の距離、または車線間の角度のうちの少なくとも1つを含むことができる。
【0012】
いくつかの実装形態では、注釈付き交差点データを処理して特定の候補交差点の交差点フィンガープリントを生成することは、注釈付き交差点データを処理して、特定の候補交差点の車線のトポロジ構造に敏感であり、かつ特定の候補交差点の車線のジオメトリに対して不変である特定の候補交差点のハッシュ値を生成することを含む。例えば、いくつかの実装形態では、注釈付き交差点データによって示される車線の1つ以上の属性の各々は、属性のバイナリ値で表され、特定の候補交差点のハッシュ値を生成することは、(i)特定の候補交差点の車線の属性のうちの1つ以上のバイナリ値を組み合わせて、1つ以上の文字列を生成することと、(ii)少なくとも1つ以上の文字列に基づいて、特定の候補交差点の車線のトポロジ構造に敏感であり、かつ特定の候補交差点の車線のジオメトリに対して不変である特定の候補交差点のハッシュ値を生成することと、を含む。次に、システムは、少なくとも特定の候補交差点のハッシュ値に基づいて、1つ以上の品質管理プロセスを実行せずに特定の候補交差点を検証済みとして指定することができる。
【0013】
いくつかの実装形態では、少なくとも交差点フィンガープリントに基づいて1つ以上の品質管理プロセスを実行せずに特定の候補交差点を検証済みとして指定することは、(i)システムによって、交差点テンプレートにアクセスすることと、(ii)特定の候補交差点の交差点フィンガープリントと交差点テンプレートとを比較することと、(iii)比較に基づいて、特定の候補交差点が交差点テンプレートに関連付けられている程度を反映している値を生成することと、(iv)特定の候補交差点が交差点テンプレートに関連付けられている程度を反映している値がしきい値を満たしていることを判定することと、(iv)特定の候補交差点が交差点テンプレートに関連付けられている程度を反映している値がしきい値を満たしていることを判定することに基づいて、1つ以上の品質管理プロセスを実行せずに特定の候補交差点を検証済みとして指定することと、を含む。
【0014】
交差点テンプレートは、例えば、1つ以上の品質管理プロセスを実行することによって正当なものとして指定された交差点のフィンガープリントとすることができる。
【0015】
いくつかの実装形態では、上記の方法は、1つ以上のコンピュータシステム、例えば、1つ以上の処理デバイスと、1つ以上の処理デバイスによって実行されたときに上記の動作を実行するように動作可能な命令を格納する1つ以上の格納デバイスと、を含むシステムによって実行することができる。いくつかの実装形態では、1つ以上のコンピュータ可読格納媒体が、コンピュータプログラムを格納し、コンピュータプログラムは、1つ以上の処理デバイスによって実行されると1つ以上の処理デバイスに上記の動作を実行させる命令を含む。
【0016】
開示されたシステム、手法、および方法の特定の実装形態は、特定の特徴および利点を有する。候補交差点の記述は、そのフィンガープリントをすでに検証済みの交差点テンプレートと比較し、追加の品質管理プロセスを実行する必要をなくし、検証に必要な時間とコンピューティングリソースとを削減することによって検証することができる。例えば、交差点フィンガープリントをすでに検証済みの交差点テンプレートと比較すると、複数の検証手段(例えば、互換性のある車線管制、疑わしい車線の終了、疑わしい合流、および疑わしい車線の交差)を同時に評価でき、検証手段を個別におよび/または順次評価する方法と比較して検証プロセスを高速化する。加えて、高レベルの交差点表現を生成するか、または多くの自動品質管理プロセスに必要な有意な交差点構造(例えば、専用のターン車線またはスリップ車線)を特定するために注釈付き交差点データの計算集約型のモデリングと分析とを必要とするのではなく、交差点フィンガープリントは、個々の車線および車線ペアの属性のセットに基づいて交差点構造を区別でき、大幅に少ない計算量での検証を提供する。場合によっては、固有のまたは異常な交差点の特徴を、フィンガープリント、および追加の品質管理手段に送られた、または人的品質管理エンジニアの注意を引く、それらの特徴において特定することができる。
【0017】
いくつかの実装形態では、交差点フィンガープリントをロードグラフの交差点表現と一緒に格納し、ロードグラフの更新中のエラーを防ぐために使用することができる。例えば、ロードグラフの更新により、交差点での止まれ標識が削除され得る。更新された交差点のフィンガープリントが元の交差点のフィンガープリントまたはすでに検証済みの交差点テンプレートのフィンガープリントと十分に異なる場合、システムは、その更新に潜在的なエラーとしてフラグを付け、更新された交差点を追加の品質管理プロセスに送ることができる。
【0018】
検証に加えて、検証済みの交差点のセットのフィンガープリントを分析することに基づいて、この方法は、ソフトウェアアプリケーションまたは地図およびロードグラフを作成する人間によって使用できる交差点について1つ以上の推論を行うことができる。例えば、システムは、入力と出力の車線のセットのフィンガープリントおよび/または特定の交差点の交通管制信号に基づいて、特定の交差点の記述が欠落している不完全なロードグラフに対して交差点を生成し得、そのシステムは、1つ以上の互換性のある、すでに検証済みの交差点テンプレートを特定し、選択したテンプレートの記述を追加して、ロードグラフを完成させることができる。
【0019】
別の例として、システムは、交差点の反対側の車線構成に基づいて、交差点の片側の予想される車線構成を決定することができる。さらに別の例として、システムは、特定の交差点トポロジ(例えば、車線の配置、車線間の関係など)に基づいて、予想される信号機の構成を決定することができる。
【0020】
1つ以上の実装形態の詳細は、添付図面および以下の説明において記述される。本開示の他の潜在的な特徴および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0021】
【
図1】1つ以上の品質管理プロセスを実行せずに道路の交差点を検証するためのシステムの例を示す図である。
【
図2】1つ以上の品質管理プロセスを実行せずに道路の交差点を検証するための方法の例を示すフローチャートである。
【0022】
様々な図面の中の同様の参照番号および名称は、同様の要素を示す。
【発明を実施するための形態】
【0023】
図1は、1つ以上の品質管理プロセスを実行せずに道路の交差点を検証するためのシステム100の例を示す図である。システム100は、検証済みのロードグラフデータをデータベース170に格納するコンピュータシステム110を含む。コンピュータシステム110はまた、データがデータベース170に格納される前に、ロードグラフデータを検証するために様々な品質管理プロセスを実行することができる品質保証エンジン160を含む。
【0024】
いくつかの道路の交差点について、コンピュータシステム110は、品質管理プロセスを実行せずに交差点の候補記述を検証することができる。これらの交差点について、システム110は、候補交差点を記述する注釈付き交差点データ122を受信し、データ122に基づいて、候補交差点の交差点フィンガープリント142を生成する。生成されたフィンガープリント142を処理することにより、コンピュータシステム110は、品質保証エンジン160の品質管理プロセスを実行せずに、候補交差点を検証済みとして指定することができ、検証に必要な時間および計算リソースを削減する。
図1は、ステージ(A)~(D)を含み、これらは、1つ以上の品質管理プロセスを実行せずに道路の交差点を検証するためのプロセスフローを表す。
【0025】
ロードグラフには、道路網を記述するデータが含まれている。地図と同様に、ロードグラフデータは、経路計画のために使用される道路、交差点、および他の構造物の位置を示す。ロードグラフデータには、特定の車線を示すデータ、交通管制デバイス(例えば、止まれ標識、譲れ標識)、運転規則(例えば、ターン制限、カープール車線)、およびナビゲーションに使用される他のデータを含む、車両ナビゲーションに関連する道路の特徴も含まれる。有人または自動運転車両のナビゲーションシステムなどの車両ナビゲーションシステムは、ロードグラフデータを使用して、車両の安全で合法的な軌道を計画し、道を譲る判断の優先順位を理解し、道路上の他の車両の挙動を予測することができる。
【0026】
ロードグラフデータには、道路の交差点を記述するデータが含まれている。道路の交差点は、異なる向きと速度の車両が近接して相互作用する道路網内の領域である。例えば、道路の交差点は、2つ以上の道路が交差する場合、道路が別の道路に合流する場合、または道路が複数の道路に分岐する場合に発生することができる。いくつかの実装形態では、交差点は、交差点を通過する車線の各々へのリンク、ならびに各交差点に関連付けられた交通管制(例えば、信号機、止まれ標識、譲れ標識)を備えた多角形の領域としてロードグラフに表される。
【0027】
交差点での潜在的な車両の相互作用の複雑さは、衝突のリスクを高め、交差点を記述するロードグラフデータが正確で完全であることが確実であることが特に重要になる。ロードグラフの交差点の記述の正確性を確実にするために、システムは、1つ以上の品質管理プロセスを正常に完了させるために交差点の候補記述を必要とする場合がある。品質管理プロセスは、コンピュータシステムまたは場合によっては人間のオペレータによって実装することができる。例えば、品質保証エンジン160は、交差点の一連の規則に対して候補交差点を分析するか、または交差点記述における一般的なエラーについて候補交差点を検索する、1つ以上の品質管理プロセスを自動的に実行することができる。いくつかの実装形態では、品質管理プロセスのうちの1つ以上は、人間のオペレータからの入力を必要とし得る(例えば、エラーを特定およびラベル付けするために)。次に、品質保証エンジン160は、1つ以上の品質管理プロセスを正常に完了させた候補交差点を検証済みとして指定し、検証済みの候補交差点の表現をロードグラフデータとしてロードグラフデータベースに格納することができる。
【0028】
多くの自動検証プロセスでは、交差点の正当性を判定するために、交差点の高レベルの表現の生成(例えば、交差点を2つの停止がある4方向の交差点として特徴付けること)、または特定の交差点構造(例えば、専用のターン車線、スリップ車線)の特定を必要とする。ただし、このような高レベルの表現を生成すること、および特定の交差構造を特定することは、信頼性が低くなり得、広範なモデリングと分析とが必要になる可能性がある。他のプロセスは、すべての状況で実行される品質管理プロセスに依存しているか、または人間のオペレータ入力を必要とし、検証プロセスが大幅に遅くなる可能性がある。システム100は、すべての状況において品質保証エンジン160による品質管理プロセスの実行を必要とせずに候補交差点の記述の検証を可能にし、検証に必要な時間および計算リソースを削減する。
【0029】
システム100は、コンピュータシステム110を含む。コンピュータシステム110は、例えば、システム100に対して様々な動作を実行するための命令を実施する1つ以上のコンピュータまたはサーバ、例えば、サーバシステムとすることができる。コンピュータシステム110は、1つ以上のCPU、GPU、メモリシステム、または1つ以上のプロセッサ、チップセット、汎用コンピューティングシステム、メモリシステム、およびデータストレージシステムなどの他のコンピュータハードウェアを含むことができる。いくつかの実装形態では、コンピュータシステム110は、クラウドコンピューティングプラットフォーム、または別のリモートおよび/または分散コンピューティングシステムを含むことができる。
【0030】
コンピュータシステム110は、プロセスの様々なステップを実行するための1つ以上のプロセスモジュールを含む。例えば、コンピュータシステム110は、インターフェースモジュール120、属性エンジン130、フィンガープリント生成器140、ロードグラフマネージャ150、および品質保証エンジン160を含むことができる。モジュールは、ハードウェアおよび/またはソフトウェアの任意の組み合わせで実装することができる。例えば、1つ以上のモジュールが、コンピュータ110のオペレーティングシステムによって実施されるソフトウェアアプリケーションとして実装され得る。いくつかの実装形態では、モジュールのうちの1つ以上に、デジタル信号処理ハードウェア、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、または他の特殊なハードウェアなどの専用処理ハードウェアを含めることができる。
【0031】
ステージ(A)において、インターフェースモジュール120は、候補交差点の注釈付き交差点データ122を受信する。注釈付き交差点データ122は、例えば、候補交差点の画像データまたは候補交差点のレーダーデータ(例えば、空中カメラ、または車両に取り付けられたカメラもしくはレーダーシステムによって取得されたデータ)とすることができ、画像データまたはレーダーデータには、交差点の様々な特徴を示すために注釈が付けられている。例えば、データ122に、交差点の1つ以上の車線、合法的なターン用車線、合流車線、または他の車線特徴に沿った走行の位置および方向を示すために注釈を付けることができる。データ122にはまた、信号機、止まれ標識、および譲れ標識などの交通管制デバイスの存在を示すために注釈を付けることができる。場合によっては、注釈は、Uターンまたはカープールのみの車線の禁止など、候補交差点の合法的な運転制限を示すことができる。
【0032】
データ122には、例えば、コンピュータシステム110またはデータ122を処理して注釈を生成する別のコンピュータシステムによって自動的に注釈を付けることができる。データ122にはまた、例えば、データ122を評価し、注釈をコンピュータシステムに入力する1人以上の人間によって、手動で注釈を付けることができる。
【0033】
図1の例では、コンピュータシステム122は、特定の候補交差点「100123」のデータを含む注釈付き交差点データ122を受信する。注釈付き交差点データ122は、他の特徴の中でもとりわけ、通過車線(例えば、車線は、交差点に入る側とは反対の側で交差点を出る)である車線k、および右折車線である車線jの表示を含む。注釈付き交差点データ122はまた、車線jおよびkの両方が止まれ標識によって管制されていることを示している。
【0034】
ステージ(B)において、属性エンジン130は、注釈付きデータ122に基づいて、候補交差点に対して1つ以上の車線属性132を決定する。属性エンジン130によって決定された車線属性132は、交差点を様々な交差点タイプおよびジオメトリに分類し、それらを区別するためにシステム100によって使用され得る候補交差点の1つ以上の車線のトポロジプロパティを記述する。トポロジ車線プロパティは、交差点の特定のジオメトリ(例えば、交差点の一部を伸ばす、交差点を回転させる、交差点を縮小する、または他の幾何学的歪みなどの幾何学的歪みの影響を受けないプロパティ)に対して不変である、個々の車線の特徴(例えば、走行方向、車線のタイプ、車線の交通管制デバイス)、またはいくつかの車線間の関係(例えば、車線の数、車線の配置、車線のファンアウト)を記述することができる。典型的に、車線属性132は、車線の幅、車線間の距離、車線間の角度、または幾何学的歪みに対して敏感な他の幾何学的プロパティなどの交差点の幾何学的プロパティを含まない。
【0035】
図1に示すように、車線属性132は、個々の車線のプロパティ(例えば、「車線jのプロパティ」、「車線kのプロパティ」)を示すことができる。例えば、属性132は、車線の走行方向、車線が通過車線(例えば、車線が交差点に入る側とは反対の側で交差点を出る)、ターン車線、Uターン車線、または別のタイプの車線であるかどうかを示すことができる。属性132は、車線が信号機、止まれ標識、譲れ標識、または別の交通管制メカニズムによって管制されているかどうかを示すことができる。いくつかの実装形態では、属性132は、車線が、信号機または止まれ標識がない場合でも(例えば、駐車場を出るとき)、運転規則において車両を停止することが要求される「暗黙の停止」を含むかどうかを示すことができる。
【0036】
個々の車線属性132は、車線の優先順位、例えば、車線を走行する交通が交差点の別の車線を走行する交通に譲らなければならないかどうかを示すことができる。例えば、交差点の反対側の2つの車線を接続する通過車線を、交差点の隣接する側の2つの車線を接続するターン車線よりも優先させ得る。いくつかの実装形態では、属性132は、特定の個々の車線に関連付けられる信頼レベル(例えば、注釈によって示される車線指定およびトポロジが真の車線特徴を表す可能性)を示すことができる。
【0037】
個々の車線属性132はまた、候補交差点の車線が有する入口または出口の兄弟の数を示すことができる。入口の兄弟は、共通の先行(例えば、入口)車線を共有する車線であり、出口の兄弟は、共通の後続(例えば、出口)車線を共有する車線である。入口の兄弟は、車線のファンアウトを表し、出口の兄弟は、車線のファンインまたは合流を表す。
【0038】
いくつかの実装形態では、個々の車線属性132は、特定の車線が別の車線と交差するかどうか、特定の車線が交差する他の車線の数、および/または特定の車線が交差する車線の優先順位またはタイプ(例えば、通過車線、ターン車線、合流車線)を示す。
【0039】
属性132はまた、
図1に示されるように、候補交差点の車線ペア(例えば、車線j、k)のプロパティを示すことができる。特定の車線ペアについて、車線ペア属性132は、2つの車線が共通の入口車線からファンアウトする入口の兄弟であるかどうか、または2つの車線が共通の出口車線へファンインする(例えば、合流する)出口の兄弟であるかどうかを示すプロパティを示すことができる。
【0040】
車線ペア属性132はまた、車線の配置を示すことができる。例えば、属性132は、ある車線が別の車線に隣接しているかどうか、車線が共通の開始の向きを共有しているかどうか(例えば、車線の交通が同じ方向から交差点に入る)、または車線が共通の終了の向きを共有しているかどうか(例えば、車線の交通が同じ方向に交差点を出る)を示すことができる。車線ペア属性132は、2つの車線が反対の車線であるかどうかを示すことができる(例えば、車線は、反対の開始の向きおよび反対の終了の向きを有する)。
【0041】
場合によっては、属性132は、類似しているが幾何学的に区別可能な交差点に存在し得る対称性を破るために選択された車線ペアプロパティを含むことができる。例えば、方向性(例えば、左または右)の概念がない場合、通過車線と専用の左折車線を含む交差点は、専用の右折車線を含む交差点と混同される可能性がある。そのような対称性を有する交差点を区別するために、属性132は、特定の車線ペアが他の車線の右(または左)にあるかどうかなどの方向性プロパティを含むことができる。いくつかの実装形態では、そのような方向性車線ペアプロパティ(例えば、車線jは車線kの右側にある)は、同様の情報を提供できる個々の車線プロパティ(例えば、車線jは専用の右折車線である)以上に、注釈付き交差点データ122からより確実に算出することができ、候補交差点のより堅牢な記述を提供する。
【0042】
いくつかの実装形態では、属性エンジン130は、候補交差点の属性132を1つ以上の文字列にマッピングする。例えば、属性エンジン130は、車線または車線ペアがプロパティを呈するかどうかを示すバイナリ値(例えば、「0」または「1」)によって各プロパティを表すことができる。次に、エンジン130は、各車線のまたは車線ペアのプロパティを表すバイナリ値を連結することによって、交差点内の各車線ペアの文字列を生成することができる。
【0043】
例えば、
図1に示されるように、N本の車線との交差点について、属性エンジン130は、交差点の車線(j、k)の各ペアに対して1つの文字列であるN*(N-1)個の文字列のセットを生成することができる。各文字列には、最初の部分文字列が、車線jの個々のプロパティを表し、2番目の部分文字列が、車線kの個々のプロパティを表し、3番目の部分文字列が、一緒に考慮される車線jおよびkのプロパティ(例えば、車線ペアのプロパティ)を表す、3つの部分文字列を含めることができる。
【0044】
ステージ(C)において、コンピュータシステム110のフィンガープリント生成器140は、車線属性132を示すデータを処理して、注釈付き交差点データ122によって記述された候補交差点の交差点フィンガープリント142を生成する。交差点フィンガープリント142は、車線属性132によってキャプチャされた交差点のトポロジプロパティに基づいているため、フィンガープリント142は、交差点内の車線のトポロジ構造およびその他の重要なロードグラフプロパティ(例えば、交通管制デバイスの存在)に敏感でありながら、実際の交差点で一般的な幾何学的な違い(例えば、車線の幅、車線間の角度、交差点の距離など)に対して不変である、候補交差点の表現を提供する。
【0045】
いくつかの実装形態では、フィンガープリント生成器140は、車線属性132を交差点フィンガープリント142(例えば、ハッシュ値)にマッピングするハッシュ関数である。例えば、生成器140は、候補交差点の車線ペア属性文字列を辞書式順序でソートし(例えば、文字列値に基づく順序付け)、それらを一緒に追加して、交差点フィンガープリント142のハッシュ値を生成することができる。文字列を追加する前に辞書式順序でソートすることにより、フィンガープリント142は車線の反復順序に対して不変になり得る。
【0046】
いくつかの実装形態では、交差点の交差点フィンガープリントは、様々なレベルの特異性で生成および/または分析することができる。例えば、フィンガープリント生成器140は、候補交差点の車線属性132にキャプチャされた多数(例えば、すべて)のプロパティを使用して、より具体的な交差点フィンガープリント142を生成することができる。代替的に、生成器140は、より少ない数(例えば、選択されたセット)の車線属性132を使用して、候補交差点のより一般的な交差点フィンガープリント142を生成することができる。
【0047】
個々の車線のおよび/または車線ペアの車線属性132のいずれかを使用して交差点フィンガープリント142を生成することができるが、選択された特定の属性132は、異なる交差点タイプおよびジオメトリを区別するシステム100の能力に影響を及ぼし得る。いくつかの実装形態では、生成器140は、交差点の検証、交差点の区別、または他の分析目的に対し最小限の影響しか及ぼさないと判定された個々の車線のまたは車線ペアの特定の属性を意図的に除外し得る。
【0048】
ステージ(D)において、生成されたフィンガープリント142に基づいて、ロードグラフマネージャ150は、注釈付き交差点データ122によって記述された候補交差点が、ロードグラフに追加できる正当な交差点を表すかどうかを評価する。いくつかの実装形態では、ロードグラフマネージャ150は、正当なものであるとわかっている交差点に対応する1つ以上の交差点テンプレートのセットにアクセスする。次に、マネージャ150は、交差点のフィンガープリント142を1つ以上の交差点テンプレートと比較することによって、候補交差点が正当なものであるかどうかを判定することができる。候補交差点フィンガープリント142がすでに検証済みの交差点テンプレートと十分に一致する場合、マネージャ150は、候補交差点を正当なものとして指定することができる。
【0049】
交差点テンプレートは、様々な手法のいずれかによって生成することができる。いくつかの実装形態では、交差点テンプレートは、品質保証エンジン160、人間のオペレータ、または別の検証手法によって以前に検証された交差点のフィンガープリントまたは他の表現を決定することによって生成され得る。いくつかの実装形態では、交差点テンプレートは、類似のプロパティ(例えば、類似のフィンガープリント)を有する、以前に検証済みの交差点のクラスタを特定し、クラスタのフィンガープリントまたは他の表現を決定することによって生成される。1つ以上の交差点テンプレートは、候補交差点を検証する際に、ロードグラフマネージャ150によってアクセスすることができるデータベースに格納され得る(例えば、コンピュータシステム110のローカルメモリシステムに、またはネットワークを介してコンピュータシステム110によってアクセス可能なリモートメモリシステムに格納され得る)。
【0050】
ロードグラフマネージャ150は、候補交差点フィンガープリント142を交差点テンプレートと比較して、特定の候補交差点が交差点テンプレートに関連付けられている程度を反映している値を生成することができる。その値は、例えば、候補交差点とテンプレートとが類似している程度、またはそれらが特定の交差点の特徴を共有している程度を示すことができる。いくつかの実装形態では、生成された値は、フィンガープリント142と交差点テンプレートとの間の距離(例えば、フィンガープリント142のハッシュ値と交差点テンプレートとの間の距離)である。いくつかの実装形態では、生成された値は、フィンガープリント142とテンプレートとが類似している程度を示す一致スコア(例えば、「一致」)、またはフィンガープリント142と交差点テンプレートとが同じ交差点のタイプまたはトポロジ(例えば、反対の向きの交差点への2つの入口に止まれ標識がある4方向の交差点)のものであるという信頼値である。
【0051】
生成された値に基づいて、ロードグラフマネージャ150は、候補交差点を正当なものとして指定することができる。いくつかの実装形態では、マネージャ150は、候補交差点が交差点テンプレートに関連付けられている程度を反映している値がしきい値を満たす場合、候補交差点を正当なものとして指定する。
【0052】
例えば、ロードグラフマネージャ150は、交差点フィンガープリント142のハッシュ値と交差点テンプレートとの間の生成された距離が特定の距離しきい値内にある場合、候補交差点を正当なものとして指定することができる。別の例では、マネージャ150は、フィンガープリント142と交差点テンプレートとの間で生成された一致スコアが特定の一致しきい値内にある場合(例えば、フィンガープリント142とテンプレートが特定の信頼水準と一致する場合)、候補交差点を正当なものとして指定することができる。さらに別の例では、マネージャ150は、生成された信頼値がフィンガープリント142とテンプレートとが特定のしきい値信頼レベルを有する同じ交差点トポロジのものであることを示す場合、候補交差点を正当なものとして指定することができる。
【0053】
候補交差点を正当なものとして指定した後、ロードグラフマネージャ150は、候補交差点の表現172をロードグラフデータベース170に格納する。データベース170は、例えば、コンピュータシステム110によってアクセス可能であり、道路網を記述するロードグラフデータを格納する1つ以上のネットワーク接続ストレージ(NAS)デバイスまたは他のメモリシステムとすることができる。検証済みの候補交差点の表現がロードグラフデータベース170に格納された後、検証済みの交差点の表現を含むロードグラフデータは、経路計画およびナビゲーションのために車両に利用可能にすることができる。
【0054】
ロードグラフデータベース170に格納された候補交差点の表現172は、ロードグラフ内の交差点を記述するために必要な様々なデータのいずれかを含むことができる。例えば、表現172は、候補交差点の注釈付き交差点データ122および/または属性エンジン130によって決定された車線属性132の一部またはすべてを含むことができる。いくつかの実装形態では、表現172は、候補交差点の交差点フィンガープリント142を示すデータ、または候補交差点に関連付けられているタイプ、トポロジ、または交差点テンプレートを特定する他の情報を含む。
【0055】
ロードグラフマネージャ150が候補交差点を正当なものとして指定しない場合(例えば、候補交差点が交差点テンプレートに関連付けられている程度を反映している値がしきい値を満たさない)、マネージャは、注釈付き交差点データ122および任意の他の必要な交差点データを品質保証エンジン160に提供することができる。次に、品質保証エンジン160は、注釈付き交差点データ122に対して1つ以上の品質管理プロセスを実行して、候補交差点が正当な交差点であるかどうかを判定することができる。次に、エンジン160は、検証済みの候補交差点の表現をロードグラフデータベース170に格納することができる。
【0056】
典型的に、品質保証エンジン160は、特定の候補交差点が正当なものであるかどうかを判定するために、様々な自動、半自動(例えば、制限された人間のオペレータ入力を伴う)、または人間のオペレータによって実行される品質管理プロセスを含む。いくつかの例では、品質管理プロセスは、1つ以上の検証手段(例えば、互換性のある車線管制、疑わしい車線の終了、疑わしい合流、および疑わしい車線の交差)を評価し、これは、評価に必要な高レベルの表現を生成するためにデータ122の計算集約的なモデリングおよび分析を必要とし得る。他の例では、品質管理プロセスは、訓練を受けた人間のオペレータからの入力を必要とし(例えば、型破りな車線配置を確認するか、または疑わしい交差点の特徴のラベル付けを確認するため)、これは、時間を費やし、ヒューマンエラーによる間違いを起こしやすい可能性がある。保証エンジン160の品質管理プロセスのうちの1つ以上を実行する必要なしに、候補交差点のサブセットがロードグラフマネージャ150によって検証されることを可能にすることによって、システム100は、すでに検証済みの交差点テンプレートに関連付けることができるそれらの候補交差点を検証するためのより効率的かつ堅牢な方法を提供する。
【0057】
他のいくつかの例では、品質保証エンジンは、後続の検証のために、特定の候補交差点の新しい注釈付き交差点データを取得または生成するようにインターフェースモジュール120に指示し得る。新しい注釈付き交差点データの取得または生成には、例えば、特定の候補交差点に注釈を付けるための異なる注釈アルゴリズムまたはスキーム、すなわち、より計算コストの高い注釈アルゴリズムを呼び出す、同じまたは異なる自動画像認識プロセスを使用した特定の候補交差点の画像データの再認識、または特定の候補交差点に注釈を付ける際に使用するために特定の候補交差点に関連付けられた追加または拡張データ、すなわちより高品質の画像の取得が伴い得る。
【0058】
いくつかの実装形態では、システム100は、ロードグラフ内のエラーを特定するための効率的かつ効果的な手段をさらに提供する。例えば、ロードグラフ内の交差点ごとに、システムは、候補交差点について前述したように、フィンガープリントを生成し、生成されたフィンガープリントを分析して、一般的な交差点のタイプとトポロジとを表す交差点のクラスタを特定することができる。特定されたクラスタに基づいて、システム100は、共通の交差点クラスタと十分に一致しない任意の外れ値の交差点フィンガープリントを特定することができる。次に、外れ値の交差点は、潜在的なエラーを含むものとしてラベル付けされ得、さらなる検査のためにフラグを立てることができる(例えば、品質保証エンジン160または人間のオペレータによって実行されるプロセスなどの品質管理プロセスによって)。いくつかの実装形態では、システム100は、外れ値の交差点を近くの交差点クラスタから区別する1つ以上の車線プロパティを特定することによって、潜在的なエラーを特徴付けることができてもよい。いくつかの実装形態では、交差点クラスタを使用して、ロードグラフマネージャによって実行される検証プロセスのための交差点テンプレートを決定することができる(例えば、交差点クラスタを表す交差点テンプレートを生成することによって)。
【0059】
場合によっては、注釈プロセスでの間違いが原因で交差点が外れ値になり得(例えば、交差点フィンガープリントが真の交差点トポロジを表していなかった)、その場合、注釈を修正することができる。例えば、交差点の注釈付きデータ122は、不完全である(例えば、1つ以上の車線、交通管制デバイスなどの欠落)か、または誤ってラベル付けされ得る。外れ値の交差点は、交差点を含むロードグラフが車両に提供される前に、コンピュータアルゴリズムまたは人間のオペレータによるさらなるレビューおよび修正のためにフラグを立てることができる。いくつかの例では、外れ値の交差点を分析して、注釈プロセスでの一般的なエラー(例えば、駐車場の入口および出口の表現の一貫性の欠如、複数の車線にわたるターンの誤ったマッピング)を決定することができる。次に、一般的なエラーに関する情報を使用して、人間またはコンピュータで実装された注釈プロセスを改善することができる。
【0060】
他の場合では、実際の交差点の異常なまたは型破りなトポロジのために、交差点が外れ値となり得る。このような場合、特定の外れ値の交差点に経路計画中にフラグを立てて、異常なまたは型破りな交差点を通ってナビゲーションするときに潜在的に追加の注意を払う必要があることを車両に通知することができる。
【0061】
いくつかの実装形態では、ロードグラフの交差点フィンガープリントを、他のマッピング、計画、およびナビゲーションの目的で分析することができる。例えば、システム100は、特定の交差点でのナビゲーション試行の失敗または中止を示すデータを使用して、現在のアルゴリズムを使用して十分にナビゲーションされていない特定の交差点フィンガープリントまたは特徴を特定し、これによりアルゴリズム改善努力を指示することができる。別の例では、システムは、安全データ(例えば、様々な交差点での安全に関する出来事または事故を示す)を特定の交差点フィンガープリントまたは特徴と関連付けて、ナビゲーション中の追加の認識手段または予防措置から利益を得る特に危険な交差点タイプを特定することができてもよい。
【0062】
図2は、1つ以上の品質管理プロセスを実行せずに道路の交差点を検証するための方法200の例を示すフローチャートである。方法200は、
図1のコンピュータシステム110などの1つ以上のコンピュータシステムによって実行することができる。簡単に言えば、この方法は、候補交差点(202)の1つ以上の車線の属性を示す注釈付き交差点データを受信することと、注釈付き交差点データを処理して、候補交差点(204)の交差点フィンガープリントを生成することと、少なくとも交差点フィンガープリント(206)に基づいて候補交差点を検証済みとして指定することと、候補交差点の表現をロードグラフ(208)に格納することと、を含む。いくつかの実装形態では、方法200を実行するコンピュータシステムは、品質保証エンジン、1つ以上のデータベース、およびロードグラフマネージャを含み、品質保証エンジンは、1つ以上の品質管理プロセスを正常に完了させた候補交差点を検証するように構成されており、1つ以上のデータベースは、検証済みのロードグラフを格納するように構成されており、ロードグラフマネージャは、ロードグラフ内に検証済みの候補交差点の表現を生じさせる。
【0063】
より詳細には、方法200は、コンピュータシステムによって、候補交差点(202)の1つ以上の車線の属性を示す注釈付き交差点データを受信することを含む。注釈付き交差点データは、例えば、画像データ、レーダーデータ、ライダーデータ、地図データ、または交差点(例えば、候補交差点)の特定の提案された表現のトポロジ構造を記述する他のデータの注釈付きバージョンとすることができる。いくつかの実装形態では、注釈付き交差点データは、コンピュータシステムによって生成される(例えば、画像処理または他のデータ分析手法を使用して画像に注釈を付けるアルゴリズムによって)。いくつかの実装形態では、注釈付き交差点データは、訓練された人間のオペレータによって生成された注釈を含む。
【0064】
注釈付き交差点データには、候補交差点の1つ以上の車線の1つ以上の属性を示す注釈および/またはラベルが含まれる。属性には、車線の位置、車線内の交通の方向、車線の配向、車線のファンアウトまたはファンインなど、交差点の個々の車線、および/または車線に存在する交通管制デバイス(例えば、止まれ標識、信号機、譲れ標識)に関するプロパティを含むことができる。属性には、車線の配置(例えば、ある車線が別の車線の左または右にあるかどうか、車線が共通の向きを共有しているかどうか、車線が入口または出口の兄弟であるかどうか)など、交差点の車線ペアに関するプロパティ(例えば、車線ペアプロパティ)を含むこともできる。概して、注釈付きの交差データによって示される属性には、幾何学的歪みの下で変化しないトポロジ属性が含まれる。
【0065】
いくつかの実装形態では、候補交差点の属性は、特定のプロパティが交差点に存在するかどうかを示すバイナリ値(例えば、「0」および「1」)によって表される。例えば、システムは、候補交差点のバイナリ値の1つ以上の文字列を生成し得、各文字列は、注釈付き交差点データで記述されているように、交差点の車線ペア(j、k)のプロパティを示す。いくつかの実装形態では、車線ペア(j、k)の各文字列には、車線jの個々の車線プロパティを示す1番目の部分文字列、車線kの個々の車線プロパティを示す2番目の部分文字列、および車線ペア(j、k)の車線ペアプロパティを示す3番目の部分文字列の3つの部分文字列が含まれる。
【0066】
コンピュータシステムは、注釈付き交差点データを処理して、候補交差点(204)の交差点フィンガープリントを生成する。いくつかの実装形態では、システムは、ハッシュ値である交差点フィンガープリントを生成する。例えば、候補交差点属性が各車線ペアの文字列によって表される場合、システムは、各車線ペアの文字列を辞書式順序でソートし、文字列を結合して(例えば、それらを連結または追加して)フィンガープリントハッシュ値を生成し得る。
【0067】
交差点フィンガープリントは、候補交差点のトポロジ車線属性のみに基づいて生成されるため、候補交差点の車線のトポロジ構造に敏感でありながら、候補交差点の車線のジオメトリに対して不変である。例えば、交差点フィンガープリントは、車線の数、車線の配置、車線のファンアウト、または車線の合流などのトポロジプロパティに敏感でありながら、車線の幅、車線間の距離、車線間の角度、またはターン車線の半径などの交差点の車線の幾何学的プロパティ(例えば、幾何学的な歪みの下で変化するプロパティ)に対して不変とすることができる。
【0068】
少なくとも交差点フィンガープリントに基づいて、コンピュータシステムは候補交差点を検証済みとして指定する(206)。いくつかの実装形態では、システムは、コンピュータシステムの品質保証エンジンによって実行されるであろう1つ以上の品質管理プロセスを実行せずに、候補交差点を検証済みとして指定する。
【0069】
例えば、システムは、交差点フィンガープリントを、すでに検証済みの交差点を記述する交差点テンプレートと比較し、候補交差点が交差点テンプレートに関連付けられている程度を反映している値を生成することができる。いくつかの実装形態では、交差点テンプレートは、すでに検証済みの交差点のフィンガープリントのハッシュ値であり、生成された値は、候補交差点フィンガープリントのハッシュ値と交差点テンプレートとの間の距離である。生成された値はまた、候補交差点と交差点テンプレートとの間の類似性のレベルを示す一致スコア、候補交差点と交差点テンプレートとが同じタイプのものであるという信頼度を示す信頼値、または候補交差点と交差点テンプレートとの間の関連付けを示す別の値とすることができる。
【0070】
生成された値がしきい値を満たしているとシステムが判定した場合、システムは、1つ以上の品質管理プロセスを実行せずに、候補交差点を検証済みとして指定することができる。例えば、システムは、候補交差点フィンガープリントのハッシュ値と交差点テンプレートとの間の生成された距離が距離しきい値内にあること、候補交差点と交差点テンプレートとの間の類似性を示す生成された一致スコアが一致しきい値内にあること、または候補交差点と交差点テンプレートとが同じ交差点トポロジのものであるという生成された信頼値がしきい値の信頼水準を満たしていることを判定することができる。
【0071】
いくつかの実装形態では、交差点テンプレートは、システムによって生成され(例えば、すでに検証済みの交差点のフィンガープリントを分析することによって)、メモリシステムに格納され、生成された候補交差点フィンガープリントと比較するためにシステムによってアクセスされる。いくつかの実装形態では、交差点テンプレートは、1つ以上の品質管理プロセス(例えば、品質保証エンジンまたは人間のオペレータによって実行されるプロセス)を正常に完了させることによって正当なものとして指定された交差点のフィンガープリントとすることができる。
【0072】
候補交差点を正当なものとして指定することに応答して、コンピュータシステムは、候補交差点の表現をロードグラフ(208)に格納する。いくつかの実装形態では、候補交差点の表現は、ロードグラフデータベースの一部であるロードグラフに格納される。ロードグラフに格納された候補交差点の表現には、注釈付き交差点データの一部またはすべてを含めることができる。格納された表現はまた、候補交差点の属性のうちの1つ以上を示すデータ、ならびに候補交差点の生成されたフィンガープリントを示すデータを含むことができる。表現を格納した後、検証済みの候補交差点の表現を含むロードグラフデータを、ナビゲーションおよび経路計画のために車両に提供することができる。
【0073】
本明細書で説明された本発明の実施形態および機能的動作のすべては、デジタル電子回路内に、または本明細書に開示された構造およびそれらの構造上の均等物を含むコンピュータソフトウェア、ファームウェア、もしくはハードウェア内に、またはそれらのうちの1つ以上を組み合わせて実装され得る。本発明の実施形態は、1つ以上のコンピュータプログラム製品、すなわち、データ処理装置により実施するための、またはデータ処理装置の動作を管制するための、コンピュータ可読媒体上に符号化されたコンピュータプログラム命令の1つ以上のモジュールとして実装され得る。コンピュータ可読媒体は、非一時的なコンピュータ可読格納媒体、機械可読ストレージデバイス、機械可読ストレージ基板、メモリデバイス、機械可読伝播信号を引き起こす物質の組成物、またはこれらのうちの1つ以上の組み合わせであり得る。「データ処理装置」という用語は、データを処理するためのすべての装置、デバイス、および機械を包含し、それらには、例として、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータが含まれる。装置は、ハードウェアに加えて、コンピュータプログラムのための実施環境を作り出すコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つ以上の組み合わせを構成するコードを含み得る。伝播信号は、人工的に生成された信号、例えば、好適な受信機装置に伝送するための情報を符号化するように生成される、機械で生成された電気的、光学的、または電気磁気的信号である。
【0074】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られている)は、コンパイル式またはインタープリット式言語を含む、任意の形式のプログラミング言語で書かれてもよく、独立型プログラムとして、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境で使用するために好適な他のユニットとして含まれる任意の形式でデプロイされ得る。コンピュータプログラムは、必ずしもファイルシステム内のファイルに対応する必要はない。プログラムは、他のプログラムまたはデータを保持するファイルの一部(例えばマークアップ言語ドキュメントに格納された1つ以上のスクリプト)に、かかるプログラム専用の単一ファイルに、または複数の調整ファイル(例えば、1つ以上のモジュール、サブプログラム、もしくはコードの一部を格納するファイル)に格納され得る。コンピュータプログラムは、1つのサイトに配置されるか、または複数のサイトにわたって分散、かつ通信ネットワークにより相互接続された、1つのコンピュータ上または複数のコンピュータ上に実施されるようにデプロイされ得る。
【0075】
本明細書で説明されたプロセスおよびロジックフローは、1つ以上のコンピュータプログラムを実施する1つ以上のプログラマブルプロセッサによって実行されて、入力データ上で動作し、出力を生成することによって機能を実行し得る。プロセスおよびロジックフローはまた、専用論理回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実行され得、装置もまた、そのようなものとして実装され得る。
【0076】
コンピュータプログラムの実施のために好適なプロセッサとしては、例として、汎用および専用の両用マイクロプロセッサ、ならびに任意の種類のデジタルコンピュータのうちの任意の1つ以上のプロセッサが含まれる。概して、プロセッサは、読み取り専用メモリもしくはランダムアクセスメモリ、またはその両方から命令および/またはデータを受信することになる。コンピュータの必須要素は、命令を実行するためのプロセッサ、ならびに命令およびデータを格納するための1つ以上のメモリデバイスである。概して、コンピュータはまた、データを格納するための1つ以上の大容量ストレージデバイス、例えば、磁気ディスク、光磁気ディスク、もしくは光ディスクを含むか、または大容量ストレージデバイスからデータを受信、もしくはデータを転送、またはその両方を行うように動作可能に結合される。しかしながら、コンピュータは必ずしもそのようなデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、例えば、ごく一部ながら例を挙げると、タブレットコンピュータ、携帯電話、携帯情報端末(PDA)、モバイルオーディオプレーヤ、全地球測位システム(GPS)受信機に組み込まれ得る。コンピュータプログラム命令およびデータを格納するための好適なコンピュータ可読媒体には、不揮発性メモリ、媒体、およびメモリデバイスのすべての形態を含み、例として、半導体メモリデバイス(例えば、EPROM、EEPROM、およびフラッシュメモリデバイス)、磁気ディスク(例えば、内蔵ハードディスクまたは取り外し可能ディスク)、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクが含まれる。プロセッサおよびメモリは、専用ロジック回路によって補足され、またはそれに組み込まれ得る。
【0077】
ユーザとの対話を提供するために、本発明の実施形態は、コンピュータ上で実装され得、当該コンピュータは、ユーザに情報を表示するための表示デバイス、例えば、CRT(陰極線管)もしくはLCD(液晶ディスプレイ)モニタ、ならびにユーザがコンピュータに入力を提供できるキーボードおよびポインティングデバイス(例えば、マウス、トラックボール)を有する。他の種類のデバイスを使用して、ユーザとの対話を提供してもよく、例えば、ユーザに提供されるフィードバックは、任意の形式の感覚的フィードバック(例えば、視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバック)であり得、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形式で受信し得る。
【0078】
本発明の実施形態は、バックエンドコンポーネント(例えば、データサーバとして)を含むか、またはミドルウェアコンポーネント(例えば、アプリケーションサーバ)を含むか、またはフロントエンドコンポーネント(例えば、ユーザが本発明の実装形態と対話し得るグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータ)を含む、コンピューティングシステム、または1つ以上のそのようなバックエンド、ミドルウェア、またはフロントエンドコンポーネントの任意の組み合わせに実装され得る。システムのコンポーネントは、デジタルデータ通信の任意の形式または媒体、例えば、通信ネットワークによって相互接続し得る。通信ネットワークの例には、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)、例えばインターネットが含まれる。
【0079】
コンピューティングシステムには、クライアントとサーバとが含まれ得る。クライアントおよびサーバは概して、互いにリモートであり、典型的には通信ネットワークを介して相互作用する。クライアントとサーバとの関係は、それぞれのコンピュータで実行され、かつ互いにクライアントとサーバとの関係を有している、コンピュータプログラムによって生じる。
【0080】
本明細書は、多くの特定例を含んでいるが、これらは、本発明の、または請求され得る事項の範囲に限定したものとして解釈されるべきではなく、むしろ本発明の特定の実施形態に対して特有の特徴の説明として解釈されるべきである。別々の実施形態の文脈で、本明細書に記載されている特定の特徴はまた、単一の実施形態の中に組み込んで実装することもできる。逆に、単一の実施形態の文脈で説明されている様々な特徴はまた、複数の実施形態の中で、別々に、または任意の好適なサブコンビネーションで実装され得る。さらに、特徴は、特定の組み合わせで作用するものとして上述され、および当初はそのように特許請求され得るが、場合によっては、特許請求された組み合わせからの1つ以上の特徴は、その組み合わせから削除され得、特許請求された組み合わせは、サブコンビネーションまたはサブコンビネーションの変形例に向けられ得る。
【0081】
同様に、動作が特定の順序で図面に図示されているが、これは、所望の結果を達成するために、かかる動作がその示された特定の順序、もしくは一連の順序で実行されるべきであること、または例証したすべての動作が実行されるべきであることを要求するものとして理解されるべきではない。特定の状況では、マルチタスクおよび並列処理が有利な場合がある。さらに、上述した実施形態中の様々なシステムコンポーネントの分離は、すべての実施形態においてかかる分離を必要とするものとして理解されるべきではなく、記載されたプログラムコンポーネントおよびシステムは、一般に、単一のソフトウェア製品内にともに一体化されてもよく、または複数のソフトウェア製品にパッケージ化されてもよい。
【0082】
こうして、本発明の特定の実施形態を説明した。他の実装形態は、以下の特許請求の範囲内に存在する。例えば、特許請求の範囲に記載された動作は、異なる順番で実行されてもよく、依然として望ましい結果を達成することができる。