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

stereo 3d reconstruction

Recommended Posts

Добрый день. Возникла задача в 3d реконструкции местности, с помощью стерео системы. Конкретно интересует потоковая "склейка" карт глубин. Может есть у кого какие-то источники примитивных алгоритмов без кучи фреймворков и надстроек. OpenSlam, orbslam и т.д находил уже.

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


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

Склейка - это что-то типа ICP (пример из OpenCV)?

Или какие алгоритмы имеются ввиду?

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


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

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

Что-то вроде этого:

Единственная проблема это вычислительная сложность алгоритмов и их реализация. Планируется доработка и перенос кода в железо.  

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


Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, mult1plexer сказал:

Добрый день. Возникла задача в 3d реконструкции местности, с помощью стерео системы.

Стерео-система имеется ввиду 2 камеры или обычный Structure from motion с одной камеры?

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


Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, mult1plexer сказал:

 

Единственная проблема это вычислительная сложность алгоритмов и их реализация.

Это да ))) Тут или фреймворки копать или самим писать на основе OpenCV http://docs.opencv.org/2.4/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html

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


Ссылка на сообщение
Поделиться на других сайтах
20 часов назад, fotomer сказал:

Стерео-система имеется ввиду 2 камеры или обычный Structure from motion с одной камеры?

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

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


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

Open Drone Map, OpenSFM, OpenMVG смотрели ?

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


Ссылка на сообщение
Поделиться на других сайтах
43 минуты назад, Smorodov сказал:

Open Drone Map, OpenSFM, OpenMVG смотрели ?

Да. все что на поверхности уже смотрел. опять же набор фреймворков.   

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


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

@mult1plexer   Есть еще довольно старый проект, но поковырять кишки можно: https://github.com/anuranbaka/OpenDTAM

ну и PTAM от местного товарища: https://github.com/BelBES/PTAM это разгруженная версия вот этого https://github.com/Oxford-PTAM/PTAM-GPL/tree/master/Src . Такие проекты любят пришивать к ROS, BLAS и либам разреженной математики, т.к. математики там действительно прилично и писать с нуля мало кому охота.

  • Like 1

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


Ссылка на сообщение
Поделиться на других сайтах
22 часа назад, Smorodov сказал:

@mult1plexer   Есть еще довольно старый проект, но поковырять кишки можно: https://github.com/anuranbaka/OpenDTAM

ну и PTAM от местного товарища: https://github.com/BelBES/PTAM это разгруженная версия вот этого https://github.com/Oxford-PTAM/PTAM-GPL/tree/master/Src . Такие проекты любят пришивать к ROS, BLAS и либам разреженной математики, т.к. математики там действительно прилично и писать с нуля мало кому охота.

За это спасибо. Посмотрю. Есть идея еще средствами opencv все сделать. Но не находил описательной формы алгоритма. конкретно уточнение и обновление накопленной информации. Не встречали что то подобное?

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


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

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

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

- делаешь undistortImage в соответсвии с этой матрицей К.

- исправленные фотки передашь findFundamentalMat, получашь матриу F.

- матрица E = K'TF K

- Матрицу Е передаешь в функцию SVD и получаешь искомые R t матрица вращения и переноса между фотками.

- далее делашь триангуляция, т.е. получаешь координаты точек в пространстве.

Я это все проделал, но данные на выходе получились плоховатые. Сейчас копаю OpenMVG, но слишком там все запутано.

Если что получится сделать напиши.

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


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

Еще один проект: https://github.com/tum-vision/mono_dataset_code

PTAM: https://www.robots.ox.ac.uk/~vgg/rg/papers/klein_murray__2007__ptam.pdf

DTAM: https://www.robots.ox.ac.uk/~vgg/rg/papers/newcombe_davison__2011__dtam.pdf

Ну и этот проект тоже вроде может пригодиться : https://github.com/mp3guy/ElasticFusion , но тут RGBD.

 

 

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


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

Интересно, а на чем сейчас модно отрисовывать облака точек с наложением текстур? Может OpenCV Viz? OpenGL слишком низкоуровневый.

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


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

Может http://pointclouds.org/ ?

http://pointclouds.org/documentation/tutorials/correspondence_grouping.php#correspondence-grouping

Да тут наверное проще на шейдерах написать или взять какой нибудь фреймворк для отрисовки.

Недавно юзал этот: https://github.com/bkaradzic/bgfx правда не для точек, кросс-платформенный и вроде без лишних хвостов.

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


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

OpenCV Viz - это обёртка над VTK. Его и используют.

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


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

С VTK у меня не сложилось как-то, заморочно матрицами проекции управлять было, плохой осадок остался. 

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


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

openMVG + openMVS, снято с коптера DJI Фантом, пирамида в Подмосковье, которую недавно ураган порушил. Это собралась хорошо, а на других вариантах openMVG работает стабильно, а openMVS падает при построении сетки, в отладчике при сохранении сетки обращение к индексу вне диапазона.

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

 

94068a88216c.jpg

  • Like 1

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


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

openMVG + openMVS эта связка умеет тоже самое что умеет Photoscan, т.е. создание orthophoto, DEM, экспорт параметров камер?

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


Ссылка на сообщение
Поделиться на других сайтах
28 минут назад, mrgloom сказал:

openMVG + openMVS эта связка умеет тоже самое что умеет Photoscan, т.е. создание orthophoto, DEM, экспорт параметров камер?

Сравнение https://habrahabr.ru/post/320766/

orthophoto не умеет, но коорд. GPS умеет всасывать. Сейчас хочу реализовать orthophoto, смотрю как в openDroneMap реализовано. Есть кстати мысли как orthophoto  прикрутить?

openMVG  сохраняет только в ply. Из экспорта есть файлик exportCameraFrustum но фик знает что это такое.

З.Ы. Сфоткал коробку на столе и загрузил в pix4D. Так вот openMVS явно лучше текстуру сделал, все буквы на коробке читаются, а pix4D буквы размазал.

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


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

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

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

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

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

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

Войти

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

Войти сейчас


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

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

×