Как я могу восстановить трехмерную структуру из набора изображений?


24

У меня есть набор контуров (набор отрезков), сгруппированных следующим образом:

Sязнак равно{я0,яπ4,я2π4,...,я7π4}

где

  • Sя обозначает последовательность фотографий одного конкретного объекта.
  • яJ обозначает изображение с точкой зрения ( означает вид спереди). JTчасJзнак равно0

Вот пример (вид сзади): яπ

введите описание изображения здесь

Как я могу реконструировать 3d структуру объекта с заданным ?Sя

Может ли кто-нибудь указать мне на некоторые документы или даже дать мне несколько ключевых слов? Я знаю, что есть много статей, которые работают с облаками точек и так далее, но они не работают, так как я работаю со строками.

Ответы:


20

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

Библия поля - это геометрия множественного обзора в компьютерном зрении Хартли и Циссермана

В книге есть раздел о трифокальном тензоре, который является полилинейным ограничением между 3 видами. Он содержит не только точечные, но и ограничения соответствия строк. Это может быть использовано для реконструкции здания очень хорошо.

Таким образом, ваши контуры должны быть согласованы в первую очередь, и, возможно, их можно восстановить, зная параметры камеры (калибровка камеры также описана в книге). Тогда у вас будут контуры в 3d, но не более того. Для реальных поверхностей вы должны выполнить плотное сопоставление точек. Несмотря на то, что упомянутый тензор выглядит хорошо, он используется для прямых линий, и я уверен, что современный автомобиль имеет изогнутые линии по всему.

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

Другой метод, который мне пришёл в голову, - это визуальный корпус или космическая резьба . Контурная обработка также должна быть сделана. Запустив метод на каждом контуре, вы можете получить модель.


Я получаю эти контуры, применяя Canny, а затем некоторые алгоритмы упрощения линий, которые принимают двоичный растр, а затем возвращают множество ребер. На самом деле, можно использовать простые изображения без фильтров, но причина, по которой я сформулировал задачу таким образом, заключается в том, что мне нужно постоянно вычислять контуры под разными углами (что может иметь довольно низкую дельту: <π/4

1
Я не вижу, как вы получаете неконтурную 3D точку проекцией. Существуют методы трехмерного моделирования, связанные с поверхностями NURBS, натянутыми между сплайнами, но для этого нужно предоставить характерные сплайны. (Возможно, 3D-художник мог бы определить характеристику слова в этом контексте, но не я.) Опять же, я думаю, что форма из контура (такая же, как у визуального корпуса) может создать для вас приблизительную модель. После этого вы можете уточнить его на основе изображений. Но для этого нет стандартных способов.
Балинт Фодор

2

Хотя упомянутые Фодором Хартли и Циссерманом книги, безусловно, стоит прочитать, они скорее для общего понимания, чем для практических алгоритмов. Это довольно устарело, и эти методы не эффективны. По поводу вашей проблемы - сама постановка проблемы очень необычна. Как было отмечено Фодором, начинать с сопоставления характерных точек вместо контуров намного проще. Что касается точек, абсолютно лучший обзор доступных современных методов - это статья Триггса «Настройка пучка - современный синтез». Но прежде чем использовать настройку пучка, вы должны сопоставить соответствующую точку на изображениях, используя что-то вроде SIFT или сопоставление с шаблоном. Google для 3D реконструкциидля примеров некоторых полных методов. Вы также можете использовать пакеты с открытым исходным кодом, есть несколько доступных.

Если вы настаиваете на использовании контуров, проблема намного сложнее, хотя все еще (едва) поддается решению. Сначала вы должны будете идентифицировать и сопоставить соответствующие контуры на всех изображениях, после чего напишите функцию стоимости - суммы ошибок перепроецирования для каждой подобранной группы контуров как функцию от положения камеры и ориентации каждого изображения. После этого найдите набор положения камеры, которые минимизируют эту функцию стоимости. Каждый шаг этого процесса чрезвычайно сложен, и нет хорошего обзора, как Triggs. Вы можете найти в Google некоторые релевантные статьи, так как некоторые сочетания терминов «контуры», «совпадение контуров», «настройка пучка», «ошибка перепроектирования», «трехмерная реконструкция».


Хотя с функциями, подобными SIFT, гораздо проще работать, существует проблема, заключающаяся в том, что SIFT в моем домене часто улавливает тени / отражения на глянцевой поверхности автомобилей, поэтому, используя SIFT, я получаю огромное количество шумовых функций, которые не зависят от фактического форма автомобиля следовательно у меня снижается точность.
om-nom-nom

Вы можете попробовать модельный подход, если знаете, что смотрите на автомобиль. Параметризовать стандартную модель автомобиля и попытаться подогнать ее под изображение, используя все пиксели изображения. Запишите функцию стоимости как функцию параметров камеры и модели автомобиля и минимизируйте ее. Это может сработать (или не сработать) - у вас, похоже, довольно трудная проблема
mirror2image

К сожалению, я не понял, что вы предложили сделать. Пожалуйста, приведите пример (это может быть внешняя статья, связанная работа или что-то в этом роде).
om-nom-nom

Я имею в виду модель активной фигуры en.wikipedia.org/wiki/Active_shape_model или что-то imilar
mirror2image

2

Проверьте Реконструкцию модели из изображений, которая немного отличается от того, что вы делаете, но я говорю о том, как перейти от изображений к 3d-модели. Также проверьте MeshLab , у него есть некоторые алгоритмы реконструкции, в которые вы, возможно, сможете передавать свои данные.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.