(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-30
(45)【発行日】2023-11-08
(54)【発明の名称】複数の撮像条件を用いた画像処理装置
(51)【国際特許分類】
G06T 3/00 20060101AFI20231031BHJP
B25J 19/04 20060101ALI20231031BHJP
【FI】
G06T3/00 700
B25J19/04
(21)【出願番号】P 2018197643
(22)【出願日】2018-10-19
【審査請求日】2021-08-17
【前置審査】
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100099759
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100112357
【氏名又は名称】廣瀬 繁樹
(74)【代理人】
【識別番号】100151459
【氏名又は名称】中村 健一
(72)【発明者】
【氏名】高橋 悠太郎
(72)【発明者】
【氏名】藁科 文和
(72)【発明者】
【氏名】並木 勇太
【審査官】岡本 俊威
(56)【参考文献】
【文献】特開2000-121358(JP,A)
【文献】特開平06-278064(JP,A)
【文献】特開2003-211382(JP,A)
【文献】特開2015-005093(JP,A)
【文献】特開平11-238118(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 3/00- 3/60
B25J 19/04
(57)【特許請求の範囲】
【請求項1】
視野領域の全体画像の座標系である基準座標系とは異なる座標系を有する部分画像であって、所定の撮像条件で撮像された前記視野領域の一部である部分画像を取得する画像取得部と、
前記所定の撮像条件を記憶する撮像条件記憶部と、
前記基準座標系における前記部分画像の座標系の原点を含む撮像範囲及びビニングに関する位置情報を記憶する位置情報記憶部と、
前記位置情報を用いて、前記部分画像上の任意点の座標を前記基準座標系における座標に変換する位置情報変換部と、
を有
し、
前記撮像条件には、前記部分画像を撮像する際の露光条件及び照明条件のうちの少なくとも1つが含まれる、
画像処理装置。
【請求項2】
前記基準座標系で表された第1設定情報を記憶する設定情報記憶部と、
前記部分画像に対して画像処理を行うために、前記位置情報を用いて、前記第1設定情報を前記部分画像の座標系で表された第2設定情報に変換する設定情報変換部と、
をさらに有する請求項1に記載の画像処理装置。
【請求項3】
前記撮像範囲は、前記基準座標系における前記部分画像の原点の座標及び所定の範囲により特定される、請求項1または2に記載の画像処理装置。
【請求項4】
前記位置情報は、前記部分画像を前記基準座標系に対して所定の角度回転させるための回転角度に関する情報、前記部分画像を左右反転させるための座標変換情報、前記部分画像を上下反転させるための座標変換情報、及び前記部分画像を平行移動させるための座標変換情報のうちの少なくとも1つを含む、請求項3に記載の画像処理装置。
【請求項5】
前記位置情報は、前記部分画像の座標系上での座標を前記基準座標系上での座標に変換する同次変換行列に関する情報を含む、請求項3または4に記載の画像処理装置。
【請求項6】
視野領域の全体画像の座標系である基準座標系とは異なる座標系を有する第1部分画像及び第2部分画像であって、所定の第1撮像条件で撮像された前記視野領域の一部である第1部分画像、並びに前記第1撮像条件とは異なる第2撮像条件で撮像された前記視野領域の一部である第2部分画像を取得する画像取得部と、
前記第1撮像条件、及び第2撮像条件を記憶する撮像条件記憶部と、
前記基準座標系における前記第1部分画像及び前記第2部分画像の座標系の原点を含む撮像範囲及びビニングに関する位置情報を記憶する位置情報記憶部と、
前記位置情報を用いて、前記第1部分画像及び前記第2部分画像上の任意点の座標を前記基準座標系における座標に変換する位置情報変換部と、
を有
し、
前記第1撮像条件及び前記第2撮像条件には、前記第1部分画像及び前記第2部分画像を撮像する際の露光条件及び照明条件のうちの少なくとも1つが含まれる、
画像処理装置。
【請求項7】
前記第1部分画像に対して第1画像処理ツールを実行するための第3設定情報、及び前記第2部分画像に対して第2画像処理ツールを実行するための第4設定情報を記憶する設定情報記憶部をさらに有する請求項
6に記載の画像処理装置。
【請求項8】
前記第1部分画像及び前記第2部分画像の撮像範囲は、前記基準座標系における前記第1部分画像及び前記第2部分画像のそれぞれの原点の座標及び各所定の範囲により特定される、請求項
6または
7に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置に関し、特に、複数の撮像条件を用いた画像処理装置に関する。
【背景技術】
【0002】
カメラをロボットの手先または外部に設置して画像を撮像し、ロボットの位置の補正やワークの外観検査をすることは従来から行われている。この中では、複数の画像処理ツールが組み合わされ、一つの画像処理プログラムとして結果を出力するようになっている。
【0003】
画像処理ツールは特定の画像処理を行うが、画像処理ツールが画像処理に使用する領域は画像全体ではなく、画像の一部分だけであることも多い(例えば、特許文献1)。そのような場合には、画像処理する領域を何らかの方法で指定して、指定した領域内部だけで画像処理することで処理時間を速くすることができる。上記のような方法では、カメラで画像全体を撮像し、画像処理装置に取り込み、画像全体のうち、指定された領域のみを画像処理に使用することになる。
【0004】
ここで、撮像された画像のうち、カメラで撮像可能な全領域の画像が必要なのではなく、指定した領域だけが必要ということになる。そこで、指定された領域のみを撮像することで、画像の転送時間の短縮やメモリ使用量を削減することができる。
【0005】
ここで問題となるのが、画像の一部分だけを撮像して画像処理に使用すると、画像から得られる位置情報が部分画像の座標系で表現されることである。これは以下のような場合に問題となる。
・複数の画像処理ツールがそれぞれ異なる部分画像を処理し、その処理結果を合成するとき。例えば、1つの画像処理ツールで1つ目の穴を検出し、他の画像処理ツールで2つ目の穴を検出し、1つ目の穴と2つ目の穴との間の距離を計測する場合。
・カメラが全体画像に対してキャリブレーションされているとき。部分画像の座標系で表現された位置を、全体画像に対するキャリブレーションデータで変換することができない。
【0006】
この問題は撮像の領域に限ったことではなく、画像の解像度(ビニング)においても同じことが言える。従来は、各画像処理ツールの中で必要となる一番高い解像度の全領域での画像を撮像し、その後に画像処理しない領域を決定して、それ以外の画像処理ツールでもその画像を使用していた。しかし、撮像された画像として、そのカメラで撮像可能な最高解像度の画像が必要なのではない。そのため、それぞれの画像処理ツールに応じて必要な解像度の画像を撮像することで、画像の転送時間の短縮やメモリ使用量を削減することができる。
【0007】
しかし、画像の解像度を変更して撮像して画像処理に使用すると、画像から得られる位置情報が縮小画像の座標系で表現される。これにより、部分画像を使用したときと同様の問題が発生する。
【0008】
さらに、各画像処理ツールで異なる撮像領域やビニングの画像を使用しようとすると、撮像領域やビニングを変更したときに、画像処理ツールの設定が妥当なものでなくなるという問題がある。
【0009】
これは以下のような場合に問題となる。
・画像処理ツールで、特定のビニングで表現された画像を持つ場合。例えば、画像処理ツールが正規化相関によるテンプレートマッチングを行うものであるとする。ここで、正規化相関で使用するテンプレート画像は特定の解像度で取得されたものであり、異なる解像度の画像に使用することはできない。
・画像処理ツールで、特定の部分画像や解像度の画像の座標系で表現された設定を持つ場合。例えば、画像処理に使用する領域を指定するときに、部分画像の座標系で表現された値で指定していると、部分画像の領域を変更したときに、画像処理する領域は以前とは物理的に異なる領域を表現してしまうことになる。
【先行技術文献】
【特許文献】
【0010】
【発明の概要】
【発明が解決しようとする課題】
【0011】
解決しようとする問題点は、1つの画像処理プログラムの中で、異なる撮像条件で撮像した画像を併用できるようにする点である。
【課題を解決するための手段】
【0012】
本開示の一実施例に係る画像処理装置は、視野領域の全体画像の座標系である基準座標系とは異なる座標系を有する部分画像であって、所定の撮像条件で撮像された視野領域の一部である部分画像を取得する画像取得部と、所定の撮像条件を記憶する撮像条件記憶部と、基準座標系における部分画像の座標系の原点を含む撮像範囲及びビニングに関する位置情報を記憶する位置情報記憶部と、位置情報を用いて、部分画像上の任意点の座標を基準座標系における座標に変換する位置情報変換部と、を有する。
【発明の効果】
【0013】
本開示の一実施例に係る画像処理装置によれば、1つの画像処理プログラムの中で、異なる撮像条件で撮像した画像を併用できる。
【図面の簡単な説明】
【0014】
【
図1】実施例1に係る画像処理装置を含むロボットビジョンシステムの構成図である。
【
図2】実施例1に係る画像処理装置の機能ブロック図である。
【
図3】実施例1に係る画像処理装置で使用する全体画像と部分画像との関係を示す図である。
【
図4】実施例1に係る画像処理装置で使用する全体画像と部分画像内のワークとの関係を示す図である。
【
図5】部分画像内でワークが回転している場合の回転角の例を示す図である。
【
図6】実施例1に係る画像処理装置で使用する全体画像と回転した部分画像との関係を示す図である。
【
図7】実施例1に係る画像処理装置で使用する全体画像と左右反転した部分画像との関係を示す図である。
【
図8】実施例2に係る画像処理装置で使用する全体画像と2つの部分画像との関係を示す図である。
【
図9】実施例2に係る画像処理装置で使用する全体画像において2つの部分画像内の対象物間の距離を計算する方法を説明するための図である。
【
図10】実施例3に係る画像処理装置で使用する全体画像と異なる露光条件及び照明条件で撮像された2つの部分画像との関係を示す図である。
【
図11】実施例3に係る画像処理装置で使用する全体画像において1つの部分画像内の2つの対象物間の距離を計算する方法を説明するための図である。
【
図12】実施例3に係る画像処理装置で使用する全体画像において2つの対象物間の距離を計算する方法を説明するための図である。
【
図13】実施例4に係る画像処理装置で使用する全体画像と第1部分画像及び第2部分画像との関係を示す図である。
【
図14】実施例4に係る画像処理装置で使用する全体画像と第1部分画像との関係を示す図である。
【
図15】実施例4に係る画像処理装置で使用する全体画像と第2部分画像との関係を示す図である。
【発明を実施するための形態】
【0015】
以下、図面を参照して、本発明に係る画像処理装置について説明する。ただし、本発明の技術的範囲はそれらの実施の形態には限定されず、特許請求の範囲に記載された発明とその均等物に及ぶ点に留意されたい。
【0016】
まず、実施例1に係る画像処理装置について説明する。
図1に実施例1に係る画像処理装置を含むロボットビジョンシステム100の構成図を示し、
図2に実施例1に係る画像処理装置の機能ブロック図を示す。ロボットビジョンシステム100は、ロボット制御装置14と、アーム先端部11に装着された装置を用いてワーク13(作業対象物)に対して作業を行うロボット10と、ロボット10のアーム先端部11に装着され、ワーク13を撮像する視覚センサ12と、を備えている。
【0017】
ロボット10は、例えば6軸の多関節ロボットであり、作業台40の上部に配置されたワーク13に対して所定の作業を行う。例えば、ワーク13を把持する作業であれば、アーム先端部11にハンドを用いることができる。ただし、このような例には限られず、アーム先端部11は、溶着や研磨等の他の作業を行うツールであってもよい。アーム先端部11は水平方向だけでなく垂直方向にも動作させることができ、垂直方向に延びた軸を中心に回転させることもできる。このようにアーム先端部11を動かすことにより、アーム先端部11に設けた視覚センサ12の画像を調整することができる。
【0018】
図1に示すようにロボット10のアーム先端部11には視覚センサ12を設けることができる。あるいは、視覚センサ12を外部に固定して設けるようにしてもよい。視覚センサ12は2次元のカメラでもよいし、3次元のセンサ(例えば、レンジセンサなど)でもよい。
図1には、視覚センサ12を1台設置した例を示したが、視覚センサは複数でもよい。例えば、視覚センサは、2次元のカメラ2台を用いて校正されたステレオカメラでもよい。
【0019】
視覚センサ12は作業台40の上部に載置されたワーク13を撮像する。撮像した画像は表示装置15に表示される。例えば、視覚センサ12によりワーク13を撮像した場合、表示装置15にはワークの画像16が表示される。
【0020】
実施例1に係る画像処理装置の機能ブロック図(
図2)について説明する。画像処理装置1はロボット制御装置14(
図1参照)の内部に設けられている。画像処理装置1はロボット制御装置14内に設けられた演算処理装置により実行される。
【0021】
実施例1に係る画像処理装置1は、画像取得部2と、撮像条件記憶部3と、位置情報記憶部4と、位置情報変換部5と、を有する。
【0022】
図3に、実施例1に係る画像処理装置で使用する全体画像と部分画像の関係を示す。画像取得部2は、視野領域の全体画像Gの座標系である基準座標系とは異なる座標系を有する部分画像Pであって、所定の撮像条件で撮像された視野領域の一部である部分画像Pを取得する。ここで、「基準座標系」とは、撮像に使用した視覚センサ12の撮像可能な最大範囲かつ最高解像度での画像の座標系をいう。また。基準座標系は物理的に定義されている。
【0023】
例えば、部分画像Pを撮像する撮像条件として、撮像範囲が、基準座標系における部分画像Pの原点の座標及び所定の範囲により特定されることが好ましい。即ち、「撮像範囲」を視野領域のうち、原点を基準座標系における座標(x,y)とした所定の範囲とすることができる。また、「ビニング」を2とすることができる。ビニング(binning)とは、近傍にある複数の画素を加算する技術であり、ビニングによって読み出し画素数を減らすことができ、読み出し速度の高速化を図ることができる。また、撮像条件には、部分画像Pを撮像する際の露光条件及び照明条件のうちの少なくとも1つが含まれていてもよい。
【0024】
撮像条件記憶部3は、上記の撮像条件を記憶する。即ち、部分画像Pが、基準座標系において、どの部分をどのくらいのスケールで切り出してきたものなのかという情報を記憶する。
【0025】
位置情報記憶部4は、基準座標系における部分画像Pの座標系の原点を含む撮像範囲及びビニングに関する位置情報を記憶する。具体的には、基準座標系上での部分画像Pの左上の座標値をベクトル(x,y)、ビニングの大きさをビニング×単位行列とし、その位置情報を記憶する。
【0026】
位置情報変換部5は、位置情報を用いて、部分画像P上の任意点の座標を基準座標系における座標に変換する。
【0027】
画像処理装置1は、基準座標系で表された第1設定情報を記憶する設定情報記憶部6と、部分画像Pに対して画像処理を行うために、位置情報を用いて、第1設定情報を部分画像の座標系で表された第2設定情報に変換する設定情報変換部7と、をさらに有することが好ましい。
【0028】
画像処理ツールが全体画像Gを使用してテンプレートマッチングを行う場合について説明する。このとき、全体画像Gに対してテンプレートマッチングを行うための画像処理ツールを実行するための設定情報を第1設定情報とする。第1設定情報は設定情報記憶部6に記憶しておくことができる。
【0029】
画像処理ツールは部分画像Pを使用してテンプレートマッチングを行うものとする。部分画像Pに対してテンプレートマッチングを行うための画像処理ツールを実行する際に、部分画像Pは全体画像Gとは撮像条件が異なっているため、第1設定情報をそのまま使用することはできない。そこで、設定情報変換部7は、画像処理ツールが部分画像Pに対してテンプレートマッチングを行うために、位置情報を用いて、第1設定情報を第2設定情報に変換する。
【0030】
また、画像処理装置1は、キャリブレーションデータを記憶するキャリブレーションデータ記憶部8を備えていることが好ましい。カメラキャリブレーションを全体画像Gに対して行っておけば、部分画像Pで画像処理したとしても、前述のように部分画像P上での位置を基準座標系上での位置に変換すると、カメラキャリブレーション結果をそのまま使用することができる。
【0031】
これと同じように、各画像処理ツール自体に画像の撮像範囲とビニングに関する位置情報を持たせ、設定が変わったとき(検出を行ったとき)に、その位置情報を使って変換作業を行い、各画像処理ツール内部の設定を自動的に変換することも可能になる。
【0032】
位置情報は、部分画像Pを基準座標系に対して所定の角度回転させるための回転角度に関する情報、部分画像Pを左右反転させるための座標変換情報、部分画像Pを上下反転させるための座標変換情報、及び部分画像を平行移動させるための座標変換情報のうちの少なくとも1つを含むようにしてもよい。
図4に、実施例1に係る画像処理装置で使用する全体画像Gと部分画像P内のワークとの関係を示す。部分画像Pの原点は基準座標系上で(x,y)で表される。ワークの部分画像P上の座標は(Vt,Hz)である。ワークが角度θで回転している場合は、角度情報には以下の回転行列R(θ)が入る。
【数1】
【0033】
位置情報は、部分画像Pの座標系上での座標を基準座標系上での座標に変換する同次変換行列に関する情報を含むことが好ましい。位置情報は同次変換行列Tとして表現することができる。例えば、同次変換行列Tが基準座標系上での位置情報を表すときには以下のようになる。
【数2】
【0034】
部分画像Pの座標系上での座標(Vt,Hz)にこの同次変換行列Tを掛けることにより、基準座標系上での座標(Vtall,Hzall)とすることができる。
【0035】
図5に部分画像内でワークが回転している場合の回転角の例を示す。
図6に実施例1に係る画像処理装置で使用する全体画像Gと回転した部分画像との関係を示す。回転がある場合には、位置情報のビニングに回転させたい角度αを入れた回転行列を掛けて位置情報として保存しておく。位置情報は同次変換行列Tとして表現することができる。例えば、同次変換行列が基準座標系上での位置情報を表すときには以下のようになる。
【数3】
同次変換行列Tのαに回転角度を代入し、座標(Vt,Hz)にこの同次変換行列を掛けることにより、基準座標系上での座標(Vt
all,Hz
all)とすることができる。角度情報には回転させたい角度を入れた回転行列を掛ける。
【0036】
逆に、座標(Vtall,Hzall)から座標(Vt,Hz)を求めたい場合には、同次変換行列の逆行列を掛けることで求めることができる。回転がない場合には、角度情報には元の値がそのまま入り、回転がある場合には、回転させたい角度を入れた回転行列の逆行列を掛ける。
【0037】
図7に実施例1に係る画像処理装置で使用する全体画像と左右反転した部分画像との関係を示す。画像を反転させたい場合には、位置情報のビニングに、下記のような行列を掛けて位置情報として保存しておく。
【数4】
このときの同次変換行列Tは以下のようになる。
【数5】
【0038】
nx及びnyはそれぞれ、二次元でのx方向及びy方向の単位ベクトルであり、内積は0となる。左右を反転させたいときには、nx
2=1,ny
2=0、かつ、xsize=部分画像Pの横幅,ysize=0とする。上下を反転させたいときには、nx
2=0,ny
2=1、かつ、xsize=0,ysize=部分画像Pの縦幅とする。上下左右を両方反転させたいときには、nx
2=1,ny
2=1かつxsize=部分画像Pの横幅,ysize=部分画像Pの縦幅とする。
【0039】
ワーク16aの座標(Vt,Hz)に、この同次変換行列を掛けることにより、基準座標系上でのワーク16aの座標(Vtall,Hzall)とすることができる。角度情報にも式(1)のような行列R(θ)を掛ける。角度情報の計算の詳細は以下の通りで、左右反転時に左右対称、上下反転時に上下対称となるよう、回転させたい角度を入れた回転行列R(θ)をそれぞれ掛けている。
【0040】
左右反転時の角度情報は以下のようにして求められる。
【数6】
【0041】
上下反転時の角度情報は以下のようにして求められる。
【数7】
【0042】
上下左右反転時の角度情報は以下のようにして求められる。
【数8】
【0043】
画像を平行移動させたい場合には、位置情報のビニングに、下記のような平行移動行列を掛けて位置情報として保存しておく。
【数9】
このときの同次変換行列Tは以下のようになる。
【数10】
【0044】
実施例1に係る画像処理装置によれば、ユーザが画像の撮像範囲やビニングを意識せずとも、各画像処理ツールの結果が正しく処理され、一つの結果として出力される。
具体的には、以下の効果が得られる。
・必要な撮像範囲、必要な解像度での画像を撮像して使用することで、画像の転送時間の短縮やメモリ使用量の削減を実現。
・撮像範囲やビニングが異なっていてもキャリブレーションが使い回せることによる教示作業の簡易化。
・マッチングのテンプレート画像や画像処理領域などの各種設定情報も使い回せることによる教示作業の簡易化。
・単純な撮像範囲や解像度の変更だけではなく、画像の回転や反転の場合にも対応が可能。
【0045】
次に、実施例2に係る画像処理装置について説明する。実施例2に係る画像処理装置は、
図2に示した実施例1に係る画像処理装置1と同様である。実施例2に係る画像処理装置は、画像取得部2と、撮像条件記憶部3と、位置情報記憶部4と、位置情報変換部5と、を有する。
【0046】
実施例2に係る画像処理装置は、第1部分画像P1に対して第1画像処理ツールを実行するための第3設定情報、及び第2部分画像P2に対して第2画像処理ツールを実行するための第4設定情報を記憶する設定情報記憶部6をさらに有することが好ましい。
【0047】
図8に、実施例2に係る画像処理装置で使用する全体画像と第1部分画像及び第2部分画像の関係を示す。
【0048】
第1画像処理ツールは第1部分画像P1を使用して第1穴31を検出する。このとき、第1部分画像P1に対して穴を検出するための画像処理ツールを実行するための設定情報を第3設定情報とする。第3設定情報は設定情報記憶部6に記憶しておくことができる。
【0049】
第2画像処理ツールは第2部分画像P2を使用して第2穴32を検出する。第2部分画像P2に対して穴を検出するための画像処理ツールを実行する際に、第2部分画像P2は第1部分画像P1とは撮像条件が異なっているため、第3設定情報をそのまま使用することはできず、第4設定情報を使用する。
【0050】
画像取得部2は、視野領域の全体画像Gの座標系である基準座標系とは異なる座標系を有する第1部分画像P1及び第2部分画像P2であって、第1撮像条件で撮像された視野領域の一部である第1部分画像P1、並びに第1撮像条件とは異なる第2撮像条件で撮像された視野領域の他の一部である第2部分画像P2を取得する。
【0051】
撮像条件記憶部3は、第1撮像条件及び第2撮像条件を記憶する。第1部分画像P1及び第2部分画像P2の撮像範囲は、基準座標系における第1部分画像P1及び第2部分画像P2のそれぞれの原点の座標及び各所定の範囲により特定されることが好ましい。第1部分画像P1の撮像範囲は基準座標系上の座標(x1,y1)を第1部分画像P1の原点とした所定の範囲とすることができる。第1部分画像P1のビニングを第1ビニング(binning1)とすることができる。第2部分画像P2の撮像範囲を基準座標系上の座標(x2,y2)を第2部分画像P2の原点とした所定の範囲とすることができる。第2部分画像P2のビニングを第2ビニング(binning2)とすることができる。第1部分画像P1における第1穴31の座標は(Vt1,Hz1)である。第2部分画像P2における第2穴32の座標は(Vt2,Hz2)である。
【0052】
位置情報記憶部4は、基準座標系における第1部分画像P1の座標系の原点(x1,y1)及び第2部分画像P2の座標系の原点(x2,y2)を含む撮像範囲及びビニングに関する位置情報を記憶する。
【0053】
位置情報変換部5は、位置情報を用いて、第1部分画像P1及び第2部分画像P2上の任意点の座標を基準座標系における座標に変換する。
図9に実施例2に係る画像処理装置で使用する全体画像Gにおいて2つの部分画像内の対象物間の距離を計算する方法を説明するための図を示す。各画像内での位置(Vt1,Hz1)と(Vt2,Hz2)に各部分画像の位置情報をそれぞれ掛け、第1穴31及び第2穴32のそれぞれの基準座標系上での位置(Vt1
all,Hz1
all)と(Vt2
all,Hz2
all)を求める。このようにして、第1部分画像P1における第1穴31の座標(Vt1,Hz1)は、基準座標系上において(Vt1
all,Hz1
all)に変換される。同様に、第2部分画像P2における第2穴32の座標(Vt2,Hz2)は、基準座標系上において(Vt2
all,Hz2
all)に変換される。次に、基準座標系上での第1穴31と第2穴32の距離(global length)を画素ベースで計測する。このようにして、2つの穴の距離は、(Vt1
all,Hz1
all)と(Vt2
all,Hz2
all)の座標を用いて算出することが出来る。
【0054】
計測されたglobal length及び座標(Vt1all,Hz1all)と(Vt2all,Hz2all)を、全体画像Gに対するキャリブレーションデータで[mm]単位等で表した実際の距離と位置に変換することができる。
【0055】
ここで、第1部分画像P1、及び第2部分画像P2を撮像する場合における露光条件及び照明条件のうちの少なくとも1つをそれぞれ異なる値に設定するようにしてもよい。
【0056】
次に、実施例3に係る画像処理装置について説明する。実施例3に係る画像処理装置においては、第1撮像条件及び第2撮像条件には、第1部分画像及び第2部分画像を撮像する際の露光条件及び照明条件のうちの少なくとも1つが含まれる点を特徴としている。
【0057】
図10に、実施例3に係る画像処理装置で使用する全体画像と異なる露光条件及び照明条件で撮像された2つの部分画像の関係を示す。
【0058】
第1画像処理ツールは第1部分画像P1を使用してワーク16自体の位置を検出する。第2画像処理ツールは第2部分画像P2を使用してワーク16上の2本のエッジE1及びE2を検出する。
【0059】
このとき、第1画像処理ツールの検出対象は、第2画像処理ツールの検出対象とは異なるため、第1部分画像P1と第2部分画像P2とでは露光条件及び照明条件が異なる。ワーク16が、照明無し、かつ、通常の明るさの露光時間で検出できる場合、第1部分画像P1の露光条件は「露光時間T1」、照明条件は「LED照明未使用」となる。これに対して、ワーク16上のエッジE1及びE2が、照明を当ててエッジ部分を光らせないと検出できない場合、第2部分画像P2の露光条件は「露光時間T2」、照明条件は「LED照明使用」となる。
【0060】
また、このような用途の場合にはワークの位置検出には高精度が要求されないため、第1部分画像P1の第1ビニング(binning1)は大きい値でも構わない。これに対して、エッジE1及びE2を検出する第2部分画像P2の第2ビニング(binning2)は最終的な精度に関わってくるため、小さい値に設定することが好ましい。
【0061】
図11に、実施例3に係る画像処理装置で使用する全体画像において1つの部分画像内の2つの対象物間の距離を計算する方法を説明するための図を示す。第1部分画像P1における位置座標(Vt1,Hz1)に第1部分画像P1の位置情報を掛け、基準座標系上での位置座標(Vt1
all,Hz1
all)を求める。この(Vt1
all,Hz1
all)を使って第2画像処理ツールの検索範囲が動的に移動される。
【0062】
次に、第2部分画像P2上でのエッジ間の距離local lengthを画素ベースで計測する。
【0063】
図12に、実施例3に係る画像処理装置で使用する全体画像において2つの対象物間の距離を計算する方法を説明するための図を示す。
【0064】
計測されたlocal lengthに第2部分画像P2の位置情報を掛け、基準座標系上でのエッジ間の距離global lengthを求める。基準座標系上での距離global lengthを求めるだけであれば、local lengthに第2ビニング(binning2)を掛ければよい。一方、エッジE1及びE2の位置まで求める場合は、位置情報の全てを掛ければよい。
【0065】
計測されたglobal length及び(Vt1all,Hz1all)を、全体画像Gに対するキャリブレーションデータで[mm]単位等で表した実際の距離と位置に変換する。
【0066】
次に、実施例4に係る画像処理装置について説明する。
図13に実施例4に係る画像処理装置で使用する全体画像と2つの部分画像との関係を示す。実施例4に係る画像処理装置においては、テンプレートマッチングでのテンプレート画像を設定するウィンドウにおいて、第1部分画像P1を撮像するためのウィンドウを設定したときの撮像条件と、その後、第2部分画像P2を撮像するためのウィンドウを設定したときの撮像条件が異なる点を特徴としている。
【0067】
前提として、テンプレート画像は特定の解像度(例えば、第1部分画像P1の第1ビニング(binning1))で取得されたものであり、異なる解像度(例えば、第2部分画像P2の第2ビニング(binning2))の画像に使用することはできない。従って、第1部分画像P1から第2部分画像P2に撮像条件が変更された場合には、テンプレート画像の設定をユーザが再度明示的に行う必要がある。
【0068】
図14に実施例4に係る画像処理装置で使用する全体画像と第1部分画像の関係を示す。まず、第1部分画像P1上で、検出したいワークに対してテンプレートマッチングでのテンプレート画像を設定する。テンプレートのウィンドウ20は、第1部分画像P1上での位置座標は(Vt1,Hz1)、大きさはh1×w1である。
【0069】
このとき、第1部分画像P1の位置情報を掛けることにより、基準座標系上の位置座標は(Vt1all,Hz1all)、大きさh×wとして設定が自動的に保存される。
【0070】
また、このときの第1部分画像P1の位置情報も、テンプレート画像設定時の画像の位置情報として、(Vt1all,Hz1all)及びh×wと関連づけて保存される。
【0071】
図15に実施例4に係る画像処理装置で使用する全体画像と第2部分画像との関係を示す。第1部分画像P1の撮像条件を第2部分画像P2のように変える。保存されている設定値(Vt1
all,Hz1
all)及びh×wに第2部分画像P2の位置情報の逆行列を掛けることで、テンプレートのウィンドウ20が第2部分画像P2上での位置(Vt2,Hz2)、大きさh2×w2に自動的に変換される。
【0072】
このとき、第2部分画像P2の位置情報内の第2ビニング(binning2)が、テンプレート画像設定時の画像の位置情報として保存されている第1ビニング(binning1)と異なる場合には、テンプレート画像の設定を再度し直してもらうようにユーザに注意を促す(ここではテンプレート画像自体の自動変換は行わず、ユーザが明示的に設定を行う)。
【0073】
このようにして、第1部分画像P1上での設定(Vt1,Hz1)及びh1×w1が第2部分画像P2上での設定(Vt2,Hz2)及びh2×w2に自動的に変換される。撮像条件が変わったことで本来は物理的に異なるウィンドウで表現されてしまうものを、このように自動変換して物理的に同じウィンドウとして表現することで、ユーザのテンプレート画像の再設定を簡略化することができる。
【符号の説明】
【0074】
1 画像処理装置
2 画像取得部
3 撮像条件記憶部
4 位置情報記憶部
5 位置情報変換部
6 設定情報記憶部
7 設定情報変換部
10 ロボット
11 アーム先端部
12 視覚センサ
13 ワーク
14 ロボット制御装置
100 ロボットビジョンシステム