説明

画像処理装置、画像処理方法、及び、プログラム

【課題】製品の欠損等がある部分を検出する。
【解決手段】画像データ取得部は画像データ200を取得する。総和データ生成部は画像データ200を複数のブロック310に分割し、各ブロック310内の画素に対応付けられる画素値を合計した総和データを生成する。差分データ生成部は位置が縦方向に隣り合う2つのブロックの総和データの差分を表す第1種の差分データと、位置が横方向に隣り合う2つのブロックの総和データの差分を表す第2種の差分データを生成する。判定データ生成部は第1種の差分データと第2種の差分データのうちの一方を選択し、選択した差分データと、選択した差分データに対応するブロックの画像データ200内の位置とを対応付けた判定データを生成する。結果データ生成部は選択された差分データが表す差分が許容条件を満たすか否かを判別した結果データを生成する。出力部は結果データの画像データ200内の位置を出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、製品の欠損等がある部分を検出するために好適な画像処理装置、画像処理方法、及び、プログラムに関する。
【背景技術】
【0002】
布帛などの製品の製造工程においては、一般に、製品(検査対象物)の表面に生ずる微細な欠陥や、染色された製品の染めムラなどの欠陥を検出することにより、製品を検査している。近年の自動化された製造工程では、検査対象物を撮影し、画像処理を行うことにより、検査対象物の表面を検査することが行われている。
【0003】
例えば、特許文献1には、検査対象物を撮影した画像データにおいて、欠陥検出用のブロックの一部分が、そのブロックに隣接する他のブロックの一部分と重なるように設定し、画素の濃度値を積算した積算値を所定しきい値と比較することにより、製品の欠陥を検出する欠陥検出装置が開示されている。また、例えば特許文献2には、画像データ内の隣接する主走査ラインにまたがっている欠陥を検出する表面検査装置が開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2005−265467号公報
【特許文献2】特開2009−063592号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記の従来技術によれば、撮影時の照明のムラや、例えば布帛の場合における地合と呼ばれる表面感やシワなどの検査対象物の表面の凹凸による影響が大きく、ダイナミックレンジなどの撮影環境を検査対象物ごとに合わせて整え直す必要があった。また、主走査ラインと平行な方向の欠陥、あるいは直行する方向の欠陥を検出できないという問題があった。
【0006】
本発明はこのような課題を解決するものであり、製品の欠損等がある部分を検出するために好適な画像処理装置、画像処理方法、及び、プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
以上の目的を達成するため、本発明の第1の観点に係る画像処理装置は、
複数の画素から構成され、被写体の画像を含む画像データを取得する画像データ取得部と、
前記取得された画像データを複数のブロックに分割し、当該複数のブロックのそれぞれについて、当該ブロック内に含まれる画素に対応付けられる画素値を合計した総和データを生成する総和データ生成部と、
前記生成されたそれぞれの総和データのうち、前記ブロックの位置が縦方向に隣り合う2つのブロックの総和データの差分を表す第1種の差分データを生成し、かつ、前記ブロックの位置が横方向に隣り合う2つのブロックの総和データの差分を表す第2種の差分データを生成する差分データ生成部と、
前記第1種の差分データと前記第2種の差分データのうちどちらか一方の差分データを選択し、当該選択された差分データと、当該選択された差分データに対応するブロックの前記画像データ内における位置と、を対応付けた判定データを生成する判定データ生成部と、
前記生成された判定データに基づいて、前記選択された差分データが表す差分が所定の許容条件を満たすか否かを判別した結果データを生成する結果データ生成部と、
前記結果データの前記画像データ内における位置を出力する出力部と、
を備えることを特徴とする。
【0008】
前記総和データ生成部は、前記画像データの複数のブロックへの分割の位置を所定方向へ所定画素数分移動して、前記画像データを新たな複数のブロックに分割し、当該新たな複数のブロックのそれぞれについて、当該新たなブロック内に含まれる画素に対応付けられる画素値を合計した新たな総和データを更に生成し、
前記差分データ生成部は、前記新たに生成されたそれぞれの総和データのうち、縦方向に隣り合う2つのブロックの総和データの差分を表す新たな第1種の差分データを更に生成し、かつ、横方向に隣り合う2つのブロックの総和データの差分を表す新たな第2種の差分データを生成し、
前記判定データ生成部は、前記新たな第1種の差分データと前記新たな第2種の差分データのうちどちらか一方の差分データを選択し、当該新たに選択された差分データと、当該新たに選択された差分データに対応するブロックの前記画像データ内における位置と、を対応付けた新たな判定データを生成し、
前記結果データ生成部は、前記新たに生成された判定データに基づいて、前記新たに選択された差分データが表す差分が前記所定の許容条件を満たすか否かを更に判別した新たな結果データを更に生成してもよい。
【0009】
前記判定データ生成部において、前記第1種の差分データと前記第2種の差分データのうち、前記差分の大きさの絶対値が大きい方の差分データを選択してもよい。
【0010】
前記判定データ生成部において、前記第1種の差分データと前記第2種の差分データのうち、前記差分の大きさの絶対値が小さい方の差分データを選択してもよい。
【0011】
前記結果データ生成部は、前記生成された判定データに基づいて、前記選択された差分データが表す差分が前記所定の許容条件を満たさないブロックの前記画像データ内における位置の分布を求め、当該求めた分布に基づいて、前記所定の許容条件を満たさないブロックに対応する前記被写体の画像内における位置を判別することにより、前記結果データを生成してもよい。
【0012】
前記結果データ生成部は、前記選択された差分データが表す差分が前記所定の許容条件を満たさないブロックのそれぞれに対応付けられる画素間の前記画像データ内における距離に基づいて、前記所定の許容条件を満たさないブロックに対応する前記被写体の画像内における位置を判別することにより、前記結果データを生成してもよい。
【0013】
前記被写体を撮影する撮影部を更に備え、
前記画像データ取得部は、前記撮影部によって撮影された前記被写体を表す画像データを取得してもよい。
【0014】
前記被写体の画像を含む画像データを予め記憶する記憶部を更に備え、
前記画像データ取得部は、前記記憶部に記憶されている画像データを読み出して取得してもよい。
【0015】
前記被写体は、運搬装置により運搬される連続的な布帛であり、
前記画像処理装置は、前記布帛の品質を検査する検査制御装置と通信ネットワークを介して接続され、
前記出力部は、前記生成された判定データに基づいて、前記選択された差分データが表す差分が前記所定の許容条件を満たさないブロックの前記布帛上の位置を判別し、当該判別した位置が運搬装置により所定位置に運搬されたときに当該運搬を停止させるように、前記検査制御装置を制御してもよい。
【0016】
本発明の第2の観点に係る画像処理方法は、
複数の画素から構成され、被写体の画像を含む画像データを取得する画像データ取得ステップと、
前記取得された画像データを複数のブロックに分割し、当該複数のブロックのそれぞれについて、当該ブロック内に含まれる画素に対応付けられる画素値を合計した総和データを生成する総和データ生成ステップと、
前記生成されたそれぞれの総和データのうち、前記ブロックの位置が縦方向に隣り合う2つのブロックの総和データの差分を表す第1種の差分データを生成し、かつ、前記ブロックの位置が横方向に隣り合う2つのブロックの総和データの差分を表す第2種の差分データを生成する差分データ生成ステップと、
前記第1種の差分データと前記第2種の差分データのうちどちらか一方の差分データを選択し、当該選択された差分データと、当該選択された差分データに対応するブロックの前記画像データ内における位置と、を対応付けた判定データを生成する判定データ生成ステップと、
前記生成された判定データに基づいて、前記選択された差分データが表す差分が所定の許容条件を満たすか否かを判別した結果データを生成する結果データ生成ステップと、
前記結果データの前記画像データ内における位置を出力する出力ステップと、
を備えることを特徴とする。
【0017】
本発明の第3の観点に係るプログラムは、
コンピュータを、
複数の画素から構成され、被写体の画像を含む画像データを取得する画像データ取得部、
前記取得された画像データを複数のブロックに分割し、当該複数のブロックのそれぞれについて、当該ブロック内に含まれる画素に対応付けられる画素値を合計した総和データを生成する総和データ生成部、
前記生成されたそれぞれの総和データのうち、前記ブロックの位置が縦方向に隣り合う2つのブロックの総和データの差分を表す第1種の差分データを生成し、かつ、前記ブロックの位置が横方向に隣り合う2つのブロックの総和データの差分を表す第2種の差分データを生成する差分データ生成部、
前記第1種の差分データと前記第2種の差分データのうちどちらか一方の差分データを選択し、当該選択された差分データと、当該選択された差分データに対応するブロックの前記画像データ内における位置と、を対応付けた判定データを生成する判定データ生成部、
前記生成された判定データに基づいて、前記選択された差分データが表す差分が所定の許容条件を満たすか否かを判別した結果データを生成する結果データ生成部、
前記結果データの前記画像データ内における位置を出力する出力部、
として機能させる。
【発明の効果】
【0018】
本発明によれば、製品の欠損等がある部分を検出するために好適な画像処理装置、画像処理方法、及び、プログラムを提供することができる。
【図面の簡単な説明】
【0019】
【図1】画像処理装置のハードウェア構成を説明するための図である。
【図2】画像データの構成を説明するための図である。
【図3】画像データ内に設定されるブロックを説明するための図である。
【図4】画像データをブロックで分割する処理を説明するための図である。
【図5】画像データをブロックで分割する処理を説明するための図である。
【図6】判定データを説明するための図である。
【図7】結果データを説明するための図である。
【図8】画像処理を説明するためのフローチャートである。
【図9】実施形態2における結果データの構成例を示す図である。
【図10】実施形態3における画像処理装置を含む、布帛の生産ラインの概要を示す図である。
【発明を実施するための形態】
【0020】
(実施形態1)
まず、本実施形態の画像処理装置100のハードウェア構成について、図1を用いて説明する。画像処理装置100は、制御部101、ROM(Read Only Memory)102、RAM(Random Access Memory)103、記憶装置104、通信部105、撮影部106、音声処理部107、画像処理部108、入力装置109を備える。
【0021】
制御部101は、CPU(Central Processing Unit)などから構成され、ROM102に予め格納されたプログラムを読み出して実行することにより、画像処理装置100の全体を制御する。制御部101は、レジスターという高速アクセスが可能な記憶域に対してALU(Arithmetic Logic Unit)を用いて加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。例えば、制御部101は、画像処理部108を制御して、撮影部106によって撮影された画像データを用いて後述のように画像処理を行う。
【0022】
ROM102は、オペレーティングシステム(OS)、プログラム、その他のデータ等を予め記憶する不揮発性メモリである。
【0023】
RAM103は、データやプログラムを一時的に記憶する。RAM103には、記憶装置104から読み出したプログラムやデータが記憶される。また、制御部101は、RAM103に変数領域を設け、この変数領域に格納された値に対して直接ALUを作用させて演算を行ったり、RAM103に格納された値を一旦レジスターに格納してからレジスターに対して演算を行ったりして、演算結果をRAM103に書き戻す、などの処理を行う。
【0024】
記憶装置104は、ハードディスクドライブを備え、OSや、後述する画像処理を行うためのプログラムなどを記憶する。また、記憶装置104は、画像処理により最終的に得られたデータや、画像処理の途中に得られた各種のデータ等を記憶する。記憶装置104に記憶されるデータは、制御部101により、随時書き換え可能である。
【0025】
通信部105は、LAN(Local Area Network)やインターネット等の通信ネットワークに接続するためのNIC(Network Interface Card)を備える。
【0026】
撮影部106は、少なくとも1つのカメラを備え、被写体を撮影し、画像データを取得する。撮影部106は2つ以上のカメラを備えていてもよい。取得された画像データは記憶装置104に保存され、後述する画像処理に用いられる。撮影部106によって取得される画像データは、複数の所定数の画素の集合によって構成される。画像データはグレースケールデータや2値データでもよいが、本実施形態では、1つの画素にR(レッド)、G(グリーン)、B(ブルー)の3色が対応付けられるカラーデータとする。ただし、後述するように、画像データのフォーマットは任意である。
【0027】
音声処理部107は、記憶装置104から読み出した音声データをアナログ音声信号に変換し、音声をスピーカー151から出力する。制御部101は、音声処理部107を制御して、任意のタイミングで音声データを再生してスピーカー151から再生音を出力することができる。また、音声処理部107は、マイクロフォン152で集音した音声をデジタル音声信号に変換し、制御部101に入力する。
【0028】
画像処理部108は、記憶装置104から読み出された画像データを、制御部101や画像処理部108が備える画像演算プロセッサ(図示せず)によって加工処理した後、画像処理部108が備えるフレームメモリーに記録する。フレームメモリーに記録された画像データは、所定の同期タイミングでビデオ信号に変換され、画像処理部108に接続されるモニター153へ映像として出力される。
【0029】
入力装置109は、キーボード、マウス、電源ボタン等を備え、キーやボタンが押圧されたりマウスが動かされたりすることによるユーザーからの様々な指示入力を受け付ける。
【0030】
次に、上記ハードウェア構成を有する画像処理装置100が行う画像処理の詳細について説明する。本実施形態の画像処理装置100は、シート状の被写体である繊維製品(布帛)やフィルム等の表面を撮影し、画像処理を行って、布帛やフィルム等の表面の欠損、欠陥、染めムラがある場所を検出する。
【0031】
図2は、撮影部106によって被写体を撮影して得られる画像データ200の構成を示す図である。画像データ200内に直行座標系(I−J座標系)を定義する。画像データ200は、I軸方向(横方向)へM列、J軸方向(縦方向)へN行、格子状に配置されるM×N個の画素からなる、N行M列の画素の集合である。以下の説明において、図2等の図面における画像データ200の左上隅の画素を基点として、I軸方向へi番目(i列目)、J軸方向へj番目(j行目)の画素に対応付けられる画素値を、pi,jと表す。
【0032】
典型的には、画素値pi,jは、R(レッド)の強度を示す値と、G(グリーン)の強度を示す値と、B(ブルー)の強度を示す値と、の組み合わせによって表される。ある画素に対応付けられた“R”の強度がr、“G”の強度がg、“B”の強度がbであるとき、画素値pi,jは[数1]のように表される。ただし、iは1以上M以下の整数、jは1以上N以下の整数である。
【0033】
【数1】

