siamfc代码解读_SiamFC算法改进思路「建议收藏」

siamfc代码解读_SiamFC算法改进思路「建议收藏」视频追踪问题中,目标通常是连续可微的。SiamFC利用全卷积孪生网络结构对搜索域和样本图像进行相似度匹配,实现追踪目标。本文分析了SiamFC在vot2015数据集上的追踪结果,总结出以下问题,并提出针对性的改进方案。表现鲁棒小范围晃动运动模糊短时局部遮挡重点问题光照变化视频中白色猫由亮处转入阴影中,跟踪结果开始出现偏差。光照条件较差,而且目标的衣服为黑色,与背景相似。特征不够明显。形变、尺度变换…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

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

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

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

表现鲁棒小范围晃动

运动模糊

短时局部遮挡

重点问题

光照变化

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

siamfc代码解读_SiamFC算法改进思路「建议收藏」

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

siamfc代码解读_SiamFC算法改进思路「建议收藏」

形变、尺度变换

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

siamfc代码解读_SiamFC算法改进思路「建议收藏」

复杂背景

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

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

siamfc代码解读_SiamFC算法改进思路「建议收藏」

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

siamfc代码解读_SiamFC算法改进思路「建议收藏」

相似物

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

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

siamfc代码解读_SiamFC算法改进思路「建议收藏」

目标与干扰物相交而过。

siamfc代码解读_SiamFC算法改进思路「建议收藏」

快速移动、大面积遮挡

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

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

siamfc代码解读_SiamFC算法改进思路「建议收藏」

其他(网络结构)

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

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

siamfc代码解读_SiamFC算法改进思路「建议收藏」

siamfc代码解读_SiamFC算法改进思路「建议收藏」

siamfc代码解读_SiamFC算法改进思路「建议收藏」

siamfc代码解读_SiamFC算法改进思路「建议收藏」

siamfc代码解读_SiamFC算法改进思路「建议收藏」

siamfc代码解读_SiamFC算法改进思路「建议收藏」

siamfc代码解读_SiamFC算法改进思路「建议收藏」

siamfc代码解读_SiamFC算法改进思路「建议收藏」

siamfc代码解读_SiamFC算法改进思路「建议收藏」

可以看到不只小女孩会有响应,其他人出现的时候也会产生响应。但是背景却没有响应,说明卷积网络的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。

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

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

siamfc代码解读_SiamFC算法改进思路「建议收藏」

siamfc代码解读_SiamFC算法改进思路「建议收藏」

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

siamfc代码解读_SiamFC算法改进思路「建议收藏」

siamfc代码解读_SiamFC算法改进思路「建议收藏」

siamfc代码解读_SiamFC算法改进思路「建议收藏」

siamfc代码解读_SiamFC算法改进思路「建议收藏」

siamfc代码解读_SiamFC算法改进思路「建议收藏」

siamfc代码解读_SiamFC算法改进思路「建议收藏」

siamfc代码解读_SiamFC算法改进思路「建议收藏」

siamfc代码解读_SiamFC算法改进思路「建议收藏」

siamfc代码解读_SiamFC算法改进思路「建议收藏」

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

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

分析

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

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

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

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/188031.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • pytest指定用例_电脑文件怎么自定义排序

    pytest指定用例_电脑文件怎么自定义排序前言测试用例在设计的时候,我们一般要求不要有先后顺序,用例是可以打乱了执行的,这样才能达到测试的效果.有些同学在写用例的时候,用例写了先后顺序,有先后顺序后,后面还会有新的问题(如:上个用例返回

  • spring循环依赖到底怎么解决的_恋爱循环难吗

    spring循环依赖到底怎么解决的_恋爱循环难吗4.AOP中的循环依赖在看自动代理源码的过程中,突然注意到SmartInstantiationAwareBeanPostProcessor接口中的getEarlyBeanReference方法,它是Spring处理循环依赖时返回**未创建完(只实例化未做依赖注入)**Bean的扩展。关于循环依赖可以去Bean的循环依赖一章去详细了解,这里只做简单的说明。有两个单例Bean,A和B,A中引用了B…

  • Git 指令大全

    Git 指令大全Git是分散式的版本控制系統,從架設、簡易操作、設定,此篇主要是整理基本操作、遠端操作等.註:Git的範圍太廣了,把這篇當作是初學入門就好了. 注意事項由project/.git/config可知:(若有更多,亦可由此得知)origin(remote)是Repository的版本master(branch)是local端,

  • H2 数据库使用简介

    一、前言H2是一个用Java开发的嵌入式数据库,它本身只是一个类库,即只有一个jar文件,可以直接嵌入到应用项目中。H2主要有如下三个用途:第一个用途,也是最常使用的用途就在于可以同应用程序打包在一起发布,这样可以非常方便地存储少量结构化数据。第二个用途是用于单元测试。启动速度快,而且可以关闭持久化功能,每一个用例执行完随即还原到初始状态。第三个用途是作为缓存,即当做内…

  • Java 输出 九九乘法表的代码

    Java 输出 九九乘法表的代码敲成功代码后,超级有成就感。publicclass九九乘法表{publicstaticvoidmain(String[]args){intj=1;for(inti=1;i<10;i++,j=1){for(j=1;j<i+1;j++){System.out.print(j+”×”+i+”=”+i*j+”\t”);

  • 软件生命周期_常见软件开发模型

    软件生命周期_常见软件开发模型1.软件生命周期软件生命周期是指软件从开始研制到最终被废弃所经历的各个阶段。在不同的阶段里,由不同的组织和人员执行不同的任务,需要消耗不同的资源。生命周期常见的有:瀑布模型、V模型、敏捷开发模型。

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号