(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-01-08
(45)【発行日】2025-01-17
(54)【発明の名称】取得方法、取得システム、および、コンピュータプログラム
(51)【国際特許分類】
G06T 7/90 20170101AFI20250109BHJP
G06T 7/00 20170101ALI20250109BHJP
【FI】
G06T7/90 D
G06T7/00 350C
G06T7/00 610C
(21)【出願番号】P 2020199165
(22)【出願日】2020-11-30
【審査請求日】2023-11-17
(73)【特許権者】
【識別番号】000005267
【氏名又は名称】ブラザー工業株式会社
(74)【代理人】
【識別番号】110001058
【氏名又は名称】鳳国際弁理士法人
(72)【発明者】
【氏名】近藤 真樹
【審査官】藤原 敬利
(56)【参考文献】
【文献】特開2019-091249(JP,A)
【文献】特開2020-027424(JP,A)
【文献】特開2012-119816(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G01N 21/84-21/958
G06T 7/00- 7/90
G06V 10/00-20/90
(57)【特許請求の範囲】
【請求項1】
対象物の外観の不具合に関するデータの取得方法であって、
色の基準を示す色補正パラメータを用いて、注目対象物の撮影画像を示す注目撮影画像データの色を補正する補正工程と、
対象物の撮影画像を示す撮影画像データと前記対象物の外観の不具合に関する不具合データとの関係を示すようにトレーニングされた機械学習モデルに、補正済の注目撮影画像データを入力することによって、前記注目対象物の外観の不具合に関する注目不具合データを前記トレーニングされた機械学習モデルから取得する取得工程と、
を備え
、
前記トレーニングされた機械学習モデルは、複数のパラメータを含み、
前記トレーニングされた機械学習モデルの前記複数のパラメータは、複数の学習用撮影画像データを前記機械学習モデルに入力することによって取得される複数の不具合データを用いて、調整されており、
前記色補正パラメータは、前記複数の学習用撮影画像データを用いて算出されている、
取得方法。
【請求項2】
請求項
1に記載の取得方法であって、
前記色補正パラメータを用いて補正された複数の確認用撮影画像データを調整済の複数のパラメータを有する前記機械学習モデルに入力することによって取得される複数の不具合データと、前記複数の確認用撮影画像データにそれぞれ対応付けられた複数の教師データと、の間の差を示す損失が基準以下であることを含む条件が満たされるように、前記トレーニングされた機械学習モデルの前記複数のパラメータは調整されている、
取得方法。
【請求項3】
対象物の外観の不具合に関するデータの取得方法であって、
色の基準を示す色補正パラメータを用いて、注目対象物の撮影画像を示す注目撮影画像データの色を補正する補正工程と、
対象物の撮影画像を示す撮影画像データと前記対象物の外観の不具合に関する不具合データとの関係を示すようにトレーニングされた機械学習モデルに、補正済の注目撮影画像データを入力することによって、前記注目対象物の外観の不具合に関する注目不具合データを前記トレーニングされた機械学習モデルから取得する取得工程と、
を備え
、
前記色補正パラメータは、予め決められており、
前記トレーニングされた機械学習モデルは、複数のパラメータを含み、
前記トレーニングされた機械学習モデルの前記複数のパラメータは、前記色補正パラメータを用いて補正された複数の学習用撮影画像データを前記機械学習モデルに入力することによって取得される複数の不具合データを用いて、調整されている、
取得方法。
【請求項4】
請求項1から
3のいずれかに記載の取得方法であって、
前記色補正パラメータは、明度基準と、ホワイトバランス基準と、を示し、
前記補正工程は、
前記注目撮影画像データの明度を前記明度基準に近づける明度補正処理を行う工程と、
前記注目撮影画像データのホワイトバランスを前記ホワイトバランス基準に近づけるホワイトバランス補正処理を行う工程と、
を含む、取得方法。
【請求項5】
請求項
4に記載の取得方法であって、
前記明度基準は、CIELAB色空間のL*成分の基準を示し、
前記ホワイトバランス基準は、前記CIELAB色空間のa*成分の基準とb*成分の基準とを示し、
前記明度補正処理は、前記注目撮影画像データの前記L*成分を前記L*成分の前記基準を用いて補正する処理を含み、
前記ホワイトバランス補正処理は、
前記注目撮影画像データの前記a*成分を前記a*成分の前記基準を用いて補正する処理と、
前記注目撮影画像データの前記b*成分を前記b*成分の前記基準を用いて補正する処理と、
を含む、取得方法。
【請求項6】
対象物の外観の不具合に関するデータの取得する取得システムであって、
色の基準を示す色補正パラメータを用いて、注目対象物の撮影画像を示す注目撮影画像データの色を補正する補正部と、
対象物の撮影画像を示す撮影画像データと前記対象物の外観の不具合に関する不具合データとの関係を示すようにトレーニングされた機械学習モデルに、補正済の注目撮影画像データを入力することによって、前記注目対象物の外観の不具合に関する注目不具合データを前記トレーニングされた機械学習モデルから取得する取得部と、
を備え
、
前記トレーニングされた機械学習モデルは、複数のパラメータを含み、
前記トレーニングされた機械学習モデルの前記複数のパラメータは、複数の学習用撮影画像データを前記機械学習モデルに入力することによって取得される複数の不具合データを用いて、調整されており、
前記色補正パラメータは、前記複数の学習用撮影画像データを用いて算出されている、
取得システム。
【請求項7】
対象物の外観の不具合に関するデータの取得する取得システムであって、
色の基準を示す色補正パラメータを用いて、注目対象物の撮影画像を示す注目撮影画像データの色を補正する補正部と、
対象物の撮影画像を示す撮影画像データと前記対象物の外観の不具合に関する不具合データとの関係を示すようにトレーニングされた機械学習モデルに、補正済の注目撮影画像データを入力することによって、前記注目対象物の外観の不具合に関する注目不具合データを前記トレーニングされた機械学習モデルから取得する取得部と、
を備え
、
前記色補正パラメータは、予め決められており、
前記トレーニングされた機械学習モデルは、複数のパラメータを含み、
前記トレーニングされた機械学習モデルの前記複数のパラメータは、前記色補正パラメータを用いて補正された複数の学習用撮影画像データを前記機械学習モデルに入力することによって取得される複数の不具合データを用いて、調整されている、
取得システム。
【請求項8】
対象物の外観の不具合に関するデータの取得するコンピュータのためのコンピュータプログラムであって、
色の基準を示す色補正パラメータを用いて、注目対象物の撮影画像を示す注目撮影画像データの色を補正する補正機能と、
対象物の撮影画像を示す撮影画像データと前記対象物の外観の不具合に関する不具合データとの関係を示すようにトレーニングされた機械学習モデルに、補正済の注目撮影画像データを入力することによって、前記注目対象物の外観の不具合に関する注目不具合データを前記トレーニングされた機械学習モデルから取得する取得機能と、
をコンピュータに実現させ
、
前記トレーニングされた機械学習モデルは、複数のパラメータを含み、
前記トレーニングされた機械学習モデルの前記複数のパラメータは、複数の学習用撮影画像データを前記機械学習モデルに入力することによって取得される複数の不具合データを用いて、調整されており、
前記色補正パラメータは、前記複数の学習用撮影画像データを用いて算出されている、
コンピュータプログラム。
【請求項9】
対象物の外観の不具合に関するデータの取得するコンピュータのためのコンピュータプログラムであって、
色の基準を示す色補正パラメータを用いて、注目対象物の撮影画像を示す注目撮影画像データの色を補正する補正機能と、
対象物の撮影画像を示す撮影画像データと前記対象物の外観の不具合に関する不具合データとの関係を示すようにトレーニングされた機械学習モデルに、補正済の注目撮影画像データを入力することによって、前記注目対象物の外観の不具合に関する注目不具合データを前記トレーニングされた機械学習モデルから取得する取得機能と、
をコンピュータに実現させ
、
前記色補正パラメータは、予め決められており、
前記トレーニングされた機械学習モデルは、複数のパラメータを含み、
前記トレーニングされた機械学習モデルの前記複数のパラメータは、前記色補正パラメータを用いて補正された複数の学習用撮影画像データを前記機械学習モデルに入力することによって取得される複数の不具合データを用いて、調整されている、
コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、対象物の外観の不具合に関するデータを取得する技術に関する。
【背景技術】
【0002】
従来から、撮影画像が種々の処理に利用されている。例えば、特許文献1は、以下の技術を提案している。移動環境に配置されたマーカを撮影し、そのマーカを用いて移動体の現在位置を取得する。また、撮影画像を学習器に適用することによって、基準照明条件で撮影されたように補正された撮影画像を取得する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、機械学習モデルは、プリンタやスキャナなどの種々の製品の外観の検査にも用いられる。例えば、検査の対象物の撮影画像データが、機械学習モデルに入力される。機械学習モデルは、対象物の外観の不具合に関する不具合データを出力する。不具合データは、例えば、良否の判定結果、検出された傷の画像、などを示している。ここで、対象物の撮影環境は、種々に変化し得るので、種々の撮影画像データが生成され得る。この結果、撮影画像データによっては、機械学習モデルから適切な不具合データを取得できない場合があった。
【0005】
本明細書は、適切な不具合データを取得する技術を開示する。
【課題を解決するための手段】
【0006】
本明細書に開示された技術は、以下の適用例として実現することが可能である。
【0007】
[適用例1]対象物の外観の不具合に関するデータの取得方法であって、色の基準を示す色補正パラメータを用いて、注目対象物の撮影画像を示す注目撮影画像データの色を補正する補正工程と、対象物の撮影画像を示す撮影画像データと前記対象物の外観の不具合に関する不具合データとの関係を示すようにトレーニングされた機械学習モデルに、補正済の注目撮影画像データを入力することによって、前記注目対象物の外観の不具合に関する注目不具合データを前記トレーニングされた機械学習モデルから取得する取得工程と、を備える、取得方法。
【0008】
この構成によれば、色の基準を示す色補正パラメータを用いて注目撮影画像データの色が補正され、補正済の注目撮影画像データが機械学習モデルに入力されるので、注目撮影画像データの色が基準からずれ得る場合に、適切な不具合データを取得できる。
[適用例2]
適用例1に記載の取得方法であって、
前記トレーニングされた機械学習モデルは、複数のパラメータを含み、
前記トレーニングされた機械学習モデルの前記複数のパラメータは、複数の学習用撮影画像データを前記機械学習モデルに入力することによって取得される複数の不具合データを用いて、調整されており、
前記色補正パラメータは、前記複数の学習用撮影画像データを用いて算出されている、
取得方法。
[適用例3]
適用例2に記載の取得方法であって、
前記色補正パラメータを用いて補正された複数の確認用撮影画像データを調整済の複数のパラメータを有する前記機械学習モデルに入力することによって取得される複数の不具合データと、前記複数の確認用撮影画像データにそれぞれ対応付けられた複数の教師データと、の間の差を示す損失が基準以下であることを含む条件が満たされるように、前記トレーニングされた機械学習モデルの前記複数のパラメータは調整されている、
取得方法。
[適用例4]
適用例1に記載の取得方法であって、
前記色補正パラメータは、予め決められており、
前記トレーニングされた機械学習モデルは、複数のパラメータを含み、
前記トレーニングされた機械学習モデルの前記複数のパラメータは、前記色補正パラメータを用いて補正された複数の学習用撮影画像データを前記機械学習モデルに入力することによって取得される複数の不具合データを用いて、調整されている、
取得方法。
[適用例5]
適用例1から4のいずれかに記載の取得方法であって、
前記色補正パラメータは、明度基準と、ホワイトバランス基準と、を示し、
前記補正工程は、
前記注目撮影画像データの明度を前記明度基準に近づける明度補正処理を行う工程と、
前記注目撮影画像データのホワイトバランスを前記ホワイトバランス基準に近づけるホワイトバランス補正処理を行う工程と、
を含む、取得方法。
[適用例6]
適用例5に記載の取得方法であって、
前記明度基準は、CIELAB色空間のL*成分の基準を示し、
前記ホワイトバランス基準は、前記CIELAB色空間のa*成分の基準とb*成分の基準とを示し、
前記明度補正処理は、前記注目撮影画像データの前記L*成分を前記L*成分の前記基準を用いて補正する処理を含み、
前記ホワイトバランス補正処理は、
前記注目撮影画像データの前記a*成分を前記a*成分の前記基準を用いて補正する処理と、
前記注目撮影画像データの前記b*成分を前記b*成分の前記基準を用いて補正する処理と、
を含む、取得方法。
[適用例7]
対象物の外観の不具合に関するデータの取得する取得システムであって、
色の基準を示す色補正パラメータを用いて、注目対象物の撮影画像を示す注目撮影画像データの色を補正する補正部と、
対象物の撮影画像を示す撮影画像データと前記対象物の外観の不具合に関する不具合データとの関係を示すようにトレーニングされた機械学習モデルに、補正済の注目撮影画像データを入力することによって、前記注目対象物の外観の不具合に関する注目不具合データを前記トレーニングされた機械学習モデルから取得する取得部と、
を備える、取得システム。
[適用例8]
対象物の外観の不具合に関するデータの取得するコンピュータのためのコンピュータプログラムであって、
色の基準を示す色補正パラメータを用いて、注目対象物の撮影画像を示す注目撮影画像データの色を補正する補正機能と、
対象物の撮影画像を示す撮影画像データと前記対象物の外観の不具合に関する不具合データとの関係を示すようにトレーニングされた機械学習モデルに、補正済の注目撮影画像データを入力することによって、前記注目対象物の外観の不具合に関する注目不具合データを前記トレーニングされた機械学習モデルから取得する取得機能と、
をコンピュータに実現させる、コンピュータプログラム。
【0009】
なお、本明細書に開示の技術は、種々の態様で実現することが可能であり、例えば、機械学習モデルのトレーニング方法およびトレーニングを実行するトレーニング装置、撮影画像データとトレーニングされた機械学習モデルを用いる不具合データの生成方法および生成装置、撮影画像データとトレーニングされた機械学習モデルを用いる不具合の判断方法および判断装置、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体(例えば、一時的ではない記録媒体)、等の形態で実現することができる。
【図面の簡単な説明】
【0010】
【
図1】一実施例としての情報処理装置を示す説明図である。
【
図2】(A)、(B)は、撮影画像の例を示す概略図である。(C)-(E)は、撮影環境と撮影画像との説明図である。
【
図3】機械学習モデル238の例を示すブロック図である。
【
図4】トレーニング処理の例を示すフローチャートである。
【
図5】(A)は、平均明度値TLの算出式の例を示す説明図である。(B)は、第1平均ホワイトバランス値Taの算出式を示す説明図である。(C)は、第2平均ホワイトバランス値Tbの算出式を示す説明図である。(D)は、学習ロスの算出式の例を示す説明図である。(E)は、画像明度値PViLの算出式の例を示す説明図である。(F)は、平均値PViaの算出式の例を示す説明図である。(G)は、平均値PVibの算出式の例を示す説明図である。(H)は、確認ロスの算出式の例を示す説明図である。
【
図6】(A)は、補正処理の例を示すフローチャートである。(B)は、L*値の補正処理の例を示すグラフである。(C)は、補正式Ea、Ebを示す説明図である。
【
図9】トレーニング処理の第2実施例を示すフローチャートである。
【
図10】取得処理の第2実施例を示すフローチャートである。
【発明を実施するための形態】
【0011】
A.第1実施例:
A1.装置構成:
図1は、一実施例としての情報処理装置を示す説明図である。本実施例では、情報処理装置200は、例えば、パーソナルコンピュータである。情報処理装置200は、検査の対象物(例えば、プリンタなどの製品)の撮影画像を用いて、対象物の不具合に関するデータを取得する。情報処理装置200は、プロセッサ210と、記憶装置215と、表示部240と、操作部250と、通信インタフェース270と、を備えている。これらの要素は、バスを介して互いに接続されている。記憶装置215は、揮発性記憶装置220と、不揮発性記憶装置230と、を含んでいる。
【0012】
プロセッサ210は、データ処理を行うように構成された装置であり、例えば、CPUである。揮発性記憶装置220は、例えば、DRAMであり、不揮発性記憶装置230は、例えば、フラッシュメモリである。不揮発性記憶装置230は、プログラム231、232と、補正パラメータデータ237と、機械学習モデル238と、を格納している。
【0013】
機械学習モデル238は、対象物の撮影画像データを用いて対象物の不具合に関するデータを予測する予測モデルである。本実施例では、機械学習モデル238は、プログラムモジュールである。第1プログラム231は、機械学習モデル238のトレーニング処理のためのプログラムである。第2プログラム232は、対象物の撮影画像を用いて、対象物の不具合に関するデータを取得するためのプログラムである。補正パラメータデータ237は、撮影画像を補正するための補正パラメータを示している。プロセッサ210は、プログラム231、232の実行に使用される種々の中間データを、記憶装置215(例えば、揮発性記憶装置220、不揮発性記憶装置230のいずれか)に、一時的に格納する。プログラム231、232と、補正パラメータデータ237と、機械学習モデル238と、の詳細については、後述する。
【0014】
表示部240は、液晶ディスプレイ、有機ELディスプレイなどの、画像を表示するように構成された装置である。操作部250は、ボタン、レバー、表示部240上に重ねて配置されたタッチパネルなどの、ユーザによる操作を受け取るように構成された装置である。ユーザは、操作部250を操作することによって、種々の要求と指示を情報処理装置200に入力可能である。通信インタフェース270は、他の装置と通信するためのインタフェースである(例えば、USBインタフェース、有線LANインタフェース、IEEE802.11の無線インタフェース)。通信インタフェース270には、デジタルカメラ100が接続されている。デジタルカメラ100は、検査の対象物DVを撮影することによって、撮影画像の撮影画像データを生成する。対象物DVの撮影は、光源LSの下で行われる。以下、対象物DVがプリンタであることとする(対象物DVを、プリンタDVとも呼ぶ)。
【0015】
A2.撮影画像:
図2(A)、
図2(B)は、撮影画像の例を示す概略図である。撮影画像IMa、IMbは、第1方向Dxと、第1方向Dxに垂直な第2方向Dyと、に沿ってマトリクス状に並ぶ複数の画素のそれぞれの色値によって、表されている。幅W1は、第1方向Dxの画素数であり、高さH1は、第2方向Dyの画素数である。本実施例では、色値は、R(赤)、G(緑)、B(青)の3個の成分値で表されている。
【0016】
図2(A)の第1撮影画像IMaは、不具合の無い第1プリンタDVaを示している。具体的には、第1プリンタDVaには、ラベルLBが貼られており、第1撮影画像IMaは、ラベルLBの画像を含んでいる。
図2(B)の第2撮影画像IMbは、不具合を有する第2プリンタDVbを示している。具体的には、第2プリンタDVbには、ラベルLBが貼られておらず、第2撮影画像IMbは、ラベルLBの画像を含んでいない。このように、本実施例では、プリンタにラベルLBが貼られているか否かが、検査される。
【0017】
図2(C)-
図2(E)は、撮影環境と撮影画像との説明図である。
図2(C)-
図2(E)は、それぞれ、同じプリンタDVの撮影画像IMx、IMy、IMzを示している。これらの撮影画像IMx、IMy、IMzの間では、撮影時の光源LSx、LSy、LSzの状況が異なっている。以下に説明するように、複数の撮影画像の間で光源の状況が異なる場合、複数の撮影画像の間で撮影画像中のプリンタDVの色が異なり得る。例えば、蛍光ランプ、白熱ランプ、発光ダイオードのように、光源LSx、LSy、LSzの種類が互いに異なり得る。光源の光の分光分布は、光源の種類によって異なっている。従って、撮影画像IMx、IMy、IMzの間で、プリンタDVの色が異なり得る。また、光源LSx、LSy、LSzの間で、光源の種類が同じであるものの、総点灯時間が互いに異なり得る。光源の光の分光分布は、総点灯時間の増大に応じて、変化し得る。従って、撮影画像IMx、IMy、IMzの間で、プリンタDVの色が異なり得る。
【0018】
機械学習モデル238のトレーニング用の撮影画像の撮影時と、プリンタの検査用の撮影画像の撮影時と、の間で光源LSの状況が異なる場合、トレーニング用の撮影画像と検査用の撮影画像との間で、プリンタの色が異なり得る。このような色の違いに起因して、機械学習モデル238による予測の精度が低下し得る。そこで、本実施例では、光源LSの状況の違いに起因するプリンタの色の違いの影響が緩和されるように、機械学習モデル238のトレーニングと機械学習モデル238による予測とが行われる。
【0019】
A3.機械学習モデルの構成:
図3は、機械学習モデル238の例を示すブロック図である。機械学習モデル238には、プリンタDVの撮影画像IMを示す撮影画像データDinが入力される。撮影画像IMとしては、
図2(A)-
図2(E)のように、光源の種々の状況の下で撮影されたプリンタDVの画像が用いられる。撮影画像データDinは、(H1×W1)個の画素のそれぞれの3個の成分値(R値、G値、B値)を示すビットマップデータ、すなわち、(H1×W1×3)個の値を示すデータである。
【0020】
機械学習モデル238は、入力された撮影画像データDinを用いて、プリンタDVの外観の不具合に関する不具合データDoutを予測する。本実施例では、不具合データDoutは、合格を示す第1値(ここでは、1)と、不合格を示す第2値(ここでは、ゼロ)と、のいずれかを示す2値のデータである。
【0021】
本実施例では、機械学習モデル238は、CNN(Convolutional Neural Network)と呼ばれる人工ニューラルネットワークである。機械学習モデル238は、第1畳込層510と、第1プーリング層520と、第2畳込層530と、第2プーリング層540と、第1全結合層550と、第2全結合層560と、第3全結合層570と、判定部580と、を有している。これらの層510-580は、この順番に、接続されている。
【0022】
撮影画像データDinは、第1畳込層510に入力される。
【0023】
畳込層510、530は、入力されるデータに対して、畳込処理とバイアスの加算処理とを含む処理を実行する。畳込処理は、直前の層から入力されたデータに対して、(p×q×r)次元のs個のフィルタを順次に適用し、入力されたデータとフィルタとの相関を示す相関値を算出する処理である(p、q、r、sは、1以上の整数)。各フィルタを適用する処理では、フィルタをスライドさせながら複数個の相関値が順次に算出される。1個のフィルタは、(p×q×r)個の重みを含んでいる。バイアスの加算処理は、算出された相関値に、バイアスを加算する処理である。バイアスは、1個のフィルタに対して1個ずつ準備されている。なお、フィルタの次元(p×q×r)とフィルタの数sとは、通常は、複数の畳込層510、530の間で異なっている。畳込層510、530は、複数のフィルタの複数の重みと複数のバイアスとを含むパラメータセットP1s、P2sを、それぞれ有している。
【0024】
畳込層510、530によって生成されるデータは、活性化関数に入力されて変換された後に、次の層(プーリング層520、540)に入力される。本実施例では、活性化関数として、ReLU(Rectified Linear Unit)が用いられる。
【0025】
プーリング層520、540は、直前の畳込層から入力されたデータに対して、マックスプーリング(MaxPooling)を行って、データの次元数を削減する。マックスプーリングは、いわゆるダウンサンプリングによって次元数を削減する処理であり、所定サイズ(例えば、2×2)のウィンドウを所定のストライド(例えば、2)でスライドさせつつ、ウィンドウ内の最大値を選択することによって次元数を削減する。プーリング層520、540によって生成されるデータは、そのまま、次の層(層530、550)に入力される。
【0026】
全結合層550、560、570は、直前の層から入力されたm次元のデータ(すなわち、m個の値。mは2以上の整数)を用いて、n次元のデータ(すなわち、n個の値。nは1以上の整数)を出力する。出力されるn個の値のそれぞれは、入力されるm個の値で構成されるベクトルとm個の重みで構成されるベクトルとの内積に、バイアスを加えた値(内積+バイアス)である。全結合層550、560、570は、(m×n)個の重みとn個のバイアスとを用いて、n次元のデータを出力する。なお、入力データの次元数mと出力データの次元数nとは、通常は、複数の全結合層550、560、570の間で異なっている。本実施例では、上流側の全結合層560、570から出力されるデータの次元数nは、2以上であり、第3全結合層570から出力されるデータの次元数nは、1である。全結合層550、560、570は、複数の重みと複数のバイアスとを含むパラメータセットP3s、P4s、P5sを、それぞれ有している。
【0027】
上流側の全結合層550、560によって生成される各値は、活性化関数に入力されて変換された後に、次の層(全結合層560、570)に入力される。活性化関数としては、例えば、ReLUが用いられる。
【0028】
第3全結合層570よって生成されたデータは、活性化関数に入力されて変換される。活性化関数としては、例えば、Sigmoidが用いられる。Sigmoidは、実数の全体を、ゼロ以上、1以下の範囲内の値に変換する。
【0029】
判定部580は、直前の第3全結合層570から入力された値を判定閾値と比較することによって、2つのクラスのいずれかを示す不具合データDoutを出力する。本実施例では、2つのクラスは、プリンタDVが不具合を有していないことを示す第1クラスCL1(合格クラスCL1とも呼ぶ)と、プリンタDVが不具合を有していることを示す第2クラスCL2(不合格クラスCL2とも呼ぶ)と、で構成されている。具体的には、合格クラスCL1は、プリンタDVの撮影画像がラベルLBの画像を含んでいることを示し、不合格クラスCL2は、プリンタDVの撮影画像がラベルLBの画像を含んでいないことを示している。判定部580は、入力された値が判定閾値以上である場合には、「1」の不具合データDoutを出力し、入力された値が判定閾値未満である場合には、「ゼロ」の不具合データDoutを出力する。「1」の不具合データDoutが合格クラスCL1を示し、「ゼロ」の不具合データDoutが不合格クラスCL2を示している。判定部580は、判定閾値を含むパラメータセットP6sを有している。
【0030】
機械学習モデル238は、出力される不具合データDoutが適切なクラスを示すように、トレーニングされる。トレーニングされた機械学習モデル238の第3全結合層570からの出力値は、撮影画像IMのクラスが合格クラスCL1であることの確信度を示している。確信度は、合格クラスCL1が正解である確率と相関を有している。
【0031】
なお、
図3において、各層の左側の数値(例えば、H1×W1×D1)は、その層に入力されるデータの次元数を示している。各層の右側の数値(例えば、H2×W2×D1)は、その層から出力されるデータの次元数を示している。各データの次元数は、種々の値であってよい。例えば、H1=W1=500、D1=8、H2=W2=50、D2=16、H3=W3=25、D3=512、D4=64であってよい。
【0032】
A4.トレーニング処理:
図4は、機械学習モデル238(
図3)のトレーニング処理の例を示すフローチャートである。機械学習モデル238は、不具合データDoutが撮影画像IMのプリンタDVの適切なクラスを示すように、トレーニングされる。トレーニングによって、複数の層510-580のそれぞれの演算に用いられる複数の演算パラメータ(パラメータセットP1s-P6sを含む)が、調整される。なお、プロセッサ210は、第1プログラム231に従って、トレーニングを行う。
【0033】
S110では、プロセッサ210は、ラベル付データセットを生成する。まず、作業者は、デジタルカメラ100を用いて、プリンタを撮影する。これにより、デジタルカメラ100は、撮影画像データを生成する。本実施例では、ラベルLBを有するプリンタである第1種プリンタの撮影により、第1種撮影画像データが生成され、ラベルLBを有さないプリンタである第2種プリンタの撮影により、第2種撮影画像データが生成される。適切なトレーニングのために、多数の第1種撮影画像データと多数の第2種撮影画像データとが生成される。2つのクラスCL1、CL2の間の偏りを抑制するために、同数の第1種撮影画像データと第2種撮影画像データとが生成されてよい。例えば、500個の第1種撮影画像データと500個の第2種撮影画像データとが生成されてよい。ここで、作業者は、複数の第1種プリンタと複数の第2種プリンタとを撮影してよい。また、作業者は、1つの第1種プリンタを複数回に亘って撮影し、1つの第2種プリンタを複数回に亘って撮影してよい。
【0034】
プロセッサ210は、デジタルカメラ100から撮影画像データを取得する。また、プロセッサ210は、撮影画像データに対応するクラスを示すクラス情報を、作業者に入力させる。そして、プロセッサ210は、撮影画像データと、撮影画像データに対応するクラス情報を示すデータ(ラベルデータ、または、教師データとも呼ぶ)と、を関連付けて、記憶装置215(例えば、不揮発性記憶装置230)に格納する。本実施例では、ラベルデータは、不具合データDoutの目標値(すなわち、正解)を示している。具体的には、第1種撮影画像データに対応付けられたラベルデータは、合格クラスCL1を示す「1」であり、第2種撮影画像データに対応付けられたラベルデータは、不合格クラスCL2を示す「ゼロ」である。以下、互いに関連付けられた撮影画像データとラベルデータとの全体を、ラベル付データとも呼ぶ。また、複数のラベル付データの全体を、ラベル付データセットとも呼ぶ。
【0035】
なお、いわゆるデータオーギュメンテーションによって、複数の撮影画像データが追加されてよい。また、撮影画像データの生成とクラス情報の入力(ひいては、S110)は、トレーニング処理の開始よりも前に、予め行われてよい。
【0036】
S120では、プロセッサ210は、第1クラスCL1のラベル付データセットと第2クラスCL2のラベル付データセットとのそれぞれを、学習用データセットと確認用データセットとに分割する。例えば、プロセッサ210は、ランダムに選択した70%のラベル付データセットを、学習用データセットとして採用し、残りの30%のラベル付データセットを、確認用データセットとして採用する。第1クラスCL1のラベル付データセットの分割と、第2クラスCL2のラベル付データセットの分割とは、独立に行われる。以下、学習用データセットのラベル付データの総数がNt個であり、確認用データセットのラベル付データの総数がNv個であることとする(Nt、Nvは、いずれも、2以上の整数)。以下、学習用データセットに含まれる撮影画像データを、学習用撮影画像データとも呼び、学習用撮影画像データによって示される画像を、学習用撮影画像とも呼ぶ。また、確認用データセットに含まれる撮影画像データを、確認用撮影画像データとも呼び、確認用撮影画像データによって示される画像を、確認用撮影画像とも呼ぶ。
【0037】
S130では、プロセッサ210は、学習用データセットの平均明度値TLと平均ホワイトバランス値Ta、Tbとを算出する。本実施例では、プロセッサ210は、まず、学習用データセットの複数の撮影画像データの複数の画素のそれぞれの色値(R、G、B)を、CIELAB色空間の色値(L*、a*、b*)に変換する。CIELAB色空間は、国際照明委員会(CIE)によって1976年に勧告された色空間であり、CIE 1976 L*a*b*色空間とも呼ばれる。撮影画像データの色値を表す色空間が装置非依存な色空間(例えば、sRGB色空間)である場合、色値の変換式としては、2つの色空間の間の対応関係を定める公知の変換式が用いられる。撮影画像データの色値を表す色空間が装置依存な色空間である場合、色値の変換式は、デジタルカメラ100の特性を考慮して、予め実験的に決定される。
【0038】
プロセッサ210は、色値(L*、a*、b*)を用いて、平均明度値TLと平均ホワイトバランス値Ta、Tbとを算出する。
図5(A)は、平均明度値TLの算出式の例を示す説明図である。プロセッサ210は、撮影画像毎にL*値の平均値PSiL(画像明度値PSiLとも呼ぶ)を算出する。そして、プロセッサ210は、Nt個の撮影画像の画像明度値PSiLの平均値である平均明度値TLを算出する。
図5(A)中のPSi(x、y)Lは、i番の撮影画像の座標(x、y)の画素のL*値である。座標値xは、第1方向Dx(
図2(A))の画素の位置を示し、座標値yは、第2方向Dyの画素の位置を示している。座標値x、yは、それぞれ、方向Dx、Dyに向かって昇順に並ぶように、1から順番に割り当てられている。PSiwは、i番目の撮影画像の第1方向Dxの画素数であり、幅W1(
図2(A))と同じである。PSihは、i番目の撮影画像の第2方向Dyの画素数であり、高さH1(
図2(A))と同じである。画像明度値PSiLは、i番目の撮影画像の全ての画素(PSih×PSiw個の画素)のL*値の平均である。平均明度値TLは、Nt個の画像明度値PSiLの平均である。
【0039】
平均ホワイトバランス値Ta、Tbの算出方法は、L*に代えてa*、b*が用いられる点を除いて、平均明度値TLの算出方法と同じである。
図5(B)は、第1平均ホワイトバランス値Taの算出式を示す説明図である。
図5(B)中のPSi(x、y)aは、i番の撮影画像の座標(x、y)の画素のa*値である。画像第1値PSiaは、i番目の撮影画像の全ての画素のa*値の平均である。第1平均ホワイトバランス値Taは、Nt個の画像第1値PSiaの平均である。
図5(C)は、第2平均ホワイトバランス値Tbの算出式を示す説明図である。
図5(C)中のPSi(x、y)bは、i番の撮影画像の座標(x、y)の画素のb*値である。画像第2値PSibは、i番目の撮影画像の全ての画素のb*値の平均である。第2平均ホワイトバランス値Tbは、Nt個の画像第2値PSibの平均である。
【0040】
平均明度値TLは、学習用データセットの複数の撮影画像の平均的な明るさを示している。また、a*値とb*値とは、無彩色からのズレの大きさを示している。従って、平均ホワイトバランス値Ta、Tbは、学習用データセットの複数の撮影画像のホワイトバランスの平均的な偏りを示している。これらの値TL、Ta、Tbは、撮影時の光源LSの状況に応じて、異なり得る。
【0041】
S140(
図4)では、プロセッサ210は、値TL、Ta、Tbを示すデータである補正パラメータデータ237を、記憶装置215(例えば、不揮発性記憶装置230)に格納する。値TL、Ta、Tbは、後述する色補正処理で用いられる。以下、値TL、Ta、Tbを、色補正パラメータTL、Ta、Tbとも呼ぶ。
【0042】
S150では、プロセッサ210は、機械学習モデル238の複数の演算パラメータ(パラメータセットP1s-P6sを含む)を初期化する。例えば、各演算パラメータは、乱数値に設定される。
【0043】
S158では、プロセッサ210は、Nv個の確認用撮影画像データのそれぞれの色を補正する補正処理を実行する。
図6(A)は、補正処理の例を示すフローチャートである。
図6(A)の補正処理は、1個の撮影画像データの補正処理を示している。プロセッサ210は、Nv個の確認用撮影画像データのそれぞれに関して、
図6(A)の補正処理を実行する。
【0044】
S510では、プロセッサ210は、処理対象の確認用撮影画像データの複数の画素のそれぞれの色値(R、G、B)を、CIELAB色空間の色値(L*、a*、b*)に変換する。色値の変換処理は、S130で説明した変換処理と同じである。
【0045】
S520では、プロセッサ210は、確認用撮影画像の明度を補正する明度補正処理を行う。本実施例では、L*値が補正される。
図6(B)は、L*値の補正処理の例を示すグラフである。横軸は、補正前のL*値である入力値Linを示し、縦軸は、補正後のL*値である出力値Loutを示している。図中のLmaxは、L*の最大値である。入力値Linと出力値Loutとの対応関係を示すカーブTCiは、トーンカーブとも呼ばれる。
【0046】
本実施例では、プロセッサ210は、L*値のガンマ補正処理を行う。プロセッサ210は、処理対象の確認用撮影画像データの補正前のL*値の平均である画像明度値PViLを算出する。プロセッサ210は、画像明度値PViLが平均明度値TLに変換されるように、ガンマ補正処理のためのトーンカーブTCiを決定する。そして、プロセッサ210は、確認用撮影画像データの複数の画素のそれぞれのL*値を、トーンカーブTCiに基づいて補正する。このように、色補正パラメータTLは、L*値の基準を示している。
【0047】
図5(E)は、画像明度値PViLの算出式の例を示す説明図である。
図5(E)中のPVi(x、y)Lは、i番の確認用撮影画像の座標(x、y)の画素のL*値である。PViwは、i番目の確認用撮影画像の第1方向Dxの画素数であり、幅W1(
図2(A))と同じである。PVihは、i番目の確認用撮影画像の第2方向Dyの画素数であり、高さH1(
図2(A))と同じである。画像明度値PViLは、i番目の確認用撮影画像の全ての画素(PVih×PViw個の画素)のL*値の平均である。
【0048】
S530(
図6(A))では、プロセッサ210は、処理対象の確認用撮影画像のホワイトバランスを補正するホワイトバランス補正処理を行う。本実施例では、S530は、a*値を補正する処理S533と、b*値を補正する処理S536と、を含んでいる。
図6(C)は、a*の補正式Eaと、b*の補正式Ebと、を示す説明図である。本実施例では、補正後のa*値の平均値が第1平均ホワイトバランス値Taに近くなり、補正後のb*値の平均値が第2平均ホワイトバランス値Tbに近くなるように、各画素のa*値とb*値とが補正される。このように、第1平均ホワイトバランス値Taは、a*値の基準を示し、第2平均ホワイトバランス値Tbは、b*値の基準を示している。
【0049】
具体的には、以下の通りである。第1補正式EaのPVi(x、y)aは、i番の確認用撮影画像の座標(x、y)の画素のa*値である。左辺のPVi(x、y)aは、補正後のa*値を示し、右辺のPVi(x、y)aは、補正前のa*を示している。PViaは、i番目の確認用撮影画像の全ての画素のa*値の平均である(
図5(F)参照)。このように、プロセッサ210は、処理対象の撮影画像データのa*値の平均値PViaを算出し、そして、各画素のa*値を、第1平均ホワイトバランス値Taから平均値PViaを減算して得られる差分を加算することによって、補正する。これにより、補正後のa*値の平均値は、第1平均ホワイトバランス値Taに近くなる。
【0050】
b*値のための第2補正式Ebも、同様に決められている。PVi(x、y)bは、i番の確認用撮影画像の座標(x、y)の画素のb*値である。左辺のPVi(x、y)bは、補正後のb*値を示し、右辺のPVi(x、y)bは、補正前のb*を示している。PVibは、i番目の確認用撮影画像の全ての画素のb*値の平均である(
図5(G)参照)。プロセッサ210は、処理対象の撮影画像データのb*値の平均値PVibを算出し、そして、各画素のb*値を、第2平均ホワイトバランス値Tbから平均値PVibを減算して得られる差分を加算することによって、補正する。これにより、補正後のb*値の平均値は、第2平均ホワイトバランス値Tbに近くなる。
【0051】
S540(
図6(A))では、プロセッサ210は、補正された色値(L*、a*、b*)を、元の色空間の色値(R、G、B)に変換する。この色変換処理は、S510の色変換処理とは逆方向の変換処理である。以上により、プロセッサ210は、補正済の確認用撮影画像データを生成する。プロセッサ210は、Nv個の確認用撮影画像データのそれぞれに、
図6(A)の補正処理を実行することによって、Nv個の補正済の確認用撮影画像データを生成する。そして、
図6(A)の処理、すなわち、
図4のS158が、終了する。以後、プロセッサ210は、補正済の確認用撮影画像データと対応するラベルデータとの全体を、補正済のラベル付データとして利用する。また、Nv個の補正済のラベル付データのセットを、補正済の確認用データセットとして利用する。
【0052】
S160では、プロセッサ210は、学習用データセットを用いて、学習ロスを算出する。具体的には、プロセッサ210は、Nt個の学習用撮影画像データを機械学習モデル238に入力し、Nt個の不具合データDoutを生成する。そして、プロセッサ210は、Nt個の不具合データDoutと、Nt個の学習用撮影画像データに対応付けられたNt個のラベルデータと、を用いて、学習ロスを算出する。
図5(D)は、学習ロスの算出式(損失関数とも呼ばれる)の例を示す説明図である。Oiは、i番の学習用撮影画像データを用いて出力された不具合データDoutの値である(予測値Oiとも呼ぶ)。Tiは、i番の学習用撮影画像データに対応付けられたラベルデータの値である(教師値Tiとも呼ぶ)。学習ロスLoss_sは、これらの値Oi、Tiの差分の二乗の平方根の平均値である。このような学習ロスLoss_sは、値Oi、Tiの差分の絶対値の平均値を示している。上述したように、これらの値Oi、Tiは、1またはゼロを示している。予測値Oiが正しい場合、値Oi、Tiの差分の絶対値は、ゼロである。予測値Oiが誤りである場合、値Oi、Tiの差分の絶対値は、1である。学習ロスLoss_sは、Nt個の予測値Oiのうちの正しい予測値Oiの割合が多いほど、小さくなる。
【0053】
S170(
図4)では、プロセッサ210は、学習ロスLoss_sを用いて、機械学習モデル238の複数の演算パラメータ(パラメータセットP1s-P6sを含む)を調整する。具体的には、プロセッサ210は、学習ロスLoss_sが小さくなるように、所定のアルゴリズムに従って演算パラメータを調整する。所定のアルゴリズムとしては、例えば、誤差逆伝播法と勾配降下法とを用いたアルゴリズムが用いられる。
【0054】
S190では、プロセッサ210は、補正済の確認用データセットを用いて、確認ロスを算出する。確認ロスの算出方法は、学習用撮影画像データの代わりに補正済の確認用撮影画像データを用いる点を除いて、S160で説明した学習ロスLoss_sの算出方法と同じである。具体的には、プロセッサ210は、Nv個の補正済の確認用撮影画像データを、S170で更新された演算パラメータを有する機械学習モデル238に入力し、Nv個の不具合データDoutを生成する。そして、プロセッサ210は、Nv個の不具合データDoutと、Nv個の補正済の確認用撮影画像データに対応付けられたNv個のラベルデータと、を用いて、確認ロスを算出する。
図5(H)は、確認ロスの算出式(損失関数とも呼ばれる)の例を示す説明図である。Oiは、i番の補正済の確認用撮影画像データを用いて出力された不具合データDoutの値である(すなわち、予測値Oi)。Tiは、i番の補正済の確認用撮影画像データに対応付けられたラベルデータの値である(すなわち、教師値Ti)。確認ロスLoss_vは、これらの値Oi、Tiの差分の二乗の平方根の平均値である。
【0055】
S200(
図4)では、プロセッサ210は、トレーニングが完了したか否かを判断する。トレーニング完了の条件は、種々の条件であってよい。本実施例では、トレーニング完了の条件は、学習ロスLoss_sと確認ロスLoss_vとの両方が、所定の基準値(例えば、0.00001)以下であることである。なお、トレーニング完了の条件は、学習ロスLoss_sと確認ロスLoss_vとの両方が小さいことを示す種々の条件であってよい。例えば、学習ロスLoss_sの基準値は、確認ロスLoss_vの基準と異なっていてよい。
【0056】
トレーニングが完了していない場合(S200:No)、プロセッサ210は、S160へ移行して、トレーニングを継続する。トレーニングが完了した場合(S200:Yes)、S210で、プロセッサ210は、調整済の演算パラメータを含む機械学習モデル238を、トレーニング済モデルとして、記憶装置215(ここでは、不揮発性記憶装置230)に格納する。そして、プロセッサ210は、
図4の処理を終了する。
【0057】
A5.検査処理:
図7は、対象物の検査処理の例を示すフローチャートである。本実施例では、プリンタDV(
図2(A))にラベルLBが貼られているか否かが検査される。なお、プロセッサ210は、第2プログラム232に従って、検査処理を行う。
【0058】
S710では、プロセッサ210は、不具合データDoutの取得処理を行う。
図8は、取得処理の例を示すフローチャートである。S310では、プロセッサ210は、検査対象のプリンタである注目プリンタの撮影画像データを取得する。本実施例では、注目プリンタが、デジタルカメラ100(
図1)の撮影範囲に配置されていることとする。プロセッサ210は、デジタルカメラ100に撮影指示を供給する。デジタルカメラ100は、指示に応じて、注目プリンタを撮影し、撮影画像データを生成する。プロセッサ210は、デジタルカメラ100から、撮影画像データを取得する。以下、注目プリンタの撮影画像データを、注目撮影画像データとも呼ぶ。
【0059】
S320では、プロセッサ210は、記憶装置215から、補正パラメータデータ237を取得する。S330では、プロセッサ210は、注目撮影画像データの色を補正する補正処理を実行する。この補正処理は、処理対象の画像データが確認用撮影画像データではなく注目撮影画像データである点を除いて、
図4のS158、
図6(A)の補正処理と同じである。この補正処理により、補正済の注目撮影画像データのL*、a*、b*の平均値は、色補正パラメータTL、Ta、Tbに、それぞれ近くなる。
【0060】
S340では、プロセッサ210は、補正済の注目撮影画像データを、トレーニングされた機械学習モデル238に入力することによって、注目プリンタの不具合データDoutを機械学習モデル238から取得する(以下、注目不具合データDoutとも呼ぶ)。S350では、プロセッサ210は、注目不具合データDoutを記憶装置215(例えば、不揮発性記憶装置230)に格納する。以上により、
図8の処理、すなわち、
図7のS710が、終了する。なお、
図8の処理を実行する情報処理装置200(
図1)は、不具合データDoutを取得する取得システムの例である。
【0061】
S720では、プロセッサ210は、検査結果を出力する。そして、プロセッサ210は、
図7の処理を終了する。検査結果は、注目不具合データDoutを用いて特定される注目プリンタの不具合の検査結果である。本実施例では、検査結果は、「合格」と「不合格」とのいずれかであり、注目不具合データDoutによって示される情報と同じである。検査結果の出力方法は、任意の方法であってよい。例えば、プロセッサ210は、検査結果を示す検査結果データを、記憶装置(例えば、不揮発性記憶装置230、または、情報処理装置200に接続された図示しない外部記憶装置)に出力してよい(これにより、検査結果データが、記憶装置に格納される)。また、プロセッサ210は、検査結果を示す画像データを、表示部240に出力してよい(これにより、検査結果が表示部240に表示される)。検査結果の出力(S720)の完了に応じて、プロセッサ210は、
図7処理を終了する。
【0062】
以上のように、本実施例では、プロセッサ210は、
図8の処理を実行することによって、不具合データを取得する。具体的には、S330で、プロセッサ210は、色の基準を示す色補正パラメータTL、Ta、Tbを用いて、注目プリンタの撮影画像を示す注目撮影画像データの色を補正する(
図6(A)参照)。S340では、プロセッサ210は、トレーニングされた機械学習モデル238に、補正済の注目撮影画像データを入力することによって、トレーニングされた機械学習モデル238から注目不具合データDoutを取得する。
図2(A)、
図2(B)、
図3で説明したように、注目不具合データDoutは、注目プリンタの外観の不具合に関する情報を示している。また、
図3、
図4で説明したように、機械学習モデル238は、プリンタの撮影画像を示す撮影画像データとプリンタの外観の不具合に関する不具合データとの関係を示すようにトレーニングされている。
【0063】
このような構成により、プロセッサ210は、注目撮影画像データの色が基準からずれ得る場合に、適切な注目不具合データDoutを取得できる。例えば、注目プリンタの撮影は、トレーニング用の撮影画像データのための撮影とは異なる日に行われ得る。従って、注目プリンタの撮影時の光源LSの状況は、トレーニングのための撮影時の光源LSの状況と、異なり得る。この結果、注目撮影画像データの色は、機械学習モデル238のトレーニングに用いられた撮影画像データの色から、ずれ得る。ずれた色を有する注目撮影画像データが機械学習モデル238に入力される場合、不適切な注目不具合データDoutが生成され得る。本実施例では、補正済の注目撮影画像データが機械学習モデル238に入力されるので、適切な注目不具合データDoutを取得できる。
【0064】
また、
図3で説明したように、トレーニングされた機械学習モデル238は、複数のパラメータ(具体的には、パラメータセットP1s-P6s)を含んでいる。
図4のS160、S170で説明したように、トレーニングされた機械学習モデル238の複数のパラメータ(パラメータセットP1s-P6sを含む)は、Nt個の学習用撮影画像データを機械学習モデル238に入力することによって取得されるNt個の不具合データDoutを用いて、調整されている。そして、S130で説明したように、色補正パラメータTL、Ta、Tbは、Nt個の学習用撮影画像データを用いて算出されている。従って、注目撮影画像データの色の補正(
図8:S330)は、補正済の注目撮影画像データの色と、複数の学習用撮影画像データを用いて算出される基準(本実施例では、色補正パラメータTL、Ta、Tb)と、の間のズレを低減可能である。この結果、
図8の取得処理では、プロセッサ210は、注目撮影画像データの色が複数の学習用撮影画像データを用いて算出される基準からずれ得る場合に、適切な注目不具合データDoutを取得できる。
【0065】
また、
図4のS158で説明したように、プロセッサ210は、色補正パラメータTL、Ta、Tbを用いてNv個の確認用撮影画像データの色を補正することによって、Nv個の補正済の確認用撮影画像データを生成する。S190では、プロセッサ210は、Nv個の補正済の確認用撮影画像データを、S170で調整された演算パラメータを有する機械学習モデル238に入力し、Nv個の不具合データDoutを生成する。プロセッサ210は、Nv個の不具合データDoutと、Nv個の確認用撮影画像データにそれぞれ対応付けられたNv個のラベルデータ(すなわち、教師データ)と、を用いて、Nv個の不具合データDoutとNv個の教師データとの間の差を示す確認ロスLoss_vを算出する。S200では、プロセッサ210は、確認ロスLoss_vが基準値以下であることを含む条件が満たされる場合に、トレーニングを終了する。すなわち、確認ロスLoss_vが基準以下であることを含む条件が満たされるように、トレーニングされた機械学習モデル238の複数のパラメータ(パラメータセットP1s-P6sを含む)は、調整されている。
【0066】
このように、機械学習モデル238は、色補正パラメータTL、Ta、Tbを用いて補正された確認用撮影画像データが機械学習モデル238に入力される場合に適切な不具合データDoutを出力するように、トレーニングされている。すなわち、機械学習モデル238の複数のパラメータ(パラメータセットP1s-P6sを含む)は、色補正パラメータTL、Ta、Tbを用いて補正された複数の確認用撮影画像データに適するように調整されている。従って、機械学習モデル238は、色補正パラメータTL、Ta、Tbを用いて補正された種々の注目撮影画像データに対して、適切な注目不具合データDoutを出力できる。取得処理(
図8)では、プロセッサ210は、このような機械学習モデル238を用いることによって、適切な注目不具合データDoutを取得できる。
【0067】
また、
図4のS130、
図6(A)-
図6(C)で説明したように、色補正パラメータTL、Ta、Tbは、明度の基準を示す値TL(明度基準TLとも呼ぶ)と、ホワイトバランスの基準を示す値Ta、Tb(ホワイトバランス基準Ta、Tbとも呼ぶ)と、を示している。そして、注目撮影画像データの補正処理(
図8:S330、
図6(A))は、明度補正処理(
図6(A):S520)と、ホワイトバランス補正処理(
図6(A):S530)と、を含んでいる。明度補正処理は、
図6(B)で説明したように、注目撮影画像データの明度を明度基準TLに近づける処理である。具体的には、補正済の注目撮影画像データのL*の平均値が、明度基準TLに近づく。また、ホワイトバランス補正処理は、
図6(C)で説明したように、注目撮影画像データのホワイトバランスをホワイトバランス基準Ta、Tbに近づける処理である。具体的には、補正済の注目撮影画像データのホワイトバランスを示すa*の平均値とb*の平均値が、ホワイトバランス基準Ta、Tbに近づく。以上により、
図8の取得処理では、プロセッサ210は、注目プリンタの撮影時の光源の状況が変化し得る場合に、適切な注目不具合データDoutを取得できる。
【0068】
また、
図4のS130、
図6(A)で説明したように、明度基準TLは、CIELAB色空間のL*成分の基準を示している。ホワイトバランス基準Ta、Tbは、CIELAB色空間のa*成分の基準とb*成分の基準とを、それぞれ、示している。明度補正処理(
図6(A):S520)は、注目撮影画像データのL*成分をL*成分の基準TLを用いて補正する処理を含んでいる。ホワイトバランス補正処理(
図6(A):S530)は、注目撮影画像データのa*成分をa*成分の基準Taを用いて補正する処理(S533)と、注目撮影画像データのb*成分をb*成分の基準Tbを用いて補正する処理(S536)と、を含んでいる。以上により、プロセッサ210は、注目撮影画像データの明度とホワイトバランスとを適切に補正できるので、適切な不具合データを取得できる。
【0069】
B.第2実施例:
B1.トレーニング処理:
図9は、機械学習モデル238(
図3)のトレーニング処理の第2実施例を示すフローチャートである。
図4の実施例との差異は、色補正パラメータTL、Ta、Tbの代わりに、予め決められた色補正パラメータTL2、Ta2、Tb2が用いられる点と、学習用撮影画像データの代わりに補正済の学習用撮影画像データが用いられる点と、である。以下、第1実施例の色補正パラメータTL、Ta、Tbを、第1種補正パラメータTL、Ta、Tbとも呼び、第2実施例の色補正パラメータTL2、Ta2、Tb2を、第2種補正パラメータTL2、Ta2、Tb2とも呼ぶ。本実施例では、第2種補正パラメータTL2、Ta2、Tb2に適するように機械学習モデル238をトレーニングするために、確認用撮影画像データに加えて、学習用撮影画像データも、第2種補正パラメータTL2、Ta2、Tb2を用いて補正される。トレーニング処理を実行する情報処理装置の構成は、
図1の情報処理装置200の構成と同じである。第2種補正パラメータTL2、Ta2、Tb2を示す補正パラメータデータ237は、記憶装置215(例えば、不揮発性記憶装置230)に予め格納される。なお、第2種補正パラメータTL2、Ta2、Tb2の決定方法は、種々の方法であってよい。例えば、第2種補正パラメータTL2、Ta2、Tb2の決定のために、プリンタDVが撮影されてよい。そして、この撮影により取得された撮影画像データのL*、a*、b*の代表値(例えば、平均値、中央値など、複数の画素の色値と相関を有する値)が、第2種補正パラメータTL2、Ta2、Tb2として用いられてよい。
【0070】
図9のS110、S120は、
図4のS110、S120と、それぞれ同じである。続くS150は、
図4のS150と同じである。
【0071】
S154aでは、プロセッサ210は、Nt個の学習用撮影画像データのそれぞれの色を補正する補正処理を実行する。この補正処理は、第1種補正パラメータTL、Ta、Tbの代わりに第2種補正パラメータTL2、Ta2、Tb2が用いられる点と、処理対象の画像データが確認用撮影画像データではなく学習用撮影画像データである点と、を除いて、
図4のS158、
図6(A)の補正処理と同じである。プロセッサ210は、記憶装置215から、第2種補正パラメータTL2、Ta2、Tb2を示す補正パラメータデータ237を取得する。そして、プロセッサ210は、Nt個の学習用撮影画像データのそれぞれに対して補正処理を実行することによって、Nt個の補正済の学習用撮影画像データを生成する。この補正処理により、補正済の学習用撮影画像データのL*、a*、b*の平均値は、第2種補正パラメータTL2、Ta2、Tb2に、それぞれ近くなる。以後、プロセッサ210は、補正済の学習用撮影画像データと対応するラベルデータとの全体を、補正済の学習用ラベル付データとして利用する。また、プロセッサ210は、Nt個の補正済の学習用ラベル付データのセットを、補正済の学習用データセットとして利用する。
【0072】
S158aでは、プロセッサ210は、Nv個の確認用撮影画像データのそれぞれの色を補正する補正処理を実行する。この補正処理は、第1種補正パラメータTL、Ta、Tbの代わりに第2種補正パラメータTL2、Ta2、Tb2が用いられる点を除いて、
図4のS158、
図6(A)の補正処理と同じである。プロセッサ210は、記憶装置215から、第2種補正パラメータTL2、Ta2、Tb2を示す補正パラメータデータ237を取得する。そして、プロセッサ210は、Nv個の確認用撮影画像データのそれぞれに対して補正処理を実行することによって、Nv個の補正済の確認用撮影画像データを生成する。この補正処理により、補正済の確認用撮影画像データのL*、a*、b*の平均値は、第2種補正パラメータTL2、Ta2、Tb2に、それぞれ近くなる。以後、プロセッサ210は、補正済の確認用撮影画像データと対応するラベルデータとの全体を、補正済の確認用ラベル付データとして利用する。また、プロセッサ210は、Nv個の補正済の確認用ラベル付データのセットを、補正済の確認用データセットとして利用する。
【0073】
S160aでは、プロセッサ210は、補正済の学習用データセットを用いて、学習ロスLoss_sを算出する。学習ロスLoss_sの算出処理は、未補正の学習用データセットの代わりに補正済の学習用データセットが用いられる点を除いて、
図4のS160の処理と同じである。
【0074】
S170、S190、S200は、
図4のS170、S190、S200と、それぞれ同じである。トレーニングが完了していない場合(S200:No)、プロセッサ210は、S160aへ移行して、トレーニングを継続する。トレーニングが完了した場合(S200:Yes)、S210で、プロセッサ210は、調整済の演算パラメータを含む機械学習モデル238を、トレーニング済モデルとして、記憶装置215(ここでは、不揮発性記憶装置230)に格納する。そして、プロセッサ210は、
図9の処理を終了する。
【0075】
B2.特定処理:
図10は、取得処理の第2実施例を示すフローチャートである。この取得処理は、第1種補正パラメータTL、Ta、Tbの代わりに第2種補正パラメータTL2、Ta2、Tb2が用いられる点を除いて、
図8の特定処理と同じである。具体的には、
図10の特定処理は、
図8の特定処理のS320、S330を、第2種補正パラメータTL2、Ta2、Tb2を用いるS320a、S330aにそれぞれ置換して得られる処理である。S320aでは、プロセッサ210は、記憶装置215から、第2種補正パラメータTL2、Ta2、Tb2を示す補正パラメータデータ237を取得する。S330aでは、プロセッサ210は、注目撮影画像データの色を補正する(
図6(A)参照)。ここで、第1種補正パラメータTL、Ta、Tbに代えて、第2種補正パラメータTL2、Ta2、Tb2が用いられる。
【0076】
以上のように、本実施例では、色補正パラメータTL2、Ta2、Tb2は、予め決められている。そして、
図9のS154aで説明したように、プロセッサ210は、色補正パラメータTL2、Ta2、Tb2を用いてNt個の学習用撮影画像データの色を補正することによって、Nt個の補正済の学習用撮影画像データを生成する。S160aでは、プロセッサ210は、Nt個の補正済の学習用撮影画像データを機械学習モデル238に入力することによって、Nt個の不具合データDoutを取得する。S160a、S170では、プロセッサ210は、Nt個の不具合データDoutを用いて、機械学習モデル238の複数の演算パラメータ(パラメータセットP1s-P6sを含む)を調整する。このように、トレーニングされた機械学習モデル238の複数の演算パラメータは、複数の不具合データDoutを用いて、調整されている。複数の不具合データDoutは、複数の補正済の学習用撮影画像データを機械学習モデル238に入力することによって取得される。複数の補正済の学習用撮影画像データは、色補正パラメータTL2、Ta2、Tb2を用いて補正されている。このように、機械学習モデル238の複数の演算パラメータは、色補正パラメータTL2、Ta2、Tb2に適するように調整されている。従って、機械学習モデル238は、色補正パラメータTL2、Ta2、Tb2を用いて補正された種々の注目撮影画像データに対して、適切な注目不具合データDoutを出力できる。取得処理(
図10)では、プロセッサ210は、このような機械学習モデル238を用いることによって、適切な注目不具合データDoutを取得できる。
【0077】
また、第2実施例のトレーニング処理と特定処理とは、第1種補正パラメータTL、Ta、Tbの代わりに第2種補正パラメータTL2、Ta2、Tb2が用いられる点と、学習用撮影画像データの代わりに補正済の学習用撮影画像データが用いられる点と、を除いて、第1実施例のトレーニング処理と特定処理とそれぞれ同じである。従って、第2実施例は、第1実施例と同じ種々の利点を実現可能である。
【0078】
C.変形例:
(1)不具合データDoutの取得の対象物は、プリンタに限らず、スキャナ、複合機、デジタルカメラ、カッティングマシン、携帯端末、などの任意の製品であってよい。また、製品を収容するケースが対象物であってよい。
【0079】
(2)機械学習モデル(例えば、
図3の機械学習モデル238)のトレーニングと不具合データの取得とに用いられる撮影画像データは、対象物の撮影画像を示す種々の画像データであってよい。例えば、撮影画像データの色空間は、RGBに代えて、CMYK色空間などの他の色空間であってよい。また、撮影画像データは、輝度値によって画像を表現してよい。また、撮影画像データは、デジタルカメラ100によって生成された画像データに対して、解像度変換処理、トリミング処理などの種々の画像処理を実行することによって、生成されてよい。
【0080】
(3)撮影画像データの色を補正する処理は、
図6(A)等で説明した処理に代えて、他の種々の処理であってよい。例えば、補正に用いられる色成分は、L*、a*、b*に代えて、他の色成分であってよい。例えば、Y、Cb、Crの3個の色成分が補正されてよい。Y値は、L*値と同様に、明度を示す色値である。従って、Y値の補正は、明度を補正できる。Y値は、L*の補正と同様に、ガンマ補正処理によって、補正されてよい。また、Cr値とCb値とは、a*値とb*値と同様に、無彩色からのズレの大きさを示している。従って、Cr値とCb値との補正は、ホワイトバランスを補正できる。Cr値とCb値とは、例えば、L*の補正と同様に、ガンマ補正によって補正されてよい。
【0081】
また、R、G、Bの3個の色成分が補正されてよい。R、G、Bの3個の色成分は、全体として、明度とホワイトバランスとを示している。従って、R値とG値とB値との補正は、明度とホワイトバランスとを補正できる。R値とG値とB値とは、例えば、L*の補正と同様に、ガンマ補正によって補正されてよい。
【0082】
また、ホワイトバランスの補正が省略されて、明度が補正されてよい。これに代えて、明度の補正が省略されて、ホワイトバランスが補正されてよい。
【0083】
いずれの場合も、補正処理は、
図6(B)のようなガンマ補正処理と、
図6(C)のような代表値と基準との差分を加算する処理と、に代えて、色の基準を示す色補正パラメータを用いて色を補正する種々の処理であってよい。例えば、補正処理は、撮影画像データの補正対象の色成分の代表値を、基準に近づける種々の処理であってよい。
図6(B)、
図6(C)の実施例では、代表値として平均値が用いられている(具体的には、画像明度値PViLと平均値PVia、PVib)。代表値は、平均値に限らず、撮影画像データの複数の画素の色値を用いて算出される種々の値(例えば、平均値、中央値、積算値など複数の画素の色値と相関を有する値)であってよい。代表値は、予め決められた算出式に従って算出されてよい。基準は、代表値の目標値であってよい。補正処理は、比率(基準/代表値)を色値に乗じる処理であってもよい
【0084】
(4)機械学習モデル238(
図3)は、ラベルLBの有無に代えて、他の種々の不具合の有無を予測するようにトレーニングされてよい。例えば、機械学習モデル238は、対象物の撮影画像データを用いて、対象物に装着される部品の有無を予測してよい。また、対象物が部品を収容するケースであってよい。機械学習モデル238は、対象物の撮影画像データを用いて、ケースに収容される部品の有無を予測してよい。いずれの場合も、機械学習モデルの構成は、
図3の構成に代えて、撮影画像を2つのクラスに分類する任意の構成であってよい。例えば、畳込層とプーリング層と全結合層とのそれぞれの総数は、適宜に変更されてよい。また、畳込層とプーリング層とが省略され、機械学習モデルは、複数の全結合層によって構成されてよい。また、機械学習モデルは、VGG16と呼ばれるCNNであってよい。また、ランダムフォレスト、または、サポートベクターマシンが、採用されてよい。
【0085】
また、機械学習モデルは、不具合の有無を示す2値の不具合データDoutを出力するモデルに代えて、対象物の外観の不具合に関する不具合データを出力する種々のモデルであってよい。例えば、機械学習モデルは、撮影画像中の対象物の傷を検出する物体検出モデルであってよい。物体検出モデルとしては、例えば、YOLO(You only look once)と呼ばれるモデルや、SSD(Single Shot Detector)と呼ばれるモデルなど、種々のモデルを採用可能である。このような物体検出モデルは、例えば、傷などの物体を示す領域(バウンディングボックスとも呼ばれる)と、物体の種類毎の確信度と、を示すデータを出力する。
【0086】
いずれの機械学習モデルも、
図4、または、
図9の処理によって、トレーニング可能である。ここで、教師データとしては、機械学習モデルから出力されるデータの正解(すなわち、目標値)を示すデータが用いられる。例えば、傷を検出する物体検出モデルをトレーニングする場合には、傷を有する対象物の学習用撮影画像データが用いられる。そして、教師データとしては、傷を示す正しい領域と、傷に対応付けられた高い確信度と、他の種類の物体に対応付けられた低い確信度と、を示すデータが用いられる。
【0087】
また、機械学習モデルのトレーニング方法は、
図4、
図9で説明した方法に代えて、機械学習モデルに適する種々の方法であってよい。例えば、
図4、
図9の実施例において、ロスの算出に用いられる損失関数は、
図5(D)、
図5(H)の関数に代えて、2乗和誤差、交差エントロピー誤差など、他の種類の損失を算出する関数であってよい。一般的には、損失関数は、機械学習モデルから出力されるデータと教師データとの間の差の評価値を算出する種々の関数であってよい。例えば、物体検出モデルが用いられる場合には、損失関数は、物体を示す領域の誤差と、物体の種類毎の確信度の誤差と、に相関を有する誤差を算出する種々の関数であってよい。
【0088】
また、機械学習モデルに含まれる演算パラメータを調整する方法は、誤差逆伝播法に代えて、目標値を伝播させる方法(Target Propagationとも呼ばれる)など、他の種々の方法であってよい。また、トレーニング完了の条件は、機械学習モデルから出力されるデータと、教師データと、の間の差が小さいことを示す種々の条件であってよい。例えば、確認ロスLoss_vは、トレーニング完了の条件から省略されてよい。この場合、
図4、
図9の処理において、全てのラベル付データセットが、学習用データセットとして用いられてよい。また、プロセッサ210は、作業者から完了指示が入力された場合にトレーニングが完了したと判断し、トレーニングの継続指示が入力された場合にトレーニングが完了していないと判断してもよい。作業者は、例えば、確認用撮影画像データを用いて出力される不具合データを参照して、トレーニングを終了するか否かを判断してよい。これに代えて、トレーニング完了の条件は、学習ロス(例えば、学習ロスLoss_s)の算出と演算パラメータの更新(例えば、S160-S170、S160a-S170)が、所定回数、繰り返されたことであってよい。
【0089】
(5)検査処理(
図7)のS720で出力される検査結果は、不具合の有無に限らず、機械学習モデルから出力される不具合データを用いて特定される種々の情報であってよい。例えば、機械学習モデルが物体検出モデルである場合、プロセッサ210は、検出された物体を示す画像データを、表示部240に出力してよい(これにより、物体の画像が表示部240に表示される)。作業者は、表示部240を観察することによって、検出された物体(例えば、傷)を、容易に確認できる。また、プロセッサ210は、検出された物体を示す画像データを、記憶装置(例えば、不揮発性記憶装置230、または、情報処理装置200に接続された図示しない外部記憶装置)に出力してよい(画像データが記憶装置に格納される)。
【0090】
(6)機械学習モデルのトレーニング処理(例えば、
図4、
図9の処理)と、不具合データの取得処理(例えば、
図8、
図10の処理)と、検査結果の出力処理(
図7:S720)とは、それぞれ、互いに異なる情報処理装置によって実行されてよい。これらの処理から任意に選択された処理が、ネットワークを介して互いに通信可能な複数の装置(例えば、コンピュータなどの情報処理装置)によって分担されてよい。例えば、不具合データの取得処理は、複数の情報処理装置を含む情報処理システム(取得システムの例)によって、実行されてよい。
【0091】
上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。例えば、
図1の機械学習モデル238の機能を、専用のハードウェア回路によって実現してもよい。
【0092】
また、本発明の機能の一部または全部がコンピュータプログラムで実現される場合には、そのプログラムは、コンピュータ読み取り可能な記録媒体(例えば、一時的ではない記録媒体)に格納された形で提供することができる。プログラムは、提供時と同一または異なる記録媒体(コンピュータ読み取り可能な記録媒体)に格納された状態で、使用され得る。「コンピュータ読み取り可能な記録媒体」は、メモリーカードやCD-ROMのような携帯型の記録媒体に限らず、各種ROM等のコンピュータ内の内部記憶装置や、ハードディスクドライブ等のコンピュータに接続されている外部記憶装置も含み得る。
【0093】
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
【符号の説明】
【0094】
100…デジタルカメラ、200…情報処理装置、210…プロセッサ、215…記憶装置、220…揮発性記憶装置、230…不揮発性記憶装置、231…第1プログラム、232…第2プログラム、237…補正パラメータデータ、238…機械学習モデル、240…表示部、250…操作部、270…通信インタフェース、510…第1畳込層、520…第1プーリング層、530…第2畳込層、540…第2プーリング層、550…第1全結合層、560…第2全結合層、570…第3全結合層、580…判定部、P1s-P6s…パラメータセット、x…座標値、y…座標値、Loss_s…学習ロス、Loss_v…確認ロス、Dout…不具合データ、W1…幅、H1…高さ、LB…ラベル、LS…光源、DV…対象物(プリンタ)、Dx…第1方向、Dy…第2方向、TCi…トーンカーブ