IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> SiamCAR:Siamese Fully Convolutional Classification and Regression for Visual Tracking -> 正文阅读

[人工智能]SiamCAR:Siamese Fully Convolutional Classification and Regression for Visual Tracking

Abstract

通过将视觉跟踪任务分解为两个子问题(像素类别的分类和该像素处的边界框的回归),本文以逐像素的方式提出了全卷积Siamese网络来解决视觉跟踪问题。

该框架由两个简单的子网络组成:一个用于特征提取,另一个用于边界框预测。

Introduction

视觉目标跟踪的挑战:光照变化、尺度变化、背景杂波、严重遮挡、非刚性对象外观的显著变化…

Siamese网络将视觉追踪任务设定为了一个目标匹配问题,其目的是学习目标模版和搜索区域之间的一般相似性映射。

相关项目的发展流程为:

  1. Siamese网络的策略是搜索区域,进行匹配。这要在多个尺度上进行以应对尺度变化。缺点在于耗时;
  2. SiamRPN给SIamese连上了一个RPN,用于解决多尺度造成的时间浪费。缺点在于需要预先设定锚框,使得模型对锚框的参数比较敏感。

本文提出的SiamCAR则是anchor-free的。

分类分支旨在为每个空间位置预测一个标签,回归分支旨在将每个位置回归一个相对边界框。

Proposed Method

请添加图片描述

Feature Extraction

该子网络由两个分支组成,target branch的输入为template patch Z Z Z;search branch的输入为search region X X X

这两个分支与其主干模型共享相同的CNN结构。两者输出的feature map分别为 φ ( Z ) , φ ( X ) \varphi(Z),\varphi(X) φ(Z),φ(X)

R R R本来是两个输出做互相关之后的结果。但是这一操作只能生成一个单通道的压缩响应图,缺乏有用的特征和用于跟踪的信息。

本文为了获得更多的信息,所以我们使用深度相关层来生成多个语义相似图: R = φ ( X ) ? φ ( Y ) R=\varphi(X)*\varphi(Y) R=φ(X)?φ(Y)

其中 ? * ?表示的是通道与通道间的相关计算。也就是说R的通道数和两个分支的输出的通道数一致。

原文认为低层次特征对定位来说很有帮助,高层次特征对语义属性的识别很有帮助,所以融合高低层次特征是一种很好的选择。因此,本文结合了最后三个块提取的特征进行连接。
φ ( X ) = C a t ( F 3 ( X ) , F 4 ( X ) , F 5 ( X ) ) \varphi(X)=Cat(F_3(X),F_4(X),F_5(X)) φ(X)=Cat(F3?(X),F4?(X),F5?(X))
需要注意的是两个输出都是 3 × 256 3\times256 3×256维度的特征,最后得到R之后通过 1 × 1 1\times 1 1×1卷积进行降维,这样可以显著减少参数数量。

最后得到的feature map R ? R^* R?作为分类回归子网络的输入。

Bounding Box Prediction

R ? R* R?上的每一个 ( i , j ) (i,j) (i,j)可以和search region ( x , y ) (x,y) (x,y)构建起对应关系。可以认为每一个 ( i , j ) (i,j) (i,j)是原图锚框的中点。

本文的模型能够直接分类回归每个位置的目标边界框。其中response map R ω × h × m ? R^*_{\omega\times h\times m} Rω×h×m??,通过两个分支后输出分类特征图 A ω × h × 2 c l s A^{cls}_{\omega\times h\times2} Aω×h×2cls?以及回归特征图 A ω × h × 4 r e g A^{reg}_{\omega\times h\times 4} Aω×h×4reg?

对于分类特征图,二分类结果为前景和后景的分类。对于回归特征图,输出的为 ( l , t , r , b ) (l,t,r,b) (l,t,r,b),表示从相应位置到输入搜索区域中边界框四边的距离。

