JP2023169482A - コンピュータプログラム、および、データ処理装置 - Google Patents

コンピュータプログラム、および、データ処理装置 Download PDF

Info

Publication number
JP2023169482A
JP2023169482A JP2022080604A JP2022080604A JP2023169482A JP 2023169482 A JP2023169482 A JP 2023169482A JP 2022080604 A JP2022080604 A JP 2022080604A JP 2022080604 A JP2022080604 A JP 2022080604A JP 2023169482 A JP2023169482 A JP 2023169482A
Authority
JP
Japan
Prior art keywords
image
detection model
object detection
label
processor
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
Application number
JP2022080604A
Other languages
English (en)
Inventor
真樹 近藤
Maki Kondo
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Brother Industries Ltd
Original Assignee
Brother Industries Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP2022080604A priority Critical patent/JP2023169482A/ja
Priority to PCT/JP2023/017387 priority patent/WO2023223883A1/ja
Publication of JP2023169482A publication Critical patent/JP2023169482A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks

Abstract

【課題】 オブジェクトの少なくとも一部を表す領域を検出する。【解決手段】第1オブジェクトの撮影画像の第1画像データであって第1オブジェクトを第1画素数で表す第1画像データを使用して、撮影画像から第1オブジェクトを表す第1種領域を検出する。撮影画像のうちの第1種領域を含む部分画像であって撮影画像から第1種領域を除いた残りの領域の少なくとも一部を含まない部分画像を表す第2画像データを使用して、部分画像から第1オブジェクトの少なくとも一部を表す第2種領域を検出する。第2画像データは第1オブジェクトを第1画素数よりも多い第2画素数で表す。第2種領域の検出結果を使用して第1オブジェクトを検査する。【選択図】 図7

Description

本明細書は、画像中のオブジェクトを検出する技術に関する。
製品の外観検査やロボットによるオブジェクトの認識などの種々の用途のために、画像からオブジェクトを検出する技術が使用されている。オブジェクトを検出する技術としては、例えば、以下の論文は、YOLOv4と呼ばれる機械学習モデルを提案している。YOLOv4は、オブジェクトを囲む枠(バウンディングボックスと呼ばれる)と、オブジェクトの種類(クラスとも呼ばれる)と、を予測する。
Alexey Bochkovskiy, Chien-Yao Wang, Hong-Yuan Mark Liao, "YOLOv4: Optimal Speed and Accuracy of Object Detection", arXiv:2004.10934 (2020), https://arxiv.org/abs/2004.10934
オブジェクトの検出は容易ではなく、オブジェクトを表す領域として不適切な領域が決定される場合がある。例えば、注目するオブジェクトとは異なるオブジェクトが誤って検出される場合がある。このように、オブジェクトを表す領域の検出には、工夫の余地があった。
本明細書は、オブジェクトの少なくとも一部を表す領域を検出する技術を開示する。
本明細書に開示された技術は、以下の適用例として実現することが可能である。
[適用例1]コンピュータプログラムであって、第1オブジェクトの撮影画像の第1画像データであって前記第1オブジェクトを第1画素数で表す前記第1画像データを使用して、前記撮影画像から前記第1オブジェクトを表す第1種領域を検出する第1検出機能と、前記撮影画像のうちの前記第1種領域を含む部分画像であって前記撮影画像から前記第1種領域を除いた残りの領域の少なくとも一部を含まない前記部分画像を表す前記第2画像データを使用して、前記部分画像から前記第1オブジェクトの少なくとも一部を表す第2種領域を検出する第2検出機能であって、前記第2画像データは前記第1オブジェクトを前記第1画素数よりも多い第2画素数で表す、前記第2検出機能と、前記第2種領域の検出結果を使用して前記第1オブジェクトを検査する検査機能と、をコンピュータに実現させる、コンピュータプログラム。
この構成によれば、検査に使用される第2種領域が、第1種領域の検出のための第1画素数よりも多い第2画素数で第1オブジェクトを表す第2画像データを使用して検出されるので、第1オブジェクトの検査に、第1オブジェクトの少なくとも一部を表す第2種領域の適切な検出結果を使用できる。
なお、本明細書に開示の技術は、種々の態様で実現することが可能であり、例えば、データ処理方法およびデータ処理装置、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体(例えば、一時的ではない記録媒体)、等の形態で実現することができる。
一実施例としてのデータ処理装置を示す説明図である。 (A)-(C)は、ラベルの例を示す概略図である。 (A)、(B)は、物体検出モデルM1、M2によって検出される領域の例を示す説明図である。 学習処理の例を示すフローチャートである。 (A)-(D)は、第1種物体検出モデルM1の学習処理で使用される画像の例を示す概略図である。 (A)-(C)は、第1種物体検出モデルM1のための合成画像の例を示す概略図である。(D)-(F)は、第2種物体検出モデルM2のための合成画像の例を示す概略図である。 検査処理の例を示すフローチャートである。 (A)-(E)は、検査処理で使用される画像の例を示す概略図である。 学習処理の第2実施例を示すフローチャートである。 (A)は、要素領域の例を示す概略図である。(B)は、相対位置情報の例を示す概略図である。 (A)-(D)は、画像処理の例を示す概略図である。 (A)-(C)は、合成画像の例を示す概略図である。 検査処理の第2実施例を示すフローチャートである。 (A)、(B)は、要素の検出の概略図である。 (A)-(C)は、学習処理で使用される合成画像の例を示す概略図である。 (A)は、学習処理の別の実施例のフローチャートの一部である。(B)は、モデルデータの概略図である。
A.第1実施例:
A1.装置構成:
図1は、一実施例としてのデータ処理装置を示す説明図である。本実施例では、データ処理装置200は、例えば、パーソナルコンピュータである。データ処理装置200は、製品(例えば、複合機など)に設けられるオブジェクト(例えば、ラベル)の外観の検査のためのデータ処理を行うデータ処理装置の例である。本実施例では、複合機900に、第1ラベルLB1が貼付されている。本実施例では、第1ラベルLB1の外観が検査される。
データ処理装置200は、プロセッサ210と、記憶装置215と、表示部240と、操作部250と、通信インタフェース270と、を備えている。これらの要素は、バスを介して互いに接続されている。記憶装置215は、揮発性記憶装置220と、不揮発性記憶装置230と、を含んでいる。
プロセッサ210は、データ処理を行うように構成された装置であり、例えば、CPUである。揮発性記憶装置220は、例えば、DRAMであり、不揮発性記憶装置230は、例えば、フラッシュメモリである。不揮発性記憶装置230は、プログラム231、232、233と、物体検出モデルM1、M2と、を格納している。本実施例では、モデルM1、M2は、それぞれ、プログラムモジュールである。モデルM1、M2は、それぞれ、いわゆる機械学習モデルである。プログラム231、232、233とモデルM1、M2との詳細については、後述する。
表示部240は、液晶ディスプレイ、有機ELディスプレイなどの、画像を表示するように構成された装置である。操作部250は、ボタン、レバー、表示部240上に重ねて配置されたタッチパネルなどの、ユーザによる操作を受け取るように構成された装置である。ユーザは、操作部250を操作することによって、種々の指示をデータ処理装置200に入力可能である。通信インタフェース270は、他の装置と通信するためのインタフェースである。通信インタフェース270は、例えば、USBインタフェース、有線LANインタフェース、IEEE802.11の無線インタフェースのうちの1種以上を含む。通信インタフェース270には、デジタルカメラ110が接続される。デジタルカメラ110は、複合機900の第1ラベルLB1を含む部分を撮影する。
A2.ラベル:
図2(A)-図2(C)は、ラベルの例を示す概略図である。図2(A)は、複合機900の斜視図を示している。複合機900のボディの外面に、第1ラベルLB1が貼付されている。
図2(B)は、第1ラベルLB1の例を示している。本実施例では、第1ラベルLB1の形状は、略矩形状である。第1ラベルLB1は、7個の要素EL1-EL7を含んでいる。要素EL1、EL2、EL3、EL7は、それぞれ、複合機900に関連する情報を示す文字列である(例えば、ブランド名、モデル名、入力定格、製造者名、製造国、など)。要素EL4、EL5、EL6は、それぞれ、複合機900に関連するマークである(例えば、ロゴマーク、CEマーク、WEEEマーク、GSマーク、FCCマークなど)。
図2(C)は、第2ラベルLB2の例を示している。第2ラベルLB2は、複合機900とは異なる他の製品に貼付されるラベルである。第1ラベルLB1との差異は、2つある。第1の差異は、第2要素EL2と第6要素EL6が省略され、代わりに、マークを示す第8要素EL8と、文字列を示す第9要素EL9と、が追加されている点である。第2の差異は、要素EL4、EL5の配置が、第1ラベルLB1と第2ラベルLB2との間で異なる点である。第1ラベルLB1と第2ラベルLB2とは、共通の要素EL1、EL3-EL5、EL7を含んでいる。第2ラベルLB2は、第1ラベルLB1に類似している。従って、第1ラベルLB1の代わりに第2ラベルLB2が、誤って、複合機900に貼付され得る。
A3.物体検出モデルによって検出される領域:
図3(A)、図3(B)は、物体検出モデルM1、M2(図1)によって検出される領域の例を示す説明図である。第1種物体検出モデルM1と第2種物体検出モデルM2とは、それぞれ、種々の物体検出モデルであってよい。本実施例では、第1種物体検出モデルM1と第2種物体検出モデルM2とは、それぞれ、YOLOv4と呼ばれる機械学習モデルである。YOLOv4モデルは、バウンディングボックスと呼ばれるオブジェクトの少なくとも一部を含む矩形の枠と、バウンディングボックスがオブジェクトを含むことの信頼度(物体スコアとも呼ばれる)と、バウンディングボックスがオブジェクトを含む場合のオブジェクトの種類(クラスとも呼ばれる)のそれぞれの確率(クラス確率とも呼ぶ)と、を予測する。物体検出の最終的な予測結果の決定方法は、種々の方法であってよい。例えば、信頼度(物体スコア)とクラス確率とから、クラス毎、バウンディングボックス毎の信頼度スコアが算出される。信頼度スコアは、例えば、物体スコアとクラス確率との積で表されてよい。閾値以上の信頼度スコアを有するバウンディングボックスとクラスとの組み合わせは、最終的な予測結果として使用される。閾値は、例えば、適切な検出結果が得られるように、予め実験的に決定されてよい。
図3(A)には、第1種物体検出モデルM1に入力される画像の例である第1撮影画像IMaが示されている。第1撮影画像IMaは、第1方向Dx(ここでは、横方向)に平行な2辺と、第1方向Dxに垂直な第2方向Dy(ここでは、縦方向)に平行な2辺と、を有する矩形状の画像である。第1撮影画像IMaは、第1方向Dxと第2方向Dyとに沿ってマトリクス状に並ぶ複数の画素のそれぞれの色値によって、表されている。本実施例では、色値は、R(赤)、G(緑)、B(青)の3個の成分値で表されている。各成分値は、例えば、0から255までの256段階で表されている。第1横サイズNx1は、第1方向Dxの画素数を示し、第1縦サイズNy1は、第2方向Dyの画素数を示している。
第1撮影画像IMaは、複合機900の全体を表している。第1撮影画像IMaは、第1ラベルLB1の画像を含んでいる。第1種物体検出モデルM1は、このような第1撮影画像IMaから、第1ラベルLB1を示すバウンディングボックスBBaを検出するように、学習される(すなわち、訓練される)。図中の第1画素数PNaは、第1ラベルLB1を示す複数の画素の総数である。第1ラベルLB1を表す複数の画素の画素密度は、第1画素数PNaが多いほど、高い。
図3(B)には、第2種物体検出モデルM2に入力される画像の例である第2撮影画像IMbが示されている。第2撮影画像IMbは、第1撮影画像IMaと同様に、第1方向Dxに平行な2辺と第2方向Dyに平行な2辺とを有する矩形状の画像である。第2撮影画像IMbは、第1方向Dxと第2方向Dyとに沿ってマトリクス状に並ぶ複数の画素のそれぞれの色値(ここでは、R、G、Bの3個の成分値)によって、表されている。第2横サイズNx2は、第1方向Dxの画素数を示し、第2縦サイズNy2は、第2方向Dyの画素数を示している。
第2撮影画像IMbは、第1撮影画像IMaのうち、バウンディングボックスBBaに囲まれる部分を含む一部分を表している。第2撮影画像IMbは、第1ラベルLB1の画像を含んでいる。第2種物体検出モデルM2は、このような第2撮影画像IMbから、第1ラベルLB1を示すバウンディングボックスBBbを検出するように、学習される。図中の第2画素数PNbは、第1ラベルLB1を示す複数の画素の総数である。第1ラベルLB1を表す複数の画素の画素密度は、第2画素数PNbが多いほど、高い。
画素数Nx1、Ny1、Nx2、Ny2(すなわち、物体検出モデルM1、M2に入力される画像のサイズ)は、予め決められている。本実施例では、第2撮影画像IMbの第2画素数PNbが、第1撮影画像IMaの第1画素数PNaよりも多くなるように、画素数Nx1、Ny1、Nx2、Ny2が決定される。すなわち、第2種物体検出モデルM2に入力される画像の第1ラベルLB1を示す画素の数が、第1種物体検出モデルM1に入力される画像の第1ラベルLB1を示す画素の数よりも多くなるように、サイズNx1、Ny1、Nx2、Ny2が決定される。例えば、第2横サイズNx2は、第1横サイズNx1より大きくてよい。また、第2縦サイズNy2は、第1縦サイズNy1より大きくてよい。
なお、本実施例では、第2種物体検出モデルM2に入力される画像(例えば、第2撮影画像IMb)では、第1種物体検出モデルM1に入力される画像(例えば、第1撮影画像IMa)と比べて、第1ラベルLB1が大きい。すなわち、第2種物体検出モデルM2に入力される画像のうちの第1ラベルLB1を示す部分の割合は、第1種物体検出モデルM1に入力される画像のうちの第1ラベルLB1を示す部分の割合よりも、大きい。従って、第2横サイズNx2は、第1横サイズNx1と同じ、または、第1横サイズNx1未満であってよい。また、第2縦サイズNy2は、第1縦サイズNy1と同じ、または、第1縦サイズNy1未満であってよい。
A4.学習処理:
図4は、学習処理の例を示すフローチャートである。本実施例では、第1種物体検出モデルM1と第2種物体検出モデルM2とは、それぞれ、図4の手順に従って学習される。第1プログラム231は、第1種物体検出モデルM1の学習処理のためのプログラムであり、第2プログラム232は、第2種物体検出モデルM2の学習処理のためのプログラムである。作業者は、学習処理の開始指示を、操作部250(図1)を操作することによって、データ処理装置200に入力する。入力される開始指示は、処理対象のモデル(第1種物体検出モデルM1、または、第2種物体検出モデルM2)を示す情報を含んでいる。プロセッサ210は、開始指示に従って、処理対象のモデルの学習処理を開始する。まず、第1種物体検出モデルM1の学習処理について説明する。プロセッサ210は、第1プログラム231を実行することによって、第1種物体検出モデルM1を学習する。
S110-S210は、学習画像データの生成処理である。本実施例では、プロセッサ210は、版下画像の版下データを使用して、複数の学習画像データを生成する。S110では、プロセッサ210は、版下データを取得する。図5(A)-図5(D)は、第1種物体検出モデルM1の学習処理で使用される画像の例を示す概略図である。各図中の画像L1は、版下画像の例を示している(画像L1を、版下画像L1と呼ぶ)。版下画像L1は、第1ラベルLB1の設計画像である。本実施例では、第1ラベルLB1は、第1ラベルLB1の画像をシートに印刷することによって、製造される。版下画像は、印刷すべき第1ラベルLB1の画像である。ここで、版下画像L1の形状は、第1方向Dxに平行な2辺と第2方向Dyに平行な2辺とを有する矩形状であることとする。
版下データのデータ形式は、ビットマップ形式、ベクトル形式など、種々の形式であってよい。本実施例では、版下データは、ビットマップ形式のデータであることとする。版下データは、予め、不揮発性記憶装置230に格納されていることとする(図示省略)。プロセッサ210は、不揮発性記憶装置230から、版下データを取得する。
S170(図4)では、プロセッサ210は、版下画像のデータ拡張処理を実行する。データ拡張処理は、画像処理によって画像データを増やす処理である。画像処理としては、種々の処理が実行されてよい。図5(A)-図5(D)は、それぞれ、画像処理の例を示している。
図5(A)の画像処理は、色変更処理である。まず、図5(A)の中央部分に示されるように、プロセッサ210は、版下画像L1のうち要素EL1-EL7をそれぞれ示す部分領域A1-A7を決定する。本実施例では、プロセッサ210は、版下画像L1を分析することによって、部分領域A1-A7を決定する。部分領域A1-A7の決定処理は、種々の処理であってよい。プロセッサ210は、例えば、予め決められた背景色範囲内の色を有する画素を背景画素として選択し、他の画素を要素画素として選択する。プロセッサ210は、複数の要素画素が連続する領域を、部分領域として選択する。図5(A)の例では、互いに離れた部分領域A1-A7が選択される。これに代えて、作業者は、各部分領域A1-A7のそれぞれを指定する情報を、操作部250を介して、入力してよい。プロセッサ210は、入力された情報を使用して、部分領域A1-A7を決定してよい。
次に、プロセッサ210は、部分領域A1-A7のそれぞれの色値を変更することによって、処理済版下画像L1aのデータを生成する。プロセッサ210は、乱数を使用して、色値を変更する。例えば、プロセッサ210は、部分領域A1-A7毎に、赤Rの変更量と、緑Gの変更量と、青Bの変更量と、のそれぞれを、乱数を使用して決定する。変更量は、例えば、-1以上、1以下の乱数に10を乗じて得られる値であってよい。そして、プロセッサ210は、部分領域A1-A7の各画素の赤Rと緑Gと青Bの成分値に、対応する色の変更量を加算することによって、部分領域A1-A7の色値を変更する。処理済版下画像L1aは、元の色と異なる色で示される要素EL1-EL7を含む第1ラベルの画像である。
図5(B)の画像処理は、画像のリサイズ処理である。リサイズ処理としては、縮小処理と拡大処理とのいずれかが実行される。縮小処理は、画像の画素数(すなわち、画素密度)を低減する処理である。例えば、プロセッサ210は、版下画像L1のデータの縮小処理によって、縮小された第1ラベルを示す処理済版下画像L1bのデータを生成する。拡大処理は、画像の画素数(すなわち、画素密度)を増大する処理である。例えば、プロセッサ210は、版下画像L1のデータの拡大処理によって、拡大された第1ラベルを示す処理済版下画像L1cのデータを生成する。プロセッサ210は、処理前のサイズと処理後のサイズとの比率(例えば、画素密度の比率)を、乱数を使用して決定する。リサイズ処理による各画素の色値の決定方法は、種々の方法であってよい(例えば、ニアレストネイバ、バイリニア、バイキュービックなど)。また、プロセッサ210は、画像の縦横比を変更してよい。
図5(C)の画像処理は、画像の回転処理である。例えば、プロセッサ210は、版下画像L1を反時計回りに回転させることによって、回転された第1ラベルを示す処理済版下画像L1dのデータを生成する。また、プロセッサ210は、版下画像L1を時計回りに回転させることによって、回転された第1ラベルを示す処理済版下画像L1eのデータを生成する。プロセッサ210は、乱数を使用して回転角度を決定する。回転処理による各画素の色値の決定方法は、種々の方法であってよい(例えば、ニアレストネイバ、バイリニア、バイキュービックなど)。
図5(D)の画像処理は、ぼかし処理である。例えば、プロセッサ210は、版下画像L1のぼかし処理を実行することによって、ぼけた第1ラベルを示す処理済版下画像L1fのデータを生成する。ぼかし処理は、平滑化とも呼ばれる。ぼかし処理は、種々の処理であってよい。本実施例では、プロセッサ210は、平滑化フィルタ(例えば、中央値フィルタ)を使用するフィルタ処理を実行する。
なお、S170(図4)では、プロセッサ210は、図5(A)-図5(D)で説明した画像処理に限らず、他の種々の画像処理(例えば、ノイズ付加)を実行してよい。また、プロセッサ210は、1個の処理済版下画像のデータを生成するために、複数種類の画像処理を実行してよい。例えば、プロセッサ210は、回転処理と拡大処理とを実行することによって、処理済版下画像のデータを生成してよい。本実施例では、プロセッサ210は、乱数を使用して、S170の画像処理を決定する。
S180では、プロセッサ210は、背景画像データを取得する。背景画像は、処理済版下画像(すなわち、第1ラベルLB1の画像)との合成に使用される(詳細は、後述)。背景画像は、種々の画像であってよい。例えば、背景画像は、種々の写真画像であってよい。背景画像は、複合機900の写真画像であってよい。背景画像は、複合機900とは異なる他の被写体の写真画像であってよい。また、背景画像は、写真画像に代えて、種々のグラフィックスであってよい。グラフィックスとしては、例えば、コンピュータによって描画される描画画像が採用されてよい。描画画像は、例えば、一様な模様の画像であってよく、無地画像であってよい。描画画像は、ランダムな色で表されるランダムなパターンであってよい。
本実施例では、プロセッサ210は、乱数を使用して、背景画像データを取得する。具体的には、互いに異なる背景画像を表す複数の背景画像データが、予め、不揮発性記憶装置230に格納されている(図示省略)。プロセッサ210は、乱数を使用して、新たな背景画像データを生成するか否かを判断する。新たなデータを生成すると判断される場合、プロセッサ210は、背景画像のパターンを乱数を使用して決定し、そのパターンの色を乱数を使用して決定する。新たなデータを生成しないと判断される場合、プロセッサ210は、不揮発性記憶装置230から、乱数を使用して、背景画像データを取得する。
S190では、プロセッサ210は、背景画像と処理済版下画像とを合成することによって、合成画像を生成する。プロセッサ210は、背景画像上の処理済版下画像の位置を、乱数を使用して決定する。図6(A)-図6(C)は、第1種物体検出モデルM1のための合成画像の例を示す概略図である。図6(A)の合成画像C1aは、複合機900の写真画像上に第1ラベルLB1の1個の処理済版下画像L1gを重畳して得られる。
図6(B)の合成画像C1bは、描画画像上に第1ラベルLB1の2個の処理済版下画像L1h、L1iを重畳して得られる。このように、1枚の合成画像は、2以上の第1ラベルLB1の画像を含んでよい。S170では、プロセッサ210は、互いに異なる画像処理を実行することによって、複数の処理済版下画像のデータを生成してよい。なお、プロセッサ210は、合成すべき第1ラベルLB1の処理済版下画像の総数(例えば、1以上の整数)を、乱数を使用して決定してよい。
図6(C)の合成画像C1cは、無地画像上に、第1ラベルLB1の2個の処理済版下画像L1j、L1kと、第2ラベルLB2の1個の処理済版下画像L2aと、を重畳して得られる。このように、合成画像は、第1ラベルLB1とは異なるラベル(例えば、第2ラベルLB2)の画像を含んでよい。例えば、S170では、プロセッサ210は、さらに、処理対象の第1ラベルLB1とは異なるラベルである非対象ラベル(例えば、第2ラベルLB2)の版下画像のデータ拡張処理を実行する。そして、S190では、プロセッサ210は、第1ラベルLB1の処理済版下画像に加えて、非対象ラベルの処理済版下画像を背景画像に合成する。プロセッサ210は、合成すべき非対象ラベルの処理済版下画像の総数(例えば、ゼロ以上の整数)を、乱数を使用して決定してよい。
なお、1枚の合成画像が複数のラベル画像を含む場合、プロセッサ210は、複数のラベル画像が互いに重ならないように、複数のラベル画像を合成する。
S200(図4)では、プロセッサ210は、合成画像のデータ拡張処理を実行する。S200では、S170と同様に、プロセッサ210は、種々の画像処理を実行する。例えば、図6(A)の処理済合成画像C1axは、合成画像C1aの回転処理によって生成される。図6(B)の処理済合成画像C1bxは、合成画像C1bのぼかし処理によって生成される。図6(C)の処理済合成画像C1cxは、合成画像C1cの平行移動によって生成される。プロセッサ210は、乱数を使用して、S200の画像処理を決定する。
S203(図4)では、プロセッサ210は、処理済合成画像のデータに関連付けられる注釈データ(アノテーションデータと呼ばれることもある)を生成する。注釈データは、適切なバウンディングボックス(例えば、第1方向Dxに平行な2辺と第2方向Dyに平行な2辺とを有する矩形であって、検出対象(第1ラベルLB1など)の画像に外接する最小の矩形)と適切なクラス(例えば、ラベルの識別番号)とを示している。本実施例では、プロセッサ210は、S170、S190、S200の各処理の内容に基づいて、注釈データを生成する。なお、本実施例では、第1種物体検出モデルM1は、第1ラベルLB1を検出するように学習される。従って、注釈データからは、他のラベルを示す情報は、省略されてよい。例えば、図6(C)の処理済版下画像L2aを示すバウンディングボックスとクラスを示す情報は、省略されてよい。
S206では、プロセッサ210は、処理済合成画像のデータである学習画像データと、注釈データと、のセットを、不揮発性記憶装置230に格納する。以下、第1種物体検出モデルM1のための学習画像を、第1種学習画像とも呼ぶ。
S210(図4)では、プロセッサ210は、終了条件が満たされるか否かを判断する。終了条件は、適切な学習のための複数の学習画像データが生成されることを示す種々の条件であってよい。例えば、終了条件は、学習画像データの総数が予め決められた閾値以上であること、であってよい。終了条件が満たされない場合(S210:No)、プロセッサ210は、S170へ移行して、新たな学習画像データを生成する。
終了条件が満たされる場合(S210:Yes)、S240で、プロセッサ210は、学習画像データを使用して、第1ラベルLB1を検出するように第1種物体検出モデルM1を学習する。第1種物体検出モデルM1の学習方法は、第1種物体検出モデルM1に適する任意の方法であってよい。
例えば、プロセッサ210は、学習画像データを使用して第1種物体検出モデルM1の演算を実行することによって、出力データを生成する。そして、プロセッサ210は、物体検出モデルM1に入力される学習画像に対応する注釈データによって示される正解に出力データが近づくように、第1種物体検出モデルM1の複数の演算パラメータを調整する。第1種物体検出モデルM1の複数の演算パラメータは、例えば、畳込層の複数のフィルタの複数の重みと複数のバイアスなどを含んでいる
演算パラメータの調整方法は、種々の方法であってよい。本実施例では、損失関数を使用して算出される損失が小さくなるように、第1種物体検出モデルM1の複数の演算パラメータが調整される。損失関数は、出力データと正解のデータとの間の差の評価値を算出する種々の関数であってよい。複数の演算パラメータを調整するためのアルゴリズムとしては、例えば、誤差逆伝播法と勾配降下法とを使用したアルゴリズムが採用されてよい。ここで、いわゆるAdamの最適化が行われてよい。
なお、本実施例では、第1種物体検出モデルM1は、YOLOv4モデルである。第1種物体検出モデルM1は、YOLOv4の以下の論文に記載の訓練方法によって、訓練されてよい。
Alexey Bochkovskiy, Chien-Yao Wang, Hong-Yuan Mark Liao, "YOLOv4: Optimal Speed and Accuracy of Object Detection", arXiv:2004.10934 (2020), https://arxiv.org/abs/2004.10934
S250では、プロセッサ210は、学習済の第1種物体検出モデルM1を示すデータを、記憶装置215(ここでは、不揮発性記憶装置230)に格納する。そして、プロセッサ210は、図4の処理を終了する。学習済の第1種物体検出モデルM1は、後述する検査処理で使用される。
次に、第2種物体検出モデルM2の学習処理について説明する。プロセッサ210は、第2プログラム232を実行することによって、第2種物体検出モデルM2を学習する。第1種物体検出モデルM1の学習処理との差異は、第2種物体検出モデルM2の学習処理では、学習画像が、より多い画素数で第1ラベルLB1を表している点である。学習処理の手順は、図4の手順と同じである。
図6(D)-図6(F)は、第2種物体検出モデルM2のための合成画像の例を示す概略図である。図6(D)の合成画像D2aは、背景画像上に第1ラベルLB1の1個の処理済版下画像L1lを重畳して得られる(S190)。処理済合成画像D2axは、合成画像D2aのノイズ付加処理によって生成される(S200)。図6(E)の合成画像D2bは、背景画像上に第1ラベルLB1の1個の処理済版下画像L1mを重畳して得られる(S190)。処理済合成画像D2bxは、合成画像D2bのぼかし処理によって生成される(S200)。図6(F)の合成画像D2cは、背景画像上に第1ラベルLB1の1個の処理済版下画像L1nと、第2ラベルLB2の1個の処理済版下画像L2bと、を重畳して得られる。処理済合成画像D2cxは、合成画像D2cの回転処理によって生成される(S200)。このように、合成画像は、第1ラベルLB1とは異なるラベル(例えば、第2ラベルLB2)の画像を含んでよい。
このように、S110-S210(図4)では、プロセッサ210は、処理済合成画像D2ax、D2bx、D2cxのような種々の学習画像のデータを生成する。以下、第2種物体検出モデルM2のための学習画像を、第2種学習画像とも呼ぶ。本実施例では、第2種学習画像の1個の第1ラベルLB1を示す複数の画素の数は、第1種学習画像(例えば、処理済合成画像C1ax-C1cx(図6(A)-図6(C)))の1個の第1ラベルLB1を示す複数の画素の数よりも、多い。すなわち、第2種学習画像は、第1種学習画像と比べて、第1ラベルLB1を高い画素密度で表している。また、本実施例では、第2種学習画像のうちの1個の第1ラベルLB1を示す部分の割合は、第1種学習画像(例えば、処理済合成画像C1ax-C1cx(図6(A)-図6(C)))のうちの1個の第1ラベルLB1を示す部分の割合よりも、大きい。
S240(図4)では、プロセッサ210は、複数の第2種学習画像のデータを使用して、第1ラベルLB1を検出するように第2種物体検出モデルM2を学習する。第2種物体検出モデルM2の学習方法は、第2種物体検出モデルM2に適する任意の方法であってよい。例えば、第2種物体検出モデルM2は、第1種物体検出モデルM1の学習方法と同じ方法で学習されてよい。
S250では、プロセッサ210は、学習済の第2種物体検出モデルM2を示すデータを、記憶装置215(ここでは、不揮発性記憶装置230)に格納する。そして、プロセッサ210は、図4の処理を終了する。学習済の第2種物体検出モデルM2は、後述する検査処理で使用される。
A5.検査処理:
図7は、検査処理の例を示すフローチャートである。データ処理装置200(図1)は、検査処理を実行することによって、複合機900(図2(A))の第1ラベルLB1の外観を検査する。第3プログラム233は、検査処理のためのプログラムである。
本実施例では、検査のために、複合機900は、予め決められた位置に配置される。複合機900のこの位置は、デジタルカメラ110による第1ラベルLB1の撮影に適する位置である。本実施例では、複合機900の配置は、ベルトコンベアなどの機械によって行われる。複合機900の配置の後、検査処理の開始指示が、データ処理装置200に入力される。本実施例では、作業者は、操作部250を操作することによって、検査処理の開始指示を入力する。プロセッサ210は、開始指示に応じて、検査処理を開始する。なお、複合機900の配置は、作業者によって行われてよい。複合機900に代えて、デジタルカメラ110の位置が複合機900に適する位置に調整されてよい。開始指示は、データ処理装置200とは異なる他の装置によって、通信インタフェース270を介して、データ処理装置200に供給されてよい。
S410では、プロセッサ210は、撮影指示をデジタルカメラ110に供給する。デジタルカメラ110は、指示に応じて、複合機900を撮影し、撮影画像を表すデータを生成する。プロセッサ210は、デジタルカメラ110から撮影画像のデータを取得する。
図8(A)-図8(E)は、検査処理で使用される画像の例を示す概略図である。図8(A)の画像IM0は、撮影画像の例を示している(画像IM0を、撮影画像IM0と呼ぶ)。撮影画像IM0は、第1ラベルLB1の画像を含んでいる。
S420(図7)では、プロセッサ210は、撮影画像のデータを使用して、第1種物体検出モデルM1に入力すべき第1入力画像データを取得する。図8(B)の画像IM1は、第1入力画像の例を示している(画像IM1を、第1入力画像IM1と呼ぶ)。プロセッサ210は、撮影画像のデータに対するトリミング処理と解像度変換処理とを実行することによって、第1入力画像データを生成する。このように、第1入力画像は、撮影画像を表している。撮影画像中の第1ラベルLB1を表し得る部分は、予め決められている。プロセッサ210は、第1ラベルLB1を表し得る部分を第1入力画像が含むように、第1入力画像データを生成する。これにより、第1入力画像は、第1ラベルLB1の画像の全体を含み得る。なお、図8(B)の第1画素数PN1は、第1入力画像IM1における第1ラベルLB1を示す画素の総数を示している。
S430(図7)では、プロセッサ210は、第1入力画像データを第1種物体検出モデルM1に入力することによって、注目オブジェクト(ここでは、第1ラベルLB1)を表す第1種領域を検出する。本実施例では、第1種物体検出モデルM1によって、第1ラベルLB1を示すバウンディングボックスが検出される。以下、第1種物体検出モデルM1によって検出されるバウンディングボックスを、第1種バウンディングボックスと呼ぶ。第1種領域は、第1種バウンディングボックスによって囲まれる領域である。図8(C)のボックスBB1は、第1入力画像IM1から検出される第1種バウンディングボックスの例を示している。第1種バウンディングボックスBB1は、第1ラベルLB1を囲んでいる。領域AA1は、第1種領域を示している。第1残余領域AX1は、第1入力画像IM1から第1種領域AA1を除いた残りの領域である。
S440(図7)では、プロセッサ210は、撮影画像のデータと、第1種バウンディングボックスと、を使用して、第2種物体検出モデルM2に入力すべき第2入力画像データを取得する。図8(D)の画像IM2は、第2入力画像の例を示している(画像IM2を、第2入力画像IM2と呼ぶ)。プロセッサ210は、撮影画像のデータに対するトリミング処理と解像度変換処理とを実行することによって、第2入力画像データを生成する。このように、第2入力画像IM2は、撮影画像を表している。ここで、プロセッサ210は、第1残余領域AX1(図8(C))の少なくとも一部が第2入力画像IM2に含まれないように、第2入力画像データを生成する。例えば、第1残余領域AX1のうちの第1種領域AA1から遠い部分は、除かれる。また、プロセッサ210は、第1入力画像IM1のうち、第1種領域AA1の全体と、第1種領域AA1の周辺部分AX2(図8(D))とが、第2入力画像IM2に含まれるように、第2入力画像データを生成する。第1ラベルLB1の画像の一部は、第1種バウンディングボックスの外にはみ出得る。この場合も、第2入力画像IM2は、第1ラベルLB1の画像の全体を含むことができる。図中の第2画素数PN2は、第2入力画像IM2における第1ラベルLB1を示す画素の総数を示している。本実施例では、プロセッサ210は、PN2>PN1となるように、第2入力画像データを生成する。
周辺部分AX2(すなわち、第2入力画像IM2から第1種領域AA1を除いた残りの部分)の決定方法は、任意の方法であってよい。プロセッサ210は、例えば、第1種領域AA1の全周に亘って、周辺部分AX2の幅Wが予め決められた幅閾値以上となるように、周辺部分AX2を決定してよい。なお、周辺部分AX2は、第2入力画像IM2から省略されてよい。すなわち、第2入力画像IM2は、第1種領域AA1に外接する矩形領域の画像であってよい。
なお、本実施例では、デジタルカメラ110によって生成される撮影画像IM0(図8(A)の画素密度は、入力画像IM1、IM2(図8(B)、図8(D))と比べて高い画素密度で第1ラベルLB1を表すように、予め決定される。従って、第2入力画像IM2は、ぼやけさせずに第1ラベルLB1を表現できる。S420、S440では、画素密度を低減する解像度変換が行われる。なお、撮影画像IM0の画素密度は、第2入力画像IM2が第1入力画像IM1よりも鮮明に第1ラベルLB1を表現できるような、種々の画素密度であってよい。例えば、撮影画像IM0の画素密度は、第1入力画像IM1における第1ラベルLB1の画素密度よりも高い画素密度で第1ラベルLB1を表すような、種々の値であってよい。ここで、撮影画像IM0の画素密度は、第2入力画像IM2における第1ラベルLB1の画素密度以下の画素密度で第1ラベルLB1を表すような値であってよい。
S450(図7)では、プロセッサ210は、第2入力画像データを第2種物体検出モデルM2に入力することによって、注目オブジェクト(ここでは、第1ラベルLB1)を表す第2種領域を検出する。本実施例では、第2種物体検出モデルM2によって、第1ラベルLB1を示すバウンディングボックスが検出される。以下、第2種物体検出モデルM2によって検出されるバウンディングボックスを、第2種バウンディングボックスと呼ぶ。第2種領域は、第2種バウンディングボックスによって囲まれる領域である。図8(E)のボックスBB2は、第2入力画像IM2から検出される第2種バウンディングボックスの例を示している。第2種バウンディングボックスBB2は、第1ラベルLB1を囲んでいる。領域AA2は、第2種領域を示している。
S460では、プロセッサ210は、S450で注目オブジェクト(ここでは、第1ラベルLB1)が検出されるか否かを判断する。本実施例では、第1ラベルLB1のための第2種バウンディングボックス(すなわち、第2種領域AA2)が検出される場合、判断結果は、Yesである。この場合、S480で、プロセッサ210は、検査結果を合格に決定する。そして、プロセッサ210は、S490へ移行する。
第1ラベルLB1のための第2種バウンディングボックスが検出されない場合(S460:No)、S485で、プロセッサ210は、検査結果を不合格に決定する。そして、プロセッサ210は、S490へ移行する。
S490では、プロセッサ210は、検査結果を示すデータを記憶装置215(例えば、不揮発性記憶装置230)に格納する。そして、プロセッサ210は、図7の処理を終了する。
以上のように、本実施例では、データ処理装置200のプロセッサ210は、以下の処理を実行する。図7のS430では、プロセッサ210は、第1入力画像データを使用して、第1入力画像IM1(図8(C))から第1ラベルLB1を表す第1種領域AA1を検出する。第1ラベルLB1は、処理対象のオブジェクトである第1オブジェクトの例である。第1入力画像IM1は、第1ラベルLB1の撮影画像の例である。第1入力画像データは、第1ラベルLB1の撮影画像の第1画像データの例である。図8(C)に示すように、第1入力画像データは、第1ラベルLB1を第1画素数PN1で表している。
図7のS450では、プロセッサ210は、第2入力画像データを使用して、第2入力画像IM2(図8(E))から第1ラベルLB1を表す第2種領域AA2を検出する。第2入力画像IM2は、第1入力画像IM1(図8(C))のうちの第1種領域AA1を含む部分画像である。第2入力画像IM2は、第1残余領域AX1(図8(C))の少なくとも一部を含まない画像である。第1残余領域AX1は、第1入力画像IM1から第1種領域AA1を除いた残りの領域である。ここで、第2入力画像IM2のデータは、第1ラベルLB1を、第1画素数PN1よりも多い第2画素数PN2で表している。
S460-S485では、プロセッサ210は、第2種領域AA2の検出結果を使用して、第1ラベルLB1を検査する。本実施例では、第2種領域AA2が検出される場合(S460:Yes)、検査結果は合格である(S480)。第2種領域AA2が検出されない場合(S460:No)、検査結果は不合格である(S485)。
複合機900(図2(A))には、第1ラベルLB1とは異なるラベル(例えば、第2ラベルLB2)が、誤って貼付され得る。また、複合機900には、不具合を有するラベルが貼付され得る。S450(図7)で使用される第2入力画像データは、S430で使用される第1入力画像データと比べて、より高い画素密度でラベルを表している。従って、S450では、S430と比べて、不適切なラベル(例えば、第2ラベルLB2、不具合を有するラベル、など)の誤検出の可能性は、小さい。この結果、第1ラベルLB1の検査に、第1ラベルLB1を表す第2種領域AA2の適切な検出結果を使用できる。そして、不適切な検査の可能性は、低減する。
また、S430で使用される第1入力画像データは、S450で使用される第2入力画像データと比べて、より低い画素密度でラベルを表している。従って、プロセッサ210は、計算資源(例えば、処理に使用されるメモリの容量など)の過度の増大を抑制しつつ、第2入力画像IM2よりも広い領域を示す第1入力画像IM1から、第1ラベルLB1の第1種領域AA1を適切に検出できる。
また、図8(A)-図8(E)に示すように、処理対象のオブジェクトである第1オブジェクトは、ラベルである(具体的には、第1ラベルLB1)。プロセッサ210は、ラベルを適切に検査できる。
また、S430(図7)では、プロセッサ210は、第1種物体検出モデルM1を使用して、第1入力画像IM1から第1ラベルLB1を表す第1種領域AA1を検出する。第1種物体検出モデルM1は、第1ラベルLB1を検出するように学習済のモデルである。プロセッサ210は、学習済の第1種物体検出モデルM1を使用して、第1種領域AA1を適切に検出できる。また、S450では、プロセッサ210は、第2種物体検出モデルM2を使用して、第2入力画像IM2から第1ラベルLB1を表す第2種領域AA2を検出する。第2種物体検出モデルM2は、第1ラベルLB1を検出するように学習済のモデルである。プロセッサ210は、学習済の第2種物体検出モデルM2を使用して、第2種領域AA2を適切に検出できる。
B.第2実施例:
B1.学習処理:
図9は、学習処理の第2実施例を示すフローチャートである。本実施例では、第2種物体検出モデルは、ラベルに含まれる要素毎に準備される。第2種物体検出モデルは、対応する要素を検出する。第1ラベルLB1(図2(B))は、7個の要素EL1-EL7を含んでいる。第1ラベルLB1の検査のために、7個の第2種物体検出モデルが準備される。以下、要素毎に準備される第2種物体検出モデルを、要素検出モデルM2jと呼ぶ。個々の要素検出モデルM2jを区別する場合には、符号の末尾の文字「j」を要素の識別子に置換して得られる符号を使用する。本実施例では、各要素に、予め、識別番号が割り当てられていることとする。要素の符号(例えば、EL1、EL2など)の末尾の番号が、識別番号と同じであることとする。例えば、第1要素検出モデルM21は、第1要素EL1を検出するためのモデルであり、第2要素検出モデルM22は、第2要素EL2を検出するためのモデルである。図9の学習処理は、各要素検出モデルM2jを学習する。本実施例では、第2プログラム232(図1)は、図9の処理を実行するように、構成される。
S110aは、図4のS110と同じである。プロセッサ210は、版下データを取得する。
S120aでは、プロセッサ210は、版下画像を分析することによって、版下画像を、複数の要素領域に分割する。要素領域は、ラベルに含まれる要素を示す領域である。図10(A)は、要素領域の例を示す概略図である。プロセッサ210は、7個の要素EL1-EL7をそれぞれ示す7個の要素領域EA1-EA7を、版下画像L1から取得する。要素領域の取得方法は、任意の方法であってよい。プロセッサ210は、例えば、予め決められた背景色範囲内の色を有する画素を背景画素として選択し、他の画素を要素画素として選択する。プロセッサ210は、複数の要素画素が連続する領域を、要素領域として選択する。
S130aでは、プロセッサ210は、複数の要素領域の間の相対位置情報を取得する。図10(B)は、相対位置情報の例を示す概略図である。相対位置情報310は、要素番号と位置条件との対応関係を示している。要素番号は、各要素領域の要素の識別番号を示している。プロセッサ210は、要素領域の画像を分析することによって、要素番号を決定する。要素番号の決定方法は、任意の方法であってよい。プロセッサ210は、例えば、予め準備される要素の基準画像(図示せず)を使用するパターンマッチングによって、各要素領域の要素番号を決定する。
位置条件は、要素番号の要素領域と、他の要素領域と、の間の位置関係を示している。具体的には、位置条件は、他の要素領域に対する第1方向Dxの配置と、第2方向Dyの配置とを、示している。第1方向Dxの配置は、右と左から選択される。右は、第1方向Dxを示し、左は、第1方向Dxの反対方向を示している。第2方向Dyの配置は、下と上から選択される。下は、第2方向Dyを示し、上は、第2方向Dyの反対方向を示している。ここで、要素領域の重心位置が、比較される。1番の要素番号の位置条件によって示されるように、第1要素領域EA1は、要素領域EA2、EA6の左に位置し、要素領域EA3-EA7の上に位置する。2つの要素領域の間の位置の差が予め決められた位置閾値以下である場合、その2つの要素領域の相対位置は、位置条件から省略される。例えば、図10(A)の例では、第1要素領域EA1と第2要素領域EA2との間では、第2方向Dyの位置の差は小さい。従って、第2要素領域EA2に対する第1要素領域EA1の第2方向Dyの配置は、省略される。相対位置情報310は、更に、他の要素領域EA2-EA7のそれぞれの位置条件を示している(要素領域EA4-EA7の位置条件の図示は省略されている)。
プロセッサ210は、相対位置情報310を示すデータを、記憶装置215(例えば、不揮発性記憶装置230)に格納する。相対位置情報310は、後述する検査処理で、参照される(相対位置情報310を、参考位置情報310とも呼ぶ)。
S160a-S210a(図9)は、学習画像データの生成処理である。本実施例では、プロセッサ210は、複数の要素検出モデルM2jのそれぞれのための学習画像データを生成する。
S160aでは、プロセッサ210は、Q個の要素からM個の要素を選択する。ここで、Qは、処理対象の要素の総数である。本実施例では、第1ラベルLB1の全ての要素EL1-EL7が、処理対象である。従って、数Qは、第1ラベルLB1の要素の総数Nと同じである(本実施例では、Q=N=7)。Mは、1以上Q以下の整数である。本実施例では、M=1であることとする。プロセッサ210は、Q個の要素からM個の要素を、乱数を使用して選択する。Mが2以上に設定される場合については、後述する別の実施例で説明する。
S170aでは、プロセッサ210は、要素の画像のデータ拡張処理を実行する。プロセッサ210は、版下データから、M個の要素に対応するM個の要素領域のM個の画像データを取得する(取得されるデータを、要素画像データと呼ぶ)。プロセッサ210は、M個の要素画像データのそれぞれのデータ拡張処理を実行する。プロセッサ210は、図4のS170のデータ拡張処理と同様に、種々の画像処理を実行することによって、処理済要素画像データを生成する。図11(A)-図11(D)は、画像処理の例を示す概略図である。
図11(A)の画像処理は、色変更処理である。色変更処理は、図5(A)の実施例の色変更処理と同じである。例えば、プロセッサ210は、第1要素領域EA1の要素画像EI1の色値の変更によって、処理済要素画像EI1aのデータを生成する。
図11(B)の画像処理は、画像のリサイズ処理である。リサイズ処理は、図5(B)の実施例のリサイズ処理と同じである。例えば、プロセッサ210は、第4要素領域EA4の要素画像EI4のデータの縮小処理によって、縮小された要素EL4を示す処理済要素画像EI4aのデータを生成する。また、プロセッサ210は、要素画像EI4のデータの拡大処理によって、拡大された要素EL4を示す処理済要素画像EI4bのデータを生成する。
図11(C)の画像処理は、画像の回転処理である。回転処理は、図5(C)の実施例の回転処理と同じである。例えば、プロセッサ210は、第6要素領域EA6の要素画像EI6を反時計回りに回転させることによって、回転された第6要素EL6を示す処理済要素画像EI6aのデータを生成する。また、プロセッサ210は、要素画像EI6を時計回りに回転させることによって、回転された第6要素EL6を示す処理済要素画像EI6bのデータを生成する。
図11(D)の画像処理は、ぼかし処理である。ぼかし処理は、図5(D)の実施例のぼかし処理と同じである。例えば、プロセッサ210は、第3要素領域EA3の要素画像EI3のぼかし処理を実行することによって、ぼけた第3要素EL3を示す処理済要素画像EI3bのデータを生成する。
S170a(図9)では、プロセッサ210は、図4のS170と同様に、乱数を使用して、S170aのM個の要素画像のそれぞれの画像処理を決定する。
S180aは、図4のS180と同じである。プロセッサ210は、背景画像データを取得する。
S190aでは、プロセッサ210は、背景画像とM個の処理済要素画像とを合成することによって、合成画像を生成する。プロセッサ210は、背景画像上のM個の処理済要素画像のそれぞれの位置を、乱数を使用して決定する。図12(A)-図12(C)は、合成画像の例を示す概略図である。図12(A)の合成画像E1aは、背景画像上に、第1要素EL1の処理済要素画像EI1bを重畳して得られる。図12(B)の合成画像E1bは、背景画像上に、第6要素EL6の処理済要素画像EI6cを重畳して得られる。図12(C)の合成画像E1cは、背景画像上に、第2要素EL2の処理済要素画像EI2aを重畳して得られる。
S200aでは、プロセッサ210は、合成画像のデータ拡張処理を実行する。S200aでは、S170aと同様に、プロセッサ210は、種々の画像処理を実行する。例えば、図12(A)の処理済合成画像E1axは、合成画像E1aの回転処理によって生成される。図12(B)の処理済合成画像E1bxは、合成画像E1bのぼかし処理によって生成される。図12(C)の処理済合成画像E1cxは、合成画像E1cのノイズ付加処理によって生成される。プロセッサ210は、乱数を使用して、S200aの画像処理を決定する。
S203aでは、プロセッサ210は、処理済合成画像のデータに関連付けられる注釈データを生成する。注釈データは、適切なバウンディングボックスと適切なクラス(例えば、要素の識別番号)とを示している。本実施例では、プロセッサ210は、S170a、S190a、S200aの各処理の内容に基づいて、注釈データを生成する。
S206aでは、プロセッサ210は、処理済合成画像のデータである第2種学習画像データと、注釈データと、のセットを、不揮発性記憶装置230に格納する。
S210aでは、プロセッサ210は、終了条件が満たされるか否かを判断する。本実施例では、終了条件は、Q個の要素検出モデルM2jのそれぞれの適切な学習のための複数の学習画像データが生成されることを示す種々の条件であってよい。例えば、終了条件は、Q個の要素のそれぞれの要素終了条件が満たされることであってよい。1個の注目要素のための要素終了条件は、注目要素の画像を含む学習画像データの総数が予め決められた閾値以上であることであってよい。終了条件が満たされない場合(S210a:No)、プロセッサ210は、S160aへ移行して、新たな学習画像データを生成する。
終了条件が満たされる場合(S210a:Yes)、プロセッサ210は、S220a-S260aを実行することによって、Q個の要素に対応するQ個の要素検出モデルM2jを、1つずつ順番に、学習する。
S220aでは、プロセッサ210は、Q個の要素から処理対象の1個の要素である対象要素ELxを選択する。対象要素ELxとしては、未学習の要素が選択される。
S230aでは、プロセッサ210は、対象要素ELxの画像を含む学習画像のデータセットを不揮発性記憶装置230から取得する。
S240aでは、プロセッサ210は、S230aで取得した学習画像のデータセットを使用して、対象要素ELxに対応する要素検出モデルM2jである対象要素検出モデルM2xを学習する。学習方法は、図4のS240の学習方法と同じである。対象要素検出モデルM2xは、対象要素ELxを検出するように、学習される。
S250aでは、プロセッサ210は、学習済の対象要素検出モデルM2xを示すデータを、記憶装置215(ここでは、不揮発性記憶装置230)に格納する。
S260aでは、プロセッサ210は、Q個の要素に対応するQ個の要素検出モデルM2jの学習が完了したか否かを判断する。未学習の要素検出モデルM2jが残っている場合(S260a:No)、プロセッサ210は、S220aへ移行して、新たな対象要素ELxに対応する対象要素検出モデルM2xを学習する。Q個の要素検出モデルM2jの学習が完了した場合(S260a:Yes)、プロセッサ210は、図9の処理を終了する。
B2.検査処理:
図13は、検査処理の第2実施例を示すフローチャートである。図7の検査処理との差異は、S450、S460が、S450a、S470a、S475aに置換されている点だけである。S410-S440のそれぞれのステップの処理と、S480-S490のそれぞれのステップの処理とは、図7の同じ符号のステップの処理と同じである(説明を省略する)。本実施例では、第3プログラム233(図1)は、図13の処理を実行するように、構成される。
S440の後、S450aで、プロセッサ210は、第2入力画像データをN個の要素検出モデルM2jのそれぞれに入力することによって、N個の要素を検出する。N個の要素検出モデルM2jは、図9の学習処理で学習済のモデルである。
図14(A)、図14(B)は、要素の検出の概略図である。図14(A)は、第2入力画像IM2の例を示している。この第2入力画像IM2は、図8(D)の第2入力画像IM2と同じである。図14(B)は、第2入力画像IM2から検出されるバウンディングボックスの例を示している。本実施例は、プロセッサ210は、7個の要素検出モデルM2jを使用して、7個の要素EL1-EL7を示す7個のバウンディングボックスBBa1-BBa7を検出する。要素領域EAa1-EAa7は、それぞれ、バウンディングボックスBBa1-BBa7に囲まれる領域である。
S470a(図13)では、プロセッサ210は、N個の要素(ここでは、N個のバウンディングボックス)の全てが検出されるか否かを判断する。1以上の要素が検出されない場合(S470a:No)、S485で、プロセッサ210は、検査結果を不合格に決定する。そして、プロセッサ210は、S490へ移行する。
N個の要素の全てが検出される場合(S470a:Yes)、S475aで、プロセッサ210は、検出されるN個の要素の間の位置関係が正しいか否かを判断する。プロセッサ210は、S130a(図9)における参考位置情報310(図10(B))の取得方法と同じ方法で、N個の要素領域EAa1-EAa7(図14(B))の間の相対位置情報を取得する(対象位置情報と呼ぶ)。本実施例では、第2入力画像IM2内の第1ラベルLB1の向きは、版下画像L1(図10(A))内の第1ラベルLB1の向きと、おおよそ同じであることとする。従って、参考位置情報310は、N個の要素領域EAa1-EAa7の適切な位置関係を示す情報として、使用可能である。プロセッサ210は、対象位置情報と参考位置情報310とを比較することによって、検出されるN個の要素(すなわち、N個の要素領域EAa1-EAa7)の間の位置関係が正しいか否かを判断する。対象位置情報によって示される全ての位置関係が、参考位置情報310の位置条件に含まれる場合、プロセッサ210は、位置関係が正しいと判断する。対象位置情報が、参考位置情報310の位置条件に含まれない位置関係を示す場合、プロセッサ210は、位置関係が正しくないと判断する。
位置関係が正しいと判断される場合(S475a:Yes)、S480で、プロセッサ210は、検査結果を合格に決定する。そして、プロセッサ210は、S490へ移行する。位置関係が正しくないと判断される場合(S475a:No)、S485で、プロセッサ210は、検査結果を不合格に決定する。そして、プロセッサ210は、S490へ移行する。S490では、プロセッサ210は、検査結果を示すデータを記憶装置215(例えば、不揮発性記憶装置230)に格納する。そして、プロセッサ210は、図13の処理を終了する。
以上のように、本実施例では、データ処理装置200のプロセッサ210は、以下の処理を実行する。図13のS430の処理は、図7のS430の処理と同じである。図13のS450aでは、プロセッサ210は、第2入力画像データを使用して、第2入力画像IM2(図14(B))から、第1ラベルLB1の一部である要素EL1-EL7を表す要素領域EAa1-EAa7を検出する。第2入力画像IM2は、図8(D)の第2入力画像IM2と同じである。要素領域EAa1-EAa7は、それぞれ、第1ラベルLB1の少なくとも一部を表す第2種領域の例である。
S470a、S475a、S480、S485では、プロセッサ210は、第2種領域(ここでは、要素領域EAa1-EAa7)の検出結果を使用して、第1ラベルLB1を検査する。S450aで使用される第2入力画像データは、S430で使用される第1入力画像データと比べて、より高い画素密度でラベルを表している。従って、S450aにおける不適切な要素(例えば、第1ラベルLB1に含まれない要素)の誤検出の可能性は、第1入力画像データから要素が検出されると仮定する場合と比べて、小さい。この結果、第1ラベルLB1の検査に、第1ラベルLB1の一部を表す第2種領域(ここでは、要素領域EAa1-EAa7)の適切な検出結果を使用できる。そして、不適切な検査の可能性は、低減する。
また、S430で使用される第1入力画像データは、S450aで使用される第2入力画像データと比べて、より低い画素密度でラベルを表している。従って、プロセッサ210は、計算資源(例えば、処理に使用されるメモリの容量など)の過度の増大を抑制しつつ、第2入力画像IM2よりも広い領域を示す第1入力画像IM1から、第1ラベルLB1の第1種領域AA1を適切に検出できる。
また、図14(A)に示すように、第1ラベルLB1は、N個(Nは2以上の整数。本実施例では、N=7)の要素EL1-EL7を含んでいる。S450a(図13)では、プロセッサ210は、第2入力画像IM2からN個の要素EL1-EL7をそれぞれ表すN個の要素領域EAa1-EAa7を検出する。S470a-S485では、プロセッサ210は、要素領域EAa1-EAa7を使用して、第1ラベルLB1を検査する。S475aでは、プロセッサ210は、N個の要素領域EAa1-EAa7の位置関係と、参考位置情報310と、を比較することによって、第1ラベルLB1を検査する。参考位置情報310は、予め決められたN個の要素EL1-EL7の位置関係を示している。以上により、プロセッサ210は、ラベルに含まれるN個の要素EL1-EL7の位置関係を使用して、適切な検査を実行できる。例えば、要素の位置ずれなどの不具合をラベルが有する場合に、プロセッサ210は、検査結果が不合格であると適切に判断できる。
また、S450aでは、プロセッサ210は、N個の要素EL1-EL7をそれぞれ検出するように学習済のN個の要素検出モデルM2jを使用して、第2入力画像IM2からN個の要素EL1-EL7をそれぞれ表すN個の要素領域EAa1-EAa7を検出する。従って、プロセッサ210は、適切なN個の要素領域EAa1-EAa7をラベルの検査に使用できる。
また、S430(図13)では、プロセッサ210は、第1種物体検出モデルM1を使用して、第1入力画像IM1から第1ラベルLB1を表す第1種領域AA1を検出する。第1種物体検出モデルM1は、第1ラベルLB1を検出するように学習済のモデルである。プロセッサ210は、学習済の第1種物体検出モデルM1を使用して、第1種領域AA1を適切に検出できる。また、S450aでは、プロセッサ210は、第2種物体検出モデルM2jを使用して、第2入力画像IM2から対応する要素の領域を検出する(具体的には、要素領域EAa1-EAa7のうちの対応する領域)。要素領域は、第1ラベルLB1の一部を表す第2種領域の例である。第2種物体検出モデルM2jは、対応する要素の領域を検出するように学習済のモデルである。プロセッサ210は、学習済の第2種物体検出モデルM2jを使用して、第2種領域を適切に検出できる。
また、本実施例では、第1ラベルLB1のN個の要素EL1-EL7のうち、1以上の要素が検出されない場合(S470a:No)、検査結果は不合格である。このように、複合機900のラベルが不具合(例えば、要素の欠落など)を有する場合に、プロセッサ210は、検査結果が不合格であると適切に判断できる。また、対象位置情報が、参考位置情報310の位置条件に含まれない位置関係を示す場合(S475a:No)、検査結果は不合格である。このように、複合機900のラベルが不具合(例えば、要素の位置ずれなど)を有する場合に、プロセッサ210は、検査結果が不合格であると適切に判断できる。
C.第3実施例:
図15(A)-図15(C)は、第3実施例における学習処理で使用される合成画像の例を示す概略図である。第2実施例の学習処理との差異は、2点ある。第1の差異は、図9のS160aで、プロセッサ210は、乱数を使用して、1以上Q以下の数Mを決定する点である。本実施例では、数Mは、2以上であり得る。S170aでは、プロセッサ210は、要素毎に、乱数を使用して画像処理を決定する。第2の差異は、S190aで、プロセッサ210は、背景画像に、M個の要素のM個の処理済要素画像を合成する点である。学習処理の他の部分の処理は、図9の対応する部分の処理と同じである(同じ部分の説明を省略する)。第2プログラム232(図1)は、本実施例の学習処理を実行するように、構成される。図13の検査処理では、本実施例の学習処理によって学習されるN個の要素検出モデルM2jが使用されてよい。
図15(A)の合成画像F1aは、背景画像上に、第1要素EL1の処理済要素画像EI1bと、第2要素EL2の処理済要素画像EI2bと、を重畳して得られる(S190a)。処理済合成画像F1axは、合成画像F1aの回転処理によって生成される(S200a)。
図15(B)の合成画像F1bは、背景画像上に、第2要素EL2の処理済要素画像EI2cと、第6要素EL6の処理済要素画像EI6cと、を重畳して得られる(S190a)。処理済合成画像F1bxは、合成画像F1bのぼかし処理によって生成される(S200a)。
図15(C)の合成画像F1cは、背景画像上に、第4要素EL4の処理済要素画像EI4cと、第8要素EL8の処理済要素画像EI8aと、を重畳して得られる(S190a)。処理済合成画像F1cxは、合成画像F1cのノイズ付加処理によって生成される(S200a)。このように、プロセッサ210は、M個の要素に加えて、処理対象の第1ラベルLB1には含まれない要素である外部要素(例えば、第8要素EL8)の画像を、背景画像と合成してよい。例えば、S170aでは、プロセッサ210は、外部要素の画像のデータ拡張処理を実行する。そして、S190aでは、プロセッサ210は、外部要素の処理済要素画像を背景画像に合成する。プロセッサ210は、外部要素の画像を合成するか否かを、乱数を使用して決定してよい。
図示を省略するが、1枚の合成画像に含まれる要素画像の総数は、1以上の任意の数であってよい。1枚の合成画像が複数の要素画像を含む場合、プロセッサ210は、複数の要素画像が互いに重ならないように、複数の要素画像を合成する。
また、本実施例では、要素検出モデルM2jは、対応する要素を検出するように学習される。要素検出モデルM2jは、対応する要素とは異なる他の要素を検出しないように、学習される。例えば、図9のS190aで生成される合成画像が複数の要素画像を含む場合、S203aで生成される注釈データは、複数の要素のそれぞれのバウンディングボックスとクラスとを示している。S240aでは、プロセッサ210は、注釈データのうち、対象要素ELx以外の要素のバウンディングボックスとクラスとのデータを省略する。なお、要素検出モデルM2jは、対応する要素に加えて、他の要素も検出するように学習されてよい。
以上のように、本実施例では、Q個の物体検出モデルのそれぞれは、対応する要素と他の要素とを含む複数の要素を表す画像の画像データを使用して学習される。例えば、第1要素EL1のための第1要素検出モデルM21は、第1要素EL1と第2要素EL2とを含む複数の要素を表す処理済合成画像F1ax(図15(A))の画像データを使用して学習される。処理済合成画像F1axを使用することによって、第1要素検出モデルM21は、第2要素EL2を第1要素EL1として誤検出せずに、第1要素EL1を検出するように、学習される。この結果、第1要素検出モデルM21による誤検出の可能性は、低減する。他の要素EL2-EL7に対応する要素検出モデルM2jに関しても、同様に、対応する要素と他の要素とを含む複数の要素を表す画像の画像データを使用して学習される。これにより、誤検出の可能性は低減する。
また、図10(A)に示すように、第1ラベルLB1のN個(ここでは、N=7)の要素は、第1要素EL1と第2要素EL2とを含んでいる。図9で説明したように、N個の要素検出モデルM2jは、第1要素EL1を検出するための第1要素検出モデルM21と、第2要素EL2を検出するための第2要素検出モデルM22と、を含んでいる。図15(A)の処理済合成画像F1axは、第1要素EL1の画像と第2要素EL2の画像を含んでいる。このような処理済合成画像F1axは、第1要素検出モデルM21の学習と、第2要素検出モデルM22の学習と、に使用される。すなわち、第1要素検出モデルM21は、第1要素EL1と第2要素EL2とを含む複数の要素を表す画像F1axの画像データ(第1画像データと呼ぶ)を含む第1の画像データセットを使用して学習される。そして、第2要素検出モデルM22は、第1画像データを含む第2の画像データセットを使用して学習される。このように、処理済合成画像F1axの第1画像データが、複数の要素検出モデルM2jの学習に使用されるので、N個の要素検出モデルM2jのそれぞれの学習のための画像データの総数を低減可能である。なお、第1の画像データセットは、第1要素EL1の画像を含む複数の学習画像のデータセットである。第2の画像データセットは、第2要素EL2の画像を含む複数の学習画像のデータセットである。
D.第4実施例:
図16(A)は、学習処理の別の実施例のフローチャートの一部である。図9の学習処理との差異は、S130aとS160aとの間にS140b、S150bが挿入される点である。本実施例では、他のラベルのための学習済の要素検出モデルM2jが、再使用される。S160a(図9)で参照される数Qは、未学習の要素検出モデルM2jの総数を示している。S250aでは、プロセッサ210は、学習済の要素検出モデルM2jのデータと、対応する要素の画像データとを、関連付けて、記憶装置215(ここでは、不揮発性記憶装置230)に格納する(格納されるデータを、モデルデータと呼ぶ)。学習処理の他の部分の処理は、図9の対応する部分の処理と同じである(同じ部分の説明を省略する)。第2プログラム232(図1)は、本実施例の学習処理を実行するように、構成される。
S140b(図16(A))では、プロセッサ210は、処理対象の第1ラベルLB1の複数の要素EL1-EL7のそれぞれに関して、対応する要素検出モデルM2jが学習済であるか否かを判断する。プロセッサ210は、この判断のために、他のラベルのための学習処理のS250a(図9)で不揮発性記憶装置230に格納されるモデルデータを参照する。図16(B)は、モデルデータの概略図である。モデルデータ320は、学習済の要素検出モデルM2jのデータと、対応する要素の画像データとを、関連付けて格納している。
ここで、第1ラベルLB1のための学習処理の前に、第2ラベルLB2(図2(C))のための学習処理が行われることとする。この場合、第1ラベルLB1のためのS140b(図16(A))が実行される段階で、モデルデータ320は、第2ラベルLB2の7個の要素EL1、EL3-EL5、EL7-EL9のための7個の要素検出モデルM2jに関するデータを、含んでいる。プロセッサ210は、モデルデータ320を参照して、第1ラベルLB1の複数の要素EL1-EL7のそれぞれの要素検出モデルM2jが学習済であるか否かを判断する。本実施例では、プロセッサ210は、S120a(図9)で取得される要素領域の画像(すなわち、第1ラベルLB1の要素の画像)と、モデルデータ320によって示される要素の画像と、のパターンマッチングを行う。プロセッサ210は、第1ラベルLB1の要素の画像にマッチする画像がモデルデータ320から検出される場合、その要素の要素検出モデルM2jが学習済であると判断する。第2ラベルLB2に含まれる要素EL1、EL3-EL5、EL7のそれぞれの要素検出モデルM2jは、学習済であると判断される。第2ラベルLB2に含まれない要素EL2、EL6のそれぞれの要素検出モデルM2jは、未学習と判断される。
S150b(図16(A))では、プロセッサ210は、未学習の要素(ここでは、未学習の要素検出モデルM2jに対応する要素)を、学習対象として選択する。プロセッサ210は、学習済の要素(ここでは、学習済の要素検出モデルM2jに対応する要素)を、学習対象として選択しない。すなわち、プロセッサ210は、学習済の要素を学習対象から除外する。以下、未学習の要素の総数が、Qであることとする。続く処理(図9のS160a-S260a)では、プロセッサ210は、Q個の未学習の要素のそれぞれの要素検出モデルM2jを、学習する。Q個の要素検出モデルM2jの学習が完了する場合(S260a:Yes)、プロセッサ210は、学習処理(図9、図16(A))を終了する。第1ラベルLB1の7個の要素EL1-EL7に対応する7個の学習済の要素検出モデルM2jは、第1ラベルLB1の検査処理(図13)で使用される。
以上のように、本実施例では、第1ラベルLB1(図2(B))のN個(ここでは、N=7)の要素EL1-EL7は、第1要素EL1と、第2要素EL2と、を含んでいる。第1ラベルLB1の検査に使用されるN個の要素検出モデルM2jは、第1要素EL1を検出するための第1要素検出モデルM21と、第2要素EL2を検出するための第2要素検出モデルM22と、を含んでいる。第1ラベルLB1の検査で使用される第1要素検出モデルM21は、第1ラベルLB1とは異なる第2ラベルLB2であって第1要素EL1を含む第2ラベルLB2のために予め学習済の物体検出モデルである。第1ラベルLB1の検査で使用される第2要素検出モデルM22は、第1ラベルLB1のために学習される物体検出モデルである。このように、第1ラベルLB1の第1要素EL1のために、第2ラベルLB2の第1要素EL1のために学習済の第1要素検出モデルM21が、再使用される。従って、第1ラベルLB1の検査のための負担(例えば、要素検出モデルM2jの学習の負担)は、軽減可能である。
また、第1ラベルLB1の検査処理で使用されるN個の要素検出モデルM2jは、以下の処理を含む学習処理によって準備されている。S140b(図16(A))では、プロセッサ210は、要素検出モデルM2jが学習済であるか否かを判断する。S150b-S260a(図16(A)、図9)では、プロセッサ210は、要素検出モデルM2jが学習済でない場合に、要素検出モデルM2jを学習する。S150bでは、プロセッサ210は、要素検出モデルM2jが学習済である場合に、要素検出モデルM2jを学習の対象から除外する。このように、学習済の要素検出モデルM2jが学習の対象から除外される。従って、第1ラベルLB1の検査のための負担(例えば、要素検出モデルM2jの学習の負担)は、軽減可能である。
また、本実施例では、第1ラベルLB1のN個(ここでは、N=7)の要素EL1-EL7は、第1要素EL1と第2要素EL2とに加えて、第6要素EL6を含んでいる。第1ラベルLB1の検査に使用されるN個の要素検出モデルM2jは、第6要素EL6を検出するための要素検出モデルM26を含んでいる。第6要素EL6は、第2ラベルLB2(図2(C))には含まれない。従って、第6要素EL6のための要素検出モデルM26は、第1ラベルLB1のための学習処理で学習される。第2要素EL2のための要素検出モデルM22と第6要素EL6のための要素検出モデルM26は、第2要素EL2と第6要素EL6とを含む複数の要素を表す画像の画像データを使用して学習される。例えば、S230a(図9)では、第2要素EL2に対応する第2要素検出モデルM22のために、第2要素EL2と第6要素EL6とを含む複数の要素を表す処理済合成画像F1bx(図15(B))の画像データを含む画像データセットが選択される。そして、第6要素EL6に対応する要素検出モデルM26のために、処理済合成画像F1bxの画像データを含む画像データセットが選択される。このように、第2要素EL2に対応する要素検出モデルM22の学習と、第6要素EL6に対応する要素検出モデルM26の学習とに、同じ処理済合成画像F1bxのデータが使用される。従って、N個の要素検出モデルM2jのそれぞれの学習のための画像データの総数を低減可能である。なお、第2要素EL2のためのデータセットは、第2要素EL2の画像を含む複数の学習画像のデータセットである。第6要素EL6のためのデータセットは、第6要素EL6の画像を含む複数の学習画像のデータセットである。
E.変形例:
(1)要素検出モデルM2j(図9等)は、対応する要素の画像を含み、他の要素の画像を含まない学習画像のみを使用して学習されてよい。また、図15の実施例では、共通の学習画像データが、複数の要素検出モデルM2jの学習に使用される。例えば、処理済合成画像F1axは、第1要素検出モデルM21の学習と、第2要素検出モデルM22の学習と、に使用される。これに代えて、複数の要素検出モデルM2jは、互いに異なる学習画像データのセットを使用して、学習されてよい。
(2)上記の実施例では、学習画像データが、データ拡張処理によって生成される。学習画像のデータセットは、不具合の無い検出対象(例えば、第1ラベルLB1、要素EL1-EL7など)の実物の撮影画像データを含んでよい。学習画像データは、撮影画像データのデータ拡張処理によって生成される画像データを含んでよい。学習画像データは、版下データの代わりに撮影画像データを使用して、生成されてよい。データ拡張処理による学習画像データの生成は、省略されてよい。例えば、1以上の撮影画像データが、学習画像データとして使用されてよい。学習画像のための撮影時の照明(具体的には、光源の種類と明るさ)と位置(具体的には、検出対象に対するデジタルカメラの位置)とは、学習画像の準備に適する種々の照明と位置とであってよい。照明と位置とは、作業者によって調整されてよい。学習画像データに関連付けられる注釈データの生成方法は、S203(図4)、S203a(図9)で説明した方法に代えて、他の種々の方法であってよい。例えば、プロセッサ210は、検出対象の基準画像を使用するパターンマッチングによって、注釈データを生成してよい。また、プロセッサ210は、作業者によって入力される情報を使用して、注釈データを生成してよい。例えば、プロセッサ210は、処理済合成画像を表示部240に表示する。作業者は、処理済合成画像に適するバウンディングボックスとクラスとを示す情報を、操作部250を介して、データ処理装置200に入力する。プロセッサ210は、入力される情報を使用して、注釈データを生成する。
(3)第1種物体検出モデルM1は、YOLOv4に代えて、他の種々の物体検出モデルであってよい(例えば、SSD(Single Shot MultiBox Detector)、R-CNN(Region Based Convolutional Neural Networks)など)。YOLO、SSD、R-CNNなどのCNNを使用する検出モデルは、オブジェクトの画像の検出に適している。ただし、第1種物体検出モデルM1は、CNNを含まない物体検出モデル(例えば、全結合層で構成されるモデル)であってよい。また、プロセッサ210は、第1種物体検出モデルM1を使用せずに、注目オブジェクト(例えば、第1ラベルLB1)の基準画像を使用するパターンマッチングによって、注目オブジェクトを検出してよい。
同様に、第2種物体検出モデルM2、M2jは、YOLOv4に代えて、他の種々の物体検出モデルであってよい。CNNを使用する検出モデルは、オブジェクトの画像の検出に適している。ただし、第2種物体検出モデルM2、M2jは、CNNを含まない物体検出モデル(例えば、全結合層で構成されるモデル)であってよい。第2種物体検出モデルM2、M2jは、第1種物体検出モデルM1と同じモデルであってよい。第2種物体検出モデルM2、M2jは、第1種物体検出モデルM1と異なるモデルであってよい。また、プロセッサ210は、第2種物体検出モデルM2、M2jを使用せずに、注目オブジェクト(例えば、第1ラベルLB1、要素EL1-EL7など)の基準画像を使用するパターンマッチングによって、注目オブジェクトを検出してよい。
(4)物体検出モデルの学習処理は、上記の学習処理に代えて、他の種々の処理であってよい。例えば、S140b(図16(A))の判断方法は、種々の方法であってよい。例えば、モデルデータ320(図16(B))は、要素の識別子(例えば、識別番号)を、検出モデルに関連付けてよい。プロセッサ210は、S120a(図9)で取得される要素の画像を分析して要素の識別番号を決定し、決定された識別番号に関連する情報を、モデルデータ320から検索してよい。要素の識別番号を決定する方法は、種々の方法であってよい。例えば、プロセッサ210は、予め準備される要素の基準画像(図示せず)を使用するパターンマッチングによって、要素の画像の識別番号を決定してよい。また、作業者が、要素検出モデルM2jが学習済であるか否かを示す情報をデータ処理装置200に入力してよい。例えば、プロセッサ210は、S120a(図9)で取得される要素の画像を、表示部240に表示する。作業者は、表示される画像を観察し、対応する要素検出モデルM2jが学習済であるか否かを示す情報を、操作部250を介して、データ処理装置200に入力する。プロセッサ210は、入力される情報を使用して、要素検出モデルM2jが学習済であるか否かを判断する。
図9のS120aにおける版下画像から要素領域を取得する処理は、背景画素と要素画素とを使用する処理に代えて、他の種々の処理であってよい。例えば、プロセッサ210は、予め準備される要素の基準画像(図示せず)を使用するパターンマッチングによって、要素領域を決定してよい。
なお、物体検出モデルの学習処理は、検査処理を実行するデータ処理装置200とは異なる他の装置(例えば、他のデータ処理装置)によって、行われてよい。
(5)注目オブジェクトの検査処理は、上記の処理に代えて、他の種々の処理であってよい。例えば、第2入力画像IM2(図14(A))内の第1ラベルLB1の向きは、版下画像L1(図10)内の第1ラベルLB1の向きと異なってよい。この場合、S475a(図13)では、プロセッサ210は、第2入力画像IM2の回転処理によって第1ラベルLB1の向きを版下画像L1内の第1ラベルLB1の向きに合せてから、対象位置情報を取得することが好ましい。回転処理のための回転角度の決定方法は、種々の方法であってよい。例えば、プロセッサ210は、第2入力画像IM2と版下画像L1とのパターンマッチングによって、角度を決定してよい。
また、プロセッサ210は、第2入力画像IM2から検出される第1ラベルLB1の画像と、第1ラベルLB1の基準画像と、の間の差分画像のデータを、検査結果を示すデータとして生成してよい。基準画像は、予め決められた画像であってよい。これに代えて、基準画像は、不具合を有する第1ラベルLB1の画像から不具合のない第1ラベルLB1の画像を生成するように学習された画像生成モデル(例えば、オートエンコーダ)によって生成される画像であってよい。
(6)注目オブジェクトは、複合機900に限らず、種々の製品に設けられるラベルであってよい。製品は、プリンタ、ミシン、工作機械、カッティングマシーン、スキャナ、スマートフォンなど、任意の製品であってよい。また、製品は、他の製品の部品であってよい。例えば、注目オブジェクトは、複合機に取り付けられる部品である排紙トレーに設けられるラベルであってよい。
(7)注目オブジェクトは、ラベルに代えて、他の任意のオブジェクトであってよい。例えば、注目オブジェクトは、立体的な銘(製造者のロゴ、製品のブランドなど)、または、塗装された模様であってよい。
(8)図1のデータ処理装置200は、パーソナルコンピュータとは異なる種類の装置(例えば、デジタルカメラ、スキャナ、スマートフォン)であってよい。また、ネットワークを介して互いに通信可能な複数の装置(例えば、コンピュータ)が、データ処理装置によるデータ処理の機能を一部ずつ分担して、全体として、データ処理の機能を提供してもよい(これらの装置を備えるシステムがデータ処理装置に対応する)。
上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。例えば、第1種物体検出モデルM1の機能は、専用のハードウェア回路によって実現されてよい。
また、本開示の機能の一部または全部がコンピュータプログラムで実現される場合には、そのプログラムは、コンピュータ読み取り可能な記録媒体(例えば、一時的ではない記録媒体)に格納された形で提供することができる。プログラムは、提供時と同一または異なる記録媒体(コンピュータ読み取り可能な記録媒体)に格納された状態で、使用され得る。「コンピュータ読み取り可能な記録媒体」は、メモリーカードやCD-ROMのような携帯型の記録媒体に限らず、各種ROM等のコンピュータ内の内部記憶装置や、ハードディスクドライブ等のコンピュータに接続されている外部記憶装置も含み得る。
上記した実施の形態は、本開示の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
110…デジタルカメラ、200…データ処理装置、210…プロセッサ、215…記憶装置、220…揮発性記憶装置、230…不揮発性記憶装置、231…第1プログラム、232…第2プログラム、233…第3プログラム、240…表示部、250…操作部、270…通信インタフェース、310…相対位置情報(310…参考位置情報)、320…モデルデータ、900…複合機、M1…第1種物体検出モデル、M2…第2種物体検出モデル、M2j…第2種物体検出モデル(要素検出モデル)、Dx…第1方向、Dy…第2方向

Claims (11)

  1. コンピュータプログラムであって、
    第1オブジェクトの撮影画像の第1画像データであって前記第1オブジェクトを第1画素数で表す前記第1画像データを使用して、前記撮影画像から前記第1オブジェクトを表す第1種領域を検出する第1検出機能と、
    前記撮影画像のうちの前記第1種領域を含む部分画像であって前記撮影画像から前記第1種領域を除いた残りの領域の少なくとも一部を含まない前記部分画像を表す前記第2画像データを使用して、前記部分画像から前記第1オブジェクトの少なくとも一部を表す第2種領域を検出する第2検出機能であって、前記第2画像データは前記第1オブジェクトを前記第1画素数よりも多い第2画素数で表す、前記第2検出機能と、
    前記第2種領域の検出結果を使用して前記第1オブジェクトを検査する検査機能と、
    をコンピュータに実現させる、コンピュータプログラム。
  2. 請求項1に記載のコンピュータプログラムであって、
    前記第1オブジェクトは、ラベルである、
    コンピュータプログラム。
  3. 請求項1または2に記載のコンピュータプログラムであって、
    前記第1オブジェクトは、N個(Nは2以上の整数)の要素を含み、
    前記第2検出機能は、前記部分画像から前記N個の要素をそれぞれ表すN個の第2種領域を検出する要素検出機能を含み、
    前記検査機能は、前記N個の第2種領域の位置関係と、予め決められた前記N個の要素の位置関係と、を比較することによって、前記第1オブジェクトを検査する機能を含む、
    コンピュータプログラム。
  4. 請求項3に記載のコンピュータプログラムであって、
    前記要素検出機能は、前記N個の要素をそれぞれ検出するように学習済のN個の物体検出モデルを使用して、前記部分画像から前記N個の要素をそれぞれ表す前記N個の第2種領域を検出する機能を含む、
    コンピュータプログラム。
  5. 請求項4に記載のコンピュータプログラムであって、
    前記N個の物体検出モデルのそれぞれは、対応する要素と他の要素とを含む複数の要素を表す画像の画像データを使用して学習されている、
    コンピュータプログラム。
  6. 請求項4に記載のコンピュータプログラムであって、
    前記N個の要素は、第1要素と第2要素とを含み、
    前記N個の物体検出モデルは、前記第1要素を検出するための第1物体検出モデルと、前記第2要素を検出するための第2物体検出モデルと、を含み、
    前記第1物体検出モデルは、前記第1要素と前記第2要素とを含む複数の要素を表す画像の第1画像データを含む第1の画像データセットを使用して学習されており、
    前記第2物体検出モデルは、前記第1画像データを含む第2の画像データセットを使用して学習されている、
    コンピュータプログラム。
  7. 請求項4に記載のコンピュータプログラムであって、
    前記N個の要素は、第1要素と第2要素とを含み、
    前記N個の物体検出モデルは、前記第1要素を検出するための第1物体検出モデルと、前記第2要素を検出するための第2物体検出モデルと、を含み、
    前記第1物体検出モデルは、前記第1オブジェクトとは異なるとともに前記第1要素を含む第2オブジェクトのために予め学習済の物体検出モデルであり、
    前記第2物体検出モデルは、前記第1オブジェクトのために学習される物体検出モデルである、
    コンピュータプログラム。
  8. 請求項7に記載のコンピュータプログラムであって、
    前記N個の物体検出モデルのそれぞれは、
    前記物体検出モデルが学習済であるか否かの判断と、
    前記物体検出モデルが学習済でない場合の前記物体検出モデルの学習と、
    前記物体検出モデルが学習済である場合の前記物体検出モデルの学習の対象からの除外と、
    を含む処理によって準備されている、
    コンピュータプログラム。
  9. 請求項7に記載のコンピュータプログラムであって、
    前記N個の要素は、さらに、第3要素を含み、
    前記N個の物体検出モデルは、さらに、前記第3要素を検出するための第3物体検出モデルを含み、
    前記第3物体検出モデルは、前記第1オブジェクトのために学習される物体検出モデルであり、
    前記第2物体検出モデルは、前記第2要素と前記第3要素とを含む複数の要素を表す画像の第3画像データを含む第3の画像データセットを使用して学習されており、
    前記第3物体検出モデルは、前記第3画像データを含む第4の画像データセットを使用して学習されている、
    コンピュータプログラム。
  10. 請求項1または2に記載のコンピュータプログラムであって、
    前記第1検出機能は、前記第1オブジェクトを検出するように学習済の第1種物体検出モデルを使用して、前記撮影画像から前記第1オブジェクトを表す前記第1種領域を検出する機能を含み、
    前記第2検出機能は、前記第1オブジェクトの前記少なくとも一部を検出するように学習済の第2種物体検出モデルを使用して、前記部分画像から前記第1オブジェクトの少なくとも一部を表す前記第2種領域を検出する機能を含む、
    コンピュータプログラム。
  11. データ処理装置であって、
    第1オブジェクトの撮影画像の第1画像データであって前記第1オブジェクトを第1画素数で表す前記第1画像データを使用して、前記撮影画像から前記第1オブジェクトを表す第1種領域を検出する第1検出部と、
    前記撮影画像のうちの前記第1種領域を含む部分画像であって前記撮影画像から前記第1種領域を除いた残りの領域の少なくとも一部を含まない前記部分画像を表す前記第2画像データを使用して、前記部分画像から前記第1オブジェクトの少なくとも一部を表す第2種領域を検出する第2検出部であって、前記第2画像データは前記第1オブジェクトを前記第1画素数よりも多い第2画素数で表す、前記第2検出部と、
    前記第2種領域の検出結果を使用して前記第1オブジェクトを検査する検査部と、
    を備える、データ処理装置。
JP2022080604A 2022-05-17 2022-05-17 コンピュータプログラム、および、データ処理装置 Pending JP2023169482A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2022080604A JP2023169482A (ja) 2022-05-17 2022-05-17 コンピュータプログラム、および、データ処理装置
PCT/JP2023/017387 WO2023223883A1 (ja) 2022-05-17 2023-05-09 コンピュータプログラム、および、データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022080604A JP2023169482A (ja) 2022-05-17 2022-05-17 コンピュータプログラム、および、データ処理装置

Publications (1)

Publication Number Publication Date
JP2023169482A true JP2023169482A (ja) 2023-11-30

Family

ID=88835233

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022080604A Pending JP2023169482A (ja) 2022-05-17 2022-05-17 コンピュータプログラム、および、データ処理装置

Country Status (2)

Country Link
JP (1) JP2023169482A (ja)
WO (1) WO2023223883A1 (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3960346B2 (ja) * 2004-12-27 2007-08-15 オムロン株式会社 画像処理方法、基板検査方法、基板検査装置、および基板検査用の検査データ作成方法
JP2010071951A (ja) * 2008-09-22 2010-04-02 Omron Corp 視覚検査装置および視覚検査方法
US10185857B2 (en) * 2017-06-14 2019-01-22 Canon Information And Imaging Solutions, Inc. Devices, systems, and methods for reading barcodes
GB201817808D0 (en) * 2018-10-31 2018-12-19 Ishida Europe Ltd Method and apparatus for inspecting a label attached to a food pack

Also Published As

Publication number Publication date
WO2023223883A1 (ja) 2023-11-23

Similar Documents

Publication Publication Date Title
JP5546317B2 (ja) 外観検査装置、外観検査用識別器の生成装置及び外観検査用識別器生成方法ならびに外観検査用識別器生成用コンピュータプログラム
CN104899586B (zh) 对图像中包含的文字内容进行识别方法及装置
JP4416039B2 (ja) 縞模様検知システム、縞模様検知方法および縞模様検知用プログラム
CN104135926A (zh) 图像处理设备、图像处理系统、图像处理方法以及程序
US20090245625A1 (en) Image trimming device and program
US20220180122A1 (en) Method for generating a plurality of sets of training image data for training machine learning model
US20200084320A1 (en) Print quality diagnosis
CN114419045A (zh) 光刻掩模板缺陷检测方法、装置、设备及可读存储介质
JP3740351B2 (ja) 画像加工装置および方法およびこの方法の実行プログラムを記録した記録媒体
US20230316697A1 (en) Association method, association system, and non-transitory computer-readable storage medium
Valente et al. Print defect mapping with semantic segmentation
WO2023223883A1 (ja) コンピュータプログラム、および、データ処理装置
CN113033559A (zh) 一种基于目标检测的文本检测方法及装置、存储介质
US20170085753A1 (en) Image data generating apparatus, printer, image data generating method, and non-transitory computer readable medium
US20210304487A1 (en) Storage medium storing program, training method of machine learning model, and image generating apparatus
JP2006309402A (ja) 文字列認識方法、ナンバープレート認識方法、及び装置
JP2022156761A (ja) データ処理装置、データ処理方法、コンピュータプログラム
JP5883715B2 (ja) 画像処理lsi、画像処理システムおよび画像処理方法
WO2022239671A1 (ja) 画像処理方法、コンピュータプログラム、画像処理装置、および、訓練方法
JP6613625B2 (ja) 画像処理プログラム、画像処理装置、及び画像処理方法
KR102588280B1 (ko) 조작 이미지 판별 장치 및 방법
WO2023013546A1 (ja) コンピュータプログラム、生成装置、および、生成方法
JP2009010853A (ja) 画像補正方法と画像補正装置
JP2023129869A (ja) 印刷画像の欠陥判別装置、およびその判別方法
JP7273358B2 (ja) 画像処理装置、学習済みモデル、コンピュータプログラム、および、属性情報の出力方法