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

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

▶ インペリアル・カレッジ・オブ・サイエンス・テクノロジー・アンド・メディスンの特許一覧

特表2022-521253オブジェクトの厚さを決定するための画像処理
<>
  • 特表-オブジェクトの厚さを決定するための画像処理 図1A
  • 特表-オブジェクトの厚さを決定するための画像処理 図1B
  • 特表-オブジェクトの厚さを決定するための画像処理 図1C
  • 特表-オブジェクトの厚さを決定するための画像処理 図2
  • 特表-オブジェクトの厚さを決定するための画像処理 図3A
  • 特表-オブジェクトの厚さを決定するための画像処理 図3B
  • 特表-オブジェクトの厚さを決定するための画像処理 図4
  • 特表-オブジェクトの厚さを決定するための画像処理 図5
  • 特表-オブジェクトの厚さを決定するための画像処理 図6
  • 特表-オブジェクトの厚さを決定するための画像処理 図7
  • 特表-オブジェクトの厚さを決定するための画像処理 図8
  • 特表-オブジェクトの厚さを決定するための画像処理 図9
  • 特表-オブジェクトの厚さを決定するための画像処理 図10
  • 特表-オブジェクトの厚さを決定するための画像処理 図11
  • 特表-オブジェクトの厚さを決定するための画像処理 図12
  • 特表-オブジェクトの厚さを決定するための画像処理 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-04-06
(54)【発明の名称】オブジェクトの厚さを決定するための画像処理
(51)【国際特許分類】
   G06T 7/00 20170101AFI20220330BHJP
