(57)【要約】【課題】本発明は、適切なデータベース化により最小限のデータ量で対象物体に関する輪郭関数データベースを作成するとともに、姿勢推定速度の高速化、姿勢推定精度の高精度化を実現することのできる、輪郭関数を用いた３次元位置姿勢の画像推定方法を提供する。【解決手段】ＣＡＤ空間でレンダリングされた対象物体の様々な姿勢を、カメラ光軸と一致させて固定している所定の１軸の回転を最初のオイラー角として変化させ、これらとカメラで撮像された対象物体のカメラ画像との相関値を、高速フーリエ変換を用いて算出し、ＣＡＤ空間でレンダリングされた対象物体の様々な姿勢の中で最も相関値の高いものを、実空間における対象物体の３次元姿勢として推定するものである。【選択図】  図１
2004326314.tif 000002
【特許請求の範囲】
【請求項１】
対象物体の実空間における位置および姿勢を、カメラ画像上で推定する３次元位置姿勢の画像推定方法であって、
前記対象物体の姿勢の推定には、
３次元の数値データが与えられた対象物体を、カメラ光軸と一致させた所定の１軸の回転を最初のオイラー角として、他の２軸を回転して複数の姿勢から捉え、これら各々の姿勢からレンダリング画像を取得する第１の工程と、
複数の該レンダリング画像各々から、対象物体の輪郭点を算出した後、輪郭関数を算定し、輪郭関数データベースを作成する第２の工程と、
該第２の工程と同様の作業により、実空間の対象物体をカメラにより撮像した２次元のカメラ画像から該対象物体の輪郭関数を抽出した後、カメラ画像の輪郭関数と輪郭関数データベースに蓄積されたすべての輪郭関数との相関係数を高速フーリエ変換を用いて算定する第３の工程と、
該第３の工程による算定結果から、対象物体の姿勢を推定する第４の工程により構成されることを特徴とする３次元位置姿勢の画像推定方法。
【請求項２】
請求項１に記載の３次元位置姿勢の画像推定方法において、
第１の工程では、カメラ光軸と一致させた所定の１軸の回転角を、１通りとすることを特徴とする３次元位置姿勢の画像推定方法。
【請求項３】
請求項１または２に記載の３次元位置姿勢の画像推定方法において、
第２の工程及び第３の工程で、前記輪郭関数が、輪郭距離を輪郭角度の関数で表されており、輪郭距離が、前記輪郭点と極座標の極からの距離として算定されるとともに、輪郭角度が、輪郭距離を、極を回転中心として極座標の原線からの回転角として算定され、
前記輪郭点に、所定量の輪郭角度の変動域を含む同一輪郭角度上に存在する複数の輪郭点の中で、最外郭に位置する輪郭点のみを用いることを特徴とする３次元位置姿勢の画像推定方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、実空間における対象物の３次元の位置姿勢を、カメラ画像上で推定する３次元位置姿勢の画像推定方法に関する。
【０００２】
【従来の技術】
従来より、カメラを用いた３次元位置姿勢推定の画像推定手法には、エッジ検出から線分、面などを抽出し幾何学計算により算出する方法、ＣＡＤ画像データベースと画像照合することにより推定する方法、輪郭関数データベースと輪郭照合することにより推定する方法等が、一般に知られている。
エッジ検出から線分、面などを抽出し幾何学計算により算出する方法では、線分、面といった対象物のパーツのみで推定するため、推定精度を改善する必要がある。また、最終的に３次元位置を推定するには、対象物体の寸法が必要となるため、モデル照合手法と何ら変わりない。
また、ＣＡＤ画像データベースと画像照合することにより推定する方法では、画像データベースとの相関を取る際に、非現実的なデータ量、計算時間が必要となるため、一般的には特徴点部分のみの照合が行われ、かつ逐次推定手法が用いられる。しかし、カメラ画像からの特徴点抽出は抽出精度に問題があり、逐次推定手法には推定の収束性が保証されないという問題がある。
さらに、輪郭関数データベースと輪郭照合することにより推定する方法では、ＣＡＤ画像データベースと画像照合する方法と比較すると、大幅にデータ量、計算時間が削減されるが、その殆どが２次元平面のみでの扱いであり、３次元を扱う手法でも、３軸回転分の姿勢データを用意して３軸回転分の相関計算を必要とし冗長である。また、輪郭が凸型形状を前提としており、凹型形状への対処に改善の必要がある。
【０００３】
上述する代表的な３つの手法の中でも、例えば、輪郭関数データベースと輪郭照合することにより推定する方法には、特許文献１から特許文献３に示すような手法が考案されている。
【０００４】
【特許文献１】
特開平０９−１６７２３４号公報
【特許文献２】
特開平１０−６３３１８号公報
【特許文献３】
特開平０８−６３６０４号公報
【０００５】
【発明が解決しようとする課題】
特許文献１は、工場でのロボットによるピックアップ動作を対象としているため、対象は平面１軸回転だが、ロボット側は３軸回転を許しているため、相対的には３次元の姿勢推定となる。しかし、相対３次元の姿勢推定を行うのに、合計４次元の輪郭データを要するのでデータが冗長となるだけでなく、ロボット側の３軸分のデータには、２軸分で済むのでデータおよび相関計算も冗長となる。
特許文献２は、相関による角度検出で、マッチングにおいて位相を用いていないので計算が冗長で、そのために、用意するデータも２周期分必要とするためデータサイズも冗長となっている。
特許文献３は、２次元でのみ適用可能であるが、平面回転に関しては、輪郭関数の周期性を考慮し、輪郭関数の位相が推定回転角度に相当することを示している。これら輪郭関数の位相に着目する点は、データ量削減、計算速度の向上の点から大きなメリットを得られるが、特許文献３では、計算速度の向上を導くような構成が示されていない。
【０００６】
上記事情に鑑み、本発明は、適切なデータベース化により最小限のデータ量で対象物体に関する輪郭関数データベースを作成するとともに、姿勢推定速度の高速化、姿勢推定精度の高精度化を実現することのできる、輪郭関数を用いた３次元位置姿勢の画像推定方法を提供することを目的としている。
【０００７】
【課題を解決するための手段】
請求項１記載の３次元位置姿勢の画像推定方法は、対象物体の実空間における位置および姿勢を、カメラ画像上で推定する３次元位置姿勢の画像推定方法であって、前記対象物体の姿勢の推定には、３次元の数値データが与えられた対象物体を、カメラ光軸と一致させた所定の１軸の回転を最初のオイラー角として、他の２軸を回転して複数の姿勢から捉え、これら各々の姿勢からレンダリング画像を取得する第１の工程と、複数の該レンダリング画像各々から、対象物体の輪郭点を算出した後、輪郭関数を算定し、輪郭関数データベースを作成する第２の工程と、該第２の工程と同様の作業により、実空間の対象物体をカメラにより撮像した２次元のカメラ画像から該対象物体の輪郭関数を抽出した後、カメラ画像の輪郭関数と輪郭関数データベースに蓄積されたすべての輪郭関数との相関係数を高速フーリエ変換を用いて算定する第３の工程と、該第３の工程による算定結果から、対象物体の姿勢を推定する第４の工程により構成されることを特徴としている。
【０００８】
請求項２記載の３次元位置姿勢の画像推定方法は、第１の工程では、カメラ光軸と一致させた所定の１軸の回転角を、１通りとすることを特徴としている。
【０００９】
請求項３記載の３次元位置姿勢の画像推定方法は、第２の工程及び第３の工程で、前記輪郭関数が、輪郭距離を輪郭角度の関数で表されており、輪郭距離が、前記輪郭点と極座標の極からの距離として算定されるとともに、輪郭角度が、輪郭距離を、極を回転中心として極座標の原線からの回転角として算定され、前記輪郭点に、所定量の輪郭角度の変動域を含む同一輪郭角度上に存在する複数の輪郭点の中で、最外郭に位置する輪郭点のみを用いることを特徴としている。
【００１０】
【発明の実施の形態】
以下、本発明に係る３次元位置姿勢の画像推定方法について、図１から図１１に示す図を参照して、以下に詳述する。
本実施の形態では、カメラによる画像計測対象を衛星としたが、対象物体は衛星に特定するものではない。また、カメラは２次元画像用カメラのみではなく、３Ｄのレーザレンジファインダに対しても適用可能である。また、本実施の形態では、実空間における対象物体及びカメラを、対象物体及びカメラと称し、ＣＡＤ空間における対象物体及びカメラを、ＣＡＤモデル１、ＣＡＤカメラと称する。
【００１１】
図１に、ＣＡＤモデル座標系Σｍの説明を示す。ΣｍはＣＡＤモデル１に固定された直交右手系座標系であり、幾何学重心Ｏｍを原点とし、図１のようなＸｍ、Ｙｍ、Ｚｍ軸の方向をとる。また、後の図４に示すような輪郭関数データベース作成のために、図１のような回転角θｘ、θｙ、θｚを定義しておく。各軸右ねじの進む方向に対応する回転を正の回転方向とする。ＯｍはＣＡＤモデル１の幾何学重心あるいは質量重心である必要はなく任意性があるが、本実施の形態では幾何学重心として説明する。
【００１２】
カメラ座標系は、透視変換の原理に基づき（実空間での）カメラの画面描画をモデル化した座標系であり、  カメラモデルはカメラと焦点距離、画角、画像サイズ（ピクセル数）を一致させておく。図２にカメラ座標系Σｃの説明を示す。Σｃはカメラに固定された直交座標系であり、カメラ視点Ｏｃを原点とし、図２のようにカメラ画像２右方向を＋Ｘｃ、カメラ画像２上方向を＋Ｙｃ、カメラ画像２手前方向を＋Ｚｃ軸の方向とする。また、ｏはカメラ画像２中心で、ｆは焦点距離を表す。従って、カメラ画像２はＺｃ＝−ｆの平面となる。
【００１３】
（ＣＡＤモデルのレンダリング画像の取得）
ＣＡＤモデル１のレンダリング画像作成フローチャートを図３に示す。以下に手順を説明する。
【００１４】
（幾何学重心のセット）
まず、図１に示すＣＡＤモデル１の幾何学重心Ｏｍを、図２に示すカメラ座標のＺｃ軸上で、ｏより−Ｚｃ軸側の位置にセットする。
【００１５】
（軸方向のセット）
次に、図１に示すＣＡＤモデル座標系の３つの座標軸方向＋Ｘｍ、＋Ｙｍ、＋Ｚｍを、図２に示すカメラ座標系の３つの座標軸方向＋Ｘｃ、＋Ｙｃ、＋Ｚｃに一致させる。＋Ｘｍ、＋Ｙｍ、＋Ｚｍ軸方向はＣＡＤモデル１に固定の座標軸方向であるため、ＣＡＤモデル１の回転により＋Ｘｃ、＋Ｙｃ、＋Ｚｃ軸方向と異なるが、初期状態として一致させておく方が簡単である。
本実施の形態では、対応を解り易くするために＋Ｘｃ→＋Ｘｍ、＋Ｙｃ→＋Ｙｍ、＋Ｚｃ→＋Ｚｍとしてだけであり、重要なのは、ＣＡＤモデル１の最初の回転軸をカメラ光軸Ｚｃ軸方向にすることであり、ＣＡＤモデル１の座標系の取り方によっては、＋Ｘｍ軸でも＋Ｙｍ軸でも最初のオイラー角とすることが可能である。
【００１６】
（Ｘ軸、Ｙ軸回転ループ）
次に、種々のＣＡＤモデル１姿勢のレンダリング画像を取得するため、ＣＡＤモデル１姿勢を変化させ、それぞれの姿勢についてのレンダリング画像を取得する。本実施の形態での姿勢表現はオイラー角を用いて行い、カメラ座標系から見て、図１に示すθｚ→θｙ→θｘの順番での回転を採用するが、最初の回転がθｚであることのみ必須であり、θｚ→θｘ→θｙ、θｚ→θｘ→θｚ、θｚ→θｙ→θｚの順番でも構わない。ただし、レンダリング画像取得においては、最初のθｚは回転させる必要は無く、一般的にはθｚは初期状態（例えばゼロ）固定で良い。本実施の形態では簡単のためθｚはゼロとして説明するが、任意に設定した所定の角度何れに設定しても良く、これにより本手法の一般性を損なうことは無い。
これより、図３に示すようにθｘ、θｙのみ独立に変化させればよく、これが本手法におけるデータ量削減の特徴の１つである。θｘ、θｙの姿勢変化量は、要求される画像処理での姿勢分解能により定まる。
【００１７】
（輪郭関数のフーリエ変換の取得）
ＣＡＤモデル１の輪郭関数のフーリエ変換の作成フローチャートを図４に示す。図４におけるＦＦＴは高速フーリエ変換を意味する。以下に手順を説明する。
【００１８】
（入力画像）
入力画像は、レンダリング画像、カメラ画像２のいずれかである。図４ではレンダリング画像として示してある。
【００１９】
（輪郭点の取得）
まず、図３に示すレンダリング画像作成フローにより出力されたレンダリング画像から輪郭点Ｐを取得する。輪郭点Ｐの取得方法として、本実施の形態では例として、２値化→塗り潰し→輪郭点抽出、というシーケンスを示したが、この手法に限定されるものではない。
なお、本実施の形態では、２値化画像における背景は黒ピクセル、対象物体領域あるいはＣＡＤモデル１領域は白ピクセルとして扱う。また、塗り潰し画像とは、２値化された取得画像において、対象物体あるいはＣＡＤモデル１領域内における黒ピクセルの穴を白ピクセルに変更した（塗り潰した）画像を意味する。
【００２０】
（塗りつぶし点の白ピクセル個数、重心座標取得）
塗り潰し画像取得時に、塗り潰し点の白ピクセル個数、重心座標を出力する。これらの出力は、輪郭関数の作成には直接は関係ないが、後の位置推定に用いるため、一連のフローの中で出力しておく。
なお、カメラ画像２を入力画像とし、カメラ画像２の取得に用いるカメラにレーザレンジファインダを適用する場合、レーザレンジファインダの奥行きデータのみを同一位置と見なしたデータに置き換えると、これはＣＣＤカメラ画像に対応するデータとなる。従って、このレーザレンジファインダデータから上述する塗り潰し画像と同様の画像を得ることが可能である。
【００２１】
（輪郭点の重心の取得）
次に、輪郭点の重心を取得する。本実施の形態では、重心は輪郭点の幾何学重心を意味するが、本手法で必要とする条件は、仮定した重心を原点とする輪郭関数が仮定した重心の位置変動に不感であること、輪郭関数の画面内回転が輪郭関数の位相差となることのみである。従って、塗り潰し点の幾何学重心、輪郭外接円中心などでも本手法に適用可能である。
【００２２】
（輪郭点の極座標変換）
次に、図５に示すように、カメラ座標系の輪郭点を、重心Ｇを原点、つまり重心Ｇを極とする極座標に変換する。変換されたパラメータは、輪郭点と重心Ｇとの距離ＧＰ、ＧＰ１、ＧＰ２、Ｚｃ軸周りの＋Ｘｃ軸からの角度θｚである。本手法では、この輪郭点と重心との距離ＧＰ、ＧＰ１、ＧＰ２を輪郭距離、極座標の原線である輪郭点の＋Ｘｃ軸からの角度θｚを輪郭角度と呼ぶことにする。また、輪郭距離は輪郭角度の関数として表されるので、この関数を輪郭点関数と呼ぶことにする。
輪郭距離は図５に示すように同一輪郭角度に複数存在する場合があるが、Ｐ１、Ｐ２のような窪んだ輪郭線上の輪郭点は、奥行き距離が遠くなると量子化誤差により内部の点に吸収されてしまう。そこで、本実施の形態では、輪郭距離は最外郭輪郭点ＰのＧＰのみを用いることとする。しかし、奥行きの変動範囲が少ない場合を扱う場合には、内郭輪郭点Ｐ１、Ｐ２を扱うことにより精度向上が期待できる。本実施の形態では、奥行き距離範囲が大きい場合を想定し最外郭の輪郭距離のみ扱うが、奥行きの変動範囲が少ない場合などにおいて内郭輪郭点を扱いたい場合には、輪郭点関数を複素数化、あるいはベクトル化するなどの手段により、多変数として扱うことが可能である。
【００２３】
（輪郭点の最外郭フィルター処理）
次に、輪郭点関数が最外郭輪郭点Ｐのみの関数になるようフィルタリンングする。輪郭点関数は、輪郭点を量子化したために、一般には微小輪郭角度範囲、つまり極微小な所定量の輪郭角度の変動域を含む同一輪郭角度で、大きく輪郭距離の異なる複数の輪郭点が存在することが有り得る。図５の輪郭点関数を図６に示す。横軸は輪郭角度θｚ（ｄｅｇ）、縦軸は輪郭距離ＧＰ（ｐｉｘｅｌ）で、△は輪郭点を表し、図では輪郭点を直線補間している。図６から解るように、内郭輪郭点Ｐ１、Ｐ２を有する輪郭点関数はノコギリ状になる。輪郭点関数のノコギリの下の刃の部分は、内郭輪郭点Ｐ１、Ｐ２であり、フィルタリングにより削除する必要がある。別の考え方としては、最外郭輪郭点Ｐを削除し内郭輪郭点Ｐ１、Ｐ２を残すことも考えられるが、内郭輪郭点Ｐ１、Ｐ２は奥行きが遠くなると消滅し易いことから、内郭輪郭点Ｐ１、Ｐ２を重視した輪郭点関数を選択することは得策ではない。
そこで、内郭輪郭点Ｐ１、Ｐ２を削除する最外郭フィルターの一例を図８に示す。最外郭フィルターでは、まず実数レベルで同一輪郭角度の輪郭点があるかをチェックし、ある場合には最外郭輪郭点Ｐを採用する。次に、図６の輪郭点関数の折れ線の角度が急俊、かつ注目する輪郭点が凹点（すなわち極小点）の場合に内郭輪郭点Ｐ１、Ｐ２と判定し、それ以外は最外郭輪郭点Ｐとする。そして、このフィルター処理１回で内郭輪郭点Ｐ１、Ｐ２を全て削除できないことが多いため、何回かフィルタリングする。
図６の輪郭点関数を最外郭フィルター処理した輪郭点関数を図７に示す。内郭輪郭点Ｐ１、Ｐ２が削除されていることが解る。
【００２４】
（輪郭点の補間）
次に、輪郭点関数が一定間隔角度が刻みの関数になるよう補間する。これにより、輪郭点関数の輪郭角度刻みを統一することができる。
「００２２」で取得した輪郭点関数は、一般に、一定間隔の輪郭角度の関数にはならない。輪郭関数のデータ数（輪郭角度の個数）は、後の「００２６」で示すように、ＦＦＴ（高速フーリエ変換）を使うことを考慮して、２の累乗で割り切れる数、あるいは素因数分解した場合に小さな素数のみに分解できる数に設定する方が有利である。従って、輪郭点の補間も、２の累乗で割り切れる数、あるいは素因数分解した場合に小さな素数のみに分解できる数に設定する方が有利である。
【００２５】
（輪郭点の正規化）
次に、輪郭点関数を正規化して輪郭関数を取得する。輪郭点関数の輪郭距離は、奥行き距離に依存しているため、正規化することにより奥行き距離に不感にする効果がある。
【００２６】
（輪郭関数のフーリエ変換）
最後に、輪郭関数をＦＦＴ（高速フーリエ変換）を用いてフーリエ変換する。フーリエ変換した理由は、輪郭関数の周波数スペクトルを輪郭の特徴量として用いることを目的としたものではなく、「００３２」以降の姿勢推定における相関演算での演算量削減を目的としたものである。
【００２７】
（輪郭関数のまとめ）
輪郭関数は次のような特徴を持つ。輪郭距離はＺｃ軸の奥行き距離に反比例するが、正規化したことにより、Ｚｃ軸の奥行き距離に関して不感になる。また、Ｚｃ軸回転量θｚは輪郭角度の位相差として表される。
図  ４の輪郭関数のフーリエ変換の作成フローは、図  ３のレンダリング画像作成フローにおける繰り返しループ内の処理である。すなわち、図  ３のレンダリング画像作成フローで、θｘ，θｙを変化させてレンダリング画像を１枚作成するごとに、θｘ，θｙに対応する輪郭関数を作成する。従って、レンダリング画像は図  ３のループ回数分作成するが，レンダリング画像用のデータ領域としては１枚分しか必要としない。
本手法では、２次元データであるレンダリング画像ではなく、１次元データの輪郭関数のフーリエ変換をデータベースとして用いるので、データ量は大幅に削減されている。
また，輪郭関数の特性よりＺｃ軸回転量は輪郭角度の位相差として表されるので、θｚを種々変化させた輪郭関数を作成する必要は無く１通りでよいので、姿勢３次元分の輪郭関数を用意する必要は無く、θｘ，θｙの姿勢２次元分の組み合わせの輪郭関数を用意するだけでよいので、データ量は更に削減されている。これは，ＣＡＤモデルデータベースの姿勢を，最初の回転がθｚとするオイラー角で表すことにより得られるものである。
【００２８】
（姿勢推定）
姿勢推定フローチャートを図９に示す。以下に手順を説明する。
【００２９】
（畳み込み積、逆ＦＦＴ（高速フーリエ変換）を用いた相関の骨子）
姿勢推定は、カメラ画像２の輪郭関数のフーリエ変換とデータベースの輪郭関数のフーリエ変換の畳み込み積、逆ＦＦＴにより推定する。
図９において、実質的な姿勢推定手法は、カメラ画像２の輪郭関数とデータベースの輪郭関数のＦＦＴを用いた相関である。輪郭関数は正規化され単位ベクトルなので正規相関となり、相関値は最大で１となる。しかし、データベースにおける輪郭関数のフーリエ変換は、予め、データベース作成時に計算しておくことが可能である。従って、姿勢推定時には、輪郭関数のフーリエ変換のデータベースを利用することにより、姿勢推定時の演算量を削減している。
なお、データベース量をより削減することを主目的とするなら、カメラ画像２の輪郭関数とデータベースの輪郭関数をＦＦＴを用いて相関演算する方が望ましい。しかし、本実施の形態では高速計算を優先させているため、データベース作成時に予め輪郭関数をフーリエ変換しておき、姿勢推定では輪郭関数のフーリエ変換のデータベースを利用することにより演算量の削減を図っている。
【００３０】
（畳み込み積、逆ＦＦＴ（高速フーリエ変換）を用いた相関演算手法）
θｚｃをカメラ画像２の輪郭角度ベクトル、ｆｃ（θｚｃ）をカメラ画像２の輪郭関数、θｘ、θｙをデータベースのオイラー角、θｚｄをデータベースの輪郭角度ベクトル、ｆｄ（θｘ，θｙ，θｚｄ）をデータベースの輪郭関数とする。相関計算はデータベースの全てのθｘ、θｙの組み合わせに対して行う。従って、１回の相関演算時にはｆｄ（θｘ，θｙ，θｚｄ）は実質θｚｄのみの関数である。そして、ｆｃ（θｚｃ）  、ｆｄ（θｘ，θｙ，θｚｄ）は共に輪郭角度の周期関数であるため、ＦＦＴ（高速フーリエ変換）の周期性をフルに生かした相関計算が可能である。ＦＦＴを用いた相関演算は以下のように行う。
Ｃｏｒｒ（  ）を相関演算子、θｚｐをθｚｃとθｚｄの位相差ベクトル、ＦＦＴ（  ）をＦＦＴ演算子、Ｃｏｎｊ（  ）を共役複素数演算子、＊を畳み込み積演算子、ＦＦＴ−１（  ）を逆ＦＦＴ演算子とすると、（１）式となり、カメラ画像２とデータベースの輪郭関数の相関は、輪郭角度の位相差θｚｐの関数となる。ただし、図９に示す姿勢推定では、データベースのＦＦＴ（ｆｄ（θｘ，θｙ，θｚｄ））を利用している。
なお、ＦＦＴは一般に２の累乗のデータ数の場合に非常に高速計算が可能であるが、データ数の素因数分解した素数が小さな値の場合にも同様に高速計算できる。従って、輪郭関数のデータ数（輪郭角度のデータ数）はそのように設定するほうが有利である。
【００３１】
【数１】
2004326314.tif 000003
【００３２】
（相関最大値の位相）
（１）  式の相関Ｃｏｒｒ（θｚｐ  ）が、θｘ＝θｘｍａｘ、θｙ＝θｙｍａｘ、位相差ベクトルθｚｐの成分θｚｍａｘの時に最大になるとする。これはｆｃ（θｚｃ）がｆｄ（θｘｍａｘ，θｙｍａｘ，θｚｄ）と比べ、輪郭角度の位相がθｚｍａｘずれていることを表す。すなわち、  Ｘ、Ｙ軸回転がθｘ＝θｘｍａｘ、θｙ＝θｙｍａｘ、θｚ  ＝  ０の輪郭関数データベースをθｚｍａｘシフトした輪郭関数が、カメラ画像２の輪郭関数に最もフィットすること表す。
一方、輪郭角度は図５のようにＺｃ軸回転角度に相当し、「００１５」よりデータベース作成時にＺｃ軸はＺｍ軸方向に一致させていること、θｚをＣＡＤモデル１の最初のオイラー回転角としていることから、輪郭角度はＣＡＤモデル１のオイラー角θｚに相当する。
以上より、θｘ＝θｘｍａｘ、θｙ＝θｙｍａｘ、θｚ  ＝  ０のＣＡＤモデル１を、Ｚｃ軸周りにθｚｍａｘ回転させた場合のレンダリング画像が、対象物体のカメラ画像２に最もフィットすることになる。
【００３３】
（θｘ、θｙ、θｚの推定値）
以上より、データベースの全てのθｘ、θｙの組み合わせに対して相関を調べ、相関値が最大となるときのθｘ＝θｘｍａｘ、θｙ＝θｙｍａｘ、θｚ  ＝θｚｍａｘを、カメラ画像２に最もフィットするＣＡＤモデル１のオイラー角として推定できる。
【００３４】
（姿勢推定のまとめ）
輪郭関数の特性よりＺｃ軸回転量は輪郭角度の位相差として表されるので，θｚを種々変化させた相関計算する必要は無く，θｘ，θｙの姿勢２次元分の輪郭関数データベースと相関計算するだけでよく，θｚは相関値が最大となる位相として推定できる．これは，ＣＡＤモデルデータベースの姿勢を，最初の回転がθｚとするオイラー角で表すことにより得られるものである。
輪郭角度が位相として表現できるメリットは、データ量の削減、ＦＦＴを用いることによる高速計算の２つである。
なお、白ピクセル個数、重心座標は位置推定で用いるため、姿勢推定フローではスルーさせる。
【００３５】
（姿勢の計算回数例）
以下に、１次元のデータ数ＮをＦＦＴ（高速フーリエ変換）計算効率の最良である２の累乗として、相関計算において、特に関心のある（複素数の）乗算回数について比較する。ＦＦＴを用いない相関での乗算回数（すなわちＤＦＴの乗算回数）はＮ２である。一方、データ数Ｎの場合のＦＦＴの乗算回数が（１／２）Ｎｌｏｇ２Ｎであることを用いると、ＦＦＴを用いた相関での乗算回数は、（１）式においてＣＡＤモデル画像の輪郭関数のフーリエ変換はデータベースを利用することを考慮すると、
▲１▼ＦＦＴを１回行うので、（１／２）Ｎｌｏｇ２Ｎ回。
▲２▼畳み込み積を１回行うので、Ｎ回。
▲３▼逆ＦＦＴを１回行うので、（１／２）Ｎｌｏｇ２Ｎ回。
▲４▼合計で、Ｎ（  ｌｏｇ２Ｎ  ＋  １  ）回。
▲５▼乗算回数の比率は、（  ｌｏｇ２Ｎ  ＋  １  ）  ／  Ｎに減る。
【００３６】
（位置推定）
位置推定フローチャートを図１０に示す。本実施の形態では、位置とは対象物体あるいはＣＡＤモデル１の幾何学重心を意味するものとして説明する。以下に手順を説明する。
【００３７】
（奥行き推定）
奥行き推定のフローチャートを図１１に示す。奥行き推定は、透視変換の原理に基づき、対象物体の奥行き距離が１／ｒ倍になった場合に、画像上の寸法がｒ倍になることを用いる。
寸法比率ｒは、塗り潰し画像の白ピクセル個数（塗り潰し領域のピクセル個数）が面積に対応することを用い、白ピクセル個数の比の平方根を用いて算出する。
【００３８】
（推定姿勢での重心座標）
輪郭関数データベースでのＣＡＤモデル１のレンダリング画像の塗り潰し画像の画像重心位置は、θｚ  ＝０に対応した重心位置である。従って、推定したθｚ  ＝θｚｍａｘに対応する重心位置を、θｚ  ＝０に対応する重心をＺｃ軸周りにθｚ回転させて算出する。
【００３９】
（レンダリング画像のオフセット）
「００１４」よりＣＡＤモデル１の幾何学重心Ｇの画像上座標は、データベースでは画像中心に位置する。一方、ＣＡＤモデル１のレンダリング画像の塗り潰し画像から得た画像重心は、一般には画像中心にはない。従って、ＣＡＤモデル１の幾何学重心の画像上座標に対するレンダリング画像重心のオフセットを求めておく。
【００４０】
（カメラ画像重心のオフセット）
レンダリング画像と同様に、一般にカメラ画像２の塗り潰し画像から得た画像重心は、一般には対象物体の幾何学重心の画像上座標とは一致しない。従って、レンダリング画像重心のオフセットに寸法比率ｒをかけて、対象物体の幾何学重心の画像上座標に対応するカメラ画像２の画像重心のオフセットを推定する。
【００４１】
（カメラ画像の推定重心座標）
カメラ画像２上での推定重心座標は、カメラ画像２の塗り潰し画像から得た画像重心から、カメラ画像重心のオフセットを差し引きいて推定する。そして、実空間での推定重心座標は、透視変換の原理に基づき、推定奥行き距離ｚと焦点距離ｆの比をかけて推定する。
【００４２】
（本発明のまとめ）
本手法のデータベース量削減、姿勢推定の高速化などの効果は、ＣＡＤモデル１の姿勢表現を、Ｚｍ軸方向をＺｃ軸方向と一致させ、かつθｚを最初のオイラー角としたこと、による派生効果である。
ただし、本実施の形態では、対応を解り易くするために＋Ｘｃ→＋Ｘｍ、＋Ｙｃ→＋Ｙｍ、＋Ｚｃ→＋Ｚｍとしてだけであり、重要なのは、ＣＡＤモデル１の最初の回転軸をカメラ光軸Ｚｃ軸方向にすることであり、ＣＡＤモデル１の座標系の取り方によっては、＋Ｘｍ軸でも＋Ｙｍ軸でも最初のオイラー角とすることが可能である。
【００４３】
本手法では、輪郭関数を扱う上での基本となる輪郭点は、対象とする奥行き距離範囲に応じてフィルター処理を行う必要があることを指摘し、その一手法を示した。
【００４４】
本発明は、輪郭関数という１次元データベースを用いるためデータ量が非常に少なくて済む。さらに、本発明の特徴として、ＣＡＤモデル１の姿勢表現を、Ｚｍ軸方向をＺｃ軸方向と一致させ、かつθｚを最初のオイラー角としたことにより、θｚは位相として表現できるので、θｚの組み合わせを考慮した輪郭関数のフーリエ変換データべースを用意する必要が無く大幅にデータ量が削減される。
【００４５】
ＣＡＤモデル１の姿勢表現を、Ｚｍ軸方向をＺｃ軸方向と一致させ、かつθｚを最初のオイラー角としたことにより、Ｘｃ，Ｙｃ軸回転した輪郭関数のフーリエ変換データベースとの相関計算のみでよく、Ｚｃ軸回転は位相として推定可能である。このように、Ｚｃ軸回転が位相として表現されるため、周期性のあるデータの高速計算に有利なＦＦＴ（高速フーリエ変換）を用いることができる。従って、姿勢推定を高速計算することが可能である。
【００４６】
姿勢推定の高速化により、回転角度分解能を小さく設定した姿勢推定が可能になり、この結果、姿勢推定精度の高精度化が可能になる。また、一般に、位置推定精度は姿勢推定精度に依存するため、姿勢精度の高精度化は位置推定精度の精度向上に直結すると考えられ、その意義は大きい。
【００４７】
重心オフセットを用いることにより、対象物体の幾何学重心位置の面内方向ｘ、ｙの精度向上が期待できる。これは姿勢推定の高精度化により、対象物体の幾何学重心の画像上位置に対する対象物体の画像重心のオフセットの推定精度が向上することによる。
なお、幾何学重心位置のｚはオーソドックスな手法を用いており、本手法における重心位置のｘ、ｙの推定は、幾何学重心位置のｚの推定精度にも依存する。
【００４８】
本発明では、奥行き距離の変動が余り大きくない場合において、内郭輪郭点が存在する場合に、輪郭関数を複素数化、あるいはベクトル化することにより、複雑な凹型輪郭形状に対しても対応できる。
【００４９】
また、本発明では、奥行き距離の変動範囲を広く取りたい場合において、対象物体の奥行き距離が遠くなった場合に内郭輪郭点が消滅しやすいことに着目し、最外郭輪郭点のみ残す最外郭フィルターを提案した．
【００５０】
【発明の効果】
輪郭関数という１次元データベースを用いるためデータ量が非常に少なくて済む。さらに、本手法の特徴として、ＣＡＤモデルの姿勢表現を、所定の一軸をカメラ光軸と一致させ、かつ所定の一軸の回転を最初のオイラー角としたことにより、所定の一軸の回転は位相として表現できるので、所定の一軸の回転の組み合わせを考慮した輪郭関数のフーリエ変換データべースを用意する必要が無く大幅にデータ量が削減される。
【００５１】
ＣＡＤモデルの姿勢表現を、所定の一軸をカメラ光軸と一致させ、かつ所定の一軸の回転を最初のオイラー角としたことにより、他の２軸により回転した輪郭関数のフーリエ変換データベースとの相関計算のみでよく、所定の一軸の回転は位相として推定可能である。
所定の一軸の回転が位相として表現されるため、周期性のあるデータの高速計算に有利なＦＦＴ（高速フーリエ変換）を用いることができる。従って、姿勢推定を高速計算することが可能である。
【００５２】
姿勢推定の高速化により、回転角度分解能を小さく設定した姿勢推定が可能になり、この結果、姿勢推定精度の高精度化が可能になる。一般に、位置推定精度は姿勢推定精度に依存するため、姿勢精度の高精度化は位置推定精度の精度向上に直結すると考えられ、その意義は大きい。
【００５３】
重心オフセットを用いることにより、対象物体の幾何学重心位置の面内方向ｘ、ｙの精度向上が期待できる。これは姿勢推定の高精度化により、対象物体の幾何学重心の画像上位置に対する対象物体の画像重心のオフセットの推定精度が向上することによる。
なお、幾何学重心位置のｚはオーソドックスな手法を用いており、本手法における重心位置のｘ、ｙの推定は、幾何学重心位置のｚの推定精度にも依存する。
【図面の簡単な説明】
【図１】本発明に係るＣＡＤモデル座標系の説明図である。
【図２】本発明に係るカメラ座標系の説明図である。
【図３】本発明に係るレンダリング画像作成フローチャートである。
【図４】本発明に係る輪郭関数のフーリエ変換の作成フローチャートである。
【図５】本発明に係る輪郭点の極座標変換の説明図である。
【図６】本発明に係る最外郭フィルター無しの場合の輪郭点関数を示す図である。
【図７】本発明に係る最外郭フィルター有りの場合の輪郭点関数を示す図である。
【図８】本発明に係る最外郭フィルターのフローチャートの一例を示す図である。
【図９】本発明に係る姿勢推定のフローチャートを示す図である。
【図１０】本発明に係る位置推定のフローチャートを示す図である。
【図１１】本発明に係る奥行き推定のフローチャートを示す図である。
【符号の説明】
１  ＣＡＤモデル
２  カメラ画像
３  輪郭画像
【図１】
2004326314.tif 000004
【図２】
2004326314.tif 000005
【図３】
2004326314.tif 000006
【図４】
2004326314.tif 000007
【図５】
2004326314.tif 000008
【図６】
2004326314.tif 000009
【図７】
2004326314.tif 000010
【図８】
2004326314.tif 000011
【図９】
2004326314.tif 000012
【図１０】
2004326314.tif 000013
【図１１】
2004326314.tif 000014