Калибровка камеры это что

Калибровка камеры в Adobe Camera RAW

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

Многие студийные камеры и ПО для них позволяют использовать технологию управление цветом. Для конкретного источника освещения управление цветом с помощью профиля можно без особого труда реализовать, как постпроцесс для любой камеры (допускающей ручные установки экспозиции, баланса белого и контраста). Для этого надо лишь построить профиль камеры так, как это описано в статье «Профили для цифровых камер. Пакет XLProfiler»). А затем «присвоить» профиль файлу-снимку в графическом редакторе.

Одно из основных препятствий для внедрения управления цветом в съемочную технику — непостоянство источника освещения. Если требуется точное попадание в цвет, то калибровать камеру нужно, фактически, под каждую конкретную съемку (под каждый конкретный источник света). С другой стороны, при оперативной съемке точное попадание в цвет редко является важным критерием качества. Заложенные в камеру или ПО алгоритмы коррекции баланса белого и «пересчета» фильтров на матрице в RGB-цвета файлов JPEG/TIFF/RAW, как отмечалось выше, работают вполне корректно. Калибровка камеры в Adobe Camera RAW

В модуле Adobe Camera RAW есть подменю «Калибровка камеры»:

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

Подменю называется «Калибровка» и вообще не предназначено для выполнения задач управления цветом. В этом подменю всего семь «движков»: для коррекции цветового оттенка теней и трех основных цветов в координатах «оттенок-насыщенность». Фактически, это дополнительная возможность цветокоррекции изображений, получаемых с помощью конкретной камеры, для которой профиль «заложен» в Camera RAW или содержится в файле TIFF/JPEG/DNG (Camera RAW теперь открывает и эти файлы, а в поле «Имя — Профиль камеры» можно выбрать внедренный в них профиль, RAW-файлы пока не поддерживают профили). Целью такой цветокоррекции может быть как более точная цветопередача, так и намеренное искажения цветов, к примеру, для имитации съемки в ИК-диапазоне.

В «Adobe help center» подменю «Калибровка камеры» описывается как инструмент, который позволяет при необходимости подкорректировать заложенный в программу или файл профиль камеры, используемый при пересчете цветов. Разработчики сообщают, что «Калибровка камеры» может потребоваться, если условия освещения, при которых производится съемка, сильно отличаются от тех, при которых создавался встроенный профиль. Или если конкретная модель камеры имеет характеристики отличные от характеристик камеры, использовавшейся при профилировке. Технология калибровки не описывается, но упоминается, что метод контроля корректности цветопередачи «визуальный».

Описание процесса калибровки в целях получения более точной цветопередачи можно найти в книге Брюса Фрезера (Bruce Fraser) «Camera RAW c Photoshop CS» или на сайте, для которого он писал статьи. Для калибровки потребуется мишень с известными координатами Macbeth Color Checker (координаты можно взять здесь).

В общих чертах процесс выглядит так:
съемка мишени в определенных условиях освещения в RAW,
обработка RAW-файла в Camera RAW в подменю «Основной» для коррекции экспозиции, контраста, баланса белого и оттенка/насыщенности,
калибровка в окне «Калибровка камеры» по цветовым координатам мишени,
сохранение построенного калибровочного набора параметров, как «пользовательского набора» или «набора по умолчанию».

Методика, предложенная Брюсом Фрезером, предполагает калибровку по трем полям R, G, B мишени Macbeth Color Checker. Ручная калибровка

Опишем процесс калибровки, предложенный Брюсом Фрезером.

Прежде чем приступить к калибровке, нужно снять в RAW мишень Macbeth Color Checker. Затем приготовить цифровую идеализированную мишень, преобразовав ее исходник в пространстве LAB (ссылка на файл приведена выше) в то цветовое пространство, в котором вы привыкли работать (поддерживаемые Camera RAW пространства Adobe RGB или ProPhoto, к примеру). Для ручной калибровки удобно нанести на цветовые поля мишени их цифровые значения и распечатать такую мишень или вывести в независимом окне на дисплей, если он достаточно большой.

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

Когда подготовительные операции выполнены, открываем в Camera RAW снимок мишени и начинаем калибровку:

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

Первый этап

