新闻  |   论坛  |   博客  |   在线研讨会
深度目标检测【VALSE Webinar】Panel实录
深度学习大讲堂 | 2020-09-14 15:14:36    阅读:402   发布文章

议题1:物体检测是一个sovled problem吗?现在SOTA系统还有什么不足需要继续深挖?学术界、工业界和用户对识别系统性能的评价有何不同理解?何时可以说一个问题是solved?

雷震:单纯从物体检测角度还远远谈不上solved problem,虽然精度在提升,但相比人脸、行人检测,物体检测的精度还是比较低。实际上细分物体检测的类别发现,人或车辆相关的检测精度比较高,但对像桌子、椅子、电脑以及沙发之类的物体,纹理比较小或形变比较大,检测精度还是比较低。

物体检测性能是否满足需要还需从实际应用的角度出发。在精度要求不苛刻的环境下,例如行人计数,物体检测能很好的应用。对于精度要求比较高的环境,例如自动驾驶上的物体检测,可能会因为一个误检造成比较大的后果,这种情况物体检测的性能仍需要不断地提升。

什么时候可以说物体检测是一个solved problem跟应用场景有关。虽然在人脸行人检测方面已有多年研究,但CVPR、ICCV上每年仍有很多这方面的论文。一方面,虽然精度上已经比较高,但学术上仍可以挖掘问题;另一方面,计算机视觉很难说某个问题能够达到终极解决。只要学术上还有可以挖掘的价值,就可以继续研究。

ATSS算法中,用均值和方差作为阈值是不严谨的。假设一个分数是高斯分布,那[均值+方差]的范围正好有一个执行度区间能够保留大概16%的数量。初衷是给每个物体匹配差不多数量的Anchor,实际过程中发现用[均值+方差]作为阈值,每个物体的数量对应的Anchor数量差不多。但这是非常不严谨的,因为IOU值的分布不是一个高斯分布,所以现阶段这只是一个经验值,暂时没有太深的理论上指导。


议题2:学术界应该如何面对工业界靠数据/计算取胜的局面?除了靠数据/大规模计算,还有什么可以提高性能?是否未来检测的发展要全面拥抱NAS(如EfficientDet)?

程明明:任何时候这个问题都不可避免。虽然学术界和工业界所依靠的资源不同,但很多研究并不是靠暴力堆出来的。物理学在早期的很多研究都是通过大量实验去归纳理论,而现在更多是用实验验证理论发展。靠暴力搜索不见得能解决所有问题。学术界应该更多关注理论上、思想上的创新,而不是只靠大量计算去堆结果,两个方面各有侧重。

企业界可以更多的利用暴力计算将系统的性能推向极致,学术界可以做更多新的思想。只依靠搜索的计算过程需要搜索空间,这些搜索空间需要学术界提出新的理论和方法。有好的思想没有大的算力,则可以考虑用非搜索的方法展现出来。学术界和工业界更多的互动推进技术的发展。

吴庆波:工业界的算力优势主要体现在有足够的资本能标注更大的样本,这些样本能够使训练集覆盖尽量完备。这种基于机器学习方法的优势是训练样本的多样性越强,覆盖到实际测试环境的可能性就越大。至于算力优势,可以支撑构建一个特征表达能力更强的模型。若需要提升算力,可以通过在学习的过程中设更大的batch size,收敛的稳定性会更强。但这些方法无法实现本质突破。对于非线性问题,用线性分类器数据再多,算力再强,是不能得到理想效果的。检测问题的本质还是机器学习的问题。寻找下一步突破的方向,就要从检测问题的本质出发,例如如何构建特征、如何构建分类器、构建损失函数,如何构建对应的训练策略。这种构建包括正负样本用新的测度选择而非基于IOU 进行选择,或feature用多层嵌入特征而非单层特征。这是回归到机器学习本身要解决的问题。

让检测问题本身做的更好就是从机器学习本身去思考这个问题,最早把L2的损失过渡到smooth L1就是要避免回归中梯度爆炸问题。当然L1损失函数也有自身缺陷,L1损失对所有样本计算梯度是一样的,无论样本跟Anchor或非Anchor的方法距离远近。需要考虑设计构建新的损失函数或构建新的特征提取的方式去解决这些本质问题。


议题3:Anchor-free检测器是否能取代Anchor-based检测器?

雷震:我认为Anchor-free和Anchor-based各有优势,两个方法取长补短整合成更高效、更高精度的方法,而不是两者相互替代。在人脸检测的时候,DenseBox最早是Anchor-free的方法。Anchor-free和Anchor-based本质上没太大的区别,检测终极的目标是精度和速度的平衡。

