(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-25
(45)【発行日】2023-11-02
(54)【発明の名称】複数の機械学習プログラムを使用して画像の異常を検出するための方法およびシステム
(51)【国際特許分類】
G06T 7/00 20170101AFI20231026BHJP
G06N 20/00 20190101ALI20231026BHJP
【FI】
G06T7/00 350C
G06N20/00
【外国語出願】
(21)【出願番号】P 2022002275
(22)【出願日】2022-01-11
【審査請求日】2022-03-03
(32)【優先日】2021-09-06
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】510275297
【氏名又は名称】エムファウテック ソフトウェア ゲゼルシャフト ミット ベシュレンクテル ハフツング
【氏名又は名称原語表記】MVTec Software GmbH
【住所又は居所原語表記】ARNULFSTRASSE 205, 80634 MUENCHEN, GERMANY
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】パウル・ベルクマン
(72)【発明者】
【氏名】キリアン・バッツナー
(72)【発明者】
【氏名】ミヒャエル・ファウザー
(72)【発明者】
【氏名】ダービト・サットレッガー
【審査官】佐藤 実
(56)【参考文献】
【文献】特開2021-012595(JP,A)
【文献】米国特許出願公開第2020/076842(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
エンコーダプログラムと、デコーダプログラムと、回帰プログラムとを含む少なくとも1つの機械学習プログラムを使用してデジタル画像の異常を検出するためのコンピュータ実装方法であって、
(a)1つまたは複数の訓練画像を取得するステップと、
(b)少なくとも1つの訓練反復を実行することによって前記訓練画像上で前記方法を訓練するステップであって、各訓練反復は、
(b1)前記訓練画像から1つまたは複数の画像を選択するステップと、
(b2)選択された訓練画像ごとに複数の性能スコアを計算するステップであって、
(b21)前記選択された訓練画像
に対する前記デコーダプログラムの所望の出力値の集合であるターゲット表現を取得するステップと、
(b22)前記選択された訓練画像に
前記エンコーダプログラムを適用することによって、前記選択された訓練画像よりも低次元の中間訓練表現を計算するように前記エンコーダプログラムに命令するステップと、
(b23)前記中間訓練表現に
前記デコーダプログラムを適用することによって前記中間訓練表現よりも高次元の訓練復号出力を計算するように前記デコーダプログラムに命令するステップと、
(b24)前記訓練復号出力および前記選択された訓練画像の前記ターゲット表現に基づいて1つまたは複数の復号性能スコアを計算するステップと、
(b25)前記選択された訓練画像に
前記回帰プログラムを適用することによって訓練回帰出力を計算するように前記回帰プログラムに命令するステップと、
(b26)前記選択された訓練画像の前記訓練回帰出力および前記訓練復号出力に基づいて1つまたは複数の回帰性能スコアを計算するステップと、を備える、計算するステップと、
(b3)前記機械学習プログラム
のパラメータを調整して、前記選択された訓練画像の前記性能スコアを改善するステップと、を備える、訓練するステップと、
(c)1つまたは複数の探索画像を取得するステップと、
(d)各探索画像について、前記探索画像における異常を検出するステップであって、
(d1)前記エンコーダプログラムを前記探索画像に適用することによって、前記探索画像よりも低次元の中間探索表現を計算するように前記エンコーダプログラムに命令するステップと、
(d2)前記デコーダプログラムを前記中間探索表現に適用することによって、前記中間探索表現よりも高次元の探索復号出力を計算するように前記デコーダプログラムに命令するステップと、
(d3)前記回帰プログラムを前記探索画像に適用することによって探索回帰出力を計算するように前記回帰プログラムに命令するステップと、
(d4)前記探索画像の前記探索回帰出力および前記探索復号出力に探索類似度基準を適用して、1つまたは複数の探索類似度値を計算するステップと、
(d5)前記探索類似度値に基づいて前記探索画像の1つまたは複数の異常スコアを計算するステップと、を備える、検出するステップと、を備える、方法。
【請求項2】
ステップ(d5)で計算された前記異常スコアは、少なくとも1つの第2の異常検出プログラムによって計算された1つまたは複数の第2の異常スコアと組み合わされ、異常の存在は、ステップ(d5)で計算された前記異常スコアの値の一部またはすべてと前記第2の異常スコアの値の一部またはすべてとに基づいて決定される、請求項1に記載の方法。
【請求項3】
第1の異常検出プログラムのみによって計算された、または少なくとも1つの第2の異常検出プログラムによって計算された1つまたは複数の第2の異常スコアと組み合わされた前記計算された異常スコアの一部またはすべては空間配置され、前記探索画像の一部またはすべてについて1つまたは複数の異常マップを形成する、請求項1または2に記載の方法。
【請求項4】
ステップ(d5)で計算された前記異常スコアの一部またはすべては空間配置され、前記探索画像の一部またはすべてについて1つまたは複数の第1の異常マップを形成し、前記第2の異常スコアの一部またはすべては空間配置され、前記探索画像の一部またはすべてについて1つまたは複数の第2の異常マップを形成し、前記第1の異常マップの一部またはすべては、前記第2の異常マップと組み合わされ、前記方法は、
(e1)ステップ(d5)の1つまたは複数の異常マップを
前記第1の異常マップとして取得するステップと、
(e2)前記探索画像に少なくとも1つの第2の異常検出プログラムを適用することによって
前記第2の異常マップを計算するステップと、
(e3)前記第1および第2の異常マップに1つまたは複数の変換を適用するステップと、
(e4)前記第1および第2の変換された異常マップの一部またはすべてを合計して、少なくとも1つの合計された異常マップを形成するステップであって、前記合計された異常マップ内の少なくとも1つの異常スコアは、前記第1および第2の変換された異常マップからの異常スコアの前記合計である、ステップと、を備える、請求項
2に記載の方法。
【請求項5】
少なくとも1つの訓練画像について、前記ターゲット表現は、ニューラルネットワークを前記訓練画像に適用するときの前記ニューラルネットワーク
の出力値の一部またはすべてを含む、請求項1~4のいずれか1項に記載の方法。
【請求項6】
少なくとも1つの訓練画像について、前記ターゲット表現は、前記訓練画像
の値の一部またはすべてを含む、請求項1~5のいずれか1項に記載の方法。
【請求項7】
少なくとも1つの訓練画像について、前記ターゲット表現は1つまたは複数の注釈値を含む、請求項1~6のいずれか1項に記載の方法。
【請求項8】
前記エンコーダプログラム、デコーダプログラム、および回帰プログラムのうちの少なくとも1つは畳み込みニューラルネットワークである、請求項1~7のいずれか1項に記載の方法。
【請求項9】
少なくとも1つの訓練画像について、前記復号性能スコアの少なくとも1つの前記計算は、前記ターゲット表現と前記訓練復号出力
の値の一部またはすべてとの要素ごとの比較を含む、請求項1~8のいずれか1項に記載の方法。
【請求項10】
少なくとも1つの訓練画像について、前記復号性能スコアのうちの1つは、前記取得されたターゲット表現と前記訓練復号出力
の値の一部またはすべてとの間の二乗ユークリッド距離である、請求項9に記載の方法。
【請求項11】
少なくとも1つの訓練画像について、前記回帰性能スコアの少なくとも1つの前記計算は、前記訓練回帰出力と前記訓練復号出力
の値の一部またはすべてとの要素ごとの比較を含む、請求項1~10のいずれか1項に記載の方法。
【請求項12】
少なくとも1つの訓練画像について、前記回帰性能スコアの1つは、前記訓練回帰出力と前記訓練復号出力
の値の一部またはすべてとの間
の二乗ユークリッド距離である、請求項11に記載の方法。
【請求項13】
少なくとも1つの探索画像について、前記探索類似度基準は、前記探索回帰出力と前記探索復号出力
の値の一部またはすべてとの間の1つまたは複数の二乗画素位置ユークリッド距離を計算する、請求項1~12のいずれか1項に記載の方法。
【請求項14】
前記エンコーダプログラムおよび前記デコーダプログラムの一方または両方は、
最初のステップ(b3)において前記回帰プログラムの
一部またはすべてのパラメータ
を調整
する前に1つまたは複数の訓練画像上で訓練される、請求項1~13のいずれか1項に記載の方法。
【請求項15】
前記訓練画像のうちの少なくとも1つは、少なくとも1つの拡張方法を使用して拡張され、前記エンコーダプログラムおよび前記デコーダプログラムのうちの少なくとも1つは、前記拡張された訓練画像のうちの少なくとも1つに適用される、請求項1~14のいずれか1項に記載の方法。
【請求項16】
プロセッサを備えるシステムであって、前記プロセッサは、請求項1~15のいずれか1項に記載の方法によるデジタル画像の異常を検出するための前記コンピュータ実装方法を実行するように構成されている、システム。
【発明の詳細な説明】
【技術分野】
【0001】
発明の分野
本発明は、一般に、マシンビジョンシステムに関し、より詳細には、撮像センサによって観察されるシーンの異常の検出に関する。
【背景技術】
【0002】
発明の背景
画像データにおける異常の検出および位置特定は、多くのマシンビジョンアプリケーションにおいて重要なタスクである。一般的な手法は、画像内の異常のラベルまたは注釈の形態で提供される、人間の監督によって画像上で機械学習を訓練することによって、モデルと呼ばれる予測プログラムを作成することである。しかしながら、異常画像は、モデル作成中に利用できないことが多く、実際に発生し得るすべての可能な異常タイプを決定することは困難である。したがって、異常が注釈付けされるかまたは訓練画像に存在することを必要としない異常検出方法が望ましい。例えば、製造業界では、光学検査タスクは、異常検出モデルを訓練するために使用することができる欠陥サンプルの網羅的なセットがないことが多い。これは、現代の製造機械のエラー率が低いこと、および製造中に発生する可能性のある欠陥の多様性が高いことに起因する。本明細書は、画像内の異常を検出するための方法を記載している。前記方法は、モデル作成のために異常に注釈を付けたり訓練画像に存在させたりする必要がない。
【0003】
画像内の異常を検出するための方法の状況は多様であり、問題に対処するために多くの手法が導入されている。Ehretら(EHRET、T.らによる「Image Anomalies:A Review and Synthesis of Detection Methods」、Journal of Mathematical Imaging and Vision、第61巻、第5版、2019年、710-743ページ)は、既存の研究を包括的に概説している。多くの方法は、画像内の複雑なパターンを記述する特徴と呼ばれる識別表現を学習する能力のためにニューラルネットワークを使用する。以下の段落では、ニューラルネットワークに基づく多くの方法が分類されるカテゴリについて説明する。
【発明の概要】
【発明が解決しようとする課題】
【0004】
オートエンコーダベースの方法は、低次元のボトルネックを介して入力画像を再構成しようと試みる。この例は、Venkataramananら(VENKATARAMANAN、S.らによる「Attention Guided Anomaly Localization in Images、Computer Vision-ECCV 2020」、Springer International Publishing、Cham、2020年、485-503ページ)およびLiuら(LIU、W.らによる「Towards Visually Explaining Variational Autoencoders」、Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition(CVPR)、2020年、8642-8651ページ)によって提案された方法である。オートエンコーダベースの手法は、異常画像の再構成が異常のない画像の再構成よりも正確ではないという仮定に依存することが多い。したがって、異常を探す新しい画像について、前記入力画像をその再構成物と比較することによって異常マップを導出することができる。残念なことに、オートエンコーダは、ぼやけた不正確な再構成物を生成する傾向がある。Bergmannら(BERGMANN、P.らによる「Improving Unsupervised Defect Segmentation by Applying Structural Similarity to Autoencoder」、14 th International Joint Conference on Computer Vision、Imaging and Computer Graphics Theory and Applications、第5巻、VISAPP、Scitepress、Setubal、2019年、372-380ページ)は、これが偽陽性の増加、すなわち再構成誤差に起因して高い異常スコアを得る、異常のない画素の増加をもたらすことを観察している。オートエンコーダはまた、入力データの一部を単純にコピーすることを学習することができ、これにより、異常領域および異常のない領域を再構成することができる。これは、異常画素が正確な再構成に起因して低い異常スコアを得る場合、偽陰性の増加をもたらす。この挙動を阻止するために、Parkら(PARK、H.らによる「Learning Memory-Guided Normality for Anomaly Detection」、Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition(CVPR)、2020年、14372-14381ページ)は、統合メモリモジュールを備えたオートエンコーダを使用するMNAD法が紹介している。それは、推論中の再構成のために再利用される必要がある多くの潜在的な特徴を訓練中に選択する。これは役立つが、それらの方法は依然としてぼやけた再構成物に悩まされている。
【0005】
オートエンコーダと同様に、敵対的生成ネットワーク(GAN)に基づく方法は、生成ネットワークの入力として適切な潜在的表現を見つけることによって画像を再構成しようと試みる。Schleglら(SCHLEGL、T.らによる「F-AnoGAN:Fast Unsupervised Anomaly Detection with Generative Adversarial Networks」、Medical Image Analysis、第54巻、2019年、30-44ページ)は、訓練データを最もよく再構成する潜在ベクトルを出力するようにエンコーダネットワークを訓練するf-AnoGANを提案している。入力画像と再構成との画素ごとの比較は、異常マップを生成する。Gulrajaniら(GULRAJANI、I.らによる「Improved Training of Wasserstein GANs」、Advances in Neural Information Processing Systems、第30巻、Curran Associates、Inc.、2017年)は、GANベースの方法を高解像度画像上で訓練することは困難であることを観察している。したがって、f-AnoGANは、64x64画素の解像度で画像を処理し、非常に粗い異常マップをもたらす。
【0006】
いくつかの既存の最先端の異常検出方法は、事前訓練済ネットワークから抽出されたパッチ特徴の分布をモデル化する。この例は、Bergmannら(BERGMANN、P.らによる「Uninformed Students:Student-Teacher Anomaly Detection With Discriminative Latent Embeddings」、Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition(CVPR)、2020年、4183-4192ページ)、Burlinaら(BURLINA、P.らによる「Where’s Wally Now?Deep Generative Discriminative Embeddings for Novelty Detection」、Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition(CVPR)、2019年、11507-11516ページ)、ならびにCohenおよびHoshen(COHEN、N.およびHOSHEN、Y.による「Y.Sub-Image Anomaly Detection with Deep Pyramid Correspondences、arXiv予稿集、arXiv:2005.02357v1、2020年)によって提案された方法である。
【0007】
Burlinaら(BURLINA、P.らによる「Where’s Wally Now? Deep Generative Discriminative Embeddings for Novelty Detection」、Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition(CVPR)、2019年、11507-11516ページ)は、事前訓練済ネットワークの特徴を活用する方法が、ゼロから訓練されたオートエンコーダまたはGANベースの方法よりも優れている傾向があることを観察している。それらは、事前訓練済ネットワークの空間分解された活性化層から得られたパッチ特徴の分布をモデル化することによってこれを達成する。
【0008】
CohenおよびHoshen(COHEN、N.およびHOSHENによる「Y.Sub-Image Anomaly Detection with Deep Pyramid Correspondences、arXiv予稿集、arXiv:2005.02357v1、2020年)は、異常のない訓練データから抽出された特徴マップ内の行-列座標ごとに別個のk-NN分類器を適合させている。これにより、アルゴリズムは計算コストが高くなり、多くの実用的な用途に使用することができない。
【0009】
Bergmannら(BERGMANN、P.らによる「Uninformed Students:Student-Teacher Anomaly Detection With Discriminative Latent Embeddings」、Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition(CVPR)、2020年、4183-4192ページ)は、生徒ネットワークのアンサンブルが、異常のないデータ上の事前訓練済教師ネットワークのパッチ記述子と一致する生徒-教師法を提案している。異常は、生徒の予測における回帰誤差の増加および予測分散の増加によって検出される。使用されるネットワークは、限定された受容野を示し、これにより、この方法が最大受容野の範囲外にある異常を検出することが防止される。しかしながら、多くの種類の異常は、画像の小さなパッチではなく、画像全体を分析することによってのみ検出することができる。
【0010】
上記の理由から、限られた受容野またはぼやけた再構成物によって制限されることなく、画像の異常を効率的に検出することができる方法が必要とされている。
【課題を解決するための手段】
【0011】
発明の概要
本発明は、特許請求の範囲において特定される。
【0012】
本発明は、画像データの異常を検出する方法を提供する。典型的な用途では、画像は、例えば、カラーまたはグレースケールカメラを使用して取得され、画像は、例えば、異常が検出されるであろう物体またはテクスチャを示す。次いで、前記画像における異常の存在が、提示された方法を使用して決定される。提示された方法による結果として生じる異常の検出およびオプションの位置特定は、例えば、物体の表面上のエラーを検出するため、または製造された製品の品質を決定するために使用される。
【0013】
提示された方法は、以前の方法に比べていくつかの利点を有する。この方法は、入力画像全体を記述する可能性がある表現を学習するので、異常の検出は受容野によって限定されない。さらに、好ましい実施形態では、異常は、前記入力画像内の再構成画素の代わりに、入力画像内の領域の再構成特徴を比較することによって、学習可能な特徴空間内で検出される。これにより、偽陽性、すなわち、異常のない画素を不正確な再構成に起因して異常であると識別することが回避される。
【0014】
本方法は2つの段階を備える。訓練段階では、ユーザは少なくとも1つの訓練画像を提供する必要がある。各訓練画像について、ターゲット表現が取得される。前記ターゲット表現は、様々なソースに由来し得る。例えば、訓練画像は、それぞれの訓練画像に適用された事前訓練済ニューラルネットワークから抽出された特徴マップを含むことができる。訓練画像にターゲット表現が利用できない場合、訓練画像自体がターゲット表現として使用される。訓練画像およびそれらのターゲット表現を使用して、3つの機械学習プログラムが訓練段階で訓練される。エンコーダプログラムおよびデコーダプログラムは、各訓練画像のターゲット表現を予測するように訓練される。前記エンコーダプログラムは、それぞれの訓練画像よりも低次元の中間訓練表現を出力するように学習する。次いで、前記中間訓練表現をその入力として使用する前記デコーダプログラムは、前記それぞれのターゲット表現を予測するように訓練される。訓練中の第3の機械学習プログラムは回帰プログラムである。前記回帰プログラムはまた、その入力としてそれぞれの訓練画像を受信し、前記デコーダプログラムの出力を予測するように訓練される。
【0015】
探索段階では、ユーザは少なくとも1つの探索画像を提供する。各探索画像において、本方法は異常を探索する。このために、本方法は、前記探索画像自体のみを必要とする。探索段階では、ターゲット表現は必要とされない。前記探索画像は、中間探索表現を計算する前記エンコーダプログラムへの入力として与えられる。前記中間探索表現には、前記デコーダプログラムが適用されて、それぞれの探索画像の探索復号出力が計算される。前記各探索画像を入力として、前記回帰プログラムは探索回帰出力を出力する。最後に、前記探索復号出力を前記探索回帰出力と比較することによって、異常スコアが計算される。前記異常スコアの数および構成に応じて、本方法は、前記探索画像内の異常の位置特定を可能にすることができる。例えば、前記探索復号出力と前記探索回帰出力との要素ごとの比較は、空間分解された異常マップを生成することができる。位置特定なしの検出は、例えば、前記探索復号出力の平均値と前記探索回帰出力の平均値との間の差を計算し、続いて差の閾値処理を行って異常検出のバイナリ結果を決定することによって実行することができる。
【0016】
探索段階では、回帰プログラムの使用には2つの利点がある。第一に、ターゲット表現ではなく、前記デコーダプログラムの出力を前記回帰プログラムの出力と比較することによって異常が検出されるため、ターゲット表現の必要性がなくなる。探索段階において、前記エンコーダプログラム、前記デコーダプログラム、および前記回帰プログラムは、探索画像に対してのみ動作する。第二に、前記回帰プログラムを使用することにより、前記デコーダプログラムの不正確な予測によって引き起こされる偽陽性が回避される。例えば、前記ターゲット表現が前記訓練画像自体または事前訓練済ニューラルネットワークからの特徴からなる場合、前記デコーダプログラムが前記低次元中間表現によって与えられるボトルネックを介して前記ターゲット表現を正確に再構成することは困難であり得る。前記回帰プログラムは、例えば、前記デコーダプログラムがぼやけた再構成物を計算する場合にはぼやけた再構成物も生成することによって、同様に不正確な特徴マップを出力するように学習することによってこれを補償することができる。これは、不正確な再構成物を入力画像と比較することによって引き起こされる偽陽性に悩まされるオートエンコーダの重要な欠点を改善する。
【0017】
本開示は、少なくとも1つの機械学習プログラムを使用してデジタル画像の異常を検出するためのコンピュータ実装方法に関し、本方法は、(a)1つまたは複数の訓練画像を取得するステップと、(b)少なくとも1つの訓練反復を実行することによって前記訓練画像上で前記方法を訓練するステップであって、各訓練反復は、(b1)前記訓練画像から1つまたは複数の画像を選択するステップと、(b2)選択された訓練画像ごとに複数の性能スコアを計算するステップであって、(b21)前記選択された訓練画像のターゲット表現を取得するステップと、(b22)前記選択された訓練画像にエンコーダプログラムを適用することによって、前記選択された訓練画像よりも低次元の中間訓練表現を計算するように前記エンコーダプログラムに命令するステップと、(b23)前記中間訓練表現にデコーダプログラムを適用することによって前記中間訓練表現よりも高次元の訓練復号出力を計算するように前記デコーダプログラムに命令するステップと、(b24)前記訓練復号出力および前記選択された訓練画像の前記ターゲット表現に基づいて1つまたは複数の復号性能スコアを計算するステップと、(b25)前記選択された訓練画像に回帰プログラムを適用することによって訓練回帰出力を計算するように前記回帰プログラムに命令するステップと、(b26)前記選択された訓練画像の前記訓練回帰出力および前記訓練復号出力に基づいて1つまたは複数の回帰性能スコアを計算するステップと、を備える、計算するステップと、(b3)前記機械学習プログラムのパラメータを調整して、前記選択された訓練画像の前記性能スコアを改善するステップと、を備える、訓練するステップと、(c)1つまたは複数の探索画像を取得するステップと、(d)各探索画像について、前記探索画像における異常を検出するステップであって、(d1)前記エンコーダプログラムを前記探索画像に適用することによって、前記探索画像よりも低次元の中間探索表現を計算するように前記エンコーダプログラムに命令するステップと、(d2)前記デコーダプログラムを前記中間探索表現に適用することによって、前記中間探索表現よりも高次元の探索復号出力を計算するように前記デコーダプログラムに命令するステップと、(d3)前記回帰プログラムを前記探索画像に適用することによって探索回帰出力を計算するように前記回帰プログラムに命令するステップと、(d4)前記探索画像の前記探索回帰出力および前記探索復号出力に探索類似度基準を適用して、1つまたは複数の探索類似度値を計算するステップと、(d5)前記探索類似度値に基づいて前記探索画像の1つまたは複数の異常スコアを計算するステップと、を備える、検出するステップと、を備える。
【0018】
様々な実施形態は、好ましくは、以下の特徴を実装することができる。
好ましい実施形態によれば、ステップ(d5)で計算された前記異常スコアは、少なくとも1つの第2の異常検出プログラムによって計算された1つまたは複数の第2の異常スコアと組み合わされ、異常の存在は、ステップ(d5)で計算された前記異常スコアの値の一部またはすべてと前記第2の異常スコアの値の一部またはすべてとに基づいて決定される。
【0019】
好ましい実施形態によれば、第1の異常検出プログラムのみによって計算された、または少なくとも1つの第2の異常検出プログラムによって計算された1つまたは複数の第2の異常スコアと組み合わされた前記計算された異常スコアの一部またはすべては空間配置され、前記探索画像の一部またはすべてについて1つまたは複数の異常マップを形成する。
【0020】
好ましい実施形態によれば、前記異常マップの一部またはすべては、少なくとも1つの第2の異常検出プログラムによって計算された1つまたは複数の異常マップと組み合わされ、(e1)ステップ(d5)の1つまたは複数の異常マップを第1の異常マップとして取得するステップと、(e2)前記探索画像に少なくとも1つの第2の異常検出プログラムを適用することによって1つまたは複数の第2の異常マップを計算するステップと、(e3)前記第1および第2の異常マップに1つまたは複数の変換を適用するステップと、(e4)前記第1および第2の変換された異常マップの一部またはすべてを合計して、少なくとも1つの合計された異常マップを形成するステップであって、前記合計された異常マップ内の少なくとも1つの異常スコアは、前記第1および第2の変換された異常マップからの異常スコアの合計である、ステップと、を備える。
【0021】
好ましい実施形態によれば、少なくとも1つの訓練画像について、前記ターゲット表現は、ニューラルネットワークを前記訓練画像に適用するときの前記ニューラルネットワークの出力値の一部またはすべてを含む。
【0022】
好ましい実施形態によれば、少なくとも1つの訓練画像について、前記ターゲット表現は、前記訓練画像の値の一部またはすべてを含む。
【0023】
好ましい実施形態によれば、少なくとも1つの訓練画像について、前記ターゲット表現は、1つまたは複数の注釈値を含む。
【0024】
好ましい実施形態によれば、前記エンコーダプログラム、デコーダプログラム、および回帰プログラムのうちの少なくとも1つは、畳み込みニューラルネットワークである。
【0025】
好ましい実施形態によれば、少なくとも1つの訓練画像について、前記復号性能スコアの少なくとも1つの計算は、前記ターゲット表現と前記訓練復号出力の値の一部またはすべてとの要素ごとの比較を含む。
【0026】
好ましい実施形態によれば、少なくとも1つの訓練画像について、前記回帰性能スコアの少なくとも1つの計算は、前記訓練回帰出力と前記訓練復号出力の値の一部またはすべてとの要素ごとの比較を含む。
【0027】
好ましい実施形態によれば、少なくとも1つの訓練画像について、前記復号性能スコアのうちの1つは、前記取得されたターゲット表現と前記訓練復号出力の値の一部またはすべてとの間の二乗ユークリッド距離である。
【0028】
好ましい実施形態によれば、少なくとも1つの訓練画像について、前記回帰性能スコアの1つは、前記訓練回帰出力と前記訓練復号出力の値の一部またはすべてとの間の二乗ユークリッド距離である。
【0029】
好ましい実施形態によれば、少なくとも1つの探索画像について、前記探索類似度基準は、前記探索回帰出力と前記探索復号出力の値の一部またはすべてとの間の1つまたは複数の二乗画素位置ユークリッド距離を計算する。
【0030】
好ましい実施形態によれば、前記エンコーダプログラムおよび前記デコーダプログラムの一方または両方は、前記回帰プログラムの第1のパラメータ調整の前に1つまたは複数の訓練画像上で訓練される。
【0031】
好ましい実施形態によれば、前記訓練画像のうちの少なくとも1つは、少なくとも1つの拡張方法を使用して拡張され、前記エンコーダプログラムおよび前記デコーダプログラムのうちの少なくとも1つは、前記拡張された訓練画像のうちの少なくとも1つに適用される。
【0032】
本開示はまた、プロセッサを備えるシステムに関し、プロセッサは、上述の実施形態のいずれか1つによるデジタル画像の異常を検出するためのコンピュータ実装方法を実行するように構成される。
【0033】
本開示の様々な例示的な実施形態は、添付の図面と併せて以下の説明を参照することによって容易に明らかになる特徴を提供することを対象とする。様々な実施形態によれば、例示的なシステム、方法、およびデバイスが本明細書に開示される。しかしながら、これらの実施形態は限定ではなく例として提示されていることが理解され、本開示を読んだ当業者には、開示された実施形態に対する様々な修正が本開示の範囲内に留まりながら行われ得ることが明らかであろう。
【0034】
したがって、本開示は、本明細書に記載および図示された例示的な実施形態および用途に限定されない。さらに、本明細書に開示される方法におけるステップの特定の順序および/または階層は、単なる例示的な手法である。設計の選好に基づいて、開示された方法またはプロセスのステップの特定の順序または階層は、本開示の範囲内に留まりながら再配置することができる。したがって、当業者であれば、本明細書に開示される方法および技術は、サンプルの順序で様々なステップまたは動作を提示し、本開示は、特に明記されない限り、提示される特定の順序または階層に限定されないことを理解するであろう。
【0035】
以下、本開示の例示的な実施形態について説明する。記載された実施形態のいずれか1つのいくつかの態様は、特に明記されない限りまたは明らかでない限り、いくつかの他の実施形態にも見られ得ることに留意されたい。しかしながら、了解度を高めるために、各態様は、最初に言及されたときにのみ詳細に説明され、同じ態様の繰り返しの説明は省略される。
【0036】
図面の簡単な説明
本発明は、添付の図面と併せて、以下の詳細な説明からより完全に理解されるであろう。
【図面の簡単な説明】
【0037】
【
図1】本開示の一実施形態による、例示的な異常検出プロセスのフロー図である。
【
図2】本開示の一実施形態による、1つの訓練反復を実行するための例示的なプロセスのフロー図である。
【
図3】本開示の一実施形態による、所与の選択された訓練画像についての性能スコアを計算するための例示的なプロセスのフロー図である。
【
図4】本開示の一実施形態による、所与の探索画像の1つまたは複数の異常スコアを計算するための例示的な探索反復プロセスのフロー図である。
【
図5】本開示の一実施形態による特徴マップの例示的な集合を示す。
【発明を実施するための形態】
【0038】
各フロー図において、丸みを帯びた角のない長方形、例えば
図1の101は、プロセスのステップを示す。丸みを帯びた角を有さず、破線の境界を有する長方形、例えば
図2の202は、プロセスの任意選択のステップを示す。任意のステップはとばしてもよい。丸みを帯びた角を有する長方形、例えば
図3の301は、プロセスの前記ステップの入力および出力を示す。
【0039】
矢印は、ステップ間の遷移を示す。複数の矢印が丸みを帯びた角のない長方形の底部、例えば
図1の200の底部で始まる場合、それぞれの遷移のうちの1つが実行される。
【0040】
「開始」のラベルが付された円は、プロセスの入口点を示す。「終了」のラベルが付された円は、プロセスの終点を示す。ラベル「すべて」が付された円は、入力矢印によって示されるすべての入力遷移が、それぞれのプロセスの開始後に少なくとも1回実行された後にのみ到達する状態を示す。前記状態に達すると、出力矢印によって示されるすべての出力遷移が実行される。前記出力遷移、および各出力遷移に続く一連のステップは、順次、すなわち1つのパスを次々に、あるいは1つまたは複数のコンピュータ上で同時に実行することができる。
【0041】
「ループ反復を開始する」で始まるラベルのボックスは、プログラムループの開始を示す。前記ループは、「ループ反復を終了する」で始まるラベルのボックスで終了する。前記2つのボックス間の一連のステップは、前記ループの1回の反復を構成する。前記2つのボックスのラベルは、反復回数を記述する。
図2はプログラムループを含み、ステップ202および300は、選択された訓練画像ごとに実行される反復を構成する。プロセスの遷移のフローにおいてプログラムループの開始ボックスに達した後、前記反復を開始することができる。プログラムループの終了ボックスは、前記反復のすべてが終了した後のプロセスの遷移のフローにおいて到達される。前記反復は、連続的に、すなわち1つのパスを次々に、あるいは1つまたは複数のコンピュータ上で同時に実行することができる。
【0042】
実施形態の詳細な説明
表示および定義
以下のデータはすべて、電子形式、好ましくはデジタル形式で利用可能であると想定される。記載された方法およびアルゴリズムは、電子形態であると考えられ、1つまたは複数の場所の1つまたは複数のコンピュータ上のコンピュータプログラムとして実装される。
【0043】
本明細書では、値は単一のスカラー数を示す。
本明細書では、画像チャネルは、1つまたは複数の値を含む2次元グリッドである。前記2次元グリッドでは、前記値は、1つまたは複数の行および1つまたは複数の列に配置される。前記2つの寸法のうちの第1の寸法は、前記グリッドの高さ、すなわち行の数である。前記2つの寸法のうちの第2の寸法は、前記グリッドの幅、すなわち列の数である。前記2次元グリッド内の各セルは、最大で1つの値を含む。画素位置は、前記2次元グリッド内の行-列座標を指す。画像は、1つまたは複数の画像チャネルを含む。画像の画像チャネルの前記2次元グリッドの値は、前記画像の値と呼ばれる。好ましい実施形態では、画像のすべての画像チャネルは、同じ幅および同じ高さを有する。代替的な実施形態では、画像の少なくとも2つの画像チャネルは、それらの幅またはそれらの高さ、またはその両方に関して異なる。画像のすべての画像チャネルが同じ幅および同じ高さを有する場合、前記幅および前記高さは、それぞれ画像の幅および高さと呼ばれる。画像のすべての画像チャネルが同じ幅および同じ高さを有する場合、前記画像の各画像チャネルは、前記画像の画素位置と呼ばれる画素位置の同じ集合を有する。好ましい実施形態では、すべての画像は、同じ高さ、同じ幅、および同じ数のチャネル、例えば、RGB画像の場合は3つのチャネル、またはグレースケール画像の場合は1つのチャネルを有する。代替的な実施形態では、少なくとも2つの画像は、それらの幅、それらの高さ、およびそれらのチャネルの数の3つの属性のうちの少なくとも1つに関して異なる。好ましい実施形態では、前記2次元グリッドの各セルは、正確に1つの値を含む。代替的な実施形態では、少なくとも1つの画像は、少なくとも1つのセルは値を含まない少なくとも1つのチャネルを有する。簡潔さおよび理解性のために、画像はまた、2D画素グリッド以外の画像データ構造、例えば3Dボクセルグリッドまたは3D点群を指す。
【0044】
本明細書では、異常とは、画像内の1つまたは複数の値の予想範囲からの偏差を指す。異常検出とは、画像に異常が含まれているかどうかを決定するタスクを指す。異常スコアは、画像または画像の値のサブセットにおける異常の存在を示す値である。画像異常スコアは、画像内の異常の存在を示す異常スコアである。領域異常スコアは、画像の領域における異常の存在を示す異常スコアである。探索画像は、異常を探索する画像である。好ましい実施形態では、異常検出を実行するコンピュータプログラムは、所与の各探索画像について画素位置ごとに1つの領域異常スコアを出力する。代替的な実施形態では、前記コンピュータプログラムは、少なくとも1つの画素位置および少なくとも1つの探索画像について、0または複数の領域異常スコアを出力する。代替的な実施形態では、前記コンピュータプログラムは、少なくとも1つの探索画像について、1つまたは複数の領域異常スコアを出力し、各領域異常スコアは、所与の探索画像内の1つまたは複数の位置に対応する。代替的な実施形態では、前記コンピュータプログラムは、少なくとも1つの探索画像について、1つまたは複数の画像異常スコアおよび0または複数の領域異常スコアを出力する。代替的な実施形態では、前記コンピュータプログラムは、以下の3つのタイプの異常スコア、すなわち、所与の探索画像の画像異常スコア、所与の探索画像の各画素位置の領域異常スコア、および所与の探索画像の1つまたは複数の位置に対応する領域異常スコアのうちの少なくとも1つを出力する。さらに、本発明の趣旨から逸脱することなく、前記3つのタイプの異常スコアの各々の2つ以上の異常スコアを返すことができる。
【0045】
本明細書では、異常マップは、異常スコアを含む多次元グリッドである。好ましい実施形態では、前記多次元グリッドは、異常スコアが1つまたは複数の行および1つまたは複数の列に配置された2次元グリッドである。代替的な実施形態では、前記多次元グリッドは、3次元以上に配置された異常スコアを含む。好ましい実施形態では、異常検出を実行するコンピュータプログラムは、1つまたは複数の異常マップの形式ですべての領域異常スコアを生成する。代替的な実施形態では、前記コンピュータプログラムは、異常マップの一部にはならずに、画像の領域における異常の存在を示すいくつかの領域異常スコアを生成する。代替的な実施形態では、前記コンピュータプログラムは、異常マップを生成せず、1つまたは複数の画像異常スコアを出力するだけである。好ましい実施形態では、異常マップの各グリッド位置は、異常スコアを含む。代替的な実施形態では、異常マップの1つまたは複数のグリッド位置は、異常スコアを含まない。
【0046】
本明細書において、機械学習プログラムとは、1つまたは複数の入力値を処理して、パラメータのセットの値に従って1つまたは複数の出力値を生成するコンピュータプログラムを指す。前記入力値は、前記機械学習プログラムの入力と呼ばれる。前記出力値は、前記機械学習プログラムの出力と呼ばれる。パラメータの前記セットは、前記機械学習プログラムのパラメータと呼ばれる1つまたは複数の値を含む。機械学習プログラムを使用して、1つまたは複数のタスクを実行することができる。複数の機械学習プログラムを組み合わせて使用して、1つまたは複数のタスクを実行することができる。提示された方法は、複数の機械学習プログラムを組み合わせて異常検出を実行する。1つまたは複数のタスクに対する1つまたは複数の機械学習プログラムの性能は、1つまたは複数の性能測定値で測定することができる。性能測定値は、本明細書において性能入力値と呼ばれる1つまたは複数の値を処理して、本明細書において性能スコアと呼ばれる1つまたは複数の値を計算するコンピュータプログラムである。前記性能入力値は、それぞれの機械学習プログラムの前記入力値、出力値、およびパラメータの和集合のすべてまたはサブセットを含む。例えば、前記性能入力値は、それぞれの機械学習プログラムのいくつかまたはすべての、すべての出力値、いくつかのパラメータ、および入力値なしからなることができる。前記性能入力値はまた、追加の値、例えば前記入力値の所望の出力値を含んでもよい。Mitchell(MITCHELL、T.M.Machine Learning、McGraw-Hill series in computer science、McGraw-Hill、New York、1997年、第1章)およびGoodfellowら(GOODFELLOW、I.らによる「Deep Learning.MIT Press、2016年、第5章)は、タスクおよび性能測定値の例を伴う機械学習の包括的な定義を提供している。
【0047】
1つまたは複数の所与の値に機械学習プログラムを適用することは、前記所与の値の一部またはすべてを前記機械学習プログラムの前記入力値として使用しながら、前記機械学習プログラムの前記出力値を計算することを指す。したがって、機械学習プログラムが画像に適用されると、前記画像が含む値のすべてまたは一部は前記機械学習プログラムの入力値として使用される。
【0048】
機械学習プログラムの前記出力の次元は、前記出力における出力値の数である。機械学習プログラムの前記入力の次元は、前記入力における入力値の数である。画像の次元は、前記画像を構成する値の数である。値の集合の次元は、前記集合を構成する値の数である。
【0049】
本明細書では、要素ごとの比較は、2つの値の集合の比較を指し、前記集合の各々は同じ数の値を含み、前記2つの集合のうちの第1の集合の各値は、前記2つの集合のうちの第2の集合の値のうちの1つと比較される。
【0050】
本明細書では、値の第1の集合の要素ごとのアフィン変換は、単一のスケーリング値および単一のシフト値によってパラメータ化される前記集合の前記値の変換を指す。要素ごとのアフィン変換の結果は、前記第1の集合と同じ次元、構造、および順序を有する値の第2の集合である。前記第1の集合の各値は、前記第2の集合の正確に1つの値に変換される。前記第1の集合の前記値の前記変換は、前記値と前記スケーリング値との乗算と、それに続く前記乗算の結果への前記シフト値の加算とからなる。
【0051】
本明細書では、ニューラルネットワークは、1つまたは複数の入力値が与えられると、ニューロンと呼ばれる単位の概念的な有向グラフを介して1つまたは複数の出力値を計算する機械学習プログラムを指す。前記概念グラフの構造に応じて、ニューラルネットワークは、各ニューロンをグラフデータ構造内の個々のノードとして実装することなく前記出力値を計算することができる。以下、ニューラルネットワークの概念的な定義について説明する。続いて、各ニューロンをグラフデータ構造内の個々のノードとして実装することを必要としない共通の実装形態の例を示す。
【0052】
概念的には、前記ニューロンは、指向性エッジを介して他のニューロンおよび前記入力値に接続される。各ニューロンは、前記ニューロンの出力と呼ばれる単一の値を計算する。有向エッジ(以後、簡単に「エッジ」と示す)は、そのソースからその宛先に値を送信する。前記ソースは、ニューロンの入力値または前記出力のいずれかである。宛先は常にニューロンである。各ニューロンは、少なくとも1つの入力エッジを有する。ニューロンの前記入力エッジの前記ソースは、0個以上の入力値および0個以上の他のニューロンからなる。ニューロンの前記入力エッジの値は、前記ニューロンの入力値と呼ばれる。ニューロンの前記出力は、前記ニューロンの入力値および前記ニューロンのパラメータのセットの値に従って計算される。例えば、ニューロンの前記出力がその入力値の合計である場合、前記ニューロンの前記パラメータのセットは空のセットであり得る。別の例として、ニューロンの前記出力が第1のパラメータ値と前記ニューロンの入力値との和である場合、前記ニューロンの前記パラメータのセットは前記第1のパラメータ値を含む。別の例として、ニューロンの前記出力がその入力値の重み付き和であり、各入力値が前記和の前に重み付き値と乗算される場合、前記ニューロンのパラメータの前記セットは前記重み付き値を含む。別の例として、1つの入力値を有するニューロンの前記出力が前記入力値に適用される非線形関数である場合、前記ニューロンのパラメータの前記セットは前記非線形関数のパラメータを含む。ニューロンは、前記ニューロンの出力に加算される値を示すバイアス値を有することができる。この場合、前記バイアス値は前記ニューロンのパラメータのうちの1つである。ニューラルネットワークのすべてのニューロンのパラメータは、前記ニューラルネットワークのパラメータと呼ばれる。ニューラルネットワークの出力値は、前記ニューラルネットワーク内の1つまたは複数のニューロンの出力からなる。ニューラルネットワークの出力値は、同じニューラルネットワーク内の別のニューロンの入力値のうちの1つであってもよい。ニューラルネットワークの出力値の集合を、ニューラルネットワークの出力と呼ぶ。1つまたは複数の所与の値にニューラルネットワークを適用することは、前記所与の値を前記ニューラルネットワークの入力値として使用しながら、前記ニューラルネットワークの出力値を計算することを指す。したがって、ニューラルネットワークが画像に適用されると、前記画像が含む値の全部または一部は前記ニューラルネットワークの入力値として使用される。Mitchell(MITCHELL、T.M.Machine Learning、McGraw-Hill series in computer science、McGraw-Hill:New York、1997年、第4章)は、ニューラルネットワークの詳細な説明を提供している。
【0053】
一部のニューラルネットワークでは、前記概念グラフの前記構造は、前記ニューロンの各々をグラフデータ構造内の個々のノードとして実装することなく、一部またはすべてのニューロンの出力を計算することを可能にする。例えば、複数のニューロンが同じ入力値を有し、前記ニューロンの各々の出力がそれぞれのニューロンの入力値の重み付き和である場合、前記ニューロンの出力は単一の行列-ベクトル乗算で計算することができる。前記行列-ベクトル乗算では、ベクトルは前記入力値を含み、行列はニューロンと入力値との各組み合わせに対して1つの重み値を含む。前記マトリックス-ベクトル乗算の結果は、前記ニューロンの各々の出力を含む。別の例では、複数のニューロンが2つの入力値を有し、前記ニューロンの各々の出力がそれぞれのニューロンの前記2つの入力値の和である場合、前記ニューロンの出力は単一のベクトル-ベクトル加算で計算することができる。前記ベクトル-ベクトル加算において、第1のベクトルは、前記ニューロンの各々について前記2つの入力値のうちの第1の値を含み、第2のベクトルは、前記ニューロンの各々について前記2つの入力値のうちの第2の値を含む。
【0054】
様々なタイプのニューラルネットワーク、例えば畳み込みニューラルネットワーク、リカレントニューラルネットワーク、および再帰ニューラルネットワークが存在する。前記タイプのニューラルネットワークは、畳み込みニューラルネットワークの場合の畳み込みなど、それぞれのニューラルネットワークによって実行される演算に基づいて特徴付けられることが多い。前記タイプのニューラルネットワークは、ニューラルネットワーク、例えば畳み込みリカレントニューラルネットワークで組み合わせることができることが多い。Goodfellowら(GOODFELLOW、I.らによる「Deep Learning、MIT Press、2016年、第9章および第10章)は、一般的なタイプのニューラルネットワーク、例えば畳み込みニューラルネットワークおよびリカレントニューラルネットワークの詳細な説明を提供している。
【0055】
本明細書では、類似度基準は、第1の値の集合と第2の値の集合との間の類似度または非類似度を計算するコンピュータプログラムである。類似度基準によって計算された結果は、類似度値と呼ばれる1つまたは複数の値からなる。いくつかの類似度基準について、類似度値の増加は、類似度の増加を示す。他の類似度基準の場合、類似度値の増加は、例えば2つの値間の絶対距離の場合のように、類似度の減少を示す。
【0056】
本明細書では、エンコーダプログラムは機械学習プログラムであり、その出力は前記エンコーダプログラムの入力よりも低次元であり、その出力はデコーダプログラムと呼ばれる別の機械学習プログラムへの入力の一部である。エンコーダプログラムの出力は、中間表現と呼ばれる。デコーダプログラムは機械学習プログラムであり、その入力はエンコーダプログラムの中間表現であり、その出力は前記中間表現よりも高次元である。
【0057】
本明細書では、機械学習プログラムを訓練することは、1つまたは複数の性能測定値によって計算された前記性能スコアを改善するために、前記機械学習プログラムの前記パラメータの一部またはすべてを調整するプロセスを指す。前記訓練は、1つまたは複数の訓練反復200を含む。本明細書では、訓練データセットは、訓練画像と呼ばれる、前記訓練に使用される1つまたは複数の画像のセットを指す。各訓練反復200において、1つまたは複数の訓練画像が選択される。各訓練反復200において、訓練中の前記機械学習プログラムは、前記選択された訓練画像の各々に、または前記選択された訓練画像上でエンコーダプログラムによって計算された前記中間表現に適用される。選択された各訓練画像について、前記性能スコアは、前記選択された訓練画像への前記適用中に、訓練中の前記機械学習プログラムの前記入力値、出力値、およびパラメータに基づいて前記性能測定値によって計算される。前記性能スコアの前記計算が追加の性能入力値を必要とする場合、これらは前記選択された訓練画像に対して指定される必要がある。例えば、第1の機械学習プログラムのタスクが第2の機械学習プログラムの出力を予測することである場合、前記第2の機械学習プログラムの前記出力は、前記第1の機械学習プログラムの訓練中に前記性能入力値に含まれてもよい。各訓練反復200において、訓練中の前記機械学習プログラムの前記パラメータは、前記選択された訓練画像について計算された前記性能スコアを改善するように調整される。前記パラメータのいくつかは、前記調整から除外されてもよい。例えば、単一の入力値に基づいて非線形関数を計算するニューロンのパラメータは、ニューラルネットワークの訓練中に調整から除外されることが多い。
【0058】
本明細書では、事前訓練とは、機械学習プログラムが使用される後続の訓練の前の機械学習プログラムの訓練を指す。訓練データセットおよび使用される性能測定値は、前記事前訓練と前記後続の訓練との間で同じであっても異なっていてもよい。さらに、事前訓練済機械学習プログラムは、前記後続の訓練において訓練される必要はない。例えば、前記後続の訓練では、前記事前訓練済ニューラルネットワークが前記後続の訓練で調整されることなく、機械学習プログラムを訓練して事前訓練済ニューラルネットワークの出力を予測することができる。
【0059】
本明細書では、ターゲット表現は、前記デコーダプログラムの訓練中の選択された訓練画像に対するデコーダプログラムの所望の出力値の集合である。ターゲット表現の次元は、例えば、前記所望の出力値が前記デコーダプログラムの出力のサブセットにのみ対応する場合、前記デコーダプログラムの出力の次元に等しい必要はない。
【0060】
本明細書では、回帰プログラムは、前記回帰プログラムの訓練中の所望の出力値がデコーダプログラムの出力値の一部またはすべてによって与えられる機械学習プログラムである。したがって、回帰プログラムは、デコーダプログラムの出力値の一部またはすべてを予測するように訓練される。回帰プログラムおよびそれぞれのデコーダプログラムが一緒に訓練される場合、前記デコーダプログラムのパラメータは、前記回帰プログラムのタスクを容易にするように、すなわち、前記回帰プログラムを訓練するために使用される性能スコアを改善するように調整され得る。
【0061】
本明細書では、拡張とは、訓練画像または探索画像に適用される変換または一連の変換を指す。画像の拡張は、拡張方法と呼ばれる1つまたは複数の変換の順次適用を含む。いくつかの拡張方法は、例えば複数の訓練画像の要素ごとの平均を計算することによって、複数の画像を一緒に拡張する。
【0062】
本明細書では、特徴マップは、画像の特徴を記述する値を含む2次元グリッドである。前記2次元グリッドでは、前記値は、1つまたは複数の行および1つまたは複数の列に配置される。前記2つの寸法のうちの第1の寸法は、前記グリッドの高さ、すなわち行の数である。前記2つの寸法のうちの第2の寸法は、前記グリッドの幅、すなわち列の数である。特徴マップの集合は、1つまたは複数の特徴マップを含む。
【0063】
図5は、特徴マップ500の例示的な集合を示す。前記例示的な集合は5つの特徴マップを含み、各特徴マップ501は8個の行および10個の列を含む。第1の特徴マップ501の2次元グリッドを破線で示す。これは80個のセル502からなり、その各々は1つの値を含む。
図5に示す特徴マップの集合は一例である。
図5に示される以外の特徴マップでは、セル当たりの行数、列数および値の数は異なっていてもよい。例えば、疎特徴マップでは、1つまたは複数のセルは値を含まない。
図5に示される特徴マップの例示的な集合では、各特徴マップは同じサイズ、すなわち同じ数の行および列を有する。特徴マップの別の集合では、1つまたは複数の特徴マップは、特徴マップの同じ集合内の別の特徴マップとは異なるサイズを有してもよい。さらに、特徴マップの数は異なっていてもよい。
【0064】
訓練段階
本方法は、訓練段階と探索段階の2つの段階を含む。本方法の訓練段階では、エンコーダプログラム、デコーダプログラム、および回帰プログラムが訓練される。探索段階において、前記プログラムは、1つまたは複数の探索反復を実行することによって1つまたは複数の探索画像における異常を検出するために使用される。
【0065】
図1は、例示的な異常検出プロセス100のフロー図である。異常検出プロセス100のステップは、以下のセクションで説明される。
【0066】
本明細書では、方法のプログラムは、前記エンコーダプログラム、前記デコーダプログラムおよび前記回帰プログラムである前記3つのプログラムを指す。好ましい実施形態では、方法のプログラムは畳み込みニューラルネットワークである。代替的な実施形態では、方法のプログラムの少なくとも1つは、畳み込み演算を含まないニューラルネットワークである。代替的な実施形態では、方法のプログラムの少なくとも1つは、ニューラルネットワーク以外の機械学習プログラム、例えばk近傍法プログラム、サポートベクタマシン、または決定木である。さらに、方法のプログラムの一部またはすべては、本発明の精神から逸脱することなく、機械学習プログラムの集合であってもよい。
【0067】
パラメータ初期化101
このセクションでは、パラメータ初期化ステップ101について説明する。
図1に示す異常検出プロセス100では、前記パラメータ初期化ステップ101はステップ101と呼ばれる。第1の訓練反復200の前に、前記エンコーダプログラム、デコーダプログラム、および回帰プログラムのパラメータは初期値に設定される。
【0068】
好ましい実施形態では、前記初期値は、それぞれの機械学習プログラムによって使用される機械学習方法の仕様に従って設定される。例えば、ニューラルネットワークでは、ニューロンのバイアス値は通常、最初は0に設定される。別の例として、ニューラルネットワークでは、出力計算が重み付き和を含むニューロンによって使用される重み値は、特定の確率分布、例えば正規分布の仕様に従って擬似乱数生成器プログラムによって一般に初期化される。代替的な実施形態では、前記初期値の一部またはすべては、1つまたは複数の機械学習プログラムを事前訓練することによって得られる。例えば、前記エンコーダプログラムのパラメータは、別個の訓練データセットからの画像を分類するように訓練された機械学習プログラムのパラメータの一部またはすべてを用いて初期化することができる。
【0069】
訓練画像取得102
このセクションでは、訓練画像取得ステップ102について説明する。
図1に示す異常検出プロセス100では、前記訓練画像取得ステップはステップ102と呼ばれる。第1の訓練反復200の前に、1つまたは複数の訓練画像が取得される。
【0070】
好ましい実施形態では、すべての訓練画像は、第1の訓練反復の前に取得される。代替的な実施形態では、新しい訓練画像が取得され、訓練反復中または訓練反復後にすべての訓練画像の集合に追加される。
【0071】
好ましい実施形態では、すべての訓練画像は、2Dグレースケールまたは2Dカラー画像である。代替的な実施形態では、前記訓練画像の一部またはすべては、例えばハイパースペクトル撮像センサまたは深度カメラから得られた他のセンサデータを含む。代替的な実施形態では、前記訓練画像の一部またはすべては、3D画像、例えば3D点群または3Dボクセルグリッドである。
【0072】
好ましい実施形態では、すべての訓練画像は、同じ画像チャネルの幅、高さ、および数を有する。代替的な実施形態では、前記訓練画像の一部またはすべては、画像チャネルの幅、高さ、または数が異なる。
【0073】
訓練反復200
以下のセクションでは、訓練反復200を実行するためのプロセスについて説明する。
図1に示す異常検出プロセス100において、訓練反復はステップ200と呼ばれる。前記パラメータが初期化され(ステップ101)、1つまたは複数の訓練画像が取得された(ステップ102)後、第1の訓練反復200が開始する。各訓練反復200の後には、別の訓練反復200、探索反復400、あるいは1つまたは複数の追加の訓練画像102の取得のいずれかが続く。
【0074】
図2は、1つの訓練反復200を実行するための例示的なプロセスのフロー図である。各訓練反復200の第1のステップでは、前記訓練画像から1つまたは複数の画像が選択される。
図2に示す訓練反復プロセス200において、訓練画像の前記選択はステップ201と呼ばれる。前記訓練反復プロセス200の後続のステップ202、300および203は、以下のセクションで説明される。
【0075】
訓練画像拡張202
このセクションでは、訓練画像拡張ステップ202について説明する。
図2に示す訓練反復プロセス200において、前記訓練画像拡張ステップはステップ202と呼ばれる。ステップ201で選択された前記訓練画像の各々は、必要に応じて、訓練反復プロセス200の後続のステップで使用される前に拡張されてもよい。
【0076】
好ましい実施形態では、各選択された訓練画像は、ユーザによって指定された1つまたは複数の拡張方法を使用して拡張される。好ましい実施形態では、前記拡張方法の選択肢は、ランダム化された回転、ランダム化された水平方向および垂直方向反転、ならびにそれぞれの訓練画像のランダム化された色の変化である。好ましい実施形態では、前記拡張方法のパラメータ、例えば前記ランダム化された回転の確率および程度は、ユーザによって指定される。代替的な実施形態では、前記拡張方法は、他のまたは追加の変換、例えばそれぞれの訓練画像のランダム化されたサイズ変更またはトリミングを含む。代替的な実施形態では、前記拡張方法の少なくとも1つの使用、パラメータ、またはその両方は、ユーザによって指定されないが、例えばそれぞれの訓練画像の特性に基づいて自動的に決定される。拡張方法の前記自動決定は、例えば、水平対称性について前記訓練画像を試験し、それに基づいて各訓練画像にランダム化された水平方向反転を適用することを含むことができる。代替的な実施形態では、前記拡張方法の少なくとも1つは、例えば複数の訓練画像の要素ごとの平均を計算することによって、複数の訓練画像を一緒に拡張する。代替的な実施形態では、前記拡張方法の少なくとも1つは、1つまたは複数の訓練画像の、ランダム化されたものではない固定変換である。
【0077】
好ましい実施形態では、複数の拡張方法が指定される場合、複数の拡張方法が訓練画像に適用される。代替的な実施形態では、複数の拡張方法が指定される場合、訓練画像ごとに1つの拡張方法のみが適用されるか、または拡張方法は適用されない。
【0078】
好ましい実施形態では、前記選択された訓練画像の各々は、1回の訓練反復において、複数の拡張方法を使用して1回拡張される。したがって、前記訓練画像が複数回選択される場合、訓練画像は、複数の訓練反復の過程にわたって複数回拡張され得る。代替的な実施形態では、以前の訓練反復で選択された少なくとも1つの選択された訓練画像について、前記以前の訓練反復からの拡張画像が再利用される。代替的な実施形態では、前記選択された訓練画像の少なくとも1つは、1回の訓練反復において拡張されないまたは複数回拡張されない。
【0079】
好ましい実施形態では、各選択された訓練画像は、訓練反復プロセス200の後続のステップで使用される前に、そのそれぞれの拡張画像によって置き換えられる。代替的な実施形態では、少なくとも1つの選択された訓練画像は、選択された訓練画像の集合に保持され、前記集合は、前記訓練画像の拡張によって拡張される。
【0080】
好ましい実施形態では、訓練画像拡張ステップ202は、訓練反復200の間に選択された訓練画像に対してのみ実行される。代替的な実施形態では、訓練画像拡張ステップ202は、ステップ102で取得された一部またはすべての訓練画像に対して訓練反復200の前にのみまたは追加的に実行される。代替的な実施形態では、異常検出プロセス100の過程にわたって訓練画像拡張ステップ202は実行されない。
【0081】
性能スコア計算300
以下のセクションでは、訓練反復200において性能スコア300を計算するためのプロセスについて説明する。
図2に示す訓練反復プロセス200では、性能スコアの計算はステップ300と呼ばれる。1つまたは複数の訓練画像が選択され(ステップ201)、必要に応じて拡張された(ステップ202)後、選択された訓練画像ごとに1つまたは複数の性能スコアが計算される。場合によって拡張された選択された訓練画像に対する性能スコア300の前記計算は、前記選択された訓練画像自体のみを必要とし、他の選択された訓練画像に依存しない。したがって、性能スコア300の前記計算は、別の選択された訓練画像の拡張202または性能スコア計算300と同時に実行されてもよい。
【0082】
図3は、所与の選択された訓練画像についての性能スコアを計算するための例示的なプロセスのフロー図である。
図3に示す性能スコア計算プロセス300では、前記選択された訓練画像は301で示される。前記性能スコア計算プロセス300のステップ302、304、306、308、310および312は、以下のセクションで説明される。
【0083】
【0084】
好ましい実施形態では、前記ターゲット表現は、前記選択された訓練画像に前記事前訓練済ニューラルネットワークを適用するときに、画像分類データセット上で事前訓練された、事前訓練済畳み込みニューラルネットワークの出力値の一部またはすべてを含む。代替的な実施形態では、前記事前訓練済ニューラルネットワークは、分類以外のタスク、例えばセマンティックセグメンテーションまたはオブジェクト検出のための画像データセット上で事前訓練される。代替的な実施形態では、前記事前訓練済ニューラルネットワークは、画像以外のデータを含むデータセット上で事前訓練される。代替的な実施形態では、前記事前訓練済ニューラルネットワークは畳み込みニューラルネットワークではない。代替的な実施形態では、前記ターゲット表現は、訓練されていないニューラルネットワークの出力値の一部またはすべてを含む。代替的な実施形態では、前記ターゲット表現は、ニューラルネットワークではない機械学習プログラム、例えばサポートベクタマシンまたは決定木の出力値の一部またはすべてを含む。代替的な実施形態では、前記ターゲット表現は、前記訓練画像の値の一部またはすべてを含む。代替的な実施形態では、前記ターゲット表現は、例えば前記訓練画像の人間の注釈から得られた注釈値を含む。
【0085】
好ましい実施形態では、前記ターゲット表現は、特徴マップの集合に空間配置され、前記特徴マップの各々は、前記訓練画像と同じ幅および高さを有する。代替的な実施形態では、前記特徴マップのうちの少なくとも1つの幅および高さのうちの少なくとも1つは、前記訓練画像のそれぞれの幅および高さとは異なる。代替的な実施形態では、前記ターゲット表現の値の一部またはすべては、3つ以上の次元を有する1つまたは複数の多次元グリッド、例えば、特徴マップの代わりに3次元ボクセルグリッドに空間配置される。代替的な実施形態では、前記ターゲット表現の値の一部またはすべては、グリッドではないデータ構造、例えば3D点群に空間配置される。代替的な実施形態では、前記ターゲット表現は、前記訓練画像内の位置に空間的に対応しない1つまたは複数の値を含む。
【0086】
【0087】
【0088】
好ましい実施形態では、異常検出プロセスの過程で計算されたすべての中間訓練表現は、同じ次元を有する。代替的な実施形態では、前記中間訓練表現の次元の一部またはすべては異なる。
【0089】
【0090】
好ましい実施形態では、前記訓練復号出力は、特徴マップの集合に空間配置され、前記特徴マップの各々は、前記訓練画像と同じ幅および高さを有する。代替的な実施形態では、前記特徴マップのうちの少なくとも1つの幅および高さのうちの少なくとも1つは、前記訓練画像のそれぞれの幅および高さとは異なる。代替的な実施形態では、前記訓練復号出力の値の一部またはすべては、3つ以上の次元を有する1つまたは複数の多次元グリッド、例えば、特徴マップの代わりに3次元ボクセルグリッドに空間配置される。代替的な実施形態では、前記訓練復号出力の値の一部またはすべては、グリッドではないデータ構造、例えば3D点群に空間配置される。代替的な実施形態では、前記訓練復号出力は、前記訓練画像内の位置に空間的に対応しない1つまたは複数の値を含む。
【0091】
【0092】
復号性能基準308
このセクションは、復号性能基準と呼ばれる性能基準を使用して、前記取得されたターゲット表現303を前記訓練復号出力307と比較するステップ308を説明する。前記復号性能基準によって計算された性能スコアは、復号性能スコア309と呼ばれる。
図3に示す性能スコア計算プロセス300では、前記復号性能基準計算はステップ308と呼ばれ、前記復号性能スコアは309で示される。前記復号性能基準308の性能入力値は、前記訓練復号出力値307の一部またはすべてと、前記取得されたターゲット表現値303の一部またはすべてとを含む。
【0093】
好ましい実施形態では、前記復号性能基準は、単一の復号性能スコアを計算する。代替的な実施形態では、前記復号性能基準は、複数の復号性能スコアを計算する。
【0094】
【0095】
【0096】
【0097】
好ましい実施形態では、前記訓練回帰出力は、特徴マップの集合に空間配置され、前記特徴マップの各々は、前記訓練画像と同じ幅および高さを有する。代替的な実施形態では、前記訓練回帰出力の値の一部またはすべては、3つ以上の次元を有する1つまたは複数の多次元グリッド、例えば、特徴マップの代わりに3次元ボクセルグリッドに空間配置される。代替的な実施形態では、前記訓練回帰出力の値の一部またはすべては、グリッドではないデータ構造、例えば3D点群に空間配置される。代替的な実施形態では、前記訓練回帰出力は、前記訓練画像内の位置に空間的に対応しない1つまたは複数の値を含む。
【0098】
【0099】
回帰性能基準312
このセクションでは、回帰性能基準と呼ばれる性能基準を使用して、前記訓練回帰出力311を前記訓練復号出力307と比較するステップ312を説明する。前記回帰性能基準によって計算された性能スコアは、回帰性能スコア313と呼ばれる。
図3に示す性能スコア計算プロセス300では、前記回帰性能基準計算はステップ312と呼ばれ、前記回帰性能スコアは313で示される。前記回帰性能基準312の性能入力値は、前記訓練復号出力値307の一部またはすべてと、前記訓練回帰出力値311の一部またはすべてとを含む。
【0100】
好ましい実施形態では、前記回帰性能基準は、単一の回帰性能スコアを計算する。代替的な実施形態では、前記回帰性能基準は、複数の回帰性能スコアを計算する。
【0101】
【0102】
【0103】
復号性能基準308が復号性能スコア309を計算するために使用され、回帰性能基準312が回帰性能スコア313を計算するために使用された後、性能スコア計算プロセス300は終了する。前記性能スコア計算プロセス300によって計算された性能スコアは、前記復号性能スコア309および前記回帰性能スコア313からなる。
【0104】
パラメータ調整203
ここでは、パラメータ調整ステップ203について説明する。
図2に示す訓練反復プロセス200において、前記パラメータ調整ステップはステップ203と呼ばれる。パラメータ調整ステップ203において、前記エンコーダプログラム、前記デコーダプログラム、および前記回帰プログラムの前記パラメータの一部またはすべては、前記選択された訓練画像301について計算された前記性能スコア309および313の一部またはすべてを改善するように調整される。
【0105】
好ましい実施形態では、前記パラメータは、前記訓練反復において選択された前記訓練画像について計算された前記復号性能スコアと前記回帰性能スコアとの重み付き和を最小化するように調整される。好ましい実施形態では、前記重み付き和は、前記復号性能スコアと前記回帰性能スコアとの平均である。代替的な実施形態では、前記重み付き和を計算することは、前記性能スコアの各々とそれぞれの重み値、例えばユーザによって指定された重み値との乗算を含む。代替的な実施形態では、前記パラメータは、閾値化された性能スコアの重み付き和を最小化するように調整され、性能スコアの重みは、1つまたは複数の閾値、例えばユーザによって指定された閾値に依存する。さらに、前記パラメータは、本発明の精神から逸脱することなく、前記復号性能スコアおよび前記回帰性能スコアの一般的な非線形関数を最小化または最大化するように調整することができる。
【0106】
好ましい実施形態では、前記パラメータは、1つまたは複数の勾配ベースの最適化方法、例えば確率的勾配降下法を使用して調整される。代替的な実施形態では、前記パラメータの一部またはすべては、1つまたは複数の非勾配ベースの最適化方法、例えば進化的最適化アルゴリズムを使用して調整される。さらに、前記パラメータの一部またはすべては、本発明の精神から逸脱することなく、他の最適化アルゴリズムによって反復的に調整されても非反復的に計算されてもよい。
【0107】
好ましい実施形態では、前記勾配ベースの最適化方法によって必要とされる1次導関数、該当する場合より高次の導関数は、例えば、LeCunら(LECUN、Y.A.らによるEfficient BackProp.」、Neural Networks:Tricks of the Trade、第2版、Springer、Berlin、Heidelberg、2012年、9-48ページ)で説明されているようなバックプロパゲーションアルゴリズムを使用して計算される。代替的な実施形態では、前記導関数の一部またはすべては、数値微分、記号微分、または自動微分によって計算または近似される。さらに、前記導関数の一部またはすべては、本発明の精神から逸脱することなく、他の微分アルゴリズムによって計算されてもよい。
【0108】
パラメータ調整ステップ203において前記パラメータの一部またはすべてが調整された後、訓練反復プロセス200は終了する。各訓練反復200の後には、別の訓練反復200、探索反復400、あるいは1つまたは複数の追加の訓練画像102の取得のいずれかが続く。
【0109】
探索段階
本方法の探索段階では、訓練段階で訓練された前記エンコーダプログラム、前記デコーダプログラム、および前記回帰プログラムは、1つまたは複数の探索反復400を実行することによって、1つまたは複数の探索画像401内の異常を探索するために使用される。
図1に示す異常検出プロセス100において、探索反復はステップ400と呼ばれる。
図4は、所与の探索画像401の1つまたは複数の異常スコアを計算するための例示的な探索反復プロセス400のフロー図である。複数の探索反復プロセス400は、1つまたは複数の探索画像内の異常を探索するために、1つまたは複数の場所に配置された1つまたは複数のコンピュータのシステムによって同時に実行することができる。探索反復プロセス400のステップは、以下のセクションで説明される。
【0110】
好ましい実施形態では、第1の探索反復は最後の訓練反復の後に実行される。代替的な実施形態では、少なくとも1つの訓練反復200は、探索反復の後またはその間に実行される。
【0111】
好ましい実施形態では、すべての探索画像は、2Dグレースケールまたは2Dカラー画像である。代替的な実施形態では、前記探索画像の一部またはすべては、例えばハイパースペクトル撮像センサまたは深度カメラから得られた他のセンサデータを含む。代替的な実施形態では、前記探索画像の一部またはすべては、3D画像、例えば3D点群または3Dボクセルグリッドである。
【0112】
探索画像拡張
探索反復400の開始時に、探索画像を必要に応じて拡張することができる。好ましい実施形態では、探索画像は拡張されない。代替的な実施形態では、少なくとも1つの探索画像は、前記訓練段階で使用される前記拡張方法のうちの少なくとも1つで拡張される。代替的な実施形態では、少なくとも1つの探索画像は、前記訓練段階で使用されない少なくとも1つの追加の拡張方法で拡張される。代替的な実施形態では、少なくとも1つの探索画像は、毎回異なる拡張方法、異なる拡張パラメータ、またはその両方で複数回拡張され、例えば、前記拡張探索画像にわたって各拡張探索画像について計算された異常スコアを平均化するために、探索画像ごとに複数の拡張探索画像が得られる。代替的な実施形態では、例えば複数の探索画像の要素ごとの平均を計算することによって、複数の探索画像が一緒に拡張される。
【0113】
【0114】
好ましい実施形態では、前記中間探索表現は、前記中間訓練表現の各々と同じ次元を有する。代替的な実施形態では、少なくとも1つの中間探索表現の次元は、別の中間探索表現または中間訓練表現の次元とは異なる。
【0115】
【0116】
【0117】
【0118】
【0119】
探索類似度基準405
このセクションでは、探索類似度基準と呼ばれる類似度基準を使用して、前記探索回帰出力404を前記探索復号出力403と比較するステップ405を説明する。前記探索類似度基準によって計算された類似度値は、探索類似度値406と呼ばれる。
図4に示す探索反復プロセス400では、前記探索類似度基準計算はステップ405と呼ばれ、前記探索類似度値は406で示される。前記探索回帰出力404は、前記探索類似度基準405の値の前記第1の集合として使用される。前記探索復号出力403は、前記探索類似度基準405の値の前記第2の集合として使用される。好ましい実施形態では、前記探索類似度基準は、前記探索画像内の各画素位置について1つの探索類似度値を計算する。代替的な実施形態では、前記探索類似度基準によって計算された1つまたは複数の探索類似度値は、前記探索画像内の1つまたは複数の画素位置に対応する。代替的な実施形態では、前記探索類似度基準は、前記探索画像内の位置に空間的に対応しない1つまたは複数の探索類似度値を計算する。代替的な実施形態では、前記探索類似度基準は、探索画像全体または前記探索画像のサブセットに対応する単一の探索類似度値を計算する。
【0120】
【0121】
【0122】
異常スコア408の計算
このセクションでは、前記探索類似度値406に基づいて前記探索画像401の1つまたは複数の異常スコア408を計算するステップについて説明する。
図4に示す探索反復プロセス400では、前記異常スコア計算はステップ407と呼ばれ、前記計算された異常スコアは408で示される。
【0123】
好ましい実施形態では、前記探索画像内の各画素位置について1つの領域異常スコアが計算され、すべての領域異常スコアは、前記探索画像と同じ高さおよび幅を有する1つの異常マップを形成する。代替的な実施形態では、上述したように、少なくとも1つの探索画像について、0または複数の画像異常スコアおよび0または複数の領域異常スコアが計算される。
【0124】
好ましい実施形態では、各領域異常スコアは、前記探索画像内のそれぞれの画素位置について前記探索類似度基準によって計算されたそれぞれの探索類似度値に基づいて計算される。好ましい実施形態では、前記領域異常スコアの前記計算は、前記探索画像について計算された前記探索類似度値の要素ごとのアフィン変換を含む。前記要素ごとのアフィン変換において、スケーリング値およびシフト値は、標準正規分布に従うように前記領域異常スコアを正規化する値に設定される。好ましい実施形態では、各領域異常スコアは、次に、前記探索類似度値の前記要素ごとのアフィン変換後のそれぞれの画素位置における前記変換された探索類似度値によって与えられる。代替的な実施形態では、前記スケーリング値およびシフト値は、標準正規分布以外の確率分布に従うように前記領域異常スコアの一部またはすべてを正規化する値に設定される。代替的な実施形態では、前記領域異常スコアの一部またはすべては、前記探索類似度値が要素ごとのアフィン変換によって変換されることなく、それぞれの画素位置における前記探索類似度値によって与えられる。代替的な実施形態では、前記領域異常スコアの一部またはすべては、前記探索類似度値が非線形関数によって変換された後に、それぞれの画素位置における変換された探索類似度値によって与えられる。代替的な実施形態では、複数の探索類似度値を組み合わせることによって、1つまたは複数の領域異常スコアが計算される。代替的な実施形態では、1つまたは複数の領域異常スコアは、前記探索画像内の複数の画素位置に対応する。さらに、前記領域異常スコアの一部またはすべては、本発明の精神から逸脱することなく、前記探索類似度値の一部またはすべてに基づいて線形または非線形関数によって計算されてもよい。
【0125】
ステップ407において異常スコア408が計算された後、探索反復プロセス400は終了する。
図1に示す異常検出プロセス100では、各探索反復200の後に、別の探索反復400、訓練反復200、1つまたは複数の追加の訓練画像102の取得、または前記異常検出プロセス100の終了のいずれかが続く。
【0126】
異常検出プログラムの組み合わせ
前記異常スコア408は、第2の異常検出プログラムと呼ばれる少なくとも1つの異常検出プログラムを前記探索画像401にさらに適用することによって計算された、第2の異常スコアと呼ばれる1つまたは複数の他の異常スコアと組み合わせることができる。例えば、前記第2の異常検出プログラムは、Bergmannら(BERGMANN、P.らによる「Uninformed Students:Student-Teacher Anomaly Detection With Discriminative Latent Embeddings」、Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition(CVPR)、2020年、4183-4192ページ)によって提唱された前記生徒-教師法とすることができる。好ましい実施形態では、前記異常スコア408は、他の異常スコアと組み合わされない。代替的な実施形態では、前記異常スコア408は、空間配置された領域異常スコアを含み、第1の異常マップと呼ばれる1つまたは複数の異常マップを形成し、前記第1の異常マップは、少なくとも1つの第2の異常検出プログラムによって計算された1つまたは複数の第2の異常マップと組み合わされる。第1および第2の異常マップの前記組み合わせでは、前記第1および第2の異常マップは、前記第1および第2の異常マップの組み合わせの前に、1つまたは複数の変換、例えば要素ごとのアフィン変換によって変換される。前記変換は、適用される異常マップを変更しない恒等関数を含むことができる。次いで、第1および第2の異常マップの前記組み合わせは、前記第1および第2の変換された異常マップの一部またはすべてを合計して少なくとも1つの合計異常マップを形成することによって実行され、前記合計された異常マップの少なくとも1つの異常スコアは、前記第1および第2の変換された異常マップからの異常スコアの合計である。代替的な実施形態では、前記異常スコア408は、1つまたは複数の第2の異常検出プログラムによって計算された1つまたは複数の第2の異常スコアと組み合わされ、異常の存在は、前記異常スコア408の値の一部またはすべてと前記第2の異常スコアの値の一部またはすべてとに基づいて決定される。
【0127】
提示された方法は、異常検出の最先端技術を拡張するために複数の発明を導入する。前記生徒-教師法などの事前訓練済ネットワークから抽出された特徴を利用する多くの成功した異常検出方法とは対照的に、提示された方法は、受容野のサイズによって制限されることなく事前訓練済ネットワークを利用する。さらに、前記事前訓練済ネットワークは、前記探索段階中に必要とされない。探索段階では、エンコーダ、デコーダおよび回帰プログラムのみが必要とされる。これは、事前訓練済ネットワークを各探索画像に適用することを必要とする前記生徒-教師法のような手法よりも重要な利点である。強力な異常検出を達成するために、事前訓練済ネットワークは、表現力がある必要があり、したがって計算コストが高い。一方、エンコーダ、デコーダ、および回帰プログラムは、それぞれのアプリケーションの要件に適合するように設計することができる。
【0128】
探索画像を全体として解析し、受容野によって限定されない多数の異常検出方法、すなわち、前記オートエンコーダベースのMNAD法または前記f-AnoGAN法などの非局所的な方法がある。しかしながら、これらの方法は、事前訓練済ネットワークに基づく前述の方法によって実行されることが多い。提示された方法は、現在の非局所的方法の複数の主要な欠点を打ち消す。1つの革新的な態様は、前記回帰ネットワークが、前記デコーダネットワークの不正確な予測によって引き起こされる偽陽性を回避することである。例えば、前記ターゲット表現が前記探索画像自体または事前訓練済ネットワークからの特徴からなる場合、前記デコーダネットワークが前記低次元中間表現によって与えられるボトルネックを介して前記ターゲット表現を正確に再構成することは困難である。前記回帰ネットワークは、例えば、前記デコーダネットワークがぼやけた再構成物を計算する場合にはぼやけた再構成物も生成することによって、同様に不正確な特徴マップを出力するように学習することによってこれを補償することができる。これは、不正確な再構成物を入力画像と比較することによって引き起こされる偽陽性に悩まされるオートエンコーダの重要な欠点を改善する。別の革新的な態様は、入力画像がターゲット表現に一致するように低次元中間表現を介して再構成されることであり、これは必ずしも入力画像自体である必要はない。前記ターゲット表現は、記述注釈、または好ましくは事前訓練済ネットワークの出力であってもよい。したがって、入力画像内の画素のみではなく、領域の再構成された特徴を比較することによって、表現力のある学習された特徴空間において異常を検出することができる。
【0129】
本発明を使用することができる例示的な異常検出タスクは、ねじの欠陥の検出である。前記タスクにおいて、各探索画像は1つのねじを示すことができ、前記欠陥は、傷、窪み、および不規則なねじ長さを含むことができる。例えば、ねじは、少なくとも4.9cmの長さおよび最大5.1cmの長さである必要があり得る。前記生徒-教師法のようなパッチベースの手法は、傷および窪みの検出に成功し得る。しかしながら、そのような手法は、異常検出方法の受容野に限定されない欠陥を検出することができない場合がある。例えば、長さ6cmのねじは、幅1cmおよび高さ1cmのパッチに対して動作する生徒-教師法によって異常と見なされない場合がある。これは、各パッチを単独で検査すると、異常パターンを示さない可能性があるためである。本発明は、受容野によって限定されないので、前記欠陥をすべて首尾よく検出することができる。オートエンコーダまたはGANベースの手法など、受容野によって限定されない他の異常検出方法は、不規則なねじ長さの検出に成功する可能性があるが、不正確な再構成のために異常のない画像を異常であると誤って識別する可能性がある。例えば、オートエンコーダは、ねじのねじ山を正確に再構成することができず、したがって異常を誤って検出する可能性がある。本発明は、回帰ネットワークを使用することによってこの問題を回避する。
【0130】
本発明を使用することができる別の例示的な異常検出タスクは、水筒内の欠陥の検出である。前記タスクにおいて、各探索画像は、1つのガラス瓶を示すことができ、前記欠陥は、瓶の内部の汚染および不規則な充填レベルを含むことができる。例えば、ボトルは、990ml~1010mlの水を収容する必要があり得る。可能な異常検出手法は、欠陥のない訓練画像および異常な訓練画像を取得することであり得る。次いで、人間の注釈者は、「汚染」、「不規則な充填レベル」、および「欠陥なし」のクラスに基づいて各訓練画像をラベル付けすることができる。しかしながら、多くの異なる可能な汚染が存在する可能性があり、すべての可能な汚染のタイプを事前に判定し、各汚染タイプの訓練画像を取得することは困難である。したがって、探索段階中、この手法は、取得された訓練画像に含まれなかった汚染のタイプを検出することができない場合がある。本発明は、欠陥が注釈付けされるかまたは訓練画像に存在することを必要としないので、前記欠陥をすべて首尾よく検出することができる。前記生徒-教師法のようなパッチベースの方法は、方法の受容野のサイズに応じて、不規則な充填レベルを検出できない場合がある。オートエンコーダおよびGANベースの方法は、欠陥のないボトルのガラス内の屈折パターンを正確に再構成することができず、偽陽性予測を引き起こす可能性がある。本発明は、受容野によって限定されず、回帰ネットワークを使用することによって偽陽性予測を回避するので、すべての前記欠陥を首尾よく検出することができる。
【0131】
本発明を図面および前述の説明において詳細に例示および説明してきたが、そのような例示および説明は説明的または例示的であり、限定的ではないと考えられるべきである。以下の特許請求の範囲内で当業者によって変更および修正が行われ得ることが理解されよう。特に、本発明は、上記および下記の異なる実施形態からの特徴の任意の組み合わせを有するさらなる実施形態を包含する。
【0132】
さらに、特許請求の範囲において、「備える(comprising)」という語は他の要素またはステップを排除せず、不定冠詞「a」または「an」は複数を排除しない。単一のユニットは、特許請求の範囲に記載されたいくつかの特徴の機能を果たすことができる。属性または値に関連する「本質的に」、「約」、「およそ」などの用語はまた、特に、それぞれ正確に属性または正確に値を定義する。特許請求の範囲におけるいかなる参照符号も、範囲を限定するものとして解釈されるべきではない。