目标检测算法随笔

最近在学习有关目标检测方向的内容,所以对最近阅读的论文进行一定的总结与记录,如有理解错误欢迎大家批评指正,也很希望和大家进行交流~



传统opencv类

目标检测任务是指利用计算机技术及算法来实现对目标进行分类和定位的计算机视觉任务[1],该任务的目标是为每个检测到的对象预测一组边界框及类别标签,针对目标检测任务存在较多以opencv为代表的传统目标检测方法的工作,例如徐晓明,王雪梅[2]提出的Subsense 检测算法,该算法基于 Color-LBSP 算子原理,能根据局部环境变化自动化调整模型参数;胡昭华[3]等提出超像素特征的运动目标检测算法,对ViBe算法进行了改进并引入了超像素特征, 提出了基于超像素特征的运动目标检测算法。这类算法一般是先对背景进行建模然后进行前景和背景的分离,而后实现对运动目标的检测,算法需要手工提取特征,并针对特定的任务特定的检测目标设计或训练分类器,受噪声影响较大故鲁棒性较弱。相比之下基于深度学习的目标检测则无需人工提取特征,而是通过神经网络提取及学习目标的多层次特征,接着将其输入分类器中预测识别目标的位置及类别,故有较高的准确性与鲁棒性,这类算法已经在相关领域均取得实用性进展。

一、DETR

目前基于Transformer模型的深度学习方法在目标检测领域占据了极大的地位,DETR[4]就是其中具有代表性的经典工作,其不同于R-CNN等经典模型在检测时会生成锚点或候选区域,DETR将目标检测问题视为集合预测问题,即给定图片后模型预测出包含检测目标的无序集合,可以将DETR视为一个从图像序列到一个集合序列的转换过程。DETR根据给出的可学习对象查询集,结合对象查询间的关系及全局化的图像信息来输出最后的预测集合,之后在预测集合和真实集合间进行二分匹配强制模型实现预测和真实对象之间的唯一匹配。在实现时DETR使用了Transformer的编码器解码器架构并进行了一些调整,在输出的分支上DETR利用FFN引出了两个分支,一个做类别的分类另一个用作BBox的回归,另外Decoder的输入数据包括Encoder的输出、可学习的object queries以及一些mask信息,这里的object queries的作用相当于位置嵌入信息,可以理解为每个object query对不同的事物感兴趣,包括不同的类别信息和不同的区域,其通过self-attention层建模事物实例与其他事物实例之间的关系又通过attention层从编码器输出的序列中对全局化的图像上下文特征做聚合,在训练过程中会强制模型根据损失矩阵对预测集合与真实标签集合进行最佳二分匹配。这些新颖的方法极大地简化了目标检测的流程,消除了手动设计组件的需求,工程实现简单且有较少需要调的超参数并提高了检测模型的性能。


二、Swin Transformer

Swin Transformer[5]凭借在一系列视觉任务上的强大表现被评为ICCV21的最佳论文,它也进一步证明了Transformer有能力在视觉领域得到广泛应用,因为Transformer在NLP领域取得了卓越的成果,把它应用到视觉时会有较大的挑战,因为文字没有类似图像这种多尺度的特点,另外对高像素图像进行全局自注意力计算也会带来较高的计算成本,所以Swin Transformer提出了一种以移动窗口进行计算的分层Transformer,它模仿CNN的特点,通过从小尺寸的图像patch开始,在更深的层中逐渐合并相邻的patch来获取分层特征,所以能够得到不同尺度的图像特征,并且由于它只在每个局部窗口内进行自注意力计算,所以具有根据输入图像大小的线性计算复杂度。在处理时,首先Swin Transformer会把输入图像进行patch操作,然后经过一个embedding层将向量的维度转化为预先设定的值,之后进行展平操作,这时序列的长度可能是比较大的一个值,所以它就使用了基于窗口的自注意力计算,将一定数量的向量放置于窗口中进行计算,这使得每次计算的序列长度是一个可接受的定值,增加的只是窗口数量,也就是说需要对多个窗口的自注意力进行计算。为了让它具备多尺度的信息,需要构建一个层级式的结构,这里用到了一个patch merging层也就相当于CNN中的pooling层,在得到每个窗口的结果后将其按长宽减半的方式patch后堆叠之后再经过一个1*1的卷积层实现将通道数变为之前的2倍,通过多层的这种结构后就可以实现CNN多尺度的效果。他们提出的移动窗口机制是在Swin Transformer Block中实现的,这里先将图像进行窗口级的自注意力计算,然后将窗口进行移动后得到不同的窗口布局,再进行一次自注意力计算,这样做就可以实现窗口间的交互,进而可以提高模型的特征提取能力。


