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

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

▶ ウェイモ エルエルシーの特許一覧

特表2022-540109クロスモーダルセンサデータの位置合わせ
<>
  • 特表-クロスモーダルセンサデータの位置合わせ 図1
  • 特表-クロスモーダルセンサデータの位置合わせ 図2
  • 特表-クロスモーダルセンサデータの位置合わせ 図3
  • 特表-クロスモーダルセンサデータの位置合わせ 図4
  • 特表-クロスモーダルセンサデータの位置合わせ 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-09-14
(54)【発明の名称】クロスモーダルセンサデータの位置合わせ
(51)【国際特許分類】
   G06T 7/00 20170101AFI20220907BHJP
   G06T 7/11 20170101ALI20220907BHJP
【FI】
G06T7/00 350C
G06T7/11
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022500653
(86)(22)【出願日】2020-07-02
(85)【翻訳文提出日】2022-03-02
(86)【国際出願番号】 US2020040670
(87)【国際公開番号】W WO2021007100
(87)【国際公開日】2021-01-14
(31)【優先権主張番号】16/509,152
(32)【優先日】2019-07-11
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.TENSORFLOW
(71)【出願人】
【識別番号】317015065
【氏名又は名称】ウェイモ エルエルシー
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100126480
【弁理士】
【氏名又は名称】佐藤 睦
(72)【発明者】
【氏名】ブラレイ,コリン アンドリュー
(72)【発明者】
【氏名】イワンチェンコ,ウォロディミル
(72)【発明者】
【氏名】チャン,ユー
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA09
5L096BA04
5L096FA69
5L096HA11
5L096KA04
(57)【要約】
クロスモーダルセンサデータ間の位置合わせを判断するための、コンピュータ記憶媒体にエンコードされたコンピュータプログラムを含む、方法、システム、および装置。1つの態様では、方法は、(i)環境の視覚外観を特徴付ける画像、および(ii)環境の三次元幾何学形状を特徴付けるデータポイントの集合を含むポイントクラウド、を取得することと、視覚埋め込みニューラルネットワークを使用して、画像の複数の領域の各々を処理して、画像領域の各々のそれぞれの埋め込みを生成することと、形状埋め込みニューラルネットワークを使用して、ポイントクラウドの複数の領域の各々を処理して、ポイントクラウド領域の各々のそれぞれの埋め込みを生成することと、画像領域の埋め込みおよびポイントクラウド領域の埋め込みを使用して、複数の領域ペアを識別することと、を含む。
【選択図】図1
【特許請求の範囲】
【請求項1】
1つ以上のデータ処理装置によって遂行される方法であって、前記方法が、
(i)環境の視覚外観を特徴付ける、カメラセンサによって生成される画像、および(ii)前記環境の三次元幾何学形状を特徴付ける、測量センサによって生成されるデータポイントの集合を含むポイントクラウド、を取得することであって、各データポイントが、前記環境内の表面上にあるポイントのそれぞれの三次元空間位置を定義する、取得することと、
視覚埋め込みニューラルネットワークを使用して、前記画像の複数の領域の各々を処理して、前記画像領域の各々のそれぞれの埋め込みを生成することと、
形状埋め込みニューラルネットワークを使用して、前記ポイントクラウドの複数の領域の各々を処理して、前記ポイントクラウド領域の各々のそれぞれの埋め込みを生成することと、
前記画像領域の前記埋め込みおよび前記ポイントクラウド領域の前記埋め込みを使用して、複数の領域ペアを識別することと、を含み、各領域ペアが、前記環境の同じそれぞれのエリアを特徴付ける、それぞれの画像領域およびそれぞれのポイントクラウド領域を含む、方法。
【請求項2】
前記測量センサが、ライダセンサまたはレーダセンサである、請求項1に記載の方法。
【請求項3】
前記カメラセンサおよび前記測量センサが、車両の上に取り付けられている、請求項1または2に記載の方法。
【請求項4】
前記ポイントクラウド内の各データポイントが、前記測量センサによって伝送された、および前記データポイントによって定義された前記三次元空間位置における前記環境の前記表面上にある前記ポイントから反射された、光のパルスの反射の強さをさらに定義する、請求項1に記載の方法。
【請求項5】
前記複数の領域ペアを使用して、前記カメラセンサおよび前記測量センサが正確に較正されているかどうかを判断することをさらに含む、請求項1~4のいずれか一項に記載の方法。
【請求項6】
前記画像内のオブジェクトの位置を定義するデータを取得することと、
(i)前記画像内の前記オブジェクトの前記位置、および(ii)前記複数の領域ペアに基づいて、前記ポイントクラウド内の前記オブジェクトの対応する位置を識別することと、をさらに含む、請求項1~5のいずれか一項に記載の方法。
【請求項7】
(i)前記画像内の前記オブジェクトの前記位置、および(ii)前記複数の領域ペアに基づいて、前記ポイントクラウド内の前記オブジェクトの前記対応する位置を識別することが、
特定の領域ペアを識別することであって、各特定の領域ペアについて、前記領域ペアの前記画像領域が、前記画像内の前記オブジェクトの前記位置に対応する、識別することと、
各特定の領域ペアの前記それぞれのポイントクラウド領域に基づいて、前記ポイントクラウド内の前記オブジェクトの前記位置を判断することと、を含む、請求項6に記載の方法。
【請求項8】
前記ポイントクラウド内のオブジェクトの位置を定義するデータを取得することと、
(i)前記ポイントクラウド内の前記オブジェクトの前記位置、および(ii)前記複数の領域ペアに基づいて、前記画像内の前記オブジェクトの対応する位置を識別することと、をさらに含む、請求項1~7のいずれか一項に記載の方法。
【請求項9】
(i)前記ポイントクラウド内の前記オブジェクトの前記位置、および(ii)前記複数の領域ペアに基づいて、前記画像内の前記オブジェクトの前記対応する位置を識別することが、
特定の領域ペアを識別することであって、各特定の領域ペアについて、前記領域ペアの前記ポイントクラウド領域が、前記ポイントクラウド内の前記オブジェクトの前記位置に対応する、識別することと、
各特定の領域ペアの前記それぞれの画像領域に基づいて、前記画像内の前記オブジェクトの前記位置を判断することと、を含む、請求項8に記載の方法。
【請求項10】
前記複数の領域ペアを使用して、前記画像と位置合わせされた二次元画像平面に前記ポイントクラウドを投影することと、
ニューラルネットワークを使用して、前記画像および前記投影されたポイントクラウドを処理して、ニューラルネットワーク出力を生成することと、をさらに含む、請求項1~9のいずれか一項に記載の方法。
【請求項11】
前記ニューラルネットワーク出力が、前記環境内のオブジェクトの位置を識別するデータを含む、請求項10に記載の方法。
【請求項12】
前記複数の画像領域が、前記画像を網羅する、請求項1~11のいずれか一項に記載の方法。
【請求項13】
前記複数のポイントクラウド領域が、前記ポイントクラウドを網羅する、請求項1~12のいずれか一項に記載の方法。
【請求項14】
前記画像領域の前記埋め込みおよび前記ポイントクラウド領域の前記埋め込みを使用して、前記複数の領域ペアを識別することが、
複数の埋め込みペアを識別することであって、各所与の埋め込みペアが、所与の画像領域の前記埋め込みおよび所与のポイントクラウド領域の前記埋め込みを含む、識別することと、
前記複数の埋め込みペアの各々に対応するそれぞれの領域ペアを識別することと、を含み、所与の埋め込みペアに対応する前記領域ペアが、前記所与の埋め込みペアに対応する、前記所与の画像領域および前記所与のポイントクラウド領域を含む、請求項1~13のいずれか一項に記載の方法。
【請求項15】
前記複数の埋め込みペアが、各埋め込みペアについて、前記埋め込みペアに含まれる、前記所与の画像領域の前記埋め込みと前記所与のポイントクラウド領域の前記埋め込みとの間のそれぞれの類似度に少なくとも部分的に基づいて識別される、請求項14に記載の方法。
【請求項16】
前記複数の埋め込みペアが、グリーディな最近傍マッチングアルゴリズムを使用して識別される、請求項15に記載の方法。
【請求項17】
前記視覚埋め込みニューラルネットワークおよび前記形状埋め込みニューラルネットワークが、トリプレット損失目的関数またはコントラスト損失目的関数を使用して、一緒にトレーニングされる、請求項1~16のいずれか一項に記載の方法。
【請求項18】
命令を記憶する1つ以上の非一時的コンピュータ記憶媒体であって、前記命令が、1つ以上のコンピュータによって実行されたときに、前記1つ以上のコンピュータに請求項1~17のいずれか一項に記載のそれぞれの方法の動作を遂行させる、1つ以上の非一時的コンピュータ記憶媒体。
【請求項19】
システムであって、
1つ以上のコンピュータと、
前記1つ以上のコンピュータに通信可能に連結された1つ以上の記憶デバイスと、を備え、前記1つ以上の記憶デバイスが、命令を記憶し、前記命令が、前記1つ以上のコンピュータによって実行されたときに、前記1つ以上のコンピュータに請求項1~17のいずれか一項に記載のそれぞれの方法の動作を遂行させる、システム。
【発明の詳細な説明】
【背景技術】
【0001】
本明細書は、カメラセンサおよび測量センサによって生成されたクロスモーダルセンサデータを処理することに関する。
【0002】
カメラセンサは、環境の視覚外観を特徴付ける画像を生成することができる。測量センサ(例えば、レーダまたはライダセンサ)は、環境の三次元(3D)幾何学形状を特徴付けるポイントクラウドを生成することができる。
【0003】
カメラセンサおよび測量センサによって生成されたセンサデータは、機械学習モデルによって処理され得る。ニューラルネットワークは、受信された入力の出力を予測するための非線形ユニットの1つ以上の層を用いる機械学習モデルである。いくつかのニューラルネットワークは、出力層に加えて1つ以上の隠れ層を含む、ディープニューラルネットワークである。各隠れ層の出力は、ネットワーク内の次の層、すなわち、次の隠れ層または出力層への入力として使用される。ネットワークの各層は、パラメータのそれぞれのセットの現在の値に従って、受信された入力から出力を生成する。
【発明の概要】
【0004】
本明細書は、クロスモーダルセンサデータ間の位置合わせを判断し得る、1つ以上の場所にある1つ以上のコンピュータにコンピュータプログラムとして実装されたシステムについて記載する。センサデータの2つのセット間(例えば、画像データとポイントクラウドデータとの間)の位置合わせを判断することは、環境の同じエリアを特徴付けるセンサデータの2つのセットのそれぞれの領域間のマッピングを判断することを指す。
【0005】
第1の態様によれば、方法であって、(i)環境の視覚外観を特徴付ける、カメラセンサによって生成される画像、および(ii)環境の三次元幾何学形状を特徴付ける、測量センサによって生成されるデータポイントの集合を含むポイントクラウド、を取得することを含む、方法が提供される。各データポイントは、環境内の表面上にあるポイントのそれぞれの三次元空間位置を定義する。視覚埋め込みニューラルネットワークを使用して、画像の多様な領域の各々を処理して、画像領域の各々のそれぞれの埋め込みを生成する。形状埋め込みニューラルネットワークを使用して、ポイントクラウドの多様な領域の各々を処理して、ポイントクラウド領域の各々のそれぞれの埋め込みを生成する。画像領域の埋め込みおよびポイントクラウド領域の埋め込みを使用して、領域ペアのセットが識別される。各領域ペアは、環境の同じそれぞれのエリアを特徴付ける、それぞれの画像領域およびそれぞれのポイントクラウド領域を含む。
【0006】
いくつかの実装例では、測量センサは、ライダセンサまたはレーダセンサである。
【0007】
いくつかの実装例では、カメラセンサおよび測量センサは、車両の上に取り付けられている。
【0008】
いくつかの実装例では、ポイントクラウド内の各データポイントは、測量センサによって伝送された、およびデータポイントによって定義された三次元空間位置における環境の表面上にあるポイントから反射された、光のパルスの反射の強さをさらに定義する。
【0009】
いくつかの実装例では、本方法は、領域ペアのセットを使用して、カメラセンサおよび測量センサが正確に較正されているかどうかを判断することをさらに含む。
【0010】
いくつかの実装例では、本方法は、画像内のオブジェクトの位置を定義するデータを取得することと、(i)画像内のオブジェクトの位置、および(ii)領域ペアのセットに基づいて、ポイントクラウド内のオブジェクトの対応する位置を識別することと、をさらに含む。
【0011】
いくつかの実装例では、(i)画像内のオブジェクトの位置、および(ii)領域ペアのセットに基づいて、ポイントクラウド内のオブジェクトの対応する位置を識別することは、特定の領域ペアを識別することを含み、それにより、各特定の領域ペアについて、領域ペアの画像領域は、画像内のオブジェクトの位置に対応する。ポイントクラウド内のオブジェクトの位置は、各特定の領域ペアのそれぞれのポイントクラウド領域に基づいて判断される。
【0012】
いくつかの実装例では、本方法は、ポイントクラウド内のオブジェクトの位置を定義するデータを取得することと、(i)ポイントクラウド内のオブジェクトの位置、および(ii)複数の領域ペアに基づいて、画像内のオブジェクトの対応する位置を識別することと、をさらに含む。
【0013】
いくつかの実装例では、(i)ポイントクラウド内のオブジェクトの位置、および(ii)領域ペアのセットに基づいて、画像内のオブジェクトの対応する位置を識別することは、特定の領域ペアを識別することを含み、それにより、各特定の領域ペアについて、領域ペアのポイントクラウド領域は、ポイントクラウド内のオブジェクトの位置に対応する。画像内のオブジェクトの位置は、各特定の領域ペアのそれぞれの画像領域に基づいて判断される。
【0014】
いくつかの実装例では、本方法は、複数の領域ペアを使用して、画像と位置合わせされた二次元画像平面にポイントクラウドを投影することをさらに含む。ニューラルネットワークを使用して、画像および投影されたポイントクラウドを処理して、ニューラルネットワーク出力を生成する。
【0015】
いくつかの実装例では、ニューラルネットワーク出力は、環境内のオブジェクトの位置を識別するデータを含む。
【0016】
いくつかの実装例では、多様な画像領域は、画像を網羅する。
【0017】
いくつかの実装例では、多様なポイントクラウド領域は、ポイントクラウドを網羅する。
【0018】
いくつかの実装例では、画像領域の埋め込みおよびポイントクラウド領域の埋め込みを使用して、領域ペアを識別することは、埋め込みペアのセットを識別することを含み、それにより、各所与の埋め込みペアは、所与の画像領域の埋め込みおよび所与のポイントクラウド領域の埋め込みを含む。埋め込みペアの各々に対応するそれぞれの領域ペアが識別され、所与の埋め込みペアに対応する領域ペアは、所与の埋め込みペアに対応する、所与の画像領域および所与のポイントクラウド領域を含む。
【0019】
いくつかの実装例では、埋め込みペアは、各埋め込みペアについて、埋め込みペアに含まれる、所与の画像領域の埋め込みと所与のポイントクラウド領域の埋め込みとの間のそれぞれの類似度に少なくとも部分的に基づいて識別される。
【0020】
いくつかの実装例では、埋め込みペアは、グリーディな最近傍マッチングアルゴリズムを使用して識別される。
【0021】
いくつかの実装例では、視覚埋め込みニューラルネットワークおよび形状埋め込みニューラルネットワークは、トリプレット損失目的関数またはコントラスト損失目的関数を使用して、一緒にトレーニングされる。
【0022】
本明細書に記載の主題の特定の実施形態は、以下の利点の1つ以上を実現するように実装することができる。
【0023】
本明細書に記載の位置合わせシステムは、画像(すなわち、カメラによって生成された)とポイントクラウド(すなわち、測量センサ、例えば、ライダセンサによって生成された)との間の位置合わせを判断することができる。つまり、位置合わせシステムは、環境の同じエリアを特徴付ける、画像およびポイントクラウドのそれぞれの領域間のマッピングを判断することができる。
【0024】
位置合わせシステムは、例えば、センサ較正、クロスモーダルオブジェクト位置特定、またはオブジェクト検出(以下でより詳細に記載する)のために、車両の搭載システムによって使用され得る。位置合わせシステムを使用することにより、車両の搭載システムは、車両の将来の軌道を計画し、車両がより安全かつ効率的に動作することを可能にする、計画決定を生成することができる。
【0025】
位置合わせシステムは、それぞれの埋め込みニューラルネットワークによって生成される、画像領域の埋め込みおよびポイントクラウド領域の埋め込みを使用して、画像とポイントクラウドとの間の位置合わせを判断し得る。機械学習技術を使用してトレーニングされたニューラルネットワークを埋め込むことによって生成された埋め込みを使用することにより、位置合わせシステムは、場合によっては、ハンドクラフト特徴量(例えば、HOG、SIFT、またはSURF特徴量)から構成される埋め込みを使用した場合よりも正確に位置合わせを生成することができる。特に、本明細書に記載の位置合わせシステムは、正確な位置合わせを達成するように最適化された(すなわち、機械学習技術を使用した)領域埋め込みを使用する。対照的に、ハンドクラフト特徴量から構成される埋め込みは、正確な位置合わせを達成するように最適化されておらず、ひいては、例えば、位置合わせの正確さが低くなることにより、本明細書に記載の学習された領域埋め込みに及ばない場合がある。
【0026】
本明細書に記載の位置合わせシステムは、いくつかの従来のシステムよりも迅速にセンサデータを位置合わせすることができ、かつ場合によっては、従来のシステムよりもコンピュータ処理リソースの消費が少ない可能性がある。より具体的には、センサデータの2つのセットを位置合わせするために、本明細書に記載のシステムは、センサデータの2つのセットのそれぞれの領域の埋め込みを判断し、次いで、例えば、最近傍マッチング技術を使用して、埋め込みをマッチングする。対照的に、いくつかの従来のシステムは、センサデータの2つのセットを、センサデータの2つのセットがどれだけうまく位置合わせされているかを特徴付ける目的関数に基づいて、位置合わせを定義するパラメータ(例えば、回転または変換パラメータ)のセットを繰り返し最適化することによって、位置合わせする。目的関数を繰り返し最適化することによって位置合わせを判断することは、コンピュータ処理の要求が厳しい場合があり、例えば、2つのデータセットを位置合わせするのに数秒以上を必要とする場合がある。実際のアプリケーション、例えば、車両の搭載システムでは、データセットが位置合わせされるまでにデータセットが古くなる可能性があるため、データセットの位置合わせにおける数秒の待ち時間は実行不可能な場合がある。本明細書に記載のシステムは、場合によっては、これらの従来のシステムよりも迅速に位置合わせを判断することができ、ひいては、より多くの実際のアプリケーション、例えば、車両の搭載システムによって、効果的に使用することができる。
【0027】
位置合わせシステムは、ポイントクラウドを処理して、ポイントクラウド内のオブジェクトの位置を識別する出力を生成するように構成されたオブジェクト検出ニューラルネットワークをトレーニングするためのトレーニングデータを生成するために使用され得る。特に、オブジェクトのセグメント化は、位置合わせシステムによって生成された位置合わせを使用して、画像データから対応するポイントクラウドデータに転送され得る。この方法で生成されたポイントクラウドデータのセグメント化は、その後、オブジェクト検出ニューラルネットワークをトレーニングするために使用され得る。場合によっては、画像を手動でセグメント化するのは、ポイントクラウドデータを手動でセグメント化するよりも実質的に簡単で、速く、かつ正確である。したがって、位置合わせシステムは、画像データからポイントクラウドデータへのセグメント化の転送を容易にすることにより、オブジェクト検出ニューラルネットワークをトレーニングするためのトレーニングデータの生成を簡素化することができる。
【0028】
本明細書の主題の1つ以上の実施形態の詳細を、添付の図面および以下の説明に記載する。主題の他の特徴、態様、および利点は、明細書、図面、および特許請求の範囲から、明らかになるであろう。
【図面の簡単な説明】
【0029】
図1】クロスモーダル位置合わせシステムの実施例を示す。
図2】画像およびポイントクラウドのそれぞれの領域間のマッピングの実施例の例示である。
図3】車両の搭載システムの実施例のブロック図である。
図4】視覚埋め込みニューラルネットワークおよび形状埋め込みニューラルネットワークを一緒にトレーニングするためのデータフローの実施例を例示する。
図5】環境の同じエリアを特徴付ける、画像およびポイントクラウドのそれぞれの領域間のマッピングを判断するためのプロセスの実施例のフロー図である。
【0030】
個々の図面中の同様の符号および名称は、同様の要素を示している。
【発明を実施するための形態】
【0031】
本明細書は、環境を特徴付けるクロスモーダルデータ間の「位置合わせ」を判断することができるクロスモーダル位置合わせシステムについて説明する。例えば、位置合わせシステムは、(i)環境の視覚外観を特徴付ける(カメラによって生成される)画像と、(ii)環境の三次元(3D)幾何学形状を特徴付ける(ライダまたはレーダセンサによって生成される)ポイントクラウドとの間の位置合わせを決定することができる。画像とポイントクラウドとの間の位置合わせを判断することは、環境の同じエリアを特徴付ける、画像およびポイントクラウドのそれぞれの領域間のマッピングを判断することを指す。画像とポイントクラウドとの間の位置合わせを判断することは、画像とポイントクラウドとの間の「見当合わせ」として、または画像とポイントクラウドとの間の「スキャンマッチング」の遂行として称される場合もある。位置合わせシステムによって生成されるクロスモーダル位置合わせは、様々な目的、例えば、センサ較正、クロスモーダルオブジェクト位置特定、またはオブジェクト検出のうちのいずれかのために、車両の搭載システムによって使用され得る。
【0032】
概して、本明細書に記載の位置合わせシステムは、任意の適切なデータセット間の位置合わせを判断するために使用され得る。例えば、位置合わせシステムを使用して、同じモダリティの2つのデータセット、例えば、2つの画像または2つのポイントクラウド間の「イントラモーダル」位置合わせを判断することができる。別の実施例として、本明細書は主に、車両の搭載システムによって使用されている位置合わせシステムを指しているが、位置合わせシステムは、他の様々な設定のうちのいずれかにも使用することができる。特定の実施例では、位置合わせシステムを使用して、患者の2つの医療画像、例えば、患者の磁気共鳴画像(MRI)とコンピュータ断層撮影(CT)画像とを、または患者の超音波(US)画像とMRIとを位置合わせすることができる。
【0033】
これらの特徴量および他の特徴量については、以下でより詳細に記載する。
【0034】
図1は、クロスモーダル位置合わせシステム100の実施例を示す。クロスモーダル位置合わせシステム100は、以下に記載のシステム、コンポーネント、および技術が実装されている1つ以上の場所にある1つ以上のコンピュータ上にコンピュータプログラムとして実装されたシステムの実施例である。
【0035】
システム100は、両方が環境を特徴付ける(例えば、カメラによって生成される)画像102および(例えば、ライダまたはレーダセンサによって生成される)ポイントクラウド104を処理して、画像102とポイントクラウド104との間の「位置合わせ」を判断するように構成されている。画像102とポイントクラウド104との間の位置合わせは、環境の同じエリアを特徴付ける、画像102およびポイントクラウド104のそれぞれの領域間のマッピングによって定義される。図2は、画像およびポイントクラウドのそれぞれの領域間のマッピングの実施例を例示する。
【0036】
画像102は、環境の視覚外観を特徴付け、任意の適切なタイプのデジタルカメラセンサを使用してキャプチャされ得る。
【0037】
1つの実施例では、画像102は、数値の二次元(2D)配列によって表現される白黒画像であってもよく、配列の各コンポーネントは、環境のそれぞれのエリアに対応する。別の実施例では、画像102は、多様な「チャネル」のセットによって表現され得る。この実施例では、各チャネルは、数値のそれぞれの2D配列によって表現され得、各チャネルの各コンポーネントは、環境のそれぞれのエリアに対応し、異なるチャネルの対応するコンポーネントは、環境の同じエリアに対応する。特定の実施例では、画像102は、赤のカラーチャネル、緑のカラーチャネル、および青のカラーチャネルによって表現される赤緑青(RGB)のカラー画像であってもよい。
【0038】
ポイントクラウド104は、環境の3D幾何学形状を特徴付け、任意の適切なタイプの「測量」センサ、例えば、ライダセンサまたはレーダセンサを使用してキャプチャされ得る。
【0039】
概して、ポイントクラウド104は、「データポイント」の集合によって表現され、各データポイントは、環境内の表面上にあるポイントの3D空間位置を定義する。例えば、各データポイントは、3D座標系に関して、環境内の表面上にあるポイントの3D空間位置を定義するそれぞれのx座標、y座標、およびz座標を含むベクトルによって表現され得る。1つの実施例では、3D座標系は、上に測量センサが取り付けられている車両を中心とするユークリッド座標系であってもよい。
【0040】
任意選択で、ポイントクラウド内の各データポイントには、データポイントに対応する環境内の3D空間位置における材料の、例えば、反射率、テクスチャ、または密度を特徴付ける、追加の「強度」情報を含めることができる。
【0041】
例えば、ポイントクラウド内のデータポイントに含まれる強度情報は、ライダセンサによって伝送された、およびデータポイントに対応する3D空間位置において環境内の表面に反射された、光のパルスの反射の強さによって定義され得る。この実施例では、ポイントクラウド内の各データポイントは、(i)環境内の表面上にあるポイントの3D空間位置を定義するそれぞれのx座標、y座標、およびz座標と、(ii)3D空間位置において環境内の表面に反射された光のパルスの反射の強さを定義する強度の値との両方を含むベクトルによって表現され得る
【0042】
システム100は、視覚埋め込みニューラルネットワーク106、形状埋め込みニューラルネットワーク108、およびマッチングエンジン110を含む。
【0043】
システム100は、視覚埋め込みニューラルネットワーク106を使用して、画像102の多様な領域の各々のそれぞれの埋め込み112を生成する。画像領域の埋め込みは、数値の順序付けられた集合、例えば、数値のベクトルとしての画像領域の表現を指す。画像の領域とは、例えば、正方形または円形の2D幾何学的領域で囲まれている、画像の一部分を指す。例えば、次元[100、100]の(すなわち、100個の行と100個の列とを含む)チャネルを有するRGB画像の領域は、正方形の領域内のピクセル[42:46、91:95](すなわち、42~46の行インデックスと91~95の列インデックスとを含む)に対応する各チャネルのそれぞれの部分によって求めることができる。画像102内の領域の実施例を114によって例示する。
【0044】
視覚埋め込みニューラルネットワーク106は、画像102全体を処理して、画像102の各領域のそれぞれの埋め込み112を定義する出力を生成するように構成され得る。あるいは、画像102全体を一度に処理するのではなく、視覚埋め込みニューラルネットワーク106は、個々の画像領域を処理して画像領域のそれぞれの埋め込みを生成するように構成され得る。
【0045】
概して、視覚埋め込みニューラルネットワーク106は、任意の適切なニューラルネットワークアーキテクチャを有し得、これにより画像領域の埋め込みを生成することができる。例えば、視覚埋め込みニューラルネットワーク106は、最後の畳み込み層の後に完全に接続された出力層が後に続く、多様な畳み込み層のセットを含み得る。
【0046】
システム100は、形状埋め込みニューラルネットワーク108を使用して、ポイントクラウド104の多様な領域の各々のそれぞれの埋め込み116を生成する。ポイントクラウド領域の埋め込みは、数値の順序付けられた集合、例えば、数値のベクトル、例えば、0および1からなるビットベクトルとしてのポイントクラウド領域の表現を指す。ポイントクラウド領域の埋め込みは、例えば、ポイントクラウド領域の特徴量ベクトルまたは特徴量記述子と称される場合もある。ポイントクラウドの領域とは、例えば、立方体または球形の3D幾何学的領域に囲まれた3D空間位置に対応する、ポイントクラウドからのデータポイントの集合を指す。例えば、各データポイントがx座標、y座標、およびz座標によって定義される3D空間位置に対応するポイントクラウドの領域は、立方体の領域[14:18、2:6、44:48](すなわち、14~18のx座標値、2~6のy座標値、および44~48のz座標値を有する)によって囲まれた3D空間位置に対応するデータポイントの集合によって求めることができる。ポイントクラウド104内の領域の実施例を118によって例示する。
【0047】
形状埋め込みニューラルネットワーク108は、ポイントクラウド104全体を処理して、ポイントクラウド104の各領域のそれぞれの埋め込み116を定義する出力を生成するように構成され得る。あるいは、ポイントクラウド104全体を一度に処理するのではなく、形状埋め込みニューラルネットワーク108は、個々のポイントクラウド領域を処理してポイントクラウド領域のそれぞれの埋め込みを生成するように構成され得る。
【0048】
概して、形状埋め込みニューラルネットワーク108は、任意の適切なニューラルネットワークアーキテクチャを有し得、これによりポイントクラウド領域の埋め込みを生成することができる。例えば、形状埋め込みニューラルネットワーク108は、PointNetアーキテクチャ(すなわち、C.R.Qi、H.Su、K.Mo、およびL.J.Guibasの「PointNet:Deep Learning on Points Sets for 3D Classification and Segmentation」、2017、The IEEE Conference on Computer Vision and Pattern Recognition(CVPR)を参照して説明される)、PointNet++アーキテクチャ(すなわち、C.R.Qi、L.Yi、H.Su、およびL.J.Guibasの「PointNet++:Deep Hierarchical Feature Learning on Point Sets in a Metric Space」、2017、Advances in Neural Information Processing Systems(NIPS)を参照して説明される)、またはVoxNetアーキテクチャ(すなわち、D.MaturanaおよびS.Schererの「VoxNet:a 3D Convolutional Neural Network or Real-Time Object Recognition」、2015、IEEE/RSJ International Conference of Intelligent Robots and Systems(IROS)を参照して説明される)を有し得る。
【0049】
視覚埋め込みニューラルネットワーク106および形状埋め込みニューラルネットワーク108は、2つの特性を促進する目的関数を使用して、一緒にトレーニングされる。
【0050】
第1に、環境の同じエリアを特徴付ける、画像領域およびポイントクラウド領域について、視覚埋め込みニューラルネットワーク106および形状埋め込みニューラルネットワーク108は、(例えば、適切な数の類似度に従って)「類似」であるそれぞれの埋め込みを生成する必要がある。
【0051】
第2に、環境の異なるエリア(または全く異なる環境)を特徴付ける、画像領域およびポイントクラウド領域について、視覚埋め込みニューラルネットワーク106および形状埋め込みニューラルネットワーク108は、(例えば、適切な数の類似度に従って)「非類似」であるそれぞれの埋め込みを生成する必要がある。
【0052】
例えば、視覚埋め込みニューラルネットワーク106および形状埋め込みニューラルネットワーク108は、例えば、トリプレット損失目的関数またはコントラスト損失目的関数を使用して、一緒にトレーニングされ得る。
【0053】
視覚埋め込みニューラルネットワーク106および形状埋め込みニューラルネットワーク108を一緒にトレーニングするためのプロセスの実施例を、図4を参照してより詳細に記載する。
【0054】
システム100は、任意の適切な数の画像領域およびポイントクラウド領域のそれぞれの埋め込みを生成することができる。次にいくつかの実施例を示す。
【0055】
例えば、システム100は、画像102を網羅する画像領域のグリッド内の各画像領域、およびポイントクラウド104を網羅するポイントクラウド領域のグリッド内の各ポイントクラウド領域について、それぞれの埋め込みを生成することができる。特定の実施例では、画像領域は、重なり合わない2D長方形の画像領域から構成され得、画像102内の各ピクセルは、画像領域のうちのまさに1つに含まれる。別の特定の実施例では、ポイントクラウド領域は、重なり合わない3D長方形のポイントクラウド領域から構成され得、ポイントクラウド104内の各データポイントは、ポイントクラウド領域のうちのまさに1つに含まれる。
【0056】
別の実施例として、本システムは、画像102の適当なサブセットを網羅する画像領域のグリッド内の各画像領域、およびポイントクラウド104の適当なサブセットを網羅するポイントクラウド領域のグリッド内の各ポイントクラウド領域について、それぞれの埋め込みを生成することができる。特定の実施例では、画像領域は、重なり合わない2D長方形の画像領域から構成され得、画像102内の描かれたオブジェクトに含まれる各ピクセルは、画像領域のうちのまさに1つに含まれる。別の特定の実施例では、ポイントクラウド領域は、重なり合わない3D長方形のポイントクラウド領域から構成され得、ポイントクラウド104によって特徴付けられるオブジェクトに含まれる各データポイントは、ポイントクラウド領域のうちのまさに1つに含まれる。
【0057】
別の実施例として、本システムは、所定の閾値を満たす「インタレストスコア」を有する、画像およびポイントクラウド内の領域についてのみ埋め込みを生成することができる。本システムは、例えば、画像領域内の縁、隅、斑点、隆起、またはこれらの組み合わせの存在に基づいて、画像領域のインタレストスコアを判断することができる。本システムは、例えば、ポイントクラウド領域の複雑さ、例えば、(i)領域に含まれるポイントと、(ii)領域に含まれるポイントにフィットする線形表面との間の残差の合計に基づいて、ポイントクラウド領域のインタレストスコアを判断することができる。概して、本システムは、画像とポイントクラウドとの間で効果的にマッチングさせることができる、環境の固有の特徴量を特徴付ける、画像領域およびポイントクラウド領域の埋め込みを生成するように構成され得る。例えば、本システムは、道路標示のない平坦な道路に対応する、画像またはポイントクラウドの領域の埋め込みの生成を控える場合がある。別の実施例として、本システムは、車両または歩行者の一部分に対応する、画像およびポイントクラウドの領域について埋め込みを生成する必要があると判断する場合がある。
【0058】
マッチングエンジン110は、画像領域の埋め込み112およびポイントクラウド領域の埋め込み116を処理して、埋め込みペア120のセットを識別するように構成されている。各埋め込みペア120は、(i)画像領域の埋め込み112、および(ii)ポイントクラウド領域の埋め込み116を指定する。
【0059】
マッチングエンジン110は、埋め込みペア120を、各埋め込みペア120に含まれるそれぞれの埋め込み間の類似度を最大化する(またはほぼ最大化する)方法で、識別しようと試みる。類似度は、例えば、L類似度、コサイン類似度、または任意の他の適切な類似度であってもよい。
【0060】
特定の実施例では、マッチングエンジン110は、「グリーディな」最近傍マッチングアルゴリズムを使用して、各画像領域の埋め込み112をそれぞれのポイントクラウド領域の埋め込み116に順次マッチングさせることができる。各所与の画像領域の埋め込み112について、マッチングエンジン110は、現在マッチングされていないポイントクラウド領域の埋め込みの中から、所与の画像領域の埋め込みに最も類似している(すなわち、類似度に従って)対応するポイントクラウド領域の埋め込み116を識別する。グリーディな最近傍マッチングアルゴリズムは、各画像領域の埋め込みが、対応するポイントクラウド領域の埋め込みにマッチングされている場合、またはマッチングされていないポイントクラウド領域の埋め込みが残っていない場合に、終了する場合がある。
【0061】
より広くは、マッチングエンジン110は、任意の適切なマッチングアルゴリズムを使用して、埋め込みペア120を識別することができる。最近傍マッチングアルゴリズムのいくつかの実施例は、例えば、M.Muja、D.G.Loweの「Fast approximate nearest neighbors with automatic algorithm configuration」、2009、VISAPP International Conference on Computer Vision Theory and Applicationsを参照して記載される。
【0062】
システム100は、マッチングエンジン110によって識別された各埋め込みペア120を使用して、埋め込みペア120に対応する、画像領域およびポイントクラウド領域を指定するそれぞれの領域ペア122を識別する。このようにして、システム100は、環境の同じエリアを特徴付けると予測される、画像領域およびポイントクラウド領域を各々が指定する領域ペア122のセットを識別する。つまり、領域ペア122は、環境の同じエリアを特徴付けると予測される、画像102およびポイントクラウド104のそれぞれの領域間のマッピングを定義する。
【0063】
例えば、領域ペア122は、両方が環境内の同じオブジェクトまたは同じオブジェクトの同じ部分を特徴付けると予測される、画像102の領域およびポイントクラウド104の領域を指定することができる。環境内のオブジェクトは、例えば、人々、動物、車、道路標識などであってもよい。
【0064】
領域ペア122によって定義される、対応する画像領域とポイントクラウド領域との間のマッピングは、様々な目的のうちのいずれかに使用することができる。車両の搭載システムでクロスモーダル位置合わせシステム100を使用するいくつかの実施例を、図3を参照して記載する。
【0065】
図2は、(例えば、図1を参照して記載されるクロスモーダル位置合わせシステム100によって判断することができる種類のものの)画像202およびポイントクラウド204のそれぞれの領域間のマッピングの実施例の例示200である。この実施例では、画像領域206-Aおよび206-Bが、ポイントクラウド領域208-Aおよび208-Bにそれぞれマッピングされる(逆もまた同様)。つまり、画像領域206-Aとポイントクラウド領域208-Aとが第1の「領域ペア」を形成し、画像領域206-Bとポイントクラウド領域208-Bとが第2の「領域ペア」を形成する(図1を参照して記載のとおり)。
【0066】
図3は、車両302の搭載システム300の実施例のブロック図である。搭載システム300は、ハードウェアコンポーネントおよびソフトウェアコンポーネントから構成され、これらのコンポーネントのうちのいくつかまたはすべては、物理的に車両302に搭載されて位置する。以下でより詳細に記載されるように、搭載システム300は、様々な目的のうちのいずれかのために、(図1を参照して記載される)位置合わせシステム100を使用することができる。
【0067】
場合によっては、搭載システム300は、完全に自律してまたは部分的に自律して運転の決定(すなわち、車両302の運転者とは独立して行われる運転の決定)を行い、車両302の運転者に情報を提示して、運転者が車両を安全に運転することを支援するか、またはこれらの両方を行うことができる。例えば、別の車両が車両302のために道を譲る可能性が低いと判断することに応答して、搭載システム300は、車両302のブレーキを自律的に適用するか、または別様に車両302の軌道を自律的に変更して、車両302と他の車両との衝突を防止することができる。別の実施例として、別の車両が車両302のために道を譲る可能性が低いと判断することに応答して、搭載システム300は、車両302の軌道を調節して他の車両との衝突を回避するための指示とともに、警告メッセージを車両302の運転者に提示することができる。
【0068】
図3の車両302は自動車として描かれており、本明細書の実施例は自動車を参照して記載されているが、概して、車両302は、任意の種類の車両であってもよい。例えば、自動車に加えて、車両302は、船舶であっても、航空機であってもよい。さらに、搭載システム300は、図3に描かれているものに追加のコンポーネント(例えば、衝突検出システムまたはナビゲーションシステム)を含むことができる。
【0069】
搭載システム300は、搭載システム300が車両302の近くの環境を「見る」ことを可能にするセンサシステム304を含む。より具体的には、センサシステム304は、多様な異なるモダリティのセンサ、特に、カメラセンサおよび測量センサ(例えば、ライダセンサ、レーダセンサ、またはこれらの両方)を含む。
【0070】
センサシステム304は、継続的に(すなわち、多様な時点の各々において)、車両の近くの環境の視覚外観を特徴付ける画像306、および車両の近くの環境の3D幾何学形状を特徴付けるポイントクラウド308を生成する。
【0071】
位置合わせシステム100は、センサシステム304によって生成された画像306およびポイントクラウド308を処理して、環境の同じエリアを特徴付けると予測される、画像306およびポイントクラウド308のそれぞれの領域間のマッピングを判断することができる。位置合わせシステム100の出力は、車両302に搭載された他の様々なシステム、例えば、以下でより詳細に記載される、較正システム310、位置特定システム312、および予測システム314のうちのいずれかによって使用され得る。
【0072】
較正システム310は、車両302の上に取り付けられたセンサのうちのいくつかまたはすべての位置および向きを特徴付ける較正データを維持するように構成されている。例えば、車両302の上に取り付けられた各センサについて、較正システム310は、(i)車両上のセンサの位置のx座標、y座標、およびz座標を定義する3Dベクトルと、(ii)センサの向き(すなわち、センサが向いている方向)のx座標、y座標、およびz座標を定義する3Dベクトルとを含む、較正データを維持することができる。
【0073】
較正システム310は、継続的に(すなわち、多様な時点の各々において)、較正データの現在の正確さをチェックすることができる。較正データは、センサの位置および向きの変化により、時間の経過とともに不正確になる場合がある。センサの位置および向きは、例えば、温度の変動が、センサが取り付けられている車両の部分をわずかに変形させるため、オブジェクト(例えば、木の枝)がセンサと擦れ合っているため、または車両の速度が急に変化するため、時間の経過とともに変化する場合がある。
【0074】
較正システム310は、位置合わせシステム100の出力を使用して、カメラセンサおよび測量センサ(例えば、ライダまたはレーダセンサ)の現在の較正データの正確さをクロスチェックすることができる。例えば、較正システム310は、位置合わせシステムの出力を使用して、(カメラセンサによって生成される)画像および(測量センサによって生成される)ポイントクラウドのマッチング領域の中心位置を位置合わせする、変換(例えば、並進および回転変換)のパラメータを判断することができる。画像の領域およびポイントクラウドの領域が環境の同じエリアに対応することを位置合わせシステムの出力が示している場合、画像の領域は、ポイントクラウドの領域に「マッチ」していると言われる。較正システム310は、任意の適切なフィッティング方法、例えば、ランダムサンプルコンセンサスを用いた最小二乗フィッティング法(RANSAC)、または堅牢化された非線形最小二乗フィッティング法を使用して、変換のパラメータを判断することができる。
【0075】
画像からポイントクラウドへの(またはその逆への)変換のパラメータを判断した後、較正システム310は、カメラセンサの位置および向きを特徴付ける較正パラメータに変換を適用することができる。変換をカメラセンサの較正パラメータに適用した結果は、測量センサの位置および向きを特徴付ける較正パラメータの推定値を定義する。測量センサの較正パラメータの推定値が、測量センサの維持された較正パラメータと少なくとも閾値量だけ異なると判断することに応答して、較正システムは、測量センサおよびカメラセンサのうちの一方または両方が誤って較正されていると判断し得る。センサが誤って較正されていると判断することに応答して、搭載システムは、例えば、車両の運転者に警告するか、車両を路肩に寄せて止める場合がある。
【0076】
位置特定システム312は、画像306、ポイントクラウド308、およびモダリティのうちの1つ(すなわち、画像306またはポイントクラウド308のいずれか)のセンサデータ内のオブジェクトの位置を定義するデータを処理して、他のモダリティのセンサデータ内の同じオブジェクトの位置を判断することができる。
【0077】
例えば、位置特定システム312は、画像306、ポイントクラウド308、および画像306内のオブジェクトの位置を定義するデータを処理して、ポイントクラウド308内の同じオブジェクトの位置を定義するデータを生成することができる。
【0078】
別の実施例として、位置特定システム312は、画像306、ポイントクラウド308、およびポイントクラウド308内のオブジェクトの位置を定義するデータを処理して、画像306内の同じオブジェクトの位置を定義するデータを生成することができる。
【0079】
画像内またはポイントクラウド内のオブジェクトの位置は、任意の適切な方法で表現され得る。例えば、画像内のオブジェクトの位置は、画像内のオブジェクトを囲む2Dバウンディングボックスによって表現され得る。別の実施例として、ポイントクラウド内のオブジェクトの位置は、ポイントクラウド内のオブジェクトを囲む3Dバウンディングボックスによって表現され得る。
【0080】
位置特定システム312は、位置合わせシステム100を使用して、画像内のオブジェクトの位置に基づいて、ポイントクラウド内のオブジェクトの位置を識別することができる。例えば、位置特定システム312は、位置合わせシステム100を使用して、(i)画像内のオブジェクトを網羅する、画像の1つ以上の領域の埋め込み、および(ii)ポイントクラウド全体を網羅する、ポイントクラウド内の領域のグリッドの埋め込み、を生成することができる。
【0081】
位置特定システム312は、例えば、図1を参照して記載されるように、例えば、画像領域の埋め込みを対応するポイントクラウド領域の埋め込みにマッチングさせることによって、画像内のオブジェクトを網羅する画像領域を対応するポイントクラウド領域にマッピングすることができる。その後、位置特定システム312は、画像内のオブジェクトを網羅する画像領域によって上にマッピングされるポイントクラウド領域に基づいて、ポイントクラウド内のオブジェクトの位置を判断することができる。
【0082】
同様に、位置特定システム312は、位置合わせシステム100を使用して、ポイントクラウド内のオブジェクトの位置に基づいて、画像内のオブジェクトの位置を識別することもできる。
【0083】
搭載システム300は、様々な状況のいずれにおいても位置特定システム312を使用することができる。例えば、搭載システム300は、他の車両が車両302のライダセンサの範囲外にある間、カメラセンサデータを使用して別の車両を追跡することができる。他の車両が車両302のライダセンサの範囲に入ると、搭載システム300は、位置特定システム312を使用して、ライダセンサによって生成されたポイントクラウドデータ内の他の車両の位置を判断することができる。他の車両をカメラセンサデータおよびライダセンサデータの両方で位置特定すると、搭載システム300は、両方のモダリティのセンサデータを使用して、例えば、他の車両の挙動を予測することができる。
【0084】
予測システム314は、センサシステム304によって生成された、画像306およびポイントクラウド308を処理して、例えば、車両302の近くのオブジェクト(例えば、車両、歩行者、道路標識など)を検出および識別するように構成されている。予測システム314は、センサシステムによって生成された画像データおよびポイントクラウドデータを、例えば、1つ以上のニューラルネットワークを使用してこれらのデータを処理する前に、位置合わせシステム100を使用して位置合わせすることができる。
【0085】
1つの実施例では、予測システム314は、位置合わせシステム100を使用して、環境の同じエリアを特徴付けると予測される、画像306およびポイントクラウド308のそれぞれの領域間のマッピングを生成することができる。その後、予測システム314は、マッピングを使用して、ポイントクラウド308を、画像306と位置合わせされた2D画像平面に投影し、次いで、投影されたポイントクラウド308および画像306をオブジェクト検出ニューラルネットワークに提供することができる。
【0086】
場合によっては、カメラセンサおよび測量センサの相対的な位置および向きを特徴付けるデータを使用して、位置合わせシステム100を使用することなしに、カメラセンサによって生成された画像と測量センサによって生成されたポイントクラウドとをほぼ位置合わせすることができる。しかしながら、カメラセンサと測量センサとが生成した、カメラセンサおよび測量センサの相対的な位置に基づいて、画像とポイントクラウドとを位置合わせすることは、特に車両が動いている場合、不正確になる可能性がある。より具体的には、カメラセンサおよび測量センサは、多くの場合、異なる時点(例えば、0.2秒間隔)でデータを生成する。カメラセンサが画像を生成し、測量センサがポイントクラウドを生成する間に経過する期間に、車両が環境に対して移動する場合がある。この状況では、カメラセンサおよび測量センサの相対的な位置および向きに基づいて、画像とポイントクラウドとを位置合わせしようと試みると、位置合わせが不正確になる場合がある。一方で、位置合わせシステム100は、測量センサおよびカメラセンサの相対的な位置および向きが不正確または未知であっても、車両302が動いているときに画像とポイントクラウドとを正確に位置合わせすることができる。
【0087】
車両の搭載システムによって使用されることに加えて(例えば、図3を参照して記載のとおり)、位置合わせシステムは、他の様々な用途で使用することができる。例えば、位置合わせシステムは、ポイントクラウドを処理して、ポイントクラウド内のオブジェクトの位置を識別する出力を生成するように構成されたオブジェクト検出ニューラルネットワークをトレーニングするためのトレーニングデータを生成するために使用され得る。オブジェクト検出ニューラルネットワークをトレーニングするためのトレーニングデータとして使用するために、ポイントクラウド内のオブジェクトを手動でセグメント化することは、困難で、時間と費用がかかる場合がある。位置合わせシステムは、位置合わせシステムを使用して、画像からのセグメント化(簡単に取得することができる)を、後でオブジェクト検出ニューラルネットワークをトレーニングするために使用され得る対応するポイントクラウドデータに転送することができるため、これらの課題を未然に防ぐことができる。
【0088】
図4は、視覚埋め込みニューラルネットワーク106および形状埋め込みニューラルネットワーク108を一緒にトレーニングするためのデータフロー400の実施例を例示する。視覚埋め込みニューラルネットワーク106および形状埋め込みニューラルネットワーク108をトレーニングすることは、これらのそれぞれのモデルパラメータ402のトレーニングされた値を判断することを指す。
【0089】
視覚埋め込みニューラルネットワーク106および形状埋め込みニューラルネットワーク108は、多様なトレーニング例を含むトレーニングデータのセット404でトレーニングされる。各トレーニング例には、画像の領域およびポイントクラウドの領域が含まれる。トレーニング例のうちのいくつかは、画像領域およびポイントクラウド領域が環境の同じエリアを特徴付ける、「ポジティブな」トレーニング例である。残りのトレーニング例は、画像領域およびポイントクラウド領域が環境の異なるエリア(または全く異なる環境)を特徴付ける、「ネガティブな」トレーニング例である。
【0090】
トレーニングデータ404のトレーニング例は、様々な方法のうちのいずれかで生成され得る。
【0091】
例えば、互いの相対的な位置および向きが分かっているカメラセンサおよび測量センサを使用して、環境を特徴付ける画像およびポイントクラウドを同時にキャプチャすることによって、ポジティブなトレーニング例を生成することができる。センサの相対的な位置および向きを使用して、画像とポイントクラウドとを位置合わせすることができ、位置合わせされたセンサデータから対応する領域のペアを抽出することによって、1つ以上のトレーニング例を生成することができる。
【0092】
別の実施例として、ポジティブなトレーニング例を、人物が環境の同じエリアを特徴付ける、対応する画像領域およびポイントクラウド領域を手動で注釈付けする、人間の注釈付けによって手動で生成することができる。
【0093】
別の実施例として、ネガティブなトレーニング例を、異なる環境のエリアを特徴付ける、画像領域とポイントクラウド領域とをランダムにペアリングすることによって生成することができる。
【0094】
多様なトレーニングの反復ごとに、1つ以上のトレーニング例406の「バッチ」(すなわち、セット)が、トレーニングデータ404から(例えば、ランダムに)選択される。
【0095】
バッチ内の各トレーニング例406について、視覚埋め込みニューラルネットワーク106は、モデルパラメータ402の現在の値に従って、トレーニング例406からの画像領域408を処理して、画像領域408の埋め込み412を生成する。同様に、形状埋め込みニューラルネットワーク108は、モデルパラメータ402の現在の値に従って、トレーニング例406からのポイントクラウド領域410を処理して、ポイントクラウド領域410の埋め込み414を生成する。
【0096】
現在のバッチのトレーニング例406からの、画像領域408およびポイントクラウド領域410の埋め込みは、目的関数416を評価するために使用される。目的関数416の勾配は、(例えば、バックプロパゲーションを使用して)コンピュータ処理され、その後、(例えば、RMSpropまたはAdam勾配降下法の最適化手順を使用して)モデルパラメータ402の現在の値を更新するために使用される。
【0097】
前述のように、目的関数416は、画像領域およびポイントクラウド領域が環境の同じエリアを特徴付ける場合に、およびその場合に限り、視覚埋め込みニューラルネットワーク106および形状埋め込みニューラルネットワーク108が画像領域およびポイントクラウド領域の同様の埋め込みを生成することを広く奨励する。例えば、目的関数は、トリプレット損失目的関数であっても、コントラスト損失目的関数であってもよい。
【0098】
視覚埋め込みニューラルネットワーク106および形状埋め込みニューラルネットワーク108のモデルパラメータ402は、トレーニング終了基準が満たされるまで、例えば、所定の回数のトレーニングの反復が遂行されたときに、トレーニングされ得る。モデルパラメータ402のトレーニングされた値は、任意の適切な有線接続または無線接続を介して(例えば、図3を参照して記載されるように)車両の搭載システムに伝送され得る。
【0099】
図5は、環境の同じエリアを特徴付ける、画像およびポイントクラウドのそれぞれの領域間のマッピングを判断するためのプロセス500の実施例のフロー図である。便宜上、プロセス500は、1つ以上の場所に位置する1つ以上のコンピュータのシステムによって遂行されるものとして記載する。例えば、クロスモーダル位置合わせシステム、例えば、本明細書に従って適切にプログラムされた図1のクロスモーダル位置合わせシステム100は、プロセス500を遂行することができる。
【0100】
本システムは、画像およびポイントクラウド領域を取得する(502)。画像は、カメラセンサによって生成され、環境の視覚外観を特徴付ける。ポイントクラウドは、測量センサによって生成され、環境の3D幾何学形状を特徴付ける。画像は、任意の適切な形式、例えば、白黒画像またはカラー画像として表現され得る。ポイントクラウドは、データポイントの集合として表現され得、各データポイントは、環境内の表面上にあるポイントのそれぞれの3D空間位置を定義する。任意選択で、ポイントクラウド内の各データポイントには、データポイントに対応する環境内の3D空間位置における材料の、例えば、反射率、テクスチャ、または密度を特徴付ける、追加の「強度」情報を含めることができる。
【0101】
本システムは、視覚埋め込みニューラルネットワークを使用して、画像の多様な領域の各々を処理して、画像領域の各々のそれぞれの埋め込みを生成する(504)。各画像領域は、任意の適切な形状の2Dバウンディング領域、例えば、2Dバウンディングボックスによって囲まれた画像の一部分に対応し得る。本システムは、画像全体を網羅する画像領域のグリッド内の各画像領域に対して、または画像の一部分(例えば、オブジェクトを描く画像の一部分)を網羅する画像領域のセット内の各画像領域に対して、それぞれの埋め込みを生成し得る。
【0102】
本システムは、形状埋め込みニューラルネットワークを使用して、ポイントクラウドの多様な領域の各々を処理して、ポイントクラウド領域の各々のそれぞれの埋め込みを生成する(506)。各ポイントクラウド領域は、任意の適切な形状の3D空間バウンディング領域、例えば、3Dバウンディングボックスによって囲まれた空間位置に対応する、ポイントクラウドの一部分(すなわち、ポイントクラウド内のデータポイントのセット)に対応し得る。本システムは、ポイントクラウド全体を網羅するポイントクラウド領域のグリッド内の各ポイントクラウド領域に対して、またはポイントクラウドの一部分(例えば、オブジェクトに対応するポイントクラウドの一部分)を網羅するポイントクラウド領域のセット内の各ポイントクラウド領域に対して、それぞれの埋め込みを生成し得る。
【0103】
本システムは、画像領域の埋め込みおよびポイントクラウド領域の埋め込みを使用して、多様な領域ペアのセットを識別する(508)。各領域ペアは、環境の同じエリアを特徴付ける、画像領域およびポイントクラウド領域を指定する。領域ペアを識別するために、本システムは、マッチングアルゴリズム(例えば、最近傍マッチングアルゴリズム)を使用して、多様な埋め込みペアのセットを識別し、多様な埋め込みペアの各々は、画像領域の埋め込みおよびポイントクラウド領域の埋め込みを指定する。本システムは、各埋め込みペアを使用して、埋め込みペアに対応する、画像領域およびポイントクラウド領域を指定するそれぞれの領域ペアを識別する。領域ペアは、環境の同じエリアを特徴付けると予測される、画像およびポイントクラウドのそれぞれの領域間のマッピングを定義する。
【0104】
本明細書は、システムおよびコンピュータプログラムコンポーネントに関連して「構成された」という用語を使用する。1つ以上のコンピュータのシステムが特定の操作または動作を遂行するように構成されているとは、システムがそれにインストールされており、ソフトウェア、ファームウェア、ハードウェア、またはそれらの組み合わせが動作中に、システムにその操作または動作を遂行させることを意味する。1つ以上のコンピュータプログラムが特定の操作または動作を遂行するように構成されているとは、1つ以上のプログラムが、データ処理装置によって実行されると、装置に操作または動作を遂行させる命令を含むことを意味する。
【0105】
本明細書に記載の主題および機能的動作の実施形態は、デジタル電子回路内に、有形的に具現化されたコンピュータソフトウェアもしくはファームウェア内に、本明細書に開示された構造体およびそれらの構造上の等価物を含むコンピュータハードウェア内に、またはそれらのうちの1つ以上を組み合わせて、実装することができる。本明細書に記載の主題の実施形態は、1つ以上のコンピュータプログラムとして、すなわち、データ処理装置によって実行するために、またはデータ処理装置の操作を制御するために有形の非一時的記憶媒体に符号化されたコンピュータプログラム命令の1つ以上のモジュールとして実装することができる。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムもしくはシリアルアクセスメモリデバイス、またはこれらのうちの1つ以上の組み合わせであってもよい。代替的に、またはさらに、プログラム命令は、人工的に生成された伝播信号、例えば、データ処理装置によって実行するために好適な受信装置に送信される情報を符号化するために生成される機械生成の電気、光、または電磁信号に符号化され得る。
【0106】
「データ処理装置」という用語は、データ処理ハードウェアを指し、データを処理するためのあらゆる種類の装置、デバイス、および機械を包含し、それらには、例として、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータが含まれる。装置はまた、例えば、FPGA(フィールドプログラマブルゲートアレイ)もしくはASIC(特定用途向け集積回路)などの専用論理回路であってもよく、またはそれをさらに含んでいてもよい。装置は、ハードウェアに加えて、コンピュータプログラムのための実行環境を作り出すコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらの1つ以上の組み合わせを構成するコードを任意選択で含むことができる。
【0107】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、またはコードとも称され得るか、もしくは記載され得る、コンピュータプログラムは、コンパイラ型もしくはインタプリタ型言語、または宣言型言語もしくは手続き型言語を含む、任意の形式のプログラミング言語で記述され得、かつスタンドアロンプログラムもしくはモジュール、コンポーネント、サブルーチン、またはコンピューティング環境で使用するのに適した他のユニットを含む、任意の形式で展開され得る。プログラムは、ファイルシステム内のファイルに対応する場合もあるが、必ずしもそうである必要はない。プログラムは、他のプログラムもしくはデータを保持するファイルの一部、例えば、マークアップ言語ドキュメントに格納された1つ以上のスクリプト、プログラム専用の単一ファイル、または複数の調整ファイル、例えば、1つ以上のモジュール、サブプログラム、もしくはコードの一部を格納するファイルに格納することができる。コンピュータプログラムは、1つのコンピュータまたは1つの場所に配置された複数のコンピュータ上で実行されるように展開するか、複数の場所に分散してデータ通信ネットワークで相互接続することができる。
【0108】
本明細書において、「エンジン」という用語は、1つ以上の特定の関数を遂行するようにプログラムされている、ソフトウェアベースのシステム、サブシステム、またはプロセスを指すために広く使用される。概して、エンジンは、1つ以上のソフトウェアモジュールまたはコンポーネントとして実装され、1つ以上の場所にある1つ以上のコンピュータにインストールされる。場合によっては、1つ以上のコンピュータが特定のエンジン専用であり、他の場合では、多様なエンジンを同じコンピュータ(複数可)にインストールして走らせることができる。
【0109】
本明細書に記載のプロセスおよび論理フローは、1つ以上のプログラマブルコンピュータが1つ以上のコンピュータプログラムを実行して、入力データ上で動作し、かつ出力を生成することで機能を果たすことによって遂行することができる。プロセスおよび論理フローはまた、FPGAもしくはASICなどの専用論理回路によって、または特定用途の論理回路と1つ以上のプログラムされたコンピュータとの組み合わせによって遂行することができる。
【0110】
コンピュータプログラムの実行に好適なコンピュータは、汎用もしくは専用のマイクロプロセッサあるいはその両方、または他の種類の中央処理装置に基づくことができる。概して、中央処理装置は、読み取り専用メモリもしくはランダムアクセスメモリ、またはその両方から命令およびデータを受信することになる。コンピュータの本質的な要素は、命令を遂行または実行するための中央処理装置ならびに命令およびデータを格納するための1つ以上のメモリデバイスである。中央処理装置およびメモリは、専用論理回路によって補完またはその回路に組み込むことができる。概して、コンピュータはまた、例えば、磁気、光磁気ディスク、もしくは、光ディスクなど、データを格納するための1つ以上の大容量記憶デバイスを含むか、または、それらからデータを転送するように動作可能に結合されることになる。しかしながら、コンピュータは必ずしもそのようなデバイスを有する必要はない。さらに、コンピュータは別のデバイス、例えば、ほんの数例を挙げると、携帯電話、電子手帳(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブル記憶デバイス、例えば、ユニバーサルシリアルバス(USB)フラッシュドライブなどに組み込むことができる。
【0111】
コンピュータプログラム命令およびデータを格納するのに好適なコンピュータ可読媒体は、不揮発性メモリ、媒体、およびメモリデバイスのあらゆる形態を含み、例として、EPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス、内蔵ハードディスクまたは取り外し可能なディスクなどの磁気ディスク、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含む。
【0112】
ユーザとの対話を提供するために、本明細書に記載の主題の実施形態は、コンピュータ上で実施することができ、コンピュータは、ユーザがコンピュータに入力を提供することができる、ユーザに情報を表示するための表示デバイス、例えば、CRT(陰極線管)もしくはLCD(液晶ディスプレイ)モニタ、ならびにキーボードおよびマウス、トラックボールなどのポインティングデバイスを有する。他の種類のデバイスを使用して、ユーザとの対話を提供することもできる。例えば、ユーザに提供されるフィードバックは、視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバックなどの任意の形の感覚的フィードバックであり得、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形式で受信することができる。さらに、コンピュータは、ユーザが使用するデバイスとの間でドキュメントを送受信することによって、例えば、ウェブブラウザから受信した要求に応答して、ユーザのデバイス上のウェブブラウザにウェブページを送信することによって、ユーザと対話することができる。また、コンピュータは、テキストメッセージまたは他の形式のメッセージを、パーソナルデバイス、例えば、メッセージアプリケーションを走らせているスマートフォンに送信し、その見返りにユーザから応答メッセージを受信することによって、ユーザと対話することができる。
【0113】
機械学習モデルを実装するためのデータ処理装置には、例えば、機械学習のトレーニングまたは生産の一般的でコンピュータ集約型の部分、すなわち、推論、ワークロードを処理するための専用ハードウェアアクセラレータユニットを含めることもできる。
【0114】
機械学習モデルは、機械学習フレームワーク、例えば、TensorFlowフレームワーク、Microsoft Cognitive Toolkitフレームワーク、Apache Singaフレームワーク、またはApache MXNetフレームワークを使用して、実装および展開され得る。
【0115】
本明細書に記載の主題の実施形態は、バックエンドコンポーネントを、例えば、データサーバとして含むか、またはミドルウェアコンポーネントを、例えば、アプリケーションサーバとして含むか、またはフロントエンドコンポーネント、例えば、経由してユーザが本明細書に記載の主題の実装例と対話することができる、グラフィカルユーザインターフェース、ウェブブラウザ、もしくはアプリを有する、クライアントコンピュータを含む、コンピューティングシステム、あるいは1つ以上のかかるバックエンド、ミドルウェア、もしくはフロントエンドのコンポーネントの任意の組み合わせに実装され得る。システムのコンポーネントは、デジタルデータ通信の任意の形式または媒体、例えば、通信ネットワークによって相互配線され得る。通信ネットワークの実施例としては、ローカルエリアネットワーク(LAN)およびワイドエリアネットワーク(WAN)、例えば、インターネットが挙げられる。
【0116】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは概して、互いにリモートであり、典型的には通信ネットワークを介して対話する。クライアントとサーバとの関係は、それぞれのコンピュータで実行され、かつ互いにクライアントとサーバとの関係を有している、コンピュータプログラムによって生じる。いくつかの実施形態では、サーバは、例えば、デバイスと対話するユーザにデータを表示し、ユーザからのユーザ入力を受信する目的で、データ、例えば、HTMLページを、クライアントとして作用するユーザデバイスに伝送する。例えば、ユーザ対話の結果としてユーザデバイスで生成されたデータは、デバイスからサーバで受信され得る。
【0117】
本明細書は多くの特定の実装例の詳細を含んでいるが、これらは、任意の発明の範囲、または特許請求され得る事項の範囲に対する限定として解釈されるべきではなく、特定の発明の特定の実施形態に特異的であり得る特徴の説明として解釈されるべきである。別個の実施形態の局面で本明細書に記載された特定の特徴を、単一の実施形態で組み合わせて実装することもできる。逆に、単一の実施形態の文脈で本明細書に記載されている種々の特徴は、複数の実施形態で、別個に、または任意の好適なサブコンビネーションで実施することもできる。さらに、特徴は、特定の組み合わせで作用するものとして上記に説明され、当初はそのように特許請求されることがあるが、場合によっては、特許請求された組み合わせからの1つ以上の特徴が、その組み合わせから削除される可能性もあり、特許請求された組み合わせが、サブコンビネーションまたはサブコンビネーションの変形に向けられる可能性もある。
【0118】
同様に、動作が特定の順序で図面に描かれ、特許請求の範囲に引用されているが、これは、かかる動作が、所望の結果を達成するために、示される特定の順序もしくは一連の順序で遂行されること、またはすべての例示される動作が遂行されることを要求するものとして理解されるべきではない。特定の状況では、マルチタスクおよび並列処理が有利な場合がある。さらに、上記した実施形態における様々なシステムモジュールおよびコンポーネントの分離は、すべての実施形態においてかかる分離を必要とするものとして理解されるべきではなく、記載されたプログラムコンポーネントおよびシステムは、概して、単一のソフトウェア製品内に共に一体化されてもよく、または複数のソフトウェア製品にパッケージ化されてもよい。
【0119】
主題の特定の実施形態を説明してきた。他の実施形態は、以下の特許請求の範囲内に存在する。例えば、特許請求の範囲に記載された動作は、異なる順序で遂行されてもよく、望ましい結果を依然として達成することができる。一例として、添付の図に図示されたプロセスは、望ましい結果を達成するために、必ずしも示された特定の順序、または一連の順序を必要としない。場合によっては、マルチタスクおよび並列処理が有利な場合がある。
図1
図2
図3
図4
図5
【国際調査報告】