Как вычислить истинную глубину, учитывая карту несоответствия выпрямленных изображений? - PullRequest
0 голосов
/ 11 мая 2018

Я рассчитал карту диспаратности для данной выпрямленной стереопары!Я могу рассчитать глубину по формуле

z = (baseline * focal) / (disparity * p)

. Предположим, что базовая линия, фокусное расстояние и постоянная пикселя p известны, и я использовал одну и ту же камеру для обоих изображений.Теперь возможно, что мое несоответствие находится в диапазоне -32..128 [пиксель].Когда я использую приведенную выше формулу, я получу бесконечность / делится на ноль для моих значений 0 диспаратности.Когда я перемещаю свои значения диспаратности в, скажем, 1..161, я выбрал диапазон моих значений диспаратности произвольно, и это проблема, потому что функция 1 / диспаратность даст совершенно другой интервал значений в 1..161 или 100..260это даже не линейно.Так что я бы даже не получил реконструкцию до (линейного) масштаба, потому что изменение масштаба нелинейное.

Как я могу определить, в какой области должно находиться мое несоответствие, чтобы получить метрическую реконструкцию по приведенной выше формуле?Или просто невозможно что-то реконструировать метрически с помощью приведенной выше формулы и выпрямленных изображений?И если это так, то почему?

(я знаю, что могу перепроецировать на мои не выпрямленные изображения и выполнить триангуляцию, но я хочу знать особенно, ПОЧЕМУ или ЕСЛИ это невозможно с помощью приведенной выше формулы.любой, кто может мне помочь!)

Ответы [ 2 ]

0 голосов
/ 04 июня 2018

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

Параллельная настройка: Формула z = (baseline * focal) / (disparity * p) может использоваться только в том случае, если изображения снимаются с помощью параллельной настройки камеры.Если камеры действительно параллельны, невозможно иметь отрицательные И положительные различия.Таким образом, вы не получите значение диспаратности 0. В этом сценарии 0 соответствует только точке на бесконечности.Если присутствует истинная параллельная настройка, эту формулу можно использовать для реконструкции метрики.

Конвергентная установка: В действительности ваши изображения в основном захватываются конвергентной камерой.Это означает, что в изображениях стереопар существует точка схождения, значение диспаратности которой равно 0. Знак различий перед этой точкой и за этой точкой будет другим.Это означает, что ваше несоответствие содержит значения, которые являются отрицательными, положительными и равными нулю в точке схождения.Несмотря на то, что ваши изображения выпрямлены, вы не можете использовать приведенную выше формулу, потому что изображения были получены с помощью установки конвергентной стереокамеры.Невозможно сместить ваше несоответствие на «только положительные значения со знаком», чтобы правильно использовать формулу.Однако результат с использованием сдвинутых значений будет «чем-то похожим» на правильную 3-D-реконструкцию, но странным образом масштабируется и искажается неизвестным преобразованием.

0 голосов
/ 16 мая 2018

Проблема в том, что выпрямление в целом будет масштабировать и поворачивать ваши изображения, поэтому вы не можете просто переслать глубину проекта от выпрямленной левой камеры и получить метрическую реконструкцию. Скорее, вам нужно отменить исправление на переписках. Вы делаете это, вычисляя проективную матрицу Q, которая отображает несоответствие в 3D. См. Документацию для stereoRectify и reprojectImageTo3D в документации OpenCV.

За несколько моментов или чтобы понять, что происходит, вы можете продолжить шаг за шагом. В форме рецепта:

  • Для каждого пикселя (x, y) в выпрямленном левом изображении найдите несоответствие для соответствующего пикселя в выпрямленном правом: (x ', y') = (x + d, y)
  • Примените к (x, y) и (x ', y') обратные ректификационные гомографии H и H ', получив (u, v) и (u', v ') в исходных координатах изображения.
  • Обратный проецирование этих пикселей и пересечение лучей.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...