【精选】在树莓派4B上使用YOLO v3 Tiny进行实时目标检测 您所在的位置:网站首页 yolov3口罩识别的运行结果 【精选】在树莓派4B上使用YOLO v3 Tiny进行实时目标检测

【精选】在树莓派4B上使用YOLO v3 Tiny进行实时目标检测

2023-11-03 09:53| 来源: 网络整理| 查看: 265

首先尝试使用yolo官网yolo给的教程,在树莓派上测试,但是在运行时出现段错误,尝试很多方法无法解决。在国外的网站找到darknet-nnpack这个东西,可以完美的在树莓派上运行。

链接:https://pan.baidu.com/s/1-7DFRawhDDZXfrKH9aht6g 提取码:k3yp,评论说编译不通过,这里给出我用的ninja和NNPACK 参考的文章

darknet-nnpack https://github.com/zxzhaixiang/darknet-nnpackFun of DIY http://funofdiy.blogspot.com/2018/08/deep-learning-with-raspberry-pi-real.html 第二个链接是树莓派3B+上使用yolo,不过国内正常是打不开,根据这篇文章在Raspberry Pi 4上使用yolov3 tiny版本,测试结果可以达到2帧,这个结果是做了很多加速之后的。安装NNPACK,这是神经网络的加速库,可以在多核CPU上运行在Makefile中添加一些特殊配置,以在Cortex CPU和NNPACK优化上编译Darknet Yolo源代码。安装opencv C ++(在raspberry pi上非常麻烦),不过我没安装也可以使用(编译总是报错,没有成功)使用Yolo小版本(不是完整版本)运行Darknet!下载Yolov3-tiny.cfg和Yolov3-tiny.weights。 步骤0:准备工作 在树莓派4上安装系统等参考我的这篇博客准备Python和Pi相机,我用的是树莓派的相机,使用usb摄像头会慢很多。 安装OpenCV。使用最简单的方法(不要从源代码构建!): sudo apt-get install python-opencv

如果没有pip:

sudo apt-get install python-pip

启用pi相机:

sudo raspi-config

转到 Interfacing Options,然后启用 Pi/Camera,重启生效。

步骤1 安装 Ninja Building tool

安装 PeachPy 和 confu

sudo pip install --upgrade git+https://github.com/Maratyszcza/PeachPy sudo pip install --upgrade git+https://github.com/Maratyszcza/confu

在 /home/pi目录下,安装ninja

git clone https://github.com/ninja-build/ninja.git cd ninja git checkout release ./configure.py --bootstrap export NINJA_PATH=$PWD cd 步骤2 安装修改后的 NNPACK git clone https://github.com/shizukachan/NNPACK cd NNPACK confu setup python ./configure.py --backend auto

用ninja构建NNPACK(需要一段时间,耐心等待,并且第一次可能崩溃。只需重新启动并再次运行):

$NINJA_PATH/ninja

可以用 ls ,有文件夹 lib , include 就成功了。 测试NNPACK是否正常工作:

bin/convolution-inference-smoketest

我第一次失败了,不过再次运行了测试,所有项目都通过了。因此,如果测试失败,请不要慌张,再尝试一次。

将库和头文件复制到系统环境:

sudo cp -a lib/* /usr/lib/ sudo cp include/nnpack.h /usr/include/ sudo cp deps/pthreadpool/include/pthreadpool.h /usr/include/ 步骤3 安装darknet-nnpack

上面这些步骤其实都是安装darknet-nnpack的准备工作,现在正式开始

cd git clone -b yolov3 https://github.com/zxzhaixiang/darknet-nnpack cd darknet-nnpack git checkout yolov3 make

这就完成了,开始测试。

步骤4 用YoloV3-tiny测试

运行:

sudo python rpi_video.py

或者:

sudo python rpi_record.py

也可以调一下参数:

yolo_proc = Popen(["./darknet", "detect", "./cfg/yolov3-tiny.cfg", "./yolov3-tiny.weights", "-thresh", "0.1"], stdin = PIPE, stdout = PIPE)

这两个python文件,只是提供了一个进出的功能。 rpi_video.py 以动画形式在屏幕上显示实时目标检测结果; rpi_record.py 会将每一帧结果保存(如之后制作git动画)。 另外YoloV3-tiny不在乎输入图像的大小。因此,只要高度和宽度均为32的整数倍,就可以随意调整相机分辨率。

#camera.resolution = (224, 224) #camera.resolution = (608, 608) camera.resolution = (544, 416)

看下结果,还需要优化 在这里插入图片描述 竟然把人检测出sofa了 在这里插入图片描述 检测速度可以达到每秒2帧,树莓派4的性能比3B+要强很多,3B+只能达到1帧。 总的来说非常棒了。 参考博客:http://funofdiy.blogspot.com/2018/08/deep-learning-with-raspberry-pi-real.html



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有