AI-modeller og plattformer

Avpakning av Yolov8: Ultralytics’ Virale Computervisjonsmesterpiece

mm
Legg til Unite.AI blant dine foretrukne kilder på Google
Blog featured image for YOLOv8

Frem til nå har objektgjenkjenning i bilder ved hjelp av computervisjonsmodeller vært hindret av en betydelig forsinkelse på noen sekunder på grunn av prosesseringstid. Denne forsinkelsen har hindret praktisk anvendelse i brukssituasjoner som selvstyrt kjøring. Imidlertid har lanseringen av YOLOv8-computervisjonsmodellen av Ultralytics brutt gjennom prosesseringssammenbruddet. Den nye modellen kan gjenkjenne objekter i sanntid med uforlignelig nøyaktighet og hastighet, noe som gjør den populær i computervisjonsrommet.

Denne artikkelen utforsker YOLOv8, dens muligheter og hvordan du kan finjustere og lage dine egne modeller gjennom dens åpne kildekode-Github-repositorium.

Yolov8 Forklart

YOLOv8-Ultralytics

YOLO (You Only Live Once) er en populær computervisjonsmodell som kan gjenkjenne og segmentere objekter i bilder. Modellen har gått gjennom flere oppdateringer i fortiden, med YOLOv8 som markerer den 8. versjonen.

Som det står, bygger YOLOv8 på mulighetene til tidligere versjoner ved å introdusere kraftfulle nye funksjoner og forbedringer. Dette muliggjør sanntidsobjektgjenkjenning i bilde- og videodata med forbedret nøyaktighet og presisjon.

Fra v1 til v8: En Kort Historie

Yolov1: Lansert i 2015, var den første versjonen av YOLO en enkelttrinnsobjektgjenkjenningmodell. Funksjoner inkluderte modellens lesing av hele bildet for å forutsi hver avgrensningsboks i én evaluering.

Yolov2: Den neste versjonen, lansert i 2016, presenterte en toppytelse på benchmarkene PASCAL VOC og COCO og opererte med høye hastigheter (67-40 FPS). Den kunne også nøyaktig gjenkjenne over 9000 objekt kategorier, selv med begrenset spesifikk gjenkjenningdata.

Yolov3: Lansert i 2018, presenterte Yolov3 nye funksjoner som en mer effektiv ryggradsnettverk, multiple anker og romlig pyramidepolling for flerskalaegenskapsutvinning.

Yolov4: Med Yolov4s lansering i 2020, ble den nye Mosaic dataforsterknings-teknikken introdusert, som tilbød forbedrede treningsmuligheter.

Yolov5: Lansert i 2021, la Yolov5 til kraftfulle nye funksjoner, inkludert hyperparameteroptimering og integrert eksperimentsporingsfunksjoner.

Yolov6: Med lanseringen av Yolov6 i 2022, ble modellen åpnet for å fremme samfunnsdrevet utvikling. Nye funksjoner ble introdusert, som en ny selvdestillasjonsstrategi og en Anchor-Aided Training (AAT)-strategi.

Yolov7: Lansert samme år, 2022, forbedret Yolov7 den eksisterende modellen i hastighet og nøyaktighet og var den raskeste objektgjenkjenningmodellen på lanseringstidspunktet.

Hva Gjør YOLOv8 Unik?

Bilde som viser kjøretøygjenkjenning

YOLOv8s uforlignelige nøyaktighet og høye hastighet gjør computervisjonsmodellen unik fra tidligere versjoner. Det er et betydelig gjennombrudd, da objekter nå kan gjenkjennes i sanntid uten forsinkelse, i motsetning til tidligere versjoner.

Men foruten dette, kommer YOLOv8 pakket med kraftfulle muligheter, som inkluderer:

  1. Tilpassbar arkitektur: YOLOv8 tilbyr en fleksibel arkitektur som utviklere kan tilpasse til sine spesifikke krav.
  2. Adaptivt trenings: YOLOv8s nye adaptive treningsmuligheter, som tapfunksjonsbalansering under trenings- og teknikk, forbedrer læringsraten. Ta Adam, som bidrar til bedre nøyaktighet, raskere konvergens og bedre modellprestasjon.
  3. Avansert bildeanalyse: Gjennom nye semantiske segmenterings- og klasseprediksjonsmuligheter, kan modellen gjenkjenne aktiviteter, farge, tekstur og selv relasjoner mellom objekter, foruten dens kjerneobjektgjenkjenningfunksjonalitet.
  4. Dataforsterkning: Nye dataforsterknings-teknikker hjelper å håndtere aspekter av bildevariasjoner som lav oppløsning, okklusjon osv. i sanntidsobjektgjenkjenningssituasjoner der forholdene ikke er ideelle.
  5. Ryggstøtte: YOLOv8 tilbyr støtte for multiple ryggstøtter, inkludert CSPDarknet (standard ryggstøtte), EfficientNet (lettvekt ryggstøtte) og ResNet (klassisk ryggstøtte), som brukerne kan velge mellom.

