この発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
<全体装置構成>
図1は、この発明の実施の形態に従う画像処理装置1の全体構成を示す概略図である。本実施の形態に従う画像処理装置1は、視覚センサとして機能する。
図1を参照して、画像処理装置1は、代表的に生産ラインなどに組込まれ、被測定物(以下「ワーク」とも称す。)を光学的に処理することができる。この光学的な処理としては、ワークの表面における欠陥検査、ワークの所定範囲の距離計測、およびワークの表面に記載の文字認識などが含まれる。
一例として、本実施の形態においては、ワーク2は、ベルトコンベヤなどの搬送機構6によって搬送され、搬送されたワーク2は、撮像部8によって逐次撮影される。撮像部8によって撮影された画像データ(以下「入力画像」とも称す。)は、画像処理装置として機能するコンピュータ100へ伝送される。なお、以下の説明では、主として、カラーの入力画像を扱う場合の処理について説明するが、入力画像の種類は特に制限されることなく、モノクロ(グレイスケール)画像を用いてもよい。
ワーク2が撮像部8の撮影範囲に到達したことは、搬送機構6の両端に配置された光電センサによって検出される。具体的には、光電センサは、同一の光軸上に配置された受光部4aと投光部4bとからなり、投光部4bから放射される光がワーク2で遮蔽されることを受光部4aで検出することによって、ワーク2の到達を検出する。なお、搬送機構6の制御自体は、図示しないPLC(Programmable Logic Controller)などによって制御される。
撮像部8は、上述した光電センサによってワーク2の到着が検出されると、これに応じてワーク2の撮影を開始する。あるいは、連続的に撮影を行っておき、ワーク2の到着が検出されたタイミングで、後述するワーク2の検査や計測を開始するようにしてもよい。
一例として、撮像部8は、レンズなどの光学系に加えて、CCD(Coupled Charged Device)やCIS(Complementary Metal Oxide Semiconductor Image Sensor)センサといった、複数の画素に区画された撮像素子を含んで構成される。各画素に対応する撮像素子は、入射する光に対して1つまたは複数の分光感度を有している。
コンピュータ100は、FD(Flexible Disk)駆動装置111およびCD−ROM(Compact Disk-Read Only Memory)駆動装置113を搭載するコンピュータ本体101と、モニタ102と、キーボード103と、マウス104とを含む。そして、コンピュータ本体101は、予め格納されたプログラムを実行することで、本実施の形態に従う画像処理方法を提供する。
<ハードウェア構成>
図2は、この発明の実施の形態に従うコンピュータ100のハードウェア構成を示す概略構成図である。
図2を参照して、コンピュータ本体101は、図1に示すFD駆動装置111およびCD−ROM駆動装置113に加えて、相互にバスで接続された、CPU(Central Processing Unit)105と、メモリ106と、固定ディスク107と、カメラインターフェイス部109と、PLCインターフェイス部115と、センサインターフェイス部117とを含む。
FD駆動装置111にはFD112が装着可能であり、CD−ROM駆動装置113にはCD−ROM114が装着可能である。上述したように、本実施の形態に従う画像処理装置は、CPU105がメモリ106などのコンピュータハードウェアを用いて、プログラムを実行することで実現される。一般的に、このようなプログラムは、FD112やCD−ROM114などの記録媒体に格納されて、またはネットワークなどを介して流通する。そして、このようなプログラムは、FD駆動装置111やCD−ROM駆動装置113などにより記録媒体から読取られて、記憶装置である固定ディスク107に一旦格納される。さらに、固定ディスク107からメモリ106に読出されて、CPU105により実行される。
CPU105は、プログラムされた命令を逐次実行することで、各種の演算を実施する演算処理部である。メモリ106は、CPU105でのプログラム実行に応じて、各種の情報を一時的に格納する。
カメラインターフェイス部109は、コンピュータ本体101と撮像部8との間のデータ通信を仲介する。カメラインターフェイス部109は、画像バッファを含むことが好ましい。画像バッファは、撮像部8で撮影され逐次伝送される入力画像データを一旦蓄積し、1回の撮影分の入力画像データが蓄積されると、その蓄積されたデータをメモリ106または固定ディスク107へ転送する。
PLCインターフェイス部115は、コンピュータ本体101と図示しないPLCとの間のデータ通信を仲介するための装置である。また、センサインターフェイス部117は、上述した光電センサなどからの検出信号を受信して、CPU105へ伝達する。
固定ディスク107は、CPU105が実行するプログラムや入力画像データなどを格納する不揮発性の記憶装置である。
コンピュータ本体101に接続されるモニタ102は、CPU105が出力する情報を表示するための表示装置であって、一例としてLCD(Liquid Crystal Display)やCRT(Cathode Ray Tube)などから構成される。
マウス104は、クリックやスライドなどの動作に応じたユーザからの指令を受付ける。キーボード103は、入力されるキーに応じたユーザからの指令を受付ける。
また、コンピュータ100には、必要に応じて、プリンタなどの他の出力装置が接続されてもよい。
<画像補正処理の概要>
再度図1を参照して、本実施の形態に従う画像補正処理は、撮影対象の被測定物(ワーク2)の正面に対して、撮像部8の撮影面が斜めになっている構成に向けられる。すなわち、撮像部8の光軸とワーク2の垂直軸との間のなす角が相対的に大きな場合に向けられる。
たとえば、図1に示す例においては、撮像部8の撮影視野VAが搬送機構6の搬送面において台形に歪んでいることがわかる。したがって、撮像部8で撮影される入力画像におけるワーク2の像も同様に歪む。このように撮影されるワーク2の像が歪むことで、ワーク2に対して光学的な処理を正確に行なうことができない。
そこで、本実施の形態に従う画像処理装置1では、処理対象のワークの表面に現れている特徴的な形状をユーザが任意に指定して対応付けることで、画像補正に係る設定を行なうものである。より具体的には、ユーザは、補正前の入力画像上に複数の基準点を設定した後、当該複数の基準点が補正後の画像上でどのように対応関係するのかを指定する。すると、コンピュータ100が画像補正に係る変換関数を決定する。すなわち、ユーザは、表示される入力画像を見ながら、補正前および補正後の基準点のみをそれぞれ設定すればよく、その結果、画像補正に係る設定を容易に行なうことができる。なお、以下の説明では、複数の基準点として4個の基準点を用いて、各基準点を頂点とする四角形状の領域を定義する場合について例示する。なお、変換係数を高い精度で決定するためには、より多くの基準点を用いることが好ましい。そのため、より多くの基準点で囲まれる領域を用いるようにしてもよい。
<動作モード>
本実施の形態に従う画像処理装置1は、ワーク2を撮影することで得られる入力画像を補正画像に変換し、この補正画像を用いて光学的な処理を実行する「稼動モード」と、ワーク2についての画像補正処理に係る設定を行なうための「設定モード」とを選択することが可能である。
ユーザは、「設定モード」において、モニタ102に表示される入力画像および補正画像を参照しながら画像補正処理に係る設定を行なう。また、「稼動モード」では、実際に生産ラインを流れるワーク2を撮影して入力画像を取得した後に、補正画像データを生成し、この補正画像に基づいて、検査・計測・認識などの光学的な処理が実行される。
<画面表示および操作手順>
以下、図3〜図7を参照して、本実施の形態に従う画像補正処理に係る画面表示および操作手順の一例について説明する。
図3〜図7は、この発明の実施の形態に従う画像処理装置1のモニタ102に表示される、画像補正処理における設定モードの画面表示例を示す図である。なお、CPU105および図示しないグラフィックボードなどが協働することで、図3〜図7に示すような設定画面を表示させる。このような画面表示は、OS(Operating System)の一部として組込まれるGUI(Graphical User Interface)プログラムによって実現され、またGUIは、ユーザがキーボード103やマウス104により操作される画面上のカーソルを用いて、さまざまなユーザ設定を行なうための環境も提供する。
図3を参照して、ユーザが「画像変換設定」タブ310を選択すると、画像変換設定画面300が表示される。ユーザは、この画像変換設定画面300において、画像補正を行なうための全体的なパラメータを設定および確認することができる。
具体的には、画像変換設定画面300では、パラメータ設定エリア320と、変換先基準設定エリア330と、変換元基準設定エリア340と、表示設定エリア350と、画像表示エリア360と、全体表示エリア370と、表示制御アイコン群380とを含む。
パラメータ設定エリア320は、画像補正処理に係る一般的なパラメータを設定および確認が可能である。
変換先基準設定エリア330では、補正画像における基準点の設定および確認が可能である。より具体的には、変換先基準設定エリア330には、現在設定中の4個の基準点(基準座標)が表示される。これら4個の基準点は、「編集」ボタン332が選択されることで表示される変換先基準設定画面304(図5)にて設定・変更が可能である。
変換元基準設定エリア340では、入力画像における基準点の設定および確認が可能である。より具体的には、変換元基準設定エリア340には、現在設定中の4個の基準点(基準座標)が表示される。これら4個の基準点は、「編集」ボタン342が選択されることで表示される変換元基準設定画面302(図4)にて設定・変更が可能である。
表示設定エリア350では、後述するように、画像表示エリア360および全体表示エリア370に表示する内容の設定が可能である。具体的には、「変換画像表示」のチェックボックスが選択されると、画像表示エリア360および全体表示エリア370には、入力画像に代えて補正画像が表示される。
また、「基準位置表示」のチェックボックスが選択されると、画像表示エリア360および全体表示エリア370には、表示中の画像の上に、補正画像における基準点の位置が重ねて表示される。同様に、「計測位置表示」のチェックボックスが選択されると、画像表示エリア360および全体表示エリア370には、表示中の画像の上に、入力画像における基準点の位置が重ねて表示される。なお、いずれの場合にも、基準点の位置に加えて、基準点で囲まれる領域についても画像に重ねて表示される。
画像表示エリア360には、変換元基準設定エリア340におけるユーザ設定に応じて、入力画像および補正画像が選択的に表示される。さらに、画像表示エリア360には、入力画像における基準点および補正画像における基準点のいずれかまたは両方が選択的に表示可能である。さらに、表示制御アイコン群380に対するユーザ操作に応じて、画像表示エリア360に表示される画像のサイズが変更可能となっている。
全体表示エリア370には、画像表示エリア360に表示される内容が表示される。但し、全体表示エリア370には、画像表示エリア360での表示サイズとは独立して、表示対象の画像の全体が常に表示される。すなわち、全体表示エリア370には、画像表示エリア360に表示中の画像が画像全体のうちいずれの領域にあるのかを表示する。
入力画像および補正画像におけるそれぞれの基準点については、編集ボタン342および332がそれぞれ選択されることで、設定の入力画面が表示される。すなわち、変換元基準設定エリア340のボタン342が選択されると、図4に示す変換元基準設定画面302が表示される。
図4を参照して、変換元基準設定画面302では、画像表示エリア360に表示される入力画像上で基準点の設定が可能である。ユーザは、キーボード103やマウス104(いずれも図1,図2)により操作される画面上のカーソルを用いて、基準点を順次設定していく。ユーザは、これらの基準点として、予めその形状が既知であるワーク表面の領域を指定する。たとえば、図4に示すように、ワーク表面に貼付された長方形のラベルに着目する。この場合、ユーザは、入力画像に表示されるラベルの外周を覆うように、入力画像上で基準点348を順次設定する。このように設定された4個の基準点348が設定されると、この基準点348によって囲まれる基準領域を示す境界線346も入力画像上に表示される。
また、変換元基準設定エリア340には、画像表示エリア360内の座標系における各基準点348の座標値が表示される。
このような手順によって、ユーザが4個の基準点348の設定が完了し、閉じるボタン344が選択されると、設定が有効化され、図3に示す画像変換設定画面300に戻る。
次に、ユーザは、このように変換元基準設定画面302(図4)において設定した基準点にそれぞれ対応付けられる、補正画像における基準点を設定する。すなわち、ユーザは、変換元基準設定画面302において設定した基準点(すなわち、基準領域)をどのように補正表示すべきかを指定する。
変換先基準設定エリア330のボタン332(図3)が選択されると、図5に示す変換先基準設定画面304が表示される。図5を参照して、変換先基準設定画面304においても、画像表示エリア360に表示される入力画像上で基準点の設定が可能である。ユーザは、キーボード103やマウス104(いずれも図1,図2)により操作される画面上のカーソルを用いて、基準点を順次設定していく。
ユーザは、変換元基準設定画面302(図4)において先に設定した基準点348(基準領域)と対応すべき補正画像上の基準点338(基準領域)を順次設定する。上述したように、図4に示すように、ワーク表面に貼付された長方形のラベルに着目した場合には、これらのラベルを表示させるべき領域を指定する。特に、その縦横比が既知であるラベルに着目した場合には、その比率を維持するように補正画像の基準点を設定すればよい。また、図4に示す変換元基準設定画面302と同様に、この基準点338によって囲まれる基準領域を示す境界線336も表示される。
また、変換先基準設定エリア330には、画像表示エリア360内の座標系における各基準点338の座標値が表示される。
このような手順によって、ユーザによる4個の基準点338の設定が完了し、閉じるボタン334が選択されると、設定が有効化され、図3に示す画像変換設定画面300に戻る。
以上のように、入力画像上の基準点および対応する補正画像上の基準点の設定が完了すると、変換関数が決定される。そして、この決定された変換関数に従って、入力画像から補正画像が生成される。なお、入力画像上の基準点および対応する補正画像上の基準点のいずれか一方が更新された場合には、変換関数が再計算され、この再計算後の変換関数に従って、入力画像から補正画像が再生成される。
さらに、図3に示す画像変換設定画面300において、表示設定エリア350中の「変換画像表示」のチェックボックスが選択されると、画像表示エリア360および全体表示エリア370には、変換関数に従って生成された補正画像が表示される。
図6および図7には、図3に示す入力画像から生成された補正画像が表示される画面表示の一例を示す。図6および図7に示すように、入力画像における歪みが補正され、ワーク表面に貼付された長方形のラベルが本来の形状で表示されていることがわかる。
また、図6に示す画像変換設定画面306Aでは、表示設定エリア350中の「基準位置表示」のチェックボックスが選択されている。この選択により、補正画像上に、入力画像についての基準点338および基準点338によって囲まれる基準領域(境界線336)が重ねて表示される。
一方、図7に示す画像変換設定画面306Bでは、表示設定エリア350中の「計測位置表示」のチェックボックスが選択されている。この選択により、補正画像上に、補正画像についての基準点348および基準点348によって囲まれる基準領域(境界線346)が重ねて表示される。
さらに、表示設定エリア350中の「基準位置表示」および「計測位置表示」のチェックボックスがいずれも選択されると、表示される画像上に、入力画像についての基準点338および基準点338によって囲まれる基準領域(境界線336)、ならびに、補正画像についての基準点348および基準点348によって囲まれる基準領域(境界線346)を重ねて表示することも可能である。
<補正画像における基準点の設定に係る別形態>
ワークの正面画像が取得できる場合には、この正面画像を用いて、補正画像における基準点を設定してもよい。あるいは、このような正面画像(ワークを実際に正面から撮影して得られる画像)に代えて、設計図やCADデータなどを用いてもよい。
このように、ワークの本来表示すべき状態を示すレファレンス画像が取得できる場合には、このレファレンス画像に基づいて、補正画像における基準点を設定することが、よりユーザフレンドリである。
図8は、この発明の実施の形態に従う画像処理装置1においてレファレンス画像を用いて基準点を設定する画面表示の一例を示す図である。
図8を参照して、変換先基準設定画面304Aでは、画像表示エリア360および全体表示エリア370に、入力画像に代えてレファレンス画像が表示される。図8に示す例では、予めワークを正面から撮影して得られた画像を用いる場合を示す。
ユーザは、このレファレンス画像上で、補正画像における基準点338を順次設定していく。すなわち、図4に示すように、ワーク表面に貼付された長方形のラベルに合わせて入力画像における基準点348を先に設定しておき、続いて、図8に示すように、このレファレンス画像上でこの長方形のラベルに合わせて補正画像における基準点338を順次設定する。
このように、レファレンス画像上から補正画像における基準点338を設定できるので、ユーザは画像補正に係る設定をより容易に行なうことができる。
<稼動モードにおける画面表示例>
「稼動モード」においては、上述したような「設定モード」において決定される変換関数に基づいて、入力画像から補正画像が逐次生成される。そして、生成された補正画像に対して、検査・計測・認識などの光学的な処理が実行される。
ところで、入力画像から補正画像への変換によって、表示の座標系についても変換されることになる。そのため、位置検出処理などの検出結果としては、入力画像における座標系の値、および補正画像における座標系の値の2つが得られる。これらの値は、その用途によって適宜選択して用いられる。したがって、本実施の形態に従う画像処理装置1では、以下に説明するように、いずれの座標系における値であっても、ユーザ操作に応じて、選択的に出力可能である。
図9および図10は、この発明の実施の形態に従う画像処理装置1のモニタ102に表示される、画像補正処理における稼動モードの画面表示例を示す図である。なお、CPU105および図示しないグラフィックボードなどが協働することで、図9および図10に示すような設定画面を表示させる。このような画面表示は、OSの一部として組込まれるGUIプログラムによって実現され、またGUIは、ユーザがキーボード103やマウス104により操作される画面上のカーソルを用いて、さまざまなユーザ設定を行なうための環境も提供する。
図9は、撮影されたワークの画像に対して、パターンマッチング処理の結果の一例を示す図である。図9(a)には、パターンマッチング処理により検出された領域422を、補正前(生)の入力画像上に重ねて表示する例を示す。また、図9(b)には、パターンマッチング処理により検出された領域424を、補正画像上に重ねて表示する例を示す。
このようなパターンマッチング処理自体は、補正画像に対して実行される。そして、この実行により得られた領域の座標が、画像補正処理に用いられた変換関数に基づいて、補正前の入力画像における座標系の値として算出される。また、図10に示すように、それぞれの座標系における値を数値表示することも可能である。
図10(a)の詳細結果エリアには、図9(a)に対応する検出領域の座標が、入力画像の座標系における値として表示されている。また、図10(b)の詳細結果エリアには、図9(b)に対応する検出領域の座標が、補正画像の座標系における値として表示されている。
本実施の形態に従う画像処理装置1では、ユーザ操作に応じて、図9(a)および図9(b)、ならびに図10(a)および図10(b)に示す表示が任意に選択できる。
<制御構造>
以下、図11および図12を参照して、上述のような画像補正処理を提供するための制御構造について説明する。
図11は、この発明の実施の形態に従う画像処理装置1における「設定モード」を提供するための制御構造を示すブロック図である。
図11を参照して、本実施の形態に従う画像処理装置1は、画像補正処理に係る「設定モード」を提供するための制御構造として、表示制御部202と、画像バッファ204,210,214と、変換部206と、入力部212と、メモリ216とを含む。
表示制御部202は、モニタ102上にGUIを提供する。具体的には、表示制御部202は、入力画像および補正画像を受付けて、ユーザ操作に応じて、これらを選択的にモニタ102に表示する。この際、上述したように、各種の設定や確認が可能なウィンドウなどを表示する。表示制御部202は、メモリ216と接続されており、モニタ102での表示を行なうための描画データをこのメモリ216などに一時的に格納する。また、メモリ216には、ウィンドウ表示用のデータなどが予め格納されており、表示制御部202は、これらのデータを適宜読み出して、表示データを生成する。
画像バッファ204は、撮像部8で撮像された入力画像を一時的に格納する。この入力画像は、カメラインターフェイス部109(図2)を介して画像バッファ204へ伝送される。なお、画像バッファ204自身をカメラインターフェイス部109へ組み込んでもよい。この画像バッファ204へ一時的に格納された入力画像は、表示制御部202および変換部206から任意にアクセス可能である。また、画像バッファ204に格納される入力画像は、撮像部8の撮像動作に応じて、逐次更新される。
変換部206は、画像バッファ204に格納されている入力画像を、ユーザ設定に基づいて決定される変換関数に従って変換することで、補正画像を生成する。生成された補正画像は、画像バッファ210へ一時的に格納される。また、変換部206は、変換関数算出部208を含んでいる。
変換関数算出部208は、ユーザ設定される入力画像における基準点および補正画像における基準点に基づいて、変換関数を決定する。この変換関数Fは、入力画像における任意の点(x,y)を補正画像における対応する点(X,Y)に写像するものである。すなわち、任意の(x,y)について、以下のような関係が成立する。
(X,Y)=F(x,y)
変換関数算出部208は、入力画像において設定される4個の基準点(x1,y1),(x2,y2),(x3,y3),(x4,y4)と、補正画像において設定される4個の基準点(X1,Y1),(X2,Y2),(X3,Y3),(X4,Y4)とを用いて、上記のような関係が成立する変換関数Fを決定する。このような変換関数Fの決定方法としては公知の様々な方法を用いることができる。たとえば、線形計画法などの最適化問題としての解法手段を用いることができる。
入力部212は、設定中の基準点の位置および当該基準点で囲まれる領域を入力画像、補正画像、あるいはレファレンス画像に重ねて表示するためのデータ(オーバーレイ画像)を表示制御部202へ出力する。また、入力部212は、ユーザによる操作入力に基づいて、ユーザ設定される入力画像もしくは補正画像における基準点をはじめとする各種パラメータを受付ける。そして、入力部212は、この受付けた各種パラメータを変換部206(変換関数算出部208)および表示制御部202へ出力する。
画像バッファ214は、入力されるレファレンス画像を一時的に格納する。このレファレンス画像は、適用先の生産ラインに配置する前に、対象となるワーク2を撮像部8で撮影して得ることができる。もしくは、CD−ROMなどの記憶媒体に予め格納された画像データを読み出してもよいし、設計図やCADデータなどを取得してもよい。この画像バッファ214へ一時的に格納されたレファレンス画像は、表示制御部202から任意にアクセス可能である。
図12は、この発明の実施の形態に従う画像処理装置1における「稼動モード」を提供するための制御構造を示すブロック図である。
図12を参照して、本実施の形態に従う画像処理装置1は、画像補正処理に係る「稼動モード」を提供するための制御構造として、表示制御部202と、画像バッファ204,210と、変換部206と、画像アプリ部222と、座標変換部224と、メモリ216とを含む。
画像アプリ部222は、ワークに対する光学的な処理を行なう。すなわち、画像アプリ部222は、補正画像に基づいて、ユーザが任意に選択する検査・計測・認識などを実行する。そして、画像アプリ部222は、その処理結果を表示制御部202および座標変換部224へ出力する。表示制御部202は、この画像アプリ部222からの処理結果に基づいて、検出された領域などを表示中の入力画像もしくは補正画像に重ねて表示する。
座標変換部224は、画像アプリ部222から出力された処理結果を入力画像における座標系の値に変換する。すなわち、画像アプリ部222から出力される処理結果は、補正画像に基づくものであるため、入力画像の座標系とは異なる座標系の値として出力される。そこで、座標変換部224は、この画像アプリ部222から出力される処理結果に対して、変換部206で用いた変換関数Fの逆関数F−1を用いて座標変換を行なう。このような処理によって、座標変換部224からは、入力画像の座標系における結果が表示制御部202へ出力される。
<処理手順>
(設定モード)
図13は、この発明の実施の形態に従う画像処理装置1における処理手順(設定モード)を示すフローチャートである。図13に示す処理は、CPU105が固定ディスク107などに予め格納されたプログラムをメモリ106に読出して実行することにより実現される。なお、画像処理装置1(特に、撮像部8)が対象の生産ラインの所定位置に設置されてあり、ワーク2を所定の撮像位置に配置されているものとする。また、画像処理装置1は、初期モードとして「設定モード」が選択されているものとする。
図13を参照して、CPU105は、撮像部8にワーク2を撮影させて、入力画像を取得し(ステップS100)、取得した入力画像をモニタ102に表示する(ステップS102)。
さらに、CPU105は、ユーザによる入力画像における基準点の設定を受付ける(ステップS104)。すなわち、ユーザは、モニタ102に表示される変換元基準設定画面302(図4)において、入力画像上でそれぞれの基準点を設定する。
続いて、CPU105は、ユーザによる補正画像における基準点の設定を受付ける(ステップS106)。すなわち、ユーザは、モニタ102に表示される変換先基準設定画面304(図5)において、それぞれの基準点を設定する。
入力画像における基準点および補正画像における基準点の設定が完了すると、CPU105は、これらの基準点に基づいて、変換関数を決定する(ステップS108)。さらに、CPU105は、決定した変換関数に従って入力画像を変換することで、補正画像を生成する(ステップS110)。
続いて、CPU105は、補正画像を表示すべきとのユーザ設定がなされているか否かを判断する(ステップS112)。補正画像を表示すべきとのユーザ設定がなされている場合(ステップS112においてYESの場合)には、CPU105は、補正画像をモニタ102に表示する(ステップS114)。これに対して、補正画像を表示すべきとのユーザ設定がなされていない場合(ステップS112においてNOの場合)には、CPU105は、入力画像をモニタ102に表示する(ステップS116)。
続いて、CPU105は、入力画像における基準点の位置を表示すべきとのユーザ設定がなされているか否かを判断する(ステップS118)。入力画像における基準点の位置を表示すべきとのユーザ設定がなされている場合(ステップS118においてYESの場合)には、CPU105は、表示中の画像の上に、入力画像における基準点の位置および当該基準点で囲まれる領域を表示する(ステップS120)。
入力画像における基準点の位置を表示すべきとのユーザ設定がなされていない場合(ステップS118においてNOの場合)、もしくはステップS120の実行後、CPU105は、補正画像における基準点の位置を表示すべきとのユーザ設定がなされているか否かを判断する(ステップS122)。補正画像における基準点の位置を表示すべきとのユーザ設定がなされている場合(ステップS122においてYESの場合)には、CPU105は、表示中の画像の上に、補正画像における基準点の位置および当該基準点で囲まれる領域を表示する(ステップS124)。
補正画像における基準点の位置を表示すべきとのユーザ設定がなされていない場合(ステップS122においてNOの場合)、もしくはステップS124の実行後、CPU105は、モード切替えの指令が与えられたか否かを判断する(ステップS126)。モード切替えの指令が与えられた場合(ステップS126においてYESの場合)には、CPU105は、「稼動モード」へ移行する(ステップS128)。そして、図14に示す処理が実行される。
一方、モード切替えの指令が与えられていない場合(ステップS126においてNOの場合)には、CPU105は、入力画像における基準点および補正画像における基準点のいずれかが変更されたか否かを判断する(ステップS130)。入力画像における基準点および補正画像における基準点のいずれかが変更された場合(ステップS130においてYESの場合)には、CPU105は、変換関数を更新する(ステップS132)。
入力画像における基準点および補正画像における基準点のいずれもが変更されていない場合(ステップS130においてNOの場合)、もしくはステップS132の実行後、CPU105は、撮像部8から新たな入力画像を取得し(ステップS134)、さらに、変換関数に従って入力画像を変換することで、補正画像を生成する(ステップS136)。その後、ステップS112以下の処理が繰返される。
このように、ステップS112〜S136の処理が繰返されることで、ユーザは、基準点を更新する毎に、それが反映された補正画像をほぼリアルタイムで見ることができる。これにより、ユーザは、画像補正に係る設定をより短時間で完了させることができる。
(設定モード:レファレンス画像を用いる場合)
上述のように、レファレンス画像を用いることができる場合には、図13に示すフローチャートに代えて、図14に示すフローチャートに従って処理が実行される。
図14は、この発明の実施の形態に従う画像処理装置1における処理手順(設定モード)の別形態を示すフローチャートである。図14に示す処理は、CPU105が固定ディスク107などに予め格納されたプログラムをメモリ106に読出して実行することにより実現される。
図14に示すフローチャートは、図13に示すフローチャートにおいて、ステップS104とステップS106との間に、ステップS140およびS142を追加したものに相当する。
ステップS140では、CPU105は、レファレンス画像を取得する。より具体的には、CPU105は、レファレンス画像として予め設定されている画像ファイルを読出し、あるいはユーザに対して、レファレンス画像の入力もしくはファイル名の指定などを促す。この場合、ユーザは、任意の画像を入力もしくは指定する。
続いて、CPU105は、取得したレファレンス画像をモニタ102に表示する(ステップS142)。ユーザは、モニタ102に表示されるレファレンス画像上から補正画像における基準点を順次設定する。
その他の処理については、図13と同様であるので、詳細な説明は繰返さない。
(稼働モード)
図15は、この発明の実施の形態に従う画像処理装置1における処理手順(稼働モード)を示すフローチャートである。図15に示す処理は、CPU105が固定ディスク107などに予め格納されたプログラムをメモリ106に読出して実行することにより実現される。
図15を参照して、CPU105は、光電センサによるワーク2の到着が検出された否かを判断する(ステップS200)。ワーク2の到着が検出されていない場合(ステップS200においてNOの場合)には、ステップS200の処理を繰返す。
ワーク2の到着が検出された場合(ステップS200においてYESの場合)には、CPU105は、撮像部8にワーク2を撮影させて、入力画像を取得し(ステップS202)、取得した入力画像を設定モードにおいて決定されている変換関数に従って変換することで、補正画像を生成する(ステップS204)。
続いて、CPU105は、生成された補正画像に基づいて、検査・計測・認識などの光学的な処理を実行する(ステップS206)。この光学的な処理によって、位置などの処理結果が出力される。
その後、CPU105は、入力画像および補正画像のいずれを表示するモードがユーザ設定されているか否かを判断する(ステップS208)。
入力画像を表示するモードが設定されている場合(ステップS208において「入力画像」の場合)には、CPU105は、変換関数の逆関数を用いて、ステップS206において出力された処理結果から入力画像の座標系における処理結果を算出する(ステップS210)。続いて、CPU105は、入力画像をモニタ102に表示する(ステップS212)とともに、当該表示する入力画像に重ねて、入力画像の座標系における処理結果に基づく位置表示を行なう(ステップS214)。さらに、CPU105は、算出した入力画像の座標系における処理結果を外部出力する(ステップS216)。
一方、補正画像を表示するモードが設定されている場合(ステップS208において「補正画像」の場合)には、CPU105は、補正画像をモニタ102に表示する(ステップS218)とともに、当該表示する補正画像に重ねて、算出した処理結果に基づく位置表示を行なう(ステップS220)。さらに、CPU105は、算出した処理結果を外部出力する(ステップS222)。
ステップS216またはS222の実行後、CPU105は、モード切替えの指令が与えられたか否かを判断する(ステップS224)。モード切替えの指令が与えられた場合(ステップS224においてYESの場合)には、CPU105は、「設定モード」へ移行する(ステップS226)。そして、図13または図14に示す処理が実行される。
一方、モード切替えの指令が与えられていない場合(ステップS224においてNOの場合)には、処理はリターンする。
<本実施形態の作用効果>
この発明の実施の形態によれば、被測定物を正面から撮影することができない状況であっても、当該撮影された画像に対して、予め定められた変換関数に従って補正を行なった上で、検査・計測・認識などの光学的な処理が実行される。これにより、変換関数を動的に決定するような方法に比較して、より短時間で正確な処理を実現することができる。
また、この発明の実施の形態によれば、ユーザは、入力画像上で基準点を順次設定した上で、さらに当該基準点に対応する補正画像における基準点を設定するだけで、補正関数が自動的に決定される。そのため、経験の少ないユーザであっても、被測定物(ワーク)の表面に現れている特徴的な形状に着目して、基準点を直感的に設定すれば十分であるので、容易に適切な変換関数を決定することができる。
さらに、この発明の実施の形態によれば、入力画像における基準点を入力画像上から直感的に設定できるとともに、レファレンス画像を用意できる場合には、レファレンス画像上から補正画像における基準点を直感的に設定できる。このようなユーザインターファイスにより、画像補正に係る設定をより容易かつ短時間に完了することができる。
[その他の実施の形態]
本発明に係るプログラムは、コンピュータのオペレーティングシステム(OS)の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずOSと協働して処理が実行される。このようなモジュールを含まないプログラムも、本発明にかかるプログラムに含まれ得る。
また、本発明に係るプログラムは他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には上記他のプログラムに含まれるモジュールが含まれず、他のプログラムと協働して処理が実行される。このような他のプログラムに組込まれたプログラムも、本発明に係るプログラムに含まれ得る。
提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記憶された記録媒体とを含む。
さらに、本発明に係るプログラムによって実現される機能の一部または全部を専用のハードウェアによって構成してもよい。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 画像処理装置、2 ワーク、4a 受光部、4b 投光部、6 搬送機構、8 撮像部、100 コンピュータ、101 コンピュータ本体、102 モニタ、103 キーボード、104 マウス、106 メモリ、107 固定ディスク、109 カメラインターフェイス部、111 FD駆動装置、113 CD−ROM駆動装置、115 インターフェイス部、117 センサインターフェイス部、202 表示制御部、204,210,214 画像バッファ、206 変換部、208 変換関数算出部、212 入力部、216 メモリ、222 画像アプリ部、224 座標変換部、VA 撮影視野。