Моделі та платформи ШІ
YOLOv9: Величезний стрибок у реальному часі виявлення об’єктів
Виявлення об’єктів пережило швидкий прогрес у останні роки завдяки алгоритмам глибокого навчання типу YOLO (You Only Look Once). Остання ітерація, YOLOv9, приносить суттєві покращення точності, ефективності та застосовності порівняно з попередніми версіями. У цьому пості ми зануримося у інновації, які роблять YOLOv9 новим стандартом для виявлення об’єктів у реальному часі.
Швидкий огляд виявлення об’єктів
Перед тим, як перейти до того, що нового у YOLOv9, давайте коротко розглянемо, як працює виявлення об’єктів. Метою виявлення об’єктів є ідентифікація та локалізація об’єктів всередині зображення, таких як автомобілі, люди чи тварини. Це ключова здатність для застосунків типу самоходних автомобілів, систем відеоспостереження та пошукових систем зображень.
Детектор приймає зображення як вхідні дані та виводить обмежувальні рамки навколо виявлених об’єктів, кожна з яких має пов’язану з нею мітку класу. Популярні набори даних типу MS COCO забезпечують тисячі позначених зображень для навчання та оцінки цих моделей.
Існують два основних підходи до виявлення об’єктів:
- Детектори з двома стадіями типу Faster R-CNN спочатку генерують пропозиції регіону, потім класифікують та уточнюють межі кожного регіону. Вони схильні бути більш точними, але повільнішими.
- Детектори з однією стадією типу YOLO застосовують модель безпосередньо над зображенням за один прохід. Вони обмінюють деяку точність на дуже швидкі часи висновку.
YOLO стала першопроходцем у підході з однією стадією. Давайте розглянемо, як вона еволюціонувала за кілька версій, щоб покращити точність та ефективність.
Огляд попередніх версій YOLO
Сім’я моделей YOLO (You Only Look Once) була на передовому краю швидкого виявлення об’єктів з моменту публікації першої версії у 2016 році. Ось короткий огляд того, як YOLO прогресувала за кілька ітерацій:
- YOLOv1 запропонувала уніфіковану модель для прогнозування обмежувальних рамок та ймовірностей класів безпосередньо з повних зображень за один прохід. Це зробило її надзвичайно швидкою порівняно з попередніми двостадійними моделями.
- YOLOv2 покращила оригінальну версію за допомогою пакетної нормалізації для кращої стабільності, якорних коробок на різних масштабах та аспектних відношеннях для виявлення об’єктів різного розміру, та інших оптимізацій.
- YOLOv3 додала новий витягувач функцій під назвою Darknet-53 з більшою кількістю шарів та зворотними зв’язками між ними, ще більше покращуючи точність.
- YOLOv4 об’єднала ідеї з інших детекторів об’єктів та моделей сегментації, щоб ще більше підвищити точність, зберігаючи при цьому швидкий висновок.
- YOLOv5 повністю переписала YOLOv4 на PyTorch та додала новий витягувач функцій під назвою CSPDarknet разом з кількома іншими покращеннями.
- YOLOv6 продовжила оптимізувати архітектуру та процес навчання, з моделями, попередньо навченими на великих зовнішніх наборах даних, щоб ще більше підвищити продуктивність.
Отже, попередні версії YOLO досягли вищої точності завдяки покращенням архітектури моделі, методів навчання та попереднього навчання. Але коли моделі стають більші та складніші, швидкість та ефективність починають страждати.
Потрібність кращої ефективності
Багато застосунків вимагають виявлення об’єктів у реальному часі на пристроях з обмеженими обчислювальними ресурсами. Коли моделі стають більшими та обчислювально інтенсивними, вони стають непрактичними для розгортання.
Наприклад, самоходний автомобіль потребує виявлення об’єктів на високих кадрових швидкостях за допомогою процесорів всередині транспортного засобу. Система відеоспостереження потребує виконання виявлення об’єктів на своєму відеопотоці всередині власної апаратури. Телефони та інші споживчі пристрої мають дуже тісні обмеження потужності та тепла.
Останні версії YOLO досягають високої точності з великою кількістю параметрів та операцій множення-додавання (FLOPs). Але це відбувається за рахунок швидкості, розміру та енергоефективності.
Наприклад, YOLOv5-L потребує понад 100 мільярдів FLOPs для обробки одного зображення розміром 1280×1280. Це занадто повільно для багатьох випадків виявлення у реальному часі. Тренд все більш великих моделей також збільшує ризик переобучення та робить його важче узагальнювати.
Отже, щоб розширити застосовність виявлення об’єктів, нам потрібно покращити ефективність – досягати кращої точності з меншою кількістю параметрів та обчислень. Давайте розглянемо техніки, використані у YOLOv9 для подолання цього виклику.
YOLOv9 – Краща точність з меншими ресурсами
Дослідники, які стояли за YOLOv9, зосередилися на покращенні ефективності для досягнення продуктивності у реальному часі на ширшому діапазоні пристроїв. Вони ввели дві ключові інновації:
- Нову архітектуру моделі під назвою General Efficient Layer Aggregation Network (GELAN), яка максимізує точність, мінімізуючи параметри та FLOPs.
- Техніку навчання під назвою Programmable Gradient Information (PGI), яка забезпечує більш надійні градієнти навчання, особливо для менших моделей.
Давайте розглянемо, як кожне з цих вдосконалень допомагає покращити ефективність.
Більш ефективна архітектура з GELAN
Сама архітектура моделі критично важлива для балансування точності проти швидкості та використання ресурсів під час висновку. Нейронна мережа потребує достатньої глибини та ширини для захоплення відповідних функцій з вхідних зображень. Але занадто багато шарів чи фільтрів веде до повільних та розбухлих моделей.
Автори спроєктували GELAN конкретно для витиснення максимальної точності з найменшої можливої архітектури.
GELAN використовує два основних будівельних блоки, укладених разом:
- Блоки агрегації ефективних шарів – ці агрегують перетворення через кілька гілок мережі для захоплення функцій багатомасштабного простору.
- Обчислювальні блоки – блоки CSPNet допомагають пропагувати інформацію через шари. Будь-який блок можна замінити на основі обчислювальних обмежень.
Балансуючи та поєднуючи ці блоки, GELAN досягає оптимальної точки між продуктивністю, параметрами та швидкістю. Та сама модульна архітектура може масштабуватися вгору чи вниз через різні розміри моделей та апаратури.
Експерименти показали, що GELAN вміщує більше продуктивності у менші моделі порівняно з попередніми архітектурами YOLO. Наприклад, GELAN-Small з 7M параметрів перевершив YOLOv7-Nano з 11M параметрів. І GELAN-Medium з 20M параметрів показав продуктивність на рівні з моделями YOLOv7 середнього розміру, які потребують 35-40M параметрів.
Отже, проектуючи параметризовану архітектуру, оптимізовану конкретно для ефективності, GELAN дозволяє моделям працювати швидше та на більш обмежених пристроях. Далі ми розглянемо, як PGI допомагає їм тренуватися краще.
Краще навчання з допомогою PGI
Навчання моделі є таким же важливим для максимізації точності з обмеженими ресурсами. Автори YOLOv9 визначили проблеми з тренуванням менших моделей, викликані ненадійною інформацією градієнтів.
Градієнти визначають, наскільки ваги моделі оновлюються під час навчання. Шумні чи вводять в оману градієнти ведуть до поганого збігання. Ця проблема стає більш вираженою для менших мереж.
Техніка глибокого нагляду звертається до цього питання, вводячи додаткові бічні гілки з втратами для пропагування кращого градієнтного сигналу через мережу. Але вона схильна до розбиття та викликає розбіг для менших легких моделей.

