论文链接:https://arxiv.org/pdf/2005.09973.pdf

code:https://github.com/Anymake/DRN_CVPR2020

文章概要:

  本文是中科院自动化所、腾讯优图、快手科技联合发表的工作,收录于CVPR2020。本文针对定向和密集场景中的目标检测任务提出了动态优化网络,可以说是目标检测在特定场景下的应用与优化。本文主要创新点在于:
  1、提出了一种新颖的可自适应调整目标感受野的特征选择模块FSM。
  2、提出了两种动态优化的检测头(DRH-C/R),分别对分类和回归任务进行动态优化,实现对样本唯一性和特殊性的建模。

本文动机:

  密集多角度物体检测面临的挑战:
  1、神经元的感受野全部沿轴排列且具有相同的形状,但物体通常具有不同的形状并沿不同的方向排列;
  2、检测模型通常利用通用知识进行训练,但在测试阶段可能不能很好的处理特定的物体;
  3、有限的数据集限制了密集多角度目标检测任务的发展。

  针对问题1和问题2,本文分别提出了特征选择模块FSM和动态优化head(DRH-C/R);针对问题3,本文收集了一个扩展的且带有完整注释的数据集SKU110K-R,该数据集基于SKU110K数据集的定向边界框进行重新标记。

网络整体结构:

