Шаги по 3D реконструкции? - PullRequest
0 голосов
/ 09 апреля 2020

Этот вопрос задавался по-разному много раз, многие люди подходят к этой проблеме по-разному. Вот почему я не уверен в своей методологии, было бы хорошо, если бы кто-то мог сказать мне, правильно ли я все делаю.

Шаги, которым я следую, -

  1. Настройка пара стереокамер.
  2. Откалибруйте обе камеры по отдельности, чтобы получить матрицы камер, коэффициенты искажения, используя calibrateCamera
  3. Затем мы вычисляем R, T, E, F, используя stereoCalibrate
  4. Рассчитать R1, R2, P1, P2 и Q, используя stereoRectify
  5. Поскольку я хочу найти трехмерные координаты указанной c точки в моей сцене, я извлекаю координаты этой точки на обоих изображениях, и после этого я использую triangulatePoints, чтобы получить трехмерные точки в однородных координатах.

Верны ли шаги, которым я следую? У меня были проблемы с документацией OpenCV, поэтому мне потребовалось некоторое время, чтобы сформулировать шаги, копаясь в документации. Люди подходили к этой проблеме в OpenCV по-разному, некоторые даже создали Фундаментальные и Основные Матрицы, используя некоторые вспомогательные функции в документации OpenCV, но я думаю, что stereoCalibrate и stereoRectify сами используют эти вспомогательные функции.

Ответы [ 2 ]

0 голосов
/ 22 апреля 2020

Как вы сказали, у каждого свой путь. Как я и пытался, первые 4 шага были одинаковыми, но для вычисления 3d-точки я использовал алгоритмы стереосогласования, присутствующие в OpenCV. Алгоритмы, такие как StereoBM, StereoSGBM, реализованы в OpenCV и предоставляют простые в использовании API.

Итак, как только мы получим карту диспаратности из функции согласования стерео, мы можем получить трехмерные координаты с помощью API reprojectImageTo3D. Требуется карта диспаратности и матрица Q в качестве входных данных.

0 голосов
/ 09 апреля 2020

Шаги теоретически верны. С их помощью вы не получите хороших результатов.

Мой совет - приобрести готовую стереокамеру (на ум приходит ZED или RealSense), в ней уже есть все, что вам нужно, поэтому приходится калибровать или рассчитывать, просто используйте их библиотеки и получите некоторые результаты. Что не будет идеальным, но даст вам хорошее начало.

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

...