По одному снимку нужно определить 3D-координаты камеры в системе координат, привязанной к маркеру.
Маркер - квадрат на плоскости известного размера. Начало координат - один из углов маркера.
Вершины маркера на изображении уже найдены.
Внутренние параметры камеры известны (камера откалибрована).
Задача сводится к нахождению матрицы внешних параметров камеры (extrinsic).
C=R|T
Решить СЛАУ для вычисления полной матрицы проекций по 4 точкам на плоскости не получается - уравнений не хватает. Неизвестных 12, а уравнений всего 8 (по 2 на каждую точку).
По четырем можно вычислить матрицу гомографии. Это получилось сделать.
Как, зная матрицу гомографии, вычислить координаты камеры в мировых координатах (x,y,z)?
И можно ли это вообще сделать?
В приложениях дополненной реальности вроде бы эта задача решается.
Вроде бы даже с 4-я точками.
Мне хочется понять математику процесса, а не использовать ф-ии из готовых библиотек.
Если получится решить такую ситсему (она несколько упрощена в части внутренних параметров камеры: фокус, главная точка и прочее, но по сути то же самое), то
результатом будут значения мировых координат 3-х точек маркера в системе отчета привязанной к камере.
Для решения моей задачи далее нужно будет сменить базис: начало координат перенести в одну из этих точек, оси развернуть по катетам треугольника. Иначе говоря нужно найти матрицу евклидова преобразования. Тоесть опять решить систему уравнений.
3 точки не дадут достаточного кол-ва уравнений для ее решения.
Исходная приведенная система уравнений с треугольником нелинейная и по мне так не факт, что она решится.