上一篇:Jetson AGX Xavier实现TensorRT加速YOLOv5进行实时检测
下一篇:Jetson AGX Xavier 实现TensorRT加速YOLOv4
一、前言
前段时间,使用YOLOv5算法设计了一款目标跟踪小车,我大概对YOLOv5算法有了粗浅的了解。看到网上说YOLOv4表现效果也很好而且得到原作者的认可,于是我在Xavier中也测试了一波实现效果。这里记录以下我的实现步骤。
二、安装准备
1、克隆YOLOv4工程
git clone https://github.com/AlexeyAB/darknet.git yolov4
2、修改 yolov4工程内的Makefile文件,修改至如图所示,如果不需要使用工程中的python脚本检测图片或者视频,那么LIBSO项可以不用改。ARCH=72,指的是Xavier的GPU算力的十倍。
3、编译工程
make -j8
编译成功,终端会出现一大堆代码啥的,只要没有error就是编译成功。此时工程中的文件如下。
4、下载权重文件yolov4.weights,yolov4-tiny.weights ,放入yolov4文件夹中。
三、测试算法
1、c++版本
①图片检测,在yolov4文件夹中开启终端。
扫描二维码关注公众号,回复:
14967357 查看本文章
#完整指令
./darknet detector test cfg/coco.data cfg/yolov4-tiny.cfg yolov4-tiny.weights data/dog.jpg
./darknet detector test cfg/coco.data cfg/yolov4.cfg yolov4.weights data/dog.jpg
#简写指令
./darknet detect cfg/yolov4-tiny.cfg yolov4-tiny.weights data/dog.jpg
./darknet detect cfg/yolov4.cfg yolov4.weights data/dog.jpg
②测试USB摄像头实时检测。
./darknet detector demo cfg/coco.data cfg/yolov4-tiny.cfg yolov4-tiny.weights -c 0
./darknet detector demo cfg/coco.data cfg/yolov4.cfg yolov4.weights -c 0
2、python版本
python的环境,本文采用我为yolov5创建的环境“yolov5env”,可以查看我的主页文章。
①测试图片
python darknet_images.py --weight yolov4-tiny.weights
②USB摄像头实时检测
python darknet_video.py --weights yolov4-tiny.weights #默认调用USB摄像头
通过测试,在Xavier中,yolov4实时检测大概在5~10FPS左右。本文测试背景较为复杂,检测精度还行,但是检测速度还有待提高。
四、总结
目前,YOLOv4有许多python版本的工程,我通过测试,感觉效果会略优于原工程,不知道为什么。当然,与前面YOLOv5的文章相同,为了追求更高的检测速度,同样可以采用TensorRT对其进行加速。翻过一座上又是一座山,咱们下座山峰见。