マシンビジョンを用いたオブジェクトの3次元アライメントのためのシステムと方法
本発明はモデル化されたオブジェクトまたはシーンの3次元アライメントを決定するためのシステムおよび方法を提供する。校正後、3D(ステレオ)センサスシステムはオブジェクトを観測して、当該オブジェクトを包含するシーンの実行時3D表現を導出する。各ステレオヘッドからの修正画像は、それらのエッジ特徴を強調するために前処理される。次に少なくとも2個(1対)の前処理された修正画像で、所定の特徴を最初の画像上に特定し、次いで同じ特徴を別の画像中に特定することによりステレオマッチングプロセスが同時に実行される。各対のカメラについて3Dポイントが計算されて3Dポイントクラウドが導出される。3Dポイントクラウドは各カメラ対の3Dポイントをワールド校正からワールド3D空間に変換することによって生成される。ポイントクラウドからの3Dデータの量は、より高水準の幾何学形状(HLGS)、たとえば線分を抽出することによって削減される。実行時に検出されたHLGSがモデルのHLGSに対応させられて、候補3D姿勢を生み出す。粗い採点で姿勢の数を減らす。さらに残った候補姿勢は一層精緻なプロセスに入れられる。次にこれらの残った候補姿勢は、たとえば候補姿勢の検出された3Dまたは2Dポイントをより大きいセットの対応する3次元または2次元モデルポイントに適合させることによって検証され、その場合に最も近いマッチが最良の精緻な3次元姿勢である。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、参照フレームを基準にしたオブジェクトのアライメントに使用されるマシンビジョンシステムおよび方法に係り、より具体的には3次元参照を基準にした部品のアライメントのためのシステムおよび方法に関する。
【背景技術】
【0002】
マシンビジョンは多くの近代的な製造プロセスにおいて不可欠の要素となっている。マシンビジョンの1つの具体的な用途は、具体的なコンポーネントもしくはサーフェスのアライメントまたは姿勢を決定して、コンポーネントもしくはサーフェスがツールまたはロボットマニピュレータで操作できるようにすることである。このようなツールまたはロボットマニピュレータは、コンポーネントを掴んで持ち上げ、またはコンポーネントもしくはサーフェスで作業を実施するために、正しい位置に入ることに関する知識を必要とする。たとえば容器からボルトを取り出す部品ピッカーは、ボルトのヘッドの位置と、ボルトを適切に掴んで製造中の装置に設けられた目標ボルト孔に向ける方向に関する知識を必要とする。
【0003】
近年、計算能力が著しく増大したために、製造および他の用途に使用するビジョンシステムの能力と有用性は増した。わずか数年前には利用できなかった能力が、現在では比較的基本的なシステムでも利用できるようになっている。
【0004】
現在商業的に利用できるビジョンシステムは広範な応用においてアライメントを決定するために極めて効果的であるが、典型的には、それらは観測される対象の2次元または「2D」(たとえば、x,y)表現に依拠している。つまり、対象の画像を構成している取得されたピクセルはピクセルの2次元アレーに配置されている。各ピクセルはその(x,y)座標によってアドレス指定することができる。画像中の各ピクセルの値は、カメラ内の対応する検知素子に当る光の量を表すグレースケール値である。このような2次元表現は、xおよびy座標からなる画像フィールド内のモデルを基準にして処理される。しかしながら、多くのオブジェクトのアライメントはそれらのジオメトリおよび表面の配色/陰影のため完全に2次元に分解できるわけではない。多くの場合にオブジェクトの幾何学的な複雑さおよび/または第3の次元に突き出たオブジェクトの要素に関して正確に位置合わせする必要性により、2次元画像の取得に基づくアルゴリズムおよびツール有効性が制限される。その上、多くのオブジェクトは2次元画像ではカメラおよびその関連する画像面に対してごくわずかに傾けただけで非常に異なって見える。したがって1つの向きではシステムによって明確に認識されたオブジェクトのアライメントが、わずかに異なる向きではシステムによく認識できないか、まったく認識できないことがある。
【0005】
今日、大多数の画像システムは、3次元(「3D」)のシーンまたはオブジェクトの2次元画像を取得する。つまり、3次元の幾何学形状はシステムによって2次元画像に分解される。そのシーンまたはオブジェクトが2D画像に投影されると、3Dシーンまたは3Dオブジェクトについてかなりの量の有用な情報が失われる。この失われた情報はシーンまたはオブジェクトの種々の部分がカメラから離れている距離であり、典型的に「奥行き情報」または「奥行きデータ」と呼ばれる。この奥行きデータの損失は、オブジェクトの3D姿勢を正確かつ堅牢に決定するのを著しく難しくすることがある。
【0006】
現在、上述した3Dシーンまたはオブジェクトの3D表現(奥行きデータ)を生成するためにビジュアルデータを取得できる商業利用可能な装置がある。このような装置は本明細書では「3Dセンサ」と呼ばれる。現在使われて普及しているタイプの3Dセンサはステレオカメラヘッドである。ステレオカメラヘッドは一般に所定の、典型的には互いに対して固定された向きに配置されている多数の2Dカメラからなる。各々の2Dカメラは、シーンまたはオブジェクトに対する異なる有利な地点から3Dシーンまたは3Dオブジェクトの2D画像を取得する。
【0007】
3Dセンサは奥行きデータを決定する際に幾つかの技術を採用できる。1つの技術は光パルスの送信と反射した光パルスの受信の間の遅延を測定し、- これは光による検知と測距またはLIDARと呼ばれる技術である。代替例において、奥行きデータを生成するために走査レーザーを採用する構造化された光または装置を使用できる。ある具体的な奥行きデータ決定技術は「三角測量」を採用する。この技術は、シーン中またはオブジェクト上の特徴をそれぞれ各々の2Dカメラから取得された2以上の画像中に特定し、各々の画像における特徴の相対的位置を用いて、その特徴に対する奥行き情報を回復するために三角測量が実行される。ステレオカメラヘッドの具体的な例において、各2Dカメラのアウトプットは実際にはピクセル値(画像)の2Dアレーおよび関連する強度である。ピクセル値の2Dアレーは幾何学的アルゴリズムを用いて結合されて、各ピクセルに対して対応するz(奥行き)値を生成する。各ピクセルに対するz値は、典型的に奥行き画像に記憶される。奥行き画像は典型的に幅と高さの寸法が取得されたグレースケールまたはカラーイメージと等しいが、それらのピクセル値はカメラからの奥行きまたは距離を表す。カメラ次元からの奥行きまたは距離は、あるシーンまたはオブジェクトの3D表現のz要素を提供する。しかしながらz 値を計算するプロセスは、2次元画像のみを取得することと比較して追加の時間を消費する。取得された奥行き画像から、表現の検出された3Dポイントを導出できる。これらの検出された3Dポイントは、後続のプロセスにおいて使用することができる。
【0008】
シーンまたはオブジェクトの3D表現を取得した後、3Dアライメントで残されている課題はシーンまたはオブジェクトの既存の3Dモデルと取得されたシーンまたはオブジェクトとの間の最良の変換を決定することである。モデルは周知のアライメントでシーンまたはオブジェクトの画像を取得することによって提供され得、および/または種々の特徴の位置をデータポイントとして登録することによって合成的に提供することができる。3Dモデルデータと取得された3Dデータとの変換は「姿勢」であり、3Dアライメントの目標である。
【0009】
姿勢計算のための「ブルートフォース」法は、検出された3Dポイントと(許容される任意の技術によって提供された)モデル3Dポイントのセットとの間で可能なポイント対ポイント対応を繰り返し、次に対応する各セットについて検出されたポイントをモデルポイントに最良に位置合わせする姿勢を計算する。現在の3Dセンサによって生成される典型的な3D表現は、3Dポイントクラウドの形式が最も多い。これらの3Dポイントクラウドはしばしば数千個ないし数十万個の3Dポイントを含む。この多数の検出された3Dポイント、そして検出されたポイントとモデルポイントとの間の著しく多数の可能な対応が、ブルートフォース法で姿勢を決定するのを厄介にしている。
【0010】
3Dセンサシステムを用いて急速、堅牢、正確な3Dアライメント解決策を達成することは技術的に困難な問題である。工業環境においてこの解決策は位置合わせされる各オブジェクトについて正確かつ迅速に達成されなければならない。より高出力の計算システムはこの問題と取り組む機会を提供する。したがって、堅牢で、効率的で、信頼でき、また3D画像の取得および処理において直面する追加的な処理オーバーヘッドに対応する、オブジェクトの3Dアライメントのためのシステムおよび方法を提供することが望まれる。このシステムおよび方法は、非常に多様な3Dオブジェクトの正確なアライメントを可能にすべきであり、またそのようなアライメントを製造中の生産ラインまたは他の工業的環境における標準的な操作速度に対応する速度で可能にすべきである。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】米国特許第6,075,881号明細書
【特許文献2】米国特許第6,151,406号明細書
【発明の概要】
【0012】
本発明は、モデル画像データを基準にしてオブジェクトの3次元(3D)アライメント(6自由度)を決定するためのシステムおよび方法を提供することによって、先行技術の欠点を克服する。このシステムおよび方法は、非常に多様なオブジェクトの形状および陰影パターンについて、効率的で堅牢で正確な結果を生み出す。例示的な実施態様において、(たとえば1以上のステレオカメラヘッドからなる)3Dセンサシステムは、3Dセンサがカメラ校正を経た後、そして3Dセンサシステムがオブジェクト視野のワールド3D座標空間を基準にしたワールド校正を経た後、オブジェクトが1以上の有利な地点から位置合わせされるエリアを観測する。3Dモデルは適当な技術によって、システムのアライメントアルゴリズムにより即時使用可能な形でシステムに提供される。このモデルは、対象オブジェクト内の十分な数のエッジおよび/またはその他の明確に分解可能な特徴を提供するように適合してもよい。モデルのトレーニングに続く実行時間の間、3Dセンサシステムは実行時オブジェクトに対する1以上の離散的な有利な地点に位置する1以上の3Dセンサを用いてオブジェクトの3Dポイントクラウドを生成する。一実施態様において、ポイントクラウドは、最初に各カメラから取得された画像を例示のステレオカメラヘッド配列で修正することによって生成される。次に修正された画像は、それらのエッジ特徴を強調するために、たとえばゼロ交差技術を用いて前処理される。それから少なくとも2個(1対)の修正された前処理された画像において、最初の画像上で所定の特徴を特定し、次に同じ特徴を他の画像内に(典型的には各々の画像のゼロ交差に)特定することによって同時にステレオマッチングプロセスが実行される。画像対における各特徴のそれぞれの位置の間の何らかの差異は視差を定義し、これが奥行きとして計算されて結果として生じる奥行き画像に符号化される。次いで各カメラ対について、物理的単位で表された奥行きを有する奥行き画像における視差(非ゼロピクセル値)に基づいて3Dポイントが計算される。それから各カメラ対の3Dポイントを、ワールド校正中に生成されたワールド3D座標空間に変換することによって3Dポイントクラウドが生成される。処理オーバーヘッドを減らして速度を増すために、ポイントクラウドからの3Dデータの量は、より高水準の幾何学形状(HLGS)を抽出することによって削減される。ポイントクラウドはオブジェクトエッジからなるので、ポイントはオブジェクト上の具体的なHLGS、たとえば線分や非直線的な曲線を定義できる。本例では、システムは離散的な線分/曲線を表す3D共線的ポイントに対するクラウドをサーチして、それらを抽出する - 何らかの二重の線分/曲線は除かれる。次に、システムは実行時オブジェクトから検出された1対のHLGS(たとえば非平行な線分)をモデル上の1対のHLGSに対応させて、6自由度の候補姿勢を生み出す。全部または大多数の対応(候補姿勢)は最初のステップで生成することができる。一般に、抽出されたHLGSの種々異なるサブセットは余すところなくモデルのHLGSに対応させられる。各々の候補対応は抽出された特徴のサブセットとモデルとの間のマッピングまたは姿勢を含意する。採点プロセスは粗い採点プロセスを用いて候補姿勢の数を減らすことができる。- たとえば与えられた線分について半径を定義し、対応させられた線分の一方または両方の端点がこの半径の外に出ている対応を排除する。残った候補姿勢はさらに、一層精緻な細かい採点プロセス - たとえば検出された実行時線分がモデル線分と位置合わせされる角度に入れられて、比較的少ない所定の数が残るまでが続けられる。これらの残った候補姿勢は次いで検証プロセスに入れられ、候補姿勢の検出された3Dポイントまたはそれらの2Dポイントへの投影が、より大きいセットの対応する3次元またはそれらの2次元モデルポイントへの投影に適合されて、最も近いマッチが所望のアライメント解決策を提供するために許容することができる高得点姿勢として生成される。
【0013】
多数の実施態様において、本システムおよび方法は、双眼ステレオカメラヘッドに配置された2D画像センサまたはL字形三眼ステレオカメラヘッドを含む多様な3Dセンサ配列を採用し得るが、これらに限られない。3Dセンサはオブジェクト視野/アライメントエリアに対する複数の有利な地点に設けることができる。これら複数の3Dセンサからのデータは、観測されるオブジェクトの振動または運動により異なるセンサから取得された画像データのミスマッチが起こるのを避けるために、実質的に同時に取得される。3次元 HLGSデータは線分、微小エッジ、アーチ、スプライン、ファセットなどを含む多数の幾何学的特徴に基づいてもよい。
以下に本発明を添付の図面に基づいて説明する。
【図面の簡単な説明】
【0014】
【図1】本発明の実施態様に従い複数の例示的なステレオカメラヘッドを用いてオブジェクトの3次元アライメントを決定するためのシステムの図である。
【図2】本発明の例示的な実施態様に従う3次元姿勢決定プロセス全体のフローチャートである。
【図3】本発明の実施態様に従いオブジェクトの3次元アライメントを決定するためのシステムに使用する例示の三眼ステレオカメラヘッドの斜視図である。
【図4】線分をHLGS特徴として採用した例示的な実施態様に従うHGLS 検出プロセスのフローチャートである。
【図5】図4の検出プロセスによって検出される線分を示すオブジェクト例の取得された実行時画像のスクリーンショットである。
【図6】線分に対して90度の向きと、図4の検出プロセスで使用するためには問題となり得る線分を示す、図5のオブジェクト例の取得された実行時画像のスクリーンショットである。
【図7】例示的な実施態様に従う候補3D姿勢生成プロセスのフローチャートである。
【図8】当該実施態様にて各々非平行な線分対を定義するモデル例と検出されたHLGSからの候補姿勢の作成および決定について説明するグラフである。
【図9】当該実施態様にて各々非平行な線分対を定義するモデル例と検出されたHLGSからの候補姿勢の作成および決定について説明するグラフである。
【図10】当該実施態様にて各々非平行な線分対を定義するモデル例と検出されたHLGSからの候補姿勢の作成および決定について説明するグラフである。
【図11】当該実施態様にて各々非平行な線分対を定義するモデル例と検出されたHLGSからの候補姿勢の作成および決定について説明するグラフである。
【図12】当該実施態様にて各々非平行な線分対を定義するモデル例と検出されたHLGSからの候補姿勢の作成および決定について説明するグラフである。
【図13】当該実施態様にて各々非平行な線分対を定義するモデル例と検出されたHLGSからの候補姿勢の作成および決定について説明するグラフである。
【図14】当該実施態様にて各々非平行な線分対を定義するモデル例と検出されたHLGSからの候補姿勢の作成および決定について説明するグラフである。
【図15】当該実施態様にて各々非平行な線分対を定義するモデル例と検出されたHLGSからの候補姿勢の作成および決定について説明するグラフである。
【図16】モデル線分とこれに対して検出された線分の例の対応の周囲に描かれた例示的なパイプの斜視図であり、検出された線分は粗い採点プロセスに留められる。
【図17】パイプから逸脱しており、そのため粗い採点プロセスで放棄される検出された線分の例を示す、図16のモデル線分の例示的なパイプの斜視図である。
【図18】各候補姿勢の得点の精緻化において使用されるモデル一致得点を決定するための連続したビンに分割されたルックアップテーブルを定義する3次元空間の斜視図である。
【図19】候補姿勢を採点して、実行時オブジェクトの最終的に選択された高得点の候補3D姿勢/アライメントを生成するために用いられるプロセスステップのフローチャートである。
【図20】本発明の種々の例示的な実施態様に従う基本ステップを含む3D全アライメントプロセスのフローチャートである。
【発明を実施するための形態】
【0015】
I.システムセットアップ
図1は、本発明の例示的な実施態様に従い、観測されるオブジェクト110の3次元アライメントまたは姿勢を決定するためのシステム100の典型的な配列を図示している。この例では、システム100は例示された画像処理システム130と相互に接続された例示の複数の3次元ステレオカメラヘッド120および122を使用する。この例では、画像処理システムはディスプレイ132、キーボード134およびマウスインターフェース136を備えたPCタイプのコンピュータである。PCは適当なビデオ処理コンポーネントを有し、コンピュータ可読媒体に記憶された本発明に従うシステムおよび方法を可能にするプログラム命令を実行する。PCが画像処理装置の1タイプに過ぎないことは、当業者にとって明白なはずである。代替的な実施態様において、処理コンポーネントは直接1以上のステレオヘッドカメラ(または他の3Dセンサ)のハウジング内に設けられてよく、離散的なカメラヘッド/3Dセンサはケーブルによって、および/または無線で処理コンポーネントと通信するように適合させることができる。
【0016】
例示のオブジェクト110は複雑な3次元形状で、暗色の本体(陰影により例示)150、準反射性の金属ブラケット部152および白色または淡色のコネクタ部を有する電子コンポーネントを含んでいる。本体150は複数の連続したエッジ158を含んでおり、これらは一緒になって種々の表面を定義している。ブラケット152とコネクタ154も同様に種々の連続したエッジおよび面を定義している。ブラケット152は本体150の幾つかのエッジを覆って、一層複雑な一連の交差エッジを生み出していることに留意されたい。以下に述べるように、本発明の教示に従い3次元および6自由度で首尾よく位置合わせすることができるオブジェクト110は、交差線の数が多いため位置合わせするには技術的に困難な形状である。しかしながらこの形状はまた複数の離散的な幾何学形状、たとえば線分、微小エッジまたはスプラインに分解することができる多数の連続して伸びたエッジまたは他の明確に分解可能な特徴を呈している。これらのより高水準の幾何学形状(HLGS)は、姿勢データを取得された3次元データにより迅速に対応させることを可能にする。一般に、本発明に従って特定されるべきオブジェクトは、連続した特徴、たとえば線分、コーナ、曲線またはその他のポイントクラウドから分解することができる限定的な形状を含む。
【0017】
この実施態様では、以下に述べるように、視野およびオブジェクト110を異なる有利な地点から撮像するために、1以上のステレオカメラヘッド120および122が用いられている。しかしながら以下に述べる理由でオブジェクト110を追加的な有利な地点で観測するために、追加的な3Dセンサ(ブロック170で表す)が設けられてよい。各ステレオカメラヘッド120および122は、それぞれ1対の2次元(2D)カメラ140、142および144、146を有している。ステレオカメラヘッドはオブジェクトの1対の離散的な画像を創り出すことによって動作する。具体的なステレオカメラヘッドの2Dカメラの間にスペースまたは「ベースライン」を設けることにより、撮像ヘッドはカメラからオブジェクト110までの相対的距離または奥行きを決定できる。ベースラインが典型的に8から12センチメートルであるのに対し、オブジェクト110までの作動距離はこれより著しく長い傾向がある。
【0018】
従来のステレオカメラヘッドに固有の欠点は、センサのベースラインにほぼ平行な視野内のエッジは見えないことである。換言すれば、水平に取り付けたステレオヘッドは、水平面から約±20度の範囲内にあるオブジェクトエッジを正確に特定できない。図1の実施態様では、この欠点は2以上のステレオカメラヘッド120、122を設けることによって一部克服される。一実施態様において、図示された2個のステレオカメラヘッドは異なる有利な地点からオブジェクトを観測する画像軸に向けることができる。これは一方のヘッドには見えないことがあるエッジを取得するのに役立つ。なぜならそれらのエッジは他方のヘッドには識別可能だからである。上述したように、オブジェクト110およびステージ149に対する追加的な有利な地点に2以上のステレオカメラヘッド(または他のタイプの3Dセンサ)(ブロック170)を位置決めできることが明確に考えられている。3Dセンサを種々の角度に位置決めすることにより何らかの見えないエッジに対応できるとともに、オブジェクトに対するヘッドの特殊な向きのためにオブジェクトの一部が遮蔽される結果、取得された全画像にエッジの欠落が生じたらこれを埋めることができる。換言すれば、ステレオカメラヘッドは妨害され、遮蔽された、または他方のヘッドで見ては分解不可能なオブジェクトの部分を観測する。オブジェクト周囲に複数の向きで多数のヘッドを設けることにより、各々異なる視野における収差および不一致は相殺することができる。一般に、1以上の3Dセンサが配置されて、あるシーン(6自由度で位置合わせされるべきオブジェクトを含んでいてもよい)の3D表現の取得を可能にし、以下に詳細に述べるように、そこから3D幾何学的特徴が抽出することができる。
【0019】
一実施態様において、上記背景技術にて説明したように、本明細書中で定義される3Dセンサは、何らかの受入れ可能な機構または技術によってあるシーンの3D表現を生成する任意の装置である。したがって「3Dセンサ」は、固定した、または可変なベースラインに剛性的に取り付けられた複数の(2以上の)2Dカメラ、または各々シーンに対して異なる有利な地点に配置された複数の(2以上の)2Dカメラ(剛性的に取り付けられても、剛性的に取り付けられなくてもよい)を含む。例として、マウント(たとえばカメラをファセットパネルか、またはドームパネルの交差部に組み付けたジオデシックドーム構造)で支持された多数の(3以上の)カメラは3Dセンサとみなすことができる。あるいは大きいグループ内の離散的な対、3重または4重の2Dカメラは、3Dセンサのグループ内における離散的な3Dセンサとみなすことができる。同様に、一実施態様では多数のカメラによって画像を同時に取得することが考えられているが、代替的な実施態様では1以上の2Dカメラが各々動作して多数の画像を時間的に別個に取得し、 - たとえばカメラはロボットマニピュレータに配置され、異なる有利な地点間を移動して各々有利な地点でシーンの画像を取得する。同様に、レンズ配列を用いて種々異なる有利な地点で複数の画像を、時間的に別個に、またはカメラの全視野の別個の部分内で取得する単一のカメラは、3Dセンサとみなすことができる。代替的に、構造化された光ストライプを使用して画像を取得したカメラは、3Dセンサとして実行してもよい。
【0020】
さらに背景技術として上述したように、具体的なタイプの3Dセンサはステレオカメラヘッドである。本明細書中では、「ステレオカメラヘッド」には、複数の2Dカメラが一緒に剛性的に取り付けられた、典型的には相互に校正されるシステムが含まれる。
【0021】
より一般的に、ステレオマッチングは1個の画像中にある特徴を特定し、次に異なる有利な地点から取得された1以上の他の画像に同じ特徴を検出することを伴う(マッチした画像は修正および/または前処理してもよい)。これは画像間の特徴を「対応させる」と呼ばれる。この対応は特にオブジェクトがモザイク状のパターンまたは反復パターン定義する場合は困難な課題である(「対応問題」とも呼ばれる)。ステレオマッチングには、当業者にとって多様な技術、たとえばよく知られているマル=ポギオ=グリムソンのステレオアルゴリズムが利用できる。以下に記すように、例示的な実施態様の対応手順は、フィルタ処理された結果にゼロ交差を検知してエッジを獲得する方法を用いる。このマッチング手順は「希薄」とみなされる。なぜならこの手順は特徴の確信が高いポイントをサーチするからである。
【0022】
各々のカメラヘッド120、122 とカメラ140、142、144、146は実行時プロセスに先立って校正されていることに留意されたい。校正を達成するために、当業者に熟知されている多様な技術を使用できる。一般に本発明に従う正確な3Dアライメントは、システムにおける各3Dセンサの正確な数学的モデルを必要とする。カメラ校正は3Dセンサに対する数学的モデルを決定するプロセスである。工業界では2Dカメラの校正(すなわち内部の幾何学的および光学的カメラ特性(固有パラメータ)と定義されたワールド座標系に対するカメラの位置および/または向き(外部パラメータ)を確立すること)のために多くの技術が知られている。固有パラメータおよび外部パラメータはしばしばカメラ校正パラメータと呼ばれる。例示的な実施態様ではステレオカメラヘッドについて、ステレオカメラヘッドを構成するすべての2Dカメラに対してカメラ校正プロセスが同時に行われる。これはステレオカメラヘッドに対して最も正確な数学的モデルを生じる。
【0023】
より具体的には、カメラ校正は、固有パラメータと外部パラメータを評価することによる画像形成システムのモデル化を含む。カメラの固有パラメータおよび外部パラメータ(カメラ校正パラメータ)は、実行時間中にレンズの歪みを取り除き、観察された2D画像特徴ポイントを3D空間において解釈するために使用される。カメラ校正の精度は直接システムの性能に影響する。例示する1つの校正手順は、視野(図1のステージ149)内の多数の種々異なる向きで提示された平面的な校正オブジェクト(たとえば白と黒の格子縞模様の方形プレート)を使用する。カメラ校正は、観察された2D画像特徴ポイントと平面的なサーフェスで特定された3D特徴に関する特徴対応から、固有パラメータと外部パラメータを評価する。これらの画像/物理的特徴の対応は、ビジョンシステム内で適当なソフトウェアツールを使用して決定することができる。
【0024】
正確な3Dアライメントは、システムにおける3Dセンサの相対的姿勢を知ることも必要とする。システムにおける3Dセンサの相対的姿勢を決定するプロセスは、ワールド校正として知られている。より詳しくは、ワールド校正は、ワールド3D座標空間(本明細書ではステージ149を基準として向けられたx,y、z座標系164として図示されている)に対して、システム(たとえば図示されたカメラ座標系160および162)におけるすべての3Dセンサ(120、122、170)の姿勢を決定するプロセスからなる。ワールド3D座標の具体的な向きは非常に可変的であるが、単一の座標空間または参照フレームを表す。ワールド3D座標空間におけるすべての3Dセンサの姿勢を知ることにより、各センサからの3Dデータを互いに融合することが可能になる。この融合したデータによりオブジェクト110の一層完全な3Dポイントクラウドを獲得することが可能になる。
【0025】
II.モデルトレーニング
例示的な実施態様に従う3Dアライメントは、オブジェクト110の数学的モデルを使用することを必要とする。オブジェクトをモデル化するには多くの方法があり、たとえばCAD モデル、サーフェスモデル、ワイヤーフレームモデル、ポイントクラウドなどを使用する。モデルトレーニングのプロセスは、オブジェクトのユーザ指定モデルを3Dアライメントにとって最適な形に変換することを含む。より具体的には、モデルトレーニングのアウトプットは、例示的な実施態様に従う3Dアライメント手順の種々の部分で即時使用可能に形成されたユーザ指定モデルオブジェクトの数学的モデルである。以下に記すように、この実施態様におけるモデルは一連のより高水準の幾何学形状(HLGS)、たとえば線分、曲線、アーチ、スプラインおよびこれに類するものとして規定されている。
【0026】
例示的な3Dアライメントアルゴリズムは、オブジェクトの分解可能なエッジに基づいて動作する。エッジは1次元的であるため、3D空間に埋め込まれた1D曲線のセットをオブジェクトのエッジのモデル化に使用できる。必ずしもオブジェクトのエッジをすべてモデル化する必要はない。実際、モデル内のエッジの数が増すと、典型的には3Dアライメントのための計算時間が増えて、システム効率の低下を招く。一般に望ましいのは、オブジェクトの最小数の優勢なエッジをモデル化することである。優勢なエッジとは典型的にはオブジェクトでより長く、コントラストがより強いエッジである。最小数のエッジは、オブジェクトの類似の姿勢の曖昧さを取り除くために必要なエッジを含まなければならない。モデルHLGSデータを提供するために様々な技術を使用できる。一実施態様においてHLGSは、際立った3D特徴(HLGS)画像の自動入力または手動入力を用いて、オブジェクトの1以上の取得された画像から合成することができる。別の実施態様においては、特徴は手動で入力されるか、または種々のHLGSに対して物理的測定値および座標を提供することにより合成的に入力される。
【0027】
III.実行時3Dアライメントプロセス
システムの校正およびトレーニングが完了したら、例示のオブジェクト110で実行時アライメントプロセスを行うことができる。ここでは全アライメントプロセスのステップを示す図2のフローチャート200を参照する。このプロセス200は複数のステップからなり、オブジェクトに対する種々の有利な地点に配置された1個または(典型的には)それ以上の3Dセンサから3Dポイントクラウドを生成することで始まる。最初のステップであるオブジェクトの実行時画像の同時取得(ステップ210)と、これらの画像の修正/前処理(ステップ212)については上述した。以下に、実行時オブジェクトに対するアライメントまたは姿勢決定プロセスについて、一般的に図2の各ステップを参照して、特にステレオマッチングを用いてオブジェクトの3Dポイントクラウドを生成するステップ220を参照して詳述する。
【0028】
A. ステレオマッチングおよび3Dポイントクラウド生成
本発明の実施態様は、撮像されたオブジェクトから3D情報を導出する他の技術はカメラの代替配列(たとえば3眼立体視カメラヘッド)および/または 他のタイプの3Dセンサ(LIDARなど)を使用するのに対し、例示的な実施態様はステレオマッチングプロセスを採用することを明示的に考えている。これらのプロセスは一般に、本発明に従いオブジェクトを効果的に位置合わせするのに十分な3Dポイントのクラウドを生成することに向けられている。具体的には、ステレオマッチングを用いて奥行き画像から3Dポイントを生成するプロセスは、多様な技術を使用して達成できる。これらの技術は通常の当業者には十分理解される。この他の背景技術として、ハートレーおよびジッサーマンによる「コンピュータビジョンにおける多重視点ジオメトリ」またはマ、ソアット、コセカおよびサストリーによる「3Dビジョンへの招待」を参照されたい。
【0029】
複数のステレオカメラヘッド(120、122、170)がオブジェクト110に対するそれぞれ有利な複数の地点の各々で使用される場合、オブジェクトが動くことによって撮像の精度が損なわれるのを避けるために、カメラヘッドは同時にオブジェクトの画像を取得する。3Dポイントクラウドを導出するために、上記のステレオマッチングプロセスが行われる。
【0030】
上述したように、本発明の種々の実施態様に従い、オブジェクトの3D画像を取得するために1以上のステレオカメラヘッドを使用することは、そのような3次元画像データを取得するために使用できる多様な撮像技術の1つであることが明らかなはずである。したがって、範囲データを導出し、および/または奥行き画像を生成するための異なる技術的原理に従って動作する3Dセンサを用いて、所望のオブジェクトの3Dポイントクラウドを生成するために必要ならば、上述したステップは置き換えまたは変容できることが明確に考えられている。
【0031】
以下にアライメントプロセス200について詳細に説明する前に、オブジェクトの奥行き画像を取得する際に遮蔽や観測されないエッジの発生を減らすために、本発明の実施態様に従い使用できる「三眼」カメラヘッド/3Dセンサ300を例示した図3を参照する。この3眼立体視カメラヘッド300は3台のカメラ310、312および314を含んでいる。この実施態様におけるカメラは、ベースハウジング320上にそれぞれカメラ 312とカメラ 314および310の間の所定のベースライン BTlおよび BT2でL字構成に配置されている。各々のカメラは画像処理装置(図1の130)と連動している。各カメラ 310、312、314は、それぞれの光線 340、342、344で示されているようにわずかに異なる視角で対象オブジェクト330の同時画像を取得し、これらの画像は画像プロセッサにより、3Dポイントクラウドの導出に関して上述した技術と類似してよい数学的技術に従って結合される。一実施態様において、3眼立体視カメラヘッドにおけるカメラ対で捉えた画像はステレオマッチされてよく、それからポイントがワールド3D座標系にマッピングされるか、または代替的な実施態様において適当なアルゴリズムを用いて3個すべての画像が一度にワールド3D座標系にマッチしてもよい。
【0032】
B. ポイントクラウドからの幾何学形状の抽出
3Dポイントクラウドは数千個、さらには数万個の3Dポイントを有するのが普通である。現在商業利用可能な計算装置を用いてアライメントを行う際に必要な速度と精度を達成するために、処理されるデータの量を減らすことが望ましい。システムによって処理されるデータの量を減らすために、プロセス200はより高水準の幾何学形状(より高い次元性を有する幾何学形状)、すなわち「HLGS」を利用して3Dアライメント(ステップ230)を実行する。この実施態様の3Dポイントクラウド内のポイントはオブジェクト上の分解可能なエッジに対応しており、またエッジは1次元幾何学形状であるため、プロセス200では3Dポイントクラウドから1またはそれ以上の次元性を有する幾何学形状を抽出する。本明細書に記載された実施態様に従って用いられるHLGSは3D線分であり、これらは3Dポイントクラウドから抽出される。以下に述べる3D線分抽出プロセスは3Dポイントクラウド中をサーチして共線的3Dポイントのセットを探す。共線的3Dポイントの各セットが3D線分を決定する。3D線分のセットが決定されたら、これらのセットは二重またはほぼ二重の3D線分を除去するために削られる。別の例示的な実施態様において、抽出プロセスは任意の受入れ可能なHLGS 特徴(種々異なるタイプHLGSの組み合わせを含む)、たとえば線分、微小エッジ、アーチ、スプラインなどを抽出する。たとえばある例示的な実施態様におけるプロセスは、3Dポイントクラウドからの1次元幾何学形状、線分および非直線的な曲線を含むHLGSを抽出できる。
【0033】
各ステレオカメラヘッド(120、122、170)またはカメラ対に対して、プロセス200(ステップ230)は、ポイントクラウドで検出された3Dワールドポイントに適合する3D線分を生成する。これらの線は図4のフローチャートに図示されたマルチステッププロセス400において、各ステレオカメラヘッドおよび/またはカメラ対に対して検出される。最初に、上述したようにワールド3Dポイントが検出される(ステップ410)。次にこの実施態様に従い、図4を参照して一般的に説明されたように、ワールド空間の有効な容積内に適合するすべての3D線分を検出することによって線分検出プロセスが実行される(ステップ420)。単一のステレオヘッドからのすべての3Dポイントは、最初にステップ 422でカメラ対の一方のカメラの修正された2D画像面に逆投影される。2Dポイントは2D画像ポイントとして知られている。以下に、オブジェクト110のビジョンシステムスクリーンショット500(図5)を参照して、2D画像ポイント510の典型的なセットを示す。ポイント510は奥行き画像全体にわたって配置されている非ゼロピクセルを表す。これらの2Dポイントは不規則に配置されているのではなく、シーン中の分解可能なオブジェクトエッジに従っている。それらは逆投影画像中で結ばれたピクセルの薄い(1ピクセルまたは2ピクセルの幅)スレッドを形成する。
【0034】
次のステップは逆投影画像のセットにわたって反復され、各々の逆投影画像に対しては角度範囲にわたって反復される。各々の反復において実行される処理は、最初に逆投影画像を現在の角度範囲に対して前処理することであり、次にそれを以下に述べる2D線検出ツールに渡すことである。現在の逆投影画像における2D画像ポイントのセットはフィルタ処理されて、現在の角度範囲の外に向けられた線分に寄与する何らかの2D画像ポイントを除去する(ステップ424)。これは以下に述べる2D線検出ツールが関係のない線からの2Dポイントを1本の線に結合するのを防ぐ。たとえば、破線の線分620(図6)は典型的なケースである。ここではツールは積極的に、620の上端によって指示されるが、620の下端によって指示された線分の一部ではない幾つかのポイントを含むことがある。2Dポイント前処理ステップ424はそのような関係のないポイントを除去する。
【0035】
次に、残った2D ポイントは、商業利用可能なビジョンシステムツールへのインプットとして2D線を検出するために使用される(ステップ426)。例示の実施態様におけるツールは、コグネックス・コーポレーション(マサチューセッツ州ネイティック)から出ている、いわゆる「PALツール」であってよい。このツールは有用な背景技術として、本発明と同じ譲受人に譲渡された米国特許第6,075,881号「画像からのポイントの共線的セットを特定するためのマシンビジョン法」に詳しく記載されており、その教示内容は参照により本明細書に組み込まれる。このツールは機能と実現の点でハフ直線検出技術に類似しており、ボールグリッドアレーの画像を分析するために使用されてきた。さらに背景技術として、米国特許第6,151,406号「2次元画像データからボールグリッドアレーを特定するための方法および装置」を参照されたい。その教示内容は参照により明確に本明細書に組み込まれる。
【0036】
線分検出ツールは最初に2D平面内に角度の範囲をサーチして、画像中(その範囲内で)最も高密度の線に対応する角度を検出する。次にその角度で発生するすべての線を特定する。最も高密度の線は最大数の2Dポイントに「近い」線である。奥行き画像において画像線は幾つかの種々異なる角度で発生し得るので、ツールは多数回実行されてよく - 各々の実行は固有の15度レンジをカバーする。角度があるレンジの終端に近い(それゆえ次のレンジの始端に近い)線は一般に2度計数されない。15度範囲で最も強い角度が隣接範囲における最も強い角度の10度内にあるときはいつでも、2個の角度のうち1個の角度、すなわち最も高密度の線に対応する角度のみが保持される。残ったすべての角度に対してPALツールを用いて、その角度に対応する2D線を検出する。
【0037】
各々2D画像線分はさらに処理されて、ステップ430、432、434に従い3D線分の最終セットを抽出する。これらのステップは、ボックス428によって示された反復プロセスの一部である。最初の処理ステップは、「希薄」な端部を有する何らかの線分を短縮することである。スクリーンショット500(図5および図6)に示されているように、PALによって生成される線分(たとえば線540)は、ときどき空きスペースの距離を補って、当該線分に属していないことがある最終ポイント(たとえばポイント542)の小さいグループに達する。これらの密度が希薄な端部は除去される。線分の希薄な端部の除去は、次のように行ってもよい。
【0038】
1. 線分のN個の2Dポイントが線分に沿ったそれらの距離に応じて仕分けられる。この例ではリストの最初の要素は距離ゼロを有し、N番目の要素は線分の全長に対応する距離Lを有する。
【0039】
2. (0.1*N)番目の要素の距離が0.2*L であるならば、この線分の始端は希薄とみなされる。なぜなら線分の初期長さの20%(この例で用いる閾値)以上が10% の2Dポイントによってしかカバーされていないからである。
【0040】
3. この線分の他方の端部は、(0.9*N)番目の要素の距離が0.8*L未満である場合に希薄と判定される。
【0041】
4. 希薄と呼ばれる何らかの端部は、仕分けられたリストの希薄な部分で連続する2Dポイント(すなわち希薄な端部における0.1*Nポイント)間の距離を分析することによって整えられる。線分は希薄なポイントの平均ギャップを超える最も内側の中間ポイントギャップでクリッピングされる。
【0042】
クリッピング後、各2D画像線分で残った2Dポイントに対応する3Dポイントが新しい平面に投影されて、さらに処理される(ステップ430)。このステップは逆投影画像中の同じ2D線分に2以上の3D線分が投影されるケースを扱うために例示的に用いられる。新しい平面は、(この例では右の)カメラ140のカメラ原点を含む3個の3Dポイントと、2D画像線分の端点に対応する2個の3Dポイントによって定義することができる。定義により、新しい平面は各々の2D画像線分に対して異なり、逆投影画像の平面に対して実質的に垂直である。3Dポイントは新しい平面に非常に近い位置にある。投影後、結果として生じる2Dポイントは投影されたポイントとして知られている。
【0043】
次にPALツールは投影されたポイントに適合する2D線分を検出するために再び使用される(ステップ432)。代替的に、ハフ類似のアルゴリズムを用いて当業者に明らかな方法で2D 線分を検出できる。このアルゴリズムは上にステップ426で説明したのと類似に操作される。しかしながら実施態様のこのステップでは投影された2Dポイントは、上述したようにフィルタ処理されない。この実施態様ではPAL ツールは15度角度範囲内で実行されて2D線を検出する。
【0044】
投影された2D線分 が検出されてクリッピングされたら、それらはステップ434で3D線分に変換される。これは実施態様では(a)投影された2D 線分の端点に対応する2個の3Dポイントを特定し、(b)これらのポイントが所定の長さ閾値以上に離れていることを確認し(この例では1cm未満の線分は拒絶される)、そして2個の3D端点を用いて3D線分を作成することによって達成される。
【0045】
上述したように、この実施態様では3D線分は各々のステレオカメラヘッド120、122、170(または他のタイプの3Dセンサ)に対して別個に生成される。ステップ440に従い、複数のステレオカメラヘッド/3Dセンサがそれぞれオブジェクト110およびステージ149に対する離散的な有利な地点で使用されるならば、1個のカメラヘッドからの幾つかの3D線分が、1以上の他のカメラヘッドからの線分と同じ物理的特徴に対応するというのはありそうなことである。もし2以上の3D線分が実質的に等価であれば、プロセス400は1個の線分を除いてすべて排除する。2以上の3D線分(またはその他のHLGS)が実質的に等価であるか同一であるなど互いに近いと考えられていることに留意されたい。このような場合は、プロセス400はこれらの線分を融合し、それらの値を平均化するなどして単一の値に結合できる。これは代替の実施態様においてプロセスで使用するための新しい線分として定義される。例示的な実施態様において、保持される線分は最も多くのポイントを有する線分である。2個の3D線分の等価性は、一方の線が他方の線の周囲の小さい円筒空間内にほぼ包含されるかというプロセスによって判断することができる。この仮想円筒の半径はほとんどの定義と同様にユーザ指定のパラメータである。ユーザは小数値(たとえば0.5〜1.0)を用いて、等価線分が比較される他方の線分の円筒内にどれだけ入っていなければならないか規定できる。たとえば小数0.8 は一方の線分の少なくとも80%が、他方の線分を囲む仮想円筒内に含まれなければならないことを示す。等価線分を決定および排除するために他の技術も使用できることが明確に考えられている。
【0046】
例示的な線分検出プロセス400における最後のステップ450は、ステップ440における線分排除の後で、いずれかのステレオカメラヘッド/3Dセンサから最終的な3D線分に近い3Dポイントをすべて特定することである。この実施態様では、ステップ450は、すべての最終的な線分とすべての3Dポイントで反復することによって達成される。種々の実施態様において、ポイントが2以上の線分に近ければ、近いポイントを一方の線分または他方の線分のみに入力する技術が適用することができる。さもなければポイントは両方の線分に付加してもよい。プロセスにおけるこのステップで、すべての3Dセンサの結果は結合されて、オブジェクトの6自由度の3Dアライメントを代表する高得点の候補3D姿勢を特定するために採点される準備ができる。本明細書で用いる「高得点」という用語は、採点プロセスにおいて、3Dセンサの3D表現の対象であるシーン中の1以上のオブジェクトに対して受入れ可能なアライメント解決策として使用できるほどに十分高い得点を獲得する1以上の候補3D姿勢を指すことに留意されたい。実際に高得点姿勢は候補3D姿勢のグループで最良、最高もしくは最上得点の姿勢であってよく、またはその他の受入れ可能な特性を提供する姿勢であってよい。1以上の高得点姿勢は多重ステップ(たとえば粗い、細かいなど)からなる採点プロセスの各ステップで、3Dアライメントプロセスの最後に解決策として用いられる1以上の高得点姿勢として導出することができる。
【0047】
上述した線分検出プロセスは他の線分検出プロセスおよび他のタイプのHLGSで置き換えられることは通常の当業者にとって明らかなはずである。したがってこの実施態様で線分をHLGSとして使用するのは、単に例示に過ぎない。
【0048】
C. 候補姿勢の生成および採点
再びこの実施態様の図2の主要なアライメントプロセス200を参照して、検出された線分(または他のタイプのHLGS)の最終セットが抽出されたら、次にそれらは1対の非平行なモデル3D線分と対応させられる。他のタイプのHGLSが用いられる場合は、この対応は対よりも大きいかまたは小さいグループであってよい。多くの実施態様において対応のベースとして、1次元幾何学形状(非直線的な曲線および/または線分)が使用される。同様に、検出されモデルと対応させるために組み合わされたHLGSのセットは、非平行であるということ以外の理由で向きが異なってよい(たとえば対応する互いからの所定の3D間隔で特定された非直線的な曲線の検出された対と、所定の間隔範囲における非直線的なモデル曲線との対応)。このような対応は各々6自由度の「候補姿勢」のグループを生成できる。堅牢性のために、検出された線分対とモデル線分対のすべての可能な組み合わせがステップ240に従って試みられる。これらの可能なすべての組み合わせは、数百万の候補姿勢を生み出す。プロセス200の速度と効率を増すために、迅速な採点技術を用いて候補姿勢のセットをより合理的なサイズに切り詰める。この時点で精緻な採点が実行することができる。
【0049】
以下に、図7のフローチャートを参照して、候補3D姿勢の決定について詳しく説明する。姿勢決定プロセス700はステップ710で始まり、検出された3D線分は対応する3Dモデル線分と同じ座標系(たとえば3Dワールド座標系)にマッピングされることによって位置合わせされる。図7〜図15の幾何学図を参照すると、それぞれの端点AおよびA’と端点BおよびB’によって示された1対の非平行なモデル線分(モデル線対AA’およびBB’)と、端点 aおよび a'と 端点 bおよび b’を有する検出された線分(検出された線対aa’および bb’)とから候補姿勢を生成する際に用いられる種々のステップが記述されている。モデル線対の例 AA’および BB’は図8に示されており、関連する3D直交座標系(U,W,V)の軸WおよびU上に位置している。同様に、検出された線対の例aa’および bb'は図9に示され、それぞれ関連する直交座標系 U’、W’、V’の軸W’およびU’上に位置している。
【0050】
モデルの非平行3D線対(AA’および BB’)および 検出された非平行3D線対(aa’および bb’)について、検出された線対をモデル線対にマッピングするために、上記のように4グループまでの姿勢が生成することができる。すなわち、最初に有向線aa'を有向線AA’にマッピングすることに基づくグループ1、最初に有向線aa’を有向線A'Aにマッピングすることに基づくグループ2、最初に有向線bb'を有向線BB’にマッピングすることに基づくグループ3、および最初に有向線bb’を有向線B’Bにマッピングすることに基づくグループ4。姿勢決定プロセスの以下の説明においては、グループ1がプロセス700のステップの例として用いられる。したがってこのプロセスは線分対に基づいて3個の直交ベクトル(U、WおよびV)を構成し、Uは正規化されたA2B2である。
B2=(B + B’)/2(線分BB'の中点)である場合
A2= A + ((AB2)ドット積(AA’))AA’ / (|AA'|*|AA'|)(これはポイントB2のAA’への投影である)
Wは正規化された(A2A’)である。
VはWとUのクロス積である。
A2は図10に示すようにU、WおよびVによって定義される新しい座標系の原点である。
【0051】
この場合、移動量は-A2である。すなわち移動行列T1は-A2に基づいており、回転行列は次によって定義される。
【数1】
【0052】
U、WおよびVは直交ベクトルなので、M1_inverse= MiT= [U W V]。
同様に、検出された線分対に基づき3個の直交ベクトル(U’,W’,V’)が構成することができる。
【数2】
【0053】
T2は-A2に基づいている。M1* T1をモデル線分対AA’およびBB’に適用し、M2 * T2を検出された線分対に適用すると、マッピングされたAA'とマッピングされたaa'はいずれも新しい座標系のz軸上にある。
【0054】
プロセス700の次のステップは、z軸に沿って回転および移動させて適切な姿勢を生成することである(ステップ720)。これは、検出された線bb'をモデル線BB’とほぼ平行になるようにマッピングする姿勢を生成するステップを含む(ステップ722)。
【0055】
z軸までの距離が最短の線BB’上のポイントP1(x1,y1,z1)が得られる。ポイントP0がポイントP1のz軸への投影であり、座標(0,0,z1)を有すると仮定すると、P0P1は線BB'とz軸の双方に対して垂直である。
【0056】
図11に従い、ポイントb2は変換M2 * T2の適用後に示されており、新しい座標系のx軸上にある。
【0057】
線bb’上のポイントb1およびz軸上のポイントb0は、モデル線分を用いてポイントP1およびポイントP0 と類似の方法で検出できる。ポイントb0はポイントb1 と同じz値を有し、b0b1はbb'とz軸の双方に対して垂直である。ポイントb1 は座標(xb1,yb1,zb1)、ポイントb0は座標(0,0,zb1)を有すると仮定する。次のステップはポイントb1 をz軸に沿って回転して移動することにより、線P0P1上の位置b1_newに動かすことである。
(|P0P1|> 0)および(|b0b1| > 0)のとき
fabs(|P0P1|- |b0b1|)<distanceToleranceであるならば、
b1_newは座標(x1* |b0b1| /|P0P1|,y1 * |b0b1| /|P0P1|,z1)を有する。
【0058】
b1_newは線P0P1上にあるから、この運動は(以下に記すステップ730を用いて)候補姿勢を生成し、変換された検出された線bb’は、XY 平面に投影後はモデル線BB'に対して平行である(図12に示す)。
【0059】
fabs(|P0P1| + |b0b1|)< distanceToleranceであるならば、図13に示すように、別のb1_new 位置:(-xi *(|b0b1| /|P0P1|,-yi * (|b0b1| /|P0P1|),z1)が存在する。
(|P0P1| == 0)(すなわち線BB’は新しい座標系でz軸と交差する。B2は線BB上にもあり、B2はx軸にあるから、線BB'はXZ平面上にある)のとき、(|b0b1| < distanceTolerance)であるならば、ポイントb1_newに対して次の2個の位置が存在する(これらは| b0b1| == 0のときは同じである)。
一方の位置は(0,|b0b1|,z1)
他方の位置は(0,-|b0b1|,z1)である。これら2個の離散的な位置は図14に示されている。
(|P0P1| > 0)であるが、(|b0b1| = 0)であるならば、
z軸に沿った回転角度はベクトルB→B’およびベクトルb→b’によって決定することができる。これら2個のベクトルをXY平面に投影すると、回転により投影されたベクトル(b→b’)は投影されたベクトル(B→B')に対して平行になる。この向きは図15に示されている。
【0060】
次に、候補姿勢決定プロセス700に従い、ポイントb2 を(検出された線分 bb’から)新しい座標系の線BB’に置く姿勢が生成される(ステップ 724)。この場合、b2 は新しい座標系で座標(xb,yb,zb)を有すると仮定される(線 aa’およびベクトルW’はz軸に沿って位置決めされている)。ポイント b2 から z軸までの距離をd、線BB'からz軸までの最短距離をDとする。z軸に沿って回転して移動すると、マッピングb2からz軸までの距離は依然としてdでなければならない。
【0061】
d < Dであるならば、z軸に沿って回転して移動することによってb2を線BB’に動かす解決策は存在しない。次の距離が閾値内にあるならば、
(D-d)<distanceTolerance
【0062】
上記のプロセスステップ722を用いて、マッピング後に線bb’を線BB'に対してほぼ平行に置く適切な姿勢が生成することができる。この場合、新しい姿勢は生成されていない。
【0063】
dがDにほぼ等しければ、1つの解決策が存在する。d > Dであるならば、2つの解決策が存在する。すなわち線BB’上にz軸に対してdと同じ距離を有する2個のポイントがある。
【0064】
ステップ730により、b2の各々の新しい位置から対応する姿勢が得られることについて、以下に説明する。このステップではz軸に沿った回転が計算され、変換が結合されて適当な候補姿勢を導出する。
【0065】
この場合、z軸に沿って回転して移動することによりポイントP(x,y,z)をポイントP new(x new,ynew,z new)に変換することを要求したと仮定する。この変換は次のように書き表される。
M3= Mt * Mr
最初に、P(x,y,z)をPm(x new,y new,z)に変換するMtを解くことができる。なぜならz軸のみに沿って回転させるための回転行列には2個の変数(cosθとsinθ)しかなく、また次の制限もあるからである。
x*x + y*y=x new*xnew + y new*y new
移動Mtはベクトル(0,0,z new-z)に基づいている。
【0066】
次いで、最終的にすべての変換を一緒に結合して、各々の適当な候補姿勢(モデル線分から検出された線分への変換)が次のように得られる。
T1_inverse * M1_inverse * M3_inverse *M2 * T2
【0067】
上述したようにより一般的には、またプロセス全体200(図2)のステップ250に関連して述べられたように、上で導出されたすべての候補姿勢を粗く(および比較的迅速に)採点して、可能な候補姿勢の数をプロセスによって合理的に処理される数に切り詰める効率的な技術は、モデル線分の周囲に与えられた許容範囲の幾何学的「パイプ」を定義する一般的技術を採用できる。検出された線分の端点の全部または所定の(および場合により相当な)割合がパイプ内にあれば、モデルと検出された線分との間の候補姿勢は精緻な採点のために保持される。所定の割合 の(たとえば1以上の)端点がパイプからそれると、その候補は廃棄される。この原理は図16および図17に図示されている。図16に示されているように、モデル線分(破線1630)は1対の端点1620、1622と所定の許容直径範囲DPを有する仮想の「パイプ」1610(仮想図で示す)によって囲まれている。もちろん、パイプを定義するために多様なパイプ断面(たとえば四角形、多角形、円形、楕円形など)を採用できる。検出された線分1650はパイプ内にある。検出された線分1650は、パイプ1610の端部1620、1622と概ね合致する互いに反対側の端点1660、1662を有する。検出された線分1650とモデル線分1630との間にある程度の傾きが図示されていて - しかしながら、実行時線分1650 は依然として完全にパイプ1610内に包含されている。この特徴は許容範囲内にあり、それゆえ全候補姿勢の受入れ可能な部分を提供する。反対に図17に示されているように、検出された線分1720の端点1730、1732はパイプ1610から出ており、それにより受入れ不能な候補姿勢を示している。
【0068】
マッピングされた3Dポイントがモデル線パイプの内部にあるかどうかを効率的にチェックするために、不可欠なデータを含んだルックアップテーブルが事前に計算してもよい。例示的な実施態様においてパイプの断面は方形として定義されてよく、その寸法はユーザ/システム指定の許容距離範囲に依存してよいことに留意されたい。このような例示的なルックアップテーブルは、対象ポイントがモデル線分の許容範囲内にあるかチェックするのを助け、また各モデル線分の識別子(ID)を許容範囲内にあるポイントからの距離と一緒に返すために使用できる。このようなルックアップテーブルの使用は、上述した候補姿勢決定プロセス700に従って生成された候補姿勢の採点に関連して説明される。
【0069】
粗い(すなわち高速または迅速な)採点プロセスは、候補姿勢のセットをプロセッサによって合理的に処理することができるサイズに効果的に切り詰めることができる。この時点で、ステップ260および270に従い切り詰められた候補セットに、よりプロセッサ集約型の細かい採点が適用されて、オブジェクト110の最終姿勢またはアライメントを生成できる。例示的な実施態様は粗い採点プロセスと細かい採点プロセスの2段階を想定しているが、これらの採点ステップを結合して単一の採点プロセスとして「採点プロセス」と総称してよいことに留意されたい。同様に、採点プロセスは類似のまたは異なる計算/処理オーバーヘッドを有する多数の(3以上の)採点ステップからなってもよい。したがって採点プロセスという用語は、一般に1〜N個の離散的な採点ステップを含むプロセスを意味する。さらに、粗い(迅速な)採点と細かい(精緻な)採点を可能にする多様な代替的プロセスまたは重複プロセスがあり、そのうち幾つかのものについて以下に詳細に述べる。
【0070】
1. 検出された3D線対の端点を用いる採点
この採点プロセスは、1対の検出された線と1対のモデル線によって生成される各々の姿勢に適用される。得点は、この検出された線対から生成された姿勢に基づくマッピングの後で、(上記の)モデル線パイプ内にある検出された線対の端点の数である。
【0071】
この得点が4未満である場合、 - この例では与えられた姿勢を用いたマッピングの後で、検出された線対の少なくとも1個の端点がモデル線パイプ内にないことを意味し、 - 生成された姿勢は直ちに廃棄される。この技術は上述したような粗い採点として使用できる。
2. すべての検出された3D線の端点を用いる採点
この採点プロセスでは得点は次のように定義される。
得点 = Σ長さ(線(i))
ここでは各々の検出された線(i)について、与えられた姿勢を用いたマッピングの後で、線(i)の2個の端点が同じモデル線パイプ内にある。この技術は、以下に述べるように候補姿勢を切り詰めた後で、精緻な採点の最初の部分であってよい。
【0072】
3. すべての検出された3Dポイントを用いる採点
この採点プロセスにおいて、変数NumlnPipe は、与えられた姿勢を用いたマッピングの後でモデル線分のパイプ内にある検出された3Dポイントの数である。変数Numlnlnterior は、与えられた姿勢を用いたマッピングの後で部品本体の内部にある検出された3Dポイントである。したがって得点は次のように定義される。
得点 = NumlnPipe - 4* Numlnlnterior
この例示的な採点プロセスに従い、部品の内部に検出された3Dポイントは得点に不利に影響する。このプロセスは、以下に述べる全採点プロセスに従い、粗い採点の後で線の精緻な採点に使用して候補姿勢/線分の数を切り詰めることができる。
【0073】
4. モデル一致得点を用いる採点
モデル一致得点は、以下に詳細に述べる全採点プロセスで使用されて、与えられた姿勢を用いたマッピングの後で検出された3Dポイントによってカバーされるモデル線分のパーセンテージを表す。この実施態様では、モデル一致得点を計算するプロセスは、図18に図示されているような3Dルックアップテーブル1800を使用することに基づいている。
【0074】
このルックアップテーブル1800の全サイズは、例示的な実施態様におけるオブジェクトのサイズに依存し、各次元は一様なビン1810に分割されている(たとえば60mm × 60mm × 60mmの参照オブジェクトに対するビンサイズとして2mm × 2mm × 2mm を使用できる)。図示された例示のルックアップテーブル1800において、破線1820はルックアップテーブル1800のそれぞれのビン1810を通過するモデル線を表す。
【0075】
この採点プロセスに従い、モデルルックアップテーブル内の各ビンについて、
(a)ビンを通過するモデル線分があれば、ビンの値は1とする。
(b)ビンがオブジェクトの内部にあれば、ビンの値 は-4とする(部品内部にあるポイントに対するペナルティーを用いる)。さもなければ
(c)ビンの値は0とする。
【0076】
一実施態様において、採点中に遭遇する何らかのノイズは許容距離範囲の値を適用することによって対処できる。一実施態様において3*distanceToleranceの値が使用される。すなわち、マッピングされたポイントが本体内部にあるが、部品表面から3* distanceTolerance未満ならば、このビンに対してペナルティーは適用されない。
【0077】
与えられた姿勢を用いてすべての検出された3Dポイントをマッピングした後、採点プロセスは次のように、モデルルックアップテーブルと同じサイズで別のルックアップテーブルを構成する。
【0078】
検出およびマッピングされた3Dポイントに対するルックアップテーブルの各ビンについて、
(a)1個の検出およびマッピングされたポイントがこのビン内にあれば、このビンの値はlとする。
(b)1個の検出およびマッピングされたポイントがすぐ隣のビン内にあり、かつ対応するモデルルックアップテーブルのビンの値が0より大きければ、このビンの値 は1とする。さもなければ
(c)このビンの値は0とする。
次に、上で導出されたすべてのビンに対する全モデル一致得点は、一般に次式によって特徴付けることができる。
【数3】
【0079】
5. 採点プロセスの結果の結合
図19のフローチャートに、姿勢の細かい採点プロセス1900がさらに詳細に示されている。このプロセス1900は、上にそれぞれのセクション1〜4で説明した各々の採点プロセスに様々に関係している。最初にステップ1910において、プロセス1910は1以上の端点がモデルパイプの外にあるセットを取り除いて線分のセットを切り詰め、これにより候補姿勢および関連する検出された線分の数を実質的に切り詰める。これは上述した図2の全アライメントプロセスにおける粗い採点ステップ250に対応している。線分の切り詰められたセットが細かい採点プロセス(図2のステップ260)に提供されるが、これは上記セクション2〜4の採点プロセスを用いる。次にプロセス1900は、ステップ1920で上記セクション1のプロセスに従い検出された線の端点を用いて得点を計算する。生成された各々の姿勢に対して1個の得点が計算される。例示的な実施態様において、最高得点の128姿勢が特定される。次のステップ1930は、上位128姿勢の各々について(上記セクション4のプロセスで説明されたように)モデル一致得点を計算する。例示的なプロセス1900は上記セクション2のプロセスに従い、すべての検出された3Dポイントの得点も計算する。次に上位128姿勢はそれらのモデル一致得点によって仕分けられ、128姿勢から最高のモデル一致得点を有する(この実施態様では)上位8姿勢が選択される。この実施態様では上位128 候補姿勢を決定するために3Dモデル一致得点が用いられるが、それはモデル一致得点が正規化された得点であり、シーン中の3Dポイントの密度に依存しないからである。むしろすべての(または所定の割合の)3Dポイントの得点は、3Dポイントの密度に依存する。紛らわしい画像において、より多くの3Dポイントがある(たとえばカメラ上のラベル文)幾つかの不正確な姿勢について、すべての検出された3Dポイントの得点は、この部品の正確な姿勢に対応する得点より高いことがある。このようにして例示的な実施態様において、最初のステップとして候補姿勢のより大きいグループをフィルタ処理するためにモデル一致得点を用いると、最も有望な姿勢を保持できる。
【0080】
次にステップ1940で、選択された上位8姿勢について、いずれか1姿勢が最高モデル一致得点(model_coverage_score[0])より著しく小さいモデル一致得点(たとえば比例的に 0.15少ないモデル一致)を有すると、プロセス1900はこの候補姿勢を除去する。この手順は次の疑似コードステートメントによって定義される。
(j = l; j < 8; ++j)について
(model_coverage_score[j] < model_coverage_score[0] - 0.15)ならば姿勢 jを除去する。
【0081】
次に、プロセス1900はステップ1950で残った上位候補姿勢(この実施態様では姿勢の数≦8)を精緻化し、各々 精緻化された各姿勢に対して上記セクション3の採点プロセスに従いすべての検出された3Dポイントを用いて各候補姿勢の得点を計算する。
【0082】
次に、プロセス1900はステップ1960に従い、最初の1以上の高得点の候補3D姿勢(ステップ1930)とより精緻な上位候補姿勢との組み合わせから、高得点の候補3D姿勢を選択する。それにより選別グループにおける候補姿勢の総数はこの実施態様では16以下となる。このステップは特に上記セクション3の採点プロセスを用いて、この実施態様ではすべての検出された3Dポイントを用いて最高得点の候補姿勢を選択する。このようにして高得点候補姿勢は、それらの3Dポイントより大きいセットとの対応に従って−または該当する場合は、配列された種々のカメラからの最初の2D画像ポイントに戻って(図2の全アライメントプロセス200のステップ270参照)、検証することができる。
【0083】
高得点の精緻な候補3D姿勢を選択したら、次にプロセス1900は決定ステップ1962において、ステップ1960からの選択された高得点の候補3D姿勢がモデルと十分対応しているかどうかを、その姿勢に対するモデル一致得点が所定の閾値を超えているか判定することによって決定する。この実施態様ではモデル一致得点閾値は0.25もしくは25%より大きい。もしこれを超えたら、高得点姿勢はステップ2162によりアライメント解決策として返される(ステップ1964)。もしモデル一致閾値を超えなければ、決定ステップ1962 はさらに決定ステップ1966に分岐する。次にプロセス1900は、モデル一致得点が低い閾値値(この実施態様では0.1)より大きいか、かつ画像特徴一致得点は高い閾値(この実施態様では0.6)より大きいか決定する。この「画像特徴一致」は、一般に候補3D姿勢とマッチする検出された3Dポイントの割合であると定義される。
【0084】
このプロセスは本質的に、ポイントが各々の候補姿勢に対する種々の特徴内でモデルポイントといかに一致するかを検証することに留意されたい。例示的な実施態様に示すように、このステップは3次元ポイントを使用でき、または代替として個々のセンサからの2次元ポイントの個別的セットに基づくことができる。このような場合、センサの像面視野に対応するモデルポイントは2次元で比較される。このプロセスがより高い処理オーバーヘッドを必要とし、そしてこれが有利にはより小さいグループの候補姿勢(たとえば16姿勢)でのみ行われるので、受け入れられる見込みがほとんどない姿勢の大きい候補グループに相当な処理能力を使用することが避けられることは明らかなはずである。細かい採点プロセスで各々の姿勢が採点されたら、十分高い全得点を有する1以上の姿勢がオブジェクトに対する高得点姿勢/アライメントとして出力される。より一般的に、このステップによって決定される画像特徴一致は離散的に、与えられた姿勢に適合する検出された3Dポイントの割合を表す。これによりこのステップは以前の知識を活用し、当該部品が紛らわしくない背景の中にあり、検出された3Dポイントのほとんどが姿勢とよく適合する場合は、たとえ対応するモデル一致得点が低くても、検出された高得点の3D姿勢が正しい姿勢であるという確信はより大きい。このシナリオがおこり得るのは、オブジェクトの望ましくない視野方向、オブジェクト特徴の遮蔽などのためである。このステップはモデル一致得点がより正確であり、発生する遮蔽がより少ない場合は用いられない(この場合ステップ1962は単に最終姿勢を返す)。したがって画像特徴一致得点が閾値を超え、最小モデル一致得点が存在する場合は、決定ステップ1966は高得点姿勢をアライメント解決策として返す。代替的に姿勢によって一方または両方の閾値が満たされない場合は、最終姿勢はアライメント解決策ではなく、システムはオブジェクトを位置合わせすることに失敗した(ステップ1970)。
【0085】
上記の粗い採点プロセスと細かい採点プロセスは当業者には明らかな別の技術で置き換え得ることが明確に考えられていることに留意されたい。代替的な実施態様において、各々の候補姿勢を採点するために、より多い、またより少ないプロセスもしくはプロセスタイプを使用できる。同様に、各ステップで使用される候補姿勢の数もきわめて可変的である。確信が高ければ高いほど、ステップで使用される姿勢は少なくプロセスが促進される。同様に種々の実施態様において、システムの堅牢性を増すためにより多くの姿勢を使用できる。同様に、与えられた範囲内にある複数の最終姿勢が解決策として返されて、追加的な精緻化ステップにより平均化され、または作用を受ける事例もあり得る。すべてのケースにおいて精緻化された最終姿勢は、さらに該当する場合たとえば実行時間およびモデル2Dおよび3D画像を用いて検証することができる。より具体的には、評価された姿勢に基づいて2D画像をチェックして、適切な画像位置に部品の期待された特徴があるか決定できる。
【0086】
別の実施態様では線分(または他のタイプのHLGS)の切り詰めに続く姿勢の精緻化は迂回または省略され得ることが明確に考えられている。これは最初の対応ステップにおいて、個々の候補姿勢にわずかなばらつきがあるものの、採点閾値が適当な全体的アライメント精度を提供するのに十分であることを前提とする。このような場合は、諸候補の値が平均化され、最高得点の姿勢が出力することができるか、または他の技術を用いて最終姿勢を出力できる。
【0087】
さらに別の実施態様に従い、オブジェクトは評価された姿勢に基づいて取得された画像に投影され、システムはこれらの視野からどれだけ多くのモデル線が特定されるか決定できる。この実現において、プロセスはオブジェクトの視野から観察できるモデルルックアップテーブルのビン(モデル一致得点の計算で用いる基準を導出するために使用)を計数するのみである。これによりプロセスは、オブジェクトが遮蔽され、またはオブジェクトの部分が一部それぞれの画像の外にあるにもかかわらず、より高いモデル一致得点を提供することが可能になる。
【0088】
採点プロセスのさらに別の実施態様において、黒い本体のコーナ付近にある(通過するモデル線がない)モデルルックアップテーブルのビンは、1の値(または 等価の値)に設定して、明確に識別可能な線分または他のHGLSに分解されない丸いオブジェクトコーナを補償できる。
【0089】
一般に、本明細書に記載された採点プロセスは、候補姿勢の数を狭めてオブジェクトの1以上の高得点姿勢を選択するために可能な様々な技術の例として受け取られるべきである。
【0090】
上述したことから、オブジェクトの6自由度の3Dアライメントを決定するための堅牢で正確なシステムおよび方法が、例示の実施態様によって提供されることは明らかなはずである。このシステムおよび方法は精度を最大化する一方で、処理オーバーヘッドを減らし、典型的に困難で処理時間のかかる操作の速度を増す。この技術は、種々の有利な地点に配置された多数の3Dセンサからの画像およびポイントクラウドが結合され、集合的に採点されて、最も正確なアライメント結果を得ることを直ちに可能にする。本明細書に記載された技術は顕著な特徴を抽出する能力を含め、アライメントプロセスの能力を著しく高めて、雑然とした背景または紛らわしい背景(他のオブジェクトが存在し、またはステージが種々の幾何学的パターンを備えているためビジョンシステムがそれらのパターンをオブジェクトの一部と錯覚する)の中にあるオブジェクトを特定する。オブジェクトの位置合わせに3D特徴を使用することは、このような紛らわしいおよび/または雑然とした背景要素およびパターンを識別する能力を高める。
【0091】
再び要約するために、例示的な実施態様に従う一般化された3Dアライメントプロセス2000を図20に示す。プロセス2000は最初に、1以上の3Dセンサおよび関連する一体的なまたは別個の処理要素を用いてシーンの3D表現を生成する(ステップ2010)。このシーンはアライメント用に1以上のオブジェクトを含むことができる。同様に、このシーンは分解可能なオブジェクトを含まないこともあり、その場合プロセス2000はその後で「オブジェクトなし」または「良好な姿勢なし」という応答を返す。次にプロセス2000はステップ2020で、上述したように3D表現から検出された3D HLGSの形で特徴を抽出する。代替的な実施態様では、3Dセンサシステムは所望のタイプの検出された3D HGLSをより直接的な形で直接提供するように適合され得ることが考えられている。換言すれば、3Dセンサシステムは、(典型的にポイントによって構成される)表現から特徴抽出によって検出された3D HLGSを生成するのではなく、検出された3D HLGSを出力する。それゆえ3Dセンサシステムが検出された3D HLGSを 直接生成するこのような代替的配列を示すために、ステップ2010と2020は破線ボックス2022によってグループ化されている。
【0092】
次に、ステップ2030において、検出された3D HLGSは(多様な機構によってシステムに提供される)モデル3D HLGSに対応させられて、3D表現(または直接生成される検出された3D HLGS)が導出されるシーン内に、1以上のオブジェクトの1以上の候補3D姿勢を生成する。次に1以上のオブジェクトの生成された3D姿勢は、本明細書において様々に述べた採点プロセスを用いて採点される(ステップ2040)。ステップ2050 では、(粗い採点、細かい採点および/または検証などの組み合わせから導出できる)得点に基づいて、具体的な高得点姿勢が3Dアライメント解決策として選択される。反対に、十分高得点の姿勢がない場合は、否定的な結果に終わり、オブジェクトは検出されず、および/またはアライメントは提供されない。本明細書中で想定されている機能およびプロセスの中でも特に採点プロセス、特徴抽出プロセスおよび3D表現の取得は、上記の種々の実施態様に従って行われ得る。
【0093】
以上、本発明の例示的な実施態様を詳細に説明した。本発明の精神および範囲を逸脱することなく、種々の変容または追加を行うことができる。上述した種々の実施態様は各々他の記述された実施態様と組み合わせて多数の特徴を提供できる。さらに、以上に本発明の装置および方法の多数の個々の実施態様が記述されているが、これらは本明細書において単に本発明の原理の例示的な応用にすぎない。たとえば、粗い採点ステップの後、細かい採点プロセスで候補姿勢を精緻化するのに先立ち、処理オーバーヘッドの少ない粗い切り詰めステップを追加して、候補姿勢の数をさらに減らすことが可能であり、これにより処理オーバーヘッドをさらに減らすことができる。さらに、「高い」という用語や程度を表す他の表現を用いる場合、これらは単に便宜上のものとして受け取られるべきである。たとえば「高得点」の値は、必ずしも最高の絶対数ではなく最小数、または程度を区別する他の測定基準によって定義することができる。また、HLGS 特徴の抽出に先立って、画像の強調および/または前処理のために様々な周知の技術を用いることができる。さらに、本明細書に記載された種々のステップおよびプロセスは、多数のスレッドおよび/またはプロセッサと並列処理されて、全アライメントプロセスを実行するのに必要な時間を短縮できる。種々の実施態様において、この追加的な並列処理は特に特徴を際立たせ、対応プロセスを速めるのを助ける。また、本明細書に記載されたシステムおよび方法は、照明、光学的フィルタ処理および/または具体的なオブジェクトおよび/またはカメラ配列にとって最良の撮像環境を提供するように適合されたステージ画面を使用できることが明確に考えられている。同様に、3Dポイントクラウド形成、特徴抽出、対応および精緻化技術は、特徴を識別するのに適当である場合にはピクセル色情報も利用できることが明確に考えられている。より一般的に、1以上の位置合わせされるべきオブジェクトを含むシーンの3D表現は、x,yおよびz の3Dピクセル座標以外のパラメータを代表するデータを明確に含むことができ、これには他の幾何学的および非幾何学的パラメータ、たとえばピクセル強度、色、エッジ方向も含まれるが、これらに限られない。センサおよび/またはプロセッサは、このような情報を提供する従来の技術に従って適合することができる。さらに、本明細書に記載されたシステムおよび方法は、プログラム命令のコンピュータ可読媒体からなる電子的ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組み合わせを用いて実現できる。したがってこの記述は例としてのみ受け取られることを意図しており、本発明の範囲を別途限定することを意図したものではない。
【技術分野】
【0001】
本発明は、参照フレームを基準にしたオブジェクトのアライメントに使用されるマシンビジョンシステムおよび方法に係り、より具体的には3次元参照を基準にした部品のアライメントのためのシステムおよび方法に関する。
【背景技術】
【0002】
マシンビジョンは多くの近代的な製造プロセスにおいて不可欠の要素となっている。マシンビジョンの1つの具体的な用途は、具体的なコンポーネントもしくはサーフェスのアライメントまたは姿勢を決定して、コンポーネントもしくはサーフェスがツールまたはロボットマニピュレータで操作できるようにすることである。このようなツールまたはロボットマニピュレータは、コンポーネントを掴んで持ち上げ、またはコンポーネントもしくはサーフェスで作業を実施するために、正しい位置に入ることに関する知識を必要とする。たとえば容器からボルトを取り出す部品ピッカーは、ボルトのヘッドの位置と、ボルトを適切に掴んで製造中の装置に設けられた目標ボルト孔に向ける方向に関する知識を必要とする。
【0003】
近年、計算能力が著しく増大したために、製造および他の用途に使用するビジョンシステムの能力と有用性は増した。わずか数年前には利用できなかった能力が、現在では比較的基本的なシステムでも利用できるようになっている。
【0004】
現在商業的に利用できるビジョンシステムは広範な応用においてアライメントを決定するために極めて効果的であるが、典型的には、それらは観測される対象の2次元または「2D」(たとえば、x,y)表現に依拠している。つまり、対象の画像を構成している取得されたピクセルはピクセルの2次元アレーに配置されている。各ピクセルはその(x,y)座標によってアドレス指定することができる。画像中の各ピクセルの値は、カメラ内の対応する検知素子に当る光の量を表すグレースケール値である。このような2次元表現は、xおよびy座標からなる画像フィールド内のモデルを基準にして処理される。しかしながら、多くのオブジェクトのアライメントはそれらのジオメトリおよび表面の配色/陰影のため完全に2次元に分解できるわけではない。多くの場合にオブジェクトの幾何学的な複雑さおよび/または第3の次元に突き出たオブジェクトの要素に関して正確に位置合わせする必要性により、2次元画像の取得に基づくアルゴリズムおよびツール有効性が制限される。その上、多くのオブジェクトは2次元画像ではカメラおよびその関連する画像面に対してごくわずかに傾けただけで非常に異なって見える。したがって1つの向きではシステムによって明確に認識されたオブジェクトのアライメントが、わずかに異なる向きではシステムによく認識できないか、まったく認識できないことがある。
【0005】
今日、大多数の画像システムは、3次元(「3D」)のシーンまたはオブジェクトの2次元画像を取得する。つまり、3次元の幾何学形状はシステムによって2次元画像に分解される。そのシーンまたはオブジェクトが2D画像に投影されると、3Dシーンまたは3Dオブジェクトについてかなりの量の有用な情報が失われる。この失われた情報はシーンまたはオブジェクトの種々の部分がカメラから離れている距離であり、典型的に「奥行き情報」または「奥行きデータ」と呼ばれる。この奥行きデータの損失は、オブジェクトの3D姿勢を正確かつ堅牢に決定するのを著しく難しくすることがある。
【0006】
現在、上述した3Dシーンまたはオブジェクトの3D表現(奥行きデータ)を生成するためにビジュアルデータを取得できる商業利用可能な装置がある。このような装置は本明細書では「3Dセンサ」と呼ばれる。現在使われて普及しているタイプの3Dセンサはステレオカメラヘッドである。ステレオカメラヘッドは一般に所定の、典型的には互いに対して固定された向きに配置されている多数の2Dカメラからなる。各々の2Dカメラは、シーンまたはオブジェクトに対する異なる有利な地点から3Dシーンまたは3Dオブジェクトの2D画像を取得する。
【0007】
3Dセンサは奥行きデータを決定する際に幾つかの技術を採用できる。1つの技術は光パルスの送信と反射した光パルスの受信の間の遅延を測定し、- これは光による検知と測距またはLIDARと呼ばれる技術である。代替例において、奥行きデータを生成するために走査レーザーを採用する構造化された光または装置を使用できる。ある具体的な奥行きデータ決定技術は「三角測量」を採用する。この技術は、シーン中またはオブジェクト上の特徴をそれぞれ各々の2Dカメラから取得された2以上の画像中に特定し、各々の画像における特徴の相対的位置を用いて、その特徴に対する奥行き情報を回復するために三角測量が実行される。ステレオカメラヘッドの具体的な例において、各2Dカメラのアウトプットは実際にはピクセル値(画像)の2Dアレーおよび関連する強度である。ピクセル値の2Dアレーは幾何学的アルゴリズムを用いて結合されて、各ピクセルに対して対応するz(奥行き)値を生成する。各ピクセルに対するz値は、典型的に奥行き画像に記憶される。奥行き画像は典型的に幅と高さの寸法が取得されたグレースケールまたはカラーイメージと等しいが、それらのピクセル値はカメラからの奥行きまたは距離を表す。カメラ次元からの奥行きまたは距離は、あるシーンまたはオブジェクトの3D表現のz要素を提供する。しかしながらz 値を計算するプロセスは、2次元画像のみを取得することと比較して追加の時間を消費する。取得された奥行き画像から、表現の検出された3Dポイントを導出できる。これらの検出された3Dポイントは、後続のプロセスにおいて使用することができる。
【0008】
シーンまたはオブジェクトの3D表現を取得した後、3Dアライメントで残されている課題はシーンまたはオブジェクトの既存の3Dモデルと取得されたシーンまたはオブジェクトとの間の最良の変換を決定することである。モデルは周知のアライメントでシーンまたはオブジェクトの画像を取得することによって提供され得、および/または種々の特徴の位置をデータポイントとして登録することによって合成的に提供することができる。3Dモデルデータと取得された3Dデータとの変換は「姿勢」であり、3Dアライメントの目標である。
【0009】
姿勢計算のための「ブルートフォース」法は、検出された3Dポイントと(許容される任意の技術によって提供された)モデル3Dポイントのセットとの間で可能なポイント対ポイント対応を繰り返し、次に対応する各セットについて検出されたポイントをモデルポイントに最良に位置合わせする姿勢を計算する。現在の3Dセンサによって生成される典型的な3D表現は、3Dポイントクラウドの形式が最も多い。これらの3Dポイントクラウドはしばしば数千個ないし数十万個の3Dポイントを含む。この多数の検出された3Dポイント、そして検出されたポイントとモデルポイントとの間の著しく多数の可能な対応が、ブルートフォース法で姿勢を決定するのを厄介にしている。
【0010】
3Dセンサシステムを用いて急速、堅牢、正確な3Dアライメント解決策を達成することは技術的に困難な問題である。工業環境においてこの解決策は位置合わせされる各オブジェクトについて正確かつ迅速に達成されなければならない。より高出力の計算システムはこの問題と取り組む機会を提供する。したがって、堅牢で、効率的で、信頼でき、また3D画像の取得および処理において直面する追加的な処理オーバーヘッドに対応する、オブジェクトの3Dアライメントのためのシステムおよび方法を提供することが望まれる。このシステムおよび方法は、非常に多様な3Dオブジェクトの正確なアライメントを可能にすべきであり、またそのようなアライメントを製造中の生産ラインまたは他の工業的環境における標準的な操作速度に対応する速度で可能にすべきである。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】米国特許第6,075,881号明細書
【特許文献2】米国特許第6,151,406号明細書
【発明の概要】
【0012】
本発明は、モデル画像データを基準にしてオブジェクトの3次元(3D)アライメント(6自由度)を決定するためのシステムおよび方法を提供することによって、先行技術の欠点を克服する。このシステムおよび方法は、非常に多様なオブジェクトの形状および陰影パターンについて、効率的で堅牢で正確な結果を生み出す。例示的な実施態様において、(たとえば1以上のステレオカメラヘッドからなる)3Dセンサシステムは、3Dセンサがカメラ校正を経た後、そして3Dセンサシステムがオブジェクト視野のワールド3D座標空間を基準にしたワールド校正を経た後、オブジェクトが1以上の有利な地点から位置合わせされるエリアを観測する。3Dモデルは適当な技術によって、システムのアライメントアルゴリズムにより即時使用可能な形でシステムに提供される。このモデルは、対象オブジェクト内の十分な数のエッジおよび/またはその他の明確に分解可能な特徴を提供するように適合してもよい。モデルのトレーニングに続く実行時間の間、3Dセンサシステムは実行時オブジェクトに対する1以上の離散的な有利な地点に位置する1以上の3Dセンサを用いてオブジェクトの3Dポイントクラウドを生成する。一実施態様において、ポイントクラウドは、最初に各カメラから取得された画像を例示のステレオカメラヘッド配列で修正することによって生成される。次に修正された画像は、それらのエッジ特徴を強調するために、たとえばゼロ交差技術を用いて前処理される。それから少なくとも2個(1対)の修正された前処理された画像において、最初の画像上で所定の特徴を特定し、次に同じ特徴を他の画像内に(典型的には各々の画像のゼロ交差に)特定することによって同時にステレオマッチングプロセスが実行される。画像対における各特徴のそれぞれの位置の間の何らかの差異は視差を定義し、これが奥行きとして計算されて結果として生じる奥行き画像に符号化される。次いで各カメラ対について、物理的単位で表された奥行きを有する奥行き画像における視差(非ゼロピクセル値)に基づいて3Dポイントが計算される。それから各カメラ対の3Dポイントを、ワールド校正中に生成されたワールド3D座標空間に変換することによって3Dポイントクラウドが生成される。処理オーバーヘッドを減らして速度を増すために、ポイントクラウドからの3Dデータの量は、より高水準の幾何学形状(HLGS)を抽出することによって削減される。ポイントクラウドはオブジェクトエッジからなるので、ポイントはオブジェクト上の具体的なHLGS、たとえば線分や非直線的な曲線を定義できる。本例では、システムは離散的な線分/曲線を表す3D共線的ポイントに対するクラウドをサーチして、それらを抽出する - 何らかの二重の線分/曲線は除かれる。次に、システムは実行時オブジェクトから検出された1対のHLGS(たとえば非平行な線分)をモデル上の1対のHLGSに対応させて、6自由度の候補姿勢を生み出す。全部または大多数の対応(候補姿勢)は最初のステップで生成することができる。一般に、抽出されたHLGSの種々異なるサブセットは余すところなくモデルのHLGSに対応させられる。各々の候補対応は抽出された特徴のサブセットとモデルとの間のマッピングまたは姿勢を含意する。採点プロセスは粗い採点プロセスを用いて候補姿勢の数を減らすことができる。- たとえば与えられた線分について半径を定義し、対応させられた線分の一方または両方の端点がこの半径の外に出ている対応を排除する。残った候補姿勢はさらに、一層精緻な細かい採点プロセス - たとえば検出された実行時線分がモデル線分と位置合わせされる角度に入れられて、比較的少ない所定の数が残るまでが続けられる。これらの残った候補姿勢は次いで検証プロセスに入れられ、候補姿勢の検出された3Dポイントまたはそれらの2Dポイントへの投影が、より大きいセットの対応する3次元またはそれらの2次元モデルポイントへの投影に適合されて、最も近いマッチが所望のアライメント解決策を提供するために許容することができる高得点姿勢として生成される。
【0013】
多数の実施態様において、本システムおよび方法は、双眼ステレオカメラヘッドに配置された2D画像センサまたはL字形三眼ステレオカメラヘッドを含む多様な3Dセンサ配列を採用し得るが、これらに限られない。3Dセンサはオブジェクト視野/アライメントエリアに対する複数の有利な地点に設けることができる。これら複数の3Dセンサからのデータは、観測されるオブジェクトの振動または運動により異なるセンサから取得された画像データのミスマッチが起こるのを避けるために、実質的に同時に取得される。3次元 HLGSデータは線分、微小エッジ、アーチ、スプライン、ファセットなどを含む多数の幾何学的特徴に基づいてもよい。
以下に本発明を添付の図面に基づいて説明する。
【図面の簡単な説明】
【0014】
【図1】本発明の実施態様に従い複数の例示的なステレオカメラヘッドを用いてオブジェクトの3次元アライメントを決定するためのシステムの図である。
【図2】本発明の例示的な実施態様に従う3次元姿勢決定プロセス全体のフローチャートである。
【図3】本発明の実施態様に従いオブジェクトの3次元アライメントを決定するためのシステムに使用する例示の三眼ステレオカメラヘッドの斜視図である。
【図4】線分をHLGS特徴として採用した例示的な実施態様に従うHGLS 検出プロセスのフローチャートである。
【図5】図4の検出プロセスによって検出される線分を示すオブジェクト例の取得された実行時画像のスクリーンショットである。
【図6】線分に対して90度の向きと、図4の検出プロセスで使用するためには問題となり得る線分を示す、図5のオブジェクト例の取得された実行時画像のスクリーンショットである。
【図7】例示的な実施態様に従う候補3D姿勢生成プロセスのフローチャートである。
【図8】当該実施態様にて各々非平行な線分対を定義するモデル例と検出されたHLGSからの候補姿勢の作成および決定について説明するグラフである。
【図9】当該実施態様にて各々非平行な線分対を定義するモデル例と検出されたHLGSからの候補姿勢の作成および決定について説明するグラフである。
【図10】当該実施態様にて各々非平行な線分対を定義するモデル例と検出されたHLGSからの候補姿勢の作成および決定について説明するグラフである。
【図11】当該実施態様にて各々非平行な線分対を定義するモデル例と検出されたHLGSからの候補姿勢の作成および決定について説明するグラフである。
【図12】当該実施態様にて各々非平行な線分対を定義するモデル例と検出されたHLGSからの候補姿勢の作成および決定について説明するグラフである。
【図13】当該実施態様にて各々非平行な線分対を定義するモデル例と検出されたHLGSからの候補姿勢の作成および決定について説明するグラフである。
【図14】当該実施態様にて各々非平行な線分対を定義するモデル例と検出されたHLGSからの候補姿勢の作成および決定について説明するグラフである。
【図15】当該実施態様にて各々非平行な線分対を定義するモデル例と検出されたHLGSからの候補姿勢の作成および決定について説明するグラフである。
【図16】モデル線分とこれに対して検出された線分の例の対応の周囲に描かれた例示的なパイプの斜視図であり、検出された線分は粗い採点プロセスに留められる。
【図17】パイプから逸脱しており、そのため粗い採点プロセスで放棄される検出された線分の例を示す、図16のモデル線分の例示的なパイプの斜視図である。
【図18】各候補姿勢の得点の精緻化において使用されるモデル一致得点を決定するための連続したビンに分割されたルックアップテーブルを定義する3次元空間の斜視図である。
【図19】候補姿勢を採点して、実行時オブジェクトの最終的に選択された高得点の候補3D姿勢/アライメントを生成するために用いられるプロセスステップのフローチャートである。
【図20】本発明の種々の例示的な実施態様に従う基本ステップを含む3D全アライメントプロセスのフローチャートである。
【発明を実施するための形態】
【0015】
I.システムセットアップ
図1は、本発明の例示的な実施態様に従い、観測されるオブジェクト110の3次元アライメントまたは姿勢を決定するためのシステム100の典型的な配列を図示している。この例では、システム100は例示された画像処理システム130と相互に接続された例示の複数の3次元ステレオカメラヘッド120および122を使用する。この例では、画像処理システムはディスプレイ132、キーボード134およびマウスインターフェース136を備えたPCタイプのコンピュータである。PCは適当なビデオ処理コンポーネントを有し、コンピュータ可読媒体に記憶された本発明に従うシステムおよび方法を可能にするプログラム命令を実行する。PCが画像処理装置の1タイプに過ぎないことは、当業者にとって明白なはずである。代替的な実施態様において、処理コンポーネントは直接1以上のステレオヘッドカメラ(または他の3Dセンサ)のハウジング内に設けられてよく、離散的なカメラヘッド/3Dセンサはケーブルによって、および/または無線で処理コンポーネントと通信するように適合させることができる。
【0016】
例示のオブジェクト110は複雑な3次元形状で、暗色の本体(陰影により例示)150、準反射性の金属ブラケット部152および白色または淡色のコネクタ部を有する電子コンポーネントを含んでいる。本体150は複数の連続したエッジ158を含んでおり、これらは一緒になって種々の表面を定義している。ブラケット152とコネクタ154も同様に種々の連続したエッジおよび面を定義している。ブラケット152は本体150の幾つかのエッジを覆って、一層複雑な一連の交差エッジを生み出していることに留意されたい。以下に述べるように、本発明の教示に従い3次元および6自由度で首尾よく位置合わせすることができるオブジェクト110は、交差線の数が多いため位置合わせするには技術的に困難な形状である。しかしながらこの形状はまた複数の離散的な幾何学形状、たとえば線分、微小エッジまたはスプラインに分解することができる多数の連続して伸びたエッジまたは他の明確に分解可能な特徴を呈している。これらのより高水準の幾何学形状(HLGS)は、姿勢データを取得された3次元データにより迅速に対応させることを可能にする。一般に、本発明に従って特定されるべきオブジェクトは、連続した特徴、たとえば線分、コーナ、曲線またはその他のポイントクラウドから分解することができる限定的な形状を含む。
【0017】
この実施態様では、以下に述べるように、視野およびオブジェクト110を異なる有利な地点から撮像するために、1以上のステレオカメラヘッド120および122が用いられている。しかしながら以下に述べる理由でオブジェクト110を追加的な有利な地点で観測するために、追加的な3Dセンサ(ブロック170で表す)が設けられてよい。各ステレオカメラヘッド120および122は、それぞれ1対の2次元(2D)カメラ140、142および144、146を有している。ステレオカメラヘッドはオブジェクトの1対の離散的な画像を創り出すことによって動作する。具体的なステレオカメラヘッドの2Dカメラの間にスペースまたは「ベースライン」を設けることにより、撮像ヘッドはカメラからオブジェクト110までの相対的距離または奥行きを決定できる。ベースラインが典型的に8から12センチメートルであるのに対し、オブジェクト110までの作動距離はこれより著しく長い傾向がある。
【0018】
従来のステレオカメラヘッドに固有の欠点は、センサのベースラインにほぼ平行な視野内のエッジは見えないことである。換言すれば、水平に取り付けたステレオヘッドは、水平面から約±20度の範囲内にあるオブジェクトエッジを正確に特定できない。図1の実施態様では、この欠点は2以上のステレオカメラヘッド120、122を設けることによって一部克服される。一実施態様において、図示された2個のステレオカメラヘッドは異なる有利な地点からオブジェクトを観測する画像軸に向けることができる。これは一方のヘッドには見えないことがあるエッジを取得するのに役立つ。なぜならそれらのエッジは他方のヘッドには識別可能だからである。上述したように、オブジェクト110およびステージ149に対する追加的な有利な地点に2以上のステレオカメラヘッド(または他のタイプの3Dセンサ)(ブロック170)を位置決めできることが明確に考えられている。3Dセンサを種々の角度に位置決めすることにより何らかの見えないエッジに対応できるとともに、オブジェクトに対するヘッドの特殊な向きのためにオブジェクトの一部が遮蔽される結果、取得された全画像にエッジの欠落が生じたらこれを埋めることができる。換言すれば、ステレオカメラヘッドは妨害され、遮蔽された、または他方のヘッドで見ては分解不可能なオブジェクトの部分を観測する。オブジェクト周囲に複数の向きで多数のヘッドを設けることにより、各々異なる視野における収差および不一致は相殺することができる。一般に、1以上の3Dセンサが配置されて、あるシーン(6自由度で位置合わせされるべきオブジェクトを含んでいてもよい)の3D表現の取得を可能にし、以下に詳細に述べるように、そこから3D幾何学的特徴が抽出することができる。
【0019】
一実施態様において、上記背景技術にて説明したように、本明細書中で定義される3Dセンサは、何らかの受入れ可能な機構または技術によってあるシーンの3D表現を生成する任意の装置である。したがって「3Dセンサ」は、固定した、または可変なベースラインに剛性的に取り付けられた複数の(2以上の)2Dカメラ、または各々シーンに対して異なる有利な地点に配置された複数の(2以上の)2Dカメラ(剛性的に取り付けられても、剛性的に取り付けられなくてもよい)を含む。例として、マウント(たとえばカメラをファセットパネルか、またはドームパネルの交差部に組み付けたジオデシックドーム構造)で支持された多数の(3以上の)カメラは3Dセンサとみなすことができる。あるいは大きいグループ内の離散的な対、3重または4重の2Dカメラは、3Dセンサのグループ内における離散的な3Dセンサとみなすことができる。同様に、一実施態様では多数のカメラによって画像を同時に取得することが考えられているが、代替的な実施態様では1以上の2Dカメラが各々動作して多数の画像を時間的に別個に取得し、 - たとえばカメラはロボットマニピュレータに配置され、異なる有利な地点間を移動して各々有利な地点でシーンの画像を取得する。同様に、レンズ配列を用いて種々異なる有利な地点で複数の画像を、時間的に別個に、またはカメラの全視野の別個の部分内で取得する単一のカメラは、3Dセンサとみなすことができる。代替的に、構造化された光ストライプを使用して画像を取得したカメラは、3Dセンサとして実行してもよい。
【0020】
さらに背景技術として上述したように、具体的なタイプの3Dセンサはステレオカメラヘッドである。本明細書中では、「ステレオカメラヘッド」には、複数の2Dカメラが一緒に剛性的に取り付けられた、典型的には相互に校正されるシステムが含まれる。
【0021】
より一般的に、ステレオマッチングは1個の画像中にある特徴を特定し、次に異なる有利な地点から取得された1以上の他の画像に同じ特徴を検出することを伴う(マッチした画像は修正および/または前処理してもよい)。これは画像間の特徴を「対応させる」と呼ばれる。この対応は特にオブジェクトがモザイク状のパターンまたは反復パターン定義する場合は困難な課題である(「対応問題」とも呼ばれる)。ステレオマッチングには、当業者にとって多様な技術、たとえばよく知られているマル=ポギオ=グリムソンのステレオアルゴリズムが利用できる。以下に記すように、例示的な実施態様の対応手順は、フィルタ処理された結果にゼロ交差を検知してエッジを獲得する方法を用いる。このマッチング手順は「希薄」とみなされる。なぜならこの手順は特徴の確信が高いポイントをサーチするからである。
【0022】
各々のカメラヘッド120、122 とカメラ140、142、144、146は実行時プロセスに先立って校正されていることに留意されたい。校正を達成するために、当業者に熟知されている多様な技術を使用できる。一般に本発明に従う正確な3Dアライメントは、システムにおける各3Dセンサの正確な数学的モデルを必要とする。カメラ校正は3Dセンサに対する数学的モデルを決定するプロセスである。工業界では2Dカメラの校正(すなわち内部の幾何学的および光学的カメラ特性(固有パラメータ)と定義されたワールド座標系に対するカメラの位置および/または向き(外部パラメータ)を確立すること)のために多くの技術が知られている。固有パラメータおよび外部パラメータはしばしばカメラ校正パラメータと呼ばれる。例示的な実施態様ではステレオカメラヘッドについて、ステレオカメラヘッドを構成するすべての2Dカメラに対してカメラ校正プロセスが同時に行われる。これはステレオカメラヘッドに対して最も正確な数学的モデルを生じる。
【0023】
より具体的には、カメラ校正は、固有パラメータと外部パラメータを評価することによる画像形成システムのモデル化を含む。カメラの固有パラメータおよび外部パラメータ(カメラ校正パラメータ)は、実行時間中にレンズの歪みを取り除き、観察された2D画像特徴ポイントを3D空間において解釈するために使用される。カメラ校正の精度は直接システムの性能に影響する。例示する1つの校正手順は、視野(図1のステージ149)内の多数の種々異なる向きで提示された平面的な校正オブジェクト(たとえば白と黒の格子縞模様の方形プレート)を使用する。カメラ校正は、観察された2D画像特徴ポイントと平面的なサーフェスで特定された3D特徴に関する特徴対応から、固有パラメータと外部パラメータを評価する。これらの画像/物理的特徴の対応は、ビジョンシステム内で適当なソフトウェアツールを使用して決定することができる。
【0024】
正確な3Dアライメントは、システムにおける3Dセンサの相対的姿勢を知ることも必要とする。システムにおける3Dセンサの相対的姿勢を決定するプロセスは、ワールド校正として知られている。より詳しくは、ワールド校正は、ワールド3D座標空間(本明細書ではステージ149を基準として向けられたx,y、z座標系164として図示されている)に対して、システム(たとえば図示されたカメラ座標系160および162)におけるすべての3Dセンサ(120、122、170)の姿勢を決定するプロセスからなる。ワールド3D座標の具体的な向きは非常に可変的であるが、単一の座標空間または参照フレームを表す。ワールド3D座標空間におけるすべての3Dセンサの姿勢を知ることにより、各センサからの3Dデータを互いに融合することが可能になる。この融合したデータによりオブジェクト110の一層完全な3Dポイントクラウドを獲得することが可能になる。
【0025】
II.モデルトレーニング
例示的な実施態様に従う3Dアライメントは、オブジェクト110の数学的モデルを使用することを必要とする。オブジェクトをモデル化するには多くの方法があり、たとえばCAD モデル、サーフェスモデル、ワイヤーフレームモデル、ポイントクラウドなどを使用する。モデルトレーニングのプロセスは、オブジェクトのユーザ指定モデルを3Dアライメントにとって最適な形に変換することを含む。より具体的には、モデルトレーニングのアウトプットは、例示的な実施態様に従う3Dアライメント手順の種々の部分で即時使用可能に形成されたユーザ指定モデルオブジェクトの数学的モデルである。以下に記すように、この実施態様におけるモデルは一連のより高水準の幾何学形状(HLGS)、たとえば線分、曲線、アーチ、スプラインおよびこれに類するものとして規定されている。
【0026】
例示的な3Dアライメントアルゴリズムは、オブジェクトの分解可能なエッジに基づいて動作する。エッジは1次元的であるため、3D空間に埋め込まれた1D曲線のセットをオブジェクトのエッジのモデル化に使用できる。必ずしもオブジェクトのエッジをすべてモデル化する必要はない。実際、モデル内のエッジの数が増すと、典型的には3Dアライメントのための計算時間が増えて、システム効率の低下を招く。一般に望ましいのは、オブジェクトの最小数の優勢なエッジをモデル化することである。優勢なエッジとは典型的にはオブジェクトでより長く、コントラストがより強いエッジである。最小数のエッジは、オブジェクトの類似の姿勢の曖昧さを取り除くために必要なエッジを含まなければならない。モデルHLGSデータを提供するために様々な技術を使用できる。一実施態様においてHLGSは、際立った3D特徴(HLGS)画像の自動入力または手動入力を用いて、オブジェクトの1以上の取得された画像から合成することができる。別の実施態様においては、特徴は手動で入力されるか、または種々のHLGSに対して物理的測定値および座標を提供することにより合成的に入力される。
【0027】
III.実行時3Dアライメントプロセス
システムの校正およびトレーニングが完了したら、例示のオブジェクト110で実行時アライメントプロセスを行うことができる。ここでは全アライメントプロセスのステップを示す図2のフローチャート200を参照する。このプロセス200は複数のステップからなり、オブジェクトに対する種々の有利な地点に配置された1個または(典型的には)それ以上の3Dセンサから3Dポイントクラウドを生成することで始まる。最初のステップであるオブジェクトの実行時画像の同時取得(ステップ210)と、これらの画像の修正/前処理(ステップ212)については上述した。以下に、実行時オブジェクトに対するアライメントまたは姿勢決定プロセスについて、一般的に図2の各ステップを参照して、特にステレオマッチングを用いてオブジェクトの3Dポイントクラウドを生成するステップ220を参照して詳述する。
【0028】
A. ステレオマッチングおよび3Dポイントクラウド生成
本発明の実施態様は、撮像されたオブジェクトから3D情報を導出する他の技術はカメラの代替配列(たとえば3眼立体視カメラヘッド)および/または 他のタイプの3Dセンサ(LIDARなど)を使用するのに対し、例示的な実施態様はステレオマッチングプロセスを採用することを明示的に考えている。これらのプロセスは一般に、本発明に従いオブジェクトを効果的に位置合わせするのに十分な3Dポイントのクラウドを生成することに向けられている。具体的には、ステレオマッチングを用いて奥行き画像から3Dポイントを生成するプロセスは、多様な技術を使用して達成できる。これらの技術は通常の当業者には十分理解される。この他の背景技術として、ハートレーおよびジッサーマンによる「コンピュータビジョンにおける多重視点ジオメトリ」またはマ、ソアット、コセカおよびサストリーによる「3Dビジョンへの招待」を参照されたい。
【0029】
複数のステレオカメラヘッド(120、122、170)がオブジェクト110に対するそれぞれ有利な複数の地点の各々で使用される場合、オブジェクトが動くことによって撮像の精度が損なわれるのを避けるために、カメラヘッドは同時にオブジェクトの画像を取得する。3Dポイントクラウドを導出するために、上記のステレオマッチングプロセスが行われる。
【0030】
上述したように、本発明の種々の実施態様に従い、オブジェクトの3D画像を取得するために1以上のステレオカメラヘッドを使用することは、そのような3次元画像データを取得するために使用できる多様な撮像技術の1つであることが明らかなはずである。したがって、範囲データを導出し、および/または奥行き画像を生成するための異なる技術的原理に従って動作する3Dセンサを用いて、所望のオブジェクトの3Dポイントクラウドを生成するために必要ならば、上述したステップは置き換えまたは変容できることが明確に考えられている。
【0031】
以下にアライメントプロセス200について詳細に説明する前に、オブジェクトの奥行き画像を取得する際に遮蔽や観測されないエッジの発生を減らすために、本発明の実施態様に従い使用できる「三眼」カメラヘッド/3Dセンサ300を例示した図3を参照する。この3眼立体視カメラヘッド300は3台のカメラ310、312および314を含んでいる。この実施態様におけるカメラは、ベースハウジング320上にそれぞれカメラ 312とカメラ 314および310の間の所定のベースライン BTlおよび BT2でL字構成に配置されている。各々のカメラは画像処理装置(図1の130)と連動している。各カメラ 310、312、314は、それぞれの光線 340、342、344で示されているようにわずかに異なる視角で対象オブジェクト330の同時画像を取得し、これらの画像は画像プロセッサにより、3Dポイントクラウドの導出に関して上述した技術と類似してよい数学的技術に従って結合される。一実施態様において、3眼立体視カメラヘッドにおけるカメラ対で捉えた画像はステレオマッチされてよく、それからポイントがワールド3D座標系にマッピングされるか、または代替的な実施態様において適当なアルゴリズムを用いて3個すべての画像が一度にワールド3D座標系にマッチしてもよい。
【0032】
B. ポイントクラウドからの幾何学形状の抽出
3Dポイントクラウドは数千個、さらには数万個の3Dポイントを有するのが普通である。現在商業利用可能な計算装置を用いてアライメントを行う際に必要な速度と精度を達成するために、処理されるデータの量を減らすことが望ましい。システムによって処理されるデータの量を減らすために、プロセス200はより高水準の幾何学形状(より高い次元性を有する幾何学形状)、すなわち「HLGS」を利用して3Dアライメント(ステップ230)を実行する。この実施態様の3Dポイントクラウド内のポイントはオブジェクト上の分解可能なエッジに対応しており、またエッジは1次元幾何学形状であるため、プロセス200では3Dポイントクラウドから1またはそれ以上の次元性を有する幾何学形状を抽出する。本明細書に記載された実施態様に従って用いられるHLGSは3D線分であり、これらは3Dポイントクラウドから抽出される。以下に述べる3D線分抽出プロセスは3Dポイントクラウド中をサーチして共線的3Dポイントのセットを探す。共線的3Dポイントの各セットが3D線分を決定する。3D線分のセットが決定されたら、これらのセットは二重またはほぼ二重の3D線分を除去するために削られる。別の例示的な実施態様において、抽出プロセスは任意の受入れ可能なHLGS 特徴(種々異なるタイプHLGSの組み合わせを含む)、たとえば線分、微小エッジ、アーチ、スプラインなどを抽出する。たとえばある例示的な実施態様におけるプロセスは、3Dポイントクラウドからの1次元幾何学形状、線分および非直線的な曲線を含むHLGSを抽出できる。
【0033】
各ステレオカメラヘッド(120、122、170)またはカメラ対に対して、プロセス200(ステップ230)は、ポイントクラウドで検出された3Dワールドポイントに適合する3D線分を生成する。これらの線は図4のフローチャートに図示されたマルチステッププロセス400において、各ステレオカメラヘッドおよび/またはカメラ対に対して検出される。最初に、上述したようにワールド3Dポイントが検出される(ステップ410)。次にこの実施態様に従い、図4を参照して一般的に説明されたように、ワールド空間の有効な容積内に適合するすべての3D線分を検出することによって線分検出プロセスが実行される(ステップ420)。単一のステレオヘッドからのすべての3Dポイントは、最初にステップ 422でカメラ対の一方のカメラの修正された2D画像面に逆投影される。2Dポイントは2D画像ポイントとして知られている。以下に、オブジェクト110のビジョンシステムスクリーンショット500(図5)を参照して、2D画像ポイント510の典型的なセットを示す。ポイント510は奥行き画像全体にわたって配置されている非ゼロピクセルを表す。これらの2Dポイントは不規則に配置されているのではなく、シーン中の分解可能なオブジェクトエッジに従っている。それらは逆投影画像中で結ばれたピクセルの薄い(1ピクセルまたは2ピクセルの幅)スレッドを形成する。
【0034】
次のステップは逆投影画像のセットにわたって反復され、各々の逆投影画像に対しては角度範囲にわたって反復される。各々の反復において実行される処理は、最初に逆投影画像を現在の角度範囲に対して前処理することであり、次にそれを以下に述べる2D線検出ツールに渡すことである。現在の逆投影画像における2D画像ポイントのセットはフィルタ処理されて、現在の角度範囲の外に向けられた線分に寄与する何らかの2D画像ポイントを除去する(ステップ424)。これは以下に述べる2D線検出ツールが関係のない線からの2Dポイントを1本の線に結合するのを防ぐ。たとえば、破線の線分620(図6)は典型的なケースである。ここではツールは積極的に、620の上端によって指示されるが、620の下端によって指示された線分の一部ではない幾つかのポイントを含むことがある。2Dポイント前処理ステップ424はそのような関係のないポイントを除去する。
【0035】
次に、残った2D ポイントは、商業利用可能なビジョンシステムツールへのインプットとして2D線を検出するために使用される(ステップ426)。例示の実施態様におけるツールは、コグネックス・コーポレーション(マサチューセッツ州ネイティック)から出ている、いわゆる「PALツール」であってよい。このツールは有用な背景技術として、本発明と同じ譲受人に譲渡された米国特許第6,075,881号「画像からのポイントの共線的セットを特定するためのマシンビジョン法」に詳しく記載されており、その教示内容は参照により本明細書に組み込まれる。このツールは機能と実現の点でハフ直線検出技術に類似しており、ボールグリッドアレーの画像を分析するために使用されてきた。さらに背景技術として、米国特許第6,151,406号「2次元画像データからボールグリッドアレーを特定するための方法および装置」を参照されたい。その教示内容は参照により明確に本明細書に組み込まれる。
【0036】
線分検出ツールは最初に2D平面内に角度の範囲をサーチして、画像中(その範囲内で)最も高密度の線に対応する角度を検出する。次にその角度で発生するすべての線を特定する。最も高密度の線は最大数の2Dポイントに「近い」線である。奥行き画像において画像線は幾つかの種々異なる角度で発生し得るので、ツールは多数回実行されてよく - 各々の実行は固有の15度レンジをカバーする。角度があるレンジの終端に近い(それゆえ次のレンジの始端に近い)線は一般に2度計数されない。15度範囲で最も強い角度が隣接範囲における最も強い角度の10度内にあるときはいつでも、2個の角度のうち1個の角度、すなわち最も高密度の線に対応する角度のみが保持される。残ったすべての角度に対してPALツールを用いて、その角度に対応する2D線を検出する。
【0037】
各々2D画像線分はさらに処理されて、ステップ430、432、434に従い3D線分の最終セットを抽出する。これらのステップは、ボックス428によって示された反復プロセスの一部である。最初の処理ステップは、「希薄」な端部を有する何らかの線分を短縮することである。スクリーンショット500(図5および図6)に示されているように、PALによって生成される線分(たとえば線540)は、ときどき空きスペースの距離を補って、当該線分に属していないことがある最終ポイント(たとえばポイント542)の小さいグループに達する。これらの密度が希薄な端部は除去される。線分の希薄な端部の除去は、次のように行ってもよい。
【0038】
1. 線分のN個の2Dポイントが線分に沿ったそれらの距離に応じて仕分けられる。この例ではリストの最初の要素は距離ゼロを有し、N番目の要素は線分の全長に対応する距離Lを有する。
【0039】
2. (0.1*N)番目の要素の距離が0.2*L であるならば、この線分の始端は希薄とみなされる。なぜなら線分の初期長さの20%(この例で用いる閾値)以上が10% の2Dポイントによってしかカバーされていないからである。
【0040】
3. この線分の他方の端部は、(0.9*N)番目の要素の距離が0.8*L未満である場合に希薄と判定される。
【0041】
4. 希薄と呼ばれる何らかの端部は、仕分けられたリストの希薄な部分で連続する2Dポイント(すなわち希薄な端部における0.1*Nポイント)間の距離を分析することによって整えられる。線分は希薄なポイントの平均ギャップを超える最も内側の中間ポイントギャップでクリッピングされる。
【0042】
クリッピング後、各2D画像線分で残った2Dポイントに対応する3Dポイントが新しい平面に投影されて、さらに処理される(ステップ430)。このステップは逆投影画像中の同じ2D線分に2以上の3D線分が投影されるケースを扱うために例示的に用いられる。新しい平面は、(この例では右の)カメラ140のカメラ原点を含む3個の3Dポイントと、2D画像線分の端点に対応する2個の3Dポイントによって定義することができる。定義により、新しい平面は各々の2D画像線分に対して異なり、逆投影画像の平面に対して実質的に垂直である。3Dポイントは新しい平面に非常に近い位置にある。投影後、結果として生じる2Dポイントは投影されたポイントとして知られている。
【0043】
次にPALツールは投影されたポイントに適合する2D線分を検出するために再び使用される(ステップ432)。代替的に、ハフ類似のアルゴリズムを用いて当業者に明らかな方法で2D 線分を検出できる。このアルゴリズムは上にステップ426で説明したのと類似に操作される。しかしながら実施態様のこのステップでは投影された2Dポイントは、上述したようにフィルタ処理されない。この実施態様ではPAL ツールは15度角度範囲内で実行されて2D線を検出する。
【0044】
投影された2D線分 が検出されてクリッピングされたら、それらはステップ434で3D線分に変換される。これは実施態様では(a)投影された2D 線分の端点に対応する2個の3Dポイントを特定し、(b)これらのポイントが所定の長さ閾値以上に離れていることを確認し(この例では1cm未満の線分は拒絶される)、そして2個の3D端点を用いて3D線分を作成することによって達成される。
【0045】
上述したように、この実施態様では3D線分は各々のステレオカメラヘッド120、122、170(または他のタイプの3Dセンサ)に対して別個に生成される。ステップ440に従い、複数のステレオカメラヘッド/3Dセンサがそれぞれオブジェクト110およびステージ149に対する離散的な有利な地点で使用されるならば、1個のカメラヘッドからの幾つかの3D線分が、1以上の他のカメラヘッドからの線分と同じ物理的特徴に対応するというのはありそうなことである。もし2以上の3D線分が実質的に等価であれば、プロセス400は1個の線分を除いてすべて排除する。2以上の3D線分(またはその他のHLGS)が実質的に等価であるか同一であるなど互いに近いと考えられていることに留意されたい。このような場合は、プロセス400はこれらの線分を融合し、それらの値を平均化するなどして単一の値に結合できる。これは代替の実施態様においてプロセスで使用するための新しい線分として定義される。例示的な実施態様において、保持される線分は最も多くのポイントを有する線分である。2個の3D線分の等価性は、一方の線が他方の線の周囲の小さい円筒空間内にほぼ包含されるかというプロセスによって判断することができる。この仮想円筒の半径はほとんどの定義と同様にユーザ指定のパラメータである。ユーザは小数値(たとえば0.5〜1.0)を用いて、等価線分が比較される他方の線分の円筒内にどれだけ入っていなければならないか規定できる。たとえば小数0.8 は一方の線分の少なくとも80%が、他方の線分を囲む仮想円筒内に含まれなければならないことを示す。等価線分を決定および排除するために他の技術も使用できることが明確に考えられている。
【0046】
例示的な線分検出プロセス400における最後のステップ450は、ステップ440における線分排除の後で、いずれかのステレオカメラヘッド/3Dセンサから最終的な3D線分に近い3Dポイントをすべて特定することである。この実施態様では、ステップ450は、すべての最終的な線分とすべての3Dポイントで反復することによって達成される。種々の実施態様において、ポイントが2以上の線分に近ければ、近いポイントを一方の線分または他方の線分のみに入力する技術が適用することができる。さもなければポイントは両方の線分に付加してもよい。プロセスにおけるこのステップで、すべての3Dセンサの結果は結合されて、オブジェクトの6自由度の3Dアライメントを代表する高得点の候補3D姿勢を特定するために採点される準備ができる。本明細書で用いる「高得点」という用語は、採点プロセスにおいて、3Dセンサの3D表現の対象であるシーン中の1以上のオブジェクトに対して受入れ可能なアライメント解決策として使用できるほどに十分高い得点を獲得する1以上の候補3D姿勢を指すことに留意されたい。実際に高得点姿勢は候補3D姿勢のグループで最良、最高もしくは最上得点の姿勢であってよく、またはその他の受入れ可能な特性を提供する姿勢であってよい。1以上の高得点姿勢は多重ステップ(たとえば粗い、細かいなど)からなる採点プロセスの各ステップで、3Dアライメントプロセスの最後に解決策として用いられる1以上の高得点姿勢として導出することができる。
【0047】
上述した線分検出プロセスは他の線分検出プロセスおよび他のタイプのHLGSで置き換えられることは通常の当業者にとって明らかなはずである。したがってこの実施態様で線分をHLGSとして使用するのは、単に例示に過ぎない。
【0048】
C. 候補姿勢の生成および採点
再びこの実施態様の図2の主要なアライメントプロセス200を参照して、検出された線分(または他のタイプのHLGS)の最終セットが抽出されたら、次にそれらは1対の非平行なモデル3D線分と対応させられる。他のタイプのHGLSが用いられる場合は、この対応は対よりも大きいかまたは小さいグループであってよい。多くの実施態様において対応のベースとして、1次元幾何学形状(非直線的な曲線および/または線分)が使用される。同様に、検出されモデルと対応させるために組み合わされたHLGSのセットは、非平行であるということ以外の理由で向きが異なってよい(たとえば対応する互いからの所定の3D間隔で特定された非直線的な曲線の検出された対と、所定の間隔範囲における非直線的なモデル曲線との対応)。このような対応は各々6自由度の「候補姿勢」のグループを生成できる。堅牢性のために、検出された線分対とモデル線分対のすべての可能な組み合わせがステップ240に従って試みられる。これらの可能なすべての組み合わせは、数百万の候補姿勢を生み出す。プロセス200の速度と効率を増すために、迅速な採点技術を用いて候補姿勢のセットをより合理的なサイズに切り詰める。この時点で精緻な採点が実行することができる。
【0049】
以下に、図7のフローチャートを参照して、候補3D姿勢の決定について詳しく説明する。姿勢決定プロセス700はステップ710で始まり、検出された3D線分は対応する3Dモデル線分と同じ座標系(たとえば3Dワールド座標系)にマッピングされることによって位置合わせされる。図7〜図15の幾何学図を参照すると、それぞれの端点AおよびA’と端点BおよびB’によって示された1対の非平行なモデル線分(モデル線対AA’およびBB’)と、端点 aおよび a'と 端点 bおよび b’を有する検出された線分(検出された線対aa’および bb’)とから候補姿勢を生成する際に用いられる種々のステップが記述されている。モデル線対の例 AA’および BB’は図8に示されており、関連する3D直交座標系(U,W,V)の軸WおよびU上に位置している。同様に、検出された線対の例aa’および bb'は図9に示され、それぞれ関連する直交座標系 U’、W’、V’の軸W’およびU’上に位置している。
【0050】
モデルの非平行3D線対(AA’および BB’)および 検出された非平行3D線対(aa’および bb’)について、検出された線対をモデル線対にマッピングするために、上記のように4グループまでの姿勢が生成することができる。すなわち、最初に有向線aa'を有向線AA’にマッピングすることに基づくグループ1、最初に有向線aa’を有向線A'Aにマッピングすることに基づくグループ2、最初に有向線bb'を有向線BB’にマッピングすることに基づくグループ3、および最初に有向線bb’を有向線B’Bにマッピングすることに基づくグループ4。姿勢決定プロセスの以下の説明においては、グループ1がプロセス700のステップの例として用いられる。したがってこのプロセスは線分対に基づいて3個の直交ベクトル(U、WおよびV)を構成し、Uは正規化されたA2B2である。
B2=(B + B’)/2(線分BB'の中点)である場合
A2= A + ((AB2)ドット積(AA’))AA’ / (|AA'|*|AA'|)(これはポイントB2のAA’への投影である)
Wは正規化された(A2A’)である。
VはWとUのクロス積である。
A2は図10に示すようにU、WおよびVによって定義される新しい座標系の原点である。
【0051】
この場合、移動量は-A2である。すなわち移動行列T1は-A2に基づいており、回転行列は次によって定義される。
【数1】
【0052】
U、WおよびVは直交ベクトルなので、M1_inverse= MiT= [U W V]。
同様に、検出された線分対に基づき3個の直交ベクトル(U’,W’,V’)が構成することができる。
【数2】
【0053】
T2は-A2に基づいている。M1* T1をモデル線分対AA’およびBB’に適用し、M2 * T2を検出された線分対に適用すると、マッピングされたAA'とマッピングされたaa'はいずれも新しい座標系のz軸上にある。
【0054】
プロセス700の次のステップは、z軸に沿って回転および移動させて適切な姿勢を生成することである(ステップ720)。これは、検出された線bb'をモデル線BB’とほぼ平行になるようにマッピングする姿勢を生成するステップを含む(ステップ722)。
【0055】
z軸までの距離が最短の線BB’上のポイントP1(x1,y1,z1)が得られる。ポイントP0がポイントP1のz軸への投影であり、座標(0,0,z1)を有すると仮定すると、P0P1は線BB'とz軸の双方に対して垂直である。
【0056】
図11に従い、ポイントb2は変換M2 * T2の適用後に示されており、新しい座標系のx軸上にある。
【0057】
線bb’上のポイントb1およびz軸上のポイントb0は、モデル線分を用いてポイントP1およびポイントP0 と類似の方法で検出できる。ポイントb0はポイントb1 と同じz値を有し、b0b1はbb'とz軸の双方に対して垂直である。ポイントb1 は座標(xb1,yb1,zb1)、ポイントb0は座標(0,0,zb1)を有すると仮定する。次のステップはポイントb1 をz軸に沿って回転して移動することにより、線P0P1上の位置b1_newに動かすことである。
(|P0P1|> 0)および(|b0b1| > 0)のとき
fabs(|P0P1|- |b0b1|)<distanceToleranceであるならば、
b1_newは座標(x1* |b0b1| /|P0P1|,y1 * |b0b1| /|P0P1|,z1)を有する。
【0058】
b1_newは線P0P1上にあるから、この運動は(以下に記すステップ730を用いて)候補姿勢を生成し、変換された検出された線bb’は、XY 平面に投影後はモデル線BB'に対して平行である(図12に示す)。
【0059】
fabs(|P0P1| + |b0b1|)< distanceToleranceであるならば、図13に示すように、別のb1_new 位置:(-xi *(|b0b1| /|P0P1|,-yi * (|b0b1| /|P0P1|),z1)が存在する。
(|P0P1| == 0)(すなわち線BB’は新しい座標系でz軸と交差する。B2は線BB上にもあり、B2はx軸にあるから、線BB'はXZ平面上にある)のとき、(|b0b1| < distanceTolerance)であるならば、ポイントb1_newに対して次の2個の位置が存在する(これらは| b0b1| == 0のときは同じである)。
一方の位置は(0,|b0b1|,z1)
他方の位置は(0,-|b0b1|,z1)である。これら2個の離散的な位置は図14に示されている。
(|P0P1| > 0)であるが、(|b0b1| = 0)であるならば、
z軸に沿った回転角度はベクトルB→B’およびベクトルb→b’によって決定することができる。これら2個のベクトルをXY平面に投影すると、回転により投影されたベクトル(b→b’)は投影されたベクトル(B→B')に対して平行になる。この向きは図15に示されている。
【0060】
次に、候補姿勢決定プロセス700に従い、ポイントb2 を(検出された線分 bb’から)新しい座標系の線BB’に置く姿勢が生成される(ステップ 724)。この場合、b2 は新しい座標系で座標(xb,yb,zb)を有すると仮定される(線 aa’およびベクトルW’はz軸に沿って位置決めされている)。ポイント b2 から z軸までの距離をd、線BB'からz軸までの最短距離をDとする。z軸に沿って回転して移動すると、マッピングb2からz軸までの距離は依然としてdでなければならない。
【0061】
d < Dであるならば、z軸に沿って回転して移動することによってb2を線BB’に動かす解決策は存在しない。次の距離が閾値内にあるならば、
(D-d)<distanceTolerance
【0062】
上記のプロセスステップ722を用いて、マッピング後に線bb’を線BB'に対してほぼ平行に置く適切な姿勢が生成することができる。この場合、新しい姿勢は生成されていない。
【0063】
dがDにほぼ等しければ、1つの解決策が存在する。d > Dであるならば、2つの解決策が存在する。すなわち線BB’上にz軸に対してdと同じ距離を有する2個のポイントがある。
【0064】
ステップ730により、b2の各々の新しい位置から対応する姿勢が得られることについて、以下に説明する。このステップではz軸に沿った回転が計算され、変換が結合されて適当な候補姿勢を導出する。
【0065】
この場合、z軸に沿って回転して移動することによりポイントP(x,y,z)をポイントP new(x new,ynew,z new)に変換することを要求したと仮定する。この変換は次のように書き表される。
M3= Mt * Mr
最初に、P(x,y,z)をPm(x new,y new,z)に変換するMtを解くことができる。なぜならz軸のみに沿って回転させるための回転行列には2個の変数(cosθとsinθ)しかなく、また次の制限もあるからである。
x*x + y*y=x new*xnew + y new*y new
移動Mtはベクトル(0,0,z new-z)に基づいている。
【0066】
次いで、最終的にすべての変換を一緒に結合して、各々の適当な候補姿勢(モデル線分から検出された線分への変換)が次のように得られる。
T1_inverse * M1_inverse * M3_inverse *M2 * T2
【0067】
上述したようにより一般的には、またプロセス全体200(図2)のステップ250に関連して述べられたように、上で導出されたすべての候補姿勢を粗く(および比較的迅速に)採点して、可能な候補姿勢の数をプロセスによって合理的に処理される数に切り詰める効率的な技術は、モデル線分の周囲に与えられた許容範囲の幾何学的「パイプ」を定義する一般的技術を採用できる。検出された線分の端点の全部または所定の(および場合により相当な)割合がパイプ内にあれば、モデルと検出された線分との間の候補姿勢は精緻な採点のために保持される。所定の割合 の(たとえば1以上の)端点がパイプからそれると、その候補は廃棄される。この原理は図16および図17に図示されている。図16に示されているように、モデル線分(破線1630)は1対の端点1620、1622と所定の許容直径範囲DPを有する仮想の「パイプ」1610(仮想図で示す)によって囲まれている。もちろん、パイプを定義するために多様なパイプ断面(たとえば四角形、多角形、円形、楕円形など)を採用できる。検出された線分1650はパイプ内にある。検出された線分1650は、パイプ1610の端部1620、1622と概ね合致する互いに反対側の端点1660、1662を有する。検出された線分1650とモデル線分1630との間にある程度の傾きが図示されていて - しかしながら、実行時線分1650 は依然として完全にパイプ1610内に包含されている。この特徴は許容範囲内にあり、それゆえ全候補姿勢の受入れ可能な部分を提供する。反対に図17に示されているように、検出された線分1720の端点1730、1732はパイプ1610から出ており、それにより受入れ不能な候補姿勢を示している。
【0068】
マッピングされた3Dポイントがモデル線パイプの内部にあるかどうかを効率的にチェックするために、不可欠なデータを含んだルックアップテーブルが事前に計算してもよい。例示的な実施態様においてパイプの断面は方形として定義されてよく、その寸法はユーザ/システム指定の許容距離範囲に依存してよいことに留意されたい。このような例示的なルックアップテーブルは、対象ポイントがモデル線分の許容範囲内にあるかチェックするのを助け、また各モデル線分の識別子(ID)を許容範囲内にあるポイントからの距離と一緒に返すために使用できる。このようなルックアップテーブルの使用は、上述した候補姿勢決定プロセス700に従って生成された候補姿勢の採点に関連して説明される。
【0069】
粗い(すなわち高速または迅速な)採点プロセスは、候補姿勢のセットをプロセッサによって合理的に処理することができるサイズに効果的に切り詰めることができる。この時点で、ステップ260および270に従い切り詰められた候補セットに、よりプロセッサ集約型の細かい採点が適用されて、オブジェクト110の最終姿勢またはアライメントを生成できる。例示的な実施態様は粗い採点プロセスと細かい採点プロセスの2段階を想定しているが、これらの採点ステップを結合して単一の採点プロセスとして「採点プロセス」と総称してよいことに留意されたい。同様に、採点プロセスは類似のまたは異なる計算/処理オーバーヘッドを有する多数の(3以上の)採点ステップからなってもよい。したがって採点プロセスという用語は、一般に1〜N個の離散的な採点ステップを含むプロセスを意味する。さらに、粗い(迅速な)採点と細かい(精緻な)採点を可能にする多様な代替的プロセスまたは重複プロセスがあり、そのうち幾つかのものについて以下に詳細に述べる。
【0070】
1. 検出された3D線対の端点を用いる採点
この採点プロセスは、1対の検出された線と1対のモデル線によって生成される各々の姿勢に適用される。得点は、この検出された線対から生成された姿勢に基づくマッピングの後で、(上記の)モデル線パイプ内にある検出された線対の端点の数である。
【0071】
この得点が4未満である場合、 - この例では与えられた姿勢を用いたマッピングの後で、検出された線対の少なくとも1個の端点がモデル線パイプ内にないことを意味し、 - 生成された姿勢は直ちに廃棄される。この技術は上述したような粗い採点として使用できる。
2. すべての検出された3D線の端点を用いる採点
この採点プロセスでは得点は次のように定義される。
得点 = Σ長さ(線(i))
ここでは各々の検出された線(i)について、与えられた姿勢を用いたマッピングの後で、線(i)の2個の端点が同じモデル線パイプ内にある。この技術は、以下に述べるように候補姿勢を切り詰めた後で、精緻な採点の最初の部分であってよい。
【0072】
3. すべての検出された3Dポイントを用いる採点
この採点プロセスにおいて、変数NumlnPipe は、与えられた姿勢を用いたマッピングの後でモデル線分のパイプ内にある検出された3Dポイントの数である。変数Numlnlnterior は、与えられた姿勢を用いたマッピングの後で部品本体の内部にある検出された3Dポイントである。したがって得点は次のように定義される。
得点 = NumlnPipe - 4* Numlnlnterior
この例示的な採点プロセスに従い、部品の内部に検出された3Dポイントは得点に不利に影響する。このプロセスは、以下に述べる全採点プロセスに従い、粗い採点の後で線の精緻な採点に使用して候補姿勢/線分の数を切り詰めることができる。
【0073】
4. モデル一致得点を用いる採点
モデル一致得点は、以下に詳細に述べる全採点プロセスで使用されて、与えられた姿勢を用いたマッピングの後で検出された3Dポイントによってカバーされるモデル線分のパーセンテージを表す。この実施態様では、モデル一致得点を計算するプロセスは、図18に図示されているような3Dルックアップテーブル1800を使用することに基づいている。
【0074】
このルックアップテーブル1800の全サイズは、例示的な実施態様におけるオブジェクトのサイズに依存し、各次元は一様なビン1810に分割されている(たとえば60mm × 60mm × 60mmの参照オブジェクトに対するビンサイズとして2mm × 2mm × 2mm を使用できる)。図示された例示のルックアップテーブル1800において、破線1820はルックアップテーブル1800のそれぞれのビン1810を通過するモデル線を表す。
【0075】
この採点プロセスに従い、モデルルックアップテーブル内の各ビンについて、
(a)ビンを通過するモデル線分があれば、ビンの値は1とする。
(b)ビンがオブジェクトの内部にあれば、ビンの値 は-4とする(部品内部にあるポイントに対するペナルティーを用いる)。さもなければ
(c)ビンの値は0とする。
【0076】
一実施態様において、採点中に遭遇する何らかのノイズは許容距離範囲の値を適用することによって対処できる。一実施態様において3*distanceToleranceの値が使用される。すなわち、マッピングされたポイントが本体内部にあるが、部品表面から3* distanceTolerance未満ならば、このビンに対してペナルティーは適用されない。
【0077】
与えられた姿勢を用いてすべての検出された3Dポイントをマッピングした後、採点プロセスは次のように、モデルルックアップテーブルと同じサイズで別のルックアップテーブルを構成する。
【0078】
検出およびマッピングされた3Dポイントに対するルックアップテーブルの各ビンについて、
(a)1個の検出およびマッピングされたポイントがこのビン内にあれば、このビンの値はlとする。
(b)1個の検出およびマッピングされたポイントがすぐ隣のビン内にあり、かつ対応するモデルルックアップテーブルのビンの値が0より大きければ、このビンの値 は1とする。さもなければ
(c)このビンの値は0とする。
次に、上で導出されたすべてのビンに対する全モデル一致得点は、一般に次式によって特徴付けることができる。
【数3】
【0079】
5. 採点プロセスの結果の結合
図19のフローチャートに、姿勢の細かい採点プロセス1900がさらに詳細に示されている。このプロセス1900は、上にそれぞれのセクション1〜4で説明した各々の採点プロセスに様々に関係している。最初にステップ1910において、プロセス1910は1以上の端点がモデルパイプの外にあるセットを取り除いて線分のセットを切り詰め、これにより候補姿勢および関連する検出された線分の数を実質的に切り詰める。これは上述した図2の全アライメントプロセスにおける粗い採点ステップ250に対応している。線分の切り詰められたセットが細かい採点プロセス(図2のステップ260)に提供されるが、これは上記セクション2〜4の採点プロセスを用いる。次にプロセス1900は、ステップ1920で上記セクション1のプロセスに従い検出された線の端点を用いて得点を計算する。生成された各々の姿勢に対して1個の得点が計算される。例示的な実施態様において、最高得点の128姿勢が特定される。次のステップ1930は、上位128姿勢の各々について(上記セクション4のプロセスで説明されたように)モデル一致得点を計算する。例示的なプロセス1900は上記セクション2のプロセスに従い、すべての検出された3Dポイントの得点も計算する。次に上位128姿勢はそれらのモデル一致得点によって仕分けられ、128姿勢から最高のモデル一致得点を有する(この実施態様では)上位8姿勢が選択される。この実施態様では上位128 候補姿勢を決定するために3Dモデル一致得点が用いられるが、それはモデル一致得点が正規化された得点であり、シーン中の3Dポイントの密度に依存しないからである。むしろすべての(または所定の割合の)3Dポイントの得点は、3Dポイントの密度に依存する。紛らわしい画像において、より多くの3Dポイントがある(たとえばカメラ上のラベル文)幾つかの不正確な姿勢について、すべての検出された3Dポイントの得点は、この部品の正確な姿勢に対応する得点より高いことがある。このようにして例示的な実施態様において、最初のステップとして候補姿勢のより大きいグループをフィルタ処理するためにモデル一致得点を用いると、最も有望な姿勢を保持できる。
【0080】
次にステップ1940で、選択された上位8姿勢について、いずれか1姿勢が最高モデル一致得点(model_coverage_score[0])より著しく小さいモデル一致得点(たとえば比例的に 0.15少ないモデル一致)を有すると、プロセス1900はこの候補姿勢を除去する。この手順は次の疑似コードステートメントによって定義される。
(j = l; j < 8; ++j)について
(model_coverage_score[j] < model_coverage_score[0] - 0.15)ならば姿勢 jを除去する。
【0081】
次に、プロセス1900はステップ1950で残った上位候補姿勢(この実施態様では姿勢の数≦8)を精緻化し、各々 精緻化された各姿勢に対して上記セクション3の採点プロセスに従いすべての検出された3Dポイントを用いて各候補姿勢の得点を計算する。
【0082】
次に、プロセス1900はステップ1960に従い、最初の1以上の高得点の候補3D姿勢(ステップ1930)とより精緻な上位候補姿勢との組み合わせから、高得点の候補3D姿勢を選択する。それにより選別グループにおける候補姿勢の総数はこの実施態様では16以下となる。このステップは特に上記セクション3の採点プロセスを用いて、この実施態様ではすべての検出された3Dポイントを用いて最高得点の候補姿勢を選択する。このようにして高得点候補姿勢は、それらの3Dポイントより大きいセットとの対応に従って−または該当する場合は、配列された種々のカメラからの最初の2D画像ポイントに戻って(図2の全アライメントプロセス200のステップ270参照)、検証することができる。
【0083】
高得点の精緻な候補3D姿勢を選択したら、次にプロセス1900は決定ステップ1962において、ステップ1960からの選択された高得点の候補3D姿勢がモデルと十分対応しているかどうかを、その姿勢に対するモデル一致得点が所定の閾値を超えているか判定することによって決定する。この実施態様ではモデル一致得点閾値は0.25もしくは25%より大きい。もしこれを超えたら、高得点姿勢はステップ2162によりアライメント解決策として返される(ステップ1964)。もしモデル一致閾値を超えなければ、決定ステップ1962 はさらに決定ステップ1966に分岐する。次にプロセス1900は、モデル一致得点が低い閾値値(この実施態様では0.1)より大きいか、かつ画像特徴一致得点は高い閾値(この実施態様では0.6)より大きいか決定する。この「画像特徴一致」は、一般に候補3D姿勢とマッチする検出された3Dポイントの割合であると定義される。
【0084】
このプロセスは本質的に、ポイントが各々の候補姿勢に対する種々の特徴内でモデルポイントといかに一致するかを検証することに留意されたい。例示的な実施態様に示すように、このステップは3次元ポイントを使用でき、または代替として個々のセンサからの2次元ポイントの個別的セットに基づくことができる。このような場合、センサの像面視野に対応するモデルポイントは2次元で比較される。このプロセスがより高い処理オーバーヘッドを必要とし、そしてこれが有利にはより小さいグループの候補姿勢(たとえば16姿勢)でのみ行われるので、受け入れられる見込みがほとんどない姿勢の大きい候補グループに相当な処理能力を使用することが避けられることは明らかなはずである。細かい採点プロセスで各々の姿勢が採点されたら、十分高い全得点を有する1以上の姿勢がオブジェクトに対する高得点姿勢/アライメントとして出力される。より一般的に、このステップによって決定される画像特徴一致は離散的に、与えられた姿勢に適合する検出された3Dポイントの割合を表す。これによりこのステップは以前の知識を活用し、当該部品が紛らわしくない背景の中にあり、検出された3Dポイントのほとんどが姿勢とよく適合する場合は、たとえ対応するモデル一致得点が低くても、検出された高得点の3D姿勢が正しい姿勢であるという確信はより大きい。このシナリオがおこり得るのは、オブジェクトの望ましくない視野方向、オブジェクト特徴の遮蔽などのためである。このステップはモデル一致得点がより正確であり、発生する遮蔽がより少ない場合は用いられない(この場合ステップ1962は単に最終姿勢を返す)。したがって画像特徴一致得点が閾値を超え、最小モデル一致得点が存在する場合は、決定ステップ1966は高得点姿勢をアライメント解決策として返す。代替的に姿勢によって一方または両方の閾値が満たされない場合は、最終姿勢はアライメント解決策ではなく、システムはオブジェクトを位置合わせすることに失敗した(ステップ1970)。
【0085】
上記の粗い採点プロセスと細かい採点プロセスは当業者には明らかな別の技術で置き換え得ることが明確に考えられていることに留意されたい。代替的な実施態様において、各々の候補姿勢を採点するために、より多い、またより少ないプロセスもしくはプロセスタイプを使用できる。同様に、各ステップで使用される候補姿勢の数もきわめて可変的である。確信が高ければ高いほど、ステップで使用される姿勢は少なくプロセスが促進される。同様に種々の実施態様において、システムの堅牢性を増すためにより多くの姿勢を使用できる。同様に、与えられた範囲内にある複数の最終姿勢が解決策として返されて、追加的な精緻化ステップにより平均化され、または作用を受ける事例もあり得る。すべてのケースにおいて精緻化された最終姿勢は、さらに該当する場合たとえば実行時間およびモデル2Dおよび3D画像を用いて検証することができる。より具体的には、評価された姿勢に基づいて2D画像をチェックして、適切な画像位置に部品の期待された特徴があるか決定できる。
【0086】
別の実施態様では線分(または他のタイプのHLGS)の切り詰めに続く姿勢の精緻化は迂回または省略され得ることが明確に考えられている。これは最初の対応ステップにおいて、個々の候補姿勢にわずかなばらつきがあるものの、採点閾値が適当な全体的アライメント精度を提供するのに十分であることを前提とする。このような場合は、諸候補の値が平均化され、最高得点の姿勢が出力することができるか、または他の技術を用いて最終姿勢を出力できる。
【0087】
さらに別の実施態様に従い、オブジェクトは評価された姿勢に基づいて取得された画像に投影され、システムはこれらの視野からどれだけ多くのモデル線が特定されるか決定できる。この実現において、プロセスはオブジェクトの視野から観察できるモデルルックアップテーブルのビン(モデル一致得点の計算で用いる基準を導出するために使用)を計数するのみである。これによりプロセスは、オブジェクトが遮蔽され、またはオブジェクトの部分が一部それぞれの画像の外にあるにもかかわらず、より高いモデル一致得点を提供することが可能になる。
【0088】
採点プロセスのさらに別の実施態様において、黒い本体のコーナ付近にある(通過するモデル線がない)モデルルックアップテーブルのビンは、1の値(または 等価の値)に設定して、明確に識別可能な線分または他のHGLSに分解されない丸いオブジェクトコーナを補償できる。
【0089】
一般に、本明細書に記載された採点プロセスは、候補姿勢の数を狭めてオブジェクトの1以上の高得点姿勢を選択するために可能な様々な技術の例として受け取られるべきである。
【0090】
上述したことから、オブジェクトの6自由度の3Dアライメントを決定するための堅牢で正確なシステムおよび方法が、例示の実施態様によって提供されることは明らかなはずである。このシステムおよび方法は精度を最大化する一方で、処理オーバーヘッドを減らし、典型的に困難で処理時間のかかる操作の速度を増す。この技術は、種々の有利な地点に配置された多数の3Dセンサからの画像およびポイントクラウドが結合され、集合的に採点されて、最も正確なアライメント結果を得ることを直ちに可能にする。本明細書に記載された技術は顕著な特徴を抽出する能力を含め、アライメントプロセスの能力を著しく高めて、雑然とした背景または紛らわしい背景(他のオブジェクトが存在し、またはステージが種々の幾何学的パターンを備えているためビジョンシステムがそれらのパターンをオブジェクトの一部と錯覚する)の中にあるオブジェクトを特定する。オブジェクトの位置合わせに3D特徴を使用することは、このような紛らわしいおよび/または雑然とした背景要素およびパターンを識別する能力を高める。
【0091】
再び要約するために、例示的な実施態様に従う一般化された3Dアライメントプロセス2000を図20に示す。プロセス2000は最初に、1以上の3Dセンサおよび関連する一体的なまたは別個の処理要素を用いてシーンの3D表現を生成する(ステップ2010)。このシーンはアライメント用に1以上のオブジェクトを含むことができる。同様に、このシーンは分解可能なオブジェクトを含まないこともあり、その場合プロセス2000はその後で「オブジェクトなし」または「良好な姿勢なし」という応答を返す。次にプロセス2000はステップ2020で、上述したように3D表現から検出された3D HLGSの形で特徴を抽出する。代替的な実施態様では、3Dセンサシステムは所望のタイプの検出された3D HGLSをより直接的な形で直接提供するように適合され得ることが考えられている。換言すれば、3Dセンサシステムは、(典型的にポイントによって構成される)表現から特徴抽出によって検出された3D HLGSを生成するのではなく、検出された3D HLGSを出力する。それゆえ3Dセンサシステムが検出された3D HLGSを 直接生成するこのような代替的配列を示すために、ステップ2010と2020は破線ボックス2022によってグループ化されている。
【0092】
次に、ステップ2030において、検出された3D HLGSは(多様な機構によってシステムに提供される)モデル3D HLGSに対応させられて、3D表現(または直接生成される検出された3D HLGS)が導出されるシーン内に、1以上のオブジェクトの1以上の候補3D姿勢を生成する。次に1以上のオブジェクトの生成された3D姿勢は、本明細書において様々に述べた採点プロセスを用いて採点される(ステップ2040)。ステップ2050 では、(粗い採点、細かい採点および/または検証などの組み合わせから導出できる)得点に基づいて、具体的な高得点姿勢が3Dアライメント解決策として選択される。反対に、十分高得点の姿勢がない場合は、否定的な結果に終わり、オブジェクトは検出されず、および/またはアライメントは提供されない。本明細書中で想定されている機能およびプロセスの中でも特に採点プロセス、特徴抽出プロセスおよび3D表現の取得は、上記の種々の実施態様に従って行われ得る。
【0093】
以上、本発明の例示的な実施態様を詳細に説明した。本発明の精神および範囲を逸脱することなく、種々の変容または追加を行うことができる。上述した種々の実施態様は各々他の記述された実施態様と組み合わせて多数の特徴を提供できる。さらに、以上に本発明の装置および方法の多数の個々の実施態様が記述されているが、これらは本明細書において単に本発明の原理の例示的な応用にすぎない。たとえば、粗い採点ステップの後、細かい採点プロセスで候補姿勢を精緻化するのに先立ち、処理オーバーヘッドの少ない粗い切り詰めステップを追加して、候補姿勢の数をさらに減らすことが可能であり、これにより処理オーバーヘッドをさらに減らすことができる。さらに、「高い」という用語や程度を表す他の表現を用いる場合、これらは単に便宜上のものとして受け取られるべきである。たとえば「高得点」の値は、必ずしも最高の絶対数ではなく最小数、または程度を区別する他の測定基準によって定義することができる。また、HLGS 特徴の抽出に先立って、画像の強調および/または前処理のために様々な周知の技術を用いることができる。さらに、本明細書に記載された種々のステップおよびプロセスは、多数のスレッドおよび/またはプロセッサと並列処理されて、全アライメントプロセスを実行するのに必要な時間を短縮できる。種々の実施態様において、この追加的な並列処理は特に特徴を際立たせ、対応プロセスを速めるのを助ける。また、本明細書に記載されたシステムおよび方法は、照明、光学的フィルタ処理および/または具体的なオブジェクトおよび/またはカメラ配列にとって最良の撮像環境を提供するように適合されたステージ画面を使用できることが明確に考えられている。同様に、3Dポイントクラウド形成、特徴抽出、対応および精緻化技術は、特徴を識別するのに適当である場合にはピクセル色情報も利用できることが明確に考えられている。より一般的に、1以上の位置合わせされるべきオブジェクトを含むシーンの3D表現は、x,yおよびz の3Dピクセル座標以外のパラメータを代表するデータを明確に含むことができ、これには他の幾何学的および非幾何学的パラメータ、たとえばピクセル強度、色、エッジ方向も含まれるが、これらに限られない。センサおよび/またはプロセッサは、このような情報を提供する従来の技術に従って適合することができる。さらに、本明細書に記載されたシステムおよび方法は、プログラム命令のコンピュータ可読媒体からなる電子的ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組み合わせを用いて実現できる。したがってこの記述は例としてのみ受け取られることを意図しており、本発明の範囲を別途限定することを意図したものではない。
【特許請求の範囲】
【請求項1】
3次元(3D)空間におけるオブジェクトのアライメントを決定するためのシステムであって、
あるシーンの3D表現を生成するように構成および配置された1以上の3Dセンサおよび1以上の処理素子と;
前記3D表現から前記シーンの検出された3Dのより高水準の幾何学形状(HLGS)を生成する特徴抽出プロセスと;
検出された3D HLGSをモデル3D HLGSと比較して前記シーン中の1以上のオブジェクトの1以上の候補3D姿勢を生成する対応プロセスと、
を含み、前記対応プロセスは複数の候補3D姿勢を採点して、十分高い得点に基づき少なくとも1個の高得点姿勢を選択するように構成および配置されていることを特徴とする、上記システム。
【請求項2】
前記1以上の3Dセンサは各々複数の2Dカメラの配列を含んでいる、請求項1記載のシステム。
【請求項3】
前記1以上の3Dセンサは各々ステレオカメラヘッドを含んでいる、請求項2記載のシステム。
【請求項4】
前記3D表現は、3D座標と、少なくとも1個の他の幾何学的パラメータまたは非幾何学的パラメータとによって定義される、請求項1記載のシステム。
【請求項5】
前記少なくとも1個の他の幾何学的パラメータまたは非幾何学的パラメータは、少なくとも1個のエッジ方向、色および強度を含む、請求項4記載のシステム。
【請求項6】
前記シーンは要素の雑然とした背景または紛らわしい背景を含み、前記3Dセンサは位置決めされ、前記特徴抽出プロセスは HLGS を要素の雑然とした背景または紛らわしい背景から識別するように構成および配置されている、請求項1記載のシステム。
【請求項7】
前記シーンはその中に複数のオブジェクトを含んでおり、前記特徴抽出プロセスは1以上の複数のオブジェクトのHLGS を識別するように構成および配置されている、請求項1記載のシステム。
【請求項8】
前記シーンはその中に分解可能なオブジェクトを含んでおらず、各々の特徴抽出プロセスおよび対応プロセスは、シーン中に分解可能なオブジェクトがないことを特定するように構成および配置されている、請求項1記載のシステム。
【請求項9】
前記対応 プロセスは、(a)複数の粗く採点された候補3D姿勢を生成する粗い採点プロセスと、(b)1以上の粗く採点された候補3D姿勢から1以上の細かく採点された候補3D姿勢を生成する 細かい採点プロセスを使用して、1以上の候補3D姿勢を採点するように構成および配置されている、請求項1記載のシステム。
【請求項10】
さらに、1以上のオブジェクトの少なくとも1個の検出された2Dポイントおよび検出された3Dポイントを、少なくとも1個のモデル2Dポイントおよびモデル3Dポイントを基準として比較し、それにより少なくとも1個の高得点姿勢を導出するように構成および配置されている検証プロセスを含む、請求項1記載のシステム。
【請求項11】
前記採点プロセスは、(a)1以上の候補3D姿勢に対してモデル一致得点を計算し、(b)各々高いモデル一致得点を有する1以上の高得点の候補3D姿勢を提供し、(c)検出された3Dポイントとモデル3Dポイントとの比較に基づいて高得点の候補3D姿勢のそれぞれの姿勢を精緻化し、(d)高得点の候補3D姿勢と精緻な候補3D姿勢との組み合わせから少なくとも1個の高得点姿勢を選択するように構成および配置されている、請求項1記載のシステム。
【請求項12】
前記採点プロセスは、各々のモデル3D HLGSを取り囲む所定の幾何学的区域を定義し、検出された3D HLGSがそれぞれ所定の幾何学的区域外にある部分を含んでいる少なくとも1個の候補3D姿勢を除去するように構成および配置されている、請求項1記載のシステム。
【請求項13】
精緻な候補3D姿勢のセットは、幾何学的区域内にある検出された3D HLGSの部分の適合に基づいて生成される、請求項12記載のシステム。
【請求項14】
各々の検出された3D HLGSおよびモデル3D HLGS は線分であり、所定の幾何学的区域は横断面の形状が少なくとも1個の円形、楕円形、多角形または不規則な包囲形状を有するパイプであり、前記部分は線分の端点である、請求項13記載のシステム。
【請求項15】
前記部分は検出された3D HLGSに関して検出された3Dポイントの全部または所定の割合を含む、請求項13記載のシステム。
【請求項16】
検出された3D HLGSおよびモデル3D HLGS は、少なくとも1個の線分、微小エッジ、スプラインおよび曲線に基づいている、請求項1記載のシステム。
【請求項17】
1以上の3Dセンサは少なくとも1個の3眼立体視カメラヘッドを含む、請求項1記載のシステム。
【請求項18】
3次元(3D)空間におけるオブジェクトのアライメントを決定するための方法であって、
1以上の3Dセンサおよび1以上の処理素子を用いてあるシーンの3D表現を生成し;
前記3D表現から前記シーンの検出された3D高水準幾何学形状(HLGS)を生成するために特徴を抽出し;
前記シーン中の1以上のオブジェクトの1以上の候補3D姿勢を生成するために検出された3D HLGSをモデル3D HLGSに対応させることからなり、1以上の候補3D姿勢を採点して、十分高い得点に基づき少なくとも1個の高得点姿勢を選択することを含む、上記方法。
【請求項19】
前記3Dセンサは複数のステレオカメラヘッドの各々を含み、さらに複数のステレオカメラヘッドの各々をシーンに対するそれぞれ有利な地点に配置して、シーン中の1以上のオブジェクトの遮蔽および妨害がより少ない視野を提供することを含む、請求項18記載の方法。
【請求項20】
前記対応ステップは、(a)1以上の候補3D姿勢を生成する粗い採点と、(b)1以上の粗く採点された候補3D姿勢から1以上の細かく採点された候補3D姿勢を生成する細かい採点とによって、1以上の候補3D姿勢を採点することを含む、請求項18記載の方法。
【請求項21】
1以上のオブジェクトの少なくとも1個の検出された2Dポイントおよび検出された3Dポイントを、少なくとも1個のモデル2Dポイントおよびモデル3Dポイントを基準として比較し、それにより 少なくとも1個の高得点姿勢を導出することを含む、請求項20記載の方法。
【請求項22】
前記採点ステップは、(a)1以上の候補3D姿勢に対してモデル一致得点を計算し、(b)各々高いモデル一致得点を有する1以上の高得点の候補3D姿勢を提供し、(c)検出された3Dポイントとモデル3Dポイントとの比較に基づいて高得点の候補3D姿勢のそれぞれの姿勢を精緻化し、(d)高得点の候補3D姿勢と精緻な候補3D姿勢との組み合わせから少なくとも1個の高得点姿勢を選択することを含む、請求項18記載の方法。
【請求項23】
前記採点ステップは、各々のモデル3D HLGSを取り囲む所定の幾何学的区域を定義し、検出された3D HLGSがそれぞれ所定の幾何学的区域外にある部分を含んでいる少なくとも1個の候補3D姿勢を除去することを含む、請求項18記載の方法。
【請求項24】
幾何学的区域内にある検出された3D HLGSの部分の適合に基づき、1以上の候補3D姿勢から精緻な候補3D姿勢のセットを生成する、請求項23記載の方法。
【請求項25】
各々の検出された3D HLGSおよびモデル3D HLGS は線分であり、所定の幾何学的区域は横断面の形状が少なくとも1個の円形、楕円形、多角形または不規則な包囲形状を有するパイプであり、前記部分は線分の端点である、請求項24記載の方法。
【請求項26】
前記部分は検出された3D HLGSに関して検出された3Dポイントの全部または所定の割合を含む、請求項24記載の方法。
【請求項27】
検出された3D HLGSおよびモデル3D HLGSは、少なくとも1個の線分、微小エッジ、スプラインまたは曲線に基づいている、請求項18記載の方法。
【請求項28】
3次元(3D)空間におけるオブジェクトのアライメントを決定するための方法であって、
1以上の3Dセンサおよび1以上の処理素子を用いてあるシーンの3D表現を生成し;
前記3D表現から前記シーンの検出された3D高水準幾何学形状(HLGS)を生成するために特徴を抽出し;
前記シーン中の1以上のオブジェクトの1以上の候補3D姿勢を生成するために検出された3D HLGSをモデル3D HLGSに対応させることからなり、1以上の候補3D姿勢を採点して、十分高い得点に基づき少なくとも1個の高得点姿勢を選択することを含む、上記方法。
【請求項1】
3次元(3D)空間におけるオブジェクトのアライメントを決定するためのシステムであって、
あるシーンの3D表現を生成するように構成および配置された1以上の3Dセンサおよび1以上の処理素子と;
前記3D表現から前記シーンの検出された3Dのより高水準の幾何学形状(HLGS)を生成する特徴抽出プロセスと;
検出された3D HLGSをモデル3D HLGSと比較して前記シーン中の1以上のオブジェクトの1以上の候補3D姿勢を生成する対応プロセスと、
を含み、前記対応プロセスは複数の候補3D姿勢を採点して、十分高い得点に基づき少なくとも1個の高得点姿勢を選択するように構成および配置されていることを特徴とする、上記システム。
【請求項2】
前記1以上の3Dセンサは各々複数の2Dカメラの配列を含んでいる、請求項1記載のシステム。
【請求項3】
前記1以上の3Dセンサは各々ステレオカメラヘッドを含んでいる、請求項2記載のシステム。
【請求項4】
前記3D表現は、3D座標と、少なくとも1個の他の幾何学的パラメータまたは非幾何学的パラメータとによって定義される、請求項1記載のシステム。
【請求項5】
前記少なくとも1個の他の幾何学的パラメータまたは非幾何学的パラメータは、少なくとも1個のエッジ方向、色および強度を含む、請求項4記載のシステム。
【請求項6】
前記シーンは要素の雑然とした背景または紛らわしい背景を含み、前記3Dセンサは位置決めされ、前記特徴抽出プロセスは HLGS を要素の雑然とした背景または紛らわしい背景から識別するように構成および配置されている、請求項1記載のシステム。
【請求項7】
前記シーンはその中に複数のオブジェクトを含んでおり、前記特徴抽出プロセスは1以上の複数のオブジェクトのHLGS を識別するように構成および配置されている、請求項1記載のシステム。
【請求項8】
前記シーンはその中に分解可能なオブジェクトを含んでおらず、各々の特徴抽出プロセスおよび対応プロセスは、シーン中に分解可能なオブジェクトがないことを特定するように構成および配置されている、請求項1記載のシステム。
【請求項9】
前記対応 プロセスは、(a)複数の粗く採点された候補3D姿勢を生成する粗い採点プロセスと、(b)1以上の粗く採点された候補3D姿勢から1以上の細かく採点された候補3D姿勢を生成する 細かい採点プロセスを使用して、1以上の候補3D姿勢を採点するように構成および配置されている、請求項1記載のシステム。
【請求項10】
さらに、1以上のオブジェクトの少なくとも1個の検出された2Dポイントおよび検出された3Dポイントを、少なくとも1個のモデル2Dポイントおよびモデル3Dポイントを基準として比較し、それにより少なくとも1個の高得点姿勢を導出するように構成および配置されている検証プロセスを含む、請求項1記載のシステム。
【請求項11】
前記採点プロセスは、(a)1以上の候補3D姿勢に対してモデル一致得点を計算し、(b)各々高いモデル一致得点を有する1以上の高得点の候補3D姿勢を提供し、(c)検出された3Dポイントとモデル3Dポイントとの比較に基づいて高得点の候補3D姿勢のそれぞれの姿勢を精緻化し、(d)高得点の候補3D姿勢と精緻な候補3D姿勢との組み合わせから少なくとも1個の高得点姿勢を選択するように構成および配置されている、請求項1記載のシステム。
【請求項12】
前記採点プロセスは、各々のモデル3D HLGSを取り囲む所定の幾何学的区域を定義し、検出された3D HLGSがそれぞれ所定の幾何学的区域外にある部分を含んでいる少なくとも1個の候補3D姿勢を除去するように構成および配置されている、請求項1記載のシステム。
【請求項13】
精緻な候補3D姿勢のセットは、幾何学的区域内にある検出された3D HLGSの部分の適合に基づいて生成される、請求項12記載のシステム。
【請求項14】
各々の検出された3D HLGSおよびモデル3D HLGS は線分であり、所定の幾何学的区域は横断面の形状が少なくとも1個の円形、楕円形、多角形または不規則な包囲形状を有するパイプであり、前記部分は線分の端点である、請求項13記載のシステム。
【請求項15】
前記部分は検出された3D HLGSに関して検出された3Dポイントの全部または所定の割合を含む、請求項13記載のシステム。
【請求項16】
検出された3D HLGSおよびモデル3D HLGS は、少なくとも1個の線分、微小エッジ、スプラインおよび曲線に基づいている、請求項1記載のシステム。
【請求項17】
1以上の3Dセンサは少なくとも1個の3眼立体視カメラヘッドを含む、請求項1記載のシステム。
【請求項18】
3次元(3D)空間におけるオブジェクトのアライメントを決定するための方法であって、
1以上の3Dセンサおよび1以上の処理素子を用いてあるシーンの3D表現を生成し;
前記3D表現から前記シーンの検出された3D高水準幾何学形状(HLGS)を生成するために特徴を抽出し;
前記シーン中の1以上のオブジェクトの1以上の候補3D姿勢を生成するために検出された3D HLGSをモデル3D HLGSに対応させることからなり、1以上の候補3D姿勢を採点して、十分高い得点に基づき少なくとも1個の高得点姿勢を選択することを含む、上記方法。
【請求項19】
前記3Dセンサは複数のステレオカメラヘッドの各々を含み、さらに複数のステレオカメラヘッドの各々をシーンに対するそれぞれ有利な地点に配置して、シーン中の1以上のオブジェクトの遮蔽および妨害がより少ない視野を提供することを含む、請求項18記載の方法。
【請求項20】
前記対応ステップは、(a)1以上の候補3D姿勢を生成する粗い採点と、(b)1以上の粗く採点された候補3D姿勢から1以上の細かく採点された候補3D姿勢を生成する細かい採点とによって、1以上の候補3D姿勢を採点することを含む、請求項18記載の方法。
【請求項21】
1以上のオブジェクトの少なくとも1個の検出された2Dポイントおよび検出された3Dポイントを、少なくとも1個のモデル2Dポイントおよびモデル3Dポイントを基準として比較し、それにより 少なくとも1個の高得点姿勢を導出することを含む、請求項20記載の方法。
【請求項22】
前記採点ステップは、(a)1以上の候補3D姿勢に対してモデル一致得点を計算し、(b)各々高いモデル一致得点を有する1以上の高得点の候補3D姿勢を提供し、(c)検出された3Dポイントとモデル3Dポイントとの比較に基づいて高得点の候補3D姿勢のそれぞれの姿勢を精緻化し、(d)高得点の候補3D姿勢と精緻な候補3D姿勢との組み合わせから少なくとも1個の高得点姿勢を選択することを含む、請求項18記載の方法。
【請求項23】
前記採点ステップは、各々のモデル3D HLGSを取り囲む所定の幾何学的区域を定義し、検出された3D HLGSがそれぞれ所定の幾何学的区域外にある部分を含んでいる少なくとも1個の候補3D姿勢を除去することを含む、請求項18記載の方法。
【請求項24】
幾何学的区域内にある検出された3D HLGSの部分の適合に基づき、1以上の候補3D姿勢から精緻な候補3D姿勢のセットを生成する、請求項23記載の方法。
【請求項25】
各々の検出された3D HLGSおよびモデル3D HLGS は線分であり、所定の幾何学的区域は横断面の形状が少なくとも1個の円形、楕円形、多角形または不規則な包囲形状を有するパイプであり、前記部分は線分の端点である、請求項24記載の方法。
【請求項26】
前記部分は検出された3D HLGSに関して検出された3Dポイントの全部または所定の割合を含む、請求項24記載の方法。
【請求項27】
検出された3D HLGSおよびモデル3D HLGSは、少なくとも1個の線分、微小エッジ、スプラインまたは曲線に基づいている、請求項18記載の方法。
【請求項28】
3次元(3D)空間におけるオブジェクトのアライメントを決定するための方法であって、
1以上の3Dセンサおよび1以上の処理素子を用いてあるシーンの3D表現を生成し;
前記3D表現から前記シーンの検出された3D高水準幾何学形状(HLGS)を生成するために特徴を抽出し;
前記シーン中の1以上のオブジェクトの1以上の候補3D姿勢を生成するために検出された3D HLGSをモデル3D HLGSに対応させることからなり、1以上の候補3D姿勢を採点して、十分高い得点に基づき少なくとも1個の高得点姿勢を選択することを含む、上記方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【公表番号】特表2012−514252(P2012−514252A)
【公表日】平成24年6月21日(2012.6.21)
【国際特許分類】
【出願番号】特願2011−543535(P2011−543535)
【出願日】平成21年12月1日(2009.12.1)
【国際出願番号】PCT/US2009/066247
【国際公開番号】WO2010/077524
【国際公開日】平成22年7月8日(2010.7.8)
【出願人】(504382671)コグネックス・コーポレイション (16)
【Fターム(参考)】
【公表日】平成24年6月21日(2012.6.21)
【国際特許分類】
【出願日】平成21年12月1日(2009.12.1)
【国際出願番号】PCT/US2009/066247
【国際公開番号】WO2010/077524
【国際公開日】平成22年7月8日(2010.7.8)
【出願人】(504382671)コグネックス・コーポレイション (16)
【Fターム(参考)】
[ Back to top ]