视频追踪问题中,目标通常是连续可微的。

SiamFC利用全卷积孪生网络结构对搜索域和样本图像进行相似度匹配,实现追踪目标。

本文分析了SiamFC在vot2015数据集上的追踪结果,总结出以下问题,并提出针对性的改进方案。

表现鲁棒小范围晃动

运动模糊

短时局部遮挡

重点问题

光照变化

视频中白色猫由亮处转入阴影中,跟踪结果开始出现偏差。

光照条件较差,而且目标的衣服为黑色,与背景相似。特征不够明显。

形变、尺度变换

本视频中镜头由远突然拉近,原本跟踪的是歌手的面部,却无法及时适应尺度的变化。

复杂背景

当首帧标定框内目标外的背景信息较复杂时,也易对追踪造成干扰。

本视频中,在首帧进行标定时,框内除恐龙模型外背景信息也较为复杂,而且颜色与目标相近。

本视频中,目标剧烈旋转运动,而且背景信息也非常复杂,对追踪干扰较大。

相似物

一般是背景中存在与目标颜色、外观相似的干扰物。

当一幅图中出现多个相似目标,搜索域中也可能会混入干扰目标。

目标与干扰物相交而过。

快速移动、大面积遮挡

当目标突然加速运动或被遮挡,逃离了模型的搜索区域。跟丢目标后,未能重新识别上。

小女孩突然加速,且此时相机对焦出现模糊,干扰了追踪结果。

其他(网络结构)

对模型最后的responseMap进行分析:

左侧为响应图,右侧为对应scale的search image。图片名字中的数字代表第几帧。

可以看到不只小女孩会有响应,其他人出现的时候也会产生响应。但是背景却没有响应,说明卷积网络的objective能力很好,但是对于类内的物体区别能力很差。所以很容易被其他目标干扰。

怀疑可能是由于采用的网络为专门为分类任务设计的Alexnet,导致类内区分度不够。

王乃岩博士也在VALSE公众号的文章《Object Tracking新思路》中提到

个人觉得现在这两篇文章预训练的网络仍然来自VGG网络,但是前面提到了classification和verification是性质完全不同的两类问题,直接使用基于classification预训练的网络可能不是最优的。如果通过verification方法在大规模数据集上训练出的网络在SOT中会不会有更好的表现呢?我很期待看到这样的结果

也有可能是相似度度量方式的问题。

SiamFC采用cross correlation的方式卷积计算两个feature map的相似度。

白色物体似乎响应更强烈???

尝试改为余弦相似度。

总结及解决思路

视频追踪中出现的问题往往是多方面干扰因素造成的,因此上面只是取一些代表性的干扰因素予以图示。

综合考虑,能够导致SiamFC模型failure的根本原因大致如下:

目标特征不够具体、突出、全面

没能利用好空间信息、运动信息

搜索域方法的局限性

classification和verification的本质差别

etc.

解决思路

1、必须加入在线更新的策略

一些方法为了提升速度而选择放弃在线更新,极大地浪费了视频序列中的目标信息。

但是在线更新必须要面临两个问题,一个是如何更新,会影响速度和效果;还有一个是更新带来的模型漂移,即目标信息误差的累积。

看到一个思路《Visual Tracking by Reinforced Decision Making》,建立一个样本池,并训练一个决策模型,选择最合适的template。

2、需要对首帧标注图像做处理

首帧标注是唯一的绝对可信的目标信息。而SiamFC模型中,采用的是矩形examplar image与搜索域search region进行互相关计算,如果不能降低examplar图像中背景信息的干扰,则必然会对结果造成影响。

因此应当对标注图像进行进一步的目标提取,并对背景信息进行抑制。

尝试1:

直接对首帧图像进行处理,目标外的背景涂成白色。

dinosaur序列没有明显效果提升。一如既往没有跟到目标。

bag序列修改后,spr=0.5661,修改前,spr=0.6061。居然变差了一点点。。有些尴尬。

尝试2:

分析可能是白色背景的问题,改成黑色试试。

改成黑色背景,dinosaur序列的spr虽然没有改善,但是观察结果有增强。

bag序列提升很明显,spr从0.6061提升到0.7452。

但是对gym3序列进行实验时效果反而很差。改为白色背景则又有所提升。分析是由于其背景主色偏黑所致。

说明需要增强的是目标和背景的对比度。

尝试3:

使用FCN进行图像分割:

直接将fcn的输出作为mask,乘以z_crop。分割效果不佳,目标偏小,反而降低了spr。

明天尝试对分割结果进行腐蚀操作。

腐蚀后即使分割效果很好,但是追踪结果却非常差。

分割后模型产生的responseMap如下(与上面对应):

分割后,目标的响应变小,精度更高,但是也导致抗干扰能力下降。

SPR值不升反降。这种思路可能有问题。。。暂时放弃。

分析

分割后效果不佳,说明模板图像中的背景信息作为上下文,对于追踪本身也是很重要的。可是对基于相似性学习的SiamFC来说,为什么目标以外的背景信息也会这么重要呢?

3、利用空间信息,估计运动模型

在存在较多相似目标的场景中,可能特征匹配难以准确地判断哪个才是真正的目标。而人在这种场景下追踪目标的策略往往是根据

1、目标的空间信息,例如一队人中的第几个,或者目标周围有哪些参照物。这一点可以通过对目标旁边的背景进行建模实现。

2、根据目标的运动轨迹进行预测,因为目标的变化(无论是位置还是外观)在序列中往往是连续可微的。

