Статья опубликована в рамках: LIV Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 29 июня 2017 г.)
Наука: Информационные технологии
Скачать книгу(-и): Сборник статей конференции
дипломов
ОТСЛЕЖИВАНИЕ ОБЪЕКТОВ В ВИДЕОПОТОКЕ
Введение
В настоящее время количество рекламы растет с каждым годом: ни одна программа по телевидению без неё не обходится. Однако в последнее время стали популярны не просто рекламные ролики, а так называемая скрытая реклама – технология раскрутки брендов с помощью киноиндустрии. При использовании скрытой рекламы зрителю демонстрируется рекламный продукт, интегрированный в сюжет фильма, при этом внимание на продукте специально не акцентируется. Сегодня заключаются многомиллионные контракты на размещение скрытой рекламы в популярных фильмах, причём время показа логотипа каждого продукта должно быть строго регламентировано. Для отслеживания, какое количество времени логотип находился на экране, возможно применение информационных технологий, а именно сферы обработки видео. Исходя из вышесказанного, появляется необходимость в создании системы автоматического нахождения объекта в кадре, которая затем будет отслеживать его передвижения, а также контролировать время, которое логотип провел на экране.
Постановка задачи
В данной работе рассматриваются идеи по разработке методов автоматического определения местоположения предмета и отслеживания его передвижений в видеопотоке. В качестве отслеживаемого предмета был выбран логотип “McDonald’s”, как один из наиболее часто встречающихся в повседневной жизни рекламных объектов.
Задача нахождения и отслеживания объекта состоит из нескольких шагов, а именно: сначала будет обучен каскадный классификатор, а затем будет реализован процесс распознавания и трекинга объекта путем разработки соответствующего программного обеспечения.
Анализ предметной области
Задача отслеживания объектов на видео является одной из самых интересных задач в информационных технологиях. На первый взгляд, видеопоток можно рассматривать как последовательность отдельных кадров, поэтому применимы многие алгоритмы, использующиеся для обработки обычных изображений. В книге Гонсалеса и Вудса [1] вводятся основные понятия обработки изображений, излагаются базовые алгоритмы распознавания, сравнения и трансформации изображений. Сегодня к задаче распознавания объектов также широко применяются методы классификации, а именно, строятся системы, которые определяют к какому классу (изображение содержит объект или изображение не содержит объект) относится изображение. В работе [6] методы классификации изображений были разделены на две большие группы: различающие и обобщающие.
С другой стороны, видеопоток обладает свойством связности: каждый последующий кадр не сильно отличается от предыдущего, поэтому возможно применение алгоритмов, основанных на этом свойстве. С принципами цифровой обработки видеопотоков позволяют ознакомиться работы [2], [5]. Одной из интересных задач в этой области является трекинг перемещений объектов на видео. В работе [3] алгоритмы отслеживания разделены на четыре основные категории: отслеживание областей, отслеживание по активному контуру, отслеживание по характерным признакам, отслеживание по модели.
Распознавание изображений
Для детектирования объекта на изображении применяются алгоритмы распознавания. Алгоритм распознавания, или классификации, изображений принимает картинку в качестве входных данных и выводит, что содержится на данном изображении.
Классификация изображений производится в несколько шагов. На первом шаге входное изображение часто предварительно обрабатывается для нормализации контраста и яркости, а также на этом шаге входное изображение обрезается и масштабируется до фиксированного размера.
На втором шаге необходимо упростить изображение путем извлечения важной информации, так как исходное изображение содержит слишком много дополнительной информации, которая не требуется для классификации. Этот шаг называется извлечением признаков. Существует достаточно большое количество признаков, используемых в компьютерном зрении, – это признаки Хаара, HOG (Histogram of Oriented Gradients), SIFT (Scale-Invariant Feature Transform), SURF (Speeded Up Robust Feature) и другие.
На третьем шаге алгоритм классификации принимает вектор признаков в качестве входных данных и выводит к какому классу принадлежит изображение.
Метод Виолы-Джонса
Рассмотрим подробнее метод Виолы-Джонса, основанный на признаках Хаара, так как он используется в данной работе для распознавания объекта на кадре.
Основной принцип алгоритма Виолы-Джонса заключается в сканировании изображения с помощью сканирующего окна, которое позволяет обнаружить заданный объект. При стандартном подходе масштабируется входное изображение, а затем запускается детектор фиксированного размера. Виола и Джонс напротив масштабируют детектор и многократно запускают его для входного изображения, каждый раз используя разный размер.
Первым шагом алгоритма Виолы-Джонса является превращение входного изображения в интегральное. Это осуществляется путем приравнивания значению интенсивности каждого пикселя суммы всех интенсивностей пикселей, находящихся выше и левее соответствующего пикселя. Это позволяет вычислять сумму всех пикселей внутри любого заданного прямоугольника за константное время.
Далее алгоритм Виолы-Джонса анализирует изображение, используя признаки, состоящие из двух или более прямоугольников. Каждый признак дает одно значение, которое рассчитывается путем вычитания суммы белого прямоугольника(ов) из суммы черного прямоугольника(ов). При работе алгоритма может быть вычислено до 180 000 значений признаков. Среди всех этих значений только небольшое число признаков необходимо для построения эффективного классификатора.
AdaBoost – это алгоритм машинного обучения, способный построить сильный классификатор посредством взвешенной комбинации слабых классификаторов. В данном случае, каждый признак рассматривается как потенциальный слабый классификатор.
Метод Виолы и Джонса объединяет несколько сильных классификаторов построенных методом AdaBoost в каскад. Задача каждого этапа каскада состоит в том, чтобы определить, содержит ли данное сканирующее окно объект или нет. Когда сканирующее окно классифицируется как не содержащее объект на данном этапе, оно немедленно отбрасывается. И наоборот, сканирующее окно, классифицированное как «возможно содержащее объект», передается на следующий этап каскада. Следовательно, чем больше этапов проходит данное сканирующее окно, тем выше вероятность того, что оно содержит объект. В итоге считается, что только окно, прошедшее через все этапы каскада, содержит искомый объект.
Отслеживание объекта
Отслеживанием называется поиск объекта в последовательных кадрах видео. Отслеживание объекта в некоторых случаях может выполняться при помощи алгоритмов детектирования. При детектировании основная идея заключается в том, чтобы сначала определить регионы интереса (ключевые точки), которые будут независимы к преобразованиям. Затем для каждого региона интереса строится его векторное представление – дескриптор. Далее на каждом кадре будет выполняться поиск объекта и выделение его местоположения прямоугольником.
При трекинге целью является нахождение объекта в текущем кадре, если он успешно отслеживался во всех предыдущих кадрах. Так как объект был отслежен до текущего кадра, известны параметры модели движения: скорость и направление движения объекта в предыдущих кадрах. Поэтому можно предсказать новое местоположение объекта, опираясь на его модель движения, и оно будет очень близко к реальному новому положению объекта.
В данном случае местоположение объекта сначала находится при помощи алгоритма детектирования, а затем при помощи алгоритма трекинга отслеживается перемещение объекта.
Создание каскада классификаторов
В качестве отслеживаемого предмета был выбран логотип “McDonald’s”, как один из наиболее часто встречающихся в повседневной жизни рекламных объектов.
Таким образом, первым шагом необходимо сформировать базу изображений, с помощью которой будет производиться обучение каскада. Было создано две выборки: позитивные изображения, которые содержат объект интереса и негативные изображения, которые содержат только фон. Количество изображений, которое требуется для обучения классификатора зависит от многих факторов, включая качество изображений, распознаваемый объект, метод получения выборки и другие. Для детектора, который рассматривается в данной статье было взято 200 позитивных и 550 негативных изображений.
Следующим шагом является обучение каскада с помощью команды opencv_haartraining. В результате было обучено несколько классификаторов со следующими различными параметрами (таблица 1):
- количество этапов обучения,
- MinHitRate – значение минимального желаемого коэффициента успеха на каждой стадии обучения классификатора,
- MaxFalseAlarm – значение максимального желаемого результата ложных обнаружений на каждой стадии.
Таблица 1.
Сравнение параметров обучения классификаторов
|
Количество этапов обучения |
MinHitRate |
MaxFalseAlarm |
1 |
16 |
0,99 |
0,5 |
2 |
16 |
0,999 |
0,4 |
3 |
20 |
0,99 |
0,5 |
4 |
20 |
0,999 |
0,4 |
Тестирование каскада
Проверка работы каскада осуществлялась на тестовой выборке из 200 изображений: 100 изображений на которых присутствует объект и 100 на которых объекта нет. Оценка качества осуществлялась при помощи метрик полноты и точности [4].
В итоге наилучшие результаты показал классификатор 4 (таблица 2). Это объясняется довольно большим количеством этапов обучения, высоким значением MinHitRate и низким значением MaxFalseAlarm. Другие классификаторы также достаточно хорошо определяют присутствует ли искомый объект на изображении, однако их результаты оказываются ниже из-за достаточно большого количества ложных срабатываний.
Таблица 2.
Оценка работы классификаторов
|
Истинно-положительные |
Ложно-Положительные |
Ложно-Отрицательные |
Истинно-Отрицательные |
Точность |
Полнота |
1 |
59 |
32 |
41 |
68 |
0,64 |
0,59 |
2 |
68 |
25 |
32 |
75 |
0,73 |
0,68 |
3 |
74 |
23 |
26 |
77 |
0,76 |
0,74 |
4 |
81 |
14 |
19 |
86 |
0,85 |
0,81 |
Реализация алгоритма отслеживания объекта
Алгоритм был реализован на языке C++ с использованием библиотеки компьютерного зрения OpenCV версии 3.2. Основными шагами реализованного алгоритма являются:
- загрузка классификатора, обученного на предыдущем этапе;
- поиск на каждом кадре искомого объекта;
- при обнаружении объекта отметить его рамкой и отслеживать его перемещения на кадре;
- запомнить время появления и исчезновение объекта, а также вычислить время пребывания объекта на кадре.
Для обнаружения объекта на кадре была использована встроенная в OpenCV функция detectMultiScale. Затем для отслеживания объекта был использована алгоритм KCF, так как он наиболее стабилен по сравнению с другими встроенными в OpenCV трекерами. Так, например, постоянно отслеживается один и тот же объект, рамка не «перепрыгивает» на другой объект при появлении его в кадре. Также этот алгоритм обнаруживает объект на кадре быстрее и с большей точностью.
В результате был реализован алгоритм, который выводит координаты найденного объекта, время его появления на кадре, время исчезновения из кадра, а также длительность пребывания на кадре.
Тестирование алгоритма
Для тестирования алгоритма была использована любительская видеозапись, взятая из Интернета. Работоспособность алгоритма была проверена при условии, что искомый объект встречается один раз в течение видео (рисунок 1а). Затем была исследована ситуация, когда искомый объект появляется на видеозаписи больше одного раза (рисунок 1б). Для проверки устойчивости работы алгоритма к видеопотоку был применен алгоритм размытия (рисунок 1в), а также была изменена яркость видеозаписи: увеличена на 50% (рисунок 1г), уменьшена на 75% (рисунок 1д).
а)
б)
в)
г)
д)
Рисунок 1. Пример работы алгоритма: а) с одним объектом б) с несколькими объектами в) при применении размытия г) при увеличении яркости на 50% д) при уменьшении яркости на 75%
Выводы
В ходе исследования была применена процедура создания каскадного классификатора на основе алгоритма Виолы-Джонса. Для его обучения была создана обучающая выборка, содержащая 547 негативных и 200 позитивных изображений. В результате было обучено несколько классификаторов с разными параметрами (количество этапов обучения, MinHitRate, MaxFalseAlarm), точность работы которых варьировалась от 0,64 до 0,85, а полнота от 0,59 до 0,81. Для дальнейшей работы был выбран классификатор, показавший наилучшие результаты. Точность его работы вполне удовлетворительна, так как классификатор будет использоваться для распознавания объекта на видео, и если объект не будет найден на текущем кадре, то он может быть найден на следующем.
Дальнейшая задача состояла в реализации алгоритма распознавания и отслеживания объекта. Она была выполнена при помощи встроенных в библиотеку OpenCV средств. Также был реализован таймер, измеряющий время от момента появления объекта в кадре до момента исчезновения объекта из кадра. Необходимо отметить, что в результате тестов было выявлено, что созданный алгоритм устойчив к изменению освещения, а также к размытию видео.
Список литературы:
- Гонсалес Р.С., Вудс Р. Цифровая обработка изображений. 3 изд. М.: Техносфера, 2012. – 1104 с.
- Ярышев С.Н. Цифровые методы обработки видеоинформации и видеоаналитика: учебное пособие. – СПб.: СПбГУ ИТМО, 2011. – 83 с.
- Hu W. M., Tan T. N., Wang L., Maybank S. A survey of visual surveillance of object motion and behaviors // IEEE Transactions on System, Man, and Cybernetics (T-SMC), Part C. – 2004. Vol. 34(3). – P. 334-352.
- Manning C., Raghavan P., Schütze H. Introduction to Information Retrieval. – Cambridge University Press, 2008. – 496 p.
- Murat Tekalp A. Digital Video Processing, Second Edition. – Prentice Hall, 2015. – 595 p.
- Roth P.M., Winter M. Survey of Appearance-Based Methods for Object Recognition // Technical Report ICG-TR-01/08, – Institute for Computer Graphics and Vision, Graz University of Technology, 2008. – 68 p.
дипломов
Комментарии (1)
Оставить комментарий