LoginSignup
5
7

Flutterで使える機械学習ライブラリ

Last updated at Posted at 2020-12-06

この記事

自然言語処理/画像認識/音声認識等をFlutter(Androidk及びiOSのみ)で使えるようにしたパッケージの機能の紹介します。
使い方や詳しい紹介はこの記事ではしないので公式やサンプルを参照してください。

オールジャンル

mlkit

概要

Firebase ML Kitの機能を使えるようにしてくれる非公式プラグイン。
エッジ(デバイス/端末 以下エッジ)のみで動作します。
作者によれば非公式かつ開発中のためFlutter公式パッケージ(firebase_ml_vision, firebase_ml_custom)の使用も検討して欲しいとのこと。

機能

  • 画像文字認識
  • 顔認識
    • 顔検出
    • 輪郭認識
  • バーコードリーダー
  • ラベル認識
  • 言語識別
  • カスタムモデル

所感

使えるパッケージですが、もしこれらの機能を使うのであれば公式のものを使用してしまいます。

言語関連

言語翻訳

firebase_mlkit_language

概要

Firebase ML Kitの言語識別・翻訳の機能を使える非公式プラグイン。
エッジのみで動作します。

機能

  • 言語識別
  • 言語翻訳

所感

速度は早いですが翻訳の質がいまいちかなと思います。
感覚で言えばひと昔前の言語翻訳という印象です。
もしお金があってオンラインでの動作を考えているのであればCloud Speeck API等を使った方がいいかと思います。

音声関連

音声認識

speech_recognition

(注.)更新が2年前なので使用する場合は注意してください

概要

音声認識ができるパッケージ。
内部の処理にはネイティブのAPIを使用(AndroidはSpeechRecognizer、iOSはSpeech API)

機能

  • 音声認識(音声→文字列)

所感

iOSはエッジのみの動作は不可となります。
また開発で使いすぎるとこんな制限が発生することがありました。

flutter_tts

概要

テキストを読み上げしてくれるパッケージ。
内部の処理にはネィティブのAPIを使用(AndroidはTextToSpeech、iOSはSpeech Synthesis API)

機能

  • 音声認識(音声→文字列)

所感

iOSはエッジのみの動作は不可となります。
また使いすぎるとこんな制限が発生することがありました。

画像関連

firebase_ml_vision

概要

Firebase ML Kitの画像関連機能を使える公式プラグイン。
現在エッジ及びクラウド上(対応している機能のみ)での計算にl対応。

機能

  • 顔認識
    • 顔検出
    • 輪郭認識
  • ラベル認識
  • バーコードリーダー
  • 画像文字認識

所感

エッジでもサクサク動きます。

tflite

概要

Tensorflow lite APIの機能が使えるプラグイン。Mobile NetやYOLO等の画像向けの機械学習を触ったことがある人にはおなじみのモデルが用意されてます。

機能

  • クラス認識
    • Mobile Net
  • 物体認識
    • SSD・YOLO
  • セグメンテーション
    • Deeplab
  • 姿勢認識
    • PoseNet

所感

こちらもサクサク動きます。

その他

firebase_ml_custom

概要

Tensorflow Liteのカスタムモデルを最新の状態に維持してくれる公式パッケージです。
公式なので一応載せておきました。

まとめ

Flutterで使える機械学習パッケージを紹介しました。
様々な機能があり、カスタムモデルもあるので一般的な用途であれば事足りるかと思います。

この記事では簡単な概要のみにとどまっています。
実際にプロダクトに組み込みこむ場合は仕様を知ること、ネットワークの制限、エッジでの処理速度等を考慮する必要があるかと思います。

最後にこの記事を読んだ人が参考になったら幸いです。

5
7
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
5
7