Открыв мишень в Camera RAW, устанавливаем «пипетки цветов» на серые поля и настраиваем параметры изображения в подменю «Основной». Сначала, по второму серому полю устанавливаем «баланс белого», затем по первому «экспозицию», по третьему и четвертому — «яркость», по второму, пятому и шестому полю «контраст» и «точку черного». Возможно, потребуется два-три этапа регулировок всех параметров для того, чтобы координаты снимка с точностью до ошибки (неоднородность полей на снимке в пределах трех единиц R, G, B можно считать такой ошибкой) совпали с координатами не цветных полей на идеализированной мишени.

После настройки «контраста/яркости» по шести нецветным полям переходим к настройке координат «синего», «зеленого» и «красного» полей. Рекомендуется с помощью регулятора «насыщенности» добиться максимально близкого идеальному значения цвета для «зеленого» поля.

Второй этап

Следующий этап — собственно калибровка:

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

Калибровка начинается с настройки «Тени», если у «черного» поля имеется цветной оттенок (напомним, баланс белого настраивался пипеткой баланса белого по «второму серому» полю и «черное» поле может иметь посторонний оттенок). Далее переходим к настройке цветового тона и насыщенности для «синего», «зеленого» и «красного» полей.

После нескольких десятков минут калибровки и нескольких исписанных заметками листов бумаги, удается приблизиться к идеалу, но не очень близко — ошибка по отдельной компоненте цвета достигает 10—15 единиц (при начальной ошибке до 20—30 единиц) при калибровке конкретной камеры Canon PowerShot G2.

Полезно изначально пользоваться рекомендациями Брюса Фрезера. Начинать с «зеленого» поля, «привыкнуть» к тому, что движок «цветовой тон» почти не влияет на тот цвет, которым именуется, и сильно «раздвигает» два других цвета (к примеру, увеличение красного «цветового тона» почти не меняет красную компоненту цвета, но увеличивает зеленую и почти всегда уменьшает синюю), а движок «насыщенность» синхронно меняет содержание в «смеси цветов» двух компонент, кроме той, которой сам именуется (к примеру, при увеличении насыщенности красного синхронно уменьшаются обе компоненты зеленого и синего).

Третий этап

Столкнувшись с невозможностью настроить вручную цвета лучше, чем с точностью в десяток единиц, я отказался от использования инструмента «Калибровка». Но в новой версии Camera RAW, кроме калибровки есть еще подменю выборочной коррекции цветов «HSL». Если к настройке привлечь его возможности, то удается попасть в цвет не только для трех, но для большего числа полей мишени:

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

Отметим, что подменю Camera RAW «HSL» и «Разбиение тона» вообще более эффективный инструмент калибровки, чем сама «Калибровка».

Использование калибровки

Когда нужная точность калибровки достигнута, остается сохранить «калибровку» и применять ее, если это потребуется или вообще сохранить ее как настройку «по умолчанию» для конкретной камеры и конкретного осветителя:

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

Ручная калибровка трудоемкий рутинный процесс. Для его автоматизации можно воспользоваться модулем для Photoshop AcrCalibrator, созданным Томом Форсом (Thomas Fors). С его сайта можно загрузить сам модуль и инструкцию по применению. Когда готовилась статья, AcrCalibrator 1.1 корректно работала с ACR версиями до 4.1. Тем, кто будет пробовать модуль, загрузив с сайта Adobe пробный Photoshop и последний ACR к нему, следует скачать так же ACR 4.1 и установить его на место более свежих конверторов RAW файлов.

Работать с AcrCalibrator не сложно. Его (файл AcrCalibrator.jsx) нужно загрузить в папку PhotoshopCS3/Presets/Scripts и перегрузить Photoshop. Снимок мишени открывается в Camera RAW в режиме 8 бит/цвет, ProPhoto RGB, наименьшего разрешения (для ускорения обработки). Баланс белого устанавливается по второму слева «серому» полю. Файл открывается в Adobe Photoshop. Инструментом «перо» на мишени нужно нарисовать прямоугольник, выставив его углы в центры полей мишени: «темная кожа» — «белый» — «черный» — «зелено-голубой» (угловые поля нужно выбрать именно в такой последовательности). Затем запустить скрипт AcrCalibrator и подождать. В моем случае скрипт выдал на экран данные калибровки примерно через полтора часа.

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

Чтобы сравнить эффективность различных вариантов калибровки приведем фрагменты мишени, полученные разными способами. Настройки «Основной» — одинаковые для всех способов и соответствуют тем, которые были найдены при калибровке в ручном режиме, так как именно они обеспечивают наиболее близкие идеальным координаты «серых» полей. Отличаются настройки в окнах подменю «Калибровка» и «HSL» (установки «HSL» отличаются от «по умолчанию» только в случае «ручной калибровки» по методу Брюса Фрезера).

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

