61 lines
1.6 KiB
Mathematica
61 lines
1.6 KiB
Mathematica
|
% load('ocv.mat')
|
||
|
% Move into Matlab space
|
||
|
% bboxes = bboxes + 1;
|
||
|
|
||
|
load('matlab.mat')
|
||
|
|
||
|
% Find the actual bboxes
|
||
|
bboxes_detector = bboxes(:,3:6);
|
||
|
% add x offset
|
||
|
bboxes_detector(:,1) = bboxes(:,1) + bboxes_detector(:,1);
|
||
|
|
||
|
% add y offset
|
||
|
bboxes_detector(:,2) = bboxes(:,2) + bboxes_detector(:,2);
|
||
|
|
||
|
non_detected = bboxes(:,3) == 1;
|
||
|
|
||
|
% Find the width and height mappings
|
||
|
widths_gt = (max(gt_labels(:,:,1)') - min(gt_labels(:,:,1)'))';
|
||
|
widths_det = bboxes_detector(:,3);
|
||
|
|
||
|
bad_det = abs(1 - widths_gt ./ widths_det) > 0.5;
|
||
|
|
||
|
non_detected = non_detected | bad_det;
|
||
|
|
||
|
% if the width is quite different from detection then it failed
|
||
|
|
||
|
bboxes_detector = bboxes_detector(~non_detected,:);
|
||
|
gt_labels = gt_labels(~non_detected,:,:);
|
||
|
dets = dets(~non_detected,:);
|
||
|
|
||
|
%% some visualisations
|
||
|
% a = 1;
|
||
|
% plot(gt_labels(a,:,1), gt_labels(a,:,2), '.r');
|
||
|
% hold on;
|
||
|
% bbox = bboxes_detector(a,:);
|
||
|
% % bbox(2) = -bbox(2);
|
||
|
% rectangle('Position', bbox);
|
||
|
% hold off;
|
||
|
% axis equal;
|
||
|
|
||
|
% Want to find out what scaling and translation would lead to the smallest
|
||
|
% RMSE error between initialised landmarks and gt landmarks TODO
|
||
|
|
||
|
% Find the width and height mappings
|
||
|
widths_gt = (max(gt_labels(:,:,1)') - min(gt_labels(:,:,1)'))';
|
||
|
heights_gt = (max(gt_labels(:,:,2)') - min(gt_labels(:,:,2)'))';
|
||
|
|
||
|
widths_det = bboxes_detector(:,3);
|
||
|
heights_det = bboxes_detector(:,4);
|
||
|
|
||
|
s_width = widths_det \ widths_gt;
|
||
|
s_height = heights_det \ heights_gt;
|
||
|
|
||
|
tx_gt = min(gt_labels(:,:,1)')';
|
||
|
ty_gt = min(gt_labels(:,:,2)')';
|
||
|
|
||
|
tx_det = bboxes_detector(:,1);
|
||
|
ty_det = bboxes_detector(:,2);
|
||
|
|
||
|
s_tx = mean((tx_gt - tx_det) ./ widths_det);
|
||
|
s_ty = mean((ty_gt - ty_det) ./ heights_det);
|