Другие журналы

научное издание МГТУ им. Н.Э. Баумана

НАУКА и ОБРАЗОВАНИЕ

Издатель ФГБОУ ВПО "МГТУ им. Н.Э. Баумана". Эл № ФС 77 - 48211.  ISSN 1994-0408

77-30569/349943 Разработка программного обеспечения для автоматического поворота пейзажных фотографий с целью устранения отклонений от горизонтали или вертикали

# 04, апрель 2012
Файл статьи: Шиваров_P.pdf (202.69Кб)
авторы: Шиваров А. Е., Инфлянскас В. В.

УДК 004.93

МГТУ им. Н.Э. Баумана,

mstu@sevik.ru

Введение.

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

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

Перспективные искажения вызваны тем, что одни части объектов находятся ближе к камере, чем другие части тех же объектов. В коррекции обычно нуждаются только вертикальные перспективные искажения (схождение вертикалей), так как горизонтальная перспектива воспринимается человеком естественно. Схождение вертикалей вызвано различием расстояний от объектива до нижней и верхней частей объекта; существенно проявляется при съёмке высоких объектов с небольшого расстояния. Коррекцию схождения вертикалей можно производить на этапе съемки (необходимо использовать специальные камеры и/или объективы [3, с. 123-125, 165-168]) или обрабатывать уже полученное искаженное изображение. Однако следует учитывать, что коррекция перспективы на изображениях приведет к появлению других геометрических искажений.

Искажения наклона вызваны поворотом фотоаппарата относительно оптической оси объектива (горизонтали местности становятся непараллельными горизонтальным сторонам фотографии, а вертикали местности — вертикальным сторонам фотографии). Даже незначительный поворот (в несколько градусов) вызывает дискомфорт при просмотре фотографии (так называемый заваленный горизонт). Отклонения горизонталей заметны только при наличии видимого горизонта на фотографии (так как все остальные горизонтальные линии могут подвергаться перспективным искажениям). Следовательно, отклонения горизонталей нуждаются в коррекции при наличии на фотографии открытого пространства (изображение природы). Отклонения вертикалей заметны при наличии каких-либо архитектурных сооружений на фотографии (городской пейзаж), так как в живой природе не существует строго вертикальных объектов. Искажения наклона связаны исключительно с наклоном камеры; его можно не допускать, контролируя положение фотоаппарата, однако это усложняется тем, что при съёмке наклон ощущается значительно меньше, чем при просмотре фотоснимка. Недостатками коррекции фотоснимков являются: потеря части фотографии из-за необходимости её обрезки; ухудшение качества при повороте вследствие дискретности растрового представления.

Изначально ПО, предназначенное для обработки фотографий, работало исключительно в ручном режиме (пользователь вводит параметры преобразований); в настоящее время всё чаще программы обладают функциями автоматической обработки на основе анализа содержимого изображения, что позволяет избежать рутинных действий со стороны пользователя. Например, распространенным является анализ изображений при автоматической коррекции уровней, контраста, при склеивании панорам. Однако нет широко известного программного обеспечения, которое производит автоматический поворот фотографий с целью устранения отклонений от горизонтали или вертикали. Здесь и далее под автоматическим поворотом фотографии (фотоснимка) будем понимать поворот фотографии в своей плоскости вокруг своего центра на такой угол, выбранный автоматически, чтобы горизонтали местности на фотографии стали параллельны горизонтальным сторонам фотографии, вертикали местности — вертикальным сторонам фотографии.

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

Обзор и анализ существующих программных систем.

Был проведён обзор и анализ существующих программных систем для обработки изображений, которые позволяют производить поворот изображений (AdobePhotoshopExtended, CorelPaintShopProPhoto, digiCam, FastStoneImageViewer, GIMP, IrfanView, OpenOffice.orgDraw, Paint.NET, PhotoScape, RotationPilot, XnView).

В данных программных системах были выделены следующие способы задания угла поворота изображения:

а) выбор значения угла из фиксированного набора, обычно ±90°, 180°:

1) выбор пользователем;

