Если вы выполняете проект по обнаружению объектов, высока вероятность того, что вы выберете одну из многих моделей YOLO. Учитывая количество моделей обнаружения объектов YOLO, сделать выбор в пользу лучшей из них непросто.
Вы можете обнаружить, что размышляете над:
Какую модель YOLO выбрать для наилучшего FPS?
Как насчет скорости вывода на CPU и GPU?
Какой графический процессор выбрать?
Крошечная, маленькая, средняя или большая модель?
Какая модель YOLO является наиболее точной?
Эти вопросы становятся еще более актуальными при создании реальных приложений.
Наша основная цель при написании этой статьи - ответить на вышеуказанные вопросы, выполнив тщательное сравнение производительности различных моделей обнаружения объектов YOLO.Это руководство даст вам полное и всестороннее представление о том, какую модель стоит использовать в той или иной задаче, с точки зрения ее сильных сторон, недостатков и многого другого.
Для проведения сравнительного анализа мы выбираем семейства моделей YOLOv5, YOLOv6 и YOLOv7. Мы выбираем эти модели, потому что это новейшие и одни из лучших моделей YOLO. Другие сопоставимые модели YOLOX и YOLOR, мы планируем добавить их к этому сравнению, если позволит время.
Критерии оценки производительности будут основываться на 3 ключевых моментах:
Точность моделей с точки зрения средней средней точности (карта).
Скорость вывода в кадрах в секунду (FPS).
Тип используемого графического процессора: игровой или искусственный интеллект. Графические процессоры GTX 1080 Ti, RTX 4090, Tesla V100 и Tesla P100.
Наряду с вышесказанным, мы также раскроем, как влияет FPS различных моделей YOLO при использовании игрового графического процессора или графического процессора искусственного интеллекта для вывода.
Мы дополнительно предоставим вам ответы на наиболее часто задаваемые вопросы о моделях YOLO:
Какая модель YOLO самая быстрая на процессоре?
Какая модель YOLO самая быстрая на GPU?
Почему мы сталкиваемся со снижением FPS с крошечными / наномоделями на некоторых графических процессорах?
Какая модель YOLO является наиболее точной?
Какие модели являются одними из лучших для точной настройки каждой из них, YOLOv5, YOLO6 и YOLOv7?
Какие модели лучше всего подходят для обнаружения небольших объектов?
Сколько видеопамяти GPU мне нужно для обучения моделей YOLO?
Мы настоятельно рекомендуем эту статью тем, кто пытается создать приложение с использованием моделей обнаружения объектов YOLO и стремится получить наилучшие результаты.
Содержание
Сравнение производительности YOLO моделей в секунду на графическом процессоре NVIDIA RTX 4090
Сравнение производительности моделей YOLO на NVIDIA Tesla P100, V100, GTX 1080 Ti и RTX 4090
Вывод YOLOv5 со скоростью более 230 кадров в секунду на NVIDIA RTX 4090
Часто задаваемые вопросы о сравнении производительности моделей обнаружения объектов YOLO
Сравнение производительности YOLO моделей в секунду на CPU
Для тестов производительности процессора мы используем компьютер с процессором i7 6850K и 32 ГБ оперативной памяти.
Ниже приведена гистограмма, показывающая частоту кадров в секунду каждой модели из YOLOv5, YOLOv6 и YOLOv7 в отсортированном виде.
Из графика ясно видно, что YOLOv5 Nano и YOLOv5 Nano P6 являются одними из самых быстрых моделей на CPU.
При скорости чуть выше 30 кадров в секунду они могут работать со скоростью, превышающей скорость реального времени.
Если вам нужно больше 20 кадров в секунду, вы можете выбрать любую из четырех моделей – YOLOv6 Tiny, YOLOv6 Nano, YOLOv5 Nano P6 или YOLOv5 Nano.
Вы можете заметить, что преодолеть барьер в 30 кадров в секунду сложно даже на процессоре i7 6-го поколения. Чтобы выжать реальную производительность из моделей YOLO, нам нужно использовать графический процессор.
Сравнение производительности YOLO моделей в секунду на графическом процессоре NVIDIA RTX 4090
Для вывода графического процессора мы используем машину с новейшим флагманским графическим процессором с поддержкой CUDA от NVIDIA, RTX 4090. Он оснащен 16-ядерным процессором AMD Ryzen 9 7950X.
Результаты FPS на изображениях с разрешением 640
На следующем графике показаны результаты FPS для всех моделей YOLOv5, YOLOv6 и YOLOv7 на изображениях с разрешением 640.
Результаты просто поразительны – модель YOLOv5 Nano работает со скоростью 230 кадров в секунду! Очень интересно, что даже самые большие модели из каждого семейства YOLO не опускаются ниже 30 кадров в секунду. Все модели работают в режиме реального времени.
Результаты FPS на изображениях с разрешением 1280
Имейте в виду, что модели YOLOv5 P6 и YOLOv7-W6, E6, D6 и E6E обучаются на 1280 изображениях. Для достижения наилучших результатов обнаружения мы должны выполнять вывод на изображениях с разрешением 1280.
На следующем графике показано количество кадров в секунду для изображений с разрешением 1280, использующих эти модели.
Мы можем видеть резкое падение кадров в секунду при переходе от меньших к большим моделям в YOLOv5. Для YOLOv7 самые большие модели, D6 и E6E, работают со скоростью менее 30 кадров в секунду. Приведенный выше график не включает модели YOLOv6, поскольку ни одна из моделей YOLOv6 не была обучена на изображениях с разрешением 1280.
Ниже приведены графики сравнения производительности для моделей YOLO, которые показывают графики FPS для графических процессоров P100, V100 и GTX 1080 Ti.
Давайте перечислим некоторые наблюдения из приведенных выше графиков:
В целом графические процессоры с искусственным интеллектом, такие как TESLA V100 и P100, стабильно работают в масштабах модели. Это означает, что они будут выдавать больше кадров в секунду на меньших моделях и меньше кадров в секунду на больших.
Это не всегда так с графическим процессором GTX 1080 Ti. Мы можем заметить, что YOLOv5n работает немного медленнее, чем YOLOv5s.
Даже тогда, в некоторых случаях с P100 (это более старый графический процессор AI), мы можем видеть, что меньшие модели работают медленнее по сравнению с более крупными моделями. Например, YOLOv6-Tiny работает со скоростью 77 кадров в секунду, в то время как YOLOv6-Nano, который меньше, чем Tiny, работает со скоростью 71 кадр в секунду.
Сравнение производительности моделей YOLO на NVIDIA Tesla P100, V100, GTX 1080 Ti и RTX 4090
Какие самые быстрые модели из каждого семейства YOLO на GPU?
В приведенных выше разделах мы увидели, как модели YOLO работают на конкретной архитектуре CPU и GPU.
Давайте продолжим и проведем сравнение моделей обнаружения объектов YOLO на разных графических процессорах. Наша цель - найти самую быструю модель после тестирования их на следующих графических процессорах NVIDIA:
TESLA P100 GPU
TESLA V100 GPU
GTX 1080Ti GPU
RTX 4090 GPU
Из приведенного выше графика мы можем наблюдать следующее:
На GPU RTX 4090 и TESLA P100 YOLOv5 Nano оказывается самым быстрым.
YOLOv7 Tiny обеспечивает максимальную пропускную способность на GTX 1080 Ti и TESLA V100.
Модели YOLOv6 Nano и Tiny не работают с тем же FPS, что и модели YOLOv5 и YOLOv7, хотя они не очень медленные.
Какие самые быстрые модели YOLO на процессоре i7 6850K?
На обычных потребительских процессорах мы можем ожидать, что модели YOLOv5 Nano (либо P5, либо P6) будут самыми быстрыми.
Они выдают частоту кадров в секунду в реальном времени (более 30), в то время как YOLOv7 Tiny работает со скоростью около 20 кадров в секунду.
Сравнение производительности моделей YOLO для mAP и FPS
В этом разделе мы сравниваем разные модели на CPU и разных графических процессорах в соответствии с их картой (средняя средняя точность) и FPS.
На следующих графиках все результаты mAP представлены в соотношении 0.50: 0.95 IoU (пересечение над объединением).
Давайте начнем с рассмотрения графика сравнения mAP и FPS для пропускной способности процессора. Поскольку процессоры не предназначены для больших моделей, мы сравниваем модели YOLOv5 Nano (P5 и P6), YOLOv6 Nano и YOLOv7 Tiny.
Сравнение производительности моделей YOLO для mAP и FPS
Примечание: значения карты для YOLOv7 Tiny и YOLOv5 Nano P6 были пересчитаны для изображений с разрешением 640.
Теперь давайте продолжим, сравнив mAP и FPS на графических процессорах.
Примечание: В некоторых случаях при проведении экспериментов с графическими процессорами GTX (игровыми графическими процессорами от NVIDIA) мы можем видеть аномалии в FPS самых маленьких и вторых по величине моделей в семействе YOLO. Мы предполагаем, что это происходит из-за типа реализации слоя.Самые маленькие модели в семействах YOLO предназначены для периферийных устройств и, как правило, не используют те же слои, что и большие модели. Следовательно, они дают немного более низкий FPS по сравнению со второй самой маленькой моделью в этом конкретном семействе. Такие проблемы решаются при использовании более новых графических процессоров (например, серии RTX) или графических процессоров с искусственным интеллектом (например, серии TESLA V100).Некоторые из старых графических процессоров AI, таких как TESLA P100, также демонстрируют эту аномалию.
На следующих графиках показаны модели YOLOv5, YOLOv6 и YOLOv7, предварительно обученные на изображениях с разрешением 640. Вывод также выполнялся на видео с кадрами, измененными до разрешения 640.
Мы исключаем модель YOLOv7-Tiny из экспериментов с графическим процессором, поскольку она была предварительно обучена на изображениях с разрешением 416. Кроме того, мы уже видели, как крошечная модель YOLOv7 работает с изображениями с разрешением 640 при запуске на процессоре.
Следующие эксперименты проводились на графическом процессоре NVIDIA RTX 4090.
Интересно видеть, что даже средние и большие модели из семейства YOLOv5 могут работать со скоростью более 100 кадров в секунду на RTX 4090.
На следующем графике показано сравнение карты и кадров в секунду предварительно обученных моделей с разрешением 1280. Вывод проводился на кадрах с разрешением 1280.
Модель YOLOv5m P6 работает со скоростью более 100 кадров в секунду. Однако у модели YOLOv5l P6 частота кадров падает ниже 100 кадров в секунду.
На остальных следующих графиках показано сравнение карты и кадров в секунду предварительно обученных моделей с разрешением 640 на графических процессорах TESLA P100, TESLA V100 и GTX 1080 Ti.
Ключевым замечанием здесь является то, что частота кадров в секунду моделей YOLOv6, по-видимому, составляет от 150 до 170 кадров в секунду. Это наблюдается с новейшими графическими процессорами RTX 4090 и V100. Однако FPS моделей YOLOv5, похоже, не отображает этот эффект.
Из приведенных выше графиков видно, что модель YOLOv5 Nano P5 способна работать со скоростью более 230 кадров в секунду на графическом процессоре NVIDIA RTX 4090.
Вывод YOLOv5 со скоростью более 230 кадров в секунду на NVIDIA RTX 4090
NVIDIA RTX 4090 - новейший флагманский игровой графический процессор. Но его также можно использовать для искусственного интеллекта и глубокого обучения так же эффективно, как было показано выше.
Мы использовали графический процессор RTX 4090 для выполнения вывода на модели YOLOv5 Nano для проверки кадров в секунду.
Угадайте, что? Графический процессор RTX 4090 может легко выдавать более 230 кадров в секунду.
Следующее видео показывает пример такого результата.
Часто задаваемые вопросы о сравнении производительности моделей обнаружения объектов YOLO
Вот несколько часто задаваемых вопросов, которые задают большинство новичков, начинающих работу с YOLO object detection.
Какая модель YOLO самая быстрая на процессоре?
Хотя цифры варьируются в зависимости от архитектуры процессора, мы можем найти аналогичную тенденцию для скорости. Чем меньше модель, тем быстрее она работает на процессоре. Из наших экспериментов мы обнаружили, что модели YOLOv5 Nano и Nano P6 являются самыми быстрыми. Они могут работать со скоростью более 30 кадров в секунду даже на процессоре i7 старшего поколения.
Какая модель YOLO самая быстрая на GPU?
Ответить на этот вопрос немного сложно. Частота кадров в секунду будет варьироваться в зависимости от архитектуры графического процессора (GTX / RTX Gaming или TESLA AI). Даже более старые модели графических процессоров искусственного интеллекта на базе TESLA, такие как P100, могут показывать аномалии в FPS.
Если вы рассчитываете на скорость вывода более 200 кадров в секунду, то RTX 4090 GPU в паре с моделями YOLO Nano / Tiny / Small - это правильный выбор.
Почему мы сталкиваемся со снижением FPS с Tiny/Nano на некоторых графических процессорах?
Мы сталкиваемся с этим в основном на старых графических процессорах, таких как TESLA P100 или GTX 1080 Ti. Скорее всего, это связано с тем, что обработка реализаций слоев недостаточно оптимизирована в этих графических процессорах для моделей Nano или Tiny. Мы также видим, что эта проблема решается в новых графических процессорах RTX и TESLA V100.
Какая модель YOLO является наиболее точной?
Сложно выделить одну модель YOLO из всех. Но можно с уверенностью сказать, что самые большие модели из каждого семейства (v5x, v6l, v7x и v7d6 / e6e) работают довольно хорошо. Если ваше приложение требует использования любого из классов COCO, то использование одной из упомянутых предварительно обученных моделей даст вам очень точные прогнозы.
Какие модели лучше всего настраивать по сравнению с YOLOv5, YOLO6 и YOLOv7?
Использование огромных моделей, таких как YOLOv5x или x6, должно быть последним средством. В семействе YOLOv5 точная настройка YOLOv5m с разрешением 640 даст хорошие результаты. Он способен работать со скоростью более 80 кадров в секунду даже на более старых графических процессорах, таких как TESLA P100. Все это время все еще дает карту 45,4.
YOLOv6m также довольно хорошая модель с 49,5 mAP и почти 50 FPS на графическом процессоре TESLA P100. Пользовательское обучение набору данных модели YOLOv6 Medium должно дать одни из лучших результатов.
Аналогичным образом, точная настройка YOLOv7 обеспечивает хороший баланс между FPS и mAP. Они могут работать со скоростью 56 кадров в секунду, выдавая более 51 карты.
Учитывая предварительно подготовленную карту COCO вышеуказанных моделей, все они хороши для точной настройки при разрешении изображения 640.
Какие модели лучше всего подходят для обнаружения небольших объектов?
Если вы работаете с обнаружением небольших объектов, то хорошей идеей будет начать с YOLOv5m6 с разрешением 1280 .
Аналогично, изображения YOLOv6l с разрешением 1280 или YOLOv7-W6 также довольно хороши.
Вы также можете поэкспериментировать с обучением с несколькими разрешениями, что в большинстве случаев помогает при обнаружении небольших объектов.
Сколько видеопамяти GPU мне нужно для обучения моделей YOLO?
Здесь необходимо принять во внимание несколько моментов. Предположим, вы обучаете модель размером с YOLOvs, или YOLOv5m, или даже YOLOv5l. Графического процессора с 10 ГБ видеопамяти должно быть достаточно при разрешении входного изображения 640. Тот же подход может быть применен к YOLOv6m, YOLOv7 и YOLOv7x. Для этого нужно немного поиграть с размером пакета, но репозитории YOLO достаточно хорошо справляются с большинством размеров пакетов.
В случае, если вы хотите обучить любую из моделей YOLOv5 P6, или YOLOv6l, или YOLOv7-W6 до YOLOv7-D6, вам следует рассмотреть возможность использования видеопамяти объемом не менее 16 ГБ. Кроме того, при рассмотрении возможности обучения с большими пакетами, такими как 32 или 64, лучше использовать графические процессоры с видеопамятью объемом 24 ГБ. Бывают случаи, когда вы можете захотеть провести обучение с несколькими разрешениями. В таких случаях использование распределенного обучения с несколькими графическими процессорами (по крайней мере, 2) работает лучше всего. Все вышеупомянутые репозитории YOLO поддерживают распределенное обучение.
В заключение
Во время нашего обширного тестирования и проведения сравнительного анализа моделей обнаружения объектов YOLO:.
Мы специально сосредоточились на моделях YOLOv5, YOLOv6 и YOLOv7 и проверили, как они сочетаются друг с другом с точки зрения FPS и точности.
Мы также провели эксперименты с графическими процессорами NVIDIA серий GTX, RTX и TESLA, чтобы подтвердить наши результаты.
Поздравляю с тем, что вы дошли до этого. Если бы вы могли следовать за ним легко или даже с чуть большим усилием, хвала вам. Если вы проводите собственные эксперименты на другом оборудовании, пожалуйста, поделитесь с нами своими выводами в разделе комментариев. Мы будем рады получить от вас весточку!