1.一种基于语义特征金字塔的小人脸检测方法,其特征在于,包括以下步骤:步骤1:将目标图像输入到单目尺度不变人脸检测器SFD网络得到用于构建语义特征金字塔网络的输入特征;在特征融合之前,将设计的语义聚集模块插入特征金字塔顶层增强其语义信息;在特征融合过程,为了减少特征金字塔网络FPN特征融合中降维操作带来的信息损失,先对增强了语义信息的顶层特征以及后续的融合特征进行全局平均池化处理,并以FPN横向连接方式和自上而下路径进行特征融合,从而得到语义特征金字塔网络的浅层特征;然后通过自下而上路径,在增强语义信息的顶层特征上增加额外的卷积层,得到语义特征金字塔网络的深层特征,最终得到了含有丰富语义信息的语义特征金字塔网络;
步骤2:使用步骤1中构建的语义特征金字塔网络进行训练,得到网络预测输出;网络预测输出包括回归的锚框anchor和分类置信分数;为了减少主干网络采用固定阈值进行anchor匹配产生的错误分类样本数量并提高小人脸的召回率,采用尺度自适应匹配算法进行anchor匹配从而得到样本分类标签;首先将网络输出的锚框与真实框中心点距离和交并比iou结合作为候选样本分类指标,按尺度为每个人脸分类候选样本,然后计算候选样本iou的均值和方差之和作为阈值,得到anchor匹配的分类结果;最后根据anchor匹配的分类结果得到网络输出的分类标签;
步骤3:使用步骤1的网络输出和步骤2得到的分类标签,采用平衡交叉熵损失focal loss替换SFD分类任务的标准交叉熵,用于缓解网络中样本不平衡问题,通过迭代训练得到最终的网络模型;
所述步骤1具体包括以下步骤:
1.1将目标图像输入到SFD网络,SFD以VGG16作为基础框架,保留conv1_1到pool5的网络层,将全连接层fc6、fc7转换为卷积层,并在其后增加四个卷积层;网络将选择尺度不同的六个特征层conv3_3、conv4_3、conv5_3、fc_7、conv6_2和conv7_2作为检测层,其中浅层特征用于检测小尺度人脸,深层特征用于检测大尺度人脸;
1.2考虑到过大的感受野会引入噪声,从特征fc_7开始自上而下融合构造特征金字塔网络;为了增强特征金字塔的语义信息,设计了一个语义聚集模块;在特征融合之前,先将fc_7输入到语义聚集模块中进行运算,得到语义特征context_fc7,然后进行特征融合;
1.3特征金字塔原有融合方式是对深层特征进行降维、然后上采样和浅层特征基于元素相加;但在降维过程中会造成信息损失;为了缓解这个问题,在相邻特征融合过程中,对context_fc7以及后续的融合特征进行全局平均池化处理来减少融合过程中的语义信息损失;
1.4将语义特征context_fc7和浅层特征conv3_3、conv4_3和conv5_3以自上而下的路径和横向连接进行融合,增强了输出特征的语义信息,从而得到语义特征金字塔网络的浅层特征;然后以自下而上方式,在context_fc7上增加额外的四个卷积层得到语义特征金字塔网络的深层特征conv6_2、conv7_2,从而构建出语义特征金字塔网络;
所述步骤1.2将深层最大尺度特征fc_7输入到所述的语义聚集模块中进行运算,具体包括:
1)将输入特征fc_7进行1×1卷积运算减少通道数,得到通道特征;
2)将通道特征进行1×n,n×1的卷积运算减少特征参数,得到精简特征;
3)将精简特征进行空洞卷积运算,扩大特征感受野,得到语义信息特征;
4)将语义信息特征进行拼接操作,得到和输入特征fc_7相同维度的语义权重特征;
5)将语义权重特征和输入特征fc_7进行n×n的卷积运算,确保特征的判别性,得到上下分支权重特征;
将上下分支权重特征以点积方式融合从而增强了输入特征的语义信息,得到了语义特征context_fc7。
2.根据权利要求1所述的一种基于语义特征金字塔的小人脸检测方法,其特征在于,所述步骤2具体包括:
2.1使用步骤1中构建的网络进行训练,得到网络输出;
2.2将网络输出的anchor与ground truth中心点距离和iou结合作为候选样本分类指标,用scoreiou∪dis来表示;
2.3按尺度为每个人脸挑选候选样本,为对应人脸从每个尺度中挑选前n个scoreiou∪dis最大的anchor作为候选样本;
2.4计算所有候选样本的iou均值和方差之和作为动态阈值;候选样本的iou大于阈值分类为正样本,其余网络输出样本均分类为负样本。
3.根据权利要求2所述的一种基于语义特征金字塔的小人脸检测方法,其特征在于,所述步骤2.2将网络输出的anchor与ground truth中心点距离和iou结合作为候选样本分类指标,用scoreiou∪dis表示,具体包括:
1)网络输出的anchor具有统一格式,由anchor的中心点坐标(cx,cy)和anchor宽度和长度(w,h)构成,表示为(cxanchor,cyanchor,wanchor,hanchor),而目标图像中的人脸的表达形式为人脸框的左上角(x1gt,y1gt)和右下角(x2gt,y2gt)坐标,将目标图像中anchor的表达形式转换为人脸框的格式,其计算方式如下:x1anchor=cxanchor‑wanchor/2
y1anchor=cyanchor‑hanchor/2
x2anchor=cxanchor+wanchor/2
y2anchor=cyanchor+hanchor/2
2)计算目标图像中人脸和锚框的交并比iou,根据计算得到的x1anchor、y1anchor、x2anchor、y2anchor以及(cxanchor,cyanchor,wanchor,hanchor)计算得到人脸和锚框的交并比iou;
3)计算目标图像中人脸和锚框的中心点距离,用dis表示,其计算方式如下:为了便于计算,首先将人脸框转换为锚框的格式,由中心点和长宽表示,(cxgt,cygt,wgt,hgt),其中:cxgt=(x1anchor+x2anchor)/2
cygt=(y1anchor+y2anchor)/2
wgt=x2anchor‑x1anchor
hgt=y2anchor‑y1anchor
然后计算人脸框和锚框的中心点距离:
4)计算dis在anchor中占有的比例,然后iou减去该比例得到scoreiou∪dis:scoreiou∪dis=iou‑dis/wanchor。
4.根据权利要求3所述的一种基于语义特征金字塔的小人脸检测方法,其特征在于,所述步骤3具体包括:
3.1根据步骤1和步骤2得到网络输出的分类和回归正负样本;
3.2对分类样本使用平衡交叉熵损失focal loss得到分类任务损失,对回归任务使用SmoothL1损失得到回归损失;
3.3使用随机梯度下降方法更新深度神经网络模型参数,得到训练好的模型;
3.4判断深度神经网络模型是否达到收敛条件,如果不是,回到第2.1步;如果是,结束训练,获得训练好的深度神经网络模型。