2) автоматический выбор на основе данных EXIF;

б) задание произвольного значения угла:

1) ввод значения угла;

2) рисование прямой вдоль горизонтали или вертикали;

3) поворот с помощью мыши.

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

Алгоритм автоматического определения угла поворота.

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

Кратко алгоритм автоматического определения угла поворота можно представить следующим образом:

а)     выделение всех прямых линий;

б)    фильтрация прямых;

в)     вычисление угла поворота на основе информации о прямых.

В работе были выбраны существующие алгоритмы для выделения прямых линий и предложены собственные алгоритмы фильтрации прямых и вычисления угла поворота.

Существуют различные алгоритмы выделения прямых на изображении, но все они состоят из нескольких основных этапов. Далее перечислены эти этапы и выбранные алгоритмы для их реализации в рамках работы:

а)     сглаживание изображения с целью уменьшения шума – фильтр Гаусса [5, с. 239];

б)    выделение контуров – алгоритм Канни (Canny) [2];

в)     выделение прямых из контуров – преобразованием Хафа (Hough) [1].

Из всех найденных прямых необходимо выделить те, которые совпадают c вертикалями местности. Углы будем отсчитывать от вертикали фотоснимка. Ввиду того, что линии не направлены, углы измеряются в интервале . Предполагаем, что фотография прошла поворот в соответствии с данными EXIF. Фотография, обработанная подобным образом, имеет угол наклона не более 45°. Следовательно, из линий необходимо выбрать только те, угол наклона которых лежит в интервале . Для выяснения дальнейшей возможности и степени сужения интервала углов наклона линий необходимо проанализировать тестовую выборку пейзажных фотографий. В результате анализа будет получена константа , ограничивающая углы прямых, принимаемых в рассмотрение, интервалом .

Угол поворота вычисляется на основе анализа прямых, оставшихся после фильтрации. Вычисление угла поворота строится на основе предположения, что количество прямых, параллельных вертикалям местности на изображении значительно выше, чем количество параллельных прямых, лежащих под каким-либо другим фиксированным углом. Данное предположение основывается на том, что единственный угол среди городского пейзажа, обладающий значительными особенностями от других, — это угол в 0° (в строительстве в качестве ориентира применяется отвес, направление которого параллельно направлению силы тяготения). Линии, на местности параллельные уровню земли, во-первых, будут искажены перспективой и перестанут быть параллельными, во-вторых, после фильтрации мы не будем иметь с ними дело.

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

а)     отклонения от физической вертикали в строительстве (важный случай — классические колонны не являются цилиндрами; диаметр колонны по особому правилу уменьшается снизу вверх);

б)    возможные вертикальные перспективные искажения (схождение вертикалей);

в)     искажения, вносимые объективом фотоаппарата;

г)     искажения, возникшие при выполнении предыдущих этапов алгоритма (сглаживание Гаусса, выделение контуров Канни, выделение прямых Хафа);

д)    дискретность растрового изображения.

Вследствие перечисленных выше причин необходимо вычислять максимум количества прямых под определенным углом не для строгого значения угла, а в определённой окрестности. Для группировки прямых, угол между которыми меньше определенного значения, необходимо произвести расчёт гистограммы. По оси абсцисс будут откладываться значения углов в интервале , каждый столбец накапливает значения в окрестности (зависит от ). По оси ординат (высота столбцов) задаётся количество прямых на рисунке, попадающих в интервал. Таким образом, решается проблема незначительных искажений, вызванных причинами г) и д). Остаются нерешенными проблемы, когда есть несколько значительных групп параллельных прямых (например, из-за архитектурных особенностей конструкций или схождения вертикалей). Необходимо каким-либо образом учитывать несколько локальных максимумов, особенно в случае их близости друг к другу.

Для эффективной математической обработки столбцов гистограммы каждый столбец амплитудой  заменим одиночной волной, непрерывной на интервале :

, где:

 — количество линий с углом наклона, попадающим в i-й интервал;

 — параметр крутизны волны;

— абсцисса середины i-го интервала (координата столбца).

