TFLiteを使ったAndroid上でのセマンティックセグメンテーション Part 2

この記事は弊社のAbirがMediumに投稿した以下の記事を日本語訳したものです。

目次

DeepLab Image Segmentation on Android with Tf Lite — part 2

Tf Lite Model Conversion & Android App deployment

medium.com

og_img

このシリーズのパート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モデルをコンバーターに読み込ませましょう。

参考文献

記事を書いた人
中村 拓哉

Sapporo AI Lab 事務局長。1986年慶応義塾大学商学部卒。北海道拓殖銀行、日立ソフトウェアエンジニアリング株式会社を経て2011年に調和技研に参加、代表取締役社長に就任。 公益社団法人日本青年会議所「最先端技術が拓く未来フォーラム」、NTTデータ経営研究所「田舎×最先端テクノロジーによる新たな地方創生モデル」、 北海道経済産業局 ロボット関連ビジネス新規参入促進シンポジウム等、AIの業務導入や地域活性化に関する講演多数有り。