この発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
<全体装置構成>
図1は、この発明の実施の形態に従う画像処理システム1の全体構成を示す概略図である。本実施の形態に従う画像処理システム1は、典型的に、視覚センサとして機能する。
図1を参照して、画像処理システム1は、代表的に生産ラインなどに組込まれ、被測定物(以下「ワーク」とも称す。)を光学的に処理することができる。この光学的な処理としては、ワークの表面における欠陥検査、ワークの所定範囲の距離計測、およびワークの表面に記載の文字認識などが含まれる。
図1には、生産ラインの一例として、ベルトコンベヤなどの搬送機構6によってワーク2が搬送される構成を例示する。所定の検査位置に搬送されたワーク2は、3台の撮像装置8−1,8−2,8−3(これらを「撮像装置8」とも総称する。)によって撮像される。なお、撮像装置8の台数はこれに限定されることなく、対象のワーク2の大きさなどに応じて、その台数は適宜選択することができる。
取付架台10が生産ラインの上方に、生産ラインの搬送方向に延伸して配置される。複数の撮像装置8は、この取付架台10にほぼ等間隔にそれぞれ取り付けられる。
複数の撮像装置8がそれぞれ撮像することで得られる複数の画像データ(以下「入力画像」とも称す。)は、画像処理装置として機能するコンピュータ100へ伝送される。これらの複数の入力画像に基づいて、1枚の合成画像が生成される。なお、入力画像の種類は特に制限されることなく、カラー画像を用いてもよいし、モノクロ(グレイスケール)画像を用いてもよい。
ワーク2が撮像装置8の検査位置に到達したことは、搬送機構6の側面に配置された光電センサ4によって検出される。具体的には、光電センサ4は、同一の光軸上に配置された受光部と投光部とを含み、投光部から放射される光がワーク2で遮蔽されることを受光部で検出することによって、ワーク2の到達を検出する。なお、搬送機構6の制御自体は、図示しないPLC(Programmable Logic Controller)などによって制御される。
撮像装置8−1,8−2,8−3の各々は、上述した光電センサによってワーク2の到着が検出されると、これに応答してワーク2の撮像を開始する。あるいは、連続的に撮像を行なっておき、ワーク2の到着が検出されたタイミングで、後述するワーク2の検査や計測を開始するようにしてもよい。
一例として、撮像装置8−1,8−2,8−3の各々は、レンズなどの光学系に加えて、CCD(Coupled Charged Device)やCIS(Complementary Metal Oxide Semiconductor Image Sensor)センサといった、複数の画素に区画された撮像素子を含んで構成される。なお、撮像装置8としては、撮像素子および光学系において実質的に同一のスペックのものが採用される。
コンピュータ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は、上述した光電センサ4などからの検出信号を受信して、CPU105へ伝達する。
固定ディスク107は、CPU105が実行するプログラムや入力画像などを格納する不揮発性の記憶装置である。
コンピュータ本体101に接続されるモニタ102は、CPU105が出力する情報や撮像装置8によって撮像された画像を表示するための表示装置であって、一例としてLCD(Liquid Crystal Display)やCRT(Cathode Ray Tube)などから構成される。
マウス104は、クリックやスライドなどの動作に応じたユーザからの指令を受付ける。キーボード103は、入力されるキーに応じたユーザからの指令を受付ける。
また、コンピュータ100には、必要に応じて、プリンタなどの他の出力装置が接続されてもよい。
<動作モード>
本実施の形態に従う画像処理システム1は、「設定モード」と「稼動モード」とが選択実行される。「設定モード」では、ワーク2についての画像合成処理に係る設定が可能である。すなわち、ユーザは、「設定モード」において、モニタ102に表示されるそれぞれの撮像装置8によって撮像された入力画像を参照しながら画像合成処理に係る設定を行なう。また、「稼動モード」では、複数の撮像装置8がワーク2をそれぞれ撮像することで得られる複数の入力画像から合成画像を生成し、この合成画像に基づいて、検査・計測・認識などの光学的な処理が実行される。
<画像合成処理の概要>
複数の撮像装置8によって取得される複数の入力画像を1枚の画像に合成する処理(画像合成処理)の概要について説明する。
図3は、この発明の実施の形態に従う画像合成処理の概要を説明するための図である。図3を参照して、たとえば、3台の撮像装置8−1,8−2,8−3によって得られる入力画像IMG1,IMG2,IMG3を、1枚の合成画像PIMGとして生成する。後述するように、本実施の形態に従う画像合成処理では、各撮像装置8の撮像視野が基準プレートに基づいて予め設定される。このとき、隣接する撮像装置8が撮像すべき領域の間には、所定の重複範囲が設けられる。そして、この重複範囲に含まれる特徴部に基づいて、隣接する撮像装置8によって取得された入力画像間の対応付けが行なわれ、両者の相対的な位置関係が決定される。
本明細書において、「特徴部」とは、他の部分と区別(あるいは、識別)することが可能な部分を総称する。本実施の形態に従う画像合成処理では、隣接する2つの入力画像として撮像された共通の特徴部が、撮像対象上の同じ位置にあることを利用して、複数の画像間の相対的な位置関係を対応付ける。これにより、入力画像の間の位置関係の誤差を低減することができる。なお、他の部分には、特徴部自身が複数の特徴点を有しているような場合には、同一の特徴部内においても、ある部分と他の部分とを区別(あるいは、識別)することが可能な場合も含む。
なお、本明細書において、「相対的な位置関係」とは、複数の入力画像を1枚の合成画像として生成するために必要な対応関係を意味する。数学的に言えば、それぞれの入力画像を共通の座標上にそれぞれ写像(画像変換)することで、当該共通の座標上において1枚の合成画像が生成されることを意味する。この画像変換としては、一例として、「平行移動」、「回転移動」、「拡大縮小」、「台形歪み補正」を行なうような行列変換として提供される。そして、これらの変換行列をどのように組み合わせるか、および/または、使用する変換行列の各係数をどのように決定するかといった、「画像変換パラメータを決定する」ことが、実質的に「相対的な位置関係を決定する」ことになる。
図4は、この発明の実施の形態に従う画像合成処理の結果の一例を示す図である。なお、図4は、本実施の形態に従う画像処理システム1が「稼動モード」である場合に、モニタ102に表示される画面表示例を示す。また、理解を容易にするために、図4には、2台の撮像装置8によって取得された2枚の入力画像を合成する場合の例を示す。
図4を参照して、2台の撮像装置8がそれぞれ異なる撮像視野で撮像した入力画像402および404について、両入力画像を合成して合成画像406が生成される。このように、本実施の形態に従う画像合成処理によって、実質的な撮像視野を広げることができる。
<画像合成処理に係る設定手順>
図5は、この発明の実施の形態に従う画像処理システム1における画像合成処理に係る設定手順を説明するための図である。
図5を参照して、上述したように、本実施の形態に従う画像合成処理では、各撮像装置8の撮像視野を基準プレート20に基づいて設定する。すなわち、「設定モード」において、搬送機構6の搬送面にワーク2に代えて搬送機構6が載置される。そして、この基準プレート20に対向して複数の撮像装置8が配置される。
基準プレート20の表面には、複数の撮像装置8の各々が撮像すべき領域を示すガイドパターンが形成されている。すなわち、撮像装置8の各々は、基準プレート20の対応する領域が自己の撮像視野内に入るように、取付架台10に取付けられる。また、基準プレート20のガイドパターンでは、隣接する撮像すべき領域が互いに所定範囲だけ重複して設定されている(重複範囲22)。この重複範囲22は、隣接する入力画像間の対応付けを行なうための探索範囲に相当する。
また、基準プレート20のガイドパターンは、隣接する撮像装置8により得られた入力画像間の対応付けを行なうための1または複数の特徴点を含む。より具体的には、特徴点の抽出を容易にするために、濃淡パターン(ランダムドットパターン)が形成されている。なお、対応付けは、重複範囲22について行なわれるので、少なくとも当該重複範囲22において、当該濃淡パターンが形成されていればよい。
そして、各撮像装置8が基準プレート20を撮像して得られる入力画像中に現われているガイドパターンに基づいて、それぞれの撮像装置8によって撮像された入力画像の相対的な位置関係が決定される。なお、後述するように、それぞれの撮像装置8によって撮像された入力画像を同一表示面に表示させ、ユーザが、これらの入力画像の相対位置を粗調整した上で、画像処理装置が、両入力画像の特徴点を探索して互いに対応付けることで、隣接する入力画像の間の相対的な位置関係を決定することが好ましい。これは、ユーザが入力画像間の相対的な位置関係を粗調整することで、探索範囲を相対的に狭くすることができるからであり、これにより、画像合成処理の高速化および高精度化を実現できる。
なお、隣接する入力画像の特徴部を探索すべき所定の探索範囲としては、位置関係が対応付けられる両入力画像間の重複して撮像されるべき領域(重複範囲22)と全く一致する場合の他に、当該領域を含む各画像について予め設定された領域、もしくは重複範囲の一部であってもよい。
<基準プレート>
次に、図6〜図8を参照して、本実施の形態に従う画像合成処理において用いられるガイドパターンの一例について説明する。
図6(a)を参照して、基準プレート20のガイドパターンでは、各撮像装置8が撮像すべき領域を示す枠21が描かれている。また、この枠21に囲まれる範囲が、隣接する撮像すべき領域の間の重複範囲22となる。
図6(a)に示す基準プレート20のガイドパターンにおいて、対応する撮像装置8を識別するための情報を、図6(b)に示すように、各撮像装置8が撮像すべき領域に配置してもよい。すなわち、図6(b)に示す基準プレート20Aのガイドパターンでは、撮像装置8が撮像すべきそれぞれの領域の中心部に、対応する撮像装置8を特定するための識別番号24(「1」,「2」,「3」,・・・)が描かれる。このような識別番号24を付加することで、ユーザは、撮像装置8の配置をより容易に行なうことができる。
また、ユーザによる相対位置の粗調整をより容易に行なうために、撮像すべき領域を示す枠の対角を示す線をさらに描いてもよい。すなわち、図7(a)に示す基準プレート20Bのガイドパターンでは、各撮像装置8が撮像すべき領域を示す枠21に加えて、これらの領域の対角線に相当する斜め線23がさらに描かれる。この斜め線により、各撮像装置8が撮像すべき領域がより明確に視認できる。
さらに、図7(a)に示す基準プレート20Bのガイドパターンにおいて、図6(b)と同様に、対応する撮像装置8を識別するための情報をさらに配置してもよい。すなわち、図7(b)に示す基準プレート20Cのガイドパターンでは、撮像装置8が撮像すべきそれぞれの領域の中心部に、対応する撮像装置8を特定するための識別番号24(「1」,「2」,「3」,・・・)が描かれる。
なお、図7には、理解を容易にするために、2台の撮像装置8によって撮像される場合の基準プレートについて例示したが、3台の撮像装置8によって撮像される場合についても、紙面横方向に延長した同様の基準プレートを用いることができる。
さらに、行列状に配置した複数の撮像装置8によってそれぞれ取得される入力画像から合成画像を生成することもできる。このような場合には、列方向および行方向(横方向および縦方向)にそれぞれ隣接する領域に対して、重複範囲22が設定される。
より具体的には、2台×2台の計4台の撮像装置8を用いて合成画像を生成する場合には、図8(a)に示すような基準プレート20Dが用いられる。この基準プレート20Dのガイドパターンには、各撮像装置8が撮像すべき領域を示す枠21が描かれている。
さらに、図8(a)に示す基準プレート20Dのガイドパターンにおいて、図6(b)と同様に、対応する撮像装置8を識別するための情報をさらに配置してもよい。すなわち、図8(b)に示す基準プレート20Eのガイドパターンでは、撮像装置8が撮像すべきそれぞれの領域の中心部に、対応する撮像装置8を特定するための識別番号24(「1」,「2」,「3」,・・・)が描かれる。
<画面表示および操作手順>
以下、図9〜図12を参照して、本実施の形態に従う画像合成処理に係る画面表示および操作手順の一例について説明する。
図9〜図12は、この発明の実施の形態に従う画像処理システム1のモニタ102に表示される、画像合成処理に係る設定を行なうための画面表示例を示す図である。
なお、CPU105および図示しないグラフィックボードなどが協働することで、図9〜図12に示すような設定画面を表示させる。このような画面表示は、OS(Operating System)の一部として組込まれるGUI(Graphical User Interface)プログラムによって実現され、またGUIは、ユーザがキーボード103やマウス104により操作される画面上のカーソルを用いて、さまざまなユーザ設定を行なうための環境も提供する。
図9を参照して、ユーザが「カメラ配置」タブ310を選択すると、カメラ配置設定画面300が表示される。ユーザは、このカメラ配置設定画面300において、画像合成に用いる撮像装置についてのパラメータを設定および確認することができる。
具体的には、カメラ配置設定画面300は、表示画像設定エリア320と、カメラ選択設定エリア322と、カメラ配置設定エリア324と、画像表示エリア360と、全体表示エリア370と、表示制御アイコン群380とを含む。
表示画像設定エリア320では、入力画像の表示方法についての設定および確認が可能である。具体的には、撮像装置8で撮像される入力画像を所定周期で更新する「スルー画像」表示と、撮像装置8があるタイミングで撮像した入力画像を固定的に表示する「フリーズ画像」表示とが選択可能である。
カメラ選択設定エリア322では、画像合成処理に用いる撮像装置の台数についての設定および確認が可能である。具体的には、画像合成処理に用いられる撮像装置8の台数の指定が可能である(図9に示す例では、2台を用いる構成、3台を用いる構成、4台を用いる構成のいずれを選択可能である)。
カメラ配置設定エリア324では、画像合成処理に用いる撮像装置の配置についての設定および確認が可能である。具体的には、画像合成処理に用いられる撮像装置8を1次元的に配置するか、2次元的に配置するかの選択が可能である。
画像表示エリア360には、複数の撮像装置8でそれぞれ撮像された入力画像が同一表示面に並べて表示される。すなわち、画像表示エリア360には、画像合成処理の結果得られる合成画像に相当する入力画像が表示される。さらにユーザは、後述する操作によって、複数の入力画像の相対位置(表示位置)を粗調整するとともに、その粗調整の結果を画像表示エリア360上で確認することもできる。さらに、表示制御アイコン群380に対するユーザ操作に応じて、画像表示エリア360に表示される入力画像のサイズが変更可能となっている。
なお、理解を容易にするために、図10には、2つの入力画像362および364が同一表示面に表示される例を示す。また、それぞれの入力画像362および364には、各入力画像の取得先の撮像装置8を特定する情報(「カメラ0」や「カメラ1」など)が付加表示される。
全体表示エリア370には、画像表示エリア360に表示される内容が表示される。但し、全体表示エリア370には、画像表示エリア360での表示サイズとは独立して、表示対象の画像が常に全体表示される。すなわち、全体表示エリア370には、画像表示エリア360に表示中の画像が画像全体のうちいずれの領域にあるのかを示す。
続いて、ユーザが「画像合成」タブ312が選択すると、図10に示す画像合成設定画面302が表示される。ユーザは、この画像合成設定画面302において、画像合成に用いる撮像装置についてのパラメータについての設定および確認が可能である。
具体的には、画像合成設定画面302は、画像位置合わせエリア330と、画像合成実行エリア340と、画像表示設定エリア350と、画像表示エリア360と、全体表示エリア370と、表示制御アイコン群380とを含む。
画像位置合わせエリア330では、複数の撮像装置8がそれぞれ取得する入力画像の間の位置調整を行なうための指令が入力される。より具体的には、画像位置合わせエリア330には、画像選択ラジオボタン332と、スライドバー334および336とが表示される。画像表示エリア360に表示される複数の入力画像のうち、画像選択ラジオボタン332の設定に対応するものが、スライドバー334および336の操作に応じて、その位置を調整される。
すなわち、画像表示エリア360には、複数の撮像装置8によって撮像された入力画像の一部または全部が並列的に表示されており、これらの入力画像間の相対的な位置関係が調整される。典型的には、ユーザがスライドバー334を操作すると、画像選択ラジオボタン332によって選択された入力画像の表示位置をX方向(図10に示す例では、画面左右方向)にシフトするための指令が与えられる。同様に、ユーザがスライドバー336を操作すると、画像選択ラジオボタン332によって選択された入力画像の表示位置をY方向(図10に示す例では、画面上下方向)にシフトするための指令が与えられる。また、スライドバー334および336にそれぞれ近接して、移動量(シフト量)を示す数値表示ボックスが設けられる。さらに、移動量(シフト量)の直接的な数値入力を受付ける数値入力ボックスもそれぞれ設けられる。
画像合成実行エリア340には、自動合成ボタン342および詳細設定ボタン344が設けられる。後述するように、ユーザが入力画像間の相対位置を粗調整した(暫定的に決定した)後、自動合成ボタン342を選択すると、隣接する入力画像にそれぞれ現われる特徴点を互い対応付ける処理が実行される。そして、このような対応付け処理の結果に基づいて、画像合成処理に係る、複数の入力画像の相対的な位置関係が決定される。
また、詳細設定ボタン344が選択されると、隣接する入力画像の間の対応付け処理に係る詳細な設定を行なうための画面(図示しない)が表示される。
画像表示設定エリア350には、画像枠表示チェックボックス352および特徴点表示チェックボックス354が配置される。画像枠表示チェックボックス352が選択されると、表示される入力画像上に、各入力画像の外延を示す枠が重ねて表示される。また、特徴点表示チェックボックス354が選択されると、表示される入力画像上に、各入力画像において探索された特徴点が重ねて表示される。
図10には、一例として、図7(a)に示す基準プレート20Bを2台の撮像装置8で撮像した場合の表示例を示す。図10に示す画像合成設定画面302の画像表示エリア360では、入力画像362と入力画像364との間で、基準プレート20Bに描かれている斜め線23が不連続に表示されていることがわかる。すなわち、図10に示す状態においては、入力画像362と入力画像364とから生成される合成画像には、重複する部分が含まれることが示されている。
このような状況において、ユーザは、画像位置合わせエリア330に対する操作を行なって、入力画像362と入力画像364との間の相対的な位置関係を調整する。典型的な操作としては、入力画像362を紙面右側にシフトさせ、あるいは入力画像364を紙面左側にシフトさせる。その結果、画像合成設定画面302の表示内容は、図11に示すように変化する。
図11に示す画像合成設定画面302の画像表示エリア360では、入力画像362と入力画像364との間で、基準プレート20Bに描かれている斜め線23が略連続に表示されていることがわかる。すなわち、図11に示す状態では、入力画像362と入力画像364との間で、重複して表示される部分がほぼ存在しない合成画像が生成されることになる。
なお、図11に示す画像合成設定画面302の画像表示エリア360では、入力画像362と入力画像364との重なり部分366について、両画像を半透明にして表示してもよい。両画像を半透明にすることで、重なり部分366において、両画像が一致しているか否かの判断がより容易になる。
図11に示すように、複数の入力画像の相対的な位置関係が暫定的に決定された後、ユーザが画像合成実行エリア340の自動合成ボタン342を選択すると、特徴点の探索処理および両画像の対応付け処理が実行される。その結果、図12に示すように、画像合成処理に係る、入力画像の間の相対的な位置関係が決定される。そして、この決定された相対的な位置関係(設定)に基づいて、以後、複数の撮像装置8によって撮像された複数の入力画像に対して、画像合成処理が実行される。すなわち、上述した図4に示すような、合成画像が必要に応じて生成される。
<制御構造>
以下、図13〜図15を参照して、上述のような画像補正処理を提供するための制御構造について説明する。
(設定モード)
図13は、この発明の実施の形態に従う画像処理システム1における「設定モード」を提供するための制御構造を示すブロック図である。
図13を参照して、本実施の形態に従う画像処理システム1は、画像合成処理の設定を行なうための制御構造として、表示制御部202と、画像バッファ204−1,204−2,…,204−Nと、マッピング部206−1,206−2,…,206−Nと、入力部208と、特徴点抽出部210と、フレームメモリ212と、メモリ216とを含む。なお、図13には、N台の撮像装置8により撮像されるN枚の入力画像(入力画像1,入力画像2,…,入力画像N)から合成画像を生成可能な構成を示すが、入力画像の枚数を所定数に制限する場合には、より構成を簡素化することもできる。
N個の画像バッファ204−1,204−2,…,204−Nは、N台の撮像装置8のそれぞれで撮像された入力画像を一時的に格納する。これらの入力画像は、カメラインターフェイス部109(図2)を介して、対応する撮像装置8から画像バッファ204−1,204−2,…,204−Nの各々へ伝送される。なお、画像バッファ204−1,204−2,…,204−Nをカメラインターフェイス部109へ組み込んでもよい。この画像バッファ204−1,204−2,…,204−Nへ一時的に格納された入力画像は、それぞれ対応するマッピング部206−1,206−2,…,206−Nから任意にアクセス可能である。さらに、この画像バッファ204−1,204−2,…,204−Nへ一時的に格納されたそれぞれ入力画像は、特徴点抽出部210へも適宜出力される。
マッピング部206−1,206−2,…,206−Nは、対応する画像バッファ204−1,204−2,…,204−Nに格納されている入力画像を、入力部208もしくは特徴点抽出部210からの位置指令に従って、フレームメモリ212にマッピングする。
たとえば、ユーザが入力画像1の相対位置を粗調整する場合(図10および図11参照)には、マッピング部206−1は、入力部208からユーザによる入力画像の位置調整を行なうための指令を受信すると、画像バッファ204−1に格納されている入力画像1を、当該指令に応じた位置(座標)を始点として、フレームメモリ212に画像転送(画像マッピング)を行なう。その後、ユーザによる入力画像の位置調整を行なうための指令をさらに受信すると、マッピング部206−1は、画像バッファ204−1に格納されている入力画像を、当該後に受信した指令に応じた新たな位置(座標)を始点として、フレームメモリ212に再度画像転送を行なう。このように、ユーザによる入力画像の位置調整を行なうための指令が変更される毎に、画像バッファ204−1,204−2,…,204−Nからフレームメモリ212への画像マッピングが逐次行なわれる。このような動作によって、ユーザによる入力画像の位置調整を行なうための指令に応じて、入力画像の表示位置が逐次更新される。
また、特徴点抽出部210によって隣接する入力画像間の対応付けが行なわれ、入力画像それぞれの相対的な位置関係が決定されると、マッピング部206−1,206−2,…,206−Nは、当該決定された位置関係に従って、対応する画像バッファ204−1,204−2,…,204−Nに格納されている入力画像をフレームメモリ212にマッピングする。
フレームメモリ212は、複数の入力画像から生成される合成画像を一時的に格納する。すなわち、マッピング部206−1,206−2,…,206−Nの各々が必要な入力画像データをフレームメモリ212に書き込むことで、結果的に、フレームメモリ212には、合成画像が生成される。そのため、フレームメモリ212は、画像処理システム1のモニタ102に表示可能な画像サイズのデータを格納可能に設計される。
表示制御部202は、モニタ102上に、合成画像を表示するとともに、GUIを提供する。具体的には、表示制御部202は、フレームメモリ212に格納される合成画像をレンダリングするとともに、ユーザ操作に応じて各種の設定や確認が可能なウィンドウなどを表示する。表示制御部202は、メモリ216と接続されており、モニタ102での表示を行なうための描画データをこのメモリ216などに一時的に格納する。また、メモリ216には、ウィンドウ表示用のデータなどが予め格納されており、表示制御部202は、これらのデータを適宜読み出して、表示データを生成する。
入力部208は、複数の撮像装置8がそれぞれ撮像して得られる入力画像の間の位置調整を行なうための指令が受付けるとともに、当該指令を対応するマッピング部206−1,206−2,…,206−Nなどへ出力する。
特徴点抽出部210は、入力画像の特徴点を探索し、隣接する入力画像の間でこれらの探索された特徴点を互いに対応つけることで、隣接する入力画像の間の相対的な位置関係を決定する。そして、特徴点抽出部210は、決定した隣接する入力画像の間の相対的な位置関係に基づいて、マッピング部206−1,206−2,…,206−Nに対して、位置設定を行なう。
図13に示す本実施の形態に従うブロック図と本願発明との対応関係については、画像バッファ204−1,204−2,…,204−Nが「記憶手段」を実現し、特徴点抽出部210が「決定手段」を実現し、マッピング部206−1,206−2,…,206−Nおよびフレームメモリ212が「画像合成手段」を実現する。
(特徴点の探索処理および対応付け処理)
以下、図14を参照して、図13に示す特徴点抽出部210で実行される特徴点の探索処理および画像間の対応付け処理の概要について説明する。
図14(a)を参照して、たとえば、2台の撮像装置8でそれぞれ撮像された入力画像IMG1およびIMG2から合成画像を生成する場合を例に説明する。特徴点抽出部210は、入力画像IMG1およびIMG2の両者が互いに隣接する側に設けられた探索範囲SA中に存在する特徴点を探索する。一例として、濃淡パターン(ランダムドットパターン)が描かれたガイドパターン(図6〜図8参照)を用いる場合には、特徴点抽出部210は、当該濃淡パターンに含まれる特定の画素パターンを抽出する。すなわち、所定の画素サイズ(たとえば、5ドット×5ドット)で入力画像を走査し、1つまたは複数の特定の画素パターンをもつ部分を抽出する。
なお、入力画像IMG1およびIMG2に探索範囲SAを設定する目的は、特徴点の探索処理に要する時間を短縮するため、および入力画像間の対応付けを容易に行なうためである。
この探索範囲SAは、基準プレート20のガイドパターンに設定される重複範囲22の大きさと対応している。すなわち、基準プレート20のガイドパターンに基づいて撮像装置8が配置されるので、当該ガイドパターンに設定される重複範囲22によって、隣接配置された撮像装置8で撮像される入力画像の間の重なり部分が概ね定まる。ところで、限られた台数の撮像装置8を用いて、撮像視野を可能な限り広くする観点からは、この重複範囲22は可能な限り小さいことが好ましい。一方、重複範囲22が小さすぎると、特徴点の探索の精度が低下するおそれもある。したがって、ガイドパターンの重複範囲の大きさは、特徴点抽出部210で実行される特徴点の探索処理および画像間の対応付け処理の精度および処理許容時間などに応じて、適切に設定される。
逆に言えば、入力画像IMG1およびIMG2に探索範囲SAは、基準プレートのガイドパターンに設定される重複範囲22の大きさに応じて適宜設定すれば十分である。そのため、必要以上に探索範囲SAを大きくしなくともよい。
一例として、図14(a)には、入力画像IMG1およびIMG2のそれぞれにおいて、3個の特徴点C1,C2,C3が探索された状態を示す。特徴点抽出部210は、両入力画像の間で、これらの探索された特徴点同士を対応付ける。
より具体的には、図14(b)を参照して、特徴点抽出部210は、入力画像IMG1およびIMG2のそれぞれで抽出された特徴点C1,C2,C3の位置(座標)が、互いに一致するように、入力画像IMG1およびIMG2の相対位置を決定する。
最も簡単な例では、特徴点抽出部210は、グローバル座標上に、入力画像IMG1およびIMG2をそれぞれ独立に配置した後、入力画像IMG1およびIMG2のそれぞれに含まれる特徴点C1,C2,C3が同一の座標値を示すように、入力画像IMG1およびIMG2の一方または両方の位置を調整する。なお、それぞれの撮像装置8と基準プレート20との間の距離が異なる場合には、入力画像IMG1およびIMG2に現われる特徴点のサイズが異なる場合もある。このような場合には、上述の位置調整に加えて、入力画像IMG1およびIMG2の一方または両方の画像サイズや形状なども調整される。
すなわち、特徴点抽出部210は、抽出した特徴点C1,C2,C3に基づいて、合成画像を生成するために必要な変換パラメータをそれぞれ決定し、この決定した変換パラメータに従って、入力画像IMG1およびIMG2のそれぞれに対して、「平行移動」、「回転移動」、「拡大縮小」、および「台形歪み補正」といった画像変換操作の1つまたは複数を実行する。
あるいは、特徴点の探索処理および対応付け処理の処理については、特開2006−171939号公報(特許文献1)に開示されている処理を用いてもよい。また、基準プレートに描かれる特徴点は、濃淡パターン(ランダムドットパターン)に限られることなく、バーコードやカラーパターンなどであってもよい。
上述のように、隣接する2つの入力画像の間で、特徴点の探索処理および対応付け処理が順次実行され、それぞれの入力画像の間における相対的な位置関係が決定される。
このように、「設定モード」において決定された入力画像間の相対位置に基づいて、「稼動モード」において画像合成処理が実行される。
(稼動モード)
図15は、この発明の実施の形態に従う画像処理システム1における「稼動モード」を提供するための制御構造を示すブロック図である。
図15を参照して、本実施の形態に従う画像処理システム1は、「稼動モード」において画像合成処理を実行するための制御構造として、表示制御部202と、画像バッファ204−1,204−2,…,204−Nと、マッピング部206−1,206−2,…,206−Nと、処理アプリ部218と、フレームメモリ212と、メモリ216とを含む。
マッピング部206−1,206−2,…,206−Nは、先行の「設定モード」において決定された相対位置設定に従って、画像バッファ204−1,204−2,…,204−Nへ一時的に格納された入力画像をそれぞれフレームメモリ212に画像マッピングを行なう。
処理アプリ部218は、ワークに対する光学的な処理を行なう。すなわち、処理アプリ部218は、合成画像に基づいて、ユーザが任意に選択する検査・計測・認識などを実行する。そして、処理アプリ部218は、その処理結果を表示制御部202へ出力する。表示制御部202は、この処理アプリ部218からの処理結果に基づいて、検出された領域などを表示中の合成画像に重ねて表示する。
その他の部位については、図13と同様であるので、詳細な説明は繰返さない。
<処理手順>
(設定モード)
図16は、この発明の実施の形態に従う画像処理システム1における処理手順(設定モード)を示すフローチャートである。図16に示す処理のうちユーザが実行する処理以外は、CPU105が固定ディスク107などに予め格納されたプログラムをメモリ106に読出して実行することにより実現される。なお、電源投入直後は、「設定モード」に設定されているものとする。
図16を参照して、まず、ユーザは、基準プレート20を搬送機構6の搬送面に載置する(ステップS100)。基準プレート20を載置した後にユーザが指令を与えると、CPU105は、複数の撮像装置8による撮像を開始し、複数の撮像装置8で撮像された複数の入力画像をモニタ102に表示する(ステップS102)。なお、この入力画像の表示は、実質的にリアルタイム表示がなされることが好ましい。
ユーザは、モニタ102に表示される入力画像を参照しながら、基準プレート20に対向して複数の撮像装置8をそれぞれ配置する(ステップS104)。具体的には、ユーザは、各撮像装置8の撮像すべき領域が各自の撮像視野内に入るように、図1に示す取付架台10への撮像装置8の取付け位置などを調整する。なお、ステップS102およびS104では、複数の撮像装置8で撮像された複数の入力画像を同一表示する必要はなく、配置対象となる撮像装置8の各々について、それが撮像する入力画像のみを全面表示してもよい。
複数の撮像装置8の配置が完了すると、ユーザは配置完了を示す指令を与える。すると、CPU105は、複数の撮像装置8に基準プレート20を撮像させて、それぞれの入力画像を取得し(ステップS106)、取得した複数の入力画像を同一表示面であるモニタ102に表示する(ステップS108)。
続いて、CPU105は、表示される複数の入力画像の位置調整を行なうための指令を受付け(ステップS110)、当該受付けた指令に応じて、複数の入力画像の表示位置を更新する(ステップS112)。すなわち、ユーザは、モニタ102に表示される複数の入力画像に対して、その中に現われるガイドパターンを参照して、隣接する入力画像の相対位置を粗調整する。
さらに、CPU105は、画像合成実行エリア340の自動合成ボタン342(図11)が選択されたか否かを判断する(ステップS114)。自動合成ボタン342が選択されていない場合(ステップS114においてNOの場合)には、ステップS110以下の処理が繰返される。
一方、自動合成ボタン342が選択された場合(ステップS114においてYESの場合)には、CPU105は、隣接する2つの入力画像について、両者が互いに隣接する側に設けられた探索範囲内に存在する特徴点を探索する(ステップS116)。そして、CPU105は、当該2つの入力画像の間で、探索された特徴点同士を対応付け(ステップS118)、2つの入力画像の間についての相対位置を決定する(ステップS120)。
さらに、CPU105は、すべての隣接する入力画像の間についての相対位置の決定が完了したか否かを判断する(ステップS122)。すべての隣接する入力画像の間についての相対位置の決定が完了していない場合(ステップS122においてNOの場合)には、ステップS116以下の処理が繰返される。
一方、すべての隣接する入力画像の間についての相対位置の決定が完了した場合(ステップS122においてYESの場合)には、CPU105は、決定した入力画像の間における相対位置を格納する(ステップS124)。さらに、CPU105は、モード切替えの指令が与えられたか否かを判断する(ステップS126)。モード切替えの指令が与えられた場合(ステップS126においてYESの場合)には、CPU105は、「稼動モード」へ移行する(ステップS128)。そして、図17に示す処理が実行される。
一方、モード切替えの指令が与えられていない場合(ステップS126においてNOの場合)には、ステップS106以下の処理が繰返される。
(稼動モード)
図17は、この発明の実施の形態に従う画像処理システム1における処理手順(稼働モード)を示すフローチャートである。図17に示す処理のうちユーザが実行する処理以外は、CPU105が固定ディスク107などに予め格納されたプログラムをメモリ106に読出して実行することにより実現される。
図17を参照して、CPU105は、光電センサによるワーク2の到着が検出された否かを判断する(ステップS200)。ワーク2の到着が検出されていない場合(ステップS200においてNOの場合)には、ステップS200の処理を繰返す。
ワーク2の到着が検出された場合(ステップS200においてYESの場合)には、CPU105は、複数の撮像装置8にワーク2を撮像させて、それぞれの入力画像を取得する(ステップS202)。さらに、CPU105は、設定モードにおいて決定されている相対位置設定に従って、取得した複数の入力画像から合成画像を生成する(ステップS204)。
続いて、CPU105は、生成された合成画像に基づいて、検査・計測・認識などの光学的な処理を実行する(ステップS206)。この光学的な処理によって、位置などの処理結果が出力される。
さらに、CPU105は、モード切替えの指令が与えられたか否かを判断する(ステップS208)。モード切替えの指令が与えられた場合(ステップS208においてYESの場合)には、CPU105は、「設定モード」へ移行する(ステップS210)。そして、図16に示す処理が実行される。
一方、モード切替えの指令が与えられていない場合(ステップS208においてNOの場合)には、処理はリターンする。
<本実施形態の作用効果>
この発明の実施の形態によれば、被測定物についての撮像視野を実質的に大きくするために、複数の撮像装置により得られる複数の画像を結合して合成画像を生成する構成を採用する場合において、経験のないユーザであっても、画像合成処理に係る設定を容易に行なうことができる。すなわち、ユーザは、基準プレートに描かれたガイドパターンを参照して、対応する撮像すべき領域が各撮像装置の撮像視野内に入るように、それぞれの撮像装置の取付け位置などを調整するだけでよい。また、このような基準プレートを用いることで、設定に要する時間を短縮することもできる。
従来の画像合成処理においては、隣接する撮像装置の撮像視野が部分的に重なるように配置する必要がある一方、重なり部分が大きくなり過ぎると合成後の実質的な撮像視野があまり大きくならないという相反する課題が存在した。これに対して、本実施の形態に従う基準プレートを用いる場合には、予め必要な大きさの重複範囲が予め示されているので、経験のないユーザであっても、それぞれの撮像装置を、適切な大きさの重複範囲で配置することができる。
また、この発明の実施の形態に従う基準プレートには、特徴点を含む濃淡パターンが形成されている。これにより、ユーザが入力画像の相対関係を粗調整すると、その後は、本実施の形態に従う画像処理システムが、特徴点の探索処理および対応付け処理を実行し、合成画像を生成するための、入力画像の相対関係を自動的に決定する。そのため、経験のないユーザであっても、高精度な合成画像を生成することができる。
[その他の実施の形態]
本発明に係るプログラムは、コンピュータのオペレーティングシステム(OS)の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずOSと協働して処理が実行される。このようなモジュールを含まないプログラムも、本発明にかかるプログラムに含まれ得る。
また、本発明に係るプログラムは他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には上記他のプログラムに含まれるモジュールが含まれず、他のプログラムと協働して処理が実行される。このような他のプログラムに組込まれたプログラムも、本発明に係るプログラムに含まれ得る。
提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記憶された記録媒体とを含む。
さらに、本発明に係るプログラムによって実現される機能の一部または全部を専用のハードウェアによって構成してもよい。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 画像処理システム、2 ワーク、4 光電センサ、6 搬送機構、8,8−1,8−2,8−3 撮像装置、10 取付架台、20,20A,20B,20C,20D,20E 基準プレート、100 コンピュータ、101 コンピュータ本体、102 モニタ、103 キーボード、104 マウス、106 メモリ、107 固定ディスク、109 カメラインターフェイス部、111 FD駆動装置、113 CD−ROM駆動装置、115 PLCインターフェイス部、117 センサインターフェイス部、202 表示制御部、204,204−1〜204−N 画像バッファ、206,206−1〜206−N マッピング部、208 入力部、210 特徴点抽出部、212 フレームメモリ、216 メモリ、218 処理アプリ部。