IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ブラザー工業株式会社の特許一覧

特開2023-179333コンピュータプログラム、処理方法、および、処理装置
<>
  • 特開-コンピュータプログラム、処理方法、および、処理装置 図1
  • 特開-コンピュータプログラム、処理方法、および、処理装置 図2
  • 特開-コンピュータプログラム、処理方法、および、処理装置 図3
  • 特開-コンピュータプログラム、処理方法、および、処理装置 図4
  • 特開-コンピュータプログラム、処理方法、および、処理装置 図5
  • 特開-コンピュータプログラム、処理方法、および、処理装置 図6
  • 特開-コンピュータプログラム、処理方法、および、処理装置 図7
  • 特開-コンピュータプログラム、処理方法、および、処理装置 図8
  • 特開-コンピュータプログラム、処理方法、および、処理装置 図9
  • 特開-コンピュータプログラム、処理方法、および、処理装置 図10
  • 特開-コンピュータプログラム、処理方法、および、処理装置 図11
  • 特開-コンピュータプログラム、処理方法、および、処理装置 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023179333
(43)【公開日】2023-12-19
(54)【発明の名称】コンピュータプログラム、処理方法、および、処理装置
(51)【国際特許分類】
   G06V 10/72 20220101AFI20231212BHJP
   G06T 7/00 20170101ALI20231212BHJP
【FI】
G06V10/72
G06T7/00 350B
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2022092607
(22)【出願日】2022-06-07
(71)【出願人】
【識別番号】000005267
【氏名又は名称】ブラザー工業株式会社
(74)【代理人】
【識別番号】110001058
【氏名又は名称】鳳国際弁理士法人
(72)【発明者】
【氏名】田中 良幸
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096BA08
5L096EA06
5L096FA67
5L096GA10
5L096GA41
5L096HA11
5L096KA04
5L096KA15
5L096MA03
(57)【要約】

