0
点赞
收藏
分享

微信扫一扫

Paddle Lite——树莓派端部署实现实时视频流目标检测demo


文章目录

  • ​​Paddle Lite环境准备​​
  • ​​硬件准备​​
  • ​​基本软件环境准备​​
  • ​​摄像头准备​​
  • ​​编译库准备​​
  • ​​Paddle Lite(demo)的安装​​
  • ​​模型和预测库下载​​
  • ​​模型的编译(根据你需要实现的功能进行选择)​​
  • ​​(1)图像分类模型的编译(单图片预测分类)​​
  • ​​Paddle Lite的配置和预测的输入和输出的图片路径的设置(可选操作)​​
  • ​​执行预测命令​​
  • ​​(2)目标检测模型的编译(单图片检测)​​
  • ​​Paddle Lite的配置和预测的输入和输出的图片路径的设置(与图片分类模型配置完全相同)​​
  • ​​(3)目标检测模型的编译(视频流检测)​​
  • ​​Paddle Lite的配置和视频流监测的设置​​
  • ​​执行预测命令​​
  • ​​效果展示​​
  • ​​Paddle Lite——报错解决​​

参考:​​Paddle Lite官方文档​​

Paddle Lite环境准备

硬件准备

  • 树莓派4B
  • usb摄像头
  • 装好Buster的镜像源的SD卡

基本软件环境准备

摄像头准备

参考文章:​​树莓派摄像头的安装、配置与验证​​

编译库准备

完成gcc、g++、opencv、cmake的安装:

sudo apt-get update

sudo apt-get install gcc g++ make wget unzip libopencv-dev pkg-config

#下载cmake
wget https://www.cmake.org/files/v3.10/cmake-3.10.3.tar.gz

在这一步如果下载很慢,这里我也提供了​​cmake-3.10.3.tar.gz的包​​,需要的可以自行下载。

#解压
tar -zxvf cmake-3.10.3.tar.gz

#进入文件夹
cd cmake-3.10.3

#环境配置
sudo ./configure

#make
sudo make

Paddle Lite——树莓派端部署实现实时视频流目标检测demo_视频流

sudo make install

Paddle Lite——树莓派端部署实现实时视频流目标检测demo_目标检测_02


到这里就完成了所有的环境准备。

Paddle Lite(demo)的安装

Paddle Lite安装和demo相同

#下载Paddle Lite
git clone https://github.com/PaddlePaddle/Paddle-Lite-Demo

模型和预测库下载

cd Paddle-Lite-Demo/PaddleLite-armlinux-demo

./download_models_and_libs.sh # 下载模型和预测库

模型的编译(根据你需要实现的功能进行选择)

  • 图像分类模型的编译(单图片预测分类)
  • 目标检测模型的编译(单图片检测)
  • 目标检测模型的编译(视频流检测)

读者需根据自己的需求进行特定的编译。

(1)图像分类模型的编译(单图片预测分类)

进入image_classification_demo文件夹
cd Paddle-Lite-Demo/PaddleLite-armlinux-demo/image_classification_demo

Paddle Lite的配置和预测的输入和输出的图片路径的设置(可选操作)
  • 注释掉第四行的​​TARGET_ARCH_ABI=armv8​​​,打开第五行的,取消第5行​​TARGET_ARCH_ABI=armv7hf​​ 的注释。
  • 需要对run.sh文件进行修改:

sudo nano run.sh

在#run代码段找到参数​​../images/2001.jpg​​​和​​./result.jpg​​,进行自定义设置即可,此处建议设置为:

#!/bin/bash

# configure
#TARGET_ARCH_ABI=armv8 # for RK3399, set to default arch abi
TARGET_ARCH_ABI=armv7hf # for Raspberry Pi 3B
PADDLE_LITE_DIR=../Paddle-Lite
if [ "x$1" != "x" ]; then
TARGET_ARCH_ABI=$1
fi

# build
rm -rf build
mkdir build
cd build
cmake -DPADDLE_LITE_DIR=${PADDLE_LITE_DIR} -DTARGET_ARCH_ABI=${TARGET_ARCH_ABI} ..
make

#注意,这里为run代码段!!!!!!
#run
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${PADDLE_LITE_DIR}/libs/${TARGET_ARCH_ABI} ./object_detection_demo ../models/model.nb ../labels/pascalvoc_label_list ../images/2001.jpg ./result.jpg

