В связи с быстрым развитием беспилотной автомобильной промышленности многие автомобильные и IT-компании выделяют большие средства на поиск новых эффективных решений. Одной из ключевых технологий, используемых в беспилотных автомобилях (БПА), является технология распознавания дорожного трафика и позиционирования транспортного средства в пространстве, состоящая из алгоритма SLAM и технологий обнаружения и распознавания объектов. SLAM используется в мобильных автономных средствах для построения карты в неизвестном пространстве или для обновления карты в заранее известном пространстве с одновременным контролем текущего местоположения и пройденного пути [1]. Однако использование только одного SLAM неэффективно, так как дорожное движение регулируется указателями, дорожными знаками и светофорами. Данную проблему решают программно-аппаратные средства детектирования объектов.
Стандартом в области распознавания систем контроля за дорожным трафиком стала архитектура YOLOv1 [2], которая на момент своего появления была самым перспективным решением и характеризуется довольно высокой скоростью и точностью детектирования. Помимо этого, данная архитектура хорошо распознает небольшие объекты, что очень важно.
Успешность архитектуры дала толчок к ее развитию, что привело к появлению новых вер- сий, учитывающих проблемы предшественников и реализующих новые решения. Использование первой версии архитектуры обусловлено тем, что переводить систему на новые архитектурные решения невыгодно.
Анализ рынка решений для детектирования объектов показал, что открытых систем в наличии нет, все они – частная собственность компаний-разработчиков БПА и крупнейших производителей автомобилей. Исключением являются патенты компании Tesla, которая открыла их для использования [3]. В связи с этим разрабатываемая система будет базироваться на самой новой версии алгоритма YOLOv3, в том числе быстро и точно распознавать системы контроля за дорожным трафиком.
Усовершенствованная версия YOLOv3 включает в себя вариации 320, 416 и 608, что соответствует размеру изображения, к которому оно будет приведено перед отправкой на вход нейросети, по высоте и ширине. YOLOv3 состоит из 106 сверточных слоев, графически представленных на рисунке 1. Изображение на входе пропускается через модифицированную архитектуру GoogLeNet [4], и после каждого сверточного слоя происходит процесс батч- нормализации [5]. На выходе были убраны два полносвязных слоя, что позволило отказаться от использования метода выбывания, предназначенного для предотвращения переобучения в процессе обучения сети, но имеются три слоя для определения изображения разных размеров и перед последним слоем подвыборки карты признаков объединяются с картами признаков выходного слоя [6].
Основным отличием от других сверточных нейронных сетей (СНС) является применение сети ко всему изображению сразу, а не несколько раз к разным регионам. Архитектура YOLO формирует сетку по изображению и предсказывает положение bounding boxes (bbox) [7], а также вероятность ячейки содержать нужное изображение. Достигается это с помощью определения границ методом среднего K, который, в свою очередь, использует базовые значения bbox для каждого класса, и умножением вероятности ячейки на вероятность каждого класса, что в итоге и показывает вероятность содержания в области объекта. Помимо этого, при любом значении границ bbox центральной точкой будет центр класси- фицируемого объекта.
YOLOv3-tiny представляет собой упрощенную архитектуру, предназначенную для ра- боты на маломощных устройствах и небольших датасетах. В ней количество сверточных слоев уменьшено со 106 до 16 и отсутствует объединение пар признаков. При этом существенно повышается производительность, но сильно теряется точность.
Точность определения по методике mAP составляет 51,5 для датасета COCO (Common Objects in Context) при мощности в 38,97 ГФлопс для архитектуры YOLOv3-320 и 33,1 при мощности 5,56 ГФлопс для архитектуры tiny, что является лучшим результатом в соотношении точность–производительность, делая вариант архитектуры 320 лучшим из доступных вариаций архитектуры YOLOv3 [8]. Частота кадров при таком соотношении для YOLOv3 составляет 35, а для tiny – 220. Данные значения показывают сильный разрыв в значениях у архитектур v3 в отличие от второй версии, где различия в точности и скорости были значительно меньше.
YOLOv3 является ресурсоемкой архитектурой. Один из ключевых моментов, который на это сильно влияет, – наличие батч-оптимизации. Так как данная операция выполняется перед каждым сверточным слоем и сама по себе является довольно ресурсоемкой и энергозатратной, общее потребление ресурсов системой компьютерного зрения сильно возрастает. Учитывая ограниченность доступных мощностей, отказ от использования оптимизации существенным образов увеличит скорость определения.
Наличие в YOLOv3 модифицированной GoogLeNet-архитектуры дает возможность использовать хорошо показавшие себя Inception-модули, которые позволяют увеличить производительность без потери скорости и точности. В работе [9] отмечается, что общее увеличение количества сверточных слоев не способствует увеличению точности. Для решения этой задачи была предложена архитектура ResNet, характеризующаяся передачей данных со входа слоя на следующий и через два слоя. Данная операция позволяет уменьшить количество слоев, при этом не потеряв точности, а в некоторых ситуациях даже увеличив ее. В этой же работе рассматриваются различные комбинации модулей (например, совмещение Inception-модулей и архитектуры ResNet), которые позволяют сократить количество вычислений и при этом сохранить точность детектирования. На основе результатов данных исследований было принято решение модифицировать архитектуру YOLOv3-tiny с целью получения ин- формации о перспективности ее использования в задачах компьютерного зрения. Для этого количество карт признаков для пятисверточного модуля было увеличено в два раза – со 128 до 256, а во всех остальных слоях свертки уменьшено. Это обусловлено использованием в ResNetInception на выходе 256 карт. Интеграция данных модулей была отражена в названии полученной модифицированной архитектуры – YOLOv3-tiny-ResNetInception.
Для увеличения производительности YOLOv3 хорошим решением является использование архитектуры XNOR-net, предложенной в статье [10]. Ее особенность заключается в аппроксимации конволюционных вычислений с использованием в основном двоичных операций. Графическое представление XNOR-net дано на рисунке 2.
Для проверки эффективности оригинальных и модифицированных архитектур YOLO была использована реализация фреймворка darknet с поддержкой архитектуры XNOR-net. Во фреймворке уже реализованы некоторые модели с использованием XNOR, однако данные по их скорости и точности отсутствуют. Поэтому было принято решение провести тестирование архитектуры YOLOv3-XNOR.
Для обучения и тестирования выбран датасет VOC2012. В тест вошли и оригинальные архитектуры, так как VOC содержит большее количество дорожных знаков не в самом лучшем разрешении, что дает более близкий к реальным условиям результат. Тестирование на стенде оригинальных архитектур обусловлено необходимостью получения объективных данных при выполнении моделирования на вы- числительном устройстве, которое используется и для тестирования модифицированных версий.
Целью теста являлось получение результатов по точности, времени детектирования объектов и сложности аппаратной реализации архитектур (см. таблицу). Использован следующий стенд: ЦП – QuadCore AMD Ryzen 5 1500X, 3 600 MHz (36´100); ОЗУ – 12 Гб; ГПУ – GeForce GTX 1060 6 GB; ОС – Microsoft Windows 10 Home.
Результаты тестирования
Test results
Архитектура
|
Среднее время выполнения, мс
|
Число операций, ГФлопс
|
mAP, %
|
YOLOv3-320
|
25,148±0,5
|
36,04±0,7
|
78,5±1
|
YOLOv3-tiny
|
11,033±0,3
|
8,01±0,4
|
52,8±2
|
YOLOv3-XNOR
|
21,003±0,5
|
29,46±0,3
|
78,7±1
|
YOLOv3-tiny-ResNetInception
|
7,459±0,2
|
6,72±0,1
|
50,9±3
|
Среднее время выполнения определялось временем, которое затрачивала сеть на детектирование объектов одного изображения из тестового датасета, состоящего из 2 000 изображений. Число операций отображает количество операций умножения, сравнения, активации, сложения и деления за единицу времени, которые выполняла сеть. Для оценки точности использовался метод с параметром mean Average Precision (mAP), реализованный в VOC2012. Данный параметр является средним значением от Average Precision (AP) для каждого класса из обучающей выборки. AP рассчитывается по формуле
где P – Precision; r – Recall; TP – True Positive (правильно распознанный объект); FP – False Positive (неправильно распознанный объект); FN – False Negative (ложное срабатывание детектора на фоне).
Результаты тестирования наглядно демонстрируют слабые и сильные стороны архитектур. Так, YOLOv3 и YOLOv3-XNOR показывают хорошие результаты точности в детектировании объектов, но при этом обе остаются такими же требовательными к вычислительным мощностям. Тем не менее, модифицированная архитектура получила прирост в скорости. В свою очередь, YOLOv3-tiny и YOLOv3-tiny-ResNetInception показывают высокую скорость работы, но имеют невысокую точность. Модифицированная архитектура получила прирост в скорости, но при этом потеряла в точности. Такая потеря обусловлена использу- емым датасетом, который содержит больше мелких объектов, и проблемой в детектирова- нии таких объектов tiny-архитектурой.
Решить проблему со скоростью вычислений могут современные нейронные процессоры. Они являются специализированным классом микропроцессоров и сопроцессоров (часто специализированной интегральной схемой), используемых для аппаратного ускорения работы алгоритмов искусственных нейронных сетей, компьютерного зрения, распознавания по голосу, машинного обучения и других методов искусственного интеллекта [11]. Проблема с точностью у архитектуры tiny остается пока нерешенной. Использовать ее в беспилотном автомобиле нельзя, так как она плохо распознает небольшие объекты и имеет низкую точность, что может привести к аварийной ситуации или к неправильному построению маршрута. Tiny-архитектуры преимущественно используются на устройствах с низкой вычислительной мощностью, в задачах, не сопряженных с риском для человеческой жизни.
Заключение
Результаты тестирования оригинальных и модифицированных архитектур YOLO показали, что вариация YOLOv3 с архитектурой XNOR-net является самой перспективной и наиболее подходящей к задачам компьютерного зрения в БПА. Архитектура YOLOv3-XNOR продемонстрировала наибольшую точность, к тому же имеет более высокую скорость работы по сравнению с оригинальной YOLOv3. YOLOv3-tiny и модифицированная архитектура с использованием Inceprion и ResNet-модулей показали средние значения точности и не могут быть использованы в БПА из-за риска для жизни пассажиров и водителя.
Дальнейшее развитие БПА и их популяризация дадут необходимый толчок для удешевления и развития нейронных процессоров, в том числе для решения проблем, связанных с энергообеспечением систем компьютерного зрения.
Для разработки системы компьютерного зрения для БПА было принято решение использовать XNOR-net как наиболее точную и в долгосрочной перспективе самую оптимальную архитектуру.
Литература
1. RoboCraft. SLAM. URL: http://robocraft.ru/blog/technology/724.html (дата обращения: 29.04.2020).
2. Review: YOLOv1 – You Only Look Once (Object Detection). URL: https://towardsdatascience.com/ yolov1-you-only-look-once-object-detection-e1f3ffec8a89 (дата обращения: 29.04.2020).
3. Tesla’s Free-to-Use Patents are All about Sustainability and Strength. URL: https://thedriven.io/2019/ 02/04/tesla-patents-free-to-use-sustainable-strength/ (дата обращения: 8.05.2020).
4. GoogleNet. URL: https://leonardoaraujosantos.gitbooks.io/artificial-inteligence/content/googlenet. html?q= (дата обращения: 01.05.2020).
5. Batch-normalization. URL: http://neerc.ifmo.ru/wiki/index.php?title=Batch-normalization (дата обращения: 02.05.2020).
6. Redmon J., Farhadi A. YOLOv3: An Incremental Improvement. 2018. URL: https://arxiv.org/abs/1804. 02767 (дата обращения: 10.05.2020).
7. Convex Hull, (Minimum) Bounding Box, and Minimum Enclosing Circle. URL: http://dwoll.de/ rexrepos/posts/diagBounding.html (дата обращения: 02.05.2020).
8. YOLO: Real-Time Object Detection. URL: https://pjreddie.com/darknet/yolo/ (дата обращения: 3.05.2020).
9. Szegedy C., Loffe S., Vanhoucke V., Alemi A. Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning. 2016. URL: https://arxiv.org/abs/1602.07261v2 (дата обращения: 10.05.2020).
10. Chowdhury A.P., Kulkarni P., Bojnordi M.N. MB-CNN: Memristive binary convolutional neural networks for embedded mobile devices. Journal of Low Power Electronics and Applications, 2018, no. 8, p. 38. DOI: 10.3390/JLPEA8040038.
11. Neural Processing Unit. URL: https://www.pcmag.com/encyclopedia/term/neural-processing-unit (дата обращения: 3.05.2020).
References
- RoboCraft. SLAM. Available at: http://robocraft.ru/blog/technology/724.html (accessed April 29, 2020).
- Review: YOLOv1 – You Only Look Once (Object Detection). Available at: https://towardsdatascience.
com/yolov1-you-only-look-once-object-detection-e1f3ffec8a89 (accessed April 29, 2020).
- Tesla’s Free-to-Use Patents are All about Sustainability – and Strength. Available at: https://thedriven.
io/2019/02/04/tesla-patents-free-to-use-sustainable-strength/ (accessed May 08, 2020).
- GoogleNet. Available at: https://leonardoaraujosantos.gitbooks.io/artificial-inteligence/content/googlenet.html?q= (accessed May 01, 2020).
- Batch-normalization. Available at: http://neerc.ifmo.ru/wiki/index.php?title=Batch-normalization (accessed May 02, 2020).
- Redmon J., Farhadi A. YOLOv3: An Incremental Improvement. 2018. Available at: https://arxiv.org/
abs/1804.02767 (accessed May 10, 2020).
- Convex Hull, (Minimum) Bounding Box, and Minimum Enclosing Circle. Available at: http://dwoll.de/
rexrepos/posts/diagBounding.html (accessed May 02, 2020).
- YOLO: Real-Time Object Detection. Available at: https://pjreddie.com/darknet/yolo/ (accessed May 03, 2020).
- Szegedy C., Loffe S., Vanhoucke V., Alemi A. Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning. 2016. Available at: https://arxiv.org/abs/1602.07261v2 (accessed May 10, 2020).
- Chowdhury A.P., Kulkarni P., Bojnordi M.N. MB-CNN: Memristive binary convolutional neural networks for embedded mobile devices. Journal of Low Power Electronics and Applications, 2018, no. 8,
p. 38. DOI: 10.3390/JLPEA8040038.
- Neural Processing Unit. Available at: https://www.pcmag.com/encyclopedia/term/neural-processing-unit (accessed May 03, 2020).