Морозов И.С. Morozov I.S.
aспирант кафедры информационных и управляющих систем, ФГБОУ ВО «Санкт-Петербургский государственный университет технологии и дизайна», Россия, г. Санкт-Петербург
УДК 004.421.2
СИСТЕМА ОПРЕДЕЛЕНИЯ ВОЗМОЖНОСТИ ПАРКОВКИ АВТОМОБИЛЯ
В ЗАДАННОМ ПРОСТРАНСТВЕ
В современном обществе увеличивается интерес к проблеме компьютерного зрения. Обширный круг прикладных задач, которые могут быть решены посредством компьютерного зрения, лежит в области медицины, различных прикладных задач, военных решений и многих других областях.
Однако особого внимания требуют задачи, которые возникают при деятельности человека. В частности, парковка автомобиля. Для решения этой проблемы обычно используются различные сенсоры, в частности лазерный дальномер. По этому принципу работают системы парктроник и системы автоматической парковки автомобиля. Данные решения не способны заблаговременно принять решение о возможности парковки, например, требуется ли заезжать во двор, есть ли там место и т. п. Это особенно важно в условиях затрудненного подъезда к месту назначения, отсутствия возможности развернуться. Примером такого места может служить узкий двор или особенности автомобильного паркинга в торговых центрах.
Решение проблемы может быть найдено в применении камер, которые смогут распознать с помощью специальных алгоритмов наличие свободного пространства и уведомить водителя о целесообразности въезда. Для распознавания предлагается использовать самостоятельно написанное программное обеспечение на основе библиотеки Open CV. Данная библиотека с помощью каскада Хаара позволяет искать объекты по принципу скользящего окна. К достоинствам данного метода стоит отнеси низкую вероятность ложного срабатывания, а к недостаткам - длительное время обучения каскада. Обучающая выборка может быть составлена на основе фотографий окружающей местности. Обучение каскада будет происходить с помощью утилит, поставляемых в комплекте с Open CV.
После подготовительного этапа следует подключение каскада к программному обеспечению и USB-камере. Данный модуль был написан на языке программирования С#. Посредством использования Emgu CV была достигнута точность срабатывания порядка 70 %. Найденное для парковки пространство обозначается черным прямоугольником, рисуемым поверх кадра, что сообщает водителю о возможности парковки легкового автомобиля.
Ключевые слова: компьютерное зрение, Open CV, каскад Хаара, метод Виолы - Джонса, программирование, компьютерное обучение, математические методы, вейвлет-преобразования, парковка.
SYSTEM OF DEFINITION OF POSSIBILITY OF THE PARKING OF THE CAR IN THE SET SPACE
In modern society interest in a problem of computer sight increases. The extensive circle of applied tasks which can be solved by means of computer sight, lies in the field of medicine, various applied tasks, military decisions and many other areas.
However the special attention is demanded by task which arise at activity of the person. In particular, car parking. For the solution of this problem various sensors, in particular a laser range finder are usually used. By this principle systems the parctronic and systems of an automatic parking of the car work. Whether these decisions aren't capable to make beforehand the decision on possibility of a parking, for example, it is required to stop by in the yard, whether there is a place, etc. there. It is especially important in the conditions of the complicated entrance to the destination, lack of opportunity to be developed. The narrow yard or features of an automobile parking in shopping centers can be an example of such place.
The solution can be found in use of cameras which will be able to distinguish existence of free space by means of special algorithms and to notify the driver on expediency of entrance. For recognition it is offered to use independently written software on the basis of Open CV library. This library by means of Haar's cascade allows to look for objects by the principle of the sliding window. To advantages of this method costs refer low probability of false operation, and to shortcomings - a long time of training of the cascade. The training selection can be made on the basis of photos of the surrounding district. Training of the cascade will happen to the help of the utilities delivered complete with Open CV.
After a preparatory stage connection of the cascade to the software and the USB camera follows. This module was written in the C# programming language. By means of use of Emgu CV operation accuracy about 70 % was reached. The space found for a parking is designated by the black rectangle drawn over a shot that reports to the driver about possibility of a parking of the car.
Key words: computer sight, Open CV, Haar's cascade, Viola-Jones's method, programming, computer training, mathematical methods, veyvlet-transformations, parking.
Введение
В настоящее время проблеме компьютерного зрения уделяется большое внимание [1]. Эта проблема важна в приложении для охранных систем, автомобильной промышленности и других областях. В этих задачах одна из основных трудностей состоит в том, что используя различные технические решения, такие как лазеры, камеры, различные датчики объема, мы получаем неоднозначные, иногда взаимно не интерпретируемые данные. Это говорит о том, что при использовании одного из видов датчиков возможен ошибочный результат.
Наиболее перспективным подходом является использование компьютерного зрения посредством цифровой видеокамеры. Используя математические алгоритмы, в частности, нейронные сети, мы можем приблизить «компьютерный глаз» к настоящему человеческому. Один из успешных методов в этой области - это метод Виолы - Джонса [2]. С помощью метода Виолы - Джонса успешно решается задача по распознаванию объектов с использованием критериев, которым обучен входной каскад метода. Это позволяет создать программное обеспечение для конкретной прикладной задачи. Цель настоящей работы - описание возможностей программного обеспечения по методу Виолы - Джонса для задачи анализа возможности парковки автомобиля в заданном месте.
Мы используем так называемый каскад Хаара [3]. Для обучения каскада Хаара по методу Виолы -Джонса необходимо подготовить обучающую выборку из негативных и позитивных примеров. В случае решения других задач, например, подсчета количества автомобилей или распознавания лиц, или поиска конкретного отличающегося от фона объекта, мы можем применить тот же метод, но использовать другие обучающие примеры. В данной же задаче необходимо выделить фоновую составляющую, игнорируя другие объекты на подающемся на вход изображении. Далее необходимо отделить проезжую часть
от реального места для парковки. Эти и многие другие проблемы, возникающие по ходу решения задачи, рассмотрены в статье. Для решения задачи применена библиотека Open CV последней доступной версии на момент написания статьи (Open CV 3.0 beta). Разработана программа, дающая до 70 % положительного (безошибочного) результата.
1. Признак Хаара и метод Виолы - Джонса в библиотеке Open CV
Основные принципы, с помощью которых реализован метод, состоят в следующем:
- изображение представляется в интегральном виде. Данный принцип позволяет достаточно быстро выделять требуемые области и объекты;
- использование признаков Хаара для выделения необходимого объекта на изображении;
- применяется бустинг [4] - с помощью данного принципа выделяются самые важные признаки для определяемого объекта;
- каскад всех признаков поступает на вход классификатора, который однозначно выделяет результат true или false.
Существенным недостатком метода является длительное обучение классификатора - при достаточно большом объеме обучающей выборки обучение может доходить до трех суток при использовании компьютера со средней конфигурацией. Однако после обучения скорость поиска объекта очень высока, поэтому метод Виолы - Джонса был выбран для решения заявленной прикладной задачи. Данный метод является одним из лучших по соотношению скорости поиска объекта и скорости работы. Дополнительным плюсом выступает низкая вероятность ошибочного обнаружения и ложного срабатывания. Далее даны общие описания принципов работы алгоритма Виолы - Джонса. В основе функционирования данного метода лежит принцип сканирующего окна.
Основной принцип сканирующего окна Изображение представлено матрицей пикселей w*h (ширина и высота), каждый пиксель может принимать значения от 0 до 255 в случае черно-белого изображение и от 0 до 2553 в случае цветного изображения.
Задача обнаружения искомого объекта в составе цифрового изображения сводится к тому, что в процессе работы алгоритм отмечает отличительные признаки объекта в рабочей области изображения прямоугольными признаками, которыми описывается найденный объект.
rectangle. = {x, y, w, h, a}, где x, y - координаты, описывающие центр /-го прямоугольника, w - ширина, h - высота, a - угол наклона между прямоугольником и вертикальной осью изображения, rectangle. - структура, которая содержит набор из четырех целых чисел, определяющих расположение и размер прямоугольника.
К изображениям применяется метод сканирующего окна: для каждого положения сканирующего окна требуется применение классификатора. С помощью заранее подготовленных мини-программ в составе библиотек Open CV система обучения полностью автоматизирована и не требует дополнительного контроля в процессе своей работы.
Представление изображения в интегральном виде Для проведения преобразований с данными в методе Виолы - Джонса используется интегральное представление. Данный тип преобразования используется также в вейвлет-преобразованиях и других алгоритмах [5]. Метод, заложенный в основу, позволяет рассчитывать для каждого произвольного прямоугольника суммарную яркость. Особенность состоит в том, что время расчета остается неизменным для каждого такого прямоугольника.
Матрица, совпадающая по размерам с исходным изображением, является интегральным представлением изображения. Каждый элемент матрицы содержит суммарное значение интенсивности всех пикселей. Каждый элемент матрицы может быть рассчитан следующим образом:
L(w) = 2|SA * Ш.
где I(ij) - яркость пикселя исходного изображения.
Таким образом, для матрицы L[x,y] каждый элемент содержит суммарное значение пикселей в искомом прямоугольнике от (0,0) до (x,y), при этом значение пикселя (x,y) состоит из суммы всех соседних пикселей, кроме стоящих справа и слева от данного (x,y). Время, необходимое для расчета матрицы,
линеино и пропорционально количеству пикселей в изображении, исходя из этого, изображение, представленное интегрально, становится возможным просчитать за один цикл прохода.
Матрица может быть рассчитана по данной формуле:
L(x,y) = 1(х,у) - L(x-1,y-1) + L(x,y-1) + L(x-1,y).
С помощью данной интегральной матрицы становится возможным рассчитать требуемые значения сумм пикселей искомого прямоугольника произвольной площади.
ПризнакиХаара
Признаком Хаара называется объект X отображение £ X => Df, где X - множество объектов, Df - множество допустимых значений признака. Если заданы признаки П,...,&, то вектор признаков f = (А^),..., называется признаковым описанием объекта x £ X. Описания признаков условно приравнены к искомым объектам. При этом множество X=Df1* ... * Dfn называют признаковым пространством [6].
В зависимости от множества Df различают такие виды признаков, как:
- бинарный признак, Df = {0,1};
- номинальный признак: Df - конечное множество;
- порядковый признак: Df - конечное упорядоченное множество;
- количественный признак: Df - множество действительных чисел.
При работе метода Виолы - Джонса в классической форме применяются прямоугольные признаки. Общий вид данных примитивов Хаара представлен на рис. 1.
j ✓ \
Рис. 1. Примитивы Хаара
В основе библиотеки Open CV помимо основных используется расширенный набор примитивов для модифицированного метода Виолы - Джонса. Общий вид примитивов представлен на рис. 2.
Рис. 2. Расширенный набор примитивов для метода Виолы - Джонса
Для такого признака вычисленное значение будет F=Х-У, где X - суммарное значение яркостей точек, закрываемых светлой частью признака, а Y - суммарное значение яркостей точек, закрываемых темной частью признака. При вычислении данных значений применяется интегральное представление изображения. Признаки Хаара дают точечное значение перепада яркости по оси X и Y соответственно.
2. Подготовка выборки для обучения
Для обучения каскада необходимо подготовить положительные и отрицательные примеры. Требуются фотографии в различных погодных условиях и различных условиях освещения. Для решения поставленной задачи требуется отснять не менее 30 фотографий, которые впоследствии будут разрезаны на 230 положительных примеров и 300 отрицательных. Точность работы алгоритма зависит от количества изображений в обучающей выборке. Экспериментально нами выяснено, что для решения задачи поиска парковочного места для автомобиля данные значения являются минимально допустимыми. Негативные примеры выборки должны быть сформированы в той же среде, где будет производиться распознавание, и на них должен отсутствовать объект распознавания.
На рис. 3 приведен пример участка изображения, используемого для положительной выборки. Прямоугольником выделены места, которые по размеру обучающего образца удовлетворяют размерам среднего легкового автомобиля.
Рис. 3. Размещение автомобиля в заданном пространстве
Вариантов размещения автомобиля в указанных областях существует намного больше, чем представлено на рис. 3. Для обучающей выборки мы должны подготовить кадр для скользящего окна с шагом до 10 пикселей. Это позволит обучить каскад Хаара более эффективно.
3. Обучение каскада Хаара В алгоритме используется модель машинного обучения. Обучение некой машины - это особый процесс получения модулем новых знаний. В методе Виолы - Джонса обучение решает задачу классификации.
Для начала обучения следует создать две папки с примерами. Для каждой такой папки требуется создать специальный текстовый файл, в котором будут описаны подготовленные изображения. Для файла с негативными примерами следует просто пронумеровать изображения от 0 до 300 с указанием расширения.
Для позитивных примеров для обучения требуется указать не только расширение и порядковый номер примера, но и область, в которой содержится объект. Например, для файла с именем «1.bmp» в файл описания записывается строка «1.bmp 0 0 60 100». Числовые значения являются координата-
ми границ изображения, поскольку положительные примеры подготовлены только с содержанием искомого объекта. В файле описания возможно указать сразу несколько объектов, если изображение их содержит. В таком случае следует указать строку «1.bmp 0 0 60 100 60 0 120 200», где вторая четверка чисел - это координаты второго объекта. Наиболее удобным вариантом является использование одного изображения в качестве примера.
Обучение происходит в два этапа. На первом этапе все положительные изображения приводятся к общему формату. В папке, соответствующей разрядности процессора в папке Open CV, находится утилита opencv_ createsamples.exe. Работа с данной утилитой происходит в консольном режиме и для создания вектора изображений следует ввести следующую команду:
- info C:\haar\Good.dat -vec samples.vec -w 40 -h 60, где -info C:\haar\Good.dat - путь к файлу с описанием списка положительных изображений выборки с описанием координат объекта;
-vec samples.vec - имя файла, в который будет сохранен вектор, содержащий набор положительных изображений для выборки. Файл будет создан в каталоге, где находится opencv_createsamples.exe;
-w 40 -h 60 - приблизительный размер шаблона для скользящего окна, которое сможет вместить объект. Шаблон должен соответствовать пропорциям выделяемого объекта. Размер шаблона не должен быть большим. Размер шаблона прямо влияет на скорость обучения.
В результате работы программы создается файл samples.vec, в котором находятся все положительные изображения.
Для создания каскада используется «opencv_ traincascade.exe». Время работы на компьютере следующей конфигурации занимает порядка шести часов:
CPU AMD Phenom II X6 2.6 GHz/6core DDR3 8Gb HDD 1Tb
Для работы программы следует ввести в консольном режиме следующую команду:
-data haarcascade -vec samples.vec -bg E C:\ haar\Bad.dat -numStages 16 -minhitrate 0.999 -maxFalseAlarmRate 0.4 -numPos 200 -numNeg 500 -w 40 -h 60 -mode ALL -precalcValBufSize 2048 -precalcIdxBufSize 2048,
где -data haarcascade - адрес папки для создания обученного каскада;
-vec samples.vec - адрес файла с положительными примерами;
-bg C:\haar\Bad.dat - адрес файла-описания отрицательных примеров;
-numStages 16 - обучаемое программой количество уровней каскада;
-minhitrate 0.999 - коэффициент качества обучения;
-maxFalseAlarmRate 0.5 - уровень ложных срабатываний;
-numPos 200 - количество позитивных примеров. Указывается 80 % от имеющихся положительных файлов;
-numNeg 300 - количество негативных примеров;
-w 40 -h 60 - размер примитива; -mode ALL - позволяет включить использование всего набора Хаар-признаков;
-precalcValBufSize 2048 -precalcIdxBufSize 2048 - выделяемая под процесс память.
В данной задаче необходимо включить полный набор признаков Хаара, поскольку автомобили могут стоят под углом и затруднять поиск парковочно-го места.
По результатам сформированы файлы с описанием стадий обучения и выходной обученный файл каскада.
4. Работа с обученным каскадом Для работы с каскадом посредством видеокамеры следует написать программу, которая сможет обеспечить подключение USB-веб-камеры, создать форму для работы и подключить алгоритмы обработки каскада. Для реализации выбран язык C#.
Создается новый пустой проект C#, затем в модуль Uses подключаются библиотеки Emgu. Emgu является интерпретацией Open CV для работы с языком программирования C#.
Требуется подключить в проект также файлы библиотек обычной библиотеки Open CV.
После этого в главной функции программы происходит определение переменных.
Затем по таймеру происходит захват кадра с входного потока с камеры, который затем преобразуется в черно-белое изображение. Это обусловлено тем, что для экономии памяти следует сжимать входной поток (каждый кадр). Кадр сравнивается с каскадом и в случае положительного ответа запускается функция рисовки черного прямоугольника поверх входного потока. В случае если визуализация результата не требуется, то данная функция позволит принимать решение оповещения водителя о возможности парковки.
5. Тестирование программы Итоговая программа позволяет определить свободно или занято парковочное место с точностью
порядка 70 %. Это означает, что из входного потока стационарной камеры при изменении внешних условий и при переопределении сигнала с камеры при частоте порядка 1 секунды происходит отсутствие признаков выделяемой области в 30 из 100 кадров. Это не влечет за собой опасных последствий, поскольку выдается не положительный, а отрицательный результат. Учитывая постоянно меняющиеся условия - открытое уличное пространство, мы полагаем, что данный результат удовлетворяет поставленной задаче.
Одно из перспективных применений программы состоит в реализации дополнительных модулей с использованием смс-информирования по запросу с предоставлением информации о наличии свободного парковочного места. Этот подход оправдает себя в случае трудного заезда и невозможности разворота в условиях узких проездов.
Заключение
Использование каскада Хаара позволяет определять объекты с достаточной точностью. Программа, созданная в работе, удовлетворяет поставленным задачам поиска парковочного места для легкового автомобиля.
Для увеличения точности работы алгоритма можно использовать параллельные вычисления для увеличения скорости обучения каскада и совершенствование технологии бустинга другими алгоритмами. Повышение точности распознавания можно увеличить комбинацией различных методов.
Перспективы для улучшения программы могут состоять в том, что можно создать модуль, который позволит дистанционно оповещать водителя о возможности парковки, не выполняя заезд в трудные для маневрирования дворы или паркинги.
Список литературы
1. Форсайт Д. Компьютерное зрение. Современный подход [Текст] / Д. Форсайт, Д. Понс. - М.: Изд-во «Вильнос», 2004. - 928 с.
2. Viola P. Rapid. Object Detection using a Boosted Cascade of Simple Features [Text] / P. Viola., M. Jones // Computer vision and pattern. - 2001. - С. 4.
3. Messom C. Fast and Efficient Rotated Haar-like Features Using Rotated Integral Images [Text] / C. Messom, A. Barczak // Australian Conference on Robotics and Automation (ACRA2006). - 2006. - С. 4.
4. Schapire R. The Boosting Approach to Machine Learning: An Overview [Text] / R. Schapire. - USA: MSRI. - 2003. - 23 с.
5. Lee D. Wavelet Analysis: Theory and Applications [Text] / D. Lee, A. Yamamoto // Hewlett-Packard Journal. - 1994. - С. 5.
6. Журавлев Ю. «Распознавание». Математические методы. Программная система. Практические применения [Текст] / Ю. Журавлев, В. Рязанов, О. Сенько. - М.: Изд-во «Фазис», 2006. - 16 с.
References
1. Forsajt D. Komp'juternoe zrenie. Sovremen-nyj podhod [Tekst] / D. Forsajt, D. Pons. - M.: Izd-vo «Vil'nos», 2004. - 928 s.
2. Viola P. Rapid. Object Detection using a Boosted Cascade of Simple Features [Text] / P. Viola., M. Jones // Computer vision and pattern. - 2001. - S. 4.
3. Messom C. Fast and Efficient Rotated Haar-like Features Using Rotated Integral Images [Text] / C. Mes-som, A. Barczak // Australian Conference on Robotics and Automation (ACRA2006). - 2006. - S. 4.
4. Schapire R. The Boosting Approach to Machine Learning: An Overview [Text] / R. Schapire. - USA: MSRI. - 2003. - 23 s.
5. Lee D. Wavelet Analysis: Theory and Applications [Text] / D. Lee, A. Yamamoto // Hewlett-Packard Journal. - 1994. - S. 5.
6. Zhuravlev Ju. «Raspoznavanie». Matematicheskie metody. Programmnaja sistema. Prakticheskie primen-enija [Tekst] / Ju. Zhuravlev, V. Rjazanov, O. Sen'ko. - M.: Izd-vo «Fazis», 2006. - 16 s.