mtcnn系列-2.数据集讲解

使用的人脸数据集

训练mtcnn的数据集论文里使用的是WIDER FACE 和CelebA,其中WIDER FACE用作回归人脸分类和box,CelebA用来回归关键点(landmark)

人脸数据集特点

训练数据集里面分为 negatives, positives, part face。

  • negatives:可以认为是图片的背景的非人脸部分,使用和真实标注框的iou<0.3
  • positives:人脸部分,使用和真实标注框的iou>0.65
  • part face:部分人脸,使用和真实标注框的iou>0.4

negatives 和 positives 用于分类任务
positives 和 part face 用于box回归
landmark 用于计算 landmark 回归

这里我们是使用tfrecord打包训练数据集和,这样可以加快训练速度,其中tfrecord的内容为

feature = {
            "image": tf.train.Feature(bytes_list=tf.train.BytesList(value=[image.tobytes()])),
            "label": tf.train.Feature(float_list=tf.train.FloatList(value=label))
        }

image是图片数据,其中图片是回归到了0-1之间
label包含分类标签(0/1),标注方框offset(x1, y1, x2, y2),5个landmark关键点坐标的offset ,因此label的长度为15

imagelabelbboxslandmark point
positivestensor1[x1, y1, x2,y2][-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]
negativestensor0[-1, -1, -1,-1][-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]
part facetensor-1[x1, y1, x2,y2][-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]
landmarktensor-2[-1, -1, -1,-1][x1,y1,x2,y2,x3,y3,x4,y4,x5,y5]

现在知道了数据集的内容,但是bbos和landmark point怎么进行做offset呢

bbos的的标注如下方式

在这里插入图片描述
offset_x1 = (x1 - nx1) / float(size)
offset_y1 = (y1 - ny1) / float(size)
offset_x2 = (x2 - nx2) / float(size)
offset_y2 = (y2 - ny2) / float(size)
这里 size 为截图的宽高,一般截图采取正方形

landmark point 的offset

训练数据的比例分配

negatives:positives:part face:landmark

数据集划分 PNet:3:1:1:0 RNet:3:1:1:0 ONet:3:1:1:2

每个模型的训练数据集怎么获取

P-Net的训练数据是从WIDER FACE获取。
R-Net的训练数据是P-Net生成
O-Net的训练数据是R-Net生成,landmark数据由CelebA得到

怎么获取训练数据集

代码之后放到github

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值