【課題】機械学習モデルに入力するための画像データを準備するための負担を軽減する。
【解決手段】コンピュータプログラムは、物体を含む対象画像を示す対象画像データを取得する機能と、マスク画像を示すマスク画像データを生成する機能と、対象画像データに対して、マスク画像データを用いる調整処理含む処理を実行して、入力画像を示す入力画像データを生成する機能と、入力画像データと機械学習モデルとを用いて特定処理を実行する機能と、を実現させる。マスク画像は、特定の変動パターンに従って規定される明るさを示す。特定の変動パターンは、特定の位置から特定方向に離れるに連れて明るさが低下するパターンである。調整処理は、対象画像内の画素の明るさをマスク画像の対応する画素の値に基づいて調整する処理である。特定処理は、入力画像データを機械学習モデルに入力することによって出力データを生成する処理を含む。
【選択図】 図6
【特許請求の範囲】
【請求項1】
コンピュータプログラムであって、
物体を含む対象画像を示す対象画像データを取得する取得機能であって、前記対象画像は、2次元の座標空間に並ぶ複数個の画素によって構成される2次元の画像である、前記取得機能と、
前記対象画像の複数個の画素に対応する複数個の画素を含む2次元のマスク画像を示すマスク画像データを生成する第1生成機能であって、前記マスク画像の複数個の画素の値は、特定の変動パターンに従って規定される明るさを示し、前記特定の変動パターンは、特定の位置から特定方向に離れるに連れて前記明るさが低下するパターンである、前記第1生成機能と、
前記対象画像データに対して、前記マスク画像データを用いる調整処理を含む処理を実行して、入力画像を示す入力画像データを生成する第2生成機能であって、前記調整処理は、前記対象画像内の複数個の画素の明るさを前記マスク画像の対応する画素の値に基づいて調整する処理である、前記第2生成機能と、
前記入力画像データと機械学習モデルとを用いて特定処理を実行する特定処理機能であって、前記特定処理は、前記入力画像データを前記機械学習モデルに入力することによって出力データを生成する処理を含む、前記特定処理機能と、
をコンピュータに実現させる、コンピュータプログラム。
【請求項2】
請求項1に記載のコンピュータプログラムであって、
前記特定の変動パターンは、前記特定の位置を含む複数個の円または多角形を用いて決定される領域ごとに明るさを規定するパターンである、コンピュータプログラム。
【請求項3】
請求項1に記載のコンピュータプログラムであって、
生成すべき前記入力画像は、前記物体と、前記物体の外側に位置する背景と、を含み、
前記第1生成機能は、前記マスク画像データとして、前記物体が位置する物体領域のための第1マスク画像を示す第1マスク画像データと、前記背景が位置する背景領域のための第2マスク画像を示す第2マスク画像データと、を生成し、
前記第2生成機能は、前記対象画像データに対して、前記第1マスク画像データと前記第2マスク画像データとを用いる前記調整処理を実行して、前記入力画像データを生成し、
前記第1マスク画像データは、第1変動パターンに従って規定される明るさを示し、
前記第2マスク画像データは、前記第1変動パターンとは異なる第2変動パターンに従って規定される明るさを示す、コンピュータプログラム。
【請求項4】
請求項3に記載のコンピュータプログラムであって、
前記物体の光学特性と前記背景を構成する被写体の光学特性とは互いに異なり、
前記第1変動パターンは、前記物体の光学特性に対応するパターンであり、
前記第2変動パターンは、前記背景を構成する被写体の光学特性に対応するパターンである、コンピュータプログラム。
【請求項5】
請求項3に記載のコンピュータプログラムであって、
前記第1生成機能は、生成すべき前記入力画像内の前記物体の配置に応じて異なる前記第1マスク画像データを生成する、コンピュータプログラム。
【請求項6】
請求項5に記載のコンピュータプログラムであって、
前記第1生成機能は、生成すべき前記入力画像内の前記物体の位置と角度との少なくとも1つに応じて異なる前記第1マスク画像データを生成する、コンピュータプログラム。
【請求項7】
請求項3に記載のコンピュータプログラムであって、
前記第1生成機能は、
前記入力画像の全体に対応する前記第2マスク画像を示す前記第2マスク画像データを生成し、
前記第2マスク画像データを用いて、前記第2マスク画像のうちの前記物体領域に対応する部分画像を示す部分画像データを生成し、
前記部分画像データを用いて、前記第1マスク画像データを生成する、コンピュータプログラム。
【請求項8】
請求項3に記載のコンピュータプログラムであって、
前記取得機能は、複数個の前記対象画像データを取得し、
前記第2生成機能は、複数個の前記対象画像データに対して、共通の1つの前記第2マスク画像データを用いる前記調整処理を実行して、複数個の前記入力画像データを生成する、コンピュータプログラム。
【請求項9】
請求項1に記載のコンピュータプログラムであって、
前記対象画像データは、前記物体を示す元画像データであって前記物体の作成に用いられる前記元画像データに基づく画像データである、コンピュータプログラム。
【請求項10】
請求項1に記載のコンピュータプログラムであって、
前記特定処理は、複数個の前記入力画像データを用いて、前記機械学習モデルを訓練する訓練処理である、コンピュータプログラム。
【請求項11】
処理方法であって、
物体を含む対象画像を示す対象画像データを取得する取得工程であって、前記対象画像は、2次元の座標空間に並ぶ複数個の画素によって構成される2次元の画像である、前記取得工程と、
前記対象画像の複数個の画素に対応する複数個の画素を含む2次元のマスク画像を示すマスク画像データを生成する第1生成工程であって、前記マスク画像の複数個の画素の値は、特定の変動パターンに従って規定される明るさを示し、前記特定の変動パターンは、特定の位置から特定方向に離れるに連れて前記明るさが低下するパターンである、前記第1生成工程と、
前記対象画像データに対して、前記マスク画像データを用いる調整処理を含む処理を実行して、入力画像を示す入力画像データを生成する第2生成工程であって、前記調整処理は、前記対象画像内の複数個の画素の明るさを前記マスク画像の対応する画素の値に基づいて調整する処理である、前記第2生成工程と、
前記入力画像データと機械学習モデルとを用いて特定処理を実行する特定処理工程であって、前記特定処理は、前記入力画像データを前記機械学習モデルに入力することによって出力データを生成する処理を含む、前記特定処理工程と、
を備える、処理方法。
【請求項12】
処理装置であって、
物体を含む対象画像を示す対象画像データを取得する取得部であって、前記対象画像は、2次元の座標空間に並ぶ複数個の画素によって構成される2次元の画像である、前記取得部と、
前記対象画像の複数個の画素に対応する複数個の画素を含む2次元のマスク画像を示すマスク画像データを生成する第1生成部であって、前記マスク画像の複数個の画素の値は、特定の変動パターンに従って規定される明るさを示し、前記特定の変動パターンは、特定の位置から特定方向に離れるに連れて前記明るさが低下するパターンである、前記第1生成部と、
前記対象画像データに対して、前記マスク画像データを用いる調整処理を含む処理を実行して、入力画像を示す入力画像データを生成する第2生成部であって、前記調整処理は、前記対象画像内の複数個の画素の明るさを前記マスク画像の対応する画素の値に基づいて調整する処理である、前記第2生成部と、
前記入力画像データと機械学習モデルとを用いて特定処理を実行する特定処理部であって、前記特定処理は、前記入力画像データを前記機械学習モデルに入力することによって出力データを生成する処理を含む、前記特定処理部と、
を備える、処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、機械学習モデルを用いて特定処理を実行するためのコンピュータプログラム、処理方法、および、処理装置に関する。
【背景技術】
【0002】
特許文献1には、3DCGモデルデータを用いて大量の顔画像を生成し、該顔画像を用いて顔識別器を機械学習する技術が開示されている。この技術では、照射方向、光源の強度などの照明パラメータを決定し、該照明パラメータに基づいて顔画像が生成される。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2016-216947号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記技術では、3DCGモデルデータを準備する必要があり、また、3DCGモデルデータを用いる処理は相応の処理時間を要する。このために、上記技術を実行する負担は、必ずしも軽いとは言えなかった。
【0005】
本明細書は、機械学習モデルに入力するための画像データを準備するための負担を軽減する新たな技術を開示する。
【課題を解決するための手段】
【0006】
本明細書に開示された技術は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の適用例として実現することが可能である。
【0007】
[適用例1]コンピュータプログラムであって、物体を含む対象画像を示す対象画像データを取得する取得機能であって、前記対象画像は、2次元の座標空間に並ぶ複数個の画素によって構成される2次元の画像である、前記取得機能と、前記対象画像の複数個の画素に対応する複数個の画素を含む2次元のマスク画像を示すマスク画像データを生成する第1生成機能であって、前記マスク画像の複数個の画素の値は、特定の変動パターンに従って規定される明るさを示し、前記特定の変動パターンは、特定の位置から特定方向に離れるに連れて前記明るさが低下するパターンである、前記第1生成機能と、前記対象画像データに対して、前記マスク画像データを用いる調整処理を含む処理を実行して、入力画像を示す入力画像データを生成する第2生成機能であって、前記調整処理は、前記対象画像内の複数個の画素の明るさを前記マスク画像の対応する画素の値に基づいて調整する処理である、前記第2生成機能と、前記入力画像データと機械学習モデルとを用いて特定処理を実行する特定処理機能であって、前記特定処理は、前記入力画像データを前記機械学習モデルに入力することによって出力データを生成する処理を含む、前記特定処理機能と、をコンピュータに実現させる、コンピュータプログラム。
【0008】
上記構成によれば、2次元の対象画像データと、2次元のマスク画像データと、を用いて、機械学習モデルに入力するための入力画像データが生成される。この結果、入力画像データを容易に生成し得る。したがって、例えば、3次元のCGデータを用いる場合と比較して、機械学習モデルに入力するための入力画像データを準備するための負担を軽減することができる。
【0009】
なお、本明細書に開示される技術は、他の種々の形態で実現することが可能であり、例えば、処理方法、処理装置、機械学習モデルの訓練方法、訓練装置、これらの装置および方法を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、等の形態で実現することができる。
【図面の簡単な説明】
【0010】
図1】本実施例の検査システム1000の構成を示すブロック図。
図2】製品300の説明図。
図3】検査準備処理のフローチャート。
図4】訓練画像データ生成処理のフローチャート。
図5】検査準備処理にて用いられる画像の一例を示す図。
図6】光源追加処理のフローチャート。
図7】光源パラメータテーブルPTの一例を示す図。
図8】マスク画像の説明図。
図9】画像生成モデルGNの説明図。
図10】検査処理のフローチャート。
図11】検査処理のフローチャート。
図12】変形例のマスク画像MIB、MICの説明図。
【0011】
A.実施例
A-1.検査装置の構成
次に、実施の形態を実施例に基づき説明する。図1は、本実施例の検査システム1000の構成を示すブロック図である。検査システム1000は、処理装置100と、撮像装置400と、を含んでいる。処理装置100と撮像装置400とは、通信可能に接続されている。
【0012】
処理装置100は、例えば、パーソナルコンピュータなどの計算機である。処理装置100は、処理装置100のコントローラとしてのCPU110と、GPU115と、RAMなどの揮発性記憶装置120と、ハードディスクドライブなどの不揮発性記憶装置130と、マウスやキーボードなどの操作部150と、液晶ディスプレイなどの表示部140と、通信部170と、を備えている。通信部170は、外部機器、例えば、撮像装置400と通信可能に接続するための有線または無線のインタフェースを含む。
【0013】
GPU(Graphics Processing Unit)115は、CPU110の制御に従って、3次元グラフィックスなどの画像処理のための計算処理を行うプロセッサである。本実施例では、後述する画像生成モデルGNの演算処理を実行するために利用される。
【0014】
揮発性記憶装置120は、CPU110が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域を提供する。不揮発性記憶装置130には、コンピュータプログラムPGと、光源パラメータテーブルPTと、版下画像データRDと、が格納されている。光源パラメータテーブルPTと版下画像データRDとは、後述する訓練画像データ生成処理において用いられる。光源パラメータテーブルPTと版下画像データRDについては後述する。
【0015】
コンピュータプログラムPGは、後述する画像生成モデルGNの機能をCPU110とGPU115とが協働して実現させるコンピュータプログラムをモジュールとして含んでいる。コンピュータプログラムPGは、例えば、処理装置100の製造者によって提供される。コンピュータプログラムPGは、例えば、サーバからダウンロードされる形態で提供されても良く、DVD-ROMなどに格納される形態で提供されてもよい。CPU110は、コンピュータプログラムPGを実行することにより、後述する検査処理や検査準備処理を実行する。
【0016】
撮像装置400は、二次元イメージセンサを用いて被写体を撮像することによって被写体を表す画像データ(撮像画像データとも呼ぶ)を生成するデジタルカメラである。撮像画像データは、複数個の画素を含む画像を示すビットマップデータであり、具体的には、RGB値によって画素ごとの色を表すRGB画像データである。RGB値は、3個の色成分の階調値(以下、成分値とも呼ぶ)、すなわち、R値、G値、B値を含むRGB表色系の色値である。R値、G値、B値は、例えば、所定の階調数(例えば、256)の階調値である。撮像画像データは、画素ごとの輝度を表す輝度画像データであっても良い。RGB画像データによって示される画像は、縦方向および横方向の2次元の座標空間に並ぶ複数個の画素によって構成される2次元の画像である。
【0017】
撮像装置400は、処理装置100の制御に従って、撮像画像データを生成し、処理装置100に送信する。本実施例では、撮像装置400は、検査処理の検査対象であるラベルLが貼付された製品300を撮像して、検査用の撮像画像を示す撮像画像データを生成するために用いられる。撮像装置400は、上述した素材画像データを生成するために用いられても良い。
【0018】
図2は、製品300の説明図である。図2(A)には、製品300の斜視図が示されている。製品300は、本実施例では、略直方体の筐体30を有するプリンタである。製造工程において、筐体30の前面31(+Y側の面)には、矩形のラベルLが所定の貼付位置に貼付される。
【0019】
図2(B)には、ラベルLが示されている。ラベルLは、例えば、背景Bと、製造者や製品のブランドロゴ、型番、ロット番号等の各種の情報を示す文字TXやマークMKと、を含んでいる。
【0020】
A-2.検査準備処理
検査準備処理は、ラベルLを検査する検査処理(後述)に先立って実行される。検査準備処理では、検査処理にて用いられる画像生成モデルGNの訓練が行われる。図3は、検査準備処理のフローチャートである。
【0021】
S10では、CPU110は、訓練画像データ生成処理を実行する。訓練画像データ生成処理は、版下画像データRDを用いて、機械学習モデルの訓練に用いられる画像データである訓練画像データを生成する処理である。図4は、訓練画像データ生成処理のフローチャートである。
【0022】
S205では、CPU110は、不揮発性記憶装置130から版下画像データRDを取得する。図5は、検査準備処理にて用いられる画像の一例を示す図である。図5(A)には、版下画像データRDによって示されるRIが例示されている。版下画像RIは、ラベルBLを示す画像である。版下画像RIに示されるラベルを、実物のラベルLと区別するために符号「BL」を付す。ラベルBLは、実物のラベルLを表現したCG(コンピュータグラフィックス)画像である。版下画像データRDは、撮像画像データと同様のビットマップデータ、本実施例では、RGB画像データである。版下画像データRDは、ラベルLの作成に用いられるデータである。例えば、ラベルLは、ラベル用のシートに版下画像データRDによって示される版下画像RIを印刷することによって作成される。ただし、本実施例の版下画像RIは、印刷用のサイズとは異なるサイズに調整されていても良い。本実施例では、版下画像RIのサイズ(縦方向および横方向の画素数)は、画像生成モデルGNの入力画像のサイズの70%~80%のサイズに調整されている。
【0023】
S210では、CPU110は、版下画像データRDに対して、平滑化処理を実行する。平滑化処理は、画像を平滑化する処理である。平滑化処理によって、画像内のエッジがぼける。平滑化処理には、例えば、ガウシアンフィルタを用いる平滑化処理が用いられる。例えば、ガウシアンフィルタのパラメータである標準偏差σは、0~3の範囲内でランダムに決定される。これによって、エッジのぼけ方にバラツキを持たせることができる。なお、変形例では、ラプラシアンフィルタやメディアンフィルタを用いる平滑化処理が用いられても良い。
【0024】
S215では、CPU110は、平滑化処理済みの版下画像データRDに対して、ノイズ付加処理を実行する。ノイズ付加処理は、画像に対して、例えば、正規分布に従うノイズであり、例えば全ての画素に対して平均0、分散10のパラメータによって生成される正規分布乱数によるノイズを付加する処理である。
【0025】
S220では、CPU110は、ノイズ付加処理済みの版下画像データRDに対して回転処理を実行する。回転処理は、特定の回転角度で画像を回転させる処理である。特定の回転角度は、例えば、-3度~+3度の範囲内でランダムに決定される。例えば、正の回転角度は時計回りの回転を示し、負の回転角度は反時計回りの回転を示す。回転は、例えば、版下画像DI1の重心を中心として実行される。
【0026】
S210~S220の画像処理済みの版下画像データRDを、以下では、ラベル画像データとも呼ぶ。そして、S210~S220の画像処理済みの版下画像データRDによって示される画像を、以下では、ラベル画像LIとも呼ぶ。図5(B)には、ラベル画像LIの一例が示されている。これらの画像処理と、後述する光源追加処理は、CG画像である版下画像RIを、撮影されたラベルのような見栄えの画像に調整するための処理である。上述した回転処理によって、ラベル画像LIの4辺と、ラベルBL2の4辺と、の間には、隙間ntが生じている。隙間ntの領域は、所定の色、例えば、白色の画素によって埋められている。
【0027】
S230では、CPU110は、背景画像BIを示す背景画像データを生成する。図5(D)には、背景画像BIの一例が示されている。本実施例の背景画像BIは、ラベル画像LIのラベルBL2の色とは異なる背景色を有する単色の画像に、ノイズを付加した画像である。背景色は、例えば、ラベルBL2の色とは異なる色相を有する所定の色範囲において、ランダムに決定される。付加されるノイズには、例えば、上述したノイズ付加処理と同様に、正規分布に従うノイズ、あるいは、ごま塩ノイズが用いられる。背景画像BIのサイズ(縦方向および横方向の画素数)は、画像生成モデルGNの入力画像のサイズである。背景画像データは、ラベル画像データと同様にRGB画像データである。
【0028】
S240では、CPU110は、ラベル画像データに対して光源追加処理を実行する。光源追加処理は、画像内のオブジェクトが所定の光源から光の照射を受けている状態を表現するための処理である。図6は、光源追加処理のフローチャートである。
【0029】
S300では、CPU110は、光源パラメータを設定するか否かを判断する。光源パラメータは、疑似的に光の照射を表現するための光源のパラメータである。初回の光源追加処理では、設定済みの光源パラメータがないので、必ず光源パラメータを設定すると判断される。2回目以降の光源追加処理では、設定済みの光源パラメータを変更する場合に、光源パラメータを設定すると判断され、設定済みの光源パラメータを変更しない場合に、光源パラメータを設定しないと判断される。光源パラメータの変更は、例えば、所定回数(例えば、数回~数10回)に一度程度の割合で行われる。
【0030】
光源パラメータを設定すると判断される場合には(S300:YES)、CPU110は、S305にて、光源パラメータを新たに設定する。光源パラメータは、中心CPの座標(Xc、Yc)と、初期半径Rsと、差分半径Rdと、初期ラベル明度blsと、差分ラベル明度bldと、初期背景明度bbsと、差分背景明度bbdと、を含む。
【0031】
中心CPの座標(Xc、Yc)は、例えば、生成すべき背景画像BI内の1つの点の座標にランダムに決定される。初期半径Rsと差分半径Rdとは、例えば、所定範囲(例えば、ラベル画像LIの幅の5~30%の範囲)内の値にランダムに決定される。
【0032】
初期ラベル明度blsと、差分ラベル明度bldと、初期背景明度bbsと、差分背景明度bbdとは、光源パラメータテーブルPT(図1)を参照して決定される。図7は、光源パラメータテーブルPTの一例を示す図である。光源パラメータテーブルPTは、ラベル用テーブルPT1と、背景用テーブルPT2と、を含んでいる。
【0033】
ラベル用テーブルPT1には、複数種類のラベルの素材(図7の例では、金属A、プラスチックA、紙A)のそれぞれに対応付けて、初期ラベル明度blsと、差分ラベル明度bldと、が記録されている。背景用テーブルPT2には、複数種類の背景の素材(図7の例では、金属B、プラスチックB、紙B)のそれぞれに対応付けて、初期背景明度bbsと、差分背景明度bbdと、が記録されている。
【0034】
初期ラベル明度bls、差分ラベル明度bld、初期背景明度bbs、差分背景明度bbdは、素材の光学特性(反射、吸収、透過などの特性)に応じて決定されている。例えば、金属の反射強度は、プラスチックの反射強度より高く、プラスチックの反射強度は、紙の反射強度より高い。このために、金属の初期ラベル明度blsや差分ラベル明度bldは、プラスチックの初期ラベル明度blsや差分ラベル明度bldより高く、プラスチックの初期ラベル明度blsや差分ラベル明度bldは、紙の初期ラベル明度blsや差分ラベル明度bldより高く設定されている(bls_1>bls_2>bls_3、bld_1>bld_2>bld_3)。初期背景明度bbs、差分背景明度bbdについても同様である(bbs_1>bbs_2>bbs_3、bbd_1>bbd_2>bbd_3)。このように、ラベルの素材や背景を構成する被写体の素材(例えば、製品300の前面31の素材)として想定される素材は異なるところ、これらの素材の光学特性も互いに異なる。本実施例では、ラベルや背景の素材の光学特性に対応する光源パラメータを用いることで、後述するラベルマスク画像LMIや背景マスク画像BMIにおいて、ラベルや背景の素材の光学特性に対応する明るさの変動パターンを実現できる。
【0035】
CPU110は、複数個のラベルの素材の中から、1個の素材をランダムに選択し、ラベル用テーブルPT1を参照して、選択された素材に対応付けられた初期ラベル明度blsと差分ラベル明度bldとを、設定すべき光源パラメータとして決定する。CPU110は、複数個の背景の素材の中から、1個の素材をランダムに選択し、背景用テーブルPT2を参照して、選択された素材に対応付けられた初期背景明度bbsと差分背景明度bbdとを、設定すべき光源パラメータとして決定する。
【0036】
S310では、CPU110は、設定された光源パラメータを用いて、背景マスク画像データを生成する。図8は、マスク画像の説明図である。図8(A)には、マスク画像の概念図が示されている。図8(A)のマスク画像MIは、例えば、電球などの1点の光源から照射される光を表現している。マスク画像MIを示すデータは、画素ごとに明度を示す明度データである。マスク画像MIは、設定された中心CPを有する複数個の円C1~C7によって規定される。最小の円C1の半径は、光源パラメータの1つである初期半径Rsである。図8(A)の円Cn(nは2以上7以下の整数)の半径は、初期半径Rsと、{(n-1)×Rd}と、の和である。すなわち、差分半径Rdは、円C(n+1)の半径と、円Cnの半径と、の差である。
【0037】
これらの円C1~C7によって、マスク画像MIは、領域A01~A67に区分される。領域A01は、中心CPを含む円C1内の領域である。領域An(n+1)は、円Cnと円C(n+1)との間の領域である。領域A01~A67は、領域ごとに明度が異なる。領域A01の明度は、初期明度である。領域An(n+1)の明度は、内側に接する領域A(n-1)nの明度から差分明度を減算した値である。初期明度は、背景マスク画像BMI(後述)では、初期背景明度bbsであり、ラベルマスク画像LMI(後述)では、初期ラベル明度blsである。背景明度は、背景マスク画像BMI(後述)では、差分背景明度bbdであり、ラベルマスク画像LMI(後述)では、差分ラベル明度bldである。以上の説明から解るように、領域A01~A67の明度は、中心CPを含む領域A01の明度が最も高く、中心CPから離れた領域ほど明度が段階的に低くなるように設定される。すなわち、本実施例のマスク画像MI(背景マスク画像BMIやラベルマスク画像LMI)は、中心CPの近傍が最も明るく、中心CPから離れるほど段階的に暗くなる。このように、本実施例のマスク画像MIは、特定の位置(本実施例では、中心CP)から特定方向(本実施例では円C1~C7の半径方向)に離れるに連れて明るさが低下する変動パターンに従って規定される明るさを示している。
【0038】
図8(B)には、背景マスク画像BMIの一例が示されている。背景マスク画像BMIのサイズは、上述した背景画像BIと同じサイズである。CPU110は、光源パラメータとして決定された座標(Xc、Yc)に中心CPが位置するように、背景画像BIと同じサイズの画像内に、図8(A)のマスク画像MIを形成する。これによって、図8(B)の背景マスク画像BMIを示す背景マスク画像データを生成する。換言すれば、図8(A)に示すマスク画像MIのうち、図8(A)の矩形領域BA内の画像が、図8(B)の背景マスク画像BMIに相当する。
【0039】
光源パラメータを設定しない場合には(S300:NO)、CPU110は、S315にて前回の光源追加処理にて使用した背景マスク画像データをメモリ(不揮発性記憶装置130または揮発性記憶装置120)から取得する。すなわち、光源パラメータを変更しない場合には、前回の光源追加処理にて使用されたマスク画像データが再利用される。
【0040】
S318では、背景マスク画像BMI内に、ラベル部分領域LPAを決定する。ラベル部分領域LPAは、上述した(図5(B))ラベル画像LIと同じサイズの領域である。ラベル部分領域LPAは、ラベル部分領域LPAの全体が背景マスク画像BMI内に位置するように、背景マスク画像BMI内にランダムに決定される。
【0041】
S320では、CPU110は、背景マスク画像BMIからラベル部分領域LPA内の画像を切り出す。これによって、切出画像TMIを示す切出画像データが生成される。図8(C)には、切出画像TMIが図示されている。
【0042】
S325では、CPU110は、切出画像データを用いて、ラベルマスク画像LMIを示すラベルマスク画像データを生成する。具体的には、切出画像TMI内の領域A01~A67内の画素の値(明度)を、初期背景明度bbsと差分背景明度bbdとに基づく値から、初期ラベル明度blsと差分ラベル明度bldとに基づく値に置換する。図8(D)に示すように、ラベルマスク画像LMIにおける中心CPおよび領域A01~A67の配置は、切出画像TMIと同じであるが、ラベルマスク画像LMIにおける領域A01~A67の明度は、切出画像TMIとは異なっている。このように、背景マスク画像BMIとラベルマスク画像LMIとでは、光源パラメータのうちの一部である初期明度と差分明度とが異なっているので、明るさの変動パターン(例えば、中心CP近傍の明度や、中心CPから離れるに従って明度が低下する程度)が異なっている。すなわち、ラベルマスク画像LMIは、第1変動パターンに従って規定される明るさを示し、背景マスク画像BMIは、第1変動パターンとは異なる第2変動パターンに従って規定される明るさを示している。
【0043】
ラベルマスク画像データおよび背景マスク画像データは、いずれも明度を画素ごとに示すビットマップデータである。このために、ラベルマスク画像LMIおよび背景マスク画像BMIは、いずれも、ラベル画像LIおよび背景マスク画像BMIと同様に、縦方向および横方向の2次元の座標空間に並ぶ複数個の画素によって構成される2次元の画像である。
【0044】
S330では、CPU110は、背景画像BI(図5(D))を示す背景画像データと、背景マスク画像BMI(図8(B))を示す背景マスク画像データと、を用いて、マスク処理を実行する。これよって、マスク処理済みの背景画像BIsを示す処理済背景画像データが生成される。背景画像BIと背景マスク画像BMIとはサイズが同じであるので、背景画像BI内の複数個の画素と、背景マスク画像BMI内の複数個の画素と、は、一対一で対応している。マスク処理前の背景画像BIの画素の値(RGB値)を(Rb、Gb、Bb)とし、背景マスク画像BMIの対応する画素の値(明度)をVbとすると、マスク処理済みの背景画像BIsの画素の値(Rbs、Gbs、Bbs)は、以下の式によって示される。ここで、(Rb、Gb、Bb)、Vbは、いずれも0~1の範囲の値を取るものとする。
Rbs=1-(1-Rb)(1-Vb)
Gbs=1-(1-Gb)(1-Vb)
Bbs=1-(1-Bb)(1-Vb)
【0045】
図5(E)には、マスク処理済みの背景画像BIsの一例が図示されている。マスク処理済みの背景画像BIsは、背景画像BIに光源から光が照射された状態を疑似的に表現した画像になる。
【0046】
S335では、CPU110は、ラベル画像LI(図5(B))を示すラベル画像データと、ラベルマスク画像LMI(図8(D))を示すラベルマスク画像データと、を用いて、マスク処理を実行する。これよって、マスク処理済みのラベル画像LIsを示す処理済ラベル画像データが生成される。ラベル画像LIとラベルマスク画像LMIとはサイズが同じであるので、ラベル画像LI内の複数個の画素と、ラベルマスク画像LMI内の複数個の画素と、は、一対一で対応している。マスク処理前のラベル画像LIの画素の値(RGB値)を(Rl、Gl、Bl)とし、ラベルマスク画像LMIの対応する画素の値(明度)をVlとすると、マスク処理済みのラベル画像LIsの画素の値(Rls、Gls、Bls)は、以下の式によって示される。ここで、(Rl、Gl、Bl)、Vlは、いずれも0~1の範囲の値を取るものとする。
Rls=1-(1-Rl)(1-Vl)
Gls=1-(1-Gl)(1-Vl)
Bls=1-(1-Bl)(1-Vl)
【0047】
図5(C)には、マスク処理済みのラベル画像LIsの一例が図示されている。マスク処理済みのラベル画像LIsは、ラベル画像LIに光源から光が照射された状態を疑似的に表現した画像になる。上記の式から解るように、本実施例のマスク処理は、処理対象の画像内の複数個の画素の明るさをマスク画像の対応する画素の値(VbやVl)に基づいて調整する処理である。
【0048】
図4のS240の光源追加処理後のS245では、CPU110は、処理済背景画像データと処理済ラベル画像データとを合成する合成処理を実行して、訓練画像SIb(合成画像)を示す訓練画像データを生成する。
【0049】
合成処理では、CPU110は、マスク処理済みのラベル画像LIsの複数個の画素のそれぞれについて、不透明度αを規定する情報であるアルファチャンネルを生成する。ラベル画像LIs(図5(C))のラベルBL2を構成する画素の不透明度αは、1(100%)に設定され、隙間ntを構成する画素の不透明度αは、0(0%)に設定される。
【0050】
CPU110は、マスク処理済みの背景画像BIs上の合成位置にラベル画像LIsを配置した場合に、ラベル画像LIsのラベルBL2を構成する画素(不透明度αが1に設定された画素)と重なる背景画像BIs上の画素を特定する。CPU110は、特定された背景画像BIsの複数個の画素の値を、ラベル画像LIsの対応する複数個の画素の値に置換する。
【0051】
なお、背景画像BIsに対するラベル画像LIsの合成位置は、図6のS318にて、背景マスク画像BMI内に決定されたラベル部分領域LPAの位置である。したがって、図6のS318は、背景画像BIsに対するラベル画像LIsの合成位置を決定する処理である、とも言うことができる。
【0052】
合成処理によって、背景画像BIsを背景とし、ラベル画像LIs(ラベルBL2)を前景として、背景画像BIsとラベル画像LIsとが合成された訓練画像SI(図5(F))を示す訓練画像データが生成される。訓練画像SIは、光源から光が照射された状態のラベルLと背景とを撮像して得られる撮像画像を疑似的に表現した画像になる。
【0053】
S250では、CPU110は、生成された訓練画像データを不揮発性記憶装置130に保存(格納)する。S255では、CPU110は、所定数(例えば、数百~数万)の訓練画像データが生成されたか否かを判断する。所定数の訓練画像データが生成されていない場合には(S255:NO)、CPU110は、S210に戻る。所定数の訓練画像データが生成された場合には(S255:YES)、CPU110は、訓練画像データ生成処理を終了する。
【0054】
図3のS10の訓練画像データ生成処理後のS20では、CPU110は、画像生成モデルGNの訓練処理を実行する。以下では、画像生成モデルGNの概要と訓練処理とを説明する。
【0055】
図9は、画像生成モデルGNの説明図である。図9(A)は、画像生成モデルGNの構成の例を示す概略図である。本実施例では、画像生成モデルGNは、いわゆるオートエンコーダであり、エンコーダVeと、デコーダVdと、を備えている。
【0056】
エンコーダVeは、オブジェクトの画像を表す入力画像データIIgに対して次元削減処理を実行して、入力画像データIIgによって表される入力画像(例えば、図5(F)の訓練画像SI)の特徴を抽出して特徴データを生成する。本実施例では、エンコーダVeは、p個(mは1以上の整数)の畳込層Ve21-Ve2pを有している。各畳込層の直後には、プーリング層が設けられる(例えば、最大プーリング層)。p個の畳込層のそれぞれの活性化関数は、例えば、ReLUである。
【0057】
デコーダVdは、特徴データに対して次元復元処理を実行して、出力画像データOIgを生成する。出力画像データOIgは、特徴データに基づいて再構成された画像を表している。出力画像データOIgの画像サイズと各画素の色値の色成分とは、入力画像データIIgのものと同じである。
【0058】
本実施例では、デコーダVdは、q個(qは1以上の整数)の畳込層Vd21-Vd2qを有している。最後の畳込層Vd2qを除いた残りの畳込層のそれぞれの直後には、アップサンプリング層が設けられる。最後の畳込層Vd2qの活性化関数は、出力画像データOIgの生成に適した関数(例えば、Sigmoid関数、または、Tanh関数)である。他の畳込層のそれぞれの活性化関数は、例えば、ReLUである。
【0059】
畳込層Ve21-Ve2p、Vd21-Vd2qは、入力されるデータに対して、畳込処理とバイアスの加算処理とを含む処理を実行する。これらの畳込層は、畳込処理に用いられる複数のフィルタの複数の重みと複数のバイアスとを含む演算パラメータを、それぞれ有している。
【0060】
次に、画像生成モデルGNの訓練処理(図3のS20)について説明する。図9(B)は、画像生成モデルGNの訓練処理のフローチャートである。訓練によって、画像生成モデルGNの演算に用いられる複数の演算パラメータ(畳込層Ve21-Ve2p、Vd21-Vd2qのそれぞれの演算に用いられる複数の演算パラメータを含む)が、調整される。訓練処理前は、複数の演算パラメータは、乱数値などの初期値に設定されている。
【0061】
S510では、CPU110は、不揮発性記憶装置130からバッチサイズ分の複数個の訓練画像データを取得する。S520では、CPU110は、複数個の訓練画像データを画像生成モデルGNに入力し、複数個の訓練画像データに対応する複数個の出力画像データOIgを生成する。
【0062】
S530では、CPU110は、複数個の訓練画像データと、複数個の訓練画像データに対応する複数個の出力画像データOIgと、を用いて、損失値を算出する。具体的には、CPU110は、訓練画像データと、対応する出力画像データOIgと、の間の差分を示す評価値を、訓練画像データごとに算出する。損失値は、例えば、画素毎、色成分毎の成分値の交差エントロピー誤差の合計値である。損失値の算出には、成分値の差分に応じた損失値を算出するための他の公知の損失関数、例えば、二乗誤差、絶対誤差が用いられても良い。
【0063】
S540では、CPU110は、算出された損失値を用いて、画像生成モデルGNの複数の演算パラメータを調整する。具体的には、CPU110は、訓練画像データごとに算出される損失値の合計が小さくなるように、所定のアルゴリズムに従って演算パラメータを調整する。所定のアルゴリズムとしては、例えば、誤差逆伝播法と勾配降下法とを用いたアルゴリズムが用いられる。
【0064】
S550では、CPU110は、訓練終了条件が満たされるか否かを判断する。訓練終了条件は、図9(B)のS450と同様に、種々の条件、例えば、損失値が基準値以下になったことや、損失値の変化量が基準値以下になったことや、S540の演算パラメータの調整が繰り返された回数が所定数以上になったこと、が用いられる。
【0065】
訓練の終了条件が満たされない場合には(S550:NO)、CPU110は、S510に戻って、訓練を継続する。訓練の終了条件が満たされた場合には(S550:YES)、CPU110は、S560にて、調整済の演算パラメータを含む訓練済みの画像生成モデルGNのデータを、不揮発性記憶装置130に格納して、訓練処理を終了する。
【0066】
訓練済みの画像生成モデルGNによって生成される出力画像データOIgは、入力画像としての訓練画像SIの特徴を再構成して再現した再現画像(図示省略)を示す。このために、訓練済みの画像生成モデルGNによって生成される出力画像データOIgを、再現画像を示す再現画像データとも呼ぶ。再現画像は、入力画像(例えば、訓練画像SI)とほぼ同様の画像である。なお、訓練済みの画像生成モデルGNは、正常なラベルLを示す訓練画像SIの特徴のみを再構成するように訓練される。このために、キズや汚れなどの欠陥を含むラベルの画像(後述)を示す入力画像データが訓練済みの画像生成モデルGNに入力される場合に生成される再現画像データは、正常なラベルの画像を示すことが期待できる。換言すれば、画像生成モデルGNに、正常なラベルを示す画像データが入力される場合も、欠陥を含む異常なラベルを示す画像データが入力される場合も、再現画像は、正常なラベル再現した画像になる。
【0067】
A-3.検査処理
図10は、検査処理のフローチャートである。図11は、検査処理の説明図である。検査処理は、検査対象のラベルLが欠陥等を含む異常品であるか、欠陥等を含まない正常品であるかを検査する処理である。検査処理は、ラベルLごとに実行される。検査処理は、ユーザ(例えば、検査の作業者)が処理の開始指示を、操作部150を介して処理装置100に入力した場合に、開始される。例えば、ユーザは、検査すべきラベルLが貼り付けられた製品300を、撮像装置400を用いて撮像するための所定の位置に配置した状態で、検査処理の開始指示を入力する。
【0068】
S900では、CPU110は、検査すべきラベルL(以下、検査品とも呼ぶ)を示すTI含む撮像画像を示す撮像画像データを取得する。例えば、CPU110は、撮像装置400に撮像指示を送信して、撮像装置400に撮像画像データを生成させ、撮像装置400から撮像画像データを取得する。この結果、例えば、図11(A)の撮像画像FIを示す撮像画像データが取得される。撮像画像FIは、製品の前面F31と、前面F31上に貼付されたラベルFLとを示す画像である。このように撮像画像FIに示される製品の前面およびラベルを、実物の前面31およびラベルL(図2)と区別するために符号の先頭に「F」を付した符号を用いて、前面F31、ラベルFLとする。ラベルFL内のラベルFLは、キズなどの欠陥を含む場合もある。
【0069】
S905では、CPU110は、撮像画像FI内の一部の領域であり、ラベルFLを含む領域であるラベル領域LAを特定する。ラベル領域LAの特定方法な任意の方法が採用される。ラベル領域LAの特定には、YOLOなどの物体検出モデルを用いる手法が用いられても良いし、パターンマッチングなどの公知の手法が用いられても良い。ラベル領域LAの特定は、オペレータが撮像画像FI内のラベル領域LAを指定することによって行われても良い。
【0070】
S910では、CPU110は、撮像画像データを用いて、検証画像TIを示す検証画像データを生成する。具体的には、CPU110は、撮像画像FIからラベル領域LAを切り出して、検証画像TIを示す検証画像データを生成する。CPU110は、必要に応じて検証画像TIを拡大または縮小するサイズ調整処理を実行して、検証画像TIのサイズを画像生成モデルGNの入力画像のサイズに調整する。図11(B)、(C)の検証画像TIは、ラベル領域LA内の画像(すなわち、ラベルFLの画像)を示している。なお、図11(B)の検証画像TIaのラベルFLaは、正常品であり、キズなどの欠陥を含んでいない。図11(C)の検証画像TIbのラベルFLbは、異常品であり、線状のキズdfを含んでいる。
【0071】
S915では、CPU110は、検証画像データを、訓練済みの画像生成モデルGNに入力し、検証画像データに対応する再現画像データを生成する。再現画像データによって示される再現画像は、上述したように、入力された検証画像TIのラベルFLを再現した画像である。例えば、入力された検証画像TIが図11(B)、(C)の検証画像TIa、TIbのいずれであっても、生成される再現画像は、図11(B)の検証画像TIaのように欠陥を含まない画像になる。
【0072】
S920では、CPU110は、検証画像データと再現画像データとを用いて、差分画像DIを示す差分画像データを生成する。例えば、CPU110は、検証画像TIの画素の成分値v1と、対応する再現画像の画素の成分値v2と、の差分値(v1-v2)を算出し、該差分値を0~1の範囲の値に正規化する。CPU110は、画素ごと、色成分ごとに、当該差分値を算出し、該差分値を画素の色値とする差分画像データを生成する。
【0073】
図11(D)、(E)には、差分画像DIの一例が示されている。図11(D)の差分画像DIaは、入力画像が図11(B)の正常品を示す検証画像TIaである場合に生成される差分画像である。差分画像DIaは、キズなどの欠陥を含まない。図11(E)の差分画像DIbは、入力画像が図11(C)の異常品を示す検証画像TIbである場合に生成される差分画像である。差分画像DIbは、検証画像TIbに含まれるキズdfに対応するキズdfdを含んでいる。このために、差分画像DIを参照することで、例えば、検証画像TIに含まれる欠陥の有無、位置、大きさ、形状を特定することができる。
【0074】
S925では、CPU110は、差分画像データを用いて、差分画像DIに含まれる異常画素を特定する。異常画素は、例えば、差分画像DIに含まれる複数個の画素のうち、RGB値の少なくとも1つの成分値が閾値TH1以上である画素である。例えば、図11(D)の差分画像DIaが処理対象である場合には、異常画素は特定されない。図11(E)の差分画像DIbが処理対象である場合には、キズdfdを構成する複数個の画素が異常画素として特定される。
【0075】
S940では、CPU110は、差分画像DIにおいて特定された異常画素の個数が閾値TH2以上であるか否かを判断する。異常画素の個数が閾値TH2未満である場合には(S940:NO)、S950にて、CPU110は、検査品としてのラベルは正常品であると判定する。異常画素の個数が閾値TH2以上である場合には(S940:YES)、S945にて、CPU110は、検査品としてのラベルは異常品であると判定する。S955では、CPU110は、検査結果を表示部140に表示して、検査処理を終了する。このように画像生成モデルGNを用いて、検査品が正常品であるか異常品であるかを判定することができる。
【0076】
以上説明した本実施例によれば、CPU110は、対象画像データとして、ラベルBL2を含むラベル画像LI(図5(B))を示すラベル画像データと背景画像データと、を取得する(図4のS205~S230)。CPU110は、マスク画像データ(本実施例ではラベルマスク画像データと背景ラベル画像データ)を生成する(図6のS310、S325)。CPU110は、対象画像データ(本実施例ではラベル画像データと背景画像データ)に対して、マスク画像データ(本実施例ではラベルマスク画像データと背景ラベル画像データ)を用いるマスク処理(図6のS330、S335)を含む処理(図6のS330、S335、図4のS245)実行して、画像生成モデルGNへの入力画像データIIgとして用いられる訓練画像データを生成する。CPU110は、訓練画像データと画像生成モデルGNとを用いて訓練処理を実行する(図3のS20、図9(B))。この結果、訓練画像データを容易に生成し得る。例えば、3次元のCGデータを用いて光源が照射された状態を表現する画像データを生成する場合と比較して、画像生成モデルGNなどの機械学習モデルに入力するための画像データを準備するための負担を軽減することができる。したがって、画像生成モデルGNの訓練処理のための負担を軽減することができる。
【0077】
また、画像生成モデルGN用の訓練画像データは、画像生成モデルGNを適切に訓練するために、多様な照明下で撮像された撮像画像を疑似的に表現した多様な画像データを含むことが好ましい。これによって、検査処理において、多様な照明下で撮像された撮像画像データに基づく検証画像データが画像生成モデルGNに入力された場合に、適切な再現画像データを生成できるように、画像生成モデルGNを訓練できる。本実施例では、例えば、光源パラメータをランダムに変更しながら、マスク処理を実行することで、多様な訓練画像データを容易に生成することができる。
【0078】
本実施例において、背景マスク画像BMIやラベルマスク画像LMIに表現される明るさの変動パターンは、中心CPを含む複数個の円C1~C7を用いて決定される領域A01~領域A67ごとに明るさを規定するパターンである(図8(A)~(D))。このように、単純な形状に基づいてマスク画像データが生成されるので、例えば、複雑な形状のマスク画像データを生成する場合と比較してマスク画像データを生成する処理の負荷を軽減し得る。
【0079】
さらに、本実施例の対象画像データは、ラベルBL2を含むラベル画像LIを示すラベル画像データと、訓練画像SIにおいてラベルの外側に位置すべき背景画像BIを示す背景画像データと、を含んでいる。CPU110は、マスク画像データとして、訓練画像SIにおいてラベルBLが位置するラベル領域(ラベル画像LIに対応する領域)のためのラベルマスク画像LMIを示すラベルマスク画像データと、背景が位置する背景領域(背景画像BIに対応する領域)のための背景マスク画像BMIを示す背景マスク画像データと、を生成する(図6のS325、S310)。CPU110は、対象画像データに対して、ラベルマスク画像データと背景マスク画像データとを用いるマスク処理(S330、S335)を実行して、訓練画像データを生成する。この結果、本実施例では、訓練画像SIにおいて、ラベルBL2の明るさと背景の明るさとをそれぞれ別個に調整することができる。
【0080】
さらに、本実施例によれば、上述したように、ラベルの素材や背景を構成する被写体の素材(例えば、製品300の前面31の素材)として想定される素材ごとに異なる光源パラメータ(初期明度や差分明度)を用いている。すなわち、ラベルマスク画像LMIにおける明るさの変動パターンは、ラベルLの光学特性に対応するパターンであり、背景マスク画像BMIにおける明るさの変動パターンは、背景を構成する被写体の光学特性に対応するパターンである。この結果、ラベルや背景の光学特性に応じて、訓練画像SIにおいてラベルの明るさと背景の明るさとをそれぞれ別個に調整することができる。
【0081】
さらに、本実施例によれば、背景画像BIに対してラベル画像LIが合成される領域に対応するラベル部分領域LPA内の画像を、背景マスク画像BMIから切り出すことで、ラベルマスク画像LMIが生成されている(図8(B)~(D)、図6のS320、S325)。背景画像BIに対するラベル部分領域LPAの配置が変動すれば、生成されるラベルマスク画像LMIも異なることが解る。このことから解るように、訓練画像SI内におけるラベルBL2の配置(ラベルBLの位置や角度)に応じて異なるラベルマスク画像LMIが生成される。この結果、生成される訓練画像SIにおけるラベルBL2の配置に応じて、ラベルBL2の明るさをマスク処理によって適切に調整することができる。したがって、撮像されたラベルを疑似的により適切に表現した訓練画像SIを生成できる。
【0082】
さらに、本実施例によれば、CPU110は、生成すべき訓練画像SIの全体に対応する背景マスク画像BMIを示す背景マスク画像データを生成する(図6のS310)。CPU110は、背景マスク画像データを用いて、背景マスク画像BMIのうちのラベル部分領域LPAに対応する切出マスク画像を示す切出マスク画像データを生成する(図6のS320)。CPU110は、切出マスク画像データを用いて、ラベルマスク画像LMIを示すラベルマスク画像データを生成する。この結果、訓練画像SIにおけるラベルBL2における配置に応じて異なるラベルマスク画像データを容易に生成できる。
【0083】
さらに、本実施例によれば、CPU110は、図4のS210~S220の画像処理をランダムに決定されるパラメータを用いて繰り返し実行する(図4のS255等)ことで、互いに異なる複数個のラベル画像データを生成する。そして、CPU110は、複数個のラベル画像データを用いて、複数個の互いに異なる訓練画像データを生成する。その際に、CPU110は、光源追加処理において、背景マスク画像データを変更することなく、前回の背景マスク画像データを再利用する(図6のS315)。すなわち、CPU110は、複数個のラベル画像データに対して、共通の1つの背景マスク画像データを用いるマスク処理を実行して、複数個の訓練画像データを生成する。この結果、共通の1つの背景マスク画像データを用いて、複数個の訓練画像データを生成できるので、複数個の訓練画像データを生成するための処理負荷を軽減することができる。
【0084】
さらに、本実施例では、ラベル画像データは、版下画像データRDを用いて生成される(図4のS205~S220)。すなわち、訓練画像データの生成に用いられるラベル画像データは、実際にラベルLの作成に用いられる版下画像データRDに基づく画像データである。この結果、例えば、複数個の多様なラベル画像データを、版下画像データRDに基づいて容易に生成できるので、多様な訓練画像データを生成するための負担をさらに軽減することができる。
【0085】
以上の説明から解るように、本実施例のラベル画像データと背景画像データとの全体は、対象画像データの例であり、訓練画像データは、入力画像データの例である。また、ラベルマスク画像データは、第1マスク画像データの例であり、背景マスク画像データは、第2マスク画像データの例である。また、画像生成モデルGNの訓練処理は、特定処理の例である。
【0086】
B.変形例
(1)上記実施例の光源追加処理で用いられるマスク画像MI(背景マスク画像BMIおよびラベルマスク画像LMI)は、円C1~C7によって明るさの変動パターンが規定されている(図8(A)~(D))。これに代えて、他の態様のマスク画像が用いられても良い。図12は、変形例のマスク画像MIB、MICの説明図である。
【0087】
図12(A)のマスク画像MIBでは、例えば、光源パラメータとして、中心CPの座標と、初期幅Wsと、初期高さHsと、差分幅Wdと、差分高さHdと、傾斜角θaと、初期明度(初期ラベル明度と初期背景明度)と、差分明度(初期ラベル明度と初期背景明度)とが、設定される。マスク画像MIBは、設定された中心CPを有する複数個の四角形SQ1~SQ7によって規定される。最小の四角形SQ1の幅および高さは、初期幅Wsおよび初期高さHsである。四角形SQn(nは2以上7以下の整数)の幅は、初期幅Wsと、{(n-1)×Wd}と、の和である。すなわち、差分幅Wdは、四角形SQ(n+1)の幅と、四角形SQnの幅と、の差である。四角形SQn(nは2以上7以下の整数)の高さは、初期高さHsと、{(n-1)×Hd}と、の和である。すなわち、差分高さHdは、四角形SQ(n+1)の高さと、四角形SQnの高さと、の差である。傾斜角θaは、四角形SQ1の下辺と、画像の横方向と、の間の角度である。
【0088】
これらの四角形SQ1~SQ7によって、マスク画像MIAは、領域SA01~SA67に区分される。領域SA01は、中心CPを含む四角形SQ1内の領域である。領域SAn(n+1)は、四角形SQnと四角形SQ(n+1)との間の領域である。領域SA01~A67は、領域ごとに明度が異なる。領域SA01の明度は、初期明度である。領域ASn(n+1)の明度は、内側に接する領域A(n-1)nの明度から差分明度を減算した値である。以上の説明から解るように、領域SA01~A67の明度は、中心CPを含む領域SA01の明度が最も高く、中心CPから離れた領域ほど明度が段階的に低くなるように設定される。すなわち、図12(A)のマスク画像MIは、中心CPの近傍が最も明るく、中心CPから四角形SQ1の各辺と垂直な4方向に離れるほど段階的に暗くなる。このように、本実施例のマスク画像MIは、特定の位置(本実施例では、中心CP)から特定方向(本実施例では四角形SQ1の各辺と垂直な4方向)に離れるに連れて明るさが低下する変動パターンに従って規定される明るさを示している。例えば、図12(A)の矩形領域BA内の部分が、本変形例の背景マスク画像として用いられる。
【0089】
図12(B)のマスク画像MIBでは、例えば、光源パラメータとして、中心CPの座標と、初期間隔Dsと、差分間隔Ddと、傾斜角θbと、初期明度(初期ラベル明度と初期背景明度)と、差分明度(初期ラベル明度と初期背景明度)とが、設定される。マスク画像MICは、互いに平行な複数本の線L11~L17、L21~L27と、によって規定される。これらの線L11~L17、L21~L27と、によって、マスク画像MIBは、領域LA11~LA17、LA22~LA27に区分される。中心CPを含む領域L11を区分する2本の線L11、L21の間隔は、初期間隔Dsである。他の領域LA12~LA17、LA22~LA27を区分する2本の線の間隔は、差分間隔Ddである。傾斜角θbは、複数本の線L11~L17、L21~L27と垂直な方向と、画像の横方向と、の間の角度である。
【0090】
領域LA11~LA17では、領域ごとに明度が異なり、領域LA22~LA27では、領域ごとに明度が異なる。領域LA11の明度は、初期明度である。他の領域の明度は、中心CP側に接する領域の明度から差分明度を減算した値である。以上の説明から解るように、領域LA11~LA17、LA22~LA27の明度は、中心CPを含む領域LA1の明度が最も高く、中心CPから離れた領域ほど明度が段階的に低くなるように設定される。すなわち、図12(B)のマスク画像MIは、中心CPの近傍が最も明るく、中心CPから線L11と垂直な方向に離れるほど段階的に暗くなる。このように、本実施例のマスク画像MIは、特定の位置(本実施例では、中心CP)から特定方向(本実施例では領域L11と垂直な方向)に離れるに連れて明るさが低下する変動パターンに従って規定される明るさを示している。例えば、図12(B)の矩形領域BA内の部分が、本変形例の背景マスク画像として用いられる。これらマスク画像MIA、MIBは、例えば、棒状の蛍光灯などの棒状の光源から照射される光を表現している。
【0091】
また、マスク画像は、上記図8および図12のマスク画像MI、MIA、MIBとは、異なっていても良い。例えば、マスク画像は、複数個の五角形や楕円で区分される領域を含んでもよいし、星形などのより複雑な形状で区分される領域を含んでも良い。
【0092】
(2)上記実施例では、CPU110は、対象画像データとして、背景画像データとラベル画像データとを取得し、背景画像データとラベル画像データとのそれぞれに別個のマスク画像データを用いてマスク処理を実行して、処理済背景画像データと処理済ラベル画像データと、を生成する。そして、CPU110は、処理済背景画像データと処理済ラベル画像データと、を合成して、訓練画像データを生成している。これに代えて、CPU110は、背景とラベルとを含む1つの画像を示す1つの対象画像データを取得し、1つの対象画像データに対して、1つのマスク画像データを用いてマスク処理を実行して、訓練画像データを生成しても良い。この場合には、例えば、1つのマスク画像データによって示されるマスク画像は、背景に対応する領域と、ラベルに対応する領域と、のそれぞれで異なる光源パラメータを用いて生成された画像であっても良い。あるいは、マスク画像は、背景とラベルとを区別することなく、1組の光源パラメータを用いて生成された画像であっても良い。
【0093】
(3)上記実施例では、CPU110は、版下画像RIに回転処理や平滑化処理やノイズ付加処理を実行してラベル画像LIを生成した後に、該ラベル画像LIにマスク処理を実行している(図4のS210~S240)。これに代えて、CPU110は、背景画像BIに版下画像RIを所定の角度および位置に合成した後に、合成画像の背景領域に対して、背景マスク画像データを用いたマスク処理を実行し、さらに、版下画像RIに対して、ラベルマスク画像データを用いたマスク処理を実行しても良い。この場合には、例えば、背景マスク画像BMIからラベル部分領域LPAを切り出す際に、版下画像RIが合成された角度および位置にラベル部分領域LPAが設定される。これによって、版下画像RIが合成された角度および位置に応じたラベルマスク画像データが生成できる。CPU110は、マスク処理済みの合成画像の全体もしくは版下画像RIの部分に、平滑化処理やノイズ付加処理を実行して、訓練画像データを生成しても良い。
【0094】
(4)上記実施例では、背景マスク画像データを生成する光源パラメータを、所定個数の訓練画像データを生成するごとに変更している(図6のS300~S315)。これに代えて、光源パラメータは、訓練画像データを生成する度に毎回変更されても良い。
【0095】
(5)上記実施例では、ラベル画像データは、版下画像データRDを用いて生成されている。これに代えて、ラベル画像データは、撮像装置400を用いてラベルLを撮影して得られる撮像画像データであっても良い。この場合であっても、該ラベル画像データに対してマスク処理を実行することで、1個のラベル画像データから多様な複数個のラベルを示すラベル画像データを生成できる。
【0096】
(6)上記実施例の訓練画像データは、画像生成モデルGNの訓練処理に用いられている。これに限らず、訓練画像データは、例えば、画像内のラベルが位置するラベル領域を特定するための物体検出モデルの訓練処理に用いられても良い。物体検出モデルには、例えば、例えば、物体検出モデルには、例えば、YOLO(You only look once)と呼ばれるオブジェクト検出モデルが用いられても良いし、SSD、R-CNN、Fast R-CNN, Faster R-CNN、Mask R-CNNなどの、他のモデルが用いられても良い。
【0097】
(7)上記実施例の画像生成モデルGNは、例えば、通常のオートエンコーダに限らず、VQ-VAE(Vector Quantized Variational Auto Encoder)、VAE(Variational Autoencoder)であっても良いし、いわゆるGAN(Generative Adversarial Networks)に含まれる画像生成モデルであっても良い。
【0098】
(8)上記実施例の検査処理では、CPU110は、検証画像データと再現画像データとを用いて、差分画像データを生成し、該差分画像データを用いて、ラベルの検査を実行している(図10のS920~S950)。これに限らず、ラベルの検査方法は他の方法が用いられても良い。例えば、CPU110は、PaDiMと呼ばれる手法を用いて、ラベルの検査を実行しても良い。PaDiMの手法では、例えば、CPU110は、画像生成モデルGNのエンコーダVeに検証画像データを入力して、検証画像データの特徴データを生成する。そして、CPU110は、検証画像データの特徴データと、複数個の正常なラベルの画像データの特徴データと、の間のマハラノビス距離を算出することで、ラベルの検査を実行する。複数個の正常なラベルの画像データの特徴データは、例えば、検査準備処理にて、画像生成モデルGNのエンコーダVeに複数個の正常なラベルの画像データを入力することで、予め生成される。PaDiMの手法は、例えば、論文「T. Defard, A. Setkov, A. Loesch, and R. Audigier, “Padim: a patch distribution modeling framework for anomaly detection and localization”,arXiv:2011.08785(2020),https://arxiv.org/abs/2011.08785,投稿日17 Nov 2020」に開示されている。
【0099】
そして、PaDiMの手法が用いられる場合には、複数個の正常なラベルの画像データとして、本実施例にて画像生成モデルGNのための訓練画像データとして生成される複数個の画像データが用いられても良い。すなわち、上記実施例では、生成される入力画像データは訓練画像データであり、該入力画像データを用いて実行される特定処理は、訓練処理であるが、これに限られない。例えば、該入力画像データを用いて実行される特定処理は、PaDiMの手法が用いられる場合に、複数個の正常なラベルの画像データの特徴データを生成する処理であっても良い。
【0100】
なお、PaDiMの手法が用いられる場合には、画像生成モデルGNに代えて、ResNet、VGG16、VGG19などの画像識別モデルが用いられても良い。
【0101】
(9)検査対象の物体は、製品(例えば、複合機、ミシン、カッティングマシン、携帯端末など)に貼られるラベルに限らず、任意の物であってよい。検査対象の物体は、例えば、対、製品に印刷されるラベル画像であってよい。また、検査対象の物体は、製品そのものであっても良いし、製品に取り付けられる札、付属品、部品、刻印など、製品の任意の一部分であってよい。
【0102】
(10)また、本実施例の訓練画像データを用いて訓練された機械学習モデルは、物体の検査処理とは異なる目的で使用されても良い。例えば、本実施例の訓練画像データを複数種類のラベルについて生成して、画像識別モデルを訓練する場合には、該画像識別モデルは、例えば、ラベルの種類を識別するために用いられても良い。
【0103】
(11)上記実施例では、検査準備処理と検査処理とは、図1の処理装置100によって実行されている。これに代えて、検査準備処理と検査処理とは、それぞれ、別の装置によって実行されても良い。この場合には、例えば、検査準備処理によって訓練された画像生成モデルGNは、検査処理を実行する装置の記憶装置に格納される。また、検査準備処理と検査処理との全部または一部は、ネットワークを介して互いに通信可能な複数個の計算機(例えば、いわゆるクラウドサーバ)によって実行されても良い。また、検査処理を行うコンピュータプログラムと、検査準備処理を行うコンピュータプログラムとは、異なるコンピュータプログラムであっても良い。
【0104】
(12)上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。例えば、検査準備処理と検査処理との全部または一部は、ASIC(Application Specific Integrated Circuit)等のハードウェア回路によって実行されてよい。
【0105】
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
【符号の説明】
【0106】
1000…検査システム,100…処理装置,110…CPU,120…揮発性記憶装置,130…不揮発性記憶装置,140…表示部,150…操作部,170…通信部,300…製品,400…撮像装置,BI…背景画像,BMI…背景マスク画像,DI…差分画像,FI…撮像画像,GN…画像生成モデル,IIg…入力画像データ,LI…ラベル画像,LMI…ラベルマスク画像,OIg…出力画像データ,PG…コンピュータプログラム,PT…光源パラメータテーブル,PT1…ラベル用テーブル,PT2…背景用テーブル,RD…版下画像データ,RI…版下画像,TI…検証画像
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12