ВКР (1229297), страница 5
Текст из файла (страница 5)
Вычисляемым значением такого признака будет
| (1) |
где X – сумма значений яркостей точек закрываемых светлой частью признака, а Y – сумма значений яркостей точек закрываемых темной частью признака. Для их вычисления используется понятие интегрального изображения.
Признаки Хаара дают точечное значение перепада яркости по оси X и Y соответственно.
2.4.2.2 Алгоритм Виолы-Джонса
Детектор обладает низкой вероятностью ложного обнаружения.
Ниже приведены основные принципы, на которых основан метод [23]:
– используются изображения в интегральном представлении, что позволяет быстро вычислять необходимые объекты;
– используются признаки Хаара, с помощью которых происходит поиск нужного объекта;
– используется бустинг (от англ. boost – улучшение, усиление) для выбора наиболее подходящих признаков для искомого объекта на данной части изображения;
– все признаки поступают на вход классификатора, который даёт результат «верно» либо «ложь»;
– используются каскады признаков для быстрого отбрасывания окон, где не найден пешеход.
Задача обнаружения человека на цифровом изображении, как правило, формулируется следующим образом:
– имеется исходное изображение, на котором есть искомые объекты, представлено двумерной матрицей пикселей размером w·h, где пиксели имеют значения от 0 до 255 (черно-белое), от 0 до 2553 (цветное RGB) изображение;
– в результате работы алгоритм должен определить пешехода и поставить метку;
– поиск осуществляется в активной области изображения прямоугольными признаками, описывающими искомый объект прямоугольником.
Рисунок 2.7 – Пример поиска сканирующем окном
Данная система обучения и выбора наиболее значимых признаков полностью автоматизирована, следовательно, нет необходимости в участии человека в процессе обучения и поиска.
Для того, чтобы начать работать и производить действия с данными, используется интегральное представление изображений [26]. Такое представление используется часто и в других методах, на пример, в вейвлет-преобразованиях, SURF. Интегральное представление предоставляет возможность быстро рассчитывать суммарную яркость произвольного прямоугольника на конкретном изображении, размер прямоугольника никак не влияет на время расчета.
Интегральное представление изображения – это матрица, размерность которой совпадает с размерностью исходного изображения. В каждом ее элементе хранится сумма интенсивностей всех пикселей, находящихся левее и выше данного элемента. Элементы матрицы рассчитываются по следующей формуле
| (2) |
где I(i,j) – яркость пикселя исходного изображения.
| (3) |
Каждый элемент матрицы L[x,y] представляет собой сумму пикселей в прямоугольнике от (0,0) до (x,y), т.е. значение каждого пикселя (x,y) равно сумме значений всех пикселов левее и выше данного пикселя (x,y). Расчет элементов матрицы занимает линейное время, пропорциональное числу пикселей в изображении, поэтому интегральное изображение просчитывается за один проход.
C помощью интегральной матрицы есть возможность быстро вычислить сумму пикселей произвольного прямоугольника, произвольной площади. Пусть в прямоугольнике ABCD есть интересующий нас объект D:
Рисунок 2.8 – Прямоугольник
Из рисунка видно, что сумму внутри прямоугольника можно выразить через суммы и разности смежных прямоугольников по следующей формуле
| (4) |
Пример расчета интегрального представления показан на рисунке ниже:
Рисунок 2.9 – Расчёт интегрального отображения
2.4.2.3 Алгоритм распознавания образов на основе гистограммы направленных градиентов
Алгоритм распознавания объектов на основе гистограммы направленных градиентов (Histogram of Oriented Gradients, HOG) был предложен в 2005 году и успешно использован для обнаружения человека. Но, к сожалению, этот метод может обрабатывать только изображения размера 320x240. Хотя авторы [21] использовали «объединенное изображение» для ускоренного процесса обнаружения. Основная идея заключается в том, что форма и вид объектов на изображении могут описываться распределением относительных величин градиентов функции интенсивности, характеризующих направление границ объектов. В практическом применение этот алгоритм реализуется следующим образом. Изображение разбивается на маленькие «ячейки», каждой из которых соответствует одномерная гистограмма направлений градиентов (ориентации рёбер). Пример представлен на рисунке 2.10.
Рисунок 2.10 – Разбиение изображения на ячейки [25]
Каждый столбик гистограммы соответствует определённому диапазону направлений градиентов соответствующего направления и содержит их суммарную (по пикселям ячейки) яркость. Совокупность всех гистограмм образует общее представление о рёбрах на изображении (рисунок 2.11).
Рисунок 2.11 – Гистограммы HOG [25]
При перепадах освещения производится нормировка значений в полученных гистограммах относительно некоторой области, содержащей рассматриваемую ячейку. Соседние ячейки объединяются в «блоки», а значения в гистограммах всех ячеек внутри блока нормируются на суммарное значение магнитуды градиентов по рассматриваемому блоку.
Нормализованные блоки называются HOG дескрипторами, а множество таких блоков, локализованных в компактной области изображения, образует «окно поиска». Итоговый вектор признаков образуется из конкатенации дескрипторов внутри окна поиска.
Из исследований, проведенных в обзоре [15], HOG-алгоритм обладает самым высоким качеством обнаружения, значительно опережая каскадный алгоритм, основанный на признаках Haar wavelet.
2.4.3 Наборы данных для обучения системы распознавания пешеходов
Для обучения системы распознавания пешеходов требуются наборы данных, которые представляют собой серию изображений положительного и отрицательного характера, т.е. изображений, на которых имеется или отсутствует пешеход, а также координаты скользящего окна, в котором есть объект. От данной информации зависит насколько точно будет работать система. Следовательно, в ее распоряжении должно иметься более 1000, как положительных, так и отрицательных снимков.
В литературе рекомендуют следующие крупные наборы данных: INRIA [26], ETH [27], TUD-Brussels [28], Daimler [29] (Daimler stereo [30]), Caltech-USA [31], and KITTI [32]. Они обладают различными характеристиками среди которых выделяют: размер кадра, количество и качество изображений.
INRIA является одним из первых опубликованных наборов данных и показывает высокие результаты в определении пешеходов в различных местностях (город, пляж, горы, и т.д.).
Наборы ETH и TUD-Brussels используют средние размеры кадра видео (240x320), что позволяет ускорить процесс обучения системы.
С полным обзором работ по тематике «Обнаружение пешеходов» можно ознакомиться в статьях [15] и [17]. В работе [15] приводится сравнение качества и скорости работы описанных выше систем.
2.4.4 Сравнительный анализ эффективности алгоритмов распознавания пешеходов
За последние десять лет алгоритмы распознавания пешеходов стремительно развивались, но можно заметить, что большинство алгоритмов основано на гистограммах направленных градиентов и признаках Хаара. Ниже представлена сводная таблица методов распознавания пешеходов.
Рисунок 2.12 – Характеристики методов[47]
Рассмотрим два графика обучения методов различными наборами данных, представленных на рисунке 2.13.
Рисунок 2.13 – Характеристики методов [47]
Как видно из графиков, что процент обнаружения уменьшается или увеличивается в зависимости от набора данных.
Таблица 3 – Сравнение алгоритмов распознавания пешеходов
Методы | Количество обнаружений | Процент обнаружения | Время обработки | |
Общее | Ложные | |||
Haar/addboost | 163 | 47 | 97,6% | 7,37 |
HOG/libSVM | 144 | 3 | 86,2% | 26,66 |
Haar+HOG | 141 | 4 | 84,4% | 8,97 |
Обратим внимание, что HOG имеет наиболее низкий показатель ошибки обнаружения пешехода, но время использования сравнительно высоко, тогда как метод Haar имеет противоположные показатели. Использование совместно двух методов дает выигрыш в значении таких показателей, как ошибка обнаружения и время обработки.
2.5 Библиотека функций компьютерного зрения OpenCV
OpenCV (англ. Open Source Computer Vision Library, библиотека компьютерного зрения с открытым исходным кодом) – библиотека алгоритмов компьютерного зрения, обработки изображений и численных алгоритмов общего назначения с открытым кодом. Реализована на языках C/C++, также разрабатывается для Python, Java, Ruby, Matlab, Lua и других языков. Может свободно использоваться в академических и коммерческих целях – распространяется на условиях лицензии BSD.
Ядро библиотеки cxcore содержит базовые структуры данных и алгоритмы:
– базовые операции над многомерными числовыми массивами;
– операции матричной алгебры, математические функции, генераторы псевдослучайных чисел;
– запись/восстановление структур данных в/из XML;
– базовые функции 2D графики.
Cv модуль обработки изображений и компьютерного зрения включает следующие функции:
– базовые операции над изображениями (фильтрация, геометрические преобразования, преобразование цветовых пространств и т. д.);
– анализ изображений (выбор отличительных признаков, морфология, поиск контуров, гистограммы);
– анализ движения, слежение за объектами;
– обнаружение объектов, в частности лиц;
– калибровка камер, элементы восстановления пространственной структуры.
Highgui – модуль для ввода/вывода изображений и видео, создания пользовательского интерфейса предоставляет следующие функции:
– захват видео с камер и из видео файлов, чтение/запись статичных изображений;