首页 > 其他分享 >Paddle Lite——树莓派端部署实现实时视频流目标检测demo

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

时间:2022-12-08 15:01:24浏览次数:86  
标签:树莓 TARGET .. demo 视频流 Paddle ABI Lite ARCH


文章目录

  • ​​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_v8_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编译报错无法运行​​


标签:树莓,TARGET,..,demo,视频流,Paddle,ABI,Lite,ARCH
From: https://blog.51cto.com/u_15906550/5921724

相关文章

  • 提升规则自治能力与原生分析能力、支持视频流接入处理
    11月,​​eKuiper​​团队转入1.8.0版本的开发周期之中,目前已完成了一部分实用的新功能:添加了视频流source,将边缘流式处理能力扩展到视频流领域,可以处理摄像头的视频流......
  • [C#]接口Interface快速Demo
    参考代码:usingSystem;namespaceInterfaceDemo{///<summary>///定义一个爬树接口///</summary>interfaceIClimbTree{voidC......
  • 树莓派2b构建golang环境
    前言开始之前,我们先说点题外话。已经好久没有更新过技术内容了(认真脸)。一个原因是很长时间以来,一直感觉不在状态,迷茫、困惑,浑浑噩噩的,也没有分享的动力,虽然偶尔会记录一些......
  • 十四、Docker入门系列--Docker搭建部署SpringCloud微服务项目Demo
    十四、Docker入门系列--Docker搭建部署SpringCloud微服务项目Demo系列文章地址:一、Docker入门系列--Docker简介二、Docker入门系列--Docker安装三、Docker入门系列--D......
  • Python 实现海康机器人工业相机 MV-CU060-10GM 的实时显示视频流及拍照功能
    Python实现海康机器人工业相机MV-CU060-10GM的实时显示视频流及拍照功能 一、背景介绍1、最近项目中需要给客户对接海康机器人工业相机  MV-CU060-10GM;2、需要......
  • Demo Test
    Thisisademotask.Writeafunction:classSolution{publicintsolution(int[]A);}that,givenanarrayAofNintegers,returnsthesmallestpositivei......
  • AIDL使用demo
    AIDL使用demo服务端:AS创建一个app,作为服务端在app目录下创建AIDL,自动生成aidl文件夹,Interface根据功能自定义rebuild工程java目录下添加AIDLInterface实......
  • JQUERY搞的相册导航DEMO教学,总有一款合心意
    偶然看到的,老外小结的,用jquery搞的相册导航,总有一款合心意,25款哦​​​http://vandelaydesign.com/blog/web-development/jquery-image-galleries/......
  • 3M互助智能合约开发系统逻辑demo
    本文由 威-kaifa873 整理发布,仅作为项目开发需求参考!飞机@sleu88DAppisbuiltthroughsmartcontract-smartcontractreferstotheprogramofcodinglogicrunni......
  • MAFIA:2-devoflow(mafia-sdn/p4demos/demos/2-devoflow)
    2.1-DevoFlowcounterswiththreshold-basednotification(Counters,Samples,Tags)阈值通过流表的参数的形式传到数据平面,存储在自定义的元数据当中。2.2-DevoFl......