(57)【要約】本発明は、シーン内で取得された対象について、教示された対象モデルの観察された画像データと予想された画像データとのマッチングに基づいて定義される実行時アライメント得点の履歴統計定義に基づき、典型的にカメラ外部パラメータに関して、カメラのミスキャリブレーション（精度）の実行時決定（自己診断）のためのシステムと方法を提供する。この構成は、システムのカメラがキャリブレーションされた状態に留まっているか診断するためにビジョンシステムの実行時動作を中断し、および／またはビジョンシステムよって監視されている生産ラインを停止する必要を回避する。ビジョンシステムによって検査される対象または特徴は時間が経過しても実質的に同じであるという仮定の下で、ビジョンシステムは部分アライメント結果の統計を蓄積し、中間結果を保存して現在のシステム精度の指標として使用する。マルチカメラビジョンシステムに対しては、個々の問題のあるカメラを特定するために例示的にクロス確認を用いる。このシステムと方法により、劣化するカメラキャリブレーションに関するビジョンシステムの不具合をより迅速、廉価、簡明に診断することが可能となる。
2013515959.tif 000002
【特許請求の範囲】
【請求項１】
ａ）少なくとも３台のカメラの各々に対してそれぞれの外部キャリブレーションパラメータを検出することを含む、少なくとも３台のカメラをキャリブレーションするステップと；
ｂ）少なくとも３台のカメラのうちの第１の複数のカメラで３次元空間において第１の特徴を検出し、前記第１の特徴の第１の測定結果を決定するステップと；
ｃ）少なくとも３台のカメラのうちの第２の複数のカメラで３次元空間において第２の特徴を検出し、前記第２の特徴の第２の測定結果を決定するステップと；
ｄ）前記第１の測定結果と前記第２の測定結果を（ｉ）ステップ（ａ）で決定された精度、（ｉｉ）所望のシステム精度、および（ｉｉｉ）第１の特徴と第２の特徴の既知の特性のうち少なくとも１つを基準として比較するステップとを包含する、
少なくとも３台のカメラからなるシステムでカメラのミスキャリブレーションを決定するための方法。
【請求項２】
前記第１の特徴は、（ａ）前記第２の特徴と実質的に同じであるか、または（ｂ）前記第２の特徴と異なっている、請求項１記載の方法。
【請求項３】
前記第１の測定結果は、前記第１の特徴の推定された第１の位置を包含し、前記第２の測定結果は前記第２の特徴の推定された第２の位置を包含する、請求項２記載の方法。
【請求項４】
前記第１の測定結果は前記第１の特徴の検出に成功した得点を包含し、前記第２の測定結果は前記第２の特徴の検出に成功した得点を包含する、請求項２記載の方法。
【請求項５】
前記ステップ（ｄ）は、前記第１の測定結果と前記第２の測定結果との間の不一致を計算して、前記不一致を（ｉ）ステップ（ａ）で決定された精度、（ｉｉ）所望のシステム精度、および（ｉｉｉ）第１の特徴と第２の特徴の既知の特性のうち少なくとも１つを基準として比較することを含む、請求項１記載の方法。
【請求項６】
前記既知の特性は前記第１の特徴と前記第２の特徴との既知の距離を含み、少なくとも３台のカメラのうちの前記第１の複数のカメラは少なくとも２台のカメラからなる第１のグループを含み、少なくとも３台のカメラのうちの前記第２の複数のカメラは少なくとも２台のカメラからなる第２のグループを含む、請求項５記載の方法。
【請求項７】
さらに、ステップ（ｄ）に応じて、前記比較のステップの結果が、（ｉ）ステップ（ａ）で決定された精度と（ｉｉ）所望のシステム精度との少なくとも１つを超えることに基づいて、再キャリブレーションが必要であることを示す信号を発生することを含む、請求項１記載の方法。
【請求項８】
前記発生のステップは、ステップ（ｄ）に基づいて新しい外部キャリブレーションパラメータを生成し、前記外部キャリブレーションパラメータを少なくとも３台のカメラのうちの少なくとも１台に提供して、少なくとも３台のカメラのうちの少なくとも１台を再キャリブレーションすることを含む、請求項７記載の方法。
【請求項９】
前記ステップ（ａ）で決定された精度は、キャリブレーション残差に基づく値の集積を含む、請求項１記載の方法。
【請求項１０】
さらに新しい外部パラメータを提供して、ステップ（ａ）に従い少なくとも３台のカメラのうちの少なくとも１台を再キャリブレーションする請求項９記載の方法。
【請求項１１】
少なくとも３台のカメラからなるシステムはマシンビジョンシステム検査機能を有しており、少なくとも３台のカメラによって視られる体積空間を通過する対象に対して実行時マシンビジョン検査を実行する、請求項１記載の方法。
【請求項１２】
前記所望のシステム精度は、前記第１の測定結果と前記第２の測定結果の各々に対する履歴値に基づいている、請求項１記載の方法。
【請求項１３】
前記所望のシステム精度は、所定の閾値に基づいている、請求項１記載の方法。
【請求項１４】
前記閾値は、実行時ビジョンシステムタスクの所望の精度に基づいて定義される、請求項１３記載の方法。
【請求項１５】
さらに、前記ステップ（ａ）で少なくとも３台のカメラのうちの少なくとも１台に内部パラメータを提供し、少なくとも３台のカメラのうちの少なくとも１台を新しい内部パラメーに基づいて再キャリブレーションする、請求項１記載の方法。
【請求項１６】
前記既知の特性は前記第１の特徴と前記第２の特徴との間の既知の距離を含み、少なくとも３台のカメラの第１の複数のカメラは少なくとも２台のカメラからなる第１のグループを含み、少なくとも３台のカメラのうちの第２の複数のカメラは少なくとも２台のカメラからなる第２のグループを含む、請求項１記載の方法。
【請求項１７】
ａ）少なくとも３台のカメラの各々に対してそれぞれの外部キャリブレーションパラメータを検出することを含む、少なくとも３台のカメラをキャリブレーションするステップと；
ｂ）少なくとも３台のカメラのうちの第１の複数のカメラで３次元空間において第１の特徴を検出して第１の対象姿勢の第１の測定結果を決定するステップと；
ｃ）少なくとも３台のカメラのうちの第２の複数のカメラで３次元空間において第２の対象姿勢を検出して第２の特徴の第２の測定結果を決定するステップと；
ｄ）前記第１の測定結果と前記第２の測定結果を（ｉ）ステップ（ａ）で決定された精度と、（ｉｉ）所望のシステム精度とのうち少なくとも１つを基準として比較するステップとを包含する、
少なくとも３台のカメラからなるシステムでカメラのミスキャリブレーションを決定するための方法。
【請求項１８】
前記第１の測定結果は第１の姿勢得点であり、前記第２の測定結果は第２の姿勢得点である、請求項１７記載の方法。
【請求項１９】
ａ）それぞれ外部キャリブレーションパラメータを含む、少なくとも３台のカメラと；
ｂ）３次元空間において第１の特徴を検出し、前記第１の特徴の第１の測定結果を決定する、少なくとも３台のカメラのうちの第１の複数のカメラと；
ｃ）３次元空間において第２の特徴を検出し、前記第２の特徴の第２の測定結果を決定する、少なくとも３台のカメラのうちの第２の複数のカメラと；
ｄ）前記第１の測定結果と前記第２の測定結果を（ｉ）外部キャリブレーションパラメータと関連する精度、（ｉｉ）所望のシステム精度、および（ｉｉｉ）第１の特徴と第２の特徴の既知の特性のうち少なくとも１つを基準として比較する比較プロセスとを包含する、
少なくとも３台のカメラからなるシステムでカメラのミスキャリブレーションを決定するためのシステム。
【請求項２０】
前記既知の特性は前記第１の特徴と前記第２の特徴との間の既知の距離を含み、少なくとも３台のカメラの第１の複数のカメラは少なくとも２台のカメラからなる第１のグループを含み、少なくとも３台のカメラのうちの第２の複数のカメラは少なくとも２台のカメラからなる第２のグループを含む、請求項１９記載の方法。
【請求項２１】
前記第１のグループの少なくとも２台のカメラは、前記第２のグループの少なくとも２台のカメラとそれぞれ異なる、請求項２０記載の方法。
【請求項２２】
ａ）それぞれ外部キャリブレーションパラメータを含む、少なくとも３台のカメラと；
ｂ）３次元空間において第１の対象姿勢を検出し、前記第１の対象姿勢の第１の測定結果を決定する、少なくとも３台のカメラのうちの第１の複数のカメラと；
ｃ）３次元空間において第２の対象姿勢を検出し、前記第２の対象姿勢の第２の測定結果を決定する、少なくとも３台のカメラのうちの第２の複数のカメラと；
ｄ）前記第１の測定結果と前記第２の測定結果を（ｉ）外部キャリブレーションパラメータと関連する精度、および（ｉｉ）所望のシステム精度のうち少なくとも１つを基準として比較する比較プロセスとを包含する、
少なくとも３台のカメラからなるシステムにおいてカメラのミスキャリブレーションを決定するためのシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビジョンシステム、より具体的にはビジョンシステムカメラキャリブレーションに関する。
【背景技術】
【０００２】
マシンビジョンシステムは、産業界において所定の２次元（２Ｄ）または３次元（３Ｄ）座標空間を基準として部品や対象のアライメントを決定するために通常使用されている。これらのシステムは種々の技術とプログラムを用いて、しばしば対象の教示されたモデルに基づき対象のアライメントを決定する。カメラキャリブレーションは、２次元（２Ｄ）撮像システムと３次元（３Ｄ）撮像システムのいずれにおいても、コンピュータビジョンの必須のステップである。カメラキャリブレーションは、外部パラメータと内部パラメータとして既知のカメラの位置とレンズの性質のモデリングを含む。カメラキャリブレーションは、シングルカメラ構成またはマルチカメラ構成、例えば１個以上のカメラヘッドを有するシステムで実施できる。ステレオカメラヘッドおよび他の形態の３Ｄセンサは、対象の３Ｄ奥行画像の生成を可能にする。これらのカメラのキャリブレーションは、観察された２Ｄ画像空間と３Ｄ世界の間の関係を決定する。カメラキャリブレーションの後で３Ｄ情報は２Ｄコンピュータ画像座標から推測でき、同様に２Ｄ画像座標は３Ｄ情報から推測できる。
【０００３】
より具体的には、カメラ内部の幾何的および光学的性質（内部パラメータであり、有効焦点距離、または投影中心距離に対する画像面、レンズ歪み係数、ｘに対する倍率、カメラ走査および取得タイミング誤差に起因する、画像面における原点に対するコンピュータ画像座標を含み得る）および定義された世界座標系に対するカメラの３Ｄ位置と向き（外部パラメータ）を評価することによって、カメラキャリブレーションは画像形成システムをモデリングすることを含む。カメラの内部パラメータと外部パラメータ（しばしばカメラキャリブレーションパラメータと呼ばれる）は、レンズ歪みを除去して３Ｄ空間において観察された２Ｄ画像特徴ポイントを解釈するために実行時アライメントまたは検査タスクに用いられる。カメラキャリブレーションの精度はビジョンシステムの性能に直接影響する。
【０００４】
対象を包含するシーンの周囲のそれぞれ１以上の有利な地点で１台以上の２Ｄカメラまたは３Ｄカメラを使用することにより、世界座標空間を基準として被写体の全体的画像を生成する際に利点を提供できる。異なるカメラの画像を組み合わせることにより、１以上の画像で起こり得る対象の部分の種々のオクルージョンやオブストラクションが、他の有利な地点から取得された画像によって補償される。したがってあらゆる場合に、しかし特にビジョンシステムが複数の２Ｄカメラまたは３Ｄカメラを使用するような場合には、カメラキャリブレーションの精度はビジョンシステムの全体的性能に不可欠である。しかしながら、カメラキャリブレーションは典型的に１回限りのビジョンシステムセットアップ手順と見なされる。これは通常典型的な実行時ユーザ（製造ライン作業員と彼らの監督であることが多い）より著しく多くの知識を有する技術者によって行われる。典型的に、システムがキャリブレーションされた後で、これらの実行時ユーザによってカメラパラメータは現在のキャリブレーションの本当の精度とは関係なく、マシンビジョンタスクで反復的に使用される。キャリブレーションは熟練技術者によってなされる要求が多く時間のかかるタスクであり、最も良いのは実際に必要とされるときだけ実行することである。
【０００５】
しかしながら、ビジョンシステムが製造ライン等の不利な環境で作動する場合、熱膨張、振動、不用意な焦点変化等の原因で実際のカメラ位置やレンズ歪みが変化することがある。その結果、カメラキャリブレーションがもはや観察された２Ｄ画像と３Ｄ世界との関係を表さなくなれば、マシンビジョンアプリケーションは準最適な性能しか発揮しなくなるであろう。さらにたとえマシンビジョンアプリケーションが準最適な性能しか発揮しなくなっても、カメラのミスキャリブレーションによるアプリケーションの性能劣化の根本原因を追跡することは困難であろう。
【０００６】
定期的にカメラキャリブレーションの確認を行えば、カメラが容認できるキャリブレーションパラメータで機能し、不必要なキャリブレーション手順の実施を回避するのを助けはするが、逆にカメラはキャリブレーションがずれた状態で作動し続けることになろう。単数または複数の２Ｄカメラまたは３Ｄカメラに応用可能なカメラキャリブレーションを定期的に確認する新規の効果的な方策は、イェ・シアンユィン他による合衆国特許出願番号１２／３４６、７７３「ビジョンシステムにおけるカメラキャリブレーションを確認するためのシステムと方法」に開示されており、その教示内容は参照により有益な背景情報として本明細書に組み入れられる。簡単に言えば、この確認手順はカメラシステムを実行時動作から取り出して、キャリブレーションターゲットをカメラの視野内に入れることを必要とする。次にこのターゲットを用いて、典型的にはキャリブレーション技術者ではなくシステムの実行時作業員によって確認手順が実施される。この手順は現在の内部パラメータと（マルチカメラシステムの場合）外部パラメータを生み出す。内部パラメータは有効焦点距離、または投影中心距離に対する画像面、レンズ歪み係数、ｘに対する倍率、カメラ走査および取得タイミング誤差に起因する取得された画像の原点の移動を含む。外部パラメータは、典型的に定義された世界座標系を基準としたカメラの３Ｄ位置と向きによって定義される。これらの現在のパラメータが、保存されたセットアップ時間の内部パラメータと外部パラメータを基準として分析されて、カメラシステムおよび／または個々のカメラが容認可能なキャリブレーションに留まっているか決定する。この確認手順はシステムのダウンタイムを著しく短縮する。なぜなら、確認手順はキャリブレーション時間の何分の１しかかからず、また、確認手順でカメラの「キャリブレーションがずれている」ことが示された場合だけ再キャリブレーションを行えば済むからである。同様に、これはシステムの実行時作業員によって実施できる。それにもかかわらず、この方策は依然として、確認手順を実施しているときはシステムが生産を行わないことを必要とする。確認はビジョンシステムのかなり長いダウンタイムを要求することがあまりに多くそれによって生産ラインの処理量が減少するので、確認を実施する頻度が問題となる。逆に、確認をごく稀にしかしないと、３Ｄビジョンシステムはカメラキャリブレーションの劣化により過度に誤った不合格／合格の決定を下すリスクがある。
【０００７】
それゆえシステムをオフラインにする必要なく実行時にカメラシステムのキャリブレーションを診断し、またシステム作業員が別個に確認プロセスを行うためのシステムと方法を提供することが望ましい。このようなシステムと方法は、頻繁な確認を可能にし、カメラシステムのキャリブレーションがずれたことによる誤った読みを起こりにくくする。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】米国特許出願公報第１２／３４６、７７３号明細書
【特許文献２】米国特許出願公報第１２／３４５，１３０号明細書
【非特許文献】
【０００９】
【非特許文献１】ロジャー・ツァイにより「既製のＴＶカメラおよびレンズを使用する高精度３Ｄマシンビジョン計測のための汎用カメラキャリブレーション技術」（ＩＥＥＥロボット工学・自動化ジャーナル、ＲＡ−３巻４号、１９８７年８月、３２３−３４４ページ）
【非特許文献２】リチャード・Ｉ．ハートリーおよびアンドリュー・ジッセルマン著「多視点幾何学」第２版（ケンブリッジ・ユニバーシティー・プレス、２００４年）
【非特許文献３】ハラリック、Ｒ．Ｍ．が「対応するポイントデータからの姿勢の推定」（ＩＥＥＥシステム・人間・人工頭脳部会議事録１９巻６号、１９８９年１１／１２月、１４２６〜１４４６ページ）
【発明の概要】
【００１０】
本発明は、シーン内で取得された対象の実行時測定結果の履歴統計に基づき、典型的にはカメラ外部要因に関連付けて、カメラのミスキャリブレーション（精度）を実行時決定（自己診断）するためのシステムと方法を提供する。実行時測定結果の一例は、教示された対象モデルの観察された画像データと予想された画像データとのマッチングに基づいて定義されるアライメント得点である。この構成は、システムのカメラがキャリブレーションされた状態に留まっているか診断するために、ビジョンシステムの実行時動作を中断し、および／またはビジョンシステムによって監視されている生産ラインを停止する必要を回避する。ビジョンシステムによって検査される対象または特徴は時間が経過しても実質的に同じであるという仮定の下で、ビジョンシステムは部分アライメント結果の統計を蓄積し、中間結果を保存して現在のシステム精度の指標として使用する。マルチカメラビジョンシステムに対しては、個々の問題のあるカメラを特定するために例示的にクロス確認を用いる。このシステムと方法により、劣化するカメラキャリブレーションに関するビジョンシステムの不具合をより迅速、廉価、簡明に診断することが可能となる。
【００１１】
例示的な実施形態において、多数のカメラを有するシステム、例示的に３台以上のカメラからなるシステムが、離散的な有利な地点からシーンに向けられている。少なくとも３台のカメラが最初にキャリブレーションされ、これは少なくとも３台のカメラの各々に対してそれぞれの外部キャリブレーションパラメータを検出することを含む。少なくとも３台のカメラのうちの第１の複数のカメラで３次元空間に第１の対象特徴または対象全体（またはその一部）が検出される。次に第１の対象特徴または第１の対象姿勢の第１の測定結果が導き出される。少なくとも３台のカメラのうちの第２の複数のカメラで３次元空間において第２の対象特徴または対象全体（またはその一部）が検出される。次に第２の対象特徴または第２の対象姿勢の第２の測定結果が導き出される。検出された第１の特徴は第２の検出された特徴と実質的に似ていることもあり得るし、あるいは、これら２つの特徴は異なっていて既知の物理量によって区別されることもあり得る。次に、（ｉ）キャリブレーション手順で決定された精度、（ｉｉ）所望のシステム精度、および（ｉｉｉ）２つの特徴の既知の特性の少なくとも１つを基準として第１の測定結果と第２の測定結果が比較される。例示的には、第１の測定結果は第１の特徴の推定された第１の位置を包含し、第２の測定結果は第２の特徴の推定された第２の位置を包含する。第１の測定結果は第１の特徴の検出に成功した得点を包含でき、第２の測定結果は第２の特徴の検出に成功した得点を包含できる。一実施形態において、比較するステップまたはプロセスは、第１の測定結果と第２の測定結果との間の不一致を計算して、（ｉ）キャリブレーションで決定された精度、（ｉｉ）所望のシステム精度、および（ｉｉｉ）対象の既知の特性の少なくとも１つを基準として不一致を比較することを含む。
【００１２】
例示的な実施形態において、比較するステップまたはプロセスに応じて、比較のステップの結果が、（ｉ）ステップ（ａ）で決定された精度と（ｉｉ）所望のシステム精度との少なくとも１つを超えることに基づいて、再キャリブレーションが必要であることを示す信号を発生する。これは、比較に基づいて新しい外部キャリブレーションパラメータを生成し、この外部キャリブレーションパラメータを少なくとも３台のカメラのうちの少なくとも１台に提供して、少なくとも３台のカメラのうちの少なくとも１台を再キャリブレーションすることを含んでいてもよい。例示的には、少なくとも３台のカメラからなるシステムはマシンビジョンシステム検査機能を有して、少なくとも３台のカメラによって視られる体積空間を通過する対象に対して実行時マシンビジョン検査を実行することができる。これらの対象は、複数のカメラによる測定結果の生成のための基礎を形成する。
以下に本発明を、添付の図面に基づいて説明する。
【図面の簡単な説明】
【００１３】
【図１】カメラシステムの初期キャリブレーションを確定するために用いられる、模範的なキャリブレーション対象を含む例示的な実施形態による、３次元空間においてシーン内の対象の画像を取得するために少なくとも３台の離散的なカメラを使用するビジョンシステムの概念図である。
【図１Ａ】ある対象に関してマシンビジョンのタスクを果たすために使用される３台のカメラからなる模範的なシステムの概念図である。
【図１Ｂ】ある対象に関してマシンビジョンのタスクを果たすために使用される４台のカメラからなる模範的なシステムの概念図である。
【図１Ｃ】２対（２組の複数）のカメラがそれぞれある対象に関してマシンビジョンのタスクを果たし、各々の複数のカメラ対象の異なる離散的な特徴を基準として動作する、模範的なシステムの概念図である。
【図２】例示的な実施形態による、少なくとも３台のカメラを有するビジョンシステムのためのセットアップとキャリブレーションプロセス、および実行時検査と自己診断プロセスのブロック図である。
【図３】図２の自己診断プロセスにおいてサブセットが使用される、種々の誤差統計を示す概念図である。
【図４】本明細書に記載されたシステムと方法による、実行時自己診断とそれに続く再キャリブレーションを行うための例示的な手順を示すフローチャートである。
【図５】本明細書に記載された実施形態で使用するための、３次元世界座標空間と２次元カメラ座標空間との間のマッピングポイントのグラフ図である。
【図６】本明細書に記載された実施形態で使用するための、世界座標系におけるポイントの、２台以上（複数）のカメラにおける画像ポイントからの三角測量のグラフ図である。
【発明を実施するための形態】
【００１４】
Ａ．システムの概観とキャリブレーション
図１は、視られたシーンの２次元（２Ｄ）または３次元（３Ｄ）アライメントまたは姿勢を決定するためのビジョンシステム１００の典型的な構成を表しており、シーンはロボットマニピュレータによって検査され、整列され、作用される１以上の実行時対象、またはマシンビジョンプロセスによって制御または支援される他の何らかの動作を含んでいてもよい。システムは本発明の例示的な実施形態により、キャリブレーションできる（キャリブレーションは後で自己診断され得る）。
【００１５】
一般的に、システム１００は視野内に対象を包含するシーン１２８を持つ少なくとも３台のカメラを有するビジョンシステム構成であってもよい。カメラまたはセンサ１２０、１２２、１２４はそれぞれ図示の２Ｄカメラ、または随意に３Ｄセンサを有していてもよい。３Ｄセンサが設けられている場合は、既知のベースラインによって分離された、ステレオカメラヘッド内の２台の離散的カメラ（双眼視）の間で光学的三角測量を用いてシーンの奥行画像を生成するように適合させることができる。より一般的に、３Ｄセンサは、種々の技術を用いて奥行データを生成できる種々の感知方式に基づいてもよい。多様な技術はステレオ（マルチカメラ）撮像、光検出および測距またはＬＩＤＡＲ、構造化光（structured light）、または走査レーザを使用する装置を含むが、これに限らない。２Ｄおよび３Ｄ撮像装置はＣＣＤおよびＣＭＯＳを含む多様な原理に従って動作できる。同様に、２Ｄカメラまたは３Ｄセンサのために、総称的にブロック１２５として示されている複数の追加的なカメラ／センサを、シーン１２８に対して異なる離散的な有利な地点に配置できる。複数のステレオカメラヘッドが設けられている場合は、各ヘッド内の個々のカメラはシステムによって個別にアクセスできるか、またはヘッドによって生成された奥行画像はプロセッサに供給される生データとして提供される。２Ｄカメラおよび／または３Ｄセンサが接続されているこのプロセッサは、例として、インタフェースとディスプレイを有してソフトウェアおよび／またはハードウェアに基づくキャリブレーションプロセス（１５０）を実行する汎用コンピュータ１３０として示されており、実行時ビジョンプロセス（検査、アライメント、操作等）（１５２）も実行できる。ビジョンプロセッサの構成、タイプおよび位置は極めて可変である。例示的な実施形態において、プロセッサは１以上の２Ｄカメラおよび／または３Ｄセンサ内に包含でき、多数のカメラおよび／またはセンサの間に適当な有線または無線相互接続を設けることができる。
【００１６】
多数の２Ｄカメラおよび／または多数の３Ｄセンサが使用される実施形態において、各々のカメラ１２０、１２２、１２４は本明細書において直交するｘ、ｙおよびｚ軸１４０、１４２、１４３として表されそれ自身の内部座標系を定義し、ｚはシーンに向けられたカメラの光学軸であり、ｘおよびｙは画像面を定義する。ビジョンプロセッサ（１３０）はこれらの個々のカメラ座標系を、シーン１２８に対するｘ、ｙおよびｚ軸で表される共通の３Ｄ世界座標系１４８にキャリブレーションするように適合されている。３Ｄ撮像および関連するコンセプトの一般的議論は、背景技術としてシリル・Ｃ．マリオン他による共同譲渡された合衆国特許出願番号１２／３４５，１３０「マシンビジョンを用いる対象の３次元アライメントのためのシステムと方法」に開示されており、その教示内容は参照により有益な背景情報として本明細書に組み入れられる。
【００１７】
図１Ａと図１Ｂは、本発明によりキャリブレーションでき、続いてその後で（図示されているように）対象に対する実行時ビジョン検査動作に使用できる２つの模範的なカメラシステム構成を詳しく示す。図示された各々の構成において、３Ｄ空間における対象のアライメントは、取得された画像の特徴を三角測量して、予想された特徴と測定された画像特徴のマッチングを評価することによって達成される。
【００１８】
図１Ａに示す模範的なカメラ３台のシステム構成１５３による、３台のカメラ１５４、１５５、１５６は対象または部品１５７に対して異なる向きに配置されており、対象または部品１５７は動いているコンベヤまたは対象が連続的に検査および／または整列されることを可能にする他の機構に載ってシステムの視野を通過する。このシステム１６３はタスクの中でも特に部品の品質を検査し、またはロボットマニピュレータ（図示せず）の向きを可能にする。この例におけるカメラ構成１５３は、一般的に視覚案内ロボット（ＶＧＲ）アプリケーションで使用されるものに類似している。このようなＶＧＲアプリケーションにおいて、典型的に部品１５７はすべてのカメラ１５４、１５５、１５６にとって可視である。以下に記すように、部品姿勢の得点は観察された画像が教示されたモデルにどれほど一致しているかを測定する三角測量誤差に基づいている。この場合、モデルは破線で示すように、各々のカメラに可視である１以上の特徴１５８、１５９、１６０を含んでいる。相互参照の不一致は多数のカメラから出る同じ特徴ポイントの光線がどれほど近接して互いに交差しているかを測定する。
【００１９】
４台のカメラ１６３、１６４、１６５、１６６を有するカメラシステムの別の模範的な構成１６１が図１Ｂに示されている。カメラ１６３、１６４、１６５、１６６はそれぞれ部品１６２に対して図示されているように離散的な位置に配置されており、各々離散的なｘ、ｙ、ｚ（または他の座標系）の向きに向けられた対応する画像面１６７を定義する。この構成において、部品１６２のアライメントは共通の特徴を同時に視るカメラに基づく必要はないが、例示的に部品姿勢の得点は観察された画像が教示された３Ｄ形状モデルから予測された画像とどの程度一致するかに基づいている。多様な別のマルチカメラ構成および実行時検査／アライメント手順が明確に想定されている。
【００２０】
さらに図１を参照して、模範的なカメラキャリブレーション手順、例えばマサチューセッツ州ネイティックのコグネックス社から市販されているビジョンシステムと組み合わせて利用できるキャリブレーションソフトウェア（これに限るものではない）は、典型的に複数の異なる向き（例として仮想図で示す）でカメラ１２０、１２２および１２４に提示された、大きさと形状が既知の平面キャリブレーション対象１７０を観察することをカメラに要求するフレキシブルな技術を用いる。このキャリブレーション手順は、（典型的に多数のカメラを有する実施形態において）各カメラに対する３次元世界座標空間を定義するために、各カメラの内部パラメータと外部パラメータを調整する役割を担う。図示されたキャリブレーションプロセスで技術者またはロボットはキャリブレーション対象１７０−本明細書では大きさと形状が既知の例示的なチェッカー盤で、中心基準１７２を含んでいてもよい−を複数の位置の各々の間で動かし（矢印１７１）、その一方でキャリブレーションアプリケーション１５０は視覚処理システム１３０上で作動して、各々の位置で対象１７０の画像を取得および分析する。取得された対象の画像を用いてカメラキャリブレーションプロセスは、観察された２Ｄ画像特徴ポイントと平面上に配置されたおよび３Ｄ特徴に関する（画像と物理的）特徴の対応から内部パラメータと外部パラメータを推定する。一例において、これらの（画像と物理的）特徴の対応は、例えばチェッカー盤キャリブレーションプレートの画像上でチェッカー盤特徴抽出ビジョンシステムソフトウェアツールを実行することによって自動的に決定され得る。ソフトウェアツールとキャリブレーションプレートのいずれもコグネックス社から入手可能である。
【００２１】
例示的なシステムに応用できるカメラキャリブレーションの公知の技術は、ロジャー・ツァイにより「既製のＴＶカメラおよびレンズを使用する高精度３Ｄマシンビジョン計測のための汎用カメラキャリブレーション技術」（ＩＥＥＥロボット工学・自動化ジャーナル、ＲＡ−３巻４号、１９８７年８月、３２３−３４４ページ）に記載されており、その教示内容は有益な背景情報として本明細書に組み入れられる。キャリブレーション手順はより一般的に上で組み入れられた合衆国特許出願番号１２／３４６，７７３「ビジョンシステムにおけるカメラキャリブレーションを確認するためのシステムと方法」に開示されている。加えてそのような手順は、以下に一般的に２台の離散的カメラで取得された特徴に基づいて姿勢を推定することとの関連において参照される。
【００２２】
要約すると、カメラキャリブレーションは検出された２Ｄ画像特徴ポイント（チェッカーの角）と予測された特徴ポイントとの間の不一致を最小化するための非線形最適化方法を含む。このカメラキャリブレーション法は、（カメラに対する）キャリブレーションプレートの姿勢を計算する。
【００２３】
ここで、システムキャリブレーションプロセス、実行時アライメントまたは検査タスク、およびシステムキャリブレーションの自己診断の図式的な概観２００を示す図２を参照する。図示されているように、オフラインの部分としてプロセス２１２は部品または対象教示プロセス２１３であり、ここでビジョンシステムは１以上の所定の大きさ、位置および／または形状の目立った対象特徴（例えばエッジ、印刷、穴等）を認識するように教示される。代替的に、システムは対象の全体形状またはその一部を認識するように教示され得る。教示はビジョンシステムによって使用される具体的なアプリケーションに依存している。これらのアプリケーションは、ブロブ解析、エッジ検出、回転およびスケール不変な探索等を含んでいてもよい。ビジョンシステム特有の他のセットアッププロセス２１４も、オフラインプロセス２１２中に起こる。これらのプロセスは、照明制御、ロボットマニピュレータとの調整、およびその他の多様な動作を含んでいてもよい。とりわけキャリブレーション２２６中にカメラの内部パラメータ２２２と外部パラメータ２２４が導き出される。これらの内部パラメータと外部パラメータはシステム実行時動作（ブロック２３０）中に使用される（矢印２２５）。より具体的には、外部パラメータは実行時２３０に行われる例示的なキャリブレーション自己診断で使用される。例示的な実施形態において、セットアップ記憶装置２２０は、観察された画像特徴と予測された物理的特徴との間の不一致に関する情報を含む「誤差」統計２２８も保存し、この情報はキャリブレーションがまだ許容範囲内にあるかどうかをシステムが決定する受け入れ閾値を定義するために使用できる。
【００２４】
図３も参照すると、保存された誤差統計２２８は次のものを含むが、これらに限られるものではない。
【００２５】
ａ．歪められた画像座標（実際の取得されたピクセル）３１０における精度または不一致。各々の推定されたキャリブレーション対象／プレート姿勢について、キャリブレーションプロセスはレンズ歪みを考慮して、各３Ｄ特徴ポイント（プレートのパターン内のチェッカーの角）の画像面上の２Ｄ位置を計算する。精度の測定結果は、各々の観察された２Ｄポイントとこれに関連する投影された／歪められた２Ｄ位置との間の不一致に対応し、誤差統計２２８として保存される。
【００２６】
ｂ．歪められていない画像座標（すなわち３Ｄ座標系におけるｚ＝１投影面。ｚは各々のピクセルの奥行であり、ｘ、ｙは視野内の各ピクセルに対する２Ｄ座標である）における精度または不一致３２０。各々の推定されたキャリブレーションプレート姿勢について、プロセスはｚ＝ｌ投影面への３Ｄポイントの線形投影を計算する。加えて、プロセスは取得された２Ｄ画像ポイントをレンズ歪みの逆数を通してマッピングする（言い換えればポイントは保存されたレンズ補正係数を用いて再計算される）。精度の測定結果は投影された２Ｄポイントとこれに対応する歪められた２Ｄポイントとの間の不一致に対応し、誤差統計２２８として保存される。
【００２７】
ｃ．ステレオ三角測量３３０によって得られる３Ｄ位置の精度。マルチカメラシステムで各々の推定されたキャリブレーションプレート姿勢について、プロセスは多数のカメラにより三角測量で撮像された各特徴ポイントの３Ｄ座標を計算し、rmsFitErrorを保持する。多数のカメラに対する特徴ポイントの三角測量された位置と推定された位置との間の不一致は、誤差統計２２８として保存される。
【００２８】
上述した精度の測定結果ａ−ｃはビジョンシステムにおける通常当業者には公知であり、通常当業者に公知の手順を用いて生成できる。これらの測定結果は典型的にあるカメラキャリブレーション法を別のカメラキャリブレーション法と比較するために使用される。例示的な実施形態による、これらの誤差統計２２８は保存され、続いて実行時ビジョンシステム動作中にカメラキャリブレーションの精度を診断するために使用できる（図２のブロック２３０）。受け入れ閾値は、特定のビジョンシステムアプリケーション要件に従って可変に設定できることに留意されたい。すなわち、あるアプリケーションはより高い精度を指示して、より低い受け入れ閾値を要求してもよい（例えばキャリブレーションと実行時／確認不一致との差がより小さい）。
【００２９】
上記のカメラキャリブレーションの精度は、ビジョンシステムの性能に直接影響する。ほとんどのビジョンシステムはカメラキャリブレーションを１回限りのシステムセットアップタスクであると見なしているが、画像形成システムの実際の挙動はカメラフレームの熱膨張、カメラの不用意な動き等のため時間の経過にわたりドリフトすることがある。このドリフトに対処する１つの方法は、カメラを定期的に再キャリブレーションすることである。しかしながら、カメラのキャリブレーションは要求の多いタスクであり、種々の姿勢のキャリブレーションターゲットの多数の画像を取得することを必要とし、長時間かかることがある。さらに、それは通常システムインテグレータ等の熟練者を関与させる。その結果、カメラキャリブレーション（ブロック２２６）は典型的に必要なときのみ熟練した専門家によって行われる。
【００３０】
Ｂ．実行時手順
例示的な実施形態によれば、キャリブレーション自己診断プロセスは全体的実行時ビジョンシステム動作２３０の一部である。一般的に、この例におけるシステムは多数のカメラを使用して対象／部品を教示モデルに基づき、（プロセス分岐２３４を経由して）保存された内部パラメータ２２２、外部パラメータ２２４および誤差統計２２８に従って整列させ検査する。アライメント結果は１以上の対象特徴または対象姿勢の推定された位置（ｘ、ｙ、ｚ世界座標または他の世界座標系）からなる測定結果から集められる。このデータは、実行時ブロック２４０に従ってアライメント得点を計算するために使用できる。図示されているように、実行時プロセスはアライメント結果および中間結果の履歴統計を集めることができる（ブロック２５０）。これらはストア２６０に供給され、ストア２６０は３台以上のカメラのサブセットまたはグループ（複数のカメラ）または全体システムに基づき、アライメント結果および中間結果の統計を集めて編集することができる。それゆえグループは少なくとも２台のカメラからなるが、少なくとも３台のカメラからなるカメラグループ全体より少ない複数のカメラとして定義できる。すなわち、システムはＮ−Ｃｈｏｏｓｅ−Ｍ通りのカメラの組合せのグループまたはサブセットを生成する。ビジョンシステムによって推定される各々の特徴の位置または姿勢は、例示的に教示された３Ｄモデルと観察された画像データのマッチングを測定するように定義された得点関数で評価される。姿勢候補およびこれに関連する得点は、Ｎ−ｃｈｏｏｓｅ−Ｍ通りのカメラ組合せの各々を選択することにより推定できる。より具体的には、ストア２６０は、観察された画像特徴と予測された物理的特徴との間の不一致に関する統計を含んでいてもよい。
【００３１】
例として図１Ａの３台カメラ（ＶＧＲ）セットアップは３−ｃｈｏｏｓｅ−２、すなわち３通りのカメラの組合せを定義し、部品アライメント（姿勢の推定）に使用できる。図１Ｂに示す４台カメラ構成は４−ｃｈｏｏｓｅ−２プラス４−ｃｈｏｏｓｅ−３、すなわち１０通りのカメラの組合せを定義し、部品アライメント（姿勢の推定）に使用できる。１０通りのカメラの組合せのうち、部品アライメントに隣接する２台のカメラを使用する４通りのカメラの組合せは、それらの好適な視角のために最も代表的であろう。
【００３２】
実行時プロセスステップ２７０において、保存された統計（ブロック２６０）は決定するために用いられる。カメラが所定のキャリブレーション精度または閾値内にとどまっている。閾値は所定の値に設定できるが、これは特定のビジョンタスクに依存してもしなくてもよい。例えば、非常に精密なタスクに対して閾値は小さい値であってもよく、大まかな操作タスクは大きい値を許してもよい。プロセスステップ２７０は、十分正確にドリフトしたかを決定する。一般的に、このようなドリフトは内部パラメータよりも外部パラメータ−システム内においてあるカメラの他のカメラに対する相対的状態−に関連する。しかしながら、内部パラメータを保存することが明確に想定されており、これらのパラメータは後続のいずれかの再キャリブレーションステップ（２２６）で利用可能にされてよい。決定ステップ２８０は、１台以上のカメラがキャリブレーションにおいて再キャリブレーション手順の性能を保証するほど十分ドリフトしたか決定する。閾値に到達しなかった場合、システムは実行時部品または対象検査および／またはアライメントの通常動作の間、ステップ２４０、２５０、２６０および２７０（手順分岐２９０経由）に従って統計を監視および保存し続ける。しかしながら、システムの１台以上のカメラ所定の精度／閾値を超えたら、決定ステップ２８０はキャリブレーションステップ２２６に分岐する（分岐２９２経由）。後述するように、システムはオンラインにとどまり、作業員に指示または警告を出すか、または動作を中断して作業員の行動（例えば再キャリブレーション手順）を待機することができる。ステップ２８０の一環として、システムは実行時プロセス（２３０）中に導き出された外部パラメータおよび不一致データを供給でき、そのためシステムは再キャリブレーションを必要とするカメラを特定するために使用できる。加えて、自動化された再キャリブレーション手順を（慣用的な技術に従い）更新された外部パラメータを用いてカメラを自動的に再キャリブレーションするために使用できることが想定されている。
【００３３】
ステップ２７０に従うキャリブレーション測定結果と実行時統計との比較は、種々の技術を用いて達成できる。ある実施形態は、実行時統計プロセスにおける精度観察と、キャリブレーションプロセスで統計的仮説検定を用いて得られた測定結果を比較する。これは、キャリブレーション測定結果の分布と実行時測定結果の分布を前提とすれば、２つの分布の統計的相関である。２つの手順がある統計的有意性をもって同じ精度を有するときは帰無仮説を設定できる。２組の観察に基づいて決定がなされたら、エンドユーザはカメラが再キャリブレーションされる必要があるか決定できる。別の実施形態は、最大不一致をカメラキャリブレーション時間に観察された不一致の関数として設定される閾値と比較するプロセスを提供する。
【００３４】
ここで図４を参照すると、例示的な実施形態による３台以上のカメラの構成においてカメラキャリブレーションの実行時自己診断のための一般化されたプロセス４００が示されている。例として、このプロセスはコンピュータまたはプロセッサ上で実行される診断アプリケーション１８０（図１）においてインスタンス化でき、またはシステム内で１台以上のカメラからなるハードドウェアに直接提供できる。キャリブレーションプロセスは最初にステップ４１０により上述したようにオフラインで実施される。このプロセスの間、外部パラメータおよびその他のパラメータと統計、例えば種々のカメラグループまたはサブセット（例えばカメラ対）に関する特徴の位置または姿勢の測定結果の不一致が生成および保存される。前述の通り、本明細書で定義された「カメラ」は、あるシーンの離散的な画像を取得する任意の装置である。センサは一種のカメラであり、１台以上の撮像装置（カメラおよびその他の３Ｄ撮像のための距離測定装置）を含んでよい。
【００３５】
続いてプロセス４００は実行時段階（破線４２０）に入り、ここで対象特徴または対象全体がシステムの各々のカメラ−ブロック４３０、４３２、４３４で示されているように少なくとも３台のカメラと、該当する場合はその他のカメラ（ブロック４３６）によって検出される。検出された特徴は実質的に同じであってもよい（すなわち各々のカメラは一般的に同じ特徴を検出して世界ｘ、ｙ、ｚ座標またはその他の座標におけるそれぞれの位置を推定する）。代替的に、異なるカメラが物理的空間において互いに対して既知の位置にある１以上の異なる特徴を検出してもよい。これは、一部のカメラは他のカメラが検出した特徴の劣化した表示または不明瞭な表示しか持たない場合に適していよう。代替的に、各々のカメラは教示されたモデルに基づいて対象３次元空間における姿勢を決定できる。ブロック４３０、４３２、４３４、４３６によれば、カメラは各々対象の特徴の「測定結果」を決定する。例示的には、測定結果は特徴に対する推定されたｘ、ｙ、ｚ（その他の座標系）位置、姿勢、または特徴または対象が各々のカメラによってどの程度成功して検出されたかを表す得点であってもよい。各々のカメラからの測定結果は、システム内の各々のカメラに対してステップ４４０で保存できる。これらの測定結果は、カメラグループへと編成され適当なフォーマットに変換され得る。
【００３６】
３次元空間における特徴の位置および／または姿勢は、エッジ検出、ブロブ解析、回転およびスケール不変探索等を含む広範な在来のマシンビジョン技術によって決定できる。３Ｄにおける姿勢を検出する技術も、上で組み入れられた合衆国特許出願番号１２／３４５，１３０「マシンビジョンを用いる対象の３次元アライメントのためのシステムと方法」に記載されている。
【００３７】
ステップ４５０で、次に複数のカメラ（全体的なマルチカメラシステムからのカメラのグループまたはサブセット、典型的にカメラ対）の各々によって検出された測定結果が比較されて、それらの間の三角測量結果の得点または残留誤差を導き出す。これは不一致として定義することもできる。これらの比較は閾値または精度値に関して順番に分析される。精度値は所望の設定値として定義でき、ユーザによって提供されるか、またはシステムにおいてあらかじめプログラムされる。このような離散的な閾値は一部必要とされる精度に基づいてもよく、カメラのドリフトに対して許容範囲のレベルを指示する。すなわち低い精度は再キャリブレーションが必要となる前により多くのカメラドリフトを許容し、高い精度はより少ないカメラドリフトを指示する。代替的に、精度はシステム精度であってもよく、これはキャリブレーション中に導き出される残差または不一致の累積に基づいて定義される。
【００３８】
決定ステップ４６０では、ステップ４５０で各々のカメラグループまたはサブセットからの測定結果を比較した結果、閾値または精度を超えたら、システムは再キャリブレーションまたはその他の適当な措置を講じるための信号を出す（ステップ４７０）。講じられる措置は、要因およびプログラムされた命令の数に依存する。例えば閾値を著しく超えなければ、システムは再キャリブレーションの警告を出すが動作し続けてよい。代替的に信号はシステムを停止させてアラームを発生させる。別の実施形態において、システムは随意に保存された測定結果を多数の対象検査サイクルにわたり現在のシステム状態の合理的に精確な指標として使用でき、キャリブレーションがずれた１台以上のカメラのために新しい外部パラメータを導き出す（ステップ４８０）。これらの新しい外部パラメータは適当なカメラに戻すことができ（手順分岐４８２経由）、人の手で、または自動化方式で再キャリブレーションを行うために使用される（例えば検出されたドリフトに対処するためにカメラの既存の外部パラメータを新しい外部パラメータで置き換える）。再キャリブレーションはオフラインで達成でき、または適当なアプリケーションが設けられている場合は、オンザフライ方式で再キャリブレーションするカメラ、もしくは少なくともシステム内の他の再キャリブレーションしないカメラで行い、引き続きオンラインで検査タスクを続行する。いずれの再キャリブレーションにおいても、内部パラメータは適当なキャリブレーション対象および／またはその他の手順を用いて更新できることが想定されている。
【００３９】
決定ステップ４６０が、各々のカメラグループについて比較された測定結果が許容された精度内にとどまっていると決定する場合、実行時手順は継続して（手順分岐４８４経由）、さらに測定結果を蓄積する。ここで留意すべきは、システムに関する比較または所望の精度は多数の検査サイクルにわたる平均（履歴）測定結果を考慮できるので、異常測定結果の数が比較的小さければ早過ぎる再キャリブレーション信号を引き起こさないことである。
【００４０】
ドリフトに起因する受け入れ可能なカメラの誤差は誤差分布に基づいてもよい点に留意されたい。例えば、システムは履歴を基準にして位置のＲＭＳ誤差を点検するように適合させることができる。
【００４１】
一般的に、３台以上のカメラを前提すると、システムは対象の測定結果に固有の冗長性を含む。この冗長性によりカメラグループ全体のサブセットグループ間で測定結果が相違し、少なくとも１台のカメラはキャリブレーションがずれた状態にあることを示す。
【００４２】
Ｃ．位置と姿勢の推定を決定および比較するための例示的技術
図４の比較ステップ４５０によれば、システムは３Ｄ特徴の位置または対象の姿勢を決定するのに種々の技術を用いて、推定に基づいて誤差または不一致を導き出すことができる。以下に決定および比較のための例示的な技術を記載する。
【００４３】
１．多数のカメラにおいて２Ｄ画像ポイントから特徴ポイントの３Ｄ位置を推定
カメラキャリブレーションに続いて、物理的空間における３Ｄポイントを画像空間における２Ｄポイントにマッピングでき、画像空間における２Ｄポイントは物理的空間における３Ｄ光線にマッピングできる。マッピングに関する以下の記述は、リチャード・Ｉ．ハートリーおよびアンドリュー・ジッセルマン著「多視点幾何学」第２版（ケンブリッジ・ユニバーシティー・プレス、２００４年）を背景情報として行う。記述を簡素化するために、ここでは半径方向の歪みは無視できるものとする。そうすると３Ｄ世界座標系５１０におけるポイントからプロセッサ画像座標系５２０へのマッピングは、カメラキャリブレーションマトリックスＭによって管理される。ｎ台のカメラを有するシステムに対して、これらのマトリックスはＭｉ≦ｉ≦ｎとして表すことができる。図６を参照して、世界におけるポイントＰは式ｐｉ＝ＭｉＰに従いｐｉとしてマッピングされる。同様に２台以上のカメラ（模範的なカメラｌとカメラ２を図示する）におけるポイントの画像（模範的なポイントｐｌおよびｐ２を図示する）を前提すると、その世界座標系における位置は三角測量を用いて計算できる。それぞれのカメラｉ（カメラｌ、カメラ２）におけるポイントｐｉ（ｐｌ、ｐ２）に対して、画像は光線Ｒｉ（Ｒ１とＲ２）として投影される。世界座標系における光線の式はＰi（λ）＝Ｍｉ+ｐｉ＋λＣｉで表され、Ｃｉ（Ｃ１とＣ２）は世界座標系におけるカメラの中心である。ＣｉとＭｉ+はカメラキャリブレーションパラメータから得られる。世界座標系におけるポイントは、多数のカメラからの光線間の交差ポイントを検出することによって得ることができる。
【００４４】
実地ではノイズが存在すると２本の光線（Ｒ１とＲ２）は交差するとは限らない。このような状況で三角測量に利用できる技術が幾つかある。例示的な実施形態では、最初に世界座標系内にすべての光線との間の距離の合計が最小であるポイントを検出する技術を用いる。この推定結果は、カメラの中心からのポイントの距離と、光学軸に対する光線の角度に基づいて精緻化される。この技術に加えて、またはこの技術の代替として別の三角測量の技術も使用できる。
【００４５】
次に図６を参照して、ポイントＰの値は本明細書に記載された三角測量を用いて導き出され、位置Ｐは式Ｐｉ（λ）＝Ｍｉ+ｐｉ＋λＣｉおよびＰ２（β）＝Ｍ２+ｐ２＋βＣ２でλとβの値を求めることによって計算される。
【００４６】
２．２Ｄと３Ｄの対応から対象の３Ｄ姿勢を推定する
ある対象の姿勢は、対象モデルをその固有の座標系から感知データとの一致にマッピングするのに必要とされる３Ｄ剛性変換である。剛体の姿勢を推定することは、２Ｄ画像から３Ｄ空間における剛体の動きを決定することを意味する。３Ｄモデルを知るために、推定プロセスは画像におけるある２Ｄ特徴と３Ｄモデルにおけるそれらの対等物との対応に依存する。
【００４７】
種々の姿勢の推定問題に対する解は、ハラリック、Ｒ．Ｍ．が「対応するポイントデータからの姿勢の推定」（ＩＥＥＥシステム・人間・人工頭脳部会議事録１９巻６号、１９８９年１１／１２月、１４２６〜１４４６ページ）で教示している。
【００４８】
さらに別の例示により、ツァイの出版物に記載されているように、図５はカメラモデルの基本的幾何を例示する。（Ｘｗ、Ｙｗ、Ｚｗ）は、３Ｄ世界座標系における対象ポイントＰの３Ｄ座標を定義する。（Χ、Ｙ、Ζ）は３Ｄカメラ座標系５２０における対象ポイントＰの３Ｄ座標５１０を定義する。この座標系の中心はポイントＯ、すなわち光学中心であり、ｚ軸は光学軸（図１も参照）と同じである。（ｘ、ｙ）はＯｉ（光学軸と画像正面５３０の交点）を中心とする画像座標系であり、ｘ軸およびｙ軸に対して平行である。ｆは画像正面５３０と光学中心Ｏとの距離である。（ｘｕ、ｙｕ）は、完璧なピンホールカメラモデルを使用した場合の（Ｘ、Ｙ、Ｚ）の画像座標である。（ｘｄ、ｙｄ）は、レンズ歪みのために（ｘｕ、ｙｕ）とは異なる実際の画像座標である。しかしながら、ここではカメラはキャリブレーションされているので、レンズ歪みはマッピングの前に補正である。
【００４９】
３Ｄ世界座標から２Ｄカメラ座標系へのマッピングは、例示的に４段階変換として提供され、次のステップに従って進行する。
【００５０】
１．対象の３Ｄ世界座標系（Ｘｗ、Ｙｗ、Ｚｗ）５１０からカメラの３Ｄ座標系（Ｘ、Ｙ、Ｚ）への剛体変換を実行する。
【数１】
2013515959.tif 000003
【００５１】
ここに、Ｒは３Ｘ３回転マトリックスであり、Ｔは３Ｘ１並進ベクトルである。キャリブレーションされるパラメータはＲとＴである。
【００５２】
２．３Ｄカメラ座標（Χ、Ｙ、Ζ）から理想的な（歪められていない）画像座標（ｘｕ、ｙｕ）への変換を、次のピンホールカメラ幾何による透視投影を用いて実行する。
【数２】
2013515959.tif 000004
【００５３】
３．半径方向レンズ歪みを次の通り計算する。
【数３】
2013515959.tif 000005
【００５４】
ここに、（ｘｄ、ｙｄ）は画像面５３０上の歪められた画像座標または真の画像座標である。半径方向レンズ歪みを規定するために利用できる多数のモデルがある。モデルの１つは、次の通りである。
【数４】
2013515959.tif 000006
使用されるモデルのタイプは、撮像に使用されるレンズのタイプに基づいて決定できる。
【００５５】
４．真の画像座標（ｘｄ、ｙｄ）からプロセッサの画像座標（ｘｆ、ｙｆ）への変換を実行する。
【数５】
2013515959.tif 000007
【００５６】
ここに、
（ｘｆ、ｙｆ）      プロセッサの画像フレームメモリ内の画像ピクセルの行と列の数
（Ｃｘ、Ｃｙ）      画像面における原点に対するコンピュータ画像座標
【数６】
2013515959.tif 000008
ｄｘ        ｘ（走査線）方向における隣接するセンサ要素間の距離
ｄｙ        ｙ方向における隣接するＣＣＤセンサ間の中心距離
Ｎｃｘ      ｘ方向におけるセンサ要素の数
Ｎｆｘ      プロセッサによってサンプリングされる線内のピクセルの数、である。
【００５７】
ａｘは多様な要因、例えば画像取得／プロセッサハードウェアとカメラ走査ハードウェアとのわずかなハードウェアタイミング不一致、または走査タイミング自体の不正確さに起因する。ｓx＝ａxｄ’x-1に設定し、ｄｙを１に設定すると、ｓｘを見つける必要がある。ｄｙが１に設定されると、計算された焦点距離ｆは、実際の焦点距離とｙにおける倍率の積である。
【００５８】
姿勢推定問題は、カメラ内部パラメータが既に知られている場合のカメラ外部パラメータキャリブレーションと同じである。問題を単純にするために、生画像で検出された２Ｄ画像ポイントは、上記のステップ２のように基準画像面に表現されるように正規化されている。それゆえ姿勢推定問題は、次のように定式化できる。
【００５９】
１組の世界ポイント（Ｘｗ、Ｙｗ、Ｚｗ）ｉ、ｉ＝１，２，・・・，ｎおよびこれに対応する１組の正規化された画像ポイント（ｘｕ、ｙｕ）ｉを前提すると、姿勢推定問題は幾何的再投影の誤差を最小化する回転マトリックスＲと並進ベクトルＴを検出することである。
【数７】
2013515959.tif 000009
【００６０】
代替的に、各々の画像ポイントは３Ｄ線として表現できる投影光線を定義するので、姿勢推定問題は、３Ｄポイントと３Ｄ線の距離がすべての対で最小であるような変換を検出することに等しく、これは対象空間共線性としても知られている。
【００６１】
誤差測定の最小化は、レーベンバーグ・マルカート法等の非線形最適化法によって行うことができる。マルチカメラ（または多視点）ビジョンシステムにおいて、すべてのカメラが同じ世界座標系にキャリブレーションされた後で、各々のカメラの対応が１つの線形システムに付加されて同時に解決される。多数のカメラを使用することは、曖昧性の分解能の改善や精度の改善という利点がある。
【００６２】
３．多面体モデルを濃淡値勾配に直接マッチングさせることにより対象の３Ｄ姿勢を推定する
上記２項では、姿勢推定問題を非線形最適化問題として記述し、対象の剛性変換（回転および並進）は対応する２Ｄポイントおよび３Ｄポイントの再投影誤差に基づき誤差測定を最小化することによって見出される。
【００６３】
代替的に、２Ｄと３Ｄの対応を確立することが困難な場合、モデルを種々異なる仮定された姿勢でグレーレベル勾配画像に直接マッチングさせることによって対象の３Ｄ姿勢を推定でき、そしてマッチング得点が最も高い姿勢を報告する。
【００６４】
例えば、マッチングプロセスは次のステップで行うことができる。
【００６５】
ａ．Ｒｘ、Ｒｙ、Ｒｚおよびｔｘ、ｔｙ、ｔｚに対する探索空間をセットアップする。６次元空間Ｒｘ、Ｒｙ、Ｒｚ、ｔｘ、ｔｙ、ｔｚにおける各サンプリングポイントが仮定された姿勢を定義する。
【００６６】
ｂ．各サンプリングポイント（仮定された姿勢）について、対象の３Ｄモデルをカメラキャリブレーションに基づいて．画像空間に投影する。投影された２Ｄポイントとグレーレベル勾配画像とのマッチング得点を計算する。
【００６７】
ｃ．６次元空間Ｒｘ、Ｒｙ、Ｒｚ、ｔｘ、ｔｙ、ｔｚにおける最多得点を探索する。非極大値抑制等の典型的なピーク検出技術を適用する。
【００６８】
ｄ．最多得点と結び付いた姿勢が関連した対象に対して推定された姿勢である。
ステップｂにおいて３Ｄモデルを画像面に投影する場合に、自己遮蔽特徴を除去することによって３Ｄモデルのトポロジーを明らかにすべきであることに留意されたい。
【００６９】
以下は、上述したように例示的な実施形態による、このような２つの測定結果を比較するために、位置と姿勢の推定を用いる技術である。
【００７０】
ｉ．特徴ポイントの３Ｄ位置の２つの推定を比較する
特徴ポイントの３Ｄ位置の２つの推定を比較するとき、２つの推定された３Ｄポイントのユークリッド距離を使用できる。
【数８】
2013515959.tif 000010
【００７１】
検出された第１の特徴と検出された第２の特徴が実質的に同じであるときは、検出された２つの位置のユークリッド距離を、（ｉ）ステップ（ａ）で決定された精度と、（ｉｉ）所望のシステム精度のうちの少なくとも１つで直接比較できる。
【００７２】
図１Ｃのビジョンシステム構成１８０を簡単に参照すると、カメラ１８２、１８４、１８６、１８８は、それぞれ複数のカメラを包含する２つのグループ（１８２、１８４）および（１８６、１８８）に配置されている。本明細書に記載された別の実施形態におけるように、カメラ１８２、１８４、１８６、１８８は画像取得およびビジョンシステム処理のために、それぞれ多様な内部および外部ハードウェアおよびソフトウェアプロセスを含んでいてもよい。必要に応じて外部プロセッサおよび関連装置（図示せず）も設けることができ、カメラおよび／または外部装置は必要に応じて有線および／または無線接続により接続できる。すべてのカメラは、体積空間内の模範的な対象１９０の画像を取得する。模範的な第１の特徴１９２と模範的な第２の特徴１９４が離れた位置および／または対象の異なる表面／３Ｄ向きに設けられている。カメラグループ／複数のカメラ１８２、１８４は第１の特徴を取得および検出し、第２のグループ／複数のカメラ１８２、１８４は第２の特徴１９４を取得および検出する。その他の特徴が設けられている場合は、対象上の当該特徴の位置と向きを取得するために最良に位置決めされたカメラを使用するように変更できる点に留意されたい。一般的に、例示的な実施形態によれば、検出された第１の特徴と検出された第２の特徴が物理的空間において異なり、図示されている既知の物理的寸法（すなわち「既知の特性」）によって分離される場合は、２つの検出された位置のユークリッド距離および既知の物理的寸法を比較できる。さらにそれぞれの三角測量の結果の２つの残差を比較できる。
【００７３】
ｉｉ．対象の３Ｄ姿勢の２つの推定を比較する
ある対象の姿勢は、対象モデルをその固有の座標系から感知データとの一致にマッピングするのに必要とされる３Ｄ剛性変換である。姿勢の推定は回転マトリックスＲと並進ベクトルＴからなる。対象の２つの姿勢の推定を比較するために多数の方法を用いることができる。
【００７４】
直観的測定は、２つの姿勢で変換された２組のモデルポイントの間の二乗平均平方根距離である。
１組のモデルポイントを
【数９】
2013515959.tif 000011
とすると、２つの姿勢推定の二乗平均平方根距離は次のように定義される。
【数１０】
2013515959.tif 000012
【００７５】
ここに、［Ｒ１｜Ｔ１］は第１の姿勢推定を表し、［Ｒ２｜Ｔ２］は第２の姿勢推定を表す。
モデルポイントセットは対象モデルの表面または内部の少数のユニークな特徴ポイントとして定義できる。代替的に、それはソリッドモデルの表面のモザイク状ファセットの頂点として定義できる。
【００７６】
２つの姿勢を比較する別の技術は、ロボットが対象を第１の姿勢［Ｒ１｜Ｔ１］から第２の姿勢［Ｒ２｜Ｔ２］に動かすのに使用するであろう仕事量を計算することである。２つの姿勢の間の変換は依然として剛体変換［Ｒ１｜Ｔ１］-1・［Ｒ２｜Ｔ２］である。対象は、スキュー理論として知られている回転と並進を組み合わせた動作で、第１の姿勢から第２の姿勢に動かすことができる。２つの姿勢を比較するために、変換［Ｒ１｜Ｔ１］-1・［Ｒ２｜Ｔ２］に対する螺旋軸と螺旋運動パラメータを計算できる。モデルポイントセットの各ポイントについて、動作の螺旋に沿った線積分を計算できる。次に２つの姿勢の間のずれをモデルポイントセットのすべてのポイントの合計として計算する。再び、モデルポイントセットは対象の表面の目立った特徴ポイント、または対象のモザイク状ファセットの頂点のセットであってもよい。
【００７７】
例示的な実施形態のシステムと方法は、３台以上のマシンビジョンカメラからなるシステムにおいて、外部パラメータが変わるために１台以上のカメラのミスキャリブレーションを特定するための効果的な技術を提供することは明確でなければならない。このシステムと方法は、誤ったマシンビジョンタスクが発生するのを可能にする前にミスキャリブレーションが特定されることを保証し、自動化された方法で再キャリブレーションを可能にする。とりわけこのシステムと方法は、多様な検査用途および対象特徴の位置または姿勢を決定するための機構に応用できる。
【００７８】
以上、本発明の例示的な実施形態を詳細に記述した。本発明の精神および範囲から逸脱することなく種々の修正および追加を行うことができる。上述した種々の実施形態の各々は記載された他の実施形態と組み合わせて多数の特徴を提供できる。さらに、以上に本発明の装置と方法の多数の別個の実施形態が記載されているが、これは本明細書において本発明の原理の応用を単に例示的に記したに過ぎない。例えば、システムは比較を所望の精度またはその他の閾値で実行するために、対象の多数の特徴と姿勢で動作できる。また、「位置」とい言う用語は、キャリブレーション精度におけるドリフトを決定する目的で、特徴または対象の取得された画像を他の画像と比較できるようにする多様な異なる構造を定義するものとして広く解釈されるべきである。対象の位置を特定する代替的な方策を用いることもできる。例えば実施形態に従って測定結果を導き出すために、在来技術に従う輪郭マッチング技術を用いることができる。さらに、対象または部品は、各々の部品取得と一緒に取得され得るシーン内の永久的な特徴（例えば基準）として定義できる。この永久的な特徴またはパターンは、例示的な実施形態に従って測定結果を決定するために使用される。さらに、ことが明確に想定されている。本明細書に記載されたプロセスと手順は、ハードウェア、コンピュータ可読プログラム命令からなるソフトウェア、またはハードウェアとソフトウェアの組合せとして実現できる。従って上記の説明は、例示の目的としてのみ理解されるべきであり、本発明の範囲を制限することを意図するものではない。
【図１】
2013515959.tif 000013
【図１Ａ】
2013515959.tif 000014
【図１Ｂ】
2013515959.tif 000015
【図１Ｃ】
2013515959.tif 000016
【図２】
2013515959.tif 000017
【図３】
2013515959.tif 000018
【図４】
2013515959.tif 000019
【図５】
2013515959.tif 000020
【図６】
2013515959.tif 000021
【国際調査報告】
2013515959.tif 000022
2013515959.tif 000023