Umělá inteligence
YOLOv7: Nejpokročilejší Algoritmus Pro Detekci Objektů?

6. července 2022 bude označen jako významný den v historii umělé inteligence, protože právě tento den byl vydán YOLOv7. Od jeho vydání je YOLOv7 nejžhavějším tématem ve společenství vývojářů počítačového vidění a to z dobrých důvodů. YOLOv7 je již považován za milník v oblasti detekce objektů.
Brzy po zveřejnění článku o YOLOv7 se ukázalo, že je to nejrychlejší a nejpreciznější model detekce objektů v reálném čase. Ale co dělá YOLOv7 lepší než jeho předchůdce? Co způsobuje, že YOLOv7 je tak efektivní při provádění úloh počítačového vidění?
V tomto článku se pokusíme analyzovat model YOLOv7 a najít odpověď na to, proč se YOLOv7 stává průmyslovým standardem. Ale předtím musíme mít základní přehled o historii detekce objektů.
Co je detekce objektů?
Detekce objektů je odvětví počítačového vidění, které identifikuje a lokalizuje objekty v obraze nebo videu. Detekce objektů je stavebním kamenem mnoha aplikací, včetně autonomních vozidel, monitorovaných bezpečnostních systémů a dokonce i robotiky.
Model detekce objektů lze klasifikovat do dvou různých kategorií, jednotlivé detektory a mnohonásobné detektory.
Detekce objektů v reálném čase
Abychom skutečně pochopili, jak YOLOv7 funguje, je důležité pochopit jeho hlavní cíl, „detekci objektů v reálném čase“. Detekce objektů v reálném čase je klíčovým komponentem moderního počítačového vidění. Modely detekce objektů v reálném čase se snaží identifikovat a lokalizovat objekty zájmu v reálném čase. Modely detekce objektů v reálném čase umožňují vývojářům efektivně sledovat objekty zájmu v pohyblivém rámci, jako je video nebo živý bezpečnostní vstup.

Modely detekce objektů v reálném čase jsou vlastně krok vpřed od konvenčních modelů detekce obrazů. Zatímco první jsou používány pro sledování objektů ve videích, druhé lokalizují a identifikují objekty v rámci statického obrazu.
Jako výsledek, modely detekce objektů v reálném čase jsou velmi efektivní pro videoanalytiku, autonomní vozidla, počítání objektů, sledování více objektů a mnoho dalšího.
Co je YOLO?
YOLO nebo „Vous Only Look Once“ je rodina modelů detekce objektů v reálném čase. Koncept YOLO byl poprvé představen v roce 2016 Josephem Redmonem a stal se okamžitě horkým tématem, protože byl mnohem rychlejší a přesnější než stávající algoritmy detekce objektů. Není divu, že algoritmus YOLO se stal standardem v oblasti počítačového vidění.

