Приложение калибратора стереокамеры
Обзор калибратора стереокамеры
Для калибровки стереокамеры можно использовать приложение Stereo Camera Calibrator, которое затем можно использовать для восстановления глубины изображения. Стереосистема состоит из двух камер: камеры 1 и камеры 2. Приложение может либо оценивать, либо импортировать параметры отдельных камер. Приложение также вычисляет положение и ориентацию камеры 2 относительно камеры 1.
Приложение «Калибратор стереокамеры» создает объект, содержащий параметры стереокамеры. Этот объект можно использовать для
Исправление стереоизображений с помощью rectifyStereoImages функция.
Реконструируйте сцену 3-D с помощью reconstructScene функция.
Вычислите местоположения 3-D, соответствующие совпадающим парам точек изображения, используя triangulate функция.
Набор функций калибровки, используемый приложением Stereo Camera Calibrator, обеспечивает рабочий процесс калибровки стереосистемы. Эти функции можно использовать непосредственно в рабочей области MATLAB ®. Список функций калибровки см. в разделе Калибровка камеры.
Примечание
Можно использовать приложение Camera Calibrator с камерами до поля зрения (FOV) 95 градусов.
Калибровка стереокамеры
Выполните следующие действия для калибровки стереокамеры с помощью приложения:
Подготовка изображений, камеры и шаблона калибровки.
Добавление пар изображений.
Откалибруйте стереокамеру.
Оцените точность калибровки.
Отрегулируйте параметры для повышения точности (при необходимости).
Экспорт объекта параметров.
В некоторых случаях значения по умолчанию работают хорошо, и нет необходимости вносить какие-либо улучшения перед экспортом параметров. Можно также внести улучшения с помощью функций калибровки камеры непосредственно в рабочем пространстве MATLAB. Список функций см. в разделе Калибровка камеры.
Открытие калибратора стереокамеры
Подготовка образца, камеры и изображений
Для улучшения результатов используйте от 10 до 20 изображений шаблона калибровки. Калибратор требует не менее трех изображений. Используйте несжатые изображения или форматы сжатия без потерь, например PNG. Шаблон калибровки и настройка камеры должны соответствовать набору требований для работы с калибратором. Для повышения точности калибровки следуйте этим инструкциям для подготовки шаблона, настройки камеры и съемки изображений.
Подготовка шаблона контрольной доски
Приложение Camera Calibrator использует шахматный рисунок. Шашечный рисунок - удобная калибровочная мишень. Если для извлечения ключевых точек требуется использовать другой шаблон, можно использовать функции калибровки камеры MATLAB непосредственно. Список функций см. в разделе Калибровка камеры.
Можно распечатать (из MATLAB) и использовать предоставленный шаблон шахматной доски. Шаблон шахматной доски не должен быть квадратным. Одна сторона должна содержать чётное число квадратов, а другая - нечётное число квадратов. Поэтому рисунок содержит два черных угла вдоль одной стороны и два белых угла на противоположной стороне. Этот критерий позволяет приложению определять ориентацию шаблона. Калибратор назначает более длинную сторону направлением x.
Для подготовки шаблона шахматной доски:
Прикрепите распечатку шахматной доски к плоской поверхности. Дефекты на поверхности могут повлиять на точность калибровки.
Измерьте одну сторону шахматного квадрата. Это измерение необходимо для калибровки. Размер квадратов может изменяться в зависимости от настроек принтера.
Чтобы повысить скорость обнаружения, настройте шаблон с как можно меньшим фоновым загромождением.
Настройка камеры
Для калибровки камеры выполните следующие правила:
Держите шаблон в фокусе, но не используйте автофокусировку.
При изменении параметров масштабирования между изображениями изменяется фокусное расстояние.
Захват изображений
Для получения наилучших результатов используйте не менее 10-20 изображений шаблона калибровки. Калибратор требует не менее трех изображений. Использование несжатых изображений или изображений в форматах сжатия без потерь, таких как PNG. Для большей точности калибровки:
Снимайте изображения узора на расстоянии, примерно равном расстоянию от камеры до интересующих объектов. Например, если вы планируете измерять объекты от 2 метров, сохраните рисунок примерно в 2 метрах от камеры.
Разместите шахматную доску под углом менее 45 градусов относительно плоскости камеры.
Не изменяйте изображения (например, не обрезайте их).
Не используйте автофокусировку и не изменяйте параметры масштабирования между изображениями.
Снимайте изображения шахматного рисунка в различных ориентациях относительно камеры.
Захватите различные изображения узора, чтобы учесть как можно больше кадра изображения. Искажение линзы увеличивается радиально от центра изображения и иногда является неравномерным по всему кадру изображения. Чтобы зафиксировать это искажение объектива, рисунок должен выглядеть близко к краям захваченных изображений.
Убедитесь, что шахматный рисунок полностью виден на обоих изображениях каждой стереопары.
Храните узор неподвижным для каждой пары изображений. Любое движение рисунка между снимающим изображением 1 и изображением 2 пары отрицательно влияет на калибровку.
Создайте стереофонический дисплей, или анаглиф, расположив две камеры на расстоянии примерно 55 мм. Это расстояние представляет собой среднее расстояние между глазами человека.
Для большей точности реконструкции на больших расстояниях разместите камеры дальше друг от друга.
Добавить пары изображений
Чтобы начать калибровку, щелкните Добавить изображения (Add images), чтобы выбрать два набора стереоизображений шахматной доски, по одному набору из каждой камеры.
Загрузить изображения
Чтобы добавить изображения из нескольких папок, щелкните Добавить изображения (Add images) в разделе Файл (File) вкладки Калибровка (Calibration). Выберите местоположение изображений, соответствующих камере 1, с помощью кнопки «Обзор», затем выполните то же самое для камеры 2. Укажите размер квадрата шахматной доски, введя длину одной стороны квадрата от узора шахматной доски.
Анализ изображений
Калибратор пытается обнаружить шашку в каждом из добавленных изображений, отображая окно индикатора выполнения Analyzing Images, указывающее ход обнаружения. Если какое-либо из изображений отклонено, появится диалоговое окно Результаты обнаружения (Detection Results), содержащее диагностическую информацию. Результаты показывают, сколько изображений было обработано, сколько было принято, отклонено или пропущено. Калибратор пропускает повторяющиеся изображения.
Чтобы просмотреть отклоненные изображения, щелкните Показать изображения. Калибратор отклоняет повторяющиеся изображения. Он также отклоняет изображения, на которых невозможно обнаружить всю шахматную доску. Возможными причинами отсутствия обнаружения являются размытое изображение или крайний угол узора. Обнаружение занимает больше времени с более крупными изображениями и с узорами, которые содержат большое количество квадратов.
Просмотр изображений и обнаруженных точек
На панели «Браузер данных» отображается список пар изображений с идентификаторами. Эти пары изображений содержат обнаруженный шаблон. Чтобы просмотреть изображение, выберите его на панели «Браузер данных».
На панели Изображение (Image) отображается выбранная пара шахматных изображений с зелеными кружками для обозначения обнаруженных точек. С помощью элементов управления масштабированием можно проверить правильность обнаружения углов. Желтый квадрат указывает начало координат (0,0). Стрелки X и Y указывают ориентацию осей шашки.
Intrinsics
Вы можете выбрать приложение для вычисления характеристик камеры или загрузить предварительно вычисленные фиксированные характеристики. Чтобы загрузить внутренние данные в приложение, выберите Использовать фиксированные внутренние данные в разделе Внутренние данные на вкладке Калибровка. Опции Радиальное искажение (Radial Distorion) и Вычислить (Compute) в разделе Опции (Options) отключаются при загрузке внутренних параметров.
Чтобы загрузить внутренние данные в качестве переменных из рабочей области, щелкните Загрузить внутренние данные (Load Intrinsics). Например, если wideBaselineStereo структура содержит характеристики обеих камер.
ld = load('wideBaselineStereo');
int1 = ld.intrinsics1
int2 = ld.intrinsics2
Затем щелкните
Загрузить внутренние параметры (Load Intrinsics), чтобы указать эти переменные в диалоговом окне, как показано на рисунке.
Калибровать
После того, как вы удовлетворены принятыми парами изображений, нажмите кнопку Calibrate (Калибровка) на вкладке Calibration (Калибровка). Настройки калибровки по умолчанию предполагают минимальный набор параметров камеры. Начните с выполнения калибровки с настройками по умолчанию. После оценки результатов можно попытаться повысить точность калибровки, настроив настройки и добавив или удалив изображения, а затем снова выполнить калибровку.
Оптимизация
Когда камера имеет сильное искажение объектива, приложение может не рассчитать начальные значения характеристик камеры. Если у вас есть спецификации производителя для вашей камеры и вы знаете размер пикселя, фокусное расстояние или характеристики объектива, вы можете вручную задать начальные догадки для характеристик камеры и радиальных искажений. Чтобы задать начальные догадки, щелкните Опции (Options) > Опции оптимизации (Optimization Options).
Примечание
Эти опции недоступны для предварительно загруженных внутренних параметров.
Установите верхний флажок и введите матрицу 3 на 3, чтобы указать исходные характеристики. Если начальное предположение не задано, функция вычисляет начальную внутреннюю матрицу с помощью линейных наименьших квадратов.
Установите нижний флажок и введите вектор из 2- или 3 элементов, чтобы задать начальное радиальное искажение. Если значение не указано, функция использует 0 в качестве начального значения для всех коэффициентов.
Оценка результатов калибровки
Точность калибровки можно оценить, изучив ошибки обратного впрыска, внешний вид камеры или незаметное изображение. Для получения наилучших результатов калибровки используйте все три метода оценки.
Проверка ошибок повторного впрыска
Ошибки повторного проецирования представляют собой расстояния в пикселях между обнаруженной и повторно спроецируемой точками. Приложение Stereo Camera Calibrator вычисляет ошибки репроекции, проецируя точки шашки из координат мира, определенных шашкой, в координаты изображения. Затем приложение сравнивает повторно проецируемые точки с соответствующими обнаруженными точками. Как правило, допустимы средние ошибки обратного впрыска менее одного пикселя.
Приложение Stereo Calibration (Калибровка стереофонического изображения) отображает ошибки проецирования в пикселях в виде гистограммы. График помогает определить изображения, которые неблагоприятно влияют на калибровку. Выберите элемент гистограммы и удалите изображение из списка изображений на панели «Браузер данных».
Гистограмма ошибок перепроекции
На гистограмме отображается средняя ошибка репроекции по изображению, а также общая средняя ошибка. Штриховые метки соответствуют идентификаторам изображений. Выделенные полосы соответствуют выбранной паре изображений.
Выберите пару изображений одним из следующих способов:
Щелкните соответствующую строку на графике.
Выберите пару изображений из списка на панели «Браузер данных».
Отрегулируйте общую среднюю ошибку. Щелкните и сдвиньте красную линию вверх или вниз, чтобы выбрать изображения с отклонениями.
Проверка визуализации внешних параметров
График внешних параметров 3-D обеспечивает ориентированный на камеру вид образцов и ориентированный на массив вид камеры. Ориентированный на камеру вид полезен, если камера была неподвижной при захвате изображений. Ориентированный на массив вид полезен, если образец был неподвижным. Чтобы повернуть фигуру, можно щелкнуть курсор и, удерживая нажатой кнопку мыши, щелкнуть значок поворота. Щелкните на шахматной доске (или камере), чтобы выбрать ее. Выделенные данные в визуализациях соответствуют выбранному изображению в списке. Проверьте относительные положения шаблона и камеры, чтобы определить, соответствуют ли они ожидаемому. Например, шаблон, появляющийся за камерой, указывает на ошибку калибровки.
Показать исправленные изображения
Для просмотра результатов стереоретификации щелкните Показать исправленные (Show Rectified) в разделе Вид (View) вкладки Калибровка (Calibration). Если калибровка была точной, изображения становятся неискаженными и выровненными по строкам.
Проверка исправленных изображений важна, даже если ошибки обратного впрыска малы. Например, если узор покрывает только небольшой процент изображения, оценка искажения может быть неправильной, даже если калибровка привела к нескольким ошибкам обратного впрыска. На следующем рисунке показан пример этого типа неправильной оценки для калибровки одной камеры.
Улучшение калибровки
Для улучшения калибровки можно удалить пары изображений с высокой погрешностью, добавить дополнительные пары изображений или изменить настройки калибратора.
Добавление и удаление изображений
Рекомендуется добавить дополнительные изображения, если:
У вас меньше 10 изображений.
Узоры недостаточно охватывают кадр изображения.
Узоры не имеют достаточного изменения ориентации относительно камеры.
Рекомендуется удалить изображения, если:
Изображения имеют высокую среднюю ошибку репроекции.
Изображения размыты.
Изображения содержат шахматную доску под углом более 45 градусов относительно плоскости камеры.
Изображения содержат неправильно обнаруженные контрольные точки.
Изменение количества коэффициентов радиального искажения
Можно задать 2 или 3 коэффициента радиального искажения, выбрав соответствующий переключатель в разделе Опции (Options). Радиальные искажения возникают, когда лучи света изгибаются больше вблизи краев линзы, чем в ее оптическом центре. Чем меньше линза, тем больше искажение.
Коэффициенты радиального искажения моделируют этот тип искажения. Искаженные точки обозначаются как (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) калибратор оценивает коэффициенты тангенциального искажения. В противном случае калибратор устанавливает коэффициенты тангенциального искажения на ноль.
Экспорт параметров камеры
Если точность калибровки удовлетворительна, нажмите кнопку «Экспорт параметров камеры». Можно либо сохранить и экспортировать параметры камеры в объект, выбрав «Экспорт параметров камеры», либо создать параметры камеры в виде сценария MATLAB.
Экспорт параметров камеры
Выберите «Экспорт > «Экспорт » для создания stereoParameters в рабочей области. Объект содержит внутренние и внешние параметры камеры и коэффициенты искажения. Этот объект можно использовать для различных задач компьютерного зрения, таких как устранение искажения изображения, измерение плоских объектов и реконструкция 3-D. См. раздел Измерение плоских объектов с помощью калиброванной камеры. При необходимости можно экспортировать stereoCalibrationErrors объект, содержащий стандартные ошибки параметров оценочной стереокамеры, путем установки флажка Экспортировать ошибки оценки.
Создать сценарий MATLAB
Выберите «Экспорт > «Создать » для сохранения параметров камеры в сценарии MATLAB, что позволит воспроизвести шаги из сеанса калибровки.
Ссылки
[1] Чжан, З. «Новый гибкий метод калибровки камеры». Транзакции IEEE по анализу шаблонов и машинному интеллекту.Vol. 22, № 11, 2000, стр 1330–1334.
[2] Хейккила, Джей и О. Сильвен. «Четырехэтапная процедура калибровки камеры с неявной коррекцией изображения». Международная конференция IEEE по компьютерному зрению и распознаванию образов. 1997.
См. также
Калибратор камеры | cameraParameters | detectCheckerboardPoints | estimateCameraParameters | generateCheckerboardPoints | showExtrinsics | showReprojectionErrors | Калибратор стереокамеры | stereoParameters | undistortImage
Связанные примеры
Подробнее
Внешние веб-сайты