Recunoașterea imaginii YOLOv8 este remarcabilă, dar antrenamentul modelului este o sarcină importantă pe care nu trebuie să o treceți cu vederea.
YOLOv8 este un algoritm de detectare a obiectelor în timp real care este utilizat pe scară largă în domeniul detectării obiectelor. Face parte din seria You Only Look Once (YOLO) dezvoltată de Ultralytics. Algoritmul urmărește, detectează, segmentează instanțe, estimează poziția și clasifică obiectele în imagini și videoclipuri. Acesta își propune să fie mai rapid și mai precis decât algoritmii predecesori.
Utilizarea YOLOv8 pe seturi de date experimentale cum ar fi CIFAR-10 și CIFAR-100 este adesea mai ușoară pentru proiectele Proof-of-Concept (POC) decât pe seturi de date din lumea reală care necesită seturi de date personalizate.
Acest tutorial vă va ghida prin pașii implicați în antrenarea YOLOv8 pe date personalizate.
Configurarea mediului Python
Începeți prin a instala mediul de dezvoltare pentru proiect, urmând instrucțiunile de mai jos.
- Mergeți la terminal și creați un nou director numit yolov8project:
mkdir yolov8project
- Navigați la directorul proiectului și creați un mediu virtual:
cd yolov8project
python -m venv env - Apoi, activați mediul virtual.
Pentru a rula codul, trebuie să instalați Ultralytics, o bibliotecă pentru detectarea obiectelor și segmentarea imaginilor. Este, de asemenea, o dependență YOLOv8. Instalează-l folosind pip rulând comanda de mai jos.# Pe Windows
env/Scripts/activate# Pe Linux / macOS
sursă env/bin/activatepip install ultralytics
- Această comandă instalează modelul pre-antrenat al lui YOLOv8, yolov8n.pt. Testați modelul rulând comenzile de mai jos pentru a realiza o detectare cu greutăți pre-antrenate pe imaginea sau videoclipul ales de dvs. folosind YOLOv8.
Dacă totul funcționează perfect, rezultatele vor fi disponibile în yolov8project directorul din rulează/detecta/exp subdirectorul.#detectarea imaginii
yolo task=detect mode=predict model=yolov8n.pt source="path/to/image.png"#detecție video
sarcină yolo=mod de detectare=model de predicție=yolov8n.pt source="path/to/video.mp4"
Pregătirea setului de date personalizat
Pașii pentru pregătirea setului de date personalizat includ colectarea datelor, etichetarea datelor și împărțirea datelor (instruire, testare, validare).
Colectare de date
Acesta este procesul de colectare a unui set de imagini care au obiectele pe care doriți să le detectați. Asigurați-vă că utilizați imagini de înaltă calitate, focalizate, iar obiectele sunt clar vizibile. Puteți utiliza o varietate de instrumente pentru a colecta imagini, cum ar fi Google Images, Flickr sau propria cameră. Dacă nu aveți un set de date de imagine, utilizați setul de date din openimages Bază de date. Acest articol va folosi imaginea de siguranță a șantierului setul de date de la Kaggle.
Etichetarea datelor
După ce ați colectat imaginile, trebuie să le etichetați. Aceasta înseamnă identificarea obiectelor din fiecare imagine și a casetelor lor de delimitare. Există mai multe instrumente disponibile pentru a vă ajuta să vă etichetați datele, cum ar fi LabelImg, CVAT și Roboflow. Toate aceste instrumente sunt gratuite.
Împărțirea datelor
Pentru a antrena modele de învățare automată, trebuie să vă împărțiți datele în seturi de instruire și de testare. Încercați să utilizați un raport de împărțire de 70%-30% atunci când utilizați cantități mari de date. În caz contrar, rămâi la 80%-20% pentru a evita supraajustarea sau subadaptarea modelului tău.
Utilizare foldere împărțite, pentru a vă împărți datele în mod aleatoriu în seturi de tren, de testare și de validare cu raportul de împărțire dorit.
Configurarea YOLOv8 pentru setul dvs. de date
După etichetarea datelor, continuați să configurați YOLOv8 pentru setul de date personalizat. Aceasta implică crearea unui fișier de configurare care specifică următoarele:
- Calea către datele dvs. de antrenament.
- Calea către datele dvs. de validare.
- Numărul de clase pe care doriți să le detectați.
Creați un fișier config.yaml pentru a stoca configurația:
cale:(set de datedirectorcale)
tren:(trenset de datepliantcale)
Test:(Testset de datepliantcale)
valabil:(validareset de datepliantcale)# Clase
nc:5# înlocuiți în funcție de numărul de clase al setului dvs. de date
# Nume de clasă
# înlocuiți toate numele claselor cu numele propriilor clase
nume:['clasa 1',„clasa 2”,„clasa 3”,„clasa 4”,„clasa 5”]
Crearea fișierului de configurare este o modalitate utilă de a structura și stoca parametrii cruciali pentru modelul dvs. de viziune computerizată. Asigurați-vă că actualizați fișierul config.yaml în funcție de natura și structura setului de date.
Asigurați-vă că utilizați căile corecte pentru seturile dvs. de date, deoarece antrenamentul modelului se bazează pe deplin pe fișierul de configurare.
Antrenament YOLOv8 pe date personalizate
Odată ce ați creat fișierul de configurare, începeți antrenamentul YOLOv8. Utilizați instrumentul de linie de comandă YOLOv8 pentru a vă antrena modelul. Instrumentul de linie de comandă preia mai mulți parametri, cum ar fi calea către fișierul de configurare, numărul de epoci și dimensiunea imaginii, după cum urmează:
yolo task=mod de detectare=model de tren=yolov8n.pt data=path/to/config.yaml epochs=10 imgsz=640
Există mai multe părți ale acestei comenzi.
sarcină stabilește tipul de sarcină: detectarea, segmentarea sau clasificarea. modul reprezintă o acțiune: train, predic, val, export, track, or benchmark. model este modelul de utilizat, în acest caz, yolov8n.pt. De asemenea, puteți utiliza yolov8s/yolov8l/yolov8x.
epoci reprezintă numărul de runde de antrenament (10). imgsz reprezintă dimensiunea imaginii (640). Dimensiunea imaginii trebuie întotdeauna setată la un multiplu de 32.
Iată un exemplu de rezultat la care vă puteți aștepta:
Timpul folosit pentru antrenament depinde de dimensiunea setului de date, de numărul de epoci și de numărul de clase pe care doriți să le detectați. Odată ce procesul de antrenament este finalizat, veți avea un model YOLOv8 antrenat pe care îl veți folosi pentru a detecta obiecte în imagini și videoclipuri.
După ce antrenamentul este complet, faceți inferențe cu noile greutăți, best.pt
yolo task=detect mode=predict model="runs/train/weights/best.pt" source="image.png"
Navigați la alergări/tren/exp/greutăți/best.pt director pentru a accesa greutățile antrenate personalizat. YOLOv8 va stoca imaginea prezisă în fișierul rulează/detecta/exp subdirectorul.
Evaluarea performanței modelului
Puteți evalua performanța modelului YOLOv8 folosind următoarea comandă care evaluează modelul pe un set de imagini de testare:
yolo val model=yolov8n.pt data=path/to/config.yaml batch=1 imgsz=640
Rezultatele așteptate sunt următoarele:
Procesul de evaluare va genera diverse valori, cum ar fi precizia, reamintirea și scorul F1. Metrica de precizie măsoară procentul de obiecte care sunt detectate corect. Valoarea de reamintire măsoară procentul de obiecte pe care YOLOv8 le detectează. Scorul F1 este o medie ponderată a valorilor de precizie și reamintire.
Implementarea modelului personalizat YOLOv8
Testați performanța modelului dvs. YOLOv8.
yolo detect predict model=path/to/best.pt source='path/to/image.jpg'
Ieșirea este după cum urmează:
Apoi, salvați greutățile modelului într-un fișier.
yolo export model=path/to/best.pt format=onnx
Utilizați fișierul pentru a încărca modelul în aplicația dvs. și utilizați-l pentru a detecta obiecte în timp real. Dacă implementați modelul la a serviciu cloud, utilizați serviciul cloud pentru a detecta obiecte din imagini și videoclipuri care sunt în serviciu.
YOLOv8 Takeaway
Echipa Ultralytics a îmbunătățit continuu modelele din seria YOLO. Acest lucru i-a făcut lideri în industrie în tehnologia de detectare a obiectelor și în domeniul viziunii computerizate.
YOLOv8 este un model îmbunătățit pe care îl puteți folosi pentru a gestiona multe tipuri de proiecte de viziune computerizată.