(57)【要約】【課題】パラメータの設定にかかる時間を短縮することができる画像処理装置を提供することである。【解決手段】入力画像に対して、モデル画像に含まれる特徴量に基づく探索を行なう画像処理装置１００が提供される。画像処理装置１００は、モデル画像の特徴部分の特徴量を保持するためのハードウェア１１４と、モデル画像の特徴量に対応する特徴量を入力画像内で探索する範囲の大きさを示す設定値を受け付けるための探索範囲受付モジュール１５０と、設定値を用いて、モデル画像の特徴量に対応する特徴量を入力画像内で探索する範囲を決定するための探索範囲決定モジュール１５２と、探索範囲決定モジュール１５２によって決定された探索範囲をモデル画像に重ねて表示する表示モジュール１５４とを備える。【選択図】図５
2015176273.tif 000002
【特許請求の範囲】
【請求項１】
モデル画像の特徴部分の特徴量を保持するための記憶手段と、
前記モデル画像の特徴量に対応する特徴量を入力画像内で探索する範囲の大きさを示す設定値を受け付けるための探索範囲受付手段と、
前記設定値を用いて、前記モデル画像の特徴量に対応する特徴量を前記入力画像内で探索する範囲を決定するための探索範囲決定手段と、
前記探索範囲決定手段によって決定された探索範囲を前記モデル画像に重ねて表示する表示手段とを備える、画像処理装置。
【請求項２】
前記表示手段は、前記設定値の変化に応じて、前記探索範囲決定手段によって決定された探索範囲の表示を変化させる、請求項１に記載の画像処理装置。
【請求項３】
前記表示手段は、前記探索範囲決定手段によって決定された探索範囲を前記入力画像に重ねて表示する、請求項１または２に記載の画像処理装置。
【請求項４】
前記記憶手段が保持する情報は、前記モデル画像内の複数の前記特徴部分を含み、
前記画像処理装置は、前記モデル画像の複数の特徴部分の各々について、当該特徴部分に対して決定された探索範囲内で、当該特徴部分に対応する前記入力画像上の特徴部分を決定するための対応関係決定手段をさらに備え、
前記表示手段は、前記モデル画像の複数の特徴部分のそれぞれと、前記入力画像の複数の特徴部分のそれぞれとの間の対応関係に応じて前記モデル画像を変形した画像を、前記モデル画像と比較可能な態様で表示する、請求項１〜３のいずれか１項に記載の画像処理装置。
【請求項５】
前記画像処理装置は、前記モデル画像の特徴量に対応する特徴量を前記入力画像内で探索する範囲を部分的に調整するための調整手段をさらに備える、請求項１〜４のいずれか１項に記載の画像処理装置。
【請求項６】
前記画像処理装置は、
前記モデル画像の特徴部分について、前記入力画像中で探索の対象となるエッジの傾きの大きさを示す設定値を受け付けるための方向受付手段と、
前記方向受付手段が受け付けた設定値を用いて、前記モデル画像の特徴部分におけるエッジの傾きを基準とした、前記入力画像中で探索の対象となるエッジの相対的な傾きの範囲を決定するための方向決定手段とをさらに備え、
前記表示手段は、前記方向決定手段によって決定された探索の対象となるエッジの相対的な傾きの範囲を前記モデル画像に重ねて表示する、請求項１〜５のいずれか１項に記載の画像処理装置。
【請求項７】
前記表示手段は、前記方向受付手段が受け付けた設定値の変化に応じて、前記方向決定手段によって決定された探索の対象となるエッジの相対的な傾きの範囲の表示を変化させる、請求項６に記載の画像処理装置。
【請求項８】
モデル画像の特徴部分の特徴量を保持するステップと、
前記モデル画像の特徴量に対応する特徴量を入力画像内で探索する範囲の大きさを示す設定値を受け付けるステップと、
前記設定値を用いて、前記モデル画像の特徴量に対応する特徴量を前記入力画像内で探索する範囲を決定するステップと、
前記決定するステップで決定された探索範囲を前記モデル画像に重ねて表示するステップとを備える、画像処理方法。
【請求項９】
画像処理プログラムであって、
前記画像処理プログラムは、コンピュータに、
モデル画像の特徴部分の特徴量を保持するステップと、
前記モデル画像の特徴量に対応する特徴量を入力画像内で探索する範囲の大きさを示す設定値を受け付けるステップと、
前記設定値を用いて、前記モデル画像の特徴量に対応する特徴量を前記入力画像内で探索する範囲を決定するステップと、
前記決定するステップで決定された探索範囲を前記モデル画像に重ねて表示するステップとを実行させる、画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力画像に対して、モデル画像に含まれる特徴量に基づく探索を行なう画像処理装置、画像処理方法、および画像処理プログラムに関する。
【背景技術】
【０００２】
ＦＡ（Factory  Automation）分野においては、ワークなどの検出対象物を撮像し、その大きさや位置などを計測する処理や、予め登録されたモデル画像に一致する位置または領域を探索する処理などが実行される。
【０００３】
たとえば、特開２０１３−１５６０９４号公報（特許文献１）は、検査対象物に個体差がある場合や検査対象物の位置・向きが不定の場合であっても、適応的に検査領域を自動設定し、高精度な検査を可能にする技術を開示する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−１５６０９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述のような画像処理のアプリケーションとして、検出対象物を撮像してその存在する位置または領域を特定するとともに、特定した位置または領域を基準として任意に定められる位置または領域に対して、何らかの作用（たとえば、ワークの把持やワークに対する各種の加工）を与えるようなものがある。このようなアプリケーションでは、検出対象物の特徴量および当該検出対象物に対して作用を与えるべき位置または領域の情報をモデル情報として予め登録しておくことになる。
【０００６】
しかしながら、モデル情報として登録された形状とは異なる形状を生じ得るものが検出対象物となる場合もある。たとえば、前工程の温度や湿度などの環境条件に依存してその形状が定まるワークや、フレキシブルな材質で構成されており、外力（たとえば、重力）の影響を受けて形状が容易に変化するようなワークが想定される。
【０００７】
このような形状が変化するワークを検出するためには、通常、ユーザが様々な画像処理パラメータを予め設定する必要がある。しかしながら、当該画像処理パラメータは、それぞれが何を意味するのかをユーザが直感的に理解できないものが多い。このため、ユーザは、試行錯誤してパラメータの設定を行なう必要があり、画像処理パラメータの設定に多大な時間を要する。したがって、画像処理パラメータの設定を簡単に行なうことが可能な手法が望まれている。
【課題を解決するための手段】
【０００８】
一実施の形態に従うと、画像処理装置は、モデル画像の特徴部分の特徴量を保持するための記憶手段と、モデル画像の特徴量に対応する特徴量を入力画像内で探索する範囲の大きさを示す設定値を受け付けるための探索範囲受付手段と、設定値を用いて、モデル画像の特徴量に対応する特徴量を入力画像内で探索する範囲を決定するための探索範囲決定手段と、探索範囲決定手段によって決定された探索範囲をモデル画像に重ねて表示する表示手段とを備える。
【０００９】
好ましくは、表示手段は、設定値の変化に応じて、探索範囲決定手段によって決定された探索範囲の表示を変化させる。
【００１０】
好ましくは、表示手段は、探索範囲決定手段によって決定された探索範囲を入力画像に重ねて表示する。
【００１１】
好ましくは、記憶手段が保持する情報は、モデル画像内の複数の特徴部分を含む。画像処理装置は、モデル画像の複数の特徴部分の各々について、当該特徴部分に対して決定された探索範囲内で、当該特徴部分に対応する入力画像上の特徴部分を決定するための対応関係決定手段をさらに備える。表示手段は、モデル画像の複数の特徴部分のそれぞれと、入力画像の複数の特徴部分のそれぞれとの間の対応関係に応じてモデル画像を変形した画像を、モデル画像と比較可能な態様で表示する。
【００１２】
好ましくは、画像処理装置は、モデル画像の特徴量に対応する特徴量を入力画像内で探索する範囲を部分的に調整するための調整手段をさらに備える。
【００１３】
好ましくは、画像処理装置は、モデル画像の特徴部分について、入力画像中で探索の対象となるエッジの傾きの大きさを示す設定値を受け付けるための方向受付手段と、方向受付手段が受け付けた設定値を用いて、モデル画像の特徴部分におけるエッジの傾きを基準とした、入力画像中で探索の対象となるエッジの相対的な傾きの範囲を決定するための方向決定手段とをさらに備える。表示手段は、方向決定手段によって決定された探索の対象となるエッジの相対的な傾きの範囲をモデル画像に重ねて表示する。
【００１４】
好ましくは、表示手段は、方向受付手段が受け付けた設定値の変化に応じて、方向決定手段によって決定された探索の対象となるエッジの相対的な傾きの範囲の表示を変化させる。
【００１５】
他の実施の形態に従うと、画像処理方法は、モデル画像の特徴部分の特徴量を保持するステップと、モデル画像の特徴量に対応する特徴量を入力画像内で探索する範囲の大きさを示す設定値を受け付けるステップと、設定値を用いて、モデル画像の特徴量に対応する特徴量を入力画像内で探索する範囲を決定するステップと、決定するステップで決定された探索範囲をモデル画像に重ねて表示するステップとを備える。
【００１６】
さらに他の実施の形態に従うと、画像処理プログラムが提供される。画像処理プログラムは、コンピュータに、モデル画像の特徴部分の特徴量を保持するステップと、モデル画像の特徴量に対応する特徴量を入力画像内で探索する範囲の大きさを示す設定値を受け付けるステップと、設定値を用いて、モデル画像の特徴量に対応する特徴量を入力画像内で探索する範囲を決定するステップと、決定するステップで決定された探索範囲をモデル画像に重ねて表示するステップとを実行させる。
【発明の効果】
【００１７】
本発明によれば、モデル画像を用いて入力画像を探索する画像処理装置に対するパラメータの設定にかかる時間を短縮することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の関連技術およびその課題について説明するための図である。
【図２】第１の実施の形態に従う画像処理装置を含むシステムの構成を示す模式図である。
【図３】モデル画像に設定された探索範囲を説明するための図である。
【図４】第１の実施の形態に従う画像処理装置のハードウェア構成を示す模式図である。
【図５】第１の実施の形態に従う画像処理装置の機能構成を示す模式図である。
【図６】探索範囲の表示態様の一例について説明するための図である。
【図７】探索範囲の表示態様の他の例について説明するための図である。
【図８】探索範囲の表示が範囲パラメータに連動して表示されている様子を示した図である。
【図９】ユーザが探索範囲を部分的に調整している様子を示した図である。
【図１０】探索範囲がテスト画像に重ねて表示されている様子を示している図である。
【図１１】モデル画像に対して変形処理を施した画像が表示されている様子を示している図である。
【図１２】モデル画像に対する探索範囲のフローチャートを示す図である。
【図１３】設定した探索範囲の適否を確かめるテスト処理のフローチャートを示す図である。
【図１４】変形例に従う画像処理装置の設定画面における表示態様の一例を示す図である。
【図１５】モデル画像のコントロール点について、探索するエッジ方向に制限を設けるための方法を説明するための図である。
【図１６】モデル画像のコントロール点について、探索するエッジ方向に制限を設けるための他の方法を説明するための図である。
【図１７】第２の実施の形態に従う画像処理装置の機能構成を示す模式図である。
【図１８】傾き範囲がテスト画像に重ねて表示されている様子を示している図である。
【図１９】パラメータの設定画面の表示態様の一例を示した図である。
【図２０】テスト画面の表示態様の一例を示した図である。
【発明を実施するための形態】
【００１９】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００２０】
＜関連技術＞
本実施の形態の画像処理装置および画像処理方法について理解を深めるために、まず、関連技術およびその課題について概略する。
【００２１】
図１は、本発明の関連技術およびその課題について説明するための図である。図１に示すような、検出対象のワーク２を含んだ画像をモデル画像３０として登録するとともに、モデル画像３０に含まれる検出対象物に対して、検出点２０が設定されているとする。検出点２０は、たとえば、ロボット３００（図２参照）のロボットアームを作用あるいは移動させるべき検出対象物上の点などである。
【００２２】
モデル登録時には、図１に示すように、各入力画像において特定したい１つまたは複数の検出点２０（図中の「×」印）をユーザが指定する。すなわち、ユーザは、撮像される検出対象物において位置を知りたい検出点を１つまたは複数指定する。
【００２３】
このモデル登録時において、関連技術に従う画像処理装置は、ワーク２のモデル画像から特徴量を抽出するとともに、顕著な特徴量（図１に示す例では、エッジ）を示す特徴部分をコントロール点２２として決定し、コントロール点２２を登録する。コントロール点２２の各々については、位置を示す情報（すなわち、座標値）と、対応する特徴量とが関連付けて格納される。一般的に、複数のコントロール点２２が登録される。コントロール点２２に対応する特徴量は、コントロール点２２の近傍にある１または複数の特徴量を含み得る。
【００２４】
図１に示すように、入力画像３２に含まれる検出対象物の形状は、予め登録されたモデル画像に含まれる検出対象物の形状とは異なっており、いわば変形している状態であるとする。
【００２５】
関連技術に従う画像処理技術は、モデル画像３０におけるコントロール点２２の各々について、対応する入力画像３２上の特徴点２４を探索する。これにより、当該画像処理技術は、モデル画像３０上のコントロール点２２と、入力画像３２上の特徴点２４との対応関係を決定する。そして、当該画像処理技術は、この対応関係を利用して、任意に設定された検出点２０に対応する検出点２１を補間により推定する。したがって、形状が異なる検出対象物がコンベア１０を流れていたとしても、ロボット３００のロボットアームは、物体の形状および位置を特定することができ、検出対象物の形状に合わせて動作することができる。
【００２６】
ところで、モデル画像３０上のコントロール点２２に対応する入力画像３２上の特徴点２４を制限無しに探索すると、対応するコントロール点の探索時間が多くかかってしまう。また、入力画像３２上の特徴点２４を制限無しに探索することで、入力画像３２上の対応する特徴点の候補数が多くなるため、入力画像３２上の誤った点を対応する特徴点として決定する可能性が高くなってしまう。これに伴って、ロボット３００のロボットアームは、検出対象物の位置および形状を正確に検出できなくなる。これらの問題を解消するために、本実施の形態に従う画像処理装置１００は、モデル画像に含まれるコントロール点ついて、対応する入力画像上のコントロール点を探索する範囲（以下「探索範囲」とも称す。）にパラメータを設定することにより制限を設けることができる。
【００２７】
なお、上記では、モデル画像に含まれる特徴量を生じる特徴部分として、特徴点（コントロール点２２）を例に挙げて説明を行なったが、特徴部分は、特徴点に限定されない。たとえば、特徴部分は、モデル画像に含まれる特徴点の他に、当該特徴点の集合からなるモデル画像内の特徴的な領域、当該特徴点の集合からなるモデル画像内の特徴的な線などを含む。以下では、モデル画像の特徴部分の一例である特徴点（すなわち、コントロール点）を例に挙げて説明を行なう。
【００２８】
＜第１の実施の形態＞
［Ａ．システムの構成］
本実施の形態の画像処理装置は、各種のアプリケーションへの適用が可能であるが、一例として、ワーク２を撮像して得られる情報に基づいて、ロボットがワーク２に対して何らかの作用を与えるようなアプリケーションについて説明する。以下では、説明の便宜上、主として「位置」（すなわち、１つの座標値）を特定または検出する処理について説明するが、これに限られることなく、「領域」（すなわち、複数の座標値の集合）を特定または検出することが可能である。
【００２９】
図２は、本実施の形態の画像処理装置１００を含むシステム１の構成を示す模式図である。図２を参照して、システム１は、主として、画像処理装置１００と、ロボットコントローラ２００と、ロボット３００とを含む。システム１は、撮像部８を用いてコンベア１０上の一部の領域を撮像するとともに、当該撮像によって得られた画像（以下「入力画像」とも称す。）を処理することで、コンベア１０上を搬送される検出対象物（以下「ワークＷ」とも称す。）の位置を特定し、特定した位置の情報に基づいて、予め定められた位置でワークＷを把持して、コンベア１０外にワークＷを移動させる。
【００３０】
より具体的には、画像処理装置１００は、撮像部８からの入力画像に対して、以下に詳述するような画像処理を実行し、その画像処理の実行結果から得られる位置情報（または、移動指令）をロボットコントローラ２００へ出力する。ロボットコントローラ２００は、画像処理装置１００からの情報に従って、駆動指令を与えることで、ロボット３００を駆動する。典型的には、ロボット３００は、可動軸毎にサーボモータを有しており、ロボットコントローラ２００は、軸毎に計算される移動量に相当する数のパルスを含むパルス信号を出力する。
【００３１】
後述するように、ロボット３００がワークＷを把持すべき位置については、予め登録されているものとする。より具体的には、画像処理装置１００では、把持対象のワークＷの形状の情報に加えて、ワークＷに対して何らかの作用を与えるべき位置が予め登録されている。画像処理装置１００は、ワークＷがモデル情報として登録された形状とは異なる形状に変化している場合であっても、ワークＷの把持すべき位置を特定できる。
【００３２】
図２に示すような、ワークＷを把持するシステムの他、ワークに対する操作や加工を行なうようなシステムにも応用可能である。たとえば、ワークに関して、切断位置、穴あけ位置、研磨位置、印刷位置、塗装位置などを予め登録しておけば、画像処理装置１００は、登録した形状とは異なる形状を有するワークに対しても、当該登録された位置に対応する位置を特定し、処理を行なうことができる。
【００３３】
［Ｂ．概要］
図３を参照して、本実施の形態に従う画像処理装置１００の概要について説明する。図３は、モデル画像に設定された探索範囲を説明するための図である。
【００３４】
ユーザは、探索範囲の大きさを示すパラメータ（以下「範囲パラメータ」とも称す。）を設定することで、モデル画像３０Ａのコントロール点について、対応する入力画像３２上の特徴点の探索する範囲（すなわち、探索範囲）に制限を設けることができる。一例として、図３（Ａ）には、モデル画像３０Ａに含まれるコントロール点２２ついて探索範囲３４Ａを設定した様子が示されている。ユーザは、探索範囲を設定することで、ワーク２の変形をどの程度まで許容するのかを設定することができる。すなわち、画像処理装置１００は、設定された探索範囲に応じて、登録されたワークに対して許容する変形度合いを変える。
【００３５】
また、図３に示されるように、画像処理装置１００は、探索範囲の設定時において、探索範囲３４Ａをモデル画像３０Ａに重ねて表示する。すなわち、ユーザは、モデル画像に重ねて表示された探索範囲を確認しながら範囲パラメータの設定を行なうことができる。これにより、ユーザは、登録されているワーク２の変形をどの程度まで許容するのかを直感的に理解することができる。
【００３６】
画像処理装置１００は、入力画像３２を得ると、設定された探索範囲３４Ａの範囲内で、コントロール点２２の各々について対応する入力画像３２上の特徴点を探索する。その探索結果が、入力画像３２上に示されている。このとき、探索範囲が正しく設定されていない場合には、入力画像３２の画像領域３６Ａに示されるように、対応する特徴点が誤って検出される場合がある。
【００３７】
このような場合、ユーザは、必要に応じて探索範囲の設定をやり直し、正しい探索範囲を設定することができる。ユーザは、範囲パラメータを再設定することにより、画像処理装置１００は、図３（Ｂ）のモデル画像３０Ｂに示されるように、設定された範囲パラメータに応じて探索範囲の表示の大きさを変える。これにより、入力画像３２の画像領域３６Ｂに示されるように、画像処理装置１００は、対応する特徴点を正確に検出することが可能になる。
【００３８】
このように、画像処理装置１００は、範囲パラメータに合わせて探索範囲の表示サイズを変えるので、ユーザは、範囲パラメータが、どの程度の影響を可変形状検出処理に与えるのかを直感的に理解することが可能になる。
【００３９】
［Ｃ．画像処理装置１００のハードウェア構成］
図４は、本実施の形態の画像処理装置１００のハードウェア構成を示す模式図である。図４を参照して、画像処理装置１００は、典型的には、汎用的なコンピュータアーキテクチャに従う構造を有しており、予めインストールされたプログラムをプロセッサが実行することで、後述するような各種の画像処理を実現する。
【００４０】
より具体的には、画像処理装置１００は、表示部１０２と、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro-Processing  Unit）などのプロセッサ１１０と、主メモリ１１２と、ハードディスク１１４と、カメラインターフェイス１２０と、ロボットインターフェイス１２２と、ネットワークインターフェイス１２４と、メモリカードインターフェイス１２６とを含む。これらの各部は、内部バス１０４を介して互いにデータ通信可能に接続される。
【００４１】
プロセッサ１１０は、ハードディスク１１４に格納された画像処理プログラム１１６を読み出して、主メモリ１１２に展開して実行することで、本実施の形態の画像処理を実現する。表示部１０２には、画像処理の実行に伴う各種情報が表示される。また、画像処理の実行結果の一部または全部は、ロボットインターフェイス１２２を通じて、ロボットコントローラ２００へ出力されてもよい。
【００４２】
画像処理プログラム１１６は、たとえば、メモリカード１０６などに格納された状態で流通する。この場合、メモリカードインターフェイス１２６を通じてメモリカード１０６に格納された画像処理プログラム１１６が読み出されて、ハードディスク１１４へインストールされる。あるいは、画像処理プログラム１１６は、ネットワークインターフェイス１２４を通じて、外部サーバから配信されるように構成してもよい。
【００４３】
汎用的なコンピュータアーキテクチャに従う構造を有する画像処理装置１００を利用する場合には、コンピュータの基本的な機能を提供するためのＯＳ（Operating  System）がインストールされていてもよい。この場合には、画像処理プログラム１１６は、ＯＳの一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の順序および／またはタイミングで呼出して処理を実行するものであってもよい。すなわち、本実施の形態の画像処理に必要なモジュールのすべてが画像処理プログラム１１６に含まれていなくともよく、必要なモジュールの一部がＯＳから提供されるような形態であってもよい。さらに、本実施の形態の画像処理プログラム１１６は、他のプログラムの一部に組み込まれて提供されるものであってもよい。
【００４４】
カメラインターフェイス１２０は、撮像部８による撮像によって得られる入力画像を受付ける。撮像部８は、典型的には、レンズなどの光学系に加えて、ＣＣＤ（Coupled  Charged  Device）やＣＭＯＳ（Complementary  Metal  Oxide  Semiconductor）センサといった撮像素子を含んで構成される。図２には、画像処理装置１００とは別に撮像部８が設けられ、撮像部８から画像処理の対象となる入力画像が提供される構成例を示すが、この構成に限られるものではない。たとえば、画像処理装置１００と撮像部８とを一体的に構成し、撮像によって生成される入力画像に対して直接的に画像処理を実行するようにしてもよい。あるいは、各種の記憶媒体または通信媒体を介して、画像処理の対象となる入力画像を画像処理装置１００へ与えるようにしてもよい。
【００４５】
代替的に、画像処理プログラム１１６の実行により提供される機能の一部または全部を専用のハードウェア回路として実装してもよい。
【００４６】
［Ｄ．画像処理装置１００の機能構成］
図５は、本実施の形態の画像処理装置１００の機能構成を示す模式図である。図５に示す各モジュールは、典型的には、プロセッサ１１０が画像処理プログラム１１６（いずれも図５）を実行することで実現される。
【００４７】
図５を参照して、画像処理装置１００は、その機能構成として、探索範囲受付モジュール１５０と、探索範囲決定モジュール１５２と、表示モジュール１５４と、対応関係決定モジュール１５６とを含む。但し、対応関係決定モジュール１５６については、オプショナルであり、必要に応じて設けられる。
【００４８】
探索範囲受付モジュール１５０は、モデル画像の特徴量に対応する特徴量を入力画像内で探索する範囲の大きさを示す設定値（すなわち、範囲パラメータ）を受け付ける。範囲パラメータの設定方法についての詳細は後述する。探索範囲受付モジュール１５０は、受け付けた範囲パラメータを探索範囲決定モジュール１５２に出力する。
【００４９】
探索範囲決定モジュール１５２は、ユーザによって設定された範囲パラメータを用いて、モデル画像の特徴量に対応する特徴量を入力画像内で探索する範囲（すなわち、探索範囲）を決定する。典型的には、モデル画像のコントロール点は、モデル画像のエッジ上の点である。エッジ抽出は、たとえば、モデル画像を微分して画素値の勾配を求めることで実現される。典型的には、探索範囲決定モジュール１５２は、微分フィルタ、プリューウィットフィルタ、ソーベルフィルタ、ラプラシアンフィルタ、ＬＯＧフィルタ、その他のエッジを抽出することが可能なフィルタなどをモデル画像に畳み込むことでエッジ抽出を行なう。探索範囲決定モジュール１５２は、抽出したエッジ部分の一部または全部をコントロール点とする。探索範囲決定モジュール１５２の探索範囲の決定方法についての詳細は後述する。
【００５０】
表示モジュール１５４は、探索範囲決定モジュール１５２によって決定された探索範囲をモデル画像に重ねて表示する。典型的には、モデル画像に重ねて表示される探索範囲は、ユーザが設定する範囲パラメータに連動して表示される。表示モジュール１５４の探索範囲の表示方法について詳細は後述する。
【００５１】
対応関係決定モジュール１５６は、モデル画像の各特徴点に設定された探索範囲に基づいて、モデル画像の各特徴点と、入力画像との各特徴点との対応関係を決定する。より具体的には、対応関係決定モジュール１５６は、モデル画像の各特徴点について、当該特徴点に対して決定された探索範囲内で、当該特徴点に対応する入力画像上の特徴部分を決定する。対応関係決定モジュール１５６は、決定した対応関係に基づいて、モデル画像を変形し、変形画像を生成する。変形画像の生成方法についての詳細は後述する。対応関係決定モジュール１５６は、生成した変形画像を表示モジュール１５４に出力する。
【００５２】
［Ｅ．探索範囲の設定画面］
図６〜図９を参照して、探索範囲の設定方法について説明する。図６〜図９には、探索範囲を設定するための設定画面４００Ａが示されている。図６は、探索範囲の表示態様の一例について説明するための図である。図７は、探索範囲の表示態様の他の例について説明するための図である。図８は、探索範囲の表示が範囲パラメータに連動して表示されている様子を示した図である。図９は、ユーザが探索範囲を部分的に調整している様子を示した図である。
【００５３】
画像処理装置１００は、ユーザがモデル画像に対して設定した探索範囲を確認できるように、モデル画像に重ねて、設定した探索範囲を表示する。ユーザが探索範囲を視認できれば、モデル画像に含まれるワークに対して、どれくらいの変形を許容するのかを一見して確認できるようになる。
【００５４】
図６を参照して、モデル画像３０の探索範囲３４を表示するための処理手順について説明する。ユーザは、モデル登録タグ４０２（図６の斜線部分）を選択した場合、モデル画像３０に対する探索範囲３４を登録または調整することができる。
【００５５】
探索範囲決定モジュール１５２は、モデル画像３０を受け付けると、モデル画像３０内のコントロール点２２を決定するとともに、現在設定されている範囲パラメータの値に応じて各コントロール点２２について探索範囲３４を設定する。表示モジュール１５４は、決定された探索範囲３４をモデル画像３０に重ねて表示する。探索範囲３４の表示態様としては、たとえば、設定画面４００Ａの表示領域４２０に表示されるように、コントロール点の各点に対して円状に表示する。
【００５６】
なお、コントロール点が多数検出された場合には、探索範囲３４が重複すると見にくくなるため、図７に示されるように、表示モジュール１５４は、探索範囲３４が重複する部分については表示しなくともよい。すなわち、表示モジュール１５４は、重複する探索範囲３４については、これらの探索範囲３４の和集合の外形のみを表示する。なお、表示モジュール１５４は、全ての探索範囲の最外輪郭のみを表示する。
【００５７】
また、ユーザは、探索範囲受付モジュール１５０としてのスライドバー４１１を操作することで、範囲パラメータを設定することができる。探索範囲決定モジュール１５２は、設定された範囲パラメータに応じて、モデル画像３０のコントロール点２２に対する探索範囲の大きさを決定する。たとえば、設定された範囲パラメータに応じて、探索範囲３４の半径または直径が決定される。典型的には、探索範囲決定モジュール１５２は、受け付けた範囲パラメータの値が大きいほど探索範囲３４のサイズが大きくなるように決定する。また、探索範囲決定モジュール１５２は、受け付けた範囲パラメータの値が小さいほど探索範囲３４のサイズが小さくなるように決定する。
【００５８】
一例として、ユーザがマウスなどで図８（Ａ）に示されるスライドバー４１１を操作して、図８（Ｂ）に示されるように、範囲パラメータの値が大きくなるように設定された場合には、図８（Ａ）に示される探索範囲３４Ａのサイズが、図８（Ｂ）に示される探索範囲３４Ｂのように大きくなるように表示される。このように、設定された範囲パラメータ値に連動して、探索範囲を表示することにより、ユーザは、範囲パラメータと変形許容度合いとの関係を容易に理解することができる。これにより、画像処理装置１００の操作性を高めることができ、さらには、範囲パラメータの設定時間を大幅に短縮することが可能になる。
【００５９】
範囲パラメータの設定後、ユーザが、マウス操作などで登録ボタン４１３を選択することで、画像処理装置１００は、モデル画像と、探索範囲とを対応付けてハードディスク１１４などの記録媒体に記憶する。なお、画像処理装置１００は、コントロール点ごとに探索範囲を対応付けて記憶してもよいし、コントロール点の探索範囲のそれぞれの和集合を記憶してもよい。探索範囲は、たとえば、モデル画像上の座標値の集合として登録される。
【００６０】
なお、表示モジュール１５４は、必ずしもスライドバー４１１に探索範囲の表示を連動させる必要は無く、範囲パラメータの変化に応じて変化させればよい。たとえば、表示モジュール１５４は、表示ボタン（図示しない）がユーザによって選択されたタイミングで探索範囲の表示を変化させてもよい。
【００６１】
また、画像処理装置１００は、モデル画像の特徴量に対応する特徴量を入力画像内で探索する範囲を部分的に調整できるように構成されてもよい。より具体的には、図９に示されるように、ユーザは、設定画面４００Ａの表示領域４２０に表示された探索範囲の一部を選択して、選択した部分を移動することにより探索範囲を調整する。なお、探索範囲の調整方法は、図９に示される方法に限定されるわけではなく、部分的に探索範囲を調整できる方法であればいずれであってもよい。たとえば、画像処理装置１００は、表示した探索範囲に対して、対応する入力画像の特徴点の探索範囲から除外する部分を指定することができるように構成されてもよい。
【００６２】
［Ｆ．探索範囲のテスト画面］
図１０および図１１を参照して、探索範囲が正しく設定されているか否かを確かめるためのテスト方法について説明する。図１０および図１１には、設定された探索範囲をテストするためのテスト画面４００Ｂが示されている。図１０は、探索範囲がテスト画像に重ねて表示されている様子を示している図である。図１１は、モデル画像に対して変形処理を施した画像が表示されている様子を示している図である。
【００６３】
（テスト画面の表示例１）
画像処理装置１００は、ユーザがモデル画像に対して設定した探索範囲が正しく設定されている否かをテストするために、被検査対象のワークを含んだテスト画像に重ねて探索範囲を表示する。テスト画像に含まれる被検査対象物が、設定した探索範囲に包含されている場合には、ユーザは、探索範囲が正しく設定されていると判断できる。一方、テスト画像に含まれる被検査対象物が、設定した探索範囲に包含されていない場合には、ユーザは、探索範囲が正しく設定されていないと判断できる。このように、探索範囲をテスト画像に重ねて表示することで、ユーザは、探索範囲の設定の適否を容易に確認できる。
【００６４】
一例として、図１０には、モデル画像３０に対して設定された探索範囲３４をテスト画像３６に重ねて表示している様子が示されている。図１０に示される例では、被検査対象のワーク３３の一部（点線３５）が探索範囲３４に包含されていないので、画像処理装置１００は、モデル画像に含まれワーク２を被検査対象のワーク３３に合わせて正確に変形できないことになる。これを確認したユーザは、点線３５の部分が探索範囲３４に包含されるようにスライドバー４１１を調整する。このように、ユーザが検出したい被検査対象を探索範囲に重ねて表示することで、ユーザは、探索範囲についてのパラメータを容易に調整することができる。
【００６５】
なお、探索範囲３４とテスト画像３６との重ね合わる方法は様々な方法が考えられる。たとえば、画像処理装置１００は、表示されたテスト画像３６および探索範囲３４のいずれか一方の表示をユーザ操作により動かせるように構成されてもよい。ユーザは、テスト画像３６および探索範囲３４のいずれか一方の表示を動かすことで、探索範囲３４にワーク２が含まれるか否かを確認することができる。また、画像処理装置１００は、テスト画像３６のエッジを抽出し、探索範囲３４に抽出したエッジが含まれるように自動的に位置合わせしてもよい。
【００６６】
（テスト画面の表示例２）
エッジが多く含まれるような画像が入力された場合は、探索範囲に含まれる入力画像の特徴点の候補が多くなるため、コントロールポイントの対応する特徴点を誤って検出する可能性が高くなる。すなわち、探索範囲が広く設定されすぎた場合には、モデル画像がユーザの意図するようには変形されない可能性もある。このため、ユーザが意図するようにモデル画像が変形されているかを確認できるように、画像処理装置１００は、設定した探索範囲に対してモデル画像を変形した画像（以下「変形画像」とも称す。）を、モデル画像およびテスト画像の少なくとも一方と比較できるように表示する。これにより、ユーザは、探索範囲が正確に設定されているのかを容易に確認することが可能になる。
【００６７】
一例として、図１１には、設定された探索範囲３４を基にモデル画像３０を変形した変形画像３８が表示されている。このように、モデル画像３０またはテスト画像３６と、変形画像３８が並べて表示されることで、ユーザは、モデル画像３０またはテスト画像３６と、変形画像３８とを比較できるので、探索範囲が正しく設定されているのかを直観的に理解することが可能になる。また、図１１に示されるように、変形後のワークの形状をモデル画像３０に重ねて表示してもよい。これにより、ユーザは、登録されているワークの形状が相対的にどの程度変化するのかを直感的に理解できるようになる。
【００６８】
［Ｇ．変形画像の生成方法］
モデル画像を変形して変形画像を生成する方法については様々な手法が考えられる。以下では、そのうちの一例について説明する。
【００６９】
対応関係決定モジュール１５６は、モデルとして予め登録した検出対象物と、入力画像に被写体として含まれる検出対象物との間の対応関係を決定し、この対応関係を利用して、モデル画像３０を変形する。より具体的には、対応関係決定モジュール１５６は、モデル画像３０から特徴量を抽出するとともに、顕著な特徴量（たとえば、エッジ）を示す特徴点をコントロール点２２として決定し登録する。コントロール点２２の各々については、位置を示す情報（すなわち、座標値）と、対応する特徴量（コントロール点の近傍にある１または複数の特徴量を含み得る）とが関連付けて格納される。一般的に、複数のコントロール点２２が登録される。
【００７０】
このように、対応関係決定モジュール１５６は、被写体として検出対象物を含むモデル画像３０から複数の特徴点を抽出する。そして、対応関係決定モジュール１５６は、検出対象物の複数の特徴点であるコントロール点２２を示す情報を含むモデル情報を保持する。コントロール点２２は、特徴点そのものの座標値を用いて指定してもよいし、ある特徴点からの相対位置を用いて指定してもよい。
【００７１】
続いて、撮像部８による撮像によって、入力画像としてテスト画像３６が得られると、対応関係決定モジュール１５６は、モデル画像３０の各特徴点について、当該特徴点に対して決定された探索範囲内で、当該特徴点に対応するテスト画像３６上の特徴点を決定する。すなわち、対応関係決定モジュール１５６は、テスト画像３６に含まれる複数の特徴点を抽出するとともに、抽出された複数の特徴点とモデル情報の複数の特徴点との間の対応関係を決定する。
【００７２】
最終的に、対応関係決定モジュール１５６は、決定された対応関係を基に、モデル画像と入力画像との間の補間関数を算出し、算出した補間関数を基に、モデル画像３０を変形する。すなわち、画像処理装置１００は、モデル情報の各特徴点と、テスト画像３６から抽出された各特徴点とをそれぞれ一対一で対応付けるとともに、互いに対応付けられた、モデル情報の複数の特徴点からなる集合と、テスト画像３６から抽出された複数の特徴点からなる集合との間で、対応関係を示す補間関数を決定する。
【００７３】
たとえば、対応関係決定モジュール１５６は、モデル画像上の任意の座標値（ｘ，ｙ）と、テスト画像３６上の任意の座標値（ｘ’，ｙ’）との関係を定義する、補間関数Ｆ（ｘ，ｙ）を決定する。このような補間関数の決定手法としては、薄板スプライン補間などを利用できる。これにより、対応関係決定モジュール１５６は、モデル画像の各画素（ｘ，ｙ）について、補間関数Ｆ（ｘ，ｙ）を用いて対応点（ｘ’，ｙ’）を算出し、変形画像を生成する。他にも、モデル画像の変形方法としては、アフィン変換、射影変換などが挙げられる。
【００７４】
［Ｈ．画像処理装置１００の処理手順］
図１２および図１３を参照して、画像処理装置１００の制御構造について説明する。図１２および図１３に示す各ステップは、典型的には、プロセッサ１１０が画像処理プログラム１１６（いずれも図４）を実行することで実現される。他の局面において、処理の一部又は全部が、回路素子その他のハードウェアによって実行されてもよい。
【００７５】
（Ｈ１．設定処理フロー）
まず、図１２を参照しながら、モデル画像に対する探索範囲を設定するための処理手順について説明する。図１２は、モデル画像に対する探索範囲のフローチャートを示す図である。
【００７６】
ステップＳ５１０において、プロセッサ１１０は、登録対象のワークを被写体として含むモデル画像を取得する。典型的には、モデル画像は、撮像部８から得られる。なお、モデル画像は、他の装置で撮影して得られた画像を記憶した各種記録媒体から取得されてもよい。ステップＳ５１２において、プロセッサ１１０は、探索範囲受付モジュール１５０として、ユーザによって設定された探索範囲の大きさを示すパラメータ（設定値）を受け付ける。
【００７７】
ステップＳ５１４において、プロセッサ１１０は、探索範囲決定モジュール１５２として、モデル画像に含まれる複数の特徴点のそれぞれについて、入力画像中で対応する特徴点の探索の対象となる探索範囲をそれぞれ決定する。典型的には、プロセッサ１１０は、設定された範囲パラメータ値が大きいほど探索範囲を大きく設定し、範囲パラメータ値が小さいほど探索範囲を小さく設定する。
【００７８】
ステップＳ５１６において、プロセッサ１１０は、表示モジュール１５４として、モデル画像に重ねて探索範囲を表示する。このとき、プロセッサ１１０は、モデル画像に含まれる複数の特徴点の一部についての探索範囲を表示してもよいし、全部についての探索範囲を表示してもよい。
【００７９】
ステップＳ５２０において、プロセッサ１１０は、ユーザによって範囲パラメータが変更されたか否かを判断する。プロセッサ１１０は、範囲パラメータの変更を検出した場合には（ステップＳ５２０においてＹＥＳ）、制御をステップＳ５１２に戻す。そうでない場合には（ステップＳ５２０においてＮＯ）、プロセッサ１１０は、制御をステップＳ５３０に切り替える。
【００８０】
ステップＳ５３０において、プロセッサ１１０は、ユーザによるモデル画像を登録する操作を検出したか否かを判断する。典型的には、プロセッサ１１０は、設定画面４００Ａの登録ボタン４１３（図６参照）またはテスト画面４００Ｂの登録ボタン４１３（図１０参照）をマウス操作などでユーザによって選択された場合に、モデル画像の登録操作を検出したと判断する。プロセッサ１１０は、モデル画像を登録する操作を検出した場合には（ステップＳ５３０においてＹＥＳ）、制御をステップＳ５３２に切り替える。そうでない場合には（ステップＳ５３０においてＮＯ）、プロセッサ１１０は、制御をステップＳ５２０に戻す。ステップＳ５３２において、プロセッサ１１０は、モデル画像と探索範囲とを対応付けて、ハードディスク１１４などの記録媒体に記憶する。
【００８１】
（Ｈ２．テスト処理フロー）
次に、図１３を参照しながら、探索範囲が正しく設定されているか否かをテストするテスト処理の手順について説明する。図１３は、設定した探索範囲の適否を確かめるテスト処理のフローチャートを示す図である。なお、図１３に示されるステップＳ６１０およびステップＳ６１２以外の処理については、図１２に示され各ステップと同じであるので説明を繰り返さない。
【００８２】
ステップＳ６１０において、プロセッサ１１０は、被検査対象のワークを撮像して得られたテスト画像を入力画像として取得する。典型的には、テスト画像は、撮像部８から取得される。なお、テスト画像は、他の装置で撮影して得られた画像を記憶した各種記録媒体から取得されてもよい。
【００８３】
ステップＳ６１２において、プロセッサ１１０は、表示モジュール１５４として、テスト画像に重ねて探索範囲を表示する。検査対象物のワークが、表示された探索範囲内に包含されている場合には、ユーザは、探索範囲が正しく設定されていると判断できる。また、検査対象物のワークが、探索範囲内に包含されていない場合には、ユーザは、探索範囲が正しく設定されていないと判断できる。
【００８４】
なお、上記では、被検査対象のワークを含む入力画像をテスト画像として用いたが、検出したくない検査対象のワークを含んだ画像をテスト画像として用いてもよい。この場合、プロセッサ１１０は、表示モジュール１５４として、検出したくないワークを含んだテスト画像をモデル画像に重ねて表示する。この場合、検出したくないワークが探索範囲内に含まれていないときには、ユーザは、探索範囲が正しく設定されていると判断できる。
【００８５】
［Ｉ．画像処理装置１００の変形例］
図１４を参照して、画像処理装置１００の変形例について説明する。図１４は、変形例に従う画像処理装置１００の設定画面４００Ａにおける表示態様の一例を示す図である。
【００８６】
上記では、特徴部分の一例として、特徴点（コントロール点２２）を例に挙げて説明を行なってきたが、特徴部分は、特徴点に限定されるわけではない。たとえば、特徴部分は、モデル画像に含まれる特徴点の他に、当該特徴点の集合からなるモデル画像内の特徴的な領域、当該特徴点の集合からなるモデル画像内の特徴的な線などを含む。
【００８７】
画像処理装置１００は、モデル画像３０内の特徴的な領域（特徴領域２７）に対して、探索範囲３４を決定する。すなわち、画像処理装置は、個々のコントロール点に対して探索範囲を決定するだけではなく、特徴領域２７のような特徴的な領域、特徴的な線に対して、探索範囲を設けてもよい。この場合、画像処理装置１００は、特徴領域２７に対して設定された探索範囲を表示する。
【００８８】
［Ｊ．結論］
以上のようにして、本実施の形態に従う画像処理装置１００は、範囲パラメータに応じた大きさで探索範囲をモデル画像に重ねて表示することで、ユーザは、登録対象のワークに対する変形の許容度合いと、範囲パラメータとの関係を直感的に理解できるようになる。これにより、ユーザは、パラメータ設定に係る時間を大幅に短縮することが可能になる。
【００８９】
＜第２の実施の形態＞
以下では、第２の実施の形態に従う画像処理装置１００Ａの概要について説明する。本実施の形態に従う画像処理装置１００Ａは、各コントロール点に対して許容するエッジの傾きを設定できる点で第１の実施の形態に従う画像処理装置１００と異なる。なお、ハードウェア構成については第１の実施の形態に従う画像処理装置１００と同じであるので説明を繰り返さない。
【００９０】
［Ｋ．概要］
図１５および図１６を参照して、本実施の形態に従う画像処理装置１００Ａについて説明する。図１５は、モデル画像のコントロール点について、探索するエッジ方向に制限を設けるための方法を説明するための図である。図１６は、モデル画像のコントロール点について、探索するエッジ方向に制限を設けるための他の方法を説明するための図である。
【００９１】
モデル画像に含まれるワークと入力画像に含まれるワークとは、ある程度は形状が異なるものの、モデル画像のコントロール点におけるエッジの方向と、当該コントロール点に対応する入力画像上の特徴点におけるエッジの方向とは、基本的には同じような方向を向いていると考えられる。この点に着目して、本実施の形態に従う画像処理装置１００Ａは、モデル画像に含まれる各コントロール点に対して探索する対象となる入力画像中のエッジの傾きに制限を設けるためのパラメータ（以下、「傾きパラメータ」とも称す。）を設定することができる。
【００９２】
一例として、図１５（Ａ）において、コントロール点におけるエッジの方向に対して、変形が許容されるエッジの傾きの範囲（以下「傾き範囲」とも称す。）を入力画像３２Ａに重ねて表示している様子が示されている。画像処理装置１００Ａは、コントロール点２２に設定された探索範囲内に存在する入力画像中の特徴点であり、かつ、当該特徴点におけるエッジの傾きが傾き範囲４０Ａ内に含まれる場合には、当該特徴点をコントロール点２２の対応点としてみなす。
【００９３】
たとえば、入力画像３２Ａの特徴点の一部（たとえば、特徴点２４）に、エッジ方向に対して垂直な方向を向いた矢印４２を表示する。ユーザは、表示された矢印４２が傾き範囲４０Ａには含まれないので、特徴点２４がコントロール点２２の対応点になり得ないことを確認することができる。すなわち、この場合には、画像処理装置１００Ａは、コントロール点２２に対応する入力画像の特徴点を、特徴点２４ではない誤った点を対応する特徴点として決定してしまう。
【００９４】
このよう場合、ユーザは、入力画像に重ねて表示されている傾き範囲を確認しながら、傾き範囲の設定を行なうことができる。たとえば、図１５（Ｂ）の入力画像３２Ｂに示されるように、ユーザは、傾き範囲の大きさを設定するためのパラメータ（すなわち、傾きパラメータ）を大きくして、矢印４２が傾き範囲４０Ｂに含まれるように傾きパラメータを調整する。
【００９５】
このように、画像処理装置１００は、傾きパラメータに合わせて傾き範囲の表示を変えることで、ユーザは、傾き範囲に対する設定パラメータが、可変形状検出処理に対して、どの程度影響を与えるのかを直感的に理解することが可能になる。また、傾きパラメータを正確に設定することで、誤った点を対応点としてみなすことがなくなるため、登録されたワークとは異なった形状のワークであっても形状および位置を正確に検出するこが可能になる。
【００９６】
なお、上記では、エッジ方向に対して垂直な方向を基準として傾き範囲を表示する例について述べたが、図１６に示されるように、画像処理装置１００Ａは、エッジ方向に対して平行な方向を基準として傾き範囲を表示してもよい。この場合、画像処理装置１００Ａは、コントロール点２２の周囲を入力画像中で探索して、傾き範囲４０Ｃに含まれるエッジ方向を有する特徴点を探索する。
【００９７】
［Ｌ．画像処理装置１００Ａの機能構成］
図１７は、本実施の形態の画像処理装置１００Ａの機能構成を示す模式図である。図１７に示す各モジュールは、典型的には、プロセッサ１１０が画像処理プログラム１１６（いずれも図１７）を実行することで実現される。
【００９８】
図１７を参照して、画像処理装置１００Ａは、その機能構成として、探索範囲受付モジュール１５０と、探索範囲決定モジュール１５２と、表示モジュール１５４と、対応関係決定モジュール１５６と、方向受付モジュール１６０と、方向決定モジュール１６２とを含む。但し、対応関係決定モジュール１５６については、オプショナルであり、必要に応じて設けられる。なお、探索範囲受付モジュール１５０と、探索範囲決定モジュール１５２とについては上述の通りであるので説明を繰り返さない。
【００９９】
方向受付モジュール１６０は、モデル画像の特徴点について、入力画像中で探索の対象となるエッジの傾きの大きさを示すパラメータ（すなわち、傾きパラメータ）を受け付ける。傾きパラメータの設定方法についての詳細は後述する。方向受付モジュール１６０は、受け付けた傾きパラメータを方向決定モジュール１６２に出力する。
【０１００】
方向決定モジュール１６２は、設定された傾きパラメータを用いて、モデル画像の特徴点におけるエッジの傾きを基準とした、入力画像中で探索の対象となるエッジの相対的な傾きの範囲（すなわち、傾き範囲）を決定する。典型的には、方向決定モジュール１６２は、設定された傾きパラメータの値が大きいほど傾き範囲を大きく設定し、設定された傾きパラメータの値が小さいほど傾き範囲を小さく設定する。
【０１０１】
表示モジュール１５４は、方向決定モジュール１６２によって決定された探索の対象となるエッジの相対的な傾きの範囲（すなわち、傾き範囲）をモデル画像に重ねて表示する。典型的には、表示モジュール１５４は、ユーザが設定する傾きパラメータに連動させて傾き範囲を表示する。表示モジュール１５４の傾き範囲の表示方法についての詳細は後述する。
【０１０２】
対応関係決定モジュール１５６は、設定された探索範囲および傾き範囲を用いて、モデル画像の各特徴点と、入力画像との各特徴点との対応関係を決定する。より具体的には、対応関係決定モジュール１５６は、モデル画像の複数の特徴点の各々について、当該特徴点に対して決定された探索範囲内で対応する入力画像の特徴点を探索し、かつ、傾き範囲に含まれるエッジ方向を有する入力画像の特徴点を探索する。対応関係決定モジュール１５６は、決定した対応関係に基づいて、モデル画像を変形し、変形画像を生成する。対応関係決定モジュール１５６は、生成した変形画像を表示モジュール１５４に出力する。
【０１０３】
［Ｍ．傾き範囲のテスト画面］
図１８を参照して、傾き範囲が正しく設定されているか否かを確かめるためのテスト方法について説明する。図１８には、設定された傾き範囲をテストするためのテスト画面４００Ｃが示されている。図１８は、傾き範囲がテスト画像に重ねて表示されている様子を示している図である。
【０１０４】
画像処理装置１００Ａは、ユーザがモデル画像に対して設定した傾き範囲を確認できるように、テスト画像（入力画像）に重ねて、設定した傾き範囲を表示する。ユーザが傾き範囲を視認できれば、モデル画像に含まれるワークに対して、どれくらいの変形を許容するのかを一見して確認できるようになる。
【０１０５】
図１８（Ａ）を参照して、テスト画像３６に重ねて傾き範囲４０Ａを調整するための処理手順について説明する。方向決定モジュール１６２は、モデル画像３０を受け付けると、モデル画像３０内のコントロール点２２を決定するとともに、決定した各コントロール点２２に傾き範囲４０Ａを設定する。表示モジュール１５４は、決定された傾き範囲４０Ａをモデル画像３０に重ねて表示する。傾き範囲４０Ａの表示態様としては、たとえば、テスト画面４００Ｃの表示領域４２０に表示されるように、コントロール点の各点に対して扇形で表示する。なお、コントロール点が多数検出された場合には、傾き範囲が重複すると見にくくなるため、表示モジュール１５４は、検出されたコントロール点の一部のみの傾き範囲を表示してもよい。
【０１０６】
ユーザは、方向受付モジュール１６０としてのスライドバー４１５を操作することで、傾き範囲の大きさを決定するためのパラメータ（すなわち、傾きパラメータ）を設定することができる。方向決定モジュール１６２は、設定された傾きパラメータに応じて、モデル画像３０のコントロール点２２に対して表示する傾き範囲の大きさを決定する。たとえば、設定された傾きパラメータに応じて、扇形の傾き範囲の中心角が決定される。典型的には、方向決定モジュール１６２は、受け付けた傾きパラメータの値が大きいほど傾き範囲４０Ａの中心角を大きく設定する。また、探索範囲決定モジュール１５２は、受け付けた傾きパラメータの値が小さいほど傾き範囲４０Ａの中心角を小さく設定する。
【０１０７】
一例として、ユーザがマウスなどで図１８（Ａ）に示されるスライドバー４１５を操作して、図１８（Ｂ）に示されるように、傾きパラメータの値が大きくなるように設定された場合には、図１８（Ａ）に示される傾き範囲４０Ａが、図１８（Ｂ）に示される傾き範囲４０Ｂのように中心角が大きくなるように表示される。このように、設定された傾きパラメータ値に連動して、傾き範囲を表示することにより、ユーザは、傾きパラメータとエッジ方向の変動度合いとの関係を容易に理解することができる。これにより、画像処理装置１００Ａの操作性を高めることができ、さらには、傾きパラメータの設定時間を大幅に短縮することが可能になる。
【０１０８】
傾きパラメータの設定後、ユーザは、マウス操作などで登録ボタン４１３を選択することにより、画像処理装置１００は、モデル画像と、傾き範囲とを対応付けてハードディスク１１４などの記録媒体に記憶する。
【０１０９】
なお、画像処理装置１００Ａは、探索範囲と傾き範囲との両方を同時に設定できるように構成されてもよい。すなわち、表示モジュール１５４は、傾き範囲４０Ａの表示を、範囲パラメータと傾きパラメータとに連動させる。このとき、画像処理装置１００Ａは、探索範囲を設定するための範囲パラメータに応じて傾き範囲４０Ａの表示半径を変更し、傾き範囲を設定するための傾きパラメータに応じて傾き範囲４０Ａの中心角度を変更する。
【０１１０】
また、画像処理装置１００Ａは、表示された傾き範囲の一部について調整を受け付けるように構成されてもよい。この場合、ユーザは、表示された傾き範囲の一部を選択し、選択した傾き範囲について傾きパラメータを設定することが可能になる。
【０１１１】
さらに、表示モジュール１５４は、必ずしもスライドバー４１５に傾き範囲の表示を連動させる必要は無く、傾きパラメータの変化に応じて変化させればよい。たとえば、表示モジュール１５４は、表示ボタン（図示しない）がユーザによって選択されたタイミングで傾き範囲の表示を変化させてもよい。
【０１１２】
［Ｎ．設定画面の変形例］
以下では、図１９を参照して、パラメータの設定画面の変形例について説明する。図１９は、パラメータの設定画面の表示態様の一例を示した図である。
【０１１３】
画像処理装置１００Ａは、たとえば、自由変換モードや、射影変換モードなど複数の画像変換モードを有してもよい。自由変換モードは、撮影したモデル画像を２次元空間上で変換するモードである。射影変換モードは、撮影したモデル画像を３次元空間上で変換するモードである。この場合、画像処理装置１００Ａは、変換モードに合わせて、パラメータを設定するための設定画面の表示を変更する。ユーザによって射影変換モードが選択された場合には、図１９に示されるような設定画面４００Ｄが表示される。
【０１１４】
変換モードが射影変換モードである場合には、ユーザは、射影変換に係るパラメータの設定を行なうことができる。また、ユーザは、射影変換に係る各パラメータに対して範囲を設定することができる。画像処理装置１００Ａは、設定されたパラメータの範囲を考慮して、モデル画像を変換する。
【０１１５】
一例として、設定画面４００Ｄの表示領域４４０には、射影変換に係るパラメータを設定するためのユーザインタフェースが示されている。画像処理装置１００Ａは、モデル画像に含まれるコントロールポイントの１つがユーザによって選択されると、カーソル４５を操作して矢印４７を傾き範囲４０内で動かすことができる。画像処理装置１００Ａは、矢印４７の方向に対応する角度（奥行き角度など）を特定し、特定した角度を用いて射影変換に係るパラメータを計算する。画像処理装置１００Ａは、計算したパラメータを用いて、モデル画像を射影変換する。このとき、画像処理装置１００Ａは、ユーザ操作に連動して、変換後の画像を表示する。同時に、画像処理装置１００Ａは、ユーザ操作に連動して、計算した射影変換に係るパラメータの表示を表示領域４６０において変える。
【０１１６】
このように、ユーザ操作に応じて、モデル画像を変形し、パラメータの表示を変えることで、ユーザは、射影変換に係るパラメータの各値がどの程度変形に寄与しているのかを直感的に理解できるようになる。これを参考にして、ユーザは、各パラメータに対して制限範囲を設けることが容易になる。
【０１１７】
［Ｏ．テスト画面の変形例］
以下では、図２０を参照して、テスト画面の変形例について説明する。図２０は、テスト画面の表示態様の一例を示した図である。
【０１１８】
画像処理装置１００Ａは、テスト画像が入力されると、モデル画像に含まる登録対象のワークを、入力画像に含まれる被検査対処のワークに合わせて、モデル画像を変形する。画像処理装置１００Ａは、モデル画像に対する変形処理に用いたパラメータをテスト画面４００Ｅに表示する。
【０１１９】
このように、画像処理装置１００Ａは、変形処理の種類に合わせて、パラメータを表示することで、ユーザは、上述した範囲パラメータ、傾きパラメータの設定の参考にすることができる。また、これらのパラメータだけでなく、たとえば、射影得変換によりモデル画像を変形する場合には、射影変換に係るパラメータをどのように設定すればテスト画像に含まれる被検査対象のワークの形状を検出することができるのかを直感的に理解できるようになる。なお、ユーザは、表示領域４６０に表示されたパラメータを確認して、変形処理に係るパラメータの設定を手動で行なってもよいし、画像処理装置１００Ａは、テスト画像に合わせて出力した変形パラメータを自動で設定してもよい。
【０１２０】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【０１２１】
［Ｐ．結論］
以上のようにして、本実施の形態に従う画像処理装置１００Ａは、傾きパラメータに応じた大きさで探索角度をモデル画像に重ねて表示することで、ユーザは、登録対象のワークに対する変形の許容度合いを直感的に理解できるようになる。これにより、ユーザは、パラメータ設定に係る時間を大幅に短縮することが可能になる。
【符号の説明】
【０１２２】
１  システム、２，３３，Ｗ  ワーク、８  撮像部、１０  コンベア、２０，２１  検出点、２２  コントロール点、２４  特徴点、２７  特徴領域、３０，３０Ａ，３０Ｂ  モデル画像、３２，３２Ａ，３２Ｂ  入力画像、３４，３４Ａ，３４Ｂ  探索範囲、３５  点線、３６  テスト画像、３６Ａ，３６Ｂ  画像領域、３８  変形画像、４０Ａ〜４０Ｃ  傾き範囲、４２，４７  矢印、４５  カーソル、１００，１００Ａ  画像処理装置、１０２  表示部、１０４  内部バス、１０６  メモリカード、１１０  プロセッサ、１１２  主メモリ、１１４  ハードディスク、１１６  画像処理プログラム、１２０  カメラインターフェイス、１２２  ロボットインターフェイス、１２４  ネットワークインターフェイス、１２６  メモリカードインターフェイス、１５０  探索範囲受付モジュール、１５２  探索範囲決定モジュール、１５４  表示モジュール、１５６  対応関係決定モジュール、１６０  方向受付モジュール、１６２  方向決定モジュール、２００  ロボットコントローラ、３００  ロボット、４００Ａ，４００Ｄ  設定画面、４００Ｂ，４００Ｃ，４００Ｅ  テスト画面、４０２  モデル登録タグ、４１１，４１５  スライドバー、４１３  登録ボタン、４２０，４４０，４６０  表示領域。
【図１】
2015176273.tif 000003
【図２】
2015176273.tif 000004
【図３】
2015176273.tif 000005
【図４】
2015176273.tif 000006
【図５】
2015176273.tif 000007
【図６】
2015176273.tif 000008
【図７】
2015176273.tif 000009
【図８】
2015176273.tif 000010
【図９】
2015176273.tif 000011
【図１０】
2015176273.tif 000012
【図１１】
2015176273.tif 000013
【図１２】
2015176273.tif 000014
【図１３】
2015176273.tif 000015
【図１４】
2015176273.tif 000016
【図１５】
2015176273.tif 000017
【図１６】
2015176273.tif 000018
【図１７】
2015176273.tif 000019
【図１８】
2015176273.tif 000020
【図１９】
2015176273.tif 000021
【図２０】
2015176273.tif 000022