SiamFC用于目标跟踪的全卷积孪生网络 fully-convolutional siame

SiamFC:用于目标跟踪的全卷积孪生网络 fully-convolutional siamese networks for object tracking

SiamFC网络

图中z代表的是模板图像,算法中使用的是第一帧的ground truth;x代表的是search region,代表在后面的待跟踪帧中的候选框搜索区域;?代表的是一种特征映射操作,将原始图像映射到特定的特征空间,文中采用的是CNN中的卷积层和pooling层;6×6×128代表z经过?后得到的特征,是一个128通道6×6大小feature,同理,22×22×128是x经过?后的特征;后面的×代表卷积操作,让22×22×128的feature被6×6×128的卷积核卷积,得到一个17×17的score map,代表着搜索区域中各个位置与模板相似度值。

算法本身是比较搜索区域与目标模板的相似度,最后得到搜索去区域的score map。其实从原理上来说,这种方法和相关性滤波的方法很相似。其在搜索区域中逐点的目标模板进行匹配,将这种逐点平移匹配计算相似度的方法看成是一种卷积,然后在卷积结果中找到相似度值最大的点,作为新的目标的中心。

上图所画的?其实是CNN中的一部分,并且两个?的网络结构是一样的,这是一种典型的孪生神经网络,并且在整个模型中只有conv层和pooling层,因此这也是一种典型的全卷积(fully-convolutional)神经网络。

在训练模型的时肯定需要损失函数,并通过最小化损失函数来获取最优模型。本文算法为了构造有效的损失函数,对搜索区域的位置点进行了正负样本的区分,即目标一定范围内的点作为正样本,这个范围外的点作为负样本,例如图1中最右侧生成的score map中,红色点即正样本,蓝色点为负样本,他们都对应于search region中的红色矩形区域和蓝色矩形区域。文章采用的是logistic loss,具体的损失函数形式如下:

对于score map中了每个点的损失:

其中v是score map中每个点真实值,y∈{+1,?1}是这个点所对应的标签。

上面的是score map中每个点的loss值,而对于score map整体的loss,则采用的是全部点的loss的均值。即:

这里的u∈D代表score map中的位置。

整个网络结构类似与AlexNet,但是没有最后的全连接层,只有前面的卷积层和pooling层。

整个网络结构入上表,其中pooling层采用的是max-pooling,每个卷积层后面都有一个ReLU非线性激活层,但是第五层没有。另外,在训练的时候,每个ReLU层前都使用了batch normalization(批规范化是深度学习中经常见到的一种训练方法,指在采用梯度下降法训练DNN时,对网络层中每个mini-batch的数据进行归一化,使其均值变为0,方差变为1,其主要作用是缓解DNN训练中的梯度消失/爆炸现象,加快模型的训练速度),用于降低过拟合的风险。

AlexNet:

AlexNet为8层结构,其中前5层为卷积层,后面3层为全连接层;学习参数有6千万个,神经元有650,000个。AlexNet在两个GPU上运行;AlexNet在第2,4,5层均是前一层自己GPU内连接,第3层是与前面两层全连接,全连接是2个GPU全连接;

RPN层第1,2个卷积层后;Max pooling层在RPN层以及第5个卷积层后。ReLU在每个卷积层以及全连接层后。

卷积核大小数量:

conv1:96 11×11×3(个数/长/宽/深度)

conv2:256 5×5×48

conv3:384 3×3×256

conv4: 384 3×3×192

conv5: 256 3×3×192

ReLU、双GPU运算:提高训练速度。(应用于所有卷积层和全连接层)

重叠pool池化层:提高精度,不容易产生过度拟合。(应用在第一层,第二层,第五层后面)

局部响应归一化层(LRN):提高精度。(应用在第一层和第二层后面)

Dropout:减少过度拟合。(应用在前两个全连接层)

微调(fine-tune)

看到别人一个很好的模型,虽然针对的具体问题不一样,但是也想试试看,看能不能得到很好的效果,而且自己的数据也不多,怎么办?没关系,把别人现成的训练好了的模型拿过来,换成自己的数据,调整一下参数,在训练一遍,这就是微调(fine-tune)。

冻结预训练模型的部分卷积层(通常是靠近输入的多数卷积层),训练剩下的卷积层(通常是靠近输出的部分卷积层)和全连接层。从某意义上来说,微调应该是迁移学习中的一部分。

感知机:PLA

多层感知机是由感知机推广而来,感知机学习算法(PLA: Perceptron Learning Algorithm)用神经元的结构进行描述的话就是一个单独的。

感知机的神经网络表示如下:

多层感知机:MLP

多层感知机的一个重要特点就是多层,我们将第一层称之为输入层,最后一层称之有输出层,中间的层称之为隐层。MLP并没有规定隐层的数量,因此可以根据各自的需求选择合适的隐层层数。且对于输出层神经元的个数也没有限制。

MLP神经网络结构模型如下,本文中只涉及了一个隐层,输入只有三个变量[x1,x2,x3]和一个偏置量b,输出层有三个神经元。相比于感知机算法中的神经元模型对其进行了集成。

