yolo
pytorch
python
flutter
目次
結論
- Yolov8のModelをFlutter側で使う事はできない。
(できてもやらない方がいい)
対象
- tfliteを利用している
- tflite_flutterを利用している
- pytorch_mobileを利用している
背景
麻雀の手牌をスマホで画像を取ることで牌を読み取ってくれるアプリを実装することになりました。
試したこと
- tflite + tensorflow
- tflite_flutter + tensorflow
- tflite_flutter + Yolo
- pytorch_mobile + Yolo
tflite + tensorflow
1.tfliteとTensorflowの組み合わせになります。
- 結論:動作しない。
- 2年間サポートされていない。
- 2年間サポートされていない。
tflite_flutter + tensorflow
2.tflite_flutterとTensorflowの組み合わせになります。
- 結論:牌が一つであれば動作する。
- 複数個でも画像分類ができそうだが、機械学習の深い知識が必要になる。
以下のログ画像ではJIHAI_KAZEHAI_TON
が39%の確率というログを返却してくれています。
tflite_flutter + Yolo
3.tflite_flutterとYoloの組み合わせになります。
- 結論:動作しない
- tflite_flutterがYolo(.pb)のモデルに対応していない
- tflite_flutterがYolo(.pb)のモデルに対応していない
- 原因:41のラベルの数を設定しているがYoloモデルでは異なる数字を変えてしまう
- デバック結果の比較
- Tensorflowのモデルの場合:
shape[1]
が41で正しい - Yoloのモデルの場合:
shape[1]
が25200で不正
- Tensorflowのモデルの場合:
- デバック結果の比較
pytorch_mobile + Yolo
4.pytorch_mobileとYoloの組み合わせになります。
- 結論:動作しない
- Androidの画像分類は可能だが、IOSでErrorとなる。
感想
API通信が発生するのでMobile側で動作させたかったのですが最終的にPythonサーバーをVPSで動かすこととなりました。
今回の学習したことをまとめました。
- Flutter系のパッケージは最終更新日を確認する。月単位で保守されてないだけで動作しないことがある。
- Pytorch系とTensorflow系のモデルは互換性があまりよくない。
- 最新の機械学習系ライブラリを使いたいならPython一択。
- Androidは動いてもIOSは動かない事が多い。
- Tensorflowの画像分類モデルでは精度が低くYoloの画像分類モデルを使用した方がいい。
- 色々考慮するとFlutter側でモデルを動作させない方がいい。
これで、以上になります!
最後までご覧いただきありがとうございます。