Kunstig intelligens
YOLOv8 afpakket: Ultralytics’ virale computer vision-mesterstykke

Indtil nu har objektgenkendelse i billeder ved hjælp af computer vision-modeller været begrænset af et par sekunders forsinkelse på grund af bearbejdningstiden. Denne forsinkelse har hindret praktisk anvendelse i brugsområder som selvstændig kørsel. Men med udgivelsen af YOLOv8-computer vision-modellen fra Ultralytics er denne bearbejdningsskærring brudt. Den nye model kan genkende objekter i realtid med en hidtil uset nøjagtighed og hastighed, hvilket gør den populær i computer vision-rummet.
Denne artikel udforsker YOLOv8, dets muligheder og hvordan du kan finjustere og oprette dine egne modeller gennem dets open-source Github-repository.
YOLOv8 forklaret
YOLO (You Only Live Once) er en populær computer vision-model, der kan genkende og segmentere objekter i billeder. Modellen har gennemgået flere opdateringer i fortiden, og YOLOv8 markerer den 8. version.
Som det er nu, bygger YOLOv8 på mulighederne fra tidligere versioner ved at introducere kraftfulde nye funktioner og forbedringer. Dette muliggør genkendelse af objekter i realtid i billed- og video-data med forbedret nøjagtighed og præcision.
Fra v1 til v8: En kort historie
Yolov1: Udgivet i 2015, var den første version af YOLO en single-stage objektgenkendelsesmodel. Funktionerne inkluderede, at modellen læste hele billedet for at forudsige hver afgrænsning i én vurdering.
Yolov2: Den næste version, udgivet i 2016, præsenterede en top-præstation på benchmarks som PASCAL VOC og COCO og opererede med høje hastigheder (67-40 FPS). Den kunne også nøjagtigt genkende over 9000 objekt-kategorier, selv med begrænsede specifikke genkendelsesdata.
Yolov3: Lanceret i 2018, præsenterede Yolov3 nye funktioner som en mere effektiv backbone-netværk, multiple anchors og spatial pyramid pooling til multi-skala-funktionsextraktion.
Yolov4: Med Yolov4’s udgivelse i 2020, blev den nye Mosaic data-augmenteringsteknik introduceret, som tilbød forbedrede træningsmuligheder.
Yolov5: Udgivet i 2021, tilføjede Yolov5 kraftfulde nye funktioner, herunder hyperparameter-optimering og integreret eksperiment-sporing.
Yolov6: Med udgivelsen af Yolov6 i 2022, blev modellen open-source for at fremme community-dreven udvikling. Nye funktioner blev introduceret, som en ny selv-destilleringstrategi og en Anchor-Aided Training (AAT)-strategi.
Yolov7: Udgivet samme år, 2022, forbedrede Yolov7 den eksisterende model i hastighed og nøjagtighed og var den hurtigste objektgenkendelsesmodel på udgivelsestidspunktet.
Hvad gør YOLOv8 særligt?