Суперпозиция одиночных волн даёт суммарную волну, определяемой формулой:

, где

­— нормирующий множитель;

— количество столбцов.

Данная функция является непрерывной на интервале  и для корректных случаев даёт суммарную волну, которая является непрерывной функцией и имеет один ярко выраженный максимум. Значение абсциссы максимума данной функции задаёт величину необходимого угла поворота. Гистограмма и суммарная волна изображены на рис. 1.

Выбор значений параметров алгоритмов.

Задача многокритериального поиска сама по себе является достаточно сложной, поэтому в связи с ограниченностью времени было принято решение упростить её путём задания части параметров эмпирическим путём. Параметры получены на основании обработки тестовой выборки фотографий умеренного объёма. Несмотря на это они приводят к приемлемому результату. Принятые значения параметров можно рассматривать как начальное приближение для дальнейших исследований и развития программы. Для настройки параметров алгоритма автоматического поворота и тестирования ПО необходима тестовая выборка фотографий.

Рис. 1. Гистограмма по углам поворотам и суммарная волна

 

В выборку включены фотографии, удовлетворяющие следующим условиям:

а)     на фотографии изображён городской пейзаж;

б)    файл фотографии имеет допустимой требованиями к ПО формат;

в)     фотография взята непосредственно с фотоаппарата и не прошла предварительной обработки;

г)     фотографии выбираются независимо от исходного угла наклона.

Файлы, включённые в выборку предварительно, поворачиваются с помощью стороннего ПО, позволяющего производить поворот на основе данных EXIF (может быть произведён поворот на ±90°).

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

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

Было принято, что порог заметности непараллельности вертикалей местности и фотоснимка составляет 1°. Соответственно, качественным считается работа алгоритма, при которой отклонение не превышает 1°. В качестве значений параметров необходимо выбрать те, при которых процент правильно повёрнутых фотографий максимален.

Выбранные средства разработки и технологии.

В качестве языка программирования для реализации ПО был выбран C++, в качестве основного набора библиотек – QT, среды разработки – QT Creator. Для работы с изображениями была выбрана библиотека OpenCV [4].

Заключение.

В процессе выполнения работы были проанализированы возможные искажения фотоснимков, связанные с наклоном камеры при съёмке; проанализировано ПО, позволяющее поворачивать фотографии; показана актуальность разработки метода автоматического поворота. Далее был разработан алгоритм автоматического поворота пейзажных фотографий с целью устранения отклонений от горизонтали или вертикали.

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

 

Литература

1.   Гонсалес, Р. Цифровая обработка изображений / Р. Гонсалес, Р. Вудс. — М.: Техносфера, 2005. — 1072 с.

2.   Краснобаев, А. А. Обзор алгоритмов детектирования простых элементов изображения и анализ возможности их аппаратной реализации. — 2005. — ИПМ им. М. В. Келдыша РАН.

3.   Уэйд, Дж. Техника пейзажной фотографии / Дж. Уэйд. — М.: Мир, 1989. — 200 с.

4.   Bradski, G. Learning OpenCV / G. Bradski, A. Kaehler. — Sebastopol, CA: O’Reilly Media, 2008. — 555 pp.

5.   Szeliski, R. Computer Vision: Algorithms and Applications / R. Szeliski. — Mountain View: Microsoft Research, 2010. — 979 pp.

Поделиться:
 
ПОИСК
 
elibrary crossref ulrichsweb neicon rusycon
 
ЮБИЛЕИ
ФОТОРЕПОРТАЖИ
 
СОБЫТИЯ
 
НОВОСТНАЯ ЛЕНТА



Авторы
Пресс-релизы
Библиотека
Конференции
Выставки
О проекте
Rambler's Top100
Телефон: +7 (915) 336-07-65 (строго: среда; пятница c 11-00 до 17-00)
  RSS
© 2003-2021 «Наука и образование»
Перепечатка материалов журнала без согласования с редакцией запрещена
 Тел.: +7 (915) 336-07-65 (строго: среда; пятница c 11-00 до 17-00)