MTCNN
一MTCNN 卷积模块
将下面的卷积看成一个大的卷积盒:当成12 * 12的大卷积步长为2,步长为每次步长的积。池化为平均池化:
二,MTCNN的结构
张将一个大网络分为P-净,R型网,O-型三个网络,P为第一次过滤,计算量一次递增,O-网络最大,远算量最大的为P网络
①P网络:
要求输出位置(四个输出)和置信度(把不要的框去掉)一共需要5个通道
1 * 1后为全连接:因此输出要固定:
方法一(NHW )C>可以将NHW合并将其变为NV结构。
方法二:全卷积:对图像大小不敏感一共五个通道
②R网络:
池化(容易丢失信息,卷积不丢失信息,所以慎用池化)为3 * 3步长为2 * 2:后接全连接N(HW C)将后面当成V,P网络将C当成V ,因此输入的图片要固定
③O网络:输入的图片要固定大小
三MTCNN 算法流程
①做图片的金字塔:顶端金字塔最小应该大于12 * 12
② 将每个金字塔的图片输入到P网络(在人脸的地方会有大量的框,),进而输出所有框的置信度定义一个置信度:大于此值为人脸(因为是初选,置信度定义不易过大,):得到5个通道的特征图:第一个通道代表置信度:凡是大于0.7的留下来然后。反算回去:IDX(特征图的索引)*步长=进入P网络图的尺寸,然后除以原图的比例,得到建议框(为正方形),另外四个通道为位置的偏移:XX * / W = X关(偏移)得到原框X.然后通过非大值抑制,将多余的框去掉,(不在建议框做NMS的原因是因为建议框往往是个正方形,框的位置往往会过大,会过滤的不该过滤的信息)
③将信息输入到网络(图片大小固定:24 * 24):由于得到的原框大小可能为长方形,所以需要PIL等工具在原图上接一个正方形,然后在等比例缩放,得到的24×24的人脸不会变形。然后重新确定位置的偏移,得到新的框,再做NMS
③ 将信息输入侧侧侧侧侧侧到ø网络(图片大小固定为48×48)
四网络训练
如图1所示,网络:可以作用任意图片大小,可以拿12 * 12来训练,让其在图片中游离,与有人脸的框做期票(训练时,人脸框时已知的,在人脸框附近做浮动,再做IOU这样更容易取得正样本),期票小于某一值(0-0.3非人脸:置信度值0,0.65-1人脸:置信度值1,0.4- 0.65:部分人脸,0.3-0.4地标)为负样本,置信度的训练:脸非人状语从句:脸人坐标的训练:人脸和部分人脸。
2.超参数:①置信度:P网络(宁选错,不放过)设为0.6-0.7,②IOU置信度
五,网络设计
负样本采集:取图片的长和宽取最小值的x,然后定义一个(1-X)的随机数,图中区域为X的活动取值范围