IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ トヨタ リサーチ インスティテュート,インコーポレイティドの特許一覧

特許73418643Dデータを2D画像データに登録するためのシステム及び方法
<>
  • 特許-3Dデータを2D画像データに登録するためのシステム及び方法 図1
  • 特許-3Dデータを2D画像データに登録するためのシステム及び方法 図2
  • 特許-3Dデータを2D画像データに登録するためのシステム及び方法 図3
  • 特許-3Dデータを2D画像データに登録するためのシステム及び方法 図4
  • 特許-3Dデータを2D画像データに登録するためのシステム及び方法 図5
  • 特許-3Dデータを2D画像データに登録するためのシステム及び方法 図6
  • 特許-3Dデータを2D画像データに登録するためのシステム及び方法 図7
  • 特許-3Dデータを2D画像データに登録するためのシステム及び方法 図8A
  • 特許-3Dデータを2D画像データに登録するためのシステム及び方法 図8B
  • 特許-3Dデータを2D画像データに登録するためのシステム及び方法 図9A
  • 特許-3Dデータを2D画像データに登録するためのシステム及び方法 図9B
  • 特許-3Dデータを2D画像データに登録するためのシステム及び方法 図10
  • 特許-3Dデータを2D画像データに登録するためのシステム及び方法 図11
  • 特許-3Dデータを2D画像データに登録するためのシステム及び方法 図12
  • 特許-3Dデータを2D画像データに登録するためのシステム及び方法 図13
  • 特許-3Dデータを2D画像データに登録するためのシステム及び方法 図14
  • 特許-3Dデータを2D画像データに登録するためのシステム及び方法 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-01
(45)【発行日】2023-09-11
(54)【発明の名称】3Dデータを2D画像データに登録するためのシステム及び方法
(51)【国際特許分類】
   G06T 7/00 20170101AFI20230904BHJP
   G01B 11/24 20060101ALI20230904BHJP
   G01B 11/245 20060101ALI20230904BHJP
