【AI唠科】Focal Loss:助大神何凯明获得ICCV最佳学生论文,究竟有什么功?|兼谈目标检测发展历程

2017 年 11 月 16 日 中国科学院自动化研究所

【导读】Focal Loss打败了所有state-of-the-art的算法,而且竟然在速度上也是一马当先,可以说相当有说服力。但是作者为了证明Focal Loss的有效性,并没有设计更新颖的网络,这与其他算法提高精确度的做法是不一样的——他们要么改造原有算法的网络结构,要么另辟蹊径。



一、引言:何凯明又拿下了ICCV最佳论文



前些日子,计算机视觉三大顶会之一ICCV公布了获奖论文,连续三次获得最佳论文的何凯明再次成为刷屏网红。另外,何恺明参与的Focal Loss for Dense Object Detection,也被大会评为了最佳学生论文。


 

何恺明和 Ross B. Girshick


这篇最佳学生论文提出了一个十分新颖的观点,颠覆了很多人对one-stage detector的看法。在这篇论文之前,很多人认为one-stage detector在进行目标检测中效果不够好的原因是它使用的feature不够准确,所以经过ROI pooling得到更精确的表示,也就是改造成two-stage detector。但是这篇文章证实了并不是因为feature并不够精确,而是另有缘由。

讲到这里,有必要介绍一下目标检测这一领域的主流思想。 



二、目标检测的主流算法



在Focal Loss这篇论文中,作者将目标检测方法分为两类:根据是否存在专门提取候选框的子网络,将目前的主流算法分为one-stage和two-stage。所谓one-stage,就是不存在提取候选框的子网络,直接对整个图像所有的可能目标区域进行直接密集检测。而所谓two-stage算法,就是存在将候选目标区域稀疏化的分类器。理论上讲,one-stage法更简单,也更快,但是在实际运用中,发现one-stage方法在准确度上要输给two-stage方法很多,所以后来two-stage方法就占据了主流。


除了one-stage和two-stage方法,就是传统目标检测算法了。传统的目标检测方法大致在2014年以前占据主流,大都有着SVM和boosting的思想在里面,其流程可以用下面这张图来表示:


首先在给定的图像上选出更可能存在目标物体的候选区域,然后对这些区域进行特征提取,最后就是用训练好的分类器进行分类。这种方法的效果并不理想,尽管当时很多学者进行了各种改进,但是最根本的两个缺点一直没有被克服。


第一个缺点就是在区域选择的时候,由于目标物体的大小、位置、长宽比等信息均不能确定,所以需要采用不同尺寸和长宽比的滑动窗口遍历整个图像,这种方法从理论上保证了能够找到目标物体的位置,但是需要极大的运算量,时间复杂度极高,冗余窗口在所有窗口中的占比也非常高,严重影响了后续特征提取已经分类的速度。第二个缺点就是由于目标特征的可变性,以及背景的变化等情况,使得提取到鲁棒的特征并不容易,在实践中如果得不到合适的特征会严重影响分类的准确性。


传统目标检测算法的缺点根植于算法的基本思想上,难以改进,所以当深度学习在目标分类领域证实了其卓越的有效性之后,RBG大神推出了利用深度学习进行目标检测的开山之作——R-CNN,Ross Girshick在推出R-CNN算法之后,又不断改进,多次在PASCAL VOC的目标检测竞赛中夺冠,并于2010年获得终身成就奖。RBG随后提出的fast R-CNN以及与何恺明合作推出的faster R-CNN,成为多年来目标检测领域最流行也最work的系列方法。



R-CNN,fast R-CNN和faster R-CNN,它们共同的地方是在于都用了region proposal方法大幅减少了目标候选框的数量,使其在数千的数量级上就有相当高的准确度。但是R-CNN存在着对相互重叠的候选框进行重复特征提取的缺点,这一部分是很耗时的,当候选框只有数千时,也成为整个算法中耗时占比相当多的一步。


fastR-CNN


为了改进这个缺点,RBG借鉴何恺明的SPP-Net提出了fast R-CNN。Fast R-CNN与R-CNN最大的区别就是fast R-CNN不是对每个候选框单独进行特征提取,而是对整个图像进行特征提取,在提取特征之后才进行候选框的划分,这就避免了对重叠候选框的重复计算。另外,fast R-CNN提出了ROI pooling层概念,ROI pooling层可以看作单层的SPP-net。在R-CNN中,对候选框进行卷积操作时,由于卷积操作需要固定大小的输入图像,而候选框的大小又是不确定的,所以需要对候选框进行变形操作以满足需求,这不仅导致多余的操作,而且变形可能导致特征提取效果不够理想。而SPP-net可以直接对不同尺寸的候选框进行处理,这就保证了很好的分类效果。


但是,fast R-CNN还是不够快,找出所有的候选框还是需要耗费数秒的时间,不能满足实时分类的性能要求。于是,RBG与何恺明合作提出了性能更好的faster R-CNN。既然对单幅图像用selective search方法提取proposal就要数秒的时间,那就设计新的方法提取proposal。这种新的方法就是RPN网络(Region Proposal Networks)。