【0034】
制御部101は、画像データ200の画素数を決定する上記パラメーターN,Mを任意に設定することができる。また、制御部101は、画像データ200の色解像度、つまりRの強度とGの強度とBの強度のそれぞれの階調数を任意に設定することができる。例えば、制御部101は、縦に2048画素(=N)、横に4096画素(=M)、色数が18ビットカラー(262144色;RGBが各64階調)、などというように、画像データ200の属性を設定する。そして、制御部101は、撮影部106を制御して、設定した画像サイズと階調数を用いて被写体を撮影し、画像データ200を取得する。
【0035】
なお、制御部101は、画像処理を行うたびに被写体を撮影して画像データ200を取得してもよいし、過去に撮影して記憶装置104等に保存された画像データ200を読み出して取得してもよい。
【0036】
画像データ200を取得すると、制御部101は、所定数の画素から構成される複数のブロックに、論理的に画像データ200を分割する。1つのブロックに含まれる画素数は任意であるが、各ブロック内の画素数は同じとする。例えば、制御部101は、画像データ200を、I軸(横)方向へw個、J軸(縦)方向へh個の画素から構成される複数のブロックに分割する。wは2以上(M/2)以下の整数、hは2以上(N/2)以下の整数である。
【0037】
例えば、制御部101は、Mをwの整数倍になるように設定し、Nをhの整数倍になるように設定することにより、画像データ200全体をすべて同じブロックで分割することができる。ただし、制御部101は、各パラメーターM,N,w,hの値を自由に設定することができる。
【0038】
制御部101は、各パラメーターM,N,w,hの値を適宜変更できるようにしてもよい。制御部101は、ユーザーからの入力に基づいて、例えば、パラメーターw,hを2から256まで、パラメーターM,Nを256から65536まで、といったように、各パラメーターM,N,w,hの値をRAM103が許容する範囲内で変更してもよい。このようにユーザーが各値を任意に変更しカスタマイズできるようにしてもよい。
【0039】
図3は、同じ大きさの複数のブロック310(本図中では310,310,310などと記載)に論理的に分割された画像データ200を示す図である。1つのブロックには、(w×h)個の画素が含まれる。画像データ200は、(M×N)/(w×h)個の同じ大きさのブロックに分割されている。一般には、ブロックの総数は、[数2]によって表される。ただし、演算子“int(A)”は、実数Aの整数部分を表す。
【0040】
【数2】