【FI】
G06T7/00 C
G06T7/00 350C
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2021549111
(86)(22)【出願日】2020-02-18
(85)【翻訳文提出日】2021-08-19
(86)【国際出願番号】 GB2020050380
(87)【国際公開番号】W WO2020169959
(87)【国際公開日】2020-08-27
(31)【優先権主張番号】1902338.1
(32)【優先日】2019-02-20
(33)【優先権主張国・地域又は機関】GB
(81)【指定国・地域】
(71)【出願人】
【識別番号】518067272
【氏名又は名称】インペリアル・カレッジ・オブ・サイエンス・テクノロジー・アンド・メディスン
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】アンドレア・ニカストロ
(72)【発明者】
【氏名】ロナルド・クラーク
(72)【発明者】
【氏名】ステファン・ロイテンエッガー
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA02
5L096AA09
5L096CA04
5L096CA05
5L096DA01
5L096DA02
5L096FA01
5L096FA64
5L096HA11
5L096KA04
5L096KA15
(57)【要約】
画像データ内に存在するオブジェクトの厚さを予測するために画像データを処理する例が説明される。1つの例では、シーンの画像データが取得され、シーンはオブジェクトのセットを特徴とする。画像データは、予測モデルの入力データを生成するために分解される。これは、シーン内のオブジェクトのセットに対応する画像データの部分を決定することを含み得、各部分は異なるオブジェクトに対応する。断面厚さ測定値は、予測モデルを使用して部分について予測される。画像データの部分について予測された断面厚さ測定値は、次に、シーン内のオブジェクトのセットの厚さデータを含む出力画像データを生成するために組み立てられる。
【特許請求の範囲】
【請求項1】
画像データを処理する方法であって、
シーンの画像データを取得することであって、前記シーンがオブジェクトのセットを特徴とする、前記取得することと、
予測モデルの入力データを生成するために前記画像データを分解することであって、前記シーン内の前記オブジェクトのセットに対応する、前記画像データの部分を決定することであって、各部分が異なるオブジェクトに対応する前記決定することを含む、前記分解することと、
前記予測モデルを使用して、前記部分の断面厚さ測定値を予測することと、
前記シーン内の前記オブジェクトのセットの厚さデータを含む出力画像データを生成するために、前記画像データの前記部分の前記予測された断面厚さ測定値を組み立てることと
を含む、前記方法。
【請求項2】
前記画像データが、少なくとも、シーンの測光データを含み、前記画像データを分解することが、
前記測光データから前記シーンのセグメンテーションデータを生成することであって、前記セグメンテーションデータが、前記測光データの部分と、前記シーン内の前記オブジェクトのセットとの間の推定された対応を示す、前記生成すること
を含む、請求項1に記載の方法。
【請求項3】
前記シーンのセグメンテーションデータを生成することが、
前記測光データに示されるオブジェクトを検出することと、
各検出したオブジェクトにセグメンテーションマスクを生成することと
を含み、
前記画像データを分解することが、各検出したオブジェクトについて、前記セグメンテーションマスクを含む前記画像データの領域を切り取ることを含む、
請求項2に記載の方法。
【請求項4】
前記測光データに示されるオブジェクトを検出することが、
畳み込みニューラルネットワークアーキテクチャを使用して、前記測光データの前記1つ以上のオブジェクトを検出すること
を含む、請求項3に記載の方法。
【請求項5】
前記予測モデルが、複数のオブジェクトについて、画像データ及びグラウンドトゥルース厚さ測定値の対で訓練される、請求項1~4のいずれか1項に記載の方法。
【請求項6】
前記画像データが、シーンの測光データ及び深度データを含み、前記入力データが、前記測光データから導出したデータ及び前記深度データから導出したデータを含み、前記測光データから導出した前記データが、色データ及びセグメンテーションマスクの1つ以上を含む、請求項1~5のいずれか1項に記載の方法。
【請求項7】
前記シーンの3次元モデルを更新するために、前記測光データ、前記深度データ、及び前記厚さデータを使用すること
を含む、請求項6に記載の方法。
【請求項8】
前記シーンの前記3次元モデルが、切り捨てられた符号付き距離関数(TSDF)モデルを含む、請求項7に記載の方法。
【請求項9】
前記予測モデルがニューラルネットワークアーキテクチャを備える、請求項1~8のいずれか1項に記載の方法。
【請求項10】
前記画像データがカラー画像及び深度マップを含み、前記出力画像データが、断面厚さの関連付けられた値を有するピクセルを含むピクセルマップを含む、請求項1~9のいずれか1項に記載の方法。
【請求項11】
画像データを処理するためのシステムであって、
画像データを受け取るための入力インタフェースと、
前記入力インタフェースで受け取った前記画像データに存在する1つ以上のオブジェクトの厚さデータを出力するための出力インタフェースと、
入力データから断面厚さ測定値を予測するための予測モデルであって、複数のオブジェクトのための画像データ及びグラウンドトゥルース厚さ測定値の対に基づいて推定される訓練されたパラメータによってパラメータ化される、前記予測モデルと、
前記入力インタフェースで受け取った前記画像データから前記予測モデルの前記入力データを生成するための分解エンジンであって、前記画像データの部分と、前記画像データに存在すると見なされる1つ以上のオブジェクトとの間の対応を決定するように構成され、各部分が異なるオブジェクトに対応する、前記分解エンジンと、
前記出力インタフェースに前記出力厚さデータを提供するために、前記予測モデルからの複数の予測された断面厚さ測定値を組み立てるための組み立てエンジンと
を備える、前記システム。
【請求項12】
前記画像データが測光データを含み、前記分解エンジンが、前記測光データに基づいてセグメンテーションデータを生成するための画像セグメンテーションエンジンを備え、前記セグメンテーションデータが、前記測光データの部分と、前記画像データに存在すると見なされる前記1つ以上のオブジェクトとの間の推定された対応を示す、請求項11に記載のシステム。
【請求項13】
前記画像セグメンテーションエンジンが、
前記測光データ内のオブジェクト検出するため、及び任意の検出したオブジェクトのセグメンテーションマスクを出力するためのニューラルネットワークアーキテクチャ
を備える、請求項12に記載のシステム。
【請求項14】
前記ニューラルネットワークアーキテクチャが、セグメンテーションマスクを予測するための経路を有するリージョンベースの畳み込みニューラルネットワーク-RCNN-を備える、請求項13に記載のシステム。
【請求項15】
前記分解エンジンが、前記画像セグメンテーションエンジンから受け取ったバウンディングボックスに基づいて、前記画像データのセクションを切り取るように構成され、前記画像セグメンテーションエンジンによって検出された各オブジェクトが、異なる関連付けられたバウンディングボックスを有する、請求項12~14のいずれか1項に記載のシステム。
【請求項16】
前記画像データが、シーンの測光データ及び深度データを含み、前記入力データが、前記測光データから導出したデータ及び前記深度データから導出したデータを含み、前記測光データから導出した前記データがセグメンテーションマスクを含む、請求項11~15のいずれか1項に記載のシステム。
【請求項17】
前記予測モデルが、
前記測光データ及び前記深度データを受け取るため、及びマルチチャネル特徴画像を生成するための入力インタフェースと、
前記マルチチャネル特徴画像を潜在的表現として符号化するためのエンコーダと、
画素のセットの断面厚さ測定値を生成するために前記潜在的表現を復号するためのデコーダと
を備える、請求項16に記載のシステム。
【請求項18】
前記入力インタフェースで受け取った前記画像データが、シーンの1つ以上のビューを含み、前記システムが、
前記出力インタフェースから出力厚さデータを受け取るため、及び前記厚さデータを使用して、前記シーンの3次元モデルの切り捨てられた符号付き距離関数値を決定するためのマッピングシステム
を備える、請求項11~17のいずれか1項に記載のシステム。
【請求項19】
1つ以上のオブジェクトの断面厚さを推定するためのシステムを訓練する方法であって、
複数のオブジェクトのサンプルを含む訓練データを取得することであって、各サンプルが、前記複数のオブジェクトの1つの画像データ及び断面厚さデータを含む、前記取得することと、
前記訓練データを使用して前記システムの予測モデルを訓練することであって、
前記予測モデルへの入力として、前記訓練データから、少なくとも前記画像データから導出したデータを提供することと、
前記予測モデルの出力及び前記訓練データからの前記断面厚さデータに基づいて損失関数を最適化することと、を含む、
前記訓練することと
を含む前記方法。
【請求項20】
前記画像データと関連付けられたオブジェクトセグメンテーションデータを取得することと、
前記システムの画像セグメンテーションエンジンを訓練することであって、
前記画像セグメンテーションエンジンへの入力として、前記画像データを提供することと、
前記画像セグメンテーションエンジンの出力及び前記オブジェクトセグメンテーションデータに基づいて損失関数を最適化することと
を含む、前記訓練することと
を含む、請求項19に記載の方法。
【請求項21】
各サンプルが測光データ及び深度データを含み、前記予測モデルを訓練することが、前記予測モデルへの入力として、前記測光データから導出したデータ及び前記深度データから導出したデータを提供することを含む、請求項19または請求項20に記載の方法。
【請求項22】
各サンプルが、カラー画像及びセグメンテーションマスク、深度画像、ならびにオブジェクトの厚さレンダリングの少なくとも1つを含む、請求項21に記載の方法。
【請求項23】
訓練セットを生成する方法であって、前記訓練セットが、1つ以上のオブジェクトの断面厚さを推定するためのシステムを訓練するために使用可能であり、複数のオブジェクトの各オブジェクトについて、
前記オブジェクトの画像データを取得することであって、前記画像データが複数のピクセルの少なくとも測光データを含む、前記取得することと、
前記オブジェクトの3次元表現を取得することと、
前記オブジェクトの断面厚さデータを生成することであって、
前記オブジェクトの第1の表面への第1の距離、及び前記オブジェクトの第2の表面への第2の距離を決定するために、前記3次元表現にレイトレーシングを適用することであって、前記第1の表面が、前記第2の表面よりも前記レイトレーシングの起点により近い、前記適用することと、
前記第1の距離と前記第2の距離の差に基づいて、前記オブジェクトの断面厚さ測定値を決定すること
とを含み、
前記レイトレーシング及び前記断面厚さ測定値の前記決定することが、前記オブジェクトの前記断面厚さデータを生成するために、前記複数のピクセルに対応するピクセルのセットに対して繰り返され、前記断面厚さデータが、前記断面厚さ測定値を含み、前記取得した画像データに対応する、
前記生成することと、
前記オブジェクトの入力データ及びグラウンドトゥルース出力データのサンプルを生成することであって、前記入力データが前記画像データを含み、前記グラウンドトゥルース出力データが前記断面厚さデータを含む、前記生成することと
を含む、前記方法。
【請求項24】
合成訓練データの追加サンプルを生成するために、前記複数のオブジェクトの前記画像データ及び前記3次元表現を使用することを含む、請求項23に記載の方法。
【請求項25】
前記画像データが、複数のピクセルの測光データ及び深度データを含む、請求項23または請求項24に記載の方法。
【請求項26】
ロボットデバイスであって、
色データ及び深度データを含むビデオデータのフレームを提供するための少なくとも1つのキャプチャデバイスと、
前記入力インタフェースが、前記少なくとも1つのキャプチャデバイスに通信可能に結合される、請求項11~18のいずれか1項に記載のシステムと、
前記ロボットデバイスが、周辺の3次元環境とインタラクションすることを可能にする1つ以上のアクチュエータと、
前記1つ以上のアクチュエータを制御するために少なくとも1つのプロセッサを備えるインタラクションエンジンと
を備え、
前記インタラクションエンジンが、前記周辺の3次元環境のオブジェクトとインタラクションするために前記システムの前記出力インタフェースからの前記出力画像データを使用するためである、
前記ロボットデバイス。
【請求項27】
プロセッサによる実行時に、コンピューティングデバイスに、請求項1~10または19~25のいずれか1項に記載の方法を実行させるコンピュータ実行可能命令を含む、非一時的なコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は画像処理に関する。特に、本発明は、観察したオブジェクトのセットの厚さデータを推定するために画像データを処理することに関する。本発明は、ロボット工学及び自律システムの分野で有用であり得る。
【背景技術】
【0002】
過去数年間にわたるロボット工学の進歩にも関わらず、ロボットデバイスは、人間及び霊長類にとっては自然に生じる作業に依然として苦労している。例えば、多層ニューラルネットワークアーキテクチャは、画像分類タスクに対しては人間に近いレベルの精度を明示しているが、多くのロボットデバイスは、通常の環境において単純な物体に繰り返し手を伸ばし、把持することができない。
【0003】
ロボットデバイスが現実世界の環境で動作することを可能にするための1つの手法は、すべての角度から環境を慎重に走査し、マッピングすることであった。この場合、環境の複雑な3次元モデルは、例えば環境の内容を表す3次元の点の「高密度な」雲の形で生成し得る。しかし、これらの手法は面倒であり、環境をナビゲートしていくつかのビューを提供し、空間の正確なモデルを構築することは必ずしも可能ではない場合がある。また、これらの手法は、多くの場合一貫性にまつわる問題を明示し、例えば、異なるビデオフレームで観察する共通のオブジェクトの異なる部分は、必ずしも同じオブジェクトの一部であると見なされない場合がある。
【0004】
Newcombe et alは、2011年第10回IEEE International Symposium on Mixed and Augmented Realityの一部として公開された論文「Kinectfusion: Real-time dense surface mapping and tracking」(127~136ページを参照)の中で、RGBD(赤、緑、青、及び深度チャネル)データの複数のフレームが位置合わせされ、3次元ボクセルグリッドの中に融合される、RGBDデータからシーンを構築するための手法を説明している。データのフレームは、高密度6自由度アライメントを使用して追跡され、次にボクセルグリッドのボリュームに融合される。
【0005】
McCormac et alは、International Conference on 3D Visionの一部として公開されたその2018の論文「Fusion++: volumetric object-level slam」(32~41ページを参照)の中で、環境の大規模なマッピングに対するオブジェクト中心の手法について説明している。複数の切り捨てられた符号付き距離関数(TSDF)ボリュームを含む環境のマップが生成され、各ボリュームは単一のオブジェクトインスタンスを表す。
【0006】
環境とうまくインタラクションする、及び/または環境をナビゲートすることができるロボットデバイス及び自律システムを開発することをより容易にする方法及びシステムを開発することが所望されている。これらの方法及びシステムが、例えばそれらが環境内で活発に動作しているデバイスに適用され得るようにリアルタイムまたはほぼリアルタイムの速度で動作することもさらに所望されている。多くの最先端の手法は広範囲な処理要求を有するため、これは困難である。例えば、入力された画像データから3次元形状を復元するには、大部分のロボットデバイスのメモリ制限内では可能ではない場合がある3次元畳み込みが必要となる場合がある。
【発明の概要】
【0007】
本発明の第1の態様によれば、画像データを処理する方法が提供され、方法は、シーンの画像データを取得することであって、シーンはオブジェクトのセットを特徴付ける、取得することと、予測モデルのための入力データを生成するために画像データを分解することであって、シーン内のオブジェクトのセットに対応する画像データの部分を決定することであって、各部分は異なるオブジェクトに対応する、決定することを含む、分解することと、予測モデルを使用して部分の断面厚さ測定値を予測することと、シーン内のオブジェクトのセットの厚さデータを含む出力画像データを生成するために画像データの部分の予測された断面厚さ測定値を組み立てることと、を含む。
【0008】
特定の例では、画像データは、シーンの少なくとも測光データを含み、画像データを分解することは、測光データからシーンのセグメンテーションデータを生成することを含み、セグメンテーションデータは、測光データの部分と、シーン内のオブジェクトのセットとの間の推定された対応を示す。シーンのセグメンテーションデータを生成することは、測光データに示されるオブジェクトを検出すること、及び各検出したオブジェクトにセグメンテーションマスクを生成することを含み得、画像データを分解することは、例えば元の画像データ及び/またはセグメンテーションマスクを切り取ることなど、各検出したオブジェクトについて、セグメンテーションマスクを含む画像データの領域を切り取ることを含み得る。測光データに示されるオブジェクトを検出することは、畳み込みニューラルネットワークアーキテクチャを使用して測光データの1つ以上のオブジェクトを検出することを含み得る。
【0009】
特定の例では、予測モデルは、複数のオブジェクトについて、画像データとグラウンドトゥルース厚さ測定値の対に関して訓練される。画像データは、シーンの測光データ及び深度データを含み得、入力データは、測光データから導出したデータ、及び深度データから導出したデータを含み、測光データから導出したデータは、色データ及びセグメンテーションマスクの1つ以上を含む。
【0010】
特定の例では、測光データ、深度データ、及び厚さデータは、切り捨てられた符号付き距離関数(TSDF)モデルであってよいシーンの3次元モデルを更新するために使用され得る。
【0011】
特定の例では、予測モデルはニューラルネットワークアーキテクチャを含む。これは、例えば、入力データに対して関数を近似させて出力データを生成するなど、畳み込みニューラルネットワークに基づいてよい、及び/またはエンコーダ-デコーダアーキテクチャを含み得る。画像データは、カラー画像及び深度マップを含む場合があり、出力画像データは、断面厚さの関連付けられた値を有するピクセルを含むピクセルマップを含む。
【0012】
本発明の第2の態様によれば、画像データを処理するためのシステムが提供され、システムは、画像データを受け取るための入力インタフェース、入力インタフェースで受け取った画像データに存在する1つ以上のオブジェクトの厚さデータを出力するための出力インタフェース、入力データから断面厚さ測定値を予測するための予測モデルであって、複数のオブジェクトの画像データとグラウンドトゥルース厚さ測定値の対に基づいて推定される訓練されたパラメータによってパラメータ化される予測モデル、入力インタフェースで受け取った画像データから予測モデルの入力データを生成するための分解エンジンであって、分解エンジンは、画像データの部分と、画像データに存在すると見なされる1つ以上のオブジェクトとの間の対応を決定するように構成され、各部分は異なるオブジェクトに対応する、分解エンジン、出力インタフェースに出力厚さデータを提供するために予測モデルから複数の予測された断面厚さ測定値を組み立てるための組み立てエンジンと、を含む。
【0013】
特定の例では、画像データは、測光データを含み、分解エンジンは、測光データに基づいてセグメンテーションデータを生成するための画像セグメンテーションエンジンを含み、セグメンテーションデータは、測光データの部分と、画像データに存在すると見なされる1つ以上のオブジェクトとの間の推定された対応を示す。画像セグメンテーションエンジンは、セグメンテーションマスクを予測するための経路を備えたリージョンベースの畳み込みニューラルネットワーク-RCNN-などの、測光データ内のオブジェクト検出するための、及び任意の検出したオブジェクトのためのセグメンテーションマスクを出力するためのニューラルネットワークアーキテクチャを含み得る。
【0014】
特定の例では、分解エンジンは、画像セグメンテーションエンジンから受け取ったバウンディングボックスに基づいて画像データのセクションを切り取るように構成され、画像セグメンテーションエンジンによって検出された各オブジェクトは、異なる関連するバウンディングボックスを有する。
【0015】
特定の例では、画像データは、シーンの測光データ及び深度データを含み、入力データは、測光データから導出したデータ、及び深度データから導出したデータを含み、測光データから導出したデータは、セグメンテーションマスクを含む。
【0016】
特定の例では、予測モデルは、測光データ及び深度データを受け取るための、及びマルチチャネル特徴画像を生成するための入力インタフェース、潜在的表現としてマルチチャネル特徴画像を符号化するためのエンコーダ、及び画素のセットの断面厚さ測定値を生成するために潜在的表現を復号するためのデコーダを含む。
【0017】
特定の例では、入力インタフェースで受け取った画像データは、シーンの1つ以上のビューを含み、システムは、出力インタフェースから出力厚さデータを受け取るため、及び厚さデータを使用して、シーンの3次元モデルの切り捨てられた符号付き距離関数値を決定するためのマッピングシステムを含む。
【0018】
本発明の第3の態様によれば、1つ以上のオブジェクトの断面厚さを推定するためのシステムを訓練することが提供され、方法は、複数のオブジェクトのサンプルを含む訓練データを取得することであって、各サンプルが、画像データ及び複数のオブジェクトの1つの断面厚さデータを含む、取得すること、及び訓練データを使用してシステムの予測モデルを訓練することを含む。この最後の操作は、予測モデルへの入力として、訓練データから画像データを提供すること、及び予測モデルの出力及び訓練データからの断面厚さデータに基づいて、損失関数を最適化することを含み得る。
【0019】
特定の例では、画像データと関連付けられたオブジェクトセグメンテーションデータが取得され、システムの画像セグメンテーションエンジンが訓練され、少なくとも、画像セグメンテーションエンジンへの入力として画像データから導出したデータを提供すること、及び画像セグメンテーションエンジンの出力及びオブジェクトセグメンテーションデータに基づいて損失関数を最適化することを含む。特定の例では、各サンプルは、測光データ及び深度データを含み、予測モデルを訓練することは、予測モードへの入力として、測光データから導出したデータ及び深度データから導出したデータを提供することを含む。各サンプルは、カラー画像及びセグメンテーションマスク、深度画像、ならびにオブジェクトの厚さレンダリングの少なくとも1つを含み得る。
【0020】
本発明の第4の態様によれば、訓練セットを生成する方法が提供され、訓練セットは、1つ以上のオブジェクトの断面厚さを推定するためのシステムを訓練するために使用可能であり、方法は、複数のオブジェクトの各オブジェクトについて、オブジェクトの画像データを取得することであって、画像データは、複数のピクセルの少なくとも測光データを含む、取得することと、オブジェクトの3次元表現を取得することと、オブジェクトの断面厚さデータを生成することであって、オブジェクトの第1の表面への第1の距離及びオブジェクトの第2の表面への第2の距離を決定するために、3次元表現にレイトレーシングを適用することであって、第1の表面が第2の表面よりもレイトレーシングのための起点により近い、適用することと、第1の距離と第2の距離の差に基づいてオブジェクトの断面厚さ測定値を決定することと、を含み、レイトレーシング及び断面厚さ測定値の決定することが、オブジェクトの断面厚さデータを生成するために複数のピクセルに対応するピクセルのセットに対して繰り返され、断面厚さデータが、断面厚さ測定値を含み、取得した画像データに対応する、生成することと、オブジェクトの入力データ及びグラウンドトゥルース出力データのサンプルを生成することであって、入力データが画像データを含み、グラウンドトゥルース出力データが断面厚さデータを含む、生成することとを含む。
【0021】
特定の例では、方法は、合成訓練データの追加のサンプルを生成するために、複数のオブジェクトの画像データ及び3次元表現を使用することを含む。画像データは、複数のピクセルの測光データ及び深度データを含み得る。
【0022】
本発明の第5の態様によれば、色データ及び深度データを含むビデオデータのフレームを提供するための少なくとも1つのキャプチャデバイス、入力インタフェースが少なくとも1つのキャプチャデバイスに通信可能に結合される、上記例のいずれか1つに記載のシステム、ロボットデバイスが周辺の3次元環境とインタラクションすることを可能にする1つ以上のアクチュエータ、及び1つ以上のアクチュエータを制御するための少なくとも1つのプロセッサを含むインタラクションエンジンを含むロボットデバイスが提供され、インタラクションエンジンは、周辺の3次元環境のオブジェクトとインタラクションするためにシステムの出力インタフェースから出力画像データを使用するためである。
【0023】
本発明の第6の態様によれば、プロセッサによる実行時に、コンピューティングデバイスに上述の方法のいずれかを実行させるコンピュータ実行命令を含む非一時的なコンピュータ可読記憶媒体が提供される。
【0024】
本発明のさらなる特徴及び利点は、添付の図面を参照して作成された、例としてのみ与えられた、本発明の好ましい実施形態の以下の説明から明らかになるであろう。
【図面の簡単な説明】
【0025】
図1A】3次元(3D)空間の例を示す概略図である。
図1B】3次元空間の例のオブジェクトの利用可能な自由度を示す概略図である。
図1C】例示的なキャプチャデバイスによって生成された画像データを示す概略図である。
図2】一例による画像データを処理するためのシステムの概略図である。
図3A】一例による、キャプチャデバイスによって観察されているオブジェクトのセットを示す概略図である。
図3B】一例による、分解エンジンのコンポーネントを示す概略図である。
図4】一例による、予測モデルを示す概略図である。
図5】一例を使用して取得された厚さ測定値を、比較方法から生じる厚さ測定値と比較するプロットである。
図6】1つ以上のオブジェクトの断面厚さを推定するための例示的なシステムのための訓練セットの特定の要素を示す概略図である。
図7】一例による、オブジェクトの切り捨てられた符号付き距離関数値のセットを示す概略図である。
図8】一例による、オブジェクトインスタンスのマップを生成するためのシステムのコンポーネントを示す概略図である。
図9】一例による、画像データを処理する方法を示す流れ図である。
図10】一例による、画像を分解する方法を示す流れ図である。
図11】一例による、1つ以上のオブジェクトの断面厚さを推定するためのシステムを訓練する方法を示す流れ図である。
図12】一例による、訓練セットを生成する方法を示す流れ図である。
図13】一例による、非一時的なコンピュータ可読媒体を示す概略図である。
【発明を実施するための形態】
【0026】
本明細書に説明する特定の例は、画像データで特徴となる1つ以上のオブジェクトの断面厚さ測定値のセットを生成するために画像データを処理する。これらの厚さ測定値は、厚さマップまたは画像として出力され得る。この場合、ピクセルなどのマップまたは画像の要素は、断面厚さ測定値を示す値を有する場合がある。マップまたは画像の要素が検出されたオブジェクトに関連すると見なされる場合、断面厚さ測定値が提供され得る。
【0027】
本明細書に説明する特定の例は、例えば、色データまたはグレースケールデータなど、測光データ及び/または深度データに適用され得る。これらの例によって、厚さについてのオブジェクトレベルの予測を生成することが可能になり、これらの予測は、次に容積測定マルチビュー融合プロセスに統合され得る。断面厚さは、本明細書に説明するように、オブジェクトの前面からオブジェクトの背面へのソリッドオブジェクトの深度または厚さの測定値であると見なし得る。ピクセルなどの画像の所与の要素の場合、画像を生成するためにオブジェクトを観察するキャプチャデバイスによって発せられるまたは受光される仮設上の光線によって経験されるように、断面厚さ測定値は、オブジェクトの前面からオブジェクトの背面への(例えば、メートルまたはセンチメートル単位の)距離を示し得る。
【0028】
訓練された予測モデルを使用して厚さ予測を行うことによって、特定の例は、検知された画像データのセットを超えて拡張する形状情報を生成することを可能にする。この形状情報は、ロボット操作タスクまたは効率的なシーン探索に使用し得る。3次元計算または容積測定計算を行うのではなく、オブジェクトの厚さを予測することによって、利用可能なメモリリソース及び/または訓練データ要件を使い果たすことなく、比較的に高い空間分解能の推定値を生成し得る。特定の例は、オブジェクト厚さを正確に予測する、及び/または複数のオブジェクトを含む一般的な3次元シーンを再構築するために使用し得る。特定の例は、このようにして、詳細な3次元再構築を提供するために、ロボット工学、拡張現実、及び仮想現実の分野で利用し得る。
【0029】
図1A及び図1Bは、3次元空間、及びその空間と関連付けられた画像データのキャプチャの例を概略で示す。図1Cは、次に空間を見ているとき、つまりシーンを見ているときに画像データを生成するように構成されたキャプチャデバイスを示す。これらの例は、本明細書に説明する特定の特徴をより良く説明するために提示されており、限定的と見なされるべきではなく、特定の特徴は、説明を容易にするために省略され、簡略化されている。
【0030】
図1Aは、3次元空間110の例100を示す。3次元空間110は、例えば部屋または地理的な位置の少なくとも一部分など、内部の及び/または外部の物理的空間であってよい。本例100の3次元空間110は、3次元空間内に位置するいくつかの物理オブジェクト115を含む。これらのオブジェクト115は、とりわけ、人、電子機器、家具、動物、建物の部分、及び設備の1つ以上を含む場合がある。図1Aの3次元空間110は、より低い表面を有すると示されているが、これはすべての実施態様でそうである必要はなく、例えば環境は気中空間または地球外の空間内である場合がある。
【0031】
また、例100は、3次元空間110と関連付けられた画像データをキャプチャするために使用し得る多様な例示的なキャプチャデバイス120-A、120-B、120-C(集合的に参照番号120で参照される)も示す。キャプチャデバイスは、静止画像をキャプチャするように配置されてよく、例えば静止カメラであってよい、及び/または動画をキャプチャするように配置されてよく、例えば画像データがビデオデータのフレームの形でキャプチャされるビデオカメラであってよい。図1Aのキャプチャデバイス120-Aなどのキャプチャデバイスは、デジタル形式またはアナログ形式のどちらかで3次元空間110を観察することから生じるデータを記録するように配置されたカメラを含み得る。特定の場合、キャプチャデバイス120-Aは移動可能であり、例えば3次元空間110の異なる観察された部分に対応する異なる画像をキャプチャするように配置され得る。一般的に、3次元空間110内のオブジェクトの配置は、本明細書では「シーン」と呼ばれ、画像データは、そのシーンの「ビュー」を含み得、例えば、キャプチャされた画像またはビデオデータのフレームは、3次元空間110の、その空間内のオブジェクト115を含む環境の観察を含み得る。キャプチャデバイス120-Aは、静止した台に対して移動可能であってよく、例えば3次元空間110に対してカメラの位置及び/または向きを変更するためのアクチュエータを含み得る。別の場合、キャプチャデバイス120-Aは、人間のユーザーが操作し、移動させるハンドヘルドデバイスであってよい。
【0032】
図1Aで、複数のキャプチャデバイス120-B、120-Cも、3次元空間110内で移動するように配置されたロボットデバイス130に結合されて示されている。ロボットデバイス135は、自律空中デバイス及び/または地上モバイルデバイスを含む場合がある。この例100では、ロボットデバイス130は、デバイスが3次元空間110をナビゲートすることを可能にするアクチュエータ135を含む。これらのアクチュエータ135は、図では車輪を含み、他の場合、アクチュエータは、トラック、穴掘り機構、ロータなどを含み得る。1つ以上のキャプチャデバイス120-B、120-Cは、そのようなデバイスに静的にまたは移動可能に取り付けられ得る。特定の場合、ロボットデバイスは、3次元空間110内で静的に取り付けられ得るが、アームまたは他のアクチュエータなどのデバイスの一部分は、空間内で移動し、空間内のオブジェクトとインタラクションするように配置され得る。例えば、ロボットデバイスは、ロボットアームを含む場合がある。各キャプチャデバイス120-B、120-Cは、異なるタイプのビデオデータをキャプチャし得る、及び/またはステレオ画像ソースを含み得る。1つの場合、キャプチャデバイス120-Bは、例えば赤外線、超音波、及び/またはレーダー(光による検知及び測距-LIDAR技術を含む)などの遠隔検知技術を使用して深度データをキャプチャし得る。一方、キャプチャデバイス120-Cは、例えばカラー画像またはグレースケール画像などの測光データをキャプチャする(または逆もまた同様である)。1つの場合、キャプチャデバイス120-B、120-Cの1つ以上は、ロボットデバイス130とは関係なく移動可能であってよい。1つの場合、キャプチャデバイス120-B、120-Cの1つ以上は、例えば斜めの弧で回転する、及び/または360度回転する回転機構に取り付けられてよい、及び/またはシーンのパノラマ(例えば、最大で完全な360度のパノラマ)をキャプチャするために適合された光学系と共に配置される。
【0033】
図1Bは、キャプチャデバイス120及び/またはロボットデバイス130が利用可能な考えられる自由度の例140を示す。120-Aなどのキャプチャデバイスの場合、デバイスの方向150は、レンズまたは他の撮像装置の軸と同一直線上にあってよい。3つの軸の1つの周りの回転の例として、垂直軸155が図に示されている。同様に、ロボットデバイス130の場合、ロボットデバイス130のアライメント145の方向が定義され得る。これは、ロボットデバイスの向き及び/または移動の方向を示す場合がある。垂直軸155も示されている。キャプチャデバイス120またはロボットデバイス130に関しては単一の垂直軸しか示されていないが、これらのデバイスは、以下に説明するように140として概略で示されている軸の任意の1つ以上の周りを回転し得る。
【0034】
より一般的には、キャプチャデバイスの向き及び場所は、6自由度(6DOF)に対して3次元で定義され得る。つまり、場所は、例えば、[x、y、z]座標によって3次元の各々の中で画定され得、向きは、3つの軸、例えば、[θ、θ、θ]の各々の周りの回転を表す角度ベクトルによって定義され得る。場所及び向きは、例えば3次元座標系内に画定された起点に対して、3次元内の変換として見なし得る。例えば、[x、y、z]座標は、起点から3次元座標系内の特定の場所への移動を表す場合があり、角度ベクトル-[θ、θ、θ]-は、3次元座標系内の回転を定義し得る。6DOFを有する変換は行列として定義され得、その結果、行列による乗算は変換を適用する。特定の実施態様では、キャプチャデバイスは、これらの6自由度の制限されたセットに関して定義され得、例えば地上車両上のキャプチャデバイスの場合、y次元は一定であってよい。ロボットデバイス130の実施態様などの特定の実施態様では、別のデバイスに結合されたキャプチャデバイスの向き及び場所は、その別のデバイスの向き及び場所に関して定義され得、例えば、ロボットデバイス130の向き及び場所に関して定義され得る。
【0035】
本明細書に説明する例では、例えば、6DOF変換行列で説明されるキャプチャデバイスの向き及び場所は、キャプチャデバイスのポーズとして定義され得る。同様に、例えば、6DOF変換行列で説明されるオブジェクト表現の向き及び場所は、オブジェクト表現のポーズとして定義され得る。キャプチャデバイスのポーズは、経時的に変化する場合があり、例えば、ビデオデータが記録されると、その結果、キャプチャデバイスは、時間t+1で、時間tとは異なるポーズを有し得る。キャプチャデバイスを含むハンドヘルドモバイルコンピューティングデバイスの場合、ポーズは、ハンドヘルドデバイスが、3次元空間110内でユーザーによって動かされるにつれ、変化する場合がある。
【0036】
図1Cは、キャプチャデバイス構成の例を概略で示す。図1Cの例160で、キャプチャデバイス165は、画像データ170を生成するように構成される。特定の場合、キャプチャデバイス165は、電荷結合素子または相補型金属酸化膜半導体(CMOS)センサからデータを読み取る及び/または処理するデジタルカメラを含み得る。また、例えばアナログ信号ソースを変換するなど、他の画像ソースを処理することによって画像データ170を間接的に生成することも可能である。
【0037】
図1Cでは、画像データ170は、測定されたデータの2次元表現を含む。例えば、画像データ170は、時間tで記録されたピクセル値の2次元配列または2次元マトリックスを含み得る。ビデオカメラからの連続するフレームなどの連続する画像データは、同じサイズである場合がある。ただし、これはすべての例でそうである必要はない。画像データ170内のピクセル値は、3次元空間の特定の部分の測定値を表す。
【0038】
図1Cの例では、画像データ170は、2つの異なる形式の画像データの値を含む。値の第1のセットは、深度データ180(例えば、D)に関連する。深度データは、キャプチャデバイスからの距離の表示を含み得、例えば、各ピクセルまたは画素の値は、3次元空間の一部分のキャプチャデバイス165からの距離を表し得る。値の第2のセットは、測光データ185(例えば、色データC)に関連する。これらの値は、所与の解像度の赤、緑、青のピクセル値を含む場合がある。他の例では、他の色空間が使用される場合がある、及び/または測光データ185が、モノピクセル値またはグレースケールピクセル値を含む場合がある。ある場合、画像データ170は、圧縮されたビデオストリームまたはファイルを含む場合がある。この場合、画像データは、例えばビデオデコーダの出力としてストリームまたはファイルから再構築され得る。画像データは、ビデオストリームまたはファイルの前処理に続いて記憶場所から取り出し得る。
【0039】
図1Cのキャプチャデバイス165は、RGBデータ185及び深度(「D」)データ180の両方をキャプチャするように配置された、いわゆるRGB-Dカメラを含み得る。ある場合、RGB-Dカメラは、経時的にビデオデータをキャプチャするように配置され得る。深度データ180及びRGBデータ185の1つ以上は、どの時点においても使用し得る。特定の場合、RGB-Dデータは、4つ以上のチャネルを有する単一のフレームで結合される場合がある。深度データ180は、赤外線レーザープロジェクタが、赤外光のパターンを3次元空間の観察部分の上に投影し、それが次に白黒CMOS画像センサによって撮像される、構造化光手法などの当該技術で既知の1つ以上の技術によって生成され得る。これらのカメラの例は、United States of AmericaのWashington、RedmondのMicrosoft Corporation製造のKinect(登録商標)カメラレンジ、Taiwan、TaipeiのASUSTeK Computer Inc.製造のXtion(登録商標)カメラレンジ、及びUnited States of AmericaのCalifornia、CupertinoのApple Inc.の子会社、PrimeSense製造のCarmine(登録商標)カメラレンジを含む。特定の例では、RGB-Dカメラは、タブレット、ラップトップ、または携帯電話などのモバイルコンピューティングデバイスの中に組み込み得る。他の例では、RGB-Dカメラは、静的コンピューティングデバイス用の周辺機器として使用される場合もあれば、専用の処理機能を備えたスタンドアロンデバイスに埋め込まれる場合もある。1つの場合、キャプチャデバイス165は、結合されたデータストレージデバイスに画像データ170を格納するように配置され得る。別の場合、キャプチャデバイス165は、例えばデータのストリームとして、またはフレーム単位で画像データ170を結合されたコンピューティングデバイスに送信し得る。結合されたコンピューティングデバイスは、例えば、ユニバーサルシリアルバス(USB)接続を介してなど、直接的に結合される場合もあれば、間接的に結合される場合もあり、例えば、画像データ170は、1つ以上のコンピュータネットワークを介して送信され得る。さらに別の場合、キャプチャデバイス165は、ネットワークアタッチドストレージデバイスでの格納のために1つ以上のコンピュータネットワーク全体で画像データ170を送信するように構成され得る。画像データ170は、フレーム単位で、または例えば、複数のフレームを互いにバンドルし得るなど、バッチ単位で格納及び/または送信され得る。深度データ180は、測光データ185と同じ解像度またはフレームレートである必要はない。例えば、深度データ180は測光データ185よりも低い解像度で測定され得る。また、1つ以上の前処理操作は、画像データ170が以下に説明する例で使用される前に画像データ170に対して実行される場合がある。1つの場合、前処理は、2つの画像セットが共通のサイズ及び解像度を有するように適用され得る。特定の場合、別々のキャプチャデバイスが、それぞれ深度データ及び測光データを生成し得る。本明細書に説明しないさらなる構成も可能である。
【0040】
特定の場合、キャプチャデバイスは、深度データを生成するために前処理を実行するように配置され得る。例えば、ハードウェア検知デバイスは、相違データまたは複数の立体画像の形をとるデータを生成し得、ソフトウェア及びハードウェアの1つ以上は、このデータを処理して深度情報を計算するために使用される。同様に、深度データは、代わりに、深度情報を再構築するために使用し得る位相画像を出力する飛行時間カメラから生じる場合もある。したがって、本明細書の例で説明するように、深度カメラを生成するために、任意の適切な技術を使用し得る。
【0041】
図1Cは一例として提供され、理解されるように、図に示す構成とは異なる構成が、以下に示す方法及びシステムで使用するための画像データ170を生成するために使用され得る。画像データ170は、3次元空間のキャプチャまたは記録されたビューを表す2次元形式で配置される任意の測定された感覚入力をさらに含み得る。例えば、これは、とりわけ深度データまたは測光データ、電磁波イメージング、超音波イメージング、及びレーダー出力の1つだけを含み得る。これらの場合、例えば、深度データのないRGBデバイスなど、特定の形式のデータと関連付けられた撮像デバイスだけが必要とされる場合がある。上記の例では、深度データDは、深度値の2次元マトリックスを含み得る。これは、グレースケール画像として表される場合があり、例えばxR1かけるyR1の解像度を有するフレーム内の各[x、y]ピクセル値は、3次元空間の表面のキャプチャデバイスからの距離を表す深度値dを含む。同様に、測光データCはカラー画像を含み得、xR2かけるyR2の解像度を有するフレームの各[x、y]ピクセル値は、RGBベクトル[R、G、B]を含む。一例として、データの両方のセットの解像度は、640x480ピクセルである場合がある。
【0042】
図2は、一例に従って画像データを処理するためのシステム205の一例200を示す。図2のシステム205は、入力インタフェース210、分解エンジン215、予測モデル220、組み立てエンジン225、及び出力インタフェース230を含む。システム205、及び/または示されているシステムコンポーネントの1つ以上は、本明細書に説明するデータを処理するために少なくとも1つのプロセッサを含み得る。システム205は、例えば、特定用途向け集積回路(ASIC)またはフィールドプログラマブルゲートアレイ(FPGA)など、プロセッサを有する専用集積回路によって実装された画像処理デバイスを含み得る。さらに、及び/または代わりに、システム205は、1つ以上の中央演算処理装置及び/またはグラフィックスプロセッシングユニットなど、1つ以上の汎用プロセッサを含む画像処理のために適合されたコンピューティングデバイスを含み得る。システム205のプロセッサ及び/またはシステムのコンポーネントは、1つ以上の処理コアを有し得、処理はコアにわたって分散される。各システムコンポーネント210~230は、例えばデータを送信及び受信するための外部インタフェースを有する別個の電子コンポーネントとして実装される場合がある、及び/または共通のコンピューティングシステムの一部を形成する場合もある(例えば、1つ以上のコンポーネントのプロセッサは、コンピューティングデバイスの1つ以上のプロセッサの共通セットの一部を形成し得る)。システム205、及び/または示されているシステムコンポーネントの1つ以上は、プロセッサによる実行のためにコンピュータプログラムコードを格納して、本明細書に説明する機能を提供するために関連するメモリ及び/または永久記憶媒体を含み得る。
【0043】
使用中、図2のシステム205は、入力インタフェースで画像データ235を受け取る。入力インタフェース210は、ネットワーキングまたはコンピューティングデバイスの入出力インタフェースなどの物理インタフェース、及び/または例えば、1つ以上のプロセッサによって実装される仮想インタフェースなどのソフトウェア定義インタフェースを含み得る。後者の場合、入力インタフェース210は、アプリケーションプログラミングインタフェース(API)、クラスインタフェース、及び/または方法インタフェースを含み得る。1つの場合、入力インタフェース210は、システム205のメモリまたはストレージデバイスから取り出された画像データ235を受け取る場合がある。別の場合、画像データ235は、ネットワークまたはシリアルバス接続などの他の通信チャネルを介して受け取られる場合がある。入力インタフェース210は、有線及び/または無線インタフェースであってよい。画像データ235は、図1Cに示すように、画像データ170を含み得る。例えば、環境の特定の部分を指すために方向を合わせられるとき、環境内でキャプチャデバイスによってキャプチャされる画像データなど、画像データ235はシーン240のビューを表す。キャプチャデバイスは、自律ロボットデバイス内でなど、システム205の一部を形成し得る、及び/またはシステム205に通信可能に結合された別個のデバイスを含み得る。1つの場合、画像データ235は、以前のある時点でキャプチャされ、後の取り出しのために記憶媒体に格納された画像データを含む場合がある。画像データ235は、キャプチャデバイスから受け取られた画像データ、及び/またはキャプチャデバイスから受け取られた画像データの前処理から生じた画像データ235を含む場合がある。特定の場合、前処理操作は、入力インタフェース210及び分解エンジン210の1つ以上を介して分散され得、例えば、入力インタフェース210は、特定の実装構成のために、画像データを正規化する、切り取る、及び/またはスケーリングするように構成され得る。
【0044】
システム205は、画像データ235を処理し、出力インタフェース230を介して、入力インタフェース235で受け取る画像データ235に存在する1つ以上のオブジェクトの出力厚さデータ245を出力するように配置される。厚さデータ245は、入力画像データ235に対応するために出力され得る。例えば、入力画像データ235が所与の解像度で測光データ及び深度データの1つ以上(例えば、高さ及び幅をピクセル単位で有する1つ以上の画像)を含む場合、厚さデータ245は、同じ高さ及び幅の「グレースケール」画像の形をとってよく、画像のピクセル値は予測された断面厚さ測定値を表す。他の場合、厚さデータ245は、例えば削減された解像度の、及び/または元の画像データ235の特定の部分のであるなど、入力画像データ235のスケーリングされたバージョンである「画像」として出力され得る。特定の場合、システム205によって1つ以上のオブジェクトと関連付けられていると判断されていない画像データ235の領域は、例えば、「0」または特殊な制御値など、出力厚さデータ245の特定の値を有する場合がある。図2の250などの画像として見ると、厚さデータ245は、X線画像に似ている場合がある。したがって、システム205は、合成X線装置の1つの形と見なし得る。
【0045】
入力インタフェース210での画像データ235の受け取りに続いて、入力インタフェース210の出力は、分解エンジン215によって受け取られる。分解エンジン215は、予測モデル220の入力データ255を生成構成される。分解エンジン215は、入力データ255を生成するために入力インタフェース210から受け取った画像データを分解するように構成される。画像データをオブジェクト中心部分に分解すると、予測モデル220の扱いやすさが改善され、厚さ予測を並行して生成することが可能になり、リアルタイムまたはリアルタイムに近い操作が容易になる。
【0046】
分解エンジン215は、画像データの部分と、画像データに存在すると見なされる1つ以上のオブジェクトとの間の対応を決定することによって入力インタフェース210から受け取った画像データを分解する。1つの場合、分解エンジン215は、例えば画像セグメンテーションエンジンを適用してセグメンテーションデータを生成することによってなど、画像データの1つ以上のオブジェクトを検出することによって対応を決定し得る。他の場合、分解エンジン215は、受け取った画像データの一部として、同様に画像データ235の一部を形成し得るセグメンテーションデータを受け取ってよい。対応は、特定の検出したオブジェクト(例えば、セグメンテーションマスク)に対応すると見なされる画像データのピクセルを表す画像マスク、及び検出したオブジェクトを含むと見なされる多角形を示すバウンディングボックスの1つ以上を含み得る。対応は、画像データを切り取って、各検出したオブジェクトに関連する画像データの部分を抽出するために使用され得る。例えば、入力データ255は、図2に示すように、各検出したオブジェクトの元の入力画像データのサブ領域を含む場合がある。特定の場合、分解エンジン215は、予測を容易にするために、例えばセグメンテーションデータを使用し、画像データの部分の背景をさらに削除し得る。画像データ235が測光データ及び深度データを含む場合、次に、入力データは、例えば、入力画像データ235の幅及び/または高さに満たない幅及び/または高さを有する画像データの切り取った部分など、各検出したオブジェクトと関連付けられた測光データ及び深度データを含み得る。特定の場合、測光データは、色データ(例えば、RGBデータ)及びセグメンテーションに続いて出力されたセグメンテーションマスク(例えば、「シルエット」)の1つ以上を含み得る。特定の場合、入力データ255は、各検出したオブジェクトの測光データと深度データの両方のより小さい画像を表すアレイを含み得る。予測モデル220の構成に応じて、入力データ255は、各オブジェクトの単一の多次元配列、または各オブジェクトの複数の別々の2次元配列を含み得る(例えば、両方の場合、複数の2次元配列は、それぞれ、セグメンテーションマスク出力及びRGBD-赤、緑、青、及び深度データの1つ以上から異なる入力チャネルを表し得る)。
【0047】
図2では、予測モデル220は、分解エンジン215によって準備された入力データ255を受け取る。予測モデル220は、入力データ255から断面厚さ測定値260を予測するように構成される。例えば、予測モデル220は、数値入力として各オブジェクトに関連する測光データ及び深度データのセットを受け取り、断面厚さ測定値を表す1つ以上の画素の数値出力を予測するように構成され得る。1つの場合、予測モデル220は、厚さ測定値を表す数値のアレイを出力し得る。このアレイは、アレイの要素が画像部分のピクセル値に対応し、ピクセル値が予測された厚さ測定値を表す画像部分を含み得る、または画像部分にフォーマットされ得る。1つの場合、断面厚さ測定値260は、例えば1対1でまたはスケーリングされた方法で入力データ255の画素に対応し得る。
【0048】
予測モデル220は、画像データ及び複数のオブジェクトのグラウンドトゥルース厚さ測定値の対に基づいて推定される訓練されたパラメータのセットによってパラメータ化される。例えば、後の例に説明するように、予測モデル220は、オブジェクトの測光データ及び深度データのセットを入力として供給し、対応する厚さ測定値のセットを予測し、次にこれらの厚さ測定値をグラウンドトゥルース厚さ測定値と比較することによって訓練され得、比較からの誤差は、パラメータ値を最適化するために使用され得る。1つの場合、予測モデル220は、ニューラルネットワークアーキテクチャなど、機械学習モデルを含み得る。この場合、誤差は、アーキテクチャを通して逆誤差伝搬される場合があり、最適化したパラメータ値のセットは、勾配降下などを適用することによって決定され得る。他の場合、予測モデルは、ベイズ予測ネットワークなどの確率モデルを含み得る。
【0049】
図2に戻ると、予測モデル220によって出力された断面厚さ測定値260は、組み立てエンジン225によって受け取られる。組み立てエンジン225は、予測モデル220から複数の予測された断面厚さ測定値260を組み立てて、出力インタフェース230に出力厚さデータ245を提供するように構成される。例えば、予測された断面厚さ測定値260は、複数の別々の画像部分の形で組み立てエンジン225に供給され得、組み立てエンジン225は、これらの別々の画像部分を受け取り、入力画像データ235に対応する単一の画像を再構築する。1つの場合、組み立てエンジン225は、(例えば、同じバージョンまたはスケーリングされたバージョンである)入力画像データ235の寸法に一致する寸法を有する「グレースケール」画像を生成し得る。組み立てエンジン225は、追加チャネルとして元の画像データ235と結合され得る形で厚さデータ245を生成し得る。例えば、組み立てエンジン225または出力インタフェース230は、「厚さ」チャネル(「T」)を入力画像データ235の既存のRGBDチャネルに追加するように構成され得、その結果、出力インタフェース230によって出力されるデータは、RGBDTデータ(例えば、画像内のピクセルがチャネルの各々の値を有するRGBDT「画像」)を含む。
【0050】
図2のシステム205の出力は、いくつかの異なるアプリケーションで役に立つ場合がある。例えば、厚さデータ245は、3次元空間のマッピングを改善するために使用され得、グラブ操作または把持操作を改善するためにロボットデバイスによって使用され得、またはさらなる機械学習システムのための強化された入力として使用され得る。
【0051】
1つの場合、システム205は、マッピングシステムを含み得る、またはマッピングシステムの一部を形成し得る。マッピングシステムは、出力インタフェース230から出力厚さデータ245を受け取り、シーンの3次元モデルの切り捨てられた符号付き距離関数値を決定するために厚さデータ245を使用するように構成され得る。例えば、マッピングシステムは、入力として、(例えば、DTまたはRGBDTチャネル画像の形の)深度データ及び厚さデータ245を採取し、内因性及び外因性のカメラパラメータと共に、3次元ボクセルグリッド内のシーンを表すボリュームの表現を出力し得る。例示的なマッピングシステムは、図8に関して詳細に後述する。
【0052】
図3Aは、キャプチャデバイス320によって観察されているオブジェクトのセット310の例を示している。例では、3つのオブジェクト315-A、315-B、及び315-Cがある。オブジェクトのセット310は、シーン300の一部を形成し、例えば、オブジェクトは、テーブルまたは他の表面上のオブジェクトのセットを含む場合がある。本例は、キャプチャデバイス320によってキャプチャされる1つ以上の画像からオブジェクト315の断面厚さ測定値を推定することができる。
【0053】
図3Bは、図2の分解エンジン215を実装するために特定の例で使用し得る例示的なコンポーネント330のセットを示している。図3Bが1つの例にすぎず、図2の分解エンジン215を実装するために、図3Bに示すコンポーネント以外のコンポーネントを使用し得ることに留意されたい。例示的なコンポーネント330のセットは、画像セグメンテーションエンジン340を含む。画像セグメンテーションエンジン340は、測光データ345を受け取るように構成される。測光データ345は、上述のように、図3Aのキャプチャデバイス320によってキャプチャされた画像、及び/またはそのような画像から導出したデータを含み得る。1つの場合、測光データ345は、複数のピクセルのRGBデータを含み得る。画像セグメンテーションエンジン340は、測光データ345に基づいてセグメンテーションデータ350を生成するように構成される。セグメンテーションデータ350は、測光データ345の部分と、画像データに存在すると見なされる1つ以上のオブジェクトとの間の推定された対応を示す。図3Bの測光データ345が図3Aに示すオブジェクトのセット310の画像として解釈される場合、次に、画像セグメンテーションエンジン340は、オブジェクト315の1つ以上を検出し得る。図3Bには、オブジェクト315-Aに対応するセグメンテーションデータ350が示されている。これは、オブジェクト315-B及び315-Cの検出された存在もカバーするセグメンテーションデータのセットの一部を形成し得る。特定の場合、シーン内に存在するすべてのオブジェクトを検出し得るわけではなく、例えば、オクルージョンが、オブジェクト315-Cを検出するのを妨げる場合がある。また、キャプチャデバイスがシーン内で移動するにつれ、異なるオブジェクトが検出され得る。本例は、そのような「ノイズの多い」環境で機能することができる。例えば、分解及び予測によって、シーン内で検出されたオブジェクトの数と無関係に、厚さ測定値を生成することを可能にする。
【0054】
図3Bでは、検出したオブジェクト315-Aのセグメンテーションデータ350は、セグメンテーションマスク355及びバウンディングボックス360を含む。他の例では、セグメンテーションマスク355及びバウンディングボックス360の1つだけ、または異なる形のオブジェクト識別が出力される場合がある。セグメンテーションマスク355は、元の測光データ345からのピクセルのサブセットに適用されるラベルを含み得る。1つの場合、セグメンテーションマスク355は、検出したオブジェクトに対応するピクセルが「1」の値を有し、検出したオブジェクトに関連しないピクセルが「0」の値を有するバイナリマスクであってよい。異なる形のマスキング及びマスキングデータフォーマットを適用し得る。さらに別の場合、画像セグメンテーションエンジン340は、測光データ345のピクセルの値を出力してよく、値は、考えられる検出したオブジェクトを示す。例えば、「0」の値を有するピクセルは、オブジェクトがそのピクセルと関連付けられていると見なされないことを示し得、一方、「6」の値を有するピクセルは、リストまたはルックアップテーブルの6番目のオブジェクトがそのピクセルと関連付けられていると見なされることを示し得る。したがって、セグメンテーションデータ350は、一連の単一のチャネル(例えば、バイナリ)画像及び/または単一の多値画像を含み得る。バウンディングボックス360は、特定のオブジェクトと関連付けられたピクセルを取り囲むと見なされる矩形などの多角形を含み得る。バウンディングボックス360は、バウンディングボックス360の角を示す座標のセットとして別個に出力される場合がある、及び/または画像セグメンテーションエンジン340によって出力された任意の画像データに示される場合がある。画像セグメンテーションエンジン340によって検出された各オブジェクトは、異なるセグメンテーションマスク355及び異なる関連するバウンディングボックス360を有し得る。
【0055】
セグメンテーションデータ350の構成は、実施態様に応じて変わる場合がある。1つの場合、セグメンテーションデータ350は、入力測光データと同じ解像度である画像を含み得(例えば、グレースケール画像を含み得)る。特定の場合、追加のデータも、画像セグメンテーションエンジン340によって出力され得る。1つの場合、画像セグメンテーションエンジン340は、例えば、ピクセルがオブジェクトと関連付けられる確率など、検出したオブジェクトの信用または確率を示す信用値を出力するように配置され得る。特定の場合、画像セグメンテーションエンジン340は、代わりにまたはさらに、検出したオブジェクトが、(例えば、文字列ラベルによって示されるように)特定のセマンティッククラスと関連付けられる確率を出力し得る。例えば、画像セグメンテーションエンジン340は、オブジェクトが「カップ」である88%の確率、オブジェクトが「水差し」である10%の確率、及びオブジェクトが「オレンジ」である2%の確率を出力し得る。1つ以上の閾値は、ピクセルまたは画像領域などの特定の画素が、特定のオブジェクトと関連付けられることを示す前に、画像セグメンテーションエンジン340によって適用され得る。
【0056】
特定の例では、画像セグメンテーションエンジン340は、監視された(つまり、ラベルを付けられた)データに関して訓練される、畳み込みニューラルネットワークアーキテクチャなどのニューラルネットワークアーキテクチャを含む。監視されたデータは、オブジェクトのセットの画像とセグメンテーションマスクの対を含み得る。畳み込みニューラルネットワークアーキテクチャは、例えば、複数の層を含むいわゆる「ディープ」ニューラルネットワークであってよい。オブジェクト認識パイプラインは、セグメンテーションマスクを予測するための経路を備えた、リージョンベースの畳み込みニューラルネットワーク-RCNN-を含み得る。マスク出力を含むRCNNの例示的な構成は、International Conference on Computer Vision (ICCV)、2017(1,5)-(該当する場合に参照により組み込まれる)の会議記録に公開された-論文「Mask R-CNN」にK. He et al.によって説明されている。異なるアーキテクチャは、それらが開発されると(「プラグイン」式で)使用され得る。
【0057】
特定の場合、画面セグメンテーションエンジン340は、オブジェクトが存在する(例えば、オブジェクト存在の閾値自体が超えられている)と判断されるが、オブジェクトのタイプまたはセマンティッククラスを決定することが可能ではない(例えば、クラスまたはラベルの確率はすべて所与の閾値以下である)場合に、セグメンテーションマスクを出力し得る。本明細書に説明する例は、たとえ何がオブジェクトであるのかを判断することが不可能である場合も、セグメンテーションマスクを使用できる場合があり、「ある」オブジェクトの範囲の表示は、予測モデルの入力データを生成することを可能にするために適している。
【0058】
図3Bに戻ると、セグメンテーションデータ350は、入力データジェネレータ370によって受け取られる。入力データジェネレータ370は、例えば図2の予測モデル220などの予測モデルのための入力データ380として使用され得る画像データの部分を生成するために、測光データ345及び深度データ375と共に、セグメンテーションデータ350を処理するように構成される。入力データジェネレータ370は、バウンディングボックス360を使用して、測光データ345及び深度データ375を切り取るように構成されてよい。1つの場合、セグメンテーションマスク355は、測光データ345及び深度データ375から背景を削除するために使用され得、例えば、その結果オブジェクトピクセルと関連付けられたデータだけが残る。深度データ375は、同じ画像データの測光チャネルからの測光データ345に対応する入力画像データの深度チャネルからのデータを含み得る。深度データ375は、測光データ345と同じ解像度で格納される場合もあれば、スケーリングされるか、もしくは別な方法で処理されて、予測モデルのための入力データ380を形成する測光データ385及び深度データ390の対応する切り取られた部分を生じさせる場合もある。特定の場合、測光データは、バウンディングボックス360を使用して切り取られたセグメンテーションマスク355、及びバウンダリーボックスを使用して切り取られた元の測光データ345の1つ以上を含む場合がある。元の測光データ345なしで、セグメンテーションマスク355を入力として使用すると、訓練は簡素化され、予測速度は加速され得る。一方、元の測光データ345を使用すると、色情報を使用して厚さを予測することが可能になる。
【0059】
特定の場合、測光データ345及び/または深度データ375は、画像セグメンテーションエンジン340の本来の解像度に再スケーリングされ得る。同様に、特定の場合、画像セグメンテーションエンジン340の出力も、予測モデルによって使用される解像度に一致するために画像セグメンテーションエンジン340及び入力データジェネレータ370の1つによって再スケーリングされ得る。ニューラルネットワーク手法だけではなく、またはニューラルネットワーク手法の代わりに、画像セグメンテーションエンジン340は、とりわけ、サポートベクターマシン(SVM)、ベイジアンネットワーク、ランダムフォレスト、最近傍クラスタ化などを含む、さまざまな機械学習方法の少なくとも1つを実装し得る。1つ以上のグラフィックスプロセッシングユニットは、画像セグメンテーションエンジン340を訓練及び/または実装するために使用され得る。画像セグメンテーションエンジン340は、事前に訓練されたパラメータのセットを使用する場合がある、及び/または測光データ345とセグメンテーションデータ350の対を特徴とする1つ以上の訓練データで訓練される場合がある。一般的に、画像セグメンテーションエンジン340は、例えば予測モデル220などの予測モデルとは無関係に及びアグノスティックに(agnostically)実装され得、その結果、例の異なる実施態様で異なるセグメンテーション手法をモジュール式で使用し得る。
【0060】
図4は、図2に示す予測モデル220を実装するために使用され得る予測モデル400の例を示す。予測モデル400は例としてのみ提供されており、示されている予測モデル400の異なる予測モデル及び/または異なる構成が実施態様に応じて使用され得ることに留意されたい。
【0061】
図4の例では、予測モデル400は、エンコーダ-デコーダアーキテクチャを含む。このアーキテクチャでは、入力インタフェース405は、測光データから導出されたデータ及びデータ導出深度データのためのチャネルを有する画像を受け取る。例えば、入力インタフェース405は、RGBD画像、及び/またはセグメンテーションマスクチャネルを加えた深度チャネルを受け取るように構成されてよい。入力インタフェース405は、受け取ったデータをマルチチャネル特徴画像、例えばRGBD値の各々を表す少なくとも4つのチャネルまたはセグメンテーションマスク及び深度データを表す少なくとも2つのチャネルを有する2次元配列の数値に変換するように構成される。受け取ったデータは、例えば、0~255の範囲の値を表す8ビットデータであってよい。セグメンテーションマスクは、(例えば、それぞれオブジェクトの不在及び存在を示す0及び1の値を有する)バイナリ画像として提供され得る。マルチチャネル特徴画像は、多次元配列の浮動小数点値としてデータを表し得る。特定の場合、入力インタフェース405は、受け取ったデータをフォーマット及び/または前処理して、それを予測モデル400が処理する形に変換し得る。
【0062】
図4の予測モデル400は、マルチチャネル特徴画像を符号化するためにエンコーダ410を含む。図4のアーキテクチャでは、エンコーダ410は、一連の符号化コンポーネントを含む。第1のコンポーネント412は、入力インタフェース405からのデータの畳み込み及びサブサンプリングを実行し、次に符号化ブロック414~420のセットは、第1のコンポーネント412からのデータを符号化する。エンコーダ410は、(該当する場合、参照により組み込まれる)Kaiming He et. alによる2015の論文「Deep Residual Learning for Image Recognition」に説明される「ResNet」モデル(例えば、ResNet101)に基づいてよい。エンコーダ410は、(該当する場合、参照により組み込まれるDeng et alによるImageNet: A Large-Scale Hierarchical Image Databas-2009-に説明される)ImageNetなどの1つ以上の画像データで訓練され得る。エンコーダ410は、実施態様の一部として訓練される、及び/または事前に訓練されたパラメータ値のセットを使用するかのどちらかであってよい。第1のコンポーネント412によって適用される畳み込み及びサブサンプリングによって、ResNetアーキテクチャを、例えば、測光データ及び深度データの組み合わせなど、本明細書に説明するように画像データに適合させることが可能になる。特定の場合、測光データは、RGBデータを含み得、他の場合、測光データは、セグメンテーションマスクまたはシルエット(例えば、バイナリ画像データ)を含み得る。
【0063】
エンコーダ410は、入力データの、例えば次元低下符号化など、潜在的表現430を生成するように構成される。これは、テスト例では、2048のチャネルのある次元3かける4のコードを含み得る。予測モデル400は、次にアップサンプルブロック440~448の形のデコーダを含む。デコーダは、画素のセットの断面厚さ測定値を生成するために潜在的表現430を復号するように構成される。例えば、第5のアップサンプルブロック448の出力は、入力インタフェース405によって受け取られた入力データと同じ次元であるが、ピクセル値が断面厚さ測定値を表す画像を含み得る。各アップサンプリングブロックは、2つの畳み込み操作が後に続く双一次アップサンプリング演算を含み得る。デコーダは、(該当する場合、参照により組み込まれる)Ronneberger et alによる2015の論文「U-net: Convolutional networks for biomedical image segmentation」に説明されるUNetアーキテクチャに基づいてよい。完全な予測モデル400は、予測された厚さ値と、訓練セットに設定された「グラウンドトゥルース」厚さ値との間の損失を最小限に抑えるように訓練され得る。損失は、L(二乗)損失であってもよい。
【0064】
特定の場合、入力インタフェース405によって実行される前処理操作は、オブジェクトリージョンの平均及び背景の平均を深度データ入力から差し引くことを含み得る。これは、ネットワークが、絶対深度値と対照的にオブジェクト形状に集中するのに役立ち得る。
【0065】
特定の例では、画像データ235、測光データ345、または入力インタフェース405によって受け取られた画像データは、シルエットデータを含む場合がある。これは、ピクセルがオブジェクトのシルエットに対応するかどうかを示すデータの1つ以上のチャネルを含み得る。シルエットデータは、図3Bに関して説明するセグメンテーションマスク355に等しい場合もあれば、セグメンテーションマスク355から導出される場合もある。特定の場合、図2の入力インタフェース210によって受け取られる画像データ235は、すでにオブジェクトセグメンテーションデータを含んでおり、例えば、画像セグメンテーションエンジン340に類似した画像セグメンテーションエンジンは、システム205に外部で適用され得る。この場合、分解エンジン215は、図3Bの画像セグメンテーションエンジン340に類似した画像セグメンテーションエンジンを含まない場合がある。代わりに、図3Bの入力データジェネレータ370は、入力インタフェース210から中継される画像データ235を受け取るように適合され得る。特定の場合、図2の予測モデル220または図4の予測モデル400は、RGB色データ、シルエットデータ、及び深度データの1つ以上に作用するように構成されてよい。特定のアプリケーションの場合、RGBデータは、シルエットデータよりも多い情報を伝搬し得るため、より正確な予測厚さ測定値につながる。特定の場合、予測モデル220または400は、入力データとして、シルエットデータ及び深度データに基づいて厚さ測定値を予測するように適合され得る。これは、厚さが、オブジェクトの形状及び表面深度に基づいて予測され得る限定されたオブジェクトタイプを有する実装で可能な場合がある。異なるデータタイプの異なる組み合わせは、特定の実装で使用され得る。
【0066】
特定の場合、図2の予測モデル220または図4の予測モデル400は、入力データの複数のセットに並行して適用され得る。例えば、共通の訓練されたパラメータを含む予測モデルの複数のインスタンスが構成され得、各インスタンスは、異なるオブジェクトと関連付けられた入力データを受け取る。これによって、元の画像データの迅速なリアルタイム処理を可能にすることができる。特定の場合、予測モデルのインスタンスは、例えば、図3Bの画像セグメンテーションエンジン340によって出力されるなど、検出されたオブジェクトの数に基づいて動的に構成され得る。
【0067】
図5は、本明細書に説明する例によって生成された厚さデータが、マッピングシステムによって生成される既存の切り捨てられた符号付き距離関数(TSDF)を改善するためにどのように使用され得るのかを示している。図5は、TSDF値のプロット500を、(距離値を示すx軸によって示される)3次元モデルを通る1次元スライスのために、適合していないマッピングシステムによって当初生成されたとして示す。適合していないマッピングシステムは、比較マッピングシステムを含む場合がある。プロット500内の破線510は、適合していないマッピングシステムが、オブジェクトの表面をモデル化するが、オブジェクトの厚さはモデル化しないことを示している。プロットは、カメラまたは起点から1mにあり、厚さが1mの表面の仮設例を示している。適合していないマッピングシステムは、オブジェクトの表面をモデル化すると、観察される表面を超えて、TSDF値は迅速に-1~1に戻る。しかしながら、マッピングシステムが説明する例によって生成されるように厚さデータを処理するように適合されているとき、TSDF値は、表面の1mの厚さを示すために補正され得る。これは実線505で示されている。したがって、本明細書に説明する例の出力は、3次元モデル空間で表面を生じさせるだけではなく、オブジェクトの占有されているボリュームを明示的に再構築する再構築手順によって使用され得る。
【0068】
図6は、図2及び図4の予測モデル220及び400の1つ以上、ならびに図3Bの画像セグメンテーションエンジン340を訓練するために使用され得る例示的な訓練セット600を示す。訓練セット600は、複数のオブジェクトのサンプルを含む。図6で、異なるサンプルは、各列に示されている。各サンプルは、複数のオブジェクトの1つの測光データ610、深度データ620、及び断面厚さデータ630を含む。図6のオブジェクトは、図3Aで見られるオブジェクトに関連付けられてよく、例えば、1つ以上の画像でキャプチャされたそれらのオブジェクトの他のインスタンスであってよい。測光データ610及び深度データ620は、RGBDカメラを用いてオブジェクトの1つ以上の画像をキャプチャする、及び/または合成レンダリング手法を使用することによって生成され得る。特定の場合、測光データ610はRGBデータを含み得る。特定の場合、測光データ610は、例えばバイナリ画像及び/またはグレースケール画像など、オブジェクトのシルエットを含み得る。オブジェクトのシルエットは、セグメンテーションマスクを含み得る。
【0069】
断面厚さデータ630は、いくつかの異なる方法で生成されてよい。1つの場合、断面厚さデータ630は、例えば既知のオブジェクト明確化から手作業で照合され得る。別の場合、断面厚さデータ630は、例えば画定された基準フレーム内の2つ以上の場所からの深度値を観察することによって手作業で測定され得る。さらに別の場合、断面厚さデータ630は、合成で生成され得る。訓練データ600は、例えばいくつかの手動測定値及びいくつかの合成サンプルなど、異なる方法を使用して取得したサンプルの混合物を含む場合がある。
【0070】
断面厚さデータ630は、各サンプルと供給される1つ以上の3次元モデル640を使用して合成で生成され得る。例えば、これらは、観察したオブジェクトのCADファイルなど、コンピュータ支援設計(CAD)データを含む場合がある。特定の例では、3次元モデル640は、物理オブジェクトを走査することによって生成され得る。例えば、物理オブジェクトは、マルチカメラリグ及びターンテーブルを使用して走査され得、3次元でのオブジェクト形状は、水密メッシュを出力するように構成されたポワソン再構築を用いて復元される。特定の例では、3次元モデル640は、測光データ610、深度データ620、及び厚さデータ630の各々に合成データを生成するために使用され得る。合成サンプルの場合、画像データセットからの背景は、(例えば無作為に)追加され得る、及び/またはテクスチャは、テクスチャデータセットからの少なくとも測光データ610に追加され得る。合成サンプルでは、オブジェクトは、フォトリアリスティックなテクスチャでレンダリングされ得るが、サンプル全体で(光の数、その強度、色、及び位置などの)照明特徴をランダム化する。ピクセル単位の断面厚さ測定値は、例えば、シェーディング効果を実行するように適合されたグラフィックプログラミング言語によって提供されるようになど、カスタマイズされたシェーディング機能を使用して生成され得る。シェーディング機能は、モデル化されたカメラからの画像光線が衝突する表面の厚さ測定値を返し得、光線深度は、どの表面に衝突したのかを確認するために使用され得る。シェーディング機能は、X線手法と同様にレイトレーシングを使用して、3次元モデルを通してレイトレーシングし、観察される(例えば、前)面と、観察される面の後方の第1の面との間の距離を測定し得る。測定されたデータ及び合成データを使用ことによって、訓練セットを拡大し、本明細書に説明する予測モデル及び画像セグメンテーションエンジンの1つ以上の性能を改善することを可能にできる。例えば、上述のように、ランダム化されたレンダリングを用いてサンプルを使用すると、例えば、モデル及びエンジンは、環境要因を無視し、形状の手がかりに集中することを学習するので、より堅牢なオブジェクト検出及び厚さ予測につなげることができる。
【0071】
図7は、オブジェクト720の3次元ボリューム710、及びスライスと関連付けられたボクセルのセットのTSDF値を示すボリュームを通る関連する2次元スライス730の例700を示す。図7は、図5のコンテキストを提供するためのTSDF値の使用、及び例えば環境の3次元モデルでTSDF測定値を改善するために生成された厚さデータを使用するマッピングシステムの概要を提供する。
【0072】
図7の例で、3次元ボリューム710はいくつかのボクセルに分割され、各ボクセルは、ボリューム内でオブジェクト720の範囲をモデル化するために対応するTSDF値を有する。TSDF値を説明するために、3次元ボリューム710を通る2次元スライス730が図に示されている。本例で、2次元スライス730は、オブジェクト720の中心を通過し、共通z空間値を有するボクセル740のセットに関連する。2次元スライス730のx及びyの範囲は、図の右上に示されている。右下には、ボクセルの例示的なTSDF値760が示されている。
【0073】
この場合、TSDF値は、3次元空間の観察された表面からの距離を示す。図7で、TSDF値は、3次元ボリューム710のボクセルがオブジェクト720の外側の自由空間に属するのか、それともオブジェクト720内の塗りつぶされた空間に属するのかを示す。図7で、TSDF値は、1~-1に及ぶ。したがって、スライス730の値は、2次元画像750と見なし得る。1の値は、オブジェクト720の外部の自遊空間を表す。一方、-1の値は、オブジェクト720内の塗りつぶされた空間を表す。したがって、0の値は、オブジェクト720の表面を表す。説明を容易にするために3つの異なる値(「1」、「0」、及び「-1」)しか示されていないが、実際の値は、表面への相対距離を表す10進値(例えば、「0.54」、または「-0.31」)である場合がある。また、負の値が表面外部の距離を表すのか、それとも正の値が表面外部の距離を表すのかは、実施態様間で変わる場合がある規則であることにも留意されたい。値は、実施態様に応じて切り捨てられる場合もあれば、切り捨てられない場合もあり、切り捨ては、特定の閾値を超えた距離が「1」及び「-1」の底値または天井値に設定されることを意味する。同様に、正規化が適用される場合もあれば、適用されない場合もあり、「1」~「-1」以外の範囲も使用され得る(例えば、8ビット表現の場合、値は「-127~128」であってよい)。
【0074】
図7で、オブジェクト720のエッジは、「0」の値によって見られる場合があり、オブジェクト720の内部は「-1」の値によって見られる場合がある。オブジェクト720の内部のTSDF値は、例えば、マッピングシステムを用いて決定されたオブジェクト720の表面の後方のTSDF値を設定するために、本明細書に説明する厚さデータを使用して、計算し得る。特定の例では、TSDF値だけではなく、3次元ボリュームの各ボクセルも、複数のボリュームを、観察環境(例えば、図3Aの完全なシーン)の1つの共通したボリュームに融合することを可能にするために関連付けられた重みを有し得る。特定の場合、重みは、ビデオデータのフレームごとに設定され得る(例えば、以前のフレームからのオブジェクトの重みは、深度データを、後続のフレームの表面-距離メトリック値と融合するために使用される)。重みは、加重平均式で深度データを融合するために使用し得る。表面-距離メトリック値及び重み値を使用して深度データを融合する1つの方法は、(該当する場合、参照によって組み込まれる)SIGGRAPH ’96、Computer Graphics and Interactive Techniquesに関する第23回年次会議、ACM、1996の会議記録に公開されたCurless及びLevoyによる論文「A Volumetric Method for Building Complex Models from Range Images」に説明されている。TSDF値及び重み値を使用して深度データを融合することを含むさらなる方法は、先に引用した「KinectFusion」に説明されている(及び該当する場合、参照により組み込まれている)。
【0075】
図8は、ビデオデータを使用して周辺または周囲の環境のオブジェクトをマッピングするためのシステム800の例を示す。システム800は、説明した例によって予測されるように、厚さデータを使用してオブジェクトのマッピングを改善するように適合される。システム800の特定の特徴が説明されているが、これらが一例として提供されており、他の図の説明された方法及びシステムが他のマッピングシステムで使用され得ることに留意されたい。
【0076】
システム800は、ビデオデータ805のフレームFに作用すると示されており、関与するコンポーネントは、経時的に、周辺環境の観察または「キャプチャ」を表すビデオデータから一連のフレームを反復処理する。観察は連続的である必要がない。図2に示すシステム205と同様に、システム800のコンポーネントは、1つ以上のプロセッサ、(ASIC、FPGA、または特殊化したGPUなどの)専用処理回路、及び/またはその2つの組み合わせによって処理されるコンピュータプログラムコードによって実装され得る。システム800のコンポーネントは、単一のコンピューティングデバイス(例えば、デスクトップ、ラップトップ、モバイルコンピューティングデバイス及び/または埋め込みコンピューティングデバイス)内で実装される場合もあれば、複数の個別のコンピューティングデバイスに分散される場合もある(例えば、特定のコンポーネントは、ネットワーク上で行われた1つ以上のクライアントコンピューティングデバイスからの要求に基づいて 1つ以上のサーバコンピューティングデバイスによって実装され得る)。
【0077】
図8に示すシステム800のコンポーネントは、2つの処理経路にグループ化される。第1の処理経路は、オブジェクト認識パイプライン810を含む。第2の処理経路は、融合エンジン820を含む。図8に関して説明する特定のコンポーネントが、オブジェクト認識パイプライン810及び融合エンジン820の特定の一方に関して説明されているが、特定の実施態様では、図に示す処理経路を維持しつつも、オブジェクト認識パイプライン810及び融合エンジン820の他方の1つの部分として提供され得ることに留意されたい。また、本明細書の例に説明する一般的な動作を維持しつつも、実施態様によっては、特定のコンポーネントは、省略または修正される場合がある、及び/または他のコンポーネントが追加される場合があることにも留意されたい。また、コンポーネント間の相互接続は、説明を容易にするために示され、実際の実施態様では、再び修正される場合もあれば、追加の通信経路が存在する場合もある。
【0078】
図8で、オブジェクト認識パイプライン810は、畳み込みニューラルネットワーク(CNN)812、フィルタ814、及びユニオンの交差点(Intersection over Union)(IOU)コンポーネント816を含む。CNN812は、マスク出力を生成するリージョンベースのCNNを含む場合がある(例えば、マスクR-CNNの実施態様)。CNN812は、1つ以上のラベル付き画像データセットで訓練され得る。CNN812は、図3Bの画像セグメンテーションエンジン340の少なくとも一部分のインスタンスを含み得る。特定の場合、CNN812は、画像セグメンテーションエンジン340を実装し得、データの受信フレームFは測光データ345を含む。
【0079】
フィルタ814は、それぞれの検出されたオブジェクトのマスク画像のセット、及び検出されたオブジェクトの同じセットの対応するオブジェクトラベル確率分布のセットの形で、CNN812のマスク出力を受け取る。したがって、各検出されたオブジェクトは、マスク画像及びオブジェクトラベル確率を有する。マスク画像は、バイナリマスク画像を含み得る。フィルタ814は、例えば、オブジェクトラベル確率、画像境界への近接、及びマスク内のオブジェクトサイズなどの1つ以上のオブジェクト検出メトリックに基づいて、CNN812のマスク出力をフィルタリングするために使用され得る(例えば、Xピクセル以下の領域が除外され得る)。フィルタ814は、リアルタイム操作及びメモリ要求を支援するマスク画像のサブセット(例えば、0~100のマスク画像)にマスク出力を低減させるために働き得る。
【0080】
フィルタリングされたマスク出力を含むフィルタ814の出力は、次にIOUコンポーネント816によって受け取られる。IOUコンポーネント816は、オブジェクトインスタンスのマップの任意の既存のオブジェクトインスタンスに基づいて生成される、レンダリングされたマスク画像または「仮想」マスク画像にアクセスする。オブジェクトインスタンスのマップは、以下に説明するように、融合エンジン820によって生成される。レンダリングされたマスク画像は、例えば、図7に示すボリュームなどのそれぞれの3次元ボリューム内に格納されたTSDF値を使用してなど、オブジェクトインスタンスを使用してレイトレーシングによって生成され得る。レンダリングされたマスク画像は、オブジェクトインスタンスのマップの各オブジェクトインスタンスのために生成され得、フィルタ814からのマスク出力に一致するためにバイナリマスクを含み得る。IOUコンポーネント816は、オブジェクトインスタンスのレンダリングされたマスク画像の各々を用いて、フィルタ814から各マスク画像の交差点を計算し得る。最大交差点を有するレンダリングされたマスク画像は、オブジェクト「一致」として選択され得、そのレンダリグされたマスク画像は、次にオブジェクトインスタンスのマップの対応するオブジェクトインスタンスと関連付けられる。IOUコンポーネント816によって計算された最大交差点は、所定の閾値と比較され得る。最大交差点が閾値よりも大きい場合、IOUコンポーネント816は、CNN812からのマスク画像及びオブジェクトインスタンスとの関連付けを出力し、最大交差点が閾値以下である場合、次にIOUコンポーネント616は、既存のオブジェクトインスタンスが検出されていない旨の表示を出力する。
【0081】
IOUコンポーネント816の出力は、次に、厚さエンジン818に渡される。厚さエンジン818は、図2に示すシステム205の少なくとも一部を含み得る。厚さエンジン818は、分解エンジン215が、CNN812、フィルタ814、及びIOUコンポーネント816の1つ以上の出力を使用するように構成される、システム205の実施態様を含み得る。例えば、CNN812の出力は、図3Bに関して説明するプロセスと同様に分解エンジン215によって使用され得る。厚さエンジン818は、例えば厚さデータがCNN812からのマスク画像及び一致したオブジェクトインスタンスと関連付けられる場合、フレームデータ805に作用し、1つ以上の検出したオブジェクトの厚さデータを追加するように配置される。厚さエンジン818は、このようにしてオブジェクト認識パイプライン810のデータストリームを強化し、別の情報チャネルを提供する。厚さエンジン818によって出力される強化されたデータは、次に融合エンジン820に渡される。厚さエンジン818は、特定の場合、IOUコンポーネント816によって出力されたマスク画像を受け取り得る。
【0082】
図8の例では、融合エンジン820は、ローカルTSDFコンポーネント822、追跡コンポーネント824、エラーチェッカ826、レンダラ828、オブジェクトTSDFコンポーネント830、データ融合コンポーネント832、再ローカリゼーションコンポーネント834、及びポーズグラフオプティマイザ836を含む。明確にするために図8には示していないが、使用中、融合エンジン820は、ポーズグラフ及びオブジェクトインスタンスのマップに作用する。特定の場合、単一の表現が格納され得、オブジェクトインスタンスのマップがポーズグラフによって形成され、オブジェクトインスタンスと関連付けられた3次元オブジェクトボリュームがポーズグラフノードの一部として(例えば、ノードと関連付けられたデータとして)格納される。他の場合、別々の表現が、ポーズグラフ及びオブジェクトインスタンスのセットのために格納され得る。本明細書に説明するように、用語「マップ」は、オブジェクトインスタンスのデータ定義の集合体を指す場合があり、それらのデータ定義は、それぞれのオブジェクトインスタンスのための場所及び/または向きの情報を含むため、例えば観察環境に対するオブジェクトインスタンスの位置及び/または向きを記録し得る。
【0083】
図8の例では、TSDF値を格納するオブジェクトインスタンスのマップだけではなく、周辺環境のオブジェクトアグノスティックモデルも使用される。これは、ローカルTSDFコンポーネント822によって生成され、更新される。オブジェクトアグノスティックモデルは、検出したオブジェクトがない場合に追跡を実行することを可能にする、環境の『粗い』つまり低解像度モデルを提供する。ローカルTSDFコンポーネント822、及びオブジェクトアグノスティックモデルは、スパースに位置するオブジェクトを有する環境を観察するためである実施態様に有用である場合がある。ローカルTSDFコンポーネント822は、厚さエンジン818によって予測されるオブジェクト厚さデータを使用しない場合がある。オブジェクト厚さデータは、オブジェクトの高密度分布のある環境に使用してはならない。オブジェクトアグノスティックモデルを定義するデータは、例えばポーズグラフ及びオブジェクトインスタンスのマップだけではなく、融合エンジン820がアクセス可能なメモリに格納され得る。
【0084】
図8の例では、ローカルTSDFコンポーネント822は、ビデオデータ805のフレームを受け取り、周辺(3次元)環境のオブジェクトアグノスティックモデルを生成して、検出したオブジェクトインスタンスが存在しないことに応えてフレーム対モデル追跡を提供する。例えば、オブジェクトアグノスティックモデルは、各オブジェクトに定義された3次元ボリュームと同様に、環境内に形成される表面までの距離を表すTSDF値を格納する3次元ボリュームを含み得る。オブジェクトアグノスティックモデルは、環境を個別のオブジェクトインスタンスにセグメント化せず、オブジェクトアグノスティックモデルは、環境全体を表す『オブジェクトインスタンス』と見なされ得る。オブジェクトアグノスティックモデルは、環境を表現するために比較的に大きいサイズの限られた数のボクセルが使用され得るという事実において、粗いまたは低い解像度である場合がある。例えば、1つの場合、オブジェクトアグノスティックモデルの3次元ボリュームは、256x256x256の解像度を有する場合があり、ボリューム内のボクセルは、環境内で約2cmの立方体を表す。ローカルTSDFコンポーネント822は、オブジェクトアグノスティックモデルの3次元ボリュームのボリュームサイズ及びボリューム中心を決定し得る。ローカルTSDFコンポーネント822は、例えばカメラが移動した場合に更新したカメラポーズを明らかにするために、ビデオデータのさらなるフレームの受信時にボリュームサイズ及びボリューム中心を更新し得る。
【0085】
図8の例800では、オブジェクトアグノスティックモデル及びオブジェクトインスタンスのマップは、追跡コンポーネント824に提供される。追跡コンポーネント824は、ビデオデータ805のフレームと関連付けられた測光データ及び深度データの少なくとも1つと、オブジェクト-インスタンス-アグノスティックモデル及びオブジェクトインスタンスのマップの1つ以上との間の誤差を追跡するように構成される。1つの場合、階層参照データは、オブジェクトアグノスティックモデル及びオブジェクトインスタンスからレイキャスティングすることによって生成され得る。参照データは、オブジェクトアグノスティックモデル及びオブジェクトインスタンスに基づいて(例えば、各オブジェクトインスタンスに基づいて)生成されたデータが画像編集アプリケーションにおける層と同様に、独立してアクセスし得るという点で階層化され得る。参照データは、頂点マップ、法線マップ、及びインスタンスマップの1つ以上を含み得、各「マップ」は、最近のカメラポーズ推定値(例えば、ポーズグラフの以前のカメラポーズ推定値)に基づいて形成される2次元画像の形をとってよく、それぞれのマップの頂点及び法線は、例えばワールドフレームを参照して、モデル空間内で定義される。頂点値及び法線値は、これらのマップでピクセル値として表されてよい。追跡コンポーネント824は、次に、参照データから、ビデオデータ805の現在のフレーム(例えば、いわゆる「ライブ」フレーム}から導出したデータにマッピングする変換を決定し得る。例えば、時間tの現在の深度マップは、頂点マップ及び法線マップに投影され、参照頂点マップ及び参照法線マップと比較され得る。特定の場合、双方向フィルタリングを深度マップに適用する場合がある。
【0086】
追跡コンポーネント824は、反復最接近点(ICP)関数を使用し、ビデオデータの現在のフレームと関連付けられたデータを参照データとアラインさせ得る。追跡コンポーネント824は、ビデオデータの現在のフレームと関連付けられたデータの、オブジェクトアグノスティックモデル及びオブジェクトインスタンスのマップの少なくとも1つから導出された参照データとの比較を使用して、現在のフレームのカメラポーズ推定値(例えば、
【数1】
)を決定し得る。これは、オブジェクトアグノスティックモデルの再計算の前に(例えば、再ローカリゼーション前に)実行され得る。最適化されたICPポーズ(及び不変性共分散推定値)は、例えば、ポーズグラフのそれぞれノードとそれぞれ関連付けられたカメラポーズ間の測定制限として使用され得る。比較は、ピクセル単位で実行され得る。しかしながら、例えば二重計算を回避するためになど、オブジェクトインスタンスに属するピクセルに過重に重み付けすることを回避するために、オブジェクトカメラ制限を導出するためにすでに使用されているピクセルは、カメラポーズ間の測定制限の最適化から省略され得る。
【0087】
追跡コンポーネント824は、エラーチェッカ826によって受け取られる誤差メトリックのセットを出力する。これらの誤差メトリックは、ICP関数からの二乗平均平方根誤差(RMSE)メトリック、及び/または有効に追跡されたピクセルの割合を含む場合がある。エラーチェッカ826は、誤差メトリックのセットを、所定の閾値のセットと比較して、追跡が維持されるかどうか、または再ローカリゼーションが実行されるのかどうかを判定する。例えば、誤差メトリックが所定の閾値を超える場合など、再ローカリゼーションが実行される場合、次にエラーチェッカ826は、再ローカリゼーションコンポーネント834の動作をトリガする。再ローカリゼーションコンポーネント834は、オブジェクトインスタンスのマップを、ビデオデータの現在のフレームからのデータとアラインさせるために働く。再ローカリゼーションコンポーネント834は、さまざまな再ローカリゼーション方法の1つを使用し得る。1つの方法で、画像特徴は、現在の深度マップを使用して空間をモデル化するために投影され得、ランダムサンプルコンセンサス(RANSAC)は、オブジェクトインスタンスの画像特徴及びオブジェクトインスタンスのマップを使用して適用され得る。このようにして、現在のフレーム画像特徴から生成された3次元点は、(例えば、オブジェクトボリュームから変形された)オブジェクトインスタンスイオンオブジェクトインスタンスのマップから導出した3次元点と比較され得る。例えば、(例えば、0.6より大きいドット積を有する)オブジェクトインスタンスのマップのオブジェクトインスタンスのクラス分布に密接に一致する現在のフレームのインスタンスごとに、3D-3D RANSACが実行され得る。例えば、2cm半径内の5つのインライア特徴など、いくつかのインライア特徴が所定の閾値を超える場合、現在のフレームのオブジェクトインスタンスは、マップのオブジェクトインスタンスに一致すると見なし得る。例えば3など、いくつかの一致するオブジェクトインスタンスが閾値を満たすまたは超える場合、3D-3D RANSACは、改訂されたカメラポーズ推定値を生成するために、5cm半径内に最小50のインライア特徴がある(背景の点を含む)点のすべてに対して再び実行され得る。再ローカリゼーションコンポーネント834は、改訂されたカメラポーズ推定値を出力するように構成される。この改訂されたカメラポーズ推定値は、次に、ポーズグラフを最適化するためにポーズグラフオプティマイザ836によって使用される。
【0088】
ポーズグラフオプティマイザ836は、ポーズグラフを最適化して、カメラ及び/またはオブジェクトポーズ推定値を更新するように構成される。これは、上述のように実行し得る。例えば、1つの場合、ポーズグラフオプティマイザ836は、ポーズグラフを最適化して、ノード及びエッジの値に基づいたカメラからオブジェクトへの及びカメラからカメラへのポーズ推定遷移のすべてのエッジにわたる合計として計算されるグラフの総誤差を低減し得る。例えば、グラフオプティマイザは、局所的なポーズ測定値に対する摂動をモデル化し、これらを使用して、例えばICP誤差に基づいた逆測定共分散と共に、総誤差計算で使用される情報行列の関数行列式の項を計算し得る。システム800の構成に応じて、ポーズグラフオプティマイザ836は、ノードがポーズグラフに追加されるときに最適化を実行するように構成される場合もあれば、されない場合もある。例えば、ノードがポーズグラフに追加されるたびに最適化を実行する必要はないので、誤差メトリックのセットに基づいて最適化を実行することによって処理要求は低減され得る。ポーズグラフ最適化の誤差は、追跡コンポーネント824が取得し得る追跡時の誤差とは無関係ではない場合がある。例えば、ポーズ構成の変更によって生じたポーズグラフの誤差は、完全な入力深度画像を所与として、ICPの点対平面の誤差メトリックと同じである場合がある。しかしながら、新しいカメラポーズに基づいてこの誤差を再計算するには、通常、完全な深度画像測定の使用及びオブジェクトモデルの再レンダリングを伴い、これは計算コストがかかる場合がある。計算コストを削減するために、ICP誤差関数のヘッセ行列式を使用して生じたICP誤差に対する線形近似を、ポーズグラフの最適化中にポーズグラフの制約として代わりに使用し得る。
【0089】
エラーチェッカ826からの処理経路に戻ると、誤差メトリックが許容範囲内にある場合(例えば、動作中または再ローカリゼーションに続いて)、レンダラ828は、融合エンジン820の他のコンポーネントが使用するためにレンダリングされたデータを生成するために動作する。レンダラ828は、深度マップ(つまり、画像の形をした深度データ)、頂点マップ、法線マップ、測光(例えば、RGB)画像、マスク画像、及びオブジェクトインデックスの1つ以上をレンダリングするように構成され得る。オブジェクトインスタンスのマップの各オブジェクトインスタンスは、例えば、それと関連付けられたオブジェクトインデックスを有する。レンダラ828は、オブジェクトの厚さに基づいて更新される改善されたTSDF表現を利用し得る。レンダラ828は、オブジェクトアグノスティックモデル及びオブジェクトインスタンスのマップのオブジェクトインスタンスの1つ以上に作用し得る。レンダラ828は、2次元画像またはピクセルマップの形でデータを生成し得る。上述のように、レンダラ828は、レイキャスティング及びオブジェクトに使用される3次元ボリューム内のTSDF値を使用して、レンダリングされたデータを生成し得る。レイキャスティングは、所与のステップサイズ内で投影された光線に沿って進むために、及び3次元ボリューム内のTSDF値によって定義されるゼロ交差点を検索するためにカメラポーズ推定値及び3次元ボリュームを使用することを含み得る。レンダリングは、ボクセルがシーンの前景または背景に属する確率に依存する場合がある。所与のオブジェクトインスタンスについて、レンダラ828は、ゼロ交差点との直近の交差点の光線長を格納し得、後続のオブジェクトインスタンスについてこの光線長を超えて検索し得ない。このようにして、閉塞する表面を正しくレンダリングし得る。存在確率の値が前景及び背景の検出数に基づいて設定される場合、次に存在確率に対する照合によって、環境内の重複するオブジェクトのレンダリングを改善し得る。
【0090】
レンダラ828は、オブジェクトTSDFコンポーネント830が次にアクセスするデータを出力する。オブジェクトTSDFコンポーネント830は、レンダラ828及び厚さエンジン818の出力を使用して、オブジェクトインスタンスのマップを初期化し、更新するように構成される。例えば、厚さエンジン818が、例えば上述の交差点に基づいて、フィルタ814から受け取ったマスク画像が既存のオブジェクトインスタンスに一致することを示す信号を出力する場合、次に、オブジェクトTSDFコンポーネント830は、例えばTSDF値を格納する3次元オブジェクトボリュームなど、関連するオブジェクトインスタンスを取り出す。
【0091】
マスク画像、予測された厚さデータ、及びオブジェクトインスタンスは、次にデータ融合コンポーネント832に渡される。これは、例えばフィルタ814から受け取った、フィルタリングされたマスク出力を形成するマスク画像のセットに対して繰り返されてよい。特定の場合、データ融合コンポーネント832は、マスク画像のセットと関連付けられたオブジェクトラベル確率のセットを受け取るまたはアクセスする場合もある。データ融合コンポーネント832での統合は、オブジェクトTSDFコンポーネント830によって示される所与のオブジェクトインスタンスについて、及び所与のオブジェクトインスタンスの3次元ボリュームの定義されたボクセルについて、ボクセルをカメラフレームピクセルの中に投影すること、つまり最新のカメラポーズ推定値を使用すること、及びビデオデータ805のフレームについて、投影された値を受け取った深度マップと比較することを含み得る。特定の場合、ボクセルが、切り捨て距離を加えた(例えば、深度マップまたはRGB-Dキャプチャデバイスから受け取った画像からの)深度測定値未満である深度値(つまり、ボクセルの投影されたTSDF値に基づいた投影された「仮想」深度値)を有するカメラフレームピクセルに投影する場合、次に、深度測定値は3次元ボリュームに融合され得る。厚さデータの厚さ値は、次に、モデル化されたオブジェクトの前面の後方のボクセルのTSDF値を設定するために使用され得る。特定の場合、TSDF値だけではなく、各ボクセルも関連付けられた重みを有する。これらの場合、融合は、加重平均式で適用され得る。
【0092】
特定の場合、この統合は、選択的に実行し得る。例えば、統合は、例えば追跡コンポーネント824からの誤差メトリックが所定の閾値以下であるときなど、1つ以上の条件に基づいて実行し得る。これは、エラーチェッカ826によって示される場合がある。また、統合は、オブジェクトインスタンスが可視であると見なされるビデオデータのフレームを参照して実行してもよい。これらの条件は、カメラフレームがドリフトする場合に、オブジェクトインスタンスの再構築の質を維持するために役立つ場合がある。
【0093】
図8のシステム800は、オブジェクトポーズ及びカメラポーズを示すポーズグラフと共に、経時的にオブジェクトインスタンスの堅牢なマップを構築するために、ビデオデータ805のフレームに反復して作用し得る。オブジェクトインスタンス及びポーズグラフのマップは、次に、ナビゲーション及び/またはマッピングされた環境とのインタラクションを可能にするために、他のデバイス及びシステムが利用できるようにされ得る。例えば、ユーザーからのコマンド(例えば、「カップを持ってきて」)は、(例えば、オブジェクトラベル確率分布または3次元形状一致に基づいて)オブジェクトインスタンスのマップ内のオブジェクトインスタンスと照合され得、オブジェクトインスタンス及びオブジェクトポーズは、アクチュエータを制御して環境から対応するオブジェクトを抽出するためにロボットデバイスによって使用され得る。同様に、オブジェクトインスタンスのマップは、例えば正確な3次元モデルインベントリを提供するためになど、環境内のオブジェクトを文書化するために使用され得る。拡張現実アプリケーションでは、オブジェクトインスタンス及びオブジェクトポーズは、リアルタイムのカメラポーズと共に、リアルタイムビデオフィードに基づいて仮想空間内でオブジェクトを正確に拡張するために使用され得る。
【0094】
図9は、一例に従って画像データを処理する方法900を示す。方法は、本明細書に説明するシステムを使用して、または代替システムを使用して実装され得る。方法900は、ブロック910でシーンの画像データを取得することを含む。シーンは、例えば図3Aに示すようなオブジェクトのセットを特徴とする場合がある。画像データは、例えば図1Aのカメラ120または図3Aのカメラ320などのキャプチャデバイスから直接的に取得され得る、及び/またはハードディスクもしくは不揮発性ソリッドステートメモリなどのストレージデバイスからロードされ得る。ブロック910は、ブロック920~940のアクセスのためにマルチチャネルRGBD画像をメモリにロードすることを含み得る。
【0095】
ブロック920で、画像データは分解されて、予測モデルの入力データを生成する。この場合、分解は、シーン内のオブジェクトのセットに対応する画像データの部分を決定することを含む。これは、オブジェクトを積極的に検出し、各オブジェクトを含む画像データの領域を示すこと、及び/または画像データの一部として受け取られるセグメンテーションデータを処理することを含み得る。分解に続く画像データの各部分は、異なる検出されたオブジェクトに対応する場合がある。
【0096】
ブロック930で、部分の断面厚さ測定値は、予測モデルを使用して予測される。例えば、これは、画像データの分解された部分を入力として予測モデルに供給し、断面厚さ測定値を予測として出力することを含み得る。予測モデルは、例えば図4に示すアーキテクチャに類似したニューラルネットワークアーキテクチャを含む場合がある。入力データは、例えばRGBデータ、RGB及び深度データ、またはシルエットデータ(例えば、オブジェクトのバイナリマスク)、及び深度データの1つを含み得る。断面厚さ測定値は、特定のピクセルと関連付けられた検出したオブジェクトの部分の推定厚さ値を含み得る。ブロック930は、ブロック920に続いて、予測モデルを画像データ出力の各部分に連続して及び/または並行して適応することを含み得る。厚さ値は、メートルまたはセンチメートルの単位で提供され得る。
【0097】
ブロック940で、画像データの部分の予測された断面厚さ測定値は、シーン内のオブジェクトのセットの厚さデータを含む出力画像データを生成するために組み立てられる。これは、入力画像に対応する出力画像を生成することを含み得、出力画像のピクセル値は、シーン内で観察されるオブジェクトの部分の予測される厚さ値を表す。出力画像データは、特定の場合、断面厚さ測定値を格納する追加の「厚さ」チャネルを加えた、元の画像データを含む場合がある。
【0098】
図10は、一例に従って画像データを分解する方法1000を示す。方法1000は、図9のブロック920を実装するために使用され得る。他の場合、ブロック920は、方法1000を実行することによって以前に生成されたデータを受け取ることによって実装され得る。
【0099】
ブロック1010で、RGB画像などの測光データが受け取られる。いくつかのオブジェクトが、測光データで検出される。これは、例えば図3Bの画像セグメンテーションエンジン340または図8のオブジェクト認識パイプライン810に類似したオブジェクト認識パイプラインを適用することを含み得る。オブジェクト認識パイプラインは、オブジェクトを検出するために、訓練されたニューラルネットワークを含み得る。ブロック1020で、シーンのセグメンテーションデータが生成される。セグメンテーションデータは、測光データの部分と、シーン内のオブジェクトのセットとの間の推定された対応を示す。本例では、セグメンテーションデータは、各検出したオブジェクトのセグメンテーションマスク及びバウンディングボックスを含む。ブロック1030で、ブロック1010で受け取られた測光データから導出したデータは、ブロック1020で生成されたバウンディングボックスに基づいてオブジェクトごとに切り取られる。これは、受け取ったRGBデータ及びブロック1020で出力されたセグメンテーションマスクの1つ以上を切り取ることを含み得る。また、測光データと関連付けられた深度データも切り取られる。ブロック1040で、いくつかの画像部分が出力される。例えば、画像部分は、各検出したオブジェクトの測光データ及び深度データから導出したデータの切り取った部分を含み得る。特定の場合、測光データ及び深度データの1つ以上は、画像部分を生成するためにセグメンテーションマスクを使用して、処理され得る。例えば、セグメンテーションマスクは、画像部分の背景を削除するために使用され得る。他の場合、セグメンテーションマスク自体は、深度データと共に、画像部分データとして使用され得る。
【0100】
図11は、1つ以上のオブジェクトの断面厚さを推定するためのシステムを訓練する方法1100を示す。システムは、図2のシステム205であってよい。方法1100は、図9の方法900を実行する前に構成段階で実行され得る。方法1100は、ブロック1110で訓練データを取得することを含む。訓練データは、複数のオブジェクトのサンプルを含む。訓練データは、図6に示すデータに類似した訓練データを含み得る。訓練データの各サンプルは、複数のオブジェクトの1つの測光データ、深度データ、及び断面厚さデータを含み得る。特定の場合、各サンプルは、オブジェクトのカラー画像、深度画像、及び厚さレンダリングを含み得る。他の場合、各サンプルは、オブジェクトのセグメンテーションマスク、深度画像、及び厚さレンダリングを含み得る。
【0101】
ブロック1120で、方法は、訓練データを使用してシステムの予測モデルを訓練することを含む。予測モデルは、ニューラルネットワークアーキテクチャを含み得る。1つの場合、予測モデルは、図4に示すアーキテクチャなどのエンコーダ-デコーダアーキテクチャを含み得る。他の場合、予測モデルは、畳み込みニューラルネットワークを含み得る。ブロック1120は、2つのサブブロック1130及び1140を含む。サブブロック1130で、訓練データからの画像データは、予測モデルに入力される。画像データは、セグメンテーションマスク及び深度データ、色データ及び深度データ、ならびにセグメンテーションマスク、色データ、及び深度データの1つ以上を含み得る。サブブロック1140で、予測モデルと関連付けられた損失関数が最適化される。損失関数は、予測モデルの出力と、訓練データからの断面厚さデータとの比較に基づく場合がある。例えば、損失関数は、予測モデルの出力とグラウンドトゥルース値との間の二乗誤差を含む場合がある。ブロック1130及び1140は、予測モデルのパラメータ値のセットを決定するために複数のサンプルに対して繰り返され得る。
【0102】
特定の場合、少なくとも測光データと関連付けられたオブジェクトセグメンテーションデータも取得され得る。また、方法1100は、次に例えば図3の画像セグメンテーションエンジン340などのシステムの画像セグメンテーションエンジン、または図8のオブジェクト認識パイプライン810を訓練することも含み得る。これは、画像セグメンテーションエンジンへの入力として少なくとも測光データを提供すること、及び画像セグメンテーションエンジンの出力及びオブジェクトセグメンテーションデータに基づいて損失関数を最適化することを含み得る。これは、図9及び図10の方法900及び1000の1つ以上を実行する前に、構成段階で実行され得る。他の場合、システムの画像セグメンテーションエンジンは、事前に訓練されたセグメンテーションエンジンを含み得る。特定の場合、画像セグメンテーションエンジン及び予測モデルは、単一のシステムで共同で訓練される場合がある。
【0103】
図12は、訓練セットを生成する方法1200を示す。訓練セットは、図6の例示的な訓練セット600を含む場合がある。訓練セットは、1つ以上のオブジェクトの断面厚さを推定するためのシステムを訓練するために使用可能である。このシステムは、図2のシステム205であってよい。方法1200は、複数のオブジェクトの各オブジェクトに対して繰り返される。方法1200は、生成された訓練セットが、ブロック1110で訓練データとして使用される、図11の方法1100の前に実行され得る。
【0104】
ロック1210で、所与のオブジェクトの画像データが取得される。この場合、画像データは、複数のピクセルの測光データ及び深度データを含む。例えば、画像データは、図6に示すように、測光データ610及び深度データ620を含み得る。特定の場合、画像データは、RGB-D画像データを含み得る。他の場合、画像データは、例えば以下に説明する3次元表現をレンダリングすることによって、合成で生成される場合がある。
【0105】
ブロック1220で、オブジェクトの3次元表現が取得される。これは、図6に示すモデル640の1つなど、3次元モデルを含み得る。ブロック1230で、断面厚さデータがオブジェクトのために生成される。これは、ブロック1210で取得した画像データの各ピクセルの断面厚さ測定値を決定することを含み得る。ブロック120は、オブジェクトの第1の表面への第1の距離及びオブジェクトの第2の表面への第2の距離を決定するためにレイトレーシングを3次元表現に適用することを含み得る。第1の表面は可視であるオブジェクトの「前面」であってよく、第2の表面は、可視ではないが、3次元表現に示されるオブジェクトの「背面」であってよい。したがって、第1の表面は、第2の表面よりもレイトレーシングの起点により近い場合がある。第1の距離と第2の距離の差に基づいて、オブジェクトの断面厚さ測定値を決定し得る。このプロセス、つまりレイトレーシングして、断面厚さ測定値を決定することは、ブロック1210からの画像データに対応するピクセルのセットについて繰り返され得る。
【0106】
ブロック1240で、オブジェクトの入力データ及びグランドトゥルース出力データのサンプルが生成され得る。これは、図6に示す測光データ610、深度データ620、及び断面厚さデータ630を含む場合がある。入力データは、画像データに基づいて決定され得、図11のブロック1130で使用され得る。グラウンドトゥルース出力データは、断面厚さデータに基づいて決定され得、図11のブロック1140で使用され得る。
【0107】
特定の場合、複数のオブジェクトの画像データ及び3次元表現は、合成訓練データの追加サンプルを生成するために使用され得る。例えば、3次元表現は、オブジェクトの異なる入力データを生成するために、ランダム化された条件で使用され得る。1つの場合、ブロック1210は省略されてよく、入力データ及び出力データは、3次元表現単独に基づいて生成され得る。
【0108】
図2図3図4、及び図8に関連して本明細書に説明する機能コンポーネントの例は、専用の処理電子機器を含み得る、及び/または少なくとも1つのコンピューティングデバイスのプロセッサによって実行されるコンピュータプログラムコードを介して実装され得る。特定の場合、1つ以上の埋め込みコンピューティングデバイスを使用し得る。図13は、説明したシステム及び方法を実装するために使用し得るコンピューティングデバイス1300を示す。コンピューティングデバイス1300は、コンピュータプログラムコード1330を実行するために、コンピュータ可読記憶媒体1320と関連して動作する少なくとも1つのプロセッサ1310を含む。コンピュータ可読記憶媒体は、例えば、揮発性メモリ、不揮発性メモリ、磁気記憶装置、光記憶装置、及び/またはソリッドステートストレージの1つ以上を含み得る。埋め込みコンピューティングデバイスでは、媒体1320は、消去可能プログラマブル読み取り専用メモリなどのソリッドステートストレージを含み得、コンピュータプログラムコード1330は、ファームウェアを含み得る。他の場合、コンポーネントは、適切に構成されたシステムオンチップ、特定用途向け集積回路、及び/または1つ以上の適切にプログラムされたフィールドプログラマブルゲートアレイを含み得る。1つの場合、コンポーネントは、モバイルコンピューティングデバイス及び/またはデスクトップコンピューティングデバイスでコンピュータプログラムコード及び/または専用処理電子機器を介して実装され得る。1つの場合、コンポーネントは、以前の場合と同様に、または以前の場合の代わりに、コンピュータプログラムコードを実行する1つ以上の図形処理ユニットによって実装され得る。特定の場合、コンポーネントは、例えば複数のプロセッサ及び/または図形処理ユニットのコアで、並行して実装された1つ以上の機能を介して実装され得る。
【0109】
特定の場合、上述の装置、システム、または方法は、ロボットデバイスを用いてまたはロボットデバイスのために実装され得る。これらの場合、厚さデータ、及び/または厚さデータを使用して生成されたオブジェクトインスタンスのマップは、3次元空間とインタラクションする、及び/または3次元空間をナビゲートするためにデバイスによって使用され得る。例えば、ロボットデバイスは、キャプチャデバイス、図2または図8に示すようなシステム、インタラクションエンジン、及び1つ以上のアクチュエータを含み得る。1つ以上のアクチュエータは、ロボットデバイスが、周辺の3次元環境とインタラクションすることを可能にし得る。1つの場合、ロボットデバイスは、ロボットデバイスが(例えば、図1Aのデバイス130により)特定の環境をナビゲートするにつれ、ビデオデータをキャプチャするように構成され得る。別の場合、ロボットデバイスは環境を走査し得る、またはモバイルデバイスもしくは別のロボットデバイスを有するユーザーなどのサードパーティから受け取ったビデオデータに作用し得る。ロボットデバイスがビデオデータを処理するとき、ロボットデバイスは、本明細書に説明する厚さデータ及び/またはオブジェクトインスタンスのマップを生成するように配置され得る。厚さデータ及び/またはオブジェクトインスタンスのマップは、ストリーミング(例えば、メモリに動的に格納)され得る、及び/またはデータストレージデバイスに格納され得る。インタラクションエンジンは、次に1つ以上のアクチュエータを制御して環境とインタラクションするために、生成されたデータにアクセスするように構成され得る。1つの場合、ロボットデバイスは、1つ以上の機能を実行するように配置され得る。例えば、ロボットデバイスは、マッピング機能を実行し、(例えば、緊急時に)特定の人物及び/またはオブジェクトの位置を突き止め、オブジェクトを移送し、清掃または保守などを実行するように配置され得る。1つ以上の機能を実行するために、ロボットデバイスは、環境とインタラクションするためのさらなる知覚デバイス、真空システム、及び/またはアクチュエータなどの追加のコンポーネントを含み得る。これらの機能は、次に厚さデータ及び/またはオブジェクトインスタンスのマップに基づいて適用され得る。例えば、家庭用ロボットは、オブジェクトの予測された厚さに基づいてオブジェクトを把持またはナビゲートするように構成され得る。
【0110】
上記の例は、例示的と理解されるべきである。さらなる例が想定される。任意の1つの例に関連して説明された任意の特徴は、単独でまたは説明した他の特徴と組み合わせて使用し得、また、他の任意の例の1つ以上の特徴、または任意の他の例の任意の組み合わせと組み合わせて使用し得ることを理解されたい。例えば、本明細書に説明する方法は、システムの例に関連して説明する特徴を含むように適合され得、逆もまた同様である。さらに、添付の特許請求の範囲で定義される本発明の範囲から逸脱することなく、上述されていない均等物及び修正が採用されてもよい。
【符号の説明】
【0111】
205 システム
210 入力インタフェース
215 分解エンジン
220 予測モデル
225 エンジン
230 出力インタフェース
235 入力インタフェース
240 シーン
245 データ
255 入力データ
260 測定値
図1A
図1B
図1C
図2
図3A
図3B
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
【国際調査報告】