AI-modeller och plattformar
YOLOv7: Den mest avancerade algoritm för objektdetektering?

Den 6 juli 2022 kommer att bli ett betydelsefullt datum i AI-historien, eftersom det var den dagen då YOLOv7 släpptes. Sedan dess har YOLOv7 varit det hetaste ämnet i samhället för datorseendeutvecklare, och det av goda skäl. YOLOv7 anses redan vara en milstolpe inom objektdetekteringsindustrin.
Strax efter att YOLOv7-papperet publicerades visade det sig vara den snabbaste och mest precisa modellen för realtidsobjektdetektering. Men hur överträffar YOLOv7 sina föregångare? Vad gör YOLOv7 så effektivt när det gäller att utföra datorseendeuppgifter?
I den här artikeln kommer vi att försöka analysera YOLOv7-modellen och försöka hitta svaret på varför YOLOv7 nu blir en branschstandard. Men innan vi kan svara på det måste vi ta en titt på den korta historien om objektdetektering.
Vad är objektdetektering?
Objektdetektering är en gren inom datorseende som identifierar och lokaliserar objekt i en bild eller en video. Objektdetektering är byggstenen för många tillämpningar, inklusive självkörande bilar, övervakad övervakning och till och med robotik.
En objektdetekteringsmodell kan delas in i två olika kategorier, single-shot-detektorer och multi-shot-detektorer.
Realtidsobjektdetektering
För att verkligen förstå hur YOLOv7 fungerar är det viktigt för oss att förstå YOLOv7:s huvudsakliga mål, “realtidsobjektdetektering”. Realtidsobjektdetektering är en viktig komponent i modern datorseende. Realtidsobjektdetekteringsmodellerna försöker identifiera och lokalisera objekt i realtid.

Realtidsobjektdetekteringsmodellerna är i princip ett steg före de konventionella bildigenkänningsmodellerna. Medan den förra används för att spåra objekt i video, lokaliserar och identifierar den senare objekt inom en stationär ram som en bild.
Som ett resultat är realtidsobjektdetekteringsmodellerna mycket effektiva för videoanalys, autonoma fordon, objekträkning, multiobjektsräkning och mycket mer.
Vad är YOLO?
YOLO eller “You Only Look Once” är en familj av modeller för realtidsobjektdetektering. YOLO-konceptet introducerades först 2016 av Joseph Redmon och det blev omedelbart ett snackis eftersom det var mycket snabbare och mer exakt än de befintliga objektdetekteringsalgoritmerna. Det dröjde inte länge förrän YOLO-algoritmen blev en standard inom datorseendeindustrin.

