|
| 1 | +classdef DL < StandardAnnotation |
| 2 | + properties |
| 3 | + name = 'dlclassification'; |
| 4 | + end |
| 5 | + |
| 6 | + methods (Access = private) |
| 7 | + function modeldata = readModelData(~, fid) |
| 8 | + |
| 9 | + modeltype = fread(fid, 1, 'char'); % bye in Java |
| 10 | + |
| 11 | + isbinary = fread(fid, 1, 'char'); % bye in Java |
| 12 | + isbinary = isbinary~=0; % boolean is stored as byte in Java |
| 13 | + scale = fread(fid, 1, 'float'); % the scale for prediciton results - short in Java |
| 14 | + nspecies = fread(fid, 1, 'int16'); % the scale for prediciton results - short in Java |
| 15 | + |
| 16 | + % read prediciton results |
| 17 | + tempdata=-1*ones(length(nspecies),1); |
| 18 | + for j=1:nspecies |
| 19 | + tempdata(j) = fread(fid, 1, 'int16')/scale; |
| 20 | + end |
| 21 | + |
| 22 | + % get the class name IDs |
| 23 | + nclass = fread(fid, 1, 'int16'); % the number of class names.classnames |
| 24 | + classnames=-1*ones(length(nclass),1); |
| 25 | + for j=1:nclass |
| 26 | + classnames(j) = fread(fid, 1, 'int16'); |
| 27 | + end |
| 28 | + |
| 29 | + switch (modeltype) |
| 30 | + |
| 31 | + case 0 % generic deep learning annotation |
| 32 | + modeldata.predictions = tempdata; |
| 33 | + modeldata.classID = classnames; |
| 34 | + modeldata.isbinary = isbinary; |
| 35 | + modeldata.type = modeltype; |
| 36 | + case 1 % Sound Spot classifier. |
| 37 | + % Sound spot |
| 38 | + modeldata.predictions = tempdata; |
| 39 | + modeldata.classID = classnames; |
| 40 | + modeldata.isbinary = isbinary; |
| 41 | + modeldata.type = modeltype; |
| 42 | + |
| 43 | + case 2 % dummy result |
| 44 | + modeldata.predictions = []; |
| 45 | + modeldata.type = 'dummy'; |
| 46 | + end |
| 47 | + end |
| 48 | + end |
| 49 | + |
| 50 | + methods |
| 51 | + function obj = DL(); end |
| 52 | + function [data, selState] = read(obj, fid, fileInfo, anLength, anVersion); |
| 53 | + nummodels = fread(fid, 1, 'int16'); % short in Java |
| 54 | + |
| 55 | + % disp(['Num models: ' num2str(nummodels)]) |
| 56 | + % read the data from each model. |
| 57 | + % data = zeros(1, nummodels); |
| 58 | + for i=1:nummodels |
| 59 | + data(i) = obj.readModelData(fid); |
| 60 | + end |
| 61 | + end |
| 62 | + end |
| 63 | +end |
| 64 | + |
0 commit comments