以下の詳細な説明では、添付の図面について言及する。可能な限り、同一又は類似の部分を指すために、図面及び以下の説明では同じ参照番号が用いられる。いくつかの例示的な実施形態が本明細書で説明されるが、修正、適応及びその他の実装も可能である。例えば、図面に示される構成要素に対して、置換、追加又は修正が行われ得、本明細書で説明される例示的な方法は、開示される方法に対する段階を置き換え、並べ替え、除去し、又は、追加することにより修正され得る。したがって、以下の詳細な説明は、開示される実施形態及び例に限定されることはない。代わりに、適切な範囲が、添付の特許請求の範囲により定義される。
自律走行車両の概要
本開示において用いられるように、用語「自律走行車両」は、運転者の入力なしに、少なくとも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に伝送するためのリンクを含み得る。
無線トランシーバ172は、無線周波数、赤外線周波数、磁界又は電界を用いて、1又は複数のネットワーク(例えば、セルラー、インターネットなど)に、エアインタフェースを介した伝送をやり取りするように構成される1又は複数のデバイスを含み得る。無線トランシーバ172は、任意の既知の規格(例えば、Wi-Fi(登録商標)、Bluetooth(登録商標)、Bluetooth Smart(登録商標)、802.15.4、ZigBee(登録商標)など)を用いて、データを伝送及び/又は受信してよい。そのような伝送は、ホスト車両から1又は複数の離れて配置されたサーバへの通信を含み得る。そのような伝送はまた、ホスト車両と、(例えば、ホスト車両の環境にいるターゲット車両を考慮して又はこれと一緒に、ホスト車両のナビゲーションの調整を容易にするために、)ホスト車両の環境にいる1又は複数のターゲット車両との間の通信(一方向又は双方向)、又は、伝送車両の近傍にいる不特定の受信者へのブロードキャスト伝送を含んでよい。
アプリケーションプロセッサ180及び画像プロセッサ190の両方は、様々なタイプの処理デバイスを含んでよい。例えば、アプリケーションプロセッサ180及び画像プロセッサ190のいずれか又は両方は、マイクロプロセッサ、プリプロセッサ(例えば、画像プリプロセッサ)、グラフィック処理ユニット(GPU)、中央処理装置(CPU)、サポート回路、デジタル信号プロセッサ、集積回路、メモリ、又は、アプリケーションの実行、及び、画像処理及び解析に適した任意の他のタイプのデバイスを含んでよい。いくつかの実施形態において、アプリケーションプロセッサ180及び/又は画像プロセッサ190は、任意のタイプのシングル又はマルチコアプロセッサ、モバイルデバイスマイクロコントローラ、中央処理装置などを含んでよい。例えば、インテル(登録商標)、AMD(登録商標)などの製造業者から入手可能なプロセッサ、又は、NVIDIA(登録商標)、ATI(登録商標)などのような製造業者から入手可能なGPU等を含む様々な処理デバイスが用いられてよく、様々なアーキテクチャ(例えば、x86プロセッサ、ARM(登録商標)など)を含んでよい。
いくつかの実施形態において、アプリケーションプロセッサ180及び/又は画像プロセッサ190は、モービルアイ(登録商標)から入手可能なプロセッサチップのEyeQシリーズのいずれかを含んでよい。これらのプロセッサの設計はそれぞれ、ローカルメモリ及び命令セットを有する複数の処理ユニットを含む。そのようなプロセッサは、複数の画像センサから画像データを受信するためのビデオ入力を含んでよく、また、ビデオ出力機能を含んでよい。一例において、EyeQ2は、332MHzで動作する90nm-ミクロン技術を用いる。EyeQ2アーキテクチャは、2つの浮動小数点、ハイパースレッド32ビットRISC CPU(MIPS32 34K コア)、5つのVision-Computing-Engines(VCE)、3つのVector-Microcode Processor(VMP)、Denali-64ビットモバイルDDRコントローラ、128-ビットのインターナルSonicsインターコネクト、16ビットのデュアルビデオ入力及び18ビットのビデオ出力コントローラ、16チャネルDMA、及びいくつかの周辺機器で構成される。MIPS34K CPUは、5つのVCE、3つのVMP及びDMA、第2のMIPS34K CPU、及び、マルチチャネルDMA並びに他の周辺機器を管理する。5つのVCE、3つのVMP及びMIPS34K CPUは、マルチファンクションバンドルアプリケーションにより要求される集中的な視覚計算を実行できる。別の例では、第三世代プロセッサであり、かつ、EyeQ2よりも6倍以上高性能であるEyeQ3が、開示される実施形態において用いられ得る。他の例では、EyeQ4及び/又はEyeQ5が、開示される実施形態において用いられ得る。もちろん、任意の新しい又は将来のEyeQ処理デバイスが、開示される実施形態と一緒に用いられてもよい。
本明細書で開示される処理デバイスのいずれかが、特定の機能を実行するように構成され得る。処理デバイス、例えば、説明したEyeQプロセッサ又は他のコントローラ又はマイクロプロセッサのいずれかを構成して特定の機能を実行することは、コンピュータ実行可能な命令をプログラミングすること、及び、処理デバイスの動作中の実行のために、処理デバイスに対してそれらの命令を利用可能にすることを含んでよい。いくつかの実施形態において、処理デバイスを構成することは、アーキテクチャ命令で処理デバイスを直接的にプログラミングすることを含んでよい。例えば、処理デバイス、例えば、フィールドプログラマブルゲートアレイ(FPGA)及び特定用途向け集積回路(ASIC)などは、例えば、1又は複数のハードウェア記述言語(HDL)を用いて構成され得る。
他の実施形態において、処理デバイスを構成することは、動作中に処理デバイスにアクセス可能なメモリに実行可能な命令を格納することを含んでよい。例えば、処理デバイスは、動作中に、メモリにアクセスして、格納した命令を取得して実行してよい。いずれにしても、本明細書で開示されるセンシング、画像解析及び/又はナビゲーション機能を実行するように構成される処理デバイスは、ホスト車両の複数のハードウェアベースのコンポーネントの制御する専用のハードウェアベースのシステムを表す。
図1は、処理ユニット110に含まれる2つの別個の処理デバイスを示すが、より多く又はより少ない処理デバイスが用いられてよい。例えば、いくつかの実施形態において、単一の処理デバイスが、アプリケーションプロセッサ180及び画像プロセッサ190のタスクを遂行するために用いられてよい。他の実施形態において、これらのタスクは、2つより多くの処理デバイスにより実行されてよい。さらに、いくつかの実施形態において、システム100は、他のコンポーネント、例えば、画像取得ユニット120を含まない1又は複数の処理ユニット110を含んでよい。
処理ユニット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又は複数のユーザに情報を提供するのに、又は、1又は複数のユーザからの入力を受信するのに適した任意のデバイスを含んでよい。いくつかの実施形態において、ユーザインタフェース170は、例えば、タッチスクリーン、マイク、キーボード、ポインタデバイス、トラックホイール、カメラ、ノブ、ボタンなどを含むユーザ入力デバイスを含んでよい。そのような入力デバイスを用いて、ユーザは、命令又は情報をタイピングし、音声コマンドを提供し、ボタン、ポインタ又は視線追跡機能を用いて、又は、又は、システム100に情報を通信するための任意の他の適切な技術を通じて、画面上のメニューオプションを選択することにより、システム100に情報入力又はコマンドを提供することができる。
ユーザインタフェース170は、ユーザとの間で情報を提供及び受信し、例えば、アプリケーションプロセッサ180による使用のための情報を処理するように構成される1又は複数の処理デバイスを備えてよい。いくつかの実施形態において、そのような処理デバイスは、目の動きを認識及び追跡し、音声コマンドを受信及び解釈し、キーボード入力又はメニュー選択などに応答してタッチスクリーンに対して行われたタッチ及び/又はジェスチャーを認識及び解釈するための命令を実行してよい。いくつかの実施形態において、ユーザインタフェース170は、ディスプレイ、スピーカ、触覚デバイス、及び/又は、ユーザに出力情報を提供するための任意の他のデバイスを含んでよい。
マップデータベース160は、システム100に有用なマップデータを格納するための任意のタイプのデータベースを含んでよい。いくつかの実施形態において、マップデータベース160は、道路、水を使用した建築物(water features)、地理的形状、会社、ポイントオブインタレスト、レストラン、ガソリンスタンドなどを含む様々な項目の基準座標系における位置に関連するデータを含んでよい。マップデータベース160は、そのような項目の位置だけでなく、例えば、格納した特徴のいずれかと関連付けられる名称を含むそれらの項目に関連する記述子も格納してよい。いくつかの実施形態において、マップデータベース160は、システム100の他のコンポーネントと共に物理的に配置され得る。代替的に又はさらに、マップデータベース160又はその一部は、システム100の他のコンポーネント(例えば、処理ユニット110)に対して離れて配置され得る。そのような実施形態において、マップデータベース160からの情報は、ネットワークへの有線又は無線データ接続を介して(例えば、セルラネットワーク及び/又はインターネットなどを介して)ダウンロードされ得る。場合によっては、マップデータベース160は、特定の道路特徴(例えば、車線標示)又はホスト車両に対するターゲット軌跡で構成される多項式表現を含むスパースデータモデルを格納してよい。そのようなマップを生成するシステム及び方法は、図8~図19を参照して以下で議論される。
画像取込デバイス122、124及び126はそれぞれ、環境から少なくとも1つの画像を取り込むのに適した任意のタイプのデバイスを含んでよい。さらに、任意の数の画像取込デバイスは、画像プロセッサへの入力のための画像を取得するために用いられてよい。いくつかの実施形態では、単一の画像取込デバイスだけを含んでよいが、他の実施形態では、2、3又はさらに、4又はそれより多い画像取込デバイスを含んでよい。画像取込デバイス122、124及び126は、以下では、図2B~図2Eを参照してさらに説明される。
システム100又はその様々なコンポーネントは、様々な異なるプラットフォームに組み込まれてよい。いくつかの実施形態において、システム100は、図2Aに示されるように、車両200に含まれてよい。例えば、車両200は、図1に関連して上述したように、処理ユニット110及びシステム100の他のコンポーネントのいずれかを備えてよい。いくつかの実施形態において、車両200は、単一の画像取込デバイス(例えば、カメラ)だけを備えてよいが、他の実施形態において、例えば、図2B~図2Eに関連して議論されるように、複数の画像取込デバイスが用いられ得る。図2Aに示されるように、例えば、車両200の画像取込デバイス122及び124のいずれかが、ADAS(先進運転支援システム)画像セットの不可欠な要素であってよい。
画像取得ユニット120の一部として車両200に含まれる画像取込デバイスが、任意の適切な位置に配置されてよい。いくつかの実施形態において、図2A~図2E及び図3A~図3Cに示されるように、画像取込デバイス122は、バックミラーの近傍に配置されてよい。この位置は、車両200の運転者の視線と同様の視線を提供してよく、運転者に何が見えて何が見えないかを判定する際に役立ち得る。画像取込デバイス122は、バックミラーの近くのいずれかの位置に配置されてよいが、ミラーの運転者側に画像取込デバイス122を設置することは、運転者の視野及び/又は視線を表す画像を取得するのにさらに役立ち得る。
画像取得ユニット120の画像取込デバイスに対する他の位置が用いられてもよい。例えば、画像取込デバイス124は、車両200のバンパー上及びバンパー内に配置されてよい。そのような位置は、広視野を有する画像取込デバイスに特に適し得る。バンパーに配置された画像取込デバイスの視線は、運転者の視線とは異なっていてよく、したがって、バンパーの画像取込デバイス及び運転者は、常に同じオブジェクトを見ているわけではない。画像取込デバイス(例えば、画像取込デバイス122、124及び126)は、他の位置に配置されてもよい。例えば、画像取込デバイスは、車両200のサイドミラーの一方又は両方上又はその中に、車両200のルーフに、車両200のボンネットに、車両200のトランクに、車両200の側面に取り付けられ、車両200のウィンドウのいずれかの後方に取り付けられ、又は、車両200のウィンドウのいずれかの正面に取り付けられ、車両200の正面及び/又は背面にあるライト外観に又はライト外観の近くなどに搭載され得る。
画像取込デバイスに加えて、車両200は、システム100の様々な他のコンポーネントを含んでよい。例えば、処理ユニット110は、車両のエンジン制御ユニット(ECU)と統合される、又は、ECUとは別個である、のいずれかの車両200に含まれ得る。車両200は、位置センサ130、例えば、GPS受信機を備えてもよく、マップデータベース160、及び、メモリユニット140及び150を含んでもよい。
以前に議論したように無線トランシーバ172は、1又は複数のネットワーク(例えば、セルラネットワーク、インターネットなど)を介してデータを伝送及び/又は受信してよい。例えば、無線トランシーバ172は、システム100により収集されたデータを1又は複数のサーバにアップロードし、1又は複数のサーバからデータをダウンロードしてよい。無線トランシーバ172を介して、システム100は、例えば、マップデータベース160、メモリ140及び/又はメモリ150に格納されたデータに対する周期的な又は要求に応じた更新を受信してよい。同様に、無線トランシーバ172は、システム100から任意のデータ(例えば、画像取得ユニット120により取り込まれた画像、位置センサ130又は他のセンサ、車両制御システムなどにより受信されたデータ)及び/又は処理ユニット110により処理された任意のデータを1又は複数のサーバにアップロードしてよい。
システム100は、プライバシーレベル設定に基づいて、データをサーバに(例えば、クラウドに)アップロードしてよい。例えば、システム100は、車両、及び、又は、車両の運転者/所有者を一意に識別し得るサーバに送信された複数のタイプのデータ(メタデータを含む)を規制又は制限するようにプライバシーレベル設定を実装してよい。そのような設定は、例えば、無線トランシーバ172を介してユーザにより設定されってよく、工場のデフォルト設定により、又は、無線トランシーバ172により受信されたデータにより初期化されてよい。
いくつかの実施形態において、システム100は、「高」プライバシーレベルに従って、データをアップロードしてよく、設定した設定の下、システム100は、特定の車両及び/又は運転者/所有者に関する詳細情報を用いることなく、データ(例えば、経路、取り込まれた画像などに関連する位置情報)を伝送してよい。例えば、「高」プライバシー設定に従ってデータをアップロードするときに、システム100は、車両の識別番号(VIN)、又は、車両の運転者又は所有者の名前を含めなくてもよく、代わりに、データ、例えば、経路に関連する取り込まれた画像及び/又は限定された位置情報を伝送してよい。
他のプライバシーレベルが考えられる。例えば、システム100は、「中」プライバシーレベルに従って、データをサーバに伝送してよく、「高」プライバシーレベルの下では含まれない追加の情報、例えば、車両のメーカー及び/又はモデル、及び/又は車両タイプなどの(例えば、乗用車、スポーツ用多目的車、トラックなど)追加情報を含んでよい。いくつかの実施形態において、システム100は、「低」プライバシーレベルに従ってデータをアップロードしてよい。「低」プライバシーレベル設定の下では、システム100は、データをアップロードし、特定の車両、所有者/運転者、及び/又は、車両が走行する経路の一部又は全体を一意に識別するのに十分な情報を含んでよい。そのような「低」プライバシーレベルのデータは、例えば、VIN、運転者/所有者の名前、出発前の車両の開始地点、車両の対象とする目的地、車両のメーカー及び/又はモデル、車両のタイプなどのうちの1又は複数を含み得る。
図2A、開示される実施形態と矛盾しない例示的な車両撮像システムの概略側面図である。図2Bは、図2Aに示される実施形態の概略平面図の例示である。図2Bに示されるように、開示される実施形態は、車両200のバックミラーの近傍及び/又は運転者の近くに配置される第1の画像取込デバイス122、車両200のバンパー領域上及びバンパー領域内(例えば、バンパー領域210のうちの1つ)に配置される第2の画像取込デバイス124、及び、処理ユニット110を有するシステム100をその車体に含む車両200を含み得る。
図2Cに示されるように、画像取込デバイス122及び124は両方とも、車両200のバックミラーの近傍及び/又は運転者の近くに配置されてよい。さらに、2つの画像取込デバイス122及び124が図2B及び図2Cに示されるが、他の実施形態では、2つより多い画像取込デバイスを含み得ることが理解されるべきである。例えば、図2D及び図2Eに示される実施形態では、第1、第2及び第3の画像取込デバイス122、124及び126が、車両200のシステム100に含まれる。
図2Dに示されるように、画像取込デバイス122は、車両200のバックミラーの近傍及び/又は運転者の近くに配置されてよく、画像取込デバイス124及び126は、車両200のバンパー領域上及びバンパー領域内(例えば、バンパー領域210のうちの1つ)に配置されてよい。図2Eに示されるように、画像取込デバイス122、124及び126は、車両200のバックミラーの近傍及び/又は運転席の近くに配置されてよい。開示される実施形態は、画像取込デバイスの特定の数及び構成に限定されることはなく、画像取込デバイスは、車両200内及び/又は車両200上の任意の適当な位置に配置されてよい。
開示される実施形態が車両に限定されることはなく、他のコンテキストに適用され得ることが理解されるべきである。開示される実施形態が、特定のタイプの車両200に限定されることはなく、自動車、トラック、トレーラ及び他のタイプの車両を含むあらゆるタイプの車両に適用可能であり得ることも理解されたい。
第1の画像取込デバイス122は、任意の好適なタイプの画像取込デバイスを含み得る。画像取込デバイス122は、光軸を含み得る。一例において、画像取込デバイス122は、グローバルシャッタを有するAptina M9V024 WVGAセンサを含み得る。他の実施形態において、画像取込デバイス122は、1280×960画素の解像度を提供してよく、ローリングシャッタを含み得る。画像取込デバイス122は、様々な光学素子を含み得る。いくつかの実施形態において、例えば、画像取込デバイスに対して所望焦点距離及び視野を提供するために、1又は複数のレンズが含まれてよい。いくつかの実施形態において、画像取込デバイス122は、6mmレンズ又は12mmレンズと関連付けられてよい。いくつかの実施形態において、画像取込デバイス122は、図2Dに示されるように、所望の視野(FOV)202を有する画像を取り込むように構成されてよい。例えば、画像取込デバイス122は、例えば、40度から56度の範囲内の、46度のFOV、50度のFOV、52度のFOV又はそれより大きいFOVを含む標準のFOVを有するように構成されてよい。代替的に、画像取込デバイス122は、23から40度の範囲内の狭FOV、例えば、28度のFOV又は36度のFOVを有するように構成されてよい。さらに、画像取込デバイス122は、100から180度の範囲内の広FOVを有するように構成されてよい。いくつかの実施形態において、画像取込デバイス122は、広角のバンパーのカメラ、又は、最大で180度のFOVを有するカメラを含み得る。いくつかの実施形態において、画像取込デバイス122は、約100度の水平FOVを用いて、約2:1のアスペクト比(例えば、HxV=3800×1900画素)を有する7.2M画素の画像取込デバイスであってよい。そのような画像取込デバイスは、3つの画像取込デバイス構成の代わりに用いられてよい。著しいレンズの歪みに起因して、そのような画像取込デバイスの鉛直FOVは、画像取込デバイスが半径方向に対称なレンズを用いる実装において、50度より大幅に小さくなり得る。例えば、そのようなレンズは、100度の水平FOVを用いて、50度よりも大きい鉛直FOVを可能にする半径方向に対称でなくてよい。
第1の画像取込デバイス122は、車両200と関連付けられるシーンに関連する複数の第1の画像を取得してよい。複数の第1の画像のそれぞれは、ローリングシャッタを用いて取り込まれ得る、一連の画像走査線として取得され得る。各走査線は、複数の画素を含み得る。
第1の画像取込デバイス122は、第1の一連の画像走査線のそれぞれの取得に関連付けられる走査速度を有してよい。走査速度は、特定の走査線に含まれる各画素と関連付けられる画像データを画像センサが取得できる速度を指し得る。
画像取込デバイス122、124及び126は、例えば、CCDセンサ又はCMOSセンサを含む任意の好適なタイプ及び数の画像センサを含んでよい。1つの実施形態において、CMOS画像センサは、ローリングシャッタと共に使用されてよく、行における各画素は一度に1つずつ読み取られ、画像フレーム全体が取り込まれるまで、行のスキャンは行ごとに進行する。いくつかの実施形態において、行は、フレームに対して上から下まで順次取り込まれ得る。
いくつかの実施形態において、本明細書で開示される画像取込デバイス(例えば、画像取込デバイス122、124及び126)のうちの1又は複数は、高解像度カメラを構成してよく、5M画素、7M画素、10M画素又はより大きい画素より大きい解像度を有してよい。
ローリングシャッタの使用は、結果として、異なる時間に異なる行における画素が露光されて取り込まれることになり、取り込まれた画像フレームに、スキュー及び他の画像アーチファクトを生じるかもしれない。一方、グローバルシャッター又はシンクロナスシャッターで動作するように構成された画像取込デバイス122の場合、すべての画素は、同じ時間だけ、共通の露光時間中に露光されてもよい。結果として、グローバルシャッタを使用するシステムから収集されたフレーム内の画像データは、特定の時間におけるFOV全体のスナップショット(例えば、FOV202)を表す。一方、ローリングシャッタを適用した場合、フレーム内の各行が露光され、データが異なる時間に取り込まれる。したがって、ローリングシャッタを有する画像取込デバイスでは、移動するオブジェクトに歪みが現れるかもしれない。この現象は、以下でより詳細に説明される。
第2の画像取込デバイス124及び第3の画像取込デバイス126は、任意のタイプの画像取込デバイスであってよい。第1の画像取込デバイス122のように、画像取込デバイス124及び126のそれぞれは、光軸を含み得る。1つの実施形態において、画像取込デバイス124及び126のそれぞれは、グローバルシャッタを有するAptina M9V024 WVGAセンサを含み得る。代替的に、画像取込デバイス124及び126のそれぞれは、ローリングシャッタを含み得る。画像取込デバイス122のように、画像取込デバイス124及び126は、様々なレンズ及び光学素子を含むように構成されてよい。いくつかの実施形態において、画像取込デバイス124及び126と関連付けられるレンズは、FOV(例えば、画像取込デバイス122と関連付けられる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つが、他の画像取込デバイスの可能性のある死角をカバーすることを可能にし得る。
画像取込デバイス122は、任意の適切な解像度機能(例えば、画像センサと関連付けられる画素の数)を有してよく、画像取込デバイス122と関連付けられる画像センサの解像度は、画像取込デバイス124及び126と関連付けられる画像センサの解像度より高い、低い、又は同じであってよい。いくつかの実施形態において、画像取込デバイス122及び/又は画像取込デバイス124及び126と関連付けられる画像センサは、640×480、1024×768、1280×960の解像度、又は、任意の他の適切な解像度を有してよい。
フレームレート(例えば、次の画像フレームと関連付けられる画素データの取り込みに移る前に、画像取込デバイスが1つの画像フレームの画素データのセットを取得するレート)は制御可能であり得る。画像取込デバイス122と関連付けられるフレームレートは、画像取込デバイス124及び126と関連付けられるフレームレートより高い、低い、又は同じであってよい。画像取込デバイス122、124及び126と関連付けられるフレームレートは、フレームレートのタイミングに影響を与え得る様々な要因に依存し得る。例えば、画像取込デバイス122、124及び126のうちの1又は複数は、画像取込デバイス122、124及び/又は126における画像センサの1又は複数の画素と関連付けられる画像データを取得する前後に掛かる選択可能な画素遅延時間を含み得る。一般に、各画素に対応する画像データは、デバイスに対するクロックレート(例えば、1画素毎のクロックサイクル)に従って取得され得る。さらに、ローリングシャッタを含む実施形態では、画像取込デバイス122、124及び126のうちの1又は複数は、画像取込デバイス122、124及び/又は126における画像センサの画素の行と関連付けられる画像データを取得する前後に掛かる選択可能な水平ブランキング期間を含み得る。さらに、画像取込デバイス122、124及び/又は126のうちの1又は複数は、画像取込デバイス122、124及び126の画像フレームと関連付けられる画像データを取得する前後に掛かる選択可能な垂直ブランキング期間を含み得る。
これらのタイミング制御は、それぞれのライン走査速度が異なる場合であっても、画像取込デバイス122、124及び126と関連付けられるフレームレートの同期を可能にし得る。さらに、以下でより詳細に議論されるように、これらの選択可能なタイミング制御は、要因(例えば、画像センサの解像度、最大ライン走査速度など)の中でも特に、画像取込デバイス122の視野が画像取込デバイス124及び126のFOVとは異なる場合であっても、画像取込デバイス122のFOVが画像取込デバイス124及び126の1又は複数のFOVと重複する領域から画像取込の同期を可能にし得る。
画像取込デバイス122、124及び126でのフレームレートのタイミングは、関連する画像センサの解像度に依存し得る。例えば、両方のデバイスに対する同様のライン走査速度を仮定すると、一方のデバイスが、640×480の解像度を有する画像センサを含み、他方のデバイスが1280×960の解像度を有する画像センサを含む場合、高い解像度を有するセンサから画像データのフレームを取得するのにより多くの時間が必要とされる。
画像取込デバイス122、124及び126における画像データ取得のタイミングに影響を与え得る別の要因は、最大ライン走査速度である。例えば、画像取込デバイス122、124及び126に含まれる画像センサからの画像データの行の取得は、ある最小の時間量を必要とする。画素遅延時間が加えられていないと仮定すると、1行の画像データを取得するためのこの最小の時間量は、特定のデバイスに対する最大ライン走査速度に関連する。より高い最大ライン走査速度を提示するデバイスは、より低い最大ライン走査速度を有するデバイスより高いフレームレートを提供する可能性がある。いくつかの実施形態において、画像取込デバイス124及び126のうちの1又は複数は、画像取込デバイス122と関連付けられる最大ライン走査速度より高い最大ライン走査速度を有し得る。いくつかの実施形態において、画像取込デバイス124及び/又は126の最大ライン走査速度は、画像取込デバイス122の最大ライン走査速度よりも、1.25倍、1.5倍、1.75倍、2倍又はそれより大きくてよい。
別の実施形態において、画像取込デバイス122、124及び126は、同じ最大ライン走査速度を有してもよいが、画像取込デバイス122は、その最大走査速度より小さい、又は、これに等しい走査速度で動作してよい。システムは、画像取込デバイス124及び126のうちの1又は複数が、画像取込デバイス122のライン走査速度に等しいライン走査速度で動作するように構成されてよい。他の事例では、システムは、画像取込デバイス124及び/又は画像取込デバイス126のライン走査速度が、画像取込デバイス122のライン走査速度よりも1.25倍、1.5倍、1.75倍、2倍又はそれより大きくなるように構成されてよい。
いくつかの実施形態において、画像取込デバイス122、124及び126は、非対称であってよい。つまり、それらは、様々な視野(FOV)及び焦点距離を有するカメラを含み得る。例えば、画像取込デバイス122、124及び126の視野は、車両200の環境に関連する任意の所望の領域を含み得る。いくつかの実施形態において、画像取込デバイス122、124及び126のうちの1又は複数は、車両200の前方、車両200の後方、車両200の側方又はそれらの組み合わせにおける環境から画像データを取得するように構成され得る。
さらに、各画像取込デバイス122、124及び/又は126と関連付けられる焦点距離は、各デバイスが車両200に関連する所望の距離範囲にあるオブジェクトの画像を取得するように、(例えば、適切なレンズなどを含めることにより)選択可能であり得る。例えば、いくつかの実施形態において、画像取込デバイス122、124及び126は、車両から数メートル内に近寄るオブジェクトの画像を取得してよい。画像取込デバイス122、124及び126は、車両からより遠い(例えば、25m、50m、100m、150m又はそれより遠い)範囲にあるオブジェクトの画像を取得するように構成されてもよい。さらに、画像取込デバイス122、124及び126の焦点距離は、ある画像取込デバイス(例えば、画像取込デバイス122)が、相対的に車両の近く(例えば、10m以内又は20m以内)にあるオブジェクトの画像を取得する一方、他の画像取込デバイス(例えば、画像取込デバイス124及び126)は、車両200からより遠く(例えば、20m、50m、100m、150mなどより遠く)にあるオブジェクトの画像を取得できるように選択され得る。
いくつかの実施形態によれば、1又は複数の画像取込デバイス122、124及び126のFOVは、広角を有してよい。例えば、特に、車両200の近傍にある領域の画像を取り込むために用いられ得る画像取込デバイス122、124及び126にとって、140度のFOVを有する方が都合がよい。例えば、画像取込デバイス122は、車両200の右側又は左側にある領域の画像を取り込むために用いられてよく、そのような実施形態において、画像取込デバイス122が広FOV(例えば、少なくとも140度)を有することが望ましいかもしれない。
画像取込デバイス122、124及び126のそれぞれと関連付けられる視野は、それぞれの焦点距離に依存し得る。例えば、焦点距離が大きくなるにつれて、対応する視野が縮小する。
画像取込デバイス122、124及び126は、任意の適切な視野を有するように構成され得る。ある特定の例において、画像取込デバイス122は、46度の水平FOVを有してよく、画像取込デバイス124は、23度の水平FOVを有してよく、画像取込デバイス126は、23度と46度との間の水平FOVを有してよい。別の例において、画像取込デバイス122は、52度の水平FOVを有してよく、画像取込デバイス124は、26度の水平FOVを有してよく、画像取込デバイス126は、26度と52度との間の水平FOVを有してよい。いくつかの実施形態において、画像取込デバイス124及び/又は画像取込デバイス126のFOVに対する画像取込デバイス122のFOVの比は、1.5から2.0まで変化し得る。他の実施形態において、この比は、1.25と2.25との間で変化し得る。
システム100は、画像取込デバイス122の視野が、画像取込デバイス124及び/又は画像取込デバイス126の視野と少なくとも部分的に又は完全に重複するように構成されてよい。いくつかの実施形態において、システム100は、画像取込デバイス124及び126の視野が、例えば、画像取込デバイス122の視野の範囲内に含まれ(例えば、より狭く)、画像取込デバイス122の視野と共通の中央を共有するように構成され得る。他の実施形態において、画像取込デバイス122、124及び126は、隣接するFOVを取り込んでよい、又は、それらのFOVにおいて部分的に重複する部分を有してよい。いくつかの実施形態において、狭FOVの画像取込デバイス124及び/又は126の中央が広FOVのデバイス122の視野の下半分に配置され得るように、画像取込デバイス122、124及び126の視野は整列されてよい。
図2Fは、開示される実施形態と矛盾しない例示的な車両制御システムの概略図である。図2Fに示されるように、車両200は、スロットリングシステム220、ブレーキシステム230及びステアリングシステム240を含み得る。システム100は、1又は複数のデータリンク(例えば、任意の有線及び/又は無線リンク、又は、データを伝送するためのリンク)を介して、スロットリングシステム220、ブレーキシステム230及びステアリングシステム240のうちの1又は複数に入力(例えば、制御信号)を提供してよい。例えば、画像取込デバイス122、124及び/又は126により取得された画像の解析に基づいて、システム100は、(例えば、加速させ、方向転換させ、車線変更させるなどにより)車両200をナビゲートするために、スロットリングシステム220、ブレーキシステム230及びステアリングシステム240のうちの1又は複数に制御信号を提供してよい。さらに、システム100は、車両200の動作条件(例えば、速度、車両200がブレーキする及び/又は方向転換するか否か、など)を示す入力を、スロットリングシステム220、ブレーキシステム230及びステアリングシステム24のうちの1又は複数から受信してよい。さらなる詳細は、以下で、図4~図7に関連して提供される。
図3Aに示されるように、車両200は、車両200の運転者又は搭乗者とインタラクションするためのユーザインタフェース170を含んでもよい。例えば、車両に適用されるユーザインタフェース170は、タッチスクリーン320、ノブ330、ボタン340及びマイク350を含み得る。車両200の運転者又は搭乗者は、(例えば、ウィンカーハンドルを含む車両200のステアリングコラム上又はその近くに例えば配置される)ハンドル及び(例えば、車両200のステアリングホイールに配置される)ボタンなどを用いて、システム100とインタラクションしてもよい。いくつかの実施形態において、マイク350は、バックミラー310に隣接して配置されてよい。同様に、いくつかの実施形態において、画像取込デバイス122は、バックミラー310の近くに配置されてよい。いくつかの実施形態において、ユーザインタフェース170は、1又は複数のスピーカ360(例えば、車両のオーディオシステムのスピーカ)を含んでもよい。例えば、システム100は、スピーカ360を介して、様々な通知(例えば、アラート)を提供してよい。
図3B~図3Dは、開示される実施形態と矛盾しない、バックミラー(例えば、バックミラー310)の背後で、車両のフロントガラスに向き合って配置されるように構成される例示的なカメラマウント370の図である。図3Bに示されるように、カメラマウント370は、画像取込デバイス122、124及び126を含んでよい。画像取込デバイス124及び126は、グレアシールド380の背後に配置され、グレアシールド380は、車両のフロントガラスにぴったり重なり、フィルム及び/又は反射防止用材料の構成を含み得る。例えば、グレアシールド380は、一致する傾きを有する車両のフロントガラスに対してシールドを揃えるように配置されてよい。いくつかの実施形態において、画像取込デバイス122、124及び126のそれぞれは、例えば、図3Dに図示されるように、グレアシールド380の背後に配置されてよい。開示される実施形態は、画像取込デバイス122、124及び126、カメラマウント370及びグレアシールド380の特定の構成に限定されることはない。図3Cは、正面からの図3Bに示されるカメラマウント370の図である。
本開示の利点を有する当業者により理解されるように、数々の変形及び/又は修正が、上記の開示される実施形態に行われてよい。例えば、必ずしもすべてのコンポーネントが、システム100の動作に不可欠なわけではない。さらに、任意のコンポーネントは、システム100の任意の適切な部分に配置されてよく、当該コンポーネントは開示される実施形態の機能性を提供しつつ、様々な構成に再構築されてよい。したがって、上記の構成は例であり、上述の構成に関わらず、システム100は、車両200の周辺を解析し、解析に応答して車両200をナビゲートするように、広範囲な機能性を提供できる。
以下でさらに詳細に議論され、様々な開示される実施形態と矛盾しないように、システム100は、自律運転及び/又は運転者支援技術に関連する様々な特徴を提供してよい。例えば、システム100は、画像データ、位置データ(例えば、GPSの位置情報)、マップデータ、速度データ、及び/又は、車両200に含まれるセンサからのデータを解析してよい。システム100は、例えば、画像取得ユニット120、位置センサ130及び他のセンサから、解析用のデータを収集してよい。さらに、システム100は、車両200が、収集されたデータを解析して、特定の動作を行うべきか否かを判定し、次に、人の介在なしに判定された動作を自動的に行ってよい。例えば、人の介在なしに車両200がナビゲートする場合、システム100は、(例えば、スロットリングシステム220、ブレーキシステム230及びステアリングシステム240のうちの1又は複数に制御信号を送信することにより)車両200のブレーキ、加速、及び/又は、ステアリングを自動的に制御してよい。さらに、システム100は、収集されたデータを解析し、収集されたデータの解析に基づいて、車両の搭乗者に警告及び/又はアラートを発行してよい。システム100により提供される様々な実施形態に関するさらなる詳細は、以下で提供される。
前向きのマルチ撮像システム
上述したように、システム100は、マルチカメラシステムを用いる運転支援機能を提供してよい。マルチカメラシステムは、車両の進行方向を向いている1又は複数のカメラを用いてよい。他の実施形態において、マルチカメラシステムは、車両の側方又は車両の後部を向いている1又は複数のカメラを含んでよい。1つの実施形態において、例えば、システム100は、2つのカメラ撮像システムを用いてよく、第1のカメラ及び第2のカメラ(例えば、画像取込デバイス122及び124)は、車両(例えば、車両200)の前方及び/又は側方に配置されてよい。第1のカメラは、第2のカメラの視野より広い、より狭い、又は、部分的に重複する視野を有してよい。さらに、第1のカメラは、第1のカメラにより提供される画像の単眼画像解析を実行する第1の画像プロセッサに接続されてよく、第2のカメラは、第2のカメラにより提供される画像の単眼画像解析を実行する第2の画像プロセッサに接続されてよい。第1及び第2の画像プロセッサの出力(例えば、処理された情報)は組み合わせられてよい。いくつかの実施形態において、第2の画像プロセッサは、第1のカメラ及び第2のカメラの両方から画像を受信して、ステレオ解析を実行してよい。別の実施形態において、システム100は、カメラの各が様々な視野を有する3つのカメラ撮像システムを用いてよい。したがって、そのようなシステムは、車両の前方及び側方の両方の様々な距離に配置されているオブジェクトから導出された情報に基づいて判定を行ってよい。単眼画像解析への言及は、画像解析が単一の視点から(例えば、単一のカメラから)取り込まれた画像に基づいて実行される例を指し得る。ステレオ画像解析は、画像取込パラメータの1又は複数のバリエーションで取り込まれた2又はそれより多くの画像に基づいて画像解析が実行された例を指し得る。例えば、ステレオ画像解析を実行するのに適した取り込まれた画像は、2又はそれより多くの異なる位置から、様々な視野から、異なる焦点距離を用いて、視差情報などと共に取り込まれた画像を含んでよい。
例えば、1つの実施形態において、システム100は、画像取込デバイス122、124及び126を用いて、3カメラ構成を実装してよい。そのような構成において、画像取込デバイス122は、狭視野(例えば、約20から45度などの範囲から選択された34度又は他の値)を提供してよく、画像取込デバイス124は、広視野(例えば、約100から約180度の範囲から選択された150度又は他の値)を提供してよく、画像取込デバイス126は、中間の視野(例えば、約35から約60度の範囲から選択される46度又は他の値)を提供してよい。いくつかの実施形態において、画像取込デバイス126は、主カメラ又はプライマリカメラとして動作し得る。画像取込デバイス122、124及び126は、バックミラー310の背後に配置され、実質的に並んで(例えば、6cm離れて)配置されていてよい。さらに、いくつかの実施形態において、上述したように、画像取込デバイス122、124及び126のうちの1又は複数は、車両200のフロントガラスにぴったり重なるグレアシールド380の背後に取り付けられ得る。そのようなシールドは、画像取込デバイス122、124及び126の車の内部からの任意の反射の影響を最小限に抑えるように動作し得る。
別の実施形態において、図3B及び図3Cに関連して上述したように、広視野カメラ(例えば、上記の例における画像取込デバイス124)は、狭い及び主視野カメラ(例えば、上記の例における画像デバイス122及び126)より下部に取り付けられ得る。この構成は、広視野カメラからの自由な視線をもたらし得る。反射を減らすために、カメラは、車両200のフロントガラスの近くに取り付けられてよく、反射した光を減衰させるために、カメラに偏光板を含み得る。
3カメラシステムは、特定の性能特性を提供し得る。例えば、いくつかの実施形態は、別のカメラからの検出結果に基づいて、あるカメラによるオブジェクトの検出を検証する能力を含み得る。上述した3カメラ構成では、処理ユニット110は、3つの処理デバイス(例えば、上述したようなプロセッサチップの3つのEyeQシリーズ)を含んでよく、例えば、各処理デバイスは、画像取込デバイス122、124及び126のうちの1又は複数により取り込まれた画像を処理するのに特化している。
3カメラシステムにおいて、第1の処理デバイスは、主カメラ及び狭視野カメラの両方から画像を受信し、てよく、狭FOVカメラの視覚処理を実行して、例えば、他の車両、歩行者、車線標示、交通標識、交通信号灯及び他の道路オブジェクトを検出し得る。さらにに,第1の処理デバイスは,主カメラ及び狭カメラからの画像間の画素の視差を計算し、車両200の環境の3D再構築を生成し得る。第1の処理デバイスは、次に、3D再構築を、3Dマップデータと、又は、別のカメラからの情報に基づいて算出された3D情報と結合してよい。
第2の処理デバイスは、主カメラから画像を受信し、視覚処理を実行して、他の車両、歩行者、車線標示、交通標識、交通信号灯及び他の道路オブジェクトを検出し得る。さらに、第2の処理デバイスは、カメラのずれを計算し、当該ずれに基づいて、一連の画像間の画素の視差を計算し、シーン(例えば、動作からの構造)の3D再構築を生成し得る。第2の処理デバイスは、ステレオ3D画像と組み合わせられる対象の3D再構築に基づく動作からの構造を第1の処理デバイスに送信し得る。
第3の処理デバイスは、広FOVカメラから画像受信し、当該画像を処理して、車両、歩行者、車線標示、交通標識、交通信号灯及び他の道路オブジェクトを検出し得る。第3の処理デバイスは、さらに、追加の処理命令を実行して画像を解析し、画像内を移動するオブジェクト、例えば、車線を変更する車両、歩行者などを識別し得る。
いくつかの実施形態において、画像ベースの情報のストリームを独立して取り込まれて処理されることは、システムの冗長性を提供するための機会を提供し得る。そのような冗長性は、例えば、第1の画像取込デバイス及びそのデバイスから処理された画像を用いて、少なくとも第2の画像取込デバイスからの画像情報を取り込んで処理することにより取得された情報を検証及び/又は補完することを含み得る。
いくつかの実施形態において、システム100は、車両200にナビゲーション支援を提供する際に、2つの画像取込デバイス(例えば、画像取込デバイス122及び124)を用いてよく、第3の画像取込デバイス(例えば、画像取込デバイス126)を用いて、冗長性を提供し、他の2つの画像取込デバイスから受信したデータの解析を検証し得る。例えば、そのような構成において、画像取込デバイス122及び124は、車両200をナビゲートするためにシステム100によるステレオ解析のための画像を提供してよく、一方、画像取込デバイス126は、画像取込デバイス122及び/又は画像取込デバイス124から取り込まれた画像に基づいて取得した情報の冗長性及び検証を提供するために、システム100による単眼解析のための画像を提供してよい。つまり、画像取込デバイス126(及び、対応する処理デバイス)は、(例えば、自動緊急ブレーキ(AEB)システムを提供するために)画像取込デバイス122及び124から導出された解析に対するチェックを提供するための冗長サブシステムを提供するものととらえられ得る。さらに、いくつかの実施形態において、受信したデータの冗長性及び検証は、1又は複数のセンサから受信した情報(例えば、レーダ、ライダ、音響センサ、車両の外部の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又は複数の処理デバイスにより実行されてよい。
1つの実施形態において、単眼画像解析モジュール402は、処理ユニット110により実行される場合、画像取込デバイス122、124及び126のうちの1つにより取得された画像のセットの単眼画像解析を実行する命令(例えば、コンピュータビジョンソフトウェア)を格納してよい。いくつかの実施形態において、処理ユニット110は、画像のセットからの情報を、追加の知覚情報(例えば、レーダ、ライダなどからの情報)と結合して、単眼画像解析を実行してよい。以下で、図5A~図5Dに関連して説明されるように、単眼画像解析モジュール402は、画像セット内の特徴セット、例えば、車両の環境と関連付けられる車線標示、車両、歩行者、道路標識、高速道路出口ランプ、交通信号灯、危険物及び他のいずれかの特徴を検出するための命令を含み得る。解析に基づいて、(例えば、処理ユニット110を介して)システム100は、ナビゲーション応答モジュール408に関連して以下で議論されるように、方向転換、車線変更及び加速度の変更など、車両200における1又は複数のナビゲーション応答を実行させてよい。
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は、訓練されたシステム(例えば、ニューラルネットワーク又はディープニューラルネットワーク)、又は、訓練されていないシステム、例えば、コンピュータビジョンアルゴリズムを用いて、知覚情報が取り込まれて処理された環境内のオブジェクトを検出及び/又は分類するように構成され得るシステムと関連付けられる技術を実装してよい。1つの実施形態において、ステレオ画像解析モジュール404及び/又は他の画像処理モジュールは、訓練されているシステム及び訓練されていないシステムの組み合わせを用いるように構成されてよい。
1つの実施形態において、速度及び加速度モジュール406は、車両200の速度及び/又は加速度を変更させるように構成される車両200内の1又は複数のコンピューティング及び電気機械デバイスから受信したデータを解析するように構成されるソフトウェアを格納してよい。例えば、処理ユニット110は、単眼画像解析モジュール402及び/又はステレオ画像解析モジュール404の実行から導出されたデータに基づいて、車両200に対する目標速度を計算するように、速度及び加速度モジュール406と関連付けられた命令を実行してよい。そのようなデータは、例えば、目標位置、速度及び/又は加速度、近くの車両、歩行者又は道路オブジェクトに対して相対的な車両200の位置及び/又は速度、及び、道路の車線標示に対して相対的な車両200の位置情報を含み得る。さらに、処理ユニット110は、知覚入力(例えば、レーダからの情報)、及び、車両200の他のシステム、例えば、車両200のスロットリングシステム220、ブレーキシステム230及び/又はステアリングシステム240からの入力に基づいて、車両200に対する目標速度を計算してよい。算出された目標速度に基づいて、処理ユニット110は、車両200のスロットリングシステム220、ブレーキシステム230、及び/又は、ステアリングシステム240に電子信号を伝送して、例えば、物理的にブレーキをかける、又は、車両200のアクセルを緩めることにより、速度及び/又は加速度を変更することをトリガし得る。
1つの実施形態において、ナビゲーション応答モジュール408は、単眼画像解析モジュール402及び/又はステレオ画像解析モジュール404から導出されたデータに基づいて、所望のナビゲーション応答を判定するように、処理ユニット110により実行可能なソフトウェアを格納してよい。そのようなデータは、近くの車両、歩行者及び道路オブジェクト、及び、車両200の目標位置情報などと関連付けられる位置及び速度情報を含み得る。さらに、いくつかの実施形態において、ナビゲーション応答は、マップデータ、車両200の予め定められた位置、及び/又は、単眼画像解析モジュール402及び/又はステレオ画像解析モジュール404から検出された車両200と1又は複数の物体との間の相対速度又は相対加速度に(部分的に又は完全に)基づいてよい。ナビゲーション応答モジュール408は、知覚入力(例えば、レーダからの情報)、及び、車両200の他のシステム、例えば、車両200のスロットリングシステム220、ブレーキシステム230及びステアリングシステム240からの入力に基づいて、所望のナビゲーション応答を判定してもよい。所望のナビゲーション応答に基づいて、処理ユニット110は、車両200のスロットリングシステム220、ブレーキシステム230及びステアリングシステム240に電子信号を伝送して、例えば、車両200のステアリングホイールを回転させて、予め定められた角度の回転を実現することにより、所望のナビゲーション応答をトリガしてよい。いくつかの実施形態において、処理ユニット110は、車両200の速度の変更を算出するために、速度及び加速度モジュール406の実行への入力として、ナビゲーション応答モジュール408の出力(例えば、所望のナビゲーション応答)を用いてよい。
さらに、本明細書で開示されるモジュール(例えば、モジュール402、404及び406)のいずれかは、訓練されたシステム(など、ニューラルネットワーク又はディープニューラルネットワーク)又は訓練されていないシステムと関連付けられる技術を実装してよい。
図5Aは、開示される実施形態と矛盾しない、単眼画像解析に基づいて1又は複数のナビゲーション応答を行うための例示的なプロセスを示すフローチャート500Aである。段階510において、処理ユニット110は、処理ユニット110と画像取得ユニット120との間のデータインタフェース128を介して複数の画像を受信してよい。例えば、画像取得ユニット120に含まれるカメラ(例えば、視野202を有する画像取込デバイス122)は、車両200の前方(又は、例えば、車両の側方又は後部)の領域の複数の画像を取り込み、それらをデータ接続(例えば、デジタル、有線、USB、無線、Bluetooth(登録商標)など)を介して処理ユニット110に伝送してよい。処理ユニット110は、以下で図5B~図5Dに関連するさらなる詳細で説明されるように、段階520において、単眼画像解析モジュール402を実行して、複数の画像の解析を実行してよい。解析を実行することにより、処理ユニット110は、画像セット内の特徴セット、例えば、車線標示、車両、歩行者、道路標識、高速道路出口ランプ及び交通信号灯などを検出してよい。
段階520において、処理ユニット110は、単眼画像解析モジュール402を実行し、様々な道路障害物、例えば、トラックのタイヤのパーツ、落下した道路標識、ルーズカーゴ及び小動物などを検出することを実行してもよい。道路障害物は、構造、形状、サイズ及び色によって異なり、そのような障害物の検出をより困難にし得る。いくつかの実施形態において、処理ユニット110は、単眼画像解析モジュール402を実行し、複数の画像に対するマルチフレーム解析を実行して道路障害物を検出し得る。例えば、処理ユニット110は、連続する画像フレーム間のカメラの動きを推定し、フレーム間の画素の視差を計算して道路の3Dマップを構築してよい。次に、処理ユニット110は、3Dマップを用いて、路面及び路面に存在する障害物を検出してよい。
段階530において、処理ユニット110は、ナビゲーション応答モジュール408を実行して、段階520において実行された解析、及び、図4に関連して上述した技術に基づいて、車両200における1又は複数のナビゲーション応答を行ってよい。ナビゲーション応答は、例えば、方向転換、車線変更及び加速度の変更などを含み得る。いくつかの実施形態において、処理ユニット110は、速度及び加速度モジュール406の実行から導出されたデータを用いて、1又は複数のナビゲーション応答を行ってよい。さらに、複数のナビゲーション応答は、同時に、順番に、又は、それらの任意の組み合わせで生じ得る。例えば、処理ユニット110は、例えば、車両200のステアリングシステム240及びスロットリングシステム220に制御信号を連続して伝送することにより、車両200を一車線向こう側に変えて、その後加速させてよい。代替的に、処理ユニット110は、例えば、車両200のブレーキシステム230及びステアリングシステム240に制御信号を連続的に伝送することにより、車両200にブレーキをかけさせながら、同時に車線を変えてよい。
図5Bは、開示される実施形態と矛盾しない、画像のセット内の1又は複数の車両及び/又は歩行者を検出するための例示的なプロセスを示すフローチャート500Bである。処理ユニット110は、単眼画像解析モジュール402を実行して、処理500Bを実施してよい。段階540において、処理ユニット110は、可能性のある車両及び/又は歩行者を表す候補オブジェクトのセットを判定してよい。例えば、処理ユニット110は、1又は複数の画像をスキャンし、当該画像を1又は複数の予め定められたパターンと比較し、各画像内に、関心のあるオブジェクト(例えば、車両、歩行者又はそれらの一部)を含み得る可能性のある位置を識別してよい。予め定められたパターンは、高い割合の「偽のヒット」及び低い割合の「見逃し」を実現するようなやり方で設計されてよい。例えば、処理ユニット110は、可能性のある車両又は歩行者として候補オブジェクトを識別するために、予め定められたパターンとの低閾値の類似性を用いてよい。そうすることにより、処理ユニット110が車両又は歩行者を表す候補オブジェクトを見逃す(例えば、識別していない)確率を減らすことが可能となり得る。
段階542において、処理ユニット110は、候補オブジェクトのセットをフィルタリングし、分類基準に基づいて、特定の候補(例えば、無関係なオブジェクト又は関連性の低いオブジェクト)を除外してよい。そのような基準は、データベース(例えば、メモリ140に格納されているデータベース)に格納されたオブジェクトの種類と関連付けられている様々な特性から導出され得る。特性は、(例えば、車両200に対する)オブジェクトの形状、寸法、質感、位置などを含み得る。したがって、処理ユニット110は、候補オブジェクトのセットから1又は複数の基準のセットを用いて、偽の候補を拒否してよい。
段階544において、処理ユニット110は、画像の複数のフレームを解析して、候補オブジェクトのセット内のオブジェクトが車両及び/又は歩行者を表すか否かを判定してよい。例えば、処理ユニット110は、連続したフレームにわたって検出した候補オブジェクトを追跡し、検出されたオブジェクト(例えば、車両200に関連するサイズ、位置など)と関連付けられたフレームごとのデータを蓄積してよい。さらに、処理ユニット110は、検出されたオブジェクトに対するパラメータを推定し、オブジェクトのフレームごとの位置データを予測された位置と比較してよい。
段階546において、処理ユニット110は、検出されたオブジェクトに対する測定値のセットを構築してよい。そのような測定値は、例えば、検出されたオブジェクトと関連付けられた(車両200に関連する)位置、速度及び加速度の値を含み得る。いくつかの実施形態において、処理ユニット110は、一連の時間ベースの観測、例えば、カルマンフィルタ又は線形二次推定(LQE)を用いた推定技術に基づいて、及び/又は、異なるオブジェクトの種類(例えば、車、トラック、歩行者、自転車、道路標識など)に対する利用可能なモデル化データに基づいて、測定値を構築してよい。カルマンフィルタは、オブジェクトのスケールの測定に基づいてよく、ここで、スケールの測定値は、衝突までの時間(例えば、車両200がオブジェクトに到達までの時間の長さ)に比例する。したがって、段階540-546を実行することによって、処理ユニット110は、取り込まれた画像のセット内に現れる車両及び歩行者を識別して、車両及び歩行者と関連付けられる情報(例えば、位置、速度、サイズ)を導出し得る。識別子及び導出された情報に基づいて、処理ユニット110は、上記の図5Aに関連して説明されたように、車両200における1又は複数のナビゲーション応答を行ってよい。
段階548において、処理ユニット110は、1又は複数の画像のオプティカルフロー解析を実行して、「偽のヒット」を検出する確率、及び、車両又は歩行者を表す候補オブジェクトを見逃す確率を減らし得る。オプティカルフロー解析は、例えば、他の車両及び歩行者と関連付けられる1又は複数の画像内の車両200に関連し、路面動作とは区別される動作パターンを解析することを指し得る。処理ユニット110は、異なる時間に取り込まれた複数の画像フレームにわたるオブジェクトの異なる位置を観測することにより、候補オブジェクトの動作を計算してよい。処理ユニット110は、候補オブジェクトの動作を算出するための数学的モデルへの入力として、位置及び時間の値を用いてよい。したがって、オプティカルフロー解析は、車両200の近くにある車両及び歩行者を検出する別の方法を提供してよい。処理ユニット110は、段階540-546の組み合わせでオプティカルフロー解析を実行して、車両及び歩行者を検出するための冗長性を提供し、システム100の信頼性を向上させ得る。
図5Cは、開示される実施形態と矛盾しない、画像のセット内の路面標示及び/又は車線形状情報を検出するための例示的なプロセスを示すフローチャート500Cである。処理ユニット110は、単眼画像解析モジュール402を実行して処理500Cを実施してよい。段階550において、処理ユニット110は、1又は複数の画像をスキャンすることにより、オブジェクトのセットを検出してよい。車線標示、車線形状情報及び他の関連する路面標示のセグメントを検出するために、処理ユニット110は、オブジェクトのセットをフィルタリングして、無関係であると判定されたもの(例えば、わずかなくぼみ、小さな岩など)を除外してよい。段階552において、処理ユニット110は、同じ道路標示又は車線標示に属する段階550において検出されたセグメントを一緒にグループ化してよい。グループ化に基づいて、処理ユニット110は、検出されたセグメントを表すモデル、例えば、数学的なモデルを展開し得る。
段階554において、処理ユニット110は、検出されたセグメントと関連付けられる測定値のセットを構築してよい。いくつかの実施形態において、処理ユニット110は、画像平面から現実世界の平面上に検出されたセグメントの射影を作成してよい。射影は、物理的な特性、例えば、検出された道路の位置、傾き、曲率及び曲率関数に対応する係数を有する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メートルの範囲に収まり得る。1つの実施形態において、処理ユニット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で判定されたナビゲーション情報を解析してよい。1つの実施形態において、処理ユニット110は、スネイルトレイルと道路多項式との間の(例えば、軌跡に沿う)距離を計算してよい。軌跡に沿うこの距離の分散が、予め定められた閾値(例えば、直線道路では0.1から0.2メートル、適度にカーブした道路では0.3から0.4メートル及び急カーブのある道路では0.5から0.6メートル)を超える場合、処理ユニット110は、先行車両が車線を変更しそうであると判定してよい。複数の自動車が車両200の前方を走行していることが検出された場合、処理ユニット110は、各車両と関連付けられたスネイルトレイルを比較してよい。比較に基づいて、処理ユニット110は、スネイルトレイルが他の車両のスネイルトレイルと一致していない車両が車線を変更しそうであると判定してよい。処理ユニット110は、(先行車両と関連付けられている)スネイルトレイルの曲率を先行車両が走行している道路セグメントの予想される曲率とさらに比較してよい。予想される曲率は、マップデータから(例えば、マップデータベース160からのデータから)、道路多項式から、他の車両のスネイルトレイルから、及び、道路についての予備知識などから抽出されてよい。スネイルトレイルの曲率と道路セグメントの予想される曲率との差が、予め定められた閾値を超える場合、処理ユニット110は、先行車両が車線を変更しそうであると判定してよい。
別の実施形態において、処理ユニット110は、特定の期間(例えば、0.5から1.5秒)にわたって、先行車両の瞬間の位置を(車両200と関連付けられている)先読み点と比較してよい。先行車両の瞬間の位置と先読み点との間の距離が、特定の期間中に変化した場合、変化の累積的合計が予め定められた閾値(例えば、直線道路では0.3から0.4メートル、適度にカーブした道路では0.7から0.8メートル、及び、急カーブのある道路では1.3から1.7メートル)を超えた場合、処理ユニット110は、先行車両が車線を変更しそうであると判定してよい。別の実施形態において、処理ユニット110は、軌跡に沿って走行した横方向距離を予想されるスネイルトレイルの曲率と比較することにより、スネイルトレイルの幾何学形状を解析してよい。予想される曲率半径は、計算(δz
2+δx
2)/2/(δx)に従って判定されてよく、ここで、δxは走行した横方向距離を表し、δzは、走行した長手方向の距離を表す。走行した横方向距離と予想される曲率との間の差が、予め定められた閾値(例えば、500から700メートル)を超えた場合、処理ユニット110は、先行車両が車線を変更しそうであると判定してよい。別の実施形態において、処理ユニット110は、先行車両の位置を解析してよい。先行車両の位置が、道路多項式(例えば、先行車両が道路多項式の上部にオーバーレイされる)を分かりにくくする場合、処理ユニット110は、先行車両が車線を変更しそうであると判定してよい。先行車両の前方に別の車両が検出されるように、及び、2つの車両のスネイルトレイルが平行でないような位置に先行車両がいる場合、処理ユニット110は、(より近い)先行車両が車線を変更しそうであると判定してよい。
段階584において、処理ユニット110は、段階582で実行された解析に基づいて、先行車両200が車線を変更しているか否かを判定してよい。例えば、処理ユニット110は、段階582で実行された個々の解析の重み付けされた平均に基づいた判定を行ってよい。そのようなスキームの下、例えば、特定のタイプの解析に基づいて、先行車両が車線を変更しそうであるとの処理ユニット110による判定は、「1」の値が割り当てられてよい(「0」は、先行車両が車線を変更しそうにないとの判定を表す)。段階582で実行された異なる解析は、異なる重みが割り当てられてよく、開示される実施形態では、解析及び重みの特定の組み合わせに限定されることはない。
図6は、開示される実施形態と矛盾しない、ステレオ画像解析に基づいて1又は複数のナビゲーション応答を行うための例示的なプロセスを示すフローチャート600である。段階610において、処理ユニット110は、データインタフェース128を介して第1及び第2の複数の画像を受信してよい。例えば、画像取得ユニット120に含まれるカメラ(例えば、視野202及び204を有する画像取込デバイス122及び124)は、車両200の前方の領域の第1及び第2の複数の画像を取り込み、それらをデジタル接続(例えば、USB、無線、Bluetooth(登録商標)など)を介して処理ユニット110に伝送してよい。いくつかの実施形態において、処理ユニット110は、2又はそれより多くのデータインタフェースを介して第1及び第2の複数の画像を受信してよい。開示される実施形態は、特定のデータインタフェース構成又はプロトコルに限定されることはない。
段階620において、処理ユニット110は、ステレオ画像解析モジュール404を実行し、第1及び第2の複数の画像のステレオ画像解析を実行して、車両の前方の道路についての3Dマップを作成し、画像内の特徴、例えば、車線標示、車両、歩行者、道路標識、高速道路出口ランプ、交通信号灯及び道路障害物などを検出し得る。ステレオ画像解析は、上記の図5A~図5Dに関連して説明された段階と同様の態様で実行され得る。例えば、処理ユニット110は、ステレオ画像解析モジュール404を実行し、第1及び第2の複数の画像内の候補オブジェクト(例えば、車両、歩行者、路面標示、交通信号灯、道路障害物など)を検出し、様々な基準に基づいて候補オブジェクトのサブセットを取り除き、マルチフレーム解析を実行して、測定値を構築し、残りの候補オブジェクトに対する信頼水準を判定してよい。上記の段階を実行する際に、処理ユニット110は、1つの画像のセットのみからの情報よりはむしろ、第1及び第2の複数の画像の両方からの情報を考慮してよい。例えば、処理ユニット110は、第1及び第2の複数の画像の両方に現れる候補オブジェクトに対する画素レベルのデータ(又は、取り込まれた画像の2つのストリームからの他のデータサブセット)における差を解析してよい。別の例として、処理ユニット110は、オブジェクトが、複数の画像のうちの1つに現れているが、他の画像には現れていないことを観測することにより、又は、2つの画像ストリームに現れるオブジェクトに関連して存在し得る他の差に関連して、(例えば、車両200に関連する)候補オブジェクトの位置及び/又は速度を推定してよい。例えば、車両200に関連する位置、速度及び/又は加速度は、画像ストリームの一方又は両方に現れるオブジェクトと関連付けられる特徴の軌跡、位置、動作、特性などに基づいて判定され得る。
段階630、処理ユニット110は、ナビゲーション応答モジュール408を実行して、段階620において実行された解析、及び、図4に関連して上述したような技術に基づいて、車両200における1又は複数のナビゲーション応答を行ってよい。ナビゲーション応答は、例えば、方向転換、車線変更、加速度の変更、速度の変更及びブレーキなどを含み得る。いくつかの実施形態において、処理ユニット110は、速度及び加速度モジュール406の実行から導出されたデータを用いて、1又は複数のナビゲーション応答を行ってよい。さらに、複数のナビゲーション応答は、同時に、順番に、又は、それらの任意の組み合わせで生じ得る。
図7は、開示される実施形態と矛盾しない、画像の3つのセットの解析に基づいて、1又は複数のナビゲーション応答を行うための例示的なプロセスを示すフローチャート700である。段階710において、処理ユニット110は、データインタフェース128を介して第1、第2及び第3の複数の画像を受信してよい。例えば、画像取得ユニット120に含まれるカメラ(例えば、視野202、204及び206を有する画像取込デバイス122、124及び126)は、前方、及び/又は、車両200の側方の領域の第1、第2及び第3の複数の画像を取り込み、それらをデジタル接続(例えば、USB、無線、Bluetooth(登録商標)など)を介して処理ユニット110に伝送してよい。いくつかの実施形態において、処理ユニット110は、3又はそれより多くのデータインタフェースを介して、第1、第2及び第3の複数の画像を受信してよい。例えば、画像取込デバイス122、124、126のそれぞれは、処理ユニット110にデータを通信するために関連するデータインタフェースを有してよい。開示される実施形態は、特定のデータインタフェース構成又はプロトコルに限定されることはない。
段階720において、処理ユニット110は、第1、第2及び第3の複数の画像を解析して、画像内の特徴、例えば、車線標示、車両、歩行者、道路標識、高速道路出口ランプ、交通信号灯及び道路障害物などを検出してよい。解析は、上記の図5A~図5D及び図6に関連して説明された段階と同様の態様で実行されてよい。例えば、処理ユニット110は、第1、第2及び第3の複数の画像のそれぞれに対して、(例えば、単眼画像解析モジュール402の実行を介して、上記の図5A~図5Dに関連して説明された段階に基づいて)単眼画像解析を実行してよい。代替的に、処理ユニット110は、第1及び第2の複数の画像、第2及び第3の複数の画像、及び/又は、第1及び第3の複数の画像に対して、(例えば、ステレオ画像解析モジュール404の実行を介して、上記の図6に関連して説明された段階に基づいて)ステレオ画像解析を実行してよい。第1、第2及び/又は第3の複数の画像の解析に対応する処理された情報が組み合わせられてよい。いくつかの実施形態において、処理ユニット110は、単眼及びステレオ画像解析の組み合わせを実行してよい。例えば、処理ユニット110は、第1の複数の画像に対して、(例えば、単眼画像解析モジュール402の実行を介して)単眼画像解析を実行し、第2及び第3の複数の画像に対して、(例えば、ステレオ画像解析モジュール404の実行を介して)ステレオ画像解析を実行してよい。画像取込デバイス122、124及び126の構成、それらのそれぞれの位置及び視野202、204及び206を含む、は、第1、第2及び第3の複数の画像に対して行われたタイプの解析に影響を与え得る。開示される実施形態は、画像取込デバイス122、124及び126の特定の構成、又は、第1、第2及び第3の複数の画像に対して行われるタイプの解析に限定されることはない。
いくつかの実施形態において、処理ユニット110は、段階710及び720で取得及び解析された画像に基づいて、システム100に対するテストを実行してよい。そのようなテストは、画像取込デバイス122、124及び126の特定の構成に対して、システム100の全体的な性能のインジケータを提供してよい。例えば、処理ユニット110は、「偽のヒット」(例えば、システム100が、車両又は歩行者の存在を間違って判定した場合)及び「見逃し」の割合を判定してよい。
段階730において、処理ユニット110は、第1、第2及び第3の複数の画像のうちの2つから導出された情報に基づいて、車両200における1又は複数のナビゲーション応答を行ってよい。第1、第2及び第3の複数の画像のうちの2つを選択することは、様々な係数、例えば、複数の画像のそれぞれにおいて検出されたオブジェクトの数、タイプ及びサイズなどに依存し得る。処理ユニット110は、画像品質及び解像度画像、画像内に反映される効果的な視野、取り込まれたフレームの数、及び、関心のある1又は複数の物体がフレームに実際に現れる程度(例えば、オブジェクトが現れるフレームのパーセンテージ、それぞれのそのようなフレームにおいて現れるオブジェクトの割合など)などに反映されるに基づいた選択を行ってもよい。
いくつかの実施形態において、処理ユニット110は、他の画像源から導出された情報と矛盾しない1つの画像源から導出された情報の程度を判定することにより、第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は、第1、第2及び第3の複数の画像のいずれか内で検出された車両200とオブジェクトとの間の相対位置、相対速度及び/又は相対加速度に基づいて、1又は複数のナビゲーション応答を行ってよい。複数のナビゲーション応答が、同時に、順番に、又は、それらの任意の組み合わせで生じ得る。
自律走行車両のナビゲーションに対するスパース道路モデル
いくつかの実施形態において、開示されるシステム及び方法は、自律走行車両のナビゲーションに対するスパースマップを用いてよい。特に、スパースマップは、道路セグメントに沿う自律走行車両のナビゲーションのためであってよい。例えば、スパースマップは、多量のデータを格納及び/又は更新することなく、自律走行車両をナビゲートするために十分な情報を提供してよい。以下でさらに詳細に議論されるように、自律走行車両は、スパースマップを用いて、1又は複数の格納された軌跡に基づいて、1又は複数の道路をナビゲートしてよい。
自律走行車両のナビゲーションに関するスパースマップ
いくつかの実施形態において、開示されるシステム及び方法は、自律走行車両のナビゲーションのためのスパースマップを生成してよい。例えば、スパースマップは、過剰なデータストレージ又はデータ転送レートを必要とすることなく、ナビゲーションに十分な情報を提供し得る。以下でさらに詳細に議論されるように、車両(自律走行車両であってよい)は、スパースマップを用いて、1又は複数の道路をナビゲートしてよい。例えば、いくつかの実施形態において、スパースマップは、車両ナビゲーションのために十分であり得るが、小さいデータフットプリントも示す道路及び当該道路に沿う潜在的なランドマークに関連するデータを含み得る。例えば、以下で詳細に説明されるスパースデータマップは、詳細なマップ情報、例えば、道路に沿って収集された画像データを含むデジタルマッピングと比較して、大幅に少ないストレージ空間、及び、データ転送帯域幅を必要とし得る。
例えば、道路セグメントの詳細な表現を格納するよりはむしろ、スパースデータマップは、道路に沿う好ましい車両経路の3次元多項式表現を格納してよい。これらの経路は、ほとんどデータストレージ空間を必要とし得ない。さらに、説明したスパースデータマップにおいて、ランドマークは、ナビゲーションに役立てるために、スパースマップ道路モデルにおいて識別され及び含められ得る。これらのランドマークは、車両ナビゲーションを有効にするのに適切な任意の間隔で配置されてよいが、場合によっては、そのようなランドマークは、高密度かつ短い間隔でモデルにおいて、識別され及び含められる必要はない。むしろ、場合によっては、少なくとも50メートル、少なくとも100メートル、少なくとも500メートル、少なくとも1キロメートル又は少なくとも2キロメートル分、間隔が空いているランドマークに基づいて、ナビゲーションが可能であり得る。他のセクションでより詳細に議論されるように、様々なセンサ及びデバイス、例えば、車両が車道に沿って走行する際に、画像取込デバイス、グローバルポジショニングシステムセンサ、モーションセンサなどを備える車両により収集又は測定されたデータに基づいて、スパースマップが生成され得る。場合によっては、特定の道路に沿う1又は複数の車両の複数の運転中に収集されたデータに基づいて、スパースマップが生成され得る。1又は複数の車両の複数の運転を用いてスパースマップを生成することは、スパースマップを「クラウドソーシングする」と称され得る。
開示される実施形態と矛盾することなく、自律走行車両システムは、ナビゲーションのためにスパースマップを用いてよい。例えば、開示されるシステム及び方法は、自律走行車両に対する道路ナビゲーションモデルを生成するためにスパースマップを分配してよく、スパースマップ及び/又は生成された道路ナビゲーションモデルを用いて、道路セグメントに沿って自律走行車両をナビゲートしてよい。本開示と矛盾しないスパースマップは、自律走行車両が、関連する道路セグメントに沿って移動するときに通過し得る予め定められた軌跡を表し得る1又は複数の3次元輪郭を含み得る。
本開示と矛盾しないスパースマップは、1又は複数の道路の特徴を表すデータを含んでもよい。そのような道路特徴は、認識されたランドマーク、道路シグネチャプロファイル及び車両をナビゲートするのに有用な任意の他の道路関連の特徴を含み得る。本開示と矛盾しないスパースマップは、スパースマップに含まれる相対的に少量のデータに基づいて、車両の自律ナビゲーションを可能にし得る。例えば、道路の詳細な表現、例えば、道路縁部、道路曲率、道路セグメントと関連付けられた画像、又は、道路セグメントと関連付けられた他の物理的な特徴を詳しく説明するデータを含むよりはむしろ、スパースマップについての開示される実施形態は、相対的に小さいストレージ空間(及び、スパースマップの一部が車両に転送される場合は、相対的に小さい帯域幅)を必要としてよいが、さらに自律走行車両のナビゲーションのために十分に提供してよい。以下でさらに詳細に議論される開示されたスパースマップの小さいデータフットプリントは、少量のデータしか必要としない道路関連要素の表現を格納することによりいくつかの実施形態において実現され得るが、依然として、自律ナビゲーションを可能にする。
例えば、道路の様々な態様の詳細な表現を格納するよりはむしろ、開示されたスパースマップは、車両が道路に沿って進み得る1又は複数の軌跡の多項式表現を格納してよい。したがって、開示されたスパースマップを用いて道路に沿ったナビゲーションを可能するために、道路の物理的な性質に関する詳細を格納する(又は、転送する必要がある)よりはむしろ、場合によっては、道路の物理的な態様を解釈する必要はあるが、むしろ、特定の道路セグメントに沿ってその走行経路を軌跡(例えば、多項式スプライン)と揃えることで、車両が特定の道路セグメントに沿ってナビゲートされてよい。このようにして、車両は、車道画像、道路パラメータ、道路レイアウトなどの格納を含む手法よりもかなり少ない格納空間を必要とし得る格納された軌跡(例えば、多項式スプライン)に主に基づいてナビゲートされ得る。
道路セグメントに沿う格納された軌跡の多項式表現に加えて、開示されたスパースマップは、道路特徴を表し得るスモールデータオブジェクトを含んでもよい。いくつかの実施形態において、スモールデータオブジェクトは、デジタル署名を含んでよく、デジタル署名は、道路セグメントに沿って走行する車両に搭載されたセンサ(例えば、カメラ又は、サスペンションセンサなどの他のセンサ)デジタル画像(又は、デジタル信号取得)から導出される。デジタル署名は、センサにより取得された信号に関連する縮小したサイズを有し得る。いくつかの実施形態において、デジタル署名は、例えば、その後の運転中に、センサにより取得される信号から道路特徴を検出及び識別するように構成される分類機能と互換性を有するように作成され得る。いくつかの実施形態において、その後の時点で、同じ道路セグメントに沿って走行しているカメラが搭載された車両により取り込まれる道路特徴の画像(又は、格納された署名が画像に基づいていない、及び/又は、他のデータを含む場合、センサにより生成されたデジタル信号)に基づいて、道路特徴が、格納された署名と相関がある、又はこれとマッチングする能力を維持しつつ、デジタル署名は、デジタル署名ができるだけ少ないフットプリントを有するように作成されてよい。
いくつかの実施形態において、データオブジェクトのサイズは、さらに、道路特徴の一意性と関連付けられてよい。例えば、カメラが搭載された車両により検出可能な道路特徴について、カメラシステムが搭載された車両は、特定のタイプの道路特徴、例えば、道路標識と関連付けられるように、その道路特徴に対応する画像データを区別することが可能な分類器に結合され、そのような道路標識は、その領域において局所的に一意(例えば、近くに同じタイプの同じ道路標識又は道路標識が存在しない)であり、道路特徴及びその位置のタイプを示すデータを格納するのに十分であり得る。
以下でさらに詳細に議論されるように、道路特徴(例えば、道路セグメントに沿うランドマーク)は、相対的数バイトで道路特徴を表現し得るスモールデータオブジェクトとして格納されてよいが、同時に、そのようなナビゲーションのための特徴を認識及び用いるのに十分な情報を提供する。一例では、道路標識は、車両のナビゲーションの基礎となり得る認識されたランドマークとして識別され得る。道路標識の表現は、例えば、ランドマークのタイプ(例えば、停止標識)を示す数バイトのデータ、及び、ランドマークの位置(例えば、座標)を示す数バイトのデータを含むスパースマップに格納されてよい。(例えば、ランドマークに基づいて検索、認識及びナビゲートするのに十分な表現を用いる)ランドマークのそのような軽いデータ表現に基づいたナビゲートは、スパースマップと関連付けられるデータオーバーヘッドを大幅に増加させることなく、スパースマップと関連付けられる所望のレベルのナビゲーション機能性を提供してよい。ランドマーク(及び他の道路特徴)のこの無駄のない表現は、特定の道路特徴を検出、識別及び/又は分類するように構成されるそのような車両に含まれ搭載されたセンサ及びプロセッサを利用し得る。
例えば、所与の領域において、標識、もっと言えば、特定のタイプの標識が局所的に一意である場合(例えば、他の標識が存在しない、又は、同じタイプの他の標識が存在しない場合)、スパースマップは、ランドマークのタイプ(標識、すなわち、特定のタイプの標識)を示すデータを用いてよく、ナビゲーション(例えば、自律ナビゲーション)中に、カメラが搭載された自律走行車両が、標識を含む領域の(すなわち、特定のタイプの標識)の画像を取り込んだ場合、プロセッサは、画像を処理し、(画像内に実際に存在する場合)標識を検出し、標識として(すなわち、特定のタイプの標識として)画像を分類し、当該画像の位置をスパースマップに格納されているような標識の位置と相関させてよい。
スパースマップの生成
いくつかの実施形態において、スパースマップは、道路セグメントに沿って広がる路面特徴、及び、道路セグメントと関連付けられる複数のランドマークとのうちの少なくとも1つのライン表現を含み得る。特定態様において、スパースマップは、「クラウドソーシング」を介して、例えば、1又は複数の車両が道路セグメントを通過するときに取得された複数の画像の画像解析を通じて、生成されてよい。
図8は、1又は複数の車両、例えば、車両200(自律走行車両であってよい)が、自律走行車両のナビゲーションを提供するためにアクセスし得るスパースマップ800を示す。スパースマップ800は、メモリ、例えば、メモリ140又は150に格納され得る。そのようなメモリデバイスは、任意のタイプの非一時的ストレージデバイス又はコンピュータ可読媒体を含み得る。例えば、いくつかの実施形態において、メモリ140又は150は、ハードドライブ、コンパクトディスク、フラッシュメモリ、磁気ベースのメモリデバイス、光学ベースのメモリデバイスなどを含み得る。いくつかの実施形態において、スパースマップ800は、メモリ140又は150又は他のタイプのストレージデバイスに格納され得るデータベース(例えば、マップデータベース160)に格納されてよい。
いくつかの実施形態において、スパースマップ800は、搭載される車両200に提供されるストレージデバイス又は非一時的なコンピュータ可読媒体(例えば、ナビゲーションシステムを搭載した車両200に含まれるストレージデバイス)に格納され得る。車両200に提供されるプロセッサ(例えば、処理ユニット110)は、車両が道路セグメントを通過するときに、自律走行車両200を案内するためのナビゲーション命令を生成するために、搭載される車両200に提供されるストレージデバイス又はコンピュータ可読媒体に格納されるスパースマップ800にアクセスしてよい。
しかしながら、スパースマップ800は、車両に対してローカルに格納される必要はない。いくつかの実施形態において、スパースマップ800は、車両200又は車両200と関連付けられるデバイスと通信するリモートサーバに提供されるストレージデバイス又はコンピュータ可読媒体に格納され得る。車両200に提供されるプロセッサ(例えば、処理ユニット110)は、リモートサーバからスパースマップ800に含まれるデータを受信してよく、車両200の自律運転を案内するためのデータを実行してよい。そのような実施形態において、リモートサーバは、スパースマップ800のすべて又はその一部だけを格納してよい。したがって、搭載される車両200及び/又は搭載される1又は複数の追加の車両に提供されるストレージデバイス又はコンピュータ可読媒体は、スパースマップ800のその他の部分を格納してよい。
さらに、そのような実施形態において、スパースマップ800は、様々な道路セグメント(例えば、車両の数十、数百、数千又は数百万など)を通過する複数の車両にアクセス可能となり得る。スパースマップ800が複数のサブマップを含んでよいことも留意されたい。例えば、いくつかの実施形態において、スパースマップ800は、車両をナビゲートする際に用いられ得る数百、数千、数百又はそれより多くのサブマップを含んでよい。そのようなサブマップは、ローカルマップと称されてよく、車道に沿って走行する車両は、車両が走行している位置に関連する任意の数のローカルマップにアクセスしてよい。スパースマップ800のローカルマップ部分は、スパースマップ800のデータベースに対するインデックスとして、全球測位衛星システム(GNSS)キーを用いて格納してよい。したがって、本システムにおいて、ホスト車両をナビゲートするためのステアリング角度の計算が、ホスト車両のGNSS位置、道路特徴又はランドマークに頼ることなく実行され得る一方、そのようなGNSS情報は、関連するローカルマップの検索用に用いられてよい。
一般に、スパースマップ800は、車道に沿って1又は複数の車両が走行するときに、それらから収集されたデータに基づいて生成されてよい。例えば、1又は複数の車両に乗せられたセンサ(例えば、カメラ、速度計、GPS、加速度計など)を用いて、車道に沿って1又は複数の車両が走行する軌跡が記録されてよく、車道に沿って後続の移動を行う車両に対する好ましい軌跡の多項式表現は、1又は複数の車両により走行された収集された軌跡に基づいて判定され得る。同様に、1又は複数の車両により収集されたデータは、特定の道路に沿う可能性のあるランドマークを識別するのに役立ち得る。通過する車両から収集されたデータは、例えば、道路幅プロファイル、道路粗さプロファイル、動線間隔プロファイル、道路条件などの道路プロファイル情報を識別するために用いられてもよい。収集された情報を用いて、スパースマップ800は、1又は複数の自律走行車両をナビゲートする際に用いるために、(例えば、ローカルストレージに対して、又は、オンザフライデータ伝送を介して)生成及び分配されてよい。しかしながら、いくつかの実施形態において、マップの生成は、マップの初期生成時に終了するものではない。以下でより詳細に議論されるように、それらの車両がスパースマップ800に含まれる車道を通過し続けながら、スパースマップ800は、車両から収集されたデータに基づいて継続的に又は定期的に更新されてよい。
スパースマップ800に記録されるデータは、グローバルポジショニングシステム(GPS)データに基づく位置情報を含んでよい。例えば、ランドマークの位置、道路プロファイルの位置などを含む様々なマップ要素について、例えば、位置情報がスパースマップ800に含まれてよい。スパースマップ800に含まれるマップ要素の位置は、車道を通過する車両から収集されたGPSデータを用いて取得され得る。例えば、特定されたランドマークを通過する車両は、車両と関連付けられたGPS位置情報、及び、(例えば、車両に搭載された1又は複数のカメラから収集されたデータの画像解析に基づく)車両に対する特定されたランドマークの位置の判定を用いて、特定されたランドマークの位置を判定してよい。特定されたランドマーク(又は、スパースマップ800に含まれる他のいずれかの特徴)のそのような位置判定は、追加の車両が特定されたランドマークの位置を通ったときに、繰り返され得る。追加の位置判定の一部又はすべては、特定されたランドマークに対するスパースマップ800に格納されている位置情報を精緻化するために用いられてよい。例えば、いくつかの実施形態において、スパースマップ800に格納されている特定の特徴に対する複数の位置測定値は、一緒に平均化されてよい。しかしながら、任意の他の数学的な演算が、マップ要素に対して複数の判定された位置に基づいて、マップ要素の格納された位置を精緻化するために用いられてもよい。
開示される実施形態のスパースマップは、相対的少ない量の格納されたデータを用いて、車両の自律ナビゲーションを可能にし得る。いくつかの実施形態において、スパースマップ800は、道路1キロメートル当たり2MB未満、道路1キロメートル当たり1MB未満、道路1キロメートル当たり500kB未満、又は、道路1キロメートル当たり100kB未満のデータ密度(例えば、ターゲット軌跡、ランドマーク及び任意の他の格納された道路特徴を表すデータを含む)を有してよい。いくつかの実施形態において、スパースマップ800のデータ密度は、道路1キロメートル当たり10kB未満、もっと言えば、道路1キロメートル当たり2kB未満(例えば、1キロメートル当たり1.6kB)、又は、道路1キロメートル当たり10kB以下、又は、道路1キロメートル当たり20kB以下であってよい。いくつかの実施形態において、すべてではない場合、米国の車道のほとんどが、合計4GB又はそれ未満のデータを有するスパースマップを用いて自律的にナビゲートされ得る。これらのデータ密度の値は、スパースマップ800全体にわたる、スパースマップ800内のローカルマップにわたる、及び/又は、スパースマップ800内の特定の道路セグメントにわたる平均を表し得る。
述べたように、スパースマップ800は、道路セグメントに沿う自律運転又はナビゲーションを案内するための複数のターゲット軌跡810の表現を含んでよい。そのようなターゲット軌跡は、3次元スプラインとして格納され得る。例えば、スパースマップ800に格納されたターゲット軌跡は、特定の道路セグメントに沿う車両の以前の横断についての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は、3次多項式の2つのグループにより表される。第1のグループは、多項式セグメント911、912及び913を含む。第2のグループは、多項式セグメント914、915及び916を含む。2つのグループ、互いに実質的に平行である一方、道路のそれらのそれぞれの側の位置に従う。多項式セグメント911、912、913、914、915及び916は、約100メートルの長さを有し、連続して隣接するセグメントと約50メートル分重なり合う。しかしながら、前述のように、異なる長さ及び異なる重なり合う量の多項式が用いられてもよい。例えば、多項式は、500m、1km又はそれより長い長さを有してよく、重なり合う量は、0から50m、50mから100m、又は100mより大きく変化してよい。さらに、図9Aが、2D空間(例えば、紙の表面上)に拡張した多項式を表したものとして示されるが、これらの多項式は、X-Y湾曲に加えて道路セグメント内の高度変化を表すために、3次元(例えば、高さ成分を含む)に広がる曲線を表し得ることが理解されるべきである。図9Aに示される例では、車線900の右側920は、さらに、多項式セグメント921、922及び923を有する第1のグループと、及び多項式セグメント924、925及び926を有する第2のグループとにより表される。
スパースマップ800のターゲット軌跡に戻ると、図9Bは、特定の道路セグメントに沿って走行する車両に対するターゲット軌跡を表す3次元多項式を示す。ターゲット軌跡は、ホスト車両が特定の道路セグメントに沿って走行すべきX-Y経路だけでなく、道路セグメントに沿って走行するときに、ホスト車両が経験する高度変化も表す。したがって、スパースマップ800における各ターゲット軌跡は、図9Bに示される3次元多項式950のように、1又は複数の3次元多項式により表され得る。スパースマップ800は、複数の軌跡(例えば、世界中の車道に沿う様々な道路区間に沿った車両の軌跡を表すために、数100万又は数10億円又はそれ以上の軌跡)を含み得る。いくつかの実施形態において、各ターゲット軌跡は、3次元多項式セグメントをつなぐスプラインに対応し得る。
スパースマップ800に格納された多項式曲線のデータフットプリントに関して、いくつかの実施形態において、各3次多項式は、4つのパラメータにより表されてよく、それぞれは、4バイトのデータを必要とする。適切な表現は、100mごとに約192バイトデータを必要とする3次多項式で取得され得る。これは、約100km/hrで走行するホスト車両に対するデータ使用/転送要件では、毎時約200kBに相当し得る。
スパースマップ800は、幾何学記述子及びメタデータの組み合わせを用いて車線ネットワークを説明し得る。上述したように、幾何学形状は、多項式又はスプラインにより説明され得る。メタデータは、車線の数、特別な特性(例えば、カープール車線)及び可能性ある他のスパースラベルを説明し得る。そのようなインジケータの総フットプリントは、ごくわずかであり得る。
したがって、本開示の実施形態に係るスパースマップは、道路セグメントに沿って広がる路面特徴の少なくとも1つのライン表現、路面特徴に実質的に対応する道路セグメントに沿う経路を表す各ライン表現を含み得る。上述したように、いくつかの実施形態において、路面特徴の少なくとも1つのライン表現は、スプライン、多項式表現又は曲線を含んでよい。さらに、いくつかの実施形態において、路面特徴は、道路縁部又は車線標示の少なくとも一方を含んでよい。さらに、「クラウドソーシング」に関して以下で議論されるように、路面特徴は、1又は複数の車両が道路セグメントを通過するときに取得された複数の画像の画像解析を通じて識別され得る。
前述のように、スパースマップ800は、道路セグメントと関連付けられる複数の予め定められたランドマークを含んでよい。ランドマークの実画像を格納し、例えば、取り込まれた画像及び格納された画像に基づく画像認識解析に依存するよりはむしろ、スパースマップ800内の各ランドマークは、格納された実画像が必要とするよりも少ないデータを用いて表され、認識されてよい。ランドマークを表すデータは、道路に沿うランドマークを説明又は識別するのに十分な情報をさらに含んでよい。ランドマークの実画像よりはむしろランドマークの特性を説明するデータを格納することは、スパースマップ800のサイズを減らし得る。
図10は、スパースマップ800において表され得るランドマークのタイプの例を示す。ランドマークは、道路セグメントに沿う任意の視認可能で識別可能なオブジェクトを含んでよい。ランドマークは、それらが一定であり、それらの位置及び/又はコンテンツに関してあまり変化しないように選択されてよい。スパースマップ800に含まれるランドマークは、車両が特定の道路セグメントを通過するときのターゲット軌跡に関する車両200の位置を判定する際に有用であり得る。ランドマークの例は、交通標識、方向標識、一般的な標識(例えば、長方形の標識)、沿道に欠かせないもの(例えば、電柱、反射板など)及び任意の他の適切なカテゴリを含んでよい。いくつかの実施形態において、道路上の車線標示がスパースマップ800内のランドマークとして含まれてもよい。
図10に示されるランドマークの例は、交通標識、方向標識、沿道に欠かせないもの及び一般的な標識を含む。交通標識は、例えば、速度制限標識(例えば、速度制限標識1000)、イールド標識(yield sign)(例えば、イールド標識1005)、経路番号標識(例えば、経路番号標識1010)、交通信号灯標識(例えば、交通信号灯標識1015)、停止標識(例えば、停止標識1020)を含んでよい。方向標識は、異なる位置への1又は複数の方向を示す1又は複数の矢印を含む標識を含んでよい。例えば、方向標識は、車両を異なる道路又は場所へ案内するための矢印、及び、車両を道路から離れる方に外れる方に案内する矢印を有する出口の標識1030などを有する高速道路標識1025を含んでよい。したがって、複数のランドマークのうちの少なくとも1つは道路標識を含んでよい。
一般的な標識は、交通量とは無関係であり得る。例えば、一般的な標識は、広告用に用いられる掲示板、又は、2つの国、州、群、市又は町の間の境界に隣接するウェルカムボードを含んでよい。図10は、一般的な標識1040(「Joe's Restaurant」)を示す。一般的な標識1040は、長方形の形状を有し得るが、図10に示されるように、一般的な標識1040は、他の形状、例えば、正方形、円形、三角形などを有してもよい。
ランドマークは、沿道に欠かせないもの(roadside fixtures)を含んでもよい。沿道に欠かせないものは、標識ではないオブジェクトであってよく、交通量又は方向に関連していなくてもよい。例えば、沿道に欠かせないものは、街灯柱(例えば、街灯柱1035)、電柱、交通信号灯の柱などを含んでよい。
ランドマークは、自律走行車両のナビゲーションシステムにおける使用のために特別に設計され得るビーコンを含んでもよい。例えば、そのようなビーコンは、ホスト車両をナビゲートする際に役立つように、予め定められた間隔で配置されるスタンドアロン構造を含んでよい。そのようなビーコンは、道路セグメントに沿って走行する車両により識別又は認識され得る既存の道路標識に加えられる視覚/グラフィック情報(例えば、アイコン、エンブレム、バーコードなど)を含んでもよい。そのようなビーコンは、電子コンポーネントを含んでもよい。そのような実施形態において、電子ビーコン(例えば、RFIDタグなど)は、非視覚情報をホスト車両に伝送するために用いられ得る。そのような情報は、例えば、ホスト車両がターゲット軌跡に沿ってその位置を判定する際に用いられ得るランドマークの識別情報及び/又はランドマークの位置情報を含んでよい。
いくつかの実施形態において、スパースマップ800に含まれるランドマークは、予め定められたサイズのデータオブジェクトにより表され得る。ランドマークを表すデータは、特定のランドマークを識別するための任意の適切なパラメータを含み得る。例えば、いくつかの実施形態において、スパースマップ800に格納されるランドマークは、例えば、ランドマークの物理的サイズ(例えば、既知のサイズ/スケールに基づいてランドマークへの距離の推定をサポートする)、以前のランドマークへの距離、横方向のオフセット、高さ、タイプコード(例えば、ランドマークのタイプ-どのようなタイプの方向標識、交通標識など)、GPS座標(例えば、グローバルな位置推定をサポートする)及び、任意の他の適切なパラメータなどのパラメータを含み得る。各パラメータは、データサイズと関連付けられ得る。例えば、ランドマークのサイズは、8バイトのデータを用いて格納されてよい。以前のランドマークへの距離、横方向のオフセット、及び高さは、12バイトのデータを用いえ規定されてよい。方向標識又は交通標識などのランドマークと関連付けられるタイプコードは、約2バイトのデータを必要とし得る。一般的な標識について、一般的な標識の識別を可能にする画像署名は、50バイトのデータストレージを用いて格納され得る。ランドマークのGPS位置は、16バイトのデータストレージと関連付けられ得る。各パラメータに対するこれらのデータサイズは例に過ぎず、他のデータサイズも用いられてよい。
この方式で、スパースマップ800にランドマークを表すことは、データベースにランドマークを効率的に表すための無駄のない解決策を提示し得る。いくつかの実施形態において、標識は、セマンティックな標識及び非セマンティックな標識と称され得る。セマンティックな標識は、標準的な意味がある任意の分類の標識(例えば、速度制限標識、警告標識、方向標識など)を含み得る。非セマンティックな標識は、標準的な意味と関連付けられていない任意の標識(例えば、事業所を識別する一般的な広告標識など)を含み得る。例えば、各セマンティック標識は、38バイト(例えば、サイズに対して8バイト、以前のランドマークへの距離、横方向のオフセット及び高さに対して12バイト、タイプコードに対して2バイト、及び、GPS座標に対して16バイト)のデータで表され得る。スパースマップ800は、タグシステムを用いてランドマークのタイプを表してよい。場合によっては、各交通標識又は方向標識は、独自のタグと関連付けられてよく、ランドマークの識別情報の一部としてデータベースに格納され得る。例えば、データベースは、様々な交通標識を表すために約1000のオーダの異なるタグを含んでよく、方向標識を表すために約10000のオーダの異なるタグを含んでよい。もちろん、任意の適切な数のタグが用いられてよく、追加のタグが必要に応じて作成されてよい。いくつかの実施形態において、汎用の標識は、約100バイトより小さい(例えば、サイズに対して8バイト、以前のランドマークへの距離、横方向のオフセット及び高さに対して12バイト、画像署名に対して50バイト、及び、GPS座標に対して16バイトを含む約86バイト)を用いて表され得る。
したがって、画像署名を必要としないセマンティックな道路標識について、スパースマップ800に対するデータ密度影響は、50m当たり約1つの相対的に高いランドマークの密度においてでさえ、1キロメートル当たり約760バイトのオーダ(例えば、1km当たり20個のランドマーク×1ランドマーク当たり38バイト=760バイト)であり得る。画像署名コンポーネントを含む汎用の標識を考慮しても、データ密度影響は、1km当たり約1.72kB(例えば、1km当たり20個のランドマーク×1ランドマーク当たり86バイト=1720バイト)である。セマンティックな道路標識について、これは、100km/hrで走行する車両に対する1時間当たりのデータ使用量が約76kBに相当する。汎用の標識について、これは、100km/hrで走行する車両に対する1時間当たりのデータ使用量が約170kBに相当する。
いくつかの実施形態において、概して長方形のオブジェクト、例えば、長方形の標識は、100バイト以下のデータによりスパースマップ800において表され得る。スパースマップ800における概して長方形のオブジェクト(例えば、一般的な標識1040)の表現は、概して長方形のオブジェクトと関連付けられる簡略化した画像署名(例えば、簡略化した画像署名1045)を含み得る。この簡略化した画像署名は、例えば、認識されたランドマークとして、例えば汎用の標識を識別するのに役立てるために用いられ得る。そのような簡略化した画像署名(例えば、オブジェクトを表す実画像データから導出された画像情報)は、オブジェクトの実画像を格納する必要性、又は、ランドマークを認識するために実画像に対して実行される画像解析と比較する必要性を回避し得る。
図10を参照すると、スパースマップ800は、一般的な標識1040の実画像よりはむしろ、一般的な標識1040と関連付けられる簡略化した画像署名1045を含んでよい又は格納してよい。例えば、画像取込デバイス(例えば、画像取込デバイス122、124又は126)は、一般的な標識1040の画像を取り込み、プロセッサ(例えば、画像プロセッサ190、又は、ホスト車両に乗せられた、又は、ホスト車両に対して離れて配置された、のいずれかの画像を処理できる任意の他のプロセッサ)は、画像解析を実行して、一般的な標識1040と関連付けられた一意の署名又はパターンを含む簡略化した画像署名1045を抽出/作成してよい。1つの実施形態において、簡略化した画像署名1045は、形状、色、パターン、明度パターン、又は、一般的な標識1040を説明するための一般的な標識1040の画像から抽出され得る他のいずれかの特徴を含み得る。
例えば、図10において、簡略化した画像署名1045に示される円形、三角形及び星形は、異なる色の領域を表し得る。円、三角及び星により表されるパターンは、スパースマップ800に、例えば、画像署名を含むように指定される50バイト内に格納され得る。特に、円形、三角形及び星形は、そのような形状が画像署名の一部として格納されることを示すことを必ずしも意味するものではない。むしろ、これらの形状は、識別可能な色差、テクスチャ領域、グラフィック形状、又は、汎用の標識と関連付けられ得る特性の他のバリエーションを有する認識可能な領域を概念的に表すことを意味する。そのような簡略化した画像署名は、一般的な標識の形式でランドマークを識別するために用いられ得る。例えば、簡略化した画像署名は、例えば、カメラが搭載された自律走行車両を用いて取り込まれた画像データと格納された簡略化した画像署名の比較に基づいて同じ-同じでない解析(same-not-same analysis)を実行するために用いられ得る。
したがって、複数のランドマークは、1又は複数の車両が道路セグメントを通過するときに取得された複数の画像の画像解析を通じて識別され得る。「クラウドソーシング」に関して以下で説明されるように、いくつかの実施形態において、複数のランドマークを識別するための画像解析は、ランドマークが現れていない画像にランドマークが現れている画像の割合が閾値を超えている場合、可能性のあるランドマークを承認することを含み得る。さらに、いくつかの実施形態において、複数のランドマークを識別するための画像解析は、ランドマークが現れている画像にランドマークが現れていない画像の割合が閾値を超えていない場合、可能性のあるランドマークを拒否することを含み得る。
ターゲット軌跡に戻ると、ホスト車両は、特定の道路セグメントをナビゲートするために用いられてよく、図11Aは、スパースマップ800を構築又は維持する処理の間に取り込まれた多項式表現の軌跡を示す。スパースマップ800に含まれるターゲット軌跡の多項式表現は、同じ道路セグメントに沿った車両の以前の横断の2又はそれより多くの再構築された軌跡に基づいて判定され得る。いくつかの実施形態において、スパースマップ800に含まれるターゲット軌跡の多項式表現は、同じ道路セグメントに沿った車両の以前の横断の2又はそれより多くの再構築された軌跡の集合であり得る。いくつかの実施形態において、スパースマップ800に含まれるターゲット軌跡の多項式表現は、同じ道路セグメントに沿った車両の以前の横断の2又はそれより多くの再構築された軌跡の平均であり得る。他の数学的な演算は、道路セグメントに沿って通過する車両から収集された再構成された軌跡に基づいて、道路経路に沿うターゲット軌跡を構築するためにも用いられ得る。
図11Aに示されるように、道路セグメント1100は、異なる時間に多数の車両200により走行され得る。各車両200は、道路セグメントに沿って車両が取った経路に関連するデータを収集してよい。特定の車両により走行される経路は、可能性のソース中でも特にカメラデータ、加速度計情報、速度センサ情報、及び/又は、GPS情報に基づいて判定され得る。そのようなデータは、道路セグメントに沿って走行する車両の軌跡を再構築するために用いられてよく、これらの再構成された軌跡に基づいて、ターゲット軌跡(又は、複数のターゲット軌跡)は、特定の道路セグメントに対して判定され得る。そのようなターゲット軌跡は、車両が道路セグメントに沿って走行するときの、(例えば、自律ナビゲーションシステムにより案内される)ホスト車両の好ましい経路を表してよい。
図11Aに示される例において、第1の再構築された軌跡1101は、第1の時間期間(例えば、1日目)に道路セグメント1100を通過する第1の車両から受信したデータに基づいて判定されてよく、第2の再構築された軌跡1102は、第2の時間期間(例えば、2日目)に道路セグメント1100を通過する第2の車両から取得されてよく、第3の再構築された軌跡1103は、第3の時間期間(例えば、3日目)に道路セグメント1100を通過する第3の車両から取得されてよい。各軌跡1101、1102及び1103は、3次元多項式などの多項式により表され得る。いくつかの実施形態において、再構成された軌跡のいずれかが、道路セグメント1100を通過する搭載される車両において、組み立てられ得ることに留意されたい。
さらに又は代替的に、そのような再構成された軌跡は、道路セグメント1100を通過する車両から受信した情報に基づいて、サーバ側上で判定され得る。例えば、いくつかの実施形態において、車両200は、道路セグメント1100に沿うそれらの動き(例えば、数ある中でも特に、ステアリング角度、ヘッディング、時間、位置、速度、検知された道路の幾何学形状、及び/又は、検知されたランドマーク)に関連するデータを1又は複数のサーバに伝送してよい。サーバは、受信したデータに基づいて、車両200に対する軌跡を再構築してよい。サーバは、第1、第2及び第3の軌跡1101、1102及び1103に基づいて、その後に同じ道路セグメント1100に沿って走行する自律走行車両のナビゲーションを案内するためのターゲット軌跡を生成してもよい。ターゲット軌跡が、道路セグメントの単一の以前の横断と関連付けられ得る一方、いくつかの実施形態において、スパースマップ800に含まれる各ターゲット軌跡は、同じ道路セグメントを通過する車両の2又はそれより多くの再構築された軌跡に基づいて判定され得る。図11Aにおいて、ターゲット軌跡は、1110により表される。いくつかの実施形態において、ターゲット軌跡1110は、第1、第2及び第3の軌跡1101、1102及び1103の平均に基づいて生成され得る。いくつかの実施形態において、スパースマップ800に含まれるターゲット軌跡1110は、2又はそれより多くの再構築された軌跡の集合(例えば、重み付けされた組み合わせ)であり得る。
図11B及び図11Cは、地理的な領域1111内に存在する道路セグメントと関連付けられるターゲット軌跡の概念をさらに示す。図11Bに示されるように、地理的な領域1111内の第1の道路セグメント1120は、第1方向における車両走行に対して指定される2つの車線1122、及び、第1方向とは反対の第2方向における車両走行に対して指定される2つの追加の車線1124を含む複数車線道路を含み得る。車線1122及び車線1124は、2重の黄色い車線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に含まれ得る。カメラが搭載された自律走行車両により取り込まれた画像が、車両が車線の外側にドリフトした(例えば、車線標示を越えた)ことを示す場合、動作は、車両内にトリガされて、特定の軌跡に従って指定された車線に車両を戻し得る。
スパースマップのクラウドソーシング
いくつかの実施形態において、開示されるシステム及び方法は、自律走行車両のナビゲーションに対するスパースマップを生成してよい。例えば、開示されるシステム及び方法は、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つの目的のために幾何学な道路モデルが用いられるように、そのような距離が用いられてよい。いくつかの実施形態において、1.3秒先(又は、1.5秒、1.7秒、2秒などの任意の時間)に配置されたターゲット点に従って、制御アルゴリズムが車両を操縦する場合、タスクを計画することは、40メートル前方の典型的な範囲(又は、20メートル、30メートル、50メートルなどの任意の他の適切な距離の前方)にわたるモデルを用いてよい。位置推定タスクは、別の欄でより詳細に説明される「テールアライメント」と呼ばれる方法に従って、自動車の60メートル後方(又は、任意の他の適切な距離、例えば、50メートル、100メートル、150メートルなど)の典型的な範囲にわたる道路モデルを用いる。開示されるシステム及び方法は、計画された軌跡が、例えば、車線中央から30cm以上逸れないように、特定の範囲、例えば、100メートルにわたって十分な精度を有する幾何学モデルを生成し得る。
上記で説明したように、3次元道路モデルは、短い範囲の部分を検出し、それらを一緒にステッチすることで構築され得る。ステッチは、カメラにより取り込まれたビデオ及び/又は画像、車両の動きに反射する慣性センサからのデータ、及び、ホスト車両の速度信号を用いて、6段階のエゴモーションモデルを計算することにより有効にされ得る。蓄積された誤差は、100メートルのオーダなど、一部の局所的な距離範囲にわたって十分小さいかもしれない。これはすべて、特定の道路セグメントにわたる単一の運転において完了し得る。
いくつかの実施形態において、複数の運転は、結果的なモデルを平均化し、その精度をさらに向上させるために用いられてよい。同じ自動車が複数回同じ経路を走行してよく、複数の自動車は、それらの収集されたモデルのデータをセントラルサーバに送信してよい。いずれの場合でも、マッチング手順は、ターゲット軌跡を生成するために、重なり合うモデルを識別し、平均を可能にするように実行され得る。構築されるモデル(例えば、ターゲット軌跡を含む)は、一旦、収束基準を満たすと、ステアリングのために用いられ得る。その後の運転で、さらなるモデル改善のために、かつ、インフラの変化に適応するために用いられ得る。
運転経験の共有(例えば、複数の自動車間の検知データ)は、それらがセントラルサーバに接続されている場合に実現可能になる。各車両クライアントは、その現在位置に関連し得る普遍的な道路モデルの部分的なコピーを格納し得る。車両とサーバとの間の双方向更新手順が車両及びサーバにより実行され得る。上述した小型フットプリントの概念は、非常に小さい帯域幅を用いて、双方向更新を実行する開示されるシステム及び方法を可能にする。
可能性のあるランドマークに関連する情報が判定されてもよく、セントラルサーバに転送されてもよい。例えば、開示されるシステム及び方法は、ランドマークを含む1又は複数の画像に基づいて、可能性のあるランドマークについての1又は複数の物理的な特性を判定してよい。物理的な特性は、物理的サイズランドマークの(例えば、高さ、幅)、車両からランドマークまでの距離、以前のランドマークに対するランドマーク間の距離、ランドマークの横方向の位置(例えば、走行車線に関連するランドマークの位置)、ランドマークのGPS座標、ランドマークのタイプ、ランドマークにあるテキストの識別情報などを含み得る。例えば、車両は、カメラにより取り込まれた1又は複数の画像を解析して、速度制限標識などの可能性のあるランドマークを検出し得る。
車両は、1又は複数の画像の解析に基づいて、車両からランドマークまでの距離を判定し得る。いくつかの実施形態において、当該距離は、スケーリング方法及び/又はオプティカルフロー方法などの適切な画像解析方法を用いたランドマークの画像の解析に基づいて判定され得る。いくつかの実施形態において、開示されるシステム及び方法は、可能性のあるランドマークのタイプ又は分類を判定するように構成され得る。スパースマップに格納されている特定の可能性のあるランドマークが予め定められたタイプ又は分類に対応すると、車両が判定した場合、車両がランドマークのタイプ又は分類のインジケーションをその位置と共にサーバに通信するだけで十分な場合がある。サーバは、そのようなインジケーションを格納し得る。その後に、他の車両は、ランドマークの画像を取り込んで、(例えば、分類器を用いて)当該画像を処理し、画像を処理した結果を、ランドマークのタイプに関してサーバに格納されているインジケーションと比較し得る。様々なタイプのランドマークがあり得、異なるタイプのランドマークは、アップロード対象の異なるタイプのデータと関連付けられて、サーバに格納されてよく、異なる処理を搭載する車両は、ランドマークを検出して、ランドマークに関する情報をサーバに通信してよく、システムを搭載した車両は、サーバからランドマークのデータを受信し、自律ナビゲーションの際にランドマークを識別するために、当該ランドマークのデータを用いてよい。
いくつかの実施形態において、道路セグメントを走行する複数の自律走行車両は、サーバと通信し得る。車両(又はクライアント)は、(例えば、エゴモーション統合を通じて)その運転を説明する曲線を任意の座標フレームに生成し得る。車両は、同じフレーム内にランドマークを検出し、それらを探し得る。車両は、曲線及びランドマークをサーバにアップロードし得る。サーバは、複数の運転にわたる車両からのデータを収集し、統合された道路モデルを生成し得る。例えば、図19に関して以下で議論されるように、サーバは、アップロードされた曲線及びランドマークを用いて、統合された道路モデルを有するスパースマップを生成し得る。
サーバは、モデルをクライアント(例えば、車両)に分配してもよい。例えば、サーバは、スパースマップを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)を備え得る。各車両は、点線で示されるような無線通信経路1235を通じて、1又は複数のネットワークを介して(例えば、セルラネットワーク及び/又はインターネットなどを介して)リモートサーバ1230と通信し得る。各車両は、サーバ1230にデータを伝送し、サーバ1230からデータを受信し得る。例えば、サーバ1230は、異なる時間に道路セグメント1200を走行する複数の自動車からデータを収集してよく、自律走行車両の道路ナビゲーションモデルを生成するために収集されたデータ、又は、又はモデルに対する更新を処理してよい。サーバ1230は、サーバ1230にデータを伝送した車両に、自律走行車両の道路ナビゲーションモデル又はモデルに対する更新を伝送し得る。サーバ1230は、その後に道路セグメント1200を走行する他の車両に、自律走行車両の道路ナビゲーションモデル又はモデルに対する更新を伝送し得る。
車両1205、1210、1215、1220及び1225が道路セグメント1200を走行しているときに、車両1205、1210、1215、1220及び1225により収集(例えば、検出、検知又は測定)されたナビゲーション情報は、サーバ1230に伝送され得る。いくつかの実施形態において、ナビゲーション情報は、共通の道路セグメント1200と関連付けられ得る。ナビゲーション情報は、各車両が道路セグメント1200にわたって走行するときに、車両1205、1210、1215、1220及び1225のそれぞれと関連付けられる軌跡を含み得る。いくつかの実施形態において、軌跡は、車両1205に提供される様々なセンサ及びデバイスにより検知されるデータに基づいて再構築され得る。例えば、軌跡は、加速度計データ、速度データ、ランドマークのデータ、道路の幾何学形状又はプロファイルデータ、車両の配置データ、エゴモーションデータのうちの少なくとも1つに基づいて再構築され得る。いくつかの実施形態において、軌跡は、慣性センサ、例えば、加速度計からのデータ、及び、速度センサにより検知された車両1205の速度に基づいて再構築され得る。さらに、いくつかの実施形態において、軌跡は、3次元並進及び/又は3次元回転(又は回転動作)を示し得るカメラの検知されたエゴモーションに基づいて、(例えば、車両1205、1210、1215、1220及び1225のそれぞれに搭載されたプロセッサにより)判定され得る。カメラ(したがって、車体)のエゴモーションは、カメラにより取り込まれた1又は複数の画像の解析から判定され得る。
いくつかの実施形態において、車両1205の軌跡は、車両1205に搭載されたプロセッサにより判定され、サーバ1230に伝送されてよい。他の実施形態において、サーバ1230は、車両1205に提供される様々なセンサ及びデバイスにより検知されたデータを受信し、車両1205からデータした受信に基づいて軌跡を判定し得る。
いくつかの実施形態において、車両1205、1210、1215、1220及び1225からサーバ1230に伝送されるナビゲーション情報は、路面、道路の幾何学形状又は道路プロファイルに関するデータを含んでよい。道路セグメント1200の幾何学形状は、車線構成及び/又はランドマークを含んでよい。車線構成は、道路セグメント1200の車線の総数、車線のタイプ(例えば、一方向車線、双方向車線、走行車線、追い越し車線など)、車線上のマーキング、車線の幅などを含んでよい。いくつかの実施形態において、ナビゲーション情報は、車線指定、例えば、車両走行する複数の車線のうち、1つの車線を含んでよい。例えば、車線指定は、左側又は右側から3番目の車線を車両が走行していることを示す数値「3」と関連付けられてよい。別の例として、車線指定は、車両が中央車線を走行していることを示すテキスト値「中央車線」と関連付けられてよい。
サーバ1230は、非一時的なコンピュータ可読媒体、例えば、ハードドライブ、コンパクトディスク、テープ、メモリなどにナビゲーション情報を格納し得る。サーバ1230は、(例えば、サーバ1230に含まれるプロセッサを通じて)複数の車両1205、1210、1215、1220及び1225から受信したナビゲーション情報に基づいて、共通の道路セグメント1200に対する自律走行車両の道路ナビゲーションモデルの少なくとも一部を生成してよく、スパースマップの一部として当該モデルを格納してよい。サーバ1230は、異なる時間に道路セグメントの車線を走行する複数の自動車(例えば、1205、1210、1215、1220及び1225)から受信したクラウドソーシングされたデータ(例えば、ナビゲーション情報)に基づいて、各車線と関連付けられる軌跡を判定し得る。サーバ1230は、クラウドソーシングされたナビゲーションデータに基づいて判定された複数の軌跡に基づいて、自律走行車両の道路ナビゲーションモデル又はモデルの一部(例えば、更新された部分)を生成し得る。車両のナビゲーションシステムに提供される既存の自律走行車両の道路ナビゲーションモデルを更新するために、道路セグメント1200を走行している自律走行車両1205、1210、1215、1220及び1225のうちの1又は複数、又は、その後に道路セグメントを走行する任意の他の自律走行車両に、サーバ1230は、モデル又はモデルの更新された部分を伝送し得る。自律走行車両の道路ナビゲーションモデルは、共通の道路セグメント1200に自律的に沿ってナビゲートする際に自律走行車両により用いられ得る。
上記で説明したように、自律走行車両の道路ナビゲーションモデルは、スパースマップ(例えば、図8に示されるスパースマップ800)に含まれ得る。スパースマップ800は、道路に沿う道路の幾何学形状及び/又はランドマークに関連するデータのスパース記録を含んでよく、自律走行車両の自律ナビゲーションを案内するのに十分な情報を提供し得るが、過剰なデータストレージを要求することはない。いくつかの実施形態において、自律走行車両の道路ナビゲーションモデルは、スパースマップ800とは別々に格納されてよく、当該モデルがナビゲーション用に実行されるときに、スパースマップ800からのマップデータを用いてよい。いくつかの実施形態において、自律走行車両の道路ナビゲーションモデルは、自律走行車両1205、1210、1215、1220及び1225、又は、その後に道路セグメント1200に沿って走行する他の車両の自律ナビゲーションを案内するために、道路セグメント1200に沿うターゲット軌跡を判定するためのスパースマップ800に含まれるマップデータを用いてよい。例えば、自律走行車両の道路ナビゲーションモデルが車両1205のナビゲーションシステムに含まれるプロセッサにより実行される場合、モデルは、プロセッサに、車両1205の現在走行中のコースを検証及び/又は修正するために、スパースマップ800に含まれる予め定められた軌跡と、車両1205から受信したナビゲーション情報に基づいて判定された軌跡を比較させてよい。
自律走行車両の道路ナビゲーションモデルにおいて、道路特徴又はターゲット軌跡の幾何学形状は、3次元空間において曲線で符号化され得る。1つの実施形態において、曲線は、1又は複数の接続3次元多項式を含む3次元スプラインであってよい。当業者であれば、データを適合するために、スプラインが一連の多項式により区分的に定義された数値関数であり得ることを理解するだろう。道路の3次元幾何学形状データを適合するためのスプラインは、線形スプライン(1次)、二次スプライン(2次)、3次元スプライン(3次)又は任意の他のスプライン(他の次数)、又は、それらの組み合わせを含み得る。スプラインは、道路の3次元幾何学形状データのデータポイントをつなぐ(例えば、適合させる)異なる次元の1又は複数の3次元多項式を含み得る。いくつかの実施形態において、自律走行車両の道路ナビゲーションモデルは、共通の道路セグメント(例えば、道路セグメント1200)又は道路セグメント1200の車線に沿うターゲット軌跡に対応する3次元スプラインを含み得る。
上記で説明したように、スパースマップに含まれる自律走行車両の道路ナビゲーションモデルは、他の情報、例えば、道路セグメント1200に沿う少なくとも1つのランドマークの識別情報を含み得る。ランドマークは、車両1205、1210、1215、1220及び1225のそれぞれに設置されるカメラ(例えば、カメラ122)の視野内に見える場合がある。いくつかの実施形態において、カメラ122は、ランドマークの画像を取り込み得る。車両1205に提供されるプロセッサ(例えば、プロセッサ180、190又は処理ユニット110)は、ランドマークの画像を処理して、ランドマークに関する識別情報を抽出し得る。 ランドマークの実画像よりはむしろ、ランドマークの識別情報がスパースマップ800に格納され得る。ランドマークの識別情報は、実画像よりもかなり少ない格納空間しか必要としない場合がある。他のセンサシステム(例えば、GPSシステム)は、ランドマーク(例えば、ランドマークの位置)の特定の識別情報を提供してもよい。ランドマークは、交通標識、矢印マーク、車線標示、破線の車線標示、交通信号灯、停止線、方向標識(例えば、方向を示す矢印を有する高速道路の出口の標識、異なる方向又は場所を示す矢印を有する高速道路の標識)、ランドマークビーコン又は街灯柱のうちの少なくとも1つを含み得る。ランドマークビーコンは、車両に設置される受信器に信号を伝送又は反射する、道路セグメントに沿って設置されたデバイス(例えば、RFIDデバイス)を指し、車両がデバイスの側を通った場合に、車両により受信されたビーコン及びデバイスの位置(例えば、デバイスのGPSの位置から判定される)が自律走行車両の道路ナビゲーションモデル及び/又はスパースマップ800に含まれるべきランドマークとして用いられ得る。
少なくとも1つのランドマークの識別情報は、少なくとも1つのランドマークの位置を含み得る。ランドマークの位置は、複数の車両1205、1210、1215、1220及び1225と関連付けられるセンサシステム(例えば、グローバルポジショニングシステム、慣性ベースのポジショニングシステム、ランドマークビーコンなど)を用いて実行される位置測定値に基づいて判定され得る。いくつかの実施形態において、ランドマークの位置は、複数の運転を通じて異なる車両1205、1210、1215、1220及び1225のセンサシステムにより検出、収集又は受信された位置測定値を平均化することにより判定され得る。例えば、車両1205、1210、1215、1220及び1225は、位置測定値データをサーバ1230に伝送してよく、サーバ1230は、位置測定値を平均し、平均化した位置測定値をランドマークの位置として用い得る。ランドマークの位置は、その後の運転において車両から受信した測定値により継続的に改良され得る。
ランドマーク識別情報は、ランドマークのサイズを含み得る。車両(例えば、1205)に提供されるプロセッサは、画像の解析に基づいてランドマークの物理的サイズを推定し得る。サーバ1230は、異なる運転を通じて異なる車両から同じランドマークの物理的サイズについての複数の推定値を受信し得る。サーバ1230は、ランドマークに関する物理的サイズに到着する異なる推定値を平均化し、そのランドマークのサイズを道路モデルに格納し得る。物理的サイズの推定値は、車両からランドマークまでの距離をさらに判定又は推定するために用いられ得る。ランドマークまでの距離は、車両の現在の速度と、カメラの拡張焦点に対して画像内に現れるランドマークの位置に基づくスケール拡大とに基づいて推定され得る。例えば、ランドマークまでの距離は、Z=V×dt×R/Dにより推定されてよく、Vは車両の速度であり、Rは時刻t1におけるランドマークからの拡張焦点までの画像内の距離であり、Dは、t1からt2までの画像内のランドマークに対する距離の変化である。dtは、(t2-t1)を表す。例えば、ランドマークまでの距離は、Z=V×dt×R/Dにより推定されてよく、Vは車両の速度であり、Rはは、ランドマークと拡張焦点との間の画像内の距離であり、dtは時間間隔であり、Dは、エピポーラ線に沿うランドマークの画像ずれである。上記の式と同等である他の式、例えば、Z=V×ω/Δωが、ランドマークまでの距離を推定するために用いられ得る。ここで、Vは車両の速度であり、ωは、(オブジェクトの幅のような)画像の長さであり、Δωは、単位時間における画像の長さの変化である。
ランドマークの物理的サイズが知られている場合、ランドマークまでの距離は、以下の式、Z=f×W/ωに基づいて判定されてもよく、fは焦点距離であり、Wは、ランドマークのサイズ(例えば、高さ又は幅)であり、ωは、ランドマークが画像を離れたときの画素の数である。上記の式から、距離Zの変化は、ΔZ=f×W×Δω/ω2+f×ΔW/ωを用いて算出されてよく、ΔWは、平均化によりゼロに減衰し、Δωは、画像の境界ボックス精度を表す画素の数である。ランドマークの物理的サイズを推定する値は、サーバ側において、複数の観測値を平均化することにより算出され得る。距離推定の結果的な誤差は、非常に小さいかもしれない。上記の式、すなわちΔW及びΔωを用いた場合に生じ得る誤差の2つの情報源が存在する。距離の誤差に対するそれらの寄与は、Δ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又は複数の統計技術を用いて、未処理位置データ1410の変動が、実際の相違又は統計的な誤差を表すかを判定するマップの概要1420を生成し得る。概要1420内の各経路は、経路を形成した未加工のデータ1410にリンクされて戻ってよい。例えば、概要1420内のAとBとの間の経路は、運転1からではなく、運転2、3、4及び5からの未加工のデータ1410にリンクされる。概要1420は、(例えば、上述したスプラインとは異なり、同じ道路上の複数の車線から運転を組み合わせるので)車両をナビゲートするために用いられるのに十分に詳細でないかもしれないが、有用なトポロジカル情報を提供してよく、交点を定義するために用いられ得る。
図15は、マップの概要のセグメント(例えば、概要1420内のセグメントAからB)内のスパースマップに対して、さらなる詳細が生成され得る例を示す。図15に示されるように、データ(例えば、エゴモーションデータ及び路面標識データなど)は、運転に沿う位置S(又は、S1又はS2)に応じて示され得る。サーバ1230は、運転1510のランドマーク1501、1503及び1505と、運転1520のランドマーク1507及び1509との間の一意の一致を識別することによってスパースマップに対するランドマークを識別し得る。そのようなマッチングアルゴリズムは、ランドマーク1511、1513及び1515の識別をもたらし得る。しかしながら、当業者であれば、他のマッチングアルゴリズムが用いられてよいことを認識する。例えば、一意のマッチングの代わりに、又は、これと組み合わせて、確率最適化が用いられてよい。サーバ1230、運転を長手方向に整列させて、マッチングされたランドマークを整列させ得る。例えば、サーバ1230は、基準運転として、1つの運転(例えば、運転1520)を選択し、次に、整列のために他の運転(例えば、運転1510)をシフト及び/又は弾力的に伸ばしてよい。
図16は、スパースマップで用いる揃えられたランドマークのデータの例を示す。図16の例において、ランドマーク1610は、道路標識を有する。図16の例は、複数の運転1601、1603、1605、1607、1609、1611及び1613からのデータをさらに示す。図16の例では、運転1613からのデータは、「ゴースト」ランドマークで構成されており、運転1601、1603、1605、1607、1609及び1611のいずれも、運転1613において特定されたランドマークの近傍にあるランドマークの識別情報を含まないので、サーバ1230は、それをそのように識別し得る。したがって、サーバ1230は、ランドマークが現れていない画像に対するランドマークが現れている画像の割合が閾値を超えている場合、可能性のあるランドマークを承認してよく、及び/又は、ランドマークが現れている画像に対するランドマークが現れていない画像の割合が閾値を超えている場合、可能性のあるランドマークを拒否してよい。
図17は、運転データを生成するためのシステム1700を示し、スパースマップをクラウドソーシングするために用いられ得る。図17に示されるように、システム1700は、カメラ1701及び位置特定デバイス1703(例えば、GPSロケータ)を含み得る。カメラ1701及び位置特定デバイス1703は、車両(例えば、車両1205、1210、1215、1220及び1225のうちの1つ)に取り付けられ得る。カメラ1701は、複数のタイプの複数のデータ、例えば、エゴモーションデータ、交通標識データ又は道路データなどを提供し得る。カメラのデータ及び位置データは、運転セグメント1705にセグメント化され得る。例えば、運転セグメント1705はそれぞれ、1km未満の運転からのカメラのデータ及び位置データを有し得る。
いくつかの実施形態において、システム1700は、運転セグメント1705における冗長性を取り除き得る。例えば、ランドマークがカメラ1701からの複数の画像に現れている場合、システム1700は、運転セグメント1705がランドマークの位置及びこれに関連する任意のメタデータのうちの一方のみのコピーを含むように、冗長データを取り去り得る。さらなる例として、カメラ1701からの複数の画像内に車線標示が現れている場合、システム1700は、運転セグメント1705が任意のメタデータの位置及び車線標示に関連する任意のメタデータのうちの一方のコピーのみを含むように、冗長データを取り去り得る。
システム1700は、サーバ(例えば、サーバ1230)も含む。サーバ1230は、車両から運転セグメント1705を受信し、運転セグメント1705を単一の運転1707に再結合し得る。そのような配置は、サーバが運転全体に関連するデータを格納することも可能にしつつ、車両とサーバとの間でデータを移動させる場合の帯域幅要件を低減することを可能にし得る。
図18は、スパースマップをクラウドソーシングするためにさらに構成される図17のシステム1700を示す。図17のように、システム1700は、車両1810を含み、例えば、(例えば、エゴモーションデータ、交通標識データ又は道路データなどを提供する)カメラ及び位置特定デバイス(例えば、GPSロケータ)を用いて、運転データを取り込む。図17のように、車両1810は、収集されたデータを複数の運転セグメント(図18において、「DS1 1」、「DS2 1」、「DSN1」として示される)にセグメント化する。次に、サーバ1230は、運転セグメントを受信し、受信したセグメントから(図18において「運転1」として示される)運転を再構築する。
図18にさらに示されるように、システム1700はまた、追加の車両からデータを受信する。例えば、車両1820はまた、例えば、(例えば、エゴモーションデータ、交通標識データ又は道路データなどを提供する)カメラ、及び、位置特定デバイス(例えば、GPSロケータ)を用いて運転データを取り込む。車両1810と同様に、車両1820は、収集されたデータを複数の運転セグメント(図18において「DS1 2」、「DS2 2」、「DSN2」として示される)にセグメント化する。次に、サーバ1230は、運転セグメントを受信し、受信したセグメントから運転(図18において、「運転2」として示される)を再構築する。任意の数の追加の車両が用いられてよい。例えば、図18はまた、運転データを取り込み(図18において「DS1 N」、「DS2 N」、「DS3 N」として示される)運転セグメントにそれをセグメント化し、(図18において、「運転N」として示される)運転へと再構築するために、それをサーバ1230に送信する「自動車N」を含む。
図18に示されるように、サーバ1230は、複数の車両(例えば、「自動車1」(車両1810とも名付けられる))、「自動車2」(車両1820とも名付けられる)及び「自動車N」)から収集さえる再構築された運転(例えば、「運転1」、「運転2」及び「運転N」)を用いて、(「マップ」として示される)スパースマップを構築し得る。
図19は、道路セグメントに沿う自律走行車両のナビゲーション用のスパースマップを生成するための例示的な処理1900を示すフローチャートである。処理1900は、サーバ1230に含まれる1又は複数の処理デバイスにより実行され得る。
処理1900は、1又は複数の車両が道路セグメントを通過するときに取得された複数の画像を受信する段階(段階1905)を含み得る。サーバ1230は、車両1205、1210、1215、1220及び1225のうちの1又は複数内に含まれるカメラから画像を受信し得る。例えば、カメラ122は、車両1205が道路セグメント1200に沿って走行しているときに、車両1205を取り囲む環境についての1又は複数の画像を取り込んでよい。いくつかの実施形態において、サーバ1230は、図17に関して上述したように、車両1205のプロセッサにより取り除かれた冗長性を有していた取り除かれた画像データを受信してもよい。
処理1900は、複数の画像に基づいて、道路セグメントに沿って広がる路面特徴の少なくとも1つのライン表現を識別する段階(段階1910)をさらに含み得る。各ライン表現は、路面特徴と実質的に対応する道路セグメントに沿う経路を表し得る。例えば、サーバ1230は、カメラ122から受信した環境画像を解析して道路縁部又は車線標示を識別し、道路縁部又は車線標示と関連付けられる道路セグメント1200に沿う走行の軌跡を判定し得る。いくつかの実施形態において、軌跡(又は、ライン表現)は、スプライン、多項式表現又は曲線を含み得る。サーバ1230、段階1905で受信したカメラのエゴモーション(例えば、3次元並進及び/又は3次元回転動作)に基づいて、車両1205の走行の軌跡を判定し得る。
処理1900は、複数の画像に基づいて、道路セグメントと関連付けられる複数のランドマークを識別する段階(段階1910)を含んでもよい。例えば、サーバ1230は、カメラ122から受信した環境画像を解析して、1又は複数のランドマーク、例えば、道路セグメント1200に沿う道路標識を識別し得る。サーバ1230は、1又は複数の車両が道路セグメントを通過するときに取得された複数の画像の解析を用いてランドマークを識別し得る。クラウドソーシングを可能にするために、解析は、道路セグメントと関連付けられる可能性のあるランドマークを承認及び拒否することに関する規則を含んでよい。例えば、解析は、ランドマークが現れていない画像に対するランドマークが現れている画像の割合が閾値を超えている場合、可能性のあるランドマークを承認すること、及び/又は、ランドマークが現れている画像に対するランドマークが現れていない画像の割合が閾値を超えている場合、可能性のあるランドマークを拒否することを含み得る。
処理1900は、サーバ1230により実行される他の操作又は段階を含んでよい。以下でさらに詳細に議論されるように、例えば、ナビゲーション情報は、道路セグメントに沿って走行する車両に対するターゲット軌跡を含んでよく、処理1900は、サーバ1230により、道路セグメントを走行している複数の自動車に関連する車両の軌跡をクラスタリングする段階、及び、クラスタリングされた車両の軌跡に基づいて、ターゲット軌跡を判定する段階を含んでよい。車両の軌跡をクラスタリングする段階は、サーバ1230により、車両の絶対方向(absolute heading)又は車両の車線指定のうちの少なくとも一方に基づいて、道路セグメントを走行する車両に関連する複数の軌跡を複数のクラスタにクラスタリングする段階を含み得る。ターゲット軌跡を生成する段階は、サーバ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は、自律走行車両のナビゲーションで用いる道路ナビゲーションモデルを生成するための1又は複数の演算を実行するためのコンピュータコード又は命令を格納し得るメモリ2015のブロック図を示す。図21に示されるように、メモリ2015は、車両のナビゲーション情報を処理するための操作を実行するための1又は複数のモジュールを格納し得る。例えば、メモリ2015は、モデル生成モジュール2105及びモデル分配モジュール2110を含んでよい。プロセッサ2020は、メモリ2015に含まれるモジュール2105及び2110のいずれかに格納されている命令を実行し得る。
モデル生成モジュール2105は、プロセッサ2020により実行されるときに、車両1205、1210、1215、1220及び1225から受信したナビゲーション情報に基づいて、共通の道路セグメント(例えば、道路セグメント1200)に対する自律走行車両の道路ナビゲーションモデルの少なくとも一部を生成し得る命令を格納し得る。例えば、自律走行車両の道路ナビゲーションモデルを生成する際に、プロセッサ2020は、共通の道路セグメント1200に沿う車両の軌跡を異なるクラスタにクラスタリングし得る。プロセッサ2020は、異なるクラスタのそれぞれに対するクラスタリングされた車両の軌跡に基づいて、共通の道路セグメント1200に沿うターゲット軌跡を判定し得る。そのような操作は、各クラスタにおいて、(例えば、クラスタリングされた車両の軌跡を表すデータを平均化することにより)クラスタリングされた車両の軌跡の中間又は平均の軌跡を求める段階を含んでよい。いくつかの実施形態において、ターゲット軌跡は、共通の道路セグメント1200の単一の車線と関連付けられ得る。
道路モデル及び/又はスパースマップは、道路セグメントと関連付けられる軌跡を格納し得る。これらの軌跡は、自律ナビゲーションに対する自律走行車両に提供されるターゲット軌跡と称され得る。ターゲット軌跡は、複数の自動車から受信されてよい、又は、複数の自動車から受信される実際の軌跡又は推奨される軌跡(実際の軌跡にいくつかの修正を加えたもの)に基づいて生成されてよい。道路モデル又はスパースマップに含まれるターゲット軌跡は、他の車両から受信した新しい軌跡を用いて継続的に更新(例えば、平均化)され得る。
道路セグメントを走行する車両は、様々なセンサによりデータを収集し得る。データは、ランドマーク、道路シグネチャプロファイル、車両運動(例えば、加速度計データ、速度データ)、車両位置(例えば、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に沿って走行する他の自律走行車両によって後で用いられ得る。車両が道路セグメント1200に沿って走行している間に車両1205、1210、1215、1220及び1225により識別されたランドマークは、ターゲット軌跡に関連して記録され得る。ターゲット軌跡及びランドマークのデータは、その後の運転の際に他の車両から受信される新たなデータを用いて継続的に又は定期的に更新され得る。
自律走行車両の位置を特定するために、開示されるシステム及び方法は、拡張カルマンフィルタを用いてよい。車両の位置は、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は、道路(例えば、道路セグメント1200)を走行するために、車両1205にナビゲーションガイダンスを提供するために構成されるナビゲーションシステム2300を含み得る。車両1205は、他のセンサ、例えば、速度センサ2320及び加速度計2325を含んでもよい。速度センサ2320は、車両1205の速度を検出するように構成され得る。加速度計2325は、車両1205の加速度又は減速度を検出するように構成され得る。図23に示される車両1205は、自律走行車両であってよく、ナビゲーションシステム2300は、ナビゲーションガイダンスを自律運転に提供するために用いられ得る。代替的に、車両1205は、非自律、人により制御される車両であってもよく、ナビゲーションシステム2300は、さらに、ナビゲーションガイダンスを提供するために用いられ得る。
ナビゲーションシステム2300は、通信経路1235を通じてサーバ1230と通信するように構成される通信ユニット2305を含み得る。ナビゲーションシステム2300は、GPS信号を受信及び処理するように構成されるGPSユニット2310も含んでよい。ナビゲーションシステム2300は、データ、例えば、GPS信号、(車両1205に搭載されたストレージデバイスに格納され、及び/又は、サーバ1230から受信され得る)スパースマップ800からのマップデータ、道路プロファイルセンサ2330により検知された道路の幾何学形状、カメラ122により取り込まれた画像、及び/又は、サーバ1230から受信した自律走行車両の道路ナビゲーションモデルを処理うるように構成される少なくとも1つのプロセッサ2315をさらに含み得る。道路プロファイルセンサ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は、通信ユニット1705、GPSユニット2315、カメラ122、速度センサ2320、加速度計2325及び道路プロファイルセンサ2330を含む、車両1205に含まれる様々なセンサ及ビーコンポーネントと通信するように構成され得る。少なくとも1つのプロセッサ2315は、様々なセンサ及ビーコンポーネントからの情報又はデータを収集し、情報又はデータを通信ユニット2305を通じてサーバ1230に伝送し得る。代替的に又はさらに、車両1205の様々なセンサ又はコンポーネントは、サーバ1230と通信し、センサ又はコンポーネントにより収集されたデータ又は情報をサーバ1230に伝送してもよい。
いくつかの実施形態において、車両1205、1210、1215、1220及び1225は、互いに通信してよく、互いにナビゲーション情報を共有してよく、その結果、車両1205、1210、1215、1220及び1225のうちの少なくとも1つは、例えば、他の車両により共有される情報に基づいて、クラウドソーシングを用いて自律走行車両の道路ナビゲーションモデルを生成し得る。いくつかの実施形態において、車両1205、1210、1215、1220及び1225は、互いにナビゲーション情報を共有してよく、各車両は、車両に提供される独自の自律走行車両の道路ナビゲーションモデルを更新してよい。いくつかの実施形態において、車両1205、1210、1215、1220及び1225のうちの少なくとも1つ(例えば、車両1205)は、ハブ車両として機能し得る。ハブ車両(例えば、車両1205)の少なくとも1つのプロセッサ2315は、サーバ1230により実行される機能の一部又はすべてを実行し得る。例えば、ハブ車両の少なくとも1つのプロセッサ2315は、他の車両と通信し、他の車両からナビゲーション情報を受信し得る。ハブ車両の少なくとも1つのプロセッサ2315は、自律走行車両の道路ナビゲーションモデルを生成してよい、又は、他の車両から受信した共有される情報に基づいてモデルを更新してよい。ハブ車両の少なくとも1つのプロセッサ2315は、自律ナビゲーションガイダンスを提供するために、自律走行車両の道路ナビゲーションモデル又は当該モデルに対する更新を他の車両に伝送し得る。
ナビゲーション情報の匿名化
上記に開示されるように、1又は複数の車両からのデータは、自律走行車両のナビゲーションで用いる道路ナビゲーションモデルを生成するために用いられ得る。道路ナビゲーションモデルを生成するために用いられるデータは、本開示と矛盾しない任意のデータを含んでよく、データは、ホスト車両がある場所から次の場所へ移動するときに生成され、取り込まれ、又は、導出され得る。ホスト車両は、自律走行車両、部分的な自律走行車両、又は、人の運転者により動作される車両であってよい。例えば、道路又は車両の環境を示す1又は複数の画像は、車両が第1の場所から第2の場所へ移動するときに取り込まれ得る。別の例として、複数のGPS位置は、車両が走行しているときに判定され得る。依然として、データは、上述したように車両が走行する軌跡を判定するために生成され得る。
一部の環境において、データは個人情報を含んでよい。例えば、車両が私有地にあるガレージに格納される場合、当該車両の軌跡は、ガレージから私有地を横切る軌道と、車両が進入する公道とを含んでよい。別の例として、データは、人の家から人の職場までの軌跡を含んでよく、そうでない場合は、個人又は車両へと追跡することが可能であり得る情報を含んでよい。例えば、人が自身の家からオフィスビルへ毎日移動する場合、人の家からオフィスパークまでの経路を示す複数の軌跡が生成されるかもしれない。データは、人を識別するために用いられ得ることができるかもしれない。例えば、家と関連付けられた住所を容易に判定し、その家と関連付けられた人がオフィスビルで働いていると判定することができる。経路と関連付けられるパターンを判定し、それらのパターンを個人と相関させることもできるかもしれない。例えば、日常的に家からオフィスビルまで人が移動すると判定できる。個々の運転の癖を判定することもできるかもしれない。これらの例が示すように、いずれかの個々の車両又はユーザまでたどることができないように、データを匿名化する必要があり得る。
本開示と矛盾することなく、データは、1又は複数のシステムにより匿名化され得る。例えば、データは、それが取り込まれるとき、それが伝送されるとき、それが車両内で処理されるとき、リモートサーバにより処理されるとき、又は、それらの組み合わせなどで、匿名され得る。データは、例えば、車両と関連付けられるVIN番号、車両と関連付けられるユーザの識別情報、及び、データと関連付けられるメタデータなどの識別情報が取り除かれ得る。さらに又は代替的に、データは、以下で議論されるように、データをさらに匿名化するように処理され得る。
いくつかの実施形態において、ナビゲーションシステムは、ホスト車両が通過する道路区間に関連する匿名化される運転情報を収集し得る。ナビゲーションシステムは、本開示と矛盾しない任意のナビゲーションシステム、例えば、システム100、システム2300、それらの組み合わせの一部又は同様のシステムであってよい。ナビゲーションシステムは、ホスト車両に配置され得る、又は、ホスト車両と通信し得ることが考えられる。いくつかの実施形態において、ナビゲーションシステムは、離れて配置されるが、ホスト車両の1又は複数のセンサ、例えば、GPSユニット、カメラ、速度センサ、加速度計、道路プロファイルセンサなどと直接通信し得る。いくつかの実施形態において、ナビゲーションシステムは、ナビゲーションシステム2300であってよく、運転情報は、GPSユニット2315、カメラ122、速度センサ2320、加速度計2325及び道路プロファイルセンサ2330からのデータを含んでよい。
本開示と矛盾することなく、ナビゲーションシステムは、少なくとも1つのプロセッサを含んでよい。少なくとも1つのプロセッサは、1又は複数の演算、処理、方法又は機能を実行して、ホスト車両のナビゲーションに関連するデータを匿名化するように構成され得る。例えば、プロセッサは、以下の図25に関して議論されるプロセスを実行するようにプログラムされ得る。少なくとも1つのプロセッサは、本明細書に開示される任意のプロセッサ、例えば、処理ユニット110、プロセッサ2315又は別のプロセッサであってよい。
用語「道路区間」は、車道、高速道路、又は、車両によりナビゲート可能な他の表面(例えば、舗装されていない表面)のいずれか不可欠な要素を指すために用いられる。いくつかの実施形態において、道路区間は、交差点、高速道路の長さ、近傍にある1又は複数の道路、又は、2つの目的地間の経路などを有し得る。本開示と矛盾することなく、用語「道路セグメント」は、道路区間の任意の部分を指すために用いられる。いくつかの実施形態において、道路区間は、1又は複数の道路セグメントで構成され得る。例えば、車両は、道路区間に関連するナビゲーション情報を収集してよく、その情報は、道路区間内の複数の道路セグメントに対して解析され得る。
図24は、開示される実施形態と矛盾しない、1又は複数の演算を実行するための命令が格納され/プログラムされ得るメモリの例示的な機能ブロック図である。図24は、メモリ140又は150を参照するが、メモリは、本明細書に開示される任意のメモリ、又は、本明細書に開示される任意のプロセッサと通信する以前に開示されていないメモリであってよい。以下の説明ではメモリ140を参照するが、当業者であれば、命令が本開示と矛盾しない任意のメモリに格納され得ることを認識するだろう。
メモリ140は、ナビゲーション情報を匿名化に関連する1又は複数の演算を実行するための命令を含み得る1又は複数のモジュールを格納してよい。図24に示されるように、メモリ140は、動作判定モジュール2402、画像解析モジュール2404、道路セグメント化モジュール2406及び送信モジュール2408を含む。開示される実施形態は、メモリ140の特定の構成に限定されることはない。さらに、処理ユニット110、画像プロセッサ190、アプリケーションプロセッサ180及び/又はプロセッサ2315は、メモリ140に含まれるモジュール2402、2404、2406及び2408のいずれかに格納されている命令を実行してよい。以下の議論は、プロセッサ、処理ユニット110及びプロセッサ2315を参照する。当業者であれば、そのような参照が本開示と矛盾しない任意の他のプロセッサを参照してよいことを理解するだろう。したがって、メモリ140に格納されている任意の処理の段階、又は、任意の命令の実行は、1又は複数のプロセッサ又は処理デバイスにより実行され得る。
いくつかの実施形態において、動作判定モジュール2402は、プロセッサにより実行される場合、ホスト車両に対する少なくとも1つの動作表現を判定する命令を含み得る。動作表現は、1又は複数のセンサからの出力に基づいて判定されてよい。出力は、本明細書に開示される任意のセンサ又はセンサの組み合わせからの出力を含み得る。例えば、出力は、GPSユニット2310、カメラ122、速度センサ2320、加速度計2325及び/又は道路プロファイルセンサ2330からのデータを含み得る。別の例では、出力は、任意の他のセンサ又はセンサの組み合わせ、例えば、1又は複数のライダシステム、レーダシステム、音響センサシステム又はカメラシステムなどからの出力を含み得る。いくつかの実施形態において、動作判定モジュール2402は、複数の車両に対する動作表現の判定を促進する。例えば、動作判定モジュール2402は、1又は複数のセンサの出力が受信される別の車両の1又は複数の動作表現としてナビゲーションシステム2300が配置されるホスト車両のナビゲーションに関連する動作表現の判定を促進し得る。1又は複数の動作表現の判定は、以下でさらに議論される。
いくつかの実施形態において、画像解析モジュール2404は、プロセッサにより実行される場合、1又は複数の画像の解析を実行して、道路区間と関連付けられる少なくとも1つの道路特性を判定する命令を格納してよい。1又は複数の画像は、1又は複数の画像取込デバイス、例えば、画像取込デバイス122、124又は126により取り込まれる。画像解析は、本開示における他の箇所で議論されたのと実質的に同一の方式で実行されてよい。例えば、画像解析は、図5A~図5F、図6及び/又は図7に関連して議論したように、例えば、単眼画像解析又はステレオ画像解析が実行されてよい。いくつかの実施形態において、プロセッサは、画像のセットからの情報を追加の知覚情報(例えば、レーダ、ライダなどからの情報)を結合して、画像解析を実行してよい。
道路特性は、いずれも本開示と矛盾しなくてよい。例えば、道路特性は、道路の縁部、道路と関連付けられる中央線、道路の傾き又は任意の他の特性を含み得る。いくつかの実施形態において、道路特性は、道路区間の環境内の任意のオブジェクト、オブジェクトのグループ、又は、オブジェクトの組み合わせであってよい。例えば、道路特性は、道路区間に沿う又は道路区間上の1又は複数のランドマーク、例えば、停止標識、道路標識、交通信号、建物、マーカ、それらの組み合わせ又は任意の他のオブジェクトであってよい。いくつかの実施形態において、道路特性は、任意の静止又は動的な非一時的なオブジェクトであってよい。予め定められた信頼のレベルで車両による検出が可能な場合、非一時的なオブジェクトが道路特性であってよい。例えば、車両が道路区間をナビゲートする場合に標識を検出する可能性がある場合、一時的な建設標識が道路特性であってよい。道路特性とみなされ得る非一時的ではあるが一時的なオブジェクトの他の例は、動的な車線変更境界又は標識(必要に応じて、例えば、交通量の混雑時間中などに、例えば、1又は複数の車線の方向を切り換えるために用いられるもの)及び、特別な車線と関連付けられる標識又はゲート(例えば、高占有率の車線が特定の時間に開いているか否かを示す標識、有料道路と関連付けられる標識など)などを含み得る。つかの間の一時的なオブジェクトは、道路特性として含めることから除外されてよい。例えば、歩行者、車両、動物、又は、道路区間のその後のナビゲーション中に同一又は類似の位置にない可能性がある他の一時的なオブジェクトは、道路特性として除外され得る。いくつかの実施形態において、道路特性は、一時的な特性、例えば、天候条件又は道路障害物のインジケーション(例えば、自動車の衝突、油こぼれ、走行車線で停止した車両など)などを含み得る。画像解析モジュール2404は、道路特性と関連付けられる位置、形状、サイズ又は他の情報の判定を促すように構成されてよい。例えば、道路特性が、道路の側方で検出された停止標識である場合、プロセッサ2315は、画像解析モジュール2404に格納されている命令を実行することにより、停止標識の位置を判定し得る。
いくつかの実施形態において、道路セグメント化モジュール2406は、プロセッサにより実行されるときに、道路セグメント情報を組み立てて匿名化するための1又は複数の演算を実行する命令を格納し得る。道路セグメント情報は、例えば、動作判定モジュール2402により判定される動作表現、及び/又は、画像解析モジュール2404により判定される道路特性を含んでよい。例えば、道路セグメント情報は、ホスト車両が走行する軌跡、及び、車両に対する道路縁部の位置を含んでよい。いくつかの実施形態において、道路セグメント化モジュール2406は、道路の異なるセグメントと関連付けられる複数の道路セグメント情報を判定するための命令を格納し得る。複数のセグメントは、1台の車両から受信した情報から判定される1又は複数のセグメントを含んでよい。例えば、第1の車両と関連付けられる軌跡は、1又は複数のセグメントにセグメント化されてよく、各セグメントに関連する情報が判定され得る。さらに又は代替的に、複数のセグメントは、複数の車両から受信した情報から判定される1又は複数のセグメントを含み得る。例えば、第1の車両と関連付けられる第1の軌跡は、1又は複数のセグメントにセグメント化されてよく、第2の車両と関連付けられる第2の軌跡は、1又は複数のセグメントにセグメント化されてよい。
道路セグメントは、任意の長さであってよく、当該長さは、任意の手段により判定されてよい。例えば、道路セグメントの長さは、判定された又は予め定められた間隔内でランダムに選択されてよい。いくつかの実施形態において、道路セグメントの長さは、関連する道路区間のタイプ又は位置に応じ得る。例えば、長く伸びた高速道路で構成される道路区間の道路セグメントは、複数の都市区画で構成される道路区間の道路セグメントより大幅に長くてよい。この例では、長く伸びた高速道路に関連する道路セグメントは、例えば、数キロメートルの長さであってよいが、一方、都市区画に関連する道路セグメントは、1キロメートル又はそれより短くてよい。いくつかの実施形態において、道路セグメントの長さは、道路区間上のナビゲーションの速度に応じ得る。例えば、速度制限が時速65マイル(時速約105km)を超え得る長く伸びた州間高速道路の道路セグメントは、速度制限が時速35マイル(時速約56km)であり得る地方の道路の道路セグメントより大幅に長くてよい。いくつかの実施形態において、道路セグメントの長さは、道路区間におけるナビゲーションの複雑性に応じてよい。例えば、直線道路部分の道路セグメントは、カーブした道路区間の道路セグメントより大幅に長くてよい。同様に、わずかな曲がり角を含む経路と関連付けられる道路セグメントは、複数又は頻繁な曲がり角を必要とするものより大幅に長くてよい。いくつかの実施形態において、道路区間の長さは、ユーザにより判定され得る。例えば、本開示と矛盾しないシステムを用いる請負業者は、各道路セグメントが特定の長さの範囲内にあることを指示し得る。いくつかの実施形態において、道路区間の長さは、道路区間の特性又は品質により判定され得る。例えば、各道路セグメントは、1又は複数のランドマークがセグメントと関連付けられ得る長さであってよい。別の例において、道路セグメントがトンネル、環状交差点、橋渡し又は他の一意の特徴を含む場合、少なくとも1つの道路セグメントは、一意の特徴と少なくとも同じ長さであってよい。いくつかの実施形態において、道路セグメントの長さは、ランドマークの密度、又は、他の検出可能な道路特性に基づいて判定されてよい。道路特性の密度は予め定められてよく、範囲、閾値又は他の量として表されてよい。例えば、各道路セグメントは、例えば、車両により検出される5から7個のランドマーク、オブジェクト、又は、非セマンティックな特徴がある長さであってよい。上記の例は、例示に過ぎず、道路セグメントが、任意の長さを有してよく、かつ、本開示と矛盾しない任意の手段により判定され得ることが理解される。
道路セグメント化モジュール2406は、プロセッサにより実行されるときに、車両ナビゲーション情報に関連するデータの匿名化を最適化する命令を含み得る。命令は、いつ、どこで情報をセグメント化するかをプロセッサ2315に命令することにより匿名化を最適化し得る。例えば、第1命令は、開始、終了又は両方が任意のセグメントに含まれないように、軌跡がセグメント化される必要があることを指示し得る。この例では、軌跡の開始がセグメントに含まれていないことを指示することにより、私道、ガレージ又は他のプライベートな部分の軌跡(例えば、自宅又は職場と関連付けられる部分、又は、自宅又は職場の一部)が含まれないことを確保し得る。いずれのセグメントにも含まれていない個人情報は、削除されるか、安全な場所に格納され得る。いくつかの実施形態において、自律走行車両の道路ナビゲーションモデルを生成するために個人情報が必要又は有用であるかをプロセッサ2315が判定していう間、個人情報は、バッファに一時的に格納され得る。例えば、道路セグメントを用いて、駐車場内又はその外部への方向転換をマッピングすることが適切又は好ましいと判定される場合、例えば、オフィスビルの駐車場内又はその外部への軌跡を含む道路セグメントは、バッファに格納され、ナビゲーションモデルに含めるために伝送され得る。同様の例において、例えば、モデルに含めることが適切な道路セグメントに含まれる交差点、一意の道路特徴、他の道路特性がある場合、同じ道路セグメントは、バッファに格納され、ナビゲーションモデルに含めるために伝送され得る。バッファに格納されている道路セグメント情報は、複数のサブセグメントにさらに分けられてよく、道路セグメントの1又は複数の部分が、ナビゲーションモデルにおいて後に用いられる場合、匿名化が維持されることを可能にし得ることが考えられる。
道路セグメント化モジュール2406は、プロセッサにより実行されるときに、自律走行車両に対するナビゲーションモデルを生成するのに十分な情報が含まれることを確保する命令を含み得る。命令は、データの一部を保持するようプロセッサ2315に命令することにより、セグメント化された道路情報に十分な情報が含まれることを確保し得る。例えば、命令は、一意の道路構造に関連する情報がセグメントに含まれること、データの最小のパーセンテージが維持されること、一般に走行されていない領域に関連する日付が維持されることなどを指示し得る。例えば、命令は、トンネル、橋、環状交差点、合流車線、高速道路出口ランプ、又は、他の一意の道路特性が検出された場合、情報は、一意の特性に関連する情報がセグメント化によって失われないように維持されるべきであることを指示し得る。保持するための命令が一意のデータがプライベートな領域に関連するデータを除去するための命令と一貫性がない場合、道路セグメント化モジュール2406は、匿名化及び個人情報が削除され得ることを確保するために好みを与え得ることが考えられる。道路セグメント化モジュール2406における命令の実行の際に、プロセッサ2315により実行されるセグメント化のタイプのさらなる例が以下で議論される。
メモリ140は、プロセッサにより実行される場合、道路セグメント情報の伝送を実行する命令を格納し得る送信モジュール2408を含み得る。道路セグメント情報は、本開示と矛盾しないさらなる処理のために、外部サーバ、例えば、サーバ1230に伝送され得る。それをサーバ1230に伝送する前に、情報をセグメント化しておくことで、匿名化が維持され得る。道路セグメント情報は、追加の処理のために、別の車両又は別のシステムに伝送されてもよい。いくつかの実施形態において、情報は、以下で議論されるように、処理3100と矛盾しないさらなる処理のために、サーバ1230に伝送され得る。
モジュール2402、2404、2406及び2408のいずれかは、訓練されたシステム(例えば、ニューラルネットワーク又はディープニューラルネットワーク)又は訓練されていないシステムを用いて実装されてよい。
図25は、ホスト車両が通過する道路区間に関連する匿名化される運転情報を収集するための例示的なプロセスを示すフローチャート2500である。処理2500は、ナビゲーションシステム2300に含まれるプロセッサ2315により、システム100に含まれる処理ユニット110より、又は、別のプロセッサにより実行され得る。いくつかの実施形態において、処理2500は、動作判定モジュール2402、画像解析モジュール2404、道路セグメント化モジュール2406及び/又は送信モジュール2408に格納されている命令に従って、プロセッサ2315により実行され得る。
本開示と矛盾することなく、処理2500は、ホスト車両の動作を示す出力を受信するための段階2510を含み得る。出力は、1又は複数のセンサから出力される情報を含み得る。1又は複数のセンサは、ホスト車両と関連付けられる動作、位置又は他の品質に関連するデータを収集するように構成され得る。出力情報は、プロセッサ、又は、プロセッサと通信するシステムにより受信され得る。いくつかの実施形態において、1又は複数のセンサは、GPSセンサ、及び、速度センサ又は加速度計のうちの1又は複数を含み得る。例えば、プロセッサ2315は、のうちの1又は複数のGPSユニット2310、カメラ122、速度センサ2320、加速度計2325及び/又は道路プロファイルセンサ2330からの出力情報を受信するように構成され得る。出力は、本明細書で開示される有線伝送により、無線伝送により、又は、任意の手段により直接的に又は間接的にセンサのいずれかから受信され得る。
いくつかの実施形態において、情報は、本開示と矛盾しない1又は複数の出力を判定するために以前に処理されている場合がある。例えば、情報は、ホスト車両の軌跡を判定するために処理されている場合があり、判定された軌道は、段階2510でプロセッサ2315により受信され得る。いくつかの実施形態において、プロセッサ2315は、1又は複数のセンサから直接未加工のデータを受信し得る。
本開示と矛盾することなく、処理2500は、ホスト車両に対する少なくとも1つの動作表現を判定するための段階2520を含み得る。少なくとも1つの動作表現は、1又は複数のセンサからの出力に少なくとも部分的に基づいて判定され得る。例えば、動作表現は、処理2500の段階2510において受信された出力から判定され得る。少なくとも1つの動作表現は、ホスト車両の動作についての任意のインジケータを含み得る。例えば、動作表現は、ホスト車両と関連付けられる加速度、車両と関連付けられる速度、所与の時間における車両の経度及び緯度の位置、又は、車両と関連付けられる空間における3次元位置などを含み得る。いくつかの実施形態において、少なくとも1つの動作表現は、ホスト車両の判定された軌道を含んでよい。軌跡は、本明細書に開示された、例えば、図12、図20及び他の箇所に関連して説明された任意の手段により判定され得る。図26Aは、段階2520において判定された軌跡のいずれかであり得る複数の車両に対する軌跡を説明する。
いくつかの実施形態において、動作表現は、予め定められた座標系に関連するホスト車両に対するエゴモーション表現を含んでよい。例えば、エゴモーションは、回転、並進、横方向又は車両の他の動作を含み得る。ホスト車両のエゴモーションは、例えば、車両と関連付けられる速度、車両と関連付けられるヨーレート、又は、車両と関連付けられる傾き又はロールなどのうちの1又は複数をから判定され得る。いくつかの実施形態において、ホスト車両に対するエゴモーション表現は、6自由度に対して判定され得る。他の実施形態において、ホスト車両に対するエゴモーション表現は、任意の他の自由度に対して、例えば、3自由度に対して判定されてよい。
処理2500は、道路セグメントに沿うホスト車両の環境を表す少なくとも1つの画像を受信するための段階2530を含み得る。少なくとも1つの画像は、ホスト車両と関連付けられる1又は複数のカメラから受信され得る。例えば、プロセッサ2315は、画像取込デバイス122から1又は複数の画像を受信し得る。1又は複数の画像は、無線伝送、有線伝送又は任意の他の方法を含む、本明細書に開示される任意の手段により受信されてよい。1又は複数の画像は、ホスト車両の環境についての表現を含み得る。例えば、1又は複数の画像は、以下でより詳細に説明される図26B又は図26Cのものと同様の画像を含んでよい。
処理2500は、少なくとも1つの画像を解析して、道路区間と関連付けられる少なくとも1つの道路特性を判定するための段階2540を含んでよい。例えば、プロセッサ2315は、上述した画像解析モジュール2404に格納される命令に従って1又は複数の画像を解析し得る。別の例として、訓練されたシステム、例えば、ニューラルネットワークは、少なくとも1つの道路特性を判定するために用いられ得る。1又は複数の特性は、道路の任意の特性、例えば、道路の中央線、道路の縁部、道路に沿うランドマーク、道路にできた穴、及び、道路の曲がり角などを含んでよい。いくつかの実施形態において、判定された少なくとも1つの道路特性は、検出された車線スプリット、車線合流、破線の車線標示、実線の車線標示、車線内の路面の色、車線の色、車線方向又は車線タイプのうちの1又は複数のインジケータを含む車線特性を含んでよい。例えば、車線特性は、車線がHOV車線であり、実線により他の車線から分離されているとの判定を含んでよい。いくつかの実施形態において、判定された少なくとも1つの道路特性は、道路縁部のインジケータを含んでよい。本開示における他の箇所で議論したように、道路縁部は、縁部に沿って検出された境界、検出された歩道、縁部を示す線、縁部に沿う縁石に基づいて、又は、道路に沿う他のオブジェクトの検出により判定され得る。
いくつかの実施形態において、1又は複数の特性は、1又は複数の予め定義された特性を含み得る。例えば、プロセッサ2315は、特に、本開示と矛盾しない任意の1又は複数の特性を識別するように構成され得る。一部の道路特性は、道路と関連付けられる一般又は頻繁なタイプ、例えば、停止標識、速度制限標識、交通信号又は他のセマンティックなオブジェクトなどであってよい。プロセッサ2315は、上述したような画像解析を用いたこれらのセマンティックな道路特性、学習され又は予め定義された関連性を検出し得る。例えば、プロセッサ2315は、赤い八角形のオブジェクトを検出し、オブジェクトが停止標識であると判定し得る。別の例として、プロセッサ2315は、道路標識、例えば、「速度制限」、「ゆずれ」又は「スクールゾーン」などと一般的に関連付けられるテキストを検出し、オブジェクトが道路標識であると判定し得る。頻繁に発生するものでない他の道路特性、又は、他の非セマンティックなオブジェクト又は特徴が同じく判定されてよい。例えば、道路にできた穴又は変色したコンクリートのパッチは、道路特性としての役割を果たし得る。この例では、プロセッサ2315は、画像を解析して、例えば、道路にできた穴と関連付けられる影、変色と関連付けられるダークスポット、又は、周囲の環境から非セマンティックなオブジェクトを区別する任意の他の要素を検出することにより、道路にできた穴又は変色したコンクリートを検出してよい。次に、非セマンティックな特徴は、道路区間に沿ってそれに続く車両のナビゲートのための道路特性として用いられ得る。
いくつかの実施形態において、判定された少なくとも1つの道路特性はランドマークの識別子を含み得る。ランドマークの識別子は、任意のランドマーク、例えば、図10に関して議論したものを含み得る。ランドマークの識別子は、ランドマークのタイプ、ランドマークの位置又はそれらの組み合わせに関連する情報を含み得る。ランドマークのタイプは、交通信号、ポール、路面標識、停止線又は標識のうちの少なくとも1つを含み得る。ランドマークの位置は、ランドマークと関連付けられるGPS座標、道路又は別のランドマークに対するランドマークの位置、又は、本開示と矛盾しないランドマークの位置を識別する任意の他の手段を含み得る。例えば、ランドマークの識別子は、ランドマークが道路標識であるというインジケータ、及び、道路に対する道路標識の位置を含み得る。
いくつかの実施形態において、判定された道路条件は、道路と関連付けられる一時的な条件を含み得る。一時的な条件は、道路上に常に存在するものであってよいが、プロセッサ2315により受信される画像が検出される。一時的な条件は、例えば、自動車の衝突の存在、停止した車両、歩行者、又は、歩行者、道路上の動物、天候条件、又は、他の条件のグループの存在を含み得る。例えば、判定された少なくとも1つの道路特性は、道路区間に沿う天候条件のインジケータを有する一時的な道路特性を含み得る。天候条件は、雪、雨、霧又は太陽のまぶしさのうちの少なくとも1つと関連付けられてよい。
処理2500は、道路区間の第1部分に関連する第1の道路セグメント情報を組み立てるための段階2550を含んでよい。第1の道路セグメント情報は、ホスト車両に対する少なくとも1つの動作表現、及び/又は、道路の第1部分に関連する少なくとも1つの道路特性を含んでよい。例えば、プロセッサ2315は、段階2520で判定された動作表現と、段階2540で判定された道路特性とを有する第1の道路セグメント情報を組み立ててよい。例として、動作表現は、ホスト車両により走行される軌跡を含んでよく、組み立てられた道路セグメントが、軌跡、及び、軌跡と対応する道路の一部と関連付けられる道路特性を含み得る。
プロセッサ2315は、上述した道路セグメント化モジュール2406に格納されている命令に従って第1の道路セグメントを組み立て得る。例えば、プロセッサ2315は、命令に従って複数のセグメントに軌跡を分割し得る。次に、プロセッサ2315は、複数のセグメントから第1の道路セグメントを選択し、道路特性を有する第1のセグメントを組み合わせて、第1の道路セグメント情報を組み立ててよい。
第1の道路セグメント情報の組み立ては、情報がホスト車両から受信されたときに実行され得る。例えば、移動中、1又は複数のセンサ及び1又は複数のカメラからの情報は、プロセッサ2315により受信されてよく、プロセッサ2315は、受信した情報から動作表現及び道路特性を判定すること、及び、情報を第1の道路セグメント情報に組み立てることを開始してよい。この例では、複数の道路セグメント情報は、順次判定されてよく、ナビゲーションモデルを生成する際にセグメント化された情報を用いることに役立ち得る。
いくつかの実施形態において、プロセッサは、予め定められた遅延の後に、第1の道路セグメント情報の組み立てを開始するようにプログラムされ得る。道路セグメント化モジュール2406に関連して議論したように、遅延させた組み立ては、道路セグメント情報を匿名化するのに役立つ場合がある。例えば、遅延させることなく道路セグメント情報が組み立てられる場合、最初に組み立てられた道路セグメント情報は、車両により走行される経路の始点に関連する情報を含み得る。当該始点は、個人情報、例えば、ガレージの位置、私道の経路又は他の情報を含み得る。例えば、始点が個人の家又は会社にある場合、始点は、車両又は運転される経路と関連付けられる個人を判定するために用いられてもよい。遅延機能は、移動の最初の部分が第1の道路セグメント情報を組み立てる際に用いられないことを確保し得る。遅延は、時間的な遅延を含み得る。例えば、最初の10秒、20秒、30秒、1分、2分、5分、又は他の間隔に関連する情報は、第1の道路セグメント情報から除外され得る。遅延は、距離ベースであってもよい。例えば、最初の100フィート(約30.5m)、500フィート(約152.4m)、1/2マイル(約0.8km)、1マイル(約1.6km)又は他の距離に関連する情報は、第1の道路セグメント情報から除外され得る。遅延は、本開示と矛盾しない任意の手段により実現され得る。例えば、1又は複数のセンサは、遅延が経過するまで、それとともに関連するホスト車両又は道路の動作に関連する情報を取り込むことを開始しなくてよい。別の例において、1又は複数のセンサは、移動の期間に関する情報を取り込んでよく、プロセッサ2315は、遅延の間に取り込まれた情報を削除又は除外するように命令され得る。いくつかの実施形態において、遅延の長さは、時間ベースか距離ベースかがランダムに判定されてよく、又は、予め定義された閾値内でランダムに判定されてよい。例えば、遅延は、5秒から45秒の所定の時間範囲、又は、0.5kmから2kmの予め定められた距離などの間にあるようにランダムに選択され得る。
第1の道路セグメント情報において組み立てられる情報の匿名化を保持するために、他の手段が用いられてよいことが考えられる。例えば、プロセッサ2315により受信される画像は、家、私道又はプライベートデータの他のインジケータを含み、プロセッサ2315は、第1の道路セグメント情報に包含されているものからプライベートデータに関連して取得される任意の情報を除外するようにプログラムされ得る。情報の匿名化を保持する手段の例は、道路セグメント化モジュール2406に関連する議論を含む本開示の全体を通じて議論されている。
処理2500は、道路区間の第2部分に関連する第2の道路セグメント情報を組み立てるための段階2560を含んでよい。段階2540で組み立てられた第1の道路セグメント情報と同様に、第2の道路セグメント情報は、ホスト車両の少なくとも1つの動作表現、及び/又は、道路区間に関連する少なくとも1つの道路特性を含んでよい。例えば、プロセッサ2315は、段階2520で判定された動作表現と、段階2540で判定された道路特性とを有する第2の道路セグメント情報を組み立ててよい。例として、動作表現は、ホスト車両が走行した軌跡を含んでよく、組み立てられた道路セグメントは、軌跡と、軌跡に対応する道路の一部と関連付けられる道路特性とを含んでよい。第2の道路セグメント情報は、第1の道路セグメント情報に対して議論したのと実質的に同一の方式で組み立てられてよい。
第2の道路セグメント情報の組み立ては、第1のセグメント情報の組み立てと同様に、情報の匿名化を確保する手段を含み得る。例えば、第2の道路セグメント情報は、遅延の後に組み立てられてよく、個人情報と関連付けられる道路区間の一部(例えば、自宅又は職場の近く)は、第2の道路セグメント情報などから除外され得る。
本開示と矛盾することなく、道路区間の第2部分は、道路区間の第1部分とは異なっていてよい。例えば、段階2550で組み立てられた第1の道路セグメント情報と関連付けられる道路区間は、段階2560で組み立てられた第2の道路セグメント情報として、道路セグメント情報が組み立てられる道路区間とは異なる道路区間であってよい。したがって、第2の道路セグメント情報は、第1のセグメント情報のものとは異なる道路特性及び/又は動作表現を含み得る。
いくつかの実施形態において、道路区間の第2部分は、道路区間の第1部分から空間的に離れている場合がある。第1及び第2の道路区間は、道路区間の第3部分により空間的に離れていてよい。第3部分は、任意の距離であり得る。第3部分により第1及び第2部分を分離することは、情報をさらに匿名化し得る。例えば、第3部分は、セグメント化された道路情報を用いて生成されたマップに含まれなくてよい。いくつかの実施形態において、第1及び第2部分に関連する情報は、さらなる処理のために伝送されてよく、他方、第3部分に関連する情報は、削除され、処理することなく格納され、そうでなければ、本開示と矛盾しないさらなる処理から除外されてよい。
第3部分は任意の長さであってよい。第1の道路区間と第2の道路区間との間の距離が大きくなると、車両が方向転換し、退出し、そうでない場合は、第1部分と第2部分との間を走行していない可能性がより高くなる。したがって、いくつかの実施形態において、第3部分により表される相対的に大きな空間的な間隔が好ましい場合がある。例えば、道路区間の第1部分は、少なくとも1kmの距離分、道路区間の第2部分から空間的に離れていてよい。他の実施形態において、道路区間の第1部分は、任意の他の距離(例えば、0.5km、1.5km、2km、2.5km、3km、2.5km、5kmなど)分、道路区間の第2部分から空間的に離れていてよい。第3部分の長さは、例えば、道路セグメント化モジュール2406に関連して議論した第1及び第2の道路セグメントの長さを判定する手段を含む、本開示と矛盾しない任意の手段により判定されてよい。
第1の道路セグメント情報及び第2の道路セグメント情報の組み立ては、図26A~図28に関連してさらに議論される。第1の道路セグメント情報及び第2の道路セグメント情報のそれぞれは、1又は複数の要因に基づいて組み立てられ得る。上述した匿名化の特徴は、そのような要因の例である。いくつかの実施形態において、第1の道路セグメント情報と関連付けられる道路の第1部分及び第2の道路セグメント情報と関連付けられる道路の第2部分は、予め定められた長さ又はランダムに選ばれた長さであってよい。例えば、道路区間の第1部分及び道路区間の第2部分は、それぞれ、少なくとも2km、2kmから9km、少なくとも4km又は少なくとも10kmなどの長さを有し得る。各部分の長さ(例えば、1km、1.5km、2km、2.5km、3km、4km、5kmなど)は、任意の長さ、予め定められた長さ又は判定された最適化長さであってよい。例えば、プロセッサ2315は、道路区間の20kmに関連する情報を受信してよく、20kmが、各4kmの3つの部分にセグメント化されるべきであり、かつ、道路区間の残りの長さは、上述した匿名化要因を提供するために削除されるべきであると判定されてよい。別の例では、プロセッサ2315は、第1のセグメントは、5kmの長さの一部を含むべきであり、第2のセグメントは、4kmの長さの道路部分を含むべきであると判定し得る。例は、説明の目的のみのためであり、限定するものではない。議論したように、各道路セグメントは任意の長さであってよい。各部分の長さを判定する手段の例は、道路セグメント化モジュール2406に関連して上述されている。
いくつかの実施形態において、道路区間は、ランダムにセグメント化されてよい。例えば、道路区間の第1部分及び道路区間の第2部分はそれぞれ、プロセッサによりランダムに又は任意に判定された長さを有し得る。例えば、プロセッサ2315は、1又は複数のランダムな長さを判定し、道路セグメント情報が組み立てられるべき道路セグメントのそれぞれにランダムな長さを割り当ててよい。いくつかの実施形態において、ランダムに判定された長さは、予め定められた長さの閾値の範囲内に含まれ得る。例えば、ランダムに判定された長さは、予め定められた長さの+/-0.5kmの範囲内に含まれ得る。
本開示と矛盾することなく、第1及び第2の道路区間は、道路区間、以前に判定された道路区間又は他のデータに関連するデータに基づいて判定されてよい。いくつかの実施形態において、第1の道路区間、第2の道路区間又は両方は、道路の特性に基づいて判定されてよい。例えば、道路区間が曲がり角を含む場合、プロセッサ2315は、第1部分又は第2部分のいずれかが曲がり角に対応するセグメントを含むことを確保するようにプログラムされ得る。曲がり角は、真っすぐなセグメントよりも自律走行車両をナビゲートするのがより困難であり得るので、曲がり角に対応する道路セグメント情報は、自律走行車両に対するナビゲーションモデルを生成する際に有益であり得る。同様に、道路が一意の道路特性を含む場合、プロセッサ2315は、少なくとも1つのセグメントが一意の特性を含むようにプログラムされ得る。例えば、道路区間がトンネルを含む場合、道路の第1部分又は道路区間の第2部分の少なくとも一方は、道路区間の第1部分又は道路区間の第2部分のいずれかの範囲内にトンネルの長さが完全に含まれるように、少なくとも1つのプロセッサにより指定される。いくつかの実施形態において、プロセッサ2315は、例えば、サーバ1230から受信したデータに基づいて、第1及び第2の道路部分を判定してよい。例えば、サーバ1230が、複数の車両から第1の道路セグメント情報及び第2の道路セグメント情報を受信した場合、図12及び図23に対して議論されたように、サーバ1230は、取得された情報がない道路区間の一部を判定するように構成されてよい。この事例では、サーバ1230は、道路区間の第1又は第2のセグメントのいずれかの一部として、見逃した部分を含めるための命令をプロセッサ2315に伝送してよい。
処理2500の議論は、第1及び第2の道路セグメントを参照しているが、任意の数の道路セグメントが生成され得ることが理解される。例えば、複数の道路セグメントは、いずれか1つの道路区間に対して生成され得る。
処理2500は、自律走行車両の道路ナビゲーションモデルの組み立てのために、ホスト車両に対して離れて配置されたサーバに、第1の道路セグメント情報及び第2の道路セグメント情報の伝送を行うための段階2570を含み得る。例えば、プロセッサ2315は、段階2550で組み立てられる第1の道路セグメント情報及び/又は段階2560で組み立てられる第2の道路セグメント情報をサーバ1230に伝送し得る。サーバ1230は、図12、図14及び/又は図21及び本明細書の他の箇所に関連して議論したように、複数のホスト車両からの道路セグメント情報を用いて、自律走行車両の道路ナビゲーションマップを生成し得る。サーバ1230に伝送されるデータは、ホスト車両が走行する未処理の経路よりはむしろ、1又は複数のセグメントを有するので、データは、車両が走行した経路へ追跡することが可能ではなく、これにより、データの匿名性を保証し得る。プロセッサ2315が、第1部分及び第2部分を分離する道路の第3部分に関連する情報を組み立てる例では、プロセッサは、道路区間の第3部分に関連する組み立てられた道路セグメント情報のサーバへの伝送を控えてよい。上記の第3部分に関連する情報の伝送により、プロセッサ2315は、上述したように、データが匿名化されることを確保し得る。
いくつかの実施形態において、第1及び第2の道路セグメント情報の組み立て後に、プロセッサ2315は、情報を一時的に格納し、情報がユーザ又は車両へと追跡することが可能であり得る任意の情報を含んでいないと判定した場合のみ、情報を伝送し得る。例えば、プロセッサは、道路セグメント情報の最終組み立てがホスト車両による運転の終了を表す道路セグメント情報の最終組み立てについてのサーバへの伝送を控えるようにプログラムされ得る。道路セグメント情報が、運転の終点を除外することを確保することは、道路セグメント情報を生成するために用いられるユーザ又は車両を識別するために、情報が用いられない可能性があることを確保するのに役立つかもしれない。別の例では、プロセッサは、道路セグメント情報の初期の組み立てが、ホスト車両による運転の開始の表現を含む道路セグメント情報の初期の組み立てについてのサーバへの伝送を控えるようにプログラムされ得る。別の例として、プロセッサ2315は、追加の処理を実行して、識別する情報が、動作表現、道路特性又は道路セグメント情報などの他のデータのいずれかに含まれているかを判定してよい。例えば、プロセッサ2315は、例えば、情報を収集するために用いられる車両の反射、ユーザの家の画像又は住所、又は、個人又は車両と関連付けられ得る他のデータを含む道路セグメント情報に画像が含まれていないことを確保するために二次画像解析を実行してよい。
いくつかの実施形態において、第1の道路セグメント情報のセットは、第1の時間に伝送されてよく、第2の道路セグメント情報のセットは、第2の時間に伝送されてよい。上述したように、単一の道路区間は、複数の道路セグメントにセグメント化されてよく、匿名化を保持するために、すべての道路セグメントが第1の時間に伝送されるわけではない。第2の時間において、追加の道路セグメント情報が伝送され得ることが考えられる。これらの実施形態では、道路区間に対して、1台の車両により生成された実質的にすべての道路セグメント情報は、匿名化を維持しつつ、自律走行車両の道路ナビゲーションモデルを生成する際に用いられ得る。これは、例えば、相対的に少ない車両が道路区間を走行する場合に有益である可能性があり、したがって、道路セグメント情報は、複数の車両から効果的又は効率的に伝送されることができない。
処理2500は、ナビゲーションモデルを受信しホスト車両におけるナビゲーション応答を行うための段階(図示されていない)を含み得る。例えば、プロセッサは、自律走行車両のナビゲーションモデルをリモートサーバから受信し、自律走行車両の道路ナビゲーションモデルに基づいて、ホスト車両により少なくとも1つのナビゲーション操作を行わせるようにプログラムされ得る。自律走行車両の道路ナビゲーションモデルは、例えば、段階2570においてサーバ1230により生成されたナビゲーションモデルであり得る。本開示における他の箇所で議論されたように、ナビゲーション操作は、ホスト車両による任意の応答、例えば、加速、ブレーキ、方向転換、車線変更又は停止などであり得る。
当業者であれば、本開示の利点を用いて、処理2500の段階が任意の順序で実行されてよく、一部の段階が除外されてよいことを理解する。例えば、道路区間と関連付けられる道路特性を判定することに関する段階2530及び2540が、ホスト車両の1又は複数の動作表現を判定することに関する段階2510及び2520の前に又はこれらと実質的に同時に実行されることができないとする理由は存在しない。同様に、処理2500の任意の他の段階が再構築又は省略され得る。処理2500は、例えば、自律走行車両のナビゲーション及び/又はナビゲーションデータの匿名化に関連する規制上の標準を満たす又は超えるように調節され得る。例えば、規制上の標準は、自律走行車両の道路ナビゲーションモデルが含む必要があるレベルの詳細を指示し得る。当業者であれば、データの匿名性を維持しつつ、規制上の標準を満たす必要がある情報を収集するために、処理2500をどのように調節するかを理解している。
図26Aは、処理2500により受信又は判定され得るタイプの複数の動作表現及び道路特性の例示的な図である。図26B及び図26Cは、処理2500中に受信され、1又は複数の道路特性を判定するために用いられ得るタイプの画像の例である。図は、例示のためだけであり、処理2500の理解を促進するために用いられ、又は、ホスト車両により通過される道路区間に関連する運転情報を匿名化するための手段と同様である。
図26Aは、道路区間2601及び複数の軌跡2606、2608、2610、2612及び2614を示し、各軌跡がホスト車両により走行される経路を表す。上述したように、軌跡は、処理2500の段階2510の一部として1又は複数のセンサから受信され得る。さらに又は代替的に、軌跡は、段階2520の一部として未加工のデータから判定されてよく、図11A、図22及び本開示における他の箇所に関して説明したように、軌跡が判定される。
いくつかの実施形態において、軌跡2606、2608、2610、2612及び2614のそれぞれは、単一のホスト車両により走行される経路を表してよく、各経路は異なる時間において走行される。例えば、車両1205は、第1の時間において軌跡2606を、第2の時間において軌跡2608を、第3の時間において軌跡2610を、第4の時間において軌跡2612を、かつ、第5の時間において軌跡2614を走行し得る。いくつかの実施形態において、軌跡2606、2608、2610、2612及び2614のそれぞれは、異なるホスト車両により走行される経路を表し得る。例えば、車両1205は、軌跡2606を走行してよく、車両1210は、軌跡2608を走行してよく、車両1215は、軌跡2610を走行してよく、車両1220は、軌跡2612を走行してよく、車両1225は、軌跡2614を走行してよい。他の例では、車両1205は、第1の時間において軌跡2606を走行し、第2の時間において軌跡2608を走行してよく、車両1210は、第3の時間において軌跡2610を走行してよく、車両1215は、第4の時間において軌跡2612を、かつ、第5の時間において軌跡2614を走行してよい。車両1205、1210、1215、1220及び1225及び軌跡2606、2608、2610、2612及び2614の任意の他の組み合わせが可能であってよい。以下の説明では、明確にするために、軌跡は、1台の車両とマッチングされている。
軌跡2606は、ホスト車両の動作表現を含み得る。車両1205は、軌跡2606により表される経路を走行してよく、車両1205内の1又は複数のセンサは、軌跡2606に関連するデータを収集してよい。例えば、車両1205は、図23において議論されるナビゲーションシステム2300を含んでよく、1又は複数のセンサ、例えば、GPSユニット2310、カメラ122、速度センサ2320、加速度計2325及び道路プロファイルセンサ2330からデータを収集し得る。軌跡2606は、本明細書に開示される方法、処理及び動作に従って、プロセッサにより判定され得る。例えば、プロセッサ2315は、1又は複数のセンサからデータを受信し、動作表現モジュール2402に格納されている命令に従ってデータを処理して、軌跡2606を判定し得る。例えば、軌跡2606は、処理2500の段階2520の一部として判定され得る。軌跡2606により表される経路は、家2602で始まり、道路区間2601に沿って進み、停止標識2616、停止線2618及びオフィスビル2604を通過する。軌跡2606が、匿名化されることなく自律走行車両のナビゲーションモデルを判定するために用いられる場合、ナビゲーションモデルは、家2602へと自律走行車両をナビゲートするための方向を含み得、家の住人にとって望まれていない可能性がある。軌跡2606が匿名化されずに伝送される場合、当該伝送が傍受され、家2606に住む個人と軌跡2606を関連付けるために用いられ得る可能性もある。軌跡2606の匿名化が必要とされ又は所望される他の理由があり得る。図27の議論は、軌跡2606に対する処理2500中に実現される匿名化を議論する。
軌跡2608、2610、2612及び2614のそれぞれは、軌跡2606と実質的に同一の方式で判定され得る。例えば、軌跡に対応するホスト車両は、1又は複数のセンサ、例えば、GPSユニット2310、カメラ122、速度センサ2320、加速度計2325及び道路プロファイルセンサ2330からデータを収集し得るナビゲーションシステム2300を含む。軌跡2608、2610、2612及び2614は、本明細書に開示される方法、処理及び動作に従って、プロセッサにより判定され得る。例えば、各ホスト車両に配置されるプロセッサ2315は、1又は複数のセンサからデータを受信し、動作表現モジュール2402に格納されている命令に従ってデータを処理して、対応する軌跡を判定し得る。例えば、車両1210は、その中にナビゲーションシステム2300及びプロセッサ2315を含んでよく、1又は複数のセンサにより収集されたデータから軌跡2608を判定してよい。同様に、車両1215は、ナビゲーションシステム2300及びプロセッサ2315を含んでよく、1又は複数のセンサにより収集されたデータから軌跡2610を判定してよい。同様に、車両1220は、その中にナビゲーションシステム2300及びプロセッサ2315を含んでよく、軌跡2612を判定してよい。同様に、車両1225は、ナビゲーションシステム2300及びプロセッサ2315を含んでよく、軌跡2614を判定してよい。
軌跡2608、2610、2612及び2614のそれぞれは、匿名化を要求し、又は、匿名化から利益を得るかもしれない個人情報を含み得る。例えば、軌跡2612は、匿名化を必要としないオフィスビル2604に最終目的地を含んでよく、軌跡2612に関連するデータは、車両1220又はそれとともに関連する個人へと追跡され得る。依然として、道路区間2601に沿う開始点又は終点を持たない軌跡は、軌跡と関連付けられる車両又は車両と関連付けられる個人へと追跡され得るデータを含み得る。したがって、軌跡2608、2610、2612及び2614により示される動作表現は、匿名されるものとする。匿名化は、処理2500において議論されたように生じ得る。図27はまた、軌跡の匿名化について議論する。
図26Bは、本開示と矛盾しない、画像取込デバイスにより取り込まれ、道路特性を判定するために用いられ得るタイプの例示的な画像2620である。画像2620は、車両が道路区間2601に沿って走行しているときに取り込まれた画像を表す。例えば、画像2620は、車両1205が軌跡2606に沿って走行しているときに、車両1205に含まれるカメラ122により取り込まれ得る。画像2620は、図15~図16に関連して議論されたようなものを含む本明細書で開示される任意の手段により取り込まれ得る。画像2620は、処理2500の一部として受信及び解析され得る。例えば、画像2620は、処理2500の段階2530において受信された1又は複数の画像のうちの1つであってよい。画像2620は、停止標識2616及び道路縁部2622の表現を含む。停止標識2616は、図26Aの停止標識2616と対応し得る。
画像2620は1又は複数の道路特性を判定するために解析され得る。例えば、画像2620は、処理2500の段階2540の一部として解析され得る。画像2620は、画像解析モジュール2404に格納されている命令に従って解析され得る。他の箇所で議論されるように、1又は複数の道路特性は、ランドマークの位置、道路縁部、中心線、又は、道路の他の特徴を含み得る。画像は、本開示と矛盾しない任意の手段により解析され得る。例えば、画像は、1又は複数の道路特性を含むことが知られている他の画像と比較され得る。別の例では、ランドマーク又は他の道路特性は、ランドマークの縁部を検出することにより判定され得る。いくつかの実施形態において、1又は複数の訓練されている又は訓練されていないシステムは、画像解析を実行するように構成され得る。例えば、画像解析モジュール2404は、道路特性を検出するように訓練されたニューラルネットワーク又はディープニューラルネットワークを含み得る。
画像2620の例において、プロセッサ2315は、停止標識2616及び/又は道路縁部2622を検出し得る。プロセッサ2315は、本開示と矛盾しない追加の機能、例えば、画像解析モジュール2404と矛盾しないものを実行し得る。例えば、プロセッサ2315は、停止標識2616と関連付けられる位置を判定し得る。当該位置は、道路区間2601、別のランドマーク、ホスト車両、又は、任意の他の静止又は可動型のオブジェクトに対して判定され得る。さらに又は代替的に、位置は、座標系、例えば、予め定められた座標系、GPSセンサにより用いられる座標系、緯度及び/又は経度などに対して判定され得る。したがって、停止標識2616と関連付けられる道路特性は、停止標識2616の視覚的表現、停止標識2616の位置、停止標識2616の修正された画像、それらの組み合わせ、又は、停止標識2616に関連する他のデータを含み得る。例として、画像2616を処理した後に、プロセッサ2315は、道路区間2601に関連する停止標識2616の位置を判定してよい。当該位置は、本明細書で開示される任意の手段により道路区間2601の視覚的表現で表され得る。例えば、以下でさらに議論される図27及び図28は、停止標識2616と関連付けられると判定された位置に停止標識マーカ2716を含む。
上述したように、例えば、停止標識2616の画像よりはむしろ、停止標識マーカ2716を用いることにより停止標識2616の位置を表す方が、道路特性のデータフットプリントを大幅に減らし得る。停止標識マーカ2716を用いることにより停止標識2616の位置を表すことはまた、データの匿名性を向上させ得る。例えば、停止標識2616の画像は、停止標識2616で停止した別の車両、画像2620が取り込まれた車両の反射、停止標識2616の近くの歩行者、又は、停止標識2616の環境にある他の情報などの個人情報を含み得る。停止標識に関連する未加工のデータよりはむしろ、画像2620を処理して、停止標識2616の位置を判定し、当該位置の表現を用いることにより、停止標識2616に関連する情報が匿名化される。
画像2620の例では、プロセッサ2315は、道路縁部2622を検出し得る。道路縁部2622は、本明細書で開示される任意の手段、例えば、ある道路から別の表面への変更を意味し得る縁石、車線、歩道、草木又は他のオブジェクトの検出などにより検出され得る。プロセッサ2315は、道路縁部2622の位置を判定し得る。上述したように、別の道路特性、車両の位置又は標準的な又は予め定められた座標系などに対する位置が判定され得る。例えば、道路縁部2622は、画像2620が取り込まれたホスト車両と停止標識2616との間に配置されていると判定され得る。
図26Cは、本開示と矛盾しない、画像取込デバイスにより取り込まれ、道路特性を判定するために用いられ得るタイプの例示的な画像2630である。画像2360は、車両が道路区間2601に沿って走行するときに取り込まれる画像を表す。例えば、画像2630は、車両1205が軌跡2606に沿って走行するときに、車両1205に含まれるカメラ122により取り込まれ得る。画像2630は、図15及び図16に関連して議論したものを含む、本明細書で開示される任意の手段により取り込まれ得る。画像2630は、処理2500、又は、本明細書で開示される任意の他の操作、処理又は方法の一部として受信及び解析され得る。例えば、画像2630は、処理2500の段階2530で受信された1又は複数の画像のうちの1つであってよく、画像解析モジュール2404に格納されている命令に従ってプロセッサ2315により処理されてよい。画像2630は、画像2620に関連して議論されたのと実質的に同一の方式で処理されてよい。
画像2630は、本開示と矛盾しない、道路区間2601に対して判定され得る追加の例示的な道路特性を含む。道路特性のそれぞれは、本明細書に開示される任意の手段により判定され得る。例えば、道路特性は、画像解析モジュール2404に格納されている命令を実行するプロセッサ2315により判定され得る。別の例において、道路特性は、処理2500の一部として、例えば、段階2540の一部として判定され得る。
画像2630に対して判定される道路特性は、道路縁部2632、レール2634及び中心線2638を含む。本開示において他の箇所で議論したように、各特性は、特性の位置又は特性の他の品質に対する情報を含み得る。例えば、プロセッサ2315は、画像2630が取り込まれた車両1205とレール2634との間に道路縁部2362が配置されていると判定してよい。別の例では、プロセッサ2315は、中心線2638が反対方向に進む2つの車線の交通量を分離する点線であると判定してよい。別の例において、プロセッサ2315は、レール2634が車両1205に対して道路の右手側に配置されていると判定され得る。例は限定するものではなく、道路特性は、本開示と矛盾しない任意の他の情報を含み得ることが理解される。
本開示に説明されるように、1又は複数のセグメントは、ホスト車両と関連付けられる単一の軌跡又は他の動作表現から組み立てられてよい。例えば、上述したように、車両1205内のナビゲーションシステム、例えば、ナビゲーションシステム2300は、1又は複数のセンサからデータを取り込み、車両1205が進む経路を表す軌跡2606を判定してよい。同様に、ナビゲーションシステム2300は、(例えば、カメラ122から)1又は複数の画像を取り込んでよく、1又は複数の道路特性は、1又は複数の画像から判定され得る。ナビゲーションシステム2300の一部であるプロセッサ2315は、次に、動作表現及び/又は道路特性から1又は複数の道路セグメントを組み立ててよい。プロセッサ2315は、道路セグメント化モジュール2406に格納されている命令に従って道路セグメント情報を組み立ててよい。未加工のデータを伝送するよりはむしろ、ナビゲーション情報を1又は複数のセグメントへと組み立てることは、いずれか1つの個別又は車両へリンクされ得るように、情報を匿名することを助ける。
図27は、本開示と矛盾しない、組み立てられた複数の道路セグメント2701-2715を含む道路区間2601の例示的な図である。道路セグメントは、本明細書に開示される任意の手段により組み立てられてよい。例えば、各セグメントは、処理2500に従って組み立てられてよい。各セグメントは、ホスト車両と関連付けられる1又は複数の動作表現、及び/又は、道路と関連付けられる1又は複数の道路特性から組み立てられてよい。例えば、セグメントはそれぞれ、図26Aに示される軌跡(すなわち、軌跡2206、2608、2610、2612及び2614)の一部、及び、図26B~図26Cに示される道路特性の一部を有してよい。明確にするために、図27に示される各セグメントは、図26Aにおける軌跡を表すために用いられる車線に対応する車線のタイプ(例えば、実線又は点線)として表されるが、しかしながら、セグメントが任意の手法で示され得ることが理解される。いくつかの実施形態において、セグメントは、道路区間2601に関連して図示されない場合がある。例えば、各セグメントは、図11Aに関して説明されたような他のセグメントに関連して、図13に関して説明されたような3次元空間におけるスプラインとして、図22に関して説明されたクラスタ、又は、本開示と矛盾しない任意の他の形式で図示されてよい。
図27は、複数の車両又は移動と関連付けられる情報から組み立てられる道路セグメントを示す。図27は、組み立てられ得るが限定されない様々なタイプのセグメントを示すために用いられていることが理解される。例えば、各車両と関連付けられるセグメントは、各車両内のシステムにより判定され得る。その環境において、図27に示されるように、同じ図に表示される異なる車両から複数のセグメントが存在することはあり得ない。他の実施形態において、複数の車両からのデータは、複数のセグメントへと組み立てられる前に、(任意のある車両に対して)遠隔にあるプロセッサ又はサーバに伝送され得る。明確にするために、セグメントのそれぞれは、対応し、1つのホスト車両と共に、図26Aからの軌跡に対して説明される。
車両1205と関連付けられる軌跡2606は、上述したように、1又は複数のセグメントへと組み立てられ得る。図27において、軌跡2606は、第1のセグメント2701、第2のセグメント2702及び第3のセグメント2703へとセグメント化される。各セグメント2701、2702、2703は、軌跡2606により表される経路の一部に従う。各セグメント2701、2702、2703は、実質的に同じサイズ又は異なるサイズであり得ることが考えられる。いくつかの実施形態において、各セグメント2701、2702、2703は、ランダムなサイズ、予め定められたサイズ、判定サイズ、又は、それらの閾値内にあってよい。各セグメント2701、2702、2703間の距離は、同じく、ランダムなサイズ、予め定められたサイズ、判定サイズ、それらの閾値内にあってよい。セグメント2701、2702及び2703は、軌跡2606より少ない個人情報を含み、したがって、車両1205の動作表現に関連するデータを匿名化することが本開示から明らかである。例えば、軌跡2606は、家2602の開始点を示し、他方、セグメント2701、つまり、家2602に最も近いセグメントは、道路区間2601の真っすぐな経路を単に示し、セグメント2701が家2602と関連付けられることを示すインジケーションを提供しない。したがって、セグメント2701から、車両1205が家2602と関連付けられると結論付けることはできない。同じことが、セグメント2702及び2703のそれぞれに対して当てはまる。
上述したように、各セグメントは、道路特性情報及び/又は動作表現情報を含み得る。例えば、セグメント2702は、図27に示される軌跡及びセグメント2702に密接に近い停止標識マーカ2716に関する情報の両方を含み得る。
上述したように、軌跡2606からセグメント2701、2702及び2703に対するデータを組み立ている間、プロセッサ2315は、セグメント2701、2702及び2703の間に配置されるセグメントに関連するデータを組み立ててよい。例えば、第1のセグメントは、セグメント2701とセグメント2702との間に配置されてよく、第2のセグメントは、セグメント2702とセグメント2703との間に配置されてよい。匿名化を確保するために、セグメント2701、2702及び2703だけが、さらなる処理のために伝送されてよいが、軌跡2606の他のセグメント又は一部は伝送されなくてよい。例えば、軌跡2606の残りの部分の上述の伝送の間、プロセッサ2315は、セグメント2701、2702及び2703のそれぞれをサーバ1230に伝送してよい。軌跡2606の伝送されていない部分は、サーバ1230による処理から削除、格納、そうでない場合除外されてよい。
図26Aに示される他の軌跡は、図27に示されるようなセグメントへと同様に組み立てられてよい。各軌跡及び対応するセグメント、及び、車両の議論は、それぞれが1又は複数の道路セグメントを組み立てるための1又は複数の例示的なプロセスを開示し、道路セグメント情報に含まれ得るタイプの情報の例を提供する。軌跡2608は、セグメント2704、2705及び2706へと組み立てられ得る。例えば、車両1210に配置され、又は、車両1210と通信するプロセッサ2315は、処理2500の段階2530の一部として軌跡2608を判定してよく、処理2500の段階2250及び/又は2560の一部として、セグメント2704、2705及び2706を組み立ててよい。各セグメント2704、2705及び2706は、本開示と矛盾しない特定のデータを含める又は除外するように処理され得る。例えば、セグメント2704は、家2602に関連する個人情報を含まないことを確保するように処理され得る。別の例では、セグメント2705は、セグメント2705に続く経路により示される方向転換をナビゲートするのに十分な情報を含むことを確保するように処理され得る。処理した後に、自律走行車両の道路ナビゲーションモデルを生成する際に用いるために、プロセッサ2315は、セグメント2704、2705及び2706をサーバ1230に伝送してよい。上述したように、セグメント2704、2705及び2706に含まれていない軌跡2608の一部は、サーバ1230による処理から削除され、格納され、そうでない場合除外され得る。
軌跡2610は、セグメント2707、2708及び2709へと組み立てられ得る。例えば、車両1215に配置され、又は、車両1215と通信するプロセッサ2315は、上述したように軌跡2610を判定してよく、処理2500の間に判定された動作表現及び/又は道路特性を用いてセグメント2707、2708及び2709を組み立ててよい。上述したように軌跡2610のいずれかの一意の態様が軌跡2606から組み立てられる少なくとも1つのセグメントに含まれることを確保するやり方で、軌跡2610は処理され得る。例えば、軌跡2610により示される経路を走行している間に、車両1215により行われる左折が、少なくとも1つのセグメントに含まれるべき一部としてマーキングされ得る。セグメント2708は、関心のある一部として、方向転換のマーキングの結果として組み立てられ得る。議論したように、セグメント2707、2708及び2709のそれぞれは、1又は複数の道路特性に関連する情報を含み得る。例えば、セグメント2708は、(停止線2616に対応する)停止線マーカ2718及び/又は停止標識マーカ2716に対するその位置に関連する情報を含んでよく、セグメント2707は、道路縁部又は中央線(例えば、中心線2638、道路縁部2632など)などに対するその位置に関連する情報を含んでよい。
軌跡2612は、セグメント2710及び2711へと組み立てられ得る。例えば、車両1220に配置され、又は、車両1220と通信するプロセッサ2315は、(例えば、段階2510又は段階2520の一部として)軌跡2612を受信又は判定してよく、軌跡2612及び1又は複数の道路特性の様々な部分を用いてセグメント2710及び2711を組み立ててよい。セグメント2710及び2711を組み立てるために用いられる1又は複数の道路特性は、例えば、本明細書で開示される道路縁部、ランドマーク又は任意の他の道路特性を含み得る。例えば、セグメント2710は、セグメント2710に対応する軌跡2612、及び、停止線マーカ2718及び/又は停止標識マーカ2716に対するセグメント2710の位置のインジケーションの一部を用いて組み立てられ得る。別の例では、車両1220は画像2630を取り込んでよく、セグメント2711は、中心線2638、セグメント2711に対応する軌跡2612、及び、道路縁部2632及び/又はレール2634に対するセグメント2711の位置の一部を含み得る。上述したように、セグメント2710及び2711は、本開示と矛盾しない自律走行車両のナビゲーションモデルへの組み立てのためにサーバ1230に伝送され得る。例えば、プロセッサ2315は、処理2500の段階2570の一部として、サーバ1230にセグメント2710及び2711を伝送してよい。セグメント2710及び2711に含まれていない軌跡2612の一部は、自律走行車両のナビゲーションモデルから除外され得る。例えば、プロセッサ2315は、セグメント2710又はセグメント2711のいずれかに含まれていない軌跡2612の一部の伝送を控えてよく又は削除してよく、そうでない場合、除外してよい。オフィスビル2604へと通じる軌跡2612の終点が、セグメント2710又はセグメント2711のいずれかに含まれていないことに気づく。これは、匿名化処理の結果であり得る。例えば、オフィスビル2604に対応するとの判定の際に、軌跡2612の終点が削除され得る。別の例において、終点に関連するデータは、遅延又は他の要因に起因して、1又は複数のセンサにより収集されていない。別の例において、プロセッサ2315は、終点に対応するセグメントを判定してよいが、車両、個人又は会社にリンクされ得る情報を伝送することを回避するために、セグメントの伝送を控えてよい。
軌跡2614は、セグメント2712、2713、2714及び2715へと組み立てられてよい。例えば、車両1225に配置され、又は、車両1225と通信するプロセッサ2315は、1又は複数のセンサ、例えば、GPSユニット2310、カメラ122、速度センサ2320、加速度計2325、及び、道路プロファイルセンサ2330の出力から軌跡2614を判定してよく、道路区間2601と関連付けられる1又は複数の道路特性を判定してよい。次に、プロセッサ2315は、セグメント2712、2713、2714及び2715、及び、セグメント2712、2713、2714及び2715間に配置されたセグメントを含む軌跡2614に沿う複数のセグメントを組み立ててよい。例えば、プロセッサ2315は、セグメント2712、セグメント2713、及び、セグメント2712及び2713間のセグメント(図示されていない)を判定してよい。同じことが、軌跡2614の長さに対して行われてよい。匿名化処理の一部として、プロセッサ2315は複数のセグメントのうちの第1のセットを削除、そうでない場合は、除外してよい。例えば、プロセッサ2315は、セグメント2712、2713、2714及び2715を除く、軌跡2614に沿うすべてのセグメントを削除してよい。別の例では、プロセッサ2315は、セグメント2712、2713、2714及び2715を伝送し、軌跡2614に沿う残りのセグメントを伝送することを控えてよい。
図27に関連して議論される例は、開示される実施形態の様々な態様の例を提供することが意図されている。それらは特許請求の範囲の範囲に限定されるものではない。例は、他の例と組み合わせられてよく、本開示と矛盾しないやり方で修正されてよく、そうでない場合は変更されてよい。
本開示において議論されるように、複数のセグメント化された道路情報は、サーバ又はプロセッサに伝送され得る。例えば、車両1205は、セグメント2701-2703に関する情報を伝送してよく、車両1210は、セグメント2704-2706に関連する情報を伝送してよく、車両1215は、セグメント2707-2709に関連する情報を伝送してよく、車両1220は、セグメント2710-2711に関連する情報を伝送してよく、車両1225は、セグメント2712-2715に関連する情報を伝送してよい。データは、自律走行車両のナビゲーションで用いる車両のナビゲーション情報を処理するために例えば、サーバベースのシステムに伝送されてよい。例えば、サーバ1230は、伝送された情報を受信し、ナビゲーションモデルを組み立てるための1又は複数の演算、機能、処理又は方法を実行してよい。サーバは、ナビゲーションモデルを組み立てるようにプログラムされた少なくとも1つのプロセッサを含む。少なくとも1つのプロセッサは、複数の車両からナビゲーション情報を受信するようにプログラムされ得る。例えば、少なくとも1つのプロセッサは、車両1205、1210、1215、1220及び1225から伝送された道路セグメント情報を受信してよい。いくつかの実施形態において、複数の車両からのナビゲーション情報は、共通の道路区間と関連付けられてよい。例えば、サーバ1230は、図27に示されるように、道路区間2601と関連付けられた複数の道路セグメントを受信してよい。他の実施形態において、複数の車両からのナビゲーション情報は、異なる道路区間と関連付けられてよい。この事例では、少なくとも1つのプロセッサは、第1の道路区間に関連するナビゲーション情報の第1のグループ、及び、第2の道路区間に関連するナビゲーション情報の第2のグループなどを判定するようにプログラムされ得る。
次に、共通の道路区間と関連付けられるナビゲーション情報は、共通の道路区間に対する自律道路ナビゲーションモデルを生成するために用いられ得る。道路ナビゲーションモデルは、図9A~図9B、図11A~図11D、図30及び本明細書の他の箇所に関して議論されたように、本開示と矛盾しない任意の手段に従って生成されてよい。
図28は、図27に示されるナビゲーション情報から判定された自律道路ナビゲーションモデル2800の態様を示す例示的な道路区間(例えば、道路区間2601)である。自律道路ナビゲーションモデル2800(本明細書では、ナビゲーションモデル2800と称される)は、ローカルマップ(例えば、ローカルマップ1140)と実質的に同様であってよく、自律走行車両に対する1又は複数のターゲット軌跡を含んでよい。例えば、ナビゲーションモデル2800は、道路区間2601を通じて様々な経路に対応するターゲット軌跡2802、2804、2806、2808、2810、2812、2814及び2816を含んでよい。自律走行車両は、道路区間2601をナビゲートするときに、ターゲット軌跡2802、2804、2806、2808、2810、2812、2814及び2816のうちの1又は複数にアクセス又は依存し得る。ターゲット軌跡2802、2804、2806、2808、2810、2812、2814及び2816は、図11Cに関して議論したように、ターゲット軌跡1141-1148に対して議論されたものとして機能し得る。
ナビゲーションマップ2800に含まれるターゲット軌跡のそれぞれは、取り込まれたナビゲーション情報から判定されてよい、又は、1又は複数のホスト車両により判定されてよい。例えば、道路区間2601について判定された道路セグメントは、図27に関連して議論されたように、ナビゲーションマップ2800において示される軌跡の少なくとも一部を生成するために用いられ得る。例えば、ターゲット軌跡2802は、セグメント2704、2701、2702、2711及び2703を含み得る。さらに、ターゲット軌跡2802は、軌跡2606、軌跡2608及び軌跡2612の組み合わせから導出され得る。ターゲット軌跡2802を組み立てるために、軌跡2606、2608及び2612よりはむしろセグメント2704、2701、2702、2711及び2703を用いる利点は、セグメント2704、2701、2702、2711及び2703と関連付けられる情報が、軌跡2606、2608及び2612に含まれる潜在的にパーソナルな又は識別する情報、例えば、家2606である軌跡2606の開始点と、オフィスビル2604である軌跡2612の終点を欠いていることである。セグメント2704、2701、2702、2711及び2703を組み立たることと関連付けられる段階、機能及び操作を実行することにより、情報は、識別する情報を取り除き、サーバ1230は追加の匿名化する機能を実行する必要はない。しかしながら、いくつかの実施形態において、サーバ1230は、ナビゲーションモデル、例えば、ナビゲーションモデル2800を組み立てるときに、追加の匿名化する機能を実行してよい。
図28及びナビゲーションモデル2800は、サーバ1230及び実行するようにプログラムされ得る操作を参照する際に以下でさらに議論される。図29は、メモリデバイス、本開示と矛盾しない1又は複数のモジュールを含み得るメモリ2900の例示的なブロック図である。メモリ2900は、サーバ1230内にあってよい、又は、サーバ1230と通信してよい。サーバ1230に含まれる少なくとも1つのプロセッサは、メモリ2900に格納されている命令を実行するようにプログラムされ得る。
メモリ2900は、ナビゲーションデータ受信モジュール2905及びナビゲーションモデル生成モジュール2910を含み得る。ナビゲーションデータ受信モジュール2905は、少なくとも1つのプロセッサにより実行されるときに、1又は複数の車両からナビゲーションデータを受信する命令を含み得る。例えば、ナビゲーションデータ受信モジュール2905は、図27に関して議論される道路セグメントデータなどを受信するための命令を含み得る。
いくつかの実施形態において、ナビゲーションデータ受信モジュール2905は、少なくとも1つのプロセッサにより実行されるときに、1又は複数の車両から受信したナビゲーションデータを編成する命令を含み得る。例えば、サーバ1230は、複数の車両からデータを受信してよく、当該データは複数の道路区間と関連付けられ得る。ナビゲーションデータ受信モジュール2905に含まれる命令は、プロセッサ2020が、例えば、受信したナビゲーション情報に対応する道路区間を識別し、道路区間に対応するグループにそれを編成することを可能にし得る。例えば、サーバ1230が、図27に示される道路セグメント及び複数の他の道路セグメントを受信した場合、プロセッサ202は、道路セグメント2701-2715が道路区間2601と関連付けられると判定し得る。別の例として、サーバ1230は、共通の道路区間に関連するナビゲーション情報を受信し、他の要因に従ってナビゲーション情報を編成してよい。例えば、サーバ1230は、セグメント2701-2715を受信してよく、ナビゲーションデータ受信モジュール2905に対する命令を実行するプロセッサ2020は、例えば、セグメント2712、2713及び2709が、通りの第1の側と関連付けられると判定してよい、すなわち、セグメント2704、2701、2702、2711及び2703が、通りの第2の側などと関連付けられている。別の例では、ナビゲーション情報は、近くの(例えば、予め定められた距離内にある)ランドマーク、道路縁部又は他の道路特性に基づいて編成され得る。例えば、道路セグメント2701-2715は、近くの停止標識マーカ2716、停止線マーカ2718、家2602、オフィスビル2604又は任意の他の道路特性に基づいて編成され得る。いくつかの実施形態において、第1の道路セグメント情報のセットは、第1の自律走行車両の道路ナビゲーションモデルに含めるために、第1の時間に編成されてよく、第2の道路セグメント情報のセットは、第2のナビゲーションモデルに含めるために、又は、第1のナビゲーションモデルを更新するために、第2の時間において編成され得る。例えば、道路セグメント2704、2701及び2711は、道路の第1の側に関連するように第1の時間に編成されてよく、道路セグメント2705、2702及び2703は、道路の同じ側に関連するように第2の時間に編成され得る。例は限定するものではなく、ナビゲーションデータが本開示と矛盾しない任意の手法で編成され得ることが理解される。
いくつかの実施形態において、ナビゲーションデータ受信モジュール2905は、少なくとも1つのプロセッサにより実行されるときに、受信したナビゲーションデータを格納する命令を含み得る。例えば、プロセッサ2020は、メモリデバイス、データベース、又は、メモリ2015又はストレージデバイス2010などの他のメモリにナビゲーションデータを格納してよい。ナビゲーションデータが編成される実施形態では、上述したように、データは、編成される前、編成された後、又は、それらの組み合わせにおいて格納され得る。
ナビゲーションモデル生成モジュール2910は、1又は複数のプロセッサにより実行されるときに、ナビゲーションデータに基づいて、ナビゲーションモデルを生成する命令を格納してよい。命令は、少なくとも1つのプロセッサに、本開示と矛盾しないスパースマップ又は自律走行車両の道路ナビゲーションモデルを作成することと矛盾しない1又は複数の機能を実行させてよい。例えば、ナビゲーションモデル生成モジュール2910は、処理1900、処理3000又はナビゲーションマップを生成するための任意の他の処理のすべて又は一部を実行するための命令を含み得る。ナビゲーションモデル生成モジュール2910は、少なくとも1つのプロセッサに実行されるときに、生成されたナビゲーションモデルを1又は複数の車両に伝送させる命令を格納してよい。例えば、命令は、プロセッサ2020に、生成されたナビゲーションモデルを1又は複数の自律走行車両に分配させてよい。
メモリ2900に含まれるモジュールのいずれか(例えば、ナビゲーションデータ受信モジュール2905、又は、ナビゲーションモデル生成モジュール2910)は、訓練されたシステム又は訓練されていないシステムと関連付けられる技術を実装してよい。例えば、モジュールは、ニューラルネットワーク又はディープニューラルネットワークを実装してよい。
図30は、自律走行車両のナビゲーションで用いる車両のナビゲーション情報を処理するための例示的な処理3000を示すフローチャートである。処理3000は、サーバ1230に含まれる少なくとも1つのプロセッサにより実行され得る。さらに、処理300は、メモリ2900に格納されている命令を実行することにより、少なくとも1つのプロセッサにより実行され得る。
処理3000は、複数の車両からナビゲーション情報を受信するための段階3010を含んでよい。サーバ1230は、本開示と矛盾しない1又は複数の車両から伝送されたナビゲーション情報を受信してよい。例えば、車両1205、1210、1215、1220及び1225はそれぞれ、ナビゲーションシステム2300を含んでよく、ナビゲーションシステム2300は、(例えば、処理2500を実施することにより)ナビゲーション情報を収集し、処理し、及び、伝送してよく、サーバ1230は、ナビゲーション情報を受信してよい。サーバ1230は、ナビゲーション情報を受信するように構成される1又は複数のデバイス、例えば、特に、情報を受信するように構成される受信器、又は、情報を受信するように構成されるプロセッサを含んでよい。例えば、プロセッサ2020は、ナビゲーションデータ受信モジュール2905に対して、ナビゲーション情報を受信するように命令を実行してよい。いくつかの実施形態において、サーバ1230は、サーバ1230から、サーバ1230と通信する1又は複数の車両に伝送される要求に応答して、ナビゲーション情報を受信してよい。例えば、プロセッサ2020は、通信ユニット2005、及び、車両1205及び1210を通じて要求を伝送することにより、車両1205及び1210からの情報を要求してよく、当該要求に応答してデータを伝送してよい。
いくつかの実施形態において、複数の車両からのナビゲーション情報は、共通の道路区間と関連付けられ得る。例えば、車両1205、1210、1215、1220及び1225から受信されるナビゲーション情報は、道路区間2601と関連付けられる。いくつかの実施形態において、複数の車両からのナビゲーション情報は、異なる道路区間と関連付けられ得る。これらの実施形態において、サーバ1230内のプロセッサ2020は、情報のそれぞれが関連付けられる道路区間に従ってデータを編成又はソートしてよい。編成又はソートは、上述した、ナビゲーションデータ受信モジュール2905に格納された命令に従って実行されてよい。いくつかの実施形態において、サーバ1230は、1又は複数の車両から、特定の道路区間と関連付けられるナビゲーションデータを要求してよい。例えば、プロセッサ2020は、特定の道路区間に対するナビゲーションモデルが不完全である、誤っている、又は、古いデータを有すると判定してよく、1又は複数の車両から道路区間に関連する情報を要求してよい。サーバ1230は、(例えば、道路区間を最近走行し、道路区間を走行した可能性がある1又は複数の車両を識別することにより)特定の車両から共通の道路区間のデータを要求してよい、又は、(例えば、サーバ1230と通信するあらゆる車両からデータを要求し、共通の道路区間と関連付けられるデータを分離することにより)車両の任意のサブセットから共通の道路区間のデータを要求してよいことが考えられる。
サーバ1230により受信されるナビゲーション情報は、1又は複数のホスト車両と関連付けられる1又は複数の動作表現を含んでよい。いくつかの実施形態において、ナビゲーション情報は、1又は複数の車両と関連付けられる複数の動作表現を含んでよい。動作表現は、さらに、共通の道路区間の1又は複数の部分と関連付けられてよい。動作表現は、本明細書で開示される任意の動作表現を含んでよい。例えば、共通の道路区間の第1及び第2部分に関連して、ホスト車両に対する少なくとも1つの動作表現は、ホスト車両に対する判定された軌道を含んでよい。この例では、ホスト車両に対する判定された軌道は、図27に示される道路セグメント情報と関連付けられる軌跡、例えば、道路セグメント2701-2715のいずれかと実質的に同じであってよい。本明細書において開示される任意の手段により、少なくとも1つの動作表現が判定され得る。例えば、共通の道路区間の第1及び第2部分に関連する、ホスト車両に対する少なくとも1つの動作表現は、GPSセンサ、速度センサ又は加速度計のうちの少なくとも1つからの出力に基づいて判定され得る。例えば、車両1205から受信したナビゲーション情報は、例えば、GPSユニット2310、速度センサ2320及び/又は加速度計2325からのデータを用いて処理2500の一部として判定される動作表現を含んでよい。
サーバ1230により受信されるナビゲーション情報は、1又は複数の道路区間と関連付けられる1又は複数の道路特性を含んでよい。いくつかの実施形態において、1台の車両からのナビゲーション情報は、1又は複数の道路区間と関連付けられる複数の道路特性を含み得る。いくつかの実施形態において、ナビゲーション情報は、1又は複数の道路区間と関連付けられる単一の道路特性を含んでよい。道路特性は、本明細書で開示される道路特性を含んでよく、道路区間の1又は複数の部分と関連付けられてよい。例えば、少なくとも1つの道路特性は、共通の道路区間の第1及び第2部分に関連してよく、検出された車線スプリット、車線合流、破線の車線標示、実線の車線標示、車線内の路面の色、車線の色、車線方向、車線タイプ、道路縁部の位置、ランドマークの識別子、又は、共通の道路区間に沿う天候条件のインジケータのうちの1又は複数のインジケータを含んでよい。例として、例えば、車両1205から受信したナビゲーション情報は、道路区間2601の道路縁部2632、レール2634及び/又は中心線2638のインジケータを含んでよい。別の例では、道路特性は、ランドマークのタイプ又はランドマークの位置のうちの少なくとも一方を含み得るランドマークの識別子を含んでよい。ランドマークのタイプは、交通信号、ポール、路面標識、停止標識又は標識のうちの少なくとも1つを含んでよい。例えば、道路セグメント2711と関連付けられる道路特性は、停止標識2616、オフィスビル2604又は任意の他のランドマークの識別子を含んでよい。
段階3010の一部として、サーバ1230により受信されたナビゲーション情報は、処理2500に従って判定されるナビゲーションデータを含んでよい。複数の車両のそれぞれからのナビゲーション情報は、共通の道路区間の第1部分に関連する道路セグメント情報を含んでよい。ナビゲーション情報の各部分は、ホスト車両と関連付けられる1又は複数の動作表現(例えば、軌跡、加速度など)及び/又は道路区間と関連付けられる1又は複数の道路特性(例えば、ランドマーク、道路縁部など)を含んでよい。例えば、第1の道路セグメント情報は、ホスト車両に対する判定された少なくとも1つの動作表現、及び、共通の道路区間の第1部分に関連する判定された少なくとも1つの道路特性を含んでよい。例えば、サーバ1230は、上述したように、道路セグメント2701と関連付けられる軌跡、及び、道路セグメント2701が家2602の近くに道路区間2601の道路縁部2632であることを示すインジケーション含み得る道路セグメント情報を車両1205から受信し得る。同様に、サーバ1230は、上述したよう、道路セグメント2711と関連付けられる軌跡、及び、停止標識マーカ2716に対する道路セグメント2711の位置のインジケーションを含み得る第1の道路セグメント情報を車両1220から受信し得る。
複数の車両のそれぞれから受信されるナビゲーション情報は、道路区間の複数のセグメントに関連する情報を含んでよい。例えば、複数の車両のそれぞれからのナビゲーション情報は、共通の道路区間の第2部分に関連する第2の道路セグメント情報を含んでよい。第1の道路セグメント情報のように、複数のセグメント情報のそれぞれは、ホスト車両と関連付けられる1又は複数の動作表現、及び/又は、道路区間と関連付けられる1又は複数の道路特性を含んでよい。いくつかの実施形態において、第2の道路セグメント情報は、ホスト車両に対する判定された少なくとも1つの動作表現、及び、共通の道路区間の第2部分に関連する判定された少なくとも1つの道路特性を含んでよい。例えば、サーバ1230は、道路セグメント2702と関連付けられた軌跡と、例えば、道路区間2601の停止標識2616、停止標識マーカ2716及び/又は道路縁部2622に対する道路セグメント2701の位置についてのインジケーションとを含み得る第2の道路セグメント情報を車両1205から受信してよい。
上記の例では、第1の道路セグメント情報及び第2の道路セグメント情報を有するナビゲーション情報について議論したが、任意の数の道路セグメント情報がサーバ1230により受信されてよいことが理解される。例えば、道路セグメント2712、2713、2714及び2715のそれぞれに関する道路セグメント情報を有するナビゲーション情報を、車両2614が伝送してよく、サーバ1230が受信してよい。別の例では、1又は複数関連する道路セグメントに関連するナビゲーション情報を、車両1205、1210、1215、1220及び1225のそれぞれが伝送してよく、サーバ1230が受信してよい。例えば、サーバ1230は、道路区間2601に対して判定された道路セグメントごと(例えば、道路セグメント2701~2715)にナビゲーション情報を受信してよい。
複数の道路セグメント情報を有するナビゲーション情報をサーバ1230が受信するいくつかの実施形態において、ナビゲーション情報において表される道路セグメントは、共通の道路区間の異なる部分に関し得る。例えば、車両1205から受信される第1の道路セグメント情報(例えば、道路セグメント2701)、及び、車両1205から受信される第2の道路セグメント情報(例えば、道路セグメント2702)は、道路区間2601の異なる部分と関連付けられてよい。道路セグメント情報に関連する道路部分は、任意の長さであってよい、同じ長さであってよい、又は、様々な長さであってよい。例えば、共通の道路区間の第1部分、及び、共通の道路区間の第2部分はそれぞれ、少なくとも4kmの長さを有し得る。別の例では、共通の道路区間の第1部分は、4km未満の長さを有してよく、道路区間の第2部分は、少なくとも4kmの長さを有してよい。
いくつかの実施形態において、ナビゲーション情報において表される道路セグメントは、道路区間の空間的に離れた部分に関連し得る。例えば、道路区間の第2部分は、道路区間の第1部分とは異なっていてよく、道路区間の第1部分から空間的に離れていてよい。上述したように、第1及び第2の道路部分は、任意の距離分離れていてよい。例えば、共通の道路区間の第1部分は、少なくとも1kmの距離分、共通の道路区間の第2部分から空間的に離れていてよい。
処理3000は、共通の道路区間と関連付けられるナビゲーション情報を格納するための段階3020を含み得る。上述したように、段階3010で受信したナビゲーション情報は、共通の道路区間と関連付けられてよい。さらに又は代替的に、サーバ1230は、共通の道路区間に対応するグループにナビゲーション情報を編成又はソートするように構成されてよい。例えば、プロセッサ2020は、ナビゲーションデータ受信モジュール2905に格納されている命令を実行して、受信したナビゲーション情報が対応する共通の道路区間を識別し、対応する共通の道路区間に関連するナビゲーションデータを格納してよい。
ナビゲーション情報は、サーバ1230と通信する任意のメモリデバイスに格納され得る。例えば、ナビゲーション情報は、サーバ1230内のメモリ、例えば、メモリ2900、メモリ2015、ストレージデバイス2010又は別のメモリデバイスに格納され得る。別の例では、サーバ1230は、ナビゲーション情報を外部のメモリ、データベース又は他のストレージデバイスに伝送してよい。
処理3000は、複数の車両からのナビゲーション情報に基づいて、共通の道路区間に関する自律走行車両の道路ナビゲーションモデルの少なくとも一部を生成するための段階3030を含んでよい。例えば、プロセッサ2020は、ナビゲーションモデル生成モジュール2910に格納した命令を実行して、自律走行車両で用いるナビゲーションモデルを生成してよい。上述したように、段階3030で生成された自律走行車両のナビゲーションモデルは、ナビゲーションモデル2800、マップの概要1420、ローカルマップ1140又はスパースマップ800と実質的に同様であり得る。
共通の道路セグメントに対する自律走行車両の道路ナビゲーションモデルは、共通の道路セグメントに沿って広がる路面特徴の少なくとも1つのライン表現を含んでよく、各ライン表現は、路面特徴に実質的に対応する共通の道路セグメントに沿う経路を表し得る。例えば、路面特徴は、道路縁部又は車線標示を含み得る。さらに、路面特徴は、複数の車両が共通の道路セグメントを通過するときに取得された複数の画像の画像解析を通じて識別され得る。例えば、サーバ1230は、共通の道路セグメント2601を走行する車両1205、1210、1215、1220及び1225から受信したナビゲーション情報に基づいて、共通の道路セグメント2601に対する自律走行車両の道路ナビゲーションモデルの少なくとも一部を生成してよい。
いくつかの実施形態において、自律走行車両の道路ナビゲーションモデルは、マップ、画像又は衛星画像上に重ね合わせられるように構成されてよい。例えば、当該モデルは、従来のナビゲーションサービス、例えば、Google(登録商標) Maps又はWaze(登録商標)などにより提供されるマップ又は画像上に重ね合わせられてよい。例として、マップ上に重ね合わせられる自律走行車両の道路ナビゲーションモデルは、ナビゲーションモデル2800と実質的に同様に現れてよい。
自律走行車両の道路ナビゲーションモデルは、本開示と矛盾しない任意の手段により生成されてよい。例えば、図11C及びローカルマップ1140に関して説明したように、サーバ1230内のプロセッサ上で少なくともナビゲーション情報から1又は複数のターゲット軌跡を組み立てて、ターゲット軌跡からの1又は複数のローカルマップをさらに組み立ててよい。別の例では、サーバ1230内の少なくとも1つのプロセッサは、ナビゲーションモデル生成モジュール2910に格納されている命令を実行して、処理1900の少なくとも一部を実行してよい。いくつかの実施形態において、自律走行車両のナビゲーションモデルは、本明細書で開示されている1又は複数の処理を修正又は結合することにより生成され得る。
処理3000は、自律走行車両の道路ナビゲーションモデルを1又は複数の車両に分配するための段階3040を含み得る。車両は、自律走行車両であってよく、自律走行車両のナビゲーションモデルに含まれる道路区間に沿ってナビゲートするために自律走行車両のナビゲーションモデルを用いてよい。例えば、サーバ1230は、共通の道路区間に沿って1又は複数の自律走行車両を自律的にナビゲートする際に用いるために、自律走行車両のナビゲーションモデルを1又は複数の自律走行車両に分配してよい。例えば、サーバ1230は、道路区間2601に沿って自律的にナビゲートする際の後の使用のためにナビゲーションモデル2800を車両1205、1210、1215、1220及び/又は1225又は任意の他の車両に分配してよい。自律走行車両のナビゲーションモデルは、本開示と矛盾しない任意の手段により分配されてよい。例えば、プロセッサ2020は、通信ユニット1405、又は、サーバ1230と通信する別の通信又は伝送デバイスを通じて、ナビゲーションモデル2800の伝送を実行してよい。
本開示と矛盾することなく、自律走行車両のナビゲーションモデルが分配される1又は複数の自律走行車両は、自律走行車両のナビゲーションモデルの受信に応答して、1又は複数のナビゲーション応答を経験し得る。例えば、車両1205は、ナビゲーションモデル2800を受信してよく、例えば、道路区間2601の動作表現及び/又は道路特性に基づいて、一連のナビゲーション応答を実行することにより、ターゲット軌跡2802に沿って走行してよい。上述したように、ナビゲーション応答は、車両を動作させることと矛盾しない任意の動作、例えば、加速、ブレーキ、方向転換、合流、停止及び車線切り替えなどであってよい。例えば、各自律走行車両は、ナビゲーションモデル2800を解釈するように構成される1又は複数のシステムを有してよく、ナビゲーションモデル2800において示される経路をナビゲートするために、一連のナビゲーション応答を実行してよい。
いくつかの実施形態において、1又は複数の自律走行車両は、自律走行車両のナビゲーションマップ、1又は複数の画像、及び/又は、センサからの1又は複数の出力を用いて、ナビゲーション応答を判定してよい。例えば、1又は複数の自律走行車両は、上述したナビゲーション応答モジュール408の1又は複数の命令を実行して、知覚入力(例えば、レーダからの情報)、及び、車両(例えば、車両200)の他のシステム、例えば、車両200のスロットリングシステム220、ブレーキシステム230及びステアリングシステム240からの入力に基づいて、所望のナビゲーション応答を判定してよい。所望のナビゲーション応答に基づいて、プロセッサ(例えば、処理ユニット110)は、車両200のスロットリングシステム220、ブレーキシステム230及びステアリングシステム240に電子信号を伝送して、例えば、車両200のステアリングホイールを回転させて、予め定められた角度の回転を実現することにより、所望のナビゲーション応答をトリガしてよい。いくつかの実施形態において、処理ユニット110は、車両200の速度の変更を算出するために、速度及び加速度モジュール406の実行への入力として、ナビゲーション応答モジュール408の出力(例えば、所望のナビゲーション応答)を用いてよい。
例えば、車両1205は、ナビゲーションマップ2800を受信してよく、カメラ122を用いて1又は複数の画像を取り込んでよい。次に、車両1205に配置されたプロセッサ2315は、ナビゲーションモデル2800と関連付けられる1又は複数の道路特性と、取り込まれた画像を比較し、比較に基づいてナビゲーション応答を判定してよい。例えば、車両1205が、ターゲット軌跡2808上を走行しており、取り込まれた画像が停止標識2616を示す場合、プロセッサ2315は、車両1205が停止する必要があり、ターゲット軌跡2820又はターゲット軌跡2814のいずれかを用いて方向転換する必要があり得ると判定してよい。したがって、プロセッサ2315は、車両1205に停止線マーカ2718で停止し、ターゲット軌跡2820を用いて方向転換させてよい。
いくつかの実施形態において、自律走行車両は、道路区間を有する受信した自律走行車両のナビゲーションモデル及び以下のナビゲーションモデル上でターゲット軌跡を揃えることにより、道路区間をナビゲートしてよい。例として、自律走行車両は、図26Aの軌跡2610と同様の経路内の道路区間2601をナビゲートする必要がある場合、自律走行車両は、ナビゲーションモデル2800を用いて、停止線マーカ2718に到達するまでターゲット軌跡2808に沿ってナビゲートし、次に、ターゲット軌跡2814に従うことにより左折を実行し、ターゲット軌跡2804を再開してよい。自律走行車両は、例えば、1又は複数のランドマーク、車線標示又は他の道路特性を用いて、自律走行車両のナビゲーションモデルを道路区間と関連するマップ、図、又は、座標系と揃え得る。例えば、車両1205は、道路区間と関連付けられる1又は複数のランドマークを含み得る1又は複数の画像(例えば、画像2620又は2630と同様の画像)を取り込んでよく、プロセッサ2315は、1又は複数のランドマークを有する撮像されたランドマークをナビゲーションモデル2800と比較して、ターゲット軌跡2802-2820を道路区間2601と揃えてよい。
上記の説明は、例示の目的のために提示されている。正確な形式又は開示される実施形態に対して網羅的ではなく、限定されることはない。開示される実施形態の明細書及び慣例の考慮から、修正及び適応が当業者に明らかとなる。さらに、開示される実施形態の態様は、メモリに格納されているものとして説明されているが、当業者であれば、これらの態様が、二次ストレージデバイスなどの他のタイプのコンピュータ可読媒体、例えば、ハードディスク又はCD-ROM、又は、他の形式のRAM又はROM、USBメディア、DVD、Blu-ray(登録商標)、4K Ultra HD Blu-ray又は他の光ドライブメディアに格納されることもできる。
記載される説明及び開示される方法に基づくコンピュータプログラムは、経験のある開発者の技術の範囲内にある。様々なプログラム又はプログラムモジュールは、当業者に知られる技術のいずれかを用いて生成されてよく、既存のソフトウェアに関連して設計されてよい。例えば、プログラムセクション又はプログラムモジュールは、Net Framework、Net Compact Framework(及び、Visual Basic、Cなど関連する言語)、Java(登録商標)、C++、Objective-C、HTML、HTML/AJAXの組み合わせ、XML、又は、Java(登録商標)アプレットに含まれるHTMLにおいて、又は、それらによって、設計され得る。
さらに、本明細書において、例示的な実施形態が説明されてきたが、同等の要素、修正、省略、(例えば、様々な実施形態にわたる態様の)組み合わせ、適応及び/又は改変を有する任意及びすべての実施形態の範囲は、本開示に基づいて当業者により理解される。特許請求の範囲における限定は、特許請求の範囲において使用される言語に基づいて広く解釈され、本願の明細書又は本願の手続き中に説明される例に限定されることはない。例は、非限定的なものとして解釈されるべきである。さらに、開示される方法の段階は、段階を並べ替えること、及び/又は、段階を挿入又は削除することを含めて、任意の手法で修正されてよい。したがって、本明細書及び事例は例示するだけのものととらえられるべきであり、真の範囲及び精神が以下の特許請求の範囲及びその均等物の全範囲によって示されることが意図される。