ICPR 2020 | 论文阅读 ——SyNet: An Ensemble Network for Object Detection in UAV Images

论文链接:https://arxiv.org/abs/2012.12991

开源代码https://github.com/mertalbaba/SyNet

创新点:

  1. 在训练两个模型前使用“cut-paste”的数据增强;
  2. 提出一种不同模型预测框的加权融合算法。

1. Motivation

  • 无人机航拍图像与自然图像的拍摄方式不同,导致了以下三个问题
  1. 缺乏大目标方差的大型无人机图像数据集;
  2. 无人机航拍图像有较大的尺度方差和方向变化;
  3. 地面和空中图像在纹理和形状特征上存在差异。
  • 目前已发展的单阶段和多阶段检测器各有优缺点,将每种解决方案的优势结合起来可以达到更强的检测效果。
  • 目的是降低多阶段检测器的high false negative(高假阴性率),提高单阶段检测器proposal的质量。

2. Method

  • 本文提出了一种集成网络——SyNet。它将多阶段与单阶段方法结合,降低多阶段的假阴性率,提高单阶段提出框的概率。
  • 作为构建块,使用预先训练好的CenterNet和Cascade R-CNN作为backbone,并有一套性能好的合并策略。

2.1. Object detecion

下面是定义变量。

  • 定义边界框: ( x t l p , y t l p , x b r p , y b r p ) (x_{tl}^{p},y_{tl}^{p},x_{br}^{p},y_{br}^{p}) (xtlp,ytlp,xbrp,ybrp),分别表示点 p p p是左上角点和右下角点的预测框坐标。
  • 评估预测框好坏的标准,使用 交并比(IOU) 来进行评价,公式为: I o U ( b p , b g t ) = a ( b p ∩ b g t ) a ( b p ∪ b g t ) IoU(b^{p},b^{gt})=\frac{a(b^{p}\cap b^{gt})}{a(b^{p}\cup b^{gt})} IoU(bp,bgt)=a(bpbgt)a(bpbgt)其中, a a a是计算给定边界框区域的区域函数, b p b^{p} bp是预测边界框, b g t b^{gt} bgt是真实边界框。
  • 对于基于IoU的预测评估来说,选择一个合适的阈值 t t t是很重要的。(有点废话了……)

接下来是方法介绍。

1)Cascade RCNN: 该网络是Faster RCNN的顺序重复版本,包含多个重复网络并且是顺序连接起来的。这是第一个目标检测构建块。

  • 对于目标检测,有两个主要问题
    (1)针对IoU分数q的某一交集优化的检测网络在测试集中可能表现不佳。原因是该网络仅针对q进行了优化,并且测试样本的IoU分数可能与q显著不同;
    (2)随着样本IoU分数的增加,样本数量严重减少,这使得高质量的检测器 (IoU分数高)容易出现过拟合问题。因为样本数量不够。

