MTCNN细节

1.MTCNN细节

本节将从训练与预测两个阶段分别解析MTCNN的细节。

1.1训练过程

  1. 训练的输入为什么不需要使用图像金字塔?
    答:首先明确图像金字塔的作用:P-Net的输入为12* 12,而图像中人脸一般大于12* 12,那么P-Net根本不能进行预测,图像金字塔的作用就是缩放原图像使得大一点的人脸缩小到12* 12以下。而我们预先准备的训练集(随机在标注好的图像上进行裁剪,保存成12* 12的大小。裁剪后的图像,根据IOU,划分成负样本、正样本、部分样本),保证了12*12的框中包含人脸。
  2. P-Net、R-Net、O-Net的置信度输出为什么分别为1* 1* 2、2、2(P-Net是全卷积网络,R-Net、O-Net最后输出是全连接,全卷积网络的输出是三维的,全连接网络的输出是一维的)?
    答:三个网络的最后一层使用的是softmax激活,所以有两个输出。(复现的时候可改为sigmoid激活,这里没有区别)。
  3. P-Net、R-Net、O-Net训练时为什么不需要用到NMS?
    答:首先明确损失函数包含三个部分:置信度损失、边框回归损失、特征点位置损失。置信度损失包含正样本、负样本的损失,边框回归损失包含正样本、部分样本的损失。
  4. MTCNN的训练与YoLov3的训练做对比,YoLov3的训练集是将整张图像传入,而MTCNN的训练不能将整张图像传入?
    答:本质原因是YoLov3的anchor机制。YoLov3中的训练样本实际上是anchor,边框回归是相对于anchor的;而MTCNN的边框回归是相对于建议框的偏移量。

1.2预测过程

  1. 为什么MTCNN预测时,输入图像可以是任意大小的?
    答:P-Net是全卷积网络,全卷积网络的输入是通道数,而全连接网络的输入是特征(图像大小),在全连接网络中,输入图像的大小是固定的。
  2. P-Net的输出是R-Net的输入,R-Net的输出是O-Net的输入,其间需要经过resize这个步骤,因为输出不一定是正方形的,直接resize会导致图像变形影响后续网络的特征提取,那么这里resize有两种方法:由矩形输出填充后变成正方形输出后resize;从原图像中抠出一块正方形区域resize,那么这两种方法,哪一个好?
    答:应选择从原图中抠出正方形区域,resize后作为下一个网络的输入,因为P网络的输出可能将人脸框小了(额头或者下巴没有框到),如果我们选择填充后resize,R网络可能直接将这个人脸置信度置为0,所以我们选择从原图中抠,丰富这张人脸信息。
  3. P-Net、R-Net、O-Net的输出为什么都要经过NMS(P网络经过NMS后,不是应该没有重合的框了吗)?
    答:P网络的责任是宁选错,勿放过,所以P网络的NMS时,IOU的阈值设定的比较低(一般为0.6),所以依然有很多的重合框。而O网络的NMS是为了去除大框中包含小框的个别情况。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值