Научная статья на тему 'Применение рандомизированного подхода в задаче обнаружения объекта на аэрофотоснимке'

Применение рандомизированного подхода в задаче обнаружения объекта на аэрофотоснимке Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
203
35
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
РАНДОМИЗИРОВАННЫЕ ИЗМЕРЕНИЯ / RANDOMIZED MEASUREMENTS / РАСПОЗНАВАНИЕ ОБРАЗОВ / PATTERN RECOGNITION / МЕТОД МАКСИМУМА КОРРЕЛЯЦИИ / TEMPLATE MATCHING

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Иванов Александр Аркадьевич

В статье исследуется применимость двух быстрых рандомизированных алгоритмов обнаружения объектов на аэрофотоснимках, основанных на поиске максимума корреляции. Первый алгоритм FAsT-Match используется для решения задач обнаружения в условиях произвольных аффинных преобразований. ВторойCiratefi имеет меньшую вычислительную сложность, однако, инвариантен лишь к вращению и масштабированию. Алгоритмы запрограммированы на языке C++ и реализованы под традиционную архитектуру последовательного выполнения команд и в среде параллельных вычислений CUDA 5.5. Проведенный сравнительный анализ для различных примеров показывает преимущества того или иного алгоритма в зависимости от относительных размеров шаблонов и оптических свойств линзы камеры.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Иванов Александр Аркадьевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

The article explores the applicability of two fast randomized algorithms for detecting objects in aerial photos. They are based on a search for the maximum correlation. The first algorithm FAsT-Match is used to solve the problems of detection in the conditions of arbitrary affine transformations. The second one Ciratefi has lower computational complexity, however, it is only invariant to rotation and scaling. Algorithms were programmed in C++ and implemented for traditional architecture of sequential command execution as well, as for the environment of parallel computations CUDA 5.5. The comparative analysis of the various examples demonstrate the advantages of one or another algorithm depending on the relative sizes of the templates and the optical properties of the camera lens.

Текст научной работы на тему «Применение рандомизированного подхода в задаче обнаружения объекта на аэрофотоснимке»

Компьютерные инструменты в образовании, 2014 № 4: 27-45 УДК: 004.81

http://ipo.spb.ru/journal

ПРИМЕНЕНИЕ РАНДОМИЗИРОВАННОГО ПОДХОДА В ЗАДАЧЕ ОБНАРУЖЕНИЯ ОБЪЕКТА НА АЭРОФОТОСНИМКЕ

Иванов Александр Аркадьевич Аннотация

В статье исследуется применимость двух быстрых рандомизированных алгоритмов обнаружения объектов на аэрофотоснимках, основанных на поиске максимума корреляции. Первый алгоритм — FAsT-Match — используется для решения задач обнаружения в условиях произвольных аффинных преобразований. Второй — Gratefi — имеет меньшую вычислительную сложность, однако, инвариантен лишь к вращению и масштабированию.

Алгоритмы запрограммированы на языке C++ и реализованы под традиционную архитектуру последовательного выполнения команд и в среде параллельных вычислений CUDA1 5.5. Проведенный сравнительный анализ для различных примеров показывает преимущества того или иного алгоритма в зависимости от относительных размеров шаблонов и оптических свойств линзы камеры.

Ключевые слова: рандомизированные измерения, распознавание образов, метод максимума корреляции.

информационные

СИСТЕМЫ

1. ВВЕДЕНИЕ

В настоящее время актуальной задачей является сбор и регистрация визуальной информации местности с помощью беспилотных летательных аппаратов (далее БПЛА). Широкое применение в этой области получили сверхлегкие планеры, оснащенные системой автопилота, которая позволяет задавать траекторию полета аппарата перед его запуском при помощи специальных программных средств. Примером такой системы управления может служить бесплатная и свободная для коммерческого использования утилита APM Mission Planner2, разработанная Michael Oborne под среду Microsoft .NET. Среди основных возможностей можно перечислить:

• наличие визуального редактора маршрута с использованием карт Google,

• настройка параметров автопилота,

• загрузка логов полета и их анализ.

В связи со стремительным развитием технологий стало возможным оборудовать такие планеры, наряду с базовой навигационной аппаратурой, такой как спутниковый на-

1 На момент написания этой статьи версия 5.5 являлась наиболее распространенной.

2Mission Planner, http://planner.ardupilot.com/.

вигационный приемник (GPS или ГЛОНАСС), также различной периферией, включающей фотокамеру и GSM модем, которая обслуживается дополнительным программно-аппаратным модулем. Примером такого устройства может служить микрокомпьютер Gumstix3 Overo с установленной на нем ОS Linux. Подобная конфигурация значительно расширяет функциональные возможности БПЛА, позволяет устанавливать двусторонний канал беспроводной передачи данных с компьютером диспетчера и осуществлять сбор и передачу фотоматериала.

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

В общем виде задача статического обнаружения некоторого объекта обусловливается выбором изображения этого объекта, в дальнейшем именуемого шаблоном, и фотографии местности, в которой осуществляется поиск. До недавнего времени в силу высокой затратности проведения вычислений базовой реализации алгоритма поиска точки максимальной корреляции шаблона на изображении, настоящий метод не рассматривался для практического применения в качестве эффективного способа обнаружения. В английской литературе этот подход получил название «Template Matching», что буквально означает «сопоставление шаблона».

