(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023159360
(43)【公開日】2023-10-31
(54)【発明の名称】ビジョンシステムにより画像特徴におけるエッジと法線を同時に考慮するためのシステム及び方法
(51)【国際特許分類】
G06T 7/70 20170101AFI20231024BHJP
【FI】
G06T7/70 B
【審査請求】有
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023136625
(22)【出願日】2023-08-24
(62)【分割の表示】P 2021190600の分割
【原出願日】2019-02-18
(31)【優先権主張番号】15/901,117
(32)【優先日】2018-02-21
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】504382671
【氏名又は名称】コグネックス・コーポレイション
(74)【代理人】
【識別番号】100119378
【弁理士】
【氏名又は名称】栗原 弘幸
(72)【発明者】
【氏名】アンドリュー ヘルシャー
(72)【発明者】
【氏名】サイモン バーカー
(72)【発明者】
【氏名】アダム ワグマン
(72)【発明者】
【氏名】デイヴィッド ジェイ.マイケル
(57)【要約】 (修正有)
【課題】訓練された3Dパターンについて3D画像特徴を特定してアラインメントする。
【解決手段】3Dビジョンシステムカメラアセンブリ120、130の視野内で撮像した、オブジェクト110の表面112の特徴の検査及び/又は分析のためのビジョンシステム100であって、各カメラアセンブリは、3D撮像のためのコンポーネントを任意に受入れ可能であり、オブジェクト表面の3D「レンジ画像」を構成する第3の直交次元(各々のカメラの座標系128、138の夫々のz1、zN軸に沿った高さなど)を決定するように夫々適合されている。カメラ本体124、134は、関連するビジョンプロセスを操作するプロセッサ150を構成する種々の画像処理コンポーネントを含む。プロセッサは、シーン及び/又は他のソースの取得した画像に基づく画像データ142上で作動し、ビジョンシステムツール及びプロセス152を用いて取得した画像から情報を抽出する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
3Dカメラアセンブリによって取得したオブジェクトの3D画像内の3Dモデルの姿勢を検出するための方法であって、
3Dモデルをビジョンシステムプロセッサに提供するステップと、
取得した3D画像をビジョンシステムプロセッサに提供するステップと、
前記プロセッサを用いて前記姿勢を検出するステップであって、前記姿勢は前記3Dモデル内の3Dエッジを前記3D画像内の3Dエッジに一致させ、同時に、前記3Dモデル内の3D法線を前記3D画像内の3D法線に一致させるものである、前記検出するステップと、
を含む上記方法。
【請求項2】
前記検出するステップは、画像内の3Dエッジの使用を3D法線に対比して重み付けするために、3D画像内の3Dエッジと3D画像内の3D法線に重み付けを適用することを含む、請求項1に記載の方法。
【請求項3】
前記検出するステップは、(a)オブジェクトの面は3D法線に対して平行な方向におけるアライメントに関する情報を提供するか、及び(b)オブジェクトのエッジはエッジに対して垂直な1つ以上の方向におけるアライメントに関する情報を提供するかを、それぞれ決定する、請求項2に記載の方法。
【請求項4】
更に、点対線メトリックを用いて、3Dモデル内の3Dエッジを3D画像内の3Dエッジに一致させることを含む、請求項1に記載の方法。
【請求項5】
更に、点対面メトリックを用いて、3Dモデル内の3D法線を3D画像内の3D法線に一致させることを含む、請求項4に記載の方法。
【請求項6】
更に、点対面メトリックを用いて、3Dモデル内の3D法線を3D画像内の3D法線に一致させることを含む、請求項1に記載の方法。
【請求項7】
前記検出するステップは、十分な量の情報が存在する方向を表す法線情報マトリックスを定義することを含む、請求項3に記載の方法。
【請求項8】
更に、前記情報を特定するために前記マトリックスで主成分分析(PCA)を実行するステップ、および、その情報が前記検出するステップで使用するために利用可能であるか決定するステップを含む、請求項7に記載の方法。
【請求項9】
前記実行するステップは、各方向で寄与された情報の量と、利用可能な情報について、それぞれエッジを評価することを含む、請求項8に記載の方法。
【請求項10】
前記実行するステップは、
(a)各エッジの1つが有用な方向で相当な量の情報に寄与する場合は、計算においてそのエッジの1つに高い重みを割り当て、そして
(b)各エッジの1つが有用な方向で相当な量の情報に寄与しないか又はその方向が有用でない場合は、計算においてそのエッジの1つに比較的低い重みを割り当てることによってエッジを評価する、請求項9に記載の方法。
【請求項11】
更に、点対面メトリックを用いて計算した距離の合計と、点対エッジメトリックを用いて計算した距離の合計を同時に最小化する線形最小化関数の操作を含む、請求項6に記載の方法。
【請求項12】
3Dカメラアセンブリによって取得したオブジェクトの3D画像内の3Dモデルの姿勢を検出するためのシステムであって、
3Dモデルと取得した3D画像を受信するビジョンシステムプロセッサと、
前記3Dモデル内の3Dエッジを前記3D画像内の3Dエッジに一致させ、同時に、前記3Dモデル内の3D法線を前記3D画像内の3D法線に一致させる、姿勢検出プロセスと、
を含むシステム。
【請求項13】
前記姿勢検出プロセスは、画像内の3Dエッジの使用を3D法線に対比して重み付けするために、3D画像内の3D画像と3D画像内の3D法線に重み付けを適用する、請求項12に記載のシステム。
【請求項14】
前記姿勢検出プロセスは、(a)オブジェクトの面は3D法線に対して平行な方向におけるアライメントに関する情報を提供するか、(b)オブジェクトのエッジはエッジに対して垂直な1つ以上の方向におけるアライメントに関する情報を提供するかを、それぞれ決定する、請求項13に記載のシステム。
【請求項15】
前記姿勢検出プロセスは、少なくとも(a)点対線メトリックを用いて、3Dモデル内の3Dエッジを3D画像内の3Dエッジに一致させるか、又は(b)点対線メトリックを用いて、3Dモデル内の3D法線を3D画像内の3D法線に一致させる、請求項14に記載のシステム。
【請求項16】
前記姿勢検出プロセスは、十分な量の情報が存在する方向を表す法線情報マトリックスを定義する、請求項15に記載のシステム。
【請求項17】
前記姿勢検出プロセスは、前記マトリックスで主成分分析(PCA)を実行して情報を特定し、その情報が姿勢検出のために利用できるか決定する、請求項16に記載のシステム。
【請求項18】
前記姿勢検出プロセスは、各方向で寄与された情報の量と、利用可能な情報について、それぞれエッジを評価する評価プロセスを含む、請求項17に記載のシステム。
【請求項19】
前記評価プロセスは、
(a)各エッジの1つが有用な方向で相当な量の情報に寄与する場合は、計算においてそのエッジの1つに高い重みを割り当て、
(b)各エッジの1つが有用な方向で相当な量の情報に寄与しないか又はその方向が有用でない場合は、計算においてそのエッジの1つに比較的低い重みを割り当てることによって姿勢エッジを評価する、請求項18に記載のシステム。
【請求項20】
更に、点対面メトリックを用いて計算した距離の合計と、点対エッジメトリックを用いて計算した距離の合計を同時に最小化する線形最小化プロセスを含む、請求項15に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はマシンビジョンシステムに関し、より具体的には訓練された3Dパターンに関して三次元(3D)画像特徴を特定してアラインメントするビジョンシステムに関する。
【背景技術】
【0002】
本明細書で「ビジョンシステム」とも呼ばれるマシンビジョンシステムは、製造環境において様々なタスクを実行するために使用される。概して、ビジョンシステムは、製造中のオブジェクトを含むシーンのグレースケール画像又はカラー画像を取得する画像センサ(又は「イメージャ」)を備えた1つ以上のカメラアセンブリからなる。オブジェクトの画像を分析して、データ/情報をユーザー及び関連する製造工程に提供できる。カメラによって生成されたデータは、通常ビジョンシステムにより1つ以上のビジョンシステムプロセッサにおいて分析及び処理される。この場合、ビジョンシステムプロセッサは専用に製造されたものであるか、汎用コンピュータ(例えばPC、ラップトップ、タブレット又はスマートフォン)内でインスタンス化された1つ以上のソフトウェアアプリケーションであってよい。
【0003】
一般的なビジョンシステムのタスクには、アライメントと検査を含む。アラインメントタスクにおいて、マサチューセッツ州ネイティックのコグネックスコーポレーションから市販されている周知のPatMax(登録商標)システムのようなビジョンシステムツールは、あるシーンの二次元(2D)画像内の特徴を(実際のモデル又は合成モデルを用いて)訓練された2Dパターンと比較して、2D撮像されたシーンにおける2Dパターンの有無及び姿勢を決定する。この情報は、後続の検査(又は他の)作業で使用して、欠陥を探索し及び/又は部品拒否など他の操作を実行できる。
【0004】
ビジョンシステムを用いる特定のタスクは、訓練された3Dモデル形状に基づいて実行時に三次元(3D)ターゲット形状をアラインメントすることである。3Dカメラは、様々な技術-例えば、レーザ変位センサ(プロファイラ)、ステレオカメラ、ソナー、レーザ又はLIDAR測距カメラ、飛行時間カメラ、及び他の様々な受動的及び能動的レンジ検出技術に基づくことができる。このようなカメラはレンジ画像を生成し、そこにおいて一連の画像ピクセル(通常は直交するx軸とy軸に沿った位置として特徴付けられる)が生成され、これはまた各ピクセル(通常はx-y面に対して垂直な軸に沿った位置として特徴付けられる)についての第3の(高さ)サイズも含む。代替として、そのようなカメラは撮像されたオブジェクトのポイントクラウド表現を生成できる。ポイントクラウドは、各点iを(Xi、Yi、Zi)として表わすことができる空間における3D点の集合である。ポイントクラウドは、オブジェクトの背面と側面、上面と底面を含む完全な3Dオブジェクトを表現できる。3D点(Xi、Yi、Zi)は、オブジェクトがカメラから見える空間内の位置を表す。この表現では、空のスペースは点が存在しないことによって表される。
【0005】
比較により、3Dレンジ画像表現Z(x、y)は2D画像表現I(x、y)に類似しており、奥行又は高さZは画像内の位置x、yにおける輝度/強度Iとなる。単一の奥行のみが任意の点位置x、yと関連しているので、レンジ画像は専ら直接カメラに対面するオブジェクトの正面を表現する。レンジ画像は通常オブジェクトの背面又は側面、上面又は底面を表現できない。たとえカメラがそのような位置に情報を持っていなくても、レンジ画像は通常あらゆる位置(x、y)にデータを有する。当業者には明白な方法でレンジ画像を3Dポイントクラウドに変換することが可能である。
【0006】
取得された又は合成(例えばCAD)プロセスによって生成されたターゲット画像を(同様に取得又は合成された)モデル画像にアライメントする際に、1つの手法は最適な姿勢を検出する努力においてターゲット3Dポイントクラウドをモデルと一致/比較することを含む。この比較は、モデルを基準にしたターゲットのカバレッジのスコアリングを含むことができる。特定の閾値を超えるスコアは許容可能な一致/姿勢推定と見なされ、この情報はアライメント結果を生成するために使用される。それにもかかわらず3D画像に基づいてアライメント結果を正確かつ効率的に生成することは困難である。
【0007】
3Dレンジ画像又は3Dポイントクラウド画像における3Dオブジェクトのアライメントは、それぞれそれらのオブジェクトの3D形状に適した1つ以上のそれぞれの3Dアライメント(登録)アルゴリズムを用いて最もよく達成される。不適切な3Dアラインメントアルゴリズムが使用されると、3Dアラインメント手順は、誤った結果姿勢を見いだすか、或いは全く結果を見いださないことによって失敗するか又は不十分に実行される可能性がある。より具体的には、反復最接近点(ICP)と呼ばれる技術は、ポイントクラウドのアラインメント/登録のための姿勢推定を精緻化するための古典的な手法である。これは点位置や点法線などの一連の特徴を使用して、粗い姿勢を最終的な姿勢に反復的に精緻化する。行わなければならない1つの選択は、ICPルーチンが最小化するメトリックである。標準的な選択は、ICPプロセスがソース点から、それらの最も近いエッジまでの距離の合計を最小化する点対線と、ICPプロセスがソース点から、それらのターゲット点における法線で表される最も近いターゲット点を通る平面までの距離の合計を最小化する点対面である。しかしながら様々な理由から、いずれのメトリックも特に満足できるものではないことが認識されている。例えば、面と面をアライメントする使用例で点対面メトリックが用いられると、システムはオフセットと法線を中心とした回転を決定できるが、法線を中心とした回転に関する情報は提供しない。点対線メトリックは、当業者には明白であるはずのその他の欠点も示す。
【発明の概要】
【0008】
本発明は、ビジョンシステムを用いて取得した画像において、点対面と点対エッジメトリックとの間でエッジ毎に動的に重み付けすることによって、従来技術の欠点を克服する。このことは適用されたICP技術が、様々なオブジェクト(部品)形状及び/又は遮蔽に対してはるかにロバストであることを可能にする。一実施形態において、本明細書に記載するシステム及び方法は、オブジェクトの実行時3D画像データとモデル3D画像データのアライメントに使用する候補3D姿勢を生成するために最小化されたエネルギー関数を提供する。法線はエッジよりもはるかに正確であるため、可能であれば法線を使用することが望ましい。しかしながら、平面など一部の使用例ではエッジは法線が提供しない相対的方向における情報を提供する。従ってこのシステム及び方法は、十分な情報が存在する方向を表すマトリックスである「法線情報マトリックス」を定義する。利用可能な情報の基礎を提供するために、このマトリックスで(例えば)主成分分析(PCA)を実行する。例として、このときそれぞれのエッジはそれが各方向で寄与する情報の量と、既に利用可能な情報によって評価される。エッジが分析にとって有用な方向で重要な情報に寄与するならば、そのエッジは計算において高い(例えば1.0に近い)重みを割り当てられる。そうでなければ、エッジは比較的低い(例えば0.0に近い)重みを割り当てられる。この重み付けされたデータは、(例えば)点対面距離の合計と点対エッジ距離の合計とを同時に(並行して)最小化する線形最小化関数を用いて処理される。有利には、この手順はオブジェクトの形状が適切な姿勢を決定するために必要とする場合には、(通常)専ら精度の低いエッジ(のみ)を使用する。また、本明細書に記載するオブジェクトは平面の一部であり得ることに留意されたい。従って、例えば平面を使用する例では、システム及び方法は通常法線が情報を提供する3つの自由度(DOF)(例えば2つの傾斜と面法線に沿ったオフセット)を確定するために法線を使用することができ、次に残りのDOF(例えば面内部の2つの並進と法線周りの回転)に対してはエッジを使用する。逆に言うと、点対線メトリックを単独で用いると通常は明らかに精度の低い結果を生み出し、また点対面メトリックのみを使用することもロバストではない。
【0009】
例示的な実施形態では、3Dカメラアセンブリによって取得したオブジェクトの3D画像内の3Dモデルの姿勢を検出するためのシステム及び方法が提供される。3Dモデルは、取得した3D画像と共にビジョンシステムプロセッサによって処理される。プロセッサに関連付けられた姿勢検出プロセス/モジュールは、3D姿勢を決定するために、3Dモデル内の3Dエッジを3D画像内の3Dエッジと、3Dモデル内の3D法線と3D画像内の3D法線と同時に一致させる。例として、姿勢検出プロセス/モジュールは、画像内の3Dエッジの使用を3D法線に対比して重み付けするために、3D画像内の3Dエッジと3D画像内の3D法線に重み付けを適用する。姿勢検出プロセスはまた、(a)オブジェクトの面は3D法線に対して平行な方向におけるアライメントに関する情報を提供するか、及び(b)オブジェクトのエッジはエッジに対して垂直な1つ以上の方向におけるアライメントに関する情報を提供するかを、それぞれ決定できる。それはまた少なくとも(a)点対線メトリックを用いて3Dモデル内の3Dエッジを3D画像内の3Dエッジに一致させるか、又は(b)点対面メトリックを用いて3Dモデル内の3D法線を3D画像内の3D法線に一致させることもできる。更に、姿勢検出プロセスは、十分な量の情報が存在する方向を表す法線情報マトリックスを定義できる。主成分分析(PCA)をマトリックスで実行して情報を特定し、その情報が姿勢検出のために利用できるか決定する。姿勢検出プロセスはまた、各方向で寄与された情報の量と利用可能な情報について、それぞれエッジを評価する評価プロセスを含むことができる。例として、評価プロセスは、(a)各エッジの1つが有用な方向で相当な量の情報に寄与する場合は、計算においてそのエッジの1つに高い重みを割り当て、(b)各エッジの1つが有用な方向で相当な量の情報に寄与しないか、或いはその方向が有用でない場合は、計算においてそのエッジの1つに比較的低い重みを割り当てることによって姿勢エッジを評価する。更に、点対面メトリックを用いて計算した距離の合計と、点対エッジメトリックを用いて計算した距離の合計を同時に(並行して)最小化する線形最小化プロセスが提供され得る。
【0010】
以下に添付の図面を参照して本発明を説明する。
【図面の簡単な説明】
【0011】
【
図1】ビジョンシステムによって同時アライメント(登録)アルゴリズムが使用される訓練時又は実行時にオブジェクトの画像を取得する1つ以上の3Dカメラアセンブリを含むビジョンシステムの図である。
【0012】
【
図2】一実施形態に従い取得した画像データの実行時アライメントに使用するためのモデル3D画像データに対する例示的な訓練手順のフロー図である。
【0013】
【
図3】3D特徴セットの周りに設けられた例示的な境界ボックスを有するモデル3D画像データの訓練時図示を示す図であり、例示的な各特徴セットの3D表面形状と関連した2種類の向きと表面法線を有し、方向の違い、従ってまた各特徴セットから得られる情報の重要性を例示する。
【0014】
【
図4】形状を構成する複数の面とエッジの向きを取得した3D画像から決定できる、特定の向きの直方体形状オブジェクトを示す図である。
【0015】
【
図5】
図4に示す向きとは異なる正面向きに向けられた
図4の直方体形状を示す図であり、優勢な向きに基づいてより少ない面とエッジを正確に決定できる。
【0016】
【
図6】複数の3Dアライメントアルゴリズムのそれぞれの適用可能性を考慮するために、
図2のモデルデータに対比してアライメントされるべきオブジェクトの取得した3D画像におけるエッジと法線の実行時重み付けのための手順のフロー図である。
【0017】
【
図7】
図6の重み付け手順に関連する固有値λに対するガウス関数g(λ)の例示的なプロットを示すグラフである。
【
図7A】
図6の重み付け手順に関連する固有値λに対するガウス関数g(λ)の例示的なプロットを示すグラフである。
【
図7B】
図6の重み付け手順に関連する固有値λに対するガウス関数g(λ)の例示的なプロットを示すグラフである。
【
図7C】
図6の重み付け手順に関連する固有値λに対するガウス関数g(λ)の例示的なプロットを示すグラフである。
【
図7D】
図6の重み付け手順に関連する固有値λに対するガウス関数g(λ)の例示的なプロットを示すグラフである。
【0018】
【
図8】例示的な実施形態に従い、実行時に
図6の手順を用いて決定される適切な重み付けを有する3Dアライメントアルゴリズムを適用するための手順のフロー図である。
【発明を実施するための形態】
【0019】
I.システム概観
【0020】
図1は、1台以上の3Dビジョンシステムカメラアセンブリ120及び130の視野(FOV)内で撮像された、オブジェクト110の表面112の特徴の検査及び/又は分析に使用するためのマシンビジョンシステム構成(本明細書では「ビジョンシステム」とも呼ばれる)100を示している。各カメラアセンブリ120、130は、3D撮像のためのコンポーネントの任意の受入れ可能な構成であってよい。カメラアセンブリ120、130は、オブジェクト表面112の3D「レンジ画像」を構成する第3の直交次元(例えば各々のカメラの座標系128、138のそれぞれのz1、zN軸に沿った高さ)を決定するようにそれぞれ適合されている。それぞれの画像ピクセルについて高さデータを生成するために多様な技術、例えばレーザ変位センサ(プロファイラ)、立体カメラ、ソナー、レーザ又はLIDARレンジ検出カメラ、飛行時間カメラ、及びその他の多様な受動的及び能動的レンジ検出技術を用いることができる。全体構成においては単一のカメラアセンブリ又はより多くの数の(例えば3台以上の)カメラアセンブリを用いることができ、またオブジェクト表面の3Dポイントクラウド又はレンジ画像表現を生成するための1台以上の離散的3Dカメラアセンブリからなる全体構成を記述するのに本明細書では代替として「3Dカメラアセンブリ」という言葉を用いることがあることに留意されたい。
【0021】
図示されていないが、3Dレンジ画像又はポイントクラウドを生成するために用いられる3Dカメラアセンブリの1つの模範的なタイプはレーザ変位センサである。これはレーザ光(又は他の構造化された照明)の扇形をオブジェクト表面112に投影して(例えばx軸方向に対して横断方向に向けられた)線を形成し、投影された線からレーザ変位センサのそれぞれのイメージャ126、136で反射光を扇形照明の平面とそれぞれのイメージャの光学軸OA1、OANとの間の相対的角度(鋭角)(A)で受け取る。上述したように、使用されるレンジ又は高さ情報を生成するために他の様態も使用でき、これには例えばLIDAR、構造化された照明システム、立体ビジョンシステム(例えば1対の離間したカメラ120及び130)、DLP計測などを含む。これらのシステムはすべてピクセルに高さ値(例えばz座標)を与える画像を生成する。
【0022】
典型的な構成において、3Dカメラアセンブリ120及び/又はオブジェクト110は相対的に(例えば1台以上のカメラの物理的y軸座標方向で)運動できるので、オブジェクト表面112はレーザ変位センサによってスキャンされて、レーザ線の一連の画像が所望された空間的間隔で、典型的には運動情報140をシステムビジョンプロセッサ(150、以下に説明する)に送るモーションコントローラ及び関連するエンコーダ又は他の運動測定デバイスと連携して(或いは時間ベースの間隔で)取得される。これに関して、運動方向に沿ったオブジェクト上の点の位置は、座標Yiとして定義される。3Dカメラアセンブリによって取得された点(Xi、Yi、Zi)の集合は、ポイントクラウドとして定義される。他の実施形態では、3Dカメラアセンブリはオブジェクトに対して相対的に運動しない。
【0023】
カメラ本体124、134は、関連するビジョンプロセスを操作するビジョンシステムプロセッサ150を構成する種々の画像処理コンポーネントを含むことができる。ビジョンプロセッサ150はシーン及び/又は他のソース(例えばモデルのCAD表現)の取得した画像に基づく画像データ142上で作動し、ビジョンシステムツール及びプロセス152を用いて取得した画像から情報を抽出できる。この情報は興味のある特徴及び画像内に現れる他のアイテムに関係づけることができる。例えば米国マサチューセッツ州ネイティック市のコグネックス株式会社から市販されている既知のPatMax(登録商標)などのビジョンシステムツールを使用して、画像内の2D特徴及び3D特徴を解析して、相対的姿勢、アライメント及び他のディテール、例えばエッジ、ブロブなどに関する情報を提供できる。ビジョンシステムプロセスの一部又は全部をカメラアセンブリ120、130の本体124,134内で実行できるが、プロセスの一部又は全部を(有線又は無線で)相互接続されたコンピューティングデバイス/プロセッサ160、例えば適切なユーザーインタフェース(マウス/キーボード)162及び/又はディスプレイ164(例えばタッチスクリーン)を有する専用プロセッサ又は汎用コンピュータ(例えばサーバー、PC、ラップトップ、スマートフォン、タブレットなど)によって実行できることが明確に想定されている。更に、相互接続されたコンピューティングデバイス/プロセッサ160は、処理された画像データを用いて、通信リンク166又は他のインタフェース構成を介してユーティライゼーションプロセス若しくはタスクを実行できる。例えばビジョンシステムが検査タスクを実行する場合、これらの情報を用いて品質管理情報をデータベースに送ったり、生産ラインで欠陥品を拒否したりできる。情報はオブジェクト上のラベル及び/又はIDコードを読み取ることによって(例えば)物流用途にも使用できる。以下に述べるように、ユーティライゼーションタスクは、3Dアライメント情報168の使用を含む。120の本体124内で実行できるが、プロセスの一部又は全部を(有線又は無線で)相互接続されたコンピューティングデバイス/プロセッサ160、例えば適切なユーザーインタフェース(マウス/キーボード)162及び/又はディスプレイ164(例えばタッチスクリーン)を有する専用プロセッサ又は汎用コンピュータ(例えばサーバー、PC、ラップトップ、スマートフォン、タブレットなど)によって実行できることが明確に想定されている。更に、相互接続されたコンピューティングデバイス/プロセッサ160は、オブジェクト/アライメント168について処理された画像情報を用いて、通信リンク166又は他のインタフェース構成を介してユーティライゼーションプロセス若しくはタスクを実行できる。例えばビジョンシステムが検査タスクを実行する場合、これらの情報を用いて品質管理情報をデータベースに送ったり、生産ラインで欠陥品を拒否したりできる。以下に述べるように、ユーティライゼーションタスクは、3Dアライメント情報168の使用を含む。
【0024】
訓練プロセス(プロセッサ)又はモジュール154は、モデルと、実行時(ターゲット)オブジェクトの実行時3Dレンジ画像又はポイントクラウド画像から見いだされた特徴とのアライメントを容易にする特徴を定義する3Dレンジ画像又はポイントクラウドデータからなる1つ以上の3Dモデル/表現の訓練及び保存を扱う。訓練されたモデルは、オブジェクトの全体ビューで見いだされた特徴、特定のオブジェクト及び/又は多数のオブジェクトの異なる部分又は向きで見いだされた特徴を包含できる。
【0025】
例示的な実施形態において、ビジョンプロセス及びプロセッサ150は、モデルの特徴と実行時(ターゲット)3D画像の特徴とのアライメントを試みる適切なアライメントアルゴリズム(又はプロセス)を用いるアライメントプロセス(プロセッサ)又はモジュール156を含んでいる。アライメントプロセス(プロセッサ)156及び訓練プロセス(プロセッサ)154は、各々同時アルゴリズム考慮プロセス(プロセッサ)又はモジュール158と相互作用し、これはモデルの3D表面特徴に基づいて2つ以上の3Dアライメントアルゴリズムの使用を調整する。本明細書で用いられる「同時」という用語は、1つの画像上で2つ以上の特徴セット及び関連する実行時姿勢決定手順が並行して又は同じ処理トランザクション内で考慮及び/又は操作できるという一般的な判断の一例であり、従って真の同時性は要求されない。
【0026】
II.3Dモデルの訓練
【0027】
このシステム及び方法は、以下に説明するように、全体的アライメントプロセスにおいて訓練された画像データを使用する。一般化された訓練手順200が
図2に示されており、そこではシステムは訓練時にモデルの画像を3Dポイントクラウド又はレンジ画像として取得するか提供される。この画像はモデル/訓練オブジェクトを1つ以上の向きで包含するシーンを撮像するか、或いはオブジェクト及び/又はオブジェクト部分の「合成」(例えばCAD)表現を提供することによって生成できる。ステップ212で実際の画像又は合成画像はユーザーにインタフェースを介して訓練プロセスの一部として提供され得る。ステップ212は任意的であり、画像はオブジェクトのタイプ又は閾値設定に関してユーザーが何ら入力することなく直接システムに提供されることに留意されたい。代替として、閾値はビジョンシステムツールを用いてオブジェクトのタイプ又は表面特徴の自動化された特定に基づいて設定できる。ユーザーインタフェースを用いる場合は、画像は一般的に
図3のディスプレイ300に示されているように表示され得る。ユーザーは画像を操作することができ、これはそれぞれ画像312及び322の周囲の境界ボックス310及び320によって図示されているように、訓練オブジェクトの一部又は全部の周囲に境界ボックスを配置することを含む(ステップ214)。境界ボックスのサイズと形状はユーザーによって決定されることができ、或いは関心領域を当業者には明白であるはずの自動化された機構によって囲むことができる。代替として、関心領域及びこれに対応する訓練特徴は、CADデータのソースによって、或いは他の何らかの様態による画像データによって/と共に提供され得る。分析される関心領域を囲むことによって、アライメントプロセスはアライメントに関係しないモデル特徴及び/又はモデルから分離した背景特徴を除外する。代替として、取得した全画像をモデルに使用できる。手順200のステップ216において、アルゴリズム選択プロセス(プロセッサ)(
図1の158)は、囲まれた関心領域(
図3の310、320)内の特徴上に面法線を決定し、そのような面法線の分布を用いて当該オブジェクト及び分布に対する適切なアライメントアルゴリズムを決定する。アルゴリズム選択プロセス(又は)(
図1の158)は、境界のある関心領域内の特徴上に表面法線を確定する(
図3の境界ボックス310、320参照)。結果として得られるモデルは実行時アラインメント中に使用するためにプロセスに提供されるが、これについては以下に更に説明する(ステップ218)。
【0028】
図3に示されているように、モデル312、322の図示されたる表面(実際には3Dレンジ画像又は3Dポイントクラウドとして定義される)は、それぞれの表面に沿った局所点における垂線を表わす面法線のセットを含んでいる。法線の粒度は極めて可変である。概してそれは訓練時にユーザーが指定するパラメータの一部であるか、或いは訓練時に(例えば)当業者には明白な技術を用いてアライメントシステムによって自動的に決定できる。概してシステムは一般にシステムによって扱われるオブジェクト(例えばボルト、ボール、コンピュータスクリーン、回路チップ、瓶、缶、キャップなど)の種々のタイプの表面及び/又はクラスに対するパラメータのセットを保存できる。そのような品目に対して所定のパラメータが設けられる。代替として、特定のモデルに対して特別のパラメータがユーザーによって設定され、或いは自動的に決定され得る。パラメータはまたモデルの特定の向きに対しても設定できる。例えば瓶は側方から見るのと上方から見るのとでは異なって見えるであろう。
【0029】
III.実行時アライメント
【0030】
一実施形態において、実行時に考慮プロセス158はファインアライメントを実行するために、法線ベースのアライメントアルゴリズムとエッジベースのアライメントアルゴリズムとを同時に(「並行して」とも呼ばれる)用いる。これは、初期ラフアライメントステップを用いて訓練された3Dモデルを画像データと共に大まかに登録した後に起こる。以下に更に詳細に説明するように、ファインアライメントプロセスはエネルギー関数を最小化する。法線はエッジよりも正確であるため、概してそれらは優先的に使用される。しかしながら面特徴が分析される場合のような一部の例では、エッジは法線が提供しない相対的方向における情報を提供する。従ってこのプロセスは、画像情報が利用可能な方向を表すマトリックスである「法線情報マトリックス」を定義する。例として、プロセスにおける情報の基礎を提供するために、このマトリックスで主成分分析(PCA)を使用する。このとき各エッジはそれが各方向で寄与する情報の量と、プロセスが既に処理している情報によって評価される。エッジがアラインメントにとって有用な方向で重要な情報に寄与するならば、そのエッジは高く重み付けられる(例えば1.0に近い)。そうでなければ、その相対的重みは低い(例えば0.0に近い)。次にこの重みは、点対面距離の合計と重み付けられた点対エッジ距離の合計を同時に(並行して)最小化する線形最小化関数で処理される。
【0031】
有利には、上述の手順は、3D撮像されたオブジェクトの形状が必要とする場合には、専ら精度の低いエッジ(のみ)を使用する。例えば平面特徴を使用する例では、システムは、概して法線が情報を提供する3つの自由度(即ち2つの直交傾斜度と面の法線に沿ったオフセット)を固定するためにシステムは法線を使用することができ、次に残りの自由度(DOF)(即ち平面内の2つの並進と法線を中心とした回転)に対してはエッジを使用する。点対線メトリックを単独で使用すると精度が著しく低下し、点対面メトリックを使用することは全くロバストではない。
【0032】
更に説明すると、3Dシーン内のオブジェクトのインスタンスを探索しようとする際に、通常情報の欠落をもたらすカメラの視角とシーン特性がある。オブジェクトがCADファイルを用いて記述されると、オブジェクトは完全に記述され、すべての表面及び関連する特徴で完全に規定され得る。しかしながらシーンが単一の3Dセンサを使用して取得される場合は、センサの限界により利用可能な情報が制限及び限定されることがある。例えばシーンの部分がオブジェクトを全体が見えるようにするのを妨げることがあり、及び/又はオブジェクト自体がそれ自身の一部を遮蔽することがある。例えばカメラはオブジェクトの前面は撮像できるが背面はできない。説明のために
図1及び
図2を参照すると、各々例示的なシーン400及び500を示しており、それぞれのシーン内で直方体形状の箱410が異なる角度/視点(POV)で見られる向きにある。
図4のシーン400では面412及び416が示されている。しかしながら
図5のシーン500でPOVが変化すると面414のみが見え、またシーン400には存在しない底面510も見えるようになる。これは、オブジェクトを3Dで適切に測定するシステムの能力を制限する可能性がある。従ってより一般的にオブジェクト410を3D撮像するために使用されるPOVは、情報が欠けている可能性があるために座標系の3つの直交軸(
図4の420)すべてにおいてオブジェクトの大きさを定義することを困難にする。
【0033】
姿勢推定を精緻化するための古典的な技術は反復最近接点(ICP)である。この手順/アルゴリズムは点位置や点法線などの一連の特徴を使用して、粗い姿勢を最終的な(精緻な)姿勢に精緻化する。行わなければならない1つの選択は、ICPルーチンが最小化するメトリックである。標準的な選択は、ICPプロセスがソース点から、それらの最も近いエッジまでの距離の合計を最小化する点対線と、ICPプロセスがソース点から、それらのターゲット点における法線で表される最も近いターゲット点を通る平面までの距離の合計を最小化する点対面である。ICPアルゴリズムでは、一方の3Dポイントクラウド、即ちリファレンス又はターゲットが一定のままであるのに対し、他方の3Dポイントクラウド、即ちソースはターゲットに最適に一致するように変換される。リファレンスとソースは、訓練されたモデルと取得した実行時オブジェクト画像に対応する。ICPアルゴリズムは必要とされる変換(並進と回転の組み合わせ)を反復的に修正してソースからリファレンスポイントクラウドの距離を最小化する。ソースをリファレンスにアライメントするための変換の初期推定が存在することができ、反復を停止させるための1つ以上の基準も設けられている。次にアルゴリズムは精緻化された変換(結果姿勢)を出力する。動作中、アルゴリズムは以下のように進行する。
ソースポイントクラウド内の各点について、リファレンスポイントクラウド内の最も近い点を見いだす。
平均二乗誤差コスト関数を用いて、各ソース点を先行ステップで見いだされた一致に最も良くアライメントする回転と並進の組み合わせを推定する。
得られた変換を使用してソース点を変換する。
点の再関連付けを反復する。
【0034】
ICPアルゴリズムは、表面正規分布分散が高い(与えられた「高い」閾値を上回る)特定のオブジェクト形状(例えば、
図3の形状322)に特に有用であり得ることに留意されたい。逆に言うと、分散が小さい(与えられた「低い」閾値を下回る)場合は(例えば
図3の形状312)、ICPとエッジ特徴ベースのアルゴリズムのハイブリッドがより望ましい。
【0035】
そのため、直方体/箱形オブジェクト410が撮像されたシーン500(
図5)を使用してアライメントされると、点対面技術は失敗するであろう。完全で正確なアライメントを行うために必要な情報は撮像されたシーン500内に(実際には)存在するが、点対面メトリックはその情報にアクセスすることができない。なぜなら情報はオブジェクト530のエッジに現れており、露出した面414及び510ではないからである。この使用例では点対面メトリックは、水平方向のスライドによって異なるだけの2つの結果を区別できない。
【0036】
箱410のような撮像されたオブジェクトで専ら点対線メトリックを使用すると、同様の縮退がある。難点は3D画像センサのPOVの制限により、特定の特徴が考慮されたときに特定の情報のみが利用可能であるということである。そのため多様な部品を多様な向きでロバストにアラインメントするためには、ICP精緻化プロセス中に複数の特徴が考慮されるべきである。
【0037】
好ましい実施形態によって克服される難点は、複数の特徴を単一のハイブリッドメトリックに結合するための効果的なテクニックを提供するための技術である。点対面メトリックは面までの距離を含意し、点対線メトリックは線までの距離を含意するため、このようなメトリックを最小化できる単一の大域フィットエラーに組み合わせることは簡単ではない。加えて典型的な3D画像はエッジよりもはるかに多くの法線を含むことができ、この特性が考慮されるべきである。なぜならそうでなければエッジの寄与は非常に小さくなり、実質的に点対面メトリックを生成するからである(点対面メトリックは多数の法線を使用し、点対線メトリックは少ないエッジを使用するので)。この不均衡のために、重みは実質的に点対面結果にシフトする。また、(通常)産業用ビジョンシステム用途で一般に扱われるタイプの画像において法線は基本的にエッジよりも正確であり、エッジを推定するためにグループ化できるよりも多くの点を平均して法線を推定できる。複数(2つ以上)のメトリックの使用は学術的環境やICP関連の文献ではあまり用いられていないが(一部はハイブリッド実装の複雑さによる)、本明細書ではICPを使用してオブジェクトを分析するために2つ以上のメトリックを使用することは特に望ましいことがある/望ましいことが認識されている。即ち、単一のメトリックの限界が問題となるのは、(通常は)多様な相対的向きにある多数のオブジェクトをアライメントするときのみであり、これは特に本明細書で対象とする産業用ビジョンシステム環境に存在する課題である。
【0038】
上で一般的に説明したように、ICPは反復的に動作し、各反復は2つの段階、即ち(a)ソースデータセットと目標データセットとの間の特徴の対応、及び(b)対応する特徴に基づくメトリックの最小化からなる。メトリックは、入力が特徴の対応関係であり、出力が単一の数値である関数の形式を取る。点対面メトリックには次の関数を有する。
ここで、diはi番目の目標位置、siはi番目のソース位置、niはi番目のソース法線、Mはソースを目標にマッピングする姿勢、そして・はドット積を表す。
【0039】
点対線メトリックは次の式で表される。
記号uiはi番目のエッジ方向であり、×はクロス積を表す。概して上記の関係は当業者には明白なはずである。好ましい実施形態においてハイブリッドメトリックHは、次式からなる関係に寄与している。
【0040】
このメトリック値Hは、点対面メトリックと点対線メトリックの合計からなり、新しいエッジ毎の対応重み項αiを有する。例示的に、これらの重みは各反復中に動的に計算され、事前に計算されたり予め保存されたりすることはない。各重みは負ではない数であり、適切な姿勢を検出するために対応がいかに重要であるかを表す(数字が大きいほど重要度が高い)。以下に、一実施形態に従って重みがどのように計算されるか説明する。
【0041】
重みの計算は少なくとも次の2つの事項を考慮する。(A)オブジェクトの面は法線に対して平行な方向でのアライメントに関する情報を提供し、(b)オブジェクトのエッジはエッジに対して垂直な方向でのアライメントに関する情報を提供する。これらの考慮事項、及び十分な情報が存在する場合はエッジよりも法線の使用を選好することに基づき、
図6を参照して手順600が適用される。まずステップ610において、取得した実行時画像を用いて法線が最小量の情報を提供する方向が計算される。これは法線に主成分分析を使用して達成できる。非限定的な例として、この手順は、次式によって計算されたマトリックスの3つの固有ベクトルを検出する。
これによりこの手法は、3つの固有ベクトルと固有値を出力する。固有値は、固有値の固有ベクトルの方向に存在する情報量を示す数値を提供する(ゼロに近い固有値は情報が少なく、大きい固有値は情報が多いことを示す)。いつ十分な情報が存在するかに関するカットオフを決定するために適切な閾値を使用できる。
【0042】
より具体的には、手順600のステップ620において、固有値は固有ベクトルに基づく重要度を決定する測定計算にマッピングされる。これはガウス関数f(x;a、b、c)を通して固有値λをマッピングすることによって達成でき、この関数はg(λ)としても特徴付けられる。
ここで、基本分布曲線710は
図7のグラフ700に示されており、3つの定数a、b及びcは、ガウス分布の形状を定義する数値である。最初のaは、曲線の最高点の値である。bはx軸に沿った並進を定義し、cは曲線の幅を定義する。例示的な実装において、aは10に、bはゼロに、及びCは2に設定できる(従って指数の分母は8に等しい)。しかしながら本使用例では例示的な固有値λは常に正であるため曲線710の左側を無視して、図示されたグラフ720と、
図7Aの関連する正値曲線722を得ることができる。これは本明細書に記載するシステム及び方法の一実施形態で使用するための例示的な分布を表している。X軸は固有値を表し、Y軸は、この方向を考慮した場合にエッジの重みを乗算するために使用される定数である。従ってこの場合には、特定の固有方向の固有値が非常に小さいと重み乗数は約10に等しくなり、特定の固有方向の固有値が非常に大きいと重み乗数は0に接近できる。従ってエッジが固有値の大きい方向で情報に寄与する場合(即ちその方向に対して既に重要な情報が存在する場合)、そのエッジは低い重みが割り当てられる(重み乗数が小さいので)。逆に、エッジが固有値の小さい方向(即ち情報がほとんど又は全く利用できない方向)で情報に寄与する場合は、その重みは大きい(重み乗数が大きいので)。より一般的に、代替実施形態において(a)入力が小さい場合は出力が大きい、(b)入力が大きい場合は出力が小さい、(c)連続的である、及び(d)単調に減少するなどの種々の関数を使用できる。一例では、下方に傾斜した線が実行可能な機能を提供できる。従って上記のガウス関数は、パラメータa、b及びcに対して使用される特定の値に基づいて、所望の目的を達成するための便利で効果的なメカニズムである。パラメータは、所望の結果を達成するために別の値に設定でき、例えばcは2.5に設定することができる。
【0043】
パラメータaを変更することによって、重みエッジはいつ新しい方向で情報に寄与するかに関して制御することができる。aが100に等しい場合、エッジは法線よりはるかに重要になる。逆に、aが1に等しい場合、エッジは現在の実装よりも重要ではなくなる。
【0044】
パラメータbを(その通常の0値から)変更することによってガウス曲線732は
図7Bの例示的グラフ730に示すように水平方向にシフトされる。この関数(例えばb=2)は、実数の正の半分で単調に減少しておらず、この実施形態にとって有効な関数ではない。同様にbに対する負の値は、
図7Cのグラフ740の曲線742を生成する。示されているように、この例では曲線742の正の半分は、より鋭い初期減退を示す。そのような特性は、減退が小さい曲線の部分(例えば、0と0.001の間の領域)を(場合により不利に)除外する。
【0045】
cの値を変更すると曲線の外方の広がりが変化し、それはどれだけ多くの重みの低い情報エッジが割り当てられるかに影響し得る。従って重みの低い情報エッジに対してcの値を増加させることができる。
図7Dはグラフ750を示しているが、ここには上述したガウス分布(
図7D)の曲線752と、cの値が4である追加の分布曲線754が描かれている。第2の曲線754では、重みの低い情報エッジ(固有値が大きい方のエッジ)がx軸上の更に右側に存在して、より高い重みを得るように割り当てられるであろうことは明白なはずである。
【0046】
また、法線が方向に関して十分な情報を提供しない場合は、エッジがそのような情報を提供すべきであるから、低い固有値がガウス(又は類似の)関数において有用であることも明白であろう。
【0047】
次に、手順600のステップ630において、個々のエッジの重みαが次式によって決定される。
ここで、uはエッジ、viはi番目の固有ベクトルである。上記の式は2つの部分を含む。第1の部分は、それぞれのエッジが与えられた方向でどれだけの情報に寄与するか、そしてその方向は重みの全体的計算にどれほど重要であるかに関係する。従って当該エッジが重要な情報に寄与し、その方向が法線によって提供されない場合は、計算された重みは高くなるはずである。逆に、それ以外のいかなる情報と方向の重要性を組み合わせによっても、計算された重みは低くなるはずである。また、エッジと固有ベクトルの間の角度の正弦は、2つのベクトルがどれほど垂直であるかの尺度であり、それによりエッジが当該方向でどれだけの情報に寄与するかを測定する(エッジはそれ自身に対して垂直な方向で情報に寄与するので)。上記の式の第2の部分は、当該方向にどれほど重要であるかに関係し、固有値が小さければ、法線は当該方向で重要な情報に寄与せず、従って値G(λ)は大きくなるであろう。これは固有値λに対するg(λ)の例示的なプロット710を示す
図7のグラフ700で図解されている。λの値が増すにつれて(この例では約λ=7より上)、g(λ)の値はゼロ(0)に近づくことに留意されたい。
【0048】
ステップ640において、計算された重み値(S)αがエッジと法線に対する実行時アライメント手順に提供される。手順はこれらの重みでハイブリッドメトリックを定義することができ、次いで当業者に知られている標準的な計算法(例えばアフィン変換など)を用いて、アラインメントにおいてこのメトリックを最小化する候補姿勢を決定することができる。
【0049】
ここで、
図8の実行時3Dラフアライメント及び3Dファインアラインメント手順800を参照する。ステップ810において、1つ以上の実行時オブジェクトが1つ以上の3Dカメラの視野内に配置され、シーンの1つ以上の画像が取得される。ステップ820において、実行時画像データのアライメントのために保存された訓練/モデル情報、及びアライメントプロセスを完了するのに必要な他のデータ、即ち閾値、特定のアルゴリズム、設定などが提供される(これは以下のステップ830におけるラフアライメントの前又は後に行われてよい)。ステップ8で、ラフアライメントが実行され、ここではオブジェクトの特定された特徴がモデル特徴と大まかにアライメントされている。これは実行時画像内の特徴を様々なモデルと比較して最も近い一致、例えば実行時特徴の向きに最も近いモデルの向きを提供することを含むことができる。ラフアライメントは、他のラフアライメント技術の中でもエッジのアライメント又はソースとターゲットの面法線の比較に基づくことができる。
【0050】
次にステップ840で3Dアラインメントが精緻化され、これは3D画像内のオブジェクト特徴を分析し、エッジと法線の特性を決定して上述した重み付けを生成することを伴う。これらの重み付けは、上述したように(例えば)点対線及び点対面(及び/又はICPベース)手順に反復的に適用され、その結果候補3D姿勢が生成され得る。特に3Dモデル内の3Dエッジを3D画像内の3Dエッジと、及び3Dモデル内の3D法線を3D画像内の3D法線に同時に(並行して)一致させる候補姿勢が生成される。次いで従来のアライメント手順を姿勢に適用して、例えば特定の3D形状を2D画像に分解し、ビジョンツールを使用してエッジベースのアフィン変換を適用することができる(
図1の152)。その結果は次にステップ850において、品質管理、部品検査、ロボット操作及び/又は部品組立などの後続プロセスで使用するために提供される。
【0051】
III.結論
【0052】
上述した3Dオブジェクトをモデル3Dデータを基準にアライメントするためのシステム及び方法は、撮像されたシーン内でオブジェクトは特定の姿勢決定/アライメントアルゴリズムには適さない様々な向きで見られるという事実を効果的に扱うことは明白なはずである。より具体的には、例示的なシステム及び方法は、取得した3D特徴セットにおけるエッジ又は法線のいずれの使用が好ましいかに関して柔軟な決定を下すことができる。これはより良い結果をより効率的な方法で生み出す。
【0053】
以上、本発明の例示的な実施形態を詳細に説明した。本発明の精神と範囲を逸脱することなく種々の改変及び追加を行うことができる。上述した種々の実施形態の各々の特徴は、関連する新しい実施形態において多数の特徴の組み合わせを提供するのに適する限り、別の記載された実施形態の特徴と組み合わされてよい。更に、上に本発明の装置と方法の多数の別個の実施形態を記したが、ここに記載されたものは本発明の原理の応用を例示したものに過ぎない。例えば、本明細書で使用される様々な方向及び/又は向きを表わす用語(及びそれらの文法的変形)、例えば、「垂直」、「水平」、「上」、「下」、「底部」、「頂部」、「側部」、「前部」、「後部」、「左」、「右」、「前方」、「後方」及びこれに類するものは、相対的な表現法として用いられているに過ぎず、重力の作用方向など固定した座標系を基準とした絶対的な向きを表わすものではない。更に、図示されたプロセス又はプロセッサは他のプロセス及び/又はプロセッサと組み合わせ、又は種々のサブプロセス又はサブプロセッサに分割されてよい。そのようなサブプロセス及び/又はサブプロセッサは、本明細書に記載された実施形態に従って多様に組み合わせることができる。同様に、本明細書中の何らかの機能、プロセス及び/又はプロセッサは、プログラム命令の非一時的コンピュータ可読媒体からなる電子ハードウェア、ソフトウェア、或いはハードウェアとソフトウェアの組み合わせを用いて実施できることが明確に想定されている。従ってこの説明は例示の方法によるものとしてのみ受け取られるべきであり、それ以外に本発明の範囲を制限することを意味するものではない。
【0054】
以下に特許請求の範囲を記載する。
【外国語明細書】