Статья опубликована в рамках: Научного журнала «Студенческий» № 9(9)
Рубрика журнала: Информационные технологии
Скачать книгу(-и): скачать журнал
АЛГОРИТМ ДЕТЕКТИРОВАНИЯ АВТОМОБИЛЬНЫХ НОМЕРОВ МЕТОДОМ СКОЛЬЗЯЩЕГО ОКНА С ИСПОЛЬЗОВАНИЕМ СВЁРТОЧНОЙ НЕЙРОННОЙ СЕТИ
Аннотация. В данной статье предложен алгоритм детектирования объектов методом скользящего окна. Для непосредственного нахождения искомого объекта в окне используется классифицирующая свёрточная нейронная сеть. Тестирование алгоритма проводилось на задаче детектирования автомобильных номеров.
Ключевые слова: детектирование, метод скользящего окна, свёрточные нейронные сети.
Детектирование автомобильного номера проводилось методом скользящего окна. Данный метод широко распространён и применяется в таких алгоритмах детектирования, как детектор Виолы-Джонса на основе каскадов Хаара [7] или детектор на основе гистограмм направленных градиентов (англ. histograms of oriented gradients, HOG) [2]. Общая идея этого метода такова: выбирается некоторый размер скользящего окна, которое перемещается слева направо и сверху вниз по изображению с некоторым шагом по осям. Из частей изображений, попавших в это окно, выделяются некоторые признаки, и проводится их классификация. Результаты такой классификации затем используются для определения положения искомого объекта или объектов.
Пример процесса детектирования методом скользящего окна приведён на рисунке 1. На этом рисунке скользящее окно представлено в виде цветного прямоугольника. На рисунке показано как цвет прямоугольника меняется от красного к зелёному с увеличением вероятности присутствия в окне номерного знака.
Рисунок 1. Пример детектирования методом скользящего окна
Алгоритм детектирования на основе метода скользящего окна приведён ниже:
1 Зададим размер скользящего окна , где и – высота и ширина скользящего окна соответственно, а также шаги по вертикальной и горизонтальной осям и .
2 Входное изображения с высотой и шириной дополним по краям так, чтобы его размеры были кратны размеру скользящего окна и заданным шагам по осям. Размеры дополненного изображения определяются следующими выражениями:
(1) |
|
---|---|
(2) |
где: – операция округления до ближайшего меньшего целого числа.
3 Рассчитаем число шагов скользящего окна по вертикали и горизонтали по следующим формулам:
(3) |
|
---|---|
(4) |
4 Пусть и задают положение верхнего левого угла скользящего окна по вертикали и горизонтали соответственно. Введём таблицу с числом рядов и столбцов , причём индексирование в таблице производится с помощью точки , координаты которой посредством деления на соответствующие размеры шагов приводятся к индексам в таблице.
5 Примем и и значения в таблице равными .
6 Формируем фрагмент изображения размером с координатами верхнего левого угла в точке по вертикали и по горизонтали сканируемого изображения .
7 Фрагмент изображения подаётся в классификатор и результат классификации, представленный в виде вероятности присутствия номерного знака запоминается в таблице в точке .
8 Увеличим значение и применим следующее правило:
а) если , то и ;
б) если , то переходим к шагу 9, иначе переходим к шагу 6.
9 Проведём сравнение элементов полученной таблицы с пороговым значением . Это пороговое значение характеризует минимальное значение вероятности обнаружения искомого объекта. В результате сравнения формируется бинарная таблица :
(5) |
---|
10 Сглаживаем полученную бинарную таблицу для устранения возможных разрывов, которые могут образоваться в случае когда значения в таблице не намного меньше порога, а окрестности точек разрыва больше порога. Полученные регионы являются кандидатами на наличие в них автомобильного номера.
11 Для каждого региона определяем значением максимума в регионе по таблице и её позицию . Рассчитываем описывающий прямоугольник полученных точек максимума по общей формуле:
(6) |
---|
Затем для каждого региона рассчитываем описывающий прямоугольник следующим образом:
а) пусть – номер отдельной точки в регионе и – число точек в рассматриваемом регионе;
б) примем ;
в) определим значение вероятности в точке региона и её координаты , а также рассчитаем её описывающий прямоугольник по формуле (6);
г) рассчитаем единичный вектор направления ;
д) помножим полученный вектор на отношение вероятности точки и точки максимума : ;
е) затем масштабируем этот вектор на размер сканирующего окна по первому элементу в , а по второму в раз;
ж) переносим прямоугольник на величину смаштабированного вектора;
з) расширяем прямоугольник так, чтобы включить в себя прямоугольник ;
и) устанавливаем и если , то переходим к шагу в), иначе выходим из этого цикла.
12 Полученные описывающие прямоугольники регионов являются результатом проведённого детектирования.
Для проведения детектирования и тестирования алгоритма была обучена свёрточная нейронная сеть для проведения бинарной классификации окна, размером . Эта нейронная сеть имеет следующую структуру: три свёрточных слоя по 48, 96 и 192 выходных каналов соответственно; у первых двух слоёв используется ядро размером , а у последнего – ; после каждой операции свёртки используется функция с весами смещения, а после этого применяется операция -объединения с окном и шагом за исключением последнего слоя, у которого они равны ; после этих слоёв используется свёртка с одним выходным каналом и функцией активации . Оптимизация параметров сети проводилась посредством применения метода Adam [4] с шагом обучения равным и параметрами и . В качестве целевой функции использовалась средняя квадратичная ошибка [5].
В работе была использована база изображений номеров наземных транспортных средств [1]. Пример фотографий транспортных средств приведён на рисунке 2. Изображения из базы разбивались на фрагменты с шагом равным и размером фрагмента равным . Каждому фрагменту присваивалась метка, характеризующая его принадлежность зоне с автомобильным номером. Фрагмент принадлежит зоне с автомобильным номеров в случае если площадь его пересечения с прямоугольником описывающим автомобильный номер не меньше половины площади скользящего окна. После формирования базы таких фрагментов, они просеивались таким образом, чтобы соотношение положительных примеров автомобильного номера и отрицательного было одинаковым. Оставшиеся фрагменты затем нормализовались посредством применения Z-стандартизации [6]. Полученный набор далее разбивался на обучающую и тестирующую выборки.
Рисунок 2. Пример изображений из используемой базы
Точность детектирования вычислялась с помощью метрики пересечения над объединением, известной также как индекс Жаккарда [3]. Стоит отметить, что эта метрика применялась в несколько изменённом виде, а именно вместо объединения в знаменателе использовались просто истинные значения. Это было вызвано тем фактом, что текущий алгоритм детектора неспособен формировать описывающий прямоугольник имеющий размеры как у прямоугольников в используемой базе, однако это не мешает ему находить регион с номеров. Точность детектирования показана в таблице 1.
Таблица 1.
Результаты тестирования детектора автомобильных номеров
Точность определения области без номера |
Точность определения области с номером |
88,67% |
81,87% |
Основываясь на полученных можно заключить, что предложенный алгоритм детектирования имеет довольно высокую точность, и он также может быть использован в иных задачах, отличных от задачи детектирования автомобильных номеров. Данный алгоритм довольно легко модифицировать для проведения многоклассового детектирования. Однако данный алгоритм нуждается в дальнейших усовершенствованиях для уменьшения числа ложных срабатываний, а также обеспечения более точного определения параметров описывающих прямоугольников детектируемых объектов.
Список литературы:
- Копылов, И.В. База изображений номеров наземных транспортных средств / И.В. Копылов, Л.Л. Малыгин, В.А. Царёв // Вестник Череповецкого государственного университета. – 2015. – С. 19-22.
- Dalal, N. Histograms of Oriented Gradients for Human Detection / N. Dalal, B. Triggs // CVPR. – 2005. – 8 p.
- Jaccard index entropy // Википедия : свободная энциклопедия. – 2017. [электронный ресурс] – Режим доступа. – URL: https://en.wikipedia.org/wiki/Jaccard_index (дата обращения 14.05.2017).
- Kingma, D.P. Adam: A Method for Stochastic Optimization / D.P. Kingma, J.L. Ba. – 2014. – 15 p. – (Preprint / arXiv.org; № 1412.6980).
- Mean squared error // Википедия : свободная энциклопедия. – 2017. [электронный ресурс] – Режим доступа. – URL: https://en.wikipedia.org/wiki/Mean_squared_error (дата обращения 14.05.2017).
- Standard score // Википедия : свободная энциклопедия. – 2017. [электронный ресурс] – Режим доступа. – URL: https://en.wikipedia.org/wiki/Standard_score (дата обращения 14.05.2017).
- Viola, P. Rapid Object Detection using a Boosted Cascade of Simple Features / P. Viola, M. Jones // CVPR. – 2001. – 9 p.
Оставить комментарий