- PVSM.RU - https://www.pvsm.ru -
Scaled YOLO v4 является самой точной нейронной сетью (55.8% AP) на датасете Microsoft COCO среди всех опубликованных нейронных сетей на данный момент. А также является лучшей с точки зрения соотношения скорости к точности во всем диапазоне точности и скорости от 15 FPS до 1774 FPS. На данный момент это Top1 нейронная сеть для обнаружения объектов.
Scaled YOLO v4 обгоняет по точности нейронные сети:
Мы показываем, что подходы YOLO и Cross-Stage-Partial (CSP) Network являются лучшими с точки зрения, как абсолютной точности, так и соотношения точности к скорости.
График Точности (вертикальная ось) и Задержки (горизонтальная ось) на GPU Tesla V100 (Volta) при batch=1 без использования TensorRT:
Даже при меньшем разрешении сети Scaled-YOLOv4-P6 (1280x1280) 30 FPS чуть точнее и в 3.7х раза быстрее, чем EfficientDetD7 (1536x1536) 8.2 FPS. Т.е. YOLOv4 эффективнее использует разрешение сети.
Scaled YOLO v4 лежит на кривой оптимальности по Парето – какую бы другую нейронную сеть вы не взяли, всегда есть такая сеть YOLOv4, которая или точнее при той же скорости, или быстрее при той же точности, т.е. YOLOv4 является лучшей с точки зрения отношения скорости и точности.
Scaled YOLOv4 точнее и быстрее, чем нейронные сети:
Scaled YOLO v4 это серия нейронных сетей, созданная из улучшенной и отмасштабированной сети YOLOv4. Наша нейронная сеть была обучена с нуля без использования предобученных весов (Imagenet или любых других).
Рейтинг точности опубликованных нейронных сетей: paperswithcode.com/sota/object-detection-on-coco [8]:
Скорость нейронной сети YOLOv4-tiny достигает 1774 FPS на игровой видеокарте GPU RTX 2080Ti при использовании TensorRT+tkDNN (batch=4, FP16): github.com/ceccocats/tkDNN [9]
YOLOv4-tiny может исполняться в real-time со скоростью 39 FPS / 25ms Latency на JetsonNano (416x416, fp16, batch=1) tkDNN/TensorRT:
Scaled YOLOv4 намного эффективнее использует ресурсы параллельных вычислителей, таких как GPU и NPU. Например, GPU V100 (Volta) имеет производительность: 14 TFLops — 112 TFLops-TC images.nvidia.com/content/technologies/volta/pdf/tesla-volta-v100-datasheet-letter-fnl-web.pdf [10]
Если мы будем тестировать обе модели на GPU V100 с batch=1, с параметрами --hparams=mixed_precision=true и без --tensorrt=FP32, то:
Т.е. эффективность вычислительных операций на устройствах с массивными параллельными вычислениями типа GPU, используемых в YOLOv4-CSP (7.5 / 1.6) = в 4.7x раза лучше, чем эффективность операций, используемых в EfficientDetD3.
Обычно нейронные сети запускаются на CPU только в исследовательских задачах для более легкой отладки, а характеристика BFlops на данный момент имеет только академический интерес. В реальных задачах важны реальные скорость и точность, а не характеристики на бумаге. Реальная скорость YOLOv4-P6 в 3.7х раза выше, чем EfficientDetD7 на GPU V100. Поэтому почти всегда используются устройства с массовым параллелизмом GPU / NPU / TPU/ DSP с гораздо более оптимальными: скоростью, ценой и тепловыделением:
Также при использовании нейронных сетей On Web – обычно используется GPU через библиотеки WebGL, WebAssembly, WebGPU, for this case — the size of the model can matter: github.com/tensorflow/tfjs#about-this-repo [11]
Использование устройств и алгоритмов со слабым параллелизмом – это тупиковый путь развития, т.к. уменьшать размер литографии меньше размера атома кремния для увеличения частоты процессора не получится:
Решение – это вычислители с массивным параллелизмом: на одном кристалле или на нескольких кристаллах, соединенных интерпозером. Поэтому крайне важно создавать нейронные сети, которые эффективно используют вычислители с массивным параллелизмом, такие как GPU и NPU.
Улучшения в Scaled YOLOv4 по сравнению с YOLOv4:
Архитектура нейронной сети Scaled-YOLOv4 (примеры трех сетей: P5, P6, P7):
CSP-соединение очень эффективное, простое и может применятся к любым нейронным сетям. Суть заключается в том, что
Простейший пример CSP-соединения (слева обычная сеть, справа CSP-сеть):
Пример CSP-соединения в YOLOv4-CSP / P5 / P6 / P7
(слева обычная сеть, справа CSP-сеть):
В YOLOv4-tiny используются 2 CSP-соединения:
YOLOv4 применяется в различных областях и задачах:
И во многих других задачах….
Имеются реализации на различных фреймворках:
Как скомпилировать и запустить Обнаружение объектов в облаке бесплатно:
Как скомпилировать и запустить Обучение в облаке бесплатно:
Также подход YOLOv4 может использоваться в других задачах, например, при обнаружении 3D объектов:
Автор: Алексей
Источник [35]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/programmirovanie/359527
Ссылки в тексте:
[1] Научная статья: https://arxiv.org/abs/2011.08036
[2] main repository : https://github.com/WongKinYiu/ScaledYOLOv4
[3] YOLOv4-CSP: https://github.com/WongKinYiu/ScaledYOLOv4/tree/yolov4-csp
[4] YOLOv4-tiny: https://github.com/WongKinYiu/ScaledYOLOv4/tree/yolov4-tiny
[5] YOLOv4-large: https://github.com/WongKinYiu/ScaledYOLOv4/tree/yolov4-large
[6] Darknet: https://github.com/AlexeyAB/darknet
[7] Структура YOLOv4-CSP: https://netron.app/?url=https://raw.githubusercontent.com/AlexeyAB/darknet/master/cfg/yolov4-csp.cfg
[8] paperswithcode.com/sota/object-detection-on-coco: https://paperswithcode.com/sota/object-detection-on-coco
[9] github.com/ceccocats/tkDNN: https://github.com/ceccocats/tkDNN
[10] images.nvidia.com/content/technologies/volta/pdf/tesla-volta-v100-datasheet-letter-fnl-web.pdf: https://images.nvidia.com/content/technologies/volta/pdf/tesla-volta-v100-datasheet-letter-fnl-web.pdf
[11] github.com/tensorflow/tfjs#about-this-repo: https://github.com/tensorflow/tfjs#about-this-repo
[12] pytorch.org/blog/pytorch-1.6-now-includes-stochastic-weight-averaging: https://pytorch.org/blog/pytorch-1.6-now-includes-stochastic-weight-averaging/
[13] www.taiwannews.com.tw/en/news/3957400: https://www.taiwannews.com.tw/en/news/3957400
[14] youtu.be/IiU6wFmfVnk: https://youtu.be/IiU6wFmfVnk
[15] github.com/amzn/distance-assistant: https://github.com/amzn/distance-assistant
[16] aws.amazon.com/ru/blogs/machine-learning/improving-performance-for-deep-learning-based-object-detection-with-an-aws-neuron-compiled-yolov4-model-on-aws-inferentia: https://aws.amazon.com/ru/blogs/machine-learning/improving-performance-for-deep-learning-based-object-detection-with-an-aws-neuron-compiled-yolov4-model-on-aws-inferentia/
[17] github.com/BMW-InnovationLab: https://github.com/BMW-InnovationLab
[18] github.com/hunglc007/tensorflow-yolov4-tflite: https://github.com/hunglc007/tensorflow-yolov4-tflite
[19] pypi.org/project/yolov4: https://pypi.org/project/yolov4/
[20] docs.opencv.org/master/da/d9d/tutorial_dnn_yolo.html: https://docs.opencv.org/master/da/d9d/tutorial_dnn_yolo.html
[21] github.com/TNTWEN/OpenVINO-YOLOV4: https://github.com/TNTWEN/OpenVINO-YOLOV4
[22] developer.nvidia.com/blog/announcing-onnx-runtime-for-jetson: https://developer.nvidia.com/blog/announcing-onnx-runtime-for-jetson/
[23] github.com/linghu8812/tensorrt_inference/tree/master/ScaledYOLOv4: https://github.com/linghu8812/tensorrt_inference/tree/master/ScaledYOLOv4
[24] github.com/NVIDIA-AI-IOT/yolov4_deepstream: https://github.com/NVIDIA-AI-IOT/yolov4_deepstream
[25] github.com/WongKinYiu/PyTorch_YOLOv4: https://github.com/WongKinYiu/PyTorch_YOLOv4
[26] github.com/Tianxiaomo/pytorch-YOLOv4: https://github.com/Tianxiaomo/pytorch-YOLOv4
[27] github.com/VCasecnikovs/Yet-Another-YOLOv4-Pytorch: https://github.com/VCasecnikovs/Yet-Another-YOLOv4-Pytorch
[28] github.com/lutzroeder/netron: https://github.com/lutzroeder/netron
[29] colab.research.google.com/drive/12QusaaRj_lUwCGDvQNfICpa7kA7_a2dE: https://colab.research.google.com/drive/12QusaaRj_lUwCGDvQNfICpa7kA7_a2dE
[30] www.youtube.com/watch?v=mKAEGSxwOAY: https://www.youtube.com/watch?v=mKAEGSxwOAY
[31] colab.research.google.com/drive/1_GdoqCJWXsChrOiY8sZMr_zbr_fH-0Fg?usp=sharing: https://colab.research.google.com/drive/1_GdoqCJWXsChrOiY8sZMr_zbr_fH-0Fg?usp=sharing
[32] youtu.be/mmj3nxGT2YQ: https://youtu.be/mmj3nxGT2YQ
[33] github.com/maudzung/Complex-YOLOv4-Pytorch: https://github.com/maudzung/Complex-YOLOv4-Pytorch
[34] github.com/maudzung/YOLO3D-YOLOv4-PyTorch: https://github.com/maudzung/YOLO3D-YOLOv4-PyTorch
[35] Источник: https://habr.com/ru/post/531786/?utm_source=habrahabr&utm_medium=rss&utm_campaign=531786
Нажмите здесь для печати.