(57)【特許請求の範囲】
【請求項１】
対象物の形状を表す複数の第１の特徴点の集合であるモデルパターンに基づいて、視覚センサで撮像した入力データ中に前記対象物の像を検出する画像処理装置であって、
対象物が撮像された一乃至複数の入力データのそれぞれについて、該入力データから抽出した複数の第２の特徴点と、前記モデルパターンを構成する複数の第１の特徴点とのマッチングを行って前記対象物の一乃至複数の像を検出する対象物検出部と、
前記一乃至複数の入力データから検出した一乃至複数の対象物の像のそれぞれについて、該像を構成する複数の第２の特徴点から前記モデルパターンを構成する前記複数の第１の特徴点に対応する第２の特徴点を選択し、該第２の特徴点を対応点として該第１の特徴点に関連付けて記憶する対応点選択部と、
前記モデルパターンを構成する複数の第１の特徴点のそれぞれについて、該第１の特徴点に関連づけられた前記複数の対応点の所定の物理量の統計量を算出し、算出した前記所定の物理量の統計量に基づいて該第１の特徴点を修正するモデルパターン修正部と、
を備えることを特徴とする画像処理装置。
【請求項２】
前記対応点選択部は、
前記モデルパターンを構成する複数の第１の特徴点のそれぞれについて、前記第１の特徴点に関連づけられた前記複数の対応点の所定の物理量の統計量に基づいて、前記対応点選択における対応／不対応を判定するための判定指標を求め、該判定指標を該第１の特徴点に関連付けて記憶し、
前記モデルパターンを構成する複数の第１の特徴点のそれぞれについて、前記入力データから抽出された前記第２の特徴点の前記所定の物理量と、該第１の特徴点に関連付けられた前記判定指標とに基づいて、該第１の特徴点と該第２の特徴点が一致しているか否かを判断する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記対応点選択部は、
前記検出した一乃至複数の対象物の像のそれぞれについて、該像を構成する複数の第２の特徴点のうち前記モデルパターンを構成する第１の特徴点のいずれとも対応しない一乃至複数の第２の特徴点を特徴点候補として記憶し、
記憶した前記一乃至複数の特徴点候補に対応する第２の特徴点を選択すると共に、該第２の特徴点を対応点として該特徴点候補に関連付けて記憶し、
前記モデルパターン修正部はさらに、記憶された前記一乃至複数の特徴点候補のそれぞれについて、該特徴点候補に関連づけられた複数の対応点の所定の物理量の統計量を算出すると共に、該所定の物理量の統計量に基づいて前記モデルパターンに該特徴点候補を第１の特徴点として追加する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項４】
対象物の形状を表す複数の第１の特徴点の集合であるモデルパターンを使用して、視覚センサで撮像した入力データ中に前記対象物の像を検出する画像処理装置であって、
対象物が撮像された一乃至複数の入力データのそれぞれについて、該入力データから抽出した複数の第２の特徴点と、前記モデルパターンを構成する複数の第１の特徴点とのマッチングを行って前記対象物の一乃至複数の像を検出する対象物検出部と、
前記一乃至複数の入力データから検出した一乃至複数の対象物の像のそれぞれについて、該像を構成する複数の第２の特徴点から前記モデルパターンを構成する前記複数の第１の特徴点に対応する第２の特徴点を選択し、該第２の特徴点を対応点として該第１の特徴点に関連付けて記憶すると共に、前記モデルパターンを構成する複数の第１の特徴点毎に、前記対応点の所定の物理量について所定の統計量を算出すると共に、算出された前記所定の統計量に基づいて、前記マッチングにおける一致／不一致を判定するための判定指標を求め、該判定指標を該第１の特徴点に関連付けて記憶する対応点選択部と、
を備え、
前記対象物検出部はさらに、前記モデルパターンを構成する複数の第１の特徴点のそれぞれについて、前記入力データから抽出された前記第２の特徴点の前記所定の物理量と、該第１の特徴点に関連付けられた前記判定指標とに基づいて、該第１の特徴点と該第２の特徴点が一致しているか否かを判断する
ことを特徴とする画像処理装置。
【請求項５】
前記記憶される判定指標は、前記算出された所定の統計量を含むことを特徴とする、請求項２または４に記載の画像処理装置。
【請求項６】
前記視覚センサはカメラであり、前記入力データは濃淡画像またはカラー画像であることを特徴とする請求項１乃至５のいずれか１項に記載の画像処理装置。
【請求項７】
前記視覚センサは３次元センサであり、前記入力データは距離画像または３次元点群（ポイントクラウド）であることを特徴とする請求項１乃至５のいずれか１項に記載の画像処理装置。
【請求項８】
前記対応点選択部は、前記一乃至複数の対象物の像から妥当でない対象物の像を除外し、妥当な対象物の像からのみ対応点を選択することを特徴とする請求項１に記載の画像処理装置。
【請求項９】
前記モデルパターン修正部は、第１の特徴点に関連づけられた前記複数の対応点から妥当でない対応点を除外し、妥当な対応点のみを使用して前記所定の物理量の統計量を計算することを特徴とする請求項１に記載の画像処理装置。
【請求項１０】
対象物の形状を表す複数の第１の特徴点の集合であるモデルパターンに基づいて、視覚センサで撮像した入力データ中に前記対象物の像を検出する画像処理方法であって、
対象物が撮像された一乃至複数の入力データのそれぞれについて、該入力データから抽出した複数の第２の特徴点と、前記モデルパターンを構成する複数の第１の特徴点とのマッチングを行って前記対象物の一乃至複数の像を検出する第１ステップと、
前記一乃至複数の入力データから検出した一乃至複数の対象物の像のそれぞれについて、該像を構成する複数の第２の特徴点から前記モデルパターンを構成する前記複数の第１の特徴点に対応する第２の特徴点を選択し、該第２の特徴点を対応点として該第１の特徴点に関連付けて記憶する第２ステップと、
前記モデルパターンを構成する複数の第１の特徴点のそれぞれについて、該第１の特徴点に関連づけられた前記複数の対応点の所定の物理量の統計量を算出し、算出した前記所定の物理量の統計量に基づいて該第１の特徴点を修正する第３ステップと、
を備えることを特徴とする画像処理方法。
【請求項１１】
前記第２ステップと前記第３ステップの間に、
前記モデルパターンを構成する複数の第１の特徴点のそれぞれについて、該第１の特徴点に関連づけられた前記複数の対応点から妥当でない対応点を除外するステップを備えることを特徴とする請求項１０に記載の画像処理方法。
【請求項１２】
前記第１ステップと前記第２ステップの間に、
前記検出した一乃至複数の対象物の像から、妥当でない対象物の像を除外するステップを備えることを特徴とする請求項１０に記載の画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対象物の像を構成する特徴点をモデルパターンとし、そのモデルパターンと入力データから抽出した特徴点の一致度を評価することで、画像に写っている対象物の像の位置を検出する装置に関する。
【背景技術】
【０００２】
画像処理装置を用いて視覚センサで撮像した入力データの中から特定の対象物の像を検出する場合、対象物を表す基準情報（一般に、モデルパターン、テンプレートなどと称される）と視覚センサで撮像した入力データの間で特徴点のマッチングを行い、一致度が所定のレベルを越えたときに対象物の検出に成功したと判断することが一般的である。
【０００３】
たとえば、視覚センサがカメラであり、入力データが濃淡画像である場合に、このようなマッチングの際に用いられる特徴点の一つとしてエッジ点がある。エッジ点は画像上での輝度変化が大きな点である。一般に対象物の像の輪郭部分は輝度変化が大きくなるので、対象物の輪郭線形状を表す特徴点としてエッジ点を利用することが多い。検出すべき対象物を含む画像から抽出したエッジ点群をモデルパターンとして記憶しておき、視覚センサによって撮像された画像から抽出されたエッジ点群とモデルパターンのエッジ点群の一致度に基づいて対象物を検出する。たとえば、この類の手法として一般化ハフ変換などが知られている。
【０００４】
ところで、画像に映る対象物の像の輪郭線の形状にはばらつきがある。これには例えば以下のような原因がある。
・対象物の形状の個体差
・大きな視差
ここでいう視差とは、対象物が立体的だったり対象物の稜線の角が丸かったりした場合に、対象物と視覚センサの相対位置が変わることにより、画像に映る輪郭線の位置関係にズレが生じることを指す。
【０００５】
対象物の輪郭線にこのようなばらつきがあっても、対象物が正しく検出できることが望ましい。しかし、実際には、モデルパターンの教示に使った対象物の個体またはその画像自体がばらつきにより偏差したものである場合もあり、マッチングに最適なものであったとは言えないことも多い。そのような場合には、期待通りの検出ができないことになる。たとえば、ある種類のばらつきであればかなり大きくばらついていても検出ができるが、別の種類のばらつきに対しては少しでも違うと検出できない、ということが起こりうる。そこで、上記の手法を適用する上で、発生しうるばらつきに応じた最適なモデルパターンを作成することが求められる。
【０００６】
特許文献１では、入力画像からモデルとマッチする対象物を検出する際に、マッチングのスコアに対するモデルの各特徴量の貢献度を累積していく。その貢献度に基づいて必要ない特徴量を削除する方法が開示されている。特許文献1に開示されている方法は、実際の検出時のマッチングの情報からモデルを修正する方法ではあるが、検出対象物の形状の個体差が大きい部分は貢献度が低くなって、その部分のモデル特徴量が不必要に削除されてしまう恐れがある。また、この方法では、モデルパターンの形状を、マッチングに最適なものに修正することはできない。
【０００７】
特許文献２では、モデル画像に対して回転、拡大・縮小、変形、照明の変化、画像ノイズなど種々の変動を加えて、複数の変動画像を生成する方法が開示されている。その変動画像からパターンの特徴量を抽出し、特徴量の分布を生成する。その分布を利用して、よりロバストなモデルを生成することができる。
特許文献２に記載の方法では人工的な方法で変動を加えており、実際の検出対象物の個体差や環境に起因するばらつきをモデルに反映させることはできない。
【０００８】
特許文献３では、同じ対象物を同じ視点から複数回撮像し、複数の画像のそれぞれについて検出を行って、検出した輪郭線の平均位置を算出することで、検出位置精度を高精度化する方法が開示されている。この方法は同じ対象物の計測誤差の影響を軽減するためのものであり、複数の検出対象物のばらつきの影響を軽減することはできない。
【０００９】
特許文献４では、学習用画像から初期基準パターンとマッチする領域を部分画像として切り出し、切り出した複数の部分画像を画素値単位で平均化することにより、新たな基準パターンを生成する方法が開示されている。画素単位で平均化することでノイズに起因するばらつきは除去できる。しかし、この方法では、個体差や視差の影響によりエッジの位置のばらつきがある場合に、平均化した画像での輝度勾配が小さくなり、エッジが正確に抽出できない恐れがある。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特許第５０８０４１６号公報
【特許文献２】特開２０１５−７９７２号公報
【特許文献３】特許第４８４３４１５号公報
【特許文献４】特開平７−３７０８５号公報
【非特許文献】
【００１１】
【非特許文献１】「コンピュータビジョン」（共立出版）2007.1
【非特許文献２】"Object Recognition from Local Scale-Invariant Features", David G. Lowe, Proc. of the International Conference on Computer Vision, Corfu (Sept. 1999)
【非特許文献３】"Generalizing the Hough Transform to Detect Arbitrary Shapes", D. H. Ballard, Pattern Recognition Vol. 13, No. 2, pp. 111-122, 1981
【非特許文献４】"Random sample consensus: a paradigm for model fitting with applications to image analysis and automated cartography", Martin A. Fischler, et al., Communications of the Association for Computing Machinery Vol. 24 No. 6 Pages 381-395, June 1981
【非特許文献５】"A method for Registration for 3-D Shapes", Paul J. Best, et al., IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. 14, No. 2, February 1992
【非特許文献６】"Estimating Surface Normals in Noisy Point Cloud Data", Niloy J. Mitra, et al., SCG'03 Proceedings of nineteenth annual symposium on Computational geometry, pages 322-328, 2003
【非特許文献７】"Unique Signatures of Histograms for Local Surface Description", Federico Tombari, et al., Computer Vision, ECCV 2010, Part III. LNCS 6313, pp. 356-369, 2010
【非特許文献８】"Object recognition in 3D scenes with occlusions and clutter by Hough voting", Federico Tombari, et al., IEEE 2010 Fourth Pacific-Rim Symposium on Image and Video Technology
【発明の概要】
【発明が解決しようとする課題】
【００１２】
本発明は、画像に写った対象物の像の輪郭線の形状にばらつきがあったとしても正しく検出できるようにすることを目的とする。
【課題を解決するための手段】
【００１３】
本願発明は、対象物の形状を表す複数の第１の特徴点の集合であるモデルパターンに基づいて、視覚センサで撮像した入力データ中に前記対象物の像を検出する画像処理装置であって、対象物が撮像された一乃至複数の入力データのそれぞれについて、該入力データから抽出した複数の第２の特徴点と、前記モデルパターンを構成する複数の第１の特徴点とのマッチングを行って前記対象物の一乃至複数の像を検出する対象物検出部と、前記一乃至複数の入力データから検出した一乃至複数の対象物の像のそれぞれについて、該像を構成する複数の第２の特徴点から前記モデルパターンを構成する前記複数の第１の特徴点に対応する第２の特徴点を選択し、該第２の特徴点を対応点として該第１の特徴点に関連付けて記憶する対応点選択部と、前記モデルパターンを構成する複数の第１の特徴点のそれぞれについて、該第１の特徴点に関連づけられた前記複数の対応点の所定の物理量の統計量を算出し、算出した前記所定の物理量の統計量に基づいて該第１の特徴点を修正するモデルパターン修正部と、を備えることを特徴とする画像処理装置である。
【発明の効果】
【００１４】
本願発明によれば、対象物の特徴点の物理量にばらつきがあっても、対象物が正しく検出できる。
【図面の簡単な説明】
【００１５】
【図１】視覚センサ制御装置に設けられる画像処理装置の構成を示すブロック図である。
【図２】実施形態の画像処理装置を有する視覚センサ制御装置および視覚センサで、対象物の位置を検出する場合の構成例を示す図である。
【図３】ロボット制御装置により制御されるロボットのハンドで、作業台上の対象物をハンドリングする場合に、ロボットの手先に設置した視覚センサの画像を視覚センサ制御装置に搭載した実施形態の画像処理装置で処理して対象物を検出し、検出した対象物の位置情報をロボット制御装置に供給する構成例を示す図である。
【図４】第１実施形態の処理を示すフローチャートである。
【図５】画像処理部によるモデルパターンの作成手順を示すフローチャートである。
【図６】第１の特徴点の位置と第２の特徴点の位置の距離を計算する方法例を説明する図である。
【図７】第２実施形態における処理を示すフローチャートである。
【図８】特徴点候補を選択する処理を説明する図である。
【図９】特徴点候補から重複しているものを削除する処理を説明する図である。
【図１０】第３実施形態における処理を示すフローチャートである。
【図１１】対象物のモデルパターンの例を示す図である。
【図１２】撮像した画像におけるモデルパターン指定領域の例を示す図である。
【図１３】モデルパターン記憶部に記憶される対応点のデータ形式を示す図である。
【図１４】誤差ベクトルを計算する方法を説明する図である。
【図１５】統計量に基づいてモデルパターンの第１の特徴点を修正する方法を説明する図である。
【図１６】モデルパターン記憶部に記憶される判定指標の形式を示す図である。
【図１７】モデルパターン記憶部に記憶される第１の特徴点のデータ形式を示す図である。
【図１８】誤差ベクトルのデータ記憶形式を示す図である。
【図１９】第４実施形態における処理を示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、図面を参照しつつ、本発明の第１乃至第３実施形態（以下、共通する部分の説明について単に実施形態と称する場合がある）を説明する。
実施形態における説明では、以下のように記号を使用する。説明を明確にするために、記号についてまず説明する。
【００１７】
NP: モデルパターンを構成する第１の特徴点の数
P_i: モデルパターンのi番目の第１の特徴点（iは1からNP）
NI: 入力画像の数
I_j: j番目の入力画像（jは1からNI）
NQ_j: j番目の入力画像I_jから抽出された第２の特徴点の数
Q_jk: j番目の入力画像I_jから抽出されたk番目の第２の特徴点（kは1からNQ_j）
NT_j: j番目の入力画像I_jから検出された対象物の像の数
T_jg: j番目の入力画像I_jから検出されたg番目の対象物の像（gは1からNT_j）
NT:全ての入力画像から検出された対象物の像の総数（NT=ΣNT_j）
NO_jg: j番目の入力画像I_jから抽出された第２の特徴点Q_jkのうち、対象物の像T_jgを構成する特徴点の数（NO_jg < NQ_j）
O_jgn: j番目の入力画像I_jから抽出された第２の特徴点Q_jkのうち、対象物の像T_jgを構成する特徴点以外の特徴点のn番目のもの（非対応点）（nは1からNO_jg）
NO_i: モデルパターンのi番目の特徴点P_iに対応すると判定された対応点の数（NO_i <= NT）
O_im: モデルパターンのi番目の特徴点P_iに対応するm個目の対応点（mは1からNO_i）
NC: 特徴点候補の数
C_h: h番目の特徴点候補（hは1からNC個）
NO_h: 特徴点候補C_hに対応すると判定された対応点の数（NO_h < NT）
O_hp: 特徴点候補C_hに対応するp番目の対応点（pは1からNO_h）
【００１８】
図２は、実施形態の画像処理装置を有する視覚センサ制御装置および視覚センサで、対象物の位置を検出する場合の構成例を示す図である。
【００１９】
図２に示すように、視覚センサ10を対象物1が撮像できる位置に固定設置し、対象物1は作業台2に載置する。視覚センサ10は、濃淡画像やカラー画像を撮像するカメラでも、距離画像や3次元点群を取得できるステレオカメラや3次元センサでもよい。3次元点群は対象物の輪郭線上のものでも、対象物の面上のものでもよい。
【００２０】
この実施形態では、視覚センサ10としてカメラを用い、視覚センサ10が濃淡画像を出力するものとして説明を行う。カメラは、例えばＣＣＤ（Charge Coupled Device）等の撮像素子を有する電子カメラであり、撮像により２次元画像を撮像面（ＣＣＤアレイ面上）で検出する機能を持つ周知の受光デバイスである。なお、撮像面における２次元座標系を以下では画像座標系と呼ぶ。
【００２１】
図３は、ロボット制御装置13により制御されるロボット11のハンド12で、作業台2上の対象物1をハンドリングする場合に、ロボット11の手先に設置した視覚センサ10の画像を視覚センサ制御装置20に搭載した実施形態の画像処理装置で処理して対象物1を検出し、検出した対象物1の位置情報をロボット制御装置13に供給する構成例を示す図である。図３に示すように、視覚センサ10は、ロボット11の手先などの可動部に設置してもよい。
【００２２】
図１は、視覚センサ制御装置に設けられる画像処理装置の構成を示すブロック図である。
図１に示すように、画像処理装置21は、画像処理部22、モデルパターン記憶部26および検出結果記憶部27を有する。画像処理装置21には、視覚センサ10、操作盤31、表示装置32等が接続される。画像処理部22は、対象物検出部23、対応点選択部24およびモデルパターン修正部25を含む。モデルパターン記憶部26は、教示されたモデルパターンを記憶する。検出結果記憶部27は、教示されたモデルパターンを使用して入力データから対象物を検出した検出結果を記憶する。画像処理装置21に含まれる各部分は、CPU、ROM、RAM等を有するコンピュータ上でソフトウェアにより実現される。後述する第１乃至第３実施形態は、ソフトウェアにより実現される処理内容が異なる。
【００２３】
視覚センサ10は、画像処理装置21に通信ケーブルで接続されている。視覚センサ10は、撮像した画像データを画像処理装置21に供給する。操作盤31は、画像処理装置21に通信ケーブルで接続されている。操作盤31は、画像処理装置21で対象物1を検出するために必要な視覚センサ10の設定を行うのに使用される。表示装置32は、画像処理装置21に通信ケーブルで接続されている。表示装置32には視覚センサ10で撮像した画像や操作盤31で設定する設定内容が表示される。なお、視覚センサ10、操作盤31および表示装置32は画像処理装置21と一体になっていてもよい。
【００２４】
図４は、第１実施形態の画像処理装置21における処理を示すフローチャートである。
図４を用いて、第１実施形態において画像処理部22が実行する処理内容を説明する。
ステップS101で、画像処理部22がモデルパターンを作成し、作成したモデルパターンをモデルパターン記憶部26に記憶する。
【００２５】
本実施形態におけるモデルパターンは複数の特徴点から構成される。特徴点としては様々な物が使用できるが、本実施形態ではエッジ点を特徴点として用いる。エッジ点は、画像中で輝度勾配が大きな点であり、対象物1の輪郭形状を取得するために使用できる。エッジ点を抽出する方法は非特許文献１などに記載されており、周知であるのでここでは説明を省略する。
【００２６】
エッジ点の物理量としては、そのエッジ点の位置、輝度勾配方向、輝度勾配の大きさなどがある。エッジ点の輝度勾配の方向を特徴点の姿勢と定義すると、位置とあわせて特徴点の位置姿勢を定義することができる。本実施形態では、特徴点の物理量としてエッジ点の物理量、すなわちエッジ点の位置、姿勢（輝度勾配の方向）、輝度勾配の大きさを記憶する。
【００２７】
図１１は、対象物1のモデルパターンの例を示す図である。図１１に示されているように、対象物1のモデルパターンは複数の第１の特徴点P_i（i=1〜NP）で構成される。
モデルパターンを構成する第１の特徴点P_iの位置姿勢はどのような形式で表してもよいが、一例としては、モデルパターンに座標系100を定義し（以下、モデルパターン座標系100）、モデルパターンを構成する特徴点の位置t_Pi（i=1〜NP）や姿勢v_Pi（i=1〜NP）をモデルパターン座標系100から見た位置ベクトルや方向ベクトルなどで表現する方法が挙げられる。
【００２８】
モデルパターン座標系100の原点はどのように定義してもよい。例えば、モデルパターンを構成する第１の特徴点から任意の1点を選択して、その点を原点として定義してもよく、モデルパターンを構成するすべての特徴点の重心を原点として定義してもよい。
【００２９】
モデルパターン座標系100の姿勢（軸の方向）もどのように定義してもよい。例えば、モデルパターンの作成を行った画像において画像座標系とモデルパターン座標系100が平行になるように定義してもよいし、モデルパターンを構成する特徴点から任意の2点を選択して、その一方から他方に向かう方向がＸ軸方向となるように定義してもよい。
【００３０】
モデルパターンを構成する第１の特徴点P_iは、モデルパターン記憶部26に、例えば、図１７のような形式（位置、姿勢、輝度勾配の大きさを含む）で記憶される。
【００３１】
図５は、画像処理部22によるモデルパターンの作成手順を示すフローチャートである。
ステップS201で、モデルパターンとして教示したい対象物1を視覚センサ（カメラ）10の視野内に配置し、対象物1の画像を撮像する。この時のカメラ10と対象物1の位置関係は、対象物1を検出するときと同じになるようにして行うことが望ましい。
ステップS202で撮像した画像において、対象物1が映った領域を矩形や円形でモデルパターン指定領域として指定する。
【００３２】
図１２は、撮像した画像におけるモデルパターン指定領域の例を示す図である。
図１２において、撮像した画像において画像座標系210が定義され、その中で対象物1の像1Aを含むようにモデルパターン指定領域（ここでは矩形領域）220を指定する。モデルパターン指定領域220は、使用者が表示装置32で画像を見ながら操作盤31により入力した指示を画像処理部22が受けて設定しても、画像処理部22が画像における輝度勾配の大きい箇所を像1Aの輪郭として求め、像1Aが内部に含まれるように自動的に指定してもよい。
【００３３】
ステップS203で、モデルパターン指定領域220の範囲内でエッジ点を特徴点として抽出し、エッジ点の位置、姿勢（輝度勾配の方向）、輝度勾配の大きさなどの物理量を求める。また、指定された領域内にモデルパターン座標系100を定義し、エッジ点の位置や姿勢を、画像座標系210で表現された値から、モデルパターン座標系100で表現された値に変換する。
【００３４】
ステップS204で、抽出されたエッジ点の物理量を、モデルパターンを構成する第１の特徴点P_iとしてモデルパターン記憶部26に記憶する。
本実施形態では、特徴点としてエッジ点を用いたが、本実施形態で使用可能な特徴点がエッジ点に限定されるわけではなく、たとえばＳＩＦＴのような特徴点を使用してもよい。画像からＳＩＦＴ特徴点を抽出する方法は、非特許文献２等に記載されており、周知である。
【００３５】
また、対象物1の画像からエッジ点やＳＩＦＴ特徴点などを抽出して、モデルパターンを構成する第１の特徴点とするのではなく、画像に写った対象物の輪郭線に合うように線分、矩形、円などの幾何図形を配置することでモデルパターンを作成してもよい。その場合、輪郭線を構成する幾何図形上に適当な間隔で特徴点を設ければよい。
【００３６】
さらに、CADデータなどに基づいてモデルパターンを作成することもできる。2次元CADデータであれば、幾何図形を使った方法と同じ方法でモデルパターンを作成することができる。3次元CADデータであれば、CADデータで表現された対象物の形状を画像上に投影し、投影された像から特徴点を抽出して、第１の特徴点とすればよい。例えば、以下のような処理で変換できる。
【００３７】
１．カメラの撮像面上に原点を置くローカル座標系を定義する。
２．予め、カメラをキャリブレーションしておく。これにより、ローカル座標系で表現された3次元点をカメラ画像上の2次元点に変換することができる。
３．ローカル座標系にCADデータとして表現された対象物を仮想的に配置する。配置されたCADデータはローカル座標系で表現される。カメラと対象物の相対関係は、実際に対象物の検出を行うときの相対関係と大体同じになるようにする。
４．輪郭線から所定の間隔で輪郭線上の3次元点群を取得する。必要があれば、CADデータの中からモデルパターンとして使う輪郭線を指定する。
５．3次元点群をカメラ画像上に投影し、画像座標系上の2次元点群を求める。CADデータ上で明暗の向きを指定すれば、輝度勾配の方向も付加することができる。ここで、明暗の向きとは、輪郭線を境界とする二つの領域のどちらが明るいかを示すものである。
６．求められた画像座標系上の２次元点群をモデルパターン座標系で表現するように変換し、第１の特徴点としてモデルパターン記憶部に記憶する。
【００３８】
ステップS102に戻って、対象物1の像1Aを含む一乃至複数の入力画像I_j（j=1〜NI）を用意する。入力画像I_jに映る対象物1の像1Aは検出で問題となるばらつきを含んでいることが望ましい。例えば、対象物1の個体差が問題となっているのであれば、個体差のある対象物1を複数用意し、それらの対象物1をそれぞれ撮像したものを入力画像とするのがよい。対象物1を置く位置による見え方の違いが問題となるのであれば、カメラ視野内の様々な位置・向きに対象物を置いて撮像した画像を入力画像とするのがよい。実際に生産ラインで撮像した対象物1の画像を大量に保存しておき、それを入力画像としてもよい。実際に生産ラインで撮像した画像は、考慮すべき様々なばらつきを含んでいるため好適である。１枚の入力画像に複数の対象物が映っていてもよい。
【００３９】
ステップS103で、入力画像I_j（j=1〜NI）のそれぞれについて対象物1の像1A（以下、単に対象物1と称する場合がある）の検出を行う。
まず、入力画像I_jから第２の特徴点を抽出する。第２の特徴点はモデルパターンを作成する際に第１の特徴点を抽出した方法と同じ方法で抽出すればよい。本実施形態では、入力画像からエッジ点を抽出し、第２の特徴点とする。説明のため、入力画像I_jから抽出されたNQ_j個の第２の特徴点をQ_jk（k=1〜NQ_j）とする。第２の特徴点Q_jkは入力画像I_jに関連づけて検出結果記憶部27に記憶する。この時点では、第２の特徴点Q_jkの位置や姿勢は画像座標系210で表現されている。
【００４０】
次に、入力画像I_jから抽出した第２の特徴点Q_jkとモデルパターンを構成する第１の特徴点P_iとのマッチングを行い、対象物1の検出を行う。対象物を検出する方法は様々なものがあるが、たとえば、周知の方法として、非特許文献３に記載された一般化ハフ変換、非特許文献４に記載されたＲＡＮＳＡＣ、非特許文献５に記載されたＩＣＰアルゴリズムなどが利用できる。
【００４１】
検出を行った結果、入力画像I_jから対象物の像がNT_j個検出されたとする。また、検出された像をT_jg（g=1〜NT_j）、像T_jgの検出位置をR_Tjgとする。検出位置R_Tjgは、画像座標系210から見た対象物の像T_jgの位置姿勢、すなわち像T_jgにモデルパターンを重ね合わせた時の、画像座標系210から見たモデルパターン座標系100の位置姿勢を表す同次変換行列であり、次の式で表される。
【００４２】
【数１】
0006348093.tif 000002
【００４３】
たとえば、対象物がカメラの光軸に対して傾くことがなく、画像に写る対象物の像の移動として合同変換だけを考えればよい場合には、a00〜a12は以下のようになる。
a00=cosθ
a01=-sinθ
a02=x
a10=sinθ
a11=cosθ
a12=y
ただし、（x、y）は画像上での位置、θは画像上での回転移動量である。
【００４４】
また、対象物がカメラの光軸に対して傾くことはないが、対象物とカメラの距離が一定でない場合は、距離に応じて画像に映る対象物の像の大きさが変わるため、画像に写る対象物の像の移動としては相似変換となる。その場合、a00〜a12は以下のようになる。
a00=ｓ・cosθ
a01=-ｓ・sinθ
a02=x
a10=ｓ・sinθ
a11=ｓ・cosθ
a12=y
ただし、sは教示されたモデルパターンの大きさと対象物の像T_jgの大きさの比である。
【００４５】
入力画像I_j(j=1〜NI)のそれぞれについて同様の処理を行い、トータルでNT個の像が検出されたものとする。なお、トータルの個数NTは次の式で表される。
【００４６】
【数２】
0006348093.tif 000003
【００４７】
検出位置R_Tjgを、入力画像I_jに関連付けて検出結果記憶部27に記憶しておく。
ステップS104で、各入力画像I_j(j=1〜NI)から検出された対象物の像T_jg（j=1〜NI、g=1〜NT_j）の検出位置R_Tjgに基づいて、入力画像I_jから抽出された第２の特徴点Q_jk（j=1〜NI, k=1〜NQ_j）のうち、モデルパターンを構成する第１の特徴点P_iに対応するものを対応点として選択する。
説明のため、モデルパターンを構成する第１の特徴点P_iの位置姿勢をそれぞれ同次変換行列R_Piで表すことにする。R_Piは以下のように記述できる。
【００４８】
【数３】
0006348093.tif 000004
【００４９】
b00= vx_Pi
b01=-vy_Pi
b02= tx_Pi
b10= vy_Pi
b11= vx_Pi
b12= ty_Pi
ただし、t_Pi =（tx_Pi, ty_Pi）はモデルパターン座標系でのP_iの位置、v_Pi =（vx_Pi, vy_Pi）はモデルパターン座標系でのP_iの姿勢である。
【００５０】
なお、P_iの姿勢をベクトルではなく角度r_Piで表現することもできる。v_Piはr_Piを使って、v_Pi = (vx_Pi, vy_Pi) = (cos r_Pi, sin r_Pi)と表現できる。
同様に、入力画像I_jから抽出した第２の特徴点_Q_jkの位置姿勢も、同次変換行列R_Qjkで表すことにする。
【００５１】
ここで、モデルパターンを構成する第１の特徴点P_iの位置姿勢R_Piはモデルパターン座標系で表現されており、入力画像I_jから抽出された第２の特徴点Q_jkの位置姿勢R_Qjkは画像座標系で表現されていることに注意が必要である。そこで、両者の関係を明確にしておく。
【００５２】
画像I_jに写った対象物の像T_jgにモデルパターンを重ねた時の、画像座標系から見た第１の特徴点P_iの位置姿勢をR_Pi’とすると、R_Pi’は、モデルパターン座標系からみた第１の特徴点P_iの位置姿勢R_Piと、画像座標系から見た像T_jgの検出位置R_Tjgを用いて、以下のように表せる。
R_Pi'=R_Tjg・R_Pi            （１）
【００５３】
同様に、対象物の像T_jgにモデルパターンを重ねた時の、モデルパターン座標系から見た第２の特徴点Q_jkの位置姿勢をR_Qjk’とすると、R_Qjk’は、画像座標系から見たQ_jkの位置姿勢R_Qjkと、画像座標系から見た像T_jgの検出位置R_Tjgを用いて、以下のように表せる。
R_Qjk'=R_Tjg-1・R_Qjk         （２）
【００５４】
なお、後の説明のため、画像座標系から見たP_iの位置をt_Pi’、画像座標系から見たP_iの姿勢をv_Pi’、画像座標系から見たQ_jkの位置をt_Qjk、画像座標系から見たQ_jkの姿勢をv_Qjk、モデルパターン座標系から見たQ_jkの位置をt_Qjk’、モデルパターン座標系から見たQ_jkの姿勢をv_Qjk’とする。
【００５５】
以上を踏まえて、モデルパターンを構成する第１の特徴点P_iと、入力画像I_jから抽出された第２の特徴点Q_jk（j=1〜NI, k=1〜NQ_j）の対応付けを、以下の手順で行う。
【００５６】
１．入力画像I_jから検出された対象物の像T_jgの検出位置R_Tjgに基づいて、モデルパターンを構成する第１の特徴点P_iの位置姿勢R_Piを、式（１）により、画像座標系から見た位置姿勢R_Pi’に変換する。
【００５７】
２．第１の特徴点P_iのそれぞれについて、第２の特徴点Q_jkの中から最も近いものを探索する。探索には以下のような手法を使うことができる。
（ア）第１の特徴点の位置姿勢R_Pi’と全ての第２の特徴点の位置姿勢R_Qjkとの距離を計算し、最も距離が近い第２の特徴点Q_jkを選択する。
（イ）入力画像I_jの画素数と同じ要素数の２次元配列に、第２の特徴点の位置姿勢R_Qjkをその位置の画素に対応する２次元配列の要素に格納し、２次元配列の第１の特徴点の一意姿勢R_Piに対応する画素近傍を２次元的に探索し、最初に見つかった第２の特徴点Q_jkを選択する。
【００５８】
３．選択された第２の特徴点Q_jkが、その第１の特徴点P_iの対応点として妥当であるか評価する。たとえば、第１の特徴点P_iの位置姿勢R_Pi’と第２の特徴点Q_jkの位置姿勢R_Qjkの距離を計算し、距離が閾値以下であれば、選択された第２の特徴点Q_jkはその第１の特徴点P_iの対応点として妥当であるとする。
【００５９】
さらに、第１の特徴点P_iと第２の特徴点Q_jkの姿勢や輝度勾配の大きさなどの物理量の差も合わせて評価して、それらも閾値以下または閾値以上であるときに選択された第２の特徴点Q_jkはその第１の特徴点P_iの対応点として妥当であると判断するようにしてもよい。
【００６０】
４．選択された第２の特徴点Q_jkが、その第１の特徴点P_iの対応点として妥当であると判断した場合は、選択された第２の特徴点Q_jkをその第１の特徴点P_iの対応点O_imとして、P_iに関連付けて検出結果記憶部27に記憶する。対応点O_imの画像座標系から見た位置姿勢R_Oimとすると、R_Oim=R_Qjkであり、これは画像座標系から見た位置姿勢であるので、モデルパターン座標系から見た位置姿勢R_Oim’に変換してから記憶するようにする。R_Oim’は、式（２）により、以下のようにして計算できる。
【００６１】
【数４】
0006348093.tif 000005
【００６２】
第１の特徴点P_iの位置t_Pi’と第２の特徴点Q_jkの位置t_Qjkの距離は、２点間の直線距離を使用してもよいが、以下に説明する図６に示す計算方法で計算した値を使用してもよい。
【００６３】
１．第１の特徴点P_iの位置t_Pi’を通り、第１の特徴点P_iの姿勢v_Pi’に平行な直線をL2とする。
２．第２の特徴点Q_jkの位置t_Qjkを通り、第２の特徴点Q_jkの姿勢v_Qjkに直交する直線をL1とする。
３．L1とL2の交点Tと第１の特徴点P_iの位置t_Pi’との距離d_giを計算する。この場合には、距離d_giは符号付き距離となる。
このように距離を計算すると、第１の特徴点P_iの輝度勾配の方向と直交する方向のズレは無視することになる。
【００６４】
以上の処理を、入力画像I_j(j=1〜NI)から検出されたNT個の検出位置R_Tjg（j=1〜NI、g=1〜NQ_j）のそれぞれについて行うことにより、モデルパターンのi番目の特徴点P_iに対応すると判定された対応点がNO_i個見つかったものとする。また、モデルパターンのi番目の特徴点P_iに対応するm個目の対応点をO_im（m=1〜NO_i）とする。なお、入力画像I_jから検出された対象物の像の総数がNTであるので、NO_i <= NTである。得られた対応点は図１３のような形態でモデルパターン記憶部26に記憶する。
【００６５】
なお、本実施形態ではNT個の検出位置R_Tjg（j=1〜NI、g=1〜NQ_j）のすべてについて対応点の選択を行うようにしたが、必ずしもすべての検出位置について行う必要はない。たとえば、明らかに妥当でない検出位置が混ざっているようであれば、それらを除外することが望ましい。たとえば、以下の方法で除外することができる。
【００６６】
除外方法の一例として、検出位置近傍の輝度値がモデルパターン教示時と検出時で比較し、輝度値が大きく異なるようであれば、妥当でないとして除外する。この除外処理を説明する。
【００６７】
１．輝度値を計測する領域を設定する。これを計測領域と呼ぶ。計測領域はモデルパターン内部でもよいし、外部でもよい。計測領域の形状に制約はないが、ここでは矩形であるとし、モデルパターン座標系から見た矩形の位置と大きさを記憶しておく。また、モデルパターンを教示した画像で、計測領域内の輝度値の統計量を計算し、合わせて記憶しておく。統計量は、輝度値の平均、分散、最大値、最小値などが考えられる。
【００６８】
２．検出結果T_jgの検出位置R_Tjgに対応する計測領域の位置R_C'を計算する。
計測領域の矩形の位置姿勢R_Cとすると、R_C'はR_CとR_Tjgに基づいて次式で算出できる。
R_C' = R_Tjg・R_C
【００６９】
３．R_C'で規定される矩形の領域内における、入力画像I_jの輝度値の統計量を計算する。
４．モデルパターンの計測領域の輝度値の統計量と検出結果T_jgの計測領域の輝度値の統計量の差が閾値以上であれば、その検出結果は妥当でないとして除外する。
上記２〜４の処理を検出結果T_jg(g=1〜NT_j)それぞれに対して行う。
【００７０】
除外するかどうかの判定に使用する物理量は輝度値に限られるものではない。例えば、計測領域内の輝度勾配の大きさを使用してもよいし、色相や彩度を使用してもよい。これに類する効果を発揮しうる物理量の統計量であればここに列挙されたものに限定されないことは言うまでもない。
【００７１】
別の除外方法としては、使用者が、手動で妥当でない検出結果を除外することもできる。検出結果を表示装置32に表示し、使用者が目視で確認し、妥当でないと判定された検出結果は使わないようにする。上記の処理（検出結果の妥当性の確認）を検出結果T_jg(g=1〜NT_j)それぞれに対して行う。
【００７２】
妥当でない検出結果を除外することで、そのような検出結果が以降のステップで統計量を計算する際に悪影響を及ぼすのを防ぐことができる。
【００７３】
ステップS105で、モデルパターンのi番目の第１の特徴点P_iに対応すると判定されたNO_i個の対応点O_im（m=１〜NO_i）の物理量に基づいて、第１の特徴点P_iに対応する対応点の物理量の統計量を算出する。
【００７４】
統計量の一例として、特徴点の位置の平均誤差ベクトルを求める方法を以下で説明する。
（ア）検出結果記憶部27に記憶されている、第１の特徴点P_iに対応するNO_i個の対応点_O_imのモデルパターン座標系から見た位置姿勢R_Oim’を取得する。
（イ）次に、図１４に示すように、NO_i個の対応点O_imをそれぞれについて、対応点O_imの位置姿勢R_Oim’の位置成分t_Oim’から第１の特徴点P_iの位置姿勢R_Piの位置成分t_Piを引いた誤差ベクトルV_imを計算する。誤差ベクトルV_imはNO_i個得られることになる。得られた誤差ベクトルは図１８のような形態でモデルパターン記憶部26に記憶する。
【００７５】
（ウ）NO_i個の誤差ベクトルV_imを全て加算し、NO_iで除することで、平均誤差ベクトルV_iを計算し、第１の特徴点P_iの統計量として特徴点P_iに関連付けてモデルパターン記憶部26に記憶する。なお、V_iは次の式で表される。
【００７６】
【数５】
0006348093.tif 000006
【００７７】
上記の例では、第１の特徴点P_iに対する全ての誤差ベクトルV_imをモデルパターン記憶部に記憶してから平均を求めるようにしたが、誤差ベクトルV_imを逐次的に加算していき、最後にその総和をNO_iで除することで、平均誤差ベクトルV_iを求めるようにしてもよい。
【００７８】
また、平均誤差ベクトルは別の方法でも求められる。例えば、NO_i個の誤差ベクトルを確率変数とする確率分布を求め、最も確率の高い箇所のベクトルを平均誤差ベクトルとしてもよい。画像は2次元なので、２次元の確率分布を推定することで、平均誤差ベクトルを算出することができる。確率分布としては、正規分布や混合正規分布などを用いることができる。
【００７９】
平均誤差ベクトルを計算する前に外れ値を除去してもよい。外れ値を除去することで、誤った対応点により、平均誤差ベクトルの位置精度が悪くなることを防ぐことができる。外れ値は、例えば、以下の方法で除去することができる。
【００８０】
まず、誤差ベクトルを確率変数とする確率分布を求める。求めた確率分布に対して、それぞれの誤差ベクトルをとりうる確率を求める。この確率が閾値より低いものは外れ値であるとして除去する。
外れ値を除去した後で、再度確率分布を求め直すなどして、平均誤差ベクトルを求めればよい。
以上の処理を、モデルパターンを構成するすべての第１の特徴点P_iについて行う。
【００８１】
ステップS106で、求めた統計量（平均誤差ベクトルV_i）に基づいて、モデルパターンの第１の特徴点P_iを修正する。具体的には、図１５に示すように、特徴点P_iの位置t_Piを、t_Piに平均誤差ベクトルV_iを加算した値t_Pi+V_iで書き換えればよい。これにより、モデルパターンの特徴点P_i（i=1〜NP）が形作る形状が、画像I_j（j=1〜NI）に写ったNT個の像T_jg（j=1〜NI、g=1〜NT_j）の平均的な形状となる。
【００８２】
ステップS105において統計量として何を算出するか、また、ステップS106においてモデルパターンをどのようにして修正するかは、上記の方法に限定されない。例えば、以下のようにしてもよい。
【００８３】
１．図６の方法で第１の特徴点P_iと対応点O_imとの距離d_imを計算する。d_imは符号付き距離である。特徴点P_iの対応点はNO_i個あるので、距離d_imは、各特徴点P_iについてNO_i個計算される。
【００８４】
２．NO_i個の距離d_imの平均値d_iを以下の式で求める。求めた距離の平均値d_iを統計量として、特徴点P_iに関連づけてモデルパターン記憶部に記憶する。平均値d_iは、次の式で表される。
d_i = (Σd_im)/NO_i
【００８５】
３．第１の特徴点P_iの姿勢v_Piにd_iを乗じて、平均誤差ベクトルV_iとする。
V_i = d_i・v_Pi
特徴点P_iの位置t_Piに、計算した平均誤差ベクトルV_iを加算する。
このようにする場合には、特徴点P_iの位置t_Piは輝度勾配の方向にのみ修正されることになる。
【００８６】
更に、モデルパターンの第１の特徴点P_iの位置t_Piと同様に、特徴点P_iの姿勢v_Piを修正することもできる。たとえば、第１の特徴点P_iの対応点O_imの姿勢ベクトルv_Oimの平均ベクトルuv_Oiを、uv_Oi=(Σv_Oim)/|Σv_Oim|で求め、第１の特徴点P_iの姿勢ベクトルv_Pi をuv_Oiで置き換えてもよい。
【００８７】
もしくは、特徴点P_iの姿勢ベクトルを角度r_Pi=arctan(vx_Pi/vy_Pi)に変換して、同じように変換した対応点O_imの姿勢の角度をr_Oim'として、角度の差r_imをr_Oim'−r_Piで求めることができる。ただしr_imは-πからπの値になるように変換する。差の平均値r_i=(Σr_im)/(NO_i)を特徴点の姿勢の角度r_Piに加算することで、特徴点P_iの姿勢を修正することができる。
【００８８】
モデルパターンをこのように修正することにより、以下の効果がある。
１．ある対象物を撮像した画像から作成したモデルパターンは、対象物のある個体の形状を反映したものであるため、全ての個体に対して最適なものではない。この方法を使うことで、対象物の平均的な形状をモデルパターンとすることができる。更に対象物の個体による形状の違いだけでなく、対象物の置かれた位置やカメラの位置の違いにより、対象物の見え方が異なる場合がある。このような見え方の違いも含めてモデルパターンを平均化することができる。
【００８９】
２．対象物の形状を表すCADデータから作成したモデルパターンは、対象物の理想的な形状であるが、製造誤差により、寸法通りに作られるわけでない。また、ＣＡＤデータの座標系で表現されたモデルパターンを画像の座標系に変換する際にも、誤差が発生しうる。このようなモデルパターンを実際に検出する対象物の形状に合わせて最適化することができる。モデルパターンの輪郭線を線分、矩形、円形などの図形を組み合わせて直接教示した場合も同様である。
【００９０】
以上、第１実施形態について説明した。次に第２実施形態を説明する。
第２実施形態では、モデルパターンの第１の特徴点に対応しなかった第２の特徴点についてもその対応点の物理量の統計量を求め、求めた統計量に基づいて、モデルパターンの第１の特徴点を新たに追加する。
【００９１】
図７は、第２実施形態における処理を示すフローチャートである。
ステップS301〜S303は、第１実施形態のS101〜S103と同じである。S301〜S303を実施することによって、S103の終了段階と同じように、入力画像I_jから対象物の像がNT_j個検出されたとする。また、検出された像T_jg（g=1〜NT_j）の検出位置をR_Tjgとする。
【００９２】
ステップS304で、対応点選択部２４で、モデルパターンを構成する第１の特徴点に対する対応点を選択する。S304における処理は基本的には第１実施形態のS104における処理と同じであるが、さらに以下を行う点が異なる。
【００９３】
図８に示すように、入力画像I_jから検出された対象物の像T_jgの位置姿勢R_Tjgに基づいて、入力画像I_jから抽出された第２の特徴点Q_jk（j=1〜NI, k=1〜NQ_j）のうち、モデルパターンを構成する第１の特徴点P_i（i=1〜NP）に対応すると判定されたもの以外（図８で破線で囲んだ点）を、対象物の像T_jgの非対応点O_jgn（n=1〜NO_jg）として対象物の像T_jgに関連付けて検出結果記憶部27に記憶する。ただし、NO_jgはNQ_j以下の値である。
【００９４】
ステップS305で、対応点選択部24で、以下の手順で特徴点候補を選択してモデルパターン記憶部26に記憶する。
検出結果記憶部27に記憶されている、対象物の像T_jgの非対応点O_jgn（n=1〜NO_jg）のそれぞれについて、画像座標系から見たO_jgnの位置姿勢R_Ojgnと、対象物の像T_jgの位置姿勢R_Tjgに基づいて前述の式（２）により、モデルパターン座標系からみた非対応点O_jgnの位置姿勢R_Ojgn’を算出する。R_Ojgn’がモデルパターン指定領域の内側であるかをチェックし、領域外であればそのO_jgnを対象物の像T_jgの非対応点から除外する。ここで使用するモデルパターン指定領域は、モデルパターンを作成するために使用したものとは別の領域を新たに指定してもよい。
【００９５】
残った非対応点を特徴点候補C_hとして、対象物の像T_jgと関連付けて記憶する。
なお、特徴点候補として追加する際に、非対応点O_jgnの物理量を用いて更に絞り込んでも良い。例えば、輝度勾配の大きさが閾値より小さい非対応点は特徴点候補として追加しないようにしてもよい。
【００９６】
ステップS304およびS305の処理を、各入力画像I_j(j=1〜NI)から検出された対象物の像T_jg（j=1〜NI, g=1〜NT_j）のそれぞれに対して行う。始めは特徴点候補C_hは0個であるが、S304およびS305の処理を行う度に特徴点候補がC_hに追加され、最終的にNC個の特徴点候補C_h（h=1〜NC）が得られたとする。
【００９７】
ステップS306で、対象物の像の位置姿勢R_Tjg(j=1〜NI、g=1〜NT_j)に基づいて、入力画像I_jから抽出された第２の特徴点Q_jk（j=1〜NI, k=1〜NQ_j）のうち、特徴点候補C_h（h=1〜NC）に対応する対応点O_hp(p=1〜NO_h)を選択する。
【００９８】
この処理は基本的には第１実施形態のS104の処理と同じであるが、第１の特徴点P_iに対する対応点ではなく、特徴点候補C_hに対する対応点を選択する点が異なる。その特徴点候補C_hを追加する際に使用した対象物の像T_jgに対しては対応点を選択する必要はないので、NO_hはNT−１以下の値になる。
【００９９】
入力画像I_jから検出された対象物の像T_jgのそれぞれについてS306の処理を行うことで、各特徴点候補C_hに、それぞれNO_h個の対応点O_hp(p=1〜NO_h)が見つかったものとする。
ステップS307で、特徴点候補C_hのそれぞれについて、対応点O_hp(p=1〜NO_h)の物理量の統計量を算出する。ここでは、ある特徴点候補C_hに対応する対応点の数がNO_h個である場合、対応点の選択に使った対象物の像の総数はNT個に対して、その特徴点が対象物の像に現れた割合(NO_h+1)／NTを計算し統計量とする。
【０１００】
統計量はこの例に限られるものではなく、例えば、以下のような統計量を算出してもよい。
・特徴点候補C_hと対応点O_hpの間の、位置の誤差、輝度勾配の方向の誤差、距離、の平均、分散、確率分布
位置姿勢に関する統計量を計算するためには、対応点O_hpの位置姿勢R_Ohpをモデルパターン座標系から見た位置姿勢R_Ohp’に変換する必要がある。これには前述の式（２）が使える。
・対応点O_hpの輝度勾配の大きさの平均、分散、確率分布
・対応点が見つかった個数NO_h
【０１０１】
ステップS308で、計算された統計量に基づいて、特徴点候補C_h（h=1〜NC）のそれぞれについて、モデルパターンに特徴点として追加することが妥当かどうかの判定を行う。
例えば、ある特徴点候補C_hに対応する対応点の数がNO_h個である場合、対応点の選択に使った対象物の像の総数はNT個であるので、その特徴点が対象物の像に現れた割合は(NO_h+1)／NTとなる。特徴点が対象物の像に現れた割合が所定の閾値より小さい場合は、その特徴点候補は対象物の像に頻出するとは言えないので、モデルパターンに特徴点として追加するのは妥当ではないと考えることができる。
【０１０２】
他の統計量、例えば、位置や姿勢の分散を用いる場合には、ある特徴点候補C_hに対応する対応点O_hp(p=1〜NO_h)の位置や姿勢の分散が所定の閾値より大きい場合は、その特徴点候補は対象物の像に安定して出現する特徴点ではないと言えるので、モデルパターンに第１の特徴点として追加するのは妥当ではないと考えることができる。
【０１０３】
ステップS309で、各特徴点候補C_h（h=1〜NC）のうちS308で妥当であると判断された特徴点候補C_hの物理量を、その特徴点候補C_hに対応する対応点O_hp(p=1〜NO_h)の物理量の統計量で上書きする。たとえば、特徴点候補C_hの位置、姿勢、輝度勾配の大きさなどを、対応点O_hp (p=1〜NO_h)の位置、姿勢、輝度勾配の平均値で上書きする。
【０１０４】
これまでの処理により、モデルパターン座標系から見て位置姿勢が同じ点が、それぞれ別の特徴点候補として追加されている。ステップS310では、特徴点候補C_h（h=1〜NC）の中から、重複している点を削除する。
【０１０５】
たとえば、図９に示すように、モデルパターン座標系の2次元空間を1画素単位でブロックＢに区切り、各ブロックで1つの特徴点候補だけが残るように特徴点候補を削除する。削除する基準としては、様々な方法が考えられるが、例えば、見つかった対応点が多い特徴点候補を残すようにしてもよいし、輝度勾配の大きさの平均値が高い物を残してもよいし、あるいはそれらを組み合わせてもよい。また、近傍の画素の第１の特徴点や特徴点候補とのつながり方を考慮し、最も妥当性が高い物を残してもよい。例えば、近傍画素間で残った特徴点候補の輝度勾配の方向が大きく異なっていれば、どちらかの特徴点候補が正しくない可能性がある。この処理は特徴点候補が存在する全てのブロックで行う。
【０１０６】
ステップS311で、これまでの処理で削除されなかった特徴点候補C_h（h=1〜NC）を、第１の特徴点としてモデルパターンに追加し、モデルパターン記憶部26に記憶する。
第２実施形態は、上記の手順には限らず様々な形態が考えられる。
【０１０７】
たとえば、上記のS304において、どの第１の特徴点P_iにも対応しなかった第２の特徴点Q_jkを非対応点O_jgnとして選択しているが、第１の特徴点P_iだけでなく、すでに追加されている特徴点候補C_hとも比較するようにし、第１の特徴点P_iに対応する場合はP_iの特徴点の対応点として選択、特徴点候補C_hと対応した場合はC_hの対応点として選択、第１の特徴点P_iと特徴点候補C_hのいずれにも対応しなかった場合は非対応点O_jgnとして選択するようにする。これにより、特徴点候補C_hとして既に追加されている第２の特徴点と重複する可能性の高い第２の特徴点Q_jkは特徴点候補C_hとして追加されなくなる。
【０１０８】
第２実施形態によれば、最初に作成したモデルパターンには存在しなかったが、対象物の像に安定して頻出する第２の特徴点をモデルパターンに自動的に追加することができる。これにより、以下の効果がある。
【０１０９】
最初に作成したモデルパターンは、1枚の画像に写っていた対象物の像のひとつから抽出された特徴点だけから構成されているが、光の加減やノイズなどの影響により、はっきりした輝度勾配がある状態では写っていない部分があると、対象物全体から特徴点が抽出できているわけではない。したがって、第２実施形態の方法によって、元のモデルパターンには含まれていなかったが多くの対象物の像に現れる特徴点を追加することにより、元のモデルパターンに欠けていた部分を補うことができる。これにより、検出の正確性とロバスト性の向上が期待できる。
【０１１０】
次に第３実施形態を説明する。
第３実施形態では、モデルパターンの特徴点に対応する対応点の物理量の統計量に基づいて、モデルパターンを構成する第１の特徴点に判定指標を追加し、対象物検出部23において判定指標を利用することで検出の信頼性を向上する。
図１０は、第３実施形態における処理を示すフローチャートである。
【０１１１】
ステップS401〜S404は、第１実施形態のS101〜S104と同じである。S104の終了段階と同じように、モデルパターンのi番目の特徴点P_iに対応すると判断された対応点がNO_i個見つかったものとする。また、モデルパターンのi番目の特徴点P_iに対応するm個目の対応点をO_im（mは1からNO_i）とする。
【０１１２】
ステップS405で、第１の特徴点P_iに対応するNO_i個の対応点O_imの物理量の統計量を算出する。例えば、以下のような統計量を算出する。これは第２実施形態のS307と同様に計算できる。
【０１１３】
１．第１の特徴点P_iと対応点O_imの距離d_imの標準偏差を計算する。距離d_im（m=1〜NO_i）が正規分布に従ってばらつくと仮定すると、距離d_imの標準偏差σdは公知の手法で計算できる。
【０１１４】
２．輝度勾配の大きさの平均と標準偏差を計算する。対応点O_imが保持する輝度勾配の大きさが正規分布に従いばらつくと仮定すると、対応点O_im(m=1〜NO_i)の輝度勾配から平均μα、標準偏差σαを計算できる。
【０１１５】
３．輝度勾配の大きさの確率分布を計算する。輝度勾配の大きさが正規混合分布に従いばらつくとする。対応点O_im(m=1〜NO_i)の輝度勾配の大きさを確率変数とする正規混合分布p(x)は、次のように表される。
【０１１６】
【数６】
0006348093.tif 000007
【０１１７】
上記の式のパラメータπb、μαb、σαb(b=1〜NB)は周知の方法で求めることができる。
ステップS406で、計算した統計量から判定指標W_iを求める。S405で計算した統計量を用いて、それぞれ以下のような判定指標を求められる。
【０１１８】
（ア）距離d_imの標準偏差σdから、距離の許容範囲を計算する。距離が３σd以上または-３σd以下であれば、不一致であるとするような判定指標とする。大きなσdを持つ第１の特徴点は検出対象物の第２の特徴点の位置がばらつくので、大きなばらつきを許容するようになり、小さなσdを持つ第１の特徴点は、比較的小さなばらつきのみを許容するようになる。
【０１１９】
（イ）輝度勾配の大きさの平均μαと標準偏差σαを用いて、輝度勾配の大きさがμα−2σαからμ＋2σαまでの第２の特徴点のみを許容するようにする。
（ウ）輝度勾配の大きさの確率分布p(x)を用いて、ある輝度勾配の大きさを取り得る確率が一定の値以上であるかを判定指標にする。ある輝度勾配の大きさを取り得る確率が、ある閾値p_minより大きければ許容するようにする。この場合には、正規混合分布を規定するパラメータπb、μαb、σαb(b=1〜NB)と閾値p_minとを判定指標の中に保持することになる。
【０１２０】
ステップS407で、求めた判定指標W_iを第１の特徴点P_iに関連付けてモデルパターン記憶部26に記憶する。統計量から求めた閾値ではなく、統計量そのものを判定指標として記憶してもよい。
【０１２１】
ステップS404〜S407の処理を、モデルパターンの特徴点P_i（i=1〜NP）のそれぞれに対して実施する。判定指標は、例えば、図１６のような形式でモデルパターンの特徴点P_iに関連付けてモデルパターン記憶部26に記憶する。
ステップS408で、対象物検出部23で、モデルパターン記憶部26に記憶された判定指標を使用して、対象物を検出する。
【０１２２】
対象物検出部23において判定指標を利用する1つの方法は、対象物の像T_xを求めたあとで、それぞれの対象物の像に対する一致度を計算し、その一致度が低い対象物の像T_xを除外することである。以下ではこの方法について説明する。
【０１２３】
１．新たな画像Inewを撮像する。
２．画像Inewから対象物を検出する。検出には、S103同様、任意の手法を用いることがある。これにより、対象物の像T_x（x=1〜NTX）がNTX個求まったとする。以下の３〜６の処理を、全ての対象物の像T_xに対して実施する。
【０１２４】
３．画像Inewから検出された対象物の像T_xの位置姿勢R_Tx_に基づいて、画像Inewから抽出された第２の特徴点Qnew_k（k=1〜NQ）のうち、モデルパターンを構成する第１の特徴点P_iに対応するものを選択する。
【０１２５】
４．選択された第２の特徴点が第１の特徴点P_iの対応点として妥当であるかを確認する。ここでP_iに関連付けられた判定指標を用いる。例えば、第２の特徴点の輝度勾配の大きさがβであるとき、βがμα−2σαからμα＋2σα（μ、α、σの定義についてはS408を参照）の間であれば妥当であるとする。妥当である対応点はP_iの対応点O_iとして検出結果記憶部27に記憶する。
【０１２６】
５．上記の３〜４の処理を全ての特徴点P_i（i=1〜NP）に対して行うことで、NO個の対応点が選択できたものとする。
６．モデルパターンを構成する第１の特徴点の数NPと見つかった対応点の数NOを使用して、NO/NPを求めることで、モデルパターンと像T_xの一致度を0.0から1.0の間の値で表現できる。
【０１２７】
または、ある第１の特徴点P_iとその対応点O_iの個別の一致度をS_iとして算出し、ΣS_i/NPをモデルパターンと像T_xの一致度としてもよい。個別の一致度S_iは第１の特徴点P_iの物理量と対応点O_iの物理量を使って求めることができる。例えば、第１の特徴点P_iの物理量と対応点O_iとの距離をd_iとしたときに、ある定数d_maxを定義して、S_iを以下のように求めることができる。ただし、|ｄ_i|はd_max以下の値であるとする。
S_i = 1 - |ｄ_i|/d_max
【０１２８】
７．計算したモデルパターンと像T_xの一致度が予め定められた閾値Sminより小さければ、その対象物の像T_xを検出結果から除外する。
対象物検出部で判定指標を用いる方法はこれに限らない。例えば、ICPアルゴリズムにおいても、モデルパターンを構成する第１の特徴点の対応点を選択するステップが存在する。この対応点を選択するステップで、判定指標を用いて、第１の特徴点と第２の特徴点の一致／不一致を決定することができる。
これにより、対象物検出部において、より正確に判定された対応点を用いて検出を行うことができる。
【０１２９】
第３実施形態によれば、モデルパターンの第１の特徴点毎に対象物を検出するために最適な判定指標を持たせ、その判定指標を対象物の検出に使用することができる。これにより以下の効果がある。
【０１３０】
モデルパターンの第１の特徴点の部位によっては、例えば、位置のばらつきが大きかったり小さかったりする場合がある。位置のばらつきが小さい場合に、そのばらつき以上の距離がある第２の特徴点は、妥当な対応点でない可能性が高い。そのような第２の特徴点は対応点として使用しないことで、誤対応を防ぐことができる。対応点の誤対応は、検出精度に悪影響を与えたり、誤検出の原因となったりすることがある。さらに位置のばらつきが大きい場合に、小さいばらつきしか許容していなければ、その第１の特徴点に対する対応点が見つからなくなってしまう可能性が高い。それにより、一致度が低下し、対象物が見つからなくなってしまうことがある。それらの悪影響を防ぐことにより、検出結果の精度やロバスト性を向上することができる。
【０１３１】
モデルパターン記憶部26に記憶された判定指標は、第１実施形態などの対応点選択部で使用することもできる。たとえば、対応点選択部において、第２の特徴点Q_jkが第１の特徴点P_iの対応点として妥当であるか評価するステップで、判定指標を用いて妥当性を評価することができる。
【０１３２】
１．第３実施形態により、モデルパターンの特徴点P_i（i=1〜NP）のそれぞれに判定指標を持たせてあるものとする。ここでは、判定指標が第１の特徴点と第２の特徴点の距離diが-３σdから３σdの範囲内であるかどうかであるとする。
２．対応点選択部において、第１の特徴点P_iと第２の特徴点Q_jkの距離diが-３σdから３σdの範囲内であるかどうかを評価して、範囲内であれば妥当、範囲外であれば妥当でないとする。
３．妥当であると判断された第２の特徴点Q_jkのみを対応点として、以降の処理を行う。
これにより、より正確に判定された対応点を用いて、所定の物理量の統計量を計算することができる。
【０１３３】
第１乃至第３実施形態は、視覚センサがカメラであり、視覚センサからの入力データが画像である場合を想定して説明したが、本願発明は、視覚センサが３次元センサである場合にも適用可能である。
【０１３４】
3次元センサには、光切断法のように対象物の面上の3次元点が計測されるものと、ステレオ法のように対象物の輪郭線上の3次元点が計測されるものがある。
3次元センサが出力する3次元点群を構成する個々の3次元点を、そのまま本願発明のモデルパターンを構成する第１の特徴点として利用することができる。第１実施形態と同じように、指定した領域内の3次元点を第１の特徴点としてモデルパターンを作成すればよい。
【０１３５】
対象物の形状を表すCADデータからモデルの3次元点群を取得することもできる。CADデータから面上の3次元点を一定の間隔で取得してもよいし、輪郭線上の3次元点を一定の間隔で取得してもよい。
入力データを構成する3次元点が対象物の面上の点である場合は、各特徴点の物理量として特徴点の位置に加えて、法線の向きを利用することができる。3次元点群における法線の求め方の一例は、非特許文献６などで周知である。
【０１３６】
入力データを構成する3次元点が対象物の輪郭線上の点である場合は、各特徴点の物理量として、輪郭線上で隣り合う特徴点を結んだ方向ベクトルを利用することができる。
法線の向きや方向ベクトルは特徴点の姿勢として使用することができる。
更に3次元センサが3次元点と共に輝度の情報や色の情報を出力する場合、特徴点の物理量としての輝度の情報や色の情報を付加することができる。もちろん、近傍の3次元点の輝度を用いれば、特徴点の物理量として輝度勾配を算出することも可能である。
【０１３７】
3次元点群の特徴点は、非特許文献７に記載されたSHOTなど、他の形態のものであってもかまわない。
入力データが３次元点群であっても、対象物を検出し、その位置姿勢を求めることは可能である。例えば、非特許文献８のような手法がある。
また、入力データが３次元点群であっても、ＩＣＰアルゴリズムを使うことができる。もちろん、３次元点群から対象物を検出する手法はこれらに限られるものではない。
【０１３８】
入力データが面上の３次元点群であれば、対応点選択部において、第１の特徴点P_iの位置R_Piと第２の特徴点Q_jkのモデルパターン座標系から見た位置R_Qjk’との距離は以下の方法で求められる。
【０１３９】
・単純にR_PiとR_Qjk’の2点間の距離を求める。
・第１の特徴点P_iの法線と第２の特徴点Q_jkの近傍点群からもとめた平面との交点を求め、その交点と第１の特徴点の距離を計算する。
【０１４０】
第１乃至第３実施形態では、モデルパターンは複数の特徴点で構成されるものとして説明したが、モデルパターンを構成する特徴点は複数でなければならないわけではない。モデルパターンが単一の特徴点で構成される場合には、第１実施形態のように特徴点の位置を調整する意味はない。モデルパターンの位置を調整するということは、特徴点間の相対位置関係を変更することであるためである。しかし、特徴点の追加や判定指標の変更では単一の特徴点でも意味がある。たとえば、特徴点1つでは検出結果が数多く見つかってしまう可能性がある。そのような場合に、第２実施形態のようにマッチする特徴点を追加したり、第３実施形態のように判定指標を変更したりしてモデルパターンを最適化することで、検出結果をより限定することができる。ただし、特徴点1つでは、検出結果の候補が多くなりすぎて実用上問題になる可能性がある。たとえば、特徴点としてエッジ点を使う場合には、特徴点1つではマッチする検出結果が数多く見つかってしまうだろう。しかし、ＳＩＦＴなどの特徴点ではマッチする特徴点がある程度少なくなる可能性がある。
【０１４１】
第１乃至第３実施形態において、最初にモデルパターンを作成した後、入力画像の指定および対象物の検出は、たとえば、図３に示したロボット装置の検出動作で行う。これにより、最初に設定したモデルパターンを、実際の動作で得られた画像に基づいて修正していくことができる。この場合、モデルパターンを設定した後の所定回数までは、対象物の検出におけるマッチングの範囲を広くし、ある程度広い誤差範囲の対象物を対象物と判定する。この所定回数の処理が行われるにモデルパターンの修正が行われ、モデルパターンは、より実際の対象物に適したものに修正される。そして、所定回数経過後は、修正されたモデルパターンに基づいて、マッチングの範囲を狭くするなどして正しい判定が行われる確率を高くすることなどが可能である。もちろん、対象物の実際の状況に応じて逆にマッチングの範囲を広くする場合もあり得る。
【０１４２】
上記の実際の動作に伴う画像に基づいてモデルパターンの修正を行う場合、ロボット装置が画像処理装置の検出結果に基づいて行った動作の良否の結果をモデルパターンの修正処理に反映するようにしてもよい。次に説明する第４実施形態の画像処理装置では、画像処理装置の検出結果に基づいて行った動作の良否の結果をモデルパターンの修正処理に反映する。
【０１４３】
図１９は、第４実施形態の画像処理装置における処理を示すフローチャートである。
第４実施形態の画像処理装置では、ロボット装置の画像処理装置の検出結果に基づく動作が成功した場合にのみ、その場合の対象物の画像をモデルパターンの修正に反映し、動作が失敗した場合の対象物の画像はモデルパターンの修正に反映しないようにする。
【０１４４】
ステップS501のモデルパターンの作成は、他の実施形態と同じである。
ステップS502の画像の入力およびステップS503の対象物の検出も他の実施形態と同じであり、画像処理装置の検出結果を利用する動作毎に行われる。
【０１４５】
ステップS504で、ステップS503の対象物の検出結果に基づいた動作が行われる。この動作の結果、動作の良否（成功したか否か）が決まり、失敗した場合にはたとえば対象物の検出結果に問題があったと仮定する。
ステップS505で検出結果の良否を判定し、良の場合（動作が成功した場合）はステップS506に進み、不良の場合（動作が失敗した場合）はステップS507に戻る。
【０１４６】
ステップS506で、第１実施形態のS104からS106、第２実施形態のS304からS311、または第３実施形態のS404からS407で行われるモデルパターンの修正処理を行い、S502に戻る。
ステップS507で、あらかじめ決められた検出不良（動作失敗）の場合の対処動作、たとえば動作に失敗した対象物を除いたり、その画像を記録するなどの動作を行った後、ステップS502に戻る。
【０１４７】
以上、本発明の実施形態を説明したが、各種の変形例があり得るのは言うまでもない。
【符号の説明】
【０１４８】
１    対象物
２    作業台
１０    視覚センサ
１１    ロボット
１２    ハンド
１３    ロボット制御装置
２０    視覚センサ制御装置
２１    画像処理装置
２２    画像処理部
２３    対象物検出部
２４    対応点選択部
２５    モデルパターン修正部
２６    モデルパターン記憶部
２７    検出結果記憶部
３１    操作盤
３２    表示装置
【図１】
0006348093.tif 000008
【図２】
0006348093.tif 000009
【図３】
0006348093.tif 000010
【図４】
0006348093.tif 000011
【図５】
0006348093.tif 000012
【図６】
0006348093.tif 000013
【図７】
0006348093.tif 000014
【図８】
0006348093.tif 000015
【図９】
0006348093.tif 000016
【図１０】
0006348093.tif 000017
【図１１】
0006348093.tif 000018
【図１２】
0006348093.tif 000019
【図１３】
0006348093.tif 000020
【図１４】
0006348093.tif 000021
【図１５】
0006348093.tif 000022
【図１６】
0006348093.tif 000023
【図１７】
0006348093.tif 000024
【図１８】
0006348093.tif 000025
【図１９】
0006348093.tif 000026