RPN的巧妙之处在于利用全卷积网络直接对整幅图像提取proposal,然后再将提取到的proposal交给fast R-CNN模块进行检测。尽管在RPN中采用了本应十分耗时的滑动窗口策略,但是由于滑动操作是在卷积层feature map上进行的,尺度相比原图像减小了很多,所以并不费时。尽管faster R-CNN的速度和精度又得到了很大的提升,但是仍然不能做到实时的目标检测,需要通过RPN网络预先获得region proposal,然后才对每个proposal进行分类和精修。


总的来说,R-CNN,fast R-CNN,faster R-CNN这一系列的成果,使得深度学习在目标检测领域得到广泛的应用,算法的流程也日趋简单,精度不断提高,可以说这一系列基于region proposal的目标检测方法仍然是目标检测领域最主要的一个分支。


基于region proposal的算法都是two-stage的,他们的主要缺点就是速度不够快,尽管每年都有非常新颖的算法提出,但是在速度方面并没有质的飞跃。而相对而言,one-stage的主要优势就是网络简单,速度够快,那么有没有精度能与two-stage算法匹敌的one-stage算法呢?答案是有的,这就是接下来要介绍的YOLO和SSD算法。

 YOLO流程图


YOLO(You Only Look Once)是一个可以一次性预测多个Box位置和类别的卷积神经网络,能够实现端到端的目标检测和识别,其最大的优势就是速度快。YOLO有着极为简单的模型,它没有选择滑窗或者提取proposal的方式进行网络的训练,而是直接选用整幅图训练模型。这种方式可以更好地区分背景区域和目标区域,而不会出现proposal方法中将背景区域误判为目标的情况。当然,速度上的提升也导致了精度上的一些牺牲,YOLO简单粗暴地对图像进行网格划分,然后再对网格进行处理,这就会导致定位不精确的问题,YOLO的识别精度并比不上当时精度最高的faster R-CNN方法。


Faster R-CNN的定位相比于YOLO要精确得多,那把YOLO和faster R-CNN中关于定位的部分结合起来会怎样呢?这就有了SSD(Single Shot MultiBox Detector),其结果相比YOLO提高了很多。 



三、Focal Loss:速度上一马当先



YOLO和SSD可以算one-stage算法里的佼佼者,加上R-CNN系列算法,这几种算法可以说是目标检测领域非常经典的算法了。这几种算法在提出之后经过数次改进,都得到了很高的精确度,但是one-stage的算法总是稍逊two-stage算法一筹,于是就有了Focal Loss来找场子。


在Focal Loss这篇论文中中,作者认为one-stage精确度不如two-stage是因为下面的原因:

①  正负样本比例极度不平衡。由于one-stage detector没有专门生成候选框的子网络,无法将候选框的数量减小到一个比较小的数量级(主流方法可以将候选框的数目减小到数千),导致了绝大多数候选框都是背景类,大大分散了放在非背景类上的精力;

②  梯度被简单负样本主导。我们将背景类称为负样本。尽管单个负样本造成的loss很小,但是由于它们的数量极其巨大,对loss的总体贡献还是占优的,而真正应该主导loss的正样本由于数量较少,无法真正发挥作用。这样就导致收敛不到一个好的结果。

既然负样本数量众多,one-stage detector又不能减小负样本的数量,那么很自然的,作者就想到减小负样本所占的权重,使正样本占据更多的权重,这样就会使训练集中在真正有意义的样本上去,这也就是Focal Loss这个题目的由来。


其实在Focal Loss之前,就有人提出了OHEM(online hard example mining)方法。OHEM的核心思想就是增加错分类样本的权重,但是OHEM却忽略了易分类样本,而我们知道这一部分是所有样本中的绝大部分。



与OHEM不同,Focal Loss把注意力放在了易分类样本上,它的形式如图所示。Focal Loss是一种可变比例的交叉熵损失,当正确分类可能性提高时比例系数会趋近于0。这样一来,即使再多的易分类样本也不会主导梯度下降的过程,于是训练网络自然可以自动对易分类样本降权,从而快速地集中处理难分类样本。



可以看出,Focal Loss打败了所有state-of-the-art的算法,而且竟然在速度上也是一马当先,可以说相当有说服力。但是作者为了证明Focal Loss的有效性,并没有设计更新颖的网络,这与其他算法提高精确度的做法是不一样的——他们要么改造原有算法的网络结构,要么另辟蹊径。另外,Focal Loss函数的形式并不是不可变的,只要可以达到对易分类样本降权的目的,可以在形式上有所变化。


总之,Class imbalance是阻碍one-stage方法提高准确率的主要障碍,过多的easy negative examples会在训练过程中占据主导地位,使训练结果恶化,所以要用Focal Loss对easy negative examples进行降权,而把更多的注意力集中在hard examples上。 



四、总结



