JP2022174516A - Image processing method, computer program, image processing apparatus, and training method - Google Patents
Image processing method, computer program, image processing apparatus, and training method Download PDFInfo
- Publication number
- JP2022174516A JP2022174516A JP2021080357A JP2021080357A JP2022174516A JP 2022174516 A JP2022174516 A JP 2022174516A JP 2021080357 A JP2021080357 A JP 2021080357A JP 2021080357 A JP2021080357 A JP 2021080357A JP 2022174516 A JP2022174516 A JP 2022174516A
- Authority
- JP
- Japan
- Prior art keywords
- image
- image data
- interest
- partial
- generated
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Analysis (AREA)
Abstract
Description
本明細書は、生成モデルを使用する画像処理に関する。 The present specification relates to image processing using generative models.
従来から、ニューラルネットワークとも呼ばれる機械学習モデルが画像処理に使用されている。例えば、特許文献1は、ニューラルネットワークを使用して顕微鏡画像を分類する技術を提案している。 Traditionally, machine learning models, also called neural networks, are used for image processing. For example, Patent Literature 1 proposes a technique for classifying microscope images using a neural network.
機械学習モデルとしては、画像データを生成する生成モデルが使用され得る。生成モデルは、例えば、入力された画像データを使用して、入力された画像データに対応する画像データを生成する。適切な画像データを生成するように生成モデルを構成する点については、工夫の余地があった。 A generative model that generates image data can be used as the machine learning model. The generative model, for example, uses input image data to generate image data corresponding to the input image data. There was room for improvement in constructing the generative model so as to generate appropriate image data.
本明細書は、生成モデルを適切に構成する技術を開示する。 This specification discloses techniques for appropriately configuring a generative model.
本明細書に開示された技術は、以下の適用例として実現することが可能である。 The technology disclosed in this specification can be implemented as the following application examples.
[適用例1]画像データを処理する画像処理方法であって、光学的に読み取られた注目対象物を表す注目入力画像データを第1生成モデルに入力することによって、前記注目入力画像データに対応する第1注目生成画像データを生成する第1生成工程であって、前記第1生成モデルは、光学的に読み取られた対象物の画像を表す画像データを前記第1生成モデルに入力することによって生成される画像データの画像が前記対象物のコンピュータグラフィックス画像に近づくように訓練された生成モデルである、前記第1生成工程と、前記第1注目生成画像データを第2生成モデルに入力することによって、不具合の無い注目対象物の画像を表す第2注目生成画像データを生成する第2生成工程であって、前記第2生成モデルは、対象物の画像を表す画像データを前記第2生成モデルに入力することによって不具合の無い対象物の画像を表す画像データを生成するように訓練された生成モデルである、前記第2生成工程と、前記第1注目生成画像データの画像と前記第2注目生成画像データの画像との間の差分を示す差分画像の差分画像データを生成する第3生成工程と、を備え、前記第1生成モデルは、生成ネットワークと識別ネットワークとを有する敵対的生成ネットワークの訓練によって生成された前記生成ネットワークであり、前記識別ネットワークは、訓練用の入力画像データを前記生成ネットワークに入力することによって生成された画像データの画像である第1画像中の第1部分領域の画像の少なくとも一部を示す第1部分画像を表す第1部分画像データと、訓練用のコンピュータグラフィックス画像である第2画像中の第2部分領域の画像の少なくとも一部を示す第2部分画像を表す第2部分画像データと、を前記識別ネットワークに入力することによって、訓練されている、画像処理方法。 [Application Example 1] In an image processing method for processing image data, inputting attention input image data representing an optically read attention target object to a first generation model allows correspondence to the attention input image data. a first generating step of generating first generated image data of interest, wherein the first generative model inputs image data representing an optically read image of an object into the first generative model inputting the first generated image data of interest to a second generation model, wherein the image of the generated image data is a generative model trained so as to approximate the computer graphics image of the object; Thus, in the second generating step of generating the second generated image data of interest representing the image of the object of interest without defects, the second generation model generates the image data representing the image of the object in the second generation step. The second generating step, which is a generative model trained to generate image data representing an image of a non-defective object by inputting to the model; a third generating step of generating difference image data of a difference image indicating a difference between the generated image data of interest and the image of generated image data of interest, wherein the first generative model is a generative adversarial network having a generative network and an identification network; wherein the identification network is an image of image data generated by inputting input image data for training into the generation network, a first partial region in a first image a first partial image data representing a first partial image showing at least part of an image of and a second part showing at least part of an image of a second partial area in a second image which is a computer graphics image for training and second partial image data representing an image into said identification network.
この構成によれば、識別ネットワークへ入力される画像データの多様性が増加し、識別ネットワークの訓練の速度が抑制されるので、生成ネットワークの訓練と識別ネットワークの訓練とのバランスをとることができる。従って、第1生成モデルは、光学的に読み取られた対象物の画像を表す画像データを第1生成モデルに入力することによって生成される画像データの画像が対象物のコンピュータグラフィックス画像に近づくように適切に訓練される。このような第1生成モデルによって生成される第1注目生成画像データが第2生成モデルに入力されるので、第2生成モデルは、不具合の無い注目対象物の画像を表す第2注目生成画像データを適切に生成できる。従って、第1注目生成画像データの画像と第2注目生成画像データの画像との間の差分を示す差分画像の差分画像データは、注目対象物の読取りの条件に拘わらずに、注目入力画像データによって表される注目対象物の不具合を、適切に表すことができる。 According to this configuration, the variety of image data input to the identification network is increased, and the training speed of the identification network is suppressed, so that the training of the generation network and the training of the identification network can be balanced. . Therefore, the first generative model is designed so that the image of the image data generated by inputting the image data representing the optically read image of the object to the first generative model approaches the computer graphics image of the object. properly trained to Since the first generated image data of interest generated by the first generative model is input to the second generative model, the second generative model can generate the second generated image data of interest representing an image of the object of interest without defects. can be generated properly. Therefore, the difference image data of the difference image indicating the difference between the image of the first generated image data of interest and the image of the second generated image data of interest is the input image data of interest regardless of the conditions for reading the object of interest. , can be adequately represented.
[適用例2]生成ネットワークと識別ネットワークとを有する敵対的生成ネットワークの訓練方法であって、訓練用の入力画像データを生成ネットワークに入力することによって、第1画像の第1画像データを生成する工程と、前記第1画像中の第1部分領域をランダムに決定する工程と、前記第1画像中の前記第1部分領域の画像の少なくとも一部を示す第1部分画像を表す第1部分画像データを、前記第1画像データと前記第1部分領域とを使用して取得する工程と、前記第1部分画像データを識別ネットワークに入力することによって、第1識別データを取得する工程と、前記入力画像データに対応付けられた第2画像データの第2画像中の第2部分領域をランダムに決定する工程と、前記第2画像中の前記第2部分領域の画像の少なくとも一部を示す第2部分画像を表す第2部分画像データを、前記第2画像データと前記第2部分領域とを使用して取得する工程と、前記第2部分画像データを前記識別ネットワークに入力することによって、第2識別データを取得する工程と、前記第1識別データと前記第2識別データとを使用することによって、前記識別ネットワークのパラメータを調整する工程と、を備える、訓練方法。 [Application Example 2] A training method for an adversarial generative network having a generative network and a discriminating network, wherein input image data for training is input to the generative network to generate first image data of a first image. randomly determining a first partial area in said first image; and a first partial image representing at least a part of an image of said first partial area in said first image. acquiring data using said first image data and said first partial area; acquiring first identification data by inputting said first partial image data into an identification network; randomly determining a second partial region in a second image of second image data associated with input image data; obtaining second partial image data representing a two partial image using said second image data and said second partial area; and inputting said second partial image data into said identification network, thereby obtaining two identification data; and adjusting parameters of the identification network by using the first identification data and the second identification data.
この構成によれば、敵対的生成ネットワークの訓練のために識別ネットワークに入力される画像の多様性が向上するので、識別ネットワーク、ひいては、識別ネットワークと生成ネットワークを有する敵対的生成ネットワークを、適切に訓練できる。 According to this configuration, the variety of images input to the identification network for training of the adversarial generative network is improved, so the identification network, and thus the adversarial generative network having the identification network and the generative network, can be appropriately can train.
なお、本明細書に開示の技術は、種々の態様で実現することが可能であり、例えば、画像処理方法および画像処理装置、敵対的生成ネットワークの訓練方法および訓練装置、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体(例えば、一時的ではない記録媒体)、等の形態で実現することができる。 It should be noted that the technology disclosed in this specification can be implemented in various aspects, for example, image processing method and image processing device, adversarial generative network training method and training device, methods and devices thereof It can be realized in the form of a computer program for realizing functions, a recording medium (for example, a non-temporary recording medium) recording the computer program, or the like.
A.第1実施例:
A1.装置構成:
図1は、一実施例としての画像処理装置を示す説明図である。本実施例では、画像処理装置200は、例えば、パーソナルコンピュータである。画像処理装置200は、対象物(本実施例では、プリンタDVに貼られたラベルシートLB)の撮影画像の画像データを処理する。画像処理装置200は、プロセッサ210と、記憶装置215と、表示部240と、操作部250と、通信インタフェース270と、を備えている。これらの要素は、バスを介して互いに接続されている。記憶装置215は、揮発性記憶装置220と、不揮発性記憶装置230と、を含んでいる。
A. First example:
A1. Device configuration:
FIG. 1 is an explanatory diagram showing an image processing apparatus as one embodiment. In this embodiment, the
表示部240は、液晶ディスプレイ、有機ELディスプレイなどの、画像を表示するように構成された装置である。操作部250は、ボタン、レバー、表示部240上に重ねて配置されたタッチパネルなどの、ユーザによる操作を受け取るように構成された装置である。ユーザは、操作部250を操作することによって、種々の指示を画像処理装置200に入力可能である。通信インタフェース270は、他の装置と通信するためのインタフェースである(例えば、USBインタフェース、有線LANインタフェース、IEEE802.11の無線インタフェース)。通信インタフェース270には、デジタルカメラ100が接続されている。デジタルカメラ100は、プリンタDVに貼られたラベルシートLBを光学的に読み取ることによって、読み取られたラベルシートLBを表す画像データを生成する。本実施例では、ラベルシートLBは、矩形状のシートであり、文字列を含む種々のオブジェクトを表している。適切な文字列は、予めプリンタDVのモデルに対応付けられている。なお、製造時のエラーは、ラベルシートLBの文字列の不具合を引き起こし得る。例えば、ラベルシートLBは、誤った文字列を表し得る。また、適切な文字列の一部または全部が、欠ける場合がある。本実施例では、画像処理装置200は、ラベルシートの不具合に関する検査を行う。
The
プロセッサ210は、データ処理を行うように構成された装置であり、例えば、CPUである。揮発性記憶装置220は、例えば、DRAMであり、不揮発性記憶装置230は、例えば、フラッシュメモリである。不揮発性記憶装置230は、プログラム231、232、233と、第1モデル500と、第1種訓練データ590と、第2生成モデル600と、第2種訓練データ690と、を格納している。モデル500、600は、それぞれ、人工ニューラルネットワークを有する予測モデルである。第1モデル500は、第1生成モデル510と第1識別モデル520とを含んでいる。
The
第1モデル500の第1生成モデル510は、デジタルカメラ100によって光学的に読み取られたラベルシートLBを表す画像データを使用して、同じラベルシートLBのコンピュータグラフィックス画像(詳細は、後述)のような画像データを生成する。第1生成モデル510は、画像に含まれるノイズと読取条件との影響を緩和するように、訓練される。第1識別モデル520は、第1生成モデル510の訓練のために、使用される。本実施例では、第1モデル500は、プログラムモジュールである。第1種訓練データ590は、第1モデル500の訓練のための画像データである。
The first
第2生成モデル600は、第1生成モデル510によって生成された画像データを使用して、不具合の無いラベルシートを表す画像データを生成する。第2生成モデル600は、第2生成モデル600に入力される画像データによって表されるラベルシートが不具合を有する場合であっても、不具合の無いラベルシートを表す画像データを生成するように、訓練される。本実施例では、第2生成モデル600は、プログラムモジュールである。第2種訓練データ690は、第2生成モデル600の訓練のための画像データである。
The second
第1プログラム231は、第1モデル500の訓練のためのプログラムである。
第2プログラム232は、第2生成モデル600の訓練のためのプログラムである。第3プログラム233は、ラベルシートの検査処理のためのプログラムである。プロセッサ210は、プログラム231、232、233の実行に使用される種々の中間データを、記憶装置215(例えば、揮発性記憶装置220、不揮発性記憶装置230のいずれか)に、一時的に格納する。プログラム231、232、233と、モデル500、600と、の詳細については、後述する。
A
A
A2.第1モデル500の構成:
図2は、第1モデル500の例を示すブロック図である。第1モデル500は、いわゆる敵対的生成ネットワーク(GAN : Generative Adversarial Networks)を使用して構成されている。第1モデル500は、第1生成モデル510(すなわち、生成ネットワーク)と第1識別モデル520(すなわち、識別ネットワーク)とを有している。
A2. Configuration of the first model 500:
FIG. 2 is a block diagram showing an example of the
第1モデル500の第1生成モデル510には、デジタルカメラ100によって読み取られたラベルシートLBiを表す画像I5iの画像データI5idが入力される。第1生成モデル510は、入力された画像データI5idによって表されるラベルシートLBiと同じラベルシートLBiの画像I51を表す画像データI51dを生成する。生成される画像I51内のラベルシートLBiの位置と大きさとは、入力される画像I5i内のラベルシートLBiの位置と大きさと、それぞれ同じである。第1生成モデル510は、第1生成モデル510によって生成される画像データI51dの画像I51がコンピュータグラフィックス画像に近づくように、訓練される。コンピュータグラフィックス画像は、コンピュータによって生成される画像である。コンピュータグラフィックス画像は、例えば、オブジェクトを描画するための描画コマンドを含むベクタデータのレンダリング(ラスタライズとも呼ばれる)によって、生成される。デジタルカメラ100などの読取装置によって読み取られた対象物を表す画像(読取画像とも呼ぶ)は、読取装置で生じる種々のノイズを含み得る。また、読取画像は、読取時の光源の明るさ、光源の色、対象物と読取装置との間の位置関係、などの読取りの条件に応じて、種々に変化し得る。読取画像中の対象物の色は、光源の明るさと光源の色とに応じて、種々に変化し得る。読取画像中の対象物の形状は、対象物と読取装置との間の位置関係に応じて、幾何学的に歪み得る(例えば、矩形の対象物は、読取画像中では、台形または平行四辺形で表され得る)。コンピュータグラフィックス画像は、読取装置で生じるノイズと読取りの条件との影響を受けずに生成される。訓練済の第1生成モデル510は、ラベルシートの画像に含まれるノイズと読取りの条件との影響を緩和する。
The image data I5id of the image I5i representing the label sheet LBi read by the
以下、第1モデル500に入力される画像データI5idを、入力画像データI5idとも呼び、入力画像データI5idの画像I5iを、入力画像I5iとも呼ぶ。また、第1モデル500によって生成される画像データI51dを、第1生成画像データI51dとも呼び、第1生成画像データI51dの画像I51を、第1生成画像I51とも呼ぶ。なお、本実施例では、画像I5i、I51は、それぞれ、矩形状の画像である(高さは256画素、幅は512画素)。画像I5i、I51の形状は、ラベルシートの形状と同じである。また、画像データI5id、I51dは、それぞれ、R(赤)G(緑)B(青)の3チャンネルで各画素の色を示すカラービットマップデータである。入力画像データI5idの要素数(ここでは、高さ*幅*チャンネル数)は、256*512*3である。RGBのそれぞれの色値は、ゼロから255までの256階調で表される。
Hereinafter, the image data I5id input to the
なお、入力画像I5iのラベルシートLBiは、文字列の欠損や、誤記などの、不具合を有し得る。後述するように、入力画像I5iのラベルシートLBiが不具合を有する場合、第1生成画像I51は、同じ不具合を有するラベルシートLBiを表す。 Note that the label sheet LBi of the input image I5i may have defects such as missing character strings and writing errors. As will be described later, if the label sheet LBi of the input image I5i has a defect, the first generated image I51 represents the label sheet LBi having the same defect.
第1生成モデル510は、いわゆるオートエンコーダを使用して構成されている。第1生成モデル510は、第1エンコーダ512と、第1デコーダ517と、を有している。第1エンコーダ512は、入力された画像データに対して次元削減処理を実行して、入力された画像の特徴を示す第1特徴データ515を生成する。本実施例では、第1エンコーダ512の構成は、以下の通りである。第1エンコーダ512は、上流側から順に並ぶ、5個の畳込層を有している。各畳込層は、2のストライドを使用して、高さに相当する要素数と幅に相当する要素数とを削減する(チャンネル数に相当する要素数は、増大する)。2番目から5番目までの各畳込層には、バッチノーマライゼーションが適用されている。各層の活性化関数は、LeakyReLUである。5個の畳込層は、データの要素数を、「256*512*3」から、「128*256*64」、「64*128*128」、「32*64*256」、「16*32*512」、「8*16*512」の順に、変化させる。第1特徴データ515の要素数は、8*16*512である。
The first
第1デコーダ517は、第1特徴データ515に対して次元復元処理を実行して、第1生成画像データI51dを生成する。本実施例では、第1デコーダ517の構成は、以下の通りである。第1デコーダ517は、上流側から順に並ぶ、5個の転置畳込層を有している。各転置畳込層は、2以上のストライド(本実施例では、2)を使用して、高さに相当する要素数と幅に相当する要素数とを増大する(チャンネル数に相当する要素数は、低減する)。1番目から4番目までの4個の転置畳込層には、バッチノーマライゼーションが適用されている。また、訓練時に、1番目から2番目までの2個の転置畳込層には、ドロップアウトが適用される。各層の活性化関数は、ReLUである。なお、最後の転置畳込層の活性化関数としては、画像データI51dの生成に適した関数(例えば、Tanh関数、または、シグモイド関数)が使用される。第1生成画像データI51dの要素数は、入力画像データI5idの要素数と同じである。
The
また、本実施例では、第1生成モデル510は、いわゆるU-Netと同様のアーキテクチャを有している。第1エンコーダ512と第1デコーダ517との間には、複数のコネクション519が設けられている。具体的には、1番目の畳込層の活性化関数からの出力データが、4番目の転置畳込層の活性化関数からの出力データに連結される。同様に、2番目の畳込層と3番目の転置畳込層のペアと、3番目の畳込層と2番目の転置畳込層とのペアと、4番目の畳込層と1番目の転置畳込層とのペアと、のそれぞれに関して、畳込層の活性化関数からの出力データが、転置畳込層の活性化関数からの出力データに連結される。2個の出力データの連結は、連結された出力データが2個の出力データのそれぞれのチャンネルを示すように、行われる。例えば、64*128*256の要素を有する出力データと、64*128*128の要素を有する出力データと、が連結される場合、64*128*384の要素を有するデータが生成される。5個の転置畳込層による転置畳込と4個のコネクション519による連結とによって、データの要素数は、「8*16*512」から、「16*32*512(転置畳込)」、「16*32*1024(連結)」、「32*64*256(転置畳込)」、「32*64*512(連結)」、「64*128*256(転置畳込)」、「64*128*384(連結)」、「128*256*128(転置畳込)」、「128*256*192(連結)」、「256*512*3(転置畳込)」の順に変化する。複数のコネクション519は、位置に関する情報を、第1エンコーダ512から第1デコーダ517へ伝達する。これにより、第1デコーダ517は、詳細な形状を表す画像I51の画像データI51dを生成できる。このようなコネクション519は、スキップコネクションとも呼ばれる。
Also, in this embodiment, the first
第1識別モデル520は、実画像データと偽画像データとを識別するように、訓練される。具体的には、第1識別モデル520は、第1生成モデル510によって生成された第1生成画像データI51dを偽データと識別し、ラベルシートを表すコンピュータグラフィックス画像Ioの画像データIodを実データと識別するように、訓練される。一方、第1生成モデル510は、訓練された第1識別モデル520が第1生成画像データI51dを実データと誤って識別するように、訓練される。このような訓練により、第1生成モデル510は、コンピュータグラフィックス画像Ioに近い第1生成画像I51の第1生成画像データI51dを生成できる。
A first
第1識別モデル520は、入力された画像データに対して次元削減処理を実行して、1個の値を示す識別データ529を生成する。本実施例では、第1識別モデル520の構成は、以下の通りである。第1識別モデル520は、上流側から順に並ぶ、畳込層群522と、グローバル平均プーリング層525と、全結合層群527と、を有している。後述するように、第1識別モデル520には、画像I51、Ioの一部分である部分画像PA1、PA2を表す部分画像データPA1d、PA2dが、入力される。部分画像PA1、PA2の要素数は、64*64*3である。
The
畳込層群522は、上流側から順に並ぶ3個の畳込層を有している。各畳込層は、2のストライドを使用して、高さに相当する要素数と幅に相当する要素数とを、削減する(チャンネル数に相当する要素数は、増大する)。3個の畳込層には、バッチノーマライゼーションが適用されている。各畳込層の活性化関数は、LeakyReLUである。3個の畳込層は、データの要素数を、「64*64*3」から、「32*32*64」、「16*16*128」、「8*8*128」の順に、変化させる。
The
グローバル平均プーリング層525は、チャンネル毎の平均値を算出する。本実施例では、グローバル平均プーリング層525から出力されるデータの要素数は、128である。
A global
全結合層群527は、上流側から順に並ぶ3個の全結合層を有している。全結合層群527は、要素数を増大させた後、要素数を1まで低減させる。本実施例では、3個の全結合層は、要素数を、128から、512、256、1の順に変化させる。なお、要素数は、単調に減少してもよい。また、訓練時に、2番目の全結合層に、ドロップアウトが適用される。1番目から2番目までの2個の全結合層の活性化関数は、ReLUである。最後の全結合層の活性化関数としては、識別データ529の生成に適した関数(例えば、シグモイド関数、または、Tanh関数)が使用される。
The fully bonded
本実施例では、識別データ529は、ゼロ以上、1以下の値を示している。「1」は、「実」を示し、「0」は、「偽」を示している。識別データ529は、入力された画像データがコンピュータグラフィックス画像の画像データであることの確信の度合いを示している。
In this embodiment, the
A3.第2生成モデル600の構成:
図3(A)は、第2生成モデル600の例を示すブロック図である。図中の画像データI61dは、第2生成モデル600に入力される画像データである。本実施例では、画像データI61dは、第1生成モデル510(図2)によって生成される第1生成画像データである(第1生成画像データI61dとも呼ぶ)。第1生成画像データI61dは、ラベルシートLBjの画像I61を表している。第2生成モデル600は、第1生成画像データI61dを使用して、不具合の無いラベルシートLBjxを表す画像データI62dを生成する。上述したように、第1生成画像データI61dの画像I61のラベルシートLBjは、種々の不具合を有し得る。訓練済の第2生成モデル600は、ラベルシートLBjが不具合を有する場合であっても、不具合の無いラベルシートLBjxの画像I62を表す画像データI62dを生成する。生成される画像I62内のラベルシートLBjxの位置と大きさとは、入力される画像I61内のラベルシートLBjの位置と大きさと、それぞれ同じである。以下、第2生成モデル600によって生成される画像データI62dを、第2生成画像データI62dとも呼び、第2生成画像データI62dの画像I62を、第2生成画像I62とも呼ぶ。なお、本実施例では、第2生成画像データI62dは、第1生成画像データI61dと同じカラービットマップデータである。第2生成画像データI62dの要素数(ここでは、高さ*幅*チャンネル数)は、256*512*3である。
A3. Configuration of the second generative model 600:
FIG. 3A is a block diagram showing an example of the second
第2生成モデル600は、いわゆるオートエンコーダを使用して構成されている。本実施例では、第2生成モデル600の構成は、第1生成モデル510(図2)の構成と、同じである。第2生成モデル600は、第2エンコーダ602と、第2デコーダ607と、を有している。第2エンコーダ602の構成は、第1エンコーダ512(図2)の構成と同じであり、第2デコーダ607の構成は、第1デコーダ517(図2)の構成と同じである。第2エンコーダ602と第2デコーダ607との間には、複数のコネクション609が設けられている。第2エンコーダ602は、入力された画像データに対して次元削減処理を実行して、入力された画像の特徴を示す特徴データ605を生成する。
The second
A4.第1訓練処理:
図4、図5は、第1モデル500の第1訓練処理の例を示すフローチャートである。図5は、図4の続きの処理を示している。プロセッサ210(図1)は、第1プログラム231に従って、図4、図5の処理を実行する。
A4. First training process:
4 and 5 are flowcharts showing an example of the first training process for the
S210では、プロセッサ210は、デジタルカメラ100によって読み取られたラベルシートの画像を表す入力画像データを生成する。本実施例では、作業者は、ラベルシート(例えば、ラベルシートLB(図1))がデジタルカメラ100の撮影範囲内に位置するように、プリンタ(例えば、プリンタDV)を配置する。ここで、不具合の無いラベルシートが使用される。プロセッサ210は、デジタルカメラ100にラベルシートを撮影させ、撮影画像データをデジタルカメラ100から取得する。撮影画像は、デジタルカメラ100によって読み取られたラベルシートの画像である。プロセッサ210は、撮影画像からラベルシートの領域を抽出するクロッピング処理を行う。本実施例では、プロセッサ210は、撮影画像を表示部240に表示し、作業者が、撮影画像のうちラベルシートを示すラベル領域を指定する。プロセッサ210は、撮影画像データのうちのラベル領域に対応する部分を使用して、ラベル領域の画像を表す入力画像データを生成する(基準入力画像データとも呼ぶ)。プロセッサ210は、基準入力画像データによって表される入力画像の高さと幅とを、第1モデル500によって受け入れられる画像の高さと幅とに調整する。
At S<b>210 , the
S215では、プロセッサ210は、データオーギュメンテーションとも呼ばれる加工処理を基準入力画像データに対して行うことによって、互いに異なる画像を表す複数の入力画像データを生成する。本実施例では、プロセッサ210は、予め決められた複数の候補加工処理から、ランダムに1以上の加工処理を選択する(例えば、乱数に従って加工処理が選択される)。そして、プロセッサ210は、選択した加工処理を基準入力画像データに対して実行することによって、新たな入力画像データを生成する。プロセッサ210は、加工処理の選択と実行とを、複数回行う。
At S215, the
本実施例では、複数の候補加工処理は、ラベルシートの不具合を形成する複数の不具合形成処理を含んでいる。複数の不具合形成処理は、ラベルシートの文字列の一部を削除する処理を含んでよい(削除された文字に対応する画素の色は、削除された文字の近傍の背景部分の色と同じ色に変更される)。複数の不具合形成処理は、文字を別の文字に変更する処理を含んでよい。複数の不具合形成処理は、画像の一部を削除する処理を含んでよい。このような不具合形成処理は、不具合を有するラベルシートが撮影された場合に生成され得る画像データを、生成可能である。 In this embodiment, the plurality of candidate processing operations includes a plurality of defect forming operations for forming label sheet defects. A plurality of defect forming processes may include a process of deleting part of the character string of the label sheet (the color of the pixels corresponding to the deleted character is the same color as the color of the background portion in the vicinity of the deleted character). ). A plurality of fault-forming actions may include changing a character to another character. Defect forming operations may include removing portions of the image. Such a defect formation process can generate image data that would be generated if a label sheet with defects were photographed.
また、複数の候補加工処理は、ラベルシートの読取条件の変化に相当する複数の条件変化処理を含んでいる。複数の条件変化処理は、トーンカーブ調整処理、ホワイトバランス調整処理、ノイズ付加処理を含んでよい。このような条件変化処理は、種々の読取条件の下でラベルシートが撮影された場合に生成され得る画像データを、生成可能である。 Further, the plurality of candidate processing processes include a plurality of condition change processes corresponding to changes in reading conditions of the label sheet. A plurality of condition change processes may include tone curve adjustment process, white balance adjustment process, and noise addition process. Such condition change processing can generate image data that can be generated when label sheets are photographed under various reading conditions.
プロセッサ210は、種々の加工処理を実行することによって、不具合の無い種々のラベルシートを表す複数の入力画像データと、不具合を有する種々のラベルシートの複数の入力画像データとを、生成する。いずれの入力画像データも、光学的に読み取られたラベルシートの画像を表している。なお、不具合を有するラベルシートの撮影によって、不具合を有するラベルシートの入力画像データが生成されてもよい。
S220では、プロセッサ210は、入力画像データと、不具合の無いラベルシートを表す原本画像データと、の複数組の画像ペアを生成する。そして、プロセッサ210は、各画像ペアに関して、入力画像データと原本画像データとを対応付けて記憶装置215(本実施例では、不揮発性記憶装置230)に格納する。格納された複数組の画像ペアは、第1種訓練データ590を構成する。原本画像データは、予め準備された原本ベクタデータのレンダリングによって生成されるビットマップデータであり、ラベルシートのコンピュータグラフィックス画像を表している。原本ベクタデータは、ラベルシートの製造のために予め準備されているデータである。原本画像データの画像の高さと幅とは、第1生成モデル510(図2)によって生成される第1生成画像の高さと幅と、それぞれ同じである。本実施例では、原本画像データは、複数組の画像ペアに共通である。第1種訓練データ590に含まれる原本画像データの総数は、1個であってよい。なお、製造時のエラーにより、不具合を有するラベルシートが製造され得る。
At S220, the
なお、S210では、ラベルシートの複数回の撮影が行われてよい。複数回の撮影の間では、撮影条件(例えば、図示しない光源の明るさ等)が異なってよい。そして、プロセッサ210は、複数の基準入力画像データを生成してよい。S215では、プロセッサ210は、複数の基準入力画像データを使用して、複数の入力画像データを生成してよい。
Note that in S210, the label sheet may be photographed a plurality of times. Shooting conditions (for example, brightness of a light source (not shown), etc.) may differ between multiple shots.
S225では、プロセッサ210は、第1モデル500(図2)の複数の演算パラメータ、すなわち、第1生成モデル510と第1識別モデル520とのそれぞれの複数の演算パラメータ(例えば、畳込フィルタの複数の重みと複数のバイアスなど)を、初期化する。例えば、各演算パラメータは、乱数値に設定される。
At S225, the
S230では、プロセッサ210は、第1種訓練データ590に含まれる複数組の画像ペアから、処理対象の複数の画像ペアである複数の対象ペアで構成されるサブセットを選択する。サブセットとしては、未処理の複数の画像ペアが選択される。また、サブセットの画像ペアの総数は、予め決められている。以下、図2の入力画像データI5idと画像データIodとが、対象ペアを示していることとする。ここで、画像データIodが、原本画像データである(画像データIodを、原画像データIodとも呼び、画像Ioを、原画像Ioとも呼ぶ)。
In S230, the
S235では、プロセッサ210は、対象ペアの入力画像データI5idを第1生成モデル510に入力することによって、第1生成画像データI51dを生成する。具体的には、プロセッサ210は、第1生成モデル510の演算パラメータを使用して、第1生成モデル510の各層の演算を行うことによって、第1生成画像データI51dを生成する。
At S235, the
S240では、プロセッサ210は、第1生成画像I51中の一部の領域である第1部分領域A1を、ランダムに決定する。第1部分領域A1を定める複数のパラメータ(例えば、位置、形状、大きさ、数など)のうち、予め選択されたパラメータを、プロセッサ210は、ランダムに決定する。本実施例では、プロセッサ210は、乱数を生成し、乱数に従って第1部分領域A1の位置である第1位置P1を決定する。第1部分領域A1の形状と大きさとは、予め決められている。また、プロセッサ210は、1個の第1部分画像PA1のための1個の第1部分領域A1を、決定する。
In S240, the
S245では、プロセッサ210は、第1生成画像データI51dと第1部分領域A1とを使用する第1取得処理を実行することによって、第1部分領域A1の画像の少なくとも一部を示す第1部分画像PA1の第1部分画像データPA1dを取得する。本実施例では、プロセッサ210は、第1位置P1に配置された所定形状と所定サイズとを有する第1部分領域A1の画像を示す第1部分画像PA1の第1部分画像データPA1dを取得する。すなわち、プロセッサ210は、第1部分領域A1の画像を、そのまま、第1部分画像PA1として採用する。これに代えて、第1取得処理は、画像の回転や画像のスケーリング(拡大、または、縮小)などの種々の画像処理を含んでよい(詳細は、後述)。
In S245, the
S250では、プロセッサ210は、第1部分画像データPA1dを第1識別モデル520に入力することによって、識別データ529を生成する。具体的には、プロセッサ210は、第1識別モデル520の演算パラメータを使用して、第1識別モデル520の各層の演算を行うことによって、識別データ529を算出する。以下、第1部分画像データPA1d(すなわち、第1生成画像データI51d)から得られる識別データ529を、第1識別データ529fとも呼ぶ。
At S<b>250 ,
S255では、プロセッサ210は、原画像Io中の一部の領域である第2部分領域A2を、ランダムに決定する。第2部分領域A2を定める複数のパラメータ(例えば、位置、形状、大きさ、数など)のうち、予め選択されたパラメータを、プロセッサ210は、ランダムに決定する。本実施例では、プロセッサ210は、乱数を生成し、乱数に従って第2部分領域A2の位置である第2位置P2を決定する。第2部分領域A2の形状と大きさとは、予め決められている。また、プロセッサ210は、1個の第2部分画像PA2のための1個の第2部分領域A2を、決定する。
At S255, the
S260では、プロセッサ210は、原画像データIodと第2部分領域A2とを使用する第2取得処理を実行することによって、第2部分領域A2の画像の少なくとも一部を示す第2部分画像PA2の第2部分画像データPA2dを取得する。本実施例では、プロセッサ210は、第2位置P2に配置された所定形状と所定サイズとを有する第2部分領域A2の画像を示す第2部分画像PA2の第2部分画像データPA2dを取得する。すなわち、プロセッサ210は、第2部分領域A2の画像を、そのまま、第2部分画像PA2として採用する。これに代えて、第2取得処理は、画像の回転や画像のスケーリングなどの種々の画像処理を含んでよい(詳細は、後述)。
In S260, the
S265では、プロセッサ210は、第2部分画像データPA2dを第1識別モデル520に入力することによって、識別データ529を生成する。具体的には、プロセッサ210は、第1識別モデル520の演算パラメータを使用して、第1識別モデル520の各層の演算を行うことによって、識別データ529を算出する。以下、第2部分画像データPA2d(すなわち、原画像データIod)から得られる識別データ529を、第2識別データ529rとも呼ぶ。
At S<b>265 ,
S270(図5)では、プロセッサ210は、第1識別データ529fと第2識別データ529rとを使用して、予め決められた識別損失関数に従って、識別損失を算出する。識別損失関数は、第2識別データ529rが「実(1)」に近いほど小さい値を算出し、第1識別データ529fが「偽(ゼロ)」に近いほど小さい値を算出するような、種々の関数であってよい。例えば、第2識別データ529rを、Drとし、第1識別データ529fを、Dfとする場合に、識別損失関数は、以下の関数Fa(Dr、Df)であってよい。
Fa(Dr、Df)=(1-Dr)+(Df)
At S270 (FIG. 5), the
Fa (Dr, Df) = (1-Dr) + (Df)
本実施例では、サブセット(図4:S230)は、複数組の対象ペアを含んでいる。プロセッサ210は、複数組の対象ペアのそれぞれに関して、S235-S265の処理を実行する。そして、S270では、プロセッサ210は、複数組の対象ペアから識別損失関数に従って取得される複数の損失の合計値を、識別損失として算出する。
In this embodiment, the subset (FIG. 4: S230) includes multiple target pairs.
S275では、プロセッサ210は、識別損失が小さくなるように、予め決められたアルゴリズムに従って、第1識別モデル520の複数の演算パラメータを調整する。アルゴリズムとしては、例えば、誤差逆伝播法と勾配降下法とを使用したアルゴリズムが採用されてよい。また、プロセッサ210は、いわゆるAdamの最適化を行ってよい。また、本実施例では、プロセッサ210は、畳込層群522の各畳込層に、バッチノーマライゼーションを適用する。プロセッサ210は、全結合層群527のうちの2番目の全結合層に、ドロップアウトを適用する。
In S275, the
なお、識別損失関数は、第2識別データ529rが「実(1)」に近いほど大きい値を算出し、第1識別データ529fが「偽(ゼロ)」に近いほど大きい値を算出するような関数であってよい。例えば、識別損失関数は、以下の関数Fb(Dr、Df)であってよい。
Fb(Dr、Df)=log(Dr)+log(1-Df)
この場合、識別損失が大きいほど、第1識別モデル520の性能は良好である。プロセッサ210は、識別損失が大きくなるように、第1識別モデル520の複数の演算パラメータを調整する。なお、この場合、第1識別モデル520にとっては、識別損失は、小さくすべき損失ではなく、大きくすべき評価値である。なお、関数Fb(Dr、Df)にマイナスの符号を付して得られる関数-Fb(Dr、Df)は、小さくすべき損失を表す損失関数として使用可能である。
The identification loss function is such that the closer the
Fb(Dr, Df) = log(Dr) + log(1-Df)
In this case, the higher the discrimination loss, the better the performance of the
S280、S285は、図4のS240、S245と、それぞれ同じである。S280、S285では、プロセッサ210は、新たな第1位置P1を決定し、新たな第1部分画像データPA1dを取得する。
S280 and S285 are the same as S240 and S245 in FIG. 4, respectively. In S280 and S285,
S290では、プロセッサ210は、新たな第1部分画像データPA1dを第1識別モデル520に入力することによって、新たな第1識別データ529fを生成する。S275で第1識別モデル520が訓練されているので、S290で算出される第1識別データ529fは、「偽(ゼロ)」により近い値になり得る。
In S290,
S295では、プロセッサ210は、S290で生成された第1識別データ529fを使用して、予め決められた生成損失関数に従って、生成損失を算出する。生成損失関数は、第1識別データ529fが「実(1)」に近いほど、小さい値を算出する種々の関数であってよい。例えば、第1識別データ529fをDfとする場合に、生成損失関数は、以下の関数Fc(Df)であってよい。
Fc(Df)=(1-Df)
At S295, the
Fc(Df) = (1-Df)
本実施例では、サブセット(図4:S230)が複数組の対象ペアを含んでいるので、S235では、プロセッサ210は、複数の第1生成画像データを生成する。プロセッサ210は、複数組の第1生成画像データのそれぞれに関して、S280-S290(図5)の処理を実行する。そして、S295では、プロセッサ210は、複数の第1生成画像データから生成損失関数に従って取得される複数の損失の合計値を、生成損失として算出する。
In this example, the subset (FIG. 4: S230) includes multiple sets of target pairs, so at S235 the
S300では、プロセッサ210は、生成損失が小さくなるように、予め決められたアルゴリズムに従って、第1生成モデル510の複数の演算パラメータを調整する。アルゴリズムとしては、例えば、誤差逆伝播法と勾配降下法とを使用したアルゴリズムが採用されてよい。また、プロセッサ210は、いわゆるAdamの最適化を行ってよい。また、本実施例では、プロセッサ210は、第1エンコーダ512の2番目から5番目までの4個の畳込層と、第1デコーダ517の1番目から4番目までの4個の転置畳込層と、に、バッチノーマライゼーションを適用する。プロセッサ210は、第1デコーダ517の1番目から2番目までの2個の転置畳込層に、ドロップアウトを適用する。
In S300, the
S305では、プロセッサ210は、訓練終了条件が満たされるか否かを判断する。訓練終了条件は、第1モデル500が適切に訓練されたことを示す任意の条件であってよい。本実施例では、訓練終了条件は、作業者からの終了指示が入力されることである。プロセッサ210は、第1種訓練データ590(図1)中の訓練に使用されていない複数の画像ペアから、所定数の画像ペアをランダムに取得する。プロセッサ210は、取得した複数の画像ペアのそれぞれの入力画像データを第1生成モデル510に入力し、第1生成モデル510から複数の第1生成画像データを取得する。プロセッサ210は、入力された入力画像と出力された第1生成画像との複数のペアを、表示部240に表示する。作業者は、表示部240を観察して、第1生成画像が入力画像と同じラベルシートのコンピュータグラフィックス画像を適切に表しているか否かを確認する。作業者は、確認結果に応じて、操作部250を操作して、訓練の終了指示、または、継続指示を入力する。
At S305, the
なお、訓練の終了条件は、他の条件であってよい。例えば、終了条件は、訓練に使用されていない予め決められた第1数の画像ペアを使用して算出される識別損失と生成損失とが、それぞれに対応する所定の閾値以下であることであってよい。 Note that the training end condition may be another condition. For example, the termination condition may be that the discrimination loss and generation loss calculated using a first predetermined number of image pairs not used for training are less than or equal to respective predetermined thresholds. you can
訓練が終了していないと判断される場合(S305:No)、プロセッサ210は、図4のS230へ移行し、新たなサブセットの処理を実行する。訓練が終了したと判断される場合(S305:Yes)、S310で、プロセッサ210は、訓練済の第1生成モデル510を、記憶装置215(ここでは、不揮発性記憶装置230)に格納する。そして、プロセッサ210は、図4、図5の処理を終了する。訓練済の第1生成モデル510は、ラベルシートの読取画像を、同じラベルシートのコンピュータグラフィックス画像に変換できる。なお、訓練が終了した場合、プロセッサ210は、第1識別モデル520を、不揮発性記憶装置230から削除してよい。
If it is determined that the training has not ended (S305: No), the
なお、上述した読取装置で生じるノイズと読取りの条件との影響は、読取画像(例えば、入力画像I5i(図2))の全体に、及ぶ。一方、コンピュータグラフィックス画像(例えば、原画像Io(図2))に対するそのような影響は、小さい。従って、読取画像の一部分のみと、コンピュータグラフィックス画像の一部分のみと、が使用可能な場合であっても、読取画像とコンピュータグラフィックス画像との識別は容易である。このように、第1識別モデル520(図2)は、ラベルシートの画像I51、Ioの全体ではなく部分画像PA1、PA2が入力される場合であっても、入力された画像がコンピュータグラフィックス画像であるか否かを適切に識別できる。また、本実施例の訓練では、第1識別モデル520へ入力される画像データの多様性が増加する。例えば、原画像Io中の互いに異なる部分を示す複数の第2部分画像PA2が、第1識別モデル520に入力される。従って、第1識別モデル520の訓練の速度が抑制される。この結果、第1生成モデル510の訓練と第1識別モデル520の訓練とのバランスをとることができる。従って、本実施例の訓練は、光学的に読み取られたラベルシートの画像I5iを表す画像データI5idを第1生成モデル510に入力することによって生成される画像データI51dの画像I51がラベルシートのコンピュータグラフィックス画像に近づくように、第1生成モデル510を適切に訓練できる。
It should be noted that the above-described noise generated by the reading device and the reading conditions affect the entire read image (for example, the input image I5i (FIG. 2)). On the other hand, such effects on computer graphics images (eg, original image Io (FIG. 2)) are small. Therefore, even if only a portion of the read image and only a portion of the computer graphics image are available, it is easy to distinguish between the read image and the computer graphics image. Thus, the first discriminant model 520 (FIG. 2) is such that the input image is a computer graphics image, even if the partial image PA1, PA2 is input instead of the entire image I51, Io of the label sheet. It can be properly identified whether or not Also, in the training of this embodiment, the diversity of image data input to the
また、本実施例の訓練では、第1識別モデル520は、第1生成画像I51中の第1部分領域A1の画像を示す第1部分画像PA1の第1部分画像データPA1dを、偽画像データとして使用する。また、第1識別モデル520は、原画像Io中の第2部分領域A2の画像を示す第2部分画像PA2の第2部分画像データPA2dを、実画像データとして使用する。原画像Ioは、不具合の無いラベルシートを表している。従って、本実施例の訓練は、第1部分画像PA1によって表されるラベルシートの部分が、不具合の無いラベルシートの対応する部分に近づくように、第1生成モデル510を訓練できる。また、第1生成モデル510には、ラベルシートの不具合の無い部分を含む種々の入力画像I5iの種々の入力画像データI5idが入力される。従って、本実施例の訓練は、入力画像I5i中のラベルシートの不具合の無い部分と同じ部分を表す第1生成画像I51を生成するように、第1生成モデル510を訓練できる。仮に、入力画像I5iのラベルシートLBiが不具合を有する場合、第1生成画像I51は、入力画像I5iに含まれる不具合を示す部分の影響により、同様の不具合を示す部分を含み得る。本実施例の訓練では、第1部分領域A1は、第1生成画像I51内の不具合を示す部分とは異なる部分に決定され得る。従って、第1生成モデル510は、入力画像I5iに含まれる不具合を示す部分に起因する第1生成画像I51内の同様の不具合を示す部分がそのまま残るように、訓練され得る。以上により、訓練済の第1生成モデル510は、入力画像I5iのラベルシートLBiが不具合を有する場合、同じ不具合を有するラベルシートLBiを表す第1生成画像I51を生成する。
Further, in the training of the present embodiment, the
また、プロセッサ210は、第1部分画像PA1のための第1部分領域A1の第1位置P1を、ランダムに決定する(図4:S240)。プロセッサ210は、第2部分画像PA2のための第2部分領域A2の第2位置P2を、ランダムに決定する(S255)。従って、種々の位置P1、P2の部分画像PA1、PA2の部分画像データPA1d、PA2dが、第1識別モデル520に入力される。このように、第1識別モデル520へ入力される画像データの多様性が増加するので、第1生成モデル510と第1識別モデル520との適切な訓練が、可能である。
A5.第2訓練処理:
図6は、第2生成モデル600の第2訓練処理の例を示すフローチャートである。図3(B)は、第2生成モデル600の訓練の概要を示すブロック図である。本実施例では、第2生成モデル600は、種々のラベルシートの画像データが入力される場合に、不具合のないラベルシートの画像データを生成するように、訓練される。プロセッサ210(図1)は、第2プログラム232に従って、図6の処理を実行する。
A5. Second training process:
FIG. 6 is a flowchart showing an example of the second training process for the second
S410では、プロセッサ210は、図2で説明した原画像データIodを使用して複数の訓練画像データを生成し、生成した複数の訓練画像データを記憶装置215(本実施例では、不揮発性記憶装置230)に格納する。格納された複数の訓練画像データは、第2種訓練データ690(図1)を構成する。本実施例では、プロセッサ210は、データオーギュメンテーションとも呼ばれる加工処理を原画像データIodに対して行うことによって、互いに異なる画像を表す複数の訓練画像データを生成する。プロセッサ210は、S215(図4)と同様に、予め決められた複数の候補加工処理からの加工処理の選択と、原画像データIodに対する選択された加工処理の実行とを、複数回行う。なお、S410で使用される複数の候補加工処理は、不具合の無いラベルシートを維持する複数の加工処理で構成されている(例えば、トーンカーブ調整処理、ホワイトバランス調整処理、ノイズ付加処理など)。文字の領域を加工する処理のようなラベルシートの不具合を生成する加工処理は、使用されない。従って、複数の訓練画像データは、いずれも、不具合の無いラベルシートを表している。
In S410, the
S415では、プロセッサ210は、第2生成モデル600の複数の演算パラメータ(例えば、畳込フィルタの複数の重みと複数のバイアスなど)を、初期化する。例えば、各演算パラメータは、乱数値に設定される。
At S415, the
S420では、プロセッサ210は、第2種訓練データ690に含まれる複数の訓練画像データから、処理対象の複数のデータである複数の対象訓練画像データで構成されるサブセットを選択する。サブセットとしては、未処理の複数の訓練画像データが選択される。サブセットの画像データの総数は、予め決められている。
In S420, the
S425では、プロセッサ210は、対象訓練画像データI6td(図3(B))を、第2生成モデル600(図3)に入力することによって、第2生成画像データI6xdを生成する。具体的には、プロセッサ210は、第2生成モデル600の演算パラメータを使用して、第2生成モデル600の各層の演算を行うことによって、第2生成画像データI6xdを生成する。
At S425, the
S430では、プロセッサ210は、第2生成モデル600に入力された対象訓練画像データI6tdと、第2生成画像データI6xdと、を使用して、予め決められた再構成損失関数に従って、再構成損失を算出する。再構成損失関数は、2個の画像データの間の差分を表す種々の関数であってよい。本実施例では、再構成損失関数として、いわゆる交差エントロピーが使用される。これに代えて、再構成損失関数として、二乗和誤差が使用されてよい。本実施例では、サブセット(S420)は、複数の対象訓練画像データを含んでいる。プロセッサ210は、複数の対象訓練画像データのそれぞれに関して、S425の処理を実行し、複数の第2生成画像データを生成する。S430では、プロセッサ210は、対象訓練画像データと第2生成画像データとの複数のペアから再構成損失関数に従って取得される複数の損失L2の合計値を、再構成損失として算出する。
At S430, the
S435では、プロセッサ210は、再構成損失が小さくなるように、予め決められたアルゴリズムに従って、第2生成モデル600の複数の演算パラメータを調整する。アルゴリズムとしては、例えば、誤差逆伝播法と勾配降下法とを使用したアルゴリズムが採用されてよい。また、プロセッサ210は、いわゆるAdamの最適化を行ってよい。また、本実施例では、プロセッサ210は、第2エンコーダ602の2番目から5番目までの4個の畳込層と、第2デコーダ607の1番目から4番目までの4個の転置畳込層と、に、バッチノーマライゼーションを適用する。プロセッサ210は、第2デコーダ607の1番目から2番目までの2個の転置畳込層に、ドロップアウトを適用する。
In S435,
S440では、プロセッサ210は、訓練終了条件が満たされるか否かを判断する。訓練終了条件は、第2生成モデル600が適切に訓練されたことを示す任意の条件であってよい。本実施例では、訓練終了条件は、作業者からの終了指示が入力されることである。プロセッサ210は、第2種訓練データ690(図1)中の訓練に使用されていない複数の訓練画像データから、所定数の画像データをランダムに取得する。プロセッサ210は、取得した複数の画像データを第2生成モデル600に入力し、第2生成モデル600から複数の第2生成画像データを取得する。プロセッサ210は、入力された画像と出力された第2生成画像との複数のペアを、表示部240に表示する。作業者は、表示部240を観察して、第2生成画像が入力された画像と同じラベルシートの画像を適切に表しているか否かを確認する。作業者は、確認結果に応じて、操作部250を操作して、訓練の終了指示、または、継続指示を入力する。
At S440, the
なお、訓練の終了条件は、他の条件であってよい。例えば、終了条件は、訓練に使用されていない予め決められた第2数の訓練画像データを使用して算出される再構成損失が、所定の再構成閾値以下であることであってよい。 Note that the training end condition may be another condition. For example, the termination condition may be that the reconstruction loss calculated using a second predetermined number of training image data not used for training is less than or equal to a predetermined reconstruction threshold.
訓練が終了していないと判断される場合(S440:No)、プロセッサ210は、S420へ移行し、新たなサブセットの処理を実行する。訓練が終了したと判断される場合(S440:Yes)、S445で、プロセッサ210は、訓練済の第2生成モデル600を、記憶装置215(ここでは、不揮発性記憶装置230)に格納する。そして、プロセッサ210は、図6の処理を終了する。以上のように、第2生成モデル600は、不具合の無い種々のラベルシートの画像データから、不具合の無い同じラベルシートの画像データを生成するように訓練される。従って、訓練済の第2生成モデル600は、入力される画像データI61d(図3(A))が不具合を有するラベルシートLBjを表す場合であっても、不具合の無いラベルシートLBjxを表す画像データI62dを生成する。
If it is determined that the training has not been completed (S440: No), the
A6.検査処理:
図7は、検査処理の例を示すフローチャートである。検査処理は、画像処理装置200(図1)によって実行される。プロセッサ210は、第3プログラム233に従って、検査処理を実行する。
A6. Inspection process:
FIG. 7 is a flowchart illustrating an example of inspection processing. Inspection processing is executed by the image processing device 200 (FIG. 1).
S510では、プロセッサ210は、検査対象のラベルシートである注目ラベルシートをデジタルカメラ100に撮影させ、注目撮影画像データをデジタルカメラ100から取得する。図8は、検査処理の概略図である。図中の画像データIxdは、注目撮影画像Ixの注目撮影画像データIxdである。注目撮影画像Ixは、注目ラベルシートLBxを含むプリンタDVの一部分を表している。図8の例では、注目ラベルシートLBxは、文字列の不具合を有している(詳細は、後述)。
In S<b>510 , the
S515では、プロセッサ210は、注目撮影画像から注目ラベルシートの領域を抽出するクロッピング処理を行う。本実施例では、プロセッサ210は、物体検出モデルと呼ばれる機械学習モデル(例えば、YOLOv4 (You only look once)、SSD (Single Shot MultiBox Detector)、R-CNN (Region Based Convolutional Neural Networks) など)を使用して、注目ラベルシートLBxの領域を検出する。プロセッサ210は、注目撮影画像データIxdのうちの検出された領域を示す部分を使用して、注目ラベルシートLBxを表す注目入力画像データIx0dを生成する。プロセッサ210は、注目入力画像データIx0dによって表される注目入力画像Ix0の高さと幅とを、第1モデル500によって受け入れられる画像の高さと幅とに調整する。なお、注目ラベルシートLBxの領域の検出方法は、他の任意の方法であってよい。例えば、プロセッサ210は、予め決められた基準パターンを使用するパターンマッチングによって、注目ラベルシートLBxの領域を検出してもよい。
In S515, the
S520では、プロセッサ210は、注目入力画像データを第1生成モデル510に入力することによって、第1注目生成画像データIx1dを生成する。プロセッサ210は、第1生成モデル510の演算パラメータを使用して、第1生成モデル510の各層の演算を行うことによって、第1注目生成画像データIx1dを生成する。第1注目生成画像データIx1dの第1注目生成画像Ix1は、コンピュータグラフィックス画像のような注目ラベルシートLBxの画像である。
In S<b>520 , the
S530では、プロセッサ210は、第1注目生成画像データIx1dを第2生成モデル600に入力することによって、第2注目生成画像データIx2dを生成する。プロセッサ210は、第2生成モデル600の演算パラメータを使用して、第2生成モデル600の各層の演算を行うことによって、第2注目生成画像データIx2dを生成する。第2注目生成画像データIx2dの第2注目生成画像Ix2は、不具合の無いラベルシートLBxmを表している(正解ラベルシートLBxmとも呼ぶ)。図8の例では、正解ラベルシートLBxmは、3個の文字列T1、T2、T3を表している。一方、注目入力画像Ix0によって示されるように、注目ラベルシートLBxは、2個の文字列T1、T2xを表している。第2文字列T2xの最も右側の文字T2eは、正解ラベルシートLBxmの第2文字列T2の正しい「2」に代えて、誤った「9」である。注目ラベルシートLBx上では、第3文字列T3は、空白領域Axに置換されている。
In S<b>530 , the
S535では、プロセッサ210は、第1注目生成画像Ix1と第2注目生成画像Ix2との間の差分を示す中間差分画像Ix3の中間差分画像データIx3dを生成する。中間差分画像Ix3の各画素は、第1注目生成画像Ix1の対応する画素の第1色値と、第2注目生成画像Ix2の対応する画素の第2色値と、の間の差を示している。本実施例では、第1色値と第2色値とは、RGB値である。プロセッサ210は、第1色値と第2色値との間のL1距離を、中間差分画像Ix3の画素の画素値として算出する。なお、中間差分画像Ix3の画素の画素値は、L1距離に代えて、第1注目生成画像Ix1と第2注目生成画像Ix2との間の差を示す任意の値であってよい(例えば、L2距離、RGB値から算出される輝度値の差分、など)。
In S535, the
中間差分画像Ix3は、種々のノイズを含み得る。例えば、文字などのオブジェクトと背景との境界を示す画素の色値は、第1注目生成画像Ix1と第2注目生成画像Ix2との間で、異なり得る。中間差分画像Ix3は、このような色値のズレを、表し得る。そこで、本実施例では、プロセッサ210は、中間差分画像データIx3dの二値化処理を実行することによって、最終的な差分画像Ix4の差分画像データIx4dを生成する。二値化処理の閾値は、不具合を示す画素の値を1に設定し、不具合の無い画素とノイズを示す画素とのぞれぞれの値をゼロに設定するように、予め実験的に決定される。図8の例では、差分画像Ix4は、注目入力画像Ix0から欠けている第3文字列T3と、第2文字列T2xの最も右側の文字の差分画像T2wと、を表している。
The intermediate difference image Ix3 may contain various noises. For example, the color values of pixels indicating the boundary between an object such as a character and the background may differ between the first generated image of interest Ix1 and the second generated image of interest Ix2. The intermediate difference image Ix3 can represent such color value deviations. Therefore, in this embodiment, the
S540では、プロセッサ210は、差分画像データIx4dの次元削減処理を実行することによって、異常度DAを算出する。異常度DAは、注目入力画像データIx0dによって表される注目ラベルシートLBxの不具合の度合いを示している。次元削減処理は、差分画像データIx4dの特徴を示す異常度DAを算出する種々の処理であってよい。本実施例では、プロセッサ210は、t-SNE(t-distributed Stochastic Neighbor Embedding)を使用して、差分画像データIx4dから、第1値V1と第2値V2とで構成される2次元データを生成する。図8には、2次元データを示すグラフの概略が示されている。横軸は第1値V1を示し、縦軸は第2値V2を示している。注目点Piは、差分画像データIx4dから算出された2次元データを示している。基準点Psは、不具合の無いラベルシートの複数の撮影画像からS515-S540の処理と同じ処理によって得られる複数の2次元データPrの代表点である。本実施例では、基準点Psは、複数の2次元データPrの重心点であり、予め決められている。距離DAdは、基準点Psと注目点Piとの間の距離である(本実施例では、二乗和誤差)。なお、距離DAdは、2個の点Ps、Piの間の距離を示す種々の値であってよい(例えば、L2距離、L1距離など)。
In S540, the
プロセッサ210は、予め決められた評価関数に距離DAdを入力することによって、異常度DAを算出する。評価関数は、距離DAdが大きいほど大きい異常度DAを算出する種々の関数であってよい。ここで、距離DAdの全範囲が、短範囲と中範囲と長範囲との3つの範囲に区分される場合に、短範囲では、異常度DAがゼロに近く、長範囲では、異常度DAが最大値(例えば、100)に近く、中範囲では、距離DAdの変化に応じて異常度DAが大きく変化することが好ましい。このような評価関数としては、例えば、シグモイド関数、または、tanh関数を採用可能である。
The
このように、本実施例では、プロセッサ210は、t-SNEと評価関数とを使用する次元削減処理を実行して、差分画像データIx4dから異常度DAを算出する。本実施例では、異常度DAは、ゼロ以上、100以下の値である。
Thus, in this embodiment, the
S545では、プロセッサ210(図1)は、差分画像Ix4と異常度DAとを、表示部240に表示する。図9(A)は、表示部240に表示される画像の例を示す概略図である。表示部240は、差分画像Ix4と、異常度DAを示す文字列DAtと、を表している。図9(A)では、異常度DAは、80であり、異常度DAの単位として「%」が示されている。作業者は、表示部240を観察することによって、注目ラベルシートLBxのうちの不具合を有する部分と、異常の度合いとを、容易に認識できる。
In S545, the processor 210 (FIG. 1) displays the difference image Ix4 and the degree of abnormality DA on the
図7の実施例では、プロセッサ210は、S530-S545の処理と並行して、S550、S555、S560の処理を実行する。図10は、検査処理の概略図である。図10には、S550、S555の概略が示されている。S550(図7)では、プロセッサ210は、第1注目生成画像データIx1dの文字認識処理を実行し、注目ラベルシートLBxによって表される文字列のリストを示す注目文字列テーブルTxを取得する。文字認識処理は、公知の種々の処理であってよい。例えば、Google社の「Tesseract OCR」と呼ばれる光学文字認識エンジンが、使用されてよい。なお、本実施例では、プロセッサ210は、ノイズを含む注目入力画像データIx0dではなく、第1注目生成画像データIx1dを、文字認識に使用する。従って、プロセッサ210は、適切な文字認識結果を、取得できる。
In the embodiment of FIG. 7, the
図10には、注目文字列テーブルTxの例が示されている。図示するように、注目文字列テーブルTxは、第1文字列T1と、第2文字列T2xと、を示している。第2文字列T2xの最も右側の文字T2eは、誤った「9」である。第3文字列T3は、認識されない。 FIG. 10 shows an example of the noted character string table Tx. As illustrated, the target character string table Tx indicates a first character string T1 and a second character string T2x. The rightmost character T2e of the second string T2x is a false "9". The third string T3 is not recognized.
S555では、プロセッサ210は、注目文字列テーブルTxと、原本文字列テーブルToと、を比較することにより、不具合を有する文字列のリストを示す不具合文字列テーブルTdを生成する。原本文字列テーブルToは、不具合の無いラベルシートによって表される文字列のリストを示しており、予め準備されている。プロセッサ210は、注目文字列テーブルTxと原本文字列テーブルToとを比較し、文字列単位で、不具合を検出する。図10の例では、不具合文字列テーブルTdは、第2文字列T2xと、第3文字列T3と、を示している。第2文字列T2xの最も右側の文字T2eは、誤った「9」である。
In S555, the
このように、不具合文字列テーブルTdは、注目文字列テーブルTxに含まれる文字列であって、原本文字列テーブルToに含まれる対応する文字列と少なくとも一部が異なる文字列(例えば、第2文字列T2x)を、含んでいる。また、不具合文字列テーブルTdは、原本文字列テーブルToに含まれ、かつ、注目文字列テーブルTxに含まれない文字列(例えば、第3文字列T3)を、含んでいる。図示を省略するが、注目文字列テーブルTxが、原本文字列テーブルToに含まれない文字列を含む場合、不具合文字列テーブルTdは、その文字列を含んでいる。 In this way, the defect character string table Td is a character string included in the target character string table Tx that is at least partially different from the corresponding character string included in the original character string table To (for example, the second contains the string T2x). The defective character string table Td also includes character strings (for example, the third character string T3) that are included in the original character string table To but not included in the target character string table Tx. Although illustration is omitted, if the noted character string table Tx includes a character string that is not included in the original character string table To, the defective character string table Td includes that character string.
S560では、プロセッサ210(図1)は、不具合文字列テーブルTdによって示される文字列を、表示部240に表示する。図9(B)は、表示部240に表示される画像の例を示す概略図である。表示部240は、不具合文字列テーブルTdに含まれる文字列T2x、T3を表している。作業者は、表示部240を観察することによって、注目ラベルシートLBxに含まれる不具合を、容易に認識できる。
In S560, processor 210 (FIG. 1) displays the character string indicated by defect character string table Td on
S530-S545の処理とS550-S560の処理とが終了した場合、プロセッサ210は、図7の検査処理を終了する。なお、プロセッサ210は、S530-S545の処理と、S550-S560の処理とを、並行ではなく、順番に実行してよい。
When the processing of S530-S545 and the processing of S550-S560 are completed, the
以上のように、本実施例では、画像処理装置200のプロセッサ210は、以下の画像処理を実行する。図7のS520では、プロセッサ210は、光学的に読み取られた注目ラベルシートLBx(図8)を表す注目入力画像データIx0dを第1生成モデル510に入力することによって、注目入力画像データIx0dに対応する第1注目生成画像データIx1dを生成する。図2、図4、図5で説明したように、第1生成モデル510は、光学的に読み取られたラベルシートの画像I5i(図2)を表す画像データI5idを第1生成モデル510に入力することによって生成される画像データI51dの画像I51がラベルシートのコンピュータグラフィックス画像Ioに近づくように訓練された生成モデルである。
As described above, in this embodiment, the
また、図7のS530では、プロセッサ210は、第1注目生成画像データIx1d(図8)を第2生成モデル600に入力することによって、不具合の無い注目対象物の画像Ix2を表す第2注目生成画像データIx2dを生成する。図6で説明したように、第2生成モデル600は、ラベルシートの画像を表す画像データI61d(図3(A))を第2生成モデル600に入力することによって不具合の無いラベルシートの画像I62を表す画像データI62dを生成するように訓練された生成モデルである。
Further, in S530 of FIG. 7, the
また、図7のS535では、プロセッサ210は、第1注目生成画像データIx1d(図8)の画像Ix1と第2注目生成画像データIx2dの画像Ix2との間の差分を示す差分画像Ix4の差分画像データIx4dを生成する。
In addition, in S535 of FIG. 7, the
図2、図5、図6で説明したように、第1生成モデル510は、第1生成モデル510と第1識別モデル520とを有する第1モデル500の訓練によって生成される。ここで、第1生成モデル510は、生成ネットワークの例であり、第1識別モデル520は、識別ネットワークの例であり、第1モデル500は、生成ネットワークと識別ネットワークとを有する敵対的生成ネットワークの例である。
As described in FIGS. 2, 5 and 6, first
図4のS250、S260、図2で説明したように、第1識別モデル520は、第1部分画像データPA1dと第2部分画像データPA2dとを第1識別モデル520に入力することによって、訓練されている。S235-S245、図2で説明したように、第1部分画像データPA1dは、訓練用の入力画像データI5idを第1生成モデル510に入力することによって生成された画像データI51dの画像である第1画像I51の一部分である第1部分画像PA1を表している。S250-S260、図2で説明したように、第2部分画像データPA2dは、訓練用のコンピュータグラフィックス画像Ioである第2画像Ioの一部分である第2部分画像PA2を表している。 As described in S250 and S260 of FIG. 4 and FIG. ing. S235-S245, as described with reference to FIG. A first partial image PA1, which is part of the image I51, is shown. S250-S260, as described in FIG. 2, the second partial image data PA2d represents the second partial image PA2 which is a portion of the second image Io which is the training computer graphics image Io.
以上により、識別ネットワークの例である第1識別モデル520へ入力される画像データPA1d、PA2d(図2)の多様性が増加し、第1識別モデル520の訓練の速度が抑制されるので、生成ネットワークの例である第1生成モデル510の訓練と第1識別モデル520の訓練とのバランスをとることができる。従って、図8に示すように、第1生成モデル510は、光学的に読み取られたラベルシートLBxの画像Ix0を表す画像データIx0dを第1生成モデル510に入力することによって生成される画像データIx1dの画像Ix1がラベルシートのコンピュータグラフィックス画像に近づくように適切に訓練される。このような第1生成モデル510によって生成される第1注目生成画像データIx1dが第2生成モデル600に入力されるので、第2生成モデル600は、不具合の無い注目ラベルシートの画像を表す第2注目生成画像データIx2dを適切に生成できる。従って、第1注目生成画像データIx1dの画像Ix1と第2注目生成画像データIx2dの画像Ix2との間の差分を示す差分画像Ix4の差分画像データIx4dは、注目ラベルシートLBxの読取りの条件に拘わらずに、注目入力画像データIx0dによって表される注目ラベルシートLBxの不具合を、適切に表すことができる。
As described above, the diversity of the image data PA1d, PA2d (FIG. 2) input to the
さらに、本実施例では、S540(図7)で、プロセッサ210は、差分画像データIx4dの次元削減処理を実行することによって、注目入力画像データIx0dによって表される注目ラベルシートLBxの異常度DAを算出する。上述したように、差分画像データIx4dは、注目ラベルシートLBxの不具合を適切に表すので、プロセッサ210は、差分画像データIx4dを使用して、適切な異常度DAを算出できる。
Further, in the present embodiment, in S540 (FIG. 7), the
また、図4のS240、S255、図2で説明したように、第1画像I51上の第1部分領域A1の第1位置P1は、ランダムに決定されており、第2画像Io上の第2部分領域A2の第2位置P2は、ランダムに決定されている。第1モデル500の訓練では(図4、図5)、プロセッサ210は、種々の位置P1、P2の部分領域A1、A2の部分画像PA1、PA2の部分画像データPA1d、PA2dを、第1識別モデル520に入力する。これにより、第1識別モデル520へ入力される画像データの多様性が増加するので、第1生成モデル510と第1識別モデル520との適切な訓練が、可能である。
Further, as described in S240 and S255 in FIG. 4 and in FIG. 2, the first position P1 of the first partial area A1 on the first image I51 is randomly determined, and the second A second position P2 of the partial area A2 is randomly determined. In training the first model 500 (FIGS. 4, 5), the
また、上述したように、図4、図5は、生成ネットワークと識別ネットワークとを有する敵対的生成ネットワークの訓練処理の例を示している。この訓練処理は、以下の処理を備えている。S235では、プロセッサ210は、訓練用の入力画像データI5idを生成ネットワークの例である第1生成モデル510に入力することによって、第1画像I51の第1画像データI51dを生成する。S240では、プロセッサ210は、第1画像I51中の第1部分領域A1をランダムに決定する(本実施例では、第1部分領域A1の第1位置P1が、ランダムに決定される)。S245では、プロセッサ210は、第1画像I51中の第1部分領域A1の画像の少なくとも一部を示す第1部分画像PA1を表す第1部分画像データPA1dを、第1画像データI51dと第1部分領域A1とを使用して取得する。S250では、プロセッサ210は、第1部分画像データPA1dを識別ネットワークの例である第1識別モデル520に入力することによって、第1識別データ529fを取得する。S255では、プロセッサ210は、入力画像データI5idに対応付けられた第2画像データIodの第2画像Io中の第2部分領域A2をランダムに決定する(本実施例では、第2部分領域A2の第2位置P2が、ランダムに決定される)。S260では、プロセッサ210は、第2画像Io中の第2部分領域A2の画像の少なくとも一部を示す第2部分画像PA2を表す第2部分画像データPA2dを、第2画像データIodと第2部分領域A2とを使用して取得する。S265では、プロセッサ210は、第2部分画像データPA2dを第1識別モデル520に入力することによって、第2識別データ529rを取得する。S270、S275では、プロセッサ210は、第1識別データ529fと第2識別データ529rとを使用することによって、第1識別モデル520のパラメータを調整する。以上により、敵対的生成ネットワークの訓練のために識別ネットワークに入力される画像の多様性が向上するので、識別ネットワーク、ひいては、識別ネットワークと生成ネットワークを有する敵対的生成ネットワークを、適切に訓練できる。なお、敵対的生成ネットワークの用途は、ラベルシートなどの対象物の不具合に関する検査に限らず、任意の用途であってよい。
Also, as mentioned above, FIGS. 4 and 5 show an example of a training process for a generative adversarial network having a generative network and a discriminative network. This training process includes the following processes. In S235, the
B.変形例:
(1)第1モデル500の訓練(図4、図5)には、互いに異なる画像を表す複数の入力画像データが使用されることが好ましい。複数の入力画像データは、ラベルシートの互いに異なる不具合を示す複数の入力画像データを含むことが好ましい。また、複数の入力画像データは、互いに異なる読取条件に対応する複数の入力画像データを含むことが好ましい。
B. Variant:
(1) A plurality of input image data representing different images are preferably used for training the first model 500 (FIGS. 4 and 5). Preferably, the plurality of input image data includes a plurality of input image data representing different defects of the label sheet. Moreover, it is preferable that the plurality of input image data include a plurality of input image data corresponding to reading conditions different from each other.
また、入力画像データに対応付けられるコンピュータグラフィックス画像のデータは、入力画像データによって表されるラベルシートと同じラベルシートを表してよい。すなわち、入力画像データが不具合を有するラベルシートを表す場合、その入力画像データに対応付けられるコンピュータグラフィックス画像のデータは、同じ不具合を有するラベルシートを表してよい。このような注目入力画像データとコンピュータグラフィックス画像のデータとのペアを訓練に用いることによって、訓練済の第1生成モデル510は、不具合を有するラベルシートを表す画像データが入力される場合に、同じ不具合を有するラベルシートのコンピュータグラフィックス画像を表すデータを、適切に生成できる。
Further, the computer graphics image data associated with the input image data may represent the same label sheet as the label sheet represented by the input image data. That is, if the input image data represents a label sheet with a defect, the computer graphics image data associated with the input image data may represent the label sheet with the same defect. By using such a pair of input image data of interest and computer graphics image data for training, the trained
(2)第1モデル500の訓練(図4、図5)では、プロセッサ210は、互いに異なる複数の第1位置P1(図2)の複数の第1部分領域A1の複数の画像を示す複数の第1部分画像PA1の複数のデータPA1dを、第1識別モデル520に入力することが好ましい。ここで、プロセッサ210は、複数の第1生成画像データを使用して複数の第1部分画像PA1のデータを取得することが好ましい。これに代えて、プロセッサ210は、1個の第1生成画像データを使用して複数の第1部分画像PA1のデータを取得してもよい。ここで、S240(図4)では、プロセッサ210は、1個の第1生成画像から取得される第1部分画像PA1の数(すなわち、第1生成画像上の第1部分領域A1の数)を、ランダムに決定してよい。互いに異なる複数の第1位置P1は、ランダムに決定される代わりに、予め決められていてもよい。また、S240では、プロセッサ210は、第1生成画像上の第1部分領域A1の大きさ(単位は、例えば、予め決められた方向(例えば、幅方向)の画素数)を、ランダムに決定してよい。また、プロセッサ210は、予め決められた複数の形状(例えば、四角形、長方形、菱形、円、楕円など)から、第1生成画像上の第1部分領域A1の形状をランダムに決定してよい。一般的には、プロセッサ210は、S240で、第1生成画像上の第1部分領域A1の位置と形状と大きさと数とを含む複数のパラメータのうちの1以上のパラメータを、ランダムに決定してよい。これにより、第1識別モデル520に入力される画像データの多様性は、更に向上する。なお、残りのパラメータは、予め決められてよい。ここで、プロセッサ210は、S240で、複数のパラメータのうちのランダムに決定すべきパラメータを、ランダムに決定してよい。
(2) In the training of the first model 500 (FIGS. 4 and 5), the
また、S245の第1取得処理は、第1生成画像中の第1部分領域A1の画像の少なくとも一部を示す第1部分画像PA1の第1部分画像データPA1dを取得する種々の処理であってよい。第1取得処理は、例えば、画像の回転と画像のスケーリング(拡大、または、縮小)の一方または両方を含んでよい。画像のスケーリングは、画像の画素密度を変更する。第1取得処理は、回転とスケーリングとに限らず、他の種々の画像処理を含んでよい。第1取得処理は、第1取得処理によって生成された第1部分画像PA1が第1部分領域A1の画像の少なくとも一部と同じ画像を示すように構成されていることが好ましい。第1取得処理では、プロセッサ210は、第1取得処理の画像処理で使用される1以上のパラメータ(例えば、回転角度とスケーリング比率とを含む複数のパラメータ)のうちの予め選択された1以上のパラメータ(例えば、回転角度とスケーリング比率との一方または両方)を、ランダムに決定してよい。スケーリング比率は、スケーリングの前の画像の大きさ(単位は、例えば、予め決められた方向(例えば、幅方向)の画素数)に対するスケーリングの後の画像の大きさの比率である。第1取得処理では、プロセッサ210は、回転とスケーリングとを含む複数の画像処理から、実行すべき画像処理を、ランダムに選択してよい。第1取得処理では、プロセッサ210は、第1取得処理の画像処理で使用される1以上のパラメータのうちのランダムに決定すべきパラメータを、ランダムに選択してよい。ランダムに決定されたパラメータを第1取得処理の画像処理で使用することによって、第1識別モデル520に入力される画像データの多様性は、更に向上する。なお、残りのパラメータは、予め決められてよい。
Further, the first acquisition process of S245 is various processes for acquiring the first partial image data PA1d of the first partial image PA1 representing at least part of the image of the first partial area A1 in the first generated image. good. The first acquisition process may include, for example, one or both of image rotation and image scaling (enlargement or reduction). Scaling an image changes the pixel density of the image. The first acquisition processing is not limited to rotation and scaling, and may include various other image processing. The first acquisition process is preferably configured so that the first partial image PA1 generated by the first acquisition process shows the same image as at least part of the image of the first partial area A1. In the first acquisition process, the
いずれの場合も、第1取得処理は、第1部分画像PA1を、第1識別モデル520によって受け入れられる画像である識別入力画像に調整する処理を含んでよい。プロセッサ210は、例えば、画素密度の調整、または、畳込処理によって、第1部分画像PA1の大きさ(より一般的には、画素密度)を調整してよい。また、調整前の第1部分画像PA1の形状が識別入力画像の形状と異なる場合、プロセッサ210は、調整前の第1部分画像PA1から、識別入力画像の形状と同じ形状を有する部分を抽出することによって、調整済の第1部分画像PA1を生成してよい。このように、第1部分画像PA1は、第1生成画像中の第1部分領域A1の画像の全体または一部を示してよい。スケーリングを含む第1取得処理が実行される場合、調整済の第1部分画像PA1の中の、第1部分領域A1の画像の大きさが、スケーリング比率が大きいほど大きくなるように、第1部分画像PA1が調整されてよい。
In either case, the first acquisition process may comprise adjusting the first partial image PA1 to the discriminative input image, which is the image accepted by the first
同様に、プロセッサ210は、互いに異なる複数の第2位置P2(図2)の複数の第2部分領域A2の複数の画像を示す複数の第2部分画像PA2の複数のデータPA2dを、第1識別モデル520に入力することが好ましい。ここで、プロセッサ210は、1個のコンピュータグラフィックス画像データ(例えば、画像データIod)を使用して複数の第2部分画像PA2のデータを取得してよい。ここで、S255(図4)では、プロセッサ210は、1個のコンピュータグラフィックス画像から取得される第2部分画像PA2の数(すなわち、コンピュータグラフィックス画像上の第2部分領域A2の数)を、ランダムに決定してよい。これに代えて、プロセッサ210は、複数のコンピュータグラフィックス画像データを使用して複数の第2部分画像PA2のデータを取得してもよい。互いに異なる複数の第2位置P2は、ランダムに決定される代わりに、予め決められていてもよい。また、S255では、プロセッサ210は、コンピュータグラフィックス画像上の第2部分領域A2の大きさ(単位は、例えば、予め決められた方向(例えば、幅方向)の画素数)を、ランダムに決定してよい。また、プロセッサ210は、予め決められた複数の形状(例えば、四角形、長方形、菱形、円、楕円など)から、コンピュータグラフィックス画像上の第2部分領域A2の形状をランダムに決定してよい。一般的には、プロセッサ210は、S255で、コンピュータグラフィックス画像上の第2部分領域A2の位置と形状と大きさと数とを含む複数のパラメータのうちの1以上のパラメータを、ランダムに決定してよい。これにより、第1識別モデル520に入力される画像データの多様性は、更に向上する。なお、残りのパラメータは、予め決められてよい。ここで、プロセッサ210は、S255で、複数のパラメータのうちのランダムに決定すべきパラメータを、ランダムに決定してよい。
Similarly,
また、S260の第2取得処理は、コンピュータグラフィックス画像中の第2部分領域A2の画像の少なくとも一部を示す第2部分画像PA2の第2部分画像データPA2dを取得する種々の処理であってよい。第2取得処理は、第2取得処理によって生成された第2部分画像PA2が第2部分領域A2の画像の少なくとも一部と同じ画像を示すように構成されていることが好ましい。第2取得処理は、第1取得処理と同じであってよく、例えば、画像の回転と画像のスケーリングの一方または両方を含んでよい。第2取得処理では、プロセッサ210は、第2取得処理の画像処理で使用される1以上のパラメータ(例えば、回転角度とスケーリング比率とを含む複数のパラメータ)のうちの予め選択された1以上のパラメータ(例えば、回転角度とスケーリング比率との一方または両方)を、ランダムに決定してよい。第2取得処理では、プロセッサ210は、回転とスケーリングとを含む複数の画像処理から、実行すべき画像処理を、ランダムに選択してよい。第2取得処理では、プロセッサ210は、第2取得処理の画像処理で使用される1以上のパラメータのうちのランダムに決定すべきパラメータを、ランダムに選択してよい。ランダムに決定されたパラメータを第2取得処理の画像処理で使用することによって、第1識別モデル520に入力される画像データの多様性は、更に向上する。なお、残りのパラメータは、予め決められてよい。
The second acquisition process of S260 is various processes for acquiring the second partial image data PA2d of the second partial image PA2 representing at least part of the image of the second partial area A2 in the computer graphics image. good. The second acquisition process is preferably configured such that the second partial image PA2 generated by the second acquisition process shows the same image as at least part of the image of the second partial area A2. The second acquisition process may be the same as the first acquisition process, and may include, for example, one or both of image rotation and image scaling. In the second acquisition process, the
いずれの場合も、第2取得処理は、第2部分画像PA2を、第1識別モデル520によって受け入れられる識別入力画像に調整する処理を含んでよい。プロセッサ210は、例えば、画素密度の調整、または、畳込処理によって、第2部分画像PA2の大きさ(より一般的には、画素密度)を調整してよい。また、調整前の第2部分画像PA2の形状が識別入力画像の形状と異なる場合、プロセッサ210は、調整前の第2部分画像PA2から、識別入力画像の形状と同じ形状を有する部分を抽出することによって、調整済の第2部分画像PA2を生成してよい。このように、第2部分画像PA2は、コンピュータグラフィックス画像中の第2部分領域A2の画像の全体または一部を示してよい。スケーリングを含む第2取得処理が実行される場合、調整済の第2部分画像PA2の中の、第2部分領域A2の画像の大きさが、スケーリング比率が大きいほど大きくなるように、第2部分画像PA2が調整されてよい。
In either case, the second acquisition process may include adjusting the second partial image PA2 to a discriminative input image acceptable by the first
(3)第1モデル500は、図2等で説明したネットワークに代えて、生成ネットワークと識別ネットワークとを有する種々の敵対的生成ネットワークであってよい。例えば、第1生成モデル510に入力される画像の高さと幅とは、予め決められた任意の高さと幅とであってよい。第1生成モデル510の第1エンコーダ512の畳込層の総数は、1以上の任意の数であってよい。各畳込層のフィルタのサイズは、種々のサイズであってよい。第1エンコーダ512は、全結合層を含んでよい。第1エンコーダ512からは、畳込層が、省略されてよい。同様に、第1生成モデル510の第1デコーダ517の転置畳込層の総数は、1以上の任意の数であってよい。各転置畳込層のフィルタのサイズは、種々のサイズであってよい。第1デコーダ517は、全結合層を含んでよい。第1デコーダ517からは、転置畳込層が、省略されてよい。
(3) The
第1識別モデル520の畳込層群522の畳込層の総数は、1以上の任意の数であってよい。各畳込層のフィルタのサイズは、種々のサイズであってよい。全結合層群527の全結合層の総数は、1以上の任意の数であってよい。各全結合層のノード数は、種々の値であってよい。畳込層群522とグローバル平均プーリング層525と全結合層群527との3個のモジュールのうち1個または2個のモジュールが、省略されてよい。
The total number of convolution layers of the
バッチノーマライゼーションは、第1モデル500の種々の層に適用されてよい。ドロップアウトは、第1モデル500の種々の層に適用されてよい。
Batch normalization may be applied to various layers of the
(4)第2生成モデル600は、図3(A)、図3(B)等で説明したネットワークに限らず、入力された画像から不具合のない画像を生成する任意のネットワークであってよい。例えば、第2生成モデル600の構成は、第1生成モデル510の構成と異なってよい。また、第2生成モデル600は、生成ネットワークと識別ネットワークとを有する敵対的生成ネットワークの訓練によって生成された生成ネットワークであってよい。バッチノーマライゼーションは、第2生成モデル600の種々の層に適用されてよい。ドロップアウトは、第2生成モデル600の種々の層に適用されてよい。
(4) The second
(5)差分画像データIx4dから異常度DAを算出する処理(図7:S540)は、不具合の度合いを示す異常度DAを算出する種々の処理であってよい。例えば、プロセッサ210は、t-SNEを使用して差分画像データIx4dから3次元データを生成し、3次元空間における基準点と注目点との間の距離を使用して異常度DAを算出してよい。また、プロセッサ210は、t-SNEを使用して、差分画像データIx4dから1個の値を直接的に算出してよい。そして、プロセッサ210は、算出された1個の値を評価関数に入力することによって、異常度DAを算出してよい。また、プロセッサ210は、t-SNEに代えて、種々の次元削減処理(例えば、主成分解析)を使用してよい。
(5) The process of calculating the degree of anomaly DA from the difference image data Ix4d (FIG. 7: S540) may be various processes of calculating the degree of anomaly DA indicating the degree of failure. For example, the
(6)検査処理は、図7に示す処理に代えて、ラベルシートの不具合に関する情報(例えば、差分画像Ix4、異常度DA、不具合文字列テーブルTdなど)を生成する任意の処理であってよい。例えば、S540は、省略されてよい。この場合、S545では、プロセッサ210は、差分画像Ix4を表示部240に表示してよい。また、差分画像データを生成する処理(S535)において、中間差分画像データIx3dの二値化処理(図8)が省略され、中間差分画像データIx3dが、差分画像データとして使用されてよい。また、S550-S560の処理は、省略されてよい。これに代えて、S530-S545の処理が省略されてよい。
(6) The inspection process may be any process that generates information (for example, the difference image Ix4, the degree of abnormality DA, the defect character string table Td, etc.) regarding defects in the label sheet, instead of the process shown in FIG. . For example, S540 may be omitted. In this case, the
また、S545、S560において、ユーザに情報を提示する方法は、情報の表示に代えて、ユーザに情報を伝達可能な任意の方法であってよい。例えば、プロセッサ210は、情報を説明する音声を出力してよい。
In addition, in S545 and S560, the method of presenting information to the user may be any method capable of transmitting information to the user instead of displaying information. For example,
(7)ラベルシートの形状は、任意の形状であってよく、例えば、三角形、四角形、5以上の角を有する多角形、円、または、楕円であってよい。いずれの場合も、画像データは、矩形状の画像を表してよい。図4のS240、S255では、プロセッサ210は、抽出される部分画像の全体がラベルシートに含まれるように、部分画像の領域を決定することが好ましい。
(7) The shape of the label sheet may be any shape, such as a triangle, a square, a polygon with 5 or more corners, a circle, or an ellipse. In either case, the image data may represent a rectangular image. At S240 and S255 of FIG. 4, the
(8)画像処理の対象である対象物は、プリンタなどの製品に貼られるラベルシートに限らず、製品に直接的に印刷されるラベルであってよい。対象物は、ラベルに限らず、製品に取り付けられる札でもよい。対象物は、製品を収容する容器、または、製品を包む包装紙であってよい。対象物に関連する製品は、プリンタに限らず、ミシン、カッティングマシンなどの任意の製品であってよい。一般的に、対象物は、文字を表す任意の対象物であってよい。対象物によって表される文字の数は、1以上の任意の整数であってよい。 (8) The object to be image-processed is not limited to a label sheet attached to a product such as a printer, but may be a label directly printed on the product. The object is not limited to a label, but may be a tag attached to a product. The object may be a container containing the product or a wrapping paper for wrapping the product. Products related to objects are not limited to printers, and may be arbitrary products such as sewing machines and cutting machines. In general, the object can be any object that represents a character. The number of characters represented by an object may be any integer greater than or equal to one.
(9)対象物を光学的に読み取る読取装置は、デジタルカメラ100に限らず、CCDやCMOSなどの光電変換素子を用いて光学的に対象物を読み取るように構成された任意の読取装置であってよい(例えば、スキャナ)。
(9) The reading device for optically reading an object is not limited to the
(10)第1訓練処理(例えば、図4、図5)、第2訓練処理(例えば、図6)、検査処理(例えば、図7)は、互いに異なる画像処理装置によって実行されてよい。いずれの画像処理装置も、パーソナルコンピュータとは異なる種類の装置(例えば、デジタルカメラ、スキャナ、スマートフォン)であってもよい。また、ネットワークを介して互いに通信可能な複数の装置(例えば、コンピュータ)が、画像処理装置による画像処理の機能を一部ずつ分担して、全体として、画像処理の機能を提供してもよい(これらの装置を備えるシステムが画像処理装置に対応する)。 (10) The first training process (eg, FIGS. 4 and 5), the second training process (eg, FIG. 6), and the inspection process (eg, FIG. 7) may be performed by different image processing devices. Any image processing device may be a type of device other than a personal computer (eg, digital camera, scanner, smart phone). In addition, a plurality of devices (for example, computers) that can communicate with each other via a network may share the image processing function of the image processing device, and provide the image processing function as a whole ( A system including these devices corresponds to the image processing device).
上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。例えば、図1の第1生成モデル510は、専用のハードウェア回路によって実現されてよい。
In each of the above embodiments, part of the configuration implemented by hardware may be replaced with software, or conversely, part or all of the configuration implemented by software may be replaced with hardware. good too. For example, the first
また、本発明の機能の一部または全部がコンピュータプログラムで実現される場合には、そのプログラムは、コンピュータ読み取り可能な記録媒体(例えば、一時的ではない記録媒体)に格納された形で提供することができる。プログラムは、提供時と同一または異なる記録媒体(コンピュータ読み取り可能な記録媒体)に格納された状態で、使用され得る。「コンピュータ読み取り可能な記録媒体」は、メモリーカードやCD-ROMのような携帯型の記録媒体に限らず、各種ROM等のコンピュータ内の内部記憶装置や、ハードディスクドライブ等のコンピュータに接続されている外部記憶装置も含み得る。 In addition, when part or all of the functions of the present invention are realized by a computer program, the program is provided in a form stored in a computer-readable recording medium (for example, a non-temporary recording medium). be able to. The program can be used while being stored in the same or different recording medium (computer-readable recording medium) as when it was provided. "Computer-readable recording medium" is not limited to portable recording media such as memory cards and CD-ROMs, but also internal storage devices such as various ROMs in computers, and hard disk drives that are connected to computers. An external storage device may also be included.
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。 Although the present invention has been described above based on examples and modifications, the above-described embodiments of the present invention are intended to facilitate understanding of the present invention, and are not intended to limit the present invention. The present invention may be modified and improved without departing from its spirit, and the present invention includes equivalents thereof.
100…デジタルカメラ、200…画像処理装置、210…プロセッサ、215…記憶装置、220…揮発性記憶装置、230…不揮発性記憶装置、231…第1プログラム、232…第2プログラム、233…第3プログラム、240…表示部、250…操作部、270…通信インタフェース、500…第1モデル、510…第1生成モデル、512…第1エンコーダ、515…第1特徴データ、517…第1デコーダ、519…コネクション、520…第1識別モデル、522…畳込層群、525…グローバル平均プーリング層、527…全結合層群、529…識別データ、529f…第1識別データ、529r…第2識別データ、590…第1種訓練データ、600…第2生成モデル、602…第2エンコーダ、607…第2デコーダ、609…コネクション、690…第2種訓練データ
DESCRIPTION OF
Claims (11)
光学的に読み取られた注目対象物を表す注目入力画像データを第1生成モデルに入力することによって、前記注目入力画像データに対応する第1注目生成画像データを生成する第1生成工程であって、前記第1生成モデルは、光学的に読み取られた対象物の画像を表す画像データを前記第1生成モデルに入力することによって生成される画像データの画像が前記対象物のコンピュータグラフィックス画像に近づくように訓練された生成モデルである、前記第1生成工程と、
前記第1注目生成画像データを第2生成モデルに入力することによって、不具合の無い注目対象物の画像を表す第2注目生成画像データを生成する第2生成工程であって、前記第2生成モデルは、対象物の画像を表す画像データを前記第2生成モデルに入力することによって不具合の無い対象物の画像を表す画像データを生成するように訓練された生成モデルである、前記第2生成工程と、
前記第1注目生成画像データの画像と前記第2注目生成画像データの画像との間の差分を示す差分画像の差分画像データを生成する第3生成工程と、
を備え、
前記第1生成モデルは、生成ネットワークと識別ネットワークとを有する敵対的生成ネットワークの訓練によって生成された前記生成ネットワークであり、
前記識別ネットワークは、訓練用の入力画像データを前記生成ネットワークに入力することによって生成された画像データの画像である第1画像中の第1部分領域の画像の少なくとも一部を示す第1部分画像を表す第1部分画像データと、訓練用のコンピュータグラフィックス画像である第2画像中の第2部分領域の画像の少なくとも一部を示す第2部分画像を表す第2部分画像データと、を前記識別ネットワークに入力することによって、訓練されている、
画像処理方法。 An image processing method for processing image data, comprising:
A first generation step of generating first generated image data of interest corresponding to the input image data of interest by inputting the input image data of interest representing the optically read object of interest into the first generation model, , the first generation model is such that an image of image data generated by inputting image data representing an optically read image of an object into the first generation model is converted into a computer graphics image of the object. the first generating step, which is a generative model trained to approximate;
A second generation step of generating second generated image data of interest representing an image of an object of interest without defects by inputting the first generated image data of interest to a second generation model, wherein the second generation model is a generative model trained to generate image data representing an image of a defect-free object by inputting image data representing an image of the object into the second generative model; When,
a third generating step of generating difference image data of a difference image indicating a difference between the image of the first generated image data of interest and the image of the second generated image data of interest;
with
wherein the first generative model is the generative network generated by training a generative adversarial network having a generative network and a discriminative network;
The identification network generates a first partial image representing at least part of an image of a first partial area in a first image, which is an image of image data generated by inputting input image data for training to the generation network. and second partial image data representing a second partial image representing at least a part of the image of the second partial area in the second image, which is the computer graphics image for training. are trained by inputting into a discriminative network,
Image processing method.
前記差分画像データの次元削減処理を実行することによって、前記注目入力画像データによって表される前記注目対象物の異常度を算出する算出工程を備える、
画像処理方法。 The image processing method according to claim 1, further comprising:
a calculating step of calculating the degree of abnormality of the object of interest represented by the input image data of interest by executing dimension reduction processing of the difference image data;
Image processing method.
前記第1画像上の前記第1部分領域の位置は、ランダムに決定されており、
前記第2画像上の前記第2部分領域の位置は、ランダムに決定されている、
画像処理方法。 The image processing method according to claim 1 or 2,
The position of the first partial area on the first image is randomly determined,
The position of the second partial area on the second image is randomly determined,
Image processing method.
前記第1画像上の前記第1部分領域の形状は、ランダムに決定されており、
前記第2画像上の前記第2部分領域の形状は、ランダムに決定されている、
画像処理方法。 The image processing method according to any one of claims 1 to 3,
The shape of the first partial area on the first image is randomly determined,
the shape of the second partial area on the second image is randomly determined;
Image processing method.
前記第1画像上の前記第1部分領域の大きさは、ランダムに決定されており、
前記第2画像上の前記第2部分領域の大きさは、ランダムに決定されている、
画像処理方法。 The image processing method according to any one of claims 1 to 4,
The size of the first partial area on the first image is randomly determined,
the size of the second partial region on the second image is randomly determined;
Image processing method.
前記第1画像から取得される前記第1部分画像の数は、ランダムに決定されており、
前記第2画像から取得される前記第2部分画像の数は、ランダムに決定されている、
画像処理方法。 The image processing method according to any one of claims 1 to 5,
the number of the first partial images obtained from the first image is randomly determined;
the number of the second partial images obtained from the second image is randomly determined;
Image processing method.
前記第1部分画像データは、ランダムに決定された角度による画像の回転を含む処理を実行することによって、取得されており、
前記第2部分画像データは、ランダムに決定された角度による画像の回転を含む処理を実行することによって、取得されている、
画像処理方法。 The image processing method according to any one of claims 1 to 6,
the first partial image data is obtained by performing a process that includes rotating an image by a randomly determined angle;
wherein the second partial image data is obtained by performing a process that includes rotating the image by a randomly determined angle;
Image processing method.
前記第1部分画像データは、ランダムに決定されたスケーリング比率による画像のスケーリングを含む処理を実行することによって、取得されており、
前記第2部分画像データは、ランダムに決定されたスケーリング比率による画像のスケーリングを含む処理を実行することによって、取得されている、
画像処理方法。 The image processing method according to any one of claims 1 to 7,
the first partial image data is obtained by performing a process including scaling the image by a randomly determined scaling ratio;
wherein the second partial image data is obtained by performing a process including scaling the image by a randomly determined scaling ratio;
Image processing method.
光学的に読み取られた注目対象物を表す注目入力画像データを第1生成モデルに入力することによって、前記注目入力画像データに対応する第1注目生成画像データを生成する第1生成機能であって、前記第1生成モデルは、光学的に読み取られた対象物の画像を表す画像データを前記第1生成モデルに入力することによって生成される画像データの画像が前記対象物のコンピュータグラフィックス画像に近づくように訓練された生成モデルである、前記第1生成機能と、
前記第1注目生成画像データを第2生成モデルに入力することによって、不具合の無い注目対象物の画像を表す第2注目生成画像データを生成する第2生成機能であって、前記第2生成モデルは、対象物の画像を表す画像データを前記第2生成モデルに入力することによって不具合の無い対象物の画像を表す画像データを生成するように訓練された生成モデルである、前記第2生成機能と、
前記第1注目生成画像データの画像と前記第2注目生成画像データの画像との間の差分を示す差分画像の差分画像データを生成する第3生成機能と、
をコンピュータに実現させ、
前記第1生成モデルは、生成ネットワークと識別ネットワークとを有する敵対的生成ネットワークの訓練によって生成された前記生成ネットワークであり、
前記識別ネットワークは、訓練用の入力画像データを前記生成ネットワークに入力することによって生成された画像データの画像である第1画像中の第1部分領域の画像の少なくとも一部を示す第1部分画像を表す第1部分画像データと、訓練用のコンピュータグラフィックス画像である第2画像中の第2部分領域の画像の少なくとも一部を示す第2部分画像を表す第2部分画像データと、を前記識別ネットワークに入力することによって、訓練されている、
コンピュータプログラム。 A computer program for a computer that processes image data, comprising:
A first generation function for generating first generated image data of interest corresponding to the input image data of interest by inputting the input image data of interest representing an optically read object of interest into a first generation model, , the first generation model is such that an image of image data generated by inputting image data representing an optically read image of an object into the first generation model is converted into a computer graphics image of the object. the first generative function, which is a generative model trained to approximate;
A second generation function for generating second generated image data of interest representing an image of an object of interest without defects by inputting the first generated image data of interest to a second generation model, the second generation function comprising: is a generative model trained to generate image data representing an image of a defect-free object by inputting image data representing an image of the object into the second generative model; When,
a third generation function for generating difference image data of a difference image indicating a difference between the image of the first generated image data of interest and the image of the second generated image data of interest;
is realized on a computer,
wherein the first generative model is the generative network generated by training a generative adversarial network having a generative network and a discriminative network;
The identification network generates a first partial image representing at least part of an image of a first partial area in a first image, which is an image of image data generated by inputting input image data for training to the generation network. and second partial image data representing a second partial image representing at least a part of the image of the second partial area in the second image, which is the computer graphics image for training. is trained by inputting into a discriminative network,
computer program.
光学的に読み取られた注目対象物を表す注目入力画像データを第1生成モデルに入力することによって、前記注目入力画像データに対応する第1注目生成画像データを生成する第1生成部であって、前記第1生成モデルは、光学的に読み取られた対象物の画像を表す画像データを前記第1生成モデルに入力することによって生成される画像データの画像が前記対象物のコンピュータグラフィックス画像に近づくように訓練された生成モデルである、前記第1生成部と、
前記第1注目生成画像データを第2生成モデルに入力することによって、不具合の無い注目対象物の画像を表す第2注目生成画像データを生成する第2生成部であって、前記第2生成モデルは、対象物の画像を表す画像データを前記第2生成モデルに入力することによって不具合の無い対象物の画像を表す画像データを生成するように訓練された生成モデルである、前記第2生成部と、
前記第1注目生成画像データの画像と前記第2注目生成画像データの画像との間の差分を示す差分画像の差分画像データを生成する第3生成部と、
を備え、
前記第1生成モデルは、生成ネットワークと識別ネットワークとを有する敵対的生成ネットワークの訓練によって生成された前記生成ネットワークであり、
前記識別ネットワークは、訓練用の入力画像データを前記生成ネットワークに入力することによって生成された画像データの画像である第1画像中の第1部分領域の画像の少なくとも一部を示す第1部分画像を表す第1部分画像データと、訓練用のコンピュータグラフィックス画像である第2画像中の第2部分領域の画像の少なくとも一部を示す第2部分画像を表す第2部分画像データと、を前記識別ネットワークに入力することによって、訓練されている、
画像処理装置。 An image processing device for processing image data,
A first generating unit that generates first generated image data of interest corresponding to the input image data of interest by inputting the input image data of interest representing an optically read object of interest to a first generation model, , the first generation model is such that an image of image data generated by inputting image data representing an optically read image of an object into the first generation model is converted into a computer graphics image of the object. the first generator, which is a generative model trained to approximate;
A second generation unit for generating second generated image data of interest representing an image of an object of interest without defects by inputting the first generated image data of interest to a second generation model, the second generation unit comprising: is a generative model trained to generate image data representing an image of a defect-free object by inputting image data representing an image of the object into the second generative model; When,
a third generator for generating difference image data of a difference image indicating a difference between the image of the first generated image data of interest and the image of the second generated image data of interest;
with
wherein the first generative model is the generative network generated by training a generative adversarial network having a generative network and a discriminative network;
The identification network generates a first partial image representing at least part of an image of a first partial area in a first image, which is an image of image data generated by inputting input image data for training to the generation network. and second partial image data representing a second partial image representing at least a part of the image of the second partial area in the second image, which is the computer graphics image for training. is trained by inputting into a discriminative network,
Image processing device.
訓練用の入力画像データを生成ネットワークに入力することによって、第1画像の第1画像データを生成する工程と、
前記第1画像中の第1部分領域をランダムに決定する工程と、
前記第1画像中の前記第1部分領域の画像の少なくとも一部を示す第1部分画像を表す第1部分画像データを、前記第1画像データと前記第1部分領域とを使用して取得する工程と、
前記第1部分画像データを識別ネットワークに入力することによって、第1識別データを取得する工程と、
前記入力画像データに対応付けられた第2画像データの第2画像中の第2部分領域をランダムに決定する工程と、
前記第2画像中の前記第2部分領域の画像の少なくとも一部を示す第2部分画像を表す第2部分画像データを、前記第2画像データと前記第2部分領域とを使用して取得する工程と、
前記第2部分画像データを前記識別ネットワークに入力することによって、第2識別データを取得する工程と、
前記第1識別データと前記第2識別データとを使用することによって、前記識別ネットワークのパラメータを調整する工程と、
を備える、訓練方法。 A method of training a generative adversarial network having a generative network and a discriminative network, comprising:
generating first image data for a first image by inputting training input image data into a generation network;
randomly determining a first partial region in the first image;
obtaining first partial image data representing a first partial image showing at least part of an image of the first partial area in the first image using the first image data and the first partial area process and
obtaining first identification data by inputting the first partial image data into an identification network;
randomly determining a second partial region in a second image of the second image data associated with the input image data;
Obtaining second partial image data representing a second partial image showing at least part of an image of the second partial area in the second image using the second image data and the second partial area process and
obtaining second identification data by inputting the second partial image data into the identification network;
adjusting parameters of the identification network by using the first identification data and the second identification data;
A training method comprising:
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021080357A JP2022174516A (en) | 2021-05-11 | 2021-05-11 | Image processing method, computer program, image processing apparatus, and training method |
PCT/JP2022/019287 WO2022239671A1 (en) | 2021-05-11 | 2022-04-28 | Image processing method, computer program, image processing device, and training method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021080357A JP2022174516A (en) | 2021-05-11 | 2021-05-11 | Image processing method, computer program, image processing apparatus, and training method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022174516A true JP2022174516A (en) | 2022-11-24 |
Family
ID=84028334
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021080357A Pending JP2022174516A (en) | 2021-05-11 | 2021-05-11 | Image processing method, computer program, image processing apparatus, and training method |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2022174516A (en) |
WO (1) | WO2022239671A1 (en) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170032285A1 (en) * | 2014-04-09 | 2017-02-02 | Entrupy Inc. | Authenticating physical objects using machine learning from microscopic variations |
JP7498421B2 (en) * | 2019-05-15 | 2024-06-12 | ブラザー工業株式会社 | Machine learning model training method, data generation device, and trained machine learning model |
JP7423905B2 (en) * | 2019-05-15 | 2024-01-30 | ブラザー工業株式会社 | Machine learning model training method, data generation device, and trained machine learning model |
JP7372591B2 (en) * | 2019-08-08 | 2023-11-01 | ブラザー工業株式会社 | Image processing device and trained machine learning model |
-
2021
- 2021-05-11 JP JP2021080357A patent/JP2022174516A/en active Pending
-
2022
- 2022-04-28 WO PCT/JP2022/019287 patent/WO2022239671A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2022239671A1 (en) | 2022-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111401372B (en) | Method for extracting and identifying image-text information of scanned document | |
WO2023077404A1 (en) | Defect detection method, apparatus and system | |
JP2019091249A (en) | Defect inspection device, defect inspecting method, and program thereof | |
CN113920107A (en) | Insulator damage detection method based on improved yolov5 algorithm | |
Christlein et al. | A study on features for the detection of copy-move forgeries | |
CN112132196B (en) | Cigarette case defect identification method combining deep learning and image processing | |
CN112037219A (en) | Metal surface defect detection method based on two-stage convolution neural network | |
US12124534B2 (en) | Method for generating a plurality of sets of training image data for training machine learning model | |
Mazumdar et al. | Universal image manipulation detection using deep siamese convolutional neural network | |
CN115761380A (en) | Printed cloth flaw classification method based on channel-by-channel feature fusion | |
KR20230127933A (en) | Method and system of detecting defect | |
CN114445410A (en) | Circuit board detection method based on image recognition, computer and readable storage medium | |
US20230281797A1 (en) | Defect discrimination apparatus for printed images and defect discrimination method | |
CN116342536A (en) | Aluminum strip surface defect detection method, system and equipment based on lightweight model | |
CN114399505B (en) | Detection method and detection device in industrial detection | |
US11625886B2 (en) | Storage medium storing program, training method of machine learning model, and image generating apparatus | |
WO2022239671A1 (en) | Image processing method, computer program, image processing device, and training method | |
CN113076916A (en) | Dynamic facial expression recognition method and system based on geometric feature weighted fusion | |
US20220172453A1 (en) | Information processing system for determining inspection settings for object based on identification information thereof | |
CN115861259A (en) | Lead frame surface defect detection method and device based on template matching | |
CN115457015A (en) | Image no-reference quality evaluation method and device based on visual interactive perception double-flow network | |
JP2022156761A (en) | Data processing device, data processing method, and computer program | |
CN108038516B (en) | White blank cloth flatness grading method based on low-dimensional image coding and ensemble learning | |
WO2023013546A1 (en) | Computer program, generation device, and generation method | |
JP2023023777A (en) | Computer program, generation device, and generation method |