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

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

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

特開2023-173059物体検出モデル、および、物体検出モデルの訓練方法
<>
  • 特開-物体検出モデル、および、物体検出モデルの訓練方法 図1
  • 特開-物体検出モデル、および、物体検出モデルの訓練方法 図2
  • 特開-物体検出モデル、および、物体検出モデルの訓練方法 図3
  • 特開-物体検出モデル、および、物体検出モデルの訓練方法 図4
  • 特開-物体検出モデル、および、物体検出モデルの訓練方法 図5
  • 特開-物体検出モデル、および、物体検出モデルの訓練方法 図6
  • 特開-物体検出モデル、および、物体検出モデルの訓練方法 図7
  • 特開-物体検出モデル、および、物体検出モデルの訓練方法 図8
  • 特開-物体検出モデル、および、物体検出モデルの訓練方法 図9
  • 特開-物体検出モデル、および、物体検出モデルの訓練方法 図10
  • 特開-物体検出モデル、および、物体検出モデルの訓練方法 図11
  • 特開-物体検出モデル、および、物体検出モデルの訓練方法 図12
  • 特開-物体検出モデル、および、物体検出モデルの訓練方法 図13
  • 特開-物体検出モデル、および、物体検出モデルの訓練方法 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023173059
(43)【公開日】2023-12-07
(54)【発明の名称】物体検出モデル、および、物体検出モデルの訓練方法
(51)【国際特許分類】
   G06T 7/00 20170101AFI20231130BHJP
【FI】
G06T7/00 350B
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2022085051
(22)【出願日】2022-05-25
(71)【出願人】
【識別番号】000005267
【氏名又は名称】ブラザー工業株式会社
(74)【代理人】
【識別番号】110001058
【氏名又は名称】鳳国際弁理士法人
(72)【発明者】
【氏名】宮澤 雅史
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA02
5L096AA06
5L096BA03
5L096FA34
5L096FA59
5L096FA62
5L096FA64
5L096FA69
5L096GA08
5L096GA30
5L096GA40
5L096GA51
5L096GA55
5L096HA11
5L096KA04
5L096MA07
(57)【要約】

【課題】検出すべき物体が、物体検出モデルによって特定される物体領域からはみ出ることを抑制する。
【解決手段】物体検出モデルの訓練処理は、訓練画像を示す訓練画像データを物体検出モデルに入力して、出力データを生成し、出力データと、正解領域情報を含む教師データと、を用いて、損失関数に従って損失値を算出し、損失値を用いて物体検出モデルの演算パラメータを調整する。損失関数は、出力データによって示される物体領域が正解領域の全体を含むか否かに応じて損失値を調整する調整パラメータと、を含む。あるいは、正解領域より広く、正解領域の全体を含む調整正解領域を示す調整正解領域情報が生成され、該調整正解領域情報を含む教師データを用いて、損失値が算出される。
【選択図】 図7
【特許請求の範囲】
【請求項1】
物体を含む入力画像を示す入力画像データが入力される場合に少なくとも物体領域を示す出力データを生成する訓練済みの物体検出モデルであって、
前記物体領域は、前記入力画像内の一部の領域であり、かつ、前記物体を含む領域であり、
前記物体検出モデルの訓練処理は、
物体を含む訓練画像を示す訓練画像データを前記物体検出モデルに入力して、前記出力データを生成する生成処理と、
前記出力データと、前記出力データが前記物体領域として示すべき正解領域を示す正解領域情報を含む教師データと、を用いて、損失関数に従って損失値を算出する損失算出処理と、
前記損失値を用いて前記出力データと前記教師データとの差異が小さくなるように前記物体検出モデルの演算パラメータを調整するパラメータ調整処理と、
を含み、
前記損失関数は、前記物体領域と前記正解領域との差異に応じて前記損失値を変動させる特定部分と、前記出力データによって示される前記物体領域が前記正解領域の全体を含むか否かに応じて前記損失値を調整する調整パラメータと、を含み、
前記調整パラメータは、第1パラメータと第2パラメータとのうちのいずれかであり、
前記第1パラメータは、前記特定部分が、前記物体領域と前記正解領域との差異が小さいほど前記損失値を小さくする部分である場合に用いられる前記調整パラメータであって、前記物体領域が前記正解領域の全体を含む場合に前記損失値が小さくなり、前記物体領域が前記正解領域の全体を含まない場合に前記損失値が大きくなるように、前記損失値を調整する前記調整パラメータであり、
前記第2パラメータは、前記特定部分が、前記物体領域と前記正解領域との差異が小さいほど前記損失値を大きくする部分である場合に用いられる前記調整パラメータであって、前記物体領域が前記正解領域の全体を含む場合には前記損失値が大きくなり、前記物体領域が前記正解領域の全体を含まない場合には前記損失値が小さくなるように、前記損失値を調整する前記調整パラメータである、物体検出モデル。
【請求項2】
請求項1に記載の物体検出モデルであって、
前記第1パラメータは、前記物体領域が前記正解領域の全体を含まない場合には、前記物体領域が前記正解領域の全体を含む場合よりも大きな値を加算する項であり、
前記第2パラメータは、前記物体領域が前記正解領域の全体を含まない場合には、前記物体領域が前記正解領域の全体を含む場合よりも小さな値を加算する項である、物体検出モデル。
【請求項3】
請求項1に記載の物体検出モデルであって、
前記第1パラメータは、前記特定部分に乗算される係数であって、前記物体領域が前記正解領域の全体を含まない場合には、前記物体領域が前記正解領域の全体を含む場合よりも前記損失値を大きくする度合が大きな値に設定される係数であり、
前記第2パラメータは、前記特定部分に乗算される係数であって、前記物体領域が前記正解領域の全体を含まない場合には、前記物体領域が前記正解領域の全体を含む場合よりも前記損失値を小さくする度合が大きな値に設定される係数である、物体検出モデル。
【請求項4】
請求項1に記載の物体検出モデルであって、
前記第1パラメータと前記第2パラメータは、前記出力データによって示される前記物体領域が第1物体領域である場合に前記特定部分にて算出される調整前の第1損失値と、前記出力データによって示される前記物体領域が第2物体領域である場合に前記特定部分にて算出される調整前の第2損失値と、が等しい場合であっても、調整後の前記第1損失値と調整後の前記第2損失値と、が異なるように調整するパラメータであり、
前記第1物体領域は、前記正解領域の全体を含まない前記物体領域であり、
前記第2物体領域は、前記正解領域の全体を含む前記物体領域であり、
前記第1パラメータは、調整後の前記第1損失値が調整後の前記第2損失値より大きくなるように調整するパラメータであり、
前記第2パラメータは、調整後の前記第1損失値が調整後の前記第2損失値より小さくなるように調整するパラメータである、物体検出モデル。
【請求項5】
請求項1に記載の物体検出モデルであって、
前記出力データによって示される前記物体領域と前記正解領域とは、多角形の領域であり、
前記調整パラメータは、多角形の前記物体領域の複数個の辺のうち、前記正解領域の中心から見て前記正解領域の対応する辺より内側に位置する辺の数が多いほど、前記損失値を調整する度合が大きくなるように設定される、物体検出モデル。
【請求項6】
請求項1に記載の物体検出モデルであって、
前記調整パラメータは、前記正解領域に含まれ、かつ、前記出力データによって示される前記物体領域に含まれない領域の面積が大きいほど、前記損失値を調整する度合が大きくなるように設定される、物体検出モデル。
【請求項7】
物体を含む入力画像を示す入力画像データが入力される場合に少なくとも物体領域を示す出力データを生成する訓練済みの物体検出モデルであって、
前記物体領域は、前記入力画像内の一部の領域であり、かつ、前記物体を含む領域であり、
前記物体検出モデルの訓練処理は、
物体を含む訓練画像を示す訓練画像データを前記物体検出モデルに入力して、前記出力データを生成する生成処理と、
前記出力データが前記物体領域として示すべき正解領域を示す正解領域情報を調整して、前記正解領域より広く、前記正解領域の全体を含む調整正解領域を示す調整正解領域情報を生成する調整処理と、
前記出力データと、前記調整正解領域情報を含む教師データと、を用いて、損失関数に従って損失値を算出する損失算出処理と、
前記損失値を用いて前記出力データと前記教師データとの差異が小さくなるように前記物体検出モデルの演算パラメータを調整するパラメータ調整処理と、
を含む、物体検出モデル。
【請求項8】
請求項7に記載の物体検出モデルであって、
前記出力データによって示される前記物体領域と前記正解領域とは、矩形の領域であり、
前記調整正解領域の中心は、前記正解領域の中心と同一であり、
前記調整正解領域の一辺に沿う第1方向の長さは、前記正解領域の前記第1方向の長さよりも長く、
前記調整正解領域の前記第1方向と直交する第2方向の長さは、前記正解領域の前記第2方向の長さよりも長い、物体検出モデル。
【請求項9】
請求項1~8のいずれかに記載の物体検出モデルを用いるコンピュータプログラムであって、
検査対象の前記物体を含む対象画像を示す対象画像データを前記物体検出モデルに入力して、前記対象画像内の前記物体を含む前記物体領域を特定する特定機能と、
前記対象画像データを用いて、前記物体領域内の画像を示す物体画像データを生成する生成機能と、
前記物体画像データを用いて、前記物体の異常を検出する検出機能と、
をコンピュータに実現させるコンピュータプログラム。
【請求項10】
物体を含む入力画像を示す入力画像データが入力される場合に少なくとも物体領域を示す出力データを生成する物体検出モデルの訓練方法であって、
前記物体領域は、前記入力画像内の一部の領域であり、かつ、前記物体を含む領域であり、
前記訓練方法は、
物体を含む訓練画像を示す訓練画像データを前記物体検出モデルに入力して、前記出力データを生成する生成工程と、
前記出力データと、前記出力データが前記物体領域として示すべき正解領域を示す正解領域情報を含む教師データと、を用いて、損失関数に従って損失値を算出する損失算出工程と、
前記損失値を用いて前記出力データと前記教師データとの差異が小さくなるように前記物体検出モデルの演算パラメータを調整するパラメータ調整工程と、
を備え、
前記損失関数は、前記物体領域と前記正解領域との差異に応じて前記損失値を変動させる特定部分と、前記出力データによって示される前記物体領域が前記正解領域の全体を含むか否かに応じて前記損失値を調整する調整パラメータと、を含み、
前記調整パラメータは、第1パラメータと第2パラメータとのうちのいずれかであり、
前記第1パラメータは、前記特定部分が、前記物体領域と前記正解領域との差異が小さいほど前記損失値を小さくする部分である場合に用いられる前記調整パラメータであって、前記物体領域が前記正解領域の全体を含む場合に前記損失値が小さくなり、前記物体領域が前記正解領域の全体を含まない場合に前記損失値が大きくなるように、前記損失値を調整する前記調整パラメータであり、
前記第2パラメータは、前記特定部分が、前記物体領域と前記正解領域との差異が小さいほど前記損失値を大きくする部分である場合に用いられる前記調整パラメータであって、前記物体領域が前記正解領域の全体を含む場合には前記損失値が大きくなり、前記物体領域が前記正解領域の全体を含まない場合には前記損失値が小さくなるように、前記損失値を調整する前記調整パラメータである、訓練方法。
【請求項11】
物体を含む入力画像を示す入力画像データが入力される場合に少なくとも物体領域を示す出力データを生成する物体検出モデルの訓練方法であって、
前記物体領域は、前記入力画像内の一部の領域であり、かつ、前記物体を含む領域であり、
前記訓練方法は、
物体を含む訓練画像を示す訓練画像データを前記物体検出モデルに入力して、前記出力データを生成する生成工程と、
前記出力データが前記物体領域として示すべき正解領域を示す正解領域情報を調整して、前記正解領域より広く、前記正解領域の全体を含む調整正解領域を示す調整正解領域情報を生成する調整工程と、
前記出力データと、前記調整正解領域情報を含む教師データと、を用いて、損失関数に従って損失値を算出する損失算出工程と、
前記損失値を用いて前記出力データと前記教師データとの差異が小さくなるように前記物体検出モデルの演算パラメータを調整するパラメータ調整工程と、
を備える、訓練方法。

【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、画像内の物体を検出するための物体検出モデル、および、物体検出モデルの訓練方法に関する。
【背景技術】
【0002】
非特許文献1に開示された物体検出モデルは、画像内の物体の検出と、物体の識別(クラス分類)と、を実行する。物体の検出結果は、物体が存在する矩形領域を示す情報として出力される。
【先行技術文献】
【特許文献】
【0003】
【非特許文献1】J. Redmon, and A. Farhadi,“YOLOv3: An Incremental Improvement”,arXiv:1804.02767(2018),https://arxiv.org/abs/1804.02767,投稿日8 Apr 2018
【発明の概要】
【発明が解決しようとする課題】
【0004】
ここで、画像内の検出すべき物体が、物体検出モデルによる検出結果として出力される矩形領域からはみ出る場合があった。この場合には、例えば、物体の全体を含む画像を切り出したい場合には、切り出した画像において、物体の一部が欠けてしまう問題があった。
【0005】
本明細書は、画像内の検出すべき物体が、物体検出モデルによって特定される物体領域からはみ出ることを抑制する技術を開示する。
【課題を解決するための手段】
【0006】
本明細書に開示された技術は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の適用例として実現することが可能である。
【0007】
[適用例1]物体を含む入力画像を示す入力画せ像データが入力される場合に少なくとも物体領域を示す出力データを生成する訓練済みの物体検出モデルであって、前記物体領域は、前記入力画像内の一部の領域であり、かつ、前記物体を含む領域であり、前記物体検出モデルの訓練処理は、物体を含む訓練画像を示す訓練画像データを前記物体検出モデルに入力して、前記出力データを生成する生成処理と、前記出力データと、前記出力データが前記物体領域として示すべき正解領域を示す正解領域情報を含む教師データと、を用いて、損失関数に従って損失値を算出する損失算出処理と、前記損失値を用いて前記出力データと前記教師データとの差異が小さくなるように前記物体検出モデルの演算パラメータを調整するパラメータ調整処理と、を含み、前記損失関数は、前記物体領域と前記正解領域との差異に応じて前記損失値を変動させる特定部分と、前記出力データによって示される前記物体領域が前記正解領域の全体を含むか否かに応じて前記損失値を調整する調整パラメータと、を含み、前記調整パラメータは、第1パラメータと第2パラメータとのうちのいずれかであり、前記第1パラメータは、前記特定部分が、前記物体領域と前記正解領域との差異が小さいほど前記損失値を小さくする部分である場合に用いられる前記調整パラメータであって、前記物体領域が前記正解領域の全体を含む場合に前記損失値が小さくなり、前記物体領域が前記正解領域の全体を含まない場合に前記損失値が大きくなるように、前記損失値を調整する前記調整パラメータであり、前記第2パラメータは、前記特定部分が、前記物体領域と前記正解領域との差異が小さいほど前記損失値を大きくする部分である場合に用いられる前記調整パラメータであって、前記物体領域が前記正解領域の全体を含む場合には前記損失値が大きくなり、前記物体領域が前記正解領域の全体を含まない場合には前記損失値が小さくなるように、前記損失値を調整する前記調整パラメータである、物体検出モデル。
【0008】
上記構成によれば、損失関数は、出力データによって示される物体領域が正解領域の全体を含むか否かに応じて損失値を調整する調整パラメータを含んでいる。この結果、物体検出モデルは、正解領域の全体を含む物体領域を示す出力データを出力するように訓練されている。したがって、画像内の検出すべき物体が、物体検出モデルによって特定される物体領域からはみ出ることを抑制することができる。
【0009】
[適用例2]物体を含む入力画像を示す入力画像データが入力される場合に少なくとも物体領域を示す出力データを生成する訓練済みの物体検出モデルであって、前記物体領域は、前記入力画像内の一部の領域であり、かつ、前記物体を含む領域であり、前記物体検出モデルの訓練処理は、物体を含む訓練画像を示す訓練画像データを前記物体検出モデルに入力して、前記出力データを前記物体検出モデルに生成させる生成処理と、前記出力データが前記物体領域として示すべき正解領域を示す正解領域情報を調整して、前記正解領域より広く、前記正解領域の全体を含む調整正解領域を示す調整正解領域情報を生成する調整処理と、前記出力データと、前記調整正解領域情報を含む教師データと、を用いて、損失関数に従って損失値を算出する損失算出処理と、前記損失値を用いて前記出力データと前記教師データとの差異が小さくなるように前記物体検出モデルの演算パラメータを調整するパラメータ調整処理と、を含む、物体検出モデル。
【0010】
上記構成によれば、正解領域より広く、正解領域の全体を含む調整正解領域を示す調整正解領域情報に、出力データにて示される物体領域が近づくように、物体検出モデルが訓練されている。この結果、正解領域の全体を含む物体領域を示す出力データが出力されるように物体検出モデルが訓練されている。したがって、画像内の検出すべき物体が、物体検出モデルによって特定される物体領域からはみ出ることを抑制することができる。
【0011】
なお、本明細書に開示される技術は、他の種々の形態で実現することが可能であり、例えば、物体検出モデルの訓練方法、物体検出モデルを用いる検査装置、検査方法、これらの装置および方法を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、等の形態で実現することができる。
【図面の簡単な説明】
【0012】
図1】本実施例の検査システム1000の構成を示すブロック図。
図2】製品300の説明図。
図3】物体検出モデルANの構成を示すブロック図。
図4】物体検出モデルANの動作の説明図。
図5】物体検出モデルANの訓練処理のフローチャート。
図6】訓練画像TIの一例を示す図。
図7】第1実施例の損失関数Ltotalの説明図。
図8】検査処理のフローチャート。
図9】検査処理の説明図。
図10】第2実施例の損失関数Ltotalの説明図。
図11】第3実施例の損失関数Ltotalの説明図。
図12】第4実施例の損失関数Ltotalの説明図。
図13】第5実施例の物体検出モデルANの訓練処理のフローチャート。
図14】第5実施例の損失関数Ltotalの説明図。
【0013】
A.第1実施例
A-1.検査装置の構成
次に、実施の形態を実施例に基づき説明する。図1は、本実施例の検査システム1000の構成を示すブロック図である。検査システム1000は、処理装置100と、撮像装置400と、を含んでいる。処理装置100と撮像装置400とは、通信可能に接続されている。
【0014】
処理装置100は、例えば、パーソナルコンピュータなどの計算機である。処理装置100は、処理装置100のコントローラとしてのCPU110と、GPU115と、RAMなどの揮発性記憶装置120と、ハードディスクドライブなどの不揮発性記憶装置130と、マウスやキーボードなどの操作部150と、液晶ディスプレイなどの表示部140と、通信部170と、を備えている。通信部170は、外部機器、例えば、撮像装置400と通信可能に接続するための有線または無線のインタフェースを含む。
【0015】
GPU(Graphics Processing Unit)115は、CPU110の制御に従って、3次元グラフィックスなどの画像処理のための計算処理を行うプロセッサである。本実施例では、後述する物体検出モデルANや画像生成モデルGNの演算処理を実行するために利用される。
【0016】
揮発性記憶装置120は、CPU110が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域を提供する。不揮発性記憶装置130には、検査装置用のコンピュータプログラムPGと、訓練画像データ群LGと、教師データ群TGと、が格納されている。訓練画像データ群LGは、複数個(例えば、数百~数万個)の訓練画像データを含んでいる。教師データ群TGは、複数個の訓練画像データに対応する複数個の教師データを含んでいる。訓練画像データと教師データとは、後述する物体検出モデルANの訓練処理において用いられる。
【0017】
コンピュータプログラムPGは、後述する物体検出モデルANや画像生成モデルGNの機能をCPU110とGPU115とが協働して実現させるコンピュータプログラムをモジュールとして含んでいる。コンピュータプログラムPGは、例えば、処理装置100の製造者によって提供される。コンピュータプログラムPGは、例えば、サーバからダウンロードされる形態で提供されても良く、DVD-ROMなどに格納される形態で提供されてもよい。CPU110は、コンピュータプログラムPGを実行することにより、後述する検査処理や訓練処理を実行する。
【0018】
撮像装置400は、二次元イメージセンサを用いて被写体を撮像することによって被写体を表す画像データ(撮像画像データとも呼ぶ)を生成するデジタルカメラである。撮像画像データは、複数個の画素を含む画像を示すビットマップデータであり、具体的には、RGB値によって画素ごとの色を表すRGB画像データである。RGB値は、3個の色成分の階調値(以下、成分値とも呼ぶ)、すなわち、R値、G値、B値を含むRGB表色系の色値である。R値、G値、B値は、例えば、所定の階調数(例えば、256)の階調値である。撮像画像データは、画素ごとの輝度を表す輝度画像データであっても良い。
【0019】
撮像装置400は、処理装置100の制御に従って、撮像画像データを生成し、処理装置100に送信する。本実施例では、撮像装置400は、検査処理の検査対象であるラベルLが貼付された製品300を撮像して、撮像画像を示す撮像画像データを生成するために用いられる。
【0020】
図2は、製品300の説明図である。図2(A)には、製品300の斜視図が示されている。製品300は、本実施例では、略直方体の筐体30を有するプリンタである。製造工程において、筐体30の前面31(+Y側の面)には、矩形のラベルLが所定の貼付位置に貼付される。
【0021】
図2(B)には、ラベルLが示されている。ラベルLは、例えば、背景Bと、製造者や製品のブランドロゴ、型番、ロット番号等の各種の情報を示す文字TXやマークMKと、を含んでいる。
【0022】
A-2.物体検出モデルANの構成
図3は、物体検出モデルANの構成を示すブロック図である。物体検出モデルANとしては、種々のオブジェクト検出モデルを採用可能である。本実施例では、物体検出モデルANは、YOLO(You only look once)と呼ばれるオブジェクト検出モデルである。YOLOは、例えば、論文「Joseph Redmon, Santosh Divvala, Ross Girshick, Ali Farhadi, "You Only Look Once: Unified, Real-Time Object Detection", Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2016, pp. 779-788」に開示されている。YOLOモデルは、畳込ニューラルネットワークを用いて、画像内のオブジェクトが位置する領域と、該領域に位置するオブジェクトの種別と、を予測する。
【0023】
図3に示すように、物体検出モデルANは、m個(mは1以上の整数)の畳込層CV11-CV1mと、畳込層CV11-CV1mに続くn個(nは1以上の整数)の全結合層CN11-CN1nと、を有している(mは、例えば、24。nは、例えば、2)。m個の畳込層CV11-CV1mのうちの1以上の畳込層の直後には、プーリング層が設けられる。
【0024】
畳込層CV11-CV1mは、入力されるデータに対して、畳込処理とバイアスの加算処理とを含む処理を実行する。畳込処理は、入力されたデータに対して、t個のフィルタを順次に適用し、入力されたデータとフィルタとの相関を示す相関値を算出する処理である(tは、1以上の整数)。フィルタを適用する処理では、フィルタをスライドさせながら複数個の相関値が順次に算出される。バイアスの加算処理は、算出された相関値に、バイアスを加算する処理である。バイアスは、1個のフィルタに対して1個ずつ準備されている。フィルタの次元とフィルタの数tとは、通常は、m個の畳込層CV11-CV1mの間で異なっている。畳込層CV11-CV1mは、複数のフィルタの複数の重みと複数のバイアスとを含むパラメータセットを、それぞれ有している。
【0025】
プーリング層は、直前の畳込層から入力されたデータに対して、データの次元数を削減する処理を実行する。プーリングの処理としては、平均プーリング、最大プーリングなど、種々の処理を利用可能である。本実施例では、プーリング層は、最大プーリングを行う。最大プーリングは、所定サイズ(例えば、2×2)のウィンドウを所定のストライド(例えば、2)でスライドさせつつ、ウィンドウ内の最大値を選択することによって次元数を削減する。
【0026】
全結合層CN11-CN1nは、直前の層から入力されたf次元のデータ(すなわち、f個の値。fは2以上の整数)を用いて、g次元のデータ(すなわち、g個の値。gは2以上の整数)を出力する。出力されるg個の値のそれぞれは、入力されるf個の値で構成されるベクトルとf個の重みで構成されるベクトルとの内積に、バイアスを加えた値である。入力データの次元数fと出力データの次元数gとは、通常は、n個の全結合層CN11-CN1nの間で異なっている。全結合層CN11-CN1nは、複数の重みと複数のバイアスとを含むパラメータセットを、それぞれ有している。
【0027】
なお、畳込層CV11-CV1mと全結合層CN11-CN1nとのそれぞれによって生成されるデータは、活性化関数に入力されて変換される。活性化関数としては、種々の関数を利用可能である。本実施例では、最後の層(ここでは、全結合層CN1n)には、線形活性化関数(linear activation function)が用いられ、他の層には、漏洩正規化線形ユニット(Leaky Rectified Linear Unit:LReLU)が用いられる。
【0028】
図4は、物体検出モデルANの動作の説明図である。物体検出モデルANには、入力画像データIDaが入力される。本実施例では、入力画像データIDaとして、詳細は後述する撮像画像データが入力される。
【0029】
物体検出モデルANは、入力画像データIDaが入力されると、入力画像データIDaに対して上述したパラメータセットを用いた演算処理を実行して、出力データODを生成する。出力データODは、S×S×(B×5+C)個の予測値を含むデータである。各予測値は、画像内のオブジェクト(本実施例ではラベル)が位置すると予測される予測領域BB(バウンディングボックスとも呼ばれる)を示す予測領域情報と、該予測領域BBに存在するオブジェクトの種別(クラスとも呼ばれる)を示すクラス情報と、を含む。
【0030】
図4(A)には、入力画像データIDaによって示される入力画像IIaが示されている。予測領域は、入力画像IIaをS×S(Sは2以上の整数。図4(A)の例では、S=5)に分割して得られる(S×S)個のセルCLに対して、B(Bは1以上の整数、例えば、2)個ずつ設定される。図4(A)には、ハッチングされたセルCLに対して設定された1個の予測領域BBが例示されている。予測領域BBの中心Cbは、該予測領域BBが設定されたセルCL内に位置する。
【0031】
図4(B)には、図4(A)の予測領域BBの拡大図が示されている。各予測領域情報は、セルCLに対する予測領域BBの中心座標(Xb、Yb)と、幅(方向Dxの長さ)Wbと、高さ(方向Dyの長さ)Hbと、予測領域の確信度Vcと、の5個の値を含む。確信度Vcは、予測領域BBにオブジェクトが存在する確率を示す情報である。クラス情報は、セルCLに存在するオブジェクトの種別を種別ごとの確率で示す情報である。クラス情報は、オブジェクトの種別をC種(Cは1以上の整数)に分類する場合に、C個の確率を示す値を含む。本実施例では、C=1であり、オブジェクトがラベルであるか否かを識別する。このために、出力データODは、上述のように、S×S×(B×5+C)個の予測値を含む。
【0032】
A-3.物体検出モデルANの訓練処理
図5は、物体検出モデルANの訓練処理のフローチャートである。図6は、訓練画像TIの一例を示す図である。訓練処理は、物体検出モデルANを、以下の目的(1)~(3)を実現するように訓練する処理である。
(1)入力画像IIaがオブジェクトとしてラベルを含む場合に、該ラベルが位置するラベル領域を示す予測領域BBの予測領域情報を含む出力データODを出力する。
(2)ラベル領域を示す予測領域BBの確信度Vcを最大値(例えば、1)に近い確信度とし、ラベル領域とは異なる領域を示す予測領域の確信度Vcを最小値(例えば、0)に近い確信度とする。
(3)ラベル領域を示す予測領域BBが対応付けられたセルCLのクラス情報は、オブジェクトがラベルであることを示す。
【0033】
この結果、物体検出モデルANは、出力データODが入力画像(例えば、図6(A)の訓練画像TI)の適切なラベル領域を示すように、訓練される。訓練によって、物体検出モデルANの演算に用いられる複数の演算パラメータ(複数の層CV11-CV1m、CN11-CN1nのそれぞれの演算に用いられる複数の演算パラメータを含む)が、調整される。訓練処理前は、複数の演算パラメータは、乱数値などの初期値に設定されている。
【0034】
S410では、CPU110は、不揮発性記憶装置130に格納された訓練画像データ群LGと教師データ群TGから、バッチサイズ分の複数個(例えば、数百個)の訓練画像データと、該複数個の訓練画像データに対応する複数個の教師データと、を取得する。図6に示すように、訓練画像TIは、背景BIと、ラベルTLと、を含んでいる。このように訓練画像TIに示されるラベルを、実物のラベルL(図2)と区別するために符号の先頭に「T」を付した符号を用いて、ラベルTLとする。図6の訓練画像TIは、製品300に貼付されたラベルLを、デジタルカメラを用いて撮像することによって、生成された画像データである。このために、背景BIは、製品300の一部を示す画像となっている。これに限らず、複数個の訓練画像TIは、撮像された撮像画像に、ラベルTLを示す画像を前景として合成して得られる画像を含んでも良い。複数個の訓練画像TIは、多様な大きさのラベルTLが、多様な位置および角度で配置された画像を含む。
【0035】
教師データは、対応する合成画像データが物体検出モデルANに入力される場合に、出力されるべき理想的な出力データODを示す。例えば、教師データは、S×S×(B×5+C)個の予測値のうち、訓練画像TI(図6)におけるラベルTLの中心Ctが位置するセルCLに対応する理想的な予測値として、正解領域情報と、最大の確信度Vc(例えば、1)と、ラベルを示すクラス情報と、を含む。また、教師データは、ラベルTLの中心Ctが位置しないセルCLに対応する予測値として、最小の確信度Vc(例えば、0)を含む。
【0036】
正解領域情報は、正解領域TB(図6)を示す情報である。正解領域TBは、訓練済みの物体検出モデルANの出力データODが示すべきラベル領域LA(後述)である。正解領域TBは、訓練画像TI内のラベルTLが配置された領域であり、例えば、ラベルTLに外接する矩形の領域である。なお、図4(A)~図4(C)にも、図6の正解領域TBが図示されている。正解領域TBは、正解領域TBの中心Ctが位置するセルCLに対応付けられる。正解領域情報は、正解領域TBを定義する情報であり、正解領域TBに対応するセルCLに対する正解領域TBの中心座標(Xt、Yt)と、幅(方向Dxの長さ)Wtと、高さ(方向Dyの長さ)Htと、を含む。
【0037】
教師データは、例えば、以下のように予め作成される。例えば、処理装置100は、訓練画像TIを表示部140に表示して正解領域TBの指定を受け付ける。オペレータは、訓練画像TIを見ながら訓練画像TI内のラベルTLを特定し、該ラベルTLに外接する正解領域TBを指定する。正解領域TBの指定は、例えば、マウスのポインティングデバイスを用いた操作によって、行われる。処理装置100は、指定された正解領域TBに基づいて、上述した教師データを生成し、訓練画像TIを示す訓練画像データと対応付けて、不揮発性記憶装置130に格納する。
【0038】
S420では、CPU110は、複数個の訓練画像データを物体検出モデルANに入力し、複数個の訓練画像データに対応する複数個の出力データODを生成する。
【0039】
S430では、複数個の出力データODと、複数個の出力データODに対応する複数個の教師データと、を用いて、損失値を算出する。
【0040】
損失値の算出には、出力データODと教師データとの間の差異に応じた損失値を算出する損失関数Ltotalが用いられる。本実施例の損失関数Ltotalは、出力データODと教師データとの間の差異が小さいほど、小さな損失値を算出する。図7は、第1実施例の損失関数Ltotalの説明図である。図7(A)に示すように、損失関数Ltotalは、領域損失項Lbbと、オブジェクト損失項Lobjと、クラス損失項Lclassと、の和である。
【0041】
領域損失項Lbbは、教師データによって示される正解領域TBと、出力データODによって示される対応する予測領域BBと、の差に応じた損失値を算出する。本実施例では、領域損失項Lbbは、正解領域TBと予測領域BBとの差が小さいほど小さな損失値を算出する。領域損失項Lbbは、上記の目的(1)を実現するための項である。
【0042】
図7(B)には、領域損失項Lbbの式が示されている。図7(B)の式において、iは、(S×S)個のセルCLを識別する識別番号であり、1≦i≦Sを満たす整数である。jは、1個のセルCLに対応するB個の予測領域を識別する識別番号であり、1≦j≦Bを満たす整数である。換言すれば、iとjの組み合わせ(i、j)は、(S×S×B)個の予測領域を識別する識別情報である。M(i、j)は、1または0の値を取る。(i、j)が、(S×S×B)個の予測領域のうち、正解領域TBに対応する予測領域BBを示す場合には、M(i、j)は1である。(i、j)が、(S×S×B)個の予測領域のうち、正解領域TBに対応しない予測領域を示す場合には、M(i、j)は0である。λは、所定の係数である。Xt、Ytは、上述したように、正解領域TBの中心Ctの座標であり、Wt、Htは、正解領域TBの幅と高さである。Xb、Ybは、正解領域TBに対応する予測領域BBの中心Cbの座標である。Wb、Hbは、正解領域TBに対応する予測領域BBの幅と高さである。
【0043】
図7(B)の式において、カギ括弧の中の特定部分SPは、予測領域BBを定義する値(Xb、Yb、Wb、Hb)のそれぞれと、正解領域TBを定義する値(Xt、Yt、Wt、Ht)のそれぞれと、の二乗誤差の和である。このように、特定部分SPは、予測領域BBと正解領域TBとの差異に応じて変動する部分である。調整パラメータPAは、特定部分SPに乗算される調整係数であり、例えば、1以上の値(本実施例では、1またはα)を取る(図7(B))。調整パラメータPAが大きな値であるほど、領域損失項Lbbひいては損失関数Ltotalによって算出される損失値を大きくする度合が大きい。
【0044】
調整パラメータPAは、図7(C)の式で示される。(X1b、Y1b)は、予測領域BBの左上の頂点P1bの座標である(図4(B))。(X2b、Y2b)は、予測領域BBの右下の頂点P2bの座標である(図4(B))。(X1t、Y1t)は、正解領域TBの左上の頂点P1tの座標である(図4(B))。(X2t、Y2t)は、正解領域TBの右下の頂点P2tの座標である(図4(B))。
【0045】
予測領域BBの頂点P1bの座標(X1b、Y1b)は、予測領域BBの中心Cbの座標(Xb、Yb)と、予測領域BBの幅Wbおよび高さHbと、を用いて、以下のように算出される。
X1b=Xb-(Wb/2)
Y1b=Yb-(Hb/2)
【0046】
予測領域BBの頂点P2bの座標(X2b、Y2b)は、予測領域BBの中心Cbの座標(Xb、Yb)と、予測領域BBの幅Wbおよび高さHbと、を用いて、以下のように算出される。
X2b=Xb+(Wb/2)
Y2b=Yb+(Hb/2)
【0047】
正解領域TBの頂点P1tの座標(X1t、Y1t)は、正解領域TBの中心Ctの座標(Xt、Yt)と、正解領域TBの幅Wtおよび高さHtと、を用いて、以下のように算出される。
X1t=Xt-(Wt/2)
Y1t=Yt-(Ht/2)
【0048】
正解領域TBの頂点P2tの座標(X2t、Y2t)は、正解領域TBの中心Ctの座標(Xt、Yt)と、正解領域TBの幅Wtおよび高さHtと、を用いて、以下のように算出される。
X2t=Xt+(Wt/2)
Y2t=Yt+(Ht/2)
【0049】
調整パラメータPAは、上述のように1またはαの値をとる。αは、1よりも大きな値であり(1<α)、例えば、10である。調整パラメータPAは、予測領域BBが正解領域TBの全体を含む場合、すなわち、X1b≦X1t、かつ、Y1b≦Y1t、かつ、X2b≧X2t、かつ、X2b≧X2tが満たされる場合には、1である。調整パラメータPAは、予測領域BBが正解領域TBの全体を含まない場合、すなわち、X1b>X1t、または、Y1b>Y1t、または、X2b<X2t、または、X2b<X2tが満たされる場合には、αである。換言すれば、調整パラメータPAは、予測領域BBが正解領域TBの全体を含まない場合、すなわち、正解領域TBの少なくとも一部が予測領域BBの外側にある場合に、損失値にペナルティを付与するものである。これによって、予測領域BBが正解領域TBの全体を含む場合に損失値が小さくなり、予測領域BBが正解領域TBの全体を含まない場合に損失値が大きくなるように、損失値が調整される。
【0050】
例えば、図4(C)に示すように、2つの予測領域BB、すなわち、第1予測領域BB1と、第2予測領域BB2と、を仮定する。第1予測領域BB1は、正解領域TBの全体を含まない予測領域BBである。第2予測領域BB2は、正解領域TBの全体を含む予測領域BBである。
【0051】
第1予測領域BB1の中心Cb1は、正解領域TBの中心Ctと同一である。第1予測領域BB1の幅Wb1は、正解領域TBの幅Wtよりも(2×ΔW)だけ短い。第1予測領域BB1の高さHb1は、正解領域TBの高さHtよりも(2×ΔH)だけ短い。
【0052】
第2予測領域BB2の中心Cb2は、正解領域TBの中心Ctと同一である。第2予測領域BB2の幅Wb2は、正解領域TBの幅Wtよりも(2×ΔW)だけ長い。第2予測領域BB2の高さHb2は、正解領域TBの高さHtよりも(2×ΔH)だけ長い。
【0053】
予測領域BBが第1予測領域BB1である場合に、図7(B)の特定部分SPによって算出される第1損失値は、予測領域BBが第2予測領域BB2である場合に、特定部分SPによって算出される第2損失値と等しい。すなわち、仮に、調整パラメータPAがない場合には、予測領域BBが第1予測領域BB1であっても第2予測領域BB2であっても、領域損失項Lbbによって算出される損失値は等しい。
【0054】
本実施例では、特定部分SPに調整パラメータPAが乗算されることによって、予測領域BBが第1予測領域BB1である場合に領域損失項Lbbによって算出される損失値は、予測領域BBが第2予測領域BB2である場合に領域損失項Lbbによって算出される損失値よりも大きな値に調整される。
【0055】
オブジェクト損失項Lobjは、予測領域の確信度Vcについて、教師データの値(0または1)と出力データODの値との差異が小さいほど小さな値を算出する項である。例えば、オブジェクト損失項Lobjは、正解領域TBと対応する予測領域BBの確信度Vcが最大値(例えば、1)であり、かつ、正解領域TBと対応しない予測領域の確信度Vcが最小値(例えば、0)である場合に、最小の損失値を算出する項である。オブジェクト損失項Lobjは、上記の目的(2)を実現するための項である。
【0056】
クラス損失項Lclassは、教師データに含まれるクラス情報と、出力データODに含まれる対応するクラス情報と、の差異が小さいほど小さな損失値を算出する項である。出力データODに含まれる対応するクラス情報は、出力データODに含まれる複数個のクラス情報のうち、教師データに含まれるクラス情報が対応付けられたセルCLに対応付けられたクラス情報である。クラス損失項Lclassは、上記の目的(3)を実現するための項である。
【0057】
オブジェクト損失項Lobjとクラス損失項Lclassの詳細は省略するが、これらの項の具体的な損失関数には、差異に応じた損失値を算出するための公知の損失関数、例えば、二乗誤差、クロスエントロピー誤差、絶対誤差が用いられる。
【0058】
S440では、CPU110は、算出された損失値を用いて、物体検出モデルANの複数の演算パラメータを調整する。具体的には、CPU110は、訓練画像データごとに算出される損失値の合計が小さくなるように、所定のアルゴリズムに従って演算パラメータを調整する。所定のアルゴリズムとしては、例えば、誤差逆伝播法と勾配降下法とを用いたアルゴリズムが用いられる。これによって、出力データと教師データとの差異が小さくなるように物体検出モデルANの演算パラメータが調整される。
【0059】
S450では、CPU110は、訓練の終了条件が満たされるか否かを判断する。訓練終了条件は、種々の条件であってよい。訓練終了の条件は、例えば、損失値が基準値以下になったことや、損失値の変化量が基準値以下になったことや、S440の演算パラメータの調整が繰り返された回数が所定数以上になったことである。
【0060】
訓練の終了条件が満たされない場合には(S450:NO)、CPU110は、S410に戻って、訓練を継続する。訓練の終了条件が満たされた場合には(S450:YES)、CPU110は、S460にて、調整済の演算パラメータを含む訓練済みの物体検出モデルANのデータを、不揮発性記憶装置130に格納して、訓練処理を終了する。
【0061】
A-4.画像生成モデルGNの構成と訓練処理
画像生成モデルGNは、いわゆるオートエンコーダであり、エンコーダとデコーダとを備えている(図示省略)。エンコーダは、入力画像データに対して次元削減処理を実行して、入力画像データによって表される入力画像の特徴を抽出して特徴データを生成する。デコーダは、特徴データに対して次元復元処理を実行して、出力画像を示す出力画像データを生成する。出力画像のサイズは、入力画像のサイズと同じである。
【0062】
画像生成モデルGNは、出力画像が、ラベルを示す入力画像の特徴を再構成して再現した再現画像を示すように訓練されている。このために、訓練済みの画像生成モデルGNによって生成される出力画像データを、再現画像を示す再現画像データとも呼ぶ。再現画像は、入力画像とほぼ同様の画像である。なお、訓練済みの画像生成モデルGNは、正常なラベルの特徴のみを再構成するように訓練される。このために、例えば、欠陥を含むラベルを示す画像データが訓練済みの画像生成モデルGNに入力される場合に生成される再現画像データは、欠陥のない正常なラベルの画像を示すことが期待できる。換言すれば、画像生成モデルGNに、正常なラベルの画像データが入力される場合も、欠陥を含むラベルの画像データが入力される場合も、再現画像は、正常なラベルを再現した画像になる。
【0063】
A-5.検査処理
図8は、検査処理のフローチャートである。図9は、検査処理の説明図である。検査処理は、検査対象のラベルLが欠陥等を含む異常品であるか、欠陥等を含まない正常品であるかを検査する処理である。検査処理は、ラベルLごとに実行される。検査処理は、ユーザ(例えば、検査の作業者)が処理の開始指示を、操作部150を介して処理装置100に入力した場合に、開始される。例えば、ユーザは、検査すべきラベルLが貼り付けられた製品300を、撮像装置400を用いて撮像するための所定の位置に配置した状態で、検査処理の開始指示を入力する。
【0064】
S900では、CPU110は、検査すべきラベルL(以下、検査品とも呼ぶ)を含む撮像画像を示す撮像画像データを取得する。例えば、CPU110は、撮像装置400に撮像指示を送信して、撮像装置400に撮像画像データを生成させ、撮像装置400から撮像画像データを取得する。この結果、例えば、図9(A)の撮像画像FIを示す撮像画像データが取得される。撮像画像FIは、製品の前面F31と、前面F31上に貼付されたラベルFLとを示す画像である。このように撮像画像FIに示される製品の前面およびラベルを、実物の前面31およびラベルL(図2)と区別するために符号の先頭に「F」を付した符号を用いて、前面F31、ラベルFLとする。ラベルFL内のラベルFLは、キズなどの欠陥を含む場合もある。
【0065】
S905では、CPU110は、取得された撮像画像データを物体検出モデルANに入力して、撮像画像FI内の一部の領域であり、ラベルFLを含む領域であるラベル領域LAを特定する。具体的には、CPU110は、撮像画像データを、入力画像データIDa(図3)として物体検出モデルANに入力して、撮像画像データに対応する出力データOD(図3)を生成する。CPU110は、出力データODによって示される(S×S×B)個の予測領域BBのうち、対応する確信度Vcが所定の閾値THa以上であり、かつ、対応するクラス情報によって領域内のオブジェクトがラベルであると予測される予測領域BBを特定する。CPU110は、該予測領域BBをラベル領域LAとして特定する。互いに重なる2以上のラベル領域LAが特定される場合には、例えば、「Non-maximal suppression」と呼ばれる公知の処理が行われて、2以上のラベル領域から1つのラベル領域LAが特定される。例えば、図9(A)の例では、撮像画像FI内において、ラベルFLの全体を含み、ラベルFLにほぼ外接するラベル領域LAが特定されている。
【0066】
S910では、CPU110は、撮像画像データを用いて、検証画像SIを示す検証画像データを生成する。具体的には、CPU110は、撮像画像FIからラベル領域LAを切り出して、検証画像SIを示す検証画像データを生成する。CPU110は、必要に応じて検証画像SIを拡大または縮小するサイズ調整処理を実行して、検証画像SIのサイズを画像生成モデルGNの入力画像のサイズに調整する。図9(B)、(C)の検証画像SIは、ラベル領域LA内の画像(すなわち、ラベルFLの画像)を示している。なお、図9(B)の検証画像SIaのラベルFLaは、正常品であり、キズなどの欠陥を含んでいない。図9(C)の検証画像SIbのラベルFLbは、異常品であり、線状のキズdfを含んでいる。
【0067】
S915では、CPU110は、検証画像データを、訓練済みの画像生成モデルGNに入力し、検証画像データに対応する再現画像データを生成する。再現画像データによって示される再現画像は、上述したように、入力された検証画像SIのラベルFLを再現した画像である。例えば、入力された検証画像SIが図9(B)、(C)の検証画像SIa、SIbのいずれであっても、生成される再現画像は、図9(B)の検証画像SIaのように欠陥を含まない画像になる。
【0068】
S920では、CPU110は、検証画像データと再現画像データとを用いて、差分画像DIを示す差分画像データを生成する。例えば、CPU110は、検証画像SIの画素の成分値v1と、対応する再現画像の画素の成分値v2と、の差分値(v1-v2)を算出し、該差分値を0~1の範囲の値に正規化する。CPU110は、画素ごと、色成分ごとに、当該差分値を算出し、該差分値を画素の色値とする差分画像データを生成する。
【0069】
図9(D)、(E)には、差分画像DIの一例が示されている。図9(D)の差分画像DIaは、入力画像が図9(B)の正常品を示す検証画像SIaである場合に生成される差分画像である。差分画像DIaは、キズなどの欠陥を含まない。図9(E)の差分画像DIbは、入力画像が図9(C)の異常品を示す検証画像SIbである場合に生成される差分画像である。差分画像DIbは、検証画像SIbに含まれるキズdfに対応するキズdfdを含んでいる。このために、差分画像DIを参照することで、例えば、検証画像SIに含まれる欠陥の有無、位置、大きさ、形状を特定することができる。
【0070】
S925では、CPU110は、差分画像データを用いて、差分画像DIに含まれる異常画素を特定する。異常画素は、例えば、差分画像DIに含まれる複数個の画素のうち、RGB値の少なくとも1つの成分値が閾値TH1以上である画素である。例えば、図9(D)の差分画像DIaが処理対象である場合には、異常画素は特定されない。図9(E)の差分画像DIbが処理対象である場合には、キズdfdを構成する複数個の画素が異常画素として特定される。
【0071】
S940では、CPU110は、差分画像DIにおいて特定された異常画素の個数が閾値TH2以上であるか否かを判断する。異常画素の個数が閾値TH2未満である場合には(S940:NO)、S950にて、CPU110は、検査品としてのラベルは正常品であると判定する。異常画素の個数が閾値TH2以上である場合には(S940:YES)、S945にて、CPU110は、検査品としてのラベルは異常品であると判定する。S955では、CPU110は、検査結果を表示部140に表示して、検査処理を終了する。このように機械学習モデルAN、GNを用いて、検査品が正常品であるか異常品であるかを判定することができる。
【0072】
以上説明した本実施例の物体検出モデルANの訓練処理(図5)では、CPU110は、訓練画像データを物体検出モデルANに入力して、出力データODを生成する(S420)。CPU110は、出力データODと、正解領域情報を含む教師データと、を用いて、損失関数Ltotal(図7)に従って損失値を算出する(図5のS430)。CPU110は、損失値を用いて物体検出モデルANの演算パラメータを調整する(図5のS440)。損失関数Ltotalのうちの領域損失項Lbbは、出力データODによって示されるラベル領域、すなわち、予測領域BB(図4(A)~図4(C))と正解領域TBとの差異に応じて損失値を変動させる特定部分SPと、調整パラメータPAと、を含む(図7(B))。調整パラメータPAは、予測領域BBが正解領域TBの全体を含むか否かに応じて損失値を調整する。本実施例では、上述したように、領域損失項Lbbは、予測領域BBと正解領域TBとの差異が小さいほど損失値を小さくする項である。このために、本実施例の調整パラメータPAは、予測領域BBが正解領域TBの全体を含む場合に損失値が小さくなり、予測領域BBが正解領域TBの全体を含まない場合に損失値が大きくなるように、損失値を調整する(図7(C))。
【0073】
上記構成によれば、損失関数は、予測領域BBが正解領域TBの全体を含むか否かに応じて損失値を調整する調整パラメータPAを含んでいる。この結果、物体検出モデルANは、正解領域TBの全体を含む予測領域BBを示す出力データODを出力するように訓練される。
【0074】
より具体的には、調整パラメータPAによって、損失値は、予測領域BBが正解領域TBの全体を含む場合に損失値が小さくなり、予測領域BBが正解領域TBの全体を含まない場合に損失値が大きくなるように調整される。したがって、損失値を用いて物体検出モデルANの演算パラメータを調整する際に、予測領域BBが正解領域TBの全体を含むように、演算パラメータが調整されやすい。したがって、撮像画像FI内の検出すべきラベルFLが、物体検出モデルANによって特定されるラベル領域LAからはみ出ることを抑制することができる。
【0075】
仮に、検査処理において、検出すべきラベルFLが、物体検出モデルANによって特定されるラベル領域LAからはみ出る場合には、検証画像SI(図9(B)、(C))にラベルFLの一部分が含まれない。この場合には、ラベルFLの一部分が検査の対象にならないので、検査の対象にならない一部分に欠陥が含まれる場合には、該欠陥が検出されない。本実施例では、このような不都合を抑制して、欠陥の検出精度の低下を抑制できる。
【0076】
さらに、本実施例によれば、調整パラメータPAは、領域損失項Lbbの特定部分SPに乗算される調整係数である(図7(B))。調整パラメータPAは、予測領域BBが正解領域TBの全体を含まない場合には、予測領域BBが正解領域TBの全体を含む場合よりも損失値を大きくする度合が大きな値に設定される係数である(図7(C))。この結果、特定部分SPに乗算される調整パラメータPAによって、出力データODによって示される予測領域BBが正解領域TBの全体を含むか否かに応じて損失値が調整される。したがって、物体検出モデルANは、出力される予測領域BBが正解領域TBの全体を含むように、物体検出モデルANを適切に訓練し得る。
【0077】
さらに、本実施例によれば、図4(C)を参照して説明したように、調整パラメータPAによって、予測領域BBが第1予測領域BB1である場合に特定部分SPにて算出される調整前の第1損失値と、予測領域BBが第1予測領域BB1である場合に特定部分SPにて算出される調整前の第2損失値と、が等しい場合であっても、調整後の第1損失値が調整後の第2損失値より大きくなるように、調整される。この結果、訓練時において、予測領域BBが正解領域TBの全体を含む方向に、損失値を適切に調整できる。したがって、物体検出モデルANは、出力される予測領域BBが正解領域TBの全体を含むように、物体検出モデルANを適切に訓練し得る。
【0078】
さらに、本実施例の検査処理では、CPU110は、検査対象のラベルFLを含む撮像画像FIを示す撮像画像データを物体検出モデルANに入力して、撮像画像FI内のラベル領域LAを特定する(図8のS905)。CPU110は、撮像画像データを用いて、ラベル領域LA内の画像を示す検証画像データを生成する(図8のS910)。CPU110は、検証画像データを用いて、ラベルLの欠陥などの異常を検出する(図8のS915~S950)。この結果、撮像画像FI内の検出すべきラベルFLが、物体検出モデルANによって特定されるラベル領域LAからはみ出ることが抑制される。この結果、ラベルLの一部が検査の対象から外れることを抑制できるので、ラベルLの異常の検出精度を向上し得る。
【0079】
以上の説明から解るように、本実施例のラベル領域LAおよび予測領域BBは、物体領域の例であり、本実施例の調整パラメータPAは、第1パラメータの例である。
【0080】
B.第2実施例
第2実施例では、損失関数Ltotalが第1実施例とは異なる。第2実施例の他の構成は、第1実施例と同様である。図10は、第2実施例の損失関数Ltotalの説明図である。第2実施例の損失関数Ltotalでは、図7(B)の領域損失項Lbbに代えて、図10(B)の領域損失項Lbb2が用いられる。
【0081】
第2実施例の領域損失項Lbb2では、調整パラメータPAに代えて、調整パラメータPBが用いられる。具体的には、図10(B)に示すように、領域損失項Lbb2では、特定部分SPに、調整パラメータPBが加算される。調整パラメータPBが大きな値であるほど、領域損失項Lbb2ひいては損失関数Ltotalによって算出される損失値を大きくする度合が大きい。
【0082】
図10(C)に示すように、調整パラメータPBは、0またはβの値をとる。αは、0よりも大きな正の値であり(0<β)、例えば、10である。調整パラメータPBは、予測領域BBが正解領域TBの全体を含む場合、すなわち、X1b≦X1t、かつ、Y1b≦Y1t、かつ、X2b≧X2t、かつ、X2b≧X2tが満たされる場合には、0である。調整パラメータPAは、予測領域BBが正解領域TBの全体を含まない場合、すなわち、X1b>X1t、または、Y1b>Y1t、または、X2b<X2t、または、X2b<X2tが満たされる場合には、βである。第1実施例の調整パラメータPAと同様に、調整パラメータPBは、予測領域BBが正解領域TBの全体を含まない場合に、損失値にペナルティを付与するものである。これによって、予測領域BBが正解領域TBの全体を含む場合に損失値が小さくなり、予測領域BBが正解領域TBの全体を含まない場合に損失値が大きくなるように、損失値が調整される。
【0083】
以上説明した第2実施例によれば、調整パラメータPBは、予測領域BBが正解領域TBの全体を含まない場合には、予測領域BBが正解領域TBの全体を含む場合よりも大きな値を加算する調整項である。この結果、特定部分SPに加算される調整パラメータPBによって、出力データODによって示される予測領域BBが正解領域TBの全体を含むか否かに応じて損失値が調整される。したがって、物体検出モデルANは、出力される予測領域BBがラベル領域LAの全体を含むように適切に訓練され得る。
【0084】
C.第3実施例
第3実施例では、損失関数Ltotalが第1、第2実施例とは異なる。第3実施例の他の構成は、第1、第2実施例と同様である。図11は、第3実施例の損失関数Ltotalの説明図である。第3実施例の損失関数Ltotalでは、図10(B)の領域損失項Lbb2に代えて、図11(B)の領域損失項Lbb3が用いられる。
【0085】
第3実施例の領域損失項Lbb3では、第2実施例の調整パラメータPBに代えて、調整パラメータPB2が用いられる。図11(B)に示すように、調整パラメータPB2は、調整パラメータPBと同様に、特定部分SPに加算される。調整パラメータPB2が大きな値であるほど、領域損失項Lbb3ひいては損失関数Ltotalによって算出される損失値を大きくする度合が大きい。
【0086】
調整パラメータPB2は、0、γ、2γ、3γ、4γの5種の値のいずれかをとる。γは、0よりも大きな正の値であり(0<γ)、例えば、10である。調整パラメータPB2は、矩形(四角形)の予測領域BBの4個の辺Ebr、Ebl、Ebu、Ebbのうち、正解領域TBの中心Ctから見て正解領域TBの対応する辺Etr、Etl、Etu、Etbより内側に位置する辺の数(内側辺数とも呼ぶ)ENが多いほど、大きな値を取る。内側辺数ENは、0≦EN≦4を満たす5つの整数のいずれかである。
【0087】
図11(D)に示すように、内側辺数ENが0である場合は、予測領域BBの4個の辺Ebr、Ebl、Ebu、Ebbの全てが、正解領域TBの対応する辺Etr、Etl、Etu、Etbより外側に位置している。換言すれば、内側辺数ENが0である場合は、予測領域BBが正解領域TBの全体を含む場合である。この場合には、調整パラメータPB2は、最小の値0を取る(図11(C))。
【0088】
図11(E)~図11(H)に示すように、内側辺数ENが1以上である場合は、予測領域BBの4個の辺Ebr、Ebl、Ebu、Ebbのうちの少なくとも1つが、正解領域TBの対応する辺Etr、Etl、Etu、Etbより内側に位置している。換言すれば、内側辺数ENが1以上である場合は、予測領域BBが正解領域TBの全体を含まない場合である。この場合には、調整パラメータPB2は、0より大きな値を取る(図11(C))。
【0089】
図11(E)の例では、予測領域BBの1個の辺Ebrが正解領域TBの対応する辺Etrより内側に位置している。また、予測領域BBの3個の辺Ebl、Ebu、Ebbが正解領域TBの対応する辺Etl、Etu、Etbより外側に位置している。したがって、この例では、内側辺数ENは1であり、調整パラメータPB2の値は、γである(図11(C))。
【0090】
図11(F)の例では、予測領域BBの2個の辺Ebr、Ebbが正解領域TBの対応する辺Etr、Etbより内側に位置している。また、予測領域BBの2個の辺Ebl、Ebuが正解領域TBの対応する辺Etl、Etuより外側に位置している。したがって、この例では、内側辺数ENは2であり、調整パラメータPB2の値は、2γである(図11(C))。
【0091】
図11(G)の例では、予測領域BBの3個の辺Ebr、Ebl、Ebuが正解領域TBの対応する辺Etr、Etl、Etuより内側に位置している。また、予測領域BBの1個の辺Ebbが正解領域TBの対応する辺Etbより外側に位置している。したがって、この例では、内側辺数ENは3であり、調整パラメータPB2の値は、3γである(図11(C))。
【0092】
図11(H)の例では、予測領域BBの4個の辺Ebr、Ebl、Ebu、Ebbの全てが、正解領域TBの対応する辺Etr、Etl、Etu、Etbより内側に位置している。したがって、この例では、内側辺数ENは4であり、調整パラメータPB2の値は、最大の値4γである(図11(C))。
【0093】
以上説明した第3実施例によれば、調整パラメータPAは、多角形(本実施例では四角形)の予測領域BBの複数個の辺のうち、正解領域TBの中心Ctから見て正解領域TBの対応する辺より内側に位置する辺の数である内側辺数ENが多いほど、損失値を調整する度合が大きくなるように設定されている。この結果、内側辺数ENがなるべく少なくなるように、物体検出モデルANが訓練される。したがって、物体検出モデルANは、予測領域BBが正解領域TBの全体を含むように訓練されるので、出力される予測領域BBがラベル領域LAの全体を含むように適切に訓練され得る。
【0094】
D.第4実施例
第4実施例では、損失関数Ltotalが第1~第3実施例とは異なる。第4実施例の他の構成は、第1~第3実施例と同様である。図12は、第4実施例の損失関数Ltotalの説明図である。第4実施例の損失関数Ltotalでは、図11(B)の領域損失項Lbb3に代えて、図12(B)の領域損失項Lbb4が用いられる。
【0095】
第4実施例の領域損失項Lbb4では、第1~第3実施例の領域損失項の特定部分SPに代えて、図12(B)の特定部分SPbが用いられる。特定部分SPbは、(1-IoU)である。IoU(Intersection over Union)は、図12(C)に示すように、重複面積AIを総面積AUで除して得られる値である。重複面積AIは、予測領域BBと正解領域TBとの間で重なり合う部分の面積である。図12(E)の例では、重複面積AIは、ハッチングされた領域の面積である。総面積AUは、重複面積AIと、予測領域BBのうち、正解領域TBと重ならない部分の面積と、正解領域TBのうち、予測領域BBと重ならない部分の面積と、の合計である。図12(F)の例では、総面積AUは、ハッチングされた領域の面積である。IoUは、0以上1以下の値を取る。IoUは、予測領域BBと正解領域TBとが完全に一致する場合に最大の値1を取り、予測領域BBと正解領域TBとが重ならない場合に最小の値0を取る。このように、IoUは、予測領域BBと正解領域TBとの差異に応じて変動する値であり、予測領域BBと正解領域TBとの差異が小さいほど大きな値となる。このために、(1-IoU)は、予測領域BBと正解領域TBとの差異が小さいほど小さな値となる。
【0096】
第4実施例では、第3実施例の調整パラメータPB2に代えて、調整パラメータPBpが用いられる。図12(D)に示すように、調整パラメータPBpは、外側面積AOを総面積AUで除して得られる値である。外側面積AOは、正解領域TBのうち、予測領域BBよりも外側にある領域の面積、換言すれば、正解領域TBに含まれ、かつ、予測領域BBに含まれない領域の面積である。図12(B)の例では、外側面積AOは、ハッチングされた領域の面積である。調整パラメータPBpは、特定部分SPbに加算される。調整パラメータPBpが大きな値であるほど、領域損失項Lbb4ひいては損失関数Ltotalによって算出される損失値を大きくする度合が大きい。
【0097】
調整パラメータPBpは、予測領域BBが正解領域TBの全体を含む場合に、最小の値0を取る。調整パラメータPBpは、予測領域BBが正解領域TBの全体を含まない場合に、0より大きな値を取る。調整パラメータPBpは、予測領域BBの面積が一定である場合には、外側面積AOが大きいほど大きくなる。
【0098】
以上説明した第4実施例によれば、調整パラメータPBpは、正解領域TBに含まれ、かつ、予測領域BBに含まれない領域の面積(外側面積AO)が大きいほど、損失値を調整する度合が大きくなるように設定される。この結果、物体検出モデルANは、外側面積AOが小さくなるように訓練される。したがって、物体検出モデルANは、予測領域BBが正解領域TBの全体を含むように訓練されるので、出力される予測領域BBがラベル領域LAの全体を含むように適切に訓練され得る。
【0099】
E.第5実施例
第5実施例では、物体検出モデルANの訓練処理が、図4の他の実施例(例えば、第1実施例)の訓練処理とは異なる。第5実施例では、損失関数Ltotalが他の実施例(例えば、第1実施例)とは異なる。第5実施例の他の構成は、第1実施例と同様である。図13は、第5実施例の物体検出モデルANの訓練処理のフローチャートである。図14は、第5実施例の損失関数Ltotalの説明図である。
【0100】
図13の訓練処理では、図5のS430に代えて、図13のS425B、S430Bが実行される。図13の訓練処理の他の処理は、図5の同符号の処理と同一である。
【0101】
図13のS425Bでは、CPU110は、調整された正解領域を示す修正教師データを生成する。図14(C)には、正解領域TBと、調整正解領域TBaと、が図示されている。調整正解領域TBaの中心Ctaは、調整前の正解領域TBの中心Ctと同一である。調整正解領域TBaの幅Wtaは、調整前の正解領域TBの幅Wtよりも長い。調整正解領域TBaの高さHtaは、調整前の正解領域TBの高さHtよりも長い。調整正解領域TBaの幅Wtaおよび高さHtaは、例えば、調整前の正解領域TBの幅Wtおよび高さHtの1.05~1.3倍程度の値である。このように、調整正解領域TBaは、正解領域TBを横方向(方向Dx)および縦方向(方向Dy)に拡大して得られる領域である。また、調整正解領域TBaは、正解領域TBよりも広く、かつ、正解領域TBの全体を含む領域である。
【0102】
CPU110は、教師データに含まれる正解領域情報を調整して、正解領域TBを示す情報から調整正解領域TBaを示す情報に変更することによって、修正教師データを生成する。
【0103】
S430Bでは、CPU110は、複数個の出力データODと、複数個の出力データODに対応する複数個の修正教師データと、を用いて、損失値を算出する。
【0104】
損失値の算出には、出力データODと修正教師データとの間の差異に応じた損失値を算出する図14(A)の損失関数Ltotalが用いられる。第5実施例の損失関数Ltotalでは、例えば、図7(B)の領域損失項Lbbに代えて、図14(B)の領域損失項Lbb5が用いられる。図14(B)の領域損失項Lbb5は、図7(B)の領域損失項Lbbとは異なり、調整パラメータ(例えば、図7(B)の調整パラメータPA)を含まない。図14(B)の領域損失項Lbb5は、図7(B)の特定部分SPに代えて、特定部分SPcを含んでいる。図14(B)の特定部分SPcでは、図7(B)の特定部分SPにおけるWtおよびHtに代えて、WtaおよびHtaが用いられている。これは、第5実施例の修正教師データは、正解領域TBの幅Wtおよび高さHtに代えて、調整正解領域TBaの幅Wtaおよび高さHtaを含んでいるためである。
【0105】
以上説明した第5実施例の物体検出モデルANの訓練処理(図13)では、CPU110は、訓練画像データを物体検出モデルANに入力して、出力データODを生成する(図13のS420)。CPU110は、調整正解領域TBaを示す調整正解領域情報を含む修正教師データを生成し(図13のS425B)、出力データODと、修正教師データと、を用いて、損失関数Ltotal(図14)に従って損失値を算出する(図13のS430B)。CPU110は、損失値を用いて物体検出モデルANの演算パラメータを調整する(図13のS440)。この結果、正解領域TBより広く、正解領域TBの全体を含む調整正解領域TBaに、予測領域BB(すなわち、特定されるラベル領域LA)が近づくように、物体検出モデルANが訓練される。この結果、正解領域TBの全体を含むラベル領域を示す出力データODが出力されるように物体検出モデルANが訓練される。したがって、撮像画像FI内の検出すべきラベルFLが、物体検出モデルANによって特定されるラベル領域LAからはみ出ることを抑制することができる。
【0106】
さらに、本実施例では、調整正解領域TBaの中心Ctaは、正解領域TBの中心Ctと同一である(図14(C))。そして、調整正解領域TBaの一辺に沿う方向Dxの長さ(すなわち、幅Wta)は、正解領域TBの方向Dxの長さ(すなわち、幅Wt)よりも長い(図14(C))。また、調整正解領域の方向Dxと直交する方向Dyの長さ(すなわち、高さHta)は、正解領域TBの方向Dyの長さ(すなわち、高さHt)よりも長い(図14(C))。したがって、正解領域TBより広く、正解領域TBの全体を含む適切な調整正解領域TBaが設定できる。この結果、正解領域TBの全体を含む予測領域BB(ラベル領域LA)を示す出力データODが出力されるように物体検出モデルANを適切に訓練し得る。
【0107】
F.変形例
(1)上記各実施例にて例示した損失関数(図7図10図12図14)は、一例であり、これに限られない。例えば、領域損失項の特定部分SP、SPb、SPcには、二乗誤差に限らず、クロスエントロピー誤差や絶対誤差などの他の誤差が用いられても良い。また、特定部分SP、SPb、SPcには、改良されたIoU誤差、例えば、GIoU(generalized IoU)誤差、DIoU(Distance-IoU)誤差、CIoU(Complete IoU)誤差が用いられても良い。
【0108】
(2)上記各実施例では、領域損失項の特定部分SP、SPb、SPcは、予測領域BBと正解領域TBとの差異が小さいほど損失値を小さくする式である。このために、調整パラメータとしては、予測領域BBが正解領域TBの全体を含む場合に損失値が小さくなり、予測領域BBが正解領域TBの全体を含まない場合に損失値が大きくなるように、損失値を調整するパラメータが採用されている。
【0109】
これに代えて、領域損失項の特定部分は、予測領域BBと正解領域TBとの差異が小さいほど損失値を大きくする式であっても良い。例えば、図7(B)の特定部分SPは、二乗誤差であるが、これに代えて、二乗誤差に負の係数を乗じたものが採用されても良い。あるいは、図12(B)の特定部分SPbは、(1-IoU)であるが、これに代えて、IoUが採用されても良い。この場合には、図5図13のS440では、損失値が大きくなるように、物体検出モデルANの演算パラメータが調整される。したがって、この場合には、調整パラメータとしては、予測領域BBが正解領域TBの全体を含む場合に損失値が大きくなり、予測領域BBが正解領域TBの全体を含まない場合に損失値が小さくなるように、損失値を調整するパラメータが採用される。例えば、この場合には、第1実施例の調整パラメータPAとしては、例えば、予測領域BBが正解領域TBの全体を含まない場合には、予測領域BBが正解領域TBの全体を含む場合よりも損失値を小さくする度合が大きな値に設定される係数が採用される。また、第2~第4実施例の調整パラメータPB、PB2、PBpとしては、例えば、予測領域BBが正解領域TBの全体を含まない場合には、予測領域BBが正解領域TBの全体を含む場合よりも小さな値を加算する項が採用される。
【0110】
以上の説明から解るように、上記各実施例の調整パラメータは、第1パラメータの例であり、本変形例の調整パラメータは、第2パラメータの例である。なお、上記実施例と本変形例から解るように、1つの実施態様では、第1パラメータと第2パラメータのいずれか一方が用いられていれば良く、第1パラメータと第2パラメータとの両方が用いられる必要はない。
【0111】
(3)上記各実施例で用いられる物体検出モデルANの構成は一例であり、他のモデルであってもよい。例えば、物体検出モデルAN、YOLOモデルに代えて、他の任意のモデルであってよい。物体検出モデルは、例えば、「YOLO v3」「YOLO v4」「YOLO v5」などの改良されたYOLOモデルであってよい。また、SSD、R-CNN、Fast R-CNN, Faster R-CNN、Mask R-CNNなどの、他のモデルが使用されてよい。いずれのモデルが採用される場合であっても、訓練時に用いられ領域損失項の特定部分に、上記第1~第4実施例のように、調整パラメータが加算または乗算されることによって、損失値が調整されることが好ましい。あるいは、上記第5実施例のように、拡大された正解領域を示す調整正解領域情報を含む教師データを用いて、物体検出モデルが訓練されることが好ましい。これによって、正解領域TBの全体を含むラベル領域を示す出力データが出力されるように物体検出モデルを適切に訓練し得る。
【0112】
(4)上記各実施例で用いられる予測領域BBおよび正解領域TBは、矩形の領域であるが、これに限らず、円形、あるいは、矩形とは異なる多角形(例えば、六角形や八角形)の領域であっても良い。
【0113】
(5)上記第5実施例において、図14(C)の調整正解領域TBaは一例であり、これに限られない。例えば、調整正解領域TBaは、正解領域TBより広く、かつ、正解領域TBの全体を含めば良く、調整正解領域TBaの中心Ctaと正解領域TBの中心Ctとは、ずれていても良い。
【0114】
(6)検査対象の物体は、製品(例えば、複合機、ミシン、カッティングマシン、携帯端末など)に貼られるラベルに限らず、任意の物であってよい。検査対象の物体は、例えば、対、製品に印刷されるラベル画像であってよい。また、検査対象の物体は、製品そのものであっても良いし、製品に取り付けられる札、付属品、部品、刻印など、製品の任意の一部分であってよい。
【0115】
(7)上記各実施例の物体検出モデルANは、ラベルLの検査処理において、ラベル領域LAを特定するために用いられている。これに限らず、物体検出モデルANは、他の目的のために用いられても良い。例えば、物体検出モデルANは、撮像画像内の顔領域に対して所定の画像処理(例えば、肌色補正)を行うために、撮像画像内の顔領域を特定するために用いられても良い。この場合であっても、本実施例によれば、撮像画像内の顔部分の全体を漏れなく含むような顔領域が特定できるように、物体検出モデルANを訓練できるので、顔部分の全体に漏れなく所定の画像処理を施すことができる。
【0116】
(8)上記実施例では、訓練処理と検査処理とは、図1の処理装置100によって実行されている。これに代えて、訓練処理と検査処理とは、それぞれ、別の装置によって実行されても良い。この場合には、例えば、訓練処理によって訓練された物体検出モデルANは、検査処理を実行する装置の記憶装置に格納される。また、訓練処理と検査処理との全部または一部は、ネットワークを介して互いに通信可能な複数個の計算機(例えば、いわゆるクラウドサーバ)によって実行されても良い。また、検査処理を行うコンピュータプログラムと、訓練処理を行うコンピュータプログラムとは、異なるコンピュータプログラムであっても良い。
【0117】
(9)上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。例えば、訓練処理と検査処理との全部または一部は、ASIC(Application Specific Integrated Circuit)等のハードウェア回路によって実行されてよい。
【0118】
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
【符号の説明】
【0119】
1000…検査システム,100…処理装置,110…CPU,120…揮発性記憶装置,130…不揮発性記憶装置,140…表示部,150…操作部,170…通信部,30…筐体,300…製品,31…前面,400…撮像装置,AN…物体検出モデル,BB…予測領域,DI…差分画像,FI…撮像画像,GN…画像生成モデル,L…ラベル,PA,PB,PB2,PBp…調整パラメータ,PG…コンピュータプログラム,SI…検証画像,SP,SPb,SPc…特定部分,TB…正解領域,TBa…調整正解領域,TI…訓練画像
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14