Как только появился Photoshop CS с Camera RAW и вышла книга Брюса Фрезера, я испытал методику для камеры Canon PowerShot G2. Оказалось, что вручную добиться хорошего (с некоторой небольшой ошибкой) попадания «в цвет» по координатам не просто. Но еще хуже то, что и после калибровки остальные поля (те, по которым калибровка не производилась) мишени не приводятся к своим числовым значениям. Стоит ли тратить на такую калибровку время? Есть задачи, при решении которых точное попадание в определенные цвета может быть актуально. Для таких калибровка подходит. Но просто «улучшать» цветопередачу с помощью «Калибровки», скорее всего, не очень хорошая идея.

Источник

Калибровка камеры

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

Резюме

Моделирование

Обозначения

Желательно указать ортонормированные ссылки, необходимые для моделирования работы камеры:

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

Модель обскуры

Параметры, используемые в этой модели, обычно делятся на две категории: внутренние параметры, которые являются внутренними для камеры, и внешние параметры, которые могут варьироваться в зависимости от положения камеры в рабочем пространстве. К внутренним параметрам относятся:

В примесных параметрах являются:

Всего получается 12 параметров для оценки (матрица вращения R содержит 9 элементов, но соотношение, которое определяет ее как матрицу вращения R R T = 1, уменьшает количество независимых элементов до 3: 3 полярных угла).

Калибровка камеры заключается в определении числового значения параметров данной модели. Однако их можно сгруппировать по-разному, в зависимости от формы, в которой эта модель должна затем использоваться. Это приводит к различным возможным вариациям модели.

Варианты модели обскуры

Некоторые вариации модели обскуры группируют внутренние параметры следующим образом:

Этот вариант содержит 11 параметров для оценки. Его преимущество заключается в разделении внутренних и внешних параметров на две матрицы и, следовательно, в изоляции последних, которые изменяют значение каждый раз, когда камера перемещается в рабочем пространстве.

Последний имеет только 12 параметров для оценки (11 в случае s uv = 0 ), но их необходимо повторно оценивать каждый раз, когда камера перемещается.

Однако в случае широкоугольных линз условия гауссовой оптики больше не соблюдаются, что вызывает оптические деформации в конечном изображении, которые затем необходимо учитывать.

Оптические искажения

Источник

Калибровка камеры (Camera Calibration)

Tags: Калибровка камера матрица внешние внутренние параметры вращение перенос OpenCV искажения объектива шахматная доска Python

Введение

Калибровка — это процедура установления зависимости между входом (эталонные данные) и выходом (измеренные данные)

Калибровка камеры – это задача получения точных математических отношений между точками в 3D пространстве и их 2D проекциями на экране камеры. Цель процесса калибровки — найти матрицы внешних и внутренних параметров, а также коэффициенты радиальных и тангенциальных искажений объектива.

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

Одна из стандартных процедур калибровки камеры — это использование шаблона шахматной доски. Система координат камеры связывается с системой координат шахматной доски через распознавание углов клеток шахматной доски. По угловым точкам через решение системы уравнений определяются параметры калибровки.

Алгоритм калибровки одной камеры, а также алгоритм стереокалибровки реализован в библиотеке OpenCV.

Матрица внешних параметров

При калибровке внешние параметры определяют взаимное положение камеры и шахматной доски. Перед выводом зависимостей необходимо знать, как привязаны системы координат к этим элементам и какой из них подвижен.

На основе анализа результатов использования функций OpenCV определяем по элементам матрицы смещений, что СК камеры неподвижна, а шахматная доска перемещается относительно нее.

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

Оси X и Y направлены соответственно влево и вниз. Начало СК шахматной доски привязано к левой верхней вершине. Начало СК камеры находится в точке оптического центра (подробнее см. внутренние параметры камеры).

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

Для определения положения объекта в 3D пространстве достаточно 6 независимых параметров — 3 угла и 3 перемещения. Выбираем 6 удобных параметров и указываем с ними последовательность из 6 элементарных преобразований:

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

Для каждого из 6 преобразований запишем матрицы в однородных координатах :

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

Затем получаем композицию матриц, последовательно перемножая их.

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

