詳細な説明
以下の詳細な説明は、添付図面を参照する。可能な場合には常に、図面及び以下の説明において、同じ又は同様の部分を指すのに同じ参照番号が使用される。幾つかの例示的な実施形態は本明細書で説明されるが、変更形態、適応形態、及び他の実装形態が可能である。例えば、図面に示される構成要素に対する置換形態、追加形態、又は変更形態がなされ得、本明細書に記載される例示的な方法は、開示される方法のステップの置換、順序替え、削除、又は追加により変更することができる。したがって、以下の詳細な説明は、開示される実施形態及び例に限定されない。代わりに、適切な範囲は、添付の特許請求の範囲により規定される。
自律車両概要
本開示を通して使用される場合、「自律車両」という用語は、ドライバーの入力なしで少なくとも1つのナビゲーション変更を実施することが可能な車両を指す。「ナビゲーション変更」は、車両の操舵、ブレーキ、又は加速の1つ又は複数の変更を指す。自律的であるために、車両は完全に自動である(例えば、ドライバーなし又はドライバー入力なしでの完全動作)必要はない。むしろ、自律車両は、特定の時間期間中にはドライバーの制御下で動作し、他の時間期間中にはドライバーの制御なしで動作することができる車両を含む。自律車両は、操舵等の車両ナビゲーションの幾つかの側面のみを制御する(例えば、車両レーン制約間に車両コースを維持するために)が、他の側面(例えば、ブレーキ)をドライバーに任せ得る車両を含むこともできる。幾つかの場合、自律車両は、車両のブレーキ、速度制御、及び/又は操舵の幾つか又は全ての側面を扱い得る。
人間のドライバーは、通常、車両を制御するために視覚的手掛かり及び観測に依存することから、交通基盤はそれに従って構築されており、レーンマーク、交通標識、及び信号機の全ては、視覚的情報をドライバーに提供するように設計されている。交通基盤のこれらの設計特徴に鑑みて、自律車両は、カメラと、車両の環境から捕捉される視覚的情報を分析する処理ユニットとを含み得る。視覚的情報は、例えば、ドライバーにより観測可能な交通基盤の構成要素(例えば、レーンマーク、交通標識、信号機等)及び他の障害物(例えば、他の車両、歩行者、瓦礫等)を含み得る。更に、自動車両は、ナビゲーション時、車両の環境のモデルを提供する情報等の記憶された情報を使用することもできる。例えば、車両は、GPSデータ、センサデータ(例えば、加速度計、速度センサ、サスペンションセンサ等からの)、及び/又は他の地図データを使用して、車両が走行している間、車両の環境に関連する情報を提供し得、車両(及び他の車両)は、情報を使用して、モデルでの車両自体の位置を特定し得る。
本開示の幾つかの実施形態では、自律車両は、移動している間に得られる情報(例えば、カメラ、GPSデバイス、加速度計、速度センサ、サスペンションセンサ等からの)を使用し得る。他の実施形態では、自律車両は、移動中、車両(又は他の車両)による過去の移動から得られる情報を使用し得る。更に他の実施形態では、自律車両は、移動している間に得られる情報と、過去の移動から得られる情報との組合せを使用し得る。以下のセクションにおいて、開示される実施形態によるシステムの概要を提供し、その後、前向き撮像システム及びシステムによる方法の概要が続く。以下のセクションは、自律車両ナビゲーションのための疎な地図を構築、使用、及び更新するシステム及び方法を開示する。
システム概要
図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つ又は複数の有線及び/又は無線リンクを含み得る。
無線送受信機172は、無線周波数、赤外線周波数、磁場、又は電場の使用により無線インタフェースを介して伝送情報を1つ又は複数のネットワーク(例えば、セルラ、インターネット等)と交換するように構成される1つ又は複数のデバイスを含み得る。無線送受信機172は、任意の既知の標準を使用してデータを送信及び/又は受信し得る(例えば、Wi−Fi(登録商標)、Bluetooth(登録商標)、Bluetooth Smart、802.15.4、ZigBee(登録商標)等)。そのような伝送は、ホスト車両から1つ又は複数のリモートロケーションのサーバへの通信を含むことができる。そのような伝送は、ホスト車両と、ホスト車両の環境内の1つ又は複数の標的車両との間の通信(一方向又は双方向)(例えば、ホスト車両の環境内の標的車両を考慮して又は標的車両と一緒に、ホスト車両のナビゲーションの調整を促進するため)又は送信側車両の近傍の非指定受信側へのブロードキャスト伝送を含むこともできる。
アプリケーションプロセッサ180及び画像プロセッサ190の両方は、様々なタイプの処理デバイスを含み得る。例えば、アプリケーションプロセッサ180及び画像プロセッサ190のいずれか一方又は両方は、マイクロプロセッサ、プリプロセッサ(画像プリプロセッサ等)、グラフィックス処理装置(GPU)、中央演算処理装置(CPU)、サポート回路、デジタル信号プロセッサ、集積回路、メモリ、又はアプリケーションを実行し、画像を処理して分析するのに適する任意の他のタイプのデバイスを含み得る。幾つかの実施形態では、アプリケーションプロセッサ180及び/又は画像プロセッサ190は、任意のタイプのシングルコア又はマルチコアプロセッサ、モバイルデバイスマイクロコントローラ、中央演算処理装置等を含み得る。例えば、Intel(登録商標)、AMD(登録商標)等の製造業者から入手可能なプロセッサ又はNVIDIA(登録商標)、ATI(登録商標)等の製造業者から入手可能なGPUを含め、様々な処理デバイスが使用可能であり、様々なアーキテクチャ(例えば、x86プロセッサ、ARM(登録商標)等)を含み得る。
幾つかの実施形態では、アプリケーションプロセッサ180及び/又は画像プロセッサ190は、Mobileye(登録商標)から入手可能な任意のEyeQシリーズのプロセッサをみ得る。これらのプロセッサ設計は、それぞれローカルメモリ及び命令セットを有する複数の処理ユニットを含む。そのようなプロセッサは、複数の画像センサから画像データを受信するビデオ入力を含み得ると共に、ビデオ出力機能を含むこともできる。一例では、EyeQ2(登録商標)は、332MHzで動作する90nmミクロン技術を使用する。EyeQ2(登録商標)アーキテクチャは、2つの浮動小数点ハイパースレッド32ビットRISC CPU(MIPS32(登録商標)34K(登録商標)コア)、5つのビジョン計算エンジン(VCE)、3つのベクトルマイクロコードプロセッサ(VMP(登録商標))、Denali64ビットモバイルDDRコントローラ、128ビット内部音響相互接続、デュアル16ビットビデオ入力及び18ビットビデオ出力コントローラ、16チャネルDMA、及び幾つかの周辺機器からなる。MIPS34K CPUは、5つのVCE、3つのVMP(商標)及びDMA、第2のMIPS34K CPU及びマルチチャネルDMA、並びに他の周辺機器を管理する。5つのVCE、3つのVMP(登録商標)、及びMIPS34K CPUは、多機能バンドルアプケーションにより要求される集中的なビジョン計算を実行することができる。別の例では、開示される実施形態において、第三世代プロセッサであり、EyeQ2(登録商標)よりも6倍強力なEyeQ3(登録商標)を使用し得る。他の例では、EyeQ4(登録商標)及び/又はEyeQ5(登録商標)は、開示される実施形態に使用され得る。当然ながら、任意のより新しい又は将来のEyeQ処理デバイスも、開示される実施形態と一緒に使用され得る。
本明細書に開示される処理デバイスのいずれも、特定の機能を実行するように構成され得る。特定の機能を実行するように、記載されたEyeQプロセッサのいずれか又は他のコントローラ若しくはマイクロプロセッサ等の処理デバイスを構成することは、コンピュータ実行可能命令をプログラムし、処理デバイスの動作中に実行するように、それらの命令を処理デバイスに提供することを含み得る。幾つかの実施形態では、処理デバイスを構成することは、アーキテクチャ命令を処理デバイスに直接プログラムすることを含み得る。例えば、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)等の処理デバイスは、例えば、1つ又は複数のハードウェア記述言語(HDL)を使用して構成され得る。
他の実施形態では、処理デバイスを構成することは、動作中、処理デバイスがアクセス可能なメモリに実行可能命令を記憶することを含み得る。例えば、処理デバイスは、動作中、メモリにアクセスして、記憶された命令を取得及び実行し得る。いずれの場合でも、本明細書に開示される検知、画像分析、及び/又はナビゲーション機能を実行するように構成された処理デバイスは、ホスト車両の複数のハードウェアベースの構成要素を管理する専用ハードウェアベースシステムを表す。
図1は、処理ユニット110に含まれる2つの別個の処理デバイスを示すが、より多数又はより少数の処理デバイスを使用することもできる。例えば、幾つかの実施形態では、単一の処理デバイスを使用して、アプリケーションプロセッサ180及び画像プロセッサ190のタスクを達成し得る。他の実施形態では、これらのタスクは、3つ以上の処理デバイスによって実行され得る。更に、幾つかの実施形態では、システム100は、画像取得ユニット120等の他の構成要素を含まず、処理ユニット110の1つ又は複数を含み得る。
処理ユニット110は、様々なタイプのデバイスを含み得る。例えば、処理ユニット110は、コントローラ、画像プリプロセッサ、中央演算処理装置(CPU)、グラフィックス処理ユニット(GPU)、サポート回路、デジタル信号プロセッサ、集積回路、メモリ、又は画像を処理及び分析する任意の他のタイプのデバイス等の様々なデバイスを含み得る。画像プリプロセッサは、画像センサから画像を捕捉し、デジタル化し、処理するビデオプロセッサを含み得る。CPUは、任意の数のマイクロコントローラ又はマイクロプロセッサを含み得る。GPUも任意の数のマイクロコントローラ又はマイクロプロセッサを含み得る。サポート回路は、キャッシュ、電源、クロック、及び入出力回路を含め、当技術分野で一般に周知の任意の数の回路であり得る。メモリは、プロセッサによって実行されると、システムの動作を制御するソフトウェアを記憶し得る。メモリは、データベース及び画像処理ソフトウェアを含み得る。メモリは、任意の数のランダムアクセスメモリ、読み取り専用メモリ、フラッシュメモリ、ディスクドライブ、光学記憶装置、テープ記憶装置、リムーバブル記憶装置、及び他のタイプの記憶装置を含み得る。一例では、メモリは、処理ユニット110とは別個であり得る。別の例では、メモリは、処理ユニット110に統合され得る。
各メモリ140、150は、プロセッサ(例えば、アプリケーションプロセッサ180及び/又は画像プロセッサ190)によって実行されると、システム100の様々な態様の動作を制御し得るソフトウェア命令を含み得る。これらのメモリユニットは、様々なデータベース及び画像処理ソフトウェア、並びに例えばニューラルネットワーク又はディープニューラルネットワーク等のトレーニングされたシステムを含み得る。メモリユニットは、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、フラッシュメモリ、ディスクドライブ、光学記憶装置、テープ記憶装置、リムーバブル記憶装置、及び/又は任意の他のタイプの記憶装置を含み得る。幾つかの実施形態では、メモリユニット140、150は、アプリケーションプロセッサ180及び/又は画像プロセッサ190とは別個であり得る。他の実施形態では、これらのメモリユニットは、アプリケーションプロセッサ180及び/又は画像プロセッサ190に統合され得る。
位置センサ130は、システム100の少なくとも1つの構成要素に関連付けられた位置を特定するのに適する任意のタイプのデバイスを含み得る。幾つかの実施形態では、位置センサ130はGPS受信機を含み得る。そのような受信機は、全地球測位システム衛星によりブロードキャストされる信号を処理することにより、ユーザの位置及び速度を特定することができる。位置センサ130からの位置情報は、アプリケーションプロセッサ180及び/又は画像プロセッサ190に提供され得る。
幾つかの実施形態では、システム100は、車両200の速度を測定する速度センサ(例えば、タコメータ、速度計)及び/又は車両200の加速度を測定する加速度計(単軸又は多軸のいずれか)等の構成要素を含み得る。
ユーザインタフェース170は、情報を提供するか、又はシステム100の1人若しくは複数のユーザから入力を受信するのに適する任意のデバイスを含み得る。幾つかの実施形態では、ユーザインタフェース170は、例えば、タッチスクリーン、マイクロフォン、キーボード、ポインタデバイス、トラックホィール、カメラ、つまみ、ボタン等を含め、ユーザ入力デバイスを含み得る。そのような入力デバイスを用いて、ユーザは、命令若しくは情報をタイプし、音声コマンドを提供し、ボタン、ポインタ、若しくは目追跡機能を使用して、又は情報をシステム100に通信する任意の他の適する技法を通して画面上のメニュー選択肢を選択することにより、システム100に情報入力又はコマンドを提供可能であり得る。
ユーザインタフェース170は、ユーザに情報を提供するか、又はユーザから情報を受信し、例えば、アプリケーションプロセッサ180による使用のためにその情報を処理するように構成される1つ又は複数の処理デバイスを備え得る。幾つかの実施形態では、そのような処理デバイスは、目の動きを認識して追跡する命令、音声コマンドを受信して解釈する命令、タッチスクリーンで行われたタッチ及び/又はジェスチャを認識して解釈する命令、キーボード入力又はメニュー選択に応答する命令等を実行し得る。幾つかの実施形態では、ユーザインタフェース170は、ディスプレイ、スピーカ、触覚デバイス、及び/又は出力情報をユーザに提供する任意の他のデバイスを含み得る。
地図データベース160は、システム100にとって有用な地図データを記憶する任意のタイプのデータベースを含み得る。幾つかの実施形態では、地図データベース160は、道路、水に関する特徴、地理的特徴、ビジネス、関心点、レストラン、ガソリンスタンド等を含め、様々な項目の、基準座標系での位置に関連するデータを含み得る。地図データベース160は、そのような項目の位置のみならず、例えば、記憶された特徴のいずれかに関連付けられた名称を含め、それらの項目に関連する記述子も記憶し得る。幾つかの実施形態では、地図データベース160は、システム100の他の構成要素と共に物理的に配置され得る。代替又は追加として、地図データベース160又はその一部は、システム100の他の構成要素(例えば、処理ユニット110)に関してリモートに配置され得る。そのような実施形態では、地図データベース160からの情報は、有線又は無線データ接続を介してネットワークにダウンロードされ得る(例えば、セルラネットワーク及び/又はインターネット等を介して)。幾つかの場合、地図データベース160は、特定の道路特徴(例えば、レーンマーク)の多項式表現又はホスト車両の目標軌道を含む疎なデータモデルを記憶し得る。そのような地図を生成するシステム及び方法について、図8〜図19を参照して以下に考察する。
画像捕捉デバイス122、124、及び126は、それぞれ環境から少なくとも1つの画像を捕捉するのに適する任意のタイプのデバイスを含み得る。更に、任意の数の画像捕捉デバイスを使用して、画像プロセッサに入力する画像を取得し得る。幾つかの実施形態は、単一の画像捕捉デバイスのみを含み得る一方、他の実施形態は、2つ、3つ、更には4つ以上の画像捕捉デバイスを含み得る。画像捕捉デバイス122、124、及び126については、図2B〜図2Eを参照して更に以下に説明する。
システム100又はシステム100の様々な構成要素は、様々な異なるプラットフォームに組み込み得る。幾つかの実施形態では、システム100は、図2Aに示されるように、車両200に含め得る。例えば、車両200は、図1に関して上述したように、処理ユニット110及びシステム100の任意の他の構成要素を備え得る。幾つかの実施形態では、車両200は単一の画像捕捉デバイス(例えば、カメラ)のみを備え得る一方、図2B〜図2Eに関連して考察した実施形態等の他の実施形態では、複数の画像捕捉デバイスが使用可能である。例えば、図2Aに示されるように、車両200の画像捕捉デバイス122及び124のいずれかは、ADAS(最新運転者支援システム)撮像セットの一部であり得る。
画像取得ユニット120の一部として車両200に含まれる画像捕捉デバイスは、任意の適する位置に位置し得る。幾つかの実施形態では、図2A〜図2E及び図3A〜図3Cに示されるように、画像捕捉デバイス122は、バックミラーの近傍に配置され得る。この位置は、車両200のドライバーと同様の視線を提供し得、ドライバーにとって何が見え、何が見えないのかの判断を支援し得る。画像捕捉デバイス122は、バックミラーの近傍の任意の位置に位置し得るが、画像捕捉デバイス122をミラーのドライバー側に配置することは、ドライバーの視野及び/又は視線を表す画像の取得を更に支援し得る。
画像取得ユニット120の画像捕捉デバイスに他の位置を使用することもできる。例えば、画像捕捉デバイス124は、車両200のバンパー上又はバンパー内に配置され得る。そのような位置は、広視野を有する画像捕捉デバイスに特に適し得る。バンパーに配置される画像捕捉デバイスの視線は、ドライバーの視線と異なることができ、したがって、バンパー画像捕捉デバイス及びドライバーは、同じ物体を常に見ているわけではない。画像捕捉デバイス(例えば、画像捕捉デバイス122、124、及び126)は、他の位置に配置することもできる。例えば、画像捕捉デバイスは、車両200のサイドミラーの一方又は両方、車両200のルーフ、車両200のフード、車両200のトランク、車両200の側部に配置され得、車両200の任意のウィンドウに搭載、背後に位置決め、又は前に位置決めされ得、車両200の前部及び/又は後部のライト又はその近傍等に搭載され得る。
画像捕捉デバイスに加えて、車両200は、システム100の様々な他の構成要素を含み得る。例えば、処理ユニット110は、車両のエンジン制御ユニット(ECU)に統合されるか、又はECUとは別個に車両200に含まれ得る。車両200には、GPS受信機等の位置センサ130を備えることもでき、車両200は、地図データベース160並びにメモリユニット140及び150を含むこともできる。
上述したように、無線送受信機172は、1つ又は複数のネットワーク(例えば、セルラネットワーク、インターネット等)を介してデータを及び/又は受信し得る。例えば、無線送受信機172は、システム100により収集されたデータを1つ又は複数のサーバにアップロードし、データを1つ又は複数のサーバからダウンロードし得る。無線送受信機172を介して、システム100は、例えば、定期的に又は需要時に地図データベース160、メモリ140、及び/又はメモリ150に記憶されたデータへの更新を受信し得る。同様に、無線送受信機172は、システム100による/からの任意のデータ(例えば、画像取得ユニット120により捕捉された画像、位置センサ130、他のセンサ、又は車両制御システムにより受信されたデータ等)及び/又は処理ユニット110により処理された任意のデータを1つ又は複数のサーバにアップロードし得る。
システム100は、プライバシーレベル設定に基づいてデータをサーバ(例えば、クラウド)にアップロードし得る。例えば、システム100は、サーバに送信される、車両及び/又は車両のドライバー/所有者を一意に識別し得るタイプのデータ(メタデータを含む)を規制又は制限するプライバシーレベル設定を実施し得る。そのような設定は、例えば、無線送受信機172を介してユーザにより設定され得るか、工場デフォルト設定により初期化され得るか、又は無線送受信機172により受信されるデータにより設定され得る。
幾つかの実施形態では、システム100は、「高」プライバシーレベルに従ってデータをアップロードし得、設定下において、システム100は、特定の車両及び/又はドライバー/所有者についてのいかなる詳細も伴わないデータ(例えば、ルートに関連する位置情報、捕捉画像等)を送信し得る。例えば、「高」プライバシーレベルに従ってデータをアップロードする場合、システム100は、車両識別番号(VIN)又は車両のドライバー若しくは所有者の氏名を含まず、代わりに捕捉画像及び/又はルートに関連する限られた位置情報等のデータを送信し得る。
他のプライバシーレベルも意図される。例えば、システム100は、「中」プライバシーレベルに従ってデータをサーバに送信し得、車両及び/又は車両タイプのメーカー及び/又はモデル(例えば、乗用車、スポーツユーティリティ車、トラック等)等の「高」プライバシーレベル下では含まれない追加情報を含み得る。幾つかの実施形態では、システム100は、「低」プライバシーレベルに従ってデータをアップロードし得る。「低」プライバシーレベル設定下では、システム100は、特定の車両、所有者/ドライバー、及び/又は車両が走行したルートの一部又は全体を一意に識別するのに十分なデータをアップロードし、そのような情報を含み得る。そのような「低」プライバシーレベルデータは、例えば、VIN、ドライバー/所有者氏名、出発前の車両の出発点、車両の意図される目的地、車両のメーカー及び/又はモデル、車両のタイプ等の1つ又は複数を含み得る。
図2Aは、開示される実施形態による例示的な車両撮像システムの側面図表現である。図2Bは、図2Aに示される実施形態の上面図表現である。図2Bに示されるように、開示される実施形態は、バックミラーの近傍及び/又は車両200のドライバー近傍に位置決めされた第1の画像捕捉デバイス122と、車両200のバンパー領域(例えば、バンパー領域210の1つ)上又はバンパー領域内に位置決めされる第2の画像捕捉デバイス124と、処理ユニット110とを有するシステム100を本体内に含む車両200を示し得る。
図2Cに示されるように、画像捕捉デバイス122及び124の両方は、車両200のバックミラーの近傍及び/又はドライバーの近傍に位置決めされ得る。なお、2つの画像捕捉デバイス122及び124が図2B及び図2Cに示されているが、他の実施形態が3つ以上の画像捕捉デバイスを含み得ることを理解されたい。例えば、図2D及び図2Eに示される実施形態では、第1の画像捕捉デバイス122、第2の画像捕捉デバイス124、及び第3の画像捕捉デバイス126が車両200のシステム100に含まれる。
図2Dに示されるように、画像捕捉デバイス122は、車両200のバックミラーの近傍及び/又はドライバーの近傍に位置決めされ得、画像捕捉デバイス124及び126は、車両200のバンパー領域(例えば、バンパー領域210の1つ)上に位置決めされ得る。また、図2Eに示されるように、画像捕捉デバイス122、124、及び126は、車両200のバックミラーの近傍及び/又はドライバーシートの近傍に位置決めされ得る。開示される実施形態は、いかなる特定の数及び構成の画像捕捉デバイスにも限定されず、画像捕捉デバイスは、車両200内及び/又は車両200上の任意の適する位置に位置決めされ得る。
開示される実施形態が車両に限定されず、他の状況でも適用可能であることを理解されたい。開示される実施形態が特定のタイプの車両200に限定されず、自動車、トラック、トレーラー、及び他のタイプの車両を含む全てのタイプの車両に適用可能であり得ることも理解されたい。
第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、又は52度FOVを超える度数を含め、40度〜56度の範囲内等の通常のFOVを有するように構成され得る。代替として、画像捕捉デバイス122は、28度FOV又は36度FOV等の23〜40度の範囲の狭いFOVを有するように構成され得る。加えて、画像捕捉デバイス122は、100〜180度の範囲の広いFOVを有するように構成され得る。幾つかの実施形態では、画像捕捉デバイス122は、広角バンパーカメラ又は最高で180度FOVを有するバンパーカメラを含み得る。幾つかの実施形態では、画像捕捉デバイス122は、約100度の水平FOVを有するアスペクト比約2:1(例えば、H×V=3800×1900ピクセル)の7.2Mピクセル画像捕捉デバイスであり得る。そのような画像捕捉デバイスは、三次元画像捕捉デバイス構成の代わりに使用され得る。大きいレンズ歪みに起因して、そのような画像捕捉デバイスの垂直FOVは、画像捕捉デバイスが半径方向に対称なレンズを使用する実装形態では、50度よりはるかに低くなり得る。例えば、そのようなレンズは、半径方向で対称ではなく、それにより、水平FOV100度で、50度よりも大きい垂直FOVが可能である。
第1の画像捕捉デバイス122は、車両200に関連付けられたシーンに対して複数の第1の画像を取得し得る。複数の第1の画像のそれぞれは、一連の画像走査線として取得され得、これらは、ローリングシャッタを使用して捕捉され得る。各走査線は、複数のピクセルを含み得る。
第1の画像捕捉デバイス122は、第1の一連の画像走査線のそれぞれの取得に関連付けられた走査レートを有し得る。走査レートとは、画像センサが、特定の走査線に含まれる各ピクセルに関連付けられた画像データを取得することができるレートを指し得る。
画像捕捉デバイス122、124、及び126は、例えば、CCDセンサ又はCMOSセンサを含め、任意の適するタイプ及び数の画像センサを含み得る。一実施形態では、CMOS画像センサは、ローリングシャッタと共に利用され得、それにより、行内の各ピクセルは、一度に1つずつ読み取られ、行の走査は、画像フレーム全体が捕捉されるまで行毎に進められる。幾つかの実施形態では、行は、フレームに対して上から下に順次捕捉され得る。
幾つかの実施形態では、本明細書に開示される画像捕捉デバイス(例えば、画像捕捉デバイス122、124、及び126)の1つ又は複数は、高解像度イメージャを構成し得、5Mピクセル超、7Mピクセル超、10Mピクセル超、又はそれを超える解像度を有し得る。
ローリングシャッタの使用により、異なる行内のピクセルは異なるときに露出され捕捉されることになり得、それにより、スキュー及び他の画像アーチファクトが捕捉画像フレームで生じ得る。他方、画像捕捉デバイス122がグローバル又は同期シャッタを用いて動作するように構成される場合、全ピクセルは、同量の時間にわたり、共通の露出期間中に露出され得る。その結果、グローバルシャッタを利用するシステムから収集されるフレーム内の画像データは、特定のときのFOV全体(FOV202等)のスナップショットを表す。それとは逆に、ローリングシャッタを適用する場合、フレーム内の各行が露出され、データは異なる時間に捕捉される。したがって、移動中の物体は、ローリングシャッタを有する画像捕捉デバイスでは歪んで見えることがある。この現象について以下により詳細に説明する。
第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度、又は20度未満のFOVを有し得る。
画像捕捉デバイス124及び126は、車両200に関連付けられたシーンに対して複数の第2及び第3の画像を取得し得る。複数の第2及び第3の画像のそれぞれは、第2及び第3の一連の画像走査線として取得され得、これらは、ローリングシャッタを使用して捕捉され得る。各走査線又は各行は、複数のピクセルを有し得る。画像捕捉デバイス124及び126は、第2及び第3の一連内に含まれる各画像走査線の取得に関連付けられた第2及び第3の走査レートを有し得る。
各画像捕捉デバイス122、124、及び126は、任意の適する位置に、車両200に対して任意の適する向きで位置決めされ得る。画像捕捉デバイス122、124、及び126の相対位置は、画像捕捉デバイスから取得される情報を一緒に融合させることを支援するように選択され得る。例えば、幾つかの実施形態では、画像捕捉デバイス124に関連付けられたFOV(FOV204)は、画像捕捉デバイス122に関連付けられたFOV(FOV202等)及び画像捕捉デバイス126に関連付けられたFOV(FOV206等)と部分的又は完全に重複し得る。
画像捕捉デバイス122、124、及び126は、任意の適する相対高さで車両200に配置され得る。一例では、画像捕捉デバイス122、124、及び126間に高さ差があり得、高さ差は、立体分析を可能にするのに十分な視差情報を提供し得る。例えば、図2Aに示されるように、2つの画像捕捉デバイス122及び124は異なる高さにある。画像捕捉デバイス122、124、及び126間には横方向変位差もあり得、例えば、処理ユニット110による立体分析に追加の視差情報を与える。横方向変位差は、図2C及び図2Dに示されるように、dxで示され得る。幾つかの実施形態では、前部変位又は後部変位(例えば、範囲変位)が、画像捕捉デバイス122、124、126間に存在し得る。例えば、画像捕捉デバイス122は、画像捕捉デバイス124及び/又は画像捕捉デバイス126の0.5〜2メートル以上背後に配置され得る。このタイプの変位では、画像捕捉デバイスの1つが、他の画像捕捉デバイスの潜在的なブラインドスポットをカバー可能であり得る。
画像捕捉デバイス122は、任意の適する解像度能力(例えば、画像センサに関連付けられたピクセル数)を有し得、画像捕捉デバイス122に関連付けられた画像センサの解像度は、画像捕捉デバイス124及び126に関連付けられた画像センサの解像度よりも高いか、低いか、又は同じであり得る。幾つかの実施形態では、画像捕捉デバイス122及び/又は画像捕捉デバイス124及び126に関連付けられた画像センサは、解像度640×480、1024×768、1280×960、又は任意の他の適する解像度を有し得る。
フレームレート(例えば、画像捕捉デバイスが、次の画像フレームに関連付けられたピクセルデータの捕捉に移る前、1つの画像フレームのピクセルデータの組を取得する速度)は、制御可能であり得る。画像捕捉デバイス122に関連付けられたフレームレートは、画像捕捉デバイス124及び126に関連付けられたフレームレートよりも高いか、低いか、又は同じであり得る。画像捕捉デバイス122、124、及び126に関連付けられたフレームレートは、フレームレートのタイミングに影響を及ぼし得る様々なファクタに依存し得る。例えば、画像捕捉デバイス122、124、及び126の1つ又は複数は、画像捕捉デバイス122、124、及び/又は126内の画像センサの1つ又は複数のピクセルに関連付けられた画像データの取得前又は取得後に課される選択可能なピクセル遅延期間を含み得る。一般に、各ピクセルに対応する画像データは、デバイスのクロックレート(例えば、1クロックサイクル当たり1ピクセル)に従って取得され得る。更に、ローリングシャッタを含む実施形態では、画像捕捉デバイス122、124、及び126の1つ又は複数は、画像捕捉デバイス122、124、及び/又は126内の画像センサのピクセル行に関連付けられた画像データの取得前又は取得後に課される選択可能な水平ブランク期間を含み得る。更に、画像捕捉デバイス122、124、及び/又は126の1つ又は複数は、画像捕捉デバイス122、124、及び126の画像フレームに関連付けられた画像データの取得前又は取得後に課される選択可能な垂直ブランク期間を含み得る。
これらのタイミング制御により、各画像捕捉デバイスの線走査レートが異なる場合でも、画像捕捉デバイス122、124、及び126に関連付けられたフレームレートを同期させることができ得る。更に、以下に更に詳細に考察するように、ファクタ(例えば、画像センサ解像度、最高線走査レート等)の中でも特に、これらの選択可能なタイミング制御により、画像捕捉デバイス122の視野が画像捕捉デバイス124及び126のFOVと異なる場合でも、画像捕捉デバイス122のFOVが画像捕捉デバイス124及び126の1つ又は複数のFOVと重複するエリアからの画像捕捉を同期させることが可能になり得る。
画像捕捉デバイス122、124、及び126でのフレームレートタイミングは、関連付けられた画像センサの解像度に依存し得る。例えば、両デバイスの線走査レートが同様であると仮定し、一方のデバイスが解像度640×480を有する画像センサを含み、他方のデバイスが解像度1280×960を有する画像センサを含む場合、高い解像度を有するセンサからの画像データのフレーム取得ほど、長い時間が必要になる。
画像捕捉デバイス122、124、及び126での画像データ取得のタイミングに影響を及ぼし得る他のファクタは、最高線走査レートである。例えば、画像捕捉デバイス122、124、及び126に含まれる画像センサからの画像データ行の取得は、何らかの最小時間量を必要とする。ピクセル遅延期間が追加されないと仮定すると、画像データ行を取得するこの最小時間量は、特定のデバイスの最高線走査レートに関連することになる。高い最高線走査レートを提供するデバイスほど、より低い最高線走査レートを有するデバイスよりも高いフレームレートを提供する潜在性を有する。幾つかの実施形態では、画像捕捉デバイス124及び126の一方又は両方は、画像捕捉デバイス122に関連付けられた最高線走査レートよりも高い最高線走査レートを有し得る。幾つかの実施形態では、画像捕捉デバイス124及び/又は126の最高線走査レートは、画像捕捉デバイス122の最高線走査レートの1.25倍、1.5倍、1.75倍、又は2倍以上であり得る。
別の実施形態では、画像捕捉デバイス122、124、及び126は、同じ最高線走査レートを有し得るが、画像捕捉デバイス122は、その最高走査レート以下の走査レートで動作し得る。システムは、画像捕捉デバイス124及び126の一方又は両方が画像捕捉デバイス122の線走査レートと等しい線走査レートで動作するように構成され得る。他の例では、システムは、画像捕捉デバイス124及び/又は126の線走査レートが、画像捕捉デバイス122の線走査レートの1.25倍、1.5倍、1.75倍、又は2倍以上であり得るように構成され得る。
幾つかの実施形態では、画像捕捉デバイス122、124、及び126は非対称であり得る。すなわち、これら画像捕捉デバイスは、異なる視野(FOV)及び焦点距離を有するカメラを含み得る。画像捕捉デバイス122、124、及び126の視野は、例えば、車両200の環境に対する任意の所望のエリアを含み得る。幾つかの実施形態では、画像捕捉デバイス122、124、及び126の1つ又は複数は、車両200の前の環境、車両200の背後の環境、車両200の両側の環境、又はそれらの組合せから画像データを取得するように構成され得る。
更に、各画像捕捉デバイス122、124、及び/又は126に関連付けられた焦点距離は、各デバイスが車両200から所望の距離範囲にある物体の画像を取得するように選択可能であり得る(例えば、適切なレンズの包含等により)。例えば、幾つかの実施形態では、画像捕捉デバイス122、124、及び126は、車両から数メートル以内の近接物体の画像を取得し得る。画像捕捉デバイス122、124、126は、車両からより離れた範囲(例えば、25m、50m、100m、150m、又はそれを超える)における物体の画像を取得するように構成することもできる。更に、画像捕捉デバイス122、124、及び126の焦点距離は、ある画像捕捉デバイス(例えば、画像捕捉デバイス122)が車両に比較的近い(例えば、10m以内又は20m以内)物体の画像を取得することができる一方、他の画像捕捉デバイス(例えば、画像捕捉デバイス124及び126)が、車両200からより離れた物体(例えば、20m超、50m超、100m超、150m超等)の画像を取得することができるように選択され得る。
幾つかの実施形態によれば、1つ又は複数の画像捕捉デバイス122、124、及び126のFOVは、広角を有し得る。例えば、特に車両200の近傍エリアの画像取得に使用し得る画像捕捉デバイス122、124、及び126には140度のFOVを有することが有利であり得る。例えば、画像捕捉デバイス122は、車両200の右又は左のエリアの画像の捕捉に使用され得、そのような実施形態では、画像捕捉デバイス122が広いFOV(例えば、少なくとも140度)を有することが望ましいことがある。
画像捕捉デバイス122、124、及び126のそれぞれに関連付けられた視野は、各焦点距離に依存し得る。例えば、焦点距離が増大するにつれて、対応する視野は低減する。
画像捕捉デバイス122、124、及び126は、任意の適する視野を有するように構成され得る。特定の一例では、画像捕捉デバイス122は、水平FOV46度を有し得、画像捕捉デバイス124は水平FOV23度を有し得、画像捕捉デバイス126は水平FOV23〜46度を有し得る。別の例では、画像捕捉デバイス122は水平FOV52度を有し得、画像捕捉デバイス124は水平FOV26度を有し得、画像捕捉デバイス126は、水平FOV26〜52度を有し得る。幾つかの実施形態では、画像捕捉デバイス122のFOVと画像捕捉デバイス124及び/又は画像捕捉デバイス126のFOVとの比率は、1.5〜2.0で変化し得る。他の実施形態では、この比率は1.25〜2.25で変化し得る。
システム100は、画像捕捉デバイス122の視野が、画像捕捉デバイス124及び/又は画像捕捉デバイス126の視野と少なくとも部分的に又は完全に重複するように構成され得る。幾つかの実施形態では、システム100は、画像捕捉デバイス124及び126の視野が、例えば、画像捕捉デバイス122の視野内に入り(例えば、画像捕捉デバイス122の視野よりも小さく)、画像捕捉デバイス122の視野と共通の中心を共有するように構成され得る。他の実施形態では、画像捕捉デバイス122、124、及び126は、隣接するFOVを捕捉し得るか、又は部分的に重複するFOVを有し得る。幾つかの実施形態では、画像捕捉デバイス122、124、及び126の視野は、FOVがより狭い画像捕捉デバイス124及び/又は126の中心が、FOVがより広いデバイス122の視野の下半分に配置され得るように位置合わせされ得る。
図2Fは、開示される実施形態による例示的な車両制御システムの図表現である。図2Fに示されるように、車両200は、スロットルシステム220、ブレーキシステム230、及び操舵システム240を含み得る。システム100は、1つ又は複数のデータリンク(例えば、任意の有線及び/又は無線リンク又はデータを伝送するリンク)を介して、スロットルシステム220、ブレーキシステム230、及び操舵システム240の1つ又は複数に入力(例えば、制御信号)を提供し得る。例えば、画像捕捉デバイス122、124、及び/又は126により取得された画像の分析に基づいて、システム100は、車両200をナビゲーションする制御信号をスロットルシステム220、ブレーキシステム230、及び操舵システム240の1つ又は複数に提供し得る(例えば、加速、ターン、レーンシフト等を行わせることにより)。更に、システム100は、車両200の動作状況を示す入力(例えば、速度、車両200がブレーキ中及び/又はターン中であるか否か等)をスロットルシステム220、ブレーキシステム230、及び操舵システム24の1つ又は複数から受信し得る。以下では、更なる詳細を図4〜図7に関連して提供する。
図3Aに示されるように、車両200は、車両200のドライバー又は乗員と対話するユーザインタフェース170を含むこともできる。例えば、車両アプリケーション内のユーザインタフェース170は、タッチスクリーン320、つまみ330、ボタン340、及びマイクロフォン350を含み得る。車両200のドライバー又は乗員は、ハンドル(例えば、例えば、ウィンカーハンドルを含め、車両200のステアリングコラム上又はその近傍に配置される)及びボタン(例えば、車両200のハンドルに配置される)等を使用して、システム100と対話することもできる。幾つかの実施形態では、マイクロフォン350は、バックミラー310に隣接して位置決めされ得る。同様に、幾つかの実施形態では、画像捕捉デバイス122は、バックミラー310の近傍に配置され得る。幾つかの実施形態では、ユーザインタフェース170は、1つ又は複数のスピーカ360(例えば、車両オーディオシステムのスピーカ)を含むこともできる。例えば、システム100は、スピーカ360を介して様々な通知(例えば、アラート)を提供し得る。
図3B〜図3Dは、開示される実施形態による、バックミラー(例えば、バックミラー310)の背後に、車両フロントガラスと対向して位置決めされるように構成される例示的なカメラマウント370の図である。図3Bに示されるように、カメラマウント370は、画像捕捉デバイス122、124、及び126を含み得る。画像捕捉デバイス124及び126は、グレアシールド380の背後に位置決めされ得、グレアシールド380は、フロントガラスに直接接触し得、フィルム及び/又は反射防止材料の組成物を含み得る。例えば、グレアシールド380は、一致する傾斜を有するフロントガラスと対向してシールドが位置合わせされるように位置決めされ得る。幾つかの実施形態では、画像捕捉デバイス122、124、及び126のそれぞれは、例えば、図3Dに示されるように、グレアシールド380の背後に位置決めされ得る。開示される実施形態は、画像捕捉デバイス122、124及び126、カメラマウント370、並びにグレアシールド380のいかなる特定の構成にも限定されない。図3Cは、前から見た図3Bに示されるカメラマウント370の図である。
本開示の恩恵を受ける当業者により理解されるように、上記開示された実施形態に対する多くの変形形態及び/又は変更形態がなされ得る。例えば、全ての構成要素がシステム100の動作にとって必須であるわけではない。更に、任意の構成要素がシステム100の任意の適切な部分に配置され得、構成要素は、開示される実施形態の機能を提供しながら、様々な構成に再配置され得る。したがって、上述した構成は例であり、上述した構成に関係なく、システム100は、車両200の周囲を分析し、分析に応答して車両200をナビゲーションする広範囲の機能を提供することができる。
以下に更に詳細に考察するように、様々な開示される実施形態により、システム100は、自律運転及び/又はドライバー支援技術に関連する様々な特徴を提供し得る。例えば、システム100は、画像データ、位置データ(例えば、GPS位置情報)、地図データ、速度データ、及び/又は車両200に含まれるセンサからのデータを分析し得る。システム100は、例えば、画像取得ユニット120、位置センサ130、及び他のセンサから、分析のためにデータを収集し得る。更に、システム100は、収集されたデータを分析して、車両200が特定の行動をとるべきか否かを特定し、次に人間の介入なしで、決定された動作を自動的にとり得る。例えば、車両200が人間の介入なしでナビゲーションする場合、システム100は、車両200のブレーキ、加速度、及び/又は操舵を自動的に制御し得る(例えば、制御信号をスロットルシステム220、ブレーキシステム230、及び操舵システム240の1つ又は複数に送信することにより)。更に、システム100は、収集されたデータを分析し、収集されたデータの分析に基づいて警告及び/又はアラートを車両の搭乗者に発行し得る。システム100により提供される様々な実施形態に関する更なる詳細を以下に提供する。
前向きマルチ撮像システム
上述したように、システム100は、マルチカメラシステムを使用する運転支援機能を提供し得る。マルチカメラシステムは、車両の前方方向を向いた1つ又は複数のカメラを使用し得る。他の実施形態では、マルチカメラシステムは、車両の側部又は車両の後方を向いた1つ又は複数のカメラを含み得る。一実施形態では、例えば、システム100は2カメラ撮像システムを使用し得、その場合、第1のカメラ及び第2のカメラ(例えば、画像捕捉デバイス122及び124)は、車両(例えば、車両200)の前部及び/又は側部に位置決めされ得る。第1のカメラは、第2のカメラの視野よりも大きい、小さい、又は部分的に重複する視野を有し得る。更に、第1のカメラは、第1のカメラにより提供される画像の単眼画像分析を実行するための第1の画像プロセッサに接続され得、第2のカメラは、第2のカメラにより提供される画像の単眼画像分析を実行するための第2の画像プロセッサに接続され得る。第1及び第2の画像プロセッサの出力(例えば、処理された情報)は、結合され得る。幾つかの実施形態では、第2の画像プロセッサは、第1のカメラ及び第2のカメラの両方からの画像を受信して、立体分析を実行し得る。別の実施形態では、システム100は3カメラ撮像システムを使用し得、この場合、各カメラは異なる視野を有する。したがって、そのようなシステムは、車両の前方及び側部の両方の様々な距離にある物体から導出される情報に基づいて判断を下し得る。単眼画像分析との言及は、画像分析が単一視点から(例えば、単一のカメラ)から捕捉される画像に基づいて画像分析が実行される場合を指し得る。立体画像分析は、画像捕捉パラメータの1つ又は複数を変更した状態で捕捉された2つ以上の画像に基づいて画像分析が実行される場合を指し得る。例えば、立体画像分析の実行に適した捕捉画像は、2つ以上の異なる位置から捕捉される画像、異なる視野から捕捉される画像、異なる焦点距離を使用して捕捉される画像、視差情報付きで捕捉される画像等を含み得る。
例えば、一実施形態では、システム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への影響も最小限にするように動作し得る。
別の実施形態では、図3B及び図3Cに関連して上述したように、広視野カメラ(例えば、上記例では画像捕捉デバイス124)は、狭い主視野カメラ(例えば、上記例では画像捕捉デバイス122及び126)よりも低く搭載され得る。この構成は、広視野カメラからの自由な視線を提供し得る。反射を低減するために、カメラは、車両200のフロントガラス近くに搭載され得、反射光を弱める偏光器をカメラに含み得る。
3カメラシステムは、特定の性能特徴を提供し得る。例えば、幾つかの実施形態は、あるカメラによる物体の検出を別のカメラからの検出結果に基づいて検証する機能を含み得る。上述した3カメラ構成では、処理ユニット110は、例えば、3つの処理デバイス(例えば、上述したように3つのEyeQシリーズのプロセッサチップ)を含み得、各処理デバイスは、画像捕捉デバイス122、124、及び126の1つ又は複数により捕捉される画像の処理に向けられる。
3カメラシステムでは、第1の処理デバイスは、主カメラ及び狭視野カメラの両方から画像を受信し得、狭FOVカメラのビジョン処理を実行して、例えば、他の車両、歩行者、レーンマーク、交通標識、信号機、及び他の道路物体を検出し得る。更に、第1の処理デバイスは、主カメラからの画像と狭カメラからの画像との間でのピクセルの不一致を計算し、車両200の環境の3D再構築を作成し得る。次に、第1の処理デバイスは、3D再構築を、3Dマップデータと、又は別のカメラからの情報に基づいて計算される3D情報と結合し得る。
第2の処理デバイスは、主カメラから画像を受信し得、ビジョン処理を実行して、他の車両、歩行者、レーンマーク、交通標識、信号機、及び他の道路物体を検出し得る。更に、第2の処理デバイスは、カメラ変位を計算し、変位に基づいて、連続画像間のピクセルの不一致を計算し、シーンの3D再構築(例えば、ストラクチャーフロムモーション)を作成し得る。第2の処理デバイスは、3D再構築に基づくストラクチャーフロムモーションを第1の処理デバイスに送信し、ストラクチャーフロムモーションを立体3D画像と結合し得る。
第3の処理デバイスは、画像を広FOVカメラから受信し、画像を処理して、車両、歩行者、レーンマーク、交通標識、信号機、及び他の道路物体を検出し得る。第3の処理デバイスは、追加の処理命令を更に実行して、画像を分析し、レーン変更中の車両、歩行者等の画像内の移動中の物体を識別し得る。
幾つかの実施形態では、画像に基づく情報ストリームを独立して捕捉させ、処理させることは、システムで冗長性を提供する機会を提供し得る。そのような冗長性は、例えば、第1の画像捕捉デバイス及びそのデバイスから処理された画像を使用して、少なくとも第2の画像捕捉デバイスから画像情報を捕捉し処理することにより得られる情報を検証及び/又は補足し得る。
幾つかの実施形態では、システム100は、車両200にナビゲーション支援を提供するに当たり2つの画像捕捉デバイス(例えば、画像捕捉デバイス122及び124)を使用し得、第3の画像捕捉デバイス(例えば、画像捕捉デバイス126)を使用して、冗長性を提供し、他の2つの画像捕捉デバイスから受信されるデータの分析を検証し得る。例えば、そのような構成では、画像捕捉デバイス122及び124は、車両200をナビゲーションするためのシステム100による立体分析の画像を提供し得る一方、画像捕捉デバイス126は、システム100による単眼分析に画像を提供して、画像捕捉デバイス122及び/又は画像捕捉デバイス124から捕捉された画像に基づいて得られる情報の冗長性及び検証を提供し得る。すなわち、画像捕捉デバイス126(及び対応する処理デバイス)は、画像捕捉デバイス122及び124から導出された分析へのチェックを提供する冗長サブシステムを提供する(例えば、自動緊急ブレーキ(AEB)システムを提供するため)と見なされ得る。更に、幾つかの実施形態では、受信データの冗長性及び変動は、もう1つのセンサから受信される情報(例えば、レーダ、ライダ、音響センサ、車両外部の1つ又は複数の送受信機等から受信される情報)に基づいて補足され得る。
上記カメラ構成、カメラ配置、カメラ数、カメラ位置等が単なる例示であることを当業者は認識するであろう。全体システムに対して説明されるこれらの構成要素等は、開示される実施形態の範囲から逸脱せずに様々な異なる構成で組み立て且つ使用され得る。ドライバー支援及び/又は自律車両機能を提供するためのマルチカメラシステムの使用に関する更なる詳細が以下に続く。
図4は、開示される実施形態による1つ又は複数の動作を実行する命令を記憶/プログラムされ得るメモリ140及び/又は150の例示的な機能ブロック図である。以下ではメモリ140を参照するが、当業者は、命令がメモリ140及び/又は150に記憶可能であることを認識するであろう。
図4に示されるように、メモリ140は、単眼画像分析モジュール402、立体画像分析モジュール404、速度及び加速度モジュール406、並びにナビゲーション応答モジュール408を記憶し得る。開示される実施形態は、いかなる特定の構成のメモリ140にも限定されない。更に、アプリケーションプロセッサ180及び/又は画像プロセッサ190は、メモリ140に含まれる任意のモジュール402、404、406、及び408に記憶された命令を実行し得る。以下の考察での処理ユニット110の参照が、アプリケーションプロセッサ180及び画像プロセッサ190を個々に又はまとめて指し得ることを当業者は理解するであろう。したがって、以下のプロセスのいずれかのステップは、1つ又は複数の処理デバイスによって実行され得る。
一実施形態では、単眼画像分析モジュール402は命令(コンピュータビジョンソフトウェア等)を記憶し得、命令は、処理ユニット110によって実行されると、画像捕捉デバイス122、124、及び126の1つにより取得された画像の組の単眼画像分析を実行する。幾つかの実施形態では、処理ユニット110は、画像の組からの情報を追加のセンサ情報(例えば、レーダ、ライダ等からの情報)と結合して、単眼画像分析を実行し得る。以下の図5A〜図5Dに関連して説明するように、単眼画像分析モジュール402は、レーンマーク、車両、歩行者、道路標識、高速道路出口ランプ、信号機、危険物、及び車両の環境に関連付けられた任意の他の特徴等、画像の組内の特徴の組を検出する命令を含み得る。分析に基づいて、システム100は、ナビゲーション応答モジュール408に関連して以下で考察するように、ターン、レーンシフト、及び加速度変更等の1つ又は複数のナビゲーション応答を車両200において生じさせ得る(例えば、処理ユニット110を介して)。
一実施形態では、立体画像分析モジュール404は命令(コンピュータビジョンソフトウェア等)を記憶し得、命令は、処理ユニット110によって実行されると、画像捕捉デバイス122、124、及び126から選択された画像捕捉デバイスの組合せにより取得される画像の第1及び第2の組の立体画像分析を実行する。幾つかの実施形態では、処理ユニット110は、画像の第1及び第2の組からの情報を追加のセンサ情報(例えば、レーダからの情報)と結合して、立体画像分析を実行し得る。例えば、立体画像分析モジュール404は、画像捕捉デバイス124により取得される画像の第1の組及び画像捕捉デバイス126により取得される画像の第2の組に基づいて、立体画像分析を実行する命令を含み得る。以下で図6に関連して説明するように、立体画像分析モジュール404は、レーンマーク、車両、歩行者、道路標識、高速道路出口ランプ、信号機、及び危険物等の画像の第1及び第2の組内の特徴の組を検出する命令を含み得る。分析に基づいて、処理ユニット110は、ナビゲーション応答モジュール408に関連して後述するように、ターン、レーンシフト、及び加速度変更等の1つ又は複数のナビゲーション応答を車両200において生じさせ得る。更に、幾つかの実施形態では、立体画像分析モジュール404は、トレーニングされたシステム(ニューラルネットワーク若しくはディープニューラルネットワーク等)又はコンピュータビジョンアルゴリズムを使用して、センサ情報が捕捉及び処理された環境内の物体を検出及び/又はラベル付けるように構成され得るシステム等、トレーニングされていないシステムに関連付けられた技法を実施し得る。一実施形態では、立体画像分析モジュール404及び/又は他の画像処理モジュールは、トレーニングされたシステムとトレーニングされていないシステムとの組合せを使用するように構成され得る。
一実施形態では、速度及び加速度モジュール406は、車両200の速度及び/又は加速度を変更させるように構成される車両200内の1つ又は複数の計算及び電気機械デバイスから受信されるデータを分析するように構成されるソフトウェアを記憶し得る。例えば、処理ユニット110は、速度及び加速度モジュール406に関連付けられた命令を実行して、単眼画像分析モジュール402及び/又は立体画像分析モジュール404の実行から導出されるデータに基づいて、車両200の目標速度を計算し得る。そのようなデータとしては、例えば、目標位置、速度、及び/又は加速度、付近の車両、歩行者、又は道路物体に対する車両200の位置及び/又は速度、及び道路のレーンマークに対する車両200の位置情報等を挙げ得る。加えて、処理ユニット110は、センサ入力(例えば、レーダからの情報)と、車両200のスロットルシステム220、ブレーキシステム230、及び/又は操舵システム240等の車両200の他のシステムからの入力とに基づいて、車両200の目標速度を計算し得る。計算された目標速度に基づいて、処理ユニット110は、電子信号を車両200のスロットルシステム220、ブレーキシステム230、及び/又は操舵システム240に送信して、例えば、車両200のブレーキを物理的に弱めるか、又はアクセルを弱めることにより速度及び/又は加速度の変更をトリガーし得る。
一実施形態では、ナビゲーション応答モジュール408は、処理ユニット110によって実行可能であり、単眼画像分析モジュール402及び/又は立体画像分析モジュール404の実行から導出されるデータに基づいて、所望のナビゲーション応答を決定するソフトウェアを記憶し得る。そのようなデータは、付近の車両、歩行者、及び道路物体に関連付けられた位置及び速度情報並びに車両200の目標位置情報等を含み得る。更に、幾つかの実施形態では、ナビゲーション応答は、地図データ、車両200の所定の位置、及び/又は車両200と、単眼画像分析モジュール402及び/又は立体画像分析モジュール404の実行から検出される1つ又は複数の物体との間の相対速度又は相対加速度に基づき得る(部分的又は完全に)。ナビゲーション応答モジュール408は、センサ入力(例えば、レーダからの情報)と、車両200のスロットルシステム220、ブレーキシステム230、及び操舵システム240等の車両200の他のシステムからの入力とに基づいて、所望のナビゲーション応答を決定することもできる。所望のナビゲーション応答に基づいて、処理ユニット110は、電子信号を車両200のスロットルシステム220、ブレーキシステム230、及び操舵システム240に送信して、例えば、車両200のハンドルをターンさせ、所定の角度の回転を達成することにより、所望のナビゲーション応答をトリガーし得る。幾つかの実施形態では、処理ユニット110は、車両200の速度変更を計算するための速度及び加速度モジュール406の実行への入力として、ナビゲーション応答モジュール408の出力(例えば、所望のナビゲーション応答)を使用し得る。
更に、本明細書に開示される任意のモジュール(例えば、モジュール402、404、及び406)は、トレーニングされたシステム(ニューラルネットワーク若しくはディープニューラルネットワーク等)又はトレーニングされていないシステムに関連付けられた技法を実施し得る。
図5Aは、開示される実施形態による、単眼画像分析に基づいて1つ又は複数のナビゲーション応答を生じさせる例示的なプロセス500Aを示すフローチャートである。ステップ510において、処理ユニット110は、処理ユニット110と画像取得ユニット120との間のデータインタフェース128を介して、複数の画像を受信し得る。例えば、画像取得ユニット120に含まれるカメラ(視野202を有する画像捕捉デバイス122等)は、車両200の前方(又は例えば、車両の側部若しくは後方)のエリアの複数の画像を捕捉し、データ接続(例えば、デジタル、有線、USB、無線、Bluetooth等)を介して処理ユニット110に送信し得る。処理ユニット110は、単眼画像分析モジュール402を実行して、ステップ520において、以下で図5B〜図5Dに関連して更に詳細に説明するように、複数の画像を分析し得る。分析を実行することにより、処理ユニット110は、レーンマーク、車両、歩行者、道路標識、高速道路出口ランプ、及び信号機等の画像の組内の特徴の組を検出し得る。
処理ユニット110は、ステップ520において、単眼画像分析モジュール402を実行して、例えば、トラックタイヤの部品、落ちた道路標識、緩んだ貨物、及び小動物等の様々な道路危険物を検出することもできる。道路危険物の構造、形状、サイズ、及び色は様々であり得、そのような危険物の検出をより難しくする。幾つかの実施形態では、処理ユニット110は、単眼画像分析モジュール402を実行し、マルチフレーム分析を複数の画像に対して実行して、道路危険物を検出し得る。例えば、処理ユニット110は、連続画像フレーム間でのカメラ移動を推定し、フレーム間のピクセルの不一致を計算して、道路の3Dマップを構築し得る。次に、処理ユニット110は、3Dマップを使用して、路面及び路面の上に存在する危険物を検出し得る。
ステップ530において、処理ユニット110は、ナビゲーション応答モジュール408を実行して、ステップ520において実行された分析及び図4に関連して上述した技法に基づいて、車両200に1つ又は複数のナビゲーション応答を生じさせ得る。ナビゲーション応答は、例えば、ターン、レーンシフト、及び加速度変更等を含み得る。幾つかの実施形態では、処理ユニット110は、速度及び加速度モジュール406の実行から導出されるデータを使用して、1つ又は複数のナビゲーション応答を生じさせ得る。更に、複数のナビゲーション応答は、同時に生じ得るか、順次生じ得るか、又はそれらの任意の組合せで生じ得る。例えば、処理ユニット110は、例えば、制御信号を車両200の操舵システム240及びスロットルシステム220に順次送信することにより、車両200に1レーン超えさせ、それから、例えば、加速させ得る。代替として、処理ユニット110は、例えば、制御信号を車両200のブレーキシステム230及び操舵システム240に同時に送信することにより、車両200に、ブレーキを掛けさせ、それと同時にレーンをシフトさせ得る。
図5Bは、開示される実施形態による、画像の組内の1つ又は複数の車両及び/又は歩行者を検出する例示的なプロセス500Bを示すフローチャートである。処理ユニット110は、単眼画像分析モジュール402を実行して、プロセス500Bを実施し得る。ステップ540において、処理ユニット110は、存在する可能性がある車両及び/又は歩行者を表す候補物体の組を特定し得る。例えば、処理ユニット110は、1つ又は複数の画像を走査し、画像を1つ又は複数の所定のパターンと比較し、各画像内で、対象物体(例えば、車両、歩行者、又はそれらの部分)を含み得る可能性がある位置を識別し得る。所定のパターンは、低率の「偽性ヒット」及び低率の「見逃し」を達成するように指定され得る。例えば、処理ユニット110は、所定のパターンへの低い類似性閾値を使用して、可能性のある車両又は歩行者として候補物体を識別し得る。そうすることにより、処理ユニット110は、車両又は歩行者を表す候補物体を見逃す(例えば、識別しない)確率を低減することができ得る。
ステップ542において、処理ユニット110は、候補物体の組をフィルタリングして、分類基準に基づいて特定の候補(例えば、無関係又は関係性の低い物体)を除外し得る。そのような基準は、データベース(例えば、メモリ140に記憶されるデータベース)に記憶された物体タイプに関連付けられた様々な特性から導出され得る。特性は、物体の形状、寸法、テクスチャ、及び位置(例えば、車両200に対する)等を含み得る。したがって、処理ユニット110は、1つ又は複数の組の基準を使用して、候補物体の組から偽性候補を拒絶し得る。
ステップ544において、処理ユニット110は、複数の画像フレームを分析して、候補画像の組内の物体が車両及び/又は歩行者を表しているか否かを特定し得る。例えば、処理ユニット110は、連続フレームにわたり検出された候補物体を追跡し、検出された物体に関連付けられたフレーム毎データ(例えば、サイズ、車両200に対する位置等)を蓄積し得る。更に、処理ユニット110は、検出された物体のパラメータを推定し、物体のフレーム毎位置データを予測位置と比較し得る。
ステップ546において、処理ユニット110は、検出された物体の測定値の組を構築し得る。そのような測定は、例えば、検出された物体に関連付けられた位置、速度、及び加速度値(車両200に対する)を含み得る。幾つかの実施形態では、処理ユニット110は、カルマンフィルタ又は線形二次推定(LQE)等の一連の時間ベースの観測を使用する推定技法及び/又は異なる物体タイプ(例えば、車、トラック、歩行者、自転車、道路標識等)で利用可能なモデリングデータに基づいて、測定を構築し得る。カルマンフィルタは、物体のスケールの測定に基づき得、ここで、スケール測定は衝突までの時間(例えば、車両200が物体に達するまでの時間量)に比例する。したがって、ステップ540〜546を実行することにより、処理ユニット110は、捕捉画像の組内に現れる車両及び歩行者を識別し、車両及び歩行者に関連付けられた情報(例えば、位置、速度、サイズ)を導出し得る。識別及び導出される情報に基づいて、処理ユニット110は、図5Aに関連して上述したように、車両200で1つ又は複数のナビゲーション応答を生じさせ得る。
ステップ548において、処理ユニット110は、1つ又は複数の画像のオプティカルフロー分析を実行して、「偽性ヒット」を検出する確率及び車両又は歩行者を表す候補物体を見逃す確率を低減し得る。オプティカルフロー分析は、例えば、他の車両及び歩行者に関連付けられた1つ又は複数の画像内の車両200に対する、路面の動きとは別個の移動パターンを分析することを指し得る。処理ユニット110は、異なる時刻に捕捉された複数の画像フレームにわたる物体の異なる位置を観測することにより、候補物体の移動を計算し得る。処理ユニット110は、位置及び時間値を数学モデルへの入力として使用して、候補物体の移動を計算し得る。したがって、オプティカルフロー分析は、車両200の付近にある車両及び歩行者を検出する別の方法を提供し得る。処理ユニット110は、ステップ540〜546と組み合わせてオプティカルフロー分析を実行して、車両及び歩行者を検出する冗長性を提供すると共に、システム100の信頼度を上げ得る。
図5Cは、開示される実施形態による、画像の組内の道路マーク及び/又はレーンジオメトリ情報を検出する例示的なプロセス500Cを示すフローチャートである。処理ユニット110は、単眼画像分析モジュール402を実行して、プロセス500Cを実施し得る。ステップ550において、処理ユニット110は、1つ又は複数の画像を走査することにより物体の組を検出し得る。レーンマークのセグメント、レーンジオメトリ情報、及び他の関連道路マークを検出するために、処理ユニット110は、物体の組をフィルタリングして、無関連(例えば、小さい穴、小さい岩等)であると特定されるものを除外し得る。ステップ552において、処理ユニット110は、同じ道路マーク又はレーンマークに属する、ステップ550において検出されたセグメントを一緒にグループ化し得る。グループ化に基づいて、処理ユニット110は、数学モデル等のモデルを開発して、検出されたセグメントを表し得る。
ステップ554において、処理ユニット110は、検出されたセグメントに関連付けられた測定値の組を構築し得る。幾つかの実施形態では、処理ユニット110は、画像平面から実世界平面への検出セグメントの射影を作成し得る。射影は、検出された道路の位置、傾斜、曲率、及び曲率微分等の物理特性に対応する係数を有する三次多項式を使用して特徴付け得る。射影を生成するに当たり、処理ユニット110は、路面変化並びに車両200に関連付けられたピッチ及びロール率を考慮に入れ得る。加えて、処理ユニット110は、位置及び路面に存在するモーションキューを分析することにより道路高をモデリングし得る。更に、処理ユニット110は、1つ又は複数の画像での特徴点の組を追跡することにより、車両200に関連付けられたピッチ率及びロール率を推定し得る。
ステップ556において、処理ユニット110は、例えば、連続した画像フレームにわたり検出セグメントを追跡し、検出セグメントに関連付けられたフレーム毎データを蓄積することにより、マルチフレーム分析を実行し得る。処理ユニット110はマルチフレーム分析を実行する場合、ステップ554において構築された測定値の組は、より信頼性の高いものになり得、一層高い信頼度に関連付けられ得る。したがって、ステップ550、552、554、及び556を実行することにより、処理ユニット110は、捕捉画像の組内に現れる道路マークを識別し、レーンジオメトリ情報を導出し得る。識別及び導出される情報に基づいて、処理ユニット110は、図5Aに関連して上述したように、車両200で1つ又は複数のナビゲーション応答を生じさせ得る。
ステップ558において、処理ユニット110は、追加の情報ソースを考慮して、車両の周囲の状況での車両200の安全モデルを更に開発し得る。処理ユニット110は、安全モデルを使用して、システム100が車両200の自律制御を安全に実行し得る状況を定義し得る。安全モデルを開発するために、幾つかの実施形態では、処理ユニット110は、他の車両の位置及び動き、検出された道路縁部及び障壁、及び/又は地図データ(地図データベース160からのデータ等)から抽出された一般道路形状記述を考慮し得る。追加の情報ソースを考慮することにより、処理ユニット110は、道路マーク及びレーンジオメトリを検出する冗長性を提供し、システム100の信頼性を上げ得る。
図5Dは、開示される実施形態による、画像の組内の信号機を検出する例示的なプロセス500Dを示すフローチャートである。処理ユニット110は、単眼画像分析モジュール402を実行して、プロセス500Dを実施し得る。ステップ560において、処理ユニット110は、画像の組を走査し、信号機を含む可能性が高い画像内の位置に現れる物体を識別し得る。例えば、処理ユニット110は、識別された物体をフィルタリングして、信号機に対応する可能性が低い物体を除外した候補物体の組を構築し得る。フィルタリングは、形状、寸法、テクスチャ、及び位置(例えば、車両200に対する)等の信号機に関連付けられた様々な特性に基づいて行い得る。そのような特性は、信号機及び交通制御信号の多くの例に基づき得、データベースに記憶され得る。幾つかの実施形態では、処理ユニット110は、可能性のある信号機を反映した候補物体の組に対してマルチフレーム分析を実行し得る。例えば、処理ユニット110は、連続した画像フレームにわたり候補物体を追跡し、候補物体の現実世界位置を推定し、移動している(信号機である可能性が低い)物体をフィルタリングして除去し得る。幾つかの実施形態では、処理ユニット110は、カラー分析を候補物体に対して実行し、可能性のある信号機内部に表される検出色の相対位置を識別し得る。
ステップ562において、処理ユニット110は、交差点のジオメトリを分析し得る。分析は、(i)車両200の両側で検出されるレーン数、(ii)道路で検出されたマーク(矢印マーク等)、及び(iii)地図データ(地図データベース160からのデータ等)から抽出された交差点の記述の任意の組合せに基づき得る。処理ユニット110は、単眼分析モジュール402の実行から導出される情報を使用して、分析を行い得る。加えて、処理ユニット110は、ステップ560において検出された信号機と、車両200近傍に現れるレーンとの対応性を特定し得る。
車両200が交差点に近づくにつれて、ステップ564において、処理ユニット110は、分析された交差点ジオメトリ及び検出された信号機に関連付けられた信頼度を更新し得る。例えば、交差点に実際に現れる数と比較した交差点に現れると推定された信号機の数は、信頼度に影響を及ぼし得る。したがって、信頼度に基づいて、処理ユニット110は、車両200のドライバーに制御を委任して、安全状況を改善し得る。ステップ560、562、及び564を実行することにより、処理ユニット110は、捕捉画像の組内に現れる信号機を識別し、交差点ジオメトリ情報を分析し得る。識別及び分析に基づいて、処理ユニット110は、図5Aに関連して上述したように、車両200で1つ又は複数のナビゲーション応答を生じさせ得る。
図5Eは、開示される実施形態による、車両経路に基づいて車両200で1つ又は複数のナビゲーション応答を生じさせる例示的なプロセス500Eのフローチャートである。ステップ570において、処理ユニット110は、車両200に関連付けられた初期車両経路を構築し得る。車両経路は、座標(x,y)で表される点の組を使用して表され得、点の組内の2点間距離diは、1〜5メートルの範囲内にあり得る。一実施形態では、処理ユニット110は、左右の道路多項式等の2つの多項式を使用して初期車両経路を構築し得る。処理ユニット110は、2つの多項式間の幾何学的中間点を計算し、所定のオフセットがある場合(オフセット0は、レーンの中央での走行に対応し得る)、所定のオフセット(例えば、スマートレーンオフセット)だけ、結果として生成される車両経路に含まれる各点をオフセットさせ得る。オフセットは、車両経路内の任意の2点間のセグメントに垂直の方向であり得る。別の実施形態では、処理ユニット110は、1つの多項式及び推定レーン幅を使用して、推定レーン幅の半分に所定のオフセット(例えば、スマートレーンオフセット)を加えたものだけ車両経路の各点をオフセットさせ得る。
ステップ572において、処理ユニット110は、ステップ570において構築された車両経路を更新し得る。処理ユニット110は、車両経路を表す点の組内の2点間距離dkが、上述した距離diよりも短くなるように、より高い解像度を使用して、570において構築された車両経路を再構築し得る。例えば、距離dkは0.1〜0.3メートルの範囲であり得る。処理ユニット110は、放物線スプラインアルゴリズムを使用して車両経路を再構築し得、これは、(車両経路を表す点の組に基づく)車両経路の全長に対応する累積距離ベクトルSをもたらし得る。
ステップ574において、処理ユニット110は、ステップ572において行われた更新車両経路に基づいて、先読み点((xl,zl)として座標で表される)を特定し得る。処理ユニット110は、累積距離ベクトルSから先読み点を抽出し得、先読み点は、先読み距離及び先読み時間に関連付けられ得る。先読み距離は、下限範囲10〜20メートルを有し得、車両200の速度と先読み時間との積として計算され得る。例えば、車両200の速度が下がるにつれて、先読み距離も短くなり得る(例えば、下限に達するまで)。0.5〜1.5秒の範囲であり得る先読み時間は、進行エラー追跡制御ループ等の車両200でナビゲーション応答を生じさせることに関連付けられた1つ又は複数の制御ループの利得に反比例し得る。例えば、進行エラー追跡制御ループの利得は、ヨー率ループ、操舵アクチュエータループ、及び車横方向ダイナミクス等の帯域幅に依存し得る。したがって、進行エラー追跡制御ループの利得が高いほど、先読み時間は短くなる。
ステップ576において、処理ユニット110は、ステップ574において特定される先読み点に基づいて、進行エラー及びヨー率コマンドを決定し得る。処理ユニット110、先読み点の逆正接、例えば、arctan(xl/zl)を計算することにより、進エラーを特定し得る。処理ユニット110は、進行エラーと高レベル制御利得との積とてヨー率コマンドを決定し得る。高レベル制御利得は、先読み距離が下限にない場合、2/先読み時間)に等しい値であり得る。先読み距離が下限である場合、高レベル制御利得は(2×車両200の速度/先読み距離)に等しい値であり得る。
図5Fは、開示される実施形態による、先行車両がレーンを変更中であるか否かを特定する例示的なプロセス500Fを示すフローチャートである。ステップ580において、処理ユニット110は、先行車両(例えば、車両200の前を移動中の車両)に関連付けられたナビゲーション情報を特定し得る。例えば、処理ユニット110は、図5A及び図5Bに関連して上述した技法を使用して、先行車両の位置、速度(例えば、方向及び速さ)、及び/又は加速度を特定し得る。処理ユニット110は、図5Eに関連して上述した技法を使用して、1つ又は複数の道路多項式、先読み点(車両200に関連付けられる)、及び/又はスネイルトレイル(例えば、先行車両がとった経路を記述する点の組)を特定することもできる。
ステップ582において、処理ユニット110は、ステップ580において特定されたナビゲーション情報を分析し得る。一実施形態では、処理ユニット110は、スネイルトレイルと道路多項式との間の距離(例えば、トレイルに沿った)を計算し得る。トレイルに沿ったこの距離の相違が所定の閾値(例えば、直線道路では0.1〜0.2メートル、緩くカーブした道路では0.3〜0.4メートル、急カーブの道路では0.5〜0.6メートル)を超える場合、処理ユニット110は、先行車両がレーン変更中である可能性が高いと特定し得る。複数の車両が、車両200の前を走行中であることが検出される場合、処理ユニット110は、各車両に関連付けられたスネイルトレイルを比較し得る。比較に基づいて、処理ユニット110は、スネイルトレイルが他の車両のスネイルトレイルに一致しない車両が、レーン変更中である可能性が高いと特定し得る。処理ユニット110は更に、スネイルトレイル(先行車両に関連付けられた)の曲率を、先行車両が移動中の道路セグメントの予期される曲率と比較し得る。予期される曲率は、地図データ(例えば、地図データベース160からのデータ)、道路多項式、他の車両のスネイルトレイル、及び道路についての事前知識等から抽出され得る。スネイルトレイルの曲率と道路セグメントの予期される曲率との差が、所定の閾値を超える場合、処理ユニット110は、先行車両がレーン変更中である可能性が高いと特定し得る。
別の実施形態では、処理ユニット110は、特定の時間期間(例えば、0.5〜1.5秒)にわたり、先行車両の瞬間位置を先読み点(車両200に関連付けられた)と比較し得る。特定の時間期間中の先行車両の瞬間位置と先読み点との間の距離の差及び相違の累積和が、所定の閾値(例えば、直線道路では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は、(より近い)先行車両がレーン変更中である可能性が高いと特定し得る。
ステップ584において、処理ユニット110は、ステップ582において実行された分析に基づいて、先行車両200がレーン変更中であるか否かを特定し得る。例えば、処理ユニット110は、ステップ582において実行された個々の分析の加重平均に基づいてその判断を下し得る。そのような方式では、例えば、特定のタイプの分析に基づいた、先行車両がレーン変更中である可能性が高いという処理ユニット110による判断には、値「1」を割り当て得る(「0」は、先行車両がレーン変更中である可能性が低いとの判断を表す)。ステップ582において実行される異なる分析には異なる重みを割り当て得、開示される実施形態は、分析及び重みのいかなる特定の組合せにも限定されない。
図6は、開示される実施形態による、立体画像分析に基づいて1つ又は複数のナビゲーション応答を生じさせる例示的なプロセス600を示すフローチャートである。ステップ610において、処理ユニット110は、データインタフェース128を介して第1及び第2の複数の画像を受信し得る。例えば、画像取得ユニット120に含まれるカメラ(視野202及び204を有する画像捕捉デバイス122及び124等)は、車両200の前方のエリアの第1及び第2の複数の画像を捕捉し、デジタル接続(例えば、USB、無線、Bluetooth等)を介して処理ユニット110に送信し得る。幾つかの実施形態では、処理ユニット110は、2つ以上のデータインタフェースを介して第1及び第2の複数の画像を受信し得る。開示される実施形態は、いかなる特定のデータインタフェース構成又はプロトコルにも限定されない。
ステップ620において、処理ユニット110は、立体画像分析モジュール404を実行して、第1及び第2の複数の画像の立体画像分析を実行して、車両の前の道路の3Dマップを作成し、レーンマーク、車両、歩行者、道路標識、高速道路出口ランプ、信号機、及び道路危険物等の画像内の特徴を検出し得る。立体画像分析は、図5A〜図5Dに関連して上述したステップと同様に実行され得る。例えば、処理ユニット110は、立体画像分析モジュール404を実行して、第1及び第2の複数の画像内の候補物体(例えば、車両、歩行者、道路マーク、信号機、道路危険物等)を検出し、様々な基準に基づいて候補物体のサブセットをフィルタリングして除外し、マルチフレーム分析を実行し、測定値を構築し、残った候補物体の信頼度を特定し得る。上記ステップを実行するに当たり、処理ユニット110は、画像の1つの組のみからの情報ではなく、第1及び第2の複数の画像の両方からの情報を考慮し得る。例えば、処理ユニット110は、第1及び第2の複数の画像の両方に現れる候補物体のピクセルレベルデータ(又は捕捉画像の2つのストリームの中からの他のデータサブセット)の差を分析し得る。別の例として、処理ユニット110は、物体が複数の画像の1枚に現れるが、他の画像では現れないことを観測することにより、又は2つの画像ストリームに現れる物体に関して存在し得る他の差に関連して、候補物体の位置及び/又は速度(例えば、車両200に対する)を推定し得る。例えば、車両200に対する位置、速度、及び/又は加速度は、画像ストリームの一方又は両方に現れる物体に関連付けられた特徴の軌道、位置、移動特性等に基づいて特定され得る。
ステップ630において、処理ユニット110は、ナビゲーション応答モジュール408を実行して、ステップ620において実行された分析及び図4に関連して上述した技法に基づいて、車両200で1つ又は複数のナビゲーション動作を生じさせ得る。ナビゲーション応答は、例えば、ターン、レーンシフト、加速度変更、速度変更、及びブレーキ等を含み得る。幾つかの実施形態では、処理ユニット110は、速度及び加速度モジュール406の実行から導出されるデータを使用して、1つ又は複数のナビゲーション応答を生じさせ得る。更に、複数のナビゲーション応答は、同時に行われ得るか、順次行われ得るか、又はそれらの任意の組合せで行われ得る。
図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は、3つ以上のデータインタフェースを介して第1、第2、及び第3の複数の画像を受信し得る。例えば、画像捕捉デバイス122、124、及び126のそれぞれは、処理ユニット110にデータを通信する関連付けられたデータインタフェースを有し得る。開示される実施形態は、いかなる特定のデータインタフェース構成又はプロトコルにも限定されない。
ステップ720において、処理ユニット110は、第1、第2、及び第3の複数の画像を分析して、レーンマーク、車両、歩行者、道路標識、高速道路出口ランプ、信号機、及び道路危険物等の画像内の特徴を検出し得る。分析は、図5A〜図5D及び図6に関連して上述したステップと同様に実行され得る。例えば、処理ユニット110は、単眼画像分析を第1、第2、及び第3の複数のそれぞれの画像に対して実行し得る(例えば、単眼画像分析モジュール402の実行及び図5A〜図5Dに関連して上述したステップに基づいて)。代替として、処理ユニット110は、立体画像分析を第1及び第2の複数の画像、第2及び第3の複数の画像、及び/又は第1及び第3の複数の画像に対して実行し得る(例えば、立体画像分析モジュール404の実行を介して及び図6に関連して上述したステップに基づいて)。第1、第2、及び/又は第3の複数の画像の分析に対応する処理済み情報は、結合され得る。幾つかの実施形態では、処理ユニット110は、単眼画像分析と立体画像分析との組合せを実行し得る。例えば、処理ユニット110は、単眼画像分析を第1の複数の画像に対して実行し(例えば、単眼画像分析モジュール402の実行を介して)、立体画像分析を第2及び第3の複数の画像に対して実行し得る(例えば、立体画像分析モジュール404の実行を介して)。画像捕捉デバイス122、124、及び126の構成−各位置及び視野202、204、及び206を含め−は、第1、第2、及び第3の複数の画像に対して行われる分析のタイプに影響を及ぼし得る。開示される実施形態は、画像捕捉デバイス122、124、及び126の特定の構成又は第1、第2、及び第3の複数の画像に対して行われる分析のタイプに限定されない。
幾つかの実施形態では、処理ユニット110は、ステップ710及び720において取得され分析された画像に基づいて、システム100にテストを実行し得る。そのようなテストは、画像捕捉デバイス122、124、及び126の特定の構成でのシステム100の全体性能のインジケータを提供し得る。例えば、処理ユニット110は、「偽性ヒット」(例えば、システム100が車両又は歩行者の存在を誤って特定する場合)及び「見落とし」の割合を特定し得る。
ステップ730において、処理ユニット110は、第1、第2、及び第3の複数の画像の2つから導出される情報に基づいて、車両200での1つ又は複数のナビゲーション応答を生じさせ得る。第1、第2、及び第3の複数の画像の2つの選択は、例えば、複数の画像のそれぞれで検出される物体の数、タイプ、及びサイズ等の様々なファクタに依存し得る。処理ユニット110は、画像の品質及び解像度、画像に反映される有効視野、捕捉フレーム数、及び対象となる1つ又は複数の物体が実際にフレームに現れる程度(例えば、物体が現れるフレームのパーセンテージ、物体がそのような各フレームで現れる割合等)等に基づいて選択を行うことができる。
幾つかの実施形態では、処理ユニット110は、ある画像ソースから導出された情報が、他の画像ソースから導出される情報と一貫する程度を特定することにより、第1、第2、及び第3の複数の画像の2つから導出される情報を選択し得る。例えば、処理ユニット110は、画像捕捉デバイス122、124、及び126のそれぞれから導出される処理済み情報(単眼分析であれ、立体分析であれ、又はそれら2つの任意の組合せであれ関係なく)を結合して、画像捕捉デバイス122、124、及び126のそれぞれから捕捉される画像にわたり一貫する視覚的インジケータ(例えば、レーンマーク、検出された車両及び/又はその位置及び/又は経路、検出された信号機等)を特定し得る。処理ユニット110は、捕捉画像にわたり一貫しない情報(例えば、レーンを変更中の車両、車両200に近過ぎる車両を示すレーンモデル等)を除外することもできる。したがって、処理ユニット110は、一貫情報及び非一貫情報の特定に基づいて、第1、第2、及び第3の複数の画像の2つからの導出される情報を選択し得る。
ナビゲーション応答は、例えば、ターン、レーンシフト、及び加速度変更を含み得る。処理ユニット110は、ステップ720において実行される分析及び図4に関連して上述した技法に基づいて、1つ又は複数のナビゲーション応答を生じさせ得る。処理ユニット110は、速度及び加速度モジュール406の実行から導出されるデータを使用して、1つ又は複数のナビゲーション応答を生じさせることもできる。幾つかの実施形態では、処理ユニット110は、車両200と第1、第2、及び第3の複数の画像のいずれかで検出される物体との間の相対位置、相対速度、及び/又は相対加速度に基づいて、1つ又は複数のナビゲーション応答を生じさせ得る。複数のナビゲーション応答は、同時に行われ得るか、順次行われ得るか、又はそれらの任意の組合せで行われ得る。
捕捉された画像を分析すると、自律車両ナビゲーションのための疎な地図モデルの生成及び使用が可能になり得る。加えて、捕捉された画像を分析すると、識別されたレーンマークを使用して自律車両の位置特定が可能になり得る。捕捉された画像の1つ又は複数の特定の分析に基づいて特定の特性を検出し、疎な地図モデルを使用して自律車両をナビゲーションする実施形態について、図8〜図28を参照して以下に考察する。
自律車両ナビゲーションのための疎な道路モデル
幾つかの実施形態では、開示されるシステム及び方法は、自律車両ナビゲーションに疎な地図を使用し得る。特に、疎な地図は、道路セグメントに沿った自律車両ナビゲーションのためのものであり得る。例えば、疎な地図は、大量のデータを記憶及び/又は更新せずに、自律車両をナビゲーションするのに十分な情報を提供し得る。更に詳細に後述するように、自律車両は、疎な地図を使用して、1つ又は複数の記憶された軌道に基づいて1つ又は複数の道路をナビゲーションし得る。
自律車両ナビゲーションのための疎な地図
幾つかの実施形態では、開示されるシステム及び方法は、疎な地図を自律車両ナビゲーションのために生成し得る。例えば、疎な地図は、過度のデータ記憶又はデータ転送率を必要とせずに、十分な情報をナビゲーションに提供し得る。更に詳細に以下で考察するように、車両(自律車両であり得る)は、疎な地図を使用して、1つ又は複数の道路を移動し得る。例えば、幾つかの実施形態では、疎な地図は、車両ナビゲーションに十分であり得るが、小さいデータフットプリントも示すデータとして、道路と、道路に沿って存在する可能性のある陸標とに関連するデータを含み得る。例えば、以下に詳述する疎なデータ地図では、道路に沿って収集される画像データ等の詳細マップ情報を含むデジタルマップと比較して、必要とされる記憶空間及びデータ転送帯域幅ははるかに少ない。
例えば、道路セグメントの詳細な表現を記憶するのではなく、疎なデータ地図は、道路の沿った好ましい車両経路の三次元多項式表現を記憶し得る。これらの経路が必要とするデータ記憶空間は、ごくわずかであり得る。更に、記載される疎なデータ地図では、ナビゲーションを支援するために、陸標が識別され、疎なマップ道路モデルに含まれ得る。これらの陸標は、車両ナビゲーションを可能にするのに適する任意の間隔で配置され得るが、幾つかの場合、そのような陸標は、高密度且つ短い間隔で識別されてモデルに含まれる必要はない。むしろ、幾つかの場合、ナビゲーションは、少なくとも50メートル、少なくとも100メートル、少なくとも500メートル、少なくとも1キロメートル、又は少なくとも2キロメートルだけ離間された陸標に基づくことが可能であり得る。他のセクションでより詳細に考察するように、疎な地図は、車両が道路に沿って移動する際、画像捕捉デバイス、全地球測位システムセンサ、移動センサ等の様々なセンサ及びデバイスが備えられた車両により収集又は測定されるデータに基づいて生成され得る。幾つかの場合、疎な地図は、特定の道路に沿った1つ又は複数の車両の複数の運転中に収集されるデータに基づいて生成され得る。1つ又は複数の車両の複数の運転を使用して疎な地図を生成することは、疎な地図の「クラウドソーシング」と呼ぶことができる。
開示される実施形態によれば、自律車両システムは、疎な地図をナビゲーションに使用し得る。例えば、開示されるシステム及び方法は、自律車両の道路ナビゲーションモデルを生成するための疎な地図を配信し得、疎な地図及び/又は生成された道路ナビゲーションモデルを使用して、道路セグメントに沿って自律車両をナビゲーションし得る。本開示による疎な地図は、関連付けられた道路セグメントに沿って自律車両が移動する際に走行し得る所定の軌道を表し得る1つ又は複数の三次元輪郭を含み得る。
本開示による疎な地図は、1つ又は複数の道路特徴を表すデータを含むこともできる。そのような道路特徴は、認識された陸標、道路シグネチャプロファイル、及び車両のナビゲーションで有用な任意の他の道路関連特徴を含み得る。本開示による疎な地図は、疎な地図に含まれる比較的小量のデータに基づいて車両の自律ナビゲーションを可能にし得る。例えば、道路縁部、道路曲率、道路セグメントに関連付けられた画像、又は道路セグントに関連付けられた他の物理的な特徴を詳述するデータ等の道路の詳細な表現を含むのではなく、疎な地図の開示される実施形態は、比較的少ない記憶空間(及び疎な地図の部分が車両に転送される場合、比較的小さい帯域幅)のみでよく、それでもなお自律車両ナビゲーションを適宜提供し得る。更に詳細に後述される、開示される疎な地図の小さいデータフットプリントは、幾つかの実施形態では、小量のデータを必要とするが、それでもなお自律ナビゲーションを可能にする道路関連要素の表現を記憶することによって達成され得る。
例えば、道路の様々な態様の詳細な表現を記憶するのではなく、開示される疎な地図は、車両が道路に沿って辿り得る1つ又は複数の軌道の多項式表現を記憶し得る。したがって、道路に沿ったナビゲーションを可能にするために、道路の物理的性質に関する詳細を記憶するのではなく(又は転送する必要があるのではなく)、開示される疎な地図を使用して、幾つかの場合、道路の物理的態様を解釈する必要なく、むしろ走行経路を特定の道路セグメントに沿った軌道(例えば、多項式スプライン)に位置合わせすることにより、特定の道路セグメントに沿って車両をナビゲーションし得る。このようにして、道路画像、道路パラメータ、道路レイアウト等の記憶を含む方法よりもはるかに小さい記憶空間を必要とし得る、記憶された軌道(例えば、多項式スプライン)に主に基づいて車両をナビゲーションし得る。
道路セグメントに沿った軌道の記憶された多項式表現に加えて、開示される疎な地図は、道路特徴を表し得る小さいデータオブジェクトを含むこともできる。幾つかの実施形態では、小さいデータオブジェクトはデジタルシグネチャを含み得、デジタルシグネチャは、道路セグメントに沿って移動中の車両に搭載されるセンサ(例えば、カメラ又はサスペンションセンサ等の他のセンサ)により得られたデジタル画像(又はデジタル信号)から導出される。デジタルシグネチャは、センサにより取得された信号と比較して、低減したサイズを有し得る。幾つかの実施形態では、デジタルシグネチャは、例えば、続く運転中、センサにより取得される信号から道路特徴を検出し識別するように構成される分類機能と互換性を有するように作成され得る。幾つかの実施形態では、デジタルシグネチャは、デジタルシグネチャが、続く時間において、同じ道路セグメントに沿って走行中の車両に搭載されたカメラにより捕捉される道路特徴の画像(記憶されているシグネチャが画像に基づかず、及び/又は他のデータを含む場合、センサにより生成されるデジタル信号)に基づいて、記憶されているシグネチャと相関又は照会する能力を保ちながら、可能な限り小さいフットプリントを有するように作成され得る。
幾つかの実施形態では、データオブジェクトのサイズは、道路特徴の一意性に更に関連付けられ得る。例えば、車載カメラにより検出可能な道路特徴であり、車載カメラシステムが、特定のタイプの道路特徴、例えば、道路標識に関連付けられているものとしてその道路特徴に対応する画像データを区別することが可能である分類器に結合され、そのような道路標識がそのエリアで局所的に一意である(例えば、付近に同一の道路標識又は同じタイプの道路標識がない)場合、道路特徴のタイプ及びその位置を示すデータを記憶することで十分であり得る。
以下に更に詳細に考察するように、道路特徴(例えば、道路セグメントに沿った陸標)は、比較的少数のバイトで道路特徴を表し得る小さいデータオブジェクトとして記憶され得、それと同時に、そのような特徴を認識してナビゲーションに使用するのに十分な情報を提供する。一例では、道路標識は、車両のナビゲーションが基づくことができる認識済み陸標として識別され得る。道路標識の表現は、例えば、陸標のタイプ(例えば、停止標識)を示す数バイトのデータ及び陸標の位置(例えば、座標)を示す数バイトのデータを含むように疎な地図に記憶され得る。陸標のそのようなデータ軽量表現(例えば、陸標の位置特定、認識、及び陸標に基づくナビゲーションに十分な表現を使用する)に基づくナビゲーションは、疎な地図に関連付けられたデータオーバーヘッドをあまり増大させずに、疎な地図に関連付けられた所望レベルのナビゲーション機能を提供し得る。陸標(及び他の道路特徴)のこの無駄のない表現は、特定の道路特徴を検出、識別、及び/又は分類するように構成された、車両に搭載されるセンサ及びプロセッサを利用し得る。
例えば、所与のエリアで、標識、更には標識の特定のタイプが局所的に一意である(例えば、他の標識がないか、又は同じタイプの他の標識がない)場合、疎な地図は、陸標のタイプ(標識又は標識の特定のタイプ)を示すデータを使用し得、ナビゲーション(例えば、自律ナビゲーション)中、自律車両に搭載されたカメラが、標識(又は標識の特定のタイプ)を含むエリアの場像を捕捉する場合、プロセッサは、画像を処理し、標識を検出し(実際に画像に存在する場合)、画像を標識(又は標識の特定のタイプ)として分類し、画像の位置を、疎な地図に記憶された標識の位置に相関付け得る。
疎な地図の生成
幾つかの実施形態では、疎な地図は、道路セグメントに沿って延びる路面特徴の少なくとも1つの線表現と、道路セグメントに関連付けられた複数の陸標とを含み得る。特定の態様では、疎な地図は、「クラウドソーシング」を介して、例えば1つ又は複数の車両が道路セグメントを走行する際に取得された複数の画像の画像分析を通して生成され得る。
図8は、1つ又は複数の車両、例えば車両200(自律車両であり得る)が、自律車両ナビゲーションを提供するためにアクセスし得る疎な地図800を示す。疎な地図800は、メモリ140又は150等のメモリに記憶され得る。そのようなメモリデバイスは、任意のタイプの非一時的記憶装置又はコンピュータ可読媒体を含み得る。例えば、幾つかの実施形態では、メモリ140又は150は、ハードドライブ、コンパクトディスク、フラッシュメモリ、磁気ベースのメモリデバイス、光学ベースのメモリデバイス等を含み得る。幾つかの実施形態では、疎な地図800は、メモリ140若しくは150又は他のタイプの記憶装置に記憶され得るデータベース(例えば、地図データベース160)に記憶され得る。
幾つかの実施形態では、疎な地図800は、車両200に搭載して提供される記憶装置又は非一時的コンピュータ可読媒体(例えば、車両200に搭載されるナビゲーションシステムに含まれる記憶装置)に記憶され得る。車両200に提供されるプロセッサ(例えば、処理ユニット110)は、車両200に搭載して提供される記憶装置又はコンピュータ可読媒体に記憶される疎な地図800にアクセスして、自律車両200が道路セグメントを走行する際、その車両をガイドするナビゲーション命令を生成し得る。
しかし、疎な地図800は、車両にローカルに記憶される必要はない。幾つかの実施形態では、疎な地図800は、車両200又は車両200に関連付けられたデバイスと通信するリモートサーバに提供される記憶装置又はコンピュータ可読媒体に記憶され得る。車両200に提供されるプロセッサ(例えば、処理ユニット110)は、リモートサーバから疎な地図800に含まれるデータを受信し得、車両200の自律運転をガイドするデータを実行し得る。そのような実施形態では、リモートサーバは、全ての疎な地図800又はその一部のみを記憶し得る。したがって、車両200及び/又は1つ若しくは複数の追加の車両に搭載して提供される記憶装置又はコンピュータ可読媒体は、疎な地図800の残りの部分を記憶し得る。
更に、そのような実施形態では、疎な地図800は、様々な道路セグメントを走行する複数の車両(例えば、数十、数百、数千、又は数百万の車両等)がアクセス可能であり得る。疎な地図800が複数のサブマップを含み得ることにも留意されたい。例えば、幾つかの実施形態では、疎な地図800は、車両のナビゲーションに使用することができる数百、数千、数百万、又はそれを超えるサブマップを含み得る。そのようなサブマップはローカル地図と呼ぶことができ、道路に沿って走行中の車両は、その車両が走行中の位置に関連する任意の数のローカル地図にアクセスし得る。疎な地図800のローカル地図セクションは、疎な地図800のデータベースへのインデックスとして全世界的航法衛星システム(GNSS)キーと共に記憶され得る。したがって、本システムでのホスト車両をナビゲーションする操舵角の計算は、ホスト車両、道路特徴、又は陸標のGNSS位置に依存せずに実行され得るが、そのようなGNSS情報は、関連するローカル地図の検索に使用され得る。
データの収集及び疎な地図800の生成について、例えば、図9に関して更に詳細に網羅される。しかし、一般に、疎な地図800は、車両が道路に沿って走行する際、1つ又は複数の車両から収集されるデータに基づいて生成され得る。例えば、1つ又は複数の車両に搭載されたセンサ(例えば、カメラ、速度計、GPS、加速度計等)を使用して、1つ又は複数の車両が道路に沿って走行する軌道を記録し得、道路に沿って続けて走行する車両の好ましい軌道の多項式表現は、1つ又は複数の車両が走行した、収集された軌道に基づいて決定され得る。同様に、1つ又は複数の車両により収集されたデータは、特定の道路に沿った陸標候補(potential landmark)を識別するのに役立ち得る。走行中の車両から収集されたデータは、道路幅プロファイル、道路凹凸プロファイル、走行ライン間隔プロファイル、道路状況等の道路プロファイル情報を識別するのに使用することもできる。収集された情報を使用して、疎な地図800を生成し、1つ又は複数の自律車両のナビゲーションに使用するのに配信し得る(例えば、ローカル記憶装置に又は無線データ送信を介して)。しかし、幾つかの実施形態では、地図生成は、地図の初期生成時に終わらないことがある。以下に更に詳細に考察するように、疎な地図800は、車両が、疎な地図800に含まれる道路を引き続き走行する際、車両から収集されるデータに基づいて連続して又は定期的に更新され得る。
疎な地図800に記録されるデータは、全地球測位システム(GPS)データに基づく位置情報を含み得る。例えば、位置情報は、例えば、陸標位置、道路プロファイル位置等を含め、様々な地図要素について疎な地図800に含まれ得る。疎な地図800に含まれる地図要素の位置は、道路を走行中の車両から収集されるGPSデータを使用して取得され得る。例えば、識別された陸標を通過中の車両は、車両に関連付けられたGPS位置情報及び車両に対する識別された陸標の位置の特定(例えば、車載の1つ又は複数のカメラから収集されるデータの画像分析に基づく)を使用して、識別された陸標の位置を特定し得る。識別された陸標(又は疎な地図800に含まれる任意の他の特徴)のそのような位置特定は、識別された陸標の位置を追加の車両が通過する際に繰り返され得る。追加の位置特定の幾つか又は全てを使用して、識別された陸標に対する疎な地図800に記憶された位置情報を改良することができる。例えば、幾つかの実施形態では、疎な地図800に記憶された特定の特徴に対する複数の位置測定について、まとめて平均をとり得る。しかし、地図要素に特定された複数の位置に基づいて地図要素の記憶された位置を改良するために、任意の他の数学的演算を使用することも可能である。
開示される実施形態の疎な地図は、比較的小量の記憶データを使用して車両の自律ナビゲーションを可能にし得る。幾つかの実施形態では、疎な地図800は、道路1キロメートル当たり2MB未満、道路1キロメートル当たり1MB未満、道路1キロメートル当たり500kB未満、又は道路1キロメートル当たり100kB未満のデータ密度(例えば、目標軌道、陸標、及び任意の他の記憶された道路特徴を表すデータを含む)を有し得る。幾つかの実施形態では、疎な地図800のデータ密度は、道路1キロメートル当たり10kB未満、更には道路1キロメートル当たり2kB未満(例えば、1キロメートル当たり1.6kB)、又は道路1キロメートル当たり10kB以下であり得る。幾つかの実施形態では、米国の全てとは言えないにしても略全ての道路は、合計4GB以下のデータを有する疎な地図を使用して自律的にナビゲーションし得る。これらのデータ密度値は、疎な地図800の全体、疎な地図800内のローカル地図、及び/又は疎な地図800内の特定の道路セグメントにわたる平均を表し得る。
留意されるように、疎な地図800は、道路セグメントに沿って自律運転又はナビゲーションをガイドする複数の目標軌道810の表現を含み得る。そのような目標軌道は、三次元スプラインとして記憶され得る。疎な地図800に記憶される目標軌道は、例えば、図29に関して考察されるように、特定の道路セグメントに沿った車両の以前の走行の2つ以上の再構築された軌道に基づいて決定され得る。道路セグメントは、単一の目標軌道又は複数の目標軌道に関連付けられ得る。例えば、2レーン道路では、第1の方向での道路に沿った意図される走行経路を表す第1の目標軌道を記憶し得ると共に、別の方向(例えば、第1の方向の逆)での道路に沿った意図される走行経路を表す第2の目標軌道を記憶し得る。特定の道路セグメントに関する追加の目標軌道を記憶し得る。例えば、複数レーン道路では、複数レーン道路に関連付けられた1つ又は複数のレーンでの車両の意図される走行経路を表す1つ又は複数の目標軌道を記憶し得る。幾つかの実施形態では、複数レーン道路の各レーンは、それ自体の目標軌道に関連付けられ得る。他の実施形態では、複数レーン道路に存在するレーンよりも少数の目標軌道が記憶され得る。そのような場合、複数レーン道路を移動している車両は、記憶された目標軌道のいずれかを使用して、目標軌道が記憶されたレーンからのレーンオフセット量を考慮に入れることにより、ナビゲーションをガイドし得る(例えば、車両が、3レーン高速道路の最も左側のレーンを走行中であり、高速道路の中央レーンの目標軌道のみが記憶されている場合、車両は、ナビゲーション命令を生成する際、中央レーンと最も左側のレーンとの間のレーンオフセット量を明らかにすることにより、中央レーンの目標軌道を使用してナビゲーションし得る)。
幾つかの実施形態では、目標軌道は、車両が走行する際にとるべき理想経路を表し得る。目標軌道は、例えば、走行レーンの概ね中央に配置され得る。他の場合、目標軌道は、道路セグメントに対して他の場所に配置され得る。例えば、目標軌道は、道路の中心、道路の縁部、又はレーンの縁部等に概ね一致し得る。そのような場合、目標軌道に基づくナビゲーションは、目標軌道の位置に対して維持するように決定されたオフセット量を含み得る。更に、幾つかの実施形態では、目標軌道の位置に対して維持するように決定されたオフセット量は、車両のタイプに応じて異なり得る(例えば、2つの車軸を含む乗用車は、目標軌道の少なくとも一部に沿って、3つ以上の車軸を含むトラックと異なるオフセットを有し得る)。
疎な地図800は、特定の道路セグメント、ローカル地図等に関連付けられた複数の所定の陸標820に関連するデータを含むこともできる。以下で更に詳細に考察するように、これらの陸標は、自律車両のナビゲーションに使用され得る。例えば、幾つかの実施形態では、陸標は、記憶された目標軌道に対する車両の現在位置を特定するのに使用され得る。この位置情報を用いて、自律車両は、特定された位置での目標軌道の方向に一致するように、進行方向を調整することが可能であり得る。
任意の適する間隔で複数の陸標820を識別し、疎な地図800に記憶し得る。幾つかの実施形態では、陸標は、比較的高密度で(例えば、数メートル毎以上)記憶され得る。しかし、幾つかの実施形態では、はるかに広い陸標間隔値を利用し得る。例えば、疎な地図800において、識別済み(又は認識済み)陸標は、10メートル、20メートル、50メートル、100メートル、1キロメートル、又は2キロメートルだけ離間され得る。幾つかの場合、識別済み陸標は、更には2キロメートルを超える距離だけ離れて配置され得る。
陸標間、したがって目標軌道に対して特定される車両位置の間において、車両は、車両がセンサを使用して自己運動を決定する推測航法に基づいて移動し得、目標軌道に対するそれ自体の位置を推定し得る。推測航法による移動中、誤差が蓄積され得るため、時間の経過に伴い、目標軌道に対する位置特定の正確性が一層低くなり得る。車両は、疎な地図800に含まれる陸標(及び陸標の既知の位置)を使用して、位置特定での推測航法誘発誤差をなくし得る。このようにして、疎な地図800に含まれる識別済み陸標はナビゲーションアンカーとして機能し得、そこから、目標軌道に対する車両の正確な位置を特定し得る。位置特定において、特定量の誤差が許容可能であり得るため、識別済み陸標を自律車両に常に提供する必要があるわけではない。むしろ、上述したように、10メートル、20メートル、50メートル、100メートル、500メートル、1キロメートル、2キロメートル、又はそれを超える陸標間隔に基づいてさえも、適する移動が可能であり得る。幾つかの実施形態では、道路1km毎に1つの識別済み陸標という密度が、長手方向位置特定精度を1m以内に維持するの十分であり得る。したがって、道路セグメントに沿って現れるあらゆる存在する可能性のある陸標を疎な地図800に記憶する必要があるわけではない。
更に、幾つかの実施形態では、レーンマークは、陸標間隔中の車両の位置を特定するのに使用され得る。陸標間隔中のレーンマークを使用することにより、推測航法によるナビゲーション中の蓄積が最小化され得る。特に、そのような位置特定について、図35に関して以下に考察する。
目標軌道及び識別済み陸標に加えて、疎な地図800は、様々な他の道路特徴に関連する情報を含み得る。例えば、図9Aは、疎な地図800に記憶され得る特定の道路セグメントに沿ったカーブの表現を示す。幾つかの実施形態では、道路の単一レーンは、その道路の左右のサイドの三次元多項式記述によりモデリングされ得る。単一レーンの左右のサイドを表すそのような多項式を図9Aに示す。道路が幾つのレーンを有し得るかに関係なく、道路は、図9Aに示される方法と同様の方法で、多項式を使用して表され得る。例えば、複数レーン道路の左右のサイドは、図9Aに示される多項式と同様の多項式により表現され得、複数レーン道路に含まれる中間レーンマーク(例えば、破線マークはレーン境界を表し、実線の黄線は、異なる方向に向かうレーン間の境界を表す等)も、図9Aに示される多項式等の多項式を使用して表現され得る。
図9Aに示されるように、レーン900は、多項式(例えば、一次、二次、三次、又は任意の適する次数の多項式)を使用して表現され得る。例示のために、レーン900は、二次元レーンとして示され、多項式は二次元多項式として示される。図9Aに示されるように、レーン900は、左サイド910及び右サイド920を含む。幾つかの実施形態では、2つ以上の多項式を使用して、道路又はレーン境界の各サイドの位置を表し得る。例えば、左サイド910及び右サイド920のそれぞれは、任意の適する長さの複数の多項式により表現され得る。幾つかの場合、多項式は約100mの長さを有し得るが、100mよりも長いか、又は短い他の長さも使用可能である。更に、多項式は、互いに重複して、ホスト車両が道路に沿って走行する際、続けて直面する多項式に基づくナビゲーションでのシームレスな遷移を促進し得る。例えば、左サイド910及び右サイド920のそれぞれは、約100メートル長(第1の所定の範囲の例)のセグメントに分けられ、約50メートルだけ互いに重複する複数の三次多項式により表され得る。左サイド910及び右サイド920を表す多項式は、同じ次数を有しても又は有さなくてもよい。例えば、幾つかの実施形態では、多項式によっては、二次多項式であるものもあれば、三次多項式であるものもあれば、四次多項式であるものもある。
図9Aに示される例では、レーン900の左サイド910は、2つのグループの三次多項式により表される。第1のグループは多項式セグメント911、912、及び913を含む。第2のグループは、多項式セグメント914、915、及び916を含む。2つのグループは、互いに略平行である間、道路の各サイドの位置を辿る。多項式セグメント911、912、913、914、915、及び916は、長さ約100メートルを有し、一続き内で隣接するセグメントと約50メートルだけ重複する。しかし、上述したように、異なる長さ及び異なる重複量の多項式を使用することも可能である。例えば、多項式は、長さ500m、1km、又は1km超を有し得、重複量は0〜50m、50m〜100m、又は100m超と様々であり得る。更に、図9Aは、2D空間(例えば、紙の表面)に延びる多項式を表すものとして示されているが、これらの多項式が、三次元(例えば、高さ成分を含む)において延びる曲線を表して、X−Y曲率に加えて道路セグメントの高さ変化を表し得ることを理解されたい。図9Aに示される例では、レーン900の右サイド920は、多項式セグメント921、922、及び923を有する第1のグループ並びに多項式セグメント924、925、及び926を有する第2のグループによって更に表される。
疎な地図800の目標軌道に戻ると、図9Bは、特定の道路セグメントに沿って走行する車両の目標軌道を表す三次元多項式を示す。目標軌道は、ホスト車両が特定の道路セグメントに沿って走行すべきX−Y経路のみならず、ホスト車両が道路セグメントを走行する際に経験する高さ変化も表す。したがって、疎な地図800内の各目標軌道は、図9Bに示される三次元多項式950のように、1つ又は複数の三次元多項式により表され得る。疎な地図800は、複数の軌道(例えば、世界中の道路に沿った様々な道路セグメントに沿った車両の軌道を表すには数百万又は数十億又は数十億超)を含み得る。幾つかの実施形態では、各目標軌道は、三次元多項式セグメントを結び付けるスプラインに対応し得る。
疎な地図800に記憶される多項式曲線のデータフットプリントに関して、幾つかの実施形態では、各三次多項式は、4つのパラメータにより表され得、各パラメータは4バイトのデータを必要とする。適する表現は、100m毎に約192バイトのデータを必要とする三次多項式を用いて取得され得る。これは、約100km/時で走行中のホスト車両の場合、約200kB/時のデータ使用/転送要件に換算され得る。
疎な地図800は、ジオメトリ記述子とメタデータとの組合せを使用してレーンネットワークを記述し得る。ジオメトリは、上述したように多項式又はスプラインにより記述され得る。メタデータは、レーン数、特別な特徴(相乗りレーン等)、及び可能な場合には他の疎なラベルを記述し得る。そのようなインジケータの合計フットプリントはごくわずかであり得る。
したがって、本開示の実施形態による疎な地図は、道路セグメントに沿って延びる路面特徴の少なくとも1つの線表現を含み得、各線表現は、路面特徴に実質的に対応する道路セグメントに沿った経路を表す。幾つかの実施形態では、上述したように、路面特徴の少なくとも1つの線表現は、スプライン、多項式表現、又は曲線を含み得る。更に、幾つかの実施形態では、路面特徴は、道路縁部又はレーンマークの少なくとも一方を含み得る。更に、「クラウドソーシング」に関して後述するように、路面特徴は、1つ又は複数の車両が道路セグメントを走行する際に取得された複数の画像の画像分析を通して識別され得る。
上述したように、疎な地図800は、道路セグメントに関連付けられた複数の所定の陸標を含み得る。陸標の実際の画像を記憶して、例えば捕捉画像及び記憶画像に基づく画像認識分析に依存するのではなく、疎な地図800内の各陸標は、記憶された実際の画像で必要とされるよりも少ないデータを使用して表現及び認識され得る。陸標を表すデータは、道路に沿った陸標を記述又は識別するのに十分な情報を依然として含み得る。陸標の実際の画像ではなく陸標の特徴を記述するデータを記憶することにより、疎な地図800のサイズを低減し得る。
図10は、疎な地図800で表され得る陸標のタイプの例を示す。陸標は、道路セグメントに沿った任意の可視及び識別可能な物体を含み得る。陸標は、固定され、位置及び/又は内容を頻繁には変更しないものが選択され得る。疎な地図800に含まれる陸標は、車両が特定の道路セグメントを走行する際、目標軌道に対する車両200の位置を特定するに当たり有用であり得る。陸標の例としては、交通標識、方向標識、汎用標識(例えば、矩形標識)、路傍固定物(例えば、街灯柱、反射板等)、及び任意の他の適するカテゴリを挙げ得る。幾つかの実施形態では、道路上のレーンマークも陸標として疎な地図800に含まれ得る。
図10に示される陸標の例は、交通標識、方向標識、路傍固定物、及び汎用標識を含む。交通標識は、例えば、速度制限標識(例えば、速度制限標識1000)、譲れの標識(例えば、譲れの標識1005)、ルート番号標識(例えば、ルート番号標識1010)、信号機標識(例えば、信号機標識1015)、停止標識(例えば、停止標識1020)を含み得る。方向標識は、異なる場所への1つ又は複数の方向を示す1つ又は複数の矢印を含む標識を含み得る。例えば、方向標識は、車両を異なる道路又は場所に向ける矢印を有する高速道路標識1025、車両を別の道路に向ける矢印を有する出口標識1030等を含み得る。したがって、複数の陸標の少なくとも1つは、道路標識を含み得る。
汎用標識は、交通に非関連であり得る。例えば、汎用標識は、広告に使用される広告板又は2つの国、州、郡、市、若しくは町の境界線に隣接するウェルカムボードを含み得る。図10は汎用標識1040(「Joe's Restaurant」)を示す。汎用標識1040は、図10に示されるように矩形を有し得るが、汎用標識1040は、正方形、円形、三角形等の他の形状を有することもできる。
陸標は、路傍固定物を含むこともできる。路傍固定物は、標識ではない物体であり得、交通又は方向に関係しないことがある。例えば、路傍固定物は、街灯柱(例えば、街灯柱1035)、電柱、信号機の柱等を含み得る。
陸標は、自律車両ナビゲーションシステムでの使用に特に設計されたビーコンを含むこともできる。例えば、そのようなビーコンは、所定の間隔で配置されて、ホスト車両のナビゲーションを支援するスタンドアロン構造を含み得る。そのようなビーコンは、道路セグメントに沿って走行中の車両により識別又は認識され得る既存の道路標識に追加される視覚的/グラフィカル情報(例えば、アイコン、エンブレム、バーコード等)を含むこともできる。そのようなビーコンは、電子構成要素を含むこともできる。そのような実施形態では、電子ビーコン(例えば、RFIDタグ等)を使用して、非視覚情報をホスト車両に送信し得る。そのような情報は、例えば、ホスト車両が目標軌道に沿った位置を特定するに当たり使用し得る陸標識別及び/又は陸標位置情報を含み得る。
幾つかの実施形態では、疎な地図800に含まれる陸標は、所定のサイズのデータオブジェクトにより表され得る。陸標を表すデータは、特定の陸標の識別に適する任意のパラメータを含み得る。例えば、幾つかの実施形態では、疎な地図800に記憶される陸標は、陸標の物理的なサイズ(例えば、既知のサイズ/スケールに基づく陸標への距離の推定をサポートするために)、前の陸標への距離、横方向オフセット、高さ、タイプコード(例えば、陸標タイプ−方向標識、交通標識等のいずれかのタイプ)、GPS座標(例えば、全地球測位をサポートするため)、及び任意の他の適するパラメータ等のパラメータを含み得る。各パラメータは、データサイズに関連付けられ得る。例えば、陸標サイズは、8バイトのデータを使用して記憶され得る。前の陸標への距離、横方向オフセット、及び高さは、12バイトのデータを使用して指定され得る。方向標識又は交通標識等の陸標に関連付けられたタイプコードは、約2バイトのデータを要し得る。汎用標識の場合、汎用標識の識別を可能にする画像シグネチャは、50バイトのデータ記憶を使用して記憶され得る。陸標GPS位置は、16バイトのデータ記憶に関連付けられ得る。各パラメータのこれらのデータサイズは単なる例であり、他のデータサイズを使用することも可能である。
このようにして疎な地図800において陸標を表すことは、データベース内で陸標を効率的に表現する無駄のない解決策を提供する。幾つかの実施形態では、標識は意味的標識又は非意味的標識と呼ばれ得る。意味的標識は、標準化された意味(例えば、速度制限標識、警告標識、方向標識等)がある標識の任意のクラスを含み得る。非意味的標識は、標準化された意味が関連しない任意の標識(例えば、一般的な広告標識、事業所を識別する標識等)を含み得る。例えば、各意味的標識は、38バイトのデータ(例えば、サイズに8バイト、前の陸標への距離、横方向オフセット、及び高さに12バイト、タイプコードに2バイト、並びにGPS座標に16バイト)を用いて表現され得る。疎な地図800は、タグシステムを使用して、陸標タイプを表し得る。幾つかの場合、各交通標識又は方向標識は、それ自体のタグに関連付けられ得、タグは、陸標識別情報の一部としてデータベースに記憶され得る。例えば、データベースは、様々な交通標識を表す1000のオーダの異なるタグ及び方向標識を表す約10000のオーダの異なるタグを含み得る。当然ながら、任意の適する数のタグを使用し得、必要に応じて追加のタグを作成し得る。汎用目的標識は、幾つかの実施形態では、約100バイト未満を使用して表現され得る(例えば、サイズに8バイト、前の陸標への距離、横方向オフセット、及び高さに12バイト、画像シグネチャに50バイト、並びにGPS座標に16バイトを含む約86バイト)。
したがって、画像シグネチャを必要としない意味的道路標識の場合、50m毎に約1つという比較的高い陸標密度であっても、疎な地図800へのデータ密度の影響は、1キロメートル当たり約760バイトのオーダであり得る(例えば、1キロメートル当たり20個の陸標×1陸標当たり38バイト=760バイト)。画像シグネチャ成分を含む汎用標識の場合でも、データ密度の影響は1キロメートル当たり約1.72kBである(例えば、1キロメートル当たり20個の陸標×1陸標当たり86バイト=1,720バイト)。意味的道路標識の場合、これは、100km/時で走行中の車両での1時間当たり約76kBのデータ使用に等しい。汎用標識の場合、これは、100km/時で移動中の車両での1時間当たり約170kBに等しい。
幾つかの実施形態では、矩形標識等の略矩形の物体は、疎な地図800において、100バイト以下のデータにより表され得る。疎な地図800での略矩形の物体(例えば、汎用標識1040)の表現は、略矩形の物体に関連付けられた凝縮画像シグネチャ(例えば、凝縮画像シグネチャ1045)を含み得る。この凝縮画像シグネチャは、例えば、汎用標識、例えば認識済み陸標の識別を支援するのに使用され得る。そのような凝縮画像シグネチャ(例えば、物体を表す実際の画像データから導出される画像情報)は、物体の実際の画像を記憶する必要性又は陸標を認識するために実際の画像に対して実行される比較画像分析の必要性を回避し得る。
図10を参照すると、疎な地図800は、汎用標識1040の実際の画像ではなく、汎用標識1040に関連付けられた凝縮画像シグネチャ1045を含むか又は記憶し得る。例えば、画像捕捉デバイス(例えば、画像捕捉デバイス122、124、又は126)が汎用標識1040の画像を捕捉した跡、プロセッサ(例えば、画像プロセッサ190又はホスト車両に対して車載又はリモートに配置される、画像を処理可能なプロセッサ)は、画像分析を実行して、汎用標識1040に関連付けられた一意のシグネチャ又はパターンを含む凝縮画像シグネチャ1045を抽出/作成し得る。一実施形態では、凝縮画像シグネチャ1045は、形状、カラーパターン、輝度パターン、又は汎用標識1040を記述する、汎用標識1040の画像から抽出され得る任意の他の特徴を含み得る。
例えば、図10では、凝縮画像シグネチャ1045内に示される円、三角形、及び星は、異なる色のエリアを表し得る。円、三角形、及び星で表されるパターンは、疎な地図800に、例えば、画像シグネチャを含むように指定される50バイト以内で記憶され得る。特に、円、三角形、及び星は、必ずしも、そのような形状が画像シグネチャの部分として記憶されることを示すことを意味しない。むしろ、これらの形状は、識別できる色差、テクスチャエリア、グラフィカル形状、又は汎用標識に関連付けられ得る特徴の他の相違を有する認識可能なエリアを概念的に表すことを意味する。そのような凝縮画像シグネチャを使用して、汎用標識の形態の陸標を識別し得る。例えば、凝縮画像シグネチャを使用して、記憶された凝縮画像シグネチャと、例えば、自律車両に搭載されたカメラを使用して捕捉された画像データとの比較に基づいて同じか否か(same-not-same)分析を実行することができる。
したがって、複数の陸標は、1つ又は複数の車両が道路セグメントを走行する際に取得された複数の画像の画像分析を通して識別され得る。「クラウドソーシング」に関して後述するように、幾つかの実施形態では、複数の陸標を識別するための画像分析は、陸標が出現する画像の、陸標が出現しない画像に対する比率が閾値を超える場合、陸標候補を受け入れることを含み得る。更に、幾つかの実施形態では、複数の陸標を識別するための画像分析は、陸標が出現しない画像の、陸標が出現する画像に対する比率が閾値を超える場合、陸標候補を拒絶することを含み得る。
目標軌道に戻ると、ホスト車両は、ナビゲーションに特定の道路セグメントを使用し得、図11Aは、疎な地図800を構築又は維持するプロセス中の多項式表現軌道捕捉を示す。疎な地図800に含まれる目標軌道の多項式表現は、同じ道路セグメントに沿った車両の以前の走行の2つ以上の再構築軌道に基づいて決定され得る。幾つかの実施形態では、疎な地図800に含まれる目標軌道の多項式表現は、同じ道路セグメントに沿った車両の以前の走行の2つ以上の再構築軌道の集約であり得る。幾つかの実施形態では、疎な地図800に含まれる目標軌道の多項式表現は、同じ道路セグメントに沿った車両の以前の走行の2つ以上の再構築軌道の平均であり得る。道路セグメントに沿って走行中の車両から収集される再構築軌道に基づいて道路経路に沿った目標軌道の構築に、他の数学的演算を使用することもできる。
図11Aに示されるように、道路セグメント1100は、異なる時間に幾つかの車両200により走行され得る。各車両200は、車両が道路セグメントに沿ってとった経路に関連するデータを収集し得る。特定の車両が走行した経路は、可能性のあるソースの中でも特に、カメラデータ、加速度計情報、速度センサ情報、及び/又はGPS情報に基づいて特定され得る。そのようなデータを使用して、道路セグメントに沿って走行中の車両の軌道を再構築し得、これらの再構築軌道に基づいて特定の道路セグメントの目標軌道(又は複数の目標軌道)を決定し得る。そのような目標軌道は、ホスト車両が道路セグメントに沿って走行する際、その車両(例えば、自律ナビゲーションシステムによりガイドされる)の好ましい経路を表し得る。
図11Aに示される例では、第1の再構築軌道1101は、第1の時間期間(例えば、1日目)において、道路セグメント1100を走行する第1の車両から受信されるデータに基づいて特定され得、第2の再構築軌道1102は、第2の時間期間(例えば、2日目)において、道路セグメント1100を走行する第2の車両から取得され得、第3の再構築軌道1103は、第3の時間期間(例えば、3日目)において、道路セグメント1100を走行する第3の車両から取得され得る。各軌道1101、1102、及び1103は、三次元多項式等の多項式により表され得る。幾つかの実施形態では、再構築軌道のいずれかが、道路セグメント1100を走行中の車両においてオンボードで構築され得ることに留意されたい。
代替又は追加として、そのような再構築軌道は、道路セグメント1100から受信される情報に基づいてサーバ側で特定され得る。例えば、幾つかの実施形態では、車両200は、道路セグメント1100に沿った走行に関連するデータ(例えば、特に操舵角、進行方位、位置、速度、検知された道路セグメント、及び/又は検知された陸標)を1つ又は複数のサーバに送信し得る。サーバは、受信データに基づいて車両200の軌道を再構築し得る。サーバは、第1、第2、及び第3の軌道1101、1102、及び1103に基づいて、後の時間に同じ道路セグメント1100に沿って走行する自律車両のナビゲーションをガイドする軌道を再構築し得る。目標軌道は、道路セグメントの単一の以前の走行に関連付けられ得るが、幾つかの実施形態では、疎な地図800に含まれる各目標軌道は、同じ道路セグメントを走行する車両の2つ以上の再構築軌道に基づいて特定され得る。図11Aでは、目標軌道は、1110により表現され得る。幾つかの実施形態では、目標軌道1110は、第1、第2、及び第3の軌道1101、1102、及び1103の平均に基づいて生成され得る。幾つかの実施形態では、疎な地図800に含まれる目標軌道1110は、2つ以上の再構築軌道の集約(例えば、加重結合)であり得る。運転データを位置合わせして軌道を構築することについて、図29に関して更に後述する。
図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等の他の道路特徴を含むこともできる。
図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)に対して遷移する際に自律車両が辿るべき好ましい経路を表す。
疎な地図800は、地理的区域1111に関連付けられた他の道路関連特徴の表現を含むこともできる。例えば、疎な地図800は、地理的区域1111において識別される1つ又は複数の陸標の表現を含むこともできる。そのような陸標は、停止線1132に関連付けられた第1の陸標1150、停止標識1134に関連付けられた第2の陸標1152、速度制限標識1154に関連付けられた第3の陸標、及び危険物標識1138に関連付けられた第4の陸標1156を含み得る。そのような陸標を使用して、例えば、示される目標軌道のいずれかに対する自律車両の現在位置を特定するに当たり自律車両を支援し得、それにより、車両は、特定された位置での目標軌道の方向に一致するように、進行方位を調整し得る。疎な地図からの陸標を使用したナビゲーションについて、図26に関して更に後述する。
幾つかの実施形態では、疎な地図800は道路シグネチャプロファイルを含むこともできる。そのような道路シグネチャプロファイルは、道路に関連付けられた少なくとも1つのパラメータの任意の識別可能/測定可能な変動に関連付けられ得る。例えば、幾つかの場合、そのようなプロファイルは、特定の道路セグメントの表面凹凸性の変動、特定の道路セグメントにわたる道路幅の変動、特定の道路セグメントに沿って塗装された破線間の距離の変動、特定の道路セグメントに沿った道路曲率の変動等の路面情報の変動に関連付けられ得る。図11Dは、道路シグネチャプロファイル1160の例を示す。プロファイル1160は上述したパラメータのいずれか又は他のパラメータを表し得るが、一例では、プロファイル1160は、例えば、車両が特定の道路セグメントに沿って走行する際、サスペンション変位量を示す出力を提供する1つ又は複数のセンサを監視することにより得られるような路面凹凸性の測定値を表し得る。
代替として又は同時に、プロファイル1160は、特定の道路セグメントを走行中の車両に搭載されたカメラを介して取得される画像データに基づいて特定されるような道路幅の変動を表し得る。そのようなプロファイルは、例えば、特定の目標軌道に対する自律車両の特定の位置を特定するに当たり有用であり得る。すなわち、自律車両は、道路セグメントを走行する際、道路セグメントに関連付けられた1つ又は複数のパラメータに関連付けられたプロファイルを測定し得る。測定されたプロファイルが、道路セグメントに沿った位置に関するパラメータ変動をプロットする所定のプロファイルに相関/一致することができる場合、測定されたプロファイル及び予め決定されたプロファイルを使用して(例えば、測定プロファイル及び予め決定されたプロファイルの対応するセクションを重ね合わせることにより)、道路セグメントに沿った現在位置と、したがって道路セグメントの目標軌道に対する現在位置とを特定し得る。
幾つかの実施形態では、疎な地図800は、自律車両のユーザ、環境状況、及び/又は運転に関連する他のパラメータに関連付けられた異なる特徴に基づいて、異なる軌道を含み得る。例えば、幾つかの実施形態では、異なる軌道は、異なるユーザ選好及び/又はプロファイルに基づいて生成され得る。そのような異なる軌道を含む疎な地図800は、異なるユーザの異なる自律車両に提供され得る。例えば、ユーザによっては、有料道路の回避を好む者もいれば、ルートに有料道路があるか否かに関わらず、最短又は最速ルートをとることを好む者もいる。開示されるシステムは、そのような異なるユーザ選好又はプロファイルに基づいて、異なる軌道を有する異なる疎な地図を生成し得る。別の例として、ユーザによっては、速く動いているレーンでの走行を好む者もいれば、常時、中央レーンでのポジションを維持することを好む者もいる。
昼及び夜、雪、雨、霧等の異なる環境状況に基づいて、異なる軌道を生成し、疎な地図800に含め得る。様々な環境状況下で運転する自律車両に対して、そのような様々な環境状況に基づいて生成される疎な地図800を提供し得る。幾つかの実施形態では、自律車両に提供されるカメラは、環境状況を検出し得、疎な地図を生成し提供するサーバにそのような情報を提供し得る。例えば、サーバは、検出された環境状況下での自律運転により適するか、又はより安全であり得る軌道を含むように、疎な地図800を生成するか、又は既に生成された疎な地図800を更新し得る。環境情報に基づく疎な地図800の更新は、自律車両が道路に沿って走行している際に動的に実行され得る。
運転に関連する他の異なるパラメータも、異なる疎な地図を異なる自律車両に生成し提供するベースとして使用され得る。例えば、自律車両が高速で走行中である場合、ターンはよりきつくなり得る。自律車両が特定の軌道を辿る際、その車両が特定のレーン内を維持し得るように、道路ではなく特定のレーンに関連付けられた軌道を疎な地図800に含め得る。自律車両に搭載されたカメラにより捕捉された画像が、車両がレーン外部にドリフトした(例えば、レーンマークを超えた)ことを示す場合、車両内で行動をトリガーして、特定の軌道に従って、指定されたレーンに車両を戻し得る。
疎な地図のクラウドソーシング
幾つかの実施形態では、開示されるシステム及び方法は、自律車両ナビゲーションのための疎を生成し得る。例えば、開示されるシステム及び方法は、1つ又は複数の自律車両が道路系統に沿ったナビゲーションに使用し得る疎を生成するために、クラウドソーシングされたデータを使用し得る。本明細書で使用する場合、「クラウドソーシング」とは、異なる時間に道路セグメントを走行中の様々な車両(例えば、自律車両)からデータが受信され、そのようなデータが道路モデルの生成及び/又は更新に使用されることを意味する。また、モデルは、自律車両ナビゲーションを支援するために、後に道路セグメントに沿って走行する車両又は他の車両に送信され得る。道路モデルは、自律車両が道路セグメントを走行する際に辿るべき好ましい軌道を表す複数の目標軌道を含み得る。目標軌道は、車両からサーバに送信され得る、道路セグメントを走行中の車両から収集された、再構築された実際の軌道と同じであり得る。幾つかの実施形態では、目標軌道は、1つ又は複数の車両が道路セグメントを走行するときに以前に辿った実際の軌道と異なり得る。目標軌道は、実際の軌道に基づいて生成され得る(例えば、平均化又は任意の他の適する演算を通して)。目標軌道を生成するためにクラウドソーシングされたデータを位置合わせする一例について、図29に関して後述する。
車両がサーバにアップロードし得る車両軌道データは、車両の実際の再構築軌道と一致し得ることもあれば、又は車両の実際の再構築軌道に基づくか、若しくは関連し得る推奨軌道に対応し得るが、実際の再構築軌道と異なることもある。例えば、車両は、実際の再構築軌道を変更し、サーバに変更された実際の軌道を提出(例えば、推奨)し得る。道路モデルは、推奨された変更軌道を他の車両の自律ナビゲーションの目標軌道として使用し得る。
軌道情報に加えて、疎なデータ地図800の構築に使用される可能性のある他の情報は、存在する可能性のある陸標候補に関連する情報を含み得る。例えば、情報のクラウドソーシングを通して、開示されるシステム及び方法は、環境内の存在する可能性のある陸標を識別し、陸標位置を改良し得る。陸標は、自律車両のナビゲーションシステムにより、目標軌道に沿った車両の位置を特定及び/又は調整するのに使用され得る。
車両が道路に沿って走行する際に生成され得る再構築軌道は、任意の適する方法により取得され得る。幾つかの実施形態では、再構築軌道は、例えば、自己運動推定(例えば、カメラ並びにしたがって車体の三次元並進及び三次元回転)を使用して、車両の移動セグメントを一緒にステッチングすることにより開発され得る。回転推定及び並進推定は、慣性センサ及び速度センサ等の他のセンサ又はデバイスからの情報と共に、1つ又は複数の画像捕捉デバイスにより捕捉される画像の分析に基づいて特定され得る。例えば、慣性センサは、加速度計又は車体の並進及び/又は回転の変化を測定するように構成された他の適するセンサを含み得る。車両は、車両の速度を測定する速度センサを含み得る。
幾つかの実施形態では、カメラ(したがって、車体)の自己運動は、捕捉画像のオプティカルフロー分析に基づいて推定され得る。一連の画像のオプティカルフロー分析は、一連の画像からのピクセルの移動を識別し、識別された移動に基づいて車両の移動を特定する。自己運動は、時間にわたり及び道路セグメントに沿って積分して、車両が辿った道路セグメントに関連付けられた軌道を再構築し得る。
異なる時間での道路セグメントに沿った複数運転での複数の車両により収集されるデータ(例えば、再構築軌道)を使用して、疎な地図800に含まれる道路モデル(例えば、目標軌道等を含む)を構築し得る。異なる時間での道路セグメントに沿った複数運転での複数車両により収集されるデータの平均をとり、モデルの精度を上げることもできる。幾つかの実施形態では、道路の幾何学的形状及び/又は陸標に関するデータは、異なる時間に共通の道路セグメントを通って走行する複数の車両から受信され得る。異なる車両から受信されるそのようなデータは、結合して、道路モデルを生成し、及び/又は道路モデルを更新し得る。
道路セグメントに沿った再構築軌道の幾何学的形状(及び目標軌道の幾何学的形状も)は、三次元空間において曲線で表され得、曲線は、三次多項式を結ぶスプラインであり得る。再構築軌道曲線は、車両に設置されたカメラにより捕捉されるビデオストリーム又は複数の画像の分析から特定され得る。幾つかの実施形態では、各フレーム又は画像において、車両の現在位置の数メートル先の位置が識別される。この位置は、車両が所定の時間期間内に走行することが予期される位置である。この動作は、フレーム毎に繰り返され得、それと同時に、車両は、カメラの自己運動(回転及び並進)を計算し得る。各フレーム又は画像において、所望経路の短距離モデルが、カメラに取り付けられた基準系において車両により生成される。短距離モデルを一緒にステッチングして、何らかの座標系での道路の三次元モデルを取得し得、何らかの座標系は任意又は所定の座標系であり得る。次に、道路の三次元モデルは、スプラインによりフィッティングされ得、フィッティングは、適する次数の1つ又は複数の多項式を含み得るか、又は多項式を結び付け得る。
各フレームでの短距離道路モデルを結論付けるために、1つ又は複数の検出モジュールを使用し得る。例えば、ボトムアップレーン検出モジュールが使用可能である。ボトムアップレーン検出モジュールは、レーンマークが道路に描かれる場合、有用であり得る。このモジュールは、画像内のエッジを探し、エッジを一緒に集めて、レーンマークを形成する。第2のモジュールをボトムアップレーン検出モジュールと一緒に使用し得る。第2のモジュールは、エンドツーエンドディープニューラルネットワークであり、入力画像からの正確な短距離経路を予測するようにトレーニングされ得る。両モジュールにおいて、道路モデルは、画像座標系内で検出され、カメラに仮想的に取り付けられる三次元空間に変換され得る。
再構築軌道モデリング方法は、ノイズ成分を含み得る長期間にわたる自己運動の積分に起因する誤差の蓄積をもたらし得るが、生成されるモデルは地域規模にわたりナビゲーションに十分な正確性を提供し得るため、そのような誤差は取るに足らない。加えて、衛星画像又は測地測量等の外部ソースの情報を使用することにより、積分誤差を相殺することが可能である。例えば、開示されるシステム及び方法は、GNSS受信機を使用して、蓄積誤差を相殺し得る。しかし、GNSS測位信号は、常に利用可能で正確であるわけではないことがある。開示されるシステム及び方法は、GNSS測位の利用可能性及び正確性に弱く依存する操舵アプリケーションを可能にし得る。そのようなシステムでは、GNSS信号の使用を制限し得る。例えば、幾つかの実施形態では、開示されるシステムは、GNSS信号をデータベースインデックス付け目的のみで使用され得る。
幾つかの実施形態では、自律車両ナビゲーション操舵アプリケーションに関連し得る範囲スケール(例えば、ローカルスケール)は、50メートル、100メートル、200メートル、300メートル等のオーダであり得る。そのような距離は、ジオメトリック道路モデルが主に2つの目的で使用されるため、使用され得る:軌道を事前に計画し、道路モデル上で車両を位置特定する。幾つかの実施形態では、計画タスクは、制御アルゴリズムが1.3秒先(又は1.5秒、1.7秒、2秒等の任意の他の時点)にある目標点に従って車両を操舵する場合、40メートル先(又は20メートル、30メートル、50メートル等の任意の他の適する距離先)の典型的な範囲にわたりモデルを使用し得る。位置特定タスクは、別のセクションにおいてより詳細に記載される「テール位置合わせ」と呼ばれる方法により、車の60メートル背後(又は50メートル、100メートル、150メートル等の任意の他の適する距離)という典型的な範囲にわたり道路モデルを使用する。開示されるシステム及び方法は、計画された軌道が、例えば、レーン中心から30cmを超えてずれないように、100メートル等の特定の範囲にわたり十分な正確性を有するジオメトリックモデルを生成し得る。
上述したように、三次元道路モデルは、短距離セクションを検出し、それらを一緒にステッチングすることから構築され得る。ステッチングは、カメラにより捕捉されたビデオ及び/又は画像、車両の移動を反映する慣性センサからのデータ、及びホスト車両の速度信号を使用して、6度自己運動モデルを計算することにより可能になり得る。蓄積誤差は、100メートルのオーダ等、ある局所的な距離スケールにわたり十分に小さい値であり得る。これは、全て特定の道路セグメントにわたる1回の運転で完了し得る。
幾つかの実施形態では、複数の運転を使用して、結果として生成されるモデルの平均をとり、その精度を更に上げ得る。同じ車が同じルートを複数回走行し得、又は複数の車が、収集されたモデルデータを中央サーバに送信し得る。いずれの場合でも、照合手順を実行して、重複モデルを識別し、平均をとれるようにして、目標軌道を生成し得る。構築されたモデル(例えば、目標軌道を含む)は、収束基準が満たされると、操舵に使用することができる。続く運転は、更なるモデル改善及び基盤変更に適応するために使用され得る。
複数の車の間で運転経験(検知されたデータ等)を共有することは、複数の車が中央サーバに接続されている場合、実現可能になる。各車両クライアントは、車両クライアントの現在位置に関連し得る普遍的道路モデルの部分コピーを記憶し得る。車両とサーバ間の双方向更新手順を車両及びサーバによって実行し得る。上述した小フットプリント概念により、開示されるシステム及び方法は非常に小さい帯域幅を使用して双方向更新を実行することができる。
陸標候補に関連する情報も特定し、中央サーバに転送し得る。例えば、開示されるシステム及び方法は、陸標を含む1つ又は複数の画像に基づいて、存在し得る陸標の1つ又は複数の物理的特性を特定し得る。物理的特性は、陸標の物理的サイズ(例えば、高さ、幅)、車両から陸標までの距離、陸標と前の陸標との間の距離、陸標の横方向位置(例えば、走行レーンに対する陸標の位置)、陸標のGPS座標、陸標のタイプ、陸標についてのテキストの識別情報等を含み得る。例えば、車両は、カメラにより捕捉された1つ又は複数の画像を分析して速度制限標識等の存在し得る陸標を検出し得る。
車両は、1つ又は複数の画像の分析に基づいて、車両から陸標までの距離を特定し得る。幾つかの実施形態では、距離は、スケーリング方法及び/又はオプティカルフロー方法等の適する画像分析方法を使用する陸標の画像の分析に基づいて特定され得る。幾つかの実施形態では、開示されるシステム及び方法は、存在し得る陸標のタイプ又は分類を特定するように構成され得る。特定の存在し得る陸標が、疎な地図に記憶されている所定のタイプ又は分類に対応すると、車両が判定する場合、車両がサーバに、陸標のタイプ又は分類の指示情報を陸標の位置と共に通信することで足り得る。サーバはそのような指示情報を記憶し得る。後に、他の車両は、その陸標の画像を捕捉し、画像を処理し(例えば、分類器を使用して)、陸標のタイプに関して、画像処理からの結果をサーバに記憶されている指示情報と比較し得る。様々なタイプの陸標があり得、異なるタイプの陸標は、サーバにアップロードされ記憶される異なるタイプのデータに関連付けられ得、車両でのオンボードでの異なる処理は、陸標を検出し、陸標についての情報をサーバに通信し得、車載のシステムは、陸標データをサーバから受信し、陸標データを使用して、自律ナビゲーションにおいて陸標を識別し得る。
幾つかの実施形態では、道路セグメントを走行する複数の自律車両がサーバと通信し得る。車両(又はクライアント)は、任意の座標系でその運転を記述する曲線を生成し得る(例えば、自己運動積分を通して)。車両は、陸標を検出し、同じ系で陸標を位置特定し得る。車両は、曲線及び陸標をサーバにアップロードし得る。サーバは、複数の運転にわたり車両からデータを収集し、統合道路モデルを生成し得る。例えば、図19に関して後述するように、サーバは、アップロードされた曲線及び陸標を使用して、統合された道路モデルを有する疎な地図を生成し得る。
サーバは、モデルをクライアント(例えば、車両)にも配信し得る。例えば、図24に関して後述するように、サーバは、疎な地図を1つ又は複数の車両に配信し得る。サーバは、新しいデータを車両から受信するとき、モデルを連続又は定期的に更新し得る。例えば、サーバは、新しいデータを処理して、データが、サーバでのモデルの更新又は新しいデータの作成をトリガーすべき情報を含むか否かを評価し得る。サーバは、自律車両ナビゲーションを提供するために、更新されたモデル又は更新情報を車両に配信し得る。
サーバは、1つ又は複数の基準を使用して、車両から受信された新しいデータが、モデルへの更新又は新しいデータの作成をトリガーすべきであるか否かを特定し得る。例えば、新しいデータが、特定の位置において以前に認識された陸標がもはや存在しないか、又は別の陸標で置換されたことを示す場合、サーバは、新しいデータがモデルへの更新をトリガーすべきであると特定し得る。別の例として、新しいデータが、道路セグメントが閉鎖されことを示し、これが、他の車両から受信されるデータにより裏付けられた場合、サーバは、新しいデータがモデルへの更新をトリガーすべきであると特定し得る。
サーバは、更新されたモデル(又はモデルの更新された部分)を、モデルへの更新が関連付けられた道路セグメントを走行中の1つ又は複数の車両に配信し得る。サーバは、モデルへの更新が関連付けられた道路セグメントを走行しようとしている車両又は計画された旅程がその道路セグメントを含む車両に、更新されたモデルを配信することもできる。例えば、自律車両が、更新が関連付けられた道路セグメントに到達する前、別の道路セグメントに沿って走行中である間、サーバは、自律車両がその道路セグメントに到達する前、更新情報又は更新されたモデルをその車両に配信し得る。
幾つかの実施形態では、リモートサーバは、複数のクライアント(例えば、共通の道路セグメントを走行する車両)から軌道及び陸標を収集し得る。サーバは、陸標を使用して曲線を照合し、複数の車両から収集された軌道に基づいて平均道路モデルを作成し得る。サーバは、道路のグラフ及び道路セグメントの各ノード又は結合点において最も確からしい経路を計算することもできる。例えば、図29に関して後述するように、リモートサーバは、軌道を位置合わせして、収集された軌道からクラウドソーシングされた疎な地図を生成し得る。
サーバは、複数の車両により測定されるような、ある陸標から別の陸標(例えば、道路セグメントに沿った前の陸標)までの距離等の、共通の道路セグメントに沿って走行した複数の車両から受信される陸標特性の平均をとり、弧長パラメータを特定し、経路に沿った位置特定及び各クライアント車両の速度較正をサポートし得る。サーバは、共通の道路セグメントに沿って走行した複数の車両により測定され、同じ陸標として認識された陸標の物理的寸法の平均をとり得る。平均の物理的寸法を使用して、車両から陸標までの距離等の距離推定をサポートし得る。サーバは、共通の道路セグメントに沿って走行した複数の車両により測定され、同じ陸標として認識された陸標の横方向位置(例えば、車両が走行中のレーンから陸標に対する位置)の平均をとり得る。平均の横方向位置を使用して、レーン割り当てをサポートし得る。サーバは、同じ道路セグメントに沿って走行した複数の車両により測定され、同じ陸標として認識された陸標のGPS座標の平均をとり得る。陸標の平均GPS座標を使用して、道路モデルでの陸標の全地球位置特定又は測位をサポートし得る。
幾つかの実施形態では、サーバは、車両から受信されるデータに基づいて、工事、迂回、新しい標識、標識の除去等のモデル変更を識別し得る。サーバは、車両から新しいデータを受信すると、モデルを連続して、定期的に、又は即座に更新し得る。サーバは、モデルの更新情報又は更新されたモデルを車両に配信して、自律ナビゲーションを提供し得る。例えば、更に後述するように、サーバは、クラウドソーシングされたデータを使用して、車両により検出された「ゴースト」陸標をフィルタリングして除去し得る。
幾つかの実施形態では、サーバは、自律運転中のドライバー介入を分析し得る。サーバは、介入が発生した時刻及び場所において車両から受信されたデータ及び/又は介入が発生した時刻前に受信されたデータを分析し得る。サーバは、介入を生じさせたか、又は介入に密接に関連するデータの特定の部分、例えば、一時的なレーン閉鎖セットアップを示すデータ、道路上の歩行者を示すデータを識別し得る。サーバは、識別されたデータに基づいてモデルを更新し得る。例えば、サーバは、モデルに記憶された1つ又は複数の軌道を変更し得る。
図12は、疎な地図を生成する(並びにクラウドソーシングされた疎な地図を使用して配信及びナビゲーションする)ためにクラウドソーシングされたものを使用するシステムの概略図である。図12は、1つ又は複数のレーンを含む道路セグメント1200を示す。複数の車両1205、1210、1215、1220、及び1225は、道路セグメント1200を同時に又は異なる時間に走行し得る(図12では、道路セグメント1200に同時に現れるものとして示されているが)。車両1205、1210、1215、1220、及び1225の少なくとも1つは、自律車両であり得る。本例を簡明にするために、車両1205、1210、1215、1220、及び1225の全てが自律車両であると仮定する。
各車両は、他の実施形態に開示される車両(例えば、車両200)と同様であり得、他の実施形態において開示される車両に含まれるか、又は関連付けられる構成要素又はデバイスを含み得る。各車両は、画像捕捉デバイス又はカメラ(例えば、画像捕捉デバイス122又はカメラ122)を備え得る。各車両は、破線で示されるように、無線通信パス1235を通して1つ又は複数のネットワークを介して(例えば、セルラネットワーク及び/又はインターネット等を経由して)リモートサーバ1230と通信し得る。各車両は、データをサーバ1230に送信し、データをサーバ1230から受信し得る。例えば、サーバ1230は、異なる時間に道路セグメント1200を走行中の複数の車両からデータを収集し得、収集されたデータを処理して、自律車両道路ナビゲーションモデル又はモデルへの更新を生成し得る。サーバ1230は、データをサーバ1230に送信した車両に、自律車両道路ナビゲーションモデル又はモデルの更新情報を送信し得る。サーバ1230は、後に道路セグメント1200を走行する他の車両に、自律車両道路ナビゲーションモデル又はモデルの更新情報を送信し得る。
車両1205、1210、1215、1220、及び1225が道路セグメント1200を走行する際、車両1205、1210、1215、1220、及び1225により収集(例えば、検出、検知、又は測定)されたナビゲーション情報は、サーバ1230に送信され得る。幾つかの実施形態では、ナビゲーション情報は、共通の道路セグメント1200に関連付けられ得る。ナビゲーション情報は、車両1205、1210、1215、1220、及び1225が道路セグメント1200を走行する際、各車両に関連付けられる軌道を含み得る。幾つかの実施形態では、軌道は、車両1205に提供される様々なセンサ及びデバイスにより検知されるデータに基づいて再構築され得る。例えば、軌道は、加速度計データ、速度データ、陸標データ、道路ジオメトリ又はプロファイルデータ、車両ポジショニングデータ、及び自己運動データの少なくとも1つに基づいて再構築され得る。幾つかの実施形態では、軌道は、加速度計等の慣性センサからのデータ及び速度センサにより検知される車両1205の速度に基づいて再構築され得る。加えて、幾つかの実施形態では、軌道は、カメラの検知された自己運動に基づいて決定され得(例えば、車両1205、1210、1215、1220、及び1225のそれぞれの車載プロセッサにより)、自己運動は、三次元並進及び/又は三次元回転(又は回転移動)を示し得る。カメラ(したがって、車体)の自己運動は、カメラにより捕捉される1つ又は複数の画像の分析から特定され得る。
幾つかの実施形態では、車両1205の軌道は、車両1205に搭載されて提供されるプロセッサにより決定され、サーバ1230に送信され得る。他の実施形態では、サーバ1230は、車両1205に提供される様々なセンサ及びデバイスにより検知されたデータを受信し、車両1205から受信されるデータに基づいて軌道を決定し得る。
幾つかの実施形態では、車両1205、1210、1215、1220、及び1225からサーバ1230に送信されるナビゲーション情報は、路面、道路ジオメトリ又は道路プロファイルに関するデータを含み得る。道路セグメント1200のジオメトリは、レーン構造及び/又は陸標を含み得る。レーン構造は、道路セグメント1200のレーン総数、レーンのタイプ(例えば、一方通行レーン、双方向レーン、運転レーン、追い越しレーン等)、レーン上のマーク、レーン幅等を含み得る。幾つかの実施形態では、ナビゲーション情報は、レーン割り当て、例えば、複数のレーンのいずれのレーンで車両が走行中であるかを含み得る。例えば、レーン割り当ては、車両が左又は右から3番目のレーンで走行中であることを示す数値「3」に関連付けられ得る。別の例として、レーン割り当ては、車両が中央レーンを走行中であることを示すテキスト値「中央レーン」に関連付けられ得る。
サーバ1230は、ハードドライブ、コンパクトディスク、テープ、メモリ等の非一時的コンピュータ可読媒体にナビゲーション情報を記憶し得る。サーバ1230は、複数の車両1205、1210、1215、1220、及び1225から受信されるナビゲーション情報に基づいて、共通の道路セグメント1200の自律車両道路ナビゲーションモデルの少なくとも一部を生成し(例えば、サーバ1230に含まれるプロセッサを通して)、疎な地図の一部としてモデルを記憶し得る。サーバ1230は、異なる時間に道路セグメントのレーンを走行する複数の車両(例えば、1205、1210、1215、1220、及び1225)から受信されるクラウドソーシングされたデータ(例えば、ナビゲーション情報)に基づいて、各レーンに関連付けられた軌道を特定し得る。サーバ1230は、クラウドソーシングされたナビゲーションデータに基づいて特定された複数の軌道に基づいて、自律車両道路ナビゲーションモデル又はモデルの一部(例えば、更新された部分)を生成し得る。図24に関して更に詳細に後述するように、サーバ1230は、後に車両のナビゲーションシステムにおいて提供される既存の自律車両道路ナビゲーションモデルを更新するように、道路セグメント1200を走行中の自律車両1205、1210、1215、1220、及び1225の1つ若しくは複数又は道路セグメントを走行する任意の他の自律車両に、モデル又はモデルの更新された部分を送信し得る。図26に関して更に後述するように、自律車両道路ナビゲーションモデルは、共通の道路セグメント1200に沿った自律ナビゲーションにおいて自律車両により使用され得る。
上記で説明されたように、自律車両道路ナビゲーションモデルは、疎な地図(例えば、図8に示される疎な地図800)に含め得る。疎な地図800は、道路に沿った道路ジオメトリ及び/又は陸標に関連するデータの疎な記録を含み得、疎な記録は、自律車両の自律ナビゲーションをガイドするのに十分な情報を提供しつつ、過度のデータ記憶を必要としない。幾つかの実施形態では、自律車両道路ナビゲーションモデルは、疎な地図800とは別個に記憶され得、モデルがナビゲーションのために実行されるとき、疎な地図800からの地図データを使用し得る。幾つかの実施形態では、自律車両道路ナビゲーションモデルは、疎な地図800に含まれる地図データを使用して、自律車両1205、1210、1215、1220、及び1225又は後に道路セグメント1200を走行する他の車両の自律ナビゲーションをガイドする、道路セグメント1200に沿った目標軌道を決定し得る。例えば、自律車両道路ナビゲーションモデルが、車両1205のナビゲーションシステムに含まれるプロセッサによって実行される場合、モデルは、プロセッサに、車両1205から受信されたナビゲーション情報に基づいて決定された軌道を、疎な地図800に含まれる所定の軌道と比較して、車両1205の現在の走行コースを検証及び/又は修正し得る。
自律車両道路ナビゲーションモデルでは、道路特徴又は目標軌道のジオメトリは、三次元空間内の曲線により符号化され得る。一実施形態では、曲線は、三次元多項式を結ぶ1つ又は複数を含む三次元スプラインであり得る。当業者は理解するように、スプラインは、データフィッティングのために一連の多項式により個々に定義される数学の関数であり得る。道路の三次元ジオメトリデータをフィッティングするスプラインは、線形スプライン(一次)、二次スプライン(二次)、三次スプライン(三次)、任意の他のスプライン(他の次数)、又はそれらの組合せを含み得る。スプラインは、道路の三次元ジオメトリデータのデータ点を結ぶ(例えば、フィッティングする)異なる次数の1つ又は複数の三次元多項式を含み得る。幾つかの実施形態では、自律車両道路ナビゲーションモデルは、共通の道路セグメント(例えば、道路セグメント1200)又は道路セグメント1200のレーンに沿った目標軌道に対応する三次元スプラインを含み得る。
上記で説明されたように、疎な地図に含まれる自律車両道路ナビゲーションモデルは、道路セグメント1200に沿った少なくとも1つの陸標の識別情報等の他の情報を含み得る。陸標は、車両1205、1210、1215、1220、及び1225のそれぞれに設置されるカメラ(例えば、カメラ122)の視野内で可視であり得る。幾つかの実施形態では、カメラ122は陸標の画像を捕捉し得る。車両1205に提供されるプロセッサ(例えば、プロセッサ180、190、又は処理ユニット110)は、陸標の画像を処理して、陸標の識別情報を抽出し得る。陸標の実際の画像ではなく、陸標識別情報を疎な地図800に記憶し得る。陸標識別情報に必要な記憶空間は、実際の画像に必要な記憶空間よりもはるかに小さくなり得る。他のセンサ又はシステム(例えば、GPSシステム)は、陸標の特定の識別情報(例えば、陸標の位置)を提供することもできる。陸標は、交通標識、矢印マーク、レーンマーク、破線レーンマーク、信号機、停止線、方向標識(例えば、矢印が方向を示す高速道路出口標識、矢印が様々な方向又は場所を指す高速道路標識)、陸標ビーコン、又は街灯柱の少なくとも1つを含み得る。陸標ビーコンは、車両がデバイスを通過すると、車両により受信されるビーコン及びデバイスの位置(例えば、デバイスのGPS位置から特定される)を自律車両道路ナビゲーションモデル及び/又は疎な地図800に含まれる陸標として使用し得るように、車両に設置された受信機に信号を送信又は反射する、道路セグメントに沿って設置されるデバイス(例えば、RFIDデバイス)を指す。
少なくとも1つの陸標の識別情報は、少なくとも1つの陸標の位置を含み得る。陸標の位置は、複数の車両1205、1210、1215、1220、及び1225に関連付けられたセンサシステム(例えば、全地球測位システム、慣性ベースの測位システム、陸標ビーコン等)を使用して実行される位置測定に基づいて特定され得る。幾つかの実施形態では、陸標の位置は、複数の運転を通して異なる車両1205、1210、1215、1220、及び1225のセンサシステムにより検出、収集、又は受信される位置測定の平均をとることにより特定され得る。例えば、車両1205、1210、1215、1220、及び1225は、位置測定データをサーバ1230に送信し得、サーバ1230は、位置測定の平均をとり、平均の位置測定を陸標の位置として使用し得る。陸標の位置は、続く運転で車両から受信される測定により連続して改良され得る。
陸標の識別情報は、陸標のサイズを含み得る。車両(例えば、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は車両速度であり、ωは画像長(物体幅のような)であり、Δωは、時間単位でのその画像長の変化である。
陸標の物理的サイズが既知である場合、陸標までの距離は、以下の式に基づいて特定することもできる:Z=f×W/ω、式中、fは焦点距離であり、Wは陸標のサイズ(例えば、高さ又は幅)、ωは、陸標が画像を出るときのピクセル数である。上記式から、距離Zの変化は、ΔZ=f×W×Δω/ω2+f×ΔW/ωを使用して計算され得、式中、ΔWは平均をとることによりゼロに低下し、式中、Δωは、画像でのバウンディングボックス精度を表すピクセル数である。陸標の物理的サイズを推定する値は、サーバ側での複数の観測の平均をとることにより計算され得る。距離推定での結果として生成される誤差は、非常に小さい値であり得る。上記公式を使用した場合、生じ得る2つの誤差源、すなわちΔW及びΔωがある。距離誤差へのそれらの寄与は、ΔZ=f×W×Δω/ω2+f×ΔW/ωにより与えられる。しかし、ΔWは平均をとることによりゼロに低下し、したがって、ΔZはΔω(例えば、画像内のバウンディングボックスの不正確性)により決定される。
未知の寸法の陸標の場合、陸標までの距離は、連続フレーム間の陸標上の特徴点を追跡することにより推定され得る。例えば、速度制限標識に現れる特定の特徴を2つ以上の画像フレーム間で追跡し得る。これらの追跡される特徴に基づいて、特徴点毎の距離分布を生成し得る。距離分布から、距離推定を抽出し得る。例えば、距離分布に最も頻繁に現れる距離は、距離推定として使用され得る。別の例として、距離分布の平均は、距離推定として使用され得る。
図13は、複数の三次元スプライン1301、1302、及び1303により表される自律車両道路ナビゲーションモデル例を示す。図13に示される曲線1301、1302、及び1303は、単に例示を目的とする。各スプラインは、複数のデータ点1310を結ぶ1つ又は複数の三次元多項式を含み得る。各多項式は、一次多項式、二次多項式、三次多項式、又は異なる次数を有する任意の適する多項式の組合せであり得る。各データ点1310は、車両1205、1210、1215、1220、及び1225から受信されるナビゲーション情報に関連付けられ得る。幾つかの実施形態では、各データ点1310は、陸標に関連するデータ(例えば、陸標のサイズ、位置、及び識別情報)及び/又は道路シグネチャプロファイルに関連するデータ(例えば、道路ジオメトリ、道路凹凸プロファイル、道路曲率プロファイル、道路幅プロファイル)に関連付けられ得る。幾つかの実施形態では、データ点1310によっては、陸標に関連するデータに関連付けられるものもあれば、道路シグネチャプロファイルに関連するデータに関連付けられるものもある。
図14は、5つの別個の運転情報(drive)から受信された生の位置データ1410(例えば、GPSデータ)を示す。別個の車両により同時に走行された場合、同じ車両により別個の時間に走行された場合、又は別個の時間に別個の車両により走行された場合、それぞれの運転情報は別個であり得る。位置データ1410におけるエラー及び同じレーン内の車両の異なる位置(例えば、ある車両は、別の車両よりレーンの左側により近い場所を運転し得る)を説明するために、サーバ1230は、1つ又は複数の統計学的技法を使用して、生の位置データ1410の変動が実際の分岐を表すか又は統計エラーを表すかを特定して地図スケルトン1420を生成し得る。スケルトン1420内の各経路は、その経路を形成した元の生データ1410にリンクし得る。例えば、スケルトン1420内のAとBとの間の経路は、運転情報2、3、4、及び5からの生データ1410にリンクされるが、運転情報1からの生データにリンクされない。スケルトン1420は、車両のナビゲーションに使用されるのに十分に詳細ではないことがある(例えば、上述したスプラインと異なり、同じ道路上の複数のレーンからの運転情報を結合するため)が、有用なトポロジー情報を提供し得、交差点の定義に使用され得る。
図15は、地図スケルトンのセグメント(例えば、スケルトン1420内のセグメントAからB)内の疎な地図のために追加の詳細を生成し得る例を示す。図15に示されるように、データ(例えば、自己運動データ、道路マークデータ等)は、運転情報に沿った位置S(又はS1又はS2)の関数として示され得る。サーバ1230は、運転情報1510の陸標1501、1503、及び1505と、運転情報1520の陸標1507及び1509との一意の一致を識別することにより、疎な地図の陸標を識別し得る。そのような照合アルゴリズムは、陸標1511、1513、及び1515を識別し得る。しかし、他の照合アルゴリズムも使用可能であることを当業者は認識する。例えば、一意の一致の代わりに又はそれと組み合わせて、確率最適化を使用し得る。図29に関して更に詳細に後述するように、サーバ1230は、運転情報を長手方向に位置合わせして、一致した陸標を位置合わせし得る。例えば、サーバ1230は、基準運転情報として1つの運転情報(例えば、運転情報1520)を選択し、次に他の運転情報(例えば、運転情報1510)を位置合わせのためにシフト及び/又は弾性的に伸張し得る。
図16は、疎な地図で使用される位置合わせされた陸標データの例を示す。図16の例では、陸標1610は、道路標識を含む。図16の例は、複数の運転1601、1603、1605、1607、1609、1611、及び1613からのデータを更に示す。図16の例では、運転1613からのデータは、「ゴースト」陸標からなり、サーバ1230は、運転1601、1603、1605、1607、1609、及び1611のいずれも、運転1613において識別された陸標の近傍に陸標の識別情報を含まないため、「ゴースト」陸標としてそれを識別し得る。したがって、サーバ1230は、陸標が出現する画像の、陸標が出現しない画像に対する比率が閾値を超える場合、陸標候補を受け入れることができ、及び/又は陸標が出現しない画像の、陸標が出現する画像に対する比率が閾値を超える場合、陸標候補を拒絶し得る。
図17は、疎な地図のクラウドソーシングに使用し得る運転データを生成するシステム1700を示す。図17に示されるように、システム1700は、カメラ1701及び位置特定デバイス1703(例えば、GPSロケータ)を含み得る。カメラ1701及び位置特定デバイス1703は、車両(例えば、車両1205、1210、1215、1220、及び1225の1つ)に搭載され得る。カメラ1701は、複数のタイプの複数のデータ、例えば自己運動データ、交通標識データ、道路データ等を生成し得る。カメラデータ及び位置データは、運転セグメント1705にセグメント化され得る。例えば、運転セグメント1705は、それぞれ1km未満の運転情報からのカメラデータ及び位置データを有し得る。
幾つかの実施形態では、システム1700は、運転セグメント1705における冗長性を除去し得る。例えば、陸標がカメラ1701からの複数の画像に出現する場合、システム1700は、運転セグメント1705がその陸標の位置の1つのコピーのみ及びその陸標に関連する任意のメタデータを含むように冗長データを剥ぎ取り得る。更なる例として、レーンマークがカメラ1701からの複数の画像に出現する場合、システム1700は、運転セグメント1705がそのレーンマークの位置の1つのコピーのみ及びそのレーンマークに関連する任意のメタデータを含むように冗長データを剥ぎ取り得る。
システム1700は、サーバ(例えば、サーバ1230)も含む。サーバ1230は、運転セグメント1705を車両から受信し、運転セグメント1705を1つの運転情報1707に再結合し得る。そのような構成により、サーバが運転全体に関連するデータを記憶できるようにしながら、車両とサーバとの間でデータを転送するときの帯域幅要件を低減することが可能になり得る。
図18は、疎な地図をクラウドソーシングするように更に構成された図17のシステム1700を示す。図17と同様に、システム1700は、車両1810を含み、車両1810は、例えば、カメラ(例えば、自己運動データ、交通標識データ、道路データ等を生成する)及び位置特定デバイス(例えば、GPSロケータ)を使用して運転データを捕捉する。図17と同様に、車両1810は、収集されたデータを運転セグメント(図18では「DS1 1」、「DS2 1」、「DSN 1」として示されている)にセグメント化する。サーバ1230は、次に運転セグメントを受信し、受信されたセグメントから運転情報(図18では「運転1」として示されている)を再構築する。
図18に更に示されるように、システム1700は、追加の車両からもデータを受信する。例えば、車両1820も、例えば、カメラ(例えば、自己運動データ、交通標識データ、道路データ等を生成する)及び位置特定デバイス(例えば、GPSロケータ)を使用して運転データを捕捉する。車両1810と同様に、車両1820も、収集されたデータを運転セグメント(図18では「DS1 2」、「DS2 2」、「DSN 2」として示されている)にセグメント化する。サーバ1230は、次に運転セグメントを受信し、受信されたセグメントから運転情報(図18では「運転2」として示されている)を再構築する。任意の数の追加の車両を使用し得る。例えば、図18は、運転データを捕捉し、運転データを運転セグメント(図18では「DS1 N」、「DS2 N」、「DSN N」として示されている)にセグメント化し、運転情報(図18では「運転N」として示されている)の再構築のためにサーバ1230に送信する「車N」も含む。
図18に示されているように、サーバ1230は、複数の車両(例えば、「車1」(車両1810とも記される)、「車2」(車両1820とも記される)、及び「車N」)から収集した、再構築された運転情報(例えば、「運転1」、「運転2」、及び「運転N」)を使用して疎な地図(「地図」として示される)を構築し得る。
図19は、道路セグメントに沿った自律車両ナビゲーションのための疎な地図を生成するプロセス例1900を示すフローチャートである。プロセス1900は、サーバ1230に含まれる1つ又は複数の処理デバイスによって実行され得る。
プロセス1900は、1つ又は複数の車両が道路セグメントを走行する際に取得された複数の画像を受信すること(ステップ1905)を含み得る。サーバ1230は、車両1205、1210、1215、1220、及び1225の1つ又は複数内に含まれるカメラから画像を受信し得る。例えば、カメラ122は、車両1205が道路セグメント1200に沿って走行する際、車両1205の周囲環境の1つ又は複数の画像を捕捉し得る。幾つかの実施形態では、サーバ1230は、図17に関して上述したように、車両1205のプロセッサにより冗長性を除去した必要最低限の画像データを受信することもできる。
プロセス1900は、複数の画像に基づいて、道路セグメントに沿って延びる路面特徴の少なくとも1つの線表現を識別すること(ステップ1910)を更に含み得る。各線表現は、路面特徴に実質的に対応する道路セグメントに沿った経路を表し得る。例えば、サーバ1230は、カメラ122から受信された環境画像を分析して道路縁部又はレーンマークを識別し、且つ道路縁部又はレーンマークに関連付けられた道路セグメント1200に沿った走行軌道を特定し得る。幾つかの実施形態では、軌道(又は線表現)は、スプライン、多項式表現、又は曲線を含み得る。サーバ1230は、ステップ1905において受信されたカメラ自己運動(例えば、三次元並進移動及び/又は三次元回転移動)に基づいて車両1205の走行軌道を特定し得る。
プロセス1900は、複数の画像に基づいて、道路セグメントに関連付けられた複数の陸標を識別すること(ステップ1910)も含み得る。例えば、サーバ1230は、カメラ122から受信された環境画像を分析して、道路セグメント1200に沿った道路標識等の1つ又は複数の陸標を識別し得る。サーバ1230は、1つ又は複数の車両が道路セグメントを走行する際に取得された複数の画像の分析を使用して陸標を識別し得る。クラウドソーシングを可能にするために、分析は、道路セグメントに関連付けられた陸標候補の許容又は拒絶に関するルールを含み得る。例えば、分析は、陸標が出現する画像の、陸標が出現しない画像に対する比率が閾値を超える場合、陸標候補を受け入れ、及び/又は陸標が出現しない画像の、陸標が出現する画像に対する比率が閾値を超える場合、陸標候補を拒絶することを含み得る。
プロセス1900は、サーバ123によって実行される他の動作又はステップを含み得る。例えば、ナビゲーション情報は、道路セグメントに沿って走行する車両の目標軌道を含み得、プロセス1900は、サーバ1230により、道路セグメントを走行中の複数の車両に関連する車両軌道をクラスタ化し、更に詳細に後述するように、クラスタ化された車両軌道に基づいて目標軌道を特定することを含み得る。車両軌道をクラスタ化することは、サーバ1230により、車両の絶対的進行方位又は車両のレーン割り当ての少なくとも一方に基づいて、道路セグメントを走行中の車両に関連する複数の軌道を複数のクラスタにクラスタ化することを含み得る。目標軌道を生成することは、サーバ1230により、クラスタ化された軌道を平均化することを含み得る。
更なる例として、プロセス1900は、図29に関して更に詳細に後述するように、ステップ1905において受信されたデータを位置合わせすることを含み得る。上述したサーバ1230によって実行される他のプロセス又はステップをプロセス1900に含めることもできる。
開示されるシステム及び方法は、他の特徴を含み得る。例えば、開示されるシステムは、グローバル座標ではなくローカル座標を使用し得る。自律運転では、幾つかのシステムは世界座標でデータを提示し得る。例えば、地球表面での緯度及び経度座標を使用し得る。地図を使用して操舵するために、ホスト車両は、地図の対するホスト車両の位置及び向きを特定し得る。搭載されたGPSデバイスを使用して、地図において車両を位置特定し、車体基準系と世界基準系(例えば、北東下)との間の回転変換を見つけることが自然に見える。車体基準系が地図基準系と位置合わせされると、所望ルートを車体基準系で表すことができ、操舵コマンドを計算又は生成し得る。
しかし、この戦略に伴って生じ得る一問題は、現在のGPS技術が通常、車体位置及び姿勢を十分な精度及び可用性で提供しないことである。この問題を解消するために、世界座標が既知の陸標を使用して、異なる種類の陸標を含む非常に詳細な地図(高精細地図又はHD地図と呼ばれる)を構築することできる。したがって、センサを備えた車両は、それ自体の基準系で陸標を検出し位置特定することができる。車両と陸標との相対位置が見つけられると、陸標の世界座標がHD地図から特定され得、車両は、陸標の世界座標を使用してそれ自体の位置及び姿勢を計算することができる。
それにも関わらず、この方法は、地図と車体基準系との位置合わせを確立する媒介者としてグローバル世界座標系を使用し得る。すなわち、陸標を使用して、車載されたGPSデバイスの制限を補償することができる。陸標は、HD地図と共に、グローバル座標において精密な車両姿勢を計算できるようにし得、したがって地図−車体位置合わせ問題が解決される。
開示されるシステム及び方法では、世界の1つのグローバル地図の代わりに、多くの地図又はローカル地図を自律ナビゲーションに使用し得る。各地図又は各ローカル地図は、それ自体の座標系を定義し得る。これらの座標系は任意であり得る。ローカル地図での車両の座標は、車両が地球表面でどこにあるかを示す必要がないことがある。更に、ローカル地図は、大規模にわたり正確である必要がないことがあり、ローカル地図をグローバル世界座標系に組み込むことができる厳正な変換がなくてもよいことを意味する。
世界のこの表現に関連する2つの主なプロセスがある:一方は、地図の生成に関連し、他方は、地図の使用に関連する。地図生成に関して、このタイプの表現は、クラウドソーシングにより作成され維持され得る。HD地図の使用は制限され、したがって、クラウドソーシングが実現可能になるため、高度な調査機器を適用する必要がないことがある。使用に関して、標準世界座標系を経由せずにローカル地図を車体基準系に位置合わせする効率的な方法を利用し得る。したがって、少なくとも大半のシナリオ及び状況において、グローバル座標での車両の位置及び姿勢の精密な推定を有する必要がないことがあり得る。更に、ローカル地図のメモリフットプリントは、非常に小さく保たれ得る。
地図生成の基本となる原理は、自己運動の積分である。車両は、空間におけるカメラの移動(3D並進及び3D回転)を検知することができる。車両又はサーバは、時間にわたり自己運動を積分することにより、車両の軌道を再構築し得、この積分経路は、道路ジオメトリのモデルとして使用され得る。このプロセスは、短距離レーンマークの検知と組合せ得、そうすると、再構築されたルートは、車両が辿った特定の経路ではなく、車両が辿るべき経路を反映し得る。換言すれば、再構築ルート又は軌道は、短距離レーンマークに関連する検知データに基づいて変更され得、変更された推奨軌道を再構築軌道又は目標軌道として使用し得、これは、同じ道路セグメントを移動する他の車両が使用するために道路モデル又は疎な地図に保存され得る。
幾つかの実施形態では、地図座標系は任意であり得る。カメラ基準系は、任意の時間に選択され得、地図の座標原点として使用され得る。カメラの積分軌道は、その特定の選ばれたフレームの座標系で表現され得る。地図でのルート座標の値は、地上での場所をそのまま表すわけではないことがある。
積分経路は、誤差を蓄積し得る。これは、自己運動の検知が絶対的に正確ではない場合があることに起因し得る。蓄積誤差の結果は、ローカル地図が逸脱し得、ローカル地図がグローバル地図のローカルコピーとしてみなされない場合があることである。ローカル地図のサイズが大きいほど、地上の「真」のジオメトリからのずれは大きくなる。
ローカル地図の恣意性及び逸脱は、クラウドソーシング(例えば、道路に沿って走行する車両による)で地図を構築するために適用し得る積分方法の結果でない場合がある。しかし、車両は、操舵にローカル地図を問題なく使用し得る。
地図は、長距離にわたり逸脱し得る。地図は車両のごく近くでの軌道の計画に使用されるため、逸脱の影響は許容可能であり得る。任意の瞬間において、システム(例えば、サーバ1230又は車両1205)は、位置合わせ手順を繰り返し、地図を使用して、何らかの1.3秒先(又は1.5秒、1.0秒、1.8秒等の任意の他の秒数)の道路位置を予測し得る(カメラ座標系において)。この距離にわたる蓄積誤差が十分に小さい限り、自律運転に提供される操舵コマンドを使用し得る。
幾つかの実施形態では、ローカル地図は、ローカルエリアにフォーカスし得、広過ぎるエリアをカバーしないことがある。これは、自律運転での操舵にローカル地図を使用している車両が、ある時点で地図の終わりに到達し得、地図の別のローカル部分又はセグメントに切り替える必要があり得ることを意味する。切り替えは、互いに重複するローカル地図により可能になり得る。車両が、両地図に共通するエリアに入ると、システム(例えば、サーバ1230又は車両1205)は、第1のローカル地図(使用中の地図)に基づいて操舵コマンドを引き続き生成し得るが、同時に、システムは、第1のローカル地図と重複する他方の地図(すなわち第2のローカル地図)上で車両を位置特定し得る。換言すれば、システムは、カメラの現在の座標系を第1の地図の座標系及び第2の地図の座標系の両方と同時に位置合わせし得る。新しい位置合わせが確立されると、システムは、他方の地図に切り替え、他方の地図で車両の軌道を計画し得る。
開示されるシステムは、追加の特徴を含み得、そのうちの1つは、システムが車両の座標系を地図に位置合わせする方法に関連する。上述したように、車両が陸標への相対位置を測定し得ると仮定して、位置合わせにその陸標を使用し得る。これは自律運転で有用であるが、ときに、大量の陸標、したがって大きいメモリフットプリントを必要とすることになり得る。したがって、開示されるシステムは、この問題に対処する位置合わせ手順を使用し得る。この位置合わせ手順では、システムは、疎な陸標及び自己速度の積分を使用して、道路に沿った車両の位置の1D推定子を計算し得る。システムは、他のセクションで以下に詳細に考察するテール位置合わせ方法を使用して、軌道自体の形状を使用して、位置合わせの回転部分を計算し得る。したがって、車両は、「テール」を運転しながら、それ自体の軌道を再構築し、道路に沿ったその仮定位置周囲の回転を計算して、テールを地図と位置合わせするができる。そのような位置合わせ手順は、図29に関して後述するクラウドソーシングされたデータの位置合わせと区別される。
開示されるシステム及び方法では、GPSデバイスをなお使用し得る。グローバル座標は、軌道及び/又は陸標を記憶するデータベースのインデックス付けに使用され得る。関連するローカル地図及び車両の近傍での関連する陸標は、メモリに記憶され得、グローバルGPS座標を使用してメモリから検索され得る。しかし、幾つかの実施形態では、グローバル座標は、経路計画に使用されず、正確ではないことがある。一例では、グローバル座標の使用は、情報のインデックス付けに制限され得る。
「テール位置合わせ」が良好に機能できない状況では、システムは、より多数の陸標を使用して車両の姿勢を計算し得る。これは希なケースであり得、したがって、メモリフットプリントへの影響はそれ程大きくないことがある。交差点はそのような状況の例である。
開示されるシステム及び方法は、意味的陸標(例えば、交通標識)を使用し得、なぜなら、意味的陸標は、シーンから高い信頼性で検出され、道路モデル又は疎な地図に記憶されている陸標に一致し得るためである。幾つかの場合、開示されるシステムは、非意味的陸標(例えば、汎用標識)も同様に使用し得、そのような場合、非意味的陸標は、上述したように、外観シグネチャに対応づけられる。システムは、「同じか否か」認識の枠組みに従う、シグネチャ生成の学習法法を使用し得る。
例えば、図14に関して上記で考察されたように、運転に沿ったGPS座標を有する多くの運転情報を所与として、開示されるシステムは、土台をなす道路構造交差点及び道路セグメントを生成し得る。道路は、GPSを使用して道路を区別することができるように、互いから十分に離れていると仮定し得る。幾つかの実施形態では、粗い粒度の地図のみが必要とされ得る。土台をなす道路構造グラフを生成するために、空間は、所与の解像度(例えば、50m×50m)の格子に分割され得る。あらゆる運転情報は、格子サイトの順序付きリストとして見ることができる。システムは、運転情報に属するあらゆる格子サイトに色を付けて、統合運転の画像を生成し得る。有色格子点は、統合運転でのノードとして表現され得る。あるノードから別のノードに渡る運転は、リンクとして表現され得る。システムは、画像の小さい穴を埋めて、レーンが分かれてしまうことを回避し、GPS誤差を修正し得る。システムは、適する細線化アルゴリズム(例えば、「Zhang-Suen」細線化アルゴリズムという名称のアルゴリズム)を使用して、画像の骨組みを取得し得る。この骨組みは、土台をなす道路構造を表し得、交差点はマスク(例えば、少なくとも3つの他の点に接続する点)を使用して見つけ得る。交差点を見つけた後、セグメントは、交差点に接続する骨組み部分であり得る。運転情報を再び骨組みに一致させるために、システムは隠れマルコフモデルを使用し得る。格子サイトからGPS点への距離に反比例する確率で、あらゆるGPS点が格子サイトに関連付けられ得る。連続したGPS点を非隣接格子サイトに一致にさせないように、適するアルゴリズム(例えば、「ビタビ」アルゴリズムという名称のアルゴリズム)を使用して、GPS点を格子サイトに一致させる。
運転情報を再び地図にマッピングするために、複数の方法が使用可能である。例えば、第1の解決策は、細線化プロセス中、トラックを保持することを含み得る。第2の解決策は、近接性マッチングを使用し得る。第3の解決策は、隠れマルコフモデルを使用し得る。隠れマルコフモデルは、あらゆる観測の土台をなす隠れた状態を仮定し、状態を所与として所与の観測に、及び前の状態を所与として状態に、確率を割り当てる。ビタビアルゴリズムを使用して、観測リストを所与として、最も確率の高い状態を見つけ得る。
開示されるシステム及び方法は、追加の特徴を含み得る。例えば、開示されるシステム及び方法は、高速道路入口/出口を検出し得る。同じエリアの複数の運転情報は、GPSデータを使用して同じ座標系に統合され得る。システムは、マッピング及び位置特定に視覚的特徴点を使用し得る。
幾つかの実施形態では、汎用視覚的特徴は、以前の運転で道路の同じ区間を走行する車両により生成された地図(マッピングフェーズ)に対する、ある運転での移動中の車両の位置及び向きを登録する(位置特定フェーズ)目的で、陸標として使用され得る。これらの車両は、周囲の車両を撮像する較正済みカメラ及びGPS受信機を備え得る。車両は、他の有意な幾何学的情報及び意味的情報(例えば、レーン構造、道路標識のタイプ及び位置、道路マークのタイプ及び位置、物理的障害物の位置により区切られる付近の運転可能地表エリアの形状、人間ドライバーにより制御される場合、以前に運転された車両経路の形状等)に結び付けられたこれらの視覚的陸標を含む最新地図を保持する中央サーバ(例えば、サーバ1230)と通信し得る。道路の長さ当たりで中央サーバと車両との間で通信され得るデータの総量は、マッピングフェーズ及び位置特定フェーズの両方で小さい。
マッピングフェーズでは、開示されるシステム(例えば、自律車両及び/又は1つ若しくは複数のサーバ)は、特徴点(FP)を検出し得る。特徴点は、陸標等の関連付けられた物体を追跡するために使用される1つ又は複数の点を含み得る。例えば、停止標識のコーナーを構成する8つの点が特徴点であり得る。開示されるシステムは、FPに関連付けられた記述子を更に計算し得る(例えば、FAST(accelerated segment test)検出器、BRISK(binary robust invariant scalable keypoints)検出器、BRIEF(binary robust independent elementary features)検出器、及び/又は方向付きFAST及び回転BRIEF(ORB)検出器からの特徴を使用して、又はトレーニングライブラリを使用してトレーニングされた検出器/記述子対を使用して)。システムは、画像平面における動きを使用し、例えば記述子空間内のユークリッド距離又はハミング距離を使用して、関連付けられた記述子を照合することにより、出現するフレーム間でFPを追跡し得る。システムは、追跡されたFPを使用して、カメラの動き及びFPが検出され且つ追跡された物体の世界位置を推定し得る。例えば、追跡されたFPを使用して、車両の動き及び/又はFPが最初に検出された陸標の位置を推定し得る。
システムは、将来の運転で検出される可能性が高いもの又は低いものとしてFPを更に分類し得る(例えば、つかの間に移動中の物体、駐車車両、及び影のテクスチャで検出されたFPは、将来の運転で再出現する可能性が低い)。この分類は、再現性分類(RC)と呼ぶことができ、検出されたFPの周囲のピラミッド領域における光の強度、画像平面において追跡されるFPの運動、及び/又は十分に検出され追跡された視点の広がりの関数であり得る。幾つかの実施形態では、車両は、FPに関連付けられた記述子、FPの車両に相対する推定3D位置、及びFP検出/追跡時の瞬間的車両GPS座標をサーバ1230に送信し得る。
マッピングフェーズ中、マッピング車両と中央サーバとの間の通信帯域幅が制限される場合、車両は、地図中のFP又は他の意味的陸標(道路標識及びレーン構造等)の存在が限られ、位置特定目的では不十分である場合、FPをサーバに高周波数で送信し得る。更に、マッピングフェーズにおける車両は、一般に、FPをサーバに低空間周波数で送信し得るが、サーバにおいてFPを集積し得る。再出現するFPの検出は、サーバによって実行することもでき、サーバは、再出現するFPの組を記憶し、及び/又は再出現しないFPを破棄し得る。陸標の視覚的出現は、少なくとも幾つかの場合、陸標が捕捉された日時又は季節の影響を受け得る。したがって、FPの再現確率を上げるために、サーバは、受信FPを日時ビン、季節ビン等にグループ分けし得る。幾つかの実施形態では、車両は、FPに関連付けられた他の意味的情報及び地理情報(例えば、レーン形状、道路平面の構造、障害物の3D位置、マッピングクリップ瞬間座標系での自由空間、セットアップ運転で駐車位置まで人間であるドライバーが運転した経路等)をサーバに送信することもできる。
位置特定フェーズにおいて、サーバは、FP位置の形態の陸標及び記述子を含む地図を1つ又は複数の車両に送信し得る。特徴点(FP)は、現在連続フレームの組内の車両により準リアルタイムで検出及び追跡され得る。追跡されたFPを使用して、カメラの動き及び/又は陸標等の関連付けられた物体の位置を推定し得る。検出されたFP記述子を検索して、地図に含まれ、車両の現在のGPS読み取り値から推定有限GPS不確実性半径内にGPS座標を有するFPのリストを照合し得る。照合は、記述子空間においてユークリッド距離又はハミング距離を最小化する現在のFPとマッピングFPとの全ての対を検索することにより行い得る。FP一致並びにそれらの現在位置及び地図位置を使用して、車両は、瞬間的車両位置とローカル地図座標系との間で回転及び/又は並進を行い得る。
開示されるシステム及び方法は、再現可能な分類器をトレーニングする方法を含み得る。トレーニングは、ラベルコスト及びその結果として分類器精度が上がる順に以下の方式の1つで実行され得る。
第1の方式では、一致した瞬間的車両GPS位置を有する車両カメラにより記録された多数のクリップを含むデータベースを収集し得る。このデータベースは、運転の代表的サンプル(様々な特性に関して、例えば、時刻、季節、天候状況、道路のタイプ)を含み得る。同様のGPS位置及び進行方位での様々な運転のフレームから抽出された特徴点(FP)は、GPS不確実性半径内で潜在的に一致し得る。一致しなかったFPは、非再現可能とラベルされ得、一致したFPは、再現可能とラベルされ得る。次に、分類器は、画像ピラミッドでのFPの外観、車両に対するFPの瞬間位置、及びFPが問題なく追跡された視点位置の広がりを所与として、FPの再現可能性ラベルを予測するようにトレーニングされ得る。
第2の方式では、第1の方式で説明されたクリップデータベースから抽出されたFP対は、クリップ間のFP一致の注釈付けを担当する人間によりラベル付けることもできる。
第3のシナリオでは、第1の方式のデータベースを、光LIDAR(Light Detection And Ranging)測定を使用して、精密な車両位置、車両向き、及び画像ピクセル深度で増補したデータベースを使用して、異なる運転での世界位置を正確に一致させ得る。次に、特徴点記述子は、異なる視点及び運転時刻でのこれらの世界点に対応する画像領域で計算され得る。次に、分類器は、一致した記述子からの、記述子が配置される記述子空間での平均距離を予測するようにトレーニングされ得る。この場合、再現可能性は、低記述子距離を有する可能性が高いことにより測定され得る。
開示される実施形態によれば、システムは、共通の道路セグメントを走行する車両の観測軌道(例えば、車両によりサーバに転送される軌道情報に対応し得る)に基づいて、自律車両道路ナビゲーションモデルを生成し得る。しかし、観測された軌道は、道路セグメントを走行している車両によりとられる実際の軌道に対応しないことがある。むしろ、特定の状況では、サーバにアップロードされる軌道は、車両により決定される実際の再構築軌道から変更され得る。例えば、車両システムは、実際にとられた軌道を再構築する間、センサ情報(例えば、カメラにより提供される画像の分析)を使用して、それ自体の軌道が、道路セグメントにとって好ましい軌道ではない可能性があると特定し得る。例えば、車両は、車載カメラからの画像データに基づいて、レーンの中心を運転していないか、又は所定の時間期間にわたりレーン境界を越えたと特定し得る。そのような場合、センサ出力から導出される情報に基づいて、特に、車両の再構築軌道(走行した実際の経路)への改良を行い得る。次に、実際の軌道ではなく、改良された軌道をサーバにアップロードして、疎なデータ地図800の構築又は更新に潜在的に使用し得る。
幾つかの実施形態では、次に、車両(例えば、車両1205)に含まれるプロセッサは、1つ又は複数のセンサからの出力に基づいて車両1205の実際の軌道を特定し得る。例えば、カメラ122から出力された画像の分析に基づいて、プロセッサは、道路セグメント1200に沿った陸標を識別し得る。陸標は、交通標識(例えば、速度制限標識)、方向標識(例えば、異なるルート又は場所を指す高速道路方向標識)、及び一般標識(例えば、配色等の固有の署名に関連付けられた矩形ビジネス標識)を含み得る。識別された陸標は、疎な地図800に記憶された陸標と比較され得る。一致が見つかる場合、疎な地図800に記憶された陸標の位置を、識別された陸標の位置として使用し得る。識別された陸標の位置は、目標軌道に沿った車両1205の位置を特定するのに使用され得る。幾つかの実施形態では、プロセッサは、GPSユニット1710により出力されたGPS信号に基づいて車両1205の位置を特定することもできる。
プロセッサは、サーバ1230に送信する目標軌道を特定することもできる。目標軌道は、センサ出力に基づいてプロセッサにより特定された実際の軌道と同じであり得る。しかし、幾つかの実施形態では、目標軌道は、センサ出力に基づいて特定された実際の軌道と異なり得る。例えば、目標軌道は、実際の軌道への1つ又は複数の変更を含み得る。
一例では、カメラ122からのデータが、レーンを変更する車両1250の100m先にある一時的なレーンシフト障壁等の障壁を含む場合(例えば、先にある工事又は事故に起因してレーンが一時的にシフトされる場合)、プロセッサは、画像から一時的レーンシフト障壁を検出し、一時的なレーンシフトに準拠して道路モデル又は疎な地図に記憶された目標軌道に対応するレーンと異なるレーンを選択し得る。車両の実際の軌道は、このレーン変更を反映し得る。しかし、レーンシフトが一時的であり、例えば10分後、15分後、又は30分後にクリアされ得る場合、車両1205は、目標軌道が、車両1205が辿った実際の軌道と異なるべきであることを反映するように、車両1205が辿った実際の軌道(すなわちレーンシフト)を変更し得る。例えば、システムは、走行した経路が、道路セグメントに好ましい軌道と異なることを認識し得る。したがって、システムは、軌道情報をサーバにアップロードする前に、再構築された軌道を調整し得る。
他の実施形態では、実際の再構築された軌道情報は、アップロードされ得、1つ又は複数の推奨軌道の改良(例えば、再構築された軌道の少なくとも一部に行われるべき並進のサイズ及び方向)もアップロードされ得る。幾つかの実施形態では、プロセッサ1715は、変更された実際の軌道をサーバ1230に送信し得る。サーバ1230は、受信情報に基づいて目標軌道を生成又は更新し得、図24に関して更に詳細に後述するように、後に同じ道路セグメントを走行する他の自律車両に目標軌道を送信し得る。
別の例として、環境画像は、道路セグメント1200に突然現れる歩行者等の物体を含み得る。プロセッサは、歩行者を検出し得、車両1205は、歩行者との衝突を回避するようにレーンを変更し得る。検知されたデータに基づいて車両1205が再構築する実際の軌道は、レーンの変更を含み得る。しかし、歩行者は直ちに道路を去り得る。したがって、車両1205は、目標軌道が、とられた実際の軌道と異なるべきであることを反映するように、実際の軌道を変更(又は推奨変更を決定)し得る(歩行者の出現は、目標軌道決定のために考慮されるべきではない一時的な状況であるため)。幾つかの実施形態では、車両は、実際の軌道が変更される場合、所定の軌道からの一時的な逸脱を示すデータをサーバに送信し得る。データは、逸脱の原因を示し得るか、又はサーバはデータを分析して逸脱の原因を特定し得る。逸脱の原因を知ることは有用であり得る。例えば、逸脱が、最近発生した事故にドライバーが気付いたことに起因し、それに応答して、衝突を回避するように車輪を操舵する場合、サーバは、逸脱の原因に基づいて、より穏やかな調整をモデルに計画し得るか、又は道路セグメントに関連付けられた特定の軌道を計画し得る。別の例として、逸脱の原因が、道路を横断している歩行者である場合、サーバは、将来、軌道を変更する必要がないと特定し得る。
更なる例として、環境画像は、車両1205が、恐らく人間ドライバーの制御下で、レーンのわずか外側を運転中であることを示すレーンマークを含み得る。プロセッサは、捕捉画像からレーンマークを検出し得、レーンからのずれを考慮するように車両1205の実際の軌道を変更し得る。例えば、観測されるレーンの中心内にあるように、並進を再構築軌道に適用し得る。
クラウドソーシングされた疎な地図の配信
開示されるシステム及び方法は、高価な調査機器を用いずに自律車両自体により収集され得る低フットプリントモデルの自律車両ナビゲーション(例えば、操舵制御)を可能にし得る。自律ナビゲーション(例えば、操舵アプリケーション)をサポートするために、道路モデルは、モデルに含まれる軌道に沿った車両のロケーション又は位置の特定に使用し得る道路のジオメトリ、そのレーン構造、及び陸標を有する疎な地図を含み得る。上述したように、疎な地図の生成は、道路を走行中の車両と通信し、車両からデータを受信するリモートサーバによって実行され得る。データは、検知データ、検知データに基づいて再構築された軌道、及び/又は変更された再構築軌道を表し得る推奨軌道を含み得る。後述するように、サーバは、自律ナビゲーションを支援するために、車両又は道路を後に走行する他の車両にモデルを送信し得る。
図20は、サーバ1230のブロック図を示す。サーバ1230は、通信ユニット2005を含み得、通信ユニット2005は、ハードウェア構成要素(例えば、通信制御回路、スイッチ、及びアンテナ)及びソフトウェア構成要素(例えば、通信プロトコル、コンピュータコード)の両方を含み得る。例えば、通信ユニット2005は、少なくとも1つのネットワークインタフェースを含み得る。サーバ1230は、通信ユニット2005を通して車両1205、1210、1215、1220、及び1225と通信し得る。例えば、サーバ1230は、通信ユニット2005を通して、車両1205、1210、1215、1220、及び1225から送信されたナビゲーション情報を受信し得る。サーバ1230は、通信ユニット2005を通して、自律車両道路ナビゲーションモデルを1つ又は複数の自律車両に配信し得る。
サーバ1230は、ハードドライブ、コンパクトディスク、テープ等の少なくとも1つの非一時的記憶媒体2010を含み得る。記憶装置1410は、車両1205、1210、1215、1220、及び1225から受信されたナビゲーション情報及び/又はサーバ1230がナビゲーション情報に基づいて生成する自律車両道路ナビゲーションモデル等のデータを記憶するように構成され得る。記憶装置2010は、疎な地図(例えば、図8に関して上述した疎な地図800)等の任意の他の情報を記憶するように構成され得る。
記憶装置2010への追加又は代替として、サーバ1230はメモリ2015を含み得る。メモリ2015は、メモリ140又は150と同様であるか又は異なり得る。メモリ2015は、フラッシュメモリ、ランダムアクセスメモリ等の非一時的メモリであり得る。メモリ2015は、プロセッサ(例えば、プロセッサ2020)によって実行可能なコンピュータコード又は命令、地図データ(例えば、疎な地図800のデータ)、自律車両道路ナビゲーションモデル、及び/又は車両1205、1210、1215、1220、及び1225から受信されるナビゲーション情報等のデータを記憶するように構成され得る。
サーバ1230は、メモリ2015に記憶されたコンピュータコード又は命令を実行して様々な機能を実行するように構成される少なくとも1つの処理デバイス2020を含み得る。例えば、処理デバイス2020は、車両1205、1210、1215、1220、及び1225から受信されたナビゲーション情報を分析し、分析に基づいて自律車両道路ナビゲーションモデルを生成し得る。処理デバイス2020は、通信ユニット1405を制御して、自律車両道路ナビゲーションモデルを1つ又は複数の自律車両(例えば、車両1205、1210、1215、1220、及び1225の1つ若しくは複数又は後に道路セグメント1200を走行する任意の車両)に配信し得る。処理デバイス2020は、プロセッサ180、190、又は処理ユニット110と同様であるか又は異なり得る。
図21は、メモリ2015のブロック図を示し、メモリ2015は、自律車両ナビゲーションに使用される道路ナビゲーションモデルを生成する1つ又は複数の動作を実行するコンピュータコード又は命令を記憶し得る。図21に示されるように、メモリ2015は、車両ナビゲーション情報を処理する動作を実行する1つ又は複数のモジュールを記憶し得る。例えば、メモリ2015は、モデル生成モジュール2105及びモデル配信モジュール2110を含み得る。プロセッサ2020は、メモリ2015に含まれるモジュール2105及び2110のいずれかに記憶された命令を実行し得る。
モデル生成モジュール2105は、プロセッサ2020によって実行されると、車両1205、1210、1215、1220、及び1225から受信されるナビゲーション情報に基づいて、共通の道路セグメント(例えば、道路セグメント1200)の自律車両道路ナビゲーションモデルの少なくとも一部を生成し得る命令を記憶し得る。例えば、自律車両道路ナビゲーションモデルを生成するに当たり、プロセッサ2020は、共通の道路セグメント1200に沿った車両軌道を、異なるクラスタにクラスタ化し得る。プロセッサ2020は、異なるクラスタのそれぞれのクラスタ化された車両軌道に基づいて、共通の道路セグメント1200に沿った目標軌道を決定し得る。そのような動作は、各クラスタ内のクラスタ化された車両軌道の平均値又は平均軌道を見つけること(例えば、クラスタ化された車両軌道を表すデータの平均をとることにより)を含み得る。幾つかの実施形態では、目標軌道は、共通の道路セグメント1200の単一レーンに関連付けられ得る。
自律車両道路ナビゲーションモデルは、共通の道路セグメント1200の別個のレーンにそれぞれ関連付けられた複数の目標軌道を含み得る。幾つかの実施形態では、目標軌道は、道路セグメント1200の単一のレーンの代わりに、共通の道路セグメント1200に関連付けられ得る。目標軌道は、三次元スプラインにより表され得る。幾つかの実施形態では、スプラインは、1キロメートル当たり10キロバイト未満、1キロメートル当たり20キロバイト未満、1キロメートル当たり100キロバイト未満、1キロメートル当たり1メガバイト未満、又は1キロメートル当たり任意の他の適する記憶サイズにより定義され得る。次に、モデル配信モジュール2110は、例えば、図24に関して後述するように、生成されたモデルを1つ又は複数の車両に配信し得る。
道路モデル及び/又は疎な地図は、道路セグメントに関連付けられた軌道を記憶し得る。これらの軌道は、目標軌道と呼ぶことができ、自律ナビゲーションのために自律車両に提供される。目標軌道は、複数の車両から受信され得るか、又は複数の車両から受信される実際の軌道若しくは推奨軌道(幾つかの変更を有する実際の軌道)に基づいて生成され得る。道路モデル又は疎な地図に含まれる目標軌道は、他の車両から受信される新しい軌道を用いて連続して更新(例えば、平均化)され得る。
道路セグメントを走行中の車両は、様々なセンサによりデータを収集し得る。データは、陸標、道路シグネチャプロファイル、車両運動(例えば、加速度計データ、速度データ)、車両位置(例えば、GPSデータ)を含み得、実際の軌道自体を再構築するか、又はデータをサーバに送信し得、当該サーバが、車両の実際の軌道を再構築する。幾つかの実施形態では、車両は、軌道に関連するデータ(例えば、任意の基準系での曲線)、陸標データ、及び走行路に沿ったレーン割り当てをサーバ1230に送信し得る。複数の運転で同じ道路セグメントに沿って走行する様々な車両は、異なる軌道を有し得る。サーバ1230は、クラスタ化プロセスを通して、車両から受信する軌道から、各レーンに関連付けられたルート又は軌道を識別し得る。
図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にクラスタ化し得る。
クラスタ化は、様々な基準を使用して実行され得る。幾つかの実施形態では、クラスタ内の全ての運転情報は、道路セグメント1200に沿った絶対進行方位に関して同様であり得る。絶対進行方位は、車両1205、1210、1215、1220、及び1225により受信されるGPS信号から取得され得る。幾つかの実施形態では、絶対進行方位は、推測航法を使用して取得され得る。当業者は理解するように、推測航法を使用して、前に特定された位置、推定速度等を使用することにより、車両1205、1210、1215、1220、及び1225の現在位置、したがって進行方位を特定し得る。絶対進行方位によりクラスタ化された軌道は、道路に沿ったルートを識別するのに有用であり得る。
幾つかの実施形態では、クラスタ内の全ての運転情報は、道路セグメント1200での運転に沿ったレーン割り当てに関して同様であり得る(例えば、交差点前後で同じレーン内)。レーン割り当てによりクラスタ化された軌道は、道路に沿ったレーンを識別するのに有用であり得る。幾つかの実施形態では、両方の基準(例えば、絶対進行方位及びレーン割り当て)が、クラスタ化に使用され得る。
各クラスタ2205、2210、2215、2220、2225、及び2230において、軌道の平均をとり、特定のクラスタに関連付けられた目標軌道を取得し得る。例えば、同じレーンクラスタに関連付けられた複数の運転情報からの軌道の平均をとり得る。平均軌道は、特定のレーンに関連付けられた目標軌道であり得る。軌道のクラスタの平均をとるために、サーバ1230は、任意の軌道C0の基準系を選択し得る。他の全ての軌道(C1、...、Cn)について、サーバ1230は、CiをC0にマッピングする剛性変換を見つけ得、ここで、i=1、2、...、nであり、nは、正の整数であり、クラスタに含まれる軌道の総数に対応する。サーバ1230は、C0基準系での平均値曲線又は軌道を計算し得る。
幾つかの実施形態では、陸標は、異なる運転情報の間でマッチする弧長を定義し得、この弧長をレーンとの軌道の位置合わせに使用し得る。幾つかの実施形態では、交差点前後のレーンマークがレーンとの軌道の位置合わせに使用され得る。
軌道からレーンを組み立てるために、サーバ1230は、任意のレーンの基準系を選択し得る。サーバ1230は、部分的に重複したレーンを、選択された基準系にマッピングし得る。サーバ1230は、全てのレーンが同じ基準系になるまでマッピングを続け得る。互いに隣接するレーンは、あたかも同じレーンであるかのように位置合わせされ得、後に横方向にシフトされ得る。
道路セグメントに沿って認識された陸標は、最初にレーンレベルで、次に交差点レベルで共通の基準系にマッピングされ得る。例えば、複数の運転情報で複数の車両により複数回にわたって同じ陸標を認識し得る。異なる運転情報から受信される同じ陸標に関するデータは、わずかに異なり得る。そのようなデータは、平均をとられ、C0基準系等の同じ基準系にマッピングされ得る。追加又は代替として、複数の運転で受信される同じ陸標のデータの分散を計算し得る。
幾つかの実施形態では、道路セグメント120の各レーンは、目標軌道及び特定の陸標に関連付けられ得る。目標軌道又は複数のそのような目標軌道は、自律車両道路ナビゲーションモデルに含まれ得、自動車両道路ナビゲーションモデルは、後に同じ道路セグメント1200に沿って走行する他の自律車両により使用され得る。車両1205、1210、1215、1220、及び1225が道路セグメント1200に沿って走行する間にこれらの車両により識別された陸標は、目標軌道と関連付けて記録され得る。目標軌道及び陸標のデータは、続く運転で他の車両から受信される新しいデータを用いて連続して又は定期的に更新され得る。
自律車両の位置特定のために、開示されるシステム及び方法は、拡張カルマンフィルタを使用し得る。車両の位置は、三次元位置データ及び/又は三次元向きデータ、自己運動の積分による、車両の現在位置より先の将来の位置の予測に基づいて、特定され得る。車両の位置特定は、陸標の画像観測により修正又は調整され得る。例えば、車両がカメラにより捕捉された画像内に陸標を検出する場合、陸標は、道路モデル又は疎な地図800内に記憶された既知の陸標と比較され得る。既知の陸標は、道路モデル及び/又は疎な地図800に記憶された目標軌道に沿って既知の位置(例えば、GPSデータ)を有し得る。現在速度及び陸標の画像に基づいて、車両から陸標までの距離を推定し得る。目標軌道に沿った車両の位置は、陸標までの距離及び陸標の既知の位置(道路モデル又は疎な地図800に記憶される)に基づいて調整され得る。道路モデル及び/又は疎な地図800に記憶される陸標の位置/場所データ(例えば、複数の運転からの平均値)は、正確であると仮定し得る。
幾つかの実施形態では、開示されるシステムは、閉ループサブシステムを形成し得、ループにおいて、所望のポイント(例えば、記憶されているものの1.3秒先)に到達するように自律車両をナビゲーションする(例えば、車輪を操舵する)のに、車両の自由度6の位置の推定(例えば、三次元位置データに三次元向きデータを加えたもの)を使用し得る。また、操舵及び実際のナビゲーションから測定されるデータを使用して自由度6の位置を推定し得る。
幾つかの実施形態では、街灯柱及び電柱又はケーブル線の柱等の道路に沿った柱は、車両の位置特定のための陸標として使用され得る。交通標識、信号機、道路上の矢印、停止線、及び道路セグメントに沿った物体の静的特徴又はシグネチャ等の他の陸標も、車両を位置特定するための陸標として使用され得る。柱が位置特定に使用される場合、y観測(すなわち柱までの距離)ではなく、柱のx観測(すなわち車両からの視角)を使用し得、なぜなら、柱の下部は、遮蔽され得、ときに道路平面にないためである。
図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は、それでもなおナビゲーションガイダンスの提供に使用され得る。
ナビゲーションシステム2300は、通信パス1235を通してサーバ1230と通信するように構成される通信ユニット2305を含み得る。ナビゲーションシステム2300は、GPS信号を受信し処理するように構成されるGPSユニット2310を含むこともできる。ナビゲーションシステム2300は、GPS信号、疎な地図800からの地図データ(車両1205からオンボードで提供される記憶装置に記憶され得、及び/又はサーバ1230から受信され得る)、道路プロファイルセンサ2330により検知される道路ジオメトリ、カメラ122により捕捉される画像、及び/又はサーバ1230から受信される自律車両道路ナビゲーションモデル等のデータを処理するように構成される少なくとも1つのプロセッサ2315を更に含み得る。道路プロファイルセンサ2330は、路面凹凸性、道路幅、道路高さ、道路曲率等の異なるタイプの道路プロファイルを測定する異なるタイプのデバイスを含み得る。例えば、道路プロファイルセンサ2330は、車両2305のサスペンションの動きを測定して、道路凹凸性プロファイルを導出するデバイスを含み得る。幾つかの実施形態では、道路プロファイルセンサ2330は、レーダセンサを含み、車両1205から道路脇(例えば、道路脇にある障壁)までの距離を測定し、それにより道路の幅を測定し得る。幾つかの実施形態では、道路プロファイルセンサ2330は、道路の高さの凸及び凹を測定するように構成されるデバイスを含み得る。幾つかの実施形態では、道路プロファイルセンサ2330は、道路曲率を測定するように構成されるデバイスを含み得る。例えば、カメラ(例えば、カメラ122又は別のカメラ)を使用して、道路曲率を示す道路の画像を捕捉し得る。車両1205は、そのような画像を使用して道路曲率を検出し得る。
少なくとも1つのプロセッサ2315は、カメラ122から、車両1205に関連付けられた少なくとも1つの環境画像を受信するようにプログラムされ得る。少なくとも1つのプロセッサ2315は、少なくとも1つの環境画像を分析して、車両1205に関連するナビゲーション情報を特定し得る。ナビゲーション情報は、道路セグメント1200に沿った車両1205の走行に関連する軌道を含み得る。少なくとも1つのプロセッサ2315は、三次元並進移動及び三次元回転移動等のカメラ122(したがって車両)の移動に基づいて軌道を決定し得る。幾つかの実施形態では、少なくとも1つのプロセッサ2315は、カメラ122によって取得された複数の画像の分析に基づいてカメラ122の並進移動及び回転移動を特定し得る。幾つかの実施形態では、ナビゲーション情報は、レーン割り当て情報(例えば、車両1205が道路セグメント1200に沿ってどのレーンで走行中であるか)を含み得る。車両1205からサーバ1230に送信されるナビゲーション情報は、サーバ1230により使用されて自律車両道路ナビゲーションモデルを生成及び/又は更新し得、このモデルは、サーバ1230から車両1205に送信されて車両1205の自律ナビゲーションガイダンスを提供し得る。
少なくとも1つのプロセッサ2315は、ナビゲーション情報を車両1205からサーバ1230に送信するようにプログラムすることもできる。幾つかの実施形態では、ナビゲーション情報は、道路情報と共にサーバ1230に送信され得る。道路位置情報は、GPSユニット2310により受信されるGPS信号、陸標情報、道路ジオメトリ、レーン情報等の少なくとも1つを含み得る。少なくとも1つのプロセッサ2315は、サーバ1230から自律車両道路ナビゲーションモデル又はモデルの一部を受信し得る。サーバ1230から受信された自律車両道路ナビゲーションモデルは、車両1205からサーバ1230に送信されるナビゲーション情報に基づく少なくとも1つの更新を含み得る。サーバ1230から車両1205に送信されるモデルの部分は、モデルの更新された部分を含み得る。少なくとも1つのプロセッサ2315は、受信された自律車両道路ナビゲーションモデル又はモデルの更新された部分に基づいて、車両1205による少なくとも1つのナビゲーション操作(例えば、ターン、ブレーキ、加速、別の車両の追い越し等)を生じさせ得る。
少なくとも1つのプロセッサ2315は、通信ユニット1705、GPSユニット2315、カメラ122、速度センサ2320、加速度計2325、及び道路プロファイルセンサ2330を含め、車両1205に含まれる様々なセンサ及び構成要素と通信するように構成され得る。少なくとも1つのプロセッサ2315は、様々なセンサ及び構成要素から情報又はデータを収集し、通信ユニット2305を通して情報又はデータをサーバ1230に送信し得る。代替又は追加として、車両1205の様々なセンサ又は構成要素は、サーバ1230と通信し、センサ又は構成要素により収集されたデータ又は情報をサーバ1230に送信することもできる。
幾つかの実施形態では、車両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は、自律車両道路ナビゲーションモデル又はモデルへの更新を他の車両に送信して自律ナビゲーションガイダンスを提供し得る。
図24は、自律車両ナビゲーションで使用される道路ナビゲーションモデルを生成する例示的なプロセス2400を示すフローチャートである。プロセス2400は、サーバ1230又はハブ車両に含まれるプロセッサ2315によって実行され得る。幾つかの実施形態では、プロセス2400は、車両ナビゲーション情報を集計し、自律車両道路ナビゲーションモデルを提供するか、又はモデルを更新するのに使用され得る。
プロセス2400は、サーバにより、複数の車両からナビゲーション情報を受信すること(ステップ2405)を含み得る。例えば、サーバ1230は、車両1205、1210、1215、1220、及び1225からナビゲーション情報を受信し得る。複数の車両からのナビゲーション情報は、複数の車両、例えば車両1205、1210、1215、1220、及び1225が走行する共通の道路セグメント(例えば、道路セグメント1200)に関連付けられ得る。
プロセス2400は、サーバにより、共通の道路セグメントに関連付けられたナビゲーション情報を記憶すること(ステップ2410)を更に含み得る。例えば、サーバ1230は、記憶装置2010及び/又はメモリ2015にナビゲーション情報を記憶し得る。
プロセス2400は、サーバにより、複数の車両からのナビゲーション情報に基づいて、共通の道路セグメントのための自律車両道路ナビゲーションモデルの少なくとも一部を生成すること(ステップ2415)を更に含み得る。共通の道路セグメントのための自律車両道路ナビゲーションモデルは、共通の道路セグメントに沿って延びる路面特徴の少なくとも1つの線表現を含み得、各線表現は、路面特徴に実質的に対応する共通の道路セグメントに沿った経路を表し得る。例えば、路面特徴は、道路縁部又はレーンマークを含み得る。更に、路面特徴は、複数の車両が共通の道路セグメントを走行する際に取得された複数の画像の画像分析を通して識別され得る。例えば、サーバ1230は、共通の道路セグメント1200を走行する車両1205、1210、1215、1220、及び1225から受信されるナビゲーション情報に基づいて、共通の道路セグメント1200の自律車両道路ナビゲーションモデルの少なくとも一部を生成し得る。
幾つかの実施形態では、自律車両道路ナビゲーションモデルは、地図、画像、又は衛星画像上に重ねられるように構成され得る。例えば、モデルは、Google(登録商標)Map、Waze等の従来のナビゲーションサービスにより提供される地図又は画像上に重ねられ得る。
幾つかの実施形態では、自律車両道路ナビゲーションの少なくとも一部を生成することは、複数の画像の画像分析に基づいて、共通の道路セグメントに関連付けられた複数の陸標を識別することを含み得る。特定の態様では、この分析は、陸標が出現する画像の、陸標が出現しない画像に対する比率が閾値を超える場合、陸標候補を受け入れ、及び/又は陸標が出現しない画像の、陸標が出現する画像に対する比率が閾値を超える場合、陸標候補を拒絶することを含み得る。例えば、陸標候補が車両1210からのデータに出現するが、車両1205、1215、1220、及び1225からのデータに出現しない場合、システムは、比率1:5が、陸標候補を受け入れる閾値未満であると特定し得る。更なる例として、陸標候補が車両1205、1215、1220、及び1225からのデータに出現するが、車両1210からのデータに出現しない場合、システムは、比率4:5が、陸標候補を受け入れる閾値を超えると特定し得る。
プロセス2400は、サーバにより、共通の道路セグメントに沿って1つ又は複数の自律車両を自律的にナビゲーションするのに使用するために自律車両道路ナビゲーションモデルを1つ又は複数の自律車両に配信すること(ステップ2420)を更に含み得る。例えば、サーバ1230は、自律車両道路ナビゲーションモデル又はモデルの一部(例えば、更新)を車両1205、1210、1215、1220、及び1225又は道路セグメント1200を後に走行する任意の他の車両に配信して、道路セグメント1200に沿って車両を自律的にナビゲーションするのに使用し得る。
プロセス2400は、追加の動作又はステップを含み得る。例えば、自律車両道路ナビゲーションモデルを生成することは、図29に関して更に詳細に後述するように、道路セグメント1200に沿った車両1205、1210、1215、1220、及び1225から受信される車両軌道を複数のクラスタにクラスタ化し、及び/又は車両1205、1210、1215、1220、及び1225から受信されたデータを位置合わせすることを含み得る。プロセス2400は、各クラスタ内のクラスタ化された車両軌道の平均をとることにより、共通の道路セグメント1200に沿った目標軌道を決定することを含み得る。プロセス2400は、目標軌道を共通の道路セグメント1200の単一のレーンに関連付けることも含み得る。プロセス2400は、自律車両道路ナビゲーションモデルにおいて目標軌道を表す三次元スプラインを特定することを含み得る。
クラウドソーシングされた疎な地図のナビゲーションへの使用
上述したように、サーバ1230は、生成された道路ナビゲーションモデルを1つ又は複数の車両に配信し得る。道路ナビゲーションモデルは、詳細に上述したように疎な地図に含まれ得る。本開示の実施形態によれば、1つ又は複数の車両は、配信された疎な地図を自律ナビゲーションに使用するように構成され得る。
図25は、開示される実施形態による1つ又は複数の動作を実行する命令を記憶/プログラムし得るメモリ140及び/又は150の例示的な機能ブロック図である。以下ではメモリ140を参照するが、命令をメモリ140及び/又は150に記憶し得ることを当業者は認識する。
図25に示されるように、メモリ140は、疎な地図モジュール2502、画像分析モジュール2504、路面特徴モジュール2506、及びナビゲーション応答モジュール2508を記憶し得る。開示される実施形態は、いかなる特定の構成のメモリ140にも限定されない。更に、アプリケーションプロセッサ180及び/又は画像プロセッサ190は、メモリ140に含まれる任意のモジュール2502、2504、2506、及び2508に記憶された命令を実行し得る。以下の考察における処理ユニット110への言及がアプリケーションプロセッサ180及び画像プロセッサ190を個々に又はまとめて指し得ることを当業者は理解する。したがって、以下の任意のプロセスのステップは、1つ又は複数の処理デバイスによって実行され得る。
一実施形態では、疎な地図モジュール2502は、処理ユニット110によって実行されると、サーバ1230により配信された疎な地図を受信する(及び幾つかの実施形態では記憶する)命令を記憶し得る。疎な地図モジュール2502は、1つの通信で疎な地図全体を受信し得るか、又は車両が動作中のエリアに対応する疎な地図のサブ部分を受信し得る。
一実施形態では、画像分析モジュール2504は、処理ユニット110によって実行されると、画像捕捉デバイス122、124、及び126により取得された1つ又は複数の画像の分析を実行する命令(コンピュータビジョンソフトウェア等)を記憶し得る。更に詳細に後述するように、画像分析モジュール2504は、1つ又は複数の画像を分析して車両の現在位置を特定し得る。
一実施形態では、路面特徴モジュール2506は、処理ユニット110によって実行されると、疎な地図モジュール2502により受信された疎な地図及び/又は画像捕捉デバイス122、124、及び126の1つにより取得された1つ又は複数の画像における路面特徴を識別する命令を記憶し得る。
一実施形態では、ナビゲーション応答モジュール2508は、処理デバイス110によって実行可能であり、疎な地図モジュール2502、画像分析モジュール2504、及び/又は路面特徴モジュール2506の実行から導出されたデータに基づいて所望のナビゲーション応答を決定するソフトウェアを記憶し得る。
更に、本明細書に開示される任意のモジュール(例えば、モジュール2502、2504、及び2506)は、トレーニングされたシステム(ニューラルネットワーク若しくはディープニューラルネットワーク等)又はトレーニングされていないシステムに関連付けられた技法を実施し得る。
図26は、道路セグメントに沿って車両を自律的にナビゲーションする例示的なプロセス2600を示すフローチャートである。プロセス2600は、ナビゲーションシステム2300に含まれるプロセッサ2315によって実行され得る。
プロセス2600は、疎な地図モデルを受信すること(ステップ2605)を含み得る。例えば、プロセッサ2315は、疎な地図をサーバ1230から受信し得る。幾つかの実施形態では、疎な地図モデルは、道路セグメントに沿って延びる路面特徴の少なくとも1つの線表現を含み得、各線表現は、路面特徴に実質的に対応する道路セグメントに沿った経路を表し得る。例えば、道路特徴は、道路縁部又はレーンマークを含み得る。
プロセス2600は、カメラから、車両の環境を表す少なくとも1つの画像を受信すること(ステップ2610)を更に含み得る。例えば、プロセッサ2315は、カメラ122から少なくとも1つの画像を受信し得る。カメラ122は、車両1205が道路セグメント1200に沿って走行する際、車両1205の周囲の環境の1つ又は複数の画像を捕捉し得る。
プロセス2600は、疎な地図モデル及びカメラから受信された少なくとも1つの画像を分析すること(ステップ2615)も含み得る。例えば、疎な地図モデル及びカメラから受信された少なくとも1つの画像の分析は、道路セグメントに沿って延びる路面特徴の少なくとも1つの線表現に沿った長手方向位置に相対する車両の現在位置を特定することを含み得る。幾つかの実施形態では、この特定は、少なくとも1つの画像における少なくとも1つの認識された陸標の識別に基づき得る。幾つかの実施形態では、プロセス2600は、長手方向位置に相対する車両の予期される位置及び長手方向位置に相対する車両の現在位置に基づいて推定オフセットを特定することを更に含み得る。
プロセス2600は、疎な地図モデル及びカメラから受信される少なくとも1つの画像の分析に基づいて車両の自律ナビゲーション応答を決定すること(ステップ2620)を更に含み得る。プロセッサ2315が推定オフセットを特定する実施形態では、自律ナビゲーション応答は、推定オフセットに更に基づき得る。例えば、プロセッサ2315は、車両が1m左に少なくとも1つの線表現からずれていると特定する場合、車両を右に向けてシフトさせ得る(例えば、車輪の向きを変更することにより)。更なる例として、プロセッサ2315は、識別された陸標が予期される位置からずれていると特定する場合、識別された陸標をその予期される位置に向けて移動させるように車両をシフトさせ得る。したがって、幾つかの実施形態では、プロセス2600は、自律ナビゲーション応答に基づいて車両の操舵システムを調整することを更に含み得る。
クラウドソーシングされた地図データの位置合わせ
上述したように、クラウドソーシングされる疎な地図の生成は、共通の道路セグメントに沿った複数の運転情報からのデータを使用し得る。コヒーレントな疎な地図を生成するためにこのデータを位置合わせし得る。図14に関して上述したように、地図スケルトンを生成することは、ナビゲーションで使用するスプラインを構築するのに不十分であり得る。したがって、本開示の実施形態では、複数の運転情報からクラウドソーシングされたデータを位置合わせすることができる。
図27は、メモリ2015のブロック図を示し、メモリ2015は、自律車両ナビゲーションで使用する道路ナビゲーションモデルを生成する1つ又は複数の動作を実行するコンピュータコード又は命令を記憶し得る。図21に示されるように、メモリ2015は、車両ナビゲーション情報を処理する動作を実行する1つ又は複数のモジュールを記憶し得る。例えば、メモリ2015は、運転データ受信モジュール2705及び長手方向位置合わせモジュール2710を含み得る。プロセッサ2020は、メモリ2015に含まれる任意のモジュール2705及び2710に記憶された命令を実行し得る。
運転データ受信モジュール2705は、プロセッサ2020によって実行されると、1つ又は複数の車両(例えば、1205、1210、1215、1220、及び1225)から運転データを受信するように通信デバイス2005を制御し得る命令を記憶し得る。
長手方向位置合わせモジュール2710は、プロセッサ2020によって実行されると、車両1205、1210、1215、1220、及び1225から受信されるナビゲーション情報に基づいて、運転データ受信モジュール2705を使用して受信されたデータが共通の道路セグメント(例えば、道路セグメント1200)に関連する場合に当該データを位置合わせする命令を記憶し得る。例えば、長手方向位置合わせモジュール2710は、パッチに沿ってデータを位置合わせし得、それにより位置合わせに伴うエラー修正の最適化をより容易にし得る。幾つかの実施形態では、長手方向位置合わせモジュール2710は、信頼スコアで各パッチ位置合わせを更にスコア付けし得る。
図28Aは、4つの異なる運転情報からの生の位置データの例を示す。図28Aの例では、第1の運転情報からの生データは、一連の星として示され、第2の運転情報からの生データは、一連の中実正方形として示され、第3の第1の運転情報からの生データは、一連の空白の正方形として示され、第4の運転情報からの生データは、一連の空白の円として示されている。当業者は認識するように、形状は、データ自体の単なる例示であり、データは、ローカルであれグローバルであれ関係なく、一連の座標として記憶され得る。
図28Aにおいて見ることができるように、運転情報は、同じ道路(線1200で表される)に沿った異なるレーンで生じ得る。更に、図28Aは、運転データが位置測定(例えば、GPS)エラーに起因してばらつきを含み得、システムエラーに起因して欠損データ点を有し得ることを示す。最後に、図28Aは、各運転情報が道路に沿ったセグメント内の異なるポイントで開始及び終了し得ることも示す。
図28Bは、5つの異なる運転情報からの生の位置データの別の例を示す。図28Bの例では、第1の運転情報からの生データは、一連の中実正方形として示され、第2の運転情報からの生データは、一連の空白の正方形として示され、第3の第1の運転情報からの生データは、一連の空白の円として示され、第4の運転情報からの生データは、一連の星として示され、第5の運転情報からの生データは、一連の三角形として示されている。当業者は認識するように、形状は、データ自体の単なる例示であり、データは、ローカルであれグローバルであれ関係なく、一連の座標として記憶され得る。
図28Bは、運転データの図28Aと同様の特性を示す。図28Bは、他から離れた第5の運転情報の移動を追跡することにより交差点を検出し得ることを更に示す。例えば、図28Bにおけるデータ例は、出口ランプが道路(線1200で表される)の右側に存在することを示唆し得る。図28Bは、データが道路の新しい部分で開始される場合、追加のレーンを検出し得ることも示す。例えば、図28Bのデータ例における第4の運転情報は、検出された出口ランプの直後に第4のレーンが道路に追加されることを示唆し得る。
図28Cは、生の位置データの例をそこからの目標軌道と共に示す。例えば、第1の運転データ(三角形で表される)及び第2の運転データ(空白の正方形で表される)は、関連付けられた目標軌道2810を有する。同様に、第3の運転データ(空白の円で表される)は、関連付けられた目標軌道2820を有し、第4の運転データ(中実正方形で表される)は、関連付けられた目標軌道2830を有する。
幾つかの実施形態では、運転データは、図28Cに示されるように、1つの目標軌道が各走行レーンに関連付けられるように再構築され得る。そのような目標軌道は、運転データのパッチの適切な位置合わせが実行される場合、1つ又は複数の単純な平滑線モデルから生成され得る。後述するプロセス2900は、パッチの適切な位置合わせの一例である。
図29は、道路セグメントに沿って延びる路面特徴の線表現を特定する例示的なプロセス2900を示すフローチャートである。路面特徴の線表現は、例えば、上記図26のプロセス2600を使用して自律車両ナビゲーションで使用されるように構成され得る。プロセス2900は、サーバ1230又はハブ車両に含まれるプロセッサ2315によって実行され得る。
プロセス2900は、サーバにより、路面特徴に関連付けられた位置情報を含む運転データの第1の組を受信すること(ステップ2905)を含み得る。位置情報は、道路セグメントの画像の分析に基づいて特定され得、路面特徴は、道路縁部又はレーンマークを含み得る。
プロセス2900は、サーバにより、路面特徴に関連付けられた位置情報を含む運転データの第2の組を受信すること(ステップ2910)を更に含み得る。ステップ2905と同様に、位置情報は、道路セグメントの画像の分析に基づいて特定され得、路面特徴は、道路縁部又はレーンマークを含み得る。運転データの第1の組及び運転データの第2の組が収集されるときに応じて、ステップ2905及び2910が同時に実行され得るか、又はステップ2905とステップ2910との間で時間が経過し得る。
プロセス2900は、運転データの第1の組を第1の運転パッチにセグメント化し、且つ運転データの第2の組を第2の運転パッチにセグメント化すること(ステップ2915)も含み得る。パッチは、データサイズ又は運転長により定義され得る。パッチを定義するサイズ又は長さは、1つ若しくは複数の値に予め定義され得るか、又はニューラルネットワーク若しくは他の機械技術を用いて更新され得る。例えば、パッチの長さは、常に1kmに予め設定され得るか、又は30km/時超で道路に沿って走行中の場合に1kmに予め設定され、30km/時未満で道路に沿って走行中の場合に0.8kmに予め設定され得る。代替として又は同時に、機械学習分析は、運転状況、運転速度等の幾つかの従属変数に基づいてパッチのサイズ又は長さを最適化し得る。更に、幾つかの実施形態では、経路は、データサイズ及び運転長により定義され得る。
幾つかの実施形態では、データの第1の組及びデータの第2の組は、位置情報を含み得、複数の陸標に関連付けられ得る。そのような実施形態では、プロセス2900は、図19に関して上述したように、1つ又は複数の閾値に基づいてデータの組内の陸標を受け入れるか又は拒絶するかを特定することを更に含み得る。
プロセス2900は、運転データの第1の組を、対応するパッチ内の運転データの第2の組と長手方向に位置合わせすること(ステップ2920)を含み得る。例えば、長手方向の位置合わせは、基準データセットとしてデータの第1の組又はデータの第2の組のいずれかを選択し、次にデータの他方の組をシフト及び/又は弾性的に伸張して組内のパッチを位置合わせすることを含み得る。幾つかの実施形態では、データの組を位置合わせすることは、両方の組に含まれ、パッチに関連付けられたGPSデータを位置合わせすることを更に含み得る。例えば、組とのパッチ間の接続は、GPSデータとより密に位置合わせされるように調整され得る。しかし、そのような実施形態では、GPSデータの制限が位置合わせを損なわないように調整を制限しなければならない。例えば、GPSデータは、三次元ではなく、したがって道路の三次元表現に投影されたとき、不自然な捻れ及び傾斜をもたらすことがある。
プロセス2900は、第1のドラフトパッチ及び第2のドラフトパッチにおける長手方向に位置合わせされた第1の運転データ及び第2の運転データに基づいて路面特徴の線表現を特定すること(ステップ2925)を更に含み得る。例えば、線表現は、位置合わせされたデータ上に平滑線モデルを使用して構築され得る。幾つかの実施形態では、線表現を特定することは、運転データの第1の組又は運転データの第2の組の少なくとも一方の一部として取得されたGPSデータに基づく線表現のグローバル座標との位置合わせを含み得る。例えば、データの第1の組及び/又はデータの第2の組は、ローカル座標で表され得るが、平滑線モデルを使用する場合、両方の組が同じ座標軸を有する必要がある。したがって、特定の態様では、データの第1の組及び/又はデータの第2の組は、互いと同じ座標軸を有するように調整され得る。
幾つかの実施形態では、線表現を特定することは、平均変換の組を決定及び適用することを含み得る。例えば、平均変換のそれぞれは、順次パッチにわたる運転データの第1の組からのリンクデータ及び順次パッチにわたる運転データの第2の組からのリンクデータを特定した変換に基づき得る。
プロセス2900は、追加の動作又はステップを含み得る。例えば、プロセス2900は、路面特徴の線表現を少なくとも1つの地理画像上に重ね合わせることを更に含み得る。例えば、地理画像は、衛星画像であり得る。更なる例として、プロセス2900は、特定された線表現及び長手方向の位置合わせに基づいて、誤っているように見える陸標情報及び/又は運転データをフィルタリングして除去することを更に含み得る。そのようなフィルタリングは、図19に関して上述したように、1つ又は複数の閾値に基づいて陸標候補を拒絶することと概念的に同様であり得る。
路面情報のクラウドソーシング
疎な地図を生成するために陸標及び線表現をクラウドソーシングすることに加えて、開示されるシステム及び方法は、路面特徴も同様にクラウドソーシングされ得る。したがって、道路状況は、自律車両のナビゲーションに使用される疎な地図と共に及び/又は疎な地図内に記憶され得る。
図30は、メモリ140及び/又は150の例示的な機能ブロック図であり、メモリ140及び/又は150に、開示される実施形態による1つ又は複数の動作を実行する命令を記憶/プログラムし得る。以下ではメモリ140について言及するが、命令がメモリ140及び/又は150に記憶可能であることを当業者は認識する。
図30に示されるように、メモリ140は、画像受信モジュール3002、路面特徴モジュール3004、位置特定モジュール3006、及びナビゲーション応答モジュール3008を記憶し得る。開示された実施形態は、いかなる特定の構成のメモリ140にも限定されない。更に、アプリケーションプロセッサ180及び/又は画像プロセッサ190は、メモリ140に含まれる任意のモジュール3002、3004、3006、及び3008に記憶された命令を実行し得る。以下の考察における処理ユニット110への言及がアプリケーションプロセッサ180及び画像プロセッサ190を個々に又はまとめて指し得ることを当業者は理解する。したがって、以下の任意のプロセスのステップは、1つ又は複数の処理デバイスによって実行され得る。
一実施形態では、画像受信モジュール3002は、処理ユニット110によって実行されると、画像捕捉デバイス122、124、及び126の1つにより取得された画像を受信する(及び幾つかの実施形態では記憶する)命令を記憶し得る。
一実施形態では、路面特徴モジュール3004は、処理ユニット110によって実行されると、画像捕捉デバイス122、124、及び126の1つにより取得された1つ又は複数の画像の分析を実行し、路面特徴を識別する命令(コンピュータビジョンソフトウェア等)を記憶し得る。例えば、路面特徴は、道路縁部又はレーンマークを含み得る。
一実施形態では、位置特定モジュール3006は、処理ユニット110によって実行されると、車両に関連する位置情報を受信する命令(GPSソフトウェア又は視覚的走行距離計測ソフトウェア等)を記憶し得る。例えば、位置特定モジュール3006は、車両の位置を含むGPSデータ及び/又は自己運動データを受信し得る。幾つかの実施形態では、位置特定モジュール3006は、受信された情報を使用して1つ又は複数の位置を計算し得る。例えば、位置特定モジュール3006は、画像捕捉デバイス122、124、及び126の1つにより取得された1つ又は複数の画像を受信し、画像の分析を使用して車両の位置を特定し得る。
一実施形態では、ナビゲーション応答モジュール3008は、処理ユニット110によって実行可能であり、画像受信モジュール3002、路面特徴モジュール3004、及び/又は位置特定モジュール3006の実行から導出されるデータに基づいて所望のナビゲーション応答を決定するソフトウェアを記憶し得る。
更に、本明細書に開示される任意のモジュール(例えば、モジュール3002、3004、及び3006)は、トレーニングされたシステム(ニューラルネットワーク若しくはディープニューラルネットワーク等)又はトレーニングされていないシステムに関連付けられた技法を実施し得る。
図31は、道路セグメントの路面情報を収集する例示的なプロセス3100を示すフローチャートである。プロセス3100は、ナビゲーションシステム2300に含まれるプロセッサ2315によって実行され得る。
プロセス3100は、カメラから、道路セグメントの一部を示す少なくとも1つの画像を受信すること(ステップ3105)を含み得る。例えば、プロセッサ2315は、カメラ122から少なくとも1つの画像を受信し得る。カメラ122は、車両1205が道路セグメント1200に沿って走行する際、車両1205の周囲環境の1つ又は複数の画像を捕捉し得る。
プロセス3100は、少なくとも1つの画像において、道路セグメントの一部に沿った少なくとも1つの路面特徴を識別すること(ステップ3010)を更に含み得る。例えば、少なくとも1つの路面特徴は、道路縁部を含み得るか又はレーンマークを含み得る。
プロセス3100は、車両のローカル座標系に従って、路面特徴に関連付けられた複数の位置を特定すること(ステップ3115)も含み得る。例えば、プロセッサ2315は、自己運動データ及び/又はGPSデータを使用して複数の位置を特定し得る。
プロセス3100は、特定された複数の位置を車両からサーバに送信すること(ステップ3120)を更に含み得る。例えば、特定された位置は、図29に関して上述したように、サーバによる、道路セグメントに沿って延びる路面特徴の線表現の特定を可能にするように構成され得る。幾つかの実施形態では、線表現は、路面特徴に実質的に対応する道路セグメントに沿った経路を表し得る。
プロセス3100は、追加の動作又はステップを含み得る。例えば、プロセス3100は、サーバから線表現を受信することを更に含み得る。この例では、プロセッサ2315は、例えば、図24のプロセス2400及び/又は図26のプロセス2600に従って受信された疎な地図の一部として線表現を受信し得る。更なる例として、プロセス2900は、路面特徴の線表現を少なくとも1つの地理画像上に重ね合わせることを更に含み得る。例えば、地理画像は、衛星画像であり得る。
陸標のクラウドソーシングに関して上述したように、幾つかの実施形態では、サーバは、車両から受信された路面特徴候補を受け入れるか又は拒絶するかを特定する選択基準を実施し得る。例えば、サーバは、路面特徴が出現する位置の組の、路面特徴が出現しない位置の組に対する比率が閾値を超える場合、路面特徴候補を受け入れ、及び/又は路面特徴が出現しない位置の組の、路面特徴が出現する位置の組に対する比率が閾値を超える場合、路面特徴候補を拒絶し得る。
車両の位置特定
幾つかの実施形態では、開示されるシステム及び方法は、疎な地図を自律車両ナビゲーションに使用し得る。特に、疎な地図は、道路セグメントに沿った自律車両ナビゲーションのためのものであり得る。例えば、疎な地図は、大量のデータを記憶及び/又は更新せずに、自律車両をナビゲーションするのに十分な情報を提供し得る。更に詳細に後述するように、自律車両は疎な地図を使用して、1つ又は複数の記憶された軌道に基づいて1つ又は複数の道路をナビゲーションし得る。
レーンマークを使用した自律車両レーンの位置特定
上述したように、セルフドライブ車両は、陸標間の推測航法に基づいてナビゲーションし得る。しかし、推測航法によるナビゲーション中、誤差が蓄積し得、したがって時間の経過に伴って、目標軌道に相対した位置特定の精度が一層低くなり得る。後述するように、レーンマークは、陸標間隔中、車両の位置を特定するのに使用され得、推測航法によるナビゲーション中の誤差の蓄積を最小限に抑え得る。
例えば、スプラインは、以下の式1に示されるように表され得る。
式1の例では、B(u)は、スプラインを表す曲線であり、b
k(u)は、基底関数であり、P
(k)は、制御点を表す。制御点は、例えば、以下の式2に従ってローカル座標に変換され得る。
式2の例では、Pl (k)は、局所座標に変換された制御点P(k)を表し、Rは、例えば、車両の進行方位から推測され得る回転行列であり、RTは、回転行列の転置を表し、Tは、車両の位置を表す。
幾つかの実施形態では、車両の経路を表す局所曲線は、以下の式3を使用して特定され得る。
式3の例では、fは、カメラの焦点距離であり、B
lz、B
ly、及びB
lxは、ローカル座標での曲線Bの成分を表す。Hの導関数は、以下の式4により表され得る。
式1に基づいて、式4中のB'
lは、以下の式5により更に表され得る。
例えば、式5は、ニュートン・ラプソンベースの解法により解くことができる。特定の態様では、解法は、5つ以下のステップで実行され得る。xについて解くために、幾つかの実施形態では、以下の式6を使用し得る。
幾つかの実施形態では、軌道の導関数を使用し得る。例えば、導関数は、以下の式7により与えられ得る。
式7の例では、Xjは、例えば、車両の位置の状態成分を表し得る。特定の態様では、jは、1〜6の整数を表し得る。
式7を解くために、幾つかの実施形態では、以下の式8を使用し得る。
式8を解くために、幾つかの実施形態では、陰関数微分法を使用して、以下の式9及び式10を取得し得る。
式9及び式10を使用して軌道の導関数を取得し得る。幾つかの実施形態では、次に拡張カルマンフィルタを使用してレーン測定値を特定し得る。上述したように、レーン測定値を特定することにより、レーンマークを使用して、推測航法によるナビゲーション中の誤差の蓄積を最小限に抑え得る。レーンマークの使用について、図32〜図35に関して更に詳細に後述する。
図32は、メモリ140及び/又は150の例示的な機能ブロック図であり、メモリ140及び/又は150に、開示される実施形態による1つ又は複数の動作を実行する命令を記憶/プログラムし得る。以下ではメモリ140について言及するが、命令がメモリ140及び/又は150に記憶可能であることを当業者は認識する。
図32に示されるように、メモリ140は、位置特定モジュール3202、画像分析モジュール3204、距離特定モジュール3206、及びオフセット特定モジュール3208を記憶し得る。開示された実施形態は、いかなる特定の構成のメモリ140にも限定されない。更に、アプリケーションプロセッサ180及び/又は画像プロセッサ190は、メモリ140に含まれる任意のモジュール3202、3204、3206、及び3208に記憶された命令を実行し得る。以下の考察における処理ユニット110への言及がアプリケーションプロセッサ180及び画像プロセッサ190を個々に又はまとめて指し得ることを当業者は理解する。したがって、以下の任意のプロセスのステップは、1つ又は複数の処理デバイスによって実行され得る。
一実施形態では、位置特定モジュール3202は、処理ユニット110によって実行されると、車両に関連する位置情報を受信する命令(GPSソフトウェア又は視覚的走行距離計測ソフトウェア等)を記憶し得る。例えば、位置特定モジュール3202は、車両の位置を含むGPSデータ及び/又は自己運動データを受信し得る。幾つかの実施形態では、位置特定モジュール3202は、受信された情報を使用して1つ又は複数の位置を計算し得る。例えば、位置特定モジュール3202は、画像捕捉デバイス122、124、及び126の1つにより取得された1つ又は複数の画像を受信し、画像の分析を使用して車両の位置を特定し得る。
位置特定モジュール3202は、車両の位置を特定するために他のナビゲーションセンサを使用することもできる。例えば、速度センサ又は加速度計は、車両の位置計算に使用するために情報を位置特定モジュール3202に送信し得る。
一実施形態では、画像分析モジュール3204は、処理デバイス110によって実行されると、画像捕捉デバイス122、124、及び126の1つにより取得された1つ又は複数の画像の分析を実行する命令(コンピュータビジョンソフトウェア等)を記憶し得る。更に詳細に後述するように、画像分析モジュール3204は、少なくとも1つのレーンマークを識別するために1つ又は複数の画像を分析し得る。
一実施形態では、距離特定モジュール3206は、処理デバイス110によって実行されると、画像捕捉デバイス122、124、及び126の1つにより取得された1つ又は複数の画像の分析を実行し、車両から、画像分析モジュール3204により識別されたレーンマークまでの距離を特定する命令を記憶し得る。
一実施形態では、オフセット特定モジュール3208は、処理デバイス110によって実行可能であり、道路モデル軌道からの車両の推定オフセットを特定するソフトウェアを記憶し得る。例えば、オフセット特定モジュール3208は、距離特定モジュール3206により特定された距離を使用して推定オフセットを計算し得る。次に、位置特定モジュール3202、画像分析モジュール3204、距離特定モジュール3206、及び/又はオフセット特定モジュール3208の実行から導出されたデータに基づく所望のナビゲーション応答を決定し得る。
更に、本明細書に開示される任意のモジュール(例えば、モジュール3202、3204、及び3206)は、トレーニングされたシステム(ニューラルネットワーク若しくはディープニューラルネットワーク等)又はトレーニングされていないシステムに関連付けられた技法を実施し得る。
図33Aは、レーンマークを使用しない推測航法による車両ナビゲーションの例を示す。図33Aの例では、車両は、軌道3310に沿ってナビゲーションされるが、ナビゲーションにレーンマーク(例えば、マーク3320A又は3320B)を使用しない。
図33Bは、350m後の図33Aの例を示す。図33Bに示されるように、車両の軌道3310は、推測航法誤差蓄積に起因してレーンマーク(例えば、マーク3320A又は3320B)と完全には位置合わせされない。
図33Cは、1km後の図33A及び図33Bの例を示す。図33Cに示されるように、陸標の予期される位置3330Aは、陸標の実際の位置3330Bと位置合わせされない。車両は、ここで、陸標を使用して1kmの過程にわたり蓄積した推測航法誤差を修正し得るが、本開示のシステム及び方法では、レーンマークを使用して陸標間の推測航法誤差蓄積を最小限に抑えることができる。
図34Aは、レーンマークを用いた推測航法による車両ナビゲーションの例を示す。図34Aの例では、車両は、ナビゲーションのために位置特定及び使用される軌道3410及びまた識別されたレーンマーク(例えば、マーク3420A及び3420B)に沿ってナビゲーションしている。
図34Bは、350m後の図34Aの例を示す。図34Bに示されるように、車両の軌道3410は、車両が、識別されたレーンマークを使用して推測航法誤差を修正したため、レーンマーク(例えば、レーンマーク3420A及び3420B)と実質的に位置合わせされる。
図34Cは、1km後の図34A及び図34Bの例を示す。図34Cに示されるように、陸標の予期される位置3430Aは、陸標の実際の位置3430Bと実質的に位置合わせされる。したがって、陸標に直面すると、図34Cの車両は、図33Cの車両よりもかなり小さい修正を受け得る。後述する図35のプロセス3500は、図34A〜図34Cと同様に車両がナビゲーションにレーンマークを使用し得る例示的なプロセスである。
図35は、道路セグメントをナビゲーションする車両の位置を修正する例示プロセス3500を示すフローチャートである。プロセス3500は、ナビゲーションシステム2300に含まれるプロセッサ2315によって実行され得る。
プロセス3500は、少なくとも1つのナビゲーションセンサの出力に基づいて、所定の道路モデル軌道に沿った車両の測定位置を特定すること(ステップ3505)を含み得る。例えば、所定の道路モデル軌道は、道路セグメントに関連付けられ得、幾つかの実施形態では、所定の道路モデル軌道は、道路セグメントに沿った目標軌道の三次元多項式表現を含み得る。少なくとも1つのナビゲーションセンサは、例えば、速度センサ又は加速度計を含み得る。
プロセス3500は、画像捕捉デバイスから、車両の環境を示す少なくとも1つの画像を受信すること(ステップ3510)を更に含み得る。例えば、プロセッサ2315は、カメラ122から少なくとも1つの画像を受信し得る。カメラ122は、車両1205が道路セグメント1200に沿って走行する際、車両1205の周囲環境の1つ又は複数の画像を捕捉し得る。
プロセス3500は、少なくとも1つのレーンマークを識別するために少なくとも1つの画像を分析することも含み得る。少なくとも1つのレーンマークは、道路セグメントに沿った走行レーンに関連付けられ得る。プロセス3500は、少なくとも1つの画像に基づいて、車両から少なくとも1つのレーンマークまでの距離を特定することを更に含み得る。例えば、画像内の物体の距離を計算する様々な既知のアルゴリズムを使用し得る。
プロセス3500は、車両の測定位置及び特定された距離に基づいて、所定の道路モデル軌道からの車両の推定オフセットを特定することを含み得る。幾つかの実施形態では、推定オフセットを特定することは、少なくとも1つのレーンマークへの距離に基づいて、車両が少なくとも1つのレーンマークと交差する軌道にあるか否かを特定することを更に含み得る。代替として又は同時に、幾つかの実施形態では、推定オフセットを特定することは、少なくとも1つのレーンマークへの距離に基づいて、車両が少なくとも1つのレーンマークの所定の閾値内にあるか否かを特定することを更に含み得る。
プロセス3500は、車両の位置を修正するための推定オフセットに基づいて車両の自律操舵動作を決定することを更に含み得る。例えば、推定オフセットが、少なくとも1つのレーンマークと交差する軌道に車両があるか否か及び/又は車両が少なくとも1つのレーンマークの所定の閾値内にあるか否かを特定することを含む実施形態では、プロセッサ2315は、車両軌道と少なくとも1つのレーンマークとの交わりを回避し、及び/又は車両とレーンマークとの距離を所定の閾値未満にするような自律操舵動作を決定し得る。
幾つかの実施形態では、自律操舵動作を決定することは、所定の道路モデル軌道の少なくとも1つの導関数について解くことを更に含み得る。例えば、軌道の導関数は、上述した拡張カルマンフィルタを使用して計算され得る。
プロセス3500は、追加の動作又はステップを含み得る。例えば、プロセス3500は、自律操舵動作に基づいて車両の操舵システムを調整することを更に含み得る。
上記説明は、例示を目的として提示されている。上記説明は網羅的ではなく、開示される厳密な形態又は実施形態に限定されない。変更形態及び適合形態は、本明細書を考慮し、開示される実施形態を実施することから当業者に明らかになるであろう。更に、開示される実施形態の態様は、メモリに記憶されるものとして記載されるが、これらの態様が、補助記憶装置等の他のタイプのコンピュータ可読媒体、例えば、ハードディスク若しくはCD ROM又は他の形態のRAM若しくはROM、USBメディア、DVD、Blu-ray(登録商標)、4K超HD Blu-ray、又は他の光学駆動媒体に記憶することも可能であることを当業者は理解するであろう。
記載の説明及び開示される方法に基づくコンピュータプログラムは、経験のある開発者の技能内にある。様々なプログラム又はプログラムモジュールは、当業者に既知の任意の技法を使用して作成することができるか、又は既存のソフトウェアに関連して設計することができる。例えば、プログラムセクション又はプログラムモジュールは、.Net Framework、.Net Compact Framework(及びVisual Basic、C等の関連する言語)、Java(登録商標)、C++、Objective-C、HTML、HTML/AJAX組み合わせ、XML、又はJavaアプレットを包含したHTMLにおいて又はそれにより設計することができる。
更に、例示的な実施形態を本明細書において説明したが、あらゆる実施形態の範囲は、本開示に基づいて当業者により理解されるような均等な要素、変更形態、省略形態、組合せ(例えば、様々な実施形態にわたる態様の)、適合形態、及び/又は代替形態を有する。特許請求の範囲での限定は、特許請求の範囲に利用される言語に基づいて広く解釈されるべきであり、本明細書に記載される例又は本願の実行中の例に限定されない。例は、非排他的として解釈されるべきである。更に、開示される方法のステップは、ステップの順序替え及び/又はステップの挿入又は削除を含め、任意の方法で変更され得る。したがって、本明細書及び例が単なる例示として見なされることが意図され、真の範囲及び趣旨は、以下の特許請求の範囲及びその全範囲の均等物により示される。
(項目1)道路セグメントに沿った自律車両ナビゲーションのための疎な地図を含む非一時的コンピュータ可読媒体であって、前記疎な地図は、
前記道路セグメントに沿って延びる路面特徴の少なくとも1つの線表現であって、各線表現は、前記路面特徴に実質的に対応する前記道路セグメントに沿った経路を表し、
前記路面特徴は、1つ又は複数の車両が前記道路セグメントを走行する際に取得された複数の画像の画像分析を通して識別される、少なくとも1つの線表現と、前記道路セグメントに関連付けられた複数の陸標と、を含む、
非一時的コンピュータ可読媒体。
(項目2)前記路面特徴は、道路縁部又はレーンマークの少なくとも一方を含む、項目1に記載の非一時的コンピュータ可読媒体。
(項目3)前記複数の陸標の少なくとも1つは、道路標識を含む、項目1に記載の非一時的コンピュータ可読媒体。
(項目4)前記複数の陸標は、前記地図において少なくとも50mの平均距離で離間される、項目1に記載の非一時的コンピュータ可読媒体。
(項目5)前記疎な地図は、1キロメートル当たり1メガバイト以下のデータ密度を有する、項目1に記載の非一時的コンピュータ可読媒体。
(項目6)前記路面特徴の前記少なくとも1つの線表現は、スプライン、多項式表現、又は曲線を含む、項目1に記載の非一時的コンピュータ可読媒体。
(項目7)前記複数の陸標は、1つ又は複数の車両が前記道路セグメントを走行する際に取得された前記複数の画像の画像分析を通して識別される、項目1に記載の非一時的コンピュータ可読媒体。
(項目8)前記複数の陸標を識別するための前記画像分析は、前記陸標が出現する画像の、前記陸標が出現しない画像に対する比率が閾値を超える場合、陸標候補を受け入れることを含む、項目7に記載の非一時的コンピュータ可読媒体。
(項目9)前記複数の陸標を識別するための前記画像分析は、前記陸標が出現しない画像の、前記陸標が出現する画像に対する比率が閾値を超える場合、陸標候補を拒絶することを含む、項目7に記載の非一時的コンピュータ可読媒体。
(項目10)道路セグメントに沿った自律車両ナビゲーションのための疎な地図を生成するシステムであって、少なくとも1つの処理デバイスを含み、前記少なくとも1つの処理デバイスは、
1つ又は複数の車両が前記道路セグメントを走行する際に取得された複数の画像を受信することと、
前記複数の画像に基づいて、前記道路セグメントに沿って延びる路面特徴の少なくとも1つの線表現を識別することであって、各線表現は、前記路面特徴に実質的に対応する前記道路セグメントに沿った経路を表す、識別することと、
前記複数の画像に基づいて、前記道路セグメントに関連付けられた複数の陸標を識別することと、
を行うように構成される、システム。
(項目11)前記路面特徴は、道路縁部又はレーンマークの少なくとも一方を含む、項目10に記載のシステム。
(項目12)前記複数の陸標の少なくとも1つは、道路標識を含む、項目10に記載のシステム。
(項目13)前記路面特徴の前記少なくとも1つの線表現は、スプライン、多項式表現、又は曲線を含む、項目10に記載のシステム。
(項目14)前記複数の陸標を識別することは、1つ又は複数の車両が前記道路セグメントを走行する際に取得された前記複数の画像を分析することを含む、項目10に記載のシステム。
(項目15)前記複数の陸標を識別するために前記複数の画像を分析することは、前記陸標が出現する画像の、前記陸標が出現しない画像に対する比率が閾値を超える場合、陸標候補を受け入れることを含む、項目14に記載のシステム。
(項目16)前記複数の陸標を識別するために前記複数の画像を分析することは、前記陸標が出現しない画像の、前記陸標が出現する画像に対する比率が閾値を超える場合、陸標候補を拒絶することを含む、項目14に記載のシステム。
(項目17)道路セグメントに沿った自律車両ナビゲーションのための疎な地図を生成する方法であって、
1つ又は複数の車両が前記道路セグメントを走行する際に取得された複数の画像を受信することと、
前記複数の画像に基づいて、前記道路セグメントに沿って延びる路面特徴の少なくとも1つの線表現を識別することであって、各線表現は、前記路面特徴に実質的に対応する前記道路セグメントに沿った経路を表す、識別することと、
前記複数の画像に基づいて、前記道路セグメントに関連付けられた複数の陸標を識別することと、
を含む方法。
(項目18)前記複数の陸標を識別することは、1つ又は複数の車両が前記道路セグメントを走行する際に取得された前記複数の画像を分析することを含む、項目17に記載の方法。
(項目19)前記複数の陸標を識別するために前記複数の画像を分析することは、前記陸標が出現する画像の、前記陸標が出現しない画像に対する比率が閾値を超える場合、陸標候補を受け入れることを含む、項目18に記載の方法。
(項目20)前記複数の陸標を識別するために前記複数の画像を分析することは、前記陸標が出現しない画像の、前記陸標が出現する画像に対する比率が閾値を超える場合、陸標候補を拒絶することを含む、項目18に記載の方法。
(項目21)自律車両ナビゲーションで使用される道路ナビゲーションモデルを生成する方法であって、
サーバにより、複数の車両からナビゲーション情報を受信することであって、前記複数の車両からの前記ナビゲーション情報は、共通の道路セグメントに関連付けられている、受信することと、
前記サーバにより、前記共通の道路セグメントに関連付けられた前記ナビゲーション情報を記憶することと、
前記サーバにより、前記複数の車両からの前記ナビゲーション情報に基づいて、前記共通の道路セグメントのための自律車両道路ナビゲーションモデルの少なくとも一部を生成することであって、前記共通の道路セグメントのための前記自律車両道路ナビゲーションモデルは、前記共通の道路セグメントに沿って延びる路面特徴の少なくとも1つの線表現を含み、各線表現は、前記路面特徴に実質的に対応する前記共通の道路セグメントに沿った経路を表し、前記路面特徴は、前記複数の車両が前記共通の道路セグメントを走行する際に取得された複数の画像の画像分析を通して識別される、生成することと、
前記サーバにより、前記共通の道路セグメントに沿って1つ又は複数の自律車両を自律的にナビゲーションするのに使用するために前記自律車両道路ナビゲーションモデルを前記1つ又は複数の自律車両に配信することと、
を含む方法。
(項目22)前記自律車両道路ナビゲーションモデルは、地図、画像、又は衛星画像上に重ねられるように構成される、項目21に記載の方法。
(項目23)前記複数の道路特徴は、道路縁部又はレーンマークを含む、項目21に記載の方法。
(項目24)前記自律車両道路ナビゲーションモデルの少なくとも一部を生成することは、前記複数の画像の画像分析に基づいて、前記共通の道路セグメントに関連付けられた複数の陸標を識別することを含む、項目21に記載の方法。
(項目25)前記自律車両道路ナビゲーションモデルの少なくとも一部を生成することは、前記陸標が出現する画像の、前記陸標が出現しない画像に対する比率が閾値を超える場合、陸標候補を受け入れることを更に含む、項目24に記載の方法。
(項目26)前記自律車両道路ナビゲーションモデルの少なくとも一部を生成することは、前記陸標が出現しない画像の、前記陸標が出現する画像に対する比率が閾値を超える場合、陸標候補を拒絶することを更に含む、項目24に記載の方法。
(項目27)自律車両ナビゲーションで使用する道路ナビゲーションモデルを生成するシステムであって、
少なくとも1つのネットワークインタフェースと、
少なくとも1つの非一時的記憶媒体と、
少なくとも1つの処理デバイスと、
を含み、前記少なくとも1つの処理デバイスは、
前記ネットワークインタフェースを使用して複数の車両からナビゲーション情報を受信することであって、前記複数の車両からの前記ナビゲーション情報は、共通の道路セグメントに関連付けられている、受信することと、
前記共通の道路セグメントに関連付けられた前記ナビゲーション情報を前記非一時的記憶媒体に記憶することと、
前記複数の車両からの前記ナビゲーション情報に基づいて、前記共通の道路セグメントのための自律車両道路ナビゲーションモデルの少なくとも一部を生成することであって、前記共通の道路セグメントのための前記自律車両道路ナビゲーションモデルは、前記共通の道路セグメントに沿って延びる路面特徴の少なくとも1つの線表現を含み、各線表現は、前記路面特徴に実質的に対応する前記共通の道路セグメントに沿った経路を表し、前記路面特徴は、前記複数の車両が前記共通の道路セグメントを走行する際に取得された複数の画像の画像分析を通して識別される、生成することと、
前記ネットワークインタフェースを使用して、前記共通の道路セグメントに沿って1つ又は複数の自律車両を自律的にナビゲーションするのに使用するために前記自律車両道路ナビゲーションモデルを前記1つ又は複数の自律車両に配信することと、
を行うように構成される、
システム。
(項目28)前記自律車両道路ナビゲーションモデルは、地図、画像、又は衛星画像上に重ねられるように構成される、項目27に記載のシステム。
(項目29)前記複数の道路特徴は、道路縁部又はレーンマークを含む、項目27に記載のシステム。
(項目30)前記自律車両道路ナビゲーションモデルの少なくとも一部を生成することは、前記複数の画像の画像分析に基づいて、前記共通の道路セグメントに関連付けられた複数の陸標を識別することを含む、項目27に記載のシステム。
(項目31)前記自律車両道路ナビゲーションモデルの少なくとも一部を生成することは、前記陸標が出現する画像の、前記陸標が出現しない画像に対する比率が閾値を超える場合、陸標候補を受け入れることを更に含む、項目30に記載のシステム。
(項目32)前記自律車両道路ナビゲーションモデルの少なくとも一部を生成することは、前記陸標が出現しない画像の、前記陸標が出現する画像に対する比率が閾値を超える場合、陸標候補を拒絶することを更に含む、項目30に記載のシステム。
(項目33)命令を記憶する非一時的コンピュータ可読媒体であって、前記命令は、少なくとも1つの処理デバイスによって実行されると、サーバに、
複数の車両からナビゲーション情報を受信することであって、前記複数の車両からの前記ナビゲーション情報は、共通の道路セグメントに関連付けられている、受信することと、
前記共通の道路セグメントに関連付けられた前記ナビゲーション情報を記憶することと、
前記複数の車両からの前記ナビゲーション情報に基づいて、前記共通の道路セグメントのための自律車両道路ナビゲーションモデルの少なくとも一部を生成することであって、前記共通の道路セグメントのための前記自律車両道路ナビゲーションモデルは、前記共通の道路セグメントに沿って延びる路面特徴の少なくとも1つの線表現を含み、各線表現は、前記路面特徴に実質的に対応する前記共通の道路セグメントに沿った経路を表し、前記路面特徴は、前記複数の車両が前記共通の道路セグメントを走行する際に取得された複数の画像の画像分析を通して識別される、生成することと、
前記共通の道路セグメントに沿って1つ又は複数の自律車両を自律的にナビゲーションするのに使用するために前記自律車両道路ナビゲーションモデルを前記1つ又は複数の自律車両に配信することと、
を行わせる、非一時的コンピュータ可読媒体。
(項目34)前記自律車両道路ナビゲーションモデルは、地図、画像、又は衛星画像上に重ねられるように構成される、項目33に記載の非一時的コンピュータ可読媒体。
(項目35)前記複数の道路特徴は、道路縁部又はレーンマークを含む、項目33に記載の非一時的コンピュータ可読媒体。
(項目36)前記自律車両道路ナビゲーションモデルの少なくとも一部を生成する前記命令は、前記複数の画像の画像分析に基づいて、前記共通の道路セグメントに関連付けられた複数の陸標を識別する命令を含む、項目33に記載の非一時的コンピュータ可読媒体。
(項目37)前記自律車両道路ナビゲーションモデルの少なくとも一部を生成する前記命令は、前記陸標が出現する画像の、前記陸標が出現しない画像に対する比率が閾値を超える場合、陸標候補を受け入れる命令を更に含む、項目36に記載の非一時的コンピュータ可読媒体。
(項目38)前記自律車両道路ナビゲーションモデルの少なくとも一部を生成する前記命令は、前記陸標が出現しない画像の、前記陸標が出現する画像に対する比率が閾値を超える場合、陸標候補を拒絶する命令を更に含む、項目36に記載の非一時的コンピュータ可読媒体。
(項目39)道路セグメントに沿って車両を自律的にナビゲーションするシステムであって、少なくとも1つの処理デバイスを含み、前記少なくとも1つの処理デバイスは、
疎な地図モデルを受信することであって、前記疎な地図モデルは、前記道路セグメントに沿って延びる路面特徴の少なくとも1つの線表現を含み、各線表現は、前記路面特徴に実質的に対応する前記道路セグメントに沿った経路を表す、受信することと、
カメラから、前記車両の環境を表す少なくとも1つの画像を受信することと、
前記疎な地図モデル及び前記カメラから受信された前記少なくとも1つの画像を分析することと、
前記疎な地図モデル及び前記カメラから受信された前記少なくとも1つの画像の前記分析に基づいて前記車両の自律ナビゲーション応答を決定することと、
を行うように構成される、システム。
(項目40)前記路面特徴は、道路縁部又はレーンマークを含む、項目39に記載のシステム。
(項目41)前記疎な地図モデル及び前記カメラから受信された前記少なくとも1つの画像の前記分析は、前記道路セグメントに沿って延びる路面特徴の前記少なくとも1つの線表現に沿った長手方向位置に対する前記車両の現在位置を特定することを含む、項目39に記載のシステム。
(項目42)前記道路セグメントに沿って延びる路面特徴の前記少なくとも1つの線表現に沿った長手方向位置に対する前記車両の現在位置を特定することは、前記少なくとも1つの画像における少なくとも1つの認識された陸標の識別に基づく、項目41に記載のシステム。
(項目43)前記少なくとも1つの処理デバイスは、前記長手方向位置に対する前記車両の予期位置及び前記流れ方向位置に対する前記車両の前記現在位置に基づいて推定オフセットを特定するように更に構成される、項目42に記載のシステム。
(項目44)前記自律ナビゲーション応答は、前記推定オフセットに更に基づく、項目43に記載のシステム。
(項目45)前記少なくとも1つの処理デバイスは、前記自律ナビゲーション応答に基づいて前記車両の操舵システムを調整するように更に構成される、項目39に記載のシステム。
(項目46)道路セグメントに沿って車両を自律的にナビゲーションする方法であって、
疎な地図モデルを受信することであって、前記疎な地図モデルは、前記道路セグメントに沿って延びる路面特徴の少なくとも1つの線表現を含み、各線表現は、前記路面特徴に実質的に対応する前記道路セグメントに沿った経路を表す、受信することと、
カメラから、前記車両の環境を表す少なくとも1つの画像を受信することと、
前記疎な地図モデル及び前記カメラから受信された前記少なくとも1つの画像を分析することと、
前記疎な地図モデル及び前記カメラから受信された前記少なくとも1つの画像の前記分析に基づいて前記車両の自律ナビゲーション応答を決定することと、
を含む方法。
(項目47)前記疎な地図モデル及び前記カメラから受信された前記少なくとも1つの画像を分析することは、前記道路セグメントに沿って延びる路面特徴の前記少なくとも1つの線表現に沿った長手方向位置に対する前記車両の現在位置を特定することを含む、項目46に記載の方法。
(項目48)前記道路セグメントに沿って延びる路面特徴の前記少なくとも1つの線表現に沿った長手方向位置に対する前記車両の現在位置を特定することは、前記少なくとも1つの画像における少なくとも1つの認識された陸標の識別に基づく、項目47に記載の方法。
(項目49)前記長手方向位置に対する前記車両の予期位置及び前記長手方向位置に対する前記車両の前記現在位置に基づいて推定オフセットを特定することを更に含む、項目48に記載の方法。
(項目50)前記自律ナビゲーション応答は、前記推定オフセットに更に基づく、項目49に記載の方法。
(項目51)前記自律ナビゲーション応答に基づいて前記車両の操舵システムを調整することを更に含む、項目46に記載の方法。
(項目52)命令を記憶する非一時的コンピュータ可読媒体であって、前記命令は、少なくとも1つの処理デバイスによって実行されると、前記デバイスに、
疎な地図モデルを受信することであって、前記疎な地図モデルは、前記道路セグメントに沿って延びる路面特徴の少なくとも1つの線表現を含み、各線表現は、前記路面特徴に実質的に対応する前記道路セグメントに沿った経路を表す、受信することと、
カメラから、車両の環境を表す少なくとも1つの画像を受信することと、
前記疎な地図モデル及び前記カメラから受信された前記少なくとも1つの画像を分析することと、
前記疎な地図モデル及び前記カメラから受信された前記少なくとも1つの画像の前記分析に基づいて前記車両の自律ナビゲーション応答を決定することと、
を行わせる、非一時的コンピュータ可読媒体。
(項目53)前記道路特徴は、道路縁部又はレーンマークを含む、項目52に記載の非一時的コンピュータ可読媒体。
(項目54)前記疎な地図モデル及び前記カメラから受信された前記少なくとも1つの画像の分析は、前記道路セグメントに沿って延びる路面特徴の前記少なくとも1つの線表現に沿った長手方向位置に対する前記車両の現在位置を特定することを含む、項目52に記載の非一時的コンピュータ可読媒体。
(項目55)前記道路セグメントに沿って延びる路面特徴の前記少なくとも1つの線表現に沿った長手方向位置に対する前記車両の現在位置を特定することは、前記少なくとも1つの画像における少なくとも1つの認識された陸標の識別に基づく、項目54に記載の非一時的コンピュータ可読媒体。
(項目56)前記長手方向位置に対する前記車両の予期位置及び前記長手方向位置に対する前記車両の前記現在位置に基づいて推定オフセットを特定する命令を更に記憶する、項目55に記載の非一時的コンピュータ可読媒体。
(項目57)前記自律ナビゲーション応答は、前記推定オフセットに更に基づく、項目56に記載の非一時的コンピュータ可読媒体。
(項目58)前記自律ナビゲーション応答に基づいて前記車両の操舵システムを調整する命令を更に記憶する、項目52に記載の非一時的コンピュータ可読媒体。
(項目59)道路セグメントに沿って延びる路面特徴の線表現を特定する方法であって、前記路面特徴の前記線表現は、自律車両ナビゲーションで使用されるように構成され、前記方法は、
サーバにより、前記路面特徴に関連付けられた位置情報を含む運転データの第1の組を受信することであって、前記位置情報は、前記道路セグメントの画像の分析に基づいて特定される、受信することと、
サーバにより、前記路面特徴に関連付けられた位置情報を含む運転データの第2の組を受信することであって、前記位置情報は、前記道路セグメントの画像の分析に基づいて特定される、受信することと、
前記運転データの第1の組を第1の運転パッチにセグメント化し、且つ前記運転データの第2の組を第2の運転パッチにセグメント化することと、
前記運転データの第1の組を、対応するパッチ内の前記運転データの第2の組に長手方向に位置合わせすることと、
前記第1のドラフトパッチ及び前記第2のドラフトパッチにおける前記長手方向に位置合わせされた第1の運転データ及び第2の運転データに基づいて前記路面特徴の前記線表現を特定することと、
を含む、方法。
(項目60)前記路面特徴は、道路縁部又はレーンマークを含む、項目59に記載の方法。
(項目61)前記線表現を特定することは、前記運転データの第1の組又は前記運転データの第2の組の少なくとも一方の一部として取得されたGPSデータに基づく前記線表現のグローバル座標との位置合わせを含む、項目59に記載の方法。
(項目62)前記線表現を特定することは、平均変換の組であって、前記平均変換のそれぞれは、順次パッチにわたる前記運転データの第1の組からのリンクデータ及び順次パッチにわたる前記運転データの第2の組からのリンクデータを特定した変換に基づく、平均変換の組を決定及び適用することを更に含む、項目59に記載の方法。
(項目63)前記路面特徴の前記線表現を少なくとも1つの地理画像上に重ね合わせることを更に含む、項目59に記載の方法。
(項目64)前記地理画像は、衛星画像である、項目63に記載の方法。
(項目65)前記データの第1の組及び前記データの第2の組は、複数の陸標に関連付けられた位置情報を更に含む、項目59に記載の方法。
(項目66)道路セグメントに沿って延びる路面特徴の線表現を特定するシステムであって、前記路面特徴の前記線表現は、自律車両ナビゲーションで使用されるように構成され、前記システムは、少なくとも1つの処理デバイスを含み、前記少なくとも1つの処理デバイスは、
前記路面特徴に関連付けられた位置情報を含む運転データの第1の組を受信することであって、前記位置情報は、前記道路セグメントの画像の分析に基づいて特定される、受信することと、
前記路面特徴に関連付けられた位置情報を含む運転データの第2の組を受信することであって、前記位置情報は、前記道路セグメントの画像の分析に基づいて特定される、受信することと、
前記運転データの第1の組を第1の運転パッチにセグメント化し、且つ前記運転データの第2の組を第2の運転パッチにセグメント化することと、
前記運転データの第1の組を、対応するパッチ内の前記運転データの第2の組に長手方向に位置合わせすることと、
前記第1のドラフトパッチ及び前記第2のドラフトパッチにおける前記長手方向に位置合わせされた第1の運転データ及び第2の運転データに基づいて前記路面特徴の前記線表現を特定することと、
を行うように構成される、システム。
(項目67)前記路面特徴は、道路縁部又はレーンマークを含む、項目66に記載のシステム。
(項目68)前記線表現を特定することは、前記運転データの第1の組又は前記運転データの第2の組の少なくとも一方の一部として取得されたGPSデータに基づく前記線表現のグローバル座標との位置合わせを含む、項目66に記載のシステム。
(項目69)前記線表現を特定することは、平均変換の組であって、前記平均変換のそれぞれは、順次パッチにわたる前記運転データの第1の組からのリンクデータ及び順次パッチにわたる前記運転データの第2の組からのリンクデータを特定した変換に基づく、平均変換の組を決定及び適用することを更に含む、項目66に記載のシステム。
(項目70)前記路面特徴の前記線表現を少なくとも1つの地理画像上に重ね合わせることを更に含む、項目66に記載のシステム。
(項目71)前記データの第1の組及び前記データの第2の組は、複数の陸標に関連付けられた位置情報を更に含む、項目66に記載のシステム。
(項目72)命令を記憶する非一時的コンピュータ可読媒体であって、前記命令は、少なくとも1つの処理デバイスによって実行されると、前記デバイスに、
路面特徴に関連付けられた位置情報を含む運転データの第1の組を受信することであって、前記位置情報は、前記道路セグメントの画像の分析に基づいて特定される、受信することと、
前記路面特徴に関連付けられた位置情報を含む運転データの第2の組を受信することであって、前記位置情報は、前記道路セグメントの画像の分析に基づいて特定される、受信することと、
前記運転データの第1の組を第1の運転パッチにセグメント化し、且つ前記運転データの第2の組を第2の運転パッチにセグメント化することと、
前記運転データの第1の組を、対応するパッチ内の前記運転データの第2の組に長手方向に位置合わせすることと、
前記第1のドラフトパッチ及び前記第2のドラフトパッチにおける前記長手方向に位置合わせされた第1の運転データ及び第2の運転データに基づいて前記路面特徴の前記線表現を特定することと、
を行わせる、非一時的コンピュータ可読媒体。
(項目73)前記路面特徴は、道路縁部又はレーンマークを含む、項目72に記載の非一時的コンピュータ可読媒体。
(項目74)前記線表現を特定することは、前記運転データの第1の組又は前記運転データの第2の組の少なくとも一方の一部として取得されたGPSデータに基づく前記線表現のグローバル座標との位置合わせを含む、項目72に記載の非一時的コンピュータ可読媒体。
(項目75)前記線表現を特定することは、平均変換の組であって、前記平均変換のそれぞれは、順次パッチにわたる前記運転データの第1の組からのリンクデータ及び順次パッチにわたる前記運転データの第2の組からのリンクデータを特定した変換に基づく、平均変換の組を決定及び適用することを更に含む、項目72に記載の非一時的コンピュータ可読媒体。
(項目76)前記路面特徴の前記線表現を少なくとも1つの地理画像上に重ね合わせることを更に含む、項目72に記載の非一時的コンピュータ可読媒体。
(項目77)前記地理画像は、衛星画像である、項目76に記載の非一時的コンピュータ可読媒体。
(項目78)前記データの第1の組及び前記データの第2の組は、複数の陸標に関連付けられた位置情報を更に含む、項目72に記載の非一時的コンピュータ可読媒体。
(項目79)道路セグメントの路面情報を収集するシステムであって、少なくとも1つの処理デバイスを含み、前記少なくとも1つの処理デバイスは、
カメラから、前記道路セグメントの一部を表す少なくとも1つの画像を受信することと、
前記少なくとも1つの画像において、前記道路セグメントの前記一部に沿った少なくとも1つの路面特徴を識別することと、
車両のローカル座標系に従って、前記路面特徴に関連付けられた複数の位置を特定することと、
前記特定された複数の位置を前記車両からサーバに送信することであって、前記特定された位置は、前記サーバによる、前記道路セグメントに沿って延びる前記路面特徴の線表現の特定を可能にするように構成され、前記線表現は、前記路面特徴に実質的に対応する前記道路セグメントに沿った経路を表す、送信することと、
を行うように構成される、システム。
(項目80)前記少なくとも1つの路面特徴は、道路縁部を含む、項目79に記載のシステム。
(項目81)前記少なくとも1つの路面特徴は、レーンマークを含む、項目79に記載のシステム。
(項目82)前記少なくとも1つの処理デバイスは、前記サーバから前記線表現を受信するように更に構成される、項目79に記載のシステム。
(項目83)前記少なくとも1つの処理デバイスは、前記路面特徴の前記線表現を少なくとも1つの地理画像上に重ね合わせるように更に構成される、項目82に記載のシステム。
(項目84)前記地理画像は、衛星画像である、項目83に記載のシステム。
(項目85)道路セグメントの路面情報を収集する方法であって、
カメラから、前記道路セグメントの一部を表す少なくとも1つの画像を受信することと、
前記少なくとも1つの画像において、前記道路セグメントの前記一部に沿った少なくとも1つの路面特徴を識別することと、
車両のローカル座標系に従って、前記路面特徴に関連付けられた複数の位置を特定することと、
前記特定された複数の位置を前記車両からサーバに送信することであって、前記特定された位置は、前記サーバによる、前記道路セグメントに沿って延びる前記路面特徴の線表現の特定を可能にするように構成され、前記線表現は、前記路面特徴に実質的に対応する前記道路セグメントに沿った経路を表す、送信することと、
を含む、方法。
(項目86)前記少なくとも1つの路面特徴は、道路縁部を含む、項目85に記載の方法。
(項目87)前記少なくとも1つの路面特徴は、レーンマークを含む、項目85に記載の方法。
(項目88)前記サーバから前記線表現を受信することを更に含む、項目85に記載の方法。
(項目89)前記路面特徴の前記線表現を少なくとも1つの地理画像上に重ね合わせることを更に含む、項目88に記載の方法。
(項目90)前記地理画像は、衛星画像である、項目89に記載の方法。
(項目91)命令を記憶する非一時的コンピュータ可読媒体であって、前記命令は、少なくとも1つの処理デバイスによって実行されると、前記デバイスに、
カメラから、道路セグメントの一部を表す少なくとも1つの画像を受信することと、
前記少なくとも1つの画像において、前記道路セグメントの前記一部に沿った少なくとも1つの路面特徴を識別することと、
車両のローカル座標系に従って、前記路面特徴に関連付けられた複数の位置を特定することと、
前記特定された複数の位置を前記車両からサーバに送信することであって、前記特定された位置は、前記サーバによる、前記道路セグメントに沿って延びる前記路面特徴の線表現の特定を可能にするように構成され、前記線表現は、前記路面特徴に実質的に対応する前記道路セグメントに沿った経路を表す、送信することと、
を行わせる、非一時的コンピュータ可読媒体。
(項目92)前記少なくとも1つの路面特徴は、道路縁部を含む、項目91に記載の非一時的コンピュータ可読媒体。
(項目93)前記少なくとも1つの路面特徴は、レーンマークを含む、項目91に記載の非一時的コンピュータ可読媒体。
(項目94)前記少なくとも1つの処理デバイスは、前記サーバから前記線表現を受信するように更にプログラムされる、項目91に記載の非一時的コンピュータ可読媒体。
(項目95)前記少なくとも1つの処理デバイスは、前記路面特徴の前記線表現を少なくとも1つの地理画像上に重ね合わせるように更にプログラムされる、項目94に記載の非一時的コンピュータ可読媒体。
(項目96)前記地理画像は、衛星画像である、項目95に記載の非一時的コンピュータ可読媒体。
(項目97)道路セグメントを移動している車両の位置を修正するシステムであって、少なくとも1つの処理デバイスを含み、前記少なくとも1つの処理デバイスは、
少なくとも1つのナビゲーションセンサの出力に基づいて、所定の道路モデル軌道に沿った前記車両の測定位置を特定することであって、前記所定の道路モデル軌道は、前記道路セグメントに関連付けられている、特定することと、
画像捕捉デバイスから、前記車両の環境を表す少なくとも1つの画像を受信することと、
少なくとも1つのレーンマークを識別するために前記少なくとも1つの画像を分析することであって、前記少なくとも1つのレーンマークは、前記道路セグメントに沿った走行レーンに関連付けられている、分析することと、
前記少なくとも1つの画像に基づいて、前記車両から前記少なくとも1つのレーンマークへの距離を特定することと、
前記車両の前記測定位置及び前記特定された距離に基づいて、前記所定の道路モデル軌道からの前記車両の推定オフセットを特定することと、
前記車両の前記位置を修正するために、前記推定オフセットに基づいて前記車両の自律操舵動作を決定することと、
を行うように構成される、システム。
(項目98)前記所定の道路モデル軌道は、前記道路セグメントに沿った目標軌道の三次元多項式表現を含む、項目97に記載のシステム。
(項目99)前記少なくとも1つの処理デバイスは、前記自律操舵動作に基づいて前記車両の操舵システムを調整するように更に構成される、項目97に記載のシステム。
(項目100)前記推定オフセットを特定することは、前記少なくとも1つのレーンマークへの前記距離に基づいて、前記車両が、前記少なくとも1つのレーンマークと交差する軌道上にあるか否かを特定することを更に含む、項目97に記載のシステム。
(項目101)前記推定オフセットを特定することは、前記少なくとも1つのレーンマークへの前記距離に基づいて、前記車両が前記少なくとも1つのレーンマークの所定の閾値内にあるか否かを特定することを更に含む、項目97に記載のシステム。
(項目102)前記少なくとも1つのナビゲーションセンサは、速度センサ又は加速度計を含む、項目97に記載のシステム。
(項目103)前記車両の前記自律操舵動作を決定することは、前記所定の道路モデル軌道の少なくとも1つの導関数を解くことを更に含む、項目97に記載のシステム。
(項目104)道路セグメントを移動している車両の位置を修正する方法であって、
少なくとも1つのナビゲーションセンサの出力に基づいて、所定の道路モデル軌道に沿った前記車両の測定位置を特定することであって、前記所定の道路モデル軌道は、前記道路セグメントに関連付けられている、特定することと、
画像捕捉デバイスから、前記車両の環境を表す少なくとも1つの画像を受信することと、
少なくとも1つのレーンマークを識別するために前記少なくとも1つの画像を分析することであって、前記少なくとも1つのレーンマークは、前記道路セグメントに沿った走行レーンに関連付けられている、分析することと、
前記少なくとも1つの画像に基づいて、前記車両から前記少なくとも1つのレーンマークへの距離を特定することと、
前記車両の前記測定位置及び前記特定された距離に基づいて、前記所定の道路モデル軌道からの前記車両の推定オフセットを特定することと、
前記車両の前記位置を修正するために、前記推定オフセットに基づいて前記車両の自律操舵動作を決定することと、
を含む、方法。
(項目105)前記自律操舵動作に基づいて前記車両の操舵システムを調整することを更に含む、項目104に記載の方法。
(項目106)前記推定オフセットを特定することは、前記少なくとも1つのレーンマークへの前記距離に基づいて、前記車両が、前記少なくとも1つのレーンマークと交差する軌道上にあるか否かを特定することを更に含む、項目104に記載の方法。
(項目107)前記推定オフセットを特定することは、前記少なくとも1つのレーンマークへの前記距離に基づいて、前記車両が前記少なくとも1つのレーンマークの所定の閾値内にあるか否かを特定することを更に含む、項目104に記載の方法。
(項目108)前記車両の前記自律操舵動作を決定することは、前記所定の道路モデル軌道の少なくとも1つの導関数を解くことを更に含む、項目104に記載の方法。
(項目109)命令を記憶する非一時的コンピュータ可読媒体であって、前記命令は、少なくとも1つの処理デバイスによって実行されると、前記デバイスに、
少なくとも1つのナビゲーションセンサの出力に基づいて、所定の道路モデル軌道に沿った車両の測定位置を特定することであって、前記所定の道路モデル軌道は、前記道路セグメントに関連付けられている、特定することと、
画像捕捉デバイスから、前記車両の環境を表す少なくとも1つの画像を受信することと、
少なくとも1つのレーンマークを識別するために前記少なくとも1つの画像を分析することであって、前記少なくとも1つのレーンマークは、前記道路セグメントに沿った走行レーンに関連付けられている、分析することと、
前記少なくとも1つの画像に基づいて、前記車両から前記少なくとも1つのレーンマークへの距離を特定することと、
前記車両の前記測定位置及び前記特定された距離に基づいて、前記所定の道路モデル軌道からの前記車両の推定オフセットを特定することと、
前記車両の前記位置を修正するために、前記推定オフセットに基づいて前記車両の自律操舵動作を決定することと、
を行わせる、非一時的コンピュータ可読媒体。
(項目110)前記所定の道路モデル軌道は、前記道路セグメントに沿った目標軌道の三次元多項式表現を含む、項目109に記載の非一時的コンピュータ可読媒体。
(項目111)前記自律操舵動作に基づいて前記車両の操舵システムを調整する命令を更に記憶する、項目109に記載の非一時的コンピュータ可読媒体。
(項目112)前記推定オフセットを特定する前記命令は、前記少なくとも1つのレーンマークへの前記距離に基づいて、前記車両が、前記少なくとも1つのレーンマークと交差する軌道上にあるか否かを特定する命令を更に含む、項目109に記載の非一時的コンピュータ可読媒体。
(項目113)前記推定オフセットを特定する前記命令は、前記少なくとも1つのレーンマークへの前記距離に基づいて、前記車両が前記少なくとも1つのレーンマークの所定の閾値内にあるか否かを特定する命令を更に含む、項目109に記載の非一時的コンピュータ可読媒体。
(項目114)前記車両の前記自律操舵動作を決定する前記命令は、前記所定の道路モデル軌道の少なくとも1つの導関数を解く命令を更に含む、項目109に記載の非一時的コンピュータ可読媒体。