**论文地址:http://openaccess.thecvf.com/content_cvpr_2018/papers/Li_High_Performance_Visual_CVPR_2018_paper.pdf
论文讲解:

siamRPN的网络结构由两部分组成,siam+RPN
Siam部分:主要功能是提取特征

RPN部分:功能为产生候选框以及二分类vector

RPN流程:
①从主干网络得到template Frame 特征向量和detection Frame特征向量之后,对这两组特征向量分别使用3*3的卷积核卷积两次,一次用来计算回归框[t_r_k,d_r],一次用来预测类别[t_c_k,d_c];
② 分别对这两任务分支求相关,得到分别的回归候选框相关向量reg和二分类相关向量cls。
回归候选框流程:
①在x,y两个轴方向,以16为步长遍历detection Frame,得到289个anchor,为了解决自动调节目标框大小的问题,将每个anchor配备5个尺度{0.33,0.5,1,2,3},最终得到1445个anchor;
②用步骤①得到的1445个anchor与标准框作IOU处理,取前16个IOU最大的anchor作为正样本,后48个作负样本,于是得到64个回归框偏移{dx,dy,dw,dh}label以及对应二分类{0,1}label;
③上图中的reg节点,为网络回归框的输出,reg一行的通道数为4k的意思为每个anchor有4个需要归回的坐标偏移参数(dx,dy,dw,dh),每个anchor有5个尺度,最终的output size为[17,17,20];
④将reg的输出reshape处理,得到尺寸为[1445,4]的vector “per_box”;

pre_box=tf.reshape(pre_box,(-1,4))

⑤计算正样本与预处理框per_box之间的距离,负样本和无效样本与预处理框per_box之间的距离均置零;

inside=tf.multiply(target_inside_weight,tf.subtract(pre_box, target_box))

⑥将大于1的距离均置为1,保留小于1的距离

mask=tf.cast(tf.less(tf.abs(inside),1),tf.float32)

⑦0.5x^2

option1=tf.multiply(tf.multiply(inside,inside),0.5)

⑧|x|-0.5

option2=tf.subtract(tf.abs(inside),0.5)

⑨使用smooth_l1作回归框的损失函数
相当于在小于1的部分使用2范数(更smooth,且求导方便),在大于1的部分使用1范数(避免梯度,然后加起来最后求均值。

smooth_l1=tf.multiply(tf.add(tf.multiply(option1,mask),tf.multiply(option2,tf.subtract(1.,mask))),target_outside_weight)

(1)二分类流程:
①去掉label为-1的无效标签,只保留标签为0和1的那64个有效标签组成预测标签
②使用交叉熵函数作为分类损失函数。

cls_loss = tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits(logits=pre_score_valid, labels=label_valid))

复现:使用VOT2013训练模型
(一):下载工程
https://github.com/makalo/Siamese-RPN-tensorflow
(二)准备数据
①新建date文件到工程根目录
将vot2013下载加压后,将整个VOT2013目录放到date里(VOT2016数据集形式跟VOT2013不同,使用时,需要转化成VOT2013形式,否则跑不起来)
(三)修改数据集路径

(四)训练
run train.py
训练自己的数据集时,只需要将数据集形式制作成VOT2013形式即可。
(五)跟踪过程
inference 阶段

第一帧:
与训练template frame数据处理过程一样,在目标附近截取一块,然后resize到127* 127大小。送到训练好的模型中,保存Weight for Regression 与Weight for Classification。后不更新。
待跟踪帧:
以前一帧位置为中心,截取一个比较大的区域,然后resize到255* 255大小。送到训练好的模型中,到Classification Branch时,使用第一帧保留的Weight for Classification去卷积待跟踪帧提取的相应特征,得到17 * 17 * 10的分类vector输出;并行的,此处还有一个Regression Branch,使用第一帧保留的Weight for Regression去卷积待跟踪帧提取的相应特征,得到17* 17* 20的回归vector输出;用公式表示为:

网络输出17* 17* 5=1445个偏移,这个阶段最后的输出也将是1445的回归框
②Proposal selection(论文中给出了两种Proposal selection,源码中只采用了第二种,我就只关注了第二种:cosine window and scale change penalty)
cosine window是为了抑制较大位移;scale change penalty是为了抑制目标尺寸有较大的变化;
(一)先进行scale penalty

将得到的惩罚因子与网络Classification Branch的output相乘,得到惩罚后的得分预测psore;
(二)然后使用汉宁窗对上一步得到的分数预测psore进行加权余弦窗处理

使用nms得到最后的跟踪框,然后更新这帧的跟踪框作为下一帧需要跟踪帧的初始框。