因为目标和背景的比例不是很大,所以样本不平衡不是一个问题。所以我们简单地采用交叉熵进行分类,IOU损失进行回归。

( x 0 , y 0 ) (x_0,y_0) (x0?,y0?) ( x 1 , y 1 ) (x_1,y_1) (x1?,y1?)为左上角和右下角的点的坐标(GT)。然后让 ( x , y ) (x,y) (x,y) ( i , j ) (i,j) (i,j)在search region上的中心点。

于是,回归的目标就能被计算得到 t ~ ( i , j ) 0 = l ~ = x ? x 0 , t ~ ( i , j ) 1 = t ~ = y ? y 0 \tilde{t}^0_{(i,j)}=\tilde{l}=x-x_0,\tilde{t}^1_{(i,j)}=\tilde{t}=y-y_0 t~(i,j)0?=l~=x?x0?,t~(i,j)1?=t~=y?y0?
t ~ ( i , j ) 2 = r ~ = x 1 ? x , t ~ ( i , j ) 3 = b ~ = y 1 ? y \tilde{t}^2_{(i,j)}=\tilde{r}=x_1-x,\tilde{t}^3_{(i,j)}=\tilde{b}=y_1-y t~(i,j)2?=r~=x1??x,t~(i,j)3?=b~=y1??y

