Шаблон и внутренняя калибровка камеры¶
Внутренняя калибровка определяет фокусные параметры, главную точку и дисторсию объектива. Она нужна для геометрических измерений и HandEye. Используйте снимки одной камеры в одном разрешении и с неизменной оптикой. Изменение фокуса или масштаба после съёмки может сделать результат непригодным.
Подготовка печатной мишени¶

- Откройте Калибровка → Генерация шаблона.
- Выберите тип мишени. Для мастера внутренней калибровки подходят Chessboard, ChArUco и CirclesGrid. Генератор также создаёт маркеры ArUco, AprilTag и QR, но наличие формата в генераторе не означает поддержку его монокалибровкой.
- Задайте структуру и физические размеры. Например, для Chessboard укажите 7 внутренних углов по X, 5 по Y и клетку 25 мм.
- В Настройки печати выберите формат и ориентацию листа, проверьте поля и предпросмотр. Если мишень не помещается, увеличьте лист или уменьшите размеры осознанно.
- Нажмите Скачать PDF для печати. Через Другие форматы → Экспорт JSON сохраните параметры рядом с PDF; JSON затем можно импортировать в мастер.
- Распечатайте с масштабом 100%, отключив подгонку под страницу. Измерьте клетку или шаг линейкой и закрепите лист на плоской жёсткой основе.
У Chessboard считаются внутренние углы, а не клетки: 7 × 5 внутренних углов соответствуют 8 × 6 клеткам. У ChArUco задаётся число клеток и отдельно размер маркера; маркер должен помещаться внутри клетки. Для CirclesGrid важны тип сетки, число центров, шаг и диаметр круга. В калибровочном мастере физические размеры вводятся в миллиметрах.
Масштаб экранного предпросмотра не задаёт масштаб печати. Если кнопка Уменьшить шаблон до допустимого размера изменила геометрию, скачайте новый JSON и используйте новые размеры. Не смешивайте старое описание с новой распечаткой.
Съёмка набора¶
Соберите не менее десяти качественных кадров. Минимум для расчёта — три, но это лишь техническое ограничение, а не критерий хорошей калибровки. Снимите мишень в центре, у краёв и углов изображения, с разными наклонами и на нескольких расстояниях. Она должна занимать заметную часть кадра, а точки — оставаться резкими.
Для сбора используйте серию фотографий одной камеры. Меняйте положение между снимками и останавливайте мишень на время экспозиции. Большое число одинаковых фронтальных кадров не заменяет разнообразия ракурсов. Исключите смаз, блики, заметный изгиб листа и кадры из другого разрешения.
Четыре шага мастера¶

- Перейдите в Калибровка → Калибровка камеры, заполните Название сессии, например
front_1280x720_2026-10-06, и нажмите Новая сессия. - На шаге 1. Изображения нажмите Выбрать изображения и добавьте файлы из браузера. Для серверной папки или готовой записи раскройте Из папки или сохранённых материалов.
- Нажмите Настроить шаблон, укажите геометрию и модель объектива, затем Сохранить и проверить снимки.
- На шаге 3. Проверка детекции проверьте наложенные точки, исключите плохие кадры и нажмите Рассчитать калибровку.
- На шаге 4. Результат оцените ошибки, скачайте отчёт и при необходимости примените параметры к камере.
1. Изображения¶
Для импорта с сервера введите Путь к серверной папке и нажмите Загрузить папку. Это путь на машине веб-сервера, а не на компьютере с браузером. Сервер разрешает импорт только из предусмотренных каталогов. Если нужная папка недоступна, используйте загрузку файлов через браузер.
Для сохранённой фотосессии выберите запись в Материалы…, затем нужную камеру в Камера…, после чего нажмите Импортировать из «Материалов». При многокамерной записи каждая камера калибруется отдельной сессией.
2. Шаблон и модель¶
В Тип шаблона выберите Chessboard, ChArUco или CircleGrid. Заполните параметры именно распечатанной мишени либо нажмите Импортировать JSON шаблона. Для ChArUco проверьте словарь, число клеток, размеры клетки и маркера, Border bits.
Автоматическое определение помогает подставить структуру шахматной доски или круговой сетки. Оно не определяет физический масштаб и модель объектива. На обрезанном изображении алгоритм может увидеть лишь часть сетки. После подстановки проверьте полное число точек и подтвердите физические размеры. ChArUco задаётся вручную или через JSON.
Модель камеры → Standard предназначена для стандартной модели дисторсии, Fisheye — для соответствующей широкоугольной модели. Само большое поле зрения не выбирает математическую модель автоматически. В Расширенные параметры модели доступны ограничения коэффициентов; для первого расчёта оставьте исходные параметры, если у вас нет оснований фиксировать отдельные величины.
3. Проверка детекции¶
Просмотрите кадры с найденными точками. Они должны попадать на реальные углы или центры, а не на фон. Флаг Включён определяет участие кадра в расчёте. Снятие флага сохраняет изображение; Удалить кадр удаляет его из сессии после подтверждения.
После добавления снимков используйте Найти точки на новых кадрах. Если изменились параметры шаблона или требуется повторная проверка всего набора — Найти точки заново на всех кадрах. Для расчёта нужны как минимум три включённых кадра с успешной детекцией.
4. Результат и оценка качества¶
Общий RMS показывает ошибку репроекции в пикселях: насколько найденные точки расходятся с проекцией рассчитанной модели. Это не погрешность расстояния в миллиметрах. Малый RMS полезен, но не доказывает правильный масштаб печати или точность измерений на всей сцене.
Раскройте Технические детали и 3D-диагностика, сравните ошибки отдельных кадров и покрытие ракурсами. Если несколько кадров резко хуже остальных, вернитесь к ним: проверьте смаз, геометрию мишени и найденные точки. Не удаляйте все сложные наклонные кадры только ради уменьшения общей цифры — набор должен описывать разные положения. Добавьте недостающие ракурсы и нажмите Пересчитать калибровку. При изменении набора старый результат отмечается как устаревший.
Применение и сохранение¶
Скачайте ROS YAML для ROS-потребителей, JSON для полного результата и HTML-отчёт для просмотра вне приложения. Сессии сохраняются в <recordings_directory>/calibrations и доступны после перезапуска.
В Камера для применения выберите камеру того же разрешения и нажмите Применить к камере. Для RealSense меняется CameraInfo цветного потока; заводская калибровка глубины сохраняется. Применение внутренних параметров само по себе не означает исправление всех исходных изображений.
При первом применении исходная настройка сохраняется как calibration_baseline. Кнопка Вернуть исходную калибровку восстанавливает прежний YAML либо заводскую калибровку, если собственного YAML не было. Сохраняйте исходный файл на диске: baseline хранит его путь, а не заменяет резервное копирование. Для V4L2 без calibration-файла CameraInfo не публикуется; фиктивная матрица не создаётся.