17
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

がんばらない人のための画像検査機

Last updated at Posted at 2020-11-07

Microsoft lobeでモデル作ってエクスポートして、SDTestをフロントエンドとして動かす、以上!
と言うわけで、MVTec異常検知データセットをlobeに食わせてみました。
2020-11-07_18h46_47.png
異常検知は@shinmura0さんの記事に触発されたと同時期くらいにSDTestがリリースされたこともあり、ローコストで画像検査機を開発できるなと感じたところから全俺の異常検知歴史が始まりました。

@daisukelabさんのMVTec異常検知データセットへの深層距離学習応用でモデルをいい感じに調教する手法もめっちゃ参考になります。colab上で学習すれば非力なマシンでもちゃんと学習できるし、うまくやれば本当に現場で使えるレベルのものになると確信していたものの、学習コストがやや高めというか、めんどくさいのがいまいちだなと思ってました。

そんな中、lobeのデモ動画をみて、これやんっ:bangbang:
https://youtu.be/Mdcw3Sb98DA

何がすごいって、モデルの作成が完全にノーコード。しかもどの程度の精度で、どの画像が推論ミスってるってところまで、わかりやすく表示される。学習ボタンとかなくて自動で学習始まるのもよき。追加学習も自動なの更によき。
2020-11-07_18h48_56.png
あってたら:white_check_mark:、間違ってたら:no_entry:で勝手に追加学習始まる
作成したモデルはエクスポートして、lobe-pythonで


from lobe import ImageModel
from PIL import Image

model = ImageModel.load('path/to/exported/model')
img = Image.open('path/to/file.jpg')
result = model.predict(img)

とやるだけで推論できちゃうので、勢い余ってSDTestに突っ込んでみました。
2020-11-07_19h04_51.png
lobe-pythonは、Python 3.6 on Windowsで動かなかったので、Anacondaで3.7で環境を作成しなおして、SDTestのrequirementsのバージョンを調整するなど。

###### Requirements with Version Specifiers ######
fbs[sentry] == 0.8.3
PyQt5 == 5.13.*
PyQtWebEngine == 5.13.*
PyInstaller == 3.4
tensorflow == 1.15.*
keras == 2.2.*

lobeはTensorflow-liteもサポートしていて、Raspberry Pi 4で動くと公式にある(Pi3はうまくいくときといかないときあるみたい)。SDTestも非公式だけどPi 4なら動いちゃったりします。

ロボットとかPLCとの連携は、connect_to_dobotブランチのsrc/main/python/model/serving_dobot.pyあたりを参考に、socketライブラリとかで通信すれば、周辺装置の方がたけーよっていうくらい激安かつ汎用性高めな、がんばらない人のための画像検査機、できちゃいます。

17
15
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
17
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?