本篇是由石家庄铁道大学电气与电子工程学院万永松同学撰写,由其导师提供
一、首先是安装必要的配置环境:
硬件平台:Jetson Nano
系统环境:ubuntu18.04 LTS
OPENCV:3.3.1
CUDA: 10.0.326
CUDNN:7.5.0
二、下载darknet框架和权重文件:
框架:
git clone https://github.com/AlexeyAB/darknet.git
权重:
https://drive.google.com/open?id=1cewMfusmPjYWbrnuJRuKhPMwRe_b9PaT
三、打开Jetson Nano,切换为MAXIN模式(10w)
四、进入daknet框架下面
1、修改makefile文件,将CUDA、CUDNN、OPENCV置为1,保存退出。
2、修改cfg文件夹下的yolov4.cfg,格式如下:
[net]
# Testing
batch=1
subdivisions=1
# Training
#batch=64
#subdivisions=8
……………………
3、终端输入make进行编译。
4、将权重文件yolov4.weights拷贝至darknet目录下。
5、将测试的图片放入data目录下,开始检测
5-1 图片的检测:
终端输入:
./darknet detect cfg/yolov4.cfg yolov4.weights data/test_image.jpg
检测的效果如图1所示:
(图1)
根据官方的文档的说明,新版本YOLO的 AP 和 FPS 分别提高了 10% 和 12%,从检测的结果可以看出,YOLO V4 在内存较小的嵌入式设备上能够很好的运行,而且YOLO V4相较于YOLO V3在检测的速度和精度上都有了一定的提升,对于小目标的检测效果有了进一步的提升。
5-2 视频的检测:
终端输入:
./darknet detector demo cfg/coco.data cfg/yolov4.cfg yolov4.weights data/test_video.mp4
检测的效果如图2所示:
(图2)
对于Nano的4G内存,运行YOLO V3十分地吃力,通常到第二层就会出现死机的状况,但是对于YOLO V4,Jetson Nano却能够较为流畅的运行。
在Jetson Nano上运行YOLO V4进行目标的检测,输入的视频的分辨率大小为720*400,在检测视频目标的过程中,视频的平均处理速度值始终维持在0.9FPS左右,从检测的效果中也可以看出,对于近处的目标,识别度基本维持在0.8以上,而对于远处小目标的检测,识别度也能维持在0.2以上,个别目标的识别率甚至能达到0.8以上。YOLO V4无论在精度和速度上都较YOLO V3有了很大的提升,为在性能受限的嵌入式设备上部署检测程序提供了可能。