为解决这个两个问题,故提出了一种级联网络来增加高IoU分数导致的样本数量不足,以及允许检测器对不同的IoU分数下表现都很好。结构图如下图所示。
在这里插入图片描述

  • 对于边界框预测,单阶段检测器 d d d试图最大限度地减少边界框回归损失,函数定义为 (这部分就是Cascade RCNN的原始定义,H就是smooth L1损失) L ( d ) = ∑ i G ( b i p , b i g t ) L(d)=\sum_{i}^{ }G(b_{i}^{p},b_{i}^{gt}) L(d)=iG(bip,bigt)其中, G ( b i 1 , b i 2 ) = H ( x t l 1 − x t l 2 ) + H ( y t l 1 − y t l 2 ) + H ( x b r 1 − x b r 2 ) + H ( y b r 1 − y b r 2 ) G(b_{i}^{1},b_{i}^{2})=H(x_{tl}^{1}-x_{tl}^{2})+H(y_{tl}^{1}-y_{tl}^{2})+H(x_{br}^{1}-x_{br}^{2})+H(y_{br}^{1}-y_{br}^{2}) G(bi1,bi2)=H(xtl1xtl2)+H(ytl1ytl2)+H(xbr1xbr2)+H(ybr1ybr2) H = { 0.5 x 2 , i f ∣ x ∣ < 1 ∣ x ∣ − 0.5 , o t h e r w i s e H=\left\{\begin{matrix} 0.5x^{2}, & if |x|<1 \\ |x|-0.5, & otherwise \end{matrix}\right. H={0.5x2,x0.5,ifx<1otherwise

上图级联结构中,不是使用单个回归器来生成预测结果(如左图),是使用N个边界框回归器(如右图)来生成最终的边界框预测,函数定义为: b p = d N ∘ d N − 1 ∘ ⋯ ∘ d 1 ( x , b g t ) b^{p}=d_{N}\circ d_{N-1}\circ \cdots \circ d_{1}(x,b^{gt}) bp=dNdN1d1(x,bgt)其中, x x x是输入图像, ∘ \circ 是一个迭代算子,使得每个回归器使用前一个回归器的输出。这允许网络在不同的IoU输入分数中表现良好,因为每个回归器都以不同的样本质量训练的,并针对不同的IoU分数进行优化。

在Cascade RCNN中,在n阶段的检测器 d n d_{n} dn最小化为: L ( x n , b g t ) = L C ( c n ( x n ) , y n ) + I [ y n ≥ 1 ] L L ( d n ( x n , b n p ) , b g t ) L(x_{n},b^{gt})=L_{C}(c_{n}(x_{n}),y_{n})+I[y_{n}\geq 1]L_{L}(d_{n}(x_{n},b_{n}^{p}),b^{gt}) L(xn,bgt)=LC(cn(xn),yn)+I[yn1]LL(dn(xn,bnp),bgt)其中, c n c_{n} cn表示第 n n n个分类器, b n p = d n − 1 ( x n − 1 , b n − 1 p ) b_{n}^{p}=d_{n-1}(x_{n-1},b_{n-1}^{p}) bnp=dn1(xn1,bn1p) x n x_{n} xn表示第 n n n个阶段的输入, y n y_{n} yn表示第 n n n个阶段的标签, L C ( c n ( x n ) , y n ) L_{C}(c_{n}(x_{n}),y_{n}) LC(cn(xn),yn)表示分类损失: L C ( c n ( x n ) , y n ) = − l o g ( p ( y = y n ∣ x ) ) L_{C}(c_{n}(x_{n}),y_{n})=-log(p(y=y_{n}|x)) LC(cn(xn),yn)=log(p(y=ynx)) L L ( d n ( x n , b n p ) , b g t ) L_{L}(d_{n}(x_{n},b_{n}^{p}),b^{gt}) LL(dn(xn,bnp),bgt)表示回归损失 (交叉熵损失) L L ( d n ( x n , b n p ) , b g t ) = G ( d n ( x n , b n p ) , b g t ) L_{L}(d_{n}(x_{n},b_{n}^{p}),b^{gt})=G(d_{n}(x_{n},b_{n}^{p}),b^{gt}) LL(dn(xn,bnp),bgt)=G(dn(xn,bnp),bgt)

  • 随着级联结构的深入,高IoU评分样本的数量增加,为更高级别的检测器提供了足够的样本,从而防止过拟合的问题。
  • 总结: 通过对初始样本进行重新采样,依次增加样本的IoU分数,得到一个对过拟合具有鲁棒性的网络。此外,由于不同阶段的检测器被优化为不同的IoU分数,训练和测试性能之间的不匹配在更高水平上被消除。

2)CenterNet: 由于CenterNet选取anchor的方式是将目标检测作为一个关键点估计来处理的,因此将其作为第二个构建块

对应这篇论文:Objects as points

  • 在该方法中,首先将关键点的热图预测为 Y p Y^{p} Yp,其中 1 1 1表示关键点预测, 0 0 0表示背景标签。对于真实关键点元组表示为 g t i = ( x i g t , y i g t ) ∈ R 2 gt_{i}=(x_{i}^{gt},y_{i}^{gt})\in R^{2} gti=(xigt,yigt)R2,热图表示为: Y i g t = e − ( x i g t − k x q u a n t i ) 2 − ( y i g t − k y q u a n t i ) 2 2 σ k q u a n t i 2 Y_{i}^{gt}=e^{\frac{-(x_{i}^{gt}-k_{x}^{quant_{i}})^{2}-(y_{i}^{gt}-k_{y}^{quant_{i}})^{2}}{2\sigma _{k^{quant_{i}}}^{2}}} Yigt=e2σkquanti2(xigtkxquanti)2(yigtkyquanti)2其中, k q u a n t i = ⌊ x i g t / R , y i g t / R ⌋ k^{quant_{i}}=\left \lfloor x_{i}^{gt}/R, y_{i}^{gt}/R\right \rfloor kquanti=xigt/R,yigt/R R R R表示为输出步长, σ \sigma σ表示大小自适应的标准差。
  • heatmap:预测关键点的网络通过最小化损失来训练,公式表示为: L h = − 1 K ∑ g t i g [ Y i g t ] ( 1 − Y g t i p ) 2 l o g ( Y g t i p ) + g [ Y i g t ] ( 1 − Y i g t ) 4 ( Y g t i p ) 2 l o g ( 1 − Y g t i p ) L_{h}=\frac{-1}{K}\sum_{gt_{i}}^{ }g[Y_{i}^{gt}](1-Y_{gt_{i}}^{p})^{2}log(Y_{gt_{i}}^{p})+g[Y_{i}^{gt}](1-Y_{i}^{gt})^{4}(Y_{gt_{i}}^{p})^{2}log(1-Y_{gt_{i}}^{p}) Lh=K1gtig[Yigt](1Ygtip)2log(Ygtip)+g[Yigt](1Yigt)4(Ygtip)2log(1Ygtip)其中,若x=1时, g ( x ) = x g(x)=x g(x)=x,否则 g ( x ) = 1 − x g(x)=1-x g(x)=1x。K表示关键点的数量。
  • offset:预测每个点的偏移量,以便通过最小化从离散化中恢复误差。 L o = 1 K ∑ g t i ∣ O k q u a n t i + k q u a n t i − g t i / R ∣ L_{o}=\frac{1}{K}\sum_{gt_{i}}^{ }|O_{k^{quant_{i}}}+k^{quant_{i}}-gt_{i}/R| Lo=K1gtiOkquanti+kquantigti/R
  • size:目标损失。对于每个目标,关键点被用作目标的中心点,其边界框表示为 ( x l t , y l t , x b r , y b r ) (x_{lt},y_{lt},x_{br},y_{br}) (xlt,ylt,xbr,ybr)。对于每个目标类别 c c c,宽和高预测向量为 v c p = ( w c p , h c p ) v_{c}^{p}=(w_{c}^{p},h_{c}^{p}) vcp=(wcp,hcp),通过最小化来预测第 i i i类目标的真实高度和宽度 ( v g t c ) i = ( x l t i − x b r i , y l t i − y b r i ) (v^{g}t_{c})_{i}=(x_{lt}^{i}-x_{br}^{i},y_{lt}^{i}-y_{br}^{i}) (vgtc)i=(xltixbri,yltiybri),损失函数定义为: L v = 1 n ∑ i ∣ v c p − ( v g t c ) i ∣ L_{v}=\frac{1}{n}\sum_{i}^{}|v_{c}^{p}-(v^{g}t_{c})_{i}| Lv=n1ivcp(vgtc)i
  • 总损失表示为: L = L v + L o + L h L = L_{v}+L_{o}+L_{h} L=Lv+Lo+Lh
  • 对于边界框预测,检测到的局部最大关键点被用作每个类的中心点,且一个边界框表示为 ( x l t i + o i − w i / 2 , y l t i + q i − h i / 2 , x b r i + o i + w i / 2 , y b r i + q i + h i / 2 ) (x_{lt}^{i}+o^{i}-w^{i}/2,y_{lt}^{i}+q^{i}-h^{i}/2,x_{br}^{i}+o^{i}+w^{i}/2, y_{br}^{i}+q^{i}+h^{i}/2) (xlti+oiwi/2,ylti+qihi/2,xbri+oi+wi/2,ybri+qi+hi/2),其中 ( o , q ) (o,q) (o,q)表示偏移预测结果, ( w , h ) (w,h) (w,h)表示尺度预测结果。

论文精读链接

3)加权bounding box融合: 该部分是没有使用NMS删除一些边界框,而是利用所有的预测来聚成边界框集群。

  • 首先,将所有的预测框存储在 C C C中。
  • C i C_{i} Ci包含标签为 i i i的匹配框。迭代地,将每个带有 j j j标签的预测边界框与 F j F_{j} Fj进行比较( F j F_{j} Fj是边界框 C j C_{j} Cj的融合框),用五元组表示 ( s , x l t , y l t , x b r , y b r ) (s,x_{lt},y_{lt},x_{br},y_{br}) (s,xlt,ylt,xbr,ybr) s s s为置信度分数。
  • 当一个预测框 b b b F j F_{j} Fj匹配上,然后添加到 C j C_{j} Cj中,融合框 F j F_{j} Fj的置信度可重新计算为: F j ( s ) = ∑ A k ∈ C j A k ( s ) N F_{j}(s)=\frac{\sum_{A_{k}\in C_{j}}^{}A_{k}(s)}{N} Fj(s)=NAkCjAk(s)N为所有 C j C_{j} Cj框的数量, A k A_{k} Ak表示边界框的样本,因此更新后的融合框为 F j ( x 1 ) = ∑ A k ∈ C j A k ( s ) A k ( x t l ) s 1 + s 2 + ⋯ + s N F_{j}(x_{1})=\frac{\sum_{A_{k}\in C_{j}}^{ }A_{k}(s)A_{k}(x_{tl})}{s_{1}+s_{2}+\cdots +s_{N}} Fj(x1)=s1+s2++sNAkCjAk(s)Ak(xtl)
    F j ( x 2 ) = ∑ A k ∈ C j A k ( s ) A k ( x b r ) s 1 + s 2 + ⋯ + s N F_{j}(x_{2})=\frac{\sum_{A_{k}\in C_{j}}^{ }A_{k}(s)A_{k}(x_{br})}{s_{1}+s_{2}+\cdots +s_{N}} Fj(x2)=s1+s2++sNAkCjAk(s)Ak(xbr)
    F j ( y 1 ) = ∑ A k ∈ C j A k ( s ) A k ( y t l ) s 1 + s 2 + ⋯ + s N F_{j}(y_{1})=\frac{\sum_{A_{k}\in C_{j}}^{ }A_{k}(s)A_{k}(y_{tl})}{s_{1}+s_{2}+\cdots +s_{N}} Fj(y1)=s1+s2++sNAkCjAk(s)Ak(ytl)
    F j ( y 2 ) = ∑ A k ∈ C j A k ( s ) A k ( y b r ) s 1 + s 2 + ⋯ + s N F_{j}(y_{2})=\frac{\sum_{A_{k}\in C_{j}}^{ }A_{k}(s)A_{k}(y_{br})}{s_{1}+s_{2}+\cdots +s_{N}} Fj(y2)=s1+s2++sNAkCjAk(s)Ak(ybr)其中, s k = A k ( s ) s_{k}=A_{k}(s) sk=Ak(s) A k A_{k} Ak的置信度分数。
  • 正如上述方程所表明的,每个边界框的置信度分数被用作权重,以便为每个类别获得有意义的最终边界框。 在将所有预测框依次与簇进行比较后,将框的置信度分数重新标度。

这部分可参考论文:

  1. Soft-nms–improving object detection with one line of code
  2. Cad: Scale invariant framework for real-time object detection

2.2. SyNet

  • 本文提出了一种利用Cascade RCNN(多阶段)和CenterNet(单阶段)的集成方法来进行航拍目标检测
  • 主要动机是多阶段检测器可能会产生更多的假阳性(即检测不出一些目标的存在),而单阶段检测器则是检测出来的预测框效果不佳(可能是回归框不准确)。因此,作者想要将两种网络结合起来,利用其优势来填补对方的不足。
  • 具体的网络结构如下图所示。
  • 标注说明:Image是输入图像;FPN是初始特征的特征金字塔结构;R是由FPN生成的候选区域;F是特征提取器 (CRCNN使用的是Resnet101,CenterNet使用的是DLA作为主干网)RoI Pooling将候选区域变成同等的尺寸;N1~N3表示由卷积层组合而成的网络;CN表示CenterNet网络;L1 ~L4表示标签预测,R1 ~ R4是回归框预测;E是基于加权集成函数。

详见论文Weighted Boxes Fusion: ensembling boxes for object detection models
流程详见链接https://blog.csdn.net/qq_41131535/article/details/106898081
在这里插入图片描述

  • 流程大概是同一批图片分别输入到两个网络中进行目标检测,得到了两个网络预测出来的目标候选框,然后使用一种集成加权的方法获得最终的预测结果。
    在这里插入图片描述

2.3 Image Augmentation

数据增强方法主要参考这篇论文:Cut, paste and learn: Surprisingly easy synthesis for instance detection (类似解读)
在这里插入图片描述

  • 主要是对所使用的数据集产生real-like的目标,从而提高目标检测器的检测效果。在这里插入图片描述
  • 如上图,Visdrone数据集中的 “car” 被用作目标实例,这是一种收集场景图像的过程。
  • 将收集的目标图像作为预测掩码,如果可用的话,将它们转换成二进制图像。最后把掩码和目标的卷积放置在随机场景图像中进行图像增强。 本文是对于每个数据集,做成两个增强图像,其中包含了超过10个且少于30个粘贴的附加目标,用以提升训练性能。

3. Experiments

3.1 Dataset

  • Visdrone:训练集 6471张,测试集1580张。没有使用截断和遮挡来进行数据增强。
  • MS-COCO:训练集118000张,测试集5000张。

3.2 Results

  • Visdrone结果:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • MS-COCO:
    在这里插入图片描述

4. Conclusion

  1. 提出了一种联合多阶段和单阶段的目标检测方法(如,Cascade RCNN和CenterNet)。
  2. 数据增强,使用了裁剪-粘贴的方法,促进了提特征网络的检测效果。
  3. 提出一种加权融合函数
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值