Cкрипт Camera_calibration¶
Скрипт Camera_calibration позволяет откалибровать камеру квадрокоптера Пионер Мини для корректной работы функций компьютерного зрения. Калибровка камеры - процесс оценки её различных параметров. Это значит, что у нас есть полная информация (технические характеристики или расчётные коэффициенты) о камере, необходимые для определения точной взаимосвязи между 3D точкой в реальном мире и соответствующим 2D изображением, проекцией (каждым пикселем) на изображении, снятом откалиброванной камерой.
Алгоритм калибровки¶
Скачайте и распечатайте изображение «шахматной доски»: (Скачать изображений для калибровки)
Запустите скрипт. Появится окно с видеопотоком с камеры Пионера.
Нажатием на клавишу «1» сделайте 10-15 фотографий шахматной доски с разных ракурсов. Когда кадры сделаны, нажмите клавишу “Q” для выхода из режима фотографирования.
Далее на экране будут появляться изображения с распознанными узлами сетки. Нажатием любой клавиши можно перейти к следующему изображению.
Убедитесь, что в дереве проекта появился файл с названием “data.yml”.
Разбор скрипта¶
Импортируем необходимые библиотеки и определяем их назначение:
from pioneer_sdk import Camera – класс Camera из pioneer_sdk, отвечающий за взаимодействие с камерой; numpy – библиотека для работы с массивами данных; сv2 – библиотека машинного зрения; glob – библиотека для расширения шаблонов пути в стиле Unix; time – библиотека предоставляющая различные функции, связанные со временем;import cv2 import numpy as np import glob import time from pioneer_sdk import Camera
Функция get_images_from_drone_camera - возвращает массив изображений с камеры дрона, который записывается в переменную images.
Функция calibrate - возвращает коэффициенты, полученные в результате калибровки камеры. Они записываются в переменные mtx, dist.
Функция save_coefficients - сохраняет коэффициенты в файл “data.yml”. При последующих запусках программ, необходимые коэффициенты будут считаны из этого файла.