57 lines
1.5 KiB
Matlab
57 lines
1.5 KiB
Matlab
|
|
#set(0,'defaultAxesFontName', 'Times')
|
|
#set(0,'defaultTextFontName', 'Times')
|
|
|
|
Prefix = 'loop_closure_detection_datasets';
|
|
Dataset= 'CityCentre'
|
|
Detectors = {'Surf'; 'Sift'; 'CudaSift'; 'GfttBrief'};
|
|
|
|
% The Ground Truth is a squared bmp file (size must match the log files
|
|
% length) where white dots mean loop closures.
|
|
% Grey dots mean 'loop closures to ignore', this happens when the rehearsal
|
|
% doesn't match consecutive images together.
|
|
GroundTruthFile = [Prefix '/' Dataset '.png'];
|
|
|
|
colors = 'kbgrcm';
|
|
figure
|
|
xlabel('Recall (%)')
|
|
ylabel('Precision (%)')
|
|
hold on;
|
|
|
|
Results = {};
|
|
TimeResults = {};
|
|
|
|
for i=1:length(Detectors)
|
|
LogI = importfile([Prefix '/' Dataset '/' Detectors{i} 'LogI.txt']);
|
|
LogF = importfile([Prefix '/' Dataset '/' Detectors{i} 'LogF.txt']);
|
|
|
|
PR = getPrecisionRecall(LogI, LogF, GroundTruthFile, 0.07);
|
|
plot(100*PR(:,2), 100*PR(:,1), colors(mod(i,6)+1));
|
|
% hold on;
|
|
Results{i} = PR;
|
|
time = sum(LogF(:,2:7),2)+LogF(:,17);%LogF(:,1)
|
|
TimeResults{i} = time;
|
|
meanTime = mean(time)
|
|
meanWm = mean(LogI(:,7))
|
|
meanDict = mean(LogI(:,6))
|
|
maxTime = max(time)
|
|
maxWm = max(LogI(:,7))
|
|
maxDict = max(LogI(:,6))
|
|
|
|
%figure(2)
|
|
%plot(PR(:,4), PR(:,3), colors(mod(i,6)+1));
|
|
%hold on;
|
|
end
|
|
legend(Detectors)
|
|
title(Dataset)
|
|
|
|
figure
|
|
rows=floor(length(Detectors)/2 )+ mod(length(Detectors), 2)
|
|
for i=1:length(TimeResults)
|
|
subplot(rows, 2, i)
|
|
plot(TimeResults{i})
|
|
ylabel('Time (s)')
|
|
title([Detectors{i} ' (' num2str(mean(TimeResults{i})) 's)'])
|
|
end
|
|
xlabel('Location indexes')
|