关闭 More 保存 重做 撤销 预览

   
关闭   当前为简洁模式,您可以更新模块,修改模块属性和数据,要使用完整的拖拽功能,请点击进入高级模式

重播

lxy254069025
LV5 水面的小草
帖子    423
新博币    345 提现
提现    0
     
    1986 0 | 显示全部楼层 |倒序浏览
    什么是人脸检测?简而言之,给定一张图片,判断图中是否有人脸,如果有人脸,进一步给出每一张人脸的位置和大小。这一看似简单的任务,在实际应用中却面临着诸多困难,其中之一就是当人脸被遮挡时,如何才能准确地进行检测。在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里,是一件值得一试的事情。最后的最后,祝各位读者在生活这片海域里,都能找到自己最想要的那个损失函数,向之前进。

    个人签名

    TAGS 检测
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表