け い ざ ん の D I Y 工 房

◆Home
◆住まいの D I Y
◆パソコン D I Y
◆ROBOT D I Y
◆電子工作 D I Y
◆Science

●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がないので認識せず。


----------------------------------------------------------------------------------------------------------------------------
・けいざん美術館
・Blog 油絵もろもろ
・EXCEL VBAであくせく
・けいざんの食べログ


                 Site Designed by Kasio Keizan