Калибровка камеры

Калибровка камеры может значительно повысить качество работы модулей, связанным с компьютерным зрением: распознавание ArUco-маркеров и Optical Flow.

При калибровке камеры подбираются параметры, наиболее хорошо описывающие конкретный установленный объектив. Данные параметры включают в себя фокусные расстояния, расположение точки principal point (которое зависит от того, насколько ровно по центру установлен объектив), коэффициенты дисторсии D. Подробнее про использующуюся модель искажений камеры можно прочитать в документации OpenCV.

Существует несколько инструментов, которые позволяют откалибровать камеру и прописать вычисленные параметры в систему. Обычно, они используют калибровочные изображения: "шахматные доски" (Chessboard), а так же комбинации шахматной доски и сетки ArUco-маркеров (ChArUco).

Убедитесь что файл калибровки камеры, который лежит в проекте Техника соответствует вашей камере. В данный момент в проекте лежит калибровка для модели AR0234, вы можете его отдельно скачать по ссылке fisheye_cam.yaml

Если ваша камера отличается, сделайте калибровку для вашей модели камеры

ROS-пакет camera_calibration

Основной туториал: http://wiki.ros.org/camera_calibration/Tutorials/MonocularCalibration.

Для калибровки камеры с использованием ROS-пакета camera_calibration необходим компьютер с установленным ОС GNU/Linux и ROS Noetic.

ROS Camera Calibrator

  1. Используя Терминал, установите на компьютер пакет camera_calibration:

     sudo apt-get install ros-noetic-camera-calibration
    
  2. Скачайте калибровочную доску – chessboard.pdf. Распечатайте доску на бумаге, приклейте ее к плоской поверхности

  3. Запустите калибровку (на компьютере):

    Терминал 1: roscore
    
    Терминал 2: rosrun usb_cam usb_cam_node
    
    Терминал 3: rosrun camera_calibration cameracalibrator.py --size 6x8 --square 0.108 image:=/usb_cam/image_raw camera:=/usb_cam
    

    Note Вместо значения 0.108 укажите реальный размер квадрата на распечатанной доске или на экране (в метрах). Например, значение 0.03 будет соответствовать 3 см.

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

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

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

  6. Нажмите SAVE, чтобы сохранить полученные параметры калибровки.

  7. Файл ost.yaml, полученный в результате калибровке положите в проект по пути:

/home/orangepi/technic_ws/src/technic/technic/camera_info/fisheye_cam.yaml.

results matching ""

    No results matching ""