stub YOLOv9: šuolis į objektų aptikimą realiuoju laiku – Unite.AI
Susisiekti su mumis

Dirbtinis intelektas

YOLOv9: objektų aptikimo realiuoju laiku šuolis

mm

paskelbta

 on

Objekto aptikimas pastaraisiais metais sparčiai tobulėjo gilus mokymasis algoritmai, tokie kaip YOLO (You Only Look Once). Naujausia iteracija, YOLOv9, žymiai pagerina tikslumą, efektyvumą ir pritaikomumą, palyginti su ankstesnėmis versijomis. Šiame įraše pasinersime į naujoves, dėl kurių YOLOv9 yra naujas moderniausias objektų aptikimas realiuoju laiku.

Greitas objektų aptikimo pradmenys

Prieš pradėdami susipažinti su YOLOv9 naujovėmis, trumpai apžvelgsime, kaip veikia objektų aptikimas. Objektų aptikimo tikslas yra atpažinti ir surasti objektus vaizde, pvz., automobilius, žmones ar gyvūnus. Tai pagrindinė galimybė tokioms programoms kaip savarankiškai važiuojantys automobiliai, stebėjimo sistemos ir vaizdų paieška.

Detektorius paima vaizdą kaip įvestį ir išveda aplink aptiktus objektus esančius ribojančius langelius, kurių kiekvienas turi susietą klasės etiketę. Populiarūs duomenų rinkiniai, tokie kaip MS COCO, pateikia tūkstančius pažymėtų vaizdų, skirtų šiems modeliams mokyti ir įvertinti.

Yra du pagrindiniai objektų aptikimo būdai:

  • Dviejų pakopų detektoriai kaip „Faster R-CNN“ pirmiausia generuoja regiono pasiūlymus, tada klasifikuoja ir patikslina kiekvieno regiono ribas. Jie paprastai būna tikslesni, bet lėtesni.
  • Vienpakopiai detektoriai kaip YOLO pritaikykite modelį tiesiai virš vaizdo vienu praėjimu. Jie keičia tam tikrą tikslumą labai greitais išvados laikais.

YOLO pradėjo vieno etapo metodą. Pažiūrėkime, kaip ji vystėsi per kelias versijas, kad pagerintų tikslumą ir efektyvumą.

Ankstesnių YOLO versijų apžvalga

YOLO (You Only Look Once) modelių šeima buvo greito objektų aptikimo priešakyje nuo tada, kai 2016 m. buvo paskelbta pirminė versija. Štai trumpa YOLO pažangos per keletą iteracijų apžvalga:

  • YOLOv1 pasiūlė vieningą modelį, skirtą nuspėti ribojančius langelius ir klasių tikimybes tiesiai iš visų vaizdų vienu praėjimu. Dėl to jis buvo ypač greitas, palyginti su ankstesniais dviejų pakopų modeliais.
  • YOLOv2 patobulinta, palyginti su originalu, naudojant partijos normalizavimą, siekiant geresnio stabilumo, pritvirtinant dėžes įvairiais masteliais ir formato koeficientais, kad būtų galima nustatyti kelis dydžius, ir įvairius kitus optimizavimus.
  • YOLOv3 pridėjo naują funkcijų ištraukiklį, vadinamą Darknet-53, su daugiau sluoksnių ir nuorodų tarp jų, taip dar labiau pagerindamas tikslumą.
  • YOLOv4 sujungė kitų objektų detektorių ir segmentavimo modelių idėjas, kad būtų dar didesnis tikslumas, išlaikant greitas išvadas.
  • YOLOv5 visiškai perrašė YOLOv4 „PyTorch“ ir pridėjo naują funkcijų ištraukimo pagrindą, vadinamą „CSPDarknet“, kartu su keliais kitais patobulinimais.
  • YOLOv6 toliau optimizavo architektūrą ir mokymo procesą, o modeliai buvo iš anksto paruošti dideliems išoriniams duomenų rinkiniams, kad būtų dar labiau padidintas našumas.

Taigi apibendrinant galima pasakyti, kad ankstesnėse YOLO versijose buvo pasiektas didesnis tikslumas patobulinus modelio architektūrą, mokymo metodus ir išankstinį mokymą. Tačiau modeliams tampant didesniems ir sudėtingesniems, pradeda nukentėti greitis ir efektyvumas.

Geresnio efektyvumo poreikis

Daugeliui programų reikalingas objektų aptikimas, kad jis veiktų realiuoju laiku įrenginiuose su ribotais skaičiavimo ištekliais. Kadangi modeliai tampa didesni ir jiems reikia daugiau skaičiavimo, juos naudoti tampa nepraktiška.

Pavyzdžiui, savarankiškai važiuojantis automobilis turi aptikti objektus dideliu kadrų dažniu, naudodamas transporto priemonės viduje esančius procesorius. Apsaugos kamera turi paleisti objektų aptikimą savo vaizdo sklaidos kanale per savo įterptąją aparatinę įrangą. Telefonai ir kiti vartotojų įrenginiai turi labai griežtus galios ir šiluminius apribojimus.

Naujausios YOLO versijos pasižymi dideliu tikslumu, naudojant daug parametrų ir daugybos sudėjimo operacijų (FLOP). Tačiau tai kainuoja dėl greičio, dydžio ir energijos vartojimo efektyvumo.

Pavyzdžiui, norint apdoroti vieną 5 × 100 vaizdą, YOLOv1280-L reikia daugiau nei 1280 milijardų FLOP. Tai per lėta daugeliui realiojo laiko naudojimo atvejų. Vis didesnių modelių tendencija taip pat padidina permontavimo riziką ir apsunkina apibendrinimą.

Taigi, norint išplėsti objektų aptikimo pritaikomumą, mums reikia būdų, kaip pagerinti efektyvumą – pasiekti didesnį tikslumą naudojant mažiau parametrų ir skaičiavimų. Pažvelkime į YOLOv9 metodus, naudojamus šiam iššūkiui įveikti.

YOLOv9 – geresnis tikslumas naudojant mažiau išteklių

YOLOv9 tyrėjai daugiausia dėmesio skyrė efektyvumo didinimui, kad pasiektų našumą realiuoju laiku įvairiuose įrenginiuose. Jie pristatė dvi pagrindines naujoves:

  1. Naujas modelio architektūra vadinamas Bendrasis efektyvaus sluoksnių agregavimo tinklas (GELAN) kuris padidina tikslumą ir sumažina parametrus ir FLOP.
  2. Treniruočių technika vadinama Programuojamo gradiento informacija (SGN) kuri suteikia patikimesnius mokymosi gradientus, ypač mažesniems modeliams.

Pažiūrėkime, kaip kiekviena iš šių patobulinimų padeda pagerinti efektyvumą.

Efektyvesnė architektūra su GELAN

Pati modelio architektūra yra labai svarbi siekiant suderinti tikslumą su greičiu ir išteklių naudojimu darant išvadas. Neuroniniam tinklui reikia pakankamai gylio ir pločio, kad būtų galima užfiksuoti atitinkamas įvesties vaizdų funkcijas. Tačiau per daug sluoksnių ar filtrų lemia lėtus ir išpūstus modelius.

Autoriai sukūrė GELAN specialiai tam, kad išspaustų maksimalų tikslumą iš mažiausios įmanomos architektūros.

GELAN naudoja du pagrindinius statybinius blokus, sudėtus į vieną krūvą:

  • Efektyvūs sluoksnių agregavimo blokai – Šios apibendrinamos transformacijos keliose tinklo šakose, kad būtų efektyviai užfiksuotos kelių masto funkcijos.
  • Skaičiavimo blokai – CSPNet blokai padeda skleisti informaciją sluoksniuose. Bet kuris blokas gali būti pakeistas pagal skaičiavimo apribojimus.

Kruopščiai subalansuodamas ir derindamas šiuos blokus, GELAN pasiekia puikią našumo, parametrų ir greičio tašką. Ta pati modulinė architektūra gali padidinti arba sumažinti įvairaus dydžio modelius ir aparatinę įrangą.

Eksperimentai parodė, kad GELAN tinka mažesniems modeliams, palyginti su ankstesnėmis YOLO architektūromis. Pavyzdžiui, GELAN-Small su 7M parametrais pranoko 11M parametrą YOLOv7-Nano. Ir GELAN-Medium su 20M parametrais, atliekami lygiaverčiai YOLOv7 vidutiniams modeliams, kuriems reikia 35-40M parametrų.

Taigi, sukūręs parametrizuotą architektūrą, specialiai optimizuotą efektyvumui, GELAN leidžia modeliams veikti greičiau ir įrenginiuose, kuriuose mažiau išteklių. Toliau pamatysime, kaip SGN padeda jiems geriau treniruotis.

Geresnis mokymas naudojant programuojamą gradiento informaciją (SGN)

Modelio mokymas yra toks pat svarbus siekiant maksimaliai padidinti tikslumą naudojant ribotus išteklius. YOLOv9 autoriai nustatė problemas, susijusias su mažesnių modelių mokymu dėl nepatikimos gradiento informacijos.

Gradientai nustatyti, kiek modelio svoriai atnaujinami treniruotės metu. Triukšmingi arba klaidinantys gradientai lemia prastą konvergenciją. Ši problema išryškėja mažesniuose tinkluose.

Technika gili priežiūra Tai išsprendžia įvesdama papildomas šonines šakas su nuostoliais, kad tinkle būtų sklinda geresnis gradiento signalas. Tačiau jis linkęs suskaidyti ir sukelti skirtumus mažesniems lengviems modeliams.

YOLOv9: išmokite tai, ko norite išmokti, naudodami programuojamą gradiento informaciją

YOLOv9: išmokite tai, ko norite išmokti, naudodami programuojamo gradiento informaciją https://arxiv.org/abs/2402.13616

Norėdami įveikti šį apribojimą, YOLOv9 pristato Programuojamo gradiento informacija (SGN). SGN susideda iš dviejų pagrindinių komponentų:

  • Pagalbinės apverčiamos šakos – Jie užtikrina švaresnius gradientus, palaikydami grįžtamuosius ryšius su įvestimi naudojant blokus, tokius kaip RevCols.
  • Kelių lygių gradiento integracija – Taip išvengiama nukrypimų nuo skirtingų šoninių šakų trukdžių. Jis sujungia gradientus iš visų šakų prieš grąžindamas atgal į pagrindinį modelį.

Sukurdama patikimesnius gradientus, SGN padeda mažesniems modeliams treniruotis taip pat efektyviai, kaip ir didesniems:

Eksperimentai parodė, kad SGN pagerėjo visų dydžių modelių, ypač mažesnių konfigūracijų, tikslumas. Pavyzdžiui, jis padidino YOLOv9-Small AP balus 0.1–0.4%, palyginti su pradiniu GELAN-Small. Padidėjimas buvo dar reikšmingesnis naudojant gilesnius modelius, tokius kaip YOLOv9-E, esant 55.6 % mAP.

Taigi SGN leidžia mažesniems, efektyviems modeliams treniruoti aukštesnio tikslumo lygius, kuriuos anksčiau buvo galima pasiekti tik naudojant per daug parametruotus modelius.

YOLOv9 nustato naujus efektyvumo pasiekimus

Sujungus architektūrinius GELAN pažangus su SGN mokymo patobulinimais, YOLOv9 pasiekia precedento neturintį efektyvumą ir našumą:

  • Palyginti su ankstesnėmis YOLO versijomis, YOLOv9 gauna geresnis tikslumas su 10-15 % mažiau parametrų ir 25 % mažiau skaičiavimų. Tai labai pagerina visų dydžių modelių greitį ir galimybes.
  • YOLOv9 pranoksta kitus realaus laiko detektorius, tokius kaip YOLO-MS ir RT-DETR. parametrų efektyvumas ir FLOP. Norint pasiekti tam tikrą našumo lygį, reikia daug mažiau išteklių.
  • Mažesni YOLOv9 modeliai netgi lenkia didesnius iš anksto paruoštus modelius, tokius kaip RT-DETR-X. Nepaisant naudojimo 36 % mažiau parametrų, YOLOv9-E pasiekia geriau 55.6% AP naudojant efektyvesnes architektūras.

Taigi, siekdamas efektyvumo architektūros ir mokymo lygiuose, YOLOv9 nustato naują pažangą, leidžiančią maksimaliai padidinti našumą naudojant ribotus išteklius.

GELAN – optimizuota architektūra efektyvumui užtikrinti

„YOLOv9“ pristato naują architektūrą, pavadintą „General Efficient Layer Aggregation Network“ (GELAN), kuri maksimaliai padidina tikslumą neviršijant minimalaus parametrų biudžeto. Jis pagrįstas ankstesniais YOLO modeliais, tačiau optimizuoja įvairius komponentus, kad būtų užtikrintas efektyvumas.

https://arxiv.org/abs/2402.13616

YOLOv9: išmokite tai, ko norite išmokti, naudodami programuojamą gradiento informaciją
https://arxiv.org/abs/2402.13616

CSPNet ir ELAN fonas

Naujausiose YOLO versijose nuo 5 versijos buvo naudojami stuburai, pagrįsti tarppakopiu daliniu tinklu (CSPNet), kad būtų padidintas efektyvumas. CSPNet leidžia apibendrinti funkcijų žemėlapius lygiagrečiose tinklo šakose, tuo pačiu pridedant minimalias pridėtines išlaidas:

Tai veiksmingiau nei tik sluoksnių sudėjimas nuosekliai, o tai dažnai lemia perteklinį skaičiavimą ir per daug parametrų nustatymą.

YOLOv7 atnaujino CSPNet į efektyvų sluoksnių kaupimo tinklą (ELAN), kuris supaprastino blokų struktūrą:

ELAN pašalino sparčiuosius ryšius tarp sluoksnių, kad išvestyje būtų agregavimo mazgas. Tai dar labiau pagerino parametrų ir FLOP efektyvumą.

ELAN apibendrinimas siekiant lankstaus efektyvumo

Autoriai dar labiau apibendrino ELAN, kad sukurtų GELAN, stuburas, naudojamas YOLOv9. GELAN atliko pagrindinius pakeitimus, kad pagerintų lankstumą ir efektyvumą:

  • Keičiami skaičiavimo blokai – Ankstesnis ELAN turėjo fiksuotus konvoliucinius sluoksnius. GELAN leidžia pakeisti bet kurį skaičiavimo bloką, pvz., ResNets arba CSPNet, suteikiant daugiau architektūrinių galimybių.
  • Giluminis parametrizavimas – Atskiras blokų gylis pagrindinei šakai ir agregatorinei šakai supaprastina išteklių naudojimo tikslinimą.
  • Stabilus našumas visose konfigūracijose – GELAN palaiko tikslumą naudojant skirtingus blokų tipus ir gylius, todėl galima lanksčiai keisti mastelį.

Dėl šių pakeitimų GELAN yra tvirtas, bet konfigūruojamas pagrindas, siekiant maksimaliai padidinti efektyvumą:

Eksperimentų metu GELAN modeliai nuosekliai viršijo ankstesnes YOLO architektūras pagal parametro tikslumą:

  • GELAN-Small su 7M parametrais pranoksta YOLOv7-Nano 11M parametrų
  • GELAN-Medium atitiko sunkesnius YOLOv7 vidutinius modelius

Taigi GELAN suteikia optimizuotą pagrindą YOLO pritaikyti įvairiems efektyvumo tikslams. Toliau pamatysime, kaip SGN padeda jiems geriau treniruotis.

SGN – patobulintas visų dydžių modelių mokymas

Nors architektūros pasirinkimai daro įtaką efektyvumui išvados metu, mokymo procesas taip pat turi įtakos modelio išteklių naudojimui. YOLOv9 naudoja naują techniką, vadinamą programuojamo gradiento informacija (PGI), kad pagerintų įvairių dydžių ir sudėtingumo modelių mokymą.

Nepatikimų gradientų problema

Treniruotės metu praradimo funkcija palygina modelio išvestis su pagrindinės tiesos etiketėmis ir apskaičiuoja klaidos gradientą, kad atnaujintų parametrus. Triukšmingi arba klaidinantys gradientai sukelti prastą konvergenciją ir efektyvumą.

Labai gilūs tinklai tai dar labiau sustiprina informacijos kliūtis – gradientai iš gilių sluoksnių yra sugadinti dėl prarastų arba suspaustų signalų.

Gili priežiūra padeda įvedant pagalbines šonines šakas su nuostoliais, kad būtų švaresni gradientai. Bet dažnai sugenda mažesniems modeliams, sukeliantis trukdžius ir skirtumus tarp skirtingų šakų.

Taigi mums reikia būdo pateikti patikimus gradientus, kurie veiktų visų dydžių modeliuose, ypač mažesniuose.

Pristatome programuojamo gradiento informaciją (SGN)

Siekdama pašalinti nepatikimus gradientus, YOLOv9 siūlo programuojamo gradiento informaciją (SGN). SGN sudaro du pagrindiniai komponentai, skirti pagerinti gradiento kokybę:

1. Pagalbinės apverčiamosios šakos

Papildomi filialai suteikia grįžtamos jungtys atgal į įvestį naudodami blokus, tokius kaip RevCols. Taip išlaikomi švarūs gradientai, išvengiant informacijos kliūties.

2. Daugiapakopė gradiento integracija

Suliejimo blokas sujungia gradientus iš visų šakų prieš grąžindamas atgal į pagrindinį modelį. Taip išvengiama skirtumų tarp šakų.

Sukurdamas patikimesnius gradientus, SGN pagerina mokymo konvergenciją ir efektyvumą visų dydžių modeliuose:

  • Lengvi modeliai gauti naudos iš gilios priežiūros, kurios anksčiau negalėjo naudoti
  • Didesni modeliai gauti švaresnius gradientus, leidžiančius geriau apibendrinti

Eksperimentai parodė, kad SGN padidino mažų ir didelių YOLOv9 konfigūracijų tikslumą, palyginti su pradiniu GELAN:

  • +0.1–0.4 % AP YOLOv9-Small
  • +0.5–0.6 % AP didesniems YOLOv9 modeliams

Taigi PGI programuojami gradientai leidžia dideliems ir mažiems modeliams treniruotis efektyviau.

YOLOv9 nustato naują pažangiausią tikslumą

Derindama architektūrinius GELAN patobulinimus ir mokymo patobulinimus iš SGN, YOLOv9 pasiekia naujų pažangiausių rezultatų, skirtų objektų aptikimui realiuoju laiku.

Eksperimentai su COCO duomenų rinkiniu rodo, kad YOLOv9 tikslumu ir efektyvumu lenkia ankstesnes YOLO versijas, taip pat kitus realiojo laiko detektorius, tokius kaip YOLO-MS:

Kai kurie pagrindiniai akcentai:

  • YOLOv9-Small viršija YOLO-MS-Small su 10 % mažiau parametrų ir skaičiavimų
  • YOLOv9-Medium atitinka sunkesnius YOLOv7 modelius, naudojančius mažiau nei pusę išteklių
  • YOLOv9-Large pranoksta YOLOv8-X su 15 % mažiau parametrų ir 25 % mažiau FLOP

Pažymėtina, kad mažesni YOLOv9 modeliai netgi lenkia sunkesnius modelius iš kitų detektorių, kurie naudoja išankstinį mokymą, pvz., RT-DETR-X. Nepaisant 4 kartus mažiau parametrų, YOLOv9-E tikslumu lenkia RT-DETR-X.

Šie rezultatai rodo puikų YOLOv9 efektyvumą. Patobulinimai įgalina didelio tikslumo objektų aptikimą realaus naudojimo atvejais.

Pagrindiniai YOLOv9 atnaujinimų pasiūlymai

Greitai apibendrinkime kai kuriuos pagrindinius atnaujinimus ir naujoves, kurios įgalina naują pažangiausią YOLOv9 našumą:

  • GELAN optimizuota architektūra – Pagerina parametrų efektyvumą naudojant lanksčius agregavimo blokus. Leidžia keisti modelius skirtingiems tikslams.
  • Programuojama gradiento informacija – Suteikia patikimus gradientus per grįžtamąsias jungtis ir suliejimą. Pagerina visų dydžių modelių mokymą.
  • Didesnis tikslumas su mažiau išteklių – Sumažina parametrus ir skaičiavimus 10–15 %, palyginti su YOLOv8 ir geresniu tikslumu. Leidžia daryti efektyvesnes išvadas.
  • Puikūs rezultatai visuose modelių dydžiuose – Nustato naujas pažangiausias lengvų, vidutinių ir didelių modelių konfigūracijas. Pralenkia iš anksto apmokytus modelius.
  • Išplėstas pritaikymas – Didesnis efektyvumas išplečia perspektyvius naudojimo atvejus, pvz., aptikimą realiuoju laiku kraštutiniuose įrenginiuose.

Tiesiogiai sprendžiant tikslumą, efektyvumą ir pritaikomumą, YOLOv9 perkelia objektų aptikimą į priekį, kad atitiktų įvairius realaus pasaulio poreikius. Atnaujinimai suteikia tvirtą pagrindą būsimoms naujovėms šioje svarbioje kompiuterinio matymo galimybėje.

Pastaruosius penkerius metus praleidau pasinerdamas į žavų mašininio mokymosi ir giluminio mokymosi pasaulį. Mano aistra ir patirtis paskatino mane prisidėti prie daugiau nei 50 įvairių programinės įrangos inžinerijos projektų, ypatingą dėmesį skiriant AI/ML. Mano nuolatinis smalsumas taip pat patraukė mane į natūralios kalbos apdorojimą – sritį, kurią noriu tyrinėti toliau.