(上课去。。回来继续补充)

siamfc代码解读_SiamFC算法改进思路相关推荐

  1. leach算法改进思路

    Leach算法是一种用于无线传感器网络中的分簇协议,它使用轮流担任簇首的方法来平衡网络中每个节点所承担的负载.尽管Leach算法在传感器网络中表现出良好的性能,但它仍然可以通过以下几种方式进行改进: ...

  2. 十大经典排序算法(附代码、动画及改进方案)

    前言说明 十大排序算法可以说是每个程序员最早接触的也是最重要的算法,这一块必须要非常熟练的掌握,应该要理解每种排序的思想,对各个排序的性能的了解也是基础且重要的.为了方便自己和大家学习,决定整合成一篇 ...

  3. SiamFC代码大乱炖 (pytorch)

    写前bb 最早是看了matlab的代码,搭了环境,demo也跑了,就再也没碰过了.之后想自己把测试和训练部分全部跑通,找了个用pytorch写的代码,看的过程中发现自己还是很多细节部分不是很清楚.虽然 ...

  4. 中文关键词提取tfidf算法改进bsaeline

    关键词 关键词是表达文档主题意义的最小单位.关键词自动抽取技术则是一种识别有意义且具有代表性片段或词汇(即关键词) 的自动化技术.关键词自动抽取在文本挖掘领域被称为关键词抽取 (Keyword Ext ...

  5. 「AI科技」机器学习算法之K-means算法原理及缺点改进思路

    https://www.toutiao.com/a6641916717624721933/ 2019-01-03 08:00:00 K-means算法是使用得最为广泛的一个算法,本文将介绍K-mean ...

  6. 【路径规划】A*算法方法改进思路简析

    A*算法方法改进思路简析 0. 前言 1. A*算法的总体流程 2. A*算法的改进 2.1 启发函数的选择与优化 2.1.1 预估函数的选择 2.1.2 为启发函数增加权重系数 2.1.3 节点比较 ...

  7. 《大厂算法面试题目与答案汇总,剑指offer等常考算法题思路,python代码》V1.0版...

    为了进入大厂,我想很多人都会去牛客.知乎.CSDN等平台去查看面经,了解各个大厂在问技术问题的时候都会问些什么样的问题. 在看了几十上百篇面经之后,我将算法工程师的各种类型最常问到的问题都整理了出来, ...

  8. ML之Clustering之LPA:LPA算法主要思路、输出结果、代码实现等相关配图之详细攻略

    ML之Clustering之LPA:LPA算法主要思路.输出结果.代码实现等相关配图之详细攻略 目录 LPA算法的主要思路 LPA算法的输出结果 LPA算法的代码实现 LPA算法的主要思路 更新-- ...

  9. IGWO-SVM:改良的灰狼优化算法改进支持向量机。 采用三种改进思路:两种Logistic和Tent混沌映射和采用DIH策略

    IGWO-SVM:改良的灰狼优化算法改进支持向量机. 采用三种改进思路:两种Logistic和Tent混沌映射和采用DIH策略. 采用基于DIH维度学习的狩猎搜索策略为每只狼构建邻域,增强局部和全局搜 ...

  10. 基于麻雀算法改进的无线传感器网络Dv-hop定位算法 - 附代码

    基于麻雀算法改进的无线传感器网络Dv-hop定位算法 文章目录 基于麻雀算法改进的无线传感器网络Dv-hop定位算法 1.DV-Hop算法原理 2.麻雀算法改进DV-Hop算法原理 3.算法测试 4. ...

最新文章

  1. Python实现微信防撤回
  2. 在IIS上搭建WebSocket服务器(一)
  3. IDEA 集成Lombok 插件-配置注解处理器
  4. 揭秘数据技术的前世今生,Techo TVP 开发者大会来了!
  5. eclipse/myeclipse中如何开启断言调试代码
  6. Java-Redis 热部署问题
  7. JanusGraph(HugeGraph通用): 可视化 GraphEXP 插件安装
  8. Flutter中嵌入Android 原生TextView
  9. 简答String类的操作特点以及static方法的注意事项
  10. ios页面间传递参数四种方式
  11. jvm中的新生代Eden和survivor区
  12. python flag格式_Python 字符串格式化之 printf-style
  13. c语言中反余切三角函数,三角函数(反双曲)正弦,余弦,正切,余切,正割,余割在线计算器_三贝计算网_23bei.com...
  14. 服务器lga771芯片组,LGA775主板改造用771 CPU教程
  15. 手机里重力感应器和陀螺仪的区别
  16. python excel数据分析画直方图 饼状图_Excel数据可视化应用(直方图、折线图、饼状图)...
  17. redis如何查看版本号?
  18. Factoryio的应用
  19. allowMultiQueries 设置为true不生效问题
  20. 最详细的开源监控系统对比分析!建议收藏

热门文章

  1. win10 两台电脑之间共享桌面及共享文件(手把手教学)
  2. 浙大计算机考研分数线2016,2016浙江大学考研复试分数线
  3. 可以做mysql题的网站_牛客网MySQL练习题
  4. iNode客户端安装
  5. 批量下载wsdl文件
  6. JAVA导入gpx文件_如何将GPX文件导入到行者、佳明、百锐腾等设备
  7. 计算机考研复试【英语面试题汇总】
  8. http接口开发请求参数签名实用工具类
  9. 远程连接树莓派桌面xrdp
  10. OSAL 添加一个LED任务