peň YOLOv9: Skok v detekcii objektov v reálnom čase – Unite.AI
Spojte sa s nami

Umelá inteligencia

YOLOv9: Skok v detekcii objektov v reálnom čase

mm

uverejnené

 on

Detekcia objektov zaznamenala v posledných rokoch rýchly pokrok vďaka hlboké vzdelávanie algoritmy ako YOLO (You Only Look Once). Najnovšia iterácia, YOLOv9, prináša oproti predchádzajúcim verziám zásadné vylepšenia v presnosti, efektívnosti a použiteľnosti. V tomto príspevku sa ponoríme do inovácií, vďaka ktorým je YOLOv9 novým najmodernejším pre detekciu objektov v reálnom čase.

Rýchly základný náter na detekciu objektov

Skôr než sa pustíme do toho, čo je nové s YOLOv9, stručne si zopakujme, ako funguje detekcia objektov. Cieľom detekcie objektov je identifikovať a lokalizovať objekty na obrázku, ako sú autá, ľudia alebo zvieratá. Je to kľúčová funkcia pre aplikácie, ako sú autonómne autá, sledovacie systémy a vyhľadávanie obrázkov.

Detektor berie obraz ako vstup a vydáva ohraničujúce rámčeky okolo detekovaných objektov, každý s priradeným označením triedy. Populárne súbory údajov ako MS COCO poskytujú tisíce označených obrázkov na trénovanie a vyhodnotenie týchto modelov.

Existujú dva hlavné prístupy k detekcii objektov:

  • Dvojstupňové detektory ako Faster R-CNN najprv vygeneruje návrhy regiónov, potom klasifikuje a spresní hranice každého regiónu. Bývajú presnejšie, ale pomalšie.
  • Jednostupňové detektory ako YOLO aplikujte model priamo na obrázok v jedinom prechode. Vymieňajú určitú presnosť za veľmi rýchle časy odvodenia.

YOLO bolo priekopníkom jednostupňového prístupu. Pozrime sa, ako sa vyvinul vo viacerých verziách, aby sa zlepšila presnosť a efektívnosť.

Recenzia predchádzajúcich verzií YOLO

Rodina modelov YOLO (You Only Look Once) je v popredí rýchlej detekcie objektov od zverejnenia pôvodnej verzie v roku 2016. Tu je rýchly prehľad toho, ako YOLO pokročilo vo viacerých iteráciách:

  • YOLOv1 navrhol jednotný model na predpovedanie ohraničujúcich polí a pravdepodobností tried priamo z úplných obrázkov v jednom prechode. Vďaka tomu bol v porovnaní s predchádzajúcimi dvojstupňovými modelmi extrémne rýchly.
  • YOLOv2 vylepšené oproti originálu použitím dávkovej normalizácie pre lepšiu stabilitu, ukotvenie boxov v rôznych mierkach a pomeroch strán na detekciu viacerých veľkostí a množstvo ďalších optimalizácií.
  • YOLOv3 pridal nový extraktor funkcií s názvom Darknet-53 s viacerými vrstvami a skratkami medzi nimi, čím sa ďalej zlepšila presnosť.
  • YOLOv4 skombinovali nápady z iných detektorov objektov a segmentačných modelov, aby posunuli presnosť ešte vyššie pri zachovaní rýchlej inferencie.
  • YOLOv5 plne prepísal YOLOv4 v PyTorch a pridal novú chrbticu extrakcie funkcií s názvom CSPDarknet spolu s niekoľkými ďalšími vylepšeniami.
  • YOLOv6 pokračovalo v optimalizácii architektúry a školiaceho procesu s modelmi vopred pripravenými na veľkých externých súboroch údajov, aby sa výkon ďalej zvýšil.

Stručne povedané, predchádzajúce verzie YOLO dosiahli vyššiu presnosť vďaka vylepšeniam architektúry modelu, tréningových techník a predbežného školenia. Ale ako sa modely zväčšujú a sú zložitejšie, rýchlosť a efektívnosť začínajú trpieť.

Potreba lepšej efektivity

Mnohé aplikácie vyžadujú detekciu objektov na spustenie v reálnom čase na zariadeniach s obmedzenými výpočtovými zdrojmi. Ako sa modely zväčšujú a sú výpočtovo náročnejšie, ich nasadenie sa stáva nepraktickým.

Napríklad auto s vlastným pohonom potrebuje detekovať objekty s vysokou snímkovou frekvenciou pomocou procesorov vo vozidle. Bezpečnostná kamera musí spustiť detekciu objektov na svojom videu v rámci vlastného zabudovaného hardvéru. Telefóny a iné spotrebiteľské zariadenia majú veľmi prísne energetické a tepelné obmedzenia.

Najnovšie verzie YOLO dosahujú vysokú presnosť s veľkým počtom parametrov a operácií viacnásobného sčítania (FLOP). To však prichádza na úkor rýchlosti, veľkosti a energetickej účinnosti.

Napríklad YOLOv5-L vyžaduje viac ako 100 miliárd FLOP na spracovanie jedného obrázka s rozlíšením 1280 × 1280. Toto je príliš pomalé pre mnohé prípady použitia v reálnom čase. Trend stále väčších modelov tiež zvyšuje riziko nadmerného vybavenia a sťažuje zovšeobecňovanie.

Aby sme teda rozšírili použiteľnosť detekcie objektov, potrebujeme spôsoby, ako zlepšiť efektivitu – dosiahnuť lepšiu presnosť s menším počtom parametrov a výpočtov. Pozrime sa na techniky používané v YOLOv9 na zvládnutie tejto výzvy.

YOLOv9 – lepšia presnosť s menšími zdrojmi

Výskumníci stojaci za YOLOv9 sa zamerali na zlepšenie efektívnosti s cieľom dosiahnuť výkon v reálnom čase na širšom spektre zariadení. Predstavili dve kľúčové inovácie:

  1. Nová architektúra modelu tzv Všeobecná efektívna agregačná sieť vrstiev (GELAN) čo maximalizuje presnosť a zároveň minimalizuje parametre a FLOP.
  2. Tréningová technika tzv Informácie o programovateľnom gradiente (PGI) ktorý poskytuje spoľahlivejšie gradienty učenia, najmä pre menšie modely.

Pozrime sa, ako každé z týchto vylepšení pomáha zvyšovať efektivitu.

Efektívnejšia architektúra s GELAN

Samotná architektúra modelu je rozhodujúca pre vyváženie presnosti s rýchlosťou a využitím zdrojov počas odvodzovania. Neurónová sieť potrebuje dostatočnú hĺbku a šírku na zachytenie relevantných prvkov zo vstupných obrázkov. Ale príliš veľa vrstiev alebo filtrov vedie k pomalým a nafúknutým modelom.

Autori navrhli GELAN špeciálne s cieľom vyžmýkať maximálnu presnosť z najmenšej možnej architektúry.

GELAN používa dva hlavné stavebné bloky naskladané dohromady:

  • Efektívne bloky agregácie vrstiev – Tieto agregované transformácie naprieč viacerými sieťovými pobočkami umožňujú efektívne zachytenie viacrozmerných funkcií.
  • Výpočtové bloky – Bloky CSPNet pomáhajú šíriť informácie medzi vrstvami. Akýkoľvek blok môže byť nahradený na základe výpočtových obmedzení.

Starostlivým vyvážením a kombinovaním týchto blokov, GELAN zasiahne sladké miesto medzi výkonom, parametrami a rýchlosťou. Rovnaká modulárna architektúra sa môže škálovať nahor alebo nadol v rôznych veľkostiach modelov a hardvéru.

Experimenty ukázali, že GELAN má väčší výkon v menších modeloch v porovnaní s predchádzajúcimi architektúrami YOLO. Napríklad GELAN-Small s parametrami 7M prekonal 11M parameter YOLOv7-Nano. A GELAN-Medium s parametrami 20M je na rovnakej úrovni ako stredné modely YOLOv7 vyžadujúce parametre 35-40M.

Takže návrhom parametrizovanej architektúry špecificky optimalizovanej pre efektívnosť umožňuje GELAN modelom bežať rýchlejšie a na zariadeniach s obmedzenejším zdrojom. Ďalej uvidíme, ako im PGI pomôže lepšie trénovať.

Lepší tréning s programovateľnými informáciami o gradiente (PGI)

Tréning modelu je rovnako dôležitý pre maximalizáciu presnosti s obmedzenými zdrojmi. Autori YOLOv9 identifikovali problémy s tréningom menších modelov spôsobené nespoľahlivými informáciami o gradiente.

prechody určiť, do akej miery sa váhy modelu aktualizujú počas tréningu. Hlučné alebo zavádzajúce gradienty vedú k zlej konvergencii. Tento problém sa stáva výraznejším pre menšie siete.

Technika hlboký dohľad rieši to zavedením ďalších bočných vetiev so stratami na šírenie lepšieho gradientového signálu cez sieť. Má však tendenciu sa rozpadať a spôsobiť rozdiely v prípade menších ľahkých modelov.

YOLOv9: Naučte sa, čo sa chcete naučiť pomocou programovateľných informácií o gradiente

YOLOv9: Naučte sa, čo sa chcete naučiť pomocou informácií o programovateľných gradientoch https://arxiv.org/abs/2402.13616

Na prekonanie tohto obmedzenia predstavuje YOLOv9 Informácie o programovateľnom gradiente (PGI). CHZO má dve hlavné zložky:

  • Pomocné reverzibilné vetvy – Poskytujú čistejšie gradienty udržiavaním reverzibilných pripojení k vstupu pomocou blokov, ako sú RevCols.
  • Viacúrovňová gradientová integrácia – Tým sa zabráni rušeniu divergencie z rôznych bočných vetiev. Kombinuje prechody zo všetkých vetiev pred návratom do hlavného modelu.

Generovaním spoľahlivejších gradientov pomáha PGI menším modelom trénovať rovnako efektívne ako väčším:

Experimenty ukázali, že PGI zlepšila presnosť vo všetkých veľkostiach modelov, najmä v menších konfiguráciách. Napríklad zvýšil AP skóre YOLOv9-Small o 0.1-0.4% oproti východiskovej hodnote GELAN-Small. Zisky boli ešte výraznejšie pre hlbšie modely ako YOLOv9-E pri 55.6 % mAP.

Takže PGI umožňuje menším, efektívnym modelom trénovať na vyššiu úroveň presnosti, ktorú predtým mohli dosiahnuť iba nadparametrizované modely.

YOLOv9 nastavuje novú úroveň efektívnosti

Kombináciou architektonických pokrokov GELAN s vylepšeniami školenia od PGI, YOLOv9 dosahuje bezprecedentnú efektivitu a výkon:

  • V porovnaní s predchádzajúcimi verziami YOLO získava YOLOv9 lepšia presnosť s o 10 – 15 % menším počtom parametrov a o 25 % menším počtom výpočtov. To prináša zásadné vylepšenia rýchlosti a schopností v rámci rôznych veľkostí modelov.
  • YOLOv9 prekonáva iné detektory v reálnom čase ako YOLO-MS a RT-DETR, pokiaľ ide o účinnosť parametrov a FLOP. Na dosiahnutie danej úrovne výkonu si vyžaduje oveľa menej zdrojov.
  • Menšie modely YOLOv9 dokonca porazili väčšie predtrénované modely ako RT-DETR-X. Napriek používaniu O 36 % menej parametrov, YOLOv9-E dosahuje lepšie 55.6 % AP prostredníctvom efektívnejších architektúr.

Riešením efektívnosti na úrovni architektúry a školení teda YOLOv9 nastavuje nový stav techniky na maximalizáciu výkonu v rámci obmedzených zdrojov.

GELAN – Optimalizovaná architektúra pre efektívnosť

YOLOv9 predstavuje novú architektúru s názvom General Efficient Layer Aggregation Network (GELAN), ktorá maximalizuje presnosť v rámci minimálneho rozpočtu parametrov. Vychádza z predchádzajúcich modelov YOLO, ale optimalizuje rôzne komponenty špeciálne pre efektívnosť.

https://arxiv.org/abs/2402.13616

YOLOv9: Naučte sa, čo sa chcete naučiť pomocou programovateľných informácií o gradiente
https://arxiv.org/abs/2402.13616

Pozadie na CSPNet a ELAN

Nedávne verzie YOLO od verzie 5 využívali chrbticu založenú na Cross-Stage Partial Network (CSPNet) na zvýšenie efektivity. CSPNet umožňuje agregáciu máp funkcií naprieč paralelnými sieťovými pobočkami pri minimálnej réžii:

Je to efektívnejšie ako len skladanie vrstiev do série, čo často vedie k redundantným výpočtom a nadmernej parametrizácii.

YOLOv7 upgradoval CSPNet na Efficient Layer Aggregation Network (ELAN), čo zjednodušilo štruktúru blokov:

ELAN odstránil skratkové spojenia medzi vrstvami v prospech agregačného uzla na výstupe. Tým sa ďalej zlepšila účinnosť parametrov a FLOP.

Zovšeobecnenie ELAN pre flexibilnú efektivitu

Autori ešte viac zovšeobecnili ELAN na vytvorenie GELAN, chrbtica použitá v YOLOv9. GELAN urobil kľúčové úpravy na zlepšenie flexibility a efektívnosti:

  • Vymeniteľné výpočtové bloky – Predchádzajúci ELAN mal pevné konvolučné vrstvy. GELAN umožňuje nahradiť akýkoľvek výpočtový blok ako ResNets alebo CSPNet, čím poskytuje viac architektonických možností.
  • Hĺbková parametrizácia – Samostatné hĺbky blokov pre hlavnú vetvu a vetvu agregátora zjednodušujú jemné ladenie využívania zdrojov.
  • Stabilný výkon naprieč konfiguráciami – GELAN si zachováva presnosť s rôznymi typmi blokov a hĺbkami, čo umožňuje flexibilné škálovanie.

Tieto zmeny robia z GELANu silnú, ale konfigurovateľnú chrbticu pre maximalizáciu efektivity:

V experimentoch modely GELAN konzistentne prekonávali predchádzajúce architektúry YOLO v presnosti na parameter:

  • GELAN-Small s parametrami 7M porazil parametre YOLOv7-Nano 11M
  • GELAN-Medium zodpovedal ťažším stredným modelom YOLOv7

GELAN teda poskytuje optimalizovanú chrbticu na škálovanie YOLO naprieč rôznymi cieľmi efektívnosti. Ďalej uvidíme, ako im PGI pomôže lepšie trénovať.

PGI – Vylepšené školenie pre všetky veľkosti modelov

Zatiaľ čo voľby architektúry ovplyvňujú efektivitu v čase odvodzovania, tréningový proces ovplyvňuje aj využitie zdrojov modelu. YOLOv9 využíva novú techniku ​​s názvom Programmable Gradient Information (PGI) na zlepšenie tréningu v rôznych veľkostiach a zložitosti modelov.

Problém nespoľahlivých gradientov

Počas trénovania funkcia straty porovnáva výstupy modelu s označeniami základnej pravdy a vypočítava gradient chyby na aktualizáciu parametrov. Hlučné alebo zavádzajúce prechody viesť k slabej konvergencii a účinnosti.

Veľmi hlboké siete to ešte zhoršujú informačné úzke miesto – gradienty z hlbokých vrstiev sú poškodené stratenými alebo komprimovanými signálmi.

Hlboký dohľad pomáha zavedením pomocných bočných vetiev so stratami, aby sa zabezpečili čistejšie gradienty. Ale to často rozpadá sa na menšie modely, čo spôsobuje rušenie a divergenciu medzi rôznymi vetvami.

Potrebujeme teda spôsob, ako poskytnúť spoľahlivé prechody, ktoré budú fungovať vo všetkých veľkostiach modelov, najmä tých menších.

Predstavujeme programovateľné informácie o gradiente (PGI)

Na riešenie nespoľahlivých gradientov YOLOv9 navrhuje programovateľné informácie o gradiente (PGI). PGI má dva hlavné komponenty určené na zlepšenie kvality gradientu:

1. Pomocné vratné vetvy

Ďalšie pobočky poskytujú reverzibilné spojenia späť na vstup pomocou blokov ako RevCols. Tým sa zachovávajú čisté gradienty, čím sa zabráni prekážke informácií.

2. Viacúrovňová gradientová integrácia

Fúzny blok agreguje gradienty zo všetkých vetiev predtým, ako sa vráti späť do hlavného modelu. To zabraňuje divergencii medzi vetvami.

Generovaním spoľahlivejších gradientov PGI zlepšuje tréningovú konvergenciu a efektivitu vo všetkých veľkostiach modelov:

  • Ľahké modely profitovať z hlbokého dohľadu, ktorý predtým nemohli využívať
  • Väčšie modely získať čistejšie gradienty umožňujúce lepšie zovšeobecnenie

Experimenty ukázali zvýšenú presnosť PGI pre malé a veľké konfigurácie YOLOv9 oproti základnej GELAN:

  • +0.1 – 0.4 % AP pre YOLOv9-Small
  • +0.5 – 0.6 % AP pre väčšie modely YOLOv9

Takže programovateľné gradienty PGI umožňujú veľkým a malým modelom trénovať efektívnejšie.

YOLOv9 nastavuje novú špičkovú presnosť

Kombináciou architektonických vylepšení od GELAN a tréningových vylepšení od PGI, YOLOv9 dosahuje nové, najmodernejšie výsledky pre detekciu objektov v reálnom čase.

Experimenty na súbore údajov COCO ukazujú, že YOLOv9 prekonáva predchádzajúce verzie YOLO, ako aj iné detektory v reálnom čase, ako je YOLO-MS, v presnosti a účinnosti:

Niektoré kľúčové body:

  • YOLOv9-Small prevyšuje YOLO-MS-Small s o 10 % menším počtom parametrov a výpočtov
  • YOLOv9-Medium sa zhoduje s ťažšími modelmi YOLOv7 využívajúcimi menej ako polovicu zdrojov
  • YOLOv9-Large prekonáva YOLOv8-X s o 15 % menším počtom parametrov a o 25 % menším počtom FLOP

Je pozoruhodné, že menšie modely YOLOv9 dokonca prekonávajú ťažšie modely z iných detektorov, ktoré využívajú predtréning ako RT-DETR-X. Napriek 4x menšiemu počtu parametrov YOLOv9-E prekonáva RT-DETR-X v presnosti.

Tieto výsledky demonštrujú vynikajúcu účinnosť YOLOv9. Vylepšenia umožňujú vysoko presnú detekciu objektov v reálnych prípadoch použitia.

Kľúčové poznatky o aktualizáciách YOLOv9

Poďme si rýchlo zrekapitulovať niektoré kľúčové inovácie a inovácie, ktoré umožňujú nový špičkový výkon YOLOv9:

  • Optimalizovaná architektúra GELAN – Zvyšuje efektivitu parametrov prostredníctvom flexibilných agregačných blokov. Umožňuje škálovanie modelov pre rôzne ciele.
  • Programovateľné informácie o gradiente - Poskytuje spoľahlivé gradienty prostredníctvom reverzibilných spojení a fúzie. Zlepšuje tréning v rôznych veľkostiach modelov.
  • Väčšia presnosť s menším množstvom zdrojov – Znižuje parametre a výpočty o 10-15% oproti YOLOv8 s lepšou presnosťou. Umožňuje efektívnejšie odvodzovanie.
  • Vynikajúce výsledky vo všetkých veľkostiach modelov – Nastavuje nový stav techniky pre ľahké, stredné a veľké konfigurácie modelov. Prekonáva silne predtrénované modely.
  • Rozšírená použiteľnosť – Vyššia účinnosť rozširuje použiteľné prípady použitia, ako je detekcia v reálnom čase na okrajových zariadeniach.

Priamym oslovením presnosti, efektívnosti a použiteľnosti posúva YOLOv9 detekciu objektov vpred, aby vyhovoval rôznym potrebám skutočného sveta. Aktualizácie poskytujú silný základ pre budúce inovácie v tejto kritickej schopnosti počítačového videnia.

Posledných päť rokov som strávil ponorením sa do fascinujúceho sveta strojového učenia a hlbokého učenia. Moja vášeň a odborné znalosti ma viedli k tomu, že som prispel k viac ako 50 rôznym projektom softvérového inžinierstva s osobitným zameraním na AI/ML. Moja neustála zvedavosť ma tiež priviedla k spracovaniu prirodzeného jazyka, oblasti, ktorú by som chcel ďalej skúmať.