4.6 Train en implementeer je eigen visiemodel

Introductie

YOLO26 is de nieuwste generatie van de YOLO-familie, ontworpen voor realtime, edge-klare visie-AI. Het is gebouwd om sneller, lichter en eenvoudiger te implementeren te zijn, terwijl het nog steeds een sterke nauwkeurigheid biedt voor taken zoals objectdetectie, segmentatie, classificatie en pose-schatting. Vergeleken met eerdere YOLO-modellen legt YOLO26 een sterkere nadruk op efficiënte implementatie en end-to-end inferentie, wat het bijzonder geschikt maakt voor edge-apparaten en praktische toepassingen.

YOLO26 prestatiediagrammen

In dit hoofdstuk laten we zien hoe je snel je eigen geavanceerde detectiemodel kunt trainen en implementeren op reComputer, zodat je via een efficiënte en moderne workflow van data naar een werkende AI-toepassing in de praktijk kunt gaan.

Snelle ervaring

Stap 1: Definieer de taak duidelijk

Een sterk project begint met een duidelijke vraag.

Voorbeelden:

  • helmen en personen detecteren
  • bezette parkeerplaatsen detecteren
  • pallets en heftrucks detecteren

Voor het gemak van de demonstratie hebben we een script meegeleverd dat ons kan helpen het hele proces van dataverzameling tot modelimplementatie te doorlopen.

Vereisten: Installeer de benodigde afhankelijkheden:

bash
pip install ultralytics opencv-python pillow pyyaml

🚀 Probeer het en voer het zelf uit!

bash
cd 4-Computer-Vision/4.6-Train-and-Deploy-Your-Own-Vision-Model/code
python yolo_end_to_end.py

Stap 2: Data verzamelen

Sluit een camera aan op je apparaat, selecteer het doel dat je wilt detecteren en verzamel passende afbeeldingen voor de dataset.

capture_picture

Stap 3: Data annoteren

Voor detectie betekent annoteren meestal het tekenen van bounding boxes en het toewijzen van klasselabels.

Gebruik onze tool en sleep met de muis om het doel dat je wilt detecteren te markeren.

mark_img

Stap 4: Een model trainen

Splits je datasets op en kies een voorgetraind model om mee te trainen.

De trainingsset wordt gebruikt om het model te leren door de parameters bij te stellen. De validatieset wordt tijdens de ontwikkeling gebruikt om te controleren hoe goed het model generaliseert, om verschillende instellingen te vergelijken en om te beslissen wanneer het trainen gestopt moet worden. Kortom, het splitsen van datasets helpt ons het model op een betrouwbare manier te trainen, te verbeteren en te evalueren.

Training

Trainen is de fase waarin het model leert van de dataset en zijn voorspellingen geleidelijk verbetert. Meestal beginnen we met een start-checkpoint, wat betekent dat we een voorgetraind model gebruiken in plaats van vanaf nul te beginnen. Dit helpt het model sneller te leren en geeft vaak betere resultaten.

Stap 5: Inferentie

Selecteer de eerder getrainde modelgewichten en observeer de prestaties.

infer

Opmerking: Als je wilt dat je model beter presteert, moet je de dataset uitbreiden of data-augmentatie uitvoeren.

Veelvoorkomende misverstanden

  • "Een hoge metric betekent altijd dat het model klaar is."
    • Testen in de praktijk blijft noodzakelijk.
  • "Meer data betekent automatisch een beter model."
    • Meer data helpt alleen als deze relevant en goed gelabeld is.
  • "Als het trainen klaar is, is implementatie eenvoudig."
    • Implementatie introduceert beperkingen in snelheid, geheugen en systeem.

Oefeningen / Reflectie

  1. Ontwerp een tweeklasse objectdetectieproject dat door een beginner kan worden voltooid.
  2. Noem vijf soorten scènevariatie die je in de dataset wilt hebben.
  3. Leg het verschil uit tussen validatieresultaten en daadwerkelijke prestaties bij implementatie.
  4. Inspecteer na het uitvoeren van een trainingsjob drie faalgevallen en beschrijf welk soort data deze zou kunnen oplossen.

Omgeving instellen

Voordat je YOLO-modellen traint, zet je je Python-omgeving op met de pakketbeheerder uv:

uv installeren

bash
curl -LsSf https://astral.sh/uv/install.sh | sh
source ~/.bashrc
uv --version

uv-installatie

Virtuele omgeving aanmaken

bash
uv venv .yolo --python 3.10.12
source .yolo/bin/activate
python --version

Virtuele omgeving Omgeving activeren

PyTorch (GPU) installeren

bash
uv pip install torch --index-url https://pypi.jetson-ai-lab.io/jp6/cu126

PyTorch-verificatie

Opmerking: De Jetson-ontwikkelkits van Seeed worden geleverd met vooraf geconfigureerde omgevingen. Controleer of de .yolo-omgeving al bestaat voordat je een nieuwe aanmaakt.

YOLO26/Ultralytics installeren

bash
uv pip install ultralytics opencv-python pillow pyyaml

YOLO26-taakvoorbeelden

YOLO26 ondersteunt meerdere computervisie-taken. Hieronder staan voorbeelden voor elke taak.

Objectdetectie

Detecteer en lokaliseer objecten in afbeeldingen of video:

bash
cd 4-Computer-Vision/4.6-Train-and-Deploy-Your-Own-Vision-Model/code
python yolo_object_detection.py

Resultaat van objectdetectie

Instantiesegmentatie

Identificeer objecten op pixelniveau:

bash
cd 4-Computer-Vision/4.6-Train-and-Deploy-Your-Own-Vision-Model/code
python yolo_instance_segmentation.py

Instantiesegmentatie

Pose-schatting

Detecteer keypoints van het menselijk lichaam:

bash
cd 4-Computer-Vision/4.6-Train-and-Deploy-Your-Own-Vision-Model/code
python yolo_pose_estimation.py

Pose-schatting

Beeldclassificatie

Classificeer het hoofdonderwerp in een afbeelding:

bash
cd 4-Computer-Vision/4.6-Train-and-Deploy-Your-Own-Vision-Model/code
python yolo_image_classification.py

Beeldclassificatie

Georiënteerde objectdetectie (OBB)

Detecteer objecten met geroteerde bounding boxes:

bash
cd 4-Computer-Vision/4.6-Train-and-Deploy-Your-Own-Vision-Model/code
python yolo_obb_detection.py

OBB-detectie

Modeltraining

Train een YOLO-model op je eigen dataset:

bash
cd 4-Computer-Vision/4.6-Train-and-Deploy-Your-Own-Vision-Model/code
python yolo_train.py

Trainingsuitvoer Trainingsresultaten

Dataset annoteren met Label Studio

Gebruik Label Studio (Docker-gebaseerd) om je trainingsdata te annoteren:

Start van Label Studio Annotatie in Label Studio Datasetstructuur

Samenvatting

Het trainen van een aangepast visiemodel gaat niet alleen om het uitvoeren van een commando. Het is een datagedreven proces dat taakdefinitie, annotatie, training, validatie en foutanalyse omvat. In de volgende sectie gaan we van het eerste succesvolle model naar export en edge-implementatie.

Voorgestelde volgende stap

Ga verder met 4.7 Modelexport en edge-implementatie.

Referenties