三、Dynamic Head

Dynamic Head[6]在当时是第一个单模型在COCO数据集上能达到60%以上AP的工作,因为目标检测有许多工作,在解决时主要是先通过backbone网络提取特征,然后再将特征输入到目标检测头来实现指定的目标检测任务,不同的检测头分别关注不同的特点,比如有些工作主要解决目标尺度(scale)不同带来的问题,也有一些工作主要解决目标不同空间角度(spatial)带来的问题,另外也有一些工作会根据任务(task)不同进行一定的特定化制订目标检测头,Dynamic Head这个工作就想将这些工作进行统一来实现更好的普适性特征表达,因此提出了一个动态的目标检测头,它将骨干网络提取到的特征视为level×space ×channel这种具有语义信息的3D张量,工作中发现这些问题可以统一于一个有效的注意力学习的问题,为了简化计算它在这三个维度分别进行独立的注意力计算但它们的性能可以实现相互补充,level维度用来解决scale所带来的问题,以期学习各种尺度的对象特征;space维度用来解决spatial所带来的问题,学习便于分辩的空间位置特征;channel维度用来解决task所带来的问题,认为不同的通道可能会注重不同的任务。在实现时通过backbone得到图像的特征金字塔,这样就可以得到L×H×W×C的特征向量,然后将W×C进行合并,得到一个三维的张量,分别对应上述的level、space和channel维度,之后将在这三个维度上的注意力机制进行顺序级联,通过级联可以提高模型特征表达的能力。Dynamic Head显著提高了目标检测头的特征表征能力,它可作为一个插件灵活地集成到现有的目标检测框架中以提高其效率。


四、Soft Teacher

Mengde Xu[7]等人提出了一种端到端的基于伪标签的半监督目标检测框架,他们认为对于半监督学习来说目标检测的模型性能取决于伪标签的质量,该框架对未标注的图像进行伪标签生成的同时会在每次迭代中使用这些伪标签和一些有标签的数据来训练目标检测模型,最后该工作得到的模型在多个数据集上均达到了较好的性能。在实现时未标注的图像和标注的图像按一定比例进行随机抽样构成batch,在每个训练迭代中soft teacher和student都会被训练,前者会对强数据增强的图像进行boxes预测,后者被应用于对弱数据增强的图像进行伪标签生成,首先要对它生成的大量预测结果进行NMS操作,然后根据score过滤得到一组boxes结果,另外根据回归过滤得到一组boxes,soft teacher得到的两组boxes作为伪标签计算得到无监督的分类和回归loss,student对有标签数据进行预测得到对应的有监督分类和回归loss。整个训练过程的损失函数是有监督预测损失与无监督预测损失的和,student通过该损失利用梯度下降对其进行训练,soft teacher模型由student模型通过指数平均(EMA)方式更新,其通过训练可以提高生成伪标签的质量,而这精准的标签又会利于student目标检测模型的训练。当score的阈值很高时soft teacher在无标签图像上生成的伪标签准确率高而召回率低,这会使student将一些前景boxes误判为背景,这里的解决方法是使用soft teacher机制,也就是为student产生的每个box赋予一个属于背景的可能性得分。另外该工作发现在回归过程中将前景得分高的boxes作为伪标签不合适,所以该工作提出利用框抖动策略来得到反应伪框可信度的可靠性指标,实现时先将前景score大于一定值的boxes进行随机抖动,然后利用soft teacher对这些抖动boxes进行回归预测,然后选择回归方差小于阈值的boxes作为伪标签。


五、Florence

Lu Yuan[8]等人想要得到一个更普适可以应用于所有视觉任务的基础模型进而提出了Florence,相较于之前模型大多注重于文本和图像的融合表征,该模型将现有表征能力进行了拓展,不但从粗略的场景表征扩展到精细的对象表征,从静态图像表征扩展到动态视频表征,同时还从RGB图像表征扩展到多模态的文字或深度信息表征,得到的模型更通用具有更好的泛化性和特征提取能力,在44个计算机视觉任务上都取得了当时最好的结果。他们认为计算机视觉任务可划分为映射到空间-时间-模态空间中,这种想法和他们提出Dynamic Head时是相似的,计算机视觉的基础模型包括在多样大规模数据集上训练得到的预训练模型和仅需少量样本即可解决特定下游任务的适配器,为了得到较好的计算机视觉基础模型,他们提出了模型训练的新范式。首先是数据集的收集,他们在网络上收集了大量图像文本对数据,并对其进行了清洗;在模型预训练时在文本和图像端均使用了单独Encoder,考虑到多个图像会有同一个文本对,所以使用到了UniCL这一对比学习算法,即给定一个图像文本对后,通过文本哈希表会生成(x,t,y),其中x为图像,t为文本也叫哈希值,y是标签也叫哈希键,具有相同y的图像文本对均为正样本,模型训练时的损失函数包括image2language和language2image这两个对比损失;最后是对预训练模型加入一个针对特定下游任务的适配器进行finetune以解决不同的视觉任务,而结果也证明了他们提出的Florence可以在不同类的视觉任务上均可表现得很好,也就可以说是这个基础模型的表征能力实现了较大的扩展。


