●RaspberryPi4B TensorflowLite install 32bit OS
2021.12.01
Raspberry Pi Cameraの動画から道路標識の物体検出を行います。
Raspberry Pi 4B に AI Software TensorflowLite を installします。
Tensorflowは大きな Programなので、Raspiには負担が大きい。
ここでは TensorflowLite-binを PINTO0309さんからもらってきます。
【install 環境】
Raspi raspberryPi 4B
RAM 4GB
O S RaspberryPi-buster armv7 32bit
python local: ver.3.7.3 system: 3.8.3
SSD micro SD 64GB
Hard SunFounder PciCar-4WD Kit
Camera RaspberryPi Camera Module
【事前準備】
pipを使用しますので install しておきます。
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install python3-pip
【install Command】
PINTO0309さんからTensorflowLite-binをもらってきます。
$ sudo apt-get install swig libjpeg-dev zlib1g-dev python3-dev unzip wget python3-pip curl git cmake make
$ sudo pip3 install numpy==1.21.6
$ wget "https://raw.githubusercontent.com/PINTO0309/TensorflowLite-bin/main/2.7.0/download_tflite_runtime-2.7.0-cp37-none-linux_armv7l.whl.sh"
$ chmod 775 download_tflite_runtime-2.7.0-cp37-none-linux_armv7l.whl.sh
$ sudo sh download_tflite_runtime-2.7.0-cp37-none-linux_armv7l.whl.sh
$ sudo pip3 install --upgrade tflite_runtime-2.7.0-cp37-none-linux_armv7l.whl
まだ OpenCVを install していなければ、これも install してください。
$ git clone https://github.com/karaage0703/raspberry-pi-setup
$ cd raspberry-pi-setup
$ ./setup-opencv-raspbian-buster.sh
【追加 install 項目】
$ sudo apt-get install jupyter-notebook
$ sudo apt-get install build-essential pkg-config
$ sudo apt-get install libpng-dev libtiff-dev
$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
$ sudo apt-get install libxvidcore-dev libx264-dev
$ sudo apt-get install libgtk-3-dev
$ sudo apt-get install libcanberra-gtk*
$ sudo apt-get install libatlas-base-dev gfortran
【物体検出の動作確認】
Object Detection APIが無いと確認できませんが、PINTO0309さんから
Sampleをもらいます。
$ cd && git clone https://github.com/PINTO0309/TensorflowLite-bin
$ cd /home/pi/TensorflowLite-bin
$ python3 mobilenetv2ssd.py
実行すると、result.jpg という画像が生成されます。
【Camera映像の物体検出】
$ cd /home/pi/TensorflowLite-bin
$ python3 mobilenetv2ssd-sync-usbcam.py --camera_type="raspi_cam"
Raspi-cameraで物体検出を行う
Raspi-cameraで物体検出を行う
とりあえず物体検出を動かす事はできます。
私が作った道路標識は 教師dataが無いので認識もしません。
●仮想環境に TensorflowLite pip で install
2022.02.18
作成済の仮想環境の中に TensorflowLite-bin を installします。
$ cd /home/pi/Virtual/p37venv
$ . bin/activate
(p37venv)$ ・・・ここから仮想環境に入る。
apt-getで最新versionにして、pipの upgradeを行います。
(p37venv)$ sudo apt-get update
(p37venv)$ sudo apt-get upgrade
(p37venv)$ python -m pip install --upgrade pip ・・・pip upgrade
(p37venv)$ pip install --upgrade pip ・・・こちらでもよい。
pipの upgrade installが終わったら早速 list表示してみます。
(p37venv)$ pip list ・・・pipで installした list表示
pip ・pip ・setuptools ・wheels ・numpy ・opencv-python ・ ・・・ |
list 22.1.3 60.7.1 0.37.1 1.21.6 4.5.4.60 ・・・ |
標準で入っている moduleがたくさん表示されます。
TensorflowLiteはまだ installされていません。
【TensorflowLite install】
pipで TensorflowLiteの installを行います。
$ cd /home/pi/Virtual/p37venv
$ . bin/activate
(p37venv)$ pip install tflite-runtime==2.8.0 ・・・cp37_armv7l
wgetや apt-getで installするより簡単にできます。
pipで install可能な tflite-runtimeの Versionは、以下で確認する事ができます。
install可能な tflite-runtime ⇒ pypi.org/tflite-runtime
TensorflowLiteを使用する上での注意点。
tensorflow moduleから interpreterを importするかわりに
tflite-runtimeから importする必要があります。
python programの修正は下記の様にします。
import tensorflow as tf
↓ この様に編集します。
import tflite-runtime.interpreter as tflite
また、次の行も下記の様に変更します。
interpreter = tf.lite.Interpreter(model_path=args.model_file)
↓ この様に編集します。
interpreter = tflite.Interpreter(model_path=args.model_file)
Raspi-cameraで物体検出を行う
リンゴとバナナは認識していますが、道路標識は教師dataがないので認識せず。
----------------------------------------------------------------------------------------------------------------------------