(57)【特許請求の範囲】
【請求項１】
第１の３Ｄポイントクラウド画像をモデルからビジョンシステムプロセッサに提供するステップと、
第２の３Ｄポイントクラウド画像をターゲットからビジョンシステムプロセッサに提供するステップと、
第１の３Ｄポイントクラウド画像と第２の３Ｄポイントクラウド画像との可能なアライメントに対して合格全体スコアを確定するステップと、
第１の３Ｄポイントクラウド画像と第２の３Ｄポイントクラウド画像との少なくとも１つの可能なアライメントについてカバレッジスコアを評価するステップであって、前記カバレッジスコアは第２の３Ｄポイントクラウド画像内に存在する第１の３Ｄポイントクラウド画像内の所望された特徴の量を表す、ステップと、
第１の３Ｄポイントクラウド画像と第２の３Ｄポイントクラウド画像との少なくとも１つの可能なアライメントについてクラッタスコアを評価するステップであって、前記クラッタスコアは第２の３Ｄポイントクラウド画像内の無関係な特徴を表す、ステップと、
全体スコアをカバレッジスコアとクラッタスコアとの差として評価するステップと、を含む、
第１の３次元（３Ｄ）ポイントクラウド画像を第２の３Ｄポイントクラウド画像とアライメントするための方法。
【請求項２】
モデルとターゲット少なくとも１つは３Ｄカメラと３Ｄコンピュータ支援設計描写の少なくとも１つを用いて定義される請求項１に記載の方法。
【請求項３】
前記第１の３Ｄポイントクラウド画像がモデル画像である請求項２に記載の方法。
【請求項４】
前記第２の３Ｄポイントクラウド画像がターゲットの画像である請求項３に記載の方法。
【請求項５】
更に、カバレッジスコアとクラッタスコアを計算するために第１の３Ｄポイントクラウド画像周りの境界ボリュームを定義することを含む、請求項１に記載の方法。
【請求項６】
前記境界ボリュームのサイズは、自動的に又はユーザ指定の定義に基づいて定義される、請求項５に記載の方法。
【請求項７】
自動的に定義された境界ボリュームは、第１の３Ｄポイントクラウド画像を完全に包含する最小ボリューム形状に設定される、請求項６に記載の方法。
【請求項８】
更に、第１の３Ｄポイントクラウド画像と第２の３Ｄポイントクラウド画像の各々における所定の配置のポイントのマッチングに基づいて、第１の３Ｄポイントクラウド画像と第２の３Ｄポイントクラウド画像の初期登録を実行することを含む、請求項１に記載の方法。
【請求項９】
第１の３Ｄポイントクラウド画像と第２の３Ｄポイントクラウド画像内の各ポイントは、カバレッジウェイトを定義する、請求項１に記載の方法。
【請求項１０】
前記カバレッジウェイトが０の値と１の値の間で定義される請求項９に記載の方法。
【請求項１１】
前記全体スコアは、クラッタ比定数を乗じたクラッタスコアに基づいて評価される、請求項１０に記載の方法。
【請求項１２】
第１の３Ｄポイントクラウド画像と第２の３Ｄポイントクラウド画像内の各ポイントが、カバレッジウェイトとクラッタウェイトを０の値と１の値の間で定義し、ここで、（ａ）カバレッジスコアはカバレッジウェイトの合計値と第１の３Ｄポイントクラウド画像内のポイントの数との比であり、（ｂ）クラッタスコアはクラッタウェイトの合計値と第１の３Ｄポイントクラウド画像内のポイントの数との比である、請求項１０に記載の方法。
【請求項１３】
第１の３Ｄポイントクラウド画像と第２の３Ｄポイントクラウド画像との間の少なくとも１つの可能なアライメントに対して、第２の３Ｄポイントクラウド画像内に存在する第１の３Ｄポイントクラウド画像内の所望された特徴の量を表すカバレッジスコアと第２の３Ｄポイントクラウド画像内の無関係な特徴を表すクラッタスコアと全体スコアを決定するスコアリングモジュールと、
第２の３Ｄポイントクラウド画像に対するアライメント決定を全体スコアに基づいて下すアライメントモジュールと、を含み、
前記第１の３Ｄポイントクラウド画像は、３Ｄカメラと３Ｄコンピュータ支援設計描写の少なくとも１つを用いて定義されるモデルであり、
前記第２の３Ｄポイントクラウド画像は、ターゲットの画像であり、
前記全体スコアは前記カバレッジスコアと前記クラッタスコアとの差として評価される、
第１の３Ｄポイントクラウド画像を第２の３Ｄポイントクラウド画像とアライメントするためのシステム。
【請求項１４】
カバレッジスコアとクラッタスコアを計算するために第１の３Ｄポイントクラウド画像の周りで境界ボリュームが定義される、請求項１３に記載のシステム。
【請求項１５】
前記境界ボリュームのサイズは、自動的に又はユーザ指定の定義に基づいて定義される、請求項１４に記載のシステム。
【請求項１６】
自動的に定義された境界ボリュームが、第１の３Ｄポイントクラウド画像を完全に包含する最小ボリューム形状に設定される、請求項１５に記載のシステム。
【請求項１７】
第１の３Ｄポイントクラウド画像と第２の３Ｄポイントクラウド画像内の各ポイントが、カバレッジウェイトを定義する、請求項１３に記載のシステム。
【請求項１８】
カバレッジウェイトが０の値と１の値との間で定義される請求項１７に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像されたシーン内のオブジェクトのアライメントと検査のためのマシンビジョンシステム及び関連する方法に関する。
【背景技術】
【０００２】
本明細書で「ビジョンシステム」とも呼ばれるマシンビジョンシステムは、製造環境において多様なタスクを実行するために使用される。一般にビジョンシステムは、製造中のオブジェクトを包含するシーンのグレースケール又はカラー画像を取得する画像センサ（又は「イメージャ」）を備えた１台以上の２次元（２Ｄ）カメラからなる。オブジェクトの２Ｄ画像を分析してデータ／情報をユーザ及び関連する製造工程に提供できる。２Ｄ画像によって生み出されたデータは通常はビジョンシステムにより１台以上のビジョンシステムプロセッサで分析及び処理され、ビジョンシステムプロセッサはそれ専用に製造されているか、又は汎用コンピュータ（例えばＰＣ、ラップトップ、タブレット又はスマートフォン）内で作成される１以上のソフトウェアアプリケーションの一部であってもよい。
【０００３】
ビジョンシステムの共通タスクは、アライメントと検査を含む。アライメントタスクにおいてビジョンシステムツール、例えばコグネックス社（マサチューセッツ州ネイティック）から市販されている周知のＰａｔＭａｘ（登録商標）システムが、あるシーンの２Ｄ画像内の特徴を（実際のモデル又は合成モデルを用いて）トレーニングされた２Ｄパターンと比較して、２Ｄ撮像されたシーンにおける２Ｄパターンの存在／欠落及び姿勢を決定する。この情報は後続の検査作業（又は他の）作業に使用して欠陥を探し、及び／又は部品拒否など他の作業を実行できる。
【０００４】
ビジョンシステムを用いる具体的なタスクは、実行時にトレーニングされた３Ｄモデル形状に基づいて３次元（３Ｄ）ターゲット形状をアライメントすることである。３Ｄカメラは多様な技術、例えばレーザ変位センサ（プロファイラ）、立体カメラ、ソナー、レーザ又はＬＩＤＡＲレンジ検出カメラ、及びその他の多様な受動的及び能動的レンジ検出技術に基づいていてもよい。そのようなカメラはレンジ画像を生み出し、そこで画像ピクセルの配列（典型的には直交するｘ軸とｙ軸に沿った位置として特徴付けられる）が生み出されるが、これらは各ピクセルに対する第３の次元（高さ）（典型的にはｘ−ｙ面に対して垂直な軸に沿った位置として特徴付けられる）も含んでいる。或いは、そのようなカメラは撮像されたオブジェクトのポイントクラウド表現を生成できる。ポイントクラウドは空間内の３Ｄポイントの集合であり、各ポイントｉは（Ｘｉ、Ｙｉ、Ｚｉ）として表わすことができる。ポイントクラウドは、オブジェクトの背面及び側面、頂面と底面を含む完全な３Ｄオブジェクトを表わすことができる。３Ｄポイント（Ｘｉ、Ｙｉ、Ｚｉ）は、オブジェクトがカメラに見える空間内の位置を表す。この表現において空の空間はポイントが無いことによって表される。
【０００５】
比較すると、３Ｄレンジ画像表現Ｚ（ｘ、ｙ）は２Ｄ画像表現Ｉ（ｘ、ｙ）に類似しており、奥行又は高さＺはＩ画像内の位置ｘ、ｙにおける輝度／明度に相当するものに取って代わる。単一の奥行のみが任意のポイント位置ｘ、ｙと関連しているので、レンジ画像は専ら直接カメラに面するオブジェクトの正面を表現する。レンジ画像は典型的にはオブジェクトの背面又は側面、頂面又は底面を表現できない。レンジ画像は典型的にはあらゆる位置（ｘ、ｙ）のデータを有しており、それはそのような位置に情報がない場合も含む。時々、カメラ画像データは特定の位置に「欠落ピクセル」ラベルを含めることによって、情報が存在しないことを直接表現する。「欠落ピクセル」は画像内の当該位置における撮像条件が不十分であったことを意味するか、オブジェクトの当該位置に穴が存在することを意味しよう。３Ｄレンジ画像は時々慣用的な２Ｄ画像処理技術で処理されることができ、高さの次元Ｚは輝度／明度Ｉに置き換えられ、欠落ピクセルは特別な方法で扱われるか無視される。
【０００６】
更に背景を説明すると、レンジ画像表現と３Ｄポイントクラウド表現との間の３Ｄ画像の変換は適当な技術によって達成できるが、情報の損失及び／又は精度の損失を伴う。一部の３Ｄカメラは、画像が取得されたときに（同時に）３Ｄポイントクラウド画像か、又は３Ｄレンジ画像を直接生み出すことができる。いずれかの表現を生み出すことができるカメラからの表現の間で画像を変換する場合も画像が取得されたら、精度の損失を引き起こすことがある。それゆえ３Ｄポイントクラウド又はレンジ画像は、カメラによってそれぞれのモードで取得されるとき最も精確である。
【０００７】
ターゲット画像（取得されるか合成プロセスによって生成される）をモデル画像（やはり取得されるか又は合成される）とアライメントする場合、１つの方策は最良のマッチングポーズを検出する目的で、ターゲットにおける３Ｄポイントクラウドをモデルにおける３Ｄポイントクラウドとマッチング／比較することを含んでいる。比較はモデルを基準にしたターゲットのカバレッジのスコアリングを含むことができる。ある限界を超えるスコアは、受け入れ可能なマッチ／ポーズ評価と見なされ、この情報を使用してアライメント結果を生成する。それにもかかわらず３Ｄ画像に基づいてアライメント結果を精確且つ効率的に生成するのは難題であり、モデルとターゲットの３Ｄポイントクラウドのマッチングを採用した実用的な一般化された技術は概して利用できない。
【発明の概要】
【０００８】
本発明は、３Ｄ（ポイントクラウド）画像内のクラッタを用いて３Ｄターゲット画像を３Ｄモデル画像とアライメントするためのシステム及び方法を提供し、それにより多様な表面形状に作用する３Ｄマッチングのための一般化された技術を提供することによって先行技術の短所を克服する。クラッタはターゲット画像で特定されて画像内にあることが期待されない要素を表し、クラッタスコアを計算するために用いられ、クラッタスコアは種々のポーズからのアライメント候補をマッチさせるために使用される。３Ｄ画像内に過度に多いクラッタが観察されたら、マッチは示唆されない。そのポーズは従ってスコアに逆に影響し、そのようなポーズは候補として拒否される。反対に、所定の限界を満たすスコアはアライメント結果を生成するために使用できるポーズ候補と見なされる。
【０００９】
例示的な実施形態において、ビジョンシステムプロセッサを用いて第１の３Ｄポイントクラウド画像を第２の３Ｄポイントクラウド画像とアライメントするためのシステム及び方法が提供され、ビジョンシステムプロセッサは第１の３Ｄポイントクラウド画像（典型的にはソースオブジェクトの画像−「モデル」と呼ぶ）及び第２の３Ｄポイントクラウド画像（典型的には実行時オブジェクトの画像−「ターゲット」と呼ぶ）を含んでいる。第１の３Ｄポイントクラウド画像と第２の３Ｄポイントクラウド画像との可能なアライメントに対して合格全体スコアが確定される。第１の３Ｄポイントクラウド画像と第２の３Ｄポイントクラウド画像との少なくとも１つの可能なアライメントについてカバレッジスコアが評価され、カバレッジスコアは第２の３Ｄポイントクラウド画像内に存在する第１の３Ｄポイントクラウド画像内の所望された特徴の量を表す。第１の３Ｄポイントクラウド画像と第２の３Ｄポイントクラウド画像との少なくとも１つの可能なアライメントについてクラッタスコアも評価され、クラッタスコアは第２の３Ｄポイントクラウド画像内の無関係な特徴を表す。全体スコアをカバレッジスコアとクラッタスコアとの差として計算される。例示的に、モデルは３Ｄカメラと３Ｄコンピュータ支援設計描写の少なくとも１つを用いて定義され、ターゲットは３Ｄカメラと３Ｄコンピュータ支援設計描写の少なくとも１つを用いて定義される。システム及び方法は例示的に、カバレッジスコアとクラッタスコアを計算するために、第１の３Ｄポイントクラウド画像周りの境界ボリュームを定義する。この境界ボリュームは自動的に又はユーザ指定の定義に基づいて定義され得る。ボリュームは例えば直線面を有する立方体状の形状又はその他の所望された形状を定義できる。実施形態において（ある基準の下で）境界ボリュームは軸合わせされ及び／又は３Ｄポイントクラウド画像を包囲／画定（包含）する最小ボリュームに設定される。最初のステップとして第１の３Ｄポイントクラウド画像と第２の３Ｄポイントクラウド画像は、第１の３Ｄポイントクラウド画像と第２の３Ｄポイントクラウド画像の各々における所定の配置のポイントマッチングに基づいておおまかに登録される。例示的に第１の３Ｄポイントクラウド画像と第２の３Ｄポイントクラウド画像内の各ポイントは、スコア計算に使用されるカバレッジウェイトを定義でき、カバレッジウェイトは０の値と１の値の間で定義され得る。加えて、全体スコアは、クラッタ比定数を乗じたクラッタスコアに基づいて評価され得る。クラッタ比定数はユーザによって（例えば）ＧＵＩを用いて設定でき、１以下の値（例えば０．５）であってよい。
【００１０】
以下に本発明について添付の図面を参照して説明する。
【図面の簡単な説明】
【００１１】
【図１】アライメントの目的でオブジェクト（模範的な錐台）の表面の３Ｄ（ポイントクラウド）画像を取得するために配置されたビジョンシステムの図である。
【００１２】
【図２】模範的なモデルオブジェクト（錐台）の周りの、クラッタ区域のない適当なサイズの３Ｄ境界ボリュームを定義するために配置されたトレーニング時のビジョンシステムを示す図である。
【００１３】
【図３】トレーニングされた境界ボリュームがクラッタを含むサイズになるようにオブジェクトの頂面内に突入したクラッタ区域を含む、図２のトレーニングされた３Ｄ境界ボリュームが模範的な実行時オブジェクト（錐台）の周りに配置された実行時のビジョンシステムを示す図である。
【００１４】
【図４】模範的なモデルオブジェクト（錐台）の周りの、クラッタ区域のない適当なサイズの３Ｄ境界ボリュームを定義するために配置されたトレーニング時のビジョンシステムを示す図である。
【００１５】
【図５】トレーニングされた境界ボリュームがクラッタを含むサイズになるようにオブジェクトの頂面上に突出したクラッタ区域を含む、図２のトレーニングされた３Ｄ境界ボリュームが模範的な実行時オブジェクト（錐台）の周りに配置された実行時のビジョンシステムを示す図である。
【００１６】
【図６】評価されたモデルカバレッジスコアとクラッタスコアを用いて３Ｄポイントクラウド画像をターゲット３Ｄポイントクラウド画像とアライメントするための手順のフローチャートである。
【００１７】
【図７】３Ｄポイントクラウド画像のクラッタスコアを計算するために境界ボリュームを手動又は自動で設定するための手順のフローチャートである。
【発明を実施するための形態】
【００１８】
図１は、３Ｄビジョンシステムカメラアセンブリ１２０（「変位センサ」とも呼ぶ）の視野（ＦＯＶ）内で撮像されたオブジェクト１１２の表面１１０上の特徴の検査及び／又は分析に使用するためマシンビジョンシステム構成（本明細書では「ビジョンシステム」とも呼ぶ）１００を示す。カメラアセンブリ１２０はコンポーネントの任意の受け入れ可能な配置構成であってよく、典型的にはレンズアセンブリ１２２と、ＣＣＤ又はＣＭＯＳなど任意の受け入れ可能な撮像技術に基づき画像センサ（又は「イメージャ」）１２６を収容するカメラ本体１２４を含む。イメージャ１２６は、画像を１次元又は２次元（例えばｘ軸とｙ軸に沿って）で、シーンをグレースケール又はカラーで感知するように適合できるピクセルの配列として取得するように配置できる。カメラアセンブリ１２０は更に、オブジェクト表面１１０の３Ｄ「レンジ画像」を構成する第３の直交する次元（例えばｚ軸に沿った高さ）を決定するように適合できる。それぞれの画像ピクセルに対して高さデータを生成するために多様な技術を採用できる。高さデータ及びその関連するレンジ画像は、ポイントクラウドに変換される。或いは、３Ｄビジョンシステムカメラアセンブリは、適当なカメラの機能及び設定を用いて直接３Ｄポイントの集合（ポイントクラウド）を取得できる。複数のカメラ及び／又はセンサを配列して使用でき、３Ｄカメラアセンブリの用語はオブジェクト表面のポイントクラウド表現を生成するための全体的配置を表わすために用いられることに留意されたい。
【００１９】
ポイントクラウド（図１に図示されている）を生成するために使用される模範的なタイプの３Ｄカメラアセンブリはレーザ変位センサであり、これはレーザ光の扇形１３０（又は他の構造の照明）をオブジェクト表面１１０に投影してライン（例えばｘ方向と交差する）１３２を形成して、レーザ変位センサのイメージャ１２６で投影されたラインから扇形１３０の平面とイメージャ光軸ＯＡとの相対的角度（鋭角）で反射光を受け取る。従って投影されたライン１３２はイメージャのピクセル配列１２６においては、各ポイントにおけるオブジェクト表面の高さに基づきｘ方向と交差するｙ方向に沿った変位として現れる。このｙベースの変位はカメラアセンブリによってｚ軸に沿った高さ値に転換される。検出されたポイントに対応する空間内のｘ座標はＸｉである。この検出されたポイントに対応する高さ値はＺｉである。以下にＹｉに対する値をどのように得るか述べる。
【００２０】
典型的な配置において、３Ｄカメラアセンブリ１２０及び／又はオブジェクト１１２は相対的に（例えば矢印１３８によって示された物理的ｙ座標方向で）運動するので、オブジェクト表面１１０はレーザ変位センサによってスキャニングされて、レーザライン１３０の一連の画像が所望された空間的間隔で、典型的には運動情報１４４をシステムビジョンプロセッサ（１５０、以下に説明する）に送るモーションコントローラ１４０及び関連するエンコーダ又は他の運動測定デバイスと連携して（或いは時間ベースの間隔で）取得される。運動方向に沿ったオブジェクト上のポイントの位置は、座標Ｙｉとして定義される。３Ｄカメラアセンブリによって取得されたポイント（Ｘｉ、Ｙｉ、Ｚｉ）の集合は、ポイントクラウドとして定義される。
【００２１】
あるシーンにおけるオブジェクトの３Ｄ画像（レンジ画像又はポイントクラウド）をキャプチャーするために、他の機能的原理を用いて作用する３Ｄカメラアセンブリも使用できることが明確に想定されている。例えば構造化された光システム、ステレオビジョンシステム、ＤＬＰ計測及び他の構成を使用できる。これらのシステムはすべて高さ値（例えばｚ座標）をピクセルに提供する画像を生成する。
【００２２】
種々のタイプの３Ｄカメラアセンブリ（又はそれらの組み合わせ）によって生成される３Ｄポイントクラウド画像を使用して、オブジェクト表面上の特別の特徴を探してその存在及び／又は特性を決定できる。
【００２３】
カメラ本体１２４は、関連するビジョンプロセスを実行するビジョンプロセッサ１３０を構成する種々の画像処理コンポーネントを含むことができる。ビジョンプロセッサ１５０はシーンの取得した画像上で作動し、ビジョンシステムツール及びプロセス１５２を用いて取得した画像から情報を抽出できる。この情報は興味のある特徴及び画像内に現れる他のアイテムに関係することができる。例えば米国マサチューセッツ州ネイティック市のコグネックス株式会社から市販されている既知のＰａｔＭａｘ（登録商標）などのビジョンシステムツールを使用して、画像内の２Ｄ及び３Ｄ特徴を解析して、相対的ポーズ、アライメント及び他のディテール、例えばエッジ、ブロブなどに関する情報を提供する。ビジョンシステムプロセスの一部の又は全部をカメラアセンブリ１２０の本体１２４内で実行できる。プロセスの一部の又は全部を相互接続された（有線又は無線）コンピューティングデバイス／プロセッサ１６０、例えば適当なユーザインタフェース１６２及びディスプレイ１６４専用プロセッサ又は汎用コンピュータ（例えばサーバー、ＰＣ、ラップトップ、スマートフォン、タブレットなど）によって実行できることが明確に想定されている。相互接続されたコンピューティングデバイス／プロセッサ１６０は、処理された画像データを用いて更に別のユーティライゼーションタスク１７０を実行できる（即ち「ユーティライゼーションエレメント」又は「ユーティライザ」プロセスを用いる）。例えばビジョンシステムが検査タスクを実行する場合に、情報を用いてデータベース品質管理情報を提供したり、加工ライン上の欠陥品を拒否したりできる。情報はオブジェクト上のラベル及び／又はＩＤコードを読み取ることによって（例えば）物流用途にも使用できる。画像データ及び関連する情報で他の様々なユーティライゼーションタスクを企てることができる。
【００２４】
例示的な実施形態において、ビジョンプロセス及びプロセッサはモデル３Ｄ画像とターゲット３Ｄ画像のアライメントを容易にするためにクラッタ決定プロセス（プロセッサ）を用いるアライメントプロセス（プロセッサ）１５４を含む。アライメントプロセス（プロセッサ）１５４は本明細書の実施形態に従い取得された画像内のクラッタのレベルを決定するために働く。クラッタは一般に、画像内のトレーニングされたパターンに従い何も存在してはならない場合における画像内の情報と見なされる。概して最も慣用的なサーチツールはトレーニングされたパターンの存在を探し、検出された場合は、成功を示す結果を戻す。しかしながらオブジェクト表面の画像内にクラッタ又は他の望ましくない「ノイズ」がある場合は、所望された／トレーニングされたパターンが存在し得ても、画像全体は（追加のノイズ又はクラッタのため）欠陥があることを示してユーザにオブジェクトを欠陥品として拒否させる。
【００２５】
決定アライメントにおいてプロセス（プロセッサ）１５０は、画像データの各ポーズと関連したクラッタスコアを生成するスコアリングモジュール１５６として示されたクラッタスコアリングプロセスを用いる（以下に説明する）。各々の可能なポーズに対するモデル画像とターゲット画像で生成されたカバレッジスコアと組み合わせて、アライメントプロセス（プロセッサ）は、モデルを基準にしたターゲットにとって最良のアライメントを決定する。
【００２６】
ここで図２を参照すると、ビジョンシステムのトレーニング時に上記の３Ｄビジョンシステムカメラセンサ１２０及びプロセス（プロセッサ）１５０によって撮像された模範的なモデルオブジェクト（例えば錐台）２１０を示している。カメラ／センサ１２０によって生成された画像は３Ｄポイントクラウド（モデル）画像として定義できる。これはｘ座標及びｙ座標及びｚ座標と関連付けられたポイントの集合からなり、すべてカメラの座標空間と関連付けられている。視野２４０は、最大奥行ＤＯ（図示のｘ軸沿い）、最大幅ＷＯ（図示のｙ軸沿い）及び最大高さＨＯ（図示のｚ軸沿い）を定義する全オブジェクトを包含する。ビジョンシステムはオブジェクト２２０周囲の３Ｄ境界ボリューム２５０（この例では直線面／直交平面を有する直方体又は「ボックス」）を、オブジェクトの完全な奥行、幅及び高さを包囲（画定）するようにそれぞれの寸法ＤＢ、ＷＢ及びＨＢで定義するように配置されている。以下に述べるように、この例ではオブジェクトはクラッタ特徴がなく、境界ボリュームのサイズオブジェクトを完全に包囲するように適合されている。この実施形態では３Ｄカメラセンサスキャニング方向（矢印２６０）におけるオブジェクトとセンサの相対運動に基づいて作動することに留意されたい。
【００２７】
図３を参照すると、３Ｄポイントクラウド画像をモデル３Ｄポイントクラウド画像とアライメントして最良ポーズを決定する目的で、類似の形状をした模範的な実行時オブジェクト（本明細書では概して「ターゲット」と呼ぶ）３２０（錐台）がビジョンシステムカメラセンサ１２０によって（スキャニングで、矢印２６０）撮像される。このときビジョンシステムはトレーニング時に定義された境界ボリューム２５０を探して、ターゲットの画像３２０を完全に包囲する。この例ではオブジェクト３２０はクラッタ区域をオブジェクトの頂面の模範的なくぼみ又は凹部３３０の形で含んでいる。トレーニング時に境界ボリュームの寸法を選択することにより、この境界ボリューム２５０はオブジェクト３２０の特徴を、画像にマッピングされたとき模範的なクラッタ区域３３０を含めて完全に包含する。更に以下に述べるように、境界ボリューム２５０の定義は、凹部の表面上のほとんどのポイントがクラッタウェイト値を受け取るのに十分である。これらのウェイト値は撮像されたターゲットの具体的なポーズの全体クラッタスコアへの寄与分として用いられる。
【００２８】
図４では類似のトレーニングオブジェクト（錐台）４２０がカメラセンサ１２０及び関連するビジョンプロセス（プロセッサ）１５０によって撮像される。システムはクラッタがオブジェクトの標準最大寸法ＤＯ１、ＷＯ１及びＨＯ１（この場合は高さＨＯ１）の少なくとも１つを超える可能性があることを予想し、従って３Ｄ境界ボリューム４５０の寸法ＤＢ１、ＷＢ１及びＨＢ１（この場合はボリューム高さＨＢ１）は、クラッタ区域によってもたらされる予測された超過高さを包含するように拡大される。次いでこの緩やかな境界ボリュームは図５に示す実行時に撮像されたターゲット５２０のポーズに適用される。この場合、突出部５３０は、画像にマッピングされたとき拡大された境界ボリューム４５０がその境界内に包含するクラッタ区域を提供する。これにより、突出部（クラッタを）５３０がクラッタウェイト値に含まれて全体クラッタスコア計算の一部となることが確保される。種々の実施形態において境界ボリュームはそれぞれ基面に対して平行な頂面と底面（例えば直方体形状内）を定義し、ボリュームは専らｚ軸中心に回転するように保持される。
【００２９】
ここで図６を参照すると、評価されたカバレッジスコアとクラッタスコアとを用いてモデル３Ｄポイントクラウド画像をターゲット３Ｄポイントクラウド画像とアライメントするための手順６００は、最良ポーズを表すアライメント候補を選ぶ。ステップ６１０で、上述したオブジェクトのモデルに基づいて第１の３Ｄポイントクラウド画像がビジョンシステムアライメントプロセス（プロセッサ）（図１の１５４）に入力される。ステップ６２０で、ターゲットに基づいて第２の３Ｄポイントクラウド画像もアライメントプロセス（プロセッサ）１５４入力される。ステップ６３０で、ユーザ又は自動化されたシステムが、モデル３Ｄポイントクラウド画像とターゲット３Ｄポイントクラウド画像との間の可能なアライメントに対する最低合格スコアを提供する。これはセットアップ／トレーニング時にシステムＧＵＩにおいて値を設定し、又は実行時に値を提供することを伴ってよい。
【００３０】
次に、ステップ６４０で、モデル３Ｄポイントクラウドとターゲット３Ｄポイントクラウドとの間の１以上の可能なアライメントについて、プロセス６００はそれぞれのカバレッジスコアを評価する。次いでステップ６５０で、プロセス６００はモデル３Ｄポイントクラウドとターゲット３Ｄポイントクラウドとの間の１以上の可能なアライメントについてクラッタスコアを評価する。例示的なシステム及び方法は、２つの３Ｄポイントクラウドをアライメントした後で全体カバレッジとクラッタ状態に基づいて最良アライメント候補を選択することに留意されたい。その結果として生じるポーズが実行時クラウド（ターゲット）に適用されて、それをトレーニング時クラウド（モデル）とアライメントする。次いで２つのアライメントされたクラウドから２つのスコア、即ちカバレッジスコアとクラッタスコアを計算する。
【００３１】
カバレッジスコアは、モデル上のすべてのポイントの合計とすべてのモデルポイントの数との比として表されるのに対し、クラッタスコアはすべてのターゲットポイントのクラッタスコアの合計とすべてのモデルポイントの数との比として定義される。モデルポイントはマッピングされたどのターゲットポイントもこのポイントの近傍内にあり、そのカバレッジスコアが１に設定され、さもなければ０である場合に、アライメントされたターゲットクラウドによってカバーされていると見なされる。ターゲットポイントは、モデルクラウド区域内又は近傍の位置にマッピングされ得るが、近くに実際のモデルポイントがなく（区域にモデルポイントが実質的になく）、そのクラッタスコアが１であり、さもなければクラッタスコアは０である場合に散乱していると見なされる。例示的に、カバレッジスコアはモデル上の所望された特徴がどれだけ多くターゲットによってカバーされているかを表し、クラッタスコアは無関係な特徴がターゲットクラウドからモデル空間に導入される程度を表す。随意に、一部のポイントの重要性を更に強調するために各ターゲット／モデルポイントに０と１の間のウェイトを導入して、上述したカバレッジ／クラッタスコアの別法を提供することもできる。
【００３２】
例示的な実施形態において、最終的に評価されたスコアはプロセス６００のステップ６６０に従い、次の通り定義される。
スコア＝カバレッジスコアクラッタスコア＊クラッタ比
クラッタ比はクラッタスコアのペナルティーを管理するための定数であり、ゼロと１の間にあり、例えば１／２（０．５）に設定され得るが、他の多様なファクターに基づいて変動することがあり、（例えば）上述したＧＵＩを用いて定義できる。例示的に、上記の式が負の値を生めば、スコアは０に設定される。或いは、プロセスはモデル３Ｄポイントクラウドとターゲット３Ｄポイントクラウドを３Ｄボリューム又はメッシュに転換するように配置でき、重なる区域の体積又は表面積を用いてカバレッジスコア及びクラッタスコアを計算できる。ポイントクラウドが各ポイントで定義されるより多くの属性を有する場合、上記のスコアは距離に加えて属性の類似点に基づいて計算され得る。モデル３Ｄポイントクラウド内の各ポイントは計算された「カバレッジウェイト」を有し、ターゲットポイント３Ｄクラウド内の各ポイントは計算された「カバレッジウェイト」と計算された「クラッタウェイト」を有することに留意されたい。そのようなウェイトはすべて［０、１］の範囲で定義される。カバレッジスコアはモデルカバレッジウェイトの合計とモデルポイントの数の比である。同様に、クラッタスコアはクラッタウェイトの合計とモデルポイントの数の比である。
【００３３】
実行時ポイントに対するカバレッジウェイトとクラッタウェイトは、それぞれそのマッピングされた最も近いモデルポイントからの距離に基づいて計算される。この距離が十分近い（例えば限界値ｄｉｓｔ＿ｔｈｒｅｓ１より小さい）場合、カバレッジウェイトは１に等しく、距離が増すに連れてカバレッジウェイト値は減少する。従って距離が十分遠い（例えば限界値ｄｉｓｔ＿ｔｈｒｅｓ２より大きい）場合、クラッタウェイトは１であり、距離が小さくなるに連れてクラッタウェイトは少なくなる。モデルポイントに対するカバレッジウェイトは、実行時ポイントのカバレッジウェイトに基づいている。例示的に、モデルポイントのカバレッジウェイトは実行時ポイントのカバレッジウェイトの最大数に等しい。これは次の関係で表される。ここで、Ｔはモデル空間からターゲット空間にマッピングするための変換である。
マッピングされたボックス←Ｔ＊境界ボックス
マッピングされたモデル←Ｔ＊モデルクラウド
Ｎモデル←モデルポイントの数
Ｗカバー←すべてのモデルポイントのカバレッジウェイトの合計。モデルポイントはマッピングされたボックス内のポイントに近ければ「カバーされている」。
Ｗクラッタを←マッピングされたボックス内のすべての実行時ポイントのクラッタウェイトの合計
スコアカバレッジ←Ｗカバー／Ｎモデル
スコアクラッタ←Ｗクラッタ／Ｎモデル
【００３４】
上述したように、更に図７及びプロセス７００を参照すると、クラッタスコアを計算するために使用する境界ボリュームの寸法は、モデルポイントクラウドのサイズに基づいて決定される（ステップ７１０）。境界ボリュームのサイズはトレーニング時にユーザが指定するか、又はユーザは境界ボックスが自動的に計算されることを要求できる（決定ステップ７２０）。自動的に設定される場合、ある基準の下で、境界ボリュームの寸法（サイズ）は、（例えば）モデルポイントクラウドを完全に包含する最小境界ボリュームに設定され得る（ステップ７３０）。実施形態において、境界ボリュームはある基準の下で軸合わせされ得る。ユーザが定義した場合は、境界ボリュームサイズはビジョンシステムの（例えば）ＧＵＩ（１６０、１６２、１６４）を介する入力に基づいてユーザ定義寸法に設定される（ステップ７４０）。次いで設定されたボックスサイズに基づき、上述したようにおおまかにアライメントされた境界ボリューム内にあるターゲットの３Ｄポイントクラウドに基づいてクラッタスコアが決定される（ステップ７５０）。すべてのスコアリングは最終的な精緻化されたポーズで実行されることに留意されたい。最初にモデルポイントクラウドとターゲットポイントクラウドをスコアリングするために、これらは最初のステップとして、モデル上の既知の特徴と比較してターゲット特徴を特定するために使用できるポイントのおおまかな特徴又は小さいセット（例えばコーナ、エッジなど）に基づいておおまかにアライメントされる。
【００３５】
再度プロセス６００に言及すると、カバレッジスコアとクラッタスコアとの差が決定されて各々の可能なアライメント候補に対する全体スコアが評価されたら（ステップ６６０）、ステップ６７０で最も高い全体スコア（ある場合）を有する１以上のアライメント候補が選択される。これが当該ターゲットに対するアライメントソリューションとなる。
【００３６】
例示的な実施形態において、システム及び方法は、ターゲット画像内のマルチプルインスタンスを検出するためにクラッタを含む画像を用いて使用できる。マルチプルインスタンスが見いだされた場合は、各インスタンスは上述したステップに従ってスコアリングされて、最良スコアを有する１以上のインスタンスが後続の処理のために検出されたターゲットとして特定される。
【００３７】
上述したシステム及び方法は、３Ｄポイントクラウドマッチング結果の精度を測定するための比較的単純な技術を提供することが明らかであろう。０〜１のスコアは理解しやすいメトリックを提供し、１はモデルポイントクラウドとターゲットポイントクラウドとの間の完全なマッチを定義し、これより高いスコアはより良好なポーズ評価を示し、これより低いスコアはあまり所望されない評価、及び所定のスコア限界を下回るときは拒否される可能性のある候補を定義する。このスコアはマッチングを決定するために使用される技術に依存せず、従って類似の基準に基づく異なる方法で得られた結果を評価するメトリックとして使用できる。更に言うと、例示的なシステム及び方法はポイントクラウド画像内のクラッタを処理する独特の能力を提供し、オブジェクト上の何らかの特徴を決定する際に追加の利点を与える。
【００３８】
以上、本発明の例示的な実施形態を詳細に説明した。本発明の精神と範囲を逸脱することなく種々の改変及び追加を行うことができる。上述した種々の実施形態の各々の特徴は、関連する新しい実施形態において多数の特徴の組み合わせを提供するのに適する限り、別の記載された実施形態の特徴と組み合わされてよい。更に、上に本発明の装置と方法の多数の別個の実施形態を記したが、ここに記載されたものは本発明の原理の応用を例示したものに過ぎない。例えば本明細書中で使用される「プロセス」及び／又は「プロセッサ」という言葉は広く電子ハードウェア及び／又はソフトウェアをベースとする多様な機能及びコンポーネントント（或いは機能的「モジュール」又は「エレメント」と呼ぶことがある）を含むものと解釈されるべきである。更に、図示されたプロセス又はプロセッサは他のプロセス及び／又はプロセッサと組み合わせ、又は種々のサブプロセス又はサブプロセッサに分割されてよい。そのようなサブプロセス及び／又はサブプロセッサは、本明細書に記載された実施形態に従って多様に組み合わせることができる。同様に、本明細書中の何らかの機能、プロセス及び／又はプロセッサは、プログラム命令の非一時的コンピュータ可読媒体からなる電子ハードウェア、ソフトウェア、或いはハードウェアとソフトウェアの組み合わせを用いて実施できることが明確に想定されている。更に、本明細書で使用される様々な方向及び／又は向きを表わす用語、例えば、「垂直」、「水平」、「上」、「下」、「底部」、「頂部」、「側部」、「前部」、「後部」、「左」、「右」及びこれに類するものは、相対的な表現法として用いられているに過ぎず、重力の作用方向など固定した座標系を基準とした絶対的な向きを表わすものではない。従ってこの説明は例示の方法によるものであり、本発明の範囲を別途制限することを意味するものではない。
【００３９】
以下に特許請求の範囲を記載する。
【図１】
0006506731.tif 000002
【図２】
0006506731.tif 000003
【図３】
0006506731.tif 000004
【図４】
0006506731.tif 000005
【図５】
0006506731.tif 000006
【図６】
0006506731.tif 000007
【図７】
0006506731.tif 000008