YOLOv4 环境搭建和摄像头实时检测
因为用的是opencv4 所以使用 yolo3 编译可能回出错,可以换成 yolov4 或yolov4-tiny, 同时 YOLO V4 无论在精度和速度上都较 YOLO V3 有了很大的提升,为在性能受限的嵌入式设备上部署检测程序提供了可能。
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 的前三行修改一下
GPU=1
CUDNN=1
OPENCV=1
5. 编译
在 darknet 路径下编译
make -j4
6. 放置权重文件
这里直接到常用的库和模型文件yolov4 和yolov4-tiny 的权重文件,将权重文件yolov4.weights 和 yolov4-tiny.weights 拷贝至 darknet 目录下
7. 测试
Yolov4 图片的检测
./darknet detect cfg/yolov4.cfg yolov4.weights data/dog.jpg # 简写版
./darknet detector test cfg/coco.data cfg/yolov4.cfg yolov4.weights data/dog.jpg # 完整版
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