YOLOv9: Навчання того, чого ви хочете дізнатися, за допомогою програмованої інформації градієнтів https://arxiv.org/abs/2402.13616
Щоб подолати це обмеження, YOLOv9 вводить Programmable Gradient Information (PGI). PGI має дві основні складові:
- Допоміжні оборотні гілки – ці забезпечують чисті градієнти, підтримуючи оборотні зв’язки з вхідними даними за допомогою блоків типу RevCols.
- Мультірівнева інтеграція градієнтів – цей блок агрегує градієнти з усіх гілок перед тим, як повернути їх до основної моделі.
Генеруючи більш надійні градієнти, PGI покращує збігання тренування та ефективність через усі розміри моделей:
Експерименти показали, що PGI покращив точність для малих та великих конфігурацій YOLOv9 над базовим GELAN:
- +0,1-0,4% AP для YOLOv9-Small
- +0,5-0,6% AP для більших моделей YOLOv9
Отже, програмовані градієнти PGI дозволяють моделям великого та малого розміру тренуватися більш ефективно.
YOLOv9 встановлює новий стандарт ефективності
Об’єднавши архітектурні вдосконалення GELAN та покращення тренування з PGI, YOLOv9 досягає безпрецедентної ефективності та продуктивності:
- Порівняно з попередніми версіями YOLO, YOLOv9 досягає кращої точності з меншою кількістю параметрів та обчислень. Це приносить суттєві покращення швидкості та можливостей через усі розміри моделей.
- YOLOv9 перевершує інші детектори у реальному часі, такі як YOLO-MS та RT-DETR, за параметричною ефективністю та FLOPs. Вона вимагає значно менше ресурсів для досягнення заданого рівня продуктивності.
- Менші моделі YOLOv9 навіть перевершують більші попередньо натреновані моделі типу RT-DETR-X. Незважаючи на використання 36% менше параметрів, YOLOv9-E досягає кращої 55,6% AP завдяки більш ефективній архітектурі.
Отже, звертаючись до ефективності на рівні архітектури та тренування, YOLOv9 встановлює новий стандарт для максимізації продуктивності всередині обмежених ресурсів.
GELAN – Оптимізована архітектура для ефективності
YOLOv9 вводить нову архітектуру під назвою General Efficient Layer Aggregation Network (GELAN), яка максимізує точність всередині мінімального бюджету параметрів. Вона будується на основі попередніх моделей YOLO, але оптимізує різні компоненти конкретно для ефективності.

