Jetson NANO之Yolo V4初体验

石家庄铁道大学
6326 1 2020-05-07

本篇是由石家庄铁道大学电气与电子工程学院万永松同学撰写,由其导师提供

一、首先是安装必要的配置环境:

硬件平台: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所示:


根据官方的文档的说明,新版本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所示:


对于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有了很大的提升,为在性能受限的嵌入式设备上部署检测程序提供了可能。