回归损失函数为: L r e g = 1 ∑ I ( t ~ ( i , j ) ) ∑ i , j I ( t ~ ( i , j ) ) L I O U ( A r e g ( i , j , : ) , t ~ ( x , y ) ) L_{reg}=\frac{1}{\sum\mathbb{I}(\tilde{t}_{(i,j)})}\sum_{i,j}\mathbb{I}(\tilde{t}_{(i,j)})L_{IOU}(A^{reg}(i,j,:),\tilde{t}_{(x,y)}) Lreg?=I(t~(i,j)?)1?i,j?I(t~(i,j)?)LIOU?(Areg(i,j,:),t~(x,y)?)
I ( t ~ ( i , j ) ) = { 1 , i f ? t ~ i , j k > 0 , k = 0 , 1 , 2 , 3 0 , o t h e r \mathbb{I}(\tilde{t}_{(i,j)})=\{\begin{aligned}&1,if~\tilde{t}^k_{i,j}\gt0,k=0,1,2,3\\&0,other\end{aligned} I(t~(i,j)?)={?1,if?t~i,jk?>0,k=0,1,2,30,other?

保证算进损失函数的距离都是大于0的。

根据观察,远离目标中心的位置往往会产生低质量的预测边界框(单目标跟踪,离这个目标远的位置的边界预测效果不行),这会降低追踪系统的性能。因此,添加了一个与分类分支并行的centerness branch,以去除异常值。

它返回了一个 A ω × h × 1 c e n A_{\omega\times h\times1}^{cen} Aω×h×1cen?,给出了中心度分数。这个GT得分是这么定义的。 C ( i , j ) = I ( t ~ ( i , j ) ) ? min ? ( l ~ , r ~ ) max ? ( l ~ , r ~ ) × min ? ( t ~ , b ~ ) max ? ( t ~ , b ~ ) C(i,j)=\mathbb{I}(\tilde t_{(i,j)})*\sqrt{\frac{\min(\tilde l,\tilde r)}{\max(\tilde l,\tilde r)}\times\frac{\min(\tilde t,\tilde b)}{\max(\tilde t,\tilde b)}} C(i,j)=I(t~(i,j)?)?max(l~,r~)min(l~,r~)?×max(t~,b~)min(t~,b~)? ?

理想情况下,这个 ( x , y ) (x,y) (x,y)是尽量在bbox中心的,如果说这个点不在中心,我们就认为它不是这个bbox的 ( x , y ) (x,y) (x,y),所以这个得分会比较低。

在这里插入图片描述

值得一提的是,如果这一点被判定为背景点,损失函数中是不需要考虑它的中心度得分的。于是,中心度得分的损失函数有:

请添加图片描述

整体损失函数为:

请添加图片描述

The Tracking Phase

跟踪的目的是预测当前帧中的目标的边界框。对于一个位置 ( i , j ) (i,j) (i,j)会产生一个6维的矢量 T i j = ( c l s , c e n , l , t , r , b ) T_{ij}=(cls,cen,l,t,r,b) Tij?=(cls,cen,l,t,r,b)

在运动过程中,边界框应该是微小变化的,所以我们施加了一个惩罚 p i j p_{ij} pij?

于是,跟踪项可以如下书写 q = arg?max ? i , j { ( 1 ? λ d ) c l s i j × p i j + λ d H i j } q=\argmax_{i,j}\{(1-\lambda_d)cls_{ij}\times p_{ij}+\lambda_dH_{ij}\} q=i,jargmax?{(1?λd?)clsij?×pij?+λd?Hij?}

其中 H H H是cosine window, λ d \lambda_d λd?是平衡权重, q q q是有最高得分的目标像素。

因为模型以逐像素的方式解决了目标跟踪问题,因此每个位置都是相对于一个预先设定的边界框的。在实际跟踪过程中,如果只使用一个边界框作为目标框,它将在相邻帧之间抖动。

本文观察到,q周围的像素最有可能是目标像素。所以说,它找了从n个邻居中找了得分最高的k个(根据 c l s i j × p i j cls_{ij}\times p_{ij} clsij?×pij?),最终的预测是这k个回归框的加权平均。

值得关注的几个问题

Q1:输入的图片大小不一?

代码中,会将其resize为255255大小的图像。同时模板大小为127127

Q2:在两者做相关性之前,如何得到特征图?

先后经历了backbone和neck两部分。

backbone通常选择为ResNet50,给出了后三层的feature map。

neck为AdjustAllLayer,通过 1 × 1 1\times1 1×1将这三层调整为256通道。

Q3:两者的相关性计算是如何实现的?

请添加图片描述
采用了xorr_depthwise函数,实际上为:target的每一个通道在x的每一个通道上做一个卷积。

然后用 1 × 1 1\times 1 1×1卷积降维。

Q4: R*送入的网络是什么样的?

就是Conv+GroupNorm+ReLU的结构,最后用Conv进行分类。其中centerness和cls共享模型
请添加图片描述

Q5:映射关系?

输入图像被resize为255*255,stride为8,输出shape为25*25。最后对应的坐标从 ( 0 + 32 , 0 + 32 ) → ( 200 + 32 , 200 + 32 ) (0+32,0+32)\to(200+32,200+32) (0+32,0+32)(200+32,200+32)
请添加图片描述

Q6:惩罚项?

这个惩罚项是从另一篇论文中提出的,在那篇文章中,目的是为了使一次性检测框架适用于跟踪任务,所以需要提出一种策略来选择候选框。

使用余弦窗口和尺度变化惩罚对候选进行排序。 p e n a l t y = e k × m a x ( r r ′ , r ′ r ) × m a x ( s s ′ , s ′ s ) penalty=e^{k\times max(\frac{r}{r'},\frac{r'}{r})\times max(\frac{s}{s'},\frac{s'}{s})} penalty=ek×max(rr?,rr?)×max(ss?,ss?)
其中 k k k是超参数, r r r代表着候选框高度和宽度的比例, r ′ r' r代表最后一帧的比例。 s , s ′ s,s' s,s分别代表着候选框和最后一帧的规模,此处的规模如下定义 ( w + p ) × ( h + p ) = s 2 (w+p)\times(h+p)=s^2 (w+p)×(h+p)=s2
p = w + h 2 p=\frac{w+h}{2} p=2w+h?,是padding。

然后与分类结果相乘就能得到排序的依据。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-05-21 18:58:09  更:2022-05-21 19:00:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 5:24:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码