заглушки YOLOv9: стрибок у виявленні об'єктів у реальному часі - Unite.AI
Зв'язатися з нами

Штучний Інтелект

YOLOv9: стрибок у виявленні об’єктів у реальному часі

mm

опублікований

 on

Виявлення об'єктів за останні роки стрімко розвивається завдяки глибоке навчання такі алгоритми, як YOLO (You Look Only 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 забезпечують високу точність завдяки великій кількості параметрів і операціям множення-додавання (FLOP). Але це відбувається за рахунок швидкості, розміру та енергоефективності.

Наприклад, YOLOv5-L потребує понад 100 мільярдів FLOP для обробки одного зображення 1280×1280. Це занадто повільно для багатьох випадків використання в реальному часі. Тенденція все більших моделей також збільшує ризик надмірної фурнітури та ускладнює узагальнення.

Отже, щоб розширити можливості виявлення об’єктів, нам потрібні способи підвищення ефективності – підвищення точності з меншими параметрами та обчисленнями. Давайте розглянемо методи, які використовуються в YOLOv9 для вирішення цієї проблеми.

YOLOv9 – краща точність із меншими ресурсами

Дослідники YOLOv9 зосередилися на підвищенні ефективності, щоб досягти продуктивності в режимі реального часу на більшій кількості пристроїв. Вони представили дві ключові інновації:

  1. Нова модель архітектури називається Загальна ефективна мережа агрегації рівнів (GELAN) що максимізує точність при мінімізації параметрів і FLOP.
  2. Техніка навчання називається Інформація про програмований градієнт (PGI) що забезпечує надійніші градієнти навчання, особливо для менших моделей.

Давайте розглянемо, як кожен із цих досягнень допомагає підвищити ефективність.

Більш ефективна архітектура з GELAN

Сама архітектура моделі має вирішальне значення для балансу між точністю та швидкістю та використанням ресурсів під час логічного висновку. Нейронна мережа потребує достатньої глибини та ширини, щоб охопити релевантні характеристики вхідних зображень. Але забагато шарів або фільтрів призводить до повільних і роздутих моделей.

Автори розробили GELAN спеціально, щоб вичавити максимальну точність із найменшої можливої ​​архітектури.

GELAN використовує два основні будівельні блоки, складені разом:

  • Ефективні блоки агрегації шарів – Ці сукупні перетворення між кількома гілками мережі для ефективного охоплення різноманітних функцій.
  • Обчислювальні блоки – Блоки CSPNet допомагають поширювати інформацію між рівнями. Будь-який блок можна замінити на основі обчислювальних обмежень.

Ретельно балансуючи та поєднуючи ці блоки, GELAN досягає найкращого результату між продуктивністю, параметрами та швидкістю. Одну і ту саму модульну архітектуру можна збільшити або зменшити для різних розмірів моделей і обладнання.

Експерименти показали, що GELAN забезпечує більшу продуктивність у менших моделях порівняно з попередніми архітектурами YOLO. Наприклад, GELAN-Small з параметрами 7M перевершив параметр 11M YOLOv7-Nano. А GELAN-Medium з параметрами 20M показав нарівні з середніми моделями YOLOv7, які вимагають параметрів 35-40M.

Таким чином, розробляючи параметризовану архітектуру, спеціально оптимізовану для ефективності, GELAN дозволяє моделям працювати швидше та на пристроях з більш обмеженими ресурсами. Далі ми побачимо, як PGI також допомагає їм тренуватися краще.

Краще навчання за допомогою інформації про програмований градієнт (PGI)

Навчання на моделі так само важливо для досягнення максимальної точності з обмеженими ресурсами. Автори YOLOv9 виявили проблеми з навчанням менших моделей, спричинені ненадійною інформацією про градієнт.

Градієнти визначити, наскільки вага моделі оновлюється під час навчання. Шумні або оманливі градієнти призводять до поганої конвергенції. Ця проблема стає більш помітною для невеликих мереж.

Техніка глибокий нагляд вирішує це шляхом введення додаткових бічних відгалужень із втратами для поширення кращого градієнтного сигналу через мережу. Але він має тенденцію ламатися і викликати розбіжності для менших легких моделей.

YOLOv9: Вивчення того, що ви хочете навчитися, за допомогою інформації про програмований градієнт

YOLOv9: Вивчення того, що ви хочете навчитися, за допомогою інформації про програмований градієнт https://arxiv.org/abs/2402.13616

Щоб подолати це обмеження, YOLOv9 представляє Інформація про програмований градієнт (PGI). PGI складається з двох основних компонентів:

  • Допоміжні оборотні гілки – Вони забезпечують чистіші градієнти, підтримуючи оборотні зв’язки з вхідними даними за допомогою таких блоків, як RevCols.
  • Інтеграція багаторівневого градієнта – Це дозволяє уникнути розбіжності від різних бічних гілок, що заважають. Він поєднує градієнти з усіх гілок перед тим, як повернутися до основної моделі.

Створюючи більш надійні градієнти, PGI допомагає меншим моделям тренуватися так само ефективно, як і більшим:

Експерименти показали, що PGI покращує точність у всіх розмірах моделей, особливо в менших конфігураціях. Наприклад, він підвищив показники AP YOLOv9-Small на 0.1-0.4% порівняно з базовим рівнем GELAN-Small. Зростання було ще більш значним для глибших моделей, таких як YOLOv9-E з 55.6% mAP.

Таким чином, PGI дає змогу меншим, ефективним моделям навчатися до вищих рівнів точності, які раніше були доступні лише за допомогою надмірно параметризованих моделей.

YOLOv9 встановлює новий сучасний рівень ефективності

Поєднуючи архітектурні досягнення GELAN з удосконаленнями навчання від PGI, YOLOv9 досягає безпрецедентної ефективності та продуктивності:

  • У порівнянні з попередніми версіями YOLO, YOLOv9 отримує краща точність на 10-15% менше параметрів і на 25% менше обчислень. Це значно покращує швидкість і можливості в різних розмірах моделей.
  • YOLOv9 перевершує інші детектори реального часу, такі як YOLO-MS і RT-DETR, з точки зору ефективність параметрів і FLOP. Для досягнення заданого рівня продуктивності потрібно набагато менше ресурсів.
  • Менші моделі YOLOv9 навіть перемагають більші попередньо навчені моделі, такі як RT-DETR-X. Незважаючи на використання На 36% менше параметрів, досягає YOLOv9-E краще 55.6% AP завдяки більш ефективним архітектурам.

Таким чином, звертаючись до ефективності на рівнях архітектури та навчання, YOLOv9 встановлює новий сучасний рівень для максимізації продуктивності в умовах обмежених ресурсів.

GELAN – Оптимізована архітектура для ефективності

YOLOv9 представляє нову архітектуру під назвою General Efficient Layer Aggregation Network (GELAN), яка максимізує точність у межах мінімального бюджету параметрів. Він базується на попередніх моделях YOLO, але оптимізує різні компоненти спеціально для підвищення ефективності.

https://arxiv.org/abs/2402.13616

YOLOv9: Вивчення того, що ви хочете навчитися, за допомогою інформації про програмований градієнт
https://arxiv.org/abs/2402.13616

Довідкова інформація про CSPNet та ELAN

В останніх версіях YOLO, починаючи з версії 5, для підвищення ефективності використовували магістралі на основі міжступеневої часткової мережі (CSPNet). CSPNet дозволяє агрегувати карти функцій у паралельних гілках мережі, додаючи мінімальні витрати:

Це більш ефективно, ніж просто послідовне укладання шарів, що часто призводить до надлишкових обчислень і надмірної параметризації.

YOLOv7 оновив CSPNet до Efficient Layer Aggregation Network (ELAN), що спростило блочну структуру:

ELAN видалив короткі з’єднання між шарами на користь вузла агрегації на виході. Це додатково покращило параметри та ефективність FLOP.

Узагальнення ELAN для гнучкої ефективності

Автори ще більше узагальнили ELAN для створення ГЕЛАН, магістраль, що використовується в YOLOv9. GELAN вніс ключові зміни для підвищення гнучкості та ефективності:

  • Взаємозамінні обчислювальні блоки – Попередній ELAN мав фіксовані згорточні шари. GELAN дозволяє замінити будь-який обчислювальний блок, наприклад ResNets або CSPNet, надаючи більше архітектурних можливостей.
  • Поглиблена параметризація – Окрема глибина блоків для основної гілки та гілки агрегатора спрощує точне налаштування використання ресурсів.
  • Стабільна продуктивність у всіх конфігураціях – GELAN підтримує точність з різними типами блоків і глибиною, що дозволяє гнучке масштабування.

Ці зміни роблять GELAN потужною, але конфігурованою основою для максимальної ефективності:

В експериментах моделі GELAN стабільно перевершували попередні архітектури YOLO за точністю за параметром:

  • GELAN-Small з параметрами 7M перевершує параметри YOLOv7-Nano з 11M
  • GELAN-Medium відповідає більш важким середнім моделям YOLOv7

Отже, GELAN забезпечує оптимізовану основу для масштабування YOLO за різними цілями ефективності. Далі ми побачимо, як PGI допомагає їм краще тренуватися.

PGI – покращене навчання для всіх розмірів моделей

Хоча вибір архітектури впливає на ефективність під час висновку, процес навчання також впливає на використання ресурсів моделі. YOLOv9 використовує нову техніку, яка називається програмованою градієнтною інформацією (PGI), щоб покращити навчання для моделей різних розмірів і складності.

Проблема ненадійних градієнтів

Під час навчання функція втрат порівнює вихідні дані моделі з базовими мітками істинності та обчислює градієнт помилок для оновлення параметрів. Шумні або оманливі градієнти призводять до поганої конвергенції та ефективності.

Дуже глибокі мережі посилюють це через інформаційне вузьке місце – градієнти з глибоких шарів пошкоджені втраченими або стиснутими сигналами.

Глибокий нагляд допомагає шляхом введення допоміжних бічних гілок із втратами для забезпечення чистіших градієнтів. Але часто ламається для менших моделей, спричиняючи інтерференцію та розбіжності між різними гілками.

Тому нам потрібен спосіб забезпечити надійні градієнти, які працюють у всіх розмірах моделей, особливо менших.

Представляємо інформацію про програмований градієнт (PGI)

Для усунення ненадійних градієнтів YOLOv9 пропонує програмовану інформацію про градієнт (PGI). PGI має два основні компоненти, призначені для покращення якості градієнта:

1. Допоміжні оборотні гілки

Додаткові гілки надають реверсивні з'єднання повернутися до вхідних даних за допомогою таких блоків, як RevCols. Це підтримує чисті градієнти, уникаючи інформаційних вузьких місць.

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 на 10% менше параметрів і обчислень
  • YOLOv9-Medium відповідає більш важким моделям YOLOv7, використовуючи менше половини ресурсів
  • YOLOv9-Large перевершує YOLOv8-X на 15% менше параметрів і на 25% менше FLOP

Примітно, що менші моделі YOLOv9 навіть перевершують більш важкі моделі інших детекторів, які використовують попереднє навчання, наприклад RT-DETR-X. Незважаючи на в 4 рази менше параметрів, YOLOv9-E перевершує RT-DETR-X за точністю.

Ці результати демонструють високу ефективність YOLOv9. Покращення дозволяють високоточне виявлення об’єктів у більш реальних випадках використання.

Ключові висновки щодо оновлень YOLOv9

Давайте коротко нагадаємо про деякі ключові оновлення та інновації, які забезпечують нову найсучаснішу продуктивність YOLOv9:

  • Оптимізована архітектура GELAN – Підвищує ефективність параметрів за допомогою гнучких блоків агрегації. Дозволяє масштабувати моделі для різних цілей.
  • Інформація про програмований градієнт – Забезпечує надійні градієнти завдяки оборотним з’єднанням і зливанню. Покращує навчання для різних розмірів моделей.
  • Більша точність з меншими ресурсами – Зменшує параметри та обчислення на 10-15% порівняно з YOLOv8 із кращою точністю. Забезпечує більш ефективний висновок.
  • Чудові результати в різних розмірах моделей – Встановлює новий стан техніки для легких, середніх і великих конфігурацій моделей. Перевершує попередньо навчені моделі.
  • Розширена сфера застосування – Вища ефективність розширює життєздатні варіанти використання, наприклад виявлення в реальному часі на периферійних пристроях.

Прямо звертаючись до точності, ефективності та застосовності, YOLOv9 просуває виявлення об’єктів вперед, щоб задовольнити різноманітні потреби реального світу. Оновлення забезпечують міцну основу для майбутніх інновацій у цій критично важливій можливості комп’ютерного зору.

Останні п’ять років я провів, занурюючись у захоплюючий світ машинного та глибокого навчання. Моя пристрасть і досвід допомогли мені внести свій внесок у понад 50 різноманітних проектів розробки програмного забезпечення, зосередивши особливу увагу на ШІ/ML. Моя постійна цікавість також привела мене до обробки природної мови, галузі, яку я хочу досліджувати далі.