Základní koncept, který algoritmus YOLO navrhuje, je použití end-to-end neuronové sítě pomocí bounding boxů a class probabilities pro předpověď v reálném čase. YOLO se lišil od předchozích modelů detekce objektů v tom, že navrhl jiný přístup k detekci objektů repurposing klasifikátorů.
Změna přístupu fungovala, protože YOLO brzy stal se průmyslovým standardem, protože rozdíl ve výkonu mezi ním a jinými modely detekce objektů v reálném čase byl významný. Ale co bylo důvodem, proč YOLO byl tak efektivní?
Když byl porovnán s YOLO, algoritmy detekce objektů v té době používaly Region Proposal Networks pro detekci možných oblastí zájmu. Proces rozpoznávání byl pak proveden na každé oblasti zvlášť. Jako výsledek, tyto modely často prováděly multiple iterace na stejném obraze a tudíž chyběla přesnost a vyšší čas provedení. Na druhé straně, algoritmus YOLO používá jeden plně propojený vrstvu pro provedení předpovědi najednou.
Jak funguje YOLO?
Existují tři kroky, které vysvětlují, jak funguje algoritmus YOLO.
Předefinování detekce objektů jako jediný regresní problém
Algoritmus YOLO se snaží předefinovat detekci objektů jako jediný regresní problém, včetně obrazových pixelů, class probabilities a bounding box koordinát. Tudíž, algoritmus musí vidět obraz pouze jednou, aby předpověděl a lokalizoval cílové objekty v obraze.
Důvod, proč obraz globálně
Dále, když algoritmus YOLO dělá předpovědi, důvod, proč obraz globálně. Liší se od region proposal-based a sliding technik, protože algoritmus YOLO vidí celý obraz během trénování a testování na datasetu a je schopen zakódovat kontextuální informace o třídách a jak se objevují.
Před YOLO, Fast R-CNN byl jedním z nejpopulárnějších algoritmů detekce objektů, který nemohl vidět větší kontext v obraze, protože používal chybné pozadí v obraze pro objekt. Když byl porovnán s Fast R-CNN algoritmem, YOLO je o 50% přesnější, když jde o chyby pozadí.
Generalizace reprezentace objektů
Nakonec, algoritmus YOLO také cílí na generalizaci reprezentace objektů v obraze. Jako výsledek, když byl algoritmus YOLO spuštěn na datasetu s přírodními obrazy a testován na výsledcích, YOLO překonal existující R-CNN modely o široký margin. Je to proto, že YOLO je vysoce generalizovatelný, šance, že se rozpadne při implementaci na neočekávané vstupy nebo nové domény, jsou malé.
YOLOv7: Co je nového?
Nyní, když máme základní přehled o tom, co jsou modely detekce objektů v reálném čase a co je algoritmus YOLO, je čas diskutovat o algoritmu YOLOv7.
Optimalizace trénovacího procesu
Algoritmus YOLOv7 se snaží optimalizovat nejen architekturu modelu, ale také trénovací proces. Cílí na použití optimalizačních modulů a metod pro zlepšení přesnosti detekce objektů, posílení nákladů na trénování, zatímco zachování interferenčních nákladů. Tyto optimalizační moduly lze nazvat trénovatelným bagem freebies.
Coarse to Fine Lead Guided Label Assignment
Algoritmus YOLOv7 plánuje použít nový Coarse to Fine Lead Guided Label Assignment místo konvenčního Dynamic Label Assignment. Je to proto, že s dynamickým přiřazováním labelů, trénování modelu s více výstupními vrstvami způsobuje některé problémy, nejčastěji, jak přiřadit dynamické cíle pro různé větve a jejich výstupy.
Model Re-Parameterization
Model re-parametrization je důležitý koncept v detekci objektů a jeho použití je obecně doprovázeno některými problémy během trénování. Algoritmus YOLOv7 plánuje použít koncept gradient propagation path pro analýzu modelu re-parametrization politik aplikovaných na různé vrstvy v síti.
Extend and Compound Scaling
Algoritmus YOLOv7 také zavádí rozšířené a složené metody škálování pro využití a efektivní použití parametrů a výpočtů pro detekci objektů v reálném čase.

