-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathrun_scores.m
42 lines (36 loc) · 1.37 KB
/
run_scores.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
% This script computes confidence score on a single CPU.
% One can modify it by changing 'class_indices' and 'row_indices'
% to divide the computation into multiple jobs and run on multiple
% CPUs.
cd(fullfile(ROOT, 'commons/scores'));
addpath(genpath(fullfile(ROOT, 'commons')));
imgset = 'vocx_cnn';
classes = get_classes(imgset);
neighbor_imgset = 'vocx';
neighbor_type = 'neighbor_cos_vgg19_fc6_matconvnet_resize';
num_neighbors = 50;
num_images = [];
for cl = 1:numel(classes)
imdb = load(fullfile(DATA_ROOT, imgset, classes{cl}, [classes{cl}, '_lite.mat']), 'bboxes');
num_images(end+1) = numel(imdb.bboxes);
end
all_classes = 1:numel(classes);
big_classes = unique([find(num_images > 500), numel(classes)]);
for cl = 1:numel(classes)
class_indices = cl;
if ~ismember(cl, big_classes)
row_indices = 1:num_images(cl)*(num_images(cl)-1)/2;
else
e = getfield(load(fullfile(DATA_ROOT, neighbor_imgset, neighbor_type, classes{cl}, ...
sprintf('%d.mat', num_neighbors))), 'e');
actual_num_nb = cellfun(@numel, e);
indices = [repelem([1:num_images(cl)]', actual_num_nb) reshape(cell2mat(e'), [], 1)];
indices = [min(indices'); max(indices')]';
indices = unique(indices, 'rows');
row_indices = 1:size(indices, 1);
end
script;
end
cd(fullfile(ROOT, 'commons/scores/gather_score'));
row_indices = 1:numel(classes);
gather_score;