はじめに
普段IT企業で働いてますプログラマー芸人、ジンバです!
以下のように自作の画像分類AIを使ったアプリを簡単に作れる方法をご紹介します!
手順
手順は以下です。
- 好きな画像をたくさん集める!
- Teachable Machineに画像をアップロードして、モデルを入手!
- GitHubから画像分類のFlutterプロジェクトを入手!
- モデルを入れたら完成!
1.好きな画像をたくさん集める!
まずは分類したい画像を集めましょう!手動は面倒なので、Google Colaboratoryで以下のコードを実行すると楽ですよー!
# 検索サイトから画像ファイルを収集するクローラ
!pip install icrawler
import tensorflow as tf
# icrawlerのBingImageCrawlerクラスを利用可能にする
from icrawler.builtin import BingImageCrawler
# 「/apple」を保存フォルダに指定して、 BingImageCrawlerのインスタンスを生成する
crawler = BingImageCrawler(storage={"root_dir": "apple"}, downloader_threads=4)
# Bingで「リンゴの写真」というキーワードでヒットした画像を収集する
crawler.crawl(keyword="リンゴの写真", max_num=100)
# zipファイル作る
!zip -r /content/apple.zip /content/apple
# zipファイルをローカルにダウンロード
from google.colab import files
files.download("/content/apple.zip")
「リンゴ、ゴリラ、ラーメン」の画像をダウンロードしました!
Teachable Machineに画像をアップロードして、モデルを入手!
Teachable Machine は、短時間で簡単に機械学習モデルを作成できる、ウェブベースのツールです。↓
https://teachablemachine.withgoogle.com/
では使ってみましょう!
まず「新しいプロジェクト」で「画像プロジェクト」を選択します。標準の画像モデルで良いでしょう。
以下のような画面になります。クラス名を変えられます。
「アップロード」を押して、先ほどダウンロードした画像をアップロードします。
ほかの画像もアップロードしたら、「モデルをトレーニングする」を押します。
すると「プレビュー」が表示されます。
右上をWebcam→ファイルに変更して、テスト用の画像を上げてみましょう。
精度100%!簡単すぎましたかね。
「モデルをエクスポートする」から「Tensorflow Lite(量子化済み)」を選択してダウンロードしましょう!
GitHubから画像分類のFlutterプロジェクトを入手!
開発環境は以下です
Mac Book Pro
Android Studio Chipmunk | 2021.2.1
Dart SDK version: 3.0.6
Flutter 3.10.6
下からFlutterの画像分類プロジェクトをダウンロードします。
https://github.com/tensorflow/flutter-tflite/tree/main/example/image_classification_mobilenet
「image_classification_mobilenet」だけでいいです。やり方ですが、キーボードの「.」を押すとVSCodeのようなレイアウトになってフォルダをダウンロードできます。
これをAndroid Studioで開いてみてください。
pubspec.yamlの「tflite_flutter」でエラーを出たら、最新バージョンを入力してください。
モデルを入れたら完成!
「assers/models」にデフォルトで「labels.txt,mobilenet_quant.tflite」が入っています。
削除して、先ほどダウンロードしたモデルとラベルテキストに入れ替えてください。
「lib/helper/image_classification_helper.dart」のmodelPathを先ほど入れ替えたモデル名」に変えます。
完成です!
おわりに
思ったより簡単ではないでしょうか!音声とかもありましたので、そちらもチャレンジしてみたいですね!
告知
TikTokで「プログラミングやってる人しか分からないネタ動画」をあげてます!ぜひご覧ください!↓
https://www.tiktok.com/@jimba_games