·140· 智能系统学报 第13卷 别概率。FCN的主要网络是在现有的AlexNet!s 是像素级分类得分的概率图,判断该像素点是否属 VGGNet7和ResNet!例等用于图像分类的CNN网络 于某个人脸区域;另一个是1个4通道的像素点坐 模型上增加反卷积操作来实现的。DenseBox在文 标偏移图,4通道的像素点坐标偏移图中的4个通 献[15]基础上将人脸区域坐标回归问题视为在特征 道分别对应每一个像素值与离它最近的人脸区域的 图的每一个像素位置预测这个像素坐标相对于人脸 上下左右4个边框坐标的偏移量。最后使用交叉熵 区域边界坐标的偏移量的问题,然后使用类似图像 损失函数和重叠率损失函数指导网络训练,我们使 分割的方法来处理,并采用了2损失函数作为坐标 用联合训练。标签形式见2.1节,网络的具体细节 回归的损失函数,UnitBox认为同一个像素的4个 见2.2节。每一个像素都需要计算交叉熵损失,但 偏移量之间是相互关联的,为了体现这种关联性提 仅仅对包含在标注的人脸区域内的像素点计算重叠 出了使用重叠率损失函数,通过不断优化预测人脸 率损失。在测试阶段输入图片经过训练好的FCN 矩形框与真实人脸矩形框的重叠率,使得最终预测 模型输出每一个像素点的分类得分和人脸区域内像 的矩形框与真实矩形框的重叠率不断增加。 素点坐标偏移量,对每一个得分大于阈值的像素点 2算法框架 我们从对应四通道坐标偏移图取出该像素点相对于 离它最近的人脸区域边界坐标的偏移量,假设像素 本节主要介绍整体算法流程,如图1所示。在 点p(x,y)的预测得分s大于阈值且预测的坐标偏移 训练阶段有3个输入:RGB的训练图片、单通道的 为(d,dy,d,dy),则像素点p,y)的预测矩形框坐 区域像素分类标签和四通道的人脸区域内像素点坐 标为(x-dx,y-dy,+d,y+dy),使用NMS算 标偏移标签。经过FCN网络后有两个输出:第一个 法过滤重复检测的矩形框,得到最终检测结果。 训练阶段 测试阶段 原始输人图像 测试图像 FCN模型 FCN模型 像素点分类 人脸区域像 输出 得分标签 素点坐标偏 移标签 像素点分类得 分标签 损失函数计算 大于阙 输出对应像素 人脸区域像 值 坐标 素点坐标偏 移标签 背景(忽略) 输出检测结果 图1算法流程 Fig.1 Algorithm procedure 2.1训练标签的制作 每一个像素点的人脸置信度得分。假设像素点 训练标签如图2所示。 p(,)包含在某个人脸区域中,假设这个人脸区域 d 左上角坐标为p,(x,y,右下角坐标为P(xya),则像 素点p(x,)的标签向量形式:={,dr=-x, dy=y-yde=x-x,d山=y4-y%l。 2.2多级特征串联 网络模型结构如图3所示,使用的是去掉了全 (a)原始图像 (b)类别分类标签(©)坐标偏移标签 连接层和softmax层的VGG16网络作为模型共享 图2训练标签 的特征提取网络。在共享的特征提取网络的基础 Fig.2 Ground truth 上,在pool4特征层后添加了两个独立的卷积层sC 对于每一张训练的图像,将图像上每一个人脸 conv4和bbx conv44,每一个卷积层包括32个3×3 标注的矩形区域,以1填充,其他区域填充0,作为 的卷积核,并保持特征图分辨率大小不变,在pool5别概率。FCN 的主要网络是在现有的 AlexNet[18] 、 VGGNet[7]和 ResNet[19]等用于图像分类的 CNN 网络 模型上增加反卷积操作来实现的。DenseBox[5]在文 献[15]基础上将人脸区域坐标回归问题视为在特征 图的每一个像素位置预测这个像素坐标相对于人脸 区域边界坐标的偏移量的问题,然后使用类似图像 分割的方法来处理,并采用了 l2 损失函数作为坐标 回归的损失函数,UnitBox[6]认为同一个像素的 4 个 偏移量之间是相互关联的,为了体现这种关联性提 出了使用重叠率损失函数,通过不断优化预测人脸 矩形框与真实人脸矩形框的重叠率,使得最终预测 的矩形框与真实矩形框的重叠率不断增加。 2 算法框架 本节主要介绍整体算法流程,如图 1 所示。在 训练阶段有 3 个输入:RGB 的训练图片、单通道的 区域像素分类标签和四通道的人脸区域内像素点坐 标偏移标签。经过 FCN 网络后有两个输出:第一个 p(xi , yi) si (dx t i ,dy t i ,dx b i ,dy b i ) p(xi , yi) (xi −dx t i , yi −dy t i , xi +dx b i , yi +dy b i ) 是像素级分类得分的概率图,判断该像素点是否属 于某个人脸区域;另一个是 1 个 4 通道的像素点坐 标偏移图,4 通道的像素点坐标偏移图中的 4 个通 道分别对应每一个像素值与离它最近的人脸区域的 上下左右 4 个边框坐标的偏移量。最后使用交叉熵 损失函数和重叠率损失函数指导网络训练,我们使 用联合训练。标签形式见 2.1 节,网络的具体细节 见 2.2 节。每一个像素都需要计算交叉熵损失,但 仅仅对包含在标注的人脸区域内的像素点计算重叠 率损失。在测试阶段输入图片经过训练好的 FCN 模型输出每一个像素点的分类得分和人脸区域内像 素点坐标偏移量,对每一个得分大于阈值的像素点 我们从对应四通道坐标偏移图取出该像素点相对于 离它最近的人脸区域边界坐标的偏移量,假设像素 点 的预测得分 大于阈值且预测的坐标偏移 为 ,则像素点 的预测矩形框坐 标为 ,使用 N M S 算 法过滤重复检测的矩形框,得到最终检测结果。 2.1 训练标签的制作 训练标签如图 2 所示。 对于每一张训练的图像,将图像上每一个人脸 标注的矩形区域,以 1 填充,其他区域填充 0,作为 sˆ p(xi , yi) pt(xt , yt) pb(xb, yb) p(xi , yi) tˆ i = { ⌢ si , ⌢ dx t = xi − xt , ⌢ dy t = yi −yt , ⌢ dx b = xi − xb , ⌢ dy b = yi −yb} 每一个像素点的人脸置信度得分 。假设像素点 包含在某个人脸区域中,假设这个人脸区域 左上角坐标为 ,右下角坐标为 ,则像 素 点 的标签向量形式: 。 2.2 多级特征串联 网络模型结构如图 3 所示,使用的是去掉了全 连接层和 softmax 层的 VGG16 网络[7]作为模型共享 的特征提取网络。在共享的特征提取网络的基础 上,在 pool4 特征层后添加了两个独立的卷积层 sc_ conv4 和 bbx_conv4,每一个卷积层包括 32 个 3×3 的卷积核,并保持特征图分辨率大小不变,在 pool5 䃙㏯䭢⃡ FCN Ὅಷ FCN Ὅಷ ܦ䒿 䒿ܦᄥᏀ㉌ ౼ᴳ gal≶ᷬܦ䒿 ᢋܩ䃍ッ ㉌◥ܲㆧᓃ ܲᴳオ ㉌◥ܲㆧ ᓃܲᴳオ ഋࡦϦ㙤 ㉌◥౼ᴳջ ⼧ᴳオ ഋࡦϦ㙤 ㉌◥౼ᴳջ ⼧ᴳオ పڑ䒿࣋ ≷䄁䭢⃡ 䄁ప≷ ๓κ䬴 ը Y N 㗸ᮛ喋ᔩ⪑喌 图 1 算法流程 Fig. 1 Algorithm procedure (a) ࣋ప) b) ㆧݗܲㆧᴳオ (c) ౼ᴳջ⼧ᴳオ S ^ dx t ^ dy t ^ dx b ^ dy b ^ 图 2 训练标签 Fig. 2 Ground truth ·140· 智 能 系 统 学 报 第 13 卷