(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-03-22
(54)【発明の名称】奥行き推定
(51)【国際特許分類】
G06T 7/00 20170101AFI20220314BHJP
G06T 7/579 20170101ALI20220314BHJP
G06T 7/70 20170101ALI20220314BHJP
【FI】
G06T7/00 300B
G06T7/00 350C
G06T7/579
G06T7/70 Z
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2021542489
(86)(22)【出願日】2020-01-15
(85)【翻訳文提出日】2021-07-21
(86)【国際出願番号】 GB2020050084
(87)【国際公開番号】W WO2020152437
(87)【国際公開日】2020-07-30
(32)【優先日】2019-01-24
(33)【優先権主張国・地域又は機関】GB
(81)【指定国・地域】
(71)【出願人】
【識別番号】519426058
【氏名又は名称】インペリアル カレッジ イノベイションズ リミテッド
【氏名又は名称原語表記】IMPERIAL COLLEGE INNOVATIONS LIMITED
【住所又は居所原語表記】Level 1 Faculty Building, C/O Imperial College, Exhibition Road London SW7 2AZ, United Kingdom
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】トリスタン・ウィリアム・レイドロー
(72)【発明者】
【氏名】ヤン・チャルノフスキ
(72)【発明者】
【氏名】ステファン・ロイテンエッガー
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA02
5L096AA06
5L096CA04
5L096FA66
5L096FA67
5L096FA69
5L096GA40
5L096HA11
5L096JA16
5L096KA04
5L096KA15
(57)【要約】
シーンの奥行きを推定する画像処理システムが提供される。画像処理システムは、融合エンジンを備え、融合エンジンは、幾何学的再構成エンジンからの第1の奥行き推定と、ニューラルネットワークアーキテクチャからの第2の奥行き推定と、を受信する。融合エンジンは、第1の奥行き推定と第2の奥行き推定とを確率的に融合させて、シーンの融合奥行き推定を出力するように構成される。融合エンジンは、幾何学的再構成エンジンからの第1の奥行き推定の不確実性測定と、ニューラルネットワークアーキテクチャからの第2の奥行き推定の不確実性測定と、を受信し、不確実性測定を使用して、第1の奥行き推定と第2の奥行き推定とを確率的に融合させるように構成される。
【特許請求の範囲】
【請求項1】
シーンの奥行きを推定する画像処理システムであって、
幾何学的再構成エンジンから第1の奥行き推定と、ニューラルネットワークアーキテクチャから第2の奥行き推定とを受信し、前記第1の奥行き推定と前記第2の奥行き推定とを確率的に融合させて、前記シーンの融合奥行き推定を出力する融合エンジンを備え、
前記融合エンジンは、前記幾何学的再構成エンジンからの前記第1の奥行き推定の不確実性測定と、前記ニューラルネットワークアーキテクチャから前記第2の奥行き推定の不確実性測定と、を受信するように構成され、
前記融合エンジンは、前記不確実性測定を使用して、前記第1の奥行き推定と前記第2の奥行き推定とを確率的に融合させるように構成される、
前記システム。
【請求項2】
前記融合エンジンは、前記ニューラルネットワークアーキテクチャから表面配向推定及び前記表面配向推定の不確実性測定を受信し、前記表面配向推定及び前記表面配向推定の前記不確実性測定を使用して、前記第1の奥行き推定と前記第2の奥行き推定とを確率的に融合させるように構成される、請求項1に記載のシステム。
【請求項3】
前記表面配向推定には、
第1の方向の奥行き勾配推定と、
前記第1の方向に直交する方向の奥行き勾配推定と、
表面法線推定と、
のうちの1つ以上が含まれる、請求項2に記載のシステム。
【請求項4】
前記融合エンジンは、前記第1の奥行き推定と前記第2の奥行き推定とを確率的に融合させる時に、スケール推定を特定するように構成される、請求項1~3のいずれか1項に記載のシステム。
【請求項5】
前記シーンは、ビデオデータの第1のフレームでキャプチャされ、
前記ビデオデータの第1のフレームについての前記第2の奥行き推定が受信され、
前記第1の奥行き推定には、前記ビデオデータの第1のフレームについての複数の第1の奥行き推定が含まれ、前記複数の第1の奥行き推定のうちの少なくとも1つは、前記ビデオデータの第1のフレームとは異なるビデオデータの第2のフレームを使用して生成され、
前記融合エンジンは、反復ごとに前記第2の奥行き推定と前記複数の奥行き推定のうちの1つとを処理して、前記シーンの前記融合奥行き推定を反復的に出力するように構成される、
請求項1~4のいずれか1項に記載のシステム。
【請求項6】
前記第1の奥行き推定、前記第2の奥行き推定、及び前記融合奥行き推定はそれぞれ、複数のピクセルについての奥行きマップを含む、請求項1~5のいずれか1項に記載のシステム。
【請求項7】
前記第1の奥行き推定は、中密度奥行き推定であり、前記第2の奥行き推定及び前記融合奥行き推定はそれぞれ、高密度奥行き推定を含む、請求項1~6のいずれか1項に記載のシステム。
【請求項8】
ビデオデータのフレームをキャプチャする単眼カメラと、
前記シーンを観察している間の前記単眼カメラの姿勢を特定する追跡システムと、
前記幾何学的再構成エンジンと、を備え、
前記幾何学的再構成エンジンは、前記追跡システムからの前記姿勢と、前記ビデオデータのフレームとを使用して、前記ビデオデータのフレームからピクセルの少なくとも部分集合についての奥行き推定を生成するように構成され、前記幾何学的再構成エンジンは、測光誤差を最小化して、前記奥行き推定を生成するように構成される、
請求項1~7のいずれか1項に記載のシステム。
【請求項9】
前記ニューラルネットワークアーキテクチャを備え、
前記ニューラルネットワークアーキテクチャは、1つ以上のニューラルネットワークを含み、ビデオデータのフレームのピクセル値を受信し、予測を行うように構成され、前記予測では、
前記第2の奥行き推定を生成するために、画像部分の第1の集合のそれぞれについての奥行き推定と、
画像部分の第2の集合のそれぞれについての少なくとも1つの表面配向推定と、
各奥行き推定に関連付けられた1つ以上の不確実性測定と、
各表面配向推定に関連付けられた1つ以上の不確実性測定と、
が予測される、
請求項1~8のいずれか1項に記載のシステム。
【請求項10】
シーンの奥行きを推定する方法であって、
前記シーンの幾何学的再構成を使用して、前記シーンの第1の奥行き推定を生成することであって、前記幾何学的再構成は、前記第1の奥行き推定の不確実性測定を出力するように構成される、前記生成することと、
ニューラルネットワークアーキテクチャを使用して、前記シーンの第2の奥行き推定を生成することであって、前記ニューラルネットワークアーキテクチャは、前記第2の奥行き推定の不確実性測定を出力するように構成される、前記生成することと、
前記不確実性測定を使用して、前記第1の奥行き推定と前記第2の奥行き推定とを確率的に融合させて、前記シーンの融合奥行き推定を生成することと、
を含む、前記方法。
【請求項11】
前記第1の奥行き推定を生成する前に、
前記シーンの2つ以上のビューを表す画像データをカメラから取得すること、
を含み、
前記第1の奥行き推定を生成することは、
前記カメラの姿勢推定を取得することと、
少なくとも前記姿勢推定と前記画像データとの関数である測光誤差を最小化することにより、前記第1の奥行き推定を生成することと、
を含む、
請求項10に記載の方法。
【請求項12】
前記第1の奥行き推定を生成する前に、
前記シーンの1つ以上のビューを表す画像データをカメラから取得すること、
を含み、
前記第2の奥行き推定を生成することは、
前記ニューラルネットワークアーキテクチャで、前記画像データを受信することと、
前記第2の奥行き推定を生成するために、前記ニューラルネットワークアーキテクチャを使用して、画像部分の集合のそれぞれについて奥行き推定を予測することと、
前記ニューラルネットワークアーキテクチャを使用して、前記画像部分の集合のそれぞれについて少なくとも1つの表面配向推定を予測することと、
前記ニューラルネットワークアーキテクチャを使用して、各奥行き推定及び各表面配向推定の不確実性測定の集合を予測することと、
を含む、
請求項10に記載の方法。
【請求項13】
前記表面配向推定には、
第1の方向の奥行き勾配推定と、
前記第1の方向に直交する方向の奥行き勾配推定と、
表面法線推定と、
のうちの1つ以上が含まれる、請求項12に記載の方法。
【請求項14】
前記第1の奥行き推定を生成する前に、
前記シーンの2つ以上のビューを表す、複数のピクセルを含む画像データをカメラから取得すること、
を含み、
前記第1の奥行き推定を生成することは、
前記カメラの姿勢推定を取得することと、
前記画像データ内の前記ピクセルの一部についての奥行き推定を含む中密度奥行き推定を生成することと、
を含み、
前記第2の奥行き推定を生成することは、前記画像データ内の前記ピクセルについて高密度奥行き推定を生成することを含み、
前記第1の奥行き推定と前記第2の奥行き推定とを確率的に融合させることは、前記画像データ内の前記ピクセルについて高密度奥行き推定を出力することを含む、
請求項10に記載の方法。
【請求項15】
前記方法は、反復的に繰り返され、後続の反復に関して、
前記方法は、前記第2の奥行き推定を生成するか否かを判定することを含み、
前記第1の奥行き推定と前記第2の奥行き推定とを確率的に融合させることは、前記第2の奥行き推定を生成しないという判定に応じて、前記第2の奥行き推定の前の値の集合を使用することを含む、
請求項10~14のいずれか1項に記載の方法。
【請求項16】
前記方法は、ビデオデータのフレームに適用され、前記第1の奥行き推定と前記第2の奥行き推定とを確率的に融合させることは、ビデオデータの所与のフレームについて、
前記第1の奥行き推定に関連付けられた第1のコスト項と、前記第2の奥行き推定に関連付けられた第2のコスト項とを含むコスト関数を最適化することを含み、
前記第1のコスト項は、融合奥行き推定値と、第1の奥行き推定値と、前記第1の奥行き推定の不確実性値との関数を含み、
前記第2のコスト項は、融合奥行き推定値と、第2の奥行き推定値と、前記第2の奥行き推定の不確実性値との関数を含み、
前記コスト関数を最適化して、前記融合奥行き推定値が特定される、
請求項10~15のいずれか1項に記載の方法。
【請求項17】
前記コスト関数を最適化することは、前記融合奥行き推定のスケールファクタを特定することを含み、前記スケールファクタは、前記シーンに関する前記融合奥行き推定のスケールを示す、請求項16に記載の方法。
【請求項18】
前記ニューラルネットワークアーキテクチャを使用して、前記シーンの少なくとも1つの表面配向推定を生成することを含み、
前記ニューラルネットワークアーキテクチャは、前記少なくとも1つの表面配向推定のそれぞれについて不確実性測定を出力するように構成され、
前記コスト関数は、前記少なくとも1つの表面配向推定に関連付けられた第3のコスト項を含み、
前記第3のコスト項は、融合奥行き推定値と、表面配向推定値と、前記少なくとも1つの表面配向推定のそれぞれについての不確実性値との関数を含む、
請求項16または17に記載の方法。
【請求項19】
前記シーンの前記幾何学的再構成は、前記シーンの第1の奥行き確率体積を生成するように構成され、前記第1の奥行き確率体積は、
前記第1の奥行き推定を含む第1の複数の奥行き推定と、
前記第1の複数の奥行き推定の各奥行き推定にそれぞれ関連付けられた第1の複数の不確実性測定と、
を含み、
前記第1の複数の奥行き推定のうちの所与の奥行き推定に関連付けられた不確実性測定は、前記シーンの所与の領域が、前記第1の複数の奥行き推定のうちの前記所与の奥行き推定により表される奥行きに存在する確率を表し、
前記ニューラルネットワークアーキテクチャは、前記シーンの第2の奥行き確率体積を出力するように構成され、前記第2の奥行き確率体積は、
前記第2の奥行き推定を含む第2の複数の奥行き推定と、
前記第2の複数の奥行き推定の各奥行き推定にそれぞれ関連付けられた第2の複数の不確実性測定と、
を含み、
前記第2の複数の奥行き推定のうちの所与の奥行き推定に関連付けられた不確実性測定は、前記シーンの所与の領域が、前記第2の複数の奥行き推定のうちの前記所与の奥行き推定により表される奥行きに存在する確率を表す、
請求項10に記載の方法。
【請求項20】
前記シーンの前記第2の奥行き推定を生成することは、前記ニューラルネットワークアーキテクチャを使用して、前記シーンの画像を表す画像データを処理して、前記第2の奥行き確率体積を生成することを含み、
前記第2の複数の奥行き推定は、複数の奥行き推定集合を含み、それぞれが前記シーンの前記画像の異なる各部分に関連付けられる、
請求項19に記載の方法。
【請求項21】
前記第2の複数の奥行き推定は、事前に定義された値を有する奥行き推定を含む、請求項19または20に記載の方法。
【請求項22】
前記事前に定義された値の間には、不均一な間隔がある、請求項21に記載の方法。
【請求項23】
前記事前に定義された値は、事前に定義された奥行き範囲内の複数の対数奥行き値を含む、請求項21または22に記載の方法。
【請求項24】
前記シーンの前記第1の奥行き確率体積を生成することは、
前記シーンの第1の観察を表すビデオデータの第1のフレームと、前記シーンの第2の観察を表すビデオデータの第2のフレームとを処理して、前記第1のフレームの複数の部分のそれぞれについて測光誤差の集合を生成することであって、測光誤差はそれぞれ、前記第1の複数の奥行き推定の異なる各奥行き推定に関連付けられる、前記生成することと、
前記測光誤差をスケーリングして、前記測光誤差をそれぞれの確率値に変換することと、
を含む、請求項19~23のいずれか1項に記載の方法。
【請求項25】
前記不確実性測定を使用して前記第1の奥行き推定と前記第2の奥行き推定とを確率的に融合させることは、前記第1の複数の不確実性測定と前記第2の複数の不確実性測定とを組み合わせて、融合確率体積を生成することを含む、請求項19~24のいずれか1項に記載の方法。
【請求項26】
前記シーンの前記融合奥行き推定を生成することは、前記融合確率体積から前記シーンの融合奥行き推定を取得することを含む、請求項25に記載の方法。
【請求項27】
前記融合確率体積を使用して奥行き確率関数を取得することと、
前記奥行き確率関数を使用して、前記融合奥行き推定を取得することと、
を含む、請求項25または26に記載の方法。
【請求項28】
前記融合奥行き推定を取得することは、コスト関数を最適化することを含み、前記コスト関数は、
前記融合確率体積を使用して取得された第1のコスト項と、
奥行き値に対する局所的な幾何学的制約を含む第2のコスト項と、
を含む、請求項25~27のいずれか1項に記載の方法。
【請求項29】
さらなるニューラルネットワークアーキテクチャから、表面配向推定及びオクルージョン境界推定を受信することと、
前記表面配向推定及び前記オクルージョン境界推定を使用して、前記第2のコスト項を生成することと、
を含む、請求項28に記載の方法。
【請求項30】
前記融合奥行き確率体積は、前記シーンの第1の観察を表すビデオデータの第1のフレームに関連付けられた第1の融合奥行き確率体積であり、
前記方法は、
前記第1の融合奥行き確率体積を、第1の占有確率体積に変換することと、
前記シーンを観察している間のカメラの姿勢を表す姿勢データに基づいて、前記第1の占有確率体積をワープさせて、前記シーンの第2の観察を表すビデオデータの第2のフレームに関連付けられた第2の占有確率体積を取得することと、
前記第2の占有確率体積を、前記第2のフレームに関連付けられた第2の融合奥行き確率体積に変換することと、
を含む、請求項25~29のいずれか1項に記載の方法。
【請求項31】
シーンの奥行きを推定する画像処理システムであって、
幾何学的再構成エンジンから第1の奥行き確率体積と、ニューラルネットワークアーキテクチャから第2の奥行き確率体積とを受信し、前記第1の奥行き確率体積と前記第2の奥行き確率体積とを融合させて、前記シーンの融合奥行き確率体積を出力する、融合エンジンと、
前記融合奥行き確率体積を使用して、前記シーンの前記奥行きを推定する奥行き推定エンジンと、
を備える、前記システム。
【請求項32】
シーンの奥行きを推定する方法であって、
前記シーンの幾何学的再構成を使用して、前記シーンの第1の奥行き確率体積を生成することと、
ニューラルネットワークアーキテクチャを使用して、前記シーンの第2の奥行き確率体積を生成することと、
前記第1の奥行き確率体積と前記第2の奥行き確率体積とを融合させて、前記シーンの融合奥行き確率体積を生成することと、
前記融合奥行き確率体積を使用して、前記シーンの融合奥行き推定を生成することと、
を含む、前記方法。
【請求項33】
ビデオのフレームを提供する単眼キャプチャデバイスと、
前記単眼キャプチャデバイスの姿勢データを提供する位置特定及びマッピング同時実行システムと、
請求項1または31に記載のシステムと、
前記姿勢データ及びビデオのフレームを受信して、前記幾何学的再構成エンジンを実施する中密度マルチビューステレオコンポーネントと、
前記ニューラルネットワークアーキテクチャを実施する電子回路と、
を備える、コンピューティングシステム。
【請求項34】
ロボットデバイスであって、
請求項33に記載のコンピューティングシステムと、
前記ロボットデバイスが周囲の3次元環境とインタラクトすることを可能にする1つ以上のアクチュエータであって、前記周囲の3次元環境の少なくとも一部が前記シーンに示される、前記1つ以上のアクチュエータと、
前記1つ以上のアクチュエータを制御する少なくとも1つのプロセッサを含むインタラクションエンジンと、
を含み、
前記インタラクションエンジンは、前記融合奥行き推定を使用して、前記周囲の3次元環境とインタラクトする、
前記ロボットデバイス。
【請求項35】
コンピュータ実行可能命令を含む非一時的コンピュータ可読記憶媒体であって、前記コンピュータ実行可能命令は、プロセッサにより実行されると、コンピューティングデバイスに、請求項10~30のいずれか1項の方法を実行させる、前記非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、シーンの奥行きを推定することに関する。本発明は、ロボットデバイスがその環境内をナビゲートし及び/またはインタラクトするのに使用する奥行き推定に、排他的ではないが特に関する。
【背景技術】
【0002】
コンピュータビジョン及びロボット工学の分野では、頻繁に3次元(3D)空間の表現を構築する必要がある。3D空間の表現を構築することにより、現実世界の環境を仮想領域またはデジタル領域にマッピングすることが可能となり、電子デバイスにより使用及び操作され得る。例えば、拡張現実アプリケーションでは、ユーザは、ハンドヘルドデバイスを使用して、周囲環境内のエンティティに対応する仮想オブジェクトとインタラクトし得る、または移動可能なロボットデバイスは、位置特定及びマッピング同時実行、従ってその環境のナビゲーションを可能にするために、3D空間の表現が必要であり得る。多くのアプリケーションでは、インテリジェントシステムが、デジタル情報ソースを物理オブジェクトに結び付けることができるように、環境の表現を有する必要があり得る。これにより、人を取り巻く物理環境がインターフェースとなる高度なヒューマン‐マシンインターフェースが可能となる。同様に、このような表現により、高度なマシン‐世界インターフェースも可能となり得、例えば、ロボットデバイスが現実世界の環境で物理オブジェクトとインタラクトして操作することが可能となる。
【0003】
3D空間の表現を構築するのに利用可能な技法がいくつか存在する。例えば、運動からの構造復元、並びに位置特定及びマッピング同時実行(SLAM)が、そのような技法の2つである。SLAM技法は、通常、マッピングする3Dシーンの奥行きの推定を伴う。奥行き推定は、深度カメラを使用して行われ得る。しかし、深度カメラは通常、範囲が制限され、消費電力が比較的高く、明るい日光などの屋外環境では正しく機能しない場合がある。他の事例では、奥行き推定は、例えば空間の画像に基づいて、深度カメラを使用せずに、行われ得る。
【0004】
2017年のComputer Vision and Pattern Recognition(CVPR)に関するIEEE会議の議事録に記載されるK. Tateno et al.による論文「CNN-SLAM: Real-time dense monocular SLAM with learned depth prediction」は、畳み込みニューラルネットワーク(CNN)により取得された奥行きマップと、直接単眼SLAMから取得された奥行き測定との融合を説明する。不鮮明な奥行き境界を回復させるために、CNN予測奥行きマップが再構成の初期推定として使用され、ピクセルごとの小ベースラインステレオマッチングに依存する直接SLAMスキームにより、連続的に精緻化される。しかし、この手法では、全体的な一貫性は保持されない。
【0005】
既存の技法を考えると、例えば3D空間のマッピングを改善するために、奥行き推定の有効で効率的な方法が望まれる。
【発明の概要】
【課題を解決するための手段】
【0006】
本発明の第1の態様による、シーンの奥行きを推定する画像処理システムが提供される。画像処理システムは、融合エンジンを備え、融合エンジンは、幾何学的再構成エンジンからの第1の奥行き推定と、ニューラルネットワークアーキテクチャからの第2の奥行き推定とを受信し、第1の奥行き推定と第2の奥行き推定とを確率的に融合させて、シーンの融合奥行き推定を出力し、融合エンジンは、幾何学的再構成エンジンからの第1の奥行き推定の不確実性測定と、ニューラルネットワークアーキテクチャからの第2の奥行き推定の不確実性測定と、を受信するように構成され、融合エンジンは、不確実性測定を使用して、第1の奥行き推定と第2の奥行き推定とを確率的に融合させるように構成される。
【0007】
いくつかの実施例では、融合エンジンは、ニューラルネットワークアーキテクチャから表面配向推定及び表面配向推定の不確実性測定を受信し、表面配向推定及び表面配向推定の不確実性測定を使用して、第1の奥行き推定と第2の推定とを確率的に融合させるように構成される。
【0008】
いくつかの実施例では、表面配向推定には、第1の方向の奥行き勾配推定、第1の方向に直交する方向の奥行き勾配推定、及び表面法線推定のうちの1つ以上が含まれる。
【0009】
いくつかの実施例では、融合エンジンは、第1の奥行き推定と第2の推定とを確率的に融合させる時に、スケール推定を特定するように構成される。
【0010】
いくつかの実施例では、シーンは、ビデオデータの第1のフレームでキャプチャされ、ビデオデータの第1のフレームについての第2の奥行き推定が受信され、第1の奥行き推定には、ビデオデータの第1のフレームについての複数の第1の奥行き推定が含まれ、複数の第1の奥行き推定のうちの少なくとも1つは、ビデオデータの第1のフレームとは異なるビデオデータの第2のフレームを使用して生成され、融合エンジンは、反復ごとに第2の奥行き推定と複数の奥行き推定のうちの1つとを処理して、シーンの融合奥行き推定を反復的に出力するように構成される。
【0011】
いくつかの実施例では、第1の奥行き推定、第2の奥行き推定、及び融合奥行き推定はそれぞれ、複数のピクセルについての奥行きマップを含む。
【0012】
いくつかの実施例では、第1の奥行き推定は、中密度奥行き推定であり、第2の奥行き推定及び融合奥行き推定はそれぞれ、高密度奥行き推定を含む。
【0013】
いくつかの実施例では、システムは、ビデオデータのフレームをキャプチャする単眼カメラと、シーンを観察している間の単眼カメラの姿勢を特定する追跡システムと、幾何学的再構成エンジンと、を備える。このような実施例では、幾何学的再構成エンジンは、追跡システムからの姿勢と、ビデオデータのフレームとを使用して、ビデオデータのフレームからピクセルの少なくとも部分集合についての奥行き推定を生成するように構成され、幾何学的再構成エンジンは、測光誤差を最小化して、奥行き推定を生成するように構成される。
【0014】
いくつかの実施例では、システムは、ニューラルネットワークアーキテクチャを備え、ニューラルネットワークアーキテクチャは、1つ以上のニューラルネットワークを含み、ビデオデータのフレームのピクセル値を受信し、予測を行うように構成され、当該予測では、第2の奥行き推定を生成するために、画像部分の第1の集合のそれぞれについての奥行き推定と、画像部分の第2の集合のそれぞれについての少なくとも1つの表面配向推定と、各奥行き推定に関連付けられた1つ以上の不確実性測定と、各表面配向推定に関連付けられた1つ以上の不確実性測定と、が予測される。
【0015】
本発明の第2の態様による、シーンの奥行きを推定する方法が提供される。方法は、シーンの幾何学的再構成を使用して、シーンの第1の奥行き推定を生成することであって、幾何学的再構成は、第1の奥行き推定の不確実性測定を出力するように構成される、当該生成することと、ニューラルネットワークアーキテクチャを使用して、シーンの第2の奥行き推定を生成することであって、ニューラルネットワークアーキテクチャは、第2の奥行き推定の不確実性測定を出力するように構成される、当該生成することと、不確実性測定を使用して、第1の奥行き推定と第2の奥行き推定とを確率的に融合させて、シーンの融合奥行き推定を生成することと、を含む。
【0016】
いくつかの実施例では、方法は、第1の奥行き推定を生成する前に、シーンの2つ以上のビューを表す画像データをカメラから取得することを含む。このような実施例では、第1の奥行き推定を生成することは、カメラの姿勢推定を取得することと、少なくとも姿勢推定と画像データとの関数である測光誤差を最小化することにより、第1の奥行き推定を生成することと、を含む。
【0017】
いくつかの実施例では、方法は、第1の奥行き推定を生成する前に、シーンの1つ以上のビューを表す画像データをカメラから取得することを含む。このような実施例では、第2の奥行き推定を生成することは、ニューラルネットワークアーキテクチャで、画像データを受信することと、第2の奥行き推定を生成するために、ニューラルネットワークアーキテクチャを使用して、画像部分の集合のそれぞれについて奥行き推定を予測することと、ニューラルネットワークアーキテクチャを使用して、画像部分の集合のそれぞれについて少なくとも1つの表面配向推定を予測することと、ニューラルネットワークアーキテクチャを使用して、各奥行き推定及び各表面配向推定の不確実性測定の集合を予測することと、を含む。表面配向推定には、第1の方向の奥行き勾配推定、第1の方向に直交する方向の奥行き勾配推定、及び表面法線推定のうちの1つ以上が含まれ得る。
【0018】
いくつかの実施例では、方法は、第1の奥行き推定を生成する前に、シーンの2つ以上のビューを表す画像データをカメラから取得することを含み、画像データは複数のピクセルを含む。このような実施例では、第1の奥行き推定を生成することは、カメラの姿勢推定を取得することと、画像データ内のピクセルの一部についての奥行き推定を含む中密度奥行き推定を生成することと、を含む。これらの実施例では、第2の奥行き推定を生成することは、画像データ内のピクセルについて高密度奥行き推定を生成することを含み、第1の奥行き推定と第2の奥行き推定とを確率的に融合させることは、画像データ内のピクセルについて高密度奥行き推定を出力することを含む。
【0019】
いくつかの実施例では、方法は、反復的に繰り返され、後続の反復に関して、方法は、第2の奥行き推定を生成するか否かを判定することを含み、第1の奥行き推定と第2の奥行き推定とを確率的に融合させることは、第2の奥行き推定を生成しないという判定に応じて、第2の奥行き推定の前の値の集合を使用することを含む。
【0020】
いくつかの実施例では、方法は、ビデオデータのフレームに適用され、第1の奥行き推定と第2の奥行き推定とを確率的に融合させることは、ビデオデータの所与のフレームについて、第1の奥行き推定に関連付けられた第1のコスト項と、第2の奥行き推定に関連付けられた第2のコスト項とを含むコスト関数を最適化することを含む。このような実施例では、第1のコスト項は、融合奥行き推定値と、第1の奥行き推定値と、第1の奥行き推定の不確実性値との関数を含み、第2のコスト項は、融合奥行き推定値と、第2の奥行き推定値と、第2の奥行き推定の不確実性値との関数を含み、コスト関数を最適化して、融合奥行き推定値が特定される。コスト関数を最適化することは、融合奥行き推定のスケールファクタを特定することを含み得、スケールファクタは、シーンに関する融合奥行き推定のスケールを示す。いくつかの実施例では、方法は、ニューラルネットワークアーキテクチャを使用して、シーンの少なくとも1つの表面配向推定を生成することを含み、ニューラルネットワークアーキテクチャは、少なくとも1つの表面配向推定のそれぞれについて不確実性測定を出力するように構成され、コスト関数は、少なくとも1つの表面配向推定に関連付けられた第3のコスト項を含み、第3のコスト項は、融合奥行き推定値と、表面配向推定値と、少なくとも1つの表面配向推定のそれぞれについての不確実性値との関数を含む。
【0021】
第2の態様による特定の実施例集合では、シーンの幾何学的再構成は、シーンの第1の奥行き確率体積を生成するように構成され、第1の奥行き確率体積は、第1の奥行き推定を含む第1の複数の奥行き推定と、第1の複数の奥行き推定の各奥行き推定にそれぞれ関連付けられた第1の複数の不確実性測定と、を含み、第1の複数の奥行き推定のうちの所与の奥行き推定に関連付けられた不確実性測定は、シーンの所与の領域が、第1の複数の奥行き推定のうちの所与の奥行き推定により表される奥行きに存在する確率を表し、ニューラルネットワークアーキテクチャは、シーンの第2の奥行き確率体積を出力するように構成され、第2の奥行き確率体積は、第2の奥行き推定を含む第2の複数の奥行き推定と、第2の複数の奥行き推定の各奥行き推定にそれぞれ関連付けられた第2の複数の不確実性測定と、を含み、第2の複数の奥行き推定のうちの所与の奥行き推定に関連付けられた不確実性測定は、シーンの所与の領域が、第2の複数の奥行き推定のうちの所与の奥行き推定により表される奥行きに存在する確率を表す。
【0022】
特定の実施例集合のうちのいくつかの実施例では、シーンの第2の奥行き推定を生成することは、ニューラルネットワークアーキテクチャを使用してシーンの画像を表す画像データを処理して、第2の奥行き確率体積を生成することを含み、第2の複数の奥行き推定は、複数の奥行き推定集合を含み、それぞれがシーンの画像の異なる各部分に関連付けられる。
【0023】
特定の実施例集合のうちのいくつかの実施例では、第2の複数の奥行き推定は、事前に定義された値を有する奥行き推定を含む。事前に定義された値の間には、不均一な間隔があり得る。事前に定義された値は、事前に定義された奥行き範囲内の複数の対数奥行き値を含み得る。
【0024】
特定の実施例集合のうちのいくつかの実施例では、シーンの第1の奥行き確率体積を生成することは、シーンの第1の観察を表すビデオデータの第1のフレームと、シーンの第2の観察を表すビデオデータの第2のフレームとを処理して、第1のフレームの複数の部分のそれぞれについて測光誤差の集合を生成することであって、測光誤差はそれぞれ、第1の複数の奥行き推定の異なる各奥行き推定に関連付けられる、当該生成することと、測光誤差をスケーリングして、測光誤差をそれぞれの確率値に変換することと、を含む。
【0025】
特定の実施例集合のうちのいくつかの実施例では、不確実性測定を使用して第1の奥行き推定と第2の奥行き推定とを確率的に融合させることは、第1の複数の不確実性測定と第2の複数の不確実性測定とを組み合わせて、融合確率体積を生成することを含む。これらの実施例では、シーンの融合奥行き推定を生成することは、融合確率体積からシーンの融合奥行き推定を取得することを含み得る。これらの実施例は、融合確率体積を使用して奥行き確率関数を取得することと、奥行き確率関数を使用して、融合奥行き推定を取得することと、を含み得る。これらの実施例では、融合奥行き推定を取得することは、コスト関数を最適化することを含み得、当該コスト関数は、融合確率体積を使用して取得された第1のコスト項と、奥行き値に対する局所的な幾何学的制約を含む第2のコスト項と、を含む。このような事例では、方法は、さらなるニューラルネットワークアーキテクチャから、表面配向推定及びオクルージョン境界推定を受信することと、表面配向推定及びオクルージョン境界推定を使用して、第2のコスト項を生成することと、をさらに含み得る。これらの実施例では、融合奥行き確率体積は、シーンの第1の観察を表すビデオデータの第1のフレームに関連付けられた第1の融合奥行き確率体積であり得、方法は、第1の融合奥行き確率体積を、第1の占有確率体積に変換することと、シーンを観察している間のカメラの姿勢を表す姿勢データに基づいて、第1の占有確率体積をワープさせて、シーンの第2の観察を表すビデオデータの第2のフレームに関連付けられた第2の占有確率体積を取得することと、第2の占有確率体積を、第2のフレームに関連付けられた第2の融合奥行き確率体積に変換することと、を含み得る。
【0026】
本発明の第3の態様による、シーンの奥行きを推定する画像処理システムが提供され、画像処理システムは、幾何学的再構成エンジンからの第1の奥行き確率体積と、ニューラルネットワークアーキテクチャからの第2の奥行き確率体積とを受信し、第1の奥行き確率体積と第2の奥行き確率体積とを融合させて、シーンの融合奥行き確率体積を出力する、融合エンジンと、融合奥行き確率体積を使用して、シーンの奥行きを推定する奥行き推定エンジンと、を備える。
【0027】
本発明の第4の態様による、シーンの奥行きを推定する方法が提供され、方法は、シーンの幾何学的再構成を使用して、シーンの第1の奥行き確率体積を生成することと、ニューラルネットワークアーキテクチャを使用して、シーンの第2の奥行き確率体積を生成することと、第1の奥行き確率体積と第2の奥行き確率体積とを融合させて、シーンの融合奥行き確率体積を生成することと、融合奥行き確率体積を使用して、シーンの融合奥行き推定を生成することと、を含む。
【0028】
本発明の第5の態様によるコンピューティングシステムが提供され、コンピューティングシステムは、ビデオのフレームを提供する単眼キャプチャデバイスと、単眼キャプチャデバイスの姿勢データを提供する位置特定及びマッピング同時実行システムと、第1または第3の態様のシステムと、姿勢データ及びビデオのフレームを受信して、幾何学的再構成エンジンを実施する中密度マルチビューステレオコンポーネントと、ニューラルネットワークアーキテクチャを実施する電子回路と、を備える。
【0029】
本発明の第6の態様によるロボットデバイスが提供され、ロボットデバイスは、第5の態様のコンピューティングシステムと、ロボットデバイスが周囲の3次元環境とインタラクトすることを可能にする1つ以上のアクチュエータであって、周囲の3次元環境の少なくとも一部がシーンに示される、当該1つ以上のアクチュエータと、1つ以上のアクチュエータを制御する少なくとも1つのプロセッサを有するインタラクションエンジンであって、融合奥行き推定を使用して周囲の3次元環境とインタラクトする当該インタラクションエンジンと、を備える。
【0030】
本発明の第7の態様による、コンピュータ実行可能命令を含む非一時的コンピュータ可読記憶媒体が提供され、コンピュータ実行可能命令は、プロセッサにより実行されると、コンピューティングデバイスに、前述の方法のうちのいずれかを実行させる。
【0031】
添付の図面を参照する単なる例として与えられた本発明の実施形態の下記の説明から、さらなる機能が明らかになるであろう。
【図面の簡単な説明】
【0032】
【
図1A】3次元(3D)空間の実施例を示す概略図である。
【
図1B】3D空間における例示的なオブジェクトの利用可能な自由度を示す概略図である。
【
図1C】例示的なキャプチャデバイスにより生成されるビデオデータを示す概略図である。
【
図2】実施例による画像処理システムの概略図である。
【
図3】さらなる実施例による、画像処理システムの概略図である。
【
図4】さらなる別の実施例による、画像処理システムの概略図である。
【
図5】実施例による、表面配向推定及び表面配向推定の不確実性測定を示す概略図である。
【
図6】さらなる別の実施例による、画像処理システムの概略図である。
【
図7A】実施例による、コンピューティングシステムのコンポーネントを示す概略図である。
【
図7B】実施例による、ロボットデバイスのコンポーネントを示す概略図である。
【
図8】
図1~7を参照して説明された様々な機能の実施例を示す概略図である。
【
図9】シーンの奥行きを推定する例示的な方法を示すフロー図である。
【
図10】シーンの奥行きを推定するさらなる例示的な方法を示すフロー図である。
【
図11】プロセッサと、コンピュータ実行可能命令を含む非一時的コンピュータ可読記憶媒体との実施例を示す概略図である。
【
図12】さらなる実施例による、シーンの第1の奥行き推定と第2の奥行き推定との融合を示す概略図である。
【
図13】実施例による、第2の奥行き確率体積を取得するためのシステムの概略図である。
【
図14】
図13のシステムを使用して取得されたそれぞれの奥行き推定に関連付けられた不確実性測定の実施例を示す概略図である。
【
図15】実施例による、第1の奥行き確率体積を取得するためのシステムの概略図である。
【
図16】シーンの融合奥行き推定を取得する例示的な方法を示すフロー図である。
【
図17】
図16の方法を使用することにより、融合奥行き推定を取得するためのシステムの概略図である。
【
図18】第2の融合奥行き確率体積を取得する例示的な方法を示すフロー図である。
【
図19】さらなる実施例による、シーンの奥行きを推定する例示的な方法を示すフロー図である。
【
図20】さらなる実施例による、シーンの奥行きを推定する画像処理システムの概略図である。
【発明を実施するための形態】
【0033】
本明細書で説明されるいくつかの実施例は、シーンの奥行きを推定することを可能にする。このような実施例は、シーンの幾何学的再構成を使用したシーンの第1の奥行き推定の生成を含む。第1の奥行き推定は、例えばシーンの画像を処理することにより、生成され得る。画像は、例えば、2次元(2D)カラー画像であり得、例えばRGB(赤、緑、青)画像であり得る。第1の奥行き推定は、幾何学的制約に基づいて生成され得る。例えば、シーンの所与の部分を表す画像内のピクセルの色は、画像をキャプチャするのに使用されるカメラの位置とは無関係であると想定され得る。これは、図を参照してさらに説明されるように、第1の奥行き推定の生成に利用され得る。幾何学的再構成はまた、例えば第1の奥行き推定の正確度を示す第1の奥行き推定の不確実性測定を出力するように構成される。例えば、第1の奥行き推定が多く制約を受け、正確に推定され得る場合、不確実性測定は、第1の奥行き推定が少なく制約を受けた他の事例より、低くなり得る。
【0034】
ニューラルネットワークアーキテクチャを使用して、シーンの第2の奥行き推定が生成される。ニューラルネットワークアーキテクチャはまた、第2の奥行き推定の不確実性測定を出力するように構成される。例えば、入力画像から奥行き推定及び関連する不確実性の両方を予測するようにトレーニングされた畳み込みニューラルネットワーク(CNN)などのニューラルネットワークアーキテクチャを使用して、シーンの画像は処理され得る。不確実性測定は、関連する第2の奥行き推定の信頼性を示し得る。例えば、ニューラルネットワークアーキテクチャのトレーニングに使用されたトレーニングデータに存在しなかったオブジェクトを含む画像領域の第2の奥行き推定は、比較的不確実であり得、よって、ニューラルネットワークアーキテクチャから取得された比較的高い不確実性測定に関連付けられ得る。反対に、トレーニングデータに存在したオブジェクトを含む画像領域の第2の奥行き推定は、より低い不確実性測定に関連付けられ得る。
【0035】
第1の奥行き推定と第2の奥行き推定は、不確実性測定を使用して確率的に融合され、シーンの融合奥行き推定が生成される。このように第1の奥行き推定と第2の奥行き推定とを組み合わせることにより、融合奥行き推定の精度は向上し得る。例えば第1の奥行き推定(幾何学的制約に基づく)は、シーンの一部分をシーンの別の部分と比較して、シーンの当該部分の信頼できる相対的な奥行き推定を提供し得る。このようにして、第1の奥行き推定は、例えばシーンの他の部分と比較して、実世界環境内の好適な位置にシーンの当該部分を配置あるいは位置特定することが可能であり得る。しかし、第1の奥行き推定は、例えばシーンのその部分内の表面の不均一なテクスチャが原因で、シーンのその部分内の奥行きの変化など、シーンのその部分内の奥行き勾配をキャプチャする精度が低くあり得る。対照的に、第2の奥行き推定(ニューラルネットワークアーキテクチャから取得される)は、シーン内の奥行き勾配を正確にキャプチャし得るが、シーンの所与の部分をシーンの他の部分と比較して位置特定する精度は、低くあり得る。しかし、不確実性測定を使用して第1の奥行き推定と第2の奥行き推定とを確率的に融合させることにより、第1の奥行き推定及び第2の奥行き推定それぞれの個々の効果が相乗的に増強され得、よって、融合奥行き推定の精度が向上する。例えば、融合奥行き推定の全体的一貫性を確保するために、不確実性測定は、第1の奥行き推定と第2の奥行き推定との融合を制約し得る。さらに、シーンの推定奥行きにおける不鮮明なアーチファクトは、他の方法と比較して減少し得る。
【0036】
図1A及び
図1Bは、3D空間の実施例と、その空間に関連付けられた画像データのキャプチャとを、概略的に示す。次に、
図1Cは、空間を表示する時に画像データを生成するように構成されたキャプチャデバイスを示す。これらの実施例は、本明細書で説明されるいくつかの機能をよりよく説明するために提示されており、限定するものとしてみなされるべきではなく、説明をしやすくするために、いくつかの機能は省略及び簡略化されている。
【0037】
図1Aは、3D空間110の実施例100を示す。3D空間110は、内部物理空間及び/または外部物理空間、例えば部屋または地理的場所の少なくとも一部であり得る。本実施例100の3D空間110は、3D空間内に配置された、いくつかの物理オブジェクト115を含む。これらのオブジェクト115には、とりわけ、人、電子デバイス、家具、動物、建物部分、及び設備のうちの1つ以上が含まれ得る。
図1Aの3D空間110は、下面が示されているが、これが全ての実施態様においてそうである必要はなく、例えば環境は、空中または地球外空間内であってもよい。
【0038】
実施例100はまた、3D空間110に関連付けられたビデオデータをキャプチャするのに使用され得る様々な例示的なキャプチャデバイス120-A、120-B、120-C(参照番号120と総称される)を示す。
図1Aのキャプチャデバイス120-Aなどのキャプチャデバイスは、3D空間110を観察することにより生じるデータを、デジタル形式またはアナログ形式で記録するように構成されたカメラを備え得る。例えば、キャプチャデバイス120-Aは、単眼カメラなどの単眼キャプチャデバイスであり得る。単眼カメラは通常、1度に1つの位置からシーンの画像をキャプチャし、単一のレンズまたはレンズシステムを有し得る。対照的に、ステレオカメラは一般に、少なくとも2つのレンズを含み、レンズごとに個別の画像センサを有する。キャプチャデバイス120-Aとして使用可能な単眼キャプチャデバイスは、複数の角度位置から3D空間110の画像をキャプチャするように配置された単眼多方向カメラデバイスであり得る。使用時、複数の画像が次々にキャプチャされ得る。いくつかの事例では、複数の角度位置は、広い視野を占める。特定の事例では、キャプチャデバイス120-Aは、全方向カメラ、例えば実質的に360度の視野をキャプチャするように構成されたデバイスを備え得る。この事例では、全方向カメラは、パノラマ環状レンズを有するデバイスを備え得、例えばレンズは、電荷結合アレイに関連して取り付けられ得る。
【0039】
複数の異なる位置から3D空間の複数の画像をキャプチャするために、キャプチャデバイス120-Aは、移動可能であり得る。例えば、キャプチャデバイス120-Aは、3D空間110の異なる観察部分に対応する異なるフレームをキャプチャするように構成され得る。キャプチャデバイス120-Aは、静止台を基準にして移動可能であり得、例えば3D空間110に関してカメラの位置及び/または配向を変更させるアクチュエータを備え得る。別の事例では、キャプチャデバイス120-Aは、人間のユーザにより操作及び移動されるハンドヘルドデバイスであり得る。一事例では、キャプチャデバイス120-Aは、一連の画像をキャプチャするように構成されたカメラなどの静止画像デバイスを備え得、別の事例では、キャプチャデバイス120-Aは、一連の画像をビデオフレームの形式で含むビデオデータをキャプチャするビデオデバイスを備え得る。例えば、キャプチャデバイス120-Aは、ビデオデータのフレームをキャプチャする、あるいは取得する単眼カメラまたは単眼キャプチャデバイスであり得る。
【0040】
図1Aでは、3D空間110内を移動するように構成されたロボットデバイス130に接続された複数のキャプチャデバイス120-B、120-Cも示される。ロボットデバイス135には、自律空中可動デバイス及び/または自律地上可動デバイスが含まれ得る。本実施例100では、ロボットデバイス130は、アクチュエータ135を備え、アクチュエータ135は、デバイスが3D空間110をナビゲートすることを可能にする。これらのアクチュエータ135には、例示のホイールが含まれ、他の事例では、これらのアクチュエータ135には、線路、穿孔機構、ローターなどが含まれ得る。このようなデバイス上に、1つ以上のキャプチャデバイス120-B、120-Cは、静的にまたは移動可能に取り付けられ得る。いくつかの事例では、ロボットデバイスは、3D空間110内に静的に取り付けられ得るが、アームまたは他のアクチュエータなどのデバイスの一部は、空間内を移動して、空間内のオブジェクトとインタラクトするように構成され得る。各キャプチャデバイス120-B、120-Cは、異なる種類の画像データ、ビデオデータをキャプチャし得、及び/またはステレオ画像ソースを含み得る。一事例では、キャプチャデバイス120-B、120-Cのうちの少なくとも1つは、測光データ、例えばカラー画像またはグレースケール画像をキャプチャするように構成される。一事例では、キャプチャデバイス120-B、120-Cのうちの1つ以上は、ロボットデバイス130とは無関係に移動可能であり得る。一事例では、キャプチャデバイス120-B、120-Cのうちの1つ以上は、例えば角度のある円弧で回転する、及び/または360度で回転する回転機構上に取り付けられ得、並びに/あるいはシーンのパノラマ(例えば最大360度の完全パノラマ)をキャプチャするように適合された光学素子で構成される。いくつかの事例では、キャプチャデバイス120-Aと同様または同一のキャプチャデバイスが、
図1Aのキャプチャデバイス120-B、120-Cのうちの一方または両方として、使用され得ることが、理解されよう。
【0041】
図1Bは、キャプチャデバイス120及び/またはロボットデバイス130が利用可能な自由度の実施例140を示す。120-Aなどのキャプチャデバイスの事例では、デバイスの方向150は、レンズまたは他の撮像装置の軸と同一線上であり得る。3軸のうちの1軸の周りを回転する例として、法線軸155が図に示される。同様に、ロボットデバイス130の事例では、ロボットデバイス130のアライメント方向145が定義され得る。これは、ロボットデバイスの向き及び/または進行方向を示し得る。法線軸155も示される。キャプチャデバイス120またはロボットデバイス130に関して単一の法線軸のみが示されるが、これらのデバイスは、後述されるように、140として概略的に示される軸のうちのいずれか1つ以上の軸の周りを回転し得る。
【0042】
より一般的には、キャプチャデバイスの配向及び位置は、6自由度(6DOF)を基準にして3次元において定義され得、位置は、3次元の各次元内に、例えば[x、y、z]座標により定義され得、配向は、3軸の各軸の周りの回転を表す角度ベクトル、例えば[θx、θy、θz]により定義され得る。位置及び配向は、例えば3D座標系内で定義された原点を基準とした、3次元内の変換とみなされ得る。例えば、[x、y、z]座標は、原点から3D座標系内の特定の位置への変換を表し得、角度ベクトル[θx、θy、θz]は、3D座標系内の回転を定義し得る。6DOFを有する変換は、行列として定義され得、よって行列による乗算により、変換が適用される。いくつかの実施態様では、キャプチャデバイスは、制限された6自由度の集合を基準にして定義され得、例えば地上車両上のキャプチャデバイスの場合、y次元は一定であり得る。ロボットデバイス130などのいくつかの実施態様では、別のデバイスに接続されたキャプチャデバイスの配向及び位置は、その別のデバイスの配向及び位置を基準にして定義され得、例えばロボットデバイス130の配向及び位置を基準にして定義され得る。
【0043】
本明細書で説明される実施例では、例えば6DOF変換行列で記述されたように、キャプチャデバイスの配向及び位置は、キャプチャデバイスの姿勢として定義され得る。同様に、例えば6DOF変換行列で記述されたように、オブジェクト表現の配向及び位置は、オブジェクト表現の姿勢として定義され得る。例えばビデオデータまたは一連の静止画像が記録される時、キャプチャデバイスが時間t+1に時間tとは異なる姿勢を取り得るように、キャプチャデバイスの姿勢は経時的に変化し得る。キャプチャデバイスを備えたハンドヘルドモバイルコンピューティングデバイスの事例では、ハンドヘルドデバイスはユーザにより3D空間110内を移動させられるため、その姿勢は変化し得る。
【0044】
図1Cは、キャプチャデバイス構成の実施例を概略的に示す。
図1Cの実施例160では、キャプチャデバイス165は、画像データ170を生成するように構成される。
図1Cでは、画像データ170は、複数のフレーム175を含む。各プレーム175は、
図1の110などの3D空間の画像がキャプチャされる期間内の特定の時間tに関連し得る(すなわちF
t)。フレーム175は通常、測定データの2D表現から成る。例えば、フレーム175は、時間tに記録されたピクセル値の2D配列または行列を含み得る。
図1Cの実施例では、画像データ内の全てのフレーム175は同じサイズであるが、これは全ての実施例においてそうである必要はない。フレーム175内のピクセル値は、3D空間の特定の部分の測定を表す。
図1Cでは、画像データは、単眼キャプチャデバイスからのシーンの複数のビューを表し、複数のビューのそれぞれは、異なる各時間tにキャプチャされたものである。しかし、他の事例では、キャプチャデバイス(すなわち画像キャプチャシステムまたはビデオキャプチャシステム)によりキャプチャされた画像データは、互いに同じ時間、または少なくとも部分的に重複する時間にキャプチャされたシーンの複数のビューを表し得る。これは、キャプチャデバイスがステレオキャプチャシステムである事例であり得る。
【0045】
図1Cの実施例では、各フレーム175は、測光データを含む。測光データは通常、輝度、強度、色など、画像の測光特性を表す。
図1Cでは、各フレーム175は、フレーム175の各ピクセルの強度値を含み、これは、例えばカラーバンドまたはカラーチャネルごとに0~255のグレースケールレベルまたは輝度レベルで記憶され得る。例えばグレースケールレベル0は最も暗い強度(例えば黒)に該当し、例えばグレースケールレベル255は最も明るい強度(例えば白)に該当し、グレースケールレベル0~255は、黒と白との間の中間強度に該当する。
図1Cでは、測光データは、所与の解像度の赤、緑、青のピクセル強度値を表す。ゆえに、各フレーム175は、カラー画像を表し、フレーム内の各[x、y]ピクセル値は、RGBベクトル[R、G、B]を含む。一実施例として、カラーデータの解像度は、640×480ピクセルであり得る。他の実施例では、他のカラー空間が使用され得、及び/または測光データは、他の測光特性を表し得る。
【0046】
キャプチャデバイス165は、接続されたデータストレージデバイスに画像データ170を記憶するように構成され得る。別の事例では、キャプチャデバイス165は、画像データ170を、例えばデータストリームとして、またはフレームごとに、接続されたコンピューティングデバイスに送信し得る。接続されたコンピューティングデバイスは、例えばユニバーサルシリアルバス(USB)接続を介して直接接続され得る、または間接的に接続され得、例えば画像データ170は、1つ以上のコンピュータネットワークを介して送信され得る。さらに別の事例では、キャプチャデバイス165は、画像データ170を1つ以上のコンピュータネットワークを介して送信し、ネットワーク接続ストレージデバイスに記憶するように構成され得る。画像データ170は、フレームごとに、または例えば複数のフレームがまとめられ得るバッチベースで、記憶及び/または送信され得る。
【0047】
画像データ170はまた、後述の実施例で使用される前に、1つ以上の前処理動作が実行され得る。一事例では、2つのフレーム集合が共通のサイズ及び解像度を有するように、前処理が適用され得る。
【0048】
いくつかの事例では、キャプチャデバイス165は、画像データ形式でビデオデータを生成するように構成され得る。しかし、ビデオデータは、異なる各時間にキャプチャされた複数のフレームを同様に表し得る。一事例では、キャプチャデバイス165によりキャプチャされたビデオデータは、圧縮されたビデオストリームまたはファイルを含み得る。この事例では、例えばビデオデコーダの出力として、ストリームまたはファイルからビデオデータのフレームが再構成され得る。ビデオストリームまたはファイルの前処理に続いて、メモリ位置からビデオデータが取得され得る。
【0049】
図1Cは実施例として提供され、後述の方法及びシステムで使用する画像データ170を生成するために、図に示される構成とは異なる構成を使用してもよいことが、理解されよう。画像データ170にはさらに、3D空間のキャプチャされたまたは記録されたビューを表す2次元形式で構成された任意の測定感覚入力が含まれ得る。例えば、これは、数ある中でも、測光データ、奥行きデータ電磁撮像、超音波撮像及びレーダ出力が挙げられ得る。これらの事例では、特定のデータ形式に関連付けられた撮像デバイス、例えば奥行きデータのないRGBデバイスのみが必要になり得る。
【0050】
図2は、シーンの奥行きを推定するための例示的な画像処理システム200を示す。
図2の画像処理システム200では、幾何学的再構成エンジンにより、第1の奥行き推定230、及び第1の奥行き推定230の不確実性測定235が生成される。第1の奥行き推定230、及び第1の奥行き推定230の不確実性測定235は、まとめて第1の奥行きデータ250と称され得る。幾何学的再構成エンジンは、例えばシーンの少なくとも2つの画像を処理することにより、第1の奥行き推定230を取得するように構成される。
図1A~
図1Cを参照して説明されたように、少なくとも2つの画像は、任意の好適なキャプチャデバイスを使用してキャプチャされ得、RGBデータなどの画像データとして表され得る。幾何学的再構成エンジンは、測光技法を利用して、第1の奥行き推定230を生成し得る。例えば、シーンの所与の部分の画像を取得するのに使用されたキャプチャデバイスの位置に関係なく、シーンの所与の部分は、同じ測光特性(輝度、強度、及び/または色など)を有するはずである。幾何学的再構成エンジンは、これを利用して、第1の奥行き推定230を生成し得る。一実施例として、幾何学的再構成エンジンは、異なるそれぞれの位置からキャプチャされた同一シーンの少なくとも2つの画像を処理して、測光誤差を最小化するシーンの所与の部分の奥行きを特定し得る。例えば、第1の奥行き推定230がシーンの所与の部分の実際の奥行きに最も近い時、測光誤差を最小化することができる。しかし、これは単なる例であり、他の実施例では、他の幾何学的技法を使用して第1の奥行き推定230が生成され得る。特に、例えば
図2を参照して本明細書で説明される幾何学的再構成技法は、例えば単眼システムを使用して取得され得る2つの画像を使用するが、他の実施例、例えば単一ステレオ画像の事例では、1つ以上の画像が使用され得る。
【0051】
いくつかの事例では、第1の奥行き推定230を生成する前に、シーンの2つ以上のビューを表す画像データが、カメラなどのキャプチャデバイスから取得される。このような事例では、第1の奥行き推定230を生成することは、カメラの姿勢推定を取得することと、少なくとも姿勢推定と画像データとの関数である測定誤差を最小化することにより、第1の奥行き推定230を生成することと、を含む。
【0052】
カメラの姿勢推定は通常、画像データにより表される画像をキャプチャしている間のカメラの位置及び配向を示す。画像データが、例えばビデオのフレームに対応する一連のビューを表す場合、姿勢推定は、ビデオのフレームを通した経時的なカメラの位置及び配置を示し得る。例えば、画像データは、環境(部屋の内部など)の方々にカメラ(RGBカメラなど)を移動させることにより、取得され得る。従って、ビデオのフレームの少なくとも部分集合(ゆえに画像データにより表される画像の部分集合)は、フレームが記録された時間のカメラの位置及び配向を表す対応姿勢推定を有し得る。姿勢推定は、ビデオの全てのフレーム(または一連の画像の全ての画像)に存在するわけではないが、カメラが取得したビデオまたは複数の画像のうちの画像の部分集合の記録された時間範囲内の時間の部分集合に関して、特定され得る。
【0053】
カメラの姿勢推定を取得するために、様々な異なる方法が使用され得る。例えば、カメラの姿勢は、画像データを受信し姿勢を出力する既知のSLAMシステムを使用して推定され得、位置及び配向を示すカメラのセンサを使用して、及び/またはカスタム姿勢追跡方法を使用して、推定され得る。SLAMシステムでは、例えば、カメラの姿勢は、経時的にカメラがキャプチャした画像の処理に基づいて、推定され得る。
【0054】
少なくともポーズ推定と画像データとの関数である測光誤差を最小化することにより、第1の奥行き推定230を取得することができる。いくつかの事例では、マッピング関数を適用して、第1の画像(シーンの第1のビューに対応)のピクセルを、第2の画像(シーンの第2のビューに対応)の対応位置にマッピングして、第1の画像の再マッピングバージョンが取得され得る。このようなマッピング関数は、例えば、第1の画像をキャプチャしている間のカメラの推定姿勢と、第1の画像のピクセルの奥行きに依存する。次に、第1の画像の再マッピングバージョンのピクセルごとに、測光特性が特定され得る(例えば所与のピクセルの強度値を返す強度関数を使用して)。次に、同じ強度関数を使用して、(カメラにより取得された)第1の画像のピクセルごとに、対応する測光特性が特定され得る。所与の奥行きのピクセルに関連付けられた測光特性(ピクセル強度値など)は、カメラの姿勢とは無関係であるはずのため、第1の画像の再マッピングバージョン及び第1の画像自体の測光特性は、奥行きが正しく推定されると、同一になるはずである。このようにして、第1の画像のピクセルの奥行きは、反復的に変更され得、測光誤差(例えば第1の画像の測光特性と、第1の画像の再マッピングバージョンの測光特性との差に基づく)は、反復ごとに計算され得る。所与のピクセルについての第1の奥行き推定230は、このような測光誤差を最小化する奥行き値であると考えられ得る。実施例では、測光誤差最小化プロセス中に反復的に使用される奥行き推定は、画像のエピポーラ線に沿い得る。所与のピクセルについて奥行き推定が既に存在する場合(例えば所与のピクセルに対応するピクセルを有する前のフレームまたは画像から取得済みである場合)、測光誤差計算に反復的に入力される奥行き推定は、前の奥行き推定の所与の範囲内であり得、例えば前の奥行き推定に関連付けられた不確実性測定を2回プラスマイナスした範囲内であり得る。これは、奥行き値のより可能性のある範囲内で好適な奥行き値の検索に集中することにより、第1の奥行き推定230の生成の効率性を向上させ得る。いくつかの事例では、最小測光誤差に関連付けられた奥行き値に近い、または当該奥行き値を含む2つの隣接する奥行き値の間で、補間が実行され得る。第1の奥行き推定230を取得するための好適な方法が、2013年のInternational Conference on Computer Vision(ICCV)の議事録に掲載されたJ. Engel et al,による論文「Semi-Dense Visual Odometry for a Monocular Camera」に説明される。しかし、他の方法が代わりに使用されてもよい。
【0055】
通常、第1の奥行き推定230に関連付けられた不確実性が存在する。不確実性は、例えば、第1の奥行き推定230が実際の奥行きに正しく対応する信頼度を表す。例えば、不確実性は、測光不確実性(キャプチャデバイスの測光解像度に制限され得るまたは依存し得る)に依存し得、測光不確実性は、第1の奥行き推定230が特定され得る精度を制限し得る。不確実性は、さらに、または代わりに、第1の奥行き推定230を生成するのに使用される方法と、第1の奥行き推定230の生成が補間プロセスを含む場合は隣接する補間点の間のステップサイズなど、この方法に関連付けられた任意の固有の不確実性とに依存し得る。不確実性は、第1の奥行き推定230に関連付けられた誤差に対応するとみなされ得る。
図2の実施例では、幾何学的再構成エンジンは、第1の奥行き推定230、及び第1の奥行き推定230の不確実性測定235の両方を出力するように構成される。幾何学的再構成エンジンは、第1の奥行き推定230に対応する平均μと、不確実性測定235に対応する分散θとを含む配列または行列を生成するように構成され得るが、これは単なる例に過ぎない。平均及び分散は、画像全体、1つ以上の画像部分、画像のピクセルのうちの1つ以上に関して提供され得る。
【0056】
第1の奥行き推定230の生成が測光誤差の最小化(または他の最適化)を含む実施例では、第1の奥行き推定230に関連付けられた不確実性測定235は、第1の奥行き推定230を取得するための補間に使用された2つの奥行き値間の測光誤差の差に基づき、及びこれらの2つの奥行き値間の差に基づいて、ヤコビアン項Jを計算することにより取得され得る。このような事例では、第1の奥行き推定230の不確実性θgeoは、次のように考えられ得る。
θgeo=(JTJ)-1
しかし、これは単なる例に過ぎず、他の実施例では、他の不確実性測定が使用され得る。
【0057】
いくつかの事例では、第1の奥行き推定230は、複数のピクセルについての第1の奥行きマップであり得る。例えば、第1の奥行き推定230には、シーンの入力画像のピクセルごとの毎ピクセル奥行き推定が含まれ得る。ゆえに、入力画像の解像度と、第1の奥行き推定230に対応する第1の奥行きマップとは、同一であり得る。第1の奥行き推定230を生成する前に、入力画像に対し前処理が実行され得、これには、入力画像の解像度を変更することが含まれ得ることを、理解されたい。例えば、入力画像の解像度は、例えば画像をダウンサンプリングして、入力画像を処理するための計算要件を削減することにより、低下し得る。他の事例では、第1の奥行き推定230には、複数のピクセルに対する単一の奥行き値が含まれ得、入力画像の奥行き値とピクセルとは、一対多対応である。例えば、複数のピクセル、例えば同様の色または強度など同様の測光特性を有する画像が組み合わせられ得、奥行き値は、このピクセルの組み合わせに関して取得され得る。
【0058】
いくつかの事例では、第1の奥行き推定230は、いわゆる「中密度」奥行き推定であり得る。このような事例では、第1の奥行き推定230には、例えば入力画像(または複数の画像)でキャプチャされたような、シーンの部分の部分集合の奥行き推定が含まれ得る。例えば、中密度奥行き推定には、例えばシーンの2つ以上のビューの一部に対応する、シーンの2つ以上のビューを表す画像データ内のピクセルの一部の奥行き推定が含まれ得る。第1の奥行き推定230が取得されたシーンの部分は、いくつかの測光基準などのいくつかの画像基準を満たすピクセルの部分に対応し得る。例えば、第1の奥行き推定230は、十分な量の詳細または情報を含むと特定された画像の部分について、取得され得る。これは、例えば所与の領域にわたる測光特性(輝度または色など)の変化を示す画像勾配を計算することにより、特定され得る。画像勾配は、シーンの所与の領域にわたる奥行きの変化を示す奥行き勾配に対応し得る、または奥行き勾配の代用として使用され得る。例えばシーンの比較的小さい領域で奥行きの変化が比較的大きく、シーンの特徴豊富な部分に対応するなど、大量に詳細を有する画像領域では、画像勾配は通常、比較的大きい。他の事例では、第1の奥行き推定230は、いわゆる「低密度」奥行き推定であり得る。これらの事例では、第1の奥行き推定230は、特定の画像特徴に対応すると特定された画像の部分について、取得され得る。例えば、画像のキーポイントが特定され得、画像のキーポイントは通常、様々な視点、回転、スケール、及び照度から確実に位置特定可能であり得る画像内の特徴的位置に対応する。このような事例では、他の画像部分の奥行き推定を取得することなく、キーポイントを含む画像パッチについて、第1の奥行き推定230は取得され得る。さらなる別の事例では、第1の奥行き推定230は、画像または画像部分のコンテンツに関係なく、画像全体(または画像部分)について奥行き推定が取得される、いわゆる「高密度」奥行き推定であり得る。
【0059】
いくつかの事例では、第1の奥行き推定230の不確実性測定235は、第1の奥行き推定230と、同じ種類であり得る、または同じ解像度を含み得る。例えば、第1の奥行き推定230に入力画像のピクセルごとの奥行き推定が含まれる場合、ピクセルごとの対応する不確実性測定も存在し得る。反対に、第1の奥行き推定230に入力画像の複数のピクセルについての奥行き推定が含まれる場合、その複数のピクセルについての対応する不確実性測定も存在し得る。同様に、第1の奥行き推定230が低密度、中密度、または高密度である場合、不確実性測定235もそれぞれ、低密度、中密度、または高密度であり得る。しかし他の事例では、不確実性測定235の種類または解像度は、第1の奥行き推定230の種類または解像度とは異なり得る。
【0060】
図2の画像処理システム200はまた、第2の奥行き推定240、及び第2の奥行き推定240の不確実性測定245を生成するように構成され、第2の奥行き推定240、及び第2の奥行き推定240の不確実性測定245は、まとめて第2の奥行きデータ260と称され得る。第2の奥行きデータ260は、ニューラルネットワークアーキテクチャを使用して生成され得、ニューラルネットワークアーキテクチャは、奥行き推定及び関連する不確実性測定を予測するように、教師なし画像データまたは教師あり(すなわちラベル付けされた)画像データでトレーニングされ得る。様々な異なるニューラルネットワークアーキテクチャが使用され得る。例えば、ニューラルネットワークアーキテクチャには、複数の層を有するいわゆる「ディープ」ニューラルネットワークであり得る少なくとも1つの畳み込みニューラルネットワーク(CNN)が含まれ得る。
【0061】
いくつかの実施例では、第1の奥行き推定230を生成する前に、シーンの1つ以上のビューを表す画像データが、カメラなどのキャプチャデバイスから取得され得る。このような事例では、第2の奥行き推定240を生成することは、ニューラルネットワークアーキテクチャで画像データを受信することを含み得る。画像データは、任意の好適な形式であり得、例えば、複数の異なる位置からキャプチャされたシーンの複数の2D画像を表し得る。次に、ニューラルネットワークアーキテクチャを使用して、画像部分の集合のそれぞれについて、奥行き推定が予測され、第2の奥行き推定240が生成され得る。画像部分の集合は、画像(もしくは複数の画像)の全体に、または画像もしくは複数の画像の部分集合に、対応し得る。
【0062】
第1の奥行き推定230と同様に、第2の奥行き推定240は、複数のピクセルについての第2の奥行きマップであり得、例えばシーンの入力画像の奥行き値とピクセルとは、一対一マッピングである。しかし、他の事例では、第2の奥行き推定240には、複数のピクセルについての単一の奥行き値が含まれ得、入力画像の奥行き値とピクセルとは、一対多対応である。さらに、第2の奥行き推定240は、低密度、中密度、または高密度の奥行き推定であり得る。一事例では、2つの奥行き推定は異なる密度を有し、例えば第1の奥行き推定230は中密度奥行き推定であり得、第2の奥行き推定240は、高密度奥行き推定であり得る。さらに、第1の奥行き推定230を参照して説明されたように、第2の奥行き推定240の不確実性測定245の種類または解像度は、第2の奥行き推定240の種類または解像度と、同一であり得る、または異なり得る。
【0063】
図2の画像処理システム200は、融合エンジン270を含み、融合エンジン270は、幾何学的再構成エンジンからの第1の奥行き推定230と、第1の奥行き推定230の不確実性測定235と、ニューラルネットワークアーキテクチャからの第2の奥行き推定240と、第2の奥行き推定240の不確実性測定245と、を受信するように構成される。融合エンジン270は、第1の奥行き推定230の不確実性測定235と、第2の奥行き推定240の不確実性測定245とを使用して、第1の奥行き推定230と第2の奥行き推定240とを確率的に融合させて、シーンの融合奥行き推定280を出力するように構成される。このようにして、第1の奥行き推定230及び第2の奥行き推定240の両方が融合奥行き推定280に寄与し、これにより、第1の奥行き推定230または第2の奥行き推定240を単独で使用した場合と比べて、融合奥行き推定280の精度が向上し得る。
【0064】
例えば、第1の奥行き推定230の不確実性(幾何学的制約に基づく)は、低テクスチャのシーンの領域で、例えば壁などの奥行きが比較的変化しない、または奥行きが少しずつ変化するシーンの領域で、より高くなり得る。さらに、付加的または代替的に、第1の奥行き推定230は、シーンの一部が部分的に遮られている領域では、比較的不確実であり得る。対照的に、第2の奥行き推定240(ニューラルネットワークアーキテクチャにより取得される)は、曖昧な領域(例えば低テクスチャの領域)では、第1の奥行き推定230より不確実性が低くあり得るが、高テクスチャ領域では、高テクスチャ領域が第1の奥行き推定230により正確にキャプチャされたにもかかわらず、第2の奥行き推定240は精度が低くなり得る。不確実性測定235及び不確実性測定245の使用は、例えば第1の奥行き推定230及び第2の奥行き推定240のそれぞれを、それらの相対的な不確実性に基づいて、好適にバランスをとって融合奥行き推定280に寄与させることにより、第1の奥行き推定230と第2の奥行き推定240との確率的融合を補助する。例えば、第1の奥行き推定230に関連付けられた不確実性測定235が、第2の奥行き推定240に関連付けられた不確実性測定245よりも高いシーンの領域では、第2の奥行き推定240が、第1の奥行き推定230よりも大きく融合奥行き推定280に寄与し得る。さらに、全体的な一貫性を維持することができるため、融合奥行き推定280は、選ばれた局所的なシーン領域だけでなく、全体的なレベルでシーンの奥行きを正確にキャプチャする。
【0065】
いくつかの事例では、第1の奥行き推定230は、中密度奥行き推定であり、第2の奥行き推定240及び融合奥行き推定280はそれぞれ、高密度奥行き推定を含む。例えば、第1の奥行き推定230が適切に正確となり得る十分なテクスチャを有するシーンの部分について、第1の奥行き推定230は取得され得る。このような事例では、第1の奥行き推定230は、テクスチャが足りないシーンの他の部分については、取得され得ない。しかし、第2の奥行き推定240は、画像(または画像部分)でキャプチャされたシーン全体について取得され得る。ゆえに、このような事例では、第1の奥行き推定230と第2の奥行き推定240とを融合させることにより、融合奥行き推定280も、画像でキャプチャされたシーン全体について取得され得る。このような事例では、融合奥行き推定280の一部分は、第1の奥行き推定230及び第2の奥行き推定240の両方を融合させることにより、取得され得る(例えば融合奥行き推定280の一部分は、シーンのテクスチャの多い部分に対応する)。しかし、融合奥行き推定280の異なる部分は、第2の奥行き推定240からのみ取得され得る(例えば融合奥行き推定280の一部分はシーンの滑らかな部分に対応するため、第1の奥行き推定230は信頼性が低くなり得る)。
【0066】
第1の奥行き推定230と第2の奥行き推定240とを確率的に融合させるために、様々な異なる方法が使用され得る。例えば、第1の奥行き推定230及び第2の奥行き推定240、並びに不確実性測定235及び不確実性測定245に基づくコスト関数は、第1の奥行き推定230と第2の奥行き推定240を確率的に融合させて、融合奥行き推定280を取得するために、最適化され得る。コスト関数の最小値が取得される融合奥行き推定280を取得するように、コスト関数の最適化は、異なる入力奥行き推定でコスト関数の値を反復的に計算することを含み得る。コスト関数は、代替的に、損失関数または誤差関数と称され得る。
【0067】
図2の実施例では、コスト関数は、第1の奥行き推定230に関連付けられた第1のコスト項と、第2の奥行き推定240に関連付けられた第2のコスト項とを含む。第1のコスト項は、融合奥行き推定値と、第1の奥行き推定値(例えば幾何学的再構成エンジンから取得された第1の奥行き推定230から得られる)と、第1の奥行き推定230の不確実性値(例えば第1の奥行き推定230の不確実性測定235から得られる)との関数を含む。同様に、第2のコスト項は、融合奥行き推定値と、第2の奥行き推定値(例えばニューラルネットワークアーキテクチャから取得された第2の奥行き推定240から得られる)と、第2の奥行き推定240の不確実性値(例えば第2の奥行き推定240の不確実性測定245から得られる)との関数を含む。コスト関数を最適化して、融合エンジン270により出力される融合奥行き推定280を形成する融合奥行き推定値が特定される。これは、例えば、融合奥行き推定値を反復的に変更して、コスト関数を最適化する融合奥行き推定値を特定することを含む。例えば、コスト関数は、その値が事前に定義された基準を満たす場合、例えばその値が事前に定義された最小値以下である場合、最適化されたとみなすことができる。他の事例では、コスト関数の最適化は、コスト関数の最小化を含み得る。このようにして、第1の奥行き推定230及び第2の奥行き推定240、並びに不確実性測定235及び不確実性測定245の両方が、取得される融合奥行き推定280に対する制約として機能して、融合奥行き推定280の精度が向上する。
【0068】
しかし、コスト関数の使用は単なる例に過ぎないことが、理解されよう。他の実施例では、第1の奥行き推定と第2の奥行き推定とは、異なる方法で、不確実性測定を使用して、確率的に融合され得る。
【0069】
従って、本明細書のいくつかの実施例は、シーンの奥行き推定の正確な再構成を提供し、よって、ロボットデバイスと実世界環境とのインタラクションを促進する。具体的には、本明細書のいくつかの実施例は、リアルタイムまたはほぼリアルタイムの動作を可能にし(他の奥行き推定手法とは対照的に)、屋外及び屋内の場所を含む様々な異なる環境におけるシーンの奥行き推定を提供するように、設計される。
【0070】
図3は、さらなる実施例による、画像処理システム300の概略図である。
図3の画像処理システム300は、様々な点で
図2の画像処理システム200と類似する。
図2の機能と同じ
図3の対応する機能には、同じ参照番号がつけられるが、100だけ増分される。
【0071】
図3では、融合エンジン370は、第1の奥行き推定、第2の奥行き推定、及び不確実性測定に加えて、表面配向推定320、及び表面配向推定320の不確実性測定325を受信するように構成される。融合エンジン370は、表面配向推定320、及び表面配向推定320の不確実性測定325を使用して、第1の奥行き推定と第2の奥行き推定とを確率的に融合させるように構成される。
【0072】
例えば、表面配向推定320は、キャプチャデバイスによりキャプチャされたシーンの画像のピクセルまたは他の画像領域に対応する表面の方向または傾斜を示す。例えば、表面の配向は、キャプチャデバイスによりキャプチャされたシーンの画像のピクセルまたは他の画像領域の表面の配向角度をキャプチャするとみなされ得る。例えば、表面配向は、所与の表面に垂直な軸である表面法線に対応する。他の事例では、表面配向推定320は、表面勾配、例えば表面の変化度の測定に対応し得る。複数のピクセルの表面配向を使用して、複数のピクセルに対応する表面の特質の指標が取得され得る。例えば、比較的滑らかで変化のない表面は、比較的一定の表面配向を有し得る。反対に、高テクスチャの表面は、様々な異なる表面配向に関連付けられ得る。
【0073】
表面配向推定320、及び表面配向推定320の不確実性測定325は、様々な異なる方法で取得され得る。例えば、シーンの画像は、例えば画像のピクセルのピクセル強度値などの測光特性の変化に基づいて、表面配向推定320及び表面配向推定320の不確実性測定325を特定するように処理され得る。
【0074】
図4は、さらなる別の実施例による、画像処理システム400の概略図である。
図4の画像処理システム400は、様々な点で
図3の画像処理システム300と類似するが、幾何学的再構成エンジン430及びニューラルネットワークアーキテクチャ420を明確に例示する。
【0075】
図4では、ビデオデータのフレーム410が受信される。フレーム410は、例えばカメラなどのキャプチャデバイスによりキャプチャされ、シーンのビューを含む。他の事例では、
図4の画像処理システム400を使用して、ビデオを表すビデオデータではなく、静止画像を表す画像データが処理され得ることを、理解されたい。
【0076】
フレーム410は、幾何学的再構成エンジン430及びニューラルネットワークアーキテクチャ420により処理される。幾何学的再構成エンジン430及びニューラルネットワークアーキテクチャ420は、
図2を参照して説明されたように、第1の奥行きデータ450及び第2の奥行きデータ460を生成するように構成され得る。
【0077】
図4の実施例では、第2の奥行きデータ460は、表面配向推定、及び表面配向推定の不確実性測定を含む。この実施例では、表面配向推定、及び表面配向推定の不確実性測定は、第2の奥行き推定、及び第2の奥行き推定の不確実性測定に加えて、ニューラルネットワークアーキテクチャ420により生成される。
【0078】
図4のニューラルネットワークアーキテクチャ420は、1つ以上のニューラルネットワークを含み得、
図4に示されるフレーム410などのビデオデータのフレームのピクセル値を受信するように構成される。ニューラルネットワークアーキテクチャ420は、第2の奥行き推定を生成するために、画像部分の第1の集合のそれぞれについて奥行き推定を予測し、並びに画像部分の第2の集合のそれぞれについて少なくとも1つの表面配向推定を予測するように構成される。画像部分の第1の集合は、画像部分の第2の集合と同じであってもよく、異なっていてもよい。例えば、画像部分の第1の集合と第2の集合は、完全に重複している、部分的に重複している、または全く重複していない場合がある。奥行き推定及び少なくとも1つの表面配向は、異なるそれぞれの解像度で取得され得る。このような事例では、奥行き推定及び少なくとも1つの表面配向のうちの一方または両方の解像度は、その後、所望の解像度を得るために、例えば補間により、変更され得る。例えば、少なくとも1つの表面配向は、奥行き推定よりも低い解像度で取得され得るが、その後、奥行き推定と同じ解像度にアップスケーリングされ得る。ニューラルネットワークアーキテクチャ420はまた、各奥行き推定に関連付けられた1つ以上の不確実性測定と、各表面配向推定に関連付けられた1つ以上の不確実性測定とを予測するように構成される。
【0079】
第1の奥行きデータ450と第2の奥行きデータ460とは、融合エンジン470を使用して確率的に融合され、融合奥行き推定480が取得される。図では、融合エンジン470は、少なくとも1つの表面配向も使用して、融合奥行き推定480を取得する。融合奥行き推定480を取得するためにコスト関数が最適化される実施例では、コスト関数は、少なくとも1つの表面配向推定に関連付けられた第3のコスト項を含み得る。このような事例では、第3のコスト項は、融合奥行き推定値、表面配向推定値(例えばニューラルネットワークアーキテクチャ420から取得される)、及び少なくとも1つの表面配向推定ごとの不確実性値(例えば表面配向推定ごとの不確実性測定から得られる)の関数を含み得る。例えば、第3のコスト項は、表面配向推定ごとのコスト項の合計を含み得る。コスト関数の最適化は、
図2に関して説明されたとおりであり得るが、表面配向情報が追加されている。
【0080】
表面配向情報を使用して融合奥行き推定480を取得することにより、融合奥行き推定480の精度は、さらに向上し得る。例えば、表面配向推定(及びその関連する不確実性測定)は、所与のピクセルとその隣接ピクセルとの間の制約を課し得る。このようにして、融合奥行き推定480の全体的な一貫性は向上し得る。
【0081】
図5は、実施例500による、表面配向推定320及び表面配向推定320の不確実性測定325を示す概略図である。
図5では、表面配向推定320は、第1の方向(この事例ではx軸に沿った方向)の奥行き勾配推定510と、第1の方向に直交する方向(デカルト座標系が存在するこの事例ではy軸に沿った方向)の奥行き勾配推定520とを含む。
【0082】
例えば、所与の方向の奥行き勾配推定は、その所与の方向におけるシーン(例えば画像でキャプチャされたシーン)の奥行きの変化の推定を表す。奥行き勾配推定を使用して、シーンの画像における奥行きの急速なまたは特有の変化が特定され得る。例えば、シーンの一部分にわたり奥行きが異なるシーンの当該一部分に対応する画像の領域では、奥行き勾配は比較的高くなり得る。反対に、カメラに対して比較的一定の奥行きに存在するシーンの別の一部分に対応する画像の他の領域では、奥行き勾配は比較的低くなり得る。2つの異なる方向(互いに直交する、すなわち垂直である2つの方向など)の奥行き勾配を推定することにより、画像でキャプチャされたシーンの奥行き特性は、より正確及び/またはより効率的に特定され得る。
【0083】
他の実施例では、表面配向推定320は、奥行き配向推定510、520に加えて、またはこれらの代わりに、他の配向推定を含み得る。例えば、表面配向推定320は、表面法線推定を含み得る。
【0084】
図5のように、いくつかの事例では、表面配向推定ごとに対応する不確実性測定が存在する。ゆえに、
図5では、第1の方向の奥行き勾配推定510に関連付けられた第1の不確実性測定530と、第1の方向に直交する方向の奥行き勾配推定520に関連付けられた第2の不確実性測定540とが存在する。
【0085】
各表面配向推定の不確実性測定は、様々な異なる方法で生成され得る。例えば、ニューラルネットワークアーキテクチャ(融合エンジンにより第1の奥行き推定と確率的に融合される第2の奥行き推定を生成するのに使用され得る)は、表面配向推定、及び各表面配向推定に関連付けられた対応する不確実性測定を生成するようにトレーニングされ得る。
【0086】
いくつかの事例では、第2の奥行き推定及び/または表面配向推定(複数可)は、対数推定であり得る。これは、負の値に数値的意味があるため、ニューラルネットワークアーキテクチャによるこれらの推定の生成が促進され得る。さらに、2つの対数奥行きの差(例えば対数奥行きの勾配に対応する)は、スケールが不変である2つの奥行きの比率に対応する。さらに、対数奥行き勾配が2つの直交方向で予測される場合(
図5の実施例のように)、第1の奥行き推定と第2の奥行き推定との確率的融合(例えば対数奥行き勾配を使用する)は、線形であり、ドット積及び正規化動作なしで実行され得る。ゆえに、他の場合よりも効率的に融合プロセスを実行することができる。
【0087】
図6は、さらなる別の実施例による、画像処理システム600の概略図である。画像処理システム600は、単眼キャプチャデバイス605を含み、これは、シーンの画像をキャプチャするキャプチャデバイスまたはカメラの実施例である。単眼キャプチャデバイス605は、シーンのビデオを表すビデオデータをキャプチャするように構成される。シーンは、ビデオの第1のフレームでキャプチャされ、これは、
図6の実施例では、キーフレーム610と称され得る。キーフレーム610は、例えば、より完全な奥行き推定が取得されるビデオのフレームに対応し、例えば、以前に奥行きが推定されていないシーンの新たな部分、または他の部分よりも特徴が豊富であると識別されたシーンの部分に対応する、またはそのような部分を含む。例えば、以前に奥行き推定が取得されていないビデオの第1のフレームは、キーフレームとみなされ得る。キーフレームは、例えば外部SLAMシステムなどの外部システムにより指定されたキーフレームであり得る。他の事例では、単眼キャプチャデバイス605が閾値距離を超える距離を移動した後に得られるフレームが、キーフレームであり得る。単眼キャプチャデバイス605によりキャプチャされた他のフレームは、参照フレーム615とみなされ得る。
【0088】
図6の実施例において単眼キャプチャデバイス605によりキャプチャされたフレームは(キーフレーム610であるか、参照フレーム615であるかに関係なく)、追跡システム625を使用して処理される。追跡システム625は、シーンを観察している間(例えばフレームをキャプチャしている間)の単眼キャプチャデバイス605の姿勢を特定するために使用される。
図2を参照して説明されたように、追跡システム625は、動作センサを含み得、これは、単眼キャプチャデバイス605に接続された、または単眼キャプチャデバイス605を支持するロボットデバイスを動かすように構成されたアクチュエータに接続され得る、またはアクチュエータの一部を形成し得る。このように、追跡システム625は、オドメトリデータをキャプチャし、オドメトリデータを処理して、単眼キャプチャデバイス605の姿勢推定を生成し得る。
【0089】
図6では、追跡システム625は、参照フレーム615をキャプチャしている間の単眼キャプチャデバイス605の姿勢の推定640と、キーフレームをキャプチャしている間の単眼キャプチャデバイス605の姿勢の推定635とを生成する。単眼キャプチャデバイス605の推定された姿勢640、635、及び単眼キャプチャデバイス605によりキャプチャされたビデオデータは、幾何学的再構成エンジン630により使用され、ビデオデータのフレームからピクセルの少なくとも部分集合についての奥行き推定が生成される。いくつかの事例において幾何学的再構成エンジン630は、測光誤差を最小化して奥行き推定を生成するように構成される。これは、
図2を参照してさらに説明される。
図6の幾何学的再構成エンジン630は、奥行き推定と、奥行き推定の不確実性測定とを含む第1の奥行きデータ650を出力する。
【0090】
いくつかの事例では、第1の奥行きデータ650は、単眼キャプチャデバイス605により取得されるフレームごとに再度生成され、例えば第1の奥行きデータ650は、キーフレームに関連し得、さらに、取得され処理される追加参照フレームごとに反復的に更新され得る。第1の奥行きデータ650は、リアルタイムまたはほぼリアルタイムで生成され得、従って、例えば単眼キャプチャデバイス605のフレームレートに対応したレートで、頻繁に実行され得る。
【0091】
キーフレーム610に対応すると特定されたフレームに関して、
図6の画像処理システム600はさらに、ニューラルネットワークアーキテクチャ620を使用して第2の奥行きデータ660を生成するキーフレーム610の処理を含む。しかし、ニューラルネットワークアーキテクチャ620を使用する参照フレーム615の処理は、いくつかの事例では省略され得る。これは、
図6では、破線を使用して概略的に示される。破線は、画像処理システム600により選択的に実行され得る画像処理パイプラインの部分に対応する。例えば、第1の奥行きデータ650の生成は、フレームが参照フレーム615であるかキーフレーム610であるかに関係なく、フレームについて実行され得るが、第2の奥行きデータの生成は、キーフレーム610に対して選択的に実行され得る。
図6の実施例では、第2の奥行きデータ660は、第2の奥行き推定、第2の奥行き推定の不確実性測定、少なくとも1つの表面配向推定、及び表面配向推定の不確実性測定を含むが、これは単なる例に過ぎない。ニューラルネットワークアーキテクチャ620は、本明細書で説明される他の実施例のニューラルネットワークアーキテクチャと同様または同一であり得る。
【0092】
図6の画像処理システム600はまた、融合エンジン670を含み、これは、第1の奥行き推定及び第2の奥行き推定(幾何学的再構成エンジン630及びニューラルネットワークアーキテクチャ620によりそれぞれ取得された)を、関連する不確実性測定を使用して、統計的に融合させるように構成される。
図6では、融合エンジン670はまた、少なくとも1つの表面配向推定、及び少なくとも1つの表面配向推定に関連付けられたそれぞれの不確実性測定を使用して、第1の奥行き推定と第2の奥行き推定とを統計的に融合させる。しかし、少なくとも1つの表面配向推定、及び少なくとも1つの表面配向推定に関連付けられたそれぞれの不確実性測定の使用は、他の事例では省略され得る。
【0093】
融合エンジン670は、第1の奥行き推定と第2の奥行き推定とを統計的に融合させることにより、融合奥行き推定680を生成するように構成される。
図6の融合エンジン670はまた、第1の奥行き推定と第2の奥行き推定とを確率的に融合させる時に、スケール推定を特定するように構成される。例えば、融合エンジン670が、コスト関数を最適化して融合奥行き推定680特定するように構成される場合、コスト関数を最適化することは、融合奥行き推定680のスケールファクタ685を特定することを含み得る。このような事例では、スケールファクタ685は、シーンに関する融合奥行き推定680のスケールを示す。従って、スケールファクタは、第1の奥行き推定及び第2の奥行き推定により提供されるシーンのスケールの不正確さを補い得る。スケールファクタは、スカラであり得る。例えば、第1の奥行き推定は、
図6の単眼キャプチャデバイス605がもたらす姿勢に基づいて生成されるため、第1の奥行き推定は任意のスケールを有する。しかし、スケールファクタの生成により、特定のスケールでの奥行き推定を取得することが可能となる。
【0094】
コスト関数を最適化して融合奥行き推定680が特定される事例では、コスト関数の第1のコスト項は、融合奥行き推定値、第1の奥行き推定値、第1の奥行き推定の不確実性値、及びスケールファクタの関数を含み得る。コスト関数の最適化は、スケールファクタ並びに融合奥行き推定680を反復的に変更して、コスト関数を最適化する(例えば最小化する)スケールファクタ及び融合奥行き推定680を特定することを含み得る。このような事例では、コスト関数はまた、
図2及び
図4を参照して説明されたように、第2のコスト項及び/または第3のコスト項を含み得る。このような事例では、第2のコスト項及び/または第3のコスト項は、スケールファクタとは無関係であり得る。
【0095】
説明されるように、第1の奥行きデータ650が幾何学的再構成エンジン630により生成される頻度より少ない頻度で、第2の奥行きデータ660はニューラルネットワークアーキテクチャ620により生成され得る。例えば、キーフレーム610については、第1の奥行きデータ650と第2の奥行きデータ660の両方が生成され得る。第2の奥行きデータの生成が省略され得るキーフレーム610は、第2の奥行きデータの生成が省略され得る参照フレーム615よりも、少なくあり得る。
【0096】
実施例として、ビデオデータの第1のフレームでシーンがキャプチャされ得、ビデオデータの第1のフレームについての第2の奥行き推定が受信され得る。第2の奥行き推定は、ニューラルネットワークアーキテクチャ620より生成され得る。ゆえに、ビデオデータの第1のフレームは、キーフレーム615であるとみなされ得る。この実施例では、複数の第1の奥行き推定が取得される。複数の第1の奥行き推定のうちの少なくとも1つは、ビデオデータの第1のフレームとは異なるビデオデータの第2のフレームを使用して生成される。例えば、複数の第1の奥行き推定(幾何学的再構成エンジン630により生成された)には、第1のフレーム(キーフレーム610である)の第1の奥行き推定と、第2のフレーム(参照フレーム615である)の第1の奥行き推定とが含まれ得る。この事例では、融合エンジン670は、反復ごとに第2の奥行き推定と複数の奥行き推定のうちの1つとを処理して、シーンの融合奥行き推定680を反復的に出力するように構成される。例えば、第1のフレームを受信すると、融合エンジン670は、第1のフレームを使用して生成された第1の奥行き推定と、第1のフレームを使用して生成された第2の奥行き推定とを融合させ得る。しかし、第2のフレームを受信すると、融合エンジン670は代わりに、第2のフレームを使用して生成された第1の奥行き推定と、第1のフレームを使用して前に生成された第2の奥行き推定とを融合させ得る。言い換えると、第2の奥行き推定は、フレームごとに再生成され得ず、代わりに、前のフレーム(前のキーフレーム615など)から再利用され得る。言い換えると、融合奥行き推定680の生成は、反復的に繰り返され得る。方法は、後続の反復に関して、第2の奥行き推定を生成するか否かを判定することを含み得る。上記で説明されたように、このような判定は、画像でキャプチャされたシーンのコンテンツに基づいて、例えば、シーンの前の画像と比較してコンテンツは著しく変化したか否か(例えば単眼キャプチャデバイス605の移動により)、またはコンテンツは特徴豊富であるか否かなどに基づいて、行われ得る。第2の奥行き推定を生成しない(例えば参照フレーム615について)という判定に応じて、これらの実施例は、前の第2の奥行き推定の値の集合を使用して、第1の奥行き推定と第2の奥行き推定とを確率的に融合させることを含む。これにより、ニューラルネットワークアーキテクチャ620を使用して画像を処理する必要がなくなる。
【0097】
このような実施例では、第1の奥行き推定は、第2の奥行き推定よりも頻繁に生成され得る(第2の奥行き推定はニューラルネットワークアーキテクチャ620を使用するため生成がより遅くなり得る)。いくつかの事例では、融合奥行き推定680は、更新された第1の奥行き推定と既存の第2の奥行き推定とに基づいて、精緻化され得る。ゆえに、シーンの奥行きは、第1の奥行き推定及び第2の奥行き推定の両方が更新された後にシーンの奥行きが更新される他の事例よりも、高いレートで更新され得る。実際に、第1の奥行き推定と第2の奥行き推定とを別々に生成して、その後に第1の奥行き推定と第2の奥行き推定とを融合させることにより、本明細書の方法は、他の方法と比べて、より柔軟であり、より効率的に実行され得る。
【0098】
図7Aは、本明細書に説明される方法のうちのいずれかを実施するために使用され得るコンピューティングシステム700のコンポーネントを示す概略図である。コンピューティングシステム700は、単一のコンピューティングデバイス(例えばデスクトップ、ラップトップ、モバイル及び/または組み込みコンピューティングデバイス)であり得る、または複数の別個のコンピューティングデバイスにわたり分散された分散コンピューティングシステムであり得る(例えばいくつかのコンポーネントは、1つ以上のクライアントコンピューティングデバイスからネットワークを介して発せられた要求に基づいて、1つ以上のサーバコンピューティングデバイスにより実施され得る)。
【0099】
コンピューティングシステム700は、例えばシーンの観察を含むビデオのフレームを提供するビデオキャプチャデバイス710を含む。コンピューティングシステム700はまた、位置特定及びマッピング同時実行(SLAM)システム720を含む。ロボットマッピング及びナビゲーションの分野におけるSLAMシステムは、未知の環境のマップを構築及び更新し、同時に環境内のマップに関連付けられたロボットデバイスの位置を特定するように機能する。例えば、ロボットデバイスは、マップを構築、更新、及び/または使用するデバイスであり得る。SLAMシステム720は、ビデオキャプチャデバイス710の姿勢データを提供するように構成される。コンピューティングシステム700の中密度マルチビューステレオコンポーネント730は、姿勢データ及びビデオのフレームを受信して、上記の他の実施例で説明された幾何学的再構成エンジンを実施するように構成される。中密度マルチビューステレオコンポーネント730は、前述の「中密度」であると言うことができ、用語「マルチビューステレオ」は、コンポーネント730が、単眼(例えば非ステレオ)カメラからのデータの連続フレームを使用する代わりに、ステレオ画像ペアをシミュレートして奥行きデータを特定するように機能することを示す。この事例では、移動するカメラからのフレームは、共通の環境の異なるビューを提供し得、これにより、前述のように奥行きデータを生成することが可能となる。コンピューティングシステム700はまた、ニューラルネットワーク回路740を含み、これは、例えば、上記の実施例を参照して説明されたニューラルネットワークアーキテクチャを実施する電子回路である。コンピューティングシステム700はまた、本明細書の実施例の融合エンジンを実施するように構成された画像処理システム750を含む。画像処理システム750は、例えば、中密度マルチビューステレオコンポーネント730からの第1の奥行きデータと、ニューラルネットワーク回路740からの第2の奥行きデータとを確率的に融合させて、融合奥行きデータを取得する。
【0100】
図7Bは、実施例による、ロボットデバイス760のコンポーネントを示す概略図である。ロボットデバイス760は、
図7Aのコンピューティングシステム700を含む。ロボットデバイス760はまた、ロボットデバイス760が周囲の3次元環境とインタラクトすることを可能にする1つ以上のアクチュエータ770を含む。周囲の3次元環境の少なくとも一部は、コンピューティングシステム700のビデオキャプチャデバイス710によりキャプチャされたシーンに示され得る。
図7Bの事例では、ロボットデバイス760は、ロボットデバイスが特定の環境をナビゲートする時に(例えば
図1Aのデバイス130により)、ビデオデータをキャプチャするように構成され得る。しかし、別の事例では、ロボットデバイス760は、環境をスキャンし得る、またはモバイルデバイスもしくは別のロボットデバイスを有するユーザなどの第三者から受信したビデオデータを操作し得る。ロボットデバイス760がビデオデータを処理する時、ロボットデバイス760は、例えば融合奥行き推定であるシーンの奥行き推定を生成するように構成され得る。
【0101】
ロボットデバイス760はまた、1つ以上のアクチュエータ770を制御する少なくとも1つのプロセッサを含むインタラクションエンジン780を含む。
図7Bのインタラクションエンジン780は、融合奥行き推定を使用して、周囲の3次元環境とインタラクトするように構成される。インタラクションエンジン780は、融合奥行き推定を使用して、1つ以上のアクチュエータを制御して環境とインタラクトし得る。例えば、融合奥行き推定を使用して、環境内のオブジェクトをつかむこと、及び/または壁などの障壁との衝突を回避することができる。
【0102】
図7A及び
図7Bを参照して本明細書に説明される機能コンポーネントの実施例は、専用処理電子機器を含み得、及び/または少なくとも1つのコンピューティングデバイスのプロセッサにより実行されるコンピュータプログラムコードにより実施され得る。いくつかの事例では、1つ以上の組み込みコンピューティングデバイスが使用され得る。本明細書に説明されるコンポーネントは、コンピュータ可読媒体にロードされたコンピュータプログラムコードを実行するためにメモリと関連して作動する少なくとも1つのプロセッサを含み得る。この媒体は、消去可能プログラム可能読み出し専用メモリなどのソリッドステートストレージを含み得、コンピュータプログラムコードは、ファームウェアを含み得る。他の事例では、コンポーネントは、適切に構成されたシステムオンチップ、特定用途向け集積回路、及び/または1つ以上の適切にプログラムされたフィールドプログラマブルゲートアレイを含み得る。一事例では、コンポーネントは、モバイルコンピューティングデバイス及び/またはデスクトップコンピューティングデバイス内のコンピュータプログラムコード及び/または専用処理電子機器により、実施され得る。一事例では、前の事例と同様に、または前の事例の代わりに、コンポーネントは、コンピュータプログラムコードを実行する1つ以上のグラフィカル処理ユニットにより、実施され得る。いくつかの事例では、コンポーネントは、例えばグラフィックス処理ユニットの複数のプロセッサ及び/またはコア上で、並行して実施される1つ以上の機能により、実施され得る。
【0103】
図8は、
図1~7を参照して説明された様々な機能の実施例800を示す概略図である。
図8は、シーンと称され得る3次元(3D)環境805の実施例を示す。3D環境805は、
図1のキャプチャデバイス120などのキャプチャデバイス810、並びに2つのオブジェクト815、820を含む。キャプチャデバイス810は、3D環境805の観察をキャプチャするように構成される(例えば静止画像またはビデオの形式で)。これらの観察は、例えば、オブジェクト815、820の観察を含み、オブジェクト815、820の互いに対する位置、及び他のオブジェクトまたは3D環境の地物(オブジェクト815、820を支持する表面、またはオブジェクト815、820の後ろの壁など)に対するオブジェクト815、820の位置を示し得る。キャプチャデバイス810によりキャプチャされた3D環境805の観察を示すビデオのフレーム825の実施例も、
図8に示される。図示されるように、ビデオのフレーム825内に、2つのオブジェクト815、820が表示される。
【0104】
図8はまた、幾何学的再構成エンジンにより取得された第1の奥行き推定830の実施例を概略的に示す。図示されるように、シーン内のオブジェクト815、820の存在は、第1の奥行き推定830において、輪郭832、834により示される。ゆえに、第1の奥行き推定830により、例えば、画像内の境界線または他の縁(例えばシーン内のオブジェクトの縁で起こり得る奥行きの突然の変化に対応する)を特定することが可能となる。
【0105】
ニューラルネットワークアーキテクチャにより取得された第2の奥行き推定835も、
図8に概略的に示される。図示されるように、シーン内のオブジェクト815、820の存在は、第2の奥行き推定835において、陰影836、838により示される。例えば、陰影のグレースケール値は、オブジェクトの一部の相対的な奥行きを示す。
【0106】
図8の実施例では、2つのオブジェクト815、820は、キャプチャデバイス810に向かって突出している。例えば、
図8において、第1のオブジェクト815は、垂直に延びる長手方向軸を有する円筒である。ゆえに、第1のオブジェクト815は、その中心がキャプチャデバイス810に向かって膨らみ、その側面がキャプチャデバイス810から後退する(キャプチャデバイス810から見た場合)。第1のオブジェクト815の形状は、第2の奥行き推定835でキャプチャされ、第1のオブジェクト815の中心に向いたキャプチャデバイス810に対して、第1のオブジェクト815の奥行きが減少することが示される(第2の奥行き推定835において第1のオブジェクトの中心に向かってより濃くなる陰影領域836により示される)。しかし、第1のオブジェクトの縁は、第2の奥行き推定835より第1の奥行き推定830において、より鋭くまたはより鮮明である。これは、第1の奥行き推定830は、シーンの高テクスチャ領域の奥行きをより正確にキャプチャし得、一方第2の奥行き推定835は、シーンの低テクスチャ(すなわち滑らかな)領域の奥行きをより正確にキャプチャし得ることを示す。これは、第2の奥行き推定835において、左上隅及び左下隅に陰影があり、これらの領域がシーンの他の領域と比べて奥行きの差を有することが示されていることから、さらにわかる。この差は、比較的微細なまたは小さな奥行きの変化であるため、第1の奥行き推定830では識別されていない。
【0107】
図8はまた、第1の方向(この実施例では水平方向)の第1の奥行き勾配推定840と、第1の方向に直交する方向(この実施例では垂直方向)の第2の奥行き勾配推定845との実施例を概略的に示す。オブジェクト815、820の存在は、第1の奥行き勾配推定840において、矢印842、844によりそれぞれ示される。オブジェクト815、820の存在は、第2の奥行き勾配推定845において、矢印846、848によりそれぞれ示される。第1の奥行き推定830及び第2の奥行き推定835を参照して説明されたように、オブジェクト815は、その長手方向軸に沿ってキャプチャデバイス810に対して膨らむ。これは、第1の奥行き勾配推定840において、オブジェクト815がその円筒形状によりキャプチャデバイス810から後退方向へより急速に湾曲するオブジェクト815の側面方向よりも、中央領域で、矢印842が互いにより近接している(奥行き勾配の変化が急速でないことを示す)ことから、わかる。
【0108】
図9は、シーンの奥行きを推定する例示的な方法900を示すフロー図である。方法900は、第1の奥行き推定を生成する第1の動作910を含む。シーンの幾何学的再構成を使用して、第1の奥行き推定が生成され得、シーンの幾何学的再構成は、第1の奥行き推定の不確実性測定を出力するように構成される。第2の動作920にて、ニューラルネットワークアーキテクチャを使用して、第2の奥行き推定が生成される。ニューラルネットワークアーキテクチャは、第2の奥行き推定の不確実性測定を出力するように構成される。第3の動作930にて、第1の奥行き推定と第2の奥行き推定は、不確実性測定を使用して確率的に融合され、シーンの融合奥行き推定が生成される。本明細書に説明されるシステムのうちのいずれかを使用して、
図9の方法900は実施され得る。
【0109】
図10は、シーンの奥行きを推定するさらなる例示的な方法1000を示すフロー図である。第1の動作1010にて、画像データが取得される。画像データは、シーンの画像をキャプチャするように構成されたキャプチャデバイスから取得され得る。第2の動作1020にて、第1の動作1010の画像データを取得する間のキャプチャデバイスの姿勢推定が生成される。第3の動作1030にて、例えば本明細書の他の実施例を参照して説明されるように、幾何学的再構成エンジンを使用して、シーンの奥行きの中密度推定が取得される。第4の動作1040にて、
図6を参照して説明されたように、キャプチャデバイスによりキャプチャされた画像がキーフレームであるか否かが判定される。キーフレームである場合、第2の奥行き推定を生成するために、第5の動作1050にて、ニューラルネットワーク出力が生成される。しかし、画像がキーフレームに該当しない場合、動作1060にて、既存のニューラルネットワーク出力(例えば前の画像で取得された)が代わりに使用される。ニューラルネットワーク出力には、例えば、第2の奥行き推定と、少なくとも1つの表面配向推定と、第2の奥行き推定及び少なくとも1つの表面配向推定のそれぞれに関連付けられた不確実性測定とが含まれる。最後に、第7の動作1070にて、第3の動作1030の第1の奥行き推定と、第5の動作1050または第6の動作1060の第2の奥行き推定とが、例えば第1の奥行き推定及び第2の奥行き推定にそれぞれ関連付けられた不確実性測定を使用する確率的な方法で融合される。この実施例では、融合奥行きマップ及びスケールファクタを取得するために、融合動作中に、少なくとも1つの表面配向推定及び対応する不確実性測定も使用される。
図10の方法100は、例えば、
図6のシステム600を使用して実施され得る。
【0110】
図11は、プロセッサ1110と、コンピュータ実行可能命令1130を含む非一時的コンピュータ可読記憶媒体1120との実施例1100を示す概略図である。コンピュータ実行可能命令1130は、プロセッサ1110により実行されると、プロセッサ1110を備えるコンピューティングデバイスなどのコンピュータデバイスに、シーンの奥行きを推定させる。命令により、結果的に、前述の例示的な方法と同様の方法が実行され得る。例えば、コンピュータ可読記憶媒体1120は、
図6を参照して説明されたように、複数の参照フレームについて取得され得る複数の第1の奥行きデータ1140を記憶するように構成され得る。コンピュータ可読記憶媒体1120はまた、キーフレームの第2の奥行き推定1150を記憶するように構成され得る。第1の奥行きデータと第2の奥行きデータとは、確率的に融合され、融合奥行き推定が取得され得る。
図11では、第1の奥行きデータ1140及び第2の奥行きデータ1150がコンピュータ可読記憶媒体1120に記憶されているように示されるが、他の実施例では、第1の奥行きデータ1140及び第2の奥行きデータ1150のうちの少なくとも1つは、コンピュータ可読記憶媒体1120の外部の(しかしコンピュータ可読記憶媒体1120によりアクセス可能な)ストレージに記憶され得る。
【0111】
図12は、さらなる実施例による、シーンの第1の奥行き推定と第2の奥行き推定との融合を示す概略図である。
図12では、幾何学的再構成を使用して、シーンについての第1の奥行き確率体積1200が生成される。第1の奥行き確率体積1200は、第1の複数の奥行き推定(この事例では本明細書の他の実施例で論じられる第1の奥行き推定を含む)、及び第1の複数の奥行き推定の各奥行き推定にそれぞれ関連付けられた第1の複数の不確実性測定を含む。従って、第1の複数の不確実性測定には、第1の奥行き推定の不確実性測定が含まれる。
【0112】
第1の奥行き確率体積1200が
図12に概略的に示されるが、これは、例示しやすくするために簡略化された実施例である。
図12では、シーンの観察を表すフレームは、
図12ではP
1~P
9とラベル付けされた9つのピクセルを含む。ピクセルのそれぞれは、シーンの異なる各部分の観察に対応する。
図12のピクセルのそれぞれについて、D
1、D
2、及びD
3とラベル付けされた3つの奥行き推定が存在する(しかし他の実施例ではピクセルごとにさらに多いまたは少ない奥行き推定が存在する場合がある)。
図12の各奥行き推定は、それぞれの不確実性測定に関連付けられる。
図12では、n番目のピクセルP
nについてのm番目の奥行き推定D
mに関連付けられた不確実性測定は、u
nmとラベル付けされる。
図12では、上部の行のピクセル(P
1、P
2、及びP
3)の不確実性測定が示される。しかし、フレームの他のピクセル(P
4~P
9)についての奥行き推定も、対応する不確実性測定(
図12に図示せず)を有することを、理解されたい。この実施例では、2次元ピクセル配列についてのそれぞれの奥行き推定に関連付けられた不確実性測定の3次元構成が、3次元確率体積を形成する。
【0113】
図12では、第1の奥行き確率体積1200の第1の複数の奥行き推定のうちの所与の奥行き推定に関連付けられた不確実性測定は、シーンの所与の領域(その観察が所与のピクセルでキャプチャされる)が、第1の複数の奥行き推定のうちの所与の奥行き推定により表される奥行きに存在する確率を表す。ゆえに、
図12では、u
11は、第1のピクセルP
1でキャプチャされたシーンの領域が、第1の奥行き推定D
1の奥行きに対応する奥行きに存在する確率を表す。
【0114】
図12はまた、第2の奥行き確率体積1202を含み、第2の奥行き確率体積1202は、ニューラルネットワークアーキテクチャを使用してシーンについて生成される。この事例の第2の奥行き確率体積1202は、その他の点では第1の奥行き確率体積1200に類似し、第2の奥行き推定を含む第2の複数の奥行き推定と、第2の複数の奥行き推定の各奥行き推定にそれぞれ関連付けられた第2の複数の不確実性測定とを含む。従って、第2の複数の不確実性測定には、第2の奥行き推定の不確実性測定が含まれる。第1の奥行き確率体積1200に関して、第2の複数の奥行き推定のうちの所与の奥行き推定に関連付けられた不確実性測定は、シーンの所与の領域が、第2の複数の奥行き推定のうちの所与の奥行き推定により表される奥行きに存在する確率を表す。
【0115】
図12の実施例では、第1の奥行き確率体積1200及び第2の奥行き確率体積1202は、所与のピクセルについての同一のそれぞれの奥行き推定(D
1、D
2、及びD
3)に関連付けられた不確実性測定を含む。しかし、他の実施例では、第1の奥行き確率体積1200及び第2の奥行き確率体積1202の奥行き推定は、互いに異なり得ることを、理解されたい。例えば、第1の奥行き確率体積1200及び第2の奥行き確率体積1202のうちの一方は、他方より多くの個数の奥行き推定を有し得、及び/または互いに異なる値の奥行き推定を有し得る。
【0116】
シーンの所与の部分についての幾何学的再構成の精度とニューラルネットワークアーキテクチャの精度は通常異なるため、第1の奥行き確率体積1200と第2の奥行き確率体積1202とでは、所与の奥行き推定に関連付けられた不確実性測定は通常異なることを、理解されたい。これにより、幾何学的再構成またはニューラルネットワークアーキテクチャのどちらが使用されているかに応じて、シーンの所与の部分について、異なる確率分布が生じ得る。例えば、所与の技法(幾何学的再構成、またはニューラルネットワークアーキテクチャの使用を伴う)がシーンの所与の部分の奥行きを正確に特徴付けることができない場合、シーンの所与の部分を表すピクセルに関連付けられた奥行き確率分布は、比較的均一となり得、シーンのその部分の最も可能性の高い奥行きを突き止めることが困難となる。反対に、所与の技法がシーンの所与の部分の奥行きを正確に特定することができる場合、奥行き確率分布は、シーンの所与の部分の奥行きに対応する奥行き推定で、より鋭いピークを有し得る。
【0117】
第1の奥行き確率体積1200及び第2の奥行き確率体積1202に関連付けられた不確実性測定を融合させることにより、第1の奥行き確率体積1200及び第2の奥行き確率体積1202に関連付けられた奥行き推定自体が確率的に融合され得、これにより、融合奥行き確率体積1204が生成される。これは、
図12に概略的に示され、融合奥行き確率体積1204は、第1の奥行き確率体積1200及び第2の奥行き確率体積1202に類似するが、第1の奥行き確率体積1200の奥行き推定と第2の奥行き確率体積1202の奥行き推定との確率的融合により、第1の奥行き確率体積1200及び第2の奥行き確率体積1202の不確実性測定u
nmの値とは異なる不確実性測定u
nmの値を通常含む。このように第1の奥行き確率体積1200と第2の奥行き確率体積1202とを確率的に融合させることにより、2つの異なるソース(幾何学的再構成及びニューラルネットワークアーキテクチャ)からのシーンの奥行きに関する情報を組み合わせることが可能となり、通常、各ソースを個別に使用する場合と比較して、奥行き推定の精度が向上する。
【0118】
図13は、
図12の第2の奥行き確率体積1202と同様または同一であり得る第2の奥行き確率体積1302を取得するための例示的なシステム1300の概略図である。システム1300は、シーンの観察を表すフレーム1304を受信するように構成される。この事例のフレーム1304は、シーンの画像を表す画像データにより表される。システム1300のニューラルネットワークアーキテクチャ1306は、フレーム1304を処理して第2の奥行き確率体積1302を生成するように構成され、第2の奥行き確率体積1302は、この事例では、第2の複数の奥行き推定1308、及び第2の複数の不確実性測定1310(この事例では、シーンの所与の領域が、第2の複数の奥行き推定1308のうちの奥行き推定により表される奥行きに存在するそれぞれの確率を表す)を含む。
【0119】
図13のシステム1300は、シーンの画像の異なる各部分にそれぞれ関連付けられた複数の奥行き推定集合を含む第2の複数の奥行き推定1308を出力するように構成される。ゆえに、システム1300を使用して
図12の第2の奥行き確率体積1202を出力する場合、所与のピクセルについての奥行き推定D
1、D
2、及びD
3は、奥行き推定集合に対応するとみなされ得る。従って、
図13のシステム1300を使用して複数のピクセルを含む画像が処理され、複数のピクセルの異なる各ピクセルにそれぞれ関連付けられた複数の奥行き推定集合が生成され得る。
【0120】
図13の実施例のニューラルネットワークアーキテクチャ1306は、事前に定義された値を有するそれぞれの奥行き推定1308に関連付けられた不確実性測定1310を出力するように構成される。言い換えると、各ピクセルについて単一の奥行き値を出力するのではなく、
図13のニューラルネットワークアーキテクチャ1306は、各ピクセルについての複数の事前に定義された離散的な奥行き推定1308のそれぞれに関して、不確実性測定1310を出力するように構成される。このようにして、ニューラルネットワークアーキテクチャ1306は、所与のピクセルについて、所与の範囲にわたる離散奥行き確率分布を出力し、これは、この事例ではノンパラメトリックである。これにより、ニューラルネットワークアーキテクチャ1306は、予測される奥行きについての不確実性を表すことが可能となる(所与の奥行き推定に関連付けられた不確実性測定により表され、この事例では確率値により表される)。これにより、さらに、ニューラルネットワークアーキテクチャ1306は、多重仮説奥行き予測を行うことが可能となり、これは、幾何学的再構成により取得された奥行き推定と融合されると、シーンの奥行きをより正確に推定することが可能となる。
【0121】
ニューラルネットワークアーキテクチャ1306により出力される事前に定義された値の間には、不均一な間隔があり得る。このような手法では、ニューラルネットワークアーキテクチャ1306は、所与のピクセルについて、奥行き推定により占められる奥行き範囲にわたる可変解像度を有する奥行き確率分布を出力するように構成される。例えば、事前に定義された値は、事前に定義された奥行き範囲(奥行き推定により占められる奥行き範囲の全てまたは一部であり得る範囲)内の複数の対数奥行き値を含み得る。対数奥行きパラメータ化を使用することにより、奥行き範囲は対数空間で均一に分割することが可能となる。これにより、シーンの観察をキャプチャするのに使用されるキャプチャデバイスにより近い領域では、より高い奥行き解像度が提供され、より遠い領域では、より低い解像度が提供される。
【0122】
図13のシステム1300を使用して処理された画像の所与のピクセルについて、第2の複数の奥行き推定1308のそれぞれの奥行き推定に関連付けられた不確実性測定1310が、
図14に概略的に示される。
図14では、不確実性測定は、y軸1400上に示される確率密度値であり、奥行き推定は、x軸1402上に示されるメートル単位の対数奥行き値である。
図14の奥行き推定は、離散値を有する。よって、
図14は、棒グラフ1406形式の離散確率分布1400を示す。
【0123】
いくつかの事例では、離散化誤差を減らすため、及びシーンの奥行き推定の取得を促進するために、離散確率分布1400から連続確率関数が取得され得る。離散確率分布1400から取得された連続確率関数1408が、
図14に概略的に示される。連続確率関数1408は、滑らかな関数であり得、
図16を参照して下記でさらに論述される。
【0124】
図13を参照し直すと、ニューラルネットワークアーキテクチャ1306として、様々な異なるニューラルネットワークアーキテクチャが使用され得る。一例では、ニューラルネットワークアーキテクチャ1306は、残差ニューラルネットワーク(ResNet)エンコーダと、その後に続く3つのアップサンプルブロックとを含み、各アップサンプルブロックは、双線形アップサンプリング層、入力画像との結合、その後に2つの畳み込み層を含み、これにより、出力は、シーンの観察を表す入力画像の解像度と同じ解像度を有する。
【0125】
離散奥行き推定に関連付けられた確率値を予測するように
図13のニューラルネットワークアーキテクチャ1306をトレーニングするのに、順序損失関数が使用され得る。好適な順序損失関数L(θ)の例は、次のとおりである。
【数1】
θは、ニューラルネットワークアーキテクチャ1306の重みの集合であり、Kは、奥行き範囲が離散化されるビンの数であり、k
i
*は、ピクセルiについてのグラウンドトゥルース奥行きを含むビンのインデックスであり、p
θ,i(k
i
*=j)は、グラウンドトゥルース奥行きがビンj内である確率に関するニューラルネットワークアーキテクチャ1306の予測である。しかし、これは単なる例に過ぎず、他の実施例では、他の損失関数が使用され得る。
【0126】
図15を見ると、
図15は、
図12の第1の奥行き確率体積1200と同様または同一であり得る第1の奥行き確率体積1502を取得するための例示的なシステム1500の概略図である。
図15のシステム1500は、シーンの第1の観察を表す第1のフレーム1504、及び例えばシーンの第1の観察の前または後のシーンの第2の観察を表す第2のフレーム1506を処理するように構成される。実施例の第1の観察及び第2の観察は、最後に部分的に重複する(例えば両方がシーンの同一部分の観察を含むように)。
【0127】
第1のフレーム1504及び第2のフレーム1506は、測光誤差計算エンジン1508により処理され、第1のフレーム1504の複数の部分のそれぞれについて、測光誤差1510の集合が生成され、測光誤差1510はそれぞれ、第1の複数の奥行き推定1512のうちの異なる各奥行き推定に関連付けられる。測光誤差は、第1の複数の奥行き推定1512のそれぞれについて、第1のフレーム1504を第2のフレーム1506にワープさせ、ワープされた第1のフレーム1504と第2のフレーム1506との差を特定することにより、取得され得る。いくつかの事例では、差は、例えば3×3ピクセルサイズのピクセルのパッチについてのワープされた第1のフレーム1504のピクセル値と第2のフレーム1506のピクセル値との二乗差の合計であるが、これは単なる実例に過ぎない。このように第1のフレーム1504をワープさせることは、例えば
図2を参照して説明されたように、第1のフレーム1504のピクセルを第2のフレーム1506内の対応する位置にマッピングすることに対応するとみなされ得る。例えば、
図2を参照して説明された実施例における測光誤差を最小化する奥行き値を特定するためにそれぞれの奥行き値について反復的に計算された測光誤差は、
図15の実施例における測光誤差計算エンジン1508による測光誤差1510の集合として、出力され得る。
図2の実施例は、測光誤差を最小化することにより取得された奥行き推定に関連付けられた不確実性測定を計算することを含み、例えば、ヤコビアン項を使用して計算される。対照的に、
図15の実施例では、測光誤差1510の集合は、それら自体が、各奥行き推定にそれぞれ関連付けられたそれぞれの不確実性測定として扱われる。
【0128】
第1のフレーム1504のワープは、第2のフレーム1506でキャプチャされたシーンの第2の観察を複製することを目的とする(例えば第2のフレーム1506をキャプチャしている間のカメラの第2の姿勢と同じ姿勢を有するカメラで観察されたように)。第1のフレーム1504はこのように、第1の複数の奥行き推定1512のそれぞれについて、変換される(奥行き推定のそれぞれは、第1のフレーム1504をキャプチャしている間のカメラの第1の姿勢を基準としたシーンの仮説奥行きである)。通常、第1の姿勢を基準としたシーンの奥行きは不均一であるが、シーン全体が同じ奥行きにあると仮定して、その奥行き推定の測光誤差をピクセルごとに(または画像パッチごとに)計算することにより、より効率的にワープが実行され得る。この手法は、第1のフレーム1504の複数のピクセルのそれぞれについての第1の複数の奥行き推定1512に対して繰り返し実行されて、コスト体積が生成され得、コスト体積から第1の奥行き確率体積1502が取得され得る。
図2を参照して説明されたように、カメラの第1の姿勢及び第2の姿勢は、任意の好適な方法を使用して取得され得ることを、理解されたい。
【0129】
第1の奥行き確率体積1502と、
図13のシステム1300を使用して取得される第2の奥行き確率体積との融合を簡潔にするために、確率値がニューラルネットワークアーキテクチャ1306により出力されるそれぞれの奥行きビンの中点が、第1の奥行き確率体積1502のそれぞれの奥行き推定として使用され得る。しかし、他の実施例において、そうである必要はない。
【0130】
いくつかの実施例では、第1のフレーム1504がワープされる前、及び/または測光誤差1510の集合が計算される前に、第1のフレーム1504及び第2のフレーム1506は正規化される。正規化は、第1のフレーム1504及び第2のフレーム1506のそれぞれについて、ピクセル値のそれぞれから平均ピクセル値を減算して、出力された値のそれぞれを、第1のフレーム1504及び第2のフレーム1506の標準偏差で割ることにより、実行され得る。これにより、シーンの第1の観察と第2の観察との照明の変化に過度に影響されることなく、所与の奥行き推定に関して、ワープされた第1のフレーム1504と第2のフレーム1506との根本的な測光差を、より正確に特定することが可能となる。
【0131】
前述のように、
図15の測光誤差計算エンジン1508により取得された測光誤差1510の集合は、コスト体積を形成するとみなされ得る。測光誤差1510の集合から第1の奥行き確率体積1502を取得するために、
図15のシステム1500は、スケーリングエンジン1512を含み、これは、測光誤差1510をそれぞれの確率値1514(第1の複数の奥行き推定1512のうちの奥行き推定に関連付けられた不確実性測定に対応するとみなされ得る)にスケーリングするように構成される。一事例では、スケーリングは、スケーリング後に所与のピクセルについての第1の複数の奥行き推定1512のそれぞれに関する二乗測光誤差の負の値の合計が1となるように、各ピクセルの二乗測光誤差の負の値を個別にスケーリングすることを含む。次に、スケーリングされた値は、第1の複数の奥行き推定1512のうちの所与の奥行き推定に関連付けられたそれぞれの確率値1514として用いられ、これにより、第1の確率体積1502が生成され得る。
【0132】
図16は、シーンの融合奥行き推定を取得する例示的な方法1600を示すフロー図であり、シーンの観察は、ピクセルの配列をそれぞれ含む複数のフレームでキャプチャされる。融合奥行き推定は、
図12~
図15を参照して説明されたような第1の奥行き確率体積及び第2の奥行き確率体積を使用して取得される。
【0133】
図16の項目1602は、融合確率体積を取得することを含む。項目1602にて、第1の奥行き推定と第2の奥行き推定(第1の奥行き確率体積と第2の奥行き確率体積の一部をそれぞれ形成する)は、第1の複数の不確実性測定と第2の複数の不確実性測定とを組み合わせることにより、確率的に融合され、融合確率体積が生成される。第1の複数の不確実性測定と第2の複数の不確実性測定は、様々な異なる方法で組み合され得る。第1の複数の不確実性測定及び第2の複数の不確実性測定が第1の奥行き確率体積及び第2の奥行き確率体積に関連付けられた確率値である一事例では、第1の複数の奥行き推定のうちの奥行き推定に関連付けられた確率値と、第2の複数の奥行き推定のうちの対応する奥行き推定に関連付けられた確率値と組み合わせることで(例えば乗算することで)、奥行き推定のそれぞれについて融合値を取得することにより、融合確率体積が取得される。いくつかの事例では、次に、所与のピクセルについての奥行き推定のそれぞれに関する融合値が、合計1となるようにスケーリングされ、奥行き推定のそれぞれに関する融合確率値が生成される。しかし、これは、他の事例では、例えば第1の複数の奥行き推定及び第2の複数の奥行き推定に関連付けられた確率値が、所与のピクセルについて合計1となるように既に前にスケーリングされている場合は、省略され得る。
【0134】
図16の実施例では、融合確率体積を使用して取得されるシーンの奥行き推定の定量化を回避するため、及び後続の最適化ステップで使用する好適な関数(
図16の項目1604及び1606を参照してさらに論述される)を取得するために、融合確率体積を使用して、奥行き確率関数が取得される。奥行き確率関数は、融合確率体積のパラメータ化を表し、連続的な奥行き値を取得することを可能にする(単に融合確率体積の離散的な奥行き推定だけでなく)。奥行き確率関数は、例えばガウス基底関数を使用する、カーネル密度推定(KDE)技法など、離散分布をパラメータ化する任意の好適な技法を使用して、取得され得る。
【0135】
図16の項目1604及び1606にて、融合確率体積からシーンの融合奥行き推定が取得される(この事例では融合確率体積から取得された奥行き確率関数から取得されるが、これは単なる例に過ぎない)。
図16の実施例では、シーンの融合奥行き推定を取得することは、項目1604にてコスト関数を最適化することを含む。この事例のコスト関数は、融合確率体積を使用して取得された第1のコスト項と、奥行き値に対する局所的な幾何学的制約を含む第2のコスト項とを含む。コスト関数c(d)は、次のように表され得る。
c(d)=c
1(d)+λc
2(d)
dは、推定される奥行き値であり、c
1(d)は、第1のコスト項であり、c
2(d)は第2のコスト項であり、λは、コスト関数に対する第2のコスト項の寄与を調整するために使用されるパラメータである。パラメータλは、実験的に調整され、奥行き値の好適な推定が取得され得る。一事例のパラメータλの好適な値は、1×10
7であるが、これは単なる例に過ぎない。
【0136】
第1のコスト項は、融合確率体積に依存し、
図16の実施例では、融合確率体積から取得された奥行き確率関数に依存する。この事例では、第1のコスト項は、次のように表され得る。
【数2】
f
i(d
i)は、奥行きd
iで評価された、所与の入力フレーム(シーンの観察を表す)のピクセルiについての奥行き確率関数の出力である。
【0137】
第1の奥行き確率体積と第2の奥行き確率体積とを融合させることにより、融合確率体積は通常、幾何学的再構成またはニューラルネットワークアーキテクチャを単独で使用する場合よりも、局所的一貫性が高くなる。
図16の実施例では、正規化項とみなされ得る第2のコスト項を含むことにより、局所的一貫性は向上する。この事例の第2のコスト項は、コスト関数の最適化中に局所的な幾何学的制約を課し、これにより、局所的幾何学がより良く維持される。
【0138】
図16の方法1600を使用して融合奥行き推定1702を取得するためのシステム1700が、
図17に概略的に示される。融合奥行き確率体積1704が、システム1700の奥行き推定エンジン1706に入力される。奥行き推定エンジン1706は、
図16の項目1604のコスト関数最適化を実行する。コスト関数の第1のコスト項は、奥行き推定エンジン1706に入力される融合奥行き確率体積1704に依存し、この事例では、上記の式c
1(d)を使用して表され得る。ゆえに、
図17では、奥行き推定エンジン1706は、第1のコスト項を計算するために、融合奥行き確率体積1704から奥行き確率関数を取得するように構成される。しかし、他の事例では、第1のコスト項は、融合奥行き確率体積1704自体から取得され得る、または奥行き推定エンジン1706は、融合奥行き確率体積1704ではなく、奥行き確率関数を受信するように構成され得る。
【0139】
図17のシステム1700はまた、さらなるニューラルネットワークアーキテクチャ1708を含み、これは、融合奥行き推定が生成されるシーンの観察を表す入力フレーム1710を受信するように、及びコスト関数の第2のコスト項を生成する際に使用する幾何学的制約データ1712を生成するように、構成される。この事例の入力フレーム1710は、第2の奥行き確率体積を生成するためにニューラルネットワークアーキテクチャにより処理される入力フレームであり、第1の奥行き確率体積を生成するために幾何学的再構成エンジンにより処理されるフレームのうちの1つであるが、これは単なる例に過ぎない。
【0140】
図17の実施例の幾何学的制約データ1712は、表面配向推定及びオクルージョン境界推定を表す。表面配向推定及びオクルージョン境界推定を使用して、第2のコスト項が生成される。例えば、表面配向推定は、入力フレーム1710の所与のピクセルについての表面法線を表し、さらなるニューラルネットワークアーキテクチャ1708により予測される。当業者には理解されるように、任意の好適にトレーニングされたニューラルネットワークアーキテクチャが、さらなるニューラルネットワークアーキテクチャ1708として使用され得る。第2のコスト項で表面配向推定を使用すると、コスト関数を最適化することにより取得される融合奥行き推定において、局所的幾何学の維持が向上する。例えば、隣接するピクセルについて表面配向推定が類似する(例えばこれらのピクセルは同様の配向であり、連続した平面の表面が見込まれることを示す)場合、第2のコスト項は通常、小さくなる。
【0141】
しかし、シーンは通常、オブジェクトの境界(オクルージョン境界と称され得る)に奥行きの不連続性を含む。このような境界では、シーンの観察を表す入力フレームの隣接するピクセルの表面配向推定は、通常、互いに異なる。これらの領域のオブジェクトの一部は、オブジェクト境界におけるオブジェクトの奥行きの急激な変化により遮蔽され得るため、このような領域では、表面配向推定は信頼性に欠き得る。従って、オブジェクトのこれらの部分の観察は、入力フレームに存在し得ず、これは、表面配向推定の信頼性、及びシーンの観察を表す画像の隣接するピクセルの表面配向推定間の差に基づくコスト項の信頼性に、影響を与え得る。
【0142】
これを補うために、
図17の実施例の第2のコスト項が、オクルージョン境界での正規化項をマスクする。言い換えると、例えば、オクルージョン境界に対応するピクセルなど、入力フレーム1710の信頼性のない領域に対応するピクセルについては、第2のコスト項の寄与が低くなり、より信頼性のある領域に対応するピクセルについては、第2のコスト項の寄与が高くなるように、入力フレーム1710のそれぞれのピクセルについて第2のコスト項の寄与を調整するために、第2のコスト項は0~1の値などの値で重みづけされる。例えば、オクルージョン境界上にあるピクセルについて、第2のコスト項は、ゼロの値の重みで重みづけされ得、よって、これらのピクセルについては、第2のコスト項は、コスト関数の最適化に寄与しない。
【0143】
いくつかの事例では、さらなるニューラルネットワークアーキテクチャ1708は、所与のピクセルがオクルージョン境界に属する確率を、オクルージョン境界推定として出力する。このような事例では、この確率が、例えば0.4などの所定閾値以上である値である場合、ピクセルはオクルージョン境界上にあるとみなされ得る。
【0144】
図17の実施例では、奥行き推定エンジン1706により生成され、コスト関数を最適化するのに使用される第2のコスト項c
2(d)は、次のように表され得る。
【数3】
b
i∈{0、1}は、入力フレーム1710のピクセルiのオクルージョン境界推定に基づいたマスクの値であり、<.,.>は、ドット積演算子を表し、
【数4】
は、さらなるニューラルネットワークアーキテクチャ1708により出力された表面配向推定であり、Kは、入力フレーム1710をキャプチャするのに使用されたカメラに関連付けられた固有パラメータを表す行列であり(時にカメラ固有行列と称される)、
【数5】
は、ピクセルiの均一ピクセル座標を表し、Wはピクセル単位の画像の幅である。
【0145】
図17では、勾配降下を使用して奥行き推定エンジン1706によりコスト関数が最適化され、コスト関数の値を最小化する奥行き値dに対応する融合奥行き推定1702が取得される(
図16の項目1606)。しかし、これは単なる例に過ぎず、他の事例では、異なる最適化技法を使用して融合奥行き推定は取得され得る。
【0146】
図18は、第2の融合奥行き確率体積を取得する例示的な方法1800を示すフロー図である。
図18の方法1800を使用して、シーンの第1の観察を表すビデオの第1のフレームに関連付けられた第1の融合奥行き確率体積から、シーンの第2の観察を表すビデオデータの第2のフレームに関連付けられた第2の融合奥行き確率体積が取得され得、第1のフレームは、例えば第2のフレームの前または後である。第1の融合奥行き確率体積を使用して第2の融合奥行き確率体積を取得することにより、シーンの奥行きに関する情報が、複数のフレームにわたり保持され得る。これにより、第2のフレームの奥行き推定は、第1のフレームからの情報を使用せずに第2のフレームの奥行き推定を再計算する場合と比較して、向上し得る。
【0147】
第1の融合奥行き確率体積は第1のフレームのそれぞれのピクセルの奥行き確率分布を表すため、第1の融合奥行き確率体積により表される情報を第2のフレームに組み込むことは、自明ではない。これに対処するために、
図18の項目1802は、第1の融合奥行き確率体積を、第1の占有確率体積に変換することを含む。第1のフレームの第1の融合奥行き確率体積は、
図12~
図17を参照して説明された方法のうちのいずれかを使用して取得され得る。第1の占有確率体積は、占有ベースの確率体積としてみなされ得、よって、シーンを向く第1のフレームのキャプチャに関連付けられた第1の姿勢のカメラから伝搬される光線に沿った奥行きごとに、空間内の関連ポイントが占有されている確率が存在する。
【0148】
一事例では、第1の占有確率体積は、奥行きが第1の奥行き確率体積のビンjに属することを条件として、ボクセルS
k,i(例えば第1のフレームのピクセルiに関連付けられた光線に沿った第1の奥行き確率体積のビンkに関連付けられた奥行き推定に対応する3次元体積要素である)が占有されている確率を最初に特定することにより、取得される。
【数6】
【0149】
これから、第1の占有確率体積p(S
k,i=1)が、以下の式を使用して取得され得る。
【数7】
p
i(k
i
*=k)は、第1のフレームのピクセルiについての第1の奥行き確率体積のビンkの確率値であり、Kは、ピクセル単位の第1のフレームの幅である。
【0150】
図18の項目1804は、シーンを観察している間のカメラの姿勢を表す姿勢データに基づいて、第1の占有確率体積をワープさせて、第2のフレームに関連付けられた第2の占有確率体積を取得することを含む。第1の占有確率体積をワープさせることは、
図15を参照して説明された測光誤差1510を取得するために第1のフレームをワープさせることと、その他の点では類似し得、通常、第1のフレームをキャプチャしている間のカメラの第1の姿勢を表す第1の姿勢データと、第2のフレームをキャプチャしている間のカメラの第2の姿勢を表す第2の姿勢データとを、姿勢データとして使用する。このようにして、第1の占有確率体積は、第2のフレームにワープされ得る。いくつかの事例では、第2のフレームは、対応するワープされた第1の占有確率体積が存在しないいくつかのピクセルを含み得る。これらのピクセルには、例えば(単なる例に過ぎないが)0.01の値などの所定値(例えばデフォルト値)が占有確率に使用され得る。
【0151】
図18の項目1806にて、第2の占有確率体積は、第2のフレームに関連付けられた第2の融合奥行き確率体積に変換される。この変換は、次の式を使用して実行され、第2のフレームのピクセルiについての第2の奥行き確率分布のビンkの確率値 p
i(k
i
*=k)が取得され得る。
【数8】
この式を使用して、第2のフレームの複数のピクセルのそれぞれについて、第2の融合奥行き確率分布のそれぞれのビンの確率値が生成され得る。次に、第2の融合奥行き確率分布は、1つの光線に沿って分布の合計が1となるようにスケーリングされ、第2の融合奥行き確率体積が取得され得る。次に、第2のフレームの融合奥行き推定が、例えば
図16及び
図17を参照して説明されるように、第2の融合奥行き確率体積から取得され得る。
【0152】
図19は、さらなる実施例による、シーンの奥行きを推定する例示的な方法1900を示すフロー図である。
【0153】
項目1902にて、シーンの幾何学的再構成を使用して、シーンの第1の奥行き確率体積が生成される。第1の奥行き確率体積は、例えば、
図12を参照して説明された第1の奥行き確率体積と同一または同様であり、例えば
図15を参照して説明されたように、生成され得る。
【0154】
項目1904にて、ニューラルネットワークアーキテクチャを使用して、シーンの第2の奥行き確率体積が生成される。第2の奥行き確率体積は、例えば、
図12を参照して説明された第2の奥行き確率体積と同一または同様であり、例えば
図13及び
図14を参照して説明されたように、生成され得る。
【0155】
項目1906にて、第1の奥行き確率体積及び第2の奥行き確率体積を使用して、シーンの融合奥行き確率体積が生成され、項目1908にて、融合奥行き確率体積を使用して、シーンの融合奥行き推定が生成される。
図19の項目1906及び1908の融合奥行き確率体積及び融合奥行き推定の生成は、
図16及び/または
図17の方法と同様または同一の方法を使用し得る。
【0156】
図20は、さらなる実施例による、シーンの奥行きを推定する画像処理システム2000の概略図である。画像処理システム2000は、融合エンジン2002を含み、融合エンジン2002は、幾何学的再構成エンジン2006からの第1の奥行き確率体積2004と、ニューラルネットワークアーキテクチャ2010からの第2の奥行き確率体積2008とを受信し、第1の奥行き確率体積2004と第2の奥行き確率体積2008とを融合させて、シーンの融合奥行き確率体積2012を出力する。画像処理システム2000はまた、奥行き推定エンジン2014を含み、奥行き推定エンジン2014は、融合奥行き確率体積2012を使用して、シーンの奥行きを推定する(融合奥行き推定2016と称され得る)。
【0157】
図20の実施例では、画像処理システム2000は、シーンのそれぞれの観察を表す入力フレーム2018を処理して、融合奥行き推定2016を生成するように構成される。入力フレーム2018は、例えば、第1のフレームを含み、これは、例えば
図12~
図14を参照して説明されたように、第2の奥行き確率体積2008を生成するためにニューラルネットワークアーキテクチャ2010により処理される。入力フレーム2018はまた、第2のフレームを含み得る。このような実施例では、例えば
図12及び
図15を参照して説明されたように、第1のフレーム及び第2のフレームの両方が、幾何学的再構成エンジン2006により処理され、第1の奥行き確率体積2004が生成され得る。融合エンジン2002による融合奥行き確率体積2012の生成、及び奥行き推定エンジン2014による融合奥行き推定2016の生成は、例えば
図16及び
図17を参照して説明されたようなものであり得る。
【0158】
上記の実施例は、例示として理解されるべきである。さらなる実施例が想定される。
【0159】
図16の実施例では、コスト関数は、第1のコスト項及び第2のコスト項を含む。その他の点では
図16の実施例と同一または同様である他の実施例では、コスト関数は、第2のコスト項を含み得ず、例えば第1のコスト項のみを含み得る。
【0160】
図19の方法1900または
図20のシステム2000により第1のフレームについて取得された融合奥行き確率体積は、
図18を参照して説明されたようにワープされ、第2のフレームの奥行き確率体積が取得され得る。
【0161】
図12~
図17及び
図19及び
図20を参照して説明されたようなシーンの奥行きの推定は、シーンの観察ごとに実行される必要はないことを、理解されたい。代わりに、キーフレームと称され得る観察の部分集合(例えばフレームの部分集合)について、奥行きは推定され得る。これにより、処理要件を軽減することができる。同様に、奥行きが推定されたキーフレームに続くフレームごとに、
図19の方法は実行される必要はない。例えば、第1のフレームと第2のフレームとの間でカメラの姿勢が大幅に変更した場合は、
図19の方法は省略されてもよい。
【0162】
奥行きを推定するビデオの第1のフレームについて、前述のようなニューラルネットワークアーキテクチャを使用して、奥行きが推定されてもよい(例えば第2の奥行き確率体積を第1の奥行き確率体積と融合させることなく、第2の奥行き確率体積から奥行き推定を計算することにより)。ビデオの少なくとも1つのさらなるフレームを取得した後、第1の奥行き確率体積が計算され、第2の奥行き確率体積と融合され、シーンの融合奥行き推定を生成するために、融合奥行き確率体積が取得され得る。
【0163】
図16及び
図17の実施例では、融合奥行き確率体積から導出された奥行き確率関数に基づいたコスト関数を使用して、融合奥行き推定が生成される。この手法は、ニューラルネットワークアーキテクチャからの予測が比較的不確実であり、ゆえに誤った最小値の影響を受けやすい特徴のない領域において、より正確に機能する傾向がある。しかし、他の実施例では、所与のピクセルの融合奥行き推定が、融合奥行き確率体積からの最大の確率を有するピクセルの奥行き推定とみなされ得る。
【0164】
図12~
図20の実施例では、融合奥行き推定は、高密度奥行き推定である。しかし、他の事例では、同様の方法またはシステムを使用して、例えば本明細書の方法を使用して入力フレームのピクセルの部分集合を処理することにより、中密度または低密度の奥行き推定が取得され得る。付加的または代替的に、
図12~
図20のうちのいずれか1つの図の実施例に従って取得された融合奥行き推定のそれぞれの奥行き推定と、融合奥行き推定が取得された入力フレームのピクセルとの間には、一対一、一対多、または多対一のマッピングが存在し得る。
【0165】
図12~
図20の実施例は、シーンの観察を表すフレームを処理することを参照して説明されている。しかし、これらの方法及び/またはシステムは、代替的に、ビデオのフレームではなく静止画像を処理するために使用されてもよいことを、理解されたい。
【0166】
図19の方法1900及び/または
図20のシステム2000は、
図1A~
図1Cのキャプチャデバイス、
図7Aのコンピューティングシステム700、及び/または
図7Bのロボットデバイス760など、本明細書に説明されるシステムまたは装置のいずれかを使用し得る。
図19の方法1900を実行するための命令、または
図20のシステム2000を実施するための命令は、
図11を参照して説明されたような非一時的コンピュータ可読記憶媒体に記憶され得る。
【0167】
任意の1つの実施例に関連して説明される任意の機能は、単独で使用されてもよく、または説明される他の機能と組み合わせて使用されてもよく、また、実施例のうちの任意の他の実施例の1つ以上の機能と組み合わせて使用されてもよく、または実施例のうちの任意の他の実施例の任意の組み合わせの1つ以上の機能と組み合わせて使用されてもよいことを、理解されたい。さらに、添付の特許請求の範囲で定義される本発明の範囲から逸脱することなく、上記で説明されていない均等物及び変更物も使用されてもよい。
【国際調査報告】