LoginSignup
0
0

Amazon Lookout for Visionの精度検証:位置ずれ・明るさとコントラスト変更・オリジナル画像の比較

Posted at

はじめに

Amazon Lookout for Visionで簡単に異常検知ができた。

MVTecのデータセットは固定の画角、構図、明るさで撮影されている。
位置ずれや明るさ、コントラストなどが異なる画像の場合、Amazon Lookout for Visionでどれくらい検出精度が変化するか試してみる。

  • 学習画像はMVTecのscrewより20枚を使用

  • これをオリジナル画像とする
    グラフィックス24.png

  • 検証画像にはMVTecのscrewのtestフォルダより異常の画像10枚、正常の画像10枚を抽出して使用

画像の準備

位置ずれ画像の準備

元画像(1024×1024)を800×800でランダムクロップした後、1024×1024にリサイズ。

random_crop.py
import os
import glob
import torch
import torchvision
import torchvision.transforms as transforms
import cv2

#変換を定義
transform = transforms.Compose([
    transforms.ToPILImage(),
    transforms.RandomCrop(size = 800)
])

output_dir = './mvtec/screw/train/good_crop/'
os.makedirs(output_dir, exist_ok=True)
# 対象のファイルのリストを取得
files = glob.glob('./mvtec/screw/train/good/*')
for file in files:
    # OpenCVを使って画像を読み込む
    img = cv2.imread(file)
    #BGRをRGBに変換
    img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
    trans_img = transform(img_rgb)
    trans_img = trans_img.resize((1024, 1024))
    fname = os.path.basename(file)
    trans_img.save(f'{output_dir}/{fname}')

学習用データセット(テスト用データセットはオリジナル画像のまま)

グラフィックス22.png

明るさ・コントラスト変更画像の準備

オリジナル画像の明るさとコントラストをランダムに変更

random_bright_contrast.py
import os
import glob
import torch
import torchvision
import torchvision.transforms as transforms
import cv2

#変換を定義
transform = transforms.Compose([
    transforms.ToPILImage(),
    transforms.ColorJitter(brightness=0.3, contrast=0.5)
])

output_dir = './mvtec/screw/train/good_bright/'
os.makedirs(output_dir, exist_ok=True)
# 対象のファイルのリスト
files = glob.glob('./mvtec/screw/train/good/*')
for file in files:
    # OpenCVを使って画像を読み込む
    img = cv2.imread(file)
    #BGRをRGBに変換
    img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
    trans_img = transform(img_rgb)
    fname = os.path.basename(file)
    trans_img.save(f'{output_dir}/{fname}')

学習用データセット(テスト用データセットはオリジナル画像のまま)

グラフィックス23.png

Amazon Lookout for Visionでそれぞれ学習

オリジナル画像の場合

グラフィックス20.png

位置ずれ画像の場合

元データに比べ精度が30%ほど低下。

グラフィックス25.png

明るさとコントラスト変更画像の場合

位置ずれと全く同じ結果が得られた。

グラフィックス26.png

まとめ

Amazon Lookout for Visionでは位置ずれ、明るさとコントラスト変更のいずれも精度が低下した。
Amazon Lookout for Visionを効果的に使用するには少なくとも以下のような条件を満たす画像データを取得するのが良さそう。

  • 検知対象が真ん中に映っている
  • 明るさやコントラストの条件が一定である
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0