Объем публикаций на эту тему значительно уступает по количеству другим технологиям в сфере распознавания образов. Так, за последние десятилетия были получены весомые результаты в обучении классификаторов, направленных на решение задач детектирования сложных объектов на фотографиях. По части распознавания лиц в работе [1] приводится исчерпывающее описание ранних исследований в этой области. Краткий курс [2] предоставляет обзор более современных подходов, среди которых стоит отметить метод построения опорных векторов (SVM) [3], который переводит исходные векторы в пространство более высокой размерности и ищет разделяющую гиперплоскость с максимальным зазором в этом пространстве (в случае обнаружения лиц, векторы в одной половине гиперплоскости соответственно характеризуют признаки лица, в то время как в другой все иные объекты). Текущий метод использовался исследователями как для обнаружения лиц, так и для их распознавания. Так же были получены существенные результаты по выделению на изображениях пешеходов, машин и иных объектов составной природы. Из известных работ можно отметить [4], где для разделения на гиперплоскости SVM используются множества перекрывающихся дескрипторов гистограммы ориентированных градиентов (HOG).

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

3Gumstix, Inc., https://www.gumstix.com/.

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

Также бурное развитие получают технологии программируемых логических интегральных схем (ПЛИС). Среди самых поздних исследований применимости корреляционного метода можно отдельно выделить [5], где авторы приводят способ автоматической генерации кода VHDL, который решает задачу поиска методом максимальной корреляции, устойчивого к вращению, масштабированию и сдвигу, на архитектуре FPGA (Field-Programmable Gate Array).

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

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

1.1. Постановка задачи

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

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

2. Выбрать один из существующих подходов или предложить собственное решение, основанное на анализе положительных сторон текущих методов.

3. Выполнить две реализации: для последовательного исполнения на традиционной архитектуре и для среды параллельного выполнения CUDA 5.5.

4. Апробировать реализованный подход на конкретных снимках, сделанных в ходе съемки БПЛА, и провести сравнительный анализ по полученным данным.

1.2. Обзор существующих подходов

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

4NVidia CUDA, http://www.nvidia.com/object/cuda_home_new.html.

• Основанные на объектных моделях CAD (Computer-aided Detection). Сюда следует отнести методы, разбивающие изображение на различимые структурные объекты и секции.

• Основанные на анализе внешних очертаний и контуров объектов.

• Основанные на выделении и сопоставлении характерных признаков искомого объекта с областью изображения, обладающей наличием этих признаков.

• Основанные на поиске максимальной корреляции интенсивностей точек шаблона и области изображения.

Методы сегментации и выделения контуров

Наряду с большинством методов распознавания для текущего класса методов также свойственно проводить начальную обработку изображения, которая включает в себя устранение шумов и видимых артефактов. Обычно для этого сглаживают картинку, используя различные фильтры со свойственной им матрицей свертки, такие как медианный фильтр для удаления импульсного шума, либо сглаживание с использованием матрицы свертки Гаусса. Далее проводится сегментация изображения, то есть разбиение точек по группам, в которых присутствует некая визуальная связь между элементами. Под более широким названием процесс известен как кластеризация. В анализе изображений это, пожалуй, одна из наиболее ранних и хорошо изученных задач. Одна из первых работ была опубликована еще в 1970 году [6]. Эта область является смежной задаче анализа изображения по разбиению его на контуры. Классическим подходом для выделении краев является алгоритм Canny [7]. Также возможно структурное сравнение по выделенным очертаниям сегмента. Для этого анализируется форма, размер, компактность и местоположение. Но чаще всего, например, в медицине при определении проблемной зоны среди органов пациента, дальнейший анализ проходит с использованием классификаторов, параметры которых настроены по большим заранее приготовленным базам изображений, которые выступают в роли обучающих множеств.

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

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

Методы составления дескрипторов по характерным признакам

Этот класс методов применяется для поиска совпадения выделяемых признаков объекта и изображения. В качестве таких характерных особенностей может быть устойчивая информация об углах объекта, его краях и иных пространственных свойствах. На сегодня одними из наиболее применяемых на практике дескрипторов, являются GLOH (Gradient Location and Orientation Histogram) [8], SIFT (Scale Invariant Feature Transform) [9], а также его улучшения SURF (Speeded Up Robust Features) [10] и ASIFT (Affine-SIFT) [11].

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

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

Метод поиска максимума корреляции

