以下の詳細な説明は、添付図面を参照する。可能な場合には常に、図面及び以下の説明において、同じ又は同様の部分を指すのに同じ参照番号が使用される。幾つかの例示的な実施形態は、本明細書で説明されるが、変更形態、適応形態及び他の実装形態が可能である。例えば、図面に示される構成要素に対する置換形態、追加形態又は変更形態がなされ得て、本明細書に記載される例示的な方法は、開示される方法のステップの置換、順序替え、削除又は追加により変更することができる。従って、以下の詳細な説明は、開示される実施形態及び例に限定されない。その代わり、適切な範囲は、添付の特許請求の範囲により規定される。
自律車両の概要
本開示の全体を通して使用するとき、「自律車両」という用語は、ドライバーの入力なしで少なくとも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ピクセル画像捕捉デバイスであり得る。そのような画像捕捉デバイスは、3次元画像捕捉デバイス構成の代わりに使用し得る。大きいレンズ歪みに起因して、そのような画像捕捉デバイスの垂直FOVは、画像捕捉デバイスが半径方向に対称なレンズを使用する実装形態では、50度よりはるかに低くなり得る。例えば、そのようなレンズは、半径方向で対称ではなく、それにより、水平FOV100度で、50度よりも大きい垂直FOVが可能である。
第1の画像捕捉デバイス122は、車両200に関連付けられたシーンに対して複数の第1の画像を取得し得る。複数の第1の画像は、それぞれ一連の画像走査線として取得し得て、これらはローリングシャッタを使用して捕捉し得る。各走査線は複数のピクセルを含み得る。
第1の画像捕捉デバイス122は、第1の一連の画像走査線のそれぞれの取得に関連付けられた走査率を有し得る。走査率は、画像センサが、特定の走査線に含まれる各ピクセルに関連付けられた画像データを取得することができる率を指し得る。
画像捕捉デバイス122、124及び126は、例えば、CCDセンサ又はCMOSセンサを含め、任意の適するタイプ及び数の画像センサを含み得る。1つの実施形態では、CMOS画像センサはローリングシャッタと共に利用し得て、それにより、行内の各ピクセルは一度に1つずつ読み取られ、行の走査は、画像フレーム全体が捕捉されるまで行ごとに進められる。幾つかの実施形態では、行は、フレームに対して上から下に順次捕捉し得る。
幾つかの実施形態では、本明細書に開示される画像捕捉デバイス(例えば、画像捕捉デバイス122、124及び126)の1つ又は複数は、高解像度イメージャを構成し得て、5Mピクセル超、7Mピクセル超、10Mピクセル超又はそれを超える解像度を有し得る。
ローリングシャッタの使用により、異なる行内のピクセルは異なるときに露出され捕捉されることになり得て、それにより、スキュー及び他の画像アーチファクトが捕捉画像フレームで生じ得る。他方、画像捕捉デバイス122がグローバル又は同期シャッタを用いて動作するように構成される場合、全ピクセルは、同量の時間にわたり、共通の露出期間中に露出し得る。その結果、グローバルシャッタを利用するシステムから収集されるフレーム内の画像データは、特定のときのFOV全体(FOV202等)のスナップショットを表す。それとは逆に、ローリングシャッタを適用する場合、フレーム内の各行が露出され、データは異なる時間に捕捉される。従って、移動中の物体は、ローリングシャッタを有する画像捕捉デバイスでは歪んで見えることがある。この現象について以下により詳細に説明する。
第2の画像捕捉デバイス124及び第3の画像捕捉デバイス126は、任意のタイプの画像捕捉デバイスであり得る。第1の画像捕捉デバイス122のように、画像捕捉デバイス124及び126のそれぞれは、光軸を含み得る。1つの実施形態では、画像捕捉デバイス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つ又は複数のカメラを含み得る。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つ以上の異なる位置から捕捉画像、異なる視野から捕捉画像、異なる焦点距離を使用して捕捉画像、視差情報付きで捕捉画像等を含み得る。
例えば、1つの実施形態では、システム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つ又は複数の処理デバイスにより実行し得る。
1つの実施形態では、単眼画像分析モジュール402は、処理ユニット110によって実行されるとき、画像捕捉デバイス122、124及び126の1つによって取得される画像の組の単眼画像分析を実行する命令(コンピュータビジョンソフトウェア等)を記憶し得る。幾つかの実施形態では、処理ユニット110は、画像の組からの情報を追加の感覚情報(例えば、レーダやライダ等からの情報)と結合して単眼画像分析を実行し得る。図5A~図5Dに関連して以下で説明するように、単眼画像分析モジュール402は、レーンマーク、車両、歩行者、道路標識、高速道路出口ランプ、信号機、危険物及び車両の環境に関連付けられた他の任意の特徴等、画像の組内の特徴の組を検出するための命令を含み得る。分析に基づいて、システム100は、ナビゲーション応答モジュール408に関連して以下で考察するように、ターン、レーンシフト及び加速度変更等の1つ又は複数のナビゲーション応答を車両200において生じさせ得る(例えば、処理ユニット110を介して)。
1つの実施形態では、立体画像分析モジュール404は命令(コンピュータビジョンソフトウェア等)を記憶し得て、命令は、処理ユニット110により実行されると、画像捕捉デバイス122、124及び126から選択される画像捕捉デバイスの組み合わせにより取得される第1及び第2の組の画像の立体画像分析を実行する。幾つかの実施形態では、処理ユニット110は、第1及び第2の組の画像からの情報を追加の感覚情報(例えば、レーダからの情報)と結合して、立体画像分析を実行し得る。例えば、立体画像分析モジュール404は、画像捕捉デバイス124により取得される第1の組の画像及び画像捕捉デバイス126により取得される第2の組の画像に基づいて、立体画像分析を実行する命令を含み得る。以下で図6に関連して説明するように、立体画像分析モジュール404は、レーンマーク、車両、歩行者、道路標識、高速道路出口ランプ、信号機及び危険物等の第1及び第2の組の画像内の特徴の組を検出する命令を含み得る。分析に基づいて、処理ユニット110は、ナビゲーション応答モジュール408に関連して後述するように、ターン、レーンシフト及び加速度変更等の1つ又は複数のナビゲーション応答を車両200において生じさせ得る。更に、幾つかの実施形態では、立体画像分析モジュール404は、トレーニング済みシステム(ニューラルネットワーク又はディープニューラルネットワーク等)又は、コンピュータビジョンアルゴリズムを使用して、感覚情報が捕捉及び処理された環境内の物体を検出及び/又はラベル付けするように構成され得るシステム等のトレーニングされていないシステムに関連する技法を実装することができる。1つの実施形態では、立体画像分析モジュール404及び/又は他の画像処理モジュールは、トレーニング済みシステムとトレーニングされていないシステムとの組み合わせを使用するように構成され得る。
1つの実施形態では、速度及び加速度モジュール406は、車両200の速度及び/又は加速度を変更させるように構成される車両200内の1つ又は複数の計算及び電気機械デバイスから受信されるデータを分析するように構成されるソフトウェアを記憶し得る。例えば、処理ユニット110は、速度及び加速度モジュール406に関連付けられた命令を実行して、単眼画像分析モジュール402及び/又は立体画像分析モジュール404の実行から導出されるデータに基づいて、車両200の目標速度を計算し得る。そのようなデータとしては、例えば、目標位置、速度及び/又は加速度、付近の車両、歩行者又は道路物体に対する車両200の位置及び/又は速度及び道路のレーンマークに対する車両200の位置情報等を挙げ得る。加えて、処理ユニット110は、感覚入力(例えば、レーダからの情報)と、車両200のスロットルシステム220、ブレーキシステム230及び/又は操舵システム240等の車両200の他のシステムからの入力とに基づいて、車両200の目標速度を計算し得る。計算される目標速度に基づいて、処理ユニット110は、電子信号を車両200のスロットルシステム220、ブレーキシステム230及び/又は操舵システム240に送信して、例えば車両200のブレーキを物理的に弱めるか、又はアクセルを弱めることにより速度及び/又は加速度の変更をトリガーし得る。
1つの実施形態では、ナビゲーション応答モジュール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メートルの範囲内にあり得る。1つの実施形態では、処理ユニット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において特定されるナビゲーション情報を分析し得る。1つの実施形態では、処理ユニット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~図28Cを参照して以下で論じられる。
自律車両ナビゲーションのための疎な道路モデル
幾つかの実施形態では、開示されるシステム及び方法は、自律車両ナビゲーションのために疎なマップを使用し得る。具体的には、疎なマップは、道路区分に沿った自律車両ナビゲーションのためであり得る。例えば、疎なマップは、大量のデータを記憶及び/又は更新することなく、自律車両をナビゲートするための十分な情報を提供し得る。以下で更に詳細に論じるように、自律車両は、疎なマップを使用して、1つ又は複数の記憶される軌道に基づいて1つ又は複数の道路をナビゲートし得る。
自律車両ナビゲーションのための疎なマップ
幾つかの実施形態では、開示されるシステム及び方法は、自律車両ナビゲーションのために疎なマップを作成し得る。例えば、疎なマップは、過度のデータストレージ又はデータ転送速度を必要とすることなく、ナビゲーションに十分な情報を提供し得る。以下で更に詳細に論じるように、車両(自律車両であり得る)は、疎なマップを使用して1つ又は複数の道路をナビゲートし得る。例えば、幾つかの実施形態では、疎なマップは、道路に関連するデータ、及び車両ナビゲーションに十分であり得るが、小さなデータフットプリントも示す道路に沿った潜在的な陸標を含み得る。例えば、以下で詳細に説明する疎なデータマップは、道路に沿って収集される画像データ等の詳細なマップ情報を含むデジタルマップと比較して、必要な記憶領域及びデータ転送帯域幅が大幅に少なくなり得る。
例えば、道路区分の詳細な表現を記憶するのではなく、疎なデータマップは、道路に沿った好ましい車両経路の3次元多項式表現を記憶し得る。これらの経路は、データ記憶領域をほとんど必要とし得ない。更に、説明される疎なデータマップでは、ナビゲーションを支援するために、陸標が識別され、疎なマップ道路モデルに含まれ得る。これらの陸標は、車両ナビゲーションを可能にするのに適した任意の間隔で配置され得るが、場合によっては、高密度及び短い間隔で、そのような陸標を識別し、モデルに含める必要はない。むしろ、場合によっては、少なくとも50メートル、少なくとも100メートル、少なくとも500メートル、少なくとも1キロメートル、又は少なくとも2キロメートル離れた陸標に基づいてナビゲーションが可能であり得る。他の節でより詳細に論じるように、疎なマップは、車両が道路に沿って移動するときに、画像捕捉デバイス、全地球測位システムセンサ、移動センサ等の様々なセンサ及びデバイスを備えた車両によって収集又は測定されるデータに基づいて生成され得る。場合によっては、疎なマップは、特定の道路に沿った1つ又は複数の車両の複数の走行中に収集されるデータに基づいて生成され得る。1つ又は複数の車両の複数の走行を使用して疎なマップを生成することは、疎なマップの「クラウドソーシング」と呼ばれ得る。
開示される実施形態によれば、自律車両システムは、ナビゲーションのために疎なマップを使用し得る。例えば、開示されるシステム及び方法は、自律車両のための道路ナビゲーションモデルを生成するための疎なマップを配信し得て、疎なマップ及び/又は生成される道路ナビゲーションモデルを使用して道路区分に沿って自律車両をナビゲートし得る。本開示による疎なマップは、自律車両が関連付けられた道路区分に沿って移動するときに横断し得る所定の軌道を表し得る1つ又は複数の3次元輪郭を含み得る。
本開示による疎なマップはまた、1つ又は複数の道路特徴を表すデータを含み得る。そのような道路の特徴には、認識される陸標、道路シグネチャプロファイル、及び車両のナビゲートに有用な他の道路関連特徴が含まれ得る。本開示による疎なマップは、疎なマップに含まれる比較的少量のデータに基づく車両の自律ナビゲーションを可能にし得る。例えば、道路縁部、道路の曲率、道路区分に関連付けられた画像、又は道路区分に関連付けられた他の物理的特徴を詳細に示すデータ等、道路の詳細な表現を含めなくても、疎なマップの開示される実施形態は、比較的少ない記憶領域(及び疎なマップの一部が車両に転送されるときの比較的小さな帯域幅)は必要となり得るが、それでも自律車両ナビゲーションを適切に提供し得る。以下で更に詳細に論じる、開示される疎なマップの小さなデータフットプリントは、幾つかの実施形態では、少量のデータを必要とするが、それでも自律ナビゲーションを可能にする道路関連要素の表現を記憶することによって実現され得る。
例えば、道路の様々な側面の詳細な表現を記憶するのではなく、開示される疎なマップは、車両が道路を追従し得る1つ又は複数の軌道の多項式表現を記憶し得る。従って、開示される疎なマップを使用して、道路に沿ったナビゲーションを可能にするために道路の物理的性質に関する詳細を記憶する(又は転送する必要がある)のではなく、車両は、場合によっては、道路の物理的側面を解釈する必要なしに、むしろ、その走行経路を特定の道路区分に沿った軌道(例えば、多項式スプライン)に位置合わせすることによって、特定の道路区分に沿ってナビゲートされ得る。このようにして、車両は、主に、道路画像、道路パラメータ、道路レイアウト等の記憶を含む手法よりもはるかに少ない記憶領域を必要とし得る、記憶される軌道(例えば、多項式スプライン)に基づいてナビゲートされ得る。
道路区分に沿った軌道の記憶される多項式表現に加えて、開示される疎なマップはまた、道路の特徴を表し得る小さなデータオブジェクトを含み得る。幾つかの実施形態では、小さなデータオブジェクトは、道路区分に沿って走行する車両に搭載されたセンサ(例えば、カメラ又はサスペンションセンサ等の他のセンサ)によって取得されたデジタル画像(又はデジタル信号)から導出されるデジタルシグネチャを含み得る。デジタルシグネチャは、センサによって取得された信号に比べて縮小されたサイズとなり得る。幾つかの実施形態では、デジタルシグネチャは、例えば、その走行中にセンサによって取得される信号から道路特徴を検出及び識別するように構成される分類子関数と互換性があるように作成され得る。幾つかの実施形態では、デジタルシグネチャは、その後に同じ道路区分に沿って走行する車両に搭載されるカメラによって捕捉される道路特徴の画像(又は、記憶されるシグネチャが画像に基づいていない、及び/又は他のデータを含んでいる場合は、センサによって生成されるデジタル信号)に基づいて、道路特徴を記憶されるシグネチャと相関又は一致させる能力を保持しながら、デジタルシグネチャが可能な限り小さいフットプリントを有するように作成され得る。
幾つかの実施形態では、データオブジェクトのサイズは、道路特徴の独自性に更に関連付けられ得る。例えば、車両に搭載されるカメラによって検出可能な道路特徴について、車両に搭載されるカメラシステムが、特定のタイプの道路特徴、例えば、道路標識に関連付けられているものとしてその道路特徴に対応する画像データを区別できる分類子に結合されている場合、及びそのような道路標識がその領域で局所的に一意(例えば、付近に同一の道路標識又は同じタイプの道路標識がない)である場合、道路の特徴のタイプ及びその場所を示すデータを記憶するだけで十分であり得る。
以下で更に詳細に論じるように、道路特徴(例えば、道路区分に沿った陸標)は、比較的数バイトで道路特徴を表し得る小さなデータオブジェクトとして記憶され得て、同時に、ナビゲーションのためにそのような特徴を認識及び使用するための十分な情報を提供し得る。一例では、道路標識は、車両のナビゲーションが基づき得る認識される陸標として識別され得る。道路標識の表現は、例えば、陸標のタイプを示す数バイトのデータ(例えば、一時停止標識)及び陸標の場所(例えば、座標)を示す数バイトのデータを含むように、疎なマップに記憶され得る。陸標のそのようなデータ観点の表現に基づいてナビゲートする(例えば、陸標に基づいて場所を特定し、認識し、ナビゲートするのに十分な表現を使用する)は、疎なマップに関連付けられたデータオーバーヘッドを大幅に増加させることなく、疎なマップに関連付けられた所望のレベルのナビゲーション機能を提供し得る。このような陸標(及び他の道路特徴)の無駄のない表現は、特定の道路特徴を検出、識別、及び/又は分類するように構成される、そのような車両に搭載されるセンサ及びプロセッサを利用し得る。
例えば、標識又は特定のタイプの標識が特定の領域で局所的に一意である場合(例えば、他の標識がない場合、又は同じタイプの他の標識がない場合)、疎なマップは、陸標(標識又は特定のタイプの標識)のタイプを示すデータを使用し得て、自律車両に搭載されるカメラが標識(又は特定のタイプの標識)を含む領域の画像を捕捉するときのナビゲーション(例えば、自律ナビゲーション)中、プロセッサは、画像を処理し、標識を検出し(実際に画像に存在する場合)、画像を標識として(又は特定のタイプの標識として)分類し、画像の場所を疎なマップに記憶されている標識の場所と相関させ得る。
疎なマップの生成
幾つかの実施形態では、疎なマップは、道路区分及び道路区分に関連付けられた複数の陸標に沿って広がる路面特徴の少なくとも1つの線表現を含み得る。特定の態様では、疎なマップは、「クラウドソーシング」を介して、例えば、1つ又は複数の車両が道路区分を横断するときに取得される複数の画像の画像分析を介して生成され得る。
図8は、1つ又は複数の車両、例えば、車両200(自律車両であり得る)が、自律車両ナビゲーションを提供するためにアクセスし得る疎なマップ800を示す。疎なマップ800は、メモリ140又は150等のメモリに記憶され得る。そのようなメモリデバイスは、任意のタイプの非一時的ストレージデバイス又はコンピュータ可読媒体を含み得る。例えば、幾つかの実施形態では、メモリ140又は150は、ハードドライブ、コンパクトディスク、フラッシュメモリ、磁気ベースのメモリデバイス、光学ベースのメモリデバイス等を含み得る。幾つかの実施形態では、疎なマップ800は、メモリ140もしくは150、又は他のタイプのストレージデバイスに記憶され得るデータベース(例えば、マップデータベース160)に記憶され得る。
幾つかの実施形態では、疎なマップ800は、車両200に搭載されるストレージデバイス又は非一時的コンピュータ可読媒体(例えば、車両200に搭載されるナビゲーションシステムに含まれるストレージデバイス)に記憶され得る。車両200に搭載されるプロセッサ(例えば、処理ユニット110)は、車両が道路区分を横断するときに自律車両200を誘導するためのナビゲーション命令を生成するために、車両200に搭載されるストレージデバイス又はコンピュータ可読媒体に記憶される疎なマップ800にアクセスし得る。
ただし、疎なマップ800は、車両に関してローカルに記憶する必要はない。幾つかの実施形態では、疎なマップ800は、車両200又は車両200に関連付けられたデバイスと通信する遠隔サーバ上に提供されるストレージデバイス又はコンピュータ可読媒体に記憶され得る。車両200に搭載されるプロセッサ(例えば、処理ユニット110)は、疎なマップ800に含まれるデータを遠隔サーバから受信し得て、車両200の自動走行を誘導するためのデータを実行し得る。そのような実施形態では、遠隔サーバは、疎なマップ800の全て又はその一部のみを記憶し得る。従って、車両200及び/又は1つ又は複数の追加の車両に搭載されるストレージデバイス又はコンピュータ可読媒体は、疎なマップ800の残りの部分を記憶し得る。
更に、そのような実施形態では、疎なマップ800は、様々な道路区分を横断する複数の車両(例えば、数十、数百、数千、又は数百万の車両等)にアクセス可能にし得る。疎なマップ800は、複数のサブマップを含み得ることにも留意されたい。例えば、幾つかの実施形態では、疎なマップ800は、車両をナビゲートする際に使用され得る数百、数千、数百万、又はそれ以上のサブマップを含み得る。そのようなサブマップはローカルマップと呼ばれ得て、道路に沿って走行する車両は、車両が走行している場所に関連する任意の数のローカルマップにアクセスし得る。疎なマップ800のローカルマップ区域は、疎なマップ800のデータベースへのインデックスとして、グローバルナビゲーション衛星システム(GNSS)キーと共に記憶され得る。従って、本システムでのホスト車両をナビゲートするための操舵角の計算は、ホスト車両のGNSS位置、道路特徴、又は陸標に依存せずに実行され得るが、そのようなGNSS情報は、関連するローカルマップの検索に使用され得る。
データの収集及び疎なマップ800の生成については、例えば、図19に関して、以下でより詳細に説明する。しかしながら、一般に、疎なマップ800は、1つ又は複数の車両が道路に沿って走行するときに、1つ又は複数の車両から収集されるデータに基づいて生成され得る。例えば、1つ又は複数の車両に搭載されるセンサ(例えば、カメラ、速度計、GPS、加速度計等)を使用して、1つ又は複数の車両が道路に沿って走行する軌道を記録し得て、道路に沿って後続の走行を行う車両の好ましい軌道の多項式表現は、1つ又は複数の車両によって走行される収集される軌道に基づいて決定され得る。同様に、1つ又は複数の車両によって収集されるデータは、特定の道路に沿った潜在的な陸標の識別を支援し得る。横断車両から収集されるデータは、道路幅プロファイル、道路粗さプロファイル、動線間隔プロファイル、道路条件等の道路プロファイル情報を識別するためにも使用され得る。収集される情報を使用して、疎なマップ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以下、又は道路1キロメートル当たり20kB以下であり得る。幾つかの実施形態では、米国の道路の全てではないにしてもほとんどが、合計4GB以下のデータを有する疎なマップを使用して自律的にナビゲートされ得る。これらのデータ密度値は、疎なマップ800全体にわたる、疎なマップ800内のローカルマップにわたる、及び/又は疎なマップ800内の特定の道路区分にわたる平均を表し得る。
上記で述べたように、疎なマップ800は、道路区分に沿った自律走行又はナビゲーションを誘導するための複数の目標軌道810の表現を含み得る。そのような目標軌道は、3次元スプラインとして記憶され得る。疎なマップ800に記憶される目標軌道は、例えば、図29に関して論じるように、特定の道路区分に沿った車両の以前の横断の2つ以上の再構築される軌道に基づいて決定され得る。道路区分は、単一の目標軌道又は複数の目標軌道に関連付けられ得る。例えば、2レーン道路では、第1の目標軌道は、第1の方向の道路に沿った意図される走行経路を表すために記憶され得て、第2の目標軌道は、別の方向(例えば、第1の方向と反対方向)の道路に沿った意図される走行経路を表すために記憶され得る。追加の目標軌道は、特定の道路区分に関して記憶され得る。例えば、複数レーンの道路では、複数レーンの道路に関連付けられた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に記憶され得る特定の道路区分に沿った曲線の表現を示す。幾つかの実施形態では、道路の単一レーンは、道路の左側及び右側の3次元多項式記述によってモデル化され得る。単一レーンの左側及び右側を表す、そのような多項式を図9Aに示す。道路が有し得るレーン数に関係なく、図9Aに示すのと同様の方法で、多項式を使用して道路を表し得る。例えば、複数レーンの道路の左側及び右側は、図9Aに示したものと同様の多項式で表し得て、複数レーンの道路に含まれる中間レーンのマーク(例えば、レーンの境界を表す破線のマーク、異なる方向に走行するレーン間の境界を表す黄色の実線等)も、図9Aに示すような多項式を使用して表し得る。
図9Aに示すように、レーン900は、多項式(例えば、1次、2次、3次、又は任意の適切な次数の多項式)を使用して表し得る。説明のために、レーン900は2次元レーンとして示され、多項式は2次元多項式として示されている。図9Aに示すように、レーン900は左側910及び右側920を含む。幾つかの実施形態では、1よりも多くの多項式を使用して、道路又はレーンの境界の各側の位置を表し得る。例えば、左側910及び右側920のそれぞれは、任意の適切な長さの複数の多項式によって表し得る。場合によっては、多項式が約100mの長さになり得るが、100mより長い又は短い他の長さも使用し得る。更に、ホスト車両が車道に沿って走行するときに、その後に遭遇する多項式に基づいてナビゲートする際のシームレスな遷移を容易にするために、多項式を互いに重なり合わせることができる。例えば、左側910及び右側920のそれぞれは、長さが約100メートルの区分(第1の所定の範囲の例)に分離され、互いに約50メートル重なり合う複数の3次多項式によって表し得る。左側910及び右側920を表す多項式は、同じ順序であり得るか、又は同じ順序であり得ない。例えば、幾つかの実施形態では、幾つかの多項式は2次多項式であり得て、幾つかは3次多項式であり得て、幾つかは4次多項式であり得る。
図9Aに示す例では、レーン900の左側910は、3次多項式の2つのグループで表されている。第1のグループには、多項式区分911、912、及び913が含まれる。第2のグループには、多項式区分914、915、及び916が含まれる。2つのグループは、互いに実質的に平行であるが、道路のそれぞれの側の位置に従う。多項式区分911、912、913、914、915、及び916は約100メートルの長さであり、一連内の隣接する区分と約50メートル重なり合っている。ただし、前述のように、長さ及び重なり合う量はまた、異なる多項式を使用し得る。例えば、多項式は500m、1km、又はそれ以上の長さであり得て、重なり合う量は0~50m、50m~100m、又は100m超に変化し得る。更に、図9Aは、2D空間(例えば、紙の表面上)に広がる多項式を表すものとして示され、これらの多項式は、X-Y曲率に加えて、道路区分の標高の変化を表すために、(例えば、高さ成分を含む)3次元に広がる曲線を表し得ることを理解されたい。図9Aに示す例では、レーン900の右側920は、多項式区分921、922、及び923を有する第1のグループ、並びに多項式区分924、925、及び926を有する第2のグループによって更に表される。
疎なマップ800の目標軌道に戻り、図9Bは、特定の道路区分に沿って走行する車両の目標軌道を表す3次元多項式を示す。目標軌道は、ホスト車両が特定の道路区分に沿って走行すべきX-Y経路だけでなく、ホスト車両が道路区分に沿って走行するときに経験する標高の変化も表す。従って、疎なマップ800内の各目標軌道は、図9Bに示す3次元多項式950のように、1つ又は複数の3次元多項式によって表し得る。疎なマップ800は、複数(例えば、世界中の道路に沿った様々な道路区分に沿った車両の軌道を表すために、数百万又は数十億以上)の軌道を含み得る。幾つかの実施形態では、各目標軌道は、3次元多項式区分を接続するスプラインに対応し得る。
疎なマップ800に記憶される多項式曲線のデータフットプリントに関して、幾つかの実施形態では、各3次多項式は、4つのパラメータによって表され、それぞれは4バイトのデータを必要とし得る。適切な表現は、100mごとに約192バイトのデータを必要とする3次多項式で取得し得る。これは、約100km/hrを走行するホスト車両のデータ使用量/転送要件で1時間当たり約200kBと言い換え得る。
疎なマップ800は、ジオメトリ記述子とメタデータとの組み合わせを使用してレーンネットワークを記述し得る。ジオメトリは、上述したように多項式又はスプラインで記述し得る。メタデータは、レーンの数、特別な特性(カープールレーン等)、及び場合により他の疎なラベルを記述し得る。そのような指標の総フットプリントは、ごくわずかであり得る。
従って、本開示の実施形態による疎なマップは、道路区分に沿って広がる路面特徴の少なくとも1つの線表現を含み得て、各線表現は、路面特徴に実質的に対応する道路区分に沿った経路を表す。幾つかの実施形態では、上記で論じたように、路面特徴の少なくとも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」)を示す。図10に示すように、一般標識1040は長方形の形状を有し得るが、一般標識1040は、四角形、円形、三角形等の他の形状を有し得る。
陸標はまた、路傍の備品を含み得る。路傍の備品は、標識ではないオブジェクトであり得て、交通又は方向に関連し得ない。例えば、路傍の備品は、街灯柱(例えば、街灯柱1035)、電力線柱、信号機柱等を含み得る。
陸標はまた、自律車両ナビゲーションシステムで使用するために特別に設計されるビーコンを含み得る。例えば、そのようなビーコンは、ホスト車両のナビゲートを支援するために所定の間隔で配置される独立型の構造物を含み得る。そのようなビーコンはまた、道路区分に沿って走行する車両によって識別又は認識され得る既存の道路標識(例えば、アイコン、エンブレム、バーコード等)に追加される視覚的/グラフィック情報を含み得る。そのようなビーコンはまた、電子部品を含み得る。そのような実施形態では、電子ビーコン(例えば、RFIDタグ等)を使用して、非視覚的情報をホスト車両に送信し得る。そのような情報は、例えば、ホスト車両が目標軌道に沿ったその位置を決定する際に使用し得る陸標識別及び/又は陸標位置情報を含み得る。
幾つかの実施形態では、疎なマップ800に含まれる陸標は、所定のサイズのデータオブジェクトによって表され得る。陸標を表すデータは、特定の陸標を識別するための任意の適切なパラメータを含み得る。例えば、幾つかの実施形態では、疎なマップ800に記憶される陸標は、陸標の物理的サイズ(例えば、既知のサイズ/スケールに基づく陸標までの距離の推定をサポートするため)、前の陸標までの距離、横方向のオフセット、高さ、タイプコード(例えば、陸標タイプ ー 方向標識、交通標識等のタイプ)、GPS座標(例えば、グローバルローカリゼーションをサポートするため)、及びその他の適切なパラメータ等のパラメータを含み得る。各パラメータは、データサイズに関連付けられ得る。例えば、陸標サイズは8バイトのデータを使用して記憶され得る。前の陸標までの距離、横方向のオフセット、及び高さは、12バイトのデータを使用して指定し得る。方向標識又は交通標識等の陸標に関連付けられたタイプコードには、約2バイトのデータが必要になり得る。一般標識の場合、一般標識の識別を可能にする画像シグネチャは、50バイトのデータストレージを使用して記憶され得る。陸標のGPS位置は、16バイトのデータストレージに関連付けられ得る。各パラメータのこれらのデータサイズは単なる例であり、他のデータサイズも使用し得る。
このようにして疎なマップ800で陸標を表現することは、データベース内の陸標を効率的に表現するための無駄のない解決策を提供し得る。幾つかの実施形態では、標識は、意味的標識及び非意味的標識と呼ばれ得る。意味的標識は、標準化される意味を持つ任意のクラスの標識(例えば、制限速度標識、警告標識、方向標識等)を含め得る。非意味的標識は、標準化される意味に関連付けられていない任意の標識(例えば、一般的な広告標識、事業所を識別する標識等)を含み得る。例えば、各意味的標識は、38バイトのデータ(例えば、サイズの8バイト、前の陸標までの距離、横方向のオフセット、高さの12バイト、タイプコードの2バイト、GPS座標の16バイト)で表し得る。疎なマップ800は、陸標タイプを表すためにタグシステムを使用し得る。場合によっては、各交通標識又は方向標識が独自のタグに関連付けられ、陸標IDの一部としてデータベースに記憶され得る。例えば、データベースは、様々な交通標識を表すために1000ほどの異なるタグを含み、方向標識を表すために約10000ほどの異なるタグを含み得る。当然ながら、任意の適切な数のタグを使用し得て、必要に応じて追加のタグを作成し得る。汎用標識は、幾つかの実施形態では、約100バイト未満を使用して表し得る(例えば、サイズの8バイト、前の陸標までの距離、横方向のオフセット、及び高さの12バイト、画像シグネチャの50バイト、及びGPS座標の16バイトを含む約86バイト)。
従って、画像シグネチャを必要としない意味的道路標識の場合、疎なマップ800へのデータ密度の影響は、50m当たり約1個の比較的高い陸標密度であっても、1キロメータ当たり約760バイトほどになり得る(例えば、1km当たり20個の陸標×1個の陸標当たり38バイト=760バイト)。画像シグネチャ成分を含む汎用標識の場合でも、データ密度の影響は1km当たり約1.72kBである(例えば、1km当たり20個の陸標×1個の陸標当たり86バイト=1,720バイト)。意味的道路標識の場合、これは100km/hrで走行する車両の1時間当たり約76kBのデータ使用量に相当する。汎用標識の場合、これは時速100km/hrで走行する車両の1時間当たり約170kBに相当する。
幾つかの実施形態では、長方形の標識等の概して長方形の物体は、100バイト以下のデータで疎なマップ800に表し得る。疎なマップ800における概して長方形の物体(例えば、一般標識1040)の表現は、概して長方形の物体に関連付けられた凝縮画像シグネチャ(例えば、凝縮画像シグネチャ1045)を含み得る。この凝縮画像シグネチャは、例えば、認識される陸標として、例えば、汎用標識の識別を支援するために使用され得る。そのような凝縮画像シグネチャ(例えば、物体を表す実際の画像データから導出される画像情報)は、陸標を認識するために物体の実際の画像を記憶する必要性又は実際の画像に対して実行される比較画像分析の必要性を回避し得る。
図10を参照すると、疎なマップ800は、一般標識1040の実際の画像ではなく、一般標識1040に関連付けられた凝縮画像シグネチャ1045を含み得るか、又は記憶し得る。例えば、画像捕捉デバイス(例えば、画像捕捉デバイス122、124、又は126)が一般標識1040の画像を捕捉した後、プロセッサ(例えば、画像プロセッサ190、又はホスト車両に対して搭載されているか、もしくは遠隔設置されているかのいずれかで画像を処理できる他の任意のプロセッサ)は、画像分析を実行して、一般標識1040に関連付けられた固有のシグネチャ又はパターンを含む凝縮画像シグネチャ1045を抽出/作成し得る。一実施形態では、凝縮画像シグネチャ1045は、一般標識1040を説明するために一般標識1040の画像から抽出され得る形状、色パターン、明るさパターン、又は任意の他の特徴を含み得る。
例えば、図10で、凝縮画像シグネチャ1045に示される円形、三角形、及び星形は、異なる色の領域を表し得る。円形、三角形、及び星形によって表されるパターンは、疎なマップ800に、例えば、画像シグネチャを含むように指定される50バイト内に記憶され得る。特に、円形、三角形、星形は、必ずしもそのような形状が画像シグネチャの一部として記憶されていることを示すことを意味するわけではない。むしろ、これらの形状は、識別可能な色の違い、テキスト領域、グラフィック形状、又は汎用標識に関連付けられ得る特性の他の異形を有する認識可能な領域を概念的に表すことを意図している。そのような凝縮画像シグネチャは、一般標識の形で陸標を識別するために使用できる。例えば、凝縮画像シグネチャを使用して、例えば、自律車両に搭載されるカメラを使用して捕捉画像データと、記憶される凝縮画像シグネチャとの比較に基づいて、同じか否か分析を実行できる。
従って、複数の陸標は、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は、3次元多項式等の多項式によって表し得る。幾つかの実施形態では、再構築される軌道のいずれかが、道路区分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に含め得る。自律車両に搭載されるカメラによって捕捉された画像が、車両がレーンの外側にドリフトした(例えば、レーンマークを越えた)ことを示している場合、特定の軌道に従って車両を指定されるレーンに戻すために、車両内で動作がトリガーされ得る。
疎なマップのクラウドソーシング
幾つかの実施形態では、開示されるシステム及び方法は、自律車両ナビゲーションのために疎なマップを作成し得る。例えば、開示されるシステム及び方法は、クラウドソーシングされるデータを使用して、1つ又は複数の自律車両が道路のシステムに沿ってナビゲートするために使用し得る疎なマップを生成し得る。本明細書で使用される「クラウドソーシング」は、異なる時間に道路区分を走行する様々な車両(例えば、自律車両)からデータを受信し、そのようなデータを使用して道路モデルを生成及び/又は更新することを意味する。次に、モデルは、自律車両ナビゲーションを支援するために、これらの車両又は後に道路区分に沿って走行する他の車両に送信され得る。道路モデルは、自律車両が道路区分を横断するときに進むべき好ましい軌道を表す複数の目標軌道を含み得る。目標軌道は、道路区分を横断する車両から収集される再構築される実際の軌道と同じであり得て、車両からサーバに送信され得る。幾つかの実施形態では、目標軌道は、1つ又は複数の車両が道路区分を横断するときに以前に取った実際の軌道とは異なり得る。目標軌道は、実際の軌道に基づいて(例えば、平均化又はその他の適切な動作によって)生成され得る。目標軌道を生成するためのクラウドソーシングデータのアラインメントの例については、図29を参照して以下で論じる。
車両がサーバにアップロードし得る車両軌道データは、車両の実際の再構築される軌道に対応し得るか、又は車両の実際の再構築される軌道に基づき得るか又は関連し得るが、実際に再構築される軌道とは異なり得る、推奨される軌道に対応し得る。例えば、車両は、実際の再構築される軌道を修正し、修正される実際の軌道をサーバに送信(例えば、推奨)し得る。道路モデルは、他の車両の自律ナビゲーションの目標車両軌道として、推奨される修正される軌道を使用し得る。
軌道情報に加えて、疎なデータマップ800を構築する際に潜在的に使用するための他の情報は、潜在的な陸標候補に関連する情報を含み得る。例えば、情報のクラウドソーシングにより、開示されるシステム及び方法は、環境内の潜在的な陸標を識別し、陸標の位置を洗練し得る。陸標は、目標軌道に沿った車両の位置を決定及び/又は調整するために、自律車両のナビゲーションシステムによって使用され得る。
車両が道路に沿って走行するときに車両が生成し得る再構築される軌道は、任意の適切な方法によって取得され得る。幾つかの実施形態では、再構築される軌道は、例えば、自己運動推定(例えば、カメラ、ひいては車両の本体の3次元並進及び3次元回転)を使用して、車両の運動の区分をつなぎ合わせることによって開発され得る。回転及び並進の推定は、慣性センサ及び速度センサ等の他のセンサ又はデバイスからの情報と共に、1つ又は複数の画像捕捉デバイスによって捕捉された画像の分析に基づいて決定され得る。例えば、慣性センサは、車両本体の並進及び/又は回転の変化を測定するように構成される加速度計又は他の適切なセンサを含み得る。車両は、車両の速度を測定する速度センサを含み得る。
幾つかの実施形態では、カメラ(ひいては、車両本体)の自己運動は、捕捉画像の光学フロー分析に基づいて推定され得る。一連の画像の光学フロー分析は、一連の画像からピクセルの移動を識別し、識別される移動に基づいて、車両の移動を決定する。自己運動は、道路区分に沿って経時的に積分され、車両が通った道路区分に関連付けられた軌道を再構築し得る。
異なる時間に道路区分に沿った複数の走行で複数の車両によって収集されるデータ(例えば、再構築される軌道)を使用して、疎なデータマップ800に含まれる道路モデル(例えば、目標軌道等を含む)を構築し得る。モデルの精度を高めるために、異なる時間に道路区分に沿った複数の走行で複数の車両によって収集されるデータも平均化され得る。幾つかの実施形態では、道路のジオメトリ及び/又は陸標に関するデータは、異なる時間に共通の道路区分を走行する複数の車両から受信され得る。異なる車両から受信されるそのようなデータを組み合わせて、道路モデルを生成及び/又は道路モデルを更新し得る。
道路区分に沿った再構築される軌道(及び目標軌道)のジオメトリは、3次元多項式を接続するスプラインであり得る、3次元空間の曲線で表し得る。再構成される軌道曲線は、ビデオストリーム又は車両に取り付けられたカメラによって捕捉される複数の画像の分析から決定し得る。幾つかの実施形態では、位置は、車両の現在の位置より数メートル先の各フレーム又は画像で識別される。この場所は、車両が所定の期間内に走行すると予想される場所である。この動作はフレームごとに繰り返し得て、同時に、車両はカメラの自己運動(回転及び並進)を計算し得る。各フレーム又は画像で、カメラに取り付けられた参照フレーム内の車両によって、所望の経路の短距離モデルが生成される。短距離モデルをつなぎ合わせて、任意の座標フレーム又は所定の座標フレームであり得る、座標フレーム内の道路の3次元モデルを取得し得る。次いで、道路の3次元モデルは、適切な次数の1つ又は複数の多項式を含み得る又は接続し得るスプラインによってフィットされ得る。
各フレームで短距離道路モデルを結論付けるために、1つ又は複数の検出モジュールを使用し得る。例えば、ボトムアップレーン検出モジュールを使用し得る。ボトムアップレーン検出モジュールは、レーンマークが道路に描かれている場合に有用であり得る。このモジュールは、画像内の縁部を探し、それらを組み立ててレーンマークを形成し得る。第2のモジュールは、ボトムアップレーン検出モジュールと一緒に使用し得る。第2のモジュールは、入力画像から正しい短距離経路を予測するようにトレーニングし得る、エンドツーエンドのディープニューラルネットワークである。どちらのモジュールでも、道路モデルは画像座標フレームで検出され、カメラに仮想的に接続され得る3次元空間に変換され得る。
再構築される軌道モデリング手法は、雑音成分を含み得る、長期間にわたる自己運動の積分により、誤差の蓄積をもたらし得るが、生成されるモデルがローカルスケールでのナビゲーションに十分な精度を提供し得るため、そのような誤差は重要となり得ない。加えて、衛星画像又は測地測定等の外部情報源を使用して、積分誤差を取り消すことができる。例えば、開示されるシステム及び方法は、累積誤差を取り消すために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メートル等の特定の範囲にわたって十分な精度を有するジオメトリのモデルを生成し得る。
上述したように、3次元道路モデルは、短距離セクションを検出し、それらをつなぎ合わせることから構築され得る。つなぎ合わせることは、カメラによって捕捉されるビデオ及び/又は画像、車両の移動を反映する慣性センサからのデータ、及びホスト車両の速度信号を使用して、6度の自己運動モデルを計算することによって可能になり得る。累積誤差は、100メートルほど等の一部のローカル範囲スケールでは十分に小さくなり得る。この範囲スケール全てで、特定の道路区分は単一走行で完了させ得る。
幾つかの実施形態では、複数の走行を使用して、結果のモデルを平均化し、その精度を更に高め得る。同じ車が同じルートを複数回走行し得るか、又は複数の車が収集したモデルデータを中央サーバに送信し得る。いずれの場合も、マッチング手順を実行して、重複するモデルを識別し、目標軌道を生成するために平均化を有効にでき得る。構築されるモデル(例えば、目標軌道を含む)は、収束基準が満たされると、操舵に使用され得る。後の走行は、モデルを更に改善するため、及びインフラストラクチャの変更に対応するために使用され得る。
複数の車が中央サーバに接続されている場合、複数の車間での走行経験(検知データ等)の共有が可能になる。各車両クライアントは、現在の位置に関連し得る普遍的道路モデルの部分的なコピーを記憶し得る。車両とサーバとの間の双方向の更新手順は、車両及びサーバによって実行され得る。上で論じた小さなフットプリントの概念は、開示されるシステム及び方法が非常に狭い帯域幅を使用して双方向更新を実行することを可能にする。
潜在的な陸標に関連する情報も決定され、中央サーバに転送され得る。例えば、開示されるシステム及び方法は、陸標を含む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に関連付けられ得る。ナビゲーション情報は、各車両が道路区分1200上を走行するときに、車両1205、1210、1215、1220、及び1225のそれぞれに関連付けられた軌道を含み得る。幾つかの実施形態では、軌道は、車両1205に提供される様々なセンサ及びデバイスによって検知されるデータに基づいて再構築され得る。例えば、軌道は、加速度計データ、速度データ、陸標データ、道路のジオメトリ又はプロファイルデータ、車両位置データ、及び自己運動データのうちの少なくとも1つに基づいて再構築され得る。幾つかの実施形態では、軌道は、加速度計等の慣性センサからのデータ、及び速度センサによって検知される車両1205の速度に基づいて再構築され得る。更に、幾つかの実施形態では、軌道は、3次元並進及び/又は3次元回転(又は回転運動)を示し得る、検知されるカメラの自己運動に基づいて(例えば、車両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からのマップデータを使用し得る。幾つかの実施形態では、自律車両道路ナビゲーションモデルは、自律車両1205、1210、1215、1220、及び1225又は後に道路区分1200に沿って走行する他の車両の自律ナビゲーションを誘導するために道路区分1200に沿った目標軌道を決定するために、疎なマップ800に含まれるマップデータを使用し得る。例えば、自律車両道路ナビゲーションモデルが、車両1205のナビゲーションシステムに含まれるプロセッサによって実行されるとき、モデルは、プロセッサに、車両1205から受信されるナビゲーション情報に基づいて決定された軌道を、疎なマップ800に含まれる所定の軌道と比較させて、車両1205の現在の走行コースを検証及び/又は修正し得る。
自律車両道路ナビゲーションモデルでは、道路特徴又は目標軌道のジオメトリは、3次元空間内の曲線によって符号化され得る。1つの実施形態では、曲線は、1つ又は複数の接続3次元多項式を含む3次元スプラインであり得る。当業者が理解するように、スプラインは、データをフィッティングするための一連の多項式によって区分的に定義される数値関数であり得る。道路の3次元ジオメトリデータをフィッティングするためのスプラインは、線形スプライン(1次)、2次スプライン(2次)、3次スプライン(3次)、又はその他のスプライン(他の次数)、又はそれらの組み合わせを含み得る。スプラインは、道路の3次元ジオメトリデータのデータポイントを接続(例えば、フィッティング)する異なる次数の1つ又は複数の3次元多項式を含み得る。幾つかの実施形態では、自律車両道路ナビゲーションモデルは、共通の道路区分(例えば、道路区分1200)又は道路区分1200のレーンに沿った目標軌道に対応する3次元スプラインを含み得る。
上述したように、疎なマップに含まれる自律車両道路ナビゲーションモデルは、道路区分1200に沿った少なくとも1つの陸標の識別等、他の情報を含み得る。陸標は、車両1205、1210、1215、1220、及び1225のそれぞれに設置されるカメラ(例えば、カメラ122)の視野内に見え得る。幾つかの実施形態では、カメラ122は、陸標の画像を捕捉し得る。車両1205に設けられたプロセッサ(例えば、プロセッサ180、190、又は処理ユニット110)は、陸標の画像を処理して、陸標の識別情報を抽出し得る。陸標の実際の画像ではなく、陸標識別情報が疎なマップ800に記憶され得る。陸標識別情報は、実際の画像よりもはるかに少ない記憶領域になり得る。他のセンサ又はシステム(例えば、GPSシステム)も、陸標の特定の識別情報(例えば、陸標の位置)を提供し得る。陸標は、交通標識、矢印マーク、レーンマーク、破線レーンマーク、信号機、停止線、方向標識(例えば、方向を示す矢印が付いた高速道路の出口標識、異なる方向又は場所を指している矢印が付いた高速道路の標識)、陸標ビーコン、又は街灯柱のうちの少なくとも1つを含み得る。陸標ビーコンは、車両に設置される受信機に信号を送信又は反射する道路区分に沿って設置されるデバイス(例えば、RFIDデバイス)を指し、そのため、車両がそのデバイスのそばを通過したときに、車両によって受信されるビーコン及びデバイスの位置(例えば、デバイスのGPS位置から決定された)は、自律車両道路ナビゲーションモデル及び/又は疎なマップ800に含まれる陸標として使用され得る。
少なくとも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*Δω/ω2f*ΔW/ωによって与えられる。ただし、ΔWは平均化によってゼロに減衰する。従って、ΔZはΔω(例えば、画像のバウンディングボックスの不正確さ)によって決定される。
未知の寸法の陸標の場合、陸標までの距離は、連続するフレーム間で陸標上の特徴点を追跡することによって推定され得る。例えば、速度制限標識に表示される特定の特徴は、2つ以上の画像フレーム間で追跡し得る。これらの追跡される特徴に基づいて、特徴点ごとの距離分布が生成され得る。距離推定値は、距離分布から抽出し得る。例えば、距離分布に現れる最も頻度の高い距離を距離推定値として使用し得る。別の例として、距離分布の平均を距離推定値として使用し得る。
図13は、複数の3次元スプライン1301、1302、及び1303によって表される例示的な自律車両道路ナビゲーションモデルを示す。図13に示す曲線1301、1302、及び1303は、例示の目的のためだけのものである。各スプラインは、複数のデータポイント1310を接続する1つ又は複数の3次元多項式を含み得る。各多項式は、1次多項式、2次多項式、3次多項式、又は異なる次数を有する任意の適切な多項式の組み合わせであり得る。各データポイント1310は、車両1205、1210、1215、1220、及び1225から受信されるナビゲーション情報に関連付けられ得る。幾つかの実施形態では、各データポイント1310は、陸標(例えば、サイズ、位置、及び陸標の識別情報)及び/又は道路シグネチャプロファイル(例えば、道路のジオメトリ、道路粗さプロファイル、道路曲率プロファイル、道路幅プロファイル)に関連するデータに関連付けられ得る。幾つかの実施形態では、幾つかのデータポイント1310は、陸標に関連するデータに関連付けられ得て、他のデータポイントは、道路シグネチャプロファイルに関連するデータに関連付けられ得る。
図14は、5つの別個の走行から受信される生の位置データ1410(例えば、GPSデータ)を示す。別個の車両が同時に横断した場合、同じ車両が別個の時間に横断した場合、又は別個の車両が別個の時間に横断した場合、ある走行は別の走行とは別個であり得る。位置データ1410の誤差、及び同じレーン内の車両の異なる位置(例えば、ある車両が別の車両よりもレーンの左側に近づき得る)を考慮するために、サーバ1230は、1つ又は複数の統計的技法を使用してマップスケルトン1420を生成し、生の位置データ1410の変化が実際の逸脱又は統計的誤差を表しているかどうかを判断し得る。スケルトン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からのデータは「ゴースト」陸標で構成され、走行1601、1603、1605、1607、1609、及び1611のいずれも走行1613内の識別される陸標の近傍にある陸標の識別を含まないため、サーバ1230は陸標を「ゴースト」と識別し得る。従って、サーバ1230は、陸標が現れない画像に対する陸標が現れる画像の比率が閾値を超える場合、潜在的な陸標を受け入れ得て、及び/又は、陸標が現れる画像に対する陸標が現れない画像の比率が閾値を超える場合、潜在的な陸標を拒否し得る。
図17は、疎なマップをクラウドソーシングするために使用し得る、走行データを生成するためのシステム1700を示す。図17に示すように、システム1700は、カメラ1701及び位置特定デバイス1703(例えば、GPSロケータ)を含み得る。カメラ1701及び位置特定デバイス1703は、車両(例えば、車両1205、1210、1215、1220、及び1225のうちの1つ)に搭載され得る。カメラ1701は、複数のタイプの複数のデータ、例えば、自己運動データ、交通標識データ、道路データ等を生成し得る。カメラデータ及び位置データは、走行区分1705に区分され得る。例えば、走行区分1705はそれぞれ、1km未満の走行のカメラデータ及び位置データを有し得る。
幾つかの実施形態では、システム1700は、走行区分1705の冗長性を除去し得る。例えば、カメラ1701からの複数の画像に陸標が現れる場合、走行区分1705が陸標の位置及び陸標に関連するメタデータの1つのコピーのみを含むように、システム1700は冗長データを取り除き得る。更に例として、カメラ1701からの複数の画像にレーンマークが現れる場合、走行区分1705がレーンマークの位置及びレーンマークに関連するメタデータの1つのコピーのみを含むように、システム1700は冗長データを取り除き得る。
システム1700はまた、サーバ(例えば、サーバ1230)を含む。サーバ1230は、車両から走行区分1705を受信し、走行区分1705を単一の走行1707に再結合し得る。このような配置により、車両とサーバとの間でデータを転送するときの帯域幅要件を減し得て、サーバが走行全体に関連するデータも記憶し得る。
図18は、疎なマップをクラウドソーシングするために更に構成される図17のシステム1700を示す。図17のように、システム1700は、例えば、カメラ(例えば、自己運動データ、交通標識データ、道路データ等を生成する)及び位置特定デバイス(例えば、GPSロケータ)を使用して走行データを捕捉する車両1810を含む。図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において受信されるカメラの自己運動(例えば、3次元並進運動及び/又は3次元回転運動)に基づいて、車両1205の走行の軌道を決定し得る。
プロセス1900は、複数の画像に基づいて、道路区分に関連付けられた複数の陸標を識別することも含み得る(ステップ1910)。例えば、サーバ1230は、カメラ122から受信される環境画像を分析して、道路区分1200に沿った道路標識等の1つ又は複数の陸標を識別し得る。サーバ1230は、1つ又は複数の車両が道路区分を横断するときに取得される複数の画像の分析を使用して陸標を識別し得る。クラウドソーシングを可能にするために、分析は、道路区分に関連付けられる可能性のある陸標の受け入れ及び拒否に関するルールを含み得る。例えば、分析は、陸標が現れない画像に対する陸標が現れる画像の比率が閾値を超える場合、潜在的な陸標を受け入れること、及び/又は、陸標が現れる画像に対する陸標が現れない画像の比率が閾値を超える場合、潜在的な陸標を拒否することを含み得る。
プロセス1900は、サーバ123によって実行される他の動作又はステップを含み得る。例えば、ナビゲーション情報は、道路区分に沿って車両が走行するための目標軌道を含み得て、プロセス1900は、以下で更に詳細に論じるように、サーバ1230によって、道路区分上を走行する複数の車両に関連する車両軌道をクラスタ化すること、及びクラスタ化された車両軌道に基づいて目標軌道を決定することを含み得る。車両軌道をクラスタ化することは、サーバ1230によって、車両の絶対的な進行方向又は車両のレーン割り当ての少なくとも1つに基づいて、道路区分上を走行する車両に関連する複数の軌道を複数のクラスタにクラスタ化することを含み得る。目標軌道を生成することは、サーバ1230によって、クラスタ化された軌道を平均化することを含み得る。
更に例として、プロセス1900は、図29に関して以下で更に詳細に論じるように、ステップ1905において受信されるデータを位置合わせすることを含み得る。上述したように、サーバ1230によって実行される他のプロセス又はステップも、プロセス1900に含まれ得る。
開示されるシステム及び方法は、他の特徴を含み得る。例えば、開示されるシステムは、グローバル座標ではなくローカル座標を使用し得る。自律走行の場合、一部のシステムはグローバル座標でデータを表示し得る。例えば、地表面の経度緯度座標を使用し得る。操舵にマップを使用するために、ホスト車両は、マップに対する位置及び向きを決定し得る。マップ上に車両を配置し、本体の参照フレームと世界の参照フレーム(例えば、北、東及び下)との間の回転変換を見つけるために、車載のGPSデバイスを使用するのは自然に思われる。本体の参照フレームがマップの参照フレームと位置合わせされると、本体の参照フレームで所望のルートを表し得て、操舵コマンドを計算又は生成し得る。
しかし、この戦略で考えられる1つの問題は、現在の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のマップの座標フレームの両方と同時に位置合わせし得る。新しい位置合わせが確立されると、システムはもう一方のマップに切り替えて、そこで車両の軌道を計画し得る。
開示されるシステムは、システムが車両及びマップの座標フレームを位置合わせする方法に関連する追加の特徴を含み得る。上述したように、陸標は、車両が陸標に対する相対位置を測定し得ると仮定すると、位置合わせのために使用され得る。これは自律走行では有用であるが、場合によっては、多数の陸標が必要になり、従って、大きなメモリフットプリントが必要になり得る。従って、開示されるシステムは、この問題に対処する位置合わせ手順を使用し得る。位置合わせ手順では、システムは、疎な陸標及び自己速度の積分を使用して、道路に沿った車両の位置の1D推定量を計算し得る。システムは軌道自体の形状を使用して、以下の他の節で詳細に論じるテール位置合わせ方法を使用して、位置合わせの回転部分を計算し得る。従って、車両は、テールをマップと位置合わせするために、「テール」を走行させながら、それ自体の軌道を再構築し、道路に沿った想定位置を中心とした回転を計算し得る。このような位置合わせ手順は、図29に関して以下で論じるクラウドソーシングデータの位置合わせとは異なる。
開示されるシステム及び方法では、GPSデバイスは引き続き使用され得る。グローバル座標は、軌道及び/又は陸標を記憶するデータベースにインデックスを作成するために使用され得る。車両の近傍の関連するローカルマップのピース及び関連する陸標をメモリに記憶し、グローバルGPS座標を使用してメモリから取得し得る。しかし、幾つかの実施形態では、グローバル座標は経路計画に使用されない場合があり、正確ではない可能性がある。一例では、グローバル座標の使用は、情報のインデックス作成のために制限され得る。
「テール位置合わせ」が良好に機能できない状況では、システムはより多くの陸標を使用して車両の位置を計算し得る。これは稀な事例であり得て、メモリフットプリントへの影響は中程度であり得る。道路の交差点はそのような状況の例である。
開示されるシステム及び方法では、シーンから確実に検出され、道路モデル又は疎なマップに記憶される陸標と照合できるため、意味的陸標(例えば、交通標識)を使用し得る。場合によっては、開示されるシステムは、非意味的陸標(例えば、汎用標識)も使用し得て、そのような場合、上記で論じたように、非意味的陸標を外観シグネチャに添付し得る。システムは、「同じか否か」認識パラダイムに従うシグネチャの生成のための学習方法を使用し得る。
例えば、図14に関して上記で論じたように、走行に沿ったGPS座標を伴う多くの走行が与えられると、開示されるシステムは、基礎となる道路構造の交差点及び道路区分を生成し得る。道路は、GPSを使用して道路を区別できるように、互いに十分に離れていると想定される。幾つかの実施形態では、粗い粒子のマップのみが必要になり得る。基礎となる道路構造グラフを生成するために、空間を所定の解像度(例えば、50m×50m)の格子に分割し得る。全ての走行は、格子サイトの順序付きリストと見なし得る。システムは、走行に属する全ての格子サイトに色を付けて、結合される走行の画像を作成し得る。色付きの格子点は、結合される走行上のノードとして表し得る。あるノードから別のノードに通る走行は、リンクとして表され得る。システムは、レーンの分化を避け、GPS誤差を修正するために、画像の小さな穴を埋め得る。システムは、適切な細線化アルゴリズム(例えば、「Zhang-Suen」細線化アルゴリズムと呼ばれるアルゴリズム)を使用して、画像の骨格を取得し得る。この骨格は、基礎となる道路構造を表し得て、交差点はマスク(例えば、少なくとも3つの他の点に接続される点)を使用して見つけ得る。交差点が見つかった後、区分はそれらを接続する骨格部分であり得る。走行を骨格に一致し直すために、システムは隠れマルコフモデルを使用し得る。全てのGPS点は、そのサイトからの距離に反比例する確率で格子サイトに関連付けられ得る。適切なアルゴリズム(例えば、「ビタビ」アルゴリズムと呼ばれるアルゴリズム)を使用して、GPS点を格子サイトに一致させ、連続するGPS点を隣接しない格子サイトに一致させないようにする。
走行をマップにマッピングし直すために、複数の方法を使用し得る。例えば、第1の解決策は、細線化プロセス中に追跡することを含み得る。第2の解決策は、近接マッチングを使用し得る。第3の解決策は、隠れマルコフモデルを使用し得る。隠れマルコフモデルは、全ての観測値の基礎となる隠れ状態を想定し、状態を所与として所与の観測に、及び前の状態を所与としてある状態に確率を割り当てる。ビタビアルゴリズムを使用して、観測値のリストを所与として、最も確率の高い状態を見つけ得る。
開示されるシステム及び方法は、追加の特徴を含み得る。例えば、開示されるシステム及び方法は、高速道路の入口/出口を検出し得る。同じ領域にある複数の走行は、GPSデータを使用して同じ座標系に結合し得る。システムは、マッピング及び位置特定のために視覚的特徴点を使用し得る。
幾つかの実施形態では、前の走行で同じ一続きの道路を横断する車両によって生成されるマップ(マッピングフェーズ)に対して、ある走行での移動車両の位置及び向きを正確に重ね合わせる(位置特定フェーズ)目的のために、汎用視覚的特徴を陸標として使用し得る。これらの車両は、車両の周囲を撮像する較正されるカメラ及びGPS受信機を備え得る。車両は、他の有意なジオメトリ情報及び意味的情報(例えば、レーン構造、道路標識のタイプ及び位置、道路マークのタイプ及び位置、物理的な障害物の位置によって区切られる近くの走行可能な地表領域の形状、人間のドライバーによって制御される場合の以前に走行した車両の経路の形状等)に結び付けられた、これらの視覚的陸標を含む最新のマップを保持する中央サーバ(例えば、サーバ1230)と通信し得る。道路の長さ当たりで中央サーバと車両との間で通信し得るデータの総量は、マッピングフェーズ及び位置特定フェーズの両方で少量である。
マッピングフェーズでは、開示されるシステム(例えば、自律車両及び/又は1つ又は複数のサーバ)は、特徴点(FP)を検出し得る。特徴点は、陸標等の関連付けられた物体を追跡するために使用される1つ又は複数の点を含み得る。例えば、一時停止標識の角を構成する8点が特徴点であり得る。開示されるシステムは、FPに関連付けられた記述子を(例えば、加速セグメントテスト(FAST)検出器、バイナリロバスト不変スケーラブルキーポイント(BRISK)検出器、バイナリロバスト独立基本機能(BRIEF)検出器、及び/又は指向性FAST及び回転BRIEF(ORB)検出器からの特徴を使用して、又はトレーニングライブラリを使用してトレーニングされた検出器/記述子対を使用して)更に計算し得る。システムは、画像平面でのFPの動きを使用し、記述子空間でユークリッド距離又はハミング距離等を使用して、関連付けられた記述子を照合することによって、FPが現れるフレーム間でFPを追跡し得る。システムは、追跡されるFPを使用して、カメラの動き及びFPが検出及び追跡された物体の世界位置を推定し得る。例えば、追跡されるFPを使用して、車両の動き及び/又はFPが最初に検出された陸標の位置を推定し得る。
システムは、将来の走行で検出される可能性が高いもの、又は高くないものとしてFPを更に分類し得る(例えば、瞬間的に移動する物体、駐車中の車、及び影のテクスチャで検出されるFPは、将来の走行で再表示されない可能性が高い)。この分類は、再現性分類(RC)と呼ばれ得て、検出されるFPを囲むピラミッドの領域内の光の強度、画像平面内の追跡される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の方式では、一致した瞬間的な車両GPS位置を有する車両カメラによって記録される多数のクリップを含むデータベースが収集され得る。このデータベースは、走行の代表的なサンプル(様々なプロパティ、例えば、時刻、季節、天候条件、道路のタイプに関する)を含み得る。同様のGPS位置及び進行方向で異なる走行のフレームから抽出される特徴点(FP)は、GPSの不確実性半径内で一致する可能性があり得る。一致しないFPは再現不能とラベル付けされ得て、一致したFPは再現可能とラベル付けされ得る。次いで、画像ピラミッドでの外観、車両に対する瞬間的な位置、及びFPが正常に追跡された視点位置の範囲を考慮して、FPの再現性ラベルを予測するように分類器をトレーニングし得る。
第2の方式では、第1の方式で説明したクリップデータベースから抽出されるFP対は、クリップ間のFP一致に注釈を付ける担当する人間によってラベル付けもされ得る。
第3の方式では、光検出と測距(LIDAR)測定を使用した正確な車両位置、車両の向き、及び画像ピクセル深度で第1の方式を増補したデータベースを使用して、異なる走行での世界位置を正確に一致させ得る。次いで、特徴点記述子は、異なる視点及び走行時間におけるこれらの世界点に対応する画像領域で計算され得る。次いで、分類器は、一致する記述子からの記述子が配置される記述子空間での平均距離を予測するようにトレーニングされ得る。この場合、再現性は、記述子が短い距離を有する可能性が高いことによって測定され得る。
開示される実施形態によれば、システムは、共通の道路区分を横断する車両の観測される軌道(例えば、車両によってサーバに転送される軌道情報に対応し得る)に基づいて、自律車両道路ナビゲーションモデルを生成し得る。しかし、観測される軌道は、道路区分を走行する車両が取る実際の軌道に対応し得ない。むしろ、特定の状況では、サーバにアップロードされる軌道は、車両によって決定された実際の再構築される軌道に関して変更され得る。例えば、車両システムは、実際に取られた軌道を再構築する間、センサ情報(例えば、カメラによって提供される画像の分析)を使用して、それ自体の軌道が道路区分の好ましい軌道ではない可能性があると判断し得る。例えば、車両は、車載カメラからの画像データに基づいて、決定された期間、車両がレーンの中心を走行していないこと、又はレーンの境界を越えたことを判断し得る。そのような場合、とりわけ、車両の再構築される軌道(横断した実際の経路)の洗練は、センサ出力から得られた情報に基づいて行われ得る。次いで、実際の軌道ではなく、洗練された軌道をサーバにアップロードして、疎なデータマップ800の構築又は更新に潜在的に使用し得る。
次いで、幾つかの実施形態では、車両(例えば、車両1205)に含まれるプロセッサが、1つ又は複数のセンサからの出力に基づいて、車両1205の実際の軌道を決定し得る。例えば、カメラ122から出力される画像の分析に基づいて、プロセッサは道路区分1200に沿った陸標を識別し得る。陸標は、交通標識(例えば、速度制限標識)、方向標識(例えば、異なるルート又は場所を指す高速道路の方向標識)、及び一般標識(例えば、色のパターン等の固有のシグネチャに関連付けられている長方形のビジネス標識)を含み得る。識別される陸標は、疎なマップ800に記憶されている陸標と比較され得る。一致が見つかった場合、疎なマップ800に記憶されている陸標の位置を、識別される陸標の位置として使用し得る。識別される陸標の位置は、目標軌道に沿った車両1205の位置を決定するために使用され得る。幾つかの実施形態では、プロセッサは、GPSユニット1710によって出力されるGPS信号に基づいて車両1205の位置も決定し得る。
プロセッサはまた、サーバ1230に送信するための目標軌道を決定し得る。目標軌道は、センサ出力に基づいてプロセッサによって決定された実際の軌道と同じであり得る。しかし、幾つかの実施形態では、目標軌道は、センサ出力に基づいて決定された実際の軌道とは異なり得る。例えば、目標軌道は、実際の軌道に対する1つ又は複数の修正を含み得る。
一例では、カメラ122からのデータが、レーンを変更する車両1250の100メートル先の一時的なレーンシフト障壁等の障壁を含む場合(例えば、前方の工事又は事故によりレーンが一時的に変更される場合)、プロセッサは、画像から一時的なレーンシフト障壁を検出し、一時的なレーンシフトに従って、道路モデル又は疎なマップに記憶される目標軌道に対応するレーンとは異なるレーンを選択し得る。車両の実際の軌道は、このレーンの変更を反映し得る。しかし、レーンシフトが一時的なものであり、例えば、次の10分、15分、又は30分以内に解消され得る場合、車両1205は、目標軌道が車両1205が取った実際の軌道とは異なるべきであることを反映するために、従って車両1205が取った実際の軌道(すなわち、レーンのシフト)を修正し得る。例えば、システムは、走行した経路が道路区分の好ましい軌道とは異なることを認識し得る。従って、システムは、軌道情報をサーバにアップロードする前に、再構築される軌道を調整し得る。
他の実施形態では、実際の再構築される軌道情報をアップロードし得て、1つ又は複数の推奨される軌道の洗練(例えば、再構築される軌道の少なくとも一部に対して行われる並進のサイズ及び方向)もアップロードし得る。幾つかの実施形態では、プロセッサ1715は、修正される実際の軌道をサーバ1230に送信し得る。サーバ1230は、受信される情報に基づいて目標軌道を生成又は更新し得て、図24に関して以下で更に詳細に論じるように、後に同じ道路区分を走行する他の自律車両に目標軌道を送信し得る。
別の例として、環境画像は、道路区分1200に突然現れる歩行者等の物体を含み得る。プロセッサは歩行者を検出し得て、車両1205は歩行者との衝突を避けるためにレーンを変更し得る。検知されるデータに基づいて再構築される実際の軌道の車両1205は、レーン変更を含み得る。しかし、歩行者はすぐに車道を離れ得る。従って、車両1205は、目標軌道が実際に取られた軌道と異なるべきであることを反映するために、実際の軌道を修正(又は推奨される修正を決定)し得る(歩行者の出現は、目標軌道の決定で考慮されるべきではない一時的な状態であるため)。幾つかの実施形態では、車両は、実際の軌道が修正されるときに、所定の軌道からの一時的な逸脱を示すデータをサーバに送信し得る。データは逸脱の原因を示し得るか、又はサーバがデータを分析して逸脱の原因を判断し得る。逸脱の原因を知ることは有用であり得る。例えば、逸脱が、ドライバーが最近発生した事故に気付き、それに反応して衝突を回避するためにハンドルを操舵したことに起因する合、サーバは、逸脱の原因に基づいて、モデルにより緩やかな調整を計画し得るか、又は道路区分に関連付けられた特定の軌道を計画し得る。別の例として、逸脱の原因が道路を横断する歩行者である場合、サーバは、将来軌道を変更する必要はないと判断し得る。
更に例として、環境画像は、おそらく人間のドライバーの制御下で、車両1205がレーンの少し外側を走行していることを示すレーンマークを含み得る。プロセッサは、捕捉画像からレーンマークを検出し得て、レーンからの逸脱を考慮して車両1205の実際の軌道を修正し得る。例えば、再構成される軌道が観察されるレーンの中心内に収まるように、並進を再構成される軌道に適用し得る。
クラウドソーシングされる疎なマップの配信
開示されるシステム及び方法は、高価な測量機器の助けを借りずに自律車両自体によって収集され得る、低フットプリントのモデルで自律車両ナビゲーション(例えば、操舵制御)を可能にし得る。自律ナビゲーション(例えば、操舵アプリケーション)をサポートするために、道路モデルは、モデルに含まれる軌道に沿った車両の場所又は位置を決定するために使用し得る道路のジオメトリ、そのレーン構造、及び陸標を有する疎なマップを含み得る。上記で論じたように、疎なマップの生成は、道路を走行している車両と通信し、車両からデータを受信する遠隔サーバによって実行され得る。データは、検知されるデータ、検知されるデータに基づいて再構築される軌道、及び/又は修正される再構築される軌道を表し得る推奨される軌道を含み得る。以下で論じるように、サーバは、自律ナビゲーションを支援するために、これらの車両又は後に道路を走行する他の車両にモデルを送信し得る。
図20は、サーバ1230のブロック図を示す。サーバ1230は、ハードウェア構成要素(例えば、通信制御回路、スイッチ、及びアンテナ)とソフトウェア構成要素(例えば、通信プロトコル、コンピュータコード)の両方を含む通信ユニット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は、自律車両ナビゲーションで使用するための道路ナビゲーションモデルを生成するための1つ又は複数の動作を実行するためのコンピュータコード又は命令を記憶し得る、メモリ2015のブロック図を示す。図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に関連付けられ得る。目標軌道は、3次元スプラインで表現され得る。幾つかの実施形態では、スプラインは、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に沿って走行している間に、それらの車両によって識別される陸標は、目標軌道に関連付けて記録され得る。目標軌道及び陸標のデータは、後続の走行で他の車両から受信される新しいデータで継続的又は定期的に更新し得る。
自律車両の位置特定のために、開示されるシステム及び方法は、拡張カルマンフィルタを使用し得る。車両の位置は、3次元位置データ及び/又は3次元方向データ、自己運動の積分による車両の現在位置よりも先の将来位置の予測に基づいて決定され得る。車両の位置は、陸標の画像観察により修正又は調整され得る。例えば、車両がカメラによって捕捉された画像内に陸標を検出した場合、陸標は、道路モデル又は疎なマップ800内に記憶される既知の陸標と比較され得る。既知の陸標は、道路モデル及び/又は疎なマップ800に記憶される目標軌道に沿った既知の位置(例えば、GPSデータ)を有し得る。現在の速度及び陸標の画像に基づいて、車両から陸標までの距離を推定し得る。目標軌道に沿った車両の位置は、陸標までの距離及び陸標の既知の位置(道路モデル又は疎なマップ800に記憶される)に基づいて調整され得る。道路モデル及び/又は疎なマップ800に記憶される陸標の位置/場所データ(例えば、複数の走行からの平均値)は、正確であると推定され得る。
幾つかの実施形態では、開示されるシステムは、車両の6自由度(例えば、3次元位置データと3次元方向データ)の位置の推定が、自律車両をナビゲート(例えば、車輪を操舵)して所望の点(例えば、記憶される点の1.3秒先)に到達するために使用され得る、閉ループサブシステムを形成し得る。次に、操舵及び実際のナビゲーションから測定されるデータを使用して、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は、車両1205に関連付けられたナビゲーション情報を決定するために、少なくとも1つの環境画像を分析し得る。ナビゲーション情報は、道路区分1200に沿った車両1205の走行に関連する軌道を含み得る。少なくとも1つのプロセッサ2315は、3次元並進運動及び3次元回転運動等のカメラ122(従って車両)の運動に基づいて軌道を決定し得る。幾つかの実施形態では、少なくとも1つのプロセッサ2315は、カメラ122によって取得される複数の画像の分析に基づいて、カメラ122の並進運動及び回転運動を決定し得る。幾つかの実施形態では、ナビゲーション情報は、レーン割り当て情報(例えば、車両1205が道路区分1200に沿ってそのレーンで走行しているか)を含み得る。車両1205からサーバ1230に送信されるナビゲーション情報は、サーバ1230によって使用され、自律車両道路ナビゲーションモデルを生成及び/又は更新し得て、自律車両道路ナビゲーションモデルは、車両1205に自律ナビゲーションガイダンスを提供するために、サーバ1230から車両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の少なくとも1つが、例えば、他の車両によって共有される情報に基づいて、クラウドソーシングを使用して自律車両道路ナビゲーションモデルを生成し得るように、車両1205、1210、1215、1220、及び1225は、互いに通信し得て、ナビゲーション情報を互いに共有し得る。幾つかの実施形態では、車両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(登録商標)マップ、Waze等の従来のナビゲーションサービスによって提供されるマップ又は画像上にモデルを重ね合わせ得る。
幾つかの実施形態では、自律車両道路ナビゲーションモデルの少なくとも一部を生成することは、複数の画像の画像分析に基づいて、共通の道路区分に関連付けられた複数の陸標を識別することを含み得る。特定の態様では、この分析は、陸標が現れない画像に対する陸標が現れる画像の比率が閾値を超える場合、潜在的な陸標を受け入れること、及び/又は、陸標が現れる画像に対する陸標が現れない画像の比率が閾値を超える場合、潜在的な陸標を拒否することを含み得る。例えば、潜在的な陸標が車両1210からのデータに現れるが、車両1205、1215、1220、及び1225からのデータには現れない場合、システムは、1:5の比率が潜在的陸標を受け入れるための閾値を下回っていると判断し得る。更に例として、潜在的な陸標が車両1205、1215、1220、及び1225からのデータに現れるが、車両1210からのデータには現れない場合、システムは、4:5の比率が潜在的な陸標を受け入れるための閾値を超えていると判断し得る。
プロセス2400は、サーバによって、共通の道路区分に沿って1つ又は複数の自律車両を自律的にナビゲートする際に使用するために、自律車両道路ナビゲーションモデルを1つ又は複数の自律車両に配信することを更に含み得る(ステップ2420)。例えば、サーバ1230は、道路区分1200に沿って車両を自律的にナビゲートする際に使用するために、自律車両道路ナビゲーションモデル又はモデルの一部(例えば、更新)を、車両1205、1210、1215、1220、及び1225、又は後に道路区分1200を走行する任意の他の車両に配信し得る。
プロセス2400は、追加の動作又はステップを含み得る。例えば、自律車両道路ナビゲーションモデルを生成することは、図29に関して以下で更に詳しく論じるように、車両1205、1210、1215、1220、及び1225から受信される車両軌道を道路区分1200に沿って複数のクラスタにクラスタ化すること、及び/又は車両1205、1210、1215、1220、及び1225から受信されるデータを位置合わせすることを含み得る。プロセス2400は、各クラスタ内のクラスタ化された車両軌道を平均化することにより、共通の道路区分1200に沿った目標軌道を決定することを含み得る。プロセス2400は、目標軌道を共通の道路区分1200の単一レーンに関連付けることも含み得る。プロセス2400は、自律車両道路ナビゲーションモデルでの目標軌道を表すために3次元スプラインを決定することを含み得る。
クラウドソーシングされる疎なマップのナビゲーションへの使用
上記で論じたように、サーバ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つ又は複数の処理デバイスにより実行し得る。
1つの実施形態では、疎なマップモジュール2502は、処理ユニット110によって実行されると、サーバ1230によって配信された疎なマップを受信(及び、幾つかの実施形態では記憶)する命令を記憶し得る。疎なマップモジュール2502は、1回の通信で疎なマップ全体を受信し得るか、又は疎なマップのサブ部分を受信し得て、サブ部分は、車両が動作している領域に対応する。
1つの実施形態では、画像分析モジュール2504は、処理ユニット110によって実行されるとき、画像捕捉デバイス122、124及び126の1つによって取得される1つ又は複数の画像の画像分析を実行する命令(コンピュータビジョンソフトウェア等)を記憶し得る。以下で更に詳細に説明するように、画像分析モジュール2504は、1つ又は複数の画像を分析して、車両の現在の位置を決定し得る。
1つの実施形態では、路面特徴モジュール2506は、処理ユニット110によって実行されると、疎なマップモジュール2502によって受信される疎なマップ内の、及び/又は画像捕捉デバイス122、124、及び126の1つによって取得された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が、車両が少なくとも1つの線表現から左に1mオフセットしていると判断した場合、プロセッサ2315は、車両を右に向かってシフトさせ得る(例えば、車輪の向きを変更することによって)。更に例として、プロセッサ2315が、識別される陸標が予期される位置からオフセットしていると判断した場合、プロセッサ2315は、識別される陸標をその予期される位置に向かって移動させるように車両をシフトさせ得る。従って、幾つかの実施形態では、プロセス2600は、自律ナビゲーション応答に基づいて車両の操舵システムを調整することを更に含み得る。
クラウドソーシングされるマップデータの位置合わせ
上記で論じたように、クラウドソーシングされる疎なマップの生成は、共通の道路区分に沿った複数の走行からのデータを使用し得る。このデータは、コヒーレントな疎なマップを生成するために位置合わせし得る。図14に関して上記で論じたように、マップスケルトンを生成することは、ナビゲーションで使用するスプラインを構築するには不十分であり得る。従って、本開示の実施形態は、複数の走行からクラウドソーシングされるデータを位置合わせることを可能にし得る。
図27は、自律車両ナビゲーションで使用するための道路ナビゲーションモデルを生成するための1つ又は複数の動作を実行するためのコンピュータコード又は命令を記憶し得る、メモリ2015のブロック図を示す。図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の走行からの生データは一連の白抜きの四角形として示され、第4の走行からの生データは一連の白抜きの円形として示される。当業者は認識するように、形状はデータ自体の単なる例示であり、ローカルであれグローバルであれ、一連の座標として記憶され得る。
図28Aに見られ得るように、走行は同じ道路(レーン1200で表される)に沿った異なるレーンで発生し得る。更に、図28Aは、走行データは、位置測定(例えば、GPS)の誤差による分散を含み得て、システムエラーのためにデータポイントが欠落し得ることを示す。最後に、図28Aはまた、各走行が道路に沿った区分内の異なる点で開始及び終了し得ることを示す。
図28Bは、5つの異なる走行からの生の位置データの別の例を示す。図28Bの例では、第1の走行からの生データは一連の塗りつぶされた四角形として示され、第2の走行からの生データは一連の白抜きの四角形として示され、第3の走行からの生データは一連の白抜きの円形として示され、第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/hr超で道路に沿って走行する場合は1km、30km/hr未満で道路に沿って走行する場合は0.8kmに事前設定され得る。或いは又は同時に、機械学習分析は、走行条件、走行速度等の幾つかの従属変数に基づいて、パッチのサイズ又は長さを最適化し得る。更に、幾つかの実施形態では、経路は、データサイズ及び走行長によって定義され得る。
幾つかの実施形態では、データの第1の組及びデータの第2の組は、位置情報を含み得て、複数の陸標に関連付けられ得る。そのような実施形態では、プロセス2900は、図19に関して上述したように、1つ又は複数の閾値に基づいて、データの組内の陸標を受け入れるか拒否するかを決定することを更に含み得る。
プロセス2900は、走行データの第1の組を、対応するパッチ内の走行データの第2の組と縦方向に位置合わせすることを含み得る(ステップ2920)。例えば、縦方向の位置合わせは、データの第1の組又はデータの第2の組のいずれかを参照データセットとして選択し、次いで、データの他の組をシフト及び/又は弾性的に伸張してセット内のパッチを位置合わせすることを含み得る。幾つかの実施形態では、データの組を位置合わせすることは、両方の組に含まれ、パッチに関連付けられたGPSデータを位置合わせすることを更に含み得る。例えば、パッチ間の組との接続を調整して、GPSデータとより密接に位置合わせし得る。しかし、そのような実施形態では、GPSデータの制限によって位置合わせが損なわれるのを防止するために調整を制限しなければならない。例えば、GPSデータは3次元ではなく、従って道路の3次元表現に投影すると、不自然なねじれ及び傾斜が生じ得る。
プロセス2900は、第1及び第2のドラフトパッチでの縦方向に位置合わせした第1及び第2の走行データに基づいて、路面特徴の線表現を決定することを更に含み得る(ステップ2925)。例えば、線表現は、位置合わせしたデータ上で平滑線モデルを使用して構築され得る。幾つかの実施形態では、線表現を決定することは、走行データの第1の組又は走行データの第2の組の少なくとも1つの一部として取得されたGPSデータに基づく線表現のグローバル座標との位置合わせを含み得る。例えば、データの第1の組及び/又はデータの第2の組は、ローカル座標で表し得るが、平滑線モデルを使用するには、両方の組が同じ座標軸を有する必要がある。従って、特定の態様では、データの第1の組及び/又はデータの第2の組は、互いに同じ座標軸を有するように調整され得る。
幾つかの実施形態では、線表現を決定することは、平均変換の組を決定及び適用することを含み得る。例えば、平均変換のそれぞれは、順次パッチにわたる走行データの第1セットからのリンクデータ、及び順次パッチにわたる走行データの第2セットからのリンクデータを決定した変換に基づき得る。
プロセス2900は、追加の動作又はステップを含み得る。例えば、プロセス2900は、路面特徴の線表現を少なくとも1つの地理的画像に重ね合わせることを更に含み得る。例えば、地理的画像は衛星画像であり得る。更に例として、プロセス2900は、決定された線表現及び縦方向の位置合わせに基づいて、誤っているように見える陸標情報及び/又は走行データをフィルタリングして除去することを更に含み得る。そのようなフィルタリングは、図19に関して上述したように、1つ又は複数の閾値に基づいて、可能性のある陸標を拒否することと概念が類似し得る。
道路面情報のクラウドソーシング
疎なマップを生成するために陸標及び線表現をクラウドソーシングすることに加えて、開示されるシステム及び方法は、路面情報もクラウドソーシングし得る。従って、道路条件は、自律車両のナビゲーションに使用される疎なマップと共に、及び/又は疎なマップ内に記憶され得る。
図30は、開示される実施形態による1つ又は複数の動作を実行する命令を記憶/プログラムされ得るメモリ140及び/又は150の例示的な機能ブロック図である。以下ではメモリ140を参照するが、当業者は、命令がメモリ140及び/又は150に記憶可能なことを認識するであろう。
図30に示すように、メモリ140は、画像受信モジュール3002、路面特徴モジュール3004、位置決定モジュール3006、及びナビゲーション応答モジュール3008を記憶し得る。開示される実施形態は、いかなる特定の構成のメモリ140にも限定されない。更に、アプリケーションプロセッサ180及び/又は画像プロセッサ190は、メモリ140に含まれる任意のモジュール3002、3004、3006、及び3008に記憶される命令を実行し得る。以下の考察での処理ユニット110の参照が、アプリケーションプロセッサ180及び画像プロセッサ190を個々に又はまとめて指し得ることを当業者は理解するであろう。従って、以下のプロセスのいずれかのステップは、1つ又は複数の処理デバイスにより実行し得る。
1つの実施形態では、画像受信モジュール3002は、処理ユニット110によって実行されると、画像捕捉デバイス122、124、及び126の1つによって取得される画像を受信する(及び、幾つかの実施形態では、記憶する)命令を記憶し得る。
1つの実施形態では、路面特徴モジュール3004は、処理ユニット110によって実行されるとき、画像捕捉デバイス122、124及び126の1つによって取得される1つ又は複数の画像の分析を実行し、路面特徴を識別する命令(コンピュータビジョンソフトウェア等)を記憶し得る。例えば、路面特徴は、道路縁部又はレーンマークを含み得る。
1つの実施形態では、位置決定モジュール3006は、処理ユニット110によって実行されると、車両に関する位置情報を受信する命令(GPSソフトウェア又は視覚オドメトリソフトウェア等)を記憶し得る。例えば、位置決定モジュール3006は、車両の位置を含むGPSデータ及び/又は自己運動データを受信し得る。幾つかの実施形態では、位置決定モジュール3006は、受信される情報を使用して1つ又は複数の位置を計算し得る。例えば、位置決定モジュール3006は、画像捕捉デバイス122、124、及び126の1つによって取得される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
式1の例では、B(u)はスプラインを表す曲線、b
k(u)は基底関数、P
(k)は制御点を表す。制御点は、例えば、以下の式2に従ってローカル座標に変換され得る。
式2
式2の例では、Pl
(k)はローカル座標に変換された制御点P(k)を表し、Rは、例えば、車両の進行方向から推測され得る回転行列であり、RTは回転行列の転置を表し、Tは車両の位置を表す。
幾つかの実施形態では、車両の経路を表すローカル曲線は、以下の式3を使用して決定され得る。
式3
式3の例では、fはカメラの焦点距離であり、B
lz、B
ly、及びB
lxはローカル座標での曲線Bの成分を表す。Hの導出は、以下の式4で表され得る。
式4
式1に基づいて、式4のB'
lは、以下の式5によって更に表され得る。
式5
式5は、例えば、ニュートンラフソンベースの解法によって解き得る。特定の態様では、解法は5つ以下のステップで実行され得る。xを解くために、幾つかの実施形態では、以下の式6を使用し得る。
式6
幾つかの実施形態では、軌道の導関数が使用され得る。例えば、導関数は以下の式7によって与えられ得る。
式7
式7の例では、Xjは、例えば、車両の位置の状態成分を表し得る。特定の態様では、jは1~6の整数を表し得る。
式7を解くために、幾つかの実施形態では、以下の式8を使用し得る。
式8
式8を解くために、幾つかの実施形態では、陰関数微分法を使用して以下の式9及び式10を取得し得る。
式9及び式10
式9及び式10を使用して、軌道の導関数を取得し得る。幾つかの実施形態では、拡張カルマンフィルタを使用して、レーン測定値の位置を特定し得る。上述したように、レーン測定値の位置を特定することにより、レーンマークを使用して、推測航法によるナビゲーション中の誤差の蓄積を最小限に抑え得る。レーンマークの使用については、図32~図35に関して以下で更に詳細に説明する。
図32は、開示される実施形態による1つ又は複数の動作を実行する命令を記憶/プログラムされ得るメモリ140及び/又は150の例示的な機能ブロック図である。以下ではメモリ140を参照するが、当業者は、命令がメモリ140及び/又は150に記憶可能なことを認識するであろう。
図32に示すように、メモリ140は、位置決定モジュール3202、画像分析モジュール3204、距離決定モジュール3206、及びオフセット決定モジュール3208を記憶し得る。開示される実施形態は、いかなる特定の構成のメモリ140にも限定されない。更に、アプリケーションプロセッサ180及び/又は画像プロセッサ190は、メモリ140に含まれる任意のモジュール3202、3204、3206、及び3208に記憶される命令を実行し得る。以下の考察での処理ユニット110の参照が、アプリケーションプロセッサ180及び画像プロセッサ190を個々に又はまとめて指し得ることを当業者は理解するであろう。従って、以下のプロセスのいずれかのステップは、1つ又は複数の処理デバイスにより実行し得る。
1つの実施形態では、位置決定モジュール3202は、処理ユニット110によって実行されると、車両に関する位置情報を受信する命令(GPSソフトウェア又は視覚オドメトリソフトウェア等)を記憶し得る。例えば、位置決定モジュール3202は、車両の位置を含むGPSデータ及び/又は自己運動データを受信し得る。幾つかの実施形態では、位置決定モジュール3202は、受信される情報を使用して1つ又は複数の位置を計算し得る。例えば、位置決定モジュール3202は、画像捕捉デバイス122、124、及び126の1つによって取得される1つ又は複数の画像を受信し、画像の分析を使用して車両の位置を決定し得る。
位置決定モジュール3202はまた、車両の位置を決定するために他のナビゲーションセンサを使用し得る。例えば、速度センサ又は加速度計は、車両の位置を計算する際に使用するために、位置決定モジュール3202に情報を送信し得る。
1つの実施形態では、画像分析モジュール3204は、処理ユニット110によって実行されるとき、画像捕捉デバイス122、124及び126の1つによって取得される1つ又は複数の画像の分析を実行する命令(コンピュータビジョンソフトウェア等)を記憶し得る。以下で更に詳細に説明するように、画像分析モジュール3204は、1つ又は複数の画像を分析して、少なくとも1つのレーンマークを識別し得る。
1つの実施形態では、距離決定モジュール3206は、処理ユニット110によって実行されると、画像捕捉デバイス122、124、及び126の1つによって取得された1つ又は複数の画像の分析を実行し、画像分析モジュール3204によって識別された車両からレーンマークまでの距離を決定する命令を記憶し得る。
1つの実施形態では、オフセット決定モジュール3208は、道路モデル軌道から車両の推定オフセットを決定するために、処理ユニット110によって実行可能なソフトウェアを記憶し得る。例えば、オフセット決定モジュール3208は、距離決定モジュール3206によって決定された距離を使用して、推定オフセットを計算し得る。次いで、位置決定モジュール3202、画像分析モジュール3204、距離決定モジュール3206、及び/又はオフセット決定モジュール3208の実行から導出されるデータに基づいて、所望のナビゲーション応答を決定し得る。
更に、本明細書で開示するモジュール(例えば、モジュール3202、3204及び3206)のいずれも、トレーニング済みシステム(ニューラルネットワーク又はディープニューラルネットワーク等)又はトレーニングされていないシステムに関連する技法を実装することができる。
図33Aは、レーンマークを使用せずに推測航法でナビゲートする車両の例を示す。図33Aの例では、車両は軌道3310に沿ってナビゲートされるが、ナビゲートのためにレーンマーク(例えば、マーク3320A又は3320B)を使用しない。
図33Bは、図33Aの350m後の例を示す。図33Bに示すように、車両の軌道3310は、推測航法誤差の蓄積により、レーンマーク(例えば、マーク3320A又は3320B)と完全に位置合わせされない。
図33Cは、図33A及び図33Bの1km後の例を示す。図33Cに示すように、陸標の予期される位置3330Aは、陸標の実際の位置3330Bと位置合わせされない。ここで、車両は陸標を使用して、1kmのコースにわたって累積された推測航法誤差を修正し得るが、本開示のシステム及び方法は、レーンマークを使用して、陸標間の推測航法誤差の累積を最小限に抑えることを可能にし得る。
図34Aは、レーンマークを使用した推測航法でナビゲートする車両の例を示す。図34Aの例では、車両は、ナビゲートのために位置特定して使用するための軌道3410に沿って、及び識別されたレーンマーク(例えば、マーク3420A及び3420B)にも沿ってナビゲートされる。
図34Bは、図34Aの350m後の例を示す。図34Bに示すように、車両は識別されたレーンマークを使用して推測航法誤差を修正しているため、車両の軌道3410は、レーンマーク(例えば、マーク3420A及び3420B)と実質的に位置合わせされる。
図34Cは、図34A及び図34Bの1km後の例を示す。図34Cに示すように、陸標の予期される位置3430Aは、陸標の実際の位置3430Bと実質的に位置合わせされる。従って、陸標に遭遇すると、図34Cの車両は、図33Cの車両よりも大幅に小さな修正を行い得る。以下で説明する図35のプロセス3500は、図34A~図34Cのように、車両がナビゲーションのためにレーンマークを使用し得る例示的なプロセスである。
図35は、道路区分をナビゲートする車両の位置を修正するための例示的なプロセス3500を示すフローチャートである。プロセス3500は、ナビゲーションシステム2300に含まれるプロセッサ2315によって実行され得る。
プロセス3500は、少なくとも1つのナビゲーションセンサの出力に基づいて、所定の道路モデル軌道に沿った車両の測定位置を決定することを含み得る(ステップ3505)。例えば、所定の道路モデル軌道は、道路区分に関連付けられ得て、幾つかの実施形態では、所定の道路モデル軌道は、道路区分に沿った目標軌道の3次元多項式表現を含み得る。少なくとも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は、自律操舵動作に基づいて車両の操舵システムを調整することを更に含み得る。
レーンマッピング及びナビゲーション
開示されるシステム及び実施形態は、レーン分割が車両軌道に基づいてマッピングされることを可能にし得る。開示されるシステム及び実施形態は、車両軌道に基づいて、レーン分割が検出されることを更に可能にし得る。
レーン分割は、分割後にレーン数が増加又は減少する道路区分の一部を含み得る。例えば、道路区分に沿って所与の方向に走行するための利用可能なレーンの数は、1から2、2から3等に増加し得る。サーバ1230等のサーバは、道路区分に沿って走行する車両からナビゲーション情報を受信し、道路区分でのレーン分割を識別し得る。サーバ1230は、車両道路ナビゲーションモデルを更新して、レーン分割から現れる新しいレーンの目標軌道を確立し得る。従って、ナビゲーション中に、ホスト車両は新しいレーンに入り、マップされた軌道に従ってナビゲートし得る。
本明細書に開示すように、道路区分でのレーン分割特徴をマッピング及びナビゲートするための技術は、効率及び精度に関連する問題を含む幾つかの重要な技術的問題を克服する。既存の技術は、例えば、道路区分をナビゲートする車両によって捕捉された画像に基づいて、道路境界又はレーンマークに基づいてレーン分割特徴を決定し得る。場合によっては、これにより道路の分割が検出され得るが、車両が走行するための最も望ましい経路が反映され得ない。例えば、多くの車両は、道路区分のマークがレーン分割特徴を示す前に、新しいレーンに移動し始める。本明細書に開示すように、実際の軌道に基づいてレーン分割特徴をマッピング及びナビゲートするための技術は、車両がレーン分割特徴を横断する方法とより一致する目標軌道を提供する。
図36は、開示される実施形態による、レーン分割を有する例示的な道路区分3600を示す。上記で論じたように、レーン分割は、道路に関連付けられた進行方向に沿って走行に利用可能なレーンの数が増加(又は減少)する道路の任意の部分を含み得る。例えば、図36に示すように、道路区分3600は、車両3621及び3622がそれぞれ走行し得るレーン3611及び3612を含み得る。車両3620、3621、及び3622は、矢印3630によって示される一般的な進行方向に道路区分3600に沿って走行し得る。道路区分3600は、新しいレーン3610が出現するレーン分割を含み得る。図36に示すように、車両3620は、レーン3611から新しいレーン3610に入り得る。レーン分割の結果、道路区分3600で利用可能な走行レーンの数が2レーンから3レーンに増加し得る。図36に示すレーン分割は、例として提供される。開示されるシステム及び方法は、レーン分割の他の様々な構成に適用され得ることを理解されたい。例えば、利用可能な走行レーンの数は、1から2、2から3、3から4等に増加し得る。幾つかの実施形態では、レーンの数は2つ以上増加し得る(例えば、2つ、3つ、4つ、又はそれ以上のレーンが追加される場合)。本開示は、所与の進行方向に沿ったレーン数の増加に関連して一般に論じられているが、開示システム及び方法は、例えば、レーン合流等、レーン数が減少する状況にも適用し得る。
レーン分割の結果として新しいレーン3610が追加される様々なシナリオが存在し得る。幾つかの実施形態では、レーン分割は、高速道路又は幹線道路からの出口に関連付けられ得る。従って、新しいレーン3610は、出口ランプ等に関連付けられ得る。他の実施形態では、レーン分割は、方向転換レーンに関連付けられ得る。例えば、車両3620が交差点に接近中であり得て、新しいレーン3610は、交差点で方向転換する車両のための方向転換レーンを含み得る。レーン分割はまた、道路の分岐点又は分割に関連付けられ得て、新しいレーン3610は、最終的に、レーン3611及び/又は3612から逸脱し得る。従って、新しいレーン3610は、レーン分割後、最終的にレーン3611及び/又は3612以外の別の道路区分に関連付けられ得る。幾つかの実施形態では、レーン分割は、追加の交通量等に対応する(例えば、道路にレーンを追加する)ために、一続きの道路の幅の変化に関連付けられ得る。従って、新しいレーン3610は、分割後、道路区分3600に沿って継続し得る。新しいレーン3610は、道路区分3600の外側レーンを形成するように出現することが示されているが、内側レーンでもあり得る。例えば、幾つかの実施形態では、新しいレーン3610は、レーン3611と3612との間等に出現し得る。
レーン分割は、道路区分3600に沿って走行する車両の軌道を分析することによって識別され得る。図37Aは、開示される実施形態による、レーン分割を識別するために使用され得る例示的な車両軌道を示す。サーバ1230等のサーバは、道路区分3600を横断する車両から複数の車両軌道3701、3702、3703、3704、3705、及び3706を受信し得て、それらを使用してレーン分割を識別し得る。軌道3701、3702、及び3703は、レーン分割後に新しいレーン3610に入ることを選択した車両の軌道を表し得る。軌道3704、3705、及び3706は、レーン分割後もレーン3611内を走行し続ける車両の軌道を表し得る。軌道は、車両によって記録され、車両からサーバ1230に送信され得る。上記でより詳細に論じたように、軌道は、スプライン、一連の点(例えば、位置識別子)、又は他の様々な形式で表し得る。幾つかの実施形態では、軌道は、上記で論じたように、参照座標系に基づいて定義され得る。幾つかの実施形態では、軌道は、サーバ1230に送信される前に、車両によって組み立てられ得る。他の実施形態では、軌道は、例えば、道路区分3600を横断する車両から受信されたデータに基づいて、サーバ側で組み立てられ得る。例えば、幾つかの実施形態では、の車両(例えば、車両200)は、道路区分3600に沿ったそれらの移動(例えば、とりわけ、操舵角、進行方向、時間、位置、速度、検知される道路形状、及び/又は検知される陸標等)に関連するデータを1つ又は複数のサーバに送信し)得る。サーバは、受信されるデータに基づいて車両の軌道を再構築し得る。
幾つかの実施形態では、レーン分割は、軌道3701等の第1の軌道、及び軌道3704等の第2の軌道に基づいて識別され得る。そのような実施形態では、レーン分割は、軌道3701と3704との間の横方向の間隔に基づいて識別され得る。例えば、レーン分割は、レーン分割後の軌道間の横方向の間隔の増加に基づいて検出され得る。幾つかの実施形態では、レーン分割は、軌道3701と3704との間の横方向の間隔を横方向の間隔の閾値と比較することによって決定され得る。例えば、レーン分割は、閾値を超える横方向の間隔(例えば、0.5m、1.0m、2.0m等)に基づいて識別され得る。幾つかの実施形態では、レーン分割をより正確に識別するために、ローリング平均、回帰モデル(線形回帰、局所回帰等)、又は他の様々な統計分析方法も使用され得る。
レーン分割はまた、道路区分3600に関連付けられた環境情報又は他のデータに基づいて決定され得る。サーバ1230は、環境データを使用して、軌道の逸脱がレーン変更等ではなくレーン分割を表すかどうかを検証し得る。幾つかの実施形態では、環境情報は、道路区分3600を横断する車両によって捕捉される1つ又は複数の画像を含み得る。サーバ1230は、画像を分析して、レーン分割を示す道路区分3600の特徴の表現を識別し得る。例えば、サーバ1230は、レーン境界3740の形状が、新しいレーン3610が形成されたことを示していると判断し得る。別の例として、サーバ1230は、逸脱前ではなく、逸脱後に、レーン分割を示し得る、軌道3701及び3704を分離する破線のレーンマーク3741を検出し得る。サーバ1230は、道路の構造(例えば、全幅の増加等)、レーンマーク、車両、交通標識、交通矢印、信号機等の画像内の他の特徴に基づいてレーン分割を検出及び/又は検証し得る。幾つかの実施形態では、環境情報は画像でなくてもよく、上記の特徴のいずれかを表すデータを含み得る。これらの特徴は、例えば、捕捉画像内の特徴を認識するために、トレーニングされたモデルを使用して(例えば、ディープニューラルネットワークを使用して等)検出され得る。幾つかの実施形態では、環境情報は、道路区分3600を横断する車両から受信され得る。例えば、環境情報は、軌道3701及び3704に関連付けられた車両から受信され得るか、又は他の車両から受信され得る。他の実施形態では、環境情報は、レーン分割を決定するために保管場所から取得され得る。他の実施形態では、レーン分割特徴は、環境情報(例えば、画像等)を使用せずに決定し得て、車両軌道の分析に基づき得る。
幾つかの実施形態では、レーン分割は、レーン3610に入る車両及びレーン3611に沿って進む車両に関連付けられた複数の軌道に基づいて決定され得る。例えば、レーン分割特徴は、道路区分を横断する車両のクラウドソーシング軌道に基づいて検出され得る。サーバ1230は、特徴がマッピングされる前に、レーン分割特徴を示す十分な証拠又はデータを必要とし得る。例えば、単一の車両又は逸脱する軌道を有する少数の車両のみが外れ値であり得て、レーン分割特徴を確立するのに十分であり得ない。従って、サーバ1230は、軌道に基づいてレーン分割を識別するためのクラスタ化又は他の動作を実行し得る。図37Bは、開示される実施形態による、レーン分割を決定するための車両軌道の例示的なクラスタ化を示す。上記で論じたように、軌道3701、3702、及び3703は、レーン分割後に新しいレーン3610に入る車両に関連付けられ得て、軌道3704、3705、及び3706は、レーン3611内を走行し続ける車両に関連付けられ得る。図37Bには、例示の目的のために、各オプション(例えば、レーン3610に入る、又はレーン3611に進む)の3つの軌道が示されているが、レーン分割を識別するために任意の適切な数の軌道を使用し得ることが理解されよう。
サーバ1230は、レーン分割特徴を検出するときに、軌道3701、3702、3703、3704、3705、及び3706をクラスタ化するように構成され得る。例えば、サーバ1230は、クラスタ3721、3722、3723、3724、3725、及び3726を決定し得る。クラスタ化は、道路区分3600に沿った様々な位置で決定され得る。幾つかの実施形態では、クラスタ化は、所定の間隔(例えば、1m、2m、5m、10m、20m、50m等)で決定され得る。間隔を決定するために様々なファクタを使用し得る。例えば、間隔の区間が短いと、特に分析される軌道の数(又は各軌道に関連付けられたデータの量等)が増加するにつれて、計算負荷が高くなり得る。しかし、間隔の区間を長くすると精度が低下し得るため、道路区分又は軌道経路の複雑さも考慮され得る。幾つかの実施形態では、クラスタ化は、事前定義された間隔で決定され得ない。例えば、位置はランダムであり得るか、道路区分及び/又は軌道の特性に基づき得る。
各位置で、サーバ1230は、軌道間の横方向の間隔に基づいて、軌道をクラスタ化するように構成され得る。クラスタ化は、特定の位置で軌道又は道路区分に垂直な区分を定義し、区分と交差する全ての軌道を識別することによって決定し得る。例えば、クラスタ3721では、示すように、全ての軌道3701、3702、3703、3704、3705、及び3706が一緒にクラスタ化され得る。幾つかの実施形態では、クラスタ化は、軌道間の最小距離又は閾値距離(例えば、0.1m、0.5m、1.0m、2.0m、3.0m等)に基づき得る。例えば、クラスタ3722では、軌道3701、3702、及び3703と軌道3704、3705、及び3706との間に幾つかの逸脱が現れ始めているにもかかわらず、全ての軌道が再び一緒にクラスタ化され得る。しかし、クラスタ3723及び3725では、2つのグループの軌道(3701、3702、及び3703、並びに3704、3705、及び3706)は、示すように別々にクラスタ化され得る。同じことがクラスタ3724及び3726にも当てはまり得る。クラスタ化に基づいて、サーバ1230は、クラスタ3722で始まる軌道間の逸脱を決定し得る。この逸脱は、レーン分割を示し得る。上記で論じたように、レーン分割は、クラスタ間の横方向の間隔に基づいて決定され得る。例えば、レーン分割は、閾値を超える横方向の間隔(例えば、0.5m、1.0m、2.0m等)に基づいて識別され得る。幾つかの実施形態では、ローリング平均、他の統計分析方法もまた、クラスタに基づいてレーン分割を識別するために使用され得る。更に、上記で論じたように、環境情報(例えば、画像等)を使用して、クラスタ化に基づいて識別された逸脱を確認し得る。例えば、サーバ1230は、画像を使用して、逸脱がレーン分割に関連付けられているかどうか、又は逸脱が外れ値と見なされるべきかどうか等を決定し得る。
サーバ1230は更に、道路区分3600を通る自律車両によって使用される走行可能な経路に対応する目標軌道を決定し得る。幾つかの実施形態では、これは、軌道に基づいて展開された一連のクラスタを接続することを含み得る。図37Cは、開示される実施形態による、例示的な目標軌道3730及び3731を示す。目標軌道3730は、新しいレーン3601に関連付けられ得るが、目標軌道3731は、レーン3611に関連付けられ得る。目標軌道は、図37Cに示すように、各クラスタ位置にノードを有するスプラインとして表し得る。幾つかの実施形態では、軌道は、一連の点等の他の形式で表し得る。点は、サーバ1230ごとの又は車両のローカルのいずれかのスプラインから取得され得る。幾つかの実施形態では、目標軌道は、クラスタのそれぞれを接続する軌道の数に基づいて決定され得る。例えば、軌道3701、3702、及び3703は、クラスタ3722及び3723(図37Bを参照)の両方を含み得て、従って、サーバ1230は、クラスタ3722及び3723を含ために、目標軌道3730を形成し得る。幾つかの実施形態では、サーバ1230は、2つのクラスタを接続する最小数の軌道に基づいて、クラスタの対間の接続を含み得る。結果として、目標軌道3730及び3731が決定され得る。目標軌道3730は、クラスタ3722に対応する分岐点又は逸脱点で開始され得る。
幾つかの実施形態では、サーバ1230は、軌道3730及び3731に沿った様々な点を調整するように更に構成され得る。例えば、軌道3730及び3731は、上述したクラスタ化技術に基づいて展開されるため、軌道3730及び3731が逸脱し始める点は、軌道の2つのグループが一緒にクラスタ化される最後の点になる。しかし、実際には、新しいレーン3610に入る車両の実際の軌道は、軌道の前半(例えば、クラスタ3722と3721との間)に発生し得るか、又は軌道の後半(例えば、レーン合流の場合)に発生し得る。従って、結果として生じる軌道3730は、車両が通常走行するよりも急な角度で軌道3731から分岐し得る。これを修正又は考慮するために、サーバ1230は、逸脱の位置を調整し得る。
図38Aは、開示される実施形態による、分岐点の場所を調整するための例示的なプロセスを示す。分岐点の調整は、上記で論じたクラスタ化技術と同様の方法で実行され得る。例えば、サーバ1230は、特定の分岐又は逸脱点に関連付けられた全ての軌道を検査し得る。図38Aに示す例では、これは、軌道3701、3702、3703、3704、3705、及び3706を含み得る。サーバ1230は、逸脱を定義するクラスタ点(例えば、クラスタ3722)の前及び/又は後の複数の縦方向距離で軌道をサンプリングし得る。縦方向距離は、上記のクラスタ化プロセスの所定の距離よりも短くあり得る、所定の距離(例えば、0.1m、0.2m、0.5m、1.0m等)で間隔を空け得る。縦方向距離のそれぞれで、サーバ1230は、軌道3701、3702、及び3703のグループ3801と、軌道3704、3705、及び3706のグループ3802との間の横方向距離Dを決定し得る。次いで、サーバ1230は、グループ3801及び3802が逸脱し始める場所に基づいて逸脱点を調整し得る。図38Bは、開示される実施形態による、例示的な調整された目標軌道3730及び3731を示す。例えば、サーバ1230は、目標軌道3730が、分岐点3810で目標軌道3731から分岐することを決定し得る。目標軌道3730及び3731に沿った他の様々な点は、実際の軌道に基づいて同様に調整され得る。分岐点を調整するための他の様々な手段も使用し得る。例えば、幾つかの実施形態では、分岐点は、所定の係数又は距離だけ後方に移動し得る。他の実施形態では、分岐点は、更にサンプリングなしに、クラスタ点のみの分析に基づいて調整され得る。例えば、分岐点の位置は、クラスタ3723、3722、及び3725等によって形成される角度に基づいて推定され得る。他の実施形態では、分岐点は、分岐角度が鋭角になりすぎない等を確認するために、目標軌道3730と3731との間の角度を閾値と比較することによって調整され得る。
幾つかの実施形態では、目標軌道3730及び3731を決定することは、目標軌道での1つ又は複数の異常を修正又は除去することを含み得る。図39A~図39Cは、開示される実施形態による、目標軌道3730及び3731で生じ得る異常の例を示す。そのような異常は、道路区分3600に沿って車両が走行する軌道の不一致が原因で発生し得る。場合によっては、異常は、レーン分割特徴を示さない、目標軌道3730と目標軌道3731との間の逸脱を含み得る。例えば、図39Aは、目標軌道が逸脱及び収束する目標軌道の区分を示しており、逸脱がレーン分割を表していないことを示し得る。そのような異常は、例えば、他のデータ(例えば、マッピングされたレーンマーク、画像データ、マッピングされた陸標等)を参照してレーン分割特徴を分析することによって、手動で分析することによって等、他の様々な方法で検出され得る。図39Aに示す異常は、例えば、ノード3901及び3902の少なくとも1つを除去することによって、又はノードを組み合わせて連続的な目標軌道を形成することによって修正され得る。同様に、図39Bに示すように、2つの目標軌道間の分岐点は、異常なノード3903及び/又は3904を含み得る。異常は、例えば、ノード3903又は3904の少なくとも1つを除去するか、又はノードを結合することによって修正され得る。他の例では、図39Cに示すように、目標軌道は、軌道における離脱及び/又は空白を含み得る。そのような異常は、ノード3905と3906とを接続することによって、又は、離脱がレーン分割特徴の一部ではない場合、無関係なノード3905を除去することによって修正され得る。幾つかの実施形態では、追加のノードを必要に応じて追加し得る。
図37A~図39Cに関して上述したステップの結果として、道路区分3600のレーン分割特徴に関連付けられた走行可能な経路を表す目標軌道が決定され得る。様々なステップ又は技術は、必ずしも上記で論じた順序で実行されるとは限らないことが理解されよう。例えば、目標軌道の異常点の修正は、逸脱点等を調整する前に実行し得る。幾つかの実施形態では、サーバ1230は、目標軌道3730及び3731を含むように車両道路ナビゲーションモデルを更新し得る。サーバ1230は、車両道路ナビゲーションモデル又はモデルの更新を、サーバ1230にデータを送信した車両に送信し得る。サーバ1230は、自律車両道路ナビゲーションモデル又はモデルの更新を、後に道路区分3600を走行する他の車両に送信し得る。幾つかの実施形態では、サーバ1230はまた、目標軌道に基づいて、上記で論じた疎なマップ800等の疎なマップを更新及び/又は配信し得る。
レーン分割特徴は、上記の説明全体を通して例として使用されているが、開示される実施形態は、レーン合流にも適用され得ることを理解されたい。例えば、上記のクラスタ化及び他の技術を使用して、サーバ1230は、道路区分に沿って合流する車両軌道を検出するように構成され得る。例えば、レーン合流特徴は、車両が高速道路に合流する入口ランプ、道路の狭窄部、方向転換レーン又は合流レーンの終わり、道路の「Y」字交差点、又はその他の様々なレーン合流特徴を含み得る。当業者は、上記で論じた技術に対する様々な修正が、レーン分割ではなくレーン合流を検出するために適用可能であり得ることを理解するであろう。例えば、システムは、閾値距離を下回る横方向の間隔に基づいて軌道間の収束を検出するように構成され得て、分岐点は、道路区分等の意図された進行方向に沿って後方ではなく、前方に調整され得る。
幾つかの実施形態では、開示される実施形態を使用して、立ち往生した車両、動物、緊急車両又はサービス車両、道路建設プロジェクト、レーン閉鎖等の道路区分内の障害物又は妨害物を検出し得る。道路内の障害物を横断する車両の軌道に基づいて、サーバ1230は、障害物に関連付けられたレーン分割及び/又はレーン合流を検出し得る。幾つかの実施形態では、サーバ1230は、レーン分割特徴を道路障害物等と区別するように構成され得る。例えば、サーバ1230は、車両軌道の逸脱の急激さ、分割後の軌道の収束、履歴データと比較した車両軌道の逸脱のタイミング(例えば、検出されたレーン分割が突然現れた場合等)に基づいて道路障害物を検出し得る。検出された障害物に基づいて、様々な制御アクションを実行し得る。例えば、サーバ1230は、道路ナビゲーションモデルを更新し得ないか、又は道路ナビゲーションモデルを一時的に更新し得る。サーバ1230はまた、障害物の通知を送信したり、道路ナビゲーションモデルに障害物のインジケータを含めたり等をし得る。
開示される実施形態は、本明細書に開示すように、レーン合流をマッピングするためのシステム及び方法を含み得る。例えば、車両ナビゲーションで使用するためにレーン合流をマッピングするためのシステムは、道路区分に沿ってナビゲートした第1の車両から第1のナビゲーション情報を受信するようにプログラムされた少なくとも1つのプロセッサを含み得る。道路区分は、レーン合流特徴を含み得て、道路区分は、レーン合流特徴の前の少なくとも第1の走行レーン及び第2の走行レーンを含み、合流特徴の後の第3の走行レーンに移行し得る。少なくとも1つのプロセッサは、道路区分に沿ってナビゲートした第2の車両から第2のナビゲーション情報を受信し、道路区分に関連付けられた少なくとも1つの画像を受信するように更にプログラムされ得る。少なくとも1つのプロセッサは、第1のナビゲーション情報から、道路区分の第1の走行レーンと第3の走行レーンに沿った第1の車両の第1の実際の軌道を決定することと、第2のナビゲーション情報から、道路区分の第2の走行レーン及び第3の走行レーンに沿った第2の車両の第2の実際の軌道を決定することと、第1の実際の軌道と第2の実際の軌道との間の収束を決定することと、少なくとも1つの画像の分析に基づいて、第1の実際の軌道と第2の実際の軌道との間の収束が、レーン合流特徴の道路区分における存在を示していることを決定することとを行うように更にプログラムされ得る。少なくとも1つのプロセッサは、レーン合流特徴の前の第1の走行レーンに対応し、レーン合流特徴の後の第3の走行レーンに沿って広がる第1の目標軌道と、レーン合流特徴の前の第2の走行レーンに沿って広がり、第1の目標軌道と結合する第2の目標軌道とを含むように車両道路ナビゲーションモデルを更新するように更にプログラムされ得る。
開示される実施形態はまた、レーン合流特徴をナビゲートするためのシステム及び方法を含み得る。例えば、道路区分に沿ってホスト車両をナビゲートするためのシステムは、サーバベースのシステムから車両道路ナビゲーションモデルを受信することを行うようにプログラムされる少なくとも1つのプロセッサを含み得て、車両道路ナビゲーションモデルは、レーン合流特徴の前の第1の走行レーンに対応し、レーン合流特徴の後の第3の走行レーンに沿って広がる第1の目標軌道を含み、車両道路ナビゲーションモデルはまた、レーン合流特徴の前の第2の走行レーンに沿って広がり、第1の目標軌道と結合する第2の目標軌道を含む。少なくとも1つのプロセッサは、ホスト車両の環境を示す情報を受信することと、ホスト車両の環境を示す情報に基づいて、ホスト車両を第1の目標軌道に沿ってナビゲートするか、第2の目標軌道に沿ってナビゲートするかを決定することと、決定された目標軌道に沿ってホスト車両をナビゲートするためのナビゲーション動作を決定することとを行うように更にプログラムされ得る。
開示される実施形態による、ホスト車両は、サーバ1230から受信される更新された道路ナビゲーションモデルに基づいて、レーン分割特徴を含む道路区分をナビゲートするように構成され得る。図40Aは、開示される実施形態による、レーン分割特徴を含む例示的な道路区分4000を示す。上記で論じたように、車両200に対応し得るホスト車両4010は、道路ナビゲーションモデルで表され得る目標軌道4031に沿って道路区分4000を横断し得る。モデルは、レーン分割特徴を表す第2の目標軌道4031を更に含み得る。目標軌道4030及び/又は目標軌道4031は、上記で論じたレーン分割マッピング技術を使用して展開され得る。
ホスト車両4010は、レーン分割特徴に近づくと、目標軌道4031に沿って継続するか、又は目標軌道4030を進むかを判断し得る。ホスト車両4010は、この判断を行うために情報を受信又はアクセスし得る。例えば、そのような情報は、車両の環境を示し得る。幾つかの実施形態では、情報は、ホスト車両のルート、道路区分4000の特性、目標軌道4030及び4031の特性に関する情報、又は様々な他の情報を提供し得るサーバ1230等のサーバによってアクセスされ得る。幾つかの実施形態では、情報は、例えば、画像捕捉デバイス、1つ又は複数のセンサ、ユーザインタフェースに入力した情報等を使用して、車両によって捕捉され得る。情報は、車両の特性(例えば、現在の速度、現在の位置、進行方向、車両の燃料レベル、車両の保守状態、又は他の様々な動作パラメータ)、又は環境の特性(例えば、制限速度、道路状況、天候条件、道路区分上の目標車両の存在、目標車両の速度又は他の特性、検出された陸標、道路内の障害物等)を含み得る。幾つかの実施形態では、情報は、ホスト車両4010上に、例えば、メモリ140上、マップデータベース160内等にローカルに記憶され得て、車両4010によってアクセスされ得る。
図40Aに示すように、目標軌道4030は、追い越しレーンの追加等、道路区分4000の拡幅を表し得る。ホスト車両4010は、ホスト車両4010の環境を示す情報に基づいて、目標軌道4030に沿ってナビゲートするかどうかを判断し得る。例えば、ホスト車両4010は、目標車両4021の後ろを走行し得て、目標車両4021に関する情報に基づいて、目標軌道4030に沿ってナビゲートするかどうかを判断し得る。幾つかの実施形態では、ホスト車両4010は、目標車両4021の速度を決定し得て、決定された速度に基づいて車両を追い越すかどうかを判断し得る。例えば、目標車両4021がホスト車両4010よりも低速で(又はホスト車両4010の目標又は所望の速度よりも低速で)走行している場合、ホスト車両4010は、目標車両4021を追い越すために目標軌道4030に沿って走行することを決定し得る。幾つかの実施形態では、決定はまた、1つ又は複数の規則に基づき得る。例えば、ホスト車両4010は、そうすることによってホスト車両4010が制限速度、最大加速度等を超えない場合にのみ、目標車両4021を追い越し得る。
幾つかの実施形態では、上記で論じたように、ホスト車両4010は、ホスト車両4010によって捕捉された画像に基づいて情報を決定し得る。図40Bは、開示される実施形態による、レーン分割特徴に関連付けられた目標軌道を決定する際にホスト車両によって使用され得る例示的な画像4020を示す。示するように、ホスト車両は、画像に基づいて目標車両4021を検出し得る。ホスト車両は、目標軌道4030又は目標軌道4031のどちらに沿って走行するかを決定するために使用され得る、位置、速度、加速度、サイズ、進行方向等の目標車両4021の他の特性を決定し得る。ホスト車両4010は、目標車両4021の特性を決定するため、又はどの目標軌道を進むかを決定するために使用され得る、レーンマーク4022又は他の陸標等の画像から他の特徴を更に検出し得る。
幾つかの実施形態では、どの目標軌道を進むかを決定するためにホスト車両4010によって使用される情報は、ホスト車両4010の意図されるルート又は目的地に基づき得る。例えば、ホスト車両4010は、目標軌道4030が目標ルートと一致しているかどうかを判断し得る。図40Cは、開示される実施形態による、レーン分割特徴を含む別の例示的な道路区分4001を示す。この例では、レーン分割特徴は出口ランプに関連付けられ得る。目標軌道4030は、現在の道路又は高速道路を出ることに関連付けられ得て、ホスト車両4010は、目標軌道4030が意図されるルートと一致するかどうかを判断し得る。例えば、出口ランプを利用すると、ホスト車両の目的地へのより早いルート、又はより直接的なルートが提供され得る。図40Cでは出口ランプの例が使用されているが、レーン分割特徴は、上記で論じたように、方向転換レーン、道路の「Y」字交差点、又はその他の様々なレーン分割特徴であり得る。前の例と同様に、ホスト車両4010は、ホスト車両4010の環境を示す情報に基づいて、目標軌道4030を進むかどうかを判断し得る。これは、ホスト車両4010の画像捕捉デバイスによって捕捉された画像を含み得る。図40Dは、開示される実施形態による、レーン分割特徴に関連付けられた目標軌道を決定する際にホスト車両によって使用され得る別の例示的な画像4040を示す。この例では、ホスト車両は、目標軌道4030が出口レーンに関連付けられていることを示し得る、出口標識4041等の陸標を検出し得る。道路構造(例えば、道路の幅、レーンが逸脱するかどうか等)、レーンマーク、天候条件、道路条件、障害物、目標車両等を含む、道路区分4001の他の様々な特徴を検出し得る。幾つかの実施形態では、ホスト車両4010は、画像4040を分析して、目標軌道4030又は4031に沿って交通条件又は他の条件があるかどうかを判断し得て、どの目標軌道に進むかの決定を通知し得る。上記で論じた例示的な情報は例として提供されており、他の形式又は情報は、レーン分割特徴をどのようにナビゲートするかを決定する際に使用され得ることを理解されたい。
決定された目標軌道に基づいて、ホスト車両4010は、目標軌道と一致するナビゲーション動作を決定し得る。例えば、ホスト車両4010が目標軌道4030を進むことを決定した場合、ナビゲーション動作は、車両4010を目標軌道4030に沿って誘導するための操舵動作であり得る。車両4010が、目標軌道4031を進むべきであることを判断した場合、ナビゲーション動作は、現在の進行方向を維持することであり得る。その他の様々なナビゲーション動作には、ブレーキ動作、加速、減速、合流動作等がある。
図41は、開示される実施形態による、車両ナビゲーションで使用するためのレーン分割をマッピングするための例示的なプロセス4100を示すフローチャートである。プロセス411は、サーバ1230等のサーバに含まれる少なくとも1つの処理デバイスによって実行され得る。プロセス4100は単なる例示である。本開示の利益を有する当業者であれば、プロセス4100は、追加のステップを含み得るか、特定のステップを除外し得るか、又は、さもなければ、本開示による方法で変更されて得ることを理解し得る。
ステップ4110において、プロセス4100は、道路区分に沿ってナビゲートした第1の車両から第1のナビゲーション情報を受信することを含み得て、道路区分は、レーン分割特徴を含む。道路区分は、レーン分割特徴の前の少なくとも第1の走行レーンを含み、レーン分割特徴の後の少なくとも第2の走行レーン及び第3の走行レーンに移行し得る。例えば、道路区分は、道路区分3600に対応し得て、従って、第2の走行レーンは、新しいレーン3610に対応し得て、第3の走行レーンは、レーン3611に対応し得る。幾つかの実施形態では、レーン分割特徴は、道路区分の拡幅に対応し得る。従って、第2の走行レーン及び第3の走行レーンは、レーン分割特徴の後に互いに平行に広がり得る。従って、第2の走行レーン及び第3の走行レーンは、引き続き同じ道路区分の一部であり得る。他の実施形態では、レーン分割特徴は、方向転換レーン、「Y」字交差点、出口ランプ等に対応し得る。従って、第2の走行レーン及び第3の走行レーンは、レーン分割特徴の後に互いに逸脱し得る。例えば、第2の走行レーンは、分割後に別の道路区分に関連付けられ得る。幾つかの実施形態では、第1の走行レーン及び第3の走行レーンは、連続した走行レーンを形成し得る。上記で論じたように、第1のナビゲーション情報は、第1の車両によってサーバ1230にアップロード又は送信され得る。第1のナビゲーション情報は、道路区分を横断する間に第1の車両によって記録される位置識別子を含み得る。
ステップ4111において、プロセス4100は、道路区分に沿ってナビゲートした第2の車両から第2のナビゲーション情報を受信することを含み得る。第1のナビゲーション情報と同様に、第2のナビゲーション情報は、第2の車両によってサーバ1230にアップロード又は送信され得る。第2のナビゲーション情報は、道路区分を横断する間に第2の車両によって記録される位置識別子を含み得る。幾つかの実施形態では、第1の車両及び第2の車両は、例えば、異なる時間に道路区分を横断する同じ車両であり得る。或いは、第1の車両及び第2の車両は、異なる車両であり得る。
ステップ4112において、プロセス4100は、道路区分に関連付けられた少なくとも1つの画像を受信することを含み得る。幾つかの実施形態では、画像は、道路区分を横断するホスト車両によって捕捉され得る。例えば、少なくとも1つの画像は、第1の車両又は第2の車両の画像捕捉デバイスによって捕捉され得る。少なくとも1つの画像は、ホスト車両の環境の特徴を示し得て、レーン分割特徴又は他の関連付けられた特徴の表現を含み得る。幾つかの実施形態では、少なくとも1つの画像は、サーバから、例えば、サーバ1230のストレージデバイスから取得され得る。
ステップ4113において、プロセス4100は、第1のナビゲーション情報から、道路区分の第1の走行レーン及び第2の走行レーンに沿った第1の車両の第1の実際の軌道を決定することを含み得る。例えば、ステップ4113は、第1の車両によって記録される位置識別子を分析して、第1の実際の軌道を決定することを含み得る。第1の実際の軌道は、複数のノードを有するスプラインによって、複数の点によって、又は様々な他の形式で表し得る。
ステップ4114において、プロセス4100は、第2のナビゲーション情報から、道路区分の第1の走行レーン及び第3の走行レーンに沿った第2の車両の第2の実際の軌道を決定することを含み得る。ステップ4113と同様に、ステップ4114は、第2の車両によって記録される位置識別子を分析して、第2の実際の軌道を決定することを含み得る。第2の実際の軌道は、複数のノードを有するスプラインによって、複数の点によって、又は様々な他の形式で表し得る。
ステップ4115において、プロセス4100は、第1の実際の軌道と第2の実際の軌道との間の逸脱を決定することを含み得る。上記で論じたように、逸脱は、第1の実際の軌道と第2の実際の軌道との間の横方向の間隔に基づいて決定され得る。更に、逸脱は、横方向の間隔と閾値との比較に基づいて決定され得る。
ステップ4116において、プロセス4100は、少なくとも1つの画像の分析に基づいて、第1の実際の軌道と第2の実際の軌道との間の逸脱が、レーン分割特徴の道路区分における存在を示していることを決定することを含み得る。幾つかの実施形態では、第1の実際の軌道と第2の実際の軌道との間の逸脱がレーン分割特徴の道路区分における存在を示しているという決定は、第1の実際の軌道と第2の実際の軌道との間の決定された横方向の間隔に更に基づく。例えば、サーバ1230は、第1の実際の軌道と第2の実際の軌道との間の横方向の間隔を分析して、逸脱がレーン分割特徴に対応するのに十分に足りているかどうかを判断し得る。サーバ1230はまた、少なくとも1つの画像を分析して、逸脱がレーン分割特徴を示しているかどうかを判断し得る。例えば、第1の実際の軌道と第2の実際の軌道との間の逸脱が、レーン分割特徴の道路区分における存在を示していると決定することは、少なくとも1つの画像で検出されたレーンマークの表現、道路の構造、又は他の特徴に更に基づき得る。
幾つかの実施形態では、プロセス4100は、複数の実際の軌道を分析することを含み得る。従って、プロセス4100は、上記で論じたクラスタ化及び他の技術を含み得る。例えば、プロセス4100は、道路区分に沿ってナビゲートした第3の実際の軌道を受信することを更に含み得る。プロセス4100は、道路区分に沿った複数の位置で、第3の実際の軌道を第1の実際の軌道又は第2の実際の軌道の少なくとも1つとクラスタ化することを更に含み得る。図37Bに示されるクラスタと同様に、第1の実際の軌道及び第2の実際の軌道は、レーン分割特徴の前の少なくとも1つの第1の位置に一緒にクラスタ化され得て、レーン分割特徴の後の少なくとも1つの第2の位置に別々にクラスタ化され得る。上記で論じたように、複数の位置は、所定の縦方向距離だけ分離され得て、その距離は、計算能力、ルートの複雑さ、車両ナビゲーション情報のサイズ等に依存し得る。上記で論じたクラスタ化技術の他の特徴又は側面は、プロセス4100にも適用され得る。
ステップ4117において、プロセス4100は、第1の目標軌道及び第2の目標軌道を含むように車両道路ナビゲーションモデルを更新することを含み得る。第1の目標軌道は、レーン分割特徴の前の第1の走行レーンに対応し得て、レーン分割特徴の後の第2の走行レーンに沿って広がり得る。第2の目標軌道は、第1の目標軌道から分岐し得て、レーン分割特徴の後の第3の走行レーンに沿って広がり得る。例えば、第2の目標軌道は、第1の目標軌道に近傍又は隣接する分岐点から始まる。クラスタ化技術が使用される実施形態では、第1の目標軌道及び第2の目標軌道は、図37Cに関して上記で論じたように、クラスタ化に基づいて決定され得る。幾つかの実施形態では、プロセス4100は、上記で論じたように、更新された車両道路ナビゲーションモデルを複数の車両に配信することを更に含み得る。
プロセス4100は、図37A~図39Cに関して上記で論じたように、様々な他の技術又はステップを含み得る。例えば、プロセス4100は、第1の実際の軌道及び第2の実際の軌道が逸脱し始める位置を決定するために、分岐点を囲む複数の位置で第1の実際の軌道と第2の実際の軌道との間の距離を分析することによって、第2の目標軌道が第1の目標軌道から分岐する位置を洗練することを更に含み得る。従って、分岐点は、第1の実際の軌道及び/又は第2の実際の軌道により対応するように調整され得る。幾つかの実施形態では、プロセス4100は、道路区分に沿ってナビゲートした第3の実際の軌道に基づいて、第2の目標軌道が第1の目標軌道から分岐する位置を洗練することを含み得る。例えば、第3の実際の軌道により、分岐位置を調整するための追加情報が提供され得る。
幾つかの実施形態では、プロセス4100は、図39A~図39Cに関して上記で論じたように、第1の目標軌道又は第2の目標軌道の少なくとも1つから少なくとも1つの異常を除去することを含み得る。例えば、少なくとも1つの異常は、レーン分割特徴を示さない、第1の目標軌道と第2の目標軌道との間の逸脱を含み得る。異常の除去は、第1の目標軌道及び/又は第2の目標軌道に関連付けられた1つ又は複数のノードの除去、調整、及び/又は結合を含み得る。
図42は、開示される実施形態による、道路区分に沿ってホスト車両をナビゲートするためのレーン分割をマッピングするための例示的なプロセス4200を示すフローチャートである。プロセス4200は、上述した処理ユニット110等の車両の少なくとも1つの処理デバイスによって実行され得る。プロセス4200は単なる例示である。本開示の利益を有する当業者であれば、プロセス4200は、追加のステップを含み得るか、特定のステップを除外し得るか、又は、さもなければ、本開示による方法で変更されて得ることを理解し得る。
ステップ4210において、プロセス4200は、サーバベースのシステムから、車両道路ナビゲーションモデルを受信することを含み得て、車両道路ナビゲーションモデルは、道路区分に関連付けられたレーン分割特徴の前の道路区分に沿った第1の走行レーンに対応し、レーン分割特徴の後の道路区分の第2の走行レーンに沿って広がる第1の目標軌道を含む。車両道路ナビゲーションモデルはまた、第1の目標軌道から分岐し、レーン分割特徴の後の道路区分の第3の走行レーンに沿って広がる第2の目標軌道を含み得る。車両道路ナビゲーションモデルは、上述したように、プロセス4200に従って更新された車両ナビゲーションモデルに対応し得る。
ステップ4211において、プロセス4200は、ホスト車両の環境を示す情報を受信することを含み得る。情報は、レーン分割特徴のナビゲートに関連する任意の形式の情報であり得て、図40A~図40Dに関して上記で論じられた情報のいずれかを含み得る。例えば、情報は、ホスト車両の画像捕捉デバイスによって捕捉された少なくとも1つの画像を含み得る。画像捕捉デバイスは、上述した画像取得ユニット120に対応し得る。幾つかの実施形態では、ホスト車両を第1の目標軌道に沿ってナビゲートするか、第2の目標軌道に沿ってナビゲートするかを決定することは、少なくとも1つの画像に基づいて、ホスト車両が追い越す目標車両を識別することを含み得る。例えば、ホスト車両4010は、上記で論じたように、目標車両4021を追い越すかどうかを決定し得る。更に、ホスト車両を第1の目標軌道に沿ってホストナビゲートするか、第2の目標軌道に沿ってナビゲートするかを決定することは、1つ又は複数の規則又はガイドラインを適用することを更に含み得る。情報は、ホスト車両に対する目標車両の速度、又は目標車両の他の様々な特性を更に含み得る。幾つかの実施形態では、情報は、ホスト車両の計画されたルートを含み得る。情報は、ホスト車両のセンサ又は他のデバイスによって捕捉され得て、ホスト車両に関連付けられたローカルストレージからアクセスされ得るか、又はサーバ1230等のサーバから取得され得る。
ステップ4212において、プロセス4200は、ホスト車両の環境を示す情報に基づいて、ホスト車両を第1の目標軌道に沿ってナビゲートするか、第2の目標軌道に沿ってナビゲートするかを決定することを含み得る。情報がホスト車両の計画されたルートを含む実施形態では、ホスト車両を第1の目標軌道に沿ってナビゲートするか、第2の目標軌道に沿ってナビゲートするかを決定することは、第1の目標軌道又は第2の目標軌道が計画されたルートと一致するかどうかに基づき得る。幾つかの実施形態では、ホスト車両を第1の目標軌道に沿ってナビゲートするか、第2の目標軌道に沿ってナビゲートするかを決定することは、第1の目標軌道又は第2の目標軌道の少なくとも1つが、方向転換レーン、出口ランプ、追い越しレーン等に関連付けられることを決定することを含む。
ステップ4213において、プロセス4200は、ホスト車両に決定された目標軌道に沿ってナビゲートさせるためのナビゲーション動作を決定することを含み得る。例えば、決定された目標軌道が第2の目標軌道に沿っている場合、ナビゲーション動作は、ホスト車両がレーン分割特徴の後の第2の目標軌道を通るように、ホスト車両の進行方向の変更を含み得る。他の実施形態では、ナビゲーション動作は、ホスト車両がレーン分割特徴の後の第1の目標軌道を通るように、ホスト車両の進行方向を維持することを含み得る。ブレーキ動作、追い越し動作、加速動作、合流動作等の他の様々なナビゲーション動作も実行し得る。
前述の説明は、例示の目的のために提示されたものである。これは網羅的ではなく、開示された正確な形態又は実施形態に限定されない。修正及び適合は、考察及び開示された実施形態の実施から当業者には明らかになるであろう。更に、開示される実施形態の態様は、メモリに記憶されていると説明されているが、これらの態様は、二次ストレージデバイス、例えば、ハードディスク又はCD ROM、又は他の形態のRAMもしくはROM、USBメディア、DVD、Blu-ray(登録商標)、4K Ultra HD Blu-ray、又はその他の光学ドライブメディア等他のタイプのコンピュータ可読媒体にも記憶できることを当業者なら理解するであろう。
記載された説明及び開示された方法に基づくコンピュータプログラムは、経験豊富な開発者のスキル内である。様々なプログラム又はプログラムモジュールは、当業者に既知の技術のいずれかを使用して作成できるか、又は既存のソフトウェアに関連付けて設計できる。例えば、プログラムセクション又はプログラムモジュールは、.Net Framework、.Net Compact Framework(及び、Visual Basic(登録商標)、C等の関連言語)、Java(登録商標)、C++、Objective-C、HTML、HTML/AJAXの組み合わせ、XML、又はJavaアプレットを含むHTMLにおいて、又はこれらを使用して設計できる。
更に、例示的な実施形態が本明細書に記載されているが、範囲には、本開示に基づいて当業者によって理解されるように、同等の要素、修正、省略、(例えば、様々な実施形態にわたる態様の)組み合わせ、適合、及び/又は変更を有する任意の及び全ての実施形態が含まれる。請求項における限定は、請求項で使用されている文言に基づいて広く解釈されるべきであり、本明細書に記載されている実施例又は本出願の審査中の実施例に限定されるものではない。実施例は非排他的であると解釈されるべきである。更に、開示された方法のステップは、ステップの並べ替え及び/又はステップの挿入又は削除を含む、任意の方法で変更され得る。従って、本明細書及び実施例は例示としてのみ考慮されることを意図しており、真の範囲及び精神は、以下の特許請求の範囲及びそれらの同等物の全範囲によって示される。