Поиск объектов на изображении с использованием алгоритма адаптивного усиления | Статья в журнале «Молодой ученый»

Автор:

Рубрика: Информатика

Опубликовано в Молодой учёный №4 (84) февраль-2 2015 г.

Дата публикации: 10.02.2015

Статья просмотрена: 2294 раза

Библиографическое описание:

Бутенко В. В. Поиск объектов на изображении с использованием алгоритма адаптивного усиления // Молодой ученый. — 2015. — №4. — С. 52-56. — URL https://moluch.ru/archive/84/15604/ (дата обращения: 26.09.2018).

Введение

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

AdaBoost (сокращение от Adaptive Boosting) — алгоритм усиления классификаторов, путем объединения их в комитет. Суть алгоритма заключается в комбинировании слабых классификаторов в один финальный, более мощный. В процессе обучения финального классификатора акцент делается на эталоны, которые распознаются хуже, т. е. выбирается классификатор, который лучше идентифицирует объекты, неверно распознанные предыдущим классификатором, в этом и заключается адаптивность алгоритма, в процессе обучения он подстраивается под наиболее сложные объекты [1].

Фактически, алгоритм адаптивного усиления осуществляет только отбор классификаторов и их комбинирование.

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

На основе отобранных классификаторов строится каскад. Каждый последующий элемент каскада имеет более жёсткие условия успешного прохождения, чем предыдущий (используется больше классификаторов), тем самым до конца доходят только самые правильные [2].

Реализация алгоритма

На практике будет использована реализация данного алгоритма из библиотеки OpenCV. В библиотеке имеются модули для работы с каскадным классификатором, его детектирования и обучения [5]. Есть два модуля для тренировки каскадов opencv_traincascade и opencv_haartraining, а также модули для обучения opencv_performance и opencv_createsamples.

Модуль opencv_createsamples применяется для создания учебного набора положительных и тестовых образцов в формате *.vect.

Модуль opencv_performance может быть использован для оценки качества классификаторов, но только для обученных opencv_haartraining. Он использует коллекцию различных изображений, запускает классификатор и сообщает производительность, т. е. количество найденных объектов, количество пропущенных объектов, количество ложных срабатываний и другую информацию [4].

Для обучения необходимо собрать образы. Есть два типа образов: негативные и позитивные. Негативные образы соответствуют отсутствию объекта на изображении. Положительные образы соответствуют изображениям с обнаруженными объектами. Набор негативных образов должен быть подготовлен вручную, а множество положительных образов создаётся с помощью модуля opencv_createsamples.

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

Практическая часть

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

Нашей задачей является поиск объекта (Рис. 1) на изображениях (Рис. 2).

Рис. 1. Объект поиска

 

Рис. 2. Изображения для поиска

 

В работе все цветные изображения переводятся в grayscale, иначе количество инвариантов слишком велико.

Объект может иметь разный цвет (± 50 от исходного цвета), случайное местоположение на изображении, разный размер, разный угол наклона (в пределах 90°).

Создание обучающей выборки

Первый шаг при тренировке каскадов — создание обучающей выборки.

Изначально было заготовлено 500 изображений размером 1920×1200, одно эталонное изображение размером 150×150 и файл negative.dat со структурой:

           images/image0.jpg                  ...

           images/image1.jpg                  ...

           ...

           images/image499.jpg  ...

           Модуль opencv_createsamples был запущен со следующими параметрами:

-vec C:\ positive.vect -bgC:\ negative.dat -img C:\images\bg.jpg -num 500 -w 1920 -h 1200 -bgcolor 0 -bgthresh 0 ... -show

В зависимости от указанных параметров, модуль берёт эталонный объект и применяет к нему различные деформации (размер, угол наклона и т. д.).

На выходе получаем файл positive.vect, содержащий положительные образы (Рис. 3).

В данном примере количество положительных образов равно 500, но в реальных задачах следует ориентироваться на объём в районе 10000.

Рис. 3. Положительные образы

 

Создание каскада

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

Запускаем модуль со следующими параметрами:

-data C:\training-vec C:\ positive.vect -bgC:\ negative.dat -npos 500 -nneg 500 -nsplits 2 -w 20 -h 24 -mem 1536 -mode  ...  -maxfalsealarm 0.5

Алгоритм обучения, при должном подходе, может длиться от 1 до 7 дней. Для данного эксперимента, обучение длилось 1 день.

На выходе получили xml-файл, который можно подгружать в исходный код программы.

Тестирование каскада

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

Запускаем модуль с нужными параметрами и как итог получаем следующий результат (Рис. 4):

Рис. 4. Информация, полученная после тестирования каскада

 

Заключение

