文章目录
yolov4使用的比较多,但实验室服务器都是linux系统的,所以尝试在linux服务器下配置yolov4
一、配置darknet
1. 安装CUDA
要对应好版本就行
2. 安装CUDNN
- 从官网下载cudnn-9.1-linux-x64-v7.1.tgz
- 解压CuDNN压缩包
tar -xzvf cudnn-x.x-linux-x64-v8.x.x.x.tgz
选项
- -x:解打包;
- -z: 压缩和解压缩 ".tar.gz"格式
- -v:显示打包文件过程;
- -f:指定压缩包的文件名;
- 复制下列文件到CUDA的安装目录,并更改文件权限
sudo cp cuda/include/cudnn*.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
3. 下载darknet
git clone https://github.com/AlexeyAB/darknet.git
4. 修改Makefile文件
如下图所示
修改
GPU=1
CUDNN=1
CUDNN_HALF=1
由于我用的Centos系统,配置OpenCV一直出现问题,所以我的OPENCV=0
5. 编译darknet
make -j8
运行./darknet命令
./darknet
显示
usage: ./darknet <function>
则编译成功,并生成darknet文件
二、训练自己的数据
1. 对照VOC数据集格式
VOCdevkit
——VOC2020
————---Annotations #放入所有的xml文件
————---ImageSets
——————-----Main #放入train.txt,val.txt文件
————---JPEGImages #放入所有的训练图片文件
————---labels #放入所有的txt文件,会自动生成此文件夹
————---TESTImages #放入所有的测试图片文件
#Main中的文件分别表示test.txt是测试集,train.txt是训练集,val.txt是验证集
修改obj.data
train和valid采用绝对路径
开始训练
./darknet detector train ./cfg/obj.data ./yolov4.cfg ./yolov4.conv.137 -gpus 0,1,2,3 2>&1 | tee log/train_yolov4.log