この発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
<全体装置構成>
図1は、この発明の実施の形態に係る画像処理装置100を含む視覚センサシステム1の全体構成を示す概略図である。
図1を参照して、視覚センサシステム1は生産ラインなどに組み込まれ、被測定物2(以下「ワーク2」とも称す。)の位置(変位)などを計測する。一例として、本実施の形態においては、ワーク2はベルトコンベヤなどの搬送機構6によって搬送され、撮像部8によって順次撮像される。撮像部8によって得られた画像データは、画像処理装置100へ伝送される。なお、撮像部8で撮像されるワーク2に対して光を照射する照明機構をさらに設けてもよい。
ワーク2が撮像部8の撮像範囲に到達したことは、搬送機構6の両端に配置された光電センサ4によって検出される。具体的には、光電センサ4は、同一の光軸上に配置された受光部4aと投光部4bとを含み、投光部4bから放射される光がワーク2で遮蔽されることを受光部4aで検出することによって、ワーク2の到達を検出する。この光電センサ4の検出信号(以下「トリガ信号」とも称す。)は、PLC(Programmable Logic Controller)5へ出力される。
PLC5は、光電センサ4などからのトリガ信号を受信するとともに、搬送機構6の制御自体を司る。
視覚センサシステム1は、さらに、画像処理装置100と、ディスプレイ102と、マウス104とを含む。画像処理装置100は、PLC5と、撮像部8と、ディスプレイ102と、マウス104と接続される。
画像処理装置100は、ワーク2に対して各種の画像処理を実行する計測モードと、後述するモデル登録処理などを行うための設定モードとを有している。計測モードにおいて、画像処理装置100は、PLC5を介して光電センサ4からのトリガ信号を受信すると、撮像部8に対して撮像指令を与える。この撮像指令に応答して、撮像部8がワーク2を撮像して生成する画像データは、画像処理装置100へ伝送される。代替の処理方法として、撮像部8に対して連続的に撮像を行わせるとともに、トリガ信号の受信に応答して、必要な画像データのみを画像処理装置100が取込むようにしてもよい。
撮像部8は、一例として、レンズなどの光学系に加えて、CCD(Coupled Charged Device)やCMOS(Complementary Metal Oxide Semiconductor)センサといった、複数の画素に区画された撮像素子を含んで構成される。
画像処理装置100は、汎用的なアーキテクチャを有しているコンピュータであり、予めインストールされたプログラムを実行することで、後述するような各種機能を提供する。このような汎用的なコンピュータを利用する場合には、本実施の形態に係る機能を提供するためのアプリケーションに加えて、コンピュータの基本的な機能を提供するためのOS(Operating System)がインストールされていてもよい。この場合には、本実施の形態に係るプログラムは、OSの一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。すなわち、本実施の形態に係るプログラム自体は、上記のようなモジュールを含んでおらず、OSと協働して処理が実行される。本実施の形態に係るプログラムとしては、このような一部のモジュールを含まない形態であってもよい。
さらに、本実施の形態に係るプログラムは、他のプログラムの一部に組み込まれて提供されるものであってもよい。その場合にも、プログラム自体には、上記のような組み合わせられる他のプログラムに含まれるモジュールを含んでおらず、当該他のプログラムと協働して処理が実行される。すなわち、本実施の形態に係るプログラムとしては、このような他のプログラムに組込まれた形態であってもよい。なお、プログラムの実行により提供される機能の一部もしくは全部を専用のハードウェア回路として実装してもよい。
図2は、この発明の実施の形態に係る画像処理装置100の概略構成図である。図2を参照して、画像処理装置100は、演算処理部であるCPU(Central Processing Unit)110と、記憶部としてのメインメモリ112およびハードディスク114と、カメラインターフェイス116と、入力インターフェイス118と、表示コントローラ120と、PLCインターフェイス122と、通信インターフェイス124と、データリーダ/ライタ126とを含む。これらの各部は、バス128を介して、互いにデータ通信可能に接続される。
CPU110は、ハードディスク114に格納されたプログラム(コード)をメインメモリ112に展開して、これらを所定順序で実行することで、各種の演算を実施する。メインメモリ112は、典型的には、DRAM(Dynamic Random Access Memory)などの揮発性の記憶装置であり、ハードディスク114から読み出されたプログラムに加えて、撮像部8によって取得された画像データや、画像データの処理結果を示すデータ、およびワークデータなどを保持する。また、ハードディスク114は、不揮発性の磁気記憶装置であり、CPU110で実行されるプログラムに加えて、後述する計測処理において基準となる画像データ(以下「モデル画像」とも称す。)を記憶する。さらに、ハードディスク114には、各種設定値などが格納されてもよい。このハードディスク114にインストールされるプログラムは、後述するように、メモリカード106などに格納された状態で流通する。なお、ハードディスク114に加えて、あるいは、ハードディスク114に代えて、フラッシュメモリなどの半導体記憶装置を採用してもよい。
カメラインターフェイス116は、CPU110と撮像部8との間のデータ伝送を仲介する。すなわち、カメラインターフェイス116は、ワーク2を撮像して画像データを生成する撮像部8を接続する。より具体的には、カメラインターフェイス116は、1つ以上の撮像部8と接続が可能であり、撮像部8からの画像データを一時的に蓄積するための画像バッファ116aを含む。そして、カメラインターフェイス116は、画像バッファ116aに少なくとも1コマ分の画像データが蓄積されると、その蓄積されたデータをメインメモリ112へ転送する。また、カメラインターフェイス116は、CPU110が発生した内部コマンドに従って、撮像部8に対して撮像指令を与える。
入力インターフェイス118は、CPU110とマウス104、キーボード、タッチパネルなどの入力部との間のデータ伝送を仲介する。すなわち、入力インターフェイス118は、ユーザが入力部を操作することで与えられる操作指令を受付ける。
表示コントローラ120は、表示装置の典型例であるディスプレイ102と接続され、CPU110における画像処理の結果などをユーザに通知する。すなわち、表示コントローラ120は、ディスプレイ102に接続され、当該ディスプレイ102での表示を制御する。
PLCインターフェイス122は、CPU110とPLC5との間のデータ伝送を仲介する。より具体的には、PLCインターフェイス122は、PLC5によって制御される生産ラインの状態に係る情報やワークに係る情報などをCPU110へ伝送する。
通信インターフェイス124は、CPU110とコンソール(あるいは、パーソナルコンピュータやサーバ装置)などとの間のデータ伝送を仲介する。通信インターフェイス124は、典型的には、イーサネット(登録商標)やUSB(Universal Serial Bus)などからなる。なお、後述するように、メモリカード106に格納されたプログラムを画像処理装置100にインストールする形態に代えて、通信インターフェイス124を介して、配信サーバなどからダウンロードしたプログラムを画像処理装置100にインストールしてもよい。
データリーダ/ライタ126は、CPU110と記録媒体であるメモリカード106との間のデータ伝送を仲介する。すなわち、メモリカード106には、画像処理装置100で実行されるプログラムなどが格納された状態で流通し、データリーダ/ライタ126は、このメモリカード106からプログラムを読み出す。また、データリーダ/ライタ126は、CPU110の内部指令に応答して、撮像部8によって取得された画像データおよび/または画像処理装置100における処理結果などをメモリカード106へ書き込む。なお、メモリカード106は、CF(Compact Flash)、SD(Secure Digital)などの汎用的な半導体記憶デバイスや、フレキシブルディスク(Flexible Disk)などの磁気記憶媒体や、CD−ROM(Compact Disk Read Only Memory)などの光学記憶媒体等からなる。
また、画像処理装置100には、必要に応じて、プリンタなどの他の出力装置が接続されてもよい。
<概要>
本実施の形態に係る画像処理装置100は、設定モードにおいて予め登録されたモデル画像を用いて、計測モードにおいて撮像部8により生成される画像データから計測対象のワーク2の位置などを計測する。このモデル画像の登録時においては、基準となるワーク2の露出面が撮像部8と正対していない場合、すなわち、基準となるワーク2の露出面が基準面と平行ではない場合において、撮像部8が生成する画像データを変換することで、当該ワーク2の露出面が基準面と平行となるように配置した場合に生成されるモデル画像を取得する。このモデル画像を用いることで、より正確にワーク2の位置などを計測することができる。
<計測原理および計測処理>
次に、本実施の形態に係る被測定物の位置を計測するための原理について説明する。図3および図4は、この発明の実施の形態に係る被測定物の位置計測についての原理を説明するための図である。
図3を参照して、まず、撮像部8が搬送機構6の搬送面に垂直な方向に配置されている場合を考える。すなわち、搬送機構6の搬送面が撮像部8の撮像方向(焦点方向)である光軸AXと直交するものとする。なお、撮像部8の撮像方向に直交する面を「撮像部8と正対する面」あるいは「基準面」と称することもある。
また、搬送機構6の搬送面に対象の立方体形状のワーク2が配置されているとする。本実施の形態に係る画像処理装置100では、図3(a)に示すような状態(基準状態)において撮像された画像データを基準として予め登録しておき、この予め登録したモデル画像を基準として、ワーク2の位置(変位量)を算出する。
たとえば、図3(b)には、図3(a)に示す状態から光軸AXに沿って変位Δhだけワーク2の位置が変化している状態を示す。
図4(a)および図4(b)には、それぞれ図3(a)および図3(b)に示す状態において、撮像部8がワーク2を撮像することで生成される画像データ200および202を示す。画像データ200においては、ワーク2は、4つの頂点211,212,213,214を有する四角形として表現されている。また、画像データ202においては、ワーク2は、4つの頂点221,222,223,224を有する四角形として表現されている。
画像データ200および202における対応する頂点同士の位置を比較することで、ワーク2の変位を算出することができる。すなわち、画像データ202内に表れるワーク2は、画像データ200に表れるワーク2より大きく、これは、ワーク2がより撮像部8に近寄っていることを意味する。そのため、画像データ200をモデル画像として予め登録しておけば、このモデル画像を基準として、ワーク2がいずれかの状態において生成される画像データ202を評価することで、ワーク2がいずれの位置にあるかを特定することができる。
なお、モデル画像と対応付けて、撮像対象のワーク2の位置を登録しておくことで、画像データに基づいてワーク2の絶対的な位置を算出することができる。一方、撮像対象のワーク2の位置を登録していない場合には、モデル画像に対応するワーク2の位置からの相対的な変位量を算出することができる。
このように、本実施の形態に係る画像処理装置は、ワーク2の露出面を位置計測の基準となる基準面に平行させた状態で、撮像部8を用いてワーク2を撮像した場合に生成される画像データをモデル画像として記憶しておき、このモデル画像と撮像部8が対象のワーク2を撮像することで生成される画像データ(以下「計測画像」とも称す。)とを比較することで、対象のワーク2の位置を算出する。
上述のような原理から見て、本実施の形態に係る計測方法では、撮像部8の焦点方向である光軸AXに沿った方向が主な変位検出方向となる。すなわち、登録されるモデル画像は、撮像部8に正対するいずれかの面上に投射されるワーク2の平面画像となる。そして、モデル画像におけるワーク2の大きさと、計測画像における対応するワーク2の大きさとを比較することで、撮像部8に正対する基準面からの高さや傾きなどを算出する。
<モデル登録処理>
上述の図3に示す例では、搬送機構6の搬送面が撮像部8に正対し、かつ、ワーク2の上部の露出面が搬送面と平行(すなわち、撮像部8に正対)していた。そのため、撮像部8がワーク2を撮像して生成する画像データ(2次元の画像情報)は、ワーク2の露出面の位置情報を実質的に正しく反映することになる。すなわち、撮像部8が生成する画像データには、ワーク2についての2次元の位置情報しか含まれないが、図3のような位置関係であれば、基準面から当該露出面上の各点までの光軸AX方向の高さはいずれも同一であるので、これらの高さ情報は実質的に失われない。
これに対して、基準面からワーク2の露出面上の各点までの光軸AX方向の高さが一定ではない場合には、これらの高さ情報が失われることになる。
図5は、ワーク2の露出面が撮像部8に正対しない場合の状態を示す模式図である。図6および図7は、この発明の実施の形態に係るモデル登録時の画像変換処理を説明するための図である。
図5に示すように、搬送機構6の搬送面が撮像部8に正対していない場合、および/または、ワーク2の上面(露出面)50が搬送面と平行ではない場合には、撮像部8がワーク2を撮像して生成する画像データには、ワーク2の露出面50の高さ情報が十分に反映されない。
すなわち、図5に示す位置関係において、撮像部8がワーク2を撮像して生成する画像データは、図6(a)のようになる。この図6(a)に示す画像データ200においては、ワーク2が台形形状に変形して表れる。このとき、画像データ200に表れる台形形状からは、図5に示すような位置関係を一意に特定することができない。なぜならば、搬送機構6の搬送面の傾き、ならびに、ワーク2の露出面50の長さおよび傾きという、数多くの変数が存在するために、図6(a)に示すような画像データ200のみの情報では、これらの変数を一意に決定することができないからである。
そのため、図6(a)に示すような画像データをモデル画像として登録し、計測対象のワーク2を撮像して生成される計測画像と比較したとしても、計測対象のワーク2がいずれの方向にいずれの量だけ変位しているかを特定することができない。
そのため、本実施の形態に係る画像処理装置100においては、モデル画像の登録時に、撮像されたワーク2の画像データを撮像部8に正対する基準面上の情報に変換する。すなわち、モデル登録時にワーク2がどのような状態であっても、その撮像により取得された画像データを、ワーク2の露出面(典型的には、図5に示す露出面50)を基準面と平行とした状態で生成される画像データに相当するように変換することで、モデル画像を生成する。なお、このようなモデル登録の処理を「平面登録」と称する場合がある。
より具体的には、図5〜図7を参照して、本実施の形態に係る画像処理装置100は、ワーク2の露出面50が、撮像部8に正対する位置計測の基準となる基準面P1とは平行ではない状態で、撮像部8を用いてワーク2を撮像した場合に生成される画像データ(図6(a)に示す画像データ200)を、ワーク2の露出面50が基準面P1に平行した状態で生成される画像データ(図6(b)に示す画像データ210)に相当するように変換した上で、モデル画像として登録する。
上述したようなモデル画像の登録時の変換処理は、一種の座標変換処理に相当する。すなわち、この変換処理は、図7(a)に示すように、ワーク2の露出面50が計測面P2と平行でない場合に、当該露出面50を撮像して生成される画像データを、図7(b)に示すように、ワーク2の露出面50を基準面P1と平行とした場合に生成される画像データに変換することに相当する。
本実施の形態に係る画像処理装置100では、ワーク2の露出面50が基準面P1とは平行ではない状態で生成される画像データ200上のワーク2の大きさと、ワーク2の露出面50の基準面P1上における実際の大きさとの対応関係に従って変換処理を行う。より具体的な処理については、図8を参照して説明する。
図8は、この発明の実施の形態に係るモデル登録時の画像変換処理に必要な座標値を説明するための図である。
図8(b)には、図8(a)に示すような撮像部8とワーク2との位置関係において、撮像部8が生成する画像データ200を示す。このワーク2の露出面50が基準面P1とは平行ではない状態で生成される画像データ200上における露出面50の頂点61,62,63の座標位置が指定される。
また、図8(c)に示すように、ワーク2の実際の大きさに対応する、露出面の頂点61,62,63の基準面P1における座標位置が指定される。
すなわち、図8(c)に示すように、基準面P1に設定した2次元座標系において、ワーク2の露出面50を基準面P1に重ねたときの各頂点61,62,63の座標位置が実寸法で指定される。
したがって、上述のようなワーク2の露出面50に含まれる複数の特徴点について、基準面P1における座標値および画像データ200上における座標値をそれぞれ対応付けることで、モデル画像を生成するための変換式を決定することができる。そして、この決定した変換式を用いて、画像データ200を変換することで画像データ210(図8(d)参照)が生成され、続いて、この画像データ210をモデル画像として登録する。
なお、図8(b)に示す画像データ200を図8(d)に示す画像データ210に変換する処理は、公知の写像変換であるので、ここでは、詳細な説明は行わない。
このように、ワーク2の露出面50が撮像部8に正対する面と平行ではない状態で生成された画像データであっても、ワーク2に正対する面と平行なものとして扱うことができる。したがって、搬送機構6の搬送面が撮像部8に正対していない場合、および、ワーク2の露出面50が搬送面と平行ではない場合のいずれであっても、ワーク2の位置などを正確に計測することができる。
<制御構造>
次に、上述の画像処理装置100における位置計測機能を提供するための制御構造について説明する。
図9は、この発明の実施の形態に係る画像処理装置100が提供する位置計測機能を示すブロック図である。図9に示す各ブロックは、ハードディスク114に格納されたプログラム(コード)などをメインメモリ112に展開して、CPU110に実行させることで提供される。なお、図9に示すモジュールの一部もしくは全部がハードウェアに実装されているファームウェアによって提供される場合もある。あるいは、図9に示す制御構造の一部もしくは全部を専用ハードウェアおよび/または配線回路によって実現してもよい。
図9を参照して、画像処理装置100は、その制御構造として、キャリブレーションモジュール402と、画像表示モジュール404と、計測モジュール406と、モデル変換モジュール408と、入力モジュール410と、モデル格納部412とを含む。
キャリブレーションモジュール402は、撮像部8により生成される画像データにおける画素(ピクセル)と被測定物の実際の大きさとの対応関係を規定する。より具体的には、画像処理装置100の使用開始前に、ユーザは実際の大きさが既知のサンプルを撮像部8により撮像する。すると、キャリブレーションモジュール402は、この撮像により生成される画像データに対して、当該実際の大きさとの対応関係(典型的には、画素を実際の大きさに変換するための関数式)を算出する。典型的には、規定サイズの半径を有する円が一定間隔で描画されたサンプルを撮像して得られる画像データを用いることで、容易にキャリブレーションを行うことができる。
なお、キャリブレーションモジュール402は、撮像部8により生成される画像データの歪みなどを補正することも可能である。そのため、図9に示す制御構造においては、キャリブレーションモジュール402において前処理としてキャリブレーション処理が実行され、その実行後の画像データが利用されるようになっている。
画像表示モジュール404は、キャリブレーションモジュール402から出力される画像データをディスプレイ102に表示する。なお、ディスプレイ102上で提供されるユーザインターフェイスについては、後述する。
計測モジュール406は、モデル格納部412に登録されているモデル画像と撮像部8が計測対象のワーク2を撮像することで生成される画像データ(計測画像)とを比較することで、計測対象のワーク2の位置などを含む計測値を算出する。そして、計測モジュール406は、算出した計測値をディスプレイ102や外部装置などへ出力する。
モデル変換モジュール408は、撮像部8がワーク2を撮像することで生成される画像データの全部または一部をモデル画像として抽出し、モデル格納部412へ登録する。このとき、モデル画像は、ワーク2の露出面を位置計測の基準となる基準面と平行させた状態で、撮像部8を用いてワーク2を撮像した場合に生成される画像データに相当する。
特に、モデル変換モジュール408は、ワーク2の露出面が基準面とは平行ではない状態で、撮像部8を用いてワーク2を撮像した場合に生成される画像データを、ワーク2の露出面が当該基準面に平行した状態で生成される画像データに相当するように変換した上で、モデル画像としてモデル格納部412へ登録する。
入力モジュール410は、モデル変換モジュール408におけるモデル画像への変換処理に必要な情報を受付ける。より具体的には、入力モジュール410は、ワーク2の露出面が基準面とは平行ではない状態で生成される画像データ上の露出面上にある複数の点の座標位置を受付ける(後述する図12における「点座標」)。また、入力モジュール410は、それらの点が基準面上にあった場合の基準面における実寸法での座標位置を受付ける(後述する図12における「実座標」)。すなわち、入力モジュール410は、画像データ上の複数の点にそれぞれ対応するワーク2の露出面上の点についての、当該露出面上での座標位置を受付ける。
このように入力モジュール410を介して与えられる座標情報に基づいて、モデル変換モジュール408は、ワーク2の露出面が基準面とは平行ではない状態で生成される画像データ上のワーク2の大きさと、ワーク2の露出面についての実際の大きさとの対応関係に従って、モデル画像への変換を行う。
なお、後述する図12に示すように、撮像部8により生成される画像データをディスプレイ102に表示した状態で座標位置を受付けることが好ましい。また、画像データ上のワーク2の大きさと、ワーク2の露出面についての実際の大きさとの対応関係を決定するためには、2つ以上の座標位置の情報があればよいが、精度を高める観点からは、3つ以上の座標位置を受付けることが好ましい。
さらに、ワーク2の露出面が円形である場合には、上述の座標位置を指定する方法に代えて、当該円形の露出面の中心を示す座標位置と当該円形の露出面の径を示す値とを指定する方法を採用してもよい(後述する図13における「中心座標」および「半径」)。
より具体的には、入力モジュール410は、円形の露出面を有するワーク2について、ワーク2の露出面が基準面とは平行ではない状態で生成される画像データ上の露出面上における、円形の露出面の中心を示す座標位置と当該円形の露出面の径を示す値とを受付ける(後述する図13における「点座標」の「中心座標」および「半径」)。また、入力モジュール410は、それらの点が基準面上にあった場合の基準面における実寸法での座標位置および径を受付ける(後述する図13における「実座標」の「中心座標」および「半径」)。すなわち、入力モジュール410は、画像データ上の中心を示す座標位置と径を示す値とに対応する、ワーク2の露出面上における、円形の露出面の中心を示す座標位置と当該円形の露出面の径を示す値とを受付ける。
このとき、ユーザが画像データ上の露出面の座標位置を入力することを支援するために、ディスプレイ102に表示された画像データ上に、入力された座標位置を中心とする円を描画することが好ましい。
モデル格納部412は、モデル変換モジュール408から出力される1または複数のモデル画像を記憶する。なお、図示しないワークの選択指令に応じて、予め登録した複数のモデル画像のうち、必要なモデル画像を選択して、計測モジュール406へ供給するようにしてもよい。
<ユーザインターフェイス>
(1.設定モード)
次に、本実施の形態に係る画像処理装置100が設定モード時に提供するユーザインターフェイスについて説明する。
図10〜図13は、この発明の実施の形態に係る画像処理装置100が設定モード時に提供するユーザインターフェイス画面の一例を示す図である。
図10を参照して、ユーザインターフェイス画面300Aでは、キャリブレーション設定タブ302と、モデル登録タブ304と、領域設定タブ306と、検出点タブ308と、モデル姿勢タブ310と、基準位置姿勢タブ312と、計測パラメータタブ314と、出力パラメータタブ316とが選択可能に表示される。なお、図10に示すユーザインターフェイス画面300Aにおいては、モデル登録タブ304が選択されている状態を示す。
キャリブレーション設定タブ302が選択されると、上述したキャリブレーションを実行するための各種条件を設定/変更するためのダイアログが表示される。このダイアログに対して設定された各種条件は、図9に示すキャリブレーションモジュール402に与えられる。
モデル登録タブ304が選択されると、図10に示すようなモデル登録を行うための各種条件などを設定/変更するためのダイアログが表示される。この表示される内容については、後述する。
領域設定タブ306が選択されると、撮像部8により生成される画像データのうち、計測処理の対象となる領域を設定/変更するためのダイアログが表示される。検出点タブ308が選択されると、撮像部8により生成される画像データのうち、計測処理の対象となる点を設定/変更するためのダイアログが表示される。モデル姿勢タブ310が選択されると、モデルとして登録されるワーク2の傾きなどを設定/変更するためのダイアログが表示される。基準位置姿勢タブ312が選択されると、基準面の傾きなどを設定/変更するためのダイアログが表示される。計測パラメータタブ314が選択されると、計測に必要なパラメータを設定/変更するためのダイアログが表示される。出力パラメータタブ316が選択されると、計測によって得られた結果を出力する際のパラメータを設定/変更するためのダイアログが表示される。
モデル登録タブ304が選択されると、モデルパラメータ設定エリア320と、モデル登録画像設定エリア330と、エッジ抽出ボタン342と、平面登録ボタン344と、モデル表示ボタン346とが画面左側に表示される。
モデルパラメータ設定エリア320においては、撮像部8により生成される画像データに対して、白黒反転処理(ネガポジ反転処理)の有効/無効化を設定することができる。このパラメータは、背景が明るすぎる場合、または、暗すぎる場合などに有効化される。
モデル登録画像設定エリア330は、登録済のモデル画像を表示するための登録画像表示ボタンと、登録済のモデル画像を変更するためのモデル再登録ボタンと、登録済のモデル画像を削除するための削除ボタンとを含む。
エッジ抽出ボタン342は、撮像部8により生成される画像データの中からエッジ部分を抽出するために使用される。
平面登録ボタン344は、上述したように、撮像部8に正対した面を基準面としたモデル画像を登録するために使用される。すなわち、この平面登録ボタン344が選択されると、図11に示すようなユーザインターフェイス画面に切替わる。
モデル表示ボタン346は、上述のように設定された基準面P1における座標位置と、当該座標位置に対応する画像データ200上における座標位置との対応関係に基づいて変換された後のモデル画像を表示するために使用される。
さらに、ユーザインターフェイス画面300Aは、撮像部8により生成される画像データをレンダリングするための画像表示エリア350および全体表示エリア352と、画像表示エリア350にレンダリングされる画像データの表示範囲および表示精度を変更するための表示制御アイコン群354とを含む。
画像表示エリア350では、設定パラメータに応じて、撮像部8がワーク2を所定周期で繰返し撮像することで得られる画像を逐次表示するモード(スルーモード)と、撮像部8がワーク2をあるタイミングで撮像することで得られた画像を静止表示するモード(フリーズモード)とが選択可能である。
図11に示すユーザインターフェイス画面300Bは、図10に示すユーザインターフェイス画面300Aにおいて平面登録ボタン344が選択されることで表示される。
このユーザインターフェイス画面300Bは、点指定方法エリア368と、点指定エリア360とを含む。
点指定方法エリア368は、撮像部8により生成される画像データをレンダリングした画像表示エリア350上において、ワーク2の露出面における特徴点をユーザが任意に設定できる「直接指定モード」と、撮像部8により生成される画像データをレンダリングした画像表示エリア350上において、ユーザが指定した特徴点に加えて、その特徴点を中心とした円を表示する「円中心指定モード」とが選択可能に表示される。
点指定エリア360は、指定されているワーク2の露出面における特徴点の座標が表示されるとともに、座標位置を追加するための設定ボタン362と、設定されている座標位置を削除するための削除ボタン364と、モデル画像を登録するための変換処理の実行を指示する登録ボタン366とを含む。
設定ボタン362が選択されると、点指定方法エリア368において「直接指定モード」が選択されていれば、図12に示すユーザインターフェイス画面300Cが表示される。一方、点指定方法エリア368において「円中心指定モード」が選択されていれば、図13に示すユーザインターフェイス画面300Dが表示される。
図12を参照して、「直接指定モード」が選択されている場合には、座標設定ウィンドウ370Aがポップアップ表示される。この座標設定ウィンドウ370Aは、ワーク2を撮像して取得された画像データをモデル画像として登録するために必要な座標位置を受付ける。より具体的には、座標設定ウィンドウ370Aの点座標エリア372では、画像データ200上のワーク2の露出面における特徴点の座標位置が設定される。また、座標設定ウィンドウ370Aの実座標エリア374では、点座標エリア372において設定されたそれぞれの特徴点についての実寸法での座標位置が設定される。
すなわち、点座標エリア372は、ワーク2の露出面が基準面とは平行ではない状態で生成される画像データ上の露出面上にある複数の点の座標位置を受付け、実座標エリア374は、それらの点が基準面P1上にあった場合の基準面における実寸法での座標位置を受付ける。
典型的な操作手順としては、図11に示す設定ボタン362が選択されると、画像表示エリア350において、表示された画像データ上に、設定される座標位置を示すマーカ380が表示される。なお、設定ボタン362の選択直後には、マーカ380は初期位置にセットされる。
ユーザは、点座標エリア372に表示される十字ボタンの選択、マウス104などを用いた直接的な選択、点座標エリア372に表示される座標入力コラムへの数値入力などの方法によって、ワーク2の露出面における1つの特徴点の座標位置を設定する。なお、この座標位置は、キャリブレーション後の入力データにおける実サイズであってもよいし、ピクセル単位の値であってもよい。続いて、実座標エリア374に表示される十字ボタンの選択や、点座標エリア372に表示される座標入力コラムへの数値入力などの方法によって、点座標エリア372に設定された特徴点に対応する実際の座標位置を入力する。この座標位置は、対象のワーク2を実測した値、または、設計上の値(たとえば、CADなどの製図システム上の値など)であってもよい。
そして、座標設定ウィンドウ370Aの「OK」ボタンが押下されると、ワーク2の露出面における1つの特徴点についての一対の座標位置(基準面P1および画像データ200上におけるそれぞれの座標位置)の入力が完了する。
以下同様の手順によって、ワーク2の露出面における特徴点を少なくとも3点登録することで、モデル画像を生成するための変換処理を行うことができる。
次に、図13を参照して、「円中心指定モード」が選択されている場合には、座標設定ウィンドウ370Bがポップアップ表示される。この座標設定ウィンドウ370Bは、図12に示す座標設定ウィンドウ370Aに加えて、半径入力コラムが追加されたものである。
上述した座標設定ウィンドウ370Aにおいては、ワーク2の露出面における特徴点を任意に選択可能であった。たとえば、ワーク2が直方体であれば、その露出面として四角形が現れるので、それぞれの頂点を特徴点として容易に選択できる。しかしながら、ワーク2が円柱形状であれば、その露出面として円が現れるので、その特徴点を選択し難い。
そこで、「円中心指定モード」では、画像表示エリア350に表示された画像データ上に、入力された座標位置を中心とする円を描画する。すなわち、座標設定ウィンドウ370Bの点座標エリア376では、画像データ200上のワーク2の露出面における特徴点(中心座標)と、当該特徴点を中心とする円の半径が設定される。これらの設定値に対応して、画像表示エリア350において、中心座標を示すマーカ382と、当該マーカ382を中心とする円表示384とが表示される。ユーザは、この円表示384を見ながら、マーカ382をワーク2の中心に位置決めすることで、ワーク2の露出面における特徴点の座標を設定することができる。また、座標設定ウィンドウ370Bの実座標エリア374では、点座標エリア376において設定された中心点の基準面P1上での座標位置と、円の半径の実寸法が設定される。
そして、座標設定ウィンドウ370Bの「OK」ボタンが押下されると、ワーク2の円形の露出面における中心点と半径についての一対の座標位置と寸法(基準面P1および画像データ200上におけるそれぞれの座標位置と寸法)の入力が完了する。
以下同様の手順によって、ワーク2の露出面における特徴点を複数(好ましくは、少なくとも3点)登録するか、もしくは、中心点および半径を登録することで、ワーク2の露出面が基準面とは平行ではない状態で生成される画像データ上のワーク2の大きさと、ワーク2の露出面の基準面上における実際の大きさとの対応関係が決定できるので、モデル画像を生成するための変換処理を行うことができる。
(2.計測モード)
次に、本実施の形態に係る画像処理装置100が計測モード時に提供するユーザインターフェイスについて説明する。
図14は、この発明の実施の形態に係る画像処理装置100が計測モード時に提供するユーザインターフェイス画面の一例を示す図である。
図14を参照して、ユーザインターフェイス画面300Eでは、撮像部8がワーク2を順次撮像して生成する画像データに対して、上述したような処理によって登録されたモデル画像を用いたサーチ処理および位置計測処理などが順次実行される。
より具体的には、撮像部8がワーク2を撮像して生成する画像データに対して、予め登録されているモデル画像に基づいてマッチング処理が実行される。そして、マッチング処理の結果、モデル画像と一致する領域392が特定されると、当該領域392の画像とモデル画像とを比較して、ワーク2における位置などが算出される。この算出された計測結果は、ユーザインターフェイス画面300Eの詳細結果エリアに数値表示される(符号390)。
上述のような計測処理によれば、モデル画像を基準として、計測対象のワーク2がどの程度変位しているかが3次元的に評価される。すなわち、詳細結果エリアには、モデル画像に対して、X方向、Y方向、Z方向のそれぞれについての変位量が算出される。さらに、基準面に対する傾きなどが算出されてもよい。
<処理手順>
次に、上述の画像処理装置100における処理手順について説明する。
図15は、この発明の実施の形態に係る画像処理装置100によって提供される処理手順を示すフローチャートである。なお、以下に示す各ステップは、典型的には、画像処理装置100のCPU110がプログラムを実行することで提供される。なお、図15に示すフローチャートの実行前に、キャリブレーションなどの画像処理装置100についての初期処理は実行済であるとする。
図15を参照して、ステップS100において、画像処理装置100のCPU110は、現在の設定モードを判断する。設定モードに設定されている場合(ステップS100において「設定モード」)には、処理はステップS102へ進む。これに対して、計測モードに設定されている場合(ステップS100において「計測モード」)には、処理はステップS132へ進む。
ステップS102において、CPU110は、画像処理装置100に接続されている撮像部8から、撮像部8がワーク2を撮像することで生成される画像データを取得する。続くステップS104において、CPU110は、表示コントローラ120に対して内部コマンドを発することで、ステップS102において取得した画像データをレンダリングするための画像表示エリア350を含むユーザインターフェイス画面300A(図10)を表示する。
ステップS106において、CPU110は、平面登録が要求されたか否かを判断する。すなわち、ワーク2の露出面が撮像部8に正対していない場合には、ユーザは、平面登録ボタン344(図10)を押下する。したがって、CPU110は、平面登録ボタン344が押下されたか否かを判断する。平面登録が要求されていない場合(ステップS106においてNOの場合)には、処理はステップS108へ進む。これに対して、平面登録が要求された場合(ステップS106においてYESの場合)には、処理はステップS110へ進む。
ステップS108において、CPU110は、撮像部8が生成した画像データのうち、ユーザが指定した領域に含まれる画像をモデル画像として決定する。そして、処理は、ステップS128へ進む。
ステップS110において、CPU110は、ワーク2の露出面における特徴点の座標を設定するためのユーザインターフェイス画面300B(図11)を表示する。続くステップS112において、CPU110は、座標位置を追加するための設定ボタン362が押下されたか否かを判断する。設定ボタン362が押下された場合(ステップS112においてYESの場合)には、処理はステップS114へ進む。これに対して、設定ボタン362が押下されなかった場合(ステップS112においてNOの場合)には、処理はステップS118へ進む。
ステップS114において、CPU110は、画像データ上におけるワーク2の露出面の座標位置(点座標)、および、当該露出面の座標位置に対応する、ワーク2の大きさ(実座標)を受付けるための座標設定ウィンドウを表示する。続くステップS116において、CPU110は、ユーザが設定する一対の座標位置(基準面P1および画像データ200上におけるそれぞれの座標位置)を受付ける。そして、処理はステップS118へ進む。
ステップS118において、CPU110は、登録ボタン366が押下されたか否かを判断する。登録ボタン366が押下された場合(ステップS118においてYESの場合)には、処理はステップS120へ進む。これに対して、登録ボタン366が押下されなかった場合(ステップS118においてNOの場合)には、ステップS112以下の処理が繰返される。
ステップS120において、CPU110は、同一のワーク2について、所定数(典型的には、3個)の座標位置の対が設定されているか否かを判断する。所定数の座標位置の対が設定されなかった場合(ステップS120においてNOの場合)には、ステップS112以下の処理が繰返される。これに対して、所定数の座標位置の対が設定されている場合(ステップS120においてYESの場合)には、処理はステップS122へ進む。
ステップS122において、CPU110は、設定されている画像データ上の座標位置と、対応する位置の実際の大きさとの対応関係に従って、設定されている画像データ上の領域を、ワーク2の露出面を基準面と平行とした状態で生成される画像データに相当するように変換することで、変換後のモデル画像を生成する。続くステップS124において、CPU110は、生成した変換後のモデル画像をディスプレイ102に表示する。さらに続くステップS126において、CPU110は、ディスプレイ102に表示されるモデル画像を登録する指示がユーザから与えられたか否かを判断する。モデル画像として登録する指示がユーザから与えられた場合(ステップS126においてYESの場合)には、処理はステップS128へ進む。これに対して、モデル画像として登録する指示がユーザから与えられなかった場合(ステップS126においてNOの場合)には、ステップS112以下の処理が繰返される。
ステップS128において、CPU110は、取得されているモデル画像を登録する。その後、ステップS100以下の処理が繰返される。
一方、ステップS132においては、CPU110は、画像処理装置100に接続されている撮像部8から、撮像部8がワーク2を撮像することで生成される画像データを取得する。続くステップS134において、CPU110は、撮像部8から取得された画像データに対して登録されているモデル画像を用いてサーチ処理を実行する。さらに続くステップS136において、CPU110は、モデル画像とサーチ処理によって特定された画像データ上の領域とを比較することで、計測対象のワーク2の位置などを含む計測値を算出する。さらに続くステップS138において、CPU110は、算出した計測値などを出力する。
その後、ステップS140において、CPU110は、処理終了が指示されたか否かを判断する。処理終了が指示された場合(ステップS140においてYESの場合)には、処理は終了する。これに対して、処理終了が指示されていない場合(ステップS140においてNOの場合)には、ステップS100以下の処理が繰返される。
<作用効果>
本実施の形態に係る画像処理装置によれば、モデル画像の登録時において、基準となるワーク2の露出面が撮像部8と正対していない場合、すなわち、基準となるワーク2の露出面が基準面と平行ではない場合において、撮像部8が生成する画像データを変換することで、当該ワーク2の露出面が基準面と平行となるように配置した場合に生成されるモデル画像を取得する。
このため、被測定物の露出面と撮像部8との位置関係に影響されることなく、被測定物の位置などを正確に測定できる。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。