Artificiell intelligens
Packa upp Yolov8: Ultralytics viralaste datorseende-mÀsterverk

Från och med nu har objektidentifiering i bilder med hjälp av datorseendemodeller stött på ett stort hinder i form av några sekunders fördröjning på grund av bearbetningstiden. Denna fördröjning har hindrat den praktiska tillämpningen i användningsfall som till exempel självkörande fordon. Men med lanseringen av YOLOv8-datorseendemodellen från Ultralytics har denna bearbetningsfördröjning brutits. Den nya modellen kan identifiera objekt i realtid med en aldrig tidigare skådad precision och hastighet, vilket gör den populär i datorseendekretsar.
Den här artikeln utforskar YOLOv8, dess förmågor och hur du kan finjustera och skapa dina egna modeller genom dess öppna källkods-Github-repo.
Yolov8 förklarat
YOLO (You Only Live Once) är en populär datorseendemodell som kan identifiera och segmentera objekt i bilder. Modellen har genomgått flera uppdateringar tidigare, och YOLOv8 markerar den 8:e versionen.
Som det ser ut bygger YOLOv8 på föregående versioners förmågor genom att introducera kraftfulla nya funktioner och förbättringar. Detta möjliggör identifiering av objekt i realtid i bild- och videodata med förbättrad precision och noggrannhet.
Från v1 till v8: En kort historik
Yolov1: Den första versionen av YOLO lanserades 2015 som en enstegsobjektidentifieringsmodell. Funktioner inkluderade att modellen läste hela bilden för att förutsäga varje begränsningsruta i en utvärdering.
Yolov2: Den nästa versionen, lanserad 2016, presenterade en topprestation på benchmark-tester som PASCAL VOC och COCO och körde med höga hastigheter (67-40 FPS). Den kunde också identifiera över 9000 objektkategorier, även med begränsad specifik identifieringsdata.
Yolov3: Lanserad 2018 presenterade Yolov3 nya funktioner som en mer effektiv ryggradsnätverk, flera ankare och rumslig pyramidpooling för multiscale-featuresextrahering.
Yolov4: Med lanseringen av Yolov4 2020 introducerades den nya Mosaic-dataförstärknings-tekniken, som erbjöd förbättrade träningsförmågor.
Yolov5: Lanserad 2021 lade Yolov5 till kraftfulla nya funktioner, inklusive hyperparameteroptimering och integrerad experimentsspårning.
Yolov6: Med lanseringen av Yolov6 2022 öppnades modellen för att främja community-driven utveckling. Nya funktioner introducerades, som en ny självdestilleringstrategi och en Anchor-Aided Training (AAT)-strategi.
Yolov7: Lanserad samma år, 2022, förbättrade Yolov7 den befintliga modellen i hastighet och precision och var den snabbaste objektidentifieringsmodellen vid lanseringen.
Vad gör YOLOv8 unik?

