(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023172033
(43)【公開日】2023-12-06
(54)【発明の名称】異常検知装置、異常検知方法、モデル生成装置、モデル生成方法およびプログラム
(51)【国際特許分類】
G06T 7/00 20170101AFI20231129BHJP
G06V 10/70 20220101ALI20231129BHJP
【FI】
G06T7/00 300Z
G06V10/70
【審査請求】未請求
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2022083581
(22)【出願日】2022-05-23
(71)【出願人】
【識別番号】502324066
【氏名又は名称】株式会社デンソーアイティーラボラトリ
(74)【代理人】
【識別番号】100113549
【弁理士】
【氏名又は名称】鈴木 守
(74)【代理人】
【識別番号】100115808
【弁理士】
【氏名又は名称】加藤 真司
(72)【発明者】
【氏名】関川 雄介
(72)【発明者】
【氏名】吉田 悠一
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096BA03
5L096FA69
5L096GA51
5L096HA11
5L096JA11
5L096KA04
(57)【要約】 (修正有)
【課題】高解像度画像のデータを扱う異常検知装置及び方法、モデル生成装置及び方法並びにプログラムを提供する。
【解決手段】画像を用いて異常を検知する異常検知装置10であって、異常検知の対象であるテスト画像の入力を受け付ける入力部11、画像のピクセル座標及びコードを入力、ピクセル座標の輝度値を出力とし、コードと正常画像の輝度値との関係が予め学習されたモデルを記憶した記憶部14、モデルにピクセル座標及びコードを入力してピクセル座標の輝度値を出力し、輝度値からなる復元画像とテスト画像との誤差が小さくなるようにモデルに入力するコードを更新する処理を繰り返すコード更新部23、コード更新部にて所定の終了条件を満たすまで更新されたコードを用いて復元された復元画像とテスト画像とを比較し、所定の閾値以上の誤差のある箇所を異常と検知する異常検知部24及び異常検知部による検知結果を出力する出力部13を備える。
【選択図】
図3
【特許請求の範囲】
【請求項1】
画像を用いて異常を検知する異常検知装置であって、
異常検知の対象であるテスト画像の入力を受け付ける入力部と、
画像のピクセル座標およびコードを入力、ピクセル座標の輝度値を出力とするモデルであって、前記コードと正常画像の輝度値との関係が予め学習されたモデルを記憶した記憶部と、
前記モデルにピクセル座標およびコードを入力して前記ピクセル座標の輝度値を出力し、前記輝度値からなる復元画像と前記テスト画像との誤差が小さくなるように、前記モデルに入力するコードを更新する処理を繰り返し行うコード更新部と、
前記コード更新部にて所定の終了条件を満たすまで更新されたコードを用いて復元された復元画像と前記テスト画像とを比較し、所定の閾値以上の誤差のある箇所を異常と検知する検知部と、
前記検知部による検知結果を出力する出力部と、
を備える異常検知装置。
【請求項2】
前記モデルは、前記ピクセル座標と前記コードに加えて前記ピクセル座標を幾何変換させるパラメータを入力、ピクセル座標の輝度値を出力とするモデルであって、
前記コード更新部は、前記コードと共に前記パラメータを更新する請求項1に記載の異常検知装置。
【請求項3】
前記画像は、同じ物体を異なる条件で撮影した画像のセットであり、
前記コード更新部は、条件の異なる各画像に対応するコードの更新を行う請求項1に記載の異常検知装置。
【請求項4】
前記モデルは、前記ピクセル座標に代えて空間座標と当該座標を見る角度とコードを入力とし、前記空間座標の輝度値と密度を出力とするモデルであって、
前記コード更新部は、前記モデルに空間座標と当該座標を見る角度とコードを入力して空間座標の輝度値と密度を出力し、出力された空間座標の輝度値と密度に基づいて、テスト画像の視線角度から見た画像を復元し、復元した画像と前記テスト画像との誤差が小さくなるように前記コードを更新する請求項1に記載の異常検知装置。
【請求項5】
前記コード更新部は、復元した画像と前記テスト画像との誤差が小さくなるように、前記コードと前記空間座標を見る角度とを更新する請求項4に記載の異常検知装置。
【請求項6】
複数の正常画像を教師データとして、画像のピクセル座標およびコードを入力、ピクセル座標の輝度値を出力とするモデルであって、前記コードと正常画像の輝度値との関係を表すモデルを生成するモデル生成装置であって、
教師データとして複数の正常画像の入力を受け付ける入力部と、
ピクセル座標とコードを学習対象のモデルに入力して前記ピクセル座標の輝度値を出力し、出力された輝度値と前記正常画像との誤差が小さくなるように、前記モデルおよび前記モデルに入力する前記コードを更新する処理を繰り返し行うモデル更新部と、
前記モデル更新部にて更新されたモデルを記憶する記憶部と、
を備えるモデル生成装置。
【請求項7】
前記モデル更新部は、複数の正常画像のそれぞれからサンプリングしたピクセル座標と各正常画像に対応するコードを前記モデルに入力して前記ピクセル座標の輝度値を出力し、前記輝度値と前記正常画像の対応するピクセル座標の輝度値との誤差が小さくなるように、前記モデルおよび前記モデルに入力する前記コードを更新する処理を一つの処理単位とし、各処理単位で、サンプリングするピクセル座標を変えて、前記処理単位を繰り返し行う請求項6に記載のモデル生成装置。
【請求項8】
前記モデル更新部は、ピクセル座標とピクセル座標を幾何変換するパラメータとコードとを学習対象のモデルに入力して前記ピクセル座標の輝度値を出力し、出力された輝度値と前記正常画像との誤差が小さくなるように、前記モデルと前記モデルに入力する前記パラメータおよび前記コードを更新する処理を繰り返し行う請求項6または7に記載のモデル生成装置。
【請求項9】
前記入力部は、教師データとして、同じ物体を異なる条件で撮影した画像のセットを受け付け、
前記モデル更新部は、ピクセル座標と画像のセットを構成する各画像に対応するコードを学習対象のモデルに入力して前記ピクセル座標の輝度値を出力し、出力された輝度値と前記正常画像との誤差が小さくなるように、前記モデルおよび前記モデルに入力する前記コードを更新する処理を繰り返し行う請求項6または7に記載のモデル生成装置。
【請求項10】
前記モデルは、前記ピクセル座標に代えて空間座標と当該座標を見る角度とコードを入力とし、前記空間座標の輝度値と密度を出力とするモデルであって、
前記モデル更新部は、空間座標と前記空間座標を見る角度とコードを学習対象のモデルに入力して前記空間座標の輝度値および密度を出力し、出力された前記空間座標の輝度値および密度に基づいて、前記正常画像の視線角度から見た画像を復元し、復元した画像と前記正常画像との誤差が小さくなるように前記モデルおよび前記モデルに入力する前記コードを更新する処理を繰り返し行う請求項6または7に記載のモデル生成装置。
【請求項11】
画像を用いて異常を検知する異常検知方法であって、
異常検知の対象であるテスト画像の入力を受け付けるステップと、
画像のピクセル座標およびコードを入力、ピクセル座標の輝度値を出力とするモデルであって、前記コードと正常画像の輝度値との関係が予め学習されたモデルを記憶部から読み出すステップと、
前記モデルにピクセル座標およびコードを入力して前記ピクセル座標の輝度値を出力し、前記輝度値からなる復元画像と前記テスト画像との誤差が小さくなるように、前記モデルに入力するコードを更新する処理を繰り返し行うステップと、
所定の終了条件を満たすまで更新されたコードを用いて復元された復元画像と前記テスト画像とを比較し、所定の閾値以上の誤差のある箇所を異常と検知するステップと、
前記検知の結果を出力するステップと、
を備える異常検知方法。
【請求項12】
複数の正常画像を教師データとして、画像のピクセル座標およびコードを入力、ピクセル座標の輝度値を出力とするモデルであって、前記コードと正常画像の輝度値との関係を表すモデルを生成するためのモデル生成方法であって、
教師データとして複数の正常画像の入力を受け付けるステップと、
ピクセル座標とコードを学習対象のモデルに入力して前記ピクセル座標の輝度値を出力し、出力された輝度値と前記正常画像との誤差が小さくなるように、前記モデルおよび前記モデルに入力する前記コードを更新する処理を繰り返し行うステップと、
更新されたモデルを記憶部に記憶するステップと、
を備えるモデル生成方法。
【請求項13】
画像を用いて異常を検知するためのプログラムであって、コンピュータに、
異常検知の対象であるテスト画像の入力を受け付けるステップと、
画像のピクセル座標およびコードを入力、ピクセル座標の輝度値を出力とするモデルであって、前記コードと正常画像の輝度値との関係が予め学習されたモデルを記憶部から読み出すステップと、
前記モデルにピクセル座標およびコードを入力して前記ピクセル座標の輝度値を出力し、前記輝度値からなる復元画像と前記テスト画像との誤差が小さくなるように、前記モデルに入力するコードを更新する処理を繰り返し行うステップと、
所定の終了条件を満たすまで更新されたコードを用いて復元された復元画像と前記テスト画像とを比較し、所定の閾値以上の誤差のある箇所を異常と検知するステップと、
前記検知の結果を出力するステップと、
を実行させるプログラム。
【請求項14】
複数の正常画像を教師データとして、画像のピクセル座標およびコードを入力、ピクセル座標の輝度値を出力とするモデルであって、前記コードと正常画像の輝度値との関係を表すモデルを生成するためのプログラムであって、コンピュータに、
教師データとして複数の正常画像の入力を受け付けるステップと、
ピクセル座標とコードを学習対象のモデルに入力して前記ピクセル座標の輝度値を出力し、出力された輝度値と前記正常画像との誤差が小さくなるように、前記モデルおよび前記モデルに入力する前記コードを更新する処理を繰り返し行うステップと、
更新されたモデルを記憶部に記憶するステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、異常検知装置、異常検知方法、モデル生成装置、モデル生成方法およびプログラムに関する。
【背景技術】
【0002】
製品を出荷する前に異常検知を行うことは重要な技術課題である。正常データと異常データを収集して教師あり学習を行うことで、正常と異常を判別するためのモデルを生成することができるが、正常であることが当たり前の製品において、多数の異常データを収集することは困難である。そこで、正常データのみを用いて異常検知を行う技術がしばしば用いられる(非特許文献1~3)。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】Christoph Baur他「Autoencoders for Unsupervised Anomaly Segmentation in Brain MR Images: A Comparative Study」https://arxiv.org/abs/2004.03271
【非特許文献2】Fabio Carrara他「AIMH Lab for the Industry」https://openportal.isti.cnr.it/data/2022/463969/2022_463969.published.pdf
【非特許文献3】Pankaj Mishra他「VT-ADL: A Vision Transformer Network for Image Anomaly Detection and Localization」https://arxiv.org/pdf/2104.10036.pdf
【発明の概要】
【発明が解決しようとする課題】
【0004】
非特許文献1~3では、入力画像をオートエンコーダ(Auto Encoder)によって復元し、復元した画像と入力画像との差分が大きい箇所を異常として検出している。オートエンコーダは大量の正常画像を用いて予め学習され、その学習に異常画像は用いられていないので、異常画像をうまく復元することはできない。非特許文献1~3は、異常箇所では差分が大きくなるという特徴を利用した方法である。
【0005】
ところで、画像の復元には、CNNやTransformerなどの画像のパターンを入力するニューラルネットワークを用いる必要がある。従来のオートエンコーダを利用した異常検知方法は、8K高解像度画像やHyper Spectrumカメラで撮影した画像、多視点画像などの入力の次元が大きいデータを扱うことが困難であった。
【0006】
本発明は、上記背景に鑑み、高次元のデータを扱うことができる異常検知技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の異常検知装置は、画像を用いて異常を検知する装置であって、異常検知の対象であるテスト画像の入力を受け付ける入力部と、画像のピクセル座標およびコードを入力、ピクセル座標の輝度値を出力とするモデルであって、前記コードと正常画像の輝度値との関係が予め学習されたモデルを記憶した記憶部と、前記モデルにピクセル座標およびコードを入力して前記ピクセル座標の輝度値を出力し、前記輝度値からなる復元画像と前記テスト画像との誤差が小さくなるように、前記モデルに入力するコードを更新する処理を繰り返し行うコード更新部と、前記コード更新部にて所定の終了条件を満たすまで更新されたコードを用いて復元された復元画像と前記テスト画像とを比較し、所定の閾値以上の誤差のある箇所を異常と検知する検知部と、前記検知部による検知結果を出力する出力部とを備える。
【0008】
この構成により、モデルに入力するコードを更新してテスト画像と復元画像の誤差を小さくしていく。コードをいくら調整してもモデル学習時に用いた正常画像に存在しなかった特徴を復元することができないので、テスト画像が異常箇所を含む場合には、テスト画像と復元画像との誤差が残る。したがって、検知部はテスト画像と復元画像との誤差に基づき、異常を検出することができる。
【0009】
本発明で用いるモデルはピクセル座標およびコードを入力としてピクセル座標の輝度値を出力するモデルである。したがって、ピクセル単位で画像を処理することができるので、例えば、Hyper Spectrumカメラで撮影した画像、多視点画像などの入力の次元が大きい画像も、高速に演算できる。
【0010】
本発明の異常検知装置において、前記モデルは、前記ピクセル座標と前記コードに加えて前記ピクセル座標を幾何変換させるパラメータを入力、ピクセル座標の輝度値を出力とするモデルであって、前記コード更新部は、前記コードと共に前記パラメータを更新してもよい。このように幾何変換させるパラメータを更新する構成により、テスト画像を正常画像に近づけるパラメータを解釈可能となる。
【0011】
本発明の異常検知装置において、前記画像は、同じ物体を異なる条件で撮影した画像のセットであり、前記コード更新部は、条件の異なる各画像に対応するコードの更新を行ってもよい。異なる条件で撮影した画像のセットとは、Hyper spectrumカメラで撮影した波長の異なる複数の画像、異なる照明条件で撮影した複数の画像、異なる視点から撮影した複数の画像等である。
【0012】
本発明の異常検知装置において、前記モデルは、前記ピクセル座標に代えて空間座標と当該座標を見る角度とコードを入力とし、前記空間座標の輝度値と密度を出力とするモデルであって、前記コード更新部は、前記モデルに空間座標と当該座標を見る角度とコードを入力して空間座標の輝度値と密度を出力し、出力された空間座標の輝度値と密度に基づいて、テスト画像の視線角度から見た画像を復元し、復元した画像と前記テスト画像との誤差が小さくなるように前記コードを更新してもよい。
【0013】
ここで、前記コード更新部は、復元した画像と前記テスト画像との誤差が小さくなるように、前記コードと前記空間座標を見る角度とを更新してもよい。このようにコード更新部がコードと共に空間座標を見る角度を更新する構成により、撮影した角度が与えられていないテスト画像を用いて異常検知を行うことができる。
【0014】
本発明のモデル生成装置は、複数の正常画像を教師データとして、画像のピクセル座標およびコードを入力、ピクセル座標の輝度値を出力とするモデルであって、前記コードと正常画像の輝度値との関係を表すモデルを生成するモデル生成装置であって、教師データとして複数の正常画像の入力を受け付ける入力部と、ピクセル座標とコードを学習対象のモデルに入力して前記ピクセル座標の輝度値を出力し、出力された輝度値と前記正常画像との誤差が小さくなるように、前記モデルおよび前記モデルに入力する前記コードを更新する処理を繰り返し行うモデル更新部と、前記モデル更新部にて更新されたモデルを記憶する記憶部とを備える。
【0015】
本発明のモデル生成装置において、前記モデル更新部は、複数の正常画像のそれぞれからサンプリングしたピクセル座標と各正常画像に対応するコードを前記モデルに入力して前記ピクセル座標の輝度値を出力し、前記輝度値と前記正常画像の対応するピクセル座標の輝度値との誤差が小さくなるように、前記モデルおよび前記モデルに入力する前記コードを更新する処理を一つの処理単位とし、各処理単位で、サンプリングするピクセル座標を変えて、前記処理単位を繰り返し行ってもよい。
【0016】
本発明のモデル生成装置において、前記モデル更新部は、ピクセル座標とピクセル座標を幾何変換するパラメータとコードとを学習対象のモデルに入力して前記ピクセル座標の輝度値を出力し、出力された輝度値と前記正常画像との誤差が小さくなるように、前記モデルと前記モデルに入力する前記パラメータおよび前記コードを更新する処理を繰り返し行ってもよい。
【0017】
本発明のモデル生成装置において、前記入力部は、教師データとして、同じ物体を異なる条件で撮影した画像のセットを受け付け、前記モデル更新部は、ピクセル座標と画像のセットを構成する各画像に対応するコードを学習対象のモデルに入力して前記ピクセル座標の輝度値を出力し、出力された輝度値と前記正常画像との誤差が小さくなるように、前記モデルおよび前記モデルに入力する前記コードを更新する処理を繰り返し行ってもよい。
【0018】
本発明のモデル生成装置において、前記モデルは、前記ピクセル座標に代えて空間座標と当該座標を見る角度とコードを入力とし、前記空間座標の輝度値と密度を出力とするモデルであって、前記モデル更新部は、空間座標と前記空間座標を見る角度とコードを学習対象のモデルに入力して前記空間座標の輝度値および密度を出力し、出力された前記空間座標の輝度値および密度に基づいて、前記正常画像の視線角度から見た画像を復元し、復元した画像と前記正常画像との誤差が小さくなるように前記モデルおよび前記モデルに入力する前記コードを更新する処理を繰り返し行ってもよい。
【0019】
本発明の異常検知方法は、画像を用いて異常を検知する方法であって、異常検知の対象であるテスト画像の入力を受け付けるステップと、画像のピクセル座標およびコードを入力、ピクセル座標の輝度値を出力とするモデルであって、前記コードと正常画像の輝度値との関係が予め学習されたモデルを記憶部から読み出すステップと、前記モデルにピクセル座標およびコードを入力して前記ピクセル座標の輝度値を出力し、前記輝度値からなる復元画像と前記テスト画像との誤差が小さくなるように、前記モデルに入力するコードを更新する処理を繰り返し行うステップと、所定の終了条件を満たすまで更新されたコードを用いて復元された復元画像と前記テスト画像とを比較し、所定の閾値以上の誤差のある箇所を異常と検知するステップと、前記検知の結果を出力するステップとを備える。
【0020】
本発明のモデル生成方法は、複数の正常画像を教師データとして、画像のピクセル座標およびコードを入力、ピクセル座標の輝度値を出力とするモデルであって、前記コードと正常画像の輝度値との関係を表すモデルを生成するための方法であって、教師データとして複数の正常画像の入力を受け付けるステップと、ピクセル座標とコードを学習対象のモデルに入力して前記ピクセル座標の輝度値を出力し、出力された輝度値と前記正常画像との誤差が小さくなるように、前記モデルおよび前記モデルに入力する前記コードを更新する処理を繰り返し行うステップと、更新されたモデルを記憶部に記憶するステップとを備える。
【0021】
本発明のプログラムは、画像を用いて異常を検知するためのプログラムであって、コンピュータに、異常検知の対象であるテスト画像の入力を受け付けるステップと、画像のピクセル座標およびコードを入力、ピクセル座標の輝度値を出力とするモデルであって、前記コードと正常画像の輝度値との関係が予め学習されたモデルを記憶部から読み出すステップと、前記モデルにピクセル座標およびコードを入力して前記ピクセル座標の輝度値を出力し、前記輝度値からなる復元画像と前記テスト画像との誤差が小さくなるように、前記モデルに入力するコードを更新する処理を繰り返し行うステップと、所定の終了条件を満たすまで更新されたコードを用いて復元された復元画像と前記テスト画像とを比較し、所定の閾値以上の誤差のある箇所を異常と検知するステップと、前記検知の結果を出力するステップとを実行させる。
【0022】
本発明のプログラムは、複数の正常画像を教師データとして、画像のピクセル座標およびコードを入力、ピクセル座標の輝度値を出力とするモデルであって、前記コードと正常画像の輝度値との関係を表すモデルを生成するためのプログラムであって、コンピュータに、教師データとして複数の正常画像の入力を受け付けるステップと、ピクセル座標とコードを学習対象のモデルに入力して前記ピクセル座標の輝度値を出力し、出力された輝度値と前記正常画像との誤差が小さくなるように、前記モデルおよび前記モデルに入力する前記コードを更新する処理を繰り返し行うステップと、更新されたモデルを記憶部に記憶するステップとを実行させる。
【発明の効果】
【0023】
本発明によれば、入力の次元が大きい画像を用いて適切に異常検知を行える。
【図面の簡単な説明】
【0024】
【
図1】(a)実施の形態に係る異常検知装置の処理の概要を示す図である。(b)モデルの学習処理の概要を示す図である。
【
図2】(a)製品が正常である場合のテスト画像と復元画像と示す図である。(b)製品が異常である場合のテスト画像と復元画像とを示す図である。
【
図7】第4の実施の形態の異常検知装置の処理の概要を示す図である。
【
図8】第4の実施の形態のモデル学習処理の概要を示す図である。
【
図9】第4の実施の形態の変形例に係る異常検知装置の処理の概要を示す図である。
【発明を実施するための形態】
【0025】
以下、本発明の実施の形態に係る異常検知装置および異常検知装置で用いるモデルの生成装置について説明する。なお、以下の説明はあくまでも好ましい態様の一例を示したものであり、特許請求の範囲に記載された発明を限定する意図ではない。
【0026】
(第1の実施の形態)
[概要]
図1(a)は、実施の形態に係る異常検知装置の処理の概要を示す図である。異常検知装置は、画像のピクセル座標およびコードを入力、ピクセル座標の輝度値を出力とするニューラルネットワークモデル(以下、「モデル」という。)を有し、このモデルを用いて推論処理を行う。
図1(a)でモデルを「Implicit NN」と記載しているが、この名称の理由は後述する。
【0027】
モデルは、画像のピクセル座標(x,y)およびコードCと、正常画像のピクセル座標の輝度値I(x,y)との関係を表すモデルである。本実施の形態において、「正常画像」は、正常と判断される製品(すなわち異常のない製品)が映った画像である。
【0028】
本実施の形態においてコードCは画像に対応する値で、ピクセル座標にかかわらず同じ値である。モデルは、複数の正常画像を教師データとして予め学習されているが、この学習処理の概要については、
図1(b)を用いて後述する。
【0029】
異常検知装置が異常検知を行う際には、コードCに適当な初期値(例えば、コードC=0)を設定し、ピクセル座標(x,y)とコードCをモデルに入力する。異常検知装置は、モデルを用いた推論処理によりピクセル座標の輝度値I(x,y)を出力する。このピクセル座標の輝度値I(x,y)からなる画像は、コードCの初期値に対応する復元画像である。
【0030】
次に、異常検知装置は、異常検知の対象であるテスト画像と復元画像との誤差を求め、誤差を小さくするようにコードCを更新し、更新されたコードCとピクセル座標をモデルに入力して復元画像を得る。異常検知装置は、上記と同様に、復元画像とテスト画像の誤差が小さくなるようにコードCを更新する処理を繰り返していく。これにより、徐々に、テスト画像に近い画像を復元することができるようになる。
【0031】
繰り返し処理を所定回数行った時点、あるいはコードCの更新幅が十分に小さくなった時点で、コードCの更新処理を終了し、最終的に求まったコードCを用いて復元した復元画像とテスト画像とを比較する。異常検知装置は、復元画像とテスト画像との差分が所定の閾値より大きい箇所を異常であると検知する。
【0032】
ここで、コードCの役割について説明する。正常と判断される製品が映った画像であっても、個々の製品においては、部品の多少の位置ズレや、膨らみ、色の違いなどがある。このような正常範囲内での個体差の情報を獲得するのがコードCの役割である。
【0033】
モデルは、多数の正常画像を用いて学習がなされているので、テスト画像が正常画像である場合には、コードCを調整することにより、復元画像をテスト画像に近づけることができる。一方で、テスト画像が正常画像でない場合には、コードCをいくら調整しても精度良く復元することはできない。モデルの学習に、異常画像が用いられていないため、異常画像の特徴を獲得していないからである。このため、異常がある製品が映った画像の場合、テスト画像と復元画像とを十分に近づけることができず、所定の誤差が残ることをもって異常と判定することができる。
【0034】
図2(a)は製品が正常である場合のテスト画像と復元画像と示す図である。
図2(a)に示すように、製品が正常である場合には、コードを最適化することによりテスト画像に近い画像が復元される。、
図2(b)は製品が異常である場合のテスト画像と復元画像とを示す図である。
図2(b)に示す例ではICチップを止める左足が外れている。この場合、コードCをいくら最適化しても、モデルを学習したときの教師データには、左足が外れた画像が含まれていないので、左足が外れた画像を復元することができない。テスト画像と復元画像とを比較すると、左足の部分で誤差が大きいため、異常があると検知することができる。
【0035】
上記に説明したとおり、本実施の形態で用いられるモデルは、テスト画像自体を入力とするものではなく、テスト画像と復元画像の誤差を小さくするように調整されたコードCを入力とするモデルであり、画像の特徴を陰関数表現したモデルである。このため、
図1(a)では、「Implicit NN」と記載している。このように、実施の形態で用いているモデルは、テスト画像自体を直接扱うものではないので、8K高解像度画像やHyper spectrumカメラで撮像した画像のように次元の大きな画像であっても、小さい次元で処理を行える。
【0036】
図1(b)は、モデルの学習処理の概要を示す図である。教師データである多数の正常画像を用いてモデルの学習を行う。コードC
k(k=1,・・・,N)は、上述したとおり、正常範囲内でのバラツキを吸収して、画像を適切に復元できるようにする係数である。コードCは教師データである複数の正常画像と同数だけ必要なので、各正常画像に対応するコードを表すために、コードCに添字kを付している。
【0037】
モデル生成装置は、モデルにピクセル座標(x,y)とコードCkを入力し、モデルから出力されるピクセル座標の輝度値I(x,y)と正常画像の対応する輝度値との誤差が小さくなるように、モデルとコードCkを更新していく。コードCkの初期値は適宜に設定してよいが、例えば、Ck=0である。
【0038】
モデル生成装置は、更新されたコードCkとピクセル座標を、更新されたモデルに入力してピクセル座標ごとの輝度値I(k)
(x,y)を得る。モデル生成装置は、以下同様にして、復元した輝度値と教師データである正常画像の誤差が小さくなるように、モデルとコードCkを更新していく。これにより、徐々に、復元されるピクセル座標の輝度値I(k)
(x,y)は正常画像の対応するピクセルの輝度値に近づいていく。
【0039】
なお、実際にモデルおよびコードCkの更新を行う際には、画像全体を復元してから正常画像と比較する必要はない。例えば、多数の正常画像の各画像のうちの所定数(一例として10点)ずつのピクセルを対象とし、対象ピクセルについてコードCkを使って復元した輝度値と正常画像における対応する輝度値との誤差が小さくなるように、モデルおよびコードCkの更新を行う処理を、対象ピクセルを変えて繰り返し行うこととしてもよい。
【0040】
繰り返し処理を所定回数行った時点、あるいはコードCkの更新幅が十分に小さくなった時点で、コードCkの更新処理を終了し、最終的に求まったモデルを記憶部に記憶する。
【0041】
[異常検知装置の構成]
図3は、異常検知装置10の構成を示す図である。異常検知装置10は、異常検知の対象であるテスト画像の入力を受け付ける入力部11と、テスト画像を画像処理して異常を検知する演算部12と、異常検知結果を出力する出力部13と、テスト画像を復元するモデルを記憶した記憶部14とを備えている。出力部13は、例えば、ディスプレイである。
【0042】
モデルは、画像のピクセル座標およびコードを入力、ピクセル座標の輝度値を出力とするモデルであって、コードとピクセル座標の輝度値との関係が予め学習されている。
【0043】
演算部12は、モデルにピクセル座標とコードを入力して、モデルを使った推論処理によりピクセル座標の輝度値を求める推論部21と、ピクセル座標の輝度値で構成される復元画像とテスト画像との誤差を計算する誤差算出部22と、誤差を小さくする方向にコードを更新するコード更新部23と、復元画像とテスト画像の誤差に基づいて異常を検知する異常検知部24とを有している。演算部12の各構成が実行する機能については、異常検知装置10の動作説明の中で説明する。
【0044】
図4は、異常検知装置10の動作を示す図である。異常検知装置10は、異常検知の対象となる製品を撮影したテスト画像の入力を受け付ける(S10)。異常検知装置10の推論部21は、コードCを初期化し(S11)、初期化したコードCとピクセル座標(x,y)をモデルに入力し、モデルを使った推論処理によりピクセル座標の輝度値I
(x,y)を得る。異常検知処理においては、全ピクセル座標について輝度値を得るので、コードCに対応する画像を復元することになる(S12)。次に、異常検知装置10の誤差算出部22は、復元された画像とテスト画像との誤差を算出し(S13)、異常検知装置10のコード更新部23は、誤差を小さくする方向にコードCを更新する(S14)。
【0045】
次に、コード更新部23は、繰り返し処理を終了する条件を満たすか否かを判定する(S15)。収束条件は、例えば、繰り返し処理の回数が所定値に達したこと、あるいは、コード更新部23によるコード更新幅が所定の閾値以下になったこと、またはコード更新幅が所定の閾値以下となった状態が所定回数継続したこと、等である。なお、収束条件はここに記載した条件に限定されるものではない。
【0046】
収束条件を満たさない場合(S15でNO)、異常検知装置10の推論部21は、更新後のコードCとピクセル座標をモデルに入力し、ピクセル座標の輝度値I(x,y)を得て画像を復元する(S12)。異常検知装置10は、テスト画像と復元画像との誤差を算出し(S13)、コードを更新し(S14)、収束条件を満たすか否かの判定(S15)を繰り返し行う。
【0047】
収束条件を満たす場合(S15でYES)、異常検知装置10の異常検知部24は、復元した画像とテスト画像との誤差に基づいて、誤差の大きい箇所を異常と検知する(S16)。異常検知装置10は、検知結果を出力する(S17)。
【0048】
以上、本実施の形態の異常検知装置10の構成について説明したが、上記した異常検知装置10のハードウェアの例は、CPU、RAM、ROM、ハードディスク、ディスプレイ、キーボード、マウス、通信インターフェース等を備えたコンピュータである。上記した各機能を実現するモジュールを有するプログラムをRAMまたはROMに格納しておき、CPUによって当該プログラムを実行することによって、上記した異常検知装置10が実現される。このようなプログラムも本発明の範囲に含まれる。
【0049】
本実施の形態の異常検知装置10は、ピクセル座標(x,y)およびコードCを入力、ピクセル座標の輝度値I(x,y)を出力とするモデルを用いることにより、ピクセルごとに推論を行うので、画像がどんなに高次元であっても異常検知処理を行うことができる。例えば、テスト画像が8K高解像度画像やHyper spectrumカメラで撮像した画像のように次元の大きな画像であっても、小さい次元で処理を行える。
【0050】
[モデル生成装置の構成]
図5は、モデル生成装置30の構成を示す図である。モデル生成装置30は、教師データである多数の正常画像の入力を受け付ける入力部31と、正常画像を用いてモデルの学習を行う演算部32と、モデルを記憶する記憶部34と、記憶部34に記憶されたモデルを出力する出力部33とを備えている。出力部33は、USB端子や通信端子であり、出力部33を通じてモデルを外部に取り出し、異常検知装置10の記憶部14に移動させる。
【0051】
モデルは、画像のピクセル座標およびコードを入力、正常画像のピクセル座標の輝度値を出力とするモデルである。換言すると、モデルは、適切なコードを入力することで、正常画像を復元することができるものである。
【0052】
演算部32は、モデルにピクセル座標とコードを入力して、モデルを使った推論処理によりピクセル座標の輝度値I(x,y)を求める推論部41と、ピクセル座標の輝度値I(x,y)と正常画像の対応する輝度値との誤差を計算する誤差算出部42と、誤差を小さくする方向にモデルとコードを更新するモデル更新部43とを有している。なお、モデル生成には多数の正常画像を用いるが、モデルに入力するコードは各正常画像で異なる。k番目(k=1,・・・,N)の正常画像に対応するコードをCkと表現し、コードCkで生成されるピクセル座標の輝度値をI(k)
(x,y)という。演算部12の各構成が実行する機能については、モデル生成装置30の動作説明の中で説明する。
【0053】
図6は、モデル生成装置30の動作を示す図である。モデル生成装置30は、教師データとして、正常な製品を撮影した多数の正常画像の入力を受け付ける(S20)。モデル生成装置30の推論部41は、コードC
kを初期化する(S21)。モデル生成装置30の推論部41は、多数の正常画像のそれぞれの画像の中から、モデルの学習処理に用いる処理対象ピクセルを選択する(S22)。例えば、各画像から10ピクセルずつ、処理対象ピクセルを選択する。
【0054】
次に、モデル生成装置30の推論部21は処理対象のピクセル座標(x,y)とコードCkをモデルに入力し、処理対象ピクセルの輝度値I(k)
(x,y)を復元する(S23)。モデル生成装置30の誤差算出部42は、コードCkを使って復元した輝度値I(k)
(x,y)と、正常画像の対応するピクセルの輝度値との誤差を算出する(S24)。モデル生成装置30のモデル更新部43は、誤差を小さくする方向にモデルとコードCkを更新する(S25)。
【0055】
次に、モデル更新部43は、繰り返し処理を終了する条件を満たすか否かを判定する(S26)。収束条件は、例えば、繰り返し処理の回数が所定値に達したこと、あるいは、モデル更新部43によるモデル更新幅が所定の閾値以下になったことやモデル更新幅が所定の閾値以下となった状態が所定回数継続したこと、等である。なお、収束条件はここに記載した条件に限定されるものではない。
【0056】
収束条件を満たさない場合(S26でNO)、モデル生成装置30の推論部41は、処理対象のピクセルを選択し(S22)、選択したピクセルのピクセル座標(x,y)と更新されたコードCkを更新後のモデルに入力し、ピクセル座標の輝度値I(k)
(x,y)を復元する(S23)。以下、モデル生成装置30は、復元された輝度値と正常画像の輝度値との誤差を算出し(S24)、モデルおよびコードCkを更新し(S25)、収束条件を満たすか否かの判定(S26)を繰り返し行う。収束条件を満たす場合(S26でYES)、モデル生成装置30は生成されたモデルを記憶部34に記憶する(S27)。
【0057】
以上、本実施の形態のモデル生成装置30の構成について説明したが、上記したモデル生成装置30のハードウェアの例は、CPU、RAM、ROM、ハードディスク、ディスプレイ、キーボード、マウス、通信インターフェース等を備えたコンピュータである。上記した各機能を実現するモジュールを有するプログラムをRAMまたはROMに格納しておき、CPUによって当該プログラムを実行することによって、上記したモデル生成装置30が実現される。このようなプログラムも本発明の範囲に含まれる。
【0058】
本実施の形態のモデル生成装置30は、多数の正常画像を用いて、コードCから正常画像を復元するためのモデルを生成することができる。本実施の形態では、多数の正常画像のそれぞれの画像から、処理対象のピクセルを選択し、選択したピクセルを用いてモデルおよびコードの更新を行うので、多数の正常画像の特徴を適切に反映したモデルを生成できる。正常画像を一枚ずつ順番に使ってモデルの更新を行うと、例えば、1000枚目の正常画像を用いたモデル更新処理を行う頃には、最初の正常画像の影響が小さくなってしまうことが考えられるが、本実施の形態では、多数の正常画像のそれぞれから選んだピクセルを用いるので、こうした不都合を防止できる。
【0059】
(第2の実施の形態)
第2の実施の形態の異常検知装置およびモデル生成装置の基本的な構成は第1の実施の形態と同じであるが、第2の実施の形態では、モデルは、入力としてピクセル座標(x,y)とコードCに加え、ピクセル座標を幾何変換させるパラメータを用いる点が異なる。具体的には、第2の実施の形態で用いるモデルでは、ピクセル座標は並進を表すパラメータとして(θx,θy)を用い、ピクセル座標を(x+θx,y+θy)とする。
【0060】
異常検知装置は、モデルにピクセル座標(x+θx,y+θy)とコードCを入力し、モデルを使った推論処理により復元した画像とテスト画像との誤差が小さくなるようにパラメータ(θx,θy)とコードCを更新する処理を繰り返し行い、更新後のパラメータ(θx,θy)とコードCを用いて復元した画像とテスト画像との誤差に基づいて異常検知を行う。
【0061】
これにより、第1の実施の形態の異常検知装置と同様に、第2の実施の形態の異常検知装置は高次元の画像を使った異常検知を行える。また、第2の実施の形態の異常検知装置では更新後のパラメータ(θx,θy)が計算されるので、復元画像を生成するために並進移動した量を把握することが可能である。
【0062】
モデル生成装置では、ピクセル座標(x+θx,y+θy)とコードCkを入力として計算したピクセル座標の輝度値と正常画像との誤差が小さくなるように、パラメータ(θx,θy)とコードCkとモデルを更新することにより、モデルを生成する。
【0063】
ここでは、パラメータ(θx,θy)をコードCkと同様に教師なし学習する例を挙げているが、教師データとして正常画像を与える際に、正解の並進量を与え、パラメータ(θx,θy)を教師あり学習させてもよい。また、本実施の形態では、幾何変換として並進を例としたが、拡大・縮小、回転等を表すパラメータを用いることも可能である。
【0064】
(第3の実施の形態)
第3の実施の形態の異常検知装置の基本的な構成は、第1の実施の形態と同じであるが、第3の実施の形態では異常検知の対象となる製品を撮影した画像が異なる。第3の実施の形態の異常検知装置では、同じ物体を異なる条件で撮影した画像のセットを用いる。画像のセットの例としては、Hyper spectrumカメラで撮影した波長の異なる複数の画像、異なる照明条件(照明方向、照明強度)で撮影した複数の画像、異なる視点から撮影した複数の画像等が挙げられる。
【0065】
この場合、画像セットを構成する複数の画像I1,・・・,IMに共通のコードCを用いてもよいし、画像セットを構成する複数の画像I1,・・・,IMのそれぞれに異なるコードCk(k=1,・・・,M)を用いてもよい。
【0066】
(第4の実施の形態)
図7は、第4の実施の形態の異常検知装置の処理の概要を説明する図である。第4の実施の形態の異常検知装置では、輝度値を直接出力するモデルに代えて、輝度場(Radiance Fields)を出力するモデルを用いる。輝度場は、空間上の各座標に色と密度を対応付けるベクトル場である。ここで密度は、その点の不透明度、つまり何らかの物体が存在することを示す指標である。輝度場については、Mildenhall, B.ら「NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis.」(https://arxiv.org/abs/2003.08934)に詳しく記載されている。
【0067】
本実施の形態で用いるモデルは、入力が空間座標(x,y,z)、視線角度(θ,φ)およびコードC、出力が空間座標のRGBの輝度と密度σの値である。第4の実施の形態の異常検知装置は、空間座標のRGB輝度値と密度σのデータを使ってテスト画像の視線角度(θ、φ)の方向にレンダリングすることにより、画像を復元する。レンダリングによる処理では、視線方向にある空間上の点のRGB輝度値と密度σを積分することにより、二次元画像を得る。したがって、空間座標のRGB輝度値と密度σが求まった後は、視線角度(θ,φ)を与えれば、その視線角度での二次元画像を復元できる。
【0068】
異常検知装置は、異常検知の対象であるテスト画像と復元画像との誤差を求め、誤差を小さくするようにコードCを更新し、更新されたコードCと空間座標(x,y,z)、視線角度(θ,φ)をモデルに入力し復元画像を得る。異常検知装置は、上記と同様に、復元画像とテスト画像の誤差が小さくなるようにコードCを更新する処理を繰り返していく。これにより、徐々に、テスト画像に近い画像を復元することができるようになる。
【0069】
繰り返し処理を所定回数行った時点、あるいはコードCの更新幅が十分に小さくなった時点で、コードCの更新処理を終了し、最終的に求まったコードCを用いて復元した復元画像とテスト画像とを比較する。異常検知装置は、復元画像とテスト画像との差分が所定の閾値より大きい箇所を異常であると検知する。このように、第4の実施の形態の異常検知装置は、上記した実施の形態と同様に、コードCを最適化する方向に調整することで異常検知を行う。
【0070】
第4の実施の形態で用いている輝度場において密度σは空間座標(x,y,z)に依存し、視線角度θ,φには依存しないデータである。したがって、モデルにより輝度場を出力し、輝度場を介して復元した画像との比較を行うことにより、見る角度に依存した見え方の違いの影響を受けにくい異常検知が可能となる。
【0071】
図8は、第4の実施の形態の異常検知装置で用いるモデルの生成処理について説明するための図である。モデルの学習には、教師データとして、多数の正常な製品を色々な角度から撮影した二次元画像を用い、各製品に対応するコードC
kを用いる。モデル生成装置は、モデルにコードC
kと空間座標(x,y,z)、視線角度(θ,φ)を入力し、空間座標のRGB輝度値と密度σの値を求める。異常検知装置は、教師データである正常画像の視線角度(θ,φ)を用いてレンダリングを行う。正常画像の視線角度は正常画像を撮影したカメラのセッティングにより既知なので、比較的容易にラベリングを行える。レンダリングにより復元した画像の輝度値I
(k)
(x,y)と正常画像の対応する輝度値との誤差が小さくなるように、モデルとコードC
kを更新していく。コードC
kの初期値は適宜に設定してよいが、例えば、C
k=0である。
【0072】
モデル生成装置は、更新されたコードCkと空間座標(x,y,z)、視線角度(θ,φ)を更新されたモデルに入力して空間座標のRGBの輝度と密度σの値を求め、復元画像の輝度値I(k)
(x,y)を得る。モデル生成装置は、以下同様にして、復元した輝度値と教師データである正常画像の誤差が小さくなるように、モデルとコードCkを更新していく。これにより、徐々に、復元されるピクセル座標の輝度値は正常画像に近づいていく。
【0073】
繰り返し処理を所定回数行った時点、あるいはコードCkの更新幅が十分に小さくなった時点で、コードCkの更新処理を終了し、最終的に求まったモデルを記憶部に記憶する。
【0074】
本実施の形態では、異常検知を行う運用時のテスト画像の視線角度(θ,φ)が既知である場合を例としたが、テスト画像の撮影方向が未知であってもよい。
図9は、第4の実施の形態の変形例に係る異常検知装置の処理の概要を示す図である。基本的な構成は、
図7で説明した概要と同じなので、
図7と異なるところを中心に説明する。
【0075】
異常検知装置は、レンダリングした二次元画像とテスト画像との誤差に基づいて、コードCを最適することに加え、視線角度(θ,φ)を最適化し、空間座標のRGBの輝度と密度σの値を求める。異常検知装置は、求めた空間座標のRGB輝度値と密度σのデータを使って、最適化された視線角度(θ、φ)の方向にレンダリングすることにより、画像を復元する。異常検知装置は、復元した画像とテスト画像との誤差を求め、誤差が小さくなるようにコードCと共に視線角度(θ,φ)を更新する。この更新の処理を繰り返し行うことにより、異常検知装置は、コードCと視線角度(θ,φ)を最適化し、最適化されたコードCと視線角度(θ,φ)を用いて復元した画像とテスト画像との誤差に基づいて異常を検知する。
【0076】
第4の実施の形態では、Volume Renderingモデル(NeRF)に適用する例を挙げたが、本発明は、ピクセル毎の物理反射モデルパラメタを出力するモデルやピクセル毎の物理反射モデルパラメタを近似した球面調和関数のパラメタを出力するモデルに適用することも可能である。
【0077】
以上、本発明の異常検知装置およびモデル生成装置について実施の形態を挙げて詳細に説明したが、本発明は上記した実施の形態に限定されるものではない。上記した実施の形態では、画像に共通のコードCを用いる例を挙げたが、コードCをピクセルごとに設定することも可能である。すなわち、入力をピクセル座標(x,y)とコードC(x,y)、出力をピクセル座標の輝度値I(x,y)とするモデルを学習により生成しておき、このモデルを用いて異常検知を行うことも可能である。
【符号の説明】
【0078】
10 異常検知装置
11 入力部
12 演算部
13 出力部
14 記憶部
21 推論部
22 誤差算出部
23 コード更新部
24 異常検知部
30 モデル生成装置
31 入力部
32 演算部
33 出力部
34 記憶部
41 推論部
42 誤差算出部
43 モデル更新部