研究Anchor-free和Anchor-based可以在样本选择、特征选择或回归方式上下功夫,这两种方法正好能够互相对比、互相结合,取得更高精度、更加出色的工作。

诸宸辰:Anchor-free和Anchor-based各有优劣势。经验来看,这两者在各自领域做出的突破对另外一个方向存在启发作用,两者应该长期共存。具体到细节上的优劣势,Anchor-free在检测头结构上略简单,回归方式上不如Anchor-based易学。Anchor-based已有Anchor box这样的先验知识,更易训练。而Anchor-free是没有参考直接回归的。

叶齐祥:用特征作为参考点或是让Anchor手工设计作为参考点是这两者存在的一个非本质上的区别。Anchor-free的方法比较简单,将来可能会越来越受欢迎。Anchor-based的方法中, Anchor是手工设计的,若换个数据集或数据分布不一样,则需要重新设计Anchor。将来探索新的思路时,不仅仅停留在这两个方面如何重新组织convolutional的feature上,而是要集思广益组织成一种图的形式。让组织形式不仅仅是方框的Anchor。

廖胜才:相对而言我更喜欢anchor-free这一类方法,更简洁的设置,不需要再预设Anchor,相信未来会有更多在Anchor-free检测器方面的探索。事实上,不管是最早期的Viola-Jones式检测器还是现在的深度学习检测器,都是基于滑窗分类的思想,框出一部分再做分类的方法一直延续到深度学习。如果Anchor-free这种新的方法能够取得成功,就会产生更简洁的检测方式。我最早做检测时就是采用的Viola-Jones的方法,滑窗设定需要考虑很多方面,比如框的大小、尺度、长宽比、数量等,都是比较工程化的设定。基于anchor的方法,数据库越来越多之后会发现优化好的一套Anchor的参数,从这个数据库上移到别的数据库上,需要重新设置重新优化,才能获得一个最好的效果。甚至这一套Anchor的设定,在这个数据库上训好之后,拿去另外的库上测试泛化能力时,又会发现泛化性能不是太好。研究发现,用Anchor-free检测器,没有受到Anchor设置的限定,泛化能力会更好。

总的来说,Anchor-free检测器更轻便,更容易结合one-stage检测器,检测头简单,在检测头速度方面也有一定的优势。另外anchor-free检测器在目标形状上也有优势。当然也存在变形的Anchor,但传统的Anchor全部是长方形的。基于回归的话Anchor-free检测器就会有更多的可能性,可能是传统的长方形的形状,也可能是各种不规则的形状,都可以去回归,在未来一些不常见的非长方形目标检测上面会更加流行。

叶齐祥:有一个领域叫operdata counting,一般的情况下,对于小目标,相比于识别,数数的目的更优先。比如检测脸或人,目的是为了识别,这样的目标很容易是counting。可以参考counting使用工具的方法,让它们相互之间加入一些推理和联系,例如现在流行的JCN方法,这也是一个有趣的研究方向。


议题4:学术界出现了很多新的benchmark,这些数据库的优劣?哪些更贴近现实应用?

叶齐祥:例如object365等benchmark,使用大量资金人力做的数据库都各有特点。目前COCO使用较多,COCO后面instance segmentation(实例分割)又标了一个专门处理带有long tail的benchmark,更加接近于实际。将来COCO及LVIS这些数据库会使用的更多。更贴近实际应用的还有针对单类目标的Caltech、 Citypersons人体目标数据集合等。如果对于一般物体,像LVIS这种带有类别非平衡的数据集更贴近于应用。

吴庆波:现在的database相对来说标注质量谈论较少。Benchmark有很多,但标注质量的优势并不是特别明显。因为像ImageNet这种最早做分类的数据集现在已经在做含标签噪声的分类任务了。在检测以及分割的benchmark上,错标漏标问题还是一样普遍的。在传统的图像分类里,做的是图像级的标签,图像级标签存在噪声问题怎么解决,这是个方向。但是在我们的检测或者分割里面,已经不是图像级了,很有可能放在区域级,甚至是像素级的标签上,存在噪声(noise)的情况下如何再做一个更加有效率的学习和检测,这也是一个有趣的方向。


议题5:是否有必要以及如何提升物体检测系统的可解释性?

