Получить 3D-координаты из пикселя 2D-изображения, если известны внешние и внутренние параметры

Я выполняю калибровку камеры из tsai алгоритм. У меня есть внутренняя и внешняя матрица, но как я могу восстановить трехмерные координаты из этой информации?

enter image description here

1) Я могу использовать Gaussi Исключение для поиска X, Y, Z, W и тогда точки будут X / W, Y / W, Z / W как однородная система.

2) Я могу использовать подход документации OpenCV :

enter image description here

насколько я знаю u , v , R , t , я могу вычислить X, Y, Z .

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

Что я делаю не так?

32
задан Kevin Katzke 20 September 2016 в 15:41
поделиться

1 ответ

Как приятно указано в комментариях выше, координаты изображения проектирования 2D в 3D "пространство камеры" по сути требуют составления координат z, поскольку эта информация полностью потеряна в изображении. Одно решение состоит в том, чтобы присвоить фиктивное значение (z = 1) к каждой из 2D точек пространства изображения перед проекцией, как отвечено Jav_Rock.

p          = [x y 1];
projection = H * p;                   //project
projnorm   = projection / p(z);      //normalize

Одна интересная альтернатива этому фиктивному решению должна обучить модель предсказывать глубину каждой точки до перепроекции в 3D пространство камеры. Я попробовал этот метод и имел высокую степень успеха с помощью CNN Pytorch, обученного на 3D ограничительных рамках от набора данных KITTI. Было бы радо предоставить код, но это будет немного длинно для регистрации здесь.

0
ответ дан 27 November 2019 в 21:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: