20210606のTensorFlowに関する記事は1件です。

ラズパイZeroでTensorFlow Liteに挑戦

M5StackのUnitV2をみて、手元のラズパイZeroでも何かできないかと思って調整してみました。 調べてみるとTensorflow Liteが動くようなので、サンプルの画像分類を試してみました。 ※ラズパイZero(ARMv6)向けのWheelパッケージは用意されていませんので、自前で作成する必要があります。手順は後ろに載せています サンプルプログラムの実行 RaspberryPiZero git clone https://github.com/tensorflow/examples --depth 1 cd examples/lite/examples/image_classification/raspberry_pi/ bash download.sh /tmp python3 classify_picamera.py --model /tmp/mobilenet_v1_1.0_224_quant.tflite --labels /tmp/labels_mobilenet_quant_v1_224.txt 結果1(Mobilenet_V1_1.0_224_quant) 動作はするのですが、1回の推論に10秒近くかかります。。遅い。。 使用するモデルを軽いものに変えてみます。 ここの中からMobilenet_V1_1.0_128_quantに変更してみます。 RaspberryPiZero cd /tmp/ wget https://storage.googleapis.com/download.tensorflow.org/models/mobilenet_v1_2018_08_02/mobilenet_v1_1.0_128_quant.tgz tar zxvf mobilenet_v1_1.0_128_quant.tgz ラベルは見つからなかったのでサンプルに含まれるものを使いまわしましょう RaspberryPiZero python3 classify_picamera.py --model /tmp/mobilenet_v1_1.0_128_quant.tflite --labels /tmp/labels_mobilenet_quant_v1_224.txt 結果2(Mobilenet_V1_1.0_128_quant) 3.5秒ぐらいなので、まあまあ早くなりました。 ラズパイZero向けのPython Wheelパッケージを作成する 残念ながらラズパイZero(ARMv6)向けのWheelパッケージは用意されていません。 ラズパイ2以降のARMv7用は用意されています。 https://www.tensorflow.org/lite/guide/python ただ、自分でビルドする手順は用意されていましたので、それに沿ってやってみました。 VSCodeでDocker in Dockerコンテナを起動 ここは好みですが、ホスト環境を汚さずビルドしたかったので、Docker内で行おうと思いました。 ただ、ビルドにDokcerを使用する仕組みだったので、Dockerの中でDockerが起動可能な「Docker in Docker」の形で行いました。 vscodeを起動し、左下の「リモートウィンドウを開きます」ボタンから始めます 「Add Development Container Configuration Files...」を選択 「Show All Definitions...」を選択 「Docker in Docker」を選択 これで設定ファイルができました 「Reopen in Container」を選択 ここから先はコンテナ内での作業になります。 Python Wheelパッケージの作成 公式の手順はこちらです。 https://www.tensorflow.org/lite/guide/build_cmake https://www.tensorflow.org/lite/guide/build_cmake_pip Docker-in-Docker cd # 作業は/root配下で行いました sudo apt-get update sudo apt-get install cmake -y git clone https://github.com/tensorflow/tensorflow.git tensorflow_src cd tensorflow_src/ tensorflow/tools/ci_build/ci_build.sh PI-PYTHON37 tensorflow/lite/tools/pip_package/build_pip_package_with_cmake.sh rpi0 # 最後のrpi0が重要です これでWheelパッケージが作成されます 出力先はこちらです Docker-in-Docker ~/tensorflow_src $ ls -l tensorflow/lite/tools/pip_package/gen/tflite_pip/python3.7/dist/ total 2776 -rw-r--r-- 1 vscode vscode 1414958 Jun 6 05:39 tflite_runtime-2.6.0-cp37-cp37m-linux_armv6l.whl -rw-r--r-- 1 vscode vscode 1422521 Jun 6 05:39 tflite-runtime-2.6.0.linux_armv6l.tar.gz ~/tensorflow_src $ ラズパイZeroにTensorFlow Liteをインストールする RaspberryPiZero sudo apt-get update sudo apt install libatlas-base-dev -y pip install tflite_runtime-2.6.0-cp37-cp37m-linux_armv6l.whl
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む