目标检测复习

SSD

特征生成:多尺度特征融合,1个38*38*512的浅层特征与1个19*19*512的深层特征融合,深层特征通过上采样变成38*38*512,然后如图4,与38*38*512串行组成成38*38*1024,在通过1x1的卷积层,自动获得权重变成38*38*512的特征。(图五,是并行组合需要自己设计权重)

FPN

(a)图像金字塔,即将图像做成不同的scale,然后不同scale的图像生成对应的不同scale的特征。这种方法的缺点在于增加了时间成本。有些算法会在测试时候采用图像金字塔。

(b)像SPP net,Fast RCNN,Faster RCNN是采用这种方式,即仅采用网络最后一层的特征。

(c)像SSD(Single Shot Detector)采用这种多尺度特征融合的方式,没有上采样过程,即从网络不同层抽取不同尺度的特征做预测,这种方式不会增加额外的计算量。作者认为SSD算法中没有用到足够低层的特征(在SSD中,最低层的特征是VGG网络的conv4_3),而在作者看来足够低层的特征对于检测小物体是很有帮助的。

(d)本文作者是采用这种方式,顶层特征通过上采样和低层特征做融合,而且每层都是独立预测的。

FPN是第四种方法,但是不仅仅是上采样,而是上采样加1X1的卷积层处理。(上采样的特征并与原来的该层特征相加)

在检测时,每层生成各自的检测框,并用各自特征进行检测。

每层3或者n个框滑动。多层就是多尺度。

YoloV1

YOLOv1则直接将7x7这49个区域作为候选区域。

(1) 给个一个输入图像,首先将图像划分成7 * 7的网格。
(2) 对于每个网格,每个网格预测2个bounding box(每个box包含5个预测量)以及20个类别概率,总共输出7×7×(2*5+20)=1470个tensor
(3) 根据上一步可以预测出7 * 7 * 2 = 98个目标窗口,然后根据阈值去除可能性比较低的目标窗口,再由NMS去除冗余窗口即可。

YOLOv1使用了end-to-end的回归方法,没有region proposal步骤,直接回归便完成了位置和类别的判定。种种原因使得YOLOv1在目标定位上不那么精准,直接导致YOLO的检测精度并不是很高。

YOLOv1是单阶段方法的开山之作。它将检测任务表述成一个统一的、端到端的回归问题,并且以只处理一次图片同时得到位置和分类而得名。

Yolov1没有边框回归,V2有边框回归和RPN的一样。

边框回归的目的既是:给定(Px,Py,Pw,Ph)(Px,Py,Pw,Ph)寻找一种映射ff, 使得f(Px,Py,Pw,Ph)=(Gx^,Gy^,Gw^,Gh^)f(Px,Py,Pw,Ph)=(Gx^,Gy^,Gw^,Gh^) 并且(Gx^,Gy^,Gw^,Gh^)≈(Gx,Gy,Gw,Gh) (通过卷积层做的)

Faster RCNN

2个卷积层一个进行回归,一个进行分类

RetinaNet

RetinaNet就是一个FPN-based的one-stage detector,靠着最后面的focal loss来解决由于过量background而引起的类别不平衡。类似困难挖掘

提供了一个新的loss函数

OHEM

OHEM算法虽然增加了错分类样本的权重,但是OHEM算法忽略了容易分类的样本。容易分的样本loss越小越好,不容易分的权重越大越好,所以可以给loss认为加一个系数,拉大难分类样本的loss区间。

YOLOV3

loss不同:作者v3替换了v2的softmax loss 变成logistic loss,而且每个ground truth只匹配一个先验框。(logistic loss多了一个偏置参数 其他变化不大)

anchor bbox prior不同:v2作者用了5个anchor,一个折衷的选择,所以v3用了9个anchor,提高了IOU。

detection的策略不同:v2只有一个detection,v3一下变成了3个,分别是一个下采样的,feature map为13*13,还有2个上采样的eltwise sum,feature map为26*26,52*52,也就是说v3的416版本已经用到了52的feature map,而v2把多尺度考虑到训练的data采样上,最后也只是用到了13的feature map,这应该是对小目标影响最大的地方。

backbone不同:这和上一点是有关系的,v2的darknet-19变成了v3的darknet-53,为啥呢?就是需要上采样啊,卷积层的数量自然就多了,另外作者还是用了一连串的3*3、1*1卷积,3*3的卷积增加channel,而1*1的卷积在于压缩3*3卷积后的特征表示,这波操作很具有实用性,一增一减,效果棒棒。

RefineDet

Anchor Refinement Modual(ARM):类似RPN部分,用来提取anchor,过滤掉部分负样本候选框(1:3比例),减小分类器的搜索范围只区分前景和背景,并回归出前景的anchor用于检测模块。(减少正负样本差,正负样本数量差距过大时,同样权重下负样本的信息学得较多,正样本信息较少,会导致CNN学习错误)

Transfer Connection Block(TCB):将特征进行细化,并与深层特征进行 Eltw sum操作(对应元素求和)。作为当前layer的特征输入到检测模块。

(红色框TCB模块,相当于把浅层特征加到深层特征上了,反向的Resnet)

Object Detection Modual(ODM):典型的SSD结构,多层特征进行concat后,softmax分类,smooth L1 回归。(特征组合检测)

STDN

尺度转移层

将网络的最后一层尺度转移 用于检测。(改进主要在用哪一层的特征检测)

M2Det

SSD型:使用了主干网络的最后两层,再加上4个使用stride=2卷积的下采样层构成;

FPN型:也称为U型网络,经过上采样操作,然后对应融合相同的scale;

STDN型:基于DenseNet的最后一个dense block,通过池化和scale-transfer操作来构建;

MLFPN型:本文新提出,整体思想是Multi-level&Multi-scale,下文详述

要有两点:一是均基于分类网络作为主干提取,对目标检测任务而言特征表示可能不够(图像分类的特征不一定适用于图像检测);二是每个feature map仅由主干网络的single level给出,不够全面(一般来说,高层特征利于进行分类,低层特征利于回归目标位置,浅层特征与深层特征各有其用)。

图(a)

1024*20*20的特征通过核数为1024大小为 1*1 和 核数为 512 大小1*1的Conv层变成512*20*20 再上采样512*40*40

 

512*40*40通过大小3*3 核数512 和大小1*1 核数256变成 256*40*40

 

两个相加768*40*40

 

图(b)

768*40*40通过conv 128*40*40 再加上一个128*40*40变成256*40*40

TUM模块参考 STDN算法生成5个特征层。

特征再次组合,得到最终用于检测的特征。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值