基于darknet-yolov4训练自己的数据集
一、环境配置
git clone /pjreddie/darknet.gitcd darknetmake
二、训练自己的数据集
主要参考:/jiangpeng59/article/details/106231878
参考:/qq_38316300/article/details/106771964
1、在darknet文件下创建自己的数据集文件夹myData。在myData下创建JPGEImages(训练集图片),Annotations(存放标注的xml文件)。test文件夹放测试数据。创建weights文件夹(训练后的的权重文件夹保存路径在此)
2、Annotations(存放标注的xml文件)文件生成:python ./03-create_xml_self.py
3、运行myData中的test文件,在ImageSets/Main/下生成四个txt文件,test.txt,train.txt, val.txt, trainval.txt
python . /myData/test.py
4、运行darknet下的voc2txt文件,在myData文件下生成trian.txt, vat.txt 两个txt文件。 python ./voc2txt.py
5、进入darknet/cfg文件中两处修改
1)my_data.data文件中保存着五类信息:类别数量,训练集,验证集,类别名称和保存权重的文件
classes= 2 # 2表示数据集中只有两类可检测的物体train = myData/train.txt # 表示保存训练数据集的地址test= myData/test.txt # 表示保存验证数据集的地址names = myData/myData.names# 表示可检测物体的名称backup = myData/weights/ # 表示保存训练权重的文件
2)my_yolov4.cfg中修改带“#”号的地方,主要包括Testing/Training(二选一)、
classes=6#有3处都在[yolo]配置下,可以使用查找替换filters=33#有3处都在[yolo]配置上方,需要一个一个修改,其值=(classes + 5)x3)max_batches = 12000#其值=classes*2000steps=9600,10800 #其值=(max_batches*0.8,max_batches*0.9)
6、train
./darknet detector train cfg/my_data.data cfg/my_yolov4.cfg yolov4.conv.137
7、test
./darknet detector test cfg/my_data.data cfg/my_yolov4.cfg myData/weights/权重名 myData/test/006983.jpg