追踪算法MUSTer体验
2016-07-25 17:32
555 查看
对应论文:MUlti-Store Tracker (MUSTer): a Cognitive Psychology InspiredApproach to Object Tracking
作者该项目相关网站:MUlti-StoreTracker (MUSTer)
代码下载地址:MUSTer_code_v1.1.zip,或者也可以下载我上传到CSDN上的代码,http://download.csdn.net/detail/hjl240/9585443。
下载源代码,解压缩之后,将"*/MUSTer_code_v1/opencv"加入系统路径中(system path)。
打开Matlab,运行run_tracker.m文件。如果出现“InvalidMEX-file”错误,如下图:
则参考一下3步解决问题:
都没问题之后,重新运行run_tracker.m文件,效果如下(截取了4幅图像):
观察run_tracker.m,可以发现分为两步骤,
第一步是加载视频/图片信息(load_video_info.m),
第二步就是使用MUSTer算法跟踪(MUSTer_tracking.p)。
但是作者恰恰将关键部分的代码封装成了加密格式(.p文件),我们无法查看也无法修改。
粗略看了一下对应论文的实验部分,作者采用3.4GHz, 8 cores,32GB RAM电脑的配置,在OOTB上的平均时间达到0.287s/frame。速度有点慢。
该算法与其他算法的比较如下:
另外,我稍微修改了一下run_tracker.m,使得可以自己选择(框出)追踪物体,
使用方法:选择(框出)物体之后,左键双击矩形框内,之后便可以运行。
代码如下:
效果如下:
图:手动选择追踪物体
图:手动选择追踪物体后运行效果
另外,我还写了一个将自己的视频文件转换为符合该测试代码要求的图片,也就是将视频的每一帧保存到图片中。代码如下:
运行该程序之后,将ImageTest文件夹生成的图片覆盖到Jogging/img文件夹下,便可以运行。
作者该项目相关网站:MUlti-StoreTracker (MUSTer)
代码下载地址:MUSTer_code_v1.1.zip,或者也可以下载我上传到CSDN上的代码,http://download.csdn.net/detail/hjl240/9585443。
下载源代码,解压缩之后,将"*/MUSTer_code_v1/opencv"加入系统路径中(system path)。
打开Matlab,运行run_tracker.m文件。如果出现“InvalidMEX-file”错误,如下图:
则参考一下3步解决问题:
1) install opencv 2.4.6 required by mexopencv 2) setup mexopencv in the folder "mexopencv". Please follow the instruction in "http://kyamagu.github.io/mexopencv/". 3) compile "ICF/gradientMex.cpp"
都没问题之后,重新运行run_tracker.m文件,效果如下(截取了4幅图像):
观察run_tracker.m,可以发现分为两步骤,
第一步是加载视频/图片信息(load_video_info.m),
第二步就是使用MUSTer算法跟踪(MUSTer_tracking.p)。
但是作者恰恰将关键部分的代码封装成了加密格式(.p文件),我们无法查看也无法修改。
粗略看了一下对应论文的实验部分,作者采用3.4GHz, 8 cores,32GB RAM电脑的配置,在OOTB上的平均时间达到0.287s/frame。速度有点慢。
该算法与其他算法的比较如下:
另外,我稍微修改了一下run_tracker.m,使得可以自己选择(框出)追踪物体,
使用方法:选择(框出)物体之后,左键双击矩形框内,之后便可以运行。
代码如下:
addpath('mexopencv'); addpath('ICF'); base_path = './'; res_path = 'Results/'; name = 'Jogging'; video_path = [base_path name '/']; [ source.img_files, pos, target_sz, ground_truth, source.video_path]... = load_video_info(video_path); source.n_frames = numel(source.img_files); rect_init = [pos, target_sz]; %读取并显示图片 im = imread('./Jogging/img/0001.jpg'); figure,imshow(im); %选择需要追踪的物体 [I,RECT] = imcrop(); %RECT:[XMIN YMIN WIDTH HEIGHT] bboxes = MUSTer_tracking(source, RECT); dlmwrite([res_path name '.txt'], bboxes);
效果如下:
图:手动选择追踪物体
图:手动选择追踪物体后运行效果
另外,我还写了一个将自己的视频文件转换为符合该测试代码要求的图片,也就是将视频的每一帧保存到图片中。代码如下:
fileName = 'E:\flip.avi'; obj = VideoReader(fileName); numFrames = obj.NumberOfFrames;% 视频帧总数 %若不存在文件夹,则新建文件夹 if ~exist('ImageTest') mkdir('ImageTest'); end for k = 1 : numFrames frame = read(obj,k); %imshow(frame);%显示帧 imwrite(frame,strcat('./ImageTest/',sprintf('%04d.jpg',k)),'jpg'); end
运行该程序之后,将ImageTest文件夹生成的图片覆盖到Jogging/img文件夹下,便可以运行。
相关文章推荐
- scrollState三种状态
- ubuntu 12.04 modify the display resolution
- C#和java混合编程
- [leetcode] 376. Wiggle Subsequence
- java冒泡排序
- Webview中android与Javascript(js)交互
- noip2008 双栈排序
- Mathematica
- 二叉搜索树的后序遍历序列
- 聚集索引
- 集群、分布式、负载均衡区别与联系
- NSArray && NSDictionary
- 隐马尔科夫模型(HMMs)之四:前向算法
- iOSUITableViewCell滑动显示多个按钮
- eclipse 安装svn插件
- Eclipse找出所有中文字符方法(全球化开发方式)
- oracle case when then else end
- libevent源代码文件组织
- PCB覆铜要点和规范(基于allegro)
- 关于echarts 图标的 demo