Det grundläggande konceptet som YOLO-algoritmen förespråkar är att använda ett slut-till-slut-neuronnät med begränsningsrutor och klasssannolikhet för att göra förutsägelser i realtid. YOLO skiljer sig från tidigare objektdetekteringsmodeller genom att den förespråkar en annan tillvägagångssätt för att utföra objektdetektering genom att återanvända klassificerare.
Förändringen i tillvägagångssättet fungerade eftersom YOLO snabbt blev branschstandard och prestandagapet mellan sig själv och andra realtidsobjektdetekteringsalgoritmer var betydande. Men vad var anledningen till att YOLO var så effektiv?
När man jämför YOLO med objektdetekteringsalgoritmer tidigare använde dessa modeller Region Proposal Networks för att detektera möjliga områden av intresse. Erkännandeprocessen utfördes sedan på varje område separat. Som ett resultat utförde dessa modeller ofta flera iterationer på samma bild och därmed bristen på exakthet och högre exekveringstid. Å andra sidan använder YOLO-algoritmen ett enda fullständigt anslutet lager för att utföra förutsägelsen på en gång.
Hur fungerar YOLO?
Det finns tre steg som förklarar hur en YOLO-algoritm fungerar.
Omformulera objektdetektering som ett enda regressionsproblem
YOLO-algoritmen försöker omformulera objektdetektering som ett enda regressionsproblem, inklusive bildpixlar, till klasssannolikhet och begränsningsrutekoordinater. Därför måste algoritmen bara titta på bilden en gång för att förutsäga och lokalisera målobjekt i bilderna.
Anledningar till att bilden ses globalt
Dessutom, när YOLO-algoritmen gör förutsägelser, ser den bilden globalt. Det skiljer sig från region-förslagsbaserade och skjuttekniker eftersom YOLO-algoritmen ser hela bilden under utbildning och testning på datasetet och kan koda kontextuell information om klasserna och hur de visas.
Innan YOLO var Fast R-CNN en av de mest populära objektdetekteringsalgoritmerna som inte kunde se den större kontexten i bilden eftersom den använde att förväxla bakgrundsfläckar i en bild med ett objekt. När man jämför med Fast R-CNN-algoritmen är YOLO 50% mer exakt när det gäller bakgrundsfelet.
Generalisera representationen av objekt
Slutligen syftar YOLO-algoritmen också till att generalisera representationen av objekt i en bild. Som ett resultat, när en YOLO-algoritm kördes på ett dataset med naturliga bilder och testades för resultaten, överträffade YOLO befintliga R-CNN-modeller med en stor marginal. Det är för att YOLO är högt generaliserbart, chanserna att den bryter ner när den implementeras på oväntade indata eller nya domäner var små.
YOLOv7: Vad är nytt?
Nu när vi har en grundläggande förståelse för vad realtidsobjektdetekteringsmodeller är och vad YOLO-algoritmen är, är det dags att diskutera YOLOv7-algoritmen.
Optimera utbildningsprocessen
YOLOv7-algoritmen försöker inte bara optimera modellarkitekturen, utan den syftar också till att optimera utbildningsprocessen. Den syftar till att använda optimeringsmoduler och metoder för att förbättra objektdetekteringsnoggrannheten, stärka utbildningskostnaden samtidigt som den upprätthåller interferenskostnaden. Dessa optimeringsmoduler kan kallas för en “trainable bag of freebies”.
Grovt till fint ledande etiketttilldelning
YOLOv7-algoritmen planerar att använda en ny grov till fin etiketttilldelning i stället för den konventionella dynamiska etiketttilldelningen. Det är så eftersom den dynamiska etiketttilldelningen, när man tränar en modell med flera utmatningslager, orsakar vissa problem, den vanligaste är hur man tilldelar dynamiska mål för olika grenar och deras utmatningar.
Modellomparametrering
Modellomparametrering är ett viktigt koncept inom objektdetektering, och dess användning följs vanligtvis av vissa problem under utbildning. YOLOv7-algoritmen planerar att använda konceptet gradientöverföringsväg för att analysera modellomparametreringsprinciper som är tillämpliga på olika lager i nätverket.
Utöka och sammansatt skalning
YOLOv7-algoritmen introducerar också utökade och sammansatta skalningsmetoder för att utnyttja och effektivt använda parametrar och beräkningar för realtidsobjektdetektering.

YOLOv7: Relaterad forskning
Realtidsobjektdetektering
YOLO är för närvarande branschstandard, och de flesta realtidsobjektdetektorer distribuerar YOLO-algoritmer och FCOS (Fully Convolutional One-Stage Object-Detection). En state-of-the-art realtidsobjektdetektor har vanligtvis följande egenskaper
- Starkare och snabbare nätverksarkitektur.
- En effektiv funktionssammanslagningsmetod.
- En exakt objektdetekteringsmetod.
- En robust förlustfunktion.
- En effektiv etiketttilldelningsmetod.
- En effektiv utbildningsmetod.
YOLOv7-algoritmen använder inte självständig inlärning och destilleringstekniker som ofta kräver stora mängder data. I stället använder YOLOv7-algoritmen en “trainable bag-of-freebies”-metod.
Modellomparametrering
Modellomparametreringstekniker anses vara en ensembleteknik som kombinerar flera beräkningsmoduler i en interferensfas. Tekniken kan delas in i två kategorier, modellnivåensemble och modulnivåensemble.
För att få den slutliga interferensmodellen använder modellnivåreparametreringstekniken två metoder. Den första metoden använder olika utbildningsdata för att träna flera identiska modeller och sedan genomsnittliga viktorna för de tränade modellerna. Alternativt använder den andra metoden viktorna för modeller under olika iterationer.
Modulnivåreparametrering är en teknik som delar upp en modul i olika modulgrenar eller olika identiska grenar under utbildningsfasen och sedan integrerar dessa grenar i en ekvivalent modul under interferens.
Men reparametreringstekniker kan inte tillämpas på alla typer av arkitektur. Det är därför YOLOv7-algoritmen använder nya modellreparametreringstekniker för att utforma relaterade strategier som är lämpliga för olika arkitekturer.
Modellskalning
Modellskalning är processen att skala upp eller ned en befintlig modell så att den passar över olika beräkningsenheter. Modellskalning använder vanligtvis en mängd olika faktorer som antalet lager (djup), storlek på ingångsbilder (upplösning), antalet funktionella pyramider (stadier) och antalet kanaler (bredd).
En av de vanligaste skalningsmetoderna är NAS eller Network Architecture Search som automatiskt söker efter lämpliga skalningsfaktorer från sökmotorer utan några komplicerade regler. Den stora nackdelen med att använda NAS är att det är en dyrt metod för att söka efter lämpliga skalningsfaktorer.
Nästan alla modellreparametreringsmodeller analyserar individuella och unika skalningsfaktorer oberoende och optimerar dessutom dessa faktorer oberoende. Det är för att NAS-arkitekturen fungerar med icke-korrelaterade skalningsfaktorer.
Det är värt att notera att sammansättningsbaserade modeller som VoVNet eller DenseNet ändrar ingångsbredden på vissa lager när modellens djup skalas. YOLOv7 fungerar på en föreslagen sammansättningsbaserad arkitektur och använder därför en sammansatt skalningsmetod.

Figuren ovan jämför de utökade effektiva lageraggregationsnätverken (E-ELAN) för olika modeller. Den föreslagna E-ELAN-metoden upprätthåller den ursprungliga arkitekturens gradientöverföringsväg, men syftar till att öka kardinaliteten hos de tillagda funktionerna med hjälp av gruppkonvolution. Processen kan förbättra funktionerna som lärs av olika kartor och kan ytterligare göra användningen av beräkningar och parametrar mer effektiv.
YOLOv7-arkitektur
YOLOv7-modellen använder YOLOv4, YOLO-R och Scaled YOLOv4-modellerna som bas. YOLOv7 är ett resultat av de experiment som utfördes på dessa modeller för att förbättra resultaten och göra modellen mer exakt.
Utökat effektivt lageraggregationsnätverk eller E-ELAN
E-ELAN är den grundläggande byggstenen i YOLOv7-modellen och den är härledd från befintliga modeller för nätverkseffektivitet, främst ELAN.
De viktigaste övervägandena när man utformar en effektiv arkitektur är antalet parametrar, beräkningsdensitet och mängden beräkningar. Andra modeller överväger också faktorer som påverkan av ingång/utgångskanalsförhållande, grenar i nätverksarkitekturen, nätverksinterferenshastighet, antalet element i tensorerna i det konvolutionella nätverket och mer.
CSPVoNet-modellen överväger inte bara ovan nämnda parametrar, utan den analyserar också gradientvägen för att lära sig mer diversifierade funktioner genom att aktivera viktorna för olika lager. Tillvägagångssättet tillåter interferensen att vara mycket snabbare och mer exakt.
ELAN-arkitekturen syftar till att utforma ett effektivt nätverk för att kontrollera den kortaste längsta gradientvägen så att nätverket kan vara mer effektivt i lärande och konvergens.
ELAN har redan nått en stabil fas oavsett antalet staplade beräkningsblock och gradientväglängd. Den stabila fasen kan förstöras om beräkningsblocken staplas oändligt och parameterutnyttjandegraden kommer att minska. Den föreslagna E-ELAN-arkitekturen kan lösa problemet eftersom den använder utvidgning, omrörning och sammanslagning av kardinalitet för att kontinuerligt förbättra nätverkets lärandeförmåga samtidigt som den upprätthåller den ursprungliga gradientvägen.
Utöver det, när man jämför E-ELAN-arkitekturen med ELAN, är den enda skillnaden i beräkningsblocket, medan övergångslagrets arkitektur är oförändrad.
E-ELAN föreslår att utvidga kardinaliteten hos de beräkningsblocken och utvidga kanalen med hjälp av gruppkonvolution. Funktionen kartan kommer sedan att beräknas och omröras i grupper enligt gruppens parameter och sedan sammanfogas. Antalet kanaler i varje grupp kommer att förbli detsamma som i den ursprungliga arkitekturen. Slutligen kommer grupperna av funktioner att läggas till för att utföra kardinalitet.
Modellskalning för sammansättningsbaserade modeller
Modellskalning hjälper till att justera attribut för modellerna som hjälper till att generera modeller enligt kraven och i olika skalor för att uppfylla olika interferenshastigheter.

