SSIMを構築して結果を確認した
ここでMVTecのbottleを使用してSSIMオートエンコーダでの検証を行う。
https://www.mvtec.com/company/research/datasets/mvtec-ad
前回はMVTecADのタイルを使用した
しかしながら、結果は上手く復元することが出来ず判別には利用できそうにもない。
ここで、改めてMVTecソフトウェア社の論文から参照すると
・提供されるデータはオブジェクト系とテクスチャ系に分けられる
・テクスチャ系とは木目やタイルなど同じ系統だが分布がランダムなものを示す
・オブジェクト系とは工業製品等の同じ位置で撮影されるようなデータを示す。
・SSIMオートエンコーダはテクスチャ系には弱い
とある。
ではオブジェクト系ではどうなるのかをここで検証する。
とする。
googlecolabのGPUを使用するので、グレースケール変換して実行する。
結果
図の見方
縦軸 上から入力、出力、差分となっている
横軸 枚数 となっている
正常
異常
結果
ものすごい薄いので画像を0,1にしてみる。
sabun = cv2.threshold(sabun, 45, 255,cv2.THRESH_BINARY)
この一文を追加してみる。
重要そうなのは閾値
正常
異常
これをみると異常と正常の出力がいかに違うかが分かると思う。
後は1の画素数とかを調べれば閾値がだせる。
しかしながら細かいものとか(下図の左から二番目の画像は中心に異常個所があるが、うまく取り出せていない。
異常が大きい箇所ではくっきりと形状が分かるくらいにはなっている