2013-12-08 5 views
-1

Мне нужно сделать 3D-реконструкцию с 2D-изображений. Мой учитель сказал мне, что первый шаг - получить матрицу камеры, сделав несколько снимков на шахматной доске. У меня уже есть эти фотографии, и я использую OpenCV для получения матрицы камеры. Матрица имеет такой вид:плотная 3D-реконструкция с матрицей камеры

Camera Matrix

Что я должен делать сейчас? Мой учитель сказал мне, что мне нужно получить некоторые функции из изображений, а затем сопоставить их ... Но как я могу использовать эту матрицу? Я читал о Structure-from-motion, но я ничего не нашел об использовании этой матрицы. Каков процесс, когда у меня есть совпадения с изображениями?

+0

* Вопросы, требующие кода, должны демонстрировать минимальное понимание решаемой проблемы. Включите попытки решения, почему они не работают, и ожидаемые результаты * – Manu343726

+0

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

+0

@ Manu343726, эта цитата здесь не имеет значения, поскольку OP не запрашивает код. –

ответ

8

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

Эта матрица называется матрицей калибровки камеры (или в фотограмметрических терминах, внутренняя ориентация). Как правило, алгоритм Structure from Motion требует этого для каждой камеры, оттуда вы должны определить внешнюю ориентацию каждой камеры. Экстремальная ориентация включает в себя положение X, Y, Z в пространстве, а также описание направления направления для камеры (часто описываемого углами эйлеров). Это можно сделать, используя соответствующие функции. Когда у вас есть внешний вид, вы можете использовать эту информацию с функциями для триангуляции соответствующих функций.

Так резюмировать общий процесс SFM:

  1. Калибровка камеры (вы это сделали).
  2. Собрать изображения через сцену.
  3. Найти и сопоставить функции между каждым изображением (см. Модуль OpenCV feature2d).
  4. Используя соответствующие функции, чтобы оценить камеру позы каждого кадра
  5. Использование камеры представляют и соответствующие функции для триангуляции 3D структуры для каждой точки соответствия

Заключительный шаг в большинстве процессов SFM использовать Bundle Adjustment, чтобы оптимизировать структуру (и позе камеры) для сцены. Это, как правило, очень сложно кодировать, поэтому стоит посмотреть на уже существующие реализации, такие как Lourakis' SBA.

Если вы хотите посмотреть популярные существующие реализации SfM, зайдите в Bundler, написанный Ноа Снавли. Также, для плотной 3d реконструкции, посмотрите на PMVS. Наконец, для полного рабочего процесса, проверьте VisualSfM.

Если вы ищете больше похожую на трехмерную реконструкцию на основе стереокамер, есть много tutorials онлайн об использовании OpenCV для этого.

+0

Большое спасибо. Я только что поговорил с моим учителем, и он объясняет мне, что я должен попытаться использовать стереокамерный подход, но с помощью простой камеры и с использованием этого подхода попытайтесь получить плотную реконструкцию. Есть ли осложнения, если вы не используете стереокамеру? – user3080294

+0

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

+0

+1: Хороший ответ! –