Как проверить правильность калибровки камеры? (или как оценить погрешность перепроецирование)

качество калибровки измеряется ошибка репроецирования (есть ли альтернатива?), для чего требуется знание мировых координат некоторой 3d-точки(точек).

есть ли простой способ получить такие известные точки? Есть ли способ проверить калибровку каким-либо другим способом (например, метод калибровки Чжана требует только, чтобы объект калибровки был плоским, а геометрия системы не должна быть известна)

3 ответов


вы можете проверить точность оцененных параметров нелинейных искажений объектива независимо от позы. Захват изображений прямых краев (например, отвес или лазерная полоса на плоской поверхности), охватывающих поле зрения (простой способ охватить FOV-это повернуть камеру, удерживая отвес фиксированной, а затем добавить все изображения). Выберите точки На указанных линейных изображениях, отмените их координаты, установите математические линии, вычислите ошибку.

для линейной части, вы также можете Захват изображений нескольких плоских установок в известной относительной позе, либо перемещение одной плоской цели с повторяемой / точной установкой (например, поворотный стол), либо установка нескольких плоских целей под известными углами друг от друга (например, три плоскости под 90 ° друг от друга).

Как всегда, компромисс между требованиями к точности и бюджетом. С достаточными деньгами и дружественным автомастерской поблизости вы можете позволить вашей фантазии одичать с геометрией буровой установки. Когда-то у меня был додекаэдр. размер грейпфрута, обработанный из белого пластика до 1/20 мм спецификации. Используется для калибровки положения камеры на торцевом эффекторе роботизированной руки, перемещая ее по сфере вокруг неподвижной точки. Додекаэдр обладает действительно хорошими свойствами в отношении углов окклюзии. Излишне говорить, что все это запатентовано.


изображения используемые в производить внутреннеприсущую тарировку можно также использовать для того чтобы проверить ее. Хорошим примером этого является камера-calib инструмент из инструментария программирования мобильных роботов (MRPT).

согласно методу Чжана, калибровка MRPT происходит следующим образом:

  1. обработка входных изображений:

    • 1a. Найдите цель калибровки (извлеките углы шахматной доски)
    • 1b. Оценить позу камеры относительно цели, предполагая, что целью является плоская шахматная доска с известным числом пересечений.
    • 1С. Назначьте точки На изображении модели калибровочной цели в относительных 3D координатах.
  2. найдите внутреннюю калибровку, которая лучше всего объясняет все модели, созданные в 1b / c.

Как только внутреннеприсущая тарировка произведена, мы можем пойти назад к изображениям источника.

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

это отобразит относительные 3D-точки из целевой модели обратно в исходное изображение 2D-калибровки. Разница между исходным элементом изображения (углом шахматной доски) и перепроектированной точкой-это ошибка калибровки.

MRPT выполняет этот тест на всех входных изображений и даст вам совокупную перепроецирование ошибка.

Если вы хотите проверить полную систему, включая как встроенную камеру, так и преобразование камеры в мир, вам, вероятно, нужно будет построить джиг, который помещает камеру и цель в известную конфигурацию, а затем протестировать вычисленные 3D-точки против реальных измерений.


на вопрос двигателя: матрица позы-это матрица [R|t], где R-Чистое 3D-вращение и T-вектор перевода. Если вы вычислили гомографию из изображения, раздел 3.1 технического отчета корпорации Майкрософт Чжана (http://research.microsoft.com/en-us/um/people/zhang/Papers/TR98-71.pdf) дает метод закрытой формы для получения как R, так и t, используя известную гомографию и внутреннюю матрицу камеры K. ( я не могу комментировать, поэтому я добавил в качестве нового ответа)