目标检测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_facevoc_face文件夹,将originalPics.tar.gz解压到orignal_face文件夹里。

TIM截图20181101135318.png

运行python脚本

python FDDBtoVOC.py
python VOCtoLABEL.py

运行后的目录结构
TIM截图20181101135754.png

然后把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

还有里面的日志目录和生成结果目录也需要根据实际情况更改下。

已有 4 条评论

  1. Ciel Ciel

    请问FDDBtoVOC运行报错error: (-215:Assertion failed) !_img.empty() in function 'imwrite'这个怎么解决呀?

    1. 没碰到,但就提示显示imwrite是opencv保存图片的方法,目测是要保持的图片为空报的错吧

  2. 您好,我按照你的方法做了FDDB转VOC,但是训练的时候检测不出样本即count一直为0,我看了一下annotation中没有样本的标注信息,这是为什么?

    1. 那是 FDDBtoVOC 没成功,成功的话 Annotation 是VOC的XML标注文件

添加新评论