Skip to content

Latest commit

 

History

History
179 lines (101 loc) · 15.9 KB

File metadata and controls

179 lines (101 loc) · 15.9 KB

Ανίχνευση Αντικειμένων

Τα μοντέλα ταξινόμησης εικόνων που έχουμε εξετάσει μέχρι τώρα λαμβάνουν μια εικόνα και παράγουν ένα κατηγορηματικό αποτέλεσμα, όπως η κατηγορία 'αριθμός' σε ένα πρόβλημα MNIST. Ωστόσο, σε πολλές περιπτώσεις δεν θέλουμε απλώς να γνωρίζουμε ότι μια εικόνα απεικονίζει αντικείμενα - θέλουμε να μπορούμε να προσδιορίσουμε την ακριβή τους θέση. Αυτό ακριβώς είναι το νόημα της ανίχνευσης αντικειμένων.

Ανίχνευση Αντικειμένων

Εικόνα από ιστοσελίδα YOLO v2

Μια Αφελής Προσέγγιση για Ανίχνευση Αντικειμένων

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

  1. Διασπάστε την εικόνα σε έναν αριθμό πλακιδίων.
  2. Εκτελέστε ταξινόμηση εικόνας σε κάθε πλακίδιο.
  3. Τα πλακίδια που δίνουν αρκετά υψηλή ενεργοποίηση μπορούν να θεωρηθούν ότι περιέχουν το αντικείμενο που αναζητούμε.

Αφελής Ανίχνευση Αντικειμένων

Εικόνα από Exercise Notebook

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

Παλινδρόμηση για Ανίχνευση Αντικειμένων

Αυτό το άρθρο παρέχει μια εξαιρετική εισαγωγή στην ανίχνευση σχημάτων.

Σύνολα Δεδομένων για Ανίχνευση Αντικειμένων

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

  • PASCAL VOC - 20 κατηγορίες
  • COCO - Common Objects in Context. 80 κατηγορίες, πλαίσια και μάσκες τμηματοποίησης

COCO

Μετρικές Ανίχνευσης Αντικειμένων

Intersection over Union

Ενώ για την ταξινόμηση εικόνων είναι εύκολο να μετρήσουμε πόσο καλά αποδίδει ο αλγόριθμος, για την ανίχνευση αντικειμένων πρέπει να μετρήσουμε τόσο την ορθότητα της κατηγορίας όσο και την ακρίβεια της προβλεπόμενης θέσης του πλαισίου. Για το τελευταίο, χρησιμοποιούμε τη λεγόμενη Intersection over Union (IoU), η οποία μετρά πόσο καλά δύο πλαίσια (ή δύο αυθαίρετες περιοχές) επικαλύπτονται.

IoU

Εικόνα 2 από αυτό το εξαιρετικό άρθρο για το IoU

Η ιδέα είναι απλή - διαιρούμε την περιοχή της τομής μεταξύ δύο σχημάτων με την περιοχή της ένωσής τους. Για δύο πανομοιότυπες περιοχές, το IoU θα είναι 1, ενώ για εντελώς ασύνδετες περιοχές θα είναι 0. Διαφορετικά, θα κυμαίνεται από 0 έως 1. Συνήθως λαμβάνουμε υπόψη μόνο εκείνα τα πλαίσια για τα οποία το IoU είναι πάνω από μια συγκεκριμένη τιμή.

Average Precision

Ας υποθέσουμε ότι θέλουμε να μετρήσουμε πόσο καλά αναγνωρίζεται μια δεδομένη κατηγορία αντικειμένων $C$. Για να το μετρήσουμε, χρησιμοποιούμε τη μετρική Average Precision, η οποία υπολογίζεται ως εξής:

  1. Εξετάζουμε την καμπύλη Precision-Recall που δείχνει την ακρίβεια ανάλογα με την τιμή του κατωφλίου ανίχνευσης (από 0 έως 1).
  2. Ανάλογα με το κατώφλι, θα εντοπιστούν περισσότερα ή λιγότερα αντικείμενα στην εικόνα, και θα έχουμε διαφορετικές τιμές ακρίβειας και ανάκλησης.
  3. Η καμπύλη θα μοιάζει με αυτή:

Εικόνα από 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 περιγράφεται σε αυτό το άρθρο), καθώς και εδώ με δείγματα κώδικα.

Διαφορετικές Προσεγγίσεις Ανίχνευσης Αντικειμένων

