LoginSignup
0
1

More than 1 year has passed since last update.

Microsoft Azure CustomVisionを使って、犬種判別AIモデル作成

Last updated at Posted at 2023-01-22

はじめに

AIを学習し始めて3か月ほど、Kaggleなどを用いてAIモデル作成の学習などをしていた。
画像認識に興味を持って、犬が好きだから犬種を画像から判別出来るAndroidアプリを作りたいと思ったのが事の発端。

どうやら、TensorFlowで作成したモデルをtflite(TensorFlow Lite)形式に変換して軽量化すれば、AndroidでAIモデルを使用することが出来るらしいので、tflite形式の犬種判別のAIモデル作成することを一旦のゴールとする。

TensorFlowを用いて自力で作成

犬のデータセットをここから入手。

大体1種につき200枚ほど、合計120種類ほどの犬種の画像が取得できる。

これを用いて、CNN(畳み込みニューラルネットワーク)を用いて、モデルの作成を行った。
本筋じゃないので経過は割愛するが、結果的にモデルの作成は出来たが、結果は精度18%程。
これでは全然ダメ。
また、モデル作成にGoogleColaboratoryを使用していたが、無償版での性能問題などもあり、自力でモデル作成を行う事を断念した。

CustomVisionの使用

自力で作成することは難しかったため、既存のAPIを利用してモデルの作成が出来ないかと思い、諸々検索した結果、CustomVisionが出てきた。
早速使ってみる。
image.png

リソースの作成

image.png

作成オプションは予測と学習を行うため両方を選択。
名前に任意の名前を入力して、トレーニング価格レベルを選択すれば完了。
価格レベルは無料で使えるFree(F0)を選択。(別途作成してたので、画像上では注意書きが出てしまっている)

リソースの作成が行えたら、CustomVisionポータルへ移動
https://www.customvision.ai/

サインインを行い、この画面に進めばOK
すぐにAIモデル作成が出来るようになる。
image.png

モデル作成

NEW PROJECTを選択するとこのような画面が出るので、自分の要件に合わせて埋めていく
image.png

今回は画像の分類なので、ProjectTypesはClassification、
1枚の画像に1つの答えを付けていくので、Classification TypesはMulticlass、
最後にDomainsは、TensorFlow Lite形式で出力したいので、General (compact) [S1]を選択。

これらについて、詳しくは下記を参照。

その後は、ひたすらフォルダから画像をアップロードしていき、タグ付けを行っていく。
そこそこ大変だが、複数をまとめてアップロード、タグ付け出来るため、今回のデータセットのように学習用の画像がフォルダ分けされていればすぐ終わる。
image.png

3000枚ほどの画像のアップロードとタグ付けが完了。
image.png

あとは、右上のTrainを押下するのみ。

モデル作成結果

モデルの作成が完了

image.png

結果はこの通り、なんと精度9割越え

■各数値のザックリ説明

  • Precsion:精度 画像の分類結果が、設定したタグと合っているかどうか
  • Recall:再現性 画像がそもそも犬として判別されているか
  • AP:平均精度 精度と再現性から出される数値

詳しくはこちら

作成したモデルを使用してテストを行う事も出来る。
試しに、適当に学習に使用していない柴ちゃんの画像をテストしてみたが、このように99.9%柴犬と判別された。
image.png

モデル出力

あとはこのモデルを出力するだけ。
画面右上のExport -> TensorFlow -> TensorFlow Liteを選択してダウンロードするのみ。

image.png

image.png
無事、tflite形式のモデルの作成に成功しました。
あとはこれをAndroidアプリから呼び出すだけ。

まとめ

正直、CNNを使用して自力で作っていたのが考えられないくらい、簡単に高精度のモデルが作れる。
他にもモデルをExportするだけではなく、直接CustomVisionを呼び出してモデルを利用することもできるらしい。
他にもいろいろなAPIがあると思うが、これらを使う事でAIについてあまり知らなくても直感的にモデル作成を行う事が出来る。

APIを使って実現可能なものであれば、これらを使って学習コストをかなり抑えることが出来ので、
自力でのモデル作成と既存API利用の取捨選択が出来るようになるのが効率が良いと感じた。

次回は他のAPIなども利用してみて、良し悪しをそれぞれまとめてみたい。

0
1
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
1