Как получить положение камеры из таких данных, генерируемых детектором ЛСД линий? - PullRequest
2 голосов
/ 09 сентября 2010

Так, например, у меня есть such image таких линий с координатами. как (используя какой алгоритм) можно создать какую-то простую трехмерную сцену, означающую получить относительное расстояние от камеры до стены, которая стоит перед нами?

1 Ответ

3 голосов
/ 11 мая 2011

Начальная точка: http://en.wikipedia.org/wiki/Pinhole_camera_model и один из справочника: Ричард Хартли и Эндрю Циссерман (2003).Multiple View Geometry в компьютерном зрении.Издательство Кембриджского университета.

Для реализации на C ++: http://opencv.willowgarage.com/documentation/cpp/calib3d_camera_calibration_and_3d_reconstruction.html

Очень простой подход: имейте в виду, что это просто для объяснения общих принципов.

Предполагая, что вы знаете меры в реальном мире сеток на стенах (керамическая плитка?), Вы можете откалибровать камеру и получить внутренние и внешние параметры камеры;из этих параметров вы можете получить положение камеры на сцене реального мира ( центр камеры ).

Например, вы можете поместить начало координатной системы XYZ в верхний угол, гдеправая вертикальная стена встречается со стенкой, обращенной к камере, затем вы измеряете в реальном мире координаты углов каждой плитки в системе отсчета XYZ, поэтому у вас есть набор трехмерных точек (назовем их objectPoints), единица измеренияиз этих точек миллиметр (или дюйм).

3D-точки не должны быть на одной плоскости.

Тогда вам нужно найти те же точки на изображении, и вы получите набор2D точек, «единицей измерения» этих точек является пиксель (давайте назовем их imagePoints).

3D-2D соответствие - это входные данные для алгоритма, который дает вам параметры камеры (см. дляпример http://en.wikipedia.org/wiki/Camera_resectioning или функция OpenCV calibrateCamera http://opencv.willowgarage.com/documentation/cpp/calib3d_camera_calibration_and_3d_reconstruction.html#cv-calibratecamera, которые принимают objectPoints в качестве первого параметра и imagePoints в качестве второго параметра)

Из параметров камерыВы можете получить центр камеры , то есть расстояние от камеры до (0,0,0) эталонной системы XYZ.

...