(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022053483
(43)【公開日】2022-04-05
(54)【発明の名称】演算プログラム、演算方法及び演算装置
(51)【国際特許分類】
G06T 7/00 20170101AFI20220329BHJP
G06N 3/02 20060101ALI20220329BHJP
【FI】
G06T7/00 350C
G06N3/02
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2021117335
(22)【出願日】2021-07-15
(31)【優先権主張番号】P 2020159539
(32)【優先日】2020-09-24
(33)【優先権主張国・地域又は機関】JP
【新規性喪失の例外の表示】新規性喪失の例外適用申請有り
(71)【出願人】
【識別番号】517048278
【氏名又は名称】LeapMind株式会社
(74)【代理人】
【識別番号】100161207
【弁理士】
【氏名又は名称】西澤 和純
(74)【代理人】
【識別番号】100161506
【弁理士】
【氏名又は名称】川渕 健一
(74)【代理人】
【識別番号】100139686
【弁理士】
【氏名又は名称】鈴木 史朗
(74)【代理人】
【識別番号】100207789
【弁理士】
【氏名又は名称】石田 良平
(72)【発明者】
【氏名】花元 敦思
(72)【発明者】
【氏名】今村 竜二
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA02
5L096AA06
5L096BA03
5L096CA21
5L096DA01
5L096FA32
5L096HA07
5L096HA11
5L096KA04
(57)【要約】
【課題】画像内における検知部分の特性に依存することなく、入力画像の特徴を判定することができるロバスト性の高い検知方法を提供する。
【解決手段】演算プログラムは、コンピュータに、入力画像から抽出された特徴量を取得する特徴量取得ステップと、取得された前記特徴量と、正常な画像に基づいて予め決定された平均との差に基づいて復元誤差を算出する復元誤差算出ステップと、前記復元誤差算出ステップにより算出された結果を出力する出力ステップとを有する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
コンピュータに、
入力画像から抽出された特徴量を取得する特徴量取得ステップと、
取得された前記特徴量と、正常な画像に基づいて予め決定された平均との差に基づいて復元誤差を算出する復元誤差算出ステップと、
前記復元誤差算出ステップにより算出された結果を出力する出力ステップと
を有する演算プログラム。
【請求項2】
正常な画像に基づいて予め決定された平均との差を、画像から抽出された特徴量を構成する複数の特徴のパターンである要素を複数含む辞書情報として取得する辞書情報取得ステップを更に有し、
前記復元誤差算出ステップは、取得された前記辞書情報に基づき、取得された前記特徴量を復元することにより復元誤差を算出する
請求項1に記載の演算プログラム。
【請求項3】
前記復元誤差算出ステップは、所定の関数に基づき最適値を求める最適化演算を行うことにより前記復元誤差を算出する
請求項1又は請求項2に記載の演算プログラム。
【請求項4】
前記特徴量取得ステップは、前記入力画像から抽出された複数の前記特徴量を取得し、
前記復元誤差算出ステップは、取得された複数の前記特徴量ごとに、前記復元誤差を算出し、算出された複数の前記復元誤差に基づいた演算を行うことにより、前記入力画像の前記復元誤差を算出し、
前記出力ステップは、算出された前記入力画像の前記復元誤差を結果として出力する
請求項3に記載の演算プログラム。
【請求項5】
前記復元誤差算出ステップは、前記特徴量取得ステップにより取得された前記特徴量の数より少ない数の前記特徴量を用いて、前記復元誤差を算出する
請求項4に記載の演算プログラム。
【請求項6】
所定の閾値と前記復元誤差算出ステップにより算出された前記復元誤差とに基づいて、前記入力画像が正常画像であるか否かを判定する判定ステップを更に有する
請求項1から請求項5のいずれか一項に記載の演算プログラム。
【請求項7】
前記特徴量取得ステップは、前記入力画像が入力された畳み込みニューラルネットワークの複数の中間層から前記特徴量を取得する
請求項1から請求項6のいずれか一項に記載の演算プログラム。
【請求項8】
前記畳み込みニューラルネットワークを更に有する
請求項7に記載の演算プログラム。
【請求項9】
入力画像から抽出された特徴量を取得する特徴量取得工程と、
取得された前記特徴量と、正常な画像に基づいて予め決定された平均との差に基づいて復元誤差を算出する復元誤差算出工程と、
前記復元誤差算出工程により算出された結果を出力する出力工程と
を有する演算方法。
【請求項10】
入力画像から抽出された特徴量を取得する特徴量取得部と、
取得された前記特徴量と、正常な画像に基づいて予め決定された平均との差に基づいて復元誤差を算出する復元誤差算出部と、
前記復元誤差算出部により算出された結果を出力する出力部と
を備える演算装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、演算プログラム、演算方法及び演算装置に関する。
【背景技術】
【0002】
従来、画像処理技術において、入力された画像が正常な画像か否かを判定する手法があった。正常な画像か否かを判定する手法として、例えばスパースコーディングによる異常検知方法が知られている(例えば、特許文献1を参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
上述したような技術によれば、異常部分の画像内に占める割合が小さい画像を検出するように構築された演算プログラムは、異常部分の画像内に占める割合が大きい画像を検出し難い場合があった。
【0005】
そこで、本発明は、画像内における検知部分の特性に依存することなく、入力画像の特徴を判定することができるロバスト性の高い検知方法を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の一態様に係る演算プログラムは、コンピュータに、入力画像から抽出された特徴量を取得する特徴量取得ステップと、取得された前記特徴量と、正常な画像に基づいて予め決定された平均との差に基づいて復元誤差を算出する復元誤差算出ステップと、前記復元誤差算出ステップにより算出された結果を出力する出力ステップとを有する。
【0007】
また、本発明の一態様に係る演算プログラムは、正常な画像に基づいて予め決定された平均との差を、画像から抽出された特徴量を構成する複数の特徴のパターンである要素を複数含む辞書情報として取得する辞書情報取得ステップを更に有し、前記復元誤差算出ステップは、取得された前記辞書情報に基づき、取得された前記特徴量を復元することにより復元誤差を算出する。
【0008】
また、本発明の一態様に係る演算プログラムにおいて、前記復元誤差算出ステップは、所定の関数に基づき最適値を求める最適化演算を行うことにより前記復元誤差を算出する。
【0009】
また、本発明の一態様に係る演算プログラムにおいて、前記特徴量取得ステップは、前記入力画像から抽出された複数の前記特徴量を取得し、前記復元誤差算出ステップは、取得された複数の前記特徴量ごとに、前記復元誤差を算出し、算出された複数の前記復元誤差に基づいた演算を行うことにより、前記入力画像の前記復元誤差を算出し、前記出力ステップは、算出された前記入力画像の前記復元誤差を結果として出力する。
【0010】
また、本発明の一態様に係る演算プログラムにおいて、前記復元誤差算出ステップは、前記特徴量取得ステップにより取得された前記特徴量の数より少ない数の前記特徴量を用いて、前記復元誤差を算出する。
【0011】
また、本発明の一態様に係る演算プログラムは、所定の閾値と前記復元誤差算出ステップにより算出された前記復元誤差とに基づいて、前記入力画像が正常画像であるか否かを判定する判定ステップを更に有する。
【0012】
また、本発明の一態様に係る演算プログラムにおいて、前記特徴量取得ステップは、前記入力画像が入力された畳み込みニューラルネットワークの複数の中間層から前記特徴量を取得する。
【0013】
また、本発明の一態様に係る演算プログラムは、前記畳み込みニューラルネットワークを更に有する。
【0014】
また、本発明の一態様に係る演算方法は、入力画像から抽出された特徴量を取得する特徴量取得工程と、取得された前記特徴量と、正常な画像に基づいて予め決定された平均との差に基づいて復元誤差を算出する復元誤差算出工程と、前記復元誤差算出工程により算出された結果を出力する出力工程とを有する。
【0015】
また、本発明の一態様に係る演算装置は、入力画像から抽出された特徴量を取得する特徴量取得部と、取得された前記特徴量と、正常な画像に基づいて予め決定された平均との差に基づいて復元誤差を算出する復元誤差算出部と、前記復元誤差算出部により算出された結果を出力する出力部とを備える。
【発明の効果】
【0016】
本発明によれば、画像内における検知部分の特性に依存することなく、入力画像の特徴を判定することができるロバスト性の高い検知方法を提供することができる。
【図面の簡単な説明】
【0017】
【
図1】第1の実施形態に係る演算方法の概要を説明するための図である。
【
図2】第1の実施形態に係る情報処理装置の機能構成の一例について説明するための図である。
【
図3】第1の実施形態に係る演算装置の機能構成の一例について説明するための図である。
【
図4】第1の実施形態に係る演算プログラムの一連の流れの一例について説明するための図である。
【
図5】第2の実施形態に係る演算方法の概要を説明するための図である。
【
図6】第2の実施形態に係る特徴量について説明するための図である。
【
図7】第2の実施形態に係る演算装置の機能構成の一例について説明するための図である。
【
図8】第2の実施形態に係る演算プログラムの一連の流れの一例について説明するための図である。
【
図9】第3の実施形態に係る演算装置の機能構成の一例について説明するための図である。
【
図10】第4の実施形態に係る演算装置の機能構成の一例について説明するための図である。
【
図11】本実施形態に係る演算方法により異常検知をする際に用いられた正常画像と異常画像の一例について説明するための図である。
【
図12】本実施形態に係る演算方法の効果を説明するための図である。
【
図13】従来技術により異常検知をする際に用いられる正常画像と異常画像の一例について説明するための図である。
【
図14】従来技術による問題点を説明するための図である。
【発明を実施するための形態】
【0018】
[従来技術による異常検知]
まず、従来技術による異常検知について、図を参照しながら説明する。
図13は、従来技術により異常検知をする際に用いられる正常画像と異常画像の一例について説明するための図である。従来技術による異常検知技術では、入力画像をスパースコーディング(Sparse Coding)等の所定の方法により異常検知を行っていた。従来技術によれば、入力画像をスパースコーディング等の所定の方法により圧縮した後に復元し、圧縮前の入力画像と復元後の画像とを比較することにより差分画像を作成し、差分画像に基づいて、正常な画像か否かの判定を行っていた。
【0019】
図13(A)は、正常(Normal)な画像の一例を示す図である。同図には左から順に、圧縮前(Original)の入力画像、復元後(Reconstruction)の画像、入力画像と復元画像との差分(Difference)を表した画像を示す。差分を表した画像において、暗い部分は差分がない場所、明るい部分は差分がある場所を示す。同図に示すように、正常画像の場合においては、差分を表した画像に、ほとんど差分はみられない。
【0020】
図13(B)には、小さな異常(Small Anomaly)を有する画像の一例を示す図である。同図には、
図13(A)と同様に、左から圧縮前の入力画像、復元後の画像、入力画像と復元画像との差分を表した画像を示す。同図に示すように、小さな異常を有する画像の場合においては、差分を表した画像のうち特に異常が存在する範囲が、明るくなっている。
【0021】
図13(C)には、大きな異常(Large Anomaly)を有する画像の一例を示す図である。同図には、
図13(A)と同様、左から順に、圧縮前の入力画像、復元後の画像、入力画像と復元画像との差分を表した画像を示す。同図に示すように、大きな異常を有する画像の場合においては、差分を表した画像のうち異常が存在する範囲についても、暗いままとなっている。
すなわち、従来技術によれば、入力画像のうち異常部分が占める割合が大きい場合には、異常部分も正常であると誤検知してしまう場合があった。
【0022】
図14は、従来技術による問題点を説明するための図である。同図は、複数枚の正常な入力画像と、小さな異常を有する画像と、大きな異常を有する画像とにおいて、復元誤差の数を示した図である。復元誤差が大きいとは、すなわち
図13で示した差分を表した画像において、明るい部分が多くなっている画像である。復元誤差の数が大きければ、当該入力画像は異常を有する画像であると判定することができる。
なお、本実施形態において入力画像における特徴を検出する方法として、入力画像と復元画像の差分である復元誤差を用いる例を示すが、これに限定されるものではない。二つの画像の差を抽出するために画像間の比を用いても良いし、差を抽出する前に所定の変形や輝度レベルの変更などの前処理を施しても良い。また、両画像の差が発生している位置や密度などに基づいて検知しても良い。
同図に示すように、正常な画像においては、復元誤差の数が16から27の範囲である。小さな異常を有する画像においては、復元誤差の数が34であり、正常な画像の復元誤差の数の範囲から外れている。したがって、従来技術においても、小さな異常を有する画像については検出することができる。
一方、大きな異常を有する画像においては、復元誤差の数が16であり、正常な画像の復元誤差の数の範囲内に収まってしまっている。すなわち、従来技術によれば、大きな異常を有する画像を正常な画像であると誤検知してしまうような問題があった。
本発明においては、このような問題を抑止するため、異常部分の画像内に占める割合に依存することなく、入力画像が正常画像であるか否かを判定することができるロバスト性の高い異常検知方法を提供することを目的とする。
なお、
図13および
図14は従来技術を説明するための一例の図であり、本発明においては、異常部分の画像内に占める割合以外にも画像内の検知部分の特性に依存することなく、入力画像の特徴を判定することが可能となる。つまり、異常部分の検知以外にも、検知する閾値などを適宜調整することで、入力画像における所定の特徴を検知または抽出することも可能である。
【0023】
[第1の実施形態]
以下、本発明の第1の実施形態実施形態について、図面を参照しながら説明する。
図1は、第1の実施形態に係る演算方法の概要を説明するための図である。同図を参照しながら、第1の実施形態に係る演算方法の概要について説明する。第1の実施形態に係る演算方法は、入力画像PIの特徴を判定する。一例として、第1の実施形態に係る演算方法は、入力画像PIが正常画像であるか否かを判定する。入力画像PIとしては、画像の空間周波数が高い画像が好適である。画像の空間周波数が高い画像とは、例えば、所定の地模様や織模様等の模様を有する布地等を撮像した画像である。所定の地模様や織模様等の模様を有する布地等の一例としては、カーペット等の布地、タイル、レザー等がある。以下、入力画像PIが布地を撮像した画像である場合の一例について説明する。
【0024】
以下の説明において、異常な画像とは、穴、裂け、破れ、ほつれ、縫目不良、染み、変色等の異常を広く含む。また、正常な画像とは、異常な画像以外の画像であり、穴、裂け、破れ、ほつれ、縫目不良、染み、変色等の異常がない布地を撮像した画像である。
なお、入力画像PIの種類は、布地等を撮像した画像の一例に限定されない。正常な画像と異常な画像は、検知可能な範囲でユーザにより任意に設定されればよく、どのような画像においても、第1の実施形態に係る演算方法を適用することができる。例えば、第1の実施形態に係る演算方法は、異常検知ではなく、正常品の中でより精度や品質が高いものを検知する場合にも応用されることができる。
【0025】
第1の実施形態に係る演算方法においては、演算部10と、特徴量抽出部20とを備える。
特徴量抽出部20は、入力画像PIの特徴量を抽出する。ここで、特徴量抽出部20が入力画像PIから取得する特徴量とは、ディープラーニングネットワークにおいてデータを繰り返し学習し、機械またはプログラムが自律的に認識したパターン・経験則である。すなわち、特徴量とは、入力データにどのような特徴があるかを数値化したものである。ディープラーニングネットワークにより抽出された特徴量は、例えば、入力画像PIと、空間的な対応関係を有していてもよいし、色彩的な対応関係を有していてもよい。一例として、特徴量抽出部20が入力画像PIから取得する特徴量とは、入力画像PIの周波数に基づく特徴量であってもよい。
特徴量抽出部20は、例えば、ニューラルネットワークにより、入力画像PIの特徴量を抽出する。特徴量抽出部20に用いられるニューラルネットワークとして、例えば、VGG16を用いることができる。VGG16とは、計16層から成る畳み込みニューラルネットワーク(いわゆる、CNN:Convolutional Neural Network)である。学習済みモデルとしては、既存の学習済モデルを用いてもよいし、既存の学習済みモデルに追加学習をさせたモデルを用いてもよい。なお、追加学習を行う場合には、入力画像として正常画像を用いることが好ましい。
【0026】
なお、特徴量抽出部20は、VGG16である場合の一例に限定されない。特徴量抽出部20は、画像を縮小できるディープラーニング層を有していることが望ましい。特徴量抽出部20は、VGG16に代えて、例えば、RESNET50を用いてもよい。RESNET50とは、計50層の畳み込み層を有して構成されるCNNである。特徴量抽出部20は、単一のCNNから構成されていてもよいし、複数のCNNから構成されていてもよい。特徴量抽出部20が複数のCNNから構成される場合、特徴量抽出部20は、検出対象に応じて複数のディープラーニングモデルから選択的に切り替えられても良いし、複数のディープラーニングモデルを組み合わせて構成されても良い。
【0027】
特徴量抽出部20が、複数のディープラーニング層を有している場合、一つ以上のディープラーニング層は、量子化されていてもよい。ディープラーニング層の少なくとも一部を量子化する一例としては、例えば、ディープラーニング層に含まれる畳み込み演算に用いる入力データ(アクティベーション)及び重みを8ビット以下の値に量子化するための量子化演算を各ディープラーニング層に設けてもよい。
当該量子化演算は畳み込み演算結果を入力とし、量子化結果を次のディープラーニング層の入力とすることができる。このように構成することにより、量子化しない場合に比べて、より演算負荷を低減することができる。
また、特徴量抽出部20は、入力画像PIが入力されたディープラーニング層すなわち、畳み込みニューラルネットワークが備える複数の中間層から、特徴量を取得する。
【0028】
特徴量抽出部20は、抽出した特徴量を演算部10に出力する。特徴量抽出部20が、複数の畳み込み層を備える場合、それぞれの畳み込み層により抽出された特徴量を演算部10に出力してもよい。また、特徴量抽出部20が、複数の畳み込み層を備える場合、複数の畳み込み層のうち、1以上の畳み込み層により抽出された特徴量を演算部10に出力してもよい。
なお、特徴量抽出部20は、1つの畳み込み層から複数チャネルの特徴量を抽出してもよい。
【0029】
演算部10は、特徴量抽出部20により出力されたそれぞれの特徴量に対し、情報を圧縮し、復元する。演算部10は、圧縮前の情報と、復元後の情報の差分を、復元誤差として算出する。演算部10は、算出した復元誤差に基づいて、入力画像PIが正常な画像であるか否かを判定する。
【0030】
演算部10として、例えば、スパースコーディング(Sparse Coding)を用いることができる。スパースコーディングでは、情報を構成する要素(素材)を辞書として備える。スパースコーディングでは、入力された情報を、辞書に記憶された要素の組み合わせで表現することにより、画像を圧縮する。入力画像PIが正常な画像である場合、辞書に記憶されている特定の要素を組み合わせることで復元することができる。換言すれば、入力画像PIが正常な画像である場合、スパースコーディングにより情報を圧縮して、復元したとしても大きな誤差は生じない。
一方、入力画像PIが異常な画像である場合、正常な画像を構成する特定の要素からでは、完全に復元することができない。換言すれば、入力画像PIが異常な画像である場合、スパースコーディングにより情報を圧縮して、復元した場合に生じる誤差が大きくなる。
演算部10は、圧縮前の情報と、復元後の情報との差分を復元誤差として算出し、算出された復元誤差に基づいて入力画像PIが正常な画像であるか否かを判定することができる。
【0031】
本実施形態において、辞書に記憶された情報を構成する各要素は、正常な画像に基づいて生成されている。ここで、正常な画像とは、
図13に示すような、特異的な要素の無い画像である。正常な画像とは、換言すれば入力され得る画像における平均的な画像である。そのため、辞書を用いたスパースコーディングにおいては、入力画像の異常の有無に関わらず、復元される画像は所定のばらつきである分散を含んだ状態の画像であって、正常なまたは正常に近い平均的な画像である。したがって、演算部10が算出する圧縮前の情報と、復元後の情報との差分である復元誤差は、入力画像と事前に想定される所定の平均画像との差に基づいて算出される。
【0032】
なお、演算部10としてのアルゴリズムは、スパースコーディング等の既存の技術を用いることができるが、辞書は、入力画像PIに応じてユーザにより用意されることが好適である。
【0033】
図2は、第1の実施形態に係る情報処理装置5の機能構成の一例について説明するための図である。同図を参照しながら、第1の実施形態に係る情報処理装置5の機能構成の一例について説明する。情報処理装置5は、入力画像PIの特徴を判定する。
情報処理装置5は、記憶部300と、演算部10と、操作入力部410と、表示部420とを備える。
【0034】
記憶部300は、フラッシュメモリ、EEPROM(Electrically Erasable Programmable Read-Only Memory)、ROM(Read-Only Memory)、またRAM(Random Access Memory)等により実現される。記憶部300の全部または一部はクラウドサーバ等の外部機器に設けられ、通信回線により演算部10等と接続させてもよい。記憶部300は、辞書情報記憶部310と、ROM320と、RAM330とを備える。
【0035】
操作入力部410は、ユーザが演算部10等に対しての指示を入力する装置である。操作入力部410は、タッチパネル、キーボード、マウス等の公知の入力デバイスである。例えば、操作入力部410に入力された情報は、演算部10に送信される。
【0036】
表示部420は、所定の情報を表示する。表示部420は、例えば、LCDディスプレイ等の公知のモニタであってもよい。表示部420は、演算部10が生成したGUI(Graphical User Interface)画像やコマンド等を受け付けるためのコンソール画面などを表示する。また、演算部10が使用者からの情報入力を必要とする場合、表示部420は操作入力部410から情報を入力することを使用者に促すメッセージや情報入力に必要なGUI画像を表示する。
【0037】
図3は、第1の実施形態に係る演算装置(演算部10)の機能構成の一例について説明するための図である。同図を参照しながら演算部10の機能構成の一例について説明する。演算部10が有する機能の少なくとも一部は、LSI(Large Scale Integration)、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)等の回路部(circuitry)を含むハードウェアにより実現されてもよい。
演算部10は、特徴量取得部110と、辞書情報取得部120と、復元誤差算出部130と、出力部140とを備える。
【0038】
ここで、ディープラーニング層の個々の演算自体は単純であるが、一つの入力に対する演算量は非常に多い場合がある。したがって、演算部10が有する複数の機能のうち、少なくとも特徴量取得部110における演算、特に複数のディープラーニング層における演算については、専用のアクセラレータを用いて演算を行うことが好ましい。より詳細には、各ディープラーニング層に含まれる畳み込み演算及び量子化演算について、専用のアクセラレータ回路を用いて演算することが好ましい。
なお、当該アクセラレータは所定のプロセッサにより制御され、所定のプログラムと組み合わせて動作する。
【0039】
特徴量取得部110は、入力画像PIから抽出された特徴量を取得する。特徴量取得部110は、特徴量抽出部20が入力画像PIから抽出した特徴量を取得する。
【0040】
辞書情報取得部120は、辞書情報を取得する。辞書情報取得部120は、例えば、辞書情報が記憶された辞書情報記憶部30から、所定の通信方式により辞書情報を取得する。辞書情報は、画像から抽出された特徴量を構成する複数の特徴のパターンである要素を複数含む。すなわち、辞書情報取得部120は、画像から抽出された特徴量を構成する複数の特徴のパターンである要素を複数含む辞書情報を取得する。
なお、一例として、辞書情報は、画像を構成する複数の画素のパターンである要素を複数含んでいてもよい。すなわち、辞書情報取得部120は、画像を構成する複数の画素のパターンである要素を複数含む辞書情報を取得してもよい。なお、辞書情報記憶部30は外部装置に設けてもよく、この場合ネットワーク経由で辞書情報を取得する。
【0041】
復元誤差算出部130は、取得された特徴量と、取得された辞書情報とに基づく演算を行う。具体的には、復元誤差算出部130は、特徴量取得部110により取得された特徴量を圧縮し、復元した際の復元誤差REを算出する。復元誤差算出部130は、辞書情報取得部120により取得された辞書情報に基づき、特徴量を圧縮し、復元する。すなわち、復元誤差算出部130は、取得された特徴量と、取得された辞書情報とに基づき、復元誤差REを算出する。
【0042】
ここで、演算部10が算出する圧縮前の情報と、復元後の情報との差分である復元誤差は、入力画像と事前に想定される所定の平均画像との差に基づいて算出される。この場合、辞書情報取得部120は、正常な画像に基づいて予め決定された平均との差を辞書情報として取得する。また、復元誤差算出部130は、取得された特徴量と、正常な画像に基づいて予め決定された平均との差に基づいて、復元誤差REを算出する。
【0043】
出力部140は、復元誤差算出部130により算出された結果を出力する。例えば、出力部140は、復元誤差算出部130により算出された復元誤差REを出力する。
【0044】
図4は、第1の実施形態に係る演算プログラムの一連の流れの一例について説明するための図である。同図を参照しながら、第1の実施形態に係る演算プログラムの一連の流れについて説明する。
(ステップS110)特徴量取得部110は、入力画像PIから抽出された特徴量を取得する。ステップS110を、特徴量取得ステップとも記載する。
(ステップS130)辞書情報取得部120は、画像を構成する複数の画素のパターンである要素を複数含む辞書情報を取得する。ステップS130を、辞書情報取得ステップとも記載する。
(ステップS150)復元誤差算出部130は、取得された特徴量と、取得された辞書情報とに基づき、復元誤差REを算出する。例えば、復元誤差算出部130は、所定の関数に基づき最適値を求める最適化演算を行うことにより復元誤差REを算出する。ステップS150を、復元誤差算出ステップとも記載する。
(ステップS170)出力部140は、復元誤差算出部130により算出された結果を出力する。ステップS170を、出力ステップとも記載する。
なお、ステップS150の動作を複数回繰り返し、それぞれにおいて、ステップS170で復元誤差を産出することで、異なる特性の異常を検知させることができる。
【0045】
[第2の実施形態]
以下、本発明の第2の実施形態実施形態について、図面を参照しながら説明する。
図5は、第2の実施形態に係る演算方法の概要を説明するための図である。同図を参照しながら、第2の実施形態に係る演算方法の概要について説明する。第2の実施形態に係る演算方法は、入力画像PIから複数の特徴量を抽出し、抽出された複数の特徴量に対し、復元誤差REを算出する点において、第1の実施形態とは異なる。第2の実施形態においては、特徴量抽出部20に代えて特徴量抽出部20Aを備え、演算部10に代えて演算部10Aを備える点において、第1の実施形態とは異なる。以下の説明において、第1の実施形態と同様の構成については、同様の符号を付すことにより、説明を省略する場合がある。
【0046】
特徴量抽出部20Aは、入力層ILと、複数の畳み込み層CLと、複数のプーリング層PLとを備える。特徴量抽出部20Aは、複数の異なる階層の畳み込み層CLから、特徴量を抽出し、演算部10Aに出力する。それぞれの階層からは、複数チャネルの特徴量が抽出され、出力される。
例えば、特徴量抽出部20AがVGG16を用いて構成される場合、16層の畳み込み層のうち4層目から128チャネル、7層目から256チャネル、10層目から512チャネルの特徴量(すなわち、合計896チャネル)が抽出され、出力される。
【0047】
演算部10Aは、取得した複数のチャネルの特徴量について、復元誤差REを算出する。例えば、演算部10Aは、特徴量抽出部20Aから896チャネルの特徴量を取得する場合において、それぞれのチャネルについて、圧縮及び復元を行い、復元誤差REを算出する。演算部10Aは、算出した複数の復元誤差REの差分の合計値をとることにより、入力画像PIの復元誤差REを算出する。
【0048】
図6は、第2の実施形態に係る特徴量について説明するための図である。同図を参照しながら、第2の実施形態に係る特徴量について説明する。第2の実施形態においては、複数の畳み込み層により抽出された特徴量を用いるため、入力画像PIについて、マルチスケールに特徴量を抽出する。
同図に示す矩形は、スパースコーディングにより抽出された特徴量の受容野(receptive field)を示す。(a)により示される範囲は、スパースコーディングにより出力された特徴量の受容野を示す。(b)により示される範囲は、4層目における受容野を、(c)により示される範囲は、7層目における受容野を、(d)により示される範囲は、10層目における受容野を、それぞれ示す。すなわち、第2の実施形態に係る特徴量は、入力画像PIのうち異なる範囲の特徴量が抽出される。
【0049】
図7は、第2の実施形態に係る演算装置(演算部10A)の機能構成の一例について説明するための図である。同図を参照しながら演算部10Aの機能構成の一例について説明する。演算部10Aは、特徴量取得部110に代えて特徴量取得部110Aを、辞書情報取得部120に代えて辞書情報取得部120Aを、復元誤差算出部130に代えて復元誤差算出部130Aを備える点において、演算部10とは異なる。演算部10Aの説明において、演算部10と同様の構成については同様の符号を付すことにより、説明を省略する場合がある。
【0050】
演算部10Aが有する複数の機能のうち、少なくとも特徴量取得部110Aにおける演算、特に複数のディープラーニング層における演算については、専用のアクセラレータを用いて演算を行うことが好ましい。より詳細には、各ディープラーニング層に含まれる畳み込み演算及び量子化演算について、専用のアクセラレータ回路を用いて演算することが好ましい。
なお、当該アクセラレータは所定のプロセッサにより制御され、所定のプログラムと組み合わせて動作する。
【0051】
特徴量取得部110Aは、特徴量抽出部20Aから複数の特徴量を取得する。複数の特徴量とは、同一の入力画像PIから取得される特徴量である。すなわち、特徴量取得部110Aは、入力画像PIから抽出された複数の特徴量を取得する。特徴量取得部110Aは、取得した特徴量のうちの1つを復元誤差算出部130Aに出力する。
【0052】
復元誤差算出部130Aは、特徴量毎復元誤差算出部131と、合計値算出部132とを備える。
特徴量毎復元誤差算出部131は、特徴量取得部110Aから特徴量を、辞書情報取得部120Aから辞書情報をそれぞれ取得し、特徴量の復元誤差REを算出する。特徴量毎復元誤差算出部131は、取得した特徴量ごとに復元誤差REを算出する。本実施形態においては、特徴量ごとに、異なる辞書情報が用意される。特徴量毎復元誤差算出部131は、算出した復元誤差REを合計値算出部132に出力し、復元誤差REの算出が終わったことを特徴量取得部110A及び辞書情報取得部120Aに通知する。
【0053】
特徴量取得部110Aは、特徴量毎復元誤差算出部131から復元誤差REの算出が終わったことの通知を受けると、特徴量抽出部20Aから取得した複数の特徴量のうち、特徴量毎復元誤差算出部131に出力していない特徴量を特徴量毎復元誤差算出部131に出力する。
辞書情報取得部120Aは、特徴量毎復元誤差算出部131から復元誤差REの算出が終わったことの通知を受けると、特徴量取得部110Aが特徴量毎復元誤差算出部131に出力した特徴量に応じた辞書情報を特徴量毎復元誤差算出部131に出力する。
【0054】
合計値算出部132は、特徴量毎復元誤差算出部131により算出された複数の復元誤差REに基づいた演算を行うことにより、入力画像PIの復元誤差REを算出する。一例として、合計値算出部132は、特徴量毎復元誤差算出部131により算出された複数の復元誤差REを合計することにより、入力画像PIの復元誤差REを算出する。
なお、合計値算出部132は、特徴量毎復元誤差算出部131により算出された複数の復元誤差REに基づき、その他の演算により、入力画像PIの復元誤差REを算出するよう構成してもよい。一例として、復元誤差REは、最大値、最大値と最小値との差分、分散などを用いて算出されても良い。また、複数の復元誤差REを合計する場合に、所定の特徴量(層)から出力されるか否かによって重みをかけて合計しても良い。例えば、所定の層から算出された特徴量においてノイズが多く含まれて検知精度が低下してしまう場合には、他の特徴量から算出された復元誤差に比べて小さい重みをかけてから合計しても良い。
他の一例として、合計値算出部132は、特徴の位置ごとに復元誤差REを合計することによって、入力画像PIの復元誤差REを算出するよう構成されていてもよい。この場合、2次元の復元誤差マトリクスを用いることにより、入力画像PIの復元誤差REを算出するよう構成されることが望ましい。
また、他の一例として、合計値算出部132は、復元誤差REが上位n位(nは自然数)までの値を合計し、最終的な復元誤差にするよう構成されていてもよい。
出力部140は、算出された入力画像PIの復元誤差REを結果として出力する。
【0055】
ここで、特徴量毎復元誤差算出部131は、正常な画像に基づいて生成された各要素に基づいて、入力画像PIの復元誤差REを算出する。したがって、辞書を用いたスパースコーディングにおいては、入力画像の異常の有無に関わらず、復元される画像は所定のばらつきである分散を含んだ状態の画像であって、正常なまたは正常に近い平均的な画像である。よって、演算部10が算出する圧縮前の情報と、復元後の情報との差分である復元誤差は、入力画像と事前に想定される所定の平均画像との差に基づいて算出される。
【0056】
図8は、第2の実施形態に係る演算プログラムの一連の流れの一例について説明するための図である。同図を参照しながら、第2の実施形態に係る演算プログラムの一連の流れについて説明する。第2の実施形態に係る演算プログラムは、ステップS150に代えて、ステップS151からステップS153を有する点において、第1の実施形態に係る演算プログラムの一連の流れとは異なる。
【0057】
(ステップS151)特徴量毎復元誤差算出部131は、特徴量取得部110Aから特徴量を取得し、辞書情報取得部120Aから特徴量に応じた辞書情報を取得し、特徴量ごとに復元誤差REを算出する。
(ステップS152)特徴量毎復元誤差算出部131は、特徴量取得部110Aが取得した全ての特徴量につき復元誤差REを算出した場合(すなわち、ステップS152;YES)、処理をステップS153に進める。特徴量毎復元誤差算出部131は、特徴量取得部110Aが取得した全ての特徴量につき、まだ復元誤差REを算出していない特徴量がある場合(すなわち、ステップS152;NO)、処理をステップS110に進める。
(ステップS153)合計値算出部132は、特徴量毎復元誤差算出部131により算出された複数の復元誤差REを合計し、入力画像PIの復元誤差REを算出する。
【0058】
[第3の実施形態]
以下、本発明の第3の実施形態実施形態について、図面を参照しながら説明する。
図9は、第3の実施形態に係る演算装置(演算部10B)の機能構成の一例について説明するための図である。同図を参照しながら演算部10Bの機能構成の一例について説明する。演算部10Bは、選択部150を更に備える点において、演算部10Aとは異なる。演算部10Bの説明において、演算部10Aと同様の構成については同様の符号を付すことにより、説明を省略する場合がある。
【0059】
選択部150は、特徴量取得部110Aにより取得された特徴量のうち、所定の個数の特徴量を選択し、復元誤差算出部130Aに出力する。例えば、特徴量取得部110Aが、特徴量抽出部20Aから896チャネルの特徴量を取得した場合、そのうち所定の数の特徴量を復元誤差算出部130Aに出力する。すなわち、第3の実施形態において、復元誤差算出部130Aは、特徴量取得部110Aにより取得された特徴量の数より少ない数の特徴量を用いて、復元誤差REを算出する。
【0060】
選択部150は、予め定められた種類の特徴量を選択し、選択した特徴量を復元誤差算出部130Aに出力するよう構成されていてもよい。また、選択部150は、特徴量取得部110Aが取得した特徴量のうち、所定の関数に応じてランダムに選択された特徴量を復元誤差算出部130Aに出力するよう構成されていてもよい。
なお、選択部150は、選択する特徴量の数として複数を選択できるように複数のモードを備えるように構成しても良い。具体的には、ユーザからの入力や所定の関数に基づいて、検知速度に比べて検知精度を優先する場合には選択する特徴量の数を増やすように制御しても良い。また、連続して検知する場合に、時間経過に対して選択する特徴量の数を変化させても良い。
【0061】
[第4の実施形態]
以下、本発明の第4の実施形態実施形態について、図面を参照しながら説明する。
図10は、第4の実施形態に係る演算装置(演算部10C)の機能構成の一例について説明するための図である。同図を参照しながら演算部10Cの機能構成の一例について説明する。演算部10Cは、判定部160を更に備える点において、演算部10とは異なる。演算部10Cの説明において、演算部10と同様の構成については同様の符号を付すことにより、説明を省略する場合がある。
【0062】
判定部160は、復元誤差算出部130により算出された復元誤差REに基づき、入力画像PIが正常な画像であるか否かを判定する。具体的には、判定部160は、復元誤差算出部130により算出された復元誤差REと、所定の閾値とを比較し、復元誤差REの方が所定の閾値よりも大きい場合には、入力画像PIは異常な画像であると判定し、復元誤差REの方が所定の閾値よりも小さい場合には、入力画像PIは正常な画像であると判定する。すなわち、判定部160は、所定の閾値と、復元誤差算出部130により算出された復元誤差REとに基づいて、入力画像PIが正常画像であるか否かを判定する。
出力部140は、判定部160により判定された結果を出力する。出力結果には異常か否かの判定だけでなく、検知した時刻、異常の内容、異常率、異常が発生した箇所、異常レベルなどの情報も含めても良い。また、同時に異常な画像であると判定した入力画像も出力するようにしても良い。また、出力部140は出力する結果をネットワーク経由で所定のサーバに出力するように構成しても良い。
【0063】
[実施形態の効果]
次に、
図11及び
図12を参照しながら、本実施形態に係る演算方法により異常検知を行った際に得られた結果について説明する。
図11に示す各画像を入力画像PIとして、本実施形態に係る演算方法により異常検知を行った際に得られた結果について、
図12に示す。
図11は、本実施形態に係る演算方法により異常検知をする際に用いられた正常画像と異常画像の一例について説明するための図である。
図12は、本実施形態に係る演算方法の効果を説明するための図である。
【0064】
図11(A)に示す画像は、入力画像PIが正常な画像である場合の一例である。
図11(B)から
図11(E)に示す画像は、入力画像PIが異常な画像である場合の一例である。この一例において、入力画像PIは、カーペットを撮像した画像である。
図11(B)及び
図11(C)は、カーペットに染みがある場合の一例である。
図11(B)及び
図11(C)は、それぞれ異なる大きさと程度の染みを有する。
図11(D)は、カーペットに裂けがある場合の一例である。
図11(E)は、カーペットに穴がある場合の一例である。
【0065】
複数の正常な入力画像PIと、
図11に示した異常な画像について、本実施形態に係る演算方法により異常検知を行った結果について、
図12に示す。
図12に示す図の横軸は復元誤差REを、縦軸は入力画像PIの数を示す。
図12(A)は、入力画像PIに対してスパースコーディングを行った場合の結果(すなわち、従来技術による結果)である。同図に示すように、正常な入力画像PIの復元誤差REの範囲は、16から26である。また、
図11(B)から
図11(E)に示す異常な入力画像PIの復元誤差REも、同様に16から26の範囲に収まっており、従来技術によれば、正常な画像と異常な画像の判定ができない。
【0066】
図12(B)及び
図12(C)は、本実施形態に係る演算方法により異常検知を行った結果である。
図12(B)は、浅い層から抽出された特徴量のみについてスパースコーディングを行った場合の一例であり、
図12(C)は、深い層から抽出された特徴量についてもスパースコーディングを行った場合の一例である。
【0067】
図12(B)の一例においては、異常な入力画像PIの種類によっては、異常な入力画像PIの復元誤差REが、正常な入力画像PIの復元誤差REの範囲から区別される場合はあるものの、異常な入力画像PIの復元誤差REが、正常な入力画像PIの復元誤差REの範囲に含まれる場合もある。
【0068】
図12(C)の一例においては、いずれの異常な入力画像PIであっても、異常な入力画像PIの復元誤差REは、正常な入力画像PIの復元誤差REの範囲から外れている。すなわち、本実施形態において、演算部10は、浅い層から特徴量を抽出するのみでなく、深い層からも特徴量を抽出して、総合的に判定する方が、よりロバスト性の高い異常検知を行うことができる。
【0069】
[実施形態のまとめ]
以上説明した実施形態によれば、演算部10は、特徴量取得部110を備えることにより、入力画像PIから抽出された特徴量を取得し、辞書情報取得部120を備えることにより、画像を構成する複数の画素のパターンである要素を複数含む辞書情報を取得する。演算部10は、復元誤差算出部130を備えることにより、取得された特徴量と、取得された辞書情報とに基づき、復元誤差REを算出し、出力部140を備えることにより、算出された復元誤差REを出力する。本実施形態によれば、入力画像PIの画像情報そのものから復元誤差REを算出するのではなく、入力画像PIから抽出された特徴量から復元誤差REを算出する。したがって、入力画像PIのうち、異常部分が大部分を占めるような画像においても、異常検知することができる。すなわち、本実施形態によれば、異常部分の画像内に占める割合に依存することなく、入力画像PIが正常画像であるか否かを判定することができるロバスト性の高い異常検知方法を提供することができる。
【0070】
また、以上説明した実施形態によれば、演算部10は、所定の関数に基づき最適値を求める最適化演算を行うことにより復元誤差REを算出する。すなわち、本実施形態によれば、スパースコーディングの手法を用いることにより容易にロバスト性の高い異常検知を行うことができる。
【0071】
また、以上説明した実施形態によれば、演算部10において、特徴量取得部110Aは、入力画像PIから抽出された複数の特徴量を取得する。辞書情報取得部120Aは、特徴量取得部110Aが取得した複数の特徴量に応じた辞書情報を取得する。復元誤差算出部130は、取得された複数の特徴量ごとに、復元誤差REを算出し、算出された複数の復元誤差REを合計することにより、入力画像PIの復元誤差REを算出する。すなわち、本実施形態によれば、複数の階層の階層において抽出された特徴量を使用するため、それぞれ異なる範囲の特徴量についてスパースコーディングを行う。したがって、本実施形態によれば、よりロバストな異常検知をすることができる。
【0072】
ここで、本実施形態においては、複数の階層から抽出された特徴量についてスパースコーディングを行うことにより、よりロバスト性の高い異常検知を行うことができる一方、処理に係る時間は、スパースコーディングを行う回数に依存して長くなるという問題があった。換言すれば、異常検知の正確さと、処理時間との関係には、トレードオフの関係が存在する。すなわち、特徴量抽出部20により抽出された特徴量の数が多い場合、抽出された全ての特徴量についてスパースコーディングを行うと、時間がかかるという問題があった。
以上説明した実施形態によれば、演算部10Bは、選択部150を備えることにより、特徴量取得部110Aが取得した複数の特徴量のうち、選択された数の特徴量について復元誤差REを算出する。すなわち、復元誤差算出部130Aは、特徴量取得部110Aにより取得された特徴量の数より少ない数の特徴量について、復元誤差REを算出する。したがって、本実施形態によれば、短い時間で、よりロバスト性の高い異常検知を行うことができる。
なお、特徴量抽出部20Aにおいて、演算部10Bが必要とする数の特徴量を抽出するよう構成してもよい。本実施形態によれば、演算部10Bは、選択部150を備えることにより、VGG16やRESNET50等の既存の学習モデルを使用する際に、異常検知の正確さと、処理時間とのトレードオフの関係を解消することができる。
【0073】
また、以上説明した実施形態によれば、演算部10Cは、判定部160を更に備えることにより、復元誤差REに基づいて、入力画像PIが正常画像であるか否かの判定を行う。したがって、ユーザは自ら、出力された復元誤差REに基づいて、入力画像PIが正常画像であるか否かの判定を行う必要がなく、容易に入力画像PIが正常であるか否かを知ることができる。
【0074】
(変形例1)
例えば、上記実施形態に記載のネットワークに入力されるデータは単一の形式に限定されず、静止画像、動画像、音声、文字、数値およびこれらの組み合わせで構成することが可能である。なお、ネットワークに入力されるデータは、ネットワークが設けられるエッジデバイスに搭載され得る、光センサ、温度計、Global Positioning System(GPS)計測器、角速度計測器、風速計などの物理量測定器における測定結果を組み合わせても良い。また、周辺機器から有線または無線通信経由で受信する基地局情報、車両・船舶等の情報、天候情報、混雑状況に関する情報などの周辺情報や金融情報や個人情報等の異なる情報を組み合わせてもよい。
【0075】
(変形例2)
ネットワークが設けられるエッジデバイスは、バッテリー等で駆動する携帯電話などの通信機器、パーソナルコンピュータなどのスマートデバイス、デジタルカメラ、ゲーム機器、ロボット製品などのモバイル機器を想定するが、これに限られるものではない。Power on Ethernet(PoE)などでの供給可能なピーク電力制限、製品発熱の低減または長時間駆動の要請が高い製品に利用することでも他の先行例にない効果を得ることができる。例えば、車両や船舶などに搭載される車載カメラや、公共施設や路上などに設けられる監視カメラ等に適用することで長時間の撮影を実現できるだけでなく、軽量化や高耐久化にも寄与する。また、テレビやディスプレイ等の表示デバイス、医療カメラや手術ロボット等の医療機器、製造現場や建築現場で使用される作業ロボットなどにも適用することで同様の効果を奏することができる。
【0076】
上述した実施形態におけるプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【0077】
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。また、本発明はこうした実施形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【0078】
5…情報処理装置、10、10A、10B、10C…演算部、20…特徴量抽出部、310…辞書情報記憶部、110…特徴量取得部、120…辞書情報取得部、130、130A…復元誤差算出部、131…特徴量毎復元誤差算出部、132…合計値算出部、140…出力部、150…選択部、160…判定部、300…記憶部、310…辞書情報記憶部、320…ROM、330…RAM、410…操作入力部、420…表示部、PI…入力画像、RE…復元誤差