Проецирование облака точек на плоскость камеры на основе матрицы проекции - PullRequest
0 голосов
/ 15 октября 2019

У меня есть облако точек, которое я конвертирую из .dat в .ply, используя open3d. Содержимое файла .ply представляет собой матрицу (nx3), соответствующую точкам x, y, z, а также другую (nx3), которая соответствует информации RGB. Общее количество очков более 2 миллионов (лидар был установлен на транспортном средстве). У меня также есть набор стереокамер, которые были установлены вдоль LiDAR (одна слева, одна справа), из которых у меня есть только внутренние параметры камеры.

Я пытаюсь повторить формулу, найденную в нескольких статьях, которую можно увидеть здесь , уравнения 2 и 3. Первоначально она была найдена в статье Набор данных Китти , уравнение 8. По существу, они проецируют облако точек на основе проекции камеры со следующим уравнением: где P - матрица проекции - содержит внутренние параметры камеры, R - выпрямляющая матрица вращения эталонной камеры, T_{cam} ^ {velo} ​​жесткое преобразование мальчика из лидарных координат в координаты камеры и T_ {velo} ​​^ {imu}

Хочу отметить, что не все документы использовали последний параметр (T_{velo} ​​^ {imu}), и поскольку у меня нет информации imu, я опущу этот параметр.

Хотя у меня есть только внутренние параметры камеры, я могу извлечь поворот и перемещение камеры с помощью Essential matrix . Наряду с данными, у меня также есть файл, содержащий поворот, наклон и поворот (в градусах) камеры и лидара в то время, когда изображения были сделаны. Я знаю, что могу извлечь матрицу вращения из этих параметров, но я не совсем уверен, как использовать их в этом случае, в частности, чтобы получить преобразование твердого тела из лидара в координаты камеры. Я должен также упомянуть, что у меня есть реальные координаты камеры на момент съемки каждого изображения (в координатах x, y, z).

1 Ответ

0 голосов
/ 15 октября 2019

Вот подробный ответ для преобразования точек между лидаром и системой координат камеры. Я использовал однородное представление трехмерных преобразований (матрицы 4х4), потому что им легче манипулировать, но было бы точно так же, если бы вы использовали вместо этого R и T. (уравнение будет только длиннее)

enter image description here

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