【0041】
制御部101は、同一ブロック内のすべての画素に対応付けられる画素値の総和を計算する(積算する)。座標(i,j)の画素を左上頂点にもつブロック内に含まれるすべての画素の画素値を合計した値Si,jは、[数3]のように表される。
【0042】
【数3】

【0043】
上記[数1]のようにR,G,Bの3次元の画素値を扱う場合、制御部101は、R,G,Bのそれぞれについて、画素値の総和を計算する。値Si,jを、I軸方向にi番目、J軸方向にj番目の画素に対応する「総和データ」と呼ぶ。制御部101は、取得した総和データを記憶装置104に記憶する。
【0044】
例えば図3において、制御部101は、ブロック310内に含まれるすべての画素に対応付けられた画素値の合計、つまり総和データS1,1を求める。同様に、制御部101は、右隣のブロック310内に含まれるすべての画素に対応付けられた画素値の合計を表す総和データSw+1,1、下隣ブロック310内に含まれるすべての画素に対応付けられた画素値の合計を表す総和データS1,h+1などを求める。制御部101は、画像データ200内に設定されたすべてのブロックについて総和データを求める。
【0045】
次に、制御部101は、I軸方向又はJ軸方向に隣り合う2つのブロックの総和データの差分を計算する。2つの総和データの差分を表すデータを「差分データ」と呼ぶ。
【0046】
詳細には、制御部101は、I軸方向にi番目、J軸方向にj番目の画素を左上頂点にもつブロックの総和データSi,jと、このブロックとJ軸方向へ隣接する、I軸方向にi番目、J軸方向に(j+h)番目の画素を左上頂点にもつブロックの総和データSi,j+hと、の差分データD1i,jを求める。
【0047】
【数4】

