Как рассчитать расстояние от камеры до объекта с помощью панели инструментов CV? - PullRequest
0 голосов
/ 23 января 2020

Я создал собственный детектор объектов, который работает довольно хорошо, но я получаю NaN для всех значений в моей матрице. Я выяснил это после отладки кода, и ограниченная область на моем изображении показывает NaN метров . Я использовал код из Matlab для вычисления расстояния, но я не знаю, является ли это общим методом вычисления расстояния. Ниже приведен код.

points3D = reconstructScene(disparityMapBM,stereoParams);
points3D = points3D ./ 1000;
trainingData = objectDetectorTrainingData(gTruth);
myAFCdetector = trainACFObjectDetector(trainingData,'NumStages',5, 'NegativeSamplesFactor',2);

img = imread('Right_Image.jpg');

[bboxes,scores] = detect(myAFCdetector,img);

for i = 1:length(scores)
   annotation = sprintf('Confidence = %.1f',scores(i));
   I1 = insertObjectAnnotation(img,'rectangle',bboxes(i,:),annotation);
end

figure
imshow(I1)

centroids = [round(bboxes(:, 1) + bboxes(:, 3) / 2), ...
    round(bboxes(:, 2) + bboxes(:, 4) / 2)];

% Find the 3-D world coordinates of the centroids.
centroidsIdx = sub2ind(size(disparityMapBM), centroids(:, 2), centroids(:, 1));
X = points3D(:, :, 1);
Y = points3D(:, :, 2);
Z = points3D(:, :, 3);
centroids3D = [X(centroidsIdx)'; Y(centroidsIdx)'; Z(centroidsIdx)'];

% Find the distances from the camera in meters.
dists = sqrt(sum(centroids3D .^ 2));

% Display the detected people and their distances.
labels = cell(1, numel(dists));
for i = 1:numel(dists)
    labels{i} = sprintf('%0.2f meters', dists(i));
end
figure;
imshow(insertObjectAnnotation(I1, 'rectangle', bboxes, labels));
title('Detected People');

Я обнаружил матрицу NaN в centroids3D . Может ли быть какая-то причина, почему я заполняю эти матрицы NaN?

Centoids3D = [Nan NaN NaN NaN; Nan NaN NaN NaN; Nan NaN NaN NaN]

1 Ответ

0 голосов
/ 23 января 2020

Сначала вам нужно взять эталонный объект, для которого известно расстояние, чтобы получить фокусное расстояние, а затем можно найти расстояние от объекта до камеры.

Вот полное руководство для справки.

...