YOLOv9: Навчання того, чого ви хочете дізнатися, за допомогою програмованої інформації градієнтів https://arxiv.org/abs/2402.13616
Фон щодо CSPNet та ELAN
Останні версії YOLO починаючи з v5 використовували бекбони на основі Cross-Stage Partial Network (CSPNet) для покращення ефективності. CSPNet дозволяє агрегувати функції через паралельні гілки мережі, додаючи мінімальну додаткову обчислювальну складність:
Це більш ефективно, ніж просто укладання шарів послідовно, що часто призводить до зайвої обчислювальної складності та переобучення.
YOLOv7 покращила CSPNet до Efficient Layer Aggregation Network (ELAN), спрощуючи структуру блоків:
ELAN видала зворотні зв’язки між шарами на користь вузла агрегації на виході. Це ще більше покращило параметричну та FLOPs-ефективність.
Генералізація ELAN для гнучкої ефективності
Автори генералізували ELAN ще далі, щоб створити GELAN, бекбон, використаний у YOLOv9. GELAN зробив ключові модифікації для покращення гнучкості та ефективності:
- Замінні обчислювальні блоки – Попередній ELAN мав фіксовані конволюційні шари. GELAN дозволяє заміняти будь-який обчислювальний блок, такий як ResNets або CSPNet, забезпечуючи більше архітектурних варіантів.
- Глибинна параметризація – Відокремлені глибини для основної гілки проти агрегаторної гілки спрощують налаштування використання ресурсів.
- Стабільна продуктивність через конфігурації – GELAN підтримує точність з різними типами блоків та глибинами, дозволяючи гнучке масштабування.
Ці зміни роблять GELAN сильним, але конфігурованим бекбоном для максимізації ефективності:
У експериментах моделі GELAN послідовно перевершували попередні архітектури YOLO за точністю на параметр:
- GELAN-Small з 7M параметрів перевершив YOLOv7-Nano з 11M параметрів
- GELAN-Medium показав продуктивність на рівні з більшими моделями YOLOv7 середнього розміру
Отже, GELAN забезпечує оптимізований бекбон для масштабування YOLO через різні цілі ефективності. Далі ми розглянемо, як PGI допомагає їм тренуватися краще.
PGI – Покращене навчання для усіх розмірів моделей
Хоча вибір архітектури впливає на ефективність під час висновку, процес навчання також впливає на використання ресурсів моделі. YOLOv9 використовує нову техніку під назвою Programmable Gradient Information (PGI) для покращення тренування через різні розміри та складності моделей.
Проблема ненадійних градієнтів
Під час тренування функція втрат порівнює виходи моделі з мітками та обчислює градієнт похибки для оновлення параметрів. Шумні чи вводять в оману градієнти ведуть до поганого збігання та ефективності.
Дуже глибокі мережі погіршують це через інформаційний пляцуок – градієнти з глибоких шарів пошкоджені втраченими чи стиснутими сигналами.
Глибокий нагляд допомагає, вводячи допоміжні бічні гілки з втратами для забезпечення чистіших градієнтів. Але це часто розбивається для менших моделей, викликаючи інтерференцію та розбіг між різними гілками.
Отже, нам потрібно знайти спосіб забезпечити надійні градієнти, який працює через усі розміри моделей, особливо для менших.
Введення програмованої інформації градієнтів (PGI)
Щоб звернутися до ненадійних градієнтів, YOLOv9 пропонує Programmable Gradient Information (PGI). PGI має дві основні складові, спроєктовані для покращення якості градієнтів:
1. Допоміжні оборотні гілки
Додаткові гілки забезпечують оборотні зв’язки назад до вхідних даних за допомогою блоків типу RevCols. Це підтримує чисті градієнти, уникając інформаційного пляцука.
2. Мультірівнева інтеграція градієнтів
Блок фузії агрегує градієнти з усіх гілок перед тим, як повернути їх до основної моделі. Це запобігає розбігові між гілками.
Генеруючи більш надійні градієнти, PGI покращує збігання тренування та ефективність через усі розміри моделей:
- Легкі моделі одержують вигоду від глибокого нагляду, якого вони раніше не могли використовувати
- Більші моделі одержують чистіші градієнти, що дозволяє їм краще узагальнювати
Експерименти показали, що PGI покращив точність для малих та великих конфігурацій YOLOv9 над базовим GELAN:
- +0,1-0,4% AP для YOLOv9-Small
- +0,5-0,6% AP для більших моделей YOLOv9
Отже, програмовані градієнти PGI дозволяють моделям великого та малого розміру тренуватися більш ефективно.
YOLOv9 встановлює новий стандарт точності
Об’єднавши архітектурні вдосконалення GELAN та покращення тренування з PGI, YOLOv9 досягає нового стандарту точності для виявлення об’єктів у реальному часі.
Експерименти на наборі даних COCO показують, що YOLOv9 перевершує попередні версії YOLO, а також інші детектори у реальному часі типу YOLO-MS, за точністю та ефективністю:
Деякі ключові підсумки:
- YOLOv9-Small перевершує YOLO-MS-Small з меншою кількістю параметрів та обчислень
- YOLOv9-Medium показує продуктивність на рівні з більшими моделями YOLOv7, використовуючи менше ніж половину ресурсів
- YOLOv9-Large перевершує YOLOv8-X з меншою кількістю параметрів та FLOPs
Поражаюче, що менші моделі YOLOv9 навіть перевершують більші моделі інших детекторів, які використовують попереднє навчання, типу RT-DETR-X. Незважаючи на те, що вони мають у 4 рази менше параметрів, YOLOv9-E перевершує RT-DETR-X за точністю.
Ці результати демонструють вищу ефективність YOLOv9. Покращення дозволяють здійснювати виявлення об’єктів з високою точністю у більшій кількості реальних випадків.
Ключові висновки щодо покращень YOLOv9
Давайте швидко підсумуємо деякі з ключових покращень та інновацій, які забезпечують новий стандарт продуктивності YOLOv9:
- Оптимізована архітектура GELAN – Покращує параметричну ефективність через гнучкі блоки агрегації. Дозволяє масштабувати моделі для різних цілей.
- Програмована інформація градієнтів – Забезпечує надійні градієнти через оборотні зв’язки та фузію. Покращує тренування через усі розміри моделей.
- Більша точність з меншими ресурсами – Знижує кількість параметрів та обчислень на 10-15% порівняно з YOLOv8 з кращою точністю. Дозволяє більш ефективний висновок.
- Вища продуктивність через усі розміри моделей – Встановлює новий стандарт для легких, середніх та великих конфігурацій моделей. Перевершує попередньо натреновані моделі.
- Розширена застосовність – Вища ефективність розширює діапазон випадків використання, таких як виявлення у реальному часі на пристроях рівня краю.
Звертаючись безпосередньо до точності, ефективності та застосовності, YOLOv9 рухає виявлення об’єктів вперед, щоб задовольнити різноманітні реальні потреби. Покращення забезпечують сильну основу для майбутніх інновацій у цій критичній здатності комп’ютерного зору.