YOLOv8:s oöverträffade precision och höga hastighet gör datorseendemodellen unik jämfört med tidigare versioner. Det är en betydande prestation eftersom objekt nu kan identifieras i realtid utan fördröjning, till skillnad från tidigare versioner.
Men förutom detta kommer YOLOv8 med kraftfulla funktioner, som inkluderar:
- Anpassningsbar arkitektur: YOLOv8 erbjuder en flexibel arkitektur som utvecklare kan anpassa efter sina specifika krav.
- Adaptiv träning: YOLOv8:s nya adaptiva träningsförmågor, som t.ex. förlustfunktionsbalansering under träning och tekniker, förbättrar inlärningshastigheten. Ta Adam, som bidrar till bättre precision, snabbare konvergens och överlag bättre modellprestanda.
- Avancerad bildanalys: Genom nya semantiska segmenterings- och klassprediktionsförmågor kan modellen identifiera aktiviteter, färg, textur och till och med relationer mellan objekt utöver dess kärnobjektidentifieringsfunktion.
- Dataförstärkning: Nya dataförstärkningstekniker hjälper till att hantera aspekter av bildvariationer som låg upplösning, occlusion etc. i realistiska objektidentifieringssituationer där förhållandena inte är idealiska.
- Ryggstöd: YOLOv8 erbjuder stöd för flera ryggar, inklusive CSPDarknet (standardrygg), EfficientNet (lättrygg) och ResNet (klassisk rygg), som användare kan välja mellan.
Användare kan även anpassa ryggen genom att ersätta CSPDarknet53 med någon annan CNN-arkitektur som är kompatibel med YOLOv8:s in- och utmatningsdimensioner.
Träning och finjustering av YOLOv8
YOLOv8-modellen kan antingen finjusteras för att passa vissa användningsfall eller tränas helt från scratch för att skapa en specialiserad modell. Mer information om träningsförfarandena finns i den officiella dokumentationen.
Låt oss undersöka hur du kan utföra båda dessa operationer.
Finjustering av YOLOV8 med en anpassad datamängd
Finjusteringsoperationen laddar en befintlig modell och använder dess standardvikt som startpunkt för träning. Intuitivt sett “kommer modellen ihåg” all sin tidigare kunskap, och finjusteringsoperationen lägger till ny information genom att justera viktningen.
YOLOv8-modellen kan finjusteras med din Python-kod eller via kommandoradsgränssnittet (CLI).
1. Finjustera en YOLOv8-modell med Python
Börja med att importera Ultralytics-paketet i din kod. Sedan laddar du den anpassade modellen som du vill träna med följande kod:
Först installerar du Ultralytics-biblioteket från den officiella distributionen.
| # Installera ultralytics-paketet från PyPI pip install ultralytics |
Sedan kör du följande kod i en Python-fil:
| from ultralytics import YOLO
# Ladda en modell # Träna modellen på MS COCO-databasen |
Som standard kommer koden att träna modellen med COCO-databasen i 100 epocher. Men du kan också konfigurera dessa inställningar för att ställa in storlek, epoch, etc., i en YAML-fil.
När du har tränat modellen med dina inställningar och datapath, övervaka förloppet, testa och finjustera modellen och fortsätt träna tills du uppnår dina önskade resultat.
2. Finjustera en YOLOv8-modell med CLI
För att träna en modell med CLI, kör följande skript i kommandoraden:
| yolo train model=yolov8n.pt data=coco8.yaml epochs=100 imgsz=640 |
CLI-kommandot laddar den förtränade `yolov8n.pt`-modellen och tränar den vidare på datamängden som definieras i `coco8.yaml`-filen.
Skapa din egen modell med YOLOv8
Det finns i princip 2 sätt att skapa en anpassad modell med YOLO-ramverket:
- Träning från scratch: Detta tillvägagångssätt låter dig använda den fördefinierade YOLOv8-arkitekturen men kommer inte att använda några förtränade vikter. Träningen kommer att ske från scratch.
- Anpassad arkitektur: Du justerar den standard YOLO-arkitekturen och tränar den nya strukturen från scratch.
Implementeringen av båda dessa metoder förblir densamma. För att träna en YOLO-modell från scratch, kör följande Python-kod:
| from ultralytics import YOLO
# Ladda en modell # Träna modellen |
Lägg märke till att vi den här gången har laddat en `.yaml`-fil istället för en `.pt`-fil. YAML-filen innehåller arkitekturinformationen för modellen, och inga vikter laddas. Träningskommandot kommer att starta träningsprocessen för den här modellen från scratch.
För att träna en anpassad arkitektur måste du definiera den anpassade strukturen i en `.yaml`-fil liknande `yolov8n.yaml` ovan. Sedan laddar du den filen och tränar modellen med samma kod som ovan.
För att lära dig mer om objektidentifiering med AI och för att hålla dig informerad om de senaste AI-trenderna, besök unite.ai.