YOLOv7: Související práce
Detekce objektů v reálném čase
YOLO je aktuálně průmyslovým standardem a většina modelů detekce objektů v reálném čase nasazuje algoritmy YOLO a FCOS (Fully Convolutional One-Stage Object-Detection). Stavový model detekce objektů v reálném čase obvykle má následující charakteristiky
- Silnější a rychlejší architektura sítě.
- Efektivní metoda integrace funkcí.
- Přesná metoda detekce objektů.
- Robustní funkce ztráty.
- Efektivní metoda přiřazování labelů.
- Efektivní trénovací metoda.
Algoritmus YOLOv7 nepoužívá samo-supervizované učení a destilaci, které často vyžadují velké množství dat. Naopak, algoritmus YOLOv7 používá trénovatelný bag-of-freebies metodu.
Model Re-Parameterization
Model re-parametrization je považován za ensemble techniku, která kombinuje více výpočetních modulů ve fázi interference. Tato technika může být dále rozdělena do dvou kategorií, model-level ensemble a module-level ensemble.
Nyní, aby se získal konečný interference model, model-level reparameterization technika používá dvě praktiky. První praktika používá různé trénovací data pro trénování mnoha identických modelů a poté průměruje váhy trénovaných modelů. Alternativně, druhá praktika průměruje váhy modelů během různých iterací.
Module-level re-parametrization získává最近 immense popularity, protože rozděluje modul do různých modulů nebo identických větví během trénovací fáze a poté integruje tyto různé větve do ekvivalentního modulu během interference.
Nicméně, re-parametrization techniky nemohou být aplikovány na všechny typy architektur. Je to důvod, proč algoritmus YOLOv7 používá nové model re-parametrization techniky pro návrh souvisejících strategií pro různé architektury.
Model Scaling
Model scaling je proces škálování existujícího modelu, aby se vešel do různých výpočetních zařízení. Model scaling obecně používá různé faktory, jako je počet vrstev (hloubka), velikost vstupních obrazů (rozlišení), počet funkcí (šířka) a počet kanálů (šířka).
Jednou z nejčastěji používaných metod škálování je NAS nebo Network Architecture Search, který automaticky hledá vhodné škálovací faktory z vyhledávacích engine bez jakýchkoliv složitých pravidel. Hlavní nevýhodou použití NAS je, že je to nákladný přístup pro hledání vhodných škálovacích faktorů.
Téměř každý model re-parametrization analyzuje jednotlivé a jedinečné škálovací faktory nezávisle a dále je optimalizuje nezávisle. Je to proto, že NAS architektura pracuje s nekorrelačními škálovacími faktory.
Je worth noting, že concatenation-based modely, jako je VoVNet nebo DenseNet, mění vstupní šířku některých vrstev, když je hloubka modelu škálována. YOLOv7 pracuje na navrhované concatenation-based architektuře a proto používá compound scaling metodu.

Obrázek výše porovnává rozšířené efektivní vrstvy agregace (E-ELAN) různých modelů. Navrhovaný E-ELAN metoda zachovává gradient transmission path původní architektury, ale cílí na zvýšení kardinality přidávaných funkcí pomocí group convolution. Proces může zlepšit funkce naučené různými mapami a může dále využít výpočty a parametry.
YOLOv7 Architektura
Model YOLOv7 používá YOLOv4, YOLO-R a Scaled YOLOv4 modely jako svou základnu. YOLOv7 je výsledkem experimentů provedených na těchto modelech pro zlepšení výsledků a učinit model více přesným.
Extended Efficient Layer Aggregation Network nebo E-ELAN
E-ELAN je základním stavebním kamenem modelu YOLOv7 a je odvozen od již existujících modelů na síťové efektivitě, hlavně ELAN.
Hlavními úvahami při navrhování efektivní architektury jsou počet parametrů, výpočetní hustota a množství výpočtu. Další modely také zvažují faktory, jako je vliv vstupní/výstupní kanálové poměr, větve v architektuře sítě, síťová interference rychlost, počet prvků v tensoru konvoluční sítě a další.
Model CSPVoNet ne pouze zvažuje výše uvedené parametry, ale také analyzuje gradient path pro naučení více rozmanitých funkcí umožněním váhy různých vrstev. Přístup umožňuje interferenci být mnohem rychlejší a přesnější. Architektura ELAN cílí na návrh efektivní sítě pro kontrolu nejkratšího gradient path, aby síť mohla být více efektivní v učení a konvergenci.
ELAN již dosáhl stabilního stavu bez ohledu na počet vrstev výpočetních bloků a délku gradient path. Stabilní stav by mohl být zničen, pokud by výpočetní bloky byly zásobeny neomezeně a parametr využití率 by se snížil. Navrhovaná E-ELAN architektura může řešit problém tím, že používá expand, shuffling a merging kardinality pro kontinuální zlepšení sítě-learning schopnosti, zatímco zachování původního gradient path.
Navíc, když porovnáme architekturu E-ELAN s ELAN, jediná rozdíl je v komputačním bloku, zatímco přechodová vrstva architektura je nezměněna.
E-ELAN navrhuje expandovat kardinalitu komputačních bloků a expandovat kanál pomocí group convolution. Feature mapa bude poté vypočtena a rozdělena do skupin podle group parametru a poté budou sloučeny dohromady. Počet kanálů v každé skupině zůstane stejný jako v původní architektuře.
Model Scaling pro Concatenation-Based Modely
Model scaling pomáhá upravit atributy modelů, aby generoval modely podle požadavků a různých měřítek pro různé interference rychlosti.

