annotate testdata/evaluation/batchProcessingEvaluate.m @ 167:416b555df3b2 finetune

More on returning fine tuning (but we're treating different shifts of the same pitch as different notes at the moment which is not right)
author Chris Cannam
date Tue, 20 May 2014 17:49:07 +0100
parents ce64d11ef336
children
rev   line source
emmanouil@71 1 function [Pre,Rec,F] = batchProcessingEvaluate(folder)
emmanouil@71 2
emmanouil@71 3 % Evaluate transcription output, using onset-only note-based metrics
emmanouil@71 4 % e.g. [Pre,Rec,F] = batchProcessingEvaluate('TRIOS-mirex2012-matlab');
emmanouil@71 5
emmanouil@71 6
emmanouil@71 7 fileList = dir(folder);
emmanouil@71 8 fileCount = 0;
emmanouil@71 9
emmanouil@71 10 for i=3:length(fileList)
emmanouil@71 11
emmanouil@71 12 if(isdir([folder '/' fileList(i).name]))
emmanouil@71 13
emmanouil@71 14 fileCount = fileCount + 1;
emmanouil@71 15
emmanouil@71 16
emmanouil@71 17 % Load ground truth
emmanouil@71 18 [pianoRollGT,nmatGT] = convertMIDIToPianoRoll([fileList(i).name '.mid'],10,1.0);
emmanouil@71 19
emmanouil@71 20
emmanouil@71 21 % Load transcripton nmat
emmanouil@71 22 nmat = load([folder '/' fileList(i).name '/' 'mix.lab']);
emmanouil@71 23
emmanouil@71 24
emmanouil@71 25 % Convert 3rd nmat column to MIDI scale
emmanouil@71 26 nmat(:,3) = round(12.*log2(nmat(:,3)./27.5) + 1);
emmanouil@71 27
emmanouil@71 28
emmanouil@71 29 % Compute onset-based note-level accuracy
emmanouil@71 30 [Pre(fileCount),Rec(fileCount),F(fileCount)] = computeNoteLevelAccuracy(nmat,nmatGT);
emmanouil@71 31
emmanouil@71 32 end;
emmanouil@71 33 end;