TFLiteを使ったAndroid上でのセマンティックセグメンテーション Part 2
この記事は弊社のAbirがMediumに投稿した以下の記事を日本語訳したものです。
目次
このシリーズのパート1では、Pasal-vocデータセットを使ってDeepLab-v3モデルを学習し、そのモデルを257x257の入力サイズで frozen_inference_graph.pbファイルとしてエクスポートする方法を学びました。今回は、この凍結グラフを画像セグメンテーション用のandroidアプリで使えるTfLiteモデルに変換する方法を紹介します。
1. インストール前提条件
- TensorFlow v2.2.0
- Numpy
$ pip install tensorflow==2.2.0
$ pip install numpy
bashスクリプトを使って同じモデル
ここでは、パート1で学習したpbモデルを使用します。または、このbashスクリプトを使って同じモデルをダウンロードすることもできます。スクリプトをダウンロードして、プロジェクトのrootで実行してください。
プロジェクトルートに展開
$ bash download.sh
モデルを含むzipファイルをダウンロードし、プロジェクトルートに展開します。
2. モデル変換のための読み込み操作
では、convert.py という名前の python スクリプトを作成し、必要なパッケージをインポートしてみましょう。
import os
import numpy as np
import tensorflow as tf
print(tf.__version__)
次に、最後のステップでダウンロードしたモデルのパスを指定します。
MODEL_FILE = "frozen_inference_graph_257.pb"
TensorFlow TFLite コンバータを使用して我々のTensorFlowモデルのグラフ定義 frozen_inference_graph_257.pbをmodel.tfliteに変換しましょう。次の関数を使ってTensorflowモデルをコンバーターに読み込ませましょう。
参考文献
- https://github.com/tensorflow/models/tree/5d36f19bd3556606e6d294d5690cc7e96679b929/research/deeplab
- https://www.jianshu.com/p/dcca31142b99
- https://github.com/tensorflow/tensorflow/issues/23747#issuecomment-562964513
- https://github.com/tensorflow/models/tree/master/research/deeplab/g3doc
- https://github.com/tensorflow/models/tree/5d36f19bd3556606e6d294d5690cc7e96679b929/research/deeplab
- https://www.jianshu.com/p/dcca31142b99
- https://github.com/tensorflow/tensorflow/issues/23747#issuecomment-562964513
- https://github.com/tensorflow/models/tree/master/research/deeplab/g3doc