Πώς να εκπαιδεύσετε το YOLOv3 για τον εντοπισμό των προσαρμοσμένων αντικειμένων

Αυτά τα μαθήματα είναι πώς να εκπαιδεύσετε αντικείμενο γάτας και σκύλου χρησιμοποιώντας το Yolo-v3

YOLO V3 Λεπτομέρειες - Extractor Χαρακτηριστικών:

Χρησιμοποιούμε ένα νέο δίκτυο για την εξαγωγή χαρακτηριστικών. Το νέο μας δίκτυο είναι μια υβριδική προσέγγιση μεταξύ του δικτύου που χρησιμοποιείται στο YOLOv2, το Darknet-19, και αυτό το νεοσυσταθέν υπόλοιπο υλικό δικτύου. Το δίκτυό μας χρησιμοποιεί διαδοχικά στρώματα 3 × 3 και 1 × 1, αλλά τώρα έχει και κάποιες συνδέσεις συντόμευσης και είναι σημαντικά μεγαλύτερο. Έχει 53 στρώματα συνελικτικά έτσι το ονομάζουμε .... περιμένετε το ... .. Darknet-53 !. Αν θέλετε να διαβάσετε σχετικά με το yolo v3 κάντε κλικ εδώ.

Yolo v3 - Αρχιτεκτονική

Προετοιμασία δεδομένων:

Η προετοιμασία dataset παρόμοια με Πώς να εκπαιδεύσει YOLOv2 για τον εντοπισμό προσαρμοσμένων αντικειμένων blog στο μέσο και εδώ είναι ο σύνδεσμος.

Ακολουθήστε τον παραπάνω σύνδεσμο για την προετοιμασία του dataset για το yolo v3 και ακολουθήστε τον σύνδεσμο μέχρι πριν από την προετοιμασία των αρχείων ρυθμίσεων YOLOv2.

Εκπαίδευση:

Κατεβάστε Preτραcted Convolutional Weights:

Για την εκπαίδευση χρησιμοποιούμε συνελικτικά βάρη που είναι προ-εκπαιδευμένα στην Imagenet. Χρησιμοποιούμε βάρη από το μοντέλο darknet53. Μπορείτε απλά να κατεβάσετε τα βάρη για τα στρώματα συνέλιξης εδώ (76 MB).

Προετοιμασία αρχείων ρυθμίσεων YOLOv3

Το YOLOv3 χρειάζεται συγκεκριμένα αρχεία για να μάθει πώς και τι να εκπαιδεύσει. Δημιουργούμε αυτά τα τρία αρχεία (.data, .names και .cfg) και εξηγούμε επίσης τα yolov3.cfg και yolov3-tiny.cfg.

  • cfg / cat-dog-obj.data
  • cfg / cat-dog-obj.names

Πρώτα ας προετοιμάσουμε τα αρχεία YOLOv3 .data και .names. Ας ξεκινήσουμε δημιουργώντας το cat-dog-obj.data και γεμίζοντας το με αυτό το περιεχόμενο. Αυτό ουσιαστικά λέει ότι εκπαιδεύουμε μια τάξη, ποια είναι τα αρχεία των αμαξοστοιχιών και της επικύρωσης και ποιο αρχείο περιέχει τα ονόματα των κατηγοριών που θέλουμε να εντοπίσουμε.

τάξεις = 2
τρένο = cat-dog-train.txt
έγκυρο = cat-dog-test.txt
ονόματα = cat-dog-obj.names
backup = backup /

Το αντίγραφο ασφαλείας είναι εκεί που θέλετε να αποθηκεύσετε το αρχείο yolo weights.

Τα cat-dog-obj.names μοιάζουν με αυτό, απλά και απλά. Κάθε νέα κατηγορία θα πρέπει να είναι σε νέα γραμμή, ο αριθμός γραμμής της θα πρέπει να ταιριάζει με τον αριθμό της κατηγορίας στα αρχεία ετικέτας .txt που δημιουργήσαμε νωρίτερα.

Γάτα
σκύλος

Τώρα πηγαίνουμε για να δημιουργήσουμε το .cfg για να επιλέξετε την αρχιτεκτονική yolo. Αν έχετε λιγότερη διαμόρφωση GPU (λιγότερο από 2 GB GPU) μπορείτε να χρησιμοποιήσετε το tiny-yolo.cfg ή να έχετε καλή διαμόρφωση GPU (μεγαλύτερη από 4GB GPU) χρησιμοποιώντας το yolov3.cfg.

Βήμα 1: (Αν επιλέξετε tiny-yolo.cfg)

i) Αντιγράψτε το μικροσκοπικό-yolo.cfg και αποθηκεύστε το όνομα αρχείου ως cat-dog-tiny-yolo.cfg

manivannan @ manivannan-whirldatascience: ~ / YoloExample / darknet-v3 $ cd cfg
manivannan @ manivannan-whirldatascience: ~ / YoloExample / darknet-ν3 / cfg $ cp yolov3-tiny.cfg cat-dog-yolov3-tiny.cfg