Функция cv2.calibrateCamera выполняет основную задачу по калибровке. Она возвращает векторы поворота (3 * 1) и векторы переноса (3 × 1) калибровочного шаблона относительно камеры. Функция cv2.Rodrigues (rvec) преобразует вектор поворота в матрицу вращения. Функция np.concatenate((R_matrix, tvec), axis=1) объединяет матрицу вращения и вектор переноса в матрицу движения:

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

Сопоставляя элементы обоих матриц получаем 6 параметров:

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

Тестирую полученные выражения (программный код приводится ниже):

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

По модулю и по знаку углы beta, alpha и gamma соответствуют.

Сравниваю результаты для перемещений n, p и h с элементами матрицы смещений для того же фрейма (см. рисунок в начале подраздела).

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

Эти результаты также соответствуют.

Матрица внутренних параметров

Внутренние параметры определяют проективное преобразование от координат 3-D камеры в 2D координаты изображений в пиксельном представлении.

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

В матричном виде это преобразование записывается:Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

Положение точек снимка определяется в пиксельной системе координат uv, начало которой совмещено с верхним левым пикселем изображения.

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

Координаты центрального пикселя Cx и Cy (оптический центр) находятся на пересечении главной оптической оси объектива с матрицей камеры. Они также как и координаты любой другой точки на изображении определяются в пикселях — округляются с точностью до пикселя.

Посмотрим, как получена матрица внутренних параметров. Представим СК xyz, начало которой совпадает с фокусом камеры. Определим зависимости для проективного преобразования 3D координат xyz в 2D координаты изображения (uv) — в пиксельных единицах измерения:

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

пиксели в датчике изображения могут быть не квадратными, поэтому у нас два разных фокусных расстояния fx и fy.

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

Более простое для восприятия представление зависимостей:

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

Первые слагаемые в зависимостях для u и v округляются до целого.

В матричном виде зависимости запишутся:

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

Знак при координате y’ зависит от разновидности системы координат цифрового изображения. Различают две прямоугольных системы координат:

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

В фотограмметрии традиционно применяется левая СК (на рис. слева). В оконных WinAPI приложениях также используют эту систему координат. Правая СК (на рис. справа) принята при записи изображений в файл во всех форматах (включая и формат BMP файла). Для перехода из одной СК в другую достаточно выполнить преобразование v=H-u, где H — размер изображения в пикселях по вертикали.

Коэффициенты радиальных и тангенциальных искажений объектива

Существуют два основных вида дисторсии: радиальная дисторсия и тангенциальная дисторсия.

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

Радиальная дисторсия — искажение изображения в результате неидеальности параболической формы линзы. Искажения, вызванные радиальной дисторсией, равны 0 в оптическом центре сенсора и возрастают к краям. Как правило, радиальная дисторсия вносит наибольший вклад в искажение изображения.

Тангенциальная дисторсия — искажения изображения, вызванные погрешностями в установке линзы параллельно плоскости изображения.

Для устранения дисторсии координаты пикселей пересчитываются с помощью следующих уравнений:

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

Особенности калибровки камеры с помощью шахматной доски

Одна из стандартных процедур для вычисления всех неизвестных, указанных выше, или простой калибровки камеры — это использование шаблона шахматной доски. Система координат камеры связывается с системой координат шахматной доски через распознавание углов клеток шахматной доски (места, где два темных квадрата касаются друг друга).

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

Такие точки легко распознаются. OpenCV предоставляет ряд функций для калибровки камер использованием шаблона шахматной доски (см. Выполнение калибровки).

Можно скачать изображение шахматной доски, распечатать его на принтере и приклеить на жесткую плоскую поверхность — стекло, картон или фанеру. К подготовке шаблона необходимо подходить с особой тщательностью. Подробнее см. статью Калибровка монокулярной камеры и комментарии к статье Как проверить правильность калибровки вебкамеры?.

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

Если шахматная доска квадратная, то первая вершина однозначно не определена — может изменяться при повороте доски или камеры.

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

Подготовка изображений для калибровки

Итак, нам нужно выполнить калибровку Web-камеры, встроенной в notebook, по автоматически распознаваемым координатам вершин шахматной доски.

Мы должны заснять шахматную доску при разных ориентациях относительно Web-камеры. Можно зафиксировать камеру, а смещать шахматную доску. С точки зрения математики это одно и тоже.

Для подготовки изображений с Web-камеры ноутбука используем следующее Python приложение:

Запускаете приложение, ожидаете, пока включится камера. Выбираете ориентацию шахматной доски и нажимаете клавишу SPACE. В результате этого сохраняется png-файл изображения в директории проекта, где находится файл кода. Создайте несколько изображений (> 10) и нажмите клавишу ESC для выхода из программы.

