(58)【調査した分野】(Int.Cl.,DB名)
前記m個の画素ブロックにおける前記3つの値のそれぞれの代表値が示す前記第2の色空間上での点と、予め記録された前記3つの値のそれぞれの参照値が示す前記第2の色空間上での点との距離を計算するステップと、
前記距離に応じて、前記対象物の色の良否を判定し、判定結果を出力するステップと、をさらに含む、請求項5に記載の方法。
前記R、G、Bのそれぞれの画素値の代表値を、前記第2の色空間における前記3つの値に変換するときに使用される変換係数を、機械学習によって決定するステップをさらに含む、請求項5から8のいずれかに記載の方法。
前記R、G、Bのそれぞれの画素値の代表値を決定するステップは、前記R、G、Bのそれぞれの画素値を平滑化して平均化するステップを含む、請求項5から9のいずれかに記載の方法。
【発明を実施するための形態】
【0009】
従来、色彩の測定や評価には、色彩計を用いた色彩測定、またはスペクトル測定器による分光分析などの方法が用いられてきた。これらの方法は、一般に、小さいスポット(例えば数mm以下)における色彩を測定する。そのため、表面の色彩が均一ではない対象物の色彩を高い精度で測定することが難しい。例えば、地紋や折り目などがある布地、紙(特に繊維が大きいもの)、絨毯、壁、またはムラのある手塗りの塗料もしくはインクなどの色を高い精度で測定することは難しい。そのような対象物を測定する場合、計測点の位置がわずかに異なるだけで測定値が大きく異なる。そのため、上記のような対象物には、従来の測色方法では安定した測定結果を得ることができなかった。
【0010】
そこで、本発明者らは、表面の色が均一でない対象物の色を適切に数値化し、評価することを可能にするために、以下に説明する各実施形態の方法および装置を開発するに至った。以下、本開示の実施形態の概要を説明する。
【0011】
本開示のある実施形態による対象物の色を数値化する方法は、以下の(A)から(E)のステップを含む。
(A)各々が1つ以上の色にそれぞれ対応する1つ以上の画素値を有する複数の画素を含む画像のデータを取得する。
(B)前記画像から、n個(nは3以上の整数)の画素ブロックを抽出する。
(C)抽出した前記n個の画素ブロックの各々について、前記1つ以上の色のそれぞれの画素値の代表値を決定する。
(D)前記n個の画素ブロックの各々について、前記1つ以上の色のそれぞれの画素値の代表値と、前記n個の画素ブロックに含まれる他の全ての画素ブロックについての前記1つ以上の色のそれぞれの画素値の代表値との差の程度を示す値の総和を計算する。
(E)前記n個の画素ブロックのうち、前記差の程度を示す値の総和が小さいものから順に選択されたm個(mは2以上n未満の整数)の画素ブロックにおける前記1つ以上の色のそれぞれの画素値の代表値に基づく1つの色を示す値を決定して出力する。
【0012】
上記のステップ(D)における「差の程度を示す値」は、比較対象の2つの画素ブロックにおける前記1つ以上の色のそれぞれの画素値の代表値の差そのものであってもよいし、当該画素値の代表値から変換された他の値同士の差であってもよい。上記のステップ(E)における「1つの色を示す値」は、前記m個の画素ブロックにおける前記1つ以上の色のそれぞれの画素値の代表値の平均値であってもよいし、当該代表値に基づく計算によって得られる他の値であってもよい。
【0013】
上記のステップ(E)における1つの色を示す値は、対象物の色を識別するための識別データとして利用され得る。上記1つ以上の色は、単色であってもよいし、複数の色であってもよい。上記1つ以上の色が単色の場合、上記の方法により、対象物の濃淡の程度を1つの値で評価することができる。上記1つ以上の色が複数の色の場合、対象物の色彩を複数の値で評価することができる。上記複数の色は、例えば赤(R)、緑(B)、青(B)の三原色を含み得る。ただし、必ずしも三原色に限定されない。用途によっては、4色または5色などのマルチスペクトルの色の評価に上記方法を用いることもできる。ここで、便宜上「色」という表現を用いているが、本開示における「色」は、可視光の波長域に含まれる色に限定されず、例えば赤外または紫外などの不可視光の波長域も含む。
【0014】
上記の方法によれば、画像から抽出されたn個の画素ブロックから、互いに色または濃度が近いと推定されるm個の画素ブロックが選択される。そして、当該m個の画素ブロックの、上記1つ以上の色のそれぞれの画素値の代表値に基づく1つの色を示す値が、色の識別データとして出力される。このような処理により、色または濃度が均一でない対象物の色を適切に評価することが可能になる。
【0015】
前記1つ以上の色が複数の色である場合、前記差の程度を示す値の総和を計算するステップ(D)は、以下のステップを含み得る。
(D1)前記n個の画素ブロックの各々について、前記複数の色のそれぞれの画素値の代表値を、前記複数の色によって構成される第1の色空間とは異なる第2の色空間における複数の値に変換する。
(D2)前記n個の画素ブロックの各々について、前記複数の値が示す前記第2の色空間上での点と、前記n個の画素ブロックに含まれる他の全ての画素ブロックについての前記複数の値が示す前記第2の色空間上での点との距離の総和を、前記差の程度を示す値の総和として計算する。
【0016】
前記1つの色を示す値は、前記n個の画素ブロックのうち、前記距離の総和が小さいものから順に選択された前記m個の画素ブロックにおける前記複数の値のそれぞれの代表値であり得る。
【0017】
上記の方法によれば、対象物の色彩をより適切に評価することができる。
【0018】
本開示の他の実施形態による対象物の色を数値化する方法は、以下の(a)から(f)のステップを含む。
(a)対象物を撮像することによって生成された、各々が赤(R)、緑(G)、および青(B)の画素値を有する複数の画素を含むRGB画像のデータを取得する。
(b)前記RGB画像から、n個(nは3以上の整数)の画素ブロックを抽出する。
(c)抽出した前記n個の画素ブロックの各々について、R、G、Bのそれぞれの画素値の代表値を決定する。
(d)前記n個の画素ブロックの各々について、前記R、G、Bのそれぞれの画素値の代表値を、前記R、G、Bによって構成される第1の色空間とは異なる第2の色空間における3つの値に変換する。
(e)前記n個の画素ブロックの各々について、前記3つの値が示す前記第2の色空間上での点と、前記n個の画素ブロックに含まれる他の全ての画素ブロックについての前記3つの値が示す前記第2の色空間上での点との距離の総和を計算する。
(f)前記n個の画素ブロックのうち、前記距離の総和が小さいものから順に選択されたm個(mは2以上n未満の整数)の画素ブロックにおける前記3つの値のそれぞれの代表値を計算して出力する。
【0019】
上記のステップ(f)における第2の色空間における3つの値のそれぞれの代表値は、対象物の色を識別するための識別データとして利用される。上記3つの値のそれぞれの代表値は、例えば、m個の画素ブロックにおける上記3つの値のそれぞれの平均値であり得る。上記の方法によれば、RGB画像から抽出されたn個の画素ブロックから、互いに色が近いと推定されるm個の画素ブロックが選択される。そして、当該m個の画素ブロックの、第2の色空間における3つの値のそれぞれの代表値が、色の識別データとして出力される。このような処理により、色が均一でない対象物の色を適切に評価することが可能になる。
【0020】
上記の方法は、例えば、同様の工程によって生産された製品の色の検査に使用され得る。そのような用途においては、まず、予め生産された製品(第1の対象物と称する)について、上記の方法によって識別データが参照用データとして予め記録媒体に記録される。次に、上記製品と同様の工程によって生産された第2の対象物について、上記と同様の方法によって識別データが生成される。生成された識別データと、予め記録された参照用データとを比較することにより、当該対象物の色の良否を判定することができる。
【0021】
そのような用途においては、上記の方法は、さらに以下のステップを含み得る。
(g)前記m個の画素ブロックにおける前記3つの値のそれぞれの代表値(例えば平均値)が示す前記第2の色空間上での点と、予め記録された前記3つの値のそれぞれの参照値が示す前記第2の色空間上での点との距離を計算する。
(h)前記距離に応じて、前記対象物の色の良否を判定し、判定結果を出力する。
【0022】
ステップ(g)、(h)により、予め記録された第1の対象物の色と、検査対象の第2の対象物との色の近似度に基づいて、第2の対象物の色の良否を判定することができる。色の良否は、例えば、良/不良の2値の値で評価されてもよいし、近似度に応じて3つ以上の値で評価されてもよい。
【0023】
上記の方法が対象物の色の登録時に使用される場合、前記3つの値のそれぞれの代表値を計算して出力するステップは、前記3つの値のそれぞれの代表値(例えば平均値)を、参照値として記録媒体に記録することをさらに含む。他の対象物の色の検査時には、前記方法は、さらに、以下のステップを含む。
(a’)他の対象物を撮像することによって生成された他のRGB画像のデータを取得する。
(b’)前記他のRGB画像から、他のn個の画素ブロックを抽出する。
(c’)抽出した前記他のn個の画素ブロックの各々について、R、G、Bのそれぞれの画素値の代表値を決定する。
(d’)前記他のn個の画素ブロックの各々について、前記R、G、Bのそれぞれの画素値の代表値を、前記第2の色空間における3つの値に変換する。
(e’)前記他のn個の画素ブロックの各々について、前記3つの値が示す前記第2の色空間上での点と、前記他のn個の画素ブロックに含まれる他の全ての画素ブロックについての前記3つの値が示す前記第2の色空間上での点との距離の総和を計算する。
(f’)前記他のn個の画素ブロックのうち、前記距離の総和が小さいものから順に選択されたm個の画素ブロックにおける前記3つの値のそれぞれの代表値を計算する。
(g’)前記他のm個の画素ブロックにおける前記3つの値のそれぞれの代表値が示す前記第2の色空間上での点と、予め記録された前記3つの値のそれぞれの前記参照値が示す前記第2の色空間上での点との距離を計算する。
(h’)前記距離に応じて、前記他の対象物の色の良否を判定し、判定結果を出力する。
【0024】
前記第2の色空間における前記3つの値は、例えば、L
*a
*b
*色空間におけるL
*値、a
*値、およびb
*値であり得る。L
*a
*b
*色空間は、人間の視覚を近似するように設計されている。このため、L
*a
*b
*色空間における距離の総和の小さい画素ブロックから順に選択することにより、より人間の視覚に近い数値化が可能となる。なお、色の数値化の目的によっては、必ずしも人間の視覚に近い必要はないため、第2の色空間はL
*a
*b
*色空間とは異なる色空間であってもよい。
【0025】
上記の方法は、前記R、G、Bのそれぞれの画素値の代表値を、前記第2の色空間における前記3つの値に変換するときに使用される変換係数を、機械学習によって決定するステップをさらに含んでいてもよい。
【0026】
前記R、G、Bのそれぞれの画素値の代表値を決定するステップは、前記R、G、Bのそれぞれの画素値を平滑化して平均化するステップを含んでいてもよい。
【0027】
本開示の他の実施形態による信号処理装置は、プロセッサと、前記プロセッサによって実行されるコンピュータプログラムを格納するメモリと、を備える。前記コンピュータプログラムは、前記プロセッサに、上記の方法を実行させる。
【0028】
本開示の他の実施形態による撮像システムは、上記の信号処理装置と、前記対象物を撮像することによって前記RGB画像のデータを生成する撮像装置とを備える。
【0029】
以下、本開示の実施形態を説明する。ただし、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になることを避け、当業者の理解を容易にするためである。なお、発明者らは、当業者が本開示を十分に理解するために添付図面および以下の説明を提供するのであって、これらによって特許請求の範囲に記載の主題を限定することを意図するものではない。本明細書においては、同一のまたは類似する構成要素には、同一の参照符号を付している。なお、本願の図面に示される構造物の全体または一部分の形状および大きさは、現実の形状および大きさを制限するものではない。また、以下に説明する実施形態の構成を適宜組み合わせて、他の実施形態を構成してもよい。
【0030】
(実施形態)
[1.構成]
図1は、本発明の例示的な実施形態における撮像システム100の構成を模式的に示す図である。このシステム100は、対象物230の色を識別し、識別結果を出力する。対象物230は、例えば、地紋や折り目などがある布地、紙(特に繊維が大きいもの)、絨毯、壁、またはムラのある手塗りの塗料もしくはインクなどの、表面の色が均一ではない物である。なお、対象物230は、色が均一ではない物に限定されず、任意の物が対象物230になり得る。対象物230は、例えば手作業または製造ラインによって量産される製品であり得る。その場合、製品ごとに色のばらつきが生じ得る。このため、生産された対象物230ごとに、本実施形態における色識別処理が実行され、色の良否の判定が行われる。以下の説明では、一例として、対象物230が地紋や折り目などがある布地であるものとする。
【0031】
システム100は、信号処理装置110と、照明装置120と、撮像装置140と、制御装置160と、ディスプレイ220とを備えている。制御装置160は、信号処理装置110、照明装置120、および撮像装置140に接続されている。ディスプレイ220は、信号処理装置110に接続されている。
【0032】
この例における照明装置120は、対象物230を載置することが可能な発光面を有しており、発光面から可視光を発する。照明装置120は、例えば白色光を出射する複数の発光ダイオード(LED)のアレイによって実現され得る。LEDに限らず、例えば蛍光灯または有機発光素子などの光源によって照明装置120が実現されていてもよい。発光面は、対象物230を置くための台として機能する。照明装置120は、白色光を、対象物230の背面側から撮像装置140に向かって出射する。照明装置120が発する白色光は特に限定されないが、例えばD50光源からの光のスペクトルに近い白色光が使用され得る。
【0033】
本実施形態のような透過型の照明装置120は、対象物230が布地や紙などの薄い物である場合に使用され得る。透過型の照明装置120に代えて、反射型の照明装置を設けてもよい。なお、照明装置120は、必要に応じて配置される。外部の照明または自然光などを利用できる場合には、照明装置120を設ける必要はない。
【0034】
撮像装置140は、可視光の波長域に感度を有するイメージセンサを備える。
図1に示す例では、撮像装置140は、照明装置120から出射され、対象物230を透過した光を受ける位置に配置されている。撮像装置140は、対象物230を撮像して、赤(R)、緑(G)、青(B)の各色の情報を有するRGB画像信号を出力する。撮像装置140は、典型的には、R、G、Bの3種類のカラーフィルタが画素ごとに配置されたイメージセンサを備える。撮像装置140が出力するRGB画像信号は、各画素がR、G、Bの3つの画素値を有する複数の画素を含む2次元のRGB画像のデータである。
【0035】
制御装置160は、制御装置160は、信号処理装置110、照明装置120、および撮像装置140を制御する装置である。制御装置160は、照明装置120による発光、撮像装置140による撮像、および信号処理装置110による信号処理のタイミングを制御する。制御装置160は、例えば汎用または専用のコンピュータである。
【0036】
信号処理装置110は、撮像装置140から出力された画像データを処理する装置である。信号処理装置110は、例えば汎用または専用のコンピュータである。信号処理装置110は、CPU(Central Processing Unit)またはGPU(Graphics Processing Unit)などのプロセッサ(処理回路)112と、メモリ114などの記録媒体と、入出力インタフェース(IF)116とを備えている。信号処理装置110は、撮像装置140から出力された画像信号を処理して対象物230の色を識別し、識別結果をディスプレイ220に出力する。この動作は、プロセッサ112がメモリ114に格納されたコンピュータプログラムを実行することによって実現される。
【0037】
制御装置160および信号処理装置110は、1台のコンピュータによって実現されていてもよい。信号処理装置110の機能の少なくとも一部が撮像システム100から遠く離れた場所に設置されたコンピュータによって実行されてもよい。例えば、インターネットなどのネットワークを介して制御装置160に接続されたサーバコンピュータが、信号処理装置110の少なくとも一部の機能を実行してもよい。
【0038】
ディスプレイ220は、信号処理装置110からの指示により、色の識別結果を表示する。ディスプレイ220は、例えばCRT、液晶、または有機ELなどのモニターである。
【0039】
図1に示す構成に代えて、
図2に示す構成を採用してもよい。
図2は、反射型の照明装置120が設けられた構成の一例を示す図である。この例では、照明装置120は、撮像装置140の近傍に配置されている。照明装置120は、赤(R)、緑(G)、青(B)の波長域の光をそれぞれ発する3つの光源を備えている。各光源は、例えばLED光源である。この例では、撮像装置140は、モノクロのイメージセンサを備えていてもよい。すなわち、イメージセンサは、画素ごとにR、G、Bのカラーフィルタを備えている必要はない。制御装置160は、照明装置120に、R、G、Bの光源を順次点灯させ、撮像装置140に、各色の画像を取得させる。そのようにして取得されたR、G、Bの3つの画像信号を合成することにより、画素ごとにR、G、Bの画素値を有するカラー画像のデータを生成することができる。
【0040】
[2.動作]
図3は、信号処理装置110によって実行される処理の概要を示すフローチャートである。本実施形態においては、対象物230の色の良否を判定する処理の事前準備として、対象物230の色の登録処理が行われる(ステップS10)。この登録処理では、信号処理装置110は、後述する処理により、対象物230の色を示す数値を決定し、当該数値を参照値としてメモリ114などの記録媒体に記録する。登録処理が完了した後、色が登録された対象物230と同じ種類の対象物230の色判定処理(ステップS20)が行われる。各処理の具体例を説明する。
【0041】
[2−1.色登録処理]
図4は、ステップS10における色登録処理の流れを示すフローチャートである。信号処理装置110におけるプロセッサ112は、ステップS101からS107を実行することにより、対象物230の色を登録する。
【0042】
ステップS101に先立って、対象物230が撮像装置140によって撮影される。撮影は、環境光の影響を抑えるために、例えば暗室で行われ得る。この撮影により、撮像装置140から、対象物230のRGBの画像データが出力され、信号処理装置110のメモリ114に記録される。
【0043】
ステップS101において、プロセッサ112は、撮像装置140によって生成されたRGB画像データをメモリ114から取得する。
【0044】
ステップS102において、プロセッサ112は、取得したRGB画像データから、複数(n個)の画素ブロックを抽出する。抽出される画素ブロックの数nは、3以上の任意の数に設定され得る。ある例において、nは100程度の数に設定され得る。
【0045】
図5および
図6は、画素ブロックの抽出処理の例を説明するための図である。画素ブロックの抽出処理は、例えば以下のようにして行われ得る。
(1)RGB画像の中から、n個(例えば100個)の点を選択する。
図5は、RGB画像310から選択されるn個の点の例を示している。
図5における+印は、選択される点を示している。
図5における色の濃い領域230iは、対象物230を示す領域である。n個の点は、
図5に示すように縦方向および横方向のそれぞれについて一定の間隔で選択されてもよいし、ランダムに選択されてもよい。
図5の例において、n個の点の一部は、対象物を示す領域230iの内部にあり、残りの点は当該領域230iの外部にある。このように、選択されるn個の点の全てが対象物を示す領域230iの内部にある必要はない。
(2)選択されたn個の点のそれぞれを中心に、その周囲の一定の面積(例えば100画素程度)の画素ブロックを抽出する。
図6は、抽出されたn個の画素ブロックの例を示す図である。
図6において、□印の領域が画素ブロックを示している。
図6に示す例では、n個の画素ブロックのいずれも、他の画素ブロックに重なっていないが、画素ブロック間で重なりが生じていてもよい。また、画素ブロックごとに大きさが異なっていてもよい。
【0047】
ステップS103において、プロセッサ112は、各画素ブロックの画像を平滑化(または平均化)し、R、G、Bのそれぞれの色の代表値を決定する。例えば、各画素ブロックのR、G、Bそれぞれの画像データを、所定のサイズの平滑化フィルタを用いて平滑化することにより、各色の代表値を決定する。より具体的には、3×3画素または5×5画素などのサイズをもつ平均化フィルタ、加重平均化フィルタ、またはガウシアンフィルタなどの平滑化フィルタを用いて、各画素ブロックの画像データを平滑化できる。平滑化の処理は、複数回行われてもよい。平滑化を行うことにより、各画素ブロックのR、G、Bの値が平均化される。プロセッサ112は、画素ブロックごとに、R、G、Bのそれぞれについて、平均化された1つの値を代表値として決定する。なお、平滑化フィルタを用いる代わりに、単純に各画素ブロック内の複数の画素のR、G、Bのそれぞれの画素値の平均値を代表値としてもよい。ステップS103により、複数の画素ブロックの各々について、R、G、Bの平均化されたデータが得られる。
【0048】
ステップS105において、プロセッサ112は、n個の画素ブロックの各々について、R、G、Bのそれぞれの画素値の代表値を、CIE−L
*a
*b
*表色系におけるL
*、a
*、b
*のデータに変換する。この変換は、例えば、以下のようにして行われる。プロセッサ112はまず、R、G、BのデータをCIE−XYZ表色系におけるX、Y、Zのデータに変換する。この変換は、既知の変換行列を用いて行われる。例えば、赤、緑、青の値をそれぞれR、G、Bとして、以下の数1〜3の変換式によってX、Y、Zの値が得られる。
【数1】
【数2】
【数3】
ここで変換係数K
11、K
12、K
13、K
21、K
22、K
23、K
31、K
32、K
33は、撮像システムに依存して適切な値に設定される。
【0049】
次に、プロセッサ112は、X、Y、Zのデータを、以下の数4〜6の変換式により、L
*、a
*、b
*のデータに変換する。
【数4】
【数5】
【数6】
ここで、変換係数Kl、Ka、Kb、Olは、撮像システムに依存して適切な値に設定される。X
0、Y
0、Z
0は、標準光の下での標準白色の三刺激値を表す。
【0050】
このように、プロセッサ112は、各画素ブロックにおけるR、G、Bの値を、RGB色空間とは異なるL
*a
*b
*色空間における3つの値L
*、a
*、b
*に変換する。以下、この3つの値をL
*a
*b
*データと称する。この変換により、色空間内での距離差を、方向によらず人間が知覚する色差に合わせることができる。
【0051】
ステップS105において、プロセッサ112は、n個の画素ブロックの各々について、L
*a
*b
*データが示すL
*a
*b
*色空間上での点と、他の全ての画素ブロックにおけるL
*a
*b
*データが示すL
*a
*b
*色空間上での点との距離の総和を計算する。この処理について、
図7および
図8を参照して説明する。
【0052】
図7および
図8は、n個の画素ブロックのL
*a
*b
*データが示すL
*a
*b
*色空間上での複数の点の一例を模式的に示している。この例では簡単のため、aからeの5個の点が図示されている。
図7には、点aと、他の全ての点との距離が矢印で示されている。
図8には、点bと、他の全ての点との距離が矢印で示されている。他の点c、d、eについても同様に、L
*a
*b
*色空間上での距離が規定される。プロセッサ112は、L
*a
*b
*色空間上のn個の点のそれぞれについて、他の全ての点との距離の総和を計算する。n個の画素ブロックのうちのi番目(iは、1以上n以下の整数)の画素ブロックのL
*、a
*、b
*の値をそれぞれL
i、a
i、b
iとすると、プロセッサ112は、以下の数7で表される距離の総和Siを、全ての画素ブロックについて計算する。
【数7】
【0053】
ステップS106において、プロセッサ112は、n個の画素ブロックの中から、ステップS105において計算した距離の総和が小さいものから順にm個(mは2以上n未満の整数)の画素ブロックを選択する。mは、例えばnの数十分の1から数分の1程度の数に設定され得る。nが例えば100である場合、mは例えば20程度の数に設定され得る。
【0054】
図9は、L
*a
*b
*色空間上でのn個の点から、他の点との距離の総和が相対的に小さいm個の点320の例を示す図である。
図9に示すように、ステップS106により、他の点との距離の総和が相対的に大きい点が排除され、距離の総和が相対的に小さい一部の点320のみが残される。上記の処理により、L
*a
*b
*色空間上で点が密集した部分にあるm個の点のデータが採用される。色空間をL
*a
*b
*とすることで、効果的に近似色のみを抽出することができる。
【0055】
ステップS107において、プロセッサ112は、選択したm個の画素ブロックにおけるL
*、a
*、b
*のそれぞれの値の平均値を計算し、当該平均値をメモリ114に参照値として記録する。なお、平均値に代えて、m個の画素ブロックにおけるL
*、a
*、b
*の値に基づいて決定される他の代表値を記録してもよい。ここで記録されるL
*、a
*、b
*の参照値を、それぞれL
r、a
r、b
rとする。
【0056】
以上の処理により、対象物230の色の登録が完了する。記録された参照値L
r、a
r、b
rは、その対象物230の基準色を表し、同種の他の対象物230の色の判定処理(ステップS20)において参照される。
【0057】
[2−2.色判定処理]
続いて、
図3に示すステップS20の色判定処理を説明する。
【0058】
図10は、色判定処理の流れを示すフローチャートである。色判定処理は、ステップS201からS209を含む。ステップS201からS207の処理は、それぞれ、
図4に示すステップS101からS107の処理と同様である。このため、ステップS201からS207の処理の詳細な説明は省略する。プロセッサ112は、ステップS201からS207の処理により、検査対象の対象物230のRGB画像データから、L
*、a
*、b
*のそれぞれの平均値を計算する。この計算したL
*、a
*、b
*の平均値を、それぞれ測定値L
m、a
m、b
mとする。その後、ステップS208およびS209において、測定値L
m、a
m、b
mと、予め記録された参照値L
r、a
r、b
rとの比較を行い、対象物230の色の良否を判定する。以下、ステップS208およびS209の処理をより詳細に説明する。
【0059】
ステップS208において、プロセッサ112は、ステップS207で計算したL
*、a
*、b
*のそれぞれの平均値L
m、a
m、b
mが示すL
*a
*b
*色空間上での点と、予め記録されたL
*、a
*、b
*のそれぞれの参照値L
r、a
r、b
rが示すL
*a
*b
*色空間上での点との距離を計算する。この距離は色差に相当し、ΔEで表される。色差ΔEは、以下の式によって計算される。
【数8】
【0060】
このように、本明細書において、2つの色の「色差」は、色空間における当該2つの色の距離を意味する。本実施形態のようにRGBからL
*a
*b
*への変換が行われる場合、L
*a
*b
*色空間における距離ΔEが色差に該当する。他の変換が行われる場合は、他の色空間における距離が色差として計算される。なお、ΔEに代えて、(ΔE)
2を色差として用いてもよい。
【0061】
ステップS209において、プロセッサ112は、計算した距離ΔEに応じて、対象物230の色の良否を判定し、判定結果を出力する。判定結果は、ディスプレイ220に表示される。ΔEは一次元の数値であり、各次元の重みが均等になっているため色彩の差を表す数値として優れている。このため、ΔEは基準色からの差異の測定および合否の判定に便利である。ΔEの値のみをディスプレイ220に表示してもよい。しかし、この数値を基にいくつかの閾値を設けることで、合否判定またはクラス分けなどを行うことができる。例えば、ΔEが閾値未満であれば「合格」、閾値以上であれば「不合格」とすることができる。あるいは、ΔEが第1の閾値未満であれば「ランクA」、第1の閾値以上かつ第2の閾値未満であれば「ランクB」、第2の閾値以上第3の閾値未満であれば「ランクC」、といったクラス分けを行ってもよい。
【0062】
図11は、良否判定の方法の例を示す図である。
図11の(a)は、ΔEと1つの閾値との比較に基づく合否判定の例を示している。
図11の(b)は、ΔEと複数の閾値との比較に基づくランク判定の例を示している。(a)の例では、閾値を1.0とし、ΔE<1.0であれば「合格(OK)」、ΔE≧1.0であれば「不合格(NG)」と判定される。(b)の例では、3つの閾値0.5、1.0、および1.5が設定され、ΔE<0.5であれば「ランクA」、0.5≦ΔE<1.0であれば「ランクB」、1.0≦ΔE<1.5であれば「ランクC」、ΔE>1.5であれば「不合格(NG)」と判定される。閾値の数は4つ以上であってもよい。閾値の数が多いほど、より多くのクラスに分類することができる。
【0063】
上記の例において、各閾値を手動で設定してもよいが、各閾値の決定には様々な条件を考慮する必要があり、容易に決定できない場合がある。一方、本実施形態では、基準色を測定して登録する処理において、多くの点のデータが得られている。そのため、標準偏差などの統計データから、被測定物の色の許容差をあらかじめ知ることができる。したがって、標準偏差などの統計データに基づいて、各閾値を決定することができる。それにより、より適切な良否判定が可能になる。
【0064】
図12は、統計データに基づく良否判定の例を示す概念図である。
図12には、ステップS104またはS204において得られた統計データ(すなわちn個のL
*a
*b
*データ)から決定された、L
*a
*b
*色空間中の2つの球330、340が例示されている。内側の球330は、例えばL
*、a
*、b
*のいずれかの統計データの標準偏差σを半径とする球であり得る。外側の球340は、例えばL
*、a
*、b
*のいずれかの統計データの標準偏差σの1.3倍を半径とする球であり得る。測定値L
m、a
m、b
mが示す点が内側の球330の内部にあれば「高ランク品」、内側の球330の外部で且つ外側の球340の内部にあれば「低ランク品」、外側の球340の外部にあれば「不良品」といった判定が可能である。
図12の例では、2つの球330、340がL
*a
*b
*色空間中に規定されるが、1つまたは3つ以上の球または他の立体(例えば楕円体)が規定されてもよい。1つの立体が規定される場合、測定データの点が、当該立体の内部にあれば「良品」、外部にあれば「不良品」と判定できる。また、3つ以上の立体が規定される場合、4つ以上のクラスに被測定物を分類することができる。
【0065】
[2−3.変換係数の決定方法]
次に、前述の数1〜6における変換係数K11、K12、K13、K21、K22、K23、K31、K32、K33、Kl、Ka、Kb、Olを決定する方法の例を説明する。本実施形態では、これらの変換係数を、誤差逆伝搬法などの機械学習アルゴリズムを利用して決定する。変換係数の決定は、
図3に示す色登録処理の前に予め実行され得る。変換係数の決定には、予め複数の色見本を配列したカラーチャートが用いられ得る。例えば、
図13に示すマクベスカラーチェッカー(Macbeth Color Checker)が用いられ得る。マクベスカラーチェッカーでは、24個の矩形の色見本が表のように2次元的に配列されている。各色見本の色は既知である。
【0066】
このようなカラーチャートを、実際に使用されるデバイスを用いて撮像し、その結果得られた色データが既知の色データと一致していればよい。しかし、通常、そのままの状態で一致することはなく、調整を行う必要がある。本実施形態では、この調整を、色空間の変換時に用いられる前述の数1〜6における各変換係数を変化させることによって行う。
【0067】
通常の方法では、多くの係数を多くの色に対して最適に調整することは難しい。このため、一般には、代表的な数色(例えば、赤、緑、青など)に限定して調整される。本実施形態では、この調整時に、誤差逆伝播法を用い、既知の多数の色について機械学習を行う。これにより、多くの色について、規定値または理論値に近似した測定を行うことができる。
【0068】
以下、この調整方法の一例を説明する。以下の説明において、処理の主体は、信号処理装置110におけるプロセッサ112である。
(a)まず、カラーチャートにおける1つの色見本について、撮像を行う。そして、
図4に示すステップS101からS103と同様の処理を実行する。これにより、n個の画素ブロックの各々について、R、G、Bの各色の代表値が決定される。
(b)次に、前述の数1〜6における各変換係数を仮の値に設定して、ステップS104からS107と同様の処理を実行する。これにより、L
*、a
*、b
*のそれぞれの値の代表値が得られる。これらの代表値を実測値と呼ぶ。
(c)次に、L
*、a
*、b
*の実測値と、予め規定された当該色見本のL
*、a
*、b
*の値との誤差を計算する。誤差は、例えば前述の数8と同様の計算によって行われる。
(d)上記の(a)から(c)の処理を、カラーチャートの他の全ての色について順次実行する。これにより、色ごとに、L
*、a
*、b
*の実測値と規定値との誤差を計算する。
(e)それぞれの色について得られた誤差の和または二乗和を算出する。
(f)上記(b)における色変換処理で使用される各係数を変化させる。
【0069】
上記(a)から(f)の処理が繰り返し実行される。上記(f)における各係数の調整は、、誤差逆伝搬法などの機械学習アルゴリズムを用いて実行される。上記(e)で得られる誤差の和または二乗和が小さくなるように各係数が調整される。誤差の和または二乗和が最も小さくなるときに使用された係数を、ステップS104およびS204において実際に使用する係数として設定する。
【0070】
以上の処理により、色の識別精度を大幅に向上させることができる。
図14は、上記の係数調整方法による効果を示す図である。
図14は、機械学習を利用した場合と利用しなかった場合のそれぞれについての、マクベスカラーチェッカーの各色の実測値と規定値との誤差の例を示している。
図14に示すように、上記の機械学習を利用して各係数を調整することにより、各色の誤差を、数分の1以下に低減することができる。これにより、色の識別精度を大幅に向上させることができる。
【0071】
なお、本実施形態では、信号処理装置110のプロセッサ112が、上記の機械学習を利用した係数の調整を実行するが、この処理の一部または全部を外部のサーバが実行してもよい。そのようなサーバは、例えばインターネットなどのネットワークを介して信号処理装置110に接続されていてもよい。係数の決定を外部のサーバに実行させることにより、信号処理装置110の規模を小さくでき、撮像システム100を小型化することができる。
【0072】
本実施形態では、信号処理装置110は、RGB値からXYZ値への変換を行い、さらにL
*a
*b
*値への変換を行い、計測されたL
*a
*b
*値と、予め登録されたL
*a
*b
*値とから計算される距離(すなわち色差)を計算する。しかし、L
*a
*b
*値への変換に限らず、他の色空間における値への変換を行ってもよい。例えば、XYZまたはL
*u
*v
*などへの変換を行い、前述と同様の処理を適用してもよい。その場合、当該他の色空間における距離を色差として扱えばよい。
【0073】
[3.効果]
以上のように、本実施形態によれば、信号処理装置110は、対象物230の色の登録処理と、色判定処理とを行う。登録処理において、信号処理装置110は、撮像装置140から取得したRGB画像データが示す画像から、n個の画素ブロックを決定し、画素ブロックごとにR、G、Bのそれぞれの画素値の代表値(例えば平均値)を決定する。そして、各画素ブロックについて、R、G、Bのそれぞれの画素値の代表値を、RGB色空間とは異なる第2の色空間(例えばL
*a
*b
*色空間)における3つの値(例えばL
*、a
*、b
*値)に変換する。さらに、各画素ブロックについて、当該3つの値が示す第2の色空間上での点と、n個の画素ブロックに含まれる他の全ての画素ブロックについての当該3つの値が示す第2の色空間上での点との距離の総和を計算する。n個の画素ブロックのうち、距離の総和が小さいものから順に選択されたm個の画素ブロックにおける上記3つの値のそれぞれの代表値(例えば平均値)を計算して参照値として出力する。以上の処理が、色の登録が必要な全ての対象物について実行され得る。色判定処理において、信号処理装置110は、被測定物である対象物についても上記と同様の方法で、第2の色空間における3つの値のそれぞれの代表値を測定値として計算する。そして、測定値が示す前記第2の色空間上での点と、予め記録された参照値が示す第2の色空間上での点との距離を計算する。信号処理装置は、当該距離に応じて、対象物の色の良否を判定し、判定結果を出力する。
【0074】
以上の処理によれば、n個の画素ブロックのうち、距離の総和が小さいものから順に選択されたm個の画素ブロックにおける上記3つの値のそれぞれの代表値が計算される。これにより、n個の画素ブロックのうち、色が類似する一部の画素ブロックのみが選択され、当該一部の画素ブロックのデータのみに基づいて上記3つの値の代表値が決定される。このような処理により、例えば地紋や折り目などがある布地や紙(特に繊維が大きいもの)などの、表面の色彩が均一ではない対象物の色の識別または評価をより正確に行うことができる。
【0075】
従来の色彩測定では、測定結果がXYZ表色系またはLab表色系などの3次元以上の標準表色系で表現される場合が多かった。しかし、そのような表現は一般的に理解しにくく、対象物の色の評価が難しい。例えば製造現場の検査工程において製造物の色を測定し、測定結果に基づいて製造物の合否の判定を行う場合、従来の方法では合否の判定が難しく、また製造工程へのフィードバックも難しい。本実施形態によれば、対象物の色の良否の判定結果が、例えば「合格」、「不合格」、または、「ランクA」、「ランクB」、「ランクC」といったわかり易い態様で表示される。このため、製造物の色の評価を容易に行うことができ、例えば製造工程へのフィードバックが容易になる。
【0076】
また、本実施形態によれば、R、G、Bのそれぞれの画素値の代表値を、第2の色空間における3つの値に変換するときに使用される変換係数を、機械学習によって決定する。これにより、色の識別性能を大幅に向上させることができる。
【0077】
従来、精度が要求される色彩測定では、予め規定されたカラーフィルタを有するカメラ、または照明を使用することが要求される。例えばR、G、Bの3原色の撮影では、それぞれの色の波長が規定されており、国際照明委員会(Commission internationale de l’eclairage:CIE)では、赤(R):700.0[nm]、緑(G):546.1[nm]、青(B):435.8[nm]と定められている。本来であれば、これらの前提条件のもとにRGBからXYZへの変換や、XYZからL
*a
*b
*への変換が行われる。
【0078】
本技術では、色彩の絶対値評価を目的としていないので、正確にこれらの規格に合わせる必然性はない。しかし、幅広い色彩の対象物を均一の感度で測定するためには、これらの標準的な波長による測定が望ましいといえる。
【0079】
一方で、一般的に使用されるLEDやカメラなどの物理デバイスが、必ずしも規定値どおりの特性を持っているとは限らない。規定値に近いものは一般的に大型で高価になりやすく、特に限定されたコストやサイズの中では、理想的な理論値に近づけることは難しい。既知の色を実デバイスで撮影し、その結果に基づいて、変換式の各係数を補正する方法も考えられるが、パラメータが多く、多彩な色に合わせこむことは難しい。このため、代表的な色や使用頻度の高い色に限って行われている場合が多い。
【0080】
これに対し、本実施形態の方法では、誤差逆伝搬法などの機械学習アルゴリズムを利用して、各変換式の各係数が最適化される。このため、実際に使用されるデバイスに依存せずに最適な係数を決定することができる。
【0081】
[4.変形例]
次に、上記の実施形態の変形例を説明する。
【0082】
上記の実施形態では、画像として、対象物を撮像することによって生成された、各々がR、G、Bの3つの色にそれぞれ対応する3つの画素値を有する複数の画素を含むRGB画像が用いられる。しかし、画像は、RGB画像に限らず、単色、2色、または4色以上の画像であってもよい。上記の実施形態では、各画素ブロックにおける各色の画素値の代表値が、R、G、Bによって構成される第1の色空間とは異なる第2の色空間(例えばL
*a
*b
*色空間など)に変換される。しかし、そのような変換処理を省略してもよい。その場合であっても、各画素ブロックについて、1つ以上の色のそれぞれの画素値の代表値と、n個の画素ブロックに含まれる他の全ての画素ブロックについての当該1つ以上の色のそれぞれの画素値の代表値との差の程度を示す値の総和が計算される。そして、n個の画素ブロックのうち、当該差の程度を示す値の総和が小さいものから順に選択されたm個(mは2以上n未満の整数)の画素ブロックにおける1つ以上の色のそれぞれの画素値の代表値に基づく1つの色を示す値が決定される。このような処理により、対象物の色または濃度を適切に評価することができる。
【解決手段】対象物の色を数値化する方法は、各々が複数の色に対応する1つ以上の画素値を取得しS101、画像からn個の画素ブロックを抽出しS102、各画素ブロックについて、1つ以上の色のそれぞれの代表値を決定しS103、各画素ブロックについて、第2の色空間上で、1つ以上の色のそれぞれの画素値の代表値と、他の全ての画素ブロックについての1つ以上の色のそれぞれの画素値の代表値との差の程度を示す値の総和を計算しS105、n個の画素ブロックのうち、差の程度を示す値の総和が小さいものから順に選択されたm個(mは2以上n未満の整数)の画素ブロックにおける1つ以上の色のそれぞれの画素値の代表値に基づく1つの色を示す値を決定して出力するS107。