(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-12
(45)【発行日】2022-12-20
(54)【発明の名称】オブジェクトの姿勢推定を生成するシステム、デバイス、および方法
(51)【国際特許分類】
G06T 7/70 20170101AFI20221213BHJP
G06T 7/00 20170101ALI20221213BHJP
【FI】
G06T7/70 B
G06T7/00 350C
【外国語出願】
(21)【出願番号】P 2020051698
(22)【出願日】2020-03-23
【審査請求日】2022-06-20
(32)【優先日】2019-03-21
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-03-18
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】518102470
【氏名又は名称】トヨタ リサーチ インスティテュート,インコーポレイティド
(74)【代理人】
【識別番号】100099759
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100092624
【氏名又は名称】鶴田 準一
(74)【代理人】
【識別番号】100147555
【氏名又は名称】伊藤 公一
(74)【代理人】
【識別番号】100123593
【氏名又は名称】関根 宣夫
(74)【代理人】
【識別番号】100133835
【氏名又は名称】河野 努
(74)【代理人】
【識別番号】100141162
【氏名又は名称】森 啓
(72)【発明者】
【氏名】橋本 国松
(72)【発明者】
【氏名】ズイ-ヌウェン タ フィン
(72)【発明者】
【氏名】エリック エー.カズノー
(72)【発明者】
【氏名】ラッセル エル.テッドレイク
【審査官】新井 則和
(56)【参考文献】
【文献】特開2012-043308(JP,A)
【文献】Georgios Pavlakos et al.,6-DoF Object Pose from Semantic Keypoints,2017 IEEE International Conference on Robotics and Automation (ICRA),2017年06月03日,https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=7989233
【文献】安藤 慎吾 外3名,サポートベクトル回帰を用いた三次元物体の姿勢推定法,電子情報通信学会論文誌 D Vol.J89-D No.8,2006年08月01日
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00-7/90
(57)【特許請求の範囲】
【請求項1】
姿勢推定デバイスによって実行される方法であって、
画像センサーを介してオブジェクトの画像を取得するステップと、
前記オブジェクトの3次元表現を含む3次元オブジェクト空間内の前記オブジェクトの球体境界を推定することにより、前記オブジェクトの姿勢推定を生成するステップであって、
該姿勢推定は、前記オブジェクトの姿勢の複数の姿勢コンポーネントの各々に対して、それぞれのヒートマップを含み、
前記複数の姿勢コンポーネントは、前記オブジェクトの仰角、前記オブジェクトの方位角、前記オブジェクトのオブジェクト中心、前記オブジェクトのオブジェクト北ポイント、前記オブジェクトの面内回転、および、前記オブジェクトのオブジェクト境界を含み、
前記姿勢コンポーネントの各々の前記それぞれのヒートマップは、前記画像の1つ以上のピクセルの各々での該姿勢コンポーネントの不確実性のそれぞれの不確実性の指標を含み、
それぞれのオブジェクト境界ヒートマップの前記不確実性の指標は、カメラ平面への前記3次元オブジェクト空間の2次元投影を含む、2次元カメラ平面への前記球体境界の2次元投影に基づく、ステップと、
前記オブジェクト境界ヒートマップに基づいて推定オブジェクト半径を取得するステップと、
オブジェクトモデルのデータベースの中から前記オブジェクトの3次元オブジェクトモデルを識別するステップと、
前記取得された推定半径の前記識別されたオブジェクトモデルのサイズとの比較に基づいて、前記オブジェクトのスケール、および、前記オブジェクトと前記画像センサーとの間の距離の両方を推定するステップと、を含む方法であり、
前記オブジェクト空間は、前記オブジェクトの3次元表現を含み、
前記オブジェクト空間の原点は、前記オブジェクトの前記オブジェクト中心に対応し、前記オブジェクト空間内のカメラ・ポイントの位置は、シーン内の前記画像センサーの位置に対応する、
方法。
【請求項2】
前記オブジェクトの仰角のそれぞれの仰角ヒートマップは、それぞれの3次元ヒートマップを含み、
前記オブジェクトの前記方位角のそれぞれの方位角ヒートマップは、それぞれの3次元ヒートマップを含み、
前記オブジェクトの前記オブジェクト中心のそれぞれのキーポイント・ヒートマップは、それぞれの2次元ヒートマップを含み、
前記オブジェクトの前記オブジェクト北ポイントのそれぞれの北キーポイント・ヒートマップは、それぞれの2次元ヒートマップを含み、
前記オブジェクトの前記面内回転のそれぞれの面内回転ヒートマップは、それぞれの3次元ヒートマップを含み、
前記オブジェクトの前記オブジェクト境界のそれぞれのオブジェクト境界ヒートマップは、それぞれの2次元ヒートマップを含む、
請求項1に記載の方法。
【請求項3】
前記姿勢の前記ヒートマップの第1次元および第2次元は、それぞれ、前記画像の第1軸と第2軸に対応し、前記仰角ヒートマップの第3次元は、前記オブジェクトの仰角に対応し、前記方位角ヒートマップの第3次元は、前記オブジェクトの方位角に対応し、前記面内回転ヒートマップの第3次元は、前記オブジェクトの面内回転角に対応する、
請求項2に記載の方法。
【請求項4】
前記姿勢コンポーネントの各々の前記それぞれのヒートマップは、前記画像を形成するピクセルのグリッドに関して、前記第1次元および前記第2次元に沿ってスケーリングされるヒートマップコンポーネントのそれぞれのグリッドを含む、
請求項3に記載の方法。
【請求項5】
プロセッサと、非一時的コンピューター可読記憶媒体とを備えた姿勢推定デバイスであって、該非一時的コンピューター可読記憶媒体は、
前記プロセッサによって実行されると、該姿勢推定デバイスに、
画像センサーを介してオブジェクトの画像を取得させ、
前記オブジェクトの3次元表現を含む、3次元オブジェクト空間内の前記オブジェクトの球体境界を推定することにより、前記オブジェクトの姿勢推定を生成させ、
ここで、該姿勢推定は、オブジェクトの姿勢の複数の姿勢コンポーネントの各々に対して、それぞれのヒートマップを含み、
前記オブジェクトの前記複数の姿勢コンポーネントは、前記オブジェクトの仰角、前記オブジェクトの方位角、前記オブジェクトのオブジェクト中心、前記オブジェクトのオブジェクト北ポイント、前記オブジェクトの面内回転、および、オブジェクトのオブジェクト境界を含み、
前記姿勢コンポーネントの各々の前記それぞれのヒートマップは、前記画像の1つ以上のピクセルの各々において該姿勢コンポーネントの不確実性のそれぞれの不確実性指標を含み、
それぞれのオブジェクト境界ヒートマップの前記不確実性の指標は、カメラ平面への前記3次元オブジェクト空間の2次元投影を含む、2次元カメラ平面への前記球体境界の2次元投影に基づくものであり、
前記オブジェクト境界ヒートマップに基づいて推定オブジェクト半径を取得させ、
オブジェクトモデルのデータベースの中から前記オブジェクトの3次元オブジェクトモデルを識別させ、
前記取得された推定半径の前記識別されたオブジェクトモデルのサイズとの比較に基づいて、前記オブジェクトのスケール、および、前記オブジェクトと前記画像センサーとの間の距離の両方を推定させる
命令を有し、
ここで、
前記オブジェクト空間は、前記オブジェクトの3次元表現を含み、
前記オブジェクト空間の原点は、前記オブジェクトの前記オブジェクト中心に対応し、
前記オブジェクト空間内のカメラ・ポイントの位置は、
シーン内の前記画像センサーの位置に対応する、
姿勢推定デバイス。
【請求項6】
前記オブジェクトの仰角のそれぞれの仰角ヒートマップは、それぞれの3次元ヒートマップを含み、
前記オブジェクトの前記方位角のそれぞれの方位角ヒートマップは、それぞれの3次元ヒートマップを含み、
前記オブジェクトの前記オブジェクト中心のそれぞれのキーポイント・ヒートマップは、
それぞれの2次元ヒートマップを含み、
前記オブジェクトの前記オブジェクト北ポイントのそれぞれの北キーポイント・ヒートマップは、それぞれの2次元ヒートマップを含み、
前記オブジェクトの前記面内回転のそれぞれの面内回転ヒートマップは、それぞれの3次元ヒートマップを含み、
前記オブジェクトの前記オブジェクト境界のそれぞれのオブジェクト境界ヒートマップは、それぞれの2次元ヒートマップを含む、
請求項5に記載の姿勢推定デバイス。
【請求項7】
前記姿勢の前記ヒートマップの第1次元および第2次元は、それぞれ、前記画像の第1軸と第2軸に対応し、
前記仰角ヒートマップの第3次元は、前記オブジェクトの仰角に対応し、
前記方位角ヒートマップの第3次元は、前記オブジェクトの方位角に対応し、
前記面内回転ヒートマップの第3次元は、前記オブジェクトの面内回転角に対応する、
請求項6に記載の姿勢推定デバイス。
【請求項8】
前記姿勢コンポーネントの各々の前記それぞれのヒートマップは、前記画像を形成するピクセルのグリッドに関して、前記第1次元および前記第2次元に沿ってスケーリングされるヒートマップコンポーネントのそれぞれのグリッドを含む、
請求項7に記載の姿勢推定デバイス。
【請求項9】
姿勢推定デバイスによって実行される方法であって、該方法は、
1つ以上のトレーニング画像を生成するステップであって、各々が、それぞれの姿勢のオブジェクトモデルの2次元投影を含む、ステップと、
前記トレーニング画像ごとにそれぞれのヒートマップセットを生成するステップであって、
該それぞれのヒートマップセットは、トレーニング画像に投影されたオブジェクトモデルのそれぞれの姿勢の複数の姿勢コンポーネントの各々に対して、それぞれのグラウンドトゥルース不確実性ヒートマップを含み、
前記複数の姿勢コンポーネントは、オブジェクトの仰角、前記オブジェクトの方位角、前記オブジェクトのオブジェクト中心、前記オブジェクトのオブジェクト北ポイント、前記オブジェクトの面内回転、および、オブジェクトのオブジェクト境界を含み、
該それぞれのグラウンドトゥルース不確実性ヒートマップはそれぞれの前記トレーニング画像の1つ以上のピクセルの各々において前記姿勢コンポーネントの不確実性のそれぞれの不確実性割り当てを含む、
ステップと、
前記トレーニング画像および前記トレーニング画像のために生成された前記それぞれのヒートマップセットの前記グラウンドトゥルース不確実性ヒートマップとに基づいたニューラルネットワークを訓練するステップと、
画像センサーを介して取得したオブジェクトの画像を受信するステップと、
前記オブジェクトの3次元表現を含む、3次元オブジェクト空間内の前記オブジェクトの球体境界を推定することにより、前記オブジェクトの姿勢推定を生成するステップであって、
該姿勢推定は、前記オブジェクトの姿勢の複数の姿勢コンポーネントの各々に対して、前記ニューラルネットワークを介してそれぞれの不確実性ヒートマップを含み、
該それぞれの不確実性ヒートマップは、前記画像の1つ以上のピクセルの各々での前記姿勢コンポーネントの不確実性のそれぞれの不確実性の指標を含み、
オブジェクト境界ヒートマップの前記不確実性の指標は、カメラ平面の上の前記3次元オブジェクト空間の2次元投影を含む、2次元カメラ平面への前記球体境界の2次元投影に基づいている、
ステップと、
前記オブジェクト境界ヒートマップに基づいて推定オブジェクト半径を取得するステップと、
オブジェクトモデルのデータベースの中から、前記オブジェクトの3次元オブジェクトモデルを識別するステップと、
前記取得された推定半径の前記識別されたオブジェクトモデルのサイズとの比較に基づいて、前記オブジェクトのスケール、および、前記オブジェクトと前記画像センサーとの間の距離の両方を推定するステップと、
を含み、
ここで、
前記オブジェクト空間は、前記オブジェクトの3次元表現を含み、
前記オブジェクト空間の原点は、前記オブジェクトの前記オブジェクト中心に対応し、
前記オブジェクト空間内のカメラ・ポイントの位置は、シーン内の前記画像センサーの位置に対応する、
方法。
【請求項10】
前記オブジェクトの仰角のそれぞれの仰角ヒートマップは、それぞれの3次元ヒートマップを含み、
前記オブジェクトの前記方位角のそれぞれの方位角ヒートマップは、それぞれの3次元ヒートマップを含み、
前記オブジェクトの前記オブジェクト中心のそれぞれのキーポイント・ヒートマップは、それぞれの2次元ヒートマップを含み、
前記オブジェクトの前記オブジェクト北ポイントのそれぞれの北キーポイント・ヒートマップは、それぞれの2次元ヒートマップを含み、
前記オブジェクトの前記面内回転のそれぞれの面内回転ヒートマップは、
それぞれの3次元ヒートマップを含み、
前記オブジェクトの前記オブジェクト境界のそれぞれのオブジェクト境界ヒートマップは、それぞれの2次元ヒートマップを含む、
請求項9に記載の方法。
【請求項11】
前記生成された姿勢推定の前記ヒートマップの第1次元および第2次元は、それぞれ、前記画像の第1軸と第2軸に対応し、前記仰角ヒートマップの第3次元は、前記オブジェクトの仰角に対応し、
前記方位角ヒートマップの第3次元は、前記オブジェクトの方位角に対応し、
前記面内回転ヒートマップの第3次元は、前記オブジェクトの面内回転角に対応する、
請求項10に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
[関連アプリケーションへの相互参照]
この出願は、2019年3月21日に提出された米国仮出願第62/821566号の利益を主張する。その内容全体は、参照によりその全体が組み込まれる。
【0002】
本開示は、一般に、姿勢推定システム(pose estimation system)、姿勢推定デバイス、姿勢推定システムとデバイスによって実行される方法に関する。より具体的には、システム、デバイス、およびオブジェクトの姿勢推定を生成するための方法に関する。
【背景技術】
【0003】
ロボット、車両、他のデバイスやシステムでは、コンピュータビジョンを使用してさまざまなタスクを実行できる。例えば、ロボットは、コンピュータビジョンを使用して、おそらく、オブジェクトをつかむために機械的なアームを使用することによって、シーン内のオブジェクトとやり取りすることができる。車両(自動運転車など)は、車両ドライバーに代わって介入を実行するため、おそらく車両の軌道を変更することにより、シーンで識別された道路上のオブジェクトを回避するため、コンピュータビジョンを使用することができる。しかしながら、既存のシステムは、特定のシーンのそれぞれ異なるビューを表す画像に基づいて、コンピュータビジョンを実行するための十分なメカニズムを提供しない。また、既存のシステムは、特定のシーン内のあいまいさを適切に考慮していない。
【発明の概要】
【0004】
本開示の実施形態は、姿勢推定デバイスによって実行される方法の形態をとる。この方法は、オブジェクトの画像を取得すること、および、オブジェクトの姿勢推定を生成することを含む。姿勢推定には、オブジェクトの姿勢の複数の姿勢コンポーネントのそれぞれのヒートマップが含まれる。そして、各姿勢コンポーネントのそれぞれのヒートマップは、画像の1つ以上のピクセルのそれぞれにおいて、姿勢コンポーネントの不確実性のそれぞれの不確実性表示を含む。
【0005】
別の実施形態は、プロセッサおよび、命令が含まれている非一時的なコンピュータ可読記憶媒体を含む姿勢推定デバイスの形態をとる。プロセッサによって実行されると、この命令は、姿勢推定デバイスにオブジェクトの画像を取得させ、オブジェクトの姿勢推定を生成させる。姿勢推定には、オブジェクトの姿勢の複数の姿勢コンポーネントのそれぞれに対して、それぞれのヒートマップが含まれる。そして各姿勢コンポーネントのそれぞれのヒートマップは、画像の1つ以上のピクセルのそれぞれにおいて、姿勢コンポーネントの不確実性のそれぞれの不確実性表示を含む。
【0006】
さらなる実施形態は、姿勢推定デバイスによって実行される方法の形をとる。この方法は、1つ以上のトレーニング画像の生成を含み、各トレーニング画像は、それぞれの姿勢において、オブジェクトモデルの2次元投影を含む。この方法は、トレーニング画像ごとにそれぞれのヒートマップセットを生成することをさらに含む。それぞれのヒートマップセットには、トレーニング画像に投影されたオブジェクトモデルのそれぞれの姿勢の複数の姿勢コンポーネントのそれぞれに対して、それぞれのグラウンドトゥルース(ground-truth)不確実性ヒートマップが含まれている。それぞれのグラウンドトゥルース不確実性ヒートマップは、それぞれのトレーニング画像の1つ以上のピクセルのそれぞれにおいて、姿勢コンポーネントの不確実性のそれぞれの不確実性の割り当てを含む。この方法は、トレーニング画像用に生成されたそれぞれのヒートマップセットにおいて、トレーニング画像およびグラウンドトゥルース不確実性ヒートマップに基づいてニューラルネットワークをトレーニングすること、センサを介して取得したオブジェクトの画像を受信することをさらに含む。この方法には、オブジェクトの姿勢の複数の姿勢コンポーネントのそれぞれについてニューラルネットワークを介してそれぞれの不確実性ヒートマップを生成することも含まれる。それぞれの不確実性ヒートマップは、画像の1つ以上のピクセルのそれぞれにおいて、姿勢コンポーネントの不確実性のそれぞれの不確実性表示を含む。
【0007】
本開示の実施形態によって提供されるこれらおよび追加の特徴は、以下の詳細な説明を、図面と併せて考慮して、より完全に理解される。
【図面の簡単な説明】
【0008】
図面に記載されている実施形態は、本質的に図示および例示であり、開示を制限することを意図していない。例示的な実施形態の以下の詳細な説明は、以下の図面と併せて読むと理解できる。ここで、同様の構造は同様の参照番号で示されている。
【
図1】
図1は、本明細書で図示し説明する1つまたは複数の実施形態による姿勢推定システムを示している。
【
図2】
図2は、本明細書で図示し説明する1つまたは複数の実施形態による姿勢推定デバイスを示しています。
【
図3a】
図3aは、本明細書で図示し説明する1つまたは複数の実施形態による、姿勢の1つ以上のコンポーネントが表現されることができるものに関してオブジェクト空間を示している。
【
図3b】
図3bは、本明細書で図示し説明する1つまたは複数の実施形態による、姿勢の1つ以上のコンポーネントが関する表現されることができることに関するカメラ平面を示している。
【
図4a】
図4aは、オブジェクト空間内の姿勢のコンポーネントを示している。本明細書で説明および図示される1つまたは複数の実施形態による。
【
図4b】
図4bは、本明細書で説明および図示される1つまたは複数の実施形態による、カメラプレーンの姿勢のコンポーネントを示している。
【
図5】
図5は、本明細書で図示し説明する1つまたは複数の実施形態による、オブジェクトの姿勢の姿勢推定のコンポーネントを示している。
【
図6a】
図6aは、本明細書で図示し説明する1つまたは複数の実施形態による、キーポイント姿勢コンポーネントの2次元ヒートマップの例を示している。
【
図6b】
図6bは、本明細書で図示し説明する1つまたは複数の実施形態による、仰角姿勢コンポーネントの3次元ヒートマップの例を示している。
【
図7】
図7は、本明細書で図示し説明する1つまたは複数の実施形態による、姿勢推定デバイスにより実行される方法のフローチャートを示す。
【
図8】
図8は、本明細書に例示および記載される1つ以上の実施形態による、姿勢推定デバイスにより実行される方法のフローチャートを示す。
【発明を実施するための形態】
【0009】
デバイスは、カメラまたは他のセンサを介して観測されたオブジェクトの姿勢を推定できる。オブジェクトの姿勢には、オブジェクトに関して観測者の仰角や方位角(カメラなど)いくつかの姿勢コンポーネントが含まれる場合がある。1人の観察者から見たオブジェクトの姿勢は、第2のオブザーバーが見るようなオブジェクトの姿勢と異なる場合がある。そのような場合、デバイスは、たとえば、オブジェクトの画像のそれぞれの姿勢推定をさまざまな観点から生成することにより、複数の姿勢推定を生成できる。しかしながら、多くの場合、これらの異なる姿勢推定を融合して、すべての姿勢推定の情報が組み込まれている姿勢推定を作成することはできない。したがって、それは、単一の観点から観察されるオブジェクトの姿勢推定よりも正確である。
【0010】
姿勢推定システム、姿勢推定デバイス、および、オブジェクトの姿勢推定を生成する方法について、本明細書では、説明する。いくつかの実施形態では、姿勢推定デバイスがオブジェクトの画像を取得し、オブジェクトの姿勢推定を生成する。姿勢推定には、オブジェクトの姿勢の複数の姿勢コンポーネントのそれぞれに対して、それぞれのヒートマップが含まれる。姿勢コンポーネントごとのそれぞれのヒートマップは、画像の1つ以上のピクセルのそれぞれにおいて、姿勢コンポーネントの不確実性のそれぞれの不確実性表示を含む。姿勢コンポーネントのそれぞれの不確実性ヒートマップで姿勢推定を生成することにより、生成された姿勢推定は互いに、または、他の確率的情報と融合できる。姿勢推定システムのさまざまな実施形態、姿勢推定デバイス、およびオブジェクトの姿勢推定を生成するための方法は、以下で、図面を参照して詳細に説明する。
【0011】
図1は、本明細書に例示および記載される1つ以上の実施形態による姿勢推定システムを示している。図示されているように、システム100は、デバイス102、センサ104およびデータベース106の形態の姿勢推定デバイスを含む。システム100は、オブジェクト112の画像120を取得し、オブジェクト112の姿勢の姿勢推定130を生成する。
【0012】
デバイス102は、本明細書に記載の姿勢推定デバイスの機能を実行することが可能な任意のデバイスの形態を取り得る。例えば、デバイス102は、オブジェクト(オブジェクト112など)、ロボットを動かすための1つ以上の車輪またはロボットの足、またはこれらの組み合わせを取得または操作するために、1つ以上のロボットハンドを含むロボットの形態をとることができる。これらは、ほんの一例である。別の可能性として、他の例の中で、デバイス102は、自動運転車、半自律車両、(たとえば、
図1に示すように自動車の形の)手動操作の車両、または、これらの任意の組み合わせなど車両の形をとることができ、さらなる可能性として、デバイス102は、例として、サーバーコンピュータ、メインフレーム、仮想マシン、ワークステーション、ターミナル、またはパソコンの形をとることができる。デバイス102は、これら、または他のデバイスの任意の組み合わせの形態を取ることができることを理解すべきである。一実施形態では、システム100は、デバイス102を介して姿勢推定130を生成する。
【0013】
センサ104(画像センサとも呼ばれる)は、シーンの画像を表すデータを取得するように動作可能な1つ以上のセンサの形式をとることができる。そして、本明細書で説明される他のセンサ機能を実行する。一実施形態では、システム100は、センサ104を介して画像120を取得する。いくつかの実施形態では、センサ104は、デバイス102に配置または取り付けることができる。例えば、デバイス102は、ロボットまたは車両の形をとることができ、センサ104は、ロボットまたは車両の外部に取り付けることができる。いくつかの実施形態では、センサ104は、例えば、ネットワーク経由など、デバイス102とは別個であるが通信可能に接続されている。
【0014】
一実施形態では、センサ104は、センサの観点からシーンの画像を取得するためにデバイス102で使用できる信号(電磁放射など)を取得する。例えば、センサ104は、デジタルカメラ、レーダーセンサLIDARセンサ、またはこれらまたは他のセンサの任意の組み合わせの形態を取る(または含む)ことができる。カメラは、光またはその他の電磁放射を収集することができる。そして、収集された放射線に基づいてシーンの画像を生成することができる。レーダーセンサおよび/またはLIDARセンサは、(パルスレーザー光や電波など)信号を送信でき、センサからオブジェクト(オブジェクト112など)の表面までの距離測定値を、信号の飛行時間に基づいて、取得することができる。つまり、信号が送信されてから(オブジェクトの表面で反射した)反射信号が送信されるまでの時間を、センサが受信する。
【0015】
データベース106は、オブジェクト112、例としてセンサ104を介して取得された1つ以上の画像(画像120など)、または他のデータなどのオブジェクトの1つ以上の3次元オブジェクトモデル(または他のモデル)を格納することができる。データベース106は、リレーショナルまたは非リレーショナルDBMS、サーバーコンピューティングデバイス、クラウドコンピューティングデバイス、またはこれらまたは他のデータベースの任意の組み合わせなどデータベース管理システム(DBMS)の形式を取ることができる。追加または代替として、データベース106はテーブル、フラットファイル、データストレージのファイルシステム内のデータ、ヒープファイル、B +ツリー、ハッシュテーブル、ハッシュバケット、またはこれらの任意の組み合わせの形をとることができる。データベース106は、デバイス102とは別個のデバイスの形をとることができる。その場合、データベースはデバイス102に、たとえば、ネットワーク経由で通信可能に接続できる。オブジェクトモデル、画像、そして、他のデータは、ネットワークを介してデータベース106からデバイス102によって取得できる。追加または代替として、デバイス102はデータベース106を含むことができ、オブジェクトモデル画像、または、他のデータを、デバイス102のデータストレージに保存できる。
【0016】
上記のように、いくつかの実施形態では、システム100はネットワークを含むことができ、次に、1つ以上のコンピューティングシステム、ネットワークに通信可能に接続された(デバイス102センサ104および/またはデータベース106など)1つ以上のエンティティ間でデータの転送を容易にするように構成された少なくとも1つのネットワークインフラストラクチャを含むことができる。このネットワークは、1つ以上の広域ネットワーク(WAN)および/またはローカルエリアネットワーク(LAN)を含むことができる。これらは、有線および/または無線ネットワークであり得る。いくつかの例では、このネットワークには、他の可能性の中で、インターネットおよび/または1つ以上の無線セルラーネットワークが含まれることがあり得る。ネットワークは、イーサネット(登録商標)、Wi-Fi、インターネットプロトコル(IP)、伝送制御プロトコル(TCP)、長期的進化(LTE)、など1つ以上の通信プロトコルに従って動作する。ネットワークは単一のネットワークとして示されているが、ネットワークには、複数のそれ自体が通信可能にリンクされている別個のネットワークが含まれる場合があることを理解されるべきである。システム100の1つまたは複数のエンティティは、通信可能に、それぞれの通信リンクを介してネットワークに接続することができる。これは、ネットワークに通信可能に接続されたエンティティ間の通信を容易にし、また、1つ以上の有線および/または無線通信リンクの形式を取ることもできる。通信リンクのいずれかは、ハードウェアおよび/またはソフトウェアの組み合わせであり得、おそらく、1つ以上の物理的なリンク、通信ネットワーク、搬送、および/またはアプリケーション層など、1つ以上の通信リンク層で動作する。ネットワークと通信リンクも、他の形式をとることができる。
【0017】
システム100は、異なるおよび/または追加のコンポーネントを含むことができる。例えば、
図1に示すようにシステム100は、デバイス152、センサ154などの少なくとも1つの追加センサ、またはこれらまたは他のコンポーネントの任意の組み合わせなどの少なくとも1つの追加デバイスを含むことができる。センサ104は、本開示内において単数形で参照される場合があるが、センサ104は、単一のセンサまたは複数のセンサの形態を取る(または含む)ことができることは理解されるべきである。
【0018】
シーン110は、センサ104またはセンサ154などオブザーバーが所定の時間に知覚するように、物理的環境の形をとることがあり得る。そして、オブジェクト112はシーン110内にあり得る。例えば、シーン110には、床、壁、テーブルトップなどの表面を含めることができる。そして、シーン110内のオブジェクト112は、これらの表面のうちの1つ以上に配置され得る。シーン110には追加のオブジェクトも含めることができる。
【0019】
オブジェクト112は、任意のオブジェクトの形をとることができる。例えば、デバイス102はロボットの形をとることができ、そして、オブジェクト112はつかむこと、移動すること、または、1つ以上のロボットアームまたはアクチュエータを介してロボットによって操作されることができるオブジェクトである可能性がある。別の可能性として、デバイス102は車両(vehicle)の形をとることができ、オブジェクト112は、例として、交通標識、歩行者、または別の車両であり得る。
図1に示す実施形態では、オブジェクト112は、ハンドル付きの飲料マグカップの形をとる。
【0020】
画像120は、(センサ104またはセンサ154の視点など)特定の視点からの観察者が見たときにシーン110の画像の形をとることができる。いくつかの実施形態では、画像120は、例えば、ピクセルの長方形グリッドなど、ピクセルのグリッドの形をとることがあり、一実施形態では、画像120はピクセルのビットマップの形を取り、画像内のピクセルのそれぞれの位置は明示的に示されていない。ただし、ビットマップ自体のデータ構造から推測される。場合によっては、画像120の各ピクセルの位置は、デカルト座標系を使用して識別できる。ここで、x軸はピクセルの水平位置を表し、y軸はピクセルの垂直位置(またはその逆)を表す。座標系の原点は、画像の中心や画像の所定の角など、画像120の任意の位置の形をとることができる。
【0021】
画像120は、例としてレーダー画像、またはLIDARイメージなど視覚画像の形を取ることができる。例えば、画像は写真またはビデオの静止フレームのデジタル表現の形を取ることができ、他の可能性の中で、共同写真専門家グループ(JPEG)画像、ポータブルネットワークグラフィックス(PNG)イメージ、タグ付き画像ファイル形式(TIFF)画像、またはグラフィックスインターチェンジ形式(GIF)画像など、非圧縮または圧縮された画像である可能性がある。
【0022】
姿勢推定130は、画像120に基づいてデバイス102によって生成され得る。姿勢推定に関する追加の詳細を以下に示す。
【0023】
図2は、姿勢推定デバイスを示している。本明細書に例示および記載される1つ以上の実施形態による。図示されているように、デバイス102は、プロセッサ202、データストレージ204、および通信インターフェース206を含み、それぞれがシステムバス208を介して通信可能に接続されている。デバイス102は、画像120を取得し、取得した画像に基づいて姿勢推定130を生成する。図示されているように、デバイス102は、ニューラルネットワーク220を実行する。
【0024】
プロセッサ202は、1つ以上の汎用プロセッサおよび/または1つ以上の専用プロセッサの形態をとることができる。また、例として、データストレージ204、通信インターフェース206、および/またはデバイス102の他のコンポーネントと全体的または部分的に統合することもできる。したがって、プロセッサ202は、他の可能性の中で、コントローラ、集積回路、マイクロチップ、中央処理装置(CPU)、マイクロプロセッサ、システムオンチップ(SoC)、フィールドプログラマブルゲートアレイ(FPGA)、および/または特定用途向け集積回路(ASIC)の形態をとるか、コントローラを含むことができる。
【0025】
データストレージ204は、ハードドライブ、ソリッドステートドライブ、消去可能なプログラマブル読み取り専用メモリ(EPROM)ユニバーサルシリアルバス(USB)ストレージデバイス、コンパクトディスク読み取り専用メモリ(CD-ROM)ディスク、デジタル多用途ディスク(DVD)、データベース管理システム、その他の不揮発性ストレージ、またはこれらの任意の組み合わせなど非一時的なコンピュータ可読ストレージ媒体の形をとることができる。これは、ほんのいくつかの例を挙げたものである。
【0026】
命令205は、データストレージ204に格納することができ、そして、デバイス102に、本明細書で説明する姿勢推定機能を実行させるために、プロセッサ202により実行可能な機械語命令を含むことができる。追加または代替として、命令205は、スクリプト命令で指定された命令を実行するために、プロセッサ202とデバイス102に実行させるように構成されたスクリプトインタプリタにより実行可能なスクリプト命令を含み得る。当業者は、命令205が他の形式を取り得ることを認識する。
【0027】
1つ以上のトレーニング画像またはオブジェクトのオブジェクトモデルなど、追加のデータを、データストレージ204に保存することができる。これは、以下でさらに詳しく説明する。追加データは、例として、テーブル、フラットファイル、データストレージのファイルシステム内のデータ、ヒープファイル、B +ツリー、ハッシュテーブル、ハッシュバケット、またはこれらの任意の組み合わせとして保存できる。
【0028】
通信インターフェース206は、本明細書で説明される通信インターフェース機能を実行することが可能な任意のコンポーネントであり得る。そのため、通信インターフェース206は、他の多くの例の中で、イーサネット(登録商標)、Wi-Fi、ブルートゥース(登録商標)、および/またはUSBインターフェースの形態を取ることができる。一実施形態では、デバイス102は、センサ104を介して画像120を取得し、これは、デバイスが、通信インターフェース206経由でセンサ104から画像を取得することを伴う。
【0029】
システムバス208は、ここで説明するシステムバス機能を実行することが可能な任意のコンポーネントであり得る。一実施形態では、システムバス208は、プロセッサ202、データストレージ204通信インターフェース206、および/またはデバイス102の他のコンポーネントの間でデータを転送するように構成された任意のコンポーネントである。一実施形態では、システムバス208は、当技術分野で知られている従来のバスを含む。他の実施形態では、システムバス208は、他の多くの可能性の中で、シリアルRS-232通信リンク、USB通信リンク、および/またはイーサネット(登録商標)通信リンク、単独で、または従来のコンピュータバスと組み合わせを含む。いくつかの例では、システムバス208は、他の可能性の中で、導線、導電性トレース、または光導波路など信号を送信できる任意の媒体から形成することができる。また、システムバス208は、信号を送信できる媒体の組み合わせから形成することができる。システムバス208は、ローカル相互接続ネットワーク(LIN)バス、コントローラーエリアネットワーク(CAN)バス、車両エリアネットワーク(VAN)バス、またはこれらまたは媒体の任意の組み合わせなど車両バス(vehicle bus)の形態を取る(または含む)ことができる。当業者は、システムバス208が他のさまざまな形式をとることもあることを認識する。
【0030】
図2に示す実施形態では、デバイス102は、ニューラルネットワーク220を実行する。データストレージ204に格納されている命令205は、デバイス102にニューラルネットワーク220を実行させるために、プロセッサ202により実行可能である命令を含むことができる。追加または代替として、デバイス102は、1つ以上の電子制御ユニット(ECU)など1つ以上のハードウェアモジュールを含むことができ、ニューラルネットワーク220は、例として、ECU、プロセッサー202またはこれらの組み合わせによって実行することができる。ニューラルネットワーク220は、フィードフォワードニューラルネットワーク、畳み込みニューラルネットワーク、リカレントニューラルネットワーク、ディープニューラルネットワーク(ディープ畳み込みニューラルネットワークなど)またはこれらの組み合わせ、または他の人工ニューラルネットワークの形をとることができ、一実施形態では、デバイス102は、ニューラルネットワーク220を介して姿勢推定130を生成する。例えば、デバイス102は、画像120をニューラルネットワーク220に提供することができ、ニューラルネットワーク220は、提供された画像に基づいて姿勢推定を生成することができる。
【0031】
1つ以上の実施形態によれば、1つ以上のユークリッド空間など、1つ以上のスペースに関して、それぞれの姿勢のそれぞれのコンポーネントを表現または定義できる。
図3aおよび
図3bは、特定の姿勢の1つ以上のコンポーネントを表すことができる。
【0032】
具体的には、
図3aは、本明細書に例示および記載される1つ以上の実施形態により、どの姿勢の1つ以上のコンポーネントが表現され得るかに関するオブジェクト空間を示している。図示されているように、オブジェクト空間300は、3次元ユークリッド空間の形をとる。オブジェクト空間は、相互に直交し、交差する、原点306におけるx軸302とz軸304を含む。カメラポイント310は、オブジェクト空間300内のセンサ104の位置を表す。
【0033】
図3aには、オブジェクト空間300内のオブジェクト112も示されている。本明細書に記載の1つ以上の実施形態では、x軸302は、オブジェクト112のx軸の形をとり、z軸304は、オブジェクトのz軸の形をとる。そのような実施形態では、オブジェクト空間300のx軸は、オブジェクト112のx軸302と呼ばれる場合があり、また、オブジェクト空間のz軸は、オブジェクト112のz軸304と呼ばれる場合がある。
【0034】
一実施形態では、z軸304は、オブジェクト112の回転対称軸の形をとる。場合によっては、回転対称軸は、オブジェクト112のオブジェクト本体の主な回転対称部分の軸である可能性がある。例えば、オブジェクト112は、ハンドルを含み、そして、それは一般的に円筒形をしているマグとして
図3aに示されている。マグのz軸304は、円柱の円形の端のそれぞれの中心を通過する。
【0035】
一実施形態では、原点306は、オブジェクトの重心などオブジェクト112のオブジェクト中心の形を取り、オブジェクトの重心は、例えば、オブジェクトの身体の主要な回転対称部分の重心であり得る。そのような実施形態では、オブジェクト空間300の原点306は、オブジェクト112のオブジェクト中心と呼ばれる場合がある。
【0036】
オブジェクト空間300の北ポイント307(オブジェクト北ポイント)は、オブジェクト112のz軸304上に位置する点(原点306以外)の形をとる。「北」ポイントとしての北ポイント307への参照は任意です。北ポイント307はオブジェクト空間300の別のポイントに対して北に位置する必要がないためである。北ポイント307に関する追加の詳細を以下に示す。
【0037】
図3aは、通常は、3次元デカルト座標系の一部であるy軸を特定していないことに留意する。それは、この詳細な説明で説明した例では、オブジェクト空間300に関して表される姿勢コンポーネントは、デカルト座標系ではなく、球面座標系を使用して表現されるからである。しかしながら、この開示の範囲から逸脱することなく、直交座標系を使用して姿勢コンポーネントを表現できることは理解されるべきである。また、ただし、上記の実施形態では、オブジェクト112のそれぞれの軸として、x軸302およびz軸304について説明している。オブジェクト112の軸は、オブジェクト空間300の軸の形を取る必要はないことは理解されるべきである。
【0038】
図3aには、カメラ平面350も示されており、これは、図示の実施形態では、(3次元)オブジェクト空間300の2次元投影の形式を取る。
【0039】
図3bは、本明細書に例示および記載される1つ以上の実施形態による、姿勢の1つ以上の姿勢コンポーネントを表すことができるカメラ平面350を示す。図示されているように、カメラ平面350は、2次元ユークリッド空間(つまり、平面)の形をとり、オブジェクト空間300(3次元)が投影される(つまり、投影面)。カメラ平面は、相互に直交し、交差し、カメラ平面の特定の原点にあるx軸352とy軸354を含む。
【0040】
一実施形態では、カメラ平面350は、画像120の形をとる(または含む)。図示すると、投影面(カメラ面350など)は写真に似ている。すなわち、写真は、3次元の世界を2次元で表現したものである。同様に、カメラ平面350は、シーン110のオブジェクト112が表されている(3次元)オブジェクト空間300の2次元投影である。画像120は、(3次元)オブジェクト110を含むシーン110の2次元画像の形をとることがあるため、カメラ平面350は、画像120によって表され得る。
【0041】
一実施形態では、カメラ平面350のx軸352は、画像120のx軸の形を取り、カメラ平面のy軸354は、画像120のx軸の形をとる。例えば、いくつかの実施形態では、カメラ平面350は、画像120と、画像120の座標軸と重なるカメラ平面350の座標軸と一致している。
【0042】
図4aおよび4bは、本明細書で説明および図示される1つまたは複数の実施形態による姿勢の姿勢コンポーネントを示している。
【0043】
具体的には、
図4aは、本明細書で説明および図示される1つまたは複数の実施形態による、オブジェクト空間300内の姿勢の姿勢コンポーネントを示している。図示されているように、姿勢の姿勢コンポーネントには、仰角401と方位角402が含まれる。図示の実施形態では、仰角と方位角は(部分的に)、オブジェクトの中心(原点306)をカメラポイント310に接続する視線(viewing ray)430に関して表される。
【0044】
具体的には、仰角401は、視線430およびオブジェクト112のz軸304の間の角度の形をとり、そして、方位角402は、視線430と視線430との間の角度の形をとる。そのような実施形態では、仰角401と方位角402は、デカルト座標ではなく、球面座標として表される。そのような実施形態では、視線430に沿ったカメラポイント310の方位座標は、z軸304の周りの回転量に対応し得る。回転対称のオブジェクト(
図4aに示すマグカップなど)の場合、姿勢推定130の方位角ヒートマップ??は、たとえば、図のマグカップのハンドルが塞がれているとき、z軸を中心とした回転のあいまいさをキャプチャすることができる(以下でさらに詳しく説明する)。
【0045】
図4bは、本明細書で説明および図示される1つまたは複数の実施形態による、カメラ平面350における姿勢の姿勢コンポーネントを示している。図示されているように、姿勢の姿勢コンポーネントには、キーポイント403、北のキーポイント406、面内回転404およびオブジェクト境界405が含まれることができる。
【0046】
図示された実施形態のキーポイント403は、カメラプレーン350では、カメラ平面350に投影されたオブジェクト空間300のオブジェクト中心(原点306)の位置の形をとる。この位置は、x軸352およびy軸354に沿った投影オブジェクトの中心の2次元座標の形式をとることがある。
【0047】
北キーポイント406は、カメラプレーン350では、カメラ空間350に投影されたオブジェクト空間300の北ポイント307の位置の形式を取る。キーポイント403の位置と同様に、北キーポイント406の位置は、x軸352およびy軸354に沿って、北ポイント307の投影図の2次元座標の形をとることができる。
【0048】
面内回転404は、カメラプレーン350では、カメラ平面350のx軸352と、オブジェクト112のz軸304のカメラプレーン350への投影との間の角度の形をとる(または含む)。いくつかの実施形態では、x軸352とz軸304の間の角度は、カメラプレーン350における、(i)キーポイント403と(ii)視線430とz軸304のそれぞれのカメラプレーン350への投影の間の角度との両方の組み合わせとして表すことができる。z軸304の投影は、キーポイント403および北キーポイント406を使用して表すことができ、それは、オブジェクトの中心(原点306)と北のキーポイント406の、それぞれカメラプレーン350上への投影である。
【0049】
場合によっては、視線430とz軸304が一致する特異性条件が生じ得る。したがって、面内回転404のいくつかの実施形態は、少なくとも1つの角度が明確に定義されているような(つまり、両方の角度で特異点条件が同時に発生しないように)追加の角度を含むことができる。一実施形態では、面内回転404はさらに、カメラプレーン350では、x軸352とカメラ平面350へのオブジェクト112のx軸302の投影との間の角度を含み、場合によっては、たとえば、オブジェクト112の回転対称性の結果として、z軸304の周りにあいまいさがない場合、この角度は、カメラプレーン350では、(i)キーポイント403と(ii)視線430とx軸302のそれぞれのカメラ平面350への投影の間の角度の両方の組み合わせとして表すことができる。
【0050】
オブジェクト境界405は、カメラプレーン350では、カメラ平面へのオブジェクト空間300内のオブジェクト112の境界となる球体境界の投影である円412として示されている、仰角401、方位角402およびキーポイント403と組み合わせたオブジェクト境界405に基づいて、デバイス102は、オブジェクト中心(原点306)とカメラポイント310と間の視線430の長さを決定することができる。これは、オブジェクトの中心とセンサ104との間の距離を表す。
【0051】
一実施形態では、z軸304の投影は、オブジェクト112の既知のモデルに基づいて、例えば、北キーポイント406に基づいて、決定される。例として、北ポイント307は、オブジェクト112のz軸304上に、オブジェクト112のオブジェクト中心(原点306)から既知の距離で配置でき、z軸304の投影(またはオブジェクト112の球の境界など)は、オブジェクト空間300のオブジェクトの中心および北キーポイントそれぞれのカメラプレーン350上への投影を表すキーポイント403 および北キーポイント406に基づいて決定することができる。いくつかの実施形態では、デバイス102は、以下でさらに詳しく説明するように、データベース106からオブジェクト112の3次元モデルを取得する。
【0052】
姿勢は、異なるおよび/または追加の姿勢コンポーネントによって表現できることを理解すべきである。場合によっては、所定の姿勢コンポーネントは、1つ以上の異なる姿勢コンポーネントの関数であることができる。例えば、オブジェクト112の姿勢を、視線430の長さに少なくとも部分的に基づいて表すことができる。視線430の長さは、次に、オブジェクト境界405およびオブジェクト112のオブジェクトモデルに基づいて決定され得る。
【0053】
図5は、本明細書に例示および記載された1つ以上の実施形態による、オブジェクト112の姿勢の姿勢推定130のコンポーネントを示している。
図5に示すように姿勢推定130には、仰角ヒートマップ501、方位角ヒートマップ502、キーポイント・ヒートマップ503a、北キーポイント・ヒートマップ503b、面内回転ヒートマップ504、およびオブジェクト境界ヒートマップ505を含むヒートマップの集合が含まれる。姿勢推定130は、異なるおよび/または追加のヒートマップを含み得ることを理解するべきである。
【0054】
特定の姿勢コンポーネントのヒートマップは、画像120の1つ以上のピクセルのそれぞれに対するそれぞれの不確実性の指標が含まれる。1つ以上のピクセルのそれぞれのそれぞれの不確実性の指標は、ピクセルでの姿勢コンポーネントの不確実性の、不確実性の指標である。ヒートマップは、画像120のピクセルの複数の不確実性の指標を含むことができる。場合によっては、ヒートマップには、その画像の各ピクセル、すべてのピクセルそれぞれの不確実性の指標が含まれていないことがあり得る。通常、特定の姿勢コンポーネントの各ヒートマップは、(画像120のオブジェクトの姿勢の)姿勢コンポーネントの確率分布を表す。
【0055】
以下に、
図7および
図8を参照して説明する。デバイス102は、ニューラルネットワーク220を介して姿勢推定130のヒートマップを生成することができる。ニューラルネットワークは、ニューラルネットワークの事前訓練に基づいて、ヒートマップを生成することができる。例えば、ニューラルネットワーク220は、1つ以上のネットワークパラメータを含むことができ、以下で説明するように、ニューラルネットワークは、ネットワークパラメータに基づいて、ヒートマップを生成することができる。デバイス102は、ニューラルネットワークのトレーニング中にこれらのパラメータを設定し得る。
【0056】
再び、
図5を参照すると、姿勢推定130の所定のヒートマップは、複数の行と複数の列に配置されたヒートマップ要素のグリッドの形をとることができる。一実施形態では、画像120は、所定数の行、所定数の列に配置されたピクセルのグリッドの形をとり、ヒートマップのヒートマップ要素は、その画像と同じ行数、同じ列数に配置される。そのような実施形態では、各ヒートマップ要素は画像の特定のピクセルに対応し、その逆も同様である。別の実施形態では、姿勢推定130の所定のヒートマップは、画像120を形成するピクセルのグリッドに対してスケーリングされる(ヒートマップ要素の)グリッドの形を取る。例えば、ヒートマップHの行数wHと列数hHは、
【数1】
のように、表すことができる。ここで、sはスケーリング係数であり、wIとhIは、画像Iの(それぞれ)行と列の数である。
【0057】
ヒートマップ要素には、ヒートマップ要素に対応するピクセルのそれぞれの不確実性の指標を含めることができる。その場合、不確実性の指標は、対応するピクセルの姿勢コンポーネントの不確実性の指標である。一実施形態では、ヒートマップのヒートマップ要素には、不確実性の指標が1つしか含まれていない。この場合、ヒートマップは2次元ヒートマップの形式を取る。別の実施形態では、少なくとも1つのヒートマップ要素には、複数の不確実性の指標が含まれる。この場合、ヒートマップは3次元ヒートマップの形式を取る。ここに記載されているように、ヒートマップ要素のグリッドの第1と第2の次元は、それぞれ、グリッドの列および行に対応する。第3の次元は、それぞれのヒートマップ要素内のそれぞれの不確実性の指標に対応する。例えば、3次元グリッドの第3次元は、それぞれに含まれる不確実性の指標は1つのみあるヒートマップ要素のそれぞれの2次元ヒートマップグリッドに対応することができる。(特定の姿勢コンポーネントの3次元ヒートマップの)3次元の2次元ヒートマップの数は、(指定された姿勢コンポーネントのヒートマップ内で)不確実性の指標が最も多い画像120のピクセルの不確実性の指標の数に等しいことができる。他の例も可能である。
【0058】
場合によっては、ヒートマップには、ヒートマップ要素ごとに、それぞれの不確実性の指標が含まれていないことができる。いくつかの実施形態では、少なくとも1つの不確実性を示す(特定のヒートマップ内の)ヒートマップ要素は、(同じヒートマップ内で)少なくとも1つの不確実性の指標を有するすべてのヒートマップ要素と同じ数の不確実性の指標を有する。すなわち、特定のヒートマップ要素には不確実性の指標はない、または、(不確実性の指標がないヒートマップ要素を除く)他のすべてのヒートマップ要素と同じ数の不確実性の指標がある。
【0059】
再び、
図5を参照すると、仰角ヒートマップ501は、3次元ヒートマップの形式を取る。仰角ヒートマップ501の第1と第2の次元は、それぞれ、上記のように、グリッドの列と行に対応することができる。
図5において、仰角ヒートマップ501の第3の次元は、それぞれの2次元仰角ヒートマップ501a、501b、501c、および501nに対応する。
【0060】
仰角ヒートマップ501の2次元ヒートマップのそれぞれは、それぞれ異なる仰角401に対応することができる。例えば、仰角ヒートマップ501aは、仰角ゼロに対応することができ、仰角ヒートマップ501bは、1/4パイの仰角に対応し得る。特定の仰角401に対応する仰角ヒートマップのそれぞれの不確実性の指標は、例として、カメラ平面350に投影されたオブジェクト空間300のキーポイント403においてオブジェクトの中心(原点306)の位置(カメラ平面350)を仮定し、および/または、カメラ平面350に投影されたオブジェクト空間300が北キーポイント406にある北ポイント307の(カメラ平面350内の)位置を仮定すると、それぞれのピクセル(またはピクセルのセット)で表されるオブジェクト112の仰角の不確実性の指標であり得る。例えば、仰角ゼロに対応する仰角ヒートマップのそれぞれの不確実性の指標は、それぞれのピクセルで表示されるオブジェクト112の仰角であり得る。または、オブジェクトの中心の位置がキーポイント403にあった場合、ピクセルはゼロである。
図6bは、3次元仰角ヒートマップの例を示している。
【0061】
方位角ヒートマップ502は、3次元ヒートマップの形も取る。図示の実施形態では、方位角ヒートマップ502の第3の次元は、それぞれの2次元方位角ヒートマップ502a、502b、502c、および502nに対応する。方位角ヒートマップ502の2次元ヒートマップは、それぞれ異なる方位角402に対応する場合があり、与えられた方位角に対応する二次元方位角ヒートマップのそれぞれの不確実性の指標は、おそらくは、例えば、オブジェクトの中心の位置、または、北ポイントが、オブジェクト空間300のオブジェクトがカメラ平面350に投影されるとき、それぞれ、キーポイント403または北キーポイント406にあることを仮定すると、それぞれのピクセルで表されるオブジェクト112の方位角の不確実性の指標であり得る。
【0062】
キーポイント・ヒートマップ503aおよび北キーポイント・ヒートマップ503bは、それぞれの2次元ヒートマップの形式を取る。仰角ヒートマップ501および方位角ヒートマップ502と同様に、キーポイント・ヒートマップ503aおよび北キーポイント・ヒートマップ503bの第1および第2次元は、ヒートマップの各グリッドの列と行に対応する。一実施形態では、キーポイント・ヒートマップ503aの各不確実性の指標は、キーポイント403がそれぞれのピクセル(またはピクセル)で表される不確実性の指標の形をとる。つまり、オブジェクトの中心(原点306)は、それぞれのピクセルまたはピクセルのセットで表される。キーポイント・ヒートマップ503aの例を、
図6aを参照して以下で説明する。
【0063】
面内回転ヒートマップ504は、3次元ヒートマップの形をとる。図示の実施形態では、面内回転ヒートマップ504の3次元は、それぞれの2次元の面内回転ヒートマップ504a、504b、504c、および504nに対応する。面内回転ヒートマップ504の2次元ヒートマップのそれぞれ、オブジェクト112の面内回転404のそれぞれ異なる角度に対応することができる。与えられた面内回転角に対応する2次元の面内回転ヒートマップでのそれぞれの不確実性の指標は、たとえば、オブジェクトの中心または北の位置が、(他の可能性の中でも)上記のように、それぞれ、キーポイント403または北キーポイント406にあることを仮定すると、それぞれのピクセルで表されたオブジェクト112の面内回転角の不確実性の指標であり得る。
【0064】
オブジェクト境界ヒートマップ505は、2次元ヒートマップの形をとる。一実施形態では、それぞれのピクセル(または複数ピクセル)でのオブジェクト境界405のそれぞれの不確実性の指標である、オブジェクト境界ヒートマップ505の各不確実性の指標は、そのオブジェクト境界405において、それぞれのピクセルで表される不確実性を示す形をとる。
【0065】
図6aは、本明細書に例示および記載される1つ以上の実施形態によるキーポイント姿勢コンポーネントのヒートマップの例を示している。図示の実施形態では、キーポイント・ヒートマップ503aは、x軸602に沿って多数の列y軸604に沿った多数の行に配置されたヒートマップ要素のグリッドの形式を取る。この実施形態では、キーポイント・ヒートマップ503aのヒートマップ要素は、画像120と同じ数の行と同じ数の列に配置される。したがって、画像120の各ピクセルは、キーポイント・ヒートマップ503aに対応するヒートマップ要素、および、画像120の特定のピクセルに対応するキーポイント・ヒートマップ503aの各ヒートマップ要素を持っている。しかしながら、前述のとおり、姿勢推定130のキーポイント・ヒートマップ503a(またはその他のヒートマップ)は、他の例の中で、画像120を形成するピクセルのグリッドに関してスケーリングされる(ヒートマップ要素の)グリッドの形をとることがある。
【0066】
図示されているように、
図6aに示されているヒートマップ要素のいくつかには、ハッチングが含まれている。一実施形態では、ハッチングで示されているキーポイント・ヒートマップ503aのヒートマップ要素は、不確実性の指標を含むヒートマップ要素である。すなわち、キーポイント・ヒートマップ503aのヒートマップ要素611およびヒートマップ要素612は、各々、キーポイント・ヒートマップの他のヒートマップ要素と同様に、それぞれの不確実性の指標が含まれる。ヒートマップ要素611のそれぞれの不確実性の指標は、オブジェクト112のオブジェクト中心(原点306)がヒートマップ要素611に対応するピクセルで表される不確実性の指標である。同様に、ヒートマップ要素612のそれぞれの不確実性の指標は、ヒートマップ要素612に対応して、オブジェクト112のオブジェクト中心(原点306)がピクセルで表されている不確実性の指標である。
図6aに見られるように、キーポイント・ヒートマップ503aのいくつかのヒートマップ要素は、不確実性の指標を含まないことができる。
【0067】
図示の実施形態では、ヒートマップ要素612は斜線のハッチングで示されている。キーポイント・ヒートマップ503aの他のヒートマップ要素も同様である。ヒートマップ要素611(およびヒートマップ要素611のみ)には、十字形のハッチングが含まれている。この実施形態では、十字形のハッチングは、斜めのハッチングより不確実性が低いことを示します(つまり、より高い確実性)言い換えると、オブジェクト112のオブジェクト中心(原点306)がヒートマップ要素612に対応するピクセルで表されている不確実性は、オブジェクトの中心は、ヒートマップ要素611に対応するピクセルで表されている不確実性よりも高い。
【0068】
図6bは、本明細書に例示および記載される1つ以上の実施形態による仰角姿勢コンポーネントのヒートマップの例を示している。図示の実施形態では、3次元仰角ヒートマップ501のx軸652およびy軸654は、それぞれ、画像120のx軸とy軸に対応する。Z軸656は、この例では、仰角方向の軸に対応する。Z軸656の仰角ヒートマップ501の各「スライス」は、方向の軸において、それぞれの角度を表す2次元ヒートマップに対応する。例えば、上記のように、仰角ヒートマップ501aは、仰角ゼロに対応することができ、仰角ヒートマップ501bは、1/4パイ(pi)の仰角に対応する、等々である。この実施形態では、仰角は、キーポイント403と同じピクセル位置で予測される。
【0069】
当業者は、方位角ヒートマップ502および面内回転ヒートマップ504が、仰角ヒートマップ501と同様の形式をとることがあることを理解する。例えば、方位角ヒートマップ502のz軸は、方位に対応することができ、そして、面内回転ヒートマップ504のz軸は、面内回転に対応することができる。さらに、キーポイント403として、上の例の仰角は同じピクセル位置で予測されるが、仰角は、北キーポイント406と同じピクセル位置など。別の場所で予測されることができる。また、方位角ヒートマップ502の方位と面内回転および面内回転ヒートマップ504は、それぞれ、キーポイント403または北キーポイント406と同じピクセル位置で、または別の場所で予測される。他のバリエーションも可能である。
【0070】
オブジェクト112が(カメラプレーン350へのオブジェクトの2次元投影において)自己閉塞(self-occluded)している場合、特定の姿勢コンポーネント(または複数の姿勢コンポーネント)に対するそれぞれのヒートマップで表される確率分布は、オブジェクト112が自己閉塞されていない場合、同じ姿勢コンポーネント用の与えられたヒートマップで表される確率分布よりも高いことがあり得る。例えば、
図3bでは、マグ(オブジェクト112)は、自己閉塞している。なぜなら、カメラプレーン350へのマグカップの2次元投影のハンドルがマグの本体に隠れているからである。この場合、デバイス102にとって、不確実性の低いマグカップの方位角402を決定することは、困難または不可能なことであり得る。マグカップはz軸304を中心に数ラジアンだけ回転できるが、画像120では同じように見えるためである。そのような場合、方位角ヒートマップ502の1つ以上の不確実性の指標は、無限に高いことがあり得る。方位角402を確実に推定することは不可能だからである。
【0071】
図7は、姿勢推定デバイスにより実行される方法700のフローチャートを示す。本明細書に例示および記載される1つ以上の実施形態による。図示されているように、方法700は、デバイス102がオブジェクト112の画像120を取得するステップ702で始まる。
【0072】
デバイス102は、センサ104を介して、例として、センサ154経由、またはこれらの組み合わせを介して、画像120を取得することができる。1つの可能性として、デバイス102は、画像を信号として取得することができ、信号処理および/または1つ以上のアルゴリズムを実行して、(デジタル信号プロセッサを含むことができる)プロセッサ202を使用して信号から画像を取得することができる。別の可能性として、デバイス102は、センサまたは別のデバイスによって前処理された画像を取得し得る。いくつかの実施形態では、センサ154はデバイス152の一部であり、デバイス102は、センサ152を介してデバイス152から画像120を取得する。さらなる可能性として、デバイス102は、データベース106、データストレージ204または別のエンティティから画像120を取得することができる。本開示の範囲から逸脱することなく、他の例も同様に可能である。
【0073】
一実施形態では、デバイス102は、ステップ702で取得された画像120内のオブジェクト112の姿勢推定130を生成する。生成された姿勢推定には、オブジェクト112の姿勢の複数の姿勢コンポーネントのそれぞれについて、それぞれのヒートマップが含まれる。各姿勢コンポーネントのそれぞれのヒートマップは、1つ以上のピクセルのそれぞれにおいて、姿勢コンポーネントの不確実性のそれぞれの不確実性表示を含む。デバイス102は、例えば、オブジェクト112の姿勢の各コンポーネントを推定することによりオブジェクト112の姿勢をさらに推定することができ、デバイス102によって生成された姿勢推定130は、デバイス102による姿勢の推定を含むことができる。
【0074】
一実施形態では、デバイス102は、ニューラルネットワーク220を介して姿勢推定130のヒートマップを生成する。例えば、デバイスは、取得した画像をニューラルネットワークに提供でき、ニューラルネットワークに提供された取得画像に基づいて、ニューラルネットワークによって生成された姿勢推定を取得することができる。いくつかの実施形態では、ニューラルネットワーク220は複数のステージを含み、ニューラルネットワーク220は、ニューラルネットワークの段階を介して姿勢推定130を生成する。一実施形態では、姿勢推定130の各ヒートマップは、ニューラルネットワークのそれぞれのブランチを経由して、ニューラルネットワーク220によって生成される。姿勢推定を生成するニューラルネットワーク220には、ニューラルネットワークを介して姿勢推定を生成するデバイス102が含まれることが理解されるべきである。
【0075】
ニューラルネットワーク220は、1つ以上のネットワークパラメータを含むことができ、ニューラルネットワークは、1つ以上のネットワークパラメータに基づいて姿勢推定を生成する。ネットワークパラメータは、例えば、ニューラルネットワークのトレーニング中にデバイス102で設定できる。ニューラルネットワーク220を訓練する方法の例を、以下、
図8を参照して説明する。
【0076】
図7のステップ704から712は、姿勢の推定を生成するデバイス102の例を提供する。ステップ704から712は、
図7に示す順序で実行する必要がないこと、そして、ステップ704から712のいずれか1つ以上が、並行して、順次、またはこれらの組み合わせ実行することができることが理解されるべきである。
【0077】
具体的には、ステップ704で、デバイス102はキーポイント・ヒートマップ503aを生成し、そしてステップ706で、デバイス102は、オブジェクト境界ヒートマップ505を生成する。これらのヒートマップについては、
図5を参照して詳細に説明している。例えば、一実施形態では、オブジェクト境界ヒートマップ505の生成は、オブジェクト空間300内のオブジェクト112の球境界を推定することを含み、オブジェクト境界ヒートマップの不確実性の指標は、カメラ平面350への球体境界の2次元投影に基づいている。キーポイント・ヒートマップ503aおよびオブジェクト境界ヒートマップ505は、
図8を参照して以下に説明するニューラルネットワークのトレーニングに基づいて、ニューラルネットワーク200を介して、デバイス102によって生成され得る
【0078】
いくつかの実施形態では、デバイス102は、オブジェクト112のスケールを推定することができ、および/または、デバイス102によって推定されたオブジェクト境界405に基づいて、センサ104とオブジェクト112のオブジェクト中心(オブジェクト空間300の原点306として表される)との間の距離を推定することができる。例えば、デバイス102は、(データベース106内のオブジェクトモデルのうちの)どのオブジェクトモデルが、画像120に投影されたオブジェクト112に最もよく似ているかを推定することができる。このオブジェクトモデル、たとえば、半径2インチ、高さ4インチのマグカップは、特定のサイズのオブジェクトを表すことができる。デバイス102は、オブジェクトモデルの周りの球体の半径(球体境界)をデバイス102によって推定されるオブジェクト112のオブジェクト境界405の半径と比較し得る。この比較に基づいて、デバイス102は、オブジェクト112のスケール(たとえば、サイズ)、および、オブジェクト112のオブジェクト中心(原点306)までの距離を推定することができる。したがって、オブジェクト境界ヒートマップ505は、上記のように、オブジェクト境界405をそれぞれのピクセルで表すことを示すことができ、推定スケールおよび/または距離の不確実性を判断するために、デバイス102によって使用されることができる。オブジェクトモデルを使用して、他の姿勢コンポーネントも同様に、それぞれのヒートマップを生成できる。
【0079】
いくつかの実施形態では、姿勢推定を生成することは、オブジェクト空間300におけるオブジェクト112の球境界を推定することを含む。オブジェクト境界ヒートマップ505の不確実性の指標は、球の境界の、カメラプレーン350への二次元投影に基づくことができる。そのような一実施形態では、デバイス102は、オブジェクト境界ヒートマップ505に基づいて推定オブジェクト半径を取得し、オブジェクトモデルのデータベースの中からオブジェクト112の3次元オブジェクトモデルを識別する。特定されたオブジェクトモデルのサイズへの得られた推定半径の比較に基づいて、デバイス102は、オブジェクト112のスケールとオブジェクトとセンサ104の間の距離を推定する。例として、推定オブジェクト半径は、
【数2】
のように表すことができる。ここで、取得された推定半径r
Cは、ピクセル単位の球体境界半径(例えば、カメラ平面350のオブジェクト境界405のピクセル単位の半径)である。識別されたオブジェクトモデルのサイズr
Oは、(オブジェクト空間300における)メートル単位の球体境界半径である。視線430の長さlは焦点距離であり、オブジェクトと画像センサ間の距離dは、カメラ平面でオブジェクトzの位置である。
【0080】
図7にさらに示すように、ステップ708で、デバイス102は仰角ヒートマップ501を生成し、そしてステップ710で、デバイスは、方位角ヒートマップ502を生成する。ステップ712で、デバイス102は、面内回転ヒートマップ504を生成し、そしてステップ714で、デバイス102は、北キーポイント・ヒートマップ503bを生成する。これらのヒートマップについては、
図5を参照してさらに詳しく説明する。キーポイント・ヒートマップ503aおよびオブジェクト境界ヒートマップ505と同様に、ニューラルネットワークのトレーニングに基づいて、ニューラルネットワーク200を介してデバイス102によって生成される(
図8を参照して以下で説明する)。
【0081】
一実施形態では、デバイス102は、第2の姿勢推定を、デバイス102によって生成された姿勢推定130と融合させることができる。第2の姿勢推定は、姿勢推定130と同様の方法で生成することができる。また、姿勢推定130のヒートマップとして1つ以上の同じ姿勢コンポーネントのそれぞれのヒートマップを含めることができる。両方の姿勢推定のヒートマップには、それぞれのピクセルに対して不確実性の指標が含まれているため、各姿勢コンポーネントの姿勢推定のヒートマップのいずれかが、融合して、それぞれの姿勢要素の不確実性の、不確実性の指標のより正確なヒートマップを提供できる可能性がある。デバイス102が、その姿勢コンポーネントの不確実性を、画像120の個々のピクセルに関してヒートマップで表すことができなかった特定の姿勢コンポーネントを推定した場合、与えられた姿勢コンポーネントのそれぞれの推定を融合することは、より困難であると判明することがあり得る。
【0082】
図8は、本明細書に例示および記載される1つ以上の実施形態による、姿勢推定デバイスにより実行される方法800のフローチャートを示す。図示されているように、方法800は、1つ以上のトレーニング画像のセットを生成するデバイス102を備えたステップ802で始まる。各トレーニング画像には、それぞれの姿勢において、オブジェクトモデルの2次元投影が含まれる。
【0083】
このオブジェクトモデルは、たとえば、オブジェクトの3次元モデルのオブジェクトのモデルである。オブジェクトモデルは、3次元のオブジェクトの1つ以上の表面の数学的表現の形式を取ることができる。例えば、オブジェクトモデルは、3次元のオブジェクト空間における、他の例の中で三角形、線、または曲面などのさまざまな幾何学的エンティティによって接続されているポイントのコレクションを含むことができる。このオブジェクトモデルは他の形式をとることもできる。
【0084】
一実施形態では、所与のトレーニング画像を生成することは、デバイス102がオブジェクトモデルを取得することを含む。デバイス102は、データベース106、データストレージ204または別のエンティティからオブジェクトモデルを取得することができる。これらは、1つ以上のオブジェクトのモデルを保存できる。場合によっては、オブジェクトモデルは、姿勢推定および姿勢推定トレーニングに使用されるプリコンパイル済みデータセットのモデルである。得られたモデルは、デバイス102によって任意またはランダムに選択できる、または、ユーザーインターフェイス経由で受信した入力によって指定できる。
【0085】
デバイス102は、与えられたトレーニング画像についてオブジェクトモデルのトレーニング姿勢を選択することができる。例えば、デバイス102は、第2のトレーニング画像の同じオブジェクトモデルのそれぞれのトレーニング姿勢P2と段階的に異なる姿勢として、第1のトレーニング画像のオブジェクトモデルのそれぞれのトレーニング姿勢P1を選択することができる。P1とP2の増分差は、トレーニング画像のそれぞれの方位コンポーネント間の増分差などトレーニング画像の所定の姿勢コンポーネントの間の増分差になる可能性がある。さらなる可能性として、トレーニング姿勢P1とP2の増分差は、複数の姿勢コンポーネントの差分を含むことができる。トレーニング姿勢を選択する他の例も可能である。
【0086】
一実施形態では、デバイス102は、選択したトレーニング姿勢で取得したオブジェクトモデルの2次元投影を含むトレーニング画像を生成する。デバイス102は、1つ以上の技術に基づいて、3次元モデルから2次元画像を生成するためのトレーニング画像を生成し得る。2次元投影は、同様に、
図3aおよび
図3bを参照して上述したように、トレーニング画像の二次元投影面へのオブジェクトの3次元オブジェクトモデルの投影である可能性がある。
【0087】
いくつかの実施形態では、デバイス102は、シーンの画像にオーバーレイされた、取得されたオブジェクトモデルの2次元投影を含むトレーニング画像を生成する。デバイス102は、データベース106、データストレージ204、または別のエンティティからシーンの画像を取得することができる。これらは、1つ以上のセンサを介して取得された1つ以上の画像を保存でき、その後、データベースやデータストレージに保存される。画像は、姿勢推定および姿勢推定トレーニングに使用されるプリコンパイル済みデータセットの画像であることができる得られた画像は、デバイス102によって任意またはランダムに選択できる、または、ユーザーインターフェイス経由で受信した入力によって指定できる。別の可能性として、デバイス102は、例として、センサ104を介して、センサ154経由、またはこれらの組み合わせを介して画像を取得することができる。デバイス102は、与えられた場所で、シーンの画像において投影されたオブジェクトモデルをレンダリングすることができる。その場所は、例えば、卓上、床、地面、または別の表面であるか、または、表面上にない別の場所である可能性があり得る。オブジェクトモデルのトレーニング姿勢は、画像内の投影されたオブジェクトモデルの位置との一貫性または整合性のために選択できる。デバイス102は、ユーザーインターフェイスを介して受信した入力に基づいて位置を取得することができる、または、例として、ランダムまたは任意に場所を選択できる。
【0088】
ステップ804において、デバイス102は、トレーニング画像のそれぞれについてそれぞれのヒートマップセットを生成する。それぞれのヒートマップセットには、複数の姿勢コンポーネントのそれぞれに対して、それぞれのグラウンドトゥルース不確実性ヒートマップが含まれている。また、それぞれのグラウンドトゥルースヒートマップには、それぞれのトレーニング画像の1つ以上のピクセルのそれぞれにおいて、姿勢コンポーネントの不確実性が含まれている。上記のヒートマップと同様に、それぞれのヒートマップには、1つ以上のヒートマップ要素が含まれる。それぞれのヒートマップ要素には、それぞれのトレーニング画像の特定のピクセルにおいて、または、それぞれのトレーニング画像の複数のピクセルにおいて、姿勢コンポーネントの不確実性が含まれることができる。例えば、それぞれのヒートマップ要素は、与えられたトレーニング画像内の隣接ピクセルのグループに関して、不確実性が含むことができる。一実施形態では、ステップ804で各トレーニング画像のそれぞれのヒートマップセットを生成することは、姿勢コンポーネントごとに設定されたヒートマップ内で、(トレーニング画像用に)それぞれのグラウンドトゥルース不確実性ヒートマップを生成することを含む。
【0089】
一実施形態では、デバイス102は、デバイス102によって生成されたトレーニング画像上の有限差分を使用して、選択した(グランドトゥルース)姿勢の周りのローカルガウス分布で、それぞれのグラウンドトゥルース不確実性ヒートマップを近似する。そのような一実施形態では、トレーニング画像Iは、標準偏差σでガウスピクセルノイズ下での選択された姿勢Xの関数f(X)である。トレーニング画像用に生成されたヒートマップは、一次のテイラー展開、
【数3】
を使用して、近似される。ここで、X
0は、選択された姿勢であり、
【数4】
(X
0におけるfの導関数。)p(X)は選択された姿勢Xの一様事前分布(uniform prior)に対する定数である。ヒートマップp(X|I)は、平均f(X
0)と情報(逆共分散)行列
【数5】
をもつガウシアンとして近似される。デバイス102は、姿勢X
0+σおよびX
0-σにおけるオブジェクトの2つのレンダリング画像間のピクセルの差を計算することにより、有限差分を使用して、ヤコビ行列J
0を近似する。
【0090】
一実施形態では、ステップ802において、デバイス102によって生成された第1のトレーニング画像と第2のトレーニング画像は、同じオブジェクトモデルのそれぞれの2次元投影をそれぞれ、デバイス102によって選択されたように、第1姿勢および第1姿勢とは異なる第2姿勢に含む。具体的には、両方のトレーニング画像のオブジェクトモデルの選択された姿勢は同じであるが、ただし、第1姿勢の特定の姿勢コンポーネントは、第2姿勢の同じ姿勢コンポーネントとはわずかに異なる。デバイス102は、所定の差分アルゴリズムを使用した第1画像と第2画像との間の決定された差に基づいて差の表示を決定する(例えば、第1のトレーニング画像と第2のトレーニング画像との間のピクセルの差を計算してヤコビ行列を近似する)。
【0091】
特定の姿勢コンポーネントのヒートマップの不確実性の指標の大きさは、決定された差の指標の逆数の大きさに相関している。トレーニング画像の第1のペア間の差の、差の表示は、トレーニング画像の第2のペア間の決定された差が、トレーニング画像の第1のペア間の決定された差よりも大きい場合、トレーニング画像の第2のペアの間の差異の差異表示よりも小さくなる。トレーニングイメージの第1のペアの差分表示の逆は、トレーニング画像の第2ペアの差の指標の逆数よりも大きくなる。このような場合には、トレーニング画像の第ペア(または両方)に対して生成された特定の姿勢コンポーネントのヒートマップの不確実性指標は、トレーニング画像の第2ペア(またはその両方)に対して生成された指定された姿勢コンポーネントに対して、不確実性マップの不確実性指標よりも大きいことがあり得る。
【0092】
ある場合には、(上記の実施形態のそれぞれのトレーニング画像の)第1姿勢と第2姿勢とが異なる場合でも、トレーニング画像のペアに違いはないことがあり得る。例として、回転対称性を持つオブジェクトモデル(およびオブジェクト)の場合、オブジェクトのそれぞれの方位角が異なっていても、トレーニング画像に違いはないことがあり得る。図示すると、オブジェクト112は、回転対称のマグとして、
図4aおよび
図4bに示されている。
図4aでは、2つのトレーニング画像間のマグの方位角の変化(例えば、z軸304を中心としたマグの回転)は、マグのハンドルが見え、方位角の変化は、ハンドルの見える位置に変化をもたらすために、トレーニング画像のペアの間に少なくとも何らかの違いが生じる。一方、
図4bでは、2つのトレーニング画像間のマグカップの方位角の変化は、トレーニング画像間で方位角が変わったとしても、トレーニング画像のペアに違いはないことになる。両方のトレーニング画像のマグのハンドルが見えないからである。このような場合には、決定された差はゼロになり、決定された差指標はゼロになる。決定された差インジケータのゼロ値の逆数は無限大であり、したがって、トレーニング画像用に生成された方位角姿勢コンポーネントの不確実性ヒートマップは、方位角の変化の無限の不確実性を反映している。
【0093】
ステップ806において、デバイス102は、生成されたトレーニング画像、および、生成されたトレーニング画像に対して生成されるそれぞれのヒートマップのグラウンドトゥルース不確実性ヒートマップセットに基づいて、ニューラルネットワーク220をトレーニングする。一実施形態では、ニューラルネットワーク220のトレーニングは、デバイス102がニューラルネットワーク経由で、
図7に関して前述したようにトレーニング画像に投影されたオブジェクトモデルの姿勢推定を生成することを含む。ある例では、ステップ702において、デバイス102は、(所与のオブジェクトのオブジェクトモデルの)トレーニング画像を取得する。これは、上記のように、他の多くの可能性の中で、データベース106および/またはデータストレージ204に保存できる。ステップ704において、デバイス102は、(オブジェクトの)オブジェクトモデルの姿勢推定を生成する。このデバイスは、オブジェクトモデルの姿勢の複数の姿勢コンポーネントのそれぞれについて、ニューラルネットワーク220を介して姿勢推定のそれぞれのヒートマップを生成する。
【0094】
デバイス102は、ニューラルネットワーク220によって生成されたトレーニング画像におけるオブジェクトモデルの姿勢推定と、ステップ804でデバイスによるトレーニング画像(内のオブジェクトモデル)に対して生成されたヒートマップセットで構成される姿勢推定との間の損失を計算する。この計算された損失は、姿勢の推定の間の類似性または非類似性の大きさを反映することができる。場合によっては、計算された損失が低いほど、姿勢推定間の類似性が高いことに対応することがあり得る。例えば、デバイス102が姿勢推定の第1のペア間の第1の損失を計算する場合、姿勢推定の第2のペア間で計算された第2の損失は、姿勢推定の第1のペアが、姿勢推定の第2ペアが互いに似ているよりも、もっと互いに類似していることを示すことができる。
【0095】
ニューラルネットワーク220によって生成された姿勢推定間の損失の計算、および、ステップ804でデバイス102によって生成されたヒートマップセットからなる姿勢推定は、デバイス102が、1つ以上の姿勢コンポーネントの姿勢推定のそれぞれのヒートマップ間の損失を計算することを含むことができる。例えば、デバイス102は、ニューラルネットワーク220と、ステップ804において生成されたヒートマップセットで構成される姿勢推定の方位角ヒートマップによって生成された姿勢推定の方位角ヒートマップ間の損失を計算することができる。このデバイスは、姿勢推定のそれぞれの仰角ヒートマップ、または、別の姿勢コンポーネントのそれぞれのヒートマップ間の損失をさらに計算できる。姿勢推定間の計算された損失と同様に、各姿勢コンポーネントのヒートマップ間の計算された損失は、ヒートマップ間の類似性または非類似性(例えば、ヒートマップによって表される確率分布の類似性または非類似性)を反映することができる。例えば、各姿勢コンポーネントのヒートマップ間のより低い計算コストは、ヒートマップ間のより大きな類似性(例えば、確率分布間のより大きな類似性)に対応することができる。
【0096】
姿勢推定またはヒートマップのそれぞれの不確実性指標の計算された損失は必ずしも大きさを反映していないことに留意すべきである。例えば、高い不確実性を示す確率分布を表すヒートマップ間の計算された損失は、それにもかかわらず、不確実性の高い確率分布が類似している場合、計算された小さな損失であり得る。
【0097】
デバイス102は、ニューラルネットワーク220によって生成された姿勢推定間の計算された損失、および、ステップ804でデバイス102によって生成されたヒートマップセットからなる姿勢推定に基づいて、ニューラルネットワーク220の1つ以上のネットワークパラメータを設定することができる。ニューラルネットワーク220によって生成された後続の姿勢推定を、デバイスによって設定されたネットワークパラメータに基づいて、生成することができる。例えば、デバイス102は、ニューラルネットワーク経由で、第2のトレーニング画像に投影されたオブジェクトモデルの姿勢推定を生成することができ、生成された姿勢推定と第2のトレーニングイメージ(におけるオブジェクトモデル)に対して生成されたヒートマップセットで構成される姿勢推定との間の損失を計算することができる。ニューラルネットワーク220は、設定されたネットワークパラメータに基づいて姿勢推定を生成することができる。
【0098】
いくつかの実施形態では、姿勢推定130の各ヒートマップは、ニューラルネットワークのそれぞれのブランチを介して、ニューラルネットワーク220によって生成され、ニューラルネットワーク220のトレーニングは、ニューラルネットワークのそれぞれのブランチ??のトレーニングを含む。例えば、各ブランチには、1つ以上のブランチパラメータを含めることができ、特定のブランチの1つ以上のブランチパラメータが、1つ以上の他のブランチのブランチパラメータと異なることができる。そのような実施形態では、ニューラルネットワーク220によって生成された姿勢推定間の計算された損失、および、ステップ804でデバイス102により生成されたヒートマップセットからなる姿勢推定に基づいた、ニューラルネットワーク220の1つ以上のネットワークパラメータの設定は、計算された損失に基づいて、ニューラルネットワーク220の1つ以上のブランチの1つ以上のブランチパラメータの設定が含まれることができるいくつかの実施形態では、この計算された損失は、ニューラルネットワーク220によって生成された姿勢推定の特定の姿勢コンポーネントのそれぞれのヒートマップと、ステップ804で生成されたヒートマップセットで構成された姿勢推定の同じ姿勢コンポーネントのそれぞれのヒートマップとの間の計算された損失を含む。そのような実施形態では、ネットワークパラメータの設定は、ヒートマップを生成したブランチのブランチパラメータの設定を含む。
【0099】
次に、本明細書で説明される1つまたは複数の実施形態は、姿勢推定システム、姿勢推定デバイス、および、オブジェクトの姿勢推定を生成するための方法を対象とすることを理解すべきである。いくつかの実施形態では、姿勢推定デバイスがオブジェクトの画像を取得し、オブジェクトの姿勢推定を生成する。姿勢推定には、オブジェクトの姿勢の複数の姿勢コンポーネントのそれぞれに対して、それぞれのヒートマップが含まれ、姿勢コンポーネントごとのそれぞれのヒートマップは、画像の1つ以上のピクセルのそれぞれにおいて、姿勢コンポーネントの不確実性のそれぞれの不確実性表示を含む。
【0100】
「実質的に(substantially)」および「約(about)」という用語は、本明細書で、定量的な比較、値、測定、または他の表現に起因することがあり得る不確実性の固有の程度を表すために利用され得ることに留意する。これらの用語は、本書では、問題の主題の基本機能に変更をもたらすことなく、定量的表現が、記載されている参考文献とは異なることあり得る程度を表すためにも用いられる。
【0101】
本明細書では特定の実施形態を例示し説明したが、クレームされた主題の精神および範囲から逸脱することなく、他のさまざまな変更および修正が行われる可能性があることを理解する必要がある。また、請求された主題の様々な態様が本明細書に記載されているが、そのような態様を組み合わせて利用する必要はない。したがって、添付の特許請求の範囲は、特許請求された主題の範囲内であるすべての変更および修正を網羅することを意図している。