智慧交通day04-特定目标车辆追踪03:siamese在目标跟踪中的应用-SiamMask(2019)

在线体验各类最新模型,更有模型 免费Token 额度领取!
立即体验
简介: 与普通的视频跟踪网络不同的是,SiamMask可以同时完成视频跟踪和实例级分割的任务。如下图所示,与传统的对象跟踪器一样,依赖于一个简单的边界框初始化(蓝色)并在线操作。与ECO(红色)等最先进的跟踪器不同,SiamMask(绿色)能够生成二进制分割,从而更准确地描述目标对象。

与普通的视频跟踪网络不同的是,SiamMask可以同时完成视频跟踪和实例级分割的任务。如下图所示,与传统的对象跟踪器一样,依赖于一个简单的边界框初始化(蓝色)并在线操作。与ECO(红色)等最先进的跟踪器不同,SiamMask(绿色)能够生成二进制分割,从而更准确地描述目标对象。


f537b433b59f4162892fdef214075cea.png


3.5.1 网络结构


SiamMask的网络结构,提出了三分支的SiamMask网络。与之前的孪生网络十分相似的是,将模板图像与搜索图像输入网络,两者经过特征提取网络,特征提取网络如下表所示,生成15×15×256和31×31×256的featuremap,与SiamFC相似的是,将两个featuremap逐通道相互卷积,生成17×17×256的featuremap,将这个过程生成的像素值叫做RoW,如下图所示,蓝色的1×1×256的featuremap为heatmap的最大值,代表目标最有可能出现的位置。之后将featuremap输入三个分支中,图中h_{\psi}hψ,b_{\psi}bψ,s_{\psi}sψ 是1×1的卷积层,作用是改变通道的数量。


a1963a734fb442a08668756e9782f26f.png


网络结构如下表所示:


62f2be72dec14526945a9f34b4cbf79e.png


在box分支中,17×17×256的featuremap经过1×1×(4k)的卷积层后生成17×17×4k的featuremap,这里k是每一个RoW生成k个anchors,这里实际上和SiamRPN相同,每四个一组,分别对应dx、dy、dw、dh四个值,代表着与groundtruth的距离。


在score分支中,17×17×256的featuremap经过1×1×(2k)的卷积层后生成17×17×2k的featuremap,这里k是每一个RoW生成k个anchors,这里实际上和SiamRPN相同,每两个一组,分别对应分类为目标和背景的标签结果。


在Mask分支中。17×17×256的featuremap经过1×1×(63×63)的卷积层后生成17×17×(63×63)的featuremap,从featuremap中取出与RoW位置相同的像素值,为1×1×(63×63),对其做上采样,生成127×127×1的图像,在这个图像中所有的像素值都取0或1,生成的相当于是一个二进制掩码,目标像素值为1,背景像素值为0,这样就完成了实例级分割的任务。   


三分支中的网络结构如下表所示:


1cee8315eb5e49629491b0857c1d57c8.png


除了三分支的SiamMask之外,作者还提出了二分支的SiamMask网络,如上图所示,删掉了box分支,只保留score和Mask分支:


91910655d54346fd9905767f0dd231fa.png


通过Mask分支生成的二进制掩码来生成相对应的bounding box,二分支中的网络结构如下表所示:


4f5e349ffbc84730ac4ed96ba5d27d09.png


3.5.2 模型创新


  • 改进的bounding box生成策略


设计了三种生成bounding box的策略如下图所示的红色、绿色和蓝色框


091bb1f1ac3c4b1284d59a1df6f21428.png


在之前的视频跟踪网络中,生成的都是平行于图片的x轴,y轴的bounding box。当然,SiamMask也能完成这样的任务,如图中红色框所示,在三分支的SiamMask网络中,box分支负责生成这样的bounding box。而在二分支的SiamMask网络中,利用Mask分支生成的二进制掩码取出目标所在的最小和最大的像素值,来生成Min-max的bounding box。


为了能够将bounding box尽可能的贴合物体,设计了MBR的生成策略,如图绿色框所示。同样,利用Mask分支生成的二进制掩码,求目标的最小包闭矩形,这样会导致生成的bounding box会有一定的倾斜。


还设计了一种策略Opt,如图中蓝色框所示。通过Mask分支生成的二进制掩码,求一个矩形区域使得矩形与目标像素的IoU最大,通过这种策略在一些计算目标与bounding box之间IoU的比赛中会提高SiamMask的成绩。


  • 掩膜细化模型


