Стерео сопоставление

Я использую Camera Calibration Toolbox для Matlab. После калибровки у меня есть внутренние и внешние параметры стереосистемы. Далее я хотел бы определить расстояние между системой камеры и объектом. Чтобы получить эту информацию, я использовал функцию stereo_triangulation, которая включена в Toolbox. На входе две матрицы, включающие пиксельные координаты соответствий в левом и правом изображении.

Я пытался получить координаты соответствий с помощью метода Basic Block Matching, который описан в справке Matlab для Stereo Vision.

Разрешение моих картинок - 1280х960 точек. Я знаю, что наибольшая разница составляет около 520 пикселей. Я установил максимальный диапазон диспаратности на 520. Но затем определение координат занимает много времени. Практически невозможно использовать. Расчет карты диспаратности происходит намного быстрее с использованием функции Matlab disparity (). Но я хочу сделать шаг раньше - координаты соответствий.

Подскажите, пожалуйста, как я могу эффективно получить координаты с помощью Matlab?


person PrincAm    schedule 25.11.2013    source источник


Ответы (1)


Диспаратность и 3D связаны простыми формулами (см. Ниже), поэтому время для расчета 3D-данных и карты диспаратности должно быть одинаковым. Обозначения

  • f - фокусное расстояние в пикселях,
  • Б - расстояние между камерами,
  • u, v - строка и столбец в системе с центром в середине изображения,
  • d-несоответствие,
  • x, y, z - 3D координаты.

z=f*B/d;
x=z*u/f;
y=z*v/f;

1280x960 is too large resolution for any correlation stereo to work in real time. Think about it: you have to loop over a 2d image, over 2d correlation window and over the range of disparities. This means 5 embedded loops! I don't work with Matlab anymore but I know that it is quite slow.

person Vlad    schedule 09.03.2014
comment
Я уже решил эту проблему, но спасибо за формулы и рекомендации! Один небольшой вопрос, могу я вас спросить, что вы используете для стереозрения вместо Matlab? - person PrincAm; 10.03.2014
comment
Я использую openCV для калибровки и исправления. Однако не используйте его для стерео сопоставления, напишите свой собственный код. Если вы используете стерео корреляцию, убедитесь, что у вас есть как минимум 4 типа проверки: макс. погрешность, мин. текстуры, back-and-force и blob-noise. Если вы делаете вероятностное стерео, используйте мультиразрешение. - person Vlad; 10.03.2014