返回 登录
0

【ECCV 2016】Grid Loss及其在人脸检测中的应用

本文来源微信公众号:深度学习大讲堂,已授权发布。
作者:时学鹏,中科院计算所VIPL组15级硕士生。导师为山世光研究员。研究方向为基于深度学习的目标检测,特别是人脸检测。研发了VIPL课题组第五代人脸检测SDK。
原文:【Technical Review】ECCV16 Grid Loss及其在人脸检测中的应用
欢迎技术投稿、约稿、给文章纠错,请发送邮件至heyc@csdn.net

什么是人脸检测?简而言之,给定一张图片,判断图中是否有人脸,如果有人脸,进一步给出每一张人脸的位置和大小。这一看似简单的任务,在实际应用中却面临着诸多困难,其中之一就是当人脸被遮挡时,如何才能准确地进行检测。在ECCV 2016上,有一篇文章专门针对检测遮挡人脸的问题进行了探索:Grid Loss: Detecting Occluded Faces,该文章通过设计新的损失函数,综合考虑局部和整体信息对分类的作用,增强了检测器对遮挡的鲁棒性。

图片描述

检测被遮挡的人脸,这一任务的难点在于,遮挡会导致一部分人脸特征缺失,取而代之的是遮挡物的特征,这不仅容易引起分类器误判,还容易造成漏检。解决遮挡人脸检测的问题可以从数据与算法两个方面切入。从数据方面入手的做法较为直接,即在分类器训练阶段,在正样例集中加入一定比例的带遮挡人脸,让分类器从数据中自动去学习带遮挡人脸的变化模式。数据驱动的方式也就意味着对数据的依赖,而遮挡的变化模式复杂多样,如果希望模型能对遮挡有较好的鲁棒性和泛化能力,那将需要非常大量的数据。从算法的角度入手,已有的一些工作在解决遮挡问题时,有些需要在训练数据中标好人脸的五官,这样在训练数据的制备收集阶段要花费更多的精力;有些在人脸检测的预测阶段有额外的计算,这样会因为处理遮挡带来额外的时间开销,而检测本身就是一个对速度极其敏感的任务,这也不是我们希望看到的。

近年来,神经网络在计算机视觉领域得到了广泛应用,也包括人脸检测这个子领域。神经网络的参数优化过程就像是一艘船在茫茫大海上行驶。这一叶扁舟(神经网络的参数),在大海(参数的解空间)上航行,那黑暗中的灯塔(损失函数),放射出耀眼的光辉(梯度),引导着前进的方向(梯度下降)。神经网络具有强大的非线性建模能力,有些时候对于一个问题效果不好,并不是神经网络的表达能力不足,而是损失函数没能引导神经网络的参数落在一个很好的解上。既然如此,可否改进人脸与非人脸分类时使用的损失函数,引导分类网络学习到对遮挡更鲁棒的特征呢?这样,不会在预测阶段带来额外的计算时间,如果损失函数无需额外标注信息,那也不需要额外的数据标注了。

图片描述

这篇文章提出的grid loss就是在这个方向上进行了探索研究。一般的损失函数都是直接根据整个图片的信息计算loss,导致学习出的网络会趋向于利用全局信息分类。这篇文章将分类网络最后一个特征图划分为若干个网格(也就是相当于将图片划分为若干个网格),每个小网格看成一个单独的区域,按同样的方式计算一个loss,与整个图片的loss加和作为最终的loss。这样的loss强化了每一个小网络区域单独的判别能力,使得学习出的特征对于遮挡会更加鲁棒。引用论文中的一个图来说明普通loss与grid loss的区别。

图片描述

grid loss的数学定义如下(这里每一个grid的loss都是一个hinge loss):
图片描述

其中,N代表grid的个数,wi与bi是最后一个featuremap的第i个grid对应的权值参数与偏置项, w = [w1, w2, …, wN]为最后一个featuremap整体对应的权值参数,b = b1 + b2 + … + bN 为其对应的偏置项。这样,公式的第一项代表了整个featuremap上的loss,第二项代表了每一个grid的loss。λ是一个平衡系数,权衡全局的loss与局部的loss大小。m为一个常数,为1 / N,因为希望每一个网格区域对分类有相同的贡献。下图是分类网络的最后一个featuremap分块计算loss的示意图。
图片描述

在检测阶段,直接将训练得到的w和b换为一个对应的全连接层即可,不需要任何额外的计算量。

grid loss经过作者的实验论证,能够比较明显的提升对于遮挡人脸的检测效果。除此之外,作者还发现grid loss可以使网络学习出更加多样性的特征;同时可以起到正则化的作用,在减少训练数据的时候,使用了grid loss的检测器性能下降会更少一些。这一点可以从模型集成的角度理解,因为现在强化了每一个grid的作用,最终学习出的检测器有一点若干个检测器集成的味道。作者使用的检测器,使用logistic loss时,用fddb数据集图像测试, 100个误检下的召回为0.795,使用了grid loss可以达到0.838,提高了大约4个百分点。

最后总结一下,grid loss这篇文章提出了一种提升被遮挡人脸检测性能的方法,这种方法无需额外的数据标注(如标注人脸中的五官),并且是一种离线训练时的策略,对在线的检测阶段没有影响,不会有额外的时间代价。作者论文中使用的检测框架是一个使用了滑动窗口范式的比较原始的框架,笔者认为,未来尝试将grid loss嵌入到一些先进的检测框架,如Faster RCNN里,是一件值得一试的事情。最后的最后,祝各位读者在生活这片海域里,都能找到自己最想要的那个损失函数,向之前进。


130+位讲师,16大分论坛,中国科学院院士陈润生、滴滴出行高级副总裁章文嵩、联想集团高级副总裁兼CTO芮勇、上交所前总工程师白硕等专家将亲临2016中国大数据技术大会预购从速

图片描述

评论