Один Camera Calibrator приложение
Camera Calibrator обзор
Можно использовать приложение Camera Calibrator, чтобы оценить внутренность камеры, внешнюю составляющую и параметры искажения объектива. Можно использовать эти параметры камеры для различных приложений компьютерного зрения. Эти приложения включают удаление эффектов искажения объектива из изображения, измерение планарных объектов или восстановление 3-D сцен из нескольких камер.
Набор функций калибровки, используемый приложением Camera Calibrator, обеспечивает рабочий процесс калибровки камеры. Можно использовать эти функции непосредственно в MATLAB® рабочей области. Список функций см. в разделе Калибровка камеры.
Калибровка одиночной камеры
Следуйте этому рабочему процессу, чтобы калибровать камеру с помощью приложения:
Подготовьте изображения, камеру и калибровочный шаблон.
Добавьте изображения и выберите стандартную модель камеры или камеры «рыбий глаз».
Калибровка камеры.
Оцените точность калибровки.
Настройте параметры для повышения точности (при необходимости).
Экспортируйте объект параметров.
В некоторых случаях значения по умолчанию работают хорошо, и вам не нужно вносить никаких улучшений перед экспортом параметров. Можно также внести улучшения с помощью функций калибровки камеры непосредственно в рабочем пространстве MATLAB. Список функций см. в разделе Калибровка камеры.
Откройте Camera Calibrator
MATLAB Toolstrip: на вкладке Apps, в разделе Image Processing and Computer Vision, щелкните значок Camera Calibrator.
Командная строка MATLAB: Ввод cameraCalibrator
Подготовка шаблона, камеры и изображений
Чтобы улучшить результаты, используйте от 10 до 20 изображений калибровочного шаблона. Калибратору требуется как минимум три изображения. Используйте несжатые изображения или форматы сжатия без потерь, такие как PNG. Калибровочный шаблон и настройка камеры должны удовлетворять набору требований для работы с калибратором. Для большей точности калибровки следуйте этим инструкциям для подготовки шаблона, настройки камеры и захвата изображений.
Примечание
Приложение Camera Calibrator поддерживает только шахматные шаблоны. Если вы используете другой тип калибровочного шаблона, вы все еще можете калибровать камеру, используя estimateCameraParameters
функция. Использование другого типа шаблона требует, чтобы вы предоставили свой собственный код, чтобы обнаружить точки шаблона в изображении.
Подготовка шаблона шахматной доски
Приложение Camera Calibrator использует шаблон шахматной доски. Шахматный шаблон является удобной целью калибровки. Если вы хотите использовать другой шаблон для извлечения ключевых точек, можно использовать функции MATLAB калибровки камеры непосредственно. Список функций см. в разделе Калибровка камеры.
Вы можете распечатать (из MATLAB) и использовать предоставленный шаблон шахматной доски.
Совет
Используйте шахматную доску, которая содержит четное количество квадратов вдоль одного ребра и нечетное количество квадратов вдоль другого ребра. Использование неквадратичного шаблона содержит два черных угла вдоль одной стороны и два белых угла на противоположной стороне. Этот критерий позволяет приложению определять ориентацию шаблона и источник. Калибратор присваивает более длинной стороне x -направление. Квадратный шаблон может привести к неожиданным результатам для внешней камеры.
Для подготовки шаблона шахматной доски:
Прикрепите распечатку шахматной доски к плоской поверхности. Дефекты на поверхности могут повлиять на точность калибровки.
Измерьте одну сторону шахматного квадрата. Вам нужно это измерение для калибровки. Размер квадратов может варьироваться в зависимости от настроек принтера.
Чтобы улучшить скорость обнаружения, настройте шаблон с как можно меньшим загромождением фона.
Setup камеры
Чтобы калибровать камеру, следуйте следующим правилам:
Сохраните шаблон в особом внимании, но не используйте автофокус.
Если вы меняете настройки масштаба между изображениями, изменяется фокусное расстояние.
Захват изображений
Для получения лучших результатов используйте по меньшей мере от 10 до 20 изображений калибровочного шаблона. Калибратору требуется как минимум три изображения. Используйте несжатые изображения или изображения в форматах сжатия без потерь, таких как PNG. Для большей точности калибровки:
Захватывайте изображения шаблона на расстоянии, примерно равном расстоянию от вашей камеры до интересующих объектов. Например, если вы планируете измерять объекты от 2 метров, сохраните шаблон приблизительно в 2 метрах от камеры.
Установите шахматную панель под углом менее 45 степени относительно плоскости камеры.
Не изменяйте изображения (для примера не обрезайте их).
Не используйте автофокус и не изменяйте настройки масштаба между изображениями.
Захватывайте изображения шахматного шаблона в разных ориентациях относительно камеры.
Захватывайте различные изображения шаблона, чтобы вы учитывали как можно больше систему координат изображения. Искажение объектива увеличивается радиально от центра изображения и иногда не равномерно поперек системы координат изображения. Чтобы захватить это искажение объектива, шаблон должен появиться близко к ребрам захваченных изображений.
Калибратор работает с областью значений шахматных квадратов. Как правило, ваша шахматная доска должна заполнять не менее 20% захваченного изображения. Например, предыдущие изображения были сделаны с размером шахматного квадрата 108 мм, как показывает следующий монтаж:
Добавление изображений и выбор модели камеры
Чтобы начать калибровку, необходимо добавить изображения. Можно добавить сохраненные изображения из папки или добавить изображения непосредственно с камеры. Калибратор анализирует изображения, чтобы убедиться, что они соответствуют требованиям калибратора. Затем калибратор обнаруживает точки на шахматной доске.
Добавление изображений из файла
На вкладке Calibration, в разделе File, нажмите Add images, а затем выберите From file
. Можно добавить изображения из нескольких папок, нажав Add images для каждой папки.
Получение Live Изображений
Чтобы начать калибровку, необходимо добавить изображения. Получить живые изображения с веб-камеры можно с помощью поддержки MATLAB Webcam. Чтобы использовать эту функцию, необходимо установить пакет поддержки MATLAB для веб-камер USB. Информацию об установке пакета поддержки см. в разделе Установка пакета поддержки MATLAB для веб-камер USB (Image Acquisition Toolbox). Чтобы добавить живые изображения, выполните следующие действия.
На вкладке Calibration, в разделе File, нажмите Add Images, затем выберите From camera
.
Это действие открывает вкладку Camera. Если к системе подключена только одна веб-камера, она выбирается по умолчанию, и открывается окно предварительного просмотра. Если вы подключены несколько камер и хотите использовать камеру, отличную от камеры по умолчанию, выберите ее в списке Camera.
Установите свойства камеры, чтобы управлять изображением (необязательно). Щелкните Camera Properties, чтобы открыть меню свойств выбранной камеры. Этот список варьируется в зависимости от вашего устройства.
Используйте ползунки или раскрывающийся список, чтобы изменить все доступные настройки свойств. Окно Preview обновляется динамически при изменении настройки. После завершения настройки свойств щелкните в любом месте вне поля меню, чтобы отключить список свойств.
Введите местоположение полученных файлов изображений в Save Location поле путем ввода пути к папке или с помощью кнопки Browse. У вас должно быть разрешение на запись в выбранную папку.
Установите параметры захвата.
Чтобы задать количество секунд между захватами изображения, используйте Capture Interval поле или ползунок. Значение по умолчанию является 5 секундами, минимальное значение составляет 1 секунду, а максимальное - 60 секунд.
Чтобы задать количество снимков изображения, используйте Number of images to capture или ползунок. Значение по умолчанию является 20 изображениями, минимальное - 2 изображения, а максимальное - 100 изображений.
В строении по умолчанию захватывается в общей сложности 20 изображений, по одному каждые 5 секунд.
В окне Preview показаны живые изображения, транслируемые как данные RGB. После настройки свойств устройства и настройки захвата используйте окно Preview в качестве руководства для построения линии камеры, чтобы получить изображение шахматного шаблона, которое вы хотите захватить.
Нажмите кнопку Capture. Количество заданных изображений, и миниатюры моментальных снимков отображаются на панели Data Browser. Они автоматически называются пошагово и захватываются как .png
файлы.
Вы можете остановить захват изображения, прежде чем указанное количество изображений будет получено нажатием кнопки Stop Capture.
Когда вы захватываете изображения шахматной доски, после получения назначенного количества изображений появляется диалоговое окно Checkerboard Square Size. Задайте размер шахматного квадрата, затем нажмите OK.
Результаты обнаружения затем вычисляются и отображаются. Для примера:
Нажмите кнопку OK, чтобы закрыть диалоговое окно Результаты обнаружения (Detection Results).
Когда вы закончите получать живые изображения, нажмите Close Image Capture, чтобы закрыть вкладку Camera.
Анализируйте изображения
После добавления изображений появляется диалоговое окно Checkerboard Square Size. Задайте размер шахматного квадрата путем ввода длины одной стороны квадрата из шахматного шаблона.
Калибратор пытается обнаружить шахматную доску в каждом из добавленных изображений, отображая окно прогресса анализирующих изображений, указывающее на прогресс обнаружения. Если какое-либо из изображений отклонено, появляется диалоговое окно Результаты обнаружения, содержащее диагностическую информацию. Результаты показывают, сколько всего изображений было обработано, и из обработанных, сколько было принято, отклонено или пропущено. Калибратор пропускает повторяющиеся изображения.
Чтобы просмотреть отклоненные изображения, нажмите View images. Калибратор отклоняет повторяющиеся изображения. Он также отклоняет изображения, в которых не удалось обнаружить всю шахматную доску. Возможными причинами отсутствия обнаружения являются размытое изображение или крайний угол шаблона. Обнаружение занимает больше времени с большими изображениями и шаблонами, которые содержат большое количество квадратов.
Просмотр изображений и обнаруженных точек
На панели Data Browser отображается список изображений с идентификаторами. Эти изображения содержат обнаруженный шаблон. Чтобы просмотреть изображение, выберите его на панели Data Browser.
В Image окне отображается выбранное шахматное изображение с зелеными кругами для указания обнаруженных точек. Можно проверить, что углы были правильно обнаружены, используя элементы управления масштабом. Желтый квадрат указывает на источник (0,0). Стрелы X и Y обозначают ориентацию осей шашек.
Калибровать
После того, как вы удовлетворены принятыми изображениями, нажмите кнопку Calibrate на вкладке Calibration. Настройки калибровки по умолчанию предполагают минимальный набор параметров камеры. Начните, запустив калибровку с настройками по умолчанию. После оценки результатов можно попытаться улучшить точность калибровки, скорректировав настройки и добавив или удалив изображения, а затем еще раз калибровав. Если вы переключаетесь между стандартной моделью и моделью камеры «рыбий глаз», необходимо провести повторную калибровку.
Выбор модели камеры
Можно выбрать стандартную или модель камеры «рыбий глаз» на вкладке Calibration, в разделе Camera Model выбрать Standard или Fisheye.
Можно переключать модели фотоаппарата в любой момент сеанса. После любых изменений параметров приложения необходимо выполнить повторную калибровку. Щелкните Options, чтобы получить доступ к настройкам и оптимизации для любой модели камеры.
Стандартные опции модели
Когда камера имеет серьезные искажения объектива, приложение может не вычислить начальные значения для внутренней характеристики камеры. Если у вас есть спецификации производителя для вашей камеры и вы знаете размер пикселя, фокусное расстояние или характеристики объектива, можно вручную задать начальные догадки для внутренней характеристики камеры и радиального искажения. Чтобы задать начальные предположения, нажмите Options > Optimization Options.
Установите верхний флажок, а затем введите матрицу размером 3 на 3, чтобы задать исходные признаки. Если вы не задаете начальное предположение, функция вычисляет начальную внутреннюю матрицу с помощью линейного метода наименьших квадратов.
Установите нижний флажок, а затем введите вектор с 2 или 3 элементами, чтобы задать начальное радиальное искажение. Если вы не задаете значение, функция использует 0
как начальное значение для всех коэффициентов.
Опции модели рыбий глаз
В Camera Model разделе, Fisheye выбран, нажмите Options. Выберите Estimate Alignment, чтобы разрешить оценку выравнивания осей, когда оптическая ось линзы «рыбий глаз» не перпендикулярна плоскости изображения.
Для получения дополнительной информации об алгоритме калибровки модели fisheye-камеры, смотрите Fisheye Calibration Basics.
Алгоритм калибровки
Для получения fisheye-камеры калибровки модели см. «Основы калибровки» рыбий глаз «».
Стандартный алгоритм калибровки модели камеры предполагает модель камеры pinhole:
(X, Y, Z): мировые координаты точки.
(x, y): координаты изображения соответствующей точки изображения в пикселях.
w: произвольный однородный масштабный коэффициент координат.
K: внутренняя матрица камеры, заданная как.
Координаты (cx
cy) представляют оптический центр (главную точку) в пикселях. Когда x - и y - оси в точности перпендикулярны, параметр наклона, s, равен 0
. Элементы матрицы заданы как:
fx = F * s x |
fy = F * s y |
F - фокусное расстояние в мировых единицах измерения, обычно выраженное в миллиметрах. |
[s x, s y] - количество пикселей на мировую единицу измерения в x и y направлениях соответственно. |
f x и f y выражены в пикселях. |
R: матрица, представляющая 3-D поворот камеры.
t: перемещение камеры относительно мировой системы координат.
Алгоритм калибровки камеры оценивает значения собственных параметров, внешних параметров и коэффициентов искажения. Калибровка камеры включает следующие шаги:
Решает для внутренних и внешних в закрытой форме, принимая, что искажение объектива равняется нулю. [1]
Оцените все параметры одновременно, включая коэффициенты искажения, используя минимизацию нелинейного метода наименьших квадратов (алгоритм Левенберга-Марквардта). Используйте решение закрытой формы от предыдущего шага в качестве начальной оценки внутренних и внешних данных. Установите начальную оценку коэффициентов искажения в нуль [1][2].
Оценка результатов калибровки
Можно оценить точность калибровки, исследуя ошибки репроекции, исследуя внешнюю камеру или просматривая неискаженное изображение. Для наилучших результатов калибровки используйте все три метода оценки.
Исследуйте ошибки репроекции
Это reprojection errors расстояния в пикселях между обнаруженной и перепроектированной точками. Приложение Camera Calibrator вычисляет ошибки репроекции, проецируя шахматные точки из мировых координат, определенных шахматной доской, в координаты изображения. Затем приложение сравнивает перепроектированные точки с соответствующими обнаруженными точками. Как правило, допустимы средние ошибки репроекции менее чем на один пиксель.
Приложение Camera Calibrator отображений в пикселях ошибки репроекции как гистограмма. График помогает вам определить, какие изображения отрицательно способствуют калибровке. Выберите элемент гистограммы и удалите изображение из списка изображений на панели Data Browser.
Ошибки репроекции Гистограммы
На гистограмму отображается средняя ошибка перепроекции на изображение, а также общая средняя ошибка. Штриховые метки соответствуют идентификаторам изображений. Подсвеченные полосы соответствуют выбранным изображениям.
Выберите изображение одним из следующих способов:
Щелкните соответствующую полосу в графике.
Выберите изображение из списка изображений на панели Data Browser.
Настройте общую среднюю ошибку. Щелкните и сдвиньте красную линию вверх или вниз, чтобы выбрать изображения выбросов.
Исследуйте визуализацию внешнего параметра
График 3-D внешних параметров обеспечивает ориентированный на камеру вид шаблонов и ориентированный на шаблон вид камеры. Ориентированный на камеру вид полезен, если камера была стационарной при захвате изображений. Ориентированное на шаблон представление полезно, если шаблон был стационарным. Для поворота рисунка можно щелкнуть курсор и удерживать нажатой кнопку мыши со значком поворота. Щелкните на шахматной доске (или камере), чтобы выбрать ее. Подсвеченные данные в визуализациях соответствуют выбранному изображению в списке. Исследуйте относительные положения шаблона и камеры, чтобы определить, соответствуют ли они тому, что вы ожидаете. Для примера шаблон, который появляется за камерой, указывает на ошибку калибровки.
Просмотр неискаженного изображения
Чтобы просмотреть эффекты удаления искажений объектива, щелкните Show Undistorted в View разделе вкладки Calibration. Если калибровка была точной, искаженные линии на изображении становятся прямыми.
Проверка неискаженных изображений важна, даже если ошибки репроекции малы. Для примера, если шаблон покрывает только небольшой процент изображения, оценка искажения может быть неправильной, хотя калибровка привела к немногим ошибкам репроекции. На следующем изображении показан пример неправильной оценки этого типа для калибровки одиночной камеры.
При просмотре неискаженных изображений можно более внимательно изучить изображения «рыбий глаз», выбрав Fisheye во вкладке Camera Model и Fisheye Scale в View разделе вкладки Calibration. Используйте ползунок в окне Масштабный коэффициент (Scale Factor), чтобы настроить шкалу изображения.
Улучшите калибровку
Чтобы улучшить калибровку, можно удалить изображения с высокой ошибкой, добавить больше изображений или изменить настройки калибратора.
Добавление или удаление изображений
Рассмотрите добавление дополнительных изображений, если:
У вас меньше 10 изображений.
Шаблоны не покрывают достаточно систему координат изображения.
Шаблоны не имеют достаточного изменения ориентации относительно камеры.
Рассмотрите удаление изображений, если изображения:
Изображения имеют высокую среднюю ошибку репроекции.
Изображения размыты.
Изображения содержат шахматную табличку под углом более 45 степени относительно плоскости камеры.
Изображения содержат неправильно обнаруженные шахматные точки.
Стандартная модель: измените количество коэффициентов радиального искажения
Можно задать два или три коэффициента радиального искажения. На вкладке Calibrations, в разделе Camera Model , с выбранными Standard, нажмите Options. Выберите Radial Distortion как 2 Coefficients или 3 Coefficients. Radial distortion происходит, когда световые лучи изгибаются больше вблизи ребер линзы, чем в ее оптическом центре. Чем меньше линза, тем больше искажение.
Коэффициенты радиального искажения моделируют этот тип искажения. Искаженные точки обозначаются как (x искаженные, y искаженные ):
x искаженный = x (1 + k 1 * r2 + <reservedrangesplaceholder1> 2* r4 + <reservedrangesplaceholder1> 3* r6)
y искаженный = y (1 + k 1 * r2 + <reservedrangesplaceholder1> 2* r4 + <reservedrangesplaceholder1> 3* r6)
x, y - неискаженные пиксельные местоположения. x и y находятся в нормированных координатах изображения. Нормированные координаты изображения вычисляются из пиксельных координат путем перевода в оптический центр и деления на фокусное расстояние в пикселях. Таким образом, x и y безразмерны.
k 1, k 2 и k 3 - Коэффициенты радиального искажения объектива.
r2: x2 + y2
Обычно для калибровки достаточно двух коэффициентов. Для серьезных искажений, таких как в широкоугольных объективах, можно выбрать 3 коэффициенты, чтобы включить k 3 .
Неискаженные положения пикселей находятся в нормированных координатах изображения с источником координат в оптическом центре. Координаты выражены в мировых единицах измерения.
Стандартная модель: Вычислите перекос
Когда вы устанавливаете флажок Compute Skew, калибратор оценивает наклон осей изображения. Некоторые датчики камеры содержат дефекты, которые заставляют x - и y - оси изображения не быть перпендикулярными. Можно смоделировать этот дефект с помощью параметра наклона. Если вы не устанавливаете флажок, оси изображений приняты перпендикулярными, что является случаем для большинства современных камер.
Стандартная модель: Вычислите тангенциальное искажение
Тангенциальное искажение происходит, когда линза и плоскость изображения не параллельны. Коэффициенты тангенциального искажения моделируют этот тип искажения.
Искаженные точки обозначаются как (x искаженные, y искаженные ):
x искаженный = x + [2 * p 1 * x * y + p 2 * (r2 + 2 * x2)]
y искаженный = y + [p 1 * (r2 + 2 * y2) + 2 * <reservedrangesplaceholder2> 2 * x * y]
x, y - неискаженные пиксельные местоположения. x и y находятся в нормированных координатах изображения. Нормированные координаты изображения вычисляются из пиксельных координат путем перевода в оптический центр и деления на фокусное расстояние в пикселях. Таким образом, x и y безразмерны.
p 1 и p 2 - Коэффициенты тангенциального искажения объектива.
r2: x2 + y2
Когда вы устанавливаете флажок Compute Tangential Distortion, калибратор оценивает коэффициенты тангенциального искажения. В противном случае калибратор устанавливает коэффициенты тангенциального искажения в нуль.
Модель «Рыбий глаз»: оценка выравнивания
В Camera Model разделе, Fisheye выбран, нажмите Options. Выберите Estimate Alignment, чтобы разрешить оценку выравнивания осей, когда оптическая ось линзы «рыбий глаз» не перпендикулярна плоскости изображения.
Экспорт параметров камеры
Когда вы удовлетворены точностью калибровки, нажмите Export Camera Parameters. Можно либо сохранить и экспортировать параметры камеры в объект, выбрав Export Camera Parameters, либо сгенерировать параметры камеры в виде скрипта MATLAB.
Экспорт параметров камеры
Выберите > , чтобы создать cameraParameters
объект в рабочей рабочей области. Объект содержит собственные и внешние параметры камеры и коэффициенты искажения. Можно использовать этот объект для различных задач компьютерного зрения, таких как неискажение изображения, измерение планарных объектов и реконструкция 3-D. См. «Измерение плоских объектов калиброванной камерой». Вы можете опционально экспортировать cameraCalibrationErrors
объект, который содержит стандартные ошибки предполагаемых параметров камеры, путем установки флажка Export estimation errors.
Сгенерируйте скрипт MATLAB
Выберите > , чтобы сохранить параметры камеры в скрипте MATLAB, что позволит вам воспроизвести шаги из сеанса калибровки.
Ссылки
[1] Чжан, З. «Гибкий новый техник калибровки камеры». Транзакции IEEE по шаблонному анализу и машинному анализу. Том 22, Номер. 11, 2000, стр 1330–1334.
[2] Heikkila, J. and O. Silven. «Четырехэтапная процедура калибровки камеры с неявной коррекцией изображения». Международная конференция IEEE по компьютерному зрению и распознаванию шаблонов. 1997.
[3] Скарамуцца, Д., А. Мартинелли и Р. Зигварт. A Toolbox for Easy Calibrating Ominrection Cameras (неопр.) (недоступная ссылка). Материалы Международной конференции IEEE по интеллектуальным роботам и системам (IROS 2006). Пекин, Китай, 7-15 октября 2006 года.
[4] Urban, S., J. Leitloff, and S. Hinz. Улучшенная калибровка фотоаппарата по широкоугольному, рыбному и всенаправленному направлению. Журнал фотограмметрии и удаления зондирования ISPRS. Том 108, 2015, стр. 72-79.
См. также
Camera Calibrator | cameraParameters
| detectCheckerboardPoints
| estimateCameraParameters
| generateCheckerboardPoints
| showExtrinsics
| showReprojectionErrors
| Stereo Camera Calibrator | stereoParameters
| undistortImage
Похожие примеры
Подробнее о
Внешние веб-сайты