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

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

▶ 株式会社エクサウィザーズの特許一覧

特許7323841異常検出方法、異常検出システム及びプログラム
<>
  • 特許-異常検出方法、異常検出システム及びプログラム 図1
  • 特許-異常検出方法、異常検出システム及びプログラム 図2
  • 特許-異常検出方法、異常検出システム及びプログラム 図3
  • 特許-異常検出方法、異常検出システム及びプログラム 図4
  • 特許-異常検出方法、異常検出システム及びプログラム 図5
  • 特許-異常検出方法、異常検出システム及びプログラム 図6
  • 特許-異常検出方法、異常検出システム及びプログラム 図7
  • 特許-異常検出方法、異常検出システム及びプログラム 図8
  • 特許-異常検出方法、異常検出システム及びプログラム 図9
  • 特許-異常検出方法、異常検出システム及びプログラム 図10
  • 特許-異常検出方法、異常検出システム及びプログラム 図11
  • 特許-異常検出方法、異常検出システム及びプログラム 図12
  • 特許-異常検出方法、異常検出システム及びプログラム 図13
  • 特許-異常検出方法、異常検出システム及びプログラム 図14
  • 特許-異常検出方法、異常検出システム及びプログラム 図15
  • 特許-異常検出方法、異常検出システム及びプログラム 図16
  • 特許-異常検出方法、異常検出システム及びプログラム 図17
  • 特許-異常検出方法、異常検出システム及びプログラム 図18
  • 特許-異常検出方法、異常検出システム及びプログラム 図19
  • 特許-異常検出方法、異常検出システム及びプログラム 図20
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2023-08-01
(45)【発行日】2023-08-09
(54)【発明の名称】異常検出方法、異常検出システム及びプログラム
(51)【国際特許分類】
   G06T 7/00 20170101AFI20230802BHJP
   G06V 10/82 20220101ALI20230802BHJP
   G06V 10/778 20220101ALI20230802BHJP