Υπάρχουν δύο ευρείες κατηγορίες αλγορίθμων ανίχνευσης αντικειμένων:

  • Region Proposal Networks (R-CNN, Fast R-CNN, Faster R-CNN). Η βασική ιδέα είναι να δημιουργηθούν Regions of Interests (ROI) και να εκτελεστεί CNN πάνω τους, αναζητώντας μέγιστη ενεργοποίηση. Είναι κάπως παρόμοιο με την αφελή προσέγγιση, με τη διαφορά ότι τα ROI δημιουργούνται με πιο έξυπνο τρόπο. Ένα από τα κύρια μειονεκτήματα αυτών των μεθόδων είναι ότι είναι αργές, επειδή απαιτούν πολλές περάσεις του ταξινομητή CNN πάνω από την εικόνα.
  • One-pass (YOLO, SSD, RetinaNet) μέθοδοι. Σε αυτές τις αρχιτεκτονικές σχεδιάζουμε το δίκτυο να προβλέπει τόσο τις κατηγορίες όσο και τα ROI σε μία μόνο περά.

R-CNN: Region-Based CNN

Το R-CNN χρησιμοποιεί Selective Search για να δημιουργήσει ιεραρχική δομή περιοχών ROI, οι οποίες στη συνέχεια περνούν από εξαγωγείς χαρακτηριστικών CNN και ταξινομητές SVM για να προσδιοριστεί η κατηγορία του αντικειμένου, και γραμμική παλινδρόμηση για να προσδιοριστούν οι συντεταγμένες του bounding box. Επίσημο Άρθρο

RCNN

Εικόνα από van de Sande et al. ICCV’11

RCNN-1

Εικόνες από αυτό το άρθρο

F-RCNN - Fast R-CNN

Αυτή η προσέγγιση είναι παρόμοια με το R-CNN, αλλά οι περιοχές ορίζονται αφού έχουν εφαρμοστεί τα επίπεδα συνελικτικής.

FRCNN

Εικόνα από το Επίσημο Άρθρο, arXiv, 2015

Faster R-CNN

Η βασική ιδέα αυτής της προσέγγισης είναι να χρησιμοποιηθεί ένα νευρωνικό δίκτυο για να προβλέψει τα ROI - το λεγόμενο Region Proposal Network. Άρθρο, 2016

FasterRCNN

Εικόνα από το επίσημο άρθρο

R-FCN: Region-Based Fully Convolutional Network

Αυτός ο αλγόριθμος είναι ακόμα πιο γρήγορος από το Faster R-CNN. Η βασική ιδέα είναι η εξής:

  1. Εξάγουμε χαρακτηριστικά χρησιμοποιώντας ResNet-101.
  2. Τα χαρακτηριστικά επεξεργάζονται από Position-Sensitive Score Map. Κάθε αντικείμενο από $C$ κατηγορίες διαιρείται σε $k\times k$ περιοχές, και εκπαιδεύουμε το δίκτυο να προβλέπει μέρη αντικειμένων.
  3. Για κάθε μέρος από τις $k\times k$ περιοχές, όλα τα δίκτυα ψηφίζουν για τις κατηγορίες αντικειμένων, και η κατηγορία αντικειμένου με τη μέγιστη ψήφο επιλέγεται.

r-fcn image

Εικόνα από επίσημο άρθρο

YOLO - You Only Look Once

Το YOLO είναι ένας αλγόριθμος πραγματικού χρόνου με μία μόνο περά. Η βασική ιδέα είναι η εξής:

  • Η εικόνα διαιρείται σε $S\times S$ περιοχές.
  • Για κάθε περιοχή, CNN προβλέπει $n$ πιθανά αντικείμενα, τις συντεταγμένες του bounding box και την confidence=πιθανότητα * IoU.

YOLO

Εικόνα από επίσημο άρθρο

Άλλοι Αλγόριθμοι

✍️ Ασκήσεις: Ανίχνευση Αντικειμένων

Συνεχίστε τη μάθησή σας στο παρακάτω notebook:

ObjectDetection.ipynb

Συμπέρασμα

Σε αυτό το μάθημα κάνατε μια γρήγορη περιήγηση σε όλους τους διάφορους τρόπους με τους οποίους μπορεί να επιτευχθεί η ανίχνευση αντικειμένων!

🚀 Πρόκληση

Διαβάστε αυτά τα άρθρα και notebooks σχετικά με το YOLO και δοκιμάστε τα μόνοι σας:

Ανασκόπηση & Αυτομελέτη