cevers / sap_locata_eval

14 stars 11 forks source link

No way to read/parse new data #2

Open leomccormack opened 3 years ago

leomccormack commented 3 years ago

The read_participants_results() function (to obtain "estimates") is referenced in the following code (in the "main_evaluation() function):

if add_my_results_flag
    disp(['Adding new results to evaluation that were not submitted for the LOCATA challenge.'])
    disp(['Location of new results: ', n_dir])

    % Read participants' submissions:
    [ estimates, p_meta_data ] = read_participants_results( p_dir, eval_dir, valid_submission_ids, opts ); % participants' results and meta data
end

Which would allow new systems/data to be evaluated using the same metrics as used in the paper.

However, this function is not included in the repository, and the structure of "estimates" does not appear to be documented anywhere.

Therefore, would it be possible to add a function that is able to parse new data? or have some documentation regarding the structure of "estimates"?

leomccormack commented 3 years ago

Working backwards from the metric evaluation functions, it was possible to reverse engineer the structure of estimates and parse the data manually.

Incase it helps anyone:

size(estimates)
ans =
     1     4    13     4

% estimates{id_idx, arr_idx, rec_idx, task_idx} 
% id_idx: submission ID
% arr_idx: 1:4  ('Robot Head', 'DICIT', 'Hearing Aids', 'Eigenmike')
% rec_idx: 1:13 (for tasks 1+2, and 1:5 for tasks 3+4)
% task_idx: 1:6

% e.g. Eigenmike, task 4:
estimates{1,4,1,4}
ans = 
  struct with fields:

    source: [1×4 struct]

% where:
estimates{1,4,1,4}.source
ans = 
  1×4 struct array with fields:
    azimuth
    elevation
    timestamps
    ID
    range

The elements of ".source" then have the dimensions:

Screenshot 2020-11-04 at 17 35 07

azimuth in radians, elevation in radians (although, actually inclination: pi/2-elevation) range in meters