对于ssd对小目标检测效果的思考

mazinkaiser1991 mazinkaiser1991     2022-12-11     416

关键词:

对于ssd模型对于小目标检测效果不好的问题,我认为可以结合.prototxt文件进行分析,以conv4_3_norm_mbox_priorbox为例:

  prior_box_param 
    min_size: 30.0
    max_size: 60.0
    aspect_ratio: 2
    flip: true
    clip: false
    variance: 0.1
    variance: 0.1
    variance: 0.2
    variance: 0.2
    step: 8
    offset: 0.5
  

其中min_size比较明确为30pixel,若以IOU 0.5为例,则原物体大小至少为21.21pixel,才能与原物体有0.5以上的IOU。也因此小于21pixel的物体,ssd无法检测。因为没有办法生成anchor。针对这个问题其实可以通过min_size与step的方式进行解决。

但仅生成anchor还不够,若要检测小物体,既需要一张足够大的featuremap来提供更加精细的特征和做更加密集的采样,同时也需要足够的semantic meaning来与背景区分开。当前conv4_3_norm_mbox_priorbox一方面featuremap不够大,特征信息不够,另一方面conv4_3_norm_mbox_priorbox属于比较靠近输入的卷积层,semantic信息同时不够。以上两方面的原因都造成了conv4_3_norm_mbox_priorbox无法用于检测小目标。

但对于conv9_2_mbox_priorbox层:

  prior_box_param 
    min_size: 264.0
    max_size: 315.0
    aspect_ratio: 2
    flip: true
    clip: false
    variance: 0.1
    variance: 0.1
    variance: 0.2
    variance: 0.2
    step: 300
    offset: 0.5
  

最小的框是264pixel,同理最小物体的尺寸是186.67pixel,conv9_2_mbox_priorbox包含语义信息较多,但可以检测的最小物体过大,也造成了conv9_2_mbox_priorbox无法用于检测小目标。

针对既要较大的featuremap,又要较为丰富的语义信息的问题,FPN、retinanet、yolov3等采用的方法比较一致,使用较小的featuremap通过upsample操作与较大的featuremap concat在一起,即保留了深层featuremap的语义信息,又利用了浅层featuremap较为精细的特征。yolov2同样使用了多尺度特征融合。

除了多尺度特征融合之外,还可以采用的另一个思路是detnet。使用专门的目标检测主干网络,代替当前针对分类任务的主干网络。针对分类任务的主干网络有以下问题:当前主干网络基于较大的降采样因子产生较大的感受野,较大的感受野对分类任务有利。(Traditional backbone produces higher receptive field based on large downsampling factor, which is beneficial to the visual classification)然而以上做法造成了空间分辨率的让步,这造成了大目标的定位不准确与小目标的识别困难(However, the spatial resolution is compromised which will fail to accurately localize the large objects and recognize the small objects.)

其核心思想是空洞瓶颈结构(dilated bottleneck structure),总结起来就是一句话:DetNet不仅保持较高分辨率的特征图,同时具有较大的感受野。(DetNet not only maintains high resolution feature maps but also keeps large receptive field)

论文中认为FPN在较深的层次生成并预测较大的物体,上述物体的边界可能会过于模糊以致于不能准确的回归。(large object is generated and predicted within deeper layers, the boundary of these object may be too blurry to get an accurate regression)。较大的步长的另一个缺点是小物体的丢失。(Another drawback of large stride is the missing of small objects.)

PS:FPN使用P2-P6层,retinanet使用P3-P7层。在retinanet中anchor与gt的IOU大于0.5为正样本,小于0.4为背景,大于0.4小于0.5的在训练过程中忽略。FPN仍然使用与faster-rcnn相同的原则,与某个gt有最高的IOU,或者与任何gt的IOU大于0.7,则认为是正样本,与任何gt IOU都小于0.3,则认为是负样本。

最后回到核心内容上来,detnet的实现就是将resnet中原来的3*3卷积换成3*3,dilate为2的空洞卷积,网络结构见下图:

参考:

https://www.zhihu.com/question/49455386

https://github.com/eric612/MobileNet-SSD-windows/blob/master/models/VGGNet/VOC0712/SSD_300x300/train.prototxt

目标检测ssd基本思想和网络结构以及论文补充(代码片段)

...D的引入1.SSD的创新点2.SSD的缺点及优化1.主要缺点:SSD对小目标的检测效果一般,作者认为小目标在高层没有足够的信息。2.关于anchor的设置的优化3.如何从分类网络到预测网络?4.如何提取多个目标的特征?1.使用... 查看详情

深度学习之目标检测常用算法原理+实践精讲yolo/fasterrcnn/ssd/文本检测/多任务网络

深度学习之目标检测常用算法原理+实践精讲YOLO/FasterRCNN/SSD/文本检测/多任务网络资源获取链接:点击这里第1章课程介绍本章节主要介绍课程的主要内容、核心知识点、课程涉及到的应用案例、深度学习算法设计通用流程、适应... 查看详情

目标检测ssd相对于yolo与faster-rcnn做了哪些改进?效果如何

参考技术A  但是由于运行selective—search实在是太慢,希望用更快的方法。  逗直接上YOLO呗可以参考博文:物体检测-从RCNN到YOLO参考列表中地YouOnlyLo好Once逗一项,包括YOLO的论文、视频、源码、使用方式。 查看详情

