发布时间:2022-10-09 12:00
因为用的是opencv4所以使用yolo3编译可能回出错,可以换成yolov4或yolov4-tiny,同时YOLO V4无论在精度和速度上都较YOLO V3有了很大的提升,为在性能受限的嵌入式设备上部署检测程序提供了可能。
但是由于2GB版本内存比较小,跑yolo4会出现卡住的情况,yolov4和yolov4-tiny的区别是:tiny是yolov4的压缩版,主要运行小算力cpu核心版本,在jetso nano 上使用tiny版帧率会比yolov4提升十多倍。总的来说还是推荐使用yolov4-tiny,帧率提升很多,使用感会提升很多。
1. 安装CUDA,OpenCV,cuDNN
具体教程请看教程
2. 下载
git clone https://github.com/AlexeyAB/darknet.git
3. 配置
cd darknet
sudo vim Makefile #修改Makefile
4. 将Makefile的前三行修改一下
在darknet路径下编译
make -j4
6. 放置权重文件
wget https://pjreddie.com/media/files/yolov3-tiny.weights
wget https://github.com/AlexeyAB/darknet/releases/download/darknet_yolo_v4_pre/yolov4-tiny.weights
https://pan.baidu.com/s/1rS3DIlARFCiqId0TmN1XYg (提取码:16ln)
权重文件yolov3-tiny.weights,yolov4-tiny.weights拷贝至darknet目录下
7. 测试
以下都适用v3,改名即可
Yolov4-tiny图片的检测
./darknet detect cfg/yolov4-tiny.cfg yolov4-tiny.weights data/dog.jpg # 简写版
./darknet detector test cfg/coco.data cfg/yolov4-tiny.cfg yolov4-tiny.weights data/dog.jpg # 完整版
改变检测阈值
默认情况下,YOLO仅显示检测到的置信度为.25或更高的对象。您可以通过将-thresh标志传递给yolo命令来更改此设置。
例如,要显示所有检测,您可以将阈值设置为0.1:
./darknet detect cfg/yolov4-tiny.cfg yolov4-tiny.weights data/dog.jpg -thresh 0.1
Yolov4-tiny视频的检测(github下来的data里面并没有该视频文件,需要用户自行上传要检测的视频文件到data文件夹下)
./darknet detector demo cfg/coco.data cfg/yolov4-tiny.cfg yolov4-tiny.weights data/xxx.mp4
yolov4-tiny 见下图:
Yolov4-tiny 摄像头(CSI)实时检测方法:
./darknet detector demo cfg/coco.data cfg/yolov4-tiny.cfg yolov4-tiny.weights # 但是我蓝屏了,默认MIPI CSI摄像机(1280×720)
或者(我成功了):
./darknet detector demo cfg/coco.data cfg/yolov4-tiny.cfg yolov4-tiny.weights "nvarguscamerasrc ! video/x-raw(memory:NVMM), width=1280, height=720, format=NV12, framerate=30/1 ! nvvidconv ! video/x-raw, width=1280, height=720, format=BGRx ! videoconvert ! video/x-raw, format=BGR ! appsink"
说明:
(nvarguscamerasrc ! video/x-raw(memory:NVMM), width=1280, height=720, format=NV12, framerate=30/1)
作用是配置摄像头获取的画面大小和帧数;
官网示例地址
(nvvidconv flip-method=2)
作用是旋转画面
官网示例地址
(video/x-raw, width=1280, height=720, format=BGRx ! videoconvert ! video/x-raw, format=BGR)
作用是确保来自CSI相机的原始视频转换为BGR色彩空间。
能达到13fps
video设备选择USB摄像头对应的编号,上方为选择了USB摄像头的编号video1
./darknet detector demo cfg/coco.data cfg/yolov4-tiny.cfg yolov4-tiny.weights /dev/video1