(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-10
(45)【発行日】2024-07-19
(54)【発明の名称】異常検知方法、異常検知装置および異常検知プログラム
(51)【国際特許分類】
G06T 7/00 20170101AFI20240711BHJP
【FI】
G06T7/00 350C
G06T7/00 610A
(21)【出願番号】P 2020141853
(22)【出願日】2020-08-25
【審査請求日】2023-06-05
(73)【特許権者】
【識別番号】399076312
【氏名又は名称】株式会社YE DIGITAL
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】千田 修司
(72)【発明者】
【氏名】馬場 大輔
(72)【発明者】
【氏名】有吉 浩平
(72)【発明者】
【氏名】斉藤 健太郎
【審査官】淀川 滉也
(56)【参考文献】
【文献】米国特許出願公開第2019/0333198(US,A1)
【文献】国際公開第2019/161342(WO,A1)
【文献】特開2020-03056(JP,A)
【文献】Samet AKCAY, et.al.,“Skip-GANomaly: Skip Connected and Adversarially Trained Encoder-Decoder Anomaly Detection”,arXiv,2019年,https://arxiv.org/abs/1901.08954
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
互いに競合する生成ネットワークと識別ネットワークとからなり、前記生成ネットワークにスキップ接続モデルを配置した敵対的生成ネットワークにより、正例となる学習用画像を用いた機械学習である正常学習を実行することによって、前記正例となる学習用画像である正常画像をモデル化した正常モデルを生成する正常学習工程と、
判定対象画像を前記正常モデルへ入力することによって取得される前記正常モデルの出力値に基づいて前記判定対象画像の異常度を算出する評価工程と、
前記異常度に基づいて前記判定対象画像が異常であるか否かを判定する判定工程と
、
負例となる学習用画像を用いた機械学習である異常学習を実行することによって、前記負例となる学習用画像である異常画像のパターンをモデル化した異常分類モデルを生成する異常学習工程と
を含
み、
前記判定工程は、
前記正常モデルの出力値に基づいて前記判定対象画像が異常である場合の確度が所定の第1閾値よりも小である場合に、前記判定対象画像を前記異常分類モデルへ入力することによって取得される前記異常分類モデルの出力値に基づいて前記パターンを判定する
ことを特徴とする異常検知方法。
【請求項2】
互いに競合する生成ネットワークと識別ネットワークとからなり、前記生成ネットワークにスキップ接続モデルを配置した敵対的生成ネットワークにより、正例となる学習用画像を用いた機械学習である正常学習を実行することによって、前記正例となる学習用画像である正常画像をモデル化した正常モデルを生成する正常学習工程と、
判定対象画像を前記正常モデルへ入力することによって取得される前記正常モデルの出力値に基づいて前記判定対象画像の異常度を算出する評価工程と、
前記異常度に基づいて前記判定対象画像が異常であるか否かを判定する判定工程と、
負例および過検知例となる学習用画像を用いた機械学習である過検知学習を実行することによって、異常であるか過検知であるかを識別する過検知モデルを生成する過検知学習工程と
を含み、
前記判定工程は、
前記正常モデルの出力値に基づいて前記判定対象画像が異常である場合の確度が所定の第2閾値よりも小である場合に、前記判定対象画像を前記過検知モデルへ入力することによって取得される前記過検知モデルの出力値に基づいて前記異常であるか過検知であるかを判定する
ことを特徴とする異常検知方法。
【請求項3】
前記生成ネットワークは、Attention機構を含み、
前記正常学習工程は、
前記スキップ接続モデルにおいて前記正常画像の少なくとも大域的特徴が結合されるように前記Attention機構を用いて前記正常画像の注視領域を重み付けさせる
ことを特徴とする請求項1
または2に記載の異常検知方法。
【請求項4】
前記生成ネットワークは、ノイズ付加部を含み、
前記正常学習工程は、
自己教師あり学習として前記ノイズ付加部を用いて前記正常画像にノイズを付加させ、前記スキップ接続モデルにおいて前記ノイズが復元されるように正常学習を実行する
ことを特徴とする請求項1
、2または
3に記載の異常検知方法。
【請求項5】
互いに競合する生成ネットワークと識別ネットワークとからなり、前記生成ネットワークにスキップ接続モデルを配置した敵対的生成ネットワークにより、正例となる学習用画像を用いた機械学習である正常学習を実行することによって、前記正例となる学習用画像である正常画像をモデル化した正常モデルを生成する正常学習部と、
判定対象画像を前記正常モデルへ入力することによって取得される前記正常モデルの出力値に基づいて前記判定対象画像の異常度を算出する評価部と、
前記異常度に基づいて前記判定対象画像が異常であるか否かを判定する判定部と
、
負例となる学習用画像を用いた機械学習である異常学習を実行することによって、前記負例となる学習用画像である異常画像のパターンをモデル化した異常分類モデルを生成する異常学習部と
を備え
、
前記判定部は、
前記正常モデルの出力値に基づいて前記判定対象画像が異常である場合の確度が所定の第1閾値よりも小である場合に、前記判定対象画像を前記異常分類モデルへ入力することによって取得される前記異常分類モデルの出力値に基づいて前記パターンを判定する
ことを特徴とする異常検知装置。
【請求項6】
互いに競合する生成ネットワークと識別ネットワークとからなり、前記生成ネットワークにスキップ接続モデルを配置した敵対的生成ネットワークにより、正例となる学習用画像を用いた機械学習である正常学習を実行することによって、前記正例となる学習用画像である正常画像をモデル化した正常モデルを生成する正常学習部と、
判定対象画像を前記正常モデルへ入力することによって取得される前記正常モデルの出力値に基づいて前記判定対象画像の異常度を算出する評価部と、
前記異常度に基づいて前記判定対象画像が異常であるか否かを判定する判定部と、
負例および過検知例となる学習用画像を用いた機械学習である過検知学習を実行することによって、異常であるか過検知であるかを識別する過検知モデルを生成する過検知学習部と
を備え、
前記判定部は、
前記正常モデルの出力値に基づいて前記判定対象画像が異常である場合の確度が所定の第2閾値よりも小である場合に、前記判定対象画像を前記過検知モデルへ入力することによって取得される前記過検知モデルの出力値に基づいて前記異常であるか過検知であるかを判定する
ことを特徴とする異常検知装置。
【請求項7】
互いに競合する生成ネットワークと識別ネットワークとからなり、前記生成ネットワークにスキップ接続モデルを配置した敵対的生成ネットワークにより、正例となる学習用画像を用いた機械学習である正常学習を実行することによって、前記正例となる学習用画像である正常画像をモデル化した正常モデルを生成する正常学習手順と、
判定対象画像を前記正常モデルへ入力することによって取得される前記正常モデルの出力値に基づいて前記判定対象画像の異常度を算出する評価手順と、
前記異常度に基づいて前記判定対象画像が異常であるか否かを判定する判定手順と
、
負例となる学習用画像を用いた機械学習である異常学習を実行することによって、前記負例となる学習用画像である異常画像のパターンをモデル化した異常分類モデルを生成する異常学習手順と
をコンピュータに実行させ
、
前記判定手順は、
前記正常モデルの出力値に基づいて前記判定対象画像が異常である場合の確度が所定の第1閾値よりも小である場合に、前記判定対象画像を前記異常分類モデルへ入力することによって取得される前記異常分類モデルの出力値に基づいて前記パターンを判定する
ことを特徴とする異常検知プログラム。
【請求項8】
互いに競合する生成ネットワークと識別ネットワークとからなり、前記生成ネットワークにスキップ接続モデルを配置した敵対的生成ネットワークにより、正例となる学習用画像を用いた機械学習である正常学習を実行することによって、前記正例となる学習用画像である正常画像をモデル化した正常モデルを生成する正常学習手順と、
判定対象画像を前記正常モデルへ入力することによって取得される前記正常モデルの出力値に基づいて前記判定対象画像の異常度を算出する評価手順と、
前記異常度に基づいて前記判定対象画像が異常であるか否かを判定する判定手順と、
負例および過検知例となる学習用画像を用いた機械学習である過検知学習を実行することによって、異常であるか過検知であるかを識別する過検知モデルを生成する過検知学習手順と
をコンピュータに実行させ、
前記判定手順は、
前記正常モデルの出力値に基づいて前記判定対象画像が異常である場合の確度が所定の第2閾値よりも小である場合に、前記判定対象画像を前記過検知モデルへ入力することによって取得される前記過検知モデルの出力値に基づいて前記異常であるか過検知であるかを判定する
ことを特徴とする異常検知プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
開示の実施形態は、異常検知方法、異常検知装置および異常検知プログラムに関する。
【背景技術】
【0002】
従来、機械学習を利用して、画像解析を行う技術が知られている。たとえば、特許文献1に開示の技術は、分類結果が既知である複数の画像について算出した特徴ベクトルを用いて機械学習を実行し、機械学習で得られた結果に基づいて、分類結果が未知である画像の分類を行うものである。
【0003】
こうした技術を利用することにより、たとえば製造された製品の画像から、かかる製品が正常品であるか否か、また、正常品でなければ何が異常か、を分類することができる。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上述した従来技術には、機械学習を利用した異常検知を簡便に且つ精度よく行ううえで、さらなる改善の余地がある。
【0006】
具体的には、たとえば上述した製品の異常に傷や色ムラといった無数のパターンが存在する場合、それらのパターンをすべて分類可能な分類モデルを生成するためには、大量の学習用データの収集と長時間の学習が必要であり、煩雑である。
【0007】
また、通常の運用において、取得が容易なのは正常時の正常画像であり、異常発生時の異常画像は入手が困難である。したがって、運用の初期段階等においては、十分に分類パターンを学習することが難しく、分類モデルの精度を担保できなかった。
【0008】
実施形態の一態様は、上記に鑑みてなされたものであって、機械学習を利用した異常検知を簡便に且つ精度よく行うことができる異常検知方法、異常検知装置および異常検知プログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
実施形態の一態様に係る異常検知方法は、正常学習工程と、評価工程と、判定工程と、異常学習工程とを含む。前記正常学習工程は、互いに競合する生成ネットワークと識別ネットワークとからなり、前記生成ネットワークにスキップ接続モデルを配置した敵対的生成ネットワークにより、正例となる学習用画像を用いた機械学習である正常学習を実行することによって、前記正例となる学習用画像である正常画像をモデル化した正常モデルを生成する。前記評価工程は、判定対象画像を前記正常モデルへ入力することによって取得される前記正常モデルの出力値に基づいて前記判定対象画像の異常度を算出する。前記判定工程は、前記異常度に基づいて前記判定対象画像が異常であるか否かを判定する。前記異常学習工程は、負例となる学習用画像を用いた機械学習である異常学習を実行することによって、前記負例となる学習用画像である異常画像のパターンをモデル化した異常分類モデルを生成する。また、前記判定工程は、前記正常モデルの出力値に基づいて前記判定対象画像が異常である場合の確度が所定の第1閾値よりも小である場合に、前記判定対象画像を前記異常分類モデルへ入力することによって取得される前記異常分類モデルの出力値に基づいて前記パターンを判定する。
【発明の効果】
【0010】
実施形態の一態様によれば、機械学習を利用した異常検知を簡便に且つ精度よく行うことができる。
【図面の簡単な説明】
【0011】
【
図1】
図1は、実施形態に係る異常検知方法の概要説明図(その1)である。
【
図2】
図2は、正常モデルがオートエンコーダである場合の説明図(その1)である。
【
図3】
図3は、正常モデルがオートエンコーダである場合の説明図(その2)である。
【
図4】
図4は、正常モデルがスキップ接続モデルである場合の説明図(その1)である。
【
図5】
図5は、正常モデルがスキップ接続モデルである場合の説明図(その2)である。
【
図6】
図6は、実施形態に係る異常検知方法の概要説明図(その2)である。
【
図7】
図7は、実施形態に係る異常検知方法の概要説明図(その3)である。
【
図8】
図8は、実施形態に係る異常検知方法の概要説明図(その4)である。
【
図9】
図9は、実施形態に係る異常検知方法の概要説明図(その5)である。
【
図10】
図10は、実施形態に係る異常検知装置の構成例を示すブロック図である。
【
図11】
図11は、検知結果の具体例を示す図(その1)である。
【
図12】
図12は、検知結果の具体例を示す図(その2)である。
【
図13】
図13は、検知結果の具体例を示す図(その3)である。
【
図14】
図14は、検知結果の具体例を示す図(その4)である。
【
図15】
図15は、検知結果の具体例を示す図(その5)である。
【
図16】
図16は、検知結果の具体例を示す図(その6)である。
【
図17】
図17は、実施形態に係る異常検知装置が実行する処理手順を示すフローチャート(その1)である。
【
図18】
図18は、実施形態に係る異常検知装置が実行する処理手順を示すフローチャート(その2)である。
【
図19】
図19は、異常検知装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。
【発明を実施するための形態】
【0012】
以下、添付図面を参照して、本願の開示する異常検知方法、異常検知装置および異常検知プログラムの実施形態を詳細に説明する。なお、以下に示す実施形態によりこの発明が限定されるものではない。
【0013】
まず、実施形態に係る異常検知方法の概要について、
図1~
図9を参照して説明する。
図1は、実施形態に係る異常検知方法の概要説明図(その1)である。また、
図2および
図3は、正常モデルがオートエンコーダである場合の説明図(その1)および(その2)である。また、
図4および
図5は、正常モデルがスキップ接続モデルである場合の説明図(その1)および(その2)である。また、
図6~
図9は、実施形態に係る異常検知方法の概要説明図(その2)~(その5)である。
【0014】
実施形態に係る異常検知方法では、基本的に、正常データのみを学習し、学習の結果生成される正常モデルを用いて異常検知を行う。正常データのみを学習するため、異常データの収集や、異常の種類や位置を教示するいわゆるアノテーション作業の必要がない。さらに、異常データを学習する方法に比べて、想定外の未知の異常を検知できる可能性が高い。
【0015】
具体的に、
図1に示すように、実施形態に係る異常検知方法では、まず正常な製品の画像である「正常画像」のみを学習用データセットとした機械学習を実行し(ステップS1)、正常モデル124を生成する。
【0016】
なお、「正常画像」であっても、照度等にばらつきがある場合があるので、
図1に示すように、「正常画像」にも複数の正常パターンを準備することが好ましい。これにより、照度等のばらつきに頑健な正常モデル124を生成することが可能となる。
【0017】
そして、実施形態に係る異常検知方法では、生成した正常モデル124へ判定対象となる「判定対象画像」を入力し、これにより正常モデル124が出力する出力値に基づいて正常との誤差(以下、「異常度」という)とかかる異常度の確度を算出する(ステップS2)。そして、異常度が大きければ、異常と判定する(ステップS3)。
【0018】
すなわち、実施形態に係る異常検知方法では、「正常画像」のみに基づく正常モデル124により、正常か異常かを判定することとした。つまり、実施形態に係る異常検知方法では、正常との誤差である異常度に基づき異常を検知するため、多種多様の異常パターンを学習していなくとも、未知の異常を異常として検知することが可能である。これにより、運用初期で学習用データが少ない段階でも、正常モデル124を用いた異常判定が可能となる。
【0019】
なお、
図8等を用いた説明で後述するが、実施形態に係る異常検知方法では、正常モデル124では判定困難な場合、たとえば前述の確度が低いような場合、判定対象画像中の正常画像との差分部分である異常対象領域を抽出する。かかる異常対象領域に基づいては、後述する異常分類モデル125を用いた異常分類処理を行うことができる。かかる点については、
図8に示す異常分類処理の説明で述べる。
【0020】
また、抽出された異常判定領域や、異常分類処理の結果、ならびに、これを視認する人の知見等により、過検知の可能性があると判定できる場合がある。かかる場合、実施形態に係る異常検知方法では、異常か過検知かを識別する過検知モデル126を用いた再判定処理を行うことができる。かかる点については、
図8および
図9を用いた説明で後述する。
【0021】
ところで、正常モデル124としてオートエンコーダを用いることが広く知られている。正常画像を学習したオートエンコーダにより、入力される判定対象画像を再構築し、判定対象画像と再構築データの差分(前述の異常度に相当)をとることで異常を検知することができる。
【0022】
図2に示すように、オートエンコーダは、ディープラーニングにおけるニューラルネットワークの仕組みの一つであり、エンコーダとデコーダからなるニューラルネットワークである。
【0023】
エンコーダは、入力データに対し、畳み込みを行う1以上の中間層を介した次元圧縮(ダウンサンプリング)を行って特徴マップ(圧縮された特徴表現であり、潜在変数とも言う)を抽出する。デコーダは、かかる特徴マップから1以上の中間層を介した入力データの再構築(アップサンプリング)を行い、出力データとして出力する。
【0024】
なお、
図2に示すように、エンコーダにおいては、入力に近い中間層ほど局所的特徴が抽出され、入力から遠い中間層ほど大域的特徴が抽出される。局所的特徴は、色やエッジ等に関係する。一方、大域的特徴は、形状等に関係する。
【0025】
しかしながら、オートエンコーダでは、次元圧縮を経て再構築されたデータは平均的となり、画像の場合、
図3に示すようにぼやける欠点がある。このため、
図3に示すように、判定対象画像として正常画像が入力された場合でも、ある程度の異常度が生じてしまう。このため、検知精度の面で難がある。
【0026】
このようなオートエンコーダ以外では、スキップ接続モデル(以下、「U-Net」と称する場合がある)が知られている。
図4に示すように、スキップ接続モデルは、エンコーダの各中間層で出力される特徴マップを、デコーダにおいて対応する各中間層の特徴マップに連結するスキップ接続を導入したモデルである。かかるスキップ接続により、ぼやけのない鮮明なデータの再構築が可能となる。
【0027】
ただし、
図5に示すように、スキップ接続モデルでは、入力されたデータを恒等写像として再構築しやすい。したがって、異常画像も恒等写像化して再構築された場合、異常度はほぼ0となる。このため、異常検知は困難となる。
【0028】
そこで、実施形態に係る異常検知方法では、互いに競合する生成ネットワークと識別ネットワークとからなり、生成ネットワークにスキップ接続モデルを配置した敵対的生成ネットワーク(GAN:Generative Adversarial Networks)により、正常モデル124を生成することとした。
【0029】
具体的には、
図6に示すように、実施形態に係る異常検知方法では、異常検知装置10(
図10参照)の正常学習部112が、生成ネットワーク112aと識別ネットワーク112bとからなり、生成ネットワーク112aにスキップ接続モデル112aaを配置したGANにより、正常モデル124を生成する
【0030】
基本的なGANは、エンコーダがなく、またスキップ接続の概念もない。なお、異常検知にGANを適用した例もあるが(AnoGAN、Efficient GAN等)、スキップ接続モデルではなく、局所的特徴に対する再構築誤差は大きくなると考えられる。
【0031】
これに対し、実施形態に係る異常検知方法では、エンコーダを有するスキップ接続モデル112aaにGANの学習アルゴリズムを組み込むことによって、再構築に際しての恒等写像を抑制する。具体的には、生成ネットワーク112aは、正常画像に基づいて偽画像を生成する。
【0032】
また、識別ネットワーク112bは、正常画像および偽画像をたとえば交互に入力し、入力される画像の真偽を識別する。識別結果は、生成ネットワーク112aおよび識別ネットワーク112bへフィードバックされ、生成ネットワーク112aは識別ネットワーク112bを欺こうと学習し、識別ネットワーク112bはより正確に識別しようと学習する。
【0033】
そして、生成ネットワーク112aが生成する偽画像に対し、識別ネットワーク112bの判定確率が半々となるまで学習が繰り返される。そして、学習が完了した段階の識別ネットワーク112bが正常モデル124となる。
【0034】
また、
図6に示すように、正常学習部112は、Attention機構112abをさらに含む。Attention機構112abは、画像の注視領域を重み付けする機構である。Attention機構112abは、たとえば特徴マップに対し、Attentionマップを乗じることによって注視領域を重み付けする。
【0035】
Attention機構112abは、再構築に際して特に大域的特徴を結合する効果を高めるように注視領域を重み付けする。なお、Attention機構112abは、ユーザの操作により動作してもよいし、自動的に動作するようにしてもよい。自動的に動作させる場合、公知のSelf-Attention GAN等のアルゴリズムを用いることができる。
【0036】
また、
図6に示すように、正常学習部112は、ノイズ付加部112acをさらに含む。ノイズ付加部112acは、自己教師あり学習として、正常画像にノイズを付加し、ノイズを復元するように学習させる。たとえば、正常学習部112は、ノイズ付加部112acに正常画像の一部を隠すようにノイズを付加させ、隠された一部が再現されるように学習させる。これにより、恒等写像を抑制するとともに、データ拡張の効果によりモデルの汎化性を向上させる。
【0037】
正常学習部112が実行するこのような正常学習処理により生成される正常モデル124を用いることにより、
図7に示すように、正常画像が入力された場合には正常画像が鮮明に再構築され、異常度はほぼ0となる。一方で、異常画像が入力された場合には恒等写像が抑制されて正常画像が鮮明に再構築され、異常度も明確に導出されることとなる。これにより、精度よく異常検知を行うことが可能となる。
【0038】
なお、既に述べたが、実施形態に係る異常検知方法では、正常モデル124では判定困難な場合、たとえば前述の確度が低いような場合、判定対象画像中の正常画像との差分部分である異常対象領域を抽出する。かかる異常対象領域に基づいては、異常分類モデル125を用いた異常分類処理を行うことができる。
【0039】
具体的には、
図8に示すように、実施形態に係る異常検知方法では、過去に検知した不良品の画像(すなわち「異常画像」)の異常対象領域R1,R2,R3…を学習用データセットとした機械学習を実行し(ステップS11)、異常分類モデル125を生成する。
【0040】
すなわち、実施形態に係る異常検知方法では、正常画像をモデル化した正常モデル124だけでなく、過去の異常検知時の異常画像に基づいて異常パターンをモデル化した異常分類モデル125をあわせて用いることによって、検知精度を向上させることとした。
【0041】
ここで、「異常画像」は、図中に示すように、たとえば「文字違い」や「欠けあり」、「突起あり」といった異常パターンごとでクラスタリングされている。かかる異常画像に基づいて生成される異常分類モデル125により、言わば不良品の異常パターンをモデル化することができる。
【0042】
そして、実施形態に係る異常検知方法では、かかる異常分類モデル125に対し、たとえば正常モデル124に基づいて異常と判定された「判定対象画像」の異常対象領域RXを入力する。その結果として、異常分類モデル125は、分類結果(たとえば図中の「クラスID」)とかかる分類結果に対する確度を算出する(ステップS12)。
【0043】
ここで、分類結果に対する確度が大きい場合は、既知の異常パターンである可能性が高いので、実施形態に係る異常検知方法では、異常分類モデル125から得た分類結果を通知する(ステップS13)。
【0044】
一方で、分類結果に対する確度が小さい場合、未知の異常パターンである可能性がある。そこで、かかる場合は、実施形態に係る異常検知方法では、人の知見等に基づき、新しい異常パターンの分類クラスを追加設定し、該当の異常対象領域を用いた追加学習を行い、異常分類モデル125を更新することができる。これにより、運用中においても適宜、異常分類モデル125の精度を向上させることができる。
【0045】
さらに、たとえば分類結果に対する確度が小さ過ぎる場合、正常を異常と検知した過検知である可能性がある。そこで、かかる場合は、実施形態に係る異常検知方法では、過検知モデル126で再判定を行うことができる(ステップS14)。
【0046】
図9に示すように、実施形態に係る異常検知方法では、たとえば過去に検知した異常画像および過検知画像を学習用データセットとした機械学習を実行し(ステップS21)、過検知モデル126を生成する。既に述べたように、過検知モデル126は、異常か過検知かを識別する識別モデルである。
【0047】
そして、かかる過検知モデル126に対し、たとえば異常分類モデル125に基づいて異常と判定されたが確度が小さ過ぎる判定対象画像を入力する。その結果として、過検知モデル126は、異常か過検知かを出力する(ステップS22)。
【0048】
このように、実施形態に係る異常検知方法では、正常学習部112が、生成ネットワーク112aと識別ネットワーク112bとからなり、生成ネットワーク112aにスキップ接続モデル112aaを配置したGANにより、正常モデル124を生成することとした。
【0049】
したがって、実施形態に係る異常検知方法によれば、機械学習を利用した異常検知を簡便に且つ精度よく行うことができる。
【0050】
以下、上述した異常検知方法を適用した実施形態に係る異常検知装置10の構成について、さらに具体的に説明する。
【0051】
図10は、実施形態に係る異常検知装置10の構成例を示すブロック図である。なお、
図10では、本実施形態の特徴を説明するために必要な構成要素を機能ブロックで表しており、一般的な構成要素についての記載を省略している。
【0052】
換言すれば、
図10に図示される各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。たとえば、各機能ブロックの分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することが可能である。
【0053】
なお、
図10を用いた説明では、これまでに既に述べた構成要素については、説明を簡略するか、省略する場合がある。
【0054】
図10に示すように、異常検知装置10は、制御部11と、記憶部12とを備える。制御部11は、取得部111と、正常学習部112と、異常学習部113と、過検知学習部114と、評価部115と、判定部116とを備える。
【0055】
記憶部12は、ハードディスクドライブや不揮発性メモリ、レジスタといった記憶デバイスであって、正常学習用データセット121と、異常学習用データセット122と、過検知学習用データセット123と、正常モデル124と、異常分類モデル125と、過検知モデル126と、評価情報127とを記憶する。評価情報127は、異常度情報127aと、分類結果127bと、確度情報127cとを含む。
【0056】
制御部11は、異常検知装置10の全体制御を行う。取得部111は、クラスタリングされた学習用画像を取得する。学習用画像は、正常モデル124を生成するための正常学習用の正常画像と、異常分類モデル125を生成するための異常学習用の異常画像と、過検知モデル126を生成するための過検知学習用の異常画像および過検知画像とを含む。
【0057】
また、取得部111は、異常学習における異常対象領域を取得する。かかる領域はたとえば、異常検知装置10に接続されたキーボードやマウス、タッチパネルといった操作部20から指定することができる。なお、予め異常対象領域の識別に関する情報を記憶部12などに保持しておき、取得部111は、かかる情報から異常対象領域を抽出することとしてもよい。異常対象領域のそれぞれには分類クラスが紐付けられている。
【0058】
また、取得部111は、取得した学習用画像のうちの正常画像を正常学習用データセット121へ格納する。また、取得部111は、異常画像のうちの異常対象領域を異常学習用データセット122へ格納する。また、取得部111は、取得した学習用画像のうちの異常画像および過検知画像を過検知学習用データセット123へ格納する。
【0059】
また、取得部111は、後述する判定部116から追加学習要との判定結果を受け付けた場合に、該当の異常画像の異常対象領域RXを追加学習用として取得して、異常学習用データセット122へ格納する。
【0060】
正常学習部112は、正常学習用データセット121を取得し、これを用いた機械学習により正常モデル124を生成する正常学習処理を実行する。本実施形態に係る正常学習処理については
図6を用いて説明済みのため、ここでの説明は省略する。
【0061】
異常学習部113は、異常学習用データセット122を取得し、これを用いた機械学習により異常分類モデル125を生成する異常学習処理を実行する。本実施形態に係る異常学習処理については
図8を用いて説明済みのため、ここでの説明は省略する。
【0062】
過検知学習部114は、過検知学習用データセット123を取得し、これを用いた機械学習により過検知モデル126を生成する過検知学習処理を実行する。本実施形態に係る過検知学習処理については
図9を用いて説明済みのため、ここでの説明は省略する。
【0063】
なお、異常学習処理および過検知学習処理のアルゴリズムには、ディープラーニング以外のアルゴリズムを用いてもよい。たとえば、SVM(Support Vector Machine)のようなパターン識別器を用いたサポートベクタ回帰等の回帰分析手法により機械学習を実行し、異常分類モデル125および過検知モデル126を生成してもよい。また、ここで、パターン識別器はSVMに限らず、たとえばアダブースト(AdaBoost)などであってもよい。また、ランダムフォレストなどを用いてもよい。
【0064】
また、正常学習部112、異常学習部113および過検知学習部114はそれぞれ、各学習処理の実行前や実行時に、操作部20から各種パラメータの入力を受け付け、これを反映した各学習処理を実行することが可能である。
【0065】
評価部115は、判定対象画像を取得し、これを正常モデル124へ入力して、正常モデル124からの出力結果を受け取る。そして、評価部115は、受け取った出力結果に基づいて判定対象画像の異常度および確度を算出し、異常度情報127aおよび確度情報127cへ格納する。異常度は、たとえば判定対象画像の画素ごとの正常状態からの乖離度の総和である。
【0066】
また、評価部115は、後述する判定部116から、正常モデル124によれば異常だが所定の第1閾値よりも確度が小さいとの判定結果を受け付けた場合に、かかる判定結果に含まれる異常対象領域RXを異常分類モデル125へ入力して、異常分類モデル125からの出力結果を受け取る。そして、評価部115は、受け取った出力結果を分類結果127bおよび確度情報127cへ格納する。
【0067】
また、評価部115は、判定部116から、正常モデル124または異常分類モデル125によれば異常だが第1閾値よりもさらに小さい所定の第2閾値よりも確度が小さいとの判定結果を受け付けた場合に、判定対象画像を過検知モデル126へ入力して、過検知モデル126からの出力結果を受け取る。そして、評価部115は、受け取った出力結果を判定部116へ通知する。
【0068】
判定部116は、異常度情報127aおよび確度情報127cを参照して、正常モデル124による異常度が所定の判定閾値より大であり、確度が所定の第1閾値より大である場合に、異常検知装置10に接続された表示部30等を介して正常モデル124による異常を通知する。
【0069】
また、判定部116は、正常モデル124による異常度が所定の判定閾値より大であるが、確度が所定の第1閾値より小である場合に、すなわち正常モデル124では判定が難しい場合に、判定対象画像から異常対象領域RXを抽出し、かかる異常対象領域RXを含む、正常モデル124によれば異常だが確度が小さいとの判定結果を取得部111へ通知する。
【0070】
また、判定部116は、分類結果127bおよび確度情報127cを参照して、異常分類モデル125による確度が所定の第1閾値より大である場合に、表示部30等を介して異常分類モデル125による異常と分類結果127bを通知する。
【0071】
また、判定部116は、異常分類モデル125による確度が所定の第1閾値より小であり、さらに第1閾値よりも小さい所定の第2閾値よりも確度が小である場合に、正常モデル124または異常分類モデル125によれば異常だが第2閾値よりも確度が小さいとの判定結果を取得部111へ通知する。
【0072】
また、判定部116は、評価部115から過検知モデル126の出力結果を受け付けた場合に、表示部30等を介して、かかる出力結果である異常か過検知かを通知する。
【0073】
また、判定部116は、異常分類モデル125による確度が所定の第1閾値より小であるが、第1閾値よりも小さい所定の第2閾値よりは確度が大である場合に、追加学習要との判定結果を取得部111へ通知するとともに、該当の異常画像の異常対象領域RXを異常分類モデル125の追加学習用として取得部111に取得させる。
【0074】
取得部111は、かかる通知に基づいて、操作部20等を介して新しい異常パターンの分類クラスの追加設定を受け付ける。異常学習部113は、かかる追加学習用の異常対象領域RXおよび追加設定の内容に基づいて異常学習を実行し、異常分類モデル125を更新する。
【0075】
次に、これまでの説明を分かりやすくするために、実施形態に係る異常検知方法による検知結果の具体例を
図11~
図16に示す。
図11~
図16は、検知結果の具体例を示す図(その1)~(その6)である。
【0076】
上記したように、正常モデル124の生成には、
図11に示すように、「正常品」の正常画像が用いられる。すなわち、正常学習用データセット121には、
図11に示すような正常画像が格納され、正常学習部112がこれを用いて正常モデル124を生成する。
【0077】
なお、既に述べたように、正常画像にも照度が異なる等、複数の正常パターンを準備することが好ましい。これにより、照度のばらつきに頑健な正常モデル124を生成することが可能となる。
【0078】
また、異なるのは照度に限らず、たとえば輝度や彩度、位置、角度等であってもよい。また、
図11には、歯車を一例として挙げているが、異常の検知対象を問うものではなく、菓子等であってもよいし、後に示すように弁当の盛り付け、各種の材料、印字の内容等であってもよい。
【0079】
ここで、
図12にM1部として示すように、「欠け」のある不良品があったものとする。かかる不良品の画像が判定対象画像として入力された場合、評価部115はかかる画像を正常モデル124へ入力し、その出力値に基づいて同図の「検知結果」に示すように、欠けの位置に相当する領域を異常対象領域RXとして抽出することができる。
【0080】
また、
図13に示すのは、「傷」(図中のM2部参照)のある不良品である。かかる不良品の画像が判定対象画像として入力された場合は、同図の「検知結果」に示すように、傷の位置に相当する領域を異常対象領域RXとして抽出することができる。
【0081】
また、
図14に示すのは、弁当の盛り付けの異常を検知対象とする場合である。かかる場合、正常品に対し、たとえば梅干しの「抜け」(すなわち、置き忘れ)がある不良品の画像が判定対象画像として入力された場合は、同図に示すように、梅干しが置かれるべき位置に相当する領域を異常対象領域RXとして抽出することができる。
【0082】
また、
図15に示すのは、各種の材料の異常、ここでは箱に複数入れられた同じ材料の異常を検知対象とする場合である。かかる場合、たとえば「変色」した材料が含まれる画像が判定対象画像として入力された場合は、同図に示すように、変色した材料の位置に相当する領域を異常対象領域RXとして抽出することができる。
【0083】
また、
図16に示すのは、印字の内容の異常を検知対象とする場合である。かかる場合、正常品に対し、たとえば印字の「擦れ」がある不良品の画像が判定対象画像として入力された場合は、同図に示すように、印字の擦れがある位置に相当する領域を異常対象領域RXとして抽出することができる。
【0084】
次に、実施形態に係る異常検知装置10が実行する処理手順について、
図17および
図18を用いて説明する。
図17および
図18は、実施形態に係る異常検知装置10が実行する処理手順を示すフローチャート(その1)および(その2)である。
【0085】
図17に示すように、まず学習対象期間であるか否かが判定される(ステップS101)。学習対象期間は、たとえば異常検知装置10の運用初回や、運用前に予め正常モデル124、異常分類モデル125および過検知モデル126を作成しておく場合の所定期間に相当する。
【0086】
ここで、学習対象期間である場合(ステップS101,Yes)、正常学習部112が正常画像の学習用データセット(すなわち、正常学習用データセット121)から、生成ネットワーク112aにスキップ接続モデル112aaを配置したGANにより正常モデル124を生成する(ステップS102)。
【0087】
また、異常学習部113が、異常対象領域の学習用データセット(すなわち、異常学習用データセット122)から機械学習により異常分類モデル125を生成する(ステップS103)。
【0088】
また、過検知学習部114が、異常画像および過検知画像の学習用データセット(すなわち、過検知学習用データセット123)から機械学習により過検知モデル126を生成する(ステップS104)。
【0089】
つづいて、または、ステップS101で学習対象期間でない場合(ステップS101,No)、ステップS105(
図18参照)へ移行する。
【0090】
ステップS105では、
図18に示すように、評価部115が、判定対象画像を正常モデル124へ入力し、異常度と確度を算出する(ステップS105)。そして、判定部116が、異常度が所定の判定閾値より大であるか否かを判定する(ステップS106)。
【0091】
ここで、異常度が所定の判定閾値より大である場合(ステップS106,Yes)、判定部116が、確度が所定の第1閾値より大であるか否かを判定する(ステップS107)。異常度が所定の判定閾値より小である場合(ステップS106,No)、処理を終了する。
【0092】
つづいて、確度が所定の第1閾値より大である場合(ステップS107,Yes)、判定部116は正常モデル124による異常を通知し(ステップS108)、処理を終了する。
【0093】
また、確度が所定の第1閾値より小である場合(ステップS107,No)、判定部116は、判定対象画像から、異常対象領域RXを抽出する(ステップS109)。そして、評価部115が、異常対象領域RXを異常分類モデル125へ入力し、分類結果と確度を算出する(ステップS110)。
【0094】
そして、判定部116が、確度が第1閾値より大であるか否かを判定する(ステップS111)。ここで、確度が第1閾値より大である場合(ステップS111,Yes)、判定部116は、異常分類モデル125による異常と分類結果を通知し(ステップS112)、処理を終了する。
【0095】
一方、確度が第1閾値より小である場合(ステップS111,No)、つづいて判定部116は、確度が第1閾値よりもさらに小さい所定の第2閾値よりも小であるか否かを判定する(ステップS113)。
【0096】
ここで、確度が第2閾値よりも小である場合(ステップS113,Yes)、評価部115が、判定対象画像を過検知モデル126へ入力し、判定部116が過検知モデル126の出力結果に基づいて再判定を行う(ステップS114)。そして、判定部116は、再判定結果を通知し(ステップS115)、処理を終了する。
【0097】
一方、確度が第2閾値よりも大である場合(ステップS113,No)、取得部111が、操作部20等を介した該当の異常対象領域RXの分類クラスの追加設定を受け付ける(ステップS116)。
【0098】
そして、異常学習部113が、該当の異常対象領域RXを追加学習分とした機械学習により異常分類モデル125を更新し(ステップS117)、処理を終了する。
【0099】
なお、上述してきた実施形態に係る異常検知装置10は、たとえば
図19に示すような構成のコンピュータ60によって実現される。
図19は、異常検知装置10の機能を実現するコンピュータの一例を示すハードウェア構成図である。コンピュータ60は、CPU(Central Processing Unit)61、RAM(Random Access Memory)62、ROM(Read Only Memory)63、HDD(Hard Disk Drive)64、通信インタフェース(I/F)65、入出力インタフェース(I/F)66、およびメディアインタフェース(I/F)67を備える。
【0100】
CPU61は、ROM63またはHDD64に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM63は、コンピュータ60の起動時にCPU61によって実行されるブートプログラムや、コンピュータ60のハードウェアに依存するプログラム等を格納する。
【0101】
HDD64は、CPU61によって実行されるプログラムおよび当該プログラムによって使用されるデータ等を格納する。通信インタフェース65は、通信ネットワークを介して他の機器からデータを受信してCPU61へ送り、CPU61が生成したデータを、通信ネットワークを介して他の機器へ送信する。
【0102】
CPU61は、入出力インタフェース66を介して、ディスプレイやプリンタ等の出力装置、および、キーボードやマウス等の入力装置を制御する。CPU61は、入出力インタフェース66を介して、入力装置からデータを取得する。また、CPU61は、生成したデータを、入出力インタフェース66を介して出力装置へ出力する。
【0103】
メディアインタフェース67は、記録媒体68に格納されたプログラムまたはデータを読み取り、RAM62を介してCPU61に提供する。CPU61は、当該プログラムを、メディアインタフェース67を介して記録媒体68からRAM62上にロードし、ロードしたプログラムを実行する。記録媒体68は、たとえばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
【0104】
たとえば、コンピュータ60が異常検知装置10として機能する場合、コンピュータ60のCPU61は、RAM62上にロードされた異常検知プログラムを実行することにより、制御部11の各機能を実現する。また、HDD64には、記憶部12内のデータが記憶される。コンピュータ60のCPU61は、これらのプログラムを、記録媒体68から読み取って実行するが、他の例として、他の装置から、通信ネットワークを介してこれらのプログラムを取得してもよい。
【0105】
上述してきたように、実施形態に係る異常検知装置10は、正常学習部112と、評価部115と、判定部116とを備える。正常学習部112は、互いに競合する生成ネットワーク112aと識別ネットワーク112bとからなり、生成ネットワーク112aにスキップ接続モデル112aaを配置した敵対的生成ネットワークにより、正例となる学習用画像を用いた機械学習である正常学習を実行することによって、上記正例となる学習用画像である正常画像をモデル化した正常モデル124を生成する。評価部115は、判定対象画像を正常モデル124へ入力することによって取得される正常モデル124の出力値に基づいて判定対象画像の異常度を算出する。判定部116は、上記異常度に基づいて判定対象画像が異常であるか否かを判定する。
【0106】
したがって、本実施形態に係る異常検知装置10によれば、機械学習を利用した異常検知を簡便に且つ精度よく行うことができる。
【0107】
なお、上述した実施形態では、正常モデル124、異常分類モデル125および過検知モデル126の3つを組み合わせる例を挙げて説明したが、必ずしも3つ同時に組み合わせる必要はない。たとえば、基本的に正常モデル124および異常分類モデル125を組み合わせた異常検知を行うこととし、過検知モデル126についてはオプション的に選択可能としてもよい。また、たとえば、基本的に正常モデル124および過検知モデル126を組み合わせることとし、異常分類モデル125についてはオプション的に選択可能としてもよい。
【0108】
さらなる効果や変形例は、当業者によって容易に導き出すことができる。このため、本発明のより広範な態様は、以上のように表しかつ記述した特定の詳細および代表的な実施形態に限定されるものではない。したがって、添付の特許請求の範囲およびその均等物によって定義される総括的な発明の概念の精神または範囲から逸脱することなく、様々な変更が可能である。
【符号の説明】
【0109】
10 異常検知装置
11 制御部
111 取得部
112 正常学習部
113 異常学習部
114 過検知学習部
115 評価部
116 判定部
12 記憶部
121 正常学習用データセット
122 異常学習用データセット
123 過検知学習用データセット
124 正常モデル
125 異常分類モデル
126 過検知モデル
127 評価情報
127a 異常度情報
127b 分類結果
127c 確度情報