目标检测ssd等onestage算法中关于小目标识别问题的解决方法

...算法包括yolossd等这一系列onestage的方法都不能解决检测时目标较小的问题,经过思考认为问题出在小目标的特征图和大目标不同上。有篇论文解决了这个问题,就是RSSD算法R是彩虹的意思表示将多个特征图相融合来作为分类标准... 查看详情

目标检测ssd相对于yolo与faster-rcnn做了哪些改进?效果如何

...还是慢YOLO就是把原图划成7x7的小格子,在每个格子里对目标进行预测,相当于固定了regionproposal的位置和大小,所以没有了RPN,加快了速度,但是准确率下去了SSD用了YOLO的思想,但是选了6个比例来对原图进行划分,这样就保证... 查看详情

目标检测网络ssd详解(代码片段)

SSD目标检测网络  使用SSD检测网络一段时间了,研究过代码,也踩过坑,算是有能力来总结下SSD目标检测网络了。1.SSD300_Vgg16  最基础的SSD网络是以Vgg16作为backbone,输入图片尺寸为300x300,这里以其为示例,详细剖析下SSD检测... 查看详情

目标检测轻量化压缩

...体。结合近两年的计算机视觉会议的相关论文可以看出,对于目标检测而言,目前主要存在以下几个问题:对于小目标物体的检测(如小于30像素的目标物体)、遮挡面积较大的目标以及区分图像中与目标物体外形相似的非目标物体等... 查看详情

目标检测方法——ssd

...能好,singlestage方法概括文章的方法介绍SSD主要用来解决目标检测的问题(定位+分类),即输入一张待测图像,输出多个box的位置信息和类别信息测 查看详情

目标检测:yolo和ssd简介

参考技术A作为计算机视觉三大任务(图像分类、目标检测、图像分割)之一,目标检测任务在于从图像中定位并分类感兴趣的物体。传统视觉方案涉及霍夫变换、滑窗、特征提取、边界检测、模板匹配、哈尔特征、DPM、BoW、传... 查看详情

详细解读目标检测经典算法-ssd(代码片段)

学习目标:知道SSD的多尺度特征图的网络知道SSD中先验框的生成方式知道SSD的损失函数的设计目标检测算法主要分为两类:Two-stage方法:如R-CNN系列算法,主要思路就是通过SelectiveSearch或者CNN网络产生一系列的稀... 查看详情

ssd+caffe︱singleshotmultiboxdetector目标检测

作者的思路就是FasterR-CNN+YOLO,利用YOLO的思路和FasterR-CNN的anchorbox的思想。.0导读(本节来源于BOT大赛嘉宾问答环节)SSD这里的设计就是导致你可以一下子可以检测8张图,FasterRCNN一下子只能检测1张图片,这样的话会导致会有8张... 查看详情

目标检测算法ssd(singleshotmultiboxdetector)(代码片段)

SSD:SingleShotMultiBoxDetector学习目标1.SSD1.1简介1.2结构1.3流程1.4Detector&classifier1.4.1PriorBox层-defaultboxes1.4.2localization与confidence2.训练与测试流程2.1train流程2.2test流程3.比较4.总结学习目标目标知道SSD的结构说明Detect 查看详情

深度学习之目标检测常用算法原理+实践精讲

...家从整体上了解本门课程的整体脉络。1-1课程导学第2章目标检测算法基础介绍本章节主要介绍目标检测算法的基本概念、传统的目标检测算法、目前深度学习目标检测主流方法(one-stage、two-stage、多任务网络)、相关算法的基... 查看详情

目标检测——深度学习下的小目标检测(检测难的原因和tricks)

...本上只有个位数的像素大小,导致设计的目标检测分类器对小目标的分类效果差。(2)小目标在原图中尺寸比较小,通用目标检测模型中,一般的基础骨干神经网络(VGG系列和Resnet系列)都有几次下采样处理,如果分类和回归... 查看详情

视频目标检测

...上下文信息。虽然说视频中可能出现任意类别的目标,但对于单个视频片段,只会出现比较少的几个类别,而且这几个类别之间有共现关系(出现船只的视频段中可能会有鲸鱼,但基本不可能出现斑马)。所以,可以借助整个视... 查看详情

航空遥感图像(aerialimages)目标检测数据集汇总

...CNN的目标检测方法在常规目标检测数据集上一骑绝尘,但对于小目标,CNN的Pooling层会让信息量进一步减少,一个24*24的目标经过4层pooling后只有约1个像素,使得维度过低难以区分出来; 4,多方向问题,航空遥感图像采用俯... 查看详情

解读ssd目标检测方法

.../github.com/balancap/SSD-TensorflowSSD是YOLO之后又一个引人注目的目标检测结构,它沿用了YOLO中直接回归bbox和分类概率的方法,同时又参考了FasterR-CNN,大量使用anchor来提升识别准确度。通过把这两种结构相结合,SSD保持了很高的识别... 查看详情

深度学习目标检测算法ssd论文简介

 深度学习目标检测算法SSD论文简介  一、论文简介:  ECCV-2016Paper:https://arxiv.org/pdf/1512.02325v5.pdf   Slides:http://www.cs.unc.edu/~wliu/papers/ssd_eccv2016_slide.pdf二、代码训练测试:  https://github.com/w 查看详情