(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022086892
(43)【公開日】2022-06-09
(54)【発明の名称】情報処理装置、および、情報処理方法
(51)【国際特許分類】
G06T 7/00 20170101AFI20220602BHJP
【FI】
G06T7/00 350C
G06T7/00 610
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2020199164
(22)【出願日】2020-11-30
(71)【出願人】
【識別番号】000005267
【氏名又は名称】ブラザー工業株式会社
(74)【代理人】
【識別番号】110001058
【氏名又は名称】特許業務法人鳳国際特許事務所
(72)【発明者】
【氏名】櫻井 孝一
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096BA03
5L096CA04
5L096DA02
5L096GA30
5L096GA51
5L096HA11
5L096KA04
5L096KA15
(57)【要約】
【課題】対象物の検査のための設定を適切に決定する。
【解決手段】
対象物の検査のための情報処理システムであって、対象物の撮影画像を示す撮影画像データを機械学習モデルに入力することによって、対象物の識別情報を特定する特定部と、特定された識別情報を用いて対象物の検査のための設定を決定する決定部と、を備える情報処理システム。
【選択図】
図1
【特許請求の範囲】
【請求項1】
対象物の検査のための情報処理システムであって、
対象物の撮影画像を示す撮影画像データを機械学習モデルに入力することによって、前記対象物の識別情報を特定する特定部と、
特定された識別情報を用いて前記対象物の検査のための設定を決定する決定部と、
を備える情報処理システム。
【請求項2】
請求項1に記載の情報処理システムであって、
前記特定部は、前記対象物の前記識別情報を特定する動作モードとして、前記対象物の複数の撮影画像を示す複数の撮影画像データを前記機械学習モデルに入力することによって前記対象物の前記識別情報を特定する複数画像モードを有する、
情報処理システム。
【請求項3】
請求項2に記載の情報処理システムであって、
前記複数の撮影画像データの前記複数の撮影画像は、前記対象物の互いに異なる部分の画像を含んでいる、
情報処理システム。
【請求項4】
請求項2または3に記載の情報処理システムであって、
前記機械学習モデルは、入力された画像データを用いて複数の識別情報のそれぞれの確信度を出力するように構成されており、
前記特定部は、
1個以上の撮影画像データを前記機械学習モデルに入力することによって前記複数の識別情報のそれぞれに関して1個以上の確信度を取得する取得処理を実行し、
取得済の複数の確信度のうちの最高確信度であって予め決められた第1基準値以上の前記最高確信度が取得される場合には、前記最高確信度に対応付けられた識別情報を、前記対象物の前記識別情報として特定し、
前記第1基準値以上の前記最高確信度が取得されない場合には、前記複数画像モードによる処理として、前記第1基準値以上の前記最高確信度が取得されるまで、最大でN回(Nは2以上の整数)、前記取得処理を繰り返し、
前記N回の前記取得処理によって前記第1基準値以上の前記最高確信度が取得されない場合には、前記N回の前記取得処理によって取得された複数の確信度を用いて、前記対象物の前記識別情報を特定する、
情報処理システム。
【請求項5】
請求項4に記載の情報処理システムであって、
前記特定部は、
前記N回の前記取得処理によって前記第1基準値以上の前記最高確信度が取得されない場合には、前記第1基準値よりも小さい第2基準値以上の確信度が取得された回数が最も多い識別情報を、前記対象物の前記識別情報として特定する、
情報処理システム。
【請求項6】
請求項2または3に記載の情報処理システムであって、
前記機械学習モデルは、入力された画像データを用いて複数の識別情報のそれぞれの確信度を出力するように構成されており、
前記特定部は、前記複数画像モードによる処理として、
L個(Lは2以上の整数)の撮影画像データを前記機械学習モデルに入力することによって前記複数の識別情報のそれぞれに関してL個の確信度を取得し、
前記複数の識別情報のそれぞれに関するL個の確信度を用いて、前記対象物の前記識別情報を特定する、
情報処理システム。
【請求項7】
対象物の検査のための情報処理方法であって、
対象物の撮影画像を示す撮影画像データを機械学習モデルに入力することによって、前記対象物の識別情報を特定する特定工程と、
特定された識別情報を用いて前記対象物の検査のための設定を決定する決定工程と、
を備える情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、対象物の検査のための情報処理に関する。
【背景技術】
【0002】
従来から、種々の対象物(例えば、家電製品、車載用制御ユニット、回路基板など)が、検査されている。対象物の検査には、検査用のプログラム、検査内容、などの種々の設定が用いられる。特許文献1には、共通の検査装置を用いて複数種の制御ユニットを検査するために、制御ユニット自身にその検査を行うための検査プログラムを記憶する技術が提案されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
複数種類の対象物を検査する場合、検査のための設定は、対象物の識別情報(モデル名や品種など)に応じて異なり得る。適切な設定で検査を行うために、対象物の識別情報が特定される。対象物の識別情報を特定するために、識別情報に関連する情報を対象物に記憶させる場合、対象物の構成の自由度が制限される。例えば、情報を記憶するための記憶装置が必要である。一方、検査時にユーザが対象物の識別情報を特定する場合、対象物の構成の自由度は向上するが、ユーザの負担が増大する。対象物の検査のための設定の決定に関しては、工夫の余地があった。
【0005】
本明細書は、対象物の検査のための設定を適切に決定する技術を開示する。
【課題を解決するための手段】
【0006】
本明細書に開示された技術は、以下の適用例として実現することが可能である。
【0007】
[適用例1]対象物の検査のための情報処理システムであって、対象物の撮影画像を示す撮影画像データを機械学習モデルに入力することによって、前記対象物の識別情報を特定する特定部と、特定された識別情報を用いて前記対象物の検査のための設定を決定する決定部と、を備える情報処理システム。
【0008】
この構成によれば、対象物の検査のための設定を、対象物の識別情報に適した設定に決定できる。
【0009】
なお、本明細書に開示の技術は、種々の態様で実現することが可能であり、例えば、情報処理方法および情報処理装置、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体(例えば、一時的ではない記録媒体)、等の形態で実現することができる。
【図面の簡単な説明】
【0010】
【
図1】一実施例としての情報処理装置を示す説明図である。
【
図2】(A)-(H)は、撮影画像の例を示す概略図である。
【
図3】機械学習モデル238の例を示すブロック図である。
【
図4】トレーニング処理の例を示すフローチャートである。
【
図5】対象物の検査処理の例を示すフローチャートである。
【
図6】注目プリンタのモデル名を特定する処理の例を示すフローチャートである。
【
図7】注目プリンタのモデル名を特定する処理の例を示すフローチャートである。
【
図8】検査設定データ239を決定する処理の例を示すフローチャートである。
【
図10】注目プリンタのモデル名を特定する処理の別の実施例を示すフローチャートである。
【
図11】注目プリンタのモデル名を特定する処理の別の実施例を示すフローチャートである。
【発明を実施するための形態】
【0011】
A.第1実施例:
A1.装置構成:
図1は、一実施例としての情報処理装置を示す説明図である。本実施例では、情報処理装置200は、例えば、パーソナルコンピュータである。情報処理装置200は、検査の対象物(例えば、プリンタなどの製品)の撮影画像を用いて、対象物の検査のための設定を決定する。また、情報処理装置200は、決定された設定に基づいて、対象物を検査する。情報処理装置200は、プロセッサ210と、記憶装置215と、表示部240と、操作部250と、通信インタフェース270と、を備えている。これらの要素は、バスを介して互いに接続されている。記憶装置215は、揮発性記憶装置220と、不揮発性記憶装置230と、を含んでいる。
【0012】
プロセッサ210は、データ処理を行うように構成された装置であり、例えば、CPUである。揮発性記憶装置220は、例えば、DRAMであり、不揮発性記憶装置230は、例えば、フラッシュメモリである。不揮発性記憶装置230は、プログラム231-233と、機械学習モデル238と、複数の検査設定データ239と、を格納している。
【0013】
機械学習モデル238は、対象物の撮影画像を用いて対象物の識別情報(例えば、対象物のモデル名)を予測する予測モデルである。本実施例では、機械学習モデル238は、プログラムモジュールである。第1プログラム231は、機械学習モデル238のトレーニング処理のためのプログラムである。第2プログラム232は、対象物の検査のための設定を、対象物の撮影画像を用いて決定する処理のためのプログラムである。第3プログラム233は、決定された設定に従って対象物を検査する処理のためのプログラムである。複数の検査設定データ239は、それぞれ、対象物の検査のための設定を示している。検査のための設定は、対象物の識別情報毎に異なっている。検査設定データ239は、検査設定データ239に対応付けられた識別情報を示すデータを、含んでいる。プロセッサ210は、プログラム231-233の実行に使用される種々の中間データを、記憶装置215(例えば、揮発性記憶装置220、不揮発性記憶装置230のいずれか)に、一時的に格納する。プログラム231-233と、機械学習モデル238と、複数の検査設定データ239と、の詳細については、後述する。
【0014】
表示部240は、液晶ディスプレイ、有機ELディスプレイなどの、画像を表示するように構成された装置である。操作部250は、ボタン、レバー、表示部240上に重ねて配置されたタッチパネルなどの、ユーザによる操作を受け取るように構成された装置である。ユーザは、操作部250を操作することによって、種々の要求と指示を情報処理装置200に入力可能である。通信インタフェース270は、他の装置と通信するためのインタフェースである(例えば、USBインタフェース、有線LANインタフェース、IEEE802.11の無線インタフェース)。通信インタフェース270には、デジタルカメラ100が接続されている。デジタルカメラ100は、検査の対象物DVを撮影することによって、撮影画像の撮影画像データを生成する。以下、対象物DVがプリンタであることとする(対象物DVを、プリンタDVとも呼ぶ)。
【0015】
A2.撮影画像:
図2(A)-
図2(H)は、撮影画像の例を示す概略図である。
図2(A)-
図2(D)は、対象物の例である第1プリンタDV1の撮影画像を示している。
図2(A)-
図2(D)の画像IM1a-IM1dは、互いに異なる方向から見た第1プリンタDV1を示しており、具体的には、第1プリンタDV1の上面図、左側面図、正面図、右側面図を、それぞれ示している。
図2(E)-
図2(H)は、第1プリンタDV1のモデル名とは異なる別のモデル名の第2プリンタDV2の撮影画像を示している。以下、第1プリンタDV1のモデル名を、第1モデル名と呼び、第2プリンタDV2のモデル名を、第2モデル名と呼ぶ。
図2(E)-
図2(H)の画像IM2a-IM2dは、第2プリンタDV2の上面図、左側面図、正面図、右側面図を、それぞれ示している。第1プリンタDV1と第2プリンタDV2との間では、モデル名が異なるので、外観の少なくとも一部が異なっている。なお、
図2(D)に示すように、第1プリンタDV1には、第1ラベルDV1Lが貼られている。
図2(F)に示すように、第2プリンタDV2には、第1ラベルDV1Lとは異なる第2ラベルDV2Lが貼られている。後述するように、本実施例では、適切なラベルDV1L、DV2LがプリンタDV1、DV2に貼られているか否かが、検査される。適切なラベルは、プリンタのモデル名によって異なっている。
【0016】
A3.機械学習モデルの構成:
図3は、機械学習モデル238の例を示すブロック図である。機械学習モデル238には、プリンタDVの撮影画像IMを示す撮影画像データDinが入力される。撮影画像IMとしては、
図2(A)-
図2(H)のように、種々の方向から見たプリンタDVの画像が用いられる。撮影画像IMは、第1方向Dxと、第1方向Dxに垂直な第2方向Dyと、に沿ってマトリクス状に並ぶ複数の画素のそれぞれの色値によって、表されている。幅W1は、第1方向Dxの画素数であり、高さH1は、第2方向Dyの画素数である。本実施例では、色値は、R(赤)、G(緑)、B(青)の3個の成分値で表されている。撮影画像データDinは、(H1×W1)個の画素のそれぞれの3個の成分値(R値、G値、B値)を示すビットマップデータ、すなわち、(H1×W1×3)個の値を示すデータである。
【0017】
機械学習モデル238は、入力された撮影画像データDinを用いて、撮影画像IMによって示されるプリンタDVのモデル名を予測する。プリンタDVのモデル名は、予め決められたk個(kは2以上の整数)のモデル名から予測される。本実施例では、機械学習モデル238は、1番からk番までのk個のモデル名のそれぞれ確信度を示す確信度データDoutを出力する。図中の確信度Piは、i番目のモデル名の確信度を示している(iは、1以上、k以下の整数)。確信度Piは、対象物DVのモデル名がi番目のモデル名である可能性の高さを示している。
【0018】
本実施例では、機械学習モデル238は、CNN(Convolutional Neural Network)と呼ばれる人工ニューラルネットワークである。機械学習モデル238は、第1畳込層510と、第1プーリング層520と、第2畳込層530と、第2プーリング層540と、第1全結合層550と、第2全結合層560と、第3全結合層570と、を有している。これらの層510-570は、この順番に、接続されている。
【0019】
撮影画像データDinは、第1畳込層510に入力される。
【0020】
畳込層510、530は、入力されるデータに対して、畳込処理とバイアスの加算処理とを含む処理を実行する。畳込処理は、直前の層から入力されたデータに対して、(p×q×r)次元のs個のフィルタを順次に適用し、入力されたデータとフィルタとの相関を示す相関値を算出する処理である(p、q、r、sは、1以上の整数)。各フィルタを適用する処理では、フィルタをスライドさせながら複数個の相関値が順次に算出される。1個のフィルタは、(p×q×r)個の重みを含んでいる。バイアスの加算処理は、算出された相関値に、バイアスを加算する処理である。バイアスは、1個のフィルタに対して1個ずつ準備されている。なお、フィルタの次元(p×q×r)とフィルタの数sとは、通常は、複数の畳込層510、530の間で異なっている。
【0021】
畳込層510、530によって生成されるデータは、活性化関数に入力されて変換された後に、次の層(プーリング層520、540)に入力される。本実施例では、活性化関数として、ReLU(Rectified Linear Unit)が用いられる。
【0022】
プーリング層520、540は、直前の畳込層から入力されたデータに対して、マックスプーリング(MaxPooling)を行って、データの次元数を削減する。マックスプーリングは、いわゆるダウンサンプリングによって次元数を削減する処理であり、所定サイズ(例えば、2×2)のウィンドウを所定のストライド(例えば、2)でスライドさせつつ、ウィンドウ内の最大値を選択することによって次元数を削減する。プーリング層520、540によって生成されるデータは、そのまま、次の層(層530、550)に入力される。
【0023】
全結合層550、560、570は、直前の層から入力されたm次元のデータ(すなわち、m個の値。mは2以上の整数)を用いて、n次元のデータ(すなわち、n個の値。nは2以上の整数)を出力する。出力されるn個の値のそれぞれは、入力されるm個の値で構成されるベクトルとm個の重みで構成されるベクトルとの内積に、バイアスを加えた値(内積+バイアス)である。全結合層550、560、570は、(m×n)個の重みとn個のバイアスとを用いて、n次元のデータを出力する。なお、入力データの次元数mと出力データの次元数nとは、通常は、複数の全結合層550、560、570の間で異なっている。
【0024】
全結合層550、560によって生成される各値は、活性化関数に入力されて変換された後に、次の層(全結合層560、570)に入力される。活性化関数としては、例えば、ReLUが用いられる。
【0025】
最後の第3全結合層570よって生成されたデータ(k個の値)は、活性化関数に入力されて変換される。活性化関数としては、SoftMaxが用いられる。Softmaxは、k個の値の合計値が1になるように、k個の値を正規化する。正規化された値の範囲は、ゼロ以上、1以下である。活性化関数によって変換済みのk個の値がk個のモデル名の確信度をそれぞれ示すように、機械学習モデル238はトレーニングされる。確信度は、対応するモデル名が正解である確率と相関を有している。確信度データDoutは、k個のモデル名に関する確率分布を示している。
【0026】
なお、
図3において、各層の左側の数値(例えば、H1×W1×D1)は、その層に入力されるデータの次元数を示している。各層の右側の数値(例えば、H2×W2×D1)は、その層から出力されるデータの次元数を示している。各データの次元数は、種々の値であってよい。例えば、H1=W1=500、D1=8、H2=W2=50、D2=16、H3=W3=25、D3=512、D4=64であってよい。モデル名の数kも、種々の値であってよい。例えば、kは、2、3、4などの2以上の種々の数であってよい。
【0027】
A4.トレーニング処理:
図4は、機械学習モデル238(
図3)のトレーニング処理の例を示すフローチャートである。機械学習モデル238は、撮影画像IMのプリンタDVのモデル名の確信度が高くなるように、トレーニングされる。トレーニングによって、各層510-570のそれぞれの演算に用いられる複数の演算パラメータ(例えば、畳込層510、530の複数のフィルタの複数の重みと複数のバイアス、全結合層550、560、570の複数の重みと複数のバイアス、など)が、調整される。プロセッサ210は、第1プログラム231に従って、トレーニングを行う。
【0028】
S10では、プロセッサ210は、機械学習モデル238の複数の演算パラメータを初期化する。例えば、各演算パラメータは、乱数値に設定される。
【0029】
S20では、プロセッサ210は、学習用のデータセットを生成する。まず、作業者は、デジタルカメラ100を用いて、プリンタを撮影する。これにより、デジタルカメラ100は、撮影画像データを生成する。本実施例では、作業者は、k種類のモデル名のそれぞれのプリンタを撮影する。
図2(A)-
図2(H)で説明したように、作業者は、1個のプリンタを種々の方向から撮影する。これにより、デジタルカメラ100は、1個のプリンタの複数の撮影画像データを生成する。また、適切なトレーニングのために、k種類のモデル名のそれぞれに関し、多数の撮影画像データが生成される。例えば、1個のプリンタが、複数回に亘って、撮影されてよい。また、1種類のモデル名に関し、複数のプリンタが撮影されてよい。
【0030】
プロセッサ210は、デジタルカメラ100から撮影画像データを取得する。また、プロセッサ210は、撮影画像データに対応するモデル名を示すモデル名情報を、作業者に入力させる。モデル名は、プリンタを識別する識別情報の例である。そして、プロセッサ210は、撮影画像データと、撮影画像データに対応するモデル名情報を示すデータ(ラベルデータ、または、教師データとも呼ぶ)と、を関連付けて、記憶装置215(例えば、不揮発性記憶装置230)に格納する。本実施例では、ラベルデータは、確信度データDoutの目標値(すなわち、正解)を示している。具体的には、モデル名情報に対応するモデル名の確信度が1であり、他のモデル名の確信度がゼロである。以下、互いに関連付けられた撮影画像データとラベルデータとの全体を、学習データとも呼ぶ。また、複数の学習データの全体を、学習データセットとも呼ぶ。
【0031】
なお、いわゆるデータオーギュメンテーションによって、複数の撮影画像データが追加されてよい。また、撮影画像データの生成とモデル名情報の入力(ひいては、S20)は、トレーニング処理の開始よりも前に、予め行われてよい。
【0032】
S30では、プロセッサ210は、記憶装置215に格納されている学習データセットからV個(Vは1以上の整数)の学習データを選択し、V個の学習データから得られるV個の撮影画像データを機械学習モデル238に入力し、V個の確信度データDoutを生成する。プロセッサ210は、機械学習モデル238の演算パラメータに基づく演算を1個の撮影画像データを用いて実行することによって、その撮影画像データに対応する確信度データDoutを算出する。プロセッサ210は、V個の撮影画像データのそれぞれに関して、確信度データDoutを算出する。なお、S30で選択されるV個の学習データとしては、学習データセットのうちの未使用の学習データが選択されてよい。これに代えて、学習データセットからランダムにV個の学習データが選択されてもよい。
【0033】
S40では、プロセッサ210は、確信度データDoutと、確信度データDoutの生成に用いられた撮影画像データに対応付けられたラベルデータと、の間の差分を示す誤差値を算出する。誤差値は、予め決められた損失関数に基づいて算出される(このような誤差値は、損失値とも呼ばれる)。本実施例では、損失関数として、いわゆる交差エントロピーが用いられる。交差エントロピーは、2つの確率分布(例えば、確信度データDoutとラベルデータ)の間のずれ量を示す指標値として使用可能である。S40では、プロセッサ210は、V個の誤差値を算出する。なお、損失関数としては、他の種々の関数(例えば、二乗和誤差)が用いられてよい。
【0034】
S50では、プロセッサ210は、V個の誤差値を用いて、機械学習モデル238の複数の演算パラメータを調整する。具体的には、プロセッサ210は、誤差値が小さくなるように、すなわち、確信度データDoutとラベルデータとの間の差分が小さくなるように、所定のアルゴリズムに従って演算パラメータを調整する。例えば、V個の誤差値を用いて算出される指標値(平均値、最大値、中央値、合計値など、差分の大きさと相関を有する種々の値)が小さくなるように、演算パラメータが調整される。所定のアルゴリズムとしては、例えば、誤差逆伝播法と勾配降下法とを用いたアルゴリズムが用いられる。
【0035】
S60では、プロセッサ210は、トレーニングが完了したか否かを判断する。トレーニング完了の条件は、種々の条件であってよい。本実施例では、プロセッサ210は、学習データセットのうち、トレーニング用に用いられた撮影画像データDinとは異なる別の複数の評価用の撮影画像データDinを、機械学習モデル238に入力し、評価用の複数の確信度データDoutを生成する。そして、プロセッサ210は、評価用の複数の確信度データDoutから得られる複数の誤差値が小さいことを示す条件が満たされる場合(例えば、平均誤差値が所定の基準値以下)、トレーニングが完了したと判断する。
【0036】
トレーニングが完了していない場合(S60:No)、プロセッサ210は、S30へ移行して、トレーニングを継続する。トレーニングが完了した場合(S60:Yes)、S70で、プロセッサ210は、調整済の演算パラメータを含む機械学習モデル238を、トレーニング済モデルとして、記憶装置215(ここでは、不揮発性記憶装置230)に格納する。そして、プロセッサ210は、
図4の処理を終了する。
【0037】
トレーニング済の機械学習モデル238は、種々の方向から撮影された撮影画像に対して、適切なモデル名を予測できる。例えば、
図2(A)-
図2(H)の画像がトレーニングに用いられてよい。第1プリンタDV1の撮影画像データが機械学習モデル238に入力される場合、第1モデル名の確信度が1に近くなり、他のモデル名の確信度がゼロに近くなる。ここで、第1プリンタDV1の撮影の方向は、種々の方向であってよい。同様に、第2プリンタDV2の撮影画像データが機械学習モデル238に入力される場合、第2モデル名の確信度が1に近くなり、他のモデル名の確信度がゼロに近くなる。ここで、第2プリンタDV2の撮影の方向は、種々の方向であってよい。このように、最も大きな確信度に対応付けられたモデル名を、撮影画像のプリンタの予測されたモデル名として採用可能である。
【0038】
ただし、種々の場合に、k個の確信度の間の差が小さくなり得る(すなわち、k個の確信度のそれぞれが小さくなり得る)。このような場合としては、例えば、以下の場合が挙げられる。
(1)撮影画像が不具合を有する場合(例えば、撮影画像中のプリンタがぼやけている場合)。
(2)複数のモデル名の間で、プリンタの一部分の外観が類似している場合。
このような場合には、1枚の撮影画像のみに基づくモデル名の予測の精度が、低くなり得る。後述するように、本実施例では、モデル名の予測の精度を向上するために、複数の撮影画像が用いられる。
【0039】
A5.検査処理:
図5は、対象物の検査処理の例を示すフローチャートである。本実施例では、プリンタに適切なラベルが貼られているか否かが検査される。適切なラベルは、モデル名毎に異なっている。例えば、第1プリンタDV1(
図2(D))には、第1ラベルDV1Lが貼られ、第2プリンタDV2(
図2(F))には、第1ラベルDV1Lとは異なる第2ラベルDV2Lが貼られる。本実施例では、モデル名に対応付けられたラベルの有無を検査するために、適切なラベルの画像を示すラベル画像データが用いられる。ラベル画像データは、モデル名毎に、準備される。本実施例では、複数の検査設定データ239(
図1)は、それぞれ、ラベル画像データを含んでいる。
【0040】
また、本実施例では、k個のモデル名のそれぞれのプリンタが、共通の検査処理に従って検査される。例えば、プリンタの製造工場内の1つの生産ライン上で、k個のモデル名のそれぞれのプリンタが検査される。ただし、検査のための設定(本実施例では、適切なラベルの画像を示す検査設定データ239)は、モデル名毎に異なっている。プロセッサ210は、検査対象のプリンタの撮影画像を用いてモデル名を特定し、特定されたモデル名を用いて検査に用いるべき検査設定データ239を決定し、決定された検査設定データ239に基づいてプリンタを検査する。
【0041】
図5の検査処理は、4個のステップS110、S120、S130、S140を含んでいる。プロセッサ210は、第3プログラム233に従って検査処理のS130を実行し、第2プログラム232に従って他のステップS110、S120、S140を実行する。
【0042】
S110では、プロセッサ210は、複数のプリンタ(すなわち、対象物)のうち処理対象のプリンタである注目プリンタを選択する。注目プリンタは、未検査のプリンタから選択される。例えば、生産ライン上の最後に検査されたプリンタの次の順番のプリンタが、注目プリンタとして選択される。
【0043】
S120では、プロセッサ210は、注目プリンタのモデル名(すなわち、識別情報)を特定し(S123)、特定されたモデル名を用いて、注目プリンタの検査に用いるべき検査設定を決定する(S126)。
【0044】
図6、
図7は、S123の処理、すなわち、注目プリンタのモデル名を特定する処理の例を示すフローチャートである。
図7は、
図6の続きを示している。本実施例では、注目プリンタのモデル名を特定するために、注目プリンタの撮影画像が用いられる。
図2(A)-図(H)で説明したように、注目プリンタは、種々の方向(撮影方向と呼ぶ)から撮影される。本実施例では、互いに異なる撮影方向を含むN個(Nは2以上の整数)の撮影設定が、使用可能である。例えば、
図2(A)-
図2(D)のように4個の撮影方向が使用可能であってよい。複数の撮影画像の間で撮影方向が異なる場合、複数の撮影画像は、プリンタの互いに異なる部分の画像を含んでいる。
図6中の撮影回数NPは、撮影に使用された撮影設定の総数を示している。
図6の処理の開始時には、NP=ゼロである。
【0045】
S210では、プロセッサ210は、N個の撮影設定のうちの1以上の未使用の撮影設定から、注目撮影設定を選択する。S220では、注目撮影設定に従って、撮影環境が変更される。例えば、作業者は、注目撮影設定の撮影方向に対応付けられた位置に、デジタルカメラ100を移動させる。これに代えて、N個のデジタルカメラ100が、N個の撮影設定に対応するN個の位置に、それぞれ配置されてもよい。そして、S220では、プロセッサ210は、注目撮影設定に対応するデジタルカメラ100を、撮影用のデジタルカメラとして選択してよい。
【0046】
S230では、プロセッサ210は、デジタルカメラ100に撮影指示を供給する。デジタルカメラ100は、指示に応じて、注目プリンタを撮影し、撮影画像データを生成する。これにより、撮影回数NPは、1増加する。プロセッサ210は、デジタルカメラ100から、撮影画像データを取得する。S235では、プロセッサ210は、取得した撮影画像データを、記憶装置215(例えば、不揮発性記憶装置230)に格納する。
【0047】
S240では、プロセッサ210は、撮影画像データを、トレーニング済の機械学習モデル238(
図3)に入力し、機械学習モデル238に基づく演算を実行する。S250では、プロセッサ210は、機械学習モデル238に基づく演算により、確信度データDout、すなわち、k個のモデル名のそれぞれの確信度を示すデータを取得する。S260では、プロセッサ210は、確信度データDoutを、記憶装置215(例えば、不揮発性記憶装置230)に格納する。
【0048】
S270では、プロセッサ210は、k個の確信度のうちの最高確信度が第1基準値Pt1以上であるか否かを判断する。最高確信度が第1基準値Pt1以上である場合(S270:Yes)、S290で、プロセッサ210は、最高確信度に対応付けられたモデル名を、注目プリンタのモデル名として特定し、
図6、
図7の処理を終了する。第1基準値Pt1は、第1基準値Pt1以上の確信度に基づくモデル名の特定の精度が十分に高くなるように、予め実験的に決定される(例えば、Pt1=0.95)。
【0049】
最高確信度が第1基準値Pt1未満である場合(S270:No)、S280で、プロセッサ210は、N個の撮影設定の中に未使用の撮影設定が残っているか否かを判断する。未使用の撮影設定が残っている場合(S280:Yes)、プロセッサ210は、S210へ移行して、未使用の撮影設定に基づく処理を実行する。なお、未使用の撮影設定が残っている場合、NP<Nである。
【0050】
N個の撮影設定のそれぞれに関して、最高確信度が第1基準値Pt1未満である場合(S270:No、S280:No)、プロセッサ210は、
図7のS310へ移行し、N個の確信度データDoutを用いて、モデル名を特定する。
【0051】
S310では、プロセッサ210は、N個のモデル名のそれぞれのカウンタをゼロに初期化する。後述するように、カウンタは、大きな確信度が得られた回数を数えるために用いられる。
【0052】
S320では、プロセッサ210は、N個の撮影画像のうちの1以上の未処理の撮影画像から、注目撮影画像を選択する。S330では、注目撮影画像に対応付けられた確信度データである注目確信度データを記憶装置215から取得する。N個の撮影画像にそれぞれ対応するN個の確信度データは、S260(
図6)で、記憶装置215に格納されている。
【0053】
S340では、プロセッサ210は、注目確信度データのk個の確信度が、第2基準値Pt2以上の確信度を含むか否かを判断する。S340の判断結果がYesである場合、S350で、プロセッサ210は、第2基準値Pt2以上の確信度に対応するモデル名のカウンタに1を加算する。そして、プロセッサ210は、S360へ移行する。S340の判断結果がNoである場合、プロセッサ210は、S350をスキップして、S360へ移行する。なお、第2基準値Pt2は、第2基準値Pt2以上の確信度が得られた回数を用いてモデル名の適切な候補が得られるように、予め実験的に決定される。このような第2基準値Pt2は、第1基準値Pt1よりも小さい(例えば、Pt2=0.6)。
【0054】
S360では、プロセッサ210は、N個の撮影画像の全てが処理されたか否かを判断する。未処理の撮影画像が残っている場合(S360:No)、プロセッサ210は、S320へ移行して、未処理の撮影画像に基づく処理を実行する。
【0055】
N個の撮影画像の全てが処理された場合(S360:Yes)、S370で、プロセッサ210は、k個のモデル名にそれぞれ対応するk個のカウンタのうちの最大カウンタを特定する。そして、プロセッサ210は、最大カウンタに対応するモデル名を、候補モデル名として特定する。本実施例では、種々の状況下で1以上のモデル名が候補モデル名として特定されるように、第2基準値Pt2が決定されている。すなわち、1以上のモデル名のそれぞれのカウンタが、1以上であり得る。また、複数のモデル名のカウンタが、同じ最大値を形成する場合がある。この場合、複数のモデル名が、候補モデル名として特定される。
【0056】
S380では、プロセッサ210は、候補モデル名の総数が2以上であるか否かを判断する。候補モデル名の総数が2未満である場合、本実施例では、候補モデル名の総数は、1である。この場合(S380:No)、プロセッサ210は、S410へ移行し、候補モデル名を、注目プリンタのモデル名として特定し、
図6、
図7の処理を終了する。
【0057】
候補モデル名の総数が2以上である場合(S380:Yes)、S390で、プロセッサ210は、第2基準値Pt2以上の確信度の合計値を、モデル名毎に算出する。S400では、プロセッサ210は、候補モデル名を、最大合計値に対応する1つのモデル名に設定する(候補モデル名は、最大合計値に対応する1つのモデル名に絞られる)。そして、プロセッサ210は、S410で候補モデル名を注目プリンタのモデル名として特定し、
図6、
図7の処理を終了する。
【0058】
以下、S410で特定されたモデル名(すなわち、注目プリンタのモデル名)を、注目モデル名とも呼ぶ。
【0059】
図6、
図7の処理、すなわち、
図5のS123の終了の後、
図5のS126で、プロセッサ210は、使用すべき検査設定データ239を、注目モデル名を用いて決定する。上述したように、本実施例では、検査設定データ239は、モデル名に対応付けられたラベル画像のデータを含んでいる。
【0060】
図8は、検査設定データ239を決定する処理の例を示すフローチャートである。S510では、プロセッサ210は、現行の検査設定データ239が、注目モデル名に対応付けられたものであるか否かを判断する。現行の検査設定データ239は、前回の検査で用いられた検査設定データ239であり、既に取得済の検査設定データ239である。S510の判断結果がYesである場合、プロセッサ210は、S520で、現行の検査設定データ239を、そのまま、今回の検査で使用すべき検査設定データ239として決定し、
図8の処理を終了する。
【0061】
現行の検査設定データ239が、注目プリンタのモデル名に対応付けられたものとは異なる場合(S510:No)、プロセッサ210は、S530へ移行する。今回の検査が1回目の検査である場合、現行の検査設定データは取得されていない。この場合も、S510の判断結果は、Noであることとする。S530では、プロセッサ210は、不揮発性記憶装置230(
図1)に格納された複数の検査設定データ239を参照し、注目モデル名に対応付けられた検査設定データ239が存在するか否かを判断する。
【0062】
注目モデル名に対応付けられた検査設定データが見つかった場合(S530:Yes)、S540で、プロセッサ210は、注目モデル名に対応付けられた検査設定データ239を取得し、取得した検査設定データ239を今回の検査で使用すべき検査設定データとして決定する。そして、プロセッサ210は、
図8の処理を終了する。
【0063】
以下、複数の検査設定データ239(
図1)のうち、今回の検査で使用すべき検査設定データとして決定されたデータ(すなわち、注目プリンタのモデル名に対応付けられた検査設定データ239)を、注目検査設定データ239とも呼ぶ。
【0064】
注目モデル名に対応付けられた検査設定データが見つからない場合(S530:No)、S550で、プロセッサ210は、注目プリンタが検査対象ではないことを作業者に通知し、検査処理を中止する。通知方法は、任意の方法であってよい。例えば、プロセッサ210は、表示部240に、警告メッセージを表示してよい。また、プロセッサ210は、図示しないスピーカーから警告音を出力してもよい。
【0065】
図8の処理、すなわち、
図5のS126の終了の後、
図5のS130で、プロセッサ210は、注目検査設定データ239を用いる注目プリンタの検査処理を実行する。
図9は、検査処理の例を示すフローチャートである。S610では、プロセッサ210は、注目プリンタの撮影画像データを取得する。本実施例では、S610は、
図6のS220、S230、S235と同様に行われる。ここで、デジタルカメラ100は、注目プリンタの外面のうち、ラベルが貼られるべき外面を撮影する。プロセッサ210は、デジタルカメラ100から、撮影画像データを取得する。
【0066】
S620では、プロセッサ210は、注目検査設定データ239と注目プリンタの撮影画像データとを用いて、注目プリンタを検査する。本実施例では、プロセッサ210は、注目検査設定データ239によって示されるラベルの画像と、撮影画像と、のパターンマッチングによって、撮影画像からラベルの画像を検出する。ラベルの画像が検出された場合、検査結果は合格である。ラベルの画像が検出されない場合、検査結果は不合格である。
【0067】
S630では、プロセッサ210は、検査結果を出力する。そして、プロセッサ210は、
図9の処理、すなわち、
図5のS130を終了する。検査結果の出力方法は、任意の方法であってよい。例えば、プロセッサ210は、検査結果を示す検査結果データを、記憶装置(例えば、不揮発性記憶装置230、または、情報処理装置200に接続された図示しない外部記憶装置)に出力してよい(これにより、検査結果データが、記憶装置に格納される)。また、プロセッサ210は、検査結果を示す画像データを、表示部240に出力してよい(これにより、検査結果が表示部240に表示される)。
【0068】
S130(
図5)の後、S140で、プロセッサ210は、全てのプリンタの処理が終了したか否かを判断する。未処理のプリンタが残っている場合(S140:No)、プロセッサ210は、S110へ移行して、未処理のプリンタの処理を行う。全てのプリンタの処理が終了した場合(S140:Yes)、プロセッサ210は、
図5の処理を終了する。
【0069】
以上のように、本実施例では、プロセッサ210は、
図5のS123(具体的には、
図6、
図7の処理)で、対象物の例であるプリンタDVの撮影画像を示す撮影画像データDinを機械学習モデル238に入力することによって、プリンタの識別情報の例であるモデル名を特定する。そして、
図5のS126(具体的には、
図8の処理)では、プロセッサ210は、特定されたモデル名を用いてプリンタの検査のための検査設定データ239を決定する。従って、プロセッサ210は、プリンタの検査のための設定を、プリンタのモデル名に適した設定に決定できる。なお、プロセッサ210を備える情報処理装置200は、対象物の検査のための情報処理システムの例である。
【0070】
また、
図6、
図7で説明したように、プロセッサ210は、プリンタのモデル名を特定する動作モードとして、プリンタの複数の撮影画像を示す複数の撮影画像データを機械学習モデル238に入力することによってプリンタのモデル名を特定する複数画像モードを有する。具体的には、最初に処理される撮影画像データから得られる最高確信度が第1基準値Pt1未満である場合に(S270:No)、プロセッサ210は、複数画像モードでモデル名を特定する。複数画像モードでは、複数の撮影画像を示す複数の撮影画像データがモデル名の特定に用いられるので、モデル名の誤特定の可能性を低減できる。
【0071】
また、
図6で撮影設定について説明したように、複数の撮影画像データの複数の撮影画像は、プリンタの互いに異なる部分の画像を含んでいる(例えば、
図2(A)-
図2(D))。このように、複数画像モードでは、プリンタの互いに異なる部分の画像を含む複数の撮影画像がモデル名の特定に用いられるので、モデル名の誤特定の可能性を低減できる。例えば、複数のモデル名の間でプリンタの外観の一部分が類似する場合であっても、非類似な部分の画像を含む撮影画像が用いられるので、モデル名の誤特定の可能性を低減できる。
【0072】
また、
図4で説明したように、機械学習モデル238は、入力された画像データを用いて複数のモデル名のそれぞれの確信度を出力するように構成されている。そして、
図6、
図7で説明したように、プロセッサ210は、1個の撮影画像データを機械学習モデル238に入力することによって複数のモデル名のそれぞれに関して1個の確信度を取得する取得処理(S240-S250)を実行する(S240-S250)。そして、取得済の複数の確信度のうちの最高確信度であって予め決められた第1基準値Pt1以上の最高確信度が取得される場合には(S270:Yes)、プロセッサ210は、最高確信度に対応付けられたモデル名を、プリンタのモデル名として特定する(S290)。第1基準値Pt1以上の最高確信度が取得されない場合には(S270:No)、プロセッサ210は、複数画像モードによる処理として、第1基準値Pt1以上の最高確信度が取得されるまで、最大でN回(Nは2以上の整数)、上記の取得処理(S240-S250)を繰り返す(S280:Yes)。N回の取得処理によって第1基準値Pt1以上の最高確信度が取得されない場合には(S270:No、S280:No)、プロセッサ210は、N回の取得処理(S240-S250)によって取得された複数の確信度を用いて、プリンタのモデル名を特定する(
図7)。
【0073】
以上のように、第1基準値Pt1以上の最高確信度が取得される場合には、プロセッサ210は、最高確信度に対応付けられたモデル名を、プリンタのモデル名として特定するので、プロセッサ210は、ラベル名の誤特定の可能性を低減できる。また、N回の取得処理によって第1基準値Pt1以上の最高確信度が取得されない場合には、プロセッサ210は、N回の取得処理によって取得された複数の確信度を用いて、プリンタのモデル名を特定するので、プロセッサ210は、ラベル名の誤特定の可能性を低減できる。
【0074】
また、N回の取得処理によって第1基準値Pt1以上の最高確信度が取得されない場合には(
図6:S280:No)、
図7で説明したように、プロセッサ210は、第1基準値Pt1よりも小さい第2基準値Pt2以上の確信度が取得された回数が最も多いラベル名を、プリンタのラベル名として特定する(S370、S380:No、S410)。従って、プロセッサ210は、ラベル名の誤特定の可能性を低減できる。
【0075】
B.第2実施例:
図10、
図11は、注目プリンタのモデル名を特定する処理の別の実施例を示すフローチャートである。
図10、
図11の処理は、
図5のS123で、
図6、
図7の処理の代わりに実行される。検査処理(
図5)の他の部分の処理は、第1実施例の対応する部分の処理と同じである。検査処理を実行する情報処理装置の構成は、
図1の情報処理装置200の構成と同じである。
【0076】
本実施例では、
図6、
図7の実施例とは異なり、プロセッサ210は、最高確信度に拘わらずに、L個(Lは2以上の整数)の撮影画像データのそれぞれの確信度データDoutを取得する。そして、L個の確信度データDoutを用いて、モデル名を特定する。なお、Lは、互いに異なる撮影方向を含む撮影設定の総数を示している。L個の撮影設定は、
図6、
図7の実施例のN個の撮影設定と同じであってよい。
【0077】
図10のS210、S220、S230、S235は、
図6のS210、S220、S230、S235と、それぞれ同じである。S280は、
図6のS280と同じである。未使用の撮影設定が残っている場合(S280:Yes)、プロセッサ210は、S210へ移行して、未使用の撮影設定に基づく処理を実行する。
【0078】
L個の撮影設定に基づくL個の撮影画像データの取得が完了した場合(S280:No)、S730で、プロセッサ210は、L個の撮影画像データのうちの1以上の未処理の撮影画像データから、注目撮影画像データを選択する。続くS740、S750、S760は、撮影画像データとしてS730で選択された注目撮影画像データが用いられる点を除いて、
図6のS240、S250、S260と、それぞれ同じである。
【0079】
S770では、プロセッサ210は、L個の撮影画像データの全てが処理されたか否かを判断する。未処理の撮影画像データが残っている場合(S770:Yes)、プロセッサ210は、S730へ移行して、未処理の撮影画像データに基づく処理を実行する。
【0080】
L個の撮影画像データの全てが処理された場合(S770:No)、プロセッサ210は、
図11のS810へ移行する。S810、S820、S830は、
図7のS310、S320、S330とそれぞれ同じである。S840では、プロセッサ210は、注目確信度データのk個の確信度のうちの最高確信度が第3基準値Pt3以上であるか否かを判断する。最高確信度が第3基準値Pt3以上である場合(S840:Yes)、S850で、プロセッサ210は、最高確信度に対応するモデル名のカウンタに1を加算し、S860へ移行する。S840の判断結果がNoである場合、プロセッサ210は、S850をスキップして、S860へ移行する。
【0081】
なお、第3基準値Pt3は、第3基準値Pt3以上の最高確信度が得られた回数を用いてモデル名の適切な候補が得られるように、予め実験的に決定される(例えば、Pt3=0.9)。
【0082】
S860では、プロセッサ210は、L個の撮影画像の全てが処理されたか否かを判断する。未処理の撮影画像が残っている場合(S860:No)、プロセッサ210は、S820へ移行して、未処理の撮影画像に基づく処理を実行する。
【0083】
L個の撮影画像の全てが処理された場合(S860:Yes)、プロセッサ210は、S870へ移行する。S870、S880、S890、S900、S910は、S890で第2基準値Pt2の代わりに第3基準値Pt3が用いられる点を除いて、
図7のS370、S380、S390、S400、S410と、それぞれ同じである。すなわち、S870では、プロセッサ210は、最大カウンタに対応するモデル名を、候補モデル名として特定する。候補モデル名の総数が1である場合(S880:No)、プロセッサ210は、候補モデル名を注目プリンタのモデル名として特定し(S910)、
図10、
図11の処理を終了する。候補モデル名の総数が2以上である場合(S880:Yes)、プロセッサ210は、第3基準値Pt3以上の確信度の合計値をモデル名毎に算出する(S890)。そして、プロセッサ210は、最大合計値に対応するモデル名を、候補モデル名として特定し(S900、S910)、
図10、
図11の処理を終了する。
【0084】
以上のように、本実施例では、プロセッサ210は、プリンタのモデル名を特定する動作モードとして、プリンタの複数の撮影画像を示す複数の撮影画像データを機械学習モデル238に入力することによってプリンタのモデル名を特定する複数画像モードを有する。本実施例では、
図6、
図7の実施例とは異なり、最初に処理される撮影画像データから得られる最高確信度に拘らずに、プロセッサ210は、複数画像モードでモデル名を特定する。具体的には、プロセッサ210は、L個(Lは2以上の整数)の撮影画像データを機械学習モデル238に入力することによって複数のモデル名のそれぞれに関してL個の確信度を取得する(S740、S750)。そして、プロセッサ210は、複数のモデル名のそれぞれに関するL個の確信度を用いて、プリンタのモデル名を特定する(
図11)。このように、複数のモデル名のそれぞれに関するL個の確信度を用いてプリンタのモデル名が特定されるので、プロセッサ210は、モデル名の誤特定の可能性を低減できる。
【0085】
C.変形例:
(1)検査の対象物は、プリンタに限らず、スキャナ、複合機、デジタルカメラ、カッティングマシン、携帯端末、などの任意の製品であってよい。また、対象物の識別情報は、モデル名に限らず、対象物を複数のクラスに分類する場合の対象物のクラスを示す任意の情報であってよい。識別情報(すなわち、クラス)は、例えば、製造工場、製造時期、製造ロット番号、製造者、のいずれかを含んでよい。
【0086】
(2)
図6、
図7の特定処理において、確信度データDoutの取得処理(S240-S250)では、プロセッサ210は、J個(Jは2以上の整数)の撮影画像データを機械学習モデル238に入力することによって、J個の確信度データDoutを取得してよい。この場合、S270では、プロセッサ210は、J個の確信度データDoutに含まれる(J×k)個の確信度から最高確信度を特定する。このように、プロセッサ210は、1個以上の撮影画像データを機械学習モデル238に入力することによって複数の識別情報のそれぞれに関して1個以上の確信度を取得してよい。そして、プロセッサ210は、取得済の複数の確信度のうちの最高確信度を、第1基準値Pt1と比較してよい。
【0087】
(3)
図6、
図7の特定処理において、第1基準値Pt1以上の最高確信度が取得されない場合の識別情報の特定方法は、
図7の処理に限らず、高い確信度に対応付けられた識別情報を採用する種々の処理であってよい。例えば、プロセッサ210は、取得済の複数の確信度を用いて識別情報毎に合計確信度を算出し、最大の合計確信度に対応する識別情報を採用してよい。また、プロセッサ210は、N個の確信度データDoutのそれぞれに関して、最大の確信度の識別情報を特定する。プロセッサ210は、識別情報毎に、最大の確信度が得られた回数を数える。そして、プロセッサ210は、最大の確信度が得られた回数が最も多い識別情報を採用してよい。
【0088】
同様に、
図10、
図11の特定処理においても、識別情報の特定方法は、
図11の処理に限らず、高い確信度に対応付けられた識別情報を採用する種々の処理であってよい。例えば、プロセッサ210は、最大の合計確信度に対応する識別情報を採用してよい。また、プロセッサ210は、最大の確信度が得られた回数が最も多い識別情報を採用してよい。
【0089】
(4)識別情報を特定する処理は、
図6、
図7の処理と、
図10、
図11の処理と、に代えて、他の種々の処理であってよい。例えば、複数の確信度の合計値を用いる実施例と変形例とにおいて、合計値の代わりに、平均値、最大値などの確信度の大きさと相関を有する種々の指標値が用いられてよい。また、複数の識別情報(例えば、モデル名)の間で対象物の外観が大幅に異なる場合には、プロセッサ210は、1個の撮影画像データを用いて対象物の識別情報を特定してよい。例えば、プロセッサ210は、1個の確信度データDoutに含まれる複数の確信度のうち、最高確信度に対応付けられた識別情報を採用してよい。
【0090】
(5)上記第1実施例および第2実施例のように、機械学習モデル238のトレーニング、および、識別情報の特定には、1個の対象物を示す複数の撮影画像データが用いられ得る。ここで、1個の対象物を示す複数の撮影画像データの間では、対象物のうちの対象画像中に示される部分が互いに異なっている。これに代えて、1個の対象物を示す複数の撮影画像データの間では、撮影に関する他の種々の条件が異なっていてよい。
【0091】
例えば、1個の対象物を示す複数の撮影画像データの間では、対象物のうちの対象画像中に示される部分がおおよそ同じであるものの、撮影方向が少しずつ異なっていてよい。この場合も、機械学習モデル238の適切なトレーニングと、識別情報の適切な特定とが、可能である。
【0092】
また、1個の対象物を示す複数の撮影画像データの間では、撮影時の光源の明るさが異なっていてよい。明るい光源下で撮影された撮影画像は、暗い色の対象物の形状を適切に表現し得る。暗い光源下で撮影された撮影画像は、明るい色の対象物の形状を適切に表現し得る。検査対象の複数の対象物が、暗い色の対象物と、明るい色の対象物と、を含む場合に、光源の互いに異なる明るさに対応する複数の撮影画像データは、機械学習モデル238のトレーニングと識別情報の特定とに、各対象物の形状を適切に反映させることができる。
【0093】
また、対象物の撮影には、複数の種類の光源が用いられてよい(例えば、蛍光灯と白熱灯)。そして、1個の対象物を示す複数の撮影画像データの間では、撮影時の光源の種類が異なっていてよい。撮影画像中に表現される対象物の形状の明瞭性は、対象物の色と光源の種類との組み合わせに応じて異なり得る。検査対象の複数の対象物が、互いに異なる色を有する複数の対象物を含む場合、光源の互いに異なる種類に対応する複数の撮影画像データは、機械学習モデル238のトレーニングと識別情報の特定とに、各対象物の形状を適切に反映させることができる。
【0094】
また、対象物の撮影には、複数のモデルのデジタルカメラが用いられてよい。そして、1個の対象物を示す複数の撮影画像データの間では、撮影に用いられるデジタルカメラのモデルが異なってよい。撮影画像の特徴は、デジタルカメラのモデルに応じて異なり得る。従って、撮影画像中に表現される対象物の形状の明瞭性は、デジタルカメラのモデルと対象物との組み合わせに応じて異なり得る。デジタルカメラの互いに異なるモデルに対応する複数の撮影画像データは、機械学習モデル238のトレーニングと識別情報の特定とに、各対象物の形状を適切に反映させることができる。
【0095】
(6)機械学習モデル238に入力される撮影画像データは、対象物の撮影画像を示す種々の画像データであってよい。例えば、撮影画像データの色空間は、RGBに代えて、CMYK色空間などの他の色空間であってよい。また、撮影画像データは、輝度値によって画像を表現してよい。この場合、複数の対象物の間で対象物の色が異なる場合であっても、撮影画像データは、機械学習モデル238のトレーニングと識別情報の特定とに、各対象物の形状を適切に反映させることができる。また、機械学習モデル238に入力される撮影画像データは、デジタルカメラ100によって生成された画像データに対して、解像度変換処理、トリミング処理、色変換処理などの種々の画像処理を実行することによって、生成されてよい。
【0096】
(7)機械学習モデルの構成は、
図3の構成に代えて、対象物を複数のクラスに分類する任意の構成であってよい。例えば、畳込層とプーリング層と全結合層とのそれぞれの総数は、適宜に変更されてよい。また、畳込層とプーリング層とが省略され、機械学習モデルは、複数の全結合層によって構成されてよい。また、機械学習モデルは、VGG16と呼ばれるCNNであってよい。また、ランダムフォレスト、または、サポートベクターマシンが、採用されてよい。
【0097】
機械学習モデルのトレーニング方法は、
図4の方法に代えて、機械学習モデルに適する種々の方法であってよい。例えば、機械学習モデルに含まれる演算パラメータを調整する方法は、誤差逆伝播法に代えて目標値を伝播させる方法(Target Propagationとも呼ばれる)など、他の種々の方法であってよい。また、トレーニング完了の条件は、機械学習モデルから出力されるデータと、教師データと、の間の差が小さいことを示す種々の条件であってよい。例えば、トレーニング完了の条件は、S40で算出されるV個の誤差値が小さいことを示す条件が満たされることであってよい(例えば、平均誤差値が所定の基準値以下)。これに代えて、プロセッサ210は、作業者から完了指示が入力された場合にトレーニングが完了したと判断し、トレーニングの継続指示が入力された場合にトレーニングが完了していないと判断してもよい。作業者は、
図4のS60で説明した評価用の複数の確信度データDoutから得られる複数の誤差値を参照して、トレーニングを終了するか否かを判断してよい。これに代えて、トレーニング完了の条件は、S30-S50の処理が、所定回数、繰り返されたことであってよい。
【0098】
いずれの場合も、対象物をk個のクラスに分類するために、k個のクラスにそれぞれ対応するk個の値を出力する学習モデルが、採用されてよい。このような学習モデルを以下の教師データを用いてトレーニングすることによって、学習モデルによるのk個の出力値は、各クラス(すなわち、識別情報)の確信度を示すことができる。教師データは、k個の値で構成されており、正解のクラスに対応付けられた値が、正解を示す第1値(例えば、1)であり、他のクラスに対応付けられた値が、不正解を示す第2値(例えば、ゼロ)である。なお、k個のクラス(すなわち、識別情報)のそれぞれの確信度を出力する機械学習モデルの構成とトレーニング方法とは、上記の構成とトレーニング方法に限らず、他の種々の構成とトレーニング方法であってよい。
【0099】
(9)対象物を検査する処理は、
図9で説明した処理に代えて、他の種々の処理であってよい。例えば、S620では、プロセッサ210は、機械学習モデルの一種である物体検出モデルを用いて、撮影画像から注目対象物のモデル名に対応付けられたラベルの画像を検出してよい。物体検出モデルとしては、YOLO(You only look onceの略)と呼ばれるモデルなどの種々の学習モデルを採用可能である。ここで、k個のモデル名にそれぞれ対応するk個の物体検出モデルが準備される。各物体検出モデルは、物体検出モデルに対応するモデル名に対応付けられたラベルの画像を検出するように、予めトレーニングされる。この場合、複数の検査設定データ239(
図1)は、それぞれ、検査設定データに対応付けられた物体検出モデルを識別するデータを含んでよい。
図5のS130では、プロセッサ210は、S126で決定された検査設定データ239に対応付けられた物体検出モデルを用いて、注目対象物を検査する。また、検査処理は、対象物の傷を検出する処理など、対象物に不具合があるか否かを調べる他の任意の処理であってよい。
【0100】
いずれの場合も、検査設定データ239によって示される検査設定は、適切なラベルの画像のデータに代えて、検査のための他の任意の設定であってよい。例えば、対象物の生産ラインが、k個の識別情報にそれぞれ対応するk本の検査ラインに分岐する場合に、検査設定データ239は、対象物を移送すべき検査ラインを示してよい。また、対象物が、検査のために光源によって照らされ、そして、光源の明るさが、対象物の識別情報に応じて調整されると仮定する。この場合、検査設定データ239は、光源の明るさを示してよい。
【0101】
(10)機械学習モデル238のトレーニング処理(例えば、
図4の処理)と、撮影画像データを用いる識別情報の特定処理(例えば、
図6、
図7の処理と、
図10、
図11の処理)と、識別情報を用いる検査設定の決定処理(例えば、
図8の処理)と、検査設定を用いる検査処理(例えば、
図9の処理)とは、それぞれ、互いに異なる情報処理装置によって実行されてよい。また、トレーニング処理と、識別情報の特定処理と、検査設定の決定処理と、検査設定を用いる検査処理と、から任意に選択された処理が、ネットワークを介して互いに通信可能な複数の装置(例えば、コンピュータなどの情報処理装置)によって分担されてよい。例えば、識別情報の特定処理と、検査設定の決定処理と、の全体は、1以上の情報処理装置を含む情報処理システムによって、実行されてよい。
【0102】
上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。例えば、
図1の機械学習モデル238の機能を、専用のハードウェア回路によって実現してもよい。
【0103】
また、本発明の機能の一部または全部がコンピュータプログラムで実現される場合には、そのプログラムは、コンピュータ読み取り可能な記録媒体(例えば、一時的ではない記録媒体)に格納された形で提供することができる。プログラムは、提供時と同一または異なる記録媒体(コンピュータ読み取り可能な記録媒体)に格納された状態で、使用され得る。「コンピュータ読み取り可能な記録媒体」は、メモリーカードやCD-ROMのような携帯型の記録媒体に限らず、各種ROM等のコンピュータ内の内部記憶装置や、ハードディスクドライブ等のコンピュータに接続されている外部記憶装置も含み得る。
【0104】
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
【符号の説明】
【0105】
100…デジタルカメラ、200…情報処理装置、210…プロセッサ、215…記憶装置、220…揮発性記憶装置、230…不揮発性記憶装置、231…第1プログラム、232…第2プログラム、233…第3プログラム、238…機械学習モデル、239…検査設定データ、240…表示部、250…操作部、270…通信インタフェース、510…第1畳込層、520…第1プーリング層、530…第2畳込層、540…第2プーリング層、550…第1全結合層、560…第2全結合層、570…第3全結合層、DV1L…第1ラベル、DV2L…第2ラベル、Din…撮影画像データ、Dout…確信度データ、IM…撮影画像、NP…撮影回数、DV…対象物(プリンタ)、DV1…第1プリンタ、DV2…第2プリンタ、Pi…確信度、Dx…第1方向、Dy…第2方向