目标检测综述(一份全的自制PPT): 涵盖各种模型简介对比,适合入门和了解目标检测现状 | 您所在的位置:网站首页 › 目标检测经典算法有哪些 › 目标检测综述(一份全的自制PPT): 涵盖各种模型简介对比,适合入门和了解目标检测现状 |
目标检测综述[一份全的自制PPT]: 涵盖各种模型简介对比,适合入门和了解目标检测现状
P1:目标检测的需求与应用P2:目标检测的相关定义2.1 目标检测的定义2.2 目标检测的核心问题2.3 理想检测器的条件2.4 从两个要求看关键挑战从精度角度看挑战从效率角度看挑战一个挑战解决方法的例子
2.5 目标检测损失函数的发展概述IOU的发展变化IOUGIOUDIOUCIOUEIOUIOU loss的总结
2.6 评价指标概述常见指标概述AP与mAP
2.7 数据集与标注软件常见数据集两大主流数据集两大标注软件三种常用标签格式
P3:方法回顾3.1 目标检测算法发展的概览发展历史轴(时间轴线图)算法方法概览(思维导图)
3.2 传统的目标检测基于特征的传统算法基于分割的传统算法传统算法的一般流程经典的传统算法Harr+AdaboostHOG + SVMDPM
传统算法总结
3.2 后处理算法NMS的发展NMS概览传统NMSsoft-NMSWeighted-NMS分类置信度优先NMS总结IOU-Guided NMS(IOU-Net)softer NMSAdaptive NMSDIOU-NMSNMS总结
3.3 Anchor-based的目标检测3.3.1 Two-stage方法3.3.2 One-stage方法3.3.3 Anchor-based总结
3.4 Anchor-free的目标检测3.4.1 背景与定义3.4.2 Anchor-free概述3.4.3 早期探索型DenseBox
3.4.4 基于关键点系列(源于姿态估计)CornerNetCornerNet-LiteExtremeNetCenterNetCircleNet
3.4.4 基于密集型系列(源于语义分割)FCOSFoveaBox
3.4.5 总结与思考
3.5 Transformer-based的目标检测3.5.1 引言3.5.2 概述3.5.3 发展轴预览3.5.4 CNN-backbone系列3.5.4.1 DETR3.5.4.2 Deformable DETR3.5.4.3 UP-DETR
3.5.5 Transformer-backone系列3.5.5.1 YOLOS3.5.5.2 VitDet
3.6 总结与思考DETR系列ViT系列
P4:总结与思考4.1 总结4.2 思考4.3 作业
下载链接
注:本文仅供学习,未经同意勿转。分享的PPT请勿二次传播,或者用于其他商用途径。若使用本文PPT请注明来源,感谢配合如果想要对应PPT,可以关注若研笔记公众号,发送目标检测PPT。 前言:本文梳理了目标检测的相关背景,定义,挑战,损失函数及模型方法的发展,为希望学习相关知识的新手提供了相对比较全面易懂的简要介绍,同时结合本笔者自身研究方向的知识展开了相关的思考。 第一部分我们主要回答两个问题:目标检测在实际中有哪些应用以及为什么我们需要研究它的原因。 问题1:在我们日常生活中有哪些可以想到的目标检测应用呢?
第二部分,我们主要会介绍目标检测的相关定义,挑战,经典的数据集以及相关的评价指标。在介绍数据集之前,我们会先结合目标检测的定义及挑战,以损失函数的角度概览目标检测的相关改进发展。从而使大家更好地理解后面所介绍的目标检测模型方法。 2.1 目标检测的定义首先,目标检测在CV领域中所处的地位是怎么样的?与其它任务的区别是? 目标检测与分类、分割并称为CV的三大主要任务,他们之间的区别主要如下图所示。 从任务的角度来看,目标检测可以看成是分类与分割任务的一座过度桥。这也是目标检测研究的重要性所在原因之一。 那到底什么是目标检测呢?或者说目标检测的任务是什么呢? 🤔 目标检测实际上就是找出图像中所有感兴趣的目标(object),并获得这一目标的类别信息和位置信息。因此,目标检测任务可以解耦成分类任务和定位任务。 从目标的定位角度出发,目标检测需要解决的核心问题主要有3个: 那么对于一个理想的目标检测器,我们当然希望它能够在解决上述核心问题的前提下,具有高的准确度及效率。 从高准确度的角度来看,在现实场景中常见的挑战主要有: 类内的差异性 种类内自身材料、纹理、姿态等带来的多样性干扰,如黄色框图中椅子的制作材料及形态差异很大,但是它们都属于椅子的大类别外部环境的干扰 外部环境带来的噪声干扰,比如蓝色框中光照、迷雾、遮挡等带来的识别及回归挑战。![]() ![]() 目标检测是一个非常接地气的实际应用技术,它通常需要应用在实时处理的场景之中,比如自动驾驶系统。而且它还有可能需要同时处理成千上万的数据。因此,除了考虑高准确度还需要考虑处理时间,占用内存,消耗流量等方面的效率问题。 在现实中常见的场景有小目标检测场景。我们认为小目标检测场景就很好的包含了上述所提及的所有可能的问题与挑战。对于低像素问题,多数研究采用图像重构方法来解决,对于易遮挡问题,大多研究通过上下文语义信息来辅助检测,对于小尺寸问题则通过尺度自适应变换来解决,对于大批量数据问题可通过降低参数来实现。 对于两个挑战的优化,目标检测损失函数的发展可以由上图来概括。不管是分类任务还是定位任务都可能面临样本分布不均匀,数据分布不一致等问题,因此,后面所提出的优化损失函数也包含对这些问题的改善。比如,Focal loss和DR loss,AP loss,Balanced L1 loss都解决了不平衡的问题。其中: 由于篇幅及时间的限制,我们主要的关注点是在IOU loss上(与后面讲的评价指标息息相关),因此这里我只对上面的损失函数发展做一个简单概述。 IOU的发展变化目标检测在定位上的准确度会对模型分类的结果有所影响。因此,好的定位有利于模型精度的提高。在IOU Loss提出来之前,检测上有关候选框的回归主要是通过坐标的回归损失来优化。但很明显L1和L2 Loss存在比较大的问题: L1 Loss的问题:损失函数对x的导数为常数,在训练后期,x很小时,如果learning rate 不变,损失函数会在稳定值附近波动,很难收敛到更高的精度。L2 Loss的问题:损失函数对x的导数在x值很大时,其导数也非常大,在训练初期不稳定。而且,基于L1/L2 Loss的坐标回归不具有尺度不变性,且并没有将四个坐标之间的相关性考虑进去。因此,像L1/L2 Loss直接的坐标回归实际上很难描述两框之间的相对位置关系。 IOU因此,在ACM2016的论文中提出了IOU loss,它将四个坐标点看成一个整体进行计算,具有尺度不变性(也就是对尺度不敏感)。IOU Loss的定义是先求出预测框和真实框之间的交集和并集之比,再求负对数,但是在实际使用中我们常常将IOU Loss写成1-IOU。如果两个框重合则交并比等于1,Loss为0说明重合度非常高。因此,IOU的取值范围为[0,1]。 因此,IOU Loss虽然比较简单直观,但它不是最好的选择! GIOU针对IOU无法反映两个框是如何相交的问题,GIOU通过**引入预测框和真实框的最小外接矩形(类似于图像处理中的闭包区域)**来获取预测框、真实框在闭包区域中的比重。这样子,GIOU不仅可以关注重叠区域,还可以关注其他非重合区域,能比较好的反映两个框在闭包区域中的相交情况。 虽然GIOU通过引入闭包区域缓解了预测框与真实框相交位置的衡量问题,但其实际上仍存在两个问题: 因此,考虑到GIOU的缺点,DIOU在IOU的基础上直接回归两个框中心点的欧式距离,加速了收敛速度。DIOU的惩罚项是基于中心点的距离和对角线距离的比值。这样就避免了GIOU在两框距离较远时产生较大闭包时所造成的Loss值较大而难以优化的情况。 虽然DIOU Loss通过中心点回归缓解了两框距离较远时难优化的问题,但DIoU Loss仍存在两框中心点重合,但宽高比不同时,DIOU Loss退化为IOU Loss的问题。因此,为了得到更加精准的预测框,CIOU在DIOU的基础上增加了一个影响因子,即增加了预测框与真实框之间长宽比的一致性的考量(v值)。 因此,EIOU在CIOU的基础上将长宽比拆开,分别计算长、宽的差异,同时引入Fcoal loss解决了难易样本不平衡的问题。
前面说IOU与目标检测评价息息相关,主要是因为目标检测在进行性能比较时一般会说明对应的IOU阈值。那目前大家一般采用的评价指标有哪些呢? 从目标检测的两个要求来看(精度和效率): 一般精度大家都会计算各种IOU阈值下的mAP值和F1分数等。mAP的计算依赖于TP,FP,TN,FN等的计算,也就是依赖Precision和Recall来计算的。因为大家或多或少都会接触过Pr和Re的计算,这里我就不详细说明了。但mAP我在下一页中会介绍。而效率大家一般都会比较FPS和参数量。当然,一般论文在这里都必须指明是在什么样的硬件条件下进行实验比较的。 作为目标检测的主要指标,mAP指的是什么? AP与mAP AP是指PR曲线下(调整置信度阈值变化,得到不同置信度阈值下Re与Pr之间的关系)的面积,是判断改类别分类器表现性能好坏的标准。其表现了分类器在Pr与Re之间的权衡,当AP值较高~=PR曲线向右上方拟合,也就说明Recall在增长的同时Precision也稳定在一个较高的值附近。mAP值是AP的均值,代表的是整个检测模型的表现性能。![]() 从应用的角度出发,模型的设计与数据息息相关的。有关目标检测公开的数据集也有很多,比如最初的MNIST、ImageNet等数据集。这些数据集的大小、数量及主要面临的挑战都大不相同。 虽然公开的数据集很多,但目前最为流行的经典数据集还是COCO和PASCAL VOC。一般做通用任务或backbone时,我们都至少需要比较这两个数据集中的一个。 为便于COCO和PASCAL VOC数据集的采集制作,目标检测领域有两款开源的主流标注软件:labelme和labelImg。这两大软件都有对应的python包,所生成的数据格式为常见的三种数据集格式VOC格式,COCO格式和YOLO格式。 这三种数据格式的区别主要在于标签文件类型和bbox格式。VOC采用的是图像文件与xml标签文件,而COCO采用的是json格式,YOLO采用的是txt文本格式。如果大家有接触过一点前端的知识或者有接触过目标检测,应该是知道这三种标签文件的优劣势所在。【个人看法:json格式可以很好的将各种数据集成到一个文件中去,具有占用空间小,检索迅速的优势。而txt文本格式则具有简单易处理的有点。xml格式介于两者之间吧】 第三部分,我们将系统地回顾一下目标检测的方法,包括传统的目标检测方法和基于深度学习的方法。虽然传统的目标检测方法现在比较少用,但我们认为有必要了解其手工设计的特征,因为现在在工业和医学领域这些手工特征与深度学习方法的融合也带来了不错的效果。当然,我们的汇报仍然是以基于深度学习的方法为主。这里由于时间限制,而且anchor-based的方法已经有很多博文都有介绍,我就不详细介绍(只给出两张我自己整理的表单来带大家快速了解一下) 3.1 目标检测算法发展的概览 发展历史轴(时间轴线图)目标检测的算法发展可以追溯到很久之前,这里我根据前两年的综述论文加上这两年的发展也画了两个部分的相关模型发展轴。可以看到,目标检测算法在2012年前均采用传统算法进行处理。 从上面模型的发展来看,目标检测算法可以主要可以分为以下五类。其中,传统算法比较依赖于手工特征的设计。对Anchor based的方法,可以从两个角度来看待其模型的发展,一是训练模式,二是Anchor的形状。从训练模式来看的话,Anchor based的目标检测模型主要可以分为One-stage和Two-stage模型。One-stage模型因为检测速率较快的优点多用于移动端场景,而Two-stage模型因为检测精度较高的优点多用于精装设备场景。从Anchor形态来看,对于不同的物体用更加贴合其自身形态的anchor会更加精确。其中,矩形和多边形多用于遥感和文字检测场景,而椭圆及圆形多用于遥感和医学领域。
其中,基于特征的目标检测算法主要是通过找到对象的某种属性(可以是手工设计的特征也可以是算法提取的抽象特征)来实现检测与识别。 而基于分割的目标检测算法则主要通过区域、颜色及边缘的特性来实现检测与识别。【对应的相关算法我PPT里面都有放,这里就不一一罗列啦🤨】 📌 传统算法的一般处理流程包括下图的六个步骤,其主要的思路就是: 下图是传统算法的一个可视化示例: 📌 经典的传统检测算法主要有Viola Jones检测器(人脸检测),HOG检测器(行人检测),基于部件的可变形模型(DPM,物体检测)这三种。 Viola Jones检测器由三个核心步骤组成,即Haar-like特征和积分图、Adaboost分类器以及级联分类器。 在集成算法一般分为三种:Bagging,Boosting,Stacking(我们可以把它简单地看成并行,串行和树型)。Bagging是把各个基模型的结果组织起来,取一个折中的结果;Boosting是根据旧模型中的错误来训练新模型,层层改进;Stacking是把基模型组织起来,注意不是组织结果,而是组织基模型本身,该方法看起来更灵活,也更复杂。 HOG + SVM梯度直方图HOG(Histogram of Oriented Gradients)是法国人Dalal在2005年CVPR会议上提出的特征提取算法,并将其与 SVM 配合,用于行人检测。 HOG特征的优点: 能较好地捕捉局部形状信息;对几何和光学变化都有很好的不变性;HOG隐含了该块与检测窗口之间的空间位置关系。HOG特征的缺点: 特征描述子获取过程复杂,维数较高,实时性差;很难处理遮挡问题;由于梯度的性质,HOG对噪点相当敏感,因此,在实际应用中,在block和Cell划分之后,对于得到各个区域通常需要通过高斯平滑去除噪点。 DPM DPM特征 DPM特征的设计可以看作HOG特征的改进版。它取消了HOG中的块(Block)的设计,只保留了单元(Cell)的划分, 并增加了有符号梯度和无符号梯度的梯度方向区分,如下图所示。![]() ![]() 对于任意一张输入图像,提取其DPM特征图,然后将原始图像进行高斯金字塔上采样放大原图像,然后提取其DPM特征图(2倍分辨率)。将原始图像的DPM特征图和训练好的Root filter做卷积操作,从而得到Root filter的响应图。对于2倍图像的DPM特征图,和训练好的Part filter做卷积操作,从而得到Part filter的响应图。然后对其精细高斯金字塔的下采样操作。这样Root filter的响应图和Part filter的响应图就具有相同的分辨率了。然后将其进行加权平均,得到最终的响应图。亮度越大表示响应值越大。 DPM的主要思想可简单理解为将传统目标检测算法中对目标整体的检测问题拆分并转化为对模型各个部件的检测问题,然后将各个部件的检测结果进行聚合得到最终的检测结果,即“从整体到部分,再从部分到整体”的一个过程。上右图为某一尺度下的行人检测流程,其中,左侧为根模型的检测流程,跟模型响应的图中,越亮的区域代表响应得分越高;右侧为各部件模型的检测过程。首先,将特征图像与模型进行匹配得到部件模型响应图。然后,进行响应变换:以锚点为参考位置,综合考虑部件模型与特征的匹配程度和部件模型相对理想位置的偏离损失,得到的最优的部件模型位置和响应得分。 DPM vs HOG DPM算法优点: 方法直观简单;运算速度块;适应动物变形; DPM算法缺点: 性能一般,无法适应大幅度的旋转,稳定性很差;激励特征是人为设计的,工作量大; 这种方法不具有普适性,因为用来检测人的激励模板不能拿去检测小猫或者小狗,所以在每做一种物件的探测的时候,都需要人工来设计激励模板,为了获得比较好的探测效果,需要花大量时间去做一些设计,工作量很大。 传统算法总结
前面我们讲了传统检测在分类器识别之后还需要进行后处理操作,实际上在后面前期发展的深度学习模型也同样需要后处理步骤。因此,在进入深度学习模块的讲述前,我将回顾一下目前目标检测中最常见的后处理算法NMS的相关发展。 从时间的概览上,NMS算法的及其变体主要有六种。 传统的NMS首先根据类别置信度得分对所有的bbox进行降序排列建表,然后将每个类别中置信度最高的bbox作为可靠的bbox,并分别计算其与剩余bbox的IOU,仅保留IOU小于设定阈值的bbox,以此往复循环直到结束。 虽然NMS可以处理掉较多的冗余框,但传统的NMS存在以下局限性: 循环步骤,GPU难以并行处理,运算效率低以分类置信度为优先衡量指标 分类置信度高的定位不一定最准,降低了模型的定位准确度直接提高阈值暴力去除bbox 将得分较低的边框强制性地去掉,如果物体出现较为密集时,本身属于两个物体的边框,其中得分较低的框就很有可能被抑制掉,从而降低了模型的召回率,且阈值设定完全依赖自身经验。 soft-NMS NMS设定的局限性 显然,对于IOU≥NMS阈值的相邻框,传统NMS的做法是将其得分暴力置0,相当于被舍弃掉了,这就有可能造成边框的漏检,尤其是有遮挡的场景。Soft-NMS解决方案 对IOU大于阈值的边框,Soft-NMS采取得分惩罚机制,降低该边框的得分,即使用一个与IoU正相关的惩罚函数对得分进行惩罚。当邻居检测框b与当前框M有大的IoU时,它更应该被抑制,因此分数更低。而远处的框不受影响。![]() 从实验结果来看的话,soft-NMS(红色)能够比较好的缓解掉传统NMS(蓝色)暴力剔除所带来的物体遮挡漏检情况。 Soft-NMS的类型 (1)线性衰减型(不连续,会发生跳变,导致检测结果产生较大的波动);(2)指数高斯型(更为稳定、连续、光滑)Soft-NMS的局限性![]() 如果前面讲的soft NMS是通过抑制机制来改善剔除结果(降低超阈值的得分策略),那么Weighted NMS(W-NMS)则是从极大值这个方面进行改进。W-NMS认为Traditional NMS每次迭代所选出的最大得分框未必是精确定位的,冗余框也有可能是定位良好的。因此,W-NMS通过分类置信度与IOU来对同类物体所有的边框坐标进行加权平均,并归一化。其中,加权平均的对象包括M自身以及IoU≥NMS阈值的相邻框。 缺点:(1)仍为顺序处理模式,且运算效率比Traditional NMS更低。(2)加权因子是IOU与得分,前者只考虑两个框的重叠面积;而后者受到定位与得分不一致问题的限制。 分类置信度优先NMS总结NMS、soft-NMS及Weighted NMS的局限性: 都是以分类置信度优先的NMS,未考虑定位置信度,即没有考虑定位与分类得分可能出现不一致的情况,特别是框的边界有模棱两可的情形时。前面所提到的NMS方法只将分类的预测值作为边框排序的依据。然而在某些场景下,分类预测值高的边框不一定拥有与真实框最接近的位置,因此这种标准不平衡可能会导致更为准确的边框被抑制掉。 在此背景下,旷视IOU-Net论文提出了IoU-Guided NMS,即一个预测框与真实框IOU的预测分支来学习定位置信度,进而使用定位置信度来引导NMS的学习。具体来说,就是使用定位置信度作为NMS的筛选依据,每次迭代挑选出最大定位置信度的框M,然后将IOU≥NMS阈值的相邻框剔除,但把冗余框及其自身的最大分类得分直接赋予M。因此,,最终输出的框必定是同时具有最大分类得分与最大定位置信度的框。 IOU-Guided NMS缺点: 顺序处理的模式,运算效率与Traditional NMS相同。需要额外添加IoU预测分支,造成计算开销。评判标准为IOU,即只考虑两个框的重叠面积。 softer NMS总体概览 从Softer-NMS的公式来看,Softer-NMS可以看成是前面三种NMS变体的结合,即:其极大值的选择/设定采用了与类似Weighted NMS(加权平均)的方差加权平均操作,其加权的方式采用了类似soft NMS的评分惩罚机制(受Soft-NMS启发,离得越近,不确定性越低,会分配更高的权重),最后,它的网络构建思路与IOU-Guided NMS相类似。 Softer-NMS的缺点: 顺序处理模式,且运算效率比Traditional NMS更低。额外增加了定位置信度预测的支路来预测定位方差,造成计算开销。评判标准是IoU,即只考虑两个框的重叠面积,这对描述box重叠关系或许不够全面。 Adaptive NMS背景 Adaptive NMS是在行人检测问题上来对soft NMS改进的一种自适应阈值处理方法(即在软化得分的前提下继续软化阈值)。行人检测任务中,一个最大的问题就是目标在常规场景下一般处于密集状态。如何在解决密集检测以及密集检测之中目标之间相互遮挡的问题是行人检测的一大问题。在以往的研究中,NMS都采用单一阈值的处理方式。使用单一阈值的NMS会面临以下困境:较低的阈值会导致丢失高度重叠的对象(图中蓝框是未检测出来的目标),而较高的阈值会导致更多的误报(红框是检测错误的目标)。 思路与方法 基于上述背景,Adaptive NMS应用了动态抑制策略,通过设计计了一个Density-subnet网络预测目标周边的密集和稀疏的程度,引入密度监督信息,使阈值随着目标周边的密稀程度而对应呈现上升或衰减。具体做法: 当邻框远离M时(即IoUNt),目标密度dM作为NMS的抑制阈值; 若M处于密集区域,其高度重叠的相邻框很可能是另一目标的真正框,因此,应该分配较轻的惩罚或保留。当M处于稀疏区域时(即Nm≤Nt),初始阈值Nt作为NMS的抑制阈值。 若M处于稀疏区域,惩罚应该更高以修剪误报。
Adaptive NMS缺点: 与Soft-NMS结合使用,效果可能倒退 (受低分检测框的影响)。顺序处理模式,运算效率低。需要额外添加密度预测模块,造成计算开销。评判标准是IoU,即只考虑两个框的重叠面积,这对描述box重叠关系或许不够全面。 DIOU-NMS在以往的NMS中使用的评判指标都是IOU,但就像前面对IOU的介绍,IOU虽然简单直观,但它只考虑两个框的重叠面积(比如下图第一种相比于第三种越不太可能是冗余框)。因此,后面研究相继耶提出了许多IOU变体来使两框之间的相对位置关系描述更加准确。比如DIOU-NMS就直接将IOU指标换为DIOU。当然结合前面对IOU的介绍,这种换掉IOU指标的NMS变体也可以有很多。 DIOU-NMS缺点:顺序处理模式,计算更复杂,运算效率更低。 NMS总结实际上NMS的变体不止上面提到的方法,还有其他的变体,比如从文本场景中,NMS变体主要是一种基于shape的改变;而在遥感等实时场景中,NMS变体主要是加速策略的改变,提高的的计算效率。 由于时间限,而且目前有关anchor-based(one-stage, two-stage)方法的介绍已经很多了,这里就先放两张自己整理的表单吧 3.3.1 Two-stage方法从上述总结的目标检测长短板及性能比较的图例来看,由于Two Stage目标检测模型事先基于候选框进行特征提取,其在候选框的定位精度与检测精度方面一般高于 One Stage 模型。虽然随着 Two Stage 模型的发展,其在检测速度方面上有所提升,但由于其复杂的 Two Stage 网络架构,以及其对候选框的提取等操作,使得其与 One Stage 模型 相比,仍具有检测速度慢、计算量庞大的局限性,从而难以落地与实时检测的移动设备。而 One Stage 目标检测模型则由于结构简单直接的优势在检测速度及实时性表现出优异的性能。虽然随着 One Stage 的发展,其在检测精度方面有所改进,但由于其对局部特征的关注较少,所以其在复杂背景场景、小目标场景或多目标场景的检测精度较低。 前面我们讲的都是anchor-based方法,那么anchor-based methods有什么特征? anchor-based methods的特征就是在同一像素点上生成多个不同大小和比例的候选框(one-stage模型通常采用滑窗(聚类)等式生成,而two-stage模型更多的是采用RPN来生成),并对其进行筛选,然后再进行分类和回归。 anchor的局限 依赖过多的手动设计!训练和预测过程过于低效!正负样本不均衡问题!既然anchor的设计(初始化)对网络模型的影响这么大,我们是不是可以去除掉anchor来进行检测呢?基于上述的思考,anchor-free也开始迎来了自己的发展。那么anchor-free与anchor-based的区别是什么? anchor-free 与anchor-based的区别 实际上我们前面讲的YOLO算法anchor free中比较早期的模型,所以anchor free并不是一个比较新的概念。早期的anchor-free模型可以追溯到15年CVPR的DenseBox,算是Anchor Free的起源吧。但它比同期的Faster-RCNN系列和YOLO提前数月(YOLO是16年5月)。所以,anchor free的发展历史也可以说是相对久的。 背景(人脸检测任务) 在图像上进行卷积等同于使用滑窗分类,为何不能使用全卷积(FCN)对整个图像进行目标检测呢?如何将FCN应用到目标检测? 检测流程 首先经过图像金字塔生成多个尺度的图片。图片经过FCN得到最终的输出featuremap。将输出featuremap进行回归与分类,并用NMS后处理。这里比较有意思的一点是DenseBox对ground truth的定义。它类似于语义分割的ground turth,如右上图,它并不采用全图进行训练,而是直接先crop出以人脸为中心并带有足够背景的patches,并resize到240*240。而且正负样本的定义也如上图所示,主要是将patch中心(0.8至1.25)区域的目标记为正样本,其他的标记为负样本。更多具体信息可以去看以下论文,这篇论文感觉还是有比较多的先进思想(与同时期文章相比)值得学习的,比如: DenseBox使用全卷积网络,任务类似于语义分割,实现了端到端的训练与识别。 其中,在R-CNN系列中,端到端的训练方式直至Faster R-CNN的提出才开始实现,而与语义分割的结合则是从Mask R-CNN才开始。 DenseBox利用了多尺度融合的特征。 如上图,conv3_4、conv4_4,在网络中引入了上采样操作,将低层和高层的特征融合以得到更大尺度的feature map输出,而R-CNN系列直到FPN才开始使用,YOLO系列直至SSD才开始。 DenseBox使用了OHEM做负样本的难例挖掘。 在DenseBox论文中,作者通过以下两种方法做了样本均衡Balance Sampling:(1)忽略正负样本过度区域,称为gray zone,是以正样本区域边缘的两个像素范围内的区间来定义的。(2)Hard Negative Mining,首先将负样本像素中的loss按loss大小排序,选取前面的1%为hard-negative,然后保证每张图片中正负样本的数量是1:1,负样本的50%来源于hard-negative,另外的50%从non-hard negative中随机选取。 利用了圆形描述,这在当时深度学习检测也算是早的。 采用了多任务学习的方法,如下图所示: DenseBox优点 在FCN的基础上提出DenseBox直接检测目标,不依赖候选框。证明了单FCN(全卷积网络)可以实现检测遮挡和不同尺度的目标;在FCN结构中添加少量层引入landmark localization,将landmark heatmap和score map融合能够进一步提高检测性能。 DenseBox缺点 使用embeddings进行角点匹配效果不好,导致某个物体左上角匹配到另一个物体右下角。 3.4.4 基于关键点系列(源于姿态估计) CornerNetCornerNet背景 对于姿态估计和分割的任务,它们的ground truth就是给点打标签。既然姿态估计是骨骼点代表物体,那目标检测的框实际上也可以用点来代替,比如左上角和右上角的点;既然姿态估计骨骼点也需要对同一物体,同一关节进行组合判断,那目标检测也可以通过角点之间的组合来判别是否为同一目标。受此启发,CornerNet摒弃了原本anchor-based的思想,采用keypoint-based的思路来进行检测。 CornerNet总体流程与架构 其次,embeddings是如何匹配corner的? 在人体姿态估计中,相对应的角点也会互相匹配,因此,CornerNet也借鉴了这种思想,认为属于同一目标的corner embedding应该具有较高的相似度,而不同物体之间的corner embedding应该具有较远的距离。总而言之,就是寻找一个特征空间来区分不同object之间的corner。 CornerNet评价
因此,CornerNet-Saccade可以看成是CornerNet引入two-stage的思想,来提高模型的精度,因而比较适合离线处理;而CornerNet-Squeeze可以看成是YOLOv3思想即one-stage模型优化思想的注入,用来提高模型的检测速度,因而CornerNet-Squeeze比较适合实时处理。总而言之,CornerNet-Lite结合了上述两个模型的改进达成了检测精度与效率提高的双赢。 ExtremeNetExtremeNet背景 前面我们也说了,左上与右下角点的特征不足以代表目标物体的特征,而且大多的角点都不在目标物体上。因此,单纯地依赖角点进行目标检测,模型可能不能很好地理解目标物体的特征。 ExtremeNet流程 首先,分别预测每个对象类别的4个heatmaps和center heatmaps,得到4个极值点和中心点predict_center。其次,通过枚举所有可能极值点的组合(四个满足几何对齐的极值点为一个组合)来获得每个可能组合中的中心点extreme_center,然后通过计算extreme_center在predict_center heatmap中的响应来判断该组合中的四个极值点是否与predict_center为同一物体对象,即四个极值点组成的边界框的中心在预测的中心点热图上有较大的响应时才认为该生成的边界框有效。![]() 如下图所示,ExtremeNet使用HourglassNet检测每个类的5个关键点,offset预测与类别无关,与极值点有关,中心点没有offset预测,所以网络的输出是5C个热图和8个偏移图。 与CornerNet的区别 CornerNet通过预测角点来检测目标的,而ExtremeNet通过预测极值点和中心点来检测目标的。其中,CornerNet中的角点通常位于目标外,ExtremeNet中的极值点位于目标上,其能够反映物体的表观特征。CornerNet通过角点embedding之间的距离来判断是否为同一组关键点,是基于几何关系的分组匹配原则,而ExtremeNet通过暴力枚举极值点、经过中心点判断4个极值点是否为一组,是基于目标外观的分组匹配原则。ExtremeNet评价 ExtremeNet的优点 延续CornerNet的检测新思路,将角点检测改为极值点检测,更加稳定,在muti-scale的测试下效果好。ExtremeNet的缺点: 对并行出现,互相遮挡的目标物体检测效果差;从效果上看,并没有比CorNerNet有明显的提升;检测速度慢,主干网络计算量太大。 CenterNet背景 与ExtremeNet类似,CenterNet也是基于中心点来实现目标的检测。CornerNet和ExtremeNet都需要对点进行配对分组,但这个过程会带来比较大的计算量。所以,CenterNet只考虑使用中心点来定义目标,并通过中心点直接回归预测目标的特性,比如宽高信息,类别,3维位置和朝向等。 与CornerNet/ExtrmeNet的对比 与acnhor-based的对比
CenterNet缺点: 训练时间长回归监督信息仅通过中心点位置产生,会发生中心点重合的冲突 CircleNet背景 CircleNet是基于肾小球背景下提出来,而肾小球是细胞。通常这种细胞都比较偏向圆形。因此,使用基于圆形的定义比矩形的定义要好,也更加贴合细胞的形态,而且具有旋转不变性! FCOS背景与思路 前面讲到的CornerNet、CenterNet等都是基于关键点来检测的,而接下来讲的FCOS则是基于分割的思想来进行检测的。而FCN算是语义分割的鼻祖算法,即通过一系列的卷积与反卷积实现了对像素级的分类。之前的目标检测受制于anchor的使用,所以就没有在FCN上进行进一步的探索。而基于关键点检测的anchor-free存在中心重叠检测的问题(CenterNet/CircleNet),因此,FCOS就使用FCN网络直接对图中的每一个像素点的位置到真实物体四边的距离进行一个回归。所以,FCOS与语义分割一样,处理对象都是像素点。从总体的思路来看,FCOS可以理解为是 DenseBox基于FCN的改进版。 由于多尺度结构的存在,因而需要确定这个bbox分配给哪个层级来预测。 传统的FPN做法是会根据这个box的面积进行分配,而FCOS会给每一个层级分配阈值范围,然后根据Box中点到四边的最大距离落在哪个层级的阈值范围内,那这个Box就分配给哪个层级来预测。 FCOS网络结构 FCOS的网络架构如下图所示。其中C3, C4, C5表示骨干网络的特征图,P3到P7是用于最终预测的特征级别。这五层的特征图后分别会跟上一个head。每个head又包括了三个分支,分别用于分类(Focal loss)、中心点置信度(BCE loss)和回归的预测(GIOU loss)。因此,FCOS网络最后的输出层包含**(4+C)个通道,分别对应预测C个类别得分及4维bbox参数**(像素点到真实框四边的距离)。 如下图所示,我们可以看到较大物体的AP显著提高,这就是由于较大物体的中心偏离比较严重。 FCOS的优点 1.将检测和FCN进行结合,思想新颖。 2.proposal free和anchor free,减少了超参的设计。 3.不使用trick,达到了单阶段检测的最佳性能。 4.模块化,对其他视觉任务具有较大的可扩展性。 FCOS的缺点 中心点的定义模糊,依赖标注信息,box的预测分配不是很合理。 FoveaBoxFoveaBox概述 作为与FCOS和FSAF同期的Anchor-free论文,FoveaBox在整体结构上也是基于DenseBox加FPN的策略,主要差别在于FoveaBox只使用目标中心区域进行预测且回归预测的是归一化后的偏移值,还有根据目标尺寸选择FPN的多层进行训练。 FoveaBox正负样本定义 在FoveaBox中,正样本区域(fovea)的选择并不是真实框所包围的全部像素,而是原区域的一个衰减区域(可以看作是目标的中心区域,缩放因子是人为设定的),这个与DenseBox的设置一样,这样设置的原因是为了防止语义区域的相互交叠! ![]() anchor free与anchor based的比较就好比one stage与two stage的比较,前者优势都在于检测速度,而后者的优势都在于检测精度。同比于one stage与two stage的发展趋势,anchor-free在精度层面也在不断的提升。而anchor free在精度上之所以能够媲美 anchor-based,最大的功劳应该归于FPN,其次归于Focal Loss。 CornerNet、CenterNet等基于关键点的anchor-free模型通过高斯模型泛化关键点区域来定义正样本数据点(heatmap定义),减少模型负样本的惩罚力度;FCOS定义bbox内的像素点均为正样本,而FoveaBox通过衰减因子将bbox缩放,并将缩放后区域FoveaBox内的像素点定义为正样本。 3.5 Transformer-based的目标检测Transformer是近年来比较火的一个专题,最开始是应用在NLP领域。从研究的数据来看,近几年来在CV、语音视频、多模态等领域的研究发表非常地迅猛。其中,在CV领域上的Transformer一般统称为Vision Transformer, 简称Vit。 同样的,Transformer在目标检测的研究也发表了很多paper. 左边是今年五月更新的一篇综述整理的有关Transformer的目标检测模型(中科院、东南大学等),右边是各模型在COCO数据集上的SOTA表。虽然这篇综述是在今年五月更新的(今年五月是第三版,第一版是在去年8月,如果没有记错的话),但它实际也没有把最新的一些相对比较火的模型涵盖进去(比如Swin Transformerv2, VitDet等)。 与CNN-based的区别 既然是讲Transformer在目标检测的模型,那必定要先介绍Transformer检测的开篇之作DETR。与前面的Anchor-based相比,虽然DETR是首个用Transformer来做目标检测的,但是它与前面提到的CNN-based的方法都是采用cnn作为主干网络用来提取图像特征,不同的是Anchor-based是对预定义的密集anchors进行分类和回归,可以看成是image-to-boxes,对于anchor-free就是image-to-points或者说是pixels-to-boxes/image-to-regions,而DETR是把目标检测任务看作一种图像到集合(image-to-set)的任务,其中set的作用跟anchor-based中的anchor作用相类似。这个集合实际上就是一个可学习的位置编码,也就是后面我们会讲到的解码器中输入的object queries。与先前密集的anchor设计相比,object queries是一种稀疏化的设计。 图说明:绿色表示小物体,红色表示水平的大物体,蓝色表示竖直的大物体。 有关object query的理解: object queries是可学习的embedding,是随机初始化的,不由当前图像内容计算得到,并随着网络的训练而更新,使得object queries拟合物体分布,因此object queries隐式建模了整个训练集上的统计信息。 - object query也可以看成是adaptive anchor,是对anchor的编码。每个query对应图像中的一个物体实例( 包含背景实例)。因此,object query的数量一般设置要远大于数据库中一张图像内包含的最多物体数。object query通过cross-attention(decoder)从编码器输出的序列中对特定物体实例的特征做聚合,如右下图,即让该可学习object queries中的每个元素可以捕获原图像中不同位置与大小特征等的物体信息。又通过self-attention(encoder)建模该物体实例域其他物体实例之间的关系。(4)最后,FFN基于特征聚合后的object queries预测边界框的标准化中心坐标,高度和宽度,而线性层使用softmax函数预测类别标签。由于object queries并不像anchors那样密集铺开的,所以DETR使用匈牙利算法(二分图匹配算法)对predictions和ground truth boxes进行最佳匹配,从而实现label assignment。 DETR缺点: 收敛速度慢,训练时间长。小物体检测性能差。对于 DETR 来说,高分辨率的特征图将带来不可接受的计算复杂度和内存复杂度。object query的设计不是很合理。 3.5.4.2 Deformable DETRDeformable DETR对DETR的问题分析与改进思路 上面两个问题都来源于Transformer需要多的、冗余的像素进行处理。那既然是这样子的话,我们是否可以让Transformer在下采样的同时学习到更多更有效的区域呢? Deformable DETR对DETR的改进思路 基于上述思考,由于Deformable conv是处理稀疏位置的一种有效机制,所以Deformable DETR提出了一种可变性注意模块(deformable attention),使Transformer去关注有意义的区域。由于模型只需要关注稀疏的采样点,其收敛速度显著提升。同时,由于每个query只需要对稀疏的key做聚合,模型的运算量和显存消耗显著下降,这使得Deformable Attention能够在可控的计算消耗下利用图像的多尺度特征,也就同时解决了上述的两个问题。Deformable DETR的注意力机制 与DETR中的attention机制相比,公式上的区别在于图像特征是否有约束,也就
p
q
+
Δ
p
m
q
k
p_q+\Delta p_{mqk}
pq+Δpmqk,这里
p
q
p_q
pq指每个 query 对应的一个二维 reference point(二维的索引),
Δ
p
m
q
k
\Delta p_{mqk}
Δpmqk是相对于
p
q
p_q
pq的位置偏移。更加详细地,DETR为每个query安排指定数量(远小于pixel数)的key,也就是说,deformable attention是在原有的attention机制中对于输入加入了可学习的扰动偏移项,使得该attention只需要关注feature maps中的部分关键内容。由此,encoder初始化的权重不再是统一分布,即对每一个query,原本的key是所有的位置而现在的key是参考点(reference point)邻域内的位置。因此,与DETR相比,Deformable DETR只将更有意义的、网络认为更包含局部信息的位置作为key(数量固定)。 “ DC5”表示消除ResNet的C5阶段的步幅,而改为增加2。 “ DETR-DC5 +”表示对DETR-DC5进行了一些修改,包括使用Focal Loss进行边界框分类以及将目标查询数增加到300。 3.5.4.3 UP-DETR背景 DETR通常需要大量的训练时间,大规模的标注数据集。这一点其实和ViT很像,但由于Transformer的全局注意力机制,所以原始的Transformer-based方法缺乏归纳偏置inductive biases。这使得原始的Transformer-based方法需要依赖大规模数据集训练从能达到相对不错的效果。在DETR中,作为检测器的Transformer模块是没有经过预训练的,而在ViT中Transformer通常需要经过预训练。在一般情况下,预训练有利于模型更快的收敛,提高模型的学习能力。但在实际应用中,我们不一定拥有大规模的标注数据来进行训练及预训练,所以我们能否利用无监督的预训练来提升DETR中Transformer的收敛速度呢?要知道无监督预训练的关键在于代理任务pretext的设计。其中,pretext可以理解为是一种为达到特定训练任务而设计的间接任务。 如上图的右子图可知,基于CNN的pretext主要偏向于视觉分类任务,也就是classification,而基于Transformer的方法更加偏向NLP的序列任务。但目标检测是CV任务,处理的对象(像素)是具有连续语义的;而NLP处理的一般是离散的字符。显然与先前像BETR这样的Transformer模型相比,基于CNN的pretext设计更加合适目标检测任务。然而,从下图右子图可以看出,偏向定位任务的模型主要关注空间定位学习,具有边缘/形状的归纳偏好,而偏向分类任务的模型主要关注的物体的内部特征,具有内部/纹理的归纳偏好。 pretext的定义 为实现无监督预训练DETR,UP-DETR提出了一种random multi-query localization的pretext task来预训练DETR中的object query,以此来预训练Transformer的定位能力。具体而言,就是将添加位置编码后的图像特征输入到encoder,并从给定图像中随机crop patches,得到该补丁对应框的坐标,长宽,再将这个补丁作为query,进行一些简单的数据增强变换,输入到 DETR的decoder中。由此模型的目标变成了给定patch找他们在原图中的位置。通过这种方式构成一个无监督预训练的形式。最后,对于一个无监督预训练好的DETR,只需输入patch,便能实现无监督定位patch的功能,而且不需要额外的nms后处理。 multi-learning 前面提到pretext任务主要是基于定位展开的,但目标检测任务是定义与分类的耦合。这两个任务有不同的归纳偏好,比如定位更关注于物体的边角轮廓,而分类可能更关注于纹理、材质等等。因此,pretext任务的设计缺少对分类判别性的考虑。为避免query patch检测的预训练破坏分类性能,UP-DETR将目标检测任务解耦从而进行多任务的学习,即冻结预训练的CNN backbone,并利用patch特征重构损失来保持Transformer的特征识别能力(保留上下文构建的特征语义性)。在实验中,我们发现,固定已经预训练好的CNN权重对于后面transformer的预训练和UP-DETR在下游目标检测中的表现有着至关重要的作用。同时,考虑到输出头通常是分类和定位两个分支,UP-DETR增加feature reconstruction分支,通过梯度回传来使经过CNN后得到的特征和经过transformer得到特征具有一致的判别性。但从消融实验来看,对于下游目标检测任务,feature reconstruction分支并没有带来额外的判别性信息,固定预训练的CNN权重才是涨点的关键。 query patches 和object query UP-DETR提出了一种multi-query location的方法,利用object query shuffle和attention mask方法来解决。其中, deocder使用attention mask来控制不同object query之间的交互,以此确保query patch的独立性;而object query shuffle则是用来确保embedding和query patch的随机性,以去除object query之间的显示分配,达到模拟真实数据场景的效果。 UP-DETR流程 首先,利用冻结参数的CNN backbone提取视觉特征 。然后,将位置编码添加到特征映射中,并传递到DETR中的Transformer编码器。对于随机裁剪的查询patch,用具有全局平均池化(GAP)的CNN主干网络提取patch特征,然后将其与目标查询相加之后输入到Transformer的解码器中。在预训练过程中,解码器预测与查询patch的位置相对应的边界框。其中,CNN 参数在整个模型中是共享的,而Transformer是无监督预训练的。 UP-DETR评价 优点 首次将无监督方法用于DETR,有利于小数据发展DETR UP-DETR通过random query patch detection的预训练任务,将DETR中transformer模块进行无监督的预训练。提供了更加合理的query设计思路 缺点 非端到端小物体检测性能差,复杂度高 UP-DETR由于attention复杂度限制,只能做基于single-scale的特征图,没有办法直接拓展到multi-scale。这使得UP-DETR在大物体上非常的好,但在小物体上也还是存在瓶颈。 3.5.5 Transformer-backone系列 3.5.5.1 YOLOS背景 第一点,以CNN作为backbone的transformer检测系列:在前面讲的DTER系列都使用随机初始化的Transformer对CNN特征进行编码和解码,这并未揭示预训练Transformer在目标检测中的可迁移性,比如transformer在ImageNet上与训练是否可以迁移到其他领域?![]() 在20年的一篇CNN/transformer的对比论文中,发现:与CNN(CNN的归纳更加偏向纹理,虽然CNN也可以很好的归纳形状【The Origins and Prevalence of Texture Bias in Convolutional Neural Networks论文中,但是依赖于一些数据增强】)相比,MLP-Mixers和Vision Transformer更倾向于形状,而且许多Vision Transformer模型的表现类似于MLP-Mixers。 ViT可以将transformer直接作为backbone以纯序列到序列的角度来进行图像分类。要知道的是,ViT与CNN不同,它是对远程依赖关系和全局上下文信息进行建模,而不是对局部和区域级别的关系进行建模。此外,ViT缺乏像CNN那样的分层结构(multi-scale)来处理视觉实体规模的变化。那么ViT能做目标检测backbone吗?(ViT能不能够将预训练好的通用视觉表征从图像级识别转移到复杂得多的2D目标检测任务中?) 第二点,先前以ViT作为backbone的transformer检测系列:ViT-FRCNN是第一个使用预训练的ViT作为R-CNN目标检测器的主干。然而,这种设计无法摆脱对卷积神经网络(CNN)和强2D归纳偏差的依赖,因为ViT-FRCNN将ViT的输出序列重新解释为2D空间特征图,并依赖于区域池化操作(即RoIPool或RoIAlign)以及基于区域的CNN架构来解码ViT特征以实现目标级感知。![]() YOLOS的架构(在VIT上的改进) YOLOS 结合了 DETR 的编码器-解码器颈部和 ViT 的仅编码器主干,来重新设计仅编码器的检测器。 (1)YOLOS 删除了用于图像分类的 [CLS] 标记,并将一百个随机初始化的检测 [DET] 标记添加到用于对象检测的输入补丁嵌入序列中。 (2)ViT 中使用的图像分类损失被替换为二分匹配损失,以执行类似于 DETR 的对象检测。这可以避免将ViT的输出序列重新解释为2D特征图,并防止在标签分配期间手动注入启发式和对象2D空间结构的先验知识。 所以,不同的[DET] token对目标位置和大小敏感,而对目标类别不敏感。即YOLOS在不知道确切的空间结构和几何形状的情况下执行任何维度的物体检测是可行的。 YOLOS的分析 一些说明:不同模型的缩放策略: width scaling (w), uniform compound scaling (dwr) and fast scaling (dwr). YOLOS的优点: 与CNN-backbone对比:在Tiny模型方面,YOLOS-Ti取得更佳的性能。与DETR对比:(1)YOLOS探索了在ImageNet-1k数据集上预训练的标准ViT到COCO目标检测任务上的可迁移性。证明了预训练的仅编码器的ViT的可迁移性 。(2)DETR在图像特征和对象查询之间使用解码器-编码器注意(交叉注意),并在每个解码器层对辅助解码损失进行深度监督,而YOLOS始终只查看每个层的输入序列,在操作方面不区分patch token和[DET] token 。YOLOS的缺点: YOLOS需要用更长的序列来进行目标检测以及其他密集预测任务。YOLOS的self-attention复杂度与序列长度成二次关系,不适用于更大的模型。 3.5.5.2 VitDet背景 前面讲的one-stage模型和anchor-free模型精度的替身都需要依赖多尺度的特征提取来提高检测的精度。所以FPN在检测任务中算是标配。FPN通过自上而下(top-down)和横向连接来将早期高分辨率的特征和后期更强的特征结合起来。 YOLOF论文:FPN 模块的主要增益来自于其分治优化手段,而不是多尺度特征融合,FPN 模块中存在高分辨率特征融合过程,导致消耗内存比较多,训练和推理速度也比较慢,对部署不太优化,如果想在抛弃 FPN 模块的前提下精度不丢失,那么主要问题是提供分治优化替代手段,所以YOLOF中就借鉴ASPP,RFBNet的思想,引入空洞卷积,来协助进行多级特征的捕获代替设计了Dilated Encoder 串联多个不同空洞率的模块以覆盖不同大小物体,最后通过作者提出了新的均匀匹配策略,(核心思想就是不同大小物体都尽量有相同数目的正样本)Uniform Matching的作用完成了整体SiMo的结构设计,从实验结果来看Uniform Matching 作用非常大,进一步说明该模块其实发挥了 FPN 的分治作用。Dilated Encoder 配合 Uniform Matching 可以提供额外的变感受野功能,有助于多尺度物体预测,其实简单来说是通过系化对于FPN的研究,根据FPN的思想提出了Dilated Encoder和Uniform Matching,实际上不是舍弃了FPN,是传承了FPN。
Object query的思考 对于object query,怎么样编码更精确及合适数量的query才能使更快速的get 到想要的feature? object query的数量? 越少的query会导致各个query的搜索范围变大,并且难以检测同一位置的多个目标;过多的query又会导致难以抑制多个query收敛到同一物体的情况。object query的编码? 方法:加入先验知识,无监督训练策略… 例子:Anchor DETR直接将anchor point的位置编码为object query,DAB DETR将anchor box(包括位置长宽4个维度)编码为object query。object query与image feature的对齐? 由于object query和image feature间(位置上的和语义上的)不对齐,导致Transformer decoder中的Cross-attention layer难以精确地匹配到待检测物体所对应的特征区域,object query也因此采集到了很多除目标物体以外的无关特征,最终导致DETR收敛缓慢。所以,需要通过不同的方法限制了object query的采样区域,使得网络能够更快的地聚焦于物体区域,从而加速了训练。Positional embedding的思考 由于需要精准定位物体,DETR必须能够很好地编码特征的绝对/相对位置关系。因此,目前也有许多研究是从Positional embedding展开的。比如有添加相对位置编码的embedding,主要是从NLP衍生到2D图像。 ViT系列而将Transformer作为backbone的目标检测方法很容易被引入到其他如R-CNN等模型中去完成更多密集型的预测任务。在Trannsformer-backbone中更多考虑的是attention机制及multi-scale,multi-stage的设计。如多层级的PVT可以从高到低处理不同分辨率下的图像特征,而如SWIN-Transformer通过滑窗的attention机制可以在避免计算量平方型增长的情况下同样实现短程和长程依赖关系的描述。其中,基于ViT的Transformer模型更多的需要预训练。 P4:总结与思考
下面是本次专题汇报的class project 博客资源PDF下载链接:目前检测最全的PDF版本,注意PDF版本 |
CopyRight 2018-2019 实验室设备网 版权所有 |