Ε.Α.Υ. Υπολογιστική Όραση Κατάτμηση Εικόνας Γεώργιος Παπαϊωάννου 2015
ΚΑΤΩΦΛΙΩΣΗ
Κατωφλίωση - Γενικά Είναι η πιο απλή μέθοδος segmentation εικόνας Χωρίζουμε την εικόνα σε 2 (binary) ή περισσότερες στάθμες με βάση κριτήρια διαχωρισμού Συχνά το εφαρμόζουμε σε ακμές
Κατωφλίωση Με Βάση το Ιστόγραμμα Μπορούμε να εξάγουμε χρήσιμη πληροφορία από τη μορφή του ιστογράμματος για το που να ορίσουμε το κατώφλι Άνω 15% Σημαντικά χαμηλότερες συγκεντρώσεις
Ο ΑΝΙΧΝΕΥΤΗΣ ΑΚΜΩΝ CΑΝΝΥ
Canny Edge Detector Ο Canny edge detector προσπαθεί να απομονώσει ακμές που Να αποτελούν υποψήφια περιγράμματα χρήσιμων περιοχών της εικόνας Ιδιότητες: Απόρριψη μικρών και απομονωμένων ακμών Καταστολή θορύβου Ελάττωση πάχους ακμών κρατάμε μόνο τις τοπικές κορυφές της μετάπτωσης
Πηγή: Wikipedia Canny Edge Detector - Παράδειγμα
Canny Edge Detector - Βήματα Εξομάλυνση της εικόνας και απομάκρυνση θορύβου Έτσι, ανιχνεύονται μόνο σημαντικές μεταπτώσεις φωτεινότητας Εφαρμογή ενός διαφορικού τελεστή ώστε: Να βρεθεί το μέτρο της κλίσης (gradient) Να βρεθεί η γωνία της κλήσης Maximum Value Suppression για εκλέπτυνση Κατωφλίωση της εικόνας: μια συντηρητική και μια ισχυρή Συνένωση σημαντικών ακμών και απόρριψη των υπολοίπων με υστέρηση
Canny E.D. Εξομάλυνση και Διαφόριση Εφαρμόζουμε ένα φίλτρο Gauss για την εξομάλυνση II (xx, yy) = GG(xx, yy) II(xx, yy) Εφαρμόζουμε ένα διαφορικό τελεστή για να βρούμε τις μερικές παραγώγους: gg xx = II, gg xx yy = II yy Π.χ. μπορούμε να χρησιμοποιήσουμε τις μάσκες Sobel: -1 0 1-2 0 2-1 0 1-1 -2-1 0 0 0 1 2 1
Canny E.D. Εξομάλυνση και Διαφόριση Η ακτίνα (τυπική απόκλιση και αντίστοιχα μέγεθος μάσκας) του φίλτρου πρέπει να είναι συγκρίσιμη με το μέγεθος του διαφορικού τελεστή Αρχική εικόνα Sobel+Gauss (σ=0.8) Sobel+Gauss (σ=2.5) Sobel+Gauss (σ=5.1)
Canny E.D. Gradient Κρατάμε το μέτρο και τη γωνία του gradient: II (xx, yy) = gg xx, gg yy MM xx, yy aa xx, yy MM xx, yy = gg xx 2 + gg yy 2 aa xx, yy = aaaaaaaaa(gg yy, gg xx )
Canny E.D. Εκλέπτυνση (1) Για κάθε Pixel, βρίσκουμε τις γειτονικές τιμές πάνω στο gradient, Με βάση τη γωνία a Αν το μέτρο Μ στο τρέχον Pixel είναι μεγαλύτερο από αυτό των γειτόνων, κρατάμε το Pixel, αλλιώς το απορρίπτουμε (μηδενίζουμε) Ο υπολογισμός των τιμών στην κατεύθυνση του gradient μπορεί να γίνει με: παρεμβολή από τα πλησιέστερα Pixels (ακριβέστερο αλλά αργό) Επιλογή διακριτής διεύθυνσης (4 συνολικά)
Canny E.D. Εκλέπτυνση (2) Παράδειγμα:
Canny E.D. Εκλέπτυνση (3) Παράδειγμα:
Canny E.D. Κατώφλι (1) Θέλουμε να κρατήσουμε σίγουρα τις ακμές που ξεπερνάνε σε ένταση ένα ψηλό κατώφλι ΤΤ ΗΗ Πιθανά μας ενδιαφέρουν και ακμές χαμηλότερης έντασης (TT HH > ΙΙ > ΤΤ LL ) που όμως συνδέονται με ισχυρές ακμές! Δημιουργούμε 2 σύνολα: ΙΙ ΤΤ ΗΗ II(xx, yy) ΙΙ ΗΗ xx, yy = 0, II xx, yy TT HH ooooooooooooooooo TT HH > ΙΙ > ΤΤ LL ΙΙ LL xx, yy = II xx, yy ΙΙ ΗΗ xx, yy 0, II xx, yy TT LL ooooooooooooooooo
Canny E.D. Κατώφλι (2) Παράδειγμα: Binary(II LL ) Binary(II HH )
Canny E.D. Hysteresis Thresholding Κρατάμε όλα τα Pixels της ΙΙ ΗΗ Κρατάμε ένα Pixel της ΙΙ LL, μόνο αν είναι γειτονικό σε κάποιο της ΙΙ ΗΗ
Αποτελέσματα Canny E.D.
Αποτελέσματα Canny E.D.
Αποτελέσματα Canny E.D.
HOUGH TRANSFORM
Ολική Ανίχνευση Μορφών Συχνά προσπαθούμε να βρούμε δομή μέσα σε μια εικόνα Συνήθως εικόνα ακμών Θέλουμε να ανιχνεύσουμε στοιχειώσεις γεωμετρικές δομές και Να τις συσχετίσουμε Αναγνώριση μορφών
Ο Μετασχηματισμός Hough Πρόκειται για μια μέθοδο ψηφοφορίας που μας λέει αν τα Pixels που έχουμε κείνται επί καμπυλών που χαρακτηρίζονται από κάποιο συγκεκριμένο σχήμα Απλούστερη περίπτωση: Ευθείες
H.T.: Παραμετροποίηση (1) Ας πάρουμε την απλή εξίσωση ευθείας στο επίπεδο: yy = aaaa + bb bb = aaaa + yy Οι παράμετροι a,b ορίζουν κι αυτές ένα επίπεδο, τον παραμετρικό χώρο (xx, yy) bb yy = aaaa + bb aa
H.T.: Παραμετροποίηση (2) Από ένα σημείο στο επίπεδο της εικόνας περνάνε άπειρες ευθείες Οι παράμετροι των άπειρων ευθειών σχηματίζουν μια ευθεία στον παραμετρικό χώρο yy bb xx aa
H.T.: Παραμετροποίηση (3) Για 2 σημεία, από τις άπειρες διερχόμενες ευθείες από αυτά μόνο μία είναι κοινή: Εκφράζεται ως τομή των ευθειών παραμέτρων (κοινό σημείο) στον παραμετρικό χώρο: yy bb xx aa
H.T.: Η Κεντρική Ιδέα (1) Όταν παραπάνω από 2 σημεία είναι συνευθειακά, δηλαδή βρίσκονται στο ίδιο ευθύγραμμο τμήμα, τότε οι παραμετρικές τους ευθείες περνάνε όλες από το ίδιο σημείο Ψηφίζουν την ίδια παραμετρική συντεταγμένη περισσότερες φορές απ ότι άλλες!
H.T.: Η Κεντρική Ιδέα (2) bb 3 ψήφοι aa 3 συνευθειακά σημεία
H.T.: Η Κεντρική Ιδέα (3) Επειδή: τα εικονοστοιχεία είναι διακριτά Οι ακμές δεν είναι ακριβώς ευθύγραμμες δεν υπάρχει απόλυτη σύμπτωση με μια μαθηματική ευθεία Διακριτοποιούμε τον παραμετρικό χώρο σε κελιά
H.T.: Παρατήρηση (1) Επειδή η παράμετρος a (κλίση) μπορεί να πάρει τιμές ±, χρησιμοποιούμε μια άλλη μορφή της εξίσωσης επιπέδου: Ως προς γωνία θ και απόσταση ρ από την αρχή των αξόνων: yy ρρ ρρ = xx cos θθ + yy sin θθ θθ xx
H.T.: Παρατήρηση (2) Πηγή: http://www.jayrambhia.com/blog/hough-transform/
Ο Αλγόριθμος του Hough Δημιούργησε και μηδένισε έναν συσσωρευτή Α ΜΧΝ κελιών για τις διακριτές παραμέτρους (θθ, ρρ) Για κάθε Pixel ακμής (xx, yy): Για κάθε διακριτή τιμή της παραμέτρου θθ Υπολόγισε την εξίσωση ρρ = xx cos θθ + yy sin θθ Αύξησε το κελί του Α που περιέχει το ζεύγος θθ, ρρ Επέβαλε κατώφλι στον Α (ελάχιστος αριθμός Pixels πάνω σε μια γραμμή)
H.T. Παράδειγμα (1) Hough Transform Canny Edge Detector
H.T. Παράδειγμα (2)
H.T. Παράδειγμα (3)
Συνδεσιμότητα Γραμμών Για να κρατήσουμε τα Pixels που πατάνε πάνω σε συνεχόμενα τμήματα, μετά την εκτέλεση του H.T.: Για κάθε γραμμή (ζεύγος παραμέτρων), μετά την κατωφλίωση: Βρες τα Pixels που πατάνε σε κάθε γραμμή Ταξινόμησέ τα κατά μήκος της γραμμής Μέτρησε τις αποστάσεις ανά δύο Πρόσθεσε Pixel σε ένα τμήμα όσο η απόστασή του από το προηγούμενο είναι μικρότερη από ένα κατώφλι (διάκενο) Κράτησε το τμήμα αν έχει μήκος μεγαλύτερο του επιθυμητού
ΑΝΑΠΑΡΑΣΤΑΣΗ ΠΕΡΙΓΡΑΜΜΑΤΟΣ
Γιατί Χρειαζόμαστε μια Αναπαράσταση; Μας δίνει τη δυνατότητα να περιγράψουμε και να κωδικοποιήσουμε τη μορφή του σχήματος Μετά, μπορούμε να συγκρίνουμε αναπαραστάσεις Αναγνώριση (ταυτοποίηση) σχημάτων Κατηγοριοποίηση σχημάτων Απλοποίηση Κατάτμηση
Είσοδος και Έξοδος Ως είσοδο παίρνουμε τη δυαδική (0/1) αναπαράσταση είτε ενός περιγράμματος είτε μιας περιοχής (π.χ. από κατωφλίωση) Η έξοδος είναι μια υπογραφή (signature) που χαρακτηρίζει το σχήμα Τυπικά, μια ακολουθία τιμών
Κριτήρια Καταλληλότητας Αναπαράστασης Ανεξαρτησία από μετατόπιση, περιστροφή και κλιμάκωση σχήματος Ανεκτικότητα στη λεπτομέρεια και το θόρυβο Διαχωρισιμότητα σχημάτων
Περιγράμματα Raster Για την αρχική περιγραφή ενός περιγράμματος ψηφιακής εικόνας (raster), μια κοινή διαδικασία είναι η παρακολούθηση περιγράμματος (boundary tracing) Εφαρμόζεται σε επίπεδο κελιού (Π.χ. Pixel) Αποδίδει ένα κλειστό όριο
Παρακολούθηση Περιγράμματος (1) Για κάθε Pixel cc, παίρνουμε τους 8 γείτονές του nn kk, kk = 0 7 Ξεκινάμε από το άνω αριστερό άκρο (θα δούμε πώς στη συνέχεια): cc = cc 0, το οποίο και το καταχωρούμε Διαλέγουμε ως πρώτο υπό εξέταση σημείο ένα σίγουρα ανοιχτό (τιμή 0): bb = το αριστερό του cc 0 bb cc 0
Παρακολούθηση Περιγράμματος (2) Διατρέχουμε κυκλικά όλους τους γείτονες του cc ξεκινώντας από το bb, μέχρι να συναντήσουμε ενεργό Pixel nn kk Αν cc== cc 0 KAI nn kk είναι o επόμενος του cc 0, έχουμε ολοκληρώσει το περίγραμμα bb cc 0 cc 0 bb Αλλιώς: θέτουμε cc= nn kk και bb = nn kk 1 και επαναλαμβάνουμε bb cc 0
Κώδικας Αλυσίδας (1) 3 2 1 Για την περιγραφή της παραπάνω ακολουθίας σημείων χρησιμοποιείται ένας κώδικας αλυσίδας: Κωδικοποιούνται οι 4 ή 8 κατευθύνσεις με έναν αριθμό 4 5 6 7 0 Αποδίδεται ένας αριθμός σε κάθε μετάπτωση Συνδέουμε και το τελευταίο με το πρώτο cc 0 0 0 0 3 1 4 3 1 7 5 7 6 0007657644313413 3 4 4 6
Κώδικας Αλυσίδας (2) Στον παραπάνω κώδικα οι αρίθμηση εξαρτάται από το αρχικό σημείο Μπορούμε να κανονικοποιήσουμε τον κώδικα, παίρνοντας πάντα εκείνη την κυκλική αντιμετάθεση του κώδικα που αναπαριστά το μικρότερο αριθμό: 90 o 33001212 33010122 normalize normalize 00121233 01012233
Κώδικας Αλυσίδας (3) Στον παραπάνω κώδικα οι αρίθμηση εξαρτάται από τον προσανατολισμό του σχήματος Αφαιρούμε αυτή την εξάρτηση αν καταγράψουμε τις αλλαγές κατεύθυνσης: ή dd ii = cc ii cc ii 1 mmmmmm 4 dd ii = cc ii cc ii 1 mmmmmm 8
Κώδικας Αλυσίδας (3) cc 0 0 0 0 3 1 4 3 1 7 5 7 6 3 4 4 6 0007657644313413 50007772760762152
Πολυγωνικά Περιγράμματα (1) Η αναπαράσταση ενός περιγράμματος σημείο προς σημείο: Είναι δαπανηρή: μεγάλες αλυσίδες Είναι ευαίσθητη στο θόρυβο και μικροδιαταραχές Είναι ευαίσθητη στην κλίμακα του σχήματος (διαφορετικό μήκος) Μπορούμε να φτιάξουμε πολυγωνικά περιγράμματα Αραιή δειγματοληψία του περιγράμματος Γραμμική προσέγγιση μεταξύ δειγμάτων
Πολυγωνικά Περιγράμματα (2) Ένας τρόπος παραγωγής: Διαδικασία διαχωρισμού Ξεκινάμε από έναν αριθμό από ισαπέχοντα (στην αλυσίδα) σημεία (π.χ. 3-4) Σταδιακή πολυγωνική προσέγγιση του σχήματος, π.χ. με εισαγωγή κόμβου στο μακρινότερο σημείο από τμήμα, μέχρι ένα επίπεδο σφάλματος
Πολυγωνικά Περιγράμματα (3) Τα πολυγωνικά περιγράμματα μπορούμε στη συνέχεια: Να τα δειγματοληπτήσουμε με άλλο ρυθμό (π.χ ομοιόμορφα) Να τα εξομαλύνουμε (κινούμενος μέσος όρος, παρεμβολή κλπ)
Άλλες Υπογραφές Περιγράμματος (1) Γενικεύοντας τους διαφορικούς κώδικες για 4 και 8 γειτονία, στις πολυγωνικές αναπαραστάσεις μπορούμε να μετρήσουμε: Τη γωνία στροφής (προσημασμένη) των διαδοχικών ευθυγράμμων τμημάτων
Άλλες Υπογραφές Περιγράμματος (2) Μια χρήσιμη υπογραφή για αναγνώριση βασικών σχημάτων είναι το διάγραμμα αποστάσεων (π.χ. από το κέντρο βάρους του σχήματος): ρρ ρρ θθ θθ ρρ θθ ρρ θθ