【0048】
I軸方向(横方向)に隣り合う総和データ同士の差分を表す差分データD1i,jを「第1種の差分データ」とも言う。[数3]と[数4]から、差分データD1i,jは[数5]のように表される。
【0049】
【数5】

【0050】
また、制御部101は、I軸方向にi番目、J軸方向にj番目の画素を左上頂点にもつブロックの総和データSi,jと、このブロックとI軸方向へ隣接する、I方向に(i+w)番目、J方向にj番目の画素を左上頂点にもつブロックの総和データSi+w,jと、の差分データD2i,jを求める。
【0051】
【数6】

【0052】
J軸方向(縦方向)に隣り合う総和データ同士の差分を表す差分データD2i,jを「第2種の差分データ」とも言う。[数3]と[数6]から、差分データD2i,jは[数7]のように表される。
【0053】
【数7】

【0054】
制御部101は、画像データ200内に設定されたすべてのブロックについて、第1種の差分データと第2種の差分データを求める。ただし、I軸方向にint(M/w)番目のブロック(最も右端のブロック)にはI軸の正方向へ隣接する他のブロックが存在しないので、差分データの計算対象から除外する。同様に、J軸方向にint(N/h)番目のブロック(最も下端のブロック)にはJ軸の正方向へ隣接する他のブロックが存在しないので、差分データの計算対象から除外する。制御部101は、取得した第1種の差分データと第2種の差分データを記憶装置104に記憶する。
【0055】
この段階で、1つのブロックには第1種と第2種の2つの差分データが得られている。制御部101は、ブロックのそれぞれについて、第1種の差分データと第2種の差分データのうちどちらか一方を選択する。例えば、制御部101は、第1種の差分データと第2種の差分データのうち、絶対値が大きい方の差分データを選択する。
【0056】
あるいは、制御部101は、第1種の差分データと第2種の差分データのうち、絶対値が小さい方の差分データを選択してもよい。
【0057】
第1種の差分データと第2種の差分データのうち、選択された方の差分データを「判定データ」と呼ぶ。判定データの選択方法は上述のものに限られず、適宜変形例を採用することが可能である。
【0058】
制御部101は、図4に示すように、設定するブロックの位置をI軸方向へ1画素だけずらして、総和データ、差分データ、判定データの生成を再び行う。
【0059】
図4においては、制御部101は、複数のブロック410(本図中では410,410,410などと記載)に論理的に画像データ200を分割している。ただし、ブロックの位置が1画素分ずれたことにより、画像データ200に含まれる画素のうち一部の画素はいずれのブロックにも属さない。いずれのブロックにも属さない画素は、総和データと差分データの計算対象から除外される。例えば、横幅が「w」のブロック410を画像データ200内に設定し、Mをwの整数倍に設定する場合においては、I軸方向の1列目の画素や、画像データ200の右端から(w−1)列分の画素は、総和データと差分データの計算対象から除外される。
【0060】
制御部101は、ブロック410内に含まれるすべての画素に対応付けられた画素値の合計を表す総和データS2,1、ブロック410内に含まれるすべての画素に対応付けられた画素値の合計を表す総和データSw+2,1、ブロック410内に含まれるすべての画素に対応付けられた画素値の合計を表す総和データS2,h+1などを求める。制御部101は、画像データ200内に設定されたすべてのブロックについて総和データを求める。
【0061】
同様にして、制御部101は、設定するブロックの位置をI軸方向へさらに1画素だけずらし、それぞれのブロックについて総和データを生成し、位置をずらす量が(w−1)になるまで、総和データの生成を繰り返す。
【0062】
さらに、制御部101は、すべてのブロックのそれぞれについて、第1種の差分データと第2種の差分データを生成する。そして、制御部101は、第1種の差分データと第2種の差分データのうちどちらか一方を選択することにより、それぞれのブロックについて判定データを取得する。
【0063】
また、制御部101は、図5に示すように、設定するブロックの位置をJ軸方向へ1画素だけずらして、総和データ、差分データ、判定データの生成を再び行う。
【0064】
図5においては、制御部101は、複数のブロック510(本図中では510,510,510などと記載)に論理的に画像データ200を分割している。ただし、ブロックの位置が1画素分ずれたことにより、画像データ200に含まれる画素のうち一部の画素はいずれのブロックにも属さない。いずれのブロックにも属さない画素は、総和データと差分データの計算対象から除外される。例えば縦幅が「h」のブロック510を画像データ200内に設定する場合、J軸方向の1列目の画素や、画像データ200の下端から(h−1)列分の画素は、総和データと差分データの計算対象から除外される。
【0065】
制御部101は、ブロック510内に含まれるすべての画素に対応付けられた画素値の合計を表す総和データS1,2、ブロック510内に含まれるすべての画素に対応付けられた画素値の合計を表す総和データSw+1,2、ブロック510内に含まれるすべての画素に対応付けられた画素値の合計を表す総和データS1,h+2などを求める。制御部101は、画像データ200内に設定されたすべてのブロックについて総和データを求める。
【0066】
同様にして、制御部101は、設定するブロックの位置をJ軸方向へさらに1画素だけずらし、それぞれのブロックについて総和データを生成し、位置をずらす量が(h−1)になるまで、総和データの生成を繰り返す。
【0067】
さらに、制御部101は、すべてのブロックのそれぞれについて、第1種の差分データと第2種の差分データを生成する。そして、制御部101は、第1種の差分データと第2種の差分データのうちどちらか一方を選択することにより、それぞれのブロックについて判定データを取得する。
【0068】
これらの結果、画像データ200に含まれるすべての画素のうち、「1≦i≦M−w、且つ、1≦j≦N−h」の条件を満たす画素を左上頂点にもつブロックのそれぞれについて、判定データが取得される。
【0069】
図6は、取得されたすべての判定データをI−J空間上に配置して得られる、擬似的な画像データ600である。擬似的な画像データ600のサイズは、元の画像データ200と比べて、縦に(2h−1)だけ、横に(2w−1)だけ小さい。画像データ200がR値,G値,B値の3次元で表される場合、取得される判定データもR値,G値,B値の3次元で表される。上記の演算過程において、画素値の総和あるいは差分を計算しているため、判定データのR,G,Bが元の画像データ200の階調範囲内に収まらない可能性がある。このため、ここでは“擬似的な”画像データ600と表現している。以下の説明において、判定データが示す画素値に対応する値も、便宜上、画素値と呼ぶことにする。
【0070】
本実施形態では、擬似的な画像データ600は、直接モニターに表示されることはないが、ユーザーからの指示により、あるいは、所定のアルゴリズムにより、画像処理装置100がこの擬似的な画像データ600をモニターに表示してユーザーに提示してもよい。擬似的な画像データ600をモニターに表示する場合、制御部101は、上記の演算の結果得られた各判定データが示す画素値が、所定の階調数の範囲内に収まっているか否かを判別し、収まっていないと判別した場合、この所定の階調数の範囲内に収まるように判定データを変更することが望ましい。
【0071】
例えば、元の画像データ200がR,G,Bの各256階調で作成されていた場合には、制御部101は、各判定データが示す画素値に対応する値を0以上255以下の整数になるように調整する。制御部101は、判定データの各画素値が256以上の場合には上限値255に固定し、0(ゼロ)未満の場合には下限値0に固定するとよい。
【0072】
そして、制御部101は、取得された判定データのそれぞれについて、所定の許容条件を満たすか否かを判別する。
【0073】
許容条件の決め方には様々なバリエーションがある。
例えば、制御部101は、「判定データの画素値のいずれもが所定値以下であること」を許容条件とすることができる。制御部101は、判定データのR値が第1の所定値以下か否かを判別し、判定データのG値が第2の所定値以下か否かを判別し、判定データのB値が第3の所定値以下か否かを判別する。第1の所定値と第2の所定値と第3の所定値はすべて同じでもよいし、異なっていてもよい。そして、制御部101は、判定データの画素値がいずれも所定値以下であると判別した場合、許容条件を満たすと判別し、その判定データに許容条件を満たす旨を示す第1の値(典型的には「1」)を対応付ける。一方、制御部101は、判定データの画素値のいずれか1つ以上が所定値以下ではないと判別した場合、許容条件を満たさないと判別し、その判定データに許容条件を満たさない旨を示す第2の値(典型的には「0」)を対応付ける。判別結果は、「検出データ」として記憶装置104に記憶される。
【0074】
あるいは、制御部101は、「判定データの画素値のうち所定個数以上が、所定値以下であること」を許容条件としてもよい。制御部101は、判定データのR値が第1の所定値以下か否かを判別し、判定データのG値が第2の所定値以下か否かを判別し、判定データのB値が第3の所定値以下か否かを判別する。そして、制御部101は、R値とG値とB値のうち所定値以下であるものが2つ以上の場合、許容条件を満たすと判別し、その判定データに許容条件を満たす旨を示す第1の値を対応付ける。一方、制御部101は、R値とG値とB値のうち所定値以下であるものが2つ未満の場合、許容条件を満たさないと判別し、その判定データに許容条件を満たさない旨を示す第2の値を対応付ける。
【0075】
また、制御部101は、「判定データの画素値のいずれもが、所定値“以上”であること」や、「判定データの画素値のうち所定個数以上が、所定値“以上”であること」を許容条件としてもよい。
【0076】
さらには、制御部101は、「判定データの画素値のいずれもが、所定の下限値以上、且つ、所定の上限値以下であること」や、「判定データの画素値のうち所定個数以上が、所定の下限値以上、且つ、所定の上限値以下であること」を許容条件としてもよい。下限値と上限値は任意である。
【0077】
例えば図7に、判定結果を表すデータ(以下「結果データ」という。)を示す。I軸方向へi番目、J軸方向へj番目の画素に対応付けられた結果データは「1」、つまり許容条件を満たす旨の値である。一方、I軸方向へ(i+1)番目、J軸方向へj番目の画素に対応付けられた結果データと、I軸方向へi番目、J軸方向へ(j+1)番目の画素に対応付けられた結果データと、I軸方向へ(i+1)番目、J軸方向へ(j+1)番目の画素に対応付けられた結果データは「0」、つまり許容条件を満たさない旨の値である。
【0078】
許容条件を満たさない旨の値の結果データが対応付けられた画素は、被写体(本実施形態では、布帛)の表面の様子が他の場所と異なっていることを表しており、ほぼ均一に作られているはずの布帛の表面のうち、欠損、欠陥、染めムラ等がある可能性が高い場所に相当する。従って、結果データの分布を解析することにより、被写体の表面の欠損、欠陥、染めムラ等を検出できるようになる。
【0079】
次に、本実施形態の画像処理装置100が行う画像処理の流れについて、図8のフローチャートを用いて説明する。
【0080】
まず、制御部101は、撮影部106を制御して、被写体を撮影し、画像データ200を取得する(ステップS801)。ただし、制御部101は、過去に撮影し記憶装置104に保存されていた画像データ200を読み出して取得してもよい。
【0081】
制御部101は、取得した画像データ200を論理的に分割するブロックの、頂点の画素の座標を求める(ステップS802)。
【0082】
例えば、画像データ200を大きさの等しい複数のブロックで分割する場合、制御部101は、上述のようにMをwの整数倍になるように設定し、Nをhの整数倍になるように設定する。そして、制御部101は、各ブロックの左上頂点の画素(I座標,J座標が共に最小となる画素)の座標を求める。
【0083】
制御部101は、画像データ200を複数のブロックに分割する(ステップS803)。
【0084】
制御部101は、各ブロックの総和データを取得する(ステップS804)。すなわち、制御部101は、[数3]に示すように、ブロック内の画素に対応付けられた画素値の総和Si,jを計算する。画素がR色,G色,B色の3次元の場合には、制御部101は、各色について画素値の総和を計算する。
【0085】
制御部101は、隣り合う2つのブロック同士の差分を表す差分データを取得する(ステップS805)。すなわち、制御部101は、各ブロックについて、[数5]に示す第1の差分データと、[数7]に示す第2の差分データとを求める。
【0086】
制御部101は、ステップS805で取得した差分データから、判定データを取得する(ステップS806)。例えば、制御部101は、各ブロックについて、第1の差分データと第2の差分データのうち、絶対値が大きい方を選択することにより、判定データを取得する。
【0087】
制御部101は、ステップS803で分割したブロックとは異なるブロックに画像データ200を分割するか否かを判別する(ステップS807)。すなわち、画像データ200に含まれる各画素を頂点とするブロックに画像データ200を分割して上記ステップS804〜S806の計算を既に行ったか否かを判別する。ただし、大きさの等しいブロックに属することができない画素は除外する。
【0088】
異なるブロックに画像データ200を分割し直すと判別した場合(ステップS807;YES)、制御部101は、ステップS802の処理に戻り、ステップS802で求めた画素の座標と異なる画素の座標を頂点とするブロックに画像データ200を分割する。そして、制御部101は、上記ステップS802〜S807の処理を繰り返す。
【0089】
一方、異なるブロックに画像データ200を分割し直さないと判別した場合(ステップS807;NO)、制御部101は、ステップS806で取得した各判定データについて、許容条件を満たすか否かを判別する(ステップS808)。
【0090】
制御部101は、ステップS808の判別結果に基づいて、結果データ700を取得する(ステップS809)。例えば、制御部101は、許容条件を満たすと判別したブロックの左上頂点の画素に、許容条件を満たす旨を示す第1の値「1」を対応付け、許容条件を満たさないと判別したブロックの左上頂点の画素に、許容条件を満たさない旨を示す第2の値「0」を対応付けた結果データ700を取得する。制御部101は、取得した結果データ700を記憶装置104に記憶する。
【0091】
制御部101は、取得した結果データ700に基づいて、被写体の表面のうち、欠損、欠陥、染めムラ等がある箇所を特定する(ステップS810)。例えば、制御部101は、許容条件を満たさない旨を示す第2の値が対応付けられた画素(もしくはブロック)に対応する被写体部分に、欠損、欠陥、染めムラ等があると判定する。
【0092】
そして、制御部101は、ステップS810における判定結果を示す情報を出力する(ステップS811)。例えば、制御部101は、画像データ200のうち、欠損、欠陥、染めムラ等があると判定した部分を拡大してモニターに表示したり、その判定した部分を他の部分と比べて強調して表示したりする。判定結果を出力する手法は、本発明によって限定されない。
【0093】
本実施形態によれば、被写体を撮影した画像データ200を解析することにより、欠損、欠陥、染めムラ等がある部分を容易に検出できるようになる。画像処理装置100は、人間が製品(被写体)を触ったり目視で1つずつ確認したりすることなく、製品の欠損等がある部分を画像処理によって容易に検出することができる。
【0094】
また、本実施形態のように製品の欠損等を検出する仕組みは、照明の影響を受けにくく、製品の微少な欠点を検出しやすいという特徴がある。更に、線状に分布した欠損等を効率良く検出でき、例えば布帛の地合の影響を最小限に抑えて欠損等を検出できるという効果がある。
【0095】
(実施形態2)
次に、本発明のその他の実施形態について説明する。上述の実施形態1では、画像処理装置100は、結果データ700のうち、許容条件を満たさない旨を示す第2の値(例えば「0」)が対応付けられた画素に対応する被写体部分に、欠損、欠陥、染めムラ等があると判定しているが、本実施形態では、この第2の値の分布パターンを更に解析して、欠損、欠陥、染めムラ等がある部分を検出する。
【0096】
すなわち、制御部101は、取得した結果データから、許容条件を満たさない旨を示す第2の値が対応付けられた画素の分布パターンを特定し、特定した分布パターンから外れた画素付近に欠損、欠陥、染めムラ等があると判定する。
【0097】
図9に、結果データ700の構成例を示す。本図では、許容条件を満たさない旨を示す第2の値「0」が対応付けられた画素のみ図示している。画素901〜905は、J軸方向へ距離αで等間隔に並んでいる。同様に、画素906〜910もJ軸方向へ距離αで等間隔に並んでおり、画素911〜915もJ軸方向へ距離αで等間隔に並んでいる。更に、画素901,906,911は、I軸方向へ距離βで等間隔に並んでいる。同様に、画素902,907,912の行や、画素903,908,913の行、画素904,908,914の行、画素905,910,915の行においても、I軸方向へ距離βで等間隔に並んでいる。従って、制御部101は、画素901〜915については、許容条件を満たさないものの、規則的に分布しているため、欠損、欠陥、染めムラ等ではないと判定する。
【0098】
しかし、画素916と最も近い他の画素910との距離のJ軸成分はαと異なっており(αより小さい)、且つ、画素916と最も近い他の画素910との距離のI軸成分はβと異なっている(βより小さい)。従って、制御部101は、許容条件を満たさない旨を示す第2の値が対応付けられた画素901〜916のうち、画素916が特異点であると判断し、被写体表面のうち画素916に対応する部分に欠損、欠陥、染めムラ等があると判定する。このように、制御部101は、許容条件を満たさない旨を示す第2の値が対応付けられた画素同士の距離に基づいて、製品の欠損等がある部分を容易に検出することができる。
【0099】
また、制御部101は、製品の欠損等がある部分を容易に検出するために、許容条件を満たさない旨を示す第2の値が対応付けられた画素同士の距離に基づいて検出する代わりに、他の手法を用いて検出してもよい。例えば、制御部101は、許容条件を満たさない旨を示す第2の値が対応付けられた画素の中から所定個数の画素をサンプリングし、サンプリングした画素の配置の空間周波数を計算し、空間周波数が所定範囲に収まらない画素付近に、欠損等があると判定してもよい。
【0100】
例えば、縞模様や市松模様などのように、布帛に周期的な模様が描かれている場合、単純に結果データの分布のみ考慮すると、意図した模様の部分と模様でない部分との境界付近で、隣り合うブロック同士が許容条件を満たさないと判別される可能性がある。しかし、模様の切れ目において許容条件を満たさないことは当然の結果であるとも言え、“真の”欠損部分を検出する精度が落ちる可能性がある。そこで、本実施形態のように、許容条件を満たさない画素が、ある特定のパターンで分布している場合には、欠損部分とは見なさないとすることによって、製品の欠損部分の検出の精度を高めることができる。
【0101】
(実施形態3)
次に、本発明のその他の実施形態について説明する。本実施形態では、画像処理装置100は、布帛の生産ラインの製品検査行程に設置されており、製品に欠損部分があると検出した場合に、その旨を検査制御装置に通知する。
【0102】
図10に、布帛の製造ラインの概略を示す。表面に加工が施されたシート状の製品は、運搬装置(コンベアー)に載って画像処理装置100が備えるカメラの前に流れてくる。制御部101は、撮影部106を制御して製品を撮影し、画像データ200を取得する。
【0103】
制御部101は、取得した画像データ200を用いて上述した画像処理を行い、総和データ、差分データ、判定データ、結果データを取得する。そして、制御部101は、結果データのうち許容条件を満たさない旨の値が対応付けられた画素の分布に基づいて、画像データ200のうち欠陥等があると判定される部分を特定する。
【0104】
制御部101は、欠陥等があると判定される部分を特定すると、通信部105により接続された検査制御装置160に欠陥等を検出した旨を通知し、検査制御装置160にコンベアーを停止させる。
【0105】
制御部101がコンベアーを停止させるタイミングは、欠陥等があると判定したタイミングでもよいし、他のタイミングでもよい。
【0106】
例えば、制御部101は、欠陥等があると判定したタイミングより後であって、オペレーターが布帛の表面を目視で確認できる場所に設置された載台170を通過するタイミングにしてもよい。このようにすれば、画像処理装置100がオペレーターに欠陥等を単に通知するだけでなく、検出された欠陥等をオペレーターが目視で確認し欠陥箇所をマーキングする等の作業が簡素化される効果がある。
【0107】
また、オペレーターに欠陥等の検出を通知する手法は、メッセージをモニターに表示したりコンベアーを停止させたりすることに限られるわけではない。例えば、制御部101は、欠陥等を検出した旨を表す音声データを再生することにより、音声でオペレーターに通知してもよい。
【0108】
また、制御部101は、欠陥等を検出した旨を表すメッセージデータを、画像処理装置100と通信ネットワークで接続された他の端末などに送信することにより、画像処理装置100から離れた場所にいるオペレーターに通知してもよい。
【0109】
本実施形態によれば、画像処理装置100は、製品の欠損等がある部分を容易に検出することができるだけでなく、製品の欠損等を効率よくオペレーターに通知でき、オペレーターによる欠品の確認作業やマーキング作業等が容易になる。
【0110】
本発明は、上述した実施形態に限定されず、種々の変形及び応用が可能である。また、上述した実施形態の各構成要素を自由に組み合わせることも可能である。
【0111】
例えば、画像処理装置100は、R値,G値,B値の3次元の画素値を有する画像データ200を用いる代わりに、R値のみ、G値のみ、B値のみ、といったように1次元の画素値を有する画像データや、R値とG値、R値とB値、G値とB値、といったように2次元の画素値を有する画像データを用いてもよい。
【0112】
また、画像処理装置100は、明度、彩度、色相の3次元の画素値で表される画像データを用いて上述の画像処理を行うように構成してもよい。更には、画像処理装置100は、シアン(C)、マゼンダ(M)、イエロー(Y)、ブラック(K)で表されるカラーモデルを採用した画像データを用いて上述の画像処理を行うように構成してもよい。
【0113】
上記各実施形態では、1つの画像データ200を元に画像処理を行っているが、撮影位置をずらした複数のカメラによって複数の画像データを取得し、上述の画像処理におけるステップS802〜S806の行程を同時に並行して行うようにしてもよい。
【0114】
上記の画像処理装置100の全部又は一部としてコンピュータを動作させるためのプログラムを、メモリカード、CD−ROM、DVD、MO(Magneto Optical disk)などのコンピュータ読み取り可能な記録媒体に格納して配布し、これを別のコンピュータにインストールし、上述の手段として動作させ、あるいは、上述の工程を実行させてもよい。
【0115】
さらに、インターネット上のサーバ装置が有するディスク装置等にプログラムを格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等するものとしてもよい。
【0116】
以上説明したように、上記各実施形態によれば、製品の欠損等がある部分を検出するために好適な画像処理装置、画像処理方法、及び、プログラムを提供することができる。
【符号の説明】
【0117】
100 画像処理装置
101 制御部
102 ROM
103 RAM
104 記憶装置
105 通信部
106 撮影部
107 音声処理部
108 画像処理部
109 入力装置
151 スピーカー
152 マイクロフォン
153 モニター
160 検査制御装置
170 載台
200 画像データ
310,410,510 ブロック
600 擬似的な画像データ
700 結果データ