下图为特征提取网络和Mask分支的结构图,网络忽略了box分支和score分支,经过特征提取网络生成的1×1×256的featuremap,首先经过反卷积生成15×15×32的featuremap,之后每一次反卷积都通过Ui 结合多层的特征,最后经过一个3×3的卷积层和Sigmoid层生成127×127×1的二进制掩码。


023f8c8a06504fcaae5c979dd161051a.png


下图为细化模型的结构图,经过细化模型可以实现上采样的过程中结合特征提取的featuremap信息。


12e0005fb0ba4fe5a55fbf64516c2f0e.png


3.5.3 损失函数


Mask分支的损失函数:


82ba76941ae04012a35e024645c78888.png


  在Mask分支最后生成一个127×127×1的二进制掩码也需要对其进行标记,目标像素标记为+1,背景像素标记为-1,所以假设一个RoW中会有w×h个像素,cij为Mask中第n个RoW中第i,j个像素的真实标记,mij为对应的网络的输出。所以这里的Mask分支只会计算一个目标RoW在二进制掩码中的所有像素。


  • 二分支:


二分支的SiamMask的损失函数如下式所示,其中λ1与λ2为超参数,λ1=32,λ2=1,L_{mask}Lmask 是上面讲的Mask分支的损失函数,L_{sim}Lsim是SiamFC的损失函数


e23c7750a35b49c1ae5762b66273073d.png


  • 三分支:


三分支的SiamMask的损失函数如下式所示,其中λ1与λ2为超参数,λ1=32,λ2=λ3=1, L_{mask}Lmask是Mask分支的损失函数,L_{score}Lscore和L_{box}Lbox是SiamRPN的损失函数 L_{cls}Lcls和L_{reg}Lreg.


e6747880a22d467aab9ce254ff6654cd.png


3.5.4 模型训练


siamMask是端到端训练模型,训练参数如下表所示:


03d2a4ca4adf48089f1b04afe2aa855f.png

目录
相关文章
|
JavaScript 安全 Windows
NPM包的安装、更新、卸载
NPM包的安装、更新、卸载
1785 0
|
机器学习/深度学习 算法 数据可视化
可解释性机器学习:基于随机森林和Ceteris-paribus的乳腺癌早期诊断研究
可解释性机器学习:基于随机森林和Ceteris-paribus的乳腺癌早期诊断研究
948 1
|
存储 Linux 开发工具
告别Hugging Face模型下载难题:掌握高效下载策略,畅享无缝开发体验
【8月更文挑战第2天】告别Hugging Face模型下载难题:掌握高效下载策略,畅享无缝开发体验
6456 64
告别Hugging Face模型下载难题:掌握高效下载策略,畅享无缝开发体验
|
算法 测试技术 Swift
Kimi开源Moonlight-16B-A3B:基于Muon优化器的高效大模型,性能与训练效率双突破!
Kimi开源Moonlight-16B-A3B:基于Muon优化器的高效大模型,性能与训练效率双突破!
648 0
|
缓存 负载均衡 前端开发
优化Web应用性能的十种策略
在当今的数字化时代,Web应用的性能直接影响用户体验和业务成效。本文深入探讨了优化Web应用性能的十种策略,从前端的资源优化到后端的架构改进,涵盖了缓存机制、异步加载、数据库优化等关键技术手段。这些策略不仅能提升响应速度,还能显著减少服务器负担和带宽消耗,为开发者提供了一系列切实可行的解决方案。
|
关系型数据库 MySQL 网络安全
实时计算 Flink版操作报错合集之Debezium引擎因为其他错误而关闭,导致无法检索到引擎的schema历史记录,该如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
运维 Linux
在Linux中,如何排查硬件故障?
在Linux中,如何排查硬件故障?
运行和其他应用同时播放的实现原理
运行和其他应用同时播放的实现原理
577 1
|
机器学习/深度学习 人工智能 自然语言处理
提升软件测试效率:智能化测试用例生成策略
【4月更文挑战第28天】 随着软件开发的复杂性不断增加,传统的软件测试方法面临巨大挑战。为了提高测试覆盖率并确保软件质量,需要投入大量的时间和资源去设计、执行和维护测试用例。本文探讨了一种基于人工智能(AI)技术的智能化测试用例生成策略,该策略能够自动识别关键的测试路径,动态调整测试用例,并优化测试集合。通过引入智能化工具和算法,显著提升了软件测试过程的效率和有效性。
|
存储 前端开发 Java
SpringMVC简介
SpringMVC简介
282 0