【FI】
G06T7/00 C
G01B11/24 A
G01B11/245
G06T7/00 650A
G06T7/00 660B
【請求項の数】 18
(21)【出願番号】P 2019206474
(22)【出願日】2019-11-14
(65)【公開番号】P2020087464
(43)【公開日】2020-06-04
【審査請求日】2022-09-05
(31)【優先権主張番号】16/192,225
(32)【優先日】2018-11-15
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】518102470
【氏名又は名称】トヨタ リサーチ インスティテュート,インコーポレイティド
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【弁理士】
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100092624
【弁理士】
【氏名又は名称】鶴田 準一
(74)【代理人】
【識別番号】100147555
【弁理士】
【氏名又は名称】伊藤 公一
(74)【代理人】
【識別番号】100123593
【弁理士】
【氏名又は名称】関根 宣夫
(74)【代理人】
【識別番号】100133835
【弁理士】
【氏名又は名称】河野 努
(74)【代理人】
【識別番号】100159259
【弁理士】
【氏名又は名称】竹本 実
(72)【発明者】
【氏名】寒澤 佑介
(72)【発明者】
【氏名】マイケル ジェームズ デルプ
【審査官】真木 健彦
(56)【参考文献】
【文献】国際公開第2018/122087(WO,A1)
【文献】特開2012-146132(JP,A)
【文献】米国特許出願公開第2017/0228940(US,A1)
【文献】QIU YUE,RGB-Dカメラを用いた生活空間センシング及び機能解析に関する研究,第23回 画像センシングシンポジウム SSII2017 [USB],日本,画像センシング技術研究会,2017年06月07日,IS2-21 SO2-IS2-21,全6ページ
【文献】Kanokphan Lertniphonphan,2D TO 3D LABEL PROPAGATION FOR OBJECT DETECTION IN POINT CLOUD,2018 IEEE International Conference on Multimedia & Expo Workshops (ICMEW),IEEE,2018年07月,全6ページ,https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8551515
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00
G06T 7/10
G06T 7/30
G06T 1/00
G06T 19/00
G01B 11/24
G01B 11/245
(57)【特許請求の範囲】
【請求項1】
3D(three-dimensional)データを2D(two-dimensional)画像データに登録するためのシステムであって、
3Dデータを作り出すための一つ以上のセンサと、
2D画像データを作り出すための一つ以上のカメラと、
一つ以上のプロセッサと、
前記一つ以上のプロセッサと通信可能なように連結されたメモリであって、
前記一つ以上のプロセッサによって実行されたときに、前記一つ以上のプロセッサに前記3Dデータ内で3Dセグメントを識別させる指示を含む、3Dデータセグメンテーションモジュールと、
前記一つ以上のプロセッサによって実行されたときに、前記一つ以上のプロセッサに前記3Dセグメントを物体と関連付けさせる指示を含む、データ関連付けモジュールと、
前記一つ以上のプロセッサによって実行されたときに、前記一つ以上のプロセッサに前記2D画像データ内のピクセルを分類させる指示を含む、画像セグメンテーションモジュールと、
前記一つ以上のプロセッサによって実行されたときに、前記一つ以上のプロセッサに前記物体についての速さ及び進行方向を判定させる指示を含む、速度推定モジュールと、
前記一つ以上のプロセッサによって実行されたときに、
前記3Dセグメントを、前記関連付けられた物体の速さ及び進行方向に基づいて、前記2D画像データがキャプチャされた時点に対応する位置にシフトし、タイムシフトされた3Dセグメントを2D画像空間上に投影すること、及び、
前記3Dセグメントを2D画像空間上に投影し、前記投影された3Dセグメントを、前記関連付けられた物体の速さ及び進行方向に基づいて、前記2D画像データがキャプチャされた時点に対応する位置にシフトすること、
の一つを実施することによって、前記一つ以上のプロセッサに前記3Dセグメントを前記2D画像データ内の前記分類されたピクセルの一部に登録させる指示を含む、統合モジュールと、
を記憶する、メモリと、
を含む、システム。
【請求項2】
前記一つ以上のセンサは、LIDAR(Light Detection and Ranging)センサ、一組のステレオカメラ、RGB-D(Red Green Blue Depth)センサ及びレーダーセンサの少なくとも一つを含み、
前記3Dセグメントは、ポイントクラウドクラスタである、請求項1に記載のシステム。
【請求項3】
前記画像セグメンテーションモジュールは、前記2D画像データのセマンティックセグメンテーションを実施する指示であって、前記セマンティックセグメンテーションは、クラスラベルを前記2D画像データ内のそれぞれのピクセルに割り当ててそのピクセルを分類する、指示をさらに含み、
前記統合モジュールは、前記タイムシフトされ投影されたポイントクラウドクラスタ内の点と重なる少なくとも一つのクラス内のピクセルの数を数える指示をさらに含む、請求項2に記載のシステム。
【請求項4】
前記統合モジュールは、
前記タイムシフトされ投影されたポイントクラウドクラスタ内の点と重なる複数のクラスのそれぞれの中のピクセルの数を数え、
前記タイムシフトされ投影されたポイントクラウドクラスタを、ピクセルの最大数が前記タイムシフトされ投影されたポイントクラウドクラスタ内の点と重なる前記複数のクラス内のクラスと関連付ける、指示をさらに含む、請求項3に記載のシステム。
【請求項5】
前記3Dセグメントは、凸包、ボクセル化、非凸包、バウンディングボックス及びメッシュデータの一つを含む3D境界情報である、請求項1に記載のシステム。
【請求項6】
前記画像セグメンテーションモジュールは、前記2D画像データ内の前記分類されたピクセルからインスタンスセグメンテーションを作り出す指示であって、前記インスタンスセグメンテーションは、前記2D画像データ内の前記分類されたピクセルの前記一部を物体の特別なクラスの特定のインスタンスとして識別する、指示をさらに含み、
前記統合モジュールは、前記タイムシフトされ投影された3D境界情報を前記インスタンスセグメンテーションとマッチングする指示をさらに含む、請求項5に記載のシステム。
【請求項7】
前記画像セグメンテーションモジュールは、前記2D画像データのセマンティックセグメンテーションを実施する指示であって、前記セマンティックセグメンテーションは、クラスラベルを前記2D画像データ内のそれぞれのピクセルに割り当ててそのピクセルを分類する、指示をさらに含み、
前記統合モジュールは、前記タイムシフトされ投影された3D境界情報内にある少なくとも一つのクラス内のピクセルの数を数える指示をさらに含む、請求項5に記載のシステム。
【請求項8】
前記統合モジュールは、
前記タイムシフトされ投影された3D境界情報内にある複数のクラスのそれぞれの中のピクセルの数を数え、
前記タイムシフトされ投影された3D境界情報を、ピクセルの最大数が前記タイムシフトされ投影された3D境界情報内にある前記複数のクラス内のクラスと関連付ける、指示をさらに含む、請求項7に記載のシステム。
【請求項9】
3D(three-dimensional)データを2D(two-dimensional)画像データに登録する方法であって、
一つ以上のセンサから3Dデータを受信するステップと、
一つ以上のカメラから2D画像データを受信するステップと、
前記3Dデータ内で3Dセグメントを識別するステップと、
前記3Dセグメントを物体と関連付けるステップと、
前記2D画像データ内のピクセルを分類するステップと、
前記物体についての速さ及び進行方向を判定するステップと、
前記3Dセグメントを、前記関連付けられた物体の速さ及び進行方向に基づいて、前記2D画像データがキャプチャされた時点に対応する位置にシフトし、タイムシフトされた3Dセグメントを2D画像空間上に投影するステップ、及び、前記3Dセグメントを2D画像空間上に投影し、前記投影された3Dセグメントを、前記関連付けられた物体の速さ及び進行方向に基づいて、前記2D画像データがキャプチャされた時点に対応する位置にシフトするステップ、の一つを実施することによって、前記3Dセグメントを前記2D画像データ内の前記分類されたピクセルの一部に登録するステップと、を含む、方法。
【請求項10】
前記一つ以上のセンサは、LIDAR(Light Detection and Ranging)センサ、一組のステレオカメラ、RGB-D(Red Green Blue Depth)センサ及びレーダーセンサの少なくとも一つを含み、
前記3Dセグメントは、ポイントクラウドクラスタである、請求項9に記載の方法。
【請求項11】
前記2D画像データ内のピクセルを分類するステップは、前記2D画像データのセマンティックセグメンテーションを実施するステップであって、前記セマンティックセグメンテーションは、クラスラベルを前記2D画像データ内のそれぞれのピクセルに割り当てる、ステップを含み、
前記登録するステップは、前記タイムシフトされ投影されたポイントクラウドクラスタ内の点と重なる少なくとも一つのクラス内のピクセルの数を数えるステップを含む、請求項10に記載の方法。
【請求項12】
前記登録するステップは、
前記タイムシフトされ投影されたポイントクラウドクラスタ内の点と重なる複数のクラスのそれぞれの中のピクセルの数を数えるステップと、
前記タイムシフトされ投影されたポイントクラウドクラスタを、ピクセルの最大数が前記タイムシフトされ投影されたポイントクラウドクラスタ内の点と重なる前記複数のクラス内のクラスと関連付けるステップと、を含む、請求項11に記載の方法。
【請求項13】
前記3Dセグメントは、凸包、ボクセル化、非凸包、バウンディングボックス及びメッシュデータの一つを含む3D境界情報である、請求項9に記載の方法。
【請求項14】
前記2D画像データ内のピクセルを分類するステップは、インスタンスセグメンテーションを作り出すステップであって、前記インスタンスセグメンテーションは、前記2D画像データ内の前記分類されたピクセルの前記一部を物体の特別なクラスの特定のインスタンスとして識別する、ステップを含み、
前記登録するステップは、前記タイムシフトされ投影された3D境界情報を前記インスタンスセグメンテーションとマッチングするステップを含む、請求項13に記載の方法。
【請求項15】
前記2D画像データ内のピクセルを分類するステップは、前記2D画像データのセマンティックセグメンテーションを実施するステップであって、前記セマンティックセグメンテーションは、クラスラベルを前記2D画像データ内のそれぞれのピクセルに割り当ててそのピクセルを分類する、ステップを含み、
前記登録するステップは、前記タイムシフトされ投影された3D境界情報内にある少なくとも一つのクラス内のピクセルの数を数えるステップを含む、請求項13に記載の方法。
【請求項16】
前記登録するステップは、
前記タイムシフトされ投影された3D境界情報内にある複数のクラスのそれぞれの中のピクセルの数を数えるステップと、
前記タイムシフトされ投影された3D境界情報を、ピクセルの最大数が前記タイムシフトされ投影された3D境界情報内にある前記複数のクラス内のクラスと関連付けるステップと、を含む、請求項15に記載の方法。
【請求項17】
3D(three-dimensional)データを2D(two-dimensional)画像データに登録するためのシステムであって、
3Dデータを作り出すための一つ以上のセンサと、
2D画像データを作り出すための一つ以上のカメラと、
一つ以上のプロセッサと、
前記一つ以上のプロセッサと通信可能なように連結されたメモリであって、
前記一つ以上のプロセッサによって実行されたときに、前記一つ以上のプロセッサに前記3Dデータ内で、凸包、ボクセル化、非凸包、バウンディングボックス及びメッシュデータを含む3D境界情報を識別させる指示を含む、3Dデータセグメンテーションモジュールと、
前記一つ以上のプロセッサによって実行されたときに、前記一つ以上のプロセッサに前記2D画像データ内のピクセルからインスタンスセグメンテーションを作り出させる指示を含む画像セグメンテーションモジュールであって、前記インスタンスセグメンテーションは、前記2D画像データ内の前記ピクセルの一部を物体の特別なクラスの特定のインスタンスとして識別する、画像セグメンテーションモジュールと、
前記一つ以上のプロセッサによって実行されたときに、前記一つ以上のプロセッサに、
前記3D境界情報を2D画像空間上に投影させ、投影された3D境界情報を作り出させ、
前記投影された3D境界情報を前記インスタンスセグメンテーションとマッチングさせ、前記投影された3D境界情報を前記インスタンスセグメンテーションに登録させる、指示を含む、統合モジュールと、
前記一つ以上のプロセッサによって実行されたときに、前記一つ以上のプロセッサに前記3D境界情報を物体と関連付けさせる指示を含む、データ関連付けモジュールと、
前記一つ以上のプロセッサによって実行されたときに、前記一つ以上のプロセッサに前記物体についての速さ及び進行方向を判定させる指示を含む、速度推定モジュールと、
を記憶する、メモリと、
を含み、
前記統合モジュールは、
前記3D境界情報が2D画像空間上に投影される前に、前記3D境界情報を、前記関連付けられた物体の速さ及び進行方向に基づいて、前記2D画像データがキャプチャされた時点に対応する位置にシフトすること、及び、
前記3D境界情報が2D画像空間上に投影された後に、前記投影された3D境界情報を、前記関連付けられた物体の速さ及び進行方向に基づいて、前記2D画像データがキャプチャされた時点に対応する位置にシフトすること、
の一つを実施する指示をさらに含む、システム。
【請求項18】
3D(three-dimensional)データを2D(two-dimensional)画像データに登録する方法であって、
一つ以上のセンサから3Dデータを受信するステップと、
一つ以上のカメラから2D画像データを受信するステップと、
前記3Dデータ内で3D境界情報を識別するステップと、
前記2D画像データ内のピクセルからインスタンスセグメンテーションを作り出すステップであって、前記インスタンスセグメンテーションは、前記2D画像データ内の前記ピクセルの一部を物体の特別なクラスの特定のインスタンスとして識別する、ステップと、
前記3D境界情報を2D画像空間上に投影し、投影された3D境界情報を作り出すステップと、
前記投影された3D境界情報を前記インスタンスセグメンテーションとマッチングし、前記投影された3D境界情報を前記インスタンスセグメンテーションに登録する、ステップと、
前記3D境界情報を物体と関連付けるステップと、
前記物体についての速さ及び進行方向を判定するステップと、
前記3D境界情報が2D画像空間上に投影される前に、前記3D境界情報を、前記関連付けられた物体の速さ及び進行方向に基づいて、前記2D画像データがキャプチャされた時点に対応する位置にシフトするステップ、及び、前記3D境界情報が2D画像空間上に投影された後に、前記投影された3D境界情報を、前記関連付けられた物体の速さ及び進行方向に基づいて、前記2D画像データがキャプチャされた時点に対応する位置にシフトするステップ、の一つを実施するステップと、
を含む、方法。
【発明の詳細な説明】
【技術分野】
【0001】
ここで説明される主題は、一般にマシンビジョンに関連し、より具体的には、3D(three-dimensional)データを2D(two-dimensional)画像データに登録するためのシステム及び方法に関連する。
【背景技術】
【0002】
ロボット工学の重要な側面は、マシンビジョンである。例えば、自律走行車は、周辺環境(例えば、車道、障害物等)を感知でき、人間の入力なしに又は少なくとも部分的に人間の入力なしに自律的にナビゲーションできることを必要とする。自律走行車のようなロボット工学の応用において、カメラからの2D画像データを同じシーンからのポイントクラウドデータのような3Dデータと結び付けることは、好都合である。これらの2種類のデータを組み合わせることは、空間的に点を調整する登録ステップを必然的に含む。
【発明の概要】
【0003】
3Dデータを2D画像データに登録するためのシステムの一例が、ここで示される。システムは、3Dデータを作り出すための一つ以上のセンサと、2D画像データを作り出すための一つ以上のカメラとを含む。システムは、また、一つ以上のプロセッサと、それと通信可能なように連結されたメモリとを含む。メモリは、一つ以上のプロセッサによって実行されたときに、一つ以上のプロセッサに前記3Dデータ内で3Dセグメントを識別させる指示を含む、3Dデータセグメンテーションモジュールを記憶する。メモリは、また、一つ以上のプロセッサによって実行されたときに、一つ以上のプロセッサに3Dセグメントを物体(object)と関連付けさせる指示を含む、データ関連付けモジュールを記憶する。メモリは、また、一つ以上のプロセッサによって実行されたときに、一つ以上のプロセッサに2D画像データ内のピクセルを分類させる指示を含む、画像セグメンテーションモジュールを記憶する。メモリは、また、一つ以上のプロセッサによって実行されたときに、一つ以上のプロセッサに物体についての速さ及び進行方向を判定させる指示を含む、速度推定モジュールを記憶する。メモリは、また、一つ以上のプロセッサによって実行されたときに、(1)3Dセグメントを、関連付けられた物体の速さ及び進行方向に基づいて、2D画像データがキャプチャされた時点に対応する位置にシフトし、タイムシフトされた3Dセグメントを2D画像空間上に投影すること、又は、(2)3Dセグメントを2D画像空間上に投影し、投影された3Dセグメントを、関連付けられた物体の速さ及び進行方向に基づいて、2D画像データがキャプチャされた時点に対応する位置にシフトすること、のいずれかによって、一つ以上のプロセッサに3Dセグメントを2D画像データ内の分類されたピクセルの一部に登録させる指示を含む、統合モジュールを記憶する。
【0004】
他の実施形態は、3Dデータを2D画像データに登録する方法であって、一つ以上のセンサから3Dデータを受信するステップと、一つ以上のカメラから2D画像データを受信するステップと、3Dデータ内で3Dセグメントを識別するステップと、3Dセグメントを物体と関連付けるステップと、2D画像データ内のピクセルを分類するステップと、物体についての速さ及び進行方向を判定するステップと、(1)3Dセグメントを、関連付けられた物体の速さ及び進行方向に基づいて、2D画像データがキャプチャされた時点に対応する位置にシフトし、タイムシフトされた3Dセグメントを2D画像空間上に投影するステップ、又は、(2)3Dセグメントを2D画像空間上に投影し、投影された3Dセグメントを、関連付けられた物体の速さ及び進行方向に基づいて、2D画像データがキャプチャされた時点に対応する位置にシフトするステップ、によって、3Dセグメントを2D画像データ内の分類されたピクセルの一部に登録するステップと、を含む。
【0005】
他の実施形態は、3Dデータを2D画像データに登録するためのシステムであって、3Dデータを作り出すための一つ以上のセンサと、2D画像データを作り出すための一つ以上のカメラとを含む。システムは、また、一つ以上のプロセッサと、それに通信可能なように連結されたメモリとを含む。メモリは、一つ以上のプロセッサによって実行されたときに、一つ以上のプロセッサに3Dデータ内で、凸包、ボクセル化、非凸包、バウンディングボックス及びメッシュデータの一つを含む3D境界情報を識別させる指示を含む、3Dデータセグメンテーションモジュールを記憶する。メモリは、また、一つ以上のプロセッサによって実行されたときに、一つ以上のプロセッサに2D画像データ内のピクセルからインスタンスセグメンテーションを作り出させる指示を含む画像セグメンテーションモジュールであって、インスタンスセグメンテーションは、2D画像データ内のピクセルの一部を物体の特別なクラスの特定のインスタンスとして識別する、画像セグメンテーションモジュールを記憶する。メモリは、また、一つ以上のプロセッサによって実行されたときに、一つ以上のプロセッサに、3D境界情報を2D画像空間上に投影させ、投影された3D境界情報を作り出させ、投影された3D境界情報をインスタンスセグメンテーションとマッチングさせ、投影された3D境界情報をインスタンスセグメンテーションに登録させる、指示を含む、統合モジュールを記憶する。
【0006】
他の実施形態は、3Dデータを2D画像データに登録する方法であって、一つ以上のセンサから3Dデータを受信するステップと、一つ以上のカメラから2D画像データを受信するステップと、3Dデータ内で3D境界情報を識別するステップと、2D画像データ内のピクセルからインスタンスセグメンテーションを作り出すステップであって、インスタンスセグメンテーションは、2D画像データ内のピクセルの一部を物体の特別なクラスの特定のインスタンスとして識別する、ステップと、3D境界情報を2D画像空間上に投影し、投影された3D境界情報を作り出すステップと、投影された3D境界情報をインスタンスセグメンテーションとマッチングし、投影された3D境界情報をインスタンスセグメンテーションに登録する、ステップと、を含む。
【図面の簡単な説明】
【0007】
明細書の一部に組み込まれ、明細書の一部を構成する添付の図面は、開示のさまざまなシステム、方法及び他の実施形態を説明する。図面内で説明された要素の境界(例えば、箱、箱のグループ又は他の形状)は、境界の一つの実施形態を表現することが理解される。いくつかの実施形態において、一つの要素は、複数の要素として設計されてよく、複数の要素は、一つの要素として設計されてよい。いくつかの実施形態において、他の要素の内部の構成要素として示される要素は、外部の構成要素として実装されてよく、逆もまた同様である。さらに、要素は、一定の縮尺で描かれていないことがある。
【0008】
図1】ここで開示されたシステム及び方法が実装され得る車両の一つの実施形態を説明する。
図2】3D/2D登録システムの一つの実施形態を説明する。
図3】発明の説明に役立つ実施形態に従って、カメラによってキャプチャされ得るカメラ画像の一例を説明する。
図4】発明の説明に役立つ実施形態に従って、図3のカメラ画像によって描かれたものと同じシーンを表現するポイントクラウドの一例を説明する。
図5】発明の説明に役立つ実施形態に従って、図3のカメラ画像に適用されたセマンティックセグメンテーションのプロセスを説明する。
図6】発明の説明に役立つ実施形態に従って、図3のカメラ画像に適用されたインスタンスセグメンテーションのプロセスを説明する。
図7】発明の説明に役立つ実施形態に従って、2D画像空間に投影された歩行者に対する3D境界情報を説明する。
図8A】異なる時点でキャプチャされた2D画像データと3Dポイントクラウドとの間のずれを説明する。
図8B】異なる時点でキャプチャされた2D画像データと3Dデータから導き出された3D境界情報との間のずれを説明する。
図9A】発明の説明に役立つ実施形態に従って、2D画像データと調整された、タイムシフトされた3Dポイントクラウドを説明する。
図9B】発明の説明に役立つ実施形態に従って、2D画像データと調整された、タイムシフトされた3D境界情報を説明する。
図10】発明の説明に役立つ実施形態に従った、3Dデータを2D画像データに登録するための方法のフローチャートである。
図11】発明の他の説明に役立つ実施形態に従った、3Dデータを、セマンティックセグメンテーションを含む2D画像データに登録するための方法のフローチャートである。
図12】発明の他の説明に役立つ実施形態に従った、3Dデータを、セマンティックセグメンテーションを含む2D画像データに登録するための他の方法のフローチャートである。
図13】発明のさらにもう一つの説明に役立つ実施形態に従った、3Dデータを、インスタンスセグメンテーションを含む2D画像データに登録するための方法のフローチャートである。
図14】3D/2D登録システムの他の実施形態を説明する。
図15】発明の他の説明に役立つ実施形態に従った、3Dデータを2D画像データに登録するための方法のフローチャートである。
【発明を実施するための形態】
【0009】
3Dから2Dへの(3D/2D)登録には、少なくとも二つの課題が生じる。第1に、2D画像データと3Dデータは、必ずしも遅れずに同じ瞬間にキャプチャされない。ときに「キャプチャタイミングのずれ」と称される問題は、シーン内の移動する物体のせいで、3D及び2Dデータを一致させることを難しくする。例えば、たった50msのキャプチャ時点の違いの間に、70mphで走行する車両は、約1.56m走行し、典型的な車両は、たった3~5m長である。第2に、2Dセンサ(例えば、カメラ)は、3Dセンサとは異なる有利な点(vantage point)から画像データをキャプチャする。したがって、2D画像データと3Dデータが何とかして正確に同時にキャプチャされたとしても、2種類のセンサデータの間には、依然として視差エラーがある。
【0010】
「キャプチャタイミングのずれ」及び視差の問題を克服するシステム及び方法が示される。一つの実施形態において、3Dデータは、一つ以上のセンサからキャプチャされ、2D画像データは、一つ以上のカメラからキャプチャされ、2D画像データ内のピクセルは、分類される。3Dセグメント(例えば、ポイントクラウドクラスタ又はポイントクラウドクラスタから導き出される3D境界情報)は、物体と関連付けられ、物体の速さ及び進行方向は、測定される。測定された速さ及び進行方向に基づいて、3Dセグメントは、2D画像データがキャプチャされた時点と一致する位置にシフトされ、それによって、「キャプチャタイミングのずれ」問題は、修正される。タイムシフトされた3Dセグメントは、2D空間上に投影され、2D画像データ内の分類されたピクセルの一部に登録され得る。その代わりに、3Dセグメントは、2D画像空間上に投影され、投影された3Dセグメントは、2D画像データがキャプチャされた時点と一致する位置にタイムシフトされ、「キャプチャタイミングのずれ」問題は、修正され得る。
【0011】
いくつかの実施形態において、ポイントクラウドクラスタ又は3D境界情報をタイムシフトして「キャプチャタイミングのずれ」を補償することに加えて、2D画像データ内のピクセルを分類することは、2D画像データのセマンティックセグメンテーションを含む。これは、クラスラベルを2D画像データ(例えば、フレーム)内のそれぞれのピクセルに割り当てることを含む。セマンティックセグメンテーションは、2D画像データへの登録の間に、タイムシフトされ投影された3Dセグメントを、物体(例えば、人物、車両、木等)の特別なクラスに関連付けることに役立ち得る。
【0012】
他の実施形態において、ポイントクラウドクラスタ又は3D境界情報をタイムシフトして「キャプチャタイミングのずれ」を補償することに加えて、2D画像データ内のピクセルを分類することは、2D画像データのインスタンスセグメンテーションを含む。インスタンスセグメンテーションは、クラスラベルを2D画像データ内のそれぞれのピクセルに割り当てることだけでなく、同じクラスに属するピクセルの領域を物体の特別な種類の個々のインスタンス(例えば、5人のグループ内の第3の人物、又は、通りに沿って駐車された車両の列の中の第2の車両)としてラベル付けすることを含む。これらの実施形態において、タイムシフトされ投影された3D境界情報の形状マッチング、及び、2D画像データ内の物体のインスタンスセグメンテーションは、上で検討された視差問題を克服することを援助する。
【0013】
さらに他の実施形態において、上で説明されたインスタンスセグメンテーション及び形状マッチングは、3D境界情報と関連付けられた物体の測定された速さ及び進行方向に基づいて3D境界情報をタイムシフトすることなく、3Dデータの2D画像データへの登録を補助するために使用される。
【0014】
ここで説明される技術は、ロボット工学及びマシンビジョンの分野に広く適用される。発明に関するシステム及び方法が実装され得る環境の一例は、半自律又は全自律走行車である。しかしながら、これは、発明に関する技術が適用され得る唯一の環境ではない。発明に関する技術は、当業者が認識できるさまざまな他の種類のロボットに適用され得る。例示のために、車両の環境における実施形態は、以下に詳細に説明される。
【0015】
図1を参照すると、車両100の一例が説明されている。ここで使用されるように、「車両」は、電動式輸送手段のあらゆる形態である。一つ以上の実装において、車両100は、自動車である。配置(arrangement)は、自動車に関してここで説明されるが、実施形態は、自動車に限定されないと理解される。いくつかの実装において、車両100は、例えば、少なくとも半自律的に動作し得る電動式輸送手段のその他の形態であってよい。
【0016】
車両100は、また、様々な要素を含む。さまざまな実施形態において、車両100が図1に示される全ての要素を有することは、必須でなくてよいことが理解される。車両100は、図1に示されるさまざまな要素のあらゆる組み合わせを有することができる。さらに、車両100は、図1に示されるものへの付加的な要素を有することができる。いくつかの配置において、車両100は、図1に示される要素の一つ以上がなしに実装されてよい。さまざまな要素は、図1の車両100の中に位置するものとして示されるが、これらの要素の一つ以上は、車両100の外部に位置できることが理解される。さらに、示される要素は、大きな距離だけ物理的に離れていてもよい。
【0017】
車両100の可能な要素のいくつかは、図1に示され、後続の図と共に説明される。しかしながら、図1の要素の多くの記述は、この記述を簡潔にする目的のため、図2図15の検討の後に提供される。その上、例示の簡潔さ及び明瞭さのために、適切な場合、参照数字は、対応する又は類似した要素を示すために、異なる図の中で繰り返されることが理解される。加えて、検討は、ここで説明された実施形態の完全な理解を提供するために、多数の特定の詳細の要点を説明する。当業者は、しかしながら、ここで説明された実施形態がこれらの要素のさまざまな組み合わせを使用して実践されてよいことを理解する。
【0018】
車両100は、3Dデータを2D画像データに登録することに関連して、ここで開示されたように方法及び他の機能を実施するために実装された3D/2D登録システム170を含む。この記述において、3Dデータを2D画像データに「登録する」ことは、2種類のデータが組み合わされて使用され得るように、2D画像空間上に投影された3Dデータを同じシーンからの2D画像データと調整することに言及する。車両100は、この組み合わされた3D及び2Dデータを、その自律運転機能を実施することに使用できる(障害物を識別する、等)。
【0019】
図2を参照して、図1の3D/2D登録システム170の一つの実施形態は、さらに説明される。3D/2D登録システム170は、図1の車両100から一つ以上のプロセッサ110を含むものとして示される。その結果、実施形態に応じて、一つ以上のプロセッサ110は、3D/2D登録システム170の一部であってよく、3D/2D登録システム170は、車両100の一つ以上のプロセッサ110から離れた一つ以上のプロセッサを含んでよく、又は、3D/2D登録システム170は、データバス又は他の通信経路を通って一つ以上のプロセッサ110にアクセスしてよい。一つの実施形態において、3D/2D登録システム170は、3Dデータセグメンテーションモジュール220、データ関連付けモジュール230、画像セグメンテーションモジュール240、速度推定モジュール250、及び、統合モジュール260を記憶するメモリ210を含む。メモリ210は、モジュール220、230、240、250及び260を記憶するための、RAM(random-access memory)、ROM(read-only memory)、ハードディスクドライブ、フラッシュメモリ、又は、他の適切なメモリである。モジュール220、230、240、250及び260は、例えば、一つ以上のプロセッサ110によって実行されるとき、一つ以上のプロセッサ110にここで開示されるさまざまな機能を実施させる、コンピュータ読み取り可能な指示である。
【0020】
3D/2D登録システム170は、2D画像データ290を、センサシステム120の一部である一つ以上のカメラ126から受信する。図3は、発明の説明に役立つ実施形態に従って、カメラ126によってキャプチャされ得るカメラ画像の一例を説明する。図3のシーン300は、歩行者310、歩行者320、街灯柱330、壁340、車道350及び歩道360を含む。歩行者310及び320は、この例では、移動している(歩道360に沿って歩いている)と仮定される。
【0021】
3D/2D登録システム170は、3Dデータ280を、センサシステム120内の一つ以上のセンサから受信する。センサは、LIDAR(Light Detection and Ranging)センサ(図1の要素124を参照)、一組のステレオカメラ、RGB-D(Red Green Blue Depth)センサ、レーダーセンサ(図1の要素123を参照)、又は、これらの種類のセンサの一つ以上又は3Dデータをキャプチャできる一つ以上の他のセンサの組み合わせを含むことができる。これらのさまざまな種類の3Dセンサは、当業者がシーンの「ポイントクラウド」として言及するものを作り出す。図4は、発明の説明に役立つ実施形態に従って、図3のカメラ画像によって描かれる同じシーンを表現するポイントクラウドの一例を説明する。
【0022】
図2に示されるように、3Dデータ280及び2D画像データ290は、データベース270に記憶され得る。
【0023】
3Dデータセグメンテーションモジュール220は、一般に、一つ以上のプロセッサ110に上で検討された一つ以上のセンサから受信された3Dデータ内で3Dセグメントを識別させる指示を含む。(この記述は、簡潔にするために、一つの3Dセグメントを単位としてキャスト(cast)されているが、実際には、3Dデータセグメンテーションモジュール220は、並列にポイントクラウド内の複数の3Dセグメントを識別することができる。)いくつかの実施形態において、3Dセグメントは、ポイントクラウドクラスタである。他の実施形態において、3Dセグメントは、ポイントクラウドクラスタから導き出させる3D境界情報である。3D境界情報の例は、凸包、ボクセル化、非凸包、バウンディングボックス及びメッシュデータを含むが、これに限定されるものではない。これらの用語は、マシンビジョン技術の当業者に広く知られている。例えば、凸包は、その点のそれぞれを接続する線分を完全に収容できるのに対して、非凸包は、点を完全に収容できるが、それらの間の全ての線分を必ずしも収容できない。
【0024】
データ関連付けモジュール230は、一般に、一つ以上のプロセッサ110に3Dセグメント(ポイントクラウドクラスタ又は3D境界情報)を物体と関連付けさせる指示を含む。いくつかの実施形態において、物体は、車両100の物体追跡機能によって以前に追跡されているものである。例えば、データ関連付けモジュール230は、ポイントクラウドクラスタを以前に追跡された車両と関連付けるかもしれず、凸包を以前に追跡された歩行者と関連付けるかもしれない。
【0025】
画像セグメンテーションモジュール240は、一般に、一つ以上のプロセッサ110に2D画像データ290内のピクセルを分類させる指示を含む。この分類がどのように行われるかは、実施形態に応じて異なる。
【0026】
いくつかの実施形態において、ピクセルを分類することは、2D画像データ290のセマンティックセグメンテーションを実施することを含む。上で検討されたように、これは、クラスラベルを2D画像データ内の(例えば、フレーム内の)それぞれのピクセルに割り当てることを含む。一つの実施形態において、クラスラベルは、それが割り当てられるクラスに従って、それぞれのピクセルの色を変えることによって示される。例えば、クラス「人物」(例えば、歩行者)が割り当てられたすべてのピクセルは、赤色の特別な色調に着色されるかもしれず、クラス「芝生」が割り当てられたすべてのピクセルは、緑色の特別な色調を割り当てられるかもしれない。以下で検討されるインスタンスセグメンテーションとは異なり、セマンティックセグメンテーションは、シーンの中に特別なクラスの物体の複数のインスタンス(例えば、3台の車両)がある場合、物体の特定のインスタンスにラベルを付けない。図3のシーンがどのようにセマンティックにセグメントされるかの一例は、図5に示される。歩行者310と歩行者320が両方とも同じ色でラベル付けされていることに留意すべきである。
【0027】
他の実施形態において、ピクセルを分類することは、2D画像データ290のインスタンスセグメンテーションを実施することを含む。上で検討されたように、これは、クラスラベルを2D画像データ内のそれぞれのピクセルに割り当てることだけでなく、同じクラスに属するピクセルの領域を、物体の特別な種類の特定のインスタンス(例えば、5人のグループ内の第3の人物、又は、通りに沿って駐車された車両の列の中の第2の車両)としてラベル付けすることを含む。インスタンスセグメンテーションにおいて、物体のクラスの特別なインスタンス(例えば、特定の車両、建物、木、人物等)と関連付けられたピクセルは、それら自身の固有の識別色を受信する。どのようにして図3内のシーンがインスタンスセグメント化されるかの例は、図6に示される。歩行者310及び歩行者320は、それぞれに関連付けられたピクセルの領域が同じ割り当てられたクラス(例えば、「人物」又は「歩行者」)を有するにもかかわらず、異なる色でラベル付けされていることに留意すべきである。インスタンスセグメンテーションを実施するための一つのよく知られたアルゴリズムは、MaskRCNNである。
【0028】
速度推定モジュール250は、データ関連付けモジュール230が3Dセグメントと関連付けた物体について速さ及び進行方向(すなわち、速度)を判定するために、一つ以上のプロセッサ110にセンサシステム120からのセンサデータを分析させる指示を含む。速度を推定するために使用されるセンサデータは、3Dセンサデータ(例えば、LIDAR、レーダー)、2Dセンサデータ(例えば、カメラ126からの画像データ)、又は、この2つの組み合わせを含むことができる。レーダーの一つの長所は、物体の速さを直接的に推定するためにドップラーシフトが使用され得ることである。速度推定モジュール250は、物体の速さ及び進行方向を統合モジュール260に渡す。
【0029】
統合モジュール260は、一般に、登録されたデータ295を作り出すために、一つ以上のプロセッサ110に3Dデータを準備させ2D画像データと結び付けさせる(すなわち、登録する)指示を含む。上で検討されたように、3Dデータセグメンテーションモジュール220は、3Dデータ280内の3Dセグメントを識別し、データ関連付けモジュール230は、その3Dセグメントを物体と関連付ける。いくつかの実施形態において、3Dセグメントは、ポイントクラウドクラスタである。ポイントクラウドクラスタの例は、図4で説明される-それらは、歩行者310及び320、街灯柱330、壁340等と関連付けられている。他の実施形態において、3Dセグメントは、ポイントクラウドクラスタから導き出される3D境界情報である。2D画像空間上に投影された、そのような3D境界情報の単純な例は、図7に説明される。図7において、凸包は、図4の歩行者310に対応するポイントクラウドクラスタのために規定されており、その凸包は、投影された3D境界情報710を作り出すために2D画像空間上に投影されている。
【0030】
上で検討されたように、3Dデータを2D画像データに登録することにおける一つの課題は、3D及び2Dデータは、通常は、同じ瞬間にキャプチャされていない(すなわち、3D及2Dセンサは、同期していない)ことであり、2種類のデータは、同じ有利な点からキャプチャされておらず、視差エラーをもたらす。「キャプチャタイミングのずれ」問題は、ポイントクラウドクラスタ及び3D境界情報の場合について、それぞれ、図8A及び図8Bで説明される。図8Aにおいて、歩行者310の2D画像の輪郭810と、対応するポイントクラウドクラスタ820に、目に見えるずれがある。これは、3D及び2Dデータが異なる時点でキャプチャされたことが原因である。図8Bにおいて、歩行者310の2D画像の輪郭810と、対応する投影された3D境界情報830に、目に見えるずれが同様にある。この「キャプチャタイミングのずれ」問題を克服するための技術は、下でより詳細に検討される。
【0031】
一つの実施形態において、統合モジュール260は、3Dセグメントを、関連付けられた物体の速さ及び進行方向に基づいて、同じシーンの2D画像データがキャプチャされた時点に対応する位置にシフトすることにより、上で検討された3Dセグメントを2D画像データ内の分類されたピクセルの一部に登録する。統合モジュール260は、次に、このタイムシフトされた3Dセグメントを2D画像空間上に投影する。
【0032】
他の実施形態において、いま説明されたステップは、逆の順番で実施される。すなわち、統合モジュール260は、3Dセグメントを2D画像空間上に投影し、投影された3Dセグメントを、関連付けられた物体の速さ及び進行方向に基づいて、同じシーンの2D画像データがキャプチャされた時点に対応する位置にシフトすることにより、3Dセグメントを2D画像データ内の分類されたピクセルの一部に登録する。
【0033】
移動している物体の速度の責任をとる(account)ためのタイムシフトの結果は、ポイントクラウドクラスタ及び3D境界情報について、図9A及び図9Bでそれぞれ説明される。図9Aにおいて、歩行者310の2D画像の輪郭810は、いま、対応するタイムシフトされ投影されたポイントクラウドクラスタ910と正確に調整される。同様に、図9Bにおいて、歩行者310の2D画像の輪郭810は、いま、対応するタイムシフトされ投影された3D境界情報920と正確に調整される。さらに、この記述を簡潔にするために、一つの物体(すなわち、歩行者310)は、図8A図8B図9A及び図9Bの例示のために分離されている。実際には、シーン内の複数の物体は、ここで説明された技術を複数の物体に一般化することによって、実質的に同時に登録され得る。
【0034】
画像セグメンテーションモジュール240が2D画像データ290のセマンティックセグメンテーションを実施する実施形態において、タイムシフトされ投影されたポイントクラウドクラスタは、異なるクラス(例えば、図3のシーン内の「人物」及び「歩道」)からの2D画像ピクセルと重なる点を有するかもしれない。そのような状況を解消するために、一つの実施形態において、統合モジュール260は、タイムシフトされ投影されたポイントクラウドクラスタ内の点と重なる複数のクラスのそれぞれの中のピクセルの数を数え、タイムシフトされ投影されたポイントクラウドクラスタは、重なっているピクセルの最大数を有するクラスと関連付けられる。例えば、図3のシーンにおいて、歩行者310に対応するタイムシフトされ投影されたポイントクラウドクラスタ910内の点と重なる、割り当てられたクラス「人物」を有する75個のピクセルがあり、割り当てられたクラス「歩道」を有する15個のピクセルがあるかもしれない。75は15より大きいので、登録の間に、ポイントクラウドクラスタの点は、クラス「人物」と関連付けられ得る。これは、「多数決」アルゴリズムを説明する。他の実施形態において、確率的モデルは、重なっているピクセルを有する複数のクラスからのピクセルの割合に基づいて採用され得る。さらに他の実施形態において、ピクセルを数えた結果又は確率的モデルの予測の結果は、さらなる処理及び意思判定のために、車両100の他の機能モジュールに転送される。
【0035】
画像セグメンテーションモジュール240が2D画像データのセマンティックセグメンテーションを実施し、3Dデータセグメンテーションモジュール220が3D境界情報(例えば、凸包)を作り出す実施形態において、タイムシフトされ投影された3D境界情報は、その境界内に、異なるクラス(例えば、図3のシーン内の「人物」及び「歩道」)からの2D画像ピクセルを有するかもしれない。そのような状況を解消するために、一つの実施形態において、統合モジュール260は、タイムシフトされ投影された3D境界情報内にあるピクセルを有する複数のクラスのそれぞれの中のピクセルの数を数え、タイムシフトされ投影された3D境界情報は、3D境界情報内のピクセルの最大数を有するクラスと関連付けられる。例えば、図3のシーンにおいて、歩行者310に対応するタイムシフトされ投影された3D境界情報920の内側に、割り当てられたクラス「人物」を有する83個のピクセルがあり、割り当てられたクラス「歩道」を有する19個のピクセルがあるかもしれない。83は19より大きいので、タイムシフトされ投影された3D境界情報920は、登録の間に、クラス「人物」と関連付けられ得る。これは、再び「多数決」アルゴリズムを説明する。他の実施形態において、確率的モデルは、タイムシフトされ投影された3D境界情報920内にあるピクセルを有する複数のクラスからのピクセルの割合に基づいて採用され得る。さらに他の実施形態において、ピクセルを数えた結果又は確率的モデルの予測の結果は、さらなる処理及び意思判定のために、車両100の他の機能モジュールに転送される。
【0036】
画像セグメンテーションモジュール240が2D画像データ290のインスタンスセグメンテーションを実施する実施形態において、統合モジュール260は、タイムシフトされ投影された3D境界情報920の形状を、物体の特別なクラスの特定のインスタンス(例えば、「第1の人物」、「第4の木」、「第5の車両」)に対応したインスタンスセグメンテーションとマッチングする。形状マッチングのための技術は、画像処理及びマシンビジョン技術の当業者にとってよく知られている。統合モジュール260は、3D/2D登録の実施においてあらゆる適切な形状マッチングアルゴリズムを採用することができる。例えば、一つのアプローチは、最も近い(最近傍の)インスタンスセグメンテーションを3D境界情報と関連付けることである。インスタンスセグメンテーションを採用しているこの実施形態は、3Dデータ280と2D画像データ290との間の視差エラーを克服することに役立つことができる。図14及び図15に関連して下で検討される他の実施形態において、インスタンスセグメンテーション及び形状マッチングは、速度補償なしで採用される(2D画像データ290内の分類されたピクセルと関連付けられた物体の測定された速さ及び進行方向に基づいてタイムシフトする)。
【0037】
図10は、発明の説明に役立つ実施形態に従った、3Dデータを2D画像データに登録するための方法1000のフローチャートである。ブロック1010において、3D/2D登録システム170は、センサシステム120内の一つ以上のセンサから3Dデータ280を受信する。センサは、LIDARセンサ、一組のステレオカメラ、RGB-Dセンサ、レーダーセンサ、又は、一つ以上のこれらの種類のセンサ又は3Dデータをキャプチャできる一つ以上の他のセンサの組み合わせを含むことができる。ブロック1020において、3D/2D登録システム170は、センサシステム120の一部である一つ以上のカメラ126から画像データ290を受信する。
【0038】
ブロック1030において、3Dデータセグメンテーションモジュール220は、3Dデータ内の3Dセグメントを識別する。いくつかの実施形態において、3Dセグメントは、ポイントクラウドクラスタである。他の実施形態において、3Dセグメントは、ポイントクラウドクラスタから導き出される3D境界情報である。3D境界情報の例は、凸包、ボクセル化、非凸包、バウンディングボックス及びメッシュデータを含むが、これに限定されるものではない。ブロック1040において、データ関連付けモジュール230は、3Dセグメントを物体と関連付ける。いくつかの実施形態において、物体は、車両100の物体追跡機能によって以前に追跡されたものである。例えば、データ関連付けモジュール230は、ポイントクラウドクラスタを以前に追跡された車両と関連付けるかもしれず、凸包を以前に追跡された歩行者と関連付けるかもしれない。
【0039】
ブロック1050において、画像セグメンテーションモジュール240は、2D画像データ290内のピクセルを分類する。実施形態に応じて、これは、図5及び図6のそれぞれに関連して上で検討されたように、2D画像データ290のセマンティックセグメンテーションを実施すること、又は、2D画像データ290のインスタンスセグメンテーションを実施することを含むことができる。
【0040】
ブロック1060において、速度推定モジュール250は、3Dセグメントと関連付けられた物体の速さ及び進行方向(すなわち、速度)を判定する。速度を推定するために使用されるセンサデータは、3Dセンサデータ(例えば、LIDAR、レーダー)、2Dセンサデータ(例えば、カメラ126からの画像データ)又はこの二つの組み合わせを含むことができる。速度推定モジュール250は、物体の速さ及び進行方向を、統合モジュール260に渡す。
【0041】
ブロック1070において、統合モジュール260は、(1)3Dセグメントを、関連付けられた物体の速さ及び進行方向に基づいて、2D画像データ290がキャプチャされた時点に対応する位置にシフトし、タイムシフトされた3Dセグメントを2D画像空間上に投影すること、又は、(2)3Dセグメントを2D画像空間上に投影し、投影された3Dセグメントを、関連付けられた物体の速さ及び進行方向に基づいて、2D画像データがキャプチャされた時点に対応する位置にシフトすることのいずれかによって、3Dセグメントを2D画像データ290内の分類されたピクセルの一部に登録する。上で検討されたように、登録されたデータ295は、データベース270内に記憶され得る。
【0042】
図11は、発明の他の説明に役立つ実施形態に従った、3Dデータを、セマンティックセグメンテーションを含む2D画像データ1100に登録するための方法のフローチャートである。この方法は、ブロック1010及び1020における方法1000と同じ方法で始まる。ブロック1110において、3Dデータセグメンテーションモジュール220は、3Dデータ280内のポイントクラウドクラスタを識別する。ブロック1120において、データ関連付けモジュール230は、上で検討されたように、このポイントクラウドクラスタを物体と関連付ける。ブロック1130において、画像セグメンテーションモジュール240は、図5に関連して上で説明されたように、2D画像データ290のセマンティックセグメンテーションを実施する。ブロック1060において、方法1000におけるように、速度推定モジュール250は、3Dセグメントと関連付けられた物体の速さ及び進行方向(すなわち、速度)を判定する。
【0043】
ブロック1140において、統合モジュール260は、(1)ポイントクラウドクラスタを、関連付けられた物体の速さ及び進行方向に基づいて、2D画像データ290がキャプチャされた時点に対応する位置にシフトし、タイムシフトされたポイントクラウドクラスタを2D画像空間上に投影する、又は、(2)ポイントクラウドクラスタを2D画像空間上に投影し、投影されたポイントクラウドクラスタを、関連付けられた物体の速さ及び進行方向に基づいて、2D画像データがキャプチャされた時点に対応する位置にシフトする。
【0044】
ブロック1150において、統合モジュール260は、上で検討されたように、タイムシフトされ投影されたポイントクラウドクラスタ内の点と重なる複数のクラスのそれぞれの中のピクセルの数を数える。ブロック1160において、統合モジュール260は、タイムシフトされ投影されたポイントクラウドクラスタを、タイムシフトされ投影されたポイントクラウドクラスタ内の点と重なる最大数のピクセルを有する、複数のクラスの中のクラスと関連付ける。ブロック1140、1150及び1160における前述の動作を実施することによって、統合モジュール260は、3Dデータを対応する2Dデータに登録し、登録されたデータ295を作り出す。
【0045】
図12は、発明の他の説明に役立つ実施形態に従った、3Dデータを、セマンティックセグメンテーションを含む2D画像データに登録するための他の方法1200のフローチャートである。この方法は、ブロック1010及び1020における方法1000と同じ方法で始まる。ブロック1210において、3Dデータセグメンテーションモジュール220は、3Dデータ280内の3D境界情報を識別する。3D境界情報の例は、凸包、ボクセル化、非凸包、バウンディングボックス及びメッシュデータを含むが、これに限定されるものではない。ブロック1220において、データ関連付けモジュール230は、3D境界情報を物体と関連付ける。ブロック1130において、方法1100におけるように、画像セグメンテーションモジュール240は、図5に関連して上で説明されたように、2D画像データ290のセマンティックセグメンテーションを実施する。ブロック1060において、方法1000におけるように、速度推定モジュール250は、3D境界情報と関連付けられた物体の速さ及び進行方向(すなわち、速度)を判定する。
【0046】
ブロック1230において、統合モジュール260は、(1)3D境界情報を、関連付けられた物体の速さ及び進行方向に基づいて、2D画像データ290がキャプチャされた時点に対応する位置にシフトし、タイムシフトされた3D境界情報を2D画像空間上に投影する、又は、(2)3D境界情報を2D画像空間上に投影し、投影された3D境界情報を、関連付けられた物体の速さ及び進行方向に基づいて、2D画像データがキャプチャされた時点に対応する位置にシフトする。
【0047】
ブロック1240において、統合モジュール260は、上で検討されたように、タイムシフトされ投影された3D境界情報の境界内にある複数のクラスのそれぞれの中のピクセルの数を数える。ブロック1250において、統合モジュール260は、タイムシフトされ投影された3D境界情報を、タイムシフトされ投影された3D境界情報内にある最大数のピクセルを有する、複数のクラスの中のクラスと関連付ける。ブロック1230、1240及び1250における前述の動作を実施することによって、統合モジュール260は、3Dデータを対応する2Dデータに登録し、登録されたデータ295を作り出す。
【0048】
図13は、発明のさらにもう一つの説明に役立つ実施形態に従った、3Dデータを、インスタンスセグメンテーションを含む2D画像データ1300に登録するための方法のフローチャートである。この方法は、ブロック1010及び1020における方法1000と同じ方法で始まり、ブロック1210及び1220において実施される動作は、図12に関連して上で検討された方法1200におけるものと同じである。ブロック1310において、画像セグメンテーションモジュール240は、図6に関連して検討されたように、2D画像データ290からインスタンスセグメンテーションを作り出す。ブロック1060において、方法1000におけるように、速度推定モジュール250は、3D境界情報と関連付けられた物体の速さ及び進行方向(すなわち、速度)を判定する。
【0049】
ブロック1320において、統合モジュール260は、(1)3D境界情報を、関連付けられた物体の速さ及び進行方向に基づいて、2D画像データ290がキャプチャされた時点に対応する位置にシフトし、タイムシフトされた3D境界情報を2D画像空間上に投影する、又は、(2)3D境界情報を2D画像空間上に投影し、投影された3D境界情報を、関連付けられた物体の速さ及び進行方向に基づいて、2D画像データがキャプチャされた時点に対応する位置にシフトする。ブロック1330において、統合モジュール260は、タイムシフトされ投影された3D境界情報をインスタンスセグメンテーションとマッチングし、登録されたデータ295を作り出す。タイムシフトされ投影された3D境界情報をインスタンスセグメンテーションとマッチングすることは、上で検討されたように、当業者によく知られたさまざまな形状マッチングアルゴリズムのいずれかを使用することによって達成され得る。
【0050】
図14は、3D/2D登録システム170の異なる実施形態を説明する。「キャプチャタイミングのずれ」を修正するために3Dセグメントと関連付けられた物体の測定された速度に基づいてタイムシフトすることは、この特別な実施形態において実施されないため、この実施形態は、データ関連付けモジュール230又は速度推定モジュール250を含まない。代わりに、この実施形態は、3D境界情報(例えば、凸包)をインスタンスセグメント化された2D画像データとマッチングする。
【0051】
図14の実施形態において、3D/2D登録システム170は、センサシステム120の一部である一つ以上のカメラ126から2D画像データ290を受信し、センサシステム120内の一つ以上のセンサから3Dデータ280を受信する。センサは、LIDAR(Light Detection and Ranging)センサ(図1の要素124を参照)、一組のステレオカメラ、RGB-D(Red Green Blue Depth)センサ、レーダーセンサ(図1の要素123を参照)、又は、これらの種類のセンサ又は3Dデータをキャプチャできる他のセンサの一つ以上の組み合わせを含むことができる。
【0052】
図14の実施形態において、3Dデータセグメンテーションモジュール220は、上で検討されたように、ポイントクラウドクラスタから導き出される3Dデータ280内の3D境界情報を識別する。3D境界情報の例は、凸包、ボクセル化、非凸包、バウンディングボックス及びメッシュデータを含むが、これに限定されるものではない。
【0053】
この実施形態において、画像セグメンテーションモジュール240は、2D画像データ290のインスタンスセグメンテーションを実施する。図2に関連した実施形態に関連して上で検討されたように(特に、図6の検討を参照)、これは、クラスラベルを2D画像データ内のそれぞれのピクセルに割り当てることを含むだけでなく、同じクラスに属するピクセルの領域を、物体の特別な種類の特定のインスタンス(例えば、シーンにおける5人のグループ内の第3の人物、又は、通りに沿って駐車された車両の列の中の第2の車両)としてラベル付けすることを含む。インスタンスセグメンテーションにおいて、物体のクラスの特別なインスタンス(例えば、特定の車両、建物、木、人物等)と関連付けられたピクセルは、それら自身の固有の識別色を受信する。インスタンスセグメンテーションを実施するための一つのよく知られたアルゴリズムは、MaskRCNNである。
【0054】
図14の実施形態において、統合モジュール260は、3D境界情報を2D画像空間上に投影し、投影された3D境界情報の形状を、物体の特別なクラスの特定のインスタンス(例えば、「第1の人物」、「第4の木」、「第5の車両」)に対応したインスタンスセグメンテーションとマッチングする。形状マッチングのための技術は、画像処理及びマシンビジョン技術の当業者にとってよく知られている。そのような技術は、例えば、3D境界情報に対して最も近い(最近傍の)インスタンスセグメンテーションを探すことを含むことができる。統合モジュール260は、3D/2D登録の実施においてあらゆる適切な形状マッチングアルゴリズムを採用することができる。図14の実施形態によって作り出された最終結果は、登録されたデータ295である。
【0055】
図15は、発明の他の説明に役立つ実施形態に従った、3Dデータを2D画像データに登録するための方法1500のフローチャートである。方法1500は、図14に描かれた3D/2D登録システム170の実施形態に対応する。ブロック1010において、(図14内の)3D/2D登録システム170は、センサシステム120内の一つ以上のセンサから3Dデータ280を受信する。センサは、LIDARセンサ、一組のステレオカメラ、RGB-Dセンサ、レーダーセンサ、又は、これらの種類のセンサ又は3Dデータをキャプチャできる他のセンサの一つ以上の組み合わせを含むことができる。ブロック1020において、(図14内の)3D/2D登録システム170は、センサシステム120の一部である一つ以上のカメラ126から画像データ290を受信する。ブロック1210において、3Dデータセグメンテーションモジュール220は、3Dデータ280内の3D境界情報を識別する。3D境界情報の例は、凸包、ボクセル化、非凸包、バウンディングボックス及びメッシュデータを含むが、これに限定されるものではない。ブロック1310において、画像セグメンテーションモジュール240は、図6に関連して上で検討されたように、2D画像データ290からインスタンスセグメンテーションを作り出す。
【0056】
ブロック1510において、統合モジュール260は、3D境界情報を2D画像空間上に投影する。ブロック1520において、統合モジュール260は、投影された3D境界情報をインスタンスセグメンテーションとマッチングして、登録されたデータ295を作り出す。
【0057】
図1は、いま、ここで開示されたシステム及び方法が動作できる車両環境の例として、詳細に検討される。ある場合には、車両100は、自律モード、一つ以上の半自律運転可能モード及び/又は手動モードの間で選択的に切り換わるように構成される。手動モードへの移行がいま知られている又は後に開発される適切な方法で実装され得るとき、そのような切換は、また、ハンドオーバーと称される。「手動モード」は、ナビゲーションの全て又は大部分、及び/又は、車両の操作が、ユーザ(例えば、人間の運転手/操作者)から受信した入力に従って実施されることを意味する。
【0058】
一つ以上の実施形態において、車両100は、自律走行車である。ここで使用されるように、「自律走行車」は、自律モードで動作する車両に言及する。「自律モード」は、人間の運転手/操作者からの入力を最小にして又は無くして車両100を制御するために一つ以上のコンピュータシステムを使用して、走行ルートに沿って車両100をナビゲーション及び/又は操作することに言及する。一つ以上の実施形態において、車両100は、非常に自動化されている、又は、完全に自動化されている。一つの実施形態において、車両100は、一つ以上のコンピュータシステムが走行ルートに沿った車両のナビゲーション及び/又は操作の一部を実施する一つ以上の半自律運転可能なモードで構成され、車両の操作者(すなわち、運転手)は、走行ルートに沿った車両100のナビゲーション及び/又は操作の一部を実施するために車両に入力を提供する。したがって、一つ以上の実施形態において、車両100は、自律性の特別な規定されたレベルに従って自律的に動作する。例えば、車両100は、SAE(Society of Automotive Engineers)の自動化された車両分類0~5に従って動作することができる。一つの実施形態において、車両100は、SAEレベル2に従って動作する。SAEレベル2は、操作者の入力なしにブレーキ、加速及びステアリングによって車両100を制御する自律運転モジュール160を提供するが、運転者/操作者は、運転を監視し、油断してはならず、自律モジュール160が適切に応答することに失敗した場合、又は、そうでなければ車両100を十分に制御できない場合、車両100の制御に介入する準備ができていなければならない。
【0059】
車両100は、一つ以上のプロセッサ110を含むことができる。一つ以上の配置において、プロセッサ110は、車両100のメインプロセッサであり得る。例えば、プロセッサ110は、ECU(electronic control unit)であり得る。車両100は、一つ以上の種類のデータを記憶するために一つ以上のデータストア115を含むことができる。データストア115は、揮発性の及び/又は不揮発性のメモリを含むことができる。適切なデータストア115の例は、RAM(Random Access Memory)、フラッシュメモリ、ROM(Read Only Memory)、PROM(Programmable Read-Only Memory)、EPROM(Erasable Programmable Read-Only Memory)、EEPROM(Electrically Erasable Programmable Read-Only Memory)、レジスタ、磁気ディスク、光ディスク、ハードドライブ又はその他の適切な記憶媒体、又は、それらのあらゆる組み合わせを含む。データストア115は、プロセッサ110の構成要素であり得る、又は、データストア115は、プロセッサ110による使用のため、プロセッサ110に動作可能に接続され得る。この記述を通じて使用されている、「動作可能に接続される」という用語は、直接的な接続又は間接的な接続を含むことができ、直接的な物理的接触のない接続を含む。
【0060】
一つ以上の配置において、一つ以上のデータストア115は、地図データ116を含むことができる。地図データ116は、一つ以上の地理的領域の地図を含むことができる。ある場合には、地図データ116は、一つ以上の地理的領域内の車道、交通制御施設、路面標識、建造物、地物(features)及び/又はランドマークに関する情報又はデータを含むことができる。地図データ116は、あらゆる適切な形態であり得る。ある場合には、地図データ116は、地域の空中の景色を含むことができる。ある場合には、地図データ116は、360度の地上の景色を含む、地域の地上の景色を含むことができる。地図データ116は、地図データ116に含まれる一つ以上の項目に対して、及び/又は、地図データ116に含まれる他の項目に対して、測定結果、次元(dimension)、距離及び/又は情報を含むことができる。地図データ116は、車道の形状に関する情報を伴ったデジタル地図を含むことができる。地図データ116は、高い品質及び/又は非常に詳細であり得る。
【0061】
一つ以上の配置において、地図データ116は、一つ以上の地形図117を含むことができる。地形図117は、一つ以上の地理的領域の土地、地形、車道、水面(surface)及び/又は他の特徴に関する情報を含むことができる。地形図117は、一つ以上の地理的領域内の標高データを含むことができる。地図データ116は、高い品質及び/又は非常に詳細であり得る。地形図117は、舗装された車道、未舗装の車道、地所(land)及び地表を規定する他のものを含むことができる一つ以上の地表を規定することができる。
【0062】
一つ以上の配置において、地図データ116は、一つ以上の固定障害物地図118を含むことができる。固定障害物地図118は、一つ以上の地理的領域内に位置する一つ以上の固定障害物に関する情報を含むことができる。「固定障害物」は、ある期間にわたってその位置が変わらない又は実質的に変わらない、及び/又は、ある期間にわたってその大きさが変わらない又は実質的に変わらない、物理的な物体である。固定障害物の例は、木、建物、縁石、フェンス、ガードレール、中央分離帯(median)、電柱(utility pole)、像、記念碑、標識、ベンチ、建具(furniture)、郵便受け、大きな岩、丘を含む。固定障害物は、地表面上に広がる物体であり得る。固定障害物地図118に含まれる一つ以上の固定障害物は、場所データ、大きさデータ、次元データ、材料データ及び/又はそれと関連付けられた他のデータを有することができる。固定障害物地図118は、一つ以上の固定障害物に対する測定結果、次元、距離及び/又は情報を含むことができる。固定障害物地図118は、高い品質及び/又は非常に詳細であり得る。固定障害物地図118は、地図が作られた地域内の変更を反映させるために更新され得る。
【0063】
一つ以上のデータストア115は、センサデータ119を含み得る。この文脈において、「センサデータ」は、車両100が備えているセンサに関するあらゆる情報を意味し、そのようなセンサに関する能力及び他の情報を含む。下に説明されるように、車両100は、センサシステム120を含むことができる。センサデータ119は、センサシステム120の一つ以上のセンサに関連することができる。一例として、一つ以上の配置において、センサデータ119は、センサシステム120の一つ以上のLIDARセンサ124に関する情報を含むことができる。
【0064】
ある場合には、地図データ116及び/又はセンサデータ119の少なくとも一部は、車両100に搭載されて位置する一つ以上のデータストア115に位置することができる。その代わりに、又は、それに加えて、地図データ116及び/又はセンサデータ119の少なくとも一部は、車両100から遠く離れて位置する一つ以上のデータストア115に位置することができる。
【0065】
上で言及されたように、車両100は、センサシステム120を含むことができる。センサシステム120は、一つ以上のセンサを含むことができる。「センサ」は、何かを検出及び/又は検知できるあらゆる機器、構成要素及び/又はシステムを意味する。一つ以上のセンサは、リアルタイムで検出及び/又は感知するように構成され得る。ここで使用されているように、「リアルタイム」という用語は、ユーザ又はシステムが特別なプロセス又はなされる決定に対して十分即時に感知する、又は、プロセッサがある外部のプロセスに遅れずについていくことを可能とする、処理の応答性のレベルを意味する。
【0066】
センサシステム120が複数のセンサを含む配置において、センサは、互いに独立して機能することができる。その代わりに、センサの二つ以上は、互いに組み合わせて働くことができる。そのような場合において、二つ以上のセンサは、センサネットワークを形成することができる。センサシステム120及び/又は一つ以上のセンサは、プロセッサ110、データストア115及び/又は車両100の他の要素(図1に示される要素のいずれかを含む)と動作可能に接続され得る。センサシステム120は、車両100の外部環境(例えば、すぐ近くの車両)の少なくとも一部のデータを取得することができる。
【0067】
センサシステム120は、あらゆる適切な種類のセンサを含むことができる。センサの異なる種類のさまざまな例は、ここで説明される。しかしながら、実施形態は、説明された特別なセンサに限定されないことが理解される。センサシステム120は、一つ以上の車両センサ121を含むことができる。車両センサ121は、車両100自身に関する情報を検出、判定及び/又は感知することができる。一つ以上の配置において、車両センサ121は、例えば、慣性の加速(inertial acceleration)に基づくように、車両100の位置及び方向の変化を検出及び/又は感知するように構成され得る。一つ以上の配置において、車両センサ121は、一つ以上の加速度計、一つ以上のジャイロスコープ、IMU(inertial measurement unit)、推測航法システム、GNSS(global navigation satellite system)、GPS(global positioning system)、ナビゲーションシステム147及び/又は他の適切なセンサを含むことができる。車両センサ121は、車両100の一つ以上の特性を検出及び/又は感知するように構成され得る。一つ以上の配置において、車両センサ121は、車両100の現在の速さを判定するためのスピードメーターを含むことができる。
【0068】
その代わりに、又は、それに加えて、センサシステム120は、運転環境データを取得及び/又は感知するように構成される一つ以上の環境センサ122を含むことができる。「運転環境データ」は、自律走行車が位置する外部環境、又は、その一つ以上の部分に関するデータ又は情報を含む。例えば、一つ以上の環境センサ122は、車両100の外部環境の少なくとも一部の中の障害物、及び/又は、そのような障害物に関する情報/データを、検出、定量化及び/又は感知するように構成され得る。そのような障害物は、動かない物体及び/又は動的な物体であってよい。一つ以上の環境センサ122は、例えば、レーンマーク、標識、信号機、交通標識、車線境界線、横断歩道、縁石、接近した車両100、オフロード物体等のような、車両100の外部環境内の他のものを検知、測定、定量化及び/又は感知するように構成され得る。
【0069】
センサシステム120のセンサのさまざまな例は、ここで説明される。センサの例は、一つ以上の環境センサ122、及び/又は、一つ以上の車両センサ121の一部であってよい。さらに、センサシステム120は、車両100の運転手/操作者に関連する様子を追跡する又はそうでなければ監視するように機能する操作者センサを含むことができる。しかしながら、実施形態は、説明された特別なセンサに限定されないことが理解される。
【0070】
例として、一つ以上の配置において、センサシステム120は、一つ以上のレーダーセンサ123、一つ以上のLIDARセンサ124、一つ以上のソナーセンサ125、及び/又は、一つ以上のカメラ126を含むことができる。一つ以上の配置において、一つ以上のカメラ126は、HDR(high dynamic range)カメラ、IR(infrared)カメラなどであり得る。一つの実施形態において、カメラ126は、操作者/運転手の注視、操作者/運転手の視標追跡などを判定するために、操作者/運転手に視標追跡を実施するための、車両の客室内に配置された一つ以上のカメラを含む。
【0071】
車両100は、入力システム130を含むことができる。「入力システム」は、情報/データを機械に入力可能にするあらゆる機器、構成要素、システム、要素、配置又はそれらのグループを含む。入力システム130は、車両の乗客(例えば、運転手又は乗客)から入力を受信することができる。車両100は、出力システム135を含むことができる。「出力システム」は、情報/データを車両の乗客(例えば、人物、車両の乗客等)に示すことができるあらゆる機器、構成要素、配置又はそれらのグループを含む。
【0072】
車両100は、一つ以上の車両システム140を含むことができる。一つ以上の車両システム140のさまざまな例は、図1に示されている。しかしながら、車両100は、より多くの、より少ない又は異なる車両システムを含むことができる。特別な車両システムが別々に規定されるが、システム又はその一部のそれぞれ又はいずれかは、そうでなければ、車両100内のハードウェア及び/又はソフトウェアによって組み合わされ又は分離されてよいことが理解されるだろう。車両100は、推進システム141、ブレーキシステム142、ステアリングシステム143、スロットルシステム144、トランスミッションシステム145、シグナリングシステム146及び/又はナビゲーションシステム147を含むことができる。これらのシステムのそれぞれは、いま知られている又は後に開発される一つ以上の機器、構成要素及び/又はそれらの組み合わせを含むことができる。
【0073】
ナビゲーションシステム147は、車両100の地理的な場所を判定する、及び/又は、車両100のための走行ルートを判定するように構成された、いま知られている又は後に開発される一つ以上の機器、センサ、アプリケーション及び/又はそれらの組み合わせを含むことができる。ナビゲーションシステム147は、車両100についての走行ルートを判定する一つ以上のマッピングアプリケーションを含むことができる。ナビゲーションシステム147は、グローバルポジショニングシステム、ローカルポジショニングシステム又はジオロケーションシステムを含むことができる。
【0074】
プロセッサ110、3D/2D登録システム170及び/又は自律運転モジュール160は、さまざまな車両システム140及び/又はそれらの個々の構成要素と通信するために、動作可能に接続され得る。例えば、図1に戻って、プロセッサ110及び/又は自律運転モジュール160は、車両100の動き、速さ、操作、進行方向、向き等を制御するために、さまざまな車両システム140から情報を送信及び/又は受信するための通信をすることができる。プロセッサ110、3D/2D登録システム170及び/又は自律運転モジュール160は、これらの車両システム140のいくつか又は全てを制御してよく、したがって、部分的に又は完全に自律してよい。
【0075】
プロセッサ110、3D/2D登録システム170及び/又は自律運転モジュール160は、さまざまな車両システム140及び/又はそれらの個々の構成要素と通信するために動作可能に接続され得る。例えば、図1に戻って、プロセッサ110、3D/2D登録システム170及び/又は自律運転モジュール160は、車両100の動き、速さ、操作、進行方向、向き等を制御するために、さまざまな車両システム140から情報を送信及び/又は受信するための通信をすることができる。プロセッサ110、3D/2D登録システム170及び/又は自律運転モジュール160は、これらの車両システム140のいくつか又は全てを制御してよい。
【0076】
プロセッサ110、3D/2D登録システム170及び/又は自律運転モジュール160は、車両システム140の一つ以上及び/又はそれらの構成要素を制御することによって、車両100のナビゲーション及び/又は操作を制御するように動作可能であってよい。例えば、自律モードで動作するとき、プロセッサ110、3D/2D登録システム170及び/又は自律運転モジュール160は、車両100の向き及び/又は速さを制御することができる。プロセッサ110、3D/2D登録システム170及び/又は自律運転モジュール160は、車両100に加速(例えば、エンジンに提供される燃料の供給を増加させることによって)、減速(例えば、エンジンへの燃料の供給を減少させる、及び/又は、ブレーキをかけることによって)、及び/又は、向きを変更(例えば、2つの前輪の向きを変えることによって)させることができる。ここで使用されるように、「させる(cause)」又は「させること(causing)」は、直接的な又は間接的な方法によって、発生するアクション又はイベントを作る、強制する、力ずくでさせる、指図する、命令する、指示する及び/又は可能にする、又は、少なくともそのようなイベント又はアクションが発生してよい状態にすることを意味する。
【0077】
車両100は、一つ以上のアクチュエータ150を含むことができる。アクチュエータ150は、プロセッサ110及び/又は自律運転モジュール160から受信した信号又はその他の入力に応答するための、車両システム140の一つ以上又はその構成要素を修正、調整及び/又は変更するように動作可能なあらゆる要素又は要素の組み合わせであり得る。あらゆる適切なアクチュエータは、使用され得る。例えば、一つ以上のアクチュエータ150は、いくつか可能な例を挙げると、モーター、空気圧式アクチュエータ、油圧ピストン、リレー、ソレノイド及び/又は圧電アクチュエータを含むことができる。
【0078】
車両100は、その少なくともいくつかがここで説明された一つ以上のモジュールを含むことができる。モジュールは、プロセッサ110によって実行されるときに、ここで説明されたさまざまなプロセスの一つ以上を実装するコンピュータ読み取り可能なプログラムコードとして実装され得る。モジュールの一つ以上は、プロセッサ110の構成要素であり得る、又は、モジュールの一つ以上は、プロセッサ110が動作可能に接続されている他の処理システムで実行され得る、及び/又は、他の処理システム内で分散され得る。モジュールは、一つ以上のプロセッサ110によって実行可能な指示(例えば、プログラムロジック)を含むことができる。その代わりに、又はそれに加えて、一つ以上のデータストア115は、そのような指示を収容できてよい。
【0079】
一つ以上の配置において、ここで説明されたモジュールの一つ以上は、人工知能の要素又は計算知能の要素、例えば、ニューラルネットワーク、ファジー論理又は他の機械学習のアルゴリズムを含むことができる。さらに、一つ以上の配置において、モジュールの一つ以上は、ここで説明された複数のモジュールの中に分散され得る。一つ以上の配置において、ここで説明されたモジュールの二つ以上は、一つのモジュールに組み合され得る。
【0080】
車両100は、一つ以上の自律運転モジュール160を含むことができる。自律運転モジュール160は、センサシステム120、及び/又は、車両100及び/又は車両100の外部環境に関連した情報をキャプチャできるその他の種類のシステムからデータを受信するように構成され得る。一つ以上の配置において、自律運転モジュール160は、そのようなデータを一つ以上の運転シーンモデルを生成するために使用することができる。自律運転モジュール160は、車両100の位置及び速度を判定することができる。自律運転モジュール160は、障害物の場所、又は、交通標識、木、低木、近隣の車両、歩行者等を含む他の環境の特徴を判定することができる。
【0081】
自律運転モジュール160は、プロセッサ110、及び/又は、車両100の位置及び方向を推定するためのここで説明されたモジュールの一つ以上が使用するために、車両100の外部環境内の障害物に対する場所情報を受信及び/又は判定するように構成され得る。グローバル座標における車両の位置は、地図を創り出すこと、又は、地図データに関して車両100の位置を判定することに使用するその環境に関して、複数の衛星からの信号、又は、車両100の現在の状態を判定する又は車両100の位置を判定するために使用され得るその他のデータ及び/又は信号に基づいている。
【0082】
独立した、又は、3D/2D登録システム170と組み合わされた自律運転モジュール160は、センサシステム120によって取得されたデータ、運転シーンモデル、及び/又はその他の適切な情報源からのデータに基づいて、走行経路、車両100に対する現在の自律運転操作、未来の自律運転操作、及び/又は、現在の自律運転操作への修正を判定するように構成され得る。「運転操作」は、車両の動きに影響を与える一つ以上のアクションを意味する。運転操作の例は、いくつか可能な例を挙げると、加速、減速、ブレーキング、向きの変更、車両100の横方向への移動、走行車線の変更、走行車線への合流、及び/又はバックを含む。自律運転モジュール160は、判定された運転操作を実行に移す(implement)ように構成され得る。自律運転モジュール160は、直接的に又は間接的に、実行に移されるそのような自律運転操作を引き起こす。ここで使用されるように、「させる(cause)」又は「させること(causing)」は、直接的な又は間接的な方法によって、発生するアクション又はイベントを作る、命令する、指示する及び/又は可能にする、又は、少なくともそのようなイベント又はアクションが発生してよい状態にすることを意味する。自律運転モジュール160は、さまざまな車両の機能を実行するように、及び/又は、車両100又はその一つ以上のシステム(例えば、車両システム140の一つ以上)とデータを送受信する、相互作用する及び/又は車両100又はその一つ以上のシステムを制御するように、構成され得る。
【0083】
詳細な実施形態は、ここで開示されている。しかしながら、開示された実施形態が例としてのみ意図されたことは、理解されるべきである。したがって、ここで開示された特定の構造及び機能の詳細は、限定的に解釈されず、単に特許請求の範囲の根拠として、及び、当事者に、事実上あらゆる適切に詳細化された構造でここの側面をさまざまに採用することを教示するための代表的な根拠として解釈される。さらに、ここで使用された用語及び語句は、限定することを意図せず、むしろ可能な実装の理解可能な記述を提供することを意図している。さまざまな実施形態は、図1図15に示されたが、実施形態は、説明された構造又は応用に限定されない。
【0084】
図におけるフローチャート及びブロック図は、様々な実施形態に従ったシステム、方法及びコンピュータプログラム製品の、可能な実装の構造、機能及び動作を説明する。この点について、フローチャート又はブロック図内のそれぞれのブロックは、明記された論理的な機能を実装するための一つ以上の実行可能な指示を含むモジュール、セグメント又はコードの一部を表現することがある。いくつかの代わりの実装において、ブロックで言及された機能が図で言及された順序と異なる順序で発生してよいことにも留意すべきである。例えば、連続して示された二つのブロックは、実のところ、実質的に同時に実行されることがある、又は、これらのブロックは、含まれる機能次第では、ときには逆の順番で実行されてよい。
【0085】
上で説明されたシステム、構成要素及び/又はプロセスは、ハードウェア又はハードウェアとソフトウェアとの組み合わせで実現され得るものであり、一つの処理システムにおける集中方式で、又は、異なる要素がいくつかの相互接続された処理システムに散在する分散方式で実現され得る。ここで説明された方法を実行することに適した、いかなる種類の処理システム又は他の装置は、適している。ハードウェアとソフトウェアとの典型的な組み合わせは、ロードされ実行されたときに、ここで説明された方法を実行するように処理システムを制御する、コンピュータ使用可能なプログラムコードを伴う処理システムであり得る。システム、構成要素及び/又はプロセスは、また、ここで説明された方法及びプロセスを実施するための機械によって実行可能な指示のプログラムを明白に具現化する機械によって読み取り可能な、コンピュータプログラム製品又は他のデータプログラムの記憶装置のようなコンピュータ読み取り可能な記憶装置に組み込まれ得る。これらの要素は、また、ここで説明された方法の実装を可能とするすべての特徴を含み、処理システムにロードされたときにこれらの方法を実行可能な応用製品に組み込まれ得る。
【0086】
さらに、ここで説明された配置は、一つ以上のコンピュータ読み取り可能な媒体であって、その上に具現化された、例えば、記憶された、コンピュータ読み取り可能なプログラムコードを有する一つ以上のコンピュータ読み取り可能な媒体に具現化されたコンピュータプログラム製品の形態をとってよい。一つ以上のコンピュータ読み取り可能な媒体のあらゆる組み合わせは、利用されてよい。コンピュータ読み取り可能な媒体は、コンピュータ読み取り可能な信号媒体又はコンピュータ読み取り可能な記憶媒体であってよい。「コンピュータ読み取り可能な記憶媒体」という語句は、一時的でない記憶媒体を意味する。コンピュータ読み取り可能な記憶媒体は、例えば、電子的な、磁気的な、光学的な、電磁気的な、赤外線の又は半導体のシステム、装置又は機器、又は前述のもののあらゆる適切な組み合わせであってよいが、これに限定されるものではない。コンピュータ読み取り可能な記憶媒体のより具体的な例(包括的ではないリスト)は、以下を含むだろう:ポータブルフロッピーディスク、HDD(hard disk drive)、SSD(solid-state drive)、ROM(read-only memory)、EPROM(erasable programmable read-only memory)又はフラッシュメモリ、ポータブルCD-ROM(compact disc read-only memory)、DVD(digital versatile disc)、光学記憶装置、磁気記憶装置又は前述のもののあらゆる適切な組み合わせ。この文書の文脈において、コンピュータ読み取り可能な記憶媒体は、指示実行システム、装置又は機器によって又は関連して使用されるプログラムを収容又は記憶できるあらゆる有形の媒体であってよい。
【0087】
コンピュータ読み取り可能な媒体に具現化されたプログラムコードは、無線、有線、光ファイバー、ケーブル、RF等、又は前述のもののあらゆる適切な組み合わせを含むが、それらに限定されない、あらゆる適切な媒体を使用して送信されてよい。現在の配置の側面に対する動作を実行するためのコンピュータプログラムコードは、JAVA(登録商標)、Smalltalk、C++又は同様なもののようなオブジェクト指向プログラミング言語、及び、「C」プログラミング言語又は類似のプログラミング言語のような従来型のプログラミング言語を含む一つ以上のプログラミング言語のあらゆる組み合わせによって記述されてよい。プログラムコードは、全体をユーザのコンピュータ上で、一部をユーザのコンピュータ上で、スタンドアローンのソフトウェアパッケージとして、一部をユーザのコンピュータ上且つ一部をリモートコンピュータ上で、又は、全体をリモートコンピュータ又はサーバ上で実行してよい。後者のシナリオにおいて、リモートコンピュータは、LAN(local area network)又はWAN(wide area network)を含むあらゆる種類のネットワークを通ってユーザのコンピュータに接続されてよく、又は、コネクションは、外部のコンピュータに作られてよい(例えば、インターネットサービスプロバイダを用いてインターネットを通って)。
【0088】
ここで使用された「ある(”a”又は”an”)」という用語は、一つ又は一つ以上と規定される。ここで使用された「複数の」という用語は、二つ又は二つ以上と規定される。ここで使用された「他の」という用語は、少なくとも2番目又はそれ以上と規定される。ここで使用された「含む」及び/又は「有する」という用語は、”comprising”(すなわち、オープンランゲージ(open language))と規定される。ここで使用された「…及び…の少なくとも一つ」という語句は、関連付けられリスト化された項目の一つ以上のありとあらゆる可能な組み合わせに言及し、これを包含する。例として、「A、B及びCの少なくとも一つ」という語句は、Aのみ、Bのみ、Cのみ又はそれらのあらゆる組み合わせ(例えば、AB、AC、BC又はABC)を含む。
【0089】
ここの側面は、その精神又はその本質的な特性から逸脱することなく他の形態で具現化され得る。その結果、参照は、これに関する範囲を示すものとして、前述の明細書よりむしろ以下の特許請求の範囲に対してなされるべきである。
図1
図2
図3
図4
図5
図6
図7
図8A
図8B
図9A
図9B
図10
図11
図12
図13
図14
図15