Cloud AutoML Visionを使ってカレイの種類を識別してみた

flatfisher
google-cloud-jp
Published in
6 min readNov 6, 2018

本業や趣味でGCP, Actions on Google, Androidなどの技術を触っている fish です🐟 Cloud Auto ML Visionを使って

カレイの種類を識別してみたので、その結果を紹介したいと思います。

Cloud Auto ML Vision についてはこちらをご参照ください。
Cloud Auto ML Vision の事例はこちらをご参照ください。

カレイの識別について

お寿司や小料理屋などで身近なカレイですが、食用だけでも30種類以上、世界には100種類以上確認されています。慣れている人は簡単に見分けることができますが、特徴を知らないと見分けるのが難しい魚です。Cloud Auto ML Vision を使ったらもしかして見分けることができるのでは?と思いトライしてみました。

Cloud Vision API ではどこまで識別できるのか?

カレイやヒラメの総称であるFlatfishまで識別できました。

教師データは自分で釣って集める!

私はfishと呼ばれるほどの釣り好きです。せっかくなのでお店で買ったカレイではなく、実際に自分で釣ったカレイで教師データを集めることにしました。つまり最低2種類以上のカレイを釣る必要があります。

釣れたのはイシガレイとマコガレイ

イシガレイとマコガレイの2種類カレイを無事釣ることができました。教師データとしてそれぞれ1200枚ほど画像を撮りました。

イシガレイ

マコガレイ

Cloud Auto ML の使い方

Datasetの作成、画像のラベリング、学習、評価の具体的な方法についてはこちらをご参照ください。

GCSに画像をアップロード

画像を格納しているディレクトリから、全ての画像をgs://{PROJECT-ID}-vcm/{DATASET}/images/ の中にアップロードします。

$ gsutil cp -r ./ gs://{PROJECT-ID}-vcm/{DATASET}/images/

ラベリング

GCSのパスとラベル情報が入ったCSVファイルを作成し、画像を入れた同じバケットにアップロードします。

$ gsutil cp labels.csv gs://{PROJECT-ID}-vcm/{DATASET}/images/

labels.csv の例

・・・
gs://test-vcm/dataset/images/IMG_9997.JPG,stone_flounder
gs://test-vcm/dataset/images/IMG_9997.JPG,stone_flounder
gs://test-vcm/dataset/images/IMG_9997.JPG,stone_flounder
gs://test-vcm/dataset/images/IMG_9997.JPG,pleuronectes_yokohamae
gs://test-vcm/dataset/images/IMG_9997.JPG,pleuronectes_yokohamae
gs://test-vcm/dataset/images/IMG_9997.JPG,pleuronectes_yokohamae
・・・

イシガレイがstone_flounder、マコガレイがpleuronectes_yokohamaeという名前でラベル付けしました。準備ができたらAuto ML のコンソールから ADD IMAGESをクリックし、gs://{PROJECT-ID}-vcm/{DATASET}/images/labels.csv を指定し画像のインポートを開始します。

Train

画像のインポートが完了したら、TRAINをクリックし学習を開始します。学習が完了すると登録済のメールアドレスに完了の連絡がきます。

学習結果

Precision99.6%という結果になりました。

予測

(本当に当たのるか?)過去に釣ったマコガレイやイシガレイの画像でPREDICTしました。

見事にイシガレイとマコガレイの識別に成功しました!
カレイの裏側(白いほう)でも識別できたことは本当に驚きました。

識別に失敗した画像も多数あった

全ての画像が正しい識別ができたわけではなく、画像によってはどちらの判別もできなかったり(それぞれが50%前後)、マコガレイなのにイシガレイ99%と予測したものもありました。

これからの課題

  • 識別するカレイの種類を増やす (2種類は少ないので)
  • 画像にぼかしを入れたり、角度をつけるなどして教師データを増やす
  • None_of_the_above(定義されたラベルのいずれとも一致しない画像)を入れる
  • たくさん釣る!

(おまけ)この実験に使った時間

  • 画像をGCSにアップロード: 約120分(画像の整理時間含む)
  • Auto ML に画像をインポート: 約60分
  • 学習時間: 約15分
  • 釣りをしていた時間: 12時間

--

--