【FI】
G06T7/00 350C
G06T7/00 610Z
G06V10/82
G06V10/778
【請求項の数】 8
(21)【出願番号】P 2022192334
(22)【出願日】2022-11-30
【審査請求日】2022-12-06
【早期審査対象出願】
(73)【特許権者】
【識別番号】517255566
【氏名又は名称】株式会社エクサウィザーズ
(72)【発明者】
【氏名】山下聖悟
【審査官】新井 則和
(56)【参考文献】
【文献】特開2021-140739(JP,A)
【文献】特開2020-030565(JP,A)
【文献】特開2022-126620(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00-7/90
G06V 10/778
G06V 10/82
(57)【特許請求の範囲】
【請求項1】
異常検出システムが実行する異常検出方法であって、
正常画像を学習することにより画像から異常を検出するように学習された異常検出モデルを利用して、複数の対象画像から異常を検出する検出処理と、
前記検出処理により異常が検出されなかった対象画像の中の少なくとも一部を第1再学習用画像として選択する選択処理と、
前記第1再学習用画像を前記異常検出モデルに再学習させる再学習処理と、
を含み、
前記選択処理は、前回の再学習処理の実行後に検出処理の対象となった対象画像の中から前記第1再学習用画像を選択する
異常検出方法。
【請求項2】
前記選択処理は、異常度が閾値以下の正常画像を前記第1再学習用画像として選択する
請求項1に記載の異常検出方法。
【請求項3】
前記選択処理は、対象画像を一覧表示し、一覧表示された対象画像の中からユーザにより選択された対象画像を前記第1再学習用画像として選択する
請求項1に記載の異常検出方法。
【請求項4】
前記再学習処理は、所定時間ごとに実行される
請求項1に記載の異常検出方法。
【請求項5】
検出処理により対象画像から異常が検出された場合、異常部分画像を学習することにより異常画像に含まれる異常を分類するように学習された異常分類モデルを利用して、検出された異常を分類する分類処理を更に含む
請求項1に記載の異常検出方法。
【請求項6】
前記選択処理は、前記検出処理により異常が検出された対象画像の中の少なくとも一部からクロッピングした異常部分画像を第2再学習用画像として選択し、
前記再学習処理は、前記第2再学習用画像を前記異常分類モデルに再学習させる
請求項に記載の異常検出方法。
【請求項7】
コンピュータに、
正常画像を学習することにより画像から異常を検出するように学習された異常検出モデルを利用して、複数の対象画像から異常を検出する検出処理と、
前記検出処理により異常が検出されなかった対象画像の中の少なくとも一部を第1再学習用画像として選択する選択処理と、
前記第1再学習用画像を前記異常検出モデルに再学習させる再学習処理と、
を含み、
前記選択処理は、前回の再学習処理の実行後に検出処理の対象となった対象画像の中から前記第1再学習用画像を選択する
異常検出方法を実行させるためのプログラム。
【請求項8】
正常画像を学習することにより画像から異常を検出するように学習された異常検出モデルを利用して、複数の対象画像から異常を検出する検出部と、
前記検出部により異常が検出されなかった対象画像の中の少なくとも一部を第1再学習用画像として選択する選択部と、
前記第1再学習用画像を前記異常検出モデルに再学習させる再学習部と、
を含み、
前記選択部は、前回の再学習処理の実行後に検出処理の対象となった対象画像の中から前記第1再学習用画像を選択する
異常検出システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、異常検出方法、異常検出システム及びプログラムに関する。
【背景技術】
【0002】
近年、AIモデルにより画像から異常を検出する技術が広く利用されている。一般に、検出対象となる異常の画像を学習させたAIモデルに異常を検出する対象を撮影した画像を入力すると、AIモデルが画像に含まれる異常を検出する。例えば、引用文献1には、欠陥候補を学習した欠陥候補検出モデルを利用して、金属製品の表面画像から欠陥候補を検出する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2022-126620号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記従来技術では、異常を検出する対象となる画像の撮影環境が時間に応じて変化したり、異常を検出する対象が時期により外観が変化するもの(野菜など)であったりした場合、AIモデルによる異常の検出精度が経時的に低下するおそれがあった。
【0005】
本発明は、上記の課題を鑑みてなされたものであり、AIモデルによる異常の検出精度の低下を抑制することを目的とする。
【課題を解決するための手段】
【0006】
一実施形態に係る異常検出方法は、異常検出システムが実行する異常検出方法であって、正常画像を学習することにより画像から異常を検出するように学習された異常検出モデルを利用して、複数の対象画像から異常を検出する検出処理と、前記検出処理により異常が検出されなかった対象画像の中の少なくとも一部を第1再学習用画像として選択する選択処理と、前記第1再学習用画像を前記異常検出モデルに再学習させる再学習処理と、を含む。
【発明の効果】
【0007】
一実施形態によれば、AIモデルによる異常の検出精度の低下を抑制することができる。
【図面の簡単な説明】
【0008】
図1】異常検出システム1000の構成の一例を示す図である。
図2】情報処理装置100のハードウェア構成の一例を示す図である。
図3】異常検出装置1の機能構成の一例を示す図である。
図4】対象画像情報121の一例を示す図である。
図5】対象画像imの一例を示す図である。
図6】第1学習用画像情報1221の一例を示す図である。
図7】第1学習用画像imL1の一例を示す図である。
図8】第2学習用画像情報1222の一例を示す図である。
図9】第2学習用画像imL2の一例を示す図である。
図10】第1再学習用画像情報1231の一例を示す図である。
図11】第1再学習用画像imrL1の一例を示す図である。
図12】第2再学習用画像情報1232の一例を示す図である。
図13】第2再学習用画像imrL2の一例を示す図である。
図14】検出結果情報126の一例を示す図である。
図15】学習処理の一例を示すフローチャートである。
図16】選択画面の一例を示す図である。
図17】選択画面の一例を示す図である。
図18】選択画面の一例を示す図である。
図19】異常検出処理の一例を示すフローチャートである。
図20】クロッピング方法の一例を示す図である。
【発明を実施するための形態】
【0009】
以下、本発明の各実施形態について、添付の図面を参照しながら説明する。なお、各実施形態に係る明細書及び図面の記載に関して、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省略する。
【0010】
<システム構成>
まず、本実施形態に係る異常検出システム1000の概要について説明する。本実施形態に係る異常検出システム1000は、AIモデルを利用して、対象画像imから異常を検出する情報処理システムである。
【0011】
対象画像imは、異常検出対象tを撮影した画像である。異常検出対象tは、異常を検出する対象となる任意の物体である。異常は、欠陥、不良、異物などの、異常検出対象tの正常な状態とは異なる任意の状態又は物体である。情報処理システムは、ネットワークを介して接続された複数の情報処理装置からなるシステムである。
【0012】
以下、対象画像imのうち、異常検出対象tが異常を含む画像を異常画像、異常検出対象tが異常を含まない画像を正常画像という。また、異常画像に含まれる異常の部分をクロッピングした(切り出した)画像を異常部分画像という。
【0013】
異常検出システム1000は、監視カメラの映像からの異常検出、工場に設置されたベルトコンベアの映像からの異常検出、製品の外観検査のために撮影された画像からの異常検出など、任意の画像からの異常検出に利用できる。
【0014】
異常検出システム1000は、正常画像を学習させることにより、異常を検出するAIモデルを学習させる。また、異常検出システム1000は、所定のタイミングでAIモデルに新たな正常画像を再学習させる。これにより、異常検出システム1000は、異常検出対象tや撮影環境の経時的な変化に起因するAIモデルの異常の検出精度の経時的な低下を抑制することができる。
【0015】
したがって、異常検出システム1000は、異常検出対象tや撮影環境が経時的に変化する場合に、好適に利用することができる。例えば、異常検出対象tが経時的に変化する場合として、異常検出対象tが野菜、果物、鮮魚、精肉などの生鮮食品である場合が挙げられる。また、撮影環境が経時的に変化する場合として、撮影環境が屋外であったり、日照のある屋内であったりする場合が挙げられる。
【0016】
図1は、異常検出システム1000の構成の一例を示す図である。図1に示すように、異常検出システム1000は、ネットワークNを介して相互に通信可能に接続された、異常検出装置1と、ユーザ端末2と、撮影装置3と、を備える。ネットワークNは、例えば、有線LAN(Local Area Network)、無線LAN、インターネット、公衆回線網、モバイルデータ通信網、又はこれらの組み合わせである。図1の例では、異常検出システム1000は、異常検出装置1、ユーザ端末2及び撮影装置3をそれぞれ1つずつ備えるが、それぞれ複数備えてもよい。
【0017】
異常検出装置1は、対象画像imから異常を検出する情報処理装置である。異常検出装置1は、例えば、PC(Personal Computer)、スマートフォン、タブレット端末、サーバ装置、又はマイクロコンピューであるが、これに限られない。異常検出装置1について、詳しくは後述する。
【0018】
ユーザ端末2は、異常検出システム1000のユーザが利用する情報処理装置である。ユーザ端末2は、例えば、PC、スマートフォン、タブレット端末、サーバ装置、又はマイクロコンピューであるが、これに限られない。ユーザ端末2は、撮影装置3と有線又は
無線により接続され、撮影装置3から対象画像imを受信し、ネットワークNを介して、対象画像imを異常検出装置1に送信する。ユーザ端末2は、撮影装置3とネットワークNを介して接続されてもよい。また、ユーザ端末2は、ネットワークNや記録メディアから対象画像imを取得し、対象画像imを異常検出装置1に送信してもよい。また、ユーザは、ユーザ端末2を操作して、正常画像及び異常画像のアノテーションや、異常部分画像のクリッピングなどを行ってもよい。
【0019】
撮影装置3は、異常検出対象tを撮影する情報処理装置である。撮影装置3は、デジタルカメラ、監視カメラ、スマートフォン、又はAIカメラであるが、これに限られない。撮影装置3は、異常検出対象tを撮影した対象画像imをユーザ端末2に送信する。図1の例では、ベルトコンベアで搬送されるじゃがいも(異常検出対象t)を、固定して設置された撮影装置3で撮影する場合を想定しているが、異常検出対象tも撮影装置3もこれに限られない。
【0020】
<情報処理装置のハードウェア構成>
次に、情報処理装置100のハードウェア構成について説明する。図2は、情報処理装置100のハードウェア構成の一例を示す図である。図2に示すように、情報処理装置100は、バスBを介して相互に接続された、プロセッサ101と、メモリ102と、ストレージ103と、通信I/F104と、入出力I/F105と、ドライブ装置106と、を備える。
【0021】
プロセッサ101は、ストレージ103に記憶されたOS(Operating System)を含む各種のプログラムをメモリ102に展開して実行することにより、情報処理装置100の各構成を制御し、情報処理装置100の機能を実現する。プロセッサ101は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)、ASIC(Application Specific Integrated Circuit)、DSP(Digital Signal Processor)、又はこれらの組み合わせである。
【0022】
メモリ102は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)、又はこれらの組み合わせである。ROMは、例えば、PROM(Programmable ROM)、EPROM(Erasable Programmable ROM)、EEPROM(Electrically Erasable Programmable ROM)、又はこれらの組み合わせである。RAMは、例えば、DRAM(Dynamic RAM)、SRAM(Static RAM)、又はこれらの組み合わせである。
【0023】
ストレージ103は、OSを含む各種のプログラム及びデータを記憶する。ストレージ103は、例えば、フラッシュメモリ、HDD(Hard Disk Drive)、SSD(Solid State Drive)、SCM(Storage Class Memories)、又はこれらの組み合わせである。
【0024】
通信I/F104は、情報処理装置100を、ネットワークNを介して外部装置に接続し、通信を制御するためのインタフェースである。通信I/F104は、例えば、Bluetooth(登録商標)、Wi-Fi(登録商標)、ZigBee(登録商標)、Ethernet(登録商標)、又は光通信に準拠したアダプタであるが、これに限られない。
【0025】
入出力I/F105は、情報処理装置100に入力装置107及び出力装置108を接続するためのインタフェースである。入力装置107は、例えば、マウス、キーボード、タッチパネル、マイク、スキャナ、カメラ、各種センサ、操作ボタン、又はこれらの組み合わせである。出力装置108は、例えば、ディスプレイ、プロジェクタ、プリンタ、スピーカ、バイブレータ、又はこれらの組み合わせである。
【0026】
ドライブ装置106は、記録メディア109のデータを読み書きする。ドライブ装置106は、例えば、磁気ディスクドライブ、光学ディスクドライブ、光磁気ディスクドライブ又はSDカードリーダである。記録メディア109は、例えば、CD(Compact Disc)、DVD(Digital Versatile Disc)、FD(Floppy Disk)、MO(Magneto-Optical disk)、BD(Blu-ray(登録商標) Disc)、USB(登録商標)メモリ、SDカード、又はこれらの組み合わせである。
【0027】
なお、本実施形態において、プログラムは、情報処理装置100の製造段階でメモリ102又はストレージ103に書き込まれてもよいし、ネットワークNを介して情報処理装置100に提供されてもよいし、記録メディア109などの非一時的でコンピュータ読み取り可能な記録媒体を介して情報処理装置100に提供されてもよい。
【0028】
<機能構成>
次に、異常検出装置1の機能構成について説明する。図3は、異常検出装置1の機能構成の一例を示す図である。図3に示すように、異常検出装置1は、通信部11と、記憶部12と、制御部13と、を備える。
【0029】
通信部11は、通信I/F104により実現される。通信部11は、ネットワークNを介して、ユーザ端末2との間で情報の送受信を行う。また、通信部11は、有線又は無線により、撮影装置3から対象画像imを受信する。
【0030】
記憶部12は、メモリ102及びストレージ103により実現される。記憶部12は、対象画像情報121と、学習用画像情報122と、再学習用画像情報123と、異常検出モデル124と、異常分類モデル125と、検出結果情報126と、を記憶する。
【0031】
対象画像情報121は、対象画像imに関する情報である。
【0032】
図4は、対象画像情報121の一例を示す図である。図4の対象画像情報121は、情報項目として、「対象画像ID」と、「撮影日時」と、「画像データ」と、を含む。
【0033】
「対象画像ID」は、対象画像imの識別情報である。以下では、「対象画像ID」が「imXXX」である対象画像imを、対象画像imXXXと称する。
【0034】
「撮影日時」は、対象画像imを撮影装置3が撮影した日時である。図4の例では、対象画像im001の「撮影日時」は「2022/8/22 15:00:54」である。これは、対象画像im001が2022/8/22の15:00:54に撮影されたことを示している。
【0035】
「画像データ」は、対象画像imの画像データである。図4の例では、対象画像im001の「画像データ」は「im001.png」である。これは、対象画像im001の画像データのファイル名がim001.pngであることを示している。
【0036】
なお、対象画像情報121は、図4の例に限られない。対象画像情報121は、上記の情報項目の一部を含まなくてもよいし、上記以外の情報項目を含んでもよい。例えば、対象画像情報121は、対象画像imを撮影した撮影装置3に関する情報や、その撮影環境に関する情報を含んでもよい。
【0037】
図5は、対象画像imの一例を示す図である。図5の例では、異常検出対象tは、じゃがいもであり、じゃがいもの異常として、芽、傷及び変色を想定している。対象画像im001は、正常な(異常のない)じゃがいもを撮影した正常画像である。対象画像im002は、異常な(芽がある)じゃがいもを撮影した異常画像である。対象画像im003は、異常な(変色がある)じゃがいもを撮影した異常画像である。対象画像情報121には、このように正常画像及び異常画像の対象画像情報121が含まれる。
【0038】
学習用画像情報122は、AIモデルに学習させる学習用画像に関する情報である。学習用画像情報122は、第1学習用画像情報1221と、第2学習用画像情報1222と、を含む。
【0039】
第1学習用画像情報1221は、第1学習用画像imL1に関する情報である。第1学習用画像imL1は、異常検出モデル124に学習させるための学習用画像である。第1学習用画像imL1は、対象画像imの中から選択された正常画像である。
【0040】
図6は、第1学習用画像情報1221の一例を示す図である。図6の第1学習用画像情報1221は、情報項目として、「第1学習用画像ID」と、「対象画像ID」と、「撮影日時」と、「画像データ」と、を含む。
【0041】
「第1学習用画像ID」は、第1学習用画像imL1の識別情報である。以下では、「第1学習用画像ID」が「imL1XX」である第1学習用画像imL1を、第1学習用画像imL1XXと称する。
【0042】
「対象画像ID」は、第1学習用画像imL1に対応する対象画像imの識別情報である。図6の例では、第1学習用画像imL101と対象画像im001とが対応する。これは、対象画像im001が第1学習用画像imL1として選択され、「第1学習用画像ID」として「imL101」を割り当てられたことを示している。
【0043】
「撮影日時」は、第1学習用画像imL1を撮影装置3が撮影した日時を示す情報である。図6の例では、第1学習用画像imL101の「撮影日時」は「2022/8/22 15:00:54」である。これは、第1学習用画像imL1が2022/8/22の15:00:54に撮影されたことを示している。第1学習用画像imL1の撮影日時は、対応する対象画像imの撮影日時と同じである。
【0044】
「画像データ」は、第1学習用画像imL1の画像データである。図6の例では、第1学習用画像imL101の「画像データ」は「imL101.png」である。これは、第1学習用画像imL101の画像データのファイル名がimL101.pngであることを示している。第1学習用画像imL1の画像自体は、対応する対象画像imと同じである。
【0045】
なお、第1学習用画像情報1221は、図6の例に限られない。第1学習用画像情報1221は、上記の情報項目の一部を含まなくてもよいし、上記以外の情報項目を含んでもよい。例えば、第1学習用画像情報1221は、第1学習用画像imL1を撮影した撮影装置3に関する情報や、その撮影環境に関する情報を含んでもよい。
【0046】
図7は、第1学習用画像imL1の一例を示す図である。図7の例では、異常検出対象tは、じゃがいもであり、じゃがいもの異常として、芽、傷及び変色を想定している。第1学習用画像imL101~imL103は、正常な(異常のない)じゃがいもを撮影した正常画像である。第1学習用画像情報1221には、このように複数の正常画像の第1学習用画像情報1221が含まれる。
【0047】
第2学習用画像情報1222は、第2学習用画像imL2に関する情報である。第2学習用画像imL2は、異常分類モデル125に学習させるための学習用画像である。第2学習用画像imL2は、対象画像imの中から選択された異常画像から、異常の部分をクリッピングした異常部分画像である。
【0048】
図8は、第2学習用画像情報1222の一例を示す図である。図8の第2学習用画像情報1222は、情報項目として、「第2学習用画像ID」と、「対象画像ID」と、「撮影日時」と、「画像データ」と、「異常種類」と、を含む。
【0049】
「第2学習用画像ID」は、第2学習用画像imL2の識別情報である。以下では、「第2学習用画像ID」が「imL2XX」である第2学習用画像imL2を、第2学習用画像imL2XXと称する。
【0050】
「対象画像ID」は、第2学習用画像imL2に対応する対象画像imの識別情報である。図8の例では、第2学習用画像imL201と対象画像im002とが対応する。これは、対象画像im002が異常画像として選択され、その異常の部分をクリッピングした画像が第2学習用画像imL2であり、「第2学習用画像ID」として「imL201」を割り当てられたことを示している。
【0051】
「撮影日時」は、第2学習用画像imL2を撮影装置3が撮影した日時を示す情報である。図8の例では、第2学習用画像imL201の「撮影日時」は「2022/8/22 15:00:55」である。これは、第2学習用画像imL2が2022/8/22の15:00:55に撮影されたことを示している。第2学習用画像imL2の撮影日時は、対応する対象画像imの撮影日時と同じである。
【0052】
「画像データ」は、第2学習用画像imL2の画像データである。図8の例では、第2学習用画像imL201の「画像データ」は「imL201.png」である。これは、第2学習用画像imL201の画像データのファイル名がimL201.pngであることを示している。第2学習用画像imL2の画像自体は、対応する対象画像imの異常部分と同じである。
【0053】
「異常種類」は、第2学習用画像imL2に含まれる異常の種類を示す情報である。図8の例では、第2学習用画像imL201の「異常種類」は「芽」である。これは、第2学習用画像imL201が、じゃがいもの芽の部分を撮影した画像であることを示している。
【0054】
なお、第2学習用画像情報1222は、図8の例に限られない。第2学習用画像情報1222は、上記の情報項目の一部を含まなくてもよいし、上記以外の情報項目を含んでもよい。例えば、第2学習用画像情報1222は、第2学習用画像imL2を撮影した撮影装置3に関する情報や、その撮影環境に関する情報を含んでもよい。
【0055】
図9は、第2学習用画像imL2の一例を示す図である。図9の例では、異常検出対象tは、じゃがいもであり、じゃがいもの異常として、芽、傷及び変色を想定している。第2学習用画像imL201は、じゃがいもの芽を撮影した異常部分画像である。第2学習用画像imL202は、じゃがいもの変色した部分を撮影した異常部分画像である。第2学習用画像imL203は、じゃがいもの傷を撮影した異常部分画像である。第2学習用画像情報1222には、このように複数の異常部分画像の第2学習用画像情報1222が含まれる。
【0056】
再学習用画像情報123は、AIモデルに再学習させる再学習用画像に関する情報である。再学習用画像情報123は、第1再学習用画像情報1231と、第2再学習用画像情報1232と、を含む。
【0057】
第1再学習用画像情報1231は、第1再学習用画像imrL1に関する情報である。第1再学習用画像imrL1は、異常検出モデル124に再学習させるための再学習用画像である。第1再学習用画像imrL1は、前回の再学習処理(再学習処理がまだ1度も実行されていない場合は学習処理)の実行後に異常検出処理の対象となった対象画像imの中から選択された正常画像である。
【0058】
図10は、第1再学習用画像情報1231の一例を示す図である。図10の第1再学習用画像情報1231は、情報項目として、「第1再学習用画像ID」と、「対象画像ID」と、「撮影日時」と、「画像データ」と、を含む。
【0059】
「第1再学習用画像ID」は、第1再学習用画像imrL1の識別情報である。以下では、「第1再学習用画像ID」が「imrL1XX」である第1再学習用画像imrL1を、第1再学習用画像imrL1XXと称する。
【0060】
「対象画像ID」は、第1再学習用画像imrL1に対応する対象画像imの識別情報である。図10の例では、第1再学習用画像imrL101と対象画像im102とが対応する。これは、対象画像im102が第1再学習用画像imrL1として選択され、「第1再学習用画像ID」として「imrL101」を割り当てられたことを示している。
【0061】
「撮影日時」は、第1再学習用画像imrL1を撮影装置3が撮影した日時を示す情報である。図10の例では、第1再学習用画像imrL101の「撮影日時」は「2022/11/23 13:00:01」である。これは、第1再学習用画像imrL1が2022/11/23の13:00:01に撮影されたことを示している。第1再学習用画像imrL1の撮影日時は、対応する対象画像imの撮影日時と同じである。
【0062】
「画像データ」は、第1再学習用画像imrL1の画像データである。図10の例では、第1再学習用画像imrL101の「画像データ」は「imrL101.png」である。これは、第1再学習用画像imrL101の画像データのファイル名がimrL101.pngであることを示している。第1再学習用画像imrL1の画像自体は、対応する対象画像imと同じである。
【0063】
なお、第1再学習用画像情報1231は、図10の例に限られない。第1再学習用画像情報1231は、上記の情報項目の一部を含まなくてもよいし、上記以外の情報項目を含んでもよい。例えば、第1再学習用画像情報1231は、第1再学習用画像imrL1を撮影した撮影装置3に関する情報や、その撮影環境に関する情報を含んでもよい。
【0064】
図11は、第1再学習用画像imrL1の一例を示す図である。図11の例では、異常検出対象tは、じゃがいもであり、じゃがいもの異常として、芽、傷及び変色を想定している。第1再学習用画像imrL101~imrL103は、正常な(異常のない)じゃがいもを撮影した正常画像である。第1再学習用画像情報1231には、このように複数の正常画像の第1再学習用画像情報1231が含まれる。
【0065】
第2再学習用画像情報1232は、第2再学習用画像imrL2に関する情報である。第2再学習用画像imrL2は、異常分類モデル125に再学習させるための再学習用画像である。第2再学習用画像imrL2は、前回の学習処理又は再学習処理の実行後に異常検出処理の対象となった対象画像imの中から選択された異常画像から、異常の部分をクリッピングした異常部分画像である。
【0066】
図12は、第2再学習用画像情報1232の一例を示す図である。図12の第2再学習用画像情報1232は、情報項目として、「第2再学習用画像ID」と、「対象画像ID」と、「撮影日時」と、「画像データ」と、「異常種類」と、を含む。
【0067】
「第2再学習用画像ID」は、第2再学習用画像imrL2の識別情報である。以下では、「第2再学習用画像ID」が「imrL2XX」である第2再学習用画像imrL2を、第2再学習用画像imrL2XXと称する。
【0068】
「対象画像ID」は、第2再学習用画像imrL2に対応する対象画像imの識別情報である。図12の例では、第2再学習用画像imrL201と対象画像im101とが対応する。これは、対象画像im101が異常画像として選択され、その異常の部分をクリッピングした画像が第2再学習用画像imrL2であり、「第2再学習用画像ID」として「imrL201」を割り当てられたことを示している。
【0069】
「撮影日時」は、第2再学習用画像imrL2を撮影装置3が撮影した日時を示す情報である。図12の例では、第2再学習用画像imrL201の「撮影日時」は「2022/11/23 13:00:00」である。これは、第2再学習用画像imrL2が2022/11/23の13:00:00に撮影されたことを示している。第2再学習用画像imrL2の撮影日時は、対応する対象画像imの撮影日時と同じである。
【0070】
「画像データ」は、第2再学習用画像imrL2の画像データである。図12の例では、第2再学習用画像imrL201の「画像データ」は「imrL201.png」である。これは、第2再学習用画像imrL201の画像データのファイル名がimrL201.pngであることを示している。第2再学習用画像imrL2の画像自体は、対応する対象画像imの異常部分と同じである。
【0071】
「異常種類」は、第2再学習用画像imrL2に含まれる異常の種類を示す情報である。図12の例では、第2再学習用画像imrL201の「異常種類」は「変色」である。これは、第2再学習用画像imrL201が、じゃがいもの変色した部分を撮影した画像であることを示している。
【0072】
なお、第2再学習用画像情報1232は、図12の例に限られない。第2再学習用画像情報1232は、上記の情報項目の一部を含まなくてもよいし、上記以外の情報項目を含んでもよい。例えば、第2再学習用画像情報1232は、第2再学習用画像imrL2を撮影した撮影装置3に関する情報や、その撮影環境に関する情報を含んでもよい。
【0073】
図13は、第2再学習用画像imrL2の一例を示す図である。図13の例では、異常検出対象tは、じゃがいもであり、じゃがいもの異常として、芽、傷及び変色を想定している。第2再学習用画像imrL201は、じゃがいもの変色した部分を撮影した異常部分画像である。第2再学習用画像imrL202は、じゃがいもの芽の部分を撮影した異常部分画像である。第2再学習用画像imrL203は、じゃがいもの傷を撮影した異常部分画像である。第2再学習用画像情報1232には、このように複数の異常部分画像の第2再学習用画像情報1232が含まれる。
【0074】
異常検出モデル124は、正常画像を学習することにより、対象画像imから異常検出対象tの異常を検出するように学習されたAIモデルである。異常検出モデル124は、対象画像imを入力されると、対象画像imに含まれる異常の有無を出力する。異常検出モデル124は、例えば、パッチコア(PatchCore)であるが、これに限られない。パッチコアについて、詳しくは後述する。異常検出モデル124として、正常画像を学習することにより異常を検出可能となる任意のAIモデルを利用できる。
【0075】
異常分類モデル125は、異常部分画像を学習することにより、異常部分画像から異常の種類を分類できるように学習されたAIモデルである。異常分類モデル125は、異常部分画像を入力されると、異常部分画像に含まれる異常の種類を出力する。異常分類モデル125は、例えば、CNN(Convolutional Neural Network)であるが、これに限られない。異常分類モデル125として、異常部分画像を学習することにより異常の種類を分類可能となる任意のAIモデルを利用できる。
【0076】
検出結果情報126は、対象画像imに対する異常の検出処理及び分類処理の結果を示す情報である。
【0077】
図14は、検出結果情報126の一例を示す図である。図14の検出結果情報126は、情報項目として、「対象画像ID」と、「撮影日時」と、「画像データ」と、「異常」と、「異常種類」と、を含む。
【0078】
「対象画像ID」は、異常の検出対象となった対象画像imの識別情報である。
【0079】
「撮影日時」は、対象画像imを撮影装置3が撮影した日時を示す情報である。図14の例では、対象画像im101の「撮影日時」は「2022/11/23 13:00:00」である。これは、対象画像im101が2022/11/23の13:00:00に撮影されたことを示している。
【0080】
「画像データ」は、対象画像imの画像データである。図14の例では、対象画像im101の「画像データ」は「im101.png」である。これは、対象画像im101の画像データのファイル名がim101.pngであることを示している。
【0081】
「異常」は、対象画像imに含まれる異常の有無を示す情報である。図14の例では、対象画像im101の「異常」は「有」である。これは、対象画像im101が異常を有する異常検出対象tを撮影した画像であることを示している。
【0082】
「異常種類」は、対象画像imに含まれる異常の種類を示す情報である。図14の例では、対象画像im101の「異常種類」は「変色」である。これは、対象画像im101が、変色した部分を有する異常検出対象tを撮影した画像であることを示している。
【0083】
なお、検出結果情報126は、図14の例に限られない。検出結果情報126は、上記の情報項目の一部を含まなくてもよいし、上記以外の情報項目を含んでもよい。例えば、検出結果情報126は、対象画像imを撮影した撮影装置3に関する情報や、その撮影環境に関する情報を含んでもよい。また、図14の例では、検出結果情報126は、対象画像情報121を含むが、対象画像情報121と検出結果情報126とは別個に保存されてもよい。
【0084】
制御部13は、プロセッサ101がメモリ102からプログラムを読み出して実行し、他のハードウェア構成と協働することにより実現される。制御部13は、異常検出装置1の動作全体を制御する。制御部13は、取得部131と、学習部132と、検出部133と、分類部134と、選択部135と、再学習部136と、を備える。
【0085】
取得部131は、ユーザ端末2から対象画像imを取得し、対象画像情報121として記憶部12に保存する。
【0086】
学習部132は、学習用画像をAIモデルに学習させる。具体的には、学習部132は、第1学習用画像imL1を異常検出モデル124に学習させる。また、学習部132は、第2学習用画像imL2を異常分類モデル125に学習させる。
【0087】
検出部133は、異常検出モデル124を利用して、対象画像imに含まれる異常を検出する。具体的には、検出部133は、異常検出モデル124に対象画像imを入力し、異常検出モデル124が出力した異常の有無を、検出結果として取得し、検出結果情報126として記憶部12に保存する。
【0088】
分類部134は、検出部133により対象画像imに異常が検出された場合、異常分類モデル125を利用して、対象画像imに含まれる異常の種類を分類する。具体的には、分類部134は、異常が検出された対象画像imから異常の部分をクリッピングして異常部分画像を生成し、異常分類モデル125に異常部分画像を入力し、異常分類モデル125が出力した異常の種類を、分類結果として取得し、検出結果情報126として記憶部12に保存する。
【0089】
選択部135は、対象画像imの中から、第1学習用画像imL1と、第2学習用画像imL2と、第1再学習用画像imrL1と、第2再学習用画像imrL2と、を選択する。選択部135は、記憶部12に保存された対象画像imの中から自動的に第1学習用画像imL1を選択してもよいし、記憶部12に保存された対象画像imをユーザに提示し、ユーザにより選択された対象画像imを第1学習用画像imL1として選択してもよい。第2学習用画像imL2、第1再学習用画像imrL1及び第2再学習用画像imrL2についても同様である。
【0090】
再学習部136は、再学習用画像をAIモデルに再学習させる。具体的には、再学習部136は、第1再学習用画像imrL1を異常検出モデル124に再学習させる。また、再学習部136は、第2再学習用画像imrL2を異常分類モデル125に再学習させる。
【0091】
なお、異常検出装置1の機能構成は、上記の例に限られない。例えば、異常検出装置1は、上記の機能構成の一部を備え、残りをユーザ端末2が備えてもよい。また、異常検出装置1は、上記以外の機能構成を備えてもよい。また、異常検出装置1の各機能構成は、上記の通り、ソフトウェアにより実現されてもよいし、ICチップ、SoC(System on Chip)、LSI(Large Scale Integration)、マイクロコンピュータ等のハードウェアによって実現されてもよい。
【0092】
<異常検出システム1000が実行する学習処理>
次に、異常検出システム1000が実行する学習処理について説明する。図15は、学習処理の一例を示すフローチャートである。以下では、異常検出システム1000がベルトコンベアで搬送されるじゃがいも(異常検出対象t)の異常を検出する場合を例に説明する。じゃがいもの異常は、芽、傷及び変色の3種類であるものとするが、異常はこれに限られない。
【0093】
(ステップS101)
まず、ユーザ端末2が、撮影装置3が予め撮影した複数の対象画像imを取得する(ステップS101)。対象画像imは、ベルトコンベアで搬送されるじゃがいもを撮影装置3で撮影した画像である。ここで取得する対象画像imは、正常画像及び異常画像を含む。
【0094】
(ステップS102)
次に、ユーザ端末2は、ユーザからの操作に応じて、対象画像imを選択画面に一覧表示する(ステップS102)。この選択画面は、対象画像imの中から、第1学習用画像imL1及び第2学習用画像imL2を選択するための画面である。ユーザは、選択画面に表示された対象画像imを参照して、これらの中から第1学習用画像imL1及び第2学習用画像imL2を選択する。
【0095】
図16は、選択画面の一例を示す図である。図16の選択画面は、対象画像領域A1と、操作領域A2と、を有する。
【0096】
対象画像領域A1は、対象画像imを一覧表示する領域である。図16の例では、対象画像im001~im006が表示されている。対象画像im001,im004,im005は正常画像であり、対象画像im002,im003,im006は異常画像である。
【0097】
操作領域A2は、選択画面の操作ボタンを表示する領域である。図16の例では、正常ボタンB1と、異常ボタンB2~B4と、送信ボタンB5と、が表示されている。
【0098】
正常ボタンB1は、正常画像を選択するためのボタンである。異常ボタンB2は、芽があるじゃがいもの対象画像im(異常画像)を選択するためのボタンである。異常ボタンB3は、傷があるじゃがいもの対象画像im(異常画像)を選択するためのボタンである。異常ボタンB4は、変色があるじゃがいもの対象画像im(異常画像)を選択するためのボタンである。送信ボタンB5は、選択した対象画像imを異常検出装置1に送信するためのボタンである。
【0099】
ユーザは、これらのボタンを操作して対象画像imをアノテーションし、第1学習用画像imL1及び第2学習用画像imL2を選択し、異常検出モデル124及び異常分類モデル125にそれぞれ学習させる。
【0100】
(ステップS103)
選択画面が表示されると、ユーザは、ユーザ端末2を操作して、対象画像領域A1に表示された対象画像imの中から正常画像を第1学習用画像imL1として選択する(ステップS103)。
【0101】
図17は、選択画面の一例を示す図である。図17の例では、正常ボタンB1が選択された状態で、対象画像im001,im004,im005が選択されている。これは、ユーザが、対象画像im001,im004,im005を正常画像と判断し、第1学習用画像imL1として選択したことを示している。この状態でユーザが送信ボタンB5を選択すると、ユーザ端末2は、対象画像im001,im004,im005を第1学習用画像imL1として異常検出装置1に送信する。
【0102】
(ステップS104)
異常検出装置1の取得部131は、ユーザ端末2が送信した第1学習用画像imL1を取得すると(ステップS104)、取得した第1学習用画像imL1に撮影日時などの情報を対応づけて、学習用画像情報122として記憶部12に保存する(図6参照)。
【0103】
(ステップS105)
その後、学習部132は、記憶部12に保存された第1学習用画像imL1を異常検出モデル124に学習させる(ステップS105)。
【0104】
ここで、パッチコアについて説明する。パッチコアは、画像データセット(例えば、ImageNet)を学習済みの画像認識モデル(例えば、ResNet)に正常画像を入力し、得られた中間層の局所的な特徴量(以下「パッチ特徴量」という。)をメモリバンクに保存し、メモリバンクに保存されたパッチ特徴量と、画像認識モデルに対象画像を入力して得られたパッチ特徴量と、の距離に基づいて、対象画像の異常を検出するものである。パッチ特徴量は、画像における位置情報を保持しているため、対象画像のエリアごとに異常の検出が行われる。すなわち、パッチコアでは、対象画像のエリアごとにパッチ特徴量間の距離が算出され、距離が閾値以上であるエリアが、異常のあるエリアとして検出される。パッチ特徴量間の距離は、エリアの異常度に相当し、対象画像上に異常度のヒートマップを表示することができる。
【0105】
異常検出モデル124がパッチコアである場合、まず、学習済みの画像認識モデルを用意する。既存の学習済みの画像認識モデルを用意してもよいし、既存の画像認識モデルに画像データセットを学習させてもよい。次に、複数の第1学習用画像imL1を画像認識モデルに入力し、各第1学習用画像imL1のパッチ特徴量を取得し、メモリバンクに保存する。以上の工程がパッチコアの学習処理に相当し、画像認識モデル及びメモリバンクがパッチコアのAIモデル(異常検出モデル124)に相当する。
【0106】
学習部132は、こうして得られた学習済みの異常検出モデル124を、記憶部12に保存する。
【0107】
(ステップS106)
次に、ユーザは、ユーザ端末2を操作して、対象画像領域A1に表示された対象画像imの中から異常画像を異常種類ごとに選択する(ステップS106)。
【0108】
(ステップS107)
そして、ユーザは、選択した異常画像の中の、異常を含む少なくとも一部を、第2学習用画像imL2としてクロッピングする(ステップS107)。
【0109】
図18は、選択画面の一例を示す図である。図18の例では、異常ボタンB2が選択された状態で、対象画像im002が選択され、対象画像im002におけるじゃがいもの芽の部分がクロッピングされている。これは、ユーザが、対象画像im002をじゃがいもに芽がある異常画像と判断し、対象画像im002の芽の部分の画像を、異常種類「芽」の第2学習用画像imL2(異常部分画像)として選択したことを示している。この状態でユーザが送信ボタンB5を選択すると、ユーザ端末2は、対象画像im002のクロッピングされた芽の部分の画像を、第2学習用画像imL2として異常検出装置1に送信する。
【0110】
(ステップS108)
異常検出装置1の取得部131は、ユーザ端末2が送信した第2学習用画像imL2を取得すると(ステップS108)、取得した第2学習用画像imL2に撮影日時や異常種類などの情報を対応づけて、学習用画像情報122として記憶部12に保存する(図8参照)。
【0111】
(ステップS109)
その後、学習部132は、記憶部12に保存された第2学習用画像imL2(異常部分画像)を異常分類モデル125に学習させる(ステップS109)。具体的には、第2学習用画像imL2の第2学習用画像情報1222を利用して、第2学習用画像imL2を入力すると、その異常種類を出力するように、異常分類モデル125に教示有り学習させる。異常の種類が芽、傷及び変色の3種類である場合、異常分類モデル125は、3種類のいずれかを出力する。異常分類モデル125が分類する異常種類の数は、任意に設定可能である。
【0112】
<異常検出システム1000が実行する検出処理>
次に、異常検出システム1000が実行する検出処理について説明する。図19は、検出処理の一例を示すフローチャートである。以下では、異常検出システム1000がベルトコンベアで搬送されるじゃがいも(異常検出対象t)の異常を検出する場合を例に説明する。じゃがいもの異常は、芽、傷及び変色の3種類であるものとするが、異常はこれに限られない。また、記憶部12には、学習用画像を学習済みの異常検出モデル124及び異常分類モデル125が保存されているものとする。また、異常検出モデル124は、パッチコアであるものとする。
【0113】
(ステップS201)
まず、ユーザ端末2が、撮影装置3から対象画像imを取得し(ステップS201)、異常検出装置1に送信する。対象画像imは、ベルトコンベアで搬送されるじゃがいもを撮影装置3でリアルタイムに撮影した画像である。ここで取得する対象画像imは、正常画像及び異常画像を含む。撮影装置3が1秒ごとに対象画像imを撮影する場合、ユーザ端末2は新たに撮影された対象画像imを1秒ごとに取得し、異常検出装置1に送信する。なお、対象画像imの撮影間隔は任意に設定可能である。
【0114】
(ステップS202)
異常検出装置1の取得部131は、ユーザ端末2が送信した対象画像imを取得すると(ステップS202)、取得した対象画像imに撮影日時などの情報を対応づけて、検出結果情報126として記憶部12に保存する(図14参照)。なお、この時点では、「異常」及び「異常種類」の項目は空欄となる。
【0115】
(ステップS203)
新たな対象画像imが保存されると、検出部133は、異常検出モデル124を利用して、この対象画像imから異常を検出する(ステップS203)。具体的には、検出部133は、パッチコアの画像認識モデルに対象画像imを入力し、この対象画像imのパッチ特徴量を取得する。次に、検出部133は、対象画像imのパッチ特徴量と、メモリバンクに保存されたパッチ特徴量と、の距離を、対象画像imのエリアごとに算出する。そして、検出部133は、パッチ特徴量間の距離が予め設定された閾値以上のエリアが存在する場合、対象画像imに異常があると判定する。すなわち、対象画像imの異常が検出される。距離が閾値以上のエリアが、対象画像imにおける異常の部分に相当する。
【0116】
(ステップS204)
対象画像imに異常が検出されなかった場合(ステップS204:NO)、処理はステップS206に進む。対象画像imに異常が検出された場合(ステップS204:YES)、処理はステップS205に進む。
【0117】
(ステップS205)
分類部134は、異常分類モデル125を利用して、異常が検出された対象画像imに含まれる異常の種類を分類する(ステップS205)。まず、分類部134は、異常が検出された対象画像imの中から異常部分画像をクロッピングする。分類部134は、例えば、ステップS203で異常と判定されたエリアを覆う矩形の領域を、異常部分画像としてクロッピングすればよい。
【0118】
図20は、異常部分画像のクロッピング方法の一例を示す図である。図20の左図は異常として芽を含む対象画像im、中図はステップS203で算出された距離(異常度)をヒートマップとして可視化した図、右図は異常部分画像を示す図である。
【0119】
図20に示すように、芽を含む対象画像imに対して異常検出処理が実行されると、芽を含む部分の距離(異常度)が高くなり、対象画像imから異常が検出される。中図では、芽を含む部分の色が濃く表示されている。分類部134は、異常として検出された部分、すなわち、中図の色が濃く表示された部分を含む矩形の領域を、異常部分画像としてクロッピングする(左図)。これにより、分類部134は、異常が検出された対象画像imから自動的に異常部分画像をクロッピングすることができる。なお、中図では、芽以外の部分の色も濃くなっているが、これらの距離(異常度)は閾値以下であり、異常としては検出されていない。
【0120】
分類部134は、こうして得られた異常部分画像を異常分類モデル125に入力し、異常分類モデル125が出力した異常種類を対象画像imの異常の種類として取得する。これにより、対象画像imの異常が分類される。図20の例では、異常種類は芽に分類される。分類部134は、
【0121】
(ステップS206)
その後、検出部133及び分類部134は、異常の検出結果及び分類結果を検出結果情報126として記憶部12に保存する(ステップS206)。これにより、図14のような検出結果情報126が生成される。
【0122】
(ステップS207)
次に、再学習部136は、異常検出モデル124及び異常分類モデル125の再学習タイミングが到来したか判定する(ステップS207)。再学習タイミングは、異常検出モデル124及び異常分類モデル125の再学習処理を実行するタイミングである。ここでは、異常検出モデル124及び異常分類モデル125の再学習タイミングが同じである場合を想定しているが、異なってもよい。再学習タイミングは、例えば、所定時間(例えば1時間、1日、1週間)ごとであってもよいし、対象画像imに対する異常検出処理を所定回数実行するごとであってもよいし、ユーザにより指定されたタイミングでもよいし、異常な対象画像imの割合又は各異常種類の割合が変化したタイミングであってもよい。割合が変化したタイミングは、例えば、過去の複数の期間でそれぞれ算出された複数の割合に基づいて設定された割合の範囲(以下「標準範囲」という。)を逸脱したタイミングである。例えば、過去の異常な対象画像imの割合に基づいて、異常な対象画像imの割合の標準範囲が10%~20%に設定された場合、ある期間の異常な対象画像imの割合が10%未満又は20%を超えると、再学習タイミングとなる。なお、標準範囲の設定方法は任意である。
【0123】
再学習タイミングが到来していない場合(ステップS207:NO)、処理は終了する。再学習タイミングが到来した場合(ステップS207:YES)、処理はステップS208に進む。
【0124】
(ステップS208)
再学習タイミングが到来した場合、選択部135は、検出結果情報126を参照して、第1再学習用画像imrL1及び第2再学習用画像imrL2を選択する(ステップS208)。
【0125】
選択部135は、前回の再学習処理(再学習処理がまだ1度も実行されていない場合は学習処理)の実行後に異常検出処理の対象となった対象画像imのうち、異常が検出されなかった対象画像im(正常画像)の中から少なくとも一部を第1再学習用画像imrL1として選択する。図14の例では、対象画像im102,im105,im106の中から第1再学習用画像imrL1が選択される。選択部135は、全ての正常画像を第1再学習用画像imrL1として選択してもよいし、一部を第1再学習用画像imrL1として選択してもよい。例えば、選択部135は、その対象画像imの異常度(パッチ特徴量間の距離)の最大値が閾値以下である対象画像imを、第1再学習用画像imrL1として選択する。
【0126】
また、選択部135は、前回の再学習処理(再学習処理がまだ1度も実行されていない場合は学習処理)の実行後に異常検出処理の対象となった対象画像imのうち、異常が検出された対象画像im(異常画像)の中から少なくとも一部からクロッピングした異常部分画像を第2再学習用画像imrL2として選択する。図14の例では、対象画像im101,im103,im104からクロッピングした異常部分画像が第2再学習用画像imrL2として選択される。選択部135は、全ての異常画像からクロッピングした異常部分画像を第2再学習用画像imrL2として選択してもよいし、一部を第2再学習用画像imrL2として選択してもよい。異常部分画像をクロッピングする方法は上述の通りである(図20参照)。
【0127】
選択部135は、こうして選択した第1再学習用画像imrL1及び第2再学習用画像imrL2に撮影日時などの情報を対応づけて、再学習画像情報123として記憶部12に保存する。
【0128】
(ステップS209)
再学習部136は、第1再学習用画像imrL1を異常検出モデル124に再学習させる(ステップS209)。具体的には、再学習部136は、複数の第1再学習用画像imrL1を異常検出モデル124の画像認識モデルに入力し、各第1再学習用画像imrL1のパッチ特徴量を取得し、メモリバンクに追加する。以上の工程が異常検出モデル124の再学習に相当し、これにより、異常検出モデル124が更新される。再学習部136は、再学習された異常検出モデル124を記憶部12に保存する。
【0129】
(ステップS210)
また、再学習部136は、第2再学習用画像imrL2を異常分類モデル125に再学習させる(ステップS210)。具体的には、再学習部136は、複数の第2再学習用画像imrL2と異常種類の組みを異常分類モデル125に再学習させる。これにより、異常分類モデル125が更新される。再学習部136は、再学習された異常分類モデル125を記憶部12に保存する。
【0130】
<まとめ>
以上説明した通り、本実施形態によれば、異常検出システム1000は、正常画像(第1学習用画像imL1)を学習することにより対象画像imから異常を検出するように学習された異常検出モデル124を利用して、複数の対象画像imから異常を検出する検出処理と、検出処理により異常が検出されなかった対象画像imの中の少なくとも一部を第1再学習用画像imrL1として選択する選択処理と、第1再学習用画像imrL1を異常検出モデル124に再学習させる再学習処理と、を含む異常検出処理を実行する。これにより、異常検出モデル124が常に新しい第1再学習用画像imrL1により再学習されるため、対象画像imの撮影環境が時間に応じて変化したり、異常検出対象tが時期により外観が変化するもの(野菜など)であったりした場合であっても、異常検出モデル124による異常の検出精度の経時的な低下を抑制することができる。
【0131】
例えば、図7の第1学習用画像imL1と、図11の第1再学習用画像imrL1と、はじゃがいもの色が全体的に異なっている。じゃがいものような野菜の場合、収穫する時期により、同じ品種であってもこのような色の変化が生じる場合がある。また、季節によって撮影環境の日照が変化し、このような色の変化が生じることもある。さらに、1日の間でも、時間帯によって日照条件などが変化し、色の変化が生じることもある。このような場合、図7の第1学習用画像imL1を学習した異常検出モデル124を利用し続けると、経時的に異常の検出精度が低下するおそれがある。
【0132】
一方で、このような外観の変化は、徐々に進行することが多い。言い換えると、短時間で急激に異常の検出精度が低下する可能性は低い。このため、本実施形態のように、異常検出モデル124を、常に新しい第1再学習用画像imrL1で再学習することにより、このような外観の変化に応じた異常の検出精度の低下を抑制することができる。
【0133】
なお、本実施形態では、対象画像imから異常が検出された場合、その異常の種類を分類したが、異常の種類の分類は行わなくてもよい。
【0134】
また、本実施形態では、第1再学習用画像imrL1及び第2再学習用画像imrL2は、異常検出装置1により自動的に選択されたが、第1学習用画像imL1及び第2学習用画像imL2と同様に、ユーザにより選択されてもよい。
【0135】
例えば、ユーザ端末2は、ユーザからの操作に応じて、前回の再学習処理(再学習処理がまだ1度も実行されていない場合は学習処理)の実行後に異常検出処理の対象となった対象画像imを選択画面に一覧表示する。この選択画面は、対象画像imの中から、第1再学習用画像imrL1及び第2再学習用画像imrL2を選択するための画面である。ユーザは、選択画面に表示された対象画像imを参照して、これらの中から第1再学習用画像imrL1及び第2再学習用画像imrL2を選択すればよい(図16図18参照)。選択部135は、ユーザにより選択された第1再学習用画像imrL1及び第2再学習用画像imrL2を、第1再学習用画像imrL1及び第2再学習用画像imrL2として選択し、記憶部12に保存する。これにより、第1再学習用画像imrL1及び第2再学習用画像imrL2をユーザが選択することができる。
【0136】
<付記>
本実施形態は、以下の開示を含む。
【0137】
(付記1)
異常検出システムが実行する異常検出方法であって、
正常画像を学習することにより画像から異常を検出するように学習された異常検出モデルを利用して、複数の対象画像から異常を検出する検出処理と、
前記検出処理により異常が検出されなかった対象画像の中の少なくとも一部を第1再学習用画像として選択する選択処理と、
前記第1再学習用画像を前記異常検出モデルに再学習させる再学習処理と、
を含む異常検出方法。
【0138】
(付記2)
前記選択処理は、前回の再学習処理の実行後に検出処理の対象となった対象画像の中から前記第1再学習用画像を選択する
付記1に記載の異常検出方法。
【0139】
(付記3)
前記選択処理は、異常度が閾値以下の正常画像を前記第1再学習用画像として選択する
付記1に記載の異常検出方法。
【0140】
(付記4)
前記選択処理は、対象画像を一覧表示し、一覧表示された対象画像の中からユーザにより選択された対象画像を前記第1再学習用画像として選択する
付記1に記載の異常検出方法。
【0141】
(付記5)
前記再学習処理は、所定時間ごとに実行される
付記1に記載の異常検出方法。
【0142】
(付記6)
検出処理により対象画像から異常が検出された場合、異常部分画像を学習することにより異常画像に含まれる異常を分類するように学習された異常分類モデルを利用して、検出された異常を分類する分類処理を更に含む
付記1に記載の異常検出方法。
【0143】
(付記7)
前記選択処理は、前記検出処理により異常が検出された対象画像の中の少なくとも一部からクロッピングした異常部分画像を第2再学習用画像として選択し、
前記再学習処理は、前記第2再学習用画像を前記異常分類モデルに再学習させる
付記6に記載の異常検出方法。
【0144】
(付記8)
コンピュータに、
正常画像を学習することにより画像から異常を検出するように学習された異常検出モデルを利用して、複数の対象画像から異常を検出する検出処理と、
前記検出処理により異常が検出されなかった対象画像の中の少なくとも一部を第1再学習用画像として選択する選択処理と、
前記第1再学習用画像を前記異常検出モデルに再学習させる再学習処理と、
を含む異常検出方法を実行させるためのプログラム。
【0145】
(付記9)
正常画像を学習することにより画像から異常を検出するように学習された異常検出モデルを利用して、複数の対象画像から異常を検出する検出部と、
前記検出部により異常が検出されなかった対象画像の中の少なくとも一部を第1再学習用画像として選択する選択部と、
前記第1再学習用画像を前記異常検出モデルに再学習させる再学習部と、
を含む異常検出システム。
【0146】
今回開示された実施形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。また、本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【符号の説明】
【0147】
1:異常検出装置
2:ユーザ端末
3:撮影装置
11:通信部
12:記憶部
13:制御部
121:対象画像情報
122:学習用画像情報
123:再学習用画像情報
124:異常検出モデル
125:異常分類モデル
126:検出結果情報
131:取得部
132:学習部
133:検出部
134:分類部
135:選択部
136:再学習部
【要約】
【課題】 AIモデルによる異常の検出精度の低下を抑制する。
【解決手段】
一実施形態に係る異常検出方法は、異常検出システムが実行する異常検出方法であって、正常画像を学習することにより画像から異常を検出するように学習された異常検出モデルを利用して、複数の対象画像から異常を検出する検出処理と、前記検出処理により異常が検出されなかった対象画像の中の少なくとも一部を第1再学習用画像として選択する選択処理と、前記第1再学習用画像を前記異常検出モデルに再学習させる再学習処理と、を含む。
【選択図】図19
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20