YOLOv8’s hidtil usete nøjagtighed og høje hastighed gør computer vision-modellen særlig i forhold til tidligere versioner. Det er en betydelig præstation, da objekter nu kan genkendes i realtid uden forsinkelse, i modsætning til tidligere versioner.
Men ud over dette kommer YOLOv8 med kraftfulde muligheder, som inkluderer:
- Tilpasselig arkitektur: YOLOv8 tilbyder en fleksibel arkitektur, som udviklere kan tilpasse til deres specifikke krav.
- Adaptiv træning: YOLOv8’s nye adaptiv træningsmuligheder, som tab-funktions-balancering under træning og teknikker, forbedrer læringshastigheden. Tag Adam, som bidrager til bedre nøjagtighed, hurtigere konvergens og bedre model-præstation.
- Avanceret billedanalyse: Gennem nye semantiske segmenterings- og klasse-prædikationsmuligheder kan modellen genkende aktiviteter, farve, tekstur og selv relationer mellem objekter ud over dens kerne-objektgenkendelsesfunktion.
- Data-augmentering: Nye data-augmenteringsteknikker hjælper med at tackle aspekter af billedvariationer som lav opløsning, occlusion osv. i realverden objektgenkendelsessituationer, hvor forholdene ikke er ideelle.
- Rygradsstøtte: YOLOv8 tilbyder støtte til multiple rygkæder, herunder CSPDarknet (standard-rygkæde), EfficientNet (letvægts-rygkæde) og ResNet (klassisk rygkæde), som brugere kan vælge imellem.
Brugere kan endda tilpasse rygkæden ved at erstatte CSPDarknet53 med en anden CNN-arkitektur, der er kompatibel med YOLOv8’s input- og output-dimensioner.
Træning og finjustering af YOLOv8
YOLOv8-modellen kan enten finjusteres for at tilpasse bestemte brugsområder eller trænes helt fra scratch for at oprette en specialiseret model. Mere information om træningsproceduren kan findes i den officielle dokumentation.
Lad os udforske, hvordan du kan udføre begge disse operationer.
Finjustering af YOLOV8 med en brugerdefineret dataset
Finjusteringsoperationen loader en eksisterende model og bruger dens standardvægte som udgangspunkt for træning. Intuitivt set husker modellen alt sin tidligere viden, og finjusteringsoperationen tilføjer ny information ved at justere vægtene.
YOLOv8-modellen kan finjusteres med din Python-kode eller gennem kommandolinie-grænsefladen (CLI).
1. Finjuster en YOLOv8-model med Python
Start med at importere Ultralytics-pakken i din kode. Derefter loader du den brugerdefinerede model, du ønsker at træne, ved hjælp af følgende kode:
Først installerer du Ultralytics-biblioteket fra den officielle distribution.
| # Installer Ultralytics-pakken fra PyPI pip install ultralytics |
Derefter udfører du følgende kode i en Python-fil:
| from ultralytics import YOLO
# Loader en model # Træner modellen på MS COCO-datasættet |
Som standard vil koden træne modellen ved hjælp af COCO-datasættet i 100 epocher. Du kan dog også konfigurere disse indstillinger for at sætte størrelse, epoch, osv. i en YAML-fil.
Når du træner modellen med dine indstillinger og datapunkt, overvåg fremgangen, test og finjuster modellen og fortsæt med at træne, indtil du opnår dine ønskede resultater.
2. Finjuster en YOLOv8-model med CLI
For at træne en model ved hjælp af CLI, udfør følgende script i kommandolinien:
| yolo train model=yolov8n.pt data=coco8.yaml epochs=100 imgsz=640 |
CLI-kommandoen loader den forudtrænede `yolov8n.pt`-model og træner den yderligere på datasættet defineret i `coco8.yaml`-filen.
Oprettelse af din egen model med YOLOv8
Der er grundlæggende to måder at oprette en brugerdefineret model med YOLO-rammen:
- Træning fra scratch: Denne tilgang tillader dig at bruge den foruddefinerede YOLOv8-arkitektur, men vil ikke bruge nogen forudtrænede vægte. Træningen vil ske fra scratch.
- Brugerdefineret arkitektur: Du justerer den standard YOLO-arkitektur og træner den nye struktur fra scratch.
Implementeringen af begge disse metoder forbliver den samme. For at træne en YOLO-model fra scratch, udfør følgende Python-kode:
| from ultralytics import YOLO
# Loader en model # Træner modellen |
Bemærk, at vi denne gang har loadet en `.yaml`-fil i stedet for en `.pt`-fil. YAML-filen indeholder arkitekturinformationen for modellen, og der er ingen vægte, der loades. Træningskommandoen vil starte træningen af denne model fra scratch.
For at træne en brugerdefineret arkitektur skal du definere den brugerdefinerede struktur i en `.yaml`-fil lignende `yolov8n.yaml` ovenfor. Derefter loader du denne fil og træner modellen ved hjælp af samme kode som ovenfor.
For at lære mere om objektgenkendelse ved hjælp af AI og for at holde dig informeret om de seneste AI-trends, besøg unite.ai.













