目标检测YOLOv3笔记(3):人脸训练数据
正式训练一些数据,这次主要我们测试用YOLO来进行人脸检测。
下载训练数据集,一般有FDDB 和 wider_face(http://mmlab.ie.cuhk.edu.hk/projects/WIDERFace/)
wider_face 人脸更多,训练结果当然更好。但是使用起来很麻烦。所以这里我们先使用FDDB进行训练
进入下载页面
http://vis-www.cs.umass.edu/fddb/index.html#download
分别下载图片和标注文件
FDDB-folds.tgz
originalPics.tar.gz
然后要进行格式转换,需要把FDDB的数据格式转成VOC格式,再把VOC格式转成darkenet所认识的格式
这里用python脚本来实现,FDDBtoVOC.py ,VOCtoLABEL.py,文件在这里。修改两个py里面的路径
rootdir="/home/star/darknet/data_face"
datasetprefix="/home/star/darknet/data_face/voc_face/"
rootdir="/home/star/darknet/data_face"
把FDDB-folds.tgz
解压到data_face
文件夹,并在该文件夹创建orignal_face
和voc_face
文件夹,将originalPics.tar.gz
解压到orignal_face
文件夹里。
运行python脚本
python FDDBtoVOC.py
python VOCtoLABEL.py
运行后的目录结构
然后把labels里面的txt文件放到voc_face
文件夹下,新建一个backup文件夹,并添加文件
face.data
classes= 1
train = /home/star/darknet/data_face/fddb_train.txt
valid = /home/star/darknet/data_face/fddb_test.txt
names = /home/star/darknet/data_face/face.names
backup = /home/star/darknet/data_face/backup
face.names
face
还有上一篇说到的 cfg/yolov3-voc.cfg
和对应的修改和预训练模型darknet53.conv.74
这些准备好后就可以开始训练了
./darknet detector train data_face/face.data data_face/face.cfg data_face/darknet53.conv.74
训练日志可视化:
首先要在开始训练时保存日志输出文件
./darknet detector train data_face/face.data data_face/face.cfg data_face/darknet53.conv.74 2>1 | tee data_face/train_yolov3.log
然后对文件运行python脚本 Yolov3LogVisualization.py 进行可视化分析
运行前要装些以来
pip install pandas
pip install matplotlib==2.2.0
apt-get install python-tk
还有里面的日志目录和生成结果目录也需要根据实际情况更改下。
请问FDDBtoVOC运行报错error: (-215:Assertion failed) !_img.empty() in function 'imwrite'这个怎么解决呀?
没碰到,但就提示显示imwrite是opencv保存图片的方法,目测是要保持的图片为空报的错吧
您好,我按照你的方法做了FDDB转VOC,但是训练的时候检测不出样本即count一直为0,我看了一下annotation中没有样本的标注信息,这是为什么?
那是 FDDBtoVOC 没成功,成功的话 Annotation 是VOC的XML标注文件