Απλώς αντιγράψαμε το αρχείο yolov3-tiny.cfg και πραγματοποιήσαμε τις ακόλουθες τροποποιήσεις:
Αλλάξτε την τιμή Φίλτρα και κλάσεις

  • Γραμμή 3: Ρύθμιση παρτίδας = 24, αυτό σημαίνει ότι θα χρησιμοποιήσουμε 24 εικόνες για κάθε εκπαιδευτικό βήμα
  • Γραμμή 4: ορίστε υποδιαιρέσεις = 8, η παρτίδα διαιρείται με 8 για να μειωθούν οι απαιτήσεις GPU VRAM.
  • Γραμμή 127: Ρύθμιση φίλτρων = (τάξεις + 5) * 3 σε φίλτρα case = 21
  • Γραμμή 135: set classes = 2, ο αριθμός των κατηγοριών που θέλουμε να εντοπίσουμε
  • Γραμμή 171: Ρύθμιση φίλτρων = (τάξεις + 5) * 3 σε φίλτρα case = 21
  • Γραμμή 177: set classes = 2, ο αριθμός των κατηγοριών που θέλουμε να εντοπίσουμε

Ξεκινήστε το Trinaing ακολουθώντας το βήμα 1:

Εισαγάγετε την ακόλουθη εντολή στο τερματικό σας και παρακολουθήστε τη GPU σας να κάνει ό, τι κάνει καλύτερα (αντιγράψτε το τρένο.txt και το test.txt στο ριζικό φάκελο yolo_darknet):

manivannan @ manivannan-whirldatascience: ~ / YoloExample / darknet-v3 $. / αμαξοστοιχία ανιχνευτή σκούρων cfg / cat-dog-obj.data cfg / cat-dog-yolov3-tiny.cfg darknet53.conv.74

ΠΑΡΑΓΩΓΗ:

Ολοκληρώστε το αρχείο δημιουργίας .cfg. Εάν έχετε την καλή διαμόρφωση της GPU, παραλείψτε το βήμα 1 και ακολουθήστε το βήμα 2.

Βήμα 2: (Αν επιλέξετε yolov3.cfg)

i) Αντιγράψτε το yolov3.cfg και αποθηκεύστε το όνομα αρχείου ως cat-dog-yolov3.cfg

manivannan @ manivannan-whirldatascience: ~ / YoloExample / darknet-v3 $ cd cfg
manivannan @ manivannan-whirldatascience: ~ / YoloExample / darknet-ν3 / cfg $ cp yolov3.cfg cat-dog-yolov3.cfg

Απλώς αντιγράψαμε το αρχείο yolov3.cfg και πραγματοποιήσαμε τις ακόλουθες τροποποιήσεις:
Αλλάξτε την τιμή Φίλτρα και κλάσεις.

  • Γραμμή 3: Ρύθμιση παρτίδας = 24, αυτό σημαίνει ότι θα χρησιμοποιήσουμε 24 εικόνες για κάθε εκπαιδευτικό βήμα
  • Γραμμή 4: ορίστε υποδιαιρέσεις = 8, η παρτίδα θα διαιρείται με 8 για να μειωθούν οι απαιτήσεις GPU VRAM.
  • Γραμμή 603: Ρύθμιση φίλτρων = (τάξεις + 5) * 3 σε φίλτρα case = 21
  • Γραμμή 610: set classes = 2, ο αριθμός των κατηγοριών που θέλουμε να εντοπίσουμε
  • Γραμμή 689: Ρύθμιση φίλτρων = (κλάσεις + 5) * 3 σε φίλτρα περίπτωση = 21
  • Γραμμή 696: set classes = 2, ο αριθμός των κατηγοριών που θέλουμε να εντοπίσουμε
  • Γραμμή 776: Ρύθμιση φίλτρων = (τάξεις + 5) * 3 σε φίλτρα case = 21
  • Γραμμή 783: set classes = 2, ο αριθμός των κατηγοριών που θέλουμε να εντοπίσουμε

Ξεκινήστε το Trinaing ακολουθώντας το βήμα 2:

Εισαγάγετε την ακόλουθη εντολή στο τερματικό σας και παρακολουθήστε τη GPU σας να κάνει ό, τι κάνει καλύτερα (αντιγράψτε το τρένο.txt και το test.txt στο ριζικό φάκελο yolo_darknet):

manivannan @ manivannan-whirldatascience: ~ / YoloExample / darknet-v3 $. / αμαξοστοιχία ανιχνευτή σκούρων cfg / cat-dog-obj.data cfg / cat-dog-yolov3.cfg darknet53.conv.74

Σημαντικές σημειώσεις κατά την εκπαίδευση:

Τα βάρη αποθηκεύουν μόνο κάθε 100 επαναλήψεις μέχρι 900, και στη συνέχεια αποθηκεύουν κάθε 10.000. Εάν θέλετε να αλλάξετε τη διαδικασία, ακολουθήστε τον σύνδεσμο.