2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【超簡単!】自作の画像分類AIを載せたスマホアプリをFlutter✖︎Teachable Machineで作ろう!

Last updated at Posted at 2023-10-28

はじめに

普段IT企業で働いてますプログラマー芸人、ジンバです!
以下のように自作の画像分類AIを使ったアプリを簡単に作れる方法をご紹介します!

スクリーンショット 2023-10-28 20.26.43.png

手順

手順は以下です。

  1. 好きな画像をたくさん集める!
  2. Teachable Machineに画像をアップロードして、モデルを入手!
  3. GitHubから画像分類のFlutterプロジェクトを入手!
  4. モデルを入れたら完成!
説明していきます。

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")

こんな感じ↓
スクリーンショット 2023-10-28 18.28.12.png

ダウンロードされています↓

スクリーンショット 2023-10-28 18.30.10.png

「リンゴ、ゴリラ、ラーメン」の画像をダウンロードしました!

スクリーンショット 2023-10-28 18.39.00.png

Teachable Machineに画像をアップロードして、モデルを入手!

Teachable Machine は、短時間で簡単に機械学習モデルを作成できる、ウェブベースのツールです。↓
https://teachablemachine.withgoogle.com/

では使ってみましょう!

まず「新しいプロジェクト」で「画像プロジェクト」を選択します。標準の画像モデルで良いでしょう。

スクリーンショット 2023-10-28 18.47.17.png

スクリーンショット 2023-10-28 18.47.27.png

以下のような画面になります。クラス名を変えられます。

スクリーンショット 2023-10-28 18.56.25.png

「アップロード」を押して、先ほどダウンロードした画像をアップロードします。
スクリーンショット 2023-10-28 18.59.53.png

ほかの画像もアップロードしたら、「モデルをトレーニングする」を押します。
すると「プレビュー」が表示されます。
スクリーンショット 2023-10-28 19.04.47.png

右上をWebcam→ファイルに変更して、テスト用の画像を上げてみましょう。

スクリーンショット 2023-10-28 19.11.32.png

精度100%!簡単すぎましたかね。
「モデルをエクスポートする」から「Tensorflow Lite(量子化済み)」を選択してダウンロードしましょう!
スクリーンショット 2023-10-28 19.13.14.png

以下のようにダウンロードできたら完了です!
スクリーンショット 2023-10-28 19.16.51.png

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

スクリーンショット 2023-10-28 19.28.34.png

「image_classification_mobilenet」だけでいいです。やり方ですが、キーボードの「.」を押すとVSCodeのようなレイアウトになってフォルダをダウンロードできます。
スクリーンショット 2023-10-28 19.29.08.png

これをAndroid Studioで開いてみてください。

スクリーンショット 2023-10-28 19.39.37.png
pubspec.yamlの「tflite_flutter」でエラーを出たら、最新バージョンを入力してください。
スクリーンショット 2023-10-28 19.45.00.png

モデルを入れたら完成!

「assers/models」にデフォルトで「labels.txt,mobilenet_quant.tflite」が入っています。

スクリーンショット 2023-10-28 19.49.42.png

削除して、先ほどダウンロードしたモデルとラベルテキストに入れ替えてください。
スクリーンショット 2023-10-28 19.53.10.png

「lib/helper/image_classification_helper.dart」のmodelPathを先ほど入れ替えたモデル名」に変えます。

スクリーンショット 2023-10-28 19.54.20.png

あとは実機でビルドしてみましょう!
スクリーンショット 2023-10-28 20.26.43.png

完成です!

おわりに

思ったより簡単ではないでしょうか!音声とかもありましたので、そちらもチャレンジしてみたいですね!

告知

TikTokで「プログラミングやってる人しか分からないネタ動画」をあげてます!ぜひご覧ください!↓
https://www.tiktok.com/@jimba_games

スクリーンショット 2023-10-28 20.02.11.png

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?