ReLU函数:

sigmod函数:

SiamFC用于目标跟踪的全卷积孪生网络 fully-convolutional siame相关教程

siamfc代码解读_SiamFC用于目标跟踪的全卷积孪生网络 fully-convolutional siame相关推荐

  1. 【CV】SiamFC:用于目标跟踪的全卷积孪生网络

    论文名称:Fully-Convolutional Siamese Networks for Object Tracking 论文下载:https://arxiv.org/abs/1605.07648 ...

  2. SiamFC:用于目标跟踪的全卷积孪生网络 fully-convolutional siamese networks for object tracking

    原文链接 SiamFC网络 图中z代表的是模板图像,算法中使用的是第一帧的ground truth:x代表的是search region,代表在后面的待跟踪帧中的候选框搜索区域:ϕ代表的是一种特征映射 ...

  3. 【目标跟踪 SOT】SiamFC -用于对象跟踪的全卷积孪生网络

    SiamFC - 全卷积孪生网络 $背景知识 SOT(单目标跟踪)和MOT(多目标跟踪)的思想是,在视频中的某一帧中框出你需要跟踪目标的bounding box,在后续的视频帧中,无需你再检测出物体的 ...

  4. SiamNet: 全卷积孪生网络用于视频跟踪

    参考论文:Fully-Convolutional Siamese Networks for Object Tracking 算法主页:http://www.robots.ox.ac.uk/~luca/ ...

  5. Fully-Convolutional Siamese Networks for Object Tracking基于全卷积孪生网络的目标跟踪算法SiameseFC

    1.论文相关 Bertinetto, Luca, et al. "Fully-convolutional siamese networks for object tracking." ...

  6. SiamFC:利用全卷积孪生网络进行视频跟踪

    目录

  7. CVPR2020:点云三维目标跟踪的点对盒网络(P2B)

    CVPR2020:点云三维目标跟踪的点对盒网络(P2B) P2B: Point-to-Box Network for 3D Object Tracking in Point Clouds 代码:htt ...

  8. 目标跟踪算法五:MDNet: Learning Multi-Domain Convolutional Neural Networks for Visual Tracking

    目标跟踪算法五:MDNet: Learning Multi-Domain Convolutional Neural Networks for Visual Tracking 原文:https://zh ...

  9. maskrcnn用于目标检测_用于目标检测的池化渐进网络(Pooling Pyramid Network)

    用于目标检测的池化渐进网络(Pooling Pyramid Network) 题目: Pooling Pyramid Network for Object Detection 作者: Pengchon ...

  10. CV Code | 本周新出计算机视觉开源代码汇总(含目标跟踪、语义分割、姿态跟踪、少样本学习等)...

    点击我爱计算机视觉标星,更快获取CVML新技术 刚刚过去的一周出现了很多很实用.有意思.很神奇的CV代码. 比如大家期待的SiamRPN++算法,官方终于要开源了. 阿里MNN成为移动端网络部署的新选 ...

最新文章

  1. 镁光ssd管理工具 linux,在 SSD 上使用 Btrfs 文件系统的相关优化
  2. python 实时显示声音
  3. 一个成功敏捷团队的失败历程
  4. 我不看好data2vec这类多模态融合的研究
  5. python import无法导入该脚本的父目录下的另一个子目录的模块
  6. Mac如何修改文件默认打开方式?
  7. Java导出导入Excel方法
  8. Kali-DDoS工具集合
  9. SpringBoot exclude的使用
  10. ESP32 LVGL8.1 ——event 事件 (event 17)
  11. ubuntu中U盘硬盘格式化(NTFS,FAT12,FAT16,FAT32,EXT4,EXT3,EXT2)
  12. arduino(19 ):使用ESP32连接 PS3 蓝牙手柄,需要在windows 上先连接成功,然后在修改mac地址,才可以连接成功,但是目前正在测试中,需要在windows上配对成功。
  13. html中图片不溢出,防止图片过大超出DIV的CSS样式
  14. 关于栈迁移的那些事儿
  15. flutter 保存分享海报、画报
  16. Xcode7 Cocoapods 插件用法
  17. redis 端口号为什么是 6379
  18. 破解山西网通、电信的禁止路由共享(网络尖兵类软件)转载
  19. UI 设计标准规范 个人总结
  20. php- osc,PHP_OS的常见值 - osc_2ltf3y0p的个人空间 - OSCHINA - 中文开源技术交流社区

热门文章

  1. python按键精灵是哪个库_按键精灵命令库的介绍和使用
  2. win7+nfs文件服务器,win7如何挂载nfs服务器
  3. ps之选区抠图,发丝
  4. Java算法面试题(009) 毒酒问题
  5. 微信小程序编辑与显示列表信息
  6. win8 计算机服务,Win8.1系统下哪些服务可以关闭
  7. 移动边缘计算——MEC
  8. 局域网在线计算机扫描仪,局域网内也共享扫描仪
  9. 计算机质保试题及答案,质量体系、国军标体系试卷(质保部出)
  10. Windows下kafka的下载安装