Как рассчитать горизонтальный и вертикальный FOV для камер KITTI на основе внутренней матрицы камеры?

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


person vrk-prgmr    schedule 28.11.2019    source источник


Ответы (1)


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

Однако я решил это, используя информацию, доступную в этом документе и еще несколько общих документов по калибровке камеры

Во-первых, нам нужно преобразовать предоставленное несоответствие в расстояние. Это можно сделать, сначала преобразовав карту disp в float с помощью метода в dev_kit, где они заявляют:

disp (u, v) = ((float) I (u, v)) / 256.0;

Затем это несоответствие можно преобразовать в расстояние с помощью уравнения стереозрения по умолчанию:

Глубина = базовая линия * фокусное расстояние / несоответствие

А теперь перейдем к более сложным моментам. Я искал фокусное расстояние повсюду и не смог найти его в документации. Я только что понял, когда писал, что базовая линия задокументирована в вышеупомянутом источнике, однако из раздела IV.B мы видим, что ее можно найти в P (i) прямо косвенно.

P_rects можно найти в файлах калибровки, и они будут использоваться как для расчета базовой линии, так и для преобразования uv на изображении в xyz в реальном мире.

Шаги следующие:

Для пикселей в карте глубины:

xyz_normalised = P_rect \ [u, v, 1]

где u и v - координаты x и y пикселя соответственно

что даст вам xyz_normalised формы [x, y, z, 0] с z = 1. Затем вы можете умножить его на глубину, заданную в этом пикселе, чтобы получить координату xyz.

Для полноты картины, поскольку здесь P_rect - это карта глубины, вам нужно использовать P_3 из txt-файлов калибровки cam_cam, чтобы получить базовую линию (поскольку она содержит базовую линию между цветными камерами), а P_2 принадлежит левой камере, которая используется в качестве ссылка на файлы occ_0.

person Frank Castle    schedule 11.08.2020