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

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

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

特開2024-157684生成プログラム、生成方法、および、生成装置
<>
  • 特開-生成プログラム、生成方法、および、生成装置 図1
  • 特開-生成プログラム、生成方法、および、生成装置 図2
  • 特開-生成プログラム、生成方法、および、生成装置 図3
  • 特開-生成プログラム、生成方法、および、生成装置 図4
  • 特開-生成プログラム、生成方法、および、生成装置 図5
  • 特開-生成プログラム、生成方法、および、生成装置 図6
  • 特開-生成プログラム、生成方法、および、生成装置 図7
  • 特開-生成プログラム、生成方法、および、生成装置 図8
  • 特開-生成プログラム、生成方法、および、生成装置 図9
  • 特開-生成プログラム、生成方法、および、生成装置 図10
  • 特開-生成プログラム、生成方法、および、生成装置 図11
  • 特開-生成プログラム、生成方法、および、生成装置 図12
  • 特開-生成プログラム、生成方法、および、生成装置 図13
  • 特開-生成プログラム、生成方法、および、生成装置 図14
  • 特開-生成プログラム、生成方法、および、生成装置 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024157684
(43)【公開日】2024-11-08
(54)【発明の名称】生成プログラム、生成方法、および、生成装置
(51)【国際特許分類】
   G06T 7/00 20170101AFI20241031BHJP
   G06T 5/77 20240101ALI20241031BHJP
   G06T 1/00 20060101ALI20241031BHJP
【FI】
G06T7/00 350B
G06T5/00 720
G06T1/00 500A
【審査請求】未請求
【請求項の数】13
【出願形態】OL
(21)【出願番号】P 2023072179
(22)【出願日】2023-04-26
(71)【出願人】
【識別番号】000005267
【氏名又は名称】ブラザー工業株式会社
(74)【代理人】
【識別番号】110001058
【氏名又は名称】鳳国際弁理士法人
(72)【発明者】
【氏名】尾野藤 祥司
【テーマコード(参考)】
5B057
5L096
【Fターム(参考)】
5B057AA11
5B057BA02
5B057CA08
5B057CA12
5B057CA16
5B057CB08
5B057CB12
5B057CB16
5B057CC01
5B057CE04
5L096AA06
5L096BA03
5L096CA02
5L096DA01
5L096FA32
5L096FA33
5L096FA67
5L096FA69
5L096GA08
5L096HA11
5L096KA04
5L096MA03
(57)【要約】
【課題】ブラーを有する画像を処理する機械学習モデルの訓練に適する訓練画像を生成する。
【解決手段】
対象物の静止画像データを取得する。対象物の搬送時における搬送速度と、搬送中の対象物を撮影するための撮像装置の露光時間と、撮像装置の分解能と、から選択される1以上のパラメータを含む入力パラメータセットの入力を受け付ける。静止画像データを使用して生成処理を実行することによって訓練画像データを生成する。生成処理は、入力パラメータセットを使用するブラーの追加処理であるブラー処理を含む。
【選択図】 図5
【特許請求の範囲】
【請求項1】
機械学習モデルの訓練データの生成プログラムであって、
対象物の静止画像データを取得する取得機能と、
前記対象物の搬送時における搬送速度と、搬送中の対象物を撮影するための撮像装置の露光時間と、前記撮像装置の分解能と、から選択される1以上のパラメータを含む入力パラメータセットの入力を受け付ける受付機能と、
前記静止画像データを使用して生成処理を実行することによって訓練画像データを生成する生成機能であって、前記生成処理は、前記入力パラメータセットを使用するブラーの追加処理であるブラー処理を含む、前記生成機能と、
をコンピュータに実現させる生成プログラム。
【請求項2】
請求項1に記載の生成プログラムであって、
前記入力パラメータセットは、さらに、前記対象物に対する搬送方向を含み、
前記ブラー処理は、前記対象物に対する前記搬送方向に平行な方向である基準方向のブラーの追加処理を含む、
生成プログラム。
【請求項3】
請求項1に記載の生成プログラムであって、
前記対象物は、製品に対して配置された状態で前記製品とともに搬送され、
前記入力パラメータセットは、前記製品に対する搬送方向と、前記製品に対する前記対象物の向きと、を含み、
前記ブラー処理は、前記製品に対する前記搬送方向と、前記製品に対する前記対象物の前記向きと、の組み合わせに対応付けられる前記対象物に対する搬送方向に平行な方向である基準方向のブラーの追加処理を含む、
生成プログラム。
【請求項4】
請求項2または3に記載の生成プログラムであって、さらに、
前記静止画像データを使用して第1追加生成処理を実行することによって追加の訓練画像データを生成する第1追加生成機能を、コンピュータに実現させ
前記第1追加生成処理は、前記基準方向を90度、180度、270度のいずれかの角度で回転して得られるN個(Nは1以上、3以下の整数)の方向のブラーのN個の追加処理を含み、
前記第1追加生成機能は、前記N個の方向にそれぞれ対応付けられるN種類の追加の訓練画像データをそれぞれ生成する、
生成プログラム。
【請求項5】
請求項4に記載の生成プログラムであって、
前記対象物は、織物であり、
前記Nは1であり、
前記N個(N=1)の方向は、前記基準方向を180度の角度で回転して得られる方向である、
生成プログラム。
【請求項6】
請求項2または3に記載の生成プログラムであって、
前記ブラー処理は、前記基準方向に垂直な方向のブラーの追加処理を含み、
前記基準方向のブラー量は、前記垂直な方向のブラー量よりも、大きい、
生成プログラム。
【請求項7】
請求項2または3に記載の生成プログラムであって、さらに、
前記静止画像データを使用して第2追加生成処理を実行することによって追加の訓練画像データを生成する第2追加生成機能を、コンピュータに実現させ、
前記第2追加生成処理は、前記基準方向との90度未満の差違を有するM個(Mは2以上の整数)の方向のブラーのM個の追加処理を含み、
前記第2追加生成機能は、前記M個の方向にそれぞれ対応付けられるM種類の追加の訓練画像データをそれぞれ生成する、
生成プログラム。
【請求項8】
請求項1から3のいずれかに記載の生成プログラムであって、
前記機械学習モデルは、前記対象物の欠陥検査に使用され、
前記生成処理は、前記対象物の画像の一部分に欠陥の画像を追加する欠陥追加処理を含み、
前記ブラー処理は、前記欠陥追加処理によって前記欠陥の前記画像が追加された画像に対して実行され、
前記生成機能は、欠陥を有する対象物のぼやけた画像を表す前記訓練画像データを生成する、
生成プログラム。
【請求項9】
請求項8に記載の生成プログラムであって、
前記機械学習モデルは、欠陥を有する対象物のぼやけた画像から、欠陥の無い同じ対象物のぼやけた画像を生成するモデルであり、
前記生成プログラムは、さらに、
前記静止画像データを使用して対応生成処理を実行することによって、前記訓練画像データに対応付けられる対応訓練画像データを生成する対応生成機能を、コンピュータに実現させ、前記対応生成処理は、前記欠陥追加処理を含まずに、前記生成処理に含まれる前記ブラー処理と同じブラー処理を含み、前記対応訓練画像データは、欠陥の無い対応対象物のぼやけた画像を表し、前記対応対象物は、前記訓練画像データによって表される前記対象物と同じ対象物である、
生成プログラム。
【請求項10】
請求項1から3のいずれかに記載の生成プログラムであって、
前記訓練画像データは、前記搬送中の対象物の撮影画像であってモーションブラーを有する前記撮影画像を模した画像を表す、
生成プログラム。
【請求項11】
請求項1から3のいずれかに記載の生成プログラムであって、
前記ブラー処理は、前記搬送速度と前記露光時間と前記分解能とのうち前記入力パラメータセットに含まれる前記1以上のパラメータを使用してブラー量を決定する処理を含む、
生成プログラム。
【請求項12】
機械学習モデルの訓練データの生成方法であって、
対象物の静止画像データを取得する取得工程と、
前記対象物の搬送時における搬送速度と、搬送中の対象物を撮影するための撮像装置の露光時間と、前記撮像装置の分解能と、から選択される1以上のパラメータを含む入力パラメータセットの入力を受け付ける受付工程と、
前記静止画像データを使用して生成処理を実行することによって訓練画像データを生成する生成工程であって、前記生成処理は、前記入力パラメータセットを使用するブラーの追加処理であるブラー処理を含む、前記生成工程と、
を備える、生成方法
【請求項13】
機械学習モデルの訓練データの生成装置であって、
対象物の静止画像データを取得する取得部と、
前記対象物の搬送時における搬送速度と、搬送中の対象物を撮影するための撮像装置の露光時間と、前記撮像装置の分解能と、から選択される1以上のパラメータを含む入力パラメータセットの入力を受け付ける受付部と、
前記静止画像データを使用して生成処理を実行することによって訓練画像データを生成する生成部であって、前記生成処理は、前記入力パラメータセットを使用するブラーの追加処理であるブラー処理を含む、前記生成部と、
を備える、生成装置
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、訓練画像データを生成する技術に関する。
【背景技術】
【0002】
ラベルシートなどの対象物の外観の検査に、種々の機械学習モデルが使用され得る。特許文献1に開示の技術では、不具合を有するラベルシートを表す画像データから、不具合の無いラベルシートを表す画像データを生成するように、オートエンコーダが訓練される。訓練済のオートエンコーダに、注目ラベルシートを表す画像が入力される。オートエンコーダに入力される画像とオートエンコーダによって生成される画像との間の差分画像は、注目ラベルシートの不具合の度合いの算出に使用される。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2022-174516号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、対象物の撮影画像は、種々の原因に起因するブラーを有し得る。例えば、デジタルカメラなどの撮像装置と、対象物と、の間の相対的な動きに起因して、撮影画像にブラーが生じ得る。ところが、機械学習モデルは、ブラーを有する画像を適切に処理できない場合があった。
【0005】
本明細書は、ブラーを有する画像を処理する機械学習モデルの訓練に適する訓練画像を生成する技術を開示する。
【課題を解決するための手段】
【0006】
本明細書に開示された技術は、以下の適用例として実現することが可能である。
【0007】
[適用例1]機械学習モデルの訓練データの生成プログラムであって、対象物の静止画像データを取得する取得機能と、前記対象物の搬送時における搬送速度と、搬送中の対象物を撮影するための撮像装置の露光時間と、前記撮像装置の分解能と、から選択される1以上のパラメータを含む入力パラメータセットの入力を受け付ける受付機能と、前記静止画像データを使用して生成処理を実行することによって訓練画像データを生成する生成機能であって、前記生成処理は、前記入力パラメータセットを使用するブラーの追加処理であるブラー処理を含む、前記生成機能と、をコンピュータに実現させる生成プログラム。
【0008】
この構成によれば、生成処理は、搬送速度と露光時間と分解能とから選択される1以上のパラメータを含む入力パラメータセットを使用するブラーの追加処理であるブラー処理を含むので、搬送速度と露光時間と分解能とから選択される1以上のパラメータに関連するブラーを有する画像を処理する機械学習モデルの訓練に適する訓練画像データを生成できる。
【0009】
なお、本明細書に開示の技術は、種々の態様で実現することが可能であり、例えば、訓練画像データの生成方法および生成装置、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体(例えば、一時的ではない記録媒体)、等の形態で実現することができる。
【図面の簡単な説明】
【0010】
図1】一実施例としてのデータ処理装置を示す説明図である。
図2】デジタルカメラ110と複合機900とベルト190との斜視図である。
図3】(A)は、ラベルシートの例を示す概略図である。(B)は、基準画像I10の例を示す概略図である。(C)、(D)は、パラメータの例を示す図である。
図4】画像生成モデル300の例を示すブロック図である。
図5】訓練画像データの生成処理の例を示すフローチャートである。
図6】(A)、(B)は、ブラーフィルタの例を示す図である。
図7】(A)-(D)は、中間画像データの例を示す図である。
図8】(A)-(D)は、訓練画像データの例を示す図である。
図9】訓練処理の例を示すフローチャートである。
図10】(A)、(B)は、訓練画像データ生成処理の別の実施例のフローチャートの一部である。
図11】第2種訓練画像データの例を示す図である。
図12】訓練画像データ生成処理の別の実施例のフローチャートの一部である。
図13】(A)、(B)は、訓練画像データの例を示す図である。
図14】(A)、(B)は、搬送方向Dtを取得する処理の別の実施例を示す図である。
図15】(A)、(B)は、対象物の別の例を示す図である。
【発明を実施するための形態】
【0011】
A.第1実施例:
A1.装置構成:
図1は、一実施例としてのデータ処理装置を示す説明図である。データ処理装置200は、例えば、パーソナルコンピュータである。データ処理装置200は、対象物(例えば、複合機などの製品に設けられたラベルシート)の外観の検査のための種々のデータ処理を行う。以下、複合機900に設けられたラベルシート800の外観が検査されることとする。
【0012】
データ処理装置200は、プロセッサ210と、記憶装置215と、表示部240と、操作部250と、通信インタフェース270と、を備えている。これらの要素は、バスを介して互いに接続されている。記憶装置215は、揮発性記憶装置220と、不揮発性記憶装置230と、を含んでいる。
【0013】
プロセッサ210は、データ処理を行うように構成された装置であり、例えば、Central Processing Unit(CPU)、または、System on a chip(SoC)である。揮発性記憶装置220は、例えば、DRAMであり、不揮発性記憶装置230は、例えば、フラッシュメモリである。不揮発性記憶装置230は、生成プログラム231と、訓練プログラム232と、検査プログラム233と、基準画像データI10dと、画像生成モデル300と、のそれぞれのデータを格納している。本実施例では、画像生成モデル300は、機械学習モデルを形成するプログラムモジュールである。プログラム231-233と、基準画像データI10dと、画像生成モデル300との詳細については、後述する。
【0014】
表示部240は、液晶ディスプレイ、有機ELディスプレイなどの、画像を表示するように構成された装置である。操作部250は、ボタン、レバー、表示部240上に重ねて配置されたタッチパネルなどの、ユーザによる操作を受け取るように構成された装置である。表示部240と操作部250とは、いわゆるタッチスクリーンを形成してよい。ユーザは、操作部250を操作することによって、種々の要求と指示とをデータ処理装置200に入力可能である。通信インタフェース270は、他の装置と通信するためのインタフェースである(例えば、USBインタフェース、有線LANインタフェース、IEEE802.11の無線インタフェース)。通信インタフェース270には、デジタルカメラ110が接続される。デジタルカメラ110は、ラベルシート800の撮影に使用される。
【0015】
図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を撮影するように、配置される。
【0016】
A2.ラベルシート:
図3(A)は、ラベルシートの例を示す概略図である。本実施例では、ラベルシート800は、矩形状のシートである。ラベルシート800は、種々のオブジェクトを表し得る(例えば、ロゴタイプ、マーク、説明文、等)。
【0017】
図3(B)は、基準画像データI10dによって表される基準画像I10の例を示す概略図である。基準画像は、欠陥の無い対象物(本実施例では、ラベルシート800)の画像である。基準画像I10は、第1方向Dxに平行な2辺と、第1方向Dxに垂直な第2方向Dyに平行な2辺と、を有する矩形状の画像である。基準画像I10内で、ラベルシート800は、傾かないように、配置されている。すなわち、基準画像I10内で、ラベルシート800の輪郭のうち、上辺800Uと下辺800Dとは、第1方向Dxと平行であり、左辺800Lと右辺800Rとは、第2方向Dyと平行である。
【0018】
本実施例では、ラベルシート800は、ラベルシート800の画像をシートに印刷することによって、製造される。基準画像I10は、印刷すべきラベルシート800の画像である対象物画像800iを表している。ラベルシート800の製造では、対象物画像800iを表す版下データを使用して、対象物画像800iがシート上に印刷される。基準画像データI10dとしては、版下データが採用されてよい。本実施例では、基準画像データI10dは、画素毎のR(赤)、G(緑)、B(青)のそれぞれの色成分を表すカラーのビットマップデータである。なお、基準画像データI10dのデータ形式は、他の種々の形式であってよい。
【0019】
A3.画像生成モデル300:
図4は、画像生成モデル300の例を示すブロック図である。入力画像データI1dは、画像生成モデル300に入力される画像データである。生成画像データI2dは、画像生成モデル300によって生成される画像データである。画像データI1d、I2dは、それぞれ、ビットマップデータである。画像データI1d、I2dの画像I1、I2は、それぞれ、第1方向Dxに平行な2辺と、第1方向Dxに垂直な第2方向Dyに平行な2辺と、を有する矩形状の画像である。第1方向Dxの画素数と、第2方向Dyの画素数とは、それぞれ、予め決められており、画像データI1d、I2dに共通である。画像データI1d、I2dは、複数の画素のそれぞれのR、G、Bの色値を表している。なお、画像データI1d、I2dの画像I1、I2の各画素の色は、R、G、Bの3色成分に限らず、他の任意の色成分で表されてよい(例えば、輝度値)。基準画像データI10d(図3(B))は、画像データI1d、I2dの色成分と同じ色成分を表すことが好ましい。
【0020】
画像生成モデル300には、デジタルカメラ110(図2)によって撮影されたラベルシート800の撮影画像を表す画像データが、入力される。入力画像データI1dの入力画像I1は、ラベルシート800の撮影画像である。本実施例では、複合機900(ひいては、ラベルシート800)の搬送中に、ラベルシート800が撮影される。すなわち、デジタルカメラ110に対してラベルシート800が移動する状態で、ラベルシート800が撮影される。従って、入力画像I1は、搬送方向に沿ってぼやけたラベルシート800を表している(このようなぼやけは、モーションブラーとも呼ばれる)。
【0021】
ラベルシート800は、欠陥を含み得る。図4のラベルシート800は、欠陥801(ここでは、線状の傷)を含んでいる。画像生成モデル300は、入力画像I1のデータI1dから、欠陥801の無い同じラベルシート800を表す生成画像I2のデータI2dを生成するように、訓練される。生成画像I2内のラベルシート800の位置と大きさとは、入力画像I1内のラベルシート800の位置と大きさと、それぞれ同じである。なお、生成画像I2は、入力画像I1と同様に、モーションブラーを有している。
【0022】
差分画像I3は、入力画像I1と生成画像I2との間の差分を表している。差分画像I3の各画素は、2枚の画像I1、I2の間の対応する画素の色値の差を示している。差分画像I3の複数の画素のうち、欠陥801に対応する複数の画素は、大きな差を示し得る。残りの複数の画素は、小さな差(例えば、ゼロに近い値)を示し得る。本実施例では、差分画像I3は、ラベルシート800の欠陥検査に使用される。
【0023】
画像生成モデル300は、欠陥を有するラベルシート800のぼやけた画像から、欠陥の無い同じラベルシート800のぼやけた画像を生成する種々のモデルであってよい。本実施例では、画像生成モデル300は、いわゆる変分オートエンコーダ(Variational auto-encoder : VAE)である。画像生成モデル300は、エンコーダ302とデコーダ307とを有している。エンコーダ302は、入力画像データI1dに対して次元削減処理を実行して、入力画像I1の特徴を示す潜在データ305を生成する。デコーダ307は、潜在データ305に対して次元復元処理を実行して、生成画像データI2dを生成する。エンコーダ302とデコーダ307とのそれぞれの構成は、種々の構成であってよい。例えば、エンコーダ302は、入力画像データI1dを使用して平均と標準偏差とを算出する1以上の全結合層と、平均と標準偏差とを使用して潜在データ305を生成する層と、を有してよい。潜在データ305の生成では、いわゆる「Reparameterization trick」によって、ノイズが導入されてよい。そして、デコーダ307は、潜在データ305を使用して生成画像データI2dを算出する1以上の全結合層を有してよい。潜在データ305の次元数は、画像データI1d、I2dの次元数よりも小さい種々の値であってよい。平均と標準偏差は、潜在データ305の要素毎に算出されてよい。
【0024】
A4.訓練画像データ生成処理:
図5は、画像生成モデル300の訓練に使用される訓練画像データの生成処理の例を示すフローチャートである。本実施例では、プロセッサ210(図1)は、基準画像データI10d(図3(B))を使用して、撮影画像に類似する画像(ここでは、図4の入力画像I1のようにモーションブラーを有する画像)を表す複数の訓練画像データを生成する。本実施例では、プロセッサ210は、ラベルシート800(図2)に対する搬送方向が変更され得ることを考慮し、種々の角度で基準画像I10を回転させることによって、複数の訓練画像データを生成する。プロセッサ210は、生成プログラム231に従って、図5の処理を実行する。
【0025】
S110では、プロセッサ210は、不揮発性記憶装置230から基準画像データI10dを取得する。図3(B)に示すように、基準画像データI10dは、動かずに静止した状態のラベルシート800の画像を表している。基準画像I10は、ラベルシート800の静止画像の例である。
【0026】
S120では、プロセッサ210は、パラメータセットの入力を受け付ける(入力されるパラメータセットを、入力パラメータセットとも呼ぶ)。パラメータセットは、後述するブラー量の決定に使用される。本実施例では、作業者は、操作部250(図1)を操作することによって、パラメータセットを入力する。プロセッサ210は、入力されたパラメータセットを、操作部250からの情報を参照して取得する。
【0027】
図3(C)、図3(D)は、パラメータの例を示す図である。本実施例では、パラメータセットは、搬送速度Vと、露光時間TMと、画素分解能RS(単に、分解能RSとも呼ぶ)と、搬送方向Dtと、を含んでいる。図3(C)は、パラメータV、TM、RSを示している。搬送速度Vは、ラベルシート800(図2)の撮影時における、デジタルカメラ110に対するラベルシート800の移動速度である(単位は、例えば、mm/sec)。搬送速度Vは、ベルト190の移動速度が速いほど、速い。本実施例では、ベルト190の移動速度、すなわち、搬送速度Vは、一定であることとする。露光時間TMは、ラベルシート800の撮影のためのデジタルカメラ110の露光時間である(単位は、例えば、sec)。露光時間TMは、デジタルカメラ110のシャッタースピードが遅いほど、長い。画素分解能RSは、撮影画像の1画素当たりの対象物の長さである(単位は、例えば、mm/画素)。画素分解能RSは、デジタルカメラ110とラベルシート800との間の距離を短くすることによって、増大し得る。また、画素分解能RSは、デジタルカメラ110の画角を増大することによって、増大し得る。
【0028】
これらのパラメータV、TM、RSは、ラベルシート800の撮影のための条件に従って、決定される。本実施例では、撮影のための条件は、ベルト190の移動速度と、デジタルカメラ110の動作設定(シャッタースピード、画角、など)と、ラベルシート800とデジタルカメラ110との間の撮影時の距離と、を含んでいる。本実施例では、パラメータV、TM、RSは、予め決められている。作業者は、パラメータV、TM、RSのそれぞれの値を、操作部250を介して入力する。
【0029】
図3(D)は、搬送方向Dtの候補である候補方向D10a-D10dを示している。本実施例では、複数の候補方向D10a-D10dは、ラベルシート800の基準線800mに基づいて、決定される。本実施例では、ラベルシート800のうちの予め選択された部分が、基準線800mとして使用される。ここで、ラベルシート800の上辺800Uが、基準線800mであることとする。第1候補方向D10aは、ラベルシート800の中心から基準線800mへ向かう方向である。本実施例では、第1候補方向D10aは、第2方向Dyの反対方向である。以下、第2方向Dyを、+Dy方向とも呼び、+Dy方向の反対方向を、-Dy方向とも呼ぶ。他の方向についても、同様である。注目方向の符号の先頭に「+」を追加した符号は、注目方向と同じ方向を示し、注目方向の符号の先頭に「-」を追加した符号は、注目方向の反対方向を示している。例えば、+Dx方向は、第1方向Dxと同じ方向を示し、-Dx方向は、第1方向Dxの反対方向を示している。
【0030】
他の候補方向D10b-D10dは、第1候補方向D10aを90度ずつ時計回り方向に回転させることによって、得られる。
【0031】
作業者は、これらの候補方向D10a-D10dから1つの候補方向を選択し、選択した候補方向を示す情報を、操作部250を介して入力する。プロセッサ210は、入力された候補方向を、搬送方向Dtとして使用する。ここで、候補方向D10bが選択されることとする。
【0032】
なお、ラベルシート800の撮影のための条件は、変更され得る。パラメータV、TM、RSのそれぞれの値は、撮影のための条件の変更によって、変更され得る。また、搬送方向Dtも、変更され得る。例えば、複合機900(図2)のうち、ベルト190の上面191上に載せられる部分は、底面909から側面908に変更され得る。この場合、搬送方向Dt(図3(D))は、第2候補方向D10bから第3候補方向D10cへ、変更される。S120(図5)では、作業者は、最新の条件に対応付けられるパラメータV、TM、RS、Dtを入力する。
【0033】
S130では、プロセッサ210は、ラベルシート800に対するブラー基準方向Dsを決定する。ブラー基準方向Dsは、後述するS200で追加されるモーションブラーの基準方向である。プロセッサ210は、ブラー基準方向Dsを、搬送方向Dtの反対方向に決定する。
【0034】
S140では、プロセッサ210は、ブラー量を決定する。ブラー量は、後述するS200で追加されるブラーの量である。図6(A)、図6(B)は、ブラーを追加するためのフィルタ(ブラーフィルタと呼ぶ)の例を示す図である。方向Db1は、ブラーの方向である(ブラー方向Db1とも呼ぶ)。ブラー方向Db1は、ブラー基準方向Ds(S130(図5))に設定され得る。方向Db2は、ブラー方向Db1に垂直な方向である(垂直方向Db2とも呼ぶ)。
【0035】
本実施例では、図6(A)の第1ブラーフィルタBFaが使用される(単に、第1フィルタBFaとも呼ぶ)。第1フィルタBFaは、注目画素PXiの色値の決定に使用される複数の画素PXのそれぞれの重みを示している(このようなフィルタは、カーネル、畳込マトリクス、または、マスク、とも呼ばれる)。第1値B1は、第1フィルタBFaのブラー方向Db1のサイズである(単位は、画素数)。第2値B2は、第1フィルタBFaの垂直方向Db2のサイズである(単位は、画素数)。注目画素PXiは、第1フィルタBFaのうち、-Db1方向の端、かつ、垂直方向Db2の中心に、位置している。第1フィルタBF1は、注目画素PXiからブラー方向Db1に延びるように、構成されている。
【0036】
注目画素PXiの色値は、第1フィルタBFaによって示される複数の画素PXの複数の色値の重み付き平均値に、設定される(色値の算出は、色成分毎に行われる)。本実施例では、各画素PXの重みは、均等である。これに代えて、画素PXの位置に応じて重みが異なってよい(例えば、注目画素PXiに近いほど、重みが大きくてよい)。
【0037】
第1フィルタBFaの第1値B1が大きいほど、第1フィルタBFaによって追加されるブラー方向Db1のブラー量は大きい。第1値B1は、ブラー方向Db1のブラー量を示している(第1値B1を、第1ブラー量B1とも呼ぶ)。同様に、第2値B2が大きいほど、第1フィルタBFaによって追加される垂直方向Db2のブラー量は大きい。第2値B2は、垂直方向Db2のブラー量を示している(第2値B2を、第2ブラー量B2とも呼ぶ)。
【0038】
図3(C)には、ブラー量B1、B2の算出式の例が示されている。プロセッサ210は、第1ブラー量B1を、「V*TM/RS」に第1係数k1を乗じることによって算出する(「*」は乗算記号)。「V*TM/RS」は、ラベルシート800(図2)が搬送方向Dtに一定の速度で移動する場合の、撮影画像上のラベルシート800の露光時間TM内の移動量を示している(単位は、画素数)。「V*TM/RS」は、理論的なモーションブラーの量を示している。現実には、撮影画像上のラベルシート800は、理論的なブラー量よりも大きくぼやけ得る。そこで、本実施例では、1以上の第1係数k1を「V*TM/RS」に乗じることによって、第1ブラー量B1が算出される。第1係数k1は、第1フィルタBFaによって追加されるブラーの量が、現実の撮影画像のモーションブラーの量と同程度であるように、予め実験的に決定される。このように、第1フィルタBFaは、ブラー方向Db1のモーションブラーを画像に追加するように、構成されている。
【0039】
プロセッサ210は、第2ブラー量B2を、第1ブラー量B1に第2係数k2を乗じることによって算出する。ラベルシート800(図2)が搬送方向Dtへ移動する場合、理論的には、垂直方向Db2のブラー量はゼロである。現実には、搬送中の複合機900(ひいては、ラベルシート800)の振動などにより、撮影画像上のラベルシート800は、垂直方向Db2にぼやけ得る。そこで、本実施例では、ゼロより大きい第2係数k2を第1ブラー量B1に乗じることによって、第2ブラー量B2が算出される。通常は、垂直方向Db2のブラー量は、ブラー方向Db1のブラー量よりも小さい。そこで、第2係数k2は、1未満の値に、設定される。第2係数k2は、第1フィルタBFaによるブラーが、現実の撮影画像のブラーと同程度であるように、予め実験的に決定される。
【0040】
なお、本実施例では、ブラー量B1、B2は、画素数を示している。プロセッサ210は、整数に丸められた値を、ブラー量B1、B2として採用してよい。
【0041】
S150-S190(図5)では、プロセッサ210は、基準画像データI10dを使用して中間画像データを取得し、中間画像データを記憶装置215(ここでは、不揮発性記憶装置230)に格納する。中間画像データは、第1ブラーフィルタBFaによるブラーの追加の対象の画像データである。図7(A)-図7(D)は、中間画像データの例を示す図である。本実施例では、プロセッサ210は、基準画像データI10dに、第1角度Rによる回転と、第2角度Rfによる回転とを行うことによって、中間画像データを生成する(角度R、Rfは、時計回り方向の回転角度を示すこととする)。以下、画像を表す符号の末尾に「d」を追加して得られる符号は、その画像を表すデータを示すこととする。例えば、基準画像I10は、画像データI10dによって表される。
【0042】
第1角度Rは、0、90、180、270(単位は度)から選択される。図7(A)-図7(D)は、それぞれ、R=0、90、180、270に対応している。図2で説明したように、複合機900のうち、ベルト190の上面191上に載せられる部分は、底面909から他の面(例えば、側面908)に変更され得る。この変更によって、ラベルシート800(図3(D)))に対する搬送方向Dtは、変化し得る。搬送方向Dtは、例えば、90度刻みで変化し得る。第1角度Rは、このような搬送方向Dtの変化に対応している。
【0043】
第2角度Rfは、搬送方向Dtに対するラベルシート800の小さい傾きに対応している。第2角度Rfは、90度よりも小さい角度に設定される。本実施例では、第2角度Rfは、-10度から+10度まで1度刻みで変化する。図7(A)-図7(D)のそれぞれには、左から順番に、Rf=0、正、負の3種類の中間画像の例が示されている。
【0044】
図5のS150-S190では、プロセッサ210は、第1角度Rと第2角度Rfとの全ての組み合わせのそれぞれの中間画像データを生成する。最初のS150では、第1角度Rと第2角度Rfとは、ゼロに設定される。プロセッサ210は、R=Rf=0に対応付けられる基準画像データI10d(図7(A))を、中間画像データとして記憶装置215に格納する。図7(A)には、方向Ds、Ds0が示されている。方向Dsは、S130で決定されるブラー基準方向Dsであり、搬送方向Dtの反対方向である。方向Ds0は、R=Rf=0の場合のブラー基準方向Dsを示している(対象方向Ds0と呼ぶ)。本実施例では、対象方向Ds0は、-Dx方向である。
【0045】
S160では、プロセッサ210は、第2角度Rfの回転が必要か否かを判断する。現行の第1角度Rに対応付けられる未処理の第2角度Rfが残っている場合、判断結果はYesである。この場合、S170で、プロセッサ210は、第2角度Rfを未処理の角度に設定し、基準画像データI10dの回転によって中間画像データを生成する(回転の角度は、R+Rf)。図7(A)の画像I11、I12に示すように、プロセッサ210は、Rf=0の画像I10内において、ラベルシート800を第2角度Rf回転させることによって、中間画像I11、I12のデータI11d、I12dを生成する。図示するように、ラベルシート800とともにブラー基準方向Dsも回転する。対象方向Ds0は、変化しない。
【0046】
S170(図5)の後、S150で、プロセッサ210は、生成した中間画像データを不揮発性記憶装置230に格納する。プロセッサ210は、現行の第1角度Rに対応する全ての第2角度Rfが処理されるまで、S170とS150とを繰り返す。
【0047】
現行の第1角度Rに対応する全ての第2角度Rfが処理済である場合(S160:No)、S180で、プロセッサ210は、第1角度Rの回転が必要か否かを判断する。未処理の第1角度Rが残っている場合、判断結果はYesである。この場合、S190で、プロセッサ210は、第1角度Rを未処理の角度に設定し、基準画像データI10dの回転によって中間画像データを生成する。ここで、第2角度Rfはゼロに設定されることとする。この場合、回転の角度は、Rである。
【0048】
図7(B)-図7(D)の画像I20、I30、I40は、S190で生成される画像を示している(ここで、Rf=0)。図示するように、プロセッサ210は、基準画像I10の全体を回転することによって、中間画像I20、I30、I40のデータI20d、I30d、I40dを生成する。これに代えて、プロセッサ210は、基準画像I10内において、ラベルシート800を回転させることによって、中間画像I20、I30、I40のデータI20d、I30d、I40dを生成してよい。この場合、基準画像I10の第1方向Dxの長さと第2方向Dyの長さとは、画像I10、I20、I30、I40からラベルシート800がはみ出ないように、十分に大きい長さに設定されることが好ましい。
【0049】
S190の後、S150で、プロセッサ210は、生成した中間画像データを不揮発性記憶装置230に格納する。そして、プロセッサ210は、S170とS190とを繰り返すことによって、第1角度Rと第2角度Rfとの全ての組み合わせの中間画像データを生成する。図7(B)の画像I21、I22は、Rf=0の画像I20内において、ラベルシート800を第2角度Rf回転させることによって、生成される。図7(C)の画像I31、I32は、Rf=0の画像I30内において、ラベルシート800を第2角度Rf回転させることによって、生成される。図7(D)の画像I41、I42は、Rf=0の画像I40内において、ラベルシート800を第2角度Rf回転させることによって、生成される。
【0050】
第1角度Rと第2角度Rfとの全ての組み合わせの中間画像データが生成済である場合(図5:S180:No)、S200で、プロセッサ210は、複数の中間画像データのそれぞれにブラーを追加することによって、複数の訓練画像データを生成する。
【0051】
図8(A)-図8(D)は、訓練画像データの例を示す図である。図8(A)-図8(D)は、それぞれ、図7(A)-図7(D)に対応している。訓練画像の符号は、対応する中間画像の符号の先頭の文字を「I」から「T」に置換して得られる符号である。例えば、訓練画像T11(図8(A))は、中間画像I11(図7(A))にブラーを追加することによって生成される画像である。
【0052】
本実施例では、プロセッサ210は、第1ブラーフィルタBFa(図6(A))を使用して、中間画像にブラーを追加する。プロセッサ210は、第1ブラーフィルタBFaのブラー方向Db1を、対象方向Ds0(図7(A)-図7(D))に設定する。これにより、各訓練画像(図8(A)-図8(D))には、対象方向Ds0(ここでは、-Dx方向)のブラーが、追加される。図6(A)で説明したように、追加されるブラーの量は、現実の撮影画像のブラーの量と、同程度である。また、各訓練画像には、ブラー方向Db1に垂直な垂直方向Db2のブラーも追加される。図6(A)で説明したように、垂直方向Db2のブラー量は、ブラー方向Db1のブラー量よりも、小さい。
【0053】
図7(A)-図7(D)で説明したように、ラベルシート800のブラー基準方向Dsは、対象方向Ds0を「R+Rf」の角度で回転した方向である。従って、図8(A)-図8(D)の各訓練画像T10-T12、T20-T22、T30-T32、T40-T42において、ブラー方向Db1は、ラベルシート800に対するブラー基準方向Dsを「-R-Rf」の角度で回転した方向である。
【0054】
このように、S150-S200(図5)の処理によって、プロセッサ210は、複数の訓練画像データを生成する。S210では、プロセッサ210は、生成した複数の訓練画像データを、記憶装置215(ここでは、不揮発性記憶装置230)に格納する。そして、プロセッサ210は、図5の処理を終了する。
【0055】
なお、プロセッサ210は、いわゆるデータオーグメンテーションによって、訓練画像データの総数を増大してよい。データオーグメンテーションで使用される処理は、平行移動、拡大、縮小など、種々の処理を含んでよい。
【0056】
A5.画像生成モデル300の訓練処理:
図9は、画像生成モデル300(図4)の訓練処理の例を示すフローチャートである。本実施例では、画像生成モデル300は、訓練画像のデータが画像生成モデル300に入力される場合に、入力される訓練画像と同じ画像を示す生成画像のデータを生成するように、訓練される。プロセッサ210(図1)は、訓練プログラム232に従って、図9の処理を実行する。
【0057】
S310では、プロセッサ210は、図5の処理で生成された複数の訓練画像データから、複数の訓練画像データで構成されるサブセットを取得する。サブセットとしては、未処理の訓練画像データが選択される。サブセットの訓練画像データの総数は、予め決められている。
【0058】
S320では、プロセッサ210は、サブセットの訓練画像データを画像生成モデル300に入力することによって、生成画像データを生成する。プロセッサ210は、画像生成モデル300の各層の演算パラメータを使用して各層の演算を行うことによって、生成画像データを生成する。生成画像データの生成は、サブセットに含まれる訓練画像データ毎に行われる。
【0059】
なお、訓練画像の幅(第1方向Dxの画素数)は、画像生成モデル300によって受け付け可能な画像の幅と異なり得る。この場合、プロセッサ210は、訓練画像の第1方向Dxの解像度変換処理を実行することによって、訓練画像の幅を画像生成モデル300に適する幅に変換してよい。訓練画像の高さ(第2方向Dyの画素数)についても、同様である。プロセッサ210は、訓練画像の第2方向Dyの解像度変換処理を実行することによって、訓練画像の高さを画像生成モデル300に適する高さに変換してよい。
【0060】
S330では、プロセッサ210は、訓練画像データと生成画像データとを使用して評価値を算出する。評価値の算出は、訓練画像データ毎に行われる。そして、プロセッサ210は、サブセットに含まれる複数の訓練画像データから算出される複数の評価値を使用して、損失を算出する。損失は、例えば、複数の評価値の合計値であってよい。
【0061】
評価値の算出方法は、画像生成モデル300の訓練に適する任意の方法であってよい。本実施例では、画像生成モデル300は変分オートエンコーダである。この場合、評価値としては、いわゆる変分下限の最大化を可能にする種々の値を採用可能である。例えば、評価値は、再構成誤差と、正則化誤差と、の和であってよい。再構成誤差は、訓練画像と生成画像との間の差を示すパラメータであり、例えば、交差エントロピー誤差である。正則化誤差は、例えば、潜在データ305の算出に使用される平均と標準偏差の組み合わせと、標準正規分布と、の間の差を示すパラメータである。正則化誤差は、例えば、計算式「-(1+log(s)-m-s)/2」を使用して算出されてよい(mは平均であり、sは標準偏差である)。この計算式は、潜在データ305の1個の要素の誤差を示している。正則化誤差は、潜在データ305の各要素の誤差の和であってよい。
【0062】
S340では、プロセッサ210は、損失が小さくなるように、画像生成モデル300の複数の演算パラメータを調整する。複数の演算パラメータを調整するためのアルゴリズムとしては、例えば、誤差逆伝播法と勾配降下法とを使用したアルゴリズムが採用されてよい。ここで、いわゆるAdamの最適化が行われてよい。
【0063】
S350では、プロセッサ210は、訓練終了条件が満たされるか否かを判断する。訓練終了条件は、画像生成モデル300が適切に訓練されたことを示す任意の条件であってよい。本実施例では、訓練終了条件は、作業者からの終了指示が入力されることである。プロセッサ210は、複数の訓練画像データから訓練に使用されていない所定数の訓練画像データをランダムに取得する。プロセッサ210は、取得した複数の訓練画像データのそれぞれを画像生成モデル300に入力し、複数の生成画像データを取得する。プロセッサ210は、訓練画像と生成画像との複数のペアを、表示部240に表示する。作業者は、表示部240を観察して、生成画像が訓練画像を適切に表しているか否かを確認する。作業者は、確認結果に応じて、操作部250を操作して、訓練の終了指示、または、継続指示を入力する。
【0064】
なお、訓練の終了条件は、他の条件であってよい。例えば、終了条件は、訓練に使用されていない所定数の訓練画像データを使用して算出される損失が、所定の損失閾値以下であることであってよい。
【0065】
訓練が終了していないと判断される場合(S350:No)、プロセッサ210は、S310へ移行し、新たなサブセットの処理を実行する。訓練が終了したと判断される場合(S350:Yes)、S360で、プロセッサ210は、訓練済の画像生成モデル300のデータを、記憶装置215(ここでは、不揮発性記憶装置230)に格納する。そして、プロセッサ210は、図9の処理を終了する。
【0066】
このように、画像生成モデル300は、不具合の無いラベルシート800の画像を表す訓練画像データを使用して、同じラベルシート800、すなわち、不具合の無いラベルシート800の画像を表す生成画像データを生成するように、訓練される。画像生成モデル300に入力される画像のラベルシート800が不具合を有する場合、画像生成モデル300は、その不具合を示す部分画像から不具合のない部分画像を再構成し、不具合の無いラベルシート800の画像を表す生成画像データを生成する。
【0067】
本実施例では、図5のS200、図8(A)-図8(D)で説明したように、複数の訓練画像のそれぞれは、現実の撮影画像のブラーと同様のブラーを有している。訓練済の画像生成モデル300に現実の撮影画像が入力される場合、画像生成モデル300は、入力された撮影画像と同様のブラーを有する生成画像を生成できる。
【0068】
A6.検査処理:
訓練済の画像生成モデル300(図1)は、ラベルシート800の外観の検査に使用される。プロセッサ210は、検査プログラム233に従って、検査処理を実行する。検査処理は、ラベルシート800の外観を検査する種々の処理であってよい。例えば、プロセッサ210は、デジタルカメラ110(図2)から、ラベルシート800の撮影画像のデータを取得する。ここで、プロセッサ210は、撮影画像の第1方向Dxの解像度変換処理を実行することによって、撮影画像の幅を画像生成モデル300に適する幅に変換してよい。また、プロセッサ210は、撮影画像の第2方向Dyの解像度変換処理を実行することによって、撮影画像の高さを画像生成モデル300に適する高さに変換してよい。プロセッサ210は、画像生成モデル300(図4)の演算を撮影画像のデータを使用して実行することによって、生成画像データを生成する。プロセッサ210は、撮影画像と生成画像との間の差分を表す差分画像のデータを生成する。プロセッサ210は、差分画像を使用して、ラベルシート800が欠陥を有するか否かを判断する。ラベルシート800が欠陥を有すると判断するための判断条件は、種々の条件であってよい。判断条件は、例えば、所定の第1閾値よりも大きい差分を示す画素を差分画像が含むこと、であってよい。また、判断条件は、所定の第2閾値よりも大きい差分を示す画素の総数が第3閾値よりも多いことであってよい。
【0069】
いずれの場合も、上述したように、画像生成モデル300は、ブラーを有する撮影画像から、同様のブラーを有する生成画像を生成する。従って、プロセッサ210は、欠陥の有無を、適切に判断できる。
【0070】
以上のように、本実施例では、プロセッサ210(図1)は、生成プログラム231に従って、以下の処理を実行する。S110(図5)では、プロセッサ210は、対象物の例であるラベルシート800の基準画像データI10dを取得する。取得される基準画像データI10d(図3(B))は、静止した状態のラベルシート800を表している。基準画像データI10dは、ラベルシート800の静止画像を表す静止画像データの例である。
【0071】
S120(図5)では、プロセッサ210は、パラメータセットの入力を受け付ける。本実施例では、プロセッサ210は、操作部250からの情報を参照して、パラメータセットを表すデータを取得する。S120で説明したように、本実施例では、パラメータセットは、ラベルシート800の搬送時における搬送速度Vと、搬送中のラベルシート800を撮影するためのデジタルカメラ110の露光時間TMと、デジタルカメラ110の分解能RSと、を含んでいる。
【0072】
S120(図5)の後、プロセッサ210は、基準画像データI10dを使用して生成処理SGを実行することによって訓練画像データを生成する。R=Rf=0に対応するS130-S200の処理は、生成処理SGの例である。本実施例では、生成処理SGは、ブラー処理SBを含んでいる。ブラー処理SBは、S130、S140、S200を含んでいる。
【0073】
図4で説明したように、画像生成モデル300は、ラベルシート800の撮影画像を処理する。図3(C)、図4で説明したように、撮影画像は、搬送速度Vと露光時間TMと分解能RSとに関連するブラーを有している。S200(図5)では、プロセッサ210は、搬送速度Vと露光時間TMと分解能RSとを含むパラメータセットを使用するブラーの追加処理を実行する。このように、訓練画像データの生成のためのブラー処理SBでは、画像生成モデル300によって処理される撮影画像に含まれるブラーに関連するパラメータV、TM、RSを含むパラメータセットが使用される。従って、プロセッサ210は、画像生成モデル300の訓練に適する訓練画像データを生成できる。
【0074】
また、本実施例では、図5のS120で説明したように、パラメータセットは、ラベルシート800に対する搬送方向Dtを含んでいる。図5の生成処理SGのためのS200は、R=Rf=0に対応付けられる画像I10(図7(A))にブラーを追加する処理を含んでいる。図8(A)の訓練画像T10に示されるように、このブラーの追加処理は、ラベルシート800に対する搬送方向Dtに平行なブラー基準方向Dsのブラーの追加処理である。この追加処理によって追加されるブラーは、搬送方向Dtに移動するラベルシート800を表す撮影画像に含まれるモーションブラーを、適切に表すことができる。このように、プロセッサ210は、このようなモーションブラーを有する撮影画像を処理する画像生成モデル300の訓練に適する訓練画像データを生成できる。
【0075】
また、本実施例では、S200(図5)の処理は、R=90、180、270に対応付けられる画像I20、I30、I40(図7(B)-図7(D))にブラーを追加する処理を含んでいる。対応する訓練画像T20、T30、T40(図8(B)-図8(D))に示されるように、これらのブラーの追加処理では、ブラー方向Db1は、ブラー基準方向Dsを、反時計回りに、90、180、270度のいずれかの角度で回転して得られる方向である。
【0076】
このように、S120(図5)の後、プロセッサ210は、基準画像データI10dを使用して第1追加生成処理SG1aを実行することによって、追加の訓練画像データT20d、T30d、T40dを生成する。R=90、180、270とRf=0とに対応するS130-S200の処理は、第1追加生成処理SG1aの例である。第1追加生成処理SG1aは、S190とS200とを含んでいる。第1追加生成処理SG1aのためのS200は、ブラー基準方向Dsを90度、180度、270度のいずれかの角度で回転して得られる3個のブラー方向Db1の3個のブラー追加処理を含んでいる(図8(B)-図8(D))。そして、S200では、プロセッサ210は、ブラー基準方向Dsに対する3個のブラー方向Db1にそれぞれ対応付けられる3種類の追加の訓練画像データT20d、T30d、T40dを生成する。図2で説明したように、ラベルシート800の撮影時において、ラベルシート800を有する複合機900の向きは、変更され得る。追加の訓練画像データT20d、T30d、T40dは、機械学習モデル(例えば、画像生成モデル300)の訓練であって、このような変更に対応するための訓練に使用可能である。
【0077】
また、本実施例では、図6(A)に示すように、第1ブラーフィルタBFaは、ブラー方向Db1のブラーに加えて、垂直方向Db2のブラーを画像に追加する。すなわち、第1ブラーフィルタBFaを使用するブラーの追加処理は、ブラー方向Db1のブラーの追加処理と、垂直方向Db2のブラーの追加処理と、を含んでいる。そして、ブラー方向Db1のブラー量B1は、垂直方向Db2のブラー量B2よりも大きい。例えば、R=Rf=0に対応付けられる画像I10(図7(A))にブラーを追加する処理は、ブラー基準方向Ds(図8(A))に垂直な方向のブラーの追加処理を含んでいる。そして、ブラー基準方向Dsのブラー量B1は、垂直な方向のブラー量B2よりも大きい。現実には、撮影画像上のラベルシート800は、搬送方向Dtに垂直な方向に、ぼやけ得る(ただし、垂直な方向のブラー量は、搬送方向Dtに平行な方向のブラー量よりも、小さい)。本実施例では、プロセッサ210は、このような撮影画像のブラーと類似するブラーを有する訓練画像(例えば、訓練画像T10)のデータを、生成できる。
【0078】
また、本実施例では、S200(図5)の処理は、-10度から+10度までの範囲の複数の第2角度Rfに対応付けられる複数の画像(例えば、画像I11、I12(図7(A)))にブラーを追加する処理を含んでいる。対応する訓練画像(例えば、訓練画像T11、T12(図8(A)))に示されるように、これらのブラーの追加処理では、ブラー方向Db1としては、ブラー基準方向Dsとの第2角度Rfの差違を有するM個(本実施例では、M=20)の方向が使用される。
【0079】
このように、S120(図5)の後、プロセッサ210は、基準画像データI10dを使用して第2追加生成処理SG2aを実行することによって、追加の訓練画像データ(例えば、訓練画像データT11d、T12d(図8(A)))を生成する。ゼロとは異なる第2角度RfとR=0とに対応するS130-S200の処理は、第2追加生成処理SG2aの例である。第2追加生成処理SG2aは、S170とS200とを含んでいる。第2追加生成処理SG2aのためのS200は、ブラー基準方向Dsとの90度未満の差違(ここでは、第2角度Rf)を有するM個のブラー方向Db1のM個のブラー追加処理を含んでいる。本実施例では、M個のブラー方向Db1は、-10度から+10度までの20個の差違(ゼロ度を除く)に対応する20個の方向である。そして、S200では、プロセッサ210は、M個のブラー方向Db1に対応付けられるM種類の追加の訓練画像データ(例えば、訓練画像データT11d、T12d)をそれぞれ生成する。複合機900(図2)に対するラベルシート800の向きは、誤差を含み得る。また、ベルト190の移動方向に対する複合機900の向き(すなわち、ラベルシート800の向き)は、誤差を含み得る。すなわち、撮影画像中のブラーの方向は、ラベルシート800に対する搬送方向Dtに平行な方向からズレ得る。追加の訓練画像データ(例えば、訓練画像データT11d、T12d)は、機械学習モデル(例えば、画像生成モデル300)の訓練であって、ブラー方向のこのようなズレに対応するための訓練に使用可能である。
【0080】
なお、ブラー方向のこのようなズレの大きさは、通常は、90度未満である。第2角度Rfの大きさは、90度未満の種々の値であってよい。例えば、複数の第2角度Rfは、-20度から+20度までの4度刻みで設定されてよい。いずれの場合も、複数の第2角度Rfは、時計回り方向と反時計回り方向とに対称に設定されることが好ましい。
【0081】
また、本実施例では、図4図8(A)-図8(D)等で説明したように、訓練画像データによって表される訓練画像は、ラベルシート800を表すとともに、撮影画像のモーションブラーと類似するモーションブラーを有している。すなわち、訓練画像データは、搬送中のラベルシート800の撮影画像であってモーションブラーを有する撮影画像を模した画像を表している。このような訓練画像データを使用して機械学習モデル(例えば、画像生成モデル300)が訓練される場合、訓練済の機械学習モデルは、モーションブラーを有する撮影画像を適切に処理することができる。従って、機械学習モデルに入力される画像のブラーを低減する処理(ブレ補正とも呼ばれる)は、省略可能である。
【0082】
また、本実施例では、ブラー処理SB(図5)は、S140を含んでいる。S140では、プロセッサ210は、パラメータセットに含まれる搬送速度Vと露光時間TMと分解能RSとを使用してブラー量B1を決定する。このように、ブラー処理SBは、搬送速度Vと露光時間TMと分解能RSとのうちパラメータセットに含まれる1以上のパラメータを使用してブラー量を決定する処理を含んでいる。この構成によれば、プロセッサ210は、パラメータセットを使用して、適切なブラー量B1を決定できる。
【0083】
B.第2実施例:
図10(A)、図10(B)は、訓練画像データ生成処理の別の実施例のフローチャートの一部である。図10(A)には、図5のS150とS160との間に挿入されるS152、S154が示されている。図10(B)には、図5のS210に代えて実行されるS210bが示されている。本実施例の訓練画像データ生成処理は、S152、S154の追加と、S210からS210bへの変更とを、図5の訓練画像データ生成処理に対して行って得られる処理と同じである。本実施例では、プロセッサ210は、欠陥の無いラベルシート800を表す複数の第1種訓練画像データと、欠陥を有するラベルシート800を表す複数の第2種訓練画像データとを、生成する。第1種訓練画像データは、図5の実施例で生成される訓練画像データ(図8(A)-図8(D))と同じである。
【0084】
S150(図10(A))は、図5のS150と同じである。S150では、プロセッサ210は、中間画像データを不揮発性記憶装置230に格納する。この中間画像データは、図7(A)-図7(D)に示すように、欠陥の無いラベルシート800を表している(第1種中間画像データと呼ぶ)。
【0085】
S152では、プロセッサ210は、第1種中間画像データのラベルシート800の画像の一部分に、欠陥の画像を追加することによって、第2種中間画像データを生成する。図10(A)のS152を示すボックス内には、欠陥の画像の例が示されている。第1欠陥画像I91は、線状の傷を表している。第2欠陥画像I92は、汚れを表している。本実施例では、互いに異なる欠陥を表す複数の欠陥画像のデータが、予め準備される。
【0086】
S152では、プロセッサ210は、以下の処理を実行する。プロセッサ210は、使用可能な複数の欠陥画像から、欠陥画像をランダムに選択する。プロセッサ210は、S150で不揮発性記憶装置230に格納される第1種中間画像データのラベルシート800の画像内から、位置をランダムに決定する。そして、プロセッサ210は、決定した位置に、選択した欠陥画像を追加することによって、第2種中間画像データを生成する。
【0087】
S154では、プロセッサ210は、S152で生成した第2種中間画像データを、第2種中間画像データの生成のために参照した第1種中間画像データと対応付けて、不揮発性記憶装置230に格納する。互いに対応付けられる第1種中間画像と第2種中間画像との間の差違は、第2種中間画像に欠陥画像が追加されている点だけである。S154の後、プロセッサ210は、S160へ移行する。プロセッサ210は、S150-S154の処理を繰り返すことによって、第1種中間画像と第2種中間画像との複数のペアを生成する。
【0088】
図10(B)に示すように、S180の判断結果がNoである場合(すなわち、角度R、Rfの全ての組み合わせの処理が完了する場合)、S200で、プロセッサ210は、複数の中間画像データのそれぞれにブラーを追加することによって、複数の訓練画像データを生成する。第1種中間画像データから生成される第1種訓練画像データは、図8(A)-図8(D)で説明した訓練画像データと同じである。
【0089】
図11は、第2種中間画像データから生成される第2種訓練画像データの例を示す図である。図11には、図8(A)の第1種訓練画像T10、T11、T12にそれぞれ対応する第2種訓練画像U10、U11、U12が表されている。第2種訓練画像の符号は、対応する第1種訓練画像の符号の先頭の文字を「T」から「U」に置換して得られる符号である。例えば、第2種訓練画像U11(図11)は、第1種訓練画像T11(図8(A))に対応している。
【0090】
互いに対応付けられる第1種訓練画像と第2種訓練画像との間の差違は、第2種訓練画像が欠陥画像を有する点である(画像内のラベルシート800の位置と大きさとは、互いに対応付けられる第1種訓練画像と第2種訓練画像とに共通である)。例えば、第1種訓練画像T10(図8(A))と第2種訓練画像U10(図11)との間の差違は、第2種訓練画像U10が欠陥画像I910を有している点である。第1種訓練画像と第2種訓練画像との他のペアについても、同様である(図11の第2種訓練画像U11、U12は、欠陥画像I911、I912をそれぞれ有している)。S200(図10(B))では、プロセッサ210は、第1種中間画像データと第2種中間画像データとの複数のペアから、第1種訓練画像データと第2種訓練画像データとの複数のペアを生成する。
【0091】
S210b(図10(B))では、プロセッサ210は、第1種訓練画像データと第2種訓練画像データとを対応付けて、不揮発性記憶装置230に格納する。例えば、プロセッサ210は、第1種訓練画像データと第2種訓練画像データとの複数のペアのそれぞれを表すデータを、不揮発性記憶装置230に格納する。そして、プロセッサ210は、訓練画像データ生成処理を終了する。:
【0092】
第1種訓練画像と第2種訓練画像とのペア(訓練画像ペアと呼ぶ)は、種々の機械学習モデルの訓練に使用可能である。複数の訓練画像ペアは、例えば、画像生成モデル300(図4)の訓練に使用されてよい。ここで、図9の訓練処理は、以下のように変更されてよい。S320-S330では、以下の2種類の損失が算出されてよい。
(1)第1種損失:欠陥の無い第1種訓練画像データを画像生成モデル300に入力することによって得られる生成画像データと、画像生成モデル300に入力される第1種訓練画像データと、を使用して算出される損失
(2)第2種損失:欠陥を有する第2種訓練画像データを画像生成モデル300に入力することによって得られる生成画像データと、画像生成モデル300に入力される第2種訓練画像データに対応付けられる第1種訓練画像データと、を使用して算出される損失
【0093】
第1種損失は、図9の実施例の損失と同じである。第1種損失により、欠陥の無いラベルシート800の画像から、欠陥の無いラベルシート800の画像を生成するように、画像生成モデル300は訓練される。
【0094】
第2種損失は、撮影画像中のラベルシート800が欠陥を有する場合のための損失である。第2種損失により、欠陥を有するラベルシート800の画像から、欠陥の無いラベルシート800の画像を生成するように、画像生成モデル300が訓練される。
【0095】
画像生成モデル300(図4)が、第1種損失に加えて第2種損失を使用して訓練される場合、訓練済の画像生成モデル300は、欠陥を有するラベルシート800の撮影画像(例えば、入力画像I1)から、欠陥の無いラベルシート800の画像(例えば、生成画像I2)を、適切に生成できる。従って、画像生成モデル300を使用する検査処理において、誤判断の可能性を低減できる。
【0096】
以上のように、本実施例では、画像生成モデル300は、ラベルシート800の欠陥検査に使用される。プロセッサ210は、基準画像データI10dを使用して生成処理SGb(図10(A)、図10(B))を実行することによって訓練画像データを生成する。R=Rf=0に対応する第2種訓練画像データを生成するためのS130-S200(図5図10(A)、図10(B))の処理は、生成処理SGbの例である。生成処理SGbは、S152(図10(A))と、ブラー処理SBbと、を含んでいる。ブラー処理SBbは、S130、S140(図5)、S200(図10(B))を含んでいる。
【0097】
S152では、プロセッサ210は、ラベルシート800の画像の一部分に欠陥の画像を追加する。ブラー処理SBbのためのS200(図10(B))は、S152によって欠陥の画像が追加された第2種中間画像に対してブラーを追加する処理を含んでいる。これにより、プロセッサ210は、欠陥を有するラベルシート800のぼやけた画像を表す第2種訓練画像データを生成する。第2種訓練画像データは、欠陥を有するラベルシート800のぼやけた撮影画像と類似する画像を表している。第2種訓練画像データは、そのような撮影画像を処理する種々の機械学習モデル(例えば、画像生成モデル300)の訓練に、使用可能である。
【0098】
また、本実施例では、画像生成モデル300は、図4で説明したように、欠陥を有するラベルシート800のぼやけた画像から、欠陥の無い同じラベルシート800のぼやけた画像を生成するモデルである。S200(図10(B))の処理は、欠陥の無い第1種中間画像データにブラーを追加する処理を含んでいる。このように、プロセッサ210は、基準画像データI10dを使用して対応生成処理SG3b(図10(B))を実行することによって、欠陥を表す第2種訓練画像データに対応付けられる第1種訓練画像データ(対応訓練画像データとも呼ぶ)を生成する。R=Rf=0に対応する第1種訓練画像データを生成するためのS130-S200(図5図10(A)、図10(B))の処理は、対応生成処理SG3bの例である。対応生成処理SG3bは、欠陥を追加するS152(図10(A))を含まずに、S200を含んでいる。対応生成処理SG3bのためのS200は、生成処理SGbに含まれるブラー処理SBb(すなわち、第2種訓練画像データの生成のためのブラー処理)と同じブラー処理を含んでいる。対応訓練画像データ(すなわち、第1種訓練画像データ)は、図8(A)-図8(D)に示すように、欠陥の無いラベルシート800のぼやけた画像を表している。そして、対応訓練画像データによって表されるラベルシート800(例えば、図8(A)の訓練画像T10-T12のラベルシート800)は、対応する第2種訓練画像データによって表されるラベルシート800(例えば、図11の第2種訓練画像U10-U12のラベルシート800)と同じラベルシート800である。欠陥を有するラベルシート800を表す第2種訓練画像データと、欠陥の無いラベルシート800を表す対応訓練画像データと、のペアは、欠陥を有するラベルシート800のぼやけた画像から、欠陥の無い同じラベルシート800のぼやけた画像を生成する機械学習モデル(例えば、画像生成モデル300)の訓練に、使用可能である。例えば、図9を参照して説明したように、欠陥を表す第2種訓練画像から、欠陥の無い対応訓練画像を生成するように、機械学習モデルは訓練されてよい。
【0099】
なお、本実施例の訓練画像データ生成処理は、図5の訓練画像データ生成処理を含んでいる。従って、本実施例は、図5の実施例のものと同じ種々の利点を有する。
【0100】
C.第3実施例:
図12は、訓練画像データ生成処理の別の実施例のフローチャートの一部である。図5の実施例との差違は、角度R、Rfによって、ラベルシート800の画像に代えて、ブラー方向Db1が回転する点だけである。図12には、S140の後のステップS150c-S210が示されている。図示を省略するが、S140から前の処理は、図5のS110-S140と同じである。
【0101】
図13(A)、図13(B)は、訓練画像データの例を示す図である。本実施例では、第1角度Rと第2角度Rfとに従って、ブラー方向Db1が回転する(角度R、Rfは、時計回り方向の回転角度を示すこととする)。第1角度Rは、ブラー基準方向Dsからの回転の角度を示している。図5の実施例と同様に、第1角度Rは、0、90、180、270(単位は度)から選択される。図13(A)、図13(B)は、それぞれ、R=0、90に対応している(R=180、270の場合の図示は、省略)。第2角度Rfは、-10度から+10度まで1度刻みで変化する。図13(A)、図13(B)のそれぞれには、左から順番に、Rf=0、正、負の3種類の訓練画像の例が示されている。
【0102】
S150c(図12)では、プロセッサ210は、現行のブラー方向Db1を示すデータを、記憶装置215(例えば、不揮発性記憶装置230)に格納する。ブラー方向Db1を示すデータは、例えば、「R+Rf」を表すデータであってよい。最初のS150cでは、R=Rf=ゼロであることとする。
【0103】
S160は、図5のS160と同じである。未処理の第2角度Rfが残っている場合(S160:Yes)、S170cで、プロセッサ210は、第2角度Rfを未処理の角度に設定し、新たなブラー方向Db1の角度を「R+Rf」に設定する。S170cの後、S150で、プロセッサ210は、新たなブラー方向Db1を示すデータを、不揮発性記憶装置230に格納する。プロセッサ210は、現行の第1角度Rに対応する全ての第2角度Rfが処理されるまで、S170cとS150cとを繰り返す。
【0104】
現行の第1角度Rに対応する全ての第2角度Rfが処理済である場合(S160:No)、プロセッサ210は、S180へ移行する。S180は、図5のS180と同じである。未処理の第1角度Rが残っている場合(S180:Yes)、S190cで、プロセッサ210は、第1角度Rを未処理の角度に設定し、新たなブラー方向Db1の角度を「R+Rf」に設定する。ここで、第2角度Rfはゼロに設定されてよい。この場合、ブラー方向Db1の角度は、Rである。S190cの後、S150cで、プロセッサ210は、新たなブラー方向Db1を示すデータを、不揮発性記憶装置230に格納する。
【0105】
プロセッサ210は、S170cとS190cとを繰り返すことによって、第1角度Rと第2角度Rfとの全ての組み合わせを使用して、ブラー方向Db1の複数の角度を生成する。
【0106】
第1角度Rと第2角度Rfとの全ての組み合わせが処理済である場合(S180:No)、S200cで、プロセッサ210は、基準画像データI10dにブラーを追加する処理を、ブラー方向Db1毎に行うことによって、複数の訓練画像データを生成する。
【0107】
図13(A)は、「R=0」の場合の3種類の訓練画像T50、T51、T52を示している。各訓練画像T50、T51、T52のブラー方向Db1と、第1角度Rによって決まる方向(ここでは、ブラー基準方向Ds)と、のなす角度は、90度未満である。図13(B)は、「R=90」の場合の3種類の訓練画像T60、T61、T62を示している。各訓練画像T60、T61、T62のブラー方向Db1と、第1角度Rによって決まる方向(ここでは、-Dy方向)と、のなす角度は、90度未満である。図示を省略するが、R=180、270の場合も同様に、ブラー方向Db1と、第1角度Rによって決まる方向と、のなす角度は、90度未満である。
【0108】
S210(図12)は、図5のS210と同じである。プロセッサ210は、生成した複数の訓練画像データを、記憶装置215(ここでは、不揮発性記憶装置230)に格納する。そして、プロセッサ210は、図12の処理を終了する。
【0109】
以上のように、本実施例では、プロセッサ210は、基準画像データI10dを使用して生成処理SGc(図12)を実行することによって訓練画像データを生成する。R=Rf=0に対応するS130-S200c(図5図12)の処理は、生成処理SGcの例である。生成処理SGcは、ブラー処理SBcを含んでいる。ブラー処理SBcは、S130、S140(図5)、S200c(図12)を含んでいる。S200cの処理は、R=0、90、180、270に対応付けられるブラー方向Db1にブラーを追加する処理を含んでいる。R=90、180、270に対応するブラー方向Db1は、それぞれ、ブラー基準方向Dsを時計回りに、90、180、270度の角度で回転して得られる方向である。
【0110】
このように、S120(図5)の後、プロセッサ210は、基準画像データI10dを使用して第1追加生成処理SG1c(図12)を実行することによって、追加の訓練画像データを生成する。R=90、180、270とRf=0とに対応するS130-S200c(図5図12)の処理は、第1追加生成処理SG1cの例である。第1追加生成処理SG1cは、S190cとS200cとを含んでいる。第1追加生成処理SG1cのためのS200cは、ブラー基準方向Dsを90度、180度、270度のいずれかの角度で回転して得られる3個のブラー方向Db1の3個のブラー追加処理を含んでいる。そして、S200cでは、プロセッサ210は、3個のブラー方向Db1にそれぞれ対応付けられる3種類の追加の訓練画像データを生成する。例えば、図13(B)の訓練画像T60は、R=90に対応する追加の訓練画像の例である(R=180、270に対応する追加の訓練画像については、図示省略)。図2で説明したように、ラベルシート800の撮影時において、ラベルシート800を有する複合機900の向きは、変更され得る。追加の訓練画像データ(例えば、訓練画像T60のデータ)は、機械学習モデル(例えば、画像生成モデル300)の訓練であって、このような変更に対応するための訓練に使用可能である。なお、ラベルシート800を有する複合機900の向きが変更される場合、デジタルカメラ110の向きも、複合機900の向きと同じ向きに変更されてよい。
【0111】
また、本実施例では、S200(図12)の処理は、-10度から+10度までの範囲の複数の第2角度Rfに対応付けられる複数のブラー方向Db1(例えば、図13(A)の複数のブラー方向Db1)のブラーを追加する処理を含んでいる。対応する訓練画像(例えば、訓練画像T51、T52)に示されるように、これらのブラーの追加処理では、ブラー方向Db1としては、ブラー基準方向Dsとの第2角度Rfの差違を有するM個(本実施例では、M=20)の方向が使用される。
【0112】
このように、S120(図5)の後、プロセッサ210は、基準画像データI10dを使用して第2追加生成処理SG2cを実行することによって、追加の訓練画像データ(例えば、訓練画像T51、T52のデータ(図13(A)))を生成する。ゼロとは異なる第2角度RfとR=0とに対応するS130-S200c(図5図12)の処理は、第2追加生成処理SG2cの例である。第2追加生成処理SG2cは、S170cとS200cとを含んでいる。第2追加生成処理SG2cのためのS200cは、ブラー基準方向Dsとの90度未満の差違(ここでは、第2角度Rf)を有するM個のブラー方向Db1のM個のブラー追加処理を含んでいる。本実施例では、M個のブラー方向Db1は、-10度から+10度までの20個の差違(ゼロ度を除く)に対応する20個の方向である。そして、S200cでは、プロセッサ210は、M個のブラー方向Db1に対応付けられるM種類の追加の訓練画像データ(例えば、訓練画像T51、T52のデータ)をそれぞれ生成する。上述したように、撮影画像中のブラーの方向は、ラベルシート800に対する搬送方向Dtに平行な方向からズレ得る。追加の訓練画像データ(例えば、訓練画像T51、T52のデータ)は、機械学習モデル(例えば、画像生成モデル300)の訓練であって、ブラー方向のこのようなズレに対応するための訓練に使用可能である。
【0113】
なお、本実施例の訓練画像データ生成処理は、ラベルシート800の画像に代えてブラー方向Db1が回転する点を除いて、図5の実施例の訓練画像データ生成処理と同様である。従って、本実施例は、図5の実施例のものと同じ種々の利点を有する。
【0114】
また、図12の実施例は、図10(A)、図10(B)の実施例に適用されてよい。すなわち、図10(A)、図10(B)の実施例において、プロセッサ210は、ラベルシート800の画像を回転させる代わりに、ブラー方向Db1を回転させてよい。
【0115】
D.第4実施例:
図14(A)、図14(B)は、ラベルシート800に対する搬送方向Dtを取得する処理の別の実施例を示す図である。図3(D)の実施例とは異なり、搬送方向Dtは、製品搬送方向Dt9と対象物方向Dmとを使用して、決定される。製品搬送方向Dt9は、複合機900に対する搬送方向である。対象物方向Dmは、複合機900に対するラベルシート800の向きを示す方向である。本実施例では、S120(図5)で入力されるパラメータセットは、製品搬送方向Dt9と対象物方向Dmとを含んでいる。本実施例の搬送方向Dtの決定は、上記の任意の実施例の訓練画像データ生成処理に適用可能である。
【0116】
図14(A)は、製品搬送方向Dt9の候補と対象物方向Dmの候補とを示している。図中には、複合機900のうちのラベルシート800が設けられる面と、候補方向D9a-D9dとが、示されている。本実施例では、候補方向D9a-D9dは、複合機900の底面909を基準に、予め決められている。下向きの候補方向D9cは、複合機900の中心から底面909へ向かう方向である。他の候補方向D9d、D9a、D9bは、候補方向D9cを90度ずつ時計回り方向に回転させることによって、得られる。
【0117】
S120(図5)では、作業者は、選択した製品搬送方向Dt9と対象物方向Dmとを示す情報を、操作部250(図1)を介して入力する。作業者は、候補方向D9a-D9dから1つの候補方向を、製品搬送方向Dt9として選択する。ここで、候補方向D9bが、製品搬送方向Dt9として選択されることとする。また、作業者は、候補方向D9a-D9dから1つの候補方向を、対象物方向Dmとして選択する。対象物方向Dmは、ラベルシート800の中心から基準線800mへ向かう方向である。ここで、候補方向D9dが、対象物方向Dmとして選択されることとする。プロセッサ210は、入力された製品搬送方向Dt9と対象物方向Dmとを使用して、ラベルシート800に対する搬送方向Dtを決定する。
【0118】
図14(B)は、図3(D)と同じ、搬送方向Dtの候補方向D10a-D10dを示している。第1候補方向D10aは、ラベルシート800の中心から基準線800mへ向かう方向である。プロセッサ210は、対象物方向Dmと製品搬送方向Dt9との関係を、第1候補方向D10aに適用することによって、ラベルシート800に対する搬送方向Dtを決定する。例えば、Dm=D9d、Dt9=D9bである場合、Dt=D10cである。
【0119】
このように、本実施例では、ラベルシート800は、製品の例である複合機900に対して配置された状態で複合機900とともに搬送される(図2参照)。S120(図5)で受け付けられるパラメータセットは、複合機900に対する搬送方向である製品搬送方向Dt9と、複合機900に対するラベルシート800の向きを表す対象物方向Dmと、を含んでいる。S200(図5図10(B))、S200c(図12)は、R=Rf=0に対応付けられる方向のブラーを追加する処理を含んでいる。図8(A)、図13(A)の訓練画像T10、T50に示されるように、このブラーの追加処理は、ラベルシート800に対する搬送方向Dtに平行なブラー基準方向Dsのブラーの追加処理である。ここで、搬送方向Dtは、製品搬送方向Dt9と対象物方向Dmとの組み合わせに対応付けられるラベルシート800に対する搬送方向である。この追加処理によって追加されるブラーは、搬送方向Dtに移動するラベルシート800を表す撮影画像に含まれるモーションブラーを、適切に表すことができる。このように、プロセッサ210は、このようなモーションブラーを有する撮影画像を処理する画像生成モデル300の訓練に適する訓練画像データを生成できる。
【0120】
E.第5実施例:
図15(A)、図15(B)は、対象物の別の例を示す図である。本実施例では、対象物は、織物700である。図15(A)に示すように、織物700は、図示しない搬送装置によって、搬送方向D700に搬送される。デジタルカメラ110は、搬送中の織物700を撮影することによって、織物700の撮影画像データを生成する。
【0121】
本実施例では、プロセッサ210(図1)は、上記の各実施例と同様に、織物700の撮影画像と画像生成モデル300(図4)とを使用して、織物700の外観を検査する。プロセッサ210は、画像生成モデル300の訓練のために、複数の訓練画像データを生成する。訓練画像データ生成処理としては、上記の任意の実施例の訓練画像データ生成処理を採用可能である(図5図10(A)-図10(B)、図12)。いずれの場合も、訓練画像データは、動かずに静止した状態の織物700を表す基準画像データを使用して、生成される。
【0122】
図15(B)は、基準画像I90の例を示している。基準画像I90は、織物700の細かいパターンを表している。図15(B)の下部には、織物700のパターンの例が示されている。織物700は、経糸Wpと緯糸Wfとを使用して、織られている。織物700の織り方は、種々の織り方であり得る。図中のパターンW1、W2、W3は、「平織」、「綾織」、「朱子織」のパターンを、それぞれ示している。基準画像I90は、経糸Wpと緯糸Wfとによって形成されるパターンを、表している。
【0123】
基準画像I90のデータI90dは、種々の方法によって生成され得る。例えば、動かずに静止した状態の織物700をデジタルカメラ110によって撮影することによって、基準画像I90のデータI90dが取得されてよい。
【0124】
なお、図示を省略するが、検査処理においてデジタルカメラ110(図15(A))によって生成される撮影画像も、経糸Wpと緯糸Wfとによって形成されるパターンを表している。ただし、検査用の撮影画像は、基準画像I90とは異なり、モーションブラーを有している。
【0125】
訓練画像データ生成処理のS120(図5)では、作業者は、織物700に対する搬送方向Dtを示す情報を、操作部250を介して入力する。図15(B)には、搬送方向Dtの候補方向D90a、D90bが示されている。織物700は、通常は、経糸Wpの延びる方向に平行な方向に、搬送される。基準画像I90内では、経糸Wpは、第2方向Dyに延びることとする。本実施例では、第1候補方向D90aは、-Dy方向であり、第2候補方向D90bは、+Dy方向である。作業者は、これらの候補方向D90a、D90bから1つの候補方向を選択し、選択した候補方向を示す情報を、操作部250を介して入力する。プロセッサ210は、入力された候補方向を、搬送方向Dtとして使用する。ここで、候補方向D90bが選択されてよい。S130では、プロセッサ210は、ブラー基準方向Dsを、搬送方向Dtの反対方向に決定する。
【0126】
S130(図5)に続く処理は、上記の任意の実施例の訓練画像データ生成処理の対応する処理であってよい(図5図10(A)-図10(B)、図12)。いずれの場合も、プロセッサ210は、第1角度Rと第2角度Rfとの複数の組み合わせに対応する複数の訓練画像データを生成する。ここで、織物700は、搬送方向が逆向きとなるように、搬送装置(図示せず)に取り付けられ得る。この場合も、織物700は、経糸Wpの延びる方向に平行な方向に、搬送される。通常は、緯糸Wfの延びる方向に平行な方向に織物700が搬送される可能性は小さい。そこで、本実施例では、第1角度Rとして、0度と180度との2つの角度が使用される。
【0127】
このように、本実施例では、対象物は、織物700である。図15(B)に示されるように、0度以外の第1角度Rとしては、1個の角度(ここでは、180度)が使用される。すなわち、S200(図5図10(B))の処理、または、S200c(図12)の処理は、R=0に対応付けられるブラー方向Db1(すなわち、ブラー基準方向Ds)にブラーを追加する処理に加えて、R=180に対応付けられるブラー方向Db1にブラーを追加する処理を含んでいる。図15(B)に示すように、R=180に対応付けられるブラー方向Db1は、R=0に対応付けられるブラー基準方向Dsを180度の角度で回転して得られる方向である。
【0128】
S120(図5)の後、プロセッサ210は、上述の第1追加生成処理SG1a、SG1c(図5図12)のいずれかを実行することによって、追加の訓練画像データを生成する。第1追加生成処理SG1a、SG1cのためのS200、S200cでは、プロセッサ210は、ブラー基準方向Dsを180度の角度で回転して得られる1個のブラー方向Db1に対応付けられる1種類の追加の訓練画像データを生成する。第1追加生成処理SG1a(図5)が実行される場合、追加の訓練画像データは、織物700の基準画像I90(図15(B))を180度の角度で回転して得られる画像にブラーを追加することによって得られる画像である。第1追加生成処理SG1c(図12)が実行される場合、追加の訓練画像データは、織物700の基準画像I90(図15(B))に、ブラー基準方向Dsとは反対方向のブラーを追加することによって得られる画像である。
【0129】
以上のように、プロセッサ210は、第1追加生成処理SG1a、SG1cのいずれかによって、追加の訓練画像データを生成する。上述したように、織物700の搬送方向は、逆向きに変更され得る。追加の訓練画像データは、機械学習モデル(例えば、画像生成モデル300)の訓練であって、このような変更に対応するための訓練に使用可能である。
【0130】
また、S120(図5)の後、プロセッサ210は、上述の第2追加生成処理SG2a、SG2c(図5図12)のいずれかを実行することによって、追加の訓練画像データを生成する。第2追加生成処理SG2a、SG2cのためのS200、S200cでは、プロセッサ210は、M個のブラー方向Db1に対応付けられるM種類の追加の訓練画像データをそれぞれ生成する(M個のブラー方向Db1は、ブラー基準方向Dsとの90度未満の差違(ここでは、第2角度Rf)を有する)。第2追加生成処理SG2a(図5)が実行される場合、追加の訓練画像データは、基準画像I90(図15(B))内において、織物700の画像を第2角度Rfで回転して得られる画像にブラーを追加することによって得られる画像である。第2追加生成処理SG2c(図12)が実行される場合、追加の訓練画像データは、織物700の基準画像I90(図15(B))に、第2角度Rfによって示されるブラー方向Db1のブラーを追加することによって得られる画像である。
【0131】
以上のように、プロセッサ210は、第2追加生成処理SG2a、SG2cのいずれかによって、追加の訓練画像データを生成する。搬送装置(図示せず)に対する織物700のパターン(例えば、パターンW1-W3)の向きは、誤差を含み得る。すなわち、撮影画像中のブラーの方向は、織物700に対する搬送方向Dtに平行な方向からズレ得る。追加の訓練画像データは、機械学習モデル(例えば、画像生成モデル300)の訓練であって、ブラー方向のこのようなズレに対応するための訓練に使用可能である。
【0132】
F.変形例:
(1)訓練画像データ生成処理のために入力されるパラメータセット(図5:S120)は、1以上の種々のパラメータで構成されてよい。入力パラメータセットは、搬送速度Vと露光時間TMと分解能RSとから選択される1以上のパラメータを含むことが好ましい。入力パラメータセットからは、パラメータV、TM、RSのうちの1個または2個のパラメータが省略されてよい。省略されるパラメータの値としては、予め決められた値が使用されてよい。
【0133】
また、搬送方向Dtは、入力パラメータセットから省略されてよい。この場合、搬送方向Dtとしては、予め決められた方向が使用されてよい。また、図14(A)、図14(B)の実施例のように、搬送方向Dtの決定に、製品搬送方向Dt9と対象物方向Dmとが使用されてよい。ここで、方向Dt9、Dmのいずれか1つは、入力パラメータセットから省略されてよい。省略された方向としては、予め決められた方向が使用されてよい。
【0134】
(2)入力パラメータセットの入力方法は、操作部250を使用する方法に代えて、他の任意の方法であってよい。入力パラメータセットの入力方法は、データ処理装置200の外部からデータ処理装置200に入力パラメータセットを入力する種々の方法であってよい。例えば、作業者は、入力パラメータセットを表す入力データを準備し、入力データをデータ処理装置200の不揮発性記憶装置230に格納してよい。S120(図5)では、プロセッサ210は、不揮発性記憶装置230から入力データを読み取ることによって、入力パラメータセットを取得してよい。このように、記憶装置への入力データの格納によって、入力パラメータセットが入力されてよい。
【0135】
(3)上記の各実施例において、ブラーフィルタとしては、第1ブラーフィルタBFa(図6(A))に代えて、第2ブラーフィルタBFb(図6(B))が使用されてよい。第2ブラーフィルタBFbは、第1ブラーフィルタBFaの第2ブラー量B2を「1」に設定することによって得られるフィルタである。このように、垂直方向Db2のブラーの追加は、省略されてよい。第2ブラーフィルタBFbが使用される場合も、第1ブラーフィルタBFaが使用される場合と同様に、プロセッサ210は、ブラー方向Db1の適切なブラーを画像に追加できる。なお、ブラーフィルタBFa、BFbの各画素PXの重みは、種々の値であってよい。例えば、画素PXが注目画素PXiに近いほど、画素PXの重みが大きくてよい。
【0136】
ブラーを追加する処理は、ブラーフィルタを使用する処理に代えて、他の種々の処理であってよい。例えば、プロセッサ210は、露光時間TM内の撮影画像上の対象物の移動の軌跡に従って、対象物のうちの注目画素PXiに対応する部分の色値を積分することによって、注目画素PXiの色値を算出してよい。
【0137】
いずれの場合も、ブラー量としては、露光時間TM内の画像上の移動量を示す種々の値を採用可能である。注目画素PXiの色値の算出にブラーフィルタが使用される場合、ブラーフィルタのサイズ(単位は、画素数)は、ブラー量として使用可能である。
【0138】
(4)図5のS180、S190と、図12のS180、S190cとで使用される第1角度Rは、90、180、270(度)から任意に選択される1以上の角度を含んでよい。また、各実施例と各変形例とにおいて、ゼロ以外の第1角度Rのための処理(例えば、図5のS180、S190と、図12のS180、S190c)は、省略されてよい。
【0139】
(5)図5のS160、S170と、図12のS160、S170cとで使用される第2角度Rfの総数Mは、2以上の種々の数であってよい。いずれの場合も、第2角度Rfは、90度未満の種々の角度を含んでよい。なお、各実施例と各変形例とにおいて、第2角度Rfのための処理(例えば、図5のS160、S170と、図12のS160、S170c)は、省略されてよい。
【0140】
(6)訓練画像データ生成処理は、各実施例と各変形例との処理に代えて、他の種々の処理であってよい。例えば、図5のS170、S190で、プロセッサ210は、画像の回転と、回転済の画像に対するブラーの追加と、を行ってよい。図12のS170c、S190cで、プロセッサ210は、ブラー方向Db1の回転と、回転済のブラー方向Db1のブラーの追加と、を行ってよい。
【0141】
(7)機械学習モデルは、変分オートエンコーダ(図4)などのオートエンコーダに代えて、他の種々のモデルであってよい。例えば、機械学習モデルは、欠陥の種類を分類する分類モデルであってよい。分類モデルは、欠陥の種類を「欠陥有」と「欠陥無」との2つのクラスから選択するモデルであってよい。分類モデルは、欠陥の種類を複数の種類(例えば、「欠陥無」と「傷」と「汚れ」)から選択するモデルであってよい。また、機械学習モデルは、PaDiM(a Patch Distribution Modeling Framework for Anomaly Detection and Localization)、または、FastFlow (Unsupervised Anomaly Detection and Localization via 2D Normalizing Flows)と呼ばれる異常検知技術で使用される特徴抽出モデルであってよい。特徴抽出モデルとしては、種々の分類モデル、または、種々の物体検出モデルを、採用可能である(例えば、畳込ニューラルネットワーク)。
【0142】
いずれの場合も、機械学習モデルは、欠陥の無い対象物を表す訓練画像データを使用して訓練されてよい。また、機械学習モデルは、欠陥を有する対象物を表す訓練画像データを使用して訓練されてよい。また、機械学習モデルは、欠陥の無い対象物を表す訓練画像データと、欠陥を有する対象物を表す訓練画像データと、の両方を使用して訓練されてよい。訓練方法は、機械学習モデルに適する種々の方法であってよい。
【0143】
(8)対象物は、製品に設けられるラベルシートと織物とに代えて、製品に塗装された模様、銘板(例えば、立体的な銘)、編物など、種々の対象物であってよい。製品は、複合機900に代えて、スキャナ、プリンタ、ミシン、カッティングマシン、工作機械、スマートフォンなど、任意の製品であってよい。
【0144】
(9)訓練画像データの生成に使用される対象物の静止画像データとしては、版下データなどの対象物の設計画像を表すデータが使用されてよい。これに代えて、静止画像データとしては、動かずに静止した状態の対象物の撮影画像のデータが使用されてよい。
【0145】
(10)検査処理における対象物の搬送方法は、任意の方法であってよい。例えば、複合機900(図2)は、ベルト190に代えて、台に乗せられてよい。そして、台が移動することによって、複合機900(ひいては、ラベルシート800)が搬送されてよい。また、検査処理では、撮影画像から対象物を表す領域を抽出することによって、機械学習モデルに入力するための画像データが生成されてよい。
【0146】
また、検査処理には、複数のデジタルカメラが使用されてよい。複数のデジタルカメラは、同じ製品の互いに異なる部分を撮影してよい。例えば、第1デジタルカメラは、デジタルカメラ110(図2)と同様に、複合機900のうちのラベルシート800を含む部分を撮影し、第2デジタルカメラは、複合機900の上面を撮影してよい。複数のデジタルカメラによって生成される複数の撮影画像は、それぞれ、複合機900の検査に使用されてよい。
【0147】
(11)訓練画像データを生成する生成装置は、パーソナルコンピュータとは異なる種類の装置(例えば、デジタルカメラ、スキャナ、スマートフォン)であってよい。また、ネットワークを介して互いに通信可能な複数の装置(例えば、コンピュータ)が、訓練画像データの生成処理の機能を一部ずつ分担して、全体として、訓練画像データの生成処理の機能を提供してもよい(これらの装置を備えるシステムが生成装置に対応する)。また、機械学習モデルの訓練は、訓練画像データの生成装置とは異なる装置(例えば、コンピュータ)によって、行われてよい。また、機械学習モデルを使用する検査処理は、訓練画像データの生成装置とは異なる装置(例えば、コンピュータ)によって、行われてよい。
【0148】
上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。例えば、ブラーの追加(例えば、図5図12のS200、S200c)の機能を、専用のハードウェア回路によって実現してもよい。
【0149】
また、本開示の機能の一部または全部がコンピュータプログラムで実現される場合には、そのプログラムは、コンピュータ読み取り可能な記録媒体(例えば、一時的ではない記録媒体)に格納された形で提供することができる。プログラムは、提供時と同一または異なる記録媒体(コンピュータ読み取り可能な記録媒体)に格納された状態で、使用され得る。「コンピュータ読み取り可能な記録媒体」は、メモリーカードやCD-ROMのような携帯型の記録媒体に限らず、各種ROM等のコンピュータ内の内部記憶装置や、ハードディスクドライブ等のコンピュータに接続されている外部記憶装置も含み得る。
【0150】
上記の実施例と変形例とは、適宜に組み合わせることができる。また、上記の実施例と変形例とは、本開示の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
【符号の説明】
【0151】
110…デジタルカメラ、190…ベルト、191…上面、200…データ処理装置、210…プロセッサ、215…記憶装置、220…揮発性記憶装置、230…不揮発性記憶装置、231…生成プログラム、232…訓練プログラム、233…検査プログラム、240…表示部、250…操作部、270…通信インタフェース、300…画像生成モデル、302…エンコーダ、305…潜在データ、307…デコーダ、700…織物、800…ラベルシート、800D…下辺、800L…左辺、800R…右辺、800U…上辺、800i…対象物画像、800m…基準線、801…欠陥、900…複合機、901…第1側面、908…側面、909…底面、I10d…基準画像データ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15