Трехмерная реконструкция траектории по видео (снято одной камерой) - PullRequest
4 голосов
/ 13 февраля 2012

В настоящее время я пытаюсь воссоздать трехмерную траекторию падающего объекта, такого как шар или камень, из последовательности изображений, снятых с видео с iPhone.

С чего мне начать искать? Я знаю, что должен откалибровать камеру (я думаю, что я буду использовать набор инструментов для калибровки matlab от Jean-Yves Bouguet), а затем найти точку схода из той же последовательности, но тогда я действительно застрял.

Ответы [ 2 ]

4 голосов
/ 13 февраля 2012

читать это: http://www.cs.auckland.ac.nz/courses/compsci773s1c/lectures/773-GG/lectA-773.htm это объясняет 3D-реконструкцию с использованием двух камер. Теперь для простого резюме, посмотрите на рисунок с этого сайта:

3d reconstruction from stereovision

Вы знаете только pr / pl, изображение указывает. Проводя линию от их соответствующих фокальных точек Or / Ol, вы получаете две линии (Pr / Pl), которые обе содержат точку P. Поскольку вы знаете происхождение и ориентацию двух камер, вы можете построить трехмерные уравнения для этих линий. Таким образом, их пересечение - это 3-я точка, вуаля, это так просто.

Но когда вы сбрасываете одну камеру (скажем, левую), вы точно знаете только строку Pr. Чего не хватает, так это глубины. К счастью, вы знаете радиус своего шара, эта дополнительная информация может дать вам недостающую информацию о глубине. см. следующий рисунок (не обращайте внимания на мои навыки рисования): bal projection

Теперь вы знаете глубину, используя теорему о перехвате

Я вижу еще одну проблему: форма шара изменяется при проецировании под углом (то есть не перпендикулярно плоскости захвата). Однако вы знаете угол, так что компенсация возможна, но я оставлю это на ваше усмотрение: p

edit: комментарий @ripkars (поле для комментариев было слишком маленьким)

1) ок

2) ага, проблема соответствия: D Обычно решается с помощью корреляционного анализа или сопоставления признаков (в основном сопоставление с последующим отслеживанием в видео). (существуют и другие методы) Я не пользовался набором инструментов для работы с изображениями / видением, но определенно должны быть некоторые вещи, которые помогут вам в пути.

3) = калибровка ваших камер. Обычно вы должны делать это только один раз, при установке камер (и каждый раз, когда вы меняете их относительное положение)

4) да, просто примените уравнение Лонге-Хиггинса, то есть: решите

P = C1 + mu1*R1*K1^(-1)*p1
P = C2 + mu2*R2*K2^(-1)*p2

с P = 3D точка для поиска C = центр камеры (вектор) R = матрица вращения, выражающая ориентацию первой камеры в мире кадра. K = калибровочная матрица камеры (содержащая внутренние параметры камеры, не путать с внешними параметрами, содержащимися в R и C) p1 и p2 = точки изображения mu = параметр, выражающий положение P на линии проекции от центра камеры C к P (если я прав, R * K ^ -1 * p выражает линейное уравнение / вектор, указывающий от C к P)

это 6 уравнений, содержащих 5 неизвестных: mu1, mu2 и P

edit: комментарий @ripkars (поле комментария снова слишком маленькое) Единственная компьютерная библиотека визуалов, которая появляется у меня в голове, - это OpenCV (http://opencv.willowgarage.com/wiki). Но это библиотека C, а не Matlab ... Я думаю, Google - твой друг;)

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

Выбор кадра мира является произвольным; это становится важным только тогда, когда вы хотите проанализировать полученные 3D-данные впоследствии: например, вы можете выровнять одну из мировых плоскостей с плоскостью движения -> упрощенное уравнение движения, если вы хотите подобрать одну. Этот мир кадр только опорный кадр, изменчива с «изменением трансформации системы отсчета» (перевод и / или преобразования вращения)

4 голосов
/ 13 февраля 2012

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

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

Редактировать (1): , как @GuntherStruyf указывает правильно, вы можете узнать положение, если один из вашихвходные данные - размер мяча.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...