Научная статья на тему 'О НЕЙРОСЕТЕВОМ ПОДХОДЕ К РАСПОЗНАВАНИЮ ДОРОЖНЫХ СИТУАЦИЙ'

О НЕЙРОСЕТЕВОМ ПОДХОДЕ К РАСПОЗНАВАНИЮ ДОРОЖНЫХ СИТУАЦИЙ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
533
71
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
НАБОР ДАННЫХ / НЕЙРОННАЯ СЕТЬ / NEURAL NETWORK / СВЕРТОЧНАЯ СЕТЬ / CONVOLUTIONAL NETWORK / ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ / SOFTWARE / ДОРОЖНЫЕ ЗНАКИ / ROAD SIGNS / РАСПОЗНАВАНИЕ / RECOGNITION / АВТОМАТИЗИРОВАННАЯ СИСТЕМА / AUTOMATED SYSTEM / DATA SET

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Данилин А.Н., Никонов В.В.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «О НЕЙРОСЕТЕВОМ ПОДХОДЕ К РАСПОЗНАВАНИЮ ДОРОЖНЫХ СИТУАЦИЙ»

О НЕЙРОСЕТЕВОМ ПОДХОДЕ К РАСПОЗНАВАНИЮ ДОРОЖНЫХ СИТУАЦИЙ

Данилин А.Н.1, Никонов В.В.2 ®

1 2 Магистрант, К.т.н. доцент

Федеральное государственное бюджетное образовательное учреждение высшего образования «Московский технологический университет» (МИРЭА, МГУПИ, МИТХТ)

Аннотация

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

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

В России ежегодно в ДТП погибают около 27 000 человек. Недостаточная облученность водителей является определяющим фактором данной статистики. Многие пробелы в обучении не могут быть восполнены большим водительским стажем, превращаясь в привычку плохого вождения. Существующий экзамен в ГИБДД является важнейшей преградой на пути плохо обученных водителей, так как представляет собой последнюю инстанцию на пути получения водительского удостоверения.

Согласно правилам проведения экзаменов на право управления транспортными средствами и выдачи водительских удостоверений от 24 октября 2014 г. N 1097: Средства аудио - и видеорегистрации процесса проведения практических экзаменов должны обеспечивать в режиме реального времени видеозапись дорожной обстановки спереди и сзади транспортного средства.

Далее согласно административному регламенту Министерства внутренних дел Российской Федерации по предоставлению государственной услуги по проведению экзаменов на право управления транспортными средствами и выдаче водительских удостоверений от 21 марта 2016 г. N 41477 пункт 132: Информация, полученная с использованием средств аудио - и видеорегистрации процесса проведения практических экзаменов, переносится в автоматизированную информационную систему экзаменационного подразделения.

В настоящее время не редко возникают спорные ситуации, в которых гражданин, сдававший квалификационные экзамены в ГИБДД не согласен с оценкой его действий вынесенной экзаменатором. Для решения подобных конфликтов транспортное средство экзаменатора оборудовано средствами аудио - и видеорегистрации. Каждый экзаменационный заезд записывается авторегистратором. В случае возникновения конфликтной ситуации для вынесения окончательного решения ГИБДД обращается к данной видеозаписи.

Также информация, полученная с использованием средств аудио - и видеорегистрации процесса проведения практических экзаменов, переносится в автоматизированную информационную систему экзаменационного подразделения. Далее

® Данилин А.Н., Никонов В.В., 2017

видеозаписи выборочно просматриваются сотрудниками экзаменационного подразделения с целью контроля точности вынесения оценок кандидатам за экзамен. Из-за непрерывного потока кандидатов в архиве ГИБДД накапливается большое количество отснятого материала. Подобный объем часов крайне сложно изучить полностью.

Существует проблема обработки информации полученной с помощью средств аудио - и видеорегистрации процесса проведения практических экзаменов. Сотрудники ГИБДД изучают полученные данные частично, так как изучение такого количество часов отснятого материала полностью на данный момент невозможно.

Для решения данной проблемы в настоящее время разрабатывается автоматизированная информационная система оценки нарушений ПДД, которая позволит сотрудникам экзаменационного подразделения выявлять материалы, изучение которых наиболее необходимо. Создание данной системы подразумевает реализацию следующих блоков: первичной видеообработки, распознавания дорожных знаков, распознавания дорожного полотна, распознавания автомобилей, распознавания пешеходов, распознавания светофоров, формирования вектора (Укадра), формирование вектора (Уокна).

В настоящее время существуют различные решения, позволяющие распознавать те или иные знаки дорожного движения. Большинство из этих систем являются системами контроля скорости, которые созданы для обеспечения безопасности дорожного движения.

Примером может служить система Opel Eye, разработанная Opel, это видеокамера, которая оказывает водителям помощь, выполняя четыре функции:

1) Система распознавания дорожных знаков (TSR) читает знаки, указывающие на ограничение скорости и запрещающие обгон, также определяет и отображает знаки, относящиеся к скоростным ограничениям такие как "снег", "дождь", и отображает их на панели приборов.

от

о

7S

тз ш

о _|

0

W

1

ш ^

X I

Рисунок 1 - Схема АИС оценки нарушений ПДД

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) - это слой нейронов, который применяет функцию ненасыщающей активации /(х) = max(0, х). Это увеличивает нелинейные свойства функции решения и всей сети, не влияя на восприимчивые поля слоя свертки.

Слой субдискретизации или пулин (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. Соединить основные точки, которые находятся на расстоянии 8 друг от друга.

4. Каждую группу соединённых основных точек объединить в свой кластер.

5. Отнести пограничные точки к соответствующим им кластерам.

Результатом этапа сегментации изображения является новое изображение, полученное из выделенной области в соответствии с необходимым классом. Для реализации распознавания дорожных знаков за основу взята предобученная сверточная нейронная сеть VGG-16.

Эта модель состоит из пяти основных групп операций свертки. Смежные группы свертки связаны через слои с max pooling. Каждая группа содержит серию сверточных слоев 3х3 (Ядер). Количество ядер свертки остается неизменным внутри группы и увеличивается с 64 в первой группе до 512 в последней. Общее количество обучаемых слоев может составлять 11, 13, 16 или 19 в зависимости от количества слоев в каждой группе.

VGG-16 - это предобученная сверточная нейронная сеть используемая для классификации изображений натренированная на большом датасете (упорядоченном наборе данных) ImegNet.

Для определения дорожных знака на изображениях нужно получить их векторные представления. С этой целью взята свёрточная нейронная сеть, используемая для классификации изображений VGG-16. У этой СНС убирается последний softmax слой. Данный слой является классификатором, дающим на выходе вероятности каждого из множества классов ImageNet. После удаления слоя softmax на вывод поступает 4096-мерный вектор признаков для каждого из изображений. Использование предобученной сети обусловлено тем, что процесс обучения такой сложной сети требует большого количества времени и вычислительных ресурсов.

221 х 22-1 х 3 22J х 22 i х fi4

Удаленный слой Бойтах необходимо заменить другим слоем классификатором, который будет присваивать 4096-мерному вектору признаков изображения

соответствующей класс в зависимости от знака на изображении. Одним из общепризнанных методов, применяемых в сфере распознавания образов, является метод опорных векторов.

Метод опорных векторов SVM (Support Vector Machine) - это набор схожих методов обучения распознавателей, как для классификации, так и для регрессии. Особенность данного метода заключается в непрерывном уменьшении эмпирической ошибки классификации и увеличение уверенности предсказания. Вычислительно метод сводится к решению задачи квадратичной оптимизации с линейными ограничениями.

SVM удобно формулируется для задач двухклассовой классификации и одномерной регрессии и называется SVC (Support Vector Classification). Многоклассовую классификацию и многомерную регрессию обычно сводят к серии двухклассовых классификаций и одномерных регрессий.

Для определения количества классов и распределения по ним знаков, необходимо выяснить из каких именно знаков должен состоять набор. В рамках данной ВКР проведено исследование с привлечением специалистов по приёму экзаменов в ГИБДД. Целю данного исследования, является определение оптимального набора дорожных знаков для распознавания дорожной ситуации складывающейся в процессе экзамена в ГИБДД. В результате проведенного исследования получен набор, состоящий из 43 классов. Данные классы включают в себя знаки дорожного движения, встречающиеся на экзамене в ГИБДД. В класс может входить от одного до нескольких схожих по внешнему виду и смыслу дорожных знаков.

Состав классов содержащих дорожные знаки с нумерацией согласно Приложению 1 к правилам дорожного движения Российской Федерации.

Класс №39^

Рисунок 5 - Нейросетевой классификатор для распознавания дорожных знаков

Рисунок 6 - Распознаваемые дорожные знаки

SVC является алгоритмом обучения с учителем, следовательно, для его обучения необходимо наличие размеченных данных (датасета).

«Датасет» (dataset) - набор данных (в данном случае изображений) в котором каждому элементу набора присваивается соответствующий класс. Для эффективного обучения классификатора датасет должен состоять не менее чем из 100000 (сто тысяч) размеченных изображений. Сбор данного объема уникальных изображений, содержащих дорожные знаки, весьма трудозатратная задача, в связи с этим было принято решение

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

Собранные данные необходимо нормализовать. Для эффективного обучения классификатора количество изображений для каждого класса должно быть одинаковым. Если в класс входит более одного знака, то для каждого из набора знаков класса должно быть собрано равное количество изображений. Также, дорожный знак должен занимать не менее 30% прямоугольной области всего изображения. Все собранные изображения необходимо привести к формату PNG (portable network graphics), так как в условиях реальной работы из SegNet изображения будут поступать именно в формате PNG.

Рисунок 7 - Исходное изображение и изображение знака после нормализации и

модификации.

Для получения искомого набора изображений, собранные нормализованные данные необходимо модифицировать. Основным принципом модификации изображений является, изменение таким образом, чтобы знак на изображении был узнаваем человеком, а преобразования были схожи с искажением кадра снятого в реальных дорожных условиях при движении транспортного средства.

Также «датасет» описывается специальным текстовым файлом. В файле содержаться записи о соответствии изображений и классов.

После того как датасет собран, можно преступить к обучению нейросетевого классификатора. В рамках данной работы была выбрана реализация классификатора SVC из библиотеки Scikit-learn. Качество классификатора зависит от выставленных гиперпараметров. Процесс обучения классификатора состоит из следующих этапов:

1. Сбор выборки из датасета.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

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, как наиболее подходящий для данной задачи в силу следующих факторов: простота, наличие большого количества библиотек машинного обучения, математических пакетов, научных вычислений.

root<a>ergosum-DS: -/Documents/Tensor

'export: command not found : t@ergosun-DS:~# nc

« И 4») 19:42 -ф-

ot@ergosum-DS:~/Documents/Tensor# road_signs.py ad_si.gns.py: connand not found

ot@ergosupi-DS:~/Docunents/Tensor# python r

tensorflow/strean_executor/dso_loader.cc:1 tensorflow/strean_executor/dso_loader.cc:1 tensorflow/strean_executor/dso_loader.cc:1 tensorflow/strean_executor/dso_loader.cc:1 tensorflow/strean_executor/dso_loader.cc:1 tensorflow/core/platforn/cpu_feature_guard. ructions, but these are available on your r tenso rflow/core/plat form/cpu_feature_gua rd. structlons, but these are available on youi tensorflow/core/platforn/cpu_feature_guard. structions, but these are available on youi tensorflow/core/platforn/cpu_feature_guard.

;o.8.0 locally i.5 locally i.S.e locally

;o.8.0 locally :o use SSE3 in

:o use SSE4.1

:o use SSE4.2

oad_signs.py

35] successfully opened CUDA library libcublas.: 35] successfully opened CUDA library libcudnn.sc 35] successfully opened CUDA library libcufft.sc 35] successfully opened CUDA library libcuda.so. 35] successfully opened CUDA library libcurand.; ::45] The TensorFlow library wasn't compiled 1 :hine and could speed up CPU computations. ::45] The TensorFlow library wasn't compiled 1 lachine and could speed up CPU computations. ::45] The TensorFlow library wasn't compiled 1 lachine and could speed up CPU computations. ::45] The TensorFlow library wasn't compiled to use AVX ins uctions, but these are available on your nachine and could speed up CPU conputations.

tensorflow/core/platforn/cpu_feature_guard.cc:45] The TensorFlow library wasn't conpiled to use AVX2 in ructions, but these are available on your nachine and could speed up CPU conputations. tensorflow/core/platforn/cpu_feature_guard.cc:45] The TensorFlow library wasn't conpiled to use FMA ins uctions, but these are available on your nachine and could speed up CPU conputations.

tensorflow/strean_executor/cuda/cuda_gpu_executor.cc:910] successful NUMA node read fron SysFS had nega ve value (-1), but there must be at least one NUMA node, so returning NUMA node zero tensorflow/core/conmon_runtine/gpu/gpu_device.cc:885] Found device 0 with properties: ne: GeForce GTX 756 Ti

jor: 5 ninor: 6 nenoryClockRate (GHz) 1.137 IBusID 0060:01:00.0 tal nenory: 1.95GIB ee nenory: 1.75GiB tenso rf low/core/cor

> rflow/core/connon_n

> rflow/core/connon_n

GeForce GTX 75© Ti

ntine/gpu/gpu_device.с ntine/gpu/gpu_device.с ntine/gpu/gpu_device.с

pci t

(3, 3, 3, 64))

; id: 0600:01:00.6)

:9®6] DMA: 6 :916] 6: Y

:975] Creating TensorFlow device (/gpu:0)

(64,)) (3, 3, (64,)) (3, 3, (128,)) (3, 3, (128,))

64, 64)) 64, 128)) 128, 128))

Рисунок 9 - Запуск системы распознавания дорожных знаков

root@ergosum-DS: -/Documents/Tensor g

Free memory: 1.75GiB /J) I tensorflow/core/common_runtime/gpu/gpu_device.cc:906] DMA: 8 I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 0: Y

PI tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlow device (/gpu:6) -, name: GeForce GTX 750 Ti, pci bus id: 0066:01:00.0) (8, 'convl_l_W, (3, 3, 3, 64)) (1, 'convl_l_b', (64,)) Ml* (2, 'COnvl_2_W' , (3, 3, 64, 64)) P| (3, 'convl_2_b' , (64,))

(4, 'COnv2_l_W' , (3, 3, 64, 128)) (5, 1 conv2_l_b1, (128,)) ■k. (6, 'COnv2_2_W' , (3, 3, 128, 128))

pg| | 'conv2_2_b' , (128,))

(8, 'C0nv3_l_w', (3, 3, 128, 256)) ^^ (9, 'conv3_l_b' , (256,))

(10, 'COnv3_2_W', (3, 3, 256, 256)) 1113 (11, 'COnv3_2_b' , (256,))

__ (12, 1conv3_3_W', (3, 3, 256, 256))

(13, 'COnv3_3_b' , (256,))

(14, 'COnv4_l_W', (3, 3, 256, 512))

(15, 'COnv4_l_b', (512,))

(11, 'COnv3_2_b', (256,))

(12, 1conv3_3_W', (3, 3, 256, 256))

(13, 'conv3_3_b', (256,))

(14, 'conv4_l_W, (3, 3, 256, 512))

(15, 'conv4_l_b', (512,))

(16, 'conv4_2_W, (3, 3, 512, 512))

(17, 'conv4_2_b', (512,))

(18, 'conv4_3_W, (3, 3, 512, 512))

(19, 'COnv4_3_b', (512,))

(20, 'conv5_l_W, (3, 3, 512, 512))

(21, 'conv5_l_b', (512,))

(22, 'COnv5_2_W', (3, 3, 512, 512))

(23, 'conv5_2_b', (512,))

(24, 'COnv5_3_W', (3, 3, 512, 512))

(25, 'conv5_3_b', (512,))

(26, 'fc6_W', (25088, 4096))

(27, 'fc6_b', (4096,))

(28, 'fc7_W', (4096, 4096))

(29, 'fc7_b', (4096,))

(30, 'fc8_W', (4096, 1000))

(31, 'fc8_b', (1060,))

traf/test_256/19236.png 1

U tensorflow/core/common_runtime/bfc_alloeator.cc:217] Ran out of memory trying to allocate 2.05GIB. The caller indicates that this is not a failure, but nay mean that there could be performance gains if more m emory is available.

W tensorflow/core/common_runtime/bfc_allocator.cc:217] Ran out of menory trying to allocate 1.02GiB. The caller indicates that this is not a failure, but nay mean that there could be performance gains if more m

Рисунок 10 - Проверка слоев VGG-16

root(fflergosum-DS: -/Documents/Tensor 'S 0 40) 19:44 i!>

caller indicates that this is not a failure, but may mean that there could be performance gains if more m emory is available.

id tensorflow/core/common_runtime/bfc_allocator.cc:217] Ran out of memory trying to allocate 1.08GiB. The ' caller indicates that this is not a failure, but may mean that there could be performance gains if more m I emory is available.

W tensorflow/core/common_runtime/bfc_allocator.cc:217] Ran out of memory trying to allocate 586.12MiB. Th e caller indicates that this is not a failure, but may mean that there could be performance gains if more ■V' memory is available.

traf/test_250/19O05. png 2 Bfefl traf/test_250/19331.png 3 traf/test_250/1914O.png 4 ■k traf/test_250/19313. png 5 P=| traf/test_250/19241. png 6 " traf/test_250/19176.png 7 ^^ traf/test_250/19079. png 8 traf/test_250/19369.png 9 1113 traf/test_250/191O6.png 10 traf/test_250/19094.png 11 traf/test_250/19O46. png 12 traf/test_250/19044.png 13

_ traf/test_250/19305.png 14

traf/test_250/19011. png 15 a traf/test_250/19250.png 16 traf/test_250/19207.png 17 |. traf/test_250/19279. png 18

Ш traf/test_250/19278.png 19 traf/test_250/19264.png 20

_ traf/test_250/19216.png 21

^Aj traf/test_250/19343. png 22 traf/test_250/19013.png 23 traf/test_250/19102. png 24 traf/test_250/19003. png 25 R^H traf/test_250/19200.png 26 L^H traf/test_250/19089. png 27 traf/test_250/19165. png 28

B traf/test_250/19023.png 29 <traf/test_250/19085.png 30 traf/test_250/19301.png 31 traf/test_250/19347.png 32 traf/test_250/19192. png 33 ^^^ traf/test_250/19290.png 34 ^^^ traf/test_250/19109. png 35 ■ r. traf/test_250/19068. png 36

Рисунок 11 - начало поступления кадров для анализа системой

root(ffiergosum-DS: -/Documents/Tensor

H traf/test_250/19338.png 362 /J) traf/test_250/19175.png 363 t raf/test_250/19071.png 364 traf/test_256/19337.png 365 traf/test_25O/19160.png 366 traf/test_25O/19035.png 367 traf/test_250/19172.png 368

H traf/test_250/19273.png 369 traf/test_250/19344.png 376 BfcdB traf/test_250/19346.png 371 traf/test_250/19113. png 372 t raf/test_250/19359. png 373 /usr/local/lib/python3.5/dist-packa from version pre-0.18 when using v e at your own risk.

UserUarning) IIL3 36S

13 19:45 ф

I [ 15. 21. 14. 10. 20. 38. 15. 23. 11. 4. 17. 34. 18. 10. 3.

21. 17. 18. 27.

38. 41.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

10. 37. 23.

16. 42. 20. 11.

26. 12. 35. 19. 20. 22.

P| 25. 40.

41. 37. 29.

13. 15. 12. 29.

4. 3. 23. 20. 29. 25. 14. 23. 35. 41. 32. 8. 0. 28. 16. 20. 39. 26. 24. 29. 25. 33. 13. 10. 2. 11. 8. 7. 21. 37. 12. 29. 33. 25. 15. 33. 14. 29. 27.

29. 38. 15. 35. 36. 40.

15. 16. 14. 28. 13.

39. 31. 29. 37. 42. 12. 37. 26. 12. 23.

35. 35. 25. 33. 10. 18. 24. 30.

6. 42. 3. 12. 39. 20. 39. 4. 32. 29. 35. 23. 38. 21. 26. 9.

12. 16. 12.

41. 15. 15.

32. 24. 26. 23. 35. 20. 37. 18. 11. 35. 27. 5.

0. 20. 42. 38. 24. 17. 16. 11.

6. 41. 19. 21. 34. 15. 37. 26. 13. 13.

37. 22. 31.

24. 10. 25.

10. 20. 30. 28. 24. 27. 25.

34. 31. 29.

32. 31. 29.

31. 20. 33. 25. 36. 41. 16. 27. 14. 41. 18. 41.

28. 15. 36.

25. 30. 31.

27. 28. 38. 13. 11. 41. 2. 26. 41. 12. 2. 28. 12. 38. 34. 39. 16. 14.

37. 1. 16. 38. 35. 32. 13. 13. 10. 36. 19. 28. 6. 3. 36.

30. 2. 5. 20. 15. 33. 26. 16. 36. 26. 10. 13. 15. 25. 24.

25. 42. 25. 25. 37. 11. 10. 37. 10. 25. 0. 33. 4.] ■oot@ergosun-DS:-/Docunents/Tensor# |

Рисунок 12 — Окончание поступления кадров. Вывод в виде соответствия каждого

изображения одному из 43 классов.

Таким образом, разработана структура системы распознавания дорожных знаков с применением передовых технологий в области распознавания изображений. Исследована предметная область, порядок проведения и технология сбора информации экзамена в ГИБДД. Проведён анализ существующих систем распознавания дорожных знаков.

Реализовано обучение нейросетевого классификатора с помощью собранных данных. Итогом выполнения всех поставленных задач является обученная модель, предназначенная для распознавания дорожных знаков в условиях экзамена ГИБДД.

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

Литература:

1. Административный регламент Министерства внутренних дел Российской Федерации по предоставлению государственной услуги по проведению экзаменов на право управления транспортными средствами и выдаче водительских удостоверений Зарегистрировано в Минюсте России 21 марта 2016 г. N 41477.

2. Приложение N 1 к Правилам проведения экзаменов на право управления транспортными средствами и выдачи водительских удостоверений.

3. Автомобили Opel обретают зрение: видеокамера Opel Eye читает дорожные знаки, повышая безопасность движения. [Электронный ресурс]. - Режим доступа: http://www. drive.ru/opel/comnews/2008/06/23/1451002.html.

4. Распознавание дорожных знаков // Recog.ru - Распознавание образов для программистов [Электронныйресурс]. - Режим доступа: http://recog.ru/blog/applied/63.html.

5. Bradski G., Kaehler A. Learning OpenCV. — Sebastopol: O'Reilly, 2008.— 555 p.

6. Круглов В.В, Борисов В.В. Искусственные нейронные сети. Теория и практика. Изд. 2-е, стереотип. - М.: Горячая линия - Телеком, 2010. - 382 с.

7. Барский А. Нейронные сети. - М., 2012.

8. Никонов В.В. Использование нейросетевых технологий для определения количественного состава вредных веществ в воздушном бассейне атмосферы по данным ик-спектрометрии // Экологические системы и приборы. 2010. № 5. с. 16-19.

9. Никонов В.В. Решение задачи прогнозирования на основе аппарата искусственных нейронных сетей // Научные труды SWorld. 2007. Т. 2. № 1. С. 7-10.

i Надоели баннеры? Вы всегда можете отключить рекламу.