Object Detection

AutoAssign: Differentiable Label Assignment for Dense Object Detection

Label-assignment, 选择正/负样本点(anchor-free)需要动态确定,且正负样本点损失加权。权重:cate+物体计算

center prior: 训练时固定先验

(instance) confidence map: 根据数据动态调整

之前空间上采样正负样本的方法为 1. IoU 2. 物体框中心固定区域都为正样本。但存在物体框中部分区域没有物体,且固定区域无法优化 obstacle caused by feature shifting when backgrounds are sampled as positives may decrease the performance.

提出根据category&instance信息动态产生pos/neg weight map [differentiable/data-driven]

image-20200715142809070

image-20200715142902639

👆更加dynamic

image-20200715143039412

通过Center Weighting + Confidence Weighting得到Weight Map(latex_equ)

Center Weighting

学习一个category-wise分布,即带参数的Gaussian-shape weighting function,用在FPN的每一层。

latex_equ,其中latex_equ为某个位置的xy偏移量,一种类别有一组latex_equ

center prior可以增加类别的先验分布信息,防止网络冷启动后出现过拟合(不断优化第一次w高的点)

由于conf weighting作用的是每个GT-Box中所有点,所以应用center prior时已知类别

Confidence Weighting

截屏2020-07-15 下午3.02.53

增加Implicit-Objectness分支,抑制false-pos(框内部分点不在物体上)

训练时分类分支一起训练 latex_equ

认为之前固定匹配模型的分类分支为已知点是正样本latex_equ,预测点为某个类别的概率,即分类分支的结果为是latex_equ条件概率。latex_equ, latex_equ是参数

现在改为Impl-Obj分支预测latex_equ,再和分类分支latex_equ一起得到latex_equ

且增加localization conf作为计算样本权重的依据,通过指数函数将定位准确率转为likelihoodlatex_equ,在计算loss体现。类似Learning From Noisy Anchors for One-Stage Object Detection 综合考虑分类和定位的性能

latex_equ

joint conf representation latex_equ经过指数计算,增强latex_equ (只会有一小部分落在物体上,得分高)

Weight Map

对一个GT框内的点计算权重,focus on proper loc inside bbox

融合,求正样本和负样本权重

latex_equ

latex_equ,f normalize to [0,1],分数为sharpen权重分布

Loss函数latex_equ

👆学习策略为一个box的训练,对一个box构建latex_equ训练

不同尺度热力图可视化👇

image-20200715150853109

👇ImplicitObjectness抑制噪声效果显著

image-20200807112856084

基于FCOS,提升2-3点,mAP=52.1%


Towards Accurate One-Stage Object Detection with AP-Loss

Label-assignment

正负样本不均衡问题 It is observed that the classification metric could be very high for a trivial solution which predicts negative label for almost all candidate boxes, while the detection performance is poor

<img src="Figures/image-20200716164022633.png" alt="image-20200716164022633" style="zoom:50%;" />

负样本多,正样本分类结果对loss贡献少,对检测acc影响小

提出直接对AP(average precision)优化:AP Loss

把分类分支问题看为一个rank问题,计算AP Loss,采用error-driven方式优化

Ranking Task & AP Loss

因为计算AP过程实际是对预测结果排序,再计算,所以把分类问题看作一个ranking问题:对于每一类,所有的正样本点排在负样本点之前(更高分)

AP-Loss的primary term为:latex_equ . 其中latex_equ为两点的排序差距:latex_equ将分类预测的分数转化为排序x,作为损失函数的输入,H为Heaviside step function阶跃函数:latex_equ

即只有j排在i之前时,才对latex_equ有贡献。GT定义为latex_equ

AP-Loss为:

latex_equ
latex_equ

latex_equ (由于只有i j分属正负时latex_equ非0,同latex_equ的定义)

即为计算任意一个正样本P和一个负样本N的primary term。正样本之间没有,正负样本之间有损失

latex_equ

Error-driven Update

the update is directly derived from the difference between desired output and current outputlatex_equ

最小化AP-Loss到0,即最佳优化方向latex_equ,y控制是否对于loss有贡献

优化时,衡量改变参数latex_equ后x的变化与最佳优化方向之间的相似度,以及L2正则

latex_equ,一阶泰勒展开算参数的优化方向

由于参数变化latex_equ在BP过程中不变,所以最佳优化方向latex_equ即为x的梯度,链式求s的梯度

latex_equ

<img src="Figures/image-20200716173631622.png" alt="image-20200716173631622" style="zoom:50%;" />

