Γεωμετρικοί μετασχηματιμοί εικόνας Μάθημα: Υπολογιστική Οραση Κ. Δελήμπασης Κ. Δελήμπασης 1
Γεωμετρικοί Μετασχηματισμοί Ορισμός σημείου στονευκλείδιοχώρο: p=[x p,y p,z p ] T, όπου x p, y p, z p πραγματικοί αριθμοί. ΕστωΕ 3 τοσύνολοτωνp. Ενας γεωμετρικός μετασχηματισμός Τ(π), μεδιάνυσμαπαραμέτρωνπ, ορίζεταιως: T: Ε 3 --> Ε 3 Οι μετασχηματισμοί σε 2D αποτελoύν υποπερίπτωση των 3D. Παραδείγματα: Μεταφορά(translation), περιστροφή(rotation), αλλαγή κλίμακας (scaling). Κάθε γεωμετρικός μετασχηματισμός που μπορεί να περιγραφεί σαν συνδυασμός μεταφορών, περιστροφώ, ή αλλαγής κλίμακας λέγεται γενικευμένος συσχετισμένος μετασχηματισμός(affine). Κ. Δελήμπασης
Ομογενείς συντεταγμένες Σύνθεση μετασχηματισμών Ακολουθία μετασχηματισμών εκφράζεται σαν γινόμενο των αντίστοιχων πινάκων, με τον πίνακα του 1ου μετασχηματισμού αριστερά Η μετατόπιση είναι ο μόνος μετασχηματισμός ο οποίος απαιτεί πρόσθεση Ομογενείς συντεταγμένες: για κάθε σημείο P(x,y), εισάγουμε μία επιπλέον συντεταγμένη w, P(x,y,w 0 ), Το σημείο P (x/w 0, y/w 0, 1) αποτελεί την αναπαράσταση ομογενών συντεταγμένων στο επίπεδο w=w 0 Συνήθως χρησιμοποιείται η βασική αναπαράσταση με w 0 =1 Με την εφαρμογή των ομογενών συντεταγμένων η μετατόπιση γίνεται με πολλαπλασιασμό πινάκων και έτσι είναι δυνατή η σύνθεση πολλών διαδοχικών μετασχηματισμών σε ένα μόνο πίνακα μετασχηματισμού. Κ. Δελήμπασης
Συχνά είναι απαραίτητο να εφαρμόσουμε ένα συσχετισμένο μετασχηματισμό σε μία εικόνα, πχ Περιστροφή της εικόνας γύρω από το κέντρο μάζας της Αλλαγή κλίμακας της εικόνας (ισοδύναμα interpolation). Εστω Το μετασχηματισμός T: Ε 3 --> Ε 3 εικόνας που μετρέπει μία εικόνα Ιστην εικόνα Ι 1. I1 ( T( x, y) ) = I( x, y) (, ) T x y x = T y 1 Τείναι ο πίνακας του μετασχηματισμού (σε ομογενείς συντεταγμένες), ο οποίος εφαρμοζόμενος στις συντεταγμένες ενός pixelπαράγει τις συντεταγμένες του αντίστοιχου pixel της μετασχηματισμένης εικόνας. Κ. Δελήμπασης
Μετατώπιση (Translation)κατά d x, d y : Αλλαγή κλίμακας (ανεξάρτητα σε κάθε διάσταση), ως προς την αρχή των αξόνων. Περιστροφή (Rotation) γύρω από τον άξονα των z, ως προς την αρχή των αξόνων. Οποιοσδήποτε συσχετισμένος μετασχηματισμός (στις 2 διαστάσεις) μπορεί να περιγραφεί από ένα πίνακα της μορφής: T T ( s s ) 1 0 d x = 0 1 d y 0 0 1 sx = 0 0 0 x, y sy cos Rθ ( ) = sin 0 T 0 0 0 1 ( θ) sin( θ) ( θ) cos( θ) 0 a11 a12 a13 = a21 a22 a23 0 0 1 0 0 1 Κ. Δελήμπασης 5
Ο μετασχηματισμός Affine εφαρμόζεται ως εξής: Για κάθε pixel(x1,y1)της Ι1, υπολογίζονται οι νέες συντεταγμένες (x2,y2) ως εξής: Επισημαίνεται ότι: x2 a00 a01 a02 x1 y 2 a10 a11 a 12 y = 1 1 0 0 1 1 Τα (x2,y2)δεν είναι πάντα ακέραια, μπορεί να πάρουν και αρνητικές τιμές, ή τιμές μεγαλύτερες από τον αριθμό γραμμών και στηλών της Ι1. Εφαρμογή του μετασχηματισμού σε Matlab: I2=imtransform(I1,T,'nearest','XData',XData,'YData',Y Data,'FillValues',0); Κ. Δελήμπασης 6
Παράδειγμα Εστω ότι επιθυμούμε να μετατοπίσουμε μία εικόνα μεγέθους 256x256κατά 10,-8 στους δύο άξονες, να την περιστρέψουμε κατά θ=6 0 και να αλλάξουμε την κλίμακα στον άξονα Χκαι Υκατά 1.2 και 0.8 αντίστοιχα. Πίνακας µετατόπισης Πίνακας αλλαγής (0,0) > κέντρο µάζας κλίµακας ( θ) ( θ) ( θ) ( θ) 1 0 cx sx 0 0 cos sin 0 1 0 dx 1 0 cx T = 0 1 cy 0 sy 0 sin cos 0 0 1 dy 0 1 cy 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 14243 142443 14444244443 14243 1 42443 Πίνακας περιστροφής Πίνακας µετατόπισης Πίνακας µετατόπισης dx, dy κέντρου µάζας --> (0,0) T 6π 6π cos sin 0 180 180 1 0 128 1.2 0 0 1 0 10 1 0 128 6π 6π 0 1 128 0 0.8 0 = sin cos 0 180 180 0 1 8 0 1 128 0 0 1 0 0 1 0 0 1 0 0 1 1 42443 1442443 0 0 1 14243 1442443 Πίνακας µετατόπισης Πίνακας αλλαγής (0,0) > κέντρο µάζας κλίµακας 1444442444443 Πίνακας περιστροφής +6 µοιρών Πίνακας µετατόπισης Πίνακας µετατόπισης dx, dy κέντρου µάζας --> (0,0) Κ. Δελήμπασης 7
Εφαρμογή του μετασχηματισμού του προηγούμενου παραδείγματος T 1.1934 0.1254 8.7030 = 0.0836 0.7956 15.4572 0 0 1 Πίνακας Μετασχηματισμού Αρχική εικόνα Μετασχηματισμένη εικόνα Κ. Δελήμπασης
Απλός αλγόριθμος εφαρμογής συσχετισμένου μετασχηματισμού: μη ενδεικνυόμενος Εστω ότι θέλουμε να μετασχηματίσουμε γεωμετρικά δοθείσα εικόνα I 1, βάσει συσχετισμένου μετασχηματισμού με πίνακα Α. Βήμα 1ο: Προσδιορίζουμε τη προβολή (απεικόνιση) του κέντρου του κάθε pixel (x,y) τηςαρχικής εικόνας I 1 στη νέα εικόνα I 2 : (x 1,y 1,1) T =A (x,y,1) T. Βήμα 2ο:Βρίσκουμε το pixelτης νέας εικόνας I 2 του οποίου το κέντρο βρίσκεται πιο κοντά στο σημείο της προβολής(στρογγυλοποίηση συντεταγμένων) Βήμα 3ο:Θέτουμε τη φωτεινότητα του ζητούμενου pixelτης τελικής εικόνας ίση με τη φωτεινότητα του pixel, από το βήμα 2, της αρχικής εικόνας: I 2 (round(x 1 ),round(y 1 )) =I 1 (x,y). Κ. Δελήμπασης
Παράδειγμα ψευδοκώδικα του προηγούμενου αλγόριθμου για περιστροφή εικόνας κατά γωνία θ γύρω από το κέντρο μάζας της CM. Α=T(-CM)R(θ)T(CM) for i=1:256 for j=1:256 [i1,j1] T =A*[i,j] T if i1>256 i1=256; if i1<=1 i1=1; if j1>256 j1=256; if j1<=1 j1=1; IM(round(i1),round(j1))=I(i,j); end; end; Κ. Δελήμπασης
Παράδειγμα περιστροφής εικόνας με χρήση του προηγούμενου αλγόριθμου Παρατηρούμε το artifactτων μηδενικών Pixel(τα οποία δεν έχουν πάρει τιμές). Η χρήση της παρεμβολής βάσει του κοντινότερου γείτονα είναι πολύ απλή στην υλοποίηση αλλά έχει το μειονέκτημα ότι θολώνει την περιεστραμένη εικόνα. Εναλλακτικά μπορεί να χρησιμοποιηθεί η διγραμμική παρεμβολή. Κ. Δελήμπασης 11
Γενικός αλγόριθμος εφαρμογής συσχετισμένου μετασχηματισμού Βήμα 1ο: Προσδιορίζουμε τη προβολή (απεικόνιση) του κέντρου του κάθε pixel (x,y) τηςνέας εικόνας Ι2 στην αρχική εικόνα I 1 : (x 1,y 1,1) T =A -1 (x,y,1) T. Ύπολογίζουμε την τιμή του (x,y)της νέας εικόνας I 2 με 2 τρόπους: Βήμα 2α:Παρεμβολή κοντινότερου γείτονα: Βρίσκουμε το pixelτης αρχικής εικόνας του οποίου το κέντρο βρίσκεται πιο κοντά στο σημείο της προβολής με στρογγυλοποίηση: I 2 (x,y)= I 1 (round(x 1 ),round(y 1 )) Βήμα 2β:Διγραμμική Παρεμβολή: Θέτουμε την τιμή του (x 1,y 1 ) ζητούμενου pixelτης τελικής εικόνας I 2, ίση με την τιμή της αρχικής εικόνας I 1 στη θέση (x,y). Επειδή τα (x 1,y 1 )είναι εν γένει πραγματικοί αριθμοί, εφαρμόζουμε διγραμμική παρεμβολή: ( ) ( 1 1 ) ( ) ([ 1] [ 1] ) ( ) 1( [ 1] [ 1] ) ( ) (, ) (, ) [ ],[ ] ( )( ) [ ] [ ] + abi [ y ] + 1, [ x ] + 1 I y x = I y x = I y + a y + b = 2 1 1 1 1 1 1 1 a 1 b I y, x + a 1 b I y, x + 1 + 1 a bi y + 1, x 1 1 1 Κ. Δελήμπασης
Αλγόριθμος περιστροφής εικόνας για διόρθωση artifact, βάσει του κοντινότερου γείτονα Α=T(-CM)R(θ)T(CM) for i=1:256 end; for j=1:256 end; [i1,j1] T =(A -1 )*[i,j] T if i1>256 i1=256; if i1<=1 i1=1; if j1>256 j1=256; if j1<=1 j1=1; IM2(i,j)= IM(round(i1),round(j1)); // Υπολογισμός του πίνακα περιστροφής Α // Για κάθε pixelτης νέας εικόνας Ι2 // Υπολογισμός του pixel της Ι1 από το οποίο // προέρχεται με χρήση του αντίστροφου του Α // Ελεγχος αν το (i1,j1) είναι εντός // της αρχικής εικόνας // Μέθοδος του κοντινότερου γείτονα Κ. Δελήμπασης
Παράδειγμα περιστροφής εικόνας χωρίς artifactsμε χρήση του προηγούμενου αλγόριθμου Παρατηρούμε ότι το artifactτων μηδενικών Pixelέχει διορθωθεί. Η χρήση της παρεμβολής βάσει του κοντινότερου γείτονα είναι πολύ απλή στην υλοποίηση αλλά έχει το μειονέκτημα ότι θολώνει την περιεστραμένη εικόνα. Εναλλακτικά μπορεί να χρησιμοποιηθεί η διγραμμική παρεμβολή. Κ. Δελήμπασης
Παραμόρφωση εικόνας με χρήση 4 1 σημείων 4 1 4 2 2 3 3 Μετασχηματισμοί όπως διγραμμικός και προβολικός απαιτούν τουλάχιστον 4 ζεύγη ομόλογων σημείων Κ. Δελήμπασης
Γενική μορφή μετασχηματισμού Διγραμμικός (δεν διατηρεί ευθείες) 1 1 1 2 (, ) (, ) x = F x y y = F x y x = a + a x+ a y+ a xy 1 0 1 2 3 y = b + b x+ b y+ b xy 1 0 1 2 3 Προβολικός (διατηρεί ευθείες) x a + a x+ a y b + b x+ b y =, y = c x c y c x c y 0 1 2 0 1 2 1 1 1+ 1 + 2 1+ 1 + 2 Οι παράμετροι του μετασχηματισμού υπολογίζονται από τα 4 σημεία με τις μετατοπίσεις τους Κ. Δελήμπασης
Γεωμετρικοί μετασχηματισμοί ομογενών συντεταγμένων σε 3διαστάσεις (3D) Μετατώπιση, Αντίστροφος μετασχηματισμός ( ) T d 1 0 0 d x 0 1 0 d y = 0 0 1 d z 0 0 0 1 ( ) = ( ) 1 T d T d Κ. Δελήμπασης 17
Αλλαγή κλίμακας: S sx 0 0 0 0 s 0 0 y = 0 0 sz 0 0 0 0 1 Αντίστροφος μετασχηματισμός S ( sx, sy, sz) = S( sx, sy, sz ) 1 1 1 1 Κ. Δελήμπασης 18
Περιστροφή γύρω από τους 3 άξονες: Γωνίες Euler Πίνακες περιστροφής γύρω από τους άξονες Χ, Υ, Ζκατά γωνία θ. Ομογενείς συντεταγμένες. Αντίστροφος μετασχηματισμός R x (-θ x ) Προφανώς R x (θ x ) R x (-θ x )=I R x R R y z 1 0 0 0 0 cos( θ x) sin( θ ) 0 x = 0 sin( θx) cos( θ x) 0 0 0 0 1 ( θ y) ( θ y) cos 0 sin 0 0 1 0 0 = sin( θ y) 0 cos( θ y) 0 0 0 0 1 ( θz) ( θz) ( θ ) ( θ ) cos sin 0 0 sin z cos z 0 0 = 0 0 1 0 0 0 0 1 Κ. Δελήμπασης 19
Γενική μορφή affine 3D με ομογενείς συντεταγμένες Μετασχημ. σημείο xc a11 a12 a13 a14 x y c a21 a22 a23 a 24 y = z c a31 a32 a33 a 34 z 1 0 0 0 1 1 Πίνακας Affine Μετασχ. Για να μετασχηματίσουμε Ν σημεία: a11 a12 a13 a14 x1 x2... xn a a a a y y... y 21 22 23 24 1 2 N Συντεταγμ. σημείου a31 a32 a33 a 34 z1 z2... z N 0 0 0 1 1 1... 1 Κ. Δελήμπασης 20
Χωρική ταύτιση εικόνων: Καθορισμός του πίνακα μετασχηματισμού βάσει ομόλογων σημείων Εστω 2 εικόνες Ι1, Ι2 του ίδιου αντικειμένου, που έχουν συλλεχθεί υπό διαφορετική γεωμετρία. Εστω ένας αριθμός από ζεύγη ομόλογωνσημείωνμεταξύ δύο εικόνων: {p ia } στην Ι1 και {p ib }στην Ι2. Ζητείται ο πίνακας που μετασχηματίζει γεωμετρικά την Ι1 στην Ι2, ώστε τα μετασχηματισμένα σημεία {p ia }να συμπίπτουν με τα {p ib }. Λέμε τότε ότι οι δύο εικόνες ταυτίζονται χωρικά (spatial registration). Τα ζεύγη ομόλογων σημείων {p ia }στην Ι1 και {p ib }στην Ι2, i=1,,ν Ν>3, ορίζονται είτε από το χρήστη είτε από κάποια αυτόματη μέθοδο. Ομόλογαείναι δύο σημεία πάνω στα ίδια αντικείμενα στις δύο διαφορετικές εικόνες. Οι εικόνες δεν ταυτίζονται χωρικά, άρα οι συντεταγμένες δύο ομόλογων σημείων δεν θα είναι ίδιες (πχ η μύτη του ασθενή στην Ι1 δεν βρίσκεται στα pixel στα οποία βρίσκεται η μύτη του ίδιου ασθενή στην Ι2). Κ. Δελήμπασης
Image I1 Transformed I1 2 1 1 2 3 5 2 5 1 1 2 3 4 5 4 3 4 3 4 5 Παράδειγμα δύο εικόνων Ι1 και Ι2 του ιδίου αντικειμένου (MRI εγκεφάλου) με 5 ζεύγη ομολόγων σημείων που έχουν τοποθετηθεί σε κοινές ανατομικές δομές από τον χρήστη. Κ. Δελήμπασης
Για να καθορίσουμε τον μετασχηματισμό Affineχρειαζόμαστε τον πίνακα του μετασχηματισμού ο οποίος έχει 6 αγνώστους: a00, a01, a02, a10, a11, a12 Οι 3 άγνωστοι α 00, α 01, α 02 υπολογίζονται από τις Χ συντεταγμένες των ζευγών ομολόγων σημείων και οι 3 άγνωστοι α 10, α 11, α 12 υπολογίζονται από τις Υ συντεταγμένες. Αν Ν>3 (συνήθης περίπτωση) τότε τα 2 γραμμικά συστήματα είναι υπερκαθορισμένα. Κ. Δελήμπασης
Εστω οι πίνακες T (,, ), (,, ) p= a a a q= a a a b 00 01 02 10 11 12 T A A A B B B ( x, x,..., xn), b ( x, x,..., xn) = = 1 1 2 2 1 2 Πρέπει να επιλυθούν τα γραμμικά συστήματα T T A A x1 y1 1 A A x2 y2 1 A=......... A A xn y2 1 Ap= b Aq= b 1 2 Ο Α είναι διαστάσεων Nx3 ενώ τα p,qείναι διαστάσεων 3x1και τα b 1,b 2 είναι δαστάσεων Νx1. Μπορεί να χρησιμοποιηθεί ο τελεστής «\» του Matlab: p=a\b1 και q=a\b2. Η παραπάνω λύση ισοδυναμεί με τη μέθοδο ελαχίστων τετραγώνων: T ( ) T ( ) A A p = T A b T 1 A A q= A b 2 Κ. Δελήμπασης
Ελαστικοί γεωμετρικοί μετασχηματισμοί Πολλά είδη μετασχηματισμών δε προσεγγίζονται από ολικούς (global) μετασχηματισμούς, όπως affine, bilinear, projective κλπ Ελαστική παραμόρφωση λόγω Αναπνοής, κίνησης καρδιάς, μεταβολή σχήματος στομάχου, ουροδόχος κύστη κλπ Ο πιο γνωστός ελαστικός γεωμετρικός μετασχηματισμός είναι το μοντέλο TPS (Thin Plate Splines)(Bookstein 1989). Κ. Δελήμπασης 25
Το μοντέλο TPS (Thin Plate Splines) Εστω ότι έχουμε επιλέξει 2 σύνολα ομόλογων σημείων {x i,y i }, {x i,y i } Κατασκευάζουμε τους πίνακες P, Y Ορίζουμε την συνάρτηση U(r)=r 2 logr 2 : R + R + και κατασκευάζουμε τον πίνακα Κ, όπου r ij η απόσταση των σημείων i, j. Κ. Δελήμπασης 26
Κατασκευάζουμε τοn πίνακα L Κατασκευάζουμε τον πίνακα Υ Υπολογίζουμε για κάθε σημείο (x,y)τις νέες του συντεταγμένες βάσει της ακόλουθης διανυσματικής συνάρτησης: Κ. Δελήμπασης 27
Παράδειγμα: ταύτιση εικόνων με ελαστικό μετασχηματιισμό (α) (β) Εστω δύο εικόνες του ίδιου αντικειμένου που έχει παραμορφωθεί ελαστικά. Ορίζουμε ζεύγη ομόλογων σημείων στις εικόνες Άναζητούμε τον μετασχηματισμό που παραμορφώνει τη (α) ώστε να ταυτιστεί με την (β) Κ. Δελήμπασης 28
Η εφαρμογή του ελαστικού μετασχηματσμού σε συνθετική εικόνα Οι ακμές της Ι2 μετά την εφαρμογή του ελαστικού μετασχηματσμού προβεβλημένες επί της Ι1 Κ. Δελήμπασης 29
RANSAC A more robust approach for parameter estimation of geometric transformation Immune to outliers Can be applied to many geometric models Easy to code Computationally efficient Κ. Δελήμπασης 30
Linear regression vsrobust approaches 12 10 12 10 Score = 7 8 8 Mileage 6 Mileage 6 4 4 2 2 31 0 0 1 2 3 4 5 6 Time http://www.cs.cornell.edu/courses/cs1114, Prof. Noah Snavely 0 0 1 2 3 4 5 6 Time
Testing goodness How can we tell if a point agrees with a line? Compute the distance the point and the line, and threshold 12 10 8 Mileage 6 4 2 32 0 0 1 2 3 4 5 6 Time http://www.cs.cornell.edu/courses/cs1114, Prof. Noah Snavely
Testing goodness If the distance is small, we call this point an inlierto the line If the distance is large, it s an outlierto the line For an inlier point and a good line, this distance will be close to (but not exactly) zero For an outlier point or bad line, this distance will probably be large Objective function: find the line with the most inliers (or the fewest outliers) 33 http://www.cs.cornell.edu/courses/cs1114, Prof. Noah Snavely
Optimizing for inlier count How do we find the best possible line? 12 10 Score = 7 8 Mileage 6 4 2 34 0 0 1 2 3 4 5 6 Time http://www.cs.cornell.edu/courses/cs1114, Prof. Noah Snavely
RANSAC for estimating homography RANSAC loop: 1. Select four feature pairs (at random) 2. Compute homography H (exact) 3. Compute inlierswhere SSD(p i, H p i) < ε 4. Keep largest set of inliers 5. Re-compute least-squares H estimate on all of the inliers http://www.cs.cornell.edu/courses/cs1114, Prof. Noah Snavely
RANSAC RANSAC loop: 1. Randomly select a seed groupof matches 2. Compute transformation from seed group 3. Find inliers to this transformation 4. If the number of inliers is sufficiently large, re-compute least-squares estimate of transformation on all of the inliers Keep the transformation with the largest number of inliers
RANSAC example: Translation Putative matches 15-463: Computational Photography Alexei Efros, CMU, Fall 2005 Source: A. Efros
RANSAC example: Translation Select one match, count inliers 15-463: Computational Photography Alexei Efros, CMU, Fall 2005 Source: A. Efros
RANSAC example: Translation Select one match, count inliers 15-463: Computational Photography Alexei Efros, CMU, Fall 2005 Source: A. Efros
RANSAC example: Translation Select translation with the most inliers Source: A. Efros
How Many Samples? On average N I m number of point number of inliers size of the sample P(good) = mean time before the success E(k) = 1 / P(good)
How Many Samples? With confidence p
How Many Samples? N I m number of point number of inliers size of the sample With confidence p P(good) = P(bad) = 1 P(good) P(bad ktimes) = (1 P(good)) k
How Many Samples? With confidence p P(bad ktimes) = (1 P(good)) k 1 -p klog (1 P(good)) log(1 p) k log(1 p) / log (1 P(good))
How Many Samples I/ N[%] Size of the sample m