Текущий подход имеет разные наименования в литературе. В зарубежных источниках наиболее часто встречаются названия «image matching» и «template matching». Также иногда встречаются названия «линейный пространственный фильтр» или менее формально «метод скользящего окна». В базовой реализации этого метода сначала выбирается некоторый участок изображения, именуемый «шаблоном», который представляет собой объект поиска. Обозначим через T(xt, yt) матрицу шаблона, где (xt, yt) представляют координаты пикселей в нем. Тогда, если S (x, y) матрица изображения, в котором осуществляется поиск шаблона, алгоритм будет считать сумму произведений интенсив-ностей пикселей T в S. Двигая шаблон по всему изображению, вычисляется матрица корреляций. В этом случае ее элементы будут равны SAD (Sum of Absolute Differences) как суммы абсолютных разностей интенсивностей пикселей. Так же на практике в качестве функции разности используется сумма квадратов разностей, кросс-корреляция, либо коэффициенты корреляции (также известной как нормализованная корреляция). Последняя применяется в работе [12] для достижения инвариантности по яркости и контрастности.

Обычно для достижения инвариантности относительно различных видов преобразований, шаблон представляют во всех его вариациях, и запускают алгоритм для каждого такого положения шаблона. Так, чтобы алгоритм был устойчив к вращению, необходимо поворачивать шаблон на некоторый небольшой угол, который будет являться параметром точности алгоритма, и заново искать корреляцию во всех точках изображения для уже повернутого шаблона. Часто для успешного поиска достаточно сделать поиск инвариантным лишь к вращению, масштабированию и сдвигу. При этом выбор функции разности при правильном подборе пороговых величин может обеспечить фотометрический инвариант, как в алгоритме Ciratefi [12].

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

часть преобразований как заведомо ложные, не переводящие шаблон в искомую область. Можно перечислить целый ряд работ по разработке корреляционных методов, инвариантных к вращению и масштабированию [13-16]. Такая растущая популярность также обусловлена высокой точностью работы этого алгоритма.

Стандартным подходом в уменьшении вычислительной емкости корреляционного метода является построение пирамид изображений. Изображение и шаблон представляются в разных масштабах, и алгоритм сперва запускается для самого маленького масштаба. Выбираются области в некоторых окрестностях точек, обладающих максимальной корреляцией. На следующем шаге алгоритм запускается в изображении большего масштаба, но лишь в выделенных областях. Такие зоны поиска именуют «областями интереса», также известные в зарубежной литературе как ROICRegion of Interest). В общем случае такой метод способен существенно сократить время вычислений. Однако, когда изначальный размер шаблона относительно мал, как в случае объектов на аэрофотоснимках, точность вычислений заметно падает, что делает его неприменимым в настоящей работе.

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

2.1. Алгоритм FAsT-Match

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

2. ОПИСАНИЕ МЕТОДОВ

п2 хп2

1

Рис. 1. Аффинное преобразование шаблона в область изображения

Не умаляя общности, будем рассматривать задачу в случае, когда матрицы изображения и шаблона квадратные. Так, обозначим через 1\ матрицу шаблона размером щ X щ. Аналогично определим матрицу изображения ¡2 : П2 X П2. Шаблон отображается в участок изображения под действием некоторого аффинного преобразования, как схематично изображено на рис. 1.

Обозначим у(1) гладкость изображения по следующей формуле:

которая задается суммой по всему изображению максимумов разности пикселей р и восьми соседних пикселей д е Nр).

Пусть АТ(¡1, ¡2) как нормализованная сумма БАБ будет расстоянием между 1\ и ¡2 относительно преобразования Т, которое сопоставляет пиксели р е ¡1 пикселям в ¡2:

В случае отображения р за границы ¡2 берем разницу |¡1 (р) - ¡2(Т(р))| за 1. Пусть имеется некоторое семейство преобразований ф. Минимум по всем Т в данном семействе относительно выбранного расстояния обозначим:

Аф(/1,12) = ш1п Ат (11,12).

Т еф

В таком случае задача о поиске максимальной корреляции описывается следующим предложением: для семейства аффинных преобразований ф и для некоторого положительного параметра точности 6 > 0 необходимо найти такое Т* е ф, что выполняется следующее неравенство:

где А(!1, ¡2) — расстояние для оптимального преобразования среди множества всех возможных аффинных преобразований.

С точки зрения непосредственной реализации алгоритма на ЭВМ в текущей постановке задачи ключевым моментом является правильное построение такого семейства ф. Оно в первую очередь должно обладать свойством наличия такого Т*. Решение этой задачи было предложено в работе [17], представленной в прошлом году на ежегодной конференции по компьютерному зрению и распознаванию образов. По утверждению самих авторов,на сегодняшний день это первый корреляционный метод, гарантирующий поиск с нужным приближением в случае произвольных плоских аффинных преобразований. Для решения задачи выделения объектов на аэрофотоснимках мною был выбран для реализации именно этот алгоритм.

Введем метрику на множестве аффинных преобразований:

где Ц-112 — евклидово расстояние в плоскости целевого изображения ¡2. Текущая метрика характеризует, насколько далеко друг от друга могут находиться образы точки, полученные применением двух преобразований Т и Т'.

Для некоторого положительного а > 0 семейство {Т,}1=1 назовем а-покрытием, если для всякого аффинного преобразования Т в семействе найдется такое Тр, что

|А(!Ь ¡2) - Ат• (¡1, ¡2)1 <6,

