Перейти к содержимому
Compvision.ru
Vasily

disparity map - получается какая-то лажа.

Recommended Posts

Всем привет. Пробую построить disparity map для 2-х стерео камер. Для начала решил поиграться с тем, что есть в примерах из OpenCV.

Изображения взял из opencv\samples\cpp\ (leftXX.jpg и rightXX.jpg)

1. откалибровал камеры по этим изображениям (stereo_calib.cpp). получил ошибку RMS error = 0.47

2. построил disparity map (stereo_match.cpp) пробовал алгоритмы Bm, SGBM, HH, VAR. c параметрами по умолчанию, пробовал менять параметры в различных пределах. Всеравно какая-то лажа получается.

Это в OpenCV их же пример криво рабтают? или вообще с disparity там полная ж...?

Вот наиболее лучший результат из того, что получилось

post-5991-0-93763700-1349939988_thumb.jp

Исходные изображения:

Левое: post-5991-0-70873500-1349939999_thumb.jp

Правое: post-5991-0-17630600-1349940008_thumb.jp

У меня задача, построить карту помещения. Нужно стены нормально видеть.

Вообще реально добиться чего-то наподобии

synthetic.gif

или

Disparity_old_timers.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну не знаю, у меня стандартный пример выдает вот что:

post-1-0-43371200-1349961002_thumb.png

по мне, так вполне сносно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну не знаю, у меня стандартный пример выдает вот что:

post-1-0-43371200-1349961002_thumb.png

по мне, так вполне сносно.

а на opencv\samples\cpp\ (leftXX.jpg и rightXX.jpg)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Так это для изображения для калибровки они с дисторсией.

видимо с калибровкой проблема.

Сейчас посмотрю, что у меня получится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У меня вот что получилось на первой паре:

post-1-0-40610800-1349962927_thumb.png

Вот что делал:

post-1-0-58836900-1349963090_thumb.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Vasily, я в аналогичном проекте использовал Semi-Global Block Matching алгоритм, он был единственным, который работал очень хорошо. Здесь все зависит от калибровки камер, а именно от ректификации изображений с левой и правой камер. Это когда точки левого и правого изборажения имеют одинаковые y координаты. Я очень сильно намучался с этой калибровкой. Пришлось лепить целую конструкцию, чтобы камеры не смещались во время движения, иначе вся карта глубины превращалась в мусор и приходилось заново калибровать. Если потребуется могу прислать пример кода и параметров алгоритма.

http://www.cvlibs.net/software/libelas.html Еще посмотрите вот эту библиотеку, выдает очень хорошие результаты при большом расстоянии между камерами. Там же есть библиотека для одометрии и зд реконструкции, как раз что вам и нужно.

А вообще купите кинект, с ним все это гораздо проще.

  • Like 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Подскажите, как можно сравнить disparity maps между собой? Насколько я понимаю, они представляют собой матрицу нормализованную со значениями от 0 до 255 (уже после нормализации). Как можно таким образом сравнить два алгоритма между собой?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Для сравнения алгоритмов есть специальные наборы изображений, куда входит правильная карта глубины, полученная с помощью чего-либо точного (Ground truth).

Вот как здесь, например:

http://www.uni-bonn.de/~uzs75l/MRTStereo/stereo_data/index.html

Прогоняем каждый из алгоритмов и сравниваем с эталоном.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Для сравнения алгоритмов есть специальные наборы изображений, куда входит правильная карта глубины, полученная с помощью чего-либо точного (Ground truth).

Вот как здесь, например:

http://www.uni-bonn.de/~uzs75l/MRTStereo/stereo_data/index.html

Прогоняем каждый из алгоритмов и сравниваем с эталоном.

Спасибо, скажите, зачем указывают две карты диспаритета? Насколько я понимаю, карта диспаритета одна строится по двум изображениям. Какую брать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Еще вопрос, где можно взять набор неректифицированных изображений для теста?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×