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

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

▶ イントリンシック イノベーション エルエルシーの特許一覧

特許7591577姿勢の検出および測定のためのシステムおよび方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-20
(45)【発行日】2024-11-28
(54)【発明の名称】姿勢の検出および測定のためのシステムおよび方法
(51)【国際特許分類】
   G06T 7/73 20170101AFI20241121BHJP
【FI】
G06T7/73
【請求項の数】 14
(21)【出願番号】P 2022546126
(86)(22)【出願日】2021-01-29
(65)【公表番号】
(43)【公表日】2023-03-23
(86)【国際出願番号】 US2021015926
(87)【国際公開番号】W WO2021155308
(87)【国際公開日】2021-08-05
【審査請求日】2022-09-27
(31)【優先権主張番号】62/967,487
(32)【優先日】2020-01-29
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/968,038
(32)【優先日】2020-01-30
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】63/001,445
(32)【優先日】2020-03-29
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】521430508
【氏名又は名称】イントリンジック イノベーション エルエルシー
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100126480
【弁理士】
【氏名又は名称】佐藤 睦
(72)【発明者】
【氏名】カルラ,アガスティア
(72)【発明者】
【氏名】カダンビ,アチュタ
(72)【発明者】
【氏名】ベンカタラマン,カーティク
(72)【発明者】
【氏名】ターマジヤン,ベージ
【審査官】▲柳▼谷 侑
(56)【参考文献】
【文献】特開2013-050947(JP,A)
【文献】特開2019-091138(JP,A)
【文献】特開2019-220014(JP,A)
【文献】特開2019-109691(JP,A)
【文献】特開2019-175093(JP,A)
【文献】特開2017-102622(JP,A)
【文献】米国特許出願公開第2019/0180409(US,A1)
【文献】特開2015-115041(JP,A)
【文献】Yunhao Ba et al.,Physics-based Neural Networks for Shape from Polarization,[online],2019年03月25日,https://arxiv.org/abs/1903.10210
【文献】Zhaopeng Cui et al.,Polarimetric Relative Pose Estimation,[online],2020年02月27日, https://ieeexplore.ieee.org/document/9009074
(58)【調査した分野】(Int.Cl.,DB名)
G06T 1/00 - 1/40
G06T 3/00 - 7/90
G06V 10/00 - 20/90
G06V 30/418
G06V 40/16
(57)【特許請求の範囲】
【請求項1】
オブジェクトの姿勢を推定する方法であって、
前記オブジェクトに対して複数のビューポイントから捕捉された、前記オブジェクトの複数の画像を受け取ることであって、前記複数の画像は偏光情報を含む、前記複数の画像を受け取ることと、
前記複数の画像のうちの少なくとも1つから前記オブジェクトの初期の推定姿勢を計算することに基づいて、前記オブジェクトの現在の姿勢を初期化することと、
複数のビューポイントから捕捉された前記複数の画像に対してインスタンスセグメンテーション処理を実行することと、
前記インスタンスセグメンテーション処理によって検出された前記オブジェクトのインスタンスから、前記オブジェクトの画像パッチを抽出することと、
前記複数の画像の各々から、前記オブジェクトに関連付けられた複数の2Dキーポイントを予測することであって、前記抽出された画像パッチを深層学習キーポイント検出器に提供することを含前記深層学習キーポイント検出器は、前記画像の前記偏光情報に基づいて2Dキーポイントを計算するように構成されている、前記複数の2Dキーポイントを予測することと、
前記2Dキーポイントと、前記現在の姿勢に従って配置され、前記ビューポイントの各々に投影される、前記オブジェクトの3Dモデルに関連付けられた複数の3Dキーポイントとの間の複数の差に基づいて、コスト関数を最小化する更新された姿勢を計算することと、を含む、方法。
【請求項2】
前記複数の差の各々は、前記ビューポイントのうちの異なるビューポイントに対応し、
前記差の各々は、前記ビューポイントのうちのビューポイントに関して、
前記ビューポイントに対応する前記複数の画像のうちの画像に関連付けられた前記複数の2Dキーポイントと、
前記現在の姿勢に配置された前記3Dモデルの前記3Dキーポイントを前記ビューポイントに投影することと、の間の差に基づいて計算される、請求項1に記載の方法。
【請求項3】
前記コスト関数は、
【数1】
であり、式中、R、Tは、前記オブジェクトの前記姿勢であり、iは、N個の3Dキーポイントを反復処理するインデックスであり、jは、M個のビューポイントを反復処理するインデックスであり、cijは、j番目のビューポイントに対応する画像のi番目のキーポイントの対応するキーポイント予測[uij,vij]の信頼度であり、R、T、Kは、j番目のビューポイントから画像を捕捉するために使用されるj番目のカメラの外部パラメータおよび内部パラメータであり、[x,y,z]は、i番目の3Dキーポイントである、請求項2に記載の方法。
【請求項4】
前記コスト関数は、
【数2】
に従って前記オブジェクトにおける対称性をさらに説明し、式中、R、Tは、前記オブジェクトの前記姿勢であり、iは、N個の3Dキーポイントを反復処理するインデックスであり、jは、M個のビューポイントを反復処理するインデックスであり、cijは、j番目のビューポイントからの画像のi番目のキーポイントの対応するキーポイント予測[uij,vij]の信頼度であり、R、T、Kは、j番目のビューポイントからの前記画像を捕捉するために使用される前記j番目のカメラの外部パラメータおよび内部パラメータであり、[x,y,z]は、i番目の3Dキーポイントであり、Sは、前記オブジェクトの異なる対称性間の変換であり、vは、j番目のビューである、請求項2に記載の方法。
【請求項5】
前記深層学習キーポイント検出器は、合成された偏光情報および合成されたキーポイントラベルを含む、合成されたトレーニングデータに基づいてトレーニングされる、請求項に記載の方法。
【請求項6】
オブジェクトの姿勢を推定する方法であって、
前記オブジェクトに対して複数のビューポイントから捕捉された、前記オブジェクトの複数の画像を受け取ることであって、前記複数の画像は偏光情報を含む、前記複数の画像を受け取ることと、
前記複数の画像のうちの少なくとも1つから前記オブジェクトの初期の推定姿勢を計算することに基づいて、前記オブジェクトの現在の姿勢を初期化することと、
複数のビューポイントから捕捉された前記複数の画像に対してインスタンスセグメンテーション処理を実行することと、
前記インスタンスセグメンテーション処理によって検出された前記オブジェクトのインスタンスから、前記オブジェクトの画像パッチを抽出することと、
前記複数の画像の各々から、前記オブジェクトに関連付けられた複数の2Dキーポイントを予測することであって、前記抽出された画像パッチをキーポイント検出器に提供することを含む、前記複数の2Dキーポイントを予測することと、
前記2Dキーポイントと、前記現在の姿勢に従って配置され、前記ビューポイントの各々に投影される、前記オブジェクトの3Dモデルに関連付けられた複数の3Dキーポイントとの間の複数の差に基づいて、コスト関数を最小化する更新された姿勢を計算することと、を含み、
前記方法は、前記3Dモデルを、前記偏光情報を用いて位置合わせすることによって、前記更新された姿勢を精緻化することをさらに含む、方法。
【請求項7】
前記更新された姿勢を前記精緻化することは、
前記画像内の前記オブジェクトの1つ以上のエッジを検出して、1つ以上の測定されたエッジ画像を生成することと、
前記1つ以上の測定されたエッジの前記現在の姿勢で配置された前記3Dモデルのレンダリングされたエッジ画像間の対応を検出することと、
前記検出された対応に基づいて、マルチビューのパースペクティブnポイントを使用して、前記更新された姿勢を繰り返し精緻化することと、を含む、請求項に記載の方法。
【請求項8】
前記エッジは、
前記偏光情報に基づいて表面法線を計算することと、
前記表面法線の不連続点で前記オブジェクトのエッジを検出することと、によって検出される、請求項に記載の方法。
【請求項9】
前記エッジは、
前記画像から複数のインスタンスセグメンテーションマップを計算することと、
前記インスタンスセグメンテーションマップ内の前記オブジェクトのインスタンスの境界で前記オブジェクトのエッジを検出することと、によって検出される、請求項に記載の方法。
【請求項10】
前記更新された姿勢を前記精緻化することは、
前記偏光情報に基づいて、前記オブジェクトの測定された表面法線を計算することと、
前記更新された姿勢に基づいて、前記オブジェクトの前記3Dモデルを置くことと、
前記3Dモデルの前記姿勢を繰り返し更新して、前記3Dモデルの前記表面法線を、前記測定された表面法線に位置合わせすることと、を含む、請求項に記載の方法。
【請求項11】
システムであって、
メインカメラと、
前記メインカメラから離間した1台以上のサポートカメラであって、前記メインカメラおよび前記1台以上のサポートカメラが重なり合う視野を有する、サポートカメラと、
プロセッサとメモリとを含む姿勢推定器と、を備え、前記メモリは、命令を格納し、前記命令は、前記プロセッサによって実行されたときに、前記プロセッサに、前記メインカメラ、前記1台以上のサポートカメラを制御させ、請求項1~10のいずれか一項に記載の方法を実施させる、システム。
【請求項12】
前記メインカメラおよび前記1台以上のサポートカメラは、パッシブカメラシステムを形成する、請求項11に記載のシステム。
【請求項13】
前記メインカメラおよび前記サポートカメラの前記重なり合う視野内の領域に構造化された光を投影するように構成された、アクティブプロジェクタをさらに備える、請求項11に記載のシステム。
【請求項14】
請求項11記載の前記システムを自動的に較正するための方法であって、
前記オブジェクトの複数の画像を受け取ることは、前記メインカメラおよび前記1台以上のサポートカメラの前記重なり合う視野内のオブジェクトの複数の画像を受け取ることを含み、
前記更新された姿勢を計算することは、前記メインカメラおよび前記1台以上のサポートカメラの更新されたビューポイントを計算することと、を含む、方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2020年1月29日にUnited States Patent and Trademark Officeに出願された米国仮特許出願第62/967,487号、2020年1月30日にUnited States Patent and Trademark Officeに出願された米国仮特許出願第62/968,038号、および2020年3月29日にUnited States Patent and Trademark Officeに出願された米国仮特許出願第63/001,445号の優先権および利益を主張し、それらの開示全体が参照によって本明細書に組み込まれる。
【0002】
本開示の実施形態の態様は、センサの分野に関し、特に、シーン内のオブジェクトの位置および配向などの姿勢の測定を実施するためのシステムおよび方法に関する。
【背景技術】
【0003】
ロボット工学などの自動化の多くの分野では、センサを使用して、実世界のオブジェクトの物理的な関係を決定する。例えば、ロボットシステムは多くの場合、例えば、様々な配向で到達する可能性のあるオブジェクトを掴み、そのオブジェクトを所望の位置に再配向し、そのオブジェクトを別のオブジェクトに接続するために、センシングシステムを使用して様々な物理オブジェクトの場所を測定する。基準座標系に対するオブジェクトの位置および配向は、「姿勢(pose)」と呼ばれることがあり、三次元座標系では一般に、3つの軸を中心とした回転および3つの軸に沿った並進の6つの自由度を含む。
【発明の概要】
【0004】
本開示の実施形態の態様は、センサの分野に関し、特に、シーン内のオブジェクトの姿勢の測定を実施するためのシステムおよび方法に関する。
【0005】
本開示の一実施形態によれば、オブジェクトの姿勢を推定する方法は、オブジェクトに対して複数のビューポイントから捕捉された、オブジェクトの複数の画像を受け取ることと、複数の画像のうちの少なくとも1つからオブジェクトの初期の推定姿勢を計算することに基づいて、オブジェクトの現在の姿勢を初期化することと、複数の画像の各々から、オブジェクトに関連付けられた複数の2Dキーポイントを予測することと、2Dキーポイントと、現在の姿勢に従って配置され、ビューポイントの各々に投影される、オブジェクトの3Dモデルに関連付けられた複数の3Dキーポイントとの間の複数の差に基づいて、コスト関数を最小化する更新された姿勢を計算することと、を含み得る。
【0006】
複数の差の各々は、ビューポイントのうちの異なるビューポイントに対応し得、かつ差の各々は、ビューポイントのうちのビューポイントに関して、ビューポイントに対応する複数の画像のうちの画像に関連付けられた複数の2Dキーポイントと、現在の姿勢に配置された3Dモデルの3Dキーポイントをビューポイントに投影することと、の間の差に基づいて計算され得る。
【0007】
コスト関数は、
【数1】

であり得、式中、R、Tは、オブジェクトの姿勢であり、iは、N個の3Dキーポイントを反復処理するインデックスであり、jは、M個のビューポイントを反復処理するインデックスであり、cijは、j番目のビューポイントに対応する画像のi番目のキーポイントの対応するキーポイント予測[uij,vij]の信頼度であり、R、T、Kは、j番目のビューポイントから画像を捕捉するために使用されるj番目のカメラの外部パラメータおよび内部パラメータであり、[x,y,z]は、i番目の3Dキーポイントである。
【0008】
コスト関数は、
【数2】

に従ってオブジェクトにおける対称性をさらに説明し得、式中、R、Tは、オブジェクトの姿勢であり、iは、N個の3Dキーポイントを反復処理するインデックスであり、jは、M個のビューポイントを反復処理するインデックスであり、cijは、j番目のビューポイントからの画像のi番目のキーポイントの対応するキーポイント予測[uij,vij]の信頼度であり、R、T、Kは、j番目のビューポイントからの画像を捕捉するために使用されるj番目のカメラの外部パラメータおよび内部パラメータであり、[x,y,z]は、i番目の3Dキーポイントであり、Sは、オブジェクトの異なる対称性間の変換であり、vは、j番目のビューである。
【0009】
複数の2Dキーポイントを予測することは、深層学習キーポイント検出器を使用して実施され得る。
【0010】
画像は、偏光情報を含み得、深層学習キーポイント検出器は、画像の偏光情報に基づいて予測2Dキーポイントを計算するように構成され得る。
【0011】
深層学習キーポイント検出器は、合成された偏光情報および合成されたキーポイントラベルを含む、合成されたトレーニングデータに基づいてトレーニングされ得る。
【0012】
画像は、偏光情報を含み得、方法は、3Dモデルを、偏光情報を用いて位置合わせすることによって、更新された姿勢を精緻化することをさらに含み得る。
【0013】
更新された姿勢を精緻化することは、画像内のオブジェクトの1つ以上のエッジを検出して、1つ以上の測定されたエッジ画像を生成することと、1つ以上の測定されたエッジの現在の姿勢で配置された3Dモデルのレンダリングされたエッジ画像間の対応を検出することと、検出された対応に基づいて、マルチビューのパースペクティブnポイントを使用して、更新された姿勢を繰り返し精緻化することと、を含み得る。
【0014】
エッジは、偏光情報に基づいて表面法線を計算することと、表面法線の不連続点でオブジェクトのエッジを検出することと、によって検出され得る。
【0015】
エッジは、画像から複数のインスタンスセグメンテーションマップを計算することと、インスタンスセグメンテーションマップ内のオブジェクトのインスタンスの境界でオブジェクトのエッジを検出することと、によって検出され得る。
【0016】
更新された姿勢を精緻化することは、偏光情報に基づいて、オブジェクトの測定された表面法線を計算することと、更新された姿勢に基づいて、オブジェクトの3Dモデルを置くことと、3Dモデルの姿勢を繰り返し更新して、3Dモデルの表面法線を、測定された表面法線に位置合わせすることと、を含み得る。
【0017】
本開示の一実施形態によれば、画像を処理するためのコンピュータ実装方法は、コンピューティングシステムによって、第1の画像および第2の画像を受け取ることと、コンピューティングシステムによって、ニューラルネットワークを呼び出し、第1の画像内のオブジェクトの第1のインスタンスと、第2の画像内のオブジェクトの第2のインスタンスとを検出することと、第1の画像内のオブジェクトの第1のインスタンスの第1の領域と、第2の画像内のオブジェクトの第2のインスタンスの第2の領域とを決定することと、第1の領域内のオブジェクトの第1のインスタンスと第2の領域内のオブジェクトの第2のインスタンスとの間の対応を決定することと、対応を決定することに基づいて、出力を生成することと、を含む。
【0018】
方法は、オブジェクトの第1のインスタンスの第1の領域を決定することに基づいて、第1のセグメンテーションマスクを生成することと、オブジェクトの第2のインスタンスの第2の領域を決定することに基づく第2のセグメンテーションマスクを生成することと、をさらに含み得る。
【0019】
方法は、第1の領域内のオブジェクトの第1のインスタンスと第2の領域内のオブジェクトの第2のインスタンスとの間の対応を決定することに応答して、第2の処理タスクを、第1の領域および第2の領域に限定することをさらに含み得る。
【0020】
第2の処理タスクは、第1の領域内の1つ以上のピクセルと第2の領域内の1つ以上のピクセルとの対応を決定するためのものであり得る。
【0021】
第2の処理タスクは、第1の領域内の1つ以上のキーポイントと第2の領域内の1つ以上のキーポイントとの対応を決定するためのものであり得る。
【0022】
出力は、第1の画像と第2の画像との間の視差の大きさであり得る。
【0023】
出力は、オブジェクトの第1のインスタンスとオブジェクトの第2のインスタンスとの間の三次元の相対的な姿勢であり得る。
【0024】
第1の画像は、第1の偏光された画像であり得、第1の画像は、偏光カメラによって捕捉され得る。
【0025】
第1の画像は、オブジェクトの第1のビューポイントを提供し得、第2の画像は、第1のビューポイントとは異なるオブジェクトの第2のビューポイントを提供し得る。
【0026】
第1の領域内のオブジェクトの第1のインスタンスと第2の領域内のオブジェクトの第2のインスタンスとの間の対応を決定することは、オブジェクトの第1のインスタンスに関連付けられたエピポーラ線を識別することと、エピポーラ線に沿った第2の画像の検索を制限することと、を含み得る。
【0027】
本開示の一実施形態によれば、シーン内の1つ以上のオブジェクトの姿勢推定値を計算する方法は、シーン内の1つ以上のオブジェクトの複数の画像を、複数のビューポイントから捕捉することと、画像に対してインスタンスセグメンテーションを実施して、シーン内の1つ以上の検出されたオブジェクトの複数のインスタンスセグメンテーションマップを計算することと、インスタンスセグメンテーションマップ間でインスタンスセグメンテーションをマッチングすることにより、1つ以上のオブジェクトの1つ以上の推定深度を計算することと、複数のビューポイントにわたる複数の画像に基づいて、1つ以上の検出されたオブジェクトの各々について、複数のキーポイントのマルチビュー同時最適化に従って1つ以上のオブジェクトの姿勢を推定することと、を含む。インスタンスセグメンテーションは、上記の段落のいずれかに記載のインスタンスセグメンテーションの方法を使用して実施され得る。
【0028】
姿勢を推定することは、シーン内の1つ以上の検出されたオブジェクトの各々について、検出されたオブジェクトのうちの同じものに対応する画像の領域を、請求項1~12のいずれか一項に記載の方法に提供することを含み得る。
【0029】
本開示の一実施形態によれば、システムは、メインカメラと、メインカメラから離間した1台以上のサポートカメラであって、メインカメラおよび1台以上のサポートカメラが重なり合う視野を有する、サポートカメラと、プロセッサとメモリとを含む姿勢推定器と、を含み、メモリは、命令を格納し、命令は、プロセッサによって実行されたときに、プロセッサに、メインカメラ、1台以上のサポートカメラを制御させ、上記のいずれかの方法を実施させる。
【0030】
メインカメラおよび1台以上のサポートカメラは、パッシブカメラシステムを形成し得る。
【0031】
システムは、メインカメラおよびサポートカメラの重なり合う視野内の領域に構造化された光を投影するように構成された、アクティブプロジェクタをさらに備え得る。
【0032】
本開示の一実施形態によれば、上記に従ってカメラシステムを自動的に較正するための方法は、メインカメラおよび1台以上のサポートカメラの重なり合う視野内のオブジェクトの複数の画像を受け取ることであって、画像は、オブジェクトに対して複数のビューポイントから捕捉される、当該複数の画像を受け取ることと、複数の画像のうちの少なくとも1つからオブジェクトの初期の推定姿勢を計算することに基づいて、オブジェクトの現在の姿勢を初期化することと、複数の画像の各々から、オブジェクトに関連付けられた複数の2Dキーポイントを予測することと、2Dキーポイントと、現在の姿勢に従って配置され、ビューポイントの各々に投影される、オブジェクトの3Dモデルに関連付けられた複数の3Dキーポイントとの間の複数の差に基づいて、コスト関数を最小化する、オブジェクトの更新された姿勢と、メインカメラおよび1台以上のサポートカメラの更新されたビューポイントとを計算することと、を含む。
【0033】
コスト関数は、
【数3】