性能基于RetinaNet提升3个点


DR Loss: Improving Object Detection by Distributional Ranking

基于AP-Loss,采用类似SVM方式对正负样本排序(margin)

增加对正负样本分布的改变 reweight

<img src="Figures/image-20200716173939029.png" alt="image-20200716173939029" style="zoom:50%;" />

Scale-Equalizing Pyramid Convolution for Object Detection (SEPC)

采用3D卷积进行多尺度特征融合,不同层融合权重不同

特征金字塔不同层之间存在semantic gap,之前采用feature fusion解决但没有提取intrinsic property

Pyramid Conv PConv: 在尺度维上 (不同层特征图) 做卷积(like spatial conv),3D conv

选择三层,底层采用stride卷积,中间普通卷积,上层bilinear upsampling。控制不同层的不同stride来获得相同大小的输出,并相加。时间成本为1.5倍

image-20200704214032431

BN修改为整个特征金字塔层共享统计量,效果类似sync_bn,同步不同位置上的统计量,统计范围更广

BN = standardization(latex_equ,latex_equ) + scale_shift(latex_equ,latex_equ),统计卷积的bn为每张特征图,即在channel维的统计(channel个统计量),统计不同样本在同一个channel上所有wh点的batch statistics latex_equlatex_equ(reduce at batch dimension)。每张特征图一对parameters latex_equlatex_equhttps://zhuanlan.zhihu.com/p/43200897)

可以证明PConv能够提取Gaussian Pyramid(不同高斯模糊核对图片处理) 尺度不变的特征,即如果原图物体尺度变化,则可通过对PConv提取的特征shift得到改变后物体的特征 论文中有证明

Scale-Equalizing Pyramid Conv SEPC: PConv的升级版,通过deformable conv实现对不同尺度特征的对齐。

