Приложение калибратора для одной камеры
Обзор калибратора камеры
Приложение «Калибратор камеры» можно использовать для оценки характеристик камеры, внешних характеристик и параметров искажения объектива. Эти параметры камеры можно использовать для различных приложений компьютерного зрения. Эти приложения включают в себя удаление эффектов искажения объектива из изображения, измерение плоских объектов или реконструкцию 3-D сцен из множества камер.
Набор функций калибровки, используемый приложением Camera Calibrator, обеспечивает рабочий процесс калибровки камеры. Эти функции можно использовать непосредственно в рабочей области MATLAB ®. Список функций см. в разделе Калибровка камеры.
Калибровка с одной камерой
Выполните следующие действия для калибровки камеры с помощью приложения:
Подготовка изображений, камеры и шаблона калибровки.
Добавьте изображения и выберите стандартную модель камеры или модель камеры «рыбий глаз».
Откалибруйте камеру.
Оцените точность калибровки.
Отрегулируйте параметры для повышения точности (при необходимости).
Экспорт объекта параметров.
В некоторых случаях значения по умолчанию работают хорошо, и нет необходимости вносить какие-либо улучшения перед экспортом параметров. Можно также внести улучшения с помощью функций калибровки камеры непосредственно в рабочем пространстве MATLAB. Список функций см. в разделе Калибровка камеры.
Открытие калибратора камеры
Подготовка образца, камеры и изображений
Для улучшения результатов используйте от 10 до 20 изображений шаблона калибровки. Калибратор требует не менее трех изображений. Используйте несжатые изображения или форматы сжатия без потерь, например PNG. Шаблон калибровки и настройка камеры должны соответствовать набору требований для работы с калибратором. Для повышения точности калибровки следуйте этим инструкциям для подготовки шаблона, настройки камеры и съемки изображений.
Примечание
Приложение Camera Calibrator поддерживает только шашечные шаблоны. Если используется другой тип шаблона калибровки, можно выполнить калибровку камеры с помощью estimateCameraParameters функция. Использование узора другого типа требует ввода собственного кода для обнаружения точек узора на изображении.
Подготовка шаблона контрольной доски
Приложение Camera Calibrator использует шахматный рисунок. Шашечный рисунок - удобная калибровочная мишень. Если для извлечения ключевых точек требуется использовать другой шаблон, можно использовать функции калибровки камеры MATLAB непосредственно. Список функций см. в разделе Калибровка камеры.
Можно распечатать (из MATLAB) и использовать предоставленный шаблон шахматной доски.
Совет
Используйте шахматную доску, которая содержит чётное число квадратов вдоль одного ребра и нечётное число квадратов вдоль другого ребра. Использование не квадратного узора содержит два черных угла вдоль одной стороны и два белых угла на противоположной стороне. Этот критерий позволяет приложению определять ориентацию шаблона и начало координат. Калибратор назначает более длинную сторону направлением x. Квадратный узор может привести к неожиданным результатам для внешнего вида камеры.
Для подготовки шаблона шахматной доски:
Прикрепите распечатку шахматной доски к плоской поверхности. Дефекты на поверхности могут повлиять на точность калибровки.
Измерьте одну сторону шахматного квадрата. Это измерение необходимо для калибровки. Размер квадратов может изменяться в зависимости от настроек принтера.
Чтобы повысить скорость обнаружения, настройте шаблон с как можно меньшим фоновым загромождением.
Настройка камеры
Для калибровки камеры выполните следующие правила:
Держите шаблон в фокусе, но не используйте автофокусировку.
При изменении параметров масштабирования между изображениями изменяется фокусное расстояние.
Захват изображений
Для получения лучших результатов используйте не менее 10-20 изображений шаблона калибровки. Калибратор требует не менее трех изображений. Использование несжатых изображений или изображений в форматах сжатия без потерь, таких как PNG. Для большей точности калибровки:
Снимайте изображения узора на расстоянии, примерно равном расстоянию от камеры до интересующих объектов. Например, если вы планируете измерять объекты от 2 метров, сохраните рисунок примерно в 2 метрах от камеры.
Разместите шахматную доску под углом менее 45 градусов относительно плоскости камеры.
Не изменяйте изображения (например, не обрезайте их).
Не используйте автофокусировку и не изменяйте параметры масштабирования между изображениями.
Снимайте изображения шахматного рисунка в различных ориентациях относительно камеры.
Захватите различные изображения узора, чтобы учесть как можно больше кадра изображения. Искажение линзы увеличивается радиально от центра изображения и иногда является неравномерным по всему кадру изображения. Чтобы зафиксировать это искажение объектива, рисунок должен выглядеть близко к краям захваченных изображений.
Калибратор работает с диапазоном размеров шашечного квадрата. Как правило, ваша шашка должна заполнять не менее 20% снятого изображения. Например, предыдущие изображения были сделаны с размером шахматного квадрата 108 мм, как показывает следующий монтаж:
Добавление изображений и выбор модели камеры
Для начала калибровки необходимо добавить изображения. Можно добавлять сохраненные изображения из папки или непосредственно из камеры. Калибратор анализирует изображения, чтобы убедиться, что они соответствуют требованиям калибратора. Затем калибратор обнаруживает точки на шахматной доске.
Добавить изображения из файла
На вкладке Калибровка в разделе Файл щелкните Добавить изображения и выберите From file. Чтобы добавить изображения из нескольких папок, щелкните Добавить изображения для каждой папки.
Получить живые изображения
Для начала калибровки необходимо добавить изображения. Вы можете получать живые изображения с веб-камеры с помощью поддержки веб-камеры MATLAB. Для использования этой функции необходимо установить пакет поддержки MATLAB для веб-камер USB. Для получения информации об установке пакета поддержки см. раздел Установка пакета поддержки MATLAB для веб-камер USB (инструментарий для получения изображений). Чтобы добавить живые изображения, выполните следующие действия.
На вкладке Калибровка в разделе Файл щелкните Добавить изображения и выберите From camera.
Это действие открывает вкладку Камера (Camera). Если к системе подключена только одна веб-камера, она выбирается по умолчанию и открывается окно просмотра в реальном времени. Если подключено несколько камер и требуется использовать одну камеру, отличную от камеры по умолчанию, выберите эту камеру в списке «Камера».
Задайте свойства камеры для управления изображением (необязательно). Нажмите кнопку «Свойства камеры», чтобы открыть меню свойств выбранной камеры. Этот список зависит от устройства.
Используйте ползунки или раскрывающийся список для изменения всех доступных параметров свойств. Окно Предварительный просмотр (Preview) обновляется динамически при изменении настройки. По завершении настройки свойств щелкните в любом месте вне поля меню, чтобы удалить список свойств.
В поле «Сохранить папку» введите путь к папке или нажмите кнопку «Обзор». Необходимо иметь разрешение на запись в выбранную папку.
Задайте параметры захвата.
Чтобы задать количество секунд между захватами изображений, используйте поле «Интервал захвата» или ползунок. Значение по умолчанию - 5 секунд, минимальное - 1 секунда, максимальное - 60 секунд.
Чтобы задать количество снимков, используйте поле или ползунок Количество изображений для захвата. Значение по умолчанию - 20 изображений, минимальное - 2 изображения, максимальное - 100 изображений.
В конфигурации по умолчанию захватывается в общей сложности 20 изображений, по одному каждые 5 секунд.
В окне «Предварительный просмотр» отображаются живые изображения, передаваемые в потоковом режиме в виде данных RGB. После настройки свойств устройства и параметров съемки используйте окно «Предварительный просмотр» в качестве руководства для выравнивания камеры для получения снимаемого изображения с шахматной доской.
Нажмите кнопку «Захват». Количество заданных изображений фиксируется, а миниатюры снимков отображаются на панели «Браузер данных». Они автоматически именуются инкрементно и регистрируются как .png файлы.
При необходимости можно остановить захват изображения перед захватом указанного количества изображений, нажав кнопку Остановить захват.
При захвате изображений на шахматной доске после захвата указанного количества изображений отображается диалоговое окно «Размер квадрата шахматной доски». Укажите размер квадрата шахматной доски и нажмите кнопку «ОК».
Затем вычисляются и отображаются результаты обнаружения. Например:
Нажмите кнопку ОК, чтобы закрыть диалоговое окно Результаты обнаружения (Detection Results).
По завершении получения изображений в реальном времени нажмите кнопку «Закрыть захват изображения», чтобы закрыть вкладку «Камера».
Анализ изображений
После добавления изображений появится диалоговое окно «Размер квадрата». Укажите размер квадрата шахматной доски, введя длину одной стороны квадрата от узора шахматной доски.
Калибратор пытается обнаружить шашку в каждом из добавленных изображений, отображая окно индикатора выполнения Analyzing Images, указывающее ход обнаружения. Если какое-либо из изображений отклонено, появится диалоговое окно Результаты обнаружения (Detection Results), содержащее диагностическую информацию. Результаты показывают, сколько изображений было обработано, сколько было принято, отклонено или пропущено. Калибратор пропускает повторяющиеся изображения.
Чтобы просмотреть отклоненные изображения, щелкните Показать изображения. Калибратор отклоняет повторяющиеся изображения. Он также отклоняет изображения, на которых невозможно обнаружить всю шахматную доску. Возможными причинами отсутствия обнаружения являются размытое изображение или крайний угол узора. Обнаружение занимает больше времени с более крупными изображениями и с узорами, которые содержат большое количество квадратов.
Просмотр изображений и обнаруженных точек
На панели «Браузер данных» отображается список изображений с идентификаторами. Эти изображения содержат обнаруженный шаблон. Чтобы просмотреть изображение, выберите его на панели «Браузер данных».
В окне Изображение (Image) отображается выбранное шахматное изображение с зелеными кружками для обозначения обнаруженных точек. С помощью элементов управления масштабированием можно проверить правильность обнаружения углов. Желтый квадрат указывает начало координат (0,0). Стрелки X и Y указывают ориентацию осей шашки.
Калибровать
После подтверждения принятых изображений нажмите кнопку Calibrate (Калибровка) на вкладке Calibration (Калибровка). Настройки калибровки по умолчанию предполагают минимальный набор параметров камеры. Начните с выполнения калибровки с настройками по умолчанию. Оценив результаты, можно попытаться повысить точность калибровки, настроив настройки и добавив или удалив изображения, а затем снова откалибровав их. При переключении между стандартной моделью и моделью камеры «рыбий глаз» необходимо выполнить повторную калибровку.
Выбор модели камеры
На вкладке Калибровка (Calibration) в разделе Модель камеры (Camera Model) выберите Стандартная (Standard) или Рыбий глаз (Fisheye).
Модели камер можно переключать в любой момент сеанса. После внесения изменений в настройки приложения необходимо выполнить повторную калибровку. Нажмите «Параметры», чтобы получить доступ к настройкам и оптимизациям для любой модели камеры.
Параметры стандартной модели
Когда камера имеет сильное искажение объектива, приложение может не рассчитать начальные значения характеристик камеры. Если у вас есть спецификации производителя для вашей камеры и вы знаете размер пикселя, фокусное расстояние или характеристики объектива, вы можете вручную задать начальные догадки для характеристик камеры и радиальных искажений. Чтобы задать начальные догадки, щелкните Опции (Options) > Опции оптимизации (Optimization Options).
Установите верхний флажок и введите матрицу 3 на 3, чтобы указать исходные характеристики. Если начальное предположение не задано, функция вычисляет начальную внутреннюю матрицу с помощью линейных наименьших квадратов.
Установите нижний флажок и введите вектор из 2- или 3 элементов, чтобы задать начальное радиальное искажение. Если значение не указано, функция использует 0 в качестве начального значения для всех коэффициентов.
Параметры модели Fisheye
В разделе «Модель камеры» выберите «Рыбий глаз» и нажмите «Параметры». Выберите «Оценить выравнивание», чтобы разрешить оценку выравнивания осей, когда оптическая ось объектива рыболовного глаза не перпендикулярна плоскости изображения.
Дополнительные сведения о алгоритме калибровки модели камеры fisheye см. в разделе Основы калибровки Fisheye.
Алгоритм калибровки
Сведения о калибровке модели камеры «рыбий глаз» см. в разделе Основы калибровки «Рыбий глаз».
Стандартный алгоритм калибровки модели камеры предполагает модель камеры с точечным отверстием:
(X, Y, Z): мировые координаты точки.
(x, y): координаты изображения соответствующей точки изображения в пикселях.
w: произвольный масштабный коэффициент однородных координат.
K: внутренняя матрица камеры, определяемая как.
Координаты (cx
cy) представляют оптический центр (главную точку) в пикселях. Если оси x и y точно перпендикулярны, параметр наклона s равен 0. Элементы матрицы определяются как:
| fx = F * sx |
| fy = F * sy |
|
F - фокусное расстояние в мировых единицах, обычно выраженное в миллиметрах. |
| [sx, sy] - количество пикселей в мировой единице в направлении x и y соответственно. |
| fx и fy выражены в пикселях. |
R: матрица, представляющая 3-D поворот камеры.
t: перемещение камеры относительно мировой системы координат.
Алгоритм калибровки камеры оценивает значения собственных параметров, внешних параметров и коэффициентов искажения. Калибровка камеры включает следующие шаги:
Решите для собственных и внешних характеристик в замкнутой форме, предполагая, что искажение объектива равно нулю. [1]
Оцените все параметры одновременно, включая коэффициенты искажения, используя нелинейную минимизацию наименьших квадратов (алгоритм Левенберга-Марквардта). Используйте решение закрытой формы из предыдущего шага в качестве начальной оценки собственных и внешних характеристик. Установите начальную оценку коэффициентов искажения равной нулю. [1][2]
Оценка результатов калибровки
Точность калибровки можно оценить, изучив ошибки обратного впрыска, внешний вид камеры или незаметное изображение. Для получения наилучших результатов калибровки используйте все три метода оценки.
Проверка ошибок повторного впрыска
Ошибки повторного проецирования представляют собой расстояния в пикселях между обнаруженной и повторно спроецируемой точками. Приложение Camera Calibrator вычисляет ошибки репроекции, проецируя точки шашки из мировых координат, определенных шашкой, в координаты изображения. Затем приложение сравнивает повторно проецируемые точки с соответствующими обнаруженными точками. Как правило, допустимы средние ошибки обратного впрыска менее одного пикселя.
Приложение «Калибратор камеры» отображает ошибки проецирования в пикселях в виде гистограммы. График помогает определить изображения, которые неблагоприятно влияют на калибровку. Выберите элемент гистограммы и удалите изображение из списка изображений на панели «Браузер данных».
Гистограмма ошибок перепроекции
На гистограмме отображается средняя ошибка репроекции по изображению, а также общая средняя ошибка. Штриховые метки соответствуют идентификаторам изображений. Выделенные полосы соответствуют выбранным изображениям.
Выберите изображение одним из следующих способов:
Щелкните соответствующую строку на графике.
Выберите изображение из списка изображений на панели «Браузер данных».
Отрегулируйте общую среднюю ошибку. Щелкните и сдвиньте красную линию вверх или вниз, чтобы выбрать изображения с отклонениями.
Проверка визуализации внешних параметров
График внешних параметров 3-D обеспечивает ориентированный на камеру вид образцов и ориентированный на массив вид камеры. Ориентированный на камеру вид полезен, если камера была неподвижной при захвате изображений. Ориентированный на массив вид полезен, если образец был неподвижным. Чтобы повернуть фигуру, можно щелкнуть курсор и, удерживая нажатой кнопку мыши, щелкнуть значок поворота. Щелкните на шахматной доске (или камере), чтобы выбрать ее. Выделенные данные в визуализациях соответствуют выбранному изображению в списке. Проверьте относительные положения шаблона и камеры, чтобы определить, соответствуют ли они ожидаемому. Например, шаблон, появляющийся за камерой, указывает на ошибку калибровки.
Просмотр неискаженного изображения
Чтобы просмотреть эффекты удаления искажения объектива, щелкните Показать без искажения (Show Undistorted) в разделе Вид (View) вкладки Калибровка (Calibration). Если калибровка была точной, искаженные линии на изображении становятся прямыми.
Проверка неискаженных изображений важна, даже если ошибки репроекции малы. Например, если узор покрывает только небольшой процент изображения, оценка искажения может быть неправильной, даже если калибровка привела к нескольким ошибкам обратного впрыска. На следующем рисунке показан пример этого типа неправильной оценки для калибровки одной камеры.
При просмотре неискаженных изображений можно более внимательно изучить изображения рыбьего глаза, выбрав «Рыбий глаз» на вкладке «Модель камеры» и «Масштаб рыбьего глаза» в разделе «Вид» вкладки «Калибровка». Используйте ползунок в окне «Масштабный коэффициент» для настройки масштаба изображения.
Улучшение калибровки
Для улучшения калибровки можно удалить изображения с высоким уровнем ошибок, добавить дополнительные изображения или изменить настройки калибратора.
Добавление и удаление изображений
Рекомендуется добавить дополнительные изображения, если:
У вас меньше 10 изображений.
Узоры недостаточно охватывают кадр изображения.
Узоры не имеют достаточного изменения ориентации относительно камеры.
Рекомендуется удалить изображения, если:
Изображения имеют высокую среднюю ошибку репроекции.
Изображения размыты.
Изображения содержат шахматную доску под углом более 45 градусов относительно плоскости камеры.
Изображения содержат неправильно обнаруженные контрольные точки.
Стандартная модель: Изменение количества коэффициентов радиального искажения
Можно задать два или три коэффициента радиального искажения. На вкладке «Калибровки» в разделе «Модель камеры» выберите «Стандартный» и нажмите «Параметры». Выберите «Радиальное искажение» как «2 коэффициента» или «3 коэффициента». Радиальные искажения возникают, когда лучи света изгибаются больше вблизи краев линзы, чем в ее оптическом центре. Чем меньше линза, тем больше искажение.
Коэффициенты радиального искажения моделируют этот тип искажения. Искаженные точки обозначаются как (xdistorted, ydistorted):
xdistorted = x (1 + k1 * r2 + k2 * r4 + k3 * r6)
ydistorted = y (1 + k1 * r2 + k2 * r4 + k3 * r6)
x, y - неискаженные расположения пикселей. x и y находятся в нормализованных координатах изображения. Нормализованные координаты изображения вычисляют по координатам пикселей путем перевода в оптический центр и деления на фокусное расстояние в пикселях. Таким образом, x и y безразмерны.
k1, k2 и k3 - коэффициенты радиального искажения объектива.
r2: x2 + y2
Обычно для калибровки достаточно двух коэффициентов. Для сильного искажения, например в широкоугольных линзах, можно выбрать 3 коэффициента для включения k3.
Неискаженные местоположения пикселей находятся в нормализованных координатах изображения с началом координат в оптическом центре. Координаты выражены в мировых единицах.
Стандартная модель: Расчетный наклон
При установке флажка Вычислить наклон (Compute Skew) калибратор оценивает перекос осей изображения. Некоторые датчики камеры содержат дефекты, из-за которых оси x и y изображения не перпендикулярны. Этот дефект можно смоделировать с помощью параметра перекоса. Если флажок не установлен, предполагается, что оси изображения перпендикулярны, что характерно для большинства современных камер.
Стандартная модель: вычисление тангенциального искажения
Касательное искажение происходит, когда объектив и плоскость изображения не параллельны. Коэффициенты тангенциального искажения моделируют этот тип искажения.
Искаженные точки обозначаются как (xdistorted, ydistorted):
xdistorted = x + [2 * p1 * x * y + p2 * (r2 + 2 * x2)]
ydistorted = y + [p1 * (r2 + 2 * y2) + 2 * p2 * x * y]
x, y - неискаженные расположения пикселей. x и y находятся в нормализованных координатах изображения. Нормализованные координаты изображения вычисляют по координатам пикселей путем перевода в оптический центр и деления на фокусное расстояние в пикселях. Таким образом, x и y безразмерны.
p1 и p2 - коэффициенты тангенциального искажения линзы.
r2: x2 + y2
При установке флажка Вычислить тангенциальное искажение (Compute Tangential Distortion) калибратор оценивает коэффициенты тангенциального искажения. В противном случае калибратор устанавливает коэффициенты тангенциального искажения на ноль.
Модель Fisheye: Оценка выравнивания
В разделе «Модель камеры» выберите «Рыбий глаз» и нажмите «Параметры». Выберите «Оценить выравнивание», чтобы разрешить оценку выравнивания осей, когда оптическая ось объектива рыболовного глаза не перпендикулярна плоскости изображения.
Экспорт параметров камеры
Если точность калибровки удовлетворительна, нажмите кнопку «Экспорт параметров камеры». Можно либо сохранить и экспортировать параметры камеры в объект, выбрав «Экспорт параметров камеры», либо создать параметры камеры в виде сценария MATLAB.
Экспорт параметров камеры
Выберите «Экспорт > «Экспорт » для создания cameraParameters в рабочей области. Объект содержит внутренние и внешние параметры камеры и коэффициенты искажения. Этот объект можно использовать для различных задач компьютерного зрения, таких как устранение искажения изображения, измерение плоских объектов и реконструкция 3-D. См. раздел Измерение плоских объектов с помощью калиброванной камеры. При необходимости можно экспортировать cameraCalibrationErrors объект, содержащий стандартные ошибки расчетных параметров камеры, путем установки флажка Экспортировать ошибки оценки.
Создать сценарий MATLAB
Выберите «Экспорт сохранения параметров камеры в сценарии MATLAB, что позволит воспроизвести шаги из сеанса калибровки.
Ссылки
[1] Чжан, З. «Новый гибкий метод калибровки камеры». Транзакции IEEE по анализу шаблонов и машинному интеллекту. Том 22, номер. 11, 2000, стр 1330–1334.
[2] Хейккила, Дж. и О. Сильвен. «Четырехэтапная процедура калибровки камеры с неявной коррекцией изображения». Международная конференция IEEE по компьютерному зрению и распознаванию образов. 1997.
[3] Скарамуцца, Д., А. Мартинелли и Р. Зигварт. «Набор инструментов для простой калибровки однонаправленных камер». Материалы Международной конференции IEEE по интеллектуальным роботам и системам (IROS 2006). Пекин, Китай, 7-15 октября 2006 года.
[4] Городской, S., Дж. Лейтлофф и С. Хинц. «Улучшенная широкоугольная калибровка, калибровка Fisheye и всенаправленной камеры». ISPRS Journal of Photogrammetry and Remove Sensing. Том 108, 2015, ст.72-79.
См. также
Калибратор камеры | cameraParameters | detectCheckerboardPoints | estimateCameraParameters | generateCheckerboardPoints | showExtrinsics | showReprojectionErrors | Калибратор стереокамеры | stereoParameters | undistortImage
Связанные примеры
Подробнее
Внешние веб-сайты