Одно приложение Camera Calibrator
Обзор Camera Calibrator
Можно использовать приложение Camera Calibrator, чтобы оценить внутренние параметры камеры, значения внешних параметров и параметры искажения объектива. Можно использовать эти параметры камеры в различных приложениях компьютерного зрения. Эти приложения включают удаление эффектов искажения объектива от изображения, измерение плоских объектов или восстановление 3-D сцен из нескольких камер.
Комплект калибровочных функций, используемых приложением Camera Calibrator, обеспечивает рабочий процесс для калибровки фотоаппарата. Можно использовать эти функции непосредственно в рабочей области MATLAB®. Для списка функций смотрите Один и Калибровка Стереофотоаппарата.
Калибровка одиночного фотоаппарата
Следуйте за этим рабочим процессом, чтобы калибровать вашу камеру с помощью приложения:
Подготовьте изображения, камеру и калибровочный шаблон.
Добавьте изображения и выберите модель fisheye-камеры или стандарт.
Калибруйте камеру.
Оцените калибровочную точность.
Настройте параметры, чтобы улучшить точность (при необходимости).
Экспортируйте объект параметров.
В некоторых случаях значения по умолчанию работают хорошо, и вы не должны делать улучшения прежде, чем экспортировать параметры. Можно также сделать улучшения с помощью функций калибровки фотоаппарата непосредственно в рабочем пространстве MATLAB. Для списка функций смотрите Один и Калибровка Стереофотоаппарата.
Откройте Camera Calibrator
Панель инструментов MATLAB: На вкладке Apps, в разделе Image Processing and Computer Vision, кликают по значку Camera Calibrator.
Командная строка MATLAB: Введите cameraCalibrator
Подготовьте шаблон, камеру и изображения
К лучше результатам используйте между 10 и 20 изображениями калибровочного шаблона. Калибратор требует по крайней мере трех изображений. Используйте несжатые изображения или форматы сжатия без потерь, такие как PNG. Калибровочный шаблон и настройка камеры должны удовлетворить набору требований, чтобы работать с калибратором. Для большей калибровочной точности следуйте этим инструкциям для подготовки шаблона, подготовки камера и получения изображений.
Примечание
Поддержки приложений Camera Calibrator только шаблоны шахматной доски. Если вы используете другой тип калибровочного шаблона, можно все еще калибровать камеру с помощью estimateCameraParameters
функция. Используя другой тип шаблона требует, чтобы вы предоставили свой собственный код, чтобы обнаружить точки шаблона в изображении.
Подготовьте шаблон шахматной доски
Приложение Camera Calibrator использует шаблон шахматной доски. Шаблон шахматной доски является удобной калибровочной целью. Если вы хотите использовать различный шаблон, чтобы извлечь ключевые пункты, можно использовать функции MATLAB калибровки фотоаппарата непосредственно. Смотрите Один и Калибровка Стереофотоаппарата для списка функций.
Можно распечатать (из MATLAB) и использовать обеспеченный шаблон шахматной доски. Шаблон шахматной доски, который вы используете, не должен быть квадратным. Одна сторона должна содержать четное число квадратов, и другая сторона должна содержать нечетное число квадратов. Поэтому шаблон содержит два черных угла вдоль одной стороны и два белых угла на противоположной стороне. Это критерии позволяет приложению определить ориентацию шаблона. Калибратор присваивает более длинную сторону, чтобы быть x - направление.
Подготовить шаблон шахматной доски:
Присоедините распечатку шахматной доски к плоской поверхности. Недостатки на поверхности могут влиять на точность калибровки.
Измерьте одну сторону квадрата шахматной доски. Вам нужно это измерение для калибровки. Размер квадратов может варьироваться в зависимости от параметров принтера.
Чтобы улучшить скорость обнаружения, настройте шаблон с как можно меньшей фоновой помехой.
Настройка камеры
Чтобы калибровать вашу камеру, следуйте этим правилам:
Сохраните шаблон в особом внимании, но не используйте автофокус.
Если вы изменяете настройки изменения масштаба между изображениями, изменениями фокусного расстояния.
Получите изображения
Для лучших результатов используйте по крайней мере 10 - 20 изображений калибровочного шаблона. Калибратор требует по крайней мере трех изображений. Используйте несжатые изображения или изображения в форматах сжатия без потерь, таких как PNG. Для большей калибровочной точности:
Получите изображения шаблона на расстоянии, примерно равняются расстоянию от вашей камеры до предметов интереса. Например, если вы планируете измерить объекты от 2 метров, сохраните свой шаблон приблизительно в 2 метрах от камеры.
Поместите шахматную доску под углом меньше чем 45 градусов относительно плоскости камеры.
Не изменяйте изображения, (например, не обрезайте их).
Не используйте автофокус или изменяйте настройки изменения масштаба между изображениями.
Получите изображения шаблона шахматной доски при различных ориентациях относительно камеры.
Получите множество изображений шаблона так, чтобы вы объяснили как можно больше фрейма изображения. Искажение объектива увеличивается радиально с центра изображения и иногда не универсально через фрейм изображения. Чтобы получить это искажение объектива, шаблон должен появиться близко к ребрам полученных изображений.
Калибратор работает с областью значений размеров квадратов шахматной доски. Как правило ваша шахматная доска должна заполнить по крайней мере 20% полученного изображения. Например, предыдущие изображения были взяты с размером квадратов шахматной доски 108 мм, когда следующий монтаж показывает:
Добавьте изображения и выберите модель камеры
Чтобы начать калибровку, необходимо добавить изображения. Можно добавить сохраненные образы из папки или добавить изображения непосредственно из камеры. Калибратор анализирует изображения, чтобы гарантировать, что они удовлетворяют требования калибратора. Калибратор затем обнаруживает точки на шахматной доске.
Добавьте изображения из файла
На вкладке Calibration, в разделе File, нажимают Add images, и затем выбирают From file
. Можно добавить изображения из нескольких папок путем нажатия на Add images для каждой папки.
Получите живые изображения
Чтобы начать калибровку, необходимо добавить изображения. Можно получить живые изображения от веб-камеры с помощью поддержки Веб-камеры MATLAB. Чтобы использовать эту функцию, необходимо установить Пакет Поддержки 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 появляется. Задайте размер квадрата шахматной доски путем ввода длины одной стороны квадрата от шаблона шахматной доски.
Калибратор пытается обнаружить шахматную доску в каждом из добавленных изображений, отображая окно индикатора выполнения Анализа Изображений, указывая на прогресс обнаружения. Если какое-либо из изображений отклоняется, диалоговое окно Detection Results появляется, который содержит диагностическую информацию. Результаты показывают, сколько общих изображений было обработано, и обработанных, сколько было принято, отклонено или пропущено. Калибратор пропускает дублирующиеся изображения.
Чтобы просмотреть отклоненные изображения, нажмите View images. Калибратор отклоняет дублирующиеся изображения. Это также отклоняет изображения, где целая шахматная доска не могла быть обнаружена. Возможные причины ни для какого обнаружения являются размытым изображением или экстремальным углом шаблона. Обнаружение занимает больше времени с увеличенными изображениями и с шаблонами, которые содержат большое количество квадратов.
Просмотрите изображения и обнаруженные точки
Панель Data Browser отображает список изображений с идентификаторами. Эти изображения содержат обнаруженный шаблон. Чтобы просмотреть изображение, выберите его из панели Data Browser.
Окно Image отображает выбранное изображение шахматной доски с зелеными кругами, чтобы указать на обнаруженные точки. Можно проверить, что углы были обнаружены правильно с помощью средств управления изменением масштаба. Желтый квадрат указывает (0,0) источник. Стрелки X и Y указывают на ориентацию осей шахматной доски.
Калибровать
Если вы удовлетворены принятыми изображениями, нажимаете кнопку Calibrate на вкладке Calibration. Калибровочные настройки по умолчанию принимают минимальный набор параметров камеры. Запустите путем выполнения калибровки с настройками по умолчанию. После оценки результатов можно попытаться улучшить калибровочную точность путем корректировки настроек и добавления или удаления изображений и затем калибровки снова. Если вы переключаетесь между стандартом и моделью fisheye-камеры, необходимо перекалибровать.
Выберите Camera Model
Можно выбрать или стандарт или модель fisheye-камеры на вкладке Calibration, в разделе Camera Model, выбрать Standard или Fisheye.
Можно переключить модели камеры в любой точке на сеансе. Необходимо калибровать снова после любых изменений вы делаете к настройкам приложения. Нажмите Options, чтобы получить доступ к настройкам и оптимизации для любой модели камеры.
Стандартные опции модели
Когда камера имеет серьезное искажение объектива, приложение может не вычислить начальные значения для внутренних параметров камеры. Если вы имеете спецификации производителя для своей камеры и знаете размер пикселя, фокусное расстояние или характеристики линзы, можно вручную установить исходные предположения для внутренних параметров камеры и радиального искажения. Чтобы установить исходные предположения, нажмите Options> Optimization Options.
Установите главный флажок и затем введите 3х3 матрицу, чтобы задать начальные внутренние параметры. Если вы не задаете исходное предположение, функция вычисляет начальную внутреннюю матрицу с помощью линейного метода наименьших квадратов.
Установите нижний флажок и затем введите 2-или вектор с 3 элементами, чтобы задать начальное радиальное искажение. Если вы не вводите значение, функция использует 0
как начальное значение для всех коэффициентов.
Опции модели подозрительного взгляда
В разделе Camera Model , с выбранным Fisheye, нажимают Options. Выберите Estimate Alignment, чтобы включить оценку выравнивания осей, когда оптическая ось линзы подозрительного взгляда не будет перпендикулярна плоскости изображения.
Калибровочный алгоритм
Смотрите Калибровочные Основы Подозрительного взгляда для калибровочного алгоритма модели fisheye-камеры.
Стандартный калибровочный алгоритм модели камеры принимает модель камеры с точечной диафрагмой:
x, y, z : мировые координаты точки.
x, y : отобразите координаты соответствующей точки изображений в пикселях.
w: произвольный масштабный коэффициент однородных координат.
K: матрица внутреннего параметра камеры, заданная как.
Координаты (cx
cy) представляют оптический центр (основная точка) в пикселях. Когда x - и y - оси точно перпендикулярны, скошенный параметр, s, равняется 0
. Элементы матрицы заданы как:
fx = F *sx |
fy = F *sy |
F является фокусным расстоянием в мировых единицах измерения, обычно выраженных в миллиметрах. |
[s x, s y] является количеством пикселей на мировую единицу измерения в x и направлении y соответственно. |
f x и f y выражаются в пикселях. |
R: матрица, представляющая 3-D вращение камеры.
t: перевод камеры относительно системы мировой координаты.
Алгоритм калибровки фотоаппарата оценивает значения внутренних параметров, внешних параметров и коэффициентов искажения. Калибровка фотоаппарата включает эти шаги:
Решите для внутренних параметров и значений внешних параметров в закрытой форме, приняв, что искажение объектива является нулем. [1]
Оцените все параметры одновременно, включая коэффициенты искажения, с помощью минимизации нелинейного метода наименьших квадратов (алгоритм Levenberg–Marquardt). Используйте решение закрытой формы от предыдущего шага как первоначальная оценка внутренних параметров и значений внешних параметров. Установите первоначальную оценку коэффициентов искажения обнулять. [1][2]
Оцените калибровочные результаты
Можно оценить калибровочную точность путем исследования ошибок перепроекции, исследования значений внешних параметров камеры или просмотра неискаженного изображения. Для лучших калибровочных результатов используйте все три метода оценки.
Исследуйте ошибки перепроекции
reprojection errors является расстояниями, в пикселях, между обнаруженным и повторно спроектированными точками. Приложение Camera Calibrator вычисляет ошибки перепроекции путем проектирования точек шахматной доски от мировых координат, заданных шахматной доской, в координаты изображений. Приложение затем сравнивает повторно спроектированные точки с соответствующими обнаруженными точками. Как правило средние ошибки перепроекции меньше чем одного пикселя приемлемы.
Отображения приложения Camera Calibrator, в пикселях, ошибки перепроекции как столбчатый график. График помогает вам идентифицировать, какие изображения, которые неблагоприятно способствуют калибровке. Выберите запись столбчатого графика и удалите изображение из списка изображений в панели Data Browser.
Ошибочный столбчатый график перепроекции
Столбчатый график отображает среднюю ошибку перепроекции на изображение, наряду с полной средней погрешностью. Метки панели соответствуют идентификаторам изображений. Подсвеченные панели соответствуют выбранным изображениям.
Выберите изображение одним из этих способов:
Кликните по соответствующей панели в графике.
Выберите изображение из списка изображений в панели Data Browser.
Настройте полную среднюю погрешность. Кликните и двигайте красную линию или вниз выбрать изображения выброса.
Исследуйте внешнюю визуализацию параметра
3-D внешний график параметров обеспечивает центральное камерой представление шаблонов и центральное шаблоном представление камеры. Центральное камерой представление полезно, если камера была стационарной, когда изображения были получены. Центральное шаблоном представление полезно, если шаблон был стационарным. Можно кликнуть по курсору и удерживать кнопку мыши с вращать значком, чтобы вращать фигуру. Кликните по шахматной доске (или камера), чтобы выбрать его. Подсвеченные данные в визуализации соответствуют выбранному изображению в списке. Исследуйте относительные положения шаблона и камеры, чтобы определить, совпадают ли они с тем, что вы ожидаете. Например, шаблон, который появляется позади камеры, указывает на калибровочную ошибку.
Просмотрите неискаженное изображение
Чтобы просмотреть эффекты удаления искажения объектива, нажмите Show Undistorted в разделе View вкладки Calibration. Если калибровка была точна, искаженные линии в изображении становятся прямыми.
Проверка неискаженных изображений важна, даже если ошибки перепроекции являются низкими. Например, если шаблон покрывает только небольшой процент изображения, оценка искажения может быть неправильной, даже при том, что калибровка привела к немногим ошибкам перепроекции. Следующее изображение показывает пример этого типа неправильной оценки для одной калибровки фотоаппарата.
При просмотре неискаженных изображений можно исследовать изображения подозрительного взгляда более тесно путем выбора 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 + k 2*r4 + k 3*r6)
y, искаженный = y (1 + k 1*r2 + k 2*r4 + k 3*r6)
x, y Неискаженные пиксельные местоположения. x и y находятся в нормированных координатах изображений. Нормированные координаты изображений вычисляются от пиксельных координат путем перевода в оптический центр и деления на фокусное расстояние в пикселях. Таким образом x и y являются безразмерными.
k 1, k 2, и k 3 — Радиальные коэффициенты искажения линзы.
r2 : x 2 + y 2
Как правило, два коэффициента достаточны для калибровки. Для серьезного искажения, такой как в широкоугольных объективах, можно выбрать 3 коэффициента, чтобы включать k 3.
Неискаженные пиксельные местоположения находятся в нормированных координатах изображений с источником в оптическом центре. Координаты выражаются в мировых единицах измерения.
Стандартная модель: вычислите скос
Когда вы устанавливаете флажок Compute Skew, калибратор оценивает скос осей изображений. Некоторые датчики камеры содержат недостатки, которые заставляют x - и y - оси изображения не быть перпендикулярным. Можно смоделировать этот дефект с помощью скошенного параметра. Если вы не устанавливаете флажок, оси изображений приняты, чтобы быть перпендикулярными, который имеет место для большинства современных камер.
Стандартная модель: вычислите тангенциальное искажение
Тангенциальное искажение происходит, когда линза и плоскость изображения не параллельны. Тангенциальные коэффициенты искажения моделируют этот тип искажения.
Искаженные точки обозначаются как (искаженный x, искаженный y):
x, искаженный = x + [2 * p 1 * x * y + p 2 * (r 2 + 2 * x 2)]
y, искаженный = y + [p 1 * (r 2 + 2 *y 2) + 2 * p 2 * x * y]
x, y Неискаженные пиксельные местоположения. x и y находятся в нормированных координатах изображений. Нормированные координаты изображений вычисляются от пиксельных координат путем перевода в оптический центр и деления на фокусное расстояние в пикселях. Таким образом x и y являются безразмерными.
p 1 и p 2 — Тангенциальные коэффициенты искажения линзы.
r2 : x 2 + y 2
Когда вы устанавливаете флажок 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] Чжан, Z. “Гибкий Новый техник для Калибровки фотоаппарата”. Транзакции IEEE согласно Анализу Шаблона и Искусственному интеллекту. Издание 22, Номер. 11, 2000, стр 1330–1334.
[2] Heikkila, J. и О. Сильвен. “Процедура калибровки фотоаппарата с четырьмя шагами с неявной коррекцией изображений”. Международная конференция IEEE по вопросам компьютерного зрения и распознавания образов. 1997.
[3] Scaramuzza, D., А. Мартинелли и Р. Сигварт. "Тулбокс для легкой калибровки камеры Omindirectional". Продолжения к международной конференции IEEE по вопросам интеллектуальных роботов и систем (IROS 2006). Пекин, Китай, 7-15 октября 2006.
[4] Городской, S., Дж. Лейтлофф и С. Хинц. "Улучшенный Широкий угол, Подозрительный взгляд и Всенаправленная Калибровка фотоаппарата". Журнал ISPRS Фотограмметрии и Удаляет Обнаружение. Издание 108, 2015, pp.72-79.
Смотрите также
Camera Calibrator | Stereo Camera Calibrator | cameraParameters
| detectCheckerboardPoints
| estimateCameraParameters
| generateCheckerboardPoints
| showExtrinsics
| showReprojectionErrors
| stereoParameters
| undistortImage
Связанные примеры
Больше о
Внешние веб-сайты