Η αναγνώριση εικόνας του YOLOv8 είναι εξαιρετική, αλλά η εκπαίδευση του μοντέλου είναι μια σημαντική εργασία που δεν πρέπει να παραβλέψετε.

Ο YOLOv8 είναι ένας αλγόριθμος ανίχνευσης αντικειμένων σε πραγματικό χρόνο που χρησιμοποιείται ευρέως στον τομέα της ανίχνευσης αντικειμένων. Είναι μέρος της σειράς You Only Look Once (YOLO) που αναπτύχθηκε από την Ultralytics. Ο αλγόριθμος παρακολουθεί, ανιχνεύει, τμηματοποιεί περιπτώσεις, εκτιμά πόζα και ταξινομεί αντικείμενα σε εικόνες και βίντεο. Στόχος του είναι να είναι ταχύτερος και ακριβέστερος από τους προκατόχους του αλγόριθμους.

Η χρήση του YOLOv8 σε πειραματικά σύνολα δεδομένων όπως το CIFAR-10 και το CIFAR-100 είναι συχνά ευκολότερη για έργα Proof-of-Concept (POC) παρά σε σύνολα δεδομένων πραγματικού κόσμου που απαιτούν προσαρμοσμένα σύνολα δεδομένων.

Αυτό το σεμινάριο θα σας καθοδηγήσει στα βήματα που σχετίζονται με την εκπαίδευση του YOLOv8 σε προσαρμοσμένα δεδομένα.

Ρύθμιση του περιβάλλοντος Python

Ξεκινήστε εγκαθιστώντας το περιβάλλον ανάπτυξης για το έργο, ακολουθώντας τις παρακάτω οδηγίες.

instagram viewer
  1. Μεταβείτε στο τερματικό και δημιουργήστε έναν νέο κατάλογο με το όνομα yolov8project:
    mkdir yolov8project
  2. Μεταβείτε στον κατάλογο του έργου και δημιουργήστε ένα εικονικό περιβάλλον:
    cd yolov8project
    python -m venv env
  3. Στη συνέχεια, ενεργοποιήστε το εικονικό περιβάλλον.
    # Στα Windows
    env/Scripts/activate

    # Σε Linux / macOS
    πηγή env/bin/activate

    Για να εκτελέσετε τον κώδικά σας, πρέπει να εγκαταστήσετε το Ultralytics, μια βιβλιοθήκη για ανίχνευση αντικειμένων και τμηματοποίηση εικόνων. Είναι επίσης μια εξάρτηση YOLOv8. Εγκαταστήστε το χρησιμοποιώντας pip εκτελώντας την παρακάτω εντολή.
    pip install ultralytics
  4. Αυτή η εντολή εγκαθιστά το προεκπαιδευμένο μοντέλο του YOLOv8, yolov8n.pt. Δοκιμάστε το μοντέλο εκτελώντας τις παρακάτω εντολές για να κάνετε ανίχνευση με προ-εκπαιδευμένα βάρη στην επιλεγμένη εικόνα ή βίντεο αντίστοιχα χρησιμοποιώντας το YOLOv8.
    #ανίχνευση εικόνας
    yolo task=detect mode=predict model=yolov8n.pt source="path/to/image.png"

    #ανίχνευση βίντεο
    yolo task=detect mode=predict model=yolov8n.pt source="path/to/video.mp4"

    Εάν όλα λειτουργούν τέλεια, τα αποτελέσματα θα είναι διαθέσιμα στο yolov8project κατάλογο στο εκτελείται/ανίχνευση/εκπ υποκατάλογος.

Προετοιμασία του προσαρμοσμένου συνόλου δεδομένων σας

Τα βήματα για την προετοιμασία του προσαρμοσμένου συνόλου δεδομένων περιλαμβάνουν συλλογή δεδομένων, επισήμανση δεδομένων και διαχωρισμό δεδομένων (εκπαίδευση, δοκιμή, επικύρωση).

Συλλογή δεδομένων

Αυτή είναι η διαδικασία συλλογής ενός συνόλου εικόνων που έχουν τα αντικείμενα που θέλετε να ανιχνεύσετε. Βεβαιωθείτε ότι χρησιμοποιείτε εικόνες υψηλής ποιότητας, εστιασμένες και τα αντικείμενα είναι ευδιάκριτα. Μπορείτε να χρησιμοποιήσετε μια ποικιλία εργαλείων για τη συλλογή εικόνων, όπως το Google Images, το Flickr ή τη δική σας κάμερα. Εάν δεν έχετε σύνολο δεδομένων εικόνας, χρησιμοποιήστε το σύνολο δεδομένων από το ανοιχτές εικόνες βάση δεδομένων. Αυτό το άρθρο θα χρησιμοποιήσει την εικόνα ασφάλειας εργοταξίου σύνολο δεδομένων από το Kaggle.

Επισήμανση δεδομένων

Αφού συλλέξετε τις εικόνες σας, πρέπει να τις επισημάνετε. Αυτό σημαίνει αναγνώριση των αντικειμένων σε κάθε εικόνα και των πλαισίων οριοθέτησής τους. Υπάρχουν πολλά διαθέσιμα εργαλεία για να σας βοηθήσουν να επισημάνετε ετικέτες στα δεδομένα σας, όπως LabelImg, CVAT και Roboflow. Αυτά τα εργαλεία είναι όλα δωρεάν στη χρήση.

Διαίρεση των Δεδομένων

Για να εκπαιδεύσετε μοντέλα μηχανικής μάθησης, πρέπει να χωρίσετε τα δεδομένα σας σε σετ εκπαίδευσης και δοκιμών. Δοκιμάστε να χρησιμοποιήσετε μια αναλογία διαχωρισμού 70%-30% όταν χρησιμοποιείτε μεγάλους όγκους δεδομένων. Διαφορετικά, επιμείνετε στο 80%-20% για να αποφύγετε την υπερβολική ή κακή τοποθέτηση του μοντέλου σας.

Χρήση split-folders, για να χωρίσετε τυχαία τα δεδομένα σας στα σύνολα αμαξοστοιχίας, δοκιμής και επικύρωσης με την επιθυμητή αναλογία διαχωρισμού.

Διαμόρφωση του YOLOv8 για το σύνολο δεδομένων σας

Αφού προσθέσετε ετικέτα στα δεδομένα σας, προχωρήστε στη διαμόρφωση του YOLOv8 για το προσαρμοσμένο σύνολο δεδομένων σας. Αυτό περιλαμβάνει τη δημιουργία ενός αρχείου ρυθμίσεων που καθορίζει τα ακόλουθα:

  • Η διαδρομή προς τα δεδομένα προπόνησής σας.
  • Η διαδρομή προς τα δεδομένα επικύρωσής σας.
  • Ο αριθμός των τάξεων που θέλετε να εντοπίσετε.

Δημιουργήστε ένα αρχείο config.yaml για να αποθηκεύσετε τη διαμόρφωση:

μονοπάτι:(σύνολο δεδομένωνΕυρετήριομονοπάτι)
τρένο:(τρένοσύνολο δεδομένωνντοσιέμονοπάτι)
δοκιμή:(δοκιμήσύνολο δεδομένωνντοσιέμονοπάτι)
έγκυρος:(επικύρωσησύνολο δεδομένωνντοσιέμονοπάτι)

# Μαθήματα
nc:5# αντικατάσταση με βάση τον αριθμό κλάσεων του συνόλου δεδομένων σας

# Ονόματα τάξεων
# αντικαταστήστε όλα τα ονόματα κλάσεων με τα ονόματα των δικών σας κλάσεων
ονόματα:['class1','class2','class3','class4','τάξη 5']

Η δημιουργία του αρχείου διαμόρφωσης είναι ένας χρήσιμος τρόπος για τη δομή και την αποθήκευση των κρίσιμων παραμέτρων για το μοντέλο όρασης του υπολογιστή σας. Φροντίστε να ενημερώσετε το αρχείο config.yaml σύμφωνα με τη φύση και τη δομή του συνόλου δεδομένων σας.

Βεβαιωθείτε ότι χρησιμοποιείτε τις σωστές διαδρομές για τα σύνολα δεδομένων σας, καθώς η εκπαίδευση του μοντέλου βασίζεται πλήρως στο αρχείο ρυθμίσεων.

Εκπαίδευση YOLOv8 σε Προσαρμοσμένα Δεδομένα

Μόλις δημιουργήσετε το αρχείο διαμόρφωσης, ξεκινήστε την εκπαίδευση του YOLOv8. Χρησιμοποιήστε το εργαλείο γραμμής εντολών YOLOv8 για να εκπαιδεύσετε το μοντέλο σας. Το εργαλείο γραμμής εντολών λαμβάνει πολλές παραμέτρους, όπως τη διαδρομή προς το αρχείο διαμόρφωσης, τον αριθμό των εποχών και το μέγεθος της εικόνας ως εξής:

yolo task=detect mode=train model=yolov8n.pt data=path/to/config.yaml epochs=10 imgsz=640