1Ю(Т, Т') = шах ||Т(р) - Т'(р)|2

реЬ

, Гу) = 0(а). В работе [17] приводится способ построения -покрытия для некоторого параметра точности алгоритма - е (0,1]. Построенное покрытие будет иметь размер 0(-6(|)2). Реализуемый алгоритм эффективно определяет с высокой вероятностью такое Г, что ДГ(/1, /2) близко к Д(/ь /2). Вероятность обусловлена функцией, зависящей от - и общей гладкости шаблона V.

1. Строим сеть N¿/2, являющуюся -П1-покрытием.

"°сть™ 2.

2. Для каждого T е N-/2 вычисляем Дт(/1, /2) с точностью -

3. Н аходим Г * : ДГ«(/1, /2) = шт ДГ (/1, /2).

Г £N-/2

На шаге 2 вместо вычисления 5 АД по всем точкам шаблона, мы выбираем лишь некоторые из них. Так, для некоторого положительного е > 0 мы выбираем т = 0(рО точек Р1...рт £ /1. Тогда ДГ(/1, /2) считается по формуле:

- m

Ar (Ii, I2) = - У |1i( Pi) - 12(T (Pi))|. m ¿—L

m . ,

г=1

Для того чтобы новое расстояние Дт отличалось от оригинального варианта не более чем на б с вероятностью 1 - п согласно границе Чернова требуется выбирать количество

log 1

точек m = ©("б^). Всякий раз при вычислении Дт(/-, /2) на втором шаге мы добиваемся фотометрического инварианта, проводя нормализацию интенсивности шаблона и изображения на величину их математического ожидания и дисперсии.

Авторы приводят обоснование того факта, что этот алгоритм возвращает преобразование T : |Дт(/-,/2) - Д(/1,/2)1 < O(—) с высокой вероятностью. Для гладких изображений v « ni. Гладкость является естественным свойством большинства изображений. Более того, в случае аэрофотоснимков практически всю площадь изображения занимает равномерный ландшафт местности. Поэтому итоговая оценка удовлетворяет неравенству:

|Дт(/1, /2) - Д(/1, /2)1< O(-).

Сложность алгоритма составляет O(-8(n^)2). Очевидно, что при малом - такая сложность не может устраивать. Поэтому авторы предложили способ значительно ускорить вычисления с незначительной потерей точности методом ветвей и границ. При построении начального покрытия берется крупный шаг. После каждой итерации строится новое покрытие с меньшим шагом, но для рассмотрения выбираются лишь те элементы покрытия, для которых найдется T с достаточно маленьким расстоянием Дт(/1, /2). Формально процедуру можно описать так:

1. Пусть S0 — полное множество преобразований в покрытии N-0 (для начального приближения -о).

2. Для i = 0 повторять пока - > -*:

(a) запустить алгоритм с точностью -i и рассматривать только подмножество

Si е N-i,

(b) пусть — найденное преобразование в Si,

(c) пусть Q = {q е Si : Д^, /2) - Д^(/1, /2) < L(-i)},

(d) увеличить точность -i+1 = /aci ■ -i для некоторого /aci е (0,1),

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

(e) пусть Si+1 = {т е N-i+1 : 3q е Qb такое что /те(т, q) < -i+1 ■ «1}

3. Вернуть найденную трансформацию т.

ßesi

2.2. Алгоритм ^^еА

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

a = trr2srl,

где Тг, r¿, s — соответственно, матрицы сдвига, вращения и неуниформного масштабирования. В рассматриваемом случае мы можем ограничиться лишь матрицей сдвига, одной матрицей вращения и матрицей масштабирования вида:

s 0

S = , „ 0 s

В такой постановке задача решается с высокой точностью с помощью алгоритма Ciratefi [12] за время O(n^щ2). Алгоритм Ciratefi состоит из трех каскадных фильтров, которые последовательно исключают из дальнейшего рассмотрения пиксели, у которых нет шансов правильно сопоставить шаблон.

Фильтр выборки по окружностям

Пусть имеется шаблон Q и изображение A. На первом шаге строится множество кандидатов первого класса, прошедших фильтрацию выборки по окружности. Определим CisB(x, y, r) — среднее значение пикселей изображения B, расположенных на удалении r от точки (x, y):

2п

CisB(x, y, r) = J* B(x + r cos в, y + r sin d)dd.

0

Возьмем для рассмотрения n шаблонов различных масштабов Qo, ■ ■ ■ , Qn_i. Выберем l расстояний ro, ■ ■ ■ , r/_i и определим матрицу Cq следующим образом:

Cq[i, k] = CisQt(x0,y0, rk), 0 < i < n, 0 < k < l,

где (x0, y0) — центральный пиксель в Q. Это двумерная матрица масштабированных инвариантных к вращению признаков с n строками (масштабы) и l столбцами (радиусы).

Пусть A — изображение, в котором ищется шаблон. Тогда построим трехмерное изображение CA[x, y, k] следующим образом:

CA[x, y, k] = CisA(x, y, rk), 0 < k < l и (x, y) e domain(A).

Найдем максимум корреляции среди всех n масштабов:

CisCorrA,Q(x,y) = max |Corr(CQ[i],CA[x,y])|.

ie[0,n_1]

Тогда аргумент, на котором достигнут максимум, будет определять наиболее вероятный масштаб, в котором требуется отображать шаблон на изображение с целью его дальнейшего поиска в точке (x, y). Если CisCorrA:Q(x, y) > ti для некоторого порогового значения ti, то точка (x,y) считается кандидатом первого класса. Принцип работы текущего шага алгоритма Ciratefi иллюстрирует рис. 2.

(а) (Ь)

Рис. 2. (а) фильтр выборки по окружности СШ, (Ь) фиолетовым обозначены точки, получаемые на выходе первого шага алгоритма

Фильтр выборки по радиусам

Следующий шаг использует проекции A и Q на множества радиус-векторов, чтобы продвинуть точки из первого класса в кандидаты второго уровня. Определим y, а) как среднее значение интенсивностей пикселей B, расположенных на радиус-векторе с выбранным началом в координатах (x, y) длины Л и углом а к оси OX:

л

RasB(x, y, а) = J* B(x + t cos а, y + t sin a)dt.

0

Построим вектор Rq размерности m следующим образом:

Re[j] = RasQ-1(xo,yo,аД 0 < j < m.

Здесь аj• — углы с одинаковым шагом, на которые поворачивают радиус-вектор длины Л = г/_1 (максимальный радиус окружности на первом шаге) с началом в центре шаблона (x0, y0).

В каждой точке — кандидате первого класса (x, y) строятся такие же вектора для изображения A с длиной радиус-вектора Л, равной s¿r¿_i, где s¿ — масштаб, найденный на первом шаге. Таким образом, получается трехмерная матрица:

Ra[x, y, j] = RasAri-1(x, y, а j), 0 < j < m.

Далее вычисляется угол, на который необходимо повернуть шаблон, путем поиска максимума корреляции Rq и RA:

RasCorrAg( x, y) = max |Corr(RA[ x, y], csh//tj(RQ ))|,

je[0,m-1]

где cshi/tj означает циклический сдвиг на j позиций вектора аргумента. Если RasCorrA,Q(x, y) > t2 для некоторого порогового значения t2, то точка (x, y) переводится в кандидаты второго класса.

Фильтр выборки по сопоставлению шаблона с изображением

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

3. РЕМИЗАЦИЯ

В настоящей работе выполнены реализации под традиционную архитектуру, а также в среде параллельных вычислений CUDA 5.5 обоих алгоритмов FAsT-Match и Ciratefi. Проведен сравнительный анализ их работы по тестовым наборам изображений. Основным критерием при выборе технологий являлось время работы. Поэтому в качестве языка реализации был выбран C++. Основную работу по загрузке изображений и наглядному отображению результатов берет на себя библиотека OpenCV. Исходный код программы доступен на Google Code5. Ниже следует описание архитектур полученных решений для реализации на CUDA.

На рис. 3 представлена схема работы алгоритма FAsT-Match. После загрузки изображений происходит подбор оптимальных параметров. Изображение сглаживается, чтобы избежать больших несоответствий при малых погрешностях в выборе координат точек. Строится множество преобразований с начальным приближением öo. На каждом шаге, пока не будет достигнуто нужное приближение öi = 6*, строится очередное покрытие, элементы которого фильтруются по описанному ранее принципу. В итоге алгоритм по завершении работы выдает аффинное преобразование, давшее лучшую корреляцию шаблона с изображением.

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

3.1. FAsT-Match

Как уже было сказано в предыдущей главе, согласно [18] мы можем представить матрицу всякого аффинного преобразования в виде произведения четырех матриц:

А = TrR2SRl.

Матрица сдвига Тг и матрица масштабирования S задают по две степени свободы. Каждая матрица поворота R¿ добавляет еще одну степень свободы. В итоге любому преобразованию соответствует вектор с шестью компонентами (гх, Ц, п, Г2, sx, sy), где

е [-П2, П2] С шагом 0(6п1), Г1, Г2 е [0,2п] с шагом 0(6), sx, sy е [ 1, с] с шагом 0(6).

5Адрес проекта https://code.google.eom/p/vitrums-recognition/.

Рис. 3. Схема работы алгоритма FAsT-Match

Количество шагов для ri,2, sx,y равно 0(|), в то время как tx,y принимают 0(П^ -й-1) различных значений. С учетом ограничений архитектуры CUDA на количество одновременно работающих потоков и максимальный допустимый размер блока, а также, принимая во внимание тот факт, что больше всего шагов необходимо сделать для компонент сдвига txy, было естественным выбрать двумерный блок, где компоненты x иy соответствуют tx и ty:

#define BLOCK_SIZE 16

dim3 dimBlock(BLOCK_SIZE, BLOCK_SIZE);

dim3 dimGrid(2 * I2.cols / (delta * Il.cols),

2 * I2.rows / (delta * I1.rows)); CUDA_buildAffineSet<<<dimGrid, dimBlock>>>(..., transforms);

На первом шаге строится коллекция аффинных преобразований с начальным приближением 6 = -0. Для всех векторов в коллекции параллельно вычисляются Дт вызовом функции на одномерном гриде:

dim3 dimBlock(BLOCK_SIZE * BLOCK_SIZE); dim3 dimGrid(num_transforms / dimBlock.x); CUDA_evalCorr<<<dimGrid, dimBlock>>>(..., distances);

В полученном массиве расстояний идет поиск минимума с помощью операции map reduction:

CUDA_mapReduce<<<dimGrid, dimBlock>>>(distances, ..., best_distance);

Если полученное расстояние Дт« меньше некоторого выбранного порогового значения, то алгоритм завершает поиск и соответствующее преобразование Т* считается искомым. В противном случае выбирается из начальной коллекции подмножество таких преобразований Ti, которые близки по выбранной метрике к T*:

ДТ; - Дт. < L(6).

Далее следует построение множества преобразований с шагом 6i+i = /act ■ 6i, для некоторого /act е (0,1) с последующей фильтрацией по признаку близости к хотя бы одному элементу из выбранного подмножества. Однако прямая реализация существенно увеличила бы вычислительную сложность. Поэтому с незначительной потерей точности можно строить множество преобразований с 6 = 6i+1 непосредственно из элементов подмножества, стохастически возмущая компоненты векторов преобразований слагаемыми, равновероятно принимающими значения -step, 0, step.

3.2. Ciratefi

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

(R cos в, R sin в),

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

Чтобы получать корректное дискретное изображение окружности, был использован алгоритм MidpointCircle, описанный в работе [19]. Точки отрезков строятся по алгоритму MidpointLine. Для всех радиусов, для которых строятся окружности в первом фильтре,

Рис. 4. Схема работы алгоритма Ciratefi

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

В результате профилирования было установлено, что нет необходимости делать параллельную реализацию функций, строящих матрицы Cq и Rq. Их суммарное время работы на обычном процессоре занимает сотые доли секунды. Более того, операции по выделению и копированию памяти host на device и обратно в итоге только бы замедлили вычисления. Аналогичная ситуация при построении кэшей точек окружностей и отрезков.

Основное время у алгоритма занимает построение трехмерных матриц CA и RA. Для обработки краевых точек матрица A дополняется полями на некоторую величину o//sei, зависящую от размеров матрицы Q и максимального масштаба. Качество распараллеливания в CUDA зависит от многих параметров. Среди ключевых критериев можно выделить количество обращений к глобальной памяти и общую загруженность потоков. Поэтому при возможности необходимо как можно более эффективно использовать разделяемую память блоков, обращение к которой в сотни раз быстрее обращений к глобальной памяти.

Как правило, изображение A имеет существенно больше точек, нежели количество доступных для одновременного выполнения потоков. Таким образом, можно обеспечить загруженность, назначив каждому отдельному потоку вычисление одного элемента матрицы CA (или RA, если речь идет о фильтре второго уровня). Естественным образом для их параллельного вычисления выбираются двумерные блоки потоков. Ввиду хаотичности координат точек на окружностях (отрезках), в которых берутся интенсивности пикселей изображения A, не существует общего принципа выделения блоками областей A в разделяемую память. Однако при детальном подсчете было обнаружено, что в большинстве случаев разделяемой памяти хватает, чтобы разместить массивы точек окружностей (отрезков). Так, выбранная для экспериментов графическая карта NVidia GTX 560 имеет compute capability 2.x и располагает максимальным объемом разделяемой памяти в 48Кб. Координата точки описывается структурой размера 8 байтов:

struct Point2D { int x, y }

Окружность радиуса 128, построенная алгоритмом MidpointCircle с пиксельным шагом 2, имеет 368 точек. Совокупность радиус-векторов длины 128, построенная алгоритмом MidpointLine с пиксельным шагом 2 и шагом угла 18, имеет 4309 точек. Эти параметры позволяют проводить вычисления Ciratefi с достаточно высокой точностью для довольно крупных шаблонов. Как видно, разделяемой памяти хватает, чтобы хранить координаты точек. При вызове функции третьим управляющим параметром динамически указывается количество разделяемой памяти. В текущем случае точная величина не принципиальна, и можно задать ее максимальный объем:

CUDA_create_C_A<<<dimGrid, dimBlock, MAX_SHARED_MEMORY>>>(A, circles.....C_A)

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

При вычислении CisCorrA,Q и RasCorrA,Q в разделяемую память полностью копируются соответственно матрицы Cq и Rq. На последнем шаге элементы шаблона Q целиком не помещаются в разделяемую память. Поэтому задается вложенный цикл по y и x следующим образом:

for (int y = 0; y < Q.height / BLOCK_SIZE; ++y) { for (int x = 0; x < Q.width / BLOCK_SIZE; ++x) {

_shared_ double Qs[BLOCK_SIZE][BLOCK_SIZE];

Matrix2d Qsub = _cu_getSubMatrix(Q, y, x);

Qs[threadIdx.y][threadIdx.x] =

_cu_getElement(Qsub, threadldx.y, threadldx.x); syncthreads();

Далее внутри цикла накапливается частичная корреляция участков Q и соответствующих участков изображения A. Результирующий массив корреляций мал и не требует проведения операции map reduce.

4. СРАВНИТЕЛЬНЫЙ АНАЛИЗ

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

В качестве метрики точности работы алгоритмов была выбрана ошибка пересечения (overlap error), которая характеризует отклонение полученной области сопоставления шаблона от оптимальной, как представлено на рис. 5.

(а) (Ь)

Рис. 5. (а) шаблон, (Ь) сплошной линией обозначена оптимальная область отображения, пунктирной — полученное преобразование на выходе алгоритма

Согласно Mikoalyciz [20], ошибка пересечения определяется по следующей формуле:

Пересечение областей| 1 --.

|0бъединение областей|

Для первого эксперимента было выбрано 10 снимков. На каждом был отдельно обозначен объект поиска и вычислено оптимальное преобразование. Далее каждый снимок был произвольным образом отмасштабирован и повернут (в последствии также обрезан до единых для всех экспериментов размеров 512 X 512 пикселей). На них шаблон выбирался в произвольной области размерами от 10% до 50% относительно размера исходного изображения. Эксперименты осуществлялись на процессоре Intel Core i5-3450 и графической карте Nvidia GTX 560. Результаты работ алгоритмов в первом эксперименте на CPU и CUDA приведены в таблице 1.

10 приг. снимков 50% 20% 10%

Overlap. error FAsT-M 4.5% 7.1% 9.3% 14.2%

Overlap. error Ciratefi 5.2% 12.6% 12.1% 10.3%

Время FAsT-M CPU 54 с. 38 с. 47 с. 52 с.

Время Ciratefi CPU 27 с. 37 с. 31 с. 26 с.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Время FAsT-M GPU 6.3 с. 2.1 с. 5.4 с. 6.5 с.

Время Ciratefi GPU 2.5 с. 3.8 с. 3.2 с. 2.7 с.

Таблица 1. Сводная таблица результатов первого эксперимента

1 колл. 2 колл. 3 колл.

Overlap. error FAsT-M 3.2% 3.6% 2.4%

Overlap. error Ciratefi 3.6% 4.4% 7.0%

Время FAsT-M CPU 48 с. 44 с. 49 с.

Время Ciratefi CPU 26 с. 31 с. 29 с.

Время FAsT-M GPU 5.9 с. 2.5 с. 5.8 с.

Время Ciratefi GPU 2.3 с. 3.3 с. 3.6 с.

Таблица 2. Сводная таблица результатов второго эксперимента

Во втором эксперименте было подготовлено три коллекции снимков. Задача этого сценария — продемонстрировать результаты работы алгоритмов в условиях, приближенных к реальным. В первой коллекции в качестве шаблона обнаружения был выбран шатер. Во второй — легковая машина на стоянке. В третьей — крайнее дерево из лесополосы. В каждой коллекции было выбрано по две фотографии, откуда в дальнейшем были взяты изображения шаблонов. Далее шел поиск корреляции этих шаблонов со всеми остальными снимками коллекций. Результаты работы представлены в таблице 2.

В первом эксперименте при произвольном построении изображений в качестве шаблона поиска часто выбирались области ландшафта, что обуславливает рост ошибки вычислений. Как видно, время работы алгоритма FAsT-Match обратно пропорционально размеру шаблона. Сп^еА, наоборот, делает меньше вычислений в случае, когда размер шаблона относительно невелик.

Точности алгоритмов можно настраивать выбором различных пороговых значений. В проведенных экспериментах начальное приближение алгоритма FAsT-Match -0 = 0.25. Пороговые значения для алгоритма Сп^еА, соответственно, ¿1 = 0.95, ¿2 = 0.9, ¿3 = 0.75. На рис. 6 представлены некоторые результаты работы алгоритма FAsT-Match и Сп^еА.

(a) (b)

Рис. 6. (a) Результаты работы алгоритма FasT-Match, (b) Ciratefi

5. ЗАМЮЧЕНИЕ

Рассмотренные алгоритмы показали высокую эффективность при решении задачи обнаружения объектов на аэрофотоснимках. Одним из ключевых достоинств такого класса алгоритмов можно выделить существенный прирост производительности при распараллеливании вычислений. Непрерывная область поиска успешно переводится в дискретное пространство, которое в дальнейшем разбивается на множество независимых блоков, чем и обусловливается столь заметный рост в скорости вычислений. В случае, когда поиск ведется на снимках с минимальными искажениями, преимущественно по производительности выигрывает алгоритм Ciratefi. Однако нетрудно заметить, что алгоритм FAsT-Match можно легко адаптировать для решения более узкого класса задач обнаружения, когда не требуется рассматривать целиком класс аффинных преобразований, а можно ограничиться лишь множеством преобразований, описываемых матрицами вращения, униформного масштабирования и сдвига.

В алгоритме FAsT-Match на каждой итерации ход вычислений опирается на последовательный расчет функции корреляции для преобразований из некоторого разбиения с конечным шагом. Дальнейшее исследование свойств функций позволит сузить область поиска с применением сценарного подхода. Описание метода можно найти в работах [21-23].

Список литературы

1. YangM.H., KriegmanD.J., AhujaN. Detecting faces in images: A survey / IEEE Transactions on Pattern Analysis and Machine Intelligence, 2002. Vol. 24. № 1. P. 34-58.

2. Torralba A. Classifier-based methods. Recognizing and Learning Object Categories / In CVPR, 2007 Short Course on http://people.csail.mit.edu/torralba/shortCourseRLOC/ (дата обращения 28.10.14).

3. Hastie T., Tibshirani R., Friedman J. The Elements of Statistical Learning: Data Mining, Inference, and Prediction. Springer-Verlag: New York, 2001.

4. Dalal N., Triggs B. Histograms of oriented gradients for human detection / In IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR'2005), San Diego, CA, 2005. P. 886893.

5. Nobre H.P.A., Kim Hae Yong. Automatic VHDL Generation for Solving Rotation and Scale-Invariant Template Matching in FPGA / V Southern Programmable Logic Conference, Sao Carlos, 2009. P. 2126.

6. Brice C.R., Fennema C.L. Scene analysis using regions / Artificial Intelligence, 1970. Vol. 1. № 3-4. P. 205—226.

7. Canny J. A computational approach to edge detection / IEEE Transactions on Pattern Analysis and Machine Intelligence, PAMI, 1986. Vol. 8. № 6. P. 679—698.

8. Mikolajczyk K. A performance evaluation of local descriptors / IEEE Transactions on Pattern Analysis and Machine Intelligence, 2005. Vol. 27. № 10. P. 1615-1630.

9. Lowe D.G. Distinctive image features from scale-invariant key-points // IJCV, 2004. Vol. 60. № 2. P. 91—110.

10. Bay H., Ess A., Tuytelaars T., GoolL.V. SURF: Speeded Up Robust Features//CVIU, 2008. Vol. 110. № 3. P. 346-359.

11. Morel J.M., Yu G. Asift: A new framework for fully affine invariant image comparison // SIAM Journal on Imaging Sciences, 2009. Vol. 2. № 2. P. 438—469.

12. Kim H.Y., Araujo S.A. Grayscale Template-Matching Invariant to Rotation, Scale, Translation, Brightness and Contrast / IEEE Pacific-Rim Symposium on Image and Video Technology, Lecture Notes in Computer Science, 2007. Vol. 4872. P. 100-113.

13. Li J.H., Pan Q., Cui P.L., Zhang H.C., Cheng Y.M. Image recognition based on invariant moment in the projection space / Int. Conf. Machine Learning and Cybernetics, Shangai. Aug. 2004. Vol. 6. P. 36063610.

14. Flusser J., Suk T. Rotation moment invariants for recognition of symmetric objects / IEEE T. Image Processing, Dec. 2006. Vol. 15. № 12. P. 3784-3790.

15. Dionisio C.R.P., Kim H.Y. A supervised shape classification technique invariant under rotation and scaling. Int. Telecommunications Symposium, 2002. P. 533-537.

16. Tao Y., Ioerger T.R., Tang Y.Y. Extraction of rotation invariant signature based on fractal geometry. IEEE Int. Conf. Image Processing, 2001. Vol. 1. P. 1090-1093,

17. Korman S., Reichman D., Tsur G., Avidan S. FAsT-Match: Fast Affine Template Matching // CVPR, 2013.

18. Hartley R., Zisserman A. Multiple view geometry in computer vision. Cambridge university press, 2008.

19. Foley J.D. et al. Computer Graphics: Principles and Practice in C. P. 86-87.

20. Mikolajczyk K., Tuytelaars T., Schmid C., Zisserman A., Matas J., Schaffalitzky F., Kadir T., Gool L.V. A comparison of affine region detectors // IJCV, 2005. Vol. 65. № 1. P. 43—72.

21. Campi M.C., Calafiore C.G. The scenario approach to robust control design / IEEE Transactions on Automatic Control. May 2006. Vol. 51. № 5. P. 742-753.

22. Granichin O., Volkovich V., Toledano-Kitai D. Randomized Algorithms in Automatic Control and Data Mining. Springer-Verlag: Heidelberg New York Dordrecht London, 2014.

23. Граничин О.Н. Стохастическая оптимизация и системное программирование // Стохастическая оптимизация в информатике, 2010. Т. 6. С. 3-44.

RANDOMIZED APPROACH IN TOE PROBLEM OF DETECTING OBJECTS

IN AN AERIAL PHOTO

Ivanov A. A. Abstract

The article explores the applicability of two fast randomized algorithms for detecting objects in aerial photos. They are based on a search for the maximum correlation. The first algorithm FAsT-Match is used to solve the problems of detection in the conditions of arbitrary affine transformations. The second one Ciratefi has lower computational complexity, however, it is only invariant to rotation and scaling.

Algorithms were programmed in C++ and implemented for traditional architecture of sequential command execution as well, as for the environment of parallel computations CUDA 5.5. The comparative analysis of the various examples demonstrate the advantages of one or another algorithm depending on the relative sizes of the templates and the optical properties of the camera lens.

Keywords: randomized measurements, pattern recognition, template matching.

(S) Наши авторы, 2014. Our authors, 2014.

Иванов Александр Аркадьевич, аспирант Санкт-Петербугрского государственного университета, vitrums@gmail.com

i Надоели баннеры? Вы всегда можете отключить рекламу.