Разработка системы распознавания автомобилей, которая способна обнаруживать транспортные средства на фото и видеопотоке. Настройка нейронной сети и ее обучение на собранных данных. Графический интерфейс для взаимодействия пользователя с системой.
МО открывает новые возможности перед людьми и позволяет автоматизировать те сферы жизни, в которых стандартные алгоритмы не работают. Подобные транспортные средства помогают людям с ограниченными возможностями передвигаться по местности, позволяют сократить количество дорожных происшествий, снижают расходы на водителей и повышают качество жизни людей. В соответствии с материалами [1], предоставленными Всемирной организацией здравоохранения (ВОЗ), в результате ДТП каждый день в мире погибают более 3 000 человек и приблизительно 100 000 приобретают серьезные травмы. Ежегодно в ДТП от двадцати до пятидесяти миллионов человек получают травмы различной степени тяжести, а жертвами оказываются более одного миллиона человек. Более того, основной причиной смерти людей в возрасте 15-29 лет являются травмы, полученные в результате ДТП (рис.На данный момент не существует готовых открытых систем для распознавания автомобилей на видеопотоке. Большинство имеющихся в сети Интернет проектов по данному направлению представляют собой обученные нейронные сети, работающие на основе интерактивной оболочки Jupyter Notebook [2, 3] и распознающие объекты только с изображений. Один из таких проектов [4] представляет собой набор скриптов, объединенных в среде Jupyter (рис. Еще один проект [5] под названием KITTIBOX вовсе не имеет графического интерфейса и работает только с изображениями. Результаты сравнения имеющихся на настоящее время проектов для поиска автомобилей на изображениях и видеоданных сведены в таблицу 1.Для разработки классификатора была выбрана открытая библиотека машинного обучения TENSORFLOW [10, 11]. Главным достоинством TENSORFLOW является наличие широкого набора инструментов, которые ускоряют разработку нейронных сетей. Другим инструментом, используемым в работе, является программное обеспечение LABELIMG [12] (рис. Под разметкой подразумевается выделение объектов и указание их классов на снимках.Для обучения нейронной сети необходимо собрать и обработать данные, на которых нейросеть должна научиться выявлять закономерности. Для этого имеет смысл использовать кадры с видеоустройств или видеорегистраторов из автомобилей, без редактуры в графических редакторах. Кроме того, нет смысла использовать фотографии или изображения, получившиеся в результате фотографирования на камеры высокого разрешения или при рендеринге с помощью пакетов 3D моделирования.Скачанные видеофайлы сами по себе не несут никакой полезной информации, которая может быть использована для обучения нейронной сети, поэтому их необходимо покадрово разбить на изображения и пометить нужные объекты для распознавания на полученных кадрах. Для извлечения кадров из видео использовалась программа VIRTUALDUB [21] (рис. Объекты для распознавания выделялись в прямоугольные рамки, после чего указывался класс объекта. Для размеченных изображений автоматически сгенерированы XML файлы (рис. Класс Описание Количество объектов car Автомобили 821 truck Грузовые машины 108 minibus Микроавтобусы 40 bus Автобусы 29 tram Трамваи 2 crosswalk_sign Знак - пешеходный переход 112 mainroad_sign Знак - главная дорога 17 nostop_sign Знак - остановка запрещена 10 noentry_sign Знак - въезд запрещен 5 giveway_sign Знак - уступи дорогу 2 stop_sign Знак - стоп 1 noparking_sign Знак - парковка запрещена 1 noovertaking_sign Знак - обгон запрещен 1 prescriptive_sign Предписывающие знаки 30 warning_sign Предупреждающие знаки 13 prohibitory_sign Запрещающие знаки 9 traffic_light Светофоры 23 person Люди 123Перед ее обучением необходимо задать в конфигурационном файле модели (рис. После этого в командной строке задается специальная команда (рис. 12), запускающая процесс обучения (рис. 13), которая содержит пути к директории и конфигурационному файлу. При обучении выводится параметр loss, характеризующий величину ошибок на тренировочной выборке.Перед созданием основных компонентов системы было проведено обучение и сравнение различных нейронных сетей для выбора наиболее качественной модели. Всего было обучено 6 нейросетей, которые отличаются друг от друга набором обнаруживаемых классов и типом изображений, на которых происходило обучение. Тренировочная выборка могла состоять из полноцветных снимков или изображений в градациях серого. Для преобразования цветового пространства использовалась утилита IMAGEMAGICK [27, 28], которая обладает большим комплектом средств по работе с графическими файлами. Помимо самостоятельно созданных моделей для сравнения была добавлена готовая нейросеть ssd_mobilenet_v1 [29], распознающая 90 классов объектов.Помимо нейронных сетей (детекторов), описание создания и обучения которых представлено выше, модуль поддерживает использование различных классификаторов. Процесс тренировки классификатора хорошо описан в статье на Google Developers Codelabs [30]. Так же, как и в случае с детекторами, от классификаторов требуются два файла: PB-файл с моделью и PBTXT-файл с метками классов. Все нейронные сети и скрипты записываются в один список (рис.
План
Оглавление
Введение
1. Обзор существующих технических решений
2. Выбор инструментальных и программных средств
3. Этапы разработки нейронной сети
3.1 Сбор данных
3.2 Обработка данных
3.3 Обучение нейронной сети
4. Сравнение обученных нейросетей
5. Реализация системы распознавания
5.1 Модуль распознавания объектов
5.2 Пользовательский интерфейс программы
5.3 Редактор общей модели
6. Тестирование системы
Заключение
Список используемых источников
Вы можете ЗАГРУЗИТЬ и ПОВЫСИТЬ уникальность своей работы