前言
yolo系列用c写的,在工程中的部署特别方便。4月份yolov4横空出世,之前试了试效果,精度确实有了很大的提升,AB大神nb。最近需要在C++项目中使用yolov4,尝试了opencv的调用(见我的上一篇博客这里),yolov4官方也提供了C++接口,并不需要opencv4.4的版本,调用起来也特别简单。
darknet
使用官方接口调用,我们首先得编译darknet动态库,下载yolov4源码
git clone https://github.com/AlexeyAB/darknet.git
进入darknet目录下,修改makefile文件
cd darknet
vim Makefile
其中需要修改的几个地方,OPENCV=1,LIBSO=1,如果需要使用GPU,则设置GPU=1,CUDNN=1。
GPU=1
CUDNN=1
CUDNN_HALF=0
OPENCV=1
AVX=0
OPENMP=0
LIBSO=1
ZED_CAMERA=0
ZED_CAMERA_v2_8=0
计算能力根据自己GPU设定,由于我使用的titan v,所以计算能力为7.0,不使用GPU则忽略。
# Tesla A100 (GA100), DGX-A100, RTX 3080
# ARCH= -gencode arch=compute_80,code=[sm_80,compute_80]
# Tesla V100
ARCH= -gencode arch=compute_70,code=[sm_70,compute_70]
# GeForce RTX 2080 Ti, RTX 2080, RTX 2070, Quadro RTX 8000, Quadro RTX 6000, Quadro RTX 5000, Tesla T4, XNOR Tensor Cores
# ARCH= -gencode arch=compute_75,code=[sm_75,compute_75]
# Jetson XAVIER
# ARCH= -gencode arch=compute_72,code=[sm_72,compute_72]
# GTX 1080, GTX 1070, GTX 1060, GTX 1050, GTX 1030, Titan Xp, Tesla P40, Tesla P4
# ARCH= -gencode arch=compute_61,code=sm_61 -gencode arch=compute_61,code=compute_61
# GP100/Tesla P100 - DGX-1