Какие бывают калибровки камер
Что проверяют
Понимаете ли вы, какие параметры камеры вообще оцениваются и зачем они нужны дальше в пайплайне: для 3D-реконструкции, измерений по кадру, совмещения с лидаром. Следом обычно спрашивают, как понять, что калибровка получилась хорошей.
Как отвечать
Разделите калибровки по тому, что они находят:
- внутренняя (intrinsic): матрица камеры с фокусными расстояниями
fx,fyи главной точкойcx,cy, плюс коэффициенты дисторсии: радиальныеk1,k2,k3и тангенциальныеp1,p2. Для широкоугольных объективов нужна отдельная модель, в OpenCV это модульcv2.fisheye; - внешняя (extrinsic): поворот
Rи сдвигtкамеры относительно мира или другого датчика; - стерео и многокамерная: взаимное положение камер и база между ними,
cv2.stereoCalibrate, затемcv2.stereoRectify, чтобы эпиполярные линии стали горизонтальными и можно было считать карту глубины; - между датчиками: камера и лидар, камера и IMU (для этого часто берут Kalibr), рука и глаз робота через
cv2.calibrateHandEye; - фотометрическая: виньетирование, отклик сенсора, баланс белого. Важна, когда модель чувствительна к цвету и яркости.
Классический способ внутренней калибровки это метод Чжана: плоскую шахматную доску снимают в нескольких десятках положений под разными углами, углы находят через cv2.findChessboardCorners и уточняют cv2.cornerSubPix, параметры считает cv2.calibrateCamera. Доска ChArUco устойчивее: её распознают, даже если часть закрыта или ушла за край кадра. Качество оценивают по ошибке репроекции (хорошим результатом обычно считают доли пикселя) и проверкой на кадрах, которые в калибровку не входили.
Где спотыкаются
Снимают доску только в центре кадра и фронтально. Дисторсия сильнее всего у краёв, и без наклонных снимков по краям коэффициенты получаются неверными.
Считают, что низкая ошибка репроекции гарантирует точность. Её можно получить на однообразных кадрах, где модель просто подогналась, поэтому нужна проверка на отложенных снимках.
Меняют фокус, зум или режим кадрирования сенсора после калибровки. Внутренние параметры привязаны к конкретному режиму съёмки, и при такой смене их нужно считать заново.