であり得、式中、R、Tは、オブジェクトの姿勢であり、iは、N個の3Dキーポイントを反復処理するインデックスであり、jは、M個のビューポイントを反復処理するインデックスであり、cijは、j番目のビューポイントに対応する画像のi番目のキーポイントの対応するキーポイント予測[uij,vij]の信頼度であり、R、T、Kは、j番目のビューポイントから画像を捕捉するために使用されるj番目のカメラの外部パラメータおよび内部パラメータであり、[x,y,z]は、i番目の3Dキーポイントである。
【図面の簡単な説明】
【0034】
添付の図面は、明細書とともに本発明の例示的な実施形態を示し、記述とともに本発明の原理を説明するのに役立つ。
【0035】
図1A】本開示の一実施形態による姿勢推定システムを描写する概略図である。
図1B】光と透明オブジェクトおよび非透明(例えば、拡散および/または反射)オブジェクトとの相互作用のハイレベルな描写である。
図1C】本開示の一実施形態による偏光カメラモジュールの斜視図である。
図1D】本開示の一実施形態による偏光カメラモジュールの一部分の断面図である。
図1E】本開示の一実施形態によるステレオ偏光カメラシステムの斜視図である。
図2A】本開示の一実施形態による姿勢を推定するための方法を描写するフローチャートである。
図2B】本開示の一実施形態による姿勢推定システムのカメラによって捕捉されたオブジェクトの配置を含むシーンの、4つのビューを描写する。
図2C】本開示の一実施形態による、姿勢推定システムのカメラによって捕捉された4つの異なるビューポイントからのオブジェクトの、同じインスタンスの4つの異なるビューで検出された2Dキーポイントの描写である。
図2D】カメラのうちの1台から捕捉された画像から抽出された、シーン内の単一のオブジェクトを描写するクロップと、本開示の一実施形態による姿勢推定器100によって計算された単一のオブジェクトの推定姿勢に従って、シーン内で姿勢がとられたオブジェクトの3Dモデルの重なり合ったレンダリングを用いた同じクロップとを描写する。
図2E】カメラのうちの1台から捕捉された複数のオブジェクトを含むシーンの画像と、本開示の一実施形態による姿勢推定器100によって検出されその姿勢が本開示の一実施形態による姿勢推定器100によるものである、オブジェクトの推定姿勢に従ってシーン内で姿勢がとられた、オブジェクトの3Dモデルの重なり合ったレンダリングを用いたオブジェクトとを描写する。
図3】オブジェクトの複数のビューに基づいてオブジェクトの姿勢を推定するための、本開示の一実施形態による方法を描写するフローチャートである。
図4】本開示の一実施形態による、姿勢のエッジベースの精緻化のための方法のフローチャートである。
図5】本開示の一実施形態による、偏光データに基づく姿勢の表面法線ベースの精密化のための方法を示すフローチャートである。
図6】様々なモダリティの画像に基づいてコンピュータビジョンタスクを実施するために統計モデルをトレーニングするためのシステムを描写するブロック図であり、トレーニングは本開示の実施形態によって生成されたデータを使用して実施される。
図7A】2つの透明なボール(「なりすまし」)およびいくらかの背景の乱雑さを含む別のシーンを描写する写真のプリントアウトの上に、1つの本物の透明なボールが置かれたシーンの画像または強度画像である。
図7B】透明ボールのインスタンスを識別する比較用マスク領域ベースの畳み込みニューラルネットワーク(Mask R-CNN)によって計算されたセグメンテーションマスクが重ね合わされた図7Aの強度画像を示し、本物の透明なボールはインスタンスとして正しく識別され、2つのなりすましはインスタンスとして誤って識別されている。
図7C】本発明の一実施形態による、シーンを捕捉した偏光生フレームから計算された偏光角度画像である。
図7D】本発明の一実施形態による偏光データを使用して計算されたセグメンテーションマスクが重ね合わされた図7Aの強度画像を描写しており、本物の透明なボールはインスタンスとして正しく識別され、2つのなりすましはインスタンスとして正しく除外されている。
図8】約1.5の屈折率を有する表面への入射角の範囲にわたる透過光対反射光のエネルギーのグラフである。
図9】本開示の一実施形態による合成知恵者を生成するためのパイプラインを描写するフローチャートである。
図10】本開示の一実施形態による偏光カメラシステムを使用して複数の角度から本物の物質をサンプリングする概略図である。
図11】本開示の一実施形態によるトレーニングデータセットを生成するための方法を描写するフローチャートである。
図12】一実施形態によるオブジェクトレベルの対応のための処理のフロー図である。
図13】一実施形態によるステップのインスタンスセグメンテーションおよびマスク生成のためのアーキテクチャのブロック図である。
図14】一実施形態による、第1のセグメンテーションマスク内の特定のオブジェクトインスタンスに対するオブジェクトレベルの対応を識別するために、ステップ1204(図12)で採用されるマッチングアルゴリズムのより詳細なフロー図である。
図15】一実施形態による、図2Bの画像211-Lに対して生成されたインスタンスセグメンテーションマスクである。
図16A-16B】一実施形態による、図12に関して説明したオブジェクトレベルの対応を決定するための処理の結果を描写する画像である。
図17】本開示の一実施形態によるカメラ自動較正の概略描写である。
図18】ロボットアームの精度および再現性がロボットの姿勢および位置の両方の関数であることを描写する概略図である。
【発明を実施するための形態】
【0036】
以下の詳細な説明では、本発明の特定の例示的な実施形態のみを実例として示し、説明する。当業者が認識するであろうように、本発明は、多くの異なる形態で具現化することができ、本明細書に記載の実施形態に限定されると解釈されるべきではない。
【0037】
姿勢推定とは、一般に、オブジェクトの場所および配向を推定または予測するためのコンピュータビジョン技術を指す。姿勢推定の一部の形態は、人物の頭、腕、脚、および関節の位置および配向など、人物の物理的な姿勢を検出することを指す。姿勢推定は、シーン内の様々な生物または無生物の物理オブジェクトの位置および配向をより一般的に指す場合もある。例えば、自律的にナビゲートするロボットは、衝突を回避し、他の移動オブジェクトの軌道を予測するために、周囲のオブジェクトの物理的な姿勢に関する情報を維持し得る。別の例として、製造に使用するロボット工学の場合、ロボットアームが正しい角度から部品に接近して、製品の他の部品と組み立てるための部品を適切に掴めるようにするため(例えば、ねじの頭を掴んでねじを穴にねじ込むが、ねじの先端を掴むと穴に挿入するのが難しくなるであろう)、姿勢推定をロボットが使用して、物理的な製造部品の位置および配向を検出することが可能である。
【0038】
本開示の実施形態の態様は、シーン内の多種多様なオブジェクトの自動6自由度(6DoF)推定のためのシステムおよび方法に関する。三次元空間の6自由度には、位置座標(例えば、三次元グローバル座標系におけるx、y、およびz並進座標)および配向座標(例えば、三次元座標系におけるθ、φ、およびψ回転座標)が含まれる。
【0039】
本開示の実施形態のいくつかの態様は、6DoF推定を実施して、単一のオブジェクトの姿勢を計算するため、またはこれらのオブジェクトの乱雑な箱内の複数のオブジェクトの姿勢を計算するための、特定の技術に関する。多くのオブジェクトは、異なる双方向反射率分布関数(BRDF)を有するため、深度捕捉などの比較方法を用いて6DoF推定の単一のフレームワークを実現することは困難である。これに対処するために、本開示の実施形態のいくつかの態様は、本開示の実施形態による撮像システムによって撮像された任意のオブジェクトの姿勢を推定するために、シミュレーション、物理ベースの学習、およびマルチビュージオメトリを使用して姿勢推定値または測定値を計算することに関する。
【0040】
図1Aは、本開示の一実施形態による姿勢推定システム1を描写する概略図である。図1Aに示されるように、メインカメラ10は、メインカメラ10の視野12がシーン内のオブジェクト22の配置20を捕捉するように配置される。図1Aに示される実施形態では、メインカメラ10は、サポートプラットフォーム40の上に配置される(例えば、重力の方向に沿ってオブジェクト22から離間される)が、本開示の実施形態はこれに限定されず、例えば、姿勢推定器が、オブジェクト22の下向きの角度の視野を有するように配置されてもよい。
【0041】
いくつかの実施形態では、1台以上のサポートカメラ30が、オブジェクト22の配置20を含むシーンの周りに異なる姿勢で配置される。したがって、サポートカメラ30、例えば第1のサポートカメラ30a、第2のサポートカメラ30b、および第3のサポートカメラ30cの各々は、異なるビューポイント(例えば、それぞれ第1のビューポイント、第2のビューポイント、および第3のビューポイント)からオブジェクト22の異なるビューを捕捉する。図1Aは、3台のサポートカメラ30を示しているが、本開示の実施形態は、それに限定されず、例えば、少なくとも1台のサポートカメラ30を含んでよく、4台以上のサポートカメラ30を含んでもよい。
【0042】
サポートプラットフォーム40は、ベンチトップ、テーブルトップ、コンベアベルトなど、オブジェクト22を支持する任意の表面であってよい。サポートプラットフォーム40は必須ではなく、オブジェクト22または姿勢推定システムによって姿勢が推定され得るオブジェクト22は、ロボットの可動アーム、オーバーヘッドコンベアシステムなどの他のデバイスによって支持されてもよい。
【0043】
本開示の様々な実施形態による姿勢推定器100は、メインカメラ10およびサポートカメラ30によって捕捉された情報に基づいて、オブジェクト22の姿勢を計算または推定するように構成されている。
【0044】
より詳細には、メインカメラ10およびサポートカメラ30は、それらの視野12内で検出されたオブジェクト22の姿勢を推定するように構成されている。図1Aに示される実施形態では、オブジェクト22は、球、直角柱、および円柱などの単純な三次元立体として抽象的に描写されている。ただし、本開示の実施形態はこれに限定されず、姿勢推定器の特徴付けは、カメラに対する姿勢を明確に定義することができる任意のオブジェクトを使用して実施され得る。
【0045】
特に、「姿勢」とは、基準座標系に対するオブジェクトの位置および配向を指す。例えば、メインカメラ10を原点として基準座標系を定義することができ、メインカメラ10の光軸に沿った方向(例えば、メインカメラ10の視野12の中心を通る方向)は、座標系のz軸として定義され、x軸およびy軸は、互いに直交し、かつz軸に直交するように定義される。(本開示の実施形態は、この特定の座標系に限定されず、当業者は、姿勢が、異なる座標系における同等の表現に数学的に変換され得ることを理解するであろう。)
【0046】
各オブジェクト22はまた、その特定の形状に関して定義される、それ自体の対応する座標系に関連付けることができる。例えば、辺の長さが異なる直角柱には、正準座標系が定義されている場合があり、ここで、x軸はその最短方向に平行であり、z軸はその最長方向に平行であり、y軸はx軸およびz軸に直交し、原点はオブジェクト22の重心に位置する。
【0047】
一般に、三次元座標系では、オブジェクト22は、3つの軸を中心とした回転(例えば、x軸、y軸、およびz軸を中心とした回転)および3つの軸に沿った並進(例えば、x軸、y軸、およびz軸に沿った並進)の、6自由度を有する。明確にするために、オブジェクト22の対称性は、本明細書では詳細に考察しないが、例えば、異なる対称性に対して複数の可能な姿勢を識別することによって(例えば、直角柱のz軸の正対負の方向を選択する場合)、または姿勢のいくつかの回転成分を無視することによって(例えば、直円柱はその軸を中心に回転対称である)、対処され得る。
【0048】
いくつかの実施形態では、オブジェクトの配置20におけるオブジェクト22の各タイプの正準的または理想的なバージョンを表す、三次元(3D)モデルまたはコンピュータ支援設計(CAD)モデルが利用可能であると想定される。例えば、本開示のいくつかの実施形態では、オブジェクト22は、ある部品から次の部品まで実質的に均一な外観を有する製造された部品の個々のインスタンスである。このような製造された部品の例として、ねじ、ボルト、ナット、コネクタ、およびスプリング、ならびに電子回路部品(例えば、パッケージ化された集積回路、発光ダイオード、スイッチ、抵抗器など)、実験用品(例えば、テストチューブ、PCRチューブ、ボトル、キャップ、蓋、ピペットチップ、サンプルプレートなど)、および製造された部品(例えば、ハンドル、スイッチキャップ、電球など)などの特殊部品が挙げられる。したがって、これらの状況では、配置20内の任意の特定のオブジェクト22の理想的または正準的な形状を定義するCADモデルを使用して、オブジェクトに対する座標系(例えば、CADモデルの表現で使用される座標系)を定義することができる。
【0049】
基準座標系(または例えば姿勢推定システムに関して定義されたカメラ空間)およびオブジェクト座標系(または例えばオブジェクトのうちの1つに関して定義されたオブジェクト空間)に基づいて、オブジェクトの姿勢は、オブジェクト空間からカメラ空間への剛体変換(回転および並進)とみなされ得る。カメラ空間1におけるオブジェクト1の姿勢は、
【数4】

のように表すことができ、オブジェクト1空間からカメラ空間への変換は、行列
【数5】

で表すことができる。ここで、回転部分行列R
【数6】

は、オブジェクト空間からカメラ空間への3つの軸に沿った回転を表し、並進部分行列T
【数7】

は、オブジェクト空間からカメラ空間への3つの軸に沿った並進を表す。
【0050】
2つのオブジェクト、オブジェクトAおよびオブジェクトBが、同じカメラC座標フレーム内にある場合、カメラCに対するオブジェクトAの姿勢を示すためにPCAという表記が使用され、カメラCに対するオブジェクトBの姿勢を示すためにPCBが使用される。便宜上、本明細書では、オブジェクトの姿勢は基準座標系に基づいて表されると仮定するため、カメラ空間Cに対するオブジェクトAおよびBの姿勢は、それぞれPおよびPで表すことができる。
【0051】
オブジェクトAおよびオブジェクトBが実際には同じオブジェクトであるが、異なる姿勢推定測定中に実施され、残留姿勢PerrまたはPAB(PAB=Perr)を使用して、姿勢Pから姿勢Pへの変換を示す場合、
err=P(1)
の関係が成り立つ必要があり、したがって以下となる。
【数8】
【0052】
理想的には、姿勢推定値PおよびPの測定値間でオブジェクトが姿勢推定器10に対して移動(例えば、並進または回転)していないと仮定すると、PおよびPは両方とも同じになるべきであり、Perrは、(例えば、姿勢間に誤差がないことを示す)恒等行列
【数9】
【0053】
同様にして、特定のオブジェクトの姿勢は、2つの異なるカメラからのビューに対して計算することができる。例えば、メインカメラCによって捕捉されたオブジェクトAの画像を使用して、メインカメラCに対するオブジェクトAの姿勢PCAを計算することができる。同様に、第1のサポートカメラSによって捕捉されたオブジェクトAの画像を使用して、サポートカメラSに対するオブジェクトAの姿勢
【数10】

を計算することができる。メインカメラCおよびサポートカメラSの相対的な姿勢が既知の場合、姿勢
【数11】

は、メインカメラCの座標系に変換することができる。
【0054】
理想的には、メインカメラCおよびサポートカメラSの既知の相対的な姿勢が正確であり、2つのカメラによって捕捉されたデータに基づいて計算された姿勢が正確であると仮定すると、PCAおよび
【数12】

は両方とも同じになるべきであり、Perrは(例えば、姿勢間に誤差がないことを示す)恒等行列
【数13】
【0055】
姿勢推定器10によって計算された推定値に基づいて計算された、実際に測定された値と恒等行列との間の差Perrは、誤差
err=||R(Perr)|| (3)
err=||T(Perr)|| (4)
であると見なされ得、ここで、Rerrは回転誤差、Terrは並進誤差である。関数R( )は、Perrを軸角度に変換し、この場合、大きさは回転差であり、関数T( )は、姿勢行列の並進成分を抽出する。
【0056】
回転行列Rからの軸角度表現は、以下の式
Tr(R)=1+2cosθ (5)
【数14】