Brukere kan også tilpasse ryggstøtten ved å erstatte CSPDarknet53 med noen andre CNN-arkitekturer kompatible med YOLOv8s inndata- og utdata-dimensjoner.

Trenings- og Finjustering av YOLOv8

YOLOv8-modellen kan enten finjusteres for å passe bestemte brukssituasjoner eller trenes helt fra scratch for å lage en spesialisert modell. Mer informasjon om treningsprosedyrene kan finnes i den offisielle dokumentasjonen.

La oss utforske hvordan du kan utføre begge disse operasjonene.

Finjustering av YOLOV8 med en Tilpasset Datasett

Finjusteringsoperasjonen laster en eksisterende modell og bruker dens standardvekt som utgangspunkt for trenings. Intuitivt sett, husker modellen all sin tidligere kunnskap, og finjusteringsoperasjonen legger til ny informasjon ved å justere vektene.

YOLOv8-modellen kan finjusteres med din Python-kode eller gjennom kommandolinje-grensesnittet (CLI).

1. Finjuster en YOLOv8-modell med Python

Start med å importere Ultralytics-pakken i din kode. Deretter, last den tilpassede modellen du ønsker å trene ved hjelp av følgende kode:

Først, installer Ultralytics-biblioteket fra den offisielle distribusjonen.

# Installer ultralytics-pakken fra PyPI
pip install ultralytics

Deretter, kjør følgende kode i en Python-fil:

from ultralytics import YOLO

# Last en modell
model = YOLO(‘yolov8n.pt’) # last en forhåndstrengt modell (anbefalt for trenings)

# Trene modellen på MS COCO-datasettet
results = model.train(data=’coco128.yaml’, epochs=100, imgsz=640)

Som standard, vil koden trene modellen ved hjelp av COCO-datasettet for 100 epoker. Imidlertid kan du også konfigurere disse innstillingene for å sette størrelse, epoke osv. i en YAML-fil.

Når du har trenet modellen med dine innstillinger og datapunkt, overvåk fremgangen, test og finjuster modellen, og fortsett å trene til du har oppnådd dine ønskede resultater.

2. Finjuster en YOLOv8-modell med CLI

For å trene en modell ved hjelp av CLI, kjør følgende skript i kommandolinjen:

yolo train model=yolov8n.pt data=coco8.yaml epochs=100 imgsz=640

CLI-kommandoen laster den forhåndstrengte `yolov8n.pt`-modellen og trenes videre på datasettet definert i `coco8.yaml`-filen.

Opprettelse av Din Egen Modell med YOLOv8

Det finnes essensielt to måter å opprette en tilpasset modell med YOLO-rammeverket:

  • Trenings fra Scratch: Denne tilnærmingen lar deg bruke den forhåndstedefinerte YOLOv8-arkitekturen, men vil IKKE bruke noen forhåndstrengte vekter. Trenings vil skje fra scratch.
  • Tilpasset Arkitektur: Du justerer den standard YOLO-arkitekturen og trenes den nye strukturen fra scratch.

Implementeringen av begge disse metodene forblir den samme. For å trene en YOLO-modell fra scratch, kjør følgende Python-kode:

from ultralytics import YOLO

# Last en modell
model = YOLO(‘yolov8n.yaml’) # bygg en ny modell fra YAML

# Trene modellen
results = model.train(data=’coco128.yaml’, epochs=100, imgsz=640)

Legg merke til at vi denne gangen har lastet en `.yaml`-fil i stedet for en `.pt`-fil. YAML-filen inneholder arkitekturinformasjon for modellen, og ingen vekter lastes. Treningskommandoen vil starte treningsmodellen fra scratch.

For å trene en tilpasset arkitektur, må du definere den tilpassede strukturen i en `.yaml`-fil lignende `yolov8n.yaml` ovenfor. Deretter, laster du denne filen og trenes modellen ved hjelp av samme kode som ovenfor.

For å lære mer om objektgjenkjenning ved hjelp av AI og å holde deg informert om de siste AI-trendene, besøk unite.ai.

Haziqa er en dataforsker med omfattende erfaring med å skrive teknisk innhold for AI- og SaaS-selskaper.