Stereo Camera Calibrator приложение
Stereo Camera Calibrator обзор
Можно использовать приложение Stereo Camera Calibrator для калибровки стереофотоаппарата, который затем можно использовать, чтобы восстановить глубину изображения. Стереосистема состоит из двух камер: камеры 1 и камеры 2. Приложение может либо оценить, либо импортировать параметры отдельных камер. Приложение также вычисляет положение и ориентацию камеры 2 относительно камеры 1.
Приложение Stereo Camera Calibrator создает объект, содержащий параметры стереофотоаппарата. Вы можете использовать этот объект для
Исправьте стерео изображений, используя rectifyStereoImages
функция.
Восстановите 3-D сцену, используя reconstructScene
функция.
Вычислите местоположения 3-D, соответствующие совпадающим парам точек изображения, используя triangulate
функция.
Набор функций калибровки, используемый приложением Stereo Camera Calibrator, обеспечивает рабочий процесс для калибровки стереосистемы. Можно использовать эти функции непосредственно в MATLAB® рабочей области. Список функций калибровки см. в разделе «Калибровка камеры».
Примечание
Вы можете использовать приложение Camera Calibrator с камерами до поля зрения ( FOV) 95 степеней.
Калибровка стереофотоаппарата
Следуйте этому рабочему процессу, чтобы калибровать стереофотоаппарат с помощью приложения:
Подготовьте изображения, камеру и калибровочный шаблон.
Добавьте пары изображений.
Калибровка стереофотоаппарата.
Оцените точность калибровки.
Настройте параметры для повышения точности (при необходимости).
Экспортируйте объект параметров.
В некоторых случаях значения по умолчанию работают хорошо, и вам не нужно вносить никаких улучшений перед экспортом параметров. Можно также внести улучшения с помощью функций калибровки камеры непосредственно в рабочем пространстве MATLAB. Список функций см. в разделе Калибровка камеры.
Откройте Stereo Camera Calibrator
MATLAB Toolstrip: на вкладке Apps, в разделе Image Processing and Computer Vision, щелкните значок Stereo Camera Calibrator.
Командная строка MATLAB: Ввод stereoCameraCalibrator
Подготовка шаблона, камеры и изображений
Для улучшения результатов используйте от 10 до 20 изображений калибровочного шаблона. Калибратору требуется как минимум три изображения. Используйте несжатые изображения или форматы сжатия без потерь, такие как PNG. Калибровочный шаблон и настройка камеры должны удовлетворять набору требований для работы с калибратором. Для большей точности калибровки следуйте этим инструкциям для подготовки шаблона, настройки камеры и захвата изображений.
Подготовка шаблона шахматной доски
Приложение Camera Calibrator использует шаблон шахматной доски. Шахматный шаблон является удобной целью калибровки. Если вы хотите использовать другой шаблон для извлечения ключевых точек, можно использовать функции MATLAB калибровки камеры непосредственно. Список функций см. в разделе Калибровка камеры.
Вы можете распечатать (из MATLAB) и использовать предоставленный шаблон шахматной доски. Используемый шаблон шахматной доски не должен быть квадратным. Одна сторона должна содержать четное количество квадратов, а другая - нечетное количество квадратов. Поэтому шаблон содержит два черных угла вдоль одной стороны и два белых угла с противоположной стороны. Этот критерий позволяет приложению определять ориентацию шаблона. Калибратор присваивает более длинной стороне x -направление.
Для подготовки шаблона шахматной доски:
Прикрепите распечатку шахматной доски к плоской поверхности. Дефекты на поверхности могут повлиять на точность калибровки.
Измерьте одну сторону шахматного квадрата. Вам нужно это измерение для калибровки. Размер квадратов может варьироваться в зависимости от настроек принтера.
Чтобы улучшить скорость обнаружения, настройте шаблон с как можно меньшим загромождением фона.
Setup камеры
Чтобы калибровать камеру, следуйте следующим правилам:
Сохраните шаблон в особом внимании, но не используйте автофокус.
Если вы меняете настройки масштаба между изображениями, изменяется фокусное расстояние.
Захват изображений
Для наилучших результатов используйте не менее 10-20 изображений калибровочного шаблона. Калибратору требуется как минимум три изображения. Используйте несжатые изображения или изображения в форматах сжатия без потерь, таких как PNG. Для большей точности калибровки:
Захватывайте изображения шаблона на расстоянии, примерно равном расстоянию от вашей камеры до интересующих объектов. Например, если вы планируете измерять объекты от 2 метров, сохраните шаблон приблизительно в 2 метрах от камеры.
Установите шахматную панель под углом менее 45 степени относительно плоскости камеры.
Не изменяйте изображения (для примера не обрезайте их).
Не используйте автофокус и не изменяйте настройки масштаба между изображениями.
Захватывайте изображения шахматного шаблона в разных ориентациях относительно камеры.
Захватывайте различные изображения шаблона, чтобы вы учитывали как можно больше систему координат изображения. Искажение объектива увеличивается радиально от центра изображения и иногда не равномерно поперек системы координат изображения. Чтобы захватить это искажение объектива, шаблон должен появиться близко к ребрам захваченных изображений.
Убедитесь, что шаблон шахматной доски полностью виден на обоих изображениях каждого стерео пары.
Сохраните шаблон стационарным для каждой пары изображений. Любое движение шаблона между снятием изображения 1 и изображением 2 пары отрицательно влияет на калибровку.
Создайте стерео отображения, или анаглиф, путем расположения двух камер на расстоянии приблизительно 55 мм. Это расстояние представляет среднее расстояние между глазами человека.
Для большей точности восстановления на больших расстояниях расположите камеры дальше друг от друга.
Добавление пар изображений
Чтобы начать калибровку, нажмите кнопку Add images, чтобы выбрать два набора стерео изображений шахматной доски, по одному набору из каждой камеры.
Загрузка изображений
Можно добавить изображения из нескольких папок, нажав Add images в File разделе вкладки Calibration. Выберите местоположение для изображений, соответствующих камере 1, используя кнопку Browse, затем выполните то же самое для камеры 2. Задайте Size of checkerboard square путем ввода длины одной стороны квадрата из шахматного шаблона.
Анализируйте изображения
Калибратор пытается обнаружить шахматную доску в каждом из добавленных изображений, отображая окно прогресса анализирующих изображений, указывающее на прогресс обнаружения. Если какое-либо из изображений отклонено, появляется диалоговое окно Результаты обнаружения, содержащее диагностическую информацию. Результаты показывают, сколько всего изображений было обработано, и из обработанных, сколько было принято, отклонено или пропущено. Калибратор пропускает повторяющиеся изображения.
Чтобы просмотреть отклоненные изображения, нажмите View images. Калибратор отклоняет повторяющиеся изображения. Он также отклоняет изображения, в которых не удалось обнаружить всю шахматную доску. Возможными причинами отсутствия обнаружения являются размытое изображение или крайний угол шаблона. Обнаружение занимает больше времени с большими изображениями и шаблонами, которые содержат большое количество квадратов.
Просмотр изображений и обнаруженных точек
На Data Browser панели отображается список пар изображений с идентификаторами. Эти пары изображений содержат обнаруженный шаблон. Чтобы просмотреть изображение, выберите его на панели Data Browser.
На Image панели отображается выбранная пара изображений с зелеными кругами для указания обнаруженных точек. Можно проверить, что углы были правильно обнаружены, используя элементы управления масштабом. Желтый квадрат указывает на источник (0,0). Стрелы X и Y обозначают ориентацию осей шашек.
Intrinsics
Можно выбрать приложение, чтобы вычислить внутренность камеры или можно загрузить предварительно вычисленные фиксированные внутренности. Чтобы загрузить признаки в приложение, выберите Use Fixed Intrinsics в разделе Intrinsics вкладки Calibration. Опции Radial Distortion и Compute в Options разделе отключены, когда вы загружаете внутреннюю составляющую.
Чтобы загрузить внутренние переменные из рабочей области, нажмите Load Intrinsics. Для примера, если wideBaselineStereo
struct содержит признаки для обеих камер.
ld = load('wideBaselineStereo');
int1 = ld.intrinsics1
int2 = ld.intrinsics2
Затем щелкните
Load Intrinsics, чтобы задать эти переменные в диалоговом окне, как показано на рисунке.
Калибровать
После того, как вы удовлетворены принятыми парами изображений, нажмите кнопку Calibrate на вкладке Calibration. Настройки калибровки по умолчанию предполагают минимальный набор параметров камеры. Начните, запустив калибровку с настройками по умолчанию. После оценки результатов можно попытаться улучшить точность калибровки, настроив настройки и добавив или удалив изображения, а затем еще раз калибровать.
Оптимизация
Когда камера имеет серьезные искажения объектива, приложение может не вычислить начальные значения для внутренней характеристики камеры. Если у вас есть спецификации производителя для вашей камеры и вы знаете размер пикселя, фокусное расстояние или характеристики объектива, можно вручную задать начальные догадки для внутренней характеристики камеры и радиального искажения. Чтобы задать начальные предположения, нажмите Options > Optimization Options.
Примечание
Эти опции недоступны для предварительно загруженных внутренностей.
Установите верхний флажок, а затем введите матрицу размером 3 на 3, чтобы задать исходные признаки. Если вы не задаете начальное предположение, функция вычисляет начальную внутреннюю матрицу с помощью линейного метода наименьших квадратов.
Установите нижний флажок, а затем введите вектор с 2 или 3 элементами, чтобы задать начальное радиальное искажение. Если вы не задаете значение, функция использует 0
как начальное значение для всех коэффициентов.
Оценка результатов калибровки
Можно оценить точность калибровки, исследуя ошибки репроекции, исследуя внешнюю камеру или просматривая неискаженное изображение. Для наилучших результатов калибровки используйте все три метода оценки.
Исследуйте ошибки репроекции
Это reprojection errors расстояния в пикселях между обнаруженной и перепроектированной точками. Приложение Stereo Camera Calibrator вычисляет ошибки репроекции, проецируя шахматные точки из мировых координат, определенных шахматной доской, в координаты изображения. Затем приложение сравнивает перепроектированные точки с соответствующими обнаруженными точками. Как правило, допустимы средние ошибки репроекции менее чем на один пиксель.
В пикселях Stereo Calibration App отображает ошибки репроекции в виде гистограммы. График помогает вам определить, какие изображения отрицательно способствуют калибровке. Выберите элемент гистограммы и удалите изображение из списка изображений на панели Data Browser.
Ошибки репроекции Гистограммы
На гистограмму отображается средняя ошибка перепроекции на изображение, а также общая средняя ошибка. Штриховые метки соответствуют идентификаторам изображений. Подсвеченные полосы соответствуют выбранной паре изображений.
Выберите пару изображений одним из следующих способов:
Щелкните соответствующую полосу в графике.
Выберите пару изображений из списка на панели Data Browser.
Настройте общую среднюю ошибку. Щелкните и сдвиньте красную линию вверх или вниз, чтобы выбрать изображения выбросов.
Исследуйте визуализацию внешнего параметра
График 3-D внешних параметров обеспечивает ориентированный на камеру вид шаблонов и ориентированный на шаблон вид камеры. Ориентированный на камеру вид полезен, если камера была стационарной при захвате изображений. Ориентированное на шаблон представление полезно, если шаблон был стационарным. Для поворота рисунка можно щелкнуть курсор и удерживать нажатой кнопку мыши со значком поворота. Щелкните на шахматной доске (или камере), чтобы выбрать ее. Подсвеченные данные в визуализациях соответствуют выбранному изображению в списке. Исследуйте относительные положения шаблона и камеры, чтобы определить, соответствуют ли они тому, что вы ожидаете. Для примера шаблон, который появляется за камерой, указывает на ошибку калибровки.
Показать выпрямленные изображения
Чтобы просмотреть эффекты стерео-коррекции, нажмите Show Rectified в View разделе вкладки Calibration. Если калибровка была точной, изображения становятся неискаженными и выровненными по строкам.
Проверка исправленных изображений важна, даже если ошибки репроекции малы. Для примера, если шаблон покрывает только небольшой процент изображения, оценка искажения может быть неправильной, хотя калибровка привела к немногим ошибкам репроекции. На следующем изображении показан пример неправильной оценки этого типа для калибровки одиночной камеры.
Улучшите калибровку
Чтобы улучшить калибровку, можно удалить пары изображений с высокой ошибкой, добавить больше пар изображений или изменить настройки калибратора.
Добавление или удаление изображений
Рассмотрите добавление дополнительных изображений, если:
У вас меньше 10 изображений.
Шаблоны не покрывают достаточно систему координат изображения.
Шаблоны не имеют достаточного изменения ориентации относительно камеры.
Рассмотрите удаление изображений, если изображения:
Изображения имеют высокую среднюю ошибку репроекции.
Изображения размыты.
Изображения содержат шахматную табличку под углом более 45 степени относительно плоскости камеры.
Изображения содержат неправильно обнаруженные шахматные точки.
Измените количество коэффициентов радиального искажения
Можно задать 2 или 3 коэффициента радиального искажения, выбрав соответствующий переключатель из Options раздела. 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, калибратор оценивает коэффициенты тангенциального искажения. В противном случае калибратор устанавливает коэффициенты тангенциального искажения в нуль.
Экспорт параметров камеры
Когда вы удовлетворены точностью калибровки, нажмите Export Camera Parameters. Можно либо сохранить и экспортировать параметры камеры в объект, выбрав Export Camera Parameters, либо сгенерировать параметры камеры в виде скрипта MATLAB.
Экспорт параметров камеры
Выберите > , чтобы создать stereoParameters
объект в рабочей рабочей области. Объект содержит собственные и внешние параметры камеры и коэффициенты искажения. Можно использовать этот объект для различных задач компьютерного зрения, таких как неискажение изображения, измерение планарных объектов и реконструкция 3-D. См. «Измерение плоских объектов калиброванной камерой». Вы можете опционально экспортировать stereoCalibrationErrors
объект, который содержит стандартные ошибки предполагаемых параметров стереофотоаппарата, путем установки флажка Export estimation errors.
Сгенерируйте скрипт MATLAB
Выберите > , чтобы сохранить параметры камеры в скрипте MATLAB, что позволит вам воспроизвести шаги из сеанса калибровки.
Ссылки
[1] Чжан, З. «Гибкий новый техник калибровки камеры». Транзакции IEEE по анализу шаблонов и Machine Intelligence. Vol. 22, № 11, 2000, стр 1330–1334.
[2] Heikkila, J, and O. Silven. «Четырехэтапная процедура калибровки камеры с неявной коррекцией изображения». Международная конференция IEEE по компьютерному зрению и распознаванию шаблонов. 1997.
См. также
Camera Calibrator | cameraParameters
| detectCheckerboardPoints
| estimateCameraParameters
| generateCheckerboardPoints
| showExtrinsics
| showReprojectionErrors
| Stereo Camera Calibrator | stereoParameters
| undistortImage
Похожие примеры
Подробнее о
Внешние веб-сайты