OpenCV Расчет глубины стереокамеры - PullRequest
0 голосов
/ 23 октября 2018

Мы работали над полным решением с использованием OpenCV и пары камер для определения расстояния обнаруженных объектов в сцене.
Нам удалось выполнить калибровку и получить разумное облако точек, которые мы можем отобразить.
Настройка калибровки не была идеальной, но результат выглядел удовлетворительным.

Это прояснило, что мы продолжили вычисление расстояния, используя внутренние и внешние данные, полученные в процессе калибровки.
Карта диспаратности выглядит хорошо иглубина сцены при визуализации имеет смысл.

Что не имеет смысла, так это рассчитанное расстояние.

Я все поставил на карту: https://github.com/depauwjimmy/stereoDepthPerception

Картинкинаходятся в левом / правом каталоге.
Результат калибровки находится в обоих файлах yml.
Для справки я использую поле над дровяной печью в центре.Реальное расстояние поля составляет 3 метра.
Я использовал для калибровки квадратный размер 3,5 см.

Я пытался с помощью различных способов и параметров получить карту диспаратности, но всегда получаю результат около 130 (без умножения на squareSize), который слишком низок.reprojectImageTo3D дает тот же результат.Если я умножу на размер моего квадрата, он окажется слишком высоким.

Теперь мне интересно, где может быть проблема.
Не является ли калибровка недостаточно хорошей и приводит к таким ошибкам?
ЧтоЯвляется ли влияние квадрата размера, используемого при калибровке, правильно ли умножать на него результат?
Может быть, мне следует это сделать, но я делаю это неправильно.Или, может быть, мне следует выполнить калибровку с использованием квадрата размером 1, а затем умножить результат на 3,5.

Правильный ли мой код для расчета расстояния?

Любая помощь будет высоко оценена.

Редактировать:

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

/ data / set_1 все еще полностью отключен для расстояния, что бы я ни пытался.
/ data / set_2 иset_3 лучше и правильно оценивают некоторые объекты, где другие невелики.
Кажется, что падающая тень сильно влияет на возникновение ошибок.В первом поле спереди есть единица, и указанная глубина неверна.
Кажется, что требуется располагать объект на разных расстояниях, чтобы карта диспаратности была точной.
Интересно, можно ли использовать эту систему?во внешней / неконтролируемой среде.

...