siamRPN论文理解与复现相关推荐

  1. InfoGAN论文理解及复现

    InfoGAN论文理解及复现 by AHU Random_Walker 主要从四个方面来了解相关工作,即 Motivation Related Work-Method Experiments Conc ...

  2. 非真实感渲染(NPR)论文理解及其复现(Unity) - 《Stylized Highlights for Cartoon Rendering and Animation》

    Stylized Highlights for Cartoon Rendering and Animation 该论文的目的主要是用来渲染卡通风格的高光.复现参考自[NPR]非真实感渲染实验室 符号: ...

  3. 导师:顶会论文3天都复现不出来?你退学吧!

    (文末招聘论文讲师) 说起国内的AI算法大赛平台,你首先会想到哪一个? 我猜你第一反应会是:阿里云天池--国内第一人工智能竞赛平台. 天池的比赛打的多了,但天池的论文复现课程你体验过吗?11月23日, ...

  4. SiamRPN论文学习笔记(上)

    SiamRPN论文学习笔记(上) 引言 SiamRPN的网络结构 孪生子网络部分 区域候选子网络部分 RPN的诞生 区域候选子网络 训练阶段 两阶段训练 anchors尺寸设置 分类分支中anchor ...

  5. MobileNetV3 论文理解,以及tensorflow、pytorch相关代码

    MobileNetV3论文理解,以及tensorflow+pytorch代码 MobileNetV3相关 论文地址 Block结构变化 算法内部微结构变化 网络整体结构 网络性能 Tensorflow ...

  6. A Learned Representation for Artistic Style论文理解

    A Learned Representation for Artistic Style论文理解 这篇论文是在Perceptual losses for real-time style transfer ...

  7. 图卷积网络进行骨骼识别代码_【骨骼行为识别】2s-AGCN论文理解

    Two-Stream Adaptive Graph Convolutional Networks for Skeleton-Based Action Recognition 论文链接: https:/ ...

  8. PacificA: Replication in Log-Based Distributed Storage Systems 论文理解

    PacificA: Replication in Log-Based Distributed Storage Systems 论文理解 思考:论文有个结论说,相比 GFS 具有中心化的实体,Pacif ...

  9. [计算机视觉] AprilTag 2: Efficient and robust fiducial detection(2016)论文理解

    论文地址 chrome-extension://cdonnmffkdaoajfknoeeecmchibpmkmg/assets/pdf/web/viewer.html?file=https%3A%2F ...

  10. [计算机视觉] AprilTag: A robust and flexible visual fiducial system(2011)论文理解

    论文地址 chrome-extension://cdonnmffkdaoajfknoeeecmchibpmkmg/assets/pdf/web/viewer.html?file=https%3A%2F ...

最新文章

  1. 深度学习与芯片之间的羁绊往事
  2. 中国IT运维O2O市场产值规模预测及发展策略建议报告2022年
  3. Servlet线程安全2
  4. mysql8.0.18用什么jdk_基础命令、cake-install、mysql远程登录、JDK安装
  5. CentOS 7从Python 2.7升级至Python3.6.1
  6. garch预测 python_安利几个非常实用的 Python 库
  7. SAP Hybris backoffice加载的zul文件和zk文件是什么东西
  8. 数据库:计算地球上两个坐标点之间里程
  9. mockito接口_什么是Mockito Extra接口?
  10. MinGw编译opencv教程
  11. Rasa课程、Rasa培训、Rasa面试系列之: Rasa客户案例T-Mobile电信公司
  12. c语言头文件下载大全,C语言头文件大全
  13. Android Activity 透明主题 使用
  14. Latex 多图片排版--排版代码生成器
  15. Java中常用的String方法解析和使用示例
  16. el-form表单对象内还嵌套对象,绑定的prop规则校验会失效
  17. C++精确到小数点后两位取值
  18. 如何查看电脑是否支持Wi-Fi 6
  19. vps实现私人代码托管并用nginx部署hexo
  20. Logistic 分类器与 softmax分类器

热门文章

  1. A*解决传教士与野人问题
  2. Java反序列化漏洞:在受限环境中从漏洞发现到获取反向Shell
  3. UDP视频聊天室(一)
  4. ubuntu14.04 安装以太网网络卡驱动
  5. 网络适配器、网卡和网卡驱动
  6. 函数声明和函数表达式的区别
  7. IAR for STM8下载、安装、注册
  8. php-screw 安装,php_screw安装,使用
  9. Win32反汇编(一) 初步探索Win32反汇编 与 Ollydbg的简单使用
  10. mysql建表语句转oracle_求大神将该MySQL建表语句改为oracle的,感激不尽。