(57)【要約】【課題】解決しようとする問題点は、１つの画像処理プログラムの中で、異なる撮像条件で撮像した画像を併用できるようにする点である。【解決手段】本開示の一実施例に係る画像処理装置は、視野領域の全体画像の座標系である基準座標系とは異なる座標系を有する部分画像であって、所定の撮像条件で撮像された視野領域の一部である部分画像を取得する画像取得部と、所定の撮像条件を記憶する撮像条件記憶部と、基準座標系における部分画像の座標系の原点を含む撮像範囲及びビニングに関する位置情報を記憶する位置情報記憶部と、位置情報を用いて、部分画像上の任意点の座標を基準座標系上における座標に変換する位置情報変換部と、を有する。【選択図】図２
2020064566.tif 000002
【特許請求の範囲】
【請求項１】
視野領域の全体画像の座標系である基準座標系とは異なる座標系を有する部分画像であって、所定の撮像条件で撮像された前記視野領域の一部である部分画像を取得する画像取得部と、
前記所定の撮像条件を記憶する撮像条件記憶部と、
前記基準座標系における前記部分画像の座標系の原点を含む撮像範囲及びビニングに関する位置情報を記憶する位置情報記憶部と、
前記位置情報を用いて、前記部分画像上の任意点の座標を前記基準座標系における座標に変換する位置情報変換部と、
を有する画像処理装置。
【請求項２】
前記基準座標系で表された第１設定情報を記憶する設定情報記憶部と、
前記部分画像に対して画像処理を行うために、前記位置情報を用いて、前記第１設定情報を前記部分画像の座標系で表された第２設定情報に変換する設定情報変換部と、
をさらに有する請求項１に記載の画像処理装置。
【請求項３】
前記撮像範囲は、前記基準座標系における前記部分画像の原点の座標及び所定の範囲により特定される、請求項１または２に記載の画像処理装置。
【請求項４】
前記位置情報は、前記部分画像を前記基準座標系に対して所定の角度回転させるための回転角度に関する情報、前記部分画像を左右反転させるための座標変換情報、前記部分画像を上下反転させるための座標変換情報、及び前記部分画像を平行移動させるための座標変換情報のうちの少なくとも１つを含む、請求項３に記載の画像処理装置。
【請求項５】
前記位置情報は、前記部分画像の座標系上での座標を前記基準座標系上での座標に変換する同次変換行列に関する情報を含む、請求項３または４に記載の画像処理装置。
【請求項６】
前記撮像条件には、前記部分画像を撮像する際の露光条件及び照明条件のうちの少なくとも１つが含まれる、請求項１乃至５のいずれか一項に記載の画像処理装置。
【請求項７】
視野領域の全体画像の座標系である基準座標系とは異なる座標系を有する第１部分画像及び第２部分画像であって、所定の第１撮像条件で撮像された前記視野領域の一部である第１部分画像、並びに前記第１撮像条件とは異なる第２撮像条件で撮像された前記視野領域の一部である第２部分画像を取得する画像取得部と、
前記第１撮像条件、及び第２撮像条件を記憶する撮像条件記憶部と、
前記基準座標系における前記第１部分画像及び前記第２部分画像の座標系の原点を含む撮像範囲及びビニングに関する位置情報を記憶する位置情報記憶部と、
前記位置情報を用いて、前記第１部分画像及び前記第２部分画像上の任意点の座標を前記基準座標系における座標に変換する位置情報変換部と、
を有する画像処理装置。
【請求項８】
前記第１部分画像に対して第１画像処理ツールを実行するための第３設定情報、及び前記第２部分画像に対して第２画像処理ツールを実行するための第４設定情報を記憶する設定情報記憶部をさらに有する請求項７に記載の画像処理装置。
【請求項９】
前記第１部分画像及び前記第２部分画像の撮像範囲は、前記基準座標系における前記第１部分画像及び前記第２部分画像のそれぞれの原点の座標及び各所定の範囲により特定される、請求項７または８に記載の画像処理装置。
【請求項１０】
前記第１撮像条件及び前記第２撮像条件には、前記第１部分画像及び前記第２部分画像を撮像する際の露光条件及び照明条件のうちの少なくとも１つが含まれる、請求項７乃至９のいずれか一項に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置に関し、特に、複数の撮像条件を用いた画像処理装置に関する。
【背景技術】
【０００２】
カメラをロボットの手先または外部に設置して画像を撮像し、ロボットの位置の補正やワークの外観検査をすることは従来から行われている。この中では、複数の画像処理ツールが組み合わされ、一つの画像処理プログラムとして結果を出力するようになっている。
【０００３】
画像処理ツールは特定の画像処理を行うが、画像処理ツールが画像処理に使用する領域は画像全体ではなく、画像の一部分だけであることも多い（例えば、特許文献１）。そのような場合には、画像処理する領域を何らかの方法で指定して、指定した領域内部だけで画像処理することで処理時間を速くすることができる。上記のような方法では、カメラで画像全体を撮像し、画像処理装置に取り込み、画像全体のうち、指定された領域のみを画像処理に使用することになる。
【０００４】
ここで、撮像された画像のうち、カメラで撮像可能な全領域の画像が必要なのではなく、指定した領域だけが必要ということになる。そこで、指定された領域のみを撮像することで、画像の転送時間の短縮やメモリ使用量を削減することができる。
【０００５】
ここで問題となるのが、画像の一部分だけを撮像して画像処理に使用すると、画像から得られる位置情報が部分画像の座標系で表現されることである。これは以下のような場合に問題となる。
・複数の画像処理ツールがそれぞれ異なる部分画像を処理し、その処理結果を合成するとき。例えば、１つの画像処理ツールで１つ目の穴を検出し、他の画像処理ツールで２つ目の穴を検出し、１つ目の穴と２つ目の穴との間の距離を計測する場合。
・カメラが全体画像に対してキャリブレーションされているとき。部分画像の座標系で表現された位置を、全体画像に対するキャリブレーションデータで変換することができない。
【０００６】
この問題は撮像の領域に限ったことではなく、画像の解像度（ビニング）においても同じことが言える。従来は、各画像処理ツールの中で必要となる一番高い解像度の全領域での画像を撮像し、その後に画像処理しない領域を決定して、それ以外の画像処理ツールでもその画像を使用していた。しかし、撮像された画像として、そのカメラで撮像可能な最高解像度の画像が必要なのではない。そのため、それぞれの画像処理ツールに応じて必要な解像度の画像を撮像することで、画像の転送時間の短縮やメモリ使用量を削減することができる。
【０００７】
しかし、画像の解像度を変更して撮像して画像処理に使用すると、画像から得られる位置情報が縮小画像の座標系で表現される。これにより、部分画像を使用したときと同様の問題が発生する。
【０００８】
さらに、各画像処理ツールで異なる撮像領域やビニングの画像を使用しようとすると、撮像領域やビニングを変更したときに、画像処理ツールの設定が妥当なものでなくなるという問題がある。
【０００９】
これは以下のような場合に問題となる。
・画像処理ツールで、特定のビニングで表現された画像を持つ場合。例えば、画像処理ツールが正規化相関によるテンプレートマッチングを行うものであるとする。ここで、正規化相関で使用するテンプレート画像は特定の解像度で取得されたものであり、異なる解像度の画像に使用することはできない。
・画像処理ツールで、特定の部分画像や解像度の画像の座標系で表現された設定を持つ場合。例えば、画像処理に使用する領域を指定するときに、部分画像の座標系で表現された値で指定していると、部分画像の領域を変更したときに、画像処理する領域は以前とは物理的に異なる領域を表現してしまうことになる。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開平１１−１９６２９９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
解決しようとする問題点は、１つの画像処理プログラムの中で、異なる撮像条件で撮像した画像を併用できるようにする点である。
【課題を解決するための手段】
【００１２】
本開示の一実施例に係る画像処理装置は、視野領域の全体画像の座標系である基準座標系とは異なる座標系を有する部分画像であって、所定の撮像条件で撮像された視野領域の一部である部分画像を取得する画像取得部と、所定の撮像条件を記憶する撮像条件記憶部と、基準座標系における部分画像の座標系の原点を含む撮像範囲及びビニングに関する位置情報を記憶する位置情報記憶部と、位置情報を用いて、部分画像上の任意点の座標を基準座標系における座標に変換する位置情報変換部と、を有する。
【発明の効果】
【００１３】
本開示の一実施例に係る画像処理装置によれば、１つの画像処理プログラムの中で、異なる撮像条件で撮像した画像を併用できる。
【図面の簡単な説明】
【００１４】
【図１】実施例１に係る画像処理装置を含むロボットビジョンシステムの構成図である。
【図２】実施例１に係る画像処理装置の機能ブロック図である。
【図３】実施例１に係る画像処理装置で使用する全体画像と部分画像との関係を示す図である。
【図４】実施例１に係る画像処理装置で使用する全体画像と部分画像内のワークとの関係を示す図である。
【図５】部分画像内でワークが回転している場合の回転角の例を示す図である。
【図６】実施例１に係る画像処理装置で使用する全体画像と回転した部分画像との関係を示す図である。
【図７】実施例１に係る画像処理装置で使用する全体画像と左右反転した部分画像との関係を示す図である。
【図８】実施例２に係る画像処理装置で使用する全体画像と２つの部分画像との関係を示す図である。
【図９】実施例２に係る画像処理装置で使用する全体画像において２つの部分画像内の対象物間の距離を計算する方法を説明するための図である。
【図１０】実施例３に係る画像処理装置で使用する全体画像と異なる露光条件及び照明条件で撮像された２つの部分画像との関係を示す図である。
【図１１】実施例３に係る画像処理装置で使用する全体画像において１つの部分画像内の２つの対象物間の距離を計算する方法を説明するための図である。
【図１２】実施例３に係る画像処理装置で使用する全体画像において２つの対象物間の距離を計算する方法を説明するための図である。
【図１３】実施例４に係る画像処理装置で使用する全体画像と第１部分画像及び第２部分画像との関係を示す図である。
【図１４】実施例４に係る画像処理装置で使用する全体画像と第１部分画像との関係を示す図である。
【図１５】実施例４に係る画像処理装置で使用する全体画像と第２部分画像との関係を示す図である。
【発明を実施するための形態】
【００１５】
以下、図面を参照して、本発明に係る画像処理装置について説明する。ただし、本発明の技術的範囲はそれらの実施の形態には限定されず、特許請求の範囲に記載された発明とその均等物に及ぶ点に留意されたい。
【００１６】
まず、実施例１に係る画像処理装置について説明する。図１に実施例１に係る画像処理装置を含むロボットビジョンシステム１００の構成図を示し、図２に実施例１に係る画像処理装置の機能ブロック図を示す。ロボットビジョンシステム１００は、ロボット制御装置１４と、アーム先端部１１に装着された装置を用いてワーク１３（作業対象物）に対して作業を行うロボット１０と、ロボット１０のアーム先端部１１に装着され、ワーク１３を撮像する視覚センサ１２と、を備えている。
【００１７】
ロボット１０は、例えば６軸の多関節ロボットであり、作業台４０の上部に配置されたワーク１３に対して所定の作業を行う。例えば、ワーク１３を把持する作業であれば、アーム先端部１１にハンドを用いることができる。ただし、このような例には限られず、アーム先端部１１は、溶着や研磨等の他の作業を行うツールであってもよい。アーム先端部１１は水平方向だけでなく垂直方向にも動作させることができ、垂直方向に延びた軸を中心に回転させることもできる。このようにアーム先端部１１を動かすことにより、アーム先端部１１に設けた視覚センサ１２の画像を調整することができる。
【００１８】
図１に示すようにロボット１０のアーム先端部１１には視覚センサ１２を設けることができる。あるいは、視覚センサ１２を外部に固定して設けるようにしてもよい。視覚センサ１２は２次元のカメラでもよいし、３次元のセンサ（例えば、レンジセンサなど）でもよい。図１には、視覚センサ１２を１台設置した例を示したが、視覚センサは複数でもよい。例えば、視覚センサは、２次元のカメラ２台を用いて校正されたステレオカメラでもよい。
【００１９】
視覚センサ１２は作業台４０の上部に載置されたワーク１３を撮像する。撮像した画像は表示装置１５に表示される。例えば、視覚センサ１２によりワーク１３を撮像した場合、表示装置１５にはワークの画像１６が表示される。
【００２０】
実施例１に係る画像処理装置の機能ブロック図（図２）について説明する。画像処理装置１はロボット制御装置１４（図１参照）の内部に設けられている。画像処理装置１はロボット制御装置１４内に設けられた演算処理装置により実行される。
【００２１】
実施例１に係る画像処理装置１は、画像取得部２と、撮像条件記憶部３と、位置情報記憶部４と、位置情報変換部５と、を有する。
【００２２】
図３に、実施例１に係る画像処理装置で使用する全体画像と部分画像の関係を示す。画像取得部２は、視野領域の全体画像Ｇの座標系である基準座標系とは異なる座標系を有する部分画像Ｐであって、所定の撮像条件で撮像された視野領域の一部である部分画像Ｐを取得する。ここで、「基準座標系」とは、撮像に使用した視覚センサ１２の撮像可能な最大範囲かつ最高解像度での画像の座標系をいう。また。基準座標系は物理的に定義されている。
【００２３】
例えば、部分画像Ｐを撮像する撮像条件として、撮像範囲が、基準座標系における部分画像Ｐの原点の座標及び所定の範囲により特定されることが好ましい。即ち、「撮像範囲」を視野領域のうち、原点を基準座標系における座標（ｘ，ｙ）とした所定の範囲とすることができる。また、「ビニング」を２とすることができる。ビニング（ｂｉｎｎｉｎｇ）とは、近傍にある複数の画素を加算する技術であり、ビニングによって読み出し画素数を減らすことができ、読み出し速度の高速化を図ることができる。また、撮像条件には、部分画像Ｐを撮像する際の露光条件及び照明条件のうちの少なくとも１つが含まれていてもよい。
【００２４】
撮像条件記憶部３は、上記の撮像条件を記憶する。即ち、部分画像Ｐが、基準座標系において、どの部分をどのくらいのスケールで切り出してきたものなのかという情報を記憶する。
【００２５】
位置情報記憶部４は、基準座標系における部分画像Ｐの座標系の原点を含む撮像範囲及びビニングに関する位置情報を記憶する。具体的には、基準座標系上での部分画像Ｐの左上の座標値をベクトル（ｘ，ｙ）、ビニングの大きさをビニング×単位行列とし、その位置情報を記憶する。
【００２６】
位置情報変換部５は、位置情報を用いて、部分画像Ｐ上の任意点の座標を基準座標系における座標に変換する。
【００２７】
画像処理装置１は、基準座標系で表された第１設定情報を記憶する設定情報記憶部６と、部分画像Ｐに対して画像処理を行うために、位置情報を用いて、第１設定情報を部分画像の座標系で表された第２設定情報に変換する設定情報変換部７と、をさらに有することが好ましい。
【００２８】
画像処理ツールが全体画像Ｇを使用してテンプレートマッチングを行う場合について説明する。このとき、全体画像Ｇに対してテンプレートマッチングを行うための画像処理ツールを実行するための設定情報を第１設定情報とする。第１設定情報は設定情報記憶部６に記憶しておくことができる。
【００２９】
画像処理ツールは部分画像Ｐを使用してテンプレートマッチングを行うものとする。部分画像Ｐに対してテンプレートマッチングを行うための画像処理ツールを実行する際に、部分画像Ｐは全体画像Ｇとは撮像条件が異なっているため、第１設定情報をそのまま使用することはできない。そこで、設定情報変換部７は、画像処理ツールが部分画像Ｐに対してテンプレートマッチングを行うために、位置情報を用いて、第１設定情報を第２設定情報に変換する。
【００３０】
また、画像処理装置１は、キャリブレーションデータを記憶するキャリブレーションデータ記憶部８を備えていることが好ましい。カメラキャリブレーションを全体画像Ｇに対して行っておけば、部分画像Ｐで画像処理したとしても、前述のように部分画像Ｐ上での位置を基準座標系上での位置に変換すると、カメラキャリブレーション結果をそのまま使用することができる。
【００３１】
これと同じように、各画像処理ツール自体に画像の撮像範囲とビニングに関する位置情報を持たせ、設定が変わったとき（検出を行ったとき）に、その位置情報を使って変換作業を行い、各画像処理ツール内部の設定を自動的に変換することも可能になる。
【００３２】
位置情報は、部分画像Ｐを基準座標系に対して所定の角度回転させるための回転角度に関する情報、部分画像Ｐを左右反転させるための座標変換情報、部分画像Ｐを上下反転させるための座標変換情報、及び部分画像を平行移動させるための座標変換情報のうちの少なくとも１つを含むようにしてもよい。図４に、実施例１に係る画像処理装置で使用する全体画像Ｇと部分画像Ｐ内のワークとの関係を示す。部分画像Ｐの原点は基準座標系上で（ｘ，ｙ）で表される。ワークの部分画像Ｐ上の座標は（Ｖｔ，Ｈｚ）である。ワークが角度θで回転している場合は、角度情報には以下の回転行列Ｒ（θ）が入る。
【数１】
2020064566.tif 000003
【００３３】
位置情報は、部分画像Ｐの座標系上での座標を基準座標系上での座標に変換する同次変換行列に関する情報を含むことが好ましい。位置情報は同次変換行列Ｔとして表現することができる。例えば、同次変換行列Ｔが基準座標系上での位置情報を表すときには以下のようになる。
【数２】
2020064566.tif 000004
【００３４】
部分画像Ｐの座標系上での座標（Ｖｔ，Ｈｚ）にこの同次変換行列Ｔを掛けることにより、基準座標系上での座標（Ｖｔall，Ｈｚall）とすることができる。
【００３５】
図５に部分画像内でワークが回転している場合の回転角の例を示す。図６に実施例１に係る画像処理装置で使用する全体画像Ｇと回転した部分画像との関係を示す。回転がある場合には、位置情報のビニングに回転させたい角度αを入れた回転行列を掛けて位置情報として保存しておく。位置情報は同次変換行列Ｔとして表現することができる。例えば、同次変換行列が基準座標系上での位置情報を表すときには以下のようになる。
【数３】
2020064566.tif 000005
同次変換行列Ｔのαに回転角度を代入し、座標（Ｖｔ，Ｈｚ）にこの同次変換行列を掛けることにより、基準座標系上での座標（Ｖｔall，Ｈｚall）とすることができる。角度情報には回転させたい角度を入れた回転行列を掛ける。
【００３６】
逆に、座標（Ｖｔall，Ｈｚall）から座標（Ｖｔ，Ｈｚ）を求めたい場合には、同次変換行列の逆行列を掛けることで求めることができる。回転がない場合には、角度情報には元の値がそのまま入り、回転がある場合には、回転させたい角度を入れた回転行列の逆行列を掛ける。
【００３７】
図７に実施例１に係る画像処理装置で使用する全体画像と左右反転した部分画像との関係を示す。画像を反転させたい場合には、位置情報のビニングに、下記のような行列を掛けて位置情報として保存しておく。
【数４】
2020064566.tif 000006
このときの同次変換行列Ｔは以下のようになる。
【数５】
2020064566.tif 000007
【００３８】
ｎx及びｎyはそれぞれ、二次元でのｘ方向及びｙ方向の単位ベクトルであり、内積は０となる。左右を反転させたいときには、ｎx2＝１，ｎy2＝０、かつ、ｘｓｉｚｅ＝部分画像Ｐの横幅，ｙｓｉｚｅ＝０とする。上下を反転させたいときには、ｎx2＝０，ｎy2＝１、かつ、ｘｓｉｚｅ＝０，ｙｓｉｚｅ＝部分画像Ｐの縦幅とする。上下左右を両方反転させたいときには、ｎx2＝１，ｎy2＝１かつｘｓｉｚｅ＝部分画像Ｐの横幅，ｙｓｉｚｅ＝部分画像Ｐの縦幅とする。
【００３９】
ワーク１６ａの座標（Ｖｔ，Ｈｚ）に、この同次変換行列を掛けることにより、基準座標系上でのワーク１６ａの座標（Ｖｔall，Ｈｚall）とすることができる。角度情報にも式（１）のような行列Ｒ（θ）を掛ける。角度情報の計算の詳細は以下の通りで、左右反転時に左右対称、上下反転時に上下対称となるよう、回転させたい角度を入れた回転行列Ｒ（θ）をそれぞれ掛けている。
【００４０】
左右反転時の角度情報は以下のようにして求められる。
【数６】
2020064566.tif 000008
【００４１】
上下反転時の角度情報は以下のようにして求められる。
【数７】
2020064566.tif 000009
【００４２】
上下左右反転時の角度情報は以下のようにして求められる。
【数８】
2020064566.tif 000010
【００４３】
画像を平行移動させたい場合には、位置情報のビニングに、下記のような平行移動行列を掛けて位置情報として保存しておく。
【数９】
2020064566.tif 000011
このときの同次変換行列Ｔは以下のようになる。
【数１０】
2020064566.tif 000012
【００４４】
実施例１に係る画像処理装置によれば、ユーザが画像の撮像範囲やビニングを意識せずとも、各画像処理ツールの結果が正しく処理され、一つの結果として出力される。
具体的には、以下の効果が得られる。
・必要な撮像範囲、必要な解像度での画像を撮像して使用することで、画像の転送時間の短縮やメモリ使用量の削減を実現。
・撮像範囲やビニングが異なっていてもキャリブレーションが使い回せることによる教示作業の簡易化。
・マッチングのテンプレート画像や画像処理領域などの各種設定情報も使い回せることによる教示作業の簡易化。
・単純な撮像範囲や解像度の変更だけではなく、画像の回転や反転の場合にも対応が可能。
【００４５】
次に、実施例２に係る画像処理装置について説明する。実施例２に係る画像処理装置は、図２に示した実施例１に係る画像処理装置１と同様である。実施例２に係る画像処理装置は、画像取得部２と、撮像条件記憶部３と、位置情報記憶部４と、位置情報変換部５と、を有する。
【００４６】
実施例２に係る画像処理装置は、第１部分画像Ｐ１に対して第１画像処理ツールを実行するための第３設定情報、及び第２部分画像Ｐ２に対して第２画像処理ツールを実行するための第４設定情報を記憶する設定情報記憶部６をさらに有することが好ましい。
【００４７】
図８に、実施例２に係る画像処理装置で使用する全体画像と第１部分画像及び第２部分画像の関係を示す。
【００４８】
第１画像処理ツールは第１部分画像Ｐ１を使用して第１穴３１を検出する。このとき、第１部分画像Ｐ１に対して穴を検出するための画像処理ツールを実行するための設定情報を第３設定情報とする。第３設定情報は設定情報記憶部６に記憶しておくことができる。
【００４９】
第２画像処理ツールは第２部分画像Ｐ２を使用して第２穴３２を検出する。第２部分画像Ｐ２に対して穴を検出するための画像処理ツールを実行する際に、第２部分画像Ｐ２は第１部分画像Ｐ１とは撮像条件が異なっているため、第３設定情報をそのまま使用することはできず、第４設定情報を使用する。
【００５０】
画像取得部２は、視野領域の全体画像Ｇの座標系である基準座標系とは異なる座標系を有する第１部分画像Ｐ１及び第２部分画像Ｐ２であって、第１撮像条件で撮像された視野領域の一部である第１部分画像Ｐ１、並びに第１撮像条件とは異なる第２撮像条件で撮像された視野領域の他の一部である第２部分画像Ｐ２を取得する。
【００５１】
撮像条件記憶部３は、第１撮像条件及び第２撮像条件を記憶する。第１部分画像Ｐ１及び第２部分画像Ｐ２の撮像範囲は、基準座標系における第１部分画像Ｐ１及び第２部分画像Ｐ２のそれぞれの原点の座標及び各所定の範囲により特定されることが好ましい。第１部分画像Ｐ１の撮像範囲は基準座標系上の座標（ｘ１，ｙ１）を第１部分画像Ｐ１の原点とした所定の範囲とすることができる。第１部分画像Ｐ１のビニングを第１ビニング（ｂｉｎｎｉｎｇ１）とすることができる。第２部分画像Ｐ２の撮像範囲を基準座標系上の座標（ｘ２，ｙ２）を第２部分画像Ｐ２の原点とした所定の範囲とすることができる。第２部分画像Ｐ２のビニングを第２ビニング（ｂｉｎｎｉｎｇ２）とすることができる。第１部分画像Ｐ１における第１穴３１の座標は（Ｖｔ１，Ｈｚ１）である。第２部分画像Ｐ２における第２穴３２の座標は（Ｖｔ２，Ｈｚ２）である。
【００５２】
位置情報記憶部４は、基準座標系における第１部分画像Ｐ１の座標系の原点（ｘ１，ｙ１）及び第２部分画像Ｐ２の座標系の原点（ｘ２，ｙ２）を含む撮像範囲及びビニングに関する位置情報を記憶する。
【００５３】
位置情報変換部５は、位置情報を用いて、第１部分画像Ｐ１及び第２部分画像Ｐ２上の任意点の座標を基準座標系における座標に変換する。図９に実施例２に係る画像処理装置で使用する全体画像Ｇにおいて２つの部分画像内の対象物間の距離を計算する方法を説明するための図を示す。各画像内での位置（Ｖｔ１，Ｈｚ１）と（Ｖｔ２，Ｈｚ２）に各部分画像の位置情報をそれぞれ掛け、第１穴３１及び第２穴３２のそれぞれの基準座標系上での位置（Ｖｔ１all，Ｈｚ１all）と（Ｖｔ２all，Ｈｚ２all）を求める。このようにして、第１部分画像Ｐ１における第１穴３１の座標（Ｖｔ１，Ｈｚ１）は、基準座標系上において（Ｖｔ１all，Ｈｚ１all）に変換される。同様に、第２部分画像Ｐ２における第２穴３２の座標（Ｖｔ２，Ｈｚ２）は、基準座標系上において（Ｖｔ２all，Ｈｚ２all）に変換される。次に、基準座標系上での第１穴３１と第２穴３２の距離（ｇｌｏｂａｌ ｌｅｎｇｔｈ）を画素ベースで計測する。このようにして、２つの穴の距離は、（Ｖｔ１all，Ｈｚ１all）と（Ｖｔ２all，Ｈｚ２all）の座標を用いて算出することが出来る。
【００５４】
計測されたｇｌｏｂａｌ ｌｅｎｇｔｈ及び座標（Ｖｔ１all，Ｈｚ１all）と（Ｖｔ２all，Ｈｚ２all）を、全体画像Ｇに対するキャリブレーションデータで［ｍｍ］単位等で表した実際の距離と位置に変換することができる。
【００５５】
ここで、第１部分画像Ｐ１、及び第２部分画像Ｐ２を撮像する場合における露光条件及び照明条件のうちの少なくとも１つをそれぞれ異なる値に設定するようにしてもよい。
【００５６】
次に、実施例３に係る画像処理装置について説明する。実施例３に係る画像処理装置においては、第１撮像条件及び第２撮像条件には、第１部分画像及び第２部分画像を撮像する際の露光条件及び照明条件のうちの少なくとも１つが含まれる点を特徴としている。
【００５７】
図１０に、実施例３に係る画像処理装置で使用する全体画像と異なる露光条件及び照明条件で撮像された２つの部分画像の関係を示す。
【００５８】
第１画像処理ツールは第１部分画像Ｐ１を使用してワーク１６自体の位置を検出する。第２画像処理ツールは第２部分画像Ｐ２を使用してワーク１６上の２本のエッジＥ１及びＥ２を検出する。
【００５９】
このとき、第１画像処理ツールの検出対象は、第２画像処理ツールの検出対象とは異なるため、第１部分画像Ｐ１と第２部分画像Ｐ２とでは露光条件及び照明条件が異なる。ワーク１６が、照明無し、かつ、通常の明るさの露光時間で検出できる場合、第１部分画像Ｐ１の露光条件は「露光時間Ｔ１」、照明条件は「ＬＥＤ照明未使用」となる。これに対して、ワーク１６上のエッジＥ１及びＥ２が、照明を当ててエッジ部分を光らせないと検出できない場合、第２部分画像Ｐ２の露光条件は「露光時間Ｔ２」、照明条件は「ＬＥＤ照明使用」となる。
【００６０】
また、このような用途の場合にはワークの位置検出には高精度が要求されないため、第１部分画像Ｐ１の第１ビニング（ｂｉｎｎｉｎｇ１）は大きい値でも構わない。これに対して、エッジＥ１及びＥ２を検出する第２部分画像Ｐ２の第２ビニング（ｂｉｎｎｉｎｇ２）は最終的な精度に関わってくるため、小さい値に設定することが好ましい。
【００６１】
図１１に、実施例３に係る画像処理装置で使用する全体画像において１つの部分画像内の２つの対象物間の距離を計算する方法を説明するための図を示す。第１部分画像Ｐ１における位置座標（Ｖｔ１，Ｈｚ１）に第１部分画像Ｐ１の位置情報を掛け、基準座標系上での位置座標（Ｖｔ１all，Ｈｚ１all）を求める。この（Ｖｔ１all，Ｈｚ１all）を使って第２画像処理ツールの検索範囲が動的に移動される。
【００６２】
次に、第２部分画像Ｐ２上でのエッジ間の距離ｌｏｃａｌ ｌｅｎｇｔｈを画素ベースで計測する。
【００６３】
図１２に、実施例３に係る画像処理装置で使用する全体画像において２つの対象物間の距離を計算する方法を説明するための図を示す。
【００６４】
計測されたｌｏｃａｌ ｌｅｎｇｔｈに第２部分画像Ｐ２の位置情報を掛け、基準座標系上でのエッジ間の距離ｇｌｏｂａｌ ｌｅｎｇｔｈを求める。基準座標系上での距離ｇｌｏｂａｌ ｌｅｎｇｔｈを求めるだけであれば、ｌｏｃａｌ ｌｅｎｇｔｈに第２ビニング（ｂｉｎｎｉｎｇ２）を掛ければよい。一方、エッジＥ１及びＥ２の位置まで求める場合は、位置情報の全てを掛ければよい。
【００６５】
計測されたｇｌｏｂａｌ ｌｅｎｇｔｈ及び（Ｖｔ１all，Ｈｚ１all）を、全体画像Ｇに対するキャリブレーションデータで［ｍｍ］単位等で表した実際の距離と位置に変換する。
【００６６】
次に、実施例４に係る画像処理装置について説明する。図１３に実施例４に係る画像処理装置で使用する全体画像と２つの部分画像との関係を示す。実施例４に係る画像処理装置においては、テンプレートマッチングでのテンプレート画像を設定するウィンドウにおいて、第１部分画像Ｐ１を撮像するためのウィンドウを設定したときの撮像条件と、その後、第２部分画像Ｐ２を撮像するためのウィンドウを設定したときの撮像条件が異なる点を特徴としている。
【００６７】
前提として、テンプレート画像は特定の解像度（例えば、第１部分画像Ｐ１の第１ビニング（ｂｉｎｎｉｎｇ１））で取得されたものであり、異なる解像度（例えば、第２部分画像Ｐ２の第２ビニング（ｂｉｎｎｉｎｇ２））の画像に使用することはできない。従って、第１部分画像Ｐ１から第２部分画像Ｐ２に撮像条件が変更された場合には、テンプレート画像の設定をユーザが再度明示的に行う必要がある。
【００６８】
図１４に実施例４に係る画像処理装置で使用する全体画像と第１部分画像の関係を示す。まず、第１部分画像Ｐ１上で、検出したいワークに対してテンプレートマッチングでのテンプレート画像を設定する。テンプレートのウィンドウ２０は、第１部分画像Ｐ１上での位置座標は（Ｖｔ１，Ｈｚ１）、大きさはｈ１×ｗ１である。
【００６９】
このとき、第１部分画像Ｐ１の位置情報を掛けることにより、基準座標系上の位置座標は（Ｖｔ１all，Ｈｚ１all）、大きさｈ×ｗとして設定が自動的に保存される。
【００７０】
また、このときの第１部分画像Ｐ１の位置情報も、テンプレート画像設定時の画像の位置情報として、（Ｖｔ１all，Ｈｚ１all）及びｈ×ｗと関連づけて保存される。
【００７１】
図１５に実施例４に係る画像処理装置で使用する全体画像と第２部分画像との関係を示す。第１部分画像Ｐ１の撮像条件を第２部分画像Ｐ２のように変える。保存されている設定値（Ｖｔ１all，Ｈｚ１all）及びｈ×ｗに第２部分画像Ｐ２の位置情報の逆行列を掛けることで、テンプレートのウィンドウ２０が第２部分画像Ｐ２上での位置（Ｖｔ２，Ｈｚ２）、大きさｈ２×ｗ２に自動的に変換される。
【００７２】
このとき、第２部分画像Ｐ２の位置情報内の第２ビニング（ｂｉｎｎｉｎｇ２）が、テンプレート画像設定時の画像の位置情報として保存されている第１ビニング（ｂｉｎｎｉｎｇ１）と異なる場合には、テンプレート画像の設定を再度し直してもらうようにユーザに注意を促す（ここではテンプレート画像自体の自動変換は行わず、ユーザが明示的に設定を行う）。
【００７３】
このようにして、第１部分画像Ｐ１上での設定（Ｖｔ１，Ｈｚ１）及びｈ１×ｗ１が第２部分画像Ｐ２上での設定（Ｖｔ２，Ｈｚ２）及びｈ２×ｗ２に自動的に変換される。撮像条件が変わったことで本来は物理的に異なるウィンドウで表現されてしまうものを、このように自動変換して物理的に同じウィンドウとして表現することで、ユーザのテンプレート画像の再設定を簡略化することができる。
【符号の説明】
【００７４】
１    画像処理装置
２    画像取得部
３    撮像条件記憶部
４    位置情報記憶部
５    位置情報変換部
６    設定情報記憶部
７    設定情報変換部
１０    ロボット
１１    アーム先端部
１２    視覚センサ
１３    ワーク
１４    ロボット制御装置
１００    ロボットビジョンシステム
【図１】
2020064566.tif 000013
【図２】
2020064566.tif 000014
【図３】
2020064566.tif 000015
【図４】
2020064566.tif 000016
【図５】
2020064566.tif 000017
【図６】
2020064566.tif 000018
【図７】
2020064566.tif 000019
【図８】
2020064566.tif 000020
【図９】
2020064566.tif 000021
【図１０】
2020064566.tif 000022
【図１１】
2020064566.tif 000023
【図１２】
2020064566.tif 000024
【図１３】
2020064566.tif 000025
【図１４】
2020064566.tif 000026
【図１５】
2020064566.tif 000027