Figuren ovan beskriver modellskalning för olika sammansättningsbaserade modeller. Som du kan se i figur (a) och (b) ökar utmatningsbredden på beräkningsblocket med en ökning av modellens djup. Resultatet är att ingångsbredden på överföringslagren ökar. Om dessa metoder tillämpas på sammansättningsbaserad arkitektur utförs skalningsprocessen i djup och det visas i figur (c).
Det kan således slutsatsas att det inte är möjligt att analysera skalningsfaktorerna oberoende för sammansättningsbaserade modeller, utan de måste analyseras tillsammans. Därför är det lämpligt att använda den sammansatta modellskalningsmetoden för en sammansättningsbaserad modell. Dessutom, när djupfaktorn skalas, måste utmatningskanalen också skalas.
Tränbar påse med gratisvaror
En påse med gratisvaror är en term som utvecklare använder för att beskriva en uppsättning metoder eller tekniker som kan ändra utbildningsstrategin eller kostnaden för att förbättra modellens noggrannhet. Vad är då dessa tränbara påsar med gratisvaror i YOLOv7?
Planerad omparametrerad konvolution
YOLOv7-algoritmen använder gradientflödesöverföringsvägar för att bestämma hur man idealiskt kombinerar ett nätverk med den omparametrerade konvolutionen. Tillvägagångssättet för YOLOv7 är ett försök att motverka RepConv-algoritmen som, även om den har presterat väl på VGG-modellen, presterar dåligt när den tillämpas direkt på DenseNet- och ResNet-modellerna.
För att identifiera anslutningarna i ett konvolutionslager kombinerar RepConv-algoritmen 3×3-konvolution och 1×1-konvolution. Om vi analyserar algoritmen, dess prestanda och arkitekturen kommer vi att observera att RepConv förstör sammansättningen i DenseNet och den residuella i ResNet.

Bilden ovan visar en planerad omparametrerad modell. Det kan ses att YOLOv7-algoritmen fann att ett lager i nätverket med sammansättning eller residuella anslutningar inte borde ha en identitetsanslutning i RepConv-algoritmen. Resultatet är att det är acceptabelt att byta ut RepConvN med ingen identitetsanslutning.
Grovt för hjälp och fint för ledande förlust
Djup tillsyn är en gren inom datavetenskap som ofta används i utbildningsprocessen för djupa nätverk. Den grundläggande principen för djup tillsyn är att den lägger till ett extra hjälphuvud i mittenlagren av nätverket tillsammans med de grunt nätverksviktorna med hjälp av en hjälpförlust. YOLOv7-algoritmen kallar huvudet som är ansvarigt för den slutliga utmatningen för ledande huvud och hjälphuvudet är det huvud som hjälper till under utbildningen.
Fortsättning, YOLOv7 använder en annan metod för etiketttilldelning. Traditionellt har etiketttilldelning använts för att generera etiketter genom att hänvisa direkt till grundvärdet och enligt en given uppsättning regler. Men på senare tid spelar distributionen och kvaliteten på förutsägelseingången en viktig roll för att generera en tillförlitlig etikett. YOLOv7 genererar en mjuk etikett för objektet genom att använda förutsägelserna för begränsningsruta och grundvärdet.
Dessutom använder den nya etiketttilldelningsmetoden för YOLOv7-algoritmen ledande huvudets förutsägelser för att guida både ledande och hjälphuvud. Etiketttilldelningsmetoden har två föreslagna strategier.
Ledande huvudguiderad etiketttilldelare
Strategin beräknar utifrån ledande huvudets förutsägelse och grundvärdet och använder sedan optimering för att generera mjuka etiketter. Dessa mjuka etiketter används sedan som utbildningsmodell för både ledande och hjälphuvud.
Strategin fungerar utifrån antagandet att eftersom ledande huvudet har en större lärandeförmåga, bör etiketterna det genererar vara mer representativa och korrelera mellan källan och målet.
Grovt till fint ledande huvudguiderad etiketttilldelare
Denna strategi beräknar också utifrån ledande huvudets förutsägelse och grundvärdet och använder sedan optimering för att generera mjuka etiketter. Men det finns en viktig skillnad. I denna strategi finns det två uppsättningar mjuka etiketter, grov nivå och fin nivå.
Den grova etiketten genereras genom att slappna av begränsningarna för den positiva sampel tilldelningsprocessen som behandlar fler rutnät som positiva mål. Det görs för att undvika risken att förlora information på grund av det svagare lärandet hos hjälphuvudet.

Bilden ovan visar användningen av en tränbar påse med gratisvaror i YOLOv7-algoritmen. Den visar grovt för hjälphuvud och fint för ledande huvud. När vi jämför en modell med hjälphuvud (b) med en normal modell (a) kommer vi att observera att schemat i (b) har ett hjälphuvud, medan det inte finns i (a).
Figur (c) visar den vanliga oberoende etiketttilldelaren, medan figur (d) och (e) representerar ledande huvudguiderad etiketttilldelare och grovt till fint ledande huvudguiderad etiketttilldelare som används av YOLOv7.
Andra tränbara påsar med gratisvaror
Utöver de som nämns ovan använder YOLOv7-algoritmen ytterligare tränbara påsar med gratisvaror, även om de inte föreslogs av dem ursprungligen. De är
- Batchnormalisering i Conv-Bn-aktiveringsteknologi: Denna strategi används för att ansluta ett konvolutionslager direkt till batchnormaliseringslagret.
- Implicit kunskap i YOLOR: YOLOv7 kombinerar strategin med konvolutionsfunktionen.
- EMA-modell: EMA-modellen används som en slutlig referensmodell i YOLOv7, även om dess primära användning är att användas i den meningsfulla lärarmetoden.
YOLOv7: Experiment
Experimentuppställning
YOLOv7-algoritmen använder Microsoft COCO-dataset för utbildning och validering av sin objektdetekteringsmodell, och inte alla dessa experiment använder en förutbildad modell. Utvecklarna använde 2017 års utbildningsdataset för utbildning och använde 2017 års valideringsdataset för att välja hyperparametrar. Slutligen jämförs prestandan för YOLOv7-objektdetekteringsresultat med state-of-the-art-algoritmer för objektdetektering.
Utvecklarna utformade en grundläggande modell för kant-GPU (YOLOv7-tiny), normal GPU (YOLOv7) och moln-GPU (YOLOv7-W6). Dessutom använder YOLOv7-algoritmen också en grundläggande modell för modellskalning enligt olika tjänstekrav och får olika modeller. För YOLOv7-algoritmen utförs stapelskalning på halsen och föreslagna sammansättningar används för att öka djup och bredd på modellen.
Baslinjer
YOLOv7-algoritmen använder tidigare YOLO-modeller och YOLOR-objektdetekteringsalgoritmen som baslinje.

Bilden ovan jämför baslinjen för YOLOv7-modellen med andra objektdetekteringsmodeller, och resultaten är ganska uppenbara. När man jämför med YOLOv4-algoritmen använder YOLOv7 inte bara 75% färre parametrar, utan den använder också 15% mindre beräkningar och har 0,4% högre noggrannhet.
Jämförelse med state-of-the-art-objektdetektor-modeller

Bilden ovan visar resultaten när YOLOv7 jämförs med state-of-the-art-objektdetektor-modeller för mobila och allmänna GPU:er. Det kan observeras att metoden som föreslagits av YOLOv7-algoritmen har den bästa hastighetsnoggrannhetshandelsavtalet.
Ablationsstudie: Föreslagen sammansatt skalningsmetod

Bilden ovan visar resultaten av att använda olika strategier för att skala upp modellen. Skalningsstrategin i YOLOv7-modellen skalar upp djupet på beräkningsblocket med 1,5 gånger och skalar bredden med 1,25 gånger.
När man jämför med en modell som bara skalar upp djupet, presterar YOLOv7-modellen bättre med 0,5% medan den använder färre parametrar och beräkningskraft. Å andra sidan, när man jämför med modeller som bara skalar upp djupet, förbättras YOLOv7:s noggrannhet med 0,2%, men antalet parametrar måste skalas med 2,9% och beräkningen med 1,2%.
Föreslagen planerad omparametrerad modell
För att verifiera allmängiltigheten av sin föreslagna omparametrerade modell, använder YOLOv7-algoritmen den på residualbaserade och sammansättningsbaserade modeller för verifiering. För verifieringsprocessen använder YOLOv7-algoritmen 3-staplad ELAN för sammansättningsbaserad modell och CSPDarknet för residualbaserad modell.
För sammansättningsbaserad modell ersätter algoritmen 3×3-konvolutionslagren i 3-staplad ELAN med RepConv. Bilden nedan visar den detaljerade konfigurationen av planerad RepConv och 3-staplad ELAN.

Dessutom, när det gäller residualbaserad modell, använder YOLOv7-algoritmen en omvänd mörk block eftersom den ursprungliga mörka blocken inte har ett 3×3-konvolutionslager. Bilden nedan visar arkitekturen för den omvända CSPDarknet som vänder på positionerna för 3×3- och 1×1-konvolutionslagren.
Föreslagen hjälparbetsförlust för hjälphuvud
För den hjälpande förlusten för hjälphuvudet jämför YOLOv7-modellen den oberoende etiketttilldelningen för hjälphuvud och ledande huvud.

Bilden ovan innehåller resultaten av studien om den föreslagna hjälphuvudet. Det kan ses att den övergripande prestandan för modellen ökar med en ökning av den hjälpande förlusten. Dessutom presterar den ledande huvudguiderade etiketttilldelningen som föreslagits av YOLOv7-modellen bättre än oberoende ledande tilldelningsstrategier.
YOLOv7-resultat
Baserat på ovanstående experiment, här är resultaten av YOLOv7:s prestanda när den jämförs med andra objektdetekteringsalgoritmer.

Bilden ovan jämför YOLOv7-modellen med andra objektdetekteringsalgoritmer, och det kan tydligt ses att YOLOv7 överträffar andra objektdetektorer när det gäller genomsnittlig precision (AP) kontra batchinterferens.
Dessutom jämför bilden nedan prestandan för YOLOv7 med andra realtidsobjektdetekteringsalgoritmer. Återigen överträffar YOLOv7 andra modeller när det gäller den övergripande prestandan, noggrannheten och effektiviteten.

Här är några ytterligare observationer från YOLOv7-resultat och prestanda.
- YOLOv7-Tiny är den minsta modellen i YOLO-familjen, med över 6 miljoner parametrar. YOLOv7-Tiny har en genomsnittlig precision på 35,2% och den överträffar YOLOv4-Tiny-modellerna med jämförbara parametrar.
- YOLOv7-modellen har över 37 miljoner parametrar och den överträffar modeller med fler parametrar som YOLov4.
- YOLOv7-modellen har den högsta mAP och FPS-takten i intervallet 5 till 160 FPS.
Slutsats
YOLO eller “You Only Look Once” är den mest avancerade objektdetekteringsmodellen i modern datorseende. YOLO-algoritmen är känd för sin höga noggrannhet och effektivitet, och som ett resultat hittar den omfattande tillämpningar i realtidsobjektdetekteringsindustrin. Sedan den första YOLO-algoritmen introducerades 2016 har experiment möjliggjort för utvecklare att förbättra modellen kontinuerligt.
YOLOv7-modellen är den senaste tillägget i YOLO-familjen, och den är den mest kraftfulla YOLO-algoritmen hittills. I den här artikeln har vi talat om grunderna i YOLOv7 och försökt förklara vad som gör YOLOv7 så effektiv.