在深度学习被引入到目标检测领域之后,各种各样的网络框架层出不穷,各种比赛的精确度不断被刷新,我们的日常生活也日渐离不开人工智能的影响。

登录查看更多
10

相关内容

RetinaNet是2018年Facebook AI团队在目标检测领域新的贡献。它的重要作者名单中Ross Girshick与Kaiming He赫然在列。来自Microsoft的Sun Jian团队与现在Facebook的Ross/Kaiming团队在当前视觉目标分类、检测领域有着北乔峰、南慕容一般的独特地位。这两个实验室的文章多是行业里前进方向的提示牌。 RetinaNet只是原来FPN网络与FCN网络的组合应用,因此在目标网络检测框架上它并无特别亮眼创新。文章中最大的创新来自于Focal loss的提出及在单阶段目标检测网络RetinaNet(实质为Resnet + FPN + FCN)的成功应用。Focal loss是一种改进了的交叉熵(cross-entropy, CE)loss,它通过在原有的CE loss上乘了个使易检测目标对模型训练贡献削弱的指数式,从而使得Focal loss成功地解决了在目标检测时,正负样本区域极不平衡而目标检测loss易被大批量负样本所左右的问题。此问题是单阶段目标检测框架(如SSD/Yolo系列)与双阶段目标检测框架(如Faster-RCNN/R-FCN等)accuracy gap的最大原因。在Focal loss提出之前,已有的目标检测网络都是通过像Boot strapping/Hard example mining等方法来解决此问题的。作者通过后续实验成功表明Focal loss可在单阶段目标检测网络中成功使用,并最终能以更快的速率实现与双阶段目标检测网络近似或更优的效果。
深度学习目标检测方法及其主流框架综述
专知会员服务
143+阅读 · 2020年6月26日
【文献综述】深度学习目标检测方法及其主流框架综述
专知会员服务
114+阅读 · 2020年6月26日
CVPR 2020 最佳论文与最佳学生论文!
专知会员服务
34+阅读 · 2020年6月17日
专知会员服务
31+阅读 · 2020年4月24日
CVPR2020 | 商汤-港中文等提出PV-RCNN:3D目标检测新网络
专知会员服务
43+阅读 · 2020年4月17日
专知会员服务
53+阅读 · 2019年12月22日
新加坡南洋理工最新37页《零样本学习综述》论文
专知会员服务
109+阅读 · 2019年10月20日
密歇根大学《20年目标检测综述》
专知会员服务
96+阅读 · 2019年10月13日
在计算机视觉方向如何快速提升自己?
计算机视觉life
8+阅读 · 2019年9月6日
ECCV 2018 | OR-CNN行人检测:为‘遮挡’而生
极市平台
6+阅读 · 2018年9月21日
目标检测算法盘点(最全)
七月在线实验室
17+阅读 · 2018年4月27日
Focal Loss for Dense Object Detection
统计学习与视觉计算组
11+阅读 · 2018年3月15日
论文 | YOLO(You Only Look Once)目标检测
七月在线实验室
14+阅读 · 2017年12月12日
行人检测、跟踪与检索领域年度进展报告
深度学习大讲堂
6+阅读 · 2017年5月8日
Arxiv
5+阅读 · 2019年4月8日
Arxiv
6+阅读 · 2018年7月9日
Arxiv
5+阅读 · 2018年4月17日
Arxiv
7+阅读 · 2018年1月24日
Arxiv
4+阅读 · 2016年12月29日
VIP会员
相关VIP内容
深度学习目标检测方法及其主流框架综述
专知会员服务
143+阅读 · 2020年6月26日
【文献综述】深度学习目标检测方法及其主流框架综述
专知会员服务
114+阅读 · 2020年6月26日
CVPR 2020 最佳论文与最佳学生论文!
专知会员服务
34+阅读 · 2020年6月17日
专知会员服务
31+阅读 · 2020年4月24日
CVPR2020 | 商汤-港中文等提出PV-RCNN:3D目标检测新网络
专知会员服务
43+阅读 · 2020年4月17日
专知会员服务
53+阅读 · 2019年12月22日
新加坡南洋理工最新37页《零样本学习综述》论文
专知会员服务
109+阅读 · 2019年10月20日
密歇根大学《20年目标检测综述》
专知会员服务
96+阅读 · 2019年10月13日
相关资讯
在计算机视觉方向如何快速提升自己?
计算机视觉life
8+阅读 · 2019年9月6日
ECCV 2018 | OR-CNN行人检测:为‘遮挡’而生
极市平台
6+阅读 · 2018年9月21日
目标检测算法盘点(最全)
七月在线实验室
17+阅读 · 2018年4月27日
Focal Loss for Dense Object Detection
统计学习与视觉计算组
11+阅读 · 2018年3月15日
论文 | YOLO(You Only Look Once)目标检测
七月在线实验室
14+阅读 · 2017年12月12日
行人检测、跟踪与检索领域年度进展报告
深度学习大讲堂
6+阅读 · 2017年5月8日
相关论文
Top
微信扫码咨询专知VIP会员