で与えられ、ここで、Tr( )は、行列トレース(行列の対角要素の和)を表し、θは回転角度を表す。
【0057】
本開示の実施形態のいくつかの態様は、メインカメラ10およびサポートカメラ30にわたるオブジェクトの姿勢の同時推定に基づいて、シーン内のオブジェクト22の高精度の姿勢推定を計算することに関する。本開示の実施形態のいくつかの態様は、シーン内のオブジェクト22の姿勢の同時推定を計算することに基づくカメラシステムの較正にも関連する。
【0058】
姿勢推定ハードウェア
図1Aに示される実施形態では、姿勢推定システム1は、メインカメラ10。と、1つ以上のサポートカメラ30とを含む。本開示のいくつかの実施形態では、メインカメラ10はステレオカメラを含む。ステレオカメラの例として、基線に沿って互いに離間して置かれた少なくとも2台の単眼カメラを有するカメラシステムが挙げられ、ここで、単眼カメラは、重なり合う視野と、互いに実質的に平行な光軸とを有している。本開示の実施形態は、本明細書において、メインカメラ10およびサポートカメラ30がパッシブカメラ(例えば、専用の光プロジェクタに接続されておらず、代わりに周囲照明または他の光源を使用するカメラ)である実施形態で提示されるが、本開示の実施形態はこれに限定されず、1つ以上のアクティブ照明プロジェクタがカメラシステムに含まれ、それによって、アクティブ照明プロジェクタが構造化光またはパターンをシーン上に投影するように構成され得るアクティブカメラシステムを形成するという状況も含み得る。サポートカメラ30は、ステレオカメラ、単眼カメラ、またはそれらの組み合わせ(例えば、いくつかのステレオサポートカメラおよびいくつかの単眼サポートカメラ)であってもよい。
【0059】
メインカメラ10およびサポートカメラ30は、同じ撮像モダリティまたは異なる撮像モダリティを使用することができる。撮像モダリティの例には、モノクロ、カラー、赤外線、紫外線、熱、偏光、およびそれらの組み合わせが含まれる。
【0060】
図1B、1C、1D、および1Eは、本開示のいくつかの実施形態によるメインカメラ10の一部として使用され得る偏光カメラシステムの一例を提供する。
【0061】
光と透明なオブジェクトとの間の相互作用は豊富で複雑であるが、オブジェクトの素材によってそのオブジェクトの可視光下での透明度が決まる。多くの透明な家庭用オブジェクトでは、可視光の大部分が真っすぐに通過し、ごく一部分(屈折率に応じて約4%~約8%)が反射される。これは、スペクトルの可視部分の光が、透明なオブジェクト内の原子を励起するのに十分なエネルギーを有していないためである。その結果、透明なオブジェクトの背後にある(または透明なオブジェクトを通して可視である)オブジェクトのテクスチャ(例えば、外観)が、透明なオブジェクトの外観を支配する。例えば、透明なガラスのカップまたはタンブラーをテーブルの上で見る場合、タンブラーの反対側にあるオブジェクト(例えば、テーブルの表面)の外観が、概してカップを通して見えるものを支配する。この特性は、強度画像のみに基づいて、ガラス窓および光沢のある透明な塗料の層などの透明なオブジェクトの表面特徴を検出しようとするときに、いくつかの問題を引き起こす。
【0062】
図1Bは、光と透明なオブジェクトおよび不透明な(例えば、拡散および/または反射)オブジェクトとの相互作用の高レベルの描写である。図1Bに示されるように、偏光カメラ10は、不透明な背景オブジェクト42の前に透明なオブジェクト41を含むシーンの偏光生フレームを捕捉する。偏光カメラ10の画像センサ14に当たる光線43は、透明なオブジェクト41および背景オブジェクト42の両方からの偏光情報を含む。背景オブジェクト42から反射されて透明なオブジェクト41を通過する光45とは対照的に、透明なオブジェクト41から反射された光44のわずかな部分は強く偏光され、したがって偏光測定に大きな影響を与える。
【0063】
同様に、オブジェクトの表面に当たる光線は、様々な方法で表面の形状と相互作用する可能性がある。例えば、光沢塗料を施された表面は、図1Bに示されるように、不透明なオブジェクトの前にある透明なオブジェクトと実質的に同様に振る舞う可能性があり、光線と、光沢のある塗料の透明または半透明の層(またはクリアコート層)との間の相互作用により、表面から反射する光が、透明または半透明の層の特徴に基づいて(例えば、層の厚さおよび表面法線に基づいて)偏光され、これらはイメージセンサに当たる光線にエンコードされる。同様に、偏光からの形状(shape from polarization、SfP)理論に関して以下でより詳細に考察するように、表面の形状(例えば、表面法線の方向)の変化は、オブジェクトの表面によって反射される光の偏光に有意な変化を引き起こす可能性がある。例えば、滑らかな表面は、一般に全体を通して同じ偏光特性を示し得るが、表面に傷またはへこみがあるとそれらの領域の表面法線の方向が変わり、傷またはへこみに当たる光は、オブジェクトの表面の他の部分とは異なる方法で偏光、減衰、または反射する可能性がある。光と物質との間の相互作用のモデルでは、一般に、ジオメトリ、照明、および物質の3つの基本要素が考慮される。ジオメトリは、物質の形状に基づいている。照明には、照明の方向および色が含まれる。物質は、光の屈折率または角度反射/透過によってパラメータ化することができる。この角度反射は、双方向反射率分布関数(BRDF)として知られているが、他の関数形式の方が特定のシナリオをより正確に表している場合がある。例えば、双方向表面下散乱関数(BSSRDF)は、表面下散乱を示すマテリアル(例えば、大理石または蝋)の文脈においてより正確になるであろう。
【0064】
偏光カメラ10の画像センサ14に当たる光線43は、3つの測定可能な成分、すなわち光の強度(強度画像/I)、直線偏光された光のパーセンテージもしくは比率(直線偏光度/DOLP/ρ)、およびその直線偏光の方向(直線偏光の角度/AOLP/φ)を有する。これらの特性は、以下でより詳細に説明するように、透明なオブジェクトを検出するために姿勢推定器100によって使用され得る、撮像されるオブジェクトの表面曲率および物質に関する情報を符号化する。いくつかの実施形態では、1つ以上の偏光カメラを使用することによって、姿勢推定器100は、半透明のオブジェクトを通過する光、および/またはマルチパス誘導オブジェクトまたは非反射オブジェクト(例えば、艶消し黒色のオブジェクト)と相互作用する光の同様の偏光特性に基づいて、他の光学的に困難なオブジェクトを検出することができる。
【0065】
より詳細には、偏光カメラ10は、シーン1と画像センサ14との間の光路に置かれた偏光板または偏光フィルタまたは偏光マスク16をさらに含み得る。本開示の様々な実施形態によれば、偏光板または偏光マスク16は、偏光カメラ10が、偏光板を様々な指定角度(例えば、45°回転または60°回転または不均一な間隔の回転)に設定して、シーン1の画像を捕捉できるように構成されている。
【0066】
一例として、図1Bは、偏光マスク16が、カラーカメラの赤-緑-青(RGB)カラーフィルタ(例えば、Bayerフィルタ)と同様のやり方で画像センサ14のピクセルグリッドに位置合わせされた偏光モザイクである実施形態を描写する。画像センサ14内の各ピクセルがモザイクのカラーフィルタのパターンに従ってスペクトルの特定の部分(例えば、赤、緑、または青)の光を受け取るように、カラーフィルタモザイクが波長に基づいて入射光をフィルタリングする方法と同様のやり方で、偏光モザイクを使用する偏光マスク16は、異なるピクセルが異なる角度の直線偏光(例えば、0°、45°、90°、および135°、または0°、60°の角度、ならびに120°)で光を受け取るように、直線偏光に基づいて光をフィルタリングする。したがって、図1Bに示されるような偏光マスク16を使用する偏光カメラ10は、4つの異なる直線偏光で光を並行してまたは同時に捕捉することができる。偏光カメラの一例には、Wilsonville,OregonのFLIR(登録商標)Systems,Inc.によって製造されたBlackfly(登録商標)S偏光カメラがある。
【0067】
上記の説明は、偏光モザイクを使用する偏光カメラのいくつかの可能な実装に関するものであるが、本開示の実施形態は、それに限定されず、複数の異なる偏光で画像を捕捉することができる他のタイプの偏光カメラを包含する。例えば、偏光マスク16は、4つ未満の偏光もしくは5つ以上の異なる偏光を有することができ、または上記のものとは異なる角度で(例えば、0°、60°、および120°の偏光角、または0°、30°、60°、90°、120°、および150°の偏光角で)偏光を有することができる。別の例として、偏光マスク16は、(例えば、液晶層を含むことができる)電気光学変調器などの電子的に制御された偏光マスクを使用して実装することができ、その場合マスクの個々のピクセルの偏光角は、画像センサ14の異なる部分が異なる偏光を有する光を受けるように、独立して制御することができる。別の例として、電気光学変調器は、異なるフレームを捕捉するときに、異なる直線偏光の光を透過するように構成することができ、例えばこれにより、カメラが偏光マスク全体に順次異なる直線偏光板角度を設定して(例えば、0度、45度、90度、または135度の順に設定して)画像を捕捉するようにすることができる。別の例として、偏光マスク16は、異なる偏光生フレームが偏光カメラ10によって捕捉され、偏光フィルタがレンズ12に対して機械的に回転されて、異なる偏光角度で画像センサ14へ光を透過するように、機械的に回転する偏光フィルタを含むことができる。さらに、上の例は直線偏光フィルタの使用に関するが、本開示の実施形態はこれに限定されず、円偏光フィルタ(例えば、四分の一波長板を有する直線偏光フィルタ)を含む偏光カメラの使用も含む。したがって、本開示の様々な実施形態では、偏光カメラは、偏光フィルタを使用して、異なる直線偏光角および異なる円偏光(例えば、掌性)など、光の異なる偏光で複数の偏光生フレームを捕捉する。
【0068】
その結果、偏光カメラ10は、オブジェクト22の表面を含むシーンの複数の入力画像(または偏光生フレーム)を捕捉する。いくつかの実施形態では、偏光生フレームの各々は、異なる偏光角度φpol(例えば、0度、45度、90度、または135度)で偏光フィルタまたは偏光板の後ろで撮影された画像に対応する。偏光生フレームの各々は、シーン1に関して実質的に同じ姿勢から捕捉され(例えば、0度、45度、90度、または135度で偏光フィルタを用いて捕捉された画像はすべて、同じ場所および配向で偏光カメラ10によって捕捉される)、これは、シーンに対して異なる場所および配向から偏光生フレームを捕捉するのとは対照的である。偏光カメラ10は、電磁スペクトルの人間の目に可視である部分、人間の目に可視であるスペクトルの赤、緑、および青の部分、ならびに赤外線および紫外線などの電磁スペクトルの可視でない部分、などの電磁スペクトルの様々な異なる部分で光を検出するように構成され得る。
【0069】
図1Cは、本開示の一実施形態による偏光カメラモジュールの斜視図である。図1Dは、本開示の一実施形態による偏光カメラモジュールの一部分の断面図である。本開示の実施形態のいくつかの態様は、複数の偏光カメラ(例えば、各カメラがその光路に偏光フィルタを有する複数のカメラ)が互いに隣接してアレイ状に配置され、グループ内の画像を捕捉するように制御され得る(例えば、単一のトリガを使用して、システム内のすべてのカメラを制御して、画像を並行してまたは実質的に同時に捕捉することができる)偏光カメラモジュールに関する。アレイ内のカメラの各々の光路にある偏光フィルタにより、異なって偏光された光がカメラの画像センサに到達する。カメラシステム内の個々の偏光カメラは、互いに実質的に垂直である光軸を有し、互いに隣接して置かれ、かつカメラシステム内のカメラがシーン1の実質的に同じビューを捕捉するように、実質的に同じ視野を有するが、異なる偏光を有する。いくつかの実施形態では、個々の偏光カメラは、シーン内のオブジェクトまでのカメラシステムの設計された動作距離に基づいて、カメラ間の視差シフトが実質的に無視できるように配置され、設計された動作距離が大きい場合は、カメラ間のより大きな間隔が許容される場合がある。本開示のいくつかの実施形態では、偏光カメラモジュールは、少なくとも3つの偏光カメラを含み、各々が異なる偏光状態を持つ(例えば、各々が0°、60°、および120°などの異なる角度の直線偏光である)偏光フィルタを有する。
【0070】
例えば、図1Cに示される偏光カメラモジュール10’の実施形態では、4台のカメラ10A’、10B’、10C’、および10D’が2×2グリッドに配置されてカメラアレイを形成し、この4台のカメラは実質的に平行な光軸を有する。4台のカメラは、実質的に同時に、同じ露光設定(例えば、同じ絞り、露光長、およびゲインまたは「ISO」設定)を使用して画像を捕捉するように一緒に制御することができる。本開示の様々な実施形態では、別個のカメラ10A’、10B’、10C’、および10D’の各々は、異なる偏光フィルタを含む。
【0071】
図1Dは、図1Cに示される偏光カメラ10A’および10B’の2つの断面図を示す。図1Dに見られるように、各偏光カメラ(10A’および10B’)システムは、対応するレンズ、対応する画像センサ、および対応する偏光フィルタを含む。具体的には、偏光カメラ10A’は、レンズ12A’、画像センサ14A’、および偏光フィルタ16A’を含む。同様に、偏光カメラ10B’は、レンズ12B’、画像センサ14B’、および偏光フィルタ16B’を含む。本開示のいくつかの実施形態では、画像センサ、4台のカメラ10A’、10B’、10C’、および10D’は、同じ半導体ダイ上にモノリシックに形成され、4台のカメラは、異なる画像センサに対応するレンズ12用の別個の開口部を備えた同じハウジング内に位置する。同様に、偏光フィルタ16は、(異なるカメラに対応する)層の異なる領域に異なる偏光フィルタ(例えば、異なる直線偏光角度)を有する、単一の物理層の異なる部分に対応し得る。
【0072】
本開示のいくつかの実施形態では、カメラシステム10’内のカメラの各々は、異なって偏光された光をフィルタリングするように構成された対応する偏光フィルタを有する。例えば、図1Cおよび1Dに示される実施形態では、カメラ10A’の偏光フィルタ16A’は、0°の角度で配向された直線偏光フィルタであり得、カメラ10B’の偏光フィルタ16B’は、45°の角度で配向された直線偏光フィルタであり得、カメラ10C’の偏光フィルタ16C’は、90°の角度で配向された直線偏光フィルタであり得、カメラ10D’の偏光フィルタ16D’は、135°の角度で配向された直線偏光フィルタであり得る。いくつかの実施形態では、カメラのうちの1台以上は、円偏光子を含むことができる。本開示のいくつかの実施形態では、カメラシステム10’は、少なくとも2つの異なる偏光で光をフィルタリングするように構成された偏光フィルタを含む。本開示のいくつかの実施形態では、カメラシステム10’は、少なくとも3つの異なる偏光で光をフィルタリングするように構成された偏光フィルタを含む。図1Dに示される実施形態では、偏光フィルタ16はレンズ12の後ろ(例えば、レンズ12と画像センサ14との間)に位置するが、本開示の実施形態はこれに限定されない。いくつかの実施形態では、偏光フィルタは、レンズ12の前に位置する。
【0073】
いくつかの実施形態では、カメラアレイの様々な個々のカメラは、チェッカーボードパターン、ArUcoターゲット(例えば、Garrido-Jurado、Sergio、et.al.”Automatic generation and detection of highly reliable fiducial markers under occlusion” Pattern Recognition 47.6(2014):2280-2292.を参照)、またはChArUco target(例えば、An,Gwon Hwan,et al.”Charuco board-based omnidirectional camera calibration method” Electronics 7.12(2018):421.を参照)などの較正ターゲットの複数の画像を捕捉することにより、それらの相対的な姿勢(または相対的な位置および配向)を決定することにより、互いに登録される。特に、ターゲットを較正する処理は、各カメラの内部パラメータを特徴付ける内部行列(例えば、焦点距離、画像センサフォーマット、およびカメラの主点を特徴付ける行列)、およびワールド座標に対する各カメラの姿勢を特徴付ける外部行列(例えば、カメラ座標空間とワールドまたはシーン座標空間との間の変換を実施するための行列)を計算することを含み得る。
【0074】
図1Dには示されていないが、本開示のいくつかの実施形態では、各偏光カメラはまた、画像センサ14の個々のピクセルが、例えば、スペクトルの赤(R)、緑(G)、および青(B)部分に対応する光を受け取るように、Bayerフィルタなどのモザイクパターンを有するカラーフィルタも含み得、これにより各カメラは、モザイクパターンに従って電磁スペクトルの可視部分の光を捕捉する。いくつかの実施形態では、デモザイク処理を使用して、生データから赤、緑、および青の別個のチャネルを計算する。本開示のいくつかの実施形態では、各偏光カメラは、カラーフィルタなしで、または赤外光などの電磁スペクトルの様々な他の部分を透過もしくは選択的に透過するために使用されるフィルタとともに使用され得る。
【0075】
図1Eは、本開示の一実施形態によるステレオ偏光カメラシステムの斜視図である。一部の用途では、ステレオビジョン技術を使用して、異なる視点からシーンの複数の画像を捕捉する。上述したように、本開示のいくつかの実施形態では、カメラシステム内の個々の偏光カメラは、撮像される被写体までのカメラシステムの設計された動作距離に基づいて、カメラ間の視差シフトが実質的に無視できるように、互いに隣接して置かれる。ステレオ偏光カメラシステムでは、個々の偏光カメラの一部が離間しているため、視差シフトが大きく、カメラシステムの設計された動作距離内のオブジェクトを検出できる。これにより、シーン内の様々な表面までの距離(「深度」)を、視差シフトの大きさに従って検出することができる(例えば、画像の対応する部分の場所の視差シフトが大きいほど、それらの対応する部分がカメラシステムにより近い表面上にあることを示し、視差シフトが小さいほど、対応する部分がカメラシステムから遠い表面上にあることを示す)。視差シフトに基づいて深度を計算するこれらの技術は、Depth from Stereoと呼ばれることがある
【0076】
したがって、図1Eは、第1の偏光カメラモジュール10-1”と、実質的に平行な光軸を有し基線10-Bに沿って離間された第2の偏光カメラモジュール10-2”とを有する、ステレオ偏光カメラシステム10”を示す。図1Eに示される実施形態では、第1の偏光カメラモジュール10-1”およびは、図1Cおよび1Dに示されたものと類似した、2×2アレイに配置された偏光カメラ10A”、10B”、10C”、および10D”を含む。同様に、第2の偏光カメラモジュール10-2”およびは、2×2アレイに配置された偏光カメラ10E”、10F”、10G”、および10H”を含み、ステレオ偏光カメラモジュール10”全体では、8台の個別の偏光カメラ(例えば、8個の別個のレンズの後ろの8個の別個の画像センサ)が含まれる。本開示のいくつかの実施形態では、偏光カメラモジュール10-1”および10-2”の対応する偏光カメラは、実質的に同じ偏光を有する偏光生フレームを捕捉するように構成される。例えば、カメラ10A”および10E”は両方とも、同じ0°の角度で直線偏光フィルタを有し得、カメラ10B”および10F”は両方とも、同じ45°の角度で直線偏光フィルタを有し得、カメラ10C”および10G”は両方とも、同じ90°の角度で直線偏光フィルタを有し得、カメラ10D”および10H”は両方とも、同じ135°の角度で直線偏光フィルタを有し得る。
【0077】
本開示の実施形態は、図1Eに示される特定の実施形態に限定されない。いくつかの実施形態では、ステレオ偏光カメラシステムは、3つ以上の偏光カメラモジュールを含み、各偏光カメラモジュールは、アレイ状に配置され、偏光フィルタを使用して異なる偏光の偏光生フレームを捕捉するように構成された、複数の偏光カメラを含む。上述したように、本開示のいくつかの実施形態では、偏光カメラモジュールの個々の偏光カメラのうちの1台以上がカラーフィルタを含むことができ、したがって、ステレオ偏光カメラモジュール内の偏光カメラのうちの1台以上もまたカラーフィルタを含むことができる。
【0078】
カメラモジュール内のカメラの較正または登録について説明したのと同様のやり方で、ステレオ偏光カメラシステムの様々な偏光カメラモジュールは、較正ターゲットの複数の画像を捕捉し、様々なカメラモジュールに対する内部行列および外部行列を計算することによって、互いに登録することもできる。
【0079】
図1Eに示されるステレオ偏光カメラシステムの実施形態は、各々が4台の偏光カメラを有する2つの偏光カメラモジュールを含むが、本開示の実施形態はそれに限定されない。
【0080】
例えば、本開示のいくつかの実施形態では、ステレオ偏光カメラシステムは、複数の偏光カメラモジュールを含み、偏光カメラモジュールの各々は、3台以上の個別の偏光カメラを含み、偏光カメラモジュールの個別の偏光カメラの各々は、異なる偏光状態(例えば、異なる角度の直線偏光)の偏光フィルタを有する。
【0081】
本開示のいくつかの実施形態では、ステレオ偏光カメラシステムは、1つ以上の基線に沿って離間された複数の偏光カメラモジュールを含み、偏光カメラモジュールの各々は、図1Bに関して上述したような実施形態による、異なる偏光を持つ偏光生フレームを捕捉するように構成された単一の偏光カメラを含む。例えば、本開示のいくつかの実施形態では、各モジュールの偏光カメラは、偏光マスク(例えば、図1Bに示される偏光マスクと同様)を含み得、これにより、個々の偏光カメラは、異なる偏光フィルタのモザイクパターン(例えば、異なる角度の偏光フィルタ)に従ってピクセルが光を検出する画像を捕捉する。例えば、図1Bに示される実施形態では、偏光マスクのピクセルの各2×2ブロックは、0°、45°、90°、および135°の直線偏光角度で直線偏光板を含む。本開示の他の実施形態では、個々の偏光カメラは、図1Bに関して上で考察したように、機械的または電子的に制御可能な偏光フィルタを含んで、偏光カメラが異なる偏光の偏光生フレームを捕捉できるようにすることができる。
【0082】
上記の実施形態では、ステレオ偏光カメラシステム内の1つ以上の基線に沿って離間された個々の偏光カメラモジュールまたは偏光カメラが実質的に平行な光軸を有することを記述したが、本開示の実施形態はそれに限定されない。例えば、本開示のいくつかの実施形態では、偏光カメラモジュールの光軸は、偏光カメラモジュールが、設計された作動距離内(例えば、光軸がステレオカメラシステムから設計された作動距離の近くで交わるかまたは交差する場所)のオブジェクトの異なる角度付けされたビューを提供するように、互いに向かって角度付けされている。
【0083】
本開示の様々な実施形態によれば、姿勢推定器100は、以下でより詳細に説明する様々な動作を実施するように構成された1つ以上の処理回路または電子回路を使用して実装される。電子回路のタイプとして、中央処理装置(CPU)、グラフィック処理装置(GPU)、人工知能(AI)アクセラレータ(例えば、ニューラルネットワーク、ドット積およびソフトマックスなどに共通の演算を効率的に実施するように構成されたベクトル算術論理ユニットを含み得るベクトルプロセッサ)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)などが挙げられ得る。例えば、いくつかの状況では、本開示の実施形態の態様は、不揮発性コンピュータ可読メモリに格納されたプログラム命令によって実装され、このプログラム命令は、電子回路(例えば、CPU、GPU、AIアクセラレータ、またはそれらの組み合わせ)によって実行されたときに、本明細書に記載の動作を実施して、入力偏光生フレーム18からインスタンスセグメンテーションマップなどの処理出力20を計算する。姿勢推定器100によって実施される動作は、単一の電子回路(例えば、単一のCPU、単一のGPUなど)によって実施されてもよく、または複数の電子回路(例えば、複数のGPU、またはGPUと組み合わせたCPU)間で割り当てられてもよい。複数の電子回路は、互いにローカルであってもよく(例えば、同じダイ上に置かれる、同じパッケージ内に置かれる、または同じ組み込みデバイスもしくはコンピュータシステム内に置かれる)、および/または互いに離れていてもよい(例えば、Bluetooth(登録商標)などのローカルパーソナルエリアネットワークなどのネットワークを介して、ローカルの有線ネットワークおよび/もしくは無線ネットワークなどのローカルエリアネットワークを介して、ならびに/または一部の動作をローカルで実施し、他の動作をクラウドコンピューティングサービスがホストするサーバで実施する場合などの、インターネットなどの広域ネットワークを介して、通信してもよい)。姿勢推定器100を実装するように動作する1つ以上の電子回路は、本明細書ではコンピュータまたはコンピュータシステムと呼ぶ場合があり、これには、1つ以上の電子回路によって実行されたときに、本明細書に記載のシステムおよび方法を実装する命令を格納するメモリを含むことができる。
【0084】
マルチビューカメラシステムに基づく姿勢推定
本開示の実施形態のいくつかの態様は、大きな基線で複数の独立したカメラのシステムを使用してシーン内のオブジェクトの姿勢を推定して、同時姿勢推定を実施することに関する。本開示の実施形態のいくつかの態様は、複数のビューからの(例えば、メインカメラ10およびサポートカメラ30からの)パッシブキーポイントマッチングと、キーポイントを(例えば、異なるサポートカメラ30に対応する)異なるビューポイントに再投影することと、を含む技術を適用することにより、インスタンスセグメンテーションマップ内の対応するオブジェクトインスタンスを識別する、姿勢推定に関する。次に、インスタンスセグメンテーションを使用して、同じオブジェクトに関連付けられたより多くのキーポイントを検出することができる。次に、これらの新たなキーポイントを使用して、本開示の実施形態によるマルチビューのパースペクティブnポイント(PnP)アルゴリズムに従って、オブジェクトの姿勢を推定し、さらには推定姿勢を精緻化することができる。いくつかの実施形態はまた、以下でより詳細に説明するように、異なるサポートカメラ30に対応するこれらの追加のビューポイントを使用して、反復最近接点(ICP)および偏光からの形状に基づいてオブジェクトの姿勢を精緻化するために、深度予測およびエッジ予測を精緻化することに関する。
【0085】
図2Aは、本開示の一実施形態による姿勢を推定するための方法200を描写するフローチャートである。本開示の様々な実施形態では、図2Aに示される方法200の動作は、姿勢推定器100の構成要素である、1つ以上の処理回路または電子回路によって実施され得る。
【0086】
動作210において、姿勢推定器100は、メインカメラ10および1つ以上のサポートカメラ30を制御して、シーンのマルチビューポイント画像またはマルチビューの較正された画像のセットを取得する。特に、画像のセットは、メインカメラおよびサポートカメラが異なるビューポイントからシーンの画像を捕捉するという意味で、マルチビューポイントまたはマルチビューである。いくつかの個々のカメラは、少なくとも2つのビューポイントから画像を捕捉することができるステレオメインカメラおよび/またはステレオサポートカメラの場合など、複数のビューポイントから画像を捕捉することができる。例えば、図1Eに示される実施形態によるメインカメラ10は、第1の偏光カメラモジュール10-1”および第2の偏光カメラモジュール10-2”によって、実質的に同時に、かつ実質的に2つの異なるビューポイントから、シーンの8つの異なる画像を捕捉することができる。一般に、メインカメラ10およびサポートカメラ30は、一部のオブジェクトが、シーン内の異なるオブジェクト間の遮蔽により、一部のビューポイントからは見えても他のビューポイントからは見えない場合があることに着目して、同じシーンの重なり合うビューを捕捉し、それにより、シーン内の実質的に同じオブジェクトまたは複数のオブジェクトの異なるビューを提供する。
【0087】
図2Bは、本開示の一実施形態による姿勢推定システムのカメラによって捕捉されたオブジェクトの配置を含むシーンの、4つのビューを描写する。図2Bの実施形態では、4つの画像は、2台のステレオカメラ(例えば、メインカメラ10およびサポートカメラ30のうちのステレオカメラ)によって捕捉される。第1のステレオカメラは左の画像211-Lおよび右の画像211-Rを捕捉し、第2のステレオカメラは左の画像212-Lおよび右の画像211-Rを捕捉し、4つの画像は同じシーンの重なり合うビューを描写している。図2Bに示される特定のシーンでは、オブジェクトの集合がChArUcoボード内に置かれ、ChArUcoボードは、カメラの姿勢に関する追加情報を提供するための基点(fiducial)を提供する。
【0088】
画像のセットは、本明細書では、メインカメラ10および1つ以上のサポートカメラ30を含むカメラのシステムが互いに対して較正されている、例えば、カメラの相対的な姿勢は、姿勢推定器100によって既知であり格納されている、という仮定に基づいて、「較正されている」と呼ばれる。本開示の実施形態のいくつかの態様は、カメラシステムの自動較正に関し、以下の別個のセクションでより詳細に説明される。
【0089】
本開示のいくつかの実施形態では、姿勢推定器100はさらに、メインカメラおよび1つ以上のサポートカメラから受け取った画像に対してステレオ平行化を実施する。ステレオ平行化は、画像を変換して、異なるビューポイントからの画像を同じ画像平面に投影することを含み得る。例えば、第1の偏光カメラモジュール10-1”および第2の偏光カメラモジュール10-2”によって捕捉された画像は、内部および外部カメラパラメータにより、本質的に平行化され得る。例えば、レンズの歪み、カメラモジュールの光軸および/またはメインカメラとサポートカメラとの間の光軸の不完全な物理的位置合わせなどは、さらなる処理に進む前に、較正動作中に収集された既知の較正データに基づいて、姿勢推定器100によって修正され得る。
【0090】
動作230において、姿勢推定器100は、マルチビュー画像に対してインスタンスセグメンテーションを実施して、メインカメラ10およびサポートカメラ30によって捕捉されたビューごとに別個のインスタンスセグメンテーションマップを計算する。インスタンスセグメンテーションは、入力画像内のすべてのピクセルについて、オブジェクトに属するインスタンスならびにそのオブジェクトのタイプまたはクラスを識別する、コンピュータビジョンのアプローチである。例えば、直角柱、円柱、および球の3D幾何学ブロックの画像では、各「インスタンス」は異なるブロックに対応し、インスタンスセグメンテーションマップは、各ピクセルに異なるブロック識別子およびブロックタイプ(角柱、円柱、または球)をラベル付けするであろう。
【0091】
入力画像に対してインスタンスセグメンテーションを実施するアプローチのうちの1つのクラスは、入力画像からインスタンスセグメンテーションマップを計算するようにトレーニングされた、畳み込みニューラルネットワーク(CNN)に入力画像を供給することである。画像セグメンテーションCNNの例としては、Mask R-CNN(Proceedings of the IEEE International Conference on Computer Vision 2017のHe,Kaiming,et al.「Mask R-CNN」)、AlexNet(例えば、Krizhevsky,Alex、Ilya Sutskever、およびGeoffrey E.Hintonの「ImageNet classification with deep convolutional neural networks」Advances in neural information processing systems.2012を参照のこと)、VGG(例えば、Simonyan,Karen、およびAndrew Zissermanの「Very deep convolutional networks for large-scale image recognition」arXiv preprint arXiv:1409.1556(2014)を参照のこと)、ResNet-101(例えば、Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition,2016の770-778ページのKaiming He、Xiangyu Zhang、Shaoqing Ren、およびJian SunのDeep residual learning for image recognitionを参照のこと)、MobileNet(例えば、Howard,Andrew G.,et al.「Mobilenets:Efficient convolutional neural networks for mobile vision applications」arXiv preprint arXiv:1704.04861(2017)を参照のこと)、MobileNetV2(例えば、Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition.2018のSandler,Mark,et al.「MobileNetV2:Inverted residuals and linear bottlenecks」を参照のこと)、およびMobileNetV3(例えば、Proceedings of the IEEE International Conference on Computer Vision.2019のHoward,Andrew,et al.「Searching for MobileNetV3」を参照のこと)が挙げられる。
【0092】
多くの場合、畳み込みニューラルネットワークによって計算される性能(例えば、セグメンテーションマップの精度)は、その性能が動作するターゲットドメインを表すデータに基づいてトレーニングまたは再トレーニングされると、大幅に改善される。
【0093】
したがって、本開示の実施形態のいくつかの態様は、畳み込みニューラルネットワークなどの機械学習モデルをトレーニングして、特定のユースケースのインスタンスセグメンテーションマップを計算するためのシステムおよび方法に関する。
【0094】
さらに、上述したように、カラーカメラなどの標準的な画像化モダリティを使用して画像化することが困難なタイプの物質もある。一方、偏光カメラシステムを使用すると、これらのオブジェクトおよび表面を検出可能にすることができる。本開示の実施形態のいくつかの態様は、本開示の実施形態に従って捕捉された偏光キューを使用してインスタンスセグメンテーションを実施することに関する。偏光キューを使用してインスタンスセグメンテーションを実施するためのいくつかの技術については、2019年11月30日にUnited States Patent and Trademark Officeに出願された米国仮特許出願第62/942,113号、2020年3月29日にUnited States Patent and Trademark Officeに出願された米国仮特許出願第63/001,445号、および2020年8月28日にUnited States Patent and Trademark Officeに出願されたPCT米国特許出願第2020/048604号の中でより詳細に説明され、それらの開示全体が参照によって本明細書に組み込まれる。
【0095】
インスタンスセグメンテーションを実施するための畳み込みニューラルネットワークのトレーニングに関する本開示の実施形態のこれらの態様は、以降のセクションでより詳細に説明される。
【0096】
メインカメラ10およびサポートカメラ30を含むカメラシステムの各ビューポイントから捕捉された画像に対してインスタンスセグメンテーションを実施することによって、複数のインスタンスセグメンテーションマップが計算される。各インスタンスセグメンテーションマップは、捕捉された画像で見えるオブジェクト22の別個のインスタンスにラベル付けする。
【0097】
動作250において、姿勢推定器100は、複数のステレオ画像にわたってインスタンスセグメンテーションをマッチングして、オブジェクトごとのおおよその深度推定を達成する。上述したように、いくつかの実施形態では、少なくともメインカメラ10は、ステレオペア画像を捕捉するように構成されたステレオカメラである。メインカメラのカメラ(例えば、カメラモジュール)は比較的近いため、画像のステレオペアは、画像間で検出されたオブジェクトインスタンスの全体的な形状が比較的類似しており、オブジェクトの検出されたインスタンスの互いに対する相対的な場所がほぼ同じであるという点で、類似する。したがって、いくつかの実施形態では、ステレオペアによって画像化される各オブジェクトインスタンスの深度推定は、別個のインスタンスセグメンテーションマップで検出された対応するインスタンスを識別し、ブロックマッチングを使用した視差からの深度と同様のやり方で、2つの画像間のセグメンテーション内のインスタンスの場所の視差(例えば、位置のシフト)を測定することによって、計算される。インスタンス間の対応マッチングを自動的に実施するためのシステムおよび方法の詳細は、セグメンテーションを使用したオブジェクトレベルの対応に関する以下のセクションでより詳細に説明されている。
【0098】
動作270において、姿勢推定器100は、検出されたオブジェクトのキーポイントを計算する。具体的には、インスタンスセグメンテーション処理によって検出された各オブジェクトの各インスタンスは、メインカメラ10およびステレオカメラ30によって捕捉された対応する画像から抽出(例えば、クロッピング)されて、画像パッチまたはクロップの集まりを(それらが元の画像から抽出された座標場所とともに)生成する。これらの画像パッチは、シーン内で検出された各オブジェクトの複数のキーポイントを計算するためにキーポイント検出器に供給される。画像パッチ内で検出された各キーポイントは、対応するカメラ(例えば、メインカメラ10またはサポートカメラ30)のビューポイントから捕捉された画像の座標空間などの、二次元座標[u,v]で表すことができる。
【0099】
動作270で使用できるキーポイント検出器または特徴検出器の例として、スケール不変特徴変換(SIFT)、高速化ロバスト特徴(SURF)、勾配位置および方向ヒストグラム(GLOH)、勾配方向ヒストグラム(HOG)、基底係数、Haarウェーブレット係数などが挙げられるが、これらに限定されない。
【0100】
図2Cは、本開示の一実施形態による、姿勢推定システムのカメラによって捕捉された4つの異なるビューポイントからのオブジェクトの、同じインスタンスの4つの異なるビューで検出された2Dキーポイントの描写である。図2Cに示される実施形態では、オブジェクト(例えば、製造されたパーツ)は、2つのステレオカメラ、ステレオ1およびステレオ2によって視認され、各ステレオカメラは、左カメラおよび右カメラを有する。したがって、図2Cは、カメラステレオ1によって捕捉された左画像271-Lおよび右画像271-Rから同じオブジェクトを描写するクロップと、カメラステレオ2によって捕捉された左画像272-Lおよび右画像272-Rから同じオブジェクトを描写するクロップとを示す。図2Cの各ドットは、キーポイント検出器によって検出された2Dキーポイントを表し、ドットの隣の数字はキーポイント識別子を表し、これにより、完全なキーポイント検出の場合、異なるビューにわたる同じキーポイント識別子が、オブジェクトの表面上の同じ物理的場所を表すようにする。
【0101】
本開示のいくつかの実施形態では、画像内のキーポイントは、トレーニングされた畳み込みニューラルネットワークなどのトレーニングされたキーポイント検出器を使用して検出され、これについては、畳み込みニューラルネットワークのトレーニングに関する以下の別のセクションでより詳細に説明する。トレーニングされたキーポイント検出器を適用する場合、画像内で検出または予測された各キーポイントは、対応する信頼度(例えば、所与のポイントがキーポイントである確率)に関連付けられ得る。
【0102】
加えて、上述したように、本開示のいくつかの実施形態では、メインカメラ10およびサポートカメラ30のうちの1台以上は、シーンの偏光情報を捕捉するように構成された偏光カメラである。偏光情報により、透明な表面、反射率の高い表面、艶消し黒色の表面など、オブジェクトの光学的に困難な表面(例えば、比較カラーカメラでは光学的に検出が困難であり得る表面)の検出を可能にする。したがって、いくつかの実施形態では、トレーニングされたキーポイント検出器は、偏光情報に基づいてオブジェクトの光学的に困難な表面上のキーポイントを検出するために、シーンから捕捉された偏光データ(例えば、偏光生フレーム、偏光キュー、および/または偏光表現空間における偏光特徴)でトレーニングされる。偏光データに基づくキーポイント検出器のトレーニングについては、以下の別のセクションでより詳細に説明する。
【0103】
動作290において、姿勢推定器100は、シーン内のオブジェクトの推定姿勢を計算するために、メインカメラ10およびサポートカメラ30によって捕捉されたオブジェクトの複数のビューにわたるオブジェクトのキーポイントにわたって、マルチビュー同時最適化を実施する。
【0104】
いくつかの実施形態では、姿勢推定器100は、インスタンスセグメンテーションに従って検出された各オブジェクトについて検出された別個のキーポイントに基づいて、シーン内の検出された各オブジェクトの姿勢を独立して計算する。
【0105】
動作290において、姿勢推定器100は、検出されたオブジェクトの中の現在の検出されたオブジェクトの画像に基づいて、マルチビューオブジェクトマッチングを実施する。いくつかの実施形態では、姿勢推定器は、キーポイント予測およびステレオ制約を使用して、単純なHungarianマッチングアルゴリズム(例えば、線形和割り当て(linear sum assignment))使用してオブジェクト対応を推定し、カスタムコスト関数を使用して、本開示の実施形態によるマルチビューのパースペクティブnポイントアルゴリズムに従ってオブジェクトの姿勢を計算する。
【0106】
マルチビューのパースペクティブnポイント
いくつかの実施形態では、姿勢推定器100は、事前定義された特定のタイプのオブジェクトに関する姿勢を検出および推定するように構成されている。例えば、ロボット工学の製造に使用するように構成された姿勢推定器100の場合、姿勢推定器100は、ロボットアームの様々なエンドエフェクタの姿勢、および製品に組み立てられる様々なパーツ(例えば、ねじ、パネル、ケースなど)の姿勢を検出するように構成され得る。したがって、姿勢推定器100は、姿勢を検出して計算するように構成された、オブジェクトのタイプごとに所定のキーポイントのセットを格納し、これらのキーポイントは、オブジェクトの表面上の特徴的な三次元点に対応する。特定のオブジェクトに関連付けられた複数のN個の3Dキーポイントの中のi番目の3Dキーポイントは、本明細書では、そのデカルト座標[x、y,z]に従って参照され得る。一例として、ねじ上のいくつかのキーポイントは、ねじの先端、ねじの頭の縁などに対応し得る。
【0107】
動作290において、姿勢推定器100は、現在のオブジェクトのタイプ(例えば、オブジェクトがねじであるか、またはロボットアームに取り付けられた特定のエンドエフェクタであるか)に関連付けられた事前定義された3Dキーポイント([x,y,z])、およびオブジェクトの各ビューで検出された2Dキーポイント([u,v])に基づいて、グローバル座標系(例えば、メインカメラ10に関して定義された座標系)に対する回転変換Rおよび並進変換Tによって表される現在のオブジェクトの姿勢を推定する。
【0108】
より詳細には、いくつかの実施形態では、姿勢推定器100は、3Dキーポイントが各ビューポイントに関連付けられた2D空間に投影されるときに、検出された2Dキーポイントと事前定義された3Dキーポイントとの間の、(メインカメラ10およびサポートカメラ30からの)すべての視点にわたる誤差または差を最小化する姿勢R、Tを計算する。より正確に言えば、いくつかの実施形態では、姿勢推定器100は、コスト関数、
【数15】

