[アドカレ2023] Amazon Lookout for Visionで割れた柿ピーを検出してみた

はじめに

DENET ADVENT CALENDAR 2023 12月4日担当のomkです。
この時期はやはりアドカレの波が強いですね。各所で興味深い記事が上がっていて非常にワクワクします。

さて、AWSの画像AIサービスといえばRekognitionをイメージする方が多いと思います。
しかしAmazon Lookout for Visionも同じような操作内容で利用できてかつ使いやすいサービスなのでこの場で紹介していきます。

Rekognitionは以下の記事で紹介していますのでよかったらこちらも見てみてください。
SageMaker Ground Truthでラベリングした画像をRekognitionのカスタムラベルに利用してみた

免責事項

本記事はあくまでAWSの技術検証を目的としており、特定の製品・企業をどうこう言う目的はございません。
あと食べ物は口に入れば同じ派です。

やってみた

クリスマスといえば柿ピーですね。ワインによく合います。

ということで今回は柿ピーの写真から割れている柿の種を検出します。
イメージとしては工場で不良品を検出するような感じです。

Amazon Lookout for Visionは画像ベースの異常検出サービスで、セグメンテーションという手法(画像のピクセル単位で分類する)を用いる点でRekognitionと異なります。
使い方の例としてはAWS公式が挙げている車の傷の検出がわかりやすいと思いますのでこちらも合わせて御覧ください。
https://docs.aws.amazon.com/ja_jp/lookout-for-vision/latest/developer-guide/understanding.html

柿ピーの写真を用意し(30枚程度あれば良いとのこと)、画像にラベル付けを行って、トレーニングすることで分類モデルを作成します。

データセットにラベル付け

柿の種の断面が見えている画像を異常とし、対象の箇所をポリゴンで囲ってアノテーションします。

同じように十分数のデータを用意します。

自分でトレーニングデータとテストデータを分けることも出来ますが、単一のデータセットで登録しておくと自動で割り振ってくれます。
個人的に使いやすいと感じたのは、S3に写真を配置する際にパスで「normal/」「anomaly/」で分けておくことで予め正常異常を分類してくれる点です。
そのあとはanomalyの写真にラベル付けを行うだけで良かったのでかなり時短になりました。
それでもラベル付け作業はしんどい……!!

トレーニングとテスト

「モデルをトレーニング」を押すだけで自動でトレーニングとテストをしてくれます。
テストデータも前述の通り、自動でデータセットから割り振ってくれるのでここは基本待つだけです。
今回は40分弱かかりました。

テストデータから精度とリコールとF1スコアを出してくれます。
どの値を重視するかはユースケースやフローに合わせる必要がありますが今回は全体的に高い数値が出たのでまあいいやで進めます。

モデルを使用

あとは作成したモデルを使ってワークロードを実行します。
AWS CLIを用いてクラウド上で実行することやIoT Greengrassを用いて実行できます。

が、今回は「トライアル検出」機能を使います。
トライアル検出ではジョブ1回1回で推論ユニットを立ち上げて実行して停止します。
ので1回にかかる時間が長いですがこういった確認的な作業における費用を抑えられます。

では以下の画像で実行してみます。

しばらく待ちます。
結果が出ました。

ちゃんと異常として検知されました。
見比べてみてもかなりしっかり出してくれています。
しっかり出るように多めに画像用意したんですけどね。

おわりに

かなり簡単に異常を検出出来ました。
必要な作業がほぼデータセットの用意とそれらに対するラベル付けだけでしたので使いやすく汎用性も高いサービスだと感じます。
機会があれば他のAmazon Lookout系のサービスも試してみたいですね。

以上、明日もアドカレの記事が上がりますのでお楽しみに!!

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA