О НЕЙРОСЕТЕВОМ ПОДХОДЕ К РАСПОЗНАВАНИЮ ДОРОЖНЫХ СИТУАЦИЙ Данилин А.Н.,Никонов В.В.

Московский технологический университет


Номер: 12-1
Год: 2017
Страницы: 15-26
Журнал: Актуальные проблемы гуманитарных и естественных наук

Ключевые слова

набор данных, нейронная сеть, сверточная сеть, программное обеспечение, дорожные знаки, распознавание, автоматизированная система, data set, neural network, convolutional network, software, road signs, recognition, automated system

Просмотр статьи

⛔️ (обновите страницу, если статья не отобразилась)

Аннотация к статье

В статье рассматривается применение нейросетевых технологий к задаче распознавания дорожных ситуаций. Дается описание предметной области, а также анализ существующих решений. А также предлагается структура автоматизированной системы для распознавания дорожных ситуаций. В качестве основной модели предлагается нейросетевой классификатор на основе сверточной нейронной сети SigNet, VGG-16 и сети SVC.

Текст научной статьи

В России ежегодно в ДТП погибают около 27 000 человек. Недостаточная облученность водителей является определяющим фактором данной статистики. Многие пробелы в обучении не могут быть восполнены большим водительским стажем, превращаясь в привычку плохого вождения. Существующий экзамен в ГИБДД является важнейшей преградой на пути плохо обученных водителей, так как представляет собой последнюю инстанцию на пути получения водительского удостоверения. Согласно правилам проведения экзаменов на право управления транспортными средствами и выдачи водительских удостоверений от 24 октября 2014 г. N 1097: Средства аудио - и видеорегистрации процесса проведения практических экзаменов должны обеспечивать в режиме реального времени видеозапись дорожной обстановки спереди и сзади транспортного средства. Далее согласно административному регламенту Министерства внутренних дел Российской Федерации по предоставлению государственной услуги по проведению экзаменов на право управления транспортными средствами и выдаче водительских удостоверений от 21 марта 2016 г. N 41477 пункт 132: Информация, полученная с использованием средств аудио - и видеорегистрации процесса проведения практических экзаменов, переносится в автоматизированную информационную систему экзаменационного подразделения. В настоящее время не редко возникают спорные ситуации, в которых гражданин, сдававший квалификационные экзамены в ГИБДД не согласен с оценкой его действий вынесенной экзаменатором. Для решения подобных конфликтов транспортное средство экзаменатора оборудовано средствами аудио - и видеорегистрации. Каждый экзаменационный заезд записывается авторегистратором. В случае возникновения конфликтной ситуации для вынесения окончательного решения ГИБДД обращается к данной видеозаписи. Также информация, полученная с использованием средств аудио - и видеорегистрации процесса проведения практических экзаменов, переносится в автоматизированную информационную систему экзаменационного подразделения. Далее видеозаписи выборочно просматриваются сотрудниками экзаменационного подразделения с целью контроля точности вынесения оценок кандидатам за экзамен. Из-за непрерывного потока кандидатов в архиве ГИБДД накапливается большое количество отснятого материала. Подобный объем часов крайне сложно изучить полностью. Рисунок 1 - Схема АИС оценки нарушений ПДД Существует проблема обработки информации полученной с помощью средств аудио - и видеорегистрации процесса проведения практических экзаменов. Сотрудники ГИБДД изучают полученные данные частично, так как изучение такого количество часов отснятого материала полностью на данный момент невозможно. Для решения данной проблемы в настоящее время разрабатывается автоматизированная информационная система оценки нарушений ПДД, которая позволит сотрудникам экзаменационного подразделения выявлять материалы, изучение которых наиболее необходимо. Создание данной системы подразумевает реализацию следующих блоков: первичной видеообработки, распознавания дорожных знаков, распознавания дорожного полотна, распознавания автомобилей, распознавания пешеходов, распознавания светофоров, формирования вектора (Vкадра), формирование вектора (Vокна). В настоящее время существуют различные решения, позволяющие распознавать те или иные знаки дорожного движения. Большинство из этих систем являются системами контроля скорости, которые созданы для обеспечения безопасности дорожного движения. Примером может служить система Opel Eye, разработанная Opel, это видеокамера, которая оказывает водителям помощь, выполняя четыре функции: 1) Система распознавания дорожных знаков (TSR) читает знаки, указывающие на ограничение скорости и запрещающие обгон, также определяет и отображает знаки, относящиеся к скоростным ограничениям такие как "снег", "дождь", и отображает их на панели приборов. 2) Система предупреждения о смене полосы движения (LDW) подает сигналы водителю, который непреднамеренно смещается из своей полосы. 3) Система определения дистанции (FDI) измеряет расстояние до движущегося впереди автомобиля и выводит на дисплей предупреждение для водителя, когда дистанция становится критической. 4) Система предупреждения о фронтальном столкновении (FCA) Система предупреждения о фронтальном столкновении (FCA) активируется при скорости от 5 км/ч и выдает визуальное и звуковое предупреждение при сближении с другим автомобилем. Таким образом, система защищает участников дорожного движения от угрозы столкновения. Действуя совместно, эти системы повышают безопасность движения, снижают стрессы для его участников и даже помогают избежать штрафов за превышение скорости. Аналогично работает система контроля над ограничениями скорости Speed Limit Assist. Камера, расположенная на лобовом стекле, распознает знаки ограничения скорости во время движения автомобиля и затем отображает максимально допустимую скорость на дисплее спидометра. Одной из известных технологий является Traffic Sign Recognition (TSR), благодаря которой транспортные средства могут распознавать знаки ограничения скорости, знак «дети» или знаки, предупреждающие о повороте. Первая TSR-система была представлена в 2008 году и установлена в некоторых моделях машин. Второе поколение системы способно также распознавать знаки ограничения обгона. RoadAR - мобильное приложение для помощи водителям на дороге. Приложение включает в себя функции видеорегистрации, распознавания дорожных знаков и предупреждения о зоне их действия. Распознанные на устройстве знаки отправляются в общую базу, откуда потом они попадают к другим водителям. Чем больше водителей - тем больше и актуальнее база и качественнее предупреждения. RoadAR может работать в фоне как авторегистратор и при этом выдавать предупреждения поверх любых навигационных приложений, например: Waze, Навител Навигатор, Яндекс.Навигатор, Sygic и др. В текущей версии программа распознает следующие знаки: «уступи дорогу»; ограничения скорости (в момент превышения приложение показывает сумму штрафа для большей мотивации снизить скорость); «обгон запрещен»; «остановка запрещена»; «стоянка запрещена»; «пешеходный переход»; знаки, предписывающие проезд перекрестков; предупреждающие знаки. В последующих версиях планируется добавление других знаков. Менее известной, но более универсальной является система для распознавания дорожных знаков FOSTS (Foveal Systems for Traffic Sign Recognition). Она предназначена для распознавания дорожных знаков инвариантно к погодным условиям, скорости и полосы движения автомобиля, а также расстоянию до знака. В основе работы системы лежат алгоритмы определения формы знака, классификации по цвету и форме внешнего контура и формирования специфического описания с помощью оригинального подхода, основанного на позиционировании пространственно-неоднородного сенсора в центре информативной части знака. В отличие от большинства аналогов, позволяющих распознавать только знаки, ограничивающие скорость движения, разработанная система способна распознавать любые дорожные знаки, заранее занесенные в базу данных. Однако ни одна из данных систем не подходит для интеграции в автоматизированную информационную систему оценки нарушений ПДД так как все они имеют закрытый исходный код. Также, такие системы как Opel Eye и RoadAR не распознают множество знаков необходимых для работы системы оценки нарушений ПДД. На данный момент большинство существующих систем распознавания знаков разработаны для мобильных устройств и бортовых компьютеров транспортных средств, в связи с этим подобные системы создаются в соответствие с ограниченными возможностями данного оборудования, что как правило, существенно снижает процент точности распознавания. Систему распознавания дорожных знаков можно условно разделить на обеспечивающие подсистемы и функциональные подсистемы. Более подробно структура системы распознавания дорожных знаков представлена на рисунке 2. Подсистема кластеризации сегментированных изображений. Назначение: выделение отдельных знаков на сегментированном изображении. Вспомогательные функции: обучения (fit), прогноза (predict). Принцип работы: Поиск областей максимальной плотности. Присвоение каждой точке определённого класса. Используемая технология: кластеризатор DBSCAN. Подсистема трансформации изображения. Назначение: трансформации изображения из стандартного графического представления в 4096-мерный вектор признаков. Вспомогательные функции: инициализации класса, инициализации сверточных слоев, инициализации полносвязных слоев, обработки отдельного изображения, нормализации изображения, получение вывода (вектора признаков) предпоследнего слоя, формирования массива векторов. Принцип работы: последовательное преобразование входящего изображения сначала через функцию нормализации, затем через 13 чередующихся слоев свёрточных и пулинговых фильтров, далее через 3 полносвязных слоя нейронной сети. Используемая технология: свёрточная нейронная сеть VGG-16. Подсистема классификации. Назначение: нейросетевой классификатор классифицирует 4096-мерные векторы признаков изображений в соответствии с 43 классами дорожных знаков. Вспомогательные функции: загрузки словаря, обучения, сохранения модели в файл, применения модели (предсказания). Принцип работы: обучение: получение на вход массива векторов и словаря размеченных данных; загрузка и обучение модели на размеченном датасете; запись полученной модели в файл. Применение: загрузка модели в оперативную память; применение модели к каждому изображению для получения предсказания. Используемая технология: классификатор SVC. Рисунок 2 - Структурная схема АС распознаваниядорожных знаков Процесс распознавания объектов в видеопотоке происходит покадрово. Каждый кадр является изображением. В настоящее время для повышения скорости работы и точности системы анализа изображений одним из наиболее успешных методов является искусственная нейронная сеть (ИНС). Использование нейронных сетей (НС) в качестве аппарата для анализа дорожных знаков обусловлено способностями сети к параллельной и распределенной обработки информации, что позволяет значительно увеличить скорость работы алгоритма и повысить эффективность охраны объектов специального назначения. Кроме этого, применение НС обеспечивает следующие полезные свойства: 1. Способность к обобщению. 2. Нелинейность. 3. Отображение входной информации в выходную. 4. Адаптивность. 5. Эксплуатация обученной нейронной сети не требует дополнительной подготовки пользователей и их высокой квалификации. Кроме этого, нейросетевой метод моделирования не требует априорного задания вида исследуемой зависимости. Сверточная нейронная сеть (СНС) - сеть, состоящая преимущественно или полностью из сверточных слоев. Идея свёрточных нейронных сетей заключается в чередовании свёрточных слоев (англ. convolution layers) и субдискретизирующих слоев (англ. subsampling layers или англ. pooling layers, слоёв подвыборки). Сверточный слой является основным строительным блоком СНС, включает в себя ядро свертки (матрица свертки) который обрабатывает предыдущий слой, по фрагментам суммируя результаты матричного произведения для каждого фрагмента. Коэффициенты матрицы свёртки устанавливаются в процессе обучения. ReLU (Rectified Linear Units) - это слой нейронов, который применяет функцию ненасыщающей активации . Это увеличивает нелинейные свойства функции решения и всей сети, не влияя на восприимчивые поля слоя свертки. Слой субдискретизации или пулин (pooling) представляет собой форму нелинейной нисходящей выборки. Существует несколько нелинейных функций для реализации пулинга, среди которых max pooling является наиболее распространенной. Max pooling разбивает входное изображение на набор неперекрывающихся прямоугольников, и для каждой такой подобласти выводит максимум. Слой пулинга служит для постепенного уменьшения пространственного размера представления, уменьшения количества параметров и количества вычислений в сети. Обычно слой пулинга вставляется между последовательными слоями свертки. Процесс распознавания объектов в видеопотоке происходит покадрово. В первую очередь входящее изображение необходимо сегментировать. Этот процесс применяется для снижения усилий на поиск объекта. Принято решение в рамках разработки автоматизированной информационной системы оценки нарушений ПДД для выполнения сегментации использовать систему семантической сегментации изображений SegNet. SegNet - это новая, глубокая, полностью сверточная архитектура нейронной сети, разработанная для семантической пиксельной сегментации. Основной обучаемый механизм сегментации состоит из кодирующей сети, соответствующей сети декодера, за которой следует слой с градиентной классификацией. Архитектура сети кодировщика топологически идентична 13 сверточным слоям в сети VGG16. Роль сети декодера заключается в том, чтобы сопоставить карты характеристик кодировщика с низким разрешением с полнофункциональными картами разрешения ввода для классификации по пикселям. Новинка SegNet заключается в том, как декодер воспроизводит карты ввода с более низким разрешением. В частности, декодер использует индексы, вычисленные на этапе max pooling соответствующего кодера для выполнения нелинейной дискретизации. Рисунок 3 - Архитектура SegNet Декодер увеличивает выборку, используя переданные индексы пула от своего кодера, чтобы создать разреженные карты. Затем он выполняет свертку с помощью обучаемого банка фильтров для уплотнения карты объектов. Графики выходных характеристик конечного декодера подаются в классификатор soft-max для классификации по пикселям. В результате работы SegNet на вывод поступает сегментированное изображение. Каждый сегмент классифицируется в зависимости от объекта находящегося на выделенной области и помечается определённым цветом. Так как на одном кадре могут находиться более одного знака дорожного движения, для последующей обработки необходимо разделить (кластеризовать) поступивший сегментированный кадр на набор кадров так, чтобы на изображении находился только один знак. Рисунок 4 - Пример применения технологии SegNet Для кластеризации кадров были выбраны методы, основанные на плотности точек (density-based), которые используют следующую идею. Для каждой точки выборки рассматривается её окрестность, причём: · Точка называется основной, если в её окрестности много других точек (больше, чем некоторое число). · Точка называется пограничной, если в её окрестности мало других точек, но среди них есть основная. · В ином случае точка называется шумовой. DBSCAN - это один из density-based методов, который состоит из следующих шагов: 1. Разделить точки на основные, пограничные и шумовые. 2. Отбросить шумовые точки. 3. Соединить основные точки, которые находятся на расстоянии ε друг от друга. 4. Каждую группу соединённых основных точек объединить в свой кластер. 5. Отнести пограничные точки к соответствующим им кластерам. Результатом этапа сегментации изображения является новое изображение, полученное из выделенной области в соответствии с необходимым классом. Для реализации распознавания дорожных знаков за основу взята предобученная сверточная нейронная сеть VGG-16. Эта модель состоит из пяти основных групп операций свертки. Смежные группы свертки связаны через слои с max pooling. Каждая группа содержит серию сверточных слоев 3х3 (Ядер). Количество ядер свертки остается неизменным внутри группы и увеличивается с 64 в первой группе до 512 в последней. Общее количество обучаемых слоев может составлять 11, 13, 16 или 19 в зависимости от количества слоев в каждой группе. VGG-16 - это предобученная сверточная нейронная сеть используемая для классификации изображений натренированная на большом датасете (упорядоченном наборе данных) ImegNet. Для определения дорожных знака на изображениях нужно получить их векторные представления. С этой целью взята свёрточная нейронная сеть, используемая для классификации изображений VGG-16. У этой СНС убирается последний softmax слой. Данный слой является классификатором, дающим на выходе вероятности каждого из множества классов ImageNet. После удаления слоя softmax на вывод поступает 4096-мерный вектор признаков для каждого из изображений. Использование предобученной сети обусловлено тем, что процесс обучения такой сложной сети требует большого количества времени и вычислительных ресурсов. Рисунок 5 - Схема слоев VGG-16 Удаленный слой softmax необходимо заменить другим слоем классификатором, который будет присваивать 4096-мерному вектору признаков изображения соответствующей класс в зависимости от знака на изображении. Одним из общепризнанных методов, применяемых в сфере распознавания образов, является метод опорных векторов. Метод опорных векторов SVM (Support Vector Machine) - это набор схожих методов обучения распознавателей, как для классификации, так и для регрессии. Особенность данного метода заключается в непрерывном уменьшении эмпирической ошибки классификации и увеличение уверенности предсказания. Вычислительно метод сводится к решению задачи квадратичной оптимизации с линейными ограничениями. SVM удобно формулируется для задач двухклассовой классификации и одномерной регрессии и называется SVC (Support Vector Classification). Многоклассовую классификацию и многомерную регрессию обычно сводят к серии двухклассовых классификаций и одномерных регрессий. Для определения количества классов и распределения по ним знаков, необходимо выяснить из каких именно знаков должен состоять набор. В рамках данной ВКР проведено исследование с привлечением специалистов по приёму экзаменов в ГИБДД. Целю данного исследования, является определение оптимального набора дорожных знаков для распознавания дорожной ситуации складывающейся в процессе экзамена в ГИБДД. В результате проведенного исследования получен набор, состоящий из 43 классов. Данные классы включают в себя знаки дорожного движения, встречающиеся на экзамене в ГИБДД. В класс может входить от одного до нескольких схожих по внешнему виду и смыслу дорожных знаков. Состав классов содержащих дорожные знаки с нумерацией согласно Приложению 1 к правилам дорожного движения Российской Федерации. Рисунок 5 - Нейросетевой классификатор для распознавания дорожных знаков Рисунок 6 - Распознаваемые дорожные знаки SVC является алгоритмом обучения с учителем, следовательно, для его обучения необходимо наличие размеченных данных (датасета). «Датасет» (dataset) - набор данных (в данном случае изображений) в котором каждому элементу набора присваивается соответствующий класс. Для эффективного обучения классификатора датасет должен состоять не менее чем из 100000 (сто тысяч) размеченных изображений. Сбор данного объема уникальных изображений, содержащих дорожные знаки, весьма трудозатратная задача, в связи с этим было принято решение собрать 10000 (десять тысяч) изображений, далее путем модификации собранных изображений достичь необходимого количества. Собранные данные необходимо нормализовать. Для эффективного обучения классификатора количество изображений для каждого класса должно быть одинаковым. Если в класс входит более одного знака, то для каждого из набора знаков класса должно быть собрано равное количество изображений. Также, дорожный знак должен занимать не менее 30% прямоугольной области всего изображения. Все собранные изображения необходимо привести к формату PNG (portable network graphics), так как в условиях реальной работы из SegNet изображения будут поступать именно в формате PNG. Рисунок 7 - Исходное изображение и изображение знака после нормализации и модификации. Для получения искомого набора изображений, собранные нормализованные данные необходимо модифицировать. Основным принципом модификации изображений является, изменение таким образом, чтобы знак на изображении был узнаваем человеком, а преобразования были схожи с искажением кадра снятого в реальных дорожных условиях при движении транспортного средства. Также «датасет» описывается специальным текстовым файлом. В файле содержаться записи о соответствии изображений и классов. После того как датасет собран, можно преступить к обучению нейросетевого классификатора. В рамках данной работы была выбрана реализация классификатора SVC из библиотеки Scikit-learn. Качество классификатора зависит от выставленных гиперпараметров. Процесс обучения классификатора состоит из следующих этапов: 1. Сбор выборки из датасета. 2. Обработка выборки сверточной нейронной сетью VGG-16. Получение выборки в виде 4096-мерных векторов признаков. 3. Выставление гиперпараметров классификатора. 4. Обработка 4096-мерных векторов признаков классификатором. 5. Анализ полученной ошибки. Повторение пунктов с 3 по 5 до достижения искомого качества классификатора. 6. Обработка всего датасета сверточной нейронной сетью VGG-16. Получение датасета в виде 4096-мерных векторов признаков. 7. Обработка 4096-мерных векторов признаков всего датасета классификатором. Получение модели. 8. Сохранение полученной модели классификатора в файл. Для разработки модели распознавания дорожных знаков была выбрана библиотека программного обеспечения TensorFlow. TensorFlow - это библиотека программного обеспечения с открытым исходным кодом для машинного обучения по целому ряду задач. Библиотека разработана компанией Google для удовлетворения потребностей в системах, способных создавать и обучать нейронные сети, для обнаружения и расшифровки моделей и корреляций. TensorFlow доступна на 64-битных платформах Linux, MacOS, Windows и мобильных вычислительных платформах, включая Android и iOS. Рисунок 8 - Схема процесса обучения классификатора Выбор TensorFlow для реализации данного проекта обусловлен тем, что данная библиотека программного обеспечения позволяет разделить обучение модели, и ёё реализацию. Также в TensorFlow входит весь необходимый инструментарий для работы с СНС и может работать на нескольких графических процессорах с дополнительными расширениями CUDA. Для реализации обучения модели в рамках данного проекта был выбран язык программирования Python v3.5, как наиболее подходящий для данной задачи в силу следующих факторов: простота, наличие большого количества библиотек машинного обучения, математических пакетов, научных вычислений. Рисунок 9 - Запуск системы распознавания дорожных знаков Рисунок 10 - Проверка слоев VGG-16 Рисунок 11 - начало поступления кадров для анализа системой Рисунок 12 - Окончание поступления кадров. Вывод в виде соответствия каждого изображения одному из 43 классов. Таким образом, разработана структура системы распознавания дорожных знаков с применением передовых технологий в области распознавания изображений. Исследована предметная область, порядок проведения и технология сбора информации экзамена в ГИБДД. Проведён анализ существующих систем распознавания дорожных знаков. Реализовано обучение нейросетевого классификатора с помощью собранных данных. Итогом выполнения всех поставленных задач является обученная модель, предназначенная для распознавания дорожных знаков в условиях экзамена ГИБДД. В качестве основного проектного решения был использован аппарат нейронных сетей. Для кластеризации сегментированного изображения был применен метод, основанный на плотности точек DBSCAN. Для трансформации изображения в 4096-мерномы вектор признаков была применена свёрточная нейронная сеть VGG-16. Для классификации изображений был применён классификатор, основанный на методе опорных векторов SVC.

Научные конференции

 

(c) Архив публикаций научного журнала. Полное или частичное копирование материалов сайта возможно только с письменного разрешения администрации, а также с указанием прямой активной ссылки на источник.