を最小化または最適化し、式中、R、Tは、オブジェクトの姿勢であり、iは、N個の3Dキーポイントを反復処理するインデックスであり、jは、M個のビューポイントを反復処理するインデックスであり、cijは、j番目のビューポイントに対応する画像のi番目のキーポイントの対応するキーポイント予測[uij,vij]の信頼度であり、R、T、Kは、j番目のビューポイントから画像を捕捉するために使用されるj番目のカメラの外部パラメータおよび内部パラメータであり、[x,y,z]は、i番目の3Dキーポイントである。
【0109】
より詳細には、3Dキーポイントiの各々および各ビューポイントjに対して、そのi番目の3Dキーポイントは、現在の推定されたオブジェクト姿勢[R]に従って変換され、ビューポイントjのカメラ外部パラメータR(例えば、グローバル座標系に対するビューポイントjのカメラ間の相対的な姿勢)およびカメラ内部パラメータK(例えば、レンズの歪みなどの、ビューポイントjにおけるカメラの内部特性)に基づいて、ビューポイントjの2D空間に投影されるため、姿勢推定器100は、ビューポイントjから捕捉された画像内で検出されたi番目の2Dキーポイント(キーポイント[uij,vij])を、対応するi番目の3Dキーポイント[x,y,z]の変換されたバージョンと比較する。誤差またはコストは、N個の異なる3Dキーポイントのすべてにわたって、かつM個の異なるビューポイント(例えば、1つのメインカメラおよびM-1台のサポートカメラ)のすべてにわたって合計され、姿勢推定器100は、最適化機能を適用して、全体のコストまたは全体の誤差を最小化する推定されたオブジェクト姿勢Rを計算する。最適化機能の一例は、勾配降下法を適用して、この誤差を最小化するオブジェクト姿勢Rを見出すことである。いくつかの実施形態では、最適化は、各ビューポイントを一度に1つずつ反復処理して検討するのではなく、すべてのビューポイントにわたって同時に実施される。
【0110】
図2Dは、カメラのうちの1台から捕捉された画像から抽出された、シーン内の単一のオブジェクトを描写するクロップと、本開示の一実施形態による姿勢推定器100によって計算された単一のオブジェクトの推定姿勢に従って、シーン内で姿勢がとられたオブジェクトの3Dモデルの重なり合ったレンダリングを用いた同じクロップとを描写する。
【0111】
図2Eは、カメラのうちの1台から捕捉された複数のオブジェクトを含むシーンの画像と、本開示の一実施形態による姿勢推定器100によって検出されその姿勢が本開示の一実施形態による姿勢推定器100によるものである、オブジェクトの推定姿勢に従ってシーン内で姿勢がとられた、オブジェクトの3Dモデルの重なり合ったレンダリングを用いたオブジェクトとを描写する。図2Eに示される特定のケースでは、姿勢推定器100は、シーン内のすべてのオブジェクトに対する姿勢を推定したわけではないが、これは、いくつかの実施形態では、(例えば、他のオブジェクトによって)広く遮られているオブジェクトまたは他の基準を満たさない(例えば、他のビューと十分にマッチしない)シーンの部分は、姿勢推定器100によって分析されずに残され得るが、オブジェクトがシーン内でシフトする、かつ/またはオブジェクトがシーンから消去されると、後に姿勢が推定される場合があるからである。
【0112】
キーポイント検出における対称性認識
対称的なオブジェクトの場合、オブジェクトの所与の姿勢に対して、P=S*Pとなるような4×4変換Sが存在する。対称的なオブジェクトの1つの例は、8つの対称性を有する立方体である。これは、これら8つの所与の姿勢のいずれについても、立方体は所与のビューポイントから同じように見えることを意味する。ただし、キーポイントは確定的に計算(または予測)されるため、1つのビューポイントから捕捉された画像上の特定の2Dポイントを、オブジェクトの表面上の特定の3Dポイントにマッチさせることができる。別のビューポイントから見ると、その2Dポイントは、オブジェクトの表面上の異なる3Dポイントとマッチする可能性がある。これは、検出されたキーポイントが、異なるビューポイントからの画像間で一貫していない可能性があることを意味する。
【0113】
したがって、本開示のいくつかの実施形態は、オブジェクトの姿勢R、T(上記の式7など)を推定するためのコスト関数を、特定のビューvに対する再投影誤差(例えば、ビューポイントjから見たi番目の3Dキーポイントの2D空間への再投影に関連する誤差)を最小化する変換Sの検索を実施する変換(S)のセットを定義する、追加の項で修正することに関し、これにより、同じ3Dキーポイントが、異なる2Dキーポイントビューで異なってラベル付けされている場合でも、本開示の実施形態が最小の姿勢を決定できるようになる。以下の式8は、オブジェクトの対称性を説明するために修正されたコスト関数の一例を提供する。
【数16】

