annotate eventDetectionMetrics_frameBased.m @ 1:3ea8ed09af0f tip

additional clarifications
author Dimitrios Giannoulis
date Wed, 13 Mar 2013 11:57:24 +0000
parents 22b10c5b72e8
children
rev   line source
Dimitrios@0 1 function [results] = eventDetectionMetrics_frameBased(outputFile,GTFile)
Dimitrios@0 2
Dimitrios@0 3 % Load event list from output and ground-truth
Dimitrios@0 4 [onset,offset,classNames] = loadEventsList(outputFile);
Dimitrios@0 5 [onsetGT,offsetGT,classNamesGT] = loadEventsList(GTFile);
Dimitrios@0 6
Dimitrios@0 7
Dimitrios@0 8 % Convert event list into frame-based representation (10msec resolution)
Dimitrios@0 9 [eventRoll] = convertEventListToEventRoll(onset,offset,classNames);
Dimitrios@0 10 [eventRollGT] = convertEventListToEventRoll(onsetGT,offsetGT,classNamesGT);
Dimitrios@0 11
Dimitrios@0 12
Dimitrios@0 13 % Fix durations of eventRolls
Dimitrios@0 14 if (size(eventRollGT,1) > size(eventRoll,1)) eventRoll = [eventRoll; zeros(size(eventRollGT,1)-size(eventRoll,1),16)]; end;
Dimitrios@0 15 if (size(eventRoll,1) > size(eventRollGT,1)) eventRollGT = [eventRollGT; zeros(size(eventRoll,1)-size(eventRollGT,1),16)]; end;
Dimitrios@0 16
Dimitrios@0 17
Dimitrios@0 18 % Compute frame-based metrics
Dimitrios@0 19 Nref = sum(sum(eventRollGT));
Dimitrios@0 20 Ntot = sum(sum(eventRoll));
Dimitrios@0 21 Ntp = sum(sum(eventRoll+eventRollGT > 1));
Dimitrios@0 22 Nfp = sum(sum(eventRoll-eventRollGT > 0));
Dimitrios@0 23 Nfn = sum(sum(eventRollGT-eventRoll > 0));
Dimitrios@0 24 Nsubs = min(Nfp,Nfn);
Dimitrios@0 25
Dimitrios@0 26
Dimitrios@0 27 results.Rec = Ntp/(Nref+eps);
Dimitrios@0 28 results.Pre = Ntp/(Ntot+eps);
Dimitrios@0 29 results.F = 2*((results.Pre*results.Rec)/(results.Pre+results.Rec+eps));
Dimitrios@0 30 results.AEER = (Nfn+Nfp+Nsubs)/(Nref+eps);