本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
<A.概要>
本実施の形態に係る画像処理方法および画像処理装置では、液体レンズへの駆動電圧の印加後、撮像部に画像データを順次生成させるとともに、これらの画像データを記憶する。そして、記憶した画像データに対して合焦判定を行って、その合焦判定の結果に基づいて、後段の画像処理に適切な(1または複数の)画像データおよび/または(1または複数の)部分画像を選択する。さらに、選択された画像データまたは部分画像を用いて、画像計測処理や画像合成処理を実行する。
後述するように、液体レンズは動作の再現性が低いが、本実施の形態に係る画像処理方法および画像処理装置では、このような不利な点を克服して、より適切な画像処理を提供できる。
<B.全体装置構成>
図1は、本発明の実施の形態に係る画像処理装置100を含む視覚センサシステム1の全体構成を示す概略図である。
図1を参照して、視覚センサシステム1は、本実施の形態に係る画像処理システムの一適用例であり、生産ラインなどに組込まれてワーク2を撮像することで生成される画像データに基づいて、文字認識やキズ検査といった画像計測処理を実行する。
視覚センサシステム1においては、ワーク2はベルトコンベヤなどの搬送機構6によって搬送され、搬送されたワーク2は、撮像部8によって所定タイミングで撮像される。
撮像部8は、CCD(Coupled Charged Device)やCMOS(Complementary Metal Oxide Semiconductor)センサといった撮像素子を含んで構成される。特に、撮像部8は、その内部に封入された液体に電圧を印加することで当該液体の界面を変化させて焦点位置を変化させる液体レンズと結合されている。この構成の詳細については後述する。なお、撮像部8で撮像されるワーク2に対して光を照射する照明機構をさらに設けてもよい。
撮像部8がワーク2を撮像して生成される画像データは、画像処理装置100へ伝送される。
ワーク2が撮像部8の視野内に到達したことは、搬送機構6の両端に配置されたセンサ4によって検出される。具体的には、センサ4は、同一の光軸上に配置された受光部4aと投光部4bとを含み、投光部4bから放射される光がワーク2で遮蔽されることを受光部4aで検出することによって、ワーク2の到達を検出する。このセンサ4のトリガ信号は、PLC(Programmable Logic Controller)5へ出力される。PLC5は、センサ4などからのトリガ信号を受信するとともに、搬送機構6の制御自体を司る。
画像処理装置100は、典型的には、汎用的なアーキテクチャを有しているコンピュータであり、予めインストールされたプログラム(命令コード)を実行することで、後述するような各種機能を提供する。このようなプログラムは、典型的には、メモリカード106などに格納された状態で流通する。
このような汎用的なコンピュータを利用する場合には、本実施の形態に係る機能を提供するためのアプリケーションに加えて、コンピュータの基本的な機能を提供するためのOS(Operating System)がインストールされていてもよい。この場合には、本実施の形態に係るプログラムは、OSの一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。すなわち、本実施の形態に係るプログラム自体は、上記のようなモジュールを含んでおらず、OSと協働して処理が実行されてもよい。本実施の形態に係るプログラムとしては、このような一部のモジュールを含まない形態であってもよい。
さらに、本実施の形態に係るプログラムは、他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には、上記のような組合せられる他のプログラムに含まれるモジュールを含んでおらず、当該他のプログラムと協働して処理が実行される。すなわち、本実施の形態に係るプログラムとしては、このような他のプログラムに組込まれた形態であってもよい。なお、プログラムの実行により提供される機能の一部もしくは全部を専用のハードウェア回路として実装してもよい。
図2は、本発明の実施の形態に係る画像処理装置100の概略構成図である。図2を参照して、画像処理装置100は、演算処理部であるCPU(Central Processing Unit)110と、記憶部としてのメインメモリ112およびハードディスク114と、カメラインターフェイス116と、入力インターフェイス118と、表示コントローラ120と、PLCインターフェイス122と、通信インターフェイス124と、データリーダ/ライタ126と、レンズインターフェイス130とを含む。これらの各部は、バス128を介して、互いにデータ通信可能に接続される。
CPU110は、ハードディスク114に格納されたプログラム(コード)をメインメモリ112に展開して、これらを所定順序で実行することで、各種の演算を実施する。メインメモリ112は、典型的には、DRAM(Dynamic Random Access Memory)などの揮発性の記憶装置であり、ハードディスク114から読み出されたプログラムに加えて、撮像部8によって取得された画像データ、ワークデータ、モデルに関する情報などを保持する。さらに、ハードディスク114には、各種設定値などが格納されてもよい。なお、ハードディスク114に加えて、あるいは、ハードディスク114に代えて、フラッシュメモリなどの半導体記憶装置を採用してもよい。
カメラインターフェイス116およびレンズインターフェイス130は、ワーク2を撮像して画像データを生成する撮像部8を画像処理装置100に接続するためのインターフェイスに相当する。
より具体的には、カメラインターフェイス116は、撮像部8で生成される画像データのデータ伝送を仲介する。カメラインターフェイス116は、撮像部8で生成される画像データを一時的に蓄積するための画像バッファ116aを含む。画像バッファ116aに蓄積される画像データは、必要に応じて、メインメモリ112へ転送される。すなわち、画像バッファ116aおよびメインメモリ112は、撮像部8により生成された画像データを記憶するための記憶部として機能する。
また、レンズインターフェイス130は、撮像部8に搭載された液体レンズを駆動するための制御信号などのデータ伝送を仲介する。より具体的には、レンズインターフェイス130は、CPU110からの内部コマンドに従って、撮像部8の焦点位置を変化させるための電圧制御指令を撮像部8へ出力する。
また、カメラインターフェイス116またはレンズインターフェイス130からは、撮像条件(露光時間(シャッター速度)および絞り量)や、撮像開始タイミングを示す信号(トリガ信号)なども撮像部8に対して出力される。
なお、カメラインターフェイス116とレンズインターフェイス130とを一体的に構成してもよい。
入力インターフェイス118は、CPU110とマウス104、キーボード、タッチパネルなどの入力部との間のデータ伝送を仲介する。すなわち、入力インターフェイス118は、ユーザが入力部を操作することで与えられる操作指令を受付ける。
表示コントローラ120は、表示装置の典型例であるディスプレイ102と接続され、CPU110における画像処理の結果などをユーザに通知する。すなわち、表示コントローラ120は、ディスプレイ102に接続され、当該ディスプレイ102での表示を制御する。なお、図1には、ディスプレイ102と一体的に構成された画像処理装置100を例示するが、両者を別体として構成してもよい。
PLCインターフェイス122は、CPU110とPLC5との間のデータ伝送を仲介する。より具体的には、PLCインターフェイス122は、PLC5によって制御される生産ラインの状態に係る情報やワーク2に係る情報などを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には、必要に応じて、プリンタなどの他の出力装置が接続されてもよい。
<C.液体レンズ>
まず、本実施の形態に係る撮像部8に搭載される液体レンズの構造および動作原理について説明する。
図3および図4は、本実施の形態に係る撮像部8に結合される液体レンズの構造および動作原理を説明するための図である。
図3(a)を参照して、本実施の形態に係る液体レンズ80は、一対の透光部81および82の間に封入された2種類の液体を含む。すなわち、液体レンズ80の内部には、導電性の第1の液体83と、絶縁性の第2の液体84とが封入されている。そして、その内面がテーパー状に形成されたリング形状の第1の電極85と、リング状の第2の電極87とが、リング状の絶縁体86を挟んで積層される。この積層された、第1の電極85、リング状の絶縁体86、およびリング状の第2の電極87が、第1の液体83および第2の液体84を取り囲む。また、第1の電極85の表面には、絶縁層88が形成されている
一例として、第1の液体83は、所定の導電性の物質が添加された水であり、第2の液体84は、非導電性のオイルである。
この液体レンズ80では、第1の電極85と第2の電極87との間に印加する電圧を調整することで、レンズ内部の第1の液体83と第2の液体84との間の界面が変化する。ここで、第1の液体83と第2の液体84との間の屈折率も異なるように設計されており、界面の変化によって、レンズを透過する光の屈折率も変化する。この屈折率の変化によって、レンズの焦点位置が移動することになる。このように、液体の界面の変化だけで、焦点位置を変化させるので、焦点合せに要する反応時間を短くでき、また、機械的な磨耗などの問題が生じない。
図3(b)および図3(c)には、第1の電極85と第2の電極87との間に、異なる大きさの電圧を印加した場合の状態を示す。特に、図3(b)には、相対的に大きな電圧を印加した場合の液体レンズ80の状態を示し、図3(c)には、相対的に小さな電圧を印加した場合の液体レンズ80の状態を示す。
図3(b)に示すように、相対的に大きな電圧が印加された場合には、第2の液体84がより大きく盛り上がるので屈折率が相対的に大きくなり、液体レンズ80の焦点位置はF1の位置になる。これに対して、図3(c)に示すように、相対的に小さな電圧が印加された場合には、第2の液体84の盛り上がり量が小さくなるので屈折率が相対的に小さくなり、液体レンズ80の焦点位置はF1より遠いF2の位置になる。
このように、第1の電極85と第2の電極87との間に印加する電圧の大きさに応じて、液体レンズ80の焦点位置を変化させることができる。
このような液体レンズ80の動作について、図4を参照してより詳しく説明する。図4(a)には、液体レンズ80の断面構造を示し、図4(b)には、電圧が印加されていない状態における、第1の電極85における界面の状態を拡大して示し、図4(c)には、電圧が印加された状態における、第1の電極85における界面の状態を拡大して示す。
液体レンズ80は、いわゆるエレクトロウエッティングと称される技術を用いて、その界面、すなわち焦点位置が制御される。
図4(b)に示すように、電力に電圧が印加されていない状態においては、第1の液体83、第2の液体84、および第1の電極85(絶縁層88)の間に3種類の界面張力が生じる。すなわち、(1)第1の液体83と第1の電極85(絶縁層88)との間に生じる界面張力γsw、(2)第1の液体83と第2の液体84との間に生じる界面張力γowと、および、(3)第2の液体84と第1の電極85(絶縁層88)との間に生じる界面張力γosが生じる。この3つの界面張力がバランスするように、第2の液体84と第1の電極85との間の接触角θが定まる。
次に、第1の電極85と第2の電極87との間に電圧が印加されると、第1の電極85(絶縁層88)が接する第1の液体83および第2の液体84のうち、導電性を有する第1の液体83についてのみ電荷の移動が生じる。すなわち、第1の液体83と第1の電極85(絶縁層88)との界面には、印加される電圧値に応じた量の電荷が生じる。一方、非導電性の第2の液体84と第1の電極85(絶縁層88)との界面には、電荷が生じない。
その結果、発生する電荷の不均衡によって、第1の電極85の界面に沿って、生じた電荷の量に応じた力Πが発生する(図4(c)に示す例では、紙面下向き)。すると、図4(b)に示すような界面張力γsw,γow,γosに加えて、力Πを含めてバランスするように、第2の液体84と第1の電極85との間の接触角がθからθ’へ変化する。すなわち、第2の液体84と第1の電極85との間の接触角が大きくなる。
これにより、第2の液体84が凸状に盛り上がり、液体レンズ80全体としての屈折率が変化することになる。
また、上述したように、第1の液体83と第1の電極85(絶縁層88)との界面に生じる電荷の量(印加電圧に依存)が大きくなるほど、より大きな力Πが発生するので、第2の液体84の接触角も大きくなる。したがって、印加電圧が大きいほど、より屈折率が大きくなる。
<D.撮像部>
次に、上述のような液体レンズ80を結合した撮像部の構造の一例について説明する。
(d1.構造その1)
図5は、本実施の形態に係る液体レンズ80を結合した撮像部8の構造例(その1)を示す図である。
図5に示す撮像部8は、カメラユニット801と、レンズユニット802とから構成される。カメラユニット801は、撮像素子(図示しない)を有しており、開口部から入射する光を受光して、その像を表わす画像データを出力する。レンズユニット802は、カメラユニット801の入射光軸上に沿って、2つの液体レンズ80が直列的に配置される。図5に示す例では、焦点位置の変化量を増加させるために、2個の液体レンズ80を用いた構成を例示するが、1つの液体レンズ80だけを搭載する構成であってもよく、あるいは、それ以上の数の液体レンズ80を搭載する構成であってもよい。
この液体レンズ80は筒内に格納され、その両端は、防護レンズ803および804により封止される。また、同じ筒内には、カメラユニット801の撮像素子に入射像を結像するための固体レンズ804(典型的には、収束レンズ)が配置される。
また、液体レンズ80が格納される筒の上部には、液体レンズ80を駆動するための回路基板806や、図示しない照明装置(ストロボ)を駆動するための回路807が実装される。
図5に示すような構造を採用することで、共通のカメラユニット801に対して、様々な光学的な特性を有するレンズユニット802を装着することで、焦点範囲などにおいてバリエーションを有する撮像部8の商品群を実現できる。
(d2.構造その2)
図6は、本実施の形態に係る液体レンズ80を結合した撮像部8の構造例(その2)を示す図である。
図6に示す撮像部8は、カメラユニット811と、ズームレンズユニット812と、フォーカスレンズユニット813とから構成される。カメラユニット801は、撮像素子(図示しない)を有しており、開口部から入射する光を受光して、その像を表わす画像データを出力する。ズームレンズユニット812は、カメラユニット801の入射光軸上に配置され、視野範囲を可変にするための光学系を有する。フォーカスレンズユニット813は、カメラユニット811の入射光軸上に配置され、2つの液体レンズ80が直列的に配置される。図6に示す例においても、焦点位置の変化量を増加させるために、2個の液体レンズ80を用いた構成を例示するが、1つの液体レンズ80だけを搭載する構成であってもよく、あるいは、それ以上の数の液体レンズ80を搭載する構成であってもよい。
この液体レンズ80は筒内に格納され、その両端は、防護レンズ814および815により封止される。また、同じ筒内には、液体レンズ80に入射する像を収束させるための固体レンズ815が配置される。
なお、カメラユニット811には、撮像素子および撮像素子を駆動するための回路に加えて、液体レンズ80を駆動するための回路基板が実装される。
図6に示すような構造を採用することで、比較的広い焦点距離および視野範囲に対応できる撮像部を実現することができる。
(d3.構造その3)
図7は、本実施の形態に係る液体レンズ80を結合した撮像部8の構造例(その3)を示す図である。
図7には、照明装置一体型の撮像部8を例示する。この撮像部8は、発光素子(LED)などが実装された照明ユニット822と、照明ユニット822の中心部にある空洞の軸上に配置された液体レンズ80とを含む。この液体レンズ80の下部には、液体レンズ80を駆動するための回路基板823が実装される。また、液体レンズ80の光軸上には、撮像素子825が実装され、液体レンズ80を通過した像を受光する。また、撮像素子825の上部には、撮像素子825を駆動するための回路基板824が実装される。さらに、撮像部8の照射面には、透光性の防護カバー821が配置される。
図7に示すような構造を採用することで、比較的広い焦点距離および視野範囲に対応できる撮像部を実現することができる。
(d4.制御回路)
図8は、本実施の形態に係る画像処理装置100における液体レンズを制御するための構成例を示す図である。特に、図8(a)には、画像処理装置100から撮像部8および液体レンズ駆動部89をそれぞれ制御する構成を示し、図8(b)には、画像処理装置100から撮像部8を通じて液体レンズ駆動部89を制御する構成を示す。
図8に示すように、本実施の形態に係る撮像部8は、接続される液体レンズ80を駆動するための液体レンズ駆動部89を有する。この液体レンズ駆動部89は、撮像部8に内蔵される場合もあるし、撮像部8とは独立したコンポーネントとして実装される場合もある。
図8(a)に示す構成は、図2に示すような、画像処理装置100にカメラインターフェイス116およびレンズインターフェイス130が実装される場合に向けられたものである。すなわち、画像処理装置100のカメラインターフェイス116が撮像部8との間で画像データおよびトリガ信号を遣り取りする。この画像データは、撮像部8の撮像により順次生成される。トリガ信号は、CPU110が撮像タイミングであると判断した場合に送出される。
また、画像処理装置100のレンズインターフェイス130は、液体レンズ駆動部89に対して、撮像部8に搭載されている液体レンズ80を駆動するための電圧制御指令を与える。この電圧制御指令は、目的の焦点位置に応じてその大きさが定まる。液体レンズ駆動部89は、電圧制御指令に応答して、液体レンズ80を駆動するための駆動電圧を発生する。この駆動電圧は、交流電圧が好ましく、電圧制御指令に従ってその振幅値が変更される。
また、図8(b)に示す構成は、画像処理装置100と撮像部8との間のインターフェイスを共通化した場合に向けられたものである。すなわち、画像処理装置100と撮像部8との間で、画像データ、トリガ信号および電圧制御信号が遣り取りされる。このうち、電圧制御信号については、撮像部8を通じて液体レンズ駆動部89へ伝えられる。そして、液体レンズ駆動部89は、電圧制御指令に応答して、液体レンズ80を駆動するための駆動電圧を発生する。
もちろん、上記の構成に限られず、画像処理装置100が撮像部8および撮像部8に搭載される液体レンズ80との間でデータ伝送可能な構成であれば、いずれの構成を採用してもよい。
<E.液体レンズの動作特性>
次に、液体レンズの動作特性について説明する。
本願発明者は、駆動電圧を印加した場合の液体レンズの反応特性について実験を行った。なお、実験には、varioptics社(バリオプティック社:フランス)の液体レンズを用いた。
図9は、液体レンズの反応特性の実験例を示す図である。図10は、液体レンズの反応時間(平均値)の実験例を示す図である。
実験系としては、液体レンズの一方側に所定の光量を一定照射する光源(レーザ)を配置するとともに、液体レンズの他方側に液体レンズを透過した光を受光する検出器(フォトダイオード)を配置した上で、液体レンズに駆動電圧を印加してからの、検出器での受光量(強度)の時間的変化を測定した。この実験系では、液体レンズの焦点位置が光源の位置に一致した場合に受光量が最大となる。そのため、検出器から出力される受光量が所定のしきい値に到達した時点を焦点位置の変化が完了したと判断できる。
実験内容としては、駆動電圧として交流を採用し、この交流の振幅値を基準電圧(振幅値)から+10V,+20V,+30Vの3種類に変化(電圧上昇)させた場合の反応時間を複数回測定した。また、それぞれ(基準電圧+10)V,(基準電圧+20)V,(基準電圧+30)Vの振幅値をもつ交流を基準電圧まで変化(電圧下降)させた場合の反応時間を複数回測定した。また、温度環境についても変化させて測定を行った。
図9には、駆動電圧の基準電圧が20Vである場合に、駆動電圧を40Vまで上昇(+20V変化)させた場合の受光量の時間的変化を示す。図9に示すように、駆動電圧を変化させたタイミングから、液体レンズ80の焦点位置が動かない状態の期間(むだ時間)と、液体レンズ80の焦点位置が目的の位置の移動に要する期間(応答時間)とが生じる。以下では、前者を「反応開始時間」と称し、後者を「反応安定時間」と称する。これらの時間の合計を反応時間(=反応開始時間+反応安定時間)として評価する。
上述したような各条件における実験結果を図10に示す。図10を参照すると、全体としては環境温度が高いほど、より高速に焦点合せ(焦点位置の移動)が完了する傾向があるといえる。また、全体としては電圧変化量が多いほど、より高速に焦点合せ(焦点位置の移動)が完了する傾向があるといえる。
しかしながら、このような傾向に反する実験結果もあり、また、反応時間の最大値と最小値との間は約2.5倍程度のばらつきがある。したがって、液体レンズ80による焦点位置の移動動作の再現性は高いとはいえず、動作のばらつきが大きいと評価せざるを得ない。
すなわち、液体レンズ80を搭載する撮像部8を用いてワーク2を撮像しようとする場合、駆動電圧を印加した後、液体レンズ80による焦点位置の変化が完了した時点で撮像動作(撮像素子による受光および画像データ生成)を行うのが一般的であると考えられる。しかしながら、液体レンズ80が焦点位置の変化を完了させるまでに100[ms]以上要し、その再現性も低い。そのため、液体レンズ80による焦点位置の完了後に撮像を開始した場合には余分に処理時間を要してしまい、また、合焦動作の再現性が低い(撮像部8の焦点を目的の位置に合せることが難しい)ため、目的の画像データを取得することができない。そこで、本実施の形態に係る画像処理装置100においては、以下のような処理を採用する。
すなわち、本実施の形態に係る画像処理装置100は、液体レンズ80の反応時間より十分に短い間隔で撮像可能な撮像素子を用いて、液体レンズ80に駆動電圧が印加されてからその焦点位置の変化が実質的に完了するまでの間、撮像部8で順次生成される画像データのうち複数を格納する。なお、VGA(Video Graphics Array)サイズ(640画素×480画素)の画像データを出力するのであれば、撮像周期が2[ms]程度の撮像素子が実用化されている。そして、画像処理装置100は、格納された画像データについて合焦判定を行って必要な画像データだけを選択して、その選択した画像データに基づいて画像計測処理を行う。
なお、選択される画像データは、1枚であってもよいし、それより多くの枚数(もちろん、全画像データであってもよい)であってもよい。選択される画像データが1枚である場合には、従来からある各種の画像計測処理をそのまま適用できる。また、選択される画像データが複数枚である場合には、画像合成技術を用いて、合成画像を生成してもよい。
このような処理を採用することで、液体レンズ80の焦点移動動作の再現性が低いという課題を解決できる。
<F.全体処理手順>
次に、上述したような本実施の形態に係る処理内容についてより詳細に説明する。
図11は、本実施の形態に係る撮像動作について説明する図である。特に、図11(a)は、液体レンズ80の反応時間が相対的に長い状態を示し、図11(b)は、液体レンズ80の反応時間が相対的に短い状態を示す。
図11(a)および図11(b)に示すように、本実施の形態に係る画像処理装置100は、液体レンズ80に対して駆動電圧を印加してから液体レンズ80の焦点位置の変化が完了するまでの期間中、撮像部8に対して複数回の撮像を行わせる。この撮像部8による複数回の撮像によって生成される複数の画像データは、画像処理装置100に格納される。
そして、画像処理装置100は、格納された複数の画像データに対して合焦判定を行い、合焦状態(目的のワーク2に撮像部8の焦点位置が一致している状態)となっている画像データまたは部分画像を画像計測処理/画像合成処理の対象として選択する。この液体レンズ80による焦点位置の移動に要する時間に対して、撮像部8の撮像周期を十分に短く設定することで、液体レンズ80の1回の焦点位置の移動動作において多数の画像データを取得することができる。そのため、図11(a)および図11(b)に示すように、液体レンズ80の反応時間が変動した場合であっても、目的のワーク2に焦点が合った画像データ(図11の「合焦位置」で撮像された画像データ)を取得できる。
上述したように、撮像部8の撮像周期が2[ms]であれば、反応時間の最小値が200[ms]程度であれば、約100枚の画像データを生成できる。そのため、この100枚の画像データから目的のワーク2に合焦している画像データまたは部分画像を選択することで、画像処理を適切に行うことができる。
図12は、本実施の形態に係る全体処理手順を示すフローチャートである。図12を参照して、本実施の形態に係る全体処理は、主として、画像処理装置100と撮像部8、および、画像処理装置100と液体レンズ80との間の遣り取りで構成される。
すなわち、何らかの撮像開始のイベントが発生すると(ステップS1)、画像処理装置100は、撮像部8へ撮像開始を指示するトリガを送信する(ステップS2)とともに、液体レンズ80へ電圧制御指令を送信する(ステップS3)。すなわち、画像処理装置100は、ワーク2を撮像すべきタイミングと判断すると、撮像部8の焦点位置を変化させるための指令を液体レンズ駆動部89(図8)などへ出力する。
この電圧制御指令に応答して、液体レンズ駆動部89が液体レンズ80に駆動電圧を印加する。すると、液体レンズ80は焦点位置の変化を開始させる(ステップS4)。この液体レンズ80の焦点位置の変化と並行して、撮像部8は所定周期での繰返し撮像を開始する(ステップS5−1,S5−2,…,S5−N)。また、撮像部8が撮像することで生成した画像データは、画像処理装置100へ順次転送される(ステップS6−1,S6−2,…,S6−N)。この画像処理装置100へ転送される画像データは、画像バッファ116aまたはメインメモリ112へ格納される。
上述の撮像部8による撮像および画像データの転送は、液体レンズ80の焦点位置の変化が実質的に完了する(ステップS7)まで繰返される。そのため、画像処理装置100は、液体レンズ80による撮像部8の焦点位置の変化が実質的に完了するまでの間、撮像部8で順次生成される画像データを格納することになる。
なお、液体レンズ80の焦点位置の変化が完了したことは、画像処理装置100が電圧制御指令を送信してからの経過時間で判断してもよい。この場合には、液体レンズ80の反応時間の最大値を予め実験的に取得しておき、この反応時間の最大値が経過したか否かで判断することができる。
あるいは、撮像部8に対してワーク2が移動しない場合には、画像処理装置100は、撮像部8が順次生成する画像データの差分を順次算出し、この差分が実質的にゼロとなった場合に、液体レンズ80による撮像部8の焦点位置の変化が実質的に完了したと判断することもできる。
なお、画像処理装置100が液体レンズ80による撮像部8の焦点位置の変化が実質的に完了したと判断すると、撮像部8へ撮像中止の指令を出力するようにしてもよい。あるいは、撮像部8が撮像および画像データの生成を周期的に繰返している場合には、画像処理装置100は、撮像部8で生成される画像データの取込みを中止することになる。
その後、画像処理装置100は、格納される画像データについて合焦判定を行う(ステップS8)。この合焦判定としては、画像データの全体が合焦状態であるか否かを判定する処理、画像データのうちいずれの部分が合焦状態であるかを判定する処理、および、画像データ内の特定の部分が合焦状態であるか否かを判断する処理などを含み得る。すなわち、ステップS8に示す合焦判定は、後段の画像計測処理の処理内容に応じて、必要な処理が設定される。この点については、後述する。
この合焦判定については、公知の技術を採用することができる。たとえば、非特許文献1(日浦慎作、松山隆司“構造化瞳をもつ多重フォーカス距離画像センサ”電子情報通信学会論文誌、D−II Vol.J82−D−II No.11 pp.1912−1920 1999年11月)や、非特許文献2(飯田宗央、柳田悠一、浜本隆之“テクスチャ平たん領域の判定誤りを考慮した距離計測イメージセンサ”電子情報通信学会論文誌、D Vol.J92−D No.10 pp.1760−1762 2009年)などを参照されたい。
また、ステップS8の合焦判定は、液体レンズ80の焦点位置の変化が実質的に完了した後に開始されてもよいし、撮像部8からの画像データが転送される度に実行してもよい。すなわち、前者の場合には、合焦判定の対象となるすべての画像データが画像処理装置100に一旦格納された後に合焦判定が開始され、後者の場合には、撮像部8から画像データを受信するたびに合焦判定が開始される。
そして、画像処理装置100は、ステップS8の合焦判定の結果に基づいて、格納されている画像データのうちワーク2についての画像処理に利用する画像データまたは部分画像を選択する(ステップS9)。最終的に、画像処理装置100は、ステップS9において選択した画像データを用いて画像計測処理を実行する(ステップS10)。
<G.適用例>
次に、本実施の形態に係る画像処理装置100の適用例について説明する。
(g1.1枚の画像データを用いた画像計測処理)
まず、図12に示すステップS8およびS9において、合焦判定の結果を用いて、複数の画像データのうち1枚を選択して画像計測処理を実行する場合の例を示す。すなわち、液体レンズ80に対して駆動電圧を印加してから焦点位置の変化が完了するまでの期間の間に取得された画像データのうち、最適な1枚の画像データを選択して、画像計測処理を行う適用例を示す。
図13〜図15は、本実施の形態に係る画像処理装置100の適用例を示す図である。
図13には、異なる高さのワークが流れるラインの例を示す。図13(a)に示すように、たとえば固定焦点式の撮像部18を用いた視覚センサシステムがラインに設置されている場合を考える。この場合には、ラインを流れるワーク2−1の種類(高さ)が切替えられる(段取替え)と、撮像部18の焦点位置を新たなワーク2−2に一致させるように、撮像部18の取付け位置を変更したり、オペレータが焦点位置を調整したりする必要がある。そのため、一旦ラインを停止して段取替えを行う必要があり、このような段取替えの時間が発生することで、生産効率が低下するという課題がある。
また、このような固定焦点式の撮像部18を採用する場合には、ラインを流れるワークの種類だけ撮像部18を用意しておくようなことも考えられるが、コスト上昇となるため、現実的ではない。
これに対して、本実施の形態に係る画像処理装置100からなる視覚センサシステムでは、ラインを流れるワーク2−1の種類が切替えられた場合には、新たなワーク2−2に対応するための設定変更(たとえば、パターン認識処理であればモデル画像の変更)などをソフト的に処理するだけで済む。すなわち、ワークがどのような高さであっても、多数撮像される画像データのうち、いずれかの画像データには対象のワークの露出面に合焦した画像データ(最適画像データ)を選択することができる。
そのため、ワークが変更されても、オペレータが撮像部8を調整するような操作が不要となり、ラインをほとんど止めることなく、ソフト的な設定変更の操作のみで段取替えを行うことができる。
図14には、同一のワークであっても高さにばらつきがあるラインの例を示す。図14(a)に示すように、たとえば固定焦点式の撮像部18を用いた視覚センサシステムがラインに設置されている場合を考える。この場合には、ラインの稼動中に、ラインを流れるワーク2の高さ(撮像部18の光軸方向の位置)を変更することができない。また、撮像部18の焦点位置を調整するためにラインを停止することも非効率である。
これに対して、本実施の形態に係る画像処理装置100からなる視覚センサシステムでは、ラインを流れるワーク2の高さにばらつきがある場合であっても、合焦結果に基づいて最適な画像データを選択することができる。そのため、ワーク2がばらつく場合であっても、安定して画像計測処理を行うことができる。このとき、オペレータは、その視野範囲に目的のワークが存在するように撮像部8を配置するだけで済む。
典型的には、本方法は、高さが異なるワークが流れる混流ラインや、作業員が手組みするためにワークの位置が変動するようなラインに好適である。
さらに、図15に示すように、オペレータが調整などを行うことが困難な場所(オペレータの手が届かない高いまたは狭い場所)に撮像部が設置されている場合には、撮像部の調整が非常に困難である。すなわち、図15には、オペレータの手が届く範囲より高い位置に撮像部8および照明装置9が配置されるとともに、撮像部8で撮像された画像データが無線電波で画像処理装置100へ伝送される形態を示す。本実施の形態に係る画像処理装置100からなる視覚センサシステムでは、常に最適な画像データを選択することができるので、撮像部8を調整することなく、安定して画像計測処理を行うことができる。そのため、オペレータは、その視野範囲に目的のワークが存在するように撮像部8を配置するだけで済む。
以下、図13〜図15に示す適用例における画像処理装置100の処理手順について説明する。
図16は、本実施の形態に係る画像処理装置100において1枚の画像データを用いて計測処理を行う場合の処理手順を示すフローチャートである。図16に示す各ステップは、典型的には、画像処理装置100のCPU110がプログラムを実行することで提供される。
まず、CPU110は、撮像開始のイベントが発生したか否かを判断する(ステップS100)。撮像開始のイベントが発生していない場合(ステップS100においてNOの場合)には、ステップS100の処理が繰返される。
撮像開始のイベントが発生した場合(ステップS100においてYESの場合)には、CPU110は、カメラインターフェイス116(図2)を介して、撮像部8へ撮像を開始させるためのトリガを出力する(ステップS102)。同時に、CPU110は、レンズインターフェイス130(図2)を介して、液体レンズ80による焦点位置の変化を開始させるための電圧制御信号を出力する(ステップS104)。
続いて、CPU110は、撮像部8から画像データを受信したか否かを判断する(ステップS106)。撮像部8から画像データを受信していなければ(ステップS106においてNO)、画像データを受信するまで処理を待機する。なお、この撮像部8からの画像データは、画像バッファ116aに一旦蓄積される。
撮像部8から画像データを受信していれば(ステップS106においてYES)、CPU110は、受信した画像データをメインメモリ112へ格納する(ステップS108)。続いて、CPU110は、液体レンズ80による焦点位置の変化が完了したか否かを判断する(ステップS110)。液体レンズ80による焦点位置の変化が完了していなければ(ステップS110においてNO)、ステップS106以下の処理が繰返される。
液体レンズ80による焦点位置の変化が完了していれば(ステップS110においてYES)、CPU110は、メインメモリ112に格納されている画像データに対してそれぞれ合焦判定を行う(ステップS112)。なお、ステップS112の合焦判定の処理は、ステップS108の実行直後に行うようにしてもよい。
続いて、CPU110は、ステップS112において行った合焦判定の結果、最も合焦していると判断された画像データを選択し(ステップS114)、選択した画像データに対して画像計測処理を実行する(ステップS116)。最終的に、CPU110は、ステップS116の画像計測処理の結果を出力する(ステップS118)。
(g2.複数枚の画像データを用いた画像計測処理)
次に、図12に示すステップS8およびS9において、複数の画像データのうち複数枚を選択して画像計測処理を実行する場合の例を示す。この場合には、選択された複数の画像データに対して合焦判定が実行される。典型的には、液体レンズ80に対して駆動電圧を印加してから焦点位置の変化が完了するまでの期間の間に取得された画像データのうち、複数枚の画像データを選択して、画像合成処理を行う適用例を示す。
図17は、本実施の形態に係る画像処理装置100の別の適用例を示す図である。図18は、図17に示す画像合成処理の結果の一例を示す図である。
図17に示すように、撮像部が合焦できる範囲(高さ方向)は、その被写界深度に依存する。そのため、固定焦点式の撮像部を用いた場合には、深いボウル状のワーク内のキズ検査といった、撮像部の被写界深度を超える範囲を検査することは難しい。この場合には、1つのワークに対して焦点位置の異なる複数台の撮像部を用いてそれぞれ異なる被写界深度を撮像するか、あるいは、1台の撮像部を異なる高さに上下して撮像するといった方法を採用せざるを得なかった。
これに対して、本実施の形態に係る画像処理装置100では、焦点位置を複数の異なる高さに設定できる。すなわち、液体レンズ80に駆動電圧が印加されてからその焦点位置の変化が実質的に完了するまでの間、1つのワークを撮像部8で順次撮像して複数の画像データを生成するとともに、生成された複数の画像データから、合焦状態の部分画像を抽出して組合せることで、撮像部8の視野全体を合焦状態にした、深度の深い画像を生成することができる。すなわち、図17に示すように、撮像部8の焦点位置が合焦範囲1〜4のそれぞれにある場合に取得される画像データを用いて、合成画像が生成される。
一例として、図18(a)に示すようなボウル状のワークWに対して画像計測処理を実行する場合を考える。このような場合には、撮像部8の被写界深度に比較して、ワークWの内面の検査領域が深すぎて、1回の撮像ではその全域を合焦状態とした画像データを生成できない。
そこで、図18(b)に示すように、異なる焦点位置において撮像部8が生成した画像データIMG1およびIMG2を選択するとともに、それぞれ、合焦状態の部分画像を合成することで、図18(c)に示すような、視野の全体にわたって合焦状態となっている合成画像SIMGを生成することができる。このような合成画像SIMGを用いることで、ワークWの深いところまで安定してキズ検査が可能となる。
このような合成画像を生成することで、凹凸のあるワーク(たとえば、複雑な形状を有する部品)を検査する場合や、配置高さの異なる複数のワークがある場合などにおいても、特定の部分だけが合焦状態となって、その他の部分はいわゆるピンぼけのような状態となってしまうことを回避できる。それにより、ワークの全体を確実に検査できる。同様に、設置環境の制約や大型ワークを対象とする場合などのように、撮像部8をワークに対して斜めにしか取付けできないような場合にも、ワークを確実に検査できる。
以下、図17および図18に示す適用例における画像処理装置100の処理手順について説明する。
図19は、本実施の形態に係る画像処理装置100において複数枚の画像データを用いて画像合成処理を行う場合の処理手順を示すフローチャートである。図19に示す各ステップは、典型的には、画像処理装置100のCPU110がプログラムを実行することで提供される。
図19に示すステップS100〜S110までの各ステップは、図16に示すステップS100〜S110までの各ステップと同様であるので、詳細な説明は繰返さない。図19に示すフローチャートにおいては、ステップS110においてYESの場合、ステップS120以下の処理が実行される。すなわち、CPU110は、メインメモリ112に格納されている複数の画像データのうち、所定のタイミングで取得された複数の画像データを選択する(ステップS120)。たとえば、撮像された順序が、メインメモリ112に格納された画像データの総数に対して30%,40%,50%,60%,70%に相当する画像データが選択される。
続いて、CPU110は、ステップS120において選択した画像データに対してそれぞれ合焦判定を行う(ステップS122)。さらに、CPU110は、合焦判定の結果に基づいて、各画像データのうち合焦状態にある部分を特定する(ステップS124)。そして、CPU110は、ステップS124において特定した合焦状態にある部分画像を合成して合成画像データを生成する(ステップS126)。
さらに、CPU110は、ステップS126において生成した合成画像データに対して画像計測処理を実行する(ステップS128)。最終的に、CPU110は、ステップS128の画像計測処理の結果を出力する(ステップS130)。
(g3.複数枚の画像データを用いた距離画像生成)
次に、上述したような複数枚の画像データを用いて合成画像データを生成する処理と同様に、距離画像を生成することもできる。以下、複数の画像データを用いた距離画像生成処理を実行する場合の例を示す。
図20は、本実施の形態に係る画像処理装置100のさらに別の適用例を示す図である。図21は、図20に示す距離画像生成処理の結果の一例を示す図である。
図20に示すように、撮像部8の焦点位置が合焦範囲1〜4のそれぞれにある場合に取得される画像データに対応付けて、高さ情報1〜4をそれぞれ割当てることができる。上述したように、液体レンズ80では反応速度の再現性が低いので、この高さ情報1〜4は相対的な情報となるが、高さが異なるとの情報があれば検査には十分である場合も多い。
たとえば、図21(a)に示すように、錠剤のパッケージの外観から、所定数の錠剤が封入されているか否かを判断する検査(錠剤欠品検査)が考えられる。図21(a)に示す錠剤のパッケージでは、4個の錠剤が封入されるべきであるが、紙面左下の部分には錠剤が封入されていない。このような欠品状態は、図21(b)に示すような距離画像を用いることで検出することができる。
図21(b)に示す距離画像は、上述の図18に示したような画像合成処理と同様の処理で実現することができる。すなわち、メインメモリ112に格納される複数の画像データのうち、所定のタイミングで取得された複数の画像データを選択する。そして、各画像データに対してそれぞれ合焦判定を行うことで、合焦状態にある部分を特定する。各画像データにおいて合焦状態であると特定された部分(位置情報)を対応する高さを示す情報と対応付けて抽出する。
すべての画像データに対する合焦判定および位置情報/高さ情報の抽出が完了すると、これらの情報を統合して、図21(b)に示すような距離画像が生成される。
このような距離画像を生成することで、2次元的に撮像されるワークを3次元形状化できるので、より多様な計測処理を行うことができる。
<H.作用・効果>
本実施の形態によれば、焦点位置の移動動作についての再現性が低く、かつ、撮像部による撮像周期(シャッタースピード)に比較して反応時間が長いという液体レンズの不利な特性を利用して、より適切な画像処理を行うことができる。すなわち、液体レンズの動作中に複数回の撮像を行って複数の画像データを生成するとともに、これらの生成された画像データのうち、後段の画像処理に適した画像データおよび/または部分画像を選択する。これにより、液体レンズの動作の再現性が低い場合であっても、適切な画像データ/部分画像を取得することができる。同時に、複数回の撮像を行うため、被写界深度の異なる複数の画像情報が得られ、これにより、ワークなどの被測定物を適切に計測等することができる。
より具体的には、本実施の形態に係る画像処理方法によれば、高さ方向(撮像部の光軸方向;Z方向)にばらつきがあるワークであっても、オペレータなどが介入する必要がなく、適切に画像計測処理を行うことができる。また、撮像部のレンズ選定やフォーカス調整などを厳密に行う必要がないので、オペレータなどによる撮像部の調整を不要としつつ、適切な画像データを取得することができる。
さらに、本実施の形態に係る画像処理方法によれば、被写界深度の異なる複数の画像データを用いて、より被写界深度の深い画像データを合成することができる。これにより、1枚の画像データを用いて、高さの異なる複数のワークを一括して検査等することができる。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。