Выбирайте ориентацию шахматной доски под наклоном и на расстоянии около 1м.

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

Выполнение калибровки

Создаем новый Python проект и помещаем изображения для калибровки камеры в папке frames — внутри проекта, там же, где и код приложения. Изображение для тестирования помещаем внутри проекта в папке frames_test.

Следующий Python код калибрует камеру по подготовленным изображениям и демонстрирует тестируемое изображение до и после калибровки:

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

Перед запуском программы обратите внимание, чтобы значение переменных boardWidth и boardHeight соответствовало количеству вершин шахматной доски. Если соответствия не будет, такие изображения программой игнорируются.

Функция cv2.calibrateCamera выполняет основную задачу по калибровке. Она оценивает внутренние и внешние параметры камеры для каждого из видов калибровочного шаблона. Алгоритм основан на A Flexible New Technique for Camera Calibration и Camera Calibration Toolbox for Matlab.

Для калибровки необходимо знать координаты точек 3D-объекта и определить соответствующие им 2D-проекции. Этого несложно добиться, используя объект с известной геометрией и легко обнаруживаемыми характерными точками. Такой объект называется калибровочным шаблоном, и OpenCV имеет встроенную поддержку шахматной доски в качестве такого шаблона (см. FindChessboardCorners).

rms, mtx, dist, rvecs, tvecs = cv2.calibrateCamera (objpoints, imgpoints, img_size,None,None)

Функция построена на итеративном алгоритме оптимизации. Алгоритм выполняет следующие шаги:

Функция возвращает окончательную ошибку повторного проецирования rms

found, rvec, tvec = cv2.solvePnP (objp, corners, mtx, dist)

где found — (True или False). Смысл других параметров функции solvePnP аналогичен функции calibrateCamera.

Логика использования этих функций следующая. При изменении положения камеры ее внутренние параметры сохраняются. Поэтому, можно сначала откалибровать внутренние параметры камеры с помощью calibrateCamera, а затем использовать функцию solvePnP для определения внешних параметров камеры по заданным внутренним параметрам и точкам всего лишь одного изображения.

Обратите внимание: если внутренние параметры известны, нет необходимости использовать эту функцию calibrateCamera только для оценки внешних параметров. Вместо этого используйте solvePnP.

Подобранные при калибровке коэффициенты дисторсии устраняют искажения только вокруг шахматной доски. За ее пределами искажения усиливаются — очевидно, это компенсация за выравнивание изображения вокруг шахматной доски. Изображение после калибровки может быть представлено обрезанным — удаляется часть рисунка с искажениями. Для этого значение 3-го параметра указанной ниже функции заменяется (с 1 на 0):

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

R_matrix, _ = cv2.Rodrigues (rvec)

Эта функция преобразует вектор поворота rvec (3 * 1), возвращаемый функциями calibrateCamera и solvePnP, в матрицу поворота (3 * 3). Кроме этого, вы можете объединить их в матрицу движения [R t]:

Точность калибровки

Точность калибровки камеры оценивается по среднеквадратичной ошибке (Root Mean Square Error, RMS Error, RMSE) перепроецирования точки.

Что такое ошибка перепроецирования точки? По положению точки, как минимум на двух изображениях камеры, вычисляются ее трехмерные координаты с использованием внутренних и внешних параметров камеры.

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

Как только трехмерные координаты точки вычислены, трехмерная точка повторно проецируется на все изображения, которые она появляется. Расстояние между отмеченной и перепроецированной точкой на одном изображении является ошибкой перепроецирования точки.

Калибровка камеры это что. Смотреть фото Калибровка камеры это что. Смотреть картинку Калибровка камеры это что. Картинка про Калибровка камеры это что. Фото Калибровка камеры это что

Функция cv2.calibrateCamera возвращает среднеквадратичную ошибку повторного проецирования (rms), обычно она должна находиться в пределах от 0.1 до 1.0 пикселя при хорошей калибровке.

Среднеквадратичная ошибка 1.0 означает, что в среднем каждая из перепроецируемых точек (Reprojected point) находится на расстоянии 1.0 пикселя от своего фактического положения (3D point, marked on the image).

Rms находится через решение задачи оптимизации — определяется набор параметров (cameraMatrix, distCoeffs, rvecs и tvecs), который минимизирует rms итеративно.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *