方法一:总帧数除以总时间(算出来的结果很真实,但是偏小)
1、在目标跟踪tracker_benchmark_v1.0的目录下新建FPSperfPlot.m,内容代码如下:
clear
close all;
clc
addpath('./util');
seqs=configSeqs;
trackers=configTrackers;
% seqs = seqs(1:10);
% trackers = trackers(1:10);
numSeq=length(seqs);
numTrk=length(trackers);
evalType = 'OPE';
switch evalType
case 'SRE'
rpAll=['.\results\results_SRE_CVPR13\'];
case {'TRE', 'OPE'}
rpAll=['.\results\results_TRE_CVPR13\'];
end
for idxTrk=1:numTrk
t = trackers{idxTrk};
time=0;
frame=0;
for idxSeq=1:numSeq
s = seqs{idxSeq};
load([rpAll s.name '_' t.name '.mat']);
res = results{1};
time=time+(s.endFrame-s.startFrame+1)/res.fps; %总时间
frame=frame+(s.endFrame-s.startFrame+1); %总帧数
end
average_FPS=frame/time; %平均FPS
disp([trackers{idxTrk}.name]);
disp(['FPS:',num2str(average_FPS)]);
end
2、选择需要计算平均FPS的跟踪算法
3、选择需要计算平均FPS的视频序列(以OTB2013数据集为例)
4、运行 FPSperfPlot.m得到结果
方法二:总FPS除以视频序列数(算出来的结果大一些,与一般论文中的FPS更接近)
1、在目标跟踪tracker_benchmark_v1.0的目录下新建FPSperfPlot.m,内容代码如下:
clear
close all;
clc
addpath('./util');
seqs=configSeqs;
trackers=configTrackers;
% seqs = seqs(1:10);
% trackers = trackers(1:10);
numSeq=length(seqs);
numTrk=length(trackers);
evalType = 'OPE';
switch evalType
case 'SRE'
rpAll=['.\results\results_SRE_CVPR13\'];
case {'TRE', 'OPE'}
rpAll=['.\results\results_TRE_CVPR13\'];
end
for idxTrk=1:numTrk
t = trackers{idxTrk};
% time=0;
% frame=0;
totalFPS=0;
for idxSeq=1:numSeq
s = seqs{idxSeq};
load([rpAll s.name '_' t.name '.mat']);
res = results{1};
% time=time+(s.endFrame-s.startFrame+1)/res.fps; %总时间
% frame=frame+(s.endFrame-s.startFrame+1); %总帧数
totalFPS=totalFPS+res.fps;
end
% average_FPS=frame/time; %平均FPS
average_FPS=totalFPS/numSeq;
disp([trackers{idxTrk}.name]);
disp(['FPS:',num2str(average_FPS)]);
end
2、选择需要计算平均FPS的跟踪算法
3、选择需要计算平均FPS的视频序列(以OTB2013数据集为例)
4、运行 FPSperfPlot.m得到结果