写在前面
最近在研究SiamRPN,究其根本,CNN依托于AlexNet骨架,所以花些功夫研究以下SiamFC代码,将其阶段性复现。
[ Tracking only ]
关于GPU显卡配置、cudn和cudnn安装可以参考Ubuntu16.0下安装显卡驱动、 cuda10.0 、cudnn的活生生案例
1.Ubuntu16.04配置Matconvnet
[可参考官方教程](http://www.vlfeat.org/matconvnet/)
%% 编译安装MatConvNet工具箱
mex -setup,mex -setup C++ %绑定C++编译器
% 将matlab工作路径切换到./MatConvNet,在该工作空间下输入:
addpath matlab %添加搜索路径
vl_compilenn %编译工具箱-一般编译(使用cpu)(注:一般在这行会报错,可用以下代码替换:vl_compilenn('EnableImreadJpeg',false))
vl_setupnn %启动工具箱
% 以下两种方式二选一即可
vl_compilenn('enableGpu',true) %使用cuda编译,编译速度一般
vl_compilenn('enableGpu',true,'cudaRoot','/usr/local/cuda-10.0','cudaMethod','nvcc','enableCudnn',true,'cudnnRoot','local/cudnn5') %使用cudnn编译(具体相应的路径名根据自身实际情况进行设置)
%% 测试
vl_testnn %测试cpu编译成功
vl_testnn('gpu',true) %测试GPU编译成功
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
注意:以上对MatConvNet的配置均在MatConvNet所在的工作目录下进行
2.运行阶段:
run_tracker('vot15_bag',1)
- 1
注意:对于一些关键路径的修改,可根据报错提示进行相对应的修改,关于stats.mat文件,可以参考SiamFCdemo运行所需stats.mat文件,下载后放到相对应的文件路径即可;最后运行以上一句代码即可。
[2019/3/2 写]
看到一个相对比较良心的代码复现博文[论文复现] Fully-Convolutional Siamese Networks for Object Tracking可作为参考;
[2019/3/3 更]
MatConvNet是什么;
MatConvNet函数文档;
[2019/3/4 更]
又写在前面
突然警醒到:深度学习的关键所在在于神经网络的训练过程,你所搭建的自己的architecture一旦形成,需要利用相应的数据集进行训练,得到真正属于自己的architecture的权重参数,这才是end to end的真谛吧。
所以就有了接下来的工作,balabalabala…
[ Training only ]
关于配置问题,参见上面的[Training only]部分,在这里需要指出的是Matconvnet的版本问题,本人用的是v1.0-beta25版本,而Siamfc原作者当初用的是v1.0-beta20版本(Matconvnet工具箱下载链接),在tracking阶段,两者均可,但是,在训练阶段,可能由于版本的原因,会弹出一些很痛心的bug…诸如此图(ps:如果你到了这一步,你真的就离成功不远了,我真的是费了九牛二虎之力才到了这一步,奈何我是如此之菜…)
关于解决方案,先别着急,等到了这一步自会说;
1.进行图片原始数据的预处理工作
上图为step-by-step instructions步骤;【1】中链接为ILSVRC官网下载链接,但是需要注册,如果对官网所给的数据集并不是了解的话,建议使用这个直截了当的链接——ILSVRC2015_VID数据集下载链接,直接点击下载即可,一共89.6G;
【3】中要求做的是将VID中的validation和train数据集合并为一个,并将相应的5个文件夹的名称改为a,b,c,d,e;
【4】中按要求运行即可,
【5】中要求对每个视频的每一帧图片进行相应的处理(合并了一些信息),这一步骤耗费了大约一周的时间,持续不断的运行,5个matlab并行处理,全是泪…
【6】中对图片中的object进行操作,但是按要求运行并没有什么卵用,空的,不知道哪里出了问题,所以基于【7】以上步骤做的工作全部作废,一周的运行化为泡影…
所以,作此总结:
使用谷歌浏览器直接下载imdb_video.mat即可,给出的【4-7】的操作只为了得到一个它,所以直接下载它即可;
【8】中搞不懂它在做些什么;
【9】中需要做的是复制ILSVRC2015文件夹的tree结构供后续【10】中作crop得到的图片存储用,按照给定的要求做即可,这里以Ubuntu为例(过程可作参考,结合自身理解后期记录,可能会有错误,但能够有些帮助,知道相应的指令能够完成怎样的操作):
#将当前路径下的文件夹的tree结构存储到dirs.txt
find . -type d >dirs.txt
#新建一个文件夹ILSVRC2015_
mkdir ILSVRC2015_
cd ILSVRC2015_ | cp ../ILSVRC2015/dirs.txt ./
# 从dirs.txt产生相应的目录
xargs mkdir -p
- 1
- 2
- 3
- 4
- 5
- 6
- 7
【10】中运行save_crops.m;这里虽然他那样讲,但是实际并不能够达到效果,会出现一些bugs,以下可以作为参考:
% load imdb_video.mat
imdb_video = load('/home/db/Subject/SiamFC/v1/siamese-fc/cfnet_imdb_video_2016-10.mat')
% run save_crop
% -imdb_video这里用imdb_video.imdb_video,你查看导入的imdb_video即能明白为啥这么做;
% v_1:1;v_end:4417;一共4417组VID,对其全部进行crop操作
% root_original:你存放ILSVRC2015的路径;root_crops:crop后存放的图片路径
%save_crops(imdb_video,v_1,v_end, root_original, root_crops)
save_crops(imdb_video.imdb_video,1,4417,'/home/db/Subject/SiamFC/v1/siamese-fc/ILSVRC2015', '/media/db/ZZXin EXT/ILSVRC2015_')
emmmmmmm…举报回复
谢谢博主 呀 你真的是个小天才 啊啊啊啊啊我真的是个视频跟踪的小白。。 删除举报回复
ILSVRC数据集下载链接:http://bvisionweb1.cs.unc.edu/ilsvrc2015/ILSVRC2015_VID.tar.gz
没有百度网盘链接 数据集太大 来不及上传 举报回复
加1 我也要 没有外网进不去网址 我还想要百度云的链接 就是数据集 还有那个stats.matz文件 谢谢博主大大啊 [email protected] 也是我的QQ 删除举报回复
具体的话,我不是很记得了,你可以看看源代码,着重调试数据获取那一部分就行,应该是可以实现的;另外实际他的训练耗时并不是很长,不用训练那么多epoch 举报回复
Siamese Network理解(附代码)
02-02 阅读数 5万+
本文主要通过论文来讲解下siamesenetwork。提起siamesenetwork一般都会引用这两篇文章:《Learningasimilaritymetricdiscriminatively,wi... 博文 来自: 快来学习鸭~~~
DL实战(2):SiamFC - TensorFlow配置
06-11 阅读数 2347
git链接:https://github.com/torrvision/siamfc-tf管理员身份运行AnacondaPrompt(我的是py36版本)安装virtualenv,其用来为一个应用创建... 博文 来自: 银山词霸的碎碎念
SiameseFC-TensorFlow 代码详细注解(一):预训练模型下载转换测试以及结果可视化
05-27 阅读数 6454
说明:该系列博客源码链接为:https://github.com/bilylee/SiamFC-TensorFlow,是实验室同小组的师兄用TensorFlow实现SiameseFC算法的最终公开版本... 博文 来自: StayHappy_Fan的博客
SiameseFC和CFNet细节笔记
08-21 阅读数 2549
这两篇文章出自牛津大学同一个实验室,一个发表在ECCV2016,一个发表在CVPR2017,两篇文章的matlab代码是一起的,在代码中可以选择这两个方法中的一个。看代码的过程中需要对论文熟悉,就再看... 博文 来自: 闲逸的炫鹰
tracker benchmark v1.0 如何把性能曲线修改为自选方式显示?
- 问答
CFNet视频目标跟踪源码运行笔记(1)——only tracking
03-30 阅读数 4109
友情提示:如果希望了解如何从头开始训练网络并进行跟踪,可以阅读本人另一篇博客:CFNet视频目标跟踪源码运行笔记(2)——trainingandthentracking论文信息论文题目:End-to-... 博文 来自: 越野者的博客
【ZMK】CFnet目标跟踪算法Matlab代码运行指南
05-22 阅读数 1680
由于最近在做相关滤波方面的工作。CFnet是文章End-to-endrepresentationlearningforCorrelationFilterbasedtracking中算法的简称。该算法页... 博文 来自: 死水微澜的博客