以下の詳細な説明では、添付図面を参照する。図面および以下の説明では、可能な限り、同じまたは同様の部分を指すために同じ参照番号が用いられる。いくつかの例示的な実施形態が本明細書で説明されるが、変更、改作、および他の実装例も可能である。例えば、図面に示されている構成要素に対して置換、追加、および変更を行ってもよく、本明細書で説明される例示的方法が、開示する方法に対して段階を置き換える、並べ替える、削除する、または追加することによって変更されてよい。したがって、以下の詳細な説明は、開示する実施形態および例に限定されない。その代わりに、添付の特許請求の範囲によって、適切な範囲が定められる。
[自動運転車の概要]
本開示全体にわたって用いられる場合、用語「自動運転車」とは、運転者の入力を必要とすることなく、少なくとも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(登録商標)は90nmテクノロジを用い、332MHzで動作する。EyeQ2(登録商標)アーキテクチャは、2つの浮動小数点ハイパースレッド32ビットRISC型CPU(MIPS32(登録商標)34K(登録商標)コア)、5つのビジョン計算エンジン(VCE)、3つのベクトルマイクロコードプロセッサ(VMP(登録商標))、Denaliの64ビットモバイルDDRコントローラ、128ビット内蔵Sonics Interconnect、16ビットビデオ入力および18ビットビデオ出力のデュアルコントローラ、16チャネルDMA、およびいくつかの周辺機器で構成される。MIPS34K CPUは、5つのVCE、3つのVMP(登録商標)およびDMA、第2のMIPS34K CPUおよびマルチチャネルDMA並びにその他の周辺機器を管理する。5つのVCE、3つのVMP(登録商標)、およびMIPS34K CPUは、多機能バンドル型アプリケーションが必要とする集中的なビジョン計算を行うことができる。別の例において、第3世代プロセッサであり、EyeQ2(登録商標)より処理能力が6倍高いEyeQ3(登録商標)が、開示する実施形態に用いられてよい。他の例において、EyeQ4(登録商標)および/またはEyeQ5(登録商標)が、開示する実施形態に用いられてよい。当然ながら、任意の新規または将来のEyeQ処理デバイスも、開示する実施形態と一緒に用いられてよい。
本明細書で開示する処理デバイスのうちのいずれかが、特定の機能を行うように構成されてよい。説明したEyeQプロセッサまたは他のコントローラもしくはマイクロプロセッサのうちのいずれかなどの処理デバイスを構成して、特定の機能を行うことには、コンピュータ実行可能命令をプログラムすること、および処理デバイスの動作時にこれらの命令を処理デバイスが実行のために利用できるようにすることが含まれてよい。いくつかの実施形態において、処理デバイスを構成することには、処理デバイスをアーキテクチャ命令で直接プログラムすることが含まれてよい。例えば、フィールドプログラマブルゲートアレイ(FPGA)および特定用途向け集積回路(ASIC)などといった処理デバイスが、例えば、1つまたは複数のハードウェア記述言語(HDL)を用いて構成されてよい。
他の実施形態において、処理デバイスを構成することは、処理デバイスが動作時にアクセスできるメモリに実行可能命令を格納することを含んでよい。例えば、処理デバイスが動作時に、メモリにアクセスして、格納された命令を取得し実行してよい。どちらの場合にも、本明細書で開示するセンシング、画像分析、および/またはナビゲーション機能を行うように構成された処理デバイスは、ホスト車両のハードウェアベースの複数の構成要素を制御する専用ハードウェアベースのシステムを表している。
図1は処理ユニット110に含まれる2つの別個の処理デバイスを示しているが、もっと多いまたは少ない処理デバイスを用いてもよい。例えば、いくつかの実施形態において、単一の処理デバイスを用いて、アプリケーションプロセッサ180および画像プロセッサ190のタスクを達成してもよい。他の実施形態において、これらのタスクを2つより多くの処理デバイスで行ってもよい。さらに、いくつかの実施形態において、システム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つの画像を取り込むのに好適な任意のタイプのデバイスを含んでよい。さらに、任意の数の画像取り込みデバイスを用いて、画像プロセッサに入力する画像を取得してもよい。いくつかの実施形態では、画像取り込みデバイスを1つだけ含んでよいが、他の実施形態では、画像取り込みデバイスを2つ、3つ、もしくは4つさえも、またはそれより多く含んでよい。画像取り込みデバイス122、124、および126はさらに、図2B~図2Eを参照して以下で説明される。
システム100またはその様々な構成要素は、様々な別のプラットフォームに組み込まれてもよい。いくつかの実施形態において、システム100は、図2Aに示すように、車両200に含まれてよい。例えば、車両200は、図1に関連して上述したように、処理ユニット110、およびシステム100の他の構成要素のうちのいずれかを備えてよい。いくつかの実施形態において、車両200は画像取り込みデバイス(例えば、カメラ)を1つだけ備えてよいが、図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も備えてよく、マップデータベース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を含んでよく、その車体には、車両200のバックミラーの近くおよび/または運転者の近くに配置された第1の画像取り込みデバイス122と、車両200のバンパー領域(例えば、バンパー領域210のうちの1つ)にまたはその中に配置された第2の画像取り込みデバイス124と、処理ユニット110とを有するシステム100が含まれる。
図2Cに示すように、画像取り込みデバイス122および124は両方とも、車両200のバックミラーの近くおよび/または運転者の近くに配置されてよい。さらに、図2Bおよび図2Cには、2つの画像取り込みデバイス122および124が示されているが、他の実施形態では2つより多くの画像取り込みデバイスを含んでもよいことを理解されたい。例えば、図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の特定のタイプに限定されることはなく、自動車、トラック、トレーラ、および他のタイプの車両を含むあらゆるタイプの車両に適用可能であってよいことも理解されたい。
第1の画像取り込みデバイス122は、任意の好適なタイプの画像取り込みデバイスを含んでよい。画像取り込みデバイス122は、光軸を含んでよい。一例において、画像取り込みデバイス122は、グローバルシャッタを備えたAptina製M9V024 WVGAセンサを含んでよい。他の実施形態において、画像取り込みデバイス122は、1280×960画素の解像度を提供してよく、またローリングシャッタを含んでよい。画像取り込みデバイス122は、様々な光学素子を含んでよい。いくつかの実施形態では、例えば、所望の焦点距離および視野を画像取り込みデバイスに提供するために、1つまたは複数のレンズが含まれてよい。いくつかの実施形態において、画像取り込みデバイス122は、6mmレンズまたは12mmレンズに関連してよい。いくつかの実施形態では、画像取り込みデバイス122は、図2Dに示すように、所望の視野(FOV)202を有する画像を取り込むように構成されてよい。例えば、画像取り込みデバイス122は、46度のFOV、50度のFOV、52度のFOV、またはそれより広いFOVを含む40度~56度の範囲内といった標準のFOVを有するように構成されてよい。あるいは、画像取り込みデバイス122は、28度のFOVまたは36度のFOVといった23~40度の範囲内の狭FOVを有するように構成されてもよい。さらに、画像取り込みデバイス122は100~180度の範囲内の広FOVを有するように構成されてもよい。いくつかの実施形態において、画像取り込みデバイス122は、広角バンパーカメラ、または、最大180度のFOVを有するそれを含んでよい。いくつかの実施形態において、画像取り込みデバイス122は、約2:1のアスペクト比(例えば、H×V=3800×1900画素)および約100度の水平FOVを有する7.2M画素の画像取り込みデバイスであってよい。そのような画像取り込みデバイスを、3画像取り込みデバイス構成の代わりに用いてよい。そのような画像取り込みデバイスの垂直FOVは、著しいレンズ歪みにより、画像取り込みデバイスが半径方向に対称なレンズを用いる実装例では50度より著しく小さいことがある。例えば、そのようなレンズは半径方向に対称でなくてもよく、そうすることで、100度の水平FOVで50度より大きい垂直FOVが可能になるであろう。
第1の画像取り込みデバイス122は、車両200に関連するシーンに対して複数の第1画像を取得してよい。複数の第1画像の各々は、一連の画像走査線として取得されてよく、これらの画像はローリングシャッタを用いて取り込まれてよい。各走査線は、複数の画素を含み得る。
第1の画像取り込みデバイス122は、第1の一連の画像走査線の各々を取得することに関連した走査速度を有してよい。走査速度とは、特定の走査線に含まれる各画素に関連した画像データをイメージセンサが取得できる速度を指してよい。
画像取り込みデバイス122、124、および126は、例えば、CCDセンサまたはCMOSセンサを含む、任意の好適なタイプおよび数のイメージセンサを内蔵してよい。一実施形態では、CMOSイメージセンサがローリングシャッタと連動して使用されてよく、これにより、ある行の各画素が1つずつ読み出され、画像フレーム全体が取り込まれるまで、行の走査が行ごとに進行する。いくつかの実施形態において、各行は、フレームに対して上部から下部へと順次取り込まれてよい。
いくつかの実施形態において、本明細書で開示する画像取り込みデバイス(例えば、画像取り込みデバイス122、124、および126)のうちの1つまたは複数は、高解像度撮像装置を構成してよく、5M画素、7M画素、10M画素、またはそれより多くの画を超える解像度を有してよい。
ローリングシャッタを用いると、異なる行の画素が異なる時間に露光され且つ取り込まれることになり得るため、取り込まれた画像フレームにスキューおよび他の画像アーチファクトが生じる場合がある。一方、画像取り込みデバイス122がグローバルシャッタまたは同期シャッタで動作するように構成されている場合、全ての画素が同じ時間の間、共通の露光期間に露光され得る。その結果、グローバルシャッタを使用するシステムで収集されたフレームの画像データは、特定の時間におけるFOV全体(FOV202など)のスナップショットを表す。これに対して、ローリングシャッタを適用した場合には、異なる時間にフレーム内の各行が露光され、データが取り込まれる。したがって、ローリングシャッタを有する画像取り込みデバイスでは、移動する物体が歪んだように見えることがある。この現象は、以下でより詳細に説明する。
第2の画像取り込みデバイス124および第3の画像取り込みデバイス126は、任意のタイプの画像取り込みデバイスであってよい。第1の画像取り込みデバイス122のように、画像取り込みデバイス124および126の各々は光軸を含んでよい。一実施形態において、画像取り込みデバイス124および126の各々は、グローバルシャッタを備えたAptina製M9V024 WVGAセンサを含んでよい。あるいは、画像取り込みデバイス124および126の各々は、ローリングシャッタを含んでもよい。画像取り込みデバイス122のように、画像取り込みデバイス124および126は、様々なレンズおよび光学素子を含むように構成されてよい。いくつかの実施形態では、画像取り込みデバイス124および126に関連するレンズが、画像取り込みデバイス122に関連するFOV(FOV202など)と同じまたはそれより狭いFOV(FOV204および206など)を提供してよい。例えば、画像取り込みデバイス124および126は、40度、30度、26度、23度、20度、またはそれより狭い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つが1つまたは複数の他の画像取り込みデバイスの潜在的な死角を補うことが可能になり得る。
画像取り込みデバイス122は、任意の好適な解像能力(例えば、イメージセンサに関連する画素数)を有してよく、画像取り込みデバイス122に関連する1つまたは複数のイメージセンサの解像度は、画像取り込みデバイス124および126に関連する1つまたは複数のイメージセンサの解像度より高くても、低くても、同じであってもよい。いくつかの実施形態において、画像取り込みデバイス122並びに/または画像取り込みデバイス124および126に関連する1つまたは複数のイメージセンサは、640×480、1024×768、1280×960の解像度、または任意の他の好適な解像度を有してよい。
フレームレート(例えば、画像取り込みデバイスが1つの画像フレームの画素データのセットを、次の画像フレームに関連する画素データの取り込みに移る前に取得するレート)が制御可能であってよい。画像取り込みデバイス122に関連するフレームレートは、画像取り込みデバイス124および126に関連するフレームレートより高くても、低くても、同じであってもよい。画像取り込みデバイス122、124、および126に関連するフレームレートは、フレームレートのタイミングに影響を与え得る様々な要因に依存し得る。例えば、画像取り込みデバイス122、124、および126のうちの1つまたは複数が、画像取り込みデバイス122、124、および/または126に含まれるイメージセンサの1つまたは複数の画素に関連する画像データを取得する前または後に課される選択可能な画素遅延期間を含んでよい。一般に、各画素に対応する画像データは、デバイスのクロックレートに従って取得されてよい(例えば、クロックサイクルごとに1つの画素が取得されてよい)。さらに、ローリングシャッタを含む実施形態では、画像取り込みデバイス122、124、および126のうちの1つまたは複数が、画像取り込みデバイス122、124、および/または126に含まれるイメージセンサのある行の画素に関連する画像データを取得する前または後に課される選択可能な水平帰線消去期間を含んでよい。さらに、画像取り込みデバイス122、124、および/または126のうちの1つまたは複数が、画像取り込みデバイス122、124、および126の画像フレームに関連する画像データを取得する前または後に課される選択可能な垂直帰線消去期間を含んでよい。
これらのタイミング制御は、画像取り込みデバイス122、124、および126に関連する各フレームレートの同期を、各々のライン走査速度が異なる場合でさえも可能にし得る。さらに、以下でより詳細に論じられることになるが、これらの選択可能なタイミング制御は、他の要因(例えば、イメージセンサの解像度、最大ライン走査速度など)の中でもとりわけ、画像取り込みデバイス122の視野が画像取り込みデバイス124および126のFOVと異なる場合でさえも、画像取り込みデバイス122のFOVが画像取り込みデバイス124および126のうちの1つまたは複数のFOVと重なり合う領域からの画像取り込みの同期を可能にし得る。
画像取り込みデバイス122、124、および126におけるフレームレートタイミングが、関連するイメージセンサの解像度に依存し得る。例えば、両方のデバイスのライン走査速度が同様であると仮定すると、一方のデバイスが640×480の解像度を有するイメージセンサを含み、もう一方のデバイスが1280×960の解像度を有するイメージセンサを含むならば、高解像度を有するセンサの方が、1フレームの画像データを取得するのに必要な時間が長くかかる。
画像取り込みデバイス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の焦点距離は、1つの画像取り込みデバイス(例えば、画像取り込みデバイス122)が車両に比較的近い(例えば、10mの範囲内、または20mの範囲内の)物体の画像を取得でき、その一方で、他の画像取り込みデバイス(例えば、画像取り込みデバイス124および126)が車両200からもっと遠く(例えば、20m、50m、100m、150mを超えるなど)にある物体の画像を取得できるように選択されてよい。
いくつかの実施形態によれば、1つまたは複数の画像取り込みデバイス122、124、および126のFOVは広角であってよい。例えば、140度のFOVを有することは、車両200に近い領域の画像を取り込むのに用いられ得る画像取り込みデバイス122、124、および126に取っては特に有利になり得る。例えば、画像取り込みデバイス122は、車両200の右側または左側の領域の画像を取り込むのに用いられてよく、そのような実施形態では、画像取り込みデバイス122が広FOV(例えば、少なくとも140度)を有することが望ましいかもしれない。
画像取り込みデバイス122、124、および126の各々に関連する視野は、それぞれの焦点距離に依存し得る。例えば、焦点距離が長くなるに連れて、対応する視野は狭くなる。
画像取り込みデバイス122、124、および126は、任意の好適な視野を有するように構成されてよい。1つの特定例において、画像取り込みデバイス122は46度の水平FOVを有してよく、画像取り込みデバイス124は23度の水平FOVを有してよく、画像取り込みデバイス126は23度~46度の間の水平FOVを有してよい。別の例において、画像取り込みデバイス122は52度の水平FOVを有してよく、画像取り込みデバイス124は26度の水平FOVを有してよく、画像取り込みデバイス126は26度~52度の間の水平FOVを有してよい。いくつかの実施形態では、画像取り込みデバイス122のFOVと、画像取り込みデバイス124および/または画像取り込みデバイス126のFOVとの比率が、1.5から2.0まで変化し得る。他の実施形態では、この比率が1.25~2.25の間で変化し得る。
システム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は、スロットル装置220、ブレーキ装置230、および操縦装置240のうちの1つまたは複数に、1つまたは複数のデータリンク(例えば、データ送信用の1つまたは複数の任意の有線リンクおよび/または無線リンク)を介して入力(例えば、制御信号)を提供してよい。例えば、画像取り込みデバイス122、124、および/または126が取得した画像の分析に基づいて、システム100は、スロットル装置220、ブレーキ装置230、および操縦装置240のうちの1つまたは複数に制御信号を提供して、(例えば、加速、旋回、車線移動などを引き起こすことにより)車両200をナビゲートしてよい。さらに、システム100は、スロットル装置220、ブレーキ装置230、および操縦装置240のうちの1つまたは複数から、車両200の動作状態(例えば、速度、車両200がブレーキをかけているかどうかおよび/または旋回しているかどうかなど)を示す入力を受信してよい。さらなる詳細を、図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は、同じ傾斜を有する車両のフロントガラスに当該シールドが接触して揃うように配置されてよい。いくつかの実施形態において、画像取り込みデバイス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は、(例えば、スロットル装置220、ブレーキ装置230、および操縦装置240のうちの1つまたは複数に制御信号を送ることにより)車両200のブレーキ、加速、および/または操縦を自動的に制御することができる。さらに、システム100は、収集したデータを分析し、収集したデータの分析に基づいて、警告および/またはアラートを車両の乗員に発することができる。システム100により提供される様々な実施形態に関するさらなる詳細を、以下に提供する。
[前面マルチ撮像システム]
上述したように、システム100は、マルチカメラシステムを用いる運転支援機能を提供することができる。マルチカメラシステムは、車両の前進方向を向いている1つまたは複数のカメラを用いてよい。他の実施形態において、マルチカメラシステムは、車両の側方または車両の後方を向いている1つまたは複数のカメラを含んでよい。一実施形態において、例えば、システム100は、2カメラ方式の撮像システムを用いてよく、このシステムでは、第1カメラおよび第2カメラ(例えば、画像取り込みデバイス122および124)が車両(例えば、車両200)の前部および/または両側面に配置されてよい。第1カメラは、第2カメラの視野より大きい視野、第2カメラの視野より小さい視野、または第2カメラの視野と部分的に重なり合っている視野を有してよい。さらに、第1カメラは、第1カメラにより提供される画像の単眼画像分析を行う第1画像プロセッサに接続されてよく、第2カメラは、第2カメラにより提供される画像の単眼画像分析を行う第2画像プロセッサに接続されてよい。第1画像プロセッサおよび第2画像プロセッサの出力(例えば、処理された情報)は組み合わされてよい。いくつかの実施形態において、第2画像プロセッサは、第1カメラおよび第2カメラの両方から画像を受信して、ステレオ分析を行ってよい。別の実施形態において、システム100は、複数のカメラの各々が異なる視野を有する3カメラ方式の撮像システムを用いてよい。したがって、そのようなシステムでは、車両の前部および両側部の両方に対して様々な距離に位置する物体から得られた情報に基づいて判定を行うことができる。単眼画像分析への言及は、単一の視点から(例えば、単一のカメラから)取り込まれた画像に基づいて画像分析を行う場合を意味し得る。ステレオ画像分析とは、画像取り込みパラメータの1つまたは複数の変化を伴って取り込まれた2つまたはそれより多くの画像に基づいて画像分析を行う場合を意味し得る。例えば、ステレオ画像分析を行うのに好適な取り込み画像には、2つまたはそれより多くの異なる位置から取り込まれた画像、異なる視野から取り込まれた画像、異なる焦点距離を用いて取り込まれた画像、視差情報と共に取り込まれた画像などが含まれてよい。
例えば、一実施形態において、システム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つの処理デバイス(例えば上述したような、EyeQシリーズの3つのプロセッサチップ)を含んでよく、各処理デバイスは、画像取り込みデバイス122、124、および126のうちの1つまたは複数により取り込まれた画像の処理に特化している。
3カメラシステムでは、第1処理デバイスがメインカメラおよび狭視野カメラの両方から画像を受信し、狭FOVカメラによるビジョン処理を行って、例えば、他の車両、歩行者、車線標示、交通標識、信号機、および他の道路地物を検出してよい。さらに、第1処理デバイスは、メインカメラおよび狭視野カメラからの画像同士の画素の視差を計算し、車両200の環境の3D復元図を作成してよい。第1処理デバイスは次に、3D復元図と、3Dマップデータまたは別のカメラからの情報に基づいて計算した3D情報とを組み合わせてよい。
第2処理デバイスは、メインカメラから画像を受信してビジョン処理を行い、他の車両、歩行者、車線標示、交通標識、信号機、および他の道路地物を検出してよい。さらに、第2処理デバイスは、カメラ変位を計算し、その変位に基づいて、連続する画像間の画素の視差を計算して、シーンの3D復元図(例えば、structure from motion:SfM)を作成してよい。第2処理デバイスは、ステレオ3D画像と組み合わされるSfMベースの3D復元図を第1処理デバイスに送ってよい。
第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つまたは複数のセンサから受信した情報(例えば、レーダ、LIDAR、音響センサ、車両の外側にある1つまたは複数の送受信機から受信した情報など)に基づいて補足されてよい。
当業者であれば、上記のカメラ構成、カメラの配置、カメラの数、カメラの位置などは、単なる例であることを認識するであろう。全体的なシステムに対して説明されたこれらの構成要素などは、開示する実施形態の範囲から逸脱することなく、様々な異なる構成で編成され且つ用いられてよい。運転者支援および/または自動運転車機能を提供するマルチカメラシステムの使用に関するさらなる詳細が以下に続く。
図4は、メモリ140および/または150の例示的な機能ブロック図であり、これらは、開示する実施形態と矛盾しない1つまたは複数の動作を行うための命令と共に格納され/プログラムされてよい。以下ではメモリ140を参照するが、当業者であれば、命令がメモリ140および/または150に格納され得ることを認識するであろう。
図4に示すように、メモリ140は、単眼画像分析モジュール402、ステレオ画像分析モジュール404、速度加速度モジュール406、およびナビゲーション応答モジュール408を格納してよい。開示する実施形態は、メモリ140のいかなる特定の構成にも限定されない。さらに、アプリケーションプロセッサ180および/または画像プロセッサ190は、メモリ140に含まれるモジュール402、404、406、および408のうちのいずれかに格納された命令を実行してよい。当業者であれば、以下の説明における処理ユニット110への言及が、アプリケーションプロセッサ180および画像プロセッサ190を個々にまたは集合的に指し得ることを理解するであろう。したがって、以下のプロセスのうちのいずれかの各段階が、1つまたは複数の処理デバイスによって行われてよい。
一実施形態において、単眼画像分析モジュール402は命令(コンピュータビジョンソフトウェアなど)を格納してよく、この命令は、処理ユニット110により実行されると、画像取り込みデバイス122、124、および126のうちの1つによって取得された画像のセットの単眼画像分析を行う。いくつかの実施形態において、処理ユニット110は、画像のセットからの情報と、追加の知覚情報(例えば、レーダ、LIDARなどからの情報)とを組み合わせて単眼画像分析を行ってよい。図5A~図5Dに関連して以下に説明するように、単眼画像分析モジュール402は、画像のセット内にある、例えば、車線標示、車両、歩行者、道路標識、高速道路出口ランプ、信号機、危険物、および車両の環境に関連する任意の他の特徴といった特徴のセットを検出するための命令を含んでよい。分析に基づいて、システム100(例えば、処理ユニット110)は、ナビゲーション応答モジュール408に関連して以下で論じるように、車両200において1つまたは複数のナビゲーション応答、例えば、旋回、車線移動、および加速の変更などを生じさせてよい。
一実施形態において、ステレオ画像分析モジュール404は命令(コンピュータビジョンソフトウェアなど)を格納してよく、この命令は、処理ユニット110により実行されると、画像取り込みデバイス122、124、および126のうちのいずれかから選択された画像取り込みデバイスの組み合わせにより取得された第1セットおよび第2セットの画像のステレオ画像分析を行う。いくつかの実施形態において、処理ユニット110は、第1セットおよび第2セットの画像からの情報と、追加の知覚情報(例えば、レーダからの情報)とを組み合わせて、ステレオ画像分析を行ってよい。例えば、ステレオ画像分析モジュール404は、画像取り込みデバイス124により取得された第1セットの画像と、画像取り込みデバイス126により取得された第2セットの画像とに基づいて、ステレオ画像分析を行うための命令を含んでよい。図6に関連して以下で説明するように、ステレオ画像分析モジュール404は、第1セットおよび第2セットの画像内にある、例えば、車線標示、車両、歩行者、道路標識、高速道路出口ランプ、信号機、および危険物などといった特徴のセットを検出するための命令を含んでよい。分析に基づいて、処理ユニット110は、ナビゲーション応答モジュール408に関連して以下で論じるように、車両200において1つまたは複数のナビゲーション応答、例えば、旋回、車線移動、および加速の変更などを生じさせてよい。さらに、いくつかの実施形態において、ステレオ画像分析モジュール404は、訓練システム(ニューラルネットワークまたはディープニューラルネットワークなど)または未訓練システム(コンピュータビジョンアルゴリズムを用いて、知覚情報が取り込まれて処理された環境内の物体を検出する且つ/またはラベルを付けるように構成され得るシステムなど)に関連する手法を実施してよい。一実施形態において、ステレオ画像分析モジュール404および/または他の画像処理モジュールは、訓練システムと未訓練システムとの組み合わせを用いるように構成されてよい。
一実施形態において、速度加速度モジュール406は、車両200内の1つまたは複数のコンピューティング電気機械的デバイスであって、車両200の速度および/または加速度に変化を起こさせるように構成された1つまたは複数のコンピューティング電気機械的デバイスから受信したデータを分析するように構成されたソフトウェアを格納してよい。例えば、処理ユニット110は、速度加速度モジュール406に関連する命令を実行し、単眼画像分析モジュール402および/またはステレオ画像分析モジュール404の実行から得られたデータに基づいて、車両200の目標速度を計算してよい。そのようなデータには、例えば、目標位置、速度および/または加速度、近くの車両、歩行者、または道路地物に対する車両200の位置および/または速度、並びに道路の車線標示に対する車両200の位置情報などが含まれてよい。さらに、処理ユニット110は、知覚入力(例えば、レーダからの情報)と、車両200の他のシステム、例えば、車両200のスロットル装置220、ブレーキ装置230、および/または操縦装置240からの入力とに基づいて、車両200の目標速度を計算してよい。計算した目標速度に基づいて、処理ユニット110は、車両200のスロットル装置220、ブレーキ装置230、および/または操縦装置240に電子信号を送信し、例えば、車両200のブレーキを物理的に踏み込むか、またはアクセルを緩めることにより、速度および/または加速度の変化を引き起こしてよい。
一実施形態において、ナビゲーション応答モジュール408は、処理ユニット110が単眼画像分析モジュール402および/またはステレオ画像分析モジュール404の実行から得られたデータに基づいて所望のナビゲーション応答を決定するように実行可能なソフトウェアを格納してよい。そのようなデータには、近くの車両、歩行者、および道路地物に関連する位置情報および速度情報、並びに車両200の目標位置情報などが含まれてよい。さらに、いくつかの実施形態において、ナビゲーション応答は、マップデータ、車両200の所定の位置、並びに/または車両200と単眼画像分析モジュール402および/もしくはステレオ画像分析モジュール404の実行から検出された1つまたは複数の物体との間の相対速度または相対加速度に(部分的にまたは完全に)基づいてよい。ナビゲーション応答モジュール408は、知覚入力(例えば、レーダからの情報)と車両200の他のシステム(車両200のスロットル装置220、ブレーキ装置230、および/または操縦装置240など)からの入力とに基づいて、所望のナビゲーション応答を決定してもよい。所望のナビゲーション応答に基づいて、処理ユニット110は、車両200のスロットル装置220、ブレーキ装置230、および操縦装置240に電子信号を送信し、例えば、車両200のハンドルを回して所定の角度の回転を達成することにより、所望のナビゲーション応答を引き起こしてよい。いくつかの実施形態において、処理ユニット110は、ナビゲーション応答モジュール408の出力(例えば、所望のナビゲーション応答)を、車両200の速度の変化を計算するために速度加速度モジュール406を実行するための入力として用いてよい。
さらに、本明細書で開示するモジュール(例えば、モジュール402、404、および406)のうちのいずれかが、訓練システム(ニューラルネットワークまたはディープニューラルネットワークなど)または未訓練システムに関連する手法を実施してよい。
図5Aは、開示する実施形態と矛盾しない、単眼画像分析に基づいて1つまたは複数のナビゲーション応答を発生させるための、例示的なプロセス500Aを示すフローチャートである。段階510において、処理ユニット110が処理ユニット110と画像取得ユニット120との間のデータインタフェース128を介して複数の画像を受信してよい。例えば、画像取得ユニット120に含まれるカメラ(視野202を有する画像取り込みデバイス122など)が、車両200の前方(または、例えば車両の側方または後方)の領域についての複数の画像を取り込み、これらの画像をデータ接続(例えば、デジタル、有線、USB、無線、Bluetoothなど)を介して処理ユニット110に送信してよい。処理ユニット110は、図5B~図5Dに関連して以下でさらに詳細に説明されるように、段階520で、単眼画像分析モジュール402を実行して複数の画像を分析してよい。分析を行うことで、処理ユニット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つもしくは複数の車両および/または1人もしくは複数の歩行者を検出するための、例示的なプロセス500Bを示すフローチャートである。処理ユニット110は、単眼画像分析モジュール402を実行して、プロセス500Bを実施してよい。段階540において、処理ユニット110は、可能性のある車両および/または歩行者を表す候補物体のセットを決定してよい。例えば、処理ユニット110は、1つまたは複数の画像をスキャンし、その画像と1つまたは複数の所定のパターンとを比較し、関心のある物体(例えば、車両、歩行者、またはその一部)を含み得る、可能性のある場所を各画像内で識別してよい。所定のパターンは、高確率の「誤検知(false hit)」および低確率の「見逃し(miss)」を達成するようなやり方で設計されてよい。例えば、処理ユニット110は、可能性のある車両または歩行者として候補物体を識別するために、所定のパターンとの類似性に低い閾値を用いてよい。そうすることで、処理ユニット110が車両または歩行者を表す候補物体を見逃す(例えば、識別しない)確率を低減することが可能になり得る。
段階542では、処理ユニット110は、候補物体のセットをフィルタにかけて、分類基準に基づいて特定の候補(例えば、無関係または関連性があまりない物体)を排除してよい。そのような基準は、データベース(例えば、メモリ140に格納されたデータベース)に格納された物体のタイプに関連する様々な特性から得られてよい。これらの特性には、物体形状、寸法、テクスチャ、および位置(例えば、車両200に対する位置)などが含まれてよい。したがって、処理ユニット110は、1つまたは複数のセットの基準を用いて、候補物体のセットから間違った候補を排除してよい。
段階544では、処理ユニット110は、画像の複数のフレームを分析して、候補物体のセットに含まれる物体が車両および/または歩行者を表しているかどうかを判定してよい。例えば、処理ユニット110は、検出された候補物体を連続したフレーム全体を通して追跡し、検出された物体に関連するフレームごとのデータ(例えば、サイズ、車両200に対する位置など)を累積してよい。さらに、処理ユニット110は、検出された物体のパラメータを推定し、当該物体のフレームごとの位置データと、予測した位置とを比較してよい。
段階546では、処理ユニット110は、検出された物体の測定値のセットを構築してよい。そのような測定値には、例えば、検出された物体に関連する(車両200に対する)位置、速度、および加速度値が含まれてよい。いくつかの実施形態において、処理ユニット110は、カルマンフィルタもしくは線形2次推定(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は、検出されたセグメントの、画像平面から実際の平面上への投影図を作成してよい。この投影図は、検出された道路の位置、傾き、曲率、および曲率微分などの物理的特性に対応する係数を有する3次多項式を用いることを特徴とし得る。投影図を生成する際に、処理ユニット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,z)で表現される点のセットを用いて表されてよく、これらの点のセット内の2点間の距離diは、1~5メートルの範囲に含まれ得る。一実施形態において、処理ユニット110は、2つの多項式、例えば、左右の道路多項式を用いて初期車両経路を構築してよい。処理ユニット110は、2つの多項式間の幾何中点を計算し、オフセットがもしあれば(ゼロのオフセットは車線の中央を走行していることに対応し得る)、結果として生じる車両経路に含まれる各点を所定のオフセット(例えば、スマート車線オフセット)だけずらしてよい。このオフセットは、車両経路内の任意の2点間のセグメントに対して垂直な方向に存在し得る。別の実施形態において、処理ユニット110は、1つの多項式と推定した車線幅とを用いて、車両経路の各点を、推定した車線幅の半分に所定のオフセット(例えば、スマート車線オフセット)を加えた分だけずらしてよい。
段階572において、処理ユニット110は、段階570で構築した車両経路を更新してよい。処理ユニット110は、段階570で構築した車両経路を高い解像度を用いて再構築してよく、これにより、車両経路を表す点のセット内の2点間の距離dkは上述した距離diより小さくなる。例えば、距離dkは、0.1~0.3メートルの範囲に含まれ得る。処理ユニット110は、放物線スプラインアルゴリズムを用いて車両経路を再構築してよく、これにより、車両経路の全長に対応する(すなわち、車両経路を表す点のセットに基づく)累積距離ベクトルSがもたらされ得る。
段階574において、処理ユニット110は、段階572で構築した更新後の車両経路に基づいて、(座標(xl,zl)として表現される)ルックアヘッド点を決定してよい。処理ユニット110は累積距離ベクトルSからルックアヘッド点を抽出してよく、ルックアヘッド点はルックアヘッド距離およびルックアヘッド時間に関連づけられてよい。ルックアヘッド距離は、10~20メートルの範囲にある下限値を有してよく、車両200の速度とルックアヘッド時間との積として計算されてよい。例えば、車両200の速度が低下すると、ルックアヘッド距離も(例えば、下限値に到達するまで)減少し得る。ルックアヘッド時間は、0.5~1.5秒の範囲にあってよく、車両200においてナビゲーション応答を発生させることに関連する1つまたは複数の制御ループ(方位誤差追跡制御ループなど)のゲインに反比例し得る。例えば、方位誤差追跡制御ループのゲインは、ヨーレートループの帯域幅、ステアリングアクチュエータループ、および自動車の横方向の力学などに依存し得る。したがって、方位誤差追跡制御ループのゲインが高いほど、ルックアヘッド時間が短くなる。
段階576において、処理ユニット110は、段階574で決定したルックアヘッド点に基づいて、方位誤差およびヨーレートコマンドを決定してよい。処理ユニット110は、ルックアヘッド点の逆正接、例えばarctan(xl/zl)を計算することにより、方位誤差を決定してよい。処理ユニット110は、方位誤差と高レベル制御ゲインとの積として、ヨーレートコマンドを決定してよい。高レベル制御ゲインは、ルックアヘッド距離が下限値にない場合には、(2/[ルックアヘッド時間])に等しくなり得る。そうでない場合には、高レベル制御ゲインは、(2×[車両200の速度]/[ルックアヘッド距離])に等しくなり得る。
図5Fは、開示する実施形態と矛盾しない、先行車両が車線を変更中であるかどうかを判定するための、例示的なプロセス500Fを示すフローチャートである。段階580において、処理ユニット110は、先行車両(例えば、車両200の前方を走行する車両)に関連するナビゲーション情報を特定してよい。例えば、処理ユニット110は、先行車両の位置、速度(例えば、方向および速度)、および/または加速度を、図5Aおよび図5Bに関連して上で説明した手法を用いて決定してよい。処理ユニット110は、図5Eに関連して上で説明された手法を用いて、1つまたは複数の道路多項式、(車両200に関連する)ルックアヘッド点、および/またはスネイルトレイル(例えば、先行車両が通った経路を記述する点のセット)を決定してもよい。
段階582において、処理ユニット110は、段階580で特定したナビゲーション情報を分析してよい。一実施形態において、処理ユニット110は、スネイルトレイルと道路多項式との間の(例えば、トレイルに沿った)距離を計算してよい。トレイルに沿ったこの距離の分散が所定の閾値(例えば、直線道路では0.1~0.2メートル、緩やかなカーブの道路では0.3~0.4メートル、および急なカーブの道路では0.5~0.6メートル)を超える場合、処理ユニット110は、先行車両がおそらく車線を変更中であると判定してよい。複数の車両が車両200の前方を走行していることが検出された場合、処理ユニット110は、各車両に関連するスネイルトレイルを比較してよい。この比較に基づいて、処理ユニット110は、スネイルトレイルが他の車両のスネイルトレイルと一致しない車両がおそらく車線を変更中であると判定してよい。処理ユニット110はさらに、(先行車両に関連する)スネイルトレイルの曲率と、先行車両が走行している道路セグメントの予期される曲率とを比較してよい。予期される曲率は、マップデータ(例えば、マップデータベース160からのデータ)、道路多項式、他の車両のスネイルトレイル、および道路に関する予備知識などから抽出されてよい。スネイルトレイルの曲率と道路セグメントの予期される曲率との差異が所定の閾値を超える場合、処理ユニット110は、先行車両がおそらく車線を変更中であると判定してよい。
別の実施形態において、処理ユニット110は、先行車両の瞬時位置と(車両200に関連する)ルックアヘッド点とを特定の期間(例えば、0.5~1.5秒)にわたって比較してよい。先行車両の瞬時位置とルックアヘッド点との間の距離が特定の期間の間に変化し、且つ変化量の累積合計が所定の閾値(例えば、直線道路では0.3~0.4メートル、緩やかなカーブの道路では0.7~0.8メートル、また急なカーブの道路では1.3~1.7メートル)を超える場合、処理ユニット110は、先行車両がおそらく車線を変更中であると判定してよい。別の実施形態において、処理ユニット110は、トレイルに沿った横方向移動距離とスネイルトレイルの予期される曲率とを比較することにより、スネイルトレイルの幾何構造を分析してよい。予期される曲率半径は、(δz
2+δx
2)/2/(δx)という計算に従って求められてよい。ここで、δxは横方向移動距離を表しており、δzは縦方向移動距離を表している。横方向移動距離と予期される曲率との差異が所定の閾値(例えば、500~700メートル)を超える場合、処理ユニット110は、先行車両がおそらく車線を変更中であると判定してよい。別の実施形態において、処理ユニット110は先行車両の位置を分析してよい。先行車両の位置が道路多項式を見えなくさせている(例えば、先行車両が道路多項式の上に重ねられている)場合、処理ユニット110は次いで、先行車両がおそらく車線を変更中であると判定してよい。先行車両の前方に別の車両が検出され、2つの車両のスネイルトレイルが平行ではないというような先行車両の位置の場合、処理ユニット110は、(近い方の)先行車両がおそらく車線を変更中であると判定してよい。
段階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は、第1および第2の複数の画像を2つまたはそれより多くのデータインタフェースを介して受信してよい。開示する実施形態は、いかなる特定のデータインタフェース構成またはプロトコルにも限定されない。
段階620において、処理ユニット110はステレオ画像分析モジュール404を実行して、第1および第2の複数の画像のステレオ画像分析を行い、車両の前方の道路の3Dマップを作成し、これらの画像内の特徴、例えば、車線標示、車両、歩行者、道路標識、高速道路出口ランプ、信号機、および道路障害物などを検出してよい。ステレオ画像分析は、図5A~図5Dに関連して上で説明した段階と同様の方式で行われてよい。例えば、処理ユニット110は、ステレオ画像分析モジュール404を実行して、第1および第2の複数の画像内の候補物体(例えば、車両、歩行者、道路標示、信号機、道路障害物など)を検出し、様々な基準に基づいて候補物体のサブセットを除外し、さらにマルチフレーム分析を行い、測定値を構築し、残りの候補物体の信頼度を特定してよい。上記の段階を行う際に、処理ユニット110は、1つのセットの画像だけからの情報ではなくむしろ、第1および第2の複数の画像の双方からの情報を考慮してよい。例えば、処理ユニット110は、第1および第2の複数の画像の双方に現れる候補物体の画素レベルのデータ(または、取り込まれた画像の2つのストリームのうちの他のデータサブセット)における差異を分析してよい。別の例として、処理ユニット110は、(例えば、車両200に対する)候補物体の位置および/または速度を、その物体が複数の画像のうちの1つに現れるが、その他の画像には現れないことを観測することにより推定してもよく、2つの画像ストリームがある場合に現れる物体に関連して存在し得る他の差異と比較して推定してよい。例えば、車両200に対する位置、速度、および/または加速度が、2つの画像ストリームの一方または両方に現れる物体に関連する特徴の軌跡、位置、運動特性などに基づいて決定されてよい。
段階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は、第1、第2、および第3の複数の画像を3つまたはそれより多くのデータインタフェースを介して受信してよい。例えば、画像取り込みデバイス122、124、126の各々は、処理ユニット110にデータを通信するための関連データインタフェースを有してよい。開示する実施形態は、いかなる特定のデータインタフェース構成またはプロトコルにも限定されない。
段階720において、処理ユニット110は、第1、第2、および第3の複数の画像を分析して、これらの画像内の特徴、例えば、車線標示、車両、歩行者、道路標識、高速道路出口ランプ、信号機、および道路障害物などを検出してよい。この分析は、図5A~図5Dおよび図6に関連して上で説明した段階と同様の方式で行われてよい。例えば、処理ユニット110は、(例えば、単眼画像分析モジュール402の実行によって、且つ図5A~図5Dに関連して上で説明した段階に基づいて)第1、第2、および第3の複数の画像の各々に対して単眼画像分析を行ってよい。あるいは、処理ユニット110は、(例えば、ステレオ画像分析モジュール404の実行によって、且つ図6に関連して上で説明した段階に基づいて)第1および第2の複数の画像、第2および第3の複数の画像、並びに/または第1および第3の複数の画像に対してステレオ画像分析を行ってよい。第1、第2、および/または第3の複数の画像の分析に対応する処理済み情報は、組み合わされてよい。いくつかの実施形態において、処理ユニット110は、単眼画像分析とステレオ画像分析との組み合わせを行ってよい。例えば、処理ユニット110は、(例えば、単眼画像分析モジュール402の実行によって)第1の複数の画像に対して単眼画像分析を行い、(例えば、ステレオ画像分析モジュール404の実行によって)第2および第3の複数の画像に対してステレオ画像分析を行ってよい。画像取り込みデバイス122、124、および126の構成(それぞれの位置および視野202、204および206を含む)は、第1、第2、および第3の複数の画像に対して行われる分析のタイプに影響を与え得る。開示する実施形態は、画像取り込みデバイス122、124、および126の特定の構成、または第1、第2、および第3の複数の画像に対して行われる分析のタイプに限定されない。
いくつかの実施形態において、処理ユニット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つまたは複数の軌跡に基づいて1つまたは複数の道路をナビゲートすることができる。
[自動運転車ナビゲーション用のスパースマップ]
いくつかの実施形態において、開示するシステムおよび方法は、自動運転車ナビゲーション用のスパースマップを生成し得る。例えば、スパースマップは、過度のデータストレージまたはデータ転送レートを必要とすることなく、ナビゲーションに十分な情報を提供することができる。以下でさらに詳細に論じるように、車両(自動運転車であってよい)は、スパースマップを用いて1つまたは複数の道路をナビゲートすることができる。例えば、いくつかの実施形態において、スパースマップは、道路および場合によっては道路に沿うランドマークに関連するデータを含んでよく、このデータは車両ナビゲーションに十分かもしれないが、データフットプリントが小さいことも示している。例えば、以下で詳細に説明するスパースデータマップは、詳細なマップ情報(道路に沿って収集した画像データなど)を含むデジタルマップと比較すると、必要なストレージ領域およびデータ転送帯域幅が著しく少なくてよい。
例えば、スパースデータマップは、道路セグメントの詳細な表現を格納するのではなくむしろ、道路に沿った好ましい車両経路の3次元多項式表現を格納することができる。これらの経路は、データストレージ領域をほとんど必要としなくてよい。さらに、説明したスパースデータマップでは、ナビゲーションに役立つように、ランドマークが識別され、スパースマップ道路モデルに含まれてよい。これらのランドマークは、車両ナビゲーションを可能にするのに好適な任意の間隔で配置されてよいが、場合によっては、そのようなランドマークを識別したり、高密度且つ狭い間隔でモデルに含めたりする必要はない。むしろ、場合によっては、少なくとも50メートル、少なくとも100メートル、少なくとも500メートル、少なくとも1キロメートル、または少なくとも2キロメートルの間隔を置いて配置したランドマークに基づいて、ナビゲーションが可能になり得る。他のセクションでより詳細に論じることになるが、スパースマップは、車両が車道に沿って走行するときに、様々なセンサおよびデバイス、例えば、画像取り込みデバイス、全地球測位システム用のセンサ、モーションセンサなどを備えた車両によって収集または測定されたデータに基づいて生成されてよい。場合によっては、スパースマップは、特定の車道に沿った1つまたは複数の車両の複数のドライブで収集されたデータに基づいて生成されてよい。1つまたは複数の車両の複数のドライブを用いてスパースマップを生成することは、スパースマップの「クラウドソーシング」と呼ばれることがある。
開示する実施形態と矛盾せずに、自動運転車システムがナビゲーション用のスパースマップを用いてよい。例えば、開示するシステムおよび方法は、自動運転車用の道路ナビゲーションモデルを生成するためにスパースマップを配信してよく、スパースマップおよび/または生成した道路ナビゲーションモデルを用いて、道路セグメントに沿って自動運転車をナビゲートしてよい。本開示と矛盾しないスパースマップには、自動運転車が関連する道路セグメントに沿って移動するときに通行し得る所定の軌跡を表し得る1つまたは複数の3次元等高線図が含まれてよい。
本開示と矛盾しないスパースマップには、1つまたは複数の道路特徴を表すデータも含まれてよい。そのような道路特徴には、認識済みのランドマーク、ロードシグネチャプロファイル、および車両をナビゲートするのに有用な任意の他の道路関連の特徴が含まれてよい。本開示と矛盾しないスパースマップによって、スパースマップに含まれる比較的少量のデータに基づく車両の自動ナビゲーションが可能になり得る。例えば、開示するスパースマップの実施形態は、道路エッジ、道路曲率、道路セグメントに関連する画像、または道路セグメントに関連する他の物理的特徴を詳述しているデータなどの道路の詳細な表現を含むのではなくむしろ、比較的少ないストレージ領域(およびスパースマップの各部分を車両に転送する場合には比較的少ない帯域幅)しか必要としなくてよいが、それでも、十分に自動運転車ナビゲーションを提供し得る。以下でさらに詳細に論じるが、開示するスパースマップの小さいデータフットプリントは、いくつかの実施形態では、少量のデータしか必要としないが、それでも自動ナビゲーションを可能とする道路関連要素の表現を格納することで達成され得る。
例えば、開示するスパースマップは、道路の様々な態様の詳細な表現を格納するのではなくむしろ、車両が道路に沿って進み得る1つまたは複数の軌跡の多項式表現を格納してよい。したがって、道路に沿ったナビゲーションを可能にするために、道路の物理的性質に関する詳細を格納する(または詳細を転送する必要がある)のではなくむしろ、開示するスパースマップを用いると、場合によっては、道路の物理的態様を解釈する必要がなく、むしろ車両の走行経路と特定の道路セグメントに沿った軌跡(例えば、多項式スプライン)とを揃えることにより、特定の道路セグメントに沿って車両をナビゲートすることができる。このように、車両は、主に格納された軌跡(例えば、多項式スプライン)に基づいてナビゲートされてよく、格納された軌跡は、車道画像、道路パラメータ、道路レイアウトなどの格納を必要とする手法よりもはるかに少ないストレージ領域しか必要としなくてよい。
道路セグメントに沿った軌跡についての格納された多項式表現に加えて、開示するスパースマップは、道路特徴を表し得るスモールデータオブジェクトも含んでよい。いくつかの実施形態において、スモールデータオブジェクトはデジタル署名を含んでよく、デジタル署名は、道路セグメントに沿って走行する車両に搭載されたセンサ(例えば、カメラ、またはサスペンションセンサなどの他のセンサ)により取得されたデジタル画像(またはデジタル信号)から得られる。デジタル署名は、センサにより取得された信号と比較してサイズが小さくてよい。いくつかの実施形態において、デジタル署名は、例えば、その後のドライブでセンサにより取得される信号からの道路特徴を検出して識別するように構成された分類器機能と互換性があるように作成されてよい。いくつかの実施形態において、デジタル署名は、デジタル署名ができるだけ小さいフットプリントを有すると共に、同じ道路セグメントに沿って走行する車両に搭載されたカメラにより次の機会に取り込まれる道路特徴の画像(または、格納された署名が画像に基づいていない且つ/または他のデータを含む場合には、センサにより生成されるデジタル信号)に基づいて、道路特徴を格納された署名に関連づけるまたは一致させる機能を保持するように作成されてよい。
いくつかの実施形態において、データオブジェクトのサイズはさらに、道路特徴の一意性に関連してよい。例えば、車両に搭載されたカメラにより検出可能な道路特徴について、車両に搭載されたカメラシステムが、当該道路特徴に対応する画像データを特定のタイプの道路特徴(例えば、道路標識)に関連しているものとして区別できる分類器に結合される場合、且つそのような道路標識が当該領域で局所的に一意である(例えば、全く同じ道路標識も、同じタイプの道路標識も近くにない)場合、道路特徴のタイプおよびその位置を示すデータを格納することで十分であろう。
以下でさらに詳細に論じられることになるが、道路特徴(例えば、道路セグメントに沿うランドマーク)は、比較的少ないバイト数で道路特徴を表し得るスモールデータオブジェクトとして格納されてよく、同時に、そのような特徴をナビゲーション用に認識し且つ用いるのに十分な情報を提供し得る。一例において、道路標識が、車両のナビゲーションが根拠とし得る認識済みのランドマークとして識別されてよい。道路標識の表現がスパースマップに格納されてよく、スパースマップには、例えば、ランドマークのタイプ(例えば、一時停止標識)を示す数バイトのデータ、およびランドマークの位置(例えば、座標)を示す数バイトのデータが含まれる。ランドマークのそのようなデータライト表現に基づいてナビゲートすること(例えば、ランドマークに基づいて、位置特定を行い、認識し、ナビゲートするのに十分な表現を用いること)により、スパースマップに関連するデータオーバーヘッドを著しく増加させることなく、スパースマップに関連する所望のレベルのナビゲーション機能が提供され得る。ランドマーク(および他の道路特徴)のこの効率的な表現は、特定の道路特徴を検出し、識別し、且つ/または分類するように構成されるような車両に搭載されたセンサおよびプロセッサを利用してよい。
例えば、所与の領域において、標識または標識の特定のタイプでさえも局所的に一意である場合(例えば、他の標識もなく、同じタイプの他の標識もない場合)、スパースマップはランドマークのタイプ(標識または特定のタイプの標識)を示すデータを用いてよく、ナビゲーション(例えば、自動ナビゲーション)の際に、自動運転車に搭載されたカメラが標識(または特定のタイプの標識)を含む領域の画像を取り込むと、プロセッサは画像を処理し、標識を(実際に画像内に存在するならば)検出し、画像を標識として(または特定のタイプの標識として)分類し、画像の位置とスパースマップに格納された標識の位置とを関連づけてよい。
スパースマップは、道路セグメントに沿って識別される物体の任意の好適な表現を含んでもよい。場合によっては、物体は、セマンティックな物体または非セマンティックな物体と呼ばれてもよい。セマンティックな物体は、例えば、所定のタイプ分類に関連する物体を含んでもよい。このタイプ分類は、環境において認識されるセマンティックな物体を記述するのに必要とされるデータの量を削減する際に有用であってもよく、これは、(例えば複数の収集車両からサーバへとドライブ情報を転送するための帯域幅の使用に関連するコストを低減する)収集段階とナビゲーション段階中との両方において有益なものとなり得る(例えば、マップデータの減少によって、サーバからナビゲート車両へのマップタイルの転送を速めることができ、且つ、そのような転送のための帯域幅の使用に関連するコストを低減することもできる)。セマンティックな物体分類タイプは、車道に沿って遭遇されると予期される任意のタイプの物体または特徴に割り当てられてもよい。
セマンティックな物体はさらに、2つまたはそれより多くの論理グループへと分割されてもよい。例えば、場合によっては、セマンティックな物体タイプの1つのグループは、所定の寸法に関連してもよい。そのようなセマンティックな物体は、特定の速度制限標識、優先道路標識、マージ標識、一時停止標識、信号機、車道上の方向矢印、マンホールカバー、または、標準化されたサイズに関連し得る任意の他のタイプの物体、を含んでもよい。そのようなセマンティックな物体によって提供される1つの利益は、物体を表す/完全に定義するのに、データをほとんど必要としないかもしれないことである。例えば、制限速度サイズの標準化されたサイズが既知であるならば、収集車両が次に、サーバ側でのマップ生成用に十分な情報を提供するべく、検出された制限速度標識の位置のインジケーション(例えば、取り込まれた画像における、標識の中心または標識の特定のコーナーの2D位置(または、その代わりに、実際の座標における3D位置))と共に、制限速度標識(認識されるタイプ)の存在を(取り込まれた画像の分析によって)識別することだけを必要としてもよい。2D画像位置がサーバに送信される場合、サーバは(例えば、1つまたは複数の収集車両から取り込まれた複数の画像を使用するモーション手法における構造を介して)標識の実際の位置を特定できるので、取り込まれた画像に関連する、標識が検出された位置もまた送信されてよい。(各々の検出された物体を定義するのにたった数バイトしか必要としない)この限定された情報を伴っていてもなお、サーバは、1つまたは複数の収集車両から、検出された標識の位置情報と共に受信される(制限速度標識を表す)タイプ分類に基づいて完全に表される制限速度標識を含むマップを構築してもよい。
セマンティックな物体もまた、特定の標準化された特性に関連しない、他の認識される物体または特徴タイプを含んでもよい。そのような物体または特徴は、道路にできた穴、タールシーム、街灯柱、標準化されていない信号、縁石、樹木、木の枝、または、1つまたは複数の可変特性(例えば可変寸法)を備えた任意の他のタイプの認識される物体のタイプ、を含んでもよい。そのような場合、(例えば、道路にできた穴、ポールなどの)検出された物体または特徴タイプのインジケーションおよび検出された物体または特徴の位置情報をサーバに送信することに加えて、収集車両はまた、物体または特徴のサイズのインジケーションも送信してよい。サイズは、(例えば、バウンディングボックス、もしくは、1つまたは複数の寸法値、を伴う)2D画像寸法、または、(LIDARまたはRADARシステム出力、訓練ニューラルネットワーク出力、などに基づく運動計算における構造を介して特定される)実際の寸法で表されてもよい。
非セマンティックな物体または特徴は、認識される種類またはタイプの範囲外であるがそれでもマップ生成において価値ある情報を与え得る、任意の検出可能な物体または特徴を含んでもよい。場合によっては、そのような非セマンティックな特徴は、ビルの検出されたコーナーまたはビルの検出された窓ガラスのコーナー、車道の近くの独特な石または物体、路肩におけるコンクリートスプラッタ、もしくは、任意の他の検出可能な物体または特徴、を含んでもよい。そのような物体または特徴を検出する際、1つまたは複数の収集車両は、検出された物体/特徴に関連する1つまたは複数の点(2D画像点または3D現実世界点)の位置をマップ生成サーバへと送信してもよい。さらに、検出された物体または特徴を含む取り込まれた画像の領域について、圧縮された又は簡略化された画像セグメント(例えば、画像ハッシュ)が生成されてもよい。この画像ハッシュは、所定の画像処理アルゴリズムに基づいて計算されてもよく、且つ、検出された非セマンティックな物体または特徴について効果的な署名を形式してもよい。車道を行き来する車両は、取り込まれた画像においてマッピングされた非セマンティックな特徴または物体の存在を検証/立証するために、画像ハッシュを生成するのに使用されるアルゴリズムに類似するアルゴリズムを適用し得るので、そのような署名は、非セマンティックな特徴または物体を含むスパースマップに関連するナビゲーションに有用であるかもしれない。この手法を使用することにより、非セマンティックな特徴は、著しいデータオーバーヘッドを追加することなく、スパースマップの豊富さを追加するかもしれない(そして、例えば、ナビゲーションにおけるそれらの実用性を向上させるかもしれない)。
言及されたように、目標軌跡は、スパースマップに格納されてもよい。これらの目標軌跡(例えば、3Dスプライン)は、車道の各々の利用可能な車線用の、交差点を通る各々の有効な経路用の、合流地点および出口のための、などで好ましいまたは推奨される経路を表してもよい。目標軌跡に加えて、他の道路特徴もまた、検出され、収集され、且つ、代表スプラインの形でスパースマップに組み込まれてもよい。そのような特徴は、例えば、道路エッジ、車線標示、縁石、ガードレール、または、車道または道路セグメントに沿って拡張している任意の他の物体もしくは特徴、を含んでもよい。
[スパースマップの生成]
いくつかの実施形態では、スパースマップが、道路セグメントに沿って延びる路面特徴に関する少なくとも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の1つまたは複数の残りの部分を格納してよい。
さらに、そのような実施形態では、様々な道路セグメントを通行する複数の車両(例えば、数十台、数百台、数千台、または数百万台の車両など)がスパースマップ800にアクセスできるようにしてよい。スパースマップ800は複数のサブマップを含んでよいことにも留意されたい。例えば、いくつかの実施形態において、スパースマップ800は、車両をナビゲートする際に用いられ得る数百、数千、数百万、またはもっと多くのサブマップ(例えばマップタイル)を含んでよい。そのようなサブマップはローカルマップまたはマップタイルと呼ばれることがあり、車道に沿って走行する車両が、車両が走行している場所に関連する任意の数のローカルマップにアクセスしてよい。スパースマップ800のローカルマップ区域は、スパースマップ800のデータベースの索引としての全球測位衛星システム(GNSS)キーと共に格納されてよい。したがって、本システムにおいてホスト車両をナビゲートするためのステアリング角の計算が、ホスト車両のGNSSの位置、道路特徴、またはランドマークに頼ることなく行われてよいが、そのようなGNSSの情報が関連するローカルマップの検索に用いられてもよい。
一般に、スパースマップ800は、1つまたは複数の車両が車道に沿って走行するときに当該車両から収集されたデータ(例えばドライブ情報)に基づいて生成されてよい。例えば、1つまたは複数の車両に載せられたセンサ(例えば、カメラ、速度計、GPS、加速度計など)を用いて、1つまたは複数の車両が車道に沿って走行する軌跡を記録することができ、この車道に沿ってその後に移動する車両の好ましい軌跡の多項式表現を、1つまたは複数の車両が走行し収集された軌跡に基づいて求めることができる。同様に、1つまたは複数の車両が収集したデータは、特定の車道沿いの可能性のあるランドマークを識別するのに役立ち得る。通行する車両から収集したデータは、道路プロファイル情報、例えば、道路幅プロファイル、道路凹凸プロファイル、車線間隔プロファイル、道路状態などを識別するためにも用いられてよい。収集した情報を用いて、スパースマップ800は、1つまたは複数の自動運転車をナビゲートする際に用いるのに生成され、(例えば、ローカルストレージ用に、またはオンザフライ方式のデータ送信によって)配信されてよい。しかしながら、いくつかの実施形態では、マップ生成が、マップの初期生成で終了しないことがある。以下でより詳細に論じることになるが、スパースマップ800は、車両がスパースマップ800に含まれる車道を継続して通行するときに、当該車両から収集されたデータに基づいて、常にまたは定期的に更新されてよい。
スパースマップ800に記録されるデータには、全地球測位システム(GPS)データに基づく位置情報が含まれてよい。例えば位置情報は、例えば、ランドマークの位置、道路プロファイルの位置などを含む様々なマップ要素についてのスパースマップ800に含まれてよい。スパースマップ800に含まれるマップ要素の位置が、車道を通行する車両から収集されたGPSデータを用いて取得されてよい。例えば、識別されたランドマークを通過する車両が、車両に関連するGPS位置情報と、車両に対する識別されたランドマークの位置の(例えば、車両に搭載された1つまたは複数のカメラから収集されたデータの画像分析に基づく)決定とを用いて、識別されたランドマークの位置を決定してよい。識別されたランドマーク(またはスパースマップ800に含まれる任意の他の特徴)のそのような位置決定は、識別されたランドマークの位置をさらなる車両が通過するたびに繰り返されてよい。さらなる位置決定の一部または全部が、スパースマップ800に格納されている識別されたランドマークに関する位置情報を微調整するのに用いられてよい。例えば、いくつかの実施形態では、スパースマップ800に格納された特定の特徴に関する複数の位置測定値が、まとめて平均化されてよい。しかしながら、マップ要素について決定された複数の位置に基づいて、格納されたマップ要素の位置を微調整するのに、任意の他の数学的操作も用いてよい。
特定の例では、収集車両は特定の道路セグメントを通行してもよい。各収集車両は、それぞれの環境の画像を取り込む。画像は、任意の好適なフレームキャプチャレート(例えば9Hzなど)で収集されてもよい。各収集車両に載せられた1つまたは複数の画像分析プロセッサは、取り込まれた画像を分析して、セマンティックなおよび/もしくは非セマンティックな特徴/物体の存在を検出する。高いレベルで、収集車両は、これらの物体/特徴に関連する位置と共に、セマンティックなおよび/もしくは非セマンティックな物体/特徴の検出のインジケーションをマッピングサーバへと送信する。より詳細には、タイプ指標、寸法指標などが、位置情報と一緒に送信されてもよい。位置情報は、マッピングサーバが検出された物体/特徴をナビゲーションにおいて有用なスパースマップへと集約することを可能にするのに好適な任意の情報を含んでもよい。場合によっては、位置情報は、取り込まれた画像において、セマンティックなまたは非セマンティックな特徴/物体が検出された1つまたは複数の2D画像位置(例えばX-Y画素位置)を含んでもよい。そのような画像位置は、特徴/物体の中心、コーナーなどに対応してもよい。このシナリオにおいて、マッピングサーバが、ドライブ情報を再構築し、複数の収集車両からのドライブ情報を揃えるのを助けるべく、各収集車両もまた、各画像が取り込まれた位置(例えばGPS位置)をサーバに提供してもよい。
他の場合では、収集車両は、検出された物体/特徴に関連する1つまたは複数の3D実世界点をサーバに提供してもよい。そのような3D点は、(ドライブセグメントの原点のような)所定の原点に関連してもよく、且つ、任意の好適な手法によって特定されてもよい。場合によっては、モーション手法における構造が使用されて、検出された物体/特徴の3D現実世界位置を特定してもよい。例えば、2つまたはそれより多くの取り込まれた画像において、特定の制限速度標識のような特定の物体が検出されてもよい。取り込まれた画像における制限速度標識の観測された変化(X-Y画素位置における変化、サイズにおける変化など)と共に、複数の取り込まれた画像間における収集車両の既知のエゴモーション(速度、軌跡、GPS位置など)のような情報を使用することにより、制限速度標識に関連する1つまたは複数の点の実際の位置が特定され、マッピングサーバに渡されてもよい。そのような手法は、収集車両システムの一部においてより多くの計算を必要とするので、オプションである。開示する実施形態のスパースマップにより、比較的少量の格納データを用いた車両の自動ナビゲーションが可能になり得る。いくつかの実施形態において、スパースマップ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に格納される目標軌跡は、例えば、特定の道路セグメントに沿った車両の以前の通行に関する2つまたはそれより多くの再構築された軌跡に基づいて決定されてよい。道路セグメントは、単一の目標軌跡に関連づけられても、複数の目標軌跡に関連づけられてもよい。例えば、2車線道路では、道路に沿って第1方向に走行する目標経路を表すのに第1目標軌跡が格納されてよく、道路に沿って別の方向(例えば、第1方向とは反対)に走行する目標経路を表すのに第2目標軌跡が格納されてよい。特定の道路セグメントに対して、追加の目標軌跡が格納されることがある。例えば、複数車線道路では、1つまたは複数の目標軌跡を格納して、複数車線道路に関連した1つまたは複数の車線にいる複数の車両用の目標走行経路を表してよい。いくつかの実施形態では、複数車線道路の各車線は、独自の目標軌跡に関連づけられてよい。他の実施形態では、複数車線道路に存在する車線より少ない目標軌跡が格納されることがある。そのような場合には、複数車線道路をナビゲートする車両が、目標軌跡が格納されている車線からの車線オフセット量を考慮して、格納された複数の目標軌跡のうちのいずれかを用いてナビゲーションを誘導してよい(例えば、車両が3車線高速道路の左端車線を走行中であり、且つ高速道路の中央車線用の目標軌跡だけが格納されている場合、車両は、ナビゲーション命令を生成するときに中央車線と左端車線との間の車線オフセット量を考慮することにより、中央車線の目標軌跡を用いてナビゲートしてよい)。
いくつかの実施形態において、目標軌跡は、車両が走行するときに、当該車両が通るべき理想的な経路を表し得る。目標軌跡は、例えば、走行車線のほぼ中心に位置してよい。他の場合では、目標軌跡が道路セグメントに対して他の箇所に位置することがある。例えば、目標軌跡が、道路の中心、道路のエッジ、または車線のエッジなどとほぼ一致してよい。そのような場合、目標軌跡に基づくナビゲーションには、目標軌跡の位置に対して維持される決定済みのオフセット量が含まれてよい。さらに、いくつかの実施形態において、目標軌跡の位置に対して維持される決定済みのオフセット量は、車両のタイプに基づいて異なってもよい(例えば、目標軌跡の少なくとも一部に沿って、2つの車軸を含む乗用車が2つより多くの車軸を含むトラックとは異なるオフセットを有してよい)。
スパースマップ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に格納する必要はない。
さらに、いくつかの実施形態では、ランドマーク間で車両の位置特定を行うのに車線標示が用いられてよい。ランドマーク間で車線標示を用いることにより、推測航法によるナビゲーション時の誤差の累積を最小限に抑えることができる。
目標軌跡および識別したランドマークに加えて、スパースマップ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が、2つのグループの3次多項式で表されている。第1グループには、多項式セグメント911、912、および913が含まれている。第2グループには、多項式セグメント914、915、および916が含まれている。2つのグループは、実質的に互いに対して平行であると共に、道路のそれぞれの側の位置に沿って延びている。多項式セグメント911、912、913、914、915、および916は約100メートルの長さがあり、約50メートルが隣接するセグメントと連続して重なり合っている。しかしながら前述したように、異なる長さおよび異なる重なり量の多項式も用いてよい。例えば、多項式は、500m、1km、またはもっと長い長さであってもよく、重なり量は、0~50m、50m~100m、または100mを超える量で変化してよい。さらに、図9Aは2D空間(例えば、紙面上)に延びる多項式を表すものとして示されているが、これらの多項式は(例えば、高さ成分を含む)3次元に延びる曲線を表し、X-Y面の曲率に加えて、道路セグメントの標高変動も表してよいことを理解されたい。図9Aに示す例では、車線900の右側920がさらに、多項式セグメント921、922、および923を有する第1グループと、多項式セグメント924、925、および926を有する第2グループとで表されている。
スパースマップ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つまたは複数の車両が道路セグメントを通行するときに取得される複数の画像の画像分析によって識別されてよい。
前述したように、スパースマップ800は、道路セグメントに関連する複数の所定のランドマークを含んでよい。ランドマークの実画像を格納して、例えば、取り込まれた画像および格納した画像に基づく画像認識分析を利用するのではなくむしろ、スパースマップ800に含まれる各ランドマークは、実画像を格納した場合に必要となるよりも少ないデータを用いて表され且つ認識され得る。それでも、ランドマークを表すデータには、道路沿いのランドマークを記述するまたは識別するのに十分な情報が含まれ得る。ランドマークの実画像ではなくむしろ、ランドマークの特性を記述するデータを格納することで、スパースマップ800のサイズを削減することができる。
図10は、スパースマップ800に表され得るランドマークのタイプの例を示している。これらのランドマークには、道路セグメント沿いのあらゆる視認可能で識別可能な物体が含まれてよい。ランドマークは、固定されたものであり且つその位置および/または内容に関する変更が頻繁に行われないように選択されてよい。スパースマップ800に含まれるランドマークは、車両が特定の道路セグメントを通行するときに、目標軌跡に関する車両200の位置を決定するのに役立ち得る。ランドマークの例には、交通標識、方向標識、一般標識(例えば、長方形の標識)、路側固定物(例えば、街灯柱、反射鏡など)、および任意の他の好適な種類が含まれてよい。いくつかの実施形態において、道路上の車線標示も、スパースマップ800のランドマークとして含まれてよい。
図10に示すランドマークの例には、交通標識、方向標識、路側固定物、および一般標識が含まれている。交通標識には、例えば、制限速度標識(例えば、制限速度標識1000)、優先道路標識(例えば、優先道路標識1005)、路線番号標識(例えば、路線番号標識1010)、信号機標識(例えば、信号機標識1015)、一時停止標識(例えば、一時停止標識1020)が含まれてよい。方向標識には、異なる場所への1つまたは複数の方向を示す1つまたは複数の矢印を含む標識が含まれてよい。例えば、方向標識には、異なる道路または場所に車両を誘導する矢印を有する高速道路標識1025、道路から降りるように車両を誘導する矢印を有する出口標識1030などが含まれてよい。したがって、複数のランドマークのうちの少なくとも1つには道路標識が含まれてよい。
一般標識は、交通に無関係であってよい。例えば、一般標識には、広告に用いる掲示板、または2つの国、州、郡、都市、または町の境界に隣接しているウェルカムボードが含まれてよい。図10には、一般標識1040(「ジョーズ・レストラン」)が示されている。一般標識1040は図10に示すように長方形形状でよいが、一般標識1040は、正方形、円形、三角形などといった他の形状であってもよい。
ランドマークには、路側固定物も含まれてよい。路側固定物とは、標識ではない物体であってよく、交通に関連しなくても方向に関連しなくてもよい。例えば、路側固定物には、街灯柱(例えば、街灯柱1035)、電柱、信号機柱などが含まれてよい。
ランドマークには、自動運転車ナビゲーションシステムでの使用を目的に特別に設計され得るビーコンも含まれてよい。例えば、そのようなビーコンには、ホスト車両をナビゲートする際に役立つように所定の間隔で配置されたスタンドアローン型構造物が含まれてよい。そのようなビーコンには、道路セグメントに沿って走行する車両が識別または認識できる、既存の道路標識に追加された視覚/図形情報(例えば、アイコン、エンブレム、バーコードなど)も含まれてよい。そのようなビーコンには、電子部品も含まれてよい。そのような実施形態では、電子ビーコン(例えば、RFIDタグなど)を用いて、非視覚情報をホスト車両に送信してよい。そのような情報には、例えば、ホスト車両が目標軌跡に沿った自車の位置を決定する際に用いることができるランドマーク識別情報および/またはランドマークの位置情報が含まれてよい。
いくつかの実施形態において、スパースマップ800に含まれるランドマークは、所定サイズのデータオブジェクトで表されてよい。ランドマークを表すデータには、特定のランドマークを識別するのに好適な任意のパラメータが含まれてよい。例えば、いくつかの実施形態において、スパースマップ800に格納されたランドマークには、ランドマークの物理的サイズ(例えば、既知のサイズ/スケールに基づいてランドマークまでの距離の推定を支援するためのもの)、直前のランドマークまでの距離、横方向オフセット、高さ、タイプコード(例えば、ランドマークのタイプ、つまり、どのタイプの方向標識、交通標識などであるか)、GPS座標(例えば、広範囲な位置特定を支援するためのもの)といったパラメータ、および任意の他の好適なパラメータが含まれてよい。各パラメータは、データサイズに関連づけられてよい。例えば、ランドマークのサイズは、8バイトのデータを用いて格納されてよい。直前のランドマークまでの距離、横方向オフセット、および高さは、12バイトのデータを用いて指定されてよい。方向標識または交通標識などのランドマークに関連づけられるタイプコードには、約2バイトのデータが必要になり得る。一般標識では、一般標識の識別を可能にする画像署名が、50バイトのデータストレージを用いて格納されてよい。ランドマークのGPS位置は、16バイトのデータストレージに関連づけられてよい。各パラメータのこれらのデータサイズは単なる例であり、他のデータサイズも用いてよい。このようにしてランドマークをスパースマップ800に表すことで、ランドマークをデータベースに効率的に表すための効率的な解決策を提供することができる。いくつかの実施形態において、物体は、標準的でセマンティックな物体または非標準的でセマンティックな物体と呼ばれてもよい。標準的でセマンティックな物体には、複数の特性の標準化されたセット(例えば、既知の寸法または他の特性を有する、制限速度標識、警告標識、方向標識、信号機など)が存在する任意のクラスの物体が含まれてよい。非標準的でセマンティックな物体には、標準化された特性のセットに関連していない任意の物体(例えば、可変寸法を有し得る、一般的な広告標識、企業を識別する標識、道路にできた穴、樹木など)が含まれてよい。各々の非標準的でセマンティックな物体は、38バイトのデータ(例えば、サイズには8バイト、直前のランドマークまでの距離、横方向オフセットおよび高さには12バイト、タイプコードには2バイト、位置座標には16バイト)で表されてよい。マッピングサーバはサイズ情報がスパースマップにおける物体を完全に表すことを必要としないかもしれないので、標準的でセマンティックな物体は、さらに少ないデータを用いて表されてよい。
スパースマップ800は、タグシステムを用いて、ランドマークのタイプを表してよい。場合によっては、各々の交通標識または方向標識は独自のタグに関連づけられてよく、このタグは、ランドマーク識別情報の一部としてデータベースに格納されてよい。例えば、データベースには、様々な交通標識を表すのに1000個程度の異なるタグと、方向標識を表すための約10000個程度の異なるタグが含まれてよい。当然ながら、任意の好適な数のタグを用いてもよく、必要に応じて追加のタグを作成してもよい。いくつかの実施形態では、汎用標識が、約100バイト未満(例えば、サイズには8バイト、直前のランドマークまでの距離、横方向オフセット、および高さには12バイト、画像署名には50バイト、GPS座標には16バイトを含む約86バイト)を用いて表されてよい。
したがって、画像署名を必要としないセマンティックな道路標識の場合、スパースマップ800へのデータ密度の影響は、50m当たり約1つという比較的高いランドマーク密度でさえも、1キロメートル当たり約760バイト程度(例えば、[1km当たり20個のランドマーク]×[ランドマーク当たり38バイト]=760バイト)になり得る。画像署名成分を含む汎用標識の場合でさえも、データ密度の影響は、1km当たり約1.72kBである(例えば、[1km当たり20個のランドマーク]×[ランドマーク当たり86バイト]=1,720バイト)。セマンティックな道路標識の場合、この影響は、100km/hrで走行する車両にとって、1時間当たり約76kBのデータ使用量に相当する。汎用標識の場合、この影響は、100km/hrで走行する車両にとって、1時間当たり約170kBに相当する。いくつかの環境(例えば都市環境)においては、スパースマップ内に含まれるもののために利用可能な、検出された物体が、かなり高い密度で(おそらく1メートルごとに1つよりも多く)存在し得ることに留意すべきである。いくつかの実施形態では、概して長方形の物体、例えば長方形の標識が、100バイト以下のデータでスパースマップ800に表されてよい。スパースマップ800における概して長方形の物体(例えば、一般標識1040)の表現には、概して長方形の物体に関連づけられる短縮画像署名または画像ハッシュ(例えば、短縮画像署名1045)が含まれてよい。この短縮画像署名/画像ハッシュは、任意の好適な画像ハッシュアルゴリズムを用いることによって判定されることができ、且つ、この短縮画像署名/画像ハッシュを用いると、例えば認識したランドマークとして、例えば汎用標識を識別するのに役立てることができる。そのような短縮画像署名(例えば、ある物体を表す実画像データから得られた画像情報)によって、物体の実画像を格納する必要も、ランドマークを認識するために実画像に対して行われる比較画像分析の必要もなくすことができる。
図10を参照すると、スパースマップ800は、一般標識1040の実画像ではなくむしろ、一般標識1040に関連づけられる短縮画像署名1045を含んでも、格納してもよい。例えば、画像取り込みデバイス(例えば、画像取り込みデバイス122、124、または126)が一般標識1040の画像を取り込んだ後に、プロセッサ(例えば、ホスト車両に載せられて、またはホスト車両に対して遠隔に位置して、画像を処理できる画像プロセッサ190または任意の他のプロセッサ)が、画像分析を行って、一般標識1040に関連づけられる一意の署名またはパターンを含む短縮画像署名1045を抽出/作成してよい。一実施形態において、短縮画像署名1045には、形状、色パターン、明度パターン、または一般標識1040の画像から抽出され得る一般標識1040を記述するための任意の他の特徴が含まれてよい。
例えば図10において、短縮画像署名1045に示される円形、三角形、および星形は、異なる色の領域を表してよい。円形、三角形、および星形で表されたパターンは、例えば、画像署名を含むように指定された50バイト以内で、スパースマップ800に格納されてよい。特に、円形、三角形、および星形は、そのような形状が画像署名の一部として格納されていることを示すことを必ずしも意味するものではない。むしろ、これらの形状は、識別可能な色差、テクスチャ領域、図形形状、または汎用標識に関連し得る特性の他のバリエーションを有する認識可能な領域を概念的に表すことを意図している。そのような短縮画像署名を用いると、一般標識の形でランドマークを識別することができる。例えば、短縮画像署名を用いると、格納された短縮画像署名と、例えば自動運転車に搭載されたカメラを用いて取り込まれた画像データとの比較に基づいて、同定分析を行うことができる。
したがって、複数のランドマークは、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の軌跡を再構築してよい。サーバは、後に同じ道路セグメント1100に沿って走行する自動運転車のナビゲーションを誘導するための目標軌跡も、第1の軌跡1101、第2の軌跡1102、および第3の軌跡1103に基づいて生成してよい。目標軌跡が道路セグメントの単一の以前の通行に関連づけられてよいが、いくつかの実施形態において、スパースマップ800に含まれる各目標軌跡は、同じ道路セグメントを通行する車両の2つまたはそれより多くの再構築された軌跡に基づいて決定されてよい。図11Aには、目標軌跡が1110で表されている。いくつかの実施形態において、目標軌跡1110は、第1の軌跡1101、第2の軌跡1102、および第3の軌跡1103の平均に基づいて生成されてよい。いくつかの実施形態において、スパースマップ800に含まれる目標軌跡1110は、2つまたはそれより多くの再構築された軌跡の集合体(例えば、重みづけされた組み合わせ)であってよい。
マッピングサーバでは、サーバは、道路セグメントを通行する複数の収集車両から、特定の道路セグメント用の実際の軌跡を受信してもよい。道路セグメントに沿う各々の有効な経路(例えば、各々の車線、各々の走行方向、交差点を通る各々の経路、など)用の目標軌跡を生成するべく、受信された実際の軌跡は揃えられてもよい。アライメントプロセスは、実際の収集された軌跡を互いに関連づけるべく、道路セグメントに沿って識別される検出された物体/特徴を、それらの検出された物体/特徴の収集された位置と共に用いることを含んでもよい。一旦揃えられると、各々の利用可能な車線などのための平均的な又は「最良適合」な目標軌跡が、集約され、且つ、関連づけられた/揃えられた実際の軌跡に基づいて判定されてもよい。
図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が含まれてよい。そのようなランドマークは、例えば、示された目標軌跡のうちのいずれかに対する自車の現在位置を決定する際に、自動運転車を支援するのに用いられてよい。これにより、車両はその決定位置において、目標軌跡の方向と一致するように自車の進行方向を調整することができる。
いくつかの実施形態において、スパースマップ800には、ロードシグネチャプロファイルも含まれてよい。そのようなロードシグネチャプロファイルは、道路に関連する少なくとも1つのパラメータにおける任意の識別可能/測定可能な変化に関連づけられてよい。例えば、場合によっては、そのようなプロファイルは、路面情報の変化、例えば、特定の道路セグメントの路面凹凸の変化、特定の道路セグメント全体の道路幅の変化、特定の道路セグメントに沿って塗装された破線間の距離の変化、特定の道路セグメントに沿った道路曲率の変化などに関連づけられてよい。図11Dは、ロードシグネチャプロファイル1160の一例を示している。プロファイル1160は、上述したパラメータなどのうちのいずれかを表してよいが、一例において、プロファイル1160は、例えば、車両が特定の道路セグメントを走行するときのサスペンション変位の量を示す出力を提供する1つまたは複数のセンサを監視することにより取得された、路面凹凸の測定値を表してよい。
その代わりに、または同時に、プロファイル1160は道路幅の変化を表してよく、この変化は、特定の道路セグメントを走行する車両に搭載されたカメラによって取得された画像データに基づいて特定される。そのようなプロファイルは、例えば、特定の目標軌跡に対する自動運転車の特定の位置を決定する際に役立ち得る。すなわち、自動運転車が、ある道路セグメントを通行するときに、当該道路セグメントに関連づけられる1つまたは複数のパラメータに関連するプロファイルを測定してよい。測定したプロファイルが、道路セグメントに沿う位置に関するパラメータの変化をプロットした所定のプロファイルに関連づけられ得る/一致し得る場合、次いで、道路セグメントに沿う現在位置、したがって道路セグメントの目標軌跡に対する現在位置を決定するために、測定したプロファイルおよび所定のプロファイルを(例えば、測定したプロファイルおよび所定のプロファイルの対応する部分同士を重ねることにより)用いてよい。
いくつかの実施形態において、スパースマップ800には、自動運転車のユーザ、環境状態、且つ/または走行に関連する他のパラメータに関連づけられた様々な特性に基づく様々な軌跡が含まれてよい。例えば、いくつかの実施形態では、様々なユーザ嗜好および/またはプロファイルに基づいて、様々な軌跡が生成されてよい。そのような様々な軌跡を含むスパースマップ800は、様々なユーザの様々な自動運転車に提供されてよい。例えば、一部のユーザは有料道路を避けることを好むかもしれないが、他のユーザは、ルート上に有料道路があるかどうかに関係なく、最短または最速のルートを通ることを好むかもしれない。開示するシステムは、そのような様々なユーザ嗜好またはプロファイルに基づく様々な軌跡を有する様々なスパースマップを生成してよい。別の例として、一部のユーザは高速車線を走行することを好むかもしれないが、他のユーザは、常に位置を中央車線に維持することを好むかもしれない。
様々な軌跡が、日中および夜間、雪、雨、霧などといった様々な環境状態に基づいて生成され、スパースマップ800に含まれてよい。様々な環境状態下で走行する自動運転車には、そのような様々な環境状態に基づいて生成されたスパースマップ800が提供されてよい。いくつかの実施形態では、自動運転車に設けられたカメラが環境状態を検出してよく、そのような情報を、スパースマップを生成し且つ提供するサーバに戻す形で提供してよい。例えば、サーバは、検出された環境状態下での自動運転にとって、より好適または安全かもしれない軌跡を含むようにスパースマップ800を生成しても、すでに生成されているスパースマップ800を更新してもよい。環境状態に基づくスパースマップ800の更新は、自動運転車が道路に沿って走行しているときに、動的に行われてよい。
走行に関連する他の様々なパラメータも、様々なスパースマップを生成して様々な自動運転車にこれを提供するための基礎として用いられてよい。例えば、自動運転車が高速で走行している場合、旋回がよりきつくなり得る。自動運転車が特定の軌跡を進むときに、当該車両が特定の車線を維持できるように、道路ではなくむしろ特定の車線に関連づけられた軌跡がスパースマップ800に含まれてよい。自動運転車に搭載されたカメラにより取り込まれた画像が、車両が車線から外れて移動した(例えば、車線標示を横切った)ことを示した場合、特定の軌跡に従って車両を指定の車線に戻す動作が車両内で作動してよい。
[スパースマップのクラウドソーシング]
開示されるスパースマップは、クラウドソーシングの力によって効率的に(且つ受動的に)生成されてもよい。例えば、カメラ(例えば、現在の車両においてOEM装置として日ごろから含まれる単純な低解像度カメラ)を備える任意の自家用車または商用車、および、適切な画像分析プロセッサが、収集車両としての役割を果たすことができる。特別な装備(例えば高解像度撮像および/もしくは測位システム)は必要とされない。開示されるクラウドソーシング手法の結果として、生成されるスパースマップは、極めて正確であり得、且つ、マップ生成処理への入力としていかなる特殊用途の撮像またはセンシング装置も必要とすることなく、(10cmまたはそれより狭いナビゲーションの誤差制限を可能にする)極めて微調整された位置情報を含み得る。マッピングサーバシステムは、収集車両としての役割も果たすべく最小限に装備された自家用車または商用車によって行き来される任意の道路からの新たなドライブ情報を常に利用できるので、クラウドソーシングもまた、生成されたマップに対する、はるかに高速な(且つ安価な)更新を可能にする。指定された車両は、高解像度撮像およびマッピングセンサを備える必要がない。したがって、そのような特殊用途の車両を構築することに関連する費用を避けることができる。さらに、現在開示されているスパースマップの更新は、専用の特殊用途のマッピング車両(その費用および特別な装備により、通常は、開示される収集手法を実行するためにすでに利用できる自家用車または商用車の数よりもはるかに少ない数の特殊用途の車両の車両隊に制限される)を利用するシステムよりも、はるかに高速に行われ得る。
クラウドソーシングによって生成される、開示されるスパースマップは、特定の道路セグメントに沿って収集されたドライブ情報を有する複数の(数十、数百、数百万などの)収集車両からの複数の入力に基づいて生成され得るので、極めて正確であり得る。例えば、特定の道路セグメントに沿って運転している収集車両ごとに、その実際の軌跡を記録してもよく、且つ、道路セグメントに沿って検出された物体/特徴に関連する位置情報を特定してもよい。この情報は、複数の収集車両からサーバに渡される。実際の軌跡は集約され、道路セグメントに沿う各々の有効な運転経路用に微調整された目標軌跡が生成される。さらに、複数の収集車両から収集される、道路セグメントに沿って検出された(セマンティックなまたは非セマンティックな)物体/特徴の各々の位置情報もまた、集約され得る。その結果として、各々検出された物体/特徴のマッピングされた位置は、各々の検出された物体/特徴について個々に特定された、数百、数千または数百万の位置の平均を構成してもよい。そのような手法は、検出された物体/特徴について、極めて正確にマッピングされた位置をもたらし得る。
いくつかの実施形態において、開示するシステムおよび方法は、自動運転車ナビゲーション用のスパースマップを生成し得る。例えば、開示するシステムおよび方法は、1つまたは複数の自動運転車があるシステムの道路に沿ってナビゲートするのに用い得るスパースマップの生成に、クラウドソーシングによるデータを用いてよい。本明細書で用いる場合、「クラウドソーシング」とは、ある道路セグメントを異なる時間に走行する様々な車両(例えば、自動運転車)からデータを受信することを意味し、そのようなデータは、スパースマップタイルを含む道路モデルを生成する且つ/または更新するのに用いられる。このモデル、または、その複数のスパースマップタイルのうちのいずれかは、次に、自動運転車ナビゲーションを支援するために、当該車両または後に当該道路セグメントに沿って走行する他の車両に送信されてよい。道路モデルには、ある道路セグメントを自動運転車が通行するときに進むべき好ましい軌跡を表す複数の目標軌跡が含まれてよい。これらの目標軌跡は、道路セグメントを通行する車両から収集された実際の軌跡を再構築したものと同じであってよく、収集された実際の軌跡は当該車両からサーバに送信されてよい。いくつかの実施形態において、目標軌跡は、1つまたは複数の車両が道路セグメントを通行したときに以前に通った実際の軌跡と異なる場合がある。目標軌跡は、実際の軌跡に基づいて(例えば、平均化、または任意の他の好適な操作により)生成されてよい。
車両がサーバにアップロードし得る車両軌跡データは、車両の実際の再構築された軌跡に対応してもよく、推奨軌跡に対応してもよい。推奨軌跡は、車両の実際の再構築された軌跡に基づいても、これに関連してもよいが、実際の再構築された軌跡と異なる場合がある。例えば、車両は自車の実際の再構築された軌跡を変更し、変更した実際の軌跡をサーバに提出(例えば、推奨)してよい。道路モデルは、推奨された変更済みの軌跡を他の車両の自動ナビゲーション用の目標軌跡として用いてよい。
軌跡情報に加えて、スパースデータマップ800を構築する際に用いる可能性のある他の情報が、可能性のあるランドマーク候補に関連する情報を含んでよい。例えば、情報のクラウドソーシングによって、開示するシステムおよび方法は、環境内の可能性のあるランドマークを識別し、ランドマークの位置を微調整することができる。これらのランドマークは、自動運転車のナビゲーションシステムが目標軌跡に沿った車両の位置を決定し且つ/または調整するのに用いられてよい。
車両が道路に沿って走行するときに車両が生成し得る再構築された軌跡は、任意の好適な方法で取得されてよい。いくつかの実施形態において、例えば、エゴモーション推定(例えば、カメラ、したがって車両本体の、3次元並進および3次元回転)を用いて、車両の動きの複数の部分をつなぎ合わせることで、再構築された軌跡を発展させることができる。回転および並進の推定は、1つまたは複数の画像取り込みデバイスにより取り込まれた画像を他のセンサまたはデバイス(慣性センサおよび速度センサなど)からの情報と共に分析した結果に基づいて決定されてよい。例えば、慣性センサは、車体の並進および/または回転の変化を測定するように構成された加速度計または他の好適なセンサを含んでよい。車両は、車両の速度を測定する速度センサを含んでよい。
いくつかの実施形態において、カメラ(したがって車体)のエゴモーションは、取り込まれた画像のオプティカルフロー分析に基づいて推定されてよい。一連の画像のオプティカルフロー分析では、当該一連の画像の画素の動きを識別し、識別した動きに基づいて、車両の動きを特定する。エゴモーションは、車両が進んだ道路セグメントに関連づけられた軌跡を再構築するために、時間の経過と共に道路セグメントに沿って集積されてよい。
ある道路セグメントに沿った異なる時間での複数のドライブにおいて複数の車両により収集されたデータ(例えば、再構築された軌跡)が、スパースデータマップ800に含まれる(例えば、目標軌跡などを含む)道路モデルを構築するのに用いられてよい。ある道路セグメントに沿った異なる時間での複数のドライブにおいて複数の車両により収集されたデータが、モデルの精度を高めるために平均化されてもよい。いくつかの実施形態において、道路の幾何構造および/またはランドマークに関するデータが、共通の道路セグメントを異なる時間に通り抜ける複数の車両から受信されてよい。異なる車両から受信されるそのようなデータは、道路モデルの生成および/または道路モデルの更新のために組み合わされてよい。
道路セグメントに沿った再構築された軌跡の幾何構造は(目標軌跡の幾何構造も)、3次元空間の曲線で表されてよく、この曲線は3次元多項式を接続するスプラインであってよい。再構築された軌跡の曲線は、車両に設置されたカメラにより取り込まれたビデオストリームまたは複数の画像の分析から求められてよい。いくつかの実施形態では、車両の現在位置の数メートル前方にある各フレームまたは画像で位置が識別される。この位置は、所定の期間の後に車両が走行すると予期されているところである。この操作はフレームごとに繰り返されてよく、同時に、車両はカメラのエゴモーション(回転および並進)を計算してよい。各フレームまたは画像では、カメラに取り付けられた基準フレーム内の車両により、所望の経路の短距離モデルが生成される。複数の短距離モデルをつなぎ合わせて、何らかの座標フレーム内の道路の3次元モデルを取得してよく、この座標フレームは任意の座標フレームでも所定の座標フレームでもよい。道路の3次元モデルは次に、スプラインにフィッティングされてよく、このスプラインは好適な次数の1つまたは複数の多項式を含んでも、この多項式を接続してもよい。
各フレームで短距離道路モデルを完成させるために、1つまたは複数の検出モジュールが用いられてよい。例えば、ボトムアップ型車線検出モジュールが用いられてよい。ボトムアップ型車線検出モジュールは、道路上に車線標示が描かれている場合に役立ち得る。このモジュールは、画像内のエッジを探し出し、これらのエッジを一緒に編成して車線標示を形成してよい。第2モジュールが、ボトムアップ型車線検出モジュールと一緒に用いられてよい。第2モジュールはエンドツーエンド型ディープニューラルネットワークであり、このディープニューラルネットワークは、正確な短距離経路を入力画像から予測するように訓練されてよい。どちらのモジュールでも、道路モデルが画像座標フレーム内で検出され、カメラに仮想的に取り付けられ得る3次元空間に変換されてよい。
再構築された軌跡のモデル化方法では、長期間にわたるエゴモーションの集積により、ノイズ成分を含み得る誤差の累積をもたらすことがあるが、そのような誤差は、生成されたモデルが地域規模でのナビゲーションに十分な精度を提供し得るので重要でないかもしれない。さらに、衛星画像または測地測量などの外部の情報源を用いることで、集積誤差を相殺することが可能である。例えば、開示するシステムおよび方法は、GNSS受信機を用いて累積誤差を相殺してよい。しかしながら、GNSS測位信号は、常に利用できて正確であるとは限らないかもしれない。開示するシステムおよび方法によって、GNSS測位の可用性および精度にあまり依存しないステアリングアプリケーションが可能になり得る。そのようなシステムでは、GNSS信号の使用が限定されてよい。例えば、いくつかの実施形態において、開示するシステムは、データベースの索引作成目的のためだけにGNSS信号を用いてよい。
いくつかの実施形態において、自動運転車ナビゲーションのステアリングアプリケーションに適切かもしれない距離範囲(例えば、地域規模)は、50メートル、100メートル、200メートル、300メートル程度などであってもよい。そのような距離が用いられてよいのは、幾何道路モデルが用いられる目的が主に2つ、軌跡を事前に計画すること、および道路モデルで車両の位置を特定することであるためである。いくつかの実施形態において、計画策定タスクは40メートル前方(または任意の他の好適な前方距離、例えば20メートル、30メートル、50メートル)という典型的な範囲にわたるモデルを用いてよく、このとき制御アルゴリズムは、1.3秒先(または任意の他の時間、例えば、1.5秒、1.7秒、2秒など)に位置する目標地点に従って車両を操縦する。位置特定タスクは、別のセクションでより詳細に説明される「テールアライメント」と呼ばれる方法に従って、自動車の後方60メートル(または任意の他の好適な距離、例えば、50メートル、100メートル、150メートルなど)という典型的な範囲にわたる道路モデルを用いる。開示するシステムおよび方法は、計画した軌跡が、例えば、車線中央から30cmを超えて逸脱することがないように、100メートルなどの特定の範囲にわたり十分な精度を有する幾何モデルを生成してよい。
上述したように、短距離部分を検出して、これらを一緒につなぎ合わせることから、3次元道路モデルが構築されてよい。このつなぎ合わせは、カメラにより取り込まれた映像および/または画像、車両の動きを反映する慣性センサからのデータ、およびホスト車両の速度信号を用いて、6段階のエゴモーションモデルを計算することにより可能になり得る。累積誤差は、100メートル程度といった、ある程度の局所的範囲の規模では十分に小さくなり得る。これが全て、特定の道路セグメントの1つのドライブで完了してよい。
いくつかの実施形態では、結果として生じるモデルを平均化して精度をさらに高めるために、複数のドライブが用いられてよい。同じ自動車が同じルートを複数回走行してもよく、複数の自動車がそれぞれ収集したモデルデータを中央サーバに送信してもよい。いずれにしても、目標軌跡を生成するために、重なり合っているモデルを識別して平均化できるように、マッチング手順が行われてよい。構築された(例えば、目標軌跡を含む)モデルは、一旦、収束基準を満たすと、操縦に用いられてよい。さらなるモデルの改良のために、またインフラの変化に適応するために、その後のドライブが用いられてよい。
複数の自動車同士による走行経験(検知データなど)の共有が、これらの自動車が中央サーバに接続されている場合に実現可能になる。各車両クライアントは、それぞれの現在位置に関連し得る汎用道路モデルの部分的コピーを格納してよい。車両とサーバとの間の双方向の更新手順が、車両およびサーバによって行われてよい。上述した小フットプリントの概念により、開示するシステムおよび方法は、非常に小さい帯域幅を用いて双方向の更新を行うことが可能になる。
可能性のあるランドマークに関連する情報も、特定されて中央サーバに転送されてよい。例えば、開示するシステムおよび方法は、可能性のあるランドマークの1つまたは複数の物理的特性を、ランドマークを含む1つまたは複数の画像に基づいて特定してよい。これらの物理的特性には、ランドマークの物理的サイズ(例えば、高さ、幅)、車両からランドマークまでの距離、ランドマークから直前のランドマークまでの距離、ランドマークの横方向位置(例えば、走行車線に対するランドマークの位置)、ランドマークのGPS座標、ランドマークのタイプ、ランドマークに関するテキストの識別などが含まれてよい。例えば、車両は、カメラにより取り込まれた1つまたは複数の画像を分析して、制限速度標識などの、可能性のあるランドマークを検出してよい。
車両は、1つまたは複数の画像の分析に基づいて、車両からランドマークまでの距離、または、ランドマーク(例えば、道路セグメントに沿う任意のセマンティックな又は非セマンティックな物体又は特徴)に関連づけられた位置を決定してよい。いくつかの実施形態において、この距離は、ランドマークの画像の分析に基づき、スケーリング法および/またはオプティカルフロー法などの好適な画像分析方法を用いて決定されてよい。前述したように、物体/特徴の位置は、物体/特徴に関連づけられた1つまたは複数の点の2D画像位置(例えば、1つまたは複数の取り込まれた画像におけるX-Y画素位置)を含んでもよく、または、(例えば、LIDARまたはRADAR情報など、モーション/オプティカルフロー手法における構造を通じて判定される)1つまたは複数の点の3Dの実際の位置を含んでもよい。いくつかの実施形態において、開示するシステムおよび方法は、可能性のあるランドマークのタイプまたは分類を決定するように構成されてよい。特定の可能性のあるランドマークがスパースマップに格納された所定のタイプまたは分類に対応すると車両が判定した場合、車両が当該ランドマークのタイプまたは分類のインジケーションをランドマークの位置と共にサーバに伝えるだけで十分であろう。サーバは、そのようなインジケーションを格納してよい。後に、ナビゲーション中、ナビゲート車両がこのランドマークの表現を含む画像を取り込み、当該画像を(例えば、分類器を用いて)処理し、マッピングされたランドマークの検出を検証するために、且つ、スパースマップに対してナビゲート車両の位置を特定する際にマッピングされたランドマークを用いるために、結果として得られるランドマークを比較してもよい。
いくつかの実施形態では、ある道路セグメントを走行する複数の自動運転車がサーバと通信してよい。車両(またはクライアント)は、自車のドライブを(例えば、エゴモーションの集積によって)描く曲線を任意の座標フレームに生成してよい。車両は、ランドマークを検出し、当該ランドマークを同じフレームに配置してよい。車両は、曲線およびランドマークをサーバにアップロードしてよい。サーバは、車両から複数のドライブによるデータを収集し、統合された道路モデルを生成してよい。例えば、図19に関して以下で論じるように、サーバは、アップロードされた曲線およびランドマークを用いて、統合された道路モデルを有するスパースマップを生成してよい。
サーバは、このモデルをクライアント(例えば、車両)に配信してもよい。例えば、サーバはスパースマップを1つまたは複数の車両に配信してよい。サーバは、車両から新たなデータを受信すると、モデルを常にまたは定期的に更新してよい。例えば、サーバは、新たなデータを処理し、サーバでデータの更新または新たなデータの作成を作動させるべき情報が当該データに含まれているかどうかを評価してよい。サーバは、自動運転車ナビゲーションを提供するために、更新されたモデルまたは更新情報を車両に配信してよい。
サーバは、車両から受信した新たなデータがモデルの更新を作動させるのか、または新たなデータの作成を作動させるのかを判定するために、1つまたは複数の基準を用いてよい。例えば、以前に認識した特定の位置にあるランドマークがもはや存在していない、または別のランドマークに置き換えられていることを新たなデータが示している場合、サーバは、新たなデータがモデルの更新を作動させるべきと判定してよい。別の例として、ある道路セグメントが閉鎖されていることを新たなデータが示している場合、且つこのことが他の車両から受信したデータによって裏付けられている場合、サーバは、新たなデータがモデルの更新を作動させるべきと判定してよい。
サーバは、更新したモデル(またはモデルの更新部分)を、モデルの更新が関連づけられている道路セグメントを走行している1つまたは複数の車両に配信してよい。サーバは、モデルの更新が関連づけられている道路セグメントを走行する予定の車両、または当該道路セグメントが自車の移動計画に含まれている車両にも、更新したモデルを配信してよい。例えば、自動運転車が、ある更新に関連づけられている道路セグメントに到達する前に別の道路セグメントに沿って走行している間に、サーバは、当該車両がこの道路セグメントに到達する前に、更新情報または更新したモデルを当該自動運転車に配信してよい。
いくつかの実施形態において、リモートサーバは、複数のクライアント(例えば、共通の道路セグメントに沿って走行する車両)から軌跡およびランドマークを収集してよい。サーバは、ランドマークを用いて曲線を一致させ、複数の車両から収集した軌跡に基づいて平均的な道路モデルを作成してよい。サーバは、道路セグメントの各交点または接続点において、道路のグラフおよび最も可能性の高い経路も計算してよい。例えば、リモートサーバは、収集した軌跡からクラウドソーシングによるスパースマップを生成するために、これらの軌跡を揃えてよい。
サーバは、共通の道路セグメントに沿って走行した複数の車両から受信したランドマークの特性、例えば、複数の車両により測定された、あるランドマークと別のランドマーク(例えば、道路セグメント沿いの直前のランドマーク)との間の距離を平均化して、弧長パラメータを求め、各クライアント車両のために、経路に沿った位置特定および速度較正を支援してよい。サーバは、共通の道路セグメントに沿って走行し且つ同じランドマークを認識した複数の車両により測定されたランドマークの物理的寸法を平均化してよい。平均化した物理的寸法は、車両からランドマークまでの距離といった距離推定を支援するのに用いられてよい。サーバは、共通の道路セグメントに沿って走行し且つ同じランドマークを認識した複数の車両により測定されたランドマークの横方向位置(例えば、車両が走行している車線からランドマークまでの位置)を平均化してよい。平均化した横方向位置は、車線指定を支援するのに用いられてよい。サーバは、同じ道路セグメントに沿って走行し且つ同じランドマークを認識した複数の車両により測定されたランドマークのGPS座標を平均化してよい。平均化したランドマークのGPS座標は、道路モデルにおいて、ランドマークの広範囲な位置特定または測位を支援するのに用いられてよい。
いくつかの実施形態において、サーバは、車両から受信したデータに基づいて、モデルの変更点、例えば、工事、迂回路、新たな標識、標識の除去などを識別してよい。サーバは、車両から新たなデータを受信すると、モデルを常にまたは定期的にまたは即座に更新してよい。サーバは、自動ナビゲーションを提供するために、モデルの更新情報または更新されたモデルを車両に配信してよい。例えば、以下でさらに論じるように、サーバは、車両が検出された「ゴースト」ランドマークを除外するために、クラウドソーシングによるデータを用いてよい。
いくつかの実施形態において、サーバは、自動運転時に運転者の介入を分析してよい。サーバは、介入が行われた時間および場所で車両から受信したデータ、および/または介入が行われた時間の前に受信したデータを分析してよい。サーバは、介入を引き起こした、または介入に密接に関連しているデータ、例えば、一時的な車線通行止めの設定を示すデータ、道路に歩行者がいることを示すデータのある程度の部分を識別してよい。サーバは、識別したデータに基づいてモデルを更新してよい。例えば、サーバは、モデルに格納された1つまたは複数の軌跡を変更してよい。
図12は、クラウドソーシングを用いてスパースマップを生成する(および、クラウドソーシングによるスパースマップを配信し、これを用いてナビゲートする)システムの概略図である。図12は、1つもしくは複数の車線を含む道路セグメント1200を示している。複数の車両1205、1210、1215、1220および、1225は(図12には道路セグメント1200に同時に現れるように示されているが)、道路セグメント1200を同時に走行しても、異なる時間に走行してもよい。車両1205、1210、1215、1220、および1225のうちの少なくとも1つは、自動運転車であってよい。本例を簡単にするために、車両1205、1210、1215、1220、および1225の全てが自動運転車であると仮定する。
各車両は、他の実施形態で開示された車両(例えば、車両200)と同様であってよく、他の実施形態で開示された車両に含まれる、またはその車両に関連する構成要素またはデバイスを含んでもよい。各車両は、画像取り込みデバイスまたはカメラ(例えば、画像取り込みデバイス122またはカメラ122)を備えてよい。各車両は、1つまたは複数のネットワークを介し(例えば、セルラネットワークおよび/またはインターネットなどを介し)、破線で示されている無線通信経路1235を通じてリモートサーバ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の速度に基づいて再構築されてよい。さらに、いくつかの実施形態において、軌跡は(例えば、車両1205、1210、1215、1220、および1225の各々に搭載したプロセッサにより)、3次元並進および/または3次元回転(または回転運動)を示し得る検知されたカメラのエゴモーションに基づいて決定されてよい。カメラ(したがって、車体)のエゴモーションは、カメラが取り込んだ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は、クラウドソーシングによるナビゲーションデータに基づいて決定された複数の軌跡に基づいて、自動運転車向け道路ナビゲーションモデルまたはそのモデルの一部(例えば、更新部分)を生成してよい。サーバ1230は、車両のナビゲーションシステムに提供された既存の自動運転車向け道路ナビゲーションモデルを更新するために、道路セグメント1200を走行する自動運転車1205、1210、1215、1220、および1225のうちの1つもしくは複数、または後に道路セグメントを走行する任意の他の自動運転車に、モデルまたはモデルの更新部分を送信してよい。自動運転車向け道路ナビゲーションモデルは、自動運転車が共通の道路セグメント1200に沿って自律的にナビゲートする際に用いられてよい。
上述したように、自動運転車向け道路ナビゲーションモデルは、スパースマップ(例えば、図8に示すスパースマップ800)に含まれてよい。スパースマップ800は、道路の幾何構造および/または道路沿いのランドマークに関連するデータのスパース記録を含んでよく、これは、自動運転車の自動ナビゲーションを誘導するのに十分な情報を与えることができ、しかも、過度のデータストレージを必要としない。いくつかの実施形態において、自動運転車向け道路ナビゲーションモデルは、スパースマップ800とは別に格納されてよく、ナビゲーションのためにモデルが実行されると、スパースマップ800からのマップデータを用いてよい。いくつかの実施形態において、自動運転車向け道路ナビゲーションモデルは、自動運転車1205、1210、1215、1220、および1225、または後に道路セグメント1200に沿って走行する他の車両の自動ナビゲーションを誘導するために、スパースマップ800に含まれるマップデータを用いて、道路セグメント1200に沿った目標軌跡を決定してよい。例えば、車両1205のナビゲーションシステムに含まれるプロセッサによって自動運転車向け道路ナビゲーションモデルが実行されると、モデルは、車両1205から受信したナビゲーション情報に基づいて決定された軌跡とスパースマップ800に含まれる所定の軌跡とをプロセッサに比較させて、車両1205の現在の走行コースを確認する且つ/または補正してよい。
自動運転車向け道路ナビゲーションモデルでは、道路特徴または目標軌跡の幾何構造は、3次元空間内の曲線によって符号化されてよい。一実施形態において、この曲線は、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に送信してよく、サーバは、位置測定値を平均化し、平均化した位置測定値をランドマークの位置として用いてよい。ランドマークの位置は、その後のドライブで車両から受信する測定値によって常に微調整されてよい。
ランドマークの識別情報には、ランドマークのサイズが含まれてよい。車両(例えば、1205)に設けられたプロセッサは、画像の分析に基づいてランドマークの物理的サイズを推定してよい。サーバ1230は、異なる車両から異なるドライブによる、同じランドマークの物理的サイズに関する複数の推定値を受信してよい。サーバ1230は、ランドマークの物理的サイズに到達するように様々な推定値を平均化し、そのランドマークのサイズを道路モデルに格納してよい。物理的サイズの推定値はさらに、車両からランドマークまでの距離を決定または推定するために用いられてよい。ランドマークまでの距離は、車両の現在の速度と、カメラの拡張焦点に対する画像に現れるランドマークの位置に基づく拡張スケールとに基づいて推定されてよい。例えば、ランドマークまでの距離は、Z=V×dt×R/Dで推定されてよく、ここで、Vは車両の速度であり、Rは時間t1におけるランドマークから拡張焦点までの画像内の距離であり、Dはt1からt2までの画像内のランドマークについての距離の変化である。dtは(t2-t1)を表している。例えば、ランドマークまでの距離は、Z=V×dt×R/Dで推定されてよく、ここで、Vは車両の速度であり、Rはランドマークと拡張焦点との間の画像内の距離であり、dtは時間間隔であり、Dはエピポーラ線に沿ったランドマークの画像変位である。上記の式と等価な他の式、例えば、Z=V×ω/Δωが、ランドマークまでの距離を推定するのに用いられてよい。ここで、Vは車両速度であり、ωは画像長(物体幅のようなもの)であり、Δωは単位時間における画像長の変化である。
ランドマークの物理的サイズが既知である場合、ランドマークまでの距離も、次式、Z=f×W/ωに基づいて決定されてよい。ここで、fは焦点距離であり、Wはランドマークのサイズ(例えば、高さまたは幅)であり、ωはランドマークが画像を離れたときの画素の数である。上記の式から、距離Zの変化が、ΔZ=f×W×Δω/ω2+f×ΔW/ωを用いて計算されてよい。ここで、ΔWは平均化でゼロに減衰し、Δωは画像のバウンディングボックス精度を表す画素の数である。ランドマークの物理的サイズを推定する値が、複数の観測結果をサーバ側で平均化することで計算されてよい。距離推定で結果として生じる誤差は、非常に小さくなり得る。上記の式を用いるときに生じ得る誤差の発生源は2つある。すなわち、ΔWおよびΔωである。距離誤差に対するそれぞれの寄与分は、ΔZ=f×W×Δω/ω2+f×ΔW/ωで与えられる。しかしながら、ΔWは平均化によりゼロに減衰するので、ΔZはΔω(例えば、画像のバウンディングボックスの不正確さ)で求められる。
未知の寸法のランドマークの場合、ランドマークまでの距離は、連続するフレームにわたってランドマーク上の特徴点を追跡することで推定され得る。例えば、制限速度標識上に現れる特定の特徴が2つまたはそれより多くの画像フレームにわたって追跡されてよい。追跡したこれらの特徴に基づいて、特徴点ごとの距離の分布が生成されてよい。距離推定値は、距離の分布から抽出されてよい。例えば、距離の分布に現れる最も頻度が高い距離を、距離推定値として用いてよい。別の例として、距離の分布の平均を距離推定値として用いてよい。
図13は、複数の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を識別することになり得る。しかしながら当業者であれば、他のマッチングアルゴリズムを用いてもよいことを認識するであろう。例えば、一意の一致の代わりに、またはこれと組み合わせて確率最適化を用いてもよい。サーバ1230は、各ドライブを長手方向に揃えて、一致したランドマークを揃えてよい。例えばサーバ1230は、1つのドライブ(例えば、ドライブ1520)を基準ドライブとして選択し、次いで1つまたは複数のその他のドライブ(例えば、ドライブ1510)を揃えるために移動させる且つ/または弾性的に引き延ばしてよい。
図16は、スパースマップに用いるためにランドマークのデータを揃えた一例を示している。図16の例では、ランドマーク1610は道路標識を含む。図16の例はさらに、複数のドライブ1601、1603、1605、1607、1609、1611、および1613からのデータを示している。図16の例では、ドライブ1613からのデータは「ゴースト」ランドマークで構成されており、サーバ1230はこのデータをそのようなものとして識別してよい。なぜならば、ドライブ1601、1603、1605、1607、1609、および1611のどれにも、ドライブ1613で識別されたランドマークの近くにランドマークの識別情報が含まれないからである。したがって、サーバ1230は、ランドマークが現れる画像とランドマークが現れない画像との比率が閾値を超える場合、可能性のあるランドマークを受け入れてよく、且つ/またはランドマークが現れない画像とランドマークが現れる画像との比率が閾値を超える場合、可能性のあるランドマークを排除してよい。
図17は、スパースマップをクラウドソーシングするのに用いられ得る、ドライブデータを生成するためのシステム1700を示している。図17に示すように、システム1700は、カメラ1701と位置特定デバイス1703(例えば、GPSロケータ)を含んでよい。カメラ1701および位置特定デバイス1703は、車両(例えば、車両1205、1210、1215、1220、および1225のうちの1つ)に取り付けられてよい。カメラ1701は、複数のタイプの複数のデータ、例えば、エゴモーションデータ、交通標識データ、または道路データなどを生成してよい。カメラデータおよび位置データは、複数のドライブセグメント1705に分割されてよい。例えば、複数のドライブセグメント1705は各々、1km未満の走行からのカメラデータおよび位置データを有してよい。
いくつかの実施形態において、システム1700は、ドライブセグメント1705の冗長性を取り除いてよい。例えば、カメラ1701からの複数の画像にランドマークが現れる場合、ドライブセグメント1705にはランドマークの位置およびランドマークに関連する任意のメタデータが1部だけ含まれるように、システム1700は冗長なデータを取り除いてよい。さらなる例として、カメラ1701からの複数の画像に車線標示が現れる場合、ドライブセグメント1705には車線標示の位置および車線標示に関連する任意のメタデータが1部だけ含まれるように、システム1700は冗長なデータを取り除いてよい。
システム1700は、サーバ(例えば、サーバ1230)も含む。サーバ1230は、車両からドライブセグメント1705を受信し、これらのドライブセグメント1705を再結合して1つのドライブ1707にしてよい。そのようなやり方によって、車両とサーバとの間でデータを転送するときの帯域幅要件の低減が可能になると共に、サーバがドライブ全体に関連するデータを格納することも可能になり得る。
図18は、さらにスパースマップをクラウドソーシングするように構成された、図17のシステム1700を示す。図17にあるように、システム1700は車両1810を含み、当該車両は、例えば、カメラ(これは例えば、エゴモーションデータ、交通標識データ、または道路データなどを生成する)および位置特定デバイス(例えば、GPSロケータ)を用いてドライブデータを取り込む。図17にあるように、車両1810は、収集したデータを複数のドライブセグメント(図18には「DS1 1」、「DS2 1」、「DSN 1」と示されている)に分割する。サーバ1230は次に、ドライブセグメントを受信し、受信したこれらのセグメントから1つのドライブ(図18には「ドライブ1」と示されている)を再構築する。
図18にさらに示すように、システム1700は追加の車両からもデータを受信する。例えば、車両1820も、例えば、カメラ(これは例えば、エゴモーションデータ、交通標識データ、または道路データなどを生成する)および位置特定デバイス(例えば、GPSロケータ)を用いてドライブデータを取り込む。車両1810と同様に、車両1820は、収集したデータを複数のドライブセグメント(図18には「DS1 2」、「DS2 2」、「DSN 2」と示されている)に分割する。サーバ1230は次に、ドライブセグメントを受信し、受信したこれらのセグメントから1つのドライブ(図18には「ドライブ2」と示されている)を再構築する。任意の数の追加の車両が用いられてよい。例えば、図18は自動車Nも含み、当該自動車は、ドライブデータを取り込み、そのデータを複数のドライブセグメント(図18には「DS1 N」、「DS2 N」、「DSN N」と示されている)に分割し、これらをサーバ1230に送信して1つのドライブ(図18には「ドライブN」と示されている)に再構築する。
図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は、複数の画像に基づいて、道路セグメントに関連づけられる複数のランドマークを識別する段階(段階1915)も含んでよい。例えば、サーバ1230は、カメラ122から受信した環境画像を分析し、道路セグメント1200沿いの道路標識などの1つまたは複数のランドマークを識別してよい。サーバ1230は、1つまたは複数の車両が道路セグメントを通行するときに取得した複数の画像の分析を用いて、ランドマークを識別してよい。クラウドソーシングを可能にするために、分析には、道路セグメントに関連する可能性のあるランドマークを受け入れること、および排除することに関するルールが含まれてよい。例えば、分析には、ランドマークが現れる画像とランドマークが現れない画像との比率が閾値を超える場合、可能性のあるランドマークを受け入れる段階、および/またはランドマークが現れない画像とランドマークが現れる画像との比率が閾値を超える場合、可能性のあるランドマークを排除する段階を含んでよい。
プロセス1900は、サーバ1230により行われる他の操作または段階を含んでよい。例えば、ナビゲーション情報には車両が道路セグメントに沿って走行するための目標軌跡が含まれてよく、プロセス1900は、以下でさらに詳細に論じるように、サーバ1230が道路セグメントを走行する複数の車両に関連する車両軌跡をクラスタ化して、クラスタ化した車両軌跡に基づいて目標軌跡を決定する段階を含んでよい。車両軌跡をクラスタ化する段階は、サーバ1230が、車両の絶対進行方向または車両の車線指定のうちの少なくとも一方に基づいて、道路セグメントを走行する車両に関連する複数の軌跡をクラスタ化して複数のクラスタにする段階を含んでよい。目標軌跡を生成する段階は、サーバ1230が、クラスタ化した軌跡を平均化する段階を含んでよい。さらなる例として、プロセス1900は、段階1905で受信したデータを揃える段階を含んでよい。サーバ1230により行われる他のプロセスまたは段階も、上述したように、プロセス1900に含まれてよい。
開示するシステムおよび方法は、他の特徴を含んでよい。例えば、開示するシステムは、グローバル座標ではなくむしろローカル座標を用いてよい。自動運転の場合、いくつかのシステムは、ワールド座標でデータを示すことがある。例えば、地表面の経度および緯度による座標が用いられてよい。ホスト車両は、マップを操縦に用いるために、マップに対する自車の位置および方位を決定してよい。マップ上で車両を測位するために、且つ本体基準フレームとワールド基準フレーム(例えば、北、東、および南)との間の回転変換を求めるために、搭載されたGPSデバイスを用いるのは自然なことのように思われる。一旦本体基準フレームをマップ基準フレームに揃えると、次に、所望のルートを本体基準フレームで表現することができ、操縦コマンドを計算することも、生成することもできる。
開示するシステムおよび方法は、低フットプリントモデルを用いた自動運転車ナビゲーション(例えば、操縦制御)を可能にしてよく、このモデルは、高価な測量機器の助けを借りることなく、自動運転車そのものによって収集されてよい。自動ナビゲーション(例えば、ステアリングアプリケーション)を支援するために、道路モデルは、モデルに含まれる軌跡に沿った車両の位置または位置を決定するのに用いられ得る道路の幾何構造、その車線構成、およびランドマークを有するスパースマップを含んでよい。上述したように、スパースマップの生成は、道路を走行する車両と通信し且つ車両からデータを受信するリモートサーバにより行われてよい。このデータには、検知データ、検知データに基づいて再構築された軌跡、および/または再構築された軌跡の変更を表し得る推奨軌跡が含まれてよい。以下で論じるように、サーバは、車両または後に道路を走行する他の車両にあらためてモデルを送信して、自動ナビゲーションに役立てることができる。
図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は、メモリ2015のブロック図を示しており、このメモリは、自動運転車ナビゲーションに用いる道路ナビゲーションモデルを生成するのに1つまたは複数の操作を行うためのコンピュータコードまたは命令を格納してよい。図21に示すように、メモリ2015は、車両ナビゲーション情報を処理する操作を行うための1つまたは複数のモジュールを格納してよい。例えば、メモリ2015は、モデル生成モジュール2105とモデル配信モジュール2110とを含んでよい。プロセッサ2020は、メモリ2015に含まれるモジュール2105および2110のうちのいずれかに格納された命令を実行してよい。
モデル生成モジュール2105は命令を格納してよく、この命令は、プロセッサ2020により実行されると、車両1205、1210、1215、1220、および1225から受信したナビゲーション情報に基づいて、共通の道路セグメント(例えば、道路セグメント1200)用の自動運転車向け道路ナビゲーションモデルの少なくとも一部を生成してよい。例えば、自動運転車向け道路ナビゲーションモデルを生成する際に、プロセッサ2020は、共通の道路セグメント1200に沿った車両軌跡を様々なクラスタにクラスタ化してよい。プロセッサ2020は、様々なクラスタの各々のクラスタ化された車両軌跡に基づいて、共通の道路セグメント1200に沿った目標軌跡を決定してよい。そのような操作には、各クラスタにおいて、クラスタ化された車両軌跡の平均軌跡を(例えば、クラスタ化された車両軌跡を表すデータを平均化することにより)求める段階が含まれてよい。いくつかの実施形態において、目標軌跡は、共通の道路セグメント1200の単一の車線に関連づけられてよい。
道路モデルおよび/またはスパースマップは、道路セグメントに関連づけられた軌跡を格納してよい。これらの軌跡は、目標軌跡と呼ばれることがあり、自動ナビゲーションのために自動運転車に提供される。目標軌跡は、複数の車両から受信されてもよく、複数の車両から受信した実際の軌跡または推奨軌跡(一部の変更を伴った実際の軌跡)に基づいて生成されてもよい。道路モデルまたはスパースマップに含まれる目標軌跡は、他の車両から受信した新たな軌跡を用いて常に更新(例えば、平均化)されてよい。
道路セグメントを走行する車両は、様々なセンサでデータを収集してよい。データは、ランドマーク、ロードシグネチャプロファイル、車両の動き(例えば、加速度計データ、速度データ)、車両位置(例えば、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にはさらに、少なくとも1つのプロセッサ2315が含まれてよく、このプロセッサは、GPS信号、スパースマップ800からのマップデータ(このデータは、車両1205に搭載されたストレージデバイスに格納されてもよく且つ/またはサーバ1230から受信されてもよい)、道路プロファイルセンサ2330により検知された道路の幾何構造、カメラ122により取り込まれた画像、並びに/またはサーバ1230から受信した自動運転車向け道路ナビゲーションモデルなどのデータを処理するように構成される。道路プロファイルセンサ2330には、路面凹凸、道路幅、道路標高、道路曲率などといった異なるタイプの道路プロファイルを測定するための、異なるタイプのデバイスが含まれてよい。例えば、道路プロファイルセンサ2330には、道路凹凸プロファイルを得るために、車両2305のサスペンションの動きを測定するデバイスが含まれてよい。いくつかの実施形態において、道路プロファイルセンサ2330には、車両1205から路側部(例えば、路側部の障壁)までの距離を測定するレーダーセンサが含まれてよく、これにより、道路の幅が測定される。いくつかの実施形態において、道路プロファイルセンサ2330には、道路の標高の上昇および下降を測定するように構成されたデバイスが含まれてよい。いくつかの実施形態において、道路プロファイルセンサ2330には、道路曲率を測定するように構成されたデバイスが含まれてよい。例えば、カメラ(例えば、カメラ122または別のカメラ)を用いて、道路曲率を示す道路の画像を取り込んでもよい。車両1205は、そのような画像を用いて、道路曲率を検出してよい。
少なくとも1つのプロセッサ2315は、車両1205に関連する少なくとも1つの環境画像をカメラ122から受信するようにプログラムされてよい。少なくとも1つのプロセッサ2315は、少なくとも1つの環境画像を分析して、車両1205に関連するナビゲーション情報を特定してよい。ナビゲーション情報には、道路セグメント1200に沿った車両1205の走行に関連する軌跡が含まれてよい。少なくとも1つのプロセッサ2315は、カメラ122(したがって車両)の動き、例えば、3次元並進運動および3次元回転運動などに基づいて軌跡を決定してよい。いくつかの実施形態において、少なくとも1つのプロセッサ2315は、カメラ122が取得した複数の画像の分析に基づいて、カメラ122の並進運動および回転運動を特定してよい。いくつかの実施形態において、ナビゲーション情報には、車線指定情報(例えば、車両1205が道路セグメント1200に沿ってどの車線を走行するか)が含まれてよい。車両1205からサーバ1230に送信されるナビゲーション情報は、サーバ1230が自動運転車向け道路ナビゲーションモデルを生成する且つ/または更新するのに用いられてよく、この情報は、自動ナビゲーションガイダンスを車両1205に提供するために、あらためてサーバ1230から車両1205に送信されてよい。
少なくとも1つのプロセッサ2315は、車両1205からサーバ1230にナビゲーション情報を送信するようにもプログラムされてよい。いくつかの実施形態において、ナビゲーション情報は、道路情報と共にサーバ1230に送信されてよい。道路位置情報には、GPSユニット2310が受信するGPS信号、ランドマーク情報、道路の幾何構造、車線情報などのうちの少なくとも1つが含まれてよい。少なくとも1つのプロセッサ2315は、自動運転車向け道路ナビゲーションモデルまたはそのモデルの一部をサーバ1230から受信してよい。サーバ1230から受信する自動運転車向け道路ナビゲーションモデルには、車両1205からサーバ1230に送信されたナビゲーション情報に基づく少なくとも1つの更新が含まれてよい。サーバ1230から車両1205に送信されるモデルの一部には、モデルの更新部分が含まれてよい。少なくとも1つのプロセッサ2315は、受信した自動運転車向け道路ナビゲーションモデルまたはモデルの更新部分に基づいた、車両1205による少なくとも1つのナビゲーション操作(例えば、旋回を行う、ブレーキをかける、加速する、別の車両を追い越すなどといった操縦)を発生させてよい。
少なくとも1つのプロセッサ2315は、車両1205に含まれる様々なセンサおよび構成要素と通信するように構成されてよく、そのようなセンサおよび構成要素には、通信ユニット1705、GPSユニット2315、カメラ122、速度センサ2320、加速度計2325、および道路プロファイルセンサ2330が含まれる。少なくとも1つのプロセッサ2315は、様々なセンサおよび構成要素から情報またはデータを収集して、その情報またはデータをサーバ1230に通信ユニット2305を介して送信してよい。その代わりに、またはそれに加えて、車両1205の様々なセンサまたは構成要素も、サーバ1230と通信して、センサまたは構成要素が収集したデータまたは情報をサーバ1230に送信してよい。
いくつかの実施形態において、車両1205、1210、1215、1220、および1225は互いに通信してよく、ナビゲーション情報を互いに共有してよい。これにより、車両1205、1210、1215、1220、および1225のうちの少なくとも1つが、クラウドソーシングを用いて、例えば、他の車両により共有された情報に基づいて、自動運転車向け道路ナビゲーションモデルを生成してよい。いくつかの実施形態において、車両1205、1210、1215、1220、および1225は、互いにナビゲーション情報を共有してよく、各車両は各車両に提供された自車の自動運転車向け道路ナビゲーションモデルを更新してよい。いくつかの実施形態において、車両1205、1210、1215、1220、および1225のうちの少なくとも1つ(例えば、車両1205)が、ハブ車両として機能してよい。ハブ車両(例えば、車両1205)の少なくとも1つのプロセッサ2315は、サーバ1230により行われる機能の一部または全部を果たしてよい。例えば、ハブ車両の少なくとも1つのプロセッサ2315は、他の車両と通信して、他の車両からナビゲーション情報を受信してよい。ハブ車両の少なくとも1つのプロセッサ2315は、他の車両から受信した共有情報に基づいて、自動運転車向け道路ナビゲーションモデルまたはモデルの更新を生成してよい。ハブ車両の少なくとも1つのプロセッサ2315は、自動ナビゲーションガイダンスを提供するために、自動運転車向け道路ナビゲーションモデルまたはモデルの更新を他の車両に送信してよい。
[スパースマップに基づくナビゲーション]
前述したように、スパースマップ800を含む自動運転車向け道路ナビゲーションモデルには、道路セグメントに関連づけられた、複数のマッピングされた車線標示、および、複数のマッピングされた物体/特徴が含まれてよい。以下でより詳細に論じるように、これらのマッピングされた車線標示、物体および特徴は、自動運転車がナビゲートするときに用いられてよい。例えば、いくつかの実施形態において、マッピングされた物体および特徴は、マップに対して(例えば、マッピングされた目標軌跡に対して)ホスト車両の位置を特定するのに用いられてよい。マッピングされた車線標示は、計画された軌跡又は目標軌跡に対する横方向位置および/または方位を決定するのに、(例えばチェックとして)用いられてよい。この位置情報を用いて、自動運転車は、決定位置において、目標軌跡の方向と一致するように進行方向を調整することが可能になり得る。
車両200は、所与の道路セグメントにおいて車線標示を検出するように構成されてよい。道路セグメントには、車道の車両交通を誘導するための、道路上のあらゆる標示が含まれてよい。例えば、車線標示は、走行車線のエッジを画定する実線または破線であってよい。車線標示には、例えば、隣接車線で追い越しが許可されているかどうかを示す、二重実線、二重破線、または実線と破線との組み合わせなどの二重線も含まれてよい。車線標示には、高速道路の入口および出口の標示も含まれてよく、この標示は、例えば、出口ランプ用の減速車線、または車線が旋回専用であること、もしくは車線が終了することを示す点線を示している。これらの標示はさらに、作業区間、一時的な車線移動、交差点を通り抜ける経路、中央分離帯、専用車線(例えば、自転車専用車線、HOV車線など)、または他の様々な標示(例えば、横断歩道、車両減速用ハンプ、踏切、一時停止線など)を示してよい。
車両200は、画像取得ユニット120に含まれる画像取り込みデバイス122および124などのカメラを用いて、周辺の車線標示の画像を取り込んでよい。車両200は、これらの画像を分析して、取り込まれた画像のうちの1つまたは複数で識別された特徴に基づいて、車線標示に関連する点の位置を検出してよい。これらの点の位置は、スパースマップ800に車線標示を表すために、サーバにアップロードされてよい。カメラの位置および視野に応じて、単一の画像から車両の両側の車線標示が同時に検出されることがある。他の実施形態では、車両の複数の面に取り付けた様々なカメラを用いて、画像を取り込むことがある。車線標示の実画像をアップロードするのではなくむしろ、これらの標示は、スプラインまたは一連の点としてスパースマップ800に格納されてよく、したがって、車両が遠隔にアップロードする必要があるスパースマップ800および/またはデータのサイズが削減される。
図24A~図24Dは、車両200により検出され得る、特定の車線標示を表すための例示的な点の位置を示している。上述したランドマークと同様に、車両200は様々な画像認識アルゴリズムまたはソフトウェアを用いて、取り込まれた画像内の点の位置を識別してよい。例えば、車両200は、特定の車線標示に関連づけられる一連のエッジ点、コーナー点、または様々な他の点の位置を認識してよい。図24Aは、車両200により検出され得る実線車線標示2410を示している。車線標示2410は、車道の外側エッジを表し、実線の白線で表されてよい。図24Aに示すように、車両200は、車線標示に沿った複数のエッジ位置点2411を検出するように構成されてよい。これらの位置点2411は、スパースマップにおいてマッピングされた車線標示を作成するのに十分な任意の間隔で車線標示を表すように収集されてよい。例えば、車線標示は、検出されたエッジの1メートルごとに1つの点、検出されたエッジの5メートルごとに1つの点、または他の好適な間隔で表されてよい。いくつかの実施形態において、この間隔は、例えば、車両200が検出点の位置に関する最高信頼度ランキングを有する点に基づくなどの所定の間隔ではなくむしろ、他の要因で決定されてもよい。図24Aは、車線標示2410の内側エッジ上のエッジ位置点を示しているが、点は線の外側エッジ上で、または両方のエッジに沿って収集されてもよい。さらに、図24Aには1つの線が示されているが、二重実線についても同様のエッジ点が検出されてよい。例えば、点2411が実線の一方または両方のエッジに沿って検出されてよい。
車両200は、車線標示のタイプまたは形状に応じて、車線標示も違うように表してよい。図24Bは、車両200により検出され得る例示的な破線車線標示2420を示している。図24Aにあるようにエッジ点を識別するのではなくむしろ、車両は、破線の全境界を画定する車線破線のコーナーを表す一連のコーナー点2421を検出してよい。図24Bは、所与の破線標示の各コーナーが位置特定されていることを示しているが、車両200は、図に示すこれらの点のサブセットを検出しても、アップロードしてもよい。例えば、車両200は、所与の破線標示の先頭エッジまたは先頭コーナーを検出してもよく、車線の内側に最も近い2つのコーナー点を検出してもよい。さらに、全ての破線標示を取り込まなくてもよく、例えば、車両200は、破線標示のサンプル(例えば、1つおき、3つごと、5つごとなど)を表す点、または所定の間隔(例えば、1メートルごと、5メートルごと、10メートルごとなど)で破線標示を表す点を取り込む且つ/または記録してよい。同様な車線標示、例えば、ある車線が出口ランプ用であること、特定の車線が終了することを示す標示、または検出可能なコーナー点を有し得る他の様々な車線標示についても、コーナー点が検出されてよい。二重破線または実線と破線との組み合わせで構成される車線標示についても、コーナー点が検出されてよい。
いくつかの実施形態において、マッピングされた車線標示を生成するためにサーバにアップロードされた点は、検出されたエッジ点またはコーナー点のほかに他の点を表してよい。図24Cは、所与の車線標示の中心線を表し得る一連の点を示している。例えば、実線車線2410は、車線標示の中心線2440に沿った中心線点2441で表されてよい。いくつかの実施形態において、車両200は、これらの中心点を様々な画像認識手法を用いて検出するように構成されてよく、そのような手法には、畳み込みニューラルネットワーク(CNN)、スケール不変特徴変換(SIFT)、勾配方向ヒストグラム(HOG)特徴、または他の手法などがある。あるいは、車両200は、図24Aに示すエッジ点2411などの他の点を検出してよく、また、例えば、各エッジに沿った点を検出してエッジ点間の中点を求めることにより、中心線点2441を計算してよい。同様に、破線車線標示2420は、車線標示の中心線2450に沿った中心線点2451で表されてよい。中心線点は、図24Cに示すように破線のエッジに配置されても、中心線に沿った様々な他の場所に配置されてもよい。例えば、各破線は、破線の幾何中心に1つの点で表されてよい。各点は、中心線に沿って所定の間隔を空けて配置されてもよい(例えば、1メートルごと、5メートルごと、10メートルごとなど)。中心線点2451は、車両200により直接的に検出されてもよく、図24Bに示すように、コーナー点2421などの他の検出された基準点に基づいて計算されてもよい。上記と同様の手法を用いて、二重線などの他の車線標示タイプを表すのにも中心線が用いられてよい。
いくつかの実施形態において、車両200は、2つの交差する車線標示間の交点などの、他の特徴を表している点を識別してよい。図24Dは、2つの車線標示2460と2465との交差点を表す例示的な点を示している。車両200は、2つの車線標示間の交差点を表している交点2466を計算してよい。例えば、車線標示2460または2465のうちの一方が、道路セグメント内の列車の交差領域または他の交差領域を表してよい。車線標示2460および2465は互いに垂直に交差しているように示されているが、様々な他の構成が検出されてもよい。例えば、車線標示2460および2465は他の角度で交差してもよく、これらの車線標示の一方または両方が交点2466で終了してもよい。同様の手法が、破線または他の車線標示タイプ同士の交差点にも適用されてよい。交点2466に加えて、車線標示2460および2465の方位に関するさらなる情報を提供する様々な他の点2467も検出されてよい。
車両200は、実際の座標を車線標示の各々の検出点に関連づけてよい。例えば、各点の座標を含む位置識別子を生成して、車線標示をマッピングするためにサーバにアップロードしてよい。位置識別子はさらに、これらの点がコーナー点を表すのか、エッジ点を表すのか、中心点を表すのかなどを含む、これらの点に関する他の識別情報を含んでよい。したがって、車両200は、画像の分析に基づいて、各点の実際の位置を決定するように構成されてよい。例えば、車両200は、上述した様々なランドマークなどの画像内の他の特徴を検出して、車線標示の実際の位置を特定してよい。これには、検出されたランドマークに対する画像内の車線標示の位置を決定すること、または検出されたランドマークに基づいて車両の位置を決定し、次いで車両(または車両の目標軌跡)から車線標示までの距離を決定することが含まれてよい。ランドマークが利用できない場合、車線標示点の位置は、推測航法に基づいて決定された車両の位置に対して決定されてよい。位置識別子に含まれる実際の座標は、絶対座標(例えば、緯度/経度による座標)として表されてもよく、目標軌跡に沿った縦方向位置と目標軌跡からの横方向距離とに基づくなどの、他の特徴に関連してもよい。位置識別子は次に、ナビゲーションモデル(スパースマップ800など)においてマッピングされた車線標示を生成するために、サーバにアップロードされてよい。いくつかの実施形態において、サーバは、道路セグメントの車線標示を表すスプラインを構築してよい。あるいは、車両200はスプラインを生成して、このスプラインがナビゲーションモデルに記録されるように、サーバにアップロードしてよい。
図24Eは、マッピングされた車線標示を含む対応する道路セグメントの例示的なナビゲーションモデルまたはスパースマップを示している。スパースマップは、車両が道路セグメントに沿って進むための目標軌跡2475を含んでよい。上述したように、目標軌跡2475は、車両が対応する道路セグメントを走行するときに通る理想的な経路を表してもよく、道路上の他の箇所(例えば、道路の中心線など)に位置してもよい。目標軌跡2475は、例えば、同じ道路セグメントを通行する車両の2つまたはそれより多くの再構築された軌跡の集合体(例えば、重みづけした組み合わせ)に基づいて、上述した様々な方法で計算されてよい。
いくつかの実施形態において、目標軌跡は、全ての車両タイプおよび全ての道路、車両、並びに/または環境状態に対して等しく生成されてよい。しかしながら、他の実施形態では、様々な他の要因または変数も、目標軌跡を生成する際に考慮されてよい。異なるタイプの車両(例えば、自家用車、軽トラック、およびフルトレーラ)には異なる目標軌跡が生成されてよい。例えば、比較的小さい旋回半径を有する目標軌跡が、大型のセミトレーラートラックではなく、小型の自家用車用に生成されてよい。いくつかの実施形態では、道路、車両、および環境状態も考慮されてよい。例えば、異なる道路状態(例えば、ぬれている、雪が積もっている、凍結している、乾いているなど)、車両状態(例えば、タイヤ状態または推定したタイヤ状態、ブレーキ状態または推定したブレーキ状態、燃料の残量など)、または環境要因(例えば、時刻、視認性、天候など)に対して異なる目標軌跡が生成されてよい。目標軌跡は、特定の道路セグメントの1つまたは複数の態様または特徴(例えば、制限速度、旋回の頻度およびサイズ、勾配など)にも依存してよい。いくつかの実施形態において、設定運転モード(例えば、所望の運転積極性、エコノミーモードなど)などの様々なユーザ設定も、目標軌跡を決定するのに用いられてよい。
スパースマップは、道路セグメントに沿った車線標示を表すマッピングされた車線標示2470および2480も含んでよい。マッピングされた車線標示は、複数の位置識別子2471および2481で表されてよい。上述したように、位置識別子は、検出された車線標示に関連づけられた点の実際の座標における位置を含んでよい。モデル内の目標軌跡と同様に、車線標示も標高データを含んでよく、3次元空間の曲線として表されてよい。例えば、この曲線は、好適な次数の3次元多項式を接続したスプラインであってよく、この曲線は位置識別子に基づいて計算されてよい。マッピングされた車線標示も、車線標示のタイプ(例えば、同じ走行方向の2つの車線間、反対の走行方向の2つの車線間、車道のエッジなど)の識別子、および/または車線標示の他の特性(例えば、実線、破線、1つの線、二重線、黄色線、白線など)などの、車線標示に関する他の情報またはメタデータを含んでよい。いくつかの実施形態において、マッピングされた車線標示は、例えば、クラウドソーシング手法を用いて、モデル内で常に更新されてよい。同じ車両は、同じ道路セグメントを走行するという複数の機会において位置識別子をアップロードしてもよく、道路セグメントを異なる時間に走行する複数の車両(1205、1210、1215、1220、および1225など)からデータが選択されてもよい。スパースマップ800は次に、車両から受信され且つシステムに格納される、その後の位置識別子に基づいて更新されても、微調整されてもよい。マッピングされた車線標示が更新され、微調整されると、更新された道路ナビゲーションモデルおよび/またはスパースマップは、複数の自動運転車に配信されてよい。
スパースマップにおけるマッピングされた車線標示の生成には、画像または実際の車線標示そのものに含まれる異常に基づいた誤りの検出および/または軽減も含まれてよい。図24Fは、車線標示2490の検出に関連した例示的な異常2495を示している。異常2495は、例えば、車線標示に関するカメラの視界を遮る物体、レンズに付着したゴミなどによって、車両200により取り込まれた画像に現れることがある。場合によっては、異常が車線標示そのものに起因していることがあり、車線標示が傷んでいるもしくは摩耗している、または、例えば、土、ゴミ、水、雪、もしくは道路上の他の物質で部分的に覆われている場合がある。異常2495によって、間違った点2491が車両200により検出されることになり得る。スパースマップ800は、マッピングされた車線標示を補正し、誤りを排除してよい。いくつかの実施形態において、車両200は、例えば、画像内の異常2495を検出することで、または異常の前後で検出された車線標示点に基づいて誤りを識別することで、間違った点2491を検出してよい。異常の検出に基づいて、車両は、点2491を除外してもよく、この点を他の検出点に従うように調整してもよい。他の実施形態では、この点がアップロードされた後に、例えば、同じ移動中にアップロードされた他の点に基づいて、または同じ道路セグメントに沿った以前の移動からのデータの集合体に基づいて、この点が予期される閾値から外れていると判定することにより、誤りを補正してよい。
ナビゲーションモデルおよび/またはスパースマップにおいてマッピングされた車線標示は、対応する車道を通行する自動運転車によるナビゲーションにも用いられてよい。例えば、目標軌跡に沿ってナビゲートする車両が、スパースマップにおけるマッピングされた車線標示を定期的に用いて、この車線標示そのものを目標軌跡と揃えてよい。上述したように、ランドマーク間では、車両は推測航法に基づいてナビゲートすることができ、推測航法では、車両がセンサを用いて自車のエゴモーションを特定し、目標軌跡に対する自車の位置を推定する。誤差が時間の経過と共に累積され得るため、目標軌跡に対する車両の位置決定の精度が次第に低くなることがある。したがって、車両はスパースマップ800に存在する車線標示(および、その既知の位置)を用いて、位置決定での推測航法による誤差を低減することができる。このように、スパースマップ800に含まれる識別された車線標示は、目標軌跡に対する車両の正確な位置を決定し得るナビゲーションの要としての役割を果たすことができる。
図25Aは、マッピングされた車線標示に基づく、ナビゲーションに用いられ得る、車両の周辺環境の例示的な画像2500を示している。画像2500は、例えば、画像取得ユニット120に含まれる画像取り込みデバイス122および124を介して車両200により取り込まれてよい。画像2500には、図25Aに示すように、少なくとも1つの車線標示2510の画像が含まれてよい。画像2500には、上述したナビゲーションに用いられる道路標識などの、1つまたは複数のランドマーク2521も含まれてよい。取り込まれた画像2500には現れないが、車両200により検出される且つ/または特定される要素2511、2530、および2520などの図25Aに示す一部の要素も、参照のために示されている。
図24A~図24Dおよび図24Fに関して上述した様々な手法を用いて、車両が画像2500を分析し、車線標示2510を識別してよい。画像内の車線標示の特徴に対応する様々な点2511が、検出されてよい。例えば、点2511は、車線標示のエッジ、車線標示のコーナー、車線標示の中点、2つの交差する車線標示同士の交点、または様々な他の特徴または位置に対応してよい。サーバから受信したナビゲーションモデルに格納された点の位置に対応する点2511が検出されてよい。例えば、マッピングされた車線標示の中心線を表す点を含むスパースマップが受信された場合、点2511も、車線標示2510の中心線に基づいて検出されてよい。
車両は、要素2520で表され且つ目標軌跡に沿って位置する縦方向位置も決定してよい。縦方向位置2520は、例えば、画像2500内のランドマーク2521を検出して、測定した位置と道路モデルまたはスパースマップ800に格納された既知のランドマークの位置とを比較することにより、画像2500から決定されてよい。目標軌跡に沿った車両の位置は次に、ランドマークまでの距離とランドマークの既知の位置とに基づいて決定されてよい。縦方向位置2520は、車線標示の位置を決定するのに用いられる画像以外の画像からも決定されてよい。例えば、縦方向位置2520は、画像取得ユニット120内の他のカメラから同時にまたはほぼ同時に画像2500を撮った画像に含まれるランドマークを検出することによって決定されてよい。場合によっては、車両は、縦方向位置2520を決定するための、いかなるランドマークの近くにも、他の基準点の近くにもいないことがある。そのような場合、車両は推測航法に基づいてナビゲートしてよく、したがって、センサを用いて自車のエゴモーションを特定し、目標軌跡に対する縦方向位置2520を推定してよい。車両は、車両と、1つまたは複数の取り込まれた画像内で観測される車線標示2510との間の実際の距離を表す距離2530も決定してよい。カメラアングル、車両の速度、車両の幅、または様々な他の要因が、距離2530を決定する際に考慮されてよい。
図25Bは、道路ナビゲーションモデルにおけるマッピングされた車線標示に基づく、車両の横方向位置特定の補正を示している。上述したように、車両200は、車両200により取り込まれた1つまたは複数の画像を用いて、車両200と車線標示2510との間の距離2530を決定してよい。車両200は、マッピングされた車線標示2550および目標軌跡2555を含み得るスパースマップ800などの道路ナビゲーションモデルにもアクセスできてよい。マッピングされた車線標示2550は、上述した手法を用いてモデル化されてよく、例えば、複数の車両により取り込まれたクラウドソーシングによる位置識別子を用いる。目標軌跡2555は、上述した様々な手法を用いて生成されてもよい。車両200は、図25Aに関して上述したように、目標軌跡2555に沿った縦方向位置2520も決定または推定してよい。車両200は次に、目標軌跡2555と、縦方向位置2520に対応するマッピングされた車線標示2550との間の横方向距離に基づいて、予期される距離2540を決定してよい。車両200の横方向位置特定は、1つまたは複数の取り込まれた画像を用いて測定された実際の距離2530と、モデルからの予期される距離2540とを比較することにより、補正されても調整されてもよい。
図25Cおよび25Dは、ナビゲーション中にスパースマップにおけるマッピングされたランドマーク/物体/特徴に基づいてホスト車両の位置を特定する別の例に関連する図を提供する。図25Cは、道路セグメント2560に沿ってナビゲートしている車両から取り込まれた一連の画像を概念的に表す。この例では、道路セグメント2560は、道路エッジ2561および2562ならびに中央車線標示2563によって記述された、2車線に分割されている高速道路の直線部分を含む。示されるように、ホスト車両は、マッピングされた目標軌跡2565に関連する車線2564に沿ってナビゲートしている。したがって、理想的な状況(且つ、車道に対象車両または物体が存在することなどのインフルエンサがない場合)において、ホスト車両は、道路セグメント2560の車線2564に沿ってナビゲートするので、マッピングされた目標軌跡2565を近くで追跡するべきである。現実では、ホスト車両は、マッピングされた目標軌跡2565に沿ってナビゲートするので、ドリフトを経験してもよい。効果的且つ安全なナビゲーションのために、このドリフトは、許容限界の範囲内(例えば、目標軌跡2565から+/-10cmの横方向変位、または、任意の他の好適な閾値)で維持されるべきである。定期的にドリフトを考慮に入れ、且つ、必要とされる任意のコース補正を行って、ホスト車両が目標軌跡2565を進むことを確保するべく、開示されるナビゲーションシステムは、スパースマップに含まれる1つまたは複数のマッピングされた特徴/物体を使用して、目標軌跡2565に沿うホスト車両の位置を特定すること(例えば、目標軌跡2565に関連するホスト車両の横方向および縦方向位置を特定すること)が可能であってもよい。
簡単な例として、図25Cは、ホスト車両が道路セグメント2560に沿ってナビゲートするに連れて順次に取り込まれた5つの様々な画像に現れ得るような制限速度標識2566を示す。例えば、第1の時間、t0において、標識2566は、取り込まれた画像において、水平線の近くに現れ得る。ホスト車両が標識2566に近づくので、その後の時間t1、t2、t3およびt4で取り込まれた画像では、標識2566は取り込まれた画像の異なる2D X-Y画素位置に現れるであろう。例えば、取り込まれた画像空間において、標識2566は、下方へ、且つ、カーブ2567(例えば、5つの取り込まれた画像フレームの各々において、標識の中心を通って延びるカーブ)に沿って右へ移動するであろう。標識2566は、ホスト車両が近づくに連れてサイズが大きくなるようにも見えるであろう(すなわち、次に取り込まれた画像において多数の画素を占有するであろう)。
標識2566のような物体の画像空間表現におけるこれらの変化は、目標軌跡に沿う位置を特定されたホスト車両の位置を決定するのに活用されてもよい。例えば、本開示で説明されるように、標識2566のようなセマンティックな特徴や、検出可能且つ非セマンティックな特徴などの、任意の検出可能な物体または特徴が、以前に道路セグメント(例えば道路セグメント2560)を行き来した1つまたは複数の収集車両によって識別されてもよい。マッピングサーバが、複数の車両から収集されたドライブ情報を収集し、その情報を集約して関連づけ、且つ、例えば道路セグメント2560の車線2564用の目標軌跡2565を含むスパースマップを生成してもよい。スパースマップはまた、標識2566の位置も(タイプ情報などと共に)格納してよい。ナビゲーション中に(例えば道路セグメント2560に入る前に)、ホスト車両は、道路セグメント2560用のスパースマップを含むマップタイルを供給されてもよい。道路セグメント2560の車線2564においてナビゲートするべく、ホスト車両は、マッピングされた目標軌跡2565を進んでもよい。
標識2566のマッピングされた表現は、ホスト車両によって、目標軌跡に関連する、それ自身の位置を特定するのに使用されてもよい。例えば、ホスト車両上のカメラが、ホスト車両の環境の画像2570を取り込むこととなり、その取り込まれた画像2570は、図25Dに示されるように、特定のサイズおよび特定のX-Y画像位置を有する標識2566の画像表現を含んでもよい。このサイズおよびX-Y画像位置は、目標軌跡2565に関連するホスト車両の位置を特定するのに使用されることができる。例えば、標識2566の表現を含むスパースマップに基づいて、ホスト車両のナビゲーションプロセッサは、ホスト車両が目標軌跡2565に沿って走行していることに応答して、取り込まれた画像において、標識2566の中心がライン2567に沿って(画像空間内で)移動するように標識2566の表現が見えるべきであると決定することができる。画像2570などの取り込まれた画像が、ライン2567(例えば予期されている画像空間軌跡)からずらされた中心(または他の基準点)を示しているならば、次に、ホスト車両ナビゲーションシステムは、取り込まれた画像の時間において、目標軌跡2565上に配置されていなかったと決定することができる。しかしながら、ナビゲーションプロセッサは、画像から、ホスト車両を目標軌跡2565に戻すのに適切なナビゲーション補正を決定することができる。例えば、画像においてライン2567上の予期されている画像空間位置の左へと距離2572だけずらされている標識2566の画像位置が分析結果に示されているならば、ナビゲーションプロセッサは次に、ホスト車両に進行変更をさせて(例えばハンドルのステアリング角を変更させて)、ホスト車両を距離2573だけ左に移動させてもよい。このように、各々の取り込まれた画像は、フィードバックループプロセスの一部として使用されることができ、その結果、標識2566の観測された画像位置と予期されている画像軌跡2567との間の差異が最小限に抑えられて、ホスト車両がほとんど逸脱することなく目標軌跡2565に沿い続けることを確保してもよい。当然ながら、利用できるマッピングされた物体が多ければ多いほど、説明された位置特定手法はより頻繁に使用され得、これは、目標軌跡2565からのドリフトによる逸脱を低減または解消することができる。
上述した処理は、目標軌跡に関連するホスト車両の横方向の方位または変位を検出するのに有用かもしれない。目標軌跡2565に関連するホスト車両の位置特定はまた、目標軌跡に沿う対象車両の縦方向位置の判定も含んでよい。例えば、取り込まれた画像2570は、特定の画像サイズ(例えば、2D X-Y画素領域)を有するような標識2566の表現を含む。ライン2567に沿う画像空間を通って走行するので(例えば、図25Cに示されるように、標識のサイズは漸進的に増加するので)、このサイズは、マッピングされた標識2566の予期されている画像サイズと比べられることができる。画像2570における標識2566の画像サイズに基づいて、且つ、マッピングされた目標軌跡2565に関連する画像空間中の予期されているサイズプログレッションに基づいて、ホスト車両は、(画像2570が取り込まれた時間の)目標軌跡2565に対する縦方向位置を特定することができる。この、目標軌跡2565に対する任意の横方向変位と結合される縦方向位置は、上述した通り、ホスト車両が道路2560に沿ってナビゲートするので、目標軌跡2565に関連するホスト車両の全位置特定を可能にする。
図25Cおよび25Dは、1つのマッピングされた物体および1つの目標軌跡を使用する、開示される位置特定手法の単なる一例を提供する。他の例では、ずっとより多くの目標軌跡(例えば、複数車線高速道路、都市街路、複雑な交差点などの、各々の実現可能な車線ごとに1つの目標軌跡)が存在してもよく、且つ、ずっとより多くの、位置特定に利用できるマッピングされたものが存在してもよい。例えば、都市環境を表すスパースマップは、1メートルごとに、位置特定に利用できる多数の目的を含んでもよい。
図26Aは、開示する実施形態と矛盾しない、自動運転車ナビゲーションに用いるための車線標示をマッピングする例示的なプロセス2600Aを示すフローチャートである。段階2610において、プロセス2600Aは、検出された車線標示に関連づけられた2つまたはそれより多くの位置識別子を受信する段階を含んでよい。例えば、段階2610は、サーバ1230またはサーバに関連づけられた1つまたは複数のプロセッサにより行われてよい。位置識別子には、図24Eに関して上述したように、検出された車線標示に関連づけられた点の実際の座標における位置が含まれてよい。いくつかの実施形態において、位置識別子は道路セグメントまたは車線標示に関する追加の情報などの、他のデータも含まれてよい。追加のデータ、例えば、加速度計データ、速度データ、ランドマークデータ、道路の幾何構造もしくはプロファイルデータ、車両測位データ、エゴモーションデータ、または上述した様々な他の形式のデータも、段階2610で受信されてよい。位置識別子は、車両1205、1210、1215、1220、および1225などの車両により、この車両が取り込んだ画像に基づいて生成されてよい。例えば、識別子は、ホスト車両に関連づけられたカメラからの、ホスト車両の環境を表す少なくとも1つの画像の取得と、ホスト車両の環境に含まれる車線標示を検出するための少なくとも1つの画像の分析と、ホスト車両に関連づけられた位置に対する検出された車線標示の位置を決定するための少なくとも1つの画像の分析とに基づいて決定されてよい。上述したように、車線標示には様々な異なる標示タイプが含まれてよく、位置識別子は車線標示に関連する様々な点に対応してよい。例えば、検出された車線標示が車線境界を表す破線標示の一部である場合、これらの点は、検出された車線標示のコーナーに対応してよい。検出された車線標示が車線境界を表す実線標示の一部である場合、これらの点は、上述した様々な間隔で検出された車線標示のエッジに対応してよい。いくつかの実施形態において、これらの点は、図24Cに示すように、検出された車線標示の中心線に対応してもよく、図24Dに示すように、2つの交差する車線標示同士の交点と、交差する車線標示に関連づけられた少なくとも一方の他の2つの点とに対応してもよい。
段階2612において、プロセス2600Aは、検出された車線標示を、対応する道路セグメントに関連づける段階を含んでよい。例えば、サーバ1230は、段階2610で受信した実際の座標または他の情報を分析し、この座標または他の情報と、自動運転車向け道路ナビゲーションモデルに格納された位置情報とを比較してよい。サーバ1230は、車線標示が検出された実際の道路セグメントに対応するモデルにおいて、道路セグメントを決定してよい。
段階2614において、プロセス2600Aは、検出された車線標示に関連づけられた2つまたはそれより多くの位置識別子に基づいて、対応する道路セグメントに関連する自動運転車向け道路ナビゲーションモデルを更新する段階を含んでよい。例えば、自動道路ナビゲーションモデルはスパースマップ800であってよく、サーバ1230は、スパースマップを更新して、マッピングされた車線標示をモデルに含めても、これを調整してもよい。サーバ1230は、図24Eに関して上述した様々な方法またはプロセスに基づいてモデルを更新してよい。いくつかの実施形態において、自動運転車向け道路ナビゲーションモデルを更新する段階には、検出された車線標示の実際の座標における位置の1つまたは複数の指標を格納することが含まれてよい。自動運転車向け道路ナビゲーションモデルには、図24Eに示すように、車両が対応する道路セグメントに沿って進むための少なくとも1つの目標軌跡も含まれてよい。
段階2616において、プロセス2600Aは、更新した自動運転車向け道路ナビゲーションモデルを複数の自動運転車に配信する段階を含んでよい。例えば、サーバ1230は、更新した自動運転車向け道路ナビゲーションモデルを、ナビゲーションのためにこのモデルを用い得る車両1205、1210、1215、1220、および1225に配信してよい。自動運転車向け道路ナビゲーションモデルは、図12に示すように、1つまたは複数のネットワークを介し(例えば、セルラネットワークおよび/またはインターネットなどを使い)、無線通信経路1235を通じて配信されてよい。
いくつかの実施形態において、車線標示は、図24Eに関して上述したように、クラウドソーシング手法などで複数の車両から受信したデータを用いてマッピングされてよい。例えば、プロセス2600Aは、検出された車線標示に関連づけられた位置識別子を含む第1通信を第1ホスト車両から受信する段階と、検出された車線標示に関連づけられた追加の位置識別子を含む第2通信を第2ホスト車両から受信する段階とを含んでよい。例えば、第2通信は同じ道路セグメントを走行するその後の車両から受信されても、同じ道路セグメントに沿ったその後の移動で同じ車両から受信されてもよい。プロセス2600Aはさらに、第1通信で受信した位置識別子に基づいて、且つ第2通信で受信した追加の位置識別子に基づいて、検出された車線標示に関連づけられた少なくとも1つの位置の決定を微調整する段階を含んでよい。この段階には、複数の位置識別子の平均を用いること、および/または車線標示の実際の位置を反映していないかもしれない「ゴースト」識別子を除外することが含まれてよい。
図26Bは、マッピングされた車線標示を用いて、道路セグメントに沿ってホスト車両を自律的にナビゲートするための例示的なプロセス2600Bを示すフローチャートである。プロセス2600Bは、例えば、自動運転車200の処理ユニット110により行われてよい。段階2620において、プロセス2600Bは、サーバベースのシステムから自動運転車向け道路ナビゲーションモデルを受信する段階を含んでよい。いくつかの実施形態において、自動運転車向け道路ナビゲーションモデルは、道路セグメントに沿ったホスト車両用の目標軌跡と、道路セグメントに関連づけられた1つまたは複数の車線標示に関連づけられた位置識別子とを含んでよい。例えば、車両200は、プロセス2600Aを用いて発展したスパースマップ800または別の道路ナビゲーションモデルを受信してよい。いくつかの実施形態において、目標軌跡は、例えば図9Bに示すように、3次元スプラインとして表されてよい。図24A~図24Fに関して上述したように、位置識別子は、車線標示に関連づけられた点(例えば、破線車線標示のコーナー点、実線車線標示のエッジ点、2つの交差する車線標示同士の交点および交差する車線標示に関連づけられた他の点、車線標示に関連づけられた中心線など)の実際の座標における位置を含んでよい。
段階2621において、プロセス2600Bは、車両の環境を表す少なくとも1つの画像を受信する段階を含んでよい。この画像は、画像取得ユニット120に含まれる画像取り込みデバイス122および124を介するなどして、車両の画像取り込みデバイスから受信されてよい。この画像には、上述した画像2500と同様に、1つまたは複数の車線標示の画像が含まれてよい。
段階2622において、プロセス2600Bは、目標軌跡に沿ったホスト車両の縦方向位置を決定する段階を含んでよい。図25Aに関して上述したように、これは、取り込まれた画像に含まれる他の情報(例えば、ランドマークなど)に基づいてもよく、検出されたランドマーク間での車両の推測航法によってもよい。
段階2623において、プロセス2600Bは、目標軌跡に沿ったホスト車両の決定された縦方向位置に基づいて、且つ少なくとも1つの車線標示に関連づけられた2つまたはそれより多くの位置識別子に基づいて、車線標示までの予期される横方向距離を決定する段階を含んでよい。例えば、車両200は、スパースマップ800を用いて車線標示までの予期される横方向距離を決定してよい。図25Bに示すように、目標軌跡2555に沿った縦方向位置2520は、段階2622において決定されてよい。スパースマップ800を用いると、車両200は、縦方向位置2520に対応するマッピングされた車線標示2550までの予期される距離2540を決定することができる。
段階2624において、プロセス2600Bは、少なくとも1つの画像を分析して、少なくとも1つの車線標示を識別する段階を含んでよい。車両200は、例えば上述したように、様々な画像認識手法またはアルゴリズムを用いて、画像内の車線標示を識別してよい。例えば、車線標示2510は、図25Aに示すように、画像2500の画像分析によって検出されてよい。
段階2625において、プロセス2600Bは、少なくとも1つの画像の分析に基づいて、少なくとも1つの車線標示までの実際の横方向距離を決定する段階を含んでよい。例えば、車両は、図25Aに示すように、車両と車線標示2510との間の実際の距離を表す距離2530を決定してよい。カメラアングル、車両の速度、車両の幅、車両に対するカメラの位置、または様々な他の要因が、距離2530を決定する際に考慮されてよい。
段階2626において、プロセス2600Bは、少なくとも1つの車線標示までの予期される横方向距離と、少なくとも1つの車線標示までの決定された実際の横方向距離との差異に基づいて、ホスト車両の自動操縦動作を決定する段階を含んでよい。例えば、図25Bに関して上述したように、車両200は、実際の距離2530と予期される距離2540とを比較してよい。実際の距離と予期される距離との差異は、車両の実際の位置と車両が進む目標軌跡との誤差(およびその大きさ)を示し得る。したがって、車両は、この差異に基づいて、自動操縦動作または他の自動動作を決定してよい。例えば、図25Bに示すように、実際の距離2530が予期される距離2540より小さい場合、車両は、車両を車線標示2510から離れて左側に誘導するための自動操縦動作を決定してよい。したがって、目標軌跡に対する車両の位置を補正することができる。例えば、プロセス2600Bは、ランドマーク間の車両のナビゲーションを向上させるのに用いられてよい。
プロセス2600Aおよび2600Bは、開示されるスパースマップを使用してホスト車両をナビゲートするために使用され得る手法の単なる例を提供する。他の例では、図25Cおよび25Dに関連して説明されたそれらと矛盾しないプロセスもまた使用され得る。
[部分的に隠されている歩行者に基づくナビゲーション]
開示するシステムおよび方法は、取り込まれた画像に表される、部分的に隠されている歩行者に基づいてホスト車両をナビゲートすることを可能にしてもよい。例えば、ホスト車両のナビゲーションは、歩行者の足が地面に接触している位置に基づくことができる(本明細書では「接地位置」と呼ばれる)。しかしながら、もし、取り込まれた画像において歩行者が部分的に隠され、その結果、取り込まれた画像において彼または彼女の足と地面との接触位置が隠されているならば、開示するシステムおよび方法は、接地位置を予測する訓練モデルを用いてもよい。具体的には、隠されている歩行者の表現を含む画像を分析する前に、モデルは、例えば、各々が少なくとも1人の歩行者および接地位置の表現を含む複数の訓練用画像、および/または、訓練用画像に対応する(例えば、LIDARベースの測定値からの、または、任意の他の深度センシングデバイスによって取得される)深度情報を含む訓練用データに基づいて訓練されてもよい。訓練モデルは次に、画像を分析して、部分的に隠されている歩行者についてのバウンディングボックスを出力してもよい。バウンディングボックスを用いることによって、開示するシステムおよび方法は、部分的に隠されている歩行者の、ホスト車両に対する位置を正確に決定し、部分的に隠されている歩行者との衝突を避けるようにホスト車両を操作してもよい。
図27は、開示する実施形態と矛盾しない、1つまたは複数の操作を実行するための命令を格納され/プログラムされ得る、メモリ140および/または150の例示的な機能ブロック図である。以下ではメモリ140を参照するが、当業者であれば、命令がメモリ140および/または150に格納され得ることを認識するであろう。
図27に示されるように、メモリ140は、画像受信モジュール2702、隠蔽分析モジュール2704、指標モジュール2708、および、ナビゲーション動作モジュール2710を格納してもよい。開示する実施形態は、メモリ140のいかなる特定の構成にも限定されない。さらに、アプリケーションプロセッサ180および/または画像プロセッサ190は、メモリ140に含まれるモジュール2702、2704、2708および2710のうちのいずれかに格納された命令を実行してよい。当業者であれば、以下の説明における処理ユニット110への言及が、アプリケーションプロセッサ180および画像プロセッサ190を個々にまたは集合的に指し得ることを理解するであろう。したがって、以下のプロセスのうちのいずれかの各段階が、1つまたは複数の処理デバイスによって行われてよい。
一実施形態において、画像受信モジュール2702は、処理ユニット110によって実行された場合に、処理ユニット110に、ホスト車両(例えばホスト車両200)に搭載されたカメラから、ホスト車両の環境を表す1つまたは複数の取り込まれた画像を受信させる(コンピュータビジョンソフトウェアなどの)命令を格納してもよい。カメラは、上述の通り、画像取り込みデバイス122、画像取り込みデバイス124および画像取り込みデバイス126のうちの少なくとも1つを含んでもよい。その代わりに、および/または、さらに、画像受信モジュール2702は、処理ユニット110によって実行された場合に、処理ユニット110に、画像取り込みデバイス122、画像取り込みデバイス124および画像取り込みデバイス126とは異なるカメラ(例えば、歩行者検出専用カメラ)から画像を受信させる命令を格納してもよい。
開示する実施形態と矛盾せずに、受信される複数の画像のうちの少なくとも1つは、ホスト車両の環境において部分的に隠されている歩行者を含んでもよい。部分的に隠されている歩行者の特定の部分、例えば足は、受信される画像からは見えない。以下の説明では、そうでないことを説明しない限り、「部分的に隠されている歩行者」とは、少なくとも歩行者の足が別の物体によって隠されていることを意味するのに使用され、したがって、「部分的に隠されている歩行者」を含む画像は、少なくとも、歩行者の足が地面に接触している領域の表現を含まない。画像受信モジュール2702は、処理ユニット110によって実行された場合に、処理ユニット110に、受信される画像の画像分析を実行させ、部分的に隠されている歩行者を検出させる命令を格納してもよい。具体的には、いくつかの実施形態において、画像分析は、上記の図5A~図5Dに関連して説明されたような単眼画像分析を含んでもよく、この場合、画像受信モジュール2702は、解剖学的部分、横断歩道、樹木、郵便受け、および歩行者に一般的に関連するその他の特徴などの、画像内の複数の特徴のセットを検出するための命令を含んでもよい。特定の特徴は、歩行者の動きを検出または速度を決定するための参照ポイントとして識別されてもよい。その代わりに、および/または、さらに、いくつかの実施形態において、画像受信モジュール2702は、上記の図6に関連して説明されたようなステレオ画像分析を含んでもよく、この場合、画像受信モジュール2702は、(例えば画像取り込みデバイス124によって取得される)第1セットの画像、および、(例えば画像取り込みデバイス126によって取得される)第2セットの画像における複数の特徴のセットを検出するための命令を含んでもよい。単眼画像分析および/またはステレオ画像分析で検出される特徴に基づいて、処理ユニット110は、受信される画像から、部分的に隠されている歩行者の表現を検出してもよい。
いくつかの実施形態において、部分的に隠されている歩行者の一部または部分は、受信される画像において見えない。例えば、部分的に隠されている歩行者の足は、物体によって遮られてもよく、したがって、受信される画像は、部分的に隠されている歩行者が、地面に接触している領域の表現を含まなくてもよく、それは例えば路面または歩道であり得る。図28Aは、ホスト車両内のカメラによって取り込まれる例示的な画像2801を示す。画像2801は、画像2801内で下半身(すなわち足)が見えない、部分的に隠されている歩行者2803の表現を含む。この例では、カメラの、歩行者の足の視界は、ホスト車両とは別の車両2805によって遮られている。
図28Bは、ホスト車両の内部のカメラによって取り込まれる画像2811が部分的に隠されている歩行者2813の表現を含む、別の例を示す。この例では、カメラの、歩行者の足および地面との接触箇所の視界は、ホスト車両自身のボンネット2815によって遮られている。この例では、部分的に隠されている歩行者2905は、ホスト車両に近いかもしれない。
あらためて図27を参照すると、部分的に隠されている歩行者の表現を含む、受信される画像を検出すると、画像受信モジュール2702は、さらなる分析のために、受信された画像を隠蔽分析モジュール2704に提供してもよい。一実施形態において、画像受信モジュール2702は、画像における歩行者または歩行者候補の検出に続いて、画像または画像の一部を隠蔽分析モジュール2704に提供してもよい。歩行者は、部分的に隠されている歩行者を含めて、コンピュータビジョン(例えばパターン認識)の方法および機械学習ベースの方法を含む、いくつかの既知の方法のうちの任意の1つを用いて、画像において検出されてもよい。一実施形態において、歩行者または歩行者候補の検出はまた、隠蔽分析モジュール2704において実行される隠蔽分析の必須の部分として実装されてもよい。
隠蔽分析モジュール2704はまた、処理ユニット110によって実行された場合に、処理ユニット110に、部分的に隠されている歩行者の地面との接触位置(すなわち接地位置)の指標を生成させる命令を格納してもよい。指標は、受信される画像において、部分的に隠されている歩行者の表現を取り囲むバウンディングボックスであってもよい。処理ユニット100は、部分的に隠されている歩行者の足が地面に接触している領域が受信された画像に表されていた場合、そのような領域を取り囲むようにバウンディングボックスのサイズを決めてもよい。例えば、図28Cは、画像2811における部分的に隠されている歩行者2813用に生成される、長方形の形状をしたバウンディングボックス2817を示す。示されるように、取り込まれた画像2811において、ホスト車両の一部(すなわちボンネット2815)は、部分的に隠されている歩行者2813が地面と接触している領域を見えなくさせている。バウンディングボックス2817は、取り込まれた画像2811の、ボンネット2815の一部を表す領域を含み、それは、歩行者の(図28Cにおいて破線で示される)足および地面との接触位置に対応する。
開示する実施形態と矛盾せずに、バウンディングボックスは、画素寸法および現実世界寸法によって定められてもよい。例えば、図28Dに示されるように、バウンディングボックス2817(図28C)は、少なくとも、取り込まれた画像2811に関連する画素における水平方向の長さ(「Lp」)、および、取り込まれた画像2811に関連する画素における高さ(「Hp」)によって定められてもよい。LpおよびHpの両方が、取り込まれた画像2811に関連する基準画素(例えば、長方形の形状をしたバウンディングボックス2817の4つの角のうちの1つにおける画素)に対して測定されてもよく、取り込まれた画像2811において部分的に隠されている歩行者の画素サイズを説明するのに使用されてもよい。さらに、バウンディングボックス2817は、少なくとも現実世界長さ(「Lw」)および現実世界高さ(「Hw」)によって定められてもよい。LwおよびHwは、現実世界における、部分的に隠されている歩行者の実際のサイズに対応する。図12に関連して上述されたように、部分的に隠されている歩行者の実際のサイズは、バウンディングボックスの画素サイズの変化だけでなく、部分的に隠されている歩行者とホスト車両との間の距離の変化にも基づいて、推定されてもよい。これを受けて、バウンディングボックス2817の現実世界寸法は、同じやり方で推定されてもよい。その代わりに、またはそれに加えて、部分的に隠されている歩行者とホスト車両との間の距離が既知であるならば、バウンディングボックス2817の現実世界寸法Lw、Hwは、部分的に隠されている歩行者とホスト車両との間の距離、バウンディングボックス2817の画素寸法Lp、Hp、および、部分的に隠されている歩行者の表現を含む画像を取り込むカメラの焦点距離、に基づいて推定されることができる。
いくつかの実施形態において、部分的に隠されている歩行者と地面との接触位置の指標(例えばバウンディングボックス)は、予測モデルを用いて生成されてもよい。具体的には、図27をあらためて参照し、隠蔽分析モジュール2704がさらに、処理ユニット110によって実行された場合に、処理ユニット110に、予測モデル2706を訓練するための機械学習アルゴリズムを実行させる命令を格納してもよい。例えば、予測モデル2706は、畳み込みニューラルネットワーク(CNN)またはディープニューラルネットワーク(DNN)などのニューラルネットワークとして訓練されてもよい。訓練の後、処理ユニット110は、部分的に隠されている歩行者の表現を含む受信された画像を、部分的に隠されている歩行者と地面との接触位置の指標(例えばバウンディングボックス)を生成するために訓練された予測モデル2706へ提供してもよい。
一実施形態において、処理ユニット110は、1つまたは複数の訓練用画像を含む訓練用データに基づいて予測モデル2706を訓練してもよく、それらの各々は、少なくとも1人の訓練歩行者の表現を含み、且つ、訓練歩行者の足が地面と接触している領域を示す。1人または複数の訓練歩行者は、画像受信モジュール2702によって検出される部分的に隠されている歩行者と同じ人または別の人であってもよい。具体的には、処理ユニット110は、1つまたは複数の訓練用画像を用いて、第1訓練セットを生成し、第1訓練セットを用いて予測モデル2706を訓練してもよい。訓練中、処理ユニット110は、第1訓練セットから特徴を抽出し、且つ、それらと訓練歩行者との対応関係に従って特徴を分類(またはクラスタ化)するように、予測モデル2706を構成してもよい。例えば、訓練歩行者の足および地面上の接触位置に対応する特徴が識別され且つラベルを付けられてもよい。同様に、訓練歩行者の他の部分、例えば頭、手、上半身などに対応する特徴が識別され且つラベルを付けられてもよい。さらに、訓練歩行者の別の部分に対応する特徴が関連づけられ且つ同じ歩行者を表すものとして分類(またはクラスタ化)されてもよい。処理ユニット110はまた、訓練歩行者の足が地面と接触する領域を隠し、第2訓練セットを生成するべく、1つまたは複数の訓練用画像を変更してもよい。処理ユニット110は次に、第2訓練セットを用いて予測モデル2706を訓練してもよい。例えば、処理ユニット110は、予測モデル2706を用いて、第2訓練セットを分析し、少なくとも部分的に、第2訓練セットにおける訓練歩行者の見える部分(例えば頭、手、上半身など)に基づいて、訓練歩行者の足および地面との接触位置の場所を予測してもよい。処理ユニット110は次に、予測場所を、第1訓練セットにおける足の実際の場所と比較してもよい。比較に基づいて、処理ユニット110は、予測場所に関連する信頼値を決定し、且つ、予測場所と実際の場所との間の差異を最小限に抑えるべく予測モデル2706のパラメータを調整してもよい。
一実施形態において、処理ユニット110は、予測モデル2706を訓練するべく、画像データを追加の知覚情報(例えば、レーダ、LIDAR、音響センサなどからの情報)と組み合わせてもよい。例えば、訓練用データは、1つまたは複数の訓練用画像と、訓練用画像に関連するLIDARデータとを含んでもよい。1つまたは複数の訓練用画像の各々は、ホスト車両内のカメラによって取り込まれてもよく、且つ、足が訓練用画像において見えても見えなくてもよい少なくとも1人の訓練歩行者の表現を含んでもよい。訓練歩行者は、画像受信モジュール2702によって検出される部分的に隠されている歩行者と同じ人または別の人であってもよい。もし足が見えるならば、処理ユニット110は、足が地面と接触している領域を隠すように1つまたは複数の訓練用画像を変更してもよい。処理ユニット110は、訓練歩行者を含むバウンディングボックスを生成するべく、足領域が隠されている1つまたは複数の訓練用画像を予測モデル2706に供給してもよい。予測されるバウンディングボックスは、訓練歩行者の頭から足まで拡張してもよい。予測されるバウンディングボックスの高さ、および、訓練用画像を取り込むカメラの焦点距離に基づいて、処理ユニット110は、訓練歩行者からホスト車両までの予測距離を決定してもよい。LIDARデータは、1つまたは複数の訓練用画像の各々に対応する深度情報を含んでもよい。これを受けて、LIDAR深度情報は、訓練歩行者からホスト車両までの測定距離を示してもよい。処理ユニット110は、予測距離をLIDAR深度情報と比較してもよい。比較に基づいて、処理ユニット110は、予測されるバウンディングボックスに関連する信頼値を決定し、且つ、予測距離とLIDAR深度情報との間の差異を最小限に抑えるべく予測モデル2706のパラメータを調整してもよい。
開示する実施形態と矛盾せずに、予測モデル2706は、隠蔽分析モジュール2704が、画像受信モジュール2702によって識別される部分的に隠されている歩行者を分析するために呼び出される前に訓練されてもよい。これを受けて、訓練用データは、部分的に隠されている歩行者が隠蔽分析モジュール2704によって分析される前に取得されてもよい。一実施形態において、処理ユニット110は、訓練用データを格納するべくメモリ140または150におけるバッファを維持してもよい。例として、バッファは、最大20画像フレームを格納してもよい。バッファリングされる画像フレームの各々は、訓練歩行者の表現、および/または、訓練歩行者が地面と接触している領域の表現を含んでもよい。さらに、バッファは、画像フレームに対応するLIDAR深度データを格納してもよい。隠蔽分析モジュール2704に格納されている命令を実施することによって、処理ユニット110は、バッファリングされた訓練用データを隠蔽分析モジュール2704に提供して予測モデル2706を訓練してもよい。実際には、バッファリングされる訓練用データの全てが予測モデル2706を訓練するために必要なわけではない。例えば、たとえバッファが20個の訓練用画像フレームを含み得るとしても、それらの15個のみが予測モデル2706を訓練するのに使用されてもよい。一実施形態において、処理ユニット110は、予測モデル2706に関連する信頼値が予め定められた閾値に到達した後に、訓練を中止してもよい。
上述の通り、開示する実施形態と矛盾せずに、隠蔽分析モジュール2704は、処理ユニット100によって実行された場合に、処理ユニットに、画像受信モジュール2702によって提供された画像(すなわち、部分的に隠されている歩行者の表現を含み、且つ、部分的に隠されている歩行者の足が地面と接触している領域の表現を含まない画像)を訓練された予測モデル2706に供給させて部分的に隠されている歩行者を含むバウンディングボックスを生成させる命令を格納してもよい。生成されるバウンディングボックスは、部分的に隠されている歩行者の足と、足が地面と接触している領域とを含んでもよい。予測モデル2706が1つまたは複数の訓練用画像のみを用いて訓練されているならば、処理ユニット100は、訓練された予測モデル2706を用いて、隠されている足領域の予測場所を決定し、次に、予測場所に基づいてバウンディングボックスを生成してもよい。予測モデル2706が、1つまたは複数の訓練用画像と対応するLIDAR深度情報との両方を用いて訓練されているならば、処理ユニット100は、訓練された予測モデル2706を用いて、バウンディングボックスを直接生成してもよい。
図27をさらに参照すると、指標モジュール2708は、処理ユニット110によって実行された場合に、処理ユニット110に、部分的に隠されている歩行者の地面との接触位置(すなわち接地位置)の指標(例えばバウンディングボックス)を隠蔽分析モジュール2704から受信させ、且つ、部分的に隠されている歩行者とホスト車両の一部との間の距離を決定するべく、および/または、部分的に隠されている歩行者とホスト車両との間の衝突までの推定時間を決定するべく指標を分析させる命令を格納してもよい。一実施形態において、処理ユニット110は、取り込まれた画像におけるバウンディングボックスの画素寸法、バウンディングボックスの現実世界寸法、部分的に隠されている歩行者の表現を含む画像を取り込むカメラの焦点距離、および/または、地面に対するカメラの位置、に基づいて、部分的に隠されている歩行者とホスト車両との間の推定距離を決定してもよい。一実施形態において、処理ユニット110は、バウンディングボックスを追跡し、且つ、次に取り込まれた画像におけるその変化を監視してもよい。その変化に基づいて、処理ユニット110は、ホスト車両が部分的に隠されている歩行者に近づきつつあるのかどうか、および、どれだけ早く近づいているのか、を決定してもよい。例えば、次に取り込まれた画像においてバウンディングボックスのサイズがより大型になってきているならば、処理ユニット110は、ホスト車両が部分的に隠されている歩行者に近づいてきていると決定してもよい。反対に、次に取り込まれた画像においてバウンディングボックスのサイズがより小型になってきているならば、処理ユニット110は、ホスト車両が部分的に隠されている歩行者から離れてきていると決定してもよい。さらに、バウンディングボックスが大型になってきている割合に基づいて、処理ユニット110は、もし何の動作も行われないならば、ホスト車両がどれだけ早くに歩行者と衝突し得るか、または、ホスト車両の(計画されたまたは予測された)軌跡がいつ歩行者の予測軌跡と交差し得るかを決定してもよい。
図27をさらに参照すると、ナビゲーション動作モジュール2710は、処理ユニット110によって実行された場合に、処理ユニット110に、接地位置に基づいてホスト車両用のナビゲーション動作を決定させ、且つ、決定されたホスト車両用のナビゲーション動作に応答して、ホスト車両のナビゲーションアクチュエータの少なくとも1つの調整をさせる、命令を格納してもよい。例えば、部分的に隠されている歩行者を含むバウンディングボックスが、ホスト車両が部分的に隠されている歩行者に近づきつつあることを示しているならば、処理ユニット110は、(例えば、減速および/またはブレーキをかけることによって、部分的に隠されている歩行者から離れるようにホスト車両を旋回させることによって、ホスト車両を別の方向へと操縦するおよび/または新たな方向に加速することによって、など)部分的に隠されている歩行者との衝突を避けるべく少なくとも1つのナビゲーション変更を決定してもよい。別の例として、バウンディングボックスが、部分的に隠されている歩行者がホスト車両から離れて移動していることを示しているならば、処理ユニット110は、ホスト車両が同じ速度または方向を維持してもよい、または、同じまたは別の方向に加速してもよい、と決定してもよい。
決定されたナビゲーション動作に基づいて、処理ユニット110は、決定されたホスト車両用のナビゲーション動作に従ってホスト車両の少なくとも1つのナビゲーションアクチュエータの制御をさせる電子信号を送信してもよい。ナビゲーションアクチュエータは、操縦機構、ブレーキまたはアクセルのうちの少なくとも1つを含んでもよい。いくつかの実施形態において、処理ユニット110は、車両200のスロットル装置220、ブレーキ装置230、および操縦装置240のうちの1つまたは複数に1つまたは複数の信号を送信し、例えば、車両200のハンドルを回して所定の角度の回転を達成することで、決定されたナビゲーション動作を引き起こしてよい。
開示する実施形態と矛盾せずに、本明細書で開示する複数のモジュール(例えば、モジュール2702、2704、2708および2710)のうちのいずれかは、ホスト車両と通信するサーバにおいて遠隔で格納されてもよい。取り込まれた画像は、上述の処理ユニット110と同様の1つまたは複数のプロセッサを含み得るサーバへと最初に送信されてもよい。サーバにおける1つまたは複数のプロセッサは、モジュール2702、2704、2708および/または2710における命令を、処理ユニット110に関連して上述したものと同様のやり方で実行してもよい。サーバは次に、その結果をホスト車両110に送信してもよい。例えば、一実施形態において、隠蔽分析モジュール2704および予測モデル2706は、サーバに格納されてもよい。サーバは、訓練用データに基づいて予測モデル2706を訓練してもよく、次に、さらなる使用のために訓練モデルをホスト車両へと送信してもよい。
開示する実施形態と矛盾せずに、ホスト車両またはサーバにおける隠蔽分析モジュール2704は、次に取り込まれた画像において部分的に隠されている歩行者を追跡してもよく、且つ、次に取り込まれた画像が、予測されたバウンディングボックスまたは予測された接地位置が正確ではないと示唆しているならば、予測モデル2706を再訓練してもよい。例えば、その後の画像において歩行者が完全に見えるようになるならば、隠蔽分析モジュール2704は、実際の接地位置を、予測された接地位置と比較して、何らかの相違が存在するかどうかを決定してもよい。同様に、その後の画像において歩行者の特定の特性が検出されるならば(例えば、歩行者がカートを押している、またはスケートボードに乗っている)、隠蔽分析モジュール2704は、特別な特性(例えばカートまたはスケートボードの位置)に基づいて歩行者の接地位置を推定してもよく、且つ、何らかの相違が存在するかどうかを決定するべく、推定された実際の接地位置を予測された接地位置と比較してもよい。両方の例において、相違が予め定められたマージンまたは比率を超えるならば、隠蔽分析モジュール2704は、予測モデル2706を再訓練してもよい。一実施形態によれば、訓練および再訓練がサーバによって実行されるならば、ホスト車両における処理ユニット110は、新たに取り込まれた画像を、最大で特定の数のフレーム(例えば20フレーム)まで格納するべく、メモリ140または150においてバッファを維持してもよい。新たに取り込まれた画像が、予測されたバウンディングボックスまたは接地位置が正確ではないと示していると決定する場合、処理ユニット110は、予測モデル2706を再訓練するために、新たに取り込まれた画像をサーバに送ってもよい。
図29は、開示する実施形態と矛盾しない、検出された部分的に隠されている歩行者に基づいてホスト車両をナビゲートするための例示的な処理2900を示すフローチャートである。段階2902において、処理ユニット110は、訓練用データに基づいて、部分的に隠されている歩行者と地面との接触位置の指標の予測モデル(例えば図27における予測モデル2706)を訓練してもよい。予測モデルは、ニューラルネットワークを含んでもよい。訓練用データは、1つまたは複数の訓練用画像を含んでもよく、それらの各々は、少なくとも1人の訓練歩行者と、訓練歩行者が地面(例えば路面または歩道面)と接触する領域との表現を含む。さらに、処理ユニット110は、1つまたは複数の訓練用画像に対応するLIDAR深度情報を用いて予測モデルを訓練してもよい。
段階2904において、処理ユニット110は、ホスト車両内のカメラによって取り込まれる1つまたは複数の画像を受信してもよい。1つまたは複数の取り込まれた画像の各々は、ホスト車両の環境を表すものであってもよく、且つ、データインタフェース128を介して受信されてもよい。例えば、(視野202、204および206を有する画像取り込みデバイス122、124および126などの)画像取得ユニット120に含まれるカメラは、ホスト車両の前方および/または側方の領域の少なくとも1つの画像を取り込み、これらの画像をデジタル接続(例えば、USB、無線、Bluetoothなど)を介して処理ユニット110に送信してよい。
処理ユニット110は、1つまたは複数の受信画像を分析し、且つ、ホスト車両の環境における部分的に隠されている歩行者の表現を含む少なくとも1つの画像を検出してもよい。部分的に隠されている歩行者の少なくとも足は、検出画像において隠されていてもよく(例えば別の物体によって遮られていてもよく)、したがって、検出画像は、部分的に隠されている歩行者が地面と接触している領域の表現を含まない。例えば、地面は、路面または歩道面であってもよい。一実施形態において、処理ユニット110は、部分的に隠されている歩行者の1つまたは複数の属性または特徴を検出することによって、部分的に隠されている歩行者を識別してもよい。属性は、顔面領域、コア/本体領域、または、部分的に隠されている歩行者に関連する複数のアクセサリのうちの1つ、を含んでもよい。処理ユニット110はまた、足に関連する属性または特徴が検出画像に無いと決定してもよい。
段階2906において、処理ユニット110は、部分的に隠されている歩行者と地面との接触位置(すなわち接地位置)の指標を生成するべく、部分的に隠されている歩行者を含む画像を訓練された予測モデルへと供給してもよい。当該指標は、見えなくされている接地位置を含む、部分的に隠されている歩行者を取り囲むバウンディングボックスであってもよい。
段階2908において、処理ユニット110は、生成された指標に基づいて、部分的に隠されている歩行者の接地位置を決定してもよい。例えば、バウンディングボックスの下端は、接地位置に対応し、これは、処理ユニット110が、部分的に隠されている歩行者とホスト車両との間の推定距離を決定する、および/または、部分的に隠されている歩行者とホスト車両との間の衝突までの推定時間を決定するのに使用されてもよい。
一実施形態において、処理ユニット110はまた、ホスト車両の位置に対応する地面(路面、歩道、軟路肩などを含む)の標高に関する情報などの、他の要因に基づいて、隠されている歩行者の接地位置を決定してもよい。地面の標高情報は、ホスト車両内のセンサからのセンサデータに基づいて生成される測定値を通じて取得されてもよく、および/または、標高情報は、リモートサーバからホスト車両へとダウンロードされるデータを用いて生成されるスパースマップなどのマップから取得されることができる。いくつかの実施形態において、ホスト車両の位置に対する地面の(正のまたは負の)相対標高を考えると、部分的に隠されている歩行者の足と地面とのタッチポイントの正確な予測を可能にするべく、地面の標高情報は予測モジュールへの入力として使用されてもよい。
段階2910において、処理ユニット110は、生成された指標に基づいて、ホスト車両のナビゲーション動作を引き起こしてもよい。例えば、部分的に隠されている歩行者とホスト車両との間の距離が、予め定められた距離範囲内であると判定されるならば、処理ユニット110は、ホスト車両に、減速させ、停車させ、または、部分的に隠されている歩行者から離れるように旋回させてもよい。処理ユニット110は、ブレーキ、ハンドル、アクセルなどのナビゲーションアクチュエータへ1つまたは複数の制御信号を送ることによって、ナビゲーション動作を開始してもよい。
開示する実施形態と矛盾せずに、本明細書で開示される、処理2900の複数の段階(例えば、段階2902、2904、2906、2908および2910)のうちのいずれかは、ホスト車両と通信するサーバにおいて遠隔で実行されてもよい。例えば、サーバは、段階2902を実行し、次に、さらなる使用のためにホスト車両へ訓練モデルを送信してもよい。
[検出される歩行者の頭の姿勢に基づくナビゲーション]
開示するシステムおよび方法は、画像データから検出される歩行者の頭の姿勢(すなわち頭の向き)に基づいてホスト車両をナビゲートすることを許容してもよい。頭の姿勢は、地面に対して平行な水平面における回転角(ヨー角とも呼ばれる)、および、歩行者の鼻および後頭部から延びる垂直面におけるピッチ角によって表されてもよい。歩行者の見る方向は、回転角およびピッチ角に基づいて推定されてもよい。歩行者の見る方向を追跡することによって、ホスト車両は、より効率的なナビゲーション、および、より安全なドライブを可能にするべく、先制的に操作されてもよい。例えば、歩行者の見る方向が、ホスト車両から離れていると判定された場合、ホスト車両は、歩行者がホスト車両を見ていたまたはその方向を見ていたならば用いるであろうものよりも大きな安全マージンを用いることによってナビゲートしてもよい。
図30は、メモリ140および/または150の例示的な機能ブロック図であり、これらは、開示する実施形態と矛盾しない1つまたは複数の動作を行うための命令と共に格納され/プログラムされてよい。以下ではメモリ140を参照するが、当業者であれば、命令がメモリ140および/または150に格納され得ることを認識するであろう。
図30に示されるように、メモリ140は、画像受信モジュール3002、歩行者検出モジュール3004、頭姿勢分析モジュール3006、および、ナビゲーション動作モジュール3010を格納してもよい。開示する実施形態は、メモリ140のいかなる特定の構成にも限定されない。さらに、アプリケーションプロセッサ180および/または画像プロセッサ190は、メモリ140に含まれるモジュール3002、3004、3006および3010のうちのいずれかに格納された命令を実行してよい。当業者であれば、以下の説明における処理ユニット110への言及が、アプリケーションプロセッサ180および画像プロセッサ190を個々にまたは集合的に指し得ることを理解するであろう。したがって、以下のプロセスのうちのいずれかの各段階が、1つまたは複数の処理デバイスによって行われてよい。
一実施形態において、画像受信モジュール3002は、処理ユニット110によって実行された場合に、処理ユニット110に、ホスト車両内のカメラから、ホスト車両の環境を表す1つまたは複数の画像を受信させる(コンピュータビジョンソフトウェアなどの)命令を格納してもよい。カメラは、上述の通り、画像取り込みデバイス122、画像取り込みデバイス124および画像取り込みデバイス126のうちの少なくとも1つを含んでもよい。その代わりに、および/または、さらに、画像受信モジュール3002は、処理ユニット110によって実行された場合に、処理ユニット110に、画像取り込みデバイス122、画像取り込みデバイス124および画像取り込みデバイス126とは異なるカメラ(例えば、横断歩道専用カメラ)から画像を受信させる命令を格納してもよい。
一実施形態において、歩行者検出モジュール3004は、処理ユニット110によって実行された場合に、処理ユニット110に、1つまたは複数の受信画像の画像分析を実行させて、ホスト車両の環境における少なくとも1人の歩行者を検出させる命令を格納してもよい。いくつかの実施形態において、画像分析は、上記の図5A~図5Dに関連して説明されたような単眼画像分析を含んでもよく、この場合、歩行者検出モジュール3004は、解剖学的部分、アクセサリ、衣服、横断歩道、杖、ベビーカ、および歩行者に一般的に関連するその他の特徴などの、画像内の1つまたは複数の特徴を検出するための命令を含んでもよい。その代わりに、および/または、さらに、いくつかの実施形態において、歩行者検出モジュール3004は、上記の図6に関連して説明されたようなステレオ画像分析を含んでもよく、この場合、歩行者検出モジュール3004は、(例えば画像取り込みデバイス124によって取得される)第1セットの画像、および、(例えば画像取り込みデバイス126によって取得される)第2セットの画像における1つまたは複数の特徴を検出するための命令を含んでもよい。単眼画像分析および/またはステレオ画像分析に基づいて、処理ユニット110は、1つまたは複数の受信画像において表される少なくとも1人の歩行者を検出してもよい。
一実施形態において、頭姿勢分析モジュール3006は、処理ユニット110によって実行された場合に、処理ユニット110に、1つまたは複数の受信画像を分析させて、少なくとも1人の検出された歩行者の頭の姿勢を決定させる命令を格納してもよい。具体的には、処理ユニット110は最初に、検出された歩行者の頭を識別してもよい。処理ユニット110は次に、識別された頭に関連する、角回転の指標およびピッチ角の指標を決定してもよい。回転角およびピッチ角に基づいて、処理ユニット110は、検出された歩行者が見る方向を決定してもよい。
一実施形態において、頭姿勢分析モジュール3006は、処理ユニット110によって実行された場合に、処理ユニット110に、1つまたは複数の受信画像を分析することによって頭を識別させて、頭に関連する特徴を識別させる命令を格納してもよい。例えば、処理ユニット110は、特定の形状を有する、画像における複数の領域を識別してもよい。処理ユニット110は、識別された複数の領域に対して形状分析を実行して、それらのうちのいずれかが頭の一部に対応するかどうかを決定してもよい。その代わりに、またはそれに加えて、処理ユニット110は、識別された複数の領域に対して動き分析を実行して、頭の一部を含む輪郭を検出してもよい。
1つまたは複数の受信画像から歩行者の頭が識別された後、処理ユニット110は、頭の姿勢を決定することを進めてもよい。図31Aに示されるように、頭の姿勢は、回転角φおよびピッチ角θによって定められてもよい。回転角φは、地面に対して平行な水平面における頭の角回転を指してもよい。別の言い方をすれば、回転角φは、頭の中心を通る垂直軸周りの頭の角運動を示していてもよい。さらに、ピッチ角θは、歩行者の鼻から後頭部まで延びる垂直面における頭の角運動を指してもよい。別の言い方をすれば、ピッチ角θは、歩行者の両耳を通る軸周りの頭の角運動を示していてもよい。
図30をあらためて参照すると、処理ユニット110は、頭に関連する回転角およびピッチ角を決定するべく、頭姿勢分析モジュール3006に格納されているモデル3008に1つまたは複数の受信画像を供給してもよい。モデル3008は、様々な頭の姿勢に関連する画像特徴を分類またはクラスタ化するために使用されるニューラルネットワーク(例えばCNNまたはDNN)を含んでもよい。モデル3008を用いて頭の姿勢を決定する前に、処理ユニット110は、様々な頭の姿勢および見る方向を示している複数の歩行者の表現を含む複数の訓練用画像に基づいてモデル3008を訓練してもよい。処理ユニット110は、複数の訓練用画像における複数の画像部分および/または画像特徴を、それらの対応する頭の向きまたは見る方向に従って分類またはクラスタ化するように、モデル3008を訓練してもよい。
訓練が完了した後、処理ユニット110は、訓練モデル3008を用いて、1つまたは複数の受信画像を分析し、頭に関連する回転角およびピッチ角を決定し、且つ、回転角およびピッチ角に基づいて、頭に関連する見る方向を決定してもよい。一実施形態において、頭姿勢分析モジュール3006は、処理ユニット110によって実行された場合に、処理ユニット110に、歩行者の見る方向がホスト車両と交差する場合にホスト車両のほうを見ていると決定させる命令を格納してもよい。例えば、処理ユニット110は、例えば、円錐体の頂点または円錐体内の別の場所にあり、且つ、ホスト車両の(例えばボンネットからトランクに向かう)軸に沿う軸を有するホスト車両を含む円錐体を計算してもよい。円錐体は、90度以下、45度以下などの角度を有してもよい。処理ユニット110は、歩行者の見る方向が閾値より小さな角度で(例えば、90度未満、45度未満など)円錐体の側面と交差している場合にホスト車両のほうを見ていると決定してもよい。その代わりに、処理ユニット110は、例えば、円錐体の頂点または円錐体内の別の場所にあり、且つ、歩行者からホスト車両に向かう軸を有する歩行者を含む円錐体を計算してもよい。円錐体は、90度以下、45度以下などの角度を有してもよい。処理ユニット110は、歩行者の見る方向が円錐体の中にある場合にホスト車両のほうを見ていると決定してもよい。
同様の方法を用いて、処理ユニット110はまた、歩行者がホスト車両の環境における他の車両のほうを見ているかどうかを決定してもよい。例えば、頭姿勢分析モジュール3006は、処理ユニット110によって実行された場合に、処理ユニット110に、1つまたは複数の受信画像における対象車両を識別させ、且つ、頭に関連する見る方向が対象車両と交差するかどうかを決定させる命令を格納してもよい。
一実施形態において、頭姿勢分析モジュール3006は、処理ユニット110によって実行された場合に、処理ユニット110に、歩行者の見る方向がホスト車両のほうを向いていない場合にホスト車両から離れたほうを見ていると決定させる命令を格納してもよい。処理ユニット110は、上述の複数の円錐体のうちのいずれかを用いて、歩行者がホスト車両から離れたほうを見ていると決定してもよい。その代わりに、処理ユニット110は、処理ユニット110が、頭に関連する特定の顔特徴(例えば目、鼻、口)を識別できないならば、歩行者がホスト車両から離れたほうを見ていると決定してもよい。例えば、歩行者は、1つまたは複数の受信画像において歩行者の頭の側面または背面のみが見えるように、ホスト車両から離れたほうを向いているかもしれない。
一実施形態において、1つまたは複数の受信画像は、カメラによって時間の経過と共に取り込まれる複数の画像を含んでもよい。頭姿勢分析モジュール3006は、処理ユニット110によって実行された場合に、処理ユニット110に、複数の取り込まれた画像に基づいて、時間の経過に伴う頭の姿勢の変化を追跡させる命令を格納してもよい。例えば、処理ユニット110は、複数の取り込まれた画像に示される歩行者が、最初にホスト車両のほうを見ていて、その頭がホスト車両から離れるように回転している、と決定してもよい。別の例として、処理ユニット110は、複数の取り込まれた画像が、頭のピッチ角が大きくなったことを示していると決定してもよく、これは、歩行者が頭を上下に傾けていることを意味する。
図30をさらに参照すると、ナビゲーション動作モジュール3010は、処理ユニット110によって実行された場合に、処理ユニット110に、歩行者の頭の姿勢に基づいてホスト車両用のナビゲーション動作を決定させる命令を格納してもよい。一実施形態において、歩行者の頭の姿勢が、ホスト車両から離れるほうを見ていることを示しているならば、処理ユニット110は、ホスト車両用の第1ナビゲーション動作を決定してもよい。第1ナビゲーション動作は、ホスト車両を減速もしくは停止すること、または、歩行者から離れる方向にある走行車線内へ移動することを含んでもよい。第1ナビゲーション動作は、ホスト車両および歩行者により長い反応時間を許容する。
一実施形態において、歩行者の頭の姿勢が、ホスト車両のほうを見ていることを示しているならば、処理ユニット110は、ホスト車両用の第2ナビゲーション動作を決定してもよい。第2ナビゲーション動作は、元の速度および/または進行方向を維持することを含んでもよい。これは、ホスト車両のほうを見ている歩行者は、近づきつつあるホスト車両に気付き且つそれによってアラートを発せられるためである。同様に、歩行者の頭の姿勢が、ホスト車両の前方で同じ方向に走行している対象車両のほうを見ていることを示しているならば、処理ユニット110は、ホスト車両用の第2ナビゲーション動作を決定してもよい。これは、歩行者は、同じ方向に走行している交通をより容易に見ている可能性が有るためである。さらに、歩行者の頭の姿勢が、ホスト車両の前方に位置しているがホスト車両とは反対の方向に走行している対象車両のほうを見ていることを示しているならば、処理ユニット110は、ホスト車両用の第2ナビゲーション動作を決定してもよい。これは、対向車線を走行している対象車両を見ている歩行者はホスト車両も見ている可能性が有るためである。
上述の通り、頭姿勢分析モジュール3006に関連して、処理ユニット110は、複数の取り込まれた画像に亘って、時間の経過に伴う頭の姿勢の変化を追跡してもよい。ナビゲーション動作モジュール3010はまた、処理ユニット110によって実行された場合に、処理ユニット110に、時間の経過に伴う頭の姿勢の変化に基づいてホスト車両用のナビゲーション動作を決定させる命令を格納してもよい。例えば、歩行者は最初にホスト車両を見ているが、その後、見る方向をホスト車両から離れるほうに移動させていると判定されたならば、処理ユニット110は、見る方向の動きを決定する際に、ホスト車両用の第1ナビゲーション動作を決定してもよい。
ナビゲーション動作モジュール3010はまた、処理ユニット110によって実行された場合に、処理ユニット110に、決定されたホスト車両用のナビゲーション動作に従ってホスト車両の少なくとも1つのナビゲーションアクチュエータの制御をさせる電子信号を送信させる命令を格納してもよい。ナビゲーションアクチュエータは、操縦機構、ブレーキまたはアクセルのうちの少なくとも1つを含んでもよい。いくつかの実施形態において、処理ユニット110は、車両200のスロットル装置220、ブレーキ装置230、および操縦装置240のうちの1つまたは複数に1つまたは複数の信号を送信し、例えば、車両200のハンドルを回して所定の角度の回転を達成することで、決定されたナビゲーション動作を引き起こしてよい。
図31Bは、検出された歩行者の頭の姿勢に基づいて車両をナビゲートするための、開示するシステムを実装することの一例を示す。図31Bに示されるシーンは、(ホスト車両200を含み得る)ホスト車両3105の環境から取り込まれ得る複数の画像のうちの1つの一例である。上述の通り、画像を分析することによって、処理ユニット110は、画像における歩行者3103の頭の姿勢を決定してもよい。処理ユニット110は、歩行者3103の頭に関連する回転角およびピッチ角を決定することによって、この決定を行ってもよい。回転角およびピッチ角に基づいて、処理ユニット110はさらに、ホスト車両3105または歩行者3103に頂点を有する円錐体を構築することによって、ホスト車両3105に対する歩行者3103の見る方向を決定してもよい。処理ユニット110が、歩行者3103の見る方向が、閾値より小さな角度で円錐体と交差している、または、円錐体内にある、とそれぞれ決定するならば、処理ユニット110は、歩行者3103がホスト車両3105のほうを見ていると決定してもよい。これを受けて、処理ユニット110は、減速もしくはブレーキ、または、車線を切り替える、などの、ホスト車両3105用のナビゲーション動作を決定してもよい。いくつかの実施形態において、ホスト車両3105は、車線を切り替えてもよく、および/または、停止するべく減速してもよい。円錐体は、歩行者の見る方向を幾何学的形状へ変換するのに使用されることができる幾何学的形状の一例として、ここで使用されていることが理解されるであろう。現実空間における他の3D形状を使用できることがさらに理解されるであろう。
一実施形態において、ナビゲーション動作モジュール3010は、ホスト車両が、1つまたは複数の動作予測サイクルに亘って、意思を信号で知らせ且つ歩行者からの反応を予測する、比較的微妙なまたは繊細な操作を実行し得る交渉操作をホスト車両に実行させてもよい。交渉操作は、例えば、ホスト車両が減速または停止して歩行者に譲る必要があることを示す第1制約(例えば、初期/デフォルトの安全マージン)に到達した場合に使用されてもよいが、そのような環境において、ホスト車両は、歩行者の意思が検証され且つ第2制約(より小さな安全マージン)に準拠している場合にのみ、第2制約の下で進行することを許容されてもよい(そうするようにプログラムされ、または構成されてもよい)。ナビゲーション動作モジュール3010は、ホスト車両による信号(例えば、ライトを点滅させること、ホーンを鳴らすこと)に応答して、歩行者の頭の姿勢に基づいて、または、歩行者の頭の姿勢における変化の検出に基づいて、歩行者の意思を決定してもよい。
開示する実施形態と矛盾せずに、本明細書で開示する複数のモジュール(例えば、モジュール3002、3004、3006および3010)のうちのいずれかは、ホスト車両と通信するサーバにおいて遠隔で格納されてもよい。取り込まれた画像は、上述の処理ユニット110と同様の1つまたは複数のプロセッサを含み得るサーバへと最初に送信されてもよい。サーバにおける1つまたは複数のプロセッサは、モジュール3002、3004、3006および/または3010における命令を、処理ユニット110に関連して上述したものと同様のやり方で実行してもよい。サーバは次に、その結果をホスト車両110に送信してもよい。例えば、一実施形態において、頭姿勢分析モジュール3006およびモデル3008は、サーバに格納されてもよい。サーバは、訓練用データに基づいてモデル3008を訓練してもよく、次に、さらなる使用のために訓練モデルをホスト車両へと送信してもよい。
開示する実施形態と矛盾せずに、ホスト車両またはサーバにおける頭姿勢分析モジュール3006は、次に取り込まれた画像において歩行者の見る方向または動きを追跡し、且つ、次に取り込まれた画像が、モデル3008によって生成される頭の姿勢の結果が正確ではないことを提示するならば、モデル3008を再訓練してもよい。例えば、予測された頭の姿勢が、歩行者がホスト車両のほうを見ていることを示しているが、次に取り込まれた画像における歩行者の目の追跡が、ホスト車両から離れるほうを見ていることを示しているならば、頭姿勢分析モジュール3006は、モデル3008を再訓練してもよい。一実施形態によれば、訓練および再訓練がサーバによって実行されるならば、ホスト車両における処理ユニット110は、新たに取り込まれた画像を、最大で特定の数のフレーム(例えば20フレーム)まで格納するべく、メモリ140または150においてバッファを維持してもよい。新たに取り込まれた画像が、モジュール3006によって予測された頭の姿勢が正確ではないと示していると決定する場合、処理ユニット110は、予測モジュール3006を再訓練するために、新たに取り込まれた画像をサーバに送ってもよい。
図32は、開示する実施形態と矛盾しない、検出された歩行者の頭の姿勢に基づいてホスト車両をナビゲートするための例示的な処理3200を示すフローチャートである。段階3202において、処理ユニット110は、データインタフェース128を介して、ホスト車両の環境を表す1つまたは複数の画像を受信してもよい。例えば、(視野202、204および206を有する画像取り込みデバイス122、124および126などの)画像取得ユニット120に含まれるカメラは、ホスト車両の前方および/または側方の領域の少なくとも1つの画像を取り込み、これらの画像をデジタル接続(例えば、USB、無線、Bluetoothなど)を介して処理ユニット110に送信してよい。
段階3204において、処理ユニット110は、1つまたは複数の受信画像を分析して、ホスト車両の環境における少なくとも1人の歩行者を検出してもよい。例えば、少なくとも1人の歩行者を検出することは、歩行者の1つまたは複数の属性または特徴を検出することを含んでもよい。属性は、顔面領域、コア/本体領域、または、歩行者に関連する複数のアクセサリのうちの1つ、を含んでもよい。
段階3206において、処理ユニット110は、1つまたは複数の受信画像を分析して、検出された歩行者の頭の姿勢を決定してもよい。例えば、処理ユニット110は、訓練モデル(例えば図30におけるモデル3008)を用いて、1つまたは複数の受信画像における複数の特徴を分類(またはクラスタ化)し、且つ、分類(またはクラスタ化)に基づいて、歩行者の頭に関連する回転角およびピッチ角を決定してもよい。回転角およびピッチ角に基づいて、処理ユニット110は、歩行者の見る方向を決定してもよい。いくつかの実施形態において、1つまたは複数の受信画像は、時間の経過と共に取り込まれる複数の画像を含んでもよく、処理ユニット110は、時間の経過に伴う、頭の姿勢の変化および見る方向の動きを追跡してもよい。
段階3208において、処理ユニット110は、決定された頭の姿勢に基づいて、ホスト車両の少なくとも1つのナビゲーションアクチュエータの制御を引き起こしてもよい。例えば、頭の姿勢が、歩行者がホスト車両のほうを見ていることを示しているならば、処理ユニット110は、ホスト車両を減速し、および/もしくは、それにブレーキをかけてもよく、または、新たな進行方向へホスト車両を旋回し、および/もしくは、新たな進行方向にホスト車両を加速してもよい。別の例として、頭の姿勢が、歩行者がホスト車両から離れるほうを見ていることを示しているならば、処理ユニット110は、ホスト車両に、元の速度および/もしくは進行方向を維持させ、または、元の進行方向に加速させてもよい。処理ユニット110は、ブレーキ、ハンドル、アクセルなどのナビゲーションアクチュエータへ1つまたは複数の制御信号を送ることによって、ナビゲーション動作を開始してもよい。
開示する実施形態と矛盾せずに、本明細書で開示される、処理3200の複数の段階(例えば、段階3202、3204、3206および3208)のうちのいずれかは、ホスト車両と通信するサーバにおいて遠隔で実行されてもよい。例えば、サーバは、段階3202-3206を実行して、決定された頭の姿勢をホスト車両に送信してもよく、これは次に、決定された頭の姿勢に基づいてナビゲーション動作を決定してもよい。
[検出される歩行者ジェスチャーに基づくナビゲーション]
開示するシステムおよび方法は、検出される歩行者ジェスチャーに基づいてホスト車両をナビゲートすることを許容してもよい。ジェスチャーは、歩行者がホスト車両に対してどのように移動しているかを示してもよい。ジェスチャーは、歩行者の意図、例えば、ホスト車両が進行することを許容すること、または、ホスト車両に停止するよう合図すること、の指標を提供してもよい。さらに、ジェスチャーは、歩行者の特定の状態またはアクティビティ、例えば、電話をかけること、または、モバイルデバイスを見つめること、などを示してもよい。これらのジェスチャーを検出して認識することによって、開示するシステムおよび方法は、ホスト車両に、ジェスチャーに少なくとも部分的に基づいて応答させてもよい。例えば、歩行者が、ホスト車両に停止するよう合図する手のジェスチャーを行っていると判定されたならば、開示するシステムは、ホスト車両に停止させ、または減速させてもよい。別の例として、歩行者が電話をかけていると判定されるならば、開示するシステムは、ホスト車両に、停止させ、減速させ、歩行者から離れるように操縦させ、または、歩行者にアラートを送らせてもよい。
例えば、本開示によって提供される他の実施形態と同様に、メモリ140および/または150は、検出される歩行者ジェスチャーに基づいてホスト車両をナビゲートするための方法を実行するべく、1つまたは複数のプロセッサによって実行可能なコンピュータ命令を格納してもよい。具体的には、1つまたは複数のプロセッサは、ホスト車両に関連するカメラから複数の画像を受信するようにプログラムされることができる。複数の画像は、ホスト車両の環境を表してもよい。1つまたは複数のプロセッサは、複数の画像において表される歩行者を検出し、且つ、複数の画像を分析して、歩行者による認識されたジェスチャーを検出してもよい。歩行者による検出される認識されたジェスチャーに基づいて、1つまたは複数のプロセッサは、ホスト車両による少なくとも1つのナビゲーション動作を引き起こしてもよい。例えば、ナビゲーション動作は、ホスト車両を加速させること、ブレーキをかけること、または、旋回させること、のうちの少なくとも1つを含んでもよい。
一実施形態において、1つまたは複数のプロセッサは、歩行者の手の向きに基づいて、認識されたジェスチャーを検出してもよい。その代わりに、またはそれに加えて、1つまたは複数のプロセッサは、複数の画像に亘って表される歩行者の手の動きに基づいて、認識されたジェスチャーを検出してもよい。
一実施形態において、1つまたは複数のプロセッサは、複数の訓練用画像グループを含む訓練用データに基づいて、認識されたジェスチャーを検出するように構成された少なくとも1つの訓練モデルを用いることによって、複数の画像を分析してもよい。各々の訓練用画像グループは、1つまたは複数のジェスチャーを行う少なくとも1人の歩行者を表す複数の訓練用画像を含んでもよい。本開示と矛盾せずに、訓練モデルは、ニューラルネットワークなどの、任意の好適な機械学習アルゴリズムであってもよい。
一実施形態において、1つまたは複数のプロセッサは、複数の画像を分析して、歩行者の少なくとも1つの骨組みアンカーポイントを識別すること、および、当該少なくとも1つの骨組みアンカーポイントに対応する1つまたは複数の骨組み部分の動きを識別することにさらに基づいて、歩行者に関連する認識されたジェスチャーを検出してもよい。骨組みアンカーポイントは、例えば、ひじ、肩、手首、指関節、首などであってもよい。骨組み部分は、例えば、手、前腕、指部分、上腕、頭などであってもよい。
一実施形態において、認識されたジェスチャーは、ホスト車両に前方へ移動させるコマンドを示してもよい。これを受けて、認識されたジェスチャーに基づいて、1つまたは複数のプロセッサは、ホスト車両に、選択された速度で前方へ移動させてもよい。
一実施形態において、認識されたジェスチャーは、ホスト車両に停止させるコマンドを示してもよい。これを受けて、認識されたジェスチャーに基づいて、1つまたは複数のプロセッサは、ホスト車両に、停止させ、減速させ、または、進行方向を変更させてもよい。例えば、1つまたは複数のプロセッサは、ホスト車両に停止または減速させるべく、それのブレーキを作動させてもよい。別の例として、1つまたは複数のプロセッサは、ホスト車両に歩行者を譲らせるべく、元の移動方向から逸脱するようにホスト車両を操縦してもよい。
一実施形態において、認識されたジェスチャーは、ホスト車両に歩行者を通過させるコマンドを示してもよい。これを受けて、認識されたジェスチャーに基づいて、1つまたは複数のプロセッサは、ホスト車両に、ホスト車両の現在の速度を維持すること、または、ホスト車両の現在の進行方向を維持すること、のうちの少なくとも一方を実行させてもよい。
一実施形態において、認識されたジェスチャーは、電話をかける歩行者を示してもよい。これを受けて、認識されたジェスチャーに基づいて、1つまたは複数のプロセッサは、ホスト車両に、いかなる事故も防止するべく、歩行者から特定の距離を維持させ、それに対する安全マージン/制約を高めさせ、または、それにアラートを送らせてもよい。例えば、1つまたは複数のプロセッサは、車両に、停止させ、減速させ、または、歩行者から離れるように移動させてもよい。別の例として、1つまたは複数のプロセッサは、歩行者にアラートを出すべく、ホスト車両のホーンを鳴らしてもよい。
一実施形態において、認識されたジェスチャーは、ディスプレイデバイスのほうを見ている歩行者を示してもよい。これを受けて、認識されたジェスチャーに基づいて、1つまたは複数のプロセッサは、ホスト車両に、ホスト車両を減速させること、または、ホスト車両の進行方向を変更すること、のうちの少なくとも一方を実行させてもよい。
一実施形態において、認識されたジェスチャーは、ホスト車両のほうを見るべく旋回する歩行者を示してもよい。これを受けて、認識されたジェスチャーに基づいて、1つまたは複数のプロセッサは、ホスト車両に、ホスト車両の現在の速度を維持すること、または、ホスト車両の現在の進行方向を維持すること、のうちの少なくとも一方を実行させてもよい。
一実施形態において、ナビゲーション動作は、ホスト車両を加速させること、ブレーキをかけること、または、旋回させること、のうちの少なくとも1つを含んでもよい。
一実施形態において、認識されたジェスチャーは、頭のうなずき、頭の揺れ、手のウェーブ、手首を曲げて手のひらをホスト車両から離れるように向ける、手首を曲げて手のひらをホスト車両に向ける、肘を曲げて手のひらをホスト車両から離れるように向ける、肘を曲げて手のひらをホスト車両に向ける、指を曲げて手のひらをホスト車両から離れるように向ける、のうちの少なくとも1つを含んでもよい。1つまたは複数のプロセッサは、認識されたジェスチャーに基づいてホスト車両を操作してもよい。例えば、手首、肘、または、指を曲げて手のひらをホスト車両から離れるように向けることを認識すると、1つまたは複数のプロセッサは、ホスト車両に、元の方向に進行させてもよく、これは、これらのジェスチャーが、一般に、ホスト車両が、歩行者を通過する、またはそれに近づくことを許容されることを合図するのに使用されるためである。別の例として、手首、肘、または、指を曲げて手のひらをホスト車両に向けることを認識すると、1つまたは複数のプロセッサは、ホスト車両に、停止させてもよく、これは、これらのジェスチャーが、一般に、ホスト車両が停止することを必要とすることを合図するのに使用されるためである。
開示する実施形態と矛盾せずに、本明細書で開示される、複数の段階および機能のうちのいずれかは、ホスト車両と通信するサーバにおいて遠隔で実行されてもよい。例えば、サーバは、訓練用データに基づいてモデルを訓練してもよく、使用のために訓練モデルをホスト車両へと送信してもよい。
[車両周りのフリースペースの決定]
開示するシステムおよび方法は、ホスト車両が、ホスト車両を取り囲む環境におけるフリースペース領域を決定することを可能にしてもよい。具体的には、開示するシステムおよび方法は、環境の様々な領域を示す複数の画像を取り込んで、取り込まれた画像を合成し、環境の途切れない360度視界を形式してもよい。途切れない360度視界は、ホスト車両が安全にナビゲートできるフリースペース領域を示してもよい。例えば、途切れない360度視界は、ホスト車両を取り囲む環境の上面視を含んでもよい。上面視は、フリースペースおよび非フリースペースを示してもよい。ホスト車両は、非フリースペース内へのナビゲーションを避けながら、フリースペース内をナビゲートするように制御されてもよい。
図33は、メモリ140および/または150の例示的な機能ブロック図であり、これらは、開示する実施形態と矛盾しない1つまたは複数の動作を行うための命令と共に格納され/プログラムされてよい。以下ではメモリ140を参照するが、当業者であれば、命令がメモリ140および/または150に格納され得ることを認識するであろう。
図33に示されるように、メモリ140は、画像受信モジュール3302、画像合成モジュール3304、画像分析モジュール3306、および、ナビゲーション動作モジュール3308を格納してもよい。開示する実施形態は、メモリ140のいかなる特定の構成にも限定されない。さらに、アプリケーションプロセッサ180および/または画像プロセッサ190は、メモリ140に含まれるモジュール3302、3304、3306および3308のうちのいずれかに格納された命令を実行してもよい。当業者であれば、以下の説明における処理ユニット110への言及は、アプリケーションプロセッサ180および画像プロセッサ190を個々にまたは集合的に指し得ることを理解するであろう。したがって、以下のプロセスのうちのいずれかの各段階が、1つまたは複数の処理デバイスによって行われてよい。
一実施形態において、画像受信モジュール3302は、処理ユニット110によって実行された場合に、処理ユニット110に、ホスト車両内の1つまたは複数のカメラから、ホスト車両の前方、後方および側方の領域を表す複数の画像を受信させる(コンピュータビジョンソフトウェアなどの)命令を格納してもよい。カメラは、上述の通り、画像取り込みデバイス122、画像取り込みデバイス124および画像取り込みデバイス126のうちの1つまたは複数を含んでもよい。図34Aは、ホスト車両3401内の複数のカメラ3403の一例を示す。示されるように、複数のカメラ3403の各々は、ホスト車両3401を取り囲む環境の一部をカバーする視野(「FOV」、図34Aにおいて破線によって標示される)を有してもよい。複数のカメラ3403は、重なり合うFOVを有してもよく、その結果、組み合わされたFOVは、ホスト車両3401を取り囲む環境の途切れない360度視界をカバーしてもよい。いくつかの実施形態において、複数のカメラ3403のうちの1つまたは複数は、それらのFOVを大きくさせるべく、広角レンズを含んでもよい。本開示は、図34Aに示される例によって限定されることはないことが考えられる。例えば、いくつかの実施形態において、様々な位置に設置される複数のカメラを用いる代わりに、ホスト車両3401の屋根を通って延びる垂直軸周りを常に回転する1つのカメラによって複数の画像が取り込まれてもよい。
あらためて図33を参照すると、一実施形態において、画像合成モジュール3304は、処理ユニット110によって実行された場合に、処理ユニット110に、ホスト車両を取り囲む環境の途切れない360度視界を形式するべく複数の画像を関連づけさせる命令を格納してもよい。具体的には、処理ユニット110は、複数の画像の2つまたはそれより多くに表される現実世界点を検出し、且つ、検出された現実世界点を用いてホスト車両を取り囲む環境における複数の隣接領域の画像を揃えることによって、複数の画像を関連づけてもよい。現実世界点は、カメラFOVの重なり合う領域における特定の物体(例えば、太陽、建築構造の一部、歩行者の一部、別の車両の一部など)に対応してもよく、且つ、背景と区別可能な画素値を有してもよい。関連づけられた画像に基づいて、処理ユニット110は、環境の途切れない360度視界を生成してもよい。
開示する実施形態において、途切れない360度視界は、様々なやり方で表されてもよい。一実施形態において、途切れない360度視界は、関連づけられた複数の画像をつなぎ合わせることによって生成され得る360度パノラマ画像として表されてもよい。一実施形態において、途切れない360度視界は、関連づけられた複数の画像を用いて環境の上面視をシミュレーションすることによって生成され得る、ホスト車両を取り囲む環境の上面視として表されてもよい。例えば、処理ユニット110は、ホスト車両を取り囲む環境を表すスパースマップを生成し、且つ、関連づけられた複数の画像における、当該環境にある複数の物体の位置に従い、それらをスパースマップに挿入することによって、上面視を生成してもよい。そのような上面視の一例が図34Bに示されており、ここでは、ホスト車両3401は、車道3421上を走行してもよい。示されるように、上面視は、ホスト車両3401のルーフ表面の上方の予め定められた高さからのシミュレーションされた視界を提供してもよい。上面視は、道路にできた穴3411、建築構造(または家)3412、3413、歩行者3414、および壁(またはフェンス)3415など、ホスト車両3401がその中を走行しないであろう、または、避けると予期されているであろう1つまたは複数の障害物を示している。上面視はまた、車道3411、私道3422、縁石3423および駐車場3424など、ホスト車両3401が走行または駐車できる1つまたは複数の場所も示している。
あらためて図33を参照すると、一実施形態において、画像分析モジュール3306は、処理ユニット110によって実行された場合に、処理ユニット110に、関連づけられた複数の画像を分析させてホスト車両を取り囲む環境におけるフリースペース領域を識別させる命令を格納してもよい。具体的には、処理ユニット110は、関連づけられ複数の画像の特徴分析を実行して、フリースペース領域に関連する1つまたは複数の位置を識別してもよい。例示的なフリースペース領域は、車道、私道、駐車場もしくは歩道など、またはそれらの組み合わせのうちの1つまたは複数を含んでもよい。これを受けて、フリースペース領域に関連する特徴は、フリースペースの領域の境界に関連する1つまたは複数の点または線、ランドマーク、ランドマークに関連する1つまたは複数の点または線、など、もしくはそれらの組み合わせを含んでもよい。図34Bに示される例を参照すると、処理ユニット110は、フリースペース領域に関連する1つまたは複数の位置を決定してもよい。例えば、処理ユニット110は、関連づけられた複数の画像の分析に基づいて、私道3422の片側(すなわち位置識別子)を決定してもよい。別の例として、処理ユニット110は、車道3421に沿う縁石3423、および、縁石3423の境界の1つまたは複数の点または線を決定してもよい。さらに別の例として、処理ユニット110は、関連づけられた複数の画像に基づいて、私道3422および駐車場3424に隣接する建築構造3413の存在(すなわちランドマーク)を決定してもよい。
同様に、処理ユニット110は、関連づけられ複数の画像の特徴分析を実行して、フリースペース領域の外側(すなわち非フリースペース)の1つまたは複数の位置を識別してもよい。図34Bにおける例をさらに参照すると、非フリースペースは、壁3415などの検出された障害物、歩行者3414を含む領域、または、道路にできた穴3411を含む領域を含んでもよい。
処理ユニット110はまた、決定された位置に基づいて、フリースペース領域を決定してもよい。例えば、図34Bをさらに参照すると、処理ユニット110は、車道3411、私道3422、縁石3423および駐車場3424によって形成される地続きのフリースペース領域を識別してもよい。車道3411、私道3422、縁石3423および駐車場3424の各々は、ホスト車両3401が自由に移動できるフリースペースサブ領域を形式してもよい。フリースペースサブ領域は、非フリースペースによって互いに分割されてもよい。例えば、私道3422は、建築構造3413によって駐車場3424から分割されている。
あらためて図33を参照すると、一実施形態において、ナビゲーション動作モジュール3308は、処理ユニット110によって実行された場合に、ホスト車両に、識別されたフリースペース領域の外側の領域内をナビゲーションすることを避けさせながら、識別されたフリースペース領域内をナビゲートさせることを、処理ユニット110にさせる命令を格納してもよい。具体的には、処理ユニット110は、ホスト車両が識別されたフリースペース領域内を安全にナビゲートすることを可能にするナビゲーション動作を決定してもよい。図34Bにおける例を参照すると、フリースペース領域は、私道3422を含んでもよく、処理ユニット110は、ホスト車両3401が私道3422の境界と衝突せずに私道3422に入るまたはそこから出ることを可能にする、一連のブレーキ、加速および操縦動作を決定してもよい。さらに、歩行者3414は、私道3422上に存在してもよい。可能性のある衝突を避けるべく、処理ユニット110は、歩行者3414から離れるホスト車両3401の移動を結果としてもたらす操縦動作を決定してもよい。同様に、処理ユニット110は、ホスト車両3401が駐車場3424に入るまたはそこから出ることを可能にする、一連のブレーキ、加速および操縦動作を決定してもよい。
処理ユニット110は、ホスト車両に関連する1つまたは複数のアクチュエータシステムに、決定されたホスト車両用のナビゲーション動作を実装させてもよい。例示的なナビゲーション動作は、ブレーキ動作、惰力運転動作、加速動作、もしくは、操縦動作など、またはそれらの組み合わせを含んでもよい。例えば、図33を参照すると、車両3302に関連する自動システムは、車両3302に関連する1つまたは複数のアクチュエータシステムに、ブレーキ動作をとって速度を低下させ、私道3351の中に向かうよう左に操縦することによって、私道3351に入るようナビゲートさせてもよい。
開示する実施形態と矛盾せずに、本明細書で開示する複数のモジュール(例えばモジュール3302、3304、3306および3308)のうちのいずれかは、訓練システム(ニューラルネットワークまたはディープニューラルネットワークなど)または未訓練システム(コンピュータビジョンアルゴリズムを用いて、知覚情報が取り込まれて処理された環境内の物体を検出する且つ/またはラベルを付けるように構成され得るシステムなど)に関連する手法を実施してよい。一実施形態において、画像分析モジュール3306および/または他の画像処理モジュールは、訓練システムと未訓練システムとの組み合わせを用いるように構成されてよい。
開示する実施形態と矛盾せずに、本明細書で開示する複数のモジュール(例えば、モジュール3302、3304、3306および3308)のうちのいずれかは、ホスト車両と通信するサーバにおいて遠隔で格納されてもよい。取り込まれた画像は、上述の処理ユニット110と同様の1つまたは複数のプロセッサを含み得るサーバへと最初に送信されてもよい。サーバにおける1つまたは複数のプロセッサは、モジュール3302、3304、3306および/または3310における命令を、処理ユニット110に関連して上述したものと同様のやり方で実行してもよい。サーバは次に、その結果をホスト車両110に送信してもよい。例えば、一実施形態において、画像分析モジュール3306は、サーバに格納されてもよい。サーバは、画像分析モジュール3306の命令を実行して、フリースペース領域を識別し、次に、さらなる使用のために、フリースペース領域に関する情報をホスト車両に送信してもよい。
図35は、開示する実施形態と矛盾しない、ホスト車両周りの決定されたフリースペース領域に基づいてホスト車両をナビゲートするための例示的な処理3500を示すフローチャートである。段階3502において、処理ユニット110は、ホスト車両の環境を表す複数の画像を受信してもよい。複数の画像は、データインタフェース128を介して受信されてもよい。例えば、(視野202、204および206を有する画像取り込みデバイス122、124および126などの)画像取得ユニット120に含まれるカメラは、ホスト車両の前方、後方および/または側方の領域を表す複数の画像を取り込み、これらの画像をデジタル接続(例えば、USB、無線、Bluetoothなど)を介して処理ユニット110に送信してよい。
段階3504において、処理ユニット110は、複数の画像を関連づけて、ホスト車両を取り囲む環境の、途切れない360度視界を与えてもよい。一実施形態において、処理ユニット110は、ホスト車両のルーフ表面の上方の予め定められた高さから見た場合のように、ホスト車両を取り囲む環境の上面視として、途切れない360度視界をレンダリングしてもよい。
段階3506において、処理ユニット110は、関連づけられた複数の画像を分析して、ホスト車両を取り囲む環境におけるフリースペース領域を識別してもよい。例えば、フリースペース領域は、都市環境の一部であってもよく、処理ユニットは、関連づけられた複数の画像を分析して、私道、駐車場、車道または縁石などのフリースペースを表す特徴を識別してもよく、これらは集合的に地続きのフリースペース領域を形式してもよい。処理ユニット110はまた、関連づけられた複数の画像を分析して、障害物、歩行者、建築構造または道路にできた穴などの非フリースペースを表す特徴を識別してもよい。
段階3508において、処理ユニット110は、ホスト車両に、識別されたフリースペース領域の外側の領域内をナビゲーションすることを避けさせながら、識別されたフリースペース領域内をナビゲートさせてもよい。特に、処理ユニット110は、ホスト車両が、フリースペース領域の境界と衝突することなくフリースペース領域内を移動することを可能にする1つまたは複数のナビゲーション動作を決定してもよい。処理ユニット110は次に、ブレーキ、ハンドル、アクセルなどのナビゲーションアクチュエータへ1つまたは複数の制御信号を送ることによって、1つまたは複数のナビゲーション動作を開始してもよい。
開示する実施形態と矛盾せずに、本明細書で開示される、処理3500の複数の段階(例えば、段階3502、3504、3506および3508)のうちのいずれかは、ホスト車両と通信するサーバにおいて遠隔で実行されてもよい。例えば、サーバは、段階3502-3506を実行して、識別されたフリースペース領域をホスト車両に送信してもよく、これは次に、フリースペース領域に基づいてナビゲーション動作を決定してもよい。
前述の記載事項は、説明のために提示されている。これは網羅的ではなく、また開示したそのままの形式または実施形態に限定されない。本明細書を検討し且つ開示した実施形態を実践することから、当業者には複数の変更および改作が明らかになるであろう。さらに、開示した複数の実施形態の態様がメモリに格納されるものとして説明されているが、これらの態様は、二次ストレージデバイスなどの他のタイプのコンピュータ可読媒体、例えば、ハードディスクもしくはCD-ROM、または他の形式のRAMもしくはROM、USB媒体、DVD、Blu-ray(登録商標)、4K超高精細度Blu-ray(登録商標)、あるいは他の光ドライブ媒体にも格納できることを、当業者であれば理解するであろう。
記載した明細書および開示した方法に基づくコンピュータプログラムは、経験ある開発者の技能の範囲内である。様々なプログラムまたはプログラムモジュールは、当業者に知られている手法のうちのいずれかを用いて作成することもでき、既存のソフトウェアに関連して設計することもできる。例えば、プログラムセクションまたはプログラムモジュールの設計は、.Net Framework、.Net Compact Framework(および、Visual Basic(登録商標)、Cなどといった関連言語)、Java(登録商標)、C++、Objective-C、HTML、HTML/AJAXの組み合わせ、XML、またはJava(登録商標)アプレットを含んだHTMLで行うことも、これを用いて行うこともできる。
さらに、例示的実施形態が本明細書に説明されているが、あらゆる実施形態の範囲には、均等な要素、変更、省略、(例えば、様々な実施形態にわたる態様の)組み合わせ、改作、および/または改変が含まれており、こうしたことは当業者が本開示に基づいて理解するであろう。特許請求の範囲における限定は、特許請求の範囲で使用されている用語に基づいて広く解釈されるべきであり、本明細書においてまたは本願の審査手続き中に説明される例に限定されない。これらの例は、非排他的であると解釈されるべきである。さらに、開示した方法の段階は、段階の並べ替え、および/または段階の挿入もしくは削除を含む任意の方式で変更されてよい。したがって、本明細書および例は単なる例示に過ぎないとみなされることが意図されており、実際の範囲および趣旨は以下の特許請求の範囲およびその均等物の全範囲によって示されている。
[項目1]
ホスト車両用のナビゲーションシステムであって、
前記ホスト車両に搭載されたカメラから、前記ホスト車両の環境における隠されている歩行者の表現を含む、取り込まれた画像を受信し、ここで、前記取り込まれた画像は、前記隠されている歩行者が地面と接触する領域の表現を含まず、
前記取り込まれた画像を、前記取り込まれた画像用の出力を生成するように構成された分析モジュールへと提供し、ここで、前記生成された出力は、前記隠されている歩行者と前記地面との接触位置の指標を含み、
前記分析モジュールから、前記隠されている歩行者と前記地面との前記接触位置の前記指標を含む、前記生成された出力を受信し、
前記隠されている歩行者と前記地面との前記接触位置の前記指標に基づいて、前記ホスト車両による少なくとも1つのナビゲーション動作を引き起こすようにプログラムされた少なくとも1つのプロセッサを備える、
ナビゲーションシステム。
[項目2]
前記分析モジュールは、
各々が少なくとも1人の訓練歩行者の表現を含む複数の画像と、
前記複数の画像に対応するLIDAR深度情報と
を含む訓練用データに基づいて訓練された少なくとも1つの訓練モデルを有する、
項目1に記載のナビゲーションシステム。
[項目3]
前記少なくとも1つの訓練モデルはニューラルネットワークを含む、
項目2に記載のナビゲーションシステム。
[項目4]
前記分析モジュールは、
少なくとも1人の訓練歩行者の表現と、
前記訓練歩行者が地面と接触する領域と
を各々が含む複数の画像を含む訓練用データに基づいて訓練された少なくとも1つの訓練モデルを有する、
項目1に記載のナビゲーションシステム。
[項目5]
前記訓練用データはさらに、前記訓練歩行者が地面と接触する領域を隠すように各々が変更された前記複数の画像を含む、
項目4に記載のナビゲーションシステム。
[項目6]
前記少なくとも1つの訓練モデルはニューラルネットワークを含む、
項目4または5に記載のナビゲーションシステム。
[項目7]
前記隠されている歩行者と前記地面との前記接触位置の前記指標は、バウンディングボックスを有する、
項目1から6の何れか一項に記載のナビゲーションシステム。
[項目8]
前記バウンディングボックスは、前記ホスト車両と前記歩行者との間の衝突までの推定時間を特定するときに用いられる、
項目7に記載のナビゲーションシステム。
[項目9]
前記バウンディングボックスは、前記歩行者と前記ホスト車両の少なくとも一部との間の推定距離を特定するときに用いられる、
項目7または8に記載のナビゲーションシステム。
[項目10]
前記バウンディングボックスは、前記隠されている歩行者が前記地面と接触する前記領域が前記取り込まれた画像に表されている場合、前記取り込まれた画像における前記少なくとも1人の隠されている歩行者の前記表現を取り囲み、且つ、そのような領域を取り囲むようにサイズを決められる、
項目7から9の何れか一項に記載のナビゲーションシステム。
[項目11]
前記バウンディングボックスは、前記取り込まれた画像に関連する基準画素と比較して少なくとも2つの画素寸法により定められる、
項目7から10の何れか一項に記載のナビゲーションシステム。
[項目12]
前記バウンディングボックスは、少なくとも2つの現実世界寸法によって定められる、
項目7から11の何れか一項に記載のナビゲーションシステム。
[項目13]
前記隠されている歩行者が前記地面と接触する前記領域は、前記ホスト車両の少なくとも一部によって、取り込まれた画像における視界から見えなくされており、
前記バウンディングボックスは、前記ホスト車両の前記少なくとも一部の表現を含む、前記取り込まれた画像の領域を有する、
項目7から12の何れか一項に記載のナビゲーションシステム。
[項目14]
前記ホスト車両の前記少なくとも一部は、前記ホスト車両のボンネットの少なくとも一部を含む、
項目13に記載のナビゲーションシステム。
[項目15]
前記地面は、路面または歩道面のうちの少なくとも1つを含む、
項目1から14の何れか一項に記載のナビゲーションシステム。
[項目16]
前記少なくとも1つのナビゲーション動作は、前記ホスト車両の加速、ブレーキまたは旋回のうちの少なくとも1つを含む、
項目1から15の何れか一項に記載のナビゲーションシステム。
[項目17]
前記少なくとも1つのプロセッサはさらに、
前記取り込まれた画像よりも前に取得された複数の画像を含むバッファを維持するようにプログラムされており、
前記複数の画像のうちの1つまたは複数は、前記取り込まれた画像の前記隠されている歩行者の表現を含む、
項目1から16の何れか一項に記載のナビゲーションシステム。
[項目18]
前記複数の画像のうちの1つまたは複数は、前記隠されている歩行者が前記地面と接触する前記領域の表現を含む、
項目17に記載のナビゲーションシステム。
[項目19]
前記複数の画像は、取得された最大20画像フレームを含む、
項目17または18に記載のナビゲーションシステム。
[項目20]
前記少なくとも1つのプロセッサは、前記複数の画像のうちの1つまたは複数を前記分析モジュールに提供するようにプログラムされており、
前記隠されている歩行者と前記地面との前記接触位置の前記指標は、少なくとも部分的に、前記複数の画像のうちの1つまたは複数に基づいて決定される、
項目17から19の何れか一項に記載のナビゲーションシステム。
[項目21]
ホスト車両用のナビゲーションシステムであって、
前記ホスト車両内のカメラから、前記ホスト車両の環境を表す、少なくとも1つの取り込まれた画像を受信し、
前記少なくとも1つの取り込まれた画像に表される歩行者を検出し、
前記少なくとも1つの取り込まれた画像を分析して、前記少なくとも1つの取り込まれた画像に表される前記歩行者の頭に関連する、角回転の指標およびピッチ角の指標を特定し、
前記歩行者の前記頭に関連する、前記角回転の指標および前記ピッチ角の指標に基づいて、前記ホスト車両による少なくとも1つのナビゲーション動作を引き起こす
ようにプログラムされた少なくとも1つのプロセッサを備える、
ナビゲーションシステム。
[項目22]
前記少なくとも1つのナビゲーション動作を引き起こすことは、前記角回転の指標および前記ピッチ角の指標に基づいて決定される前記歩行者の見る方向に関連する、
項目21に記載のナビゲーションシステム。
[項目23]
前記歩行者の前記見る方向は、前記ホスト車両のほうを見ている前記歩行者を示す、
項目22に記載のナビゲーションシステム。
[項目24]
前記歩行者の前記見る方向は、前記ホスト車両から離れるほうを見ている前記歩行者を示す、
項目22に記載のナビゲーションシステム。
[項目25]
前記歩行者の前記見る方向は、前記ホスト車両の前記環境における対象車両のほうを見ている前記歩行者を示す、
項目22に記載のナビゲーションシステム。
[項目26]
前記歩行者の前記見る方向は、
前記ホスト車両のほうを見ている前記歩行者、
前記ホスト車両から離れるほうを見ている前記歩行者、または、
前記ホスト車両の前記環境における対象車両のほうを見ている前記歩行者、
を示し、
前記ホスト車両が行うようにさせられる前記少なくとも1つのナビゲーション動作は、前記見る方向が示すものが、前記歩行者が前記ホスト車両のほうを見ていることか、前記ホスト車両から離れるほうを見ていることか、または、前記対象車両のほうを見ていることか、に依存する、
項目22に記載のナビゲーションシステム。
[項目27]
前記少なくとも1つのナビゲーション動作は、前記歩行者が前記ホスト車両から離れるほうを見ていると決定されたならば、前記ホスト車両を減速することを含む、
項目26に記載のナビゲーションシステム。
[項目28]
前記少なくとも1つのナビゲーション動作は、前記歩行者が前記ホスト車両のほうを見ていると決定されたならば、前記ホスト車両の速度および進行方向を維持することを含む、
項目26または27に記載のナビゲーションシステム。
[項目29]
前記少なくとも1つのナビゲーション動作は、前記歩行者が前記ホスト車両の前方で同じ方向に走行している対象車両のほうを見ていると決定されたならば、前記ホスト車両の速度および進行方向を維持することを含む、
項目26から28の何れか一項に記載のナビゲーションシステム。
[項目30]
前記少なくとも1つのナビゲーション動作は、前記歩行者が、前記ホスト車両の前方に位置するが前記ホスト車両と反対の方向に走行している対象車両のほうを見ていると決定されたならば、前記ホスト車両の速度および進行方向を維持することを含む、
項目26から29の何れか一項に記載のナビゲーションシステム。
[項目31]
前記少なくとも1つの取り込まれた画像は、複数の取り込まれた画像を含み、前記角回転の指標および前記ピッチ角の指標における変化は、前記複数の取り込まれた画像の分析に基づいて時間の経過に伴い追跡される、
項目21から30の何れか一項に記載のナビゲーションシステム。
[項目32]
前記ホスト車両が行うようにさせられる前記少なくとも1つのナビゲーション動作は、少なくとも部分的に、時間の経過に伴い追跡される前記角回転の指標および前記ピッチ角の指標における前記変化に基づいて決定される、
項目31に記載のナビゲーションシステム。
[項目33]
前記少なくとも1つの取り込まれた画像は、様々な頭の向きおよび見る方向を示す歩行者の表現を含む複数の訓練用画像を含む訓練用データに基づいて、少なくとも1つの取り込まれた画像を分析するように構成された少なくとも1つの訓練モデルによって分析される、
項目21から32の何れか一項に記載のナビゲーションシステム。
[項目34]
前記訓練モデルはニューラルネットワークを含む、
項目33に記載のナビゲーションシステム。
[項目35]
前記少なくとも1つのナビゲーション動作は、前記ホスト車両の加速、ブレーキまたは旋回のうちの少なくとも1つを含む、
項目21から34の何れか一項に記載のナビゲーションシステム。
[項目36]
ホスト車両をナビゲートするための方法であって、
前記ホスト車両内のカメラから、前記ホスト車両の環境を表す、少なくとも1つの取り込まれた画像を受信することと、
前記少なくとも1つの取り込まれた画像に表される歩行者を検出することと、
前記少なくとも1つの取り込まれた画像を分析して、前記少なくとも1つの取り込まれた画像に表される前記歩行者の頭に関連する、角回転の指標およびピッチ角の指標を特定することと、
前記歩行者の前記頭に関連する、前記角回転の指標および前記ピッチ角の指標に基づいて、前記ホスト車両による少なくとも1つのナビゲーション動作を引き起こすことと
を備える方法。
[項目37]
前記少なくとも1つのナビゲーション動作を引き起こすことは、前記角回転の指標および前記ピッチ角の指標に基づいて決定される前記歩行者の見る方向に関連する、
項目36に記載の方法。
[項目38]
前記歩行者の前記見る方向は、前記ホスト車両のほうを見ている前記歩行者を示す、
項目37に記載の方法。
[項目39]
前記歩行者の前記見る方向は、前記ホスト車両から離れるほうを見ている前記歩行者を示す、
項目37に記載の方法。
[項目40]
前記歩行者の前記見る方向は、前記ホスト車両の前記環境における対象車両のほうを見ている前記歩行者を示す、
項目37に記載の方法。
[項目41]
ホスト車両に対するフリースペースを検出し、且つ、前記検出されたフリースペースに対して前記ホスト車両をナビゲートするためのシステムであって、
前記ホスト車両に関連する1つまたは複数のカメラから、前記ホスト車両の前方、後方および側方の領域を表す複数の画像を受信し、
前記複数の画像を関連づけて、前記ホスト車両を取り囲む環境の、途切れない360度視界を与え、
前記関連づけられた複数の画像を分析して、前記ホスト車両を取り囲む前記環境におけるフリースペース領域を識別し、
前記ホスト車両に、前記識別されたフリースペース領域の外側の領域内をナビゲーションすることを避けさせながら、前記識別されたフリースペース領域内をナビゲートさせる
ようにプログラムされた少なくとも1つのプロセッサを備える、
システム。
[項目42]
前記フリースペース領域は地続きである、
項目41に記載のシステム。
[項目43]
前記フリースペース領域は、非フリースペースによって互いに分割された複数のフリースペースサブ領域を含む、
項目41または42に記載のシステム。
[項目44]
前記1つまたは複数のカメラは広角レンズを含む、
項目41から43の何れか一項に記載のシステム。
[項目45]
前記1つまたは複数のカメラは、重なり合う視野を有する、
項目41から44の何れか一項に記載のシステム。
[項目46]
前記複数の画像を関連付けることは、前記複数の画像の2つまたはそれより多くに表される現実世界点を検出し、且つ、前記検出された現実世界点を用いて前記ホスト車両を取り囲む前記環境における複数の隣接領域の画像を揃えることを含む、
項目41から45の何れか一項に記載のシステム。
[項目47]
前記途切れない360度視界は、前記ホスト車両を取り囲む前記環境の上面視を含む、
項目41から46の何れか一項に記載のシステム。
[項目48]
前記上面視は、前記ホスト車両のルーフ表面の上方の予め定められた高さからのシミュレーションされた視界を含む、
項目47に記載のシステム。
[項目49]
前記フリースペース領域は、私道、駐車場、車道または縁石のうちの少なくとも1つの中に含まれる、
項目41から48の何れか一項に記載のシステム。
[項目50]
前記識別されたフリースペース領域の外側の前記領域は、検出された障害物を含む領域、検出された歩行者を含む領域、検出された道路にできた穴を含む領域、のうちの1つまたは複数を含む、
項目41から49の何れか一項に記載のシステム。
[項目51]
前記障害物、前記歩行者または前記道路にできた穴のうちの1つまたは複数は、前記複数の画像の分析に基づいて検出される、
項目50に記載のシステム。
[項目52]
前記ホスト車両をナビゲートすることは、前記ホスト車両を加速させること、ブレーキをかけること、または、旋回させること、のうちの少なくとも1つを含む、
項目41から51の何れか一項に記載のシステム。
[項目53]
前記ホスト車両をナビゲートすることは、私道に入ること、またはそこから出ることを含む、
項目41から52の何れか一項に記載のシステム。
[項目54]
前記ホスト車両をナビゲートすることは、駐車スペースに入ること、またはそこから出ることを含む、
項目41から53の何れか一項に記載のシステム。
[項目55]
前記ホスト車両をナビゲートすることは、前記ホスト車両に、都市環境で移動させることを含む、
項目41から54の何れか一項に記載のシステム。
[項目56]
前記ホスト車両をナビゲートすることは、前記ホスト車両に、1人または複数の歩行者に対して移動させることを含む、
項目41から55の何れか一項に記載のシステム。
[項目57]
ホスト車両に対するフリースペースを検出し、且つ、前記検出されたフリースペースに対して前記ホスト車両をナビゲートするためのコンピュータ実装方法であって、
前記ホスト車両に関連する1つまたは複数のカメラから、前記ホスト車両の前方、後方および側方の領域を表す複数の画像を受信することと、
前記複数の画像を関連づけて、前記ホスト車両を取り囲む環境の、途切れない360度視界を与えることと、
前記関連づけられた複数の画像を分析して、前記ホスト車両を取り囲む前記環境におけるフリースペース領域を識別することと、
前記ホスト車両に、前記識別されたフリースペース領域の外側の領域内をナビゲーションすることを避けさせながら、前記識別されたフリースペース領域内をナビゲートさせることと
を備える方法。
[項目58]
前記フリースペース領域は地続きである、
項目57に記載の方法。
[項目59]
前記フリースペース領域は、非フリースペースによって互いに分割された複数のフリースペースサブ領域を含む、
項目57または58に記載の方法。
[項目60]
前記1つまたは複数のカメラは広角レンズを含む、
項目57から59の何れか一項に記載の方法。
[項目61]
プログラムであって、
前記プログラムは、プロセッサによって実行された場合に、前記プロセッサに、ホスト車両に対するフリースペースを検出し、且つ、前記検出されたフリースペースに対して前記ホスト車両をナビゲートするための方法を実行させる命令を含み、
前記方法は、
前記ホスト車両に関連する1つまたは複数のカメラから、前記ホスト車両の前方、後方および側方の領域を表す複数の画像を受信することと、
前記複数の画像を関連づけて、前記ホスト車両を取り囲む環境の、途切れない360度視界を与えることと、
前記関連づけられた複数の画像を分析して、前記ホスト車両を取り囲む前記環境におけるフリースペース領域を識別することと、
前記ホスト車両に、前記識別されたフリースペース領域の外側の領域内をナビゲーションすることを避けさせながら、前記識別されたフリースペース領域内をナビゲートさせることと
を備える、
プログラム。