mirror of
https://github.com/introlab/rtabmap.git
synced 2026-09-02 01:20:25 +08:00
MERGE branch STM 325:449 into trunk
git-svn-id: http://rtabmap.googlecode.com/svn/trunk/rtabmap@450 f169173b-cf89-36c8-b27e-44dbe73f0c83
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
function [LogF LogI] = showlogs(PathPrefix, GT_file)
|
||||
% [LogF LogI] = showlogs(PathPrefix, GT_file)
|
||||
% SHOWLOGS Plot a RTAB-Map results (LogI.txt, LogF.txt). Just put this
|
||||
% file in the same directory as LogF.txt and LogI.txt files
|
||||
% generated by RTAB-Map (RTAB-Map's working directory). The files
|
||||
@@ -46,13 +47,15 @@ LogF = importfile([PathPrefix '/' 'LogF.txt']);
|
||||
% 14 mean likelihood
|
||||
% 15 stddev likelihood
|
||||
% 16 vp hypothesis
|
||||
% 17 timeEmtyingTrash
|
||||
% 17 timeJoiningTrash
|
||||
% 18 rehearsalValue
|
||||
% 19 timeEmptyingTrash
|
||||
% 20 timeRetrievalDbAccess
|
||||
|
||||
LogI = importfile([PathPrefix '/' 'LogI.txt']);
|
||||
% COLUMN HEADERS :
|
||||
% 1 lcHypothesisId,
|
||||
% 2 mostLikelihoodId,
|
||||
% 2 highestHypothesisId,
|
||||
% 3 signaturesRemoved,
|
||||
% 4 hessianThr,
|
||||
% 5 wordsNewSign,
|
||||
@@ -94,16 +97,16 @@ end
|
||||
% xlabel('Location indexes')
|
||||
|
||||
figure
|
||||
plot(sum(LogF(:,2:7),2)*1000);
|
||||
plot((sum(LogF(:,2:7),2)+LogF(:,17))*1000);
|
||||
hold on
|
||||
ylabel('Time (ms)')
|
||||
xlabel('Location indexes')
|
||||
%meanTime = mean(LogF(:,1))*1000
|
||||
%plot([1 length(LogF(:,1))], [700 700], 'r')
|
||||
%plot([1 length(LogF(:,1))], [1000 1000], 'k')
|
||||
%legend('Processing time', 'Time limit', 'Acquisition rate (1 Hz)')
|
||||
meanTime = mean(LogF(:,1))*1000
|
||||
plot([1 length(LogF(:,1))], [700 700], 'r')
|
||||
plot([1 length(LogF(:,1))], [1000 1000], 'k--')
|
||||
legend('Processing time', 'Time limit', 'Acquisition rate (1 Hz)')
|
||||
|
||||
maxTime = max(sum(LogF(:,2:7),2))
|
||||
maxTime = max(sum(LogF(:,2:7),2)+LogF(:,17))
|
||||
maxDict = max(LogI(:, 6))
|
||||
maxWM = max(LogI(:,7))
|
||||
%%
|
||||
@@ -142,14 +145,14 @@ title('timeStatsCreation (ms)')
|
||||
if size(LogF, 2) > 16
|
||||
subplot(8,1,8)
|
||||
plot(LogF(:,17)*1000)
|
||||
title('timeEmptyingTrash (ms)')
|
||||
title('timeJoiningTrash (ms)')
|
||||
end
|
||||
xlabel('Location indexes')
|
||||
|
||||
% -------------------------
|
||||
%% -------------------------
|
||||
figure
|
||||
plot([LogF(:,2) sum(LogF(:,2:3),2) sum(LogF(:,2:4),2) sum(LogF(:,2:5),2) sum(LogF(:,2:6),2) sum(LogF(:,2:7),2) sum(LogF(:,2:8),2)]);
|
||||
legend('timeMemoryUpdate', 'timeReactivations', 'timeLikelihoodCalculation', 'timePosteriorCalculation', 'timeHypothesesCreation', 'timeHypothesesValidation', 'timeRealTimeLimitReachedProcess')
|
||||
plot([LogF(:,2) sum(LogF(:,2:3),2) sum(LogF(:,2:4),2) sum(LogF(:,2:5),2) sum(LogF(:,2:6),2) sum(LogF(:,2:7),2) sum(LogF(:,2:8),2), sum(LogF(:,2:8),2)+LogF(:,17)]);
|
||||
legend('timeMemoryUpdate', 'timeReactivations', 'timeLikelihoodCalculation', 'timePosteriorCalculation', 'timeHypothesesCreation', 'timeHypothesesValidation', 'timeRealTimeLimitReachedProcess', 'timeJoiningTrash')
|
||||
title('Process time details')
|
||||
ylabel('s')
|
||||
xlabel('Location indexes')
|
||||
@@ -164,7 +167,7 @@ plot(LogI(:,11),'.')
|
||||
ylabel('Locations reactivated')
|
||||
xlabel('Location indexes')
|
||||
|
||||
% -------------------------
|
||||
%% -------------------------
|
||||
figure
|
||||
subplot(211)
|
||||
plot(LogI(:, 6));
|
||||
@@ -172,7 +175,7 @@ title('dictionary size')
|
||||
ylabel('words')
|
||||
|
||||
subplot(212)
|
||||
plot([LogI(:, 9)/1000000 LogI(:, 10)/1000000]);
|
||||
plot([LogI(:, 9) LogI(:, 10)]);
|
||||
title('Memory usage (in MB)')
|
||||
legend('Process', 'Database')
|
||||
ylabel('MB')
|
||||
@@ -197,9 +200,19 @@ meanDict = mean(LogI(:,6))
|
||||
% xlabel('Location indexes')
|
||||
|
||||
meanWordsPerSign = mean(LogI(:,5))
|
||||
%% -------------------------
|
||||
|
||||
figure
|
||||
subplot(211)
|
||||
plot(LogF(:,20) + LogF(:,17)); %17 join or 19 empty trash
|
||||
ylabel('Time (s)')
|
||||
xlabel('Location indexes')
|
||||
subplot(212)
|
||||
plot(LogI(:,7));
|
||||
ylabel('WM size (locations)')
|
||||
xlabel('Location indexes')
|
||||
|
||||
% -------------------------
|
||||
%% -------------------------
|
||||
% Detected/Accepted/Rejected loop closures
|
||||
|
||||
figure;
|
||||
@@ -322,7 +335,7 @@ lcRejected = sum(LogI(:, 8) == 1)
|
||||
%Precision-Recall graph
|
||||
GroundTruthFile = [GT_file];
|
||||
if ~isempty(GT_file) && exist(GroundTruthFile, 'file')
|
||||
PR = getPrecisionRecall(LogI, LogF, GroundTruthFile, 1.0);
|
||||
PR = getPrecisionRecall(LogI, LogF, GroundTruthFile, 0.09);
|
||||
|
||||
Precision = PR(:,1);
|
||||
Recall = PR(:,2);
|
||||
|
||||
Reference in New Issue
Block a user