0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

車両画像を自動カテゴライズしたいので AWS Rekognition Custom Labels を試してみた

0
Posted at

📝この記事について

カババ開発者ブログ記事の転載記事です。著者は同一人物であり、内容的にも全く同じものです。

弊社の 中古車フリマサービス「カババ」では、大量の車両の(取材)写真を公開しています。

image.png

この車両画像がカテゴライズされることによって、以下のようなことが実現できそうです

  • 車両画像の自動並び替え
  • インデックスを付けることで 任意の車両の 任意の画像をすぐに探せる(ようなUI)

また、1台の車両に対して100枚前後の写真があるため、手作業でのカテゴライズは現実的ではなく、何らかの自動化の仕組みが必要と思います。
これが実際にできそうなのかどうかの技術調査として、 __ AWS Rekognition Custom Labels __ を試してみました。

🤖 AWS Rekognition Custom Labels とは

  • AWSが提供する画像認識サービスの一つ
  • 自分で用意した画像データをもとに、独自のラベル(分類 = Cutom Label)を学習させることができる
  • 学習したモデルに対して画像を入力すると、どのラベルに該当するかと、その確からしさ(スコア)を返してくれる

🎯 検証したいことと期待する結果

今回検証したいのはシンプルで、

  • 任意の車両画像をAPIに入力したときに、あらかじめ定義したラベルのいずれかに分類されること
  • その判定結果に対して、ある程度信頼できる精度(スコア)が返ってくること

です。

想定しているラベル例

  • フロント(正面)
  • リア(後方)
  • 内装(シート・ダッシュボード)
  • エンジンルーム
  • ホイール

など

以下のような使用感のイメージです。

image.png

🧪 実験・作業の流れ

📦 学習用画像の用意(ここが一番大変 💦 )

  • 画像ストレージから、数十台分の車両画像をダウンロードしてきます。
  • ラベルごとにフォルダを分けて画像を配置
    • 1ラベルあたり 30〜50枚程度
    • 車両1台あたりの画像は100〜150枚程度

テキストで書くと数行ですが、かなり地道な作業で、ここが一番時間がかかりました 😭

分類分けされた画像のイメージ

image.png


☁️ 学習用画像をS3へアップロード

  • フォルダ構造ごとS3へアップロード(フォルダ名=ラベルとして認識されるため)します。
  • また、学習用データとテスト用データのフォルダを分けて用意しておきます。

🧠 モデルの学習

rekognition のメニューで、プロジェクトを作成します。

プロジェクトの作成後、データセットの作成を行います。トレーニング用とテスト用のフォルダに入れたので、スクショの項目を選択します。また、フォルダをラベルとして整理したので、「ラベルの自動割当」のチェックも行います。

image.png

データセットが意図通り作成できているか、ラベルが意図通り着いているかが確認できます。

image.png

データセットがうまくできていれば、モデルのトレーニングが開始できます。学習時間はデータ量に応じて変動するようです。また、学習後は自動でテストが走り、モデルの精度を評価してくれます。

image.png

ここまでで下準備が完了です(長い!)


🚀 モデルの起動

では学習後のモデルを実際に試してみるのですが、モデルはそのままだと使えず、「起動」する必要があります。

image.png


🧪 実際にAPIを叩いてみる

起動できたら、実際にモデルに画像を判定させてみましょう!
CLIのサンプルコードが出てくるのでターミナルで実行してみます

image.png

ターミナルでの実行

image.png

上記のターミナルの結果をまとめたイメージです。
3.jpg の期待値は cockpit だったのですが、画像の角度的に誤判定(=ラベルなし)されてもおかしくなさそうと思いました。

image.png

📊 結果と所感

結果

  • 今回用意した約10種類のラベルについて、目視で確認した限りでは、想定したラベルに対して概ね正しく分類されていました。 ※上記では4つの画像しか試してませんが、 20画像ほど判定を試してみています。
  • ただし、実運用ではラベル数が数十種類になる想定のため、ラベルが増えた際の誤判定は検証が必要そうです

💭 感想

学習データの用意がとにかく大変

  • 作業自体はシンプルだが、量が多く手間がかかります。
  • 分業や外注なども検討できると良いと思いました。

モデルの起動コストに注意

  • サーバレスではなくでAPI実行回数による従量課金ではなく、 モデルを起動している時間に対して課金される というのが場合によっては落とし穴になりそうです。
  • 1ユニットを立ち上げている時間あたりの単価もすごく安いというわけではないため、使い所は見極める必要があります。

そのため、

  • どの程度業務効率化できるか
  • コストに見合うか

は事前にしっかり検討する必要がありそうです

最後に

カババに蓄積されたデータとAI・ML系を組み合わせたとても興味深い調査でした。
業務やプロダクトの改善に直結しそうな調査なので、調査しながらいろいろ考えることが多く楽しかったです。
同様のことをやるための選択肢は他にもありそうなので、今後 rekognition custom labels を本番利用するかどうかは検討段階ですが、有力な選択肢の一つにはなりそうです。

ここまで記事を読んでいただきありがとうございました。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?