Obrázek výše mluví o model scaling pro různé concatenation-based modely. Jak můžete vidět v obrázku (a) a (b), výstupní šířka komputačního bloku se zvyšuje s hloubkou modelu. Výsledkem je, že vstupní šířka transmission layer je zvýšena.
Je možné tedy uzavřít, že není možné analyzovat škálovací faktory nezávisle pro concatenation-based modely a spíše je musí být zvažovány společně. Proto, pro concatenation-based model, je vhodné použít odpovídající compound model scaling metodu. Navíc, když je hloubka faktor škálován, výstupní kanál bloku musí být také škálován.
Trénovatelný bag of freebies
Trénovatelný bag of freebies je termín, který vývojáři používají pro popis sady metod nebo technik, které mohou změnit trénovací strategii nebo náklady v pokusu o zvýšení přesnosti modelu. Co jsou tyto trénovatelné bag of freebies v YOLOv7? Pojďme se podívat.
Planned Re-Parameterized Convolution
Algoritmus YOLOv7 používá gradient flow propagation paths pro určení, jak ideálně kombinovat síť s re-parametrizovaným konvolucí. Tento přístup algoritmu YOLOv7 je pokus o nápravu RepConv algoritmu, který, ačkoli funguje dobře na VGG modelu, funguje špatně, když je aplikován přímo na DenseNet a ResNet modely.
Pro identifikaci spojení v konvoluční vrstvě, RepConv algoritmus kombinuje 3×3 konvoluci a 1×1 konvoluci. Pokud analyzujeme algoritmus, jeho výkon a architekturu, budeme moci pozorovat, že RepConv ničí konkatenaci v DenseNet a reziduální v ResNet.

Obrázek výše ukazuje planned re-parametrizovaný model. Je vidět, že algoritmus YOLOv7 našel, že vrstva v síti s konkatenací nebo reziduálními spojeními by neměla mít identitu spojení v RepConv algoritmu. Výsledkem je, že je přijatelné přepnout na RepConvN bez identitní spojení.
Coarse for Auxiliary a Fine for Lead Loss
Deep Supervision je odvětví počítačové vědy, které často nachází své použití v trénovacím procesu hlubokých sítí. Základní princip hluboké supervize je, že přidává další pomocnou hlavu ve středních vrstvách sítě spolu s mělkými váhami sítě a pomocnou ztrátou jako vůdcem. Algoritmus YOLOv7 označuje hlavu, která je zodpovědná za konečnou výstup jako lead head, a pomocnou hlavu jako pomocnou hlavu.
Pokračujeme, YOLOv7 používá jinou metodu pro přiřazování labelů. Konvenčně, labely byly generovány přímo z ground truth a na základě daného souboru pravidel. Nicméně, v posledních letech, distribuce a kvalita předpovědi vstupu hraje důležitou roli při generování spolehlivého labelu. YOLOv7 generuje měkký label objektu pomocí předpovědí bounding boxu a ground truth.
Navíc, nová metoda přiřazování labelů algoritmu YOLOv7 používá lead head předpovědí pro vedení obou lead a pomocné hlavy. Metoda přiřazování labelů má dvě navrhované strategie.
Lead Head Guided Label Assigner
Strategie dělá výpočty na základě lead head předpovědí a ground truth a poté používá optimalizaci pro generování měkkých labelů. Tyto měkké labely jsou poté použity jako trénovací model pro obě lead a pomocné hlavy.
Strategie funguje na předpokladu, že, protože lead head má větší učební schopnost, labely, které generuje, by měly být více reprezentativní a korelovat mezi zdrojem a cílem.
Coarse-to-Fine Lead Head Guided Label Assigner
Tato strategie také dělá výpočty na základě lead head předpovědí a ground truth a poté používá optimalizaci pro generování měkkých labelů. Nicméně, existuje jeden klíčový rozdíl. V této strategii existují dvě sady měkkých labelů, hrubý level a jemný label.
Hrubý label je generován relaxací omezení pozitivního vzorku
přiřazování procesu, který zachází s více mřížkami jako pozitivními cíli. Je to proto, aby se zabránilo riziku ztráty informací kvůli slabší učební síle pomocné hlavy.