程明明:即使不考虑鲁棒性,从对抗的角度,可解释性也是非常重要的。提升物体检测系统的可解释性是有必要的,但更多的是讨论如何增强。其中一个角度是解释的定位和解释的可视化。从哪些区域、哪些现象导致的结论,哪些区域是支撑当前决策检测出来的那个物体,哪些区域影响最大,这是指解释的定位,跟这类相关的是类似于class activation mapping的技术。解释的可视化是指某些东西对我有帮助,但是这些东西对哪些模式响应最大,刚好与当前这个图像里面的哪些东西匹配。

另外一个角度是我们只能去处理好相对来说比较简单的东西,比如一眼能够数清楚的数一般不超过五六个。但是人很厉害,随便一个东西有问题,很容易从那个最简单的维度去把这个问题给看出来。最终一个可解释的鲁棒的系统,一定是依赖于少量关键特征的,这些关键特征能够从一定程度上很好地可视化出来,也能从一定程度上很好地定位出来,以形成一个检测结果的支撑。


议题6:物体检测与特征学习、物体识别的本质性区别是什么,物体检测有自己特定的研究方法论吗?

雷震:物体检测有两个步骤,物体分类和回归物体位置。实际上分辨率较低情况下的物体检测,会因为物体分类错误导致检测结果错误。物体分类是用正负样本进行训练,从而得到较好的分类器。正负样本对于提升物体分类的精度从而提升物体检测的精度有很大的重要作用。

 叶齐祥:小目标是一个非常难的题,关系到图像的退化,ECCV我们组织了有一个专门检测小目标的challenge。对于那种一个或半个像素的小目标检测,这种往往有军事应用价值,或者海上搜救等非常远距离的目标,本身有意义,这超出了计算机视觉和图像处理的范围,也许结合传感器能够很好的对该问题进行解决。

吴庆波:上下文算是小目标里面一个突破的思路,小目标最大难点在于信息的退化。回到最基本的问题,考虑奈奎斯特采样定律,如果信号采样率过小,样本之间已经产生频域混叠,信号是无法恢复的。同样地,样本很小的情况下,理论上可能已经不可分了。既然目标本身不可分的话,更多的是考虑,如果存在上下文的时候,能否通过周围目标之间的位置关系,或者常见的共生概率,而不仅仅是单纯依靠目标本身的描述性信息。例如有时候一个人的一个目标在图像当中很小,但是可能人身边有一些其他的物体,如果人跟这些物体的共生概率很高,就有可能借助这种互相关的信息,通过上下文,提升检测效果。


议题7 :如何解决开放环境的检测器学习问题,准确定位和识别新类?不同的场景下,检测的难度不同。如何根据场景难度自适应地分配算力?

程明明:开放环境面临的最大问题是存在一些新类别、未知类别或者不完全是未知但样本量很小的类别。这些问题更多的需要知识去驱动。平时看到一个物体很容易搞清楚这个物体是什么,或者能通过特别少的样例去学习,原因是我们有知识。例如看到一个新的物体,看到一个斑马,我看到那个斑马,可以很容易认出来,很快地学习到怎么认识斑马,因为既有马的特征,也有斑纹的特征,然后再把这些知识结合起来。

目前主流的检测方法、学习方法,都是从头到尾的学。就像研究组招学生,这个学生数学和编程都没学过,再去训练他学计算机视觉是很难的。现在很大程度上为了比较的公平性,各种东西的检测识别都要求在某些特定的数据集上去做训练、测试,外部的知识受限。怎么样把通用的知识运用好是一个很重要的方向。

另外一方面,强调自适应更多的是从尺度的角度去考虑场景的难度。一个场景里只有一个物体,这就需要在很大的尺度上分析。一个场景比较难,很大程度上是因为物体聚集,这种情况更多的是需要分析场景的多尺度特征。我们的Res2Net在商汤开源的mmdetection库上,能做到比之前最好的微软HRNet大概少一半的参数量和一半的计算量,并且结果还比它最好的结果还要好,很大程度上得益于对这种多尺度信息的自适应处理的能力。应该利用好通用知识和多尺度信息。

叶齐祥:场景的适应力除了开放环境,还有一个domain adaptive的问题。目前使用的方法都是transfer,把ImageNet上训练的模型导出transfer,那么detector本身的transfer还是可以有很多的研究。现在的transfer就是A域到B域,刷刷性能,并没有很好的解决模型自适应问题。实际应用中可能不是这样。例如,某一个公司需要部署一个监控摄像头,可能面临复杂的transfer场景,例如一天24小时的transfer,天气的transfer,不同视角的transfer。场景自适应面向真实的应用还缺乏多场景transfer的数据集,这方面既有数据集的需求,也有实际应用的需求。