式中、Sはオブジェクトの異なる対称性間の変換であり、vはj番目のビューであり、残りの変数は、式7に関して上のように定義されている。
【0114】
いくつかの実施形態では、姿勢推定器100は、現在のオブジェクトの推定姿勢R、Tを、ビューポイントごとに反復的に精緻化する。図3は、オブジェクトの複数のビューに基づいてオブジェクトの姿勢を推定するための、本開示の一実施形態による方法300を描写するフローチャートである。処理は、メインカメラ10によって捕捉された画像に基づいてオブジェクトの推定姿勢を計算することから開始され得る。メインカメラ10は深度カメラ(例えば、ステレオカメラ)であるため、姿勢推定器100は、視差に基づいてシーン内の表面の深度、ひいてはシーン内で検出されたオブジェクトのインスタンスの表面の深度を計算することができる。
【0115】
いくつかの実施形態では、姿勢推定器100は、検出されたオブジェクトの3Dモデル(例えば、CADモデル)を、オブジェクトのインスタンスに対応する深度マップの部分と位置合わせして、動作310においてオブジェクトの初期の推定姿勢(R、T)を決定する。
【0116】
動作330において、姿勢推定器100は、残りのビューポイントの中から(例えば、サポートカメラに対応するビューポイントの中から)次のビューポイントを選択し、そのビューポイントを「現在のビューポイント」として設定する。
【0117】
動作350において、姿勢推定器100は、現在のビューポイントに関連付けられたオブジェクトの2Dキーポイントと、(事前定義された)3Dキーポイントの現在のビューポイントへの投影との間の差または誤差を最小化する更新された姿勢(R、T)を計算することによって、コスト関数(例えば、上記の式7または式8)を最小化する。オブジェクトの予想される姿勢は、姿勢の現在の推定値(例えば、動作310で計算されたオブジェクトの初期の姿勢)に近いと予想されるため、いくつかの実施形態では、最小化処理は、値のローカルウィンドウを検索することに限定され、これにより、最適化処理の性能が向上する。
【0118】
動作390において、姿勢推定器100は、考慮すべき追加のビューポイントがあるかどうかを判定する。追加のビューポイントがある場合、処理は動作330に戻り、次のキーポイントを選択し、次のビューポイントから検出された2Dキーポイントに基づいて推定値を更新する。追加のキーポイントがない場合、姿勢の現在の推定値は、マルチビューキーポイントに基づいて、現在のオブジェクトの推定姿勢(R、T)として出力される。
【0119】
いくつかの実施形態では、メインカメラ10とサポートカメラ30との組み合わせは、複数のステレオペアを含む(例えば、サポートカメラ30が、カメラの少なくとも1つのステレオペアを含む場合)。これらの実施形態のいくつかでは、セグメンテーション、キーポイント検出、およびマルチビューのパースペクティブnポイント処理(例えば、図2の)の全体が、各ステレオペアに対して独立して実施され、次いで、姿勢推定器100は、複数のカメラにわたる3D場所およびエピポーラ線に基づいてオブジェクトをマッチングする。これにより、距離が大きいほど正確なマッチングがなされるが、計算負荷が高くなるというトレードオフが発生する可能性があり、これにより実行時間が長くなる可能性がある。
【0120】
偏光ベースの精緻化
本開示の実施形態のいくつかの態様は、偏光情報に基づいて動作290で計算された姿勢推定を、さらに精緻化することに関する。この処理は、本明細書では、偏光に基づくマルチビューエッジベースの精緻化と呼ばれ得、メインカメラ10および/またはサポートカメラ30のうちの1台以上は、シーン内のオブジェクトの偏光生フレームを捕捉するように構成された偏光カメラである。
【0121】
図1Bに関して上述したように、偏光カメラ10の画像センサ14に当たる光線43は、3つの測定可能な成分、すなわち光の強度(強度画像/I)、直線偏光された光のパーセンテージまたは比率(直線偏光度/DOLP/ρ)、およびその直線偏光の方向(直線偏光角度/AOLP/φ)を有する。
【0122】
各ピクセルで強度I、DOLPρ、およびAOLPφを測定するには、偏光フィルタ(または偏光板)の後ろで異なる角度φpolで撮影されたシーンの3つ以上の偏光生フレームが必要である(例えば、決定されるべき3つの未知の値、すなわち強度I、DOLPρ、およびAOLPφがあるからである。例えば、図1B、1C、1D、および1Eに関して上述したような偏光カメラは、4つの異なる偏光角度φpol、例えば、0度、45度、90度、または135度で偏光生フレームを捕捉し、それにより、本明細書ではI、I45、I90、およびI135として示される4つの偏光生フレーム
【数17】

を生成する。
【0123】
【数18】

と各ピクセルでの強度I、DOLPρ、およびAOLPφとの間の関係は、以下のように表現することができる。
【数19】
【0124】
したがって、4つの異なる偏光生フレーム
【数20】

(I、I45、I90、およびI135)を用いて、4つの方程式系を使用して強度I、DOLPρ、およびAOLPφを解くことができる。
【0125】
偏光からの形状(SfP)理論(例えば、Gary A AtkinsonおよびEdwin R HancockのRecovery of surface orientation from diffuse polarization、IEEE transactions on image processing,15(6):1653-1664,2006を参照のこと)は、オブジェクトの表面法線の屈折率(n)、方位角(θ)、および天頂角(θ)と、そのオブジェクトから来る光線のφ成分およびρ成分との関係は、拡散反射が優勢な場合は以下の特性、
【数21】

φ=θ(11)
および鏡面反射が優勢な場合は以下の特性、
【数22】

【数23】
【0126】
いずれの場合も、ρはθが増加するにつれて指数関数的に増加し、屈折率が同じ場合は、鏡面反射は拡散反射よりもはるかに偏光していることに留意されたい。
【0127】
したがって、本開示の実施形態のいくつかの態様は、メインカメラ10およびサポートカメラ30のうちの偏光カメラによって捕捉されたオブジェクトの生の偏光フレームに基づいて、表面の勾配(例えば、表面の配向、または表面法線、または表面に垂直な方向)を検出または測定するために、かつオブジェクトの既存の3Dモデル(例えば、CADモデル)をオブジェクトの測定された表面法線と位置合わせすることによって、オブジェクトの推定姿勢を更新するために、SfP理論を適用することに関する。
【0128】
偏光を活用して、姿勢推定器100は、画像内の表面のジオメトリおよびアルベドエッジを正確に検出することができる。姿勢推定器100が、検出されたオブジェクトのテクスチャ化された3Dモデル(またはCADモデル)を格納する状況では、姿勢推定器100はまた、上(例えば、方法300)で考察したマルチビュー姿勢推定処理によって推定された所与のオブジェクト姿勢について、ジオメトリおよびアルベドベースのエッジも決定する。姿勢を精緻化するために、姿勢推定器100は、3Dモデルのエッジが、画像から計算されるオブジェクトの形状(例えば、そのエッジおよび表面法線)と位置合わせされるまで、反復最近接点(ICP)アルゴリズムと同様の様式で姿勢を摂動する。
【0129】
より詳細には、図4は、本開示の一実施形態による、姿勢ベースのエッジベースの精緻化のための方法のフローチャートである。
【0130】
動作410において、姿勢推定器100は、所与のマルチビュー入力画像からマルチビューエッジ画像を計算する。マルチビューエッジ画像は、現在のオブジェクト(姿勢が推定されているオブジェクト)の検出されたエッジに対応する。これらのエッジには、シーンの残りの部分に対するオブジェクトの外側の境界(例えば、背景に対して、またはシーン内で検出されたかまたは検出されていない他のオブジェクトに対して)が含まれ得、画像のビューポイントからの正面から見た立方体のエッジなどの内部エッジが含まれ得る。
【0131】
本開示のいくつかの実施形態では、オブジェクトのエッジは、上述のように、偏光からの形状に基づいて検出され、エッジは、計算された表面法線における不連続点の場所に対応する。これらの不連続点は、エッジ検出フィルタ(Cannyエッジ検出器または微分エッジ検出器などであるが、本開示の実施形態はそれに限定されない)を適用することによって計算することができる。例えば、本開示のいくつかの実施形態では、深層畳み込みニューラルネットワークは、入力画像内のエッジおよび/または偏光表現空間内の特徴(例えば、強度、AOLPφ、およびDOLPρ)を検出するようにトレーニングされる。偏光データに基づくニューラルネットワークのトレーニングの詳細については、以下の別のセクションでより詳細に説明する。
【0132】
本開示のいくつかの実施形態では、メインカメラ10およびサポートカメラ30によって提供される入力画像に基づいてセグメンテーションマップを計算するようにトレーニングされたニューラルネットワークは、形状の正確かつ精密な境界を有するその出力セグメンテーションマップを計算する。より詳細には、本開示の実施形態のいくつかの態様は、深層学習モデルをトレーニングして、インスタンスセグメンテーションマップにおいてシャープ(例えば、低ノイズ)で正確な境界でセマンティックセグメンテーションを実施することに関する。セマンティック境界予測を実施するためのいくつかの技術は、Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition 2019の、Acuna,David、Amlan KarおよびSanja Fidlerの「Devil is in the edges:Learning semantic boundaries from noisy annotations」で説明されている。ラベル付けされた偏光情報(例えば、偏光生フレームおよび/または強度、AOLPφ、およびDOLPρなどの偏光表現空間における特徴)を使用してそのような深層学習モデルをトレーニングすることによって、本開示の実施形態は、比較カラーカメラによって捕捉された画像によれば検出可能であるオブジェクトに加えて、光学的に困難なオブジェクトのインスタンスの境界の正確な検出を可能にする。
【0133】
したがって、本開示のいくつかの実施形態では、画像に対応するセグメンテーションマップ内のインスタンスの境界の場所に基づいて、画像内のエッジが検出される(例えば、画像に基づいて直接的または間接的に計算される)。
【0134】
本開示のいくつかの実施形態では、姿勢推定器100は、上で考察したように、偏光からの形状とインスタンスセグメンテーションとの組み合わせに基づいてエッジを検出する。
【0135】
動作430において、姿勢推定器100は、現在の姿勢推定に従って仮想シーンに配置されたオブジェクトの3Dモデルのレンダリングされたエッジを有する、動作410においてオブジェクトのマルチビューポイント画像から検出された、測定されたエッジ画像間の対応を検出する。より詳細には、現在の姿勢推定R、T図3に関して上述したように、キーポイントマッチングを使用するマルチポイントのパースペクティブnポイントなどを通して、以前に推定された姿勢に基づいて初期化される)を使用して、オブジェクトの3Dモデルを変換して、シーン内の本物のオブジェクトの姿勢を近似する。次いで、姿勢推定器100は、カメラ(例えば、メインカメラ10およびサポートカメラ30)に関連付けられたビューポイントからの3Dモデルのエッジ画像、ならびにレンダリングされたシーン内の各ピクセルの深度(例えば、対応する本物のカメラのビューポイントに対応する姿勢での仮想カメラからの距離)をレンダリングし、レンダリングされたエッジ画像と測定されたエッジ画像のエッジピクセル間の(距離閾値内の)対応を検索する。
【0136】
動作450において、姿勢推定器100は、対応に基づいて(例えば、図3に関して上述したものと同様のマルチビューのパースペクティブnポイントを使用して上述したように対応間の位置の差を最小化することに基づいて)、新たな姿勢を推定し、コスト関数を使用して計算された損失に基づいて、新たな姿勢を評価する(ガウシアンピラミッドに基づいて、現在の推定姿勢に基づくエッジと測定されたエッジの位置との間の位置合わせの品質のマルチスケール評価を実施するなど)。新たな姿勢がより優れている場合(例えば、コスト関数に従って以前の最良の姿勢よりも損失が少ない場合)、この新たな姿勢が現在の最良の姿勢として格納される。
【0137】
動作490において、姿勢推定器100は、コスト関数(または電流損失)の変化が、以前の最良の姿勢と現在計算されている姿勢との間で閾値未満(例えば、10-4未満)であるかどうかなど、姿勢が収束したかどうかを判定する。姿勢が収束していない場合、処理は動作430に戻り、現在の最良の姿勢に基づいてオブジェクトの3Dモデルの画像をレンダリングし、動作450でこれらのレンダリングされた画像に基づいて新たな姿勢を計算する。姿勢が収束していた場合、現在の最良の姿勢R、Tがオブジェクトの精緻化された姿勢として返される。
【0138】
以下の表は、擬似コードとして、図4に関して上述したエッジ位置合わせ処理を提示する。
表:エッジ位置合わせの擬似コード
prev_loss=inf
P_0=initial_pose#(例えば図3の姿勢推定パイプラインから)
converged=偽
not convergedの間:
all_correspondences=[]
jがview_edgesから1ずつカウントアップしてedge_imagesになるまで:
rendered_edge_pixels=render_edges(Cam_j,P_i-1,cad_model)
rendered_depth=render_depth(Cam_j,P_i-1,cad_model)
potential_correspondences=[]
(x,y)がrendered_edge_pixelsになるまで:
correspondences=find_corr(x,y,view_edges,distance_threshold)
(x2,y2)がcorrespondencesになるまで:
potential_correspondences.append([x2,y2,depth2xyz(rendered_depth[x,y])])
all_correspondences.append(potential_correspondences)
best_loss=inf
best_pose=None
iがitersになるまで:
correspondences=random.sample(all_correspondences)
pose_new=multi_view_pnp(correspondences)
Loss=0
jがview_edgesから1ずつカウントアップしてedge_imagesになるまで:
rendered_edge_pixels=render_edges(Cam_j,P_new,cad_model)
Loss+=GaussianPyramid(view_edges,rendered_edge_pixels)
Loss< best_lossの場合:
best_loss=Loss
best_pose=pose_new
best_loss-prev_loss<1e-4の場合:
converged=真
それ以外の場合、prev_loss=best_loss
【0139】
図5は、本開示の一実施形態による、偏光データに基づく姿勢の表面法線ベースの精緻化のための方法500を示すフローチャートである。図5に示される実施形態では、方法500への入力は、現在のオブジェクトの偏光生フレーム(または偏光表現空間で抽出された特徴)、オブジェクトの初期の推定姿勢(例えば、マルチビューのパースペクティブnポイントなどの他の技術に基づいて以前に計算されたもの)、およびオブジェクトの既存の3Dモデル(例えば、姿勢推定器100によって格納されたオブジェクトの3Dモデルであって、姿勢推定器100は入力画像のインスタンスセグメンテーションを通して識別されたオブジェクトのクラスに基づいて、オブジェクトに対応する3Dモデルを識別する)を含む。
【0140】
動作510において、姿勢推定器100は、オブジェクトから捕捉された偏光生フレームに基づいて、オブジェクトの表面法線を計算または測定する。より詳細には、姿勢推定器100は、入力として、現在のオブジェクトに対応する領域(インスタンスセグメンテーションによって検出される)に対応する(メインカメラ10およびサポートカメラ30のうちの1台以上の偏光カメラによって捕捉された)偏光生フレームの部分を取り得る。いくつかの実施形態では、メインカメラ10およびサポートカメラ30のうちの1台のカメラのみが偏光カメラである。いくつかの実施形態では、メインカメラおよびサポートカメラ30のうちの複数のカメラが偏光カメラである(または偏光カメラを含む)。偏光生フレームは、オブジェクトに対応する偏光表現空間における特性(例えば、強度I、DOLPρ、およびAOLPφ)を計算するために使用され、これらの偏光特性は、オブジェクトの表面法線(例えば、オブジェクトの表面に垂直な方向など)を計算するために使用される。
【0141】
動作530において、姿勢推定器100は、上で考察したように、マルチビューのパースペクティブnポイントに基づいて計算された姿勢推定など、以前に推定された姿勢に従って、3Dモデルをグローバル座標系内に置く。
【0142】
オブジェクトの3Dモデルは、オブジェクトの表面の場所の幾何学的定義を含み、いくつかの実施形態では、姿勢推定器100は、姿勢付けられた3Dモデルの表面法線を計算する。動作550において、姿勢推定器100は、反復最近接点(ICP)アルゴリズムと同様のやり方で、3Dモデルの姿勢を反復的に更新して、3Dモデルの表面法線を動作510で測定された表面法線と位置合わせする。いくつかの実施形態では、姿勢推定器100は、3Dモデルの表面法線を、偏光カメラを有する各ビューポイントから捕捉された偏光生フレームに基づいて測定された表面法線と比較する(例えば、それらの間の差を計算する)コスト関数を計算し、姿勢推定器100は、オブジェクトの3Dモデルの姿勢を更新して、姿勢付けられた3Dモデルの表面法線と測定された表面法線との間の差を最小化する(例えば、コスト関数によって計算されたコストを最小化する姿勢R、Tを計算する)。いくつかの実施形態では、姿勢推定器100は、オブジェクトの画像に現れる表面の部分と、現在の姿勢に従って置かれた3Dモデルのレンダリングとの間の対応を決定し、測定された表面法線と、姿勢付けされた3Dモデルの対応する部分の表面法線との差を計算する。
【0143】
本開示のいくつかの実施形態では、検出されたエッジに基づく位置合わせ(図4に示される方法400によるなど)および表面法線に基づく位置合わせ(図5に示される方法500によるなど)の両方に基づいて、姿勢推定値の精緻化が実施される。例えば、オブジェクトの姿勢R、Tを更新すると、オブジェクトの測定されたエッジと、現在の推定姿勢に従って置かれた3Dモデルのエッジとのマッチングにおける誤差、およびオブジェクトの測定された表面法線と、現在の推定姿勢に従って姿勢付けされた3Dモデルの表面法線とのマッチングにおける誤差の、両方の項を含むコスト関数が同時に最適化され得る。
【0144】
偏光トレーニングデータを含む、生成されたトレーニングデータに基づく深層ニューラルネットワークのトレーニング
一般に、シーンに描かれたオブジェクトを分類するセグメンテーションマップを計算するためのコンピュータビジョンシステムは、二次元画像(例えば、カラーカメラによって捕捉されたもの)を入力として取り、それらの画像に基づいてセグメンテーションマップを出力する、トレーニングされた畳み込みニューラルネットワークを含み得る。このような畳み込みニューラルネットワークは、ImageNet(例えば、IEEE Computer Vision and Pattern Recognition(CVPR),2009のJ.Deng、W.Dong、R.Socher、L.-J.Li、K.Li、およびL.Fei-FeiのImageNet:A Large-Scale Hierarchical Image Databaseを参照のこと例えば参照のこと)などの既存のデータセットで事前にトレーニングされたものであり得る。ただし、これらの既存のデータセットには、コンピュータビジョンシステムの特定のアプリケーションで遭遇すると予想される画像の典型ではない画像が含まれる場合があり、それにより、これらの事前にトレーニングされたモデルは、コンピュータビジョンシステムが実施することを意図している特定のコンピュータビジョンタスクでの性能が劣る可能性がある。例えば、製造環境用のコンピュータビジョンシステムでは、より「多目的な」データセットに見出され得る、人、動物、家庭用品、および屋外環境の画像よりも、ツール、部分的に組み立てられた製品、製造部品などの画像に遭遇する可能性が高い。
【0145】
そのため、「再トレーニング」は、再トレーニングされたモデルによって実施されるタスクに関連付けられた特定のターゲットドメインからの追加のトレーニングデータに基づいて、事前にトレーニングされたモデルのパラメータ(例えば、接続重み)を更新することに関する。上の例を続けると、特定の製造環境からのツール、部分的に組み立てられた製品、部品などのラベル付けされた画像をトレーニングデータとして使用して、事前トレーニングされたモデル(例えば、事前トレーニングされた畳み込みニューラルネットワーク)を再トレーニングして、その製造環境で遭遇したオブジェクトを検出および分類する際の性能を改善することができる。しかしながら、その製造環境で典型的なシーンの種々の画像を手動で収集し、グラウンドトゥルース値に基づいてこれらの画像にラベル付けする(例えば、オブジェクトの種々のクラスに対応するピクセルを識別する)ことは、概して時間および費用がかかるタスクである。
【0146】
上述したように、コンピュータビジョンタスクを実施するための機械学習モデルをトレーニングするためのトレーニングデータを生成するために、三次元(3D)レンダリングコンピュータグラフィックスソフトウェアを使用することができる。例えば、これらのツール、部分的に組み立てられた製品、および製造部品の既存の3Dモデルは、実世界でそのようなオブジェクトに遭遇する様々な方法(例えば、環境内の照明条件とサポート面および機器の3Dモデルとを含む)に従って、仮想シーンに配置することができる。例えば、部分的に組み立てられた製品をベルトコンベアの3Dモデルに置いたり、部品をパーツ箱に位置させたり、部分的に組み立てられた製品内に部品を位置決めする処理の際にツールをツールベンチおよび/またはシーン内に置いたりすることができる。したがって、特定の環境におけるオブジェクトの典型的な配置の範囲の写真のようにリアルな画像を生成するために、3Dコンピュータグラフィックスレンダリングシステムが使用される。これらの生成された画像は、自動的にラベル付けすることもできる。特に、異なるタイプのオブジェクトの各々を描写するために使用される特定の3Dモデルが、すでにクラスラベル(例えば、様々なサイズのねじ、事前に組み立てられた部品、様々な組み立て段階の製品、特定のタイプのツールなど)に関連付けられている場合、セグメンテーションマップは、(例えば、オブジェクトの表面を特定のクラスラベルにマッピングすることによって)自動的に生成することができる。
【0147】
しかしながら、3Dレンダリングコンピュータグラフィックスソフトウェアシステムは、一般に、可視光の強度(例えば、赤、緑、および青の光の強度)に基づいて典型的な画像化モダリティを表す画像を生成するように調整されている。Blender FoundationによるBlender(登録商標)などの3Dレンダリングソフトウェアは、通常、写真のようにリアルなシーンをレンダリングするときに、目に見えないかさもなければ無視でき得る電磁放射の挙動を考慮していない。これらの追加の挙動の例として、光の偏光(例えば、光路に偏光フィルタを備えたカメラによって検出されるように、偏光された光がシーン内の透明なオブジェクトおよび反射オブジェクトと相互作用するもの)、熱放射または赤外線放射(例えば、シーン内の暖かいオブジェクトにより放出され、赤外線光の検出に敏感なカメラシステムによって検出されるもの)、紫外線放射(例えば、紫外線光に敏感なカメラシステムによって検出されるもの)、それらの組み合わせ(例えば、熱放射による偏光、可視光による偏光、紫外線光による偏光など)などが挙げられる。
【0148】
したがって、本開示の実施形態の態様は、偏光または他の画像化モダリティに基づいて撮像されたときの、様々な物質の挙動をモデル化するためのシステムおよび方法に関する。次に、本開示の実施形態に従って生成されたデータ(例えば、画像)が、深層畳み込みニューラルネットワークなどの深層学習モデルをトレーニングするためのトレーニングデータとして使用されて、標準的な画像化モダリティ以外の画像化モダリティ(例えば、可視光または電磁スペクトルの可視部分の光の強度)に基づいて予測を計算することができる。
【0149】
動機付けの例として、本開示の実施形態は、偏光フィルタを通して捕捉されたオブジェクトの合成画像(本明細書では「偏光生フレーム」と呼ばれる)を生成することの文脈において説明され、これらの画像が畳み込みニューラルネットワークなどの深層ニューラルネットワークのトレーニングに使用されて、偏光生フレームに基づいてタスクを実施する。ただし、本開示の実施形態は、入力データとして偏光生フレーム(またはそこから抽出された特徴)を取る畳み込みニューラルネットワークをトレーニングするための合成偏光生フレームを生成することに限定されない。
【0150】
図6は、様々なモダリティの画像に基づいてコンピュータビジョンタスクを実施するために統計モデルをトレーニングするためのシステムを描写するブロック図であり、トレーニングは、本開示の実施形態に従って生成されたデータを使用して実施される。図6に示されるように、トレーニングデータ605はモデルトレーニングシステム607に供給され、モデルトレーニングシステム607はモデル630(例えば、事前にトレーニングされたモデルまたは初期化された重みを有するモデルアーキテクチャ)を取り、トレーニングデータ5を使用して、トレーニングされたモデル(または再トレーニングされたモデル)632を生成する。モデル630およびトレーニングされたモデル632は、深層ニューラルネットワーク(深層ニューラルネットワークには畳み込みニューラルネットワークが含まれる)などの統計モデルであってもよい。本開示の実施形態による合成データ生成器640は、トレーニングされたモデル632を生成するためにトレーニングデータ605に含まれ得る合成されたデータ642を生成する。モデルトレーニングシステム607は、モデル630のパラメータを更新するための反復処理を適用して、供給されたトレーニングデータ605(例えば、合成されたデータ642を含む)に従って、トレーニングされたモデル632を生成することができる。モデル630のパラメータの更新には、例えば、トレーニングデータに応じてラベルとモデルの出力との間の差を測定する損失関数に従って、勾配降下(および、ニューラルネットワークの場合は、逆伝播)を適用することが含まれ得る。モデルトレーニングシステム607および合成データ生成器640は、1つ以上の電子回路を使用して実装され得る。
【0151】
本開示の様々な実施形態によれば、モデルトレーニングシステム607および/または合成データ生成器640は、以下でより詳細に説明する様々な動作を実施するように構成された、1つ以上の電子回路を使用して実装される。電子回路のタイプとして、中央処理装置(CPU)、グラフィック処理装置(GPU)、人工知能(AI)アクセラレータ(例えば、ニューラルネットワーク、ドット積およびソフトマックスなどに共通の演算を効率的に実施するように構成されたベクトル算術論理ユニットを含み得るベクトルプロセッサ)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)などが挙げられ得る。例えば、いくつかの状況では、本開示の実施形態の態様は、不揮発性コンピュータ可読メモリに格納されたプログラム命令によって実装され、このプログラム命令は、電子回路(例えば、CPU、GPU、AIアクセラレータ、またはそれらの組み合わせ)によって実行されたときに、本明細書に記載の動作を実施して、入力偏光生フレームまたは偏光表現空間内の入力偏光特徴(例えば、強度、AOLP、およびDOLP)からセグメンテーションマップを計算する。モデルトレーニングシステム607および合成データ生成器640によって実施される動作は、単一の電子回路(例えば、単一のCPU、単一のGPUなど)によって実施されてもよく、または複数の電子回路(例えば、複数のGPU、またはGPUと組み合わせたCPU)間で割り当てられてもよい。複数の電子回路は、互いにローカルであってもよく(例えば、同じダイ上に置かれる、同じパッケージ内に置かれる、または同じ組み込みデバイスもしくはコンピュータシステム内に置かれる)、および/または互いに離れていてもよい(例えば、Bluetooth(登録商標)などのローカルパーソナルエリアネットワークなどのネットワークを介して、ローカルの有線ネットワークおよび/もしくは無線ネットワークなどのローカルエリアネットワークを介して、ならびに/または一部の動作をローカルで実施し、他の動作をクラウドコンピューティングサービスがホストするサーバで実施する場合などの、インターネットなどの広域ネットワークを介して、通信してもよい)。モデルトレーニングシステム607および合成データ生成器640を実装するように動作する1つ以上の電子回路は、本明細書ではコンピュータまたはコンピュータシステムと呼ぶ場合があり、これには、1つ以上の電子回路によって実行されたときに、本明細書に記載のシステムおよび方法を実装する命令を格納するメモリを含むことができる。
【0152】
図7A、7B、7C、および7Dは、本開示の実施形態による比較アプローチおよびセマンティックセグメンテーションまたはインスタンスセグメンテーションによって計算されるセグメンテーションマップを示す背景を提供する。より詳細には、図7Aは、2つの透明なボール(「なりすまし」)およびいくらかの背景の乱雑さを含む別のシーンを描写する写真のプリントアウトの上に、1つの本物の透明なボールが置かれたシーンの画像または強度画像である。図7Bは、線の異なるパターンを使用して図7Aの強度画像上に重ねられた透明なボールのインスタンスを識別する、比較用マスク領域ベースの畳み込みニューラルネットワーク(Mask R-CNN)によって計算されたセグメンテーションマスクを示し、本物の透明なボールはインスタンスとして正しく識別され、2つのなりすましはインスタンスとして誤って識別されている。言い換えれば、Mask R-CNNアルゴリズムはだまされて、2つのなりすましの透明なボールを、シーン内の実際の透明なボールのインスタンスとしてラベル付けした。
【0153】
図7Cは、本発明の一実施形態による、シーンを捕捉した偏光生フレームから計算された直線偏光角度(AOLP)画像である。図7Cに示されるように、透明なオブジェクトは、AOLPドメインなどの偏光空間において非常に一意なテクスチャを有し、ここではエッジ上にジオメトリ依存のシグネチャがあり、直線偏光角度で透明なオブジェクトの表面上に生じる明確な、または一意な、または特定のパターンがある。言い換えれば、透明なオブジェクトの内部テクスチャ(例えば、透明なオブジェクトを通して見える背景表面から採り入れた外部テクスチャとは対照的な)は、図7Aの強度画像よりも図7Cの偏光角度画像で、より見やすい。
【0154】
図7Dは、本発明の一実施形態による偏光データを使用して計算されたセグメンテーションマスクが重ね合わされた図7Aの強度画像を描写しており、本物の透明なボールは、線の重ね合わせられたパターンを使用してインスタンスとして正しく識別され、2つのなりすましはインスタンスとして正しく除外される(例えば、図7Bとは対照的に、図7Dは、2つのなりすましの上に線の重ねられたパターンを含まない)。図7A、7B、7C、および7Dは、なりすまし透明オブジェクトの存在下で本物の透明なオブジェクトを検出することに関する例を示しているが、本開示の実施形態はそれに限定されず、透明、半透明、および非艶消しもしくは非ランバートのオブジェクトなどの他の光学的に困難なオブジェクト、ならびに非反射(例えば、艶消しの黒色オブジェクト)およびマルチパス誘導オブジェクトにも適用され得る。
【0155】
図8は、約1.5の屈折率を有する表面への入射角の範囲にわたる透過光対反射光のエネルギーのグラフである。図8に示すように、透過されたエネルギー線(図8に実線で示される)および反射されたエネルギー線(図8に点線で示される)の勾配は、入射角が低い(例えば、表面の平面に垂直に近い角度である)場合は、比較的小さくなる。そのため、入射角が低い(例えば、表面に対して垂直に近い、言い換えれば、表面法線に近い)場合は、偏光パターンで表面の角度のわずかな差を検出するのが難しい(コントラストが低い)可能性がある。一方、反射されたエネルギーの勾配は、入射角が大きくなるにつれて平坦から増加し、透過されたエネルギーの勾配は、入射角が大きくなるにつれて平坦から減少する(絶対値がより大きくなる)。1.5の屈折率を有する図8に示される例では、両方の線の勾配は、約60°の入射角で実質的により急になり始め、それらの勾配は、約80°の入射角で非常に急になる。曲線の特定の形状は、物質の屈折率に従って異なる物質で変化し得る。曲線のより急な部分に対応する入射角(例えば、図8に示される、屈折率1.5の場合の約80°など、表面に対して平行に近い角度)で検査中の表面の画像を捕捉すると、偏光生フレーム18の表面形状の変化のコントラストおよび検出可能性を向上させ、偏光表現空間のテンソルでそのような特徴の検出可能性が向上させることができるが、これは、(表面法線の小さな変化に起因する)入射角の小さな変化が、捕捉された偏光生フレームに大きな変化を引き起こし得るためである。
【0156】
図9は、本開示の一実施形態による合成知恵者を生成するためのパイプラインを描写するフローチャートである。本開示のいくつかの実施形態では、図9の動作は、合成データ生成器40によって、例えば、合成データ生成器40のメモリに格納された専用のプログラム命令で実施され、専用のプログラム命令は、合成データ生成器40のプロセッサによって実行されたときに、合成データ生成器40に、光学現象の物理的シミュレーションに基づいて合成画像を生成するために、本明細書に記載の専用の動作を実施させる。便宜上、本開示の実施形態の態様は、透明な表面、光沢のある金属表面、および/または暗い艶消し表面を有するオブジェクトなどの光学的に困難な製造部品およびツールに対してコンピュータビジョンタスクを実施するための、製造の文脈において偏光画像化を適用することの文脈において説明される。
【0157】
動作910において、合成データ生成器40は、オブジェクトの3Dモデルを仮想シーンに置く。製造環境でシーンの合成画像を生成する文脈において、オブジェクトの3Dモデルは、部品および部分的もしくは完全に組み立てられた製品のコンピュータ支援設計(CAD)モデルから容易に入手可能であり得る。これらのCADモデルは、製品の設計段階で以前に作成されている場合があり、例えば、部品のベンダー(例えば、部品を製造業者に供給したベンダー)、公的に入手可能な情報(例えば、データシート)、または製造業者が雇った内部の製品設計者から得ることができる。状況によっては、部品の仕様に基づいてCADモデルを手動で生成してもよい。
【0158】
本開示のいくつかの実施形態では、オブジェクトの3Dモデルは、機械学習モデルが実施するようにトレーニングされる特定のコンピュータビジョンタスクで遭遇すると予想されるそれらのオブジェクトの配置に似たやり方で、仮想シーンに置かれる。
【0159】
製造の文脈におけるコンピュータビジョンの上の例では、1つのタスクは部品の箱に対してインスタンスセグメンテーションを実施することであり、この場合、部品は、同種(例えば、ばねの箱またはねじの箱など、箱内のすべての部品が同じである)、または異種(例えば、異なるサイズのねじ、または合致するナットと混合されたねじなど、異なるタイプの部品の混合)であってよい。オブジェクトは、箱内でランダムに配置されることができ、この場合、部品が箱内で多くの異なる方向に配向され得、かつ異種部品の箱では、箱の異なる部分に分離されるのとは対称的に、異なるタイプの部品が一緒に混合される。コンピュータビジョンシステムは、箱のセグメンテーションマップを計算し、箱内の個々の部品の場所および配向を特定する(かつ異種部品の箱の場合は、オブジェクトのタイプも特定する)ようにトレーニングすることができる。次いで、このセグメンテーションマップを、ロボットアームなどのアクチュエータシステムで使用して、部品を箱から取り出し、取り出した部品を部分的に組み立てられた製品に追加することができる。
【0160】
したがって、本開示のいくつかの実施形態では、合成データ生成器40は、シーン内に仮想箱の3Dモデルを置くことによって、箱内の部品のシーンを生成し、3Dコンピュータグラフィックスレンダリングシステムに組み込まれた物理エンジンなどの物理シミュレーションエンジンを使用してシミュレートされたように、部品の3Dモデルを仮想箱にドロップする。例えば、Blender(登録商標)3Dレンダリングソフトウェアには、重力または他の力の影響による、剛体、布、ソフトボディ、流体などの動き、衝突、および潜在的な変形など、物理的な実世界の様々な現象をシミュレートする物理システムが含まれる。したがって、剛体シミュレーションは、剛体仮想箱への剛体部品(例えば、ねじ、ボルト、比較的固いばね)のドロップをシミュレートするために使用することができ、軟体シミュレーションは、弾性または変形可能な部品(例えば、ひも、ワイヤ、プラスチックシートなど)を剛性の仮想箱に入れるのに使用することができる。
【0161】
より詳細には、部品の3Dモデルの様々な数のインスタンスを仮想箱にドロップすることなどによって、箱の異なる潜在的状態を表す様々な差分シーンを生成することができる。例えば、典型的な箱の最大容量が1,000個のねじである場合、1,000個のねじ、900個のねじ、500個のねじ、100個のねじ、および10個のねじを仮想箱にドロップして、仮想箱の異なる潜在的な満杯状態を表す異なるシーンを生成することにより、様々なシーンを生成することができる。加えて、任意の所与の数のねじに対して複数のシーンを生成することができ(または異なるシーンの生成間でねじの数をランダム化することができる)、この場合、箱の上のランダムな異なる場所から部品を一度に1つずつ箱にドロップすることなどによって、箱内の部品の配置もランダム化される。
【0162】
したがって、動作910では、合成データ生成器40は、典型的なオブジェクトの配列を含むシーンを生成する。
【0163】
動作930において、合成データ生成器40は、動作910で生成された仮想シーンに照明を追加する。具体的には、合成データ生成器40は、1つ以上の光源を仮想シーンに追加し、光源は、箱内のオブジェクトの表面の一部またはすべてを照らす。いくつかの実施形態では、トレーニングのロバスト性を改善するために、1つ以上の光源の位置がランダム化され、パーツの箱に対して異なる場所(例えば、異なる角度および距離)にある光源を用いて複数のシーンが生成される。本開示のいくつかの実施形態では、仮想照明は、コンピュータビジョンシステムが動作するようにトレーニングされる環境で見出されるであろう光源を表す、仮想光源を含む。潜在的な代表的な光源の例には、例えば、白熱灯、蛍光灯、発光ダイオード(LED)電球、環境内のシミュレートされた窓からの自然光、および他の形態の照明技術に対応する異なる色温度が含まれ、仮想照明の形状(例えば、照明によって放出される光線の方向)は、直接光から拡散光までの範囲にあり得る。本開示のいくつかの実施形態では、光の特徴(例えば、色温度および形状)もランダム化されて、異なるタイプの照明で異なるシーンを生成する。
【0164】
動作950において、合成データ生成器40は、モダリティ固有の物質を3D仮想シーン内のオブジェクトに適用する。例えば、合成された偏光画像化データを生成する場合は、仮想シーン内のオブジェクトに偏光固有の物質が適用されるのに対して、合成された熱画像化データを生成する場合は、仮想シーン内のオブジェクトに熱画像化固有の物質が適用される。例示のために、偏光特有の物質が本明細書で詳細に説明されるが、本開示の実施形態はそれに限定されず、マルチモーダル画像化モダリティおよび/またはプレノプティック画像化モダリティに特有の物質の生成および適用にも適用され得る。
【0165】
本開示の実施形態のいくつかの態様は、シーン内のオブジェクトの物質的な外観がオブジェクトの典型的な外観を超えてランダム化される、ドメインのランダム化に関する。例えば、いくつかの実施形態では、ランダムな色を有する多数の物質(例えば、ランダムに選択された異なる色の何千もの異なる物質)が、仮想シーン内の異なるオブジェクトに適用される。実世界の環境では、シーン内のオブジェクトは、概して明確な色を有している(例えば、ゴム製ワッシャーは概してすべて艶消し黒色に見え、ねじは、光沢のある黒色、艶消しの黒色、金色、または光沢のある金属の特有の色合いであり得る)。ただし、実世界のオブジェクトは、光の色温度、反射、スペキュラーハイライトなどの照明条件の変化が原因で、異なる外観を有する可能性がある。したがって、トレーニングデータを生成するときにオブジェクトに適用される物質の色にランダム化を適用すると、トレーニングデータのドメインが拡張され、非現実的な色も包含するようになり、これによりトレーニングデータの多様性が増し、実世界のより様々な条件で正確な予測(例えば、より正確なインスタンスセグメンテーションマップ)を行うことができる、よりロバストな機械学習モデルをトレーニングすることができる。
【0166】
本開示の実施形態のいくつかの態様は、画像化モダリティに従って1つ以上のパラメータ(パラメータ化された物質)に依存する物質のモデルを生成するために、テクスチャマッピングを実施することに関する。例えば、上で考察したように、偏光カメラシステムによって画像化された、シーン内の所与の表面の外観は、表面の物質の特性、スペクトルプロファイルおよびシーン内の照明源もしくは複数の照明源(光源)の偏光パラメータ、表面上への光の入射角、ならびに観察者(例えば、偏光カメラシステム)のビューポイント角に基づいて変化し得る。そのため、異なる物質の偏光の物理特性をシミュレートすることは、複雑で計算が集中するタスクである。
【0167】
このように、本開示の実施形態のいくつかの態様は、実世界の物質を捕捉した実世界の画像などの経験的データに基づいて、様々な画像化モダリティの物理特性をエミュレートすることに関する。より詳細には、関心のある特定の画像化モダリティを実装する撮像システム(例えば、偏光カメラシステム)を使用して、関心のある特定の物質で作られたオブジェクトからサンプル画像を収集する。いくつかの実施形態では、収集されたサンプル画像を使用して、物質の表面の光照射野関数(light-field function)(例えば、双方向反射密度関数またはBRDF)など、その物質の経験的モデルを計算する。
【0168】
一般に、物質の経験的モデルを生成するためのいくつかの技術には、代表的な物質の画像のサンプルを、複数の視野角から複数の異なる照明角度で捕捉することが含まれる。
【0169】
図10は、本開示の一実施形態による偏光カメラシステムを使用して複数の角度から本物の物質をサンプリングする概略図である。図10に示されるように、物理的オブジェクト(例えば、ワッシャ、ねじなど)の表面1002は、対象の物質(例えば、それぞれ、黒色ゴム、クロムメッキされたステンレス鋼など)で作られている。動作810において、この物質は、物理的なシーン(例えば、実験室のベンチトップ)に置かれる。LEDランプまたは蛍光灯などの物理的照明源1004がシーン内に置かれ、表面1002の少なくとも一部分を照明するように配置される。例えば、図10に示されるように、物理的照明源1004から放射された光線1006は、表面1002の特定のポイント1008における表面1002の法線方向1014に対して、表面1002上の特定のポイント1008において入射角αで、表面1002の特定のポイント1008に入射する。
【0170】
画像化システムを使用して、オブジェクトの表面1002の画像を、表面の法線方向に対する複数の姿勢から取得する。図10に示される実施形態では、偏光カメラシステム1010を画像化システムとして使用して、物理的照明源1004によって照明される部分(例えば、特定のポイント1008を含む)を含む表面1002の画像を捕捉する。偏光カメラシステム1010は、偏光カメラシステム1010を、ある姿勢から次の姿勢に移動させ、各姿勢から偏光生フレームを捕捉することなどによって、異なる姿勢1012から表面1002の画像を捕捉する。図10に示す実施形態では、偏光カメラシステム1010は、表面1002を、第1の姿勢1012Aでは、0°の正面平行観察者角度β(例えば、真上からの、またはポイント1008での表面法線1014と位置合わせされた正面平行ビュー)で撮像し、第2の姿勢1012Bでは、表面法線1014に対して45°の角度などの中間観察者角度βで撮像し、第3の姿勢1012Cでは、表面法線1014に対して浅い(例えば、89°などの90°よりわずかに小さい)観察者角度βで撮像する。
【0171】
上で考察したように、偏光カメラシステム1010は、概して、異なる角度で偏光フィルタを用いて(例えば、単一のレンズおよびセンサシステムの光路に4つの異なる偏光角度を有する偏光モザイクを用いる、カメラの各々が異なる角度で直線偏光フィルタを有する4台のカメラのアレイを用いる、同じ姿勢から異なる時間に捕捉された異なるフレームに対して異なる角度に設定された偏光フィルタを用いる、などで)偏光生フレームを捕捉するように構成されている。
【0172】
これらの視点または姿勢1012の各々は、偏光の物理特性の性質により、異なる偏光信号を与える。したがって、異なる観察者角度から表面1002の画像を捕捉することによって、物質のBRDFのモデルは、最も近い対応する観察者角度βを有する1つ以上の姿勢1012で、カメラシステムによって1つ以上の最も近い対応する入射角αの物理的照明源1004を用いて捕捉された、画像間の補間に基づいて推定することができる。
【0173】
サンプリングに基づいて物質の経験的プレノプティックモデル(例えば、偏光モデル)を生成する方法は、2021年1月4日にUnited States Patent and Trademark Officeに出願されたPCT米国特許出願第21/12073号により詳細に説明され、その開示全体が参照により本明細書に組み込まれる。
【0174】
再び図9を参照すると、いくつかの実施形態では、動作970で、合成データ生成器40は、シーンの仮想背景を設定する。いくつかの実施形態では、仮想背景は、合成データ生成器40によってシミュレートされているモダリティと同じ画像化モダリティを使用して捕捉された画像である。例えば、いくつかの実施形態では、合成偏光画像を生成するとき、仮想背景は偏光カメラを使用して捕捉された実画像であり、合成熱画像を生成するとき、仮想背景は熱カメラを使用して捕捉された実画像である。いくつかの実施形態では、仮想背景は、トレーニングされた機械学習モデルが動作することを意図している環境と同様の環境の画像である(例えば、ロボットを製造するためのコンピュータビジョンシステムの場合、製造施設または工場)。いくつかの実施形態では、仮想背景はランダム化され、それにより合成トレーニングデータセットの多様性が増加する。
【0175】
動作990において、合成データ生成器40は、経験的に導出された物質のモダリティ固有モデルのうちの1つ以上を使用して、指定された画像化モダリティ(例えば、偏光、熱など)に基づいて3Dシーンをレンダリングする。本開示の実施形態のいくつかの態様は、本開示の一実施形態による物質の経験的モデルに基づいて画像をレンダリングすることに関する。物質の経験的モデルは、対象の物質で作られた実世界オブジェクトを捕捉した画像から収集されたサンプルに基づいて、上で考察したように開発することができる。
【0176】
概して、3Dコンピュータグラフィックスレンダリングエンジンは、出力画像の各ピクセルの色を、そのピクセルが描く仮想シーンの表面の色に従って計算することにより、仮想シーンの2Dレンダリングを生成する。例えば、光線追跡レンダリングエンジンでは、仮想光線が仮想カメラから仮想シーンに(実世界の典型的な光の経路とは逆に)放射され、そこで仮想光線が仮想シーン内のオブジェクトの3Dモデルの表面と相互作用する。これらの3Dモデルは典型的に、平坦な表面(例えば、三角形)を画定するポイントのメッシュなどの幾何学的形状を使用して表現され、これらの表面には、反射、屈折、散乱、分散、および他の光学効果など、仮想光線が表面とどのように相互作用するかを説明する物質、ならびに表面の色を表すテクスチャ(例えば、テクスチャは単色でもよく、または例えば、表面に適用されるビットマップ画像であってもよい)であり得る。各仮想光線の経路は、仮想シーン内の光源(例えば、仮想照明器具)に到達するまで仮想シーン内をたどり(または「追跡する」)、カメラから光源までの経路に沿って遭遇するテクスチャの累積された変更が、光源の特性(例えば、光源の色温度)と組み合わされて、ピクセルの色が計算される。この一般的な処理は、当業者によって理解されるように、各ピクセルの異なる部分を通る複数の光線を追跡し、シーンと相互作用する異なる光線を追跡することによって計算された異なる色の組み合わせ(例えば、平均)に基づいてピクセルの色を計算することによって、アンチエイリアシング(またはスムージング)を実施するなど、修正することができる。
【0177】
これらの経験的プレノプティックモデルに基づいてプレノプティック画像(例えば、偏光画像または偏光表現空間内の画像)をレンダリングするシステムおよび方法は、2021年1月4日にUnited States Patent and Trademark Officeに出願されたPCT米国特許出願第21/12073号により詳細に説明され、その開示全体が参照により本明細書に組み込まれる。
【0178】
したがって、本開示の実施形態の態様は、対象のオブジェクト(例えば、姿勢推定器100によって姿勢が推定されるオブジェクトのタイプ)の3Dジオメトリ、照明条件、および物質特性をシミュレートするように構成されたシミュレーション環境に関する。物質特性のシミュレーションには、鏡面反射、物質の色、粗さ、ならびに光の偏光および異なる物質からのその反射を含む、様々な物理現象をシミュレートする能力が含まれ、光の偏光などの少なくともいくつかのプレノプティック物質特性が、物質の経験的モデルに基づいてシミュレートされる。
【0179】
シミュレーションを使用したデータ生成
本開示の実施形態のいくつかの態様は、機械学習モデルをトレーニングするための合成画像を生成するための、上記の技術の組み合わせに関する。図11は、本開示の一実施形態によるトレーニングデータセットを生成するための方法を描写するフローチャートである。ターゲットドメインを表す1つ以上の仮想シーンは、上で考察したように生成され得る(例えば、部品の箱の画像を生成するために、部品のうちの1つ以上の3Dモデルを選択し、3Dモデルのインスタンスを容器にドロップすることによって)。本開示の実施形態のいくつかの態様は、(1)動作1110において純粋にドメインのランダム化によって生成された画像、(2)動作1112において純粋にテクスチャマッピング(例えば、オブジェクトの表面にプレノプティック物質を適用すること)を通して生成された画像、および(3)動作1114において純粋に法線マッピング(例えば、オブジェクトの表面法線に基づいて生成されたDOLPρ画像およびAOLPφ画像などの偏光空間特徴マップ)を通して生成された画像、に基づいてトレーニングデータセットを形成することに関する。
【0180】
さらに、トレーニングデータセットは、上で考察したように、埋め込み空間でパラメータ化されるように、経験的に生成された異なるモデル間を補間することによって生成された物質のモデルを使用して生成された画像を含むことができる。
【0181】
本開示のいくつかの実施形態では、(1)ドメインのランダム化、(2)テクスチャマッピング、および(3)法線マッピング、に従って生成された画像は、画像をトレーニングデータセットに追加する前に、動作1120において、生成された画像にスタイル転送または他のフィルタをそれぞれ適用することによってさらに処理される。スタイル転送を適用すると、上述した3つの技術を使用して生成されたような多少異なって現れる画像が、より一貫した外観になる。いくつかの実施形態では、スタイル転送処理は、合成された入力画像を変換して、対象の画像化モダリティに基づいて、捕捉された画像により類似して見せる(例えば、(1)ドメインのランダム化を使用して生成された画像と、(3)法線マッピングを使用して生成された特徴マップとを偏光生フレームのように見せる)か、または入力画像に非現実的な絵画のスタイルを適用することなどによって、合成された入力画像をより人工的に見せる(例えば、(1)ドメインのランダム化と、(2)テクスチャマッピングを使用したレンダリングと、(3)法線マッピングを使用して生成された特徴マップと、を使用して生成された画像を、キャンバスに絵筆で描いた絵のように見せる)。
【0182】
いくつかの実施形態では、トレーニングデータセット用に選択された画像に対して、動作1120でスタイル転送を実施するために、複雑なグローバルスタイル転送用のSytleGAN(例えば、Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition 2020のKarras,Tero,et al.「Analyzing and improving the image quality of stylegan」を参照のこと)、ローカルスタイル転送用のパッチベースのネットワーク(例えば、Chen,Tian Qi、およびMark Schmidtの「Fast patch-based style transfer of arbitrary style」arXiv preprint arXiv:1612.04337(2016)を参照のこと)、およびドメイン適応を使用するネットワーク(例えば、Dundar,Aysegul,et al.「Domain stylization:A strong,simple baseline for synthetic to real image domain adaptation」arXiv preprint arXiv:1807.09384(2018)を参照のこと)などのニューラルスタイル転送ネットワークがトレーニングされ、使用される。その結果、トレーニングデータセット内のすべての画像は、画像が取得された方法(例えば、(1)ドメインのランダム化、(2)テクスチャマッピング、(3)法線マッピング、または偏光画像もしくは熱画像などの対象のモダリティを実装する画像化システムを使用して捕捉されたオブジェクトの実画像などの他のソースかどうか)に関係なく、同様のスタイルまたは外観を有し得る。
【0183】
さらに、本開示の実施形態のいくつかの態様は、スタイルのランダム化、ガウスノイズ、アフィン変換、エッジブラー、および歪みを含むがこれらに限定されない、生成された画像に対する追加または他のデータ拡張を実施することに関する。
【0184】
教師あり学習のためのトレーニングデータを生成する場合、合成データ生成器640はまた、動作1124において、合成された画像のためのラベル(例えば、所望の出力)を自動的に生成する。例えば、機械学習モデルをトレーニングして画像分類タスクを実施するためのトレーニングデータを生成する場合、所与の画像に対して生成されたラベルは、画像に描かれたオブジェクトのクラスを含むことができる。これらの分類ラベルは、仮想シーンで見えるオブジェクトの各々の固有のタイプを識別することによって生成することができる。別の例として、インスタンスセグメンテーションタスクを実施するために機械学習モデルをトレーニングするためのトレーニングデータを生成する場合、生成されたラベルは、各オブジェクトの各インスタンスが(例えば、異なるインスタンス識別子を使用して)一意に識別されるセグメンテーションマップを、(例えば、同じタイプのオブジェクトが同じ分類識別子を有する)分類とともに含むことができる。例えば、セグメンテーションマップは、カメラから仮想シーンに入る光線を追跡することによって生成することができ、各光線は、仮想シーンの何らかの第1の表面と交差する可能性がある。セグメンテーションマップの各ピクセルは、ピクセルを介してカメラから放射された光線が当たった表面を含むオブジェクトのインスタンス識別子および分類識別子に基づいて、それに応じてラベル付けされる。さらに別の例として、キーポイント検出器をトレーニングするためのトレーニングデータを生成する場合、標準的な3Dキーポイント選択方法を使用してキーポイントが選択される。いくつかの実施形態では、最遠点アルゴリズムを使用して、互いにできるだけ離れた3Dモデル上のキーポイントを選択し、それらを強制的にオブジェクトの異なる部分におく。
【0185】
本開示のいくつかの実施形態では、トレーニングデータセットの画像は、動作1124において、ハードサンプルマイニング(hard example mining)(例えば、Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition Workshops 2018のSmirnov,Evgeny,et al.「Hard example mining with auxiliary embeddings」を参照のこと)に基づいて、合成されたデータセット(1)、(2)、および(3)からサンプリングされる。ハードサンプルマイニングを使用して合成されたデータセットをサンプリングすると、トレーニングセットのサイズを縮小して、トレーニング処理にあまり影響を与えないであろう実質的に冗長な画像を除去することで、結果としてのトレーニングされたモデルに、より大きな影響を与える「ハードサンプル」を維持しながら、トレーニング処理の効率を向上させることができる。
【0186】
上で考察したように、かつ図1を参照すると、合成データ生成器640によって生成された、合成されたデータ642の結果として得られるトレーニングデータセットは次に、事前トレーニングされたモデルまたはランダムパラメータで初期化されたモデルなどのモデル630をトレーニングするモデルトレーニングシステム607によって、トレーニングデータ605として使用されて、トレーニング済みモデル632を生成する。偏光画像化モダリティに従ってトレーニングデータを生成する場合の上で提示した例を続けると、トレーニングデータセット605を使用してモデル630をトレーニングして、偏光生フレーム(例えば、テクスチャマッピングによって生成された画像)および偏光表現空間のテンソル(例えば、法線マッピングによって生成された画像)などの変更入力特徴を操作することができる。
【0187】
したがって、合成されたデータ642を含むトレーニングデータ605を使用して、機械学習モデル630をトレーニングまたは再トレーニングして、特定の画像化モダリティに基づいてコンピュータビジョンタスクを実施する。例えば、偏光画像化モダリティによる合成データを使用して、標準カラー画像に基づいてインスタンスセグメンテーションを実施するように事前トレーニングされている畳み込みニューラルネットワークを再トレーニングして、偏光入力特徴に基づいてインスタンスセグメンテーションを実施することができる。
【0188】
展開において、本開示の実施形態に従って生成されたトレーニングデータに基づいてトレーニングされたトレーニングされたモデル632は次に、偏光生フレームおよび/または偏光表現空間におけるテンソルなどのトレーニングデータと同様の入力を取って(これらの入力画像は、トレーニングデータを生成するときにスタイル転送が適用された場合は同じスタイル転送によってさらに変更される)、セグメンテーションマップなどの予測出力を生成するように構成される。例えば、いくつかの実施形態では、図2Aに示されるように、インスタンスセグメンテーションおよびキーポイント検出などのタスクを実施するようにトレーニングされたモデルが姿勢推定器100によって使用されて、動作230および動作270において、それぞれセグメンテーションマップを計算し、キーポイントを検出する。これらのコンピュータビジョンタスクに適したアーキテクチャの例としては、セグメンテーションおよびキーポイント用のMask R-CNN(例えば、Proceedings of the IEEE International Conference on Computer Vision.2017のHe,Kaiming,et al.「Mask R-CNN」を参照のこと)、U-Net(例えば、International Conference on Medical Image Computing and Computer-Assisted Intervention.Springer, Cham,2015のRonneberger,Olaf、Philipp Fischer、およびThomas Brox「U-net:Convolutional networks for biomedical image segmentation」を参照のこと)、およびAdaptIS(例えば、Proceedings of the IEEE/CVF International Conference on Computer Vision 2019のSofiiuk,Konstantin、Olga Barinova、およびAnton Konushin「Adaptis: Adaptive Instance Selection Network」を参照のこと)が挙げられるが、これらに限定されない。
【0189】
したがって、姿勢推定を計算するための比較システムは、実世界のトレーニングデータまたは特定の深度センサのいずれかに依存して、一般化された6DoF性能を達成するが、本開示の実施形態は、正確な3Dモデル(例えば、CADモデル)が利用可能な任意のオブジェクトのタイプに適用することができる。本システムおよび方法は、出力が、シミュレートされたデータの生成で達成可能なものに似ている限り、任意の画像化技術にも適用することができる。さらに、本開示の実施形態は、ニューラルネットワークをトレーニングして、偏光キューからの情報などの高次元光学データに基づいてコンピュータビジョンタスクを実施するためにも使用され得る。したがって、本開示のいくつかの実施形態は、上述した6自由度(6DoF)の姿勢推定を実施するための偏光キューに基づくトレーニングを含む、本開示の実施形態によるレンダリングエンジンによって生成されたトレーニングデータに基づいてトレーニングされた、深層学習モデル(例えば、畳み込みニューラルネットワーク)の組み合わせに関する。
【0190】
セグメンテーションを使用したオブジェクトレベルの対応
離間した複数のカメラを画像捕捉に使用する場合、複数のカメラ(例えば、メインカメラ10およびサポートカメラ30)の各々は、異なるビューポイントから1つ以上のオブジェクトの画像を捕捉することができる。インスタンスセグメンテーションマップ(インスタンスセグメンテーションマスクとも呼ばれる)を生成して、捕捉された画像内のオブジェクトを識別および描写することができる。同じオブジェクトが様々な画像に描かれるが、様々な画像に基づいて生成されたインスタンスセグメンテーションマップは、画像が、異なるビューポイントからのオブジェクトを描いている場合には、異なる場合がある。現在の技術のメカニズムは、第2の画像のピクセルのグループに対応する第1の画像のピクセルのブロックを識別するために、グローバルなピクセルレベルの対応を実施することができる。このような対応は、各オブジェクトインスタンスの深度推定を実施するために望ましい場合がある。しかしながら、グローバルレベルで(例えば、画像全体に対して)ピクセルレベルの対応を計算することは、計算コストが高くなる可能性がある。したがって、同じオブジェクトの異なるビューポイントを描写する画像の部分の対応を見出すよりも効率的なやり方を有することが望ましい。
【0191】
大まかに言えば、本開示の実施形態は、例えば、ピクセルレベルの対応などの画像処理タスクを行うための探索空間を縮小することを対象とする。一実施形態では、異なるビューポイントから視認したシーンを描写する画像内のオブジェクトの異なるインスタンスを識別するためにインスタンスセグメンテーションが実施され、インスタンスセグメンテーション動作に応答してインスタンスセグメンテーションマップ/マスクが生成され得る。次に、インスタンスセグメンテーションマスクを採用して、オブジェクトレベルの対応を計算することができる。
【0192】
一実施形態では、オブジェクトレベルの対応により、第1のビューポイントを描写する第1の画像に現れるオブジェクトの第1のインスタンスを、第2のビューポイントを描写する第2の画像に現れる同じオブジェクトの第2のインスタンスにマッチングさせることが可能となる。いったんオブジェクトレベルの対応が実施されると、例えばピクセルレベルの対応を実施するための探索空間は、同じオブジェクトに対応する画像の領域に限定され得る。このやり方で探索空間を縮小すると、ピクセルレベルの対応および他の同様のタスクの処理が高速化される場合がある。
【0193】
図12は、一実施形態によるオブジェクトレベルの対応のための処理のフロー図である。処理は、姿勢推定器100の構成要素である1つ以上の処理回路または電子回路によって実装され得る。当業者によって認識されるように、処理のステップの並びは固定されておらず、修正、順序の変更、異なって実施すること、順番に実施すること、並行もしくは同時に実施すること、または任意の所望の順序に変えることが可能であることを理解されたい。
【0194】
処理が開始し、ブロック1200で、姿勢推定器100は、メインカメラ10およびサポートカメラ30からマルチビュー画像を受け取る。カメラのうちの1台によって捕捉された第1の画像は、第1のビューポイントからのシーン内の1つ以上のオブジェクトを描写することができ、第2のカメラによって捕捉された第2の画像は、第1のビューポイントとは異なる第2のビューポイントからのシーン内の1つ以上のオブジェクトを描写することができる。カメラによって捕捉された画像は、例えば、偏光画像および/またはいかなる偏光も受けていない画像であってよい。
【0195】
ブロック1202で、姿勢推定器100は、捕捉された画像に基づいて、インスタンスセグメンテーションおよびマスク生成を実施する。この点に関して、姿勢推定器100は、特定のカメラ10、30によって捕捉された画像の様々な領域(例えば、ピクセル)を、オブジェクトの特定の分類に属するものとして分類する。画像内のオブジェクトの異なるインスタンスの各々もまた識別され、画像内の各オブジェクトに異なる識別子で個別にラベル付けすることなどにより、オブジェクトの異なるインスタンスの各々に一意のラベルが適用される。
【0196】
一実施形態では、様々なオブジェクトインスタンスを描写するセグメンテーションマスクも生成される。各セグメンテーションマスクは、入力画像と同じ寸法を有する2D画像であり得、各ピクセルの値は、ラベル(例えば、ピクセルによって描かれるオブジェクトの特定のインスタンス)に対応し得る。対象のオブジェクトの異なるビューポイントを描写する異なる画像に対して、異なるセグメンテーションマスクを生成することができる。例えば、第1のカメラによって捕捉された第1の画像内のオブジェクトインスタンスを描写するために第1のセグメンテーションマスクを生成することができ、第2のカメラによって捕捉された第2の画像内のオブジェクトインスタンスを描写するために第2のセグメンテーションマスクを生成することができる。セグメンテーションマスクを生成するために、例えばMask R-CNNなどの畳み込みニューラルネットワークを採用することができる。
【0197】
ブロック1204で、姿勢推定器100は、セグメンテーションマスクで識別されたオブジェクトのオブジェクトレベルの対応に関与する。この点に関して、姿勢推定器は、ある画像内の特定のオブジェクトのセグメント化されたインスタンスを、別の画像内の同じオブジェクトのセグメント化されたインスタンスに対応する(またはマッチングする)ものとして識別するために、マッチングアルゴリズムを呼び出すことができる。マッチングアルゴリズムは、異なる画像内の対応するオブジェクトインスタンスを見出すために、ある画像内のオブジェクトインスタンスを通るエピポーラ線に沿って、マッチングするオブジェクトインスタンスを検索するように制限され得る。一実施形態では、マッチングアルゴリズムは、セグメント化されたオブジェクトインスタンスに対応する領域の異なる特徴を比較して、オブジェクト対応を推定する。ある画像から別の画像へのオブジェクトインスタンスのマッチングは、例えば、ピクセルレベルの対応またはキーポイント対応の実施などの、他の画像処理タスクの検索空間を狭める可能性がある。検索空間は、同じオブジェクトに対応するものと識別された画像の識別された領域に狭められ得る。
【0198】
ブロック1206で、姿勢推定器100は、オブジェクトレベルの対応に基づいて出力を生成する。出力は、例えば、様々な画像に描かれる対応するインスタンス間の視差に基づくオブジェクトの、視差または推定された深度(例えば、カメラ10、30からの距離)の大きさであり得る。一実施形態では、出力は、例えば、マルチビューのキーポイントのパースペクティブnポイントおよび/または図2A、3、4、および5に関して上で考察したようなその後の姿勢精緻化に基づいて計算された、オブジェクトの第1のインスタンスとオブジェクトの第2のインスタンスとの間の三次元相対的な姿勢である。
【0199】
図13は、一実施形態による、ステップ1002のインスタンスセグメンテーションおよびマスク生成のアーキテクチャのブロック図である。様々なカメラ10、30によって捕捉された入力画像1300は、例えばCNNバックボーンなどの深層学習ネットワーク1302に提供される。画像が偏光画像を含む実施形態では、深層学習ネットワークは、その内容が参照により本明細書に組み込まれるPCT米国特許出願第2020/048604号に説明されているように、偏光されたCNNバックボーンとして実装されてもよい。
【0200】
一実施形態では、深層学習ネットワーク1302は、入力画像1300に基づいて特徴マップを生成し、領域提案ネットワーク(RPN)を採用して、生成された特徴マップから対象の領域を提案するように構成されている。CNNバックボーンによる提案は、分類およびバウンディングボックス回帰を実施するためにボックスヘッド1304に提供され得る。一実施形態では、分類は、入力画像1300内のオブジェクトインスタンスの各々について分類ラベル1306を出力し、バウンディングボックス回帰は、分類されたオブジェクトについてバウンディングボックス1308を予測する。一実施形態では、オブジェクトの各インスタンスに異なる分類ラベル1306が提供される。
【0201】
CNNバックボーンによる提案はまた、インスタンスセグメンテーションマスクを生成するためにマスクヘッド1310に提供されてもよい。マスクヘッド1306は、完全畳み込みネットワーク(FCN)として実装され得る。一実施形態では、マスクヘッド1310は、入力画像1300内のオブジェクトインスタンスの各々についてバイナリマスクを符号化するように構成されている。図15に、インスタンスセグメンテーションマスクの例を描写する。
【0202】
図14は、一実施形態による、第1のセグメンテーションマスク内の特定のオブジェクトインスタンスに対するオブジェクトレベルの対応を識別するために、ステップ1204(図12)で採用されるマッチングアルゴリズムのより詳細なフロー図である。処理は、第1のセグメンテーションマスクで識別されたすべてのオブジェクトインスタンスに対して繰り返すことができる。当業者によって認識されるように、図14の処理のステップの並びは固定されておらず、修正、順序の変更、異なって実施すること、順番に実施すること、並行もしくは同時に実施すること、または任意の所望の順序に変えることが可能である。
【0203】
ブロック1420で、マッチングアルゴリズムは、第1のセグメンテーションマスク内の第1のオブジェクトインスタンスの特徴を識別する。第1のオブジェクトインスタンスについて識別された特徴は、オブジェクトインスタンスの領域の形状、領域内の特徴ベクトル、および/または領域内のキーポイント予測を含み得る。第1のオブジェクトインスタンスの領域の形状は、領域の輪郭に沿ってサンプリングされたポイントのセットを介して表すことができる。領域内の特徴ベクトルが特徴記述子として使用される場合、特徴ベクトルは、畳み込みニューラルネットワークを介して抽出された平均的な深層学習特徴ベクトルであり得る。
【0204】
ブロック1422で、マッチングアルゴリズムは、第1のセグメンテーションマスク内の第1のオブジェクトインスタンスを通るエピポーラ線を識別する。
【0205】
ブロック1424で、マッチングアルゴリズムは、第1のオブジェクトインスタンスに対応し得る第2のセグメンテーションマスク内の1つ以上の第2のオブジェクトインスタンスを識別する。第2のオブジェクトインスタンスの検索は、第1のオブジェクトインスタンスを通る、第1のセグメンテーションマップと第2のセグメンテーションマップとの間のエピポーラ線に制限され得る。一実施形態では、マッチングアルゴリズムは、識別されたエピポーラ線にほぼ沿って検索して、第1のオブジェクトインスタンスと同じ分類識別子を有する第2のセグメンテーションマスク内のオブジェクトインスタンスを識別する。例えば、第1のオブジェクトインスタンスが「犬」分類に属する場合、マッチングアルゴリズムは、「犬」分類にも属する第2のセグメンテーションマスク内のオブジェクトインスタンスを評価し、異なる分類(例えば、「猫」分類)に属するオブジェクトを無視する。
【0206】
ブロック1426で、マッチングアルゴリズムは、同じ分類に属する第2のオブジェクトインスタンスの特徴を識別する。第1のオブジェクトインスタンスと同様に、特定の第2のオブジェクトインスタンスの特徴は、第2のオブジェクトインスタンスの領域の形状、領域を表す特徴ベクトル、および/または領域内のキーポイント予測を含み得る。
【0207】
ブロック1428で、マッチングアルゴリズムは、マッチングを決定するために、第1のオブジェクトインスタンスの特徴を第2のオブジェクトインスタンスの特徴と比較する。一実施形態では、マッチングアルゴリズムは、最適な適合を選択するために、第1のオブジェクトインスタンスの特徴と第2のオブジェクトインスタンスの特徴との間の適合を識別する。一実施形態では、Hungarianマッチング関数などのマッチング関数を介して最適な適合を特定することができる。一実施形態では、オブジェクトインスタンスの特徴は確率分布として表され、マッチング関数は、Kullback-Leibler(KL)発散を最小化する確率分布のマッチングを見出そうと試みる。
【0208】
ブロック1430で、マッチングが見出されたかどうかについての判定が行われる。答えが「はい」である場合、ブロック1432で出力が生成される。出力には、例えば、第1のオブジェクトインスタンスとマッチした第2のオブジェクトインスタンスの情報(例えば、オブジェクトID)が含まれ得る。
【0209】
答えが「いいえ」の場合、ブロック1434でマッチング失敗を示す出力が生成され得る。
【0210】
図15は、一実施形態による、図2Bの画像211-Lに対して生成されたインスタンスセグメンテーションマスクである。セグメンテーションマスクは、識別されたオブジェクトのインスタンスを含む画像の各領域1600、1602を、それらの固有の境界とともに識別することができる。識別された各マスク領域は、識別されたオブジェクトインスタンスの形状を取り得る。識別されたマスク領域内のピクセルは、特定のオブジェクトインスタンスおよびオブジェクトタイプを識別する1つ以上の値に関連付けることができる。
【0211】
図16Aおよび図16Bは、一実施形態による、図12に関して説明したオブジェクトレベルの対応を決定するための処理の結果を描写する画像である。図16AおよびBの例では、マッチングは、画像1500a、1500bに描かれたオブジェクトに対するものである。例えば、図12の処理を実行した結果、図16Aのオブジェクトインスタンス1600は、図16Bの対応する/マッチングするオブジェクトインスタンス1602として識別することができる。一方、特定のオブジェクトインスタンスはマッチしない結果となり得る。例えば、図16Aのオブジェクトインスタンス1604についてマッチングは見出されない。
【0212】
ハードウェアシステムの自動較正
本開示の実施形態のいくつかの態様は、メインカメラ10およびサポートカメラ30を含むカメラシステムの自動較正のためのシステムおよび方法に関する。本開示の実施形態のいくつかの態様は、メインカメラ10およびサポートカメラ30によって撮像されたシーン内のオブジェクトの姿勢を推定するときに、(例えば、上記の式7および式8に示す)コスト関数を最適化することに関する。これらのコスト関数は、ビューポイントの各々に関連付けられた相対的な姿勢が既知であること、すなわちカメラの各々の較正パラメータが既知であることを仮定している。
【0213】
カメラの較正は、概して、カメラ内部、ステレオ内部、およびデバイスもしくはシステム内部の3つのカテゴリに分かれる。3つすべての初期推定値は、標準的なカメラ較正を使用して計算することができるが、これらの初期推定値は不正確な場合がある。したがって、本開示のいくつかの実施形態は、パーツ自体からのアクティブ較正に関する。具体的には、本開示の実施形態のいくつかの態様は、シーン内のオブジェクトの姿勢およびカメラの較正(j番目のカメラに関する外部パラメータR、Tおよび内部パラメータK)を、以下の式14のコスト関数を同時に最適化することによって同時に見出すことに関する。
【数24】
【0214】
式14は、カメラおよびオブジェクト姿勢マトリックスを使用した、3Dオブジェクトのキーポイント[x,y,z](iでインデックス付けされている)の2D予測キーポイント[uij,vij](j番目のビューポイントでカメラから見た現在のキーポイントiでインデックス付けされている)への再投影を表す。深層学習ベースのキーポイントを任意のオブジェクトとともに使用するこのアクティブ較正により(例えば、特殊な較正ターゲットとは対照的に)、パッシブカメラシステムを使用しても(例えば、アクティブ照明投影機を使用せずに)、乱雑なパーツ22の箱を使用してM台のカメラの較正が可能になる。
【0215】
図17は、本開示の一実施形態によるカメラ自動較正の概略描写である。図17に示されるように、オブジェクト1210は、シーン内で姿勢を有し得、対応する3Dキーポイント[x,y,z]、[x,y,z]、[x,y,z]、および[x,y,z]を有し得る。これらのキーポイントは、Cam1およびCam2のビューポイント(または姿勢)に対応する2D画像空間に投影され、これらの投影されたポイントは、対応する深層学習の推定されたポイントの近くにあるように示されている。これらの深層学習推定点は、Cam1およびCam2によって捕捉された2D画像で検出された2Dキーポイントに対応し、図17では、それぞれ[u11,v11]、[u21,v21]、[u31,v31]および[u41,v41]、ならびに[u12,v12]、[u22,v22]、[u32,v32]および[u42,v42]としてラベル付けされている。姿勢推定器100は、推定されたオブジェクト姿勢R、T、推定されたカメラ姿勢1のR、T、K、および推定されたカメラ姿勢2のR、T、Kを同時に更新することによって、カメラシステムを自動的に較正する(例えば、カメラの外部パラメータおよび内部パラメータを決定する)。
【0216】
カメラ空間をロボット空間に相関させる
上述したように、本開示の実施形態のいくつかの態様は、ロボットアームのエンドエフェクタ(および他の部分)の姿勢およびロボットの近傍内のオブジェクトを検出するために、ロボット工学システムに姿勢推定を提供するなどの、ロボット工学の文脈における姿勢推定に関する。これらの姿勢推定は次に、ロボットコントローラによって使用されて、ロボットシステムの動きを制御し、ワークスペースまたは環境内で検出されたオブジェクトを操作および/またはナビゲートすることができる。
【0217】
例えば、いくつかの実施形態では、(例えば、上述の図2Aに従って)オブジェクトの6自由度(6DoF)姿勢が計算されると、オブジェクトの姿勢はロボットのワークスペースに何らかの様式で相関され、これにより、姿勢をロボットコントローラによって使用される座標系に変換するなどによって、オブジェクトを把握するために必要な位置にエンドエフェクタを効率的に遷移させることが可能となる。
【0218】
いくつかの実施形態では、エンドエフェクタの姿勢を追跡しやすくするために、基点(例えば、ArUcoマーカなどの視覚的に検出可能なマーカ)がロボットのエンドエフェクタに組み込まれる。マルチビュービジョンシステム1を使用してこれらの基点を追跡すると、ビジョンシステム1をロボットワークスペースに簡単に接続し、ロボットアームのエンドエフェクタを、姿勢推定器100によって計算されたオブジェクトの位置に基づいて、エンドエフェクタによって把持されるオブジェクトの場所に移動させることに伴う位置誤差を軽減することができる。
【0219】
図18は、ロボットアームの精度および再現性がロボットの姿勢および位置の両方の関数であることを描写する概略図である。図18に示されるように、エンドエフェクタを、所望の位置に数回の異なる試みで動かそうと試みるロボットアームは、実際にはエンドエフェクタを、異なる取得された位置のクラスタに動かすことができる。取得された位置の重心と所望の位置との差は、ロボットシステムの精度(または誤差)に対応し、差が小さいほど精度が高くなる。取得された位置のすべてを含む円(または球もしくはボール)の半径またはサイズは、移動の再現性に対応する(例えば、半径が小さいほど再現性が高くなる)。
【0220】
したがって、本開示の実施形態の態様は、本開示の一実施形態によるマルチビュービジョンシステム1を使用して、(例えば、基点および/またはエンドエフェクタの3Dモデルおよび/またはロボットアームの他の関節に基づく姿勢推定によって)エンドエフェクタおよび/またはロボットアームの他の関節を追跡して、エンドエフェクタの初期の姿勢および位置の両方に基づいて、ロボットアームのエンドエフェクタを所望の位置に移動させることに伴う位置誤差を予測する。特に、いくつかの実施形態では、本開示の実施形態によるマルチビュービジョンシステム1は、深層学習バックエンドと組み合わされて、エンドエフェクタの検出された姿勢とロボットアームの関節とに基づいて、エンドエフェクタのすべての動きに伴う誤差を予測する。これらの予測は、ロボットアームのエンドエフェクタの所望の位置への移動の精度および再現性を向上させるために、ロボットコントローラへのリアルタイムなフィードバックとして提供される。
【0221】
したがって、本開示の実施形態の態様は、完全にパッシブなマルチビュービジョンシステム(例えば、追加の光投影機なし)に関連し、これは、深層学習ベースのキーポイント検出器を適用して複数のビューにわたって同時の最適化を実施し、パッシブなビジョンシステムでは不可能であろう高精度の6自由度(6DoF)姿勢推定を実現する。パッシブなビジョンシステムは、追加の光投影機およびその光投影機に関連する較正が不要であり、代わりに、基点を使用してかつ/またはシーン内で検出されたオブジェクトを使用した自動較正を使用して較正しながら、深層学習および同時最適化を使用して高い性能の深度精度を実現できるため、非常に経済的であることができる。
【0222】
メインカメラ10および1台のサポートカメラが互いに30cm離間され、オブジェクト22の約1メートル上に置かれ、かつメインカメラ10およびサポートカメラ30の両方が、30度のFoVレンズ(例えば、図1Eの配置における4つのレンズのセット)と5メガピクセルの画像センサとを備えた2つのカメラモジュールを有するいくつかの実施形態では、姿勢推定システムは、深度方向で約200μmの姿勢検出精度(例えば、メインカメラ10およびサポートカメラの光軸とほぼ平行)、および100μmに満たない姿勢検出並進精度(例えば、光軸に垂直な方向)、および1度の回転精度を、非常に雑然とした様々なオブジェクトおよび様々な照明条件に対する500μmの点群精度とともに達成することが可能である。本開示のこれらの例示的な実施形態は、メインカメラ10およびサポートカメラ30による画像捕捉の時間から姿勢推定器100によるオブジェクトおよび点群の6DoF姿勢の出力時まで測定した、500ミリ秒(ms)未満の実験的に測定されたサイクル時間を有する。
【0223】
本発明は、特定の例示的な実施形態に関連して説明されてきたが、本発明は、開示された実施形態に限定されるものではなく、逆に、その精神ならびに添付の特許請求の範囲およびその均等物の範囲内に含まれる様々な修正および同等の構成をカバーすることが意図されていることを理解されたい。
図1A
図1B
図1C
図1D
図1E
図2A
図2B
図2C
図2D
図2E
図3
図4
図5
図6
図7A
図7B
図7C
図7D
図8
図9
図10
図11
図12
図13
図14
図15
図16A-16B】
図17
図18