def pconv_module_forward(x, conv2D_list):
    # x: input feature list [p3,p4,p5,p6,p7] # conv2D_list: conv2D module list,
    # [nn.Conv2D(stride=2),nn.Conv2D(),nn.Conv2D()]
    out_x = []
    for level in range(len(x)):
        tmp = conv2D_list[1](x[level])
        if level > 0:
            tmp += conv2D_list[0](x[level-1])
        if level < len(x) - 1:
            tmp += Upsample(conv2D_list[2](x[level+1])
        out_x.append(tmp) 
    return out_x

最底层普通卷积kernel size不变,其他层使用deformable conv

image-20200704213956083

因为feature pyramid中由于backbone非线性操作,相对于gaussian pyramid特征不对齐,所以只通过dilation提取特征不全面,改用d-conv

SEPC is an improved version of pconv, to relax the discrepancy of feature pyramid from a Gaussian pyramid by aligning the feature map of higher layers with the lowest layer

底层特征采用普通卷积,卷积结果作为权重向上层的d-conv共享(卷积结果作为d-conv的一个输入求offset,类似CentripetalNet中)

SEPC模块用于取代RetinaNet的detection head的卷积模块

本质为一种pix-wise or fine-grained 的feature fusion,多尺度特征图通过卷积操作进行特征融合

image-20200704214335943

性能提升明显

image-20200704214411536


PSConv: Squeezing Feature Pyramid into One Compact Poly-Scale Convolutional Layer

提取多尺度特征

一个卷积核不同通道不同dilation rate(不同颜色表示不同dilate)

image-20200717174956433

latex_equ

扩张率在in通道上循环交替排布(👆T=4循环排列),在out通道维度上也循环排列

image-20200717175208977

Fast RCNN替换backbone中所有卷积,FPN neck不变,提升2点左右

Rethinking Classification and Localization for Object Detection (Double-Head RCNN)

检测头进行双路分支改进

二阶段检测器中,对proposal处理的传统检测头采用conv层,或者fast rcnn使用fc层处理

image-20200706183720979

fc层作为head,由于全连接操作不同位置权重不共享,对于位置更加敏感(小位置变化大的输出结果变化),适合分类

conv层作为head,由于卷积操作不同位置权重共享,适合回归整个物体(coco2018结果表明可以使用conv层作为bbox的预测头)

image-20200706185341027

分析conv作为head的分类回归结果👇

image-20200706184401851

fc作为head的分类回归结果👆

  1. 分类:fc作为head时,其高iou部分分类结果明显比conv作为head好。计算Pearson correlation coefficient👇fc-head的score-iou关系大于conv-head的score-iou关系

image-20200706184732698

  1. 定位:conv-head略好于fc-head

可视化关联关系:conv-head采用得到的特征图cos距离,7x7grid,每个点产生7x7大小的和其他任意点的关联矩阵;fc-head对fc层权重变换输出7x7特征图

image-20200706185049024

conv-head计算的点和周围关联关系大

Double head RCNN

两个分支,conv-head用于回归,fc-head用于分类

image-20200706185402627

改进:extend,训练时利用conv-head的分类损失和fc-head的回归损失进行监督(unfocused task supervision)

latex_equ, latex_equ

同时对分类分数进行二分支融合(classifiers are complimentary)

image-20200706185811416

FPN+2.5~3.8 val AP


D2Det: Towards High Quality Object Detection and Instance Segmentation

一阶段回归分支操作移植到二阶段

deformable pooling + weighted pooling

image-20200706234538094

Dense local regression

把RoI看作类似一阶段中的特征图。之前二阶段检测器对于一个RoI只预测一个框 (FC+预测),改成RoI中每个点都预测一个框(dense prediction)。预测中间点到box上下左右的距离 (FCOS)

增加binary overlap prediction (latex_equ),对RoI和GT重叠部分为1,只有为1的点的预测结果有效。

类似一阶段中每点预测bbox,预测IoU/objectness

Discriminative RoI pooling

deformable pooling + weighted pooling

pooling的weighted权重通过输入特征操作得到(类似self-attention)👇W为计算的权重

latex_equ

image-20200707000247234性能提升较明显: multi-scale 50.1


NMS by Representative Region: Towards Crowded Pedestrian Detection by Proposal Pairing (PBM)

基于bi-box regre. 根据vis框进行NMS

行人检测中重叠,类内重叠Replusion Loss和AggLoss惩罚两个人中间的box,但是box的重叠仍然会导致在NMS过程中被误删

Adaptive NMS中GT-density和Pred-density的inconsistency

image-20200707105643820

GT框不密集,但Pred-box是密集的。Adaptive NMS预测GT的密集程度,而NMS和Pred的密集程度有关。👆预测绿框不密集,所以红框不会被保留

NMS by representative region

通过计算visible部分的IoU而不是full部分的IoU进行NMS

重叠不同物体的检测框full-IoU大,vis-IoU小。重叠同一物体full-IoU和vis-IoU都大 latex_equ vis-IoU判别

image-20200707132234249

Paired BBox Faster RCNN

Paired RPN + Paired Proposal Feature Extractor + Pair RCNN

Paired RPN

GT标注为pair Q=(F,V),全身框和可见框

从一个anchor回归出full和visible的proposal(为了inherent correspondence)

anchor和一对GT标注的匹配标准:

latex_equ and latex_equ

latex_equ

full和vis的回归训练策略同bi-box regression

Paired Proposal Feature Extractor

融合full/vis两个proposal的特征

image-20200707133322847

<font color="#00dd00">绿色分支</font>+<font color="dd0000">红色分支</font>:简单的concat两个proposal的特征向量

<font color="00dd00">绿色分支</font>+黑色分支:visible region attention/mask,构建visible部分的0/1 mask,与full特征latex_equ点乘得latex_equ,再concat latex_equlatex_equ

Paired RCNN

融合特征和proposal作为输入,两个分支分别预测full和vis的检测框

proposal和一对GT的匹配标准:

latex_equ and latex_equ

性能提升明显

image-20200707134837180


Hit-Detector: Hierarchical Trinity Architecture Search for Object Detection

NAS整体搜索,基于FBNet

image-20200708170606633

二阶段检测器:backbone + neck(feature pyramid & fusing) + RPN(fixed) + Head

NATS和DetNAS搜索backbone,NAS-FPN搜FPN,Auto-FPN搜fusing和Head

单独搜索效果较差,采用整体每个部件(backbone: latex_equ, neck: latex_equ, head: latex_equ)一起搜索,end-to-end search

latex_equ

每个component采用逐层搜索,构建每个操作用在每一层的得分矩阵latex_equ,选择概率

对一个操作用在不同层的得分进行L2正则化(column-space regularization),减少得分的数值大小:

latex_equ

选择latex_equ最大max的一个操作,但为了可微采用softmax来选择(continuous relaxation)

搜索backbone时搜索空间的节点计算(differentiable):latex_equ

搜索neck时搜lateral connection,搜索Head时搜fc预测前的block

优化时增加FLOPS约束:latex_equ

首先固定latex_equ在一半的数据上训练求latex_equ更新latex_equ,再固定latex_equ在剩下的数据上训练求latex_equ更新架构latex_equ


SaccadeNet: A Fast and Accurate Object Detector

image-20200708225553326

Center Attentive Module产生中心点和类别;Attention Transitive Module产生wh;Aggregation Attentive Module融合两分支的特征(双线性插值)和预测,并对预测框进行refine;Corner Attentive Module只有一个block产生角点预测,用于backbone监督信号,测试时去掉。

相比CenterNet改进:1. 通过Aggregation进行二步refine 2. 增加corner分支的监督信号有助于对边缘的检测(帮助预测wh的分支) 3. L1作为box训练损失

image-20200708230331922

👆test-dev上性能,速度提升明显,快于yolov3


Learning from Noisy Anchors for One-stage Object Detection

loss函数增加权重,选择回归分类分数高的框增大其loss贡献

对loss学习时的修改

之前的检测器评价anchor好坏使用IoU,harsh的划分导致噪声和不易训练

<img src="Figures/image-20200711120826876.png" alt="image-20200711120826876" style="zoom:30%;" />

拖车:IoU大但包含其他物体;长颈鹿:包含关键特征但IoU小

以IoU作为正负样本划分会导致噪声,需要根据回归分类结果(cleanliness)划分

分类上采用对cleanliness的预测代替之前根据IoU的pos/neg的0/1预测,RPN的soft-label类似IoU-Net的预测IoU/soft-objectness

latex_equ

对按IoU划分的latex_equ中部分较高IoU的anchor计算cleanliness,即回归分类的性能

稳定训练,前几个iter采用anchor-gt的IoU而不是预测结果的IoU计算c

latex_equ,用于RPN或objectness预测

定位上采用根据clatex_equanchor计算reweight r,对anchor回归损失加权latex_equ为box和匹配到的GT的IoU(匹配用最大IoU方法)

latex_equ,其中latex_equ,为增大variance,并将latex_equ均值正则化到1

latex_equ

<img src="Figures/image-20200711123828365.png" alt="image-20200711123828365" style="zoom:50%;" />


CSPNet: A New Backbone that can Enhance Learning Capability of CNN

使用卷积层截断梯度,减少直接相连,防止梯度重复计算

densenet中不断的concat会让梯度反传时后面的梯度不断传到前面,计算量大,重复计算

latex_equ

反传

latex_equ

例如在最后一层计算过程中,由于和前面层直接连接,梯度会一直回传到w1

提出:Partial Dense Block 输入特征channel上分为两部分latex_equ,一部分直接相连,另外部分dense block。Partial Transition Layer 融合时采用transition层截断梯度的传播

image-20200724223413132

latex_equ

latex_equ的梯度只传递到latex_equ,之后梯度全部从latex_equ开始传

image-20200724222732419

Fusion first能截断更多梯度传递(如后续部分到part1的梯度),但性能较差;采用fusion last

提出EFM,临近层特征融合,防止distract

image-20200724223519751

检测任务性能提升明显


Feature Pyramid Transformer

采用transformer/self-attention方式进行多尺度特征融合/交互

Non-local只对同一尺度的不同空间特征交互,改进space+scale

image-20200818143118059

不同层的不同空间位置的物体interaction(co-occurring in multiple scales)

Non-local

用于一张特征图不同位置特征。看作self-attention,输入latex_equ表示latex_equ位置经过latex_equ提取后的query,latex_equ为key,latex_equlatex_equ位置的value

先dot product计算i-query和j-key相似度,softmax标准化得到权重,和j-value相乘的到结果

latex_equ

Self-Transformer (ST)

用于一张图上co-occurring物体特征。把query和key分成latex_equ份,每部分计算相似度latex_equ,使用Mixture of Softmax作为标准化函数(加权求和latex_equ

latex_equ

<img src="Figures/image-20200818145143482.png" alt="image-20200818145143482" style="zoom:50%;" />

Grounding Transformer (GT)

top-down融合,ground高层concept特征到低层pixel特征,高层latex_equ低层latex_equ

采用负欧式距离计算不同层之间特征相似度 latex_equ

latex_equ表示latex_equlatex_equ位置的特征,latex_equ表示latex_equlatex_equ位置,计算的到latex_equ

分割任务需要局部信息,传统采用直接相加,而用GT会带来全局信息,提出Locality-constrained Grounding Transformerlatex_equ只和一部分latex_equ交互

<img src="Figures/image-20200818145429855.png" alt="image-20200818145429855" style="zoom:50%;" />

Rendering Transformer (RT)

bottom-up, rendering high-level concept with low-level pixels

低层的latex_equlatex_equ,高层为latex_equ

latex_equ首先GAP计算为权重latex_equ,权重latex_equ再和latex_equ相乘refine,最后和downsample (conv+stride)的latex_equ相加

latex_equ

总体架构

resnet,faster rcnn head

image-20200818150612705

高层计算用于GT的特征,低层计算用于RT的特征,transformer融合的到新特征,concat

参数量,计算量增加大


BorderDet: Border Feature for Dense Object Detection

explicit border information

image-20200819230010228

borderdet增强了边缘的特征

Border Align

原始特征通道数为C,构建5C通道的特征,表示上下左右特征和原始点的特征。输入coarse box reg的bbox。

对于每个ij点,4C分别选择其对应预测框的边上响应最大的特征作为这个点的输出特征(+原始特征=5C x W x H特征图)

latex_equ

latex_equ的coarse预测结果为latex_equ

image-20200819231021412

image-20200819231044269

Border Alignment Module对特征升维,BorderAlign,降维👇

image-20200819231203928

BorderDet分别在定位和分类分支使用BAM,BAM使用定位分支的第一步的定位结果,再去refine,组合成为最后输出👇

<img src="Figures/image-20200819231428705.png" alt="image-20200819231428705" style="zoom:50%;" />


SpineNet: Learning Scale-Permuted Backbone for Recognition and Localization

NAS+检测,encoder+decoder结构不好 (scale decreased model)

尺度增大减小,不同尺度特征连接

提出scale-permuted model,保证:1. 特征图尺度可以随时增大减小 2. 不同尺度的特征可以连接进行融合

直接搜索整个网络,而不是分别搜索backbone和fpn

image-20200820204545461

逐步替换resnet👇,红色为输出层,可以看作backbone+FPN

image-20200820205947836

Multi-scale, DropBlock, stochastic depth, swish activation

性能提升明显 mAP=52.1


Dually Supervised Feature Pyramid for Object Detection and Segmentation

FPN top-down和botton-up两次都预测监督算loss

拆分cls和reg head

  1. image-20200823190552173

  2. image-20200823190617471


Pyramidal Convolution: Rethinking Convolutional Neural Networks for Visual Recognition

一个卷积拆分为多个不同receptive field的分组卷积

image-20200831204426110

Bottom-up: 感受野逐渐增大,kernel深度latex_equ逐渐减小

kernel depth (输出通道数): latex_equ

对SSD模型有提升


Generalized Focal Loss: Learning Qualified and Distributed Bounding Boxes for Dense Object Detection

  1. 训练时cls-score和iou/objectness-score单独预测但测试时直接相乘
  2. bbox没有建模uncertainty

QFL

image-20200905160302886

👆IoU(quality)和cls-score不match,👇独立预测

image-20200905160358215

image-20200905160432718

👆传统为冲击函数(Dirac delta dist.),无法建模不确定性

提出预测分类-质量联合表示(smooth label),离散label,将Focal Loss的优化改 latex_equ 「展开pos+neg」

DFL

image-20200906105358216

👆之前是冲击函数,只有标注y出概率最大,其他为0,对于不确定的边界没有监督

image-20200906110136608

👆不确定边界 bottom,双峰

<img src="Figures/image-20200906110316101.png" alt="image-20200906110316101" style="zoom:50%;" />

传统 latex_equ,冲击函数,只预测一点

提出通过分布latex_equ预测label latex_equ 分布的积分

从冲击函数,到先验高斯分布,到任意分布,建模随机性

<img src="Figures/image-20200906110336213.png" alt="image-20200906110336213" style="zoom:50%;" />

离散化 latex_equlatex_equ

减少计算量,真实分布与标注位置距离不会太远,只计算左右最近两个latex_equ

latex_equ

latex_equ

最后预测为左右最近两个位置的线性组合 latex_equ

GFL

QFL和DFL的统一表示 Generalized Focal Loss

latex_equ

训练损失

latex_equ

对所有位置latex_equ计算QFL,对正样本latex_equ计算GIoU loss和DFL

DFL和IoU-loss优化bbox回归,分别建模uncertainty和IoU最大;QFL优化分类分支

对大目标提升效果好,+1 mAP

Ref: https://zhuanlan.zhihu.com/p/147691786