Войти
ПрограммированиеФорумГрафика

Восстановить 3D камеру по 2D картинке

Страницы: 1 2 Следующая »
#0
12:57, 10 ноя. 2009

Привет.
Стоит задача задать виртуальную 3D камеру по 2D картинке.
Есть стоп-кадр футбольного матча. На кадре видна вратарская зона. Координаты углов нам известны.
BackImage01 | Восстановить 3D камеру по 2D картинке
Есть 3D сцена с такой же футбольной поляной, вратарская зона в ней нам известна. Нужно выставить 3D камеру так,
чтобы вид из неё совпадал с 2D картинкой.
Есть мысли как это реализовать? Может кто видел материалы на эту тему? По сути нужно восстановить камеру по
известному прямоугольнику. Нужно получить для камеры Pos, Target и Fov.


#1
13:16, 10 ноя. 2009

камера трекинг называется это

#2
13:40, 10 ноя. 2009

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

#3
17:44, 10 ноя. 2009

На снимке присутствуют прямоугольники с известными сторонами: (вратарская зона, что-ли?) и ворота.
{x1,y1,x2,y2,x3,y3,x4,y4,..,x8,y8} - координаты углов на картинке. Пусть характеристики камеры известны (фокусное расстояние, угол обзора и т.д.), то есть матрица проекции у нас есть. Положение камеры содержится в матрице вида.
Пишем систему уравнений про матрицу вида, типа:
R_i*M_view*M_proj={xi,yi,zi}, где R_i - радиус-вектор i-той  точки в вашей 3d модели.

И решаем её. Если получится =).

#4
20:13, 10 ноя. 2009

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

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

#5
20:30, 10 ноя. 2009

my.name
> возможно вычисления упростятся, если заметить, что у камеры две степени свободы
Конечно. Если знаешь, как может двигаться камера, добавляются более простые уравнения. Если у автора есть 3d модель стадиона, может он знает и как камера может стоять? Но решить эту задачу в общем случае тоже полезно.

Ах, да. Там в 0 посте всё написано, что нужно найти.
PS. Там получается самая обычная система линейных уравнений, правда громоздкая. Но Maple никто не отменял.

#6
11:47, 11 ноя. 2009

Проблема ещё и с Fov. Перспективные искажения делают противоположные стороны прямоугольника не параллельными.
Без этого факта можно было бы как-то судить о наклонах камеры (нужно только два угла по X и Y). А так для 4 точек прямоугольника есть система ур-ий:

ScreenPos(i) = WorldPos(i) * mView * mProj

#7
13:26, 11 ноя. 2009

Да, 4 векторных уравнения, или 8 "обычных". Для получения всех компонентов матрицы вида нужно, кажется, 6 уравнений: углы поворота вокруг 3х осей, и 3 компоненты вектора смещения. То есть матрицу вида из этого можно получить, да и 2х оставшихся на AspectRatio и FOV хватит. Как из матрицы вида вытащить Pos, Target - тут надо подумать...
Или не надо. Засунуть в эту систему уравнений компоненты матриц, расписанные по известным формулам.

#8
14:00, 11 ноя. 2009

Для 3д-макса есть плагинчики - задаёшь несколько точек в 3д-сцене, и их проекции на экране. И оно само камеру ставит.

#9
16:21, 11 ноя. 2009

Kroll
Значит так, скажу сразу реалтаймовый трекер ты вряд ли сам сделаешь, но если все же решишься, то вот ссылочки:

http://www.blendernation.com/camera-tracking-using-the-game-engine
http://www.cs.bris.ac.uk/Research/MobileWearable/camtrack.html

Если же нужно сделать это в оффлайне, то смотри PFTrack и 2d3 Boujou

#10
16:45, 11 ноя. 2009

BUzer
Как называются не вспомнишь?
en emot
Спасибо, посмотрим.

Ну на выставках полно буржуйского софта, юзают в реал-тайм, даже в HD.

#11
17:10, 11 ноя. 2009

> Ну на выставках полно буржуйского софта, юзают в реал-тайм, даже в HD

У всех у них качество трекинга оставляет желать лучшего

#12
17:34, 11 ноя. 2009

en emot
В реале возможно, не испытывали )).  Просто для выставки готовят офигенные демы.

#13
17:48, 11 ноя. 2009

Советую Matlab 2008. Там есть много готовых инструментов для обработки видео: выделение углов и т.д. Уже готовых.

#14
22:47, 11 ноя. 2009

my.name
> возможно вычисления упростятся, если заметить, что у камеры две степени свободы
Если две, то, конечно, упростятся.
Но лучше посчитать:
1. Х
2. Y
3. Z
4. азимут
5. наклон к горизонту
6. угол крена
7. раствор по вертикали
8. раствор по горизонтали

Собственно, выше уже говорили о 8 уравнениях.
Правильно говорили.

Страницы: 1 2 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.