本文以CenterNet(https://arxiv.org/abs/1904.07850)作为baseline,CenterNet算法将目标检测问题变成了一个关键点的估计问题,通过预测物体的中心点位置及对应物体的长与宽,实现了当前检测精度与速度最好的权衡。为了预测有向的边界框(oriented bounding boxes),添加了一个分支回归边界框的方向。有向边界框定义如下:
$$\begin{split}
&P_{lt}=M_r[-w/2,-h/2]^T+[c_x+\delta_x,c_y+\delta_y]^T,\\
&P_{lt}=M_r[+w/2,-h/2]^T+[c_x+\delta_x,c_y+\delta_y]^T,\\
&P_{lt}=M_r[-w/2,+h/2]^T+[c_x+\delta_x,c_y+\delta_y]^T,\\
&P_{lt}=M_r[+w/2,+h/2]^T+[c_x+\delta_x,c_y+\delta_y]^T,
\end{split}\tag{1}
$$
参数说明:$(c_x,c_y)$和$(\delta_x,\delta_y)$表示中心点和预测的偏移量。$(w,h)$是预测的尺寸,$M_r$表示旋转矩阵,$P_{lt},P_{lb},P_{rt},P_{rb}$表示四个角点。遵循CenterNet的回归任务,文章使用$L_1$损失进行旋转角度的回归:
$$L_{ang}=\frac{1}{N}\sum_{k=1}^N|\theta-\hat{\theta}|,\tag{2}$$
其中$\theta$和$\hat{\theta}$分别表示旋转角度的目标值和预测值。$N$表示正样本的数量,总体的训练目标函数为:
$$L_{det}=L_k+\lambda_{size}L_{size}+\lambda_{off}L_{off}+\lambda_{ang}L_{ang},\tag{3}$$
其中$L_k,L_{size},L_{off},L_{ang}$分别表示中心点类别损失、尺度回归损失、偏置损失、角度回归损失,$\lambda_{size},\lambda_{off},\lambda_{ang}$为权重系数,用于平衡各部分损失。

特征选择模块(Feature Selection Module)

  为了缓解各种物体与轴对齐的感受野之间的不匹配问题,作者提出了一种特征选择模块(FSM),用以自适应的聚合不同的核大小、形状(长宽比)、方向所提取的信息。 

FSM工作流程:
  1、给定初始特征图$X\in\R^{H\times W\times C}$,经过$1\times 1$Conv、BN、Relu输出$X_c\in\R^{H\times W\times C'}$;
  2、利用多个不同尺寸的的RCLs从$X_c$提取多个特征。其中每个RCl负责不同的感受野区域;
  3、利用注意力机制融合不同的特征。
  作者提到RCL的灵感来源于DCN,fig 4.展示了可变形卷积的概括了各种尺度变换、比例变换和旋转变换。同时作者在此基础上,引入了角度信息$\theta$对卷积核的方向进行编码,把之前标准的卷积核变成带有参数$\theta$的旋转卷积核,这种方式缓解了各种物体与轴对齐的感受野之间的不匹配问题,使得卷积核能更加适应旋转目标信息的提取。基于上述内容,我觉得RCL更像是DCN和ROI Trans(https://arxiv.org/pdf/1812.00155.pdf)思想的结合,但是ROI Trans是对ROI进行旋转。

Figure 4.正常卷积和可变形卷积的采样方式

 FSM的数学描述:
  1、遵循DCN的表达形式,本文依然使用$\mathcal{R}$表示规则网格的感受野。对于$3\times 3$的核,有:
$$\mathcal{R}=\lbrace(-1,-1),(-1,0),...,(0,1),(1,1)\rbrace,\tag{4}$$
  2、给定第i个位置预定义的偏移$p_i\in\mathcal{R}$和学习到的角度参数$\theta$,学习到的偏移量为:
$$\delta_{p_i}=M_r(\theta)\cdot p_i-p_i\tag{5}$$
  3、对于输出特征图$X_i$中的每个位置$p_0$,有:
$$X_i(p_0)=\sum_{p_n\in\mathcal{R}}\cdot X_c(p_0+p_n+\delta p_n),\tag{6}$$
  4、为了增强神经元感受野的自适应能力,本文采用注意力机制并与point-wise的方式融合特征。$X_i$首先经过一个注意力模块(由$1\times 1$卷积核、BN和RELU组成)得到注意力热图$A_i\in\bm{R}^{H\times W\times 1}(i\in1,2,3)$,之后归一化选择权重,
$$A'_i=SoftMax([A_1,A_2,A_3]).\tag{7}$$

  5、特征融合并输出特征图$Y$:
$$Y=\sum_{i}A'_i\cdot X_i,\tag{8}$$
其中$Y\in\mathbb{R}^{H\times W\times C}$,需要注意的是FSM可以扩展到更多的分支,文中3分支的结构只是其中一个例子。

动态优化检测head(Dynamic Refinement Head)

  文章提到,在标准的机器学习框架中,人们通过大量标注的数据训练模型。在推理阶段,将测试样例输入参数固定的模型以获得预测的结果。这种训练好的模型只能从训练集学到的普遍性知识做出响应而忽略每个样例(sample)的唯一性,会产生预测灵活性差的问题。figure 1.对本文提到的问题进行了说明。离边界较近的点很容易发生误识别。为了增强模型预测的灵活性,提出了DRH(DRH-C/R,分别用于分类和回归任务)。DRH对每个输入对象的特殊性进行建模。

Dynamic refinement for classification

  • 给定输入$F_in\in\mathcal{R}^{H\times W\times C}$,首先获得目标感知(object-aware)的滤波器$K_c$:
    $$K_c=G_c(F_{in};\phi),\tag{9}$$
    其中$G_c$表示动态滤波生成器,$\phi$表示$G_c$的参数集。$K_c$表示从样本中学习到的核权重。
  • $F_{mid}$和$K_c$进行卷积操作得到细化的特征$F_{\Delta}$:
    $$F_{\Delta}=F_{mid}\ast K_c,\tag{10}$$
    $F_{mid}$为$F_in$经过Conv-BN-ReLu处理得到。
  • 最后利用公式$(11)$得到分类预测$H_c$:
    $$H_c=C((1+\xi\cdot F_{\Delta}/||F_{\Delta}||)\cdot F_mid;\Phi),\tag{11}$$
    $C(\cdot;\Phi)$表示参数为$\Phi$的分类器。$\xi$是控制细化范围的常数因子。

Dynamic refinement for regression

  • 给定输入$F_{in}\in\mathcal{R}^{H\times W\times C}$,首先通过$G_r(\cdot;\psi)$获得$K_r$,之后通过类似公式$(10)$的操作获得$H_{\Delta}$,最后计算得到目标感知的回归结果$H_r$:
    $$\begin{split}
    &H_b=\mathcal{R}(F_{mid};\Psi),\\
    &H_r=(1+\epsilon\cdot tanh(H_{\Delta}))\cdot H_b,
    \end{split}\tag{12}
    $$
    $\mathcal{R}(\cdot;\Psi)$表示参数为$\Psi$的回归器。细化因子通过$tanh$限制在$[-1,1]$范围内变化。$\epsilon$表示防止模型被过大细化而混淆的控制因子,设置为0.1。

实验

  • 对比实验

 消融实验

  • 定性分析

总结
  本文总结了现有的有向密集目标检测任务存在的问题,提出了相应的解决方法。文章逻辑结构清晰,实验充分。我觉得文章中提到的物体与轴对齐的感受野不匹配问题就是特征不对齐问题,细化模块本质上就是学习一个映射函数,该映射函数能根据输入特征得到动态的滤波器。

CVPR2020 面向密集多角度物体检测的动态修正网络(DRN)的更多相关文章

  1. 物体检测之FPN及Mask R-CNN

    对比目前科研届普遍喜欢把问题搞复杂,通过复杂的算法尽量把审稿人搞蒙从而提高论文的接受率的思想,无论是著名的残差网络还是这篇Mask R-CNN,大神的论文尽量遵循著名的奥卡姆剃刀原理:即在所有能解决问 ...

  2. 利用opencv进行移动物体检测

    进行运动物体检测就是将动态的前景从静态的背景中分离出来.将当前画面与假设是静态背景进行比较发现有明显的变化的区域,就可以认为该区域出现移动的物体.在实际情况中由于光照阴影等因素干扰比较大,通过像素直接 ...

  3. 物体检测丨Faster R-CNN详解

    这篇文章把Faster R-CNN的原理和实现阐述得非常清楚,于是我在读的时候顺便把他翻译成了中文,如果有错误的地方请大家指出. 原文:http://www.telesens.co/2018/03/1 ...

  4. OpenCV学习 物体检测 人脸识别 填充颜色

    介绍 OpenCV是开源计算机视觉和机器学习库.包含成千上万优化过的算法.项目地址:http://opencv.org/about.html.官方文档:http://docs.opencv.org/m ...

  5. opencv,关于物体检测

    关于物体检测 环境:opencv 2.4.11+vs2013 参考: http://www.cnblogs.com/tornadomeet/archive/2012/06/02/2531705.htm ...

  6. 『计算机视觉』物体检测之RefineDet系列

    Two Stage 的精度优势 二阶段的分类:二步法的第一步在分类时,正负样本是极不平衡的,导致分类器训练比较困难,这也是一步法效果不如二步法的原因之一,也是focal loss的motivation ...

  7. 后RCNN时代的物体检测及实例分割进展

    https://mp.weixin.qq.com/s?__biz=MzA3MzI4MjgzMw==&mid=2650736740&idx=3&sn=cdce446703e69b ...

  8. 物体检测算法 SSD 的训练和测试

    物体检测算法 SSD 的训练和测试 GitHub:https://github.com/stoneyang/caffe_ssd Paper: https://arxiv.org/abs/1512.02 ...

  9. ssd物体检测模型训练和测试总结

    参考网址:github:https://github.com/naisy/realtime_object_detection 2018.10.16ssd物体检测总结:切记粗略地看一遍备注就开始训练模型 ...

随机推荐

  1. 已解决:Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986 问题

    请求: http://127.0.0.1:8080/driverApp/findLikeAddress?json={"shopname":"广东省"," ...

  2. python flask构建小程序订餐系统--centos下项目开发环境的搭建

    1.项目开发环境的搭建(Linux环境) 1)软件的安装 我们搭建整个项目的过程中,我们需要用到下面的一些软件,但是这些软件的安装过程我们在这里不用说明.(因为windows软件的安装比较的简单,类似 ...

  3. 037_go语言中的互斥锁

    代码演示: package main import ( "fmt" "math/rand" "runtime" "sync&quo ...

  4. jQuery 购物车案例

    h1 { text-align: center; } .cart { width: 1200px; height: 600px; margin: 0 auto; border: 1px solid # ...

  5. Tomcat Windows 内存设置

    双击 bin 目录下 tomcat8w.exe,在 java 标签内修改内存配置

  6. ebook 电子书项目

    ebook电子书网站使用eclipse开发,开发语言主体是JAVA,使用的是servlet+jsp,前端使用javascript和jQuery,页面布局设计使用的是bootstrap,在这里我记下我开 ...

  7. data argumentation 数据增强汇总

    几何变换 flip:水平翻转,也叫镜像:垂直翻转 rotation:图片旋转一定的角度,这个可以通过opencv来操作,各个框架也有自己的算子 crop:随机裁剪,比如说,在ImageNet中可以将输 ...

  8. cocos2dx重新设置 SDK NDK目录

    参考博客https://blog.csdn.net/yinhe888675/article/details/41042347 初始设置SDK,NDK目录后,当我想换目录的时候不知道该怎么办,怎么重新设 ...

  9. sourcetree关于注册的问题

    当前只有Win的版本,Mac自行百度(笑) 很多人用git命令行不熟练,那么可以尝试使用sourcetree进行操作. 然鹅~~sourcetree又一个比较严肃的问题就是,很多人不会跳过注册或者操作 ...

  10. windows10永久激活工具 新版win10激活工具(绝对有效的永久激活工具)

    来看这篇文章的,都用过KMS了吧?对!KMS是批量激活的,激活时间是一年,如果给女神激活,此法首选呀!!!但是帮基友激活,过了一年又来找自己,作为程序员的你,脸上是不是有点挂不住然后又不想花钱去买某宝 ...