【树莓派4B深度学习 yolo】Chap.1 给树莓派配置yolo模型(darknet-nnpack)【深度学习 招式篇】
参考链接
在树莓派4B上使用YOLO
https://yanwei-liu.medium.com/raspberry-pi%E5%AD%B8%E7%BF%92%E7%AD%86%E8%A8%98-%E4%BA%8C%E5%8D%81%E4%B8%83-%E5%9C%A8pi%E4%B8%8A%E5%9F%B7%E8%A1%8Cyolov3-9cf124d5d582
任剑杰
一、运行方式:
-
AlexeyAB—不是很稳定。我没试过
执行速度很慢,YOLOv3-tiny花費約 30秒。
原版的yolo V3 完整版本是无法在树莓派上运行的,直接编译会报错如下的 段错误,原因是树莓派内存不够,使用官方权重会越界,所以只能只用yolo v3 -tiny版本。Yolo V3版本基于darknet直接编译 -
darknet-nnpack——已成功
针对Arm处理器优化,使用YOLOv3-tiny进行识别只要1-1.2秒,不用使用额外的GPU.不能执行YOLOv3,只能执行tiny -
购买额外的运算棒Intel NCS I (570块人民币)
二、步骤:
- 安装系统,建议选Raspbian Buster 系统,换源。
- 准备Python和Pi相机, 先添加python-opencv的依赖库.opencv 3.2.0.
sudo apt-get install python-pip
sudo apt install libopencv-dev
sudo apt-get install python-opencv
sudo raspi-config 转到 Interfacing Options,然后启用 Pi/Camera,重启生效。启用pi相机 - 安装 Ninja Building tool;安装 PeachPy 0.2.0和 confu 0.0.1
sudo pip install --upgrade git+https://github.com/Maratyszcza/PeachPy
sudo pip install --upgrade git+https://github.com/Maratyszcza/confu - 在 /home/pi目录下,安装ninja. Re2c是一个用于编写快速灵活的词法分析器的工具.
本人在实验的时候安装最新版本的ninja和NNPACK 尝试了三四次都没有成功,所以直接下载了别人之前下载好的,然后copy到 ~/ 下。可能是最新版的出问题了。
git clone https://github.com/ninja-build/ninja.git
cd ninja
git checkout release
sudo apt-get install re2c
chmod +x ./configure.py
chmod 777 configure
sudo chmod +x ./src/inline.sh
./configure.py --bootstrap
export NINJA_PATH=$PWD
cd
- 安装修改后的 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/
- 安装darknet-nnpack
上面这些步骤其实都是安装darknet-nnpack的准备工作,现在正式开始,半个小时
cd
git clone -b yolov3 https://github.com/zxzhaixiang/darknet-nnpack
cd darknet-nnpack
git checkout yolov3
make
这就完成了,开始测试。Make差不多五分钟。 - 用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)
检测速度达到每秒2帧(fps)
相关文章
- 解决最小化安装Centos7后无法上网的问题,以及安装成功后的基本配置
- linux学习之系统管理、网络配置、软件安装
- 【神经网络与深度学习】YOLO windows 配置《Darknet配置》
- 【神经网络与深度学习】如何在Caffe中配置每一个层的结构
- 【神经网络与深度学习】【VS开发】【CUDA开发】VS2013 配置CUDNN V4 DEMO
- 【神经网络与深度学习】【Python开发】Caffe配置 windows下怎么安装protobuf for python
- python学习第二讲,pythonIDE介绍以及配置使用
- 过狗菜刀原理以及绕过魔术引号的配置
- win系统下AndroidStudio环境配置
- jenkins简单安装及配置(Windows环境)
- 三菱FX5U配置MR-JE-C伺服驱动器 IEBasic设定
- Linux学习笔记之rsync配置
- ELK学习笔记之配置logstash消费kafka多个topic并分别生成索引
- Docker学习笔记之常用的 Docker Compose 配置项
- linux下apache https 虚拟主机配置
- 微信公众号H5,需要配置的内容
- Go微服务框架go-kratos实战学习06:配置中心使用-nacos作为配置中心和 file作为配置存储
- SpringBoot学习笔记<一>入门与基本配置
- CentOS安装VSFTP及配置用户
- MyBatis多数据源配置(读写分离)
- Nacos配置中心(读取配置中心配置文件)
- Nginx虚拟主机(Virtual Host)配置
- 【Vue路由】props配置、replace属性、编程式路由导航、缓存路由组件
- vim学习笔记一(环境配置及编译文件)
- HCIP-5.1OSPF基本原理及基本配置学习笔记
- brew 安装后配置环境变量
- Linux学习易错点-网络yum源的配置过程
- Nginx学习之二-配置项解析及编程实现
- zookeeper acl认证机制及dubbo、kafka集成、zooviewer/idea zk插件配置
- 防火墙——iptables防火墙(四表五链、防火墙配置方法、匹配规则详解)
- 四十三、python学习之Django框架(三):数据库,数据库配置,定义模型,shell工具,数据库操作,查询集