树莓派4b上部署yolov3和v3-tiny记录带截图

首先在 PC 上进行yolov3的模型训练和测试,得到.weight和.cfg文件,这两个文件要进行模型的转换然后在树莓派上部署。

一、在树莓派上烧录镜像,buster10系统即可,在系统上更改国内源,更换pip源,安装openvino2020.4,版本要与PC上安装的openvino一致,否则部署会出错的。
步骤如下:
pi 4b buster10 system 2021-05-07-raspios-buster-armhf-full.img
使用win32DiskImager write system img to pi 4b
更改config.txt文件 添加 dtoverlay=dwc2,dr_mode=host ,目的可以使用鼠标和键盘 ---- keyboard and mouse is en
change yuan china and pip yuan
sudo apt-get update && upgrade
下载及安装openvino2020.4如下:

pi4b setup openvino2020.4

cd ~/Downloads/
sudo wget https://download.01.org/opencv/2020/openvinotoolkit/2020.4/l_openvino_toolkit_runtime_raspbian_p_2020.4.287.tgz

sudo mkdir -p /opt/intel/openvino

sudo tar -xf l_openvino_toolkit_runtime_raspbian_p_2020.4.287.tgz --strip 1 -C /opt/intel/openvino

sudo apt install cmake

source /opt/intel/openvino/bin/setupvars.sh

echo “source /opt/intel/openvino/bin/setupvars.sh” >> ~/.bashrc

sudo usermod -a -G users “$(whoami)”

sh /opt/intel/openvino/install_dependencies/install_NCS_udev_rules.sh

二、在PC上安装openvino2020.4,安装后进行模型转换:
共分为如下两步:

1、tensorflow-yolo-v3-master 在github上下载官方文档这个在ubuntu或者windows上都可以,官方有使用教程,使用如下命令来进行转换v3或者tiny,ubuntu使用python3 。。。

convert (.weights) to (.pb)

python convert_weights_pb.py --class_names elec_box.names --weights_file yolov3_elecbox.weights --data_format NHWC

python convert_weights_pb.py --class_names elec_box.names --weights_file yolov3_elecbox.weights --data_format NHWC

python convert_weights_pb.py --class_names elec_box.names --weights_file yolov3-tiny600_2600.weights --data_format NHWC -tiny

在这里插入图片描述
在这里插入图片描述

2、openvino2020.4 到这个目录下model_optimizer执行脚本mo_tf.py

convert (.pb) to IR model

administrator cmd

C:\Program Files (x86)\IntelSWTools\openvino_2020.4.287\deployment_tools\model_optimizer>python mo_tf.py --input_model yolov3_elecbox_model.pb --batch 1 --tensorflow_use_custom_operations_config yolo_v3.json

C:\Program Files (x86)\IntelSWTools\openvino_2020.4.287\deployment_tools\model_optimizer>python mo_t
f.py --input_model yolov3_tiny_model.pb --batch 1 --tensorflow_use_custom_operations_config yolo_v3_
tiny.json

在这里插入图片描述
在这里插入图片描述

本人使用windos7下进行两个部分的模型转换,使用的环境如下:
environment

pip list :

Package Version


absl-py 0.15.0
astor 0.8.1
astunparse 1.6.3
cachetools 4.2.4
certifi 2021.10.8
charset-normalizer 2.0.7
decorator 5.1.0
defusedxml 0.7.1
flatbuffers 1.12
gast 0.2.2
google-auth 2.3.3
google-auth-oauthlib 0.4.6
google-pasta 0.2.0
graphviz 0.8.4
grpcio 1.32.0
h5py 2.10.0
idna 3.3
importlib-metadata 4.8.2
keras 2.7.0
Keras-Applications 1.0.8
Keras-Preprocessing 1.1.2
libclang 12.0.0
Markdown 3.3.4
mxnet 1.2.0
networkx 2.6.3
numpy 1.18.5
oauthlib 3.1.1
onnx 1.10.2
opt-einsum 3.3.0
Pillow 8.4.0
pip 21.3.1
protobuf 3.6.1
pyasn1 0.4.8
pyasn1-modules 0.2.8
PyYAML 6.0
requests 2.26.0
requests-oauthlib 1.3.0
rsa 4.7.2
setuptools 58.5.3
six 1.15.0
tensorboard 1.15.0
tensorboard-data-server 0.6.1
tensorboard-plugin-wit 1.8.0
tensorflow 1.15.5
tensorflow-estimator 1.15.1
tensorflow-io-gcs-filesystem 0.22.0
termcolor 1.1.0
test-generator 0.1.1
typing-extensions 3.7.4.3
urllib3 1.26.7
Werkzeug 2.0.2
wheel 0.37.0
wrapt 1.12.1
zipp 3.6.0


做到上述可以正常得到转换后的IR模型

三、在树莓派上进行部署,将模型传至树莓派上,可通过端口、wifi、以太网(局域网)均可。

关键之处,其他博客没有
下载树莓派版本的openvino2018,新版本没有yolov3测试程序(大坑)
download demo from pi_openvino2018
yolov3 demo from openvino2018

使用命令对模型进行测试,建议先测试官方的模型成功后测试自己训练的模型!
python3 object_detection_demo_yolov3_async.py -m /home/pi/openvino/build/pi_OpenVINO/IR_yolov3/yolov3_elecbox_model.xml -i elecbox.mp4 -d MYRIAD

IR_yolov3为openvino2018树莓派版本的yolov3测试程序,其中包括object_detection_demo_yolov3_async.py文件,如有需要私聊我也可提供!

树莓派测试如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
坚持就是胜利!

猜你喜欢

转载自blog.csdn.net/QQ_778132974/article/details/121614980