(57)【要約】  本発明は、物体の姿勢、例えばｘ軸、ｙ軸およびｚ軸に沿った位置、ピッチ、ロール、およびヨー（あるいはその姿勢の１つまたは複数の特性）を、物体の複数の画像から収集されたデータの三角測量によって３次元で求める方法および装置を提供する。例えば一態様では、本発明は、較正ステップ中に、物体の画像をそれぞれの異なる視点から取得するように配設された複数台のカメラが、それぞれのカメラのレンズから発する、そのカメラの視野内のピクセル位置に対応する３Ｄ空間内の光線を特定するマッピング関数を識別するように較正される、３Ｄマシンビジョンのための方法を提供する。トレーニングステップでは、カメラに付随する機能が、取得すべき物体の画像内にある複数の期待パターンを認識するようにトレーニングされる。実行時ステップが、それらのパターンのうちの１つまたは複数の３Ｄ空間内での位置を、物体の画像内にあるそれらのパターンのピクセルに関する位置、および較正ステップ中に識別されたマッピングから三角測量する。
2009511881.tif 000002
【特許請求の範囲】
【請求項１】
物体の位置および向きのうちの少なくとも１つを３次元で求めるための、３次元（３Ｄ）ビジョンの方法であって、
Ａ  前記物体の画像をそれぞれの異なる視点から取得するように配設された複数台のカメラを、それぞれのカメラのレンズから発する、そのカメラの視野内のピクセル位置に対応する３Ｄ空間内の光線を特定するマッピング関数を識別するように較正するステップと、
Ｂ  前記複数台のカメラに付随する機能を、それらによって取得されるべき前記物体の画像内にある複数の期待パターンを認識するようにトレーニングするステップと、
Ｃ  前記複数のパターンのうち１つまたは複数の３Ｄ空間内での位置を、前記物体の画像内にあるそれらのパターンのピクセルに関する位置、およびステップ（Ａ）中に識別された前記マッピングから三角測量するステップと
を含むことを特徴とする方法。
【請求項２】
前記ステップ（Ｃ）は、３Ｄ空間内での前記位置を、前記複数台のカメラによって実質的に同時に撮影された前記物体の画像から三角測量することを含むことを特徴とする請求項１に記載の方法。
【請求項３】
Ｄ  前記複数のパターンが残りのカメラからの画像とは一致しない、かつ／または実質的に食い違う位置にあるように見える画像を生成する、選択されたカメラを再較正する
ステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記ステップ（Ｄ）は、前記ステップ（Ｃ）において前記残りのカメラからの画像から求められた３Ｄ空間内での位置における位置を使用して、前記選択されたカメラのレンズから発する、そのカメラの視野内のピクセル位置に対応する３Ｄ空間内の光線を特定するマッピング関数を識別することを含むことを特徴とする請求項３に記載の方法。
【請求項５】
前記ステップ（Ａ）は、各位置決め目標を３Ｄ空間内の既知の各位置に配置すること、およびそれらの位置と前記複数台のカメラの視野内にあるそれぞれの目標の前記ピクセルに関する位置との間の相関関係を特徴付けることを含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記ステップ（Ａ）は、前記相関関係をアルゴリズム的に特徴付けることを含むことを特徴とする請求項５に記載の方法。
【請求項７】
前記ステップ（Ａ）は、位置決め目標のうちの１つまたは複数を配置し、それらが前記マッピング関数を識別する目的で複数台のカメラによって同時に結像されることを含むことを特徴とする請求項５に記載の方法。
【請求項８】
前記ステップ（Ａ）は、前記マッピング関数を識別するために、１つまたは複数の較正プレート上に配設される位置決め目標を結像することを含むことを特徴とする請求項７に記載の方法。
【請求項９】
前記ステップ（Ａ）は、１台または複数台のカメラに関して、そのカメラの視野内の歪みを考慮に入れたマッピング関数を識別することを含むことを特徴とする請求項５に記載の方法。
【請求項１０】
前記ステップ（Ｂ）は、前記複数台のカメラに付随する前記機能を、文字、数字、他の記号、隅部、または結像されることが期待される前記物体の他の識別可能な特徴のいずれかを含む期待パターンを認識するようにトレーニングすることを含むことを特徴とする請求項１に記載の方法。
【請求項１１】
前記ステップ（Ｂ）は、前記複数台のカメラに付随する前記機能を、結像されることが期待される前記物体上にある前記複数のパターンの３Ｄ空間内での期待位置に関してトレーニングすることを含むことを特徴とする請求項１に記載の方法。
【請求項１２】
前記ステップ（Ｂ）は、前記複数台のカメラに付随する前記機能を、結像されることが期待される前記物体上にある前記複数のパターン相互の３Ｄ空間内での期待位置に関してトレーニングすることを含むことを特徴とする請求項１１に記載の方法。
【請求項１３】
前記ステップ（Ｂ）は、前記複数台のカメラに付随する前記機能を、ユーザ入力に基づく前記複数のパターンの３Ｄ空間内での期待位置に関してトレーニングすることを含むことを特徴とする請求項１１に記載の方法。
【請求項１４】
前記ステップ（Ｂ）は、前記複数台のカメラに付随する前記機能を前記複数のパターンのうちの１つまたは複数の３Ｄ空間内での期待位置に関して、それらのパターンの実際の位置を（ｉ）トレーニング中の物体の画像内にあるそれらのパターンのピクセルに関する位置、および（ｉｉ）前記ステップ（Ａ）中に識別されたマッピングから三角測量することによってトレーニングすることを含むことを特徴とする請求項１１に記載の方法。
【請求項１５】
前記ステップ（Ｂ）は、前記複数のパターンのうちの１つまたは複数の３Ｄ空間内での期待位置を、（ｉ）トレーニング中の物体の画像内にあるそれらのパターンのピクセルに関する位置、（ｉｉ）前記ステップ（Ａ）中に識別されたマッピング、および（ｉｉｉ）結像されることが期待される前記物体上にある前記複数のパターンの３Ｄ空間内での期待位置から三角測量することを含むことを特徴とする請求項１１に記載の方法。
【請求項１６】
前記ステップ（Ｂ）は、前記機能を各パターンの原点に関してトレーニングすることを含むことを特徴とする請求項１１に記載の方法。
【請求項１７】
前記ステップ（Ｂ）は、前記機能を、類似モデルを使用して異なるカメラ相互間で類似パターンを特定するようにトレーニングすることを含むことを特徴とする請求項１６に記載の方法。
【請求項１８】
前記ステップ（Ｂ）は、前記機能を、（ｉ）異なるモデルを使用して異なるカメラ相互間で類似パターンを特定するように、また（ｉｉ）それらのパターンを用いて求められたパターンに関する類似基準点を特定するようにトレーニングすることを含むことを特徴とする請求項１６に記載の方法。
【請求項１９】
前記ステップ（Ｂ）は、１台のカメラからの画像内にある期待パターンを、別のカメラからの画像内にあるそのパターンの以前の特定に基づいて検出することを含むことを特徴とする請求項１に記載の方法。
【請求項２０】
前記ステップ（Ｃ）は、前記複数のパターンのうちの１つまたは複数の前記位置を、パターンマッチングまたは他の２次元ビジョンツールを使用して三角測量することを含むことを特徴とする請求項１に記載の方法。
【請求項２１】
前記ステップ（Ｃ）は、３Ｄ空間内でのパターンの前記位置を、そのパターンが上にあるように見える複数台のカメラの３Ｄ光線の最寄りの交差点から三角測量することを含むことを特徴とする請求項１に記載の方法。
【請求項２２】
前記ステップ（Ｃ）は、３Ｄ空間内でのパターンの前記位置を、（ｉ）そのパターンが上にあるように見える複数台のカメラの３Ｄ光線の最寄りの交差点、（ｉｉ）前記パターン以外のパターンが上にある、１台または複数台のカメラの１本または複数本の３Ｄ光線、および（ｉｉｉ）前記複数のパターンの期待位置のうちの１つまたは複数から三角測量することを含むことを特徴とする請求項１に記載の方法。
【請求項２３】
前記ステップ（Ｃ）は、類似モデルを使用して、異なるカメラによって取得される前記物体の画像内にある類似パターンを特定することを含むことを特徴とする請求項１に記載の方法。
【請求項２４】
前記ステップ（Ｃ）は、（ｉ）異なるモデルを使用して、異なるカメラによって取得される前記物体の画像内にある各類似パターンを特定すること、および（ｉｉ）それらのパターンに関する類似基準点を、それらが異なるモデルを使用して特定されたにも関わらず特定することを含むことを特徴とする請求項２３に記載の方法。
【請求項２５】
前記ステップ（Ｃ）は、前記複数のパターンのうちの１つまたは複数が前記物体の画像内で検出されない場合でさえ、前記物体の３Ｄ空間内での前記位置を三角測量することを含むことを特徴とする請求項１に記載の方法。
【請求項２６】
前記ステップ（Ｃ）は、前記物体の画像内にある１つまたは複数のパターンの検出を、そのような検出がある遅延間隔を超える場合に中止することを含むことを特徴とする請求項１に記載の方法。
【請求項２７】
請求項１、２、５、１１、１６または１９のいずれかに従って動作することを特徴とするマシンビジョンシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マシンビジョンに関し、より詳細には、３次元（３Ｄ）マシンビジョンに関する。本発明は、いくつか分野を挙げるとすれば、製造、品質管理、ロボットシステム（robotics）に応用される。
【背景技術】
【０００２】
マシンビジョンは、画像内に示される物体（object）の特性を求めるための、画像の自動解析を指す。これはしばしば自動製造ラインに使用され、部品の選別を容易にするために、また組立てができるように部品の配置および位置合せを決定するために、構成部品の画像が解析される。ロボットが自動組立ての手段であり、画像の自動解析が部品の選別、配置および位置合せを容易にするために使用される場合、システムは、ビジョン誘導型ロボットシステム（vision-guided robotics）と呼ばれる。マシンビジョンは、例えばロボットが環境中を移動するときに確実にシーン（scene）を認識するための、ロボットナビゲーションにも使用される。
【０００３】
３次元（３Ｄ）解析については、文献で長い間論じられてきたが、大多数の現代のマシンビジョンシステムは、２次元（２Ｄ）画像解析に頼っている。これには一般に、検査中の物体がビジョンシステムに、制約が加えられた向きおよび位置において「提示」されることが必要である。この目的のために、コンベヤベルトが一般に使用される。組立て中または検査中の物体は一般に、特定の既知の安定した３Ｄ配置形態（configuration）でベルト上に、ただし未知の位置および向きで配置されて、ビジョンシステムの視野内に移動される。システムは、視野内の物体の２Ｄ姿勢（すなわち位置および向き）に基づいて、また物体がコンベヤ上に配設されていることを考慮に入れて（それによって、確かなその「状態（lie）」およびビジョンシステムカメラからのその距離をレンダリングして）、２Ｄ幾何形状を適用することによって、物体の正確な３Ｄ姿勢および／または期待される外観との適合性を求める。
【０００４】
そのような２Ｄビジョン解析を使用した例が、例えば、「Methods and apparatus for machine vision inspection using single and multiple templates or patterns」という名称の特許文献１、「Machine vision methods for inspection of leaded components」という名称の特許文献２、「Nonfeedback-based machine vision methods for determining a calibration relationship between a camera and a moveable object」という名称の特許文献３、「Machine vision calibration targets and methods of determining their location and orientation in an image」という名称の特許文献４、「Machine vision methods using feedback to determine calibration locations of multiple cameras that image a common object」という名称の特許文献５、「Machine vision methods using feedback to determine an orientation, pixel width and pixel height of a field of view」という名称の特許文献６、「Nonfeedback-based machine vision method for determining a calibration relationship between a camera and a moveable object」という名称の特許文献７、「Fast high-accuracy multi-dimensional pattern localization」という名称の特許文献８、「Fast high-accuracy multi-dimensional pattern inspection」という名称の特許文献９、および「Fast high-accuracy multi-dimensional pattern inspection」という名称の特許文献１０を含む、本明細書の譲受人の以前の研究に示されている。
【０００５】
工場の生産現場から家に至るあらゆるところでロボットシステムに対する依存が増大するのに伴い、実用的な３Ｄビジョンシステムの必要が表面化してきた。これは、こうした環境の多くでは、例えばコンベヤベルト上に提示される物体の場合に普通ならそうなり得るように、検査を受ける物体が全体的な位置および状態において制約が加えられているとは必ずしも限らないためである。すなわち、物体の正確な３Ｄ配置形態が未知の場合がある。
【０００６】
３Ｄシーンにおける姿勢および位置のさらなる自由度に対応するためには、必ずしも必要でないとしても、３Ｄビジョンツールは役に立つ。それらの例には、「System and method for registering patterns transformed in six degrees of freedom using machine vision」という名称の特許文献１１、および「System and method for determining the position of an object in three dimensions using a machine vision system with two cameras」という名称の特許文献１２がある。
【０００７】
他のマシンビジョン技法が当技術分野において提案されてきた。実時間（real-time）での利用に対して実用的となるように過剰な処理装置パワーを必要とするものもあれば、検査を受ける物体が複雑な位置決め手順を経ること、および／または実行中に、物体の特徴の多くが、ビジョンシステムの視野内で同時に見えることを必要とするものもある。
【０００８】
マシンビジョン分野以外に、当技術分野は、接触覚センサ付きのｘ、ｙ、ｚ測定機を使用するような、３Ｄ姿勢を求める接触ベースの方法も提供している。しかしこの方法は、接触を必要とし、比較的遅く、人手による介入を必要とすることがある。３Ｄ姿勢を求めるための電磁波ベースの方法も提供されてきた。この方法は、物理的な接触を必要としないが、検査を受ける物体に送信機を取り付けるというしばしば非実用的なステップを必要とするなど、それ自体の欠点がある。
【０００９】
【特許文献１】米国特許第６，７４８，１０４号明細書
【特許文献２】米国特許第６，６３９，６２４号明細書
【特許文献３】米国特許第６，３０１，３９６号明細書
【特許文献４】米国特許第６，１３７，８９３号明細書
【特許文献５】米国特許第５，９７８，５２１号明細書
【特許文献６】米国特許第５，９７８，０８０号明細書
【特許文献７】米国特許第５，９６０，１２５号明細書
【特許文献８】米国特許第６，８５６，６９８号明細書
【特許文献９】米国特許第６，８５０，６４６号明細書
【特許文献１０】米国特許第６，６５８，１４５号明細書
【特許文献１１】米国特許第６，７７１，８０８号明細書
【特許文献１２】米国特許第６，７２８，５８２号明細書
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明の一目的は、マシンビジョンのための、より詳細には、３次元マシンビジョンのための改善された方法および装置を提供することである。
【００１１】
本発明の関連目的は、製造、品質管理、およびロボットシステムを含むがそれらに限定されない、実用的な応用分野の範囲を有するような方法および装置を提供することである。
【００１２】
本発明の別の関連目的は、例えば３次元空間における位置および姿勢の特定を可能にするような方法および装置を提供することである。
【００１３】
本発明の別の関連目的は、検査中の物体の、例えば全体的な位置および状態に関しての低減された制約を課すような方法および装置を提供することである。
【００１４】
本発明の別の関連目的は、検査を受ける物体の位置決めに関する要件を最小限に抑えるような方法および装置を提供することである。
【００１５】
本発明の別の目的は、現在および将来のマシンビジョンプラットフォームとして実施できるような方法および装置を提供することである。
【課題を解決するための手段】
【００１６】
前述したことは、とりわけ、物体の姿勢、例えばｘ軸、ｙ軸およびｚ軸に沿った位置、ピッチ、ロールおよびヨー（yaw）（あるいはその姿勢の１つまたは複数の特性）を、物体の複数の画像から収集されたデータの三角測量によって３次元で求める方法および装置を提供する本発明により達成される目的のうちに含まれる。
【００１７】
したがって、例えば一態様では、本発明は、較正ステップ中に、物体の画像をそれぞれの異なる視点から取得するように配設された複数台のカメラが、それぞれのカメラのレンズから発する、そのカメラの視野内のピクセル位置に対応する３Ｄ空間内の光線を特定するマッピング関数（mapping function）を識別するように較正される、３Ｄマシンビジョンのための方法を提供する。トレーニングステップでは、カメラに付随する機能が、取得すべき物体の画像内にある複数の期待パターンを認識するようにトレーニングされる。実行時ステップが、それらのパターンのうち１つまたは複数の３Ｄ空間内での位置を、物体の画像内にあるそれらのパターンのピクセルに関する（pixel-wise）位置、および較正ステップ中に識別されたマッピングから三角測量する。
【００１８】
本発明の別の態様は、実行時ステップが、複数台のカメラによって実質的に同時に撮影された物体の画像から位置を三角測量する、上述の方法を提供する。
【００１９】
本発明の別の目的は、物体の実行時画像を使用して、前述のマッピング関数を、例えば較正から外れたカメラに関して識別する再較正ステップを含むような方法を提供することである。したがって、例えば１台のカメラが画像を生成し、その画像内で、パターンが、（例えばそのカメラに関する３Ｄ光線に対してマッピングされたときに）残りのカメラからの（例えばそれぞれの３Ｄ光線を使用してマッピングされたときの）画像と一致しない、かつ／または大幅に食い違うような位置にあるように見える場合、それらの残りのカメラからの画像を用いて求められたパターン位置を使用して、その１台のカメラを再較正することができる。
【００２０】
本発明の別の態様は、較正ステップが、（例えば較正プレートまたはその他の手段上の標的、十字線などの）各位置決め目標を、３Ｄ空間内の既知の各位置に配置すること、およびそれらの位置と、各カメラの視野内にあるそれぞれの目標のピクセルに関する位置との相関関係を記録する、または例えばアルゴリズム的に特徴付けることを含む、上述の方法を提供する。本発明の諸関連態様は、それらの位置決め目標、較正プレートなどのうち１つまたは複数を使用して、複数台のカメラを同時に、例えば同時結像によって較正するような方法を提供する。
【００２１】
本発明の他の態様は、較正ステップが、視野内の歪みを考慮に入れたマッピング関数をカメラごとに識別することを含む、上述の方法を提供する。
【００２２】
本発明の別の態様は、トレーニングステップが、カメラに付随する機能を、文字、数字、（位置決め目標など）他の記号、隅部、または物体の（暗点や光点など）他の識別可能な特徴などの、例えば測定法および検索／検出モデルがそれに関して当技術分野で既知の期待パターンを認識するようにトレーニングすることを含む、上述の方法を含む。
【００２３】
本発明の別の関連態様は、トレーニングステップが、前述の機能を、「モデル点」、すなわち実行時に検査される物体上にあるパターンの３Ｄ空間内での（例えば絶対的または相対的な）期待位置に関してトレーニングすることを含むような方法を提供する。それらの画像から識別された三角測量された３Ｄ位置と組み合わせて、実行時ステップ中にこの情報を使用することによって、その物体の姿勢を識別することができる。
【００２４】
本発明の諸態様によれば、パターンの期待位置（すなわちモデル点）に関するトレーニングは、そのようなパターンそれぞれの基準点（または「原点」）の２Ｄ姿勢を検出することを含む。２台以上のカメラの視野内に出現することが期待されるパターンの場合、そのような基準点により、３Ｄ空間内でのそれらのパターンの（したがって物体の）位置を求めるための、以下に述べる三角測量が容易になる。
【００２５】
本発明の諸関連態様は、期待パターンに関するトレーニングが、各カメラに付随する機能内で、類似モデルを、異なるカメラ相互間で類似の期待パターンをトレーニングするのに利用することを含むような方法を提供する。これには、実行時に検出されたパターンに関する基準点（または原点）が、それらの異なるカメラによって得られる画像相互間で一致することが確実になるという利点がある。
【００２６】
本発明の別の関連態様は、期待パターンに関するトレーニングが、各カメラに付随する機能内で、異なるモデルを類似パターンとして異なるカメラ相互間で利用することを含むような方法を提供する。こうすることにより、例えば姿勢、視角および／または障害物により、異なるカメラが各パターンを結像する様式が変更される場合に、それらのパターンの検出が容易になる。
【００２７】
本発明の諸関連態様は、モデリングされた各パターンの基準点（または原点）の選択をトレーニングすることを含むような方法を提供する。そのようなトレーニングは、それらの基準点（または原点）が、それらの異なるカメラによって得られた画像相互間で一致することを確実にするために、例えばオペレータの手で、例えばレーザポインタまたはその他の手段を使用して達成することができる。
【００２８】
本発明の諸関連態様は、トレーニングステップが、パターンの位置を、例えば実行時段階（runtime phase）中に実施されるものに類似の三角測量法を利用することによって識別することを含むような方法を提供する。あるいは、パターンの期待（相対）位置を、オペレータの手で入力する、かつ／または他の測定法によって識別することもできる。
【００２９】
本発明の別の関連態様は、トレーニングステップが、１台（または複数台）のカメラからの画像内にある期待パターンを、別のカメラからの画像内にあるそのパターンの以前の特定に基づいて検出することを含むような方法を提供する。したがって、トレーニングステップは、例えばオペレータが１台のカメラから撮影された画像内にある期待パターンを特定した後、残りのカメラからの画像内にあるその同じパターンを自動的に検出することを含むことができる。
【００３０】
本発明の別の態様は、トレーニングステップが、カメラごとに物体の複数のビューを、好ましくはそうした物体上に見られるパターンの原点が一貫して定義されるように取得する、上述の方法を提供する。画像間の潜在的な不一致を補償するために、パターンに関して最高一致得点をもたらすものを使用することができる。これには、任意の姿勢の部品を検出するように、方法をより堅牢にするという利点がある。
【００３１】
本発明の別の態様では、実行時ステップ（runtime step）が、実行時画像（runtime image）内にあるパターンのうち１つまたは複数の位置を、例えばパターンマッチングまたは他の２次元ビジョンツールを使用して、また、それぞれのカメラの視野内にあるそれらのパターンのピクセルに関する位置を、それらのパターンが上にある前述の３Ｄ光線に相関付けるように較正段階中に識別されたマッピングを使用して、三角測量することを含む。
【００３２】
本発明の諸関連態様によれば、パターン位置の三角測量は、例えば所与のパターンの位置が、そのパターンが上にある（複数台のカメラからの）複数本の３Ｄ光線が交差する点（または最小二乗適合点）から求められる場合のような、「直接的」三角測量によるものとすることができる。あるいは、またはそれに加えて、三角測量は、所与のパターンの位置が、そのパターンが上にある１本の光線（または複数本の光線）からだけではなく、（ｉ）残りのパターンが上にある光線、および（ｉｉ）（例えばトレーニング段階中に求められる）それらのパターン相互の相対位置からも求められる場合のような、「間接的」でもよい。
【００３３】
本発明の他の態様は、カメラに付随する機能が、トレーニングまたは実行時中に物体の画像内に期待パターンを検出することができない場合に、例えばそのようなパターンが欠如している、隠されている、または検出されない場合に「タイムアウト」し、それによって、位置特定の際に過度の遅延を回避する、上述の方法を提供する。
【００３４】
本発明の別の態様は、上述の方法に類似し、ＩＤマトリックスコード（あるいはその外観および／または位置が予め定義されたまたは既知の他のパターン）が上記で論じたパターンの代わりに使用される。本発明のこれらの態様では、トレーニングステップが不要になる、または低減される。その代わりに、３Ｄ位置にマッピングするために、そうしたコード（または他のパターン）の２Ｄ位置を、例えば一般的なタイプの特徴に合わせて設計されたビジョンツールによって、トレーニング段階または実行時の画像から識別することができる。
【００３５】
本発明の他の態様は、例えばデジタル処理機能およびカメラを含み、上記の方法に従って動作する、マシンビジョンシステムを提供する。本発明のこれらの態様および他の態様は、図面中および以下の説明において明白である。
【００３６】
本発明の別の関連態様は、物体の検査により、例えばその一部分の相対位置を求めて、妥当性検証することが可能になるような方法および装置を提供する。そのような方法および装置を、非限定的な例として、例えば組立て、品質管理、保守、または他の作業中に、検査および評価を支援するために使用することができる。
【００３７】
本発明の別の関連態様は、物体の部品（または他の部分）の欠如、または不適切な配置を、（例えばその部品／部分に関連する）１つまたは複数の期待パターンが実行時画像から欠如している場合、またはそうした画像内ではあるが、期待されないまたは望ましくない３Ｄ位置に位置するピクセル位置にある場合に、推論するような方法および装置を提供する。
【００３８】
本発明の別の関連態様は、実行時ステップ中に、物体の部品または他の部分の位置が、実行時画像内に見られるパターンに対応する３Ｄ位置のサブセットに基づいて求められ、その３Ｄ位置が、さらに別のパターンの期待位置を求めるのに使用されるような方法および装置を提供する。そうした別のパターンの期待位置は、例えば実行時画像から求められるその実際の３Ｄ位置と比較することができる。比較において特定された位置の差が指定の許容差を超える場合、システムは適切な通知を（例えばオペレータに対して）生成することができる。
【００３９】
本発明によるシステムおよび方法の利点は、それらが従来技術のシステムの手法よりも使用しやすく、より実用的であり、しかもビジョンベースであり、したがって検査を受ける物体との接触または検査を受ける物体の事前準備を必要としないことである。（本発明による）そのようなシステムおよび方法は、容易にセットアップし、次いで「ショーアンドゴー（show-and-go）」を使用してトレーニングすることができる。
【００４０】
さらにそれらは、例えば欠如している結果および間違った結果に対して、迅速な性能および堅牢さを提供する。したがって、例えば本発明の諸態様による方法および装置は、いくつかのパターンが、例えばパターンが１台または複数台のカメラによるビューから隠されているため、またはそれらのパターンの画像を適時取得することができないため、いくつかの（また、いくつかの状況下では、いずれの）実行時画像の中に見られなくても、物体の姿勢を求めることができる。別の例として、本発明の諸態様による方法および装置は、（例えば位置合せ不良のカメラによって生じる）間違った結果に対して、実行時画像内に見られるパターンに対応する３Ｄ位置のサブセットを使用した三角測量をすることによって堅牢さを提供する。サブセットの１つが、より低い二乗和誤差（sum-squared error）をもたらす場合、全てのパターンではなくそのサブセットを、位置三角測量に使用することができる。
【００４１】
本発明のより完全な理解は、図面を参照することによって得ることができる。
【発明を実施するための最良の形態】
【００４２】
図１は、物体１２の姿勢を、物体の複数の画像から収集されたデータを三角測量することによって３次元で求めることができる、本発明によるマシンビジョンシステム１０を示す。図示の実施形態では、姿勢は、３次元空間における物体の位置および向きとして、すなわちより正確には、ｘ軸１４、ｙ軸１６およびｚ軸１８に沿った物体の位置、ならびにそれらに関する物体のピッチ、ロールおよびヨーとして定義される。他の実施形態では、姿勢をこれらの空間的特性のサブセット（例えば、軸１６に沿った位置およびヨー、軸１４〜１８に沿った位置、ロールなど）に限定することができる。図示の軸１４〜１８は、ビジョンシステム１０のフレーム２０に位置合せされているが、他の実施形態では、他の基準フレームを使用することができる。図示の実施形態のフレーム２０は、太線で示すカメラマウント２０ａおよびプラットフォーム２０ｂによって例示されているが、他の実施形態では、他の部材を使用する必要がある、またはそのような部材を使用する必要がない。
【００４３】
システム１０は、デジタルデータ処理装置２２および画像取得装置２４をさらに含む。ここでは、話を簡単にするためにｉＭＡＣ（登録商標）Ｇ５パーソナルコンピュータとして示されるデジタルデータ処理装置２２は、本明細書の教示に従って、物体１２の姿勢を取得装置２４によって供給される画像から求めるようにプログラムされる、またはその他の手段で構成される、プロプライエタリ、オープンソース、または他のオペレーティングシステムが稼動する、メインフレームコンピュータ、ワークステーション、（例えば、Ｗｉｎｄｏｗｓ（登録商標）／Ｉｎｔｅｌ  Ｐｅｎｔｉｕｍ（登録商標）  ４プラットフォーム、またはその他のプラットフォームが稼動する）パーソナルコンピュータ、専用のビジョンコンピュータ、組込み処理装置、あるいは他のデジタルデータ装置とすることができる。デジタルデータ処理装置は、全て当技術分野で既知のタイプの、図示の表示装置２２ａ、ならびにキーボード２２ｂ、マウス２２ｃおよび他の入力／出力装置を含むことができる。
【００４４】
画像取得装置２４は、マシンビジョンカメラでも、ビデオカメラでも、スチルカメラでも、物体１２の画像を可視または他の関連するスペクトルにおいて取得することができる他の装置でもよい。一般性を喪失することなく、続く説明では、装置２４は一般に、「カメラ」と呼ばれるが、実際には、どんな様式の画像取得機能を備えてもよい。図示の実施形態では、３台のそうした装置２４が示してあるが、実際には、任意の複数台の装置（例えば２台以上）を使用することができる。これらの装置は、物体１２の画像を、それぞれの異なる視点から取得するように配設される。いくつかの実施形態では、検査中の物体の３Ｄ姿勢を、単一のそうした装置２４からの画像を使用して求めることもでき、したがって実施形態が全て、複数台のカメラからの画像を必要とするとは限らないことも、当業者には理解されよう。
【００４５】
デジタルデータ処理装置２２は、本明細書の教示に従って動作するようにプログラムされているが、当技術分野で既知のタイプの、中央処理装置（ＣＰＵ）、メモリ（ＲＡＭ）、および入力／出力（Ｉ／Ｏ）機能をさらに含む。
【００４６】
具体的には、図示の実施形態では、それらは図２に示す方法に従って３Ｄマシンビジョンを実現するように構成される。図２では、較正ステップ３０において、複数台のカメラ２４がそれぞれ、そのカメラのレンズから発する、そのカメラの視野内のピクセル位置に対応する３Ｄ空間内の光線を特定する、それぞれのマッピング関数を識別するように較正される。
【００４７】
図３を参照すると、この点に関して、較正ステップは、（例えば較正プレート４０またはその他の手段上の標的、十字線などの）各位置決め目標を、３Ｄ空間内の既知の各位置に配置すること、およびそれらの位置と、各カメラの視野内にあるそれぞれの目標のピクセルに関する位置との相関関係を記録する、または例えばアルゴリズム的に特徴付けることを含む。好ましくは、このマッピングには、それぞれのカメラ２４の視野内の歪みが考慮される。
【００４８】
図示の実施形態では、位置決め目標、較正プレート４０などを使用して、複数台のカメラ２４を同時に、例えば同時結像によって較正する。したがって、一例として、オペレータが画像取得装置２４のうち２台以上の視野内に目標を配置して、それらがその目標を、較正目的で同時に結像することができる。較正プレート４０などが較正に使用される場合、それは、好ましくはフィデューシャル（fiducial）４１（例えば、一様なチェッカーボードパターンとは異なる一意のパターン）を原点のところに示し、したがって全ての取得装置２４を、特定の向きを有する同じ一意の基準点に対して較正することができる。装置２４を一貫してそのように較正することによって、それらを全て使用して、その画像座標（例えばパターン原点のピクセルに関する位置）から共通の基準点またはフレームに対してマッピングすることができる。そのような好ましいフィデューシャルは、図面中のＬ字形フィデューシャルの場合と同様に、非対称である。
【００４９】
そのような較正の基礎となる方法および装置が、非限定的な例として、「Methods and apparatus for machine vision inspection using single and multiple templates or patterns」という名称の特許文献１、「Machine vision methods for inspection of leaded components」という名称の特許文献２、「Nonfeedback-based machine vision methods for determining a calibration relationship between a camera and a moveable object」という名称の特許文献３、「Machine vision calibration targets and methods of determining their location and orientation in an image」という名称の特許文献４、「Machine vision methods using feedback to determine calibration locations of multiple cameras that image a common object」という名称の特許文献５、「Machine vision methods using feedback to determine an orientation, pixel width and pixel height of a field of view」という名称の特許文献６、「Nonfeedback-based machine vision method for determining a calibration relationship between a camera and a moveable object」という名称の特許文献７、「Fast high-accuracy multi-dimensional pattern localization」という名称の特許文献８、「Fast high-accuracy multi-dimensional pattern inspection」という名称の特許文献９、および「Fast high-accuracy multi-dimensional pattern inspection」という名称の特許文献１０に教示され、その全ての教示が、参照により本明細書に組み込まれる。最後の３件の特許文献に記載の方法および装置は、本明細書の別の場所で「ＰａｔＭａｘ」という名称で呼ばれる。
【００５０】
任意選択のトレーニングステップ３２では、それぞれのカメラ２４に付随するモジュール（例えばコードシーケンス、サブルーチン、関数、オブジェクト、他のデータ構造および／または関連ソフトウェア、あるいは他の機能）を、実行時中に取得すべき物体１２の画像内にある期待パターンを認識するようにトレーニングする。期待パターンは、文字、数字、（位置決め目標など）他の記号、隅部、または物体１２の実行時画像内で識別可能であることが期待される（暗点や光点など）他の特徴であり、例えば、測定法および検索／検出モデルがそれに関して当技術分野で既知のものとすることができる。それらのパターンは、永久に物体の一部分でも、物体に添付されてもよい。しかし、それらのパターンは、例えば取外し可能な較正目標の場合と同様に、一時的でもよい。実際には、それらのパターンは、物体に物理的に関連付けられることさえ不要である。例えば、それらのパターンを、トレーニング段階および／または実行時段階中に結像される物体上に、例えばレーザまたは他の装置によって、光学的にまたは他の手段で投影することができる。
【００５１】
各カメラ２４に付随するモジュールまたは他の機能を、パターンを認識するようにトレーニングすることに加えて、図示の実施形態のトレーニングステップ３２は、それらをモデル点位置、すなわち、実行時中に検査される物体上にあるパターンの例えば相互の（すなわち３Ｄ空間内での）期待位置に関してトレーニングすることを含む。これは、例えば、実行時段階中に実施されるものに類似の三角測量法を利用することによるものとすることができる。あるいは、それらのパターンの期待（相対）位置を、オペレータの手で入力する、かつ／または他の測定法（例えば、ルーラ、キャリパ、光学的距離ゲージなど）によって識別することもできる。
【００５２】
三角測量が使用されるか、それとも他の方法が使用されるかに関わらず、トレーニングステップ３２は、好ましくは、各カメラ２４に付随するモジュールまたは他の機能を、そのようなトレーニングされるパターンそれぞれの基準点（または「原点」）に関してトレーニングすることを含む。２台以上のカメラの視野内に出現することが期待されるパターンの場合、そのような基準点に関するトレーニングにより、３Ｄ空間内でのそれらのパターンおよび／または物体の位置を、直接的および間接的に三角測量することが容易になる。
【００５３】
図示の実施形態では、そのようなトレーニングは、類似モデル（例えば「ＰａｔＭａｘ」など）を、異なるカメラ２４相互間で類似期待パターンをトレーニングするのに使用することによって達成することができる。これには、実行時に検出されたパターンに関する基準点（または原点）が、それらの異なるカメラによって得られる画像相互間で一致することが確実になるという利点がある。
【００５４】
姿勢、視角および／または障害物により、異なるカメラ２４が類似パターンを見る見方が変わる場合、そのようなトレーニングには、異なるカメラ相互間で異なるモデルを（類似パターンとして）利用することを含むことができる。モデルが異なれば、類似パターンに関して異なる基準点が特定される傾向があり得るので、図示の実施形態では、類似パターンに関する類似基準点の選択を、オペレータがトレーニングすることが可能である。
【００５５】
これは、一例として、トレーニングステップ３２中に、（ステップ３４において検索するためのテンプレートとして使用すべき）パターンの画像を複数台のカメラ２４から同時に取得し、次いでレーザポインタで物体を照らすことによって達成することができる。レーザ照射を用いて取得された画像から、レーザ点の３Ｄ位置を計算し、それによって、パターンの全ての画像上で一致する原点を定義することができる。（ここでは、異なるモデルをパターントレーニングに使用することに関して説明しているが、この技法は、類似モデルが使用される場合にも適用することができる）。この目的のために、余分なレーザポインタ点がある、またはない画像を使用して、ａｕｔｏＴｈｒｅｓｈｏｌｄｉｎｇおよびｂｌｏｂ解析を実行することによって、全ての画像内でその点の中央を検出し、それによって一貫性のある一致した原点を求めることができる。本明細書の別の場所で論じるように、この点の３Ｄ位置を得るために三角測量を使用することができ、それによってこの技法を、（トレーニング中の）物体上にある複数パターンに、例えば物体が移動しないことを条件として使用することが可能になる。
【００５６】
本発明の好ましい一実施によれば、トレーニングステップ３２は、１台（または複数台）のカメラ２４からの画像内にある期待パターンを、別のカメラからの画像内にあるそのパターンの以前の特定に基づいて検出することを含む。したがって、トレーニングステップは、例えばオペレータが１台のカメラから撮影された画像内にある期待パターンを特定した後、残りのカメラからの画像内にあるその同じパターンを自動的に検出することを含むことができる。
【００５７】
好ましい諸実施形態では、ステップ３２は、カメラ２４ごとに物体の複数のビューを、好ましくはそうした物体上に見られるパターンの原点が一貫して定義されるように取得することを含む。画像間の潜在的な不一致を補償するために、パターンに関して最高一致得点をもたらすものを使用することができる。これには、任意の姿勢の部品を検出するように、方法をより堅牢にするという利点がある。
【００５８】
上述したように、トレーニングステップ３２は任意選択である。本発明のいくつかの実施形態では、トレーニングステップ３２は、能力が低減された状態で使用され、または全く使用されない。例えば、実行時に期待されるパターンがｂｌｏｂモデル（例えば明るい特徴を探すもの）によって検索できる場合、パターントレーニングは必要ないが、上述のタイプの位置トレーニングが依然として使用される。そうしたことは、さらなる例として、ＩＤマトリックスコードであるパターン（あるいはその外観および／または位置が予め定義されたまたは既知の他のパターン）が、上記で論じたトレーニング可能なパターンの代わりに使用される場合にも当てはまる。この場合、３Ｄ位置にマッピングするために、そうしたコード（または他のパターン）の２Ｄ位置が、例えば一般的なタイプの特徴に合わせて設計されたビジョンツールによって、トレーニング段階または実行時の画像から識別される。本発明のそうした実装形態は有用である。というのも、工業用部品はいつでもＩＤマトリックスコードを有することができ、それによって複数のトレーニングレスセンサが、ＩＤマトリックスコードの３Ｄ位置を出力することができるためである。さらに、ＩＤマトリックスコードは長方形の領域に広がるので、そうしたセンサは全て、４隅の２Ｄ位置を出力することができる。さらに、ＩＤマトリックスが特定の工程を用いて印刷される場合、（コードのサイズ／タイプを知ることにより）その３Ｄ位置を知り、３Ｄ姿勢を計算することができる。
【００５９】
実行時ステップ３４では、デジタルデータ処理装置２２が、物体１２上にあるパターン４２ａ〜４２ｃのうちの１つまたは複数の３Ｄ空間内の位置を、物体１２の実行時画像内にあるそれらのパターンを表すピクセルに関する位置に基づいて、また較正ステップ３０中に識別されたマッピングから三角測量する。図示の実施形態では、物体１２のそれらの実行時画像が、好ましくは同時に、または実質的に同時に、装置２４によって取得される。この点に関して、実質的に同時にとは、物体１２、装置２４、フレーム２０、またはその他のものの動きが、実行時画像内のパターンのピクセルに関する位置、および／またはそこから求められるマッピングに実質的に影響を及ぼさないほど、画像取得がほぼ時間的に迫って行われることを指す。そのような同時取得は、カメラ２４を同時に（またはほぼそのように）作動させることによって、あるいは、例えばカメラ２４のシャッタが開いている間に、結像された物体をストロボ照射することを含む他の手段によって達成することができる。
【００６０】
図示の実施形態では、位置三角測量が、パターンマッチングまたは他の２次元ビジョンツールを使用して、実行時画像内にあるパターンのピクセルに関する位置を識別することによって、また、それぞれのカメラ２４の視野内にあるそれらのパターンのピクセルに関する位置を、それらのパターンが上にある前述の３Ｄ光線に相関付けるように較正段階中に識別されたマッピングを使用することによって達成される。そのような２Ｄビジョンツールを使用した例には、前述の参照により組み込まれる特許文献１、特許文献２、特許文献３、特許文献４、特許文献５、特許文献６、特許文献７、特許文献８、特許文献９および特許文献１０がある。
【００６１】
パターン位置の三角測量は、例えば所与のパターンの位置が、そのパターンが上にある（複数台のカメラからの）複数本の３Ｄ光線が交差する点から求められる場合のような、「直接的」三角測量によるものとすることができる。あるいは、またはそれに加えて、三角測量は、所与のパターンの位置が、そのパターンが上にある１本の光線（または複数本の光線）からだけでなく、（ｉ）残りのパターンが上にある光線、および（ｉｉ）結像された物体上にある（例えばトレーニング段階中に求められる）それらのパターン相互の相対位置からも求められる場合のような、「間接的」であってもよい。
【００６２】
図示の実施形態では、１つまたは複数のパターンが上にあるように見える（複数台のカメラ２４からの）複数本の３Ｄ光線相互間または複数本の３Ｄ光線の中で交差（または最寄りの交差）点を検出するために、直接的および／または間接的三角測量で「最小二乗適合」または他のそうした方法を利用することができる。例えば、２台以上のカメラ２４から取得された画像が、所与のパターン（より正確にはそのパターンの明らかな原点）が２本以上の光線上にあることを示す場合、最小二乗適合法を使用して、３Ｄ空間内でのそれらの光線の交差位置、またはそこに最寄りの点（すなわち、それらの光線の最寄りにある空間内の点）を求めることができる。同様に、カメラ２４からの画像が、複数光線上にある複数パターンに関する原点を示す場合、物体上にあるそれらのパターンのモデル点を用いて最小二乗適合を使用することによって、それらのパターンおよび／または物体自体の最も可能性のある位置を求めることができる。
【００６３】
図示の実施形態は、光線とパターンの最小二乗（または二乗平均平方根）適合を見つけ出すために、オプティマイザ（または「ソルバ（solver）」）を利用する。これは、当技術分野で入手可能なタイプの汎用ツールであり、かつ／または以下に詳述するように動作することができる。いずれにせよ、実行時ステップ３４中に、実行時画像から特定されたパターン（より正確にはパターン原点）が上にある３Ｄ光線の定義、ならびに（関連のある場合）物体上にある各パターンの位置または相対位置がソルバに供給される。
【００６４】
一般に、この情報により、過度に制約が加えられた（over-constrained）システムが定義され（すなわち、実際の位置を推論するために必要であるよりも多くの情報が、光線の定義および物体上の相対パターン位置によって供給される）、図示のシステムはそれを、堅牢さを目的として利用する。したがって例えば、実行時ステップ３４は、（例えばパターンが１つまたは複数のカメラのビューから隠されている場合、あるいはパターン画像の適時取得を可能にしない照明または他の状況の場合のように）例えばパターンが物体またはその実行時画像から欠如している場合でさえ、物体の姿勢を求めることができる。また、さらなる例として、実行時ステップ３４は、光線とモデル点、または光線の三角測量との間の適合の二乗平均平方根（ＲＭＳ）誤差を最小限に抑えるために、取得装置２４によって検出されたパターン原点のサブセット（より正確には、パターン原点に対応する位置のサブセット）を試用することを含むことができる。サブセットの１つに、より低い二乗和誤差がある場合、全てのパターン原点ではなくそのサブセットを、位置三角測量に使用することができる。
【００６５】
一般に、この情報により、過度に制約が加えられたシステムが定義され（すなわち、実際の位置を推論するために必要であるよりも多くの情報が、光線の定義および物体上の相対パターン位置によって供給される）、図示のシステムはそれを、堅牢さを目的として利用する。したがって例えば、実行時ステップ３４は、例えばいくつかのパターンが（例えば、あるパターンの位置を、残りの検出されたパターンにより予測される位置と比較することによって検査／妥当性検証するように）考慮から意図的に除外される場合でさえ、物体の姿勢を求めることができる。
【００６６】
また、さらなる例として、実行時ステップ３４は、光線とモデル点、または光線の三角測量との間の適合の二乗平均平方根（ＲＭＳ）誤差を最小限に抑えるために、取得装置２４によって検出されたパターン原点のサブセット（より正確には、パターン原点に対応する位置のサブセット）を試用することを含むことができる。次いで、このステップは、サブセット内に含まれなかった（すなわち、上述のように意図的に除外された）パターンの３Ｄ位置を外挿して、それぞれのカメラ内での２Ｄ画像位置を予測することができる。予測された画像位置は、実際の測定された画像位置と比較することができる。予測された画像位置と実際の測定された画像位置との間の距離が、何らかのユーザ指定の距離許容差を超える場合、システムは適切な警告または他の通知を生成することができる。あるいは、またはそれに加えて、除外されたパターンの外挿された３Ｄ位置を、三角測量によって求められた３Ｄ位置に対して比較することができる。この場合もやはり、外挿された（予測された）位置と実際の位置との間の距離が異なる場合、実行時ステップ３４は、適切な警告または他の通知を生成することを含むことができる。
【００６７】
トレーニング段階と実行時段階のどちらの間でも、パターン認識の速度を向上させるために、図示の実施形態は、１つのパターンの検出された位置を利用して、残りのパターンに対する検索の自由度を制限することができる。例えば、第１のカメラ２４がパターンを１５度で検出し、別のカメラが第１のカメラとほぼ同じ向きである場合、別のカメラは、パターンを向き１５±１０度で探すだけでよい。さらに、１台のカメラから原点の位置が与えられると、その原点が、ある３Ｄ光線に沿って存在することが分かり、それによってその光線を第２のカメラの視野上に投影し、その線に沿ってパターンを探すだけでよい。
【００６８】
２つのパターンが混同しやすい（すなわち、カメラの視野内にあるパターンに類似する２つの具体例がある）場合、図示の実施形態は、可能な異なる対応関係を全て試行することができる。例えば、前述の参照により組み込まれる、「Fast high-accuracy multi-dimensional pattern localization」という名称の特許文献８、「Fast high-accuracy multi-dimensional pattern inspection」という名称の特許文献９、および「Fast high-accuracy multi-dimensional pattern inspection」という名称の特許文献１０に記載の技術を使用すると、（ＰＯＳＴ−ＩＴ（登録商標）Ｎｏｔｅｓラベルからの）文字シーケンス「Ｐ」、「ＳＴ」、「Ｉｔ」および「Ｎｏｔｅｓ」などのパターンはどれも異なり、したがって一致が見られる場合、それが正しい一致であると分かる。
【００６９】
あるいは、「ｂｌｏｂ」解析として知られるマシンビジョンツールを使用して、パターンを（例えばそれが暗い穴である場合に）検出することができる。この場合、ｂｌｏｂ＃１が３Ｄモデル点１に対応し、ｂｌｏｂ＃２が３Ｄモデル点２に対応するなどと仮定することができる。それが機能しない場合、解析は、ｂｌｏｂ＃２が３Ｄモデル点＃２に対応し、ｂｌｏｂ＃１が３Ｄモデル点＃１に対応するという次の仮定に移ることができる。
【００７０】
図示の実施形態の三角測量プロセスは、以下の説明からより完全に理解することができる。
【００７１】
ｎ本の３Ｄ光線と交差するために（すなわち、ｎ本の３Ｄ光線までの二乗和距離を最小限に抑える点を見つけ出すために）、まず、各光線を２つの別々の直交平面として特徴付ける（なぜなら、ある点からある光線までの二乗距離は、その点からその光線を交差する２つの直交面までの二乗距離の和であるためである）。これは、以下のＣ＋＋コードによって例示される。
【００７２】
【表１−１】
2009511881.tif 000003
【００７３】
【表１−２】
2009511881.tif 000004
【００７４】
３Ｄ点を対応する３Ｄ光線上に最良にマッピングする姿勢に関して解決するには、（Ｗａｔｅｒｌｏｏ  Ｍａｐｌｅの一部門であるＭａｐｌｅｓｏｆｔから市販されている、Ｍａｐｌｅ数学パッケージにおいて表現される）以下の式を使用すると言うことができる。これは、最適化Ｃコードを生成するのに使用される。
【００７５】
この手法は、（ｘ、ｙ、ｚとして表される）点ｐと（ｐｘ、ｐｙ、ｐｚ、ｐｔ）として表される平面との間の二乗和誤差を最小限に抑える、（変数ａ、ｂ、ｃ、ｄ、ｔｘ、ｔｙ、ｔｚによって表される）姿勢に関して解決する。各３ｄ光線が、そのような２つの平面の制約に対応することに留意されたい。この手法は、二乗和誤差を、代数誤差関数の係数を合計することによって計算する。次いで、この手法は、最適なａ、ｂ、ｃ、ｄ、ｔｘ、ｔｙ、ｔｚに関して、勾配降下を使用して解決する。７つの変数（ａ、ｂ、ｃ、ｄ、ｔｘ、ｔｙ、ｔｚ）があり、６自由度しかないので、ａを１に設定し、変数がｂ、ｃ、ｄである場合、ｂを１に設定し、変数がａ、ｃ、ｄである場合、ｃを１に設定し、変数がａ、ｂ、ｄである場合、およびｄを１に設定し、変数がａ、ｂ、ｃである場合の４つの異なる場合について試行することに留意されたい。
【００７６】
【表２】
2009511881.tif 000005
【００７７】
前述したことは、以下の内容を考慮するとさらに理解されよう。以下では、ＧｅｎｅｒｉｃＰｏｌｙ（）が、関数の係数を抽出する関数である。したがって、関数がｘ＊ｘ＋２＊ｘ＊ｙ＋ｙ＊ｙである場合、その汎関数は、ｆ０ｘ２ｙ０＊ｘ＊ｘ＋ｆ０ｘ１ｙ１＊ｘ＊ｙ＋ｆ０ｘ０ｙ２＊ｙ＊ｙ、ただしｆ０ｘ２ｙ０＝１、ｆ０ｘ１ｙ１＝２、ｆ０ｘ０ｙ２＝１である。ＧｅｎｅｒｉｃＰｏｌｙ（）は、例えば非限定的な例としてｗｗｗ．ｃｓ．ｕｎｃ．ｅｄｕ／〜ｇｅｏｍ／ＭＡＲＳから公的に自由に入手可能なＭＡＲＳ、すなわちＭａｐｌｅ  Ｍａｔｌａｂ  Ｒｅｓｕｌｔａｎｔ  Ｓｏｌｖｅｒシステムに含まれている。
【００７８】
【表３】
2009511881.tif 000006
【００７９】
（誤差関数は、単に導関数（ｗｅｉｇｈｔＭａｔ＊ｗｅｉｇｈｔＭａｔ）ではなく、実際には（ａに関して偏導関数を計算する場合）(ａ＊ａ＋ｂ＊ｂ＋ｃ＊ｃ＋ｄ＊ｄ)＊導関数(ｗｅｉｇｈｔＭａｔ＊ｗｅｉｇｈｔＭａｔ)マイナス４＊ａ＊ｗｅｉｇｈｔＭａｔ＊ｗｅｉｇｈｔＭａｔであることに留意されたい（これは、
【００８０】
【表４】
2009511881.tif 000007
【００８１】
として記載される）。というのも、商に関する連鎖法則
【００８２】
【表５】
2009511881.tif 000008
【００８３】
のためである。）
【００８４】
この解析に関して、（偏導関数に関する連鎖法則の分母内の）分母の二乗は、分母（ａ＊ａ＋ｂ＊ｂ＋ｃ＊ｃ＋ｄ＊ｄ）が全ての偏導関数に一律に適用されるので、無視できることに留意されたい。
【００８５】
【表６】
2009511881.tif 000009
【００８６】
前述したことのさらなる例として、数値的勾配降下法で誤差関数ならびにその誤差関数の導関数を利用する。誤差関数の導関数は、数値的にまたはシンボリックに計算することができる。数値的に計算される導関数の場合、単に変数の１つを少量だけ変更し、次いで誤差関数を再計算し、そのようにして導関数を数値的に計算することができる。シンボリックに計算される導関数の場合、導関数に対応するシンボリック関数が必要であり、この場合にはシンボリック関数を、誤差関数を記述する代数式があるので使用し、シンボリック関数によってその代数誤差関数をシンボリックに微分することができる。
【００８７】
図示の実施形態では、以下のように、Ｃデータ構造が、代数式用に全ての係数を保持する。
【００８８】
【表７−１】
2009511881.tif 000010
【００８９】
【表７−２】
2009511881.tif 000011
【００９０】
図示の実施形態は、代数式の係数を増やす関数も利用する（そうした関数は、入力として、３Ｄ点（ｘ、ｙ、ｚ）、およびｐｘ、ｐｙ、ｐｚ、ｐｔによって特徴付けられる対応する平面をとる）。
【００９１】
【表８】
2009511881.tif 000012
【００９２】
図示の実施形態は、所与の姿勢（ａ、ｂ、ｃ、ｄ、ｔｘ、ｔｙ、ｔｚ）における誤差を計算する関数も利用する。ただし（ａ、ｂ、ｃ、ｄ）は、３Ｄ回転（ロール、ピッチ、ヨー）の四元数表現であり、（ｔｘ、ｔｙ、ｔｚ）は並進運動である。
【００９３】
【表９】
2009511881.tif 000013
【００９４】
図示の実施形態は、導関数を計算する関数も提供する。
【００９５】
【表１０】
2009511881.tif 000014
【００９６】
例えば、係数を増やす関数は、続く抜粋例と整合する形で表現することができる。この完全な関数は、本明細書の教示および提供されるＭａｐｌｅコードを考えれば明白である。
【００９７】
【表１１】
2009511881.tif 000015
【００９８】
これは、ｆａ．．．が係数であり、変数の名前が、各単項式の次数を符号化するような形で機能することに留意されたい。
【００９９】
【表１２】
2009511881.tif 000016
【０１００】
これに続いて、（（ｘ、ｙ、ｚ、ｐｘ、ｐｙ、ｐｚ、ｐｔ）によって特徴付けられる）点、平面の組ごとに、関数ｐｔＲａｙＧｅｎｅｒｉｃＰｏｌｙ＿ａｄｄＴｏＶａｌｓ（）に対して呼出しが行われ、それが単項式の係数を累算して、和誤差関数に入れる。
【０１０１】
図２の任意選択のステップ３６を参照すると、図示のシステム１０は、例えばカメラのうち１台が較正後に寸動された場合に、位置合せからずれた画像取得装置２４を再較正することができる。（この点に関して、図示の実施形態では、較正段階中に求められたマッピングを失わないようにするために、カメラ２４が較正後に固定されたまま、かつ／または静止したままでであることが好ましくは意図されることが理解されよう。）これは、ステップ３４において実施される位置三角測量中、また場合によってはステップ３２において実施される位置三角測量中に検出することができる。この目的のためには、１台のカメラ２４が画像を生成し、その画像内で、検査中の物体の実行時画像内に見られるパターンが、（例えばそのカメラに関する３Ｄ光線に対してマッピングされたときに）残りのカメラからの（例えばそれぞれの３Ｄ光線を使用してマッピングされたときの）画像と一致しない、かつ／または大幅に食い違うような位置にあるように見える場合、それらの残りのカメラからの画像を用いて求められたパターン位置を使用して、その１台のカメラを、ステップ３０に関連して上述した同じ較正法を用いて再較正することができる。
【０１０２】
この点に関して、ステップ３０において（ならびにステップ３６において）求められるマッピングは、カメラ２４が寸動された場合に一定のまま（というのも、これはレンズの作用に他ならず、また例えばレンズをＣＣＤ、ＣＭＯＳまたは他のイメージセンサに対して定位置に接着することができるため）である、糸巻き型歪み（pincushioning）やその他の画像収差などのレンズ歪みと、カメラ２４の作業空間に対する姿勢との、２つの別々の影響に分解できることが理解されよう。カメラが寸動された場合に変化するのは、後者、すなわち姿勢である。ステップ３６では、レンズ歪みが一定のままであると仮定されるので、作業空間内でのカメラの姿勢に帰せられるマッピングの側面を、例えば較正プレートを必要とせずに、再計算することができる。
【０１０３】
図示のシステム１０は、好ましくは、期待パターンが実行時段階３４中に取得された画像内で検出されない場合に過度の遅延を回避する、「タイムアウト」機能を含む。この点に関して、システムは単に、（例えばオペレータまたは他の手段によって設定される）指定の遅延間隔内に検出されないパターンを未検出として取り扱い、残りの検出されたパターンに基づいて位置特定を続行する。これには、システム１０を、欠如している特徴に対してより堅牢にし、その動作をより時宜にかなったものにするという利点がある。
【０１０４】
とりわけ、上記の目的を満たす方法および装置について上述した。図面中に示し、上述した方法および装置は、本発明の諸実施形態の例に他ならず、変更を中に組み込んだ他の実施形態が、本発明の範囲内にあることが理解されよう。
【図面の簡単な説明】
【０１０５】
【図１】本発明の実施に適するように構成されたデジタルデータ処理装置を示す図である。
【図２】本発明によるシステムの動作を示す流れ図である。
【図３】本発明によるシステムの較正を示す図である。
【図４】本発明によるシステムのトレーニングおよび／または実行時動作を示す図である。
【図１】
2009511881.tif 000017
【図２】
2009511881.tif 000018
【図３】
2009511881.tif 000019
【図４】
2009511881.tif 000020
【国際調査報告】
2009511881.tif 000021