YOLO v4在jetson nano的安装及测试

You only look once (YOLO)是一款非常著名的物体识别深度学习网络,可实现快速检测的同时还达到较高的准确率。官网 https://pjreddie.com/darknet/yolo/

本文介绍yolo v4版的安装与测试。为了提高检测速率,硬件部分选择了nvidia公司出品的低成本jetson nano,利用CUDA实现GPU加速。

1. 准备工作

jetson nano 4G内存版,安装系统镜像,自带的jetpack 4.6已包含CUDA, cuDNN, OpenCV。

2. 安装YOLO

v4版源代码 https://github.com/AlexeyAB/darknet
国内安装,可用我的gitee
在用户主目录下新建一个文件夹YOLO,便于管理

$ mkdir ~/YOLO
$ cd ~/YOLO
$ git clone https://gitee.com/duping812/darknet.git
$ cd darknet

编译前,需要修改Makefile配置。

$ nano Makefile

启用GPU, cuDNN, OpenCV,具体参数说明见github的readme。

GPU=1
CUDNN=1
CUDNN_HALF=1
OPENCV=1
AVX=0
OPENMP=1
LIBSO=1
ZED_CAMERA=0
ZED_CAMERA_v2_8=0

选择jetson nano的cuda architecture,去掉下面第2行的注释

# For Jetson TX1, Tegra X1, DRIVE CX, DRIVE PX - uncomment:
ARCH= -gencode arch=compute_53,code=[sm_53,compute_53]

开始编译

$ make

编译时如果报错,找不到nvcc

/bin/sh: 1: nvcc: not found
Makefile:182: recipe for target 'obj/convolutional_kernels.o' failed
make: *** [obj/convolutional_kernels.o] Error 127

这是系统路径问题,在bashrc里添加对应路径,重开terminal,再编译一次即可。

$ sudo nano ~/.bashrc

在末尾行添加环境变量

export PATH=$PATH:/usr/local/cuda/bin

参考 https://blog.csdn.net/weixin_43046653/article/details/100019901

3. 测试

安装完毕,运行./darknet detector --help命令,出现如下图所示,说明安装成功。在这里插入图片描述
选择yolo v4和yolo v4-tiny(更轻量化的模型,适合在jetson nano上运行)进行测试。首先需要下载已训练好的模型权重文件,我已上传到云盘YOLO文件夹 https://cloud.tsinghua.edu.cn/d/7bd45188869e4434b28b/

detector test,图片作为输入。使用经典的dog.jpg测试,执行完会将识别结果保存到当前目录下prediction.jpg

./darknet detector test cfg/coco.data cfg/yolov4.cfg yolov4.weights data/dog.jpg
./darknet detector test cfg/coco.data cfg/yolov4-tiny.cfg yolov4-tiny.weights data/dog.jpg

detector demo,视频作为输入。这里以罗技c310 usb摄像头为例。

./darknet detector demo cfg/coco.data cfg/yolov4.cfg yolov4.weights /dev/video0
./darknet detector demo cfg/coco.data cfg/yolov4-tiny.cfg yolov4-tiny.weights /dev/video0

测试结果如下表。单张图片v4的处理速度略慢,但准确度很高;v4-tiny速度快了,但准确度有所损失。v4在nano上处理视频还是比较吃力,只能到1fps,而v4-tiny可以到15fps,基本上可以正常使用了。

dog单张照片处理速度 dog单张照片准确度 摄像头处理速度
yolo v4 7秒 98% 1 fps
yolo v4-tiny 2秒 84% 15 fps

yolo v4识别结果
yolo v4识别结果
yolo v4-tiny识别结果
yolo v4-tiny识别结果

参考文献

  1. https://jkjung-avt.github.io/yolov4/

版权声明:本文为CSDN博主「duping812」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/duping812/article/details/121095443

duping812

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

yolov5代码解读-网络架构

前言 上一篇:yolov5代码解读-dataset 下一篇:yolov5代码解读-训练 代码已上传到github,数据集和权重文件已上传到百度网盘(链接在github里)&