想到人脸检测就会想到几个关键的问题:
a)人脸检测多尺度问题(大家会用图像金字塔、特征金字塔等)
b)
RetinaFace 人脸检测代码(std)
- 网络结构如下图所示,主要包括四个部分,:(1)backbone(2)特征金字塔(3)上下文结构(4)损失函数
0.1 代码部分定义如下,
第一部分:body需要在backbone上做一定改动,对参数中的return_layers做改动,将需要输出的特征层输出,用于特征金字塔上采样。
第二部分:特征金字塔:上一层backbone将输出三层特征后,FPN对数据进行上采样(F.interpolate)+合并(直接元素相加)的操作。输入为存三个feature map的列表,输出也是三个feature map的列表。
Note1:将高层特征语义信息传回底层特征,这样可以使得底层特征融合之后语义信息更强,使得网络可以综合考虑不同尺度的人脸(浅层网络可以提取小脸特征、深层网络提取深层特征)。
Note2:a)MTCNN采用图像金字塔来综合多尺度信息;b)CenterFace也用了特征金字塔网络;金字塔网络必备
- 第三部分:上下文结构:三个上下文结构分别对特征金字塔输出的三层feature map处理
Note3:
- 第四部分:损失计算:对三组特征分别先卷积再view计算class、bbox、landmark的输出,并计算损失。
Note4:多任务损失把landmark引入进来带来更多的监督信息…
0.2代码中的模块定义
#step 1 backbone 主体 body返回三个output分别代表特征金字塔结构的三个特征
self.body = _utils.Interme

最低0.47元/天 解锁文章
2858

被折叠的 条评论
为什么被折叠?