【特許請求の範囲】
【請求項1】
複数の画素から構成され、被写体の画像を含む画像データを取得する画像データ取得部と、
前記取得された画像データを複数のブロックに分割し、当該複数のブロックのそれぞれについて、当該ブロック内に含まれる画素に対応付けられる画素値を合計した総和データを生成する総和データ生成部と、
前記生成されたそれぞれの総和データのうち、前記ブロックの位置が縦方向に隣り合う2つのブロックの総和データの差分を表す第1種の差分データを生成し、かつ、前記ブロックの位置が横方向に隣り合う2つのブロックの総和データの差分を表す第2種の差分データを生成する差分データ生成部と、
前記第1種の差分データと前記第2種の差分データのうちどちらか一方の差分データを選択し、当該選択された差分データと、当該選択された差分データに対応するブロックの前記画像データ内における位置と、を対応付けた判定データを生成する判定データ生成部と、
前記生成された判定データに基づいて、前記選択された差分データが表す差分が所定の許容条件を満たすか否かを判別した結果データを生成する結果データ生成部と、
前記結果データの前記画像データ内における位置を出力する出力部と、
を備えることを特徴とする画像処理装置。
【請求項2】
前記総和データ生成部は、前記画像データの複数のブロックへの分割の位置を所定方向へ所定画素数分移動して、前記画像データを新たな複数のブロックに分割し、当該新たな複数のブロックのそれぞれについて、当該新たなブロック内に含まれる画素に対応付けられる画素値を合計した新たな総和データを更に生成し、
前記差分データ生成部は、前記新たに生成されたそれぞれの総和データのうち、縦方向に隣り合う2つのブロックの総和データの差分を表す新たな第1種の差分データを更に生成し、かつ、横方向に隣り合う2つのブロックの総和データの差分を表す新たな第2種の差分データを生成し、
前記判定データ生成部は、前記新たな第1種の差分データと前記新たな第2種の差分データのうちどちらか一方の差分データを選択し、当該新たに選択された差分データと、当該新たに選択された差分データに対応するブロックの前記画像データ内における位置と、を対応付けた新たな判定データを生成し、
前記結果データ生成部は、前記新たに生成された判定データに基づいて、前記新たに選択された差分データが表す差分が前記所定の許容条件を満たすか否かを更に判別した新たな結果データを更に生成する、
ことを特徴とする、請求項1に記載の画像処理装置。
【請求項3】
前記判定データ生成部において、前記第1種の差分データと前記第2種の差分データのうち、前記差分の大きさの絶対値が大きい方の差分データを選択する、
ことを特徴とする、請求項1又は2に記載の画像処理装置。
【請求項4】
前記判定データ生成部において、前記第1種の差分データと前記第2種の差分データのうち、前記差分の大きさの絶対値が小さい方の差分データを選択する、
ことを特徴とする、請求項1又は2に記載の画像処理装置。
【請求項5】
前記結果データ生成部は、前記生成された判定データに基づいて、前記選択された差分データが表す差分が前記所定の許容条件を満たさないブロックの前記画像データ内における位置の分布を求め、当該求めた分布に基づいて、前記所定の許容条件を満たさないブロックに対応する前記被写体の画像内における位置を判別することにより、前記結果データを生成する、
ことを特徴とする、請求項1乃至4のいずれか1項に記載の画像処理装置。
【請求項6】
前記結果データ生成部は、前記選択された差分データが表す差分が前記所定の許容条件を満たさないブロックのそれぞれに対応付けられる画素間の前記画像データ内における距離に基づいて、前記所定の許容条件を満たさないブロックに対応する前記被写体の画像内における位置を判別することにより、前記結果データを生成する、
ことを特徴とする、請求項5に記載の画像処理装置。
【請求項7】
前記被写体を撮影する撮影部を更に備え、
前記画像データ取得部は、前記撮影部によって撮影された前記被写体を表す画像データを取得する、
ことを特徴とする、請求項1乃至6のいずれか1項に記載の画像処理装置。
【請求項8】
前記被写体の画像を含む画像データを予め記憶する記憶部を更に備え、
前記画像データ取得部は、前記記憶部に記憶されている画像データを読み出して取得する、
ことを特徴とする、請求項1乃至6のいずれか1項に記載の画像処理装置。
【請求項9】
前記被写体は、運搬装置により運搬される連続的な布帛であり、
前記画像処理装置は、前記布帛の品質を検査する検査制御装置と通信ネットワークを介して接続され、
前記出力部は、前記生成された判定データに基づいて、前記選択された差分データが表す差分が前記所定の許容条件を満たさないブロックの前記布帛上の位置を判別し、当該判別した位置が運搬装置により所定位置に運搬されたときに当該運搬を停止させるように、前記検査制御装置を制御する、
ことを特徴とする、請求項1乃至9のいずれか1項に記載の画像処理装置。
【請求項10】
複数の画素から構成され、被写体の画像を含む画像データを取得する画像データ取得ステップと、
前記取得された画像データを複数のブロックに分割し、当該複数のブロックのそれぞれについて、当該ブロック内に含まれる画素に対応付けられる画素値を合計した総和データを生成する総和データ生成ステップと、
前記生成されたそれぞれの総和データのうち、前記ブロックの位置が縦方向に隣り合う2つのブロックの総和データの差分を表す第1種の差分データを生成し、かつ、前記ブロックの位置が横方向に隣り合う2つのブロックの総和データの差分を表す第2種の差分データを生成する差分データ生成ステップと、
前記第1種の差分データと前記第2種の差分データのうちどちらか一方の差分データを選択し、当該選択された差分データと、当該選択された差分データに対応するブロックの前記画像データ内における位置と、を対応付けた判定データを生成する判定データ生成ステップと、
前記生成された判定データに基づいて、前記選択された差分データが表す差分が所定の許容条件を満たすか否かを判別した結果データを生成する結果データ生成ステップと、
前記結果データの前記画像データ内における位置を出力する出力ステップと、
を備えることを特徴とする画像処理方法。
【請求項11】
コンピュータを、
複数の画素から構成され、被写体の画像を含む画像データを取得する画像データ取得部、
前記取得された画像データを複数のブロックに分割し、当該複数のブロックのそれぞれについて、当該ブロック内に含まれる画素に対応付けられる画素値を合計した総和データを生成する総和データ生成部、
前記生成されたそれぞれの総和データのうち、前記ブロックの位置が縦方向に隣り合う2つのブロックの総和データの差分を表す第1種の差分データを生成し、かつ、前記ブロックの位置が横方向に隣り合う2つのブロックの総和データの差分を表す第2種の差分データを生成する差分データ生成部、
前記第1種の差分データと前記第2種の差分データのうちどちらか一方の差分データを選択し、当該選択された差分データと、当該選択された差分データに対応するブロックの前記画像データ内における位置と、を対応付けた判定データを生成する判定データ生成部、
前記生成された判定データに基づいて、前記選択された差分データが表す差分が所定の許容条件を満たすか否かを判別した結果データを生成する結果データ生成部、
前記結果データの前記画像データ内における位置を出力する出力部、
として機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2012−215512(P2012−215512A)
【公開日】平成24年11月8日(2012.11.8)
【国際特許分類】
【出願番号】特願2011−81954(P2011−81954)
【出願日】平成23年4月1日(2011.4.1)
【出願人】(592037125)セーレン電子株式会社 (5)
【出願人】(000107907)セーレン株式会社 (462)
【Fターム(参考)】