议题8:通用的物体检测之外,特殊类别的物体检测(如人脸,行人)是否有其特殊的方法论?

程明明:确实特殊物体很难去收集大量样本。分享一个之前做的项目,我们想去检测一些特别贵的设备上的类似于划痕的缺陷,设备一旦存在这种缺陷,就差不多快报废了。一个样例就对应了几百万的损失,所以没法找大量的训练样本,这种情况下很大程度上依赖于通用知识。当时处理那个问题利用的通用知识就是边缘信息。虽然划痕、裂纹很难找,但是边缘相对容易。利用通用的边缘检测辅助做这些事情,因为这种划痕的特殊物体,目标本身应该是人造的物体,划痕是非规则的。对于这种特殊的物体,特别是当信息不足的时候,更多的是需要想办法把通用的属性、通用的知识运用起来。

廖胜才:特殊类别的物体检测存在特殊的方法论。学术界遇到了人脸、行人检测,很多其他特殊物体的检测主要是来自工业界的需求。各种特殊物体的检测都未必是通用物体检测里面的方法能够解决的。就个人经验而言,即使人脸和行人的检测,也有很多是跟通用物体检测不太一样的地方。比如一个典型的是速度问题,在通用物体检测里面,有关注轻便检测器的,但还不至于研究到非常极致的程度。像在人脸和行人中,特别是人脸,其实已经把网络做到非常极致了,就是非常轻便快速的检测器,而且同时精度也能达到非常高的检测器。这就是一个来自实际的需求导致的一个问题。还有一些特殊的问题,比如说遮挡、低分辨率、模糊等。通用物体里通常很难定义关键点,但是像物体、人脸和行人,这些是非常典型的,能定义各种关键点。在实际运用当中,也是需要检测这些关键点。还有一个点是泛化能力问题。虽然通用物体数据库很大,人脸也不缺乏训练数据,但是对于行人来说样本相对比较缺乏,在一些常见的库上训练出的行人监测器,拿到别的地方去测的时候,泛化性能通常不会太好,因此泛化性是需要研究不是大规模数据训练时训出的检测器能否在别的数据上用的一个问题。

雷震:从检测难度上来说,人脸和行人作为通用物体的一种。通用物体的这个框架对人脸和行人有一定的指导作用,实际上目前做的很多东西就是从通用物体检测里面直接过来的。人脸和行人的种类相对来说是单一物体,理论上能够比通用物体做的更好,对精度和速度能够提出更高的要求,把人脸行人用在嵌入式设备上面能够达到既快又准。同时这个行人和人脸,因为有自己的形状大小,所以也可能从分块上比较好地处理遮挡问题。另外关于样本比较少的瑕疵问题,可以用通用的知识辅助检测,也可以用图像处理的方法人为地生成一些虚拟的样本。对这种样本比较少的场景,一是要开发处理小样本的机器学习方法,二是图像处理生成比较逼真的样本,这对检测器训练的精度也是比较有帮助的。

诸宸辰:特殊类别主要应该考虑challenge的位置,例如人脸的challenge在于一方面经常有非常小的目标,另一方面是人脸有时候会被高度遮挡,比如说戴口罩。对于这种状态可以用特殊的方法论,一个人脸基本上可以确定一个人体是在那里,可以利用人脸和人体之间的相互关系,比如可以从人体的位置去推测人脸的位置。行人的challenge主要在于两个行人之间会有高度重叠。近期工作中表明不是一个Anchor对应一个目标,可以从一个Anchor去预测多个目标。因为数据自然而然就会呈现出long tail分布,所以总有一些类的样本数量比较少,这方面可以通过比较样本数量比较多的类和样本数量少的类之间的相互关系,去做一个类别推理。


观众提问:在多目标检测的时候,非常容易出现类别不平衡的一个现象,有没有什么思路?

诸宸辰:最近有关于few-shot方面的检测,对于类别多的物体,可以正常地去按现有的方法去做,类别少的物体,通过类别多的物体和类别少的物体之间相互关系去作一个推理。另外可以借鉴最近few-shot方面利用meta-learning的方式,例如用episode learning的方式去做few-shot detection。

吴庆波:样本不平衡的情况,常见的思路包括样本的重采样,因为有的样本多,有的样本少,如果只是单纯是想让样本在分布上比较均匀的话,在训练数据上可以通过重采样的方式来处理,包括少量类别做特定的数据增广。另外一种方法, learning过程中对不同样本采用重加权,对于特定样本,为了防止样本少的类别在训练过程当中产生bias,可以在训练的过程当中调整不同样本类别之间的权重。



*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客