执行预测命令

sudo ./run.sh

在终端即可看到打印出的预测结果和性能数据,在build目录中可以看到生成的result.jpg。

(2)目标检测模型的编译(单图片检测)

cd Paddle-Lite-Demo/PaddleLite-armlinux-demo/object_detection_demo

Paddle Lite的配置和预测的输入和输出的图片路径的设置(与图片分类模型配置完全相同)
  • 注释掉第四行的​​TARGET_ARCH_ABI=armv8​​​,打开第五行的,取消第5行​​TARGET_ARCH_ABI=armv7hf​​ 的注释。
  • 需要对run.sh文件进行修改:

sudo nano run.sh

在#run代码段找到参数​​../images/2001.jpg​​​和​​./result.jpg​​,进行自定义设置即可,此处建议设置为:

#!/bin/bash

# configure
#TARGET_ARCH_ABI=armv8 # for RK3399, set to default arch abi
TARGET_ARCH_ABI=armv7hf # for Raspberry Pi 3B
PADDLE_LITE_DIR=../Paddle-Lite
if [ "x$1" != "x" ]; then
TARGET_ARCH_ABI=$1
fi

# build
rm -rf build
mkdir build
cd build
cmake -DPADDLE_LITE_DIR=${PADDLE_LITE_DIR} -DTARGET_ARCH_ABI=${TARGET_ARCH_ABI} ..
make

#注意,这里为run代码段!!!!!!
#run
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${PADDLE_LITE_DIR}/libs/${TARGET_ARCH_ABI} ./object_detection_demo ../models/ssd_mobilenet_v1_pascalvoc_for_cpu/model.nb ../labels/pascalvoc_label_list ../images/2001.jpg ./result.jpg

(3)目标检测模型的编译(视频流检测)

cd Paddle-Lite-Demo/PaddleLite-armlinux-demo/object_detection_demo

Paddle Lite的配置和视频流监测的设置
  • 注释掉第四行的​​TARGET_ARCH_ABI=armv8​​​,打开第五行的,取消第5行​​TARGET_ARCH_ABI=armv7hf​​ 的注释。
  • 需要对run.sh文件进行修改,设置为视频流检测:

sudo nano run.sh

将run.sh中的​​#run​​​修改参数,即该文件的最后一行参数,去掉​​../images/2001.jpg​​​和​​./result.jpg​​​后缀,取消图片预测模式,即可完成对​​run.sh​​的视频流配置。

#!/bin/bash

# configure
#TARGET_ARCH_ABI=armv8 # for RK3399, set to default arch abi
TARGET_ARCH_ABI=armv7hf # for Raspberry Pi 3B
PADDLE_LITE_DIR=../Paddle-Lite
if [ "x$1" != "x" ]; then
TARGET_ARCH_ABI=$1
fi

# build
rm -rf build
mkdir build
cd build
cmake -DPADDLE_LITE_DIR=${PADDLE_LITE_DIR} -DTARGET_ARCH_ABI=${TARGET_ARCH_ABI} ..
make

#注意,这里为run代码段!!!!!!
#run
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${PADDLE_LITE_DIR}/libs/${TARGET_ARCH_ABI} ./object_detection_demo ../models/ssd_mobilenet_v1_pascalvoc_for_cpu/model.nb ../labels/pascalvoc_label_list ../images/2001.jpg ./result.jpg

修改后的​​#run​​代码段:

#run
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${PADDLE_LITE_DIR}/libs/${TARGET_ARCH_ABI} ./object_detection_demo ../models/model.nb ../labels/pascalvoc_label_list

执行预测命令

./run.sh armv7hf

在终端即可看到打印出来的预测结果和性能数据,并且执行后会自动弹出实时视频预测画面。

效果展示

为了避免尴尬,博主机智的戴上了(帅气的)口罩(:

Paddle Lite——树莓派端部署实现实时视频流目标检测demo_v8_03

好啦,到这里就结束了,如果你也跟着博主做出了项目,记得点个小赞赞哦~ ^ _ ^

Paddle Lite——报错解决

​​基于Paddle Lite Demo运行run.sh编译报错无法运行​​


举报

相关推荐

ffmpeg+flvjs实现实时视频流

0 条评论