Устранение сферических искажений
Понятие сферического искажения
У некоторых видов камер существует проблема сферических искажений. Данная проблема проявляется при использовании зум-объективов, объективов с большим диапазоном масштабирования и большим углом обзора.
Существует два вида основных видов искажения:
- бочкообразное искажение (barrel distortion) (Рис.1а);
- подушкообразное искажение (pincushion distortion) (Рис.1б).
а) бочкообразное искажение; б) подушкообразное искажение;
Рисунок 1 — виды сферических искажений
При бочкообразном искажении наблюдается «выпуклый» эффект: увеличение изображения уменьшается с ростом расстояния от оптической оси. То есть, объекты в центре кажутся крупнее объектов на краях изображения. Для наблюдателя изображение выглядит так, будто оно было наложено на сферу.
При подушкообразном искажении, наоборот, наблюдается «вогнутый» эффект: увеличение изображения увеличивается с ростом расстояния от оптической оси. То есть, объекты в центре кажутся меньше объектов на краях изображения. Для наблюдателя изображение выглядит так, будто затянуто в воронку, вдавлено внутрь.
В видеонаблюдении чаще всего встречаются бочкообразные искажения (Рис.2).
Рисунок 2 — Пример бочкообразного искажения объектива с фокусным расстоянием 2.8
Подробнее о сферических искажениях можно ознакомиться по ссылкам:
Влияние сферических искажений
Искажения приводят к неверной оценке размеров предметов, попавших в зону видимости камеры, и расстояний до них; мешают работе детекторов распознавания и слежения.
Методы устранения сферического искажения
Существует несколько методов решения проблемы сферических искажений:
- Использование высококачественных объективов. В этом случае возрастает стоимость видеокамеры.
- Использование программного и/или аппаратного обеспечения. В таком случае возрастает нагрузка на вычислительную систему (процессор в ip-камере или сервер видеонаблюдения).
В последнем случае будет использоваться специальный алгоритм коррекции изображения. Бочкообразное искажение в первую очередь радиально, поэтому оно может быть скорректировано с использованием простой модели, компенсирующей большую часть изображения. Работа алгоритма основана на переносе пикселей исходного изображения на расчётную позицию.
Введем следующие обозначения:
- width – ширина исходного изображения;
- height – высота исходного изображения;
- r_src – расстояние от центра изображения до текущего пикселя на исходном изображении (радиус на исходном изображении);
- r_corr – расстояние от центра изображения до текущего пикселя на исправленном изображении (радиус на исправленном изображении).
При этом на величины r_src и r_corr накладываются ограничения:
r_src < min ((width-1)/2,(height-1)/2) (1)
r_corr < min ((width-1)/2,(height-1)/2) (2)
Для коррекции используются следующие математические выражения:
M(a,b,c,d,r_corr) = a *r_corr3 + b * r_corr2 + c * r_corr + d (3)
r_src = (a * r_corr3 + b * r_corr2 + c * r_corr + d) * r_corr (4)
где:
— a, b, c — коэффициенты искажения изображения;
— d — линейное масштабирование изображения.
Корректирующая функция M (1) является полиномом третьего порядка. Эта функция представляет собой расстояние между пикселем в центре исходного изображения (r_src) и соответствующим расстоянием в исправленном изображении (r_corr).
Коррекция с использованием только коэффициента а затрагивает только внешние пиксели изображения, в то время как коррекция с использованием коэффициента b является более однородной. Использование отрицательных значений a, b и c сдвинет отдаленные точки от центра, что приведет к выравниванию бочкообразного искажения.
Использование положительных значений a, b, c, переместит удаленные точки к центру, что приведет к устранению подушкообразного искажения.
При D = 1, a = b = c = 0 изображение останется неизменным. Выбор других значений D приведет к масштабированию изображения на эту величину. Лишние части изображения можно обрезать автоматически. Для этого необходимо выполнение уравнения:
а + b + c + d = 1 (5)
Помимо перечисленного, возможно совместное исправление бочкообразного и подушкообразного искажения на одном изображении: если внешние регионы подвержены бочкообразному искажению, а внутренние подушечкообразному, используются положительные а и отрицательные значения b.
Приведенный алгоритм применим как для серых, так и для цветных изображений.
Результат работы алгоритма со значением коэффициентов a=c=0, b=0.2 и d=0.8 приведено на Рис.3
Рисунок 3 — Пример устранения бочкообразного искажения
Модуль Iviset «Устранение сферических искажений»
Назначение: Модуль предназначен для устранения сферических искажений на изображении, получаемом с камеры системой видеонаблюдения, и, как следствие, улучшения оценки (как оператором, так и модулями видеоаналитики) размеров предметов, попавших в зону видимости камеры, и расстояний до них; повышение точности модулей видеоаналитики по распознаванию и слежению за объектами.
Возможности модуля:
Данный модуль исправляет следующие типы сферических искажений:
- бочкообразное;
- подушечкообразное.
Настройка изображения с помощью модуля «Настройка сферических искажений»
Для начала работы с модулем необходимо запустить ПО «Iviset».
1. Далее необходимо авторизоваться под именем пользователя.
Рис. 1 Вход в Iviset
Прим. Если после активации Вам недоступны настройки, то у Вашего пользователя недостаточно прав на работу с настройками и модулем. Для добавления прав Вашему пользователю обратитесь к администратору или руководству.
2. Открыв «Iviset», переходим в настройки (Рис. 2) и выделяем канал, на котором работает камера, требующая устранения искажения (Рис. 3).
Рис. 2 Переход на вкладку настройки
3. Выбрав канал, переходим в «Настройки изображения» (Рис.3).
Рис.3 Выбор камеры и переход к настройкам изображений
4. В открывшемся окне «Настройка изображения» видим изображение, передаваемое камерой, и можем заметить, что присутствуют небольшие искажения изображения.
5. Для того чтобы их убрать, переходим на вкладку «Геометрия» (Рис. 5). Она находится слева под изображением с камеры.
Рис. 5 Переход на вкладку «Геометрия»
6. Открыв вкладку «Геометрия», появится два поля: «Основные настройки» и «Настройки трансформации».
7. В поле «Настройка трансформации» установите галочку напротив «Устранение сферических искажений». Установка галочки активирует модуль для работы. Все поля для ввода станут активны (Рис. 6).
Рис. 6 Активация модуля сферических искажений
8. Для выравнивания изображения нужно установить коэффициент искажения. Подберите такое значение коэффициента, при котором изображение выровняется.
Рис. 7-8 Пример, как изменилось изображение после настройки модуля
Совет: Для более точного выравнивания изображения Вы можете установить на изображении с камеры горизонт, как видно на Рис. 7-8. Горизонтом может быть любой предмет, находящийся в поле видимости камеры и имеющий ровную горизонтальную поверхность (например, стол), и по искажению этой поверхности выравнивайте изображение с камеры до горизонтальной линии.
9. По умолчанию масштаб задан равным единице, и также включен «Автомасштаб». Если Вы снимете галочку со строки «Автомасштаб», то можете отдалить или приблизить картинку для более точной настройки изображения с камеры. Но в большинстве случаев этого делать не требуется, и всю работу на себя берет свойство «Автомасштаб».
Рис. 9 Пример включенного свойства «Автомасштаб»
Автомасштаб — это свойство модуля «Устранения сферических искажений», при котором модуль сам выбирает оптимальный масштаб при изменении коэффициента искажения. При этом будут автоматически убраны черные края изображения. Это можно проверить, отключив это свойство и уменьшив масштаб. Вы увидите, что изображение растянуто или сжато в зависимости от выбранного коэффициента искажения. Например, при растянутом изображении это свойство обрезает края кадра, и на выходе получаем нормальную картинку без загнутых или выпуклых углов.
Рис .10 Пример отключенного свойства «Автомасштаб»
10. После всех настроек убедитесь, что изображение с камеры соответствует Вашим требованиям, и нажмите кнопку «Ok» в правом нижнем углу окна «Настройка изображения».
Если Вы хотите отменить все изменения изображения, просто нажмите кнопку «Отмена» в правом нижнем углу окна «Настройка изображения».
11. Чтобы увидеть изменения, которые Вы внесли, перейдите на вкладку «Вид», она находится в левом верхнем углу.