JP2023067731A - コンピュータプログラム、および、データ処理装置 - Google Patents
コンピュータプログラム、および、データ処理装置 Download PDFInfo
- Publication number
- JP2023067731A JP2023067731A JP2022107390A JP2022107390A JP2023067731A JP 2023067731 A JP2023067731 A JP 2023067731A JP 2022107390 A JP2022107390 A JP 2022107390A JP 2022107390 A JP2022107390 A JP 2022107390A JP 2023067731 A JP2023067731 A JP 2023067731A
- Authority
- JP
- Japan
- Prior art keywords
- image
- image data
- processing
- data
- processed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012545 processing Methods 0.000 title claims abstract description 287
- 238000004590 computer program Methods 0.000 title claims description 39
- 230000007547 defect Effects 0.000 claims abstract description 52
- 238000000034 method Methods 0.000 claims description 166
- 230000008569 process Effects 0.000 claims description 143
- 238000012549 training Methods 0.000 claims description 76
- 238000009826 distribution Methods 0.000 claims description 60
- 230000006870 function Effects 0.000 claims description 37
- 238000013461 design Methods 0.000 claims description 34
- 238000007781 pre-processing Methods 0.000 claims description 34
- 230000009467 reduction Effects 0.000 claims description 15
- 238000010801 machine learning Methods 0.000 claims description 13
- 238000007689 inspection Methods 0.000 description 27
- 238000003860 storage Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 19
- 230000009466 transformation Effects 0.000 description 16
- 238000006243 chemical reaction Methods 0.000 description 12
- 230000001186 cumulative effect Effects 0.000 description 9
- 238000001514 detection method Methods 0.000 description 9
- 239000013598 vector Substances 0.000 description 8
- 238000011156 evaluation Methods 0.000 description 7
- 238000011946 reduction process Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 238000009499 grossing Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000002950 deficient Effects 0.000 description 4
- 238000012935 Averaging Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 238000003384 imaging method Methods 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000005520 cutting process Methods 0.000 description 2
- 238000013434 data augmentation Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000009958 sewing Methods 0.000 description 2
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 230000001747 exhibiting effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000009966 trimming Methods 0.000 description 1
- 238000011179 visual inspection Methods 0.000 description 1
Images
Landscapes
- Image Analysis (AREA)
Abstract
【課題】外観の不具合に関するデータを生成するプログラム及びデータ処理装置を提供する。【解決手段】データ処理装置は、原画像データ710dを使用して第1画像処理S910を実行することによって、処理済原画像データ740dを生成し、撮影画像データ610dを使用して第2画像処理S920を実行することによって処理済撮影画像データ640dを生成する。第1画像処理は、処理済原画像データと処理済撮影画像データとを使用することによって、外観の不具合に関するデータである出力データを生成する。第1画像処理は、第2画像処理には含まれない第1処理S810を含み、第2画像処理は、第1画像処理には含まれない第2処理S820を含む。【選択図】図7
Description
本明細書は、画像データを処理する技術に関する。
従来から、外観検査などの対象物の外観に関する処理に、撮影された画像データが使用されている。例えば、ワークの撮影された画像が学習済モデルに入力されて、ワークの外観が検査される。モデルの訓練には、教師データが使用される。特許文献1には、教師データを生成する方法として、ワークの撮影された画像を複数の領域に分割し、領域毎に所定の情報を含むか否か付す方法が、提案されている。
ところで、外観の不具合に関するデータを生成することは容易ではなく、工夫の余地があった。
本明細書は、外観の不具合に関するデータを生成することができる技術を開示する。
本明細書に開示された技術は、以下の適用例として実現することが可能である。
[適用例1]画像データを処理するコンピュータのためのコンピュータプログラムであって、印刷すべき画像である対象物画像を示す原画像データを使用して第1画像処理を実行することによって、処理済原画像データを生成する第1生成機能と、印刷された対象物画像の撮影画像である撮影対象物画像を示す撮影画像データを使用して第2画像処理を実行することによって、処理済撮影画像データを生成する第2生成機能と、前記処理済原画像データと前記処理済撮影画像データとを使用して第3画像処理を実行することによって、前記印刷された前記対象物画像の外観の不具合に関するデータである出力データを生成する第3生成機能と、をコンピュータに実現させ、前記第1画像処理は、前記第2画像処理には含まれない第1処理を含み、前記第2画像処理は、前記第1画像処理には含まれない第2処理を含む、コンピュータプログラム。
この構成によれば、処理済原画像データは、第2画像処理には含まれない第1処理を含む第1画像処理を実行することによって生成され、処理済撮影画像データは、第1画像処理には含まれない第2処理を含む第2画像処理を実行することによって生成されるので、処理済原画像データと処理済撮影画像データとを使用することによって、印刷された対象物画像の外観の不具合に関する適切な出力データを生成できる。
[適用例2]画像データを処理するコンピュータのためのコンピュータプログラムであって、注目対象物の設計画像である対象物画像を示す原画像データを使用して第1画像処理を実行することによって、処理済原画像データを生成する第1生成機能と、前記注目対象物の撮影画像である撮影対象物画像を示す撮影画像データを使用して第2画像処理を実行することによって、処理済撮影画像データを生成する第2生成機能と、前記処理済原画像データと前記処理済撮影画像データとを使用して第3画像処理を実行することによって、前記注目対象物の外観の不具合に関するデータである出力データを生成する第3生成機能と、をコンピュータに実現させ、前記第3画像処理は、訓練済の機械学習モデルを使用する処理を含み、前記第1画像処理は、前記第2画像処理には含まれない第1処理を含み、前記第2画像処理は、前記第1画像処理には含まれない第2処理を含み、前記第1処理は、ノイズ付加処理とぼかし処理との一方または両方を含む前処理を含み、前記機械学習モデルは、前記原画像データに、前記前処理と同じ処理を含む処理を実行することによって生成される訓練画像データを使用して、訓練されている、コンピュータプログラム。
この構成によれば、処理済原画像データは、第2画像処理には含まれない第1処理を含む第1画像処理を実行することによって生成され、処理済撮影画像データは、第1画像処理には含まれない第2処理を含む第2画像処理を実行することによって生成され、機械学習モデルは、第1処理に含まれる前処理と同じ処理を含む処理を原画像データに実行することによって生成される訓練画像データを使用して訓練されているので、処理済原画像データと処理済撮影画像データとを使用して、訓練済の機械学習モデルを使用する処理を含む第3画像処理を実行することによって、注目対象物の外観の不具合に関する適切な出力データを生成できる。
なお、本明細書に開示の技術は、種々の態様で実現することが可能であり、例えば、画像処理方法およびデータ処理装置、機械学習モデルの訓練方法および訓練装置、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体(例えば、一時的ではない記録媒体)、訓練済の機械学習モデル、等の形態で実現することができる。
A.第1実施例:
A1.装置構成:
図1は、一実施例としてのデータ処理装置を示す説明図である。データ処理装置200は、例えば、パーソナルコンピュータである。データ処理装置200は、対象物(例えば、複合機などの製品に設けられたラベルシート)の外観の検査のための種々のデータ処理を行う。以下、複合機900に設けられたラベルシート800の外観が検査されることとする。
A1.装置構成:
図1は、一実施例としてのデータ処理装置を示す説明図である。データ処理装置200は、例えば、パーソナルコンピュータである。データ処理装置200は、対象物(例えば、複合機などの製品に設けられたラベルシート)の外観の検査のための種々のデータ処理を行う。以下、複合機900に設けられたラベルシート800の外観が検査されることとする。
データ処理装置200は、プロセッサ210と、記憶装置215と、表示部240と、操作部250と、通信インタフェース270と、を備えている。これらの要素は、バスを介して互いに接続されている。記憶装置215は、揮発性記憶装置220と、不揮発性記憶装置230と、を含んでいる。
プロセッサ210は、データ処理を行うように構成された装置であり、例えば、CPUである。揮発性記憶装置220は、例えば、DRAMであり、不揮発性記憶装置230は、例えば、フラッシュメモリである。不揮発性記憶装置230は、生成プログラム231と、訓練プログラム232と、検査プログラム233と、物体検出モデルM1と、画像生成モデル300と、複数の訓練画像データI1tdと、原稿画像データ700dと、を格納している。本実施例では、物体検出モデルM1と画像生成モデル300とは、それぞれ、機械学習モデルを形成するプログラムモジュールである。プログラム231-233とモデルM1、300と画像データD1、700dとの詳細については、後述する。
表示部240は、液晶ディスプレイ、有機ELディスプレイなどの、画像を表示するように構成された装置である。操作部250は、ボタン、レバー、表示部240上に重ねて配置されたタッチパネルなどの、ユーザによる操作を受け取るように構成された装置である。ユーザは、操作部250を操作することによって、種々の要求と指示をデータ処理装置200に入力可能である。通信インタフェース270は、他の装置と通信するためのインタフェースである(例えば、USBインタフェース、有線LANインタフェース、IEEE802.11の無線インタフェース)。通信インタフェース270には、デジタルカメラ110が接続される。デジタルカメラ110は、ラベルシート800の撮影に使用される。
図2は、デジタルカメラ110と複合機900とベルト190との斜視図である。本実施例では、複合機900が、ベルトコンベアのベルト190によって搬送される。図中には、ベルト190の一部が示されている。ベルト190は、平らな上面191を形成する。上面191上に、複合機900の底面909が載せられる。ベルトコンベアは、複合機900がデジタルカメラ110の前を搬送方向D190に移動するように、構成されている。搬送方向D190は、デジタルカメラ110の撮影方向D110に交差する方向である(例えば、搬送方向D190は、撮影方向D110におおよそ垂直である)。複合機900の第1側面901には、ラベルシート800が貼られている。デジタルカメラ110は、ラベルシート800を撮影するように、配置される。
A2.ラベルシート:
図3(A)は、ラベルシートの例を示す概略図である。本実施例では、ラベルシート800は、矩形状のシートである。図3(A)は、不具合の無いラベルシート800を示している。ラベルシート800は、種々のオブジェクトを表し得る。本実施例では、ラベルシート800は、ロゴタイプ810と、マーク820と、説明文830と、を表している。図中では、マーク820と説明文830との詳細の図示は、省略されている。
図3(A)は、ラベルシートの例を示す概略図である。本実施例では、ラベルシート800は、矩形状のシートである。図3(A)は、不具合の無いラベルシート800を示している。ラベルシート800は、種々のオブジェクトを表し得る。本実施例では、ラベルシート800は、ロゴタイプ810と、マーク820と、説明文830と、を表している。図中では、マーク820と説明文830との詳細の図示は、省略されている。
図3(B)は、ラベルシート800の設計画像の例を示す概略図である。設計画像は、ラベルシート800などの対象物の設計された画像である。本実施例では、ラベルシート800は、ラベルシート800の画像をシートに印刷することによって、製造される。図中の原稿画像700は、印刷すべきラベルシート800の画像である対象物画像800i(設計画像800iとも呼ぶ)と、トリムマーク790と、を表している。トリムマーク790は、クロップマークとも呼ばれ、原稿画像700の印刷後に切り落とすべき縁部分を示している。ラベルシート800の製造では、原稿画像700の原稿画像データ700dに従って、原稿画像700がシート上に印刷される。そして、トリムマーク790によって定められる縁部分を切り落とすことによって、ラベルシート800が製造される。原稿画像データ700dは、版下データとも呼ばれる。本実施例では、原稿画像データ700dは、カラーのビットマップデータである。ただし、原稿画像データ700dのデータ形式は、他の任意の形式であってよい。
A3.画像生成モデル300:
図4(A)は、画像生成モデル300の例を示すブロック図である。入力画像データI11dは、画像生成モデル300に入力される画像データである。生成画像データI12dは、画像生成モデル300によって生成される画像データである。本実施例では、これらの画像データI11d、I12dは、グレースケールのビットマップデータである。画像データI11d、I12dの画像I11、I12は、それぞれ、第1方向Dxに平行な2辺と、第1方向Dxに垂直な第2方向Dyに平行な2辺と、を有する矩形状の画像である。画像I11、I12は、第1方向Dxと第2方向Dyとに沿ってマトリクス状に並ぶ複数の画素のそれぞれの色値(本実施例では、輝度値)によって、表されている。第1方向Dxの画素数と、第2方向Dyの画素数とは、それぞれ、予め決められており、画像データI11d、I12dに共通である。
図4(A)は、画像生成モデル300の例を示すブロック図である。入力画像データI11dは、画像生成モデル300に入力される画像データである。生成画像データI12dは、画像生成モデル300によって生成される画像データである。本実施例では、これらの画像データI11d、I12dは、グレースケールのビットマップデータである。画像データI11d、I12dの画像I11、I12は、それぞれ、第1方向Dxに平行な2辺と、第1方向Dxに垂直な第2方向Dyに平行な2辺と、を有する矩形状の画像である。画像I11、I12は、第1方向Dxと第2方向Dyとに沿ってマトリクス状に並ぶ複数の画素のそれぞれの色値(本実施例では、輝度値)によって、表されている。第1方向Dxの画素数と、第2方向Dyの画素数とは、それぞれ、予め決められており、画像データI11d、I12dに共通である。
後述するように、画像生成モデル300には、デジタルカメラ110(図2)によって撮影されたラベルシート800の撮影画像を表す画像データが、入力される。入力画像データI11dの入力画像I11は、ラベルシート800の撮影画像I11aを含んでいる。ラベルシート800は、不具合を含み得る。画像生成モデル300は、入力画像I11から、不具合の無い同じラベルシート800の画像I12aを含む生成画像I12を生成するように、訓練される。生成画像I12内のラベルシート800の画像I12aの位置と大きさとは、入力画像I11内のラベルシート800の画像I11aの位置と大きさと、それぞれ同じである。
本実施例では、画像生成モデル300は、いわゆる変分オートエンコーダ(Variational auto-encoder : VAE)である。画像生成モデル300は、エンコーダ302とデコーダ307とを有している。エンコーダ302は、入力画像データI11dに対して次元削減処理を実行して、入力画像I11の特徴を示す潜在データ305を生成する。デコーダ307は、潜在データ305に対して次元復元処理を実行して、生成画像データI12dを生成する。エンコーダ302とデコーダ307とのそれぞれの構成は、種々の構成であってよい。例えば、エンコーダ302は、入力画像データI11dを使用して平均と標準偏差とを算出する1以上の全結合層と、平均と標準偏差とを使用して潜在データ305を生成する層と、を有してよい。潜在データ305の生成では、いわゆる「Reparametrization trick」によって、ノイズが導入されてよい。そして、デコーダ307は、潜在データ305を使用して生成画像データI12dを算出する1以上の全結合層を有してよい。潜在データ305の次元数は、画像データI11d、I12dの次元数よりも小さい種々の値であってよい。平均と標準偏差は、潜在データ305の要素毎に算出されてよい。
A4.訓練画像データ生成処理:
図5は、画像生成モデル300の訓練に使用される訓練画像データの生成処理の例を示すフローチャートである。本実施例では、プロセッサ210(図1)は、原稿画像データ700d(図3(B))を使用して、撮影画像に類似する画像を示す複数の訓練画像データを生成する。プロセッサ210は、生成プログラム231に従って、図5の処理を実行する。
図5は、画像生成モデル300の訓練に使用される訓練画像データの生成処理の例を示すフローチャートである。本実施例では、プロセッサ210(図1)は、原稿画像データ700d(図3(B))を使用して、撮影画像に類似する画像を示す複数の訓練画像データを生成する。プロセッサ210は、生成プログラム231に従って、図5の処理を実行する。
S110では、プロセッサ210は、不揮発性記憶装置230から原稿画像データ700d(図3(B))を取得する。S120では、プロセッサ210は、原稿画像データ700dから、設計画像800iを含む領域のビットマップデータである原画像データを取得する。図3(C)は、原画像データ710dの例を示す概略図である。原画像データ710dの原画像710は、原稿画像700(図3(B))のうちの設計画像800iとその周辺部分とを含んでいる。原画像710の第1方向Dxの画素数と第2方向Dyの画素数とは、画像生成モデル300(図4(A))に入力される画像(例えば、入力画像I11)のものと同じである。
なお、S120では、プロセッサ210は、原稿画像700(図3(B))のうちの予め決められた領域を、原画像710の領域として抽出する。これに代えて、プロセッサ210は、トリムマーク790を分析することによって、原画像710の領域を決定してよい。
S130では、プロセッサ210は、原画像データ710dのグレースケール変換を実行することによって、グレー原画像データを生成する。この変換により、RGBの色値は、所定の関係式(例えば、RGB色空間からYCbCr色空間への色変換式)を用いることによって、輝度値に変換される。図3(D)は、グレー原画像データ720dの例を示す概略図である。グレー原画像データ720dのグレー原画像720は、設計画像800iからグレースケール変換された画像であるグレー設計画像720aを含んでいる。プロセッサ210は、生成したグレー原画像データ720dを、記憶装置215(例えば、不揮発性記憶装置230)に格納する。
S140では、プロセッサ210は、グレー原画像データ720dを使用してP個(Pは2以上の整数)の訓練画像データを生成する。S140は、S150とS160とを含んでいる。
S150では、プロセッサ210は、グレー原画像データ720dに対するP回のノイズ付加処理を実行することによって、P個の訓練画像データI1tdを生成する。ノイズ付加処理は、撮影画像に類似する訓練画像を生成するために、行われる。本実施例では、プロセッサ210は、複数の画素のそれぞれの色値に、ガウス分布に従ってランダムに生成されたノイズ値を加算する(このようなノイズは、ガウシアンノイズとも呼ばれる)。本実施例では、プロセッサ210は、画素毎に、ノイズ値を生成する。また、プロセッサ210は、画像毎に、ノイズ値を生成する。
ガウス分布の平均値と標準偏差とは、撮影画像を使用して、予め実験的に決定される。例えば、光がデジタルカメラ110(図2)に当たらない暗い環境下でデジタルカメラ110によって生成された複数枚の撮影画像が使用される。これらの複数枚の撮影画像は、いずれも、黒色の無地の画像である。ただし、複数枚の撮影画像の間では、1個の画素の色値がノイズに起因してばらつき得る。ガウス分布の標準偏差は、この色値のばらつきに相当する値に決定されてよい。ガウス分布の平均値は、ゼロに決定されてよい。
S160では、プロセッサ210は、P個の訓練画像データのそれぞれに、ぼかし処理を実行する。ぼかし処理は、撮影画像に類似する訓練画像を生成するために、行われる。撮影画像上では、ラベルシート800の画像は、種々の原因に起因して、ぼけ得る。例えば、本実施例では、複合機900(図2)は、ベルト190によって搬送される。デジタルカメラ110による撮影は、複合機900がデジタルカメラ110の前で停止した状態で行われる。ベルト190が停止した後、ベルト190の変形によって、複合機900は振動し得る。例えば、複合機900は、搬送方向D190に平行に、振動し得る(この振動は、時間の経過とともに減衰する)。デジタルカメラ110によるラベルシート800の撮影時に複合機900が振動している場合、ラベルシート800の画像がぼけ得る。このような被写体の動きに起因するぼけは、モーションブラー(motion blur)とも呼ばれる。
モーションブラーは、点拡がり関数(Point spread function)を使用する畳込み処理によって、再現可能である。点拡がり関数は、1個の画素の色値のモーションブラーに起因する拡がりを示している。本実施例では、複合機900の動きは、搬送方向D190に平行な直線運動で近似される。直線運動を示す点拡がり関数としては、画像内の角度と長さとの2つのパラメータで定められる線分を使用可能である。点拡がり関数を示す角度と長さとは、撮影画像を使用して、予め実験的に決定される。例えば、検査のためのラベルシート800の撮影の条件と同じ条件下で、デジタルカメラ110を使用してラベルシート800を撮影する。そして、撮影画像を分析して撮影画像内のラベルシート800の動きを示す動きベクトルを算出する。この動きベクトルの角度と長さとは、点拡がり関数を示す角度と長さとして採用される。S160では、プロセッサ210は、点拡がり関数を使用する畳込み処理を訓練画像データに対して実行することによって、訓練画像データにモーションブラーを付与する。なお、動きベクトルの算出には、複数枚の撮影画像が使用されてよい。例えば、検査用の撮影の露光時間に相当する時間内に撮影された複数の撮影画像から、動きベクトルが算出されてよい。また、露光時間に相当する時間に亘って撮影された動画像データを使用して、動きベクトルが算出されてよい。
S140の処理(具体的には、S150、S160の処理)によって、プロセッサ210は、P個の訓練画像データI1tdを生成する。P個の訓練画像は、それぞれ、ノイズとぼけとを有しており、ラベルシート800の撮影画像に類似している。
S170では、プロセッサ210は、P個の訓練画像データI1tdを記憶装置215(ここでは、不揮発性記憶装置230)に格納する。そして、プロセッサ210は、図5の処理を終了する。なお、訓練画像データI1tdの総数Pは、画像生成モデル300を適切に訓練できるように、予め決定される。
A5.画像生成モデル300の訓練処理:
図6は、画像生成モデル300(図4(A))の訓練処理の例を示すフローチャートである。図4(B)は、画像生成モデル300の訓練の概要を示すブロック図である。本実施例では、画像生成モデル300は、訓練画像I1tの訓練画像データI1tdが入力される場合に、入力される訓練画像I1tと同じ画像を示す生成画像I1xの生成画像データI1xdを生成するように、訓練される。プロセッサ210(図1)は、訓練プログラム232に従って、図6の処理を実行する。
図6は、画像生成モデル300(図4(A))の訓練処理の例を示すフローチャートである。図4(B)は、画像生成モデル300の訓練の概要を示すブロック図である。本実施例では、画像生成モデル300は、訓練画像I1tの訓練画像データI1tdが入力される場合に、入力される訓練画像I1tと同じ画像を示す生成画像I1xの生成画像データI1xdを生成するように、訓練される。プロセッサ210(図1)は、訓練プログラム232に従って、図6の処理を実行する。
S210では、プロセッサ210は、図5の処理で生成されたP個の訓練画像データI1tdから、複数の訓練画像データI1tdで構成されるサブセットを取得する。サブセットとしては、未処理の訓練画像データI1tdが選択される。サブセットの訓練画像データI1tdの総数は、予め決められている。
S220では、プロセッサ210は、サブセットの訓練画像データI1tdを画像生成モデル300に入力することによって、生成画像データI1xdを生成する。プロセッサ210は、画像生成モデル300の各層の演算パラメータを使用して各層の演算を行うことによって、生成画像データI1xdを生成する。生成画像データI1xdの生成は、サブセットに含まれる訓練画像データI1td毎に行われる。
S230では、プロセッサ210は、訓練画像データI1tdと生成画像データI1xdとを使用して評価値を算出する。評価値の算出は、訓練画像データI1td毎に行われる。そして、プロセッサ210は、サブセットに含まれる複数の訓練画像データI1tdから算出される複数の評価値を使用して、損失Lを算出する。損失Lは、例えば、複数の評価値の合計値であってよい。
評価値の算出方法は、画像生成モデル300の訓練に適する任意の方法であってよい。本実施例では、画像生成モデル300は変分オートエンコーダである。この場合、評価値としては、いわゆる変分下限の最大化を可能にする種々の値を採用可能である。例えば、評価値は、再構成誤差と、正則化誤差と、の和であってよい。再構成誤差は、訓練画像I1tと生成画像I1xとの間の差を示すパラメータであり、例えば、交差エントロピー誤差である。正則化誤差は、例えば、潜在データ305の算出に使用される平均と標準偏差の組み合わせと、標準正規分布と、の間の差を示すパラメータである。正則化誤差は、例えば、計算式「-(1+log(s2)-m2-s2)/2」を使用して算出されてよい(mは平均であり、sは標準偏差である)。この計算式は、潜在データ305の1個の要素の誤差を示している。正則化誤差は、潜在データ305の各要素の誤差の和であってよい。
S240では、プロセッサ210は、損失が小さくなるように、画像生成モデル300の複数の演算パラメータを調整する。複数の演算パラメータを調整するためのアルゴリズムとしては、例えば、誤差逆伝播法と勾配降下法とを使用したアルゴリズムが採用されてよい。ここで、いわゆるAdamの最適化が行われてよい。
S250では、プロセッサ210は、訓練終了条件が満たされるか否かを判断する。訓練終了条件は、画像生成モデル300が適切に訓練されたことを示す任意の条件であってよい。本実施例では、訓練終了条件は、作業者からの終了指示が入力されることである。プロセッサ210は、P個の訓練画像データI1tdから訓練に使用されていない所定数の訓練画像データI1tdをランダムに取得する。プロセッサ210は、取得した複数の訓練画像データI1tdのそれぞれを画像生成モデル300に入力し、複数の生成画像データを取得する。プロセッサ210は、訓練画像I1tと生成画像との複数のペアを、表示部240に表示する。作業者は、表示部240を観察して、生成画像が訓練画像I1tを適切に表しているか否かを確認する。作業者は、確認結果に応じて、操作部250を操作して、訓練の終了指示、または、継続指示を入力する。
なお、訓練の終了条件は、他の条件であってよい。例えば、終了条件は、訓練に使用されていない所定数の訓練画像データI1tdを使用して算出される損失が、所定の損失閾値以下であることであってよい。
訓練が終了していないと判断される場合(S250:No)、プロセッサ210は、S210へ移行し、新たなサブセットの処理を実行する。訓練が終了したと判断される場合(S250:Yes)、S260で、プロセッサ210は、訓練済の画像生成モデル300を、記憶装置215(ここでは、不揮発性記憶装置230)に格納する。そして、プロセッサ210は、図6の処理を終了する。
訓練済の画像生成モデル300(図4(A))は、ラベルシート800の撮影画像I11aを含む入力画像I11から、同じラベルシート800の画像I12aを含む生成画像I12を生成する。画像内のラベルシート800の配置は、入力画像I11と生成画像I12との間で、同じである。
また、画像生成モデル300は、不具合の無いラベルシート800の画像を表す訓練画像データI1tdを使用して、同じラベルシート800、すなわち、不具合の無いラベルシート800の画像を表す生成画像データを生成するように、訓練される。画像生成モデル300に入力される画像のラベルシート800が不具合を有する場合には、画像生成モデル300は、その不具合を示す部分画像から不具合のない部分画像を適切に再構成し、不具合の無いラベルシート800の画像を表す生成画像データを生成する。
A6.検査処理:
図7、図8は、検査処理の例を示すフローチャートである。図8は、図7の続きを示している。データ処理装置200(図1)は、検査処理を実行することによって、複合機900(図2)のラベルシート800を検査する。プロセッサ210は、検査プログラム233に従って、検査処理を実行する。
図7、図8は、検査処理の例を示すフローチャートである。図8は、図7の続きを示している。データ処理装置200(図1)は、検査処理を実行することによって、複合機900(図2)のラベルシート800を検査する。プロセッサ210は、検査プログラム233に従って、検査処理を実行する。
S310では、プロセッサ210は、画像データの取得処理を実行する。S310は、S312、S314、S316、S318を含んでいる。S312で、プロセッサ210は、撮影指示をデジタルカメラ110(図2)に供給する。デジタルカメラ110は、指示に応じて、複合機900のうちのラベルシート800を含む部分を撮影し、撮影画像の画像データである撮影検査データを生成する。本実施例では、撮影検査データは、R(赤)G(緑)B(青)の3チャンネルで各画素の色を示すカラービットマップデータである。上述したように、撮影は、複合機900がデジタルカメラ110の前で停止した状態で行われる。例えば、プロセッサ210は、ベルトコンベアの駆動装置(図示省略)から、ベルト190の動作状態を示すデータを取得する。そして、ベルト190が停止している状態で、プロセッサ210は、撮影指示をデジタルカメラ110に供給する。
S314では、プロセッサ210は、撮影検査データから、ラベルシート800の画像を含む領域のカラービットマップデータである撮影画像データを取得する。図9、図10は、検査処理で処理される画像の変化の例を示す概略図である。図9の左列の上から1番目の画像610は、撮影画像データ610dの画像610の例を示している(撮影ラベル画像610と呼ぶ)。撮影ラベル画像610は、第1方向Dxに平行な2辺と、第1方向Dxに垂直な第2方向Dyに平行な2辺と、を有する矩形状の画像である。撮影ラベル画像610は、ラベルシート800の撮影画像610aを含んでいる。図9の例では、ラベルシート800は、傷801を有している。ラベルシート800の撮影画像610aは、撮影ラベル画像610に対して斜めに傾いている。撮影ラベル画像610は、ノイズとぼけとを有している。
本実施例では、S314(図7)で、プロセッサ210は、訓練済の物体検出モデルM1(図1)を使用して、撮影検査データの画像からラベルシート800の画像を含む領域を検出する。そして、プロセッサ210は、検出された領域を示す撮影画像データ610dを、撮影検査データから取得する。本実施例では、物体検出モデルM1は、YOLOv4 (You only look once)と呼ばれるモデルであり、ラベルシート800の画像を検出するように予め訓練されている。なお、物体検出モデルM1は、他の種々の物体検出モデル(例えば、SSD (Single Shot MultiBox Detector)、R-CNN (Region Based Convolutional Neural Networks)など)であってよい。物体検出モデルM1の訓練方法は、物体検出モデルM1に適する任意の方法であってよい。
S316、S318(図7)は、図5のS110、S120と、それぞれ同じである。プロセッサ210は、S316で原稿画像データ700d(図3(B))を取得し、S318で原稿画像データ700dから原画像データ710dを取得する。図9の右列の上から1番目の画像710は、原画像データ710dの原画像710の例を示している。この原画像710は、図3(C)の原画像710と同じである。
S320(図7)では、プロセッサ210は、第1前処理を実行する。S320は、S322、S324、S326、S328を含んでいる。S322では、プロセッサ210は、撮影画像データ610dのグレースケール変換を実行し、グレースケールの撮影画像データを生成する。グレースケール変換の方法は、S130(図5)のグレースケール変換の方法と同じである。図9の左列の2番目の画像620は、撮影画像データ610dから生成されるグレー撮影画像データ620dのグレー撮影画像620の例を示している。グレー撮影画像620は、ラベルシート800の画像620aを含んでいる。
S324(図7)では、プロセッサ210は、原画像データ710dのグレースケール変換を実行することによって、グレー原画像データ720dを生成する。図9の右列の2番目の画像720は、原画像データ710dから生成されるグレー原画像データ720dのグレー原画像720の例を示している。このグレー原画像720は、図3(D)のグレー原画像720と同じである。
S326(図7)では、プロセッサ210は、グレー撮影画像データ620dの色分布をグレー原画像データ720dの色分布に近づける第2色調整処理を実行する。本実施例では、色調整処理として、ヒストグラムマッチング処理が実行される。図11(A)は、ヒストグラムマッチング処理の例を示す説明図である。図中には、累積度数割合VCのグラフが示されている。横軸は、輝度値Vを示し、縦軸は、累積度数割合VC(単位は、%)を示している。本実施例では、輝度値Vは、ゼロから255の256段階で表される。累積度数割合VCは、輝度値Vのヒストグラムを使用して、算出される。ここで、輝度値Vの1個の値が、ヒストグラムの1個の階級(binとも呼ばれる)を形成することとする。注目階級の累積度数割合VCは、ヒストグラムの度数の合計値(すなわち、画素数)に対する、最小の階級から注目階級までの度数の合計(すなわち、累積度数)の割合である。
図中には、第1グラフC1と第2グラフC2とが示されている。第1グラフC1は、色調整の対象の画像データ(対象画像データと呼ぶ)の累積度数割合VCを示している。第2グラフC2は、参考色分布を有する画像データの累積度数割合VCを示している。対象画像データの第1輝度値V1は、第2輝度値V2に変換される。第2輝度値V2は、以下のように決定される。対象画像データの第1グラフC1を参照して、第1輝度値V1に対応する累積度数割合VC1が取得される。第2グラフC2を参照して、累積度数割合VC1に対応する第2輝度値V2が決定される。他の輝度値Vに関しても、同様に、調整後の輝度値Vが決定される。
図11(B)は、グレー撮影画像620(図9)の輝度値VA1のヒストグラムの例である。このヒストグラムは、背景部分を示す複数の画素によって形成される第1ピークP1と、オブジェクト(文字、マークなど)を示す複数の画素によって形成される第2ピークP2と、を有している。このヒストグラムは、ピークP1、P2に加えて、複数の他の小さなピークを有している。なお、ラベルシート800の画像は、3以上の色を使用して構成されてよい。この場合、輝度値のヒストグラムは、3以上の大きなピークを示し得る。
図11(C)は、グレー原画像720(図9)の輝度値VA2のヒストグラムの例である。このヒストグラムは、背景部分を示す複数の画素によって形成される第3ピークP3と、オブジェクトを示す複数の画素によって形成される第4ピークP4と、を有している。
グレー撮影画像620(図11(B))のピークP1、P2の幅は、グレー原画像720(図11(C))の対応するピークP3、P4の幅よりも、大きい。この理由は、グレー撮影画像620は、グレー原画像720とは異なり、種々のノイズと種々のぼけとを有しているからである。
図9の左列の3番目の画像630は、S326(図7)によってグレー撮影画像データ620dから生成される第1前処理済撮影画像データ630dの第1前処理済撮影画像630の例を示している。第1前処理済撮影画像630は、グレー撮影画像620のラベルシート800と同じラベルシート800の画像630aを含んでいる。
図11(D)は、第1前処理済撮影画像630の輝度値VB1のヒストグラムの例である。第1調整済ピークP1xは、第1ピークP1(図11(B))から変換されたピークであり、第2調整済ピークP2xは、第2ピークP2から変換されたピークである。調整済ピークP1x、P2xの輝度値VB1は、グレー原画像720(図11(C))の対応するピークP3、P4の輝度値VA2に、それぞれ近づいている。このように、ピークの位置(ここでは、輝度値)の観点から、ヒストグラムマッチング処理によって、第1前処理済撮影画像630の色分布は、グレー原画像720の色分布に近づいている。また、調整済ピークP1x、P2xの幅は、元のピークP1、P2の幅よりも、それぞれ小さい。ピークの幅が小さくなる理由は、細いピークP3、P4を有する色分布(図11(C))がヒストグラムマッチングの参考色分布である場合、広い幅を有するピーク(例えば、ピークP1)に含まれる多数の輝度値VA1が、ヒストグラムマッチングによって、狭い範囲の少数の輝度値VB1に変換されるからである。このように、ピークの幅の観点から、ヒストグラムマッチング処理によって、第1前処理済撮影画像630の色分布は、グレー原画像720の色分布に近づいている。
S328(図7)では、プロセッサ210は、グレー原画像データ720dの色分布をグレー撮影画像データ620dの色分布に近づける第1色調整処理(本実施例では、ヒストグラムマッチング処理)を実行する。図9の右列の3番目の画像730は、S328によってグレー原画像データ720dから生成される第1前処理済原画像データ730dの第1前処理済原画像730の例を示している。第1前処理済原画像730は、グレー原画像720のグレー設計画像720aから色調整された画像である設計ラベル画像730aを含んでいる。
図11(E)は、第1前処理済原画像730の輝度値VB2のヒストグラムの例である。第3調整済ピークP3xは、第3ピークP3(図11(C))から変換されたピークであり、第4調整済ピークP4xは、第4ピークP4から変換されたピークである。調整済ピークP3x、P4xの輝度値VB2は、グレー撮影画像620(図11(B))の対応するピークP1、P2の輝度値VA1に、それぞれ近づいている。このように、ピークの位置(ここでは、輝度値)の観点から、ヒストグラムマッチング処理によって、第1前処理済原画像730の色分布は、グレー撮影画像620の色分布に近づいている。なお、調整済ピークP3x、P4xの幅は、元のピークP3、P4の幅から、それぞれ、やや大きくなっている。ただし、元のピークP3、P4の幅が小さいので、変換後のピークP3x、P4xの幅は、参考色分布(図11(B))における対応するピークP1、P2の幅よりも小さい幅であり得る。
図11(F)は、グレー撮影画像620とグレー原画像720との間の同じ画素の輝度差の絶対値(|VA1-VA2|)のヒストグラムの例である。図11(G)は、第1前処理済撮影画像630と第1前処理済原画像730との間の同じ画素の輝度差の絶対値(|VB1-VB2|)のヒストグラムの例である。図示するように、色調整済の輝度値の差(図11(G))は、色調整処理が行われない場合の輝度値の差(図11(F))と比べて、小さくなっている。すなわち、第1前処理済撮影画像630と第1前処理済原画像730との間の色分布の差が、小さくなっている。後述するように、ラベルシート800(図9)の傷801を検出するために、色調整済の撮影画像の画像データが、画像生成モデル300に入力される。図5、図6で説明したように、画像生成モデル300の訓練では、グレー原画像データ720dから生成された訓練画像データI1tdが、画像生成モデル300に入力される。色調整処理によって、検査のために画像生成モデル300に入力される撮影画像の色分布が、訓練画像の色分布に近づくので、画像生成モデル300は、適切な生成画像を生成できる。
S330(図7)では、プロセッサ210は、第2前処理を実行する。S330は、第1前処理済撮影画像データ630dに対する前処理(S332)と、第1前処理済原画像データ730dに対する前処理(S340)と、を含んでいる。
S332は、S334とS336と、を含んでいる。S334では、プロセッサ210は、第1前処理済撮影画像データ630dに対するぼけ低減処理を実行する。本実施例では、ぼけ低減処理は、S160(図5)で説明したモーションブラーを低減する処理である(ぼけ低減処理は、デブラー(Deblur)処理とも呼ばれる)。このようなぼけ低減処理は、種々の処理であってよい。本実施例では、プロセッサ210は、S160で説明した動きベクトル(具体的には、角度と長さ)を使用して、点拡がり関数を決定する。プロセッサ210は、点拡がり関数を使用して、いわゆるウィーナーフィルタ(Wiener filter)を生成する。そして、プロセッサ210は、周波数領域におけるウィーナーフィルタを使用する第1前処理済撮影画像データ630dのフィルタ処理を実行することによって、ぼけ低減済撮影画像データを生成する。
S336では、プロセッサ210は、ぼけ低減済撮影画像データに対する平滑化処理を実行する。平滑化処理は、ノイズ低減処理とも呼ばれる。本実施例では、平均化フィルタを使用するフィルタ処理が、行われる。平均化フィルタのカーネルのサイズは、ノイズを適切に低減できるように、予め実験的に決定される。
以上のS334、S336(すなわち、S332)によって、プロセッサ210は、第1前処理済撮影画像データ630dから第2前処理済撮影画像データ640dを生成する。図9の左列の4番目の画像640は、第2前処理済撮影画像データ640dの第2前処理済撮影画像640の例を示している。第2前処理済撮影画像640は、第1前処理済撮影画像630のラベルシート800と同じラベルシート800の画像640aを含んでいる。第2前処理済撮影画像640では、第1前処理済撮影画像630と比べて、ノイズとぼけとが低減されている。
S340(図7)は、S342、S344、S346を含んでいる。S342、S344の全体は、第1前処理済原画像データ730dにノイズを付加する処理であり、図5のS150のノイズ付加処理と同じである。S342では、プロセッサ210は、ガウス分布に従ってランダムに各画素のノイズ値(ガウシアンノイズとも呼ぶ)を生成する。S344では、プロセッサ210は、第1前処理済原画像データ730dとガウシアンノイズとを合成することによって、ノイズ付加済原画像データを生成する。
S346では、プロセッサ210は、ノイズ付加済原画像データのぼかし処理を実行する。S346のぼかし処理は、図5のS160のぼかし処理と同じである。
以上のS342-S346(すなわち、S340)によって、プロセッサ210は、第1前処理済原画像データ730dから第2前処理済原画像データ740dを生成する。図9の右列の4番目の画像740は、第2前処理済原画像データ740dの第2前処理済原画像740の例を示している。第2前処理済原画像740は、第1前処理済原画像730の設計ラベル画像730aにノイズとぼかしとが付加された画像である設計ラベル画像740aを含んでいる。
S350(図8)では、プロセッサ210は、外形合わせ処理を実行する。S350は、S352-S362を含んでいる。S352では、プロセッサ210は、第2前処理済撮影画像データ640d(図9)を分析することによって、エッジを抽出する。S354では、プロセッサ210は、抽出されたエッジを使用して、ラベルシート800の画像640a上の予め決められた4個の部分(本実施例では、ラベルシート800の4個の角)の第2前処理済撮影画像640上の座標を算出する。エッジを抽出する方法は、任意の方法であってよい。例えば、プロセッサ210は、ラプラシアンフィルタを使用して各画素のエッジ量を算出し、所定のエッジ閾値以上のエッジ量を有する画素をエッジ画素として抽出する。4個の部分のそれぞれの座標の算出方法は、任意の方法であってよい。例えば、プロセッサ210は、エッジを細らせる細線化処理(例えば、Hilditchの細線化)を実行する。プロセッサ210は、細線化されたエッジを使用するハフ変換を実行することによって、ラベルシート800の輪郭を示す4本の直線を検出する。プロセッサ210は、4本の直線を使用して、4個の交点(すなわち、4個の角)の座標を算出する。
S356、S358は、第2前処理済撮影画像データ640dに代えて第2前処理済原画像データ740dが使用される点を除いて、S352、S354と、それぞれ同じである。プロセッサ210は、設計ラベル画像740a(図9)の4個の角の第2前処理済原画像740上の座標を算出する。
S360(図8)では、プロセッサ210は、第2前処理済撮影画像640(図9)上の4個の部分の座標と第2前処理済原画像740上の4個の部分の座標とを使用して、射影変換の射影関数を決定する。この射影関数は、第2前処理済原画像740中の設計ラベル画像740aの外形を、第2前処理済撮影画像640中のラベルシート800の画像640aの外形に合わせるための射影関数である。外形は、輪郭の形状である。S362では、プロセッサ210は、射影関数に従って第2前処理済原画像データ740dの射影変換を実行することによって、変換済原画像データ750dを生成する。図9の右列の5番目の画像750は、第2前処理済撮影画像データ640dと第2前処理済原画像データ740dとから生成される変換済原画像データ750dの変換済原画像750の例を示している。変換済原画像750は、第2前処理済原画像740の設計ラベル画像740aから射影変換された画像である設計ラベル画像750aを含んでいる。変換済原画像750中の設計ラベル画像750aの外形は、第2前処理済撮影画像640中のラベルシート800の画像640aの外形と、同じである。
なお、射影変換(S360、S362)の方法は、任意の方法であってよい。例えば、OpenCV(Open Source Computer Vision Library)の射影変換の関数が、使用されてよい。
S372(図8)では、プロセッサ210は、第2前処理済撮影画像データ640d(図9)のリサイズ処理を行うことによって、リサイズ済の第2前処理済撮影画像データ645dを生成する(処理済撮影画像データ645dとも呼ぶ)。このリサイズ処理は、第2前処理済撮影画像データ640dの画像サイズ(具体的には、第1方向Dxの画素数と第2方向Dyの画素数)を、画像生成モデル300に入力可能な画像サイズに変換する処理である。リサイズ処理としては、種々の解像度変換処理を採用可能である。図9の左列の5番目の画像645は、処理済撮影画像データ645dの処理済撮影画像645の例を示している。処理済撮影画像645は、解像度が異なる点を除いて、第2前処理済撮影画像640と同じである。処理済撮影画像645は、画像640aと同じ画像645aを含んでいる。なお、リサイズ処理は、第2前処理済撮影画像データ640dに限らず、撮影されたラベルシート800の画像を表す画像データ610d、620d、630d、640dのうちの任意の画像データに対して、行われてよい。
S374では、プロセッサ210は、処理済撮影画像データ645d(図9)を画像生成モデル300(図4(A))に入力することによって、生成画像データ650dを生成する。図10の画像650は、処理済撮影画像データ645dから生成される生成画像データ650dの生成画像650の例を示している。生成画像650は、不具合(本実施例では、傷801)の無いラベルシート800の画像650aを含んでいる。図5、図6、で説明したように、画像生成モデル300は、不具合の無いラベルシート800の画像を表す生成画像データを生成するように、訓練済である。従って、画像生成モデル300に入力される画像データ645dが傷801を有するラベルシート800を示す場合であっても、生成画像データ650dは、傷801の無いラベルシート800を示している。
S378(図8)では、プロセッサ210は、生成画像データ650dと、画像生成モデル300に入力された画像データ645dとの間の差分を示す差分画像データ660dを生成する。図10の画像660は、差分画像データ660dの画像660の例を示している(差分画像660と呼ぶ)。差分画像660の各画素は、2枚の画像645、650の間の対応する画素の色値(ここでは、輝度値)の差を示している。ラベルシート800の画像660aを示す複数の画素のうち、傷801を示す複数の画素は、大きな差を示している。残りの複数の画素は、傷801を示す差よりも小さい差(例えば、ゼロに近い値)を示している。
S379(図8)では、プロセッサ210は、差分画像データ660dのリサイズ処理を行うことによって、リサイズ済差分画像データ665dを生成する。このリサイズ処理は、差分画像データ660dの解像度を、変換済原画像データ750dの解像度に合わせる処理である。リサイズ済差分画像データ665dによって示されるリサイズ済差分画像(図示省略)は、解像度が異なる点を除いて、差分画像データ660d(図10)の差分画像660と同じである。リサイズ済差分画像中の対象物画像800iに対応する部分と、変換済原画像750(図9)の設計ラベル画像750aとは、同じ解像度と同じ外形とを有している。このリサイズ処理は、例えば、S372のリサイズ処理による解像度変換の逆変換であってよい。これに代えて、プロセッサ210は、差分画像660と変換済原画像750とを分析することによって、リサイズ済差分画像中の対象物画像800iに対応する部分と設計ラベル画像750aとが、同じ解像度と同じ外形とを有するように、リサイズ処理を行ってよい。
S380(図8)では、プロセッサ210は、リサイズ済差分画像データ665dと変換済原画像データ750dとを合成することによって、リサイズ済差分画像(差分画像660と同じ)と変換済原画像750との重畳画像を示す重畳画像データ670dを生成する。図10の画像670は、重畳画像データ670dの重畳画像670の例を示している。重畳画像670は、設計ラベル画像750a(図9)と、リサイズ済差分画像中の対象物画像800iに対応する部分(差分画像660(図10)中の画像660aと同じ)と、の重畳画像であるラベル重畳画像670aを含んでいる。ラベル重畳画像670aは、設計画像800iと傷801とを示している。
S382(図8)では、プロセッサ210は、重畳画像データ670dの射影変換を実行することによって、変換済重畳画像データ680dを生成する。S382では、S350の射影変換の逆変換が行われる。図10の画像680は、変換済重畳画像データ680dの画像680の例を示している(変換済重畳画像680と呼ぶ)。変換済重畳画像680は、ラベル重畳画像680aを含んでいる。ラベル重畳画像680aは、ラベル重畳画像670aの射影変換によって得られる画像である。ラベル重畳画像680aの外形は、S350の処理対象の画像740(図9)の設計ラベル画像740aの外形(すなわち、原画像710の設計画像800iの外形)と同じである。ラベル重畳画像680aは、変換済重畳画像680に対して傾いていない。
S384(図8)では、プロセッサ210は、変換済重畳画像データ680dを使用して、出力データ690dを生成する。図10の画像690は、変換済重畳画像データ680dを使用して生成される出力データ690dの画像690の例を示している(出力画像690と呼ぶ)。出力画像690は、ラベル重畳画像690aを含んでいる。ラベル重畳画像690aは、ラベル重畳画像680aと、傷801を囲む枠699と、を示している。本実施例では、プロセッサ210は、リサイズ済差分画像を分析することによって所定の差分閾値以上の差分を示す複数の画素が連続する不具合部分を検出し、検出した不具合部分を囲む枠の画像を変換済重畳画像680に重畳する。ラベルシート800が不具合を有していない場合、リサイズ済差分画像からは不具合部分が検出されず、出力画像690は、第2前処理済原画像740(図9)と実質的に同じ画像である。
S386(図8)では、プロセッサ210は、出力データ690dを使用する結果出力処理を実行する。本実施例では、プロセッサ210は、出力データ690dの出力画像690を表示部240(図1)に表示する。作業者は、表示部240を観察することによって、ラベルシート800の外観の不具合の有無を容易に認識できる。また、ラベルシート800が不具合を有する場合には、作業者は、枠(例えば、枠699(図10))を観察することによって、ラベルシート800上の不具合の位置を容易に認識できる。また、作業者は、表示された出力画像690と実際のラベルシート800とを比較することによって、実際のラベルシート800の不具合(例えば、傷801)を容易に見つけることができる。ここで、出力画像690は、撮影画像のように、ノイズとぼけとを有している。従って、作業者が出力画像690と実際のラベルシート800とを目視で比較する場合に作業者に生じる違和感を低減できる。S386の後、プロセッサ210は、図7、図8の検査処理を終了する。作業者は、結果出力処理に応じて、種々の処理を実行してよい。例えば、作業者は、ラベルシート800が不具合を有する場合に、そのラベルシート800を有する複合機900を、複合機900の製造ラインから除いてよい。
以上のように、本実施例では、図7、図8の検査処理で、プロセッサ210(図1)は、S324、S328、S340、S350(図7、図8)で構成される第1画像処理S910を実行することによって、原画像データ710dから変換済原画像データ750dを生成する。すなわち、プロセッサ210は、原画像データ710dを使用して第1画像処理S910を実行することによって、変換済原画像データ750dを生成する(以下、変換済原画像データ750dを、処理済原画像データ750dとも呼ぶ)。ここで、原画像データ710d(図9)は、印刷すべき対象物画像800iを示す画像データである。
プロセッサ210は、S322、S326、S332、S372(図7、図8)で構成される第2画像処理S920を実行することによって、撮影画像データ610dから処理済撮影画像データ645dを生成する。すなわち、プロセッサ210は、撮影画像データ610dを使用して第2画像処理S920を実行することによって、処理済撮影画像データ645dを生成する。ここで、撮影画像データ610d(図9)は、印刷された対象物画像800iを有するラベルシート800の撮影画像610aを示している(以下、撮影画像610aを、撮影対象物画像610aとも呼ぶ)。
プロセッサ210は、S374、S378、S379、S380、S382、S384(図8)で構成される第3画像処理S990を実行することによって、処理済原画像データ750dと処理済撮影画像データ645dとから、出力データ690dを生成する。図10に示すように、出力データ690dは、印刷された対象物画像800iの外観の不具合に関するデータの例である。
ここで、第1画像処理S910(図7、図8)は、第2画像処理S920には含まれない第1処理S810を含んでいる(具体的には、図7のS328、S342、S344、S346、図8のS350)。第1処理としては、原画像データ710dからの処理済原画像データ750dの生成に適する種々の処理を採用可能である。また、第2画像処理S920は、第1画像処理S910には含まれない第2処理S820を含んでいる(具体的には、図7のS326、S334、S336、図8のS372)。第2処理としては、撮影画像データ610dからの処理済撮影画像データ645dの生成に適する種々の処理を採用可能である。従って、プロセッサ210は、適切に生成された処理済原画像データ750dと、適切に生成された処理済撮影画像データ645dと、を使用することによって、印刷された対象物画像800iの外観の不具合に関する適切な出力データ690dを生成できる。
第1画像処理S910(図7、図8)に含まれる第1処理S810は、ノイズ付加処理(S342-S344)とぼかし処理(S346)との両方を含む前処理(S340)を含んでいる。従って、処理済原画像データ750d(図9)は、撮影画像データのように、ノイズとぼけとを有している。プロセッサ210は、処理済原画像データ750dと処理済撮影画像データ645dとを使用することによって、不具合に関する適切な出力データ690dを生成できる。例えば、出力画像690は、処理済原画像データ750dの処理済原画像750のように、ノイズとぼけとを有し得る。従って、出力画像690と実際のラベルシート800を観察する作業者に生じる違和感は、低減可能である。
また、原画像データ710d(図9)によって示される対象物画像800iは、ラベルシート800の設計画像である。プロセッサ210は、このような原画像データ710dを使用して第1画像処理S910(図7、図8)を実行することによって、処理済原画像データ750dを生成する。また、プロセッサ210は、ラベルシート800の撮影画像である撮影対象物画像610aを示す撮影画像データ610dを使用して第2画像処理S920を実行することによって、処理済撮影画像データ645dを生成する。そして、プロセッサ210は、処理済原画像データ750dと処理済撮影画像データ645dとを使用して第3画像処理S990を実行することによって、ラベルシート800の外観の不具合に関するデータである出力データ690dを生成する。上述したように、第3画像処理S990は、訓練済の画像生成モデル300を使用する処理(S374)を含んでいる。また、第1画像処理S910は、第2画像処理S920には含まれない第1処理S810を含み、第2画像処理S920は、第1画像処理S910には含まれない第2処理S820を含んでいる。本実施例では、第1処理S810は、ノイズ付加処理(S342-S344)とぼかし処理(S346)との両方を含む前処理(S340)を含んでいる。また、図5、図6で説明したように、画像生成モデル300は、原画像データ710dに、S130-S160を含む画像処理である生成処理S930を実行することによって生成される訓練画像データI1tdを使用して訓練されている。生成処理S930は、図7の前処理(S340)と同じ処理(S140)を含んでいる。このように、訓練画像データI1tdの生成処理S930と、処理済原画像データ750dを生成する第1画像処理S910とでは、画像に同程度のノイズと同程度のぼけとが付加される。従って、第1画像処理S910と、訓練済の画像生成モデル300を使用する処理(具体的には、S374)と、の間の整合性が向上する。プロセッサ210は、このような処理S910、S374によって生成される画像データ750d、650dを使用することによって、ラベルシート800の外観の不具合に関する適切な出力データ690dを生成できる。
また、図4(A)、図4(B)、図5、図6で説明したように、画像生成モデル300は、ラベルシート800の画像I1taを示す訓練画像データI1tdから、不具合の無いラベルシート800の画像を示す生成画像データI1xdを生成するように、訓練されている。この構成によれば、プロセッサ210は、画像生成モデル300によって生成される画像データを使用して、ラベルシート800の不具合を示すデータ(本実施例では、差分画像データ660d)を生成することができる。プロセッサ210は、このような差分画像データ660dを使用して、適切な出力データ690dを生成できる。
また、第1画像処理S910(図7)に含まれる第1処理S810は、第1色調整処理(S328)を含んでいる。第1色調整処理は、処理すべきグレー原画像データ720dの色分布を、撮影画像データ610dに基づくグレー撮影画像データ620dの色分布に近づける。第2画像処理S920に含まれる第2処理S820は、第2色調整処理(S326)を含んでいる。第2色調整処理は、処理すべきグレー撮影画像データ620dの色分布を、原画像データ710dに基づくグレー原画像データ720dの色分布に近づける。これらの色調整処理(S326、S328)により、第1前処理済撮影画像630(図9)と第1前処理済原画像730との間の色分布の差は、小さくなる。従って、画像処理S910、S920によって生成される画像データ750d、645dの間の色分布の差は、小さくなる。プロセッサ210は、これらの画像データ750d、645dを使用することによって、適切な出力データ690dを生成できる。
また、第2画像処理S920(図7、図8)に含まれる第2処理S820は、ノイズ低減処理(S336)とぼけ低減処理(S334)との両方を含む前処理(S332)を含んでいる。従って、撮影ラベル画像610が意図しない大きいノイズ、または、大きいぼけを有する場合に、ノイズとボケの出力データ690dに対する影響を緩和できる。例えば、ラベルシート800が不具合を有する場合に、不具合を示さない出力データ690dが生成される可能性は、低減される。このように、プロセッサ210は、処理済原画像データ750dと処理済撮影画像データ645dとを使用することによって、不具合に関する適切な出力データ690dを生成できる。
第1画像処理S910(図8)に含まれる第1処理S810は、外形合わせ処理(S350)を含んでいる。S350の処理は、処理すべき第2前処理済原画像データ740d(図9)の画像740のうちの対象物画像800iに対応する部分(ここでは、設計ラベル画像740a)の外形を、第2前処理済撮影画像640のラベルシート800の画像640aの外形(撮影ラベル画像610の撮影対象物画像610aの外形と同じ)に合わせる処理である。従って、画像処理S910、S920によって生成される画像データ750d、645dの間のラベルシート800の画像の外形の差は、小さくなる。プロセッサ210は、これらの画像データ750d、645dを使用することによって、適切な出力データ690dを生成できる。
第1画像処理S910(図7、図8)に含まれる第1処理S810は、第1色調整処理(S328)と、前処理(S340)と、外形合わせ処理(S350)と、を含んでいる。第1色調整処理(S328)は、原画像データ710d(図9)に基づくグレー原画像データ720dの色分布を、撮影画像データ610dに基づくグレー撮影画像データ620dの色分布に近づける。前処理(S340)は、第1色調整処理(S328)による処理済の画像データ730dに対する処理である。外形合わせ処理(S350)は、前処理(S340)による処理済の画像データ740dの画像740のうちの対象物画像800iに対応する部分(ここでは、設計ラベル画像740a)の外形を、第2前処理済撮影画像640のラベルシート800の画像640aの外形(撮影ラベル画像610の撮影対象物画像610aの外形と同じ)に合わせる処理である。この構成によれば、画像処理S910、S920によって生成される画像データ750d、645dの間で、ラベルシート800の外観の不具合(傷801など)とは異なる差は、小さくなる(具体的には、色分布の差と、ノイズの差と、ぼけの差と、ラベルシート800の画像の外形の差とが、小さくなる)。プロセッサ210は、これらの画像データ750d、645dを使用することによって、適切な出力データ690dを生成できる。
図8の生成処理S990は、S374、S378、S379、S380、S382、S384を含んでいる。S374、S378では、プロセッサ210は、処理済撮影画像データ645dの処理済撮影画像645と不具合の無いラベルシート800の画像(ここでは、生成画像データ650dの生成画像650)との間の異なる部分を示す差分画像660の差分画像データ660dを生成する。S379では、プロセッサ210は、差分画像データ660dのリサイズによって、リサイズ済差分画像データ665dを生成する。S380では、リサイズ済差分画像データ665dと処理済原画像データ750dとを合成することによって、リサイズ済差分画像(差分画像660と同じ)と処理済原画像750との重畳画像を示す重畳画像データ670dを生成する。S382、S384では、重畳画像データ670dを使用して、出力データ690dを生成する。本実施例では、S382では、プロセッサ210は、重畳画像データ670dの重畳画像670のうちの対象物画像800iに対応する部分670aの外形を、原画像データ710d(図9)の対象物画像800iの外形に合わせる。変換済重畳画像680中の対象物画像800iに対応する部分680aの外形は、設計画像800iの外形と、同じである。S384では、プロセッサ210は、変換済重畳画像680と枠の画像(例えば、枠699)との重畳画像を示す出力画像690の出力データ690dを生成する。変換済重畳画像680は、リサイズ済差分画像データ665dのリサイズ済差分画像(差分画像データ660dの差分画像660と同じ)と、処理済原画像データ750dの処理済原画像750と、の重畳画像を示している。従って、プロセッサ210は、ラベルシート800の不具合部分を示す適切な出力データ690dを生成できる。
B.変形例:
(1)ノイズ低減処理(S336(図7))で使用されるフィルタは、平均化フィルタに代えて、他の種々のフィルタであってよい(例えば、ガウシアンフィルタ、中央値フィルタなど)。また、ノイズ低減処理は、フィルタを使用する処理に代えて、色値を平滑化する種々の処理であってよい。
(1)ノイズ低減処理(S336(図7))で使用されるフィルタは、平均化フィルタに代えて、他の種々のフィルタであってよい(例えば、ガウシアンフィルタ、中央値フィルタなど)。また、ノイズ低減処理は、フィルタを使用する処理に代えて、色値を平滑化する種々の処理であってよい。
(2)ノイズ付加処理(S150(図5)、S342-S344(図7)は、上記実施例の処理に代えて、他の種々の処理であってよい。ノイズ付加処理は、例えば、各画素のノイズ値を示すノイズ画像を、処理対象の画像に重畳する処理であってよい。ノイズ画像は、予め実験的に決定されてよい。プロセッサ210は、予め準備された複数のノイズ画像から、処理対象の画像に重畳すべきノイズ画像を、ランダムに選択してよい。いずれの場合も、S340(図7)で行われるノイズ付加処理は、訓練画像データの生成処理(図5)で行われるノイズ付加処理と同じ処理であることが好ましい。ただし、それらのノイズ付加処理は、互いに異なる処理であってよい。
(3)ぼけ低減処理(S334(図7)で使用される動きベクトルの決定方法は、任意の方法であってよい。例えば、複合機900に速度センサが固定されてよい。そして、検査用の撮影時の複合機900の速度から、動きベクトルが決定されてよい。また、ぼけ低減処理は、点拡がり関数とウィーナーフィルタを使用する上記の方法に代えて、他の任意の方法であってよい。例えば、いわゆるLucy-Richardson deconvolutionが採用されてよい。この方法は、点拡がり関数に基づくぼけを低減することができる。また、「interactive back projection」と呼ばれるアルゴリズムが採用されてよい。また、「Deep Generative Filter for Motion Deblurring」と呼ばれる畳込ニューラルネットワークを使用する技術が採用されてよい。また、モーションブラーに限らず、ラベルシート800からのカメラの焦点のずれに起因するぼけを低減する処理が、実行されてよい。例えば、「PyLops」と呼ばれるPython用のライブラリの「Image deblurring」と呼ばれる処理が、実行されてよい。
(4)ぼかし処理(S160(図5)、S346(図7))は、上記実施例の処理に代えて、他の種々の処理であってよい。例えば、ぼかし処理は、平滑化フィルタによる平滑化処理を含んでよい。
(5)射影変換(S350:図8)に使用される4個の部分は、ラベルシート800の4個の角に限らず、ラベルシート800の任意の部分であってよい。また、4個の部分のそれぞれの座標を算出する方法は、上記実施例の処理に代えて、他の種々の処理であってよい。例えば、4個の部分を示す4個の基準画像を使用するパターンマッチングによって、4個の部分のそれぞれの座標が決定されてよい。
(6)検査処理は、図7、図8の処理に代えて、他の種々の処理であってよい。例えば、第1画像処理S910は、S372と同様に処理済原画像データ750dのリサイズ処理を含んでよい。また、第1画像処理S910の複数の処理(S324(グレースケール変換)、S328(第1色調整)、S342-S344(ノイズ付加)、S346(ぼかし)、S350(射影変換))の実行順番は、他の種々の順番であってよい。例えば、S328(第1色調整)は、S340(前処理)による処理済の画像データを、処理してよい。なお、第1画像処理S910と第2画像処理S920とは、以下に示すように、同じ観点に注目する画像処理の3個のペアPP1-PP3を形成している。
(PP1)S324、S322(色空間)
(PP2)S326、S326(色分布)
(PP3)S340、S332(画像の劣化(ノイズとぼけ))
画像処理S910、S920の間の整合性の向上のためには、これら3個のペアPP1-PP3の順番は、画像処理S910、S920の間で同じであることが好ましい。例えば、第1画像処理S910において、S328(第1色調整)がS340(前処理)の後に実行される場合、第2画像処理S920において、S324(第2色調整)はS332(前処理)の後に実行されることが好ましい。
(PP1)S324、S322(色空間)
(PP2)S326、S326(色分布)
(PP3)S340、S332(画像の劣化(ノイズとぼけ))
画像処理S910、S920の間の整合性の向上のためには、これら3個のペアPP1-PP3の順番は、画像処理S910、S920の間で同じであることが好ましい。例えば、第1画像処理S910において、S328(第1色調整)がS340(前処理)の後に実行される場合、第2画像処理S920において、S324(第2色調整)はS332(前処理)の後に実行されることが好ましい。
また、第1画像処理S910の複数の処理(S324(グレースケール変換)、S328(第1色調整)、S342-S344(ノイズ付加)、S346(ぼかし)、S350(射影変換))のうち、1以上の任意の処理が、省略されてよい。例えば、撮影時の複合機900(図2)とデジタルカメラ110との間の位置の精度が良好である場合、すなわち、撮影画像内のラベルシート800の画像の位置のズレが小さい場合、S350(射影変換)は省略されてよい。この場合、S382(射影変換)も省略されてよい。S382は、S350が省略されるか否かに拘わらずに、省略されてよい。また、S350が省略され、代わりに、第2画像処理S920は、S382と同様の射影変換の処理を含んでよい。この場合、第2画像処理S920によって生成される処理済撮影画像645中では、ラベルシート800の画像645aの外形は、原画像710の設計画像800iの外形と同じである(例えば、ラベルシート800の画像645aは、処理済撮影画像645に対して傾いていない)。S380では、プロセッサ210は、傾いていないラベルシート800を示す重畳画像データ670dを生成する。この場合、S382は、省略されてよい。同様に、第2画像処理S920の複数の処理(S322(グレースケール変換)、S326(第2色調整)、S334(ボケ低減)、S336(ノイズ低減)、S372(リサイズ))のうち、1以上の任意の処理が、省略されてよい。なお、第1画像処理S910の複数の処理のうち、上記のペアPP1-PP3のいずれかを形成する処理が省略される場合には、第2画像処理S920の対応する処理も省略されることが好ましい。ただし、1個のペアを形成する2個の処理のうち、一方のみが省略されてよい。例えば、S328(第1色調整)とS326(第2色調整)とのうちの一方または両方が省略されてよい。
(7)前処理S340、S332(図7)は、種々の処理であってよい。例えば、前処理S340のS342-S344(ノイズ付加)とS346(ぼかし)のうちの一方が省略されてよい。S342-S344(ノイズ付加)が省略される場合、前処理S332の同じ観点に注目するS336(ノイズ低減)が省略されることが好ましい。S346(ぼかし)が省略される場合、前処理S332の同じ観点に注目するS334(ボケ低減)が省略されることが好ましい。前処理S340と前処理S332のうちの一方または両方が省略されてよい。
(8)第1画像処理S910(図7、図8)の第1処理S810は、第2画像処理S920に含まれない種々の処理で構成されてよい。例えば、S328(第1色調整)、S342-S344(ノイズ付加)、S346(ぼかし)、S350(射影変換)のうち、1以上の任意の処理が、省略されてよい。同様に、第2画像処理S920の第2処理S820は、第1画像処理S910に含まれない種々の処理で構成されてよい。例えば、S326(第2色調整)、S334(ボケ低減)、S336(ノイズ低減)、S372(リサイズ)のうち、1以上の任意の処理が、省略されてよい。
(9)色調整処理(S328、S326(図7)は、種々の処理であってよい。例えば、第1色調整処理(S328)によって処理すべき画像データは、グレー原画像データ720dに限らず、原画像データ710dに基づく種々の画像データであってよい。ここで、原画像データ710dに基づく画像データは、原画像データ710d、または、原画像データ710dに画像処理を実行することによって得られる画像データである。第1色調整処理(S328)は、例えば、前処理S340による処理済の画像データを処理してよい。また、第1色調整処理(S328)で使用される参考色分布は、グレー撮影画像データ620dの色分布に限らず、撮影画像データ610dに基づく種々の画像データの色分布であってよい。ここで、撮影画像データ610dに基づく画像データは、撮影画像データ610d、または、撮影画像データ610dに画像処理を実行することによって得られる画像データである。第1色調整処理(S328)で使用される参考色分布は、例えば、前処理S332による処理済の画像データの色分布であってよい。なお、参考色分布の色空間は、処理すべき画像データの色空間と同じであることが好ましい。色空間が複数の色成分で表現される場合、色成分毎にヒストグラムマッチングが行われてよい。
同様に、第2色調整処理(S326)によって処理すべき画像データは、グレー撮影画像データ620dに代えて、撮影画像データ610dに基づく種々の画像データであってよい。そして、第2色調整処理(S326)で使用される参考色分布は、グレー原画像データ720dの色分布に限らず、原画像データ710dに基づく種々の画像データの色分布であってよい。第2色調整処理(S326)においても、参考色分布の色空間は、処理すべき画像データの色空間と同じであることが好ましい。
なお、図7の実施例のように、第1色調整処理(S328)によって処理すべき画像データは、第2色調整処理(S326)で使用される参考色分布を示す画像データであり、第2色調整処理(S326)によって処理すべき画像データは、第1色調整処理(S328)で使用される参考色分布を示す画像データであることが好ましい。この場合、第1色調整処理(S328)と第2色調整処理(S326)との間の整合性が向上する。
なお、処理すべき画像データの色分布を参考色分布に近づける処理は、図11(A)で説明した処理に代えて、他の種々の処理であってよい。例えば、処理すべき画像データの代表色値(例えば、複数の画素の複数の色値の中央値)を、参考色分布を示す画像データの代表色値に近づけるトーンカーブ調整処理が、実行されてよい。
(10)訓練画像データの生成処理は、図5の処理に限らず、種々の処理であってよい。例えば、画像の回転処理、画像の移動処理など、データオーギュメンテーションと呼ばれる種々の処理が実行されてよい。回転処理での回転角度と、移動処理での移動方向と移動量とは、訓練画像データI1td毎にランダムに決定されてよい。また、訓練画像データの生成処理は、訓練画像データI1td毎にランダムに決定された処理を含んでよい。例えば、ノイズ付加処理と、ぼかし処理と、画像の回転処理と、画像の移動処理と、を含む複数の処理から、ランダムに処理が選択されてよい。なお、ノイズ付加処理とぼかし処理とのうちの一方または両方が、訓練画像データの生成処理と第1処理S810(図7)とに含まれることが好ましい。また、訓練画像データは、グレー原画像データ720dに代えて、ラベルシート800の撮影画像データを使用して、生成されてよい。プロセッサ210は、撮影画像データを使用するデータオーギュメンテーションによって、複数の訓練画像データを生成してよい。なお、撮影画像データに対するノイズ付加処理とぼかし処理との一方または両方が、省略されてよい。
(11)ラベルシート800(図2)は、複合機900に限らず、ミシン、カッティングマシン、携帯端末など、任意の製品に設けられるラベルシートであってよい。また、検査の対象物は、ラベルシート800に限らず、任意の製品であってよい(例えば、複合機、ミシン、カッティングマシン、携帯端末など)。ここで、製品の全体、または、製品の一部分が、検査されてよい。
原画像データによって示される対象物画像は、印刷すべき画像に限らず、検査の対象物の適切な外観を示す任意の画像であってよい。例えば、対象物画像は、対象物の設計図、または、対象物の外観の写真であってよい。なお、対象物画像は、印刷すべき画像や設計図などの対象物の設計された画像である設計画像であることが好ましい。この構成によれば、プロセッサ210は、対象物の外観の不具合に関する適切な出力データを生成できる。
(12)画像生成モデル300は、対象物の撮影画像から、不具合の無い対象物の画像を生成するように、訓練されることが好ましい。この構成によれば、プロセッサ210は、画像生成モデル300に入力される画像データと、画像生成モデル300によって生成される画像データと、第1画像処理によって生成される処理済原画像データと、を使用して、不具合に関する適切な出力データを生成できる。
画像生成モデル300は、変分オートエンコーダに代えて、オートエンコーダ、敵対的生成ネットワーク(Generative Adversarial Networks)など、画像データを使用して画像データを生成する種々のモデルであってよい。画像生成モデル300の訓練処理は、画像生成モデル300に適する種々の処理であってよい。例えば、以下のように画像生成モデル300の複数の演算パラメータが調整されてよい。具体的には、不具合の無い対象物の画像データを画像生成モデル300に入力することによって生成される生成画像データと、画像生成モデル300に入力される画像データと、の間の差が小さくなるように、画像生成モデル300が訓練されてよい。この場合、訓練済の画像生成モデル300は、不具合を有する対象物の画像が入力される場合に、不具合の無い対象物の画像を生成できる。
画像生成モデル300に入力される画像データは、カラー画像データであってよい。画像生成モデル300は、カラー画像データから、カラー画像データを生成するように構成されてよい。また、画像生成モデル300は、カラー画像データから、グレースケール画像データを生成するように構成されてよい。なお、画像生成モデル300を使用する処理(S374(図8))は、省略されてよい。例えば、プロセッサ210は、不具合の無い対象物の基準画像である基準対象物画像を使用するパターンマッチングによって、処理済撮影画像データ645dの処理済撮影画像645中の対象物を検出してよい。そして、S378では、プロセッサ210は、検出された対象物の位置に配置された基準対象物画像と、処理済撮影画像データ645dの画像と、の間の差分を示す差分画像データを生成してよい。
(13)検査のためのデータ処理は、上述の実施例と変形例の処理に限らず、種々の処理であってよい。例えば、検査のためのデータ処理は、グレースケールの画像データを使用せずに、カラー画像データを使用して、行われてよい。また、検査のためのデータ処理は、カラー画像データを使用せずに、グレースケールの画像データを使用して、行われてよい。また、出力データを生成する第3画像処理は、図8の第3画像処理S990に限らず、種々の処理であってよい。例えば、差分画像と処理済原画像750とを重畳するために、差分画像データ660dのリサイズ処理(S379)に代えて、原画像データ710dに基づく画像データ(例えば、処理済原画像データ750d)のリサイズ処理が行われてよい。また、出力データ690dは、出力画像690(図10)を示す画像データに代えて、対象物が不具合を有する場合にその不具合を示す任意のデータであってよい。例えば、出力データは、不具合の部分をカラーで表し、他の部分をグレースケールで表す画像データを示してよい。また、出力データは、画像データに限らず、不具合の総数などの不具合に関する任意の情報を示すデータであってよい。
いずれの場合も、プロセッサ210は、出力データを使用して不具合に関するデータを出力する処理を実行してよい。不具合に関するデータの出力方法は、S386(図8)の方法に限らず、任意の方法であってよい。例えば、プロセッサ210は、検査結果を示す出力データを、記憶装置(例えば、不揮発性記憶装置230、または、データ処理装置200に接続された図示しない外部記憶装置)に出力してよい(これにより、検査結果データが、記憶装置に格納される)。また、プロセッサ210は、出力データによって示される画像を、表示部240に出力してよい(これにより、検査結果が表示部240に表示される)。
(14)図1のデータ処理装置200は、パーソナルコンピュータとは異なる種類の装置(例えば、デジタルカメラ、スマートフォン)であってもよい。また、ネットワークを介
して互いに通信可能な複数の装置(例えば、コンピュータ)が、データ処理装置によるデータ処理の機能を一部ずつ分担して、全体として、データ処理の機能を提供してもよい(これらの装置を備えるシステムがデータ処理装置に対応する)。
して互いに通信可能な複数の装置(例えば、コンピュータ)が、データ処理装置によるデータ処理の機能を一部ずつ分担して、全体として、データ処理の機能を提供してもよい(これらの装置を備えるシステムがデータ処理装置に対応する)。
上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。例えば、図7の色調整処理(S326、S328)の機能を、専用のハードウェア回路によって実現してもよい。
また、本発明の機能の一部または全部がコンピュータプログラムで実現される場合には、そのプログラムは、コンピュータ読み取り可能な記録媒体(例えば、一時的ではない記録媒体)に格納された形で提供することができる。プログラムは、提供時と同一または異なる記録媒体(コンピュータ読み取り可能な記録媒体)に格納された状態で、使用され得る。「コンピュータ読み取り可能な記録媒体」は、メモリーカードやCD-ROMのような携帯型の記録媒体に限らず、各種ROM等のコンピュータ内の内部記憶装置や、ハードディスクドライブ等のコンピュータに接続されている外部記憶装置も含み得る。
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
110…デジタルカメラ、190…ベルト、191…上面、200…データ処理装置、210…プロセッサ、215…記憶装置、220…揮発性記憶装置、230…不揮発性記憶装置、231…生成プログラム、232…訓練プログラム、233…検査プログラム、240…表示部、250…操作部、270…通信インタフェース、300…画像生成モデル、302…エンコーダ、305…潜在データ、307…デコーダ、800…ラベルシート、801…傷、900…複合機、901…第1側面、909…底面、D190…搬送方向、D110…撮影方向、M1…物体検出モデル
Claims (18)
- 画像データを処理するコンピュータのためのコンピュータプログラムであって、
印刷すべき画像である対象物画像を示す原画像データを使用して第1画像処理を実行することによって、処理済原画像データを生成する第1生成機能と、
印刷された対象物画像の撮影画像である撮影対象物画像を示す撮影画像データを使用して第2画像処理を実行することによって、処理済撮影画像データを生成する第2生成機能と、
前記処理済原画像データと前記処理済撮影画像データとを使用して第3画像処理を実行することによって、前記印刷された前記対象物画像の外観の不具合に関するデータである出力データを生成する第3生成機能と、
をコンピュータに実現させ、
前記第1画像処理は、前記第2画像処理には含まれない第1処理を含み、
前記第2画像処理は、前記第1画像処理には含まれない第2処理を含む、
コンピュータプログラム。 - 請求項1に記載のコンピュータプログラムであって、
前記第1処理は、ノイズ付加処理とぼかし処理との一方または両方を含む前処理を含む、
コンピュータプログラム。 - 画像データを処理するコンピュータのためのコンピュータプログラムであって、
注目対象物の設計画像である対象物画像を示す原画像データを使用して第1画像処理を実行することによって、処理済原画像データを生成する第1生成機能と、
前記注目対象物の撮影画像である撮影対象物画像を示す撮影画像データを使用して第2画像処理を実行することによって、処理済撮影画像データを生成する第2生成機能と、
前記処理済原画像データと前記処理済撮影画像データとを使用して第3画像処理を実行することによって、前記注目対象物の外観の不具合に関するデータである出力データを生成する第3生成機能と、
をコンピュータに実現させ、
前記第3画像処理は、訓練済の機械学習モデルを使用する処理を含み、
前記第1画像処理は、前記第2画像処理には含まれない第1処理を含み、
前記第2画像処理は、前記第1画像処理には含まれない第2処理を含み、
前記第1処理は、ノイズ付加処理とぼかし処理との一方または両方を含む前処理を含み、
前記機械学習モデルは、前記原画像データに、前記前処理と同じ処理を含む処理を実行することによって生成される訓練画像データを使用して、訓練されている、
コンピュータプログラム。 - 請求項3に記載のコンピュータプログラムであって、
前記機械学習モデルは、前記注目対象物の画像を示す入力画像データから、不具合の無い注目対象物の画像を示す生成画像データを生成するように、訓練されている、
コンピュータプログラム。 - 請求項1または3に記載のコンピュータプログラムであって、
前記第1処理は、処理すべき画像データの色分布を前記撮影画像データに基づく画像データの色分布に近づける第1色調整処理を含み、
前記第2処理は、処理すべき画像データの色分布を前記原画像データに基づく画像データの色分布に近づける第2色調整処理を含む、
コンピュータプログラム。 - 請求項1または3に記載のコンピュータプログラムであって、
前記第2処理は、ノイズ低減処理とぼけ低減処理との一方または両方を含む、
コンピュータプログラム。 - 請求項1または3に記載のコンピュータプログラムであって、
前記第1処理は、処理すべき画像データの画像のうちの前記対象物画像に対応する部分の外形を、前記撮影対象物画像の外形に合わせる第1外形合わせ処理を含む、
コンピュータプログラム。 - 請求項2から4のいずれかに記載のコンピュータプログラムであって、
前記第1処理は、
前記原画像データに基づく画像データの色分布を前記撮影画像データに基づく画像データの色分布に近づける第1色調整処理と、
前記第1色調整処理による処理済の画像データに対する前記前処理と、
前記前処理による処理済の画像データの画像のうちの前記対象物画像に対応する部分の外形を前記撮影対象物画像の外形に合わせる第1外形合わせ処理と、
を含む、コンピュータプログラム。 - 請求項1または3に記載のコンピュータプログラムであって、
前記第3生成機能は、
前記処理済撮影画像データの画像に含まれる撮影対象物画像と、不具合の無い対象物画像との間の異なる部分を示す差分画像の差分画像データを生成する処理と、
前記差分画像データの差分画像と、前記処理済原画像データの画像と、の重畳画像を示す前記出力データを生成する処理と、
をコンピュータに実現させる、コンピュータプログラム。 - 画像データを処理するように構成されたデータ処理装置であって、
印刷すべき画像である対象物画像を示す原画像データを使用して第1画像処理を実行することによって、処理済原画像データを生成する第1生成部と、
印刷された対象物画像の撮影画像である撮影対象物画像を示す撮影画像データを使用して第2画像処理を実行することによって、処理済撮影画像データを生成する第2生成部と、
前記処理済原画像データと前記処理済撮影画像データとを使用して第3画像処理を実行することによって、前記印刷された前記対象物画像の外観の不具合に関するデータである出力データを生成する第3生成部と、
を備え、
前記第1画像処理は、前記第2画像処理には含まれない第1処理を含み、
前記第2画像処理は、前記第1画像処理には含まれない第2処理を含む、
データ処理装置。 - 画像データを処理するように構成されたデータ処理装置であって、
注目対象物の設計画像である対象物画像を示す原画像データを使用して第1画像処理を実行することによって、処理済原画像データを生成する第1生成部と、
前記注目対象物の撮影画像である撮影対象物画像を示す撮影画像データを使用して第2画像処理を実行することによって、処理済撮影画像データを生成する第2生成部と、
前記処理済原画像データと前記処理済撮影画像データとを使用して第3画像処理を実行することによって、前記注目対象物の外観の不具合に関するデータである出力データを生成する第3生成部と、
を備え、
前記第3画像処理は、訓練済の機械学習モデルを使用する処理を含み、
前記第1画像処理は、前記第2画像処理には含まれない第1処理を含み、
前記第2画像処理は、前記第1画像処理には含まれない第2処理を含み、
前記第1処理は、ノイズ付加処理とぼかし処理との一方または両方を含む前処理を含み、
前記機械学習モデルは、前記原画像データに、前記前処理と同じ処理を含む処理を実行することによって生成される訓練画像データを使用して、訓練されている、
データ処理装置。 - 画像データを処理するコンピュータのためのコンピュータプログラムであって、
対象物の外観の写真である原画像データを使用して第1画像処理を実行することによって、処理済原画像データを生成する第1生成機能と、
印刷された対象物画像の撮影画像である撮影対象物画像を示す撮影画像データを使用して第2画像処理を実行することによって、処理済撮影画像データを生成する第2生成機能と、
前記処理済原画像データと前記処理済撮影画像データとを使用して第3画像処理を実行することによって、前記印刷された前記対象物画像の外観の不具合に関するデータである出力データを生成する第3生成機能と、
をコンピュータに実現させ、
前記第1画像処理は、前記第2画像処理には含まれない第1処理を含み、
前記第2画像処理は、前記第1画像処理には含まれない第2処理を含む、
コンピュータプログラム。 - 請求項12に記載のコンピュータプログラムであって、
前記第1処理は、ノイズ付加処理とぼかし処理との一方または両方を含む前処理を含む、
コンピュータプログラム。 - 請求項12に記載のコンピュータプログラムであって、
前記第1処理は、処理すべき画像データの色分布を前記撮影画像データに基づく画像データの色分布に近づける第1色調整処理を含み、
前記第2処理は、処理すべき画像データの色分布を前記原画像データに基づく画像データの色分布に近づける第2色調整処理を含む、
コンピュータプログラム。 - 請求項12に記載のコンピュータプログラムであって、
前記第2処理は、ノイズ低減処理とぼけ低減処理との一方または両方を含む、
コンピュータプログラム。 - 請求項12に記載のコンピュータプログラムであって、
前記第1処理は、処理すべき画像データの画像のうちの前記対象物画像に対応する部分の外形を、前記撮影対象物画像の外形に合わせる第1外形合わせ処理を含む、
コンピュータプログラム。 - 請求項13に記載のコンピュータプログラムであって、
前記第1処理は、
前記原画像データに基づく画像データの色分布を前記撮影画像データに基づく画像データの色分布に近づける第1色調整処理と、
前記第1色調整処理による処理済の画像データに対する前記前処理と、
前記前処理による処理済の画像データの画像のうちの前記対象物画像に対応する部分の外形を前記撮影対象物画像の外形に合わせる第1外形合わせ処理と、
を含む、コンピュータプログラム。 - 請求項12に記載のコンピュータプログラムであって、
前記第3生成機能は、
前記処理済撮影画像データの画像に含まれる撮影対象物画像と、不具合の無い対象物画像との間の異なる部分を示す差分画像の差分画像データを生成する処理と、
前記差分画像データの差分画像と、前記処理済原画像データの画像と、の重畳画像を示す前記出力データを生成する処理と、
をコンピュータに実現させる、コンピュータプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2022/039284 WO2023074566A1 (ja) | 2021-11-01 | 2022-10-21 | コンピュータプログラム、および、データ処理装置 |
US18/643,168 US20240275903A1 (en) | 2021-11-01 | 2024-04-23 | Storage medium storing computer-readable instructions causing computer to execute image process on image data to generate output data related to defect in appearance of object |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021178700 | 2021-11-01 | ||
JP2021178700 | 2021-11-01 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023067731A true JP2023067731A (ja) | 2023-05-16 |
Family
ID=86326112
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022107390A Pending JP2023067731A (ja) | 2021-11-01 | 2022-07-01 | コンピュータプログラム、および、データ処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2023067731A (ja) |
-
2022
- 2022-07-01 JP JP2022107390A patent/JP2023067731A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7684642B2 (en) | Correction of redeye defects in images of humans | |
KR20200043448A (ko) | 이미지 처리를 위한 방법 및 장치, 및 컴퓨터 판독 가능 저장 매체 | |
US20090245655A1 (en) | Detection of Face Area and Organ Area in Image | |
JPH1115947A (ja) | 画像処理装置 | |
JP2002503840A (ja) | 勾配ベースの局部輪郭線検出のための新しい知覚的しきい値決定 | |
US9727984B2 (en) | Electronic device and method for processing an image | |
US20090028390A1 (en) | Image Processing for Estimating Subject Distance | |
CN116912233B (zh) | 基于液晶显示屏的缺陷检测方法、装置、设备及存储介质 | |
CN111915485A (zh) | 一种特征点稀疏工件图像的快速拼接方法及系统 | |
Carbajal et al. | Blind motion deblurring with pixel-wise Kernel estimation via Kernel prediction networks | |
JP7160211B2 (ja) | 機械学習モデル、生成装置、コンピュータプログラム | |
US11625886B2 (en) | Storage medium storing program, training method of machine learning model, and image generating apparatus | |
WO2023074566A1 (ja) | コンピュータプログラム、および、データ処理装置 | |
JP2023067731A (ja) | コンピュータプログラム、および、データ処理装置 | |
JP2003143401A (ja) | オリジナル画像の自動的なリアルタイムの修復方法 | |
JP2004219291A (ja) | 画面の線欠陥検出方法及び装置 | |
US20240282085A1 (en) | Method of producing storage medium storing machine learning model and storage medium storing computer-readable instructions for performing anomaly detection in object with machine learning model | |
JP2023163317A (ja) | コンピュータプログラム、および、データ処理装置 | |
JP2004219072A (ja) | 画面のスジ欠陥検出方法及び装置 | |
JP2023173600A (ja) | コンピュータプログラム、および、データ処理装置。 | |
JP2008079196A (ja) | 画像補正方法と画像補正プログラムと画像補正モジュール | |
JP2023051343A (ja) | 判定データの生成方法、および、コンピュータプログラム | |
US20240013361A1 (en) | Image processing device and method for image processing | |
JP5760495B2 (ja) | 画像鮮明化装置、画像出力装置、画像鮮明化プログラム、画像処理装置及び画像処理プログラム | |
JP2009217506A (ja) | 画像処理装置及び画像処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20220702 |