六、Swin Transformer V2

Ze Liu[9]等人提出的Swin Transformer V2解决了大型视觉模型训练两个主要问题,包括训练不稳定和预训练与应用到下游任务时存在分辨率差异,他们将Swin Transformer扩展到了30亿个参数并使其能够训练分辨率高达1,536×1,536的图像,其训练出的大型视觉模型在目标检测任务中的COCO数据集上达到了63.1%的box mAP。他们发现在训练大型视觉模型时各层的激活幅度是存在差异的,由于残差结构致使较深层的幅度要大于前面层的值,为了解决这个问题他们使用了后归一化技术代替前归一化,也就是将LN层放到了残差单元的后面,每个残差块的输出在合并回主分支之前被归一化,另外还使用到了缩放余弦注意力代替之前的点积注意力,这使得训练过程更加稳定且模型性能也有所提升。同时为了解决下游任务和预训练时所采用的图像分辨率不同,比如目标检测和语义分割任务会使用到更高分辨率的图像作为输出或者需要更大的注意力窗口,所以他们提出了一种对数间隔的连续位置偏置技术,对数间隔是指将坐标转换成对数空间,使其可以减少窗口变大后相对位置范围的变化,另外它不是直接优化相对位置偏置参数而是通过应用一个小的元网络(2L-MLP)来为任意的坐标范围产生偏置,这个元网络可以接受任何坐标,预训练模型将能够通过共享元网络的权重在不同窗口大小之间自由转换。最后为了解决大模型计算时内存消耗过大又不影响训练速度,他们采用了一些重要技术,包括ZeRO优化器、Activation check-pointing并且不对自注意力进行batch运算,而是序列地逐个执行。


总结

通过这些文献的阅读,我发现当前性能较为突出的模型都是使用到图像文本对作为训练数据并使用对比学习的方法来进行训练,我想这可能是未来的一种趋势,因为Transformer已被证明它可以很好的提取文本和图像的特征,如果在训练时所使用的数据包含多种模态的特征,这样模型可能就可以更精准地提取到关键性的特征而避免一些噪声的影响,这和我们人类感知世界的方式也是类似的,通过听、看、读、触等多种方式相结合是要比单一感觉获取的信息更准确也更利于理解。另外现在的模型训练所需要的数据集是非常庞大的,训练所花费的算力也是普通研究者难以触及的,很多工作可能思想不是很新颖只是在前人工作的基础上扩大了训练数据规模以及参数配置,这就极大地限制了研究人员创新的积极性,所以我还是很期待今后的模型能够在保证性能的基础上降低模型的规模以及训练的成本,相信随着技术的发展,这一定会实现的!

参考文献:

[1] 蒋弘毅,王永娟,康锦煜. 目标检测模型及其优化方法综述. 自动化学报. 2021年6月第47卷.
[2] 徐晓明,王雪梅. 基于Subsense运动目标检测算法. 电子测试. 2021年19卷.
[3] 胡昭华, 张维新, 邵晓雯. 超像素特征的运动目标检测算法. 控制理论与应用. 2017年34 卷.
[4] Nicolas Carion, Francisco Massa, Gabriel Synnaeve, et al. End-to-End Object Detection with Transformers. 28 May 2020.
[5] Ze Liu, Yutong Lin, Yue Cao, et al. Swin Transformer: Hierarchical Vision Transformer using Shifted Windows. 17 Aug 2021
[6] Xiyang Dai, Yinpeng Chen, Bin Xiao, et al. Dynamic Head: Unifying Object Detection Heads with Attentions. 15 Jun 2021.
[7] Mengde Xu, Zheng Zhang, Han Hu, et al. End-to-End Semi-Supervised Object Detection with Soft Teacher. 6 Aug 2021.
[8] Lu Yuan, Dongdong Chen, Yi-Ling Chen, et al. Florence: A New Foundation Model for Computer Vision. 22 Nov 2021
[9] Ze Liu, Han Hu, Yutong Lin, Zhuliang Yao, et al. Swin Transformer V2: Scaling Up Capacity and Resolution. 18 Nov 2021.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值