18 KiB
Ανίχνευση Αντικειμένων
Τα μοντέλα ταξινόμησης εικόνων που έχουμε εξετάσει μέχρι τώρα λαμβάνουν μια εικόνα και παράγουν ένα κατηγορηματικό αποτέλεσμα, όπως η κατηγορία 'αριθμός' σε ένα πρόβλημα MNIST. Ωστόσο, σε πολλές περιπτώσεις δεν θέλουμε απλώς να γνωρίζουμε ότι μια εικόνα απεικονίζει αντικείμενα - θέλουμε να μπορούμε να προσδιορίσουμε την ακριβή τους θέση. Αυτό ακριβώς είναι το νόημα της ανίχνευσης αντικειμένων.
Pre-lecture quiz
Εικόνα από YOLO v2 web site
Μια Αφελής Προσέγγιση για Ανίχνευση Αντικειμένων
Ας υποθέσουμε ότι θέλουμε να βρούμε μια γάτα σε μια εικόνα. Μια πολύ αφελής προσέγγιση για την ανίχνευση αντικειμένων θα ήταν η εξής:
- Διαχωρίστε την εικόνα σε έναν αριθμό πλακιδίων.
- Εκτελέστε ταξινόμηση εικόνας σε κάθε πλακίδιο.
- Τα πλακίδια που παράγουν αρκετά υψηλή ενεργοποίηση μπορούν να θεωρηθούν ότι περιέχουν το αντικείμενο που αναζητούμε.
Εικόνα από Exercise Notebook
Ωστόσο, αυτή η προσέγγιση απέχει πολύ από το ιδανικό, καθώς επιτρέπει στον αλγόριθμο να εντοπίσει το πλαίσιο του αντικειμένου πολύ αόριστα. Για πιο ακριβή εντοπισμό, πρέπει να εκτελέσουμε κάποιο είδος παλινδρόμησης για να προβλέψουμε τις συντεταγμένες των πλαισίων - και για αυτό, χρειαζόμαστε συγκεκριμένα σύνολα δεδομένων.
Παλινδρόμηση για Ανίχνευση Αντικειμένων
Αυτό το άρθρο παρέχει μια εξαιρετική εισαγωγή στην ανίχνευση σχημάτων.
Σύνολα Δεδομένων για Ανίχνευση Αντικειμένων
Μπορεί να συναντήσετε τα ακόλουθα σύνολα δεδομένων για αυτήν την εργασία:
- PASCAL VOC - 20 κατηγορίες
- COCO - Common Objects in Context. 80 κατηγορίες, πλαίσια και μάσκες τμηματοποίησης
Μετρικές Ανίχνευσης Αντικειμένων
Intersection over Union
Ενώ για την ταξινόμηση εικόνων είναι εύκολο να μετρήσουμε πόσο καλά αποδίδει ο αλγόριθμος, για την ανίχνευση αντικειμένων πρέπει να μετρήσουμε τόσο την ορθότητα της κατηγορίας όσο και την ακρίβεια της προβλεπόμενης θέσης του πλαισίου. Για το τελευταίο, χρησιμοποιούμε τη λεγόμενη Intersection over Union (IoU), η οποία μετρά πόσο καλά επικαλύπτονται δύο πλαίσια (ή δύο αυθαίρετες περιοχές).
Εικόνα 2 από αυτό το εξαιρετικό άρθρο για το IoU
Η ιδέα είναι απλή - διαιρούμε την περιοχή της τομής μεταξύ δύο σχημάτων με την περιοχή της ένωσής τους. Για δύο πανομοιότυπες περιοχές, το IoU θα είναι 1, ενώ για εντελώς ασύνδετες περιοχές θα είναι 0. Σε άλλες περιπτώσεις, θα κυμαίνεται από 0 έως 1. Συνήθως λαμβάνουμε υπόψη μόνο εκείνα τα πλαίσια για τα οποία το IoU είναι πάνω από μια συγκεκριμένη τιμή.
Average Precision
Ας υποθέσουμε ότι θέλουμε να μετρήσουμε πόσο καλά αναγνωρίζεται μια δεδομένη κατηγορία αντικειμένων C. Για να το μετρήσουμε, χρησιμοποιούμε τη μετρική Average Precision, η οποία υπολογίζεται ως εξής:
- Εξετάστε την καμπύλη Precision-Recall που δείχνει την ακρίβεια ανάλογα με την τιμή κατωφλίου ανίχνευσης (από 0 έως 1).
- Ανάλογα με το κατώφλι, θα εντοπιστούν περισσότερα ή λιγότερα αντικείμενα στην εικόνα, και θα προκύψουν διαφορετικές τιμές ακρίβειας και ανάκλησης.
- Η καμπύλη θα μοιάζει με αυτήν:
Εικόνα από NeuroWorkshop
Η μέση ακρίβεια για μια δεδομένη κατηγορία C είναι η περιοχή κάτω από αυτήν την καμπύλη. Πιο συγκεκριμένα, ο άξονας Recall συνήθως διαιρείται σε 10 μέρη, και η ακρίβεια υπολογίζεται ως μέσος όρος σε όλα αυτά τα σημεία:
AP = {1\over11}\sum_{i=0}^{10}\mbox{Precision}(\mbox{Recall}={i\over10})
AP και IoU
Θα εξετάσουμε μόνο εκείνες τις ανιχνεύσεις για τις οποίες το IoU είναι πάνω από μια συγκεκριμένη τιμή. Για παράδειγμα, στο σύνολο δεδομένων PASCAL VOC συνήθως \mbox{IoU Threshold} = 0.5, ενώ στο COCO το AP μετράται για διαφορετικές τιμές του \mbox{IoU Threshold}.
Εικόνα από NeuroWorkshop
Mean Average Precision - mAP
Η κύρια μετρική για την ανίχνευση αντικειμένων ονομάζεται Mean Average Precision, ή mAP. Είναι η τιμή της Μέσης Ακρίβειας, μέσος όρος σε όλες τις κατηγορίες αντικειμένων, και μερικές φορές επίσης πάνω από το \mbox{IoU Threshold}. Η διαδικασία υπολογισμού του mAP περιγράφεται λεπτομερώς
σε αυτό το άρθρο), καθώς και εδώ με δείγματα κώδικα.
Διαφορετικές Προσεγγίσεις Ανίχνευσης Αντικειμένων
Υπάρχουν δύο ευρείες κατηγορίες αλγορίθμων ανίχνευσης αντικειμένων:
- Δίκτυα Πρότασης Περιοχών (R-CNN, Fast R-CNN, Faster R-CNN). Η βασική ιδέα είναι να δημιουργηθούν Περιοχές Ενδιαφέροντος (ROI) και να εκτελεστεί CNN πάνω τους, αναζητώντας μέγιστη ενεργοποίηση. Είναι κάπως παρόμοιο με την αφελή προσέγγιση, με τη διαφορά ότι οι ROI δημιουργούνται με πιο έξυπνο τρόπο. Ένα από τα κύρια μειονεκτήματα αυτών των μεθόδων είναι ότι είναι αργές, επειδή απαιτούν πολλές περάσεις του ταξινομητή CNN πάνω στην εικόνα.
- Μέθοδοι Μιας Περάσματος (YOLO, SSD, RetinaNet). Σε αυτές τις αρχιτεκτονικές σχεδιάζουμε το δίκτυο να προβλέπει τόσο τις κατηγορίες όσο και τις ROI σε μία μόνο διέλευση.
R-CNN: CNN Βασισμένο σε Περιοχές
Το R-CNN χρησιμοποιεί Selective Search για να δημιουργήσει ιεραρχική δομή περιοχών ROI, οι οποίες στη συνέχεια περνούν από εξαγωγείς χαρακτηριστικών CNN και ταξινομητές SVM για να προσδιορίσουν την κατηγορία του αντικειμένου, και γραμμική παλινδρόμηση για να προσδιορίσουν τις συντεταγμένες του πλαισίου. Επίσημο Άρθρο
Εικόνα από van de Sande et al. ICCV’11
Εικόνες από αυτό το άρθρο
F-RCNN - Fast R-CNN
Αυτή η προσέγγιση είναι παρόμοια με το R-CNN, αλλά οι περιοχές ορίζονται αφού έχουν εφαρμοστεί οι στρώσεις συνελικτικής.
Εικόνα από το Επίσημο Άρθρο, arXiv, 2015
Faster R-CNN
Η βασική ιδέα αυτής της προσέγγισης είναι να χρησιμοποιηθεί ένα νευρωνικό δίκτυο για να προβλέψει τις ROI - το λεγόμενο Region Proposal Network. Άρθρο, 2016
Εικόνα από το επίσημο άρθρο
R-FCN: Δίκτυο Πλήρως Συνελικτικό Βασισμένο σε Περιοχές
Αυτός ο αλγόριθμος είναι ακόμα πιο γρήγορος από το Faster R-CNN. Η βασική ιδέα είναι η εξής:
- Εξάγουμε χαρακτηριστικά χρησιμοποιώντας ResNet-101.
- Τα χαρακτηριστικά επεξεργάζονται από Position-Sensitive Score Map. Κάθε αντικείμενο από
Cκατηγορίες διαιρείται σεk\times kπεριοχές, και εκπαιδεύουμε για να προβλέψουμε μέρη αντικειμένων. - Για κάθε μέρος από τις
k\times kπεριοχές, όλα τα δίκτυα ψηφίζουν για τις κατηγορίες αντικειμένων, και η κατηγορία αντικειμένου με τη μέγιστη ψήφο επιλέγεται.
Εικόνα από επίσημο άρθρο
YOLO - You Only Look Once
Το YOLO είναι ένας αλγόριθμος πραγματικού χρόνου μιας διέλευσης. Η βασική ιδέα είναι η εξής:
- Η εικόνα διαιρείται σε
S\times Sπεριοχές. - Για κάθε περιοχή, CNN προβλέπει
nπιθανά αντικείμενα, τις συντεταγμένες του πλαισίου και την εμπιστοσύνη=πιθανότητα * IoU.
Εικόνα από επίσημο άρθρο
Άλλοι Αλγόριθμοι
- RetinaNet: επίσημο άρθρο
- Υλοποίηση PyTorch στο Torchvision
- Υλοποίηση Keras
- Ανίχνευση Αντικειμένων με RetinaNet στα δείγματα Keras
- SSD (Single Shot Detector): επίσημο άρθρο
✍️ Ασκήσεις: Ανίχνευση Αντικειμένων
Συνεχίστε τη μάθησή σας στο ακόλουθο σημειωματάριο:
Συμπέρασμα
Σε αυτό το μάθημα κάνατε μια γρήγορη περιήγηση σε όλους τους διάφορους τρόπους με τους οποίους μπορεί να επιτευχθεί η ανίχνευση αντικειμένων!
🚀 Πρόκληση
Διαβάστε αυτά τα άρθρα και σημειωματάρια σχετικά με το YOLO και δοκιμάστε τα μόνοι σας:
- Καλό άρθρο που περιγράφει το YOLO
- Επίσημος ιστότοπος
- Yolo: Υλοποίηση Keras, σημειωματάριο βήμα-βήμα
- Yolo v2: Υλοποίηση Keras, σημειωματάριο βήμα-βήμα
Post-lecture quiz
Ανασκόπηση & Αυτομελέτη
- Ανίχνευση Αντικειμένων από τον Nikhil Sardana
- Μια καλή σύγκριση αλγορίθμων ανίχνευσης αντικειμένων
- Ανασκόπηση Αλγορίθμων Βαθιάς Μάθησης για Ανίχνευση Αντικειμένων
- Εισαγωγή βήμα-βήμα στους βασικούς αλγορίθμους ανίχνευσης αντικειμένων
- Υλοποίηση του Faster R-CNN σε Python για Ανίχνευση Αντικειμένων
Assignment: Ανίχνευση Αντικειμένων
Αποποίηση Ευθύνης:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης Co-op Translator. Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτόματες μεταφράσεις ενδέχεται να περιέχουν σφάλματα ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.









