Означает ли меньшая ошибка упреждения всегда означает лучшую калибровку?

Во время калибровки камеры обычным советом является использование многих изображений ( > 10) с изменениями позы, глубины и т.д. Однако я замечаю, что, как правило, чем меньше изображений я использую, тем меньше ошибка перепечатки. Например, с 27 изображениями, cv:: calibrateCamera возвращает 0.23, а всего лишь 3 получается 0.11 Это может быть связано с тем, что во время калибровки мы решаем задачу наименьших квадратов для переопределенной системы.

ВОПРОСЫ:

  • Действительно ли мы используем ошибку перепечатки как абсолютную меру того, насколько хороша калибровка? Например, если я откалибрую 3 изображения и получаю 0.11, а затем откалибрую 27 другими изображениями и получим 0,23, можно ли действительно сказать, что "первая калибровка лучше"?

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

Ответ 1

Извините, если это слишком поздно - только увидели.

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

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

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

edit: лучшая процедура калибровки, чем opencv (хотя и основанная на той же концепции) включена в 3D-DIC (бесплатно, но не OSS, зарегистрируйтесь на сайте, чтобы получить ссылку на скачивание), см. руководство по калибровке .