Есть ли способ выровнять плоскость обзора моей камеры параллельно поверхности объекта в сцене? - PullRequest
0 голосов
/ 09 января 2019

Я настраиваю две камеры ортогонально, чтобы каждая камера могла видеть одну из смежных поверхностей куба, помещенных посередине, а угол между основными линиями двух камер составляет 90 градусов. Я думаю о том, чтобы вставить две шахматные фигуры на каждой стороне куба, чтобы увидеть их, чтобы помочь выравниванию. Как мне действовать или есть другие варианты?

Макет в основном такой: enter image description here

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

Заранее спасибо.

Изменить:
Расстояние между центром куба и плоскостями обзора двух камер составляет 400 дюймов;
фокусное расстояние камеры составляет 0,77 дюйма;
горизонтальный угол обзора FOV (поле зрения) составляет 0,95 рад;
соотношение сторон вида 1280x720.

Куб работает как эталонный объект только для настройки камер. Он может быть большим или маленьким, в то время как я предполагаю, что разумным будет куб 1м х 1м х 1м

Здесь влияние тепловых условий можно игнорировать.

Ошибка, к которой я стремлюсь, равна + -1 градус. Кажется, выполнение калибровки на целевой стороне дает мне меньше ошибок по сравнению с использованием чего-то вроде пузырьковой трубки на стороне камеры.

Я использовал метод оценки позы с шахматной доской (https://opencv -python-tutroals.readthedocs.io / en / latest / py_tutorials / py_calib3d / py_pose / py_pose.html ). Но она перестала работать или перестала быть точной, когда вектор нормали поверхности шахматной доски совмещен с вектором нормали от плоскости обзора камеры.

Есть ли другие способы решения проблемы, описанной выше?

1 Ответ

0 голосов
/ 06 февраля 2019

Оценка позы должна быть достаточной (почему она перестала работать в вашем случае ??). или вам может понадобиться альтернативная калибровка, прокрутите ниже!

первый. Вы определяете внутренние параметры обеих камер.

второй. Вы помещаете шахматную доску, которая является хорошим вариантом, так как вы будете получать более точные результаты изображения, определяя углы. Вы уже знаете геометрию и расстояние от этой фигуры, и вы определяете верхний левый угол шахматной доски как начало координат (0,0,0), как стандартная opencv (не так ли?).

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

четвёртый. Вы регулируете положение камеры в желаемых 90 градусов. в этот момент убедитесь, что стороны куба, на которых вы положили шахматную доску, тоже идеально наклонены на 90 градусов. Вы можете использовать комбинацию ручной калибровки и оценки поз из opencv.

альтернативы: (калибровка источника света)

Вы можете использовать концепцию интерферометра из оптической физики, заменить камеру на источник света и тщательно пометить ее место. замените куб на призматическую линзу и тщательно отметьте его место.

Вы можете позаимствовать концепцию интерферрометра и установить ее в собственном термине.

как только вы получите то, что хотите, верните камеру назад и возьмите ее в качестве исходного положения поворота и перемещения на шаге 3 выше.

...