【Firebase②】MLKitの概要と、Flutter×MLKitでAIを実装したアプリを作ってみる

⚠️本記事はMLKitの公式チュートリアルを参考にしています

MLKitの概要

✅ Googleが提供するモバイルアプリに特化した機械学習フレームワーク

✅ 既存のTensorflowモデル(学習済み)を端末で手軽に利用可能

✅ iOS, Androidのクロスプラットフォーム開発が可能

✅ 大きく分けて”Vision”(画像認識)と”Natural Language”(テキスト認識)の2つの機能がある

✅ FlutterではFirebaseのPluginを通じて利用可能

MLKitの機能

基本機能

Vision APIs

・顔検出・物体検出・文字認識・バーコード認識・イメージラベリング

Natural Language APIs

・言語識別・翻訳・メッセージの自動返答

✅ 機械学習のオリジナルモデルの利用

・Tensorflow Lite・Auto ML Vision Edge

推論の方法は2通り

✅クラウド上での推論

・⭕️ 高性能 ❌ 時間がかかる

・FirebaseMLではクラウド上での訓練・推論が可能

✅デバイス上での推論

・⭕️ 時間が短い ❌ 精度は比較的低い

本記事で使用するデモアプリ


※公式チュートリアル引用

✅訓練済みのモデルを使用し、顔検出するアプリ
✅デバイス内の画像、またはカメラで撮影した写真を使う

早速アプリを立ち上げていこうと思います、Android Studioを使ってのやり方を下記の記事にまとめましたので、やり方がわからない方は確認をお願いします👇

アプリケーションの実装1(画像の取得と表示→ギャラリーorカメラで撮った写真をUIに表示)1<途中まで>

👇main.dartを編集し、以下のようなデモアプリを作成する

基本設定

“/mlkit_face/pubspec.yaml”の編集

Firebase でプロジェクト作成

👇Firebaseコンソールのトップページから”プロジェクト追加”をクリックして新しいプロジェクトを作成していきます。

この作成方法のフローに関しては、下記の記事の『Firebaseの設定<初期設定>』に詳細を載せていますので、各自で確認してみて下さい👇

プライバシーの設定(カメラ及び端末内の写真へのアクセス許可の付与)

👇”Runner/Runner/Info.plist”をXcodeで開き、下記のように記述を2つ追加し編集します

設定 -iOS-

“/mlkit_face/ios/Runner.xcworkspace”の編集

Cocoapodsを使ったライブラリのインストールができるようにdeploymentターゲットの設定をしていきます。Runner.xcworkspaceをXcodeで開き、プロジェクトのDeployment TargetとターゲットのDeployment infoのiOSバージョンを確認し、Flutterでの設定と合わせます。今回は9.0に合わせて設定します。


/mlkit_face/ios/Podfile”の編集

👇Firebase/MLVisionFaceModelの追記を行います

👇ターミナルでiosフォルダに移動し、アップデートをします

👇このように”/mlkit_face_recognition/Pods/FirebaseMLVision”がインストールされているのが確認できます

👇設定を終え、”コンソールに進む”をクリックすれば完了です

設定 -Android-

FirebaseのAndroid側の設定も同様に行なっていきます。詳細は下記の記事の『Firebaseの設定<Android>』で説明していますので、各自で確認してみて下さい👇

👇設定を終え、”コンソールに進む”をクリックすれば完了です

Androidファイルの追記

 👇”~/AndroidStudioProjects/voting_app/android/app/build.gradle”に追加していきます

 👇”~/AndroidStudioProjects/voting_app/android/build.gradle”に追記していきます

MLKitの導入

アプリケーションの実装2(選択した写真を顔検出できるようMLKitを使いコードを作成)

👇先ほどのコードの続きでmain.dartを更に編集し、以下のように選択した写真から顔検出できる機能を実装します

“MLKitの概要”は以上になります、いかがだったでしょうか?今回は写真から顔を検出する機能を実装してみました。MLKitはこれ以外にも様々な機械学習を用いた機能を実装することができます。

難しい機械学習アルゴリズムを必要としないアプリなら、MLKitを使えば比較簡単に実装できるので、個人アプリで採用するのもいいと思いますし、色々試してみるのも楽しいですよね✊

今回はこの辺で、ばいばい👋