本篇是由石家庄铁道大学电气与电子工程学院万永松同学撰写,由其导师提供
一、首先是安装必要的配置环境:
硬件平台: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有了很大的提升,为在性能受限的嵌入式设备上部署检测程序提供了可能。

- CUDA优化冷知识(持续更新)
- 如何用Jetson nano拍摄的视频交付到Amazon 云上
- 在Jetson nano使用训练模型进行目标检测
- 为Jetson NANO构建环境
- 使用Google Colab训练Tensorflow模型
- 使用IBM Cloud Annotations进行标注
- 新一代Jetson NANO开发套件(B01)开箱
- 从Tensorflow生成TensorRT引擎的方法
- 实战教程:利用NVIDIA TensorRT优化一个推荐系统
- NVIDIA机器人开发工具包ISAAC实战(英文)
- 如何搭建一个NVIDIA JetBot小车(英文)
- Jetson TX2进行摄像头驱动的开发