Obrázek výše vysvětluje použití trénovatelného bagu freebies v algoritmu YOLOv7. Ukazuje coarse pro pomocnou hlavu a fine pro lead hlavu. Když srovnáme model s pomocnou hlavou (b) s normálním modelem (a), budeme moci pozorovat, že schéma v (b) má pomocnou hlavu, zatímco v (a) ne.
Obrázek (c) ukazuje společný nezávislý label assigner, zatímco obrázek (d) a (e) reprezentují Lead Guided Assigner a Coarse-to-Fine Lead Guided Assigner používané YOLOv7.
Other Trainable Bag of Freebies
Kromě výše uvedených, algoritmus YOLOv7 používá další trénovatelné bag of freebies, i když nebyly původně navrženy jimi. Jsou
- Batch Normalization v Conv-Bn-Activation technologii: Tato strategie se používá pro přímé spojení konvoluční vrstvy s batch normalization vrstvou.
- Implicitní znalosti v YOLOR: Algoritmus YOLOv7 kombinuje tuto strategii s konvoluční feature mapou.
- EMA model: EMA model se používá jako konečný referenční model v YOLOv7, i když jeho primární použití je v mean teacher metodě.
YOLOv7: Experimenty
Experimentální nastavení
Algoritmus YOLOv7 používá Microsoft COCO dataset pro trénování a validaci svého modelu detekce objektů a ne všechny tyto experimenty používají předtrénovaný model. Vývojáři použili 2017 trénovací dataset pro trénování a 2017 validační dataset pro výběr hyperparametrů. Nakonec, výkon algoritmu YOLOv7 je porovnán se státními algoritmy detekce objektů.
Vývojáři navrhli základní model pro hranici GPU (YOLOv7-tiny), normální GPU (YOLOv7) a cloud GPU (YOLOv7-W6). Navíc, algoritmus YOLOv7 také používá základní model pro model scaling podle různých služeb požadavků a získává různé modely. Pro algoritmus YOLOv7 je stack scaling proveden na krku a navrhované sloučeniny jsou použity pro upscale hloubky a šířky modelu.
Baseline
Algoritmus YOLOv7 používá předchozí YOLO modely a YOLOR objekt detekční algoritmus jako svou baseline.

Obrázek výše porovnává baseline modelu YOLOv7 s jinými modely detekce objektů a výsledky jsou khá evidentní. Když je porovnán s YOLOv4 algoritmem, YOLOv7 nejenom používá 75% méně parametrů, ale také používá 15% méně výpočtu a má 0,4% vyšší přesnost.
Porovnání se státními modely detekce objektů

Obrázek výše ukazuje výsledky, když je YOLOv7 porovnán se státními modely detekce objektů pro mobilní a obecné GPU. Je vidět, že metoda navrhovaná algoritmem YOLOv7 má nejlepší rychlost-přesnost obchod.
Ablation Study: Navrhovaná Compound Scaling Metoda

