(57)【要約】【課題】モデル情報として登録された形状とは異なる形状を生じ得る検出対象物であっても、作用を与えるべき位置を適切に決定できる手法が要望されている。【解決手段】画像処理装置は、検出対象物の複数の特徴点を示す情報を含むモデル情報を保持する記憶手段と、２次元画像または３次元画像である入力画像に含まれる複数の特徴点を抽出するとともに、抽出された複数の特徴点とモデル情報の複数の特徴点との間の対応関係を決定する対応関係決定手段と、対応関係に基づいて、検出対象物に相対して設定された１または複数の第１の位置に対応する、入力画像での１または複数の第２の位置を推定する位置推定手段とを含む。ここで、１または複数の第１の位置は、点、線、または領域に含まれる。【選択図】図４
2015176217.tif 000002
【特許請求の範囲】
【請求項１】
検出対象物の複数の特徴点を示す情報を含むモデル情報を保持する記憶手段と、
２次元画像または３次元画像である入力画像に含まれる複数の特徴点を抽出するとともに、抽出された複数の特徴点と前記モデル情報の複数の特徴点との間の対応関係を決定する対応関係決定手段と、
前記対応関係に基づいて、前記検出対象物に相対して設定された１または複数の第１の位置に対応する、前記入力画像での１または複数の第２の位置を推定する位置推定手段とを備え、前記１または複数の第１の位置は、点、線、または領域に含まれる、画像処理装置。
【請求項２】
被写体として前記検出対象物を含むモデル画像から複数の特徴点を抽出する抽出手段をさらに備える、請求項１に記載の画像処理装置。
【請求項３】
前記対応関係決定手段は、前記モデル情報の各特徴点と、前記入力画像から抽出された各特徴点とをそれぞれ一対一で対応付けるとともに、互いに対応付けられた、前記モデル情報の複数の特徴点からなる集合と、前記入力画像から抽出された複数の特徴点からなる集合との間で、前記対応関係を示す関数を決定する、請求項１または２に記載の画像処理装置。
【請求項４】
前記対応関係決定手段は、一対一で対応付けられた特徴点の集合の全部または一部を用いて前記対応関係を示す関数を決定する、請求項３に記載の画像処理装置。
【請求項５】
前記位置推定手段は、予め設定された第１の位置を示す座標値と前記対応関係を示す関数とから、前記第２の位置の座標値を算出する、請求項４に記載の画像処理装置。
【請求項６】
前記推定した１または複数の第２の位置を前記入力画像に重ねて表示する表示手段をさらに備える、請求項１〜５のいずれか１項に記載の画像処理装置。
【請求項７】
前記位置推定手段は、前記検出対象物に相対して設定された複数の前記第１の位置に対応する、複数の第２の位置をそれぞれ推定し、
前記画像処理装置は、前記複数の第２の位置から外部装置に対する指令を生成する指令生成手段をさらに備える、請求項１〜６のいずれか１項に記載の画像処理装置。
【請求項８】
システムであって、
画像処理装置と、
前記画像処理装置からの出力に従って動作するロボットとを備え、
前記画像処理装置は、
検出対象物の複数の特徴点を示す情報を含むモデル情報を保持する記憶手段と、
２次元画像または３次元画像である入力画像に含まれる複数の特徴点を抽出するとともに、抽出された複数の特徴点と前記モデル情報の複数の特徴点との間の対応関係を決定する対応関係決定手段と、
前記対応関係に基づいて、前記検出対象物に相対して設定された１または複数の第１の位置に対応する、前記入力画像での１または複数の第２の位置を推定する位置推定手段と、
前記推定した第２の位置に基づいて前記ロボットに対する指令を生成する指令生成手段とを備え、前記１または複数の第１の位置は、点、線、または領域に含まれる、システム。
【請求項９】
前記位置推定手段は、前記検出対象物に相対して設定された複数の前記第１の位置に対応する、複数の第２の位置をそれぞれ推定し、
前記指令生成手段は、前記複数の第２の位置から前記指令を生成する、請求項８に記載のシステム。
【請求項１０】
検出対象物の複数の特徴点を示す情報を含むモデル情報を取得するステップと、
２次元画像または３次元画像である入力画像に含まれる複数の特徴点を抽出するとともに、抽出された複数の特徴点と前記モデル情報の複数の特徴点との間の対応関係を決定するステップと、
前記対応関係に基づいて、前記検出対象物に相対して設定された１または複数の第１の位置に対応する、前記入力画像での１または複数の第２の位置を推定するステップとを備え、前記１または複数の第１の位置は、点、線、または領域に含まれる、画像処理方法。
【請求項１１】
コンピュータによって実行される画像処理プログラムであって、前記画像処理プログラムは前記コンピュータに
検出対象物の複数の特徴点を示す情報を含むモデル情報を取得するステップと、
２次元画像または３次元画像である入力画像に含まれる複数の特徴点を抽出するとともに、抽出された複数の特徴点と前記モデル情報の複数の特徴点との間の対応関係を決定するステップと、
前記対応関係に基づいて、前記検出対象物に相対して設定された１または複数の第１の位置に対応する、前記入力画像での１または複数の第２の位置を推定するステップとを実行させ、前記１または複数の第１の位置は、点、線、または領域に含まれる、画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、形状が変化し得る物体に対しても位置認識が可能な画像処理装置、画像処理方法、および画像処理プログラム、ならびに当該画像処理装置を含むシステムに関する。
【背景技術】
【０００２】
ＦＡ（Factory Automation）分野においては、ワークなどの検出対象物を撮像し、その大きさや位置などを計測する処理や、予め登録されたモデル画像に一致する位置または領域を探索する処理などが実行される。
【０００３】
例えば、特開２０１３−１５６０９４号公報（特許文献１）は、検査対象物に個体差がある場合や検査対象物の位置・向きが不定の場合であっても、適応的に検査領域を自動設定し、高精度な検査を可能にする技術を開示する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−１５６０９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述のような画像処理のアプリケーションとして、検出対象物を撮像してその存在する位置または領域を特定するとともに、特定した位置または領域を基準として任意に定められる位置または領域に対して、何らかの作用（例えば、ワークの把持やワークに対する各種の加工）を与えるようなものがある。このようなアプリケーションでは、検出対象物の特徴量および当該検出対象物に対して作用を与えるべき位置または領域の情報をモデル情報として予め登録しておくことになる。
【０００６】
しかしながら、モデル情報として登録された形状とは異なる形状を生じ得るものが検出対象物となる場合もある。例えば、前工程の温度や湿度などの環境条件に依存してその形状が定まるワークや、フレキシブルな材質で構成されており、外力（例えば、重力）の影響を受けて形状が容易に変化するようなワークが想定される。
【０００７】
モデル情報として登録された形状とは異なる形状を生じ得る検出対象物であっても、作用を与えるべき位置を適切に決定できる手法が要望されている。
【課題を解決するための手段】
【０００８】
本発明のある局面に従う画像処理装置は、検出対象物の複数の特徴点を示す情報を含むモデル情報を保持する記憶手段と、２次元画像または３次元画像である入力画像に含まれる複数の特徴点を抽出するとともに、抽出された複数の特徴点とモデル情報の複数の特徴点との間の対応関係を決定する対応関係決定手段と、対応関係に基づいて、検出対象物に相対して設定された１または複数の第１の位置に対応する、入力画像での１または複数の第２の位置を推定する位置推定手段とを含む。ここで、１または複数の第１の位置は、点、線、または領域に含まれる。
【０００９】
好ましくは、対応関係決定手段は、モデル情報の各特徴点と、入力画像から抽出された各特徴点とをそれぞれ一対一で対応付けるとともに、互いに対応付けられた、モデル情報の複数の特徴点からなる集合と、入力画像から抽出された複数の特徴点からなる集合との間で、対応関係を示す関数を決定する。
【００１０】
本発明の別の局面に従うシステムは、画像処理装置と、画像処理装置からの出力に従って動作するロボットとを含む。画像処理装置は、検出対象物の複数の特徴点を示す情報を含むモデル情報を保持する記憶手段と、２次元画像または３次元画像である入力画像に含まれる複数の特徴点を抽出するとともに、抽出された複数の特徴点とモデル情報の複数の特徴点との間の対応関係を決定する対応関係決定手段と、対応関係に基づいて、検出対象物に相対して設定された１または複数の第１の位置に対応する、入力画像での１または複数の第２の位置を推定する位置推定手段と、推定した第２の位置に基づいてロボットに対する指令を生成する指令生成手段とを含む。ここで、１または複数の第１の位置は、点、線、または領域に含まれる。
【００１１】
本発明のさらに別の局面に従う画像処理方法は、検出対象物の複数の特徴点を示す情報を含むモデル情報を取得するステップと、２次元画像または３次元画像である入力画像に含まれる複数の特徴点を抽出するとともに、抽出された複数の特徴点とモデル情報の複数の特徴点との間の対応関係を決定するステップと、対応関係に基づいて、検出対象物に相対して設定された１または複数の第１の位置に対応する、入力画像での１または複数の第２の位置を推定するステップとを含む。ここで、１または複数の第１の位置は、点、線、または領域に含まれる。
【００１２】
本発明のさらに別の局面に従えば、コンピュータによって実行される画像処理プログラムが提供される。画像処理プログラムは、コンピュータに、検出対象物の複数の特徴点を示す情報を含むモデル情報を取得するステップと、２次元画像または３次元画像である入力画像に含まれる複数の特徴点を抽出するとともに、抽出された複数の特徴点とモデル情報の複数の特徴点との間の対応関係を決定するステップと、対応関係に基づいて、検出対象物に相対して設定された１または複数の第１の位置に対応する、入力画像での１または複数の第２の位置を推定するステップとを実行させる。１または複数の第１の位置は、点、線、または領域に含まれる。
【発明の効果】
【００１３】
本発明によれば、モデル情報として登録された形状とは異なる形状を生じ得る検出対象物であっても、作用を与えるべき位置を適切に決定できる。
【図面の簡単な説明】
【００１４】
【図１】本実施の形態の画像処理装置を含むシステムの構成を示す模式図である。
【図２】本発明の従来技術およびその課題について説明するための図である。
【図３】本実施の形態の画像処理装置が処理するモデル画像および入力画像の一例を示す図である。
【図４】図３に示すモデル画像および入力画像について決定された対応関係の一例を示す図である。
【図５】本実施の形態の画像処理装置が提供する対応関係を示す関数の決定に用いた特徴点を示す表示例を示す図である。
【図６】本実施の形態の画像処理装置のハードウェア構成を示す模式図である。
【図７】本実施の形態の画像処理装置の機能構成を示す模式図である。
【図８】本実施の形態の画像処理装置で実行される処理手順を示すフローチャートである。
【図９】本実施の形態の画像処理装置での検出点の推定処理の変形例を説明するための図である。
【図１０】本実施の形態の画像処理装置での検出点の推定処理結果を示す画面例を示す図である。
【発明を実施するための形態】
【００１５】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００１６】
＜Ａ．システムの構成＞
本実施の形態の画像処理装置は、各種のアプリケーションへの適用が可能であるが、一例として、ワークを撮像して得られる情報から、当該ワークが存在する位置、線または領域を特定するとともに、特定した位置、線または領域を基準として任意に定められる位置、線または領域において、ロボットがワークに対して何らかの作用を与えるようなアプリケーションについて説明する。ワークが存在する「線分」または「領域」、および作用が与えられる「線分」または「領域」は、複数の位置の集合とみなすこともできる。以下では、説明の便宜上、主として「位置」（すなわち、１つの座標値）を特定または検出する処理について説明するが、これに限られることなく、複数の座標値の集合である「線分」または「領域」を特定または検出することも可能である。つまり、注目する１つまたは複数の位置は、点、線、または領域に含まれることになる。このような点、線、または領域を単位として探索処理が行なわれる。
【００１７】
本明細書において、「入力画像」は、２次元画像および３次元画像を含み得る。説明の便宜上、主として２次元画像を例として説明するが、３次元画像についても同様の主要が応用できることは自明である。つまり、後述するような対応関係を推定する手法を入力画像の種類に応じて適切に設定することで、同様の処理を用いることができる。言い換えれば、２次元画像では、典型的には平面上に点を配置することになるが、３次元画像では、典型的には曲面上に点を配置することになる。なお、３次元画像について表示をする場合には、二次元にレンダリング処理を行なってもよい。特に、後述するようなロボットに応用する場合には、３次元画像を入力画像とすることが好ましい。
【００１８】
図１は、本実施の形態の画像処理装置１００を含むシステム１の構成を示す模式図である。図１を参照して、システム１は、主として、画像処理装置１００と、ロボットコントローラ２００と、ロボット３００とを含む。システム１は、撮像部８を用いてコンベア１０上の一部の領域を撮像するとともに、当該撮像によって得られた画像（以下「入力画像」とも称す。）を処理することで、コンベア１０上を搬送される検出対象物（以下「ワークＷ」とも称す。）の位置を特定し、特定した位置の情報に基づいて、予め定められた位置でワークＷを把持して、コンベア１０外にワークＷを移動させる。
【００１９】
より具体的には、画像処理装置１００は、撮像部８からの入力画像に対して、以下に詳述するような画像処理を実行し、その画像処理の実行結果から得られる位置情報（または、移動指令）をロボットコントローラ２００へ出力する。ロボットコントローラ２００は、画像処理装置１００からの情報に従って、駆動指令を与えることで、ロボット３００を駆動する。典型的には、ロボット３００は、可動軸毎にサーボモータを有しており、ロボットコントローラ２００は、軸毎に計算される移動量に相当する数のパルスを含むパルス信号を出力する。
【００２０】
後述するように、ロボット３００がワークＷを把持すべき位置については、予め登録されているものとする。より具体的には、画像処理装置１００では、把持対象のワークＷの形状の情報に加えて、ワークＷに対して何らかの作用を与えるべき位置が予め登録されている。画像処理装置１００は、ワークＷがモデル情報として登録された形状とは異なる形状に変化している場合であっても、ワークＷの把持すべき位置を特定できる。
【００２１】
図１に示すような、ワークＷを把持するシステムの他、ワークに対する操作や加工を行なうようなシステムにも応用可能である。例えば、ワークに関して、切断位置、穴あけ位置、研磨位置、印刷位置、塗装位置などを予め登録しておけば、画像処理装置１００は、登録した形状とは異なる形状を有するワークに対しても、当該登  録された位置に対応する位置を特定し、処理を行なうことができる。
【００２２】
＜Ｂ．従来技術およびその課題＞
本実施の形態の画像処理装置および画像処理方法について理解を深めるために、従来技術およびその課題について概略する。
【００２３】
図２は、本発明の従来技術およびその課題について説明するための図である。図２（ａ）に示すような、検出対象物の画像をモデル画像として登録するとともに、モデル画像に含まれる検出対象物に対して、検出点２０が設定されているとする。検出点２０は、例えば、ロボット３００のロボットアーム（すなわち、マニピュレータ）を作用あるいは移動させるべき検出対象物上の点などである。
【００２４】
このような状態において、図２（ｂ）に示すような入力画像が得られたとする。図２（ｂ）に示す入力画像に含まれる検出対象物の形状は、予め登録されたモデル画像に含まれる検出対象物の形状とは異なっており、いわば変形している状態であるとする。
【００２５】
典型的なパターンマッチングの技術を用いると、入力画像に対してモデル画像の相対位置、相対角度および相対サイズなどを順次変化させていき、一致度（あるいは、類似度）が最も高くなる位置、角度およびサイズが探索される。このような探索の結果決定された位置、角度およびサイズに従って、モデル画像を入力画像に重ね合わせ（すなわち、変換を適用し）、モデル画像の検出点２０に対応する、重ね合わせたモデル画像（図２（ｂ）の領域２２に相当）における変換後の検出点２４を決定する。
【００２６】
このような方法では、検出対象物が変形することを考慮しておらず、領域２２の位置から検出点２４が決定されるので、図２（ｂ）に示すように、モデル登録時に意図した検出点に対応する位置を正しく決定することができない場合がある。すなわち、図２（ｂ）に示す例では、検出対象物のモデル画像からの変形により、ロボット３００のマニピュレータを移動させても検出対象物が存在しないという結果になる。
【００２７】
パターンマッチングの別の手法として、モデル画像そのものではなく、モデル画像の特徴量として、メッシュ状の点群やエッジなどのコントロール点を登録しておき、これらの情報を用いて入力画像とのマッチングを行なうような手法もある。このような手法においても、モデルとして登録される検出対象物と実測される入力画像に含まれる検出対象物との間には、実質的な形状の変化がないことを前提としているため、予め登録される検出点が入力画像上のいずれの位置に対応するのかを正確に把握することができない場合がある。
【００２８】
上述したように、従来の手法では、モデルに相対して任意に設定される検出点が入力画像のいずれの座標値に対応するのかを正確に特定することができず、検出対象物の把持位置やロボットアームを動かすべき位置が判らないという場合があった。すなわち、従来の手法では、その形状がモデル登録時から異なるような検出対象物については、検出点を安定的に推定することが難しかった。
【００２９】
本実施の形態の画像処理装置および画像処理方法は、モデル情報として登録された形状とは異なる形状を生じ得る検出対象物であっても、作用を与えるべき位置を適切に決定することを目的とする。これによって、形状が変形する検出対象物に対しても、マニピュレーションや各種の加工などを安定的に行なうことができる。
【００３０】
＜Ｃ．概要＞
本実施の形態の画像処理装置１００は、モデルとして予め登録した検出対象物と、入力画像に被写体として含まれる検出対象物との間の対応関係を決定し、この対応関係を利用して、任意に設定される検出点に対応する検出点を補間により推定する。
【００３１】
図３は、本実施の形態の画像処理装置１００が処理するモデル画像および入力画像の一例を示す図である。図４は、図３に示すモデル画像および入力画像について決定された対応関係の一例を示す図である。
【００３２】
まず、図３（ａ）に示すように、モデル登録時に、各入力画像において特定したい１つまたは複数の検出点３２（図中の「＋」印）をユーザが指定する。すなわち、ユーザは、撮像される検出対象物３０において位置を知りたい検出点を１つまたは複数指定する。
【００３３】
このモデル登録時において、画像処理装置１００は、モデル３０を示す画像から特徴量を抽出するとともに、顕著な特徴量（図３（ａ）に示す例では、エッジピーク点）を示す特徴点をコントロール点３４として決定し、登録する。コントロール点３４の各々については、位置を示す情報（すなわち、座標値）と、対応する特徴量（コントロール点の近傍にある１または複数の特徴量を含み得る）とが関連付けて格納される。一般的に、複数のコントロール点３４が登録される。
【００３４】
なお、コントロール点３４は、公知のアルゴリズムに従って自動的に決定してもよいし、人為的に与えてもよい。さらに、両者を合わせた方法、つまりアルゴリズムに従って自動的にコントロール点を決定するとともに、これらの自動的に決定されたコントロール点に対してユーザが人為的に調整するような態様であってもよい。後述するように、入力画像に対する対応関係が得られれば補間関数を決定できるので、この対応関係および補間関数を決定するために用いられるコントロール点については、任意の指定方法または算出方法を用いることができる。
【００３５】
このように、画像処理装置１００は、被写体として検出対象物３０を含むモデル画像から複数の特徴点を抽出する。そして、画像処理装置１００は、検出対象物３０の複数の特徴点であるコントロール点３４を示す情報を含むモデル情報を保持する。コントロール点は、特徴点そのものの座標値を用いて指定してもよいし、ある特徴点からの相対位置を用いて指定してもよい。
【００３６】
続いて、撮像部８による撮像によって、図３（ｂ）に示すような入力画像が得られると、画像処理装置１００は、入力画像から特徴量を抽出し、予めモデル登録されたコントロール点３４にそれぞれ対応するコントロール点４４を決定する。すなわち、画像処理装置１００は、入力画像に含まれる複数の特徴点を抽出するとともに、抽出された複数の特徴点とモデル情報の複数の特徴点との間の対応関係を決定する。
【００３７】
最終的に、画像処理装置１００は、入力画像から抽出されたコントロール点４４の全部または一部の情報に基づいて、その位置を知りたい検出点４２の位置を推定する。すなわち、画像処理装置１００は、決定された対応関係に基づいて、検出対象物３０に相対して設定された検出点３２（第１の位置）に対応する、入力画像での検出点４２（第２の位置）を推定する。
【００３８】
なお、上述したように、単一の検出点３２だけではなく、複数の検出点が設定されることもあるし、複数の検出点の集合である線または領域などの単位で、対応関係が推定されることもある。
【００３９】
図３（ｂ）に示すように、推定したコントロール点４４を入力画像上に関連付けて表示してもよい。つまり、画像処理装置１００は、推定した１または複数のコントロール点４４の位置を入力画像に重ねて表示する機能を有していてもよい。
【００４０】
典型的には、画像処理装置１００は、図４に示すように、予めモデル登録された複数のコントロール点３４と、入力画像から抽出された複数のコントロール点４４との間の対応関係を決定する。そして、画像処理装置１００は、複数のコントロール点３４から複数のコントロール点４４への写像を示す補間関数を計算する。すなわち、画像処理装置１００は、モデル情報の各特徴点と、入力画像から抽出された各特徴点とをそれぞれ一対一で対応付けるとともに、互いに対応付けられた、モデル情報の複数の特徴点からなる集合と、入力画像から抽出された複数の特徴点からなる集合との間で、対応関係を示す補間関数を決定する。
【００４１】
一例として、画像処理装置１００は、モデル画像上の任意の座標値（ｘ，ｙ）と、入力画像上の任意の座標値（ｘ’，ｙ’）との関係を定義する、補間関数Ｆ（ｘ，ｙ）を決定する。このような補間関数の決定手法としては、薄板スプライン補間などを利用できる。このとき、対応点群の一部を用いてもよいし、その全部を用いてもよい。すなわち、画像処理装置１００は、一対一で対応付けられた特徴点の集合の全部または一部を用いて対応関係を示す関数を決定してもよい。さらに、対応関係を示す関数の決定に用いた特徴点が判るようにユーザへの表示を行なってもよい。
【００４２】
図５は、本実施の形態の画像処理装置が提供する対応関係を示す関数の決定に用いた特徴点を示す表示例を示す図である。図５に示すように、モデル３０に設定されたコントロール点３４のうち、検出対象物４０を含む入力画像中から対応するコントロール点４４を見つけることのできたものをそうでなかったものとは異なる態様で表示する。このような視覚的な表現を用いることでユーザに対する説明性を高めることができる。
【００４３】
モデル画像上の検出点３２の座標値そのものを用いて、検出点３２を指定してもよいし、検出点３２に隣接する１または複数のコントロール点３４との相対位置および／または相対距離を用いて、検出点３２を指定してもよい。前者の指定方法では、検出点３２の座標値と補間関数Ｆ（ｘ，ｙ）とから入力画像上の検出点４２を決定できる。後者の指定法補では、指定に用いられたコントロール点３４と補間関数Ｆ（ｘ，ｙ）とから入力画像上のコントロール点４４を決定し、さらにこれらのコントロール点４４から検出点４２を決定できる。すなわち、画像処理装置１００は、予め設定された検出点３２（第１の位置）を示す座標値（Ｘ１，Ｙ１）と対応関係を示す補間関数Ｆ（ｘ，ｙ）とから、検出点４２（第２の位置）の座標値（Ｘ１’，Ｙ１’）を計算する。
【００４４】
なお、３次元画像を入力画像とする場合には、予め設定された検出点３２（第１の位置）を示す座標値（Ｘ１，Ｙ１，Ｚ１）と対応関係を示す補間関数Ｆ（ｘ，ｙ，ｚ）とから、検出点４２（第２の位置）の座標値（Ｘ１’，Ｙ１’，Ｚ１’）を計算することになる。
【００４５】
なお、検出対象物が自然由来物である場合には、ある程度の揺らぎが必然的に生じるため、モデル画像に基づいて決定されたコントロール点３４のすべてについて、対応するコントロール点４４を探索できない場合もある。これに対して、検出対象物が人工物である場合には、モデル画像に基づいて決定されたコントロール点３４のすべてについて、対応するコントロール点４４を見つけることがより容易である。
【００４６】
なお、探索された対応点のみを用いて、補間関数を決定してもよい。
このように、画像処理装置１００は、コントール点間の対応関係、すなわち補間関数を計算し、この補間関数を用いて、モデル画像上の検出点３２を写像することで、入力画像上の検出点４２を推定する。
【００４７】
＜Ｄ．画像処理装置１００のハードウェア構成＞
図６は、本実施の形態の画像処理装置１００のハードウェア構成を示す模式図である。図６を参照して、画像処理装置１００は、典型的には、汎用的なコンピュータアーキテクチャに従う構造を有しており、予めインストールされたプログラムをプロセッサが実行することで、後述するような各種の画像処理を実現する。
【００４８】
より具体的には、画像処理装置１００は、表示部１０２と、ＣＰＵ（Central Processing Unit）やＭＰＵ（Micro-Processing Unit）などのプロセッサ１１０と、主メモリ１１２と、ハードディスク１１４と、カメラインターフェイス１２０と、ロボットインターフェイス１２２と、ネットワークインターフェイス１２４と、メモリカードインターフェイス１２６とを含む。これらの各部は、内部バス１０４を介して互いにデータ通信可能に接続される。
【００４９】
プロセッサ１１０は、ハードディスク１１４に格納された画像処理プログラム１１６を読み出して、主メモリ１１２に展開して実行することで、本実施の形態の画像処理を実現する。表示部１０２には、画像処理の実行に伴う各種情報が表示される。また、画像処理の実行結果の一部または全部は、ロボットインターフェイス１２２を通じて、ロボットコントローラ２００へ出力されてもよい。
【００５０】
画像処理プログラム１１６は、例えば、メモリカード１０６などに格納された状態で流通する。この場合、メモリカードインターフェイス１２６を通じてメモリカード１０６に格納された画像処理プログラム１１６が読み出されて、ハードディスク１１４へインストールされる。あるいは、画像処理プログラム１１６は、ネットワークインターフェイス１２４を通じて、外部サーバから配信されるように構成してもよい。
【００５１】
汎用的なコンピュータアーキテクチャに従う構造を有する画像処理装置１００を利用する場合には、コンピュータの基本的な機能を提供するためのＯＳ（Operating System）がインストールされていてもよい。この場合には、画像処理プログラム１１６は、ＯＳの一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の順序および／またはタイミングで呼出して処理を実行するものであってもよい。すなわち、本実施の形態の画像処理に必要なモジュールのすべてが画像処理プログラム１１６に含まれていなくともよく、必要なモジュールの一部がＯＳから提供されるような形態であってもよい。さらに、本実施の形態の画像処理プログラム１１６は、他のプログラムの一部に組み込まれて提供されるものであってもよい。
【００５２】
カメラインターフェイス１２０は、撮像部８による撮像によって得られる入力画像を受付ける。撮像部８は、典型的には、レンズなどの光学系に加えて、ＣＣＤ（Coupled Charged Device）やＣＭＯＳ（Complementary Metal Oxide Semiconductor）センサといった撮像素子を含んで構成される。なお、２次元画像を入力画像とする場合には、通常のイメージセンサを用いることができるが、３次元画像を入力画像とする場合には、ステレオカメラや、通常のイメージセンサと距離センサとの組合せなどを用いることができる。
【００５３】
図１には、画像処理装置１００とは別に撮像部８が設けられ、撮像部８から画像処理の対象となる入力画像が提供される構成例を示すが、この構成に限られるものではない。例えば、画像処理装置１００と撮像部８とを一体的に構成し、撮像によって生成される入力画像に対して直接的に画像処理を実行するようにしてもよい。あるいは、各種の記憶媒体または通信媒体を介して、画像処理の対象となる入力画像を画像処理装置１００へ与えるようにしてもよい。
【００５４】
代替的に、画像処理プログラム１１６の実行により提供される機能の一部または全部を専用のハードウェア回路として実装してもよい。
【００５５】
＜Ｅ．画像処理装置１００の機能構成＞
図７は、本実施の形態の画像処理装置１００の機能構成を示す模式図である。図７に示す各モジュールは、典型的には、プロセッサ１１０が画像処理プログラム１１６（いずれも図６）を実行することで実現される。
【００５６】
図７を参照して、画像処理装置１００は、その機能構成として、特徴量抽出モジュール１５０と、モデル情報生成モジュール１５２と、対応関係決定モジュール１５４と、検出点推定モジュール１５６と、移動指令生成モジュール１５８とを含む。但し、移動指令生成モジュール１５８については、オプショナルであり、必要に応じて設けられる。ハードディスク１１４（図６）の少なくとも一部の領域にデータ格納部１６０が設けられる。
【００５７】
特徴量抽出モジュール１５０は、モデル画像または入力画像を受付け、画像内に含まれる特徴量を抽出する。すなわち、特徴量抽出モジュール１５０は、被写体として検出対象物を含むモデル画像および入力画像から複数の特徴点を抽出する。モデル画像について抽出された特徴量の情報は、モデル情報生成モジュール１５２へ与えられ、入力画像について抽出された特徴量の情報は、対応関係決定モジュール１５４へ与えられる。
【００５８】
モデル情報生成モジュール１５２は、モデル画像に含まれる検出対象物の複数の特徴点（コントロール点３４）を示す情報を含むモデル情報１６２を生成する。典型的には、モデル情報は、コントロール点３４の各々について、その位置を示す情報（座標値）と、対応する特徴量とを含む。モデル情報１６２は、データ格納部１６０に格納される。すなわち、データ格納部１６０は、検出対象物の複数の特徴点（コントロール点３４）を示す情報を含むモデル情報１６２を保持する。
【００５９】
モデル情報生成モジュール１５２は、基本的には、モデル画像からコントロール点３４を自動的に抽出するが、自動的に抽出されたコントロール点３４をユーザが手動で変更してもよいし、ユーザが任意の位置にコントロール点３４を設定してもよい。例えば、検出対象物の輪郭が変化する点（変曲点、角、頂点など）などにコントロール点３４を設定することで、対応するコントロール点の探索がより容易になる。
【００６０】
データ格納部１６０には、ユーザが任意に設定した検出点の座標値を示す検出点設定１６４も格納される。
【００６１】
対応関係決定モジュール１５４は、データ格納部１６０に格納されているモデル情報１６２に基づいて、入力画像から抽出された特徴量から入力画像についてのコントロール点４４を決定し、さらに入力画像のコントロール点４４とモデル情報１６２の複数のコントロール点３４との間の対応関係を決定する。すなわち、特徴量抽出モジュール１５０および対応関係決定モジュール１５４は、入力画像に含まれる複数の特徴点（コントロール点４４）を抽出するとともに、抽出された複数の特徴点とモデル情報１６２の複数の特徴点との間の対応関係を決定する。
【００６２】
検出点推定モジュール１５６は、対応関係決定モジュール１５４によって決定された対応関係に基づいて、データ格納部１６０に格納されている検出点設定１６４に含まれる検出点２０の座標値から、入力画像の対応する検出点３２の座標値を推定する。すなわち、検出点推定モジュール１５６は、対応関係に基づいて、検出対象物に相対して設定された検出点３２（第１の位置）に対応する、入力画像での検出点４２（第２の位置）を推定する。この推定された検出点３２の座標値は、位置情報としてロボット３００へ与えられる。
【００６３】
移動指令生成モジュール１５８は、検出点推定モジュール１５６によって推定された検出点３２の座標値から外部装置であるロボット３００へ出力すべき移動指令を生成する。典型的には、検出点推定モジュール１５６は、検出対象物に相対して設定された複数の検出点３２（第１の位置）に対応する、複数の検出点４２（第２の位置）をそれぞれ推定する。移動指令生成モジュール１５８は、複数の検出点４２から指令を生成する。例えば、モデル画像上で加工の開始点および終了点を設定し、これらの開始点および終了点にそれぞれ対応する入力画像上の点を推定するとともに、推定した開始点および終了点を結ぶ軌跡を決定することができる。
【００６４】
＜Ｆ．画像処理装置１００での処理手順＞
図８は、本実施の形態の画像処理装置１００で実行される処理手順を示すフローチャートである。図８に示す各ステップは、典型的には、プロセッサ１１０が画像処理プログラム１１６（いずれも図６）を実行することで実現される。
【００６５】
図８に示す処理手順は、モデル画像からモデル情報を登録するためのモデル登録処理と、入力画像の対応する検出点を推定するための推定処理とを含む。基本的には、モデル登録処理の実行後、推定処理が実行されるが、この順序は問わない。１回のモデル登録処理でモデル情報を登録しておき、この登録されたモデル情報を共通に用いて、複数の入力画像に対して、推定処理をそれぞれ行なってもよい。
【００６６】
図８を参照して、モデル登録処理において、プロセッサ１１０は、モデル画像を受付ける（ステップＳ１０）。より具体的には、ユーザがモデルとすべき検出対象物を撮像部８の視野内に配置した状態で、撮像部８へ指令を与えることで、撮像部８が検出対象物を撮像して得られたモデル画像が取得される。
【００６７】
続いて、プロセッサ１１０は、モデル画像中の検出対象物に対してユーザが設定する検出点２０を受付ける（ステップＳ１２）。より具体的には、表示部１０２などにモデル画像を表示するとともに、ユーザがモデル画像上にオーバービュー表示されるインジケータ（例えば、図４（ａ）に示す「＋」印）の位置をマウスなどで操作することで、検出点２０が設定される。
【００６８】
続いて、プロセッサ１１０は、モデル画像から複数の特徴点を抽出し（ステップＳ１４）、抽出した複数の特徴点に基づいて、コントロール点３４を決定する（ステップＳ１６）。最終的に、プロセッサ１１０は、モデル画像から抽出された象物の複数の特徴点（コントロール点３４）を示す情報を含むモデル情報を格納する（ステップＳ１８）。以上で、モデル登録処理は終了する。
【００６９】
一方、推定処理においては、プロセッサ１１０は、入力画像を受付ける（ステップＳ２０）。より具体的には、検出対象物を撮像部８の視野内に到達すると撮像部８へ指令が与えられ、撮像部８が検出対象物を撮像することで入力画像が取得される。
【００７０】
続いて、プロセッサ１１０は、入力画像から複数の特徴点を抽出し（ステップＳ２２）、抽出した複数の特徴点に基づいて、モデル情報に含まれるコントロール点３４にそれぞれ対応するコントロール点４４を探索し（ステップＳ２４）、入力画像から抽出されたコントロール点３４とモデル情報に含まれるコントロール点３４との間の対応関係を決定する（ステップＳ２６）。そして、プロセッサ１１０は、ステップＳ２６において決定された対応関係に基づいて、モデル登録処理において、検出対象物に相対して設定された検出点３２に対応する、入力画像での対応する検出点４２を推定する（ステップＳ２８）。さらに、プロセッサ１１０は、ステップＳ２８において推定された１つまたは複数の検出点４２の座標値を用いて、位置情報（または、移動指令）をロボットコントローラ２００へ出力することで、ロボット３００を制御する（ステップＳ３０）。以上で、推定処理は終了する。
【００７１】
＜Ｇ．検出点の推定処理の変形例＞
上述した検出点の推定処理について、以下のような変形例を実装することもできる。
【００７２】
例えば、上述したような対応関係、すなわちモデル画像上の複数のコントロール点３４から入力画像上の複数のコントロール点４４への写像を示す補間関数を計算する際には、複数のコントロール点３４のすべてを用いてもよいし、予め設定された検出点の近傍にあるいくつかのコントロール点４４のみを用いてもよい。
【００７３】
図９は、本実施の形態の画像処理装置１００での検出点の推定処理の変形例を説明するための図である。図９を参照して、例えば、検出対象物を長手方向に二分する線に沿って切断や塗布しようとするような場合には、抽出されたコントロール点４４のうち、隣接するコントロール点４４同士を結ぶことでトラス状に三角形を作り、各三角形の内部の辺を二分割する点を結ぶことにより、対応する複数の検出点（検出領域）４６を推定する。このトラス状に三角形を作る処理では、ドゥローネの三角化などが利用できる。
【００７４】
また、入力画像における対応する検出点の推定に、近傍にあるコントロール点４４のみを用いた場合には、それを視覚的に表現して、ユーザに対する説明性を高めることが好ましい。
【００７５】
図１０は、本実施の形態の画像処理装置１００での検出点の推定処理結果を示す画面例を示す図である。図１０を参照して、例えば、入力画像での検出点４２の推定に、その近傍のコントロール点４４のみを用いた場合には、その検出点４２の推定に用いたコントロール点４４をそれ以外のコントロール点４４とは異なる態様で表示するようにしてもよい。つまり、検出点４２の推定に近傍のいくつかのコントロール点４４を用いた場合には、それら近傍のコントロール点４４を明確に色で分けて、補間に用いたコントロール点４４を一見して把握できるようにすることが好ましい。
【００７６】
＜Ｈ．ロボットコントローラ２００およびロボット３００とのインターフェイス＞
上述したように、本実施の形態の画像処理装置１００による検出点４２の推定結果を用いて、例えば、ワークの把持やワークに対する各種の加工（切断、穴あけ、研磨、印刷、塗装など）を行なうことができる。把持の場合には、入力画像上の１つの検出点の座標値を出力すればよいが、各種の加工を行なう場合には、複数の検出点の座標値を順次算出し、これらの算出結果を用いてロボット３００の軌跡を示す指令を出力する必要がある。
【００７７】
例えば、塗布や切断などの加工については、切断の開始点および終了点といった、複数の検出点を推定する必要があり、このような場合も上述したのと同様の方法で決定できる。このとき、コントロール点をより密に配置することにより、操作対象の曲線を実現してもよい。また、複数の離散的な検出点について補間を行なうことで、ロボット３００の連続的な軌跡を決定してもよい。
【００７８】
ワークに対する各種の加工を行なう軌跡が相対的に長い場合には、すべての軌跡について対応する検出点を推定しようとすれば、処理量が相対的に多くなる。そこで、入力画像上で位置を知りたい複数の検出点の各々について、モデル画像上において近傍にある、いくつかのコントロール点およびそれらのコントロール点からの相対位置を予め登録しておき、入力画像の形状がモデル画像に比較して変形している場合には、各検出点について、対応するいくつかのコントロール点を基準として、予め登録しておいた相対位置を適用することで、入力画像上の検出点を順次計算する。このような方法を採用することで、計算に係る演算量を低減できる。
【００７９】
画像処理装置１００から推定した補間関数そのものをロボットコントローラ２００へ出力するようにしてもよい。この場合には、ロボットコントローラ２００は、与えられた補間関数を用いて、予め設定されている軌道を修正した上で、検出対象物に対して作用を与える軌跡を順次計算する。
【００８０】
あるいは、画像処理装置１００が探索した入力画像上のそれぞれのコントロール点４４の座標値をロボットコントローラ２００へ出力するようにしてもよい。この場合には、ロボットコントローラ２００は、与えられたそれぞれのコントロール点４４の座標値から、軌跡を算出し、ロボット３００を駆動する。
【００８１】
なお、画像処理装置１００からロボットコントローラ２００へ出力する位置情報（または、移動指令）の内容や種別については、ロボットの仕様や処理内容に応じて適宜異ならせてもよい。さらに、システム１が検出対象物に対して各種の加工を選択的に実行可能である場合には、ユーザに対して、予め用意された複数の加工のうち、いずれの加工を実行するのかの選択を受付けるユーザインターフェイス画面を提供するようにしてもよい。
【００８２】
＜Ｉ．結論＞
本実施の形態の画像処理装置１００によれば、モデル情報として登録された検出対象物の形状とは異なる形状を有する検出対象物が入力画像に存在している場合であっても、当該検出対象物に相対して任意に設定される任意の検出点の対応する位置をより正確に推定できる。これによって、何らかの要因によって形状が変化する検出対象物に対しても、ロボット３００などに対して適切な指令を与えることで、目的の位置において目的の作用を与えることができる。
【００８３】
上述の説明では、主として柔軟性を有する検出対象物が変形する場合について説明したが、例えば、撮像部の移動により生じる射影変換に基づく変形にも応用可能である。すなわち、検出対象物の自由変形に加えて、検出対象物の形状には変形がないが、撮像部と検出対象物との間の相対的な位置関係に変化が生じた場合、例えば、撮像部の視点が変化した場合や、検出対象物が回転した場合に生じる拘束変形にも対応可能である。
【００８４】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００８５】
１  システム、８  撮像部、１０  コンベア、１００  画像処理装置、１０２  表示部、１０４  内部バス、１０６  メモリカード、１１０  プロセッサ、１１２  主メモリ、１１４  ハードディスク、１１６  画像処理プログラム、１２０  カメラインターフェイス、１２２  ロボットインターフェイス、１２４  ネットワークインターフェイス、１２６  メモリカードインターフェイス、１５０  特徴量抽出モジュール、１５２  モデル情報生成モジュール、１５４  対応関係決定モジュール、１５６  検出点推定モジュール、１５８  移動指令生成モジュール、１６０  データ格納部、１６２  モデル情報、１６４  検出点設定、２００  ロボットコントローラ、３００  ロボット、Ｗ  ワーク。
【図１】
2015176217.tif 000003
【図２】
2015176217.tif 000004
【図３】
2015176217.tif 000005
【図４】
2015176217.tif 000006
【図５】
2015176217.tif 000007
【図６】
2015176217.tif 000008
【図７】
2015176217.tif 000009
【図８】
2015176217.tif 000010
【図９】
2015176217.tif 000011
【図１０】
2015176217.tif 000012