Прежде всего, следует отметить время, которое потребовалось для обработки 1500 изображений из тренировочной выборки, на обработку одного изображения затрачивалось не более 13 мс. С учётом времени, затраченного на обучение каскада (1 день) и количества изображений в обучающей выборке (1000 изображений), результат тестирования вполне удовлетворительный. В реальных задачах необходимо учитывать, что объём обучающей выборки должен быть от 10000 изображений, а время обучения от 3 дней. Результаты работы алгоритма представлены далее (Рис. 5).

Рис. 5. Результат работы алгоритма

 

Литература:

 

1.      AdaBoost [Электронный ресурс].

2.      URL: http://en.wikipedia.org/wiki/AdaBoost

3.      Introduction to Adaptive Boosting [Электронный ресурс].

4.      URL: http://www.csie.ntu.edu.tw/adaboost.pdf

5.      A Short Introduction to Boosting [Электронный ресурс].

6.      URL: http://cseweb.ucsd.edu/IntroToBoosting.pdf

7.      Classification and Prediction Using Adaptive Boosting [Электронный ресурс]. URL: https://msdn.microsoft.com/en-us/magazine/dn166933.aspx

8.      Opencv documentation [Электронный ресурс]. URL: http://docs.opencv.org/

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


Похожие статьи

Алгоритмы распознавания объектов | Статья в сборнике...

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

В этом разделе описано семейство алгоритмов, в основу которых лег алгоритм AdaBoost (от английских слов «adaptiveадаптивность» и «Boosting — усиление»...

Методы определения объектов на изображении

В OpenCV используется алгоритм машинного обучения AdaBoost.

Листинг 3. Загрузка изображения и каскадов.

Листинг 4 (Конец). Определение объекта при помощи каскадов. Рис. 7. Результат работы каскада Хаара.

Анализ методов обнаружения лиц на изображении

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

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

Неконтролируемые методы машинного обучения при...

[6] развернули в основе адаптивного обучения Fuzzy ART, который подходит для динамической смены среды.

Данный процесс повторяется, пока каждый центр кластера не изменится. Таким образом, данные разделены на K кластеров.

Методы контроля и оценки результатов обучения в учебном...

Методы контроля — это способы, обеспечивающие обратную связь в процессе обучения с

Отмечая недостатки, устного контроля и оценки результатов обучения, исследователи

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

Модульность в образовании: методики, сущность, технологии

Модуль представляет из себя независимое, логически законченное звено процесса обучения.

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

Реализация многослойного персептрона и сети адаптивного...

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

Поиск объектов на изображении с использованием алгоритма адаптивного усиления.

Анализ методов распознавания образов | Статья в журнале...

Существует множество методов распознавания образов на изображениях.

– j-й эталонный признак класса i, – количество эталонных векторов класса i.

Принцип работы алгоритма построен на определении минимального расстояния до образца признака из базы...

Тестирование как форма контроля результатов обучения

Таким образом, тестирование по своей объективности и скорости получения результата

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

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

Обсуждение

Социальные комментарии Cackle

Похожие статьи

Алгоритмы распознавания объектов | Статья в сборнике...

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

В этом разделе описано семейство алгоритмов, в основу которых лег алгоритм AdaBoost (от английских слов «adaptiveадаптивность» и «Boosting — усиление»...

Методы определения объектов на изображении

В OpenCV используется алгоритм машинного обучения AdaBoost.

Листинг 3. Загрузка изображения и каскадов.

Листинг 4 (Конец). Определение объекта при помощи каскадов. Рис. 7. Результат работы каскада Хаара.

Анализ методов обнаружения лиц на изображении

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

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

Неконтролируемые методы машинного обучения при...

[6] развернули в основе адаптивного обучения Fuzzy ART, который подходит для динамической смены среды.

Данный процесс повторяется, пока каждый центр кластера не изменится. Таким образом, данные разделены на K кластеров.

Методы контроля и оценки результатов обучения в учебном...

Методы контроля — это способы, обеспечивающие обратную связь в процессе обучения с

Отмечая недостатки, устного контроля и оценки результатов обучения, исследователи

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

Модульность в образовании: методики, сущность, технологии

Модуль представляет из себя независимое, логически законченное звено процесса обучения.

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

Реализация многослойного персептрона и сети адаптивного...

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

Поиск объектов на изображении с использованием алгоритма адаптивного усиления.

Анализ методов распознавания образов | Статья в журнале...

Существует множество методов распознавания образов на изображениях.

– j-й эталонный признак класса i, – количество эталонных векторов класса i.

Принцип работы алгоритма построен на определении минимального расстояния до образца признака из базы...

Тестирование как форма контроля результатов обучения

Таким образом, тестирование по своей объективности и скорости получения результата

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

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

Задать вопрос