Obrázek výše porovnává výsledky použití různých strategií pro upscale modelu. Škálovací strategie v modelu YOLOv7 škáluje hloubku komputačního bloku 1,5krát a škáluje šířku 1,25krát.
Když je porovnán s modelem, který pouze škáluje hloubku, model YOLOv7 funguje lépe o 0,5%, zatímco používá méně parametrů a výpočtů. Na druhé straně, když je porovnán s modely, které pouze škáluje hloubku, přesnost YOLOv7 je zlepšena o 0,2%, ale počet parametrů musí být škálován o 2,9% a výpočet o 1,2%.
Navrhovaný Planned Re-Parameterized Model
Aby ověřil obecnost svého navrhovaného re-parametrizovaného modelu, algoritmus YOLOv7 používá jej na reziduální-based a concatenation-based modelech pro ověření. Pro ověření, algoritmus YOLOv7 používá 3-stacked ELAN pro concatenation-based model a CSPDarknet pro reziduální-based model.
Pro concatenation-based model, algoritmus YOLOv7 nahrazuje 3×3 konvoluční vrstvy v 3-stacked ELAN s RepConv. Obrázek níže ukazuje podrobnou konfiguraci Planned RepConv a 3-stacked ELAN.

Navíc, když je zpracováván reziduální-based model, algoritmus YOLOv7 používá reverse dark block, protože původní dark block nemá 3×3 konvoluční blok. Obrázek níže ukazuje architekturu Reversed CSPDarknet, která obrací pozice 3×3 a 1×1 konvolučních vrstev.
Navrhovaná pomocná ztráta pro pomocnou hlavu
Pro pomocnou ztrátu pro pomocnou hlavu, model YOLOv7 porovnává nezávislé label přiřazování pro pomocnou hlavu a lead hlavu metody.

Obrázek výše obsahuje výsledky studie o navrhované pomocné hlavě. Je vidět, že celkový výkon modelu se zvyšuje se zvyšující se pomocnou ztrátou. Navíc, lead guided label assignment navrhovaný algoritmem YOLOv7 funguje lépe než nezávislé lead assignment strategie.
YOLOv7 Výsledky
Na základě výše uvedených experimentů, zde jsou výsledky výkonu YOLOv7 ve srovnání s jinými algoritmy detekce objektů.

Obrázek výše porovnává model YOLOv7 s jinými algoritmy detekce objektů a je vidět, že YOLOv7 překonává ostatní modely detekce objektů v termínech Průměrné přesnosti (AP) vs. batch interference.
Navíc, níže uvedený obrázek porovnává výkon YOLOv7 s jinými modely detekce objektů v reálném čase. Opět, YOLOv7 překonává ostatní modely v termínech celkového výkonu, přesnosti a efektivity.

Zde jsou některé další pozorování z výsledků YOLOv7 a výkonu.
- YOLOv7-Tiny je nejmenším modelem v rodině YOLO, s více než 6 miliony parametrů. YOLOv7-Tiny má průměrnou přesnost 35,2% a překonává YOLOv4-Tiny modely s porovnatelnými parametry.
- Model YOLOv7 má více než 37 milionů parametrů a překonává modely s vyšším počtem parametrů, jako je YOLov4.
- Model YOLOv7 má nejvyšší mAP a FPS rychlost v rozmezí 5 až 160 FPS.
Závěr
YOLO nebo You Only Look Once je aktuálním státním modelem detekce objektů v moderním počítačovém vidění. Algoritmus YOLO je známý pro svou vysokou přesnost a efektivitu a jako výsledek, nachází široké uplatnění v reálném čase detekce objektů. Od doby, kdy byl první algoritmus YOLO představen v roce 2016, experimenty umožnily vývojářům zlepšit model kontinuálně.
Model YOLOv7 je nejnovějším přídavkem do rodiny YOLO a je nejvýkonnějším YOLO algoritmem do dneška. V tomto článku, jsme mluvili o základech YOLOv7 a snažili se vysvětlit, co dělá YOLOv7 tak efektivní.












