• Flutter

TensorFlow Lite Model Makerでカスタムモデルを作成する

TensorFlow Lite Model Makerでカスタムモデルを作成する

スマートフォンアプリで画像分類や物体検出を行う際に使用する、TensorFlow Lite形式のカスタムモデルを作る方法をご紹介します。
作成したカスタムモデルは直接またはML Kitを介してスマートフォンアプリに組み込むことが可能です。
また、カスタムモデルの作成にあたり検出したい物体の画像を大量に用意する必要がありますが、必要な数の画像を用意することが難しい場合を想定し、用意した画像からデータを水増しする方法についてもご紹介します。

実行環境はGoogle Colaboratoryを使って進めていきます。
なお、この記事は2022年11月28日に作成しています。

検出対象の画像をGoogleドライブに保存する

カスタムモデルに検出させたい対象の画像データをGoogleドライブに保存します。
画像のファイル名は半角英数とアンダースコアのみ使用できます(例:img_0001.jpg)。
この後の手順でデータの水増しをする場合は「マイドライブ/Colab Notebooks/imagegenerator/input」に保存します。
水増ししない場合は カスタムモデル作成用に画像を分類する をご覧ください。

画像データを水増しする

リンク先のGoogle ColabノートブックをGoogleドライブにコピーしてください。
コピー後に上から順に実行していきます。
次の画像の赤枠で囲った再生ボタンを押すと実行されます。

2つ目のコード実行時にGoogleドライブマウント時に接続の許可を求める別ウィンドウが表示されるので許可します。
別ウィンドウが表示されず、マウントされない場合はブラウザ等がポップアップブロックしている場合があるのでご確認ください。

3つ目のコード実行後に「マイドライブ/Colab Notebooks/imagegenerator/output」に水増し画像が保存されます。

カスタムモデル作成用に画像を分類する

用意した画像を次のフォルダ構造になるようにし、「マイドライブ/Colab Notebooks/train」に配置します。

[ラベル名]
┗[画像ファイル]

ラベル名や画像ファイルには半角英数とアンダースコア(2文字目以降)のみ使用できます。

カスタムモデルを作成する

配置した画像を元にカスタムモデルの作成を行います。
リンク先のGoogle ColabノートブックをGoogleドライブにコピーしてください。
コピー後に上から順に実行していきます。
3つ目のコード実行後にTensorFlow Lite形式のカスタムモデルが「マイドライブ/Colab Notebooks/model.tflite」に保存されます。

まとめ

TensorFlow Lite形式のカスタムモデルを作る方法をご紹介しました。
FlutterとML Kitを組み合わせて、ほぼ遅延のない物体検出アプリを開発することも可能なので、改めて記事にしたいと思います。

  • Flutter
宮野 比伊呂

MIYANO HIIRO Chief Technology Officer / 宮野 比伊呂

記事をもっと見る

Our Signature Products, Born from Insight.

提案から生まれた、
MARBLEの代表プロダクト

お客様の課題を起点に、MARBLEが自ら構想し、
仕組みからデザイン、開発、運用まで一貫してつくり上げたプロダクト群です。
業務改善、運営効率化、新たな顧客体験の創出など、
企業の事業成長に直結する“実装された解決策”を形にしています。

  1. 01 入退場システム

    Entry System

    入退場システムのイメージ

    全国15店舗、会員数50万人以上のこども向けパークで稼働する入退場・決済・顧客管理システム。
    受付の効率化と回転率の向上を実現し、運営データの一元管理を可能にしています。

  2. 02 自動配送システム

    Delivery Routing

    50台のトラック、年間350日の配送を最適化する自動ルート生成システム。
    紙のFAXで届く約500件の配送情報をデジタル化し、最適ルートを自動で算出することで、大幅な業務効率化を実現しました。

  3. 03 会話型コマース連携

    Auto Routing

    ライブチャットでの接客からEC購入までを一つの導線でつなぐ会話型コマースシステム。
    リアルタイムの対話で顧客の購買意欲を高め、高いコンバージョン率につながる仕組みを構築しています。