搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
我家自动化
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
分布式事务解决方案TCC模式_分布式事务tcc模式
2
无人机遥控器显示屏的重要性!!!
3
Qt,Qt Creator,minGW,VS关系_qt 与mingw 版本关系
4
Firefly调参Baichuan13B_merge lora
5
ARM 汇编指令
6
【Qt专栏】Qt中Json的使用教程_qt json
7
超好用的文件对比工具—— Beyond Compare_文件对比 version compare
8
手把手教你利用Python网络爬虫获取旅游景点信息
9
先导桌面式数控车床助力教育装备
10
深度学习学习经验——长短期记忆网络(LSTM)
当前位置:
article
> 正文
ATOM、DiMP目标跟踪详细代码记录:测试_目标跟踪atom代码复现
作者:我家自动化 | 2024-08-21 06:28:12
赞
踩
目标跟踪atom代码复现
ATOM
目标跟踪
只记录跟踪运行过程,数据集及模型参数加载不想说。
第一帧 tracker.initialize(image, init_bbox)
self.initialize_features():载入模型参数,并定义跟踪过程所需要的特征层。
self.target_scale:bbox缩放比例(根据搜索区域(5h,5w)与预先设定的图片最大,最小比例);self.pos:bbox中心在图像上的坐标;self.target_sz:bbox的(h,w);self.base_target_sz:缩放后的(h,w)。
self.img_sample_sz:图片的长宽,限制为网络stride(16)的倍数。
self.init_learning():初始化与在线学习相关超参。
self.feature_windows:特征窗函数(1,1,18,18),18=self.img_sample_sz/stride。
self.filter_reg=0.1:正则项。
self.projection_activation:在线学习参数W1后无激活函数
self.response_activation:在线学习参数W2后激活函数F.elu(F.leaky_relu(x, 1 / act_param = 20), act_param),通过观察,
经过两次激活函数之后,小于-0.1的数值几乎都在[-0.04,-0.05],可能0到-0.1之间的值经过这两个激活函数后才有一定区分
。
self.generate_init_sample(image):生成样本30个,包含各种数据增强,以及dropout。每个样本的特征维度为(255,18,18)。
self.init_iou_net:通过第一帧得到两个调制向量self.target_feat (256,1,1) (256,1,1)。
self.init_project_matrix():在线学习的参数W1(64,256,1,1),初始化参数满足高斯分布。
self.init_label_function:根据self.pos和transformer.shitf制定labels(30,1,18,18)。
self.init_memory():初始化参数W1(250, 64, 18, 18)。
self.init_optimization(train_x, init_y):初始化在线学习相关。
self.joint_problem:初始化参数W2(1,64,4,4),计算残差W2(W1X)-labels。(30,256,18,18)->(30,64,18,18)->(30,1,18,18)
self.joint_optimizer = GaussNewtonCG(),self.joint_optimizer.run(10,6):
利用初始帧的30个样本优化W1和W2,共6次高斯牛顿迭代,每次又在内部迭代10次共轭梯度
。
后续帧tracker.track(image)
self.extract_processed_sample(image,self.pos,self.target_scale,self.img_sample_sz):提取后续帧图片的特征(1,256,18,18),再与W1,W2得到scores_raw(1,1,18,18)。
self.localize_target(scores_raw):返回translation_vec(相对于图片中心的偏移), scale_ind(最大分数索引), s(最大分数), flag(‘not_found’ or ‘uncertain’ or None)。
scores_raw(1,1,18,18)经过快速傅里叶变换->在频率内(18,18)->(288,288)->反变换得到scores(1,1,18,18)。
self.localize_advanced(scores):获取最大分数的
translation_vec1=disp*self.target_scale
、scale_ind1和scores。如果分数小(<0.25),表示没有找到目标,返回translation_vec1、scale_ind、scores和flag=“not found”;如果分数足够大(>=0.25),mask中心区域,获取第二大分数的translation_vec2。
1. if score2>0.8score1: 返回位移小的translation_vec、scale_ind、s和"hard_negative";如果两个位移都很大,返回translation_vec1、scale_ind、s和"uncertain"
2. if score2>0.5score1 & score2>0.25:
3. else:
如果上述条件都不符合,返回translation_vec1、scale_ind、s和None
。
如果flag != “not found”:self.update_state()更新中心位置->self.refine_target_box(10,256,18,18)以中心位置和前一帧的(h,w)初始化10个(9+自身)随机偏移和大小的bboxes,提取其特征(10,256,36,36)并**通过self.init_iou_net()中得到的两个离线训练好的调制向量self.target_feat (256,1,1) (256,1,1)**得到分数(10,)->
optimize_boxes():对这10个bboxes进行优化,计算输出分数对于4(x,y,h,w)的梯度来更新bboxes的位置,然后再次计算输出IoU分数,分数比原来大的再次更新。判定优化迭代有两个条件(新IoU分数小于上一次该bbox的IoU分数;最多迭代5次)
->返回分数前3的bboxes的平均bbox。
这一步tracker.track返回就有了。
如果flag != “not found” and flag != “uncertain”:self.get_label_function()获取新的labels->self.update_memory()把新的位置和样本放进去之前的30个初始样本,最多放250个,共280个样本。
如果flag == “hard_negative”:self.filter_optimizer.run(5),1次高斯牛顿(包含5次共轭梯度);
否则,每隔10帧1次高斯牛顿(包含5次共轭梯度)
。
DiMP目标跟踪
与ATOM的差别就在分类上,ATOM制定一个L2优化问题,通过高斯牛顿-共轭梯度法优化W1和W2两个参数进行分类。首先在第一帧利用30个初步学习W1,W2,后续不断更新。
DiMP通过一个参数W来优化,初始的W是通过提取15个样本的bboxes的特征并求均值得到;然后再第一帧的时候迭代10次,所使用的优化方法为SteepestDescent。
与ATOM的区别就在分类的方法,预测bbox的过程完全一致
。
生成13个样本提取特征(13,256,18,18),dropout2个,共15个样本(15,256,18,18)。
参数W初始化:通过PrRoi Pooling提取特征(15,256,4,4)->求平均(1,256,4,4)=W。
通过10次迭代得到最终的W(在论文中称为Predicted Model f,本质就是W)。
测试阶段把这个W作为核与后续帧(1,256,18,18)卷积(有padding,padding=2)->(1,18,18)Score prediction分数。
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/我家自动化/article/detail/1010561
推荐阅读
article
目标跟踪之
Pytracking
系列代码
训练
(
ATOM
\
DiMP
\Pr
DiMP
\KYS\Super_D...
参考链接:https://github.com/visionml/pytracking/blob/master/ltr/...
赞
踩
article
【DiMP】
Learning
Discriminative
Model
Prediction
for...
Learning
Discriminative
Model
Prediction
for
Tracking
论文地址写在...
赞
踩
article
【目标跟踪】|DiMP:
Learning
Discriminative
Model
Predict...
本文介绍了一种名为DIMP的新型跟踪算法,通过在视频序列中使用随机样本来增强Siamese网络的鲁棒性。它利用多帧输入训...
赞
踩
article
阅读论文:
SiamFC
&
ATOM
&
DiMP
_
dimp
论文阅读...
本文详细介绍了基于深度学习的目标跟踪方法,包括
SiamFC
的孪生网络结构,
ATOM
的分类与估计子任务,以及
DiMP
的端到...
赞
踩
article
DIMP
:
Learning
Discriminative
Model
Prediction for ...
论文地址:https://arxiv.org/pdf/1904.07220v1.pdf代码:pytracking 中有 ...
赞
踩
article
DiMP
:
Learning
Discriminative
Model
Prediction
for ...
本文针对Siamese网络跟踪算法的局限性,提出
DiMP
算法,通过结合least-square regression和h...
赞
踩
相关标签
pytorch
深度学习
python
目标跟踪
计算机视觉
人工智能
目标检测
神经网络