(57)【要約】【課題】３Ｄデータを２Ｄ画像データに登録すること。【解決手段】一つの実施形態は、一つ以上のセンサから３Ｄデータを、一つ以上のカメラから２Ｄ画像データを受信し、３Ｄデータ内で３Ｄセグメントを識別してそれを物体と関連付け、２Ｄ画像データ内のピクセルを分類し、物体について速さ及び進行方向を判定し、（１）３Ｄセグメントを、関連付けられた物体の速さ及び進行方向に基づいて、２Ｄ画像データがキャプチャされた時点に対応する位置にシフトし、タイムシフトされた３Ｄセグメントを２Ｄ画像空間上に投影すること、又は、（２）３Ｄセグメントを２Ｄ画像空間上に投影し、投影された３Ｄセグメントを、関連付けられた物体の速さ及び進行方向に基づいて、２Ｄ画像データがキャプチャされた時点に対応する位置にシフトすること、のいずれかによって、３Ｄセグメントを分類されたピクセルの一部に登録する。【選択図】図１０
2020087464.tif 000002
【特許請求の範囲】
【請求項１】
３Ｄ（three-dimensional）データを２Ｄ（two-dimensional）画像データに登録するためのシステムであって、
３Ｄデータを作り出すための一つ以上のセンサと、
２Ｄ画像データを作り出すための一つ以上のカメラと、
一つ以上のプロセッサと、
前記一つ以上のプロセッサと通信可能なように連結されたメモリであって、
前記一つ以上のプロセッサによって実行されたときに、前記一つ以上のプロセッサに前記３Ｄデータ内で３Ｄセグメントを識別させる指示を含む、３Ｄデータセグメンテーションモジュールと、
前記一つ以上のプロセッサによって実行されたときに、前記一つ以上のプロセッサに前記３Ｄセグメントを物体と関連付けさせる指示を含む、データ関連付けモジュールと、
前記一つ以上のプロセッサによって実行されたときに、前記一つ以上のプロセッサに前記２Ｄ画像データ内のピクセルを分類させる指示を含む、画像セグメンテーションモジュールと、
前記一つ以上のプロセッサによって実行されたときに、前記一つ以上のプロセッサに前記物体についての速さ及び進行方向を判定させる指示を含む、速度推定モジュールと、
前記一つ以上のプロセッサによって実行されたときに、
前記３Ｄセグメントを、前記関連付けられた物体の速さ及び進行方向に基づいて、前記２Ｄ画像データがキャプチャされた時点に対応する位置にシフトし、タイムシフトされた３Ｄセグメントを２Ｄ画像空間上に投影すること、及び、
前記３Ｄセグメントを２Ｄ画像空間上に投影し、前記投影された３Ｄセグメントを、前記関連付けられた物体の速さ及び進行方向に基づいて、前記２Ｄ画像データがキャプチャされた時点に対応する位置にシフトすること、
の一つを実施することによって、前記一つ以上のプロセッサに前記３Ｄセグメントを前記２Ｄ画像データ内の前記分類されたピクセルの一部に登録させる指示を含む、統合モジュールと、
を記憶する、メモリと、
を含む、システム。
【請求項２】
前記一つ以上のセンサは、ＬＩＤＡＲ（Light Detection and Ranging）センサ、一組のステレオカメラ、ＲＧＢ−Ｄ（Red Green Blue Depth）センサ及びレーダーセンサの少なくとも一つを含み、
前記３Ｄセグメントは、ポイントクラウドクラスタである、請求項１に記載のシステム。
【請求項３】
前記画像セグメンテーションモジュールは、前記２Ｄ画像データのセマンティックセグメンテーションを実施する指示であって、前記セマンティックセグメンテーションは、クラスラベルを前記２Ｄ画像データ内のそれぞれのピクセルに割り当ててそのピクセルを分類する、指示をさらに含み、
前記統合モジュールは、前記タイムシフトされ投影されたポイントクラウドクラスタ内の点と重なる少なくとも一つのクラス内のピクセルの数を数える指示をさらに含む、請求項２に記載のシステム。
【請求項４】
前記統合モジュールは、
前記タイムシフトされ投影されたポイントクラウドクラスタ内の点と重なる複数のクラスのそれぞれの中のピクセルの前記数を数え、
前記タイムシフトされ投影されたポイントクラウドクラスタを、ピクセルの最大数が前記タイムシフトされ投影されたポイントクラウドクラスタ内の点と重なる前記複数のクラス内のクラスと関連付ける、指示をさらに含む、請求項３に記載のシステム。
【請求項５】
前記３Ｄセグメントは、凸包、ボクセル化、非凸包、バウンディングボックス及びメッシュデータの一つを含む３Ｄ境界情報である、請求項１に記載のシステム。
【請求項６】
前記画像セグメンテーションモジュールは、前記２Ｄ画像データ内の前記分類されたピクセルからインスタンスセグメンテーションを作り出す指示であって、前記インスタンスセグメンテーションは、前記２Ｄ画像データ内の前記分類されたピクセルの前記一部を物体の特別なクラスの特定のインスタンスとして識別する、指示をさらに含み、
前記統合モジュールは、前記タイムシフトされ投影された３Ｄ境界情報を前記インスタンスセグメンテーションとマッチングする指示をさらに含む、請求項５に記載のシステム。
【請求項７】
前記画像セグメンテーションモジュールは、前記２Ｄ画像データのセマンティックセグメンテーションを実施する指示であって、前記セマンティックセグメンテーションは、クラスラベルを前記２Ｄ画像データ内のそれぞれのピクセルに割り当ててそのピクセルを分類する、指示をさらに含み、
前記統合モジュールは、前記タイムシフトされ投影された３Ｄ境界情報内にある少なくとも一つのクラス内のピクセルの数を数える指示をさらに含む、請求項５に記載のシステム。
【請求項８】
前記統合モジュールは、
前記タイムシフトされ投影された３Ｄ境界情報内にある複数のクラスのそれぞれの中のピクセルの前記数を数え、
前記タイムシフトされ投影された３Ｄ境界情報を、ピクセルの最大数が前記タイムシフトされ投影された３Ｄ境界情報内にある前記複数のクラス内のクラスと関連付ける、指示をさらに含む、請求項７に記載のシステム。
【請求項９】
３Ｄ（three-dimensional）データを２Ｄ（two-dimensional）画像データに登録する方法であって、
一つ以上のセンサから３Ｄデータを受信するステップと、
一つ以上のカメラから２Ｄ画像データを受信するステップと、
前記３Ｄデータ内で３Ｄセグメントを識別するステップと、
前記３Ｄセグメントを物体と関連付けるステップと、
前記２Ｄ画像データ内のピクセルを分類するステップと、
前記物体についての速さ及び進行方向を判定するステップと、
前記３Ｄセグメントを、前記関連付けられた物体の速さ及び進行方向に基づいて、前記２Ｄ画像データがキャプチャされた時点に対応する位置にシフトし、タイムシフトされた３Ｄセグメントを２Ｄ画像空間上に投影するステップ、及び、
前記３Ｄセグメントを２Ｄ画像空間上に投影し、前記投影された３Ｄセグメントを、前記関連付けられた物体の速さ及び進行方向に基づいて、前記２Ｄ画像データがキャプチャされた時点に対応する位置にシフトするステップ、
の一つを実施することによって、前記３Ｄセグメントを前記２Ｄ画像データ内の前記分類されたピクセルの一部に登録するステップと、を含む、方法。
【請求項１０】
前記一つ以上のセンサは、ＬＩＤＡＲ（Light Detection and Ranging）センサ、一組のステレオカメラ、ＲＧＢ−Ｄ（Red Green Blue Depth）センサ及びレーダーセンサの少なくとも一つを含み、
前記３Ｄセグメントは、ポイントクラウドクラスタである、請求項９に記載の方法。
【請求項１１】
前記２Ｄ画像データ内のピクセルを分類するステップは、前記２Ｄ画像データのセマンティックセグメンテーションを実施するステップであって、前記セマンティックセグメンテーションは、クラスラベルを前記２Ｄ画像データ内のそれぞれのピクセルに割り当てる、ステップを含み、
前記登録するステップは、前記タイムシフトされ投影されたポイントクラウドクラスタ内の点と重なる少なくとも一つのクラス内のピクセルの数を数えるステップを含む、請求項１０に記載の方法。
【請求項１２】
前記登録するステップは、
前記タイムシフトされ投影されたポイントクラウドクラスタ内の点と重なる複数のクラスのそれぞれの中のピクセルの前記数を数えるステップと、
前記タイムシフトされ投影されたポイントクラウドクラスタを、ピクセルの最大数が前記タイムシフトされ投影されたポイントクラウドクラスタ内の点と重なる前記複数のクラス内のクラスと関連付けるステップと、を含む、請求項１１に記載の方法。
【請求項１３】
前記３Ｄセグメントは、凸包、ボクセル化、非凸包、バウンディングボックス及びメッシュデータの一つを含む３Ｄ境界情報である、請求項９に記載の方法。
【請求項１４】
前記２Ｄ画像データ内のピクセルを分類するステップは、インスタンスセグメンテーションを作り出すステップであって、前記インスタンスセグメンテーションは、前記２Ｄ画像データ内の前記分類されたピクセルの前記一部を物体の特別なクラスの特定のインスタンスとして識別する、ステップを含み、
前記登録するステップは、前記タイムシフトされ投影された３Ｄ境界情報を前記インスタンスセグメンテーションとマッチングするステップを含む、請求項１３に記載の方法。
【請求項１５】
前記２Ｄ画像データ内のピクセルを分類するステップは、前記２Ｄ画像データのセマンティックセグメンテーションを実施するステップであって、前記セマンティックセグメンテーションは、クラスラベルを前記２Ｄ画像データ内のそれぞれのピクセルに割り当ててそのピクセルを分類する、ステップを含み、
前記登録するステップは、前記タイムシフトされ投影された３Ｄ境界情報内にある少なくとも一つのクラス内のピクセルの数を数えるステップを含む、請求項１３に記載の方法。
【請求項１６】
前記登録するステップは、
前記タイムシフトされ投影された３Ｄ境界情報内にある複数のクラスのそれぞれの中のピクセルの前記数を数えるステップと、
前記タイムシフトされ投影された３Ｄ境界情報を、ピクセルの最大数が前記タイムシフトされ投影された３Ｄ境界情報内にある前記複数のクラス内のクラスと関連付けるステップと、を含む、請求項１５に記載の方法。
【請求項１７】
３Ｄ（three-dimensional）データを２Ｄ（two-dimensional）画像データに登録するためのシステムであって、
３Ｄデータを作り出すための一つ以上のセンサと、
２Ｄ画像データを作り出すための一つ以上のカメラと、
一つ以上のプロセッサと、
前記一つ以上のプロセッサと通信可能なように連結されたメモリであって、
前記一つ以上のプロセッサによって実行されたときに、前記一つ以上のプロセッサに前記３Ｄデータ内で、凸包、ボクセル化、非凸包、バウンディングボックス及びメッシュデータを含む３Ｄ境界情報を識別させる指示を含む、３Ｄデータセグメンテーションモジュールと、
前記一つ以上のプロセッサによって実行されたときに、前記一つ以上のプロセッサに前記２Ｄ画像データ内のピクセルからインスタンスセグメンテーションを作り出させる指示を含む画像セグメンテーションモジュールであって、前記インスタンスセグメンテーションは、前記２Ｄ画像データ内の前記ピクセルの一部を物体の特別なクラスの特定のインスタンスとして識別する、画像セグメンテーションモジュールと、
前記一つ以上のプロセッサによって実行されたときに、前記一つ以上のプロセッサに、
前記３Ｄ境界情報を２Ｄ画像空間上に投影させ、投影された３Ｄ境界情報を作り出させ、
前記投影された３Ｄ境界情報を前記インスタンスセグメンテーションとマッチングさせ、前記投影された３Ｄ境界情報を前記インスタンスセグメンテーションに登録させる、指示を含む、統合モジュールと、
を記憶する、メモリと、
を含む、システム。
【請求項１８】
前記一つ以上のプロセッサによって実行されたときに、前記一つ以上のプロセッサに前記３Ｄ境界情報を物体と関連付けさせる指示を含む、データ関連付けモジュールと、
前記一つ以上のプロセッサによって実行されたときに、前記一つ以上のプロセッサに前記物体についての速さ及び進行方向を判定させる指示を含む、速度推定モジュールと、をさらに含み、
前記統合モジュールは、
前記３Ｄ境界情報が２Ｄ画像空間上に投影される前に、前記３Ｄ境界情報を、前記関連付けられた物体の速さ及び進行方向に基づいて、前記２Ｄ画像データがキャプチャされた時点に対応する位置にシフトすること、及び、
前記３Ｄ境界情報が２Ｄ画像空間上に投影された後に、前記投影された３Ｄ境界情報を、前記関連付けられた物体の速さ及び進行方向に基づいて、前記２Ｄ画像データがキャプチャされた時点に対応する位置にシフトすること、
の一つを実施する命令をさらに含む、請求項１７に記載のシステム。
【請求項１９】
３Ｄ（three-dimensional）データを２Ｄ（two-dimensional）画像データに登録する方法であって、
一つ以上のセンサから３Ｄデータを受信するステップと、
一つ以上のカメラから２Ｄ画像データを受信するステップと、
前記３Ｄデータ内で３Ｄ境界情報を識別するステップと、
前記２Ｄ画像データ内のピクセルからインスタンスセグメンテーションを作り出すステップであって、前記インスタンスセグメンテーションは、前記２Ｄ画像データ内の前記ピクセルの一部を物体の特別なクラスの特定のインスタンスとして識別する、ステップと、
前記３Ｄ境界情報を２Ｄ画像空間上に投影し、投影された３Ｄ境界情報を作り出すステップと、
前記投影された３Ｄ境界情報を前記インスタンスセグメンテーションとマッチングし、前記投影された３Ｄ境界情報を前記インスタンスセグメンテーションに登録する、ステップと、を含む、方法。
【請求項２０】
前記３Ｄ境界情報を物体と関連付けるステップと、
前記物体についての速さ及び進行方向を判定するステップと、
前記３Ｄ境界情報が２Ｄ画像空間上に投影される前に、前記３Ｄ境界情報を、前記関連付けられた物体の速さ及び進行方向に基づいて、前記２Ｄ画像データがキャプチャされた時点に対応する位置にシフトするステップ、及び、
前記３Ｄ境界情報が２Ｄ画像空間上に投影された後に、前記投影された３Ｄ境界情報を、前記関連付けられた物体の速さ及び進行方向に基づいて、前記２Ｄ画像データがキャプチャされた時点に対応する位置にシフトするステップ、の一つを実施するステップと、をさらに含む、請求項１９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
ここで説明される主題は、一般にマシンビジョンに関連し、より具体的には、３Ｄ（three-dimensional）データを２Ｄ（two-dimensional）画像データに登録するためのシステム及び方法に関連する。
【背景技術】
【０００２】
ロボット工学の重要な側面は、マシンビジョンである。例えば、自律走行車は、周辺環境（例えば、車道、障害物等）を感知でき、人間の入力なしに又は少なくとも部分的に人間の入力なしに自律的にナビゲーションできることを必要とする。自律走行車のようなロボット工学の応用において、カメラからの２Ｄ画像データを同じシーンからのポイントクラウドデータのような３Ｄデータと結び付けることは、好都合である。これらの２種類のデータを組み合わせることは、空間的に点を調整する登録ステップを必然的に含む。
【発明の概要】
【０００３】
３Ｄデータを２Ｄ画像データに登録するためのシステムの一例が、ここで示される。システムは、３Ｄデータを作り出すための一つ以上のセンサと、２Ｄ画像データを作り出すための一つ以上のカメラとを含む。システムは、また、一つ以上のプロセッサと、それと通信可能なように連結されたメモリとを含む。メモリは、一つ以上のプロセッサによって実行されたときに、一つ以上のプロセッサに前記３Ｄデータ内で３Ｄセグメントを識別させる指示を含む、３Ｄデータセグメンテーションモジュールを記憶する。メモリは、また、一つ以上のプロセッサによって実行されたときに、一つ以上のプロセッサに３Ｄセグメントを物体（object）と関連付けさせる指示を含む、データ関連付けモジュールを記憶する。メモリは、また、一つ以上のプロセッサによって実行されたときに、一つ以上のプロセッサに２Ｄ画像データ内のピクセルを分類させる指示を含む、画像セグメンテーションモジュールを記憶する。メモリは、また、一つ以上のプロセッサによって実行されたときに、一つ以上のプロセッサに物体についての速さ及び進行方向を判定させる指示を含む、速度推定モジュールを記憶する。メモリは、また、一つ以上のプロセッサによって実行されたときに、（１）３Ｄセグメントを、関連付けられた物体の速さ及び進行方向に基づいて、２Ｄ画像データがキャプチャされた時点に対応する位置にシフトし、タイムシフトされた３Ｄセグメントを２Ｄ画像空間上に投影すること、又は、（２）３Ｄセグメントを２Ｄ画像空間上に投影し、投影された３Ｄセグメントを、関連付けられた物体の速さ及び進行方向に基づいて、２Ｄ画像データがキャプチャされた時点に対応する位置にシフトすること、のいずれかによって、一つ以上のプロセッサに３Ｄセグメントを２Ｄ画像データ内の分類されたピクセルの一部に登録させる指示を含む、統合モジュールを記憶する。
【０００４】
他の実施形態は、３Ｄデータを２Ｄ画像データに登録する方法であって、一つ以上のセンサから３Ｄデータを受信するステップと、一つ以上のカメラから２Ｄ画像データを受信するステップと、３Ｄデータ内で３Ｄセグメントを識別するステップと、３Ｄセグメントを物体と関連付けるステップと、２Ｄ画像データ内のピクセルを分類するステップと、物体についての速さ及び進行方向を判定するステップと、（１）３Ｄセグメントを、関連付けられた物体の速さ及び進行方向に基づいて、２Ｄ画像データがキャプチャされた時点に対応する位置にシフトし、タイムシフトされた３Ｄセグメントを２Ｄ画像空間上に投影するステップ、又は、（２）３Ｄセグメントを２Ｄ画像空間上に投影し、投影された３Ｄセグメントを、関連付けられた物体の速さ及び進行方向に基づいて、２Ｄ画像データがキャプチャされた時点に対応する位置にシフトするステップ、によって、３Ｄセグメントを２Ｄ画像データ内の分類されたピクセルの一部に登録するステップと、を含む。
【０００５】
他の実施形態は、３Ｄデータを２Ｄ画像データに登録するためのシステムであって、３Ｄデータを作り出すための一つ以上のセンサと、２Ｄ画像データを作り出すための一つ以上のカメラとを含む。システムは、また、一つ以上のプロセッサと、それに通信可能なように連結されたメモリとを含む。メモリは、一つ以上のプロセッサによって実行されたときに、一つ以上のプロセッサに３Ｄデータ内で、凸包、ボクセル化、非凸包、バウンディングボックス及びメッシュデータの一つを含む３Ｄ境界情報を識別させる指示を含む、３Ｄデータセグメンテーションモジュールを記憶する。メモリは、また、一つ以上のプロセッサによって実行されたときに、一つ以上のプロセッサに２Ｄ画像データ内のピクセルからインスタンスセグメンテーションを作り出させる指示を含む画像セグメンテーションモジュールであって、インスタンスセグメンテーションは、２Ｄ画像データ内のピクセルの一部を物体の特別なクラスの特定のインスタンスとして識別する、画像セグメンテーションモジュールを記憶する。メモリは、また、一つ以上のプロセッサによって実行されたときに、一つ以上のプロセッサに、３Ｄ境界情報を２Ｄ画像空間上に投影させ、投影された３Ｄ境界情報を作り出させ、投影された３Ｄ境界情報をインスタンスセグメンテーションとマッチングさせ、投影された３Ｄ境界情報をインスタンスセグメンテーションに登録させる、指示を含む、統合モジュールを記憶する。
【０００６】
他の実施形態は、３Ｄデータを２Ｄ画像データに登録する方法であって、一つ以上のセンサから３Ｄデータを受信するステップと、一つ以上のカメラから２Ｄ画像データを受信するステップと、３Ｄデータ内で３Ｄ境界情報を識別するステップと、２Ｄ画像データ内のピクセルからインスタンスセグメンテーションを作り出すステップであって、インスタンスセグメンテーションは、２Ｄ画像データ内のピクセルの一部を物体の特別なクラスの特定のインスタンスとして識別する、ステップと、３Ｄ境界情報を２Ｄ画像空間上に投影し、投影された３Ｄ境界情報を作り出すステップと、投影された３Ｄ境界情報をインスタンスセグメンテーションとマッチングし、投影された３Ｄ境界情報をインスタンスセグメンテーションに登録する、ステップと、を含む。
【図面の簡単な説明】
【０００７】
明細書の一部に組み込まれ、明細書の一部を構成する添付の図面は、開示のさまざまなシステム、方法及び他の実施形態を説明する。図面内で説明された要素の境界（例えば、箱、箱のグループ又は他の形状）は、境界の一つの実施形態を表現することが理解される。いくつかの実施形態において、一つの要素は、複数の要素として設計されてよく、複数の要素は、一つの要素として設計されてよい。いくつかの実施形態において、他の要素の内部の構成要素として示される要素は、外部の構成要素として実装されてよく、逆もまた同様である。さらに、要素は、一定の縮尺で描かれていないことがある。
【０００８】
【図１】ここで開示されたシステム及び方法が実装され得る車両の一つの実施形態を説明する。
【図２】３Ｄ／２Ｄ登録システムの一つの実施形態を説明する。
【図３】発明の説明に役立つ実施形態に従って、カメラによってキャプチャされ得るカメラ画像の一例を説明する。
【図４】発明の説明に役立つ実施形態に従って、図３のカメラ画像によって描かれたものと同じシーンを表現するポイントクラウドの一例を説明する。
【図５】発明の説明に役立つ実施形態に従って、図３のカメラ画像に適用されたセマンティックセグメンテーションのプロセスを説明する。
【図６】発明の説明に役立つ実施形態に従って、図３のカメラ画像に適用されたインスタンスセグメンテーションのプロセスを説明する。
【図７】発明の説明に役立つ実施形態に従って、２Ｄ画像空間に投影された歩行者に対する３Ｄ境界情報を説明する。
【図８Ａ】異なる時点でキャプチャされた２Ｄ画像データと３Ｄポイントクラウドとの間のずれを説明する。
【図８Ｂ】異なる時点でキャプチャされた２Ｄ画像データと３Ｄデータから導き出された３Ｄ境界情報との間のずれを説明する。
【図９Ａ】発明の説明に役立つ実施形態に従って、２Ｄ画像データと調整された、タイムシフトされた３Ｄポイントクラウドを説明する。
【図９Ｂ】発明の説明に役立つ実施形態に従って、２Ｄ画像データと調整された、タイムシフトされた３Ｄ境界情報を説明する。
【図１０】発明の説明に役立つ実施形態に従った、３Ｄデータを２Ｄ画像データに登録するための方法のフローチャートである。
【図１１】発明の他の説明に役立つ実施形態に従った、３Ｄデータを、セマンティックセグメンテーションを含む２Ｄ画像データに登録するための方法のフローチャートである。
【図１２】発明の他の説明に役立つ実施形態に従った、３Ｄデータを、セマンティックセグメンテーションを含む２Ｄ画像データに登録するための他の方法のフローチャートである。
【図１３】発明のさらにもう一つの説明に役立つ実施形態に従った、３Ｄデータを、インスタンスセグメンテーションを含む２Ｄ画像データに登録するための方法のフローチャートである。
【図１４】３Ｄ／２Ｄ登録システムの他の実施形態を説明する。
【図１５】発明の他の説明に役立つ実施形態に従った、３Ｄデータを２Ｄ画像データに登録するための方法のフローチャートである。
【発明を実施するための形態】
【０００９】
３Ｄから２Ｄへの（３Ｄ／２Ｄ）登録には、少なくとも二つの課題が生じる。第１に、２Ｄ画像データと３Ｄデータは、必ずしも遅れずに同じ瞬間にキャプチャされない。ときに「キャプチャタイミングのずれ」と称される問題は、シーン内の移動する物体のせいで、３Ｄ及び２Ｄデータを一致させることを難しくする。例えば、たった５０ｍｓのキャプチャ時点の違いの間に、７０ｍｐｈで走行する車両は、約１．５６ｍ走行し、典型的な車両は、たった３〜５ｍ長である。第２に、２Ｄセンサ（例えば、カメラ）は、３Ｄセンサとは異なる有利な点（vantage point）から画像データをキャプチャする。したがって、２Ｄ画像データと３Ｄデータが何とかして正確に同時にキャプチャされたとしても、２種類のセンサデータの間には、依然として視差エラーがある。
【００１０】
「キャプチャタイミングのずれ」及び視差の問題を克服するシステム及び方法が示される。一つの実施形態において、３Ｄデータは、一つ以上のセンサからキャプチャされ、２Ｄ画像データは、一つ以上のカメラからキャプチャされ、２Ｄ画像データ内のピクセルは、分類される。３Ｄセグメント（例えば、ポイントクラウドクラスタ又はポイントクラウドクラスタから導き出される３Ｄ境界情報）は、物体と関連付けられ、物体の速さ及び進行方向は、測定される。測定された速さ及び進行方向に基づいて、３Ｄセグメントは、２Ｄ画像データがキャプチャされた時点と一致する位置にシフトされ、それによって、「キャプチャタイミングのずれ」問題は、修正される。タイムシフトされた３Ｄセグメントは、２Ｄ空間上に投影され、２Ｄ画像データ内の分類されたピクセルの一部に登録され得る。その代わりに、３Ｄセグメントは、２Ｄ画像空間上に投影され、投影された３Ｄセグメントは、２Ｄ画像データがキャプチャされた時点と一致する位置にタイムシフトされ、「キャプチャタイミングのずれ」問題は、修正され得る。
【００１１】
いくつかの実施形態において、ポイントクラウドクラスタ又は３Ｄ境界情報をタイムシフトして「キャプチャタイミングのずれ」を補償することに加えて、２Ｄ画像データ内のピクセルを分類することは、２Ｄ画像データのセマンティックセグメンテーションを含む。これは、クラスラベルを２Ｄ画像データ（例えば、フレーム）内のそれぞれのピクセルに割り当てることを含む。セマンティックセグメンテーションは、２Ｄ画像データへの登録の間に、タイムシフトされ投影された３Ｄセグメントを、物体（例えば、人物、車両、木等）の特別なクラスに関連付けることに役立ち得る。
【００１２】
他の実施形態において、ポイントクラウドクラスタ又は３Ｄ境界情報をタイムシフトして「キャプチャタイミングのずれ」を補償することに加えて、２Ｄ画像データ内のピクセルを分類することは、２Ｄ画像データのインスタンスセグメンテーションを含む。インスタンスセグメンテーションは、クラスラベルを２Ｄ画像データ内のそれぞれのピクセルに割り当てることだけでなく、同じクラスに属するピクセルの領域を物体の特別な種類の個々のインスタンス（例えば、５人のグループ内の第３の人物、又は、通りに沿って駐車された車両の列の中の第２の車両）としてラベル付けすることを含む。これらの実施形態において、タイムシフトされ投影された３Ｄ境界情報の形状マッチング、及び、２Ｄ画像データ内の物体のインスタンスセグメンテーションは、上で検討された視差問題を克服することを援助する。
【００１３】
さらに他の実施形態において、上で説明されたインスタンスセグメンテーション及び形状マッチングは、３Ｄ境界情報と関連付けられた物体の測定された速さ及び進行方向に基づいて３Ｄ境界情報をタイムシフトすることなく、３Ｄデータの２Ｄ画像データへの登録を補助するために使用される。
【００１４】
ここで説明される技術は、ロボット工学及びマシンビジョンの分野に広く適用される。発明に関するシステム及び方法が実装され得る環境の一例は、半自律又は全自律走行車である。しかしながら、これは、発明に関する技術が適用され得る唯一の環境ではない。発明に関する技術は、当業者が認識できるさまざまな他の種類のロボットに適用され得る。例示のために、車両の環境における実施形態は、以下に詳細に説明される。
【００１５】
図１を参照すると、車両１００の一例が説明されている。ここで使用されるように、「車両」は、電動式輸送手段のあらゆる形態である。一つ以上の実装において、車両１００は、自動車である。配置（arrangement）は、自動車に関してここで説明されるが、実施形態は、自動車に限定されないと理解される。いくつかの実装において、車両１００は、例えば、少なくとも半自律的に動作し得る電動式輸送手段のその他の形態であってよい。
【００１６】
車両１００は、また、様々な要素を含む。さまざまな実施形態において、車両１００が図１に示される全ての要素を有することは、必須でなくてよいことが理解される。車両１００は、図１に示されるさまざまな要素のあらゆる組み合わせを有することができる。さらに、車両１００は、図１に示されるものへの付加的な要素を有することができる。いくつかの配置において、車両１００は、図１に示される要素の一つ以上がなしに実装されてよい。さまざまな要素は、図１の車両１００の中に位置するものとして示されるが、これらの要素の一つ以上は、車両１００の外部に位置できることが理解される。さらに、示される要素は、大きな距離だけ物理的に離れていてもよい。
【００１７】
車両１００の可能な要素のいくつかは、図１に示され、後続の図と共に説明される。しかしながら、図１の要素の多くの記述は、この記述を簡潔にする目的のため、図２〜図１５の検討の後に提供される。その上、例示の簡潔さ及び明瞭さのために、適切な場合、参照数字は、対応する又は類似した要素を示すために、異なる図の中で繰り返されることが理解される。加えて、検討は、ここで説明された実施形態の完全な理解を提供するために、多数の特定の詳細の要点を説明する。当業者は、しかしながら、ここで説明された実施形態がこれらの要素のさまざまな組み合わせを使用して実践されてよいことを理解する。
【００１８】
車両１００は、３Ｄデータを２Ｄ画像データに登録することに関連して、ここで開示されたように方法及び他の機能を実施するために実装された３Ｄ／２Ｄ登録システム１７０を含む。この記述において、３Ｄデータを２Ｄ画像データに「登録する」ことは、２種類のデータが組み合わされて使用され得るように、２Ｄ画像空間上に投影された３Ｄデータを同じシーンからの２Ｄ画像データと調整することに言及する。車両１００は、この組み合わされた３Ｄ及び２Ｄデータを、その自律運転機能を実施することに使用できる（障害物を識別する、等）。
【００１９】
図２を参照して、図１の３Ｄ／２Ｄ登録システム１７０の一つの実施形態は、さらに説明される。３Ｄ／２Ｄ登録システム１７０は、図１の車両１００から一つ以上のプロセッサ１１０を含むものとして示される。その結果、実施形態に応じて、一つ以上のプロセッサ１１０は、３Ｄ／２Ｄ登録システム１７０の一部であってよく、３Ｄ／２Ｄ登録システム１７０は、車両１００の一つ以上のプロセッサ１１０から離れた一つ以上のプロセッサを含んでよく、又は、３Ｄ／２Ｄ登録システム１７０は、データバス又は他の通信経路を通って一つ以上のプロセッサ１１０にアクセスしてよい。一つの実施形態において、３Ｄ／２Ｄ登録システム１７０は、３Ｄデータセグメンテーションモジュール２２０、データ関連付けモジュール２３０、画像セグメンテーションモジュール２４０、速度推定モジュール２５０、及び、統合モジュール２６０を記憶するメモリ２１０を含む。メモリ２１０は、モジュール２２０、２３０、２４０、２５０及び２６０を記憶するための、ＲＡＭ（random-access memory）、ＲＯＭ（read-only memory）、ハードディスクドライブ、フラッシュメモリ、又は、他の適切なメモリである。モジュール２２０、２３０、２４０、２５０及び２６０は、例えば、一つ以上のプロセッサ１１０によって実行されるとき、一つ以上のプロセッサ１１０にここで開示されるさまざまな機能を実施させる、コンピュータ読み取り可能な指示である。
【００２０】
３Ｄ／２Ｄ登録システム１７０は、２Ｄ画像データ２９０を、センサシステム１２０の一部である一つ以上のカメラ１２６から受信する。図３は、発明の説明に役立つ実施形態に従って、カメラ１２６によってキャプチャされ得るカメラ画像の一例を説明する。図３のシーン３００は、歩行者３１０、歩行者３２０、街灯柱３３０、壁３４０、車道３５０及び歩道３６０を含む。歩行者３１０及び３２０は、この例では、移動している（歩道３６０に沿って歩いている）と仮定される。
【００２１】
３Ｄ／２Ｄ登録システム１７０は、３Ｄデータ２８０を、センサシステム１２０内の一つ以上のセンサから受信する。センサは、ＬＩＤＡＲ（Light Detection and Ranging）センサ（図１の要素１２４を参照）、一組のステレオカメラ、ＲＧＢ−Ｄ（Red Green Blue Depth）センサ、レーダーセンサ（図１の要素１２３を参照）、又は、これらの種類のセンサの一つ以上又は３Ｄデータをキャプチャできる一つ以上の他のセンサの組み合わせを含むことができる。これらのさまざまな種類の３Ｄセンサは、当業者がシーンの「ポイントクラウド」として言及するものを作り出す。図４は、発明の説明に役立つ実施形態に従って、図３のカメラ画像によって描かれる同じシーンを表現するポイントクラウドの一例を説明する。
【００２２】
図２に示されるように、３Ｄデータ２８０及び２Ｄ画像データ２９０は、データベース２７０に記憶され得る。
【００２３】
３Ｄデータセグメンテーションモジュール２２０は、一般に、一つ以上のプロセッサ１１０に上で検討された一つ以上のセンサから受信された３Ｄデータ内で３Ｄセグメントを識別させる指示を含む。（この記述は、簡潔にするために、一つの３Ｄセグメントを単位としてキャスト（cast）されているが、実際には、３Ｄデータセグメンテーションモジュール２２０は、並列にポイントクラウド内の複数の３Ｄセグメントを識別することができる。）いくつかの実施形態において、３Ｄセグメントは、ポイントクラウドクラスタである。他の実施形態において、３Ｄセグメントは、ポイントクラウドクラスタから導き出させる３Ｄ境界情報である。３Ｄ境界情報の例は、凸包、ボクセル化、非凸包、バウンディングボックス及びメッシュデータを含むが、これに限定されるものではない。これらの用語は、マシンビジョン技術の当業者に広く知られている。例えば、凸包は、その点のそれぞれを接続する線分を完全に収容できるのに対して、非凸包は、点を完全に収容できるが、それらの間の全ての線分を必ずしも収容できない。
【００２４】
データ関連付けモジュール２３０は、一般に、一つ以上のプロセッサ１１０に３Ｄセグメント（ポイントクラウドクラスタ又は３Ｄ境界情報）を物体と関連付けさせる指示を含む。いくつかの実施形態において、物体は、車両１００の物体追跡機能によって以前に追跡されているものである。例えば、データ関連付けモジュール２３０は、ポイントクラウドクラスタを以前に追跡された車両と関連付けるかもしれず、凸包を以前に追跡された歩行者と関連付けるかもしれない。
【００２５】
画像セグメンテーションモジュール２４０は、一般に、一つ以上のプロセッサ１１０に２Ｄ画像データ２９０内のピクセルを分類させる指示を含む。この分類がどのように行われるかは、実施形態に応じて異なる。
【００２６】
いくつかの実施形態において、ピクセルを分類することは、２Ｄ画像データ２９０のセマンティックセグメンテーションを実施することを含む。上で検討されたように、これは、クラスラベルを２Ｄ画像データ内の（例えば、フレーム内の）それぞれのピクセルに割り当てることを含む。一つの実施形態において、クラスラベルは、それが割り当てられるクラスに従って、それぞれのピクセルの色を変えることによって示される。例えば、クラス「人物」（例えば、歩行者）が割り当てられたすべてのピクセルは、赤色の特別な色調に着色されるかもしれず、クラス「芝生」が割り当てられたすべてのピクセルは、緑色の特別な色調を割り当てられるかもしれない。以下で検討されるインスタンスセグメンテーションとは異なり、セマンティックセグメンテーションは、シーンの中に特別なクラスの物体の複数のインスタンス（例えば、３台の車両）がある場合、物体の特定のインスタンスにラベルを付けない。図３のシーンがどのようにセマンティックにセグメントされるかの一例は、図５に示される。歩行者３１０と歩行者３２０が両方とも同じ色でラベル付けされていることに留意すべきである。
【００２７】
他の実施形態において、ピクセルを分類することは、２Ｄ画像データ２９０のインスタンスセグメンテーションを実施することを含む。上で検討されたように、これは、クラスラベルを２Ｄ画像データ内のそれぞれのピクセルに割り当てることだけでなく、同じクラスに属するピクセルの領域を、物体の特別な種類の特定のインスタンス（例えば、５人のグループ内の第３の人物、又は、通りに沿って駐車された車両の列の中の第２の車両）としてラベル付けすることを含む。インスタンスセグメンテーションにおいて、物体のクラスの特別なインスタンス（例えば、特定の車両、建物、木、人物等）と関連付けられたピクセルは、それら自身の固有の識別色を受信する。どのようにして図３内のシーンがインスタンスセグメント化されるかの例は、図６に示される。歩行者３１０及び歩行者３２０は、それぞれに関連付けられたピクセルの領域が同じ割り当てられたクラス（例えば、「人物」又は「歩行者」）を有するにもかかわらず、異なる色でラベル付けされていることに留意すべきである。インスタンスセグメンテーションを実施するための一つのよく知られたアルゴリズムは、ＭａｓｋＲＣＮＮである。
【００２８】
速度推定モジュール２５０は、データ関連付けモジュール２３０が３Ｄセグメントと関連付けた物体について速さ及び進行方向（すなわち、速度）を判定するために、一つ以上のプロセッサ１１０にセンサシステム１２０からのセンサデータを分析させる指示を含む。速度を推定するために使用されるセンサデータは、３Ｄセンサデータ（例えば、ＬＩＤＡＲ、レーダー）、２Ｄセンサデータ（例えば、カメラ１２６からの画像データ）、又は、この２つの組み合わせを含むことができる。レーダーの一つの長所は、物体の速さを直接的に推定するためにドップラーシフトが使用され得ることである。速度推定モジュール２５０は、物体の速さ及び進行方向を統合モジュール２６０に渡す。
【００２９】
統合モジュール２６０は、一般に、登録されたデータ２９５を作り出すために、一つ以上のプロセッサ１１０に３Ｄデータを準備させ２Ｄ画像データと結び付けさせる（すなわち、登録する）指示を含む。上で検討されたように、３Ｄデータセグメンテーションモジュール２２０は、３Ｄデータ２８０内の３Ｄセグメントを識別し、データ関連付けモジュール２３０は、その３Ｄセグメントを物体と関連付ける。いくつかの実施形態において、３Ｄセグメントは、ポイントクラウドクラスタである。ポイントクラウドクラスタの例は、図４で説明される−それらは、歩行者３１０及び３２０、街灯柱３３０、壁３４０等と関連付けられている。他の実施形態において、３Ｄセグメントは、ポイントクラウドクラスタから導き出される３Ｄ境界情報である。２Ｄ画像空間上に投影された、そのような３Ｄ境界情報の単純な例は、図７に説明される。図７において、凸包は、図４の歩行者３１０に対応するポイントクラウドクラスタのために規定されており、その凸包は、投影された３Ｄ境界情報７１０を作り出すために２Ｄ画像空間上に投影されている。
【００３０】
上で検討されたように、３Ｄデータを２Ｄ画像データに登録することにおける一つの課題は、３Ｄ及び２Ｄデータは、通常は、同じ瞬間にキャプチャされていない（すなわち、３Ｄ及２Ｄセンサは、同期していない）ことであり、２種類のデータは、同じ有利な点からキャプチャされておらず、視差エラーをもたらす。「キャプチャタイミングのずれ」問題は、ポイントクラウドクラスタ及び３Ｄ境界情報の場合について、それぞれ、図８Ａ及び図８Ｂで説明される。図８Ａにおいて、歩行者３１０の２Ｄ画像の輪郭８１０と、対応するポイントクラウドクラスタ８２０に、目に見えるずれがある。これは、３Ｄ及び２Ｄデータが異なる時点でキャプチャされたことが原因である。図８Ｂにおいて、歩行者３１０の２Ｄ画像の輪郭８１０と、対応する投影された３Ｄ境界情報８３０に、目に見えるずれが同様にある。この「キャプチャタイミングのずれ」問題を克服するための技術は、下でより詳細に検討される。
【００３１】
一つの実施形態において、統合モジュール２６０は、３Ｄセグメントを、関連付けられた物体の速さ及び進行方向に基づいて、同じシーンの２Ｄ画像データがキャプチャされた時点に対応する位置にシフトすることにより、上で検討された３Ｄセグメントを２Ｄ画像データ内の分類されたピクセルの一部に登録する。統合モジュール２６０は、次に、このタイムシフトされた３Ｄセグメントを２Ｄ画像空間上に投影する。
【００３２】
他の実施形態において、いま説明されたステップは、逆の順番で実施される。すなわち、統合モジュール２６０は、３Ｄセグメントを２Ｄ画像空間上に投影し、投影された３Ｄセグメントを、関連付けられた物体の速さ及び進行方向に基づいて、同じシーンの２Ｄ画像データがキャプチャされた時点に対応する位置にシフトすることにより、３Ｄセグメントを２Ｄ画像データ内の分類されたピクセルの一部に登録する。
【００３３】
移動している物体の速度の責任をとる（account）ためのタイムシフトの結果は、ポイントクラウドクラスタ及び３Ｄ境界情報について、図９Ａ及び図９Ｂでそれぞれ説明される。図９Ａにおいて、歩行者３１０の２Ｄ画像の輪郭８１０は、いま、対応するタイムシフトされ投影されたポイントクラウドクラスタ９１０と正確に調整される。同様に、図９Ｂにおいて、歩行者３１０の２Ｄ画像の輪郭８１０は、いま、対応するタイムシフトされ投影された３Ｄ境界情報９２０と正確に調整される。さらに、この記述を簡潔にするために、一つの物体（すなわち、歩行者３１０）は、図８Ａ、図８Ｂ、図９Ａ及び図９Ｂの例示のために分離されている。実際には、シーン内の複数の物体は、ここで説明された技術を複数の物体に一般化することによって、実質的に同時に登録され得る。
【００３４】
画像セグメンテーションモジュール２４０が２Ｄ画像データ２９０のセマンティックセグメンテーションを実施する実施形態において、タイムシフトされ投影されたポイントクラウドクラスタは、異なるクラス（例えば、図３のシーン内の「人物」及び「歩道」）からの２Ｄ画像ピクセルと重なる点を有するかもしれない。そのような状況を解消するために、一つの実施形態において、統合モジュール２６０は、タイムシフトされ投影されたポイントクラウドクラスタ内の点と重なる複数のクラスのそれぞれの中のピクセルの数を数え、タイムシフトされ投影されたポイントクラウドクラスタは、重なっているピクセルの最大数を有するクラスと関連付けられる。例えば、図３のシーンにおいて、歩行者３１０に対応するタイムシフトされ投影されたポイントクラウドクラスタ９１０内の点と重なる、割り当てられたクラス「人物」を有する７５個のピクセルがあり、割り当てられたクラス「歩道」を有する１５個のピクセルがあるかもしれない。７５は１５より大きいので、登録の間に、ポイントクラウドクラスタの点は、クラス「人物」と関連付けられ得る。これは、「多数決」アルゴリズムを説明する。他の実施形態において、確率的モデルは、重なっているピクセルを有する複数のクラスからのピクセルの割合に基づいて採用され得る。さらに他の実施形態において、ピクセルを数えた結果又は確率的モデルの予測の結果は、さらなる処理及び意思判定のために、車両１００の他の機能モジュールに転送される。
【００３５】
画像セグメンテーションモジュール２４０が２Ｄ画像データのセマンティックセグメンテーションを実施し、３Ｄデータセグメンテーションモジュール２２０が３Ｄ境界情報（例えば、凸包）を作り出す実施形態において、タイムシフトされ投影された３Ｄ境界情報は、その境界内に、異なるクラス（例えば、図３のシーン内の「人物」及び「歩道」）からの２Ｄ画像ピクセルを有するかもしれない。そのような状況を解消するために、一つの実施形態において、統合モジュール２６０は、タイムシフトされ投影された３Ｄ境界情報内にあるピクセルを有する複数のクラスのそれぞれの中のピクセルの数を数え、タイムシフトされ投影された３Ｄ境界情報は、３Ｄ境界情報内のピクセルの最大数を有するクラスと関連付けられる。例えば、図３のシーンにおいて、歩行者３１０に対応するタイムシフトされ投影された３Ｄ境界情報９２０の内側に、割り当てられたクラス「人物」を有する８３個のピクセルがあり、割り当てられたクラス「歩道」を有する１９個のピクセルがあるかもしれない。８３は１９より大きいので、タイムシフトされ投影された３Ｄ境界情報９２０は、登録の間に、クラス「人物」と関連付けられ得る。これは、再び「多数決」アルゴリズムを説明する。他の実施形態において、確率的モデルは、タイムシフトされ投影された３Ｄ境界情報９２０内にあるピクセルを有する複数のクラスからのピクセルの割合に基づいて採用され得る。さらに他の実施形態において、ピクセルを数えた結果又は確率的モデルの予測の結果は、さらなる処理及び意思判定のために、車両１００の他の機能モジュールに転送される。
【００３６】
画像セグメンテーションモジュール２４０が２Ｄ画像データ２９０のインスタンスセグメンテーションを実施する実施形態において、統合モジュール２６０は、タイムシフトされ投影された３Ｄ境界情報９２０の形状を、物体の特別なクラスの特定のインスタンス（例えば、「第１の人物」、「第４の木」、「第５の車両」）に対応したインスタンスセグメンテーションとマッチングする。形状マッチングのための技術は、画像処理及びマシンビジョン技術の当業者にとってよく知られている。統合モジュール２６０は、３Ｄ／２Ｄ登録の実施においてあらゆる適切な形状マッチングアルゴリズムを採用することができる。例えば、一つのアプローチは、最も近い（最近傍の）インスタンスセグメンテーションを３Ｄ境界情報と関連付けることである。インスタンスセグメンテーションを採用しているこの実施形態は、３Ｄデータ２８０と２Ｄ画像データ２９０との間の視差エラーを克服することに役立つことができる。図１４及び図１５に関連して下で検討される他の実施形態において、インスタンスセグメンテーション及び形状マッチングは、速度補償なしで採用される（２Ｄ画像データ２９０内の分類されたピクセルと関連付けられた物体の測定された速さ及び進行方向に基づいてタイムシフトする）。
【００３７】
図１０は、発明の説明に役立つ実施形態に従った、３Ｄデータを２Ｄ画像データに登録するための方法１０００のフローチャートである。ブロック１０１０において、３Ｄ／２Ｄ登録システム１７０は、センサシステム１２０内の一つ以上のセンサから３Ｄデータ２８０を受信する。センサは、ＬＩＤＡＲセンサ、一組のステレオカメラ、ＲＧＢ−Ｄセンサ、レーダーセンサ、又は、一つ以上のこれらの種類のセンサ又は３Ｄデータをキャプチャできる一つ以上の他のセンサの組み合わせを含むことができる。ブロック１０２０において、３Ｄ／２Ｄ登録システム１７０は、センサシステム１２０の一部である一つ以上のカメラ１２６から画像データ２９０を受信する。
【００３８】
ブロック１０３０において、３Ｄデータセグメンテーションモジュール２２０は、３Ｄデータ内の３Ｄセグメントを識別する。いくつかの実施形態において、３Ｄセグメントは、ポイントクラウドクラスタである。他の実施形態において、３Ｄセグメントは、ポイントクラウドクラスタから導き出される３Ｄ境界情報である。３Ｄ境界情報の例は、凸包、ボクセル化、非凸包、バウンディングボックス及びメッシュデータを含むが、これに限定されるものではない。ブロック１０４０において、データ関連付けモジュール２３０は、３Ｄセグメントを物体と関連付ける。いくつかの実施形態において、物体は、車両１００の物体追跡機能によって以前に追跡されたものである。例えば、データ関連付けモジュール２３０は、ポイントクラウドクラスタを以前に追跡された車両と関連付けるかもしれず、凸包を以前に追跡された歩行者と関連付けるかもしれない。
【００３９】
ブロック１０５０において、画像セグメンテーションモジュール２４０は、２Ｄ画像データ２９０内のピクセルを分類する。実施形態に応じて、これは、図５及び図６のそれぞれに関連して上で検討されたように、２Ｄ画像データ２９０のセマンティックセグメンテーションを実施すること、又は、２Ｄ画像データ２９０のインスタンスセグメンテーションを実施することを含むことができる。
【００４０】
ブロック１０６０において、速度推定モジュール２５０は、３Ｄセグメントと関連付けられた物体の速さ及び進行方向（すなわち、速度）を判定する。速度を推定するために使用されるセンサデータは、３Ｄセンサデータ（例えば、ＬＩＤＡＲ、レーダー）、２Ｄセンサデータ（例えば、カメラ１２６からの画像データ）又はこの二つの組み合わせを含むことができる。速度推定モジュール２５０は、物体の速さ及び進行方向を、統合モジュール２６０に渡す。
【００４１】
ブロック１０７０において、統合モジュール２６０は、（１）３Ｄセグメントを、関連付けられた物体の速さ及び進行方向に基づいて、２Ｄ画像データ２９０がキャプチャされた時点に対応する位置にシフトし、タイムシフトされた３Ｄセグメントを２Ｄ画像空間上に投影すること、又は、（２）３Ｄセグメントを２Ｄ画像空間上に投影し、投影された３Ｄセグメントを、関連付けられた物体の速さ及び進行方向に基づいて、２Ｄ画像データがキャプチャされた時点に対応する位置にシフトすることのいずれかによって、３Ｄセグメントを２Ｄ画像データ２９０内の分類されたピクセルの一部に登録する。上で検討されたように、登録されたデータ２９５は、データベース２７０内に記憶され得る。
【００４２】
図１１は、発明の他の説明に役立つ実施形態に従った、３Ｄデータを、セマンティックセグメンテーションを含む２Ｄ画像データ１１００に登録するための方法のフローチャートである。この方法は、ブロック１０１０及び１０２０における方法１０００と同じ方法で始まる。ブロック１１１０において、３Ｄデータセグメンテーションモジュール２２０は、３Ｄデータ２８０内のポイントクラウドクラスタを識別する。ブロック１１２０において、データ関連付けモジュール２３０は、上で検討されたように、このポイントクラウドクラスタを物体と関連付ける。ブロック１１３０において、画像セグメンテーションモジュール２４０は、図５に関連して上で説明されたように、２Ｄ画像データ２９０のセマンティックセグメンテーションを実施する。ブロック１０６０において、方法１０００におけるように、速度推定モジュール２５０は、３Ｄセグメントと関連付けられた物体の速さ及び進行方向（すなわち、速度）を判定する。
【００４３】
ブロック１１４０において、統合モジュール２６０は、（１）ポイントクラウドクラスタを、関連付けられた物体の速さ及び進行方向に基づいて、２Ｄ画像データ２９０がキャプチャされた時点に対応する位置にシフトし、タイムシフトされたポイントクラウドクラスタを２Ｄ画像空間上に投影する、又は、（２）ポイントクラウドクラスタを２Ｄ画像空間上に投影し、投影されたポイントクラウドクラスタを、関連付けられた物体の速さ及び進行方向に基づいて、２Ｄ画像データがキャプチャされた時点に対応する位置にシフトする。
【００４４】
ブロック１１５０において、統合モジュール２６０は、上で検討されたように、タイムシフトされ投影されたポイントクラウドクラスタ内の点と重なる複数のクラスのそれぞれの中のピクセルの数を数える。ブロック１１６０において、統合モジュール２６０は、タイムシフトされ投影されたポイントクラウドクラスタを、タイムシフトされ投影されたポイントクラウドクラスタ内の点と重なる最大数のピクセルを有する、複数のクラスの中のクラスと関連付ける。ブロック１１４０、１１５０及び１１６０における前述の動作を実施することによって、統合モジュール２６０は、３Ｄデータを対応する２Ｄデータに登録し、登録されたデータ２９５を作り出す。
【００４５】
図１２は、発明の他の説明に役立つ実施形態に従った、３Ｄデータを、セマンティックセグメンテーションを含む２Ｄ画像データに登録するための他の方法１２００のフローチャートである。この方法は、ブロック１０１０及び１０２０における方法１０００と同じ方法で始まる。ブロック１２１０において、３Ｄデータセグメンテーションモジュール２２０は、３Ｄデータ２８０内の３Ｄ境界情報を識別する。３Ｄ境界情報の例は、凸包、ボクセル化、非凸包、バウンディングボックス及びメッシュデータを含むが、これに限定されるものではない。ブロック１２２０において、データ関連付けモジュール２３０は、３Ｄ境界情報を物体と関連付ける。ブロック１１３０において、方法１１００におけるように、画像セグメンテーションモジュール２４０は、図５に関連して上で説明されたように、２Ｄ画像データ２９０のセマンティックセグメンテーションを実施する。ブロック１０６０において、方法１０００におけるように、速度推定モジュール２５０は、３Ｄ境界情報と関連付けられた物体の速さ及び進行方向（すなわち、速度）を判定する。
【００４６】
ブロック１２３０において、統合モジュール２６０は、（１）３Ｄ境界情報を、関連付けられた物体の速さ及び進行方向に基づいて、２Ｄ画像データ２９０がキャプチャされた時点に対応する位置にシフトし、タイムシフトされた３Ｄ境界情報を２Ｄ画像空間上に投影する、又は、（２）３Ｄ境界情報を２Ｄ画像空間上に投影し、投影された３Ｄ境界情報を、関連付けられた物体の速さ及び進行方向に基づいて、２Ｄ画像データがキャプチャされた時点に対応する位置にシフトする。
【００４７】
ブロック１２４０において、統合モジュール２６０は、上で検討されたように、タイムシフトされ投影された３Ｄ境界情報の境界内にある複数のクラスのそれぞれの中のピクセルの数を数える。ブロック１２５０において、統合モジュール２６０は、タイムシフトされ投影された３Ｄ境界情報を、タイムシフトされ投影された３Ｄ境界情報内にある最大数のピクセルを有する、複数のクラスの中のクラスと関連付ける。ブロック１２３０、１２４０及び１２５０における前述の動作を実施することによって、統合モジュール２６０は、３Ｄデータを対応する２Ｄデータに登録し、登録されたデータ２９５を作り出す。
【００４８】
図１３は、発明のさらにもう一つの説明に役立つ実施形態に従った、３Ｄデータを、インスタンスセグメンテーションを含む２Ｄ画像データ１３００に登録するための方法のフローチャートである。この方法は、ブロック１０１０及び１０２０における方法１０００と同じ方法で始まり、ブロック１２１０及び１２２０において実施される動作は、図１２に関連して上で検討された方法１２００におけるものと同じである。ブロック１３１０において、画像セグメンテーションモジュール２４０は、図６に関連して検討されたように、２Ｄ画像データ２９０からインスタンスセグメンテーションを作り出す。ブロック１０６０において、方法１０００におけるように、速度推定モジュール２５０は、３Ｄ境界情報と関連付けられた物体の速さ及び進行方向（すなわち、速度）を判定する。
【００４９】
ブロック１３２０において、統合モジュール２６０は、（１）３Ｄ境界情報を、関連付けられた物体の速さ及び進行方向に基づいて、２Ｄ画像データ２９０がキャプチャされた時点に対応する位置にシフトし、タイムシフトされた３Ｄ境界情報を２Ｄ画像空間上に投影する、又は、（２）３Ｄ境界情報を２Ｄ画像空間上に投影し、投影された３Ｄ境界情報を、関連付けられた物体の速さ及び進行方向に基づいて、２Ｄ画像データがキャプチャされた時点に対応する位置にシフトする。ブロック１３３０において、統合モジュール２６０は、タイムシフトされ投影された３Ｄ境界情報をインスタンスセグメンテーションとマッチングし、登録されたデータ２９５を作り出す。タイムシフトされ投影された３Ｄ境界情報をインスタンスセグメンテーションとマッチングすることは、上で検討されたように、当業者によく知られたさまざまな形状マッチングアルゴリズムのいずれかを使用することによって達成され得る。
【００５０】
図１４は、３Ｄ／２Ｄ登録システム１７０の異なる実施形態を説明する。「キャプチャタイミングのずれ」を修正するために３Ｄセグメントと関連付けられた物体の測定された速度に基づいてタイムシフトすることは、この特別な実施形態において実施されないため、この実施形態は、データ関連付けモジュール２３０又は速度推定モジュール２５０を含まない。代わりに、この実施形態は、３Ｄ境界情報（例えば、凸包）をインスタンスセグメント化された２Ｄ画像データとマッチングする。
【００５１】
図１４の実施形態において、３Ｄ／２Ｄ登録システム１７０は、センサシステム１２０の一部である一つ以上のカメラ１２６から２Ｄ画像データ２９０を受信し、センサシステム１２０内の一つ以上のセンサから３Ｄデータ２８０を受信する。センサは、ＬＩＤＡＲ（Light Detection and Ranging）センサ（図１の要素１２４を参照）、一組のステレオカメラ、ＲＧＢ−Ｄ（Red Green Blue Depth）センサ、レーダーセンサ（図１の要素１２３を参照）、又は、これらの種類のセンサ又は３Ｄデータをキャプチャできる他のセンサの一つ以上の組み合わせを含むことができる。
【００５２】
図１４の実施形態において、３Ｄデータセグメンテーションモジュール２２０は、上で検討されたように、ポイントクラウドクラスタから導き出される３Ｄデータ２８０内の３Ｄ境界情報を識別する。３Ｄ境界情報の例は、凸包、ボクセル化、非凸包、バウンディングボックス及びメッシュデータを含むが、これに限定されるものではない。
【００５３】
この実施形態において、画像セグメンテーションモジュール２４０は、２Ｄ画像データ２９０のインスタンスセグメンテーションを実施する。図２に関連した実施形態に関連して上で検討されたように（特に、図６の検討を参照）、これは、クラスラベルを２Ｄ画像データ内のそれぞれのピクセルに割り当てることを含むだけでなく、同じクラスに属するピクセルの領域を、物体の特別な種類の特定のインスタンス（例えば、シーンにおける５人のグループ内の第３の人物、又は、通りに沿って駐車された車両の列の中の第２の車両）としてラベル付けすることを含む。インスタンスセグメンテーションにおいて、物体のクラスの特別なインスタンス（例えば、特定の車両、建物、木、人物等）と関連付けられたピクセルは、それら自身の固有の識別色を受信する。インスタンスセグメンテーションを実施するための一つのよく知られたアルゴリズムは、ＭａｓｋＲＣＮＮである。
【００５４】
図１４の実施形態において、統合モジュール２６０は、３Ｄ境界情報を２Ｄ画像空間上に投影し、投影された３Ｄ境界情報の形状を、物体の特別なクラスの特定のインスタンス（例えば、「第１の人物」、「第４の木」、「第５の車両」）に対応したインスタンスセグメンテーションとマッチングする。形状マッチングのための技術は、画像処理及びマシンビジョン技術の当業者にとってよく知られている。そのような技術は、例えば、３Ｄ境界情報に対して最も近い（最近傍の）インスタンスセグメンテーションを探すことを含むことができる。統合モジュール２６０は、３Ｄ／２Ｄ登録の実施においてあらゆる適切な形状マッチングアルゴリズムを採用することができる。図１４の実施形態によって作り出された最終結果は、登録されたデータ２９５である。
【００５５】
図１５は、発明の他の説明に役立つ実施形態に従った、３Ｄデータを２Ｄ画像データに登録するための方法１５００のフローチャートである。方法１５００は、図１４に描かれた３Ｄ／２Ｄ登録システム１７０の実施形態に対応する。ブロック１０１０において、（図１４内の）３Ｄ／２Ｄ登録システム１７０は、センサシステム１２０内の一つ以上のセンサから３Ｄデータ２８０を受信する。センサは、ＬＩＤＡＲセンサ、一組のステレオカメラ、ＲＧＢ−Ｄセンサ、レーダーセンサ、又は、これらの種類のセンサ又は３Ｄデータをキャプチャできる他のセンサの一つ以上の組み合わせを含むことができる。ブロック１０２０において、（図１４内の）３Ｄ／２Ｄ登録システム１７０は、センサシステム１２０の一部である一つ以上のカメラ１２６から画像データ２９０を受信する。ブロック１２１０において、３Ｄデータセグメンテーションモジュール２２０は、３Ｄデータ２８０内の３Ｄ境界情報を識別する。３Ｄ境界情報の例は、凸包、ボクセル化、非凸包、バウンディングボックス及びメッシュデータを含むが、これに限定されるものではない。ブロック１３１０において、画像セグメンテーションモジュール２４０は、図６に関連して上で検討されたように、２Ｄ画像データ２９０からインスタンスセグメンテーションを作り出す。
【００５６】
ブロック１５１０において、統合モジュール２６０は、３Ｄ境界情報を２Ｄ画像空間上に投影する。ブロック１５２０において、統合モジュール２６０は、投影された３Ｄ境界情報をインスタンスセグメンテーションとマッチングして、登録されたデータ２９５を作り出す。
【００５７】
図１は、いま、ここで開示されたシステム及び方法が動作できる車両環境の例として、詳細に検討される。ある場合には、車両１００は、自律モード、一つ以上の半自律運転可能モード及び／又は手動モードの間で選択的に切り換わるように構成される。手動モードへの移行がいま知られている又は後に開発される適切な方法で実装され得るとき、そのような切換は、また、ハンドオーバーと称される。「手動モード」は、ナビゲーションの全て又は大部分、及び／又は、車両の操作が、ユーザ（例えば、人間の運転手／操作者）から受信した入力に従って実施されることを意味する。
【００５８】
一つ以上の実施形態において、車両１００は、自律走行車である。ここで使用されるように、「自律走行車」は、自律モードで動作する車両に言及する。「自律モード」は、人間の運転手／操作者からの入力を最小にして又は無くして車両１００を制御するために一つ以上のコンピュータシステムを使用して、走行ルートに沿って車両１００をナビゲーション及び／又は操作することに言及する。一つ以上の実施形態において、車両１００は、非常に自動化されている、又は、完全に自動化されている。一つの実施形態において、車両１００は、一つ以上のコンピュータシステムが走行ルートに沿った車両のナビゲーション及び／又は操作の一部を実施する一つ以上の半自律運転可能なモードで構成され、車両の操作者（すなわち、運転手）は、走行ルートに沿った車両１００のナビゲーション及び／又は操作の一部を実施するために車両に入力を提供する。したがって、一つ以上の実施形態において、車両１００は、自律性の特別な規定されたレベルに従って自律的に動作する。例えば、車両１００は、ＳＡＥ（Society of Automotive Engineers）の自動化された車両分類０〜５に従って動作することができる。一つの実施形態において、車両１００は、ＳＡＥレベル２に従って動作する。ＳＡＥレベル２は、操作者の入力なしにブレーキ、加速及びステアリングによって車両１００を制御する自律運転モジュール１６０を提供するが、運転者／操作者は、運転を監視し、油断してはならず、自律モジュール１６０が適切に応答することに失敗した場合、又は、そうでなければ車両１００を十分に制御できない場合、車両１００の制御に介入する準備ができていなければならない。
【００５９】
車両１００は、一つ以上のプロセッサ１１０を含むことができる。一つ以上の配置において、プロセッサ１１０は、車両１００のメインプロセッサであり得る。例えば、プロセッサ１１０は、ＥＣＵ（electronic control unit）であり得る。車両１００は、一つ以上の種類のデータを記憶するために一つ以上のデータストア１１５を含むことができる。データストア１１５は、揮発性の及び／又は不揮発性のメモリを含むことができる。適切なデータストア１１５の例は、ＲＡＭ（Random Access Memory）、フラッシュメモリ、ＲＯＭ（Read Only Memory）、ＰＲＯＭ（Programmable Read-Only Memory）、ＥＰＲＯＭ（Erasable Programmable Read-Only Memory）、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）、レジスタ、磁気ディスク、光ディスク、ハードドライブ又はその他の適切な記憶媒体、又は、それらのあらゆる組み合わせを含む。データストア１１５は、プロセッサ１１０の構成要素であり得る、又は、データストア１１５は、プロセッサ１１０による使用のため、プロセッサ１１０に動作可能に接続され得る。この記述を通じて使用されている、「動作可能に接続される」という用語は、直接的な接続又は間接的な接続を含むことができ、直接的な物理的接触のない接続を含む。
【００６０】
一つ以上の配置において、一つ以上のデータストア１１５は、地図データ１１６を含むことができる。地図データ１１６は、一つ以上の地理的領域の地図を含むことができる。ある場合には、地図データ１１６は、一つ以上の地理的領域内の車道、交通制御施設、路面標識、建造物、地物（features）及び／又はランドマークに関する情報又はデータを含むことができる。地図データ１１６は、あらゆる適切な形態であり得る。ある場合には、地図データ１１６は、地域の空中の景色を含むことができる。ある場合には、地図データ１１６は、３６０度の地上の景色を含む、地域の地上の景色を含むことができる。地図データ１１６は、地図データ１１６に含まれる一つ以上の項目に対して、及び／又は、地図データ１１６に含まれる他の項目に対して、測定結果、次元（dimension）、距離及び／又は情報を含むことができる。地図データ１１６は、車道の形状に関する情報を伴ったデジタル地図を含むことができる。地図データ１１６は、高い品質及び／又は非常に詳細であり得る。
【００６１】
一つ以上の配置において、地図データ１１６は、一つ以上の地形図１１７を含むことができる。地形図１１７は、一つ以上の地理的領域の土地、地形、車道、水面（surface）及び／又は他の特徴に関する情報を含むことができる。地形図１１７は、一つ以上の地理的領域内の標高データを含むことができる。地図データ１１６は、高い品質及び／又は非常に詳細であり得る。地形図１１７は、舗装された車道、未舗装の車道、地所（land）及び地表を規定する他のものを含むことができる一つ以上の地表を規定することができる。
【００６２】
一つ以上の配置において、地図データ１１６は、一つ以上の固定障害物地図１１８を含むことができる。固定障害物地図１１８は、一つ以上の地理的領域内に位置する一つ以上の固定障害物に関する情報を含むことができる。「固定障害物」は、ある期間にわたってその位置が変わらない又は実質的に変わらない、及び／又は、ある期間にわたってその大きさが変わらない又は実質的に変わらない、物理的な物体である。固定障害物の例は、木、建物、縁石、フェンス、ガードレール、中央分離帯（median）、電柱（utility pole）、像、記念碑、標識、ベンチ、建具（furniture）、郵便受け、大きな岩、丘を含む。固定障害物は、地表面上に広がる物体であり得る。固定障害物地図１１８に含まれる一つ以上の固定障害物は、場所データ、大きさデータ、次元データ、材料データ及び／又はそれと関連付けられた他のデータを有することができる。固定障害物地図１１８は、一つ以上の固定障害物に対する測定結果、次元、距離及び／又は情報を含むことができる。固定障害物地図１１８は、高い品質及び／又は非常に詳細であり得る。固定障害物地図１１８は、地図が作られた地域内の変更を反映させるために更新され得る。
【００６３】
一つ以上のデータストア１１５は、センサデータ１１９を含み得る。この文脈において、「センサデータ」は、車両１００が備えているセンサに関するあらゆる情報を意味し、そのようなセンサに関する能力及び他の情報を含む。下に説明されるように、車両１００は、センサシステム１２０を含むことができる。センサデータ１１９は、センサシステム１２０の一つ以上のセンサに関連することができる。一例として、一つ以上の配置において、センサデータ１１９は、センサシステム１２０の一つ以上のＬＩＤＡＲセンサ１２４に関する情報を含むことができる。
【００６４】
ある場合には、地図データ１１６及び／又はセンサデータ１１９の少なくとも一部は、車両１００に搭載されて位置する一つ以上のデータストア１１５に位置することができる。その代わりに、又は、それに加えて、地図データ１１６及び／又はセンサデータ１１９の少なくとも一部は、車両１００から遠く離れて位置する一つ以上のデータストア１１５に位置することができる。
【００６５】
上で言及されたように、車両１００は、センサシステム１２０を含むことができる。センサシステム１２０は、一つ以上のセンサを含むことができる。「センサ」は、何かを検出及び／又は検知できるあらゆる機器、構成要素及び／又はシステムを意味する。一つ以上のセンサは、リアルタイムで検出及び／又は感知するように構成され得る。ここで使用されているように、「リアルタイム」という用語は、ユーザ又はシステムが特別なプロセス又はなされる決定に対して十分即時に感知する、又は、プロセッサがある外部のプロセスに遅れずについていくことを可能とする、処理の応答性のレベルを意味する。
【００６６】
センサシステム１２０が複数のセンサを含む配置において、センサは、互いに独立して機能することができる。その代わりに、センサの二つ以上は、互いに組み合わせて働くことができる。そのような場合において、二つ以上のセンサは、センサネットワークを形成することができる。センサシステム１２０及び／又は一つ以上のセンサは、プロセッサ１１０、データストア１１５及び／又は車両１００の他の要素（図１に示される要素のいずれかを含む）と動作可能に接続され得る。センサシステム１２０は、車両１００の外部環境（例えば、すぐ近くの車両）の少なくとも一部のデータを取得することができる。
【００６７】
センサシステム１２０は、あらゆる適切な種類のセンサを含むことができる。センサの異なる種類のさまざまな例は、ここで説明される。しかしながら、実施形態は、説明された特別なセンサに限定されないことが理解される。センサシステム１２０は、一つ以上の車両センサ１２１を含むことができる。車両センサ１２１は、車両１００自身に関する情報を検出、判定及び／又は感知することができる。一つ以上の配置において、車両センサ１２１は、例えば、慣性の加速（inertial acceleration）に基づくように、車両１００の位置及び方向の変化を検出及び／又は感知するように構成され得る。一つ以上の配置において、車両センサ１２１は、一つ以上の加速度計、一つ以上のジャイロスコープ、ＩＭＵ（inertial measurement unit）、推測航法システム、ＧＮＳＳ（global navigation satellite system）、ＧＰＳ（global positioning system）、ナビゲーションシステム１４７及び／又は他の適切なセンサを含むことができる。車両センサ１２１は、車両１００の一つ以上の特性を検出及び／又は感知するように構成され得る。一つ以上の配置において、車両センサ１２１は、車両１００の現在の速さを判定するためのスピードメーターを含むことができる。
【００６８】
その代わりに、又は、それに加えて、センサシステム１２０は、運転環境データを取得及び／又は感知するように構成される一つ以上の環境センサ１２２を含むことができる。「運転環境データ」は、自律走行車が位置する外部環境、又は、その一つ以上の部分に関するデータ又は情報を含む。例えば、一つ以上の環境センサ１２２は、車両１００の外部環境の少なくとも一部の中の障害物、及び／又は、そのような障害物に関する情報／データを、検出、定量化及び／又は感知するように構成され得る。そのような障害物は、動かない物体及び／又は動的な物体であってよい。一つ以上の環境センサ１２２は、例えば、レーンマーク、標識、信号機、交通標識、車線境界線、横断歩道、縁石、接近した車両１００、オフロード物体等のような、車両１００の外部環境内の他のものを検知、測定、定量化及び／又は感知するように構成され得る。
【００６９】
センサシステム１２０のセンサのさまざまな例は、ここで説明される。センサの例は、一つ以上の環境センサ１２２、及び／又は、一つ以上の車両センサ１２１の一部であってよい。さらに、センサシステム１２０は、車両１００の運転手／操作者に関連する様子を追跡する又はそうでなければ監視するように機能する操作者センサを含むことができる。しかしながら、実施形態は、説明された特別なセンサに限定されないことが理解される。
【００７０】
例として、一つ以上の配置において、センサシステム１２０は、一つ以上のレーダーセンサ１２３、一つ以上のＬＩＤＡＲセンサ１２４、一つ以上のソナーセンサ１２５、及び／又は、一つ以上のカメラ１２６を含むことができる。一つ以上の配置において、一つ以上のカメラ１２６は、ＨＤＲ（high dynamic range）カメラ、ＩＲ（infrared）カメラなどであり得る。一つの実施形態において、カメラ１２６は、操作者／運転手の注視、操作者／運転手の視標追跡などを判定するために、操作者／運転手に視標追跡を実施するための、車両の客室内に配置された一つ以上のカメラを含む。
【００７１】
車両１００は、入力システム１３０を含むことができる。「入力システム」は、情報／データを機械に入力可能にするあらゆる機器、構成要素、システム、要素、配置又はそれらのグループを含む。入力システム１３０は、車両の乗客（例えば、運転手又は乗客）から入力を受信することができる。車両１００は、出力システム１３５を含むことができる。「出力システム」は、情報／データを車両の乗客（例えば、人物、車両の乗客等）に示すことができるあらゆる機器、構成要素、配置又はそれらのグループを含む。
【００７２】
車両１００は、一つ以上の車両システム１４０を含むことができる。一つ以上の車両システム１４０のさまざまな例は、図１に示されている。しかしながら、車両１００は、より多くの、より少ない又は異なる車両システムを含むことができる。特別な車両システムが別々に規定されるが、システム又はその一部のそれぞれ又はいずれかは、そうでなければ、車両１００内のハードウェア及び／又はソフトウェアによって組み合わされ又は分離されてよいことが理解されるだろう。車両１００は、推進システム１４１、ブレーキシステム１４２、ステアリングシステム１４３、スロットルシステム１４４、トランスミッションシステム１４５、シグナリングシステム１４６及び／又はナビゲーションシステム１４７を含むことができる。これらのシステムのそれぞれは、いま知られている又は後に開発される一つ以上の機器、構成要素及び／又はそれらの組み合わせを含むことができる。
【００７３】
ナビゲーションシステム１４７は、車両１００の地理的な場所を判定する、及び／又は、車両１００のための走行ルートを判定するように構成された、いま知られている又は後に開発される一つ以上の機器、センサ、アプリケーション及び／又はそれらの組み合わせを含むことができる。ナビゲーションシステム１４７は、車両１００についての走行ルートを判定する一つ以上のマッピングアプリケーションを含むことができる。ナビゲーションシステム１４７は、グローバルポジショニングシステム、ローカルポジショニングシステム又はジオロケーションシステムを含むことができる。
【００７４】
プロセッサ１１０、３Ｄ／２Ｄ登録システム１７０及び／又は自律運転モジュール１６０は、さまざまな車両システム１４０及び／又はそれらの個々の構成要素と通信するために、動作可能に接続され得る。例えば、図１に戻って、プロセッサ１１０及び／又は自律運転モジュール１６０は、車両１００の動き、速さ、操作、進行方向、向き等を制御するために、さまざまな車両システム１４０から情報を送信及び／又は受信するための通信をすることができる。プロセッサ１１０、３Ｄ／２Ｄ登録システム１７０及び／又は自律運転モジュール１６０は、これらの車両システム１４０のいくつか又は全てを制御してよく、したがって、部分的に又は完全に自律してよい。
【００７５】
プロセッサ１１０、３Ｄ／２Ｄ登録システム１７０及び／又は自律運転モジュール１６０は、さまざまな車両システム１４０及び／又はそれらの個々の構成要素と通信するために動作可能に接続され得る。例えば、図１に戻って、プロセッサ１１０、３Ｄ／２Ｄ登録システム１７０及び／又は自律運転モジュール１６０は、車両１００の動き、速さ、操作、進行方向、向き等を制御するために、さまざまな車両システム１４０から情報を送信及び／又は受信するための通信をすることができる。プロセッサ１１０、３Ｄ／２Ｄ登録システム１７０及び／又は自律運転モジュール１６０は、これらの車両システム１４０のいくつか又は全てを制御してよい。
【００７６】
プロセッサ１１０、３Ｄ／２Ｄ登録システム１７０及び／又は自律運転モジュール１６０は、車両システム１４０の一つ以上及び／又はそれらの構成要素を制御することによって、車両１００のナビゲーション及び／又は操作を制御するように動作可能であってよい。例えば、自律モードで動作するとき、プロセッサ１１０、３Ｄ／２Ｄ登録システム１７０及び／又は自律運転モジュール１６０は、車両１００の向き及び／又は速さを制御することができる。プロセッサ１１０、３Ｄ／２Ｄ登録システム１７０及び／又は自律運転モジュール１６０は、車両１００に加速（例えば、エンジンに提供される燃料の供給を増加させることによって）、減速（例えば、エンジンへの燃料の供給を減少させる、及び／又は、ブレーキをかけることによって）、及び／又は、向きを変更（例えば、２つの前輪の向きを変えることによって）させることができる。ここで使用されるように、「させる（cause）」又は「させること（causing）」は、直接的な又は間接的な方法によって、発生するアクション又はイベントを作る、強制する、力ずくでさせる、指図する、命令する、指示する及び／又は可能にする、又は、少なくともそのようなイベント又はアクションが発生してよい状態にすることを意味する。
【００７７】
車両１００は、一つ以上のアクチュエータ１５０を含むことができる。アクチュエータ１５０は、プロセッサ１１０及び／又は自律運転モジュール１６０から受信した信号又はその他の入力に応答するための、車両システム１４０の一つ以上又はその構成要素を修正、調整及び／又は変更するように動作可能なあらゆる要素又は要素の組み合わせであり得る。あらゆる適切なアクチュエータは、使用され得る。例えば、一つ以上のアクチュエータ１５０は、いくつか可能な例を挙げると、モーター、空気圧式アクチュエータ、油圧ピストン、リレー、ソレノイド及び／又は圧電アクチュエータを含むことができる。
【００７８】
車両１００は、その少なくともいくつかがここで説明された一つ以上のモジュールを含むことができる。モジュールは、プロセッサ１１０によって実行されるときに、ここで説明されたさまざまなプロセスの一つ以上を実装するコンピュータ読み取り可能なプログラムコードとして実装され得る。モジュールの一つ以上は、プロセッサ１１０の構成要素であり得る、又は、モジュールの一つ以上は、プロセッサ１１０が動作可能に接続されている他の処理システムで実行され得る、及び／又は、他の処理システム内で分散され得る。モジュールは、一つ以上のプロセッサ１１０によって実行可能な指示（例えば、プログラムロジック）を含むことができる。その代わりに、又はそれに加えて、一つ以上のデータストア１１５は、そのような指示を収容できてよい。
【００７９】
一つ以上の配置において、ここで説明されたモジュールの一つ以上は、人工知能の要素又は計算知能の要素、例えば、ニューラルネットワーク、ファジー論理又は他の機械学習のアルゴリズムを含むことができる。さらに、一つ以上の配置において、モジュールの一つ以上は、ここで説明された複数のモジュールの中に分散され得る。一つ以上の配置において、ここで説明されたモジュールの二つ以上は、一つのモジュールに組み合され得る。
【００８０】
車両１００は、一つ以上の自律運転モジュール１６０を含むことができる。自律運転モジュール１６０は、センサシステム１２０、及び／又は、車両１００及び／又は車両１００の外部環境に関連した情報をキャプチャできるその他の種類のシステムからデータを受信するように構成され得る。一つ以上の配置において、自律運転モジュール１６０は、そのようなデータを一つ以上の運転シーンモデルを生成するために使用することができる。自律運転モジュール１６０は、車両１００の位置及び速度を判定することができる。自律運転モジュール１６０は、障害物の場所、又は、交通標識、木、低木、近隣の車両、歩行者等を含む他の環境の特徴を判定することができる。
【００８１】
自律運転モジュール１６０は、プロセッサ１１０、及び／又は、車両１００の位置及び方向を推定するためのここで説明されたモジュールの一つ以上が使用するために、車両１００の外部環境内の障害物に対する場所情報を受信及び／又は判定するように構成され得る。グローバル座標における車両の位置は、地図を創り出すこと、又は、地図データに関して車両１００の位置を判定することに使用するその環境に関して、複数の衛星からの信号、又は、車両１００の現在の状態を判定する又は車両１００の位置を判定するために使用され得るその他のデータ及び／又は信号に基づいている。
【００８２】
独立した、又は、３Ｄ／２Ｄ登録システム１７０と組み合わされた自律運転モジュール１６０は、センサシステム１２０によって取得されたデータ、運転シーンモデル、及び／又はその他の適切な情報源からのデータに基づいて、走行経路、車両１００に対する現在の自律運転操作、未来の自律運転操作、及び／又は、現在の自律運転操作への修正を判定するように構成され得る。「運転操作」は、車両の動きに影響を与える一つ以上のアクションを意味する。運転操作の例は、いくつか可能な例を挙げると、加速、減速、ブレーキング、向きの変更、車両１００の横方向への移動、走行車線の変更、走行車線への合流、及び／又はバックを含む。自律運転モジュール１６０は、判定された運転操作を実行に移す（implement）ように構成され得る。自律運転モジュール１６０は、直接的に又は間接的に、実行に移されるそのような自律運転操作を引き起こす。ここで使用されるように、「させる（cause）」又は「させること（causing）」は、直接的な又は間接的な方法によって、発生するアクション又はイベントを作る、命令する、指示する及び／又は可能にする、又は、少なくともそのようなイベント又はアクションが発生してよい状態にすることを意味する。自律運転モジュール１６０は、さまざまな車両の機能を実行するように、及び／又は、車両１００又はその一つ以上のシステム（例えば、車両システム１４０の一つ以上）とデータを送受信する、相互作用する及び／又は車両１００又はその一つ以上のシステムを制御するように、構成され得る。
【００８３】
詳細な実施形態は、ここで開示されている。しかしながら、開示された実施形態が例としてのみ意図されたことは、理解されるべきである。したがって、ここで開示された特定の構造及び機能の詳細は、限定的に解釈されず、単に特許請求の範囲の根拠として、及び、当事者に、事実上あらゆる適切に詳細化された構造でここの側面をさまざまに採用することを教示するための代表的な根拠として解釈される。さらに、ここで使用された用語及び語句は、限定することを意図せず、むしろ可能な実装の理解可能な記述を提供することを意図している。さまざまな実施形態は、図１〜図１５に示されたが、実施形態は、説明された構造又は応用に限定されない。
【００８４】
図におけるフローチャート及びブロック図は、様々な実施形態に従ったシステム、方法及びコンピュータプログラム製品の、可能な実装の構造、機能及び動作を説明する。この点について、フローチャート又はブロック図内のそれぞれのブロックは、明記された論理的な機能を実装するための一つ以上の実行可能な指示を含むモジュール、セグメント又はコードの一部を表現することがある。いくつかの代わりの実装において、ブロックで言及された機能が図で言及された順序と異なる順序で発生してよいことにも留意すべきである。例えば、連続して示された二つのブロックは、実のところ、実質的に同時に実行されることがある、又は、これらのブロックは、含まれる機能次第では、ときには逆の順番で実行されてよい。
【００８５】
上で説明されたシステム、構成要素及び／又はプロセスは、ハードウェア又はハードウェアとソフトウェアとの組み合わせで実現され得るものであり、一つの処理システムにおける集中方式で、又は、異なる要素がいくつかの相互接続された処理システムに散在する分散方式で実現され得る。ここで説明された方法を実行することに適した、いかなる種類の処理システム又は他の装置は、適している。ハードウェアとソフトウェアとの典型的な組み合わせは、ロードされ実行されたときに、ここで説明された方法を実行するように処理システムを制御する、コンピュータ使用可能なプログラムコードを伴う処理システムであり得る。システム、構成要素及び／又はプロセスは、また、ここで説明された方法及びプロセスを実施するための機械によって実行可能な指示のプログラムを明白に具現化する機械によって読み取り可能な、コンピュータプログラム製品又は他のデータプログラムの記憶装置のようなコンピュータ読み取り可能な記憶装置に組み込まれ得る。これらの要素は、また、ここで説明された方法の実装を可能とするすべての特徴を含み、処理システムにロードされたときにこれらの方法を実行可能な応用製品に組み込まれ得る。
【００８６】
さらに、ここで説明された配置は、一つ以上のコンピュータ読み取り可能な媒体であって、その上に具現化された、例えば、記憶された、コンピュータ読み取り可能なプログラムコードを有する一つ以上のコンピュータ読み取り可能な媒体に具現化されたコンピュータプログラム製品の形態をとってよい。一つ以上のコンピュータ読み取り可能な媒体のあらゆる組み合わせは、利用されてよい。コンピュータ読み取り可能な媒体は、コンピュータ読み取り可能な信号媒体又はコンピュータ読み取り可能な記憶媒体であってよい。「コンピュータ読み取り可能な記憶媒体」という語句は、一時的でない記憶媒体を意味する。コンピュータ読み取り可能な記憶媒体は、例えば、電子的な、磁気的な、光学的な、電磁気的な、赤外線の又は半導体のシステム、装置又は機器、又は前述のもののあらゆる適切な組み合わせであってよいが、これに限定されるものではない。コンピュータ読み取り可能な記憶媒体のより具体的な例（包括的ではないリスト）は、以下を含むだろう：ポータブルフロッピーディスク、ＨＤＤ（hard disk drive）、ＳＳＤ（solid-state drive）、ＲＯＭ（read-only memory）、ＥＰＲＯＭ（erasable programmable read-only memory）又はフラッシュメモリ、ポータブルＣＤ−ＲＯＭ（compact disc read-only memory）、ＤＶＤ（digital versatile disc）、光学記憶装置、磁気記憶装置又は前述のもののあらゆる適切な組み合わせ。この文書の文脈において、コンピュータ読み取り可能な記憶媒体は、指示実行システム、装置又は機器によって又は関連して使用されるプログラムを収容又は記憶できるあらゆる有形の媒体であってよい。
【００８７】
コンピュータ読み取り可能な媒体に具現化されたプログラムコードは、無線、有線、光ファイバー、ケーブル、ＲＦ等、又は前述のもののあらゆる適切な組み合わせを含むが、それらに限定されない、あらゆる適切な媒体を使用して送信されてよい。現在の配置の側面に対する動作を実行するためのコンピュータプログラムコードは、ＪＡＶＡ（登録商標）、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋又は同様なもののようなオブジェクト指向プログラミング言語、及び、「Ｃ」プログラミング言語又は類似のプログラミング言語のような従来型のプログラミング言語を含む一つ以上のプログラミング言語のあらゆる組み合わせによって記述されてよい。プログラムコードは、全体をユーザのコンピュータ上で、一部をユーザのコンピュータ上で、スタンドアローンのソフトウェアパッケージとして、一部をユーザのコンピュータ上且つ一部をリモートコンピュータ上で、又は、全体をリモートコンピュータ又はサーバ上で実行してよい。後者のシナリオにおいて、リモートコンピュータは、ＬＡＮ（local area network）又はＷＡＮ（wide area network）を含むあらゆる種類のネットワークを通ってユーザのコンピュータに接続されてよく、又は、コネクションは、外部のコンピュータに作られてよい（例えば、インターネットサービスプロバイダを用いてインターネットを通って）。
【００８８】
ここで使用された「ある（”a”又は”an”）」という用語は、一つ又は一つ以上と規定される。ここで使用された「複数の」という用語は、二つ又は二つ以上と規定される。ここで使用された「他の」という用語は、少なくとも２番目又はそれ以上と規定される。ここで使用された「含む」及び／又は「有する」という用語は、”comprising”（すなわち、オープンランゲージ（open language））と規定される。ここで使用された「…及び…の少なくとも一つ」という語句は、関連付けられリスト化された項目の一つ以上のありとあらゆる可能な組み合わせに言及し、これを包含する。例として、「Ａ、Ｂ及びＣの少なくとも一つ」という語句は、Ａのみ、Ｂのみ、Ｃのみ又はそれらのあらゆる組み合わせ（例えば、ＡＢ、ＡＣ、ＢＣ又はＡＢＣ）を含む。
【００８９】
ここの側面は、その精神又はその本質的な特性から逸脱することなく他の形態で具現化され得る。その結果、参照は、これに関する範囲を示すものとして、前述の明細書よりむしろ以下の特許請求の範囲に対してなされるべきである。
【図１】
2020087464.tif 000003
【図２】
2020087464.tif 000004
【図３】
2020087464.tif 000005
【図４】
2020087464.tif 000006
【図５】
2020087464.tif 000007
【図６】
2020087464.tif 000008
【図７】
2020087464.tif 000009
【図８Ａ】
2020087464.tif 000010
【図８Ｂ】
2020087464.tif 000011
【図９Ａ】
2020087464.tif 000012
【図９Ｂ】
2020087464.tif 000013
【図１０】
2020087464.tif 000014
【図１１】
2020087464.tif 000015
【図１２】
2020087464.tif 000016
【図１３】
2020087464.tif 000017
【図１４】
2020087464.tif 000018
【図１５】
2020087464.tif 000019