以下、本発明の例示的な実施形態が開示される。以下に示される実施形態の構成、ならびに当該構成によってもたらされる作用および結果(効果)は、あくまで一例である。本発明は、以下の実施形態に開示される構成以外によっても実現可能であるとともに、基本的な構成によって得られる種々の効果(派生的な効果も含む)を得ることが可能である。
本実施形態では、一例として、図1〜4に示される外観検査装置1は、検査対象物100を撮像した画像に基づいて、当該検査対象物100の検査対象面101の検査を行う。図3に示されるように、外観検査装置1は、光源2や、撮像部3、制御部40、搬送装置5(搬送部)、表示装置6(表示部)、入力装置7(入力部)等を備える。
図1,2に示されるように、光源2は、ライトシートLS(シート状の光、平坦なカーテン状の光、スリット光)を出射し、検査対象面101に線状の光Lを照射する。光源2は、例えば、輝線照射用のレーザ光源等である。ライトシートLSは、例えば、レーザーライトシートである。撮像部3は、ライトシートLSと交叉する方向から検査対象領域Aを含む検査対象面101上の二次元領域を撮像する。
図1に示されるように、光源2は、検査対象面101の法線方向(図1中のZ方向)と線状の光L(検査対象領域A)の幅方向(図1,2中のY方向)との間の斜め方向(斜め上方向)から、線状の検査対象領域Aを照らしている。検査対象面101が平面であった場合、検査対象面101上の光L(輝線)は直線状である。しかしながら、検査対象面101が凸部を有していた場合、検査対象面101が平面であった場合の光Lを基準線R(直線、基準位置)とすると、当該凸部に当たった光Lは、基準線Rから光源2側(光源2に近い側)にずれる。また、逆に、検査対象面101が凹部を有していた場合、当該凹部に当たった光Lは、基準線Rから光源2とは反対側(光源2から遠い側)にずれる。すなわち、撮像部3で撮像した画像中の光Lの位置(形状、基準線Rからのずれ)によって、検査対象面101の凹凸ならびに当該凹凸の程度(凸部の高さ、凹部の深さ、法線方向における位置)を判別することができる。なお、ライトシートLSの出射方向ならびに撮像部3による撮像方向は、種々に設定することが可能である。
撮像部3は、ライトシートLSと交叉した方向であり、かつ検査対象面101の上方(本実施形態では、一例として法線方向に離れた位置)から、少なくとも検査対象領域Aにおける光Lの画像を撮像する。撮像部3は、例えば、二次元に配列された光電変換素子(光電変換部)を有したエリアセンサ(固体撮像素子、例えば、CCD(charge coupled device)イメージセンサや、CMOS(complementary metal oxide semiconductor)イメージセンサ等)である。
搬送装置5は、検査対象物100を光L(検査対象領域A)の幅方向(検査対象物100の長手方向、図1,2中のX方向)に搬送し、検査対象面101における検査対象領域Aを移動させる。これにより、検査対象面101の二次元領域について、データが取得される。なお、検査対象物100が固定され、光源2や撮像部3等が検査対象面101に沿って移動する構成(搬送装置5によって動かされる構成)であってもよい。
また、外観検査装置1は、図3に示されるように、制御部40(例えばCPU(central processing unit)等)や、ROM41(read only memory)、RAM42(random access memory)、補助記憶装置43、光照射コントローラ44、撮像コントローラ45、搬送コントローラ46、表示コントローラ47、入力コントローラ48等を備えることができる。補助記憶装置43は、例えばHDD(hard disk drive)や、SSD(solid state drive)、フラッシュメモリ等である。光照射コントローラ44は、制御部40からの制御信号に基づいて、光源2の発光(オン、オフ)等を制御する。撮像コントローラ45は、制御部40からの制御信号に基づいて、撮像部3による撮像を制御する。搬送コントローラ46は、制御部40から受けた制御信号に基づいて、搬送装置5を制御し、検査対象物100の搬送(開始、停止、速度等)を制御する。表示コントローラ47は、制御部40からの制御信号に基づいて、表示装置6(例えば、LCD(liquid crystal display)、OELD(organic electroluminescent display)等)を制御する。入力コントローラ48は、入力装置7(例えば、キーボードや、つまみ、操作ボタン、タッチパネル等)での入力操作に応じたデータを、制御部40に送る。また、制御部40は、不揮発性の記憶部としてのROM41や補助記憶装置43等にインストールされたプログラム(アプリケーション)を読み出して実行する。RAM42は、制御部40がプログラムを実行して種々の演算処理を実行する際に用いられる各種データを一時的に記憶する。なお、図3に示されるハードウエアの構成はあくまで一例であって、例えばチップやパッケージにする等、種々に変形して実施することが可能である。また、各種演算処理は、並列処理することが可能であり、制御部40等は、並列処理が可能なハードウエア構成とすることが可能である。
また、本実施形態では、一例として、制御部40は、ハードウエアとソフトウエア(プログラム)との協働によって、外観検査装置1の少なくとも一部として機能(動作)する。すなわち、図4に示されるように、制御部40は、光照射制御部40aや、撮像制御部40b、搬送制御部40c、画像処理部40d、可変設定部40e、表示制御部40f等として機能する。プログラムには、図4に示される各部に対応したモジュールが含まれる。
画像処理部40dは、疑似画像データ生成部40gや、前処理部40h、基準点特定部40i、ブロック決定部40j、ブロックずれ量算出部40k、マッチング処理部40m、画素ずれ量算出部40n、異常領域決定部40p等を含む。光照射制御部40aは、光照射コントローラ44を制御する。撮像制御部40bは、撮像コントローラ45を制御する。搬送制御部40cは、搬送コントローラ46を制御する。画像処理部40dは、撮像部3が取得した画像データを画像処理する。また、表示制御部40fは、表示装置6を制御する。
画像処理部40dの疑似画像データ生成部40gは、複数の検査対象領域A(図1,2参照)の各点(検査対象領域Aの長手方向の各点)に対応した光Lの画像の基準線R(基準位置)からのずれに応じて、当該各点での輝度値を決定することにより、二次元の疑似画像データを生成する。輝度値は、検査対象領域Aの各点の高さに応じた値となる。一例として、疑似画像データ生成部40gは、各位置での基準線Rから光源2に近い側(図1の左上側)へのずれが大きいほど輝度値を高く設定し(画素(点)を明るくし)、光源2から遠い側(図1の右下側)へのずれが大きいほど輝度値を低く設定する(画素を暗くする)。これにより、疑似画像は、検査対象領域Aの二次元の外観に近い画像となる。表示制御部40fは、疑似画像が表示されるよう、表示装置6を制御することができる。疑似画像は、検査対象面101の凹凸の状態(大きさや、位置等)を視覚的に判断しやすいという利点も有している。
画像処理部40dの前処理部40hは、フィルタリング処理や、オフセット処理、平滑化処理等を行う。
また、画像処理部40dの異常領域決定部40pは、基準物の検査対象面(基準面)の疑似画像データ(基準画像データ)と検査対象物100の検査対象面101の疑似画像データとの比較により、輝度値が大きく異なる(閾値以上の差がある)画素(点)が所定数(画素数あるいは面積の閾値)と同じかあるいはより多く集まっていた場合、凸状あるいは凹状の異常が存在すると決定することができる。なお、基準物の疑似画像データに関する情報(データ)は、記憶部50(例えば、補助記憶装置43等)に記憶される。
上述したような異常領域決定部40pによる基準物と検査対象物100との互いに対応する画素(点)同士の輝度値の比較は、基準物の疑似画像データと検査対象物の疑似画像データとが位置合わせされていることが前提である。本実施形態では、基準点特定部40i、ブロック決定部40j、ブロックずれ量算出部40k、マッチング処理部40m、ならびに画素ずれ量算出部40nにより、基準物の検査対象面101の疑似画像データと、検査対象物100の検査対象面101の疑似画像データとの位置ずれ量が算出され、位置合わせが行われる。
図5には、検査対象物100の検査対象面101の疑似画像データImから特定された座標の複数の基準点P11,P12,P13,P21,P22,P23,P31,P32,P33(以下、P11〜P33のようにも記す)の一例が示されている。図5に示されるように、本実施形態では、一例として、疑似画像データImでは、検査対象面101に設けられた形状に応じて、X方向(搬送方向、長手方向)に略沿って延びた線状の画像Ima(例えば、溝や突起等に対応した画像)が抽出されている。さらに、複数の点状の画像Imbが、画像Imaと交叉(直交)し、かつ画像Imaに沿って一定間隔で抽出されている。なお、画像Ima,Imbは、疑似画像データImから、公知の画像処理の手法によって特定(決定、抽出)することができる。
まず、画像処理部40dの基準点特定部40iは、疑似画像データImに画像処理を実行することにより、画像Imaと画像Imbとの交点(接続点)として、基準点P11,P12,P13(第一の基準点)を特定することができる。
次に、基準点特定部40iは、特定した基準点P11,P12,P13(第一の基準点)から、これら基準点P11,P12,P13と所定の位置関係にある点として、基準点P21,P22,P23,P31,P32,P33(第二の基準点)を特定することができる。図5の例では、基準点P21,P31は、基準点P11と基準点P12とを結ぶ線分(画像Imaと重なっている)と直交する線上にあり、基準点P21は、基準点P11から距離d離れた点であり、基準点P31は、基準点P21から距離d(基準点P11から距離(2×d))離れた点である。また、基準点P22,P32は、基準点P11と基準点P12とを結ぶ線分と直交する線上にあり、基準点P22は、基準点P12から距離d離れた点であり、基準点P32は、基準点P22から距離d(基準点P12から距離(2×d))離れた点である。さらに、基準点P23,P33は、基準点P12と基準点P13とを結ぶ線分と直交する線上にあり、基準点P23は、基準点P13から距離d離れた点であり、基準点P33は、基準点P23から距離d(基準点P13から距離(2×d))離れた点である。これら基準点P11〜P33は、基準物の疑似画像データと検査対象物100の疑似画像データImとの位置合わせのために用いられる。疑似画像データの平面(検査対象面100ならびに対応する基準物の面)上の比較的広い範囲に第一の基準点を分布させることができて所要の位置合わせの精度を確保することができる場合には、第二の基準点は不要となる場合もありうる。
図6には、検査対象物100の検査対象面101の疑似画像データImについて、決定された複数のブロックBdの一例が示されている。図6では、ブロックBdは、破線の枠で示されている。画像処理部40dのブロック決定部40jは、基準点特定部40iが特定した複数の基準点P11〜P33から、これら基準点P11〜P33と所定の位置関係にある点として、複数のブロックBdを決定する。図6には、25個のブロックBdのみが表示されている。複数のブロックBdの決定にあたり、本実施形態では、疑似画像データImの画像の特徴から定まる基準点P11,P12,P13(第一の基準点)に加えて、当該基準点P11,P12,P13と所定の位置関係にある基準点P21,P22,P23,P31,P32,P33(第二の基準点)も、基準点として用いている。これにより、ブロック決定部40jは、より多くの基準点P11〜P33に基づいて、より迅速にあるいはより精度良く、ブロックBdを決定することができる。
図7には、検査対象物100の検査対象面101の疑似画像データImについて決定された複数のブロックBd(第一のブロック)、ならびに基準物の検査対象面(基準面)の疑似画像データについて決定された複数のブロックBr(第二のブロック)の一例が示されている。このように、実際の外観検査では、検査対象物100と基準物とで、対応するブロックBd,Brの座標上での位置が異なる(ずれる)ことがある。本実施形態では、一例として、画像処理部40dのブロックずれ量算出部40kは、ブロックBd(またはブロックBr)毎に、ずれ量δ1(第一のずれ量)を取得し、ブロックBd(ブロックBr)内に含まれる各画素(各点)の位置合わせに用いる。なお、図7では、複数のブロックBdが纏まって同じ量だけずれているように示されているが、本実施形態では、ブロックずれ量算出部40kは、複数のブロックBdのそれぞれについて、例えば中心点Cd,Crの座標同士を比較することにより、ずれ量δ1を取得する。よって、複数のブロックBdについて、ずれ量δ1が同じになるとは限らない。
図8には、検査対象物100の疑似画像データImのブロックBd中における、基準物の疑似画像データの小ブロックBrsとの適合位置の探索の様子が模式的に示されている。図8で、ブロックBd中の破線によって分割されている複数の枠は、ブロックBd内の各画素(各点)である。画像処理部40dのマッチング処理部40mは、対応するブロックBr,Bd(図7で互いにほぼ重なり合っているブロックBr,Bd)について、マッチング処理を行う。具体的には、まず、基準物の疑似画像データから、代表画素Prに対応した小ブロックBrsを切り出す(特定する)。小ブロックBrsは、基準物の疑似画像データのブロックBr内の一部であって、例えば、代表画素Pr(中心画素)を中心とした四角形状(正方形状)の複数の画素の集まり(画素群、領域)である。小ブロックBrsの大きさは、ブロックBr(ブロックBd)の大きさより小さい。そして、マッチング処理部40mは、小ブロックBrsを検査対象物100の疑似画像データのブロックBd内の所定位置に重ね合わせ、小ブロックBrsと当該小ブロックBrsに重ねられたブロックBd内の領域Adとで、対応する画素(点)同士の輝度値の絶対差の合計値(和)を算出する。なお、本明細書で絶対差(絶対差分)とは、差(差分)の絶対値を意味する。小ブロックBrsと領域Adとで、対応する画素の輝度値の値が近いほど、輝度値の絶対差は小さくなる。すなわち、小ブロックBrsと領域Adとが位置合わせされているほど、輝度値の絶対差の合計値は小さくなる。このため、マッチング処理部40mは、図8中に矢印で示されるように、小ブロックBrsを、例えばブロックBd内の領域At内で画素一つ分ずつ動かしながら、各位置について、小ブロックBrsと対応するブロックBd内の領域Adとについて、対応する画素同士の輝度値の絶対差の合計値を算出し、当該合計値が最も小さい位置を探索する。合計値が最も小さい位置に対応した領域Adは、小ブロックBrsと最も相関度の高い領域であり、当該領域Adの代表画素Pd(中心画素)は、小ブロックBrsの代表画素Pr(中心画素)と最も相関度の高い画素である。そして、マッチング処理部40mは、ずれ量(δ2と記す、第二のずれ量)として、小ブロックBrsの代表画素Pr(例えば、中心画素)の基準物の疑似画像データ中での座標と、代表画素Pdの検査対象物100の疑似画像データ中での座標との差を、取得する。また、この際、マッチング処理部40mは、相関度が最も高い代表画素Pd,Pr同士の輝度値の絶対差(絶対差分、絶対差分最小値)を、当該代表画素Pd,Prに対応付けて記憶部50(補助記憶装置43やRAM42等)に記憶させる。マッチング処理部40mは、かかる処理を、ブロックBd内の全ての画素について実行する。
図9には、基準物の疑似画像データのブロックBr中における、検査対象物100の疑似画像データImの小ブロックBdsとの適合位置の探索の様子が模式的に示されている。具体的には、まず、検査対象物100の疑似画像データImから、代表画素Pdに対応した小ブロックBdsを切り出す(特定する)。小ブロックBdsは、検査対象物100の疑似画像データImのブロックBd内の一部であって、例えば、代表画素Pd(中心画素)を中心とした四角形状(正方形状)の複数の画素の集まり(画素群、領域)である。小ブロックBdsの大きさは、ブロックBd(ブロックBr)の大きさより小さい。そして、マッチング処理部40mは、小ブロックBdsを基準物の疑似画像データのブロックBr内の所定位置に重ね合わせ、小ブロックBdsと当該小ブロックBdsに重ねられたブロックBr内の領域Arとで、対応する画素(点)同士の輝度値の絶対差の合計値(和)を算出する。小ブロックBdsと領域Arとで、対応する画素の輝度値の値が近いほど、輝度値の絶対差は小さくなる。すなわち、小ブロックBdsと領域Arとが位置合わせされているほど、輝度値の絶対差の合計値は小さくなる。このため、マッチング処理部40mは、図9中に矢印で示されるように、小ブロックBdsを、例えばブロックBr内の領域At内で画素一つ分ずつ動かしながら、各位置について、小ブロックBdsと対応するブロックBr内の領域Arとについて、対応する画素同士の輝度値の絶対差の合計値を算出し、当該合計値が最も小さい位置を探索する。合計値が最も小さい位置に対応した領域Arは、小ブロックBdsと最も相関度の高い領域であり、当該領域Arの代表画素Pr(中心画素)は、小ブロックBdsの代表画素Pd(中心画素)と最も相関度の高い画素である。そして、マッチング処理部40mは、ずれ量δ2として、小ブロックBdsの代表画素Pd(例えば、中心画素)の検査対象物100の疑似画像データIm中での座標と、代表画素Prの基準物の疑似画像データ中での座標との差を、取得する。また、この際、マッチング処理部40mは、相関度が最も高い代表画素Pd,Pr同士の輝度値の絶対差(絶対差分、絶対差分最小値)を、当該代表画素Pd,Prに対応付けて記憶部50(補助記憶装置43やRAM42等)に記憶させる。マッチング処理部40mは、かかる処理を、ブロックBr内の全ての画素について実行する。
図8の処理のように、検査対象物100の疑似画像データImのブロックBd中で基準物の疑似画像データの小ブロックBrsを動かして適合位置を探索する手法は、例えば、検査対象物100の検査対象面101の一般面に凹凸不良等の異常が生じていた場合に有効である。このような場合に、当該異常を含む検査対象物100の疑似画像データImの小ブロックBdsを基準物の疑似画像データのブロックBs内で動かして一致位置を探索すると、検査対象物100の疑似画像データIm中の異常と基準物の疑似画像データ中の本来対応しない別の特徴点とが偶々一致して誤った結果が得られる虞があるからである。
一方、図9の処理のように、基準物の疑似画像データのブロックBs中で検査対象物100の疑似画像データImの小ブロックBrdを動かして適合位置を探索する手法は、例えば、検査対象物100の検査対象面101の特徴点(例えば、印字部分や突起等)が消失する異常が生じていた場合に有効である。このような場合に、基準となる検査対象物の疑似画像データの小ブロックBrsを検査対象物100の疑似画像データImのブロックBd内で動かして一致位置を探索すると、検査対象面101で消失した特徴点に対応する基準物の疑似画像データの特徴点と検査対象物100の疑似画像データIm中の本来対応しない特徴点とが偶々一致して誤った結果が得られる虞があるからである。このように、本実施形態では、マッチング処理部40mは、検査対象物100のブロックBdに、基準物の小ブロックBrsを当てはめて、相関値の高い領域(位置)を探し出す図8の処理と、基準物のブロックBrに、検査対象物100の小ブロックBdsを当てはめて、相関値の高い領域(位置)を探し出す図9の処理と、の双方を実行する。よって、本実施形態によれば、位置合わせの精度が高まりやすい。また、この場合、一例としては、上記二つの処理でそれぞれ得られた絶対差分(絶対差分最小値)のうち、大きい方(大きい値)を採用することができる。また、別の一例としては、所定の条件を定めて、上記二つの処理でそれぞれ得られた絶対差分(絶対差分最小値)のうちいずれか一方を採用することもできる。なお、画像処理部40dでの処理における各部の大きさや、数、閾値等の各種パラメータは、適宜に変更して実施することが可能である。可変設定部40eは、各種パラメータを変更することができる。
画素ずれ量算出部40nは、画素(点)毎に、ずれ量(画素ずれ量)として、例えば、ずれ量δ1とずれ量δ2との和を取得する。これにより、画像処理部40d(異常領域決定部40p)は、基準物の疑似画像データと、検査対象物100の疑似画像データとで、位置合わせした状態で、輝度値同士を比較し、良否判定(異常判別、異常領域の決定)を実行することができる。
図10に、制御部40による具体的な処理手順の一例が示される。制御部40は、まず、画像処理部40d(疑似画像データ生成部40g)として機能し、複数の検査対象領域Aの各点(画素)についての基準線R(基準位置)に対する光Lの位置(ずれ)から、当該各点の輝度値を決定し、二次元の疑似画像を生成する(S11)。このS11で、画像処理部40dは、一例として、各点の輝度値を、ずれの大きさに応じて線形的に決定することができる。
次に、制御部40は、画像処理部40d(前処理部40h)として機能し、上述したような前処理を実行する(S12)。次に、制御部40は、画像処理部40d(基準点特定部40i)として機能し、上述したように、疑似画像データ中で座標の複数の基準点P11〜P33を特定する(S13)。
次に、制御部40は、画像処理部40d(ブロック決定部40j)として機能し、上述したように、基準点P11〜P33に対応した複数のブロックを決定する(S14)。なお、上記S11〜S14は、検査対象物100の検査対象面101について得られた疑似画像データについて実行される。基準物の検査対象面101についての処理は予め実行され、当該基準物に対応した後の演算で用いられる種々のデータは、記憶部50(例えば、補助記憶装置43)に記憶されている。
次に、制御部40は、画像処理部40d(ブロックずれ量算出部40k)として機能し、上述したように、ずれ量δ1を算出する(S15)。次に、制御部40は、画像処理部40d(マッチング処理部40m)として機能し、上述したように、マッチング処理を実行するとともに、ずれ量δ2を算出し、各画素(代表画素Pdまたは代表画素Pr)に対応した輝度値の絶対差分を算出する(S16)。次に、制御部40は、画像処理部40d(画素ずれ量算出部40n)として機能し、上述したように、画素ずれ量を算出する(S17)。
次に、制御部40は、画像処理部40d(異常領域決定部40p)として機能し、上述したように、異常領域を決定する(S18)。なお、このS18における、基準物の疑似画像データの輝度値と、検査対象物100の疑似画像データの輝度値との絶対差分は、S16において算出しておくことができる。
次いで、制御部40は、表示制御部40fとして機能し、S11で得られた各画素での輝度値(疑似画像)と、S18で得られた異常領域を示す画像(例えば、所定の色で着色された領域、指標等)と、を含む画像が表示されるよう、表示コントローラ47ひいては表示装置6を制御することができる(S19)。さらに、表示制御部40fは、入力装置7からの指示入力に応じて、異常領域を示す画像(指標等)が表示された状態と、表示されない状態とを切り替えることができる。
なお、可変設定部40eは、入力装置7等の操作によって入力されたデータに基づいて、ステップS11〜S19の処理で用いられるパラメータを種々に変更することができる。
以上、説明したように、本実施形態では、一例として、ブロック単位の比較によるずれ量δ1と、小ブロックを用いたマッチング処理によるずれ量δ2とを用いて、基準物の疑似画像データと検査対象物100の疑似画像データとの位置合わせを行うことができる。よって、本実施形態によれば、一例としては、全ての画素についてそれぞれずれ量を演算するような場合に比べて、検査対象物100の疑似画像と基準画像との位置合わせをより容易にあるいはより迅速に行うことができる。
また、本実施形態では、一例として、マッチング処理部40mは、マッチング処理において、基準物の疑似画像データ中の画素と、当該画素と対応した検査対象物100の疑似画像データ中の画素と、の輝度値の絶対差を算出しておくことができる。よって、本実施形態によれば、一例としては、輝度値の絶対差を改めて算出する場合に比べて、一連の演算処理をより迅速に行うことができる。
また、本実施形態では、一例として、基準点特定部40iは、ブロックBdを決定する基準点として、疑似画像データの画像の特徴から定まる基準点P11〜P13と、当該基準点P11〜P13と所定の位置関係にある基準点P21〜P33とを特定する。よって、本実施形態によれば、一例としては、ブロック決定部40jは、より多くの基準点P11〜P33に基づいて、より迅速にあるいはより精度良く、ブロックBdを決定することができる。
また、以上の処理は比較的単純な演算処理で構成されており、例えばGPGPU(General-purpose computing on graphics processing units)など、並列演算を実行するデバイスにおいても実現可能である。よって、本実施形態によれば、一例としては、パターンマッチングとして位置合わせを行うまでの処理時間や、異常領域の検出にかかる処理時間をより迅速に行うことができる。よって、一例としては、演算処理を実行する構成がより安価に構築されやすい。
以上、本発明の実施形態を例示したが、上記実施形態はあくまで一例である。実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、組み合わせ、変更を行うことができる。また、実施形態の構成や形状は、部分的に他の構成や形状と入れ替えて実施することも可能である。また、各構成や形状等のスペック(構造や、種類、方向、角度、形状、大きさ、長さ、幅、厚さ、高さ、数、配置、位置、材質等)は、適宜に変更して実施することができる。例えば、検査対象物は、例えば、円環状のもの(例えば、タイヤ等)など、帯状以外の物であってもよい。