Υπάρχουν πολλά μέρη σε αυτή την εντολή.

έργο ορίζει τον τύπο της εργασίας: ανίχνευση, τμηματοποίηση ή ταξινόμηση. τρόπος αντιπροσωπεύει μια ενέργεια: τρένο, πρόβλεψη, val, εξαγωγή, διαδρομή ή σημείο αναφοράς. μοντέλο είναι το μοντέλο που χρησιμοποιείται, σε αυτήν την περίπτωση, το yolov8n.pt. Μπορείτε επίσης να χρησιμοποιήσετε το yolov8s/yolov8l/yolov8x.

εποχές αντιπροσωπεύει τον αριθμό των κύκλων προπόνησης (10). imgsz αντιπροσωπεύει το μέγεθος της εικόνας (640). Το μέγεθος της εικόνας πρέπει πάντα να ορίζεται σε πολλαπλάσιο του 32.

Ακολουθεί ένα παράδειγμα της εξόδου που μπορείτε να περιμένετε:

Ο χρόνος που χρησιμοποιείται για την εκπαίδευση εξαρτάται από το μέγεθος του συνόλου δεδομένων σας, τον αριθμό των εποχών και τον αριθμό των κλάσεων που θέλετε να εντοπίσετε. Μόλις ολοκληρωθεί η διαδικασία εκπαίδευσης, θα έχετε ένα εκπαιδευμένο μοντέλο YOLOv8 που θα χρησιμοποιήσετε για να ανιχνεύσετε αντικείμενα σε εικόνες και βίντεο.

Αφού ολοκληρωθεί η προπόνηση, κάντε συμπέρασμα με τα νέα βάρη, best.pt

yolo task=detect mode=predict model="runs/train/weights/best.pt" source="image.png"

Πλοηγηθείτε στο runs/train/exp/weights/best.pt κατάλογο για πρόσβαση στα ειδικά εκπαιδευμένα βάρη. Το YOLOv8 θα έχει αποθηκεύσει την προβλεπόμενη εικόνα στο εκτελείται/ανίχνευση/εκπ υποκατάλογος.

Αξιολόγηση της απόδοσης του μοντέλου

Μπορείτε να αξιολογήσετε την απόδοση του μοντέλου YOLOv8 χρησιμοποιώντας την ακόλουθη εντολή που αξιολογεί το μοντέλο σε ένα σύνολο δοκιμαστικών εικόνων:

yolo val model=yolov8n.pt data=path/to/config.yaml batch=1 imgsz=640

Τα αναμενόμενα αποτελέσματα έχουν ως εξής:

Η διαδικασία αξιολόγησης θα δημιουργήσει διάφορες μετρήσεις, όπως ακρίβεια, ανάκληση και βαθμολογία F1. Η μέτρηση ακριβείας μετρά το ποσοστό των αντικειμένων που ανιχνεύονται σωστά. Η μέτρηση ανάκλησης μετρά το ποσοστό των αντικειμένων που ανιχνεύει το YOLOv8. Η βαθμολογία F1 είναι ένας σταθμισμένος μέσος όρος των μετρήσεων ακριβείας και ανάκλησης.

Ανάπτυξη του προσαρμοσμένου μοντέλου YOLOv8

Δοκιμάστε την απόδοση του μοντέλου YOLOv8.

yolo detect predict model=path/to/best.pt source='path/to/image.jpg'

Η έξοδος είναι η εξής:

Στη συνέχεια, αποθηκεύστε τα βάρη του μοντέλου σε ένα αρχείο.

yolo export model=path/to/best.pt format=onnx

Χρησιμοποιήστε το αρχείο για να φορτώσετε το μοντέλο στην εφαρμογή σας και χρησιμοποιήστε το για να εντοπίσετε αντικείμενα σε πραγματικό χρόνο. Εάν αναπτύξετε το μοντέλο σε α υπηρεσία cloud, χρησιμοποιήστε την υπηρεσία cloud για να εντοπίσετε αντικείμενα σε εικόνες και βίντεο που υπάρχουν στην υπηρεσία.

YOLOv8 Takeaway

Η ομάδα Ultralytics βελτιώνει συνεχώς τα μοντέλα της σειράς YOLO. Αυτό τους έχει κάνει ηγέτες του κλάδου στην τεχνολογία ανίχνευσης αντικειμένων και στον τομέα της όρασης υπολογιστών.

Το YOLOv8 είναι ένα βελτιωμένο μοντέλο που μπορείτε να χρησιμοποιήσετε για να χειριστείτε πολλούς τύπους έργων όρασης υπολογιστή.