(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-05
(45)【発行日】2024-11-13
(54)【発明の名称】車両ナビゲーション用のシステム、方法およびプログラム
(51)【国際特許分類】
G01C 21/28 20060101AFI20241106BHJP
G08G 1/16 20060101ALI20241106BHJP
B60W 30/10 20060101ALI20241106BHJP
【FI】
G01C21/28
G08G1/16 A
B60W30/10
(21)【出願番号】P 2022515087
(86)(22)【出願日】2020-10-08
(86)【国際出願番号】 IB2020000833
(87)【国際公開番号】W WO2021069967
(87)【国際公開日】2021-04-15
【審査請求日】2023-10-05
(32)【優先日】2019-10-08
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】515168961
【氏名又は名称】モービルアイ ビジョン テクノロジーズ リミテッド
【住所又は居所原語表記】P.O.B. 45157,13 HARTOM STREET, HAR HOTZVIM, JERUSALEM, 9777513 ISRAEL
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】ハヤト、アディ
(72)【発明者】
【氏名】アルガマン、マタン
(72)【発明者】
【氏名】デイビッド、ナタン
【審査官】▲高▼木 真顕
(56)【参考文献】
【文献】特表2020-516853(JP,A)
【文献】特表2019-525148(JP,A)
【文献】特表2018-510373(JP,A)
【文献】特開2021-026302(JP,A)
【文献】米国特許出願公開第2018/0283892(US,A1)
【文献】米国特許出願公開第2018/0005050(US,A1)
【文献】米国特許出願公開第2020/0349362(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G01C 21/00 - 21/36
G08G 1/00 - 99/00
B60W 30/00 - 60/00
G05D 1/00 - 1/87
G09B 29/00 - 29/14
G06T 1/00 - 1/40
G06T 7/00 - 7/90
G06V 10/00 - 20/90
G06F 18/00 - 18/40
G06N 3/00 - 99/00
(57)【特許請求の範囲】
【請求項1】
ホスト車両用のナビゲーションシステムであって、前記ナビゲーションシステムが
、
回路およびメモリを有する少なくとも1つのプロセッサであって
、前記メモリは、前記回路によって実行されるとき、前記少なくとも1つのプロセッサに、
前記ホスト車両の環境を表す少なくとも1つの画像
を受信することであって、前記少なくとも1つの画像は、画像取り込みデバイスによって取り込まれている、受信することと、
前記少なくとも1つの画像を分析して、前記少なくとも1つの画像に表されている1つまたは複数の物体の存在を検
出することと、
前記少なくとも1つの画像の前記分析に基づいて、検出された前記1つまたは複数の物体に関連する位置情報を特
定することと、
検出された前記1つまたは複数の物体に関連する前記位置情報と
、複数のナビゲーションマップセグメントのうちの少なくとも1つのナビゲーションマップセグメントに表されている1つまたは複数のマッピングされた物体の位置情報とを比
較することと、
検出された前記1つまたは複数の物体について特定された前記位置情報と、前記少なくとも1つのナビゲーションマップセグメントに含まれる前記1つまたは複数のマッピングされた物体の前記位置情報とを揃えることによって、前記比較に基づいて、前記少なくとも1つのナビゲーションマップセグメントに対する前記ホスト車両の第1推定位置を決
定することと、
前記少なくとも1つの画像の少なくとも一部および前記少なくとも1つのナビゲーションマップセグメン
トの少なくとも識別子を訓練されたシステムに提
供することであって、前記識別子は、前記複数のナビゲーションマップセグメントのうちのどのナビゲーションマップセグメントが前記少なくとも1つのナビゲーションマップセグメントに対応するかを示し、前記訓練されたシステムは、複数の訓練用画像と、前記複数の訓練用画像に関連づけられた環境を表す訓練用ナビゲーションマップセグメントと、前記複数の訓練用画像と前記訓練用ナビゲーションマップセグメントとの間の位置ずれの程度を表す誤差データとを含む訓練用データセットを用いて位置情報を生成するように訓練される、提供することと、
前記少なくとも1つのナビゲーションマップセグメントに対する前記ホスト車両の第2推定位置を前記訓練されたシステムから受
信することであって、前記第2推定位置は、前記ホスト車両の近似位置に適用される誤差補正に基づいて決定される、受信することと、
前記ホスト車両の前記第1推定位置と前記ホスト車両の前記第2推定位置との組み合わせに基づいて、前記ホスト車両のナビゲーション動作を決
定することと、
決定された前記ナビゲーション動作を前記ホスト車両に実施させ
ることと
を行わせる命令を含む、ナビゲーションシステム。
【請求項2】
前記位置情報には、前記少なくとも1つのナビゲーションマップセグメントの座標における、検出された前記1つまたは複数の物体の位置が含まれる、請求項1に記載
のナビゲーションシステム。
【請求項3】
前記少なくとも1つのナビゲーションマップセグメントには、前記少なくとも1つのナビゲーションマップセグメントで表される車道に沿った走行車線に関連づけられた複数の目標軌跡が含まれる、請求項1または2に記載
のナビゲーションシステム。
【請求項4】
前記複数の目標軌跡のそれぞれが、前記少なくとも1つのナビゲーションマップセグメントにおいて3次元スプラインとして表される、請求項3に記載
のナビゲーションシステム。
【請求項5】
前記複数の目標軌跡が、複数の車両による前記車道の以前の通行時に前記複数の車両から取得されたドライブ情報に基づいて決定される、請求項3に記載
のナビゲーションシステム。
【請求項6】
前記ホスト車両の前記ナビゲーション動作を決定することが、前記第1推定位置に第1の重み値を適用すること、および、前記第2推定位置に第2の重み値を適用することを含む、請求項1から5のいずれか一項に記載
のナビゲーションシステム。
【請求項7】
前記第1の重み値と前記第2の重み値とが等しい、請求項6に記載
のナビゲーションシステム。
【請求項8】
前記第1の重み値が前記第2の重み値より小さい、請求項6に記載
のナビゲーションシステム。
【請求項9】
前記第1の重み値および前記第2の重み値が、前記ホスト車両が位置している環境に基づいて決定される、請求項6に記載
のナビゲーションシステム。
【請求項10】
前記ホスト車両が地方環境に位置していると、前記第1推定位置が前記第2推定位置より大きく重みづけされる、請求項9に記載
のナビゲーションシステム。
【請求項11】
前記ホスト車両が都市環境に位置していると、前記第2推定位置が前記第1推定位置より大きく重みづけされる、請求項9に記載
のナビゲーションシステム。
【請求項12】
前記第1の重み値および前記第2の重み値が、前記少なくとも1つの画像に表されている物体の密度に基づいている、請求項6に記載
のナビゲーションシステム。
【請求項13】
前記少なくとも1つの画像に表されている前記物体の前記密度が所定の密度閾値を下回ると、前記第1推定位置が前記第2推定位置より大きく重みづけされる、請求項12に記載
のナビゲーションシステム。
【請求項14】
前記少なくとも1つの画像に表されている前記物体の前記密度が所定の密度閾値に等しいまたはこれを超えると、前記第2推定位置が前記第1推定位置より大きく重みづけされる、請求項12に記載
のナビゲーションシステム。
【請求項15】
前記第1の重み値および前記第2の重み値が、前記少なくとも1つの画像に表されている悪天候状態に基づいていると、前記第2推定位置が前記第1推定位置より大きく重みづけされる、請求項6に記載
のナビゲーションシステム。
【請求項16】
前記悪天候状態には雨、雪、または霧が含まれる、請求項15に記載
のナビゲーションシステム。
【請求項17】
前記第1の重み値および前記第2の重み値が、前記少なくとも1つの画像に表されている前記ホスト車両の前記環境における明るさのレベルに基づいている、請求項6に記載
のナビゲーションシステム。
【請求項18】
前記明るさのレベルが所定の閾値を上回ると、前記第1推定位置が前記第2推定位置より大きく重みづけされる、請求項17に記載
のナビゲーションシステム。
【請求項19】
前記明るさのレベルが所定の閾値を下回ると、前記第2推定位置が前記第1推定位置より大きく重みづけされる、請求項17に記載
のナビゲーションシステム。
【請求項20】
前記少なくとも1つの画像が少なくとも部分的に見えなくなっている物体の表現を含むと、前記第2推定位置が前記第1推定位置より大きく重みづけされる、請求項6に記載
のナビゲーションシステム。
【請求項21】
前記メモリに含まれる前記命令の前記実行は、前記少なくとも1つのプロセッ
サに、前記第1推定位置と前記第2推定位置とを組み合わせて、前記少なくとも1つのナビゲーションマップセグメントに対する前記ホスト車両の微調整された推定位置を決定す
ることをさらに行わせる、請求項1から20のいずれか一項に記載
のナビゲーションシステム。
【請求項22】
前記微調整された推定位置が、前記第1推定位置に第1の重み値を適用すること、および、前記第2推定位置に第2の重み値を適用することにより決定される、請求項21に記載
のナビゲーションシステム。
【請求項23】
前記ホスト車両の前記微調整された推定位置には、前記少なくとも1つのナビゲーションマップセグメントに含まれる目標軌跡に沿った前記ホスト車両の位置が含まれる、請求項21に記載
のナビゲーションシステム。
【請求項24】
前記目標軌跡が、利用可能な走行車線に関連づけられる、請求項23に記載
のナビゲーションシステム。
【請求項25】
前記目標軌跡が前記少なくとも1つのナビゲーションマップセグメントにおいて、3次元スプラインとして表される、請求項23に記載
のナビゲーションシステム。
【請求項26】
前記少なくとも1つの画像を分析して、前記少なくとも1つの画像に表されている前記1つまたは複数の物体の前記存在を検出することが、エッジ識別または形状に基づいて少なくとも1つの物体を識別することを含む、請求項1から25のいずれか一項に記載
のナビゲーションシステム。
【請求項27】
前記少なくとも1つの画像を分析して、前記少なくとも1つの画像に表されてい
る1つまたは複数の物体の前記存在を検出することが、前記ホスト車両の前記環境を表す第2画像を前記画像取り込みデバイスから受信することと、前記少なくとも1つの画像と前記第2画像との間の、前記1つまたは複数の物体の、少なくとも1つの画像の位置変更により表された、前記1つまたは複数の物体の検出された動きに基づいて前記1つまたは複数の物体を検出することとを含む、請求項1から26のいずれか一項に記載
のナビゲーションシステム。
【請求項28】
前記訓練されたシステムが報酬関数に少なくとも基づいて構成される、請求項1か
ら27のいずれか一項に記載
のナビゲーションシステム。
【請求項29】
検出された前記1つまたは複数の物体には、信号機、標識、道路エッジ、車線標示、またはポールのうちの1つまたは複数が含まれる、請求項1か
ら28のいずれか一項に記載
のナビゲーションシステム。
【請求項30】
前記訓練されたシステムにはニューラルネットワークが含まれる、請求項1か
ら29のいずれか一項に記載
のナビゲーションシステム。
【請求項31】
前記ナビゲーション動作には、前記ホスト車両の加速、前記ホスト車両の減速、または前記ホスト車両の旋回のうちの少なくとも1つが含まれる、請求項1か
ら30のいずれか一項に記載
のナビゲーションシステム。
【請求項32】
車両ナビゲーション用の方法であって、前記方法が、
ホスト車両の環境を表す少なくとも1つの画像
を受信する段
階であって、前記少なくとも1つの画像は、画像取り込みデバイスによって取り込まれている、受信する段階と、
前記少なくとも1つの画像を分析して、前記少なくとも1つの画像に表されている1つまたは複数の物体の存在を検出する段階と、
前記少なくとも1つの画像の前記分析に基づいて、検出された前記1つまたは複数の物体に関連する位置情報を特定する段階と、
検出された前記1つまたは複数の物体に関連する前記位置情報と
、複数のナビゲーションマップセグメントのうちの少なくとも1つのナビゲーションマップセグメントに表されている1つまたは複数のマッピングされた物体の位置情報とを比較する段階と
、
検出された前記1つまたは複数の物体について特定された前記位置情報と、前記少なくとも1つのナビゲーションマップセグメントに含まれる前記1つまたは複数のマッピングされた物体の前記位置情報とを揃えることによって、前記比較に基づいて、前記少なくとも1つのナビゲーションマップセグメントに対する前記ホスト車両の第1推定位置を決定する段階と、
前記少なくとも1つの画像の少なくとも一部および前記少なくとも1つのナビゲーションマップセグメン
トの少なくとも識別子を訓練されたシステムに提供する段
階であって、前記識別子は、前記複数のナビゲーションマップセグメントのうちのどのナビゲーションマップセグメントが前記少なくとも1つのナビゲーションマップセグメントに対応するかを示し、前記訓練されたシステムは、複数の訓練用画像と、前記複数の訓練用画像に関連づけられた環境を表す訓練用ナビゲーションマップセグメントと、前記複数の訓練用画像と前記訓練用ナビゲーションマップセグメントとの間の位置ずれの程度を表す誤差データとを含む訓練用データセットを用いて位置情報を生成するように訓練される、提供する段階と、
前記少なくとも1つのナビゲーションマップセグメントに対する前記ホスト車両の第2推定位置を前記訓練されたシステムから受信する段
階であって、前記第2推定位置は、前記ホスト車両の近似位置に適用される誤差補正に基づいて決定される、受信する段階と、
前記ホスト車両の前記第1推定位置と前記ホスト車両の前記第2推定位置との組み合わせに基づいて、前記ホスト車両のナビゲーション動作を決定する段階と、
決定された前記ナビゲーション動作を前記ホスト車両に実施させる段階と
を備える、方法。
【請求項33】
少なくとも1つのプロセッサに、
ホスト車両の環境を表す少なくとも1つの画像を受信する手順であって、前記少なくとも1つの画像は、画像取り込みデバイスによって取り込まれている、受信する手順と、
前記少なくとも1つの画像を分析して、前記少なくとも1つの画像に表されている1つまたは複数の物体の存在を検出する手順と、
前記少なくとも1つの画像の前記分析に基づいて、検出された前記1つまたは複数の物体に関連する位置情報を特定する手順と、
検出された前記1つまたは複数の物体に関連する前記位置情報と、複数のナビゲーションマップセグメントのうちの少なくとも1つのナビゲーションマップセグメントに表されている1つまたは複数のマッピングされた物体の位置情報とを比較する手順と、
検出された前記1つまたは複数の物体について特定された前記位置情報と、前記少なくとも1つのナビゲーションマップセグメントに含まれる前記1つまたは複数のマッピングされた物体の前記位置情報とを揃えることによって、前記比較に基づいて、前記少なくとも1つのナビゲーションマップセグメントに対する前記ホスト車両の第1推定位置を決定する手順と、
前記少なくとも1つの画像の少なくとも一部および前記少なくとも1つのナビゲーションマップセグメントの少なくとも識別子を訓練されたシステムに提供する手順であって、前記識別子は、前記複数のナビゲーションマップセグメントのうちのどのナビゲーションマップセグメントが前記少なくとも1つのナビゲーションマップセグメントに対応するかを示し、前記訓練されたシステムは、複数の訓練用画像と、前記複数の訓練用画像に関連づけられた環境を表す訓練用ナビゲーションマップセグメントと、前記複数の訓練用画像と前記訓練用ナビゲーションマップセグメントとの間の位置ずれの程度を表す誤差データとを含む訓練用データセットを用いて位置情報を生成するように訓練される、提供する手順と、
前記少なくとも1つのナビゲーションマップセグメントに対する前記ホスト車両の第2推定位置を前記訓練されたシステムから受信する手順であって、前記第2推定位置は、前記ホスト車両の近似位置に適用される誤差補正に基づいて決定される、受信する手順と、
前記ホスト車両の前記第1推定位置と前記ホスト車両の前記第2推定位置との組み合わせに基づいて、前記ホスト車両のナビゲーション動作を決定する手順と、
決定された前記ナビゲーション動作を前記ホスト車両に実施させる手順と
を実行させるための、車両ナビゲーション用のプログラム。
【請求項34】
前記識別子は、前記少なくとも1つのナビゲーションマップセグメントの数または前記少なくとも1つのナビゲーションマップセグメントの名前のうちの少なくとも1つを含む、請求項1から31のいずれか一項に記載のナビゲーションシステム。
【請求項35】
前記複数のナビゲーションマップセグメントのそれぞれは、一意の索引に関連づけられており、前記識別子は、前記少なくとも1つのナビゲーションマップセグメントの少なくとも1つの索引を含む、請求項1から31のいずれか一項に記載のナビゲーションシステム。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願の相互参照]
本願は、2019年10月8日出願の米国仮特許出願第62/912,328号に基づく優先権の利益を主張する。前述の出願は、その全体が参照により本明細書に組み込まれる。
【0002】
本開示は概して、自動運転車ナビゲーションに関する。
【背景技術】
【0003】
技術が発展を続けるにつれて、車道をナビゲートできる完全自動運転車の目標が近づいている。自動運転車は様々な要因を考慮し、こうした要因に基づいて適切な判定を行い、意図した目的地に安全且つ正確に到達することが必要になり得る。例えば、自動運転車は、視覚情報(例えば、カメラから取り込まれた情報)を処理して解釈することが必要になる場合があり、他の情報源(例えば、GPSデバイス、速度センサ、加速度計、サスペンションセンサなどで)から取得した情報も用いることがある。それと同時に、目的地にナビゲートするために、自動運転車は、特定の車道(例えば、複数車線道路での特定の車線)における自車の位置を識別し、他の車両と並んでナビゲートし、障害物や歩行者を避け、交通信号や標識を順守し、適切な交差点またはインターチェンジで、ある道路から別の道路へと走行することも必要になり得る。自動運転車が目的地まで走行するときに当該車両が収集する膨大な情報の利用および解釈は、多くの設計上の課題をもたらす。自動運転車が分析する、アクセスする、および/または格納するのに必要となり得る莫大な量のデータ(例えば、取り込まれた画像データ、マップデータ、GPSデータ、センサデータなど)は、実際に自動ナビゲーションを制限する可能性のある、または悪影響さえ与える可能性のある課題をもたらす。さらに、自動運転車が従来のマッピング技術を利用してナビゲートする場合、マップの格納および更新を行うのに必要な莫大な量のデータは、非常に困難な課題をもたらす。
【発明の概要】
【0004】
本開示と矛盾しない実施形態が、自動運転車ナビゲーション用のシステムおよび方法を提供する。開示する実施形態は、自動運転車ナビゲーション機能を提供するのにカメラを用いることがある。例えば、開示する実施形態と矛盾せずに、開示するシステムは、車両の環境を監視するカメラを1つ、2つ、またはもっと多く含んでよい。開示するシステムは、例えば、これらのカメラのうちの1つまたは複数により取り込まれた画像の分析に基づいて、ナビゲーション応答を提供してよい。
【0005】
一実施形態では、ホスト車両のナビゲーションシステムが少なくとも1つのプロセッサを含んでよい。プロセッサは、ホスト車両の環境を表す少なくとも1つの画像を画像取り込みデバイスから受信し、少なくとも1つの画像を分析して、少なくとも1つの画像に表されている1つまたは複数の物体の存在を検出し、少なくとも1つの画像の分析に基づいて、検出された1つまたは複数の物体に関連する位置情報を特定し、検出された1つまたは複数の物体に関連する位置情報と、少なくとも1つのナビゲーションマップセグメントに表されている1つまたは複数のマッピングされた物体の位置情報とを比較し、その比較に基づいて、少なくとも1つのナビゲーションマップセグメントに対するホスト車両の第1推定位置を決定するようにプログラムされてよい。プロセッサはさらに、少なくとも1つの画像の少なくとも一部と、少なくとも1つのナビゲーションマップセグメントに関連づけられた少なくとも識別子とを訓練システムに提供し、訓練システムから、少なくとも1つのナビゲーションマップセグメントに対するホスト車両の第2推定位置を受信するようにプログラムされてよい。プロセッサは次に、ホスト車両の第1推定位置とホスト車両の第2推定位置との組み合わせに基づいて、ホスト車両のナビゲーション動作を決定し、決定されたナビゲーション動作をホスト車両に実施させてよい。
【0006】
一実施形態では、車両ナビゲーション用の方法が、ホスト車両の環境を表す少なくとも1つの画像を画像取り込みデバイスから受信する段階と、少なくとも1つの画像を分析して、少なくとも1つの画像に表されている1つまたは複数の物体の存在を検出する段階と、少なくとも1つの画像の分析に基づいて、検出された1つまたは複数の物体に関連する位置情報を特定する段階と、検出された1つまたは複数の物体に関連する位置情報と、少なくとも1つのナビゲーションマップセグメントに表されている1つまたは複数のマッピングされた物体の位置情報とを比較する段階と、この比較に基づいて、少なくとも1つのナビゲーションマップセグメントに対するホスト車両の第1推定位置を決定する段階と、少なくとも1つの画像の少なくとも一部および少なくとも1つのナビゲーションマップセグメントに関連づけられた少なくとも識別子を訓練システムに提供する段階と、少なくとも1つのナビゲーションマップセグメントに対するホスト車両の第2推定位置を訓練システムから受信する段階と、ホスト車両の第1推定位置およびホスト車両の第2推定位置の組み合わせに基づいて、ホスト車両のナビゲーション動作を決定する段階と、決定されたナビゲーション動作をホスト車両に実施させる段階とを含んでよい。
【0007】
他の開示する実施形態と矛盾せずに、非一時的コンピュータ可読記憶媒体がプログラム命令を格納してよく、プログラム命令は、少なくとも1つの処理デバイスにより実行されて、本明細書で説明する方法のうちのいずれかを行ってよい。
【0008】
前述の概要および以下の詳細な説明は、例示的であり説明のためのものでしかなく、特許請求の範囲を限定することはない。
【図面の簡単な説明】
【0009】
本開示に組み込まれ、本開示の一部を構成する添付図面が、開示する様々な実施形態を示している。その図面は以下の通りである。
【0010】
【
図1】開示する実施形態と矛盾しない例示的なシステムの概略図である。
【0011】
【
図2A】開示する実施形態と矛盾しないシステムを含む例示的な車両の概略側面図である。
【0012】
【
図2B】開示する実施形態と矛盾しない
図2Aに示す車両およびシステムの概略上面図である。
【0013】
【
図2C】開示する実施形態と矛盾しないシステムを含む車両の別の実施形態の概略上面図である。
【0014】
【
図2D】開示する実施形態と矛盾しないシステムを含む車両のさらに別の実施形態の概略上面図である。
【0015】
【
図2E】開示する実施形態と矛盾しないシステムを含む車両のさらに別の実施形態の概略上面図である。
【0016】
【
図2F】開示する実施形態と矛盾しない例示的な車両制御システムの概略図である。
【0017】
【
図3A】開示する実施形態と矛盾しない、車両撮像システム用のバックミラーおよびユーザインタフェースを含む車両の内側の概略図である。
【0018】
【
図3B】開示する実施形態と矛盾しない、バックミラーの背後に車両のフロントガラスに接触して配置されるように構成された、カメラマウントの一例を示す図である。
【0019】
【
図3C】開示する実施形態と矛盾しない
図3Bに示すカメラマウントを別の角度から見た図である。
【0020】
【
図3D】開示する実施形態と矛盾しない、バックミラーの背後に車両のフロントガラスに接触して配置されるように構成された、カメラマウントの一例を示す図である。
【0021】
【
図4】開示する実施形態と矛盾しない、1つまたは複数の作業を行うための命令を格納するように構成された、メモリの例示的なブロック図である。
【0022】
【
図5A】開示する実施形態と矛盾しない、単眼画像分析に基づいて1つまたは複数のナビゲーション応答を発生させるための、例示的なプロセスを示すフローチャートである。
【0023】
【
図5B】開示する実施形態と矛盾しない、画像のセットに含まれる1つもしくは複数の車両および/または1人もしくは複数の歩行者を検出するための、例示的なプロセスを示すフローチャートである。
【0024】
【
図5C】開示する実施形態と矛盾しない、画像のセットに含まれる道路標示および/または車線の幾何構造情報を検出するための、例示的なプロセスを示すフローチャートである。
【0025】
【
図5D】開示する実施形態と矛盾しない、画像のセットに含まれる信号機を検出するための、例示的なプロセスを示すフローチャートである。
【0026】
【
図5E】開示する実施形態と矛盾しない、車両経路に基づいて1つまたは複数のナビゲーション応答を発生させるための、例示的なプロセスを示すフローチャートである。
【0027】
【
図5F】開示する実施形態と矛盾しない、先行車両が車線を変更中であるかどうかを判定するための、例示的なプロセスを示すフローチャートである。
【0028】
【
図6】開示する実施形態と矛盾しない、ステレオ画像分析に基づいて1つまたは複数のナビゲーション応答を発生させるための、例示的なプロセスを示すフローチャートである。
【0029】
【
図7】開示する実施形態と矛盾しない、3つのセットの画像の分析に基づいて1つまたは複数のナビゲーション応答を発生させるための、例示的なプロセスを示すフローチャートである。
【0030】
【
図8】開示する実施形態と矛盾しない、自動運転車ナビゲーションを提供するためのスパースマップを示す図である。
【0031】
【
図9A】開示する実施形態と矛盾しない、道路セグメントの一部の多項式表現を示す図である。
【0032】
【
図9B】開示する実施形態と矛盾しないスパースマップに含まれる、特定の道路セグメントについての車両の目標軌跡を表す、3次元空間における曲線を示す図である。
【0033】
【
図10】開示する実施形態と矛盾しないスパースマップに含まれ得る例示的なランドマークを示す図である。
【0034】
【
図11A】開示する実施形態と矛盾しない軌跡の多項式表現を示す図である。
【0035】
【
図11B】開示する実施形態と矛盾しない、複数車線道路に沿った目標軌跡を示す図である。
【
図11C】開示する実施形態と矛盾しない、複数車線道路に沿った目標軌跡を示す図である。
【0036】
【
図11D】開示する実施形態と矛盾しないロードシグネチャプロファイルの一例を示す図である。
【0037】
【
図12】開示する実施形態と矛盾しない、複数の車両から受信したクラウドソーシングデータを自動運転車ナビゲーションに用いるシステムの概略図である。
【0038】
【
図13】開示する実施形態と矛盾しない、複数の3次元スプラインで表される自動運転車向け道路ナビゲーションモデルの一例を示す図である。
【0039】
【
図14】開示する実施形態と矛盾しない、複数のドライブからの位置情報を組み合わせて生成された、マップの骨組みを示す図である。
【0040】
【
図15】開示する実施形態と矛盾しない、ランドマークとなる例示的な標識と2つのドライブとを長手方向に揃えた一例を示す図である。
【0041】
【
図16】開示する実施形態と矛盾しない、ランドマークの一例となる標識と複数のドライブとを長手方向に揃えた一例を示す図である。
【0042】
【
図17】開示する実施形態と矛盾しない、カメラ、車両、およびサーバを用いてドライブデータを生成するためのシステムの概略図である。
【0043】
【
図18】開示する実施形態と矛盾しない、スパースマップをクラウドソーシングするためのシステムの概略図である。
【0044】
【
図19】開示する実施形態と矛盾しない、道路セグメントに沿った自動運転車ナビゲーション用のスパースマップを生成するための、例示的プロセスを示すフローチャートである。
【0045】
【
図20】開示する実施形態と矛盾しないサーバのブロック図を示す図である。
【0046】
【
図21】開示する実施形態と矛盾しないメモリのブロック図を示す図である。
【0047】
【
図22】開示する実施形態と矛盾しない、車両に関連付けられた車両軌跡をクラスタ化するプロセスを示す図である。
【0048】
【
図23】開示する実施形態と矛盾しない、自動ナビゲーションに用いられ得る車両用ナビゲーションシステムを示す図である。
【0049】
【
図24A】開示する実施形態と矛盾しない、検出され得る例示的な車線標示を示す図である。
【
図24B】開示する実施形態と矛盾しない、検出され得る例示的な車線標示を示す図である。
【
図24C】開示する実施形態と矛盾しない、検出され得る例示的な車線標示を示す図である。
【
図24D】開示する実施形態と矛盾しない、検出され得る例示的な車線標示を示す図である。
【0050】
【
図24E】開示する実施形態と矛盾しない、マッピングされた例示的な車線標示を示す図である。
【0051】
【
図24F】開示する実施形態と矛盾しない、車線標示の検出に関連した例示的な異常を示す図である。
【0052】
【
図25A】開示する実施形態と矛盾しない、マッピングされた車線標示に基づくナビゲーション用の、車両の周辺環境についての例示的な画像を示す図である。
【0053】
【
図25B】開示する実施形態と矛盾しない、道路ナビゲーションモデルにおけるマッピングされた車線標示に基づく、車両の横方向位置特定の補正を示す図である。
【0054】
【
図26A】開示する実施形態と矛盾しない、自動運転車ナビゲーションに用いるための車線標示をマッピングする、例示的なプロセスを示すフローチャートである。
【0055】
【
図26B】開示する実施形態と矛盾しない、マッピングされた車線標示を用いて道路セグメントに沿ってホスト車両を自律的にナビゲートするための、例示的なプロセスを示すフローチャートである。
【0056】
【
図27】開示する実施形態と矛盾しない、車両の位置を決定するための、プロセスの一例を示すブロック図である。
【0057】
【
図28】ホスト車両の位置特定に用いられ得る、ホスト車両により取り込まれた画像の一例を示す図である。
【0058】
【
図29】開示する実施形態と矛盾しない、ナビゲーションマップセグメントに関連する車両に対して決定され得る例示的な位置の図である。
【0059】
【
図30】開示する実施形態と矛盾しない、位置特定の冗長性についてモデルを訓練するための、訓練プロセスの一例を示すブロック図である。
【0060】
【
図31】開示する実施形態と矛盾しない、推定位置に適用され得る、状況に基づく例示的な重みづけの図である。
【0061】
【
図32】開示する実施形態と矛盾しない、ホスト車両の環境に含まれる物体を識別するための、プロセス3200の一例を示すフローチャートである。
【発明を実施するための形態】
【0062】
以下の詳細な説明では、添付図面を参照する。図面および以下の説明では、可能な限り、同じまたは同様の部分を指すために同じ参照番号が用いられる。いくつかの例示的実施形態が本明細書で説明されるが、変更、改作、および他の実装例も可能である。例えば、図面に示されている構成要素に対して置換、追加、および変更を行ってもよく、本明細書で説明される例示的方法が、開示する方法に対して段階を置き換える、並べ替える、削除する、または追加することによって変更されてよい。したがって、以下の詳細な説明は、開示する実施形態および実施例に限定されることはない。その代わりに、添付の特許請求の範囲によって、適切な範囲が定められる。
【0063】
[自動運転車の概要]
【0064】
本開示全体にわたって用いられる場合、用語「自動運転車」とは、運転者の入力を必要とすることなく、少なくとも1つのナビゲーション変更を実施できる車両を指す。「ナビゲーション変更」とは、車両の操縦、ブレーキ、もしくは加速のうちの1つまたは複数における変更を指す。自動であるためには、車両が完全に自動(例えば、運転者を必要としない、または運転者の入力を必要としない完全動作)である必要はない。むしろ、自動運転車は、一定の期間の間、運転者の制御の下で動作し、他の期間では運転者の制御を必要とせずに動作できるものも含む。自動運転車には、(例えば、車両車線制限線の間に車両進路を維持するために)操縦などの車両ナビゲーションの一部の側面だけを制御するが、他の側面(例えば、ブレーキ)は運転者に任せる場合がある車両も含まれてよい。場合によっては、車両のブレーキ、速度制御、および/または操縦の一部または全部の側面を、自動運転車が担ってもよい。
【0065】
人の運転者は通常、視覚的な手がかりや観測結果を利用して車両を制御するので、それに基づいて交通インフラが構築されており、したがって、車線標示、交通標識、および信号機は全て、視覚情報を運転者に提供するように設計されている。交通インフラのこれらの設計的特徴を考慮して、自動運転車が、カメラと、車両の環境から取り込まれた視覚情報を分析する処理ユニットとを含んでよい。視覚情報には、例えば、運転者が観測可能な交通インフラの構成要素(例えば、車線標示、交通標識、信号機など)、および他の障害物(例えば、他の車両、歩行者、ゴミなど)が含まれてよい。さらに、自動運転車は、ナビゲート時に、車両の環境のモデルを提供する情報などの、格納済みの情報も用いてよい。例えば、車両は、GPSデータ、(例えば、加速度計、速度センサ、サスペンションセンサなど)のセンサデータ、および/または他のマップデータを用いて、車両が走行している間に、その環境に関連する情報を提供してよく、当該車両(および他の車両)は、その情報を用いてモデル上で自車の位置を特定してよい。
【0066】
本開示のいくつかの実施形態では、自動運転車が、ナビゲートしている間に(例えば、カメラ、GPSデバイス、加速度計、速度センサ、サスペンションセンサなどから)取得した情報を用いてよい。他の実施形態では、自動運転車が、当該車両(または他の車両)による過去のナビゲーションから取得された情報をナビゲート中に用いてよい。さらに他の実施形態では、自動運転車が、ナビゲート中に取得された情報と過去のナビゲーションから取得された情報とを組み合わせて用いてよい。以下のセクションでは、開示する実施形態と矛盾しないシステムの概要を提供し、その後に、当該システムと矛盾しない前面撮像システムおよび方法の概要が続く。この後のセクションでは、自動運転車ナビゲーション用のスパースマップを構築する、用いる、且つ更新するためのシステムおよび方法を開示する。
【0067】
[システム概要]
【0068】
図1は、開示する例示的な実施形態と矛盾しないシステム100のブロック図である。システム100は、具体的な実装例の要件に応じて、様々な構成要素を含んでよい。いくつかの実施形態において、システム100は、処理ユニット110、画像取得ユニット120、位置センサ130、1つまたは複数のメモリユニット140、150、マップデータベース160、ユーザインタフェース170、および無線送受信機172を含んでよい。処理ユニット110は、1つまたは複数の処理デバイスを含んでよい。いくつかの実施形態において、処理ユニット110は、アプリケーションプロセッサ180、画像プロセッサ190、または任意の他の好適な処理デバイスを含んでよい。同様に、画像取得ユニット120は、特定の用途についての要件に応じて、任意の数の画像取得デバイスおよび構成要素を含んでよい。いくつかの実施形態において、画像取得ユニット120は、画像取り込みデバイス122、画像取り込みデバイス124、および画像取り込みデバイス126などの1つまたは複数の画像取り込みデバイス(例えば、カメラ)を含んでよい。システム100は、処理デバイス110を画像取得デバイス120に通信可能に接続するデータインタフェース128も含んでよい。例えば、データインタフェース128は、画像取得デバイス120で取得した画像データを処理ユニット110に送信するための、1つまたは複数の任意の有線リンクおよび/または無線リンクを含んでよい。
【0069】
無線送受信機172は、無線周波数、赤外線周波数、磁界、または電界を用いて、1つまたは複数のネットワーク(例えば、セルラ、インターネットなど)に対するエアインターフェースを介した送信をやり取りするように構成された1つまたは複数のデバイスを含んでよい。無線送受信機172は、任意の既知の規格(例えば、Wi-Fi(登録商標)、Bluetooth(登録商標)、Bluetooth Smart、802.15.4、ZigBee(登録商標)など)を用いて、データの送信および/または受信を行ってよい。そのような送信には、ホスト車両から遠隔に配置された1つまたは複数のサーバへの通信が含まれてよい。そのような送信には、(例えば、ホスト車両の環境内にいる対象車両を考慮して、またはその対象車両と一緒に、ホスト車両のナビゲーションの調整を容易にするための)ホスト車両とホスト車両の環境内にいる1つまたは複数の対象車両との間の通信(一方向または双方向)、または送信車両の近くにいる不特定受信者へのブロードキャスト送信さえも含まれてよい。
【0070】
アプリケーションプロセッサ180および画像プロセッサ190は両方とも、様々なタイプの処理デバイスを含んでよい。例えば、アプリケーションプロセッサ180および画像プロセッサ190のいずれかまたは両方は、マイクロプロセッサ、プリプロセッサ(画像プリプロセッサなど)、グラフィックス処理装置(GPU)、中央演算処理装置(CPU)、支援回路、デジタル信号プロセッサ、集積回路、メモリ、またはアプリケーションの実行並びに画像処理および分析に好適な任意の他のタイプのデバイスを含んでよい。いくつかの実施形態において、アプリケーションプロセッサ180および/または画像プロセッサ190は、任意のタイプのシングルコアプロセッサまたはマルチコアプロセッサ、モバイルデバイスマイクロコントローラ、中央演算処理装置などを含んでよい。例えば、Intel(登録商標)、AMD(登録商標)などといった製造業者から入手可能なプロセッサ、またはNVIDIA(登録商標)、ATI(登録商標)などといった製造業者から入手可能なGPUを含む様々な処理デバイスが用いられてよく、様々なアーキテクチャ(例えば、x86プロセッサ、ARM(登録商標)など)を含んでよい。
【0071】
いくつかの実施形態において、アプリケーションプロセッサ180および/または画像プロセッサ190は、Mobileye(登録商標)から入手可能なEyeQシリーズのプロセッサチップのうちのいずれかを含んでよい。これらのプロセッサ設計はそれぞれ、ローカルメモリおよび命令セットを有する複数の処理ユニットを含む。そのようなプロセッサは、複数のイメージセンサから画像データを受信するためのビデオ入力を含んでよく、またビデオ出力機能も含んでよい。一例において、EyeQ2(登録商標)は90nmテクノロジを用い、332MHzで動作する。EyeQ2(登録商標)アーキテクチャは、2つの浮動小数点ハイパースレッド32ビットRISC型CPU(MIPS32(登録商標)34K(登録商標)コア)、5つのビジョン計算エンジン(VCE)、3つのベクトルマイクロコードプロセッサ(VMP(登録商標))、Denaliの64ビットモバイルDDRコントローラ、128ビット内蔵Sonics Interconnect、16ビットビデオ入力および18ビットビデオ出力のデュアルコントローラ、16チャネルDMA、およびいくつかの周辺機器で構成される。MIPS34K CPUは、5つのVCE、3つのVMP(登録商標)およびDMA、第2のMIPS34K CPUおよびマルチチャネルDMA並びにその他の周辺機器を管理する。5つのVCE、3つのVMP(登録商標)、およびMIPS34K CPUは、多機能バンドル型アプリケーションが必要とする集中的なビジョン計算を行うことができる。別の例において、第3世代プロセッサであり、EyeQ2(登録商標)より処理能力が6倍高いEyeQ3(登録商標)が、開示する実施形態に用いられてよい。他の例において、EyeQ4(登録商標)および/またはEyeQ5(登録商標)が、開示する実施形態に用いられてよい。当然ながら、任意の新規または将来のEyeQ処理デバイスも、開示する実施形態と一緒に用いられてよい。
【0072】
本明細書で開示する処理デバイスのうちのいずれかが、特定の機能を行うように構成されてよい。説明したEyeQプロセッサまたは他のコントローラもしくはマイクロプロセッサのうちのいずれかなどの処理デバイスを構成して、特定の機能を行うことには、コンピュータ実行可能命令をプログラムすること、および処理デバイスの動作時にこれらの命令を処理デバイスが実行のために利用できるようにすることが含まれてよい。いくつかの実施形態において、処理デバイスを構成することには、処理デバイスをアーキテクチャ命令で直接プログラムすることが含まれてよい。例えば、フィールドプログラマブルゲートアレイ(FPGA)および特定用途向け集積回路(ASIC)などといった処理デバイスが、例えば、1つまたは複数のハードウェア記述言語(HDL)を用いて構成されてよい。
【0073】
他の実施形態において、処理デバイスを構成することは、処理デバイスが動作時にアクセスできるメモリに実行可能命令を格納することを含んでよい。例えば、処理デバイスが動作時に、メモリにアクセスして、格納された命令を取得し実行してよい。どちらの場合にも、本明細書で開示するセンシング、画像分析、および/またはナビゲーション機能を行うように構成された処理デバイスは、ホスト車両のハードウェアベースの複数の構成要素を制御する専用ハードウェアベースのシステムを表している。
【0074】
図1は処理ユニット110に含まれる2つの別個の処理デバイスを示しているが、もっと多いまたは少ない処理デバイスを用いてもよい。例えば、いくつかの実施形態において、単一の処理デバイスを用いて、アプリケーションプロセッサ180および画像プロセッサ190のタスクを達成してもよい。他の実施形態において、これらのタスクを2つより多くの処理デバイスで行ってもよい。さらに、いくつかの実施形態において、システム100は、画像取得ユニット120などの他の構成要素を含むことなく、処理ユニット110のうちの1つまたは複数を含んでよい。
【0075】
処理ユニット110は、様々なタイプのデバイスを含んでよい。例えば、処理ユニット110は、コントローラ、画像プリプロセッサ、中央演算処理装置(CPU)、グラフィックス処理装置(GPU)、支援回路、デジタル信号プロセッサ、集積回路、メモリ、または画像処理および分析用の任意の他のタイプのデバイスといった様々なデバイスを含んでよい。画像プリプロセッサは、イメージセンサからの画像を取り込み、デジタル化し、処理するためのビデオプロセッサを含んでよい。CPUは、任意の数のマイクロコントローラまたはマイクロプロセッサを含んでよい。GPUは、任意の数のマイクロコントローラまたはマイクロプロセッサも含んでよい。支援回路は、例えば、キャッシュ回路、電源回路、クロック回路、および入出力回路を含む、当技術分野で一般によく知られている任意の数の回路であってよい。メモリは、プロセッサにより実行されると、本システムの動作を制御するソフトウェアを格納してよい。メモリは、データベースおよび画像処理ソフトウェアを含んでよい。メモリは、任意の数のランダムアクセスメモリ、読み出し専用メモリ、フラッシュメモリ、ディスクドライブ、光学ストレージ、テープストレージ、着脱式ストレージ、および他のタイプのストレージを含んでよい。一例において、メモリは処理ユニット110から分かれてもよい。別の例において、メモリは処理ユニット110に統合されてもよい。
【0076】
各メモリ140、150はソフトウェア命令を含んでよく、この命令は、プロセッサ(例えば、アプリケーションプロセッサ180および/または画像プロセッサ190)によって実行されると、システム100の様々な態様の動作を制御し得る。例えば、これらのメモリユニットは、様々なデータベースおよび画像処理ソフトウェア、並びに、ニューラルネットワークまたはディープニューラルネットワークなどの訓練システムを含んでよい。メモリユニットは、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、ディスクドライブ、光学ストレージ、テープストレージ、着脱式ストレージ、および/または任意の他のタイプのストレージを含んでよい。いくつかの実施形態において、メモリユニット140、150は、アプリケーションプロセッサ180および/または画像プロセッサ190から分かれていてもよい。他の実施形態において、これらのメモリユニットは、アプリケーションプロセッサ180および/または画像プロセッサ190に統合されてもよい。
【0077】
位置センサ130は、システム100の少なくとも1つの構成要素に関連する位置を決定するのに好適な任意のタイプのデバイスを含んでよい。いくつかの実施形態において、位置センサ130はGPS受信機を含んでよい。そのような受信器は、全地球測位システム用の衛星がブロードキャストする信号を処理することで、ユーザ位置および速度を決定することができる。位置センサ130からの位置情報は、アプリケーションプロセッサ180および/または画像プロセッサ190が利用できるようにしてよい。
【0078】
いくつかの実施形態において、システム100は、車両200の速度を測定するための速度センサ(例えば、回転速度計、速度計)、および/または車両200の加速度を測定するための加速度計(単軸または多軸のいずれか)などの構成要素を含んでよい。
【0079】
ユーザインタフェース170は、システム100の1人または複数のユーザに情報を提供するか、またはそのユーザからの入力を受信するのに好適な任意のデバイスを含んでよい。いくつかの実施形態において、ユーザインタフェース170はユーザ入力デバイスを含んでよく、そのようなデバイスには、例えば、タッチスクリーン、マイク、キーボード、ポインタデバイス、トラックホイール、カメラ、つまみ、ボタンなどが含まれる。そのような入力デバイスを用いて、ユーザは情報入力またはコマンドをシステム100に提供することができ、例えば、命令または情報を打ち込む、音声コマンドを提供する、ボタン、ポインタ、または視線追跡機能を用いてスクリーン上のメニューオプションを選択する、あるいは情報をシステム100に伝えるための任意の他の好適な手法が使われてよい。
【0080】
ユーザインタフェース170は、ユーザとの間で情報の受け渡しを行い、例えば、アプリケーションプロセッサ180が用いるために当該情報を処理するように構成された1つまたは複数の処理デバイスを備えてよい。いくつかの実施形態において、そのような処理デバイスは、目の動きを認識して追跡する命令、音声コマンドを受信して解釈する命令、タッチスクリーン上で行われたタッチおよび/またはジェスチャーを認識して解釈する命令、キーボード入力またはメニュー選択に応答する命令などを実行してよい。いくつかの実施形態において、ユーザインタフェース170は、ディスプレイ、スピーカ、触知デバイス、および/または、出力情報をユーザに提供するための任意の他のデバイスを含んでよい。
【0081】
マップデータベース160は、システム100にとって有用なマップデータを格納するための、任意のタイプのデータベースを含んでよい。いくつかの実施形態において、マップデータベース160は、様々な種目の基準座標系における位置に関連するデータを含んでよく、そのような種目には、道路、ウォータフィーチャ、地理的特徴、商店、関心のある特定の地点、レストラン、ガソリンスタンドなどが含まれる。マップデータベース160は、そのような種目の位置だけでなく、これらの種目に関連する記述子も格納してよく、そのような記述子には、例えば、格納された特徴のうちのいずれかに関連した名称が含まれる。いくつかの実施形態において、マップデータベース160は、システム100の他の構成要素と共に物理的に配置されてよい。あるいは、またはさらに、マップデータベース160またはその一部は、システム100の他の構成要素(例えば、処理ユニット110)に対して遠隔に配置されてもよい。そのような実施形態において、マップデータベース160からの情報が、ネットワークへの有線データ接続または無線データ接続を介して(例えば、セルラネットワークおよび/またはインターネットなどを介して)ダウンロードされてよい。場合によっては、マップデータベース160は、特定の道路特徴(例えば、車線標示)またはホスト車両の目標軌跡の多項式表現を含むスパースデータモデルを格納してよい。そのようなマップを生成するシステムおよび方法を、
図8~
図19を参照して以下で論じる。
【0082】
画像取り込みデバイス122、124、および126はそれぞれ、環境から少なくとも1つの画像を取り込むのに好適な任意のタイプのデバイスを含んでよい。さらに、任意の数の画像取り込みデバイスを用いて、画像プロセッサに入力する画像を取得してもよい。いくつかの実施形態では、画像取り込みデバイスを1つだけ含んでよいが、他の実施形態では、画像取り込みデバイスを2つ、3つ、または4つ以上も含んでよい。画像取り込みデバイス122、124、および126はさらに、
図2B~
図2Eを参照して以下で説明される。
【0083】
システム100またはその様々な構成要素は、様々な別のプラットフォームに組み込まれてもよい。いくつかの実施形態において、システム100は、
図2Aに示すように、車両200に含まれてよい。例えば、車両200は、
図1に関連して上述したように、処理ユニット110、およびシステム100の他の構成要素のうちのいずれかを備えてよい。いくつかの実施形態において、車両200は画像取り込みデバイス(例えば、カメラ)を1つだけ備えてよいが、他の実施形態(
図2B~
図2Eに関連して論じられる実施形態など)では、複数の画像取り込みデバイスを用いることがある。例えば、
図2Aに示すように、車両200の画像取り込みデバイス122および124のいずれかが、ADAS(先進運転者支援システム)撮像装置の一部であってよい。
【0084】
画像取得ユニット120の一部として車両200に含まれる画像取り込みデバイスは、任意の好適な場所に配置されてよい。いくつかの実施形態では、
図2A~
図2Eおよび
図3A~
図3Cに示すように、画像取り込みデバイス122をバックミラーの近くに配置してよい。この位置は、車両200の運転者の視線と同様の視線を提供することができ、そのため、運転者に何が見えるか、何が見えないかを判定するのに役立ち得る。バックミラーに近い任意の場所に画像取り込みデバイス122を配置してよいが、ミラーの運転席側に画像取り込みデバイス122を配置すると、運転者の視野および/または視線を表す画像を取得するのにさらに役立ち得る。
【0085】
画像取得ユニット120の画像取り込みデバイスについては、他の場所も用いてよい。例えば、画像取り込みデバイス124を、車両200のバンパー上またはバンパー内に配置してもよい。そのような場所は、広い視野を有する画像取り込みデバイスには特に好適かもしれない。バンパーに配置された画像取り込みデバイスの視線は運転者の視線とは異なり得るので、バンパーの画像取り込みデバイスおよび運転者は常に同じ物体を見ていないことがある。画像取り込みデバイス(例えば、画像取り込みデバイス122、124、および126)は、他の場所にも配置されてよい。例えば、画像取り込みデバイスは、車両200の一方または両方のサイドミラー上またはサイドミラー内、車両200のルーフ上、車両200のボンネット上、車両200のトランク上、車両200の側面上に位置してよく、車両200の窓ガラスのうちのいずれかに取り付けられても、その背後に配置されても、その前に配置されてもよく、車両200の前部および/または後部にある照明装置内またはその近くなどに取り付けられてよい。
【0086】
画像取り込みデバイスに加えて、車両200はシステム100の様々な他の構成要素を含んでよい。例えば、処理ユニット110は、車両のエンジン制御ユニット(ECU)と一体化して、またはECUから分かれて車両200に含まれてよい。車両200は、GPS受信機などの位置センサ130も備えてよく、マップデータベース160並びにメモリユニット140および150も含んでよい。
【0087】
先に論じたように、無線送受信機172は、1つまたは複数のネットワーク(例えば、セルラネットワーク、インターネットなど)を介してデータの送信および/または受信を行ってよい。例えば、無線送受信機172は、システム100が収集したデータを1つまたは複数のサーバにアップロードし、1つまたは複数のサーバからデータをダウンロードしてよい。無線送受信機172を介して、システム100は、例えば、マップデータベース160、メモリ140、および/またはメモリ150に格納されたデータに対する定期更新または要求に応じた更新を受信してよい。同様に、無線送受信機172は、システム100からのあらゆるデータ(例えば、画像取得ユニット120により取り込まれた画像、位置センサ130または他のセンサ、車両制御システムなどが受信したデータ)、および/または処理ユニット110が処理したあらゆるデータを1つまたは複数のサーバにアップロードしてよい。
【0088】
システム100は、プライバシーレベル設定に基づいて、データをサーバに(例えば、クラウドに)アップロードしてよい。例えば、システム100は、サーバに送られる、車両および/または車両の運転者/所有者を一意に識別し得るデータ(メタデータを含む)のタイプを規制または限定するように、プライバシーレベル設定を実施してよい。そのような設定は、例えば、無線送受信機172を介してユーザが設定してもよく、工場出荷時の設定または無線送受信機172が受信したデータで初期化されてもよい。
【0089】
いくつかの実施形態において、システム100は、プライバシーレベル「高」に従ってデータをアップロードしてよく、設定を設定している最中では、システム100は、特定の車両および/または運転者/所有者に関する詳細を何も用いずに、データ(例えば、ルートに関連する位置情報、取り込まれた画像など)を送信してよい。例えば、プライバシー設定「高」に従ってデータをアップロードする場合、システム100は、車両登録番号(VIN)も車両の運転者または所有者の名称も含めなくてよく、その代わりに、取り込まれた画像および/またはルートに関連する限定された位置情報などのデータを送信してよい。
【0090】
他のプライバシーレベルも考えられる。例えば、システム100は、プライバシーレベル「中」に従ってデータをサーバに送信し、プライバシーレベル「高」では含まれない追加情報、例えば、車両のメーカーおよび/もしくは型式、並びに/または車両タイプ(例えば、乗用車、多目的スポーツ車、トラックなど)といった情報を含めてよい。いくつかの実施形態において、システム100は、プライバシーレベル「低」に従ってデータをアップロードしてよい。プライバシーレベル設定「低」では、システム100は、データをアップロードし、特定の車両、所有者/運転者、および/または車両が走行するルートの一部もしくは全体を一意に識別するのに十分な情報を含めることができる。そのようなプライバシーレベル「低」のデータは、例えば、VIN、運転者/所有者の名前、出発前の車両の起点、車両の意図した目的地、車両のメーカーおよび/または型式、車両のタイプなどのうちの1つまたは複数を含んでよい。
【0091】
図2Aは、開示する実施形態と矛盾しない例示的な車両撮像システムの概略側面図である。
図2Bは、
図2Aに示す実施形態の概略上面図である。
図2Bに示すように、開示する実施形態は車両200を含んでよく、その車体には、車両200のバックミラーの近くおよび/または運転者の近くに配置された第1の画像取り込みデバイス122と、車両200のバンパー領域(例えば、バンパー領域210のうちの1つ)にまたはその中に配置された第2の画像取り込みデバイス124と、処理ユニット110とを有するシステム100が含まれる。
【0092】
図2Cに示すように、画像取り込みデバイス122および124は両方とも、車両200のバックミラーの近くおよび/または運転者の近くに配置されてよい。さらに、
図2Bおよび
図2Cには、2つの画像取り込みデバイス122および124が示されているが、他の実施形態では2つより多くの画像取り込みデバイスを含んでもよいことを理解されたい。例えば、
図2Dおよび
図2Eに示す実施形態では、第1の画像取り込みデバイス122、第2の画像取り込みデバイス124、および第3の画像取り込みデバイス126が、車両200のシステム100に含まれている。
【0093】
図2Dに示すように、画像取り込みデバイス122は、車両200のバックミラーの近くおよび/または運転者の近くに配置されてよく、画像取り込みデバイス124および126は、車両200のバンパー領域(例えば、バンパー領域210のうちの1つ)にまたはその中に配置されてよい。また、
図2Eに示すように、画像取り込みデバイス122、124、および126が、車両200のバックミラーの近くおよび/または運転席の近くに配置されてよい。開示する実施形態は、画像取り込みデバイスのいかなる特定の数および構成にも限定されることはなく、画像取り込みデバイスは車両200の内部および/またはその上の任意の適切な場所に配置されてよい。
【0094】
開示する実施形態は、車両に限定されることはなく、他の状況にも適用されることがあることを理解されたい。開示する実施形態は、車両200の特定のタイプに限定されることはなく、自動車、トラック、トレーラ、および他のタイプの車両を含むあらゆるタイプの車両に適用可能であってよいことも理解されたい。
【0095】
第1の画像取り込みデバイス122は、任意の好適なタイプの画像取り込みデバイスを含んでよい。画像取り込みデバイス122は、光軸を含んでよい。一例において、画像取り込みデバイス122は、グローバルシャッタを備えたAptina製M9V024 WVGAセンサを含んでよい。他の実施形態において、画像取り込みデバイス122は、1280×960画素の解像度を提供してよく、またローリングシャッタを含んでよい。画像取り込みデバイス122は、様々な光学素子を含んでよい。いくつかの実施形態では、例えば、所望の焦点距離および視野を画像取り込みデバイスに提供するために、1つまたは複数のレンズが含まれてよい。いくつかの実施形態において、画像取り込みデバイス122は、6mmレンズまたは12mmレンズに関連してよい。いくつかの実施形態では、画像取り込みデバイス122は、
図2Dに示すように、所望の視野(FOV)202を有する画像を取り込むように構成されてよい。例えば、画像取り込みデバイス122は、46度のFOV、50度のFOV、52度のFOV、またはそれより広いFOVを含む40度~56度の範囲内といった標準のFOVを有するように構成されてよい。あるいは、画像取り込みデバイス122は、28度のFOVまたは36度のFOVといった23~40度の範囲内の狭FOVを有するように構成されてもよい。さらに、画像取り込みデバイス122は100~180度の範囲内の広FOVを有するように構成されてもよい。いくつかの実施形態において、画像取り込みデバイス122は、広角バンパーカメラ、すなわち最大180度のFOVを有するバンパーカメラを含んでよい。いくつかの実施形態において、画像取り込みデバイス122は、約2:1のアスペクト比(例えば、H×V=3800×1900画素)および約100度の水平FOVを有する7.2M画素の画像取り込みデバイスであってよい。そのような画像取り込みデバイスを、3画像取り込みデバイス構成の代わりに用いてよい。そのような画像取り込みデバイスの垂直FOVは、著しいレンズ歪みにより、画像取り込みデバイスが半径方向に対称なレンズを用いる実装例では50度より著しく小さいことがある。例えば、そのようなレンズは半径方向に対称でなくてもよく、そうすることで、100度の水平FOVで50度より大きい垂直FOVが可能になるであろう。
【0096】
第1の画像取り込みデバイス122は、車両200に関連するシーンに対して複数の第1画像を取得してよい。複数の第1画像のそれぞれは、一連の画像走査線として取得されてよく、これらの画像はローリングシャッタを用いて取り込まれてよい。各走査線は、複数の画素を含み得る。
【0097】
第1の画像取り込みデバイス122は、第1の一連の画像走査線をそれぞれ取得することに関連した走査速度を有してよい。走査速度とは、特定の走査線に含まれる各画素に関連した画像データをイメージセンサが取得できる速度を指してよい。
【0098】
画像取り込みデバイス122、124、および126は、例えば、CCDセンサまたはCMOSセンサを含む、任意の好適なタイプおよび数のイメージセンサを内蔵してよい。一実施形態では、CMOSイメージセンサがローリングシャッタと連動して使用されてよく、これにより、ある行の各画素が1つずつ読み出され、画像フレーム全体が取り込まれるまで、行の走査が行ごとに進行する。いくつかの実施形態において、各行は、フレームに対して上部から下部へと順次取り込まれてよい。
【0099】
いくつかの実施形態において、本明細書で開示する画像取り込みデバイス(例えば、画像取り込みデバイス122、124、および126)のうちの1つまたは複数は、高解像度撮像装置を構成してよく、5M画素、7M画素、10M画素、またはそれより多くの画を超える解像度を有してよい。
【0100】
ローリングシャッタを用いると、異なる行の画素が異なる時間に露光され且つ取り込まれることになり得るため、取り込まれた画像フレームにスキューおよび他の画像アーチファクトが生じる場合がある。一方、画像取り込みデバイス122がグローバルシャッタまたは同期シャッタで動作するように構成されている場合、全ての画素が同じ時間の間、共通の露光期間に露光され得る。その結果、グローバルシャッタを使用するシステムで収集されたフレームの画像データは、特定の時間におけるFOV全体(FOV202など)のスナップショットを表す。これに対して、ローリングシャッタを適用した場合には、別々の時間にフレーム内の各行が露光され、データが取り込まれる。したがって、ローリングシャッタを有する画像取り込みデバイスでは、移動する物体が歪んだように見えることがある。この現象は、以下でより詳細に説明する。
【0101】
第2の画像取り込みデバイス124および第3の画像取り込みデバイス126は、任意のタイプの画像取り込みデバイスであってよい。第1の画像取り込みデバイス122のように、画像取り込みデバイス124および126のそれぞれは光軸を含んでよい。一実施形態において、画像取り込みデバイス124および126のそれぞれは、グローバルシャッタを備えたAptina製M9V024 WVGAセンサを含んでよい。あるいは、画像取り込みデバイス124および126のそれぞれは、ローリングシャッタを含んでもよい。画像取り込みデバイス122のように、画像取り込みデバイス124および126は、様々なレンズおよび光学素子を含むように構成されてよい。いくつかの実施形態では、画像取り込みデバイス124および126に関連するレンズが、画像取り込みデバイス122に関連するFOV(FOV202など)と同じまたはそれより狭いFOV(FOV204および206など)を提供してよい。例えば、画像取り込みデバイス124および126は、40度、30度、26度、23度、20度、またはそれより狭いFOVを有してよい。
【0102】
画像取り込みデバイス124および126は、車両200に関連するシーンに対して、複数の第2画像および第3画像を取得してよい。複数の第2画像および第3画像のそれぞれは、第2および第3の一連の画像走査線として取得されてよく、これらの画像はローリングシャッタを用いて取り込まれてよい。それぞれの走査線または行は、複数の画素を含み得る。画像取り込みデバイス124および126は、第2および第3の一連の画像走査線に含まれる画像走査線のそれぞれを取得することに関連した第2走査速度および第3走査速度を有してよい。
【0103】
画像取り込みデバイス122、124、および126はそれぞれ、車両200に対して任意の好適な位置および方位で配置されてよい。画像取り込みデバイス122、124、および126の相対配置は、画像取り込みデバイスから取得される情報を融合させるのに役立つように選択されてよい。例えば、いくつかの実施形態では、画像取り込みデバイス124に関連するFOV(FOV204など)が、画像取り込みデバイス122に関連するFOV(FOV202など)および画像取り込みデバイス126に関連するFOV(FOV206など)と部分的にまたは完全に重なり合ってよい。
【0104】
画像取り込みデバイス122、124、および126は、任意の好適な相対的高さで、車両200に配置されてよい。一例において、画像取り込みデバイス122、124、および126の間には高さの違いがあってよく、これにより、ステレオ分析を可能とする十分な視差情報が提供され得る。例えば、
図2Aに示すように、2つの画像取り込みデバイス122および124の高さは異なる。例えば、画像取り込みデバイス122、124、および126の間には横方向の変位差もあってよく、これが、処理ユニット110によるステレオ分析に対して追加の視差情報を与える。横方向変位の差異は、
図2Cおよび
図2Dに示すように、d
xで表されてよい。いくつかの実施形態では、前または後ろへの変位(例えば、範囲変位)が画像取り込みデバイス122、124、および126の間に存在してよい。例えば、画像取り込みデバイス122は、画像取り込みデバイス124および/または画像取り込みデバイス126の0.5~2メートル後ろに、またはもっと後ろに位置してよい。この種の変位によって、これらの画像取り込みデバイスのうちの1つが他の画像取り込みデバイスの潜在的な死角を補うことが可能になり得る。
【0105】
画像取り込みデバイス122は、任意の好適な解像能力(例えば、イメージセンサに関連する画素数)を有してよく、画像取り込みデバイス122に関連するイメージセンサの解像度は、画像取り込みデバイス124および126に関連するイメージセンサの解像度より高くても、低くても、同じであってもよい。いくつかの実施形態において、画像取り込みデバイス122並びに/または画像取り込みデバイス124および126に関連するイメージセンサは、640×480、1024×768、1280×960の解像度、または任意の他の好適な解像度を有してよい。
【0106】
フレームレート(例えば、画像取り込みデバイスが1つの画像フレームの画素データのセットを、次の画像フレームに関連する画素データの取り込みに移る前に取得するレート)が制御可能であってよい。画像取り込みデバイス122に関連するフレームレートは、画像取り込みデバイス124および126に関連するフレームレートより高くても、低くても、同じであってもよい。画像取り込みデバイス122、124、および126に関連するフレームレートは、フレームレートのタイミングに影響を与え得る様々な要因に依存し得る。例えば、画像取り込みデバイス122、124、および126のうちの1つまたは複数が、画像取り込みデバイス122、124、および/または126に含まれるイメージセンサの1つまたは複数の画素に関連する画像データを取得する前または後に課される選択可能な画素遅延期間を含んでよい。一般に、各画素に対応する画像データは、デバイスのクロックレートに従って取得されてよい(例えば、クロックサイクルごとに1つの画素が取得されてよい)。さらに、ローリングシャッタを含む実施形態では、画像取り込みデバイス122、124、および126のうちの1つまたは複数が、画像取り込みデバイス122、124、および/または126に含まれるイメージセンサのある行の画素に関連する画像データを取得する前または後に課される選択可能な水平帰線消去期間を含んでよい。さらに、画像取り込みデバイス122、124、および/または126のうちの1つまたは複数が、画像取り込みデバイス122、124、および126の画像フレームに関連する画像データを取得する前または後に課される選択可能な垂直帰線消去期間を含んでよい。
【0107】
これらのタイミング制御は、画像取り込みデバイス122、124、および126に関連する各フレームレートの同期を、それぞれのライン走査速度が異なる場合であっても可能にし得る。さらに、以下でより詳細に論じられることになるが、これらの選択可能なタイミング制御は、いくつかある要因(例えば、イメージセンサの解像度、最大ライン走査速度など)の中でもとりわけ、画像取り込みデバイス122の視野が画像取り込みデバイス124および126のFOVと異なる場合であっても、画像取り込みデバイス122のFOVが画像取り込みデバイス124および126のうちの1つまたは複数のFOVと重なり合う領域からの画像取り込みの同期を可能にし得る。
【0108】
画像取り込みデバイス122、124、および126におけるフレームレートのタイミングが、関連するイメージセンサの解像度に依存し得る。例えば、両方のデバイスのライン走査速度が同様であると仮定すると、一方のデバイスが640×480の解像度を有するイメージセンサを含み、もう一方のデバイスが1280×960の解像度を有するイメージセンサを含む場合、高解像度を有するセンサの方が、1フレームの画像データを取得するのに必要な時間が長くかかる。
【0109】
画像取り込みデバイス122、124、および126における画像データ取得のタイミングに影響を与え得る別の要因が、最大ライン走査速度である。例えば、画像取り込みデバイス122、124、および126に含まれるイメージセンサから、ある行の画像データを取得するには、ある程度の最低限の時間が必要になる。画素遅延期間が追加されないと仮定すると、ある行の画像データを取得するためのこの最低限の時間は、特定のデバイスの最大ライン走査速度に関連することになる。高い最大ライン走査速度を提供するデバイスには、低い最大ライン走査速度を有するデバイスより高いフレームレートを提供できる可能性がある。いくつかの実施形態では、画像取り込みデバイス124および126のうちの一方または両方が、画像取り込みデバイス122に関連する最大ライン走査速度より高い最大ライン走査速度を有してよい。いくつかの実施形態において、画像取り込みデバイス124および/または126の最大ライン走査速度は、画像取り込みデバイス122の最大ライン走査速度の1.25倍、1.5倍、1.75倍、または2倍以上であってよい。
【0110】
別の実施形態において、画像取り込みデバイス122、124、および126は同じ最大ライン走査速度を有してよいが、画像取り込みデバイス122は、その最大走査速度より小さいまたはそれに等しい走査速度で動作してよい。本システムは、画像取り込みデバイス124および126のうちの一方または両方が、画像取り込みデバイス122のライン走査速度に等しいライン走査速度で動作するように構成されてよい。他の例において、本システムは、画像取り込みデバイス124および/または画像取り込みデバイス126のライン走査速度が画像取り込みデバイス122のライン走査速度の1.25倍、1.5倍、1.75倍、または2倍以上になり得るように構成されてよい。
【0111】
いくつかの実施形態において、画像取り込みデバイス122、124、および126は非対称であってよい。すなわち、これらの画像取り込みデバイスは、異なる視野(FOV)および焦点距離を有するカメラを含んでよい。画像取り込みデバイス122、124、および126の視野は、例えば、車両200の環境に対して任意の所望の領域を含んでよい。いくつかの実施形態では、画像取り込みデバイス122、124、および126のうちの1つまたは複数が、車両200の前方、車両200の後方、車両200の側方、またはその組み合わせの環境から画像データを取得するように構成されてよい。
【0112】
さらに、画像取り込みデバイス122、124、および/または126のそれぞれに関連する焦点距離は、各デバイスが車両200に対して所望の距離範囲にある物体の画像を取得するように、(例えば、適切なレンズなどを含むことによって)選択可能であってよい。例えば、いくつかの実施形態において、画像取り込みデバイス122、124、および126は、車両から数メートルの範囲内の至近距離にある物体の画像を取得してよい。画像取り込みデバイス122、124、および126は、車両からもっと遠く(例えば、25m、50m、100m、150m、またはもっと)離れている範囲の物体の画像を取得するようにも構成されてよい。さらに、画像取り込みデバイス122、124、および126の焦点距離は、1つの画像取り込みデバイス(例えば、画像取り込みデバイス122)が車両に比較的近い(例えば、10mの範囲内、または20mの範囲内の)物体の画像を取得でき、他の画像取り込みデバイス(例えば、画像取り込みデバイス124および126)が車両200からもっと遠く(例えば、20m、50m、100m、150mを超えるなど)にある物体の画像を取得できるように選択されてよい。
【0113】
いくつかの実施形態によれば、1つまたは複数の画像取り込みデバイス122、124、および126のFOVは広角であってよい。例えば、140度のFOVを有することは、車両200に近い領域の画像を取り込むのに用いられ得る画像取り込みデバイス122、124、および126に取っては特に有利になり得る。例えば、画像取り込みデバイス122は、車両200の右側または左側の領域の画像を取り込むのに用いられてよく、そのような実施形態では、画像取り込みデバイス122が広FOV(例えば、少なくとも140度)を有することが望ましいかもしれない。
【0114】
画像取り込みデバイス122、124、および126のそれぞれに関連する視野は、それぞれの焦点距離に依存し得る。例えば、焦点距離が増加すると、対応する視野は減少する。
【0115】
画像取り込みデバイス122、124、および126は、任意の好適な視野を有するように構成されてよい。1つの特定例において、画像取り込みデバイス122は46度の水平FOVを有してよく、画像取り込みデバイス124は23度の水平FOVを有してよく、画像取り込みデバイス126は23度~46度の間の水平FOVを有してよい。別の例において、画像取り込みデバイス122は52度の水平FOVを有してよく、画像取り込みデバイス124は26度の水平FOVを有してよく、画像取り込みデバイス126は26度~52度の間の水平FOVを有してよい。いくつかの実施形態では、画像取り込みデバイス122のFOVと、画像取り込みデバイス124および/または画像取り込みデバイス126のFOVとの比率が、1.5から2.0まで変化し得る。他の実施形態では、この比率が1.25~2.25の間で変化し得る。
【0116】
システム100は、画像取り込みデバイス122の視野が画像取り込みデバイス124および/または画像取り込みデバイス126の視野と少なくとも部分的に、または完全に重なり合うように構成されてよい。いくつかの実施形態において、システム100は、例えば、画像取り込みデバイス124および126の視野が画像取り込みデバイス122の視野に含まれ(例えば、画像取り込みデバイス122の視野より狭い)、画像取り込みデバイス122の視野と共通の中心を共有するように構成されてよい。他の実施形態において、画像取り込みデバイス122、124、および126は、隣接するFOVを取り込んでもよく、それぞれのFOVの中に部分的な重複を有してもよい。いくつかの実施形態において、画像取り込みデバイス122、124、および126の視野は、狭FOVの画像取り込みデバイス124および/または126の中心が広FOVのデバイス122の視野の下半分に位置し得るように揃えられてよい。
【0117】
図2Fは、開示する実施形態と矛盾しない例示的な車両制御システムの概略図である。
図2Fに示すように、車両200は、スロットル装置220と、ブレーキ装置230と、操縦装置240とを含んでよい。システム100は、スロットル装置220、ブレーキ装置230、および操縦装置240のうちの1つまたは複数に、1つまたは複数のデータリンク(例えば、データ送信用の1つまたは複数の任意の有線リンクおよび/または無線リンク)を介して入力(例えば、制御信号)を提供してよい。例えば、画像取り込みデバイス122、124、および/または126が取得した画像の分析に基づいて、システム100は、スロットル装置220、ブレーキ装置230、および操縦装置240のうちの1つまたは複数に制御信号を提供して、(例えば、加速、旋回、車線移動などを引き起こすことにより)車両200をナビゲートしてよい。さらに、システム100は、スロットル装置220、ブレーキ装置230、および操縦装置240のうちの1つまたは複数から、車両200の動作状態(例えば、速度、車両200がブレーキをかけているかどうかおよび/または旋回しているかどうかなど)を示す入力を受信してよい。さらなる詳細を、
図4~
図7に関連して以下に提供する。
【0118】
図3Aに示すように、車両200は、車両200の運転者または乗員と対話するためのユーザインタフェース170も含んでよい。例えば、車両アプリケーションのユーザインタフェース170は、タッチスクリーン320、つまみ330、ボタン340、およびマイク350を含んでよい。車両200の運転者または乗員は、レバー(例えば、車両200のステアリングコラムに、またはその近くに位置し、例えば方向指示器レバーを含む)およびボタン(例えば、車両200のハンドルに位置している)なども用いて、システム100と対話してよい。いくつかの実施形態において、マイク350はバックミラー310に隣接して配置されてよい。同様に、いくつかの実施形態において、画像取り込みデバイス122はバックミラー310の近くに配置されてよい。いくつかの実施形態において、ユーザインタフェース170は、1つまたは複数のスピーカ360(例えば、車両オーディオシステムのスピーカ)も含んでよい。例えば、システム100は、スピーカ360を介して様々な通知(例えば、アラート)を提供してよい。
【0119】
図3B~
図3Dは、開示する実施形態と矛盾しない、バックミラー(例えば、バックミラー310)の背後に車両のフロントガラスに接触して配置されるように構成された、例示的なカメラマウント370の図である。
図3Bに示すように、カメラマウント370には、画像取り込みデバイス122、124、および126が含まれてよい。画像取り込みデバイス124および126は、グレアシールド380の背後に配置されてよく、このグレアシールドは、車両のフロントガラスに直接張り付き、フィルム材料および/または反射防止材料の構成物を含んでよい。例えば、グレアシールド380は、同じ傾斜を有する車両のフロントガラスに当該シールドが接触して揃うように配置されてよい。いくつかの実施形態において、画像取り込みデバイス122、124、および126はそれぞれ、例えば
図3Dに示すように、グレアシールド380の背後に配置されてよい。開示する実施形態は、画像取り込みデバイス122、124、および126、カメラマウント370、並びにグレアシールド380のいかなる特定の構成にも限定されない。
図3Cは、
図3Bに示すカメラマウント370を正面から見た図である。
【0120】
本開示の恩恵を受ける当業者であれば理解するであろうが、前述の開示した実施形態に対して、多数の変形および/または変更を行うことができる。例えば、全ての構成要素がシステム100の動作に不可欠であるわけではない。さらに、いかなる構成要素もシステム100の任意の適切な部分に配置されてよく、これらの構成要素は、開示した実施形態の機能性を提供すると共に、様々な構成に再配置されてよい。したがって、前述の構成は例であり、上述した構成に関係なく、システム100は幅広い機能性を提供して、車両200の周囲にあるものを分析し、その分析に応答して車両200をナビゲートすることができる。
【0121】
以下でさらに詳細に論じるように、また開示する様々な実施形態と矛盾しないように、システム100は、自動運転および/または運転者支援技術に関連する様々な機能を提供することができる。例えば、システム100は、画像データ、位置データ(例えば、GPSによる位置情報)、マップデータ、速度データ、および/または、車両200に含まれるセンサからのデータを分析することができる。システム100は、例えば、画像取得ユニット120、位置センサ130、および他のセンサから、分析用のデータを収集することができる。さらに、システム100は、収集したデータを分析して、車両200が何らかの動作を起こすべきかどうかを判定し、判定された動作を人の介在なしに自動的に起こすことができる。例えば、車両200が人の介在なしにナビゲートする場合、システム100は、(例えば、スロットル装置220、ブレーキ装置230、および操縦装置240のうちの1つまたは複数に制御信号を送ることにより)車両200のブレーキ、加速、および/または操縦を自動的に制御することができる。さらに、システム100は、収集したデータを分析し、収集したデータの分析に基づいて、警告および/またはアラートを車両の乗員に発することができる。システム100により提供される様々な実施形態に関するさらなる詳細を、以下に提供する。
【0122】
[前面マルチ撮像システム]
【0123】
上述したように、システム100は、マルチカメラシステムを用いる運転支援機能を提供することができる。マルチカメラシステムは、車両の前進方向を向いている1つまたは複数のカメラを用いてよい。他の実施形態において、マルチカメラシステムは、車両の側方または車両の後方を向いている1つまたは複数のカメラを含んでよい。一実施形態において、例えば、システム100は、2カメラ方式の撮像システムを用いてよく、このシステムでは、第1カメラおよび第2カメラ(例えば、画像取り込みデバイス122および124)が車両(例えば、車両200)の前部および/または両側面に配置されてよい。第1カメラは、第2カメラの視野より大きい視野、第2カメラの視野より小さい視野、または第2カメラの視野と部分的に重なり合っている視野を有してよい。さらに、第1カメラは、第1カメラにより提供される画像の単眼画像分析を行う第1画像プロセッサに接続されてよく、第2カメラは、第2カメラにより提供される画像の単眼画像分析を行う第2画像プロセッサに接続されてよい。第1画像プロセッサおよび第2画像プロセッサの出力(例えば、処理された情報)は組み合わされてよい。いくつかの実施形態において、第2画像プロセッサは、第1カメラおよび第2カメラの両方から画像を受信して、ステレオ分析を行ってよい。別の実施形態において、システム100は、各カメラが異なる視野を有する3カメラ方式の撮像システムを用いてよい。したがって、そのようなシステムでは、車両の前部および両側部の両方に対して様々な距離に位置する物体から得られた情報に基づいて判定を行うことができる。単眼画像分析への言及は、単一の視点から(例えば、単一のカメラから)取り込まれた画像に基づいて画像分析を行う場合を意味し得る。ステレオ画像分析とは、画像取り込みパラメータの1つまたは複数の変化を伴って取り込まれた2つ以上の画像に基づいて画像分析を行う場合を意味し得る。例えば、ステレオ画像分析を行うのに好適な取り込み画像には、2つ以上の異なる位置から取り込まれた画像、異なる視野から取り込まれた画像、異なる焦点距離を用いて取り込まれた画像、視差情報と共に取り込まれた画像などが含まれてよい。
【0124】
例えば、一実施形態において、システム100は、画像取り込みデバイス122、124、および126を用いる3カメラ構成を実施してよい。そのような構成において、画像取り込みデバイス122は狭い視野(例えば、34度、または約20~45度の範囲から選択した他の値など)を提供してよく、画像取り込みデバイス124は広い視野(例えば、150度、または約100~約180度の範囲から選択した他の値)を提供してよく、画像取り込みデバイス126は中間の視野(例えば、46度、または約35~約60度の範囲から選択した他の値)を提供してよい。いくつかの実施形態において、画像取り込みデバイス126は、メインカメラまたは主カメラとしての役割を果たし得る。画像取り込みデバイス122、124、および126は、バックミラー310の背後に配置され、且つ実質的に横並びで(例えば、6cm離れて)配置されてよい。さらに、いくつかの実施形態では上述したように、画像取り込みデバイス122、124、および126のうちの1つまたは複数が、車両200のフロントガラスと同一平面にあるグレアシールド380の背後に取り付けられてよい。そのようなシールドは、画像取り込みデバイス122、124、および126に対する、自動車の内側からのいかなる反射の影響も最小限に抑えるように作用し得る。
【0125】
別の実施形態では、
図3Bおよび
図3Cに関連して上述したように、広視野カメラ(例えば、上の例では画像取り込みデバイス124)は、狭視野カメラおよびメイン視野カメラ(例えば、上の例では画像デバイス122および126)より低く取り付けられてよい。この構成により、広視野カメラからの自由な視線が提供され得る。反射を低減するために、カメラは、車両200のフロントガラスに近いところに取り付けられてよく、カメラには反射光を減衰させるために偏光板が含まれてよい。
【0126】
3カメラシステムが、特定の性能特性を提供し得る。例えば、いくつかの実施形態は、あるカメラによる物体の検出を別のカメラの検出結果に基づいて確認する機能を含んでよい。上述した3カメラ構成において、処理ユニット110は、例えば、3つの処理デバイス(例えば上述したような、EyeQシリーズの3つのプロセッサチップ)を含んでよく、各処理デバイスは、画像取り込みデバイス122、124、および126のうちの1つまたは複数により取り込まれた画像の処理に特化している。
【0127】
3カメラシステムでは、第1処理デバイスがメインカメラおよび狭視野カメラの両方から画像を受信し、狭FOVカメラによるビジョン処理を行って、例えば、他の車両、歩行者、車線標示、交通標識、信号機、および他の道路地物を検出してよい。さらに、第1処理デバイスは、メインカメラおよび狭視野カメラからの画像同士の画素の視差を計算し、車両200の環境の3D復元図を作成してよい。第1処理デバイスは次に、3D復元図と、3Dマップデータまたは別のカメラからの情報に基づいて計算した3D情報とを組み合わせてよい。
【0128】
第2処理デバイスは、メインカメラから画像を受信してビジョン処理を行い、他の車両、歩行者、車線標示、交通標識、信号機、および他の道路地物を検出してよい。さらに、第2処理デバイスは、カメラ変位を計算し、その変位に基づいて、連続する画像間の画素の視差を計算して、シーンの3D復元図(例えば、structure from motion:SfM)を作成してよい。第2処理デバイスは、ステレオ3D画像と組み合わされるSfMベースの3D復元図を第1処理デバイスに送ってよい。
【0129】
第3処理デバイスは、広FOVのカメラから画像を受信し、その画像を処理して、車両、歩行者、車線標示、交通標識、信号機、および他の道路地物を検出してよい。第3処理デバイスはさらに、追加の処理命令を実行し、画像を分析して、車線を変更する車両、歩行者などといった画像内を移動する物体を識別してよい。
【0130】
いくつかの実施形態では、画像ベースの情報のストリームが独立して取り込まれ且つ処理されるようにすることで、システムに冗長性をもたらす機会が提供され得る。そのような冗長性には、例えば、第1の画像取り込みデバイスおよび当該デバイスからの処理された画像を用いて、少なくとも第2の画像取り込みデバイスからの画像情報を取り込んで処理することにより取得された情報を確認する且つ/または補足することが含まれてよい。
【0131】
いくつかの実施形態において、システム100は、車両200にナビゲーション支援を提供する際に、2つの画像取り込みデバイス(例えば、画像取り込みデバイス122および124)を用いてよく、また第3の画像取り込みデバイス(例えば、画像取り込みデバイス126)を用いて、冗長性を提供し、他の2つの画像取り込みデバイスから受信したデータの分析を確認してよい。例えば、そのような構成において、画像取り込みデバイス122および124は、車両200をナビゲートするために、システム100によるステレオ分析用に画像を提供してよく、画像取り込みデバイス126は、システム100による単眼分析用に画像を提供して、画像取り込みデバイス122および/または画像取り込みデバイス124から取り込まれた画像に基づいて取得された情報の冗長性および有効性を提供してよい。すなわち、画像取り込みデバイス126(および対応する処理デバイス)は、画像取り込みデバイス122および124から得られた分析に対してチェックを提供するための冗長サブシステムを提供する(例えば、自動緊急ブレーキ(AEB)システムを提供する)とみなされてよい。さらに、いくつかの実施形態では、受信したデータの冗長性および有効性が、1または複数のセンサから受信した情報(例えば、レーダ、LiDAR、音響センサ、車両の外側にある1つまたは複数の送受信機から受信した情報など)に基づいて補足されてよい。
【0132】
当業者であれば、上記のカメラ構成、カメラの配置、カメラの数、カメラの位置などは、単なる例であることを認識するであろう。全体的なシステムに対して説明されたこれらの構成要素などは、開示する実施形態の範囲から逸脱することなく、様々な異なる構成で編成され且つ用いられてよい。運転者支援および/または自動運転車機能を提供するマルチカメラシステムの使用に関するさらなる詳細が以下に続く。
【0133】
図4は、メモリ140および/または150の例示的な機能ブロック図であり、これらは、開示する実施形態と矛盾しない1つまたは複数の動作を行うための命令と共に格納され/プログラムされてよい。以下ではメモリ140を参照するが、当業者であれば、命令がメモリ140および/または150に格納され得ることを認識するであろう。
【0134】
図4に示すように、メモリ140は、単眼画像分析モジュール402、ステレオ画像分析モジュール404、速度加速度モジュール406、およびナビゲーション応答モジュール408を格納してよい。開示する実施形態は、メモリ140のいかなる特定の構成にも限定されない。さらに、アプリケーションプロセッサ180および/または画像プロセッサ190は、メモリ140に含まれるモジュール402、404、406、および408のうちのいずれかに格納された命令を実行してよい。当業者であれば、以下の説明における処理ユニット110への言及が、アプリケーションプロセッサ180および画像プロセッサ190を個々にまたは集合的に指し得ることを理解するであろう。したがって、以下のプロセスのうちのいずれかの各段階が、1つまたは複数の処理デバイスによって行われてよい。
【0135】
一実施形態において、単眼画像分析モジュール402は命令(コンピュータビジョンソフトウェアなど)を格納してよく、この命令は、処理ユニット110により実行されると、画像取り込みデバイス122、124、および126のうちの1つによって取得された画像のセットの単眼画像分析を行う。いくつかの実施形態において、処理ユニット110は、画像のセットからの情報と、追加の知覚情報(例えば、レーダ、LiDARなどからの情報)とを組み合わせて単眼画像分析を行ってよい。
図5A~
図5Dに関連して以下に説明するように、単眼画像分析モジュール402は、画像のセット内にある、例えば、車線標示、車両、歩行者、道路標識、高速道路出口ランプ、信号機、危険物、および車両の環境に関連する任意の他の特徴といった特徴のセットを検出するための命令を含んでよい。分析に基づいて、システム100(例えば、処理ユニット110)は、ナビゲーション応答モジュール408に関連して以下で論じるように、車両200において1つまたは複数のナビゲーション応答、例えば、旋回、車線移動、および加速の変更などを生じさせてよい。
【0136】
一実施形態において、ステレオ画像分析モジュール404は命令(コンピュータビジョンソフトウェアなど)を格納してよく、この命令は、処理ユニット110により実行されると、画像取り込みデバイス122、124、および126のうちのいずれかから選択された画像取り込みデバイスの組み合わせにより取得された第1セットおよび第2セットの画像のステレオ画像分析を行う。いくつかの実施形態において、処理ユニット110は、第1セットおよび第2セットの画像からの情報と、追加の知覚情報(例えば、レーダからの情報)とを組み合わせて、ステレオ画像分析を行ってよい。例えば、ステレオ画像分析モジュール404は、画像取り込みデバイス124により取得された第1セットの画像と、画像取り込みデバイス126により取得された第2セットの画像とに基づいて、ステレオ画像分析を行うための命令を含んでよい。
図6に関連して以下で説明するように、ステレオ画像分析モジュール404は、第1セットおよび第2セットの画像内にある、例えば、車線標示、車両、歩行者、道路標識、高速道路出口ランプ、信号機、および危険物などといった特徴のセットを検出するための命令を含んでよい。分析に基づいて、処理ユニット110は、ナビゲーション応答モジュール408に関連して以下で論じるように、車両200において1つまたは複数のナビゲーション応答、例えば、旋回、車線移動、および加速の変更などを生じさせてよい。さらに、いくつかの実施形態において、ステレオ画像分析モジュール404は、訓練システム(ニューラルネットワークまたはディープニューラルネットワークなど)または未訓練システム(コンピュータビジョンアルゴリズムを用いて、知覚情報が取り込まれて処理された環境内の物体を検出する且つ/またはラベルを付けるように構成され得るシステムなど)に関連する手法を実施してよい。一実施形態において、ステレオ画像分析モジュール404および/または他の画像処理モジュールは、訓練システムと未訓練システムとの組み合わせを用いるように構成されてよい。
【0137】
一実施形態において、速度加速度モジュール406は、車両200内の1つまたは複数のコンピューティング電気機械的デバイスであって、車両200の速度および/または加速度に変化を起こさせるように構成された1つまたは複数のコンピューティング電気機械的デバイスから受信したデータを分析するように構成されたソフトウェアを格納してよい。例えば、処理ユニット110は、速度加速度モジュール406に関連する命令を実行し、単眼画像分析モジュール402および/またはステレオ画像分析モジュール404の実行から得られたデータに基づいて、車両200の目標速度を計算してよい。そのようなデータには、例えば、目標位置、速度および/または加速度、近くの車両、歩行者、または道路地物に対する車両200の位置および/または速度、並びに道路の車線標示に対する車両200の位置情報などが含まれてよい。さらに、処理ユニット110は、知覚入力(例えば、レーダからの情報)と、車両200の他のシステム、例えば、車両200のスロットル装置220、ブレーキ装置230、および/または操縦装置240からの入力とに基づいて、車両200の目標速度を計算してよい。計算した目標速度に基づいて、処理ユニット110は、車両200のスロットル装置220、ブレーキ装置230、および/または操縦装置240に電子信号を送信し、例えば、車両200のブレーキを物理的に踏み込むか、またはアクセルを緩めることにより、速度および/または加速度の変化を引き起こしてよい。
【0138】
一実施形態において、ナビゲーション応答モジュール408は、処理ユニット110が単眼画像分析モジュール402および/またはステレオ画像分析モジュール404の実行から得られたデータに基づいて所望のナビゲーション応答を決定するように実行可能なソフトウェアを格納してよい。そのようなデータには、近くの車両、歩行者、および道路地物に関連する位置情報および速度情報、並びに車両200の目標位置情報などが含まれてよい。さらに、いくつかの実施形態において、ナビゲーション応答は、マップデータ、車両200の所定の位置、並びに/または車両200と単眼画像分析モジュール402および/もしくはステレオ画像分析モジュール404の実行から検出された1つまたは複数の物体との間の相対速度または相対加速度に(部分的にまたは完全に)基づいてよい。ナビゲーション応答モジュール408は、知覚入力(例えば、レーダからの情報)と車両200の他のシステム(車両200のスロットル装置220、ブレーキ装置230、および/または操縦装置240など)からの入力とに基づいて、所望のナビゲーション応答を決定してもよい。所望のナビゲーション応答に基づいて、処理ユニット110は、車両200のスロットル装置220、ブレーキ装置230、および操縦装置240に電子信号を送信し、例えば、車両200のハンドルを回して所定の角度の回転を達成することにより、所望のナビゲーション応答を引き起こしてよい。いくつかの実施形態において、処理ユニット110は、ナビゲーション応答モジュール408の出力(例えば、所望のナビゲーション応答)を、車両200の速度の変化を計算するために速度加速度モジュール406を実行するための入力として用いてよい。
【0139】
さらに、本明細書で開示するモジュール(例えば、モジュール402、404、および406)のうちのいずれかが、訓練システム(ニューラルネットワークまたはディープニューラルネットワークなど)または未訓練システムに関連する手法を実施してよい。
【0140】
図5Aは、開示する実施形態と矛盾しない、単眼画像分析に基づいて1つまたは複数のナビゲーション応答を発生させるための、例示的なプロセス500Aを示すフローチャートである。段階510において、処理ユニット110が処理ユニット110と画像取得ユニット120との間のデータインタフェース128を介して複数の画像を受信してよい。例えば、画像取得ユニット120に含まれるカメラ(視野202を有する画像取り込みデバイス122など)が、車両200の前方(または、例えば車両の側方または後方)の領域についての複数の画像を取り込み、これらの画像をデータ接続(例えば、デジタル、有線、USB、無線、Bluetoothなど)を介して処理ユニット110に送信してよい。処理ユニット110は、
図5B~
図5Dに関連して以下でさらに詳細に説明されるように、段階520で、単眼画像分析モジュール402を実行して複数の画像を分析してよい。分析を行うことで、処理ユニット110は、画像のセット内の特徴のセット、例えば、車線標示、車両、歩行者、道路標識、高速道路出口ランプ、および信号機などを検出してよい。
【0141】
処理ユニット110は、段階520において、単眼画像分析モジュール402を実行して、例えば、トラックのタイヤの一部、落下した道路標識、緩んだ貨物、および小動物などといった様々な道路障害物も検出してよい。道路障害物は、構造、形状、サイズ、および色が異なり得るため、そのような危険要素の検出が難しいものになる場合がある。いくつかの実施形態において、処理ユニット110は、単眼画像分析モジュール402を実行して、複数の画像に対してマルチフレーム分析を行い、道路障害物を検出してよい。例えば、処理ユニット110は、連続した画像フレーム間のカメラの動きを推定し、フレーム間の画素の視差を計算して道路の3Dマップを構築してよい。処理ユニット110は次に、3Dマップを用いて、路面と路面上に存在する危険要素とを検出してよい。
【0142】
段階530において、処理ユニット110は、ナビゲーション応答モジュール408を実行して、段階520で行われた分析と
図4に関連して上述した手法とに基づき、車両200において1つまたは複数のナビゲーション応答を発生させてよい。ナビゲーション応答には、例えば、旋回、車線移動、および加速度の変更などが含まれてよい。いくつかの実施形態において、処理ユニット110は、速度加速度モジュール406の実行から得られたデータを用いて、1つまたは複数のナビゲーション応答を発生させてよい。さらに、複数のナビゲーション応答が同時に、順番に、またはそのあらゆる組み合わせで生じてよい。例えば、処理ユニット110は、例えば、車両200の操縦装置240およびスロットル装置220に制御信号を順次送信することにより、車両200を、1つの車線を横切って移動させた後に加速させることができる。あるいは、処理ユニット110は、例えば、車両200のブレーキ装置230および操縦装置240に制御信号を同時に送信することにより、車両200にブレーキをかけさせながら、同時に車線を移動させることができる。
【0143】
図5Bは、開示する実施形態と矛盾しない、画像のセットに含まれる1つもしくは複数の車両および/または1人もしくは複数の歩行者を検出するための、例示的なプロセス500Bを示すフローチャートである。処理ユニット110は、単眼画像分析モジュール402を実行して、プロセス500Bを実施してよい。段階540において、処理ユニット110は、可能性のある車両および/または歩行者を表す候補物体のセットを決定してよい。例えば、処理ユニット110は、1つまたは複数の画像をスキャンし、その画像と1つまたは複数の所定のパターンとを比較し、関心のある物体(例えば、車両、歩行者、またはその一部)を含み得る、可能性のある場所を各画像内で識別してよい。所定のパターンは、高確率の「誤検知(false hit)」および低確率の「見逃し(miss)」を達成するようなやり方で設計されてよい。例えば、処理ユニット110は、可能性のある車両または歩行者として候補物体を識別するために、所定のパターンとの類似性に低い閾値を用いてよい。そうすることで、処理ユニット110が車両または歩行者を表す候補物体を見逃す(例えば、識別しない)確率を低減することが可能になり得る。
【0144】
段階542では、処理ユニット110は、候補物体のセットをフィルタにかけて、分類基準に基づいて特定の候補(例えば、無関係または関連性があまりない物体)を排除してよい。そのような基準は、データベース(例えば、メモリ140に格納されたデータベース)に格納された物体のタイプに関連する様々な特性から得られてよい。これらの特性には、物体の形状、寸法、テクスチャ、および位置(例えば、車両200に対する位置)などが含まれてよい。したがって、処理ユニット110は、1つまたは複数のセットの基準を用いて、候補物体のセットから間違った候補を排除してよい。
【0145】
段階544では、処理ユニット110は、画像の複数のフレームを分析して、候補物体のセットに含まれる物体が車両および/または歩行者を表しているかどうかを判定してよい。例えば、処理ユニット110は、検出された候補物体を連続したフレーム全体を通して追跡し、検出された物体に関連するフレームごとのデータ(例えば、サイズ、車両200に対する位置など)を累積してよい。さらに、処理ユニット110は、検出された物体のパラメータを推定し、当該物体のフレームごとの位置データと、予測した位置とを比較してよい。
【0146】
段階546では、処理ユニット110は、検出された物体の測定値のセットを構築してよい。そのような測定値には、例えば、検出された物体に関連する(車両200に対する)位置、速度、および加速度の値が含まれてよい。いくつかの実施形態において、処理ユニット110は、カルマンフィルタもしくは線形2次推定(LQE)などの一連の時間ベースの観測結果を用いる推定手法に基づいて、且つ/または様々な物体のタイプ(例えば、自動車、トラック、歩行者、自転車、道路標識など)に利用可能なモデル化データに基づいて、測定値を構築してよい。カルマンフィルタは、物体のスケールの測定値に基づいてよく、スケール測定値は、衝突までの時間(例えば、車両200が物体に到達するまでの時間)に比例する。したがって、段階540~546を行うことで、処理ユニット110は、取り込んだ画像のセット内に現れる車両および歩行者を識別し、その車両および歩行者に関連する情報(例えば、位置、速度、サイズ)を得ることができる。この識別および得られた情報に基づいて、処理ユニット110は、
図5Aに関連して上で説明したように、車両200において1つまたは複数のナビゲーション応答を発生させることができる。
【0147】
段階548では、処理ユニット110は、「誤検知」を検出する確率と、車両または歩行者を表す候補物体を見逃す確率とを低減するために、1つまたは複数の画像のオプティカルフロー分析を行ってよい。オプティカルフロー分析とは、例えば、他の車両および歩行者に関連する1つまたは複数の画像における、車両200に対する動きパターンの分析を指してよく、この動きパターンは路面の動きとは異なる。処理ユニット110は、様々な時間に取り込まれた複数の画像フレーム全体を通して、物体の様々な位置を観測することにより、候補物体の動きを計算してよい。処理ユニット110は、位置および時間の値を、候補物体の動きを計算する数学モデルへの入力として用いてよい。したがって、オプティカルフロー分析は、車両200の近くにいる車両および歩行者を検出する別の方法を提供し得る。処理ユニット110は、段階540~546と組み合わせてオプティカルフロー分析を行い、車両および歩行者の検出に冗長性を与え、システム100の信頼性を高めることができる。
【0148】
図5Cは、開示する実施形態と矛盾しない、画像のセットに含まれる道路標示および/または車線の幾何構造情報を検出するための、例示的なプロセス500Cを示すフローチャートである。処理ユニット110は、単眼画像分析モジュール402を実行して、プロセス500Cを実施してよい。段階550において、処理ユニット110は、1つまたは複数の画像をスキャンすることで、物体のセットを検出してよい。車線標示、車線の幾何構造情報、および他の関連する道路標示のセグメントを検出するために、処理ユニット110は、物体のセットをフィルタにかけて、無関係であると判定されたもの(例えば、小さいくぼみ、小石など)を排除してよい。段階552において、処理ユニット110は、段階550で検出された、同じ道路標示または車線標示に属するセグメントを一緒にグループ化してよい。このグループ化に基づいて、処理ユニット110は、検出されたセグメントを表す数学モデルなどのモデルを発展させてよい。
【0149】
段階554において、処理ユニット110は、検出されたセグメントに関連する測定値のセットを構築してよい。いくつかの実施形態において、処理ユニット110は、検出されたセグメントの、画像平面から実際の平面上への投影図を作成してよい。この投影図は、検出された道路の位置、傾き、曲率、および曲率微分などの物理的特性に対応する係数を有する3次多項式を用いることを特徴とし得る。投影図を生成する際に、処理ユニット110は、路面の変化、および車両200に関連するピッチレートおよびロールレートを考慮してよい。さらに、処理ユニット110は、位置および路面上に存在するモーションキューを分析することで、道路標高をモデル化してよい。さらに、処理ユニット110は、1つまたは複数の画像内の特徴点のセットを追跡することにより、車両200に関連するピッチレートおよびロールレートを推定してよい。
【0150】
段階556において、処理ユニット110は、例えば、検出されたセグメントを連続した画像フレーム全体を通して追跡して、検出されたセグメントに関連するフレームごとのデータを累積することにより、マルチフレーム分析を行ってよい。処理ユニット110がマルチフレーム分析を行うと、段階554で構築された測定値のセットは、より信頼できるようになり、次第に高い信頼度に関連づけられるようになるであろう。したがって、段階550、552、554、および556を行うことで、処理ユニット110は、取り込んだ画像のセット内に現れる道路標示を識別し、車線の幾何構造情報を得ることができる。この識別および得られた情報に基づいて、処理ユニット110は、
図5Aに関連して上で説明したように、車両200において1つまたは複数のナビゲーション応答を発生させることができる。
【0151】
段階558において、処理ユニット110は、車両200の安全モデルを、その周囲にあるものとの関連でさらに発展させるために、追加の情報源を考慮してよい。処理ユニット110は、安全モデルを用いて、システム100が車両200の自動制御を安全な方式で実行し得る状況を定義してよい。安全モデルを発展させるために、いくつかの実施形態において、処理ユニット110は、他の車両の位置および動き、検出された道路エッジおよび道路障壁、並びに/またはマップデータ(マップデータベース160のデータなど)から抽出された一般的な道路形状描写を考慮してよい。追加の情報源を考慮することで、処理ユニット110は、道路標示および車線の幾何構造の検出に冗長性を与え、システム100の信頼性を高めることができる。
【0152】
図5Dは、開示する実施形態と矛盾しない、画像のセットに含まれる信号機を検出するための、例示的なプロセス500Dを示すフローチャートである。処理ユニット110は、単眼画像分析モジュール402を実行して、プロセス500Dを実施してよい。段階560において、処理ユニット110は、画像のセットをスキャンして、信号機を含む可能性がある画像内の位置に現れる物体を識別してよい。例えば、処理ユニット110は、候補物体のセットを構築するために、識別した物体をフィルタにかけて、信号機に対応する可能性が低い物体を排除してよい。このフィルタリングは、形状、寸法、テクスチャ、および位置(例えば、車両200に対する位置)などといった、信号機に関連する様々な特性に基づいて行われてよい。そのような特性は、信号機および交通管制信号の複数の例に基づいてよく、データベースに格納されてよい。いくつかの実施形態において、処理ユニット110は、可能性のある信号機を反映した候補物体のセットに対してマルチフレーム分析を行ってよい。例えば、処理ユニット110は、連続した画像フレーム全体を通して候補物体を追跡し、候補物体の実際の位置を推定し、移動している物体(信号機である可能性が低い物体)を除外してよい。いくつかの実施形態において、処理ユニット110は、候補物体に対して色分析を行い、可能性のある信号機の内側に現れる検出された色の相対位置を識別してよい。
【0153】
段階562において、処理ユニット110は、交差点の幾何構造を分析してよい。この分析は、(i)車両200の両側で検出された車線の数、(ii)道路上で検出された標示(矢印標示など)、および(iii)マップデータ(マップデータベース160のデータなど)から抽出された交差点の記述のあらゆる組み合わせに基づいてよい。処理ユニット110は、単眼分析モジュール402の実行から得られた情報を用いて分析を行ってよい。さらに、処理ユニット110は、段階560で検出された信号機と車両200の近くに現れる車線との対応関係を特定してよい。
【0154】
車両200が交差点に近づくと、段階564において、処理ユニット110は、分析した交差点の幾何構造と検出された信号機とに関連する信頼度を更新してよい。例えば、交差点に現れると推定した信号機の数は、交差点に実際に現れる数と比較すると、信頼度に影響を与え得る。したがって、信頼度に基づいて、処理ユニット110は、安全条件を向上させるために、制御権を車両200の運転者に委ねてよい。段階560、562、および564を行うことで、処理ユニット110は、取り込んだ画像のセット内に現れる信号機を識別し、交差点の幾何構造情報を分析してよい。この識別および分析に基づいて、処理ユニット110は、
図5Aに関連して上で説明したように、車両200において1つまたは複数のナビゲーション応答を発生させることができる。
【0155】
図5Eは、開示する実施形態と矛盾しない、車両経路に基づいて車両200において1つまたは複数のナビゲーション応答を発生させるための、例示的なプロセス500Eを示すフローチャートである。段階570において、処理ユニット110は、車両200に関連する初期車両経路を構築してよい。この車両経路は、座標(x,z)で表現される点のセットを用いて表されてよく、これらの点のセット内の2点間の距離d
iは、1~5メートルの範囲に含まれ得る。一実施形態において、処理ユニット110は、2つの多項式、例えば、左右の道路多項式を用いて初期車両経路を構築してよい。処理ユニット110は、2つの多項式間の幾何中点を計算し、オフセットがもしあれば(ゼロのオフセットは車線の中央を走行していることに対応し得る)、結果として生じる車両経路に含まれる各点を所定のオフセット(例えば、スマート車線オフセット)だけずらしてよい。このオフセットは、車両経路内の任意の2点間のセグメントに対して垂直な方向に存在し得る。別の実施形態において、処理ユニット110は、1つの多項式と推定した車線幅とを用いて、車両経路の各点を、推定した車線幅の半分に所定のオフセット(例えば、スマート車線オフセット)を加えた分だけずらしてよい。
【0156】
段階572において、処理ユニット110は、段階570で構築した車両経路を更新してよい。処理ユニット110は、段階570で構築した車両経路を高い解像度を用いて再構築してよく、これにより、車両経路を表す点のセット内の2点間の距離dkは上述した距離diより小さくなる。例えば、距離dkは、0.1~0.3メートルの範囲に含まれ得る。処理ユニット110は、放物線スプラインアルゴリズムを用いて車両経路を再構築してよく、これにより、車両経路の全長に対応する(すなわち、車両経路を表す点のセットに基づく)累積距離ベクトルSがもたらされ得る。
【0157】
段階574において、処理ユニット110は、段階572で構築した更新後の車両経路に基づいて、(座標(xl,zl)として表現される)ルックアヘッド点を決定してよい。処理ユニット110は累積距離ベクトルSからルックアヘッド点を抽出してよく、ルックアヘッド点はルックアヘッド距離およびルックアヘッド時間に関連づけられてよい。ルックアヘッド距離は、10~20メートルの範囲にある下限値を有してよく、車両200の速度とルックアヘッド時間との積として計算されてよい。例えば、車両200の速度が低下すると、ルックアヘッド距離も(例えば、下限値に到達するまで)減少し得る。ルックアヘッド時間は、0.5~1.5秒の範囲にあってよく、車両200においてナビゲーション応答を発生させることに関連する1つまたは複数の制御ループ(方位誤差追跡制御ループなど)のゲインに反比例し得る。例えば、方位誤差追跡制御ループのゲインは、ヨーレートループの帯域幅、ステアリングアクチュエータループ、および自動車の横方向の力学などに依存し得る。したがって、方位誤差追跡制御ループのゲインが高いほど、ルックアヘッド時間が短くなる。
【0158】
段階576において、処理ユニット110は、段階574で決定したルックアヘッド点に基づいて、方位誤差およびヨーレートコマンドを決定してよい。処理ユニット110は、ルックアヘッド点の逆正接(例えば、arctan(xl/zl))を計算することにより、方位誤差を決定してよい。処理ユニット110は、方位誤差と高レベル制御ゲインとの積として、ヨーレートコマンドを決定してよい。高レベル制御ゲインは、ルックアヘッド距離が下限値にない場合には、(2/[ルックアヘッド時間])に等しくなり得る。そうでない場合には、高レベル制御ゲインは、(2×[車両200の速度]/[ルックアヘッド距離])に等しくなり得る。
【0159】
図5Fは、開示する実施形態と矛盾しない、先行車両が車線を変更中であるかどうかを判定するための、例示的なプロセス500Fを示すフローチャートである。段階580において、処理ユニット110は、先行車両(例えば、車両200の前方を走行する車両)に関連するナビゲーション情報を特定してよい。例えば、処理ユニット110は、先行車両の位置、速度(例えば、方向および速度)、および/または加速度を、
図5Aおよび
図5Bに関連して上で説明した手法を用いて決定してよい。処理ユニット110は、
図5Eに関連して上で説明された手法を用いて、1つまたは複数の道路多項式、(車両200に関連する)ルックアヘッド点、および/またはスネイルトレイル(例えば、先行車両が通った経路を記述する点のセット)を決定してもよい。
【0160】
段階582において、処理ユニット110は、段階580で特定したナビゲーション情報を分析してよい。一実施形態において、処理ユニット110は、スネイルトレイルと道路多項式との間の(例えば、トレイルに沿った)距離を計算してよい。トレイルに沿ったこの距離の分散が所定の閾値(例えば、直線道路では0.1~0.2メートル、緩やかなカーブの道路では0.3~0.4メートル、および急なカーブの道路では0.5~0.6メートル)を超える場合、処理ユニット110は、先行車両がおそらく車線を変更中であると判定してよい。複数の車両が車両200の前方を走行していることが検出された場合、処理ユニット110は、各車両に関連するスネイルトレイルを比較してよい。この比較に基づいて、処理ユニット110は、スネイルトレイルが他の車両のスネイルトレイルと一致しない車両がおそらく車線を変更中であると判定してよい。処理ユニット110はさらに、(先行車両に関連する)スネイルトレイルの曲率と、先行車両が走行している道路セグメントの予期される曲率とを比較してよい。予期される曲率は、マップデータ(例えば、マップデータベース160からのデータ)、道路多項式、他の車両のスネイルトレイル、および道路に関する予備知識などから抽出されてよい。スネイルトレイルの曲率と道路セグメントの予期される曲率との差異が所定の閾値を超える場合、処理ユニット110は、先行車両がおそらく車線を変更中であると判定してよい。
【0161】
別の実施形態において、処理ユニット110は、先行車両の瞬時位置と(車両200に関連する)ルックアヘッド点とを特定の期間(例えば、0.5~1.5秒)にわたって比較してよい。先行車両の瞬時位置とルックアヘッド点との間の距離が特定の期間の間に変化し、且つ変化量の累積合計が所定の閾値(例えば、直線道路では0.3~0.4メートル、緩やかなカーブの道路では0.7~0.8メートル、また急なカーブの道路では1.3~1.7メートル)を超える場合、処理ユニット110は、先行車両がおそらく車線を変更中であると判定してよい。別の実施形態において、処理ユニット110は、トレイルに沿った横方向移動距離とスネイルトレイルの予期される曲率とを比較することにより、スネイルトレイルの幾何構造を分析してよい。予期される曲率半径は、(δz
2+δx
2)/2/(δx)という計算に従って求められてよい。ここで、δxは横方向移動距離を表しており、δzは縦方向移動距離を表している。横方向移動距離と予期される曲率との差異が所定の閾値(例えば、500~700メートル)を超える場合、処理ユニット110は、先行車両がおそらく車線を変更中であると判定してよい。別の実施形態において、処理ユニット110は先行車両の位置を分析してよい。先行車両の位置が道路多項式を見えなくさせている(例えば、先行車両が道路多項式の上に重ねられている)場合、処理ユニット110は、先行車両がおそらく車線を変更中であると判定してよい。先行車両の前方に別の車両が検出され、2つの車両のスネイルトレイルが平行ではないというような先行車両の位置の場合、処理ユニット110は、(近い方の)先行車両がおそらく車線を変更中であると判定してよい。
【0162】
段階584において、処理ユニット110は、段階582で行われた分析に基づいて、先行車両200が車線を変更中であるかどうかを判定してよい。例えば、処理ユニット110は、段階582で行われた個々の分析の加重平均に基づいて、判定を行ってよい。そのような方式では、例えば、特定のタイプの分析に基づいた、先行車両がおそらく車線を変更中であるとの処理ユニット110による判定には、「1」の値が割り当てられてよい(「0」は、先行車両がおそらく車線を変更中ではないとの判定を表す)。段階582で行われる様々な分析には様々な重みが割り当てられてよく、開示する実施形態は、分析および重みのいかなる特定の組み合わせにも限定されることはない。
【0163】
図6は、開示する実施形態と矛盾しない、ステレオ画像分析に基づいて1つまたは複数のナビゲーション応答を発生させるための、例示的なプロセス600を示すフローチャートである。段階610において、処理ユニット110は、データインタフェース128を介して第1および第2の複数の画像を受信してよい。例えば、画像取得ユニット120に含まれるカメラ(視野202および204を有する画像取り込みデバイス122および124など)が、車両200の前方の領域の第1および第2の複数の画像を取り込み、これらの画像をデジタル接続(例えば、USB、無線、Bluetoothなど)を介して処理ユニット110に送信してよい。いくつかの実施形態において、処理ユニット110は、第1および第2の複数の画像を2つ以上のデータインタフェースを介して受信してよい。開示する実施形態は、いかなる特定のデータインタフェース構成またはプロトコルにも限定されることはない。
【0164】
段階620において、処理ユニット110はステレオ画像分析モジュール404を実行して、第1および第2の複数の画像のステレオ画像分析を行い、車両の前方の道路の3Dマップを作成し、これらの画像内の特徴、例えば、車線標示、車両、歩行者、道路標識、高速道路出口ランプ、信号機、および道路障害物などを検出してよい。ステレオ画像分析は、
図5A~
図5Dに関連して上で説明した段階と同様の方式で行われてよい。例えば、処理ユニット110は、ステレオ画像分析モジュール404を実行して、第1および第2の複数の画像内の候補物体(例えば、車両、歩行者、道路標示、信号機、道路障害物など)を検出し、様々な基準に基づいて候補物体のサブセットを除外し、さらにマルチフレーム分析を行い、測定値を構築し、残りの候補物体の信頼度を特定してよい。上記の段階を行う際に、処理ユニット110は、1つのセットの画像だけからの情報ではなく、第1および第2の複数の画像の双方からの情報を考慮してよい。例えば、処理ユニット110は、第1および第2の複数の画像の双方に現れる候補物体の画素レベルのデータ(または、取り込んだ画像の2つのストリームのうちの他のデータサブセット)における差異を分析してよい。別の例として、処理ユニット110は、(例えば、車両200に対する)候補物体の位置および/または速度を、その物体が複数の画像のうちの1つに現れるが、その他の画像には現れないことを観測することにより推定してもよく、2つの画像ストリームがある場合に現れる物体に関連して存在し得る他の差異と比較して推定してよい。例えば、車両200に対する位置、速度、および/または加速度が、2つの画像ストリームの一方または両方に現れる物体に関連する特徴の軌跡、位置、運動特性などに基づいて決定されてよい。
【0165】
段階630において、処理ユニット110は、ナビゲーション応答モジュール408を実行して、段階620で行われた分析と
図4に関連して上述した手法とに基づき、車両200において1つまたは複数のナビゲーション応答を発生させてよい。ナビゲーション応答には、例えば、旋回、車線移動、加速度の変更、速度の変更、およびブレーキなどが含まれてよい。いくつかの実施形態において、処理ユニット110は、速度加速度モジュール406の実行から得られたデータを用いて、1つまたは複数のナビゲーション応答を発生させてよい。さらに、複数のナビゲーション応答が同時に、順番に、またはそのあらゆる組み合わせで生じてよい。
【0166】
図7は、開示する実施形態と矛盾しない、3つのセットの画像の分析に基づいて1つまたは複数のナビゲーション応答を発生させるための、例示的なプロセス700を示すフローチャートである。段階710において、処理ユニット110は、データインタフェース128を介して第1、第2、および第3の複数の画像を受信してよい。例えば、画像取得ユニット120に含まれるカメラ(視野202、204、および206を有する画像取り込みデバイス122、124、および126など)が、車両200の前方および/または側方の領域の第1、第2、および第3の複数の画像を取り込み、これらの画像をデジタル接続(例えば、USB、無線、Bluetoothなど)を介して処理ユニット110に送信してよい。いくつかの実施形態において、処理ユニット110は、第1、第2、および第3の複数の画像を3つ以上のデータインタフェースを介して受信してよい。例えば、画像取り込みデバイス122、124、126はそれぞれ、処理ユニット110にデータを通信するための関連データインタフェースを有してよい。開示する実施形態は、いかなる特定のデータインタフェース構成またはプロトコルにも限定されることはない。
【0167】
段階720において、処理ユニット110は、第1、第2、および第3の複数の画像を分析して、これらの画像内の特徴、例えば、車線標示、車両、歩行者、道路標識、高速道路出口ランプ、信号機、および道路障害物などを検出してよい。この分析は、
図5A~
図5Dおよび
図6に関連して上で説明した段階と同様の方式で行われてよい。例えば、処理ユニット110は、(例えば、単眼画像分析モジュール402の実行によって、且つ
図5A~
図5Dに関連して上で説明した段階に基づいて)第1、第2、および第3の複数の画像のそれぞれに対して単眼画像分析を行ってよい。あるいは、処理ユニット110は、(例えば、ステレオ画像分析モジュール404の実行によって、且つ
図6に関連して上で説明した段階に基づいて)第1および第2の複数の画像、第2および第3の複数の画像、並びに/または第1および第3の複数の画像に対してステレオ画像分析を行ってよい。第1、第2、および/または第3の複数の画像の分析に対応する処理済み情報は、組み合わされてよい。いくつかの実施形態において、処理ユニット110は、単眼画像分析とステレオ画像分析との組み合わせを行ってよい。例えば、処理ユニット110は、(例えば、単眼画像分析モジュール402の実行によって)第1の複数の画像に対して単眼画像分析を行い、(例えば、ステレオ画像分析モジュール404の実行によって)第2および第3の複数の画像に対してステレオ画像分析を行ってよい。画像取り込みデバイス122、124、および126の構成(それぞれの位置および視野202、204および206を含む)は、第1、第2、および第3の複数の画像に対して行われる分析のタイプに影響を与え得る。開示する実施形態は、画像取り込みデバイス122、124、および126の特定の構成、または第1、第2、および第3の複数の画像に対して行われる分析のタイプに限定されることはない。
【0168】
いくつかの実施形態において、処理ユニット110は、段階710および720で取得され且つ分析された画像に基づいて、システム100に対して試験を行ってよい。そのような試験は、画像取り込みデバイス122、124、および126の特定の構成に対して、システム100の全体的な性能の指標を与え得る。例えば、処理ユニット110は、「誤検知」(例えば、システム100が車両または歩行者の存在を間違って判定した場合)および「見逃し」の割合を求めてよい。
【0169】
段階730において、処理ユニット110は、第1、第2、および第3の複数の画像のうちの2つから得られた情報に基づいて、車両200において1つまたは複数のナビゲーション応答を発生させてよい。第1、第2、および第3の複数の画像のうちの2つの選択は、様々な要因、例えば、複数の画像のそれぞれで検出される物体の数、タイプ、およびサイズなどに依存し得る。処理ユニット110は、画質および解像度、画像に反映された有効視野、取り込まれたフレームの数、1つまたは複数の関心のある物体が実際にフレームに現れる程度(例えば、物体が現れるフレームの割合、そのような各フレームに現れる物体の割合など)などに基づいて選択を行ってもよい。
【0170】
いくつかの実施形態において、処理ユニット110は、第1、第2、および第3の複数の画像のうちの2つから得られる情報を、ある画像ソースから得られた情報が他の画像ソースから得られた情報と一致する程度を特定することにより選択してよい。例えば、処理ユニット110は、画像取り込みデバイス122、124、および126のそれぞれから得られた処理済みの情報を(単眼分析によるものであろうと、ステレオ分析によるものであろうと、この2つの任意の組み合わせによるものであろうと)組み合わせて、画像取り込みデバイス122、124、および126のそれぞれから取り込まれた画像に一貫している視覚的指標(例えば、車線標示、検出された車両並びにその位置および/または経路、検出された信号機など)を特定してよい。処理ユニット110は、取り込まれた画像に一貫していない情報(例えば、車線を変更している車両、車両200に近すぎる車両を示す車線モデルなど)を排除してもよい。したがって、処理ユニット110は、一貫している情報および一貫していない情報という判定に基づいて、第1、第2、および第3の複数の画像のうちの2つから得られる情報を選択してよい。
【0171】
ナビゲーション応答には、例えば、旋回、車線移動、および加速度の変更などが含まれてよい。処理ユニット110は、段階720で行われた分析と
図4に関連して上述した手法とに基づいて、1つまたは複数のナビゲーション応答を発生させてよい。処理ユニット110は、速度加速度モジュール406の実行から得られたデータを用いて、1つまたは複数のナビゲーション応答を発生させてもよい。いくつかの実施形態において、処理ユニット110は、車両200と第1、第2、および第3の複数の画像のうちのいずれかで検出された物体との相対位置、相対速度、および/または相対加速度に基づいて、1つまたは複数のナビゲーション応答を発生させてよい。複数のナビゲーション応答が同時に、順番に、またはその任意の組み合わせで行われてよい。
【0172】
[自動運転車ナビゲーション用のスパース道路モデル]
【0173】
いくつかの実施形態において、開示するシステムおよび方法は、自動運転車ナビゲーション用のスパースマップを用いてよい。具体的には、スパースマップは、道路セグメントに沿った自動運転車ナビゲーション用であってよい。例えば、スパースマップは、自動運転車をナビゲートするのに十分な情報を、大量のデータの格納および/または更新を行うことなく提供することができる。以下でさらに詳細に論じるように、自動運転車は、スパースマップを用い、格納された1つまたは複数の軌跡に基づいて1つまたは複数の道路をナビゲートすることができる。
【0174】
[自動運転車ナビゲーション用のスパースマップ]
【0175】
いくつかの実施形態において、開示するシステムおよび方法は、自動運転車ナビゲーション用のスパースマップを生成し得る。例えば、スパースマップは、過度のデータストレージまたはデータ転送レートを必要とすることなく、ナビゲーションに十分な情報を提供することができる。以下でさらに詳細に論じるように、車両(自動運転車であってよい)は、スパースマップを用いて1つまたは複数の道路をナビゲートすることができる。例えば、いくつかの実施形態において、スパースマップは、道路および場合によっては道路沿いのランドマークに関連するデータを含んでよく、このデータは車両ナビゲーションに十分かもしれないが、データフットプリントが小さいことも示している。例えば、以下で詳細に説明するスパースデータマップは、詳細なマップ情報(道路に沿って収集した画像データなど)を含むデジタルマップと比較すると、必要な記憶領域およびデータ転送帯域幅が著しく少なくてよい。
【0176】
例えば、スパースデータマップは、道路セグメントの詳細な表現を格納するのではなく、道路に沿った好ましい車両経路の3次元多項式表現を格納することができる。これらの経路は、データストレージ領域をほとんど必要としなくてよい。さらに、説明したスパースデータマップでは、ナビゲーションに役立つように、ランドマークが識別され、スパースマップ道路モデルに含まれてよい。これらのランドマークは、車両ナビゲーションを可能にするのに好適な任意の間隔で配置されてよいが、場合によっては、そのようなランドマークを識別したり、高密度且つ狭い間隔でモデルに含めたりする必要はない。むしろ、場合によっては、少なくとも50メートル、少なくとも100メートル、少なくとも500メートル、少なくとも1キロメートル、または少なくとも2キロメートルの間隔を置いて配置したランドマークに基づいて、ナビゲーションが可能になり得る。他のセクションでより詳細に論じることになるが、スパースマップは、車両が車道に沿って走行するときに、様々なセンサおよびデバイス、例えば、画像取り込みデバイス、全地球測位システム用のセンサ、モーションセンサなどを備えた車両によって収集または測定されたデータに基づいて生成されてよい。場合によっては、スパースマップは、特定の車道に沿った1つまたは複数の車両の複数のドライブで収集されたデータに基づいて生成されてよい。1つまたは複数の車両の複数のドライブを用いてスパースマップを生成することは、スパースマップの「クラウドソーシング」と呼ばれることがある。
【0177】
開示する実施形態と矛盾せずに、自動運転車システムがナビゲーション用のスパースマップを用いてよい。例えば、開示するシステムおよび方法は、自動運転車用の道路ナビゲーションモデルを生成するためにスパースマップを配信してよく、スパースマップおよび/または生成した道路ナビゲーションモデルを用いて、道路セグメントに沿って自動運転車をナビゲートしてよい。本開示と矛盾しないスパースマップには、自動運転車が関連する道路セグメントに沿って移動するときに通行し得る所定の軌跡を表し得る1つまたは複数の3次元等高線図が含まれてよい。
【0178】
本開示と矛盾しないスパースマップには、1つまたは複数の道路特徴を表すデータも含まれてよい。そのような道路特徴には、認識済みのランドマーク、ロードシグネチャプロファイル、および車両をナビゲートするのに有用な任意の他の道路関連の特徴が含まれてよい。本開示と矛盾しないスパースマップによって、スパースマップに含まれる比較的少量のデータに基づく車両の自動ナビゲーションが可能になり得る。例えば、開示するスパースマップの実施形態は、道路エッジ、道路曲率、道路セグメントに関連する画像、または道路セグメントに関連する他の物理的特徴を詳述しているデータなどの道路の詳細な表現を含むのではなく、比較的少ない記憶領域(およびスパースマップの各部分を車両に転送する場合には比較的少ない帯域幅)しか必要としなくてよいが、それでも、十分に自動運転車ナビゲーションを提供し得る。以下でさらに詳細に論じるが、開示するスパースマップの小さいデータフットプリントは、いくつかの実施形態では、少量のデータしか必要としないが、それでも自動ナビゲーションを可能とする道路関連要素の表現を格納することで達成され得る。
【0179】
例えば、開示するスパースマップは、道路の様々な態様の詳細な表現を格納するのではなく、車両が道路に沿って進み得る1つまたは複数の軌跡の多項式表現を格納してよい。したがって、道路に沿ったナビゲーションを可能にするために、道路の物理的性質に関する詳細を格納する(または詳細を転送する必要がある)のではなく、開示するスパースマップを用いると、場合によっては、道路の物理的態様を解釈する必要がなく、むしろ車両の走行経路と特定の道路セグメントに沿った軌跡(例えば、多項式スプライン)とを揃えることにより、特定の道路セグメントに沿って車両をナビゲートすることができる。このように、車両は、主に格納された軌跡(例えば、多項式スプライン)に基づいてナビゲートされてよく、格納された軌跡は、車道画像、道路パラメータ、道路レイアウトなどの格納を必要とする手法よりもはるかに少ない記憶領域しか必要としなくてよい。
【0180】
道路セグメントに沿った軌跡についての格納された多項式表現に加えて、開示するスパースマップは、道路特徴を表し得るスモールデータオブジェクトも含んでよい。いくつかの実施形態において、スモールデータオブジェクトはデジタル署名を含んでよく、デジタル署名は、道路セグメントに沿って走行する車両に搭載されたセンサ(例えば、カメラ、またはサスペンションセンサなどの他のセンサ)により取得されたデジタル画像(またはデジタル信号)から得られる。デジタル署名は、センサにより取得された信号と比較してサイズが小さくてよい。いくつかの実施形態において、デジタル署名は、例えば、その後のドライブでセンサにより取得される信号からの道路特徴を検出して識別するように構成された分類器機能と互換性があるように作成されてよい。いくつかの実施形態において、デジタル署名は、デジタル署名ができるだけ小さいフットプリントを有するとともに、同じ道路セグメントに沿って走行する車両に搭載されたカメラにより次の機会に取り込まれる道路特徴の画像(または、格納された署名が画像に基づいていない且つ/または他のデータを含む場合には、センサにより生成されるデジタル信号)に基づいて、道路特徴を格納された署名に関連づけるまたは一致させる機能を保持するように作成されてよい。
【0181】
いくつかの実施形態において、データオブジェクトのサイズはさらに、道路特徴の一意性に関連してよい。例えば、車両に搭載されたカメラにより検出可能な道路特徴について、車両に搭載されたカメラシステムが、当該道路特徴に対応する画像データを特定のタイプの道路特徴(例えば、道路標識)に関連しているものとして区別できる分類器に結合される場合、且つそのような道路標識が当該領域で局所的に一意である(例えば、全く同じ道路標識も、同じタイプの道路標識も近くにない)場合、道路特徴のタイプおよびその位置を示すデータを格納することで十分であろう。
【0182】
以下でさらに詳細に論じられることになるが、道路特徴(例えば、道路セグメント沿いのランドマーク)は、比較的少ないバイト数で道路特徴を表し得るスモールデータオブジェクトとして格納されてよく、同時に、そのような特徴をナビゲーション用に認識し且つ用いるのに十分な情報を提供し得る。一例において、道路標識が、車両のナビゲーションが根拠とし得る認識済みのランドマークとして識別されてよい。道路標識の表現がスパースマップに格納されてよく、スパースマップには、例えば、ランドマークのタイプ(例えば、一時停止標識)を示す数バイトのデータ、およびランドマークの位置(例えば、座標)を示す数バイトのデータが含まれる。ランドマークのそのようなデータライト表現に基づいてナビゲートすること(例えば、ランドマークに基づいて、位置特定を行い、認識し、ナビゲートするのに十分な表現を用いること)により、スパースマップに関連するデータオーバーヘッドを著しく増加させることなく、スパースマップに関連する所望のレベルのナビゲーション機能が提供され得る。ランドマーク(および他の道路特徴)のこの効率的な表現は、特定の道路特徴を検出し、識別し、且つ/または分類するように構成されるような車両に搭載されたセンサおよびプロセッサを利用してよい。
【0183】
例えば、所与の領域において、標識または標識の特定のタイプでも局所的に一意である場合(例えば、他の標識もなく、同じタイプの他の標識もない場合)、スパースマップはランドマークのタイプ(標識または特定のタイプの標識)を示すデータを用いてよく、ナビゲーション(例えば、自動ナビゲーション)の際に、自動運転車に搭載されたカメラが標識(または特定のタイプの標識)を含む領域の画像を取り込むと、プロセッサは画像を処理し、標識を(実際に画像内に存在するならば)検出し、画像を標識として(または特定のタイプの標識として)分類し、画像の位置とスパースマップに格納された標識の位置とを関連づけてよい。
【0184】
[スパースマップの生成]
【0185】
いくつかの実施形態では、スパースマップが、道路セグメントに沿って延びる路面特徴に関する少なくとも1つのライン表現と、道路セグメントに関連する複数のランドマークとを含んでよい。特定の態様において、スパースマップは「クラウドソーシング」を介して、例えば、1つまたは複数の車両が道路セグメントを通行するときに取得した複数の画像の画像分析によって生成されてよい。
【0186】
図8は、1つまたは複数の車両、例えば、車両200(これは、自動運転車であってよい)が自動運転車ナビゲーションを提供するためにアクセスし得るスパースマップ800を示している。スパースマップ800は、メモリ140または150などのメモリに格納されてよい。そのようなメモリデバイスは、任意のタイプの非一時的ストレージデバイスまたはコンピュータ可読媒体を含んでもよい。例えば、いくつかの実施形態において、メモリ140または150は、ハードドライブ、コンパクトディスク、フラッシュメモリ、磁気ベースのメモリデバイス、光ベースのメモリデバイスなどを含んでよい。いくつかの実施形態において、スパースマップ800は、メモリ140もしくは150、または他のタイプのストレージデバイスに格納され得るデータベース(例えば、マップデータベース160)に格納されてよい。
【0187】
いくつかの実施形態において、スパースマップ800は、車両200に搭載されたストレージデバイスまたは非一時的コンピュータ可読媒体(例えば、車両200に搭載されたナビゲーションシステムに含まれるストレージデバイス)に格納されてよい。車両200に設けられたプロセッサ(例えば、処理ユニット110)が、自動運転車200が道路セグメントを通行するときに当該車両を誘導するためのナビゲーション命令を生成するために、車両200に搭載されたストレージデバイスまたはコンピュータ可読媒体に格納されたスパースマップ800にアクセスしてよい。
【0188】
しかしながら、スパースマップ800は、車両に対してローカルに格納される必要はない。いくつかの実施形態において、スパースマップ800は、車両200または車両200に関連するデバイスと通信するリモートサーバに設けられたストレージデバイスまたはコンピュータ可読媒体に格納されてよい。車両200に設けられたプロセッサ(例えば、処理ユニット110)は、スパースマップ800に含まれるデータをリモートサーバから受信してよく、車両200の自動運転を誘導するために、このデータを実行してよい。そのような実施形態において、リモートサーバは、スパースマップ800の全て、またはその一部だけを格納してよい。これを受けて、車両200に搭載された、且つ/または1つもしくは複数の追加の車両に搭載されたストレージデバイスまたはコンピュータ可読媒体は、スパースマップ800の残りの部分を格納してよい。
【0189】
さらに、そのような実施形態では、様々な道路セグメントを通行する複数の車両(例えば、数十台、数百台、数千台、または数百万台の車両など)がスパースマップ800にアクセスできるようにしてよい。スパースマップ800は複数のサブマップを含んでよいことにも留意されたい。例えば、いくつかの実施形態において、スパースマップ800は、車両をナビゲートする際に用いられ得る数百、数千、数百万、またはもっと多くのサブマップを含んでよい。そのようなサブマップはローカルマップと呼ばれることがあり、車道に沿って走行する車両が、車両が走行している場所に関連する任意の数のローカルマップにアクセスしてよい。スパースマップ800のローカルマップ区域は、スパースマップ800のデータベースの索引としての全球測位衛星システム(GNSS)キーと共に格納されてよい。したがって、本システムにおいてホスト車両をナビゲートするためのステアリング角の計算が、ホスト車両のGNSSの位置、道路特徴、またはランドマークに頼ることなく行われてよいが、そのようなGNSSの情報が関連するローカルマップの検索に用いられてもよい。
【0190】
一般に、スパースマップ800は、1つまたは複数の車両が車道に沿って走行するときに当該車両から収集されたデータに基づいて生成されてよい。例えば、1つまたは複数の車両内のセンサ(例えば、カメラ、速度計、GPS、加速度計など)を用いて、1つまたは複数の車両が車道に沿って走行する軌跡を記録することができ、この車道に沿ってその後に移動する車両の好ましい軌跡の多項式表現を、1つまたは複数の車両が走行し収集された軌跡に基づいて求めることができる。同様に、1つまたは複数の車両が収集したデータは、特定の車道沿いの潜在的なランドマークを識別するのに役立ち得る。通行する車両から収集したデータは、道路プロファイル情報、例えば、道路幅プロファイル、道路凹凸プロファイル、車線間隔プロファイル、道路状態などを識別するためにも用いられてよい。収集した情報を用いて、スパースマップ800は、1つまたは複数の自動運転車をナビゲートする際に用いるのに生成され、(例えば、ローカルストレージ用に、またはオンザフライ方式のデータ送信によって)配信されてよい。しかしながら、いくつかの実施形態では、マップ生成が、マップの初期生成で終了しないことがある。以下でより詳細に論じることになるが、スパースマップ800は、車両がスパースマップ800に含まれる車道を継続して通行するときに、当該車両から収集されたデータに基づいて、常にまたは定期的に更新されてよい。
【0191】
スパースマップ800に記録されるデータには、全地球測位システム(GPS)データに基づく位置情報が含まれてよい。例えば位置情報は、例えば、ランドマークの位置、道路プロファイルの位置などを含む様々なマップ要素についてのスパースマップ800に含まれてよい。スパースマップ800に含まれるマップ要素の位置が、車道を通行する車両から収集されたGPSデータを用いて取得されてよい。例えば、識別されたランドマークを通過する車両が、車両に関連するGPS位置情報と、車両に対する識別されたランドマークの位置の(例えば、車両に搭載された1つまたは複数のカメラから収集されたデータの画像分析に基づく)決定とを用いて、識別されたランドマークの位置を決定してよい。識別されたランドマーク(またはスパースマップ800に含まれる任意の他の特徴)のそのような位置の決定は、識別されたランドマークの位置をさらなる車両が通過するたびに繰り返されてよい。さらなる位置の決定の一部または全部が、スパースマップ800に格納されている識別されたランドマークに関する位置情報を微調整するのに用いられてよい。例えば、いくつかの実施形態では、スパースマップ800に格納された特定の特徴に関する複数の位置測定値が、まとめて平均化されてよい。しかしながら、マップ要素について決定された複数の位置に基づいて、格納されたマップ要素の位置を微調整するのに、任意の他の数学的操作も用いてよい。
【0192】
開示する実施形態のスパースマップにより、比較的少量の格納データを用いた車両の自動ナビゲーションが可能になり得る。いくつかの実施形態において、スパースマップ800は、道路1キロメートル当たり2MB未満、道路1キロメートル当たり1MB未満、道路1キロメートル当たり500kB未満、または道路1キロメートル当たり100kB未満のデータ密度(例えば、目標軌跡、ランドマーク、および任意の他の格納された道路特徴を表すデータを含む)を有してよい。いくつかの実施形態において、スパースマップ800のデータ密度は、道路1キロメートル当たり10kB未満もしくはさらに道路1キロメートル当たり2kB未満(例えば、1キロメートル当たり1.6kB)であっても、道路1キロメートル当たり10kB以下であっても、道路1キロメートル当たり20kB以下であってもよい。いくつかの実施形態において、米国の車道の全てではないとしてもほとんどが、合計4GB以下のデータを有するスパースマップを用いて自律的にナビゲートされ得る。これらのデータ密度の値は、スパースマップ800全体に関する平均、スパースマップ800内のローカルマップに関する平均、および/またはスパースマップ800内の特定の道路セグメントに関する平均を表し得る。
【0193】
言及したように、スパースマップ800は、道路セグメントに沿った自動運転またはナビゲーションを誘導するための複数の目標軌跡の表現810を含んでよい。そのような目標軌跡は、3次元スプラインとして格納されてよい。スパースマップ800に格納される目標軌跡は、例えば、特定の道路セグメントに沿った車両の以前の通行に関する2つ以上の再構築された軌跡に基づいて決定されてよい。道路セグメントは、単一の目標軌跡に関連づけられても、複数の目標軌跡に関連づけられてもよい。例えば、2車線道路では、道路に沿って第1方向に走行する目標経路を表すのに第1目標軌跡が格納されてよく、道路に沿って別の方向(例えば、第1方向とは反対)に走行する目標経路を表すのに第2目標軌跡が格納されてよい。特定の道路セグメントに対して、さらなる目標軌跡が格納されることがある。例えば、複数車線道路では、1つまたは複数の目標軌跡を格納して、複数車線道路に関連した1つまたは複数の車線にいる複数の車両用の目標走行経路を表してよい。いくつかの実施形態では、複数車線道路の各車線は、独自の目標軌跡に関連づけられてよい。他の実施形態では、複数車線道路に存在する車線より少ない目標軌跡が格納されることがある。そのような場合には、複数車線道路をナビゲートする車両が、目標軌跡が格納されている車線からの車線オフセット量を考慮して、格納された複数の目標軌跡のうちのいずれかを用いてナビゲーションを誘導してよい(例えば、車両が3車線高速道路の左端車線を走行中であり、且つ高速道路の中央車線用の目標軌跡だけが格納されている場合、車両は、ナビゲーション命令を生成するときに中央車線と左端車線との間の車線オフセット量を考慮することにより、中央車線の目標軌跡を用いてナビゲートしてよい)。
【0194】
いくつかの実施形態において、目標軌跡は、車両が走行するときに、当該車両が通るべき理想的な経路を表し得る。目標軌跡は、例えば、走行車線のほぼ中心に位置してよい。他の場合では、目標軌跡が道路セグメントに対して他の箇所に位置することがある。例えば、目標軌跡が、道路の中心、道路のエッジ、または車線のエッジなどとほぼ一致してよい。そのような場合、目標軌跡に基づくナビゲーションには、目標軌跡の位置に対して維持される決定済みのオフセット量が含まれてよい。さらに、いくつかの実施形態において、目標軌跡の位置に対して維持される決定済みのオフセット量は、車両のタイプに基づいて異なってもよい(例えば、目標軌跡の少なくとも一部に沿って、2つの車軸を含む乗用車が2つより多くの車軸を含むトラックとは異なるオフセットを有してよい)。
【0195】
スパースマップ800は、特定の道路セグメント、ローカルマップなどに関連づけられた複数の所定のランドマーク820に関連するデータも含んでよい。以下でより詳細に論じるが、これらのランドマークは、自動運転車のナビゲーションに用いられてよい。例えば、いくつかの実施形態において、これらのランドマークは格納された目標軌跡に対する車両の現在位置を決定するのに用いられてよい。この位置情報を用いて、自動運転車は、決定位置において、目標軌跡の方向と一致するように進行方向を調整することが可能になり得る。
【0196】
複数のランドマーク820は、任意の好適な間隔で識別され、スパースマップ800に格納されてよい。いくつかの実施形態では、ランドマークが比較的高密度で(例えば、数メートルごとに、またはもっと高密度で)格納されてよい。しかしながら、いくつかの実施形態では、著しく大きいランドマーク間隔値が使用されることがある。例えば、スパースマップ800では、識別(または認識)されたランドマークが、10メートル、20メートル、50メートル、100メートル、1キロメートル、または2キロメートルの間隔を置いて配置されてよい。場合によっては、識別されたランドマークは、2キロメートルを超える距離も離れて配置されてよい。
【0197】
ランドマーク間、したがって目標軌跡に対する車両位置の決定の間においては、車両は推測航法に基づいてナビゲートすることができ、推測航法では、車両がセンサを用いて自車のエゴモーションを特定し、目標軌跡に対する自車の位置を推定する。推測航法によるナビゲーションでは誤差が累積され得るため、時間の経過と共に、目標軌跡に対する位置決定の精度が次第に低くなることがある。車両は、スパースマップ800に存在するランドマーク(および、その既知の位置)を用いて、位置決定での推測航法による誤差を取り除くことができる。このように、スパースマップ800に含まれる識別されたランドマークは、目標軌跡に対する車両の正確な位置を決定し得るナビゲーションの要としての役割を果たすことができる。位置探索では一定量の誤差であれば許容できることがあるため、識別されたランドマークが必ずしも自動運転車に利用可能である必要はない。むしろ、好適なナビゲーションは、上述したように、10メートル、20メートル、50メートル、100メートル、500メートル、1キロメートル、2キロメートル、またはもっと長いランドマーク間隔に基づいても可能であってよい。いくつかの実施形態では、道路1kmごとに1つの識別されたランドマークという密度が、縦方向位置の決定精度を1m以内に維持するのに十分であるかもしれない。したがって、道路セグメント沿いに現れるあらゆる可能性のあるランドマークをスパースマップ800に格納する必要はない。
【0198】
さらに、いくつかの実施形態では、ランドマーク間で車両の位置特定を行うのに車線標示が用いられてよい。ランドマーク間で車線標示を用いることにより、推測航法によるナビゲーション時の誤差の累積を最小限に抑えることができる。
【0199】
目標軌跡および識別したランドマークに加えて、スパースマップ800は、様々な他の道路特徴に関連する情報を含んでよい。例えば
図9Aは、スパースマップ800に格納され得る特定の道路セグメントに沿ったカーブの表現を示している。いくつかの実施形態では、道路の単一の車線が、道路の左側および右側を3次元多項式で記述することによってモデル化されてよい。単一車線の左側および右側を表すそのような多項式が、
図9Aに示されている。道路にいくつの車線があり得るかに関係なく、
図9Aに示したのと同様のやり方で、多項式を用いて道路を表すことができる。例えば、複数車線道路の左側および右側が、
図9Aに示すのと同様の多項式で表されてよく、複数車線道路に含まれる中間の車線標示(例えば、車線境界を表す破線標示、別々の方向に走行する車線間の境界を表す黄色の実線など)も
図9Aに示すような多項式を用いて表されてよい。
【0200】
図9Aに示すように、車線900は多項式(例えば、1次、2次、3次、または任意の好適な次数の多項式)を用いて表されてよい。説明のために、車線900は2次元車線として示されており、多項式は2次元多項式として示されている。
図9Aに示すように、車線900は、左側910および右側920を含む。いくつかの実施形態では、1つより多くの多項式を用いて、道路のそれぞれの側または車線境界の位置を表すことがある。例えば、左側910および右側920はそれぞれ、任意の好適な長さの複数の多項式で表されてよい。場合によっては、これらの多項式は、約100mの長さを有することがあるが、100mより長いまたは短い他の長さも用いてよい。さらに、こうした多項式は、ホスト車両が車道を走行するときに次に遭遇した多項式に基づいてナビゲートする際のシームレスな移行を容易にするために、互いに重なり合ってよい。例えば、左側910および右側920はそれぞれ、約100メートルの長さ(第1の所定範囲の一例)のセグメントに分割され且つ互いに約50メートルが重なり合っている複数の3次多項式で表されてよい。左側910および右側920を表す多項式は、同じ次数であってもなくてもよい。例えば、いくつかの実施形態では、多項式のなかには2次多項式があってもよく、3次多項式があってもよく、4次多項式があってもよい。
【0201】
図9Aに示す例では、車線900の左側910が、2つのグループの3次多項式で表されている。第1グループには、多項式セグメント911、912、および913が含まれている。第2グループには、多項式セグメント914、915、および916が含まれている。2つのグループは、実質的に互いに対して平行であり、道路のそれぞれの側の位置に沿って延びている。多項式セグメント911、912、913、914、915、および916は約100メートルの長さがあり、約50メートルが隣接するセグメントと連続して重なり合っている。しかしながら前述したように、異なる長さおよび異なる重なり量の多項式も用いてよい。例えば、多項式は、500m、1km、またはもっと長い長さであってもよく、重なり量は、0~50m、50m~100m、または100mを超える量で変化してよい。さらに、
図9Aは2D空間(例えば、紙面上)に延びる多項式を表すものとして示されているが、これらの多項式は(例えば、高さ成分を含む)3次元に延びる曲線を表し、X-Y面の曲率に加えて、道路セグメントの標高変動も表してよいことを理解されたい。
図9Aに示す例では、車線900の右側920がさらに、多項式セグメント921、922、および923を有する第1グループと、多項式セグメント924、925、および926を有する第2グループとで表されている。
【0202】
スパースマップ800の目標軌跡に戻ると、
図9Bは、特定の道路セグメントに沿って走行する車両の目標軌跡を表す3次元多項式を示している。目標軌跡は、ホスト車両が特定の道路セグメントに沿って走行すべきX-Y面の経路だけでなく、ホスト車両が道路セグメントに沿って走行するときに経験する標高変動も表している。したがって、スパースマップ800に含まれる各目標軌跡は、
図9Bに示す3次元多項式950のような、1つまたは複数の3次元多項式で表されてよい。スパースマップ800は、複数の軌跡(例えば、世界中の車道の様々な道路セグメントに沿った車両の軌跡を表す数百万または数十億またはもっと多くの軌跡)を含んでよい。いくつかの実施形態において、各目標軌跡は、3次元多項式セグメントを接続したスプラインに対応してよい。
【0203】
スパースマップ800に格納された多項式曲線のデータフットプリントに関しては、いくつかの実施形態において、それぞれの3次多項式が4つのパラメータで表されてよく、各パラメータは4バイトのデータを必要とする。100mごとに約192バイトのデータを必要とする3次多項式を用いて、好適な表現を取得することができる。これは、約100km/hrで走行するホスト車両では、1時間当たり約200kBのデータ利用/転送要件に相当し得る。
【0204】
スパースマップ800は、幾何構造記述子とメタデータとの組み合わせを用いて車線のネットワークを記述してよい。幾何構造は、上述した多項式またはスプラインで記述されてよい。メタデータは、車線数、特別な特徴(相乗り車線など)、および場合によっては他のスパースラベルを記述してよい。そのような指標の総フットプリントは、ごくわずかかもしれない。
【0205】
したがって、本開示の実施形態によるスパースマップが、道路セグメントに沿って延びる路面特徴の少なくとも1つのライン表現を含んでよく、各ライン表現は、路面特徴に実質的に対応する道路セグメントに沿った経路を表す。いくつかの実施形態では、上述したように、路面特徴の少なくとも1つのライン表現は、スプライン、多項式表現、または曲線を含んでよい。さらに、いくつかの実施形態において、路面特徴は、道路エッジまたは車線標示のうちの少なくとも一方を含んでよい。さらに、「クラウドソーシング」に関して以下で論じるように、路面特徴は、1つまたは複数の車両が道路セグメントを通行するときに取得される複数の画像の画像分析によって識別されてよい。
【0206】
前述したように、スパースマップ800は、道路セグメントに関連する複数の所定のランドマークを含んでよい。ランドマークの実画像を格納して、例えば、取り込んだ画像および格納した画像に基づく画像認識分析を利用するのではなく、スパースマップ800に含まれる各ランドマークは、実画像を格納した場合に必要となるよりも少ないデータを用いて表され且つ認識され得る。それでも、ランドマークを表すデータには、道路沿いのランドマークを記述するまたは識別するのに十分な情報が含まれ得る。ランドマークの実画像ではなく、ランドマークの特性を記述するデータを格納することで、スパースマップ800のサイズを削減することができる。
【0207】
図10は、スパースマップ800に表され得るランドマークのタイプの例を示している。これらのランドマークには、道路セグメント沿いのあらゆる視認可能で識別可能な物体が含まれてよい。ランドマークは、固定されたものであり且つその位置および/または内容に関する変更が頻繁に行われないように選択されてよい。スパースマップ800に含まれるランドマークは、車両が特定の道路セグメントを通行するときに、目標軌跡に関する車両200の位置を決定するのに役立ち得る。ランドマークの例には、交通標識、方向標識、一般標識(例えば、長方形の標識)、路側固定物(例えば、街灯柱、反射鏡など)、および任意の他の好適な種類が含まれてよい。いくつかの実施形態において、道路上の車線標示も、スパースマップ800のランドマークとして含まれてよい。
【0208】
図10に示すランドマークの例には、交通標識、方向標識、路側固定物、および一般標識が含まれている。交通標識には、例えば、制限速度標識(例えば、制限速度標識1000)、優先道路標識(例えば、優先道路標識1005)、路線番号標識(例えば、路線番号標識1010)、信号機標識(例えば、信号機標識1015)、一時停止標識(例えば、一時停止標識1020)が含まれてよい。方向標識には、異なる場所への1つまたは複数の方向を示す1つまたは複数の矢印を含む標識が含まれてよい。例えば、方向標識には、異なる道路または場所に車両を誘導する矢印を有する高速道路標識1025、道路から降りるように車両を誘導する矢印を有する出口標識1030などが含まれてよい。したがって、複数のランドマークのうちの少なくとも1つには道路標識が含まれてよい。
【0209】
一般標識は、交通に無関係であってよい。例えば、一般標識には、広告に用いる掲示板、または2つの国、州、郡、都市、または町の境界に隣接しているウェルカムボードが含まれてよい。
図10には、一般標識1040(「ジョーズ・レストラン」)が示されている。一般標識1040は
図10に示すように長方形でよいが、一般標識1040は、正方形、円形、三角形などといった他の形状であってもよい。
【0210】
ランドマークには、路側固定物も含まれてよい。路側固定物とは、標識ではない物体であってよく、交通に関連しなくても方向に関連しなくてもよい。例えば、路側固定物には、街灯柱(例えば、街灯柱1035)、電柱、信号機柱などが含まれてよい。
【0211】
ランドマークには、自動運転車ナビゲーションシステムでの使用を目的に特別に設計され得るビーコンも含まれてよい。例えば、そのようなビーコンには、ホスト車両をナビゲートする際に役立つように所定の間隔で配置されたスタンドアローン型構造物が含まれてよい。そのようなビーコンには、道路セグメントに沿って走行する車両が識別または認識できる、既存の道路標識に追加された視覚/図形情報(例えば、アイコン、エンブレム、バーコードなど)も含まれてよい。そのようなビーコンには、電子部品も含まれてよい。そのような実施形態では、電子ビーコン(例えば、RFIDタグなど)を用いて、非視覚情報をホスト車両に送信してよい。そのような情報には、例えば、ホスト車両が目標軌跡に沿った自車の位置を決定する際に用いることができるランドマーク識別情報および/またはランドマーク位置情報が含まれてよい。
【0212】
いくつかの実施形態において、スパースマップ800に含まれるランドマークは、所定サイズのデータオブジェクトで表されてよい。ランドマークを表すデータには、特定のランドマークを識別するのに好適な任意のパラメータが含まれてよい。例えば、いくつかの実施形態において、スパースマップ800に格納されたランドマークには、ランドマークの物理的サイズ(例えば、既知のサイズ/スケールに基づいてランドマークまでの距離の推定を支援するためのもの)、直前のランドマークまでの距離、横方向オフセット、高さ、タイプコード(例えば、ランドマークのタイプ、つまり、どのタイプの方向標識、交通標識などであるか)、GPS座標(例えば、広範囲な位置特定を支援するためのもの)といったパラメータ、および任意の他の好適なパラメータが含まれてよい。各パラメータは、データサイズに関連づけられてよい。例えば、ランドマークサイズは、8バイトのデータを用いて格納されてよい。直前のランドマークまでの距離、横方向オフセット、および高さは、12バイトのデータを用いて指定されてよい。方向標識または交通標識などのランドマークに関連づけられるタイプコードには、約2バイトのデータが必要になり得る。一般標識では、一般標識の識別を可能にする画像署名が、50バイトのデータストレージを用いて格納されてよい。ランドマークのGPS位置は、16バイトのデータストレージに関連づけられてよい。パラメータごとのこれらのデータサイズは単なる例であり、他のデータサイズも用いてよい。
【0213】
このようにしてランドマークをスパースマップ800に表すことで、ランドマークをデータベースに効率的に表すための効率的な解決策を提供することができる。いくつかの実施形態では、標識がセマンティックな標識および非セマンティックな標識と呼ばれることがある。セマンティックな標識には、標準化された意味がある任意のクラスの標識(例えば、制限速度標識、警告標識、方向標識など)が含まれてよい。非セマンティックな標識には、標準化された意味に関連していない任意の標識(例えば、一般的な広告標識、企業を識別する標識など)が含まれてよい。例えば、それぞれのセマンティックな標識は、38バイトのデータ(例えば、サイズには8バイト、直前のランドマークまでの距離、横方向オフセット、および高さには12バイト、タイプコードには2バイト、GPS座標には16バイト)で表されてよい。スパースマップ800は、タグシステムを用いて、ランドマークタイプを表してよい。場合によっては、それぞれの交通標識または方向標識は独自のタグに関連づけられてよく、このタグは、ランドマーク識別情報の一部としてデータベースに格納されてよい。例えば、データベースには、様々な交通標識を表すのに1000個程度の異なるタグと、方向標識を表すための約10000個程度の異なるタグが含まれてよい。当然ながら、任意の好適な数のタグを用いてもよく、必要に応じて追加のタグを作成してもよい。いくつかの実施形態では、汎用標識が、約100バイト未満(例えば、サイズには8バイト、直前のランドマークまでの距離、横方向オフセット、および高さには12バイト、画像署名には50バイト、GPS座標には16バイトを含む約86バイト)を用いて表されてよい。
【0214】
したがって、画像署名を必要としないセマンティックな道路標識の場合、スパースマップ800へのデータ密度の影響は、50m当たり約1つという比較的高いランドマーク密度でも、1キロメートル当たり約760バイト程度(例えば、[1km当たり20個のランドマーク]×[ランドマーク当たり38バイト]=760バイト)になり得る。画像署名成分を含む汎用標識の場合でも、データ密度の影響は、1km当たり約1.72kBである(例えば、[1km当たり20個のランドマーク]×[ランドマーク当たり86バイト]=1,720バイト)。セマンティックな道路標識の場合、この影響は、100km/hrで走行する車両にとって、1時間当たり約76kBのデータ使用量に相当する。汎用標識の場合、この影響は、100km/hrで走行する車両にとって、1時間当たり約170kBに相当する。
【0215】
いくつかの実施形態では、概して長方形の物体、例えば長方形の標識が、100バイト以下のデータでスパースマップ800に表されてよい。スパースマップ800における概して長方形の物体(例えば、一般標識1040)の表現には、概して長方形の物体に関連づけられる短縮画像署名(例えば、短縮画像署名1045)が含まれてよい。この短縮画像署名を用いると、例えば認識したランドマークとして、例えば汎用標識を識別するのに役立てることができる。そのような短縮画像署名(例えば、ある物体を表す実画像データから得られた画像情報)によって、物体の実画像を格納する必要も、ランドマークを認識するために実画像に対して行われる比較画像分析の必要もなくすことができる。
【0216】
図10を参照すると、スパースマップ800は、一般標識1040の実画像ではなく、一般標識1040に関連づけられる短縮画像署名1045を含んでも、格納してもよい。例えば、画像取り込みデバイス(例えば、画像取り込みデバイス122、124、または126)が一般標識1040の画像を取り込んだ後に、プロセッサ(例えば、ホスト車両上で、またはホスト車両に対して遠隔に位置して、画像を処理できる画像プロセッサ190または任意の他のプロセッサ)が、画像分析を行って、一般標識1040に関連づけられる一意の署名またはパターンを含む短縮画像署名1045を抽出/作成してよい。一実施形態において、短縮画像署名1045には、形状、色パターン、明度パターン、または一般標識1040の画像から抽出され得る一般標識1040を記述するための任意の他の特徴が含まれてよい。
【0217】
例えば
図10において、短縮画像署名1045に示される円形、三角形、および星形は、異なる色の領域を表してよい。円形、三角形、および星形で表されたパターンは、例えば、画像署名を含むように指定された50バイト以内で、スパースマップ800に格納されてよい。特に、円形、三角形、および星形は、そのような形状が画像署名の一部として格納されていることを示すことを必ずしも意味するものではない。むしろ、これらの形状は、識別可能な色差、テクスチャ領域、図形形状、または汎用標識に関連し得る特性の他の変化を有する認識可能な領域を概念的に表すことを意図している。そのような短縮画像署名を用いると、一般標識の形でランドマークを識別することができる。例えば、短縮画像署名を用いると、格納された短縮画像署名と、例えば自動運転車に搭載されたカメラを用いて取り込まれた画像データとの比較に基づいて、同定分析を行うことができる。
【0218】
したがって、複数のランドマークは、1つもしくは複数の車両が道路セグメントを通行するときに取得した複数の画像の画像分析によって、識別されてよい。以下で「クラウドソーシング」に関して説明するように、いくつかの実施形態において、複数のランドマークを識別するための画像分析は、ランドマークが現れる画像とランドマークが現れない画像との比率が閾値を超える場合、可能性のあるランドマークを受け入れることを含んでよい。さらに、いくつかの実施形態において、複数のランドマークを識別するための画像分析は、ランドマークが現れる画像とランドマークが現れない画像との比率が閾値を超える場合、可能性のあるランドマークを排除することを含んでよい。
【0219】
ホスト車両が特定の道路セグメントをナビゲートするのに用い得る目標軌跡に戻ると、
図11Aは、スパースマップ800を構築または維持するプロセスで取り込まれた多項式表現の軌跡を示している。スパースマップ800に含まれる目標軌跡の多項式表現が、同じ道路セグメントに沿った車両の以前の通行に関する2つ以上の再構築された軌跡に基づいて求められてよい。いくつかの実施形態において、スパースマップ800に含まれる目標軌跡の多項式表現は、同じ道路セグメントに沿った車両の以前の通行に関する2つ以上の再構築された軌跡の集合体であってよい。いくつかの実施形態において、スパースマップ800に含まれる目標軌跡の多項式表現は、同じ道路セグメントに沿った車両の以前の通行に関する2つ以上の再構築された軌跡の平均であってよい。他の数学的操作も、ある道路セグメントに沿って通行する車両から収集された軌跡の再構築に基づいて、道路経路に沿った目標軌跡を構築するのに用いられてよい。
【0220】
図11Aに示すように、道路セグメント1100では、異なる時間に複数の車両200が走行し得る。各車両200は、車両が道路セグメントに沿って通った経路に関連するデータを収集してよい。特定の車両が走行する経路は、可能性のある情報源の中でもとりわけ、カメラデータ、加速度計情報、速度センサ情報、および/またはGPS情報に基づいて決定されてよい。そのようなデータを用いて、道路セグメントに沿って走行する車両の軌跡を再構築することができ、これらの再構築された軌跡に基づいて、目標軌跡(または複数の目標軌跡)が特定の道路セグメントに対して決定され得る。そのような目標軌跡は、ホスト車両が道路セグメントに沿って走行するときの(例えば、自動ナビゲーションシステムにより誘導される)当該車両の好ましい経路を表してよい。
【0221】
図11Aに示す例では、第1の再構築された軌跡1101が、第1期間(例えば、曜日1)に道路セグメント1100を通行する第1の車両から受信したデータに基づいて決定されてよく、第2の再構築された軌跡1102が、第2期間(例えば、曜日2)に道路セグメント1100を通行する第2の車両から取得されてよく、第3の再構築された軌跡1103が第3期間(例えば、曜日3)に道路セグメント1100を通行する第3車両から取得されてよい。各軌跡1101、1102、および1103は、3次元多項式などの多項式で表されてよい。いくつかの実施形態では、再構築されたこれらの軌跡のうちのいずれかが、道路セグメント1100を通行する車両内で編成されてよいことに留意されたい。
【0222】
さらに、またはその代わりに、そのような再構築された軌跡は、道路セグメント1100を通行する車両から受信した情報に基づいてサーバ側で決定されてよい。例えば、いくつかの実施形態において、車両200は、道路セグメント1100に沿った自車の動きに関連するデータ(例えば、特に、ステアリング角、進行方向、時間、位置、速度、検知された道路の幾何構造、および/または検知されたランドマーク)を1つまたは複数のサーバに送信してよい。サーバは、受信したデータに基づいて、車両200の軌跡を再構築してよい。サーバは、後に同じ道路セグメント1100に沿って走行する自動運転車のナビゲーションを誘導するための目標軌跡も、第1の軌跡1101、第2の軌跡1102、および第3の軌跡1103に基づいて生成してよい。目標軌跡が道路セグメントの単一の以前の通行に関連づけられてよいが、いくつかの実施形態において、スパースマップ800に含まれる各目標軌跡は、同じ道路セグメントを通行する車両の2つ以上の再構築された軌跡に基づいて決定されてよい。
図11Aには、目標軌跡が1110で表されている。いくつかの実施形態において、目標軌跡1110は、第1の軌跡1101、第2の軌跡1102、および第3の軌跡1103の平均に基づいて生成されてよい。いくつかの実施形態において、スパースマップ800に含まれる目標軌跡1110は、2つ以上の再構築された軌跡の集合体(例えば、重みづけされた組み合わせ)であってよい。
【0223】
図11Bおよび
図11Cはさらに、地理的領域1111に存在する道路セグメントに関連づけられる目標軌跡の概念を示している。
図11Bに示すように、地理的領域1111内の第1道路セグメント1120は複数車線道路を含んでよく、この複数車線道路には、第1方向への車両走行に指定された2つの車線1122と、第1方向とは反対の第2方向への車両走行に指定された2つのさらなる車線1124とが含まれている。車線1122および車線1124は、二重黄色線1123で分離されてよい。地理的領域1111には、道路セグメント1120と交差する分岐道路セグメント1130も含まれてよい。道路セグメント1130には2車線道路が含まれてよく、各車線は異なる方向の走行に指定されている。地理的領域1111には、他の道路特徴、例えば、一時停止線1132、一時停止標識1134、制限速度標識1136、および危険標識1138も含まれてよい。
【0224】
図11Cに示すように、スパースマップ800には、地理的領域1111内の車両を自動ナビゲーションで支援するための道路モデルを含むローカルマップ1140が含まれてよい。例えば、ローカルマップ1140には、地理的領域1111内の道路セグメント1120および/または1130に関連づけられた、1つまたは複数の車線の目標軌跡が含まれてよい。例えば、ローカルマップ1140には、自動運転車が車線1122を通行するときにアクセスできる、または利用できる目標軌跡1141および/または1142が含まれてよい。同様に、ローカルマップ1140には、自動運転車が車線1124を通行するときにアクセスできる、または利用できる目標軌跡1143および/または1144が含まれてよい。さらに、ローカルマップ1140には、自動運転車が道路セグメント1130を通行するときにアクセスできる、または利用できる目標軌跡1145および/または1146が含まれてよい。目標軌跡1147は、自動運転車が車線1120(具体的には、車線1120の右端車線に関連づけられた目標軌跡1141に対応)から道路セグメント1130(具体的には、道路セグメント1130の第1の側に関連づけられた目標軌跡1145に対応)に移行するときに進むべき好ましい経路を表してよい。同様に、目標軌跡1148は、自動運転車が道路セグメント1130(具体的には、目標軌跡1146に対応)から道路セグメント1124の一部(具体的には図示するように、車線1124の左車線に関連づけられた目標軌跡1143に対応)に移行するときに進むべき好ましい経路を表している。
【0225】
スパースマップ800には、地理的領域1111に関連する他の道路関連の特徴についての表現も含まれてよい。例えば、スパースマップ800には、地理的領域1111で識別された1つまたは複数のランドマークについての表現も含まれてよい。そのようなランドマークには、一時停止線1132に関連づけられた第1ランドマーク1150、一時停止標識1134に関連づけられた第2ランドマーク1152、制限速度標識1154に関連づけられた第3ランドマーク、および危険標識1138に関連づけられた第4ランドマーク1156が含まれてよい。そのようなランドマークは、例えば、示された目標軌跡のうちのいずれかに対する自車の現在位置を決定する際に、自動運転車を支援するのに用いられてよい。これにより、車両はその決定位置において、目標軌跡の方向と一致するように自車の進行方向を調整することができる。
【0226】
いくつかの実施形態において、スパースマップ800には、ロードシグネチャプロファイルも含まれてよい。そのようなロードシグネチャプロファイルは、道路に関連する少なくとも1つのパラメータにおける任意の識別可能/測定可能な変化に関連づけられてよい。例えば、場合によっては、そのようなプロファイルは、路面情報の変化、例えば、特定の道路セグメントの路面凹凸の変化、特定の道路セグメント全体の道路幅の変化、特定の道路セグメントに沿って塗装された破線間の距離の変化、特定の道路セグメントに沿った道路曲率の変化などに関連づけられてよい。
図11Dは、ロードシグネチャプロファイル1160の一例を示している。プロファイル1160は、上述したパラメータなどのうちのいずれかを表してよく、一例において、プロファイル1160は、例えば、車両が特定の道路セグメントを走行するときのサスペンション変位の量を示す出力を提供する1つまたは複数のセンサを監視することにより取得された、路面凹凸の測定値を表してよい。
【0227】
その代わりに、または同時に、プロファイル1160は道路幅の変化を表してよく、この変化は、特定の道路セグメントを走行する車両に搭載されたカメラによって取得された画像データに基づいて特定される。そのようなプロファイルは、例えば、特定の目標軌跡に対する自動運転車の特定の位置を決定する際に役立ち得る。すなわち、自動運転車が、ある道路セグメントを通行するときに、当該道路セグメントに関連づけられる1つまたは複数のパラメータに関連するプロファイルを測定してよい。測定したプロファイルが、道路セグメントの沿った位置に関するパラメータの変化をプロットした所定のプロファイルに関連づけられ得る/一致し得る場合、道路セグメントに沿った現在位置、したがって道路セグメントの目標軌跡に対する現在位置を決定するために、測定したプロファイルおよび所定のプロファイルを(例えば、測定したプロファイルおよび所定のプロファイルの対応する部分同士を重ねることにより)用いてよい。
【0228】
いくつかの実施形態において、スパースマップ800には、自動運転車のユーザ、環境状態、且つ/または走行に関連する他のパラメータに関連づけられた様々な特性に基づく様々な軌跡が含まれてよい。例えば、いくつかの実施形態では、様々なユーザ嗜好および/またはプロファイルに基づいて、様々な軌跡が生成されてよい。そのような様々な軌跡を含むスパースマップ800は、様々なユーザの様々な自動運転車に提供されてよい。例えば、一部のユーザは有料道路を避けることを好むかもしれないが、他のユーザは、ルート上に有料道路があるかどうかに関係なく、最短または最速のルートを通ることを好むかもしれない。開示するシステムは、そのような様々なユーザ嗜好またはプロファイルに基づく様々な軌跡を有する様々なスパースマップを生成してよい。別の例として、一部のユーザは高速車線を走行することを好むかもしれないが、他のユーザは、常に位置を中央車線に維持することを好むかもしれない。
【0229】
様々な軌跡が、日中および夜間、雪、雨、霧などといった様々な環境状態に基づいて生成され、スパースマップ800に含まれてよい。様々な環境状態下で走行する自動運転車には、そのような様々な環境状態に基づいて生成されたスパースマップ800が提供されてよい。いくつかの実施形態では、自動運転車に設けられたカメラが環境状態を検出してよく、そのような情報を、スパースマップを生成し且つ提供するサーバに戻す形で提供してよい。例えば、サーバは、検出された環境状態下での自動運転にとって、より好適または安全かもしれない軌跡を含むようにスパースマップ800を生成しても、すでに生成されているスパースマップ800を更新してもよい。環境状態に基づくスパースマップ800の更新は、自動運転車が道路に沿って走行しているときに、動的に行われてよい。
【0230】
走行に関連する他の様々なパラメータも、様々なスパースマップを生成して様々な自動運転車にこれを提供するための基礎として用いられてよい。例えば、自動運転車が高速で走行している場合、旋回がよりきつくなり得る。自動運転車が特定の軌跡を進むときに、当該車両が特定の車線を維持できるように、道路ではなく特定の車線に関連づけられた軌跡がスパースマップ800に含まれてよい。自動運転車に搭載されたカメラにより取り込まれた画像が、車両が車線から外れて移動した(例えば、車線標示を横切った)ことを示した場合、特定の軌跡に従って車両を指定の車線に戻す動作が車両内で作動してよい。
【0231】
[スパースマップのクラウドソーシング]
【0232】
いくつかの実施形態において、開示するシステムおよび方法は、自動運転車ナビゲーション用のスパースマップを生成し得る。例えば、開示するシステムおよび方法は、1つまたは複数の自動運転車があるシステムの道路に沿ってナビゲートするのに用い得るスパースの生成に、クラウドソーシングによるデータを用いてよい。本明細書で用いる場合、「クラウドソーシング」とは、ある道路セグメントを異なる時間に走行する様々な車両(例えば、自動運転車)からデータを受信することを意味し、そのようなデータは道路モデルを生成する且つ/または更新するのに用いられる。このモデルは次に、自動運転車ナビゲーションを支援するために、当該車両または後に当該道路セグメントを走行する他の車両に送信されてよい。道路モデルには、ある道路セグメントを自動運転車が通行するときに進むべき好ましい軌跡を表す複数の目標軌跡が含まれてよい。これらの目標軌跡は、道路セグメントを通行する車両から収集された実際の軌跡を再構築したものと同じであってよく、収集された実際の軌跡は当該車両からサーバに送信されてよい。いくつかの実施形態において、目標軌跡は、1つまたは複数の車両が道路セグメントを通行したときに以前に通った実際の軌跡と異なる場合がある。目標軌跡は、実際の軌跡に基づいて(例えば、平均化、または任意の他の好適な操作により)生成されてよい。
【0233】
車両がサーバにアップロードし得る車両軌跡データは、車両の実際の再構築された軌跡に対応してもよく、推奨軌跡に対応してもよい。推奨軌跡は、車両の実際の再構築された軌跡に基づいても、これに関連してもよいが、実際の再構築された軌跡と異なる場合がある。例えば、車両は自車の実際の再構築された軌跡を変更し、変更した実際の軌跡をサーバに提出(例えば、推奨)してよい。道路モデルは、推奨された変更済みの軌跡を他の車両の自動ナビゲーション用の目標軌跡として用いてよい。
【0234】
軌跡情報に加えて、スパースデータマップ800を構築する際に用いる可能性のある他の情報が、可能性のあるランドマーク候補に関連する情報を含んでよい。例えば、情報のクラウドソーシングによって、開示するシステムおよび方法は、環境内の可能性のあるランドマークを識別し、ランドマーク位置を微調整することができる。これらのランドマークは、自動運転車のナビゲーションシステムが目標軌跡に沿った車両の位置を決定し且つ/または調整するのに用いられてよい。
【0235】
車両が道路に沿って走行するときに車両が生成し得る再構築された軌跡は、任意の好適な方法で取得されてよい。いくつかの実施形態において、例えば、エゴモーション推定(例えば、カメラ、したがって車両本体の、3次元並進および3次元回転)を用いて、車両の動きの複数の部分をつなぎ合わせることで、再構築された軌跡を発展させることができる。回転および並進の推定は、1つまたは複数の画像取り込みデバイスにより取り込まれた画像を他のセンサまたはデバイス(慣性センサおよび速度センサなど)からの情報と共に分析した結果に基づいて決定されてよい。例えば、慣性センサは、車体の並進および/または回転の変化を測定するように構成された加速度計または他の好適なセンサを含んでよい。車両は、車両の速度を測定する速度センサを含んでよい。
【0236】
いくつかの実施形態において、カメラ(したがって車体)のエゴモーションは、取り込んだ画像のオプティカルフロー分析に基づいて推定されてよい。一連の画像のオプティカルフロー分析では、当該一連の画像の画素の動きを識別し、識別した動きに基づいて、車両の動きを特定する。エゴモーションは、車両が進んだ道路セグメントに関連づけられた軌跡を再構築するために、時間の経過と共に道路セグメントに沿って集積されてよい。
【0237】
ある道路セグメントに沿った様々な時間での複数のドライブにおいて複数の車両により収集されたデータ(例えば、再構築された軌跡)が、スパースデータマップ800に含まれる(例えば、目標軌跡などを含む)道路モデルを構築するのに用いられてよい。ある道路セグメントに沿った様々な時間での複数のドライブにおいて複数の車両により収集されたデータが、モデルの精度を高めるために平均化されてもよい。いくつかの実施形態において、道路の幾何構造および/またはランドマークに関するデータが、共通の道路セグメントを様々な時間に通り抜ける複数の車両から受信されてよい。様々な車両から受信されるそのようなデータは、道路モデルの生成および/または道路モデルの更新のために組み合わされてよい。
【0238】
道路セグメントに沿った再構築された軌跡の幾何構造は(目標軌跡の幾何構造も)、3次元空間の曲線で表されてよく、この曲線は3次元多項式を接続するスプラインであってよい。再構築された軌跡の曲線は、車両に設置されたカメラにより取り込まれたビデオストリームまたは複数の画像の分析から求められてよい。いくつかの実施形態では、車両の現在位置の数メートル前方にある各フレームまたは画像で位置が識別される。この位置は、所定の期間の後に車両が走行すると予期されるされているところである。この操作はフレームごとに繰り返されてよく、同時に、車両はカメラのエゴモーション(回転および並進)を計算してよい。各フレームまたは画像では、カメラに取り付けられた基準フレーム内の車両により、所望の経路の短距離モデルが生成される。複数の短距離モデルをつなぎ合わせて、何らかの座標フレーム内の道路の3次元モデルを取得してよく、この座標フレームは任意の座標フレームでも所定の座標フレームでもよい。道路の3次元モデルは次に、スプラインにフィッティングされてよく、このスプラインは好適な次数の1つまたは複数の多項式を含んでも、この多項式を接続してもよい。
【0239】
各フレームで短距離道路モデルを完成させるために、1つまたは複数の検出モジュールが用いられてよい。例えば、ボトムアップ型車線検出モジュールが用いられてよい。ボトムアップ型車線検出モジュールは、道路上に車線標示が描かれている場合に役立ち得る。このモジュールは、画像内のエッジを探し出し、これらのエッジを一緒に編成して車線標示を形成してよい。第2モジュールが、ボトムアップ型車線検出モジュールと一緒に用いられてよい。第2モジュールはエンドツーエンド型ディープニューラルネットワークであり、このディープニューラルネットワークは、正確な短距離経路を入力画像から予測するように訓練されてよい。どちらのモジュールでも、道路モデルが画像座標フレーム内で検出され、カメラに仮想的に取り付けられ得る3次元空間に変換されてよい。
【0240】
再構築された軌跡のモデル化方法では、長期間にわたるエゴモーションの集積により、ノイズ成分を含み得る誤差の累積をもたらすことがあるが、そのような誤差は、生成されたモデルが地域規模でのナビゲーションに十分な精度を提供し得るので重要でないかもしれない。さらに、衛星画像または測地測量などの外部の情報源を用いることで、集積誤差を相殺することが可能である。例えば、開示するシステムおよび方法は、GNSS受信機を用いて累積誤差を相殺してよい。しかしながら、GNSS測位信号は、常に利用できて正確であるとは限らないかもしれない。開示するシステムおよび方法によって、GNSS測位の可用性および精度にあまり依存しないステアリングアプリケーションが可能になり得る。そのようなシステムでは、GNSS信号の使用が限定されてよい。例えば、いくつかの実施形態において、開示するシステムは、データベースの索引作成目的のためだけにGNSS信号を用いてよい。
【0241】
いくつかの実施形態において、自動運転車ナビゲーションのステアリングアプリケーションに適切かもしれない距離範囲(例えば、地域規模)は、50メートル、100メートル、200メートル、300メートル程度などであってもよい。そのような距離が用いられてよいのは、幾何道路モデルが用いられる目的が主に2つ、軌跡を事前に計画すること、および道路モデルで車両の位置を特定することであるためである。いくつかの実施形態において、計画策定タスクは40メートル先(または任意の他の好適な前方距離、例えば20メートル、30メートル、50メートル)という典型的な範囲にわたるモデルを用いてよく、このとき制御アルゴリズムは、1.3秒先(または任意の他の時間、例えば、1.5秒、1.7秒、2秒など)に位置する目標地点に従って車両を操縦する。位置特定タスクは、別のセクションでより詳細に説明される「テールアライメント」と呼ばれる方法に従って、自動車の後方60メートル(または任意の他の好適な距離、例えば、50メートル、100メートル、150メートルなど)という典型的な範囲にわたる道路モデルを用いる。開示するシステムおよび方法は、計画した軌跡が、例えば、車線中央から30cmを超えて逸脱することがないように、100メートルなどの特定の範囲にわたり十分な精度を有する幾何モデルを生成してよい。
【0242】
上述したように、短距離部分を検出して、これらを一緒につなぎ合わせることから、3次元道路モデルが構築されてよい。このつなぎ合わせは、カメラにより取り込まれた映像および/または画像、車両の動きを反映する慣性センサからのデータ、およびホスト車両の速度信号を用いて、6段階のエゴモーションモデルを計算することにより可能になり得る。累積誤差は、100メートル程度といった、ある程度の局所的範囲の規模では十分に小さくなり得る。これが全て、特定の道路セグメントの1つのドライブで完了してよい。
【0243】
いくつかの実施形態では、結果として生じるモデルを平均化して精度をさらに高めるために、複数のドライブが用いられてよい。同じ自動車が同じルートを複数回走行してもよく、複数の自動車がそれぞれ収集したモデルデータを中央サーバに送信してもよい。いずれにしても、目標軌跡を生成するために、重なり合っているモデルを識別して平均化できるように、マッチング手順が行われてよい。構築された(例えば、目標軌跡を含む)モデルは、収束基準を満たすと、操縦に用いられてよい。さらなるモデルの改良のために、またインフラの変化に適応するために、その後のドライブが用いられてよい。
【0244】
複数の自動車同士による走行経験(検知データなど)の共有が、これらの自動車が中央サーバに接続されている場合に実現可能になる。各車両クライアントは、それぞれの現在位置に関連し得る汎用道路モデルの部分的コピーを格納してよい。車両とサーバとの間の双方向の更新手順が、車両およびサーバによって行われてよい。上述した小フットプリントの概念により、開示するシステムおよび方法は、非常に小さい帯域幅を用いて双方向の更新を行うことが可能になる。
【0245】
可能性のあるランドマークに関連する情報も、特定されて中央サーバに転送されてよい。例えば、開示するシステムおよび方法は、可能性のあるランドマークの1つまたは複数の物理的特性を、ランドマークを含む1つまたは複数の画像に基づいて特定してよい。これらの物理的特性には、ランドマークの物理的サイズ(例えば、高さ、幅)、車両からランドマークまでの距離、ランドマークから直前のランドマークまでの距離、ランドマークの横方向位置(例えば、走行車線に対するランドマークの位置)、ランドマークのGPS座標、ランドマークのタイプ、ランドマークに関するテキストの識別などが含まれてよい。例えば、車両は、カメラにより取り込まれた1つまたは複数の画像を分析して、制限速度標識などの、可能性のあるランドマークを検出してよい。
【0246】
車両は、1つまたは複数の画像の分析に基づいて、車両からランドマークまでの距離を決定してよい。いくつかの実施形態において、この距離は、ランドマークの画像の分析に基づき、スケーリング法および/またはオプティカルフロー法などの好適な画像分析方法を用いて決定されてよい。いくつかの実施形態において、開示するシステムおよび方法は、可能性のあるランドマークのタイプまたは分類を決定するように構成されてよい。可能性を持ったあるランドマークがスパースマップに格納された所定のタイプまたは分類に対応すると車両が判定した場合、車両が当該ランドマークのタイプまたは分類のインジケーションをランドマークの位置と共にサーバに伝えるだけで十分であろう。サーバは、そのようなインジケーションを格納してよい。後に、他の車両がこのランドマークの画像を取り込み、当該画像を(例えば、分類器を用いて)処理し、ランドマークのタイプに関して、画像の処理結果とサーバに格納されたインジケーションとを比較してよい。様々なタイプのランドマークが存在してよく、異なるタイプのランドマークが、サーバにアップロードされサーバに格納される異なるタイプのデータに関連づけられてよく、車両内での異なる処理によって、ランドマークが検出され、当該ランドマークに関する情報がサーバに伝えられてよく、車両に搭載されたシステムはサーバからランドマークのデータを受信し、当該ランドマークのデータを自動ナビゲーションにおけるランドマークの識別に用いてよい。
【0247】
いくつかの実施形態では、ある道路セグメントを走行する複数の自動運転車がサーバと通信してよい。車両(またはクライアント)は、自車のドライブを(例えば、エゴモーションの集積によって)描く曲線を任意の座標フレームに生成してよい。車両は、ランドマークを検出し、当該ランドマークを同じフレームに配置してよい。車両は、曲線およびランドマークをサーバにアップロードしてよい。サーバは、車両から複数のドライブによるデータを収集し、統合された道路モデルを生成してよい。例えば、
図19に関して以下で論じるように、サーバは、アップロードされた曲線およびランドマークを用いて、統合された道路モデルを有するスパースマップを生成してよい。
【0248】
サーバは、このモデルをクライアント(例えば、車両)に配信してもよい。例えば、サーバはスパースマップを1つもしくは複数の車両に配信してよい。サーバは、車両から新たなデータを受信すると、モデルを常にまたは定期的に更新してよい。例えば、サーバは、新たなデータを処理し、サーバでデータの更新または新たなデータの作成を作動させるべき情報が当該データに含まれているかどうかを評価してよい。サーバは、自動運転車ナビゲーションを提供するために、更新されたモデルまたは更新情報を車両に配信してよい。
【0249】
サーバは、車両から受信した新たなデータがモデルの更新を作動させるのか、または新たなデータの作成を作動させるのかを判定するために、1つもしくは複数の基準を用いてよい。例えば、以前に認識した特定の位置にあるランドマークがもう存在していない、または別のランドマークに置き換えられていることを新たなデータが示している場合、サーバは、新たなデータがモデルの更新を作動させるべきと判定してよい。別の例として、ある道路セグメントが閉鎖されていることを新たなデータが示している場合、且つこのことが他の車両から受信したデータによって裏付けられている場合、サーバは、新たなデータがモデルの更新を作動させるべきと判定してよい。
【0250】
サーバは、更新したモデル(またはモデルの更新部分)を、モデルの更新が関連づけられている道路セグメントを走行している1つもしくは複数の車両に配信してよい。サーバは、モデルの更新が関連づけられている道路セグメントを走行する予定の車両、または当該道路セグメントが自車の移動計画に含まれている車両にも、更新したモデルを配信してよい。例えば、自動運転車が、ある更新に関連づけられている道路セグメントに到達する前に別の道路セグメントを走行している間に、サーバは、当該車両がこの道路セグメントに到達する前に、更新情報または更新したモデルを当該自動運転車に配信してよい。
【0251】
いくつかの実施形態において、リモートサーバは、複数のクライアント(例えば、共通の道路セグメントに沿って走行する車両)から軌跡およびランドマークを収集してよい。サーバは、ランドマークを用いて曲線を一致させ、複数の車両から収集した軌跡に基づいて平均的な道路モデルを作成してよい。サーバは、道路セグメントの各交点または接続点において、道路のグラフおよび最も可能性の高い経路も計算してよい。例えば、リモートサーバは、収集した軌跡からクラウドソーシングによるスパースマップを生成するために、これらの軌跡を揃えてよい。
【0252】
サーバは、共通の道路セグメントに沿って走行した複数の車両から受信したランドマークの特性、例えば、複数の車両により測定された、あるランドマークと別のランドマーク(例えば、道路セグメント沿いの直前のランドマーク)との間の距離を平均化して、弧長パラメータを求め、経路に沿った位置特定、および速度較正をクライアント車両ごとに支援してよい。サーバは、共通の道路セグメントに沿って走行し且つ同じランドマークを認識した複数の車両により測定されたランドマークの物理的寸法を平均化してよい。平均化した物理的寸法は、車両からランドマークまでの距離といった距離推定を支援するのに用いられてよい。サーバは、共通の道路セグメントに沿って走行し且つ同じランドマークを認識した複数の車両により測定されたランドマークの横方向位置(例えば、車両が走行している車線からランドマークまでの位置)を平均化してよい。平均化した横方向位置は、車線指定を支援するのに用いられてよい。サーバは、同じ道路セグメントに沿って走行し且つ同じランドマークを認識した複数の車両により測定されたランドマークのGPS座標を平均化してよい。平均化したランドマークのGPS座標は、道路モデルにおいて、ランドマークの広範囲な位置特定または測位を支援するのに用いられてよい。
【0253】
いくつかの実施形態において、サーバは、車両から受信したデータに基づいて、モデルの変更点、例えば、工事、迂回路、新たな標識、標識の除去などを識別してよい。サーバは、車両から新たなデータを受信すると、モデルを常にまたは定期的にまたは即座に更新してよい。サーバは、自動ナビゲーションを提供するために、モデルの更新情報または更新されたモデルを車両に配信してよい。例えば、以下でさらに論じるように、サーバは、車両が検出された「ゴースト」ランドマークを除外するために、クラウドソーシングによるデータを用いてよい。
【0254】
いくつかの実施形態において、サーバは、自動運転時に運転者の介入を分析してよい。サーバは、介入が行われた時間および場所で車両から受信したデータ、および/または介入が行われた時間の前に受信したデータを分析してよい。サーバは、介入を引き起こした、または介入に密接に関連しているデータ、例えば、一時的な車線通行止めの設定を示すデータ、道路に歩行者がいることを示すデータのある程度の部分を識別してよい。サーバは、識別したデータに基づいてモデルを更新してよい。例えば、サーバは、モデルに格納された1つもしくは複数の軌跡を変更してよい。
【0255】
図12は、クラウドソーシングを用いてスパースマップを生成する(および、クラウドソーシングによるスパースマップを配信し、これを用いてナビゲートする)システムの概略図である。
図12は、1つもしくは複数の車線を含む道路セグメント1200を示している。複数の車両1205、1210、1215、1220および、1225は(
図12には道路セグメント1200に同時に現れるように示されているが)、道路セグメント1200を同時に走行しても、異なる時間に走行してもよい。車両1205、1210、1215、1220、および1225のうちの少なくとも1つは、自動運転車であってよい。本例を簡単にするために、車両1205、1210、1215、1220、および1225の全てが自動運転車であると仮定する。
【0256】
各車両は、他の実施形態で開示された車両(例えば、車両200)と同様であってよく、他の実施形態で開示された車両に含まれる、またはその車両に関連する構成要素またはデバイスを含んでもよい。各車両は、画像取り込みデバイスまたはカメラ(例えば、画像取り込みデバイス122またはカメラ122)を備えてよい。各車両は、1つもしくは複数のネットワークを介し(例えば、セルラネットワークおよび/またはインターネットなどを介し)、破線で示されている無線通信経路1235を通じてリモートサーバ1230と通信してよい。各車両は、データをサーバ1230に送信し、サーバ1230からデータを受信してよい。例えば、サーバ1230は、道路セグメント1200を異なる時間に走行する複数の車両からデータを収集してよく、収集したデータを処理して、自動運転車向け道路ナビゲーションモデルまたは当該モデルの更新を生成してよい。サーバ1230は、自動運転車向け道路ナビゲーションモデルまたは当該モデルの更新を、サーバ1230にデータを送信した車両に送信してよい。サーバ1230は、自動運転車向け道路ナビゲーションモデルまたは当該モデルの更新を、後に道路セグメント1200を走行する他の車両に送信してよい。
【0257】
車両1205、1210、1215、1220、および1225が道路セグメント1200を走行すると、車両1205、1210、1215、1220、および1225により収集された(例えば、検出された、検知された、または測定された)ナビゲーション情報がサーバ1230に送信されてよい。いくつかの実施形態において、ナビゲーション情報は共通の道路セグメント1200に関連づけられてよい。ナビゲーション情報は、各車両が道路セグメント1200を走行するときに車両1205、1210、1215、1220、および1225のそれぞれに関連づけられる軌跡を含んでよい。いくつかの実施形態において、軌跡は、車両1205に設けられた様々なセンサおよびデバイスにより検知されたデータに基づいて再構築されてよい。例えば、軌跡は、加速度計データ、速度データ、ランドマークのデータ、道路の幾何構造またはプロファイルデータ、車両の測位データ、およびエゴモーションデータのうちの少なくとも1つに基づいて再構築されてよい。いくつかの実施形態において、軌跡は、加速度計などの慣性センサからのデータ、および速度センサにより検知された車両1205の速度に基づいて再構築されてよい。さらに、いくつかの実施形態において、軌跡は(例えば、車両1205、1210、1215、1220、および1225のそれぞれに搭載したプロセッサにより)、3次元並進および/または3次元回転(または回転運動)を示し得る検知されたカメラのエゴモーションに基づいて決定されてよい。カメラ(したがって、車体)のエゴモーションは、カメラが取り込んだ1つもしくは複数の画像の分析から特定されてよい。
【0258】
いくつかの実施形態において、車両1205の軌跡は、車両1205に搭載されたプロセッサにより決定されて、サーバ1230に送信されてよい。他の実施形態において、サーバ1230は、車両1205に設けられた様々なセンサおよびデバイスにより検知されたデータを受信し、車両1205から受信したデータに基づいて軌跡を決定してよい。
【0259】
いくつかの実施形態において、車両1205、1210、1215、1220、および1225からサーバ1230に送信されるナビゲーション情報には、路面、道路の幾何構造、または道路プロファイルに関するデータが含まれてよい。道路セグメント1200の幾何構造には、車線構成および/またはランドマークが含まれてよい。車線構成には、道路セグメント1200の車線総数、車線のタイプ(例えば、一方通行車線、双方向車線、走行車線、追い越し車線など)、車線上の標示、車線の幅などが含まれてよい。いくつかの実施形態において、ナビゲーション情報には、車線指定、例えば複数の車線のうちのどの車線を車両が走行することになるかが含まれてよい。例えば、車線指定は数値に関連づけられてよく、「3」は車両が左または右から3番目の車線を走行することを示している。別の例として、車線指定はテキスト値に関連づけられてよく、「中央車線」は車両が中央車線を走行することを示している。
【0260】
サーバ1230は、ナビゲーション情報を非一時的コンピュータ可読媒体に、例えば、ハードドライブ、コンパクトディスク、テープ、メモリなどに格納してよい。サーバ1230は、複数の車両1205、1210、1215、1220、および1225から受信したナビゲーション情報に基づいて、共通の道路セグメント1200用の自動運転車向け道路ナビゲーションモデルの少なくとも一部を(例えば、サーバ1230に含まれるプロセッサにより)生成してよく、このモデルをスパースマップの一部として格納してよい。サーバ1230は、道路セグメントの車線を異なる時間に走行する複数の車両(例えば、1205、1210、1215、1220、および1225)から受信したクラウドソーシングによるデータ(例えば、ナビゲーション情報)に基づいて、各車線に関連づけられる軌跡を決定してよい。サーバ1230は、クラウドソーシングによるナビゲーションデータに基づいて決定された複数の軌跡に基づいて、自動運転車向け道路ナビゲーションモデルまたはそのモデルの一部(例えば、更新部分)を生成してよい。サーバ1230は、車両のナビゲーションシステムに提供された既存の自動運転車向け道路ナビゲーションモデルを更新するために、道路セグメント1200を走行する自動運転車1205、1210、1215、1220、および1225のうちの1つもしくは複数、または後に道路セグメントを走行する任意の他の自動運転車に、モデルまたはモデルの更新部分を送信してよい。自動運転車向け道路ナビゲーションモデルは、自動運転車が共通の道路セグメント1200に沿って自律的にナビゲートする際に用いられてよい。
【0261】
上述したように、自動運転車向け道路ナビゲーションモデルは、スパースマップ(例えば、
図8に示すスパースマップ800)に含まれてよい。スパースマップ800は、道路の幾何構造および/または道路沿いのランドマークに関連するデータのスパース記録を含んでよく、これは、自動運転車の自動ナビゲーションを誘導するのに十分情報を与えることができ、しかも、過度のデータストレージを必要としない。いくつかの実施形態において、自動運転車向け道路ナビゲーションモデルは、スパースマップ800とは別に格納されてよく、ナビゲーションのためにモデルが実行されると、スパースマップ800からのマップデータを用いてよい。いくつかの実施形態において、自動運転車向け道路ナビゲーションモデルは、自動運転車1205、1210、1215、1220、および1225、または後に道路セグメント1200に沿って走行する他の車両の自動ナビゲーションを誘導するために、スパースマップ800に含まれるマップデータを用いて、道路セグメント1200に沿った目標軌跡を決定してよい。例えば、車両1205のナビゲーションシステムに含まれるプロセッサによって自動運転車向け道路ナビゲーションモデルが実行されると、モデルは、車両1205から受信したナビゲーション情報に基づいて決定された軌跡とスパースマップ800に含まれる所定の軌跡とをプロセッサに比較させて、車両1205の現在の走行コースを確認する且つ/または補正してよい。
【0262】
自動運転車向け道路ナビゲーションモデルでは、道路特徴または目標軌跡の幾何構造は、3次元空間内の曲線によって符号化されてよい。一実施形態において、この曲線は、1つまたは複数の接続3次元多項式を含む3次元スプラインであってよい。当業者であれば理解しているであろうが、スプラインとは、データをフィッティングするために一連の多項式によって区分的に定義されている数値関数であってよい。道路の3次元幾何構造データをフィッティングするためのスプラインには、線形スプライン(1次)、2次スプライン(2次)、3次スプライン(3次)、もしくは任意の他のスプライン(他の次数)、またはこの組み合わせが含まれてよい。スプラインには、道路の3次元幾何構造データのデータ点を接続する(例えば、フィッティングする)様々な次数の1つまたは複数の3次元多項式が含まれてよい。いくつかの実施形態において、自動運転車向け道路ナビゲーションモデルには、共通の道路セグメント(例えば、道路セグメント1200)または道路セグメント1200の車線に沿った目標軌跡に対応する3次元スプラインが含まれてよい。
【0263】
上述したように、スパースマップに含まれる自動運転車向け道路ナビゲーションモデルは、他の情報、例えば、道路セグメント1200沿いの少なくとも1つのランドマークの識別情報を含んでもよい。ランドマークは、車両1205、1210、1215、1220、および1225のそれぞれに設置されたカメラ(例えば、カメラ122)の視野内で視認可能であってよい。いくつかの実施形態において、カメラ122はランドマークの画像を取り込んでよい。車両1205に設けられたプロセッサ(例えば、プロセッサ180、190、または処理ユニット110)は、ランドマークの画像を処理して、ランドマークの識別情報を抽出してよい。ランドマークの実画像ではなく、ランドマークの識別情報はスパースマップ800に格納されてよい。ランドマークの識別情報は、実画像よりはるかに少ない記憶領域しか必要としなくてよい。他のセンサまたはシステム(例えば、GPSシステム)も、ランドマークの一定の識別情報(例えば、ランドマークの位置)を提供してよい。ランドマークには、交通標識、矢印標示、車線標示、破線の車線標示、信号機、一時停止線、方向標識(例えば、方向を示す矢印付きの高速道路出口標識、別の方向または場所を指し示す矢印付きの高速道路標識)、ランドマークビーコン、または街灯柱のうちの少なくとも1つが含まれてよい。ランドマークビーコンとは、車両に設置された受信器に信号を送信するまたは反射する、道路セグメントに沿って設置されたデバイス(例えば、RFIDデバイス)を指し、車両がこのデバイスのそばを通ると、車両が受信するビーコンと(例えば、デバイスのGPS位置から決定される)デバイスの位置とが、自動運転車向け道路ナビゲーションモデルおよび/またはスパースマップ800に含まれることになるランドマークとして用いられてよい。
【0264】
少なくとも1つのランドマークの識別情報は、少なくとも1つのランドマークの位置を含んでよい。ランドマークの位置は、複数の車両1205、1210、1215、1220、および1225に関連づけられたセンサシステム(例えば、全地球測位システム、慣性ベースの測位システム、ランドマークビーコンなど)を用いて行われた位置測定法に基づいて決定されてよい。いくつかの実施形態において、ランドマークの位置は、異なる車両1205、1210、1215、1220、および1225のセンサシステムにより複数のドライブで検出され、収集され、または受信された位置測定値を平均化することにより決定されてよい。例えば、車両1205、1210、1215、1220、および1225は位置測定値のデータをサーバ1230に送信してよく、サーバは、位置測定値を平均化し、平均化した位置測定値をランドマークの位置として用いてよい。ランドマークの位置は、その後のドライブで車両から受信する測定値によって常に微調整されてよい。
【0265】
ランドマークの識別情報には、ランドマークのサイズが含まれてよい。車両(例えば、1205)に設けられたプロセッサは、画像の分析に基づいてランドマークの物理的サイズを推定してよい。サーバ1230は、様々な車両から異なるドライブによる、同じランドマークの物理的サイズに関する複数の推定値を受信してよい。サーバ1230は、ランドマークの物理的サイズに到達するように様々な推定値を平均化し、そのランドマークのサイズを道路モデルに格納してよい。物理的サイズの推定値はさらに、車両からランドマークまでの距離を決定または推定するために用いられてよい。ランドマークまでの距離は、車両の現在の速度と、カメラの拡張焦点に対する画像に現れるランドマークの位置に基づく拡張スケールとに基づいて推定されてよい。例えば、ランドマークまでの距離は、Z=V×dt×R/Dで推定されてよく、ここで、Vは車両の速度であり、Rは時間t1におけるランドマークから拡張焦点までの画像内の距離であり、Dはt1からt2までの画像内のランドマークについての距離の変化である。dtは(t2-t1)を表している。例えば、ランドマークまでの距離は、Z=V×dt×R/Dで推定されてよく、ここで、Vは車両の速度であり、Rはランドマークと拡張焦点との間の画像内の距離であり、dtは時間間隔であり、Dはエピポーラ線に沿ったランドマークの画像変位である。上記の式と等価な他の式、例えば、Z=V×ω/Δωが、ランドマークまでの距離を推定するのに用いられてよい。ここで、Vは車両速度であり、ωは画像長(物体幅のようなもの)であり、Δωは単位時間における画像長の変化である。
【0266】
ランドマークの物理的サイズが既知である場合、ランドマークまでの距離も、次式、Z=f×W/ωに基づいて決定されてよい。ここで、fは焦点距離であり、Wはランドマークのサイズ(例えば、高さまたは幅)であり、ωはランドマークが画像を離れたときの画素の数である。上記の式から、距離Zの変化が、ΔZ=f×W×Δω/ω2+f×ΔW/ωを用いて計算されてよい。ここで、ΔWは平均化でゼロに減衰し、Δωは画像の境界ボックス精度を表す画素の数である。ランドマークの物理的サイズを推定する値が、複数の観測結果をサーバ側で平均化することで計算されてよい。距離推定で結果として生じる誤差は、非常に小さくなり得る。上記の式を用いるときに生じ得る誤差の発生源は2つある。すなわち、ΔWおよびΔωである。距離誤差に対するそれぞれの寄与分は、ΔZ=f×W×Δω/ω2+f×ΔW/ωで与えられる。しかしながら、ΔWは平均化によりゼロに減衰するので、ΔZはΔω(例えば、画像の境界ボックスの不正確さ)で求められる。
【0267】
未知の寸法のランドマークの場合、ランドマークまでの距離は、連続するフレームにわたってランドマーク上の特徴点を追跡することで推定され得る。例えば、制限速度標識上に現れる特定の特徴が2つ以上の画像フレームにわたって追跡されてよい。追跡したこれらの特徴に基づいて、特徴点ごとの距離の分布が生成されてよい。距離推定値は、距離の分布から抽出されてよい。例えば、距離の分布に現れる最も頻度が高い距離を、距離推定値として用いてよい。別の例として、距離の分布の平均を距離推定値として用いてよい。
【0268】
図13は、複数の3次元スプライン1301、1302、および1303で表される自動運転車向け道路ナビゲーションモデルの一例を示している。
図13に示す曲線1301、1302、および1303は、説明目的のためだけのものである。各スプラインには、複数のデータ点1310を接続した1つもしくは複数の3次元多項式が含まれてよい。各多項式は、1次多項式、2次多項式、3次多項式、または異なる次数を有する任意の好適な多項式の組み合わせであってもよい。各データ点1310は、車両1205、1210、1215、1220、および1225から受信したナビゲーション情報に関連づけられてよい。いくつかの実施形態において、各データ点1310は、ランドマークに関連するデータ(例えば、ランドマークのサイズ、位置、および識別情報)および/またはロードシグネチャプロファイル(例えば、道路の幾何構造、道路凹凸プロファイル、道路曲率プロファイル、道路幅プロファイル)に関連づけられてよい。いくつかの実施形態において、データ点1310のなかには、ランドマークに関連するデータに関連づけられるものもあってよく、ロードシグネチャプロファイルに関連するデータに関連づけられるものもあってよい。
【0269】
図14は、5つの別々のドライブから受信した未処理の位置データ1410(例えば、GPSデータ)を示している。あるドライブを別々の車両が同時に通行した場合、同じ車両が別々の時間に通行した場合、または別々の車両が別々の時間に通行した場合、当該ドライブは別のドライブから分かれてよい。位置データ1410の誤差および同じ車線内の複数の車両の異なる位置(例えば、ある車両が別の車両よりも車線の左側の近くを走行しているかもしれない)を考慮するために、サーバ1230は、1つまたは複数の統計的手法を用いてマップの骨組み1420を生成し、未処理の位置データ1410の変化が実際の相違を表しているのか、統計誤差を表しているのかを判定してよい。マップの骨組み1420に含まれる各経路は、その経路を形成した未処理データ1410にあらためて関連づけられてよい。例えば、マップの骨組み1420に含まれるAとBとの間の経路は、ドライブ2、3、4、および5からの未処理データ1410に関連づけられるが、ドライブ1からの未処理データには関連づけられない。骨組み1420は、(例えば、上述したスプラインと異なり、同じ道路の複数の車線からのドライブを組み合わせるため)車両のナビゲートに用いられるほど詳細でなくてもよいが、有用なトポロジー情報を提供することができ、交差点を定義するのに用いることができる。
【0270】
図15は、マップの骨組みのセグメント(例えば、骨組み1420に含まれるA~Bのセグメント)に含まれるスパースマップ用に、さらなる詳細が生成され得る一例を示している。
図15に示すように、データ(例えば、エゴモーションデータ、道路標示のデータなど)が、ドライブに沿った位置S(またはS
1もしくはS
2)に応じて示されてよい。サーバ1230は、ドライブ1510のランドマーク1501、1503、および1505と、ドライブ1520のランドマーク1507および1509との一意の一致を識別することにより、スパースマップ用のランドマークを識別してよい。そのようなマッチングアルゴリズムによって、ランドマーク1511、1513、および1515を識別することになり得る。しかしながら当業者であれば、他のマッチングアルゴリズムを用いてもよいことを認識するであろう。例えば、一意の一致の代わりに、またはこれと組み合わせて確率最適化を用いてもよい。サーバ1230は、各ドライブを長手方向に揃えて、一致したランドマークを揃えてよい。例えばサーバ1230は、1つのドライブ(例えば、ドライブ1520)を基準ドライブとして選択し、次いでその他のドライブ(例えば、ドライブ1510)を揃えるために移動させる且つ/または弾性的に引き延ばしてよい。
【0271】
図16は、スパースマップに用いるためにランドマークデータを揃えた一例を示している。
図16の例では、ランドマーク1610は道路標識を含む。
図16の例はさらに、複数のドライブ1601、1603、1605、1607、1609、1611、および1613からのデータを示している。
図16の例では、ドライブ1613からのデータは「ゴースト」ランドマークで構成されており、サーバ1230はこのデータをそのようなものとして識別してよい。なぜならば、ドライブ1601、1603、1605、1607、1609、および1611のどれにも、ドライブ1613で識別されたランドマークの近くにランドマークの識別情報が含まれないからである。したがって、サーバ1230は、ランドマークが現れる画像とランドマークが現れない画像との比率が閾値を超える場合、可能性のあるランドマークを受け入れてよく、且つ/またはランドマークが現れない画像とランドマークが現れる画像との比率が閾値を超える場合、可能性のあるランドマークを排除してよい。
【0272】
図17は、スパースマップをクラウドソーシングするのに用いられ得る、ドライブデータを生成するためのシステム1700を示している。
図17に示すように、システム1700は、カメラ1701と位置特定デバイス1703(例えば、GPSロケータ)を含んでよい。カメラ1701および位置特定デバイス1703は、車両(例えば、車両1205、1210、1215、1220、および1225のうちの1つ)に取り付けられてよい。カメラ1701は、複数のタイプの複数のデータ、例えば、エゴモーションデータ、交通標識データ、または道路データなどを生成してよい。カメラデータおよび位置データは、複数のドライブセグメント1705に分割されてよい。例えば、複数のドライブセグメント1705はそれぞれ、1km未満の走行からのカメラデータおよび位置データを有してよい。
【0273】
いくつかの実施形態において、システム1700は、ドライブセグメント1705の冗長性を取り除いてよい。例えば、カメラ1701からの複数の画像にランドマークが現れる場合、ドライブセグメント1705にはランドマークの位置およびランドマークに関連する任意のメタデータが1部だけ含まれるように、システム1700は冗長なデータを取り除いてよい。さらなる例として、カメラ1701からの複数の画像に車線標示が現れる場合、ドライブセグメント1705には車線標示の位置および車線標示に関連する任意のメタデータが1部だけ含まれるように、システム1700は冗長なデータを取り除いてよい。
【0274】
システム1700は、サーバ(例えば、サーバ1230)も含む。サーバ1230は、車両からドライブセグメント1705を受信し、これらのドライブセグメント1705を再結合して1つのドライブ1707にしてよい。そのようなやり方によって、車両とサーバとの間でデータを転送するときの帯域幅要件の低減が可能になると共に、サーバがドライブ全体に関連するデータを格納することも可能になり得る。
【0275】
図18は、さらにスパースマップをクラウドソーシングするように構成された、
図17のシステム1700を示す。
図17にあるように、システム1700は車両1810を含み、当該車両は、例えば、カメラ(これは例えば、エゴモーションデータ、交通標識データ、または道路データなどを生成する)および位置特定デバイス(例えば、GPSロケータ)を用いてドライブデータを取り込む。
図17にあるように、車両1810は、収集したデータを複数のドライブセグメント(
図18には「DS1 1」、「DS2 1」、「DSN 1」と示されている)に分割する。サーバ1230は次に、ドライブセグメントを受信し、受信したこれらのセグメントから1つのドライブ(
図18には「ドライブ1」と示されている)を再構築する。
【0276】
図18にさらに示すように、システム1700は追加の車両からもデータを受信する。例えば、車両1820も、例えば、カメラ(これは例えば、エゴモーションデータ、交通標識データ、または道路データなどを生成する)および位置特定デバイス(例えば、GPSロケータ)を用いてドライブデータを取り込む。車両1810と同様に、車両1820は、収集したデータを複数のドライブセグメント(
図18には「DS1 2」、「DS2 2」、「DSN 2」と示されている)に分割する。サーバ1230は次に、ドライブセグメントを受信し、受信したこれらのセグメントから1つのドライブ(
図18には「ドライブ2」と示されている)を再構築する。任意の数の追加の車両が用いられてよい。例えば、
図18は自動車Nも含み、当該自動車は、ドライブデータを取り込み、そのデータを複数のドライブセグメント(
図18には「DS1 N」、「DS2 N」、「DSN N」と示されている)に分割し、これらをサーバ1230に送信して1つのドライブ(
図18には「ドライブN」と示されている)に再構築する。
【0277】
図18に示すように、サーバ1230は、複数の車両(例えば、「自動車1」(車両1810とも表示されている)、「自動車2」(車両1820とも表示されている)、および「自動車N」)から収集した再構築済みのドライブ(例えば、「ドライブ1」、「ドライブ2」、および「ドライブN」)を用いて、スパースマップ(「マップ」と示されている)を構築してよい。
【0278】
図19は、道路セグメントに沿った自動運転車ナビゲーション用のスパースマップを生成するためのプロセス1900の一例を示すフローチャートである。プロセス1900は、サーバ1230に含まれる1つまたは複数の処理デバイスにより行われてよい。
【0279】
プロセス1900は、1つまたは複数の車両が道路セグメントを通行するときに取得した複数の画像を受信する段階(段階1905)を含んでよい。サーバ1230は、車両1205、1210、1215、1220、および1225のうちの1つまたは複数に含まれるカメラから画像を受信してよい。例えば、カメラ122は、車両1205が道路セグメント1200を走行するときに、車両1205を取り囲む環境に関する1つまたは複数の画像を取り込んでよい。いくつかの実施形態において、サーバ1230は、
図17に関して上述したように、車両1205に搭載されたプロセッサによって冗長性が取り除かれた、余分なものを除いた画像データも受信してよい。
【0280】
プロセス1900はさらに、複数の画像に基づいて、道路セグメントに沿って延びる路面特徴の少なくとも1つのライン表現を識別する段階(段階1910)を含んでよい。各ライン表現は、路面特徴と実質的に対応する、道路セグメントに沿った経路を表してよい。例えば、サーバ1230は、カメラ122から受信した環境画像を分析し、道路エッジまたは車線標示を識別して、道路エッジまたは車線標示に関連づけられる道路セグメント1200に沿った走行の軌跡を決定してよい。いくつかの実施形態において、軌跡(またはライン表現)は、スプライン、多項式表現、または曲線を含んでよい。サーバ1230は、段階1905で受信したカメラのエゴモーション(例えば、3次元並進運動および/または3次元回転運動)に基づいて、車両1205の走行の軌跡を決定してよい。
【0281】
プロセス1900は、複数の画像に基づいて、道路セグメントに関連づけられる複数のランドマークを識別する段階(段階1915)も含んでよい。例えば、サーバ1230は、カメラ122から受信した環境画像を分析し、道路セグメント1200沿いの道路標識などの1つもしくは複数のランドマークを識別してよい。サーバ1230は、1つまたは複数の車両が道路セグメントを通行するときに取得した複数の画像の分析を用いて、ランドマークを識別してよい。クラウドソーシングを可能にするために、分析には、道路セグメントに関連する可能性のあるランドマークを受け入れること、および排除することに関するルールが含まれてよい。例えば、分析には、ランドマークが現れる画像とランドマークが現れない画像との比率が閾値を超える場合、可能性のあるランドマークを受け入れる段階、および/またはランドマークが現れない画像とランドマークが現れる画像との比率が閾値を超える場合、可能性のあるランドマークを排除する段階を含んでよい。
【0282】
プロセス1900は、サーバ1230により行われる他の操作または段階を含んでよい。例えば、ナビゲーション情報には車両が道路セグメントに沿って走行するための目標軌跡が含まれてよく、プロセス1900は、以下でさらに詳細に論じるように、サーバ1230が道路セグメントを走行する複数の車両に関連する車両軌跡をクラスタ化して、クラスタ化した車両軌跡に基づいて目標軌跡を決定する段階を含んでよい。車両軌跡をクラスタ化する段階は、サーバ1230が、車両の絶対進行方向または車両の車線指定のうちの少なくとも一方に基づいて、道路セグメントを走行する車両に関連する複数の軌跡をクラスタ化して複数のクラスタにする段階を含んでよい。目標軌跡を生成する段階は、サーバ1230が、クラスタ化した軌跡を平均化する段階を含んでよい。さらなる例として、プロセス1900は、段階1905で受信したデータを揃える段階を含んでよい。サーバ1230により行われる他のプロセスまたは段階も、上述したように、プロセス1900に含まれてよい。
【0283】
開示するシステムおよび方法は、他の特徴を含んでよい。例えば、開示するシステムは、グローバル座標ではなくローカル座標を用いてよい。自動運転の場合、いくつかのシステムは、ワールド座標でデータを示すことがある。例えば、地表面の経度および緯度による座標が用いられてよい。ホスト車両は、マップを操縦に用いるために、マップに対する自車の位置および方位を決定してよい。マップ上で車両を測位するために、且つ本体基準フレームとワールド基準フレーム(例えば、北、東、および南)との間の回転変換を求めるために、搭載されたGPSデバイスを用いるのは自然なことのように思われる。本体基準フレームをマップ基準フレームに揃えると、所望のルートを本体基準フレームで表現することができ、操縦コマンドを計算することも、生成することもできる。
【0284】
開示するシステムおよび方法は、低フットプリントモデルを用いた自動運転車ナビゲーション(例えば、操縦制御)を可能にしてよく、このモデルは、高価な測量機器の助けを借りることなく、自動運転車そのものによって収集されてよい。自動ナビゲーション(例えば、ステアリングアプリケーション)を支援するために、道路モデルは、モデルに含まれる軌跡に沿った車両の位置または位置を決定するのに用いられ得る道路の幾何構造、その車線構成、およびランドマークを有するスパースマップを含んでよい。上述したように、スパースマップの生成は、道路を走行する車両と通信し且つ車両からデータを受信するリモートサーバにより行われてよい。このデータには、検知データ、検知データに基づいて再構築された軌跡、および/または再構築された軌跡の変更を表し得る推奨軌跡が含まれてよい。以下で論じるように、サーバは、車両または後に道路を走行する他の車両にあらためてモデルを送信して、自動ナビゲーションに役立てることができる。
【0285】
図20は、サーバ1230のブロック図を示している。サーバ1230は通信ユニット2005を含んでよく、このユニットは、ハードウェアコンポーネント(例えば、通信制御回路、スイッチ、およびアンテナ)とソフトウェアコンポーネント(例えば、通信プロトコル、コンピュータコード)とを両方とも含んでよい。例えば、通信ユニット2005は、少なくとも1つのネットワークインタフェースを含んでよい。サーバ1230は、通信ユニット2005を介して、車両1205、1210、1215、1220、および1225と通信してよい。例えば、サーバ1230は、通信ユニット2005を介して、車両1205、1210、1215、1220、および1225から送信されるナビゲーション情報を受信してよい。サーバ1230は、通信ユニット2005を介して、自動運転車向け道路ナビゲーションモデルを1つまたは複数の自動運転車に配信してよい。
【0286】
サーバ1230は、少なくとも1つの非一時的記憶媒体2010、例えば、ハードドライブ、コンパクトディスク、テープなどを含んでよい。ストレージデバイス1410は、車両1205、1210、1215、1220、および1225から受信したナビゲーション情報などのデータ、並びに/またはナビゲーション情報に基づいてサーバ1230が生成する自動運転車向け道路ナビゲーションモデルを格納するように構成されてよい。ストレージデバイス2010は、スパースマップ(例えば、
図8に関して上述したスパースマップ800)などの任意の他の情報を格納するように構成されてよい。
【0287】
ストレージデバイス2010に加えて、またはその代わりに、サーバ1230はメモリ2015を含んでよい。メモリ2015は、メモリ140または150と同様であっても、これと異なってもよい。メモリ2015は、フラッシュメモリ、ランダムアクセスメモリなどといった、非一時的メモリであってよい。メモリ2015はデータを格納するように構成されてよく、そのようなデータには、プロセッサ(例えば、プロセッサ2020)が実行可能なコンピュータコードもしくは命令、マップデータ(例えば、スパースマップ800のデータ)、自動運転車向け道路ナビゲーションモデル、並びに/または車両1205、1210、1215、1220、および1225から受信したナビゲーション情報などがある。
【0288】
サーバ1230は、メモリ2015に格納されたコンピュータコードまたは命令を実行して、様々な機能を果たすように構成された少なくとも1つの処理デバイス2020を含んでよい。例えば、処理デバイス2020は、車両1205、1210、1215、1220、および1225から受信したナビゲーション情報を分析し、この分析に基づいて自動運転車向け道路ナビゲーションモデルを生成してよい。処理デバイス2020は、通信ユニット1405を制御して、自動運転車向け道路ナビゲーションモデルを1つまたは複数の自動運転車(例えば、車両1205、1210、1215、1220、および1225のうちの1つまたは複数、あるいは後に道路セグメント1200を走行する任意の車両)に配信してよい。処理デバイス2020は、プロセッサ180、190、または処理ユニット110と同様であっても、異なってもよい。
【0289】
図21は、メモリ2015のブロック図を示しており、このメモリは、自動運転車ナビゲーションに用いる道路ナビゲーションモデルを生成するのに1つまたは複数の操作を行うためのコンピュータコードまたは命令を格納してよい。
図21に示すように、メモリ2015は、車両ナビゲーション情報を処理する操作を行うための1つまたは複数のモジュールを格納してよい。例えば、メモリ2015は、モデル生成モジュール2105とモデル配信モジュール2110とを含んでよい。プロセッサ2020は、メモリ2015に含まれるモジュール2105および2110のうちのいずれかに格納された命令を実行してよい。
【0290】
モデル生成モジュール2105は命令を格納してよく、この命令は、プロセッサ2020により実行されると、車両1205、1210、1215、1220、および1225から受信したナビゲーション情報に基づいて、共通の道路セグメント(例えば、道路セグメント1200)用の自動運転車向け道路ナビゲーションモデルの少なくとも一部を生成してよい。例えば、自動運転車向け道路ナビゲーションモデルを生成する際に、プロセッサ2020は、共通の道路セグメント1200に沿った車両軌跡を様々なクラスタにクラスタ化してよい。プロセッサ2020は、様々なクラスタのそれぞれのクラスタ化された車両軌跡に基づいて、共通の道路セグメント1200に沿った目標軌跡を決定してよい。そのような操作には、各クラスタにおいて、クラスタ化された車両軌跡の平均軌跡を(例えば、クラスタ化された車両軌跡を表すデータを平均化することにより)求める段階が含まれてよい。いくつかの実施形態において、目標軌跡は、共通の道路セグメント1200の単一の車線に関連づけられてよい。
【0291】
道路モデルおよび/またはスパースマップは、道路セグメントに関連づけられた軌跡を格納してよい。これらの軌跡は、目標軌跡と呼ばれることがあり、自動ナビゲーションのために自動運転車に提供される。目標軌跡は、複数の車両から受信されてもよく、複数の車両から受信した実際の軌跡または推奨軌跡(一部の変更を伴った実際の軌跡)に基づいて生成されてもよい。道路モデルまたはスパースマップに含まれる目標軌跡は、他の車両から受信した新たな軌跡を用いて常に更新(例えば、平均化)されてよい。
【0292】
道路セグメントを走行する車両は、様々なセンサでデータを収集してよい。データは、ランドマーク、ロードシグネチャプロファイル、車両の動き(例えば、加速度計データ、速度データ)、車両位置(例えば、GPSデータ)を含んでよく、実際の軌跡そのものを再構築するか、またはデータをサーバに送信するかどちらでもよく、サーバは実際の軌跡を車両用に再構築することになる。いくつかの実施形態において、車両は、軌跡(例えば、任意の基準フレームにおける曲線)に関連するデータ、ランドマークのデータ、および走行経路に沿った車線指定をサーバ1230に送信してよい。同じ道路セグメントに沿って複数のドライブで走行する様々な車両が、別々の軌跡を有してよい。サーバ1230は、クラスタ化プロセスを通じて車両から受信した軌跡から、各車線に関連づけられたルートまたは軌跡を識別してよい。
【0293】
図22は、共通の道路セグメント(例えば、道路セグメント1200)の目標軌跡を決定するために、車両1205、1210、1215、1220、および1225に関連づけられた車両軌跡をクラスタ化するプロセスを示している。クラスタ化プロセスから決定される目標軌跡または複数の目標軌跡は、自動運転車向け道路ナビゲーションモデルまたはスパースマップ800に含まれてよい。いくつかの実施形態において、道路セグメント1200を走行する車両1205、1210、1215、1220、および1225は、複数の軌跡2200をサーバ1230に送信してよい。いくつかの実施形態において、サーバ1230は、車両1205、1210、1215、1220、および1225から受信したランドマーク、道路の幾何構造、および車両の動き情報に基づいて、軌跡を生成してよい。自動運転車向け道路ナビゲーションモデルを生成するために、サーバ1230は、
図22に示すように、車両軌跡1600をクラスタ化して複数のクラスタ2205、2210、2215、2220、2225、および2230にしてよい。
【0294】
クラスタ化は、様々な基準を用いて行われてよい。いくつかの実施形態では、クラスタに含まれる全てのドライブが、道路セグメント1200に沿った絶対進行方向に関して類似していてよい。絶対進行方向は、車両1205、1210、1215、1220、および1225により受信されるGPS信号から取得されてよい。いくつかの実施形態において、絶対進行方向は推測航法を用いて取得されてよい。推測航法は、当業者であれば理解できるように、現在位置、したがって車両1205、1210、1215、1220、および1225の進行方向を、以前に決定された位置、推定速度などを用いて決定するのに用いられてよい。絶対進行方向によりクラスタ化された軌跡は、車道に沿ってルートを識別するのに役立ち得る。
【0295】
いくつかの実施形態では、クラスタに含まれる全てのドライブが、道路セグメント1200のドライブに沿った車線指定(例えば、交差点の前後では同じ車線)に関して類似していてよい。車線指定によりクラスタ化された軌跡は、車道に沿って車線を識別するのに役立ち得る。いくつかの実施形態では、両方の基準(例えば、絶対進行方向および車線指定)がクラスタ化に用いられてよい。
【0296】
各クラスタ2205、2210、2215、2220、2225、および2230では、これらの軌跡を平均化して、特定のクラスタに関連づけられる目標軌跡を取得してよい。例えば、同じ車線クラスタに関連づけられた複数のドライブからの軌跡を平均化してよい。平均化された軌跡は、特定の車線に関連づけられた目標軌跡であってよい。あるクラスタの軌跡を平均化するために、サーバ1230は、任意の軌跡C0の基準フレームを選択してよい。全ての他の軌跡(C1、…、Cn)について、サーバ1230は、CiをC0にマッピングするリジッド変換を求めてよい。ここで、i=1、2、…、nであり、nはクラスタに含まれる軌跡の総数に対応する正の整数である。サーバ1230は、C0基準フレームにおける平均曲線または軌跡を計算してよい。
【0297】
いくつかの実施形態において、ランドマークは、異なるドライブ間で一致する弧長を規定してよく、これは軌跡と車線とを揃えるのに用いられてよい。いくつかの実施形態では、交差点の前後の車線標示が、軌跡と車線とを揃えるのに用いられることがある。
【0298】
これらの軌跡から車線を編成するために、サーバ1230は、任意の車線の基準フレームを選択してよい。サーバ1230は、選択した基準フレームに、部分的に重なり合っている車線をマッピングしてよい。サーバ1230は、全ての車線が同じ基準フレームに入るまでマッピングを継続してよい。互いに隣り合う車線が、あたかも同じ車線であるかのように揃えられてよく、後にこれを横方向に移動させてよい。
【0299】
道路セグメントに沿って認識されたランドマークが、まず車線レベルで、次に交差点レベルで共通の基準フレームにマッピングされてよい。例えば、同じランドマークは、複数のドライブで複数の車両により複数回認識されることがある。別々のドライブで受信した同じランドマークに関するデータは、わずかに異なることがある。そのようなデータは、平均化されて、C0基準フレームなどの同じ基準フレームにマッピングされてよい。さらに、またはその代わりに、複数のドライブで受信した同じランドマークのデータの分散を計算してもよい。
【0300】
いくつかの実施形態において、道路セグメント120の各車線は、目標軌跡および特定のランドマークに関連づけられてよい。この目標軌跡または複数のそのような目標軌跡は、自動運転車向け道路ナビゲーションモデルに含まれてよく、同じ道路セグメント1200に沿って走行する他の自動運転車によって後に用いられてよい。車両1205、1210、1215、1220、および1225が道路セグメント1200に沿って走行している間に、これらの車両により識別されたランドマークが、目標軌跡と共に記録されてよい。目標軌跡およびランドマークのデータは、その後のドライブで他の車両から受信した新たなデータで常にまたは定期的に更新されてよい。
【0301】
自動運転車の位置特定のために、開示するシステムおよび方法は、拡張カルマンフィルタを用いてよい。車両の位置は、3次元位置データおよび/または3次元方位データ、エゴモーションの集積による車両の現在位置の先の将来位置の予測に基づいて決定されてよい。車両の位置特定は、ランドマークの画像観測によって補正されても、調整されてもよい。例えば、車両がカメラにより取り込まれた画像内にあるランドマークを検出した場合、当該ランドマークは道路モデルまたはスパースマップ800に格納された既知のランドマークと比較されてよい。既知のランドマークは、道路モデルおよび/またはスパースマップ800に格納された目標軌跡に沿った既知の位置(例えば、GPSデータ)を有して得る。現在の速度およびランドマークの画像に基づいて、車両からランドマークまでの距離を推定することができる。目標軌跡に沿った車両の位置は、ランドマークまでの距離と(道路モデルまたはスパースマップ800に格納されている)ランドマークの既知の位置とに基づいて調整されてよい。道路モデルおよび/またはスパースマップ800に格納されたランドマークの位置/場所データ(例えば、複数のドライブからの平均値)は、正確であると仮定されてよい。
【0302】
いくつかの実施形態において、開示するシステムは閉ループサブシステムを形成してよく、このサブシステムでは、車両の6自由度(例えば、3次元位置データおよび3次元方位データ)の位置推定を用いて、所望の点(例えば、格納された点の1.3秒先)に到達できるように自動運転車をナビゲート(例えば、自動運転車のハンドルを操縦)してよい。次に、操縦および実際のナビゲーションから測定されたデータを用いて、6自由度の位置を推定してよい。
【0303】
いくつかの実施形態では、道路沿いのポール、例えば、街灯柱および送電線またはケーブル線の電柱が、車両の位置を特定するためのランドマークとして用いられることがある。交通標識、信号機、道路上の矢印、一時停止線といった他のランドマーク、および道路セグメント沿いの物体の静的な特徴または署名も、車両の位置を特定するためのランドマークとして用いられてよい。ポールを位置特定に用いる場合、ポールのy方向の観測(すなわち、ポールまでの距離)ではなく、x方向の観測(すなわち、車両からの視野角)が用いられてよい。なぜならば、ポールの下部が遮られることがあり、場合によってはポールが道路面上にないからである。
【0304】
図23は車両用ナビゲーションシステムを示しており、このシステムは、クラウドソーシングによるスパースマップを用いた自動ナビゲーションに用いられてよい。説明のために、車両は車両1205として参照される。
図23に示す車両は、本明細書に開示される任意の他の車両であってよく、例えば、車両1210、1215、1220、および1225、並びに他の実施形態に示す車両200が含まれてよい。
図12に示すように、車両1205はサーバ1230と通信してよい。車両1205には、画像取り込みデバイス122(例えば、カメラ122)が含まれてよい。車両1205には、車両1205が道路(例えば、道路セグメント1200)を走行するためのナビゲーションガイダンスを提供するように構成されたナビゲーションシステム2300が含まれてよい。車両1205には、速度センサ2320および加速度計2325などの他のセンサも含まれてよい。速度センサ2320は、車両1205の速度を検出するように構成されてよい。加速度計2325は、車両1205の加速または減速を検出するように構成されてよい。
図23に示す車両1205は自動運転車であってよく、ナビゲーションシステム2300は自動運転用のナビゲーションガイダンスを提供するのに用いられてよい。あるいは、車両1205は、非自律的で人が制御する車両であってもよく、ナビゲーションシステム2300はそれでも、ナビゲーションガイダンスを提供するのに用いられてよい。
【0305】
ナビゲーションシステム2300には、通信経路1235を介してサーバ1230と通信するように構成された通信ユニット2305が含まれてよい。ナビゲーションシステム2300には、GPS信号を受信して処理するように構成されたGPSユニット2310も含まれてよい。ナビゲーションシステム2300にはさらに、少なくとも1つのプロセッサ2315が含まれてよく、このプロセッサは、GPS信号、スパースマップ800からのマップデータ(このデータは、車両1205に搭載されたストレージデバイスに格納されてもよく且つ/またはサーバ1230から受信されてもよい)、道路プロファイルセンサ2330により検知された道路の幾何構造、カメラ122により取り込まれた画像、並びに/またはサーバ1230から受信した自動運転車向け道路ナビゲーションモデルなどのデータを処理するように構成される。道路プロファイルセンサ2330には、路面凹凸、道路幅、道路標高、道路曲率などといった異なるタイプの道路プロファイルを測定するための、異なるタイプのデバイスが含まれてよい。例えば、道路プロファイルセンサ2330には、道路凹凸プロファイルを得るために、車両2305のサスペンションの動きを測定するデバイスが含まれてよい。いくつかの実施形態において、道路プロファイルセンサ2330には、車両1205から路側部(例えば、路側部の障壁)までの距離を測定するレーダーセンサが含まれてよく、これにより、道路の幅が測定される。いくつかの実施形態において、道路プロファイルセンサ2330には、道路の標高の上昇および下降を測定するように構成されたデバイスが含まれてよい。いくつかの実施形態において、道路プロファイルセンサ2330には、道路曲率を測定するように構成されたデバイスが含まれてよい。例えば、カメラ(例えば、カメラ122または別のカメラ)を用いて、道路曲率を示す道路の画像を取り込んでもよい。車両1205は、そのような画像を用いて、道路曲率を検出してよい。
【0306】
少なくとも1つのプロセッサ2315は、車両1205に関連する少なくとも1つの環境画像をカメラ122から受信するようにプログラムされてよい。少なくとも1つのプロセッサ2315は、少なくとも1つの環境画像を分析して、車両1205に関連するナビゲーション情報を特定してよい。ナビゲーション情報には、道路セグメント1200に沿った車両1205の走行に関連する軌跡が含まれてよい。少なくとも1つのプロセッサ2315は、カメラ122(したがって車両)の動き、例えば、3次元並進運動および3次元回転運動などに基づいて軌跡を決定してよい。いくつかの実施形態において、少なくとも1つのプロセッサ2315は、カメラ122が取得した複数の画像の分析に基づいて、カメラ122の並進運動および回転運動を特定してよい。いくつかの実施形態において、ナビゲーション情報には、車線指定情報(例えば、車両1205が道路セグメント1200に沿ってどの車線を走行するか)が含まれてよい。車両1205からサーバ1230に送信されるナビゲーション情報は、サーバ1230が自動運転車向け道路ナビゲーションモデルを生成する且つ/または更新するのに用いられてよく、この情報は、自動ナビゲーションガイダンスを車両1205に提供するために、あらためてサーバ1230から車両1205に送信されてよい。
【0307】
少なくとも1つのプロセッサ2315は、車両1205からサーバ1230にナビゲーション情報を送信するようにもプログラムされてよい。いくつかの実施形態において、ナビゲーション情報は、道路情報と共にサーバ1230に送信されてよい。道路位置情報には、GPSユニット2310が受信するGPS信号、ランドマーク情報、道路の幾何構造、車線情報などのうちの少なくとも1つが含まれてよい。少なくとも1つのプロセッサ2315は、自動運転車向け道路ナビゲーションモデルまたはそのモデルの一部をサーバ1230から受信してよい。サーバ1230から受信する自動運転車向け道路ナビゲーションモデルには、車両1205からサーバ1230に送信されたナビゲーション情報に基づく少なくとも1つの更新が含まれてよい。サーバ1230から車両1205に送信されるモデルの一部には、モデルの更新部分が含まれてよい。少なくとも1つのプロセッサ2315は、受信した自動運転車向け道路ナビゲーションモデルまたはモデルの更新部分に基づいた、車両1205による少なくとも1つのナビゲーション操作(例えば、旋回を行う、ブレーキをかける、加速する、別の車両を追い越すなどといった操縦)を発生させてよい。
【0308】
少なくとも1つのプロセッサ2315は、車両1205に含まれる様々なセンサおよび構成要素と通信するように構成されてよく、そのようなセンサおよび構成要素には、通信ユニット1705、GPSユニット2315、カメラ122、速度センサ2320、加速度計2325、および道路プロファイルセンサ2330が含まれる。少なくとも1つのプロセッサ2315は、様々なセンサおよび構成要素から情報またはデータを収集して、その情報またはデータをサーバ1230に通信ユニット2305を介して送信してよい。その代わりに、またはさらに、車両1205の様々なセンサまたは構成要素も、サーバ1230と通信して、センサまたは構成要素が収集したデータまたは情報をサーバ1230に送信してよい。
【0309】
いくつかの実施形態において、車両1205、1210、1215、1220、および1225は互いに通信してよく、ナビゲーション情報を互いに共有してよい。これにより、車両1205、1210、1215、1220、および1225のうちの少なくとも1つが、クラウドソーシングを用いて、例えば、他の車両により共有された情報に基づいて、自動運転車向け道路ナビゲーションモデルを生成してよい。いくつかの実施形態において、車両1205、1210、1215、1220、および1225は、互いにナビゲーション情報を共有してよく、各車両は各車両に提供された自車の自動運転車向け道路ナビゲーションモデルを更新してよい。いくつかの実施形態において、車両1205、1210、1215、1220、および1225のうちの少なくとも1つ(例えば、車両1205)が、ハブ車両として機能してよい。ハブ車両(例えば、車両1205)の少なくとも1つのプロセッサ2315は、サーバ1230により行われる機能の一部または全部を果たしてよい。例えば、ハブ車両の少なくとも1つのプロセッサ2315は、他の車両と通信して、他の車両からナビゲーション情報を受信してよい。ハブ車両の少なくとも1つのプロセッサ2315は、他の車両から受信した共有情報に基づいて、自動運転車向け道路ナビゲーションモデルまたはモデルの更新を生成してよい。ハブ車両の少なくとも1つのプロセッサ2315は、自動ナビゲーションガイダンスを提供するために、自動運転車向け道路ナビゲーションモデルまたはモデルの更新を他の車両に送信してよい。
【0310】
[車線標示のマッピングとマッピングされた車線標示に基づくナビゲーション]
【0311】
前述したように、自動運転車向け道路ナビゲーションモデルおよび/またはスパースマップ800には、道路セグメントに関連づけられた、複数のマッピングされた車線標示が含まれてよい。以下でより詳細に論じるように、これらのマッピングされた車線標示は、自動運転車がナビゲートするときに用いられてよい。例えば、いくつかの実施形態において、マッピングされた車線標示は、計画した軌跡に対する横方向位置および/または方位を決定するのに用いられてよい。この位置情報を用いて、自動運転車は、決定位置において、目標軌跡の方向と一致するように進行方向を調整することが可能になり得る。
【0312】
車両200は、所与の道路セグメントにおいて車線標示を検出するように構成されてよい。道路セグメントには、車道の車両交通を誘導するための、道路上のあらゆる標示が含まれてよい。例えば、車線標示は、走行車線のエッジを画定する実線または破線であってよい。車線標示には、例えば、隣接車線で追い越しが許可されているかどうかを示す、二重実線、二重破線、または実線と破線との組み合わせなどの二重線も含まれてよい。車線標示には、高速道路の入口および出口の標示も含まれてよく、この標示は、例えば、出口ランプ用の減速車線、または車線が旋回専用であること、もしくは車線が終了することを示す点線を示している。これらの標示はさらに、作業区間、一時的な車線移動、交差点を通り抜ける経路、中央分離帯、専用車線(例えば、自転車専用車線、HOV車線など)、または他の様々な標示(例えば、横断歩道、車両減速用ハンプ、踏切、一時停止線など)を示してよい。
【0313】
車両200は、画像取得ユニット120に含まれる画像取り込みデバイス122および124などのカメラを用いて、周辺の車線標示の画像を取り込んでよい。車両200は、これらの画像を分析して、取り込んだ画像のうちの1つまたは複数で識別された特徴に基づいて、車線標示に関連する点の位置を検出してよい。これらの点の位置は、スパースマップ800に車線標示を表すために、サーバにアップロードされてよい。カメラの位置および視野に応じて、単一の画像から車両の両側の車線標示が同時に検出されることがある。他の実施形態では、車両の複数の面に取り付けた様々なカメラを用いて、画像を取り込むことがある。車線標示の実画像をアップロードするのではなく、これらの標示は、スプラインまたは一連の点としてスパースマップ800に格納されてよく、したがって、車両が遠隔にアップロードする必要があるスパースマップ800および/またはデータのサイズが削減される。
【0314】
図24A~
図24Dは、車両200により検出され得る、特定の車線標示を表すための例示的な点の位置を示している。上述したランドマークと同様に、車両200は様々な画像認識アルゴリズムまたはソフトウェアを用いて、取り込んだ画像内の点の位置を識別してよい。例えば、車両200は、特定の車線標示に関連づけられる一連のエッジ点、コーナー点、または様々な他の点の位置を認識してよい。
図24Aは、車両200により検出され得る実線車線標示2410を示している。車線標示2410は、車道の外側エッジを表し、実線の白線で表されてよい。
図24Aに示すように、車両200は、車線標示に沿った複数のエッジ位置点2411を検出するように構成されてよい。これらの位置点2411は、スパースマップにおいてマッピングされた車線標示を作成するのに十分な任意の間隔で車線標示を表すように収集されてよい。例えば、車線標示は、検出されたエッジの1メートルごとに1つの点、検出されたエッジの5メートルごとに1つの点、または他の好適な間隔で表されてよい。いくつかの実施形態において、この間隔は、例えば、車両200が検出点の位置に関する最高信頼度ランキングを有する点に基づくなどの所定の間隔ではなく、他の要因で決定されてもよい。
図24Aは、車線標示2410の内側エッジ上のエッジ位置点を示しているが、点は線の外側エッジ上で、または両方のエッジに沿って収集されてもよい。さらに、
図24Aには1つの線が示されているが、二重実線についても同様のエッジ点が検出されてよい。例えば、点2411が実線の一方または両方のエッジに沿って検出されてよい。
【0315】
車両200は、車線標示のタイプまたは形状に応じて、車線標示も違うように表してよい。
図24Bは、車両200により検出され得る例示的な破線車線標示2420を示している。
図24Aにあるようにエッジ点を識別するのではなく、車両は、破線の全境界を画定する車線破線のコーナーを表す一連のコーナー点2421を検出してよい。
図24Bは、所与の破線標示の各コーナーが位置特定されていることを示しているが、車両200は、図に示すこれらの点のサブセットを検出しても、アップロードしてもよい。例えば、車両200は、所与の破線標示の先頭エッジまたは先頭コーナーを検出してもよく、車線の内側に最も近い2つのコーナー点を検出してもよい。さらに、全ての破線標示を取り込まなくてもよく、例えば、車両200は、破線標示のサンプル(例えば、1つおき、3つごと、5つごとなど)を表す点、または所定の間隔(例えば、1メートルごと、5メートルごと、10メートルごとなど)で破線標示を表す点を取り込む且つ/または記録してよい。同様な車線標示、例えば、ある車線が出口ランプ用であること、特定の車線が終了することを示す標示、または検出可能なコーナー点を有し得る他の様々な車線標示についても、コーナー点が検出されてよい。二重破線または実線と破線との組み合わせで構成される車線標示についても、コーナー点が検出されてよい。
【0316】
いくつかの実施形態において、マッピングされた車線標示を生成するためにサーバにアップロードされた点は、検出されたエッジ点またはコーナー点のほかに他の点を表してよい。
図24Cは、所与の車線標示の中心線を表し得る一連の点を示している。例えば、実線車線2410は、車線標示の中心線2440に沿った中心線点2441で表されてよい。いくつかの実施形態において、車両200は、これらの中心点を様々な画像認識手法を用いて検出するように構成されてよく、そのような手法には、畳み込みニューラルネットワーク(CNN)、スケール不変特徴変換(SIFT)、勾配方向ヒストグラム(HOG)特徴、または他の手法などがある。あるいは、車両200は、
図24Aに示すエッジ点2411などの他の点を検出してよく、また、例えば、各エッジに沿った点を検出してエッジ点間の中点を求めることにより、中心線点2441を計算してよい。同様に、破線車線標示2420は、車線標示の中心線2450に沿った中心線点2451で表されてよい。中心線点は、
図24Cに示すように破線のエッジに配置されても、中心線に沿った様々な他の場所に配置されてもよい。例えば、各破線は、破線の幾何中心に1つの点で表されてよい。各点は、中心線に沿って所定の間隔を空けて配置されてもよい(例えば、1メートルごと、5メートルごと、10メートルごとなど)。中心線点2451は、車両200により直接的に検出されてもよく、
図24Bに示すように、コーナー点2421などの他の検出された基準点に基づいて計算されてもよい。上記と同様な手法を用いて、二重線などの他の車線標示タイプを表すのにも中心線が用いられてよい。
【0317】
いくつかの実施形態において、車両200は、2つの交差する車線標示間の交点などの、他の特徴を表している点を識別してよい。
図24Dは、2つの車線標示2460と2465との交差点を表す例示的な点を示している。車両200は、2つの車線標示間の交差点を表している交点2466を計算してよい。例えば、車線標示2460または2465のうちの一方が、道路セグメント内の列車の交差領域または他の交差領域を表してよい。車線標示2460および2465は互いに垂直に交差しているように示されているが、様々な他の構成が検出されてもよい。例えば、車線標示2460および2465は他の角度で交差してもよく、これらの車線標示の一方または両方が交点2466で終了してもよい。同様な手法が、破線または他の車線標示タイプ同士の交差点にも適用されてよい。交点2466に加えて、車線標示2460および2465の方位に関するさらなる情報を提供する様々な他の点2467も検出されてよい。
【0318】
車両200は、実際の座標を車線標示のそれぞれの検出点に関連づけてよい。例えば、点ごとの座標を含む位置識別子を生成して、車線標示をマッピングするためにサーバにアップロードしてよい。位置識別子はさらに、これらの点がコーナー点を表すのか、エッジ点を表すのか、中心点を表すのかなどを含む、これらの点に関する他の識別情報を含んでよい。したがって、車両200は、画像の分析に基づいて、各点の実際の位置を決定するように構成されてよい。例えば、車両200は、上述した様々なランドマークなどの画像内の他の特徴を検出して、車線標示の実際の位置を特定してよい。これには、検出されたランドマークに対する画像内の車線標示の位置を決定すること、または検出されたランドマークに基づいて車両の位置を決定し、次いで車両(または車両の目標軌跡)から車線標示までの距離を決定することが含まれてよい。ランドマークが利用できない場合、車線標示点の位置は、推測航法に基づいて決定された車両の位置に対して決定されてよい。位置識別子に含まれる実際の座標は、絶対座標(例えば、緯度/経度による座標)として表されてもよく、目標軌跡に沿った縦方向位置と目標軌跡からの横方向距離とに基づくなどの、他の特徴に関連してもよい。位置識別子は次に、ナビゲーションモデル(スパースマップ800など)においてマッピングされた車線標示を生成するために、サーバにアップロードされてよい。いくつかの実施形態において、サーバは、道路セグメントの車線標示を表すスプラインを構築してよい。あるいは、車両200はスプラインを生成して、このスプラインがナビゲーションモデルに記録されるように、サーバにアップロードしてよい。
【0319】
図24Eは、マッピングされた車線標示を含む対応する道路セグメントの例示的なナビゲーションモデルまたはスパースマップを示している。スパースマップは、車両が道路セグメントに沿って進むための目標軌跡2475を含んでよい。上述したように、目標軌跡2475は、車両が対応する道路セグメントを走行するときに通る理想的な経路を表してもよく、道路上の他の箇所(例えば、道路の中心線など)に位置してもよい。目標軌跡2475は、例えば、同じ道路セグメントを通行する車両の2つ以上の再構築された軌跡の集合体(例えば、重みづけした組み合わせ)に基づいて、上述した様々な方法で計算されてよい。
【0320】
いくつかの実施形態において、目標軌跡は、全ての車両タイプおよび全ての道路、車両、並びに/または環境状態に対して等しく生成されてよい。しかしながら、他の実施形態では、様々な他の要因または変数も、目標軌跡を生成する際に考慮されてよい。異なるタイプの車両(例えば、自家用車、軽トラック、およびフルトレーラ)には異なる目標軌跡が生成されてよい。例えば、比較的小さい旋回半径を有する目標軌跡が、大型のセミトレーラトラックではなく、小型の自家用車用に生成されてよい。いくつかの実施形態では、道路、車両、および環境状態も考慮されてよい。例えば、異なる道路状態(例えば、ぬれている、雪が積もっている、凍結している、乾いているなど)、車両状態(例えば、タイヤ状態または推定したタイヤ状態、ブレーキ状態または推定したブレーキ状態、燃料の残量など)、または環境要因(例えば、時刻、視認性、天候など)に対して異なる目標軌跡が生成されてよい。目標軌跡は、特定の道路セグメントの1つまたは複数の態様または特徴(例えば、制限速度、旋回の頻度およびサイズ、勾配など)にも依存してよい。いくつかの実施形態において、設定運転モード(例えば、所望の運転積極性、エコノミーモードなど)などの様々なユーザ設定も、目標軌跡を決定するのに用いられてよい。
【0321】
スパースマップは、道路セグメントに沿った車線標示を表すマッピングされた車線標示2470および2480も含んでよい。マッピングされた車線標示は、複数の位置識別子2471および2481で表されてよい。上述したように、位置識別子は、検出された車線標示に関連づけられた点の実際の座標における位置を含んでよい。モデル内の目標軌跡と同様に、車線標示も標高データを含んでよく、3次元空間の曲線として表されてよい。例えば、この曲線は、好適な次数の3次元多項式を接続したスプラインであってよく、この曲線は位置識別子に基づいて計算されてよい。マッピングされた車線標示も、車線標示のタイプ(例えば、同じ走行方向の2つの車線間、反対の走行方向の2つの車線間、車道のエッジなど)の識別子、および/または車線標示の他の特性(例えば、実線、破線、1つの線、二重線、黄色線、白線など)などの、車線標示に関する他の情報またはメタデータを含んでよい。いくつかの実施形態において、マッピングされた車線標示は、例えば、クラウドソーシング手法を用いて、モデル内で常に更新されてよい。同じ車両は、同じ道路セグメントを走行するという複数の機会において位置識別子をアップロードしてもよく、道路セグメントを異なる時間に走行する複数の車両(1205、1210、1215、1220、および1225など)からデータが選択されてもよい。スパースマップ800は次に、車両から受信され且つシステムに格納される、その後の位置識別子に基づいて更新されても、微調整されてもよい。マッピングされた車線標示が更新され、微調整されると、更新された道路ナビゲーションモデルおよび/またはスパースマップは、複数の自動運転車に配信されてよい。
【0322】
スパースマップにおけるマッピングされた車線標示の生成には、画像または実際の車線標示そのものに含まれる異常に基づいた誤りの検出および/または軽減も含まれてよい。
図24Fは、車線標示2490の検出に関連した例示的な異常2495を示している。異常2495は、例えば、車線標示に関するカメラの視界を遮る物体、レンズに付着したゴミなどによって、車両200により取り込まれた画像に現れることがある。場合によっては、異常が車線標示そのものに起因していることがあり、車線標示が傷んでいるもしくは摩耗している、または、例えば、土、ゴミ、水、雪、もしくは他の道路上の物質で部分的に覆われている場合がある。異常2495によって、間違った点2491が車両200により検出されることになり得る。スパースマップ800は、マッピングされた車線標示を補正し、誤りを排除してよい。いくつかの実施形態において、車両200は、例えば、画像内の異常2495を検出することで、または異常の前後で検出された車線標示点に基づいて誤りを識別することで、間違った点2491を検出してよい。異常の検出に基づいて、車両は、点2491を除外してもよく、この点を他の検出点に従うように調整してもよい。他の実施形態では、この点がアップロードされた後に、例えば、同じ移動中にアップロードされた他の点に基づいて、または同じ道路セグメントに沿った以前の移動からのデータの集合体に基づいて、この点が予期される閾値から外れていると判定することにより、誤りを補正してよい。
【0323】
ナビゲーションモデルおよび/またはスパースマップにおいてマッピングされた車線標示は、対応する車道を通行する自動運転車によるナビゲーションにも用いられてよい。例えば、目標軌跡に沿ってナビゲートする車両が、スパースマップにおけるマッピングされた車線標示を定期的に用いて、この車線標示そのものを目標軌跡と揃えてよい。上述したように、ランドマーク間では、車両は推測航法に基づいてナビゲートすることができ、推測航法では、車両がセンサを用いて自車のエゴモーションを特定し、目標軌跡に対する自車の位置を推定する。誤差が時間の経過と共に累積され得るため、目標軌跡に対する車両の位置決定の精度が次第に低くなることがある。したがって、車両はスパースマップ800に存在する車線標示(および、その既知の位置)を用いて、位置決定での推測航法による誤差を低減することができる。このように、スパースマップ800に含まれる識別された車線標示は、目標軌跡に対する車両の正確な位置を決定し得るナビゲーションの要としての役割を果たすことができる。
【0324】
図25Aは、マッピングされた車線標示に基づく、ナビゲーションに用いられ得る、車両の周辺環境の例示的な画像2500を示している。画像2500は、例えば、画像取得ユニット120に含まれる画像取り込みデバイス122および124を介して車両200により取り込まれてよい。画像2500には、
図25Aに示すように、少なくとも1つの車線標示2510の画像が含まれてよい。画像2500には、上述したナビゲーションに用いられる道路標識などの、1つまたは複数のランドマーク2521も含まれてよい。取り込まれた画像2500には現れないが、車両200により検出される且つ/または特定される要素2511、2530、および2520などの
図25Aに示す一部の要素も、参照のために示されている。
【0325】
図24A~
図24Dおよび
図24Fに関して上述した様々な手法を用いて、車両が画像2500を分析し、車線標示2510を識別してよい。画像内の車線標示の特徴に対応する様々な点2511が、検出されてよい。例えば、点2511は、車線標示のエッジ、車線標示のコーナー、車線標示の中点、2つの交差する車線標示同士の交点、または様々な他の特徴または位置に対応してよい。サーバから受信したナビゲーションモデルに格納された点の位置に対応する点2511が検出されてよい。例えば、マッピングされた車線標示の中心線を表す点を含むスパースマップが受信された場合、点2511も、車線標示2510の中心線に基づいて検出されてよい。
【0326】
車両は、要素2520で表され且つ目標軌跡に沿って位置する縦方向位置も決定してよい。縦方向位置2520は、例えば、画像2500内のランドマーク2521を検出して、測定した位置と道路モデルまたはスパースマップ800に格納された既知のランドマークの位置とを比較することにより、画像2500から決定されてよい。目標軌跡に沿った車両の位置は次に、ランドマークまでの距離とランドマークの既知の位置とに基づいて決定されてよい。縦方向位置2520は、車線標示の位置を決定するのに用いられる画像以外の画像からも決定されてよい。例えば、縦方向位置2520は、画像取得ユニット120内の他のカメラから同時にまたはほぼ同時に画像2500を撮った画像に含まれるランドマークを検出することによって決定されてよい。場合によっては、車両は、縦方向位置2520を決定するための、いかなるランドマークの近くにも、他の基準点の近くにもいないことがある。そのような場合、車両は推測航法に基づいてナビゲートしてよく、したがって、センサを用いて自車のエゴモーションを特定し、目標軌跡に対する縦方向位置2520を推定してよい。車両は、車両と、取り込まれた画像内で観測される車線標示2510との間の実際の距離を表す距離2530も決定してよい。カメラアングル、車両の速度、車両の幅、または様々な他の要因が、距離2530を決定する際に考慮されてよい。
【0327】
図25Bは、道路ナビゲーションモデルにおけるマッピングされた車線標示に基づく、車両の横方向位置特定の補正を示している。上述したように、車両200は、車両200により取り込まれた1つもしくは複数の画像を用いて、車両200と車線標示2510との間の距離2530を決定してよい。車両200は、マッピングされた車線標示2550および目標軌跡2555を含み得るスパースマップ800などの道路ナビゲーションモデルにもアクセスできてよい。マッピングされた車線標示2550は、上述した手法を用いてモデル化されてよく、例えば、複数の車両により取り込まれたクラウドソーシングによる位置識別子を用いる。目標軌跡2555は、上述した様々な手法を用いて生成されてもよい。車両200は、
図25Aに関して上述したように、目標軌跡2555に沿った縦方向位置2520も決定または推定してよい。車両200は次に、目標軌跡2555と、縦方向位置2520に対応するマッピングされた車線標示2550との間の横方向距離に基づいて、予期される距離2540を決定してよい。車両200の横方向位置特定は、取り込んだ画像を用いて測定された実際の距離2530と、モデルからの予期される距離2540とを比較することにより、補正されても調整されてもよい。
【0328】
図26Aは、開示する実施形態と矛盾しない、自動運転車ナビゲーションに用いるための車線標示をマッピングする例示的なプロセス2600Aを示すフローチャートである。段階2610において、プロセス2600Aは、検出された車線標示に関連づけられた2つ以上の位置識別子を受信する段階を含んでよい。例えば、段階2610は、サーバ1230またはサーバに関連づけられた1つまたは複数のプロセッサにより行われてよい。位置識別子には、
図24Eに関して上述したように、検出された車線標示に関連づけられた点の実際の座標における位置が含まれてよい。いくつかの実施形態において、位置識別子は道路セグメントまたは車線標示に関するさらなる情報などの、他のデータも含まれてよい。さらなるデータ、例えば、加速度計データ、速度データ、ランドマークのデータ、道路の幾何構造もしくはプロファイルデータ、車両測位データ、エゴモーションデータ、または上述した様々な他の形式のデータも、段階2610で受信されてよい。位置識別子は、車両1205、1210、1215、1220、および1225などの車両により、この車両が取り込んだ画像に基づいて生成されてよい。例えば、識別子は、ホスト車両に関連づけられたカメラからの、ホスト車両の環境を表す少なくとも1つの画像の取得と、ホスト車両の環境に含まれる車線標示を検出するための少なくとも1つの画像の分析と、ホスト車両に関連づけられた位置に対する検出された車線標示の位置を決定するための少なくとも1つの画像の分析とに基づいて決定されてよい。上述したように、車線標示には様々な異なる標示タイプが含まれてよく、位置識別子は車線標示に関連する様々な点に対応してよい。例えば、検出された車線標示が車線境界を表す破線標示の一部である場合、これらの点は、検出された車線標示のコーナーに対応してよい。検出された車線標示が車線境界を表す実線標示の一部である場合、これらの点は、上述した様々な間隔で検出された車線標示のエッジに対応してよい。いくつかの実施形態において、これらの点は、
図24Cに示すように、検出された車線標示の中心線に対応してもよく、
図24Dに示すように、2つの交差する車線標示同士の交点と、交差する車線標示に関連づけられた少なくとも一方の他の2つの点とに対応してもよい。
【0329】
段階2612において、プロセス2600Aは、検出された車線標示を、対応する道路セグメントに関連づける段階を含んでよい。例えば、サーバ1230は、段階2610で受信した実際の座標または他の情報を分析し、この座標または他の情報と、自動運転車向け道路ナビゲーションモデルに格納された位置情報とを比較してよい。サーバ1230は、車線標示が検出された実際の道路セグメントに対応するモデルにおいて、道路セグメントを決定してよい。
【0330】
段階2614において、プロセス2600Aは、検出された車線標示に関連づけられた2つ以上の位置識別子に基づいて、対応する道路セグメントに関連する自動運転車向け道路ナビゲーションモデルを更新する段階を含んでよい。例えば、自動道路ナビゲーションモデルはスパースマップ800であってよく、サーバ1230は、スパースマップを更新して、マッピングされた車線標示をモデルに含めても、これを調整してもよい。サーバ1230は、
図24Eに関して上述した様々な方法またはプロセスに基づいてモデルを更新してよい。いくつかの実施形態において、自動運転車向け道路ナビゲーションモデルを更新する段階には、検出された車線標示の実際の座標における位置の1つまたは複数の指標を格納することが含まれてよい。自動運転車向け道路ナビゲーションモデルには、
図24Eに示すように、車両が対応する道路セグメントに沿って進むための少なくとも1つの目標軌跡も含まれてよい。
【0331】
段階2616において、プロセス2600Aは、更新した自動運転車向け道路ナビゲーションモデルを複数の自動運転車に配信する段階を含んでよい。例えば、サーバ1230は、更新した自動運転車向け道路ナビゲーションモデルを、ナビゲーションのためにこのモデルを用い得る車両1205、1210、1215、1220、および1225に配信してよい。自動運転車向け道路ナビゲーションモデルは、
図12に示すように、1つまたは複数のネットワークを介し(例えば、セルラネットワークおよび/またはインターネットなどを使い)、無線通信経路1235を通じて配信されてよい。
【0332】
いくつかの実施形態において、車線標示は、
図24Eに関して上述したように、クラウドソーシング手法などで複数の車両から受信したデータを用いてマッピングされてよい。例えば、プロセス2600Aは、検出された車線標示に関連づけられた位置識別子を含む第1通信を第1ホスト車両から受信する段階と、検出された車線標示に関連づけられたさらなる位置識別子を含む第2通信を第2ホスト車両から受信する段階とを含んでよい。例えば、第2通信は同じ道路セグメントを走行するその後の車両から受信されても、同じ道路セグメントに沿ったその後の移動で同じ車両から受信されてもよい。プロセス2600Aはさらに、第1通信で受信した位置識別子に基づいて、且つ第2通信で受信したさらなる位置識別子に基づいて、検出された車線標示に関連づけられた少なくとも1つの位置の決定を微調整する段階を含んでよい。この段階には、複数の位置識別子の平均を用いること、および/または車線標示の実際の位置を反映していないかもしれない「ゴースト」識別子を除外することが含まれてよい。
【0333】
図26Bは、マッピングされた車線標示を用いて、道路セグメントに沿ってホスト車両を自律的にナビゲートするための例示的なプロセス2600Bを示すフローチャートである。プロセス2600Bは、例えば、自動運転車200の処理ユニット110により行われてよい。段階2620において、プロセス2600Bは、サーバベースのシステムから自動運転車向け道路ナビゲーションモデルを受信する段階を含んでよい。いくつかの実施形態において、自動運転車向け道路ナビゲーションモデルは、道路セグメントに沿ったホスト車両用の目標軌跡と、道路セグメントに関連づけられた1つもしくは複数の車線標示に関連づけられた位置識別子とを含んでよい。例えば、車両200は、プロセス2600Aを用いて発展したスパースマップ800または別の道路ナビゲーションモデルを受信してよい。いくつかの実施形態において、目標軌跡は、例えば
図9Bに示すように、3次元スプラインとして表されてよい。
図24A~
図24Fに関して上述したように、位置識別子は、車線標示に関連づけられた点(例えば、破線車線標示のコーナー点、実線車線標示のエッジ点、2つの交差する車線標示同士の交点および交差する車線標示に関連づけられた他の点、車線標示に関連づけられた中心線など)の実際の座標における位置を含んでよい。
【0334】
段階2621において、プロセス2600Bは、車両の環境を表す少なくとも1つの画像を受信する段階を含んでよい。この画像は、画像取得ユニット120に含まれる画像取り込みデバイス122および124を介するなどして、車両の画像取り込みデバイスから受信されてよい。この画像には、上述した画像2500と同様に、1つまたは複数の車線標示の画像が含まれてよい。
【0335】
段階2622において、プロセス2600Bは、目標軌跡に沿ったホスト車両の縦方向位置を決定する段階を含んでよい。
図25Aに関して上述したように、これは、取り込まれた画像に含まれる他の情報(例えば、ランドマークなど)に基づいてもよく、検出されたランドマーク間での車両の推測航法によってもよい。
【0336】
段階2623において、プロセス2600Bは、目標軌跡に沿ったホスト車両の決定された縦方向位置に基づいて、且つ少なくとも1つの車線標示に関連づけられた2つ以上の位置識別子に基づいて、車線標示までの予期される横方向距離を決定する段階を含んでよい。例えば、車両200は、スパースマップ800を用いて車線標示までの予期される横方向距離を決定してよい。
図25Bに示すように、目標軌跡2555に沿った縦方向位置2520は、段階2622において決定されてよい。スパースマップ800を用いると、車両200は、縦方向位置2520に対応するマッピングされた車線標示2550までの予期される距離2540を決定することができる。
【0337】
段階2624において、プロセス2600Bは、少なくとも1つの画像を分析して、少なくとも1つの車線標示を識別する段階を含んでよい。車両200は、例えば上述したように、様々な画像認識手法またはアルゴリズムを用いて、画像内の車線標示を識別してよい。例えば、車線標示2510は、
図25Aに示すように、画像2500の画像分析によって検出されてよい。
【0338】
段階2625において、プロセス2600Bは、少なくとも1つの画像の分析に基づいて、少なくとも1つの車線標示までの実際の横方向距離を決定する段階を含んでよい。例えば、車両は、
図25Aに示すように、車両と車線標示2510との間の実際の距離を表す距離2530を決定してよい。カメラアングル、車両の速度、車両の幅、車両に対するカメラの位置、または様々な他の要因が、距離2530を決定する際に考慮されてよい。
【0339】
段階2626において、プロセス2600Bは、少なくとも1つの車線標示までの予期される横方向距離と、少なくとも1つの車線標示までの決定された実際の横方向距離との差異に基づいて、ホスト車両の自動操縦動作を決定する段階を含んでよい。例えば、
図25Bに関して上述したように、車両200は、実際の距離2530と予期される距離2540とを比較してよい。実際の距離と予期される距離との差異は、車両の実際の位置と車両が進む目標軌跡との誤差(およびその大きさ)を示し得る。したがって、車両は、この差異に基づいて、自動操縦動作または他の自動動作を決定してよい。例えば、
図25Bに示すように、実際の距離2530が予期される距離2540より小さい場合、車両は、車両を車線標示2510から離れて左側に誘導するための自動操縦動作を決定してよい。したがって、目標軌跡に対する車両の位置を補正することができる。例えば、プロセス2600Bは、ランドマーク間の車両のナビゲーションを向上させるのに用いられてよい。
【0340】
[車両の位置特定]
【0341】
本開示全体を通じて説明されるように、車両が自車の位置(例えば、回転および/または位置情報を含む)をセンサデータに基づいて決定してよい。例えば、車両は、車両の環境の中から画像を取り込み、位置特定を目的として環境内の特徴を検出してよい。車両に対するこれらの特徴の位置が、上述したように、スパースマップ800などの車両ナビゲーションマップに格納された特徴の位置と比較されて、車両の位置が決定されてよい。シナリオによっては、特徴検出だけに基づいた車両の位置特定は、課題を示すことがある。例えば、雨、霧、または他の気象状態によって車両の環境における視認性が低下することがあり、これにより、画像内の特徴を検出して識別するナビゲーションシステムの能力が影響を受ける場合がある。他の例では、車両の環境内の物体(例えば、大型トラックなど)がカメラの視界から特徴を見えなくさせることがある。別の例では、地方環境などの地域によっては、車道に沿った特徴がまばらである場合があり、特徴に基づく位置特定が、検出可能な特徴の数に制限されるかもしれない。決定された車両の位置を用いて、ほんの一瞬のナビゲーション判定を行うので、車両の位置特定における誤差が小さくても、深刻な影響を与えることがある。
【0342】
したがって、いくつかの実施形態では、車両の位置を決定するのに並列方式が用いられてよく、車両の位置は、車両のセンサデータに基づいて決定された位置と比較される且つ/または組み合わされてよい。本明細書で用いる場合、並列方式とは、どちらもシステムによって行われる2つ以上の方法を指してよい。いくつかの実施形態では、これらの方法は同時に行われてもよいが、必ずしもそうであるとは限らない。例えば、これらの方法が連続的に行われてもよく、少なくとも部分的に重なり合ってもよい。ある並列方式には、入力画像とナビゲーションマップに対する車両の位置の近似値とに基づいて、車両の位置(回転および並進を含む)を決定するように構成された、訓練モデルの使用が含まれてよい。この訓練モデルは、近似位置に適用される補正値を出力して車両の冗長位置を提供すると共に、最小限の明確な特徴検出を必要とし得る。これが特に役立ち得るのは、検知された画像内の特徴に基づく位置特定が悪天候状態または地方環境などでは信頼できない場合である。車両のセンサデータに基づいて決定された位置は、冗長モデルに基づく車両の位置と組み合わされてよく、これにより、車両の位置特定精度が向上する。
【0343】
図27は、開示する実施形態と矛盾しない、車両の位置を決定するためのプロセス2700の一例を示すブロック図である。プロセス2700は、道路セグメントに沿って走行するホスト車両、例えば、上述した車両200によって実施されてよい。したがって、プロセス2700は、自動運転車または半自動運転車によって実施されてよく、また車両のナビゲーションに用いられてよい。ホスト車両は、例えば、画像取得ユニット120を用いて、車両の環境から画像を取り込むように構成されてよい。ホスト車両は、
図27に示すように、画像2710を取り込んでよい。画像2710は、車両の位置2722を決定するために、センサに基づく測位システム2720に入力されてよい。センサに基づく測位システム2720は、画像2710内の特徴の検出に基づいて、位置2722を決定するように構成されてよい。本明細書で用いる場合、特徴とは、車両が取り込んだ画像に表されている、車両の環境内にある任意の物体であってよい。いくつかの実施形態において、これらの特徴は、所定の物体クラスのセットからのものであってよい。いくつかの実施形態において、所定の物体クラスは、車両ナビゲーションシステムに定義され且つ車両ナビゲーションシステムにより用いられる物体クラスである。例えば、これには、画像2710に含まれる道路標識、車線標示、道路エッジ、方向矢印、ガイドレール、樹木、または他の特徴を検出することが含まれてよい。いくつかの実施形態において、システムは、風に吹かれている買い物袋、道路上に置いてある箱、または他の静止物体もしくは動的物体などの、分類されていない特徴も検出してよい。そのような特徴は、上でさらに詳細に説明したように、コンピュータビジョンアルゴリズムおよび/または機械学習アルゴリズムを用いて検出されてよい。ホスト車両に対して検出されたこれらの特徴のうちの少なくとも一部の位置が、道路ナビゲーションマップ内にある、目標軌跡に沿った特徴についての格納された位置と比較されてよい。格納された位置は、上述したように、例えば、車道に沿った車両の以前の通行に基づいて決定されてよい。いくつかの実施形態において、さらなる入力データ2712が、センサに基づく測位システム2720に提供されてよい。入力データ2712には、車両位置の決定に用いられ得る画像2710に加えて、任意のデータが含まれてよい。例えば、このデータには、さらなるセンサデータ、例えば、LiDARデータ、GPSデータ、近接センサのデータ、または格納もしくは計算された位置データなどが含まれてよい。その結果、センサに基づく測位システム2720は、画像2710に基づいて、ホスト車両の推定位置2722を決定することができる。このプロセスのさらなる態様が、上でより詳細に説明されている。
【0344】
ホスト車両の位置を決定するための並列プロセスでは、訓練モデル2730に画像2710が入力されてよい。上述したように、訓練モデル2730に基づくホスト車両の位置は、センサに基づく測位システム2720に基づいて決定される位置と同時に決定されてよい。他の実施形態において、両プロセスは連続的に行われてもよい。例えば、位置2722は、訓練モデル2730に関連するプロセスが始まる前に決定されても、その逆であってもよい。いくつかの実施形態において、両プロセスは重なり合ってもよく、両方が所定の期間内に行われてもよい。上述したように、入力には、画像2710に加えて入力データ2712も含まれてよい。この場合、入力データには、ホスト車両が走行している道路ナビゲーションマップセグメントに関連づけられた識別子が含まれてよい。識別子には、ホスト車両が走行している現在のナビゲーションマップセグメントを示す任意の情報が含まれてよい。例えば、識別子は、セグメント番号でも、セグメント名でも、セグメントを示す他の識別子でもよい。いくつかの実施形態において、識別子(または入力データ2712に含まれる他のデータ)には、道路ナビゲーションマップに対する車両の位置に関する現時点の推測が含まれてよい。例えば、識別子は、道路ナビゲーションマップに含まれる特徴の、車両に対する予期される位置として表されてよい。特徴の予期される位置の例が
図28に示されており、以下でさらに詳細に説明される。いくつかの実施形態において、この特徴情報は入力データ2712に含まれてよいが、識別子から分かれてもよい。訓練モデル2730は、初期推測に対する、ホスト車両の補正後の回転および並進を出力するように構成されてよく、補正後の回転および並進は位置2732を決定するのに用いられてよい。訓練モデル2730に基づいて位置2732を決定するプロセスに関するさらなる詳細については、後述する。
【0345】
結果としての推定位置2722および2732は次に、ホスト車両の位置2740を決定するために組み合わされてよい。位置2722および2732は、様々なやり方で組み合わされてよい。例えば、位置2740は、位置2722および2732の平均を反映してもよい。いくつかの実施形態において、この平均は、位置2722または2732のうちの一方が位置2740の決定に対してより大きい影響を持つように重みづけされてよい。この重みづけは、システムの事前設定値に基づいても(例えば、特定の車両、周囲状況などに合わせて調整されても)よく、変数であってもよい。いくつかの実施形態において、位置2722および2732に適用される重みは、状況的要因に基づいて決定されてよい。例えば、特徴の視認性が損なわれるかもしれないシナリオ、または利用できる特徴が少ないシナリオでは、プロセス2700は、位置2740を決定するために、位置2732に大きく依存してよい。反対に、特徴検出が高い精度を有し得る状況では、プロセス2700は位置2722に大きく依存してよい。位置2722および2732に適用され得る加重平均については、
図31に関して以下でより詳細に説明する。
【0346】
図28は、ホスト車両の位置特定に用いられ得る、ホスト車両により取り込まれた画像2800の一例を示す図である。画像2800は、ホスト車両のカメラ、例えば、画像取り込みデバイス122、124、および/または126により取り込まれてよい。
図28に示す例において、画像は、車両が道路セグメントに沿って走行するときに、ホスト車両の前面カメラから取り込まれてよい。この例において、道路セグメントには、ホスト車両が走行する現在の車線と、現在の走行車線の左側に旋回車線と、現在の車線の右側に追加の優先車線とが含まれてよい。画像2800は、ホスト車両の前部から取り込まれた画像を表しているが、同じまたは同様のプロセスは、ホスト車両の側面または後部から取り込まれた画像などの、他のカメラ位置から取り込まれた画像にも適用されてよい。いくつかの実施形態において、以下でさらに論じるように、複数の画像2800が用いられてよい。
【0347】
画像2800は、プロセス2700に関して上述した方法に従って、ホスト車両の推定位置を決定するのに用いられてよい。したがって、画像2800は画像2710に対応し得る。
図28に示すように、画像2800には、センサに基づく測位システム2720がホスト車両の位置2722を決定するのに用いられ得る様々な特徴が含まれてよい。例えば、画像2800には、道路標識2810、方向矢印2820、および車線標示2830が含まれてよく、これらは、車両ナビゲーションシステムにより識別されて、道路ナビゲーションマップに対するホスト車両の位置を決定するのに用いられてよい。本開示の全体を通して説明されるように、様々な他の特徴、例えば、道路にできた穴、ポール、道路エッジ、中央分離帯、ガードレール、植生(例えば、樹木など)も用いられてよい。いくつかの実施形態において、複数の画像2800が、車両の位置を決定するのに用いられてよい。例えば、これには、複数のカメラからの画像、または同じカメラにより取り込まれた別々の画像フレームが含まれてよい。
【0348】
画像2800は、検出された特徴2810、2820、または2830の位置を利用することなく、ホスト車両の位置を決定するために、訓練モデル2730にも入力されてよい。上述したように、ホスト車両のナビゲーションシステムは、道路ナビゲーションマップに対する近似位置を設定してよい。例えば、近似位置は、GPS信号に基づいて、推測航法に基づいて(例えば、以前に設定した位置からのホスト車両のエゴモーションを用いて)、または車両の位置を近似するための任意の他の好適な手段に基づいて決定されてもよい。いくつかの実施形態において、これには、複数の画像(2つ、3つ、…、n個の画像)の分析が含まれてよい。例えば、車両の位置が直前の画像フレームに関して設定されていた場合、直前の画像フレームからの車両の動きが、近似位置を決定するために推定されてよい。さらに、路面、および場合によってはホスト車両の環境内にある他の構造上の特徴(3次元物体)も、分析において複数の画像に適用され得るオプティカルフロー計算を用いて検出されてよい。例えば、路面(および、場合によっては他の構造上の)特徴は、位置特定にも用いられてよい。路面情報、および環境内の物体に関する3D情報も、全ての領域または少なくとも一部の領域向けのマップデータに含まれてよい。例えば、路面情報は、環境内の物体の密度が物体検出/認識に基づく正確且つ円滑な位置特定にはまばらすぎる領域のために含まれてよい。
【0349】
いくつかの実施形態では、訓練モデル2730は、複数の画像を用いてよく、且つ/または複数の画像を用いて訓練されてよい。例えば、複数の画像から得られた車両の動き、路面、および3D情報は全て、訓練システムにより暗黙的に用いられてよい。言い換えれば、訓練システムは、必ずしもそのような手がかりを位置特定における明確な入力として用いなくても、そのような手がかりを出力として提供しなくてもよい。むしろ、そのような特徴、および場合によっては他の特徴も、モデルの訓練時に入力として受信されてよく、また複数の画像を用いる場合、推論による位置特定時に暗黙的に用いられてよいが、訓練システムへの入力としても、訓練システムの出力としても明示的に提供されなくてよい。
【0350】
いくつかの実施形態において、ナビゲーションシステムは道路ナビゲーションマップの「バイナリマスク」を画像2800の上に投影してよい。これには、道路ナビゲーションマップからの道路エッジ、車線標示、交通道路標識、方向矢印、ポール、並びに/または他の特徴を画像2800の上に重ねることが含まれてよい。例えば、ナビゲーションシステムは、道路エッジ2830および2842、車線標示2844および2846、並びに交通標識2848を画像2800の上に重ねてよい。いくつかの実施形態において、バイナリイメージ(投影された特徴位置を含む)は、画像2800と同じ寸法を有してよい。他の実施形態において、バイナリイメージは、画像2800をサブサンプリングした寸法であってよい。バイナリイメージは、画像2800を取り込むのに用いられるカメラの既知の光学特性および物理的特性に基づいて画像2800の上に投影されてよい。例えば、これには、レンズの焦点距離、解像度、色モデル、圧縮、デジタルズーム、方位、明度、コントラスト、飽和、カメラのメーカーもしくは型式、または投影された特徴の位置を画像にどう重ねるべきかを示し得る任意の他の情報が含まれてよい。
【0351】
ホスト車両の近似位置に含まれる固有誤差により、バイナリマスクの投影された特徴は、
図28に示すように、画像内の対応する特徴と完全に揃わなくてもよい。訓練モデル2730は、近似位置に適用される補正値を出力するように訓練されてよい。例えば、訓練モデル2730は、近似位置に適用されると推定位置2732をもたらす並進および回転の情報を出力してよい。並進には、近似位置に適用される距離情報および方向情報が含まれてよい。並進および回転の情報に関するさらなる詳細が、以下に提供される。
【0352】
図29は、開示する実施形態と矛盾しない、ナビゲーションマップセグメント2900に関連する車両に対して決定され得る例示的な位置を示している。ナビゲーションマップセグメント2900は、道路ナビゲーションモデル、例えば、スパースマップ800または様々な他の形式のナビゲーションモデルなどの一部であってよい。ナビゲーションマップセグメント2900には、道路セグメントに沿った物体または特徴の様々な表現が含まれてよい。例えば、ナビゲーションマップセグメント2900は、画像2800に表されている車道の一部に対応してよい。したがって、ナビゲーションマップセグメント2900には、図示されているように、道路標識2810および方向矢印2820の表現が含まれてよい。ナビゲーションマップセグメント2900には、道路エッジ2840および2842、並びに車線標示2844および2846(および/または2830)などの他の特徴の表現が含まれてよいが、これらの表現は、
図29では明確にするために除外されている。ナビゲーションマップセグメント2900には、1つまたは複数の目標軌跡2910、2912、および2914が含まれてよく、この目標軌跡は道路セグメント内の走行車線に対応してよい。
図28に示す例示的な画像2800と矛盾せずに、ホスト車両は、目標軌跡2912にほぼ沿って走行していてよい(ただし、ホスト車両の正確な位置は必ずしも目標軌跡2912に沿わなくてもよい)。
【0353】
ホスト車両のナビゲーションシステムは、センサに基づく測位システム2720を用いて位置2722を決定してよい。例えば、これには、ホスト車両に対する道路標識2810および方向矢印2820の位置を画像2800に基づいて識別することが含まれてよい。これらのセンサに基づく特徴位置は次に、車両の推定位置を決定するために、ナビゲーションマップセグメント2900内の特徴の位置と比較されてよい。例えば、道路標識2810および方向矢印2820の検出位置は、位置2722を決定するために、ナビゲーションマップセグメント2900に格納された道路標識2810および方向矢印2820の位置と揃えられてよい。
【0354】
ナビゲーションシステムは、訓練モデル2730に基づいて、ホスト車両の冗長位置として場所2732も決定してよい。初期段階として、ナビゲーションシステムはホスト車両の近似位置2930を決定してよい。上述したように、これは、直前の設定位置からの推測航法プロセスに基づいてよい。例えば、ナビゲーションシステムは、センサデータ、例えば、GPS信号、加速度計データ、近接センサなどを用いて、直前の決定位置からのホスト車両の動きを推定してよい。いくつかの実施形態において、近似位置2930は、目標軌跡2912と揃うものと仮定されてよいが、これは必ずしもそうではない。画像2800、およびホスト車両の近似位置2930のインジケーションが、訓練モデル2730に入力されてよい。いくつかの実施形態において、近似位置2930は、画像2800に重ねられた、または別の方法で画像2800に関連づけられたバイナリマスクとして表されてよい。例えば、バイナリマスクには、道路エッジ2840および2842、車線標示2844および2846、並びに/または交通標識2848が含まれてよい。
【0355】
訓練モデル2730は、近似位置2930に基づいて位置2732を決定するのに用いられ得る回転および並進の情報を出力してよい。並進情報は、近似位置2930の場所と位置2732の場所との任意の関係として表されてよい。いくつかの実施形態において、回転は、3次元空間に表されてよい。
図29のナビゲーションマップセグメント2900は概して2次元のように見えるが、各要素は3次元(例えば、3D点、3Dスプラインなど)で表されてよい。いくつかの実施形態において、並進情報は、(例えば、ナビゲーションマップセグメント2900の座標系、実際の座標、または任意の他の好適な座標系に基づいて)3次元ベクトルとして表されてよい。本開示は、いかなる特定の形式の並進情報にも限定されることはなく、様々な他の形式も用いられてよいことが理解される。回転情報には、近似位置2930と位置2732との回転関係を表す任意の情報が含まれてよい。並進情報と同様に、回転情報は3次元で表されてよい。したがって、回転情報はホスト車両に対して3つの自由度(例えば、ピッチ、ヨー、およびロール)で表されてよい。回転情報は、度単位でまたは任意の他の好適な形式で表されてよい。いくつかの実施形態において、回転情報は、入力画像とバイナリマスクのマップ投影図との間の相対回転についての正規化四元数の対数として(例えば、Log(Q)として)表されてよい。純粋な四元数または他の標準的な3Dベクトルも用いられてよい。並進情報と同様に、回転情報はいかなる特定の形式にも限定されることはない。
【0356】
位置2722および位置2732に基づいて、ナビゲーションシステムは、微調整したホスト車両の位置2740を決定してよい。上述したように、位置2722および位置2732を考慮することで、微調整された位置2740を推定することができる。例えば、いくつかの実施形態において、微調整された位置2740は、位置2722および位置2732の(回転、並進、またはその両方に関する)平均を表してよい。いくつかの実施形態において、微調整された位置2740は、上述したように、また
図31に関してさらに詳細に説明するように、位置2722および2732の加重平均を表してよい。微調整された位置2740は、ナビゲーションおよび任意の他の関連プロセスのために、ホスト車両の位置として用いられてよい。例えば、ナビゲーションシステムは、位置2740に基づくホスト車両のナビゲーション動作を決定するように構成されてよい。ナビゲーション動作には、道路セグメントに沿ったホスト車両の動きに関連した任意の動作が含まれてよい。例えば、ナビゲーション動作には、ブレーキ操作、加速操作、車線変更操作、旋回操作、現在の速度または進行方向の維持、またはこれらの操作のうちの1つもしくは複数の組み合わせが含まれてよい。
【0357】
図30は、開示する実施形態と矛盾しない、位置特定の冗長性についてモデルを訓練するための訓練プロセス3000の一例を示すブロック図である。
図30に示すように、訓練用データ3020が、訓練モデル2730を生成するために訓練用アルゴリズム3030に入力されてよい。いくつかの実施形態において、訓練用アルゴリズム3030は人工ニューラルネットワークであってよい。様々な他の機械学習アルゴリズムが用いられてよく、そのようなアルゴリズムには、ロジスティック回帰、線形回帰、回帰、ランダムフォレスト、k近傍法(KNN)モデル(例えば、上述したようなもの)、k平均モデル、決定木、コックス比例ハザード回帰モデル、単純ベイズモデル、サポートベクターマシン(SVM)モデル、勾配ブースティングアルゴリズム、または任意の他の形式の機械学習モデルまたはアルゴリズムが含まれる。訓練用データ3020には、ホスト車両3010により取り込まれた複数の画像、関連する複数のバイナリマスク画像、および既知の誤差データが含まれてよい。例えば、誤差データは、ホスト車両3010の近似位置3014(バイナリマスク画像で表されるもの)とホスト車両3010の実際の位置3012(取り込まれた画像で表されるもの)との既知の差異を表してよい。プロセス3000の結果として、訓練モデル2730が、バイナリマスク画像と取り込まれた画像との相違を特定して、その誤差を補正するための並進および回転の情報を出力するように訓練されてよい。
【0358】
訓練用データ3020は、様々なやり方で取得されてよい。例えば、訓練用データは、ホスト車両の位置が分かっている道路セグメントを通行するホスト車両により取得されてよい。これを受けて、位置3014(バイナリマスク画像で表される位置)とホスト車両3010の実際の位置(取り込まれた画像で表される位置)との間の誤差が特定されてよい。いくつかの実施形態において、訓練用データは、位置特定が正確な画像を用いて生成されてよい。例えば、ランダムノイズが車両の回転測位および並進測位に付加されることがあり、バイナリイメージが既知の誤差を伴って作成されることがある。取り込まれた画像と、誤差が加わったバイナリイメージとが、訓練用アルゴリズム3030に入力されてよい。損失関数が、回転および並進に対する予測補正と、加わった既知のノイズとの差異に基づいてよい。訓練用データを生成するための様々な他の手段が用いられてよく、本開示は、いかなる形式の訓練用データまたは訓練用アルゴリズムにも限定されることはない。
【0359】
上述したように、センサデータに基づいて決定される推定位置と、訓練モデルに基づく推定位置とに、重み値が適用されてよい。したがって、位置2722または2732のいずれかが、組み合わされた位置2740に対してより大きい影響を有し得る。位置2722および2732に割り当てる重みは、様々なやり方で決定されてよい。いくつかの実施形態において、重みは所定の値であっても、固定の値であってもよい。例えば、重みは、ほとんどまたは全てのシナリオで、結果としての位置2740がホスト車両の実際の位置と揃うように調整されてよい。重みは、ナビゲーションシステムの初期設定段階の一部として、メンテナンス作業の一部として、または様々な他のシナリオで決定されてよい。これらの重みは、時間の経過と共に調整されても、変更されてもよい。この調整は、ユーザ(例えば、運転者、管理者、または他の個人)が手動で重み値を調整する手動プロセスであってよい。その代わりに、またはさらに、重みはナビゲーションシステムで自動的に調整されてもよい。例えば、車両の実際の位置は調整作業の一部として入力されてよく、重みは車両の予測位置2740と実際の位置とが揃うように調整されてよい。
【0360】
上述したように、重みは状況に依存してもよい。
図31は、開示する実施形態と矛盾しない、推定位置に適用され得る、状況に基づく例示的な重みづけの図である。説明事例として、重みは画像に含まれる特徴の視認性に基づいて変化してよい。視認性は、気象状態(例えば、雨、雪、霧など)に基づいて、カメラレンズに付着した粉塵、水、土、または他の物質に基づいて、1つまたは複数の特徴の視界を見えなくさせる物体(例えば、トラックまたは列車が道路標識を遮っている、車線標示が土、雪、またはゴミなどで覆われている)に基づいて、または画像に含まれる特徴の視認性に影響を与え得る任意の他の状態により変化することがある。通常の状態下では、画像3110に示すように、スライド式調整つまみ3122の位置で示される通りに、位置が重みづけされてよい。
図31に示す例では、センサに基づく位置に、訓練モデルに基づいて決定された位置より大きい重みが与えられてよい。これは、相対的な視認性と、画像3110内の特徴の発生数とによるものであってよい。視認性の状態が低下すると、画像3120で表されているように、特徴の一部または全部を検出するのがより困難になり得る。例えば、雨、霧、または雪が視認性に影響を与えることがあり、これにより、道路標識2810および他の特徴の検出がより困難になり得る。したがって、特徴の位置が不正確になり得るため、または位置特定プロセスに利用できる特徴が少なくなり得るため、センサに基づく測位の精度が低下することがある。そのような実施形態では、スライド式調整つまみ3122の位置で表されるように、変更した重みづけ方式が用いられてよい。この例では、センサに基づく測位より大きい重みが訓練モデルに与えられてよい。
【0361】
スライド式調整つまみ3120および3122で表される重みは、様々なやり方で決定されてよい。いくつかの実施形態において、2つの別個の重みづけ方式が、通常の状態と視認性が低下した状態とに用いられてよい。例えば、視認性(例えば、視認距離で測定されたもの、検出可能な特徴の数など)が閾値より低くなると、スライド式調整つまみ3122で表される重みづけが用いられてよい。いくつかの実施形態において、重みづけは、視認性の影響度に基づいて変化することがある。例えば、重みづけは、視認性の低下とともに、直線的に(または、指数関数的に、等級化したスケールで、もしくは様々な他の関数に従って)変化してよい。重みはまた、他のデータ、例えば、気象データ、光センサデータ、フロントガラスのセンサデータ、又は様々な他のデータソースに基づいて、少なくとも部分的に決定されてよい。いくつかの実施形態において、重みは、車両のナビゲーションシステムの外部のデータに基づいて決定されることがある。例えば、いくつかの実施形態では、スマートインフラデバイスまたはシステムに含まれ得るナビゲーションビーコンからデータを受信してもよい。このデバイスは、レーザを含む様々なセンサ(例えば、1つ、2つ以上のLiDARユニット)を用いて、既知の位置に対する車両の位置を特定し、この位置情報をホスト車両に伝えることができる。このシステムは、様々なやり方で車両を識別してよい。例えば、車両は、識別子(例えば、グローバル一意識別子(「GUID」)など)に関連づけられてよい。識別子は、車両によりスマートインフラシステムに伝えられてもよく、別の方法で(例えば、OCRまたは同様の手段でホスト車両のナンバープレートを検出することにより)取得されてもよい。この情報は、車両がスマートインフラデバイスの近くにある間に、センサに基づく測位の精度を推定するのに用いられてよく、これにより、重みづけの値が決定されてよい。スマートインフラデバイスからの情報は、誤差が特定のタイプのものである、または特定の状態から生じたとみなすのにも用いられてよい。上述した固定重みと同様に、スライド式調整つまみ3112および3122で表される重みは、ユーザにより手動で、またはナビゲーションシステムにより自動的に調整されてよい。
【0362】
画像3120は雨による視認性の低下を示しているが、様々な他のシナリオが位置2722および2732に適用される重みに影響を与え得る。例えば、重みは、画像内で検出された特徴の数に基づいて変化することがある。したがって、示される特徴が少ない地方では、重みは訓練モデルを支持するように移動してよい。いくつかの実施形態において、重みは、ホスト車両が走行している地域または地方に基づいて変化することがある。例えば、マップ上の地方が、車両の位置に基づいて適用され得る所定の重みづけ方式に関連づけられてよい。したがって、道路ナビゲーションモデルでは、重みが異なるセグメントに関連づけられてよい。例えば、ナビゲーションマップセグメント2900は、所定の重みづけ方式に関連づけられてよい。別の例において、重みづけ方式は、道路ナビゲーションマップ内の特徴の位置に関連づけられた信頼度に応じて変化することがある。例えば、特徴の場所が、他の地域と比べて比較的少ない道路セグメントの以前の通行に基づいている地方では、重みづけの値が変化することがある。いくつかの実施形態において、重みは、サーバ1230などの中央サーバから受信されてよい。状況に基づいて重みを調整するための様々な他の要因が用いられてもよい。
【0363】
図32は、開示する実施形態と矛盾しない、ホスト車両の環境内に存在する物体を識別するためのプロセス3200の一例を示すフローチャートである。プロセス3200は、上述したように、処理ユニット110などの、ホスト車両の少なくとも1つの処理デバイスにより行われてよい。本開示全体を通じて、用語「プロセッサ」が「少なくとも1つのプロセッサ」の省略表現として用いられることを理解されたい。言い換えれば、プロセッサには、論理演算を行う1つまたは複数の構造体が、一緒に並べられるにしても、接続されるにしても、分配されるにしても含まれてよい。いくつかの実施形態において、非一時的コンピュータ可読媒体には、プロセッサにより実行されると、プロセッサにプロセス3200を実行させる命令が含まれてよい。さらに、プロセス3200は、
図32に示す各段階に必ずしも限定されることはなく、本開示の全体を通じて説明される様々な実施形態の任意の段階またはプロセスも、
図27~
図31に関して上述したものを含めて、プロセス3200に含まれてよい。
【0364】
段階3210において、プロセス3200は、画像取り込みデバイスから、ホスト車両の環境を表す少なくとも1つの画像を受信する段階を含んでよい。例えば、車両200は、上述したように、画像取り込みデバイス122、124、および126により取り込まれた画像2800を受信してよい。
【0365】
段階3220において、プロセス3200は、少なくとも1つの画像を分析して、少なくとも1つの画像に表されている1つまたは複数の物体の存在を検出する段階を含んでよい。これらの物体には、ホスト車両の環境内の任意の物体が含まれてよく、その物体には、信号機、標識、方向矢印、車線標示、道路にできた穴、ポール、道路エッジ、中央分離帯、ガードレール、植生(例えば、樹木など)、または画像から検出され得る任意の他の物体が含まれてよい。例えば、
図28を参照すると、段階3220は、道路標識2810、方向矢印2820、および車線標示2830を検出する段階を含んでよい。これには、上述したように様々な画像処理および/または特徴検出アルゴリズムが含まれてよい。例えば、少なくとも1つの画像を分析して、少なくとも1つの画像に表されている1つまたは複数の物体の存在を検出する段階は、エッジ識別または形状に基づいて少なくとも1つの物体を識別する段階を含む。これには、画像内の物体または特徴を識別するように訓練されたコンピュータビジョンアルゴリズムまたは機械学習モデルの使用が含まれてよい。いくつかの実施形態において、物体は、複数の画像を用いて検出されてよい。例えば、少なくとも1つの画像を分析して、少なくとも1つの画像に表されている1つまたは複数の物体の存在を検出する段階は、画像取り込みデバイスから、ホスト車両の環境を表す第2画像を受信する段階を含んでよい。次いで段階3220は、少なくとも1つの画像と第2画像との間の1つまたは複数の物体の少なくとも1つの画像位置変化で表される1つまたは複数の物体の動きの検出に基づいて、1つまたは複数の物体を検出する段階を含んでよい。例えば、車両の近くにある物体が、背景にある物体よりも画像フレーム間をさらに移動することがあり、これが物体の検出に役立つことがある。
【0366】
段階3230において、プロセス3200は、少なくとも1つの画像の分析に基づいて、1つまたは複数の検出された物体に関連する位置情報を特定する段階を含んでよい。位置情報には、道路ナビゲーションモデルに対して物体を特定するのに用いられ得る任意の情報が含まれてよい。例えば、位置情報には、段階3240において後述する少なくとも1つのナビゲーションマップセグメントの座標における、検出された1つまたは複数の物体の位置が含まれてよい。いくつかの実施形態において、位置情報は、ホスト車両に対して特定されてよい。例えば、位置情報は、上述したように、ホスト車両から物体までの推定距離に基づいてよい。
【0367】
段階3240において、プロセス3200は、1つまたは複数の検出された物体に関連する位置情報と、少なくとも1つのナビゲーションマップセグメントに表される1つまたは複数のマッピングされた物体の位置情報とを比較する段階を含んでよい。例えば、
図29に示すように、道路標識2810、方向矢印2820、および車線標示2830の位置情報が、格納された位置情報またはナビゲーションマップセグメント2900内のこれらの物体と比較されてよい。少なくとも1つのナビゲーションマップセグメントには、少なくとも1つのナビゲーションマップセグメントで表された車道に沿った走行車線に関連づけられた複数の目標軌跡が含まれてよい。例えば、少なくとも1つのナビゲーションマップセグメントには、
図29に示すように、目標軌跡2910、2912、および2914が含まれてよい。複数の目標軌跡は、
図13に関して上述したように、少なくとも1つのナビゲーションマップセグメントに3次元スプラインとして表されてよい。いくつかの実施形態において、複数の目標軌跡は、複数の車両による車道の以前の通行時に複数の車両から取得されたドライブ情報に基づいて決定されてよい。
【0368】
段階3250において、プロセス3200は、少なくとも1つのナビゲーションマップセグメントに対するホスト車両の第1推定位置を、比較に基づいて決定する段階を含んでよい。例えば、
図29に示すように、段階3250は、位置2722を決定する段階を含んでよい。いくつかの実施形態において、第1推定位置は、1つまたは複数の検出された物体に対して特定された位置情報と、少なくとも1つのナビゲーションマップセグメントに含まれる1つまたは複数のマッピングされた物体の位置情報とを揃えることにより決定されてよい。
【0369】
段階3260において、プロセス3200は、少なくとも1つの画像の少なくとも一部と、少なくとも1つのナビゲーションマップセグメントに関連づけられた少なくとも識別子とを訓練システムに提供する段階を含んでよい。例えば、画像2800の少なくとも一部と識別子とを訓練モデル2730に提供してよい。例えば、訓練システムは学習システムを含んでよい。訓練システムは、ニューラルネットワークまたは他の機械学習アルゴリズムを含んでよい。いくつかの実施形態において、訓練システムは、訓練用ナビゲーションマップセグメントに対する様々な位置ずれの程度を表している複数の訓練用画像を含んだ訓練用データセットに少なくとも基づいて構成されてよい。例えば、訓練システムは、
図30に示すように、訓練用データ3020に基づいて訓練されてよい。いくつかの実施形態において、訓練システムは、報酬関数に少なくとも基づいて構成されてよい。例えば、報酬関数は、訓練用画像と訓練用ナビゲーションマップセグメントとの間の位置ずれを低減する訓練システムに報酬を与えてよい。
【0370】
識別子は、少なくとも1つのナビゲーションマップセグメントを識別する任意の情報であってよい。いくつかの実施形態において、識別子には、ナビゲーションマップセグメント2900用の数値ベースまたはテキストベースの識別子が含まれてよい。いくつかの実施形態において、段階3260は、少なくとも1つのナビゲーションマップセグメントに表された特徴を表すバイナリマスクを生成する段階を含んでよい。バイナリマスクは、画像2800と共に訓練システムに入力されてよい。いくつかの実施形態において、バイナリマスクは、
図28に示すように、画像2800の上に重ねられてよい。
【0371】
段階3270において、プロセス3200は、少なくとも1つのナビゲーションマップセグメントに対するホスト車両の第2推定位置を訓練システムから受信する段階を含んでよい。例えば、段階3270は、
図29に示すように、推定位置2732を受信する段階を含んでよい。いくつかの実施形態において、推定位置2732は、ホスト車両の近似位置に適用される誤差補正に基づいて決定されてよい。例えば、段階3260は近似位置2930を表すバイナリマスク画像を入力する段階を含んでよく、訓練モデル2730は近似位置2930に適用される誤差補正を出力してよい。誤差補正に基づいて、第2推定位置2732を決定してよい。
【0372】
段階3280において、処理3200は、ホスト車両の第1推定位置とホスト車両の第2推定位置との組み合わせに基づいて、ホスト車両のナビゲーション動作を決定する段階を含んでよい。ナビゲーション動作には、ホスト車両の動きに関連した、ホスト車両による任意の動作が含まれてよい。例えば、ナビゲーション動作には、ホスト車両の加速、ホスト車両の減速、またはホスト車両の旋回のうちの少なくとも1つが含まれてよい。いくつかの実施形態において、ホスト車両のナビゲーション動作を決定する段階は、第1推定位置に第1の重み値を適用し、第2推定位置に第2の重み値を適用する段階を含んでよい。いくつかの実施形態において、第1の重み値と第2の重み値とは等しい。他の実施形態では、第1および第2の重み値のうちの一方が、他方より大きくてよい。例えば、第1の重み値は第2の重み値より小さくてもよく、その逆でもよい。
【0373】
いくつかの実施形態において、第1および第2の重み値は、
図31に関して上述したように、状況に基づいてよい。例えば、第1の重み値および第2の重み値は、ホスト車両が位置している環境に基づいて決定されてよい。ホスト車両が地方環境に位置している場合、第1推定位置は第2推定位置より大きく重みづけされてよい。反対に、ホスト車両が都市環境に位置している場合、第2推定位置は第1推定位置より大きく重みづけされてよい。
【0374】
別の例として、第1の重み値および第2の重み値は、少なくとも1つの画像に表されている物体の密度に基づいてよい。例えば、少なくとも1つの画像に表されている物体の密度が所定の密度閾値を下回る場合、第1推定位置は第2推定位置より大きく重みづけされてよい。反対に、少なくとも1つの画像に表されている物体の密度が所定の密度閾値に等しいまたはこれを超える場合、第2推定位置は第1推定位置より大きく重みづけされてよい。
【0375】
いくつかの実施形態において、第1の重み値および第2の重み値は、(例えば、
図31の画像3120に示すように)少なくとも1つの画像に表されている悪天候状態に基づいてよい。例えば、悪天候状態には、雨、雪、霧、または視認性を損なうかもしれない任意の他の状態が含まれてよい。したがって、第2推定位置は第1推定位置より大きく重みづけされてよい。いくつかの実施形態において、第1の重み値および第2の重み値は、少なくとも1つの画像に表されているホスト車両の環境における明るさに基づいてよい。明るさが所定の閾値を上回る場合、第1推定位置は第2推定位置より大きく重みづけされてよい。反対に、明るさが所定の閾値を下回る場合、第2推定位置は第1推定位置より大きく重みづけされてよい。別の例として、重みは、物体が画像内で遮られているかどうかに基づいて決定されてよい。例えば、少なくとも1つの画像が少なくとも部分的に見えなくなっている物体の表現を含むことがあると、第2推定位置は第1推定位置より大きく重みづけされてよい。
【0376】
いくつかの実施形態において、段階3280はさらに、第1推定位置と第2推定位置とを組み合わせて、少なくとも1つのナビゲーションマップセグメントに対するホスト車両の微調整された推定位置を決定する段階を含んでよい。例えば、段階3280は、位置2722と位置2732とを組み合わせて、微調整された位置2740を決定する段階を含んでよい。微調整された位置は、第1位置および第2位置の平均位置および平均回転に基づいて決定されてよい。いくつかの実施形態において、微調整された推定位置は、上述したように、第1推定位置に第1の重み値を適用し、第2推定位置に第2の重み値を適用することにより決定されてよい。いくつかの実施形態において、ホスト車両の微調整された推定位置には、少なくとも1つのナビゲーションマップセグメントに含まれる目標軌跡に沿ったホスト車両の位置が含まれてよい。例えば、微調整された位置2740は、
図29に示すように、目標軌跡2912に沿ったホスト車両の位置であってよい。目標軌跡が、上述したように、利用できる走行車線に関連づけられてよい。いくつかの実施形態において、目標軌跡は、少なくとも1つのナビゲーションマップセグメントに3次元スプラインとして表されてよい。
【0377】
段階3290において、処理3200は、決定されたナビゲーション動作をホスト車両に実施させる段階を含んでよい。この段階は、操縦機構、ブレーキ機構、アクセル、またはホスト車両の他の機構を作動させる信号を送信する段階を含んでよい。いくつかの実施形態において、ナビゲーション動作は、車両の現在の進行方向および/もしくは速度を維持することであってよい。したがって、決定されたナビゲーション動作を実施する段階は、操縦機構もブレーキ機構も作動させない段階を含んでよい。
【0378】
前述の記載事項は、説明のために提示されている。これは網羅的ではなく、また開示したそのままの形式または実施形態に限定されるものではない。本明細書を検討し且つ開示した実施形態を実践することから、当業者には複数の変更および改作が明らかになるであろう。さらに、開示した実施形態の各態様がメモリに格納されるものとして説明されているが、これらの態様は、二次ストレージデバイスなどの他のタイプのコンピュータ可読媒体、例えば、ハードディスクもしくはCD-ROM、または他の形式のRAMもしくはROM、USB媒体、DVD、Blu-ray(登録商標)、4K超高精細度Blu-ray(登録商標)、あるいは他の光ドライブ媒体にも格納できることを、当業者であれば理解するであろう。
【0379】
記載した明細書および開示した方法に基づくコンピュータプログラムは、経験ある開発者の技能の範囲内である。様々なプログラムまたはプログラムモジュールは、当業者に知られている手法のうちのいずれかを用いて作成することもでき、既存のソフトウェアに関連して設計することもできる。例えば、プログラムセクションまたはプログラムモジュールの設計は、.Net Framework、.Net Compact Framework(および、Visual Basic(登録商標)、Cなどといった関連言語)、Java(登録商標)、C++、Objective-C、HTML、HTML/AJAXの組み合わせ、XML、またはJava(登録商標)アプレットを含んだHTMLで行うことも、これを用いて行うこともできる。
【0380】
さらに、例示的実施形態が本明細書に説明されているが、あらゆる実施形態の範囲には、均等な要素、変更、省略、(例えば、様々な実施形態にわたる態様の)組み合わせ、改作、および/または改変が含まれており、こうしたことは当業者が本開示に基づいて理解するであろう。特許請求の範囲における限定は、特許請求の範囲で使用されている用語に基づいて広く解釈されるべきであり、本明細書においてまたは本願の審査手続き中に説明される実施例に限定されることはない。これらの実施例は、非排他的であると解釈されるべきである。さらに、開示した方法の段階は、段階の並べ替え、および/または段階の挿入もしくは削除を含む任意の方式で変更されてよい。したがって、本明細書および実施例は一例にすぎないとみなされることが意図されており、実際の範囲および趣旨は以下の特許請求の範囲およびその均等物の全範囲によって示されている。
[項目1]
ホスト車両用のナビゲーションシステムであって、前記ナビゲーションシステムが、
少なくとも1つのプロセッサであって、
前記ホスト車両の環境を表す少なくとも1つの画像を画像取り込みデバイスから受信し、
前記少なくとも1つの画像を分析して、前記少なくとも1つの画像に表されている1つまたは複数の物体の存在を検出し、
前記少なくとも1つの画像の前記分析に基づいて、検出された前記1つまたは複数の物体に関連する位置情報を特定し、
検出された前記1つまたは複数の物体に関連する前記位置情報と、少なくとも1つのナビゲーションマップセグメントに表されている1つまたは複数のマッピングされた物体の位置情報とを比較し、
前記比較に基づいて、前記少なくとも1つのナビゲーションマップセグメントに対する前記ホスト車両の第1推定位置を決定し、
前記少なくとも1つの画像の少なくとも一部および前記少なくとも1つのナビゲーションマップセグメントに関連づけられた少なくとも識別子を訓練されたシステムに提供し、
前記少なくとも1つのナビゲーションマップセグメントに対する前記ホスト車両の第2推定位置を前記訓練されたシステムから受信し、
前記ホスト車両の前記第1推定位置と前記ホスト車両の前記第2推定位置との組み合わせに基づいて、前記ホスト車両のナビゲーション動作を決定し、
決定された前記ナビゲーション動作を前記ホスト車両に実施させる
ようにプログラムされた少なくとも1つのプロセッサを備える、システム。
[項目2]
前記位置情報には、前記少なくとも1つのナビゲーションマップセグメントの座標における、検出された前記1つまたは複数の物体の位置が含まれる、項目1に記載のシステム。
[項目3]
前記少なくとも1つのナビゲーションマップセグメントには、前記少なくとも1つのナビゲーションマップセグメントで表される車道に沿った走行車線に関連づけられた複数の目標軌跡が含まれる、項目1または2に記載のシステム。
[項目4]
前記複数の目標軌跡のそれぞれが、前記少なくとも1つのナビゲーションマップセグメントにおいて3次元スプラインとして表される、項目3に記載のシステム。
[項目5]
前記複数の目標軌跡が、複数の車両による前記車道の以前の通行時に前記複数の車両から取得されたドライブ情報に基づいて決定される、項目3に記載のシステム。
[項目6]
前記ホスト車両の前記ナビゲーション動作を決定することが、前記第1推定位置に第1の重み値を適用すること、および、前記第2推定位置に第2の重み値を適用することを含む、項目1から5のいずれか一項に記載のシステム。
[項目7]
前記第1の重み値と前記第2の重み値とが等しい、項目6に記載のシステム。
[項目8]
前記第1の重み値が前記第2の重み値より小さい、項目6に記載のシステム。
[項目9]
前記第1の重み値および前記第2の重み値が、前記ホスト車両が位置している環境に基づいて決定される、項目6に記載のシステム。
[項目10]
前記ホスト車両が地方環境に位置していると、前記第1推定位置が前記第2推定位置より大きく重みづけされる、項目9に記載のシステム。
[項目11]
前記ホスト車両が都市環境に位置していると、前記第2推定位置が前記第1推定位置より大きく重みづけされる、項目9に記載のシステム。
[項目12]
前記第1の重み値および前記第2の重み値が、前記少なくとも1つの画像に表されている物体の密度に基づいている、項目6に記載のシステム。
[項目13]
前記少なくとも1つの画像に表されている前記物体の前記密度が所定の密度閾値を下回ると、前記第1推定位置が前記第2推定位置より大きく重みづけされる、項目12に記載のシステム。
[項目14]
前記少なくとも1つの画像に表されている前記物体の前記密度が所定の密度閾値に等しいまたはこれを超えると、前記第2推定位置が前記第1推定位置より大きく重みづけされる、項目12に記載のシステム。
[項目15]
前記第1の重み値および前記第2の重み値が、前記少なくとも1つの画像に表されている悪天候状態に基づいていると、前記第2推定位置が前記第1推定位置より大きく重みづけされる、項目6に記載のシステム。
[項目16]
前記悪天候状態には雨、雪、または霧が含まれる、項目15に記載のシステム。
[項目17]
前記第1の重み値および前記第2の重み値が、前記少なくとも1つの画像に表されている前記ホスト車両の前記環境における明るさのレベルに基づいている、項目6に記載のシステム。
[項目18]
前記明るさのレベルが所定の閾値を上回ると、前記第1推定位置が前記第2推定位置より大きく重みづけされる、項目17に記載のシステム。
[項目19]
前記明るさのレベルが所定の閾値を下回ると、前記第2推定位置が前記第1推定位置より大きく重みづけされる、項目17に記載のシステム。
[項目20]
前記少なくとも1つの画像が少なくとも部分的に見えなくなっている物体の表現を含むと、前記第2推定位置が前記第1推定位置より大きく重みづけされる、項目6に記載のシステム。
[項目21]
前記少なくとも1つのプロセッサがさらに、前記第1推定位置と前記第2推定位置とを組み合わせて、前記少なくとも1つのナビゲーションマップセグメントに対する前記ホスト車両の微調整された推定位置を決定するようにプログラムされる、項目1から20のいずれか一項に記載のシステム。
[項目22]
前記微調整された推定位置が、前記第1推定位置に第1の重み値を適用すること、および、前記第2推定位置に第2の重み値を適用することにより決定される、項目21に記載のシステム。
[項目23]
前記ホスト車両の前記微調整された推定位置には、前記少なくとも1つのナビゲーションマップセグメントに含まれる目標軌跡に沿った前記ホスト車両の位置が含まれる、項目21に記載のシステム。
[項目24]
前記目標軌跡が、利用可能な走行車線に関連づけられる、項目23に記載のシステム。
[項目25]
前記目標軌跡が前記少なくとも1つのナビゲーションマップセグメントにおいて、3次元スプラインとして表される、項目23に記載のシステム。
[項目26]
前記少なくとも1つの画像を分析して、前記少なくとも1つの画像に表されている前記1つまたは複数の物体の前記存在を検出することが、エッジ識別または形状に基づいて少なくとも1つの物体を識別することを含む、項目1から25のいずれか一項に記載のシステム。
[項目27]
前記少なくとも1つの画像を分析して、前記少なくとも1つの画像に表されている前記1つまたは複数の物体の前記存在を検出することが、前記ホスト車両の前記環境を表す第2画像を前記画像取り込みデバイスから受信することと、前記少なくとも1つの画像と前記第2画像との間の、前記1つまたは複数の物体の、少なくとも1つの画像の位置変更により表された、前記1つまたは複数の物体の検出された動きに基づいて前記1つまたは複数の物体を検出することとを含む、項目1から26のいずれか一項に記載のシステム。
[項目28]
前記少なくとも1つのプロセッサがさらに、検出された前記1つまたは複数の物体について決定された前記位置情報と、前記少なくとも1つのナビゲーションマップセグメントに含まれる前記1つまたは複数のマッピングされた物体についての前記位置情報とを揃えることにより、前記第1推定位置を決定するようにプログラムされる、項目1から27のいずれか一項に記載のシステム。
[項目29]
前記訓練されたシステムが、訓練用ナビゲーションマップセグメントに対する様々な位置ずれの程度を表している複数の訓練用画像を含んだ訓練用データセットに少なくとも基づいて構成される、項目1から28のいずれか一項に記載のシステム。
[項目30]
前記訓練されたシステムが報酬関数に少なくとも基づいて構成される、項目1から29のいずれか一項に記載のシステム。
[項目31]
検出された前記1つまたは複数の物体には、信号機、標識、道路エッジ、車線標示、またはポールのうちの1つまたは複数が含まれる、項目1から30のいずれか一項に記載のシステム。
[項目32]
前記訓練されたシステムにはニューラルネットワークが含まれる、項目1から31のいずれか一項に記載のシステム。
[項目33]
前記ナビゲーション動作には、前記ホスト車両の加速、前記ホスト車両の減速、または前記ホスト車両の旋回のうちの少なくとも1つが含まれる、項目1から32のいずれか一項に記載のシステム。
[項目34]
車両ナビゲーション用の方法であって、前記方法が、
ホスト車両の環境を表す少なくとも1つの画像を画像取り込みデバイスから受信する段階と、
前記少なくとも1つの画像を分析して、前記少なくとも1つの画像に表されている1つまたは複数の物体の存在を検出する段階と、
前記少なくとも1つの画像の前記分析に基づいて、検出された前記1つまたは複数の物体に関連する位置情報を特定する段階と、
検出された前記1つまたは複数の物体に関連する前記位置情報と、少なくとも1つのナビゲーションマップセグメントに表されている1つまたは複数のマッピングされた物体の位置情報とを比較する段階と、
前記比較に基づいて、前記少なくとも1つのナビゲーションマップセグメントに対する前記ホスト車両の第1推定位置を決定する段階と、
前記少なくとも1つの画像の少なくとも一部および前記少なくとも1つのナビゲーションマップセグメントに関連づけられた少なくとも識別子を訓練されたシステムに提供する段階と、
前記少なくとも1つのナビゲーションマップセグメントに対する前記ホスト車両の第2推定位置を前記訓練されたシステムから受信する段階と、
前記ホスト車両の前記第1推定位置と前記ホスト車両の前記第2推定位置との組み合わせに基づいて、前記ホスト車両のナビゲーション動作を決定する段階と、
決定された前記ナビゲーション動作を前記ホスト車両に実施させる段階と
を備える、方法。