Î ÎÎΥΤÎΧÎÎÎΠΣΧÎÎÎ Î ÎÎÎÎ ÎΣΤÎÎÎÎÎ¥ Î ÎΤΡΩΠ- Nemertes
Î ÎÎΥΤÎΧÎÎÎΠΣΧÎÎÎ Î ÎÎÎÎ ÎΣΤÎÎÎÎÎ¥ Î ÎΤΡΩΠ- Nemertes
Î ÎÎΥΤÎΧÎÎÎΠΣΧÎÎÎ Î ÎÎÎÎ ÎΣΤÎÎÎÎÎ¥ Î ÎΤΡΩΠ- Nemertes
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΠΑΤΡΩΝ<br />
ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ<br />
ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ<br />
ΤΟΜΕΑΣ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΑΣ<br />
ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΜΕ ΘΕΜΑ:<br />
‘ΤΡΙΣΔΙΑΣΤΑΤΗ ΑΝΑΚΑΤΑΣΚΕΥΗ ΧΩΡΟΥ<br />
ΑΠΟ ΕΝΑ ΜΙΚΡΟ ΑΡΙΘΜΟ ΦΩΤΟΓΡΑΦΙΩΝ’<br />
Των προπτυχιακών φοιτητών του τμήματος:<br />
ΦΛΩΡΟΥ ΡΑΦΑΕΛΛΑΣ & ΧΑΤΟΥΠΗ ΣΤΑΥΡΟΥ<br />
Α.Μ.:5798<br />
Α.Μ.:5804<br />
ΕΠΙΒΛΕΠΩΝ: Α. ΚΑΘΗΓΗΤΗΣ Ε. ΔΕΡΜΑΤΑΣ<br />
ΑΡΙΘΜΟΣ ΔΙΠΛΩΜΑΤΙΚΗΣ:<br />
ΠΑΤΡΑ, ΟΚΤΩΒΡΗΣ 2011
`<br />
ΠΙΣΤΟΠΟΙΗΣΗ<br />
Πιστοποιείται ότι η διπλωματική εργασία με<br />
θέμα:<br />
‘ΤΡΙΣΔΙΑΣΤΑΤΗ ΑΝΑΚΑΤΑΣΚΕΥΗ ΧΩΡΟΥ<br />
ΑΠΟ ΕΝΑ ΜΙΚΡΟ ΑΡΙΘΜΟ ΦΩΤΟΓΡΑΦΙΩΝ’<br />
Των φοιτητών του Τμήματος Ηλεκτρολόγων Μηχανικών και<br />
Τεχνολογίας Υπολογιστών Πάτρας:<br />
Φλώρου Ραφαέλλας (Α.Μ. 5798) & Χατούπη Σταύρου (Α.Μ. 5804)<br />
Παρουσιάστηκε δημόσια και εξετάσθηκε στο Τμήμα Ηλεκτρολόγων Μηχανικών<br />
και Τεχνολογίας Υπολογιστών στις<br />
14/10/2011<br />
`<br />
Ο Επιβλέπων<br />
Ο Διευθυντής του Τομέα
Πρόλογος<br />
Πρόλογος<br />
Η παρούσα διπλωματική εργασία αναπτύχθηκε στα πλαίσια των προπτυχιακών<br />
σπουδών του τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών<br />
του Πανεπιστημίου Πατρών. Θέμα της είναι η τρισδιάστατη ανακατασκευή του<br />
χώρου από τουλάχιστον δύο φωτογραφίες του και αποτελεί μέρος του τομέα της<br />
Υπολογιστικής Όρασης. Συγκεκριμένα αναλύεται διεξοδικά η περίπτωση της<br />
στερεοσκοπικής όρασης, στην οποία η κάμερα μεταξύ δύο διαδοχικών λήψεων της<br />
ίδιας σκηνής, έχει μηδενική σχετική περιστροφή ως προς την αρχική της θέση και<br />
μικρή μετατόπιση, περίπου 5 εκατοστά. Με τον τρόπο αυτό, προσπαθούμε να<br />
προσομοιώσουμε τη λειτουργία της ανθρώπινης όρασης καθώς πολλές εφαρμογές της<br />
Τεχνητής Νοημοσύνης το κρίνουν απαραίτητο.<br />
Είναι λογικό ότι ο κάθε άνθρωπος θεωρεί τη στερεοσκοπική όραση<br />
αυτονόητη γιατί κινείται στον τρισδιάστατο κόσμο. Όταν αυτός όμως καταγράφεται<br />
από μία κάμερα, αυτόματα περνάει στο δισδιάστατο επίπεδο. Και πάλι είναι δυνατόν<br />
να εξάγουμε πληροφορίες βάθους από μία μόνο εικόνα, όμως γίνεται καθαρά<br />
εμπειρικά και βασίζεται στη σύγκριση διάφορων υφών, σχημάτων και μεγεθών. Ο<br />
ηλεκτρονικός υπολογιστής αναγνωρίζει την εικόνα σαν ένα οποιοδήποτε αρχείο. Δεν<br />
μπορεί να εξάγει κανένα συμπέρασμα για το τι απεικονίζει στον πραγματικό κόσμο.<br />
Χρειάζεται το συνδυασμό τουλάχιστον δύο εικόνων της ίδιας σκηνής από<br />
διαφορετικές θέσεις για να μπορέσει να αναγνωρίσει για παράδειγμα το βάθος της<br />
σκηνής που απεικονίζεται.<br />
Αυτή τη διαδικασία περιγράφει αναλυτικά η εργασία. Στο πρώτο κεφάλαιο<br />
εισάγουμε την έννοια και τη χρησιμότητα της στερεοσκοπικής όρασης. Στο δεύτερο<br />
κεφάλαιο παρουσιάζονται οι βασικές αρχές της προβολικής γεωμετρίας. Στο τρίτο<br />
κεφάλαιο αναφερόμαστε στη μοντελοποίηση της κάμερας και τις παραμέτρους που<br />
τη χαρακτηρίζουν. Στο τέταρτο κεφάλαιο αναλύεται η διαδικασία της βαθμονόμησης<br />
της κάμερας. Στο πέμπτο κεφάλαιο εξηγείται η διαδικασία αντιστοίχησης των<br />
σημείων ενδιαφέροντος στις δύο εικόνες. Στο έκτο κεφάλαιο αναλύονται οι βασικές<br />
αρχές της επιπολικής γεωμετρίας. Στο έβδομο κεφάλαιο παρουσιάζεται η<br />
πειραματική διαδικασία για την εύρεση του βάθους της σκηνής. Στο όγδοο κεφάλαιο<br />
παρουσιάζεται συνοπτικά η τρισδιάστατη ανακατασκευή του χώρου και<br />
παρουσιάζονται τα αντίστοιχα πειραματικά αποτελέσματα. Στο ένατο κεφάλαιο<br />
διατυπώνουμε τα συμπεράσματα της όλης διαδικασίας.<br />
Τόσο το θεωρητικό όσο και το πειραματικό μέρος αυτής της εργασίας<br />
καλύπτουν σε ένα μεγάλο ποσοστό τα βασικά στάδια ανακατασκευής του<br />
τρισδιάστατου χώρου. Τα αποτελέσματα της πειραματικής διαδικασίας αποδεικνύουν<br />
ότι οι υπάρχουσες μέθοδοι λειτουργούν ικανοποιητικά αλλά υπάρχουν πολλά<br />
περιθώρια βελτίωσης στο θέμα της Υπολογιστικής Όρασης.<br />
Στο σημείο αυτό να ευχαριστήσουμε τον επιβλέποντα καθηγητή μας κ.<br />
Δερματά για τη συνεργασία του και την κατανόησή του.<br />
i
Αbstract<br />
Abstract<br />
The current thesis has been written as part of the undergraduate studies for the<br />
department of Electrical and Computer Engineering of Patras University. Its objective<br />
is the three-dimensional (3D) reconstruction from two, at least, photographs, which is<br />
part of computer vision. More specifically, this thesis analyzes in detail the case of<br />
stereo vision when the camera, among two successive shots of the same image, has<br />
zero relative rotation compared to its initial position and an average translation of<br />
about 5 cm. In this way, it attempts to simulate human vision since this is essential for<br />
many Artificial Intelligence applications.<br />
Humans take stereo vision for granted since they live in a three-dimensional<br />
world. However, this world becomes two-dimensional when recorded by a camera.<br />
We can still get information about the image depth but this is empirically done based<br />
on comparing various heights, shapes and sizes. Images are identified by the<br />
computer as any other file. Computers cannot draw conclusions about what is<br />
depicted in the real world. They need to combine at least two images of the same<br />
scene and of different positions to identify the image’s depth.<br />
This process is described in the current thesis. The first chapter describes<br />
stereo vision and why it is so useful. The second chapter provides the basic principles<br />
of projective geometry, the mathematical background for passing from the twodimensional<br />
level to the three-dimensional. The third chapter refers to camera<br />
modeling and its parameters ( instrisic and extrinsic). Chapter four analyzes the<br />
camera calibration process. Chapter five explains the matching process of points of<br />
interest in both pictures. The sixth chapter provides the basic principles of epipolar<br />
geometry. The seventh chapter shows the experimental procedure that we followed in<br />
order to estimate the depth of the scene. Chapter eight shows how the 3D<br />
reconstruction is finally done. Chapter nine talks about our conclusions and how the<br />
results could improve.<br />
Both theoretical and experimental parts of this project cover the key points of<br />
3d reconstruction. The results of the experiments show that the existing methods are<br />
satisfying but could improve more.<br />
We want to thank our supervisor professor Mr. Dermatas for his collaboration<br />
and his understanding.<br />
ii
Στη μνήμη της γιαγιάς Ασπασίας<br />
iii
Περιεχόμενα<br />
Κεφάλαιο 1 : Εισαγωγή<br />
1.1 Πρόλογος ........................................................................................................ 1<br />
1.2 Παθητικές μέθοδοι ......................................................................................... 3<br />
1.2.1 Στερεοσκοπική Όραση ………………………………………………… 3<br />
1.2.2 Δομή από κίνηση ………………………………………………………. 4<br />
Κεφάλαιο 2: Προβολική Γεωμετρία ……….……...……………………….......... 5<br />
2.1 Εισαγωγή ......................................................................................................... 5<br />
2.2 Ομογενείς συντεταγμένες ............................................................................... 5<br />
2.3 Το προβολικό επίπεδο ..................................................................................... 6<br />
2.4 Ο προβολικός τρισδιάστατος χώρος ............................................................... 7<br />
2.5 Μετασχηματισμοί και διαστρωμάτωση της προβολικής γεωμετρίας ............. 8<br />
Κεφάλαιο 3: Μοντελοποίηση της κάμερας ………………………….…………. 12<br />
3.1 Το μοντέλο μικρής οπής για την κάμερα ........................................................ 12<br />
3.2 Οι εσωγενείς και εξωγενείς παράμετροι της κάμερας .................................... 15<br />
3.2.1 Οι εσωγενείς παράμετροι ..................................................................... 16<br />
3.2.1.1 Ορισμός εσωγενών παραμέτρων ................................................. 16<br />
3.2.1.2 Μη γραμμικές παραμορφώσεις ................................................... 19<br />
3.2.1.3 Αντιμετώπιση μη γραμμικών παραμορφώσεων .......................... 20<br />
3.2.2 Εξωγενείς παράμετροι .......................................................................... 22<br />
3.3 Αντιστοιχία του μαθηματικού υπόβαθρου με τα αποτελέσματα του Matlab .. 23<br />
3.3.1 Εσωγενείς παράμετροι ......................................................................... 23<br />
3.3.2 Εξωγενείς παράμετροι............................................................................ 25<br />
Κεφάλαιο 4: Βαθμονόμηση κάμερας- Εύρεση παραμέτρων ............................... 26<br />
4.1 Εισαγωγή ......................................................................................................... 26<br />
4.2 Μέθοδοι εύρεσης των παραμέτρων ................................................................ 26<br />
4.2.1 Μέθοδος Hall ………………………………………………………... 27<br />
4.2.2 Μέθοδος Zhang……………………………………………………… 30<br />
4.3 Πειραματική διαδικασία …………………………………………………….. 33<br />
4.3.1 Τεχνικά χαρακτηριστικά φωτογραφικής μηχανής …………………... 33<br />
4.3.2 Εφαρμογή μεθόδου Zhang και αποτελέσματα ……………….……… 33<br />
4.3.3 Strereo calibration ………………………………………...………..... 40<br />
4.3.4 Πώς οι παραμορφώσεις του φακού επηρεάζουν τις εσωγενείς παραμέτρους…………………………………………………………………..<br />
43<br />
Κεφάλαιο 5: Εντοπισμός γωνιών και αντιστοίχηση σημείων ενδιαφέροντος στις<br />
εικόνες ...................................................................................................................... 47<br />
5.1 Εισαγωγή ……………………………………………………………………. 47<br />
5.2 Κριτήρια επιλογής αλγορίθμου εντοπισμού γωνιών ………………………... 48<br />
5.3 Harris Corner Detector ……………………………………………………… 49<br />
5.4 Εφαρμογή του Harris corner detector ……………………………………….. 51<br />
5.5 Αντιστοίχιση των γωνιών στις φωτογραφίες ………………………………... 53<br />
Κεφάλαιο 6: Επιπολική Γεωμετρία ……………….…………………………….. 56<br />
6.1 Εισαγωγή ……………………………………………………………………. 56<br />
iv
6.2 Επιπολική Γεωμετρία ……………………………………………………….. 56<br />
6.2.1 Επίπολο ή επιπολικό σημείο, επιπολική γραμμή, επιπολικό επίπεδο ... 57<br />
6.2.2 Επιπολικός περιορισμός και τριγωνισμός (triangulation) ……………. 58<br />
6.3 Essential πίνακας και θεμελιώδης μήτρα …………………………………… 58<br />
6.4 Απλοποιημένες περιπτώσεις ………………………………………………... 59<br />
Κεφάλαιο 7: Υπολογισμός βάθους από στερεοσκοπικό ζεύγος ………………... 61<br />
7.1 Εισαγωγή ……………………………………………………………………. 61<br />
7.2 Μέθοδοι απόρριψης λανθασμένων αντιστοιχίσεων ………………………… 62<br />
7.2.1 RANSAC μέθοδοι …………………………………………………… 62<br />
7.3 Πλήρης αλγόριθμος υπολογισμού βάθους ………………………………….. 63<br />
7.4 Πειραματική διαδικασία και αποτελέσματα ………………………………… 65<br />
Κεφάλαιο 8: Τρισδιάστατη ανακατασκευή …………………………………….. 80<br />
8.1 Εισαγωγή …………………………………………………………………… 80<br />
8.2 Διόρθωση εικόνων …………………………………………………………. 80<br />
8.3 Disparity Map (Χάρτης βάθους) …………………………………………… 81<br />
8.4 Τρισδιάστατη ανακατασκευή ( 3D reconstruction) ………………………… 81<br />
8.5 Πειραματική διαδικασία ……………………………………………………. 82<br />
8.5.1 Διόρθωση εικόνων ………………………………………..…………. 82<br />
8.5.2 Disparity Maps ………………………………………………………. 85<br />
8.5.3 Τρισδιάστατη ανακατασκευή ……………………………………….. 87<br />
8.6 Εφαρμογή του αλγορίθμου για σκηνές μεγαλύτερου βάθους .……………… 90<br />
Κεφάλαιο 9: Συμπεράσματα ……………………………………………………... 96<br />
Βιβλιογραφία ……………………………………………………………………… 98<br />
Παράρτημα- Υλοποίηση Matlab ……..………………………………………… 100<br />
v
Κεφάλαιο 1: Εισαγωγή<br />
Κεφάλαιο 1: Εισαγωγή<br />
1.1 Πρόλογος<br />
Το αντικείμενο της παρούσας διπλωματικής εργασίας είναι η τρισδιάστατη ανακατασκευή<br />
ενός αντικειμένου ή ενός χώρου, χρησιμοποιώντας δύο φωτογραφίες του ( stereo vision) και<br />
αποτελεί εξειδίκευση του πεδίου της Υπολογιστικής Όρασης ( Computer vision). To computer<br />
vision είναι ο κλάδος της τεχνητής νοημοσύνης που προσπαθεί να προσομοιώσει την ανθρώπινη<br />
όραση. Στόχος είναι να παράσχει στον υπολογιστή όλες τις λειτουργίες που χαρακτηρίζουν την<br />
ανθρώπινη όραση. Ο συγκεκριμένος κλάδος έχει μεγάλη άνθιση τα τελευταία χρόνια λόγω των<br />
πολλών εφαρμογών, όπου η γνώση της τρισδιάστατης δομής ενός αντικειμένου ή ενός χώρου<br />
κρίνεται απαραίτητη.<br />
Μερικές μόνο από τις εφαρμογές ( σχήμα 1.1) που προϋποθέτουν γνώση του computer<br />
vision είναι οι ακόλουθες :<br />
Έλεγχος διαδικασιών (πχ. βιομηχανικά ρομπότ)<br />
Πλοήγηση (πχ. κινούμενα ρομπότ, αυτόνομα οχήματα)<br />
Μοντελοποίηση αντικειμένων ή χώρων τόσο σε ιατρικές όσο και μηχανικές εφαρμογές (πχ.<br />
3D επεικόνιση εμβρύου, μοντελοποίηση τοπογραφικών)<br />
Αυτόματος έλεγχος (πχ. σε βιομηχανικές εφαρμογές)<br />
Ανίχνευση συμβάντων (πχ. καταμέτρηση αυτοκινήτων ή οπτική παρακολούθηση γεγονότων)<br />
Σχήμα 1.1: Παραδείγματα εφαρμογών του computer vision<br />
(a-b) Επιθεώρηση μηχανών (c) Λιανική (d) Ιατρική επεικόνιση (e) Αυτοκινητιστική ασφάλεια (f) Επίβλεψη και<br />
ασφάλεια αυτοκινητόδρομων<br />
1
Κεφάλαιο 1: Εισαγωγή<br />
Η ραγδαία εξέλιξη των ηλεκτρονικών υπολογιστών συνέβαλε στην επίτευξη του στόχου για<br />
ακριβή και ποιοτική αναπαράσταση αντικειμένων. Είναι δυνατό πλέον, μέσω κατάλληλων<br />
αλγορίθμων (σχήμα 1.2), να απεικονιστούν σύνθετες τρισδιάστατες σκηνές σε πραγματικό χρόνο,<br />
το οποίο κάποια χρόνια πριν ήταν ανέφικτο , καθώς επίσης και η επεξεργασία ψηφιακών εικόνων<br />
πολύ υψηλής ανάλυσης, που συνεπάγεται μεγάλο όγκο δεδομένων. Αυτή η εξέλιξη προκαλεί μια<br />
σημαντική αξίωση για πιο σύνθετα και ρεαλιστικά μοντέλα. Το πρόβλημα είναι ότι ακόμα κι αν τα<br />
εργαλεία που είναι διαθέσιμα γίνονται περισσότερο ισχυρά, η σύνθεση των ρεαλιστικών<br />
τρισδιάστατων μοντέλων είναι δύσκολη και χρονοβόρα, με αποτέλεσμα να είναι και δαπανηρή.<br />
Σχήμα 1.2: Μερικά παραδείγματα από αλγορίθμους του computer vision και πρακτικές εφαρμογές τους<br />
(a) Αλγόριθμοι Δομής από Κίνηση μπορούν να ανακατασκευάσουν ένα τρισδιάστατο μοντέλο μιας πολύπλοκης<br />
σκηνής, από μεγάλο πλήθος επικαλυπτόμενων φωτογραφιών. (b) Λεπτομερές 3D μοντέλο που έχει<br />
ανακατασκευαστεί με χρήση αλγορίθμων αντιστοίχισης από ένα πλήθος φωτογραφιών. (c) Αλγόριθμος<br />
εντοπισμού ανθρώπων που περνάνε μπροστά από κάποιο background. (d) Αλγόριθμος ανίχνευσης προσώπων<br />
και μαλλιών, συνδυασμένος με τα χρώματα και τις υφές των ρούχων, βρίσκει πόσα άτομα υπάρχουν στην εικόνα.<br />
Για όλα αυτά, έχει καταβληθεί μεγάλη ερευνητική προσπάθεια στον τομέα της<br />
τρισδιάστατης ανακατασκευής του χώρου. Διάφορες μέθοδοι έχουν αναπτυχθεί οι οποίες<br />
χωρίζονται σε ενεργές και παθητικές μεθόδους. Οι ενεργές, για παράδειγμα, περιλαμβάνουν τη<br />
χρήση συσκευών (πχ. laser πομπός υπερήχων, φωτεινές πηγές) οι οποίες αποστέλλουν μια δέσμη<br />
ενέργειας στο αντικείμενο- στόχο και με βάση την ποσότητα και την επεξεργασία της<br />
επιστρεφόμενης ενέργειας, υπολογίζουν σε ποια απόσταση βρίσκεται. Οι παθητικές μέθοδοι<br />
αντιθέτως, χρησιμοποιούν συσκευές καταγραφής (πχ. μια κάμερα). Εμείς θα ασχοληθούμε με την<br />
παθητική μέθοδο της 'δομής από κίνηση' ( structure from motion) και συγκεκριμένα με μια πιο<br />
εξειδικευμένη μέθοδο αυτής της κατηγορίας, τη στερεοσκοπική όραση.<br />
2
Κεφάλαιο 1: Εισαγωγή<br />
1.2 Παθητικές Μέθοδοι<br />
Αυτό που επιδιώκουμε μέσω των παθητικών μεθόδων είναι να πάρουμε μέσα από την<br />
εικόνα γεωμετρικές πληροφορίες, όπως είναι το βάθος. Έχοντας ως δεδομένες εικόνες του<br />
αντικειμένου, από διαφορετικές σκοπιές, μας παρέχεται αρκετή γνώση για την τρισδιάστατη<br />
αναπαράσταση του. Αν μας παρέχεται εκ των προτέρων κάποια πληροφορία για την σκηνή τότε<br />
είμαστε σε θέση να βγάλουμε βάθος ακόμα και από μία μόνο φωτογραφία (αυτό δεν θα μας<br />
απασχολήσει εδώ). Δεδομένα που μπορεί γενικά να μας αποκαλύπτουν στοιχεία σχετικά με το<br />
βάθος και την απόσταση των αντικείμενων που απεικονίζονται είναι η υφή, οι ακμές, η σκίαση, οι<br />
μεταβολές του φωτισμού κλπ.<br />
Ανάλογα με τα στοιχεία των εικόνων που αποφασίζουμε να χρησιμοποιήσουμε για την<br />
εξαγωγή της επιθυμητής πληροφορίας, οι κύριες παθητικές μέθοδοι εύρεσης απόστασης μπορούν<br />
να υπαχθούν στις εξής κατηγορίες:<br />
<br />
<br />
<br />
<br />
<br />
<br />
Στερεοσκοπική Όραση (Stereo Vision),<br />
Δομή από Κίνηση (Structure from Motion),<br />
Σχήμα από Σκίαση (Shape from Shading),<br />
Βάθος από Εστίαση (Range from Focus),<br />
Βάθος από Μη Εστίαση (Depth from Defocus),<br />
Σχήμα από Υφή (Shape from Texture).<br />
Στην παρούσα εργασία θα ασχοληθούμε κατά βάση με την στερεοσκοπική όραση, η οποία<br />
αποτελεί ουσιαστικά μια εξειδίκευση της δομής από κίνηση. Στη συνέχεια αναφερόμαστε στις δύο<br />
αυτές μεθόδους που είναι εξάλλου και οι πιο ισχυρές.<br />
1.2.1 Στερεοσκοπική όραση<br />
Ένα στερεοσκοπικό ζεύγος εικόνων προκύπτει από δυο κάμερες οι οποίες έχουν<br />
προκαθορισμένη σχετική θέση, και συγκεκριμένα, η δεύτερη κάμερα έχει μετακινηθεί σε σχέση με<br />
την πρώτη μόνο κατά μια πλευρική μετατόπιση. Η διάταξη αυτή των καμερών, προσομοιώνει<br />
ουσιαστικά την διάταξη στην οποία είναι τοποθετημένα τα μάτια στον άνθρωπο. Αυτή η τεχνική<br />
έχει βασιστεί στην ικανότητα του ανθρώπου να αντιλαμβάνεται τα τρισδιάστατα χαρακτηριστικά<br />
του περιβάλλοντος. Όπως προαναφέρθηκε, μερικές μόνο από τις πληροφορίες που χρησιμοποιεί ο<br />
ανθρώπινος εγκέφαλος για την εκτίμηση της απόστασης αντικειμένων είναι η υφή, οι ακμές, η<br />
προοπτική της σκηνής, η απόκρυψη αντικειμένων, οι μεταβολές φωτεινότητας, οι σκιές, αλλά και<br />
οι διαφορές που παρουσιάζονται στις δύο εικόνες του ανθρώπινου στερεοσκοπικού ζεύγους που<br />
προκύπτουν ξεχωριστά από το κάθε μάτι.<br />
Η χρήση του τελευταίου είναι καταλυτικής σημασίας στην Στερεοσκοπική Όραση.<br />
Αναγνωρίζοντας προβολές του ίδιου σημείου στις δύο εικόνες και παίρνοντας την ‘διαφορά’ που<br />
προκύπτει από την θέση στην πρώτη εικόνα και την αντίστοιχη θέση στην δεύτερη έχουμε ένα<br />
στοιχείο που αποδίδει το βάθος. Η διαφορά της θέσης των αναγνωρισμένων σημείων της σκηνής<br />
στις εικόνες, υπάρχει λόγω της διαφορετικής θέσης που έχουν οι κάμερες στον χώρο. Η<br />
στερεοσκοπική όραση είναι μία πολύ ισχυρή τεχνική λόγω κυρίως της απαίτησης να υπάρχει<br />
συγκεκριμένη διάταξη των δύο καμερών. Η μέθοδος αυτή υστερεί στο στάδιο της αντιστοίχισης<br />
των χαρακτηριστικών σημείων στις δύο εικόνες που είναι οι προβολές του ίδιου σημείου της<br />
σκηνής.<br />
3
Κεφάλαιο 1: Εισαγωγή<br />
1.2.2 Δομή από Κίνηση<br />
Όπως προαναφέρθηκε, η τεχνική της δομής από κίνηση είναι μία γενίκευση της<br />
Στερεοσκοπικής Όρασης. Εδώ χρησιμοποιούνται δυο τουλάχιστον κάμερες, ή μια κάμερα η οποία<br />
κινείται ελεύθερα στο χώρο και καταγράφει στοιχεία της σκηνής, οπότε προκύπτουν τυχαίες<br />
σχετικές θέσεις της κάμερας για κάθε εικόνα. Και πάλι, το στοιχείο που θα μας δώσει την λύση<br />
είναι η μεταβολή στις θέσεις στις οποίες προβάλλονται κάποια αναγνωρισμένα χαρακτηριστικά<br />
σημεία ενδιαφέροντος της σκηνής. Η Δομή από Κίνηση είναι μία τεχνική που έχει πολλά<br />
πλεονεκτήματα, σε σχέση με την στερεοσκοπική όραση, επειδή είναι πιο γενική περίπτωση και δε<br />
χρειάζεται συγκεκριμένη διάταξη στις κάμερες. Όμως αντιμετωπίζει και αυτή το ίδιο πρόβλημα στο<br />
στάδιο της αντιστοίχισης.<br />
4
Κεφάλαιο 2: Προβολική Γεωμετρία<br />
Κεφάλαιο 2: Προβολική Γεωμετρία<br />
2.1 Εισαγωγή<br />
Στο κεφάλαιο που ακολουθεί θα προσπαθήσουμε να παρουσιάσουμε, σε έναν ικανοποιητικό<br />
βαθμό, τα βασικότερα σημεία της προβολικής γεωμετρίας, πάνω στην οποία στηριζόμαστε για την<br />
πραγματοποίηση της συγκεκριμένης εργασίας. Ο άνθρωπος κινείται, δραστηριοποιείται και γενικά<br />
αποτελεί μέρος ενός τρισδιάστατου κόσμου, ο οποίος περιγράφεται με μεγάλη ακρίβεια από την<br />
Ευκλείδεια γεωμετρία. Σύμφωνα με αυτή τη γεωμετρία, δύο ευθείες που βρίσκονται στο ίδιο<br />
επίπεδο και δεν τέμνονται είναι παράλληλες, γωνίες που τέμνονται καθορίζουν τις μεταξύ τους<br />
γωνίες και οι πλευρές των αντικειμένων έχουν συγκεκριμένα μήκη. Επιπλέον, αυτές οι αρχές δεν<br />
αλλάζουν όταν εφαρμόζονται ευκλείδειοι μετασχηματισμοί (μετατόπιση και περιστροφή).<br />
Από την στιγμή λοιπόν που ο κόσμος μας περιγράφεται τόσο καλά από την ευκλείδεια<br />
γεωμετρία θα ήταν λογικό να πιστεύαμε ότι είναι και η μοναδική γεωμετρία. Παρόλα αυτά, στα<br />
πλαίσια της εργασίας μας και της επεξεργασίας εικόνων, η ευκλείδεια γεωμετρία δεν είναι<br />
αποτελεσματική, από τη στιγμή που γνωστά μήκη και γωνίες δεν διατηρούνται και παράλληλες<br />
γραμμές μπορεί να τέμνονται. Θεωρώντας όμως τον Ευκλείδειο χώρο σαν έναν υποχώρο του<br />
προβολικού και χρησιμοποιώντας τα θεωρήματα της προβολικής γεωμετρίας τότε προβλήματα<br />
όπως, η μη γραμμικότητα των εξισώσεων με χρήση των ευκλείδειων συντεταγμένων, αντιμετωπίζονται,<br />
αφού τα συστήματα που προκύπτουν είναι γραμμικά. Επίσης, θετικό στοιχείο είναι και το<br />
γεγονός ότι από μαθηματικής απόψεως η προβολική γεωμετρία είναι απλούστερη της ευκλείδειας,<br />
ούσα γενικότερη.<br />
Τέλος, σε θεωρητικό επίπεδο, η προβολική γεωμετρία υπερέχει της ευκλείδειας στην<br />
επεξεργασία εικόνων διότι επιτρέπει έναν μεγαλύτερο αριθμό μετασχηματισμών, πέραν της<br />
μετατόπισης και της περιστροφής, συμπεριλαμβανομένης της προοπτικής προβολής από τον<br />
τρισδιάστατο στον δισδιάστατο προβολικό χώρο. Καταλήγουμε, λοιπόν, στο συμπέρασμα πως<br />
μέσω της προβολικής γεωμετρίας θα καταφέρουμε να μοντελοποιήσουμε την λειτουργία της<br />
κάμερας και να αναπτύξουμε το οικοδόμημα της τρισδιάστατης όρασης.<br />
2.2 Ομογενείς συντεταγμένες<br />
Έστω ότι έχουμε ένα σημείο (x, y) στο ευκλείδειο επίπεδο. Για να περιγράψουμε το ίδιο σημείο<br />
στο προβολικό επίπεδο αρκεί να προσθέσουμε μία τρίτη συντεταγμένη, μη μηδενική, έστω (x,<br />
y, 1). Η τελευταία συντεταγμένη μπορεί να πάρει οποιαδήποτε τιμή εκτός του μηδενός, άρα έχουμε<br />
το σημείο (x, y, w) με w≠0. Παρατηρούμε λοιπόν, ότι μπορούμε πολύ εύκολα να περάσουμε από<br />
την αναπαράσταση του ενός επιπέδου στην άλλη.<br />
Ένας ορισμός της προβολικής γεωμετρίας είναι ότι δύο σημεία του n-διάστατου προβολικού<br />
χώρου , P n , που περιγράφονται από τα διανύσματα n+1 συντεταγμένων<br />
x = [x 1 , x 2, …, x n+1 ] και y = [y 1 , y 2 ,…, y n+1 ]<br />
ταυτίζονται αν και μόνο αν υπάρχει σταθερά k ≠ 0, ώστε να ισχύει<br />
x i = ky i , για κάθε 1≤ i ≤ n+1.<br />
Επομένως προκύπτει πως κάθε σημείο περιγράφεται από άπειρα διανύσματα συντεταγμένων, τα<br />
οποία διαφέρουν μεταξύ τους κατά μία πολλαπλασιαστική σταθερά k και ονομάζονται ομογενείς<br />
συντεταγμένες του σημείου. Έτσι για παράδειγμα, στον Ρ 2 έχουμε ότι το (x, y, 1) και το (kx, ky, k),<br />
με k ≠ 0, είναι ομογενείς συντεταγμένες του ίδιου σημείου. Από ένα σημείο του προβολικού<br />
5
Κεφάλαιο 2: Προβολική Γεωμετρία<br />
επιπέδου (kx, ky, k) μπορούμε να ανακτήσουμε τις ευκλείδειες συντεταγμένες του αν διαιρέσουμε<br />
με το k και αφαιρέσουμε την τελευταία συντεταγμένη 1, για να προκύψει (x, y). Από την παραπάνω<br />
πρόταση γίνεται αντιληπτό πως δεν υπάρχει σημείο του ευκλείδειου χώρου που να μπορεί να<br />
παρασταθεί στο προβολικό επίπεδο από τις συντεταγμένες (x, y, 0). Αν ωστόσο προσπαθήσουμε να<br />
διαιρέσουμε με την τελευταία συντεταγμένη προκύπτει το σημείο (x/0, y/0) που είναι το άπειρο.<br />
Όλα τα σημεία με μηδενική την τελευταία από τις ομογενείς συντεταγμένες λέγονται σημεία στο<br />
άπειρο. Φυσικά, όλα όσα είπαμε παραπάνω μπορούν να γενικευτούν για οποιαδήποτε n διάσταση.<br />
Τα σημεία στο άπειρο στον P 2 διαμορφώνουν μια γραμμή, την οποία ονομάζουμε γραμμή στο<br />
άπειρο. Αντίστοιχα στις τρεις διαστάσεις διαμορφώνουν ένα επίπεδο, το οποίο καλούμε επίπεδο στο<br />
άπειρο.<br />
Στα προβλήματα υπολογιστικής όρασης, ο προβολικός χώρος τριών διαστάσεων, Ρ 3 χρησιμοποιείται<br />
ως ο καταλληλότερος τρόπος αναπαράστασης του πραγματικού τρισδιάστατου κόσμου και<br />
αντίστοιχα οι εικόνες αντιπροσωπεύονται ιδανικά από το προβολικό επίπεδο, Ρ 2 , το οποίο θα<br />
αναλύσουμε στην επόμενη παράγραφο.<br />
2.3 Το προβολικό επίπεδο<br />
Ένα σημείο του προβολικού επιπέδου ή προβολικού χώρου δύο διαστάσεων περιγράφεται<br />
από ένα διάνυσμα συντεταγμένων [x 1 , x 2 , x 3 ] T , όπου τουλάχιστον μία από τις τρεις συντεταγμένες<br />
είναι διάφορη του μηδενός. Όπως είπαμε και στην προηγούμενη παράγραφο εάν x 3 ≠ 0, τότε το<br />
σημείο υπάρχει και στο ευκλείδειο επίπεδο και έχει συντεταγμένες (x 1 /x 3 , x 2 /x 3 ).<br />
Μία ευθεία μπορεί να περιγραφεί στο προβολικό επίπεδο με την εξής σχέση:<br />
Ax 1 + Bx 2 + Cx 3 = 0 ή αλλιώς u T p = p T u,<br />
όπου u = [A, B, C] και p = [x 1 , x 2 , x 3 ]. Παρατηρούμε πως στο προβολικό επίπεδο μία ευθεία όπως<br />
η u = [A, B, C] και ένα σημείο όπως το p = [x 1 , x 2 , x 3 ] δεν έχουν κάποια τυπική διαφορά, αφού και<br />
τα δύο περιγράφονται με ένα διάνυσμα τριών συντεταγμένων. Το φαινόμενο αυτό λέγεται ‘αρχή<br />
της δυικότητας’ ( principal of duality), είναι ένα από τα σημαντικότερα χαρακτηριστικά της<br />
προβολικής γεωμετρίας και ισχύει και για προβολικούς χώρους περισσοτέρων διαστάσεων.<br />
Τα σημεία στο άπειρο ή αλλιώς ιδεατά σημεία που παρουσιάστηκαν στην προηγούμενη<br />
παράγραφο, δεν έχουν κάποια ιδιαίτερη μεταχείριση στο προβολικό επίπεδο, αφού έχουν συντεταγμενες<br />
και μπορούν να χρησιμοποιηθούν σε υπολογισμούς όπως τα υπόλοιπα σημεία. Ο μετασχηματισμός<br />
συντεταγμένων στο προβολικό επίπεδο είναι ο πολλαπλασιασμός των ομογενών<br />
συντεταγμένων ενός σημείου , με έναν μη μοναδιαίο, αντιστρέψιμο, 3x3 πίνακα Τ, όπως φαίνεται<br />
και από την παρακάτω σχέση: . Για c ≠ 0 ο πίνακας cT περιγράφει τον ίδιο μετασχηματισμό<br />
με τον Τ. Επομένως ο Τ περιέχει 8 ανεξάρτητες μεταβλητές και για να οριστεί ένας<br />
μετασχηματισμός απαιτούνται 4 αντιστοιχίες σημείων (δεδομένου ότι είμαστε σε θέση να εξάγουμε<br />
2 περιορισμούς από κάθε ζεύγος σημείων , ).<br />
Κατά τον προβολικό μετασχηματισμό δεν διατηρούνται ούτε οι αποστάσεις, ούτε οι λόγοι<br />
των αποστάσεων. Παρόλα αυτά ένα σημαντικό στοιχείο που διατηρείται και μπορεί να<br />
χρησιμοποιηθεί σαν εργαλείο είναι ο λόγος των λόγων των αποστάσεων ή όπως κοινώς ονομάζεται<br />
το cross ratio. Για να αντιληφθούμε καλύτερα τον όρο ας υποθέσουμε πως έχουμε τέσσερα<br />
συνευθειακά σημεία και κανένα δεν συμπίπτει με τα σημεία και , τότε i<br />
= +λ . Ως cross ratio ορίζεται:<br />
(2.1)<br />
6
Κεφάλαιο 2: Προβολική Γεωμετρία<br />
όπου D ij είναι η ευκλείδεια απόσταση μεταξύ των σημείων i j . Με βάση την αρχή της<br />
δυικότητας το cross ratio μπορεί να οριστεί και για τέσσερις ευθείες τεμνόμενες στο ίδιο σημείο.<br />
Στην περίπτωση αυτή στον παραπάνω ορισμό χρησιμοποιούμε τους λόγους των ημιτόνων των<br />
γωνιών που σχηματίζονται μεταξύ τους.<br />
Στο προβολικό επίπεδο, όπως και στο ευκλείδειο, έχουμε κωνικές τομές. Η διαφορά είναι<br />
πως στο προβολικό επίπεδο όλες οι κωνικές τομές (κύκλοι, ελλ είψεις, παραβολές και υπερβολές)<br />
είναι ισοδύναμες, δηλαδή είναι δυνατόν μια οποιαδήποτε κωνική τομή να μετατραπεί σε μία άλλη.<br />
Ο γενικός όρος που χρησιμοποιείται για να τις περιγράψει όλες είναι ο conics. Ένα conic, στην<br />
προβολική γεωμετρία, ορίζεται ως ο γεωμετρικός τόπος των σημείων με σταθερό cross ratio ως<br />
προς 4 σταθερά σημεία, εκ των οποίων τα 3 δεν μπορούν να είναι συνευθειακά και δίνεται από την<br />
εξίσωση :<br />
, όπου C είναι ένας συμμετρικός πίνακας 3x3 και ορίζεται ως προς μία<br />
πολλαπλασιαστική σταθερά.<br />
Άλλα στοιχεία τα οποία διατηρούνται κατά τον προβολικό μετασχηματισμό (πέραν του cross ratio,<br />
του οποίου και είδαμε τη χρησιμότητα) είναι η συγγραμικότητα, η επαφή (tangency) και η σύμπτωση<br />
(incidence).<br />
2.4 Ο προβολικός τρισδιάστατος χώρος<br />
Στα πλαίσια της εργασίας μας, η μελέτη του τρισδιάστατου προβολικού χώρου είναι εξίσου<br />
σημαντική με αυτήν του προβολικού επιπέδου. Και πως θα μπορούσε να είναι διαφορετικά, από τη<br />
στιγμή που ο ευκλείδειος χώρος στον οποίο υπάρχουμε είναι υποχώρος του προβολικού χώρου<br />
τριών διαστάσεων.<br />
Οι έννοιες που χαρακτηρίζουν το προβολικό επίπεδο, όπως είναι λογικό, επεκτείνονται και<br />
στον τρισδιάστατο προβολικό χώρο. Έτσι ένα σημείο του προβολικού τρισδιάστατου χώρου<br />
περιγρά-φεται από ένα διάνυσμα συντεταγμένων [x 1 , x 2 , x 3 , x 4 ] T , όπου τουλάχιστον μία από τις<br />
τέσσερις συντεταγμένες είναι διάφορη του μηδενός, και αν αυτό το διάνυσμα πολλαπλασιαστεί με<br />
οποιαδή-ποτε σταθερά περιγράφει το ίδιο σημείο. Ομοίως με το προβολικό επίπεδο, ένα σημείο<br />
του ευκλείδειου χώρου [x 1 , x 2 , x 3 ] T μπορεί να παρασταθεί στον προβολικό τρισδιάστατο χώρο με<br />
τις ομογενείς συντεταγμένες ( x 1 , x 2 , x 3 , 1), ενώ αντίστροφα, ένα σημείο του προβολικού<br />
τρισδιάστατου χώρου (x 1 , x 2 , x 3 , x 4 ), με x 4 ≠ 0, μπορεί να παρασταθεί στον ευκλείδειο χώρο με το<br />
σημείο (x 1 /x 4 , x 2 /x 4 , x 3 /x 4 ). Η αρχή της δυικότητας βρίσκει εφαρμογή, στον προβολικό τρισδιάστατο<br />
χώρο, μέσω της εξίσωσης:<br />
όπου το επίπεδο με διάνυσμα συντεταγμένων είναι ισοδύναμο με το σημείο<br />
του προβολικού τρισδιάστατου χώρου x = [x 1 , x 2 , x 3 , x 4 ] T , όπως ακριβώς ισχύει στο προβολικό<br />
επίπεδο με τη γραμμή και το σημείο. Για οποιαδήποτε σταθερά k το διάνυσμα ku περιγράφει το<br />
ίδιο επίπεδο.<br />
Κατ’ αντιστοιχία των γραμμών στο άπειρο, στον προβολικό τρισδιάστατο χώρο, έχουμε τα<br />
επίπεδα στο άπειρο, τα οποία αποτελούνται από σημεία που έχουν μηδενική την 4 η συντεταγμένη<br />
και κατ’ επέκταση δεν αναπαρίστανται στον ευκλείδειο χώρο. Πάνω στο επίπεδο αυτό τέμνονται τα<br />
επίπεδα και οι ευθείες εκείνες οι οποίες θεωρούνται παράλληλες στον ευκλείδειο χώρο.<br />
Ο μετασχηματισμός συντεταγμένων του προβολικού τρισδιάστατου χώρου περιγράφεται<br />
από αντιστρέψιμους πίνακες 4x4, οι οποίοι είναι ορισμένοι ως προς μία πολλαπλασιαστική<br />
σταθερά. Κατά τους μετασχηματισμούς παραμένει αμετάβλητο το cross ratio επιπέδων, το οποίο<br />
στην περίπτωση 4 επιπέδων που τέμνονται στην ίδια ευθεία, ορίζεται ως το cross ratio των 4<br />
σημείων τομής τους με μία τυχαία ευθεία.<br />
Τέλος, στον προβολικό τρισδιάστατο χώρο οι γεωμετρικές μορφές της τρίτης τάξης<br />
ονομάζονται quadrics και περιγράφονται με συμμετρικούς πίνακες 4x4, οι οποίοι είναι ορισμένοι<br />
ως προς μια πολλαπλασιαστική σταθερά.<br />
7
Κεφάλαιο 2: Προβολική Γεωμετρία<br />
2.5 Μετασχηματισμοί και διαστρωμάτωση της προβολικής γεωμετρίας<br />
Όπως είπαμε και στην αρχή του κεφαλαίου θεωρούμε πως η Ευκλείδεια γεωμετρία είναι<br />
ένας υποχώρος της προβολικής γεωμετρίας. Για την ακρίβεια, ανάμεσά τους μεσολαβούν δύο<br />
ακόμα γεωμετρίες, η μετρική (similarity) και η affine. Άρα, μπορούμε να ορίσουμε τη<br />
διαστρωμάτωση ( stratification) της προβολικής γεωμετρίας, από τον απλούστερο προς τον πιο<br />
δομημένο χώρο ως εξής: προβολική ⊃ affine ⊃ μετρική ⊃ ευκλείδεια. Κάθε επίπεδο (stratum),<br />
όπως προείπαμε, είναι πιο δομημένο από το προηγούμενο και κατά συνέπεια μας παρέχει<br />
περισσότερες πληροφορίες. Κάθε χώρος δηλαδή, είναι μια γενικότερη περίπτωση των υποχώρων<br />
του.<br />
Στον ορισμό αυτής της διαστρωμάτωσης σημαντικό ρόλο παίζει η ομάδα μετασχηματισμών<br />
κάθε χώρου. Πιο συγκεκριμένα, με τον προβολικό χώρο σχετίζεται η ομάδα προβολικών<br />
μετασχηματισμών, με τον affine χώρο, η ομάδα affine μετασχηματισμών, με τον μετρικό χώρο η<br />
ομάδα μετασχηματισμών ομοιότητας και με τον ευκλείδειο χώρο η ομάδα ευκλείδειων<br />
μετασχηματισμών. Όπως είναι λογικό και οι ομάδες μετασχηματισμών ακολουθούν την ίδια<br />
διαστρωμάτωση.<br />
Για κάθε χώρο υπάρχουν κάποιες ιδιότητες οι οποίες παραμένουν αναλλοίωτες από την<br />
ομάδα μετασχηματισμών. Αυτές οι ιδιότητες ονομάζονται invariants, στη διεθνή βιβλιογραφία και<br />
είναι αυτές που χαρακτηρίζουν κάθε χώρο. Όσο περισσότερες είναι οι invariants που παραμένουν<br />
αναλλοίωτες από τον μετασχηματισμό, τόσο πιο δομημένος είναι ο χώρος, και άρα μας παρέχει<br />
περισσότερες πληροφορίες.<br />
Στη συνέχεια θα αναφερθούμε ξεχωριστά σε κάθε υποχώρο ή επίπεδο (stratum), όπως συνηθίζεται<br />
να λέγεται και συγκεκριμένα στο χώρο των τριών διαστάσεων, ο οποίος μας ενδιαφέρει<br />
στη συγκεκριμένη εργασία.<br />
Α) Προβολικό επίπεδο (stratum)<br />
Στον προβολικό χώρο έχουμε ήδη αναφερθεί αναλυτικά σε αυτό το κεφάλαιο. Είναι ο<br />
γενικότερος από όλους και κατά συνέπεια ο λιγότερο δομημένος. Ο προβολικός μετασχηματισμός<br />
είναι ένας αντιστρέψιμος 4x4 πίνακας, ο οποίος είναι ορισμένος ως προς μια πολλαπλασιαστική<br />
σταθερά. Έχει 15 βαθμούς ελευθερίας και όπως είπαμε οι μόνες ιδιότητες που παραμένουν<br />
αναλλοίωτες είναι το cross ratio, η συγγραμικότητα, η επαφή (tangency) και η σύμπτωση<br />
(incidence). Αντιθέτως το μήκος (length), η γωνία (angle), ο λόγος των μηκών (ratio of lengths) και<br />
η παραλληλία ευθειών και επιπέδων (parallelism) δεν διατηρούνται με αποτέλεσμα να μην έχουμε<br />
αρκετά δεδομένα για τη δομή του προβολικού χώρου.<br />
Β) Affine επίπεδο (stratum)<br />
Το επόμενο επίπεδο είναι το affine. Είναι περισσότερο δομημένο από το προβολικό και<br />
διατηρεί δύο παραπάνω ιδιότητες αναλλοίωτες σε σχέση με αυτό. Η μία ιδιότητα είναι η<br />
παραλληλία ευθειών και επιπέδων και η άλλη είναι ο λόγος των μηκών των ευθύγραμμων<br />
τμημάτων που βρίσκονται πάνω σε παράλληλες ευθείες. Ο affine μετασχηματισμός καταφέρνει να<br />
διατηρήσει την παραλληλία, αφού μετασχηματίζει όλα τα σημεία του επιπέδου στο άπειρο σε<br />
8
Κεφάλαιο 2: Προβολική Γεωμετρία<br />
σημεία του ίδιου επιπέδου. Έτσι η γενική μορφή του affine μετασχηματισμού δίνεται από τον<br />
πίνακα:<br />
Ο πίνακας αυτός έχει 12 βαθμούς ελευθερίας και είναι ορισμένος ως προς μια πολλαπλασιαστική<br />
σταθερά. Ο μετασχηματισμός αυτός επιφέρει μετατόπιση ( translation), περιστροφή ( rotation),<br />
κλιμάκωση (scaling) και στρέβλωση (shearing) των αξόνων. Οι invariants που δεν διατηρούνται<br />
είναι το μήκος, η γωνία, ο λόγος των μηκών, η θέση και ο προσανατολισμός.<br />
Γ) Μετρικό επίπεδο (stratum)<br />
Το μετρικό επίπεδο σχετίζεται με την ομάδα μετασχηματισμών ομοιότητας. Οι<br />
μετασχηματισμοί αυτοί επιφέρουν μετατόπιση, περιστροφή και κλιμάκωση. Μπορούν να<br />
εκφραστούν ως , όπου R πίνακας περιστροφής, t διάνυσμα μετατόπισης και s<br />
οποιοσδήποτε συντελεστής κλιμάκωσης (μεγέθυνσης/σμίκρυνσης ). Από την εξίσωση αυτή δεν<br />
επηρεάζονται οι γωνίες και οι λόγοι των μηκών αλλά αλλάζουν η θέση, ο προσανατολισμός και το<br />
μήκος. Ο μετασχηματισμός, χρησιμοποιώντας ομογενείς συντεταγμένες, δίνεται από τον πίνακα:<br />
Είναι και αυτός ορισμένος ως προς μια πολλαπλασιαστική σταθερά. Ο Τ Μ έχει 7 βαθμούς<br />
ελευθερίας. Το συγκεκριμένο επίπεδο είναι και το πιο σημαντικό στα πλαίσια αυτής της εργασίας<br />
λόγω της ‘αρχής της αβεβαιότητας’. Από τη στιγμή που δεν είμαστε σε θέση να γνωρίζουμε αν οι<br />
εικόνες που εξετάζουμε απεικονίζουν ένα μεγάλο αντικείμενο σε μεγάλη απόσταση ή ένα μικρό<br />
αντικείμενο σε μικρή απόσταση, το μετρικό επίπεδο είναι το υψηλότερο επίπεδο αναπαράστασης<br />
που μπορούμε να έχουμε.<br />
Δ) Ευκλείδειο επίπεδο (stratum)<br />
Το ευκλείδειο επίπεδο είναι το πιο δομημένο από όλα και κατ’ επέκταση αυτό που μας δίνει<br />
τις περισσότερες πληροφορίες. Ο ευκλείδειος μετασχηματισμός επιφέρει μία μετατόπιση και μία<br />
περιστροφή και μπορεί να παρασταθεί με την εξίσωση ,<br />
όπου R ο πίνακας περιστροφής<br />
και t διάνυσμα μετατόπισης. Ο μετασχηματισμός αυτός δεν επηρεάζει καμία invariant, παρά<br />
μόνο τη θέση και τον προσανατολισμό. Ο πίνακας για τους μετασχηματισμούς αυτούς είναι ο εξής:<br />
9
Κεφάλαιο 2: Προβολική Γεωμετρία<br />
και έχει 6 βαθμούς ελευθερίας (3 για τη μετατόπιση και 3 για την περιστροφή). Παρακάτω δίνεται<br />
ένας πίνακας πού δίνει συγκεντρωτικά τους μετασχηματισμούς που επιτρέπονται σε κάθε stratum<br />
και τις ιδιότητες που παραμένουν αναλλοίωτες κατά την πραγματοποίηση αυτών των μετασχηματισμών:<br />
Σχήμα 2.1: επιτρεπόμενοι μετασχηματισμοί και invariants για κάθε επίπεδο (stratum).<br />
Η φυσική σημασία των διαφορετικών επιπέδων αναπαράστασης μπορεί να γίνει κατανοητή από το<br />
σχήμα 2.2. Στο σχήμα αυτό όλες οι δομές που εμφανίζονται είναι ισοδύναμες με έναν κύβο, για το<br />
καθένα επίπεδο.<br />
10
Κεφάλαιο 2: Προβολική Γεωμετρία<br />
Σχήμα 2.2: Αναπαραστάσεις ενός κύβου στα διάφορα επίπεδα<br />
11
Κεφάλαιο 3: Μοντελοποίηση της κάμερας<br />
Κεφάλαιο 3: Μοντελοποίηση της κάμερας<br />
3.1 Το μοντέλο μικρής οπής για την κάμερα<br />
Μια φωτογραφική μηχανή (κάμερα) μπορεί να μοντελοποιηθεί με πολλούς τρόπους,<br />
ανάλογα με τις ιδιότητες τις οποίες θέλουμε να περιγράψουμε, το βαθμό ακρίβειας που επιθυμούμε,<br />
και την εφαρμογή για την οποία προορίζεται το μοντέλο. Στην περίπτωση της τρισδιάστατης<br />
επεικόνισης χώρου, αυτό που μας ενδιαφέρει είναι ο τρόπος με τον οποίο τα σημεία του χώρου<br />
απεικονίζονται στην εικόνα. Συνήθως για την τρισδιάστατη ανακατασκευή εικόνων, το μοντέλο<br />
κάμερας που χρησιμοποιείται είναι αυτό της μικρής οπής (pinhole camera model) και<br />
παρουσιάζεται στο παρακάτω σχήμα:<br />
Σχήμα 3.1: Pinhole model<br />
To μοντέλο μικρής οπής περιγράφει τη μαθηματική σχέση μεταξύ των συντεταγμένων ενός<br />
σημείου του χώρου και την προβολή του πάνω στο επίπεδο της εικόνας μιας ιδανικής κάμερας<br />
μικρής οπής, όπου το διάφραγμά της περιγράφεται σαν σημείο και δεν υπάρχει κανένας φακός για<br />
να εστιάσει στο φως. Το συγκεκριμένο μοντέλο, δεν περιλαμβάνει για παράδειγμα γεωμετρικές<br />
παραμορφώσεις ή θόλωση λόγω λανθασμένης εστίασης στα αντικείμενα που προκαλούνται από<br />
τους φακούς και τα πεπερασμένου μεγέθους ‘ανοίγματά’ τους. Επίσης, δε λαμβάνει υπόψη ότι οι<br />
περισσότερες πραγματικές φωτογραφικές μηχανές έχουν μόνο διακριτές συντεταγμένες. Αυτό<br />
σημαίνει ότι το μοντέλο μικρής οπής μπορεί να χρησιμοποιηθεί μόνο ως μία πρώτη προσέγγιση για<br />
την απεικόνιση μιας σκηνής 3D σε 2D. Η ισχύς του εξαρτάται από την ποιότητα της κάμερας και<br />
γενικά μειώνεται από το κέντρο της εικόνας προς τα άκρα καθώς αυξάνονται οι παραμορφώσεις<br />
που δημιουργούνται από τους φακούς.<br />
Το pinhole μοντέλο της φωτογραφικής μηχανής, πολλές φορές, μπορεί να προσπεράσει<br />
προβλήματα που θα προκύψουν εφόσον αυτά είναι μικρά και αυτό επιτυγχάνεται κυρίως αν<br />
χρησιμοποιείται μία κάμερα υψηλής ποιότητας. Αυτό σημαίνει ότι το μοντέλο αυτό συχνά μπορεί<br />
να χρησιμοποιηθεί για να περιγράψει με αρκετά καλή ακρίβεια την λειτουργία της κάμερας στην<br />
υπολογιστική όραση.<br />
Οι οπτικές ακτίνες που προέρχονται από ένα αντικείμενο του χώρου μπροστά στην κάμερα,<br />
διέρχονται από μια μικρή οπή που υπάρχει σε μια αδιαφανή οθόνη, και προσπίπτοντας στο επίπεδο<br />
της εικόνας, δημιουργούν ένα ανεστραμμένο είδωλο του αντικειμένου όπως στο ακόλουθο σχήμα:<br />
12
Κεφάλαιο 3: Μοντελοποίηση της κάμερας<br />
Σχήμα 3.2: Ανεστραμμένο είδωλο<br />
Για να πάρουμε την απεικόνιση m στο επίπεδο της εικόνας ενός συγκεκριμένου σημείου Μ,<br />
του τρισδιάστατου χώρου P 3 , παίρνουμε την τομή της οπτικής ακτίνας με το επίπεδο της εικόνας,<br />
το οποίο και ονομάζεται ‘επίπεδο ίριδας’ ( retinal plane) και συμβολίζεται στο σχήμα με R . Η<br />
οπτική ακτίνα είναι η φανταστική γραμμή η οποία διέρχεται από τα σημεία M και C (πράσινη<br />
γραμμή), όπου το C είναι το οπτικό κέντρο, ή αλλιώς εστία της κάμερας, και αντιστοιχεί στο σημείο<br />
το οποίο βρίσκεται η υποτιθέμενη «μικρή οπή», δια μέσου της οποίας διέρχονται οι οπτικές ακτίνες<br />
για να αποτυπωθούν στο επίπεδο της εικόνας. H απόσταση του C από το επίπεδο της εικόνας<br />
ονομάζεται εστιακή απόσταση, και συμβολίζεται με f. Η απόσταση αυτή είναι σταθερή και<br />
προφανώς δεν εξαρτάται από τα Μ και m. Το επίπεδο το οποίο περιέχει το σημείο C και είναι<br />
παράλληλο στο επίπεδο της εικόνας ονομάζεται εστιακό επίπεδο, και τέλος η ευθεία η κάθετη στα<br />
δυο αυτά επίπεδα, η οποία διέρχεται και από το C ονομάζεται οπτικός άξονας.<br />
Σχήμα 3.3: Προβολή ενός σημείου<br />
Όπως προαναφέρθηκε, μία πραγματική κάμερα, περιέχει συστοιχίες φακών οι οποίες, εκτός<br />
των άλλων, εισάγουν και μη γραμμικές παραμορφώσεις, που έχουν σαν αποτέλεσμα τα σημεία M,<br />
C, m να μην είναι συνευθειακά. Παρόλα αυτά, το απλουστευμένο αυτό μοντέλο μπορεί να<br />
περιγράψει με αρκετά καλή ακρίβεια την λειτουργία της κάμερας.<br />
Η κάμερα είναι μια συσκευή η οποία εκτελεί έναν προβολικό μετασχηματισμό από τον<br />
τρισδιάστατο προβολικό χώρο P 3 στο δισδιάστατο προβολικό χώρο P 2 , δηλαδή στο επίπεδο της<br />
εικόνας. Κύριο χαρακτηριστικό και πλεονέκτημα του pinhole μοντέλου κάμερας είναι ότι αν το<br />
13
Κεφάλαιο 3: Μοντελοποίηση της κάμερας<br />
συνδυάσουμε με τη χρήση προβολικής γεωμετρίας, προκύπτουν πολύ απλές γραμμικές εξισώσεις<br />
που περιγράφουν τη λειτουργία της κάμερας. Αντίθετα, με τη χρήση ευκλείδειας γεωμετρίας, και<br />
συγκεκριμένα αν προσπαθούσαμε να περιγράψουμε τις σχέσεις των ευκλείδειων συντεταγμένων<br />
ενός σημείου στον τρισδιάστατο χώρο με αυτές της προβολής του στην εικόνα, οι σχέσεις που<br />
προκύπτουν είναι μη γραμμικές. Έστω ότι έχουμε ένα σημείο Μ(x,y,z) στο τρισδιάστατο<br />
ευκλείδειο σύστημα συντεταγμένων με αρχή αξόνων το C. Το σημείο που προκύπτει από την<br />
προβολή του Μ είναι το m(u,v) στο επίπεδο της εικόνας.<br />
Σχήμα 3.4: μετασχηματισμός συντεταγμένων<br />
Αν δούμε το σχήμα 3.4 από ψηλά και με τον άξονα των Y να έχει την αρνητική κατεύθυνση προς τα<br />
κάτω, θα προκύψει το σχήμα:<br />
Σχήμα 3.5: Η γεωμετρία της Pinhole κάμερας όπως φαίνεται από τον άξονα Y<br />
Oι μη-γραμμικές σχέσεις που θα προκύψουν από την ομοιότητα των τριγώνων είναι οι ακόλουθες:<br />
όπου τα u m , v m μετρώνται από το σημείο τομής του οπτικού άξονα με το επίπεδο της εικόνας(το<br />
σημείο αυτό ονομάζεται κύριο σημείο της εικόνας ή principal point)<br />
Επίσης μπορούν να γραφτούν στη μορφή:<br />
14
Κεφάλαιο 3: Μοντελοποίηση της κάμερας<br />
u m<br />
v m<br />
x<br />
= - (f/z) (3.1)<br />
y<br />
Όπως προαναφέρθηκε, οι σχέσεις είναι μη γραμμικές γι’ αυτό και όταν χρησιμοποιούνται στην<br />
περαιτέρω μαθηματική ανάλυση, καθιστούν την επίλυση των συστημάτων που προκύπτουν δύσκολη<br />
τόσο αναλυτικά όσο και αριθμητικά. Αυτός είναι και ο λόγος που χρησιμοποιούμε προβολικές<br />
αντί για ευκλείδειες συντεταγμένες. Πράγματι, αν θεωρήσουμε το σημείο σαν σημείο του P 3 με<br />
συντεταγμενες (Χ,Υ,Ζ,1), και το σημείο σαν σημείο του P 2 με συντεταγμένες (U,V,S), η<br />
παραπάνω σχέση γράφεται:<br />
(3.2)<br />
με u m =U / S , v m =V / S και x=X / T , y=Y / T , z=Z / T. Όταν S = 0 το σημείο βρίσκεται επί της<br />
γραμμής στο άπειρο του επιπέδου της εικόνας και αυτό συμβαίνει όταν το βρίσκεται επί του<br />
εστιακού επιπέδου.<br />
Η σχέση (3.2) επιδεικνύει το γεγονός ότι ο μετασχηματισμός των προβολικών συντεταγμένων ενός<br />
σημείου από τον χώρο P 3 στον χώρο P 2 , δηλαδή στην εικόνα, μπορεί να γραφεί με τη μορφή<br />
πινάκων σαν<br />
= P (3.3)<br />
Ο πίνακας Ρ ονομάζεται πίνακας προβολής (projection matrix) και περιέχει όλες τις πληροφορίες<br />
που χρειαζόμαστε για να προσδιορίσουμε την προβολή οποιουδήποτε σημείου του χώρου στην<br />
εικόνα, μέσω της κάμερας. Επίσης, όπως θα δούμε παρακάτω, ο πίνακας P περιέχει και τις<br />
πληροφορίες εκείνες που χρειαζόμαστε για να βρούμε τις εσωτερικές παραμέτρους τις κάμερας<br />
καθώς και τη θέση της στο χώρο.<br />
3.2 Οι εσωγενείς και εξωγενείς παράμετροι της κάμερας<br />
Η μορφή του Ρ που φαίνεται στην σχέση (3.2) είναι εξαιρετικά απλή και αυτό οφείλεται στο<br />
ότι έχουμε χρησιμοποιήσει κάποιες εξιδανικεύσεις. Συγκεκριμένα, θεωρήσαμε ότι:<br />
<br />
<br />
<br />
η κάμερα βρίσκεται στην αρχή του συστήματος συντεταγμένων του τρισδιάστατου χώρου,<br />
και μάλιστα οι κατευθύνσεις των αξόνων της κάμερας (οι 2 άξονες επί του επιπέδου της<br />
εικόνας και ο οπτικός άξονας) συμπίπτουν με τις κατευθύνσεις των αξόνων του τρισορθογώνιου<br />
συστήματος συντεταγμένων του χώρου.<br />
όλες οι αποστάσεις μετρώνται στις ίδιες μονάδες<br />
η αρχή της μέτρησης για τις συντεταγμένες στην εικόνα είναι το principal point.<br />
Αυτές οι απλουστεύσεις όμως δεν είναι ιδιαίτερα χρήσιμες σε πραγματικές συνθήκες, καθώς<br />
συνήθως οι θέσεις των σημείων σε μια εικόνα μετρώνται σε pixels και μάλιστα η αρχή των αξόνων<br />
συνήθως θεωρείται το πάνω αριστερά pixel της εικόνας. Επίσης, η θέση και ο προσανατολισμός<br />
της κάμερας στη γενική περίπτωση είναι τυχαίος, και δεν συμπίπτει με την αρχή του συστήματος<br />
των αξόνων του χώρου.<br />
Για να είμαστε σε θέση να πραγματοποιήσουμε μετρήσεις από τις εικόνες που λαμβάνουμε από<br />
15
Κεφάλαιο 3: Μοντελοποίηση της κάμερας<br />
την κάμερα, πρέπει να γνωρίζουμε τις παραμέτρους της κάμερας, καθώς αυτές καθορίζουν την<br />
σχέση μεταξύ των συντεταγμένων ενός σημείου στον τρισδιάστατο χώρο και των συντεταγμένων<br />
της προβολής του στην εικόνα. Οι παράμετροι εκείνες οι οποίες εξαρτώνται μόνο από την ίδια την<br />
κάμερα, και δεν αλλάζουν μεταξύ διαφορετικών λήψεων, ονομάζονται εσωγενείς ( intrinsic) ενώ<br />
εκείνες που εξαρτώνται από την θέση και τον προσανατολισμό της κάμερας σε κάθε λήψη<br />
ονομάζονται εξωγενείς (extrinsic).<br />
Τα παραπάνω συγκεντρώνονται στο σχήμα που ακολουθεί:<br />
Σχήμα 3.6: Εσωγενείς και εξωγενείς παράμετροι της κάμερας<br />
3.2.1 Οι εσωγενείς παράμετροι<br />
3.2.1.1 Ορισμός εσωγενών παραμέτρων<br />
Αν χρησιμοποιήσουμε αλγόριθμο αυτοβαθμονόμησης, δε χρειάζεται να γνωρίζουμε από<br />
πριν τις εσωγενείς παραμέτρους της κάμερας, καθώς υπολογίζονται αυτόματα ταυτόχρονα με τη<br />
δομή του χώρου. Στην παρούσα εργασία δε θα χρησιμοποιηθεί τέτοιος αλγόριθμος, επομένως είναι<br />
σημαντικό να υπολογίσουμε όσο το δυνατόν ακριβέστερα αυτές τις παραμέτρους αφού μόνο τότε<br />
μας δίνεται η δυνατότητα να λάβουμε με την καλύτερη δυνατή ακρίβεια μία τρισδιάστατη<br />
αναδημιουργία του αντικειμένου.<br />
Το ζητούμενο είναι έχοντας ως δεδομένες τις παραμέτρους της κάμερας να<br />
μετασχηματίσουμε τις συντεταγμένες κάθε σημείου της εικόνας, κατά τέτοιο τρόπο, ώστε να<br />
πάρουμε τις συντεταγμένες εκείνες που θα μας έδινε μια ιδανική κανονικοποιημένη κάμερα. Έτσι<br />
είμαστε σε θέση να χρησιμοποιήσουμε τα δεδομένα που παίρνουμε από μία εικόνα, ανεξάρτητα<br />
από τα συγκεκριμένα χαρακτηριστικά της κάμερας. Για παράδειγμα, σε μια πραγματική κάμερα, το<br />
εστιακό μήκος μπορεί να είναι οποιοδήποτε και επιπλέον το πιο πιθανό είναι οι συντεταγμένες της<br />
εικόνας να μην αντιστοιχούν στις συντεταγμένες του ορθογώνιου εστιακού επιπέδου. Είναι δυνατόν<br />
οι άξονες της εικόνας να μην είναι απολύτως ορθογώνιοι. Κάτι τέτοιο μπορεί να συμβεί, αν οι<br />
αισθητήρες της κάμερας δεν είναι τοποθετημένοι με ακρίβεια σε απόλυτα ορθογώνια διάταξη.<br />
Αυτό έχει ως αποτέλεσμα μία γραμμική παραμόρφωση η οποία μπορεί να συμπεριληφθεί εύκολα<br />
16
Κεφάλαιο 3: Μοντελοποίηση της κάμερας<br />
στο γραμμικό μοντέλο που ήδη αναλύσαμε.<br />
Σημαντική διευκρίνιση είναι ότι στο σχήμα που απεικονίζεται το pinhole model, το είδωλο<br />
κάθε αντικειμένου, δημιουργείται στο επίπεδο της εικόνας, ανεστραμμένο. Είναι προφανές όμως,<br />
ότι η φωτογραφία που προκύπτει από μία κάμερα, δεν έχει ανεστραμμένο το είδωλο. Αυτό<br />
σημαίνει ότι εσωτερικά της κάμερας γίνεται μια δεύτερη αντιστροφή, η οποία έχει ως αποτέλεσμα<br />
να παίρνουμε την εικόνα, όπως τη βλέπουμε στο φυσικό κόσμο. Ισοδύναμα λοιπόν, μπορούμε να<br />
υποθέσουμε ότι το επίπεδο της εικόνας βρίσκεται μπροστά και όχι πίσω από την εστία της κάμερας<br />
Aπό το σχήμα που ακολουθεί μπορούμε να εξάγουμε το μετασχηματισμό που πρέπει να εφαρμόσουμε<br />
για να δημιουργήσουμε το κανονικοποιημένο σύστημα συντεταγμένων της εικόνας.<br />
Προφανώς ο μετασχηματισμός αυτός θα προκύψει συναρτήσει των εσωγενών παραμέτρων της<br />
κάμερας (fc,cc,alpha_c,kc).<br />
Σχήμα 3.7: Το κανονικοποιημένο σύστημα συντεταγμένων<br />
Θεωρούμε ότι το σύστημα συντεταγμένων του χώρου ( Ο,x,y,z), ταυτίζεται με το σύστημα<br />
συντεταγμένων της κάμερας ( C,x,y,z). Έστω M ένα σημείο στο χώρο που περιγράφεται από το<br />
διάνυσμα με συντεταγμένες Μ(x,y,z) στο επίπεδο αναφοράς της κάμερας. Η προβολή αυτού του<br />
σημείου στο επίπεδο της εικόνας θα έχει συντεταγμένες (u,v) οι οποίες παίρνουν μόνο θετικές τιμές<br />
και μετρώνται σε pixel.<br />
Έστω ότι έχουμε δύο αισθητήρες. Αν η απόστασή τους στη διεύθυνση u είναι δu και στη διεύθυνση<br />
v είναι δv μπορούμε να πούμε ότι:<br />
(3.4) και (3.5)<br />
όπου τα δu και δv μετρώνται σε m/pixel και το f σε m.<br />
Οι λόγοι x/z και y/z που εμφανίζονται στις σχέσεις (3.4) και (3.5), αποτελούν τις συντεταγμένες της<br />
προβολής του Μ στην κανονικοποιημένη, ιδανική κάμερα, δηλαδή μια κάμερα με f=1 και με την<br />
αρχή του συστήματος συντεταγμένων στο principal point. Έστω ότι οι κανονικοποιημένες<br />
συντεταγμένες του Μ είναι οι (u n ,v n ). Έχουμε:<br />
(3.6) και (3.7)<br />
Ο μετασχηματισμός λοιπόν που χρησιμοποιούμε για να αντιστοιχίσουμε τις συντεταγμένες ενός<br />
σημείου στην εικόνα, στις κανονικοποιημένες συντεταγμένες του είναι ο ακόλουθος:<br />
(3.8) και (3.9)<br />
17
Κεφάλαιο 3: Μοντελοποίηση της κάμερας<br />
Χρησιμοποιώντας προβολικές συντεταγμένες, οι σχέσεις αυτές γράφονται ως εξής:<br />
(3.10)<br />
Ο 3x3 πίνακας που εμφανίζεται στην παραπάνω εξίσωση είναι ο πίνακας ‘ομογραφίας’, δηλαδή<br />
ενός προβολικού μετασχηματισμού του επιπέδου. Ο αντίστροφος αυτού του πίνακα, ονομάζεται<br />
πίνακας εσωγενών παραμέτρων και συμβολίζεται με Η. Δίνει το μετασχηματισμό που<br />
χρησιμοποιείται για να μεταφέρουμε τα σημεία από τις συντεταγμένες τους στην κανονικοποιημένη<br />
εικόνα, στις πραγματικές συντεταγμένες τους:<br />
(3.11)<br />
Παρατηρούμε ότι ο ίδιος πίνακας προκύπτει αν γράψουμε τις σχέσεις (3.6) και (3.7) σε προβολικές<br />
συντεταγμένες. Ο πίνακας προβολής της κανονικοποιημένης κάμερας είναι ο:<br />
(3.12)<br />
Συνδυάζοντας τους πίνακες Η και Pn, προκύπτει ο πίνακας P της κάμερας:<br />
(3.13)<br />
Ο πίνακας αυτός, δίνει τις συντεταγμένες pixel της προβολής ενός σημείου, όταν το σύστημα της<br />
κάμερας ταυτίζεται με το αδρανειακό σύστημα συντεταγμένων. Οι παράμετροι α u ,α v ,u 0 και v 0<br />
ονομάζονται εσωγενείς ( intrinsic) παράμετροι της κάμερας. Η γνώση των εσωγενών παραμέτρων<br />
ισοδυναμεί με τη γνώση της εικόνας του absolute conic, το οποίο είναι το απαραίτητο στοιχείο για<br />
την αναβάθμιση της δομής του χώρου από προβολική σε μετρική.<br />
18
Κεφάλαιο 3: Μοντελοποίηση της κάμερας<br />
3.2.1.2 Μη γραμμικές παραμορφώσεις<br />
Τα οπτικά της κάμερας, αλλά και ο τρόπος κατασκευής της προκαλούν και μη γραμμικές<br />
παραμορφώσεις, εισάγοντας έτσι συστηματικά σφάλματα, τα οποία πρέπει να λάβουμε υπόψη, αν<br />
θέλουμε να έχουμε μεγάλο βαθμό ακρίβειας. Ανάλογα με το βαθμό ακρίβειας που επιθυμούμε στην<br />
εφαρμογή μας και ανάλογα με τις απαιτήσεις μας για ταχύτητα στον αλγόριθμο, μπορούμε να<br />
χρησιμοποιήσουμε περισσότερους ή λιγότερους όρους οι οποίοι θα περιγράφουν τις παραμορφώσεις.<br />
Στις περισσότερες περιπτώσεις, τα αποτελέσματα αυτών των παραμορφώσεων είναι<br />
αμελητέα κάτω από κανονικές περιστάσεις απόκτησης των εικόνων.<br />
Α) Ακτινική παραμόρφωση<br />
Μία από τις πιο σημαντικές παραμορφώσεις είναι η ακτινική παραμόρφωση, η οποία σε<br />
μικρά εστιακά μήκη έχει ακόμα πιο αξιοπρόσεκτη επίδραση. Οι φακοί της κάμερας σε πολλές<br />
περιπτώσεις, λόγω της ατελούς κατασκευής τους, δεν έχουν πάντα την απαιτούμενη καμπυλότητα.<br />
Αυτό έχει ως αποτέλεσμα τα σημεία στην εικόνα να μην βρίσκονται στη θέση που προβλέπει το<br />
γραμμικό μοντέλο, αλλά υφίστανται ακτινική μετατόπιση, ως επί των πλείστων ως προς το κύριο<br />
σημείο της εικόνας. Όταν η μετατόπιση αυτή είναι θετική, τότε έχουμε ακτινική παραμόρφωση με<br />
μετατόπιση τύπου pincushion, ενώ όταν είναι αρνητική, η έχουμε μετατόπιση τύπου barrel (σχήμα<br />
3.8).<br />
Σχήμα 3.8: α) Γραμμικό μοντέλο, β) Ακτινική παραμόρφωση τύπου pincushion, γ) Ακτινική παραμόρφωση<br />
τύπου barrel<br />
Μερικές φορές μπορεί να υπάρξει μία μίξη των δύο τύπων ακτινικής παραμόρφωσης,<br />
γνωστής και ως ‘παραμόρφωση μουστάκι’ (moustache distortion ή complex distrortion). Είναι<br />
λιγότερο συχνή, αλλά όχι σπάνια. Ξεκινά όπως η barrel κοντά στο κέντρο της εικόνας και σταδιακά<br />
μετατρέπεται σε pincushion προς την περιφέρειατης εικόνας, κάνοντας οριζόντιες γραμμές στο<br />
πάνω μισό του πλαισίου, σαν το μουστάκι που απεικονίζεται ακολούθως:<br />
Σχήμα 3.9: Moustache distortion<br />
19
Κεφάλαιο 3: Μοντελοποίηση της κάμερας<br />
Β)Χρωματική εκτροπή<br />
Είναι ακτινική παραμόρφωση που εξαρτάται από το μήκος κύματος και ονομάζεται<br />
πλευρική χρωματική εκτροπή, ‘πλευρική’ γιατί εμφανίζεται ακτινικά και ‘χρωματική’ επειδή<br />
εξαρτάται από το χρώμα. Σε περιοχές με υψηλή αντίθεση (high contrast) μπορεί να δημιουργήσει<br />
‘είδωλο’ στο εξωτερικό τμήμα της εικόνας. Δεν πρέπει να συγχέεται με την αξονική (διαμήκη)<br />
εκτροπή, η οποία προκαλεί αλλοιώσεις σε όλη την εικόνα και δημιουργεί μωβ ‘είδωλα’.<br />
(α)<br />
(β)<br />
Σχήμα 3.9: α) πλευρική χρωματική εκτροπή, β) αξονική εκτροπή<br />
Γ) Παραμόρφωση λεπτού πρίσματος<br />
Επίσης εξαιτίας της ατελούς κατασκευής των οπτικών της κάμερας αλλά και εξαιτίας της<br />
ανακριβούς συναρμολόγησης των διαφόρων τμημάτων της, εισάγεται μια ακόμη μορφή<br />
παραμόρφωσης, η παραμόρφωση λεπτού πρίσματος, η οποία λέγεται έτσι γιατί μπορεί να<br />
μοντελοποιηθεί με την προσθήκη ενός λεπτού πρίσματος στο οπτικό σύστημα. Η παραμόρφωση<br />
αυτή εισάγει επίσης ακτινική και εφαπτομενική παραμόρφωση.<br />
Δ) Παραμόρφωση εκκεντρότητας<br />
Τέλος, τα κέντρα καμπυλότητας των φακών της κάμερας δεν είναι πάντα συγγραμμικά, και<br />
αυτό έχει σαν αποτέλεσμα μια άλλη συνήθη μορφή παραμόρφωσης, την παραμόρφωση<br />
εκκεντρότητας (decentering distortion). Η παραμόρφωση αυτή συνεισφέρει τόσο στην ακτινική,<br />
όσο και στην εφαπτομενική παραμόρφωση.<br />
Οι μη γραμμικές εσωγενείς παράμετροι (πχ . στρέβλωση του φακού) είναι επίσης<br />
σημαντικές αν και δεν μπορούν να συμπεριληφθούν στο γραμμικό μοντέλο της κάμερας, όπως<br />
περιγράφηκε πιο πάνω. Από την άλλη υπάρχουν πολλοί σύγχρονοι αλγόριθμοι βαθμονόμησης<br />
κάμερας που περιλαμβάνουν την εκτίμηση αυτών των ενδογενών παραμέτρων.<br />
3.2.1.3 Αντιμετώπιση μη γραμμικών παραμορφώσεων<br />
Είναι δυνατό να ακυρωθεί το μεγαλύτερο μέρος της επίδρασης της ακτινικής<br />
παραμόρφωσης με τη στρέβλωση της εικόνας. Οι συντεταγμένες στις μη παραμορφωμένες συντε-<br />
20
Κεφάλαιο 3: Μοντελοποίηση της κάμερας<br />
ταγμένες του επιπέδου της εικόνας ( x,y) μπορούν να ληφθούν από τις παρατηρηθείσες συντεταγμένες<br />
εικόνας (x 0 ,y 0 )από την ακόλουθη εξίσωση:<br />
(3.14)<br />
(3.15)<br />
όπου Κ 1 και Κ 2 είναι η πρώτη και δεύτερη παράμετρος της ακτινική παραμόρφωσης και<br />
(3.16)<br />
Μερικές φορές είναι απαραίτητο να επιτραπεί το κέντρο της ακτινικής παραμόρφωσης να είναι<br />
διαφορετικό από το κύριο σημείο. Όταν το εστιακό μήκος της κάμερας αλλάζει (μέσω του ζουμ ή<br />
της εστίασης) οι παράμετροι Κ 1 και Κ 2 θα ποικίλουν επίσης οπότε θα έχουμε:<br />
(3.17)<br />
(3.18)<br />
Λόγω των αλλαγών στο σύστημα φακών αυτό είναι μόνο μια προσέγγιση, εκτός εάν τα<br />
ψηφιακά ζουμ είναι ακριβή. Εναλλακτικά για να χρησιμοποιήσουμε τους προηγούμενους<br />
συμβολισμούς, θεωρούμε ότι οι σχέσεις (3.6) και (3.7) γράφονται συμπεριλαμβανομένων των<br />
διορθώσεων στις συντεταγμένες των σημείων της εικόνας ως εξής:<br />
(3.19)<br />
όπου δu και δv είναι οι ποσότητες ‘διόρθωσης’ έτσι ώστε αυτές οι σχέσεις να δίνουν τις<br />
πραγματικές συντεταγμένες που παρατηρούμε στην εικόνα. Αυτές οι ποσότητες περιλαμβάνουν<br />
τόσο την ακτινική όσο και την εφαπτομενική παραμόρφωση ως ακολούθως:<br />
(3.20)<br />
(3.21)<br />
όπου<br />
. Οι όροι με συντελεστές k 1<br />
,k 2<br />
,… περιγράφουν την ακτινική παραμόρφωση,<br />
ενώ οι όροι με συντελεστές p 1<br />
,p 2<br />
περιγράφουν την εφαπτομενική παραμόρφωση. Σε περίπτωση που<br />
θέλουμε ιδιαίτερα αυξημένη ακρίβεια μπορούμε να προσθέσουμε περισσότερους όρους, κυρίως<br />
στην ακτινική παραμόρφωση, όμως αυτό συνήθως δεν επιφέρει κάποια αξιόλογη βελτίωση στα<br />
αποτελέσματα (δηλαδή στο σφάλμα ανάμεσα στις πραγματικές συντεταγμένες των σημείων και σε<br />
αυτές που προβλέπει το μοντέλο), ενώ λόγω της αύξησης της πολυπλοκότητας, σε αρκετές<br />
περιπτώσεις εμφανίζεται και υποβάθμιση των αποτελεσμάτων, καθώς οι αλγόριθμοι που<br />
υπολογίζουν τις παραμέτρους αυτές συγκλίνουν δυσκολότερα. Αυτό το γεγονός θα το δούμε σε<br />
επόμενο κεφάλαιο, κατά την παρουσίαση των πειραματικών αποτελεσμάτων.<br />
Έχοντας ολοκληρωμένο το μοντέλο της κάμερας, συμπεριλαμβανομένων και των παραπάνω μηγραμμικών<br />
παραμορφώσεων της εικόνας, έχουμε το εξής σύνολο των εσωγενών παραμέτρων της<br />
κάμερας :<br />
α u<br />
, α v<br />
, u 0<br />
, v 0<br />
, k 1<br />
,k 2<br />
,…, p 1<br />
,p 2<br />
Οι παράμετροι αυτές ονομάζονται και φυσικές παράμετροι, γιατί έχουν κάποια φυσική σημασία,<br />
και σχετίζονται με τα πραγματικά χαρακτηριστικά της κάμερας.<br />
21
Κεφάλαιο 3: Μοντελοποίηση της κάμερας<br />
3.2.2 Εξωγενείς παράμετροι<br />
Για τον υπολογισμό των εσωγενών παραμέτρων συμβατικά θεωρούσαμε ότι το σύστημα συντεταγμένων<br />
της κάμερας C(x,y,z), συμπίπτει με αυτό του χώρου ( O,x,y,z). Στην πραγματικότητα<br />
όμως και στη γενική περίπτωση που η κάμερα κινείται ελεύθερα στο χώρο μεταξύ των διαφορετικών<br />
λήψεων, η σύμβαση αυτή μπορεί να ισχύει μόνο για μία φωτογραφία. Επομένως πρέπει να<br />
βρούμε έναν μετασχηματισμό που να συνδέει τις συντεταγμένες του σημείου του χώρου Μ(x,y,z)<br />
με τις συντεταγμένες της προβολής του στην εικόνα. Από τις εκφράσεις του πίνακα κάμερας<br />
P=HP n και του μετασχηματισμού , ο ζητούμενος μετασχηματισμός είναι ο ακόλουθος:<br />
(3.22)<br />
Θεωρώντας τη γενική περίπτωση του ακόλουθου σχήματος, για να μετασχηματιστεί το σύστημα<br />
(O,x,y,z) στο σύστημα (C,x,y,z), χρειάζεται να ξέρουμε την περιστροφή R και τη μετατόπιση t.<br />
Σχήμα 3.10: Το σύστημα συντεταγμένων της κάμερας και του χώρου<br />
Επομένως, οι ευκλείδιες συντεταγμένες του σημείου Μ εκφρασμένες στο σύστημα ( C,x,y,z) θα<br />
είναι οι ακόλουθες:<br />
(3.23)<br />
Συμβολίζοντας τώρα τον προβολικό μετασχηματισμό με Τ και χρησιμοποιώντας προβολικές<br />
συντεταγμένες, θα ισχύει η σχέση:<br />
(3.24)<br />
όπου<br />
(3.25)<br />
Συνδυάζοντας τις σχέσεις (3.22) και (3.24) προκύπτει η ακόλουθη σχέση:<br />
22<br />
(3.26)
Κεφάλαιο 3: Μοντελοποίηση της κάμερας<br />
η οποία και αποτελεί την έκφραση του μετασχηματισμού των συντεταγμένων του σημείου Μ. Άρα<br />
ο πίνακας P=HP n T αποτελεί τον πίνακα προβολής για τη γενικότερη περίπτωση, όπου η κάμερα<br />
βρίσκεται σε τυχαία θέση στο χώρο. Συνδυάζοντας τις σχέσεις (3.13) και (3.25) ο πίνακας μπορεί<br />
να εξαχθεί στην παρακάτω μορφή:<br />
(3.27)<br />
όπου r i είναι τα διανύσματα γραμμής του πίνακα R και t = [t x t y t z ] Τ .<br />
Οι παράμετροι R και t ονομάζονται εξωγενείς παράμετροι της κάμερας. Ο πίνακας R είναι ένας<br />
πίνακας περιστροφής, ένας ορθοκανονικός πίνακας, ο οποίος έχει 3 βαθμούς ελευθερίας (τις γωνίες<br />
περιστροφής γύρω από τους 3 άξονες). Οι εξωγενείς παράμετροι εισάγουν επομένως επιπλέον 6<br />
βαθμούς ελευθερίας (δηλαδή 6 αγνώστους για κάθε νέα θέση της κάμερας).<br />
3.3 Αντιστοιχία του μαθηματικού υπόβαθρου με τα αποτελέσματα του Matlab<br />
3.3.1 Εσωγενείς παράμετροι<br />
Όπως προαναφέρθηκε, οι εσωγενείς παράμετροι της κάμερας είναι αυτές που περιγράφουν<br />
την κάμερα και συγκεκριμένα τα οπτικά, γεωμετρικά και ψηφιακά χαρακτηριστικά της. Αυτά<br />
προκύπτουν αριθμητικά κατά τη διάρκεια της πειραματικής διαδικασίας στο matlab που θα<br />
περιγραφτεί αναλυτικά σε επόμενο κεφάλαιο. Θα αναφερθούμε συνοπτικά στις εσωγενείς<br />
παραμέτρους όπως προκύπτουν στο Μatlab σα μεταβλητές. Συγκεκριμένα:<br />
1. Η προοπτική προβολή (εστιακό μήκος- focal length f): το focal length σε pixel αποθηκεύεται<br />
στο 2x1 διάνυσμα fc<br />
2. Το principal point: Οι συντεταγμένες του principal point αποθηκεύονται στο 2x1 διάνυσμα cc<br />
3. Η γεωμετρική παραμόρφωση που εισάγει η οπτική ( distortions) : Οι παραμορφώσεις της<br />
εικόνας (ακτινική και εφαπτομενική) αποθηκεύονται στο 5x1 διάνυσμα kc<br />
4. Ο συντελεστής απόκλισης (skew coefficient): Ο συντελεστής απόκλισης είναι ουσιαστικά αυτός<br />
που καθορίζει τη γωνία μεταξύ του άξονα x και του άξονα y και αποθηκεύεται στη βαθμωτή<br />
μεταβλητή alpha_c.<br />
Αν ακολουθήσουμε αντίστοιχη διαδικασία με αυτή που περιγράψαμε στην προηγούμενη ενότητα,<br />
χρησιμοποιώντας απευθείας τις μεταβλητές στο Μatlab επιγραμματικά προκύπτουν τα παρακάτω:<br />
Έστω Μ ένα σημείο του χώρου x n η κανονικοποιημένη (pinhole) προβολή στην εικόνα:<br />
(3.28)<br />
Έστω: r 2 = x 2 + y 2 .<br />
Αφού συμπεριλάβουμε τις παραμορφώσεις του φακού, οι νέες κανονικοποιημένες συντεταγμένες<br />
του σημείου x d περιγράφονται από την ακόλουθη εξίσωση:<br />
23
Κεφάλαιο 3: Μοντελοποίηση της κάμερας<br />
(3.29)<br />
όπου dx είναι το διάνυσμα εφαπτομενικής παραμόρφωσης:<br />
(3.30)<br />
Συνεπώς, το διάνυσμα kc περιέχει τόσο το συντελεστή ακτινικής όσο και της εφαπτομενικής<br />
παραμόρφωσης (παρατηρούμε ότι ο συντελεστής του όρου της 6 ης τάξης ακτινικής παραμόρφωσης<br />
είναι το 5 ο στοιχείο του διανύσματος kc). Αξίζει να σημειώσουμε ότι η εφαπτομενική<br />
παραμόρφωση οφείλεται σε ‘μη-κεντράρισμα’ ή ατελές κεντράρισμα λόγω των χαρακτηριστικών<br />
και άλλα κατασκευαστικά ελαττώματα σε ένα σύνθετο φακό.<br />
Αφού εφαρμόσουμε και τους υπόλοιπους συντελεστές παραμόρφωσης, οι τελικές συντεταγμένες<br />
του pixel x_pixel = [x p ;y p ] της προβολής του σημείου Μ στο επίπεδο της εικόνας είναι:<br />
Συνεπώς, το διάνυσμα συντεταγμένων του pixel x_pixel και το κανονικοποιημένο<br />
(παραμορφωμένο) διάνυσμα συντεταγμένων x d σχετίζονται μεταξύ τους μέσω της γραμμικής<br />
εξίσωσης:<br />
(3.31)<br />
όπου το ΚΚ είναι γνωστό ως ο πίνακας της κάμερας και ορίζεται ακολούθως:<br />
(3.32)<br />
Στο Μatlab ο πίνακας ΚΚ αποθηκεύεται στη μεταβλητή ΚΚ μετά τη βαθμονόμηση.<br />
Παρατηρούμε ότι τα fc(1) και fc(2) είναι οι εστιακές αποστάσεις (μία μοναδική τιμή σε mm) που<br />
εκφράζονται σε μονάδες οριζόντιων και κάθετων pixel. Και οι δύο συνιστώσες του διανύσματος fc<br />
είναι συνήθως παραπλήσιες. Η αναλογία fc(2)/fc(1), συχνά αποκαλούμενη ‘αναλογία διαστάσεων-<br />
(aspect ratio)’, είναι διάφορη του 1 εάν τα pixel στο CCD πίνακα δεν είναι τετράγωνα. Συνεπώς, το<br />
μοντέλο της κάμερας κανονικά χειρίζεται μη τετραγωνικά pixels. Επιπλέον, ο συντελεστής alpha_c<br />
κωδικοποιεί τη γωνία μεταξύ των αξόνων x και y των αισθητήρων. Συνήθως προκαθορίζεται στις<br />
90 ο , ο συντελεστής alpha_c είναι μηδενικός. Συνεπώς, τα pixels μπορούν ακόμα και να μην είναι<br />
παραλληλόγραμμα, αλλά συνήθως η γωνία προκαθορίζεται στις 90 ο , οπότε ο συντελεστής alpha_c<br />
είναι μηδενικός. Συγκρίνοντας τώρα την έκφραση του πίνακα ΚΚ και του πίνακα Η στις δύο<br />
γραμμικές εξισώσεις βλέπουμε ότι είναι οι ίδιοι πίνακες, με άλλη έκφραση. Από αυτή την<br />
αντιστοιχία προκύπτουν τα εξής:<br />
au = fc(1) uo = cc(1) αv = fc(2) vo = cc(2) και προφανώς alpha_c*fc(1) = 0<br />
αφού alpha_c = 0<br />
24
Κεφάλαιο 3: Μοντελοποίηση της κάμερας<br />
Σημαντική σύμβαση: οι συντεταγμένες των pixel έχουν οριστεί έτσι ώστε το σημείο (0,0) να είναι<br />
το κέντρο του πάνω αριστερά pixel της εικόνας. Κατά συνέπεια, (nx-1,0) είναι το κέντρο του πάνω<br />
δεξιά pixel, (0,ny-1) είναι το κέντρο του κάτω αριστερά pixel και (nx-1,ny-1) είναι το κέντρο του<br />
κάτω δεξιά pixel, όπου nx=3072 και ny=2048. Στο toolbox του Μatlab υπάρχει η συνάρτηση<br />
project_points2.m, η οποία χρησιμοποιεί σαν δεδομένα τις 3D συντεταγμένες από ένα σύνολο<br />
σημείων στο χώρο καθώς και τις εσωγενείς παραμέτρους της κάμερας και επιστρέφει την προβολή<br />
των σημείων στα pixel του επιπέδου της εικόνας.<br />
Εκτός από την εκτίμηση για τις εσωγενείς παραμέτρους, fc, cc, kc και alpha_c, το toolbox<br />
επιστρέφει και εκτίμηση των σφαλμάτων αυτών των παραμέτρων. Βρίσκει κατά κάποιο τρόπο το<br />
λάθος στον υπολογισμό τους. Οι μεταβλητές του Matlab που περιέχουν τέτοια σφάλματα είναι οι<br />
fc_error, cc_error, kc_error, alpha_c_error. Πληροφοριακά, αυτά τα διανύσματα είναι περίπου<br />
τριπλάσια της τυπικής απόκλισης των σφαλμάτων εκτίμησης.<br />
Για παράδειγμα, το toolbox του Matlab μετά τη βελτιστοποίηση, εξάγει τα παρακάτω<br />
αποτελέσματα:<br />
Σε αυτή την περίπτωση, fc = [657.30254 ; 657.74391] και fc_error = [0.28487 ; 0.28937], cc =<br />
[302.71656 ; 242.33386], cc_error = [0.59115 ; 0.55710] κοκ.<br />
3.3.2 Εξωγενείς παράμετροι<br />
Περιστροφή R (rotation): Για ένα σύνολο n φωτογραφιών την περιστροφή περιγράφουν οι<br />
n 3x3 πίνακες περιστροφής Rc_1, Rc_2…Rc_n<br />
Μετατόπιση T (translation): Αντίστοιχα, ένα σύνολο n διανυσμάτων περιγράφουν τη μετατόπιση οι<br />
n 3x1 πίνακες μετατόπισης Tc_1, Tc_2,…,Tc_n<br />
Η σχέση (Γ) γραμμένη στις μεταβλητές που αποθηκεύει το Matlab είναι η ακόλουθη:<br />
XX c = Rc_1 * XX + Tc_1 όπου (Xc,Yc,Zc) οι συντεταγμένες του Μ στο επίπεδο της κάμερας και<br />
(Χ,Υ,Ζ) οι συντεταγμένες του Μ στο χώρο. Επίσης, τα διανύσματα omc_1,omc_1,...,omc_n, είναι<br />
τα διανύσματα που αντιστοιχούν στους πίνακες περιστροφής Rc_1, Rc_2…Rc_n. Αυτά τα δύο<br />
σχετίζονται μεταξύ τους με τον τύπο του Rodrigues. Για παράδειγμα, Rc_1=rodrigues(omc1).<br />
Παρακάτω παρουσιάζονται τα αποτελέσματα για τις εξωγενείς παραμέτρους στο matlab, κατά τη<br />
διάρκεια του stereo calibration, το οποίο θα αναλυθεί σε επόμενο κεφάλαιο.<br />
Όπως στις εσωγενείς, έτσι και στις εξωγενείς παραμέτρους, το Matlab υπολογίζει και εκτίμηση των<br />
σφαλμάτων στους υπολογισμούς του. Τα σφάλματα αυτά αποθηκεύονται στα διανύσματα<br />
omc_error_1,...,omc_error_n, για το σφάλμα περιστροφής και Tc_error_1...Tc_error_n για το<br />
σφάλμα μετατόπισης.<br />
25
Κεφάλαιο 4: Βαθμονόμηση της κάμερας<br />
Κεφάλαιο 4:Βαθμονόμηση κάμερας- Εύρεση παραμέτρων<br />
4.1 Εισαγωγή<br />
Οι κάμερες που χρησιμοποιούμε δεν είναι ιδανικές. Εισάγουν παραμορφώσεις στις εικόνες<br />
με αποτέλεσμα οι συντεταγμένες ενός σημείου στο χώρο να μη συμπίπτουν με τις συντεταγμένες<br />
της προβολής του στην εικόνα. Το πρόβλημα αυτό αντιμετωπίζεται με τη γνώση των παραμέτρων<br />
τις κάμερας. Αυτή η διαδικασία κατά την οποία βρίσκουμε τις εσωγενείς και εξωγενείς<br />
παραμέτρους της κάμερας με σκοπό την ελαχιστοποίηση αυτών των παραμορφώσεων ονομάζεται<br />
βαθμονόμηση της κάμερας ( camera calibration). Eσωγενείς ονομάζονται οι παράμετροι που<br />
εξαρτώνται μόνο από την ίδια την κάμερα, και δεν αλλάζουν μεταξύ διαφορετικών λήψεων, ενώ<br />
εκείνες που εξαρτώνται από την θέση και τον προσανατολισμό της κάμερας σε κάθε λήψη,<br />
ονομάζονται εξωγενείς.<br />
Γνωρίζοντας τις παραμέτρους της κάμερας είμαστε σε θέση να βρούμε τη δομή του χώρου<br />
μέχρι και το μετρικό επίπεδο (metric stratum), ενώ σε αντίθετη περίπτωση μπορούμε να φτάσουμε<br />
μόνο μέχρι το προβολικό επίπεδο, που όπως έχουμε ήδη πει, η αναπαράσταση του χώρου δεν είναι<br />
καθόλου καλή, αφού οι ομοιότητες με την πραγματική δομή του ευκλείδειου χώρου μπορεί να<br />
απουσιάζουν τελείως.<br />
Στη συνέχεια του κεφαλαίου θα παρουσιάσουμε τις κύριες μεθόδους εύρεσης των<br />
παραμέτρων της κάμερας, καθώς και τα πειραματικά αποτελέσματα που προέκυψαν από την<br />
εφαρμογή στη δική μας κάμερα.<br />
4.2 Μέθοδοι εύρεσης των παραμέτρων<br />
Το σκεπτικό πάνω στο οποίο στηριζόμαστε, για την εύρεση των παραμέτρων της κάμερας<br />
είναι η λήψη φωτογραφιών συγκεκριμένων στόχων, για τα σημεία των οποίων ήδη γνωρίζουμε τις<br />
συντεταγμένες. Έχοντας τη γνώση αυτή, είναι ευκολότερο πλέον για εμάς να προσδιορίσουμε τις<br />
συντεταγμένες των απεικονίσεων των συγκεκριμένων σημείων στις εικόνες (pixel coordinates) και<br />
στη συνέχεια να βρούμε τις παραμέτρους της κάμερας για τις οποίες, οι απεικονίσεις αυτές έχουν<br />
την καλύτερη προσέγγιση. Προς την κατεύθυνση αυτή λοιπόν, οι καλύτεροι στόχοι που<br />
χρησιμοποιούμε σαν πρότυπα βαθμονόμησης ( calibration patterns), αποτελούνται από ένα ή<br />
περισσότερα επίπεδα πάνω στα οποία έχουμε σχεδιάσει ασπρόμαυρα τετράγωνα (σκακιέρα). Είναι<br />
προφανές, πως με τα συγκεκριμένα πρότυπα, οι αλγόριθμοι εντοπισμού γωνιών έχουν πιο εύκολο<br />
έργο στο να εξάγουν τα σημεία ενδιαφέροντος, που είναι οι γωνίες των τετραγώνων.<br />
Παρόλα αυτά, οι αλγόριθμοι εντοπισμού γωνιών δεν δουλεύουν στην εντέλεια, με<br />
αποτέλεσμα να εισέρχεται μια μικρή απόκλιση ανάμεσα στο πραγματικό σημείο της γωνίας και το<br />
σημείο που μας δίνουν σαν απόκριση, της τάξεως των 1-2 pixels. Άλλα γνωστά εμπόδια στις<br />
μεθόδους εύρεσης παραμέτρων είναι ο θόρυβος κβαντισμού αλλά και ο ηλεκτρονικός θόρυβος,<br />
λόγω των διατάξεων της κάμερας, που αναγκάζουν τα σημεία του προτύπου βαθμονόμησης να μην<br />
προβάλλονται με απόλυτη ακρίβεια πάνω στα σωστά pixels. Αναγκαζόμαστε λοιπόν, να<br />
χρησιμοποιούμε στις μεθόδους μας περισσότερα σημεία από όσα είναι απαραίτητα με βάση τον<br />
αριθμό των αγνώστων, προκειμένου να βελτιώσουμε την ακρίβεια του αποτελέσματος, αλλά<br />
ταυτόχρονα η επίλυση του συστήματος δεν έχει πλέον μια ακριβή λύση και έτσι χρειαζόμαστε<br />
μεθόδους ελαχιστοποίησης.<br />
Οι μέθοδοι εύρεσης των παραμέτρων χωρίζονται σε κατηγορίες με βάση τα εξής<br />
χαρακτηριστικά :<br />
ανάλογα με τα πρότυπα βαθμονόμησης που χρησιμοποιούν. Κάποιες μέθοδοι αποδίδουν με<br />
βάση επίπεδα πρότυπα βαθμονόμησης, όπως η μέθοδος Zhang, ενώ άλλες με τρισδιάστατα, όπως η<br />
μέθοδος Hall.<br />
ανάλογα με το αν η βελτιστοποίηση γίνεται ως προς τα στοιχεία του πίνακα προβολής Ρ (ή<br />
26
Κεφάλαιο 4: Βαθμονόμηση της κάμερας<br />
κάποιου άλλου βοηθητικού πίνακα) ή ως προς τις εσωγενείς και εξωγενείς παραμέτρους . Οι<br />
πρώτες μέθοδοι λέγονται έμμεσες (implicit) γιατί η εξαγωγή των παραμέτρων γίνεται από τα<br />
στοιχεία του πίνακα, ενώ οι δεύτερες λέγονται άμεσες (explicit) γιατί η εξαγωγή των παραμέτρων<br />
γίνεται κατευθείαν από τις παρατηρήσεις.<br />
ανάλογα με το αν η βελτιστοποίηση που χρησιμοποιούμε είναι επαναληπτική ή όχι. Στην<br />
πρώτη περίπτωση συνήθως χρησιμοποιούμε γραμμικά ελάχιστα τετράγωνα, ενώ στη δεύτερη πιο<br />
ακριβείς (και χρονοβόρες) επαναληπτικές μεθόδους.<br />
ανάλογα με την εκτίμηση των παραμέτρων και την τεχνική βελτιστοποίησης που<br />
χρησιμοποιείται. Οι μέθοδοι χωρίζονται σε αυτές που χρησιμοποιούν το γραμμικό μοντέλο, το μη<br />
γραμμικό μοντέλο και τέλος σε αυτές που χρησιμοποιούν συνδυασμό των δύο μοντέλων.<br />
Στα πλαίσια της δικής μας εργασίας, χρησιμοποιήσαμε τη μέθοδο του Zhang, η οποία είναι<br />
αρκετά πολύπλοκη αλλά μας δίνει ικανοποιητικά αποτελέσματα. Στην επόμενη παράγραφο γίνεται<br />
μια εκτενής ανάλυση αυτής της μεθόδου. Πρώτα όμως, θα δώσουμε μια σύντομη επεξήγηση της<br />
μεθόδου του Ηall, για να αποκτήσουμε μια ιδέα γύρω από το πώς λειτουργεί.<br />
4.2.1 Μέθοδος Hall<br />
Μία από τις πρώτες μεθόδους που αναπτύχθηκαν για τη βαθμονόμηση της κάμερας είναι<br />
αυτή που πρότεινε το 1982 ο Hall και βασίζεται στο γραμμικό μοντέλο της κάμερας. Στη<br />
βελτιστοποίηση χρησιμοποιούνται τα στοιχεία του πίνακα προβολής, επομένως αποτελεί μια<br />
έμμεση μέθοδο εύρεσης των παραμέτρων της κάμερας. Η σχέση προβολής των σημείων του χώρου<br />
είναι:<br />
(4.1)<br />
όπου (Χ,Υ,Ζ) είναι οι ευκλείδειες συντεταγμένες των σημείων του π ροτύπου βαθμονόμησης και<br />
(Χ,Υ,Ζ,1) είναι οι ομογενείς τους συντεταγμένες. Οι συντεταγμένες σε pixels των σημείων της<br />
εικόνας (u,v), τις οποίες είμαστε σε θέση να μετρήσουμε, είναι :<br />
(4.2)<br />
Συνδυάζοντας τις δύο παραπάνω σχέσεις, μπορούμε να εξάγουμε δύο περιορισμούς για τα στοιχεία<br />
του πίνακα P από κάθε σημείο επί της εικόνας:<br />
(4.3)<br />
Επειδή χρησιμοποιούνται ομογενείς συντεταγμένες, ο πίνακας P είναι ορισμένος ως προς κάποιον<br />
πολλαπλασιαστικό παράγοντα, (έχει δηλαδή 11 βαθμούς ελευθερίας). Αυθαί ρετα λοιπόν, θέτουμε<br />
27
Κεφάλαιο 4: Βαθμονόμηση της κάμερας<br />
το στοιχείο p 34 = 1, οπότε έτσι αναζητούμε μία μοναδική λύση για τα υπόλοιπα στοιχεία του<br />
πίνακα. Οι σχέσεις 4.3 χρησιμοποιώντας αυτόν τον περιορισμό, γράφονται:<br />
(4.4)<br />
Οι συντεταγμένες (Χ,Υ,Ζ) περιγράφουν τις ευκλείδιες συντεταγμένες κάθε σημείου του προτύπου<br />
βαθμονόμησης οι οποίες είναι γνωστές από πριν. Οι αντίστοιχες συντεταγμένες σε pixel της<br />
προβολής του κάθε σημείου τις οποίες μπορούμε να υπολογίσουμε επί της εικόνας εκφράζονται με<br />
τις ποσότητες (u,v). Είναι φανερό πως οι σχέσεις 4.4 είναι γραμμικές εξισώσεις ως προς τα στοιχεία<br />
του πίνακα P. Αν έχουμε σα δεδομένα αρκετά σημεία, μπορούμε να υπολογίσουμε όλα τα p ij .Κάθε<br />
σημείο της εικόνας μας παρέχει 2 ανεξάρτητες εξισώσεις, επομένως για να υπολογίσουμε τους 11<br />
αγνώστους του πίνακα P χρειαζόμαστε τουλάχιστον 6 σημεία ώστε να εξασφαλίσουμε μοναδική<br />
λύση. Επειδή όμως η επίδραση του θορύβου των μετρήσεων αυξάνει όσο λιγότερα είναι τα σημεία,<br />
φροντίζουμε στην πράξη να χρησιμοποιήσουμε αρκετά περισσότερα από 6. Αν λοιπόν,<br />
χρησιμοποιήσουμε Ν σημεία της εικόνας, το σύστημα που προκύπτει είναι το ακόλουθο:<br />
Το σύστημα αυτό είναι της μορφής Ax=b όπου Α είναι ένας 2Nx11 πίνακας, το διάνυσμα x<br />
περιέχει 11 αγνώστους και το διάνυσμα b αποτελείται από 2Ν στοιχεία. Αποδεικνύεται ότι ο<br />
πίνακας αυτός είναι πλήρους τάξης μόνο αν τα σημεία που θα χρησιμοποιηθούν είναι μη<br />
συνεπίπεδα. Αυτός είναι και ο λόγος για τον οποίο η μέθοδος του Hall απαιτεί να έχουμε<br />
τρισδιάστατο πρότυπο βαθμονόμησης (σχ.4.1):<br />
28
Κεφάλαιο 4: Βαθμονόμηση της κάμερας<br />
Η λύση που δεχόμαστε είναι αυτή που ελαχιστοποιεί το τετράγωνο του σφάλματος στη σχέση (4.5)<br />
υπάρχει σε κλειστή μορφή και είναι η<br />
Εδώ παρατηρούμε ότι εμείς θα θέλαμε η βελτιστοποίηση, να έχει φυσικό νόημα. Να<br />
ελαχιστοποιεί τις αποστάσεις επαναπροβολής, δηλαδή την απόκλιση των συντεταγμένων των<br />
προβολών των σημείων στην εικόνα, που δίνονται από τις σχέσεις (4.1) και (4.2) από τις<br />
πραγματικές προβολές, τις συντεταγμένες των οποίων μετράμε πάνω στην εικόναέχει το φυσικό<br />
νόημα που απαιτούμε. Όμως αυτό θα σήμαινε ότι η προς ελαχιστοποίηση συνάρτηση θα γινόταν<br />
μη-γραμμική, και επομένως η απλότητα της μεθόδου θα χανόταν.<br />
Μέχρι τώρα έχουμε υπολογίσει τον πίνακα προβολής Ρ. Όμως δεν είναι αυτός ο σκοπός<br />
μας, καθώς αυτό που θέλουμε είναι να υπολογίσουμε τις παραμέτρους της κάμερας (εσωγενείς και<br />
εξωγενείς). Στο προηγούμενο κεφαλαίο είχαμε δείξει ότι ο πίνακας Ρ γράφεται ως συνάρτηση των<br />
παραμέτρων ως εξής:<br />
(4.6)<br />
(και είναι πολλαπλασιασμένος με μια αυθαίρετη σταθερά). Χρησιμοποιώντας τους περιορισμούς<br />
ορθοκανονικότητας που ισχύουν για τα διανύσματα r i<br />
και με βάση τη μορφή του πίνακα, μπορούμε<br />
να βρούμε τις παραμέτρους της κάμερας. Παρατηρούμε ότι πρέπει ||r 3<br />
|| = 1 και επομένως με αυτόν<br />
τον περιορισμό βρίσκουμε κατευθείαν τον παράγοντα με τον οποίο πρέπει να πολλαπλασιάσουμε<br />
τον πίνακα τον οποίο έχουμε βρει από τη λύση του συστήματος, ώστε να έρθει στη μορφή (4.6).<br />
29
Κεφάλαιο 4: Βαθμονόμηση της κάμερας<br />
Συμβολίζουμε τον κανονικοποιημένο πίνακα σαν:<br />
(τα a i είναι διανύσματα γραμμής, δηλαδή 1×3 πίνακες). Οι υπολογισμοί είναι απλοί, και το τελικό<br />
αποτέλεσμα που δίνουν για τις εσωγενείς παραμέτρους της κάμερας είναι :<br />
ενώ για τις εξωγενείς παραμέτρους παίρνουμε:<br />
(4.7)<br />
(4.8)<br />
Η μέθοδος του Hall έχει το πλεονέκτημα ότι είναι γραμμική, και επομένως δεν απαιτεί<br />
χρήση μη γραμμικών μεθόδων βελτιστοποίησης, οι οποίες είναι αρκετά δύσκολο να υλοποιηθούν.<br />
Όμως έχει τα μειονεκτήματα της χρήσης του απλού γραμμικού μοντέλου, του ότι η βελτιστοποίηση<br />
δεν γίνεται ως προς τις παραμέτρους της κάμερας, αλλά ως προς τον πίνακα P, και του ότι η<br />
βελτιστοποίηση αυτή δεν έχει το φυσικό νόημα που θα θέλαμε. Γι' αυτό τα αποτελέσματα της<br />
μεθόδου αυτής δεν είναι αρκετά ακριβή, στις περισσότερες των περιπτώσεων.<br />
4.2.2 Μέθοδος Zhang<br />
Η μέθοδος του Zhang είναι μια σχετικά καινούρια μέθοδος, η οποία αναπτύχθηκε το 1999.<br />
Το πρότυπο βαθμονόμησης που χρησιμοποιεί είναι επίπεδο, και έτσι πλεονεκτεί έναντι άλλων<br />
μεθόδων, αφού αυτό είναι αρκετά εύκολο στην κατασκευή. Εκτυπώνεις μια σκακιέρα και την<br />
τοποθετείς επάνω σε μια επίπεδη επιφάνεια, σε αντίθεση για παράδειγμα με τη μέθοδο Hall που<br />
χρησιμοποιεί μη επίπεδο πρότυπο πολύ μεγάλης ακρίβειας, το οποίο είναι δύσκολο και χρονοβόρο<br />
στη κατασκευή. Η μέθοδος Hall απαιτεί ακριβή γνώση των συντεταγμένων των σημείων του<br />
calibration pattern, διότι ακόμα και πολύ μικρά σφάλματα επιφέρουν σημαντικές αποκλίσεις.<br />
Αντιθέτως, η μέθοδος Zhang υπολογίζει τις συντεταγμένες των σημείων του προτύπου<br />
βαθμονόμησης παράλληλα με τις παραμέτρους της κάμερας.<br />
Ο αλγόριθμος του Zhang χρησιμοποιεί ένα συνδυασμό του γραμμικού και του μη<br />
γραμμικού μοντέλου. Μπορούμε να πούμε ουσιαστικά ότι χωρίζεται σε δύο στάδια. Στο πρώτο<br />
στάδιο, χρησιμοποιώντας το απλό γραμμικό μοντέλο, και γραμμικά ελάχιστα τετράγωνα, εξάγουμε<br />
μια πρώτη εκτίμηση για τις εσωγενείς παραμέτρους α u<br />
, α v<br />
, u 0<br />
, v 0<br />
. Συνήθως, για να διατηρήσουμε το<br />
σύστημα των εξισώσεων γραμμικό, στο στάδιο αυτό χρησιμοποιούμε έμμεσες μεθόδους(implicit),<br />
η ελαχιστοποίηση γίνεται δηλαδή ως προς τα στοιχεία κάποιου βοηθητικού πίνακα, και στη<br />
συνέχεια από τα στοιχεία αυτά εξάγουμε τις εσωγενείς παραμέτρους. Το στάδιο αυτό είναι αρκετά<br />
γρήγορο και μας δίνει μια αρχική εκτίμηση των παραμέτρων, η οποία αν και δεν είναι τόσο<br />
ικανοποιητική, είναι πολύ χρήσιμη για το δεύτερο στάδιο.<br />
Στο δεύτερο στάδιο χρησιμοποιούμε το πλήρες μοντέλο για την κάμερα,<br />
30
Κεφάλαιο 4: Βαθμονόμηση της κάμερας<br />
συμπεριλαμβανομένων και των μη γραμμικών όρων, και με τη χρήση μιας επαναληπτικής μεθόδου<br />
ελαχιστοποίησης, βρίσκουμε τις τελικές τιμές για το σύνολο των εσωγενών παραμέτρων του<br />
πλήρους μοντέλου. Επειδή οι επαναληπτικές αυτές μέθοδοι γενικά έχουν πολύ μικρή περιοχή<br />
σύγκλισης, απαιτείται να έχουμε μια αρκετά καλή πρώτη προσέγγιση της λύσης, και αυτό το σκοπό<br />
εξυπηρετεί η λύση που προκύπτει από το πρώτο, γραμμικό στάδιο. Ως πρώτη προσέγγιση των<br />
συντελεστών παραμόρφωσης συνήθως θεωρούμε το μηδέν. Τα δύο παραπάνω στάδια διαφέρουν<br />
και κατά το κριτήριο βελτιστοποίησης που χρησιμοποιούν.<br />
Στη συνέχεια δίνεται μια θεωρητική ανάλυση της μεθόδου του Zhang. Έστω ότι το επίπεδο<br />
το οποίο αποτελεί το πρότυπο βαθμονόμησης είναι το επίπεδο Ζ=0. Τότε η προβολή ενός σημείου<br />
του επιπέδου αυτού στο επίπεδο της φωτογραφίας δίνεται από τη σχέση:<br />
, όπου Α είναι ο πίνακας των εσωγενών παραμέτρων, r i είναι τα διανύσματα<br />
του πίνακα περιστροφής των εξωγενών παραμέτρων και t είναι το διάνυσμα της μετατόπισης<br />
των εξωγενών παραμέτρων. Αν αγνοήσουμε τη μηδενική συντεταγμένη, η παραπάνω σχέση<br />
γίνεται:<br />
(4. 9)<br />
Τα σημεία του επιπέδου του πρότυπου βαθμονόμησης μπορούμε να τα περιγράψουμε με 2<br />
(ευκλείδειες) συντεταγμένες, Μ = [X,Y] T , ή = [Χ,Υ,1] Τ , αν θεωρήσουμε το επίπεδο του<br />
στόχου σαν ένα προβολικό επίπεδο. Γνωρίζουμε ήδη πως κάμερα εκτελεί έναν μετασχηματισμό<br />
από το τρισδιάστατο προβολικό χώρο στον δισδιάστατο προβολικό χώρο του επιπέδου της εικόνας.<br />
Επειδή όμως στη συγκεκριμένη περίπτωση λαμβάνουμε φωτογραφίες ενός επιπέδου, εκτελούμε<br />
έναν μετασχηματισμό από το δισδιάστατο επίπεδο του προτύπου βαθμονόμησης στο επίπεδο της<br />
εικόνας. Ο μετασχηματισμός αυτός περιγράφεται από τον αντιστρέψιμο 3x3 πίνακα:<br />
(4.10)<br />
Δεδομένης μιας εικόνας του επιπέδου βαθμονόμησης και της αντιστοιχίας των<br />
συντεταγμένων των σημείων του επιπέδου αυτού με τις συντεταγμένες των προβολών του στην<br />
εικόνα, μπορούμε να προσδιορίσουμε τον πίνακα Η. Έχουμε λοιπόν γνωστό τον πίνακα Η = [h 1 h 2<br />
h 3 ] και χρησιμοποιώντας τις σχέσεις (4.9) και (4.10) προκύπτει η σχέση<br />
[h 1 h 2 h 3 ] = λΑ[r 1 r 2 t] (4.11)<br />
όπου λ είναι μία αυθαίρετη σταθερά. Χρησιμοποιώντας τις συνθήκες ορθοκανονικότητας των<br />
διανυσμάτων r 1<br />
και r 2<br />
προκύπτουν οι εξής σχέσεις:<br />
(4.12)<br />
31
Κεφάλαιο 4: Βαθμονόμηση της κάμερας<br />
Αυτές οι σχέσεις είναι οι δυο περιορισμοί για τις εσωγενείς παραμέτρους, τους οποίους<br />
μπορούμε να εξάγουμε από μια εικόνα του επιπέδου βαθμονόμησης. Πράγματι, ο προβολικός<br />
μετασχηματισμός Η έχει 8 βαθμούς ελευθερίας, και επομένως από την εύρεση του μπορούν να<br />
προκύψουν 8 περιορισμοί. Οι εξωγενείς παράμετροι έχουν 6 βαθμούς ελευθερίας (3 για την<br />
περιστροφή και 3 για την μετατόπιση) ανά εικόνα, άρα μπορούμε να εξάγουμε μόνο 2<br />
περιορισμούς για τις εσωγενείς παραμέτρους ανά εικόνα.<br />
Αν πάρουμε περισσότερες φωτογραφίες του επιπέδου βαθμονόμησης και<br />
χρησιμοποιήσουμε τις σχέσεις (4.12) και (4.13) μπορούμε να υπολογίσουμε τις εσωγενείς<br />
παραμέτρους α u<br />
, α v<br />
, u 0<br />
, v 0 . Η διαδικασία παρατίθεται στη συνέχεια. Συμβολίζουμε με Β τον πίνακα<br />
Α -Τ Α -1 . Λόγω της φύσης του Α (άνω τριγωνικός), ο Β είναι συμμετρικός και έχει τη μορφή:<br />
(4.14)<br />
Όπως παρατηρούμε από τη σχέση αυτή ο πίνακας Β μπορεί να περιγραφεί από το διάνυσμα<br />
b = [ B 11 , B 12 , B 22 , B 13 , B 23 , B 33 ] T . Τώρα, χρησιμοποιώντας το διάνυσμα αυτό μπορούμε να<br />
γράψουμε τις σχέσεις (4.4) και (4.5) σε μορφή συστήματος γραμμικών εξισώσεων:<br />
(4.15)<br />
όπου v ij = [h i1 h j1 , h i1 h j2 + h i2 h j1 , h i2 h j2 , h i3 h j1 + h i1 h j3 , h i3 h j2 + h i2 h j3 , h i3 h j3 ].<br />
Επομένως, αν έχουμε n εικόνες του επιπέδου, δημιουργούμε ένα σύστημα Vb=0, όπου V<br />
είναι ένας 2n×6 πίνακας. Πρόκειται για ένα υπέρ-ορισμένο σύστημα, του οποίου η βέλτιστη λύση<br />
είναι το ιδιοδιάνυσμα του πίνακα V T V που αντιστοιχεί στην μικρότερη ιδιοτιμή. Έχοντας βρει τα<br />
στοιχεία του πίνακα Β, μπορούμε να βρούμε τις τιμές των εσωγενών παραμέτρων της κάμερας<br />
λύνοντας τη σχέση (4.14).<br />
Στο σημείο αυτό έχουμε ολοκληρώσει το πρώτο στάδιο, και έχουμε την πρώτη προσέγγιση<br />
των εσωγενών παραμέτρων της κάμερας. Στη συνεχεία χρησιμοποιούμε το πλήρες μοντέλο, και<br />
εκτελούμε την ελαχιστοποίηση του συνολικού σφάλματος επαναπροβολής των σημείων, που<br />
δίνεται από τη συνάρτηση:<br />
(4.16)<br />
Στη σχέση αυτή ο δείκτης i αναφέρεται στην εικόνα στην οποία γίνεται η επαναπροβολή,<br />
και ο δείκτης j στο σημείο της εικόνας το οποίο επαναπροβάλλουμε. Η συνάρτηση (4.16) αποτελεί<br />
το άθροισμα των τετράγωνων των ευκλείδειων αποστάσεων των όλων σημείων που μετράμε σε<br />
όλες τις εικόνες από τις προβολές τους στις εικόνες αυτές, οι οποίες υπολογίζονται με βάση τις<br />
υπολογισθείσες παραμέτρους της κάμερας.<br />
Η ελαχιστοποίηση αυτής της συνάρτησης γίνεται με τον αλγόριθμο Levenberg-Marquardt, ο<br />
οποίος έχει δειχθεί ότι έχει την ταχύτερη σύγκλιση. Ωστόσο, εάν επιθυμούμε να επιταχύνουμε<br />
ακόμα περισσότερο την σύγκλιση της μεθόδου, μπορούμε να χρησιμοποιήσουμε καλύτερη αρχική<br />
προσέγγιση για τους συντελεστές παραμόρφωσης, από τη μηδενική που έχουμε ορίσει νωρίτερα.<br />
Η μέθοδος Zhang αποτελεί μια πολύ καλή λύση για τη βαθμονόμηση της κάμεράς μας,<br />
διότι εκτός από τα ικανοποιητικά αποτελέσματα που δίνει ως απόκριση, έχει πολύ απλό σε<br />
κατασκευή πρότυπο βαθμονόμησης.<br />
32
Κεφάλαιο 4: Βαθμονόμηση της κάμερας<br />
4.3 Πειραματική διαδικασία<br />
4.3.1 Τεχνικά χαρακτηριστικά φωτογραφικής μηχανής<br />
Προτού ξεκινήσουμε την επεξήγηση της πειραματικής διαδικασίας, θα δώσουμε τα βασικά<br />
χαρακτηριστικά της κάμερας που χρησιμοποιήσαμε. Το μοντέλο της κάμερας είναι OLYMPUS SP-<br />
510 UltraZoom με τα εξής χαρακτηριστικά:<br />
sensor array CCD 7.1Mpixels<br />
δυνατότητα ανάλυσης σταθερής εικόνας μέχρι 3072 x 2304 pixels RGB, και μέχρι 640 x<br />
480 pixels κινούμενη εικόνα στα 30fps<br />
format εξόδου σταθερής εικόνας: JPEG, RAW<br />
format εξόδου κινούμενης εικόνας: QuickTime Motion JPEG®<br />
φακός: Olympus ED Lens 10X F1:2.8-3.7, εστιακή απόσταση 6.3- 63mm<br />
δυνατότητα auto-focus από 20cm – άπειρο<br />
δυνατότητα ρύθμισης σταθερής απόστασης εστίασης από το χρήστη<br />
δυνατότητα optical zoom έως και 10Χ<br />
δυνατότητα digital zoom έως και 5Χ<br />
Κατά την διεξαγωγή της πειραματικής διαδικασίας, είναι σημαντικό, να διατηρούνται τα<br />
τεχνικά χαρακτηριστικά της κάμερας(εσωγενείς παράμετροι) σταθερά για όλες τις φωτογραφίες<br />
που θα λάβουμε, είτε είναι αυτές για την βαθμονόμηση, είτε οι ακολουθίες από τις οποίες θα βγουν<br />
τα τελικά αποτελέσματα. Αυτή η προϋπόθεση πρέπει να τηρηθεί, διότι σε διαφορετική περίπτωση,<br />
οι παράμετροι της κάμερας που θα προκύψουν από τη βαθμονόμηση που ακολουθεί, θα διαφέρουν<br />
από τις παραμέτρους των άλλων ακολουθιών και δε θα μπορούν να χρησιμοποιηθούν.<br />
4.3.2 Εφαρμογή μεθόδου Zhang και αποτελέσματα<br />
Για το calibration της κάμερας χρησιμοποιήσαμε 6 ζεύγη φωτογραφιών, όπου το<br />
μεγαλύτερο μέρος τους καλύπτεται από μια σκακιέρα. Κάτι τέτοιο το επιδιώκουμε γιατί<br />
προκειμένου να βρούμε τις ενδογενείς και εξωγενείς παραμέτρους της κάμερας χρειαζόμαστε ένα<br />
επίπεδο πρότυπο βαθμονόμησης. Κάθε ζεύγος προκύπτει από την φωτογράφηση της ίδιας σκηνής<br />
2 φορές με τη μια λήψη να διαφέρει της άλλης μόνο κατά μια μετατόπιση d. Η πειραματική<br />
διάταξη που χρησιμοποιήσαμε για να έχουμε τα επιθυμητά αποτελέσματα αποτελείται από έναν<br />
γνώμονα ο οποίος έχει τοποθετηθεί πάνω σε ένα επίπεδο έτσι ώστε να μη μετακινείται, και<br />
ουσιαστικά τελεί χρέη ‘σιδηροδρομικής γραμμής’ πάνω στην οποία κινείται η κάμερά μας. Στην<br />
ουσία προσπαθούμε να προσομοιώσουμε μια στερεοσκοπική φωτογραφική μηχανή. Παρόλα αυτά<br />
δεν μπορούμε να αποτρέψουμε τελείως την εμφάνιση σφαλμάτων, τα οποία κάνουν την εμφάνισή<br />
τους με τη μορφή της περιστροφής της κάμερας.<br />
Για κάθε στερεοσκοπικό ζεύγος η σκακιέρα έχει και διαφορετική θέση στο χώρο. Η λήψη των<br />
εικόνων έγινε με σταθερή εστίαση στο 1m, f 2.8, ISO 50, το white balance παρέμεινε σταθερό,<br />
ενώ η ταχύτητα του κλείστρου ‘παίζει’ μεταξύ 1/6s ή 1/8s. Επίσης όλες οι φωτογραφίες<br />
τραβήχτηκαν με σταθερό zoom (1Χ). Τέλος η απόσταση της κάμερας από την σκακιέρα ήταν<br />
περίπου 1m.<br />
33
Κεφάλαιο 4: Βαθμονόμηση της κάμερας<br />
Σχήμα 4.2: Η ακολουθία εικόνων για τις αριστερές λήψεις<br />
Για την εφαρμογή της μεθόδου του Zhang χρησιμοποιήθηκε ο κώδικας του J. Y. Bouguet, o<br />
οποίος διατίθεται στο Internet. Οι φωτογραφίες που χρησιμοποιήσαμε παρουσιάζονται στις<br />
εικόνες, όπου έχουν χωριστεί σε δύο ακολουθίες των 6 φωτογραφιών, και αποτελούνται από τις<br />
αριστερές λήψεις (σχ. 4.2) και από τις δεξιές (σχ. 4.3):<br />
Σχήμα 4.3: Η ακολουθία εικόνων για τις δεξιές λήψεις<br />
34
Κεφάλαιο 4: Βαθμονόμηση της κάμερας<br />
Αρχικά τρέχουμε τον αλγόριθμο για την πρώτη ακολουθία φωτογραφιών. Το πρώτο βήμα<br />
είναι ο ορισμός του παραθύρου των pixels γύρω από την αρχική προσέγγιση. Το παράθυρο αυτό<br />
χρησιμοποιείται από τον Harris corner detector για να εντοπίζονται οι γωνίες με μεγαλύτερη<br />
ακρίβεια. Στο συγκεκριμένο πείραμα ορίσαμε παράθυρο 21x21 pixels. Στη συνέχεια και αφού<br />
επιλέξαμε την χειροκίνητη εισαγωγή του αριθμού των τετραγώνων της σκακιέρας, ορίσαμε τα<br />
τέσσερα ακραία σημεία του πλέγματος. Τέλος, τα τελευταία δεδομένα που έπρεπε να εισάγουμε<br />
στον αλγόριθμο προκειμένου ο Ηarris corner detector να εντοπίσει τις γωνίες ήταν ο αριθμός των<br />
τετραγώνων στον άξονα X (14), ο αριθμός των τετραγώνων στον άξονα Y (13), αλλά και το μήκος<br />
σε mm των πλευρών των τετραγώνων ( 33 mm και κατά μήκος του X και κατά μήκος του Y).<br />
Παρατηρήστε πως τα 33 mm, δηλαδή το μήκος των πλευρών των τετραγώνων είναι το μοναδικό<br />
πραγματικό μέγεθος το οποίο ‘δίνουμε’ στον αλγόριθμο.<br />
Αξιοσημείωτο είναι ότι χρειάστηκαν αρκετές δοκιμές ώστε να καταλήξουμε στον<br />
κατάλληλο παράγοντα παραμόρφωσης kc καθώς η αυτόματη εξαγωγή γωνιών στη σκακιέρα, έδινε<br />
λανθασμένες γωνίες. Ορίζαμε κάθε φορά το κατάλληλο kc όταν μας δινόταν η παρακάτω επιλογή:<br />
και ο αλγόριθμος εξήγαγε τελικά τις σωστές γωνίες (σχήμα 4.4)<br />
Σχήμα 4.4 Εξαγωγή γωνιών<br />
Αφού ακολουθήσαμε την ίδια διαδικασία για το υπόλοιπο σετ των αριστερών φωτογραφιών<br />
και εξάγαμε τις γωνίες του προτύπου βαθμονόμησης, εκτελούμε τον αλγόριθμο εύρεσης των<br />
παραμέτρων τις κάμερας. Αυτός μετά από ένα στάδιο αρχικοποίησης εκτελεί μια επαναληπτική<br />
ελαχιστοποίηση με τον αλγόριθμο του Newton. Προκειμένου να έχουμε καλύτερα αποτελέσματα<br />
για το calibration εκτελούμε τον αλγόριθμο για επαναϋπολογισμό των γωνιών και αυτή τη φορά<br />
ορίζουμε ένα μικρότερο παράθυρο pixels, έστω 7x7. Ξανατρέχουμε τον αλγόριθμο εύρεσης των<br />
παραμέτρων και έχουμε τα εξής αποτελέσματα:<br />
35
Κεφάλαιο 4: Βαθμονόμηση της κάμερας<br />
CALIBRATION RESULTS FOR LEFT IMAGES (AFTER RECOMP.CORNERS)<br />
Calibration results after optimization (with uncertainties):<br />
Focal Length: fc =[ 3847.83474 3840.61655 ]±[ 693.48366 692.69112 ]<br />
Principal point: cc =[ 1549.51770 1204.16545 ]±[ 50.59710 47.10508 ]<br />
Skew: alpha_c = [ 0.00000 ] ± [ 0.00000 ] => angle of pixel axes =<br />
90.00000 ± 0.00000 degrees<br />
Distortion: kc = [ -0.28276 0.50952 -0.00474 0.00093<br />
0.00000 ] ± [ 0.10593 0.43239 0.00322 0.00290 0.00000 ]<br />
Pixel error: err = [ 0.80407 0.91700 ]<br />
Όπως έχει αναφερθεί σε προηγούμενο κεφάλαιο, το διάνυσμα fc περιέχει τις ποσότητες α u<br />
και α v του μοντέλου, το διάνυσμα kc περιέχει κατά σειρά τους όρους k 1 ,k 2 p 1 ,p 2 ,k 3 και το<br />
διάνυσμα err περιέχει την τυπική απόκλιση του σφάλματος επαναπροβολής στο οριζόντιο και τον<br />
κατακόρυφο άξονα της εικόνας σε pixels. Επίσης εμφανίζονται και οι τυπικές αποκλίσεις των<br />
παραμέτρων που υπολογίστηκαν. Τα παραπάνω αποτελέσματα προκύπτουν χρησιμοποιώντας το<br />
μοντέλο του Heikkilä με δύο όρους ακτινικής και δύο όρους εφαπτομενικής παραμόρφωσης. Η<br />
παραμόρφωση της εικόνας για αυτό το μοντέλο φαίνεται στο παρακάτω γράφημα:<br />
36<br />
Σχήμα 4.5: Η παραμόρφωση της εικόνας<br />
Από το παραπάνω σχήμα παρατηρούμε πως η παραμόρφωση μπορεί να φτάσει μέχρι και<br />
τα 40 pixels στην άκρη της φωτογραφίας, επομένως είναι αρκετά μεγάλη για να την αγνοήσουμε.<br />
Το πόσο επηρεάζει η παραμόρφωση τις φωτογραφίες γίνεται αντιληπτό από την παρακάτω<br />
συνδυαστική εικόνα:
Κεφάλαιο 4: Βαθμονόμηση της κάμερας<br />
Σχήμα 4.6 Η αρχική (άσπρη απόχρωση) σε σχέση με την undistorted (μπλε απόχρωση) εικόνα<br />
Στη συνέχεια, κάναμε ‘undistortion’ σε όλες τις εικόνες. Διορθώσαμε δηλαδή μέσω του<br />
Matlab τις παραμορφώσεις του φακού και επαναλάβαμε τη διαδικασία που προαναφέρθηκε με τις<br />
νέες undistorted εικόνες. Ουσιαστικά πλέον ο φακός θα πρέπει να λειτουργήσει σαν τέλειος, χωρίς<br />
παραμορφώσεις και να έχει καλύτερα αποτελέσματα στο στάδιο του calibration. Οι νέες αριστερές<br />
εικόνες συγκεντρώνονται στο παρακάτω σχήμα:<br />
Σχήμα 4.7 Undistorted εικόνες για την αριστερή ακολουθία<br />
37
Κεφάλαιο 4: Βαθμονόμηση της κάμερας<br />
Η μόνη διαφορά με την προηγούμενη πειραματική διαδικασία είναι ότι ο αλγόριθμος<br />
εξάγει σωστά τις γωνίες χωρίς να χρειάζεται να επαναϋπολογίζουμε κάθε φορά το kc. Αυτό είναι<br />
λογικό αφού πλέον δεν υπάρχουν παραμορφώσεις στις εικόνες. Τα πρώτα αποτελέσματα για το<br />
calibration είναι τα ακόλουθα:<br />
FIRST CALIBRATION WITH UNDISTORTED LEFT IMAGES (21x21)<br />
Calibration results after optimization (with uncertainties):<br />
Focal Length: fc = [ 4546.91778 4538.96314 ]±[ 1026.41070 1024.77291 ]<br />
Principal point: cc = [ 1590.65884 1240.82609 ]±[ 96.92473 91.96643 ]<br />
Skew: alpha_c = [ 0.00000 ] ± [ 0.00000 ] => angle of pixel axes =<br />
90.00000 ± 0.00000 degrees<br />
Distortion: kc = [ 0.00925 -0.04406 0.00033 -0.00028 0.00000 ] ± [<br />
0.01885 0.21903 0.00105 0.00097 0.00000 ]<br />
Pixel error: err = [ 0.69144 0.78515 ]<br />
Αφού τρέξουμε τον αλγόριθμο του Newton με ίδιο παράθυρο όπως και προηγουμένως (7x7)<br />
Το νέο calibration, το οποίο αποτελεί και το τελικό αποτέλεσμα είναι το ακόλουθο:<br />
FINAL CALIBRATION WITH UNDISTORTED LEFT IMAGES AFTER RECOMP (7x7)<br />
Calibration results after optimization (with uncertainties):<br />
Focal Length: fc = [ 4368.77069 4360.72881 ]±[ 1257.38470 1254.84129 ]<br />
Principal point: cc = [ 1583.20660 1232.86943 ]±[ 112.36782 110.79408 ]<br />
Skew: alpha_c = [ 0.00000 ] ± [ 0.00000 ] => angle of pixel axes =<br />
90.00000 ± 0.00000 degrees<br />
Distortion: kc = [ 0.00128 -0.01390 -0.00004 0.00003 0.00000 ] ± [<br />
0.02034 0.22090 0.00117 0.00109 0.00000 ]<br />
Pixel error: err = [ 0.83156 0.92364 ]<br />
38<br />
Σχήμα4.8: Η παραμόρφωση της εικόνας μετά το calibration για τις undistorted αριστερές εικόνες
Κεφάλαιο 4: Βαθμονόμηση της κάμερας<br />
Παρατηρούμε ότι το focal length είναι αρκετά κοντά στο πραγματικό, αφού εκφρασμένο σε<br />
εκατοστά είναι fc ≈ 115.6 cm. Θυμίζουμε ότι εμείς έχουμε ορίσει την κάμερα χειροκίνητα να<br />
εστιάζει στο 1m. Το pixel error είναι αποδεκτό αφού είναι μικρότερο από 1 pixel. Το alpha_c είναι<br />
εξ’ ορισμού 0, αφού οι άξονες των pixel είναι κάθετοι μεταξύ τους. Αν θεωρήσουμε ως πραγματικό<br />
principal point το κέντρο του φακού, αυτό θα είναι το cc = (1536 , 1152) πολύ κοντά στο principal<br />
point που υπολογίστηκε παραπάνω. Τέλος, ο συντελεστής παραμόρφωσης kc είναι πολύ κοντά στο<br />
μηδέν και πολύ μικρότερος από το calibration που έγινε χωρίς τις undistorted εικόνες, το οποίο<br />
είναι λογικό, αφού ο φακός είναι πλέον χωρίς παραμορφώσεις. Αυτό απεικονίζεται στο νέο γράφημα<br />
οπτικοποίησης των παραμορφώσεων του φακού (σχήμα 4.8).<br />
Ακολουθώντας όλη την προηγούμενη διαδικασία και για το σετ των δεξιών φωτογραφιών<br />
(σχ. 4.9) προέκυψαν τα αποτελέσματα που παρουσιάζονται στη συνέχεια.<br />
Σχήμα 4.9: Ακολουθία δεξιών εικόνων<br />
FINAL CALIBRATION WITH UNDISTORTED RIGHT IMAGES AFTER RECOMP<br />
Calibration results after optimization (with uncertainties):<br />
Focal Length: fc = [ 4789.53269 4793.91952 ] ± [ 876.98378 878.84938]<br />
Principal point:cc = [ 1703.60277 1163.16496 ] ± [ 91.44800 78.43299 ]<br />
Skew: alpha_c = [ 0.00000 ] ± [ 0.00000 ] => angle of pixel axes =<br />
90.00000 ± 0.00000 degrees<br />
Distortion: kc = [ 0.02962 -0.47058 -0.00050 0.00015 0.00000 ] ±<br />
[ 0.02113 0.33062 0.00120 0.00118 0.00000 ]<br />
Pixel error: err = [ 0.76224 0.94100 ]<br />
Παρατηρούμε ότι και για αυτή την ακολουθία εικόνων το focal length είναι αρκετά κοντά<br />
στο πραγματικό, αφού εκφρασμένο σε εκατοστά είναι fc ≈ 142.7 cm. Το pixel error είναι αποδεκτό<br />
αφού είναι μικρότερο από 1 pixel. Το alpha_c και το principal point είναι σταθερά και όπως και<br />
πριν υπολογίστηκαν πολύ κοντά στις πραγματικές τιμές. Εδώ, ο συντελεστής παραμόρφωσης kc<br />
είναι κοντά στο μηδέν, όχι όμως όσο στην ακολουθία των αριστερών φωτογραφιών αλλά και πάλι<br />
μικρότερος από το calibration που έγινε χωρίς τις undistorted εικόνες. Η συνολική παραμόρφωση<br />
οπτικοποιείται στο παρακάτω σχήμα 4.10:<br />
39
Κεφάλαιο 4: Βαθμονόμηση της κάμερας<br />
Σχήμα4.10: Η παραμόρφωση της εικόνας μετά το calibration για τις undistorted δεξιές εικόνες<br />
4.3.3 Strereo calibration<br />
Το επόμενο βήμα στη διαδικασία της βαθμονόμησης της κάμερας είναι το stereo calibration.<br />
Η διαδικασία αυτή γίνεται χρησιμοποιώντας τις παραμέτρους που έχουμε ήδη βρει για τις δύο<br />
ακολουθίες φωτογραφιών. Οι παράμετροι αυτές είναι αποθηκευμένες στα δύο αρχεία<br />
Calib_Results_left.mat και Calib_Results_right.mat. Κάνοντας load των δύο αρχείων που είπαμε<br />
έχουμε μια πρώτη εκτίμηση και των εξωγενών παραμέτρων και πιο συγκεκριμένα της σχετικής<br />
θέσης της δεξιάς κάμερας ως προς την αριστερή:<br />
Extrinsic parameters (position of right camera wrt left camera):<br />
Rotation vector: om = [ 0.00554 -0.00659 0.00033 ]<br />
Translation vector: t = [ -74.63363 23.30813 111.35501 ]<br />
Παρατηρούμε πως, με την πειραματική διάταξη που έχουμε κατασκευάσει αν και<br />
επιθυμούμε να έχουμε μόνο μετατόπιση της κάμερας, υπεισέρχεται και περιστροφή. Παρόλα αυτά<br />
το διάνυσμα της περιστροφής είναι πολύ κοντά στο μηδέν.<br />
Εισάγοντας την εντολή R = rodrigues(om), παίρνουμε τον πίνακα περιστροφής R 3x3,ο<br />
οποίος προέκυψε από το διάνυσμα περιστροφής om και είναι ο εξής:<br />
1.0000 -0.0003 -0.0066<br />
R = 0.0003 1.0000 -0.0055<br />
0.0066 0.0055 1.0000<br />
40
Κεφάλαιο 4: Βαθμονόμηση της κάμερας<br />
Στη συνέχεια υπολογίσαμε τον 3x3 αντισυμμετρικό πίνακα Τ, ο οποίος έχει την ιδιότητα<br />
για κάθε διάνυσμα x. Ο πίνακας αυτός δίνεται από τη σχέση :<br />
(4.10)<br />
όταν έχουμε t = [t 1 t 2 t 3 ]. Στη συγκεκριμένη περίπτωση με<br />
ο πίνακας Τ είναι ο εξής:<br />
t = [ -74.63363 23.30813 111.35501 ]<br />
0 -111.3550 23.3081<br />
Τ = 111.3550 0 74.6336<br />
-23.3081 -74.6336 0<br />
Αφού γνωρίζουμε τους πίνακες R και Τ μπορούμε να υπολογίσουμε τον πίνακα Ε=ΤR , ο<br />
οποίος ονομάζεται essential πίνακας και περιγράφει την επιπολική γεωμετρία της διάταξης των<br />
δύο καμερών. Ο πίνακας αυτός, μαζί με την επιπολική γεωμετρία των εικόνων θα παρουσιαστούν<br />
αναλυτικά στο κεφάλαιο 6. O essential πίνακας είναι ο εξής:<br />
0.1195 -111.2241 23.9248<br />
E = 111.8446 0.3755 73.8969<br />
-23.3305 -74.6245 0.5675<br />
Στη συνέχεια υπολογίζουμε τις συνδυασμένες εξωγενείς παραμέτρους, κρατώντας τις<br />
εσωγενείς σταθερές, καθώς υπήρχε μεγάλο σφάλμα κατά τη διάρκεια του επαναϋπολογισμού τους<br />
στο stereo calibration. Το αποτέλεσμα που πήραμε είναι το ακόλουθο:<br />
Intrinsic parameters of left camera:<br />
Focal Length:fc_left = [ 4368.77069 4360.72881 ] ± [ 0.00000 0.00000 ]<br />
Principal point: cc_left = [ 1583.20660 1232.86943 ]<br />
± [ 0.00000 0.00000 ]<br />
Skew: alpha_c_left = [ 0.00000 ] ± [ 0.00000 ] => angle of pixel<br />
axes = 90.00000 ± 0.00000 degrees<br />
Distortion:kc_left = [ 0.00128 -0.01390 -0.00004 0.00003 0.00000 ]<br />
± [ 0.00000 0.00000 0.00000 0.00000 0.00000 ]<br />
Intrinsic parameters of right camera:<br />
Focal Length:fc_right = [ 4789.53269 4793.91952 ] ± [ 0.00000 0.00000]<br />
Principal point: cc_right = [ 1703.60277 1163.16496 ]<br />
± [ 0.00000 0.00000 ]<br />
Skew: alpha_c_right = [ 0.00000 ] ± [ 0.00000 ] => angle of pixel<br />
axes = 90.00000 ± 0.00000 degrees<br />
Distortion:kc_right = [0.02962 -0.47058 -0.00050 0.00015 0.00000 ]<br />
± [ 0.00000 0.00000 0.00000 0.00000 0.00000 ]<br />
41
Κεφάλαιο 4: Βαθμονόμηση της κάμερας<br />
Extrinsic parameters (position of right camera wrt left camera):<br />
Rotation vector:om=[0.00513 -0.00552 0.00034 ]±[0.00134 0.00143 0.00018]<br />
Translation vector:t=[-75.95989 22.71161 111.28392 ]±[1.70575 1.60308<br />
0.21372 ]<br />
Μετά τον υπολογισμού των εξωγενών παραμέτρων, οι νέοι πίνακες που προκύπτουν είναι οι<br />
ακόλουθοι:<br />
1.0000 -0.0004 -0.0055<br />
R= 0.0003 1.0000 -0.0051<br />
0.0055 0.0051 1.0000<br />
0 -111.2839 22.7116<br />
T= 111.2839 0 75.9599<br />
-22.7116 -75.9599 0<br />
0.0888 -111.1660 23.2817<br />
E = 111.7017 0.3497 75.3434<br />
-22.7362 -75.9508 0.5150<br />
Από τα αποτελέσματα του stereo calibration βλέπουμε ότι οι εξωγενείς παράμετροι<br />
υπολογίστηκαν με ικανοποιητική ακρίβεια, αφού ο πίνακας περιστροφής R είναι κοντά στο μηδέν,<br />
αλλά η μετατόπιση T στον άξονα των x υπολογίστηκε περίπου 2 cm, ενώ πραγματικά είναι<br />
περίπου 5cm. Το γράφημα (σχήμα4.11) δείχνει τη σχετική θέση των δύο καμερών στο χώρο με<br />
βάση τους πειραματικούς υπολογισμούς. Είναι φανερό το σφάλμα που έχει εισαχθεί στους<br />
αλγορίθμους, αφού κανονικά έπρεπε τα επίπεδα των δύο καμερών να είναι υποσύνολο του ίδιου<br />
επιπέδου. Οι κάμερες δηλαδή θα έπρεπε να παρουσιάζονται παράλληλες.<br />
Σχήμα 4.11: Σχετική θέση των καμερών στο χώρο και οι εξωγενείς παράμετροι<br />
42
Κεφάλαιο 4: Βαθμονόμηση της κάμερας<br />
4.3.4 Πώς οι παραμορφώσεις του φακού επηρεάζουν τις εσωγενείς παραμέτρους<br />
Αξίζει να αναφέρουμε ότι ο αλγόριθμος για την εύρεση των παραμέτρων μας παρέχει την<br />
δυνατότητα να ορίζουμε ποιους όρους της ακτινικής και της εφαπτομενικής παραμόρφωσης θα<br />
χρησιμοποιήσουμε. Έτσι μπορούμε να έχουμε από κανέναν μέχρι τρεις όρους ακτινικής<br />
παραμόρφωσης και από κανένα μέχρι δύο όρους εφαπτομενικής παραμόρφωσης. Επίσης μας<br />
παρέχεται η δυνατότητα να χρησιμοποιούμε ή όχι συντελεστή λοξότητας.<br />
Οι παραμορφώσεις του φακού είναι σημαντικό πρόβλημα, αφού επηρεάζουν τα<br />
αποτελέσματα των εσωγενών παραμέτρων. Μπορούμε όμως να περιορίσουμε το λάθος<br />
ρυθμίζοντας τόσο την κάθε συνιστώσα της παραμόρφωσης ξεχωριστά όσο και συνδυαστικά μέχρι<br />
να φτάσουμε σε ένα ικανοποιητικό, αποδεκτό πλέον σφάλμα επαναπροβολής. Σε αυτή την ενότητα<br />
θα δούμε πρακτικά πώς επηρεάζονται, τα αποτελέσματα του calibration για τις εσωγενείς<br />
παραμέτρους. Το παράδειγμα που ακολουθεί είναι για διαφορετικό σύνολο εικόνων από αυτή που<br />
περιγράψαμε μέχρι τώρα:<br />
Σχήμα 4.12: Οι φωτογραφίες που χρησιμοποιήθηκαν για την πειραματική διαδικασία του undistortion<br />
Ακολουθήσαμε όλη τη διαδικασία για το calibration όπως περιγράφτηκε στην προηγούμενη<br />
υποενότητα και είχαμε τα εξής αποτελέσματα:<br />
Calibration results after optimization (with uncertainties):<br />
Focal Length:fc = [3209.35240 3209.75376 ] ± [ 601.71889 602.89696 ]<br />
Principal point:cc= [ 1526.54848 1108.81584 ]±[ 50.18529 14.62244 ]<br />
Skew: alpha_c = [ 0.00000 ] ± [ 0.00000 ] => angle of pixel<br />
axes = 90.00000 ± 0.00000 degrees<br />
Distortion: kc = [ -0.19056 0.38040 0.00077 0.00092 0.00000 ]<br />
± [ 0.07658 0.33735 0.00096 0.00197 0.00000 ]<br />
Pixel error: err = [ 1.00256 0.92543 ]<br />
43
Κεφάλαιο 4: Βαθμονόμηση της κάμερας<br />
Στη συνέχεια κάναμε διάφορες δοκιμές με τους συντελεστές παραμόρφωσης έτσι ώστε να<br />
καταλήξουμε στο μοντέλο που δίνει τις ΄΄καλύτερες τιμές΄΄. Χρησιμοποιώντας το μοντέλο και με<br />
συντελεστή λοξότητας και με ακτινική παραμόρφωση 6 ης τάξης( est_alpha = 1; est_dist =<br />
[1;1;1;1;1]; ) έχουμε:<br />
Calibration results after optimization (with uncertainties):<br />
Focal Length: fc =[ 3194.71818 3195.08906 ]±[ 598.93318 600.12607 ]<br />
Principal point: cc =[ 1529.00007 1091.42996 ]±[ 49.52660 19.02345 ]<br />
Skew: alpha_c = [ 0.00047 ] ± [ 0.00034 ] => angle of pixel axes =<br />
89.97327 ± 0.01949 degrees<br />
Distortion: kc = [ -0.18770 0.37102 0.00111 0.00072 -0.01195 ]<br />
± [ 0.07967 0.41702 0.00100 0.00197 0.72451 ]<br />
Pixel error: err = [ 1.00022 0.92135 ]<br />
Παρατηρούμε ότι το σφάλμα επαναπροβολής είναι ελάχιστα βελτιωμένο, ενώ και οι<br />
αβεβαιότητες των παραμέτρων έχουν ελάχιστες διαφορές, εκτός από την αβεβαιότητα του cc(2)<br />
που έχει αυξηθεί αρκετά. Επίσης οι αβεβαιότητες του πρώτου και δεύτερου όρου της ακτινικής και<br />
του πρώτου όρου της εφαπτομενικής παραμόρφωσης έχουν αυξηθεί. Τέλος η τιμή του συντελεστή<br />
λοξότητας είναι πολύ μικρή, και συνεπώς η εισαγωγή αυτής της παραμέτρου δεν βελτιώνει την<br />
ακρίβεια του μοντέλου. Συμπεραίνουμε λοιπόν, πως χρησιμοποιώντας αυτό το μοντέλο δεν<br />
κερδίζουμε, ουσιαστικά, σε ακρίβεια και επιπρόσθετα έχει μεγαλύτερη πολυπλοκότητα στους<br />
υπολογισμούς.<br />
Το τρίτο μοντέλο που δοκιμάζουμε είναι αυτό που περιέχει μόνο ένα συντελεστή<br />
παραμόρφωσης , αυτόν της ακτινικής παραμόρφωσης δεύτερης τάξης ( est_alpha = 0; est_dist =<br />
[1;0;0;0;0]; ). Τα αποτελέσματα που προκύπτουν είναι τα εξής:<br />
Calibration results after optimization (with uncertainties):<br />
Focal Length: fc =[ 3583.14394 3584.92389 ]±[ 301.13865 301.58100 ]<br />
Principal point: cc =[ 1568.07442 1106.58376 ]±[ 27.64751 16.22897 ]<br />
Skew: alpha_c = [ 0.00000 ] ± [ 0.00000 ] => angle of pixel<br />
axes = 90.00000 ± 0.00000 degrees<br />
Distortion: kc =[ -0.14573 0.00000 0.00000 0.00000 -0.00000 ]<br />
± [ 0.02618 0.00000 0.00000 0.00000 0.00000 ]<br />
Pixel error: err = [ 1.16453 1.00815 ]<br />
Σε αυτό το μοντέλο παρατηρούμε πως το σφάλμα επαναπροβολής είναι αρκετά αυξημένο,<br />
συνέπεια της μικρότερης δυνατότητας προσαρμογής του μοντέλου στα δεδομένα. Επίσης<br />
παρατηρούμε πως το principal point (cc) έχει μεταβληθεί σημαντικά. Συνεπώς, καταλήγουμε στο<br />
ότι ούτε αυτό το μοντέλο κρίνεται ικανοποιητικό.<br />
Το τελευταίο μοντέλο που δοκιμάζουμε είναι αυτό με δύο όρους ακτινικής παραμόρφωσης<br />
αλλά καθόλου εφαπτομενική παραμόρφωση ( est_alpha = 0; est_dist = [1;1;0;0;0]; ) και έχουμε<br />
σαν αποτέλεσμα:<br />
Calibration results after optimization (with uncertainties):<br />
Focal Length: fc=[ 3387.54473 3388.62570 ]±[ 289.29211 289.55850 ]<br />
Principal point: cc=[ 1544.74212 1114.66310 ]±[ 21.07329 13.22697 ]<br />
Skew: alpha_c = [ 0.00000 ] ± [ 0.00000 ] => angle of pixel axes =<br />
90.00000 ± 0.00000 degrees<br />
Distortion: kc = [ -0.21421 0.49990 0.00000 0.00000 -0.00000 ]<br />
± [ 0.03982 0.19335 0.00000 0.00000 0.00000 ]<br />
Pixel error: err = [ 1.00525 0.92568 ]<br />
44
Κεφάλαιο 4: Βαθμονόμηση της κάμερας<br />
Για το τελευταίο μοντέλο παρατηρούμε πως το σφάλμα επαναπροβολής είναι ελαφρά<br />
βελτιωμένο. Επίσης, παρατηρούμε πως έχουμε μια σημαντική μείωση σε όλες τις αβεβαιότητες.<br />
Συμπερασματικά λοιπόν, μπορούμε να πούμε πως το μοντέλο με δύο όρους ακτινικής<br />
παραμόρφωσης και καθόλου εφαπτομενική μας δίνει τα καλύτερα αποτελέσματα στο συγκεκριμένο<br />
σετ φωτογραφιών. Οπτικά η διόρθωση της παραμόρφωσης για το συγκεκριμένο σετ εικόνων<br />
δίνεται στα ακόλουθα σχήματα:<br />
Σχήμα 4.13: Αρχική εικόνα με παραμορφώσεις του φακού- η ευθεία δεν είναι απόλυτα ευθυγραμμισμένη με την<br />
πραγματική ευθεία της εικόνας<br />
45
Κεφάλαιο 4: Βαθμονόμηση της κάμερας<br />
Σχήμα 4.13: Διορθωμένη (undistorted) εικόνα χωρίς τις παραμορφώσεις του φακού- η ευθεία πλέον είναι<br />
απόλυτα ευθυγραμμισμένη με την πραγματική ευθεία της εικόνας.<br />
46
Κεφάλαιο 5: Εντοπισμός γωνιών και αντιστοίχηση σημείων ενδιαφέροντος στις εικόνες<br />
Κεφάλαιο 5: Εντοπισμός γωνιών και αντιστοίχηση σημείων<br />
ενδιαφέροντος στις εικόνες<br />
5.1 Εισαγωγή<br />
Πολλές εφαρμογές απαιτούν τη συσχέτιση δύο ή περισσότερων εικόνων, για να εξάγουν<br />
πληροφορίες από αυτές. Για παράδειγμα, αν είναι δυνατόν να συσχετίσουμε δύο διαδοχικά καρέ, σε<br />
μία ακολουθία βίντεο που λαμβάνονται με κινούμενη κάμερα, τότε μπορούμε να εξάγουμε<br />
πληροφορίες σχετικά με το βάθος των αντικειμένων που απεικονίζονται στο περιβάλλον καθώς και<br />
την ταχύτητα της κάμερας. Το να συγκρίνουμε κάθε pixel ξεχωριστά, είναι απαγορευτικό από<br />
υπολογιστικής άποψης για την πλειοψηφία των εφαρμογών. Διαισθητικά, κάποιος θα μπορούσε να<br />
αντιστοιχίσει στις δύο εικόνες σημεία που θεωρεί ‘ενδιαφέροντα’. Αυτά τα σημεία, που<br />
αναφέρονται ως σημεία ενδιαφέροντος, εντοπίζονται χρησιμοποιώντας έναν ‘ανιχνευτή’. Η εύρεση<br />
μεταξύ της σχέσης των σημείων στις δύο εικόνες, προκύπτει από τη χρήση μόνο αυτών των<br />
εντοπισμένων σημείων, με συνέπεια να μειώνεται αισθητά ο απαιτούμενος χρόνος υπολογισμού.<br />
Πολλοί διαφορετικοί ανιχνευτές σημείων ενδιαφέροντος έχουν προταθεί με ένα ευρύ φάσμα<br />
ορισμών για το ποια σημεία σε μία εικόνα χαρακτηρίζονται ‘ενδιαφέροντα’. Μερικοί ανιχνευτές<br />
βρίσκουν σημεία υψηλής τοπικής συμμετρίας, άλλοι βρίσκουν περιοχές με πολυποίκιλη υφή, ενώ<br />
άλλοι εντοπίζουν γωνίες. Τα γωνιακά σημεία είναι ενδιαφέροντα, καθώς σχηματίζονται από δύο η<br />
περισσότερες άκρες ή ακμές που συνήθως καθορίζουν τα όρια ανάμεσα σε δύο διαφορετικά<br />
αντικείμενα ή τμήματα των ίδιων αντικειμένων. Οι ανιχνευτές δεν είναι τίποτα παραπάνω από<br />
αλγορίθμους ενώ τα σημεία ενδιαφέροντος είναι γνωστά και ως ‘γωνίες’.<br />
Ο όρος ‘γωνία’ στην προκειμένη περίπτωση δε συμπίπτει απαραίτητα με τις φυσικές γωνίες<br />
των αντικειμένων που απεικονίζονται στις φωτογραφίες. Ο όρος σχετίζεται με τη φωτεινότητα της<br />
εικόνας, ως συνάρτησης δύο μεταβλητών και γενικά δηλώνει σημεία επί της εικόνας, στα οποία η<br />
καμπυλότητα της συνάρτησης φωτεινότητας, αποκτά ένα τοπικό μέγιστο. Τα σημεία αυτά είναι<br />
δυνατόν να αντιστοιχούν στις προβολές επί της εικόνας τόσο των πραγματικών γωνιών των<br />
αντικειμένων, όσο και σημείων σε περιοχές με έντονη υφή.<br />
Στο χώρο του computer vision υπάρχουν πολλοί αλγόριθμοι διαθέσιμοι για τον εντοπισμό<br />
γωνιών σε εικόνες οι οποίοι χωρίζονται στις ακόλουθες κατηγορίες:<br />
<br />
<br />
<br />
Μορφολογικοί: Πρώτα γίνεται εξαγωγή των ακμών στην εικόνα και μετά βάσει<br />
μορφολογικών μεθόδων, εντοπίζονται οι γωνίες. Οι αλγόριθμοι αυτοί προαπαιτούν γνώση<br />
της μορφολογίας της εικόνας και συγκεκριμένα των χαρακτηριστικών των ακμών της. Στην<br />
παρούσα εργασία τα χαρακτηριστικά του περιβάλλοντος θεωρούνται άγνωστα με συνέπεια<br />
να μην μπορούμε να εφαρμόσουμε μορφολογικούς αλγορίθμους για την επίλυση του<br />
συγκεκριμένου προβλήματος.<br />
Template-based: Χρησιμοποιούν προκαθορισμένα πρότυπα γωνιών και προσπαθούν να<br />
εντοπίσουν τα σημεία της εικόνας τα οποία ταιριάζουν 'μορφολογικά' με αυτά τα πρότυπα.<br />
Και αυτοί οι αλγόριθμοι προϋποθέτουν γνώση των χαρακτηριστικών της εικόνας, οπότε δεν<br />
είναι αποδοτικοί στο παρόν πρόβλημα.<br />
Signal-based: Οι αλγόριθμοι αυτής της κατηγορίας χειρίζονται την εικόνα ως μια<br />
συνάρτηση φωτεινότητας δυο διαστάσεων και χρησιμοποιούν τις παραγώγους της, για να<br />
βρουν τις γωνίες της. Είναι από τις πιο αποδοτικές μεθόδους στην εύρεση των σημείων<br />
ενδιαφέροντος στην τρισδιάστατη αναπαράσταση του χώρου. Ο Harris Corner Detector<br />
ανήκει σε αυτήν την κατηγορία και είναι αυτός που χρησιμοποιούμε στο συγκεκριμένο<br />
πρόβλημα.<br />
47
Κεφάλαιο 5: Εντοπισμός γωνιών και αντιστοίχηση σημείων ενδιαφέροντος στις εικόνες<br />
Σχήμα 5.1: Χρονοδιάγραμμα διαφόρων αλγορίθμων εντοπισμού γωνιών<br />
Αξιοσημείωτο είναι ότι το πιο αδύναμο σημείο της τρισδιάστατης ανακατασκευής του<br />
χώρου, είναι η αντιστοίχηση γωνιών ανάμεσα στις εικόνες. Αυτό συμβαίνει γιατί στις εικόνες<br />
υπάρχουν πολλές επαναλαμβανόμενες δομές καθώς και μικρές ‘όμοιες’ περιοχές στις εικόνες, με<br />
αποτέλεσμα να αναγνωρίζονται πολλές ανύπαρκτες ουσιαστικά γωνίες. Αυτό οδηγεί και σε πολλές<br />
λανθασμένες αντιστοιχίσεις σημείων. Για την ώρα, δεν υπάρχει καμία μέθοδος που να εγγυάται ότι<br />
δε θα υπάρξουν λάθη κατά την αντιστοίχηση. Αυτά θα αναλυθούν στην υποενότητα 5.5.<br />
5.2Κριτήρια επιλογής αλγορίθμου εντοπισμού γωνιών<br />
Είναι επιθυμητό για έναν ανιχνευτή γωνίας να ικανοποιεί μια σειρά κριτηρίων:<br />
1. Όλες οι ‘πραγματικές γωνίες’ να ανιχνεύονται.<br />
2. Να μην ανιχνεύεται "ψευδής γωνία».<br />
3. Τα γωνιακά σημεία να εντοπίζονται καλά.<br />
4. Να έχει ένα υψηλό ποσοστό επαναληψιμότητας (καλή ευστάθεια).<br />
5. Να είναι σθεναρός στο θόρυβο.<br />
6. Να είναι υπολογιστικά αποδοτικός.<br />
7. Αν δύο ή περισσότερες εικόνες, απεικονίζουν το ίδιο αντικείμενο από ελαφρά διαφορετικές<br />
θέσεις, θα πρέπει οι ίδιες γωνίες που ανιχνεύονται στη μία εικόνα, να ανιχνεύονται και στις<br />
υπόλοιπες.<br />
Στην παρούσα εργασία, θέλουμε να αντιστοιχήσουμε τις γωνίες που απεικονίζουν το ίδιο<br />
σημείο του αντικειμένου. Υπάρχουν πολλοί αλγόριθμοι για τον εντοπισμό των γωνιών, όμως ο<br />
καθένας υπερισχύει σε κάποιο από τα παραπάνω κριτήρια και διαφέρει από βιβλιογραφία σε<br />
βιβλιογραφία καθώς δεν υπάρχουν ακριβή πρότυπα γωνιών. Δηλαδή, είναι υποκειμενικό ποια<br />
σημεία θεωρούνται γωνίες και ποια όχι, ανάλογα με κάποια χαρακτηριστικά. Στην παρούσα<br />
εργασία, βάσει της βιβλιογραφίας και των πειραματικών αποτελεσμάτων, καθώς και του<br />
αντικειμένου με το οποίο ασχολούμαστε, μας ενδιαφέρει πρωτίστως το κριτήριο 7, χωρίς αυτό να<br />
σημαίνει ότι και τα υπόλοιπα είναι ελάσσονος σημασίας.<br />
Λαμβάνοντας υπόψη τα παραπάνω, κατά τη διάρκεια της πειραματικής μας διαδικασίας,<br />
χρησιμοποιήσαμε τον Harris Corner Detector, καθώς δίνει ικανοποιητικά αποτελέσματα, τόσο για<br />
το κριτήριο 7 όσο και τα υπόλοιπα. Το μεγάλο του πλεονέκτημα σε σχέση με τους υπόλοιπους για<br />
το πρόβλημά μας, είναι ότι εντοπίζει τις γωνίες που θέλουμε, χωρίς ταυτόχρονα να παράγει πολλές<br />
επιπρόσθετες λανθασμένες αναγνωρίσεις γωνιών. Το κόστος όμως αυτής της διαδικασίας, είναι η<br />
ακρίβεια με την οποία εντοπίζονται οι γωνίες. Γι’ αυτό το λόγο, μετά την πρώτη εφαρμογή του<br />
αλγορίθμου, χρησιμοποιούμε ένα δεύτερο στάδιο εντοπισμού με ακρίβεια μικρότερη του pixel, στις<br />
περιοχές των σημείων που προκύπτουν από την πρώτη εφαρμογή.<br />
48
5.3 Harris Corner Detector<br />
Κεφάλαιο 5: Εντοπισμός γωνιών και αντιστοίχηση σημείων ενδιαφέροντος στις εικόνες<br />
Βασίζεται στην τοπική αυτοσυσχέτιση ( local auto-correlation) για να χαρακτηρίσει ένα<br />
σημείο ως γωνία. Η τοπική αυτοσυσχέτιση είναι το άθροισμα των τετραγώνων των διαφορών της<br />
έντασης στα διάφορα σημεία της εικόνας. Ουσιαστικά, θεωρεί ως γωνίες τα σημεία στα οποία κάθε<br />
μικρή μετακίνηση έχει ως αποτέλεσμα μεγάλες αλλαγές στη συνάρτηση φωτεινότητας. Ο<br />
‘πρόγονος’ του Harris Corner Detector είναι ο αλγόριθμος Moravec, του οποίου και αποτελεί<br />
βελτιωμένη εκδοχή.<br />
Η συνάρτηση φωτεινότητας είναι ευαίσθητη στο θόρυβο γι' αυτό και ο Harris χρησιμοποιεί<br />
ανάπτυξη κατά Taylor καθώς και smoothing με Gaussian μάσκα για να αυξήσει τη σθεναρότητα<br />
του αλγορίθμου στο θόρυβο. Το μέτρο 'γωνιότητας' που χρησιμοποιεί ο αλγόριθμος Harris δίνεται<br />
για κάθε σημείο από τον παρακάτω πίνακα:<br />
όπου I x ,I y είναι οι παράγωγοι της έντασης σε grayscale της εικόνας Ι στη x και στην y διεύθυνση<br />
αντίστοιχα, ενώ το “ ^ ” υποδηλώνει τη συνέλιξη με τη Gaussian μάσκα. Αποδεικνύεται ότι οι<br />
ιδιοτιμές του παραπάνω πίνακα C(x,y) είναι ανάλογες με τις κύριες καμπυλότητες της επιφάνειας<br />
της εικόνας Ι. Το Ι(x,y) είναι η ένταση σε grayscale.<br />
Αν λ 1 , λ 2 είναι οι ιδιοτιμές του πίνακα C(x,y), διακρίνουμε 3 περιπτώσεις:<br />
<br />
<br />
<br />
Αν λ 1 και λ 2 είναι μικρές, η συνάρτηση φωτεινότητας της εικόνας έχει σχεδόν σταθερή<br />
ένταση (π.χ. μικρή αλλαγή στον C(x,y) σε οποιαδήποτε κατεύθυνση).<br />
Αν μία από τις ιδιοτιμές λ 1 ή λ 2 είναι μεγάλη και η άλλη μικρή, η τοπική αυτοσυσχέτιση<br />
παρουσιάζει κορυφή, με αποτέλεσμα μικρή μετακίνηση κατα μήκος της κορυφής να<br />
προκαλεί μικρή αλλαγή στον C(x,y) στη μία διεύθυνση και σημαντική στην άλλη, οπότε<br />
υπάρχει ακμή.<br />
Αν και οι δύο ιδιοτιμές είναι μεγάλες, η τοπική αυτοσυσχέτιση είναι “sharply peaked” οπότε<br />
ακόμα και μικρή μετακίνηση σε οποιαδήποτε διεύθυνση έχει σαν αποτέλεσμα μεγάλη<br />
αλλαγή στον C(x,y). Άρα υπάρχει γωνία.<br />
Τα παραπάνω συγκεντρώνονται στον αλγόριθμο που ακολουθεί:<br />
49
Κεφάλαιο 5: Εντοπισμός γωνιών και αντιστοίχηση σημείων ενδιαφέροντος στις εικόνες<br />
Σχηματικά η βασική ιδέα του Harris Corner Detector παρουσιάζεται στην παρακάτω εικόνα:<br />
Σχήμα 5.2. Harris Corner Detector: Βασική ιδέα<br />
Όμως η διαδικασία εύρεσης των γωνιών είναι χρονοβόρα και δύσκολη καθώς απαιτείται<br />
υπολογισμός τετραγωνικής ρίζας, γι' αυτό και αντί του παραπάνω κριτηρίου, χρησιμοποιείται η<br />
σχέση:<br />
Δ = det C – k(tranceC) 2 ή Δ = ( Î x 2 Î y<br />
2 – I x<br />
2^I y 2 )-k(Î x 2 + Î y 2 ) 2 (5.1)<br />
και ως γωνίες αναγνωρίζονται τα σημεία εκείνα στα οποία η σχέση 5.1 ξεπερνάει κάποιο κατώφλι.<br />
Ο όρος k χρησιμοποιείται για προστασία από λάθος ανίχνευση γωνίας και συγκεκριμένα από το να<br />
αναγνωρίζει σημεία ακμών ως γωνίες (γιατί και στα σημεία ακμών, έχουμε μεγάλες τιμές για τις<br />
παραγώγους). Ο Harris πρότεινε την τιμή k=0.04 εμπειρικά. Για τις παραγώγους της έντασης<br />
χρησιμοποιούνται οι μάσκες παραγώγισης:<br />
Επίσης, για να λειτουργήσει ο αλγόριθμος χρειάζεται τον ορισμό παραμέτρων των οποίων<br />
οι βέλτιστες τιμές ορίστηκαν μέσα από διαδικασία δοκιμών. Συγκεκριμένα, το παράθυρο Gaussian<br />
συνέλιξης έχει μέγεθος 5x5 και τυπική απόκλιση σ = 5/6, ενώ το κατώφλι για την αναγνώριση<br />
κάποιου σημείου ως γωνίας ορίστηκε ίσο με 0.04 (όταν οι τιμές για τα pixels της εικόνας είναι<br />
κανονικοποιημένες στο διάστημα [0,1]).<br />
Αφού εφαρμοστεί η παραπάνω διαδικασία, τα σημεία για τα οποία το μέτρο Δ παίρνει τιμές<br />
μεγαλύτερες του κατωφλίου, ορίζουν μια περιοχή γύρω από την πραγματική γωνία. Σε κάθε μία<br />
από τις περιοχές αυτές ως το μοναδικό pixel που θεωρούμε ότι υπάρχει γωνία, κρατάμε το μέγιστο<br />
της περιοχής αυτής. Για το σκοπό αυτό, χρησιμοποιούμε ένα φίλτρο μεγίστου, με μέγεθος επίσης<br />
5x5.<br />
50
5.4 Εφαρμογή του Harris Corner Detector<br />
Κεφάλαιο 5: Εντοπισμός γωνιών και αντιστοίχηση σημείων ενδιαφέροντος στις εικόνες<br />
Στην παράγραφο αυτή θα δείξουμε τα αποτελέσματα της εφαρμογής του Harris Corner<br />
Detector, όπως αυτός αναλύθηκε παραπάνω. Στη συνέχεια, όποτε χρειαστεί να αναφερθούμε στον<br />
Harris Corner Detector, για χάριν συντομίας θα γράφουμε hcd. Για την εφαρμογή του hcd θα<br />
χρησιμοποιήσουμε τη φωτογραφία του σχήματος 5.3.<br />
Σχήμα 5.3: Η φωτογραφία στην οποία θα εφαρμοσθεί ο Harris Corner Detector<br />
Η επιλογή της φωτογραφίας δεν είναι τυχαία, διότι οι κορυφές των τετραγώνων της<br />
σκακιέρας αποτελούν ιδανικούς ‘υποψηφίους’ για πιθανές γωνίες, λόγω των αλλαγών της<br />
φωτεινότητας. Έτσι, ουσιαστικά, δίνουμε μια βοήθεια στον hcd. Προτού τρέξουμε τον hcd στο<br />
matlab είναι απαραίτητο να αναφέρουμε τις παραμέτρους του, τις οποίες μπορούμε να<br />
τροποποιήσουμε έτσι ώστε να αποδώσει τα ‘καλύτερα’ για εμάς αποτελέσματα. Η πρώτη<br />
παράμετρος είναι το MaximumCornerCount, και ορίζει τον μέγιστο αριθμό γωνιών που μπορεί<br />
να εντοπίσει ο αλγόριθμος. Επόμενη παράμετρος είναι το CornerThreshold . Αυτό το<br />
κατώφλι, θέτει την κατώτερη ‘μετρική’ τιμή που θα ορίζει μια γωνία. Τελευταία παράμετρος είναι<br />
το NeighborhoodSize, το οποίο είναι ένα διάνυσμα 2 στοιχείων τα οποία παίρνουν ακέραιες,<br />
περιττές τιμές. Αυτή η παράμετρος ορίζει την περιοχή γύρω από μία γωνία, για την οποία ο<br />
αλγόριθμος μηδενίζει τις τιμές. Οι δύο τιμές της ορίζουν τον αριθμό των γραμμών και των στηλών<br />
της περιοχής αντίστοιχα. Τα αποτελέσματα του hcd φαίνονται στη φωτογραφία του σχήματος 5.4.<br />
Προκειμένου να φτάσουμε σε αυτά τα επιθυμητά αποτελέσματα, κάναμε διάφορες δοκιμές<br />
σχετικά με τις παραμέτρους. Πιο συγκεκριμένα καταλήξαμε σε MaximumCornerCount = 500,<br />
CornerThreshold = 0,17e-3 και ΝeighborhoodSize = [21 21]. Για αυτή την τιμή<br />
του CornerThreshold ο κώδικας αναγνωρίζει κάθε γωνία των τετραγώνων της σκακιέρας<br />
ακόμα κι αν βρίσκονται σε περιοχές της φωτογραφίας με χαμηλό contrast, ενώ με το παράθυρο που<br />
επιλέξαμε ο εντοπισμός της θέσης των γωνιών είναι αρκετά ακριβής.<br />
51
Κεφάλαιο 5: Εντοπισμός γωνιών και αντιστοίχηση σημείων ενδιαφέροντος στις εικόνες<br />
Σχήμα 5.4: Εντοπισθείσες ,από τον αλγόριθμο, γωνίες.<br />
Έτσι ο κώδικας δεν εντοπίζει 2 ή περισσότερες γωνίες, οι οποίες αντιστοιχούν ουσιαστικά στο ίδιο<br />
σημείο του τετραγωνικού πλέγματος. Αυτό φαίνεται καθαρά στο επόμενο σχήμα, όπου παρατίθεται<br />
σε μεγέθυνση, ένα μέρος του σχήματος 5.4. H επιλογή των συγκεκριμένων τιμών για τις<br />
παραμέτρους δεν είναι δεσμευτική, αφού όπως θα δούμε και στο επόμενο κεφάλαιο, ανάλογα με τα<br />
ζεύγη φωτογραφιών που έχουμε, ορίζουμε και διαφορετικές τιμές παραμέτρων, που μας δίνουν τα<br />
καλύτερα αποτελέσματα.<br />
Σχήμα 5.5:Λεπτομέρεια από το σχήμα 5.4<br />
52
Κεφάλαιο 5: Εντοπισμός γωνιών και αντιστοίχηση σημείων ενδιαφέροντος στις εικόνες<br />
5.5Αντιστοίχιση των γωνιών στις φωτογραφίες<br />
Το επόμενο στάδιο στη διαδικασία που ακολουθούμε, μετά τον εντοπισμό των σημείων<br />
ενδιαφέροντος (γωνιών), είναι ο εντοπισμός, σε φωτογραφίες ενός στερεοσκοπικού ζεύγους, των<br />
γωνιών που είναι προβολές του ίδιου σημείου της σκηνής. Οι γωνίες αυτές, λέμε ότι, βρίσκονται σε<br />
αντιστοιχία. Ωστόσο, η διαδικασία για την εύρεση όλων των αντιστοιχίσεων είναι μια δύσκολη<br />
διαδικασία, η οποία δίνει συχνά αρκετά αναξιόπιστα αποτελέσματα.<br />
Στα πλαίσια της δικής μας εργασίας θα χρησιμοποιήσουμε μια απλή μέθοδο, η οποία δίνεται<br />
στο computer vision toolbox του matlab. Δεν επιδιώξαμε να χρησιμοποιήσουμε κάποια καλύτερη<br />
και πιο πολύπλοκη μέθοδο διότι σε συνδυασμό με τις μεθόδους απόρριψης των λανθασμένων<br />
αντιστοιχίσεων, που θα εξηγηθούν στο επόμενο κεφάλαιο, έχουμε αρκετά ικανοποιητικά αποτελέσματα.<br />
Η συγκεκριμένη μέθοδος, μπορεί να χρησιμοποιήσει τρεις διαφορετικούς τύπους<br />
υπολογισμού απόστασης (metric). Εμείς χρησιμοποιήσαμε την κανονικοποιημένη ετεροσυσχέτιση<br />
(Normalized cross-correlation), η οποία δίνεται από τον εξής τύπο:<br />
(5.2)<br />
Πιο συγκεκριμένα, για κάθε γωνία που έχει εντοπισθεί από τον hcd και στις δύο<br />
φωτογραφίες, εξάγουμε ένα ‘παράθυρο’ ΑxB με τη γωνία να βρίσκεται στο κέντρο του. Στη<br />
συνέχεια χρησιμοποιούμε την (5.2) ή αλλιώς NCC, ανάμεσα στις περιοχές που έχουμε εξάγει για<br />
να υπολογίσουμε ένα κόστος αντιστοίχισης ανάμεσα στις γωνίες. Κάθε γωνία οποιασδήποτε<br />
φωτογραφίας αντιστοιχίζεται με τη γωνία της άλλης που έχουν το χαμηλότερο κόστος. Κάθε γωνία<br />
της φωτογραφίας μπορεί να αντιστοιχιστεί με παραπάνω από ένα σημεία της άλλης, από τη στιγμή<br />
που δεν υπάρχει κάποιος περιορισμός μοναδικότητας. Αυτό φαίνεται έντονα και στο σχήμα 5.6,<br />
όπου φαίνονται όλες οι αντιστοιχίσεις που μας έδωσε ο αλγόριθμος.<br />
Σχήμα 5.6: Αντιστοίχιση γωνιών ανάμεσα στις δύο φωτογραφίες<br />
53
Κεφάλαιο 5: Εντοπισμός γωνιών και αντιστοίχηση σημείων ενδιαφέροντος στις εικόνες<br />
Το παράθυρο ΑxΒ που υποθέσαμε παραπάνω ορίζεται από τις παραμέτρους BlockSize<br />
και πρέπει να είναι περιττός και ακέραιος. Η άλλη παράμετρος του αλγορίθμου που μπορούμε να<br />
ρυθμίσουμε έτσι ώστε να παίρνουμε καλύτερα αποτελέσματα είναι το MatchThreshold. Η<br />
παράμετρος αυτή είναι ένα ποσοστιαίο κατώφλι για να επιλέγονται η ισχυρότερες αντιστοιχίες.<br />
Παίρνει τιμές από 0 μέχρι 100, και οι αντιστοιχίες με NCC μεγαλύτερο της τιμής του,<br />
απορρίπτονται. Λογικά λοιπόν, όσο μεγαλώνει η τιμή που του βάζουμε τόσες περισσότερες<br />
αντιστοιχίες έχουμε. Στα πλαίσια των πειραμάτων μας δεν αλλάξαμε καθόλου την προκαθορισμένη<br />
τιμή του BlockSize = 9, αλλά δεν έγινε το ίδιο και με το MatchThreshold, όπως θα φανεί<br />
στο επόμενο κεφάλαιο.<br />
Σχήμα 5.7:Περιοχή με λίγες λανθασμένες αντιστοιχήσεις<br />
Σχήμα 5.8:Περιοχή με πολλές λανθασμένες αντιστοιχίσεις<br />
54
Κεφάλαιο 5: Εντοπισμός γωνιών και αντιστοίχηση σημείων ενδιαφέροντος στις εικόνες<br />
Οι άλλοι δύο τύποι υπολογισμού αποστάσεων (metric) που έχουμε τη δυνατότητα να<br />
χρησιμοποιήσουμε είναι το άθροισμα των απολύτων διαφορών ( SAD) που περιγράφεται από τη<br />
σχέση:<br />
(5.3)<br />
και το άθροισμα του τετραγώνου των διαφορών (SSD) που δίνεται από τη σχέση:<br />
(5.4)<br />
55
Κεφάλαιο 7: Υπολογισμός βάθους από στερεοσκοπικό ζεύγος<br />
Κεφάλαιο 6: Επιπολική Γεωμετρία<br />
6.1 Εισαγωγή<br />
Η επιπολική γεωμετρία είναι η γεωμετρία της στερεοσκοπικής όρασης. Όταν δύο<br />
φωτογραφικές μηχανές 'δουν' μια τρισδιάστατη (3D) σκηνή από δύο διαφορετικές θέσεις, υπάρχει<br />
ένας αριθμός γεωμετρικών σχέσεων μεταξύ των 3D σημείων και των προβολών τους στις<br />
διδιάστατες (2D) εικόνες που οδηγούν σε ορισμένους περιορισμούς μεταξύ των σημεί ων της<br />
εικόνας. Οι σχέσεις αυτές προκύπτουν με βάση την υπόθεση ότι οι κάμερες μπορούν να<br />
περιγραφτούν με το μοντέλο μικρής οπής ( pinhole camera model), όπως αυτό αναλύθηκε στο<br />
κεφάλαιο 3.<br />
Σχήμα 6.1: Τυπική περίπτωση χρήσης της επιπολικής γεωμετρίας<br />
Δύο κάμερες τραβούν μια φωτογραφία της ίδιας σκηνής από διαφορετικές οπτικές γωνίες. Η επιπολική<br />
γεωμετρία περιγράφει στη συνέχεια τη σχέση μεταξύ των δύο όψεων που προκύπτουν.<br />
6.2 Επιπολική Γεωμετρία<br />
Η παρακάτω εικόνα (σχήμα 6.2) απεικονίζει δύο κάμερες που μοντελοποιούνται από το<br />
pinhole model, οι οποίες 'κοιτούν' το σημείο Χ. Στις πραγματικές φωτογραφικές μηχανές, το<br />
επίπεδο της εικόνας βρίσκεται πίσω από το σημείο εστίασης, οπότε ουσιαστικά παράγεται μια<br />
περιστραμμένη εικόνα. Εδώ, ωστόσο, το πρόβλημα της προβολής απλοποιείται με την τοποθέτηση<br />
ενός εικονικού επιπέδου εικόνας μπροστά από το σημείο εστίασης της κάθε φωτογραφικής<br />
μηχανής, ώστε η καθεμία να παράγει μία μη περιστραμμένη εικόνα. Τα Ο L και Ο R<br />
αντιπροσωπεύουν τα σημεία εστίασης των δύο φωτογραφικών μηχανών. Το X αντιπροσωπεύει το<br />
κοινό σημείο ενδιαφέροντος των δύο καμερών. Τα σημεία X L και Χ R είναι οι προβολές του<br />
σημείου X επάνω στο επίπεδο της εικόνας.<br />
56
Κεφάλαιο 7: Υπολογισμός βάθους από στερεοσκοπικό ζεύγος<br />
Σχήμα 6.2: Επιπολική γεωμετρία<br />
Κάθε κάμερα αποτυπώνει μια 2D εικόνα του 3D κόσμου. Η μετατροπή από 3D σε 2D<br />
αναφέρεται ως μια προοπτική προβολή και περιγράφεται από το μοντέλο της φωτογραφικής<br />
μηχανής pinhole. Είναι σύνηθες να μοντελοποιείται αυτή η λειτουργία της προβολής από ακτίνες<br />
που προέρχονται από την κάμερα και διέρχονται από το σημείο εστίασής της. Σημειώστε ότι κάθε<br />
προερχόμενη ακτίνα αντιστοιχεί σε ένα μοναδικό σημείο στην εικόνα.<br />
6.2.1 Επίπολο ή επιπολικό σημείο, επιπολική γραμμή και επιπολικό επίπεδο<br />
Δεδομένου ότι τα εστιακά σημεία των καμερών είναι διαφορετικά, το καθένα έχει<br />
διαφορετική προβολή στο επίπεδο της εικόνας της άλλης κάμερας. Αυτά τα δύο σημεία των<br />
εικόνων συμβολίζονται με e L και e R και ονομάζονται επίπολα ή επιπολικά σημεία. Και τα δύο<br />
επίπολα e L και e R εντός των αντίστοιχων επιπέδων της εικόνας τους καθώς και τα δύο εστιακά<br />
σημεία O L και O R βρίσκονται σε μία και μόνη 3D γραμμή.<br />
Η γραμμή O L –X επειδή είναι απόλυτα ευθυγραμμισμένη με το εστιακό σημείο της<br />
αριστερής κάμερας, όταν την ‘κοιτάει’ ο φακός της, προφανώς τη βλέπει σα σημείο. Αντίθετα, η<br />
δεξιά κάμερα, την ίδια γραμμή τη ‘βλέπει’ σα γραμμή στο επίπεδο της εικόνας της. Αυτή η γραμμή<br />
(e R –x R ) στη δεξιά κάμερα λέγεται επιπολική γραμμή. Αντίστοιχα, η γραμμή O R –X, θεωρείται από<br />
τη δεξιά κάμερα ως σημείο ενώ από την αριστερή ως επιπολική γραμμή e L –x L . Μία επιπολική<br />
γραμμή είναι συνάρτηση του 3D σημείου Χ, το οποίο σημαίνει ότι αν το Χ κινείται ελεύθερα στον<br />
τρισδιάστατο χώρο, προκύπτει ένα σύνολο επιπολικών ευθειών και στις δύο εικόνες. Αφού η<br />
τρισδιάστατη γραμμή O L –X περνάει από το εστιακό σημείο O L , η αντίστοιχη επιπολική γραμμή<br />
στη δεξιά εικόνα πρέπει να περνάει από το επίπολο e R (και αντίστοιχα οι επιπολικές γραμμές της<br />
αριστερής εικόνας). Αυτό σημαίνει ότι όλες οι επιπολικές ευθείες της μίας εικόνας, πρέπει να<br />
τέμνονται με το επίπολο της ίδιας εικόνας. Είναι προφανές ότι όποια γραμμή τέμνεται με το<br />
επίπολο είναι μία επιπολική γραμμή, αφού προέρχεται από κάποιο σημείο Χ του τρισδιάστατου<br />
χώρου.<br />
Σαν εναλλακτικό τρόπο απεικόνισης, θεωρούμε τα σημεία X, O L και O R ως συνεπίπεδα. Το<br />
επίπεδο που ορίζουν, ονομάζεται επιπολικό επίπεδο. Το επιπολικό επίπεδο όταν τέμνεται με το<br />
επίπεδο εικόνας της κάθε κάμερας, σχηματίζει γραμμές- τις επιπολικές γραμμές. Όλα τα επιπολικά<br />
επίπεδα και οι επιπολικές γραμμές τέμνονται με τα επίπολα ανεξάρτητα από το πού βρίσκεται το<br />
σημείο Χ.<br />
57
Κεφάλαιο 7: Υπολογισμός βάθους από στερεοσκοπικό ζεύγος<br />
6.2.2 Επιπολικός περιορισμός και τριγωνοποίηση (triangulation)<br />
Εάν η σχετική μετατόπιση και περιστροφή δύο καμερών είναι γνωστή ( σχήμα 6.3), η<br />
αντίστοιχη επιπολική γεωμετρία οδηγεί σε δύο σημαντικές παρατηρήσεις:<br />
Εάν η προβολή του σημείου p L είναι γνωστή, τότε και η επιπολική γραμμή<br />
E R -p R είναι γνωστή και το σημείο P προβάλλεται στη δεξιά εικόνα, σε ένα σημείο p R που πρέπει<br />
να βρίσκεται επί της συγκεκριμένης επιπολικής γραμμής. Αυτό σημαίνει ότι για κάθε σημείο που<br />
υπάρχει σε μία εικόνα το ίδιο σημείο πρέπει να υπάρχει και στην άλλη εικόνα σε μια γνωστή<br />
επιπολική γραμμή. Αυτό αποτελεί τον επιπολικό περιορισμό, τον οποίο πρέπει να ικανοποιούν<br />
αντίστοιχα σημεία των εικόνων και αυτό σημαίνει ότι είναι δυνατό να ελέγξουμε εάν δύο σημεία<br />
αντιστοιχούν στο ίδιο πραγματικό σημείο 3D.<br />
Εάν τα σημεία p L και p R είναι γνωστά, οι γραμμές της προβολής τους στις<br />
εικόνες είναι επίσης γνωστές. Αν τα δύο σημεία της εικόνας αντιστοιχούν στο ίδιο τρισδιάστατο P<br />
σημείο οι γραμμές προβολής πρέπει να τέμνονται ακριβώς στο P. Αυτό σημαίνει ότι το P μπορεί να<br />
υπολογιστεί από τις συντεταγμένες των δύο σημείων της εικόνας, μια διαδικασία που ονομάζεται<br />
τριγωνοποίηση.<br />
Σχήμα 6.3: Παράδειγμα επιπολικής γεωμετρίας: Δύο κάμερες με τα αντίστοιχα εστιακά τους σημεία O L και O L<br />
‘βλέπουν’ ένα σημείο P. Η προβολή του σημείου P σε κάθε ένα από τα επίπεδα των εικόνων συμβολίζεται με p L<br />
και p R . Τα σημεία E L και E R είναι τα επίπολα<br />
6.3 Essential πίνακας και θεμελιώδης μήτρα<br />
Επιπολικοί περιορισμοί μπορούν επίσης να αποδοθούν από τον βασικό πίνακα (essential<br />
matrix) ή τη θεμελιώδη μήτρα (fundamental matrix) ανάμεσα στις δύο κάμερες. Ο essential πίνακας<br />
συμβολίζεται συνήθως με Ε και είναι αυτός που περιέχει όλες τις πληροφορίες για την επιπολική<br />
γεωμετρία και τη σχετική θέση των δύο καμερών μεταξύ δύο διαδοχικών λήψεων. Η θεμελιώδης<br />
μήτρα συσχετίζει τα αντίστοιχα σημεία των δύο εικόνων. Αν x και x΄ είναι αντίστοιχα οι ομογενείς<br />
συντεταγμένες των δύο εικόνων, το γινόμενο Fx περιγράφει μία επιπολική γραμμή πάνω στην<br />
οποία πρέπει να βρίσκεται το αντίστοιχο σημείο x΄. Αυτό σημαίνει ότι όλα τα σημεία που<br />
αντιστοιχίζονται από τη μία εικόνα στην άλλη ικανοποιούν την παρακάτω εξίσωση:<br />
(6.1)<br />
Ο essential πίνακας σχετίζεται με βαθμονομημένες κάμερες, ενώ η θεμελιώδης μήτρα αποτελεί μια<br />
έκφραση πιο γενική και δομημένη στις βασικές αρχές της προβολικής γεωμετρίας. Ο essential<br />
πίνακας και η θεμελιώδης μήτρα, συνδέονται με την εξής σχέση:<br />
58
Κεφάλαιο 7: Υπολογισμός βάθους από στερεοσκοπικό ζεύγος<br />
όπου Κ΄ και Κ είναι αντίστοιχα οι πίνακες των εσωγενών παραμέτρων των δύο βαθμονομημένων<br />
καμερών.<br />
(6.2)<br />
6.4 Απλοποιημένες περιπτώσεις<br />
Η επιπολική γεωμετρία απλοποιείται, εάν τα δύο επίπεδα της εικόνας της κάμερας<br />
συμπίπτουν (είναι δηλαδή συνεπίπεδα σχήμα 6.4), το οποίο είναι και το θέμα της συγκεκριμένης<br />
εργασίας. Στην περίπτωση αυτή, δεν υπάρχει καμία περιστροφή μεταξύ των καμερών. Προφανώς<br />
και οι επιπολικές γραμμές συμπίπτουν (E L –p L = E R –p R ). Επιπλέον, οι επιπολικές γραμμές είναι<br />
παράλληλες με τη γραμμή O L -O R μεταξύ των σημείων εστίασης, και μπορούν στην πράξη να<br />
ευθυγραμμιστούν με τους οριζόντιους άξονες των δύο εικόνων. Αυτό σημαίνει ότι για κάθε σημείο<br />
σε μια εικόνα, το αντίστοιχο σημείο του στην άλλη εικόνα μπορεί να βρεθεί μόνο κατά μήκος μιας<br />
οριζόντιας γραμμής.<br />
Σχήμα 6.4: Μηδενική περιστροφή μεταξύ των δύο καμερών<br />
Ουσιαστικά η παραπάνω διάταξη προσομοιώνει τη λειτουργία της ανθρώπινης όρασης (σχήμα 6.5)<br />
Σχήμα 6.5: Λειτουργία ανθρώπινης όρασης<br />
Σε περίπτωση που οι κάμερες δεν μπορούν να τοποθετηθούν με αυτό τον τρόπο οι συντεταγμένες<br />
της εικόνας μπορούν να μετασχηματιστούν ώστε να συμπεριφέρονται σα να έχουν κοινό επίπεδο<br />
59
Κεφάλαιο 7: Υπολογισμός βάθους από στερεοσκοπικό ζεύγος<br />
εικόνας, κατά κάποιον τρόπο να ευθυγραμμιστούν στον οριζόντιο άξονα. Αυτή η διαδικασία<br />
ονομάζεται διόρθωση εικόνας (image rectification) και φαίνεται στο ακόλουθο σχήμα:<br />
Σχήμα 6.6: Image rectification<br />
Στην παρούσα εργασία, όπως έχουμε ξαναπεί, δε χρησιμοποιούμε ένα στερεοσκοπικό<br />
ζεύγος καμερών (stereo camera) αλλά μόνο μία κάμερα, με αποτέλεσμα οι δύο εικόνες εν τέλει να<br />
έχουν μία μικρή περιστροφή μεταξύ τους. Στο κεφάλαιο 8 θα φανεί αυτή η περιστροφή καθώς και<br />
συνοπτικά η διαδικασία του image rectification.<br />
60
Κεφάλαιο 7: Υπολογισμός βάθους από στερεοσκοπικό ζεύγος<br />
Κεφάλαιο 7: Υπολογισμός βάθους από στερεοσκοπικό ζεύγος<br />
7.1 Εισαγωγή<br />
Επόμενο βήμα μας, και ίσως το πιο σημαντικό, προς την τρισδιάστατη αναπαράσταση είναι<br />
ο υπολογισμός του βάθους (depth of range). Πρέπει από τις δύο διαστάσεις (x,y) του ζεύγους των<br />
φωτογραφιών να ανακτήσουμε την απαραίτητη, κωδικοποιημένη πληροφορία για την 3 η διάσταση<br />
(x,y,z), έτσι ώστε να επιτύχουμε μια ικανοποιητική απεικόνιση του τρισδιάστατου χώρου. Η<br />
βασική αρχή στην οποία στηριζόμαστε για τον υπολογισμό του βάθους, είναι η τριγωνοποίηση<br />
(triangulation), η οποία αναφέρθηκε και στο προηγούμενο κεφάλαιο. Η εκτίμηση της απόστασης<br />
του σημείου Ρ(X,Y,Z) με βάση την αρχή της<br />
Ρ<br />
Σχήμα 7.1 Υπολογισμός βάθους (Ζ) ενός σημείου Ρ μέσω τριγωνοποίησης. (Εδώ τα κέντρα των<br />
καμερών είναι πίσω από τις εικόνες αλλά όμοια υπολογίζεται και στην περίπτωση όπου τα<br />
κέντρα είναι μπροστά από τις εικόνες.)<br />
τριγωνοποίησης έγκειται στην εύρεση του Ζ, όπως φαίνεται και στο σχήμα 7.1. Τα μεγέθη που<br />
χρειαζόμαστε προκειμένου να εκτιμήσουμε το Ζ είναι η απόσταση μεταξύ των καμερών CC`, ή<br />
αλλιώς baseline (b), η εστιακή απόσταση (focal length ), που συμβολίζεται με f και το disparity (d)<br />
μεταξύ των δύο καμερών. Με τον όρο disparity εννοούμε τη διαφορά των συντεταγμένων της<br />
προβολής του σημείου P στις δύο φωτογραφίες, και δίνεται από τη σχέση:<br />
d = x-x’ (7.1)<br />
όπου x και x’ είναι οι συντεταγμένες στον άξονα Χ της προβολής του Ρ στο επίπεδο της αριστερής<br />
και δεξιάς φωτογραφίας αντίστοιχα.<br />
Παρατηρείστε πως μας ενδιαφέρουν μόνο οι τιμές των x, διότι υποθέτουμε πως το baseline<br />
είναι οριζόντιο, δηλαδή η κάμερα μας δεν έχει μετατόπιση στον άξονα Υ, παρά μόνο στον άξονα Χ.<br />
Αυτή η εξιδανίκευση, όπως είδαμε και στη βαθμονόμηση της κάμερας δεν ανταποκρίνεται απόλυτα<br />
στην πραγματικότητα, αφού λόγω της πειραματικής διάταξης έχουμε και διαφορά στο y. Το<br />
πρόβλημα αυτό διορθώνεται με το image rectification, που θα δούμε στο επόμενο κεφάλαιο, όπου<br />
με την ευθυγράμμιση των επιπολικών γραμμών οι σωστές αντιστοιχίσεις στις δύο εικόνες έχουν<br />
την ίδια τιμή στον άξονα των y.<br />
Επιστρέφοντας στον υπολογισμό του βάθους, με τη γνώση των παραπάνω μεγεθών<br />
μπορούμε να χρησιμοποιήσουμε την επόμενη σχέση:<br />
61
Κεφάλαιο 7: Υπολογισμός βάθους από στερεοσκοπικό ζεύγος<br />
(7.2)<br />
Κατά την χρήση της σχέσης (7.2) είναι απαραίτητο όλα τα μεγέθη να μετρούνται στην ίδια μονάδα.<br />
Από τη στιγμή που το focal length και το disparity δίνονται σε pixels, και το baseline πρέπει να<br />
μετατραπεί από cm σε pixels.<br />
Προϋπόθεση ώστε να δώσει σωστά αποτελέσματα η σχέση (7.2) είναι να γίνει σωστός<br />
υπολογισμός του disparity για κάθε σημείο. Για να γίνει αυτό θα πρέπει η αντιστοίχισή τους<br />
(matching) να είναι σωστή. Έτσι επιστρέφουμε στο πρόβλημα του κεφαλαίου 5, όπου η μέθοδος<br />
που χρησιμοποιήσαμε έδινε μεγάλο ποσοστό λανθασμένων αντιστοιχίσεων (outliers). Προκειμένου<br />
να ελαττώσουμε, αν όχι, να μηδενίσουμε όλες τις λανθασμένες αντιστοιχίσεις χρησιμοποιούμε,<br />
σε συνδυασμό με τη μέθοδο αντιστοίχισης, κάποια σθεναρή μέθοδο απόρριψης των λανθασμένων<br />
αντιστοιχίσεων. Με τη διαδικασία αυτή αποκτάμε έναν disparity map (θα παρουσιασθεί αναλυτικά<br />
στο επόμενο κεφάλαιο) με πολύ μεγάλο ποσοστό σε σωστές αντιστοιχίσεις (inliers), περιορίζοντας<br />
έτσι το ποσοστό λάθους στην εύρεση του σωστού βάθους.<br />
7.2 Μέθοδοι απόρριψης λανθασμένων αντιστοιχίσεων<br />
Στην παράγραφο αυτή θα αναφέρουμε σε θεωρητικό επίπεδο τον τρόπο λειτουργίας των<br />
μεθόδων που χρησιμοποιήσαμε. Οι μέθοδοι απόρριψης λανθασμένων αντιστοιχίσεων χωρίζονται<br />
σε τρεις κατηγορίες: α) οι Μ-εκτιμητές ( M-estimators), β) οι αλγόριθμοι τύπου RANSAC<br />
(RANdom SAmple Consensus, συμφωνίας τυχαίου δείγματος) και γ) οι μέθοδοι Case Deletion<br />
(διαγραφής περιπτώσεων). Από τις παραπάνω κατηγορίες μεθόδων, οι πιο αποτελεσματικές είναι οι<br />
Μ- εκτιμητές και οι RANSAC, αλλά εμείς στην εργασία μας χρησιμοποιήσαμε δύο αλγορίθμους<br />
της οικογενείας των RANSAC, τον κλασσικό RANSAC και τον LMedS.<br />
7.2.1 RANSAC μέθοδοι<br />
Οι μέθοδοι αυτές, παρουσιάστηκαν για πρώτη φορά το 1981 (κλασσικός RANSAC) από<br />
τους Fischler και Bolles και βασίζονται στον έλεγχο της συμφωνίας τυχαίου δείγματος. Ενώ οι<br />
υπόλοιπες μέθοδοι για την εκτίμηση των ζητούμενων παραμέτρων χρησιμοποιούν μεγαλύτερο<br />
αριθμό δεδομένων από τον κατ’ ελάχιστο απαραίτητο, με σκοπό την ‘ομαλοποίηση’ των λαθών, οι<br />
υπό εξέταση μέθοδοι, χρησιμοποιούν για την εκτίμηση το ελάχιστο δυνατό δείγμα από τα<br />
δεδομένα. Παραδείγματος χάριν, 2 σημεία για την εύρεση των παραμέτρων μίας γραμμής, 3 σημεία<br />
για ένα επίπεδο κοκ.<br />
Η διαδικασία αυτή, της λήψης ελάχιστων δειγμάτων και της εκτίμησης των παραμέτρων,<br />
επαναλαμβάνεται αρκετές φορές έως ότου έχουμε 99% βεβαιότητα ότι ένα τουλάχιστον από τα<br />
δείγματα που επιλέξαμε αποτελείται μόνο από έγκυρες μετρήσεις. Το ποσοστό εγκυρότητας<br />
μπορούμε να το καθορίσουμε μέσω των παραμέτρων. Μετά την λήψη των δειγμάτων και την<br />
εκτίμηση των παραμέτρων για καθένα από αυτά τα δείγματα, επιλέγεται η καλύτερη από τις<br />
προκύπτουσες λύσεις βάσει ενός κριτηρίου. Ανάλογα με το κριτήριο το οποίο θα επιλέξουμε,<br />
προκύπτουν και οι διαφορετικές μορφές των μεθόδων της οικογενείας RANSAC. Όπως αναφέραμε<br />
και νωρίτερα στην παρούσα εργασία χρησιμοποιήθηκε ο κλασσικός RANSAC και ο LMedS.<br />
α) κλασσικός RANSAC<br />
Ο κλασσικός RANSAC είναι μία επαναληπτική, μη ντετερμινιστική μέθοδος υπό την έννοια<br />
ότι παράγει ένα λογικό αποτέλεσμα μόνο με μια συγκεκριμένη πιθανότητα, η οποία αυξάνει με τον<br />
62
Κεφάλαιο 7: Υπολογισμός βάθους από στερεοσκοπικό ζεύγος<br />
αριθμό των επαναλήψεων. Παίρνει ως δεδομένο ότι οι αντιστοιχίες σημείων αποτελούνται από<br />
inliers και από outliers, όπως συμβαίνει στην πραγματικότητα, ακόμα και αν ο αριθμός των inliers<br />
είναι περιορισμένος.<br />
Ο αλγόριθμος δέχεται σαν εισόδους το σύνολο των αντιστοιχίσεων που έχει δώσει ο<br />
αλγόριθμος αντιστοίχισης, ένα κατώφλι για την απόσταση (DistanceThreshold) που μπορούν<br />
να έχουν οι υπόλοιπες μετρήσεις από τη λύση, τον αριθμό των επαναλήψεων που θα<br />
πραγματοποιήσει και ένα ποσοστό βεβαιότητας. Αρχικά από το σύνολο όλων των αντιστοιχίσεων<br />
επιλέγει 8 αντιστοιχίσεις τις οποίες θεωρεί σωστές (inliers) και υπολογίζει τον θεμελιώδη πίνακα.<br />
Στη συνέχεια ελέγχει για όλες τις υπόλοιπες αντιστοιχίσεις ποιες από αυτές ικανοποιούν την<br />
επιπολική γεωμετρία, μετρά τον αριθμό τους, τις αποθηκεύει και απορρίπτει τις υπόλοιπες. Η<br />
διαδικασία αυτή εκτελείται για κάθε θεμελιώδη πίνακα που έχει προκύψει σε κάθε επανάληψη.<br />
Τελικά, μετά το πέρας όλων των επαναλήψεων επιλέγεται ο θεμελιώδης πίνακας για τον οποίον<br />
είχαμε τις περισσότερες αντιστοιχίσεις. Οι αντιστοιχίσεις αυτές θεωρούνται σωστές (inliers) και τις<br />
κρατάει, ενώ όλες τις υπόλοιπες τις απορρίπτει. Οι αντιστοιχήσεις των inliers αποθηκεύονται σε<br />
πίνακες για κάθε μια φωτογραφία. Οι αντιστοιχίσεις που απορρίφθηκαν θεωρούνται outliers.<br />
β) Least Median of Squares (LMedS)<br />
Σε αυτή τη μέθοδο για κάθε τυχαίο δείγμα υπολογίζεται ο μεσαίος (median) του τετραγώνου της<br />
απόστασης των υπολοίπων μετρήσεων από τη λύση, και ως βέλτιστη επιλέγεται η λύση στην οποία<br />
αντιστοιχεί ο ελάχιστος μεσαίος. Πιο συγκεκριμένα εκτιμά τις παραμέτρους λύνοντας το μηγραμμικό<br />
πρόβλημα ελαχιστοποίησης:<br />
Αυτό σημαίνει ότι ο εκτιμητής, πρέπει να δίνει σα λύση τη μικρότερη τιμή του μεσαίου (median).<br />
Θεωρητικά, ο εκτιμητής του LMedS θα έπρεπε να ψάχνει σε όλο το φάσμα των δεδομένων για να<br />
βρει όλες τις πιθανές εκτιμήσεις. Αυτό πρακτικά είναι αδύνατο λόγω μεγέθους των δεδομένων<br />
επομένως επιλέγει ένα τυχαίο δείγμα Για κάθε τυχαίο δείγμα υπολογίζεται ο μεσαίος του<br />
τετραγώνου της απόστασης των υπολοίπων μετρήσεων από τη λύση και θεωρεί ως βέλτιστη εκείνη<br />
τη λύση που δίνει τον ελάχιστο μεσαίο. Το πλεονέκτημά της σε σχέση με τη μέθοδο του κλασικού<br />
RANSAC έγκειται στο γεγονός ότι είναι πιο ‘ανθεκτική’ στον γκαουσιανό θόρυβο και παρέχει<br />
σωστό αποτέλεσμα, ακόμα και αν τα μισά δεδομένα είναι κατεστραμμένα. Αξίζει να σημειωθεί ότι<br />
ο LMedS απαιτεί οι έγκυρες μετρήσεις να υπερισχύουν (δηλαδή να είναι πάνω από το 50%) ώστε<br />
να θεωρηθεί δόκιμος ο μεσαίος. Αντίθετα, Ο RANSAC μπορεί να δώσει σωστό αποτέλεσμα<br />
ακόμα και αν οι έγκυρες μετρήσεις μειοψηφούν έναντι των λανθασμένων. Όπως και στον κλασσικό<br />
RANSAC μπορούμε να ορίσουμε το κατώφλι ώστε να εντοπίζουμε τις λανθασμένες αντιστοιχίσεις.<br />
Κατά την πραγματοποίηση της εργασίας μας χρησιμοποιήσαμε και τις 2 μεθόδους,<br />
χρησιμοποιώντας για κάθε ζεύγος αυτήν που μας έδινε τα καλύτερα αποτελέσματα. Η διαφορά στα<br />
αποτελέσματα οφείλεται κατά κύριο λόγο στο περιεχόμενο των φωτογραφιών που<br />
χρησιμοποιήσαμε. Τα αντικείμενα που περιέχονται στις φωτογραφίες μας ενδείκνυνται για εξαγωγή<br />
πολλών σημείων ενδιαφέροντος (γωνίες), από τον hdc, και ως εκ τούτου έχουμε και πολλές<br />
αντιστοιχίσεις. Επειδή όμως σε αρκετές περιπτώσεις, οι λάθος αντιστοιχίσεις υπερτερούσαν των<br />
σωστών, ο LMedS δεν ‘δούλευε’, αφού προϋποθέτει την ύπαρξη τουλάχιστον 50% σωστών επί<br />
του συνόλου των αντιστοιχίσεων.<br />
Όπως αναφέρθηκε και νωρίτερα οι μέθοδοι απόρριψης λανθασμένων αντιστοιχίσεων έχουν<br />
αρκετά ικανοποιητικά αποτελέσματα, αλλά δεν λειτουργούν πάντοτε στην εντέλεια. Υπάρχουν<br />
περιπτώσεις, όπου κάποια outliers καταφέρνουν να ‘εισχωρήσουν’ στις σωστές αντιστοιχίσεις. Για<br />
αυτό το λόγο, δημιουργήσαμε για την παρούσα εργασία έναν κώδικα, ο οποίος παίζει το ρόλο ενός<br />
φίλτρου. Η βασική ιδέα, πάνω στην οποία στηρίχθηκε είναι ο ορισμός τριών κατωφλίων, δύο για<br />
63<br />
(7.3)
Κεφάλαιο 7: Υπολογισμός βάθους από στερεοσκοπικό ζεύγος<br />
το disparity στον άξονα Χ και ένα στον άξονα Υ. Η μετατόπιση των καμερών κατά ένα baseline<br />
έχει σαν αποτέλεσμα και την μετατόπιση των προβολών των ίδιων αντικειμένων στις 2<br />
φωτογραφίες κατα μια συγκεκριμένη τιμή που εξαρτάται από το baseline. Οπότε, λογικά, θα έπρεπε<br />
το disparity στον άξονα των Χ να έχει μία συγκεκριμένη τιμή, με κάποιες μικρές αποκλίσεις για<br />
όλες τις σωστές αντιστοιχίσεις (inliers), που μας έχει δώσει ο RANSAC για παράδειγμα. Σε<br />
περίπτωση που ο RANSAC έχει επιλέξει ως inlier κάποιο outlier που έχει disparity με μεγάλη<br />
απόκλιση από το disparity των σωστών αντιστοιχίσεων, είτε προς τα πάνω είτε προς τα κάτω, ο<br />
κώδικας θα το απορρίψει με τη χρήση του ανώτατου και του κατώτατου κατωφλίου αντίστοιχα.<br />
Αντίστοιχα και στον άξονα Y, λόγω των σφαλμάτων στην πειραματική διάταξη επιτρέπουμε μια<br />
μικρή ,σχετικά, μετατόπιση της τάξεως των 20 pixels και αποκόπτουμε τα inliers με μεγαλύτερο<br />
disparity.<br />
Είναι προφανές ότι ο συγκεκριμένος κώδικας λειτουργεί μόνο για φωτογραφίες που<br />
απεικονίζουν αντικείμενα τα οποία βρίσκονται σχεδόν στην ίδια απόσταση από το φακό. Για<br />
παράδειγμα, αν οι φωτογραφίες απεικόνιζαν έναν εξωτερικό χώρο με εστίαση στο άπειρο, τα πολύ<br />
μακρινά σημεία της σκηνής μεταξύ της αριστερής και δεξιάς λήψης, δε θα είχαν σχεδόν καθόλου<br />
disparity. Αντίθετα, τα σημεία που θα ήταν πολύ κοντά στο φακό θα είχαν μεγάλο disparity με<br />
αποτέλεσμα να μην είναι τόσο εύκολη η οριοθέτησή του. Στις φωτογραφίες που χρησιμοποιήσαμε<br />
για αυτή την εργασία, τα αντικείμενα τοποθετήθηκαν αρκετά κοντά ώστε να μην εμφανίζονται<br />
μεγάλες αποκλίσεις για τις σωστές αντιστοιχίσεις.<br />
7.3 Πλήρης αλγόριθμος υπολογισμού βάθους<br />
Αφού έχουμε εξηγήσει ως τώρα στην εργασία ποιες διαδικασίες και μεθόδους χρησιμοποιήσαμε<br />
ήρθε η ώρα να ενώσουμε όλα τα κομμάτια και να δούμε πρακτικά με ποια σειρά τις<br />
χρησιμοποιούμε. Ουσιαστικά, θα δώσουμε τον πλήρη αλγόριθμο με τη σειρά των βημάτων από την<br />
αρχή ως το τέλος. Στα πλαίσια της δικής μας εργασίας, τα αποτελέσματα που μας έδωσε είναι<br />
αρκετά ικανοποιητικά.<br />
Συγκεκριμένα, τα βήματα του αλγορίθμου για τον υπολογισμό του βάθους ενός ζεύγους<br />
εικόνων είναι τα εξής:<br />
1) Εξαγωγή των σημείων ενδιαφέροντος για κάθε φωτογραφία του στερεοσκοπικού ζεύγους με<br />
τη χρήση του Harris Corner Detector, όπως αυτός παρουσιάστηκε στο κεφάλαιο 5.<br />
2) Αρχική αντιστοίχιση των σημείων που βρέθηκαν στο 1 ο βήμα, με τη χρήση της μεθόδου που<br />
αναφέρθηκε στην υποενότητα 5.5.<br />
3) Χρησιμοποίηση μιας σθεναρής μεθόδου απόρριψης λανθασμένων αντιστοιχίσεων,<br />
πάνω στο σύνολο των αντιστοιχίσεων που βρέθηκε στο προηγούμενο βήμα. Εδώ, όπως έχουμε<br />
αναφέρει, χρησιμοποιήσαμε τον κλασσικό RANSAC και τον LMedS. Κατά την πραγματοποίηση<br />
της πειραματικής διαδικασίας χρησιμοποιούσαμε σε κάθε ζεύγος την μέθοδο αυτή που μας έδινε τα<br />
καλύτερα αποτελέσματα. Στο πρώτο ζεύγος φωτογραφιών θα δώσουμε τα αποτελέσματα και από<br />
τις δύο μεθόδους, ενώ στα υπόλοιπα μόνο της μεθόδου που επιλέξαμε ως καταλληλότερης..<br />
4) Χρησιμοποίηση του κώδικα που δημιουργήσαμε, για την απόρριψη οποιονδήποτε<br />
λανθασμένων αντιστοιχίσεων που δεν απορρίφθηκαν από το προηγούμενο βήμα.<br />
5) Υπολογισμός του βάθους για όσες σωστές αντιστοιχίσεις έχουν ‘επιβιώσει’ από τα<br />
προηγούμενα βήματα, με βάση τη σχέση (7.2).<br />
64
7.4 Πειραματική διαδικασία και αποτελέσματα<br />
Κεφάλαιο 7: Υπολογισμός βάθους από στερεοσκοπικό ζεύγος<br />
Σε αυτή την παράγραφο θα αναλύσουμε την πειραματική διαδικασία, η οποία έγινε με βάση<br />
τον αλγόριθμο που εξηγήθηκε στην παράγραφο 7.3. Μεγάλης σημασίας, για την παρούσα εργασία,<br />
είναι τα στερεοσκοπικά ζεύγη που θα χρησιμοποιήσουμε. Από τη στιγμή που οι τιμές των f και b ,<br />
της σχέσης (7.2), που θα χρησιμοποιήσουμε για την εξαγωγή των αποτελεσμάτων, έχουν προέλθει<br />
από τη βαθμονόμηση της κάμερας, όπως αυτή παρουσιάστηκε στο κεφάλαιο 4, θα πρέπει τα<br />
τεχνικά χαρακτηριστικά της κάμερας να ρυθμιστούν με τον ίδιο ακριβώς τρόπο. Επίσης,<br />
χρησιμοποιήθηκε η ίδια πειραματική διάταξη, με το baseline ανάμεσα στις 2 θέσεις της κάμερας,<br />
να είναι 5cm. Επιπλέον η διαμόρφωση των σκηνών που χρησιμοποιήσαμε έγινε με την ίδια<br />
φιλοσοφία, ενώ τα πραγματικά βάθη των σκηνών, δηλαδή η απόσταση των αντικειμένων από την<br />
κάμερα είναι περίπου 1m και 1,6m .<br />
Στον υπολογισμό του τελευταίου βήματος, δηλαδή του εκτιμώμενου βάθους,<br />
χρησιμοποιήσαμε δύο διαφορετικά πακέτα τιμών για το focal length και το baseline.<br />
Στο πρώτο πακέτο χρησιμοποιήσαμε τις τιμές που προέκυψαν από το stereo calibration της<br />
παραγράφου 4.3.3. Πιο συγκεκριμένα για το focal length έχουμε: f=(fc_left(1) + fc_right(1))/2 =<br />
(4368.77069 +4789.53269)/2 = 4579.15169 , και σαν baseline ορίσαμε την πρώτη τιμή του<br />
διανύσματος της μετατόπισης (Τ), άρα b= 75.95989. Αν μετατρέψουμε τις τιμές αυτές από pixels<br />
σε mm, έχουμε για την εστιακή απόσταση 1211.567217979mm και για το baseline<br />
20.097720896mm, με τις πραγματικές τιμές που χρησιμοποιήσαμε στην πειραματική διαδικασία να<br />
είναι 1000mm και 50mm, αντίστοιχα. Το πακέτο αυτό θα το ονομάσουμε πειραματικό.<br />
Στο δεύτερο πακέτο θέσαμε στα f και b τις πραγματικές του τιμές, δηλαδή f=1000mm και<br />
b=50mm, οι οποίες εκφρασμένες σε pixels είναι: f= 3779.52755 και b= 188.97637. Το δεύτερο<br />
πακέτο το ονομάσαμε πραγματικό.<br />
Τέλος, αναφέρουμε πως για κάθε απόσταση (1m και 1,6m) πήραμε 2 ζεύγη φωτογραφιών,<br />
διαφορετικής πολυπλοκότητας ως προς τη σκηνή, αλλά και με αντικείμενα διαφορετικής υφής. Στη<br />
συνέχεια ακολουθεί ανάλυση της διαδικασίας για κάθε ζεύγος και παράθεση των αποτελεσμάτων.<br />
α) Πρώτο ζεύγος φωτογραφιών (1m)<br />
Στο πρώτο ζεύγος φωτογραφιών έχουμε μια αρκετά σύνθετη σκηνή, που αποτελείται από<br />
αρκετά αντικείμενα διαφορετικού σχήματος και υφής, όπως φαίνεται στο σχήμα 7.2. Η απόσταση<br />
των αντικειμένων από την κάμερα είναι περίπου 1m.<br />
Σχήμα 7.2: Πρώτο ζεύγος φωτογραφιών<br />
Στο πρώτο στάδιο της εφαρμογής του αλγορίθμου μας, εφαρμόζουμε τον Harris Corner<br />
Detector και τα αποτελέσματά του φαίνονται στο σχήμα 7.3. Για το συγκεκριμένο ζεύγος θέσαμε<br />
την τιμή του CornerThreshold στο 1.7e-4.<br />
65
Κεφάλαιο 7: Υπολογισμός βάθους από στερεοσκοπικό ζεύγος<br />
Σχήμα 7.3: Οι γωνίες που εντοπίσθηκαν από τον Harris Corner Detector για το πρώτο ζεύγος<br />
Επόμενο βήμα είναι η εύρεση των αρχικών αντιστοιχίσεων των γωνιών που εντόπισε o<br />
Harris Corner Detector. Για το συγκεκριμένο ζεύγος η τιμή της παραμέτρου MatchThreshold, για<br />
την οποία ο αλγόριθμος μας έδινε τα καλύτερα αποτελέσματα είναι ο αριθμός 20. Το σύνολο των<br />
αρχικών αντιστοιχίσεων που επέστρεψε η μέθοδος αντιστοίχισης φαίνεται στο σχήμα 7.4.<br />
66
Κεφάλαιο 7: Υπολογισμός βάθους από στερεοσκοπικό ζεύγος<br />
Σχήμα 7.4: Αρχικές αντιστοιχίσεις των σημείων ενδιαφέροντος του πρώτου ζεύγους<br />
Στο σημείο αυτό, επιθυμούμε να απορρίψουμε τις λανθασμένες αντιστοιχίσεις (outliers) που<br />
μας έδωσε η μέθοδος αντιστοίχισης και έτσι χρησιμοποιούμε τον κλασσικό RANSAC και τον<br />
LMedS. Στο πρώτο ζεύγος θα δώσουμε τα αποτελέσματα και από τις δύο μεθόδους, αλλά στα<br />
επόμενα ζεύγη θα χρησιμοποιήσουμε μόνο τον RANSAC. Θέτοντας την τιμή του<br />
DistanceThreshold στο 1.4 και τον αριθμό των επαναλήψεων στο 1000 τα αποτελέσματα του<br />
RANSAC φαίνονται στο σχήμα 7.5.<br />
Σχήμα 7.5: Οι αντιστοιχίσεις που προέκυψαν από τον RANSAC<br />
Ο κλασσικός RANSAC καταφέρνει να αποκόψει πολλές λανθασμένες αντιστοιχίσεις, αλλά<br />
όχι όλες όπως παρατηρούμε στις αντιστοιχίσεις του μολυβιού. Παρόμοια αποτελέσματα είχε και ο<br />
67
Κεφάλαιο 7: Υπολογισμός βάθους από στερεοσκοπικό ζεύγος<br />
LMedS, στο σχήμα 7.6. Για αυτό το λόγο δημιουργήσαμε τον κώδικα που αναφέρθηκε στην<br />
παράγραφο<br />
Σχήμα 7.6: Οι αντιστοιχίσεις που προέκυψαν από τον LMedS<br />
7.2 και αναλαμβάνει να απορρίψει όσες λανθασμένες αντιστοιχίσεις έχουν καταφέρει να περάσουν<br />
από τον RANSAC και τον LMedS. Η εφαρμογή του κώδικα αυτού στα<br />
Σχήμα 7.7: Οι διορθωμένες αντιστοιχίσεις του RANSAC<br />
68
Κεφάλαιο 7: Υπολογισμός βάθους από στερεοσκοπικό ζεύγος<br />
Σχήμα 7.8: Οι διορθωμένες αντιστοιχίσεις του LMedS<br />
αποτελέσματα των RANSAC και LMedS, δίνει τα αποτελέσματα που φαίνονται στα σχήματα 7.7<br />
και 7.8 αντίστοιχα. Από τις 74 αντιστοιχίσεις του RANSAC μόλις 15 πέρασαν από τα κατώφλια<br />
του κώδικα μας, ενώ από οι 58 του LMedS έγιναν 6. Τα αποτελέσματα του κώδικα που<br />
κατασκευάσαμε κρίθηκαν ικανοποιητικά κι έτσι στα επόμενα ζεύγη θα δίνονται απευθείας τα<br />
αποτελέσματα του συνδυασμού του κώδικα μας με τη μέθοδο απόρριψης που έδωσε τα καλύτερα<br />
αποτελέσματα.<br />
To τελευταίο βήμα είναι να υπολογίσουμε το βάθος. Ο υπολογισμός θα γίνει για τα<br />
αποτελέσματα του σχήματος 7.7 και του 7.8 και για τα δύο πακέτα τιμών των f και b, όπως<br />
αναφέρθηκε νωρίτερα, με τη χρήση της σχέσης (7.2). Έτσι λοιπόν, για τις πειραματικές τιμές των f<br />
και b, τα βάθη για τις διορθωμένες αντιστοιχίσεις του RANSAC και του LMedS δίνονται στους<br />
δύο επόμενους πίνακες:<br />
Αριθμός<br />
διορθωμένων<br />
inliers<br />
Βάθος σημείου σε<br />
pixels<br />
Βάθος σημείου<br />
σε mm<br />
1 1932.4 511.28<br />
2 1486.5 393.29<br />
3 1911.2 505.66<br />
4 1911.2 505.66<br />
5 1870.1 494.79<br />
6 1850.2 489.52<br />
7 1880.2 497.46<br />
8 1890.4 500.17<br />
9 1850.2 489.52<br />
10 1890.4 500.17<br />
11 1911.2 505.66<br />
12 1414.0 374.11<br />
13 1880.2 497.46<br />
14 1840.4 486.93<br />
15 1860.1 492.14<br />
Πίνακας 7.1: Βάθη για τις διορθωμένες αντιστοιχίσεις του RANSAC με πειραματικές τιμές<br />
69
Κεφάλαιο 7: Υπολογισμός βάθους από στερεοσκοπικό ζεύγος<br />
Αριθμός<br />
διορθωμένων<br />
inliers<br />
Βάθος σημείου σε<br />
pixels<br />
Βάθος σημείου<br />
σε mm<br />
1 1911.2 505.66<br />
2 1911.2 505.66<br />
3 1880.2 497.46<br />
4 1890.4 500.17<br />
5 1890.4 500.17<br />
6 1880.2 497.46<br />
Πίνακας 7.2: Βάθη για τις διορθωμένες αντιστοιχίσεις του LMedS με πειραματικές τιμές<br />
Oι αντίστοιχοι πίνακες για τις πραγματικές τιμές των f και b, δίνονται στη συνέχεια:<br />
Αριθμός<br />
διορθωμένων<br />
inliers<br />
Βάθος σημείου σε<br />
pixels<br />
Βάθος σημείου<br />
σε mm<br />
1 3968.0 1049.9<br />
2 3052.3 807.6<br />
3 3924.4 1038.3<br />
4 3924.4 1038.3<br />
5 3840.0 1016.0<br />
6 3799.2 1005.2<br />
7 3860.8 1021.5<br />
8 3881.7 1027.0<br />
9 3799.2 1005.2<br />
10 3881.7 1027.0<br />
11 3924.4 1038.3<br />
12 2903.4 768.2<br />
13 3860.8 1021.5<br />
14 3779.1 999.9<br />
15 3819.5 1010.6<br />
Πίνακας 7.3: Βάθη για τις διορθωμένες αντιστοιχίσεις του RANSAC με πραγματικές τιμές<br />
Aριθμός<br />
διορθωμένων<br />
inliers<br />
Βάθος σημείου σε<br />
pixels<br />
Βάθος σημείου<br />
σε mm<br />
70<br />
1 3924.4 1038.3<br />
2 3924.4 1038.3<br />
3 3860.8 1021.5<br />
4 3881.7 1027.0<br />
5 3881.7 1027.0<br />
6 3860.8 1021.5<br />
Πίνακας 7.4: Βάθη για τις διορθωμένες αντιστοιχίσεις του LMedS με πραγματικές τιμές<br />
Αν παρατηρήσουμε το σχήμα 7.7, θα δούμε πως δύο αντιστοιχίσεις είναι πάνω σε ένα<br />
αντικείμενο, το οποίο είναι αρκετά πιο κοντά στην κάμερα, σε σχέση με τα υπόλοιπα. Η μικρότερη<br />
αυτή απόσταση γίνεται εμφανής και στις τιμές των πινάκων 7.1 και 7.3, στις γραμμές 2 και 12. Οι<br />
υπόλοιπες αντιστοιχίσεις είναι από σημεία που βρίσκονται περίπου στο ίδιο βάθος, οπότε δεν<br />
έχουμε μεγάλες αποκλίσεις.<br />
Το ίδιο ισχύει και για τους πίνακες του LMedS (7 .2 και 7.4),από τη στιγμή που οι<br />
διορθωμένες αντιστοιχίσεις προέκυψαν από σημεία με την ίδια απόσταση από την κάμερα.<br />
Αν συγκρίνουμε τους πίνακες που προέκυψαν από τα δύο διαφορετικά πακέτα για f και b,<br />
βγάζουμε ένα ξεκάθαρο συμπέρασμα. Παρατηρούμε πως η εκτίμηση του βάθους για τις
Κεφάλαιο 7: Υπολογισμός βάθους από στερεοσκοπικό ζεύγος<br />
πραγματικές τιμές των f και b έχει πολύ καλύτερες τιμές σε σχέση με την εκτίμηση για τις<br />
πειραματικές τιμές. Τα βάθη των σημείων υπολογίζονται περίπου στο 1m, όσο δηλαδή είναι και η<br />
πραγματική απόσταση, σε αντίθεση με την εκτίμηση για τις πειραματικές τιμές που προκύπτει ίση<br />
με το μισό περίπου της πραγματικής απόστασης, δηλαδή κοντά στα 500mm.<br />
β) Δεύτερο ζεύγος φωτογραφιών (1m)<br />
Στο δεύτερο ζεύγος φωτογραφιών (σχήμα 7.9) έχουμε πάλι αρκετά αντικείμενα, σε<br />
απόσταση περίπου ενός μέτρου, αλλά αυτή τη φορά η υφή τους είναι πιο λεία. Παρόλα αυτά, είναι<br />
αντικείμενα με πολλά σημεία ενδιαφέροντος λόγω των εναλλαγών φωτεινότητας στις επιφάνειές<br />
τους. Οι αρχικές αντιστοιχίσεις, των γωνιών<br />
Σχήμα 7.9: Δεύτερο ζεύγος φωτογραφιών<br />
που έδωσε o Harris Corner Detector me CornerThreshold ίσο με 2e-4, φαίνονται στο σχήμα<br />
7.10. Οι αντιστοιχίσεις αυτές έγιναν με MatchThreshold ορισμένο στο 20. Παρατηρούμε πως το<br />
σχήμα 7.10 περιέχει αρκετές λανθασμένες αντιστοιχίσεις, γεγονός το οποίο οφείλεται κυρίως στην<br />
ύπαρξη της σκακιέρας στη σκηνή που φωτογραφίσαμε. Αυτές τις λανθασμένες αντιστοιχίσεις,<br />
καταφέραμε να τις απορρίψουμε σε μεγαλύτερο βαθμό με το συνδυασμό του κλασσικού RANSAC<br />
και του κώδικα που κατασκευάσαμε. Τον συνδυασμό των δύο αυτών αλγορίθμων, χάριν συντομίας<br />
θα τον αναφέρουμε, από εδώ και στο εξής, ως βελτιωμένο RANSAC. Οι παράμετροι που μας<br />
έδωσαν τα καλύτερα αποτελέσματα, όπως αυτά φαίνονται στο σχήμα 7.11, είναι<br />
DistanceThreshold ίσο με 0.9 για τον RANSAC και Disp_xmax=220, Disp_xmin=60 και<br />
Disp_ymax=20 για τα κατώφλια του κώδικα που κατασκευάσαμε. Συγκρίνοντας τα<br />
αποτελέσματα του κλασσικού RANSAC με αυτά του βελτιωμένου, παρατηρούμε πως από τα 52<br />
inliers που μας έδωσε ο κλασσικός, καταλήξαμε στα 45 του βελτιωμένου με ποσοστό επιτυχίας που<br />
αγγίζει το 100%.<br />
71
Κεφάλαιο 7: Υπολογισμός βάθους από στερεοσκοπικό ζεύγος<br />
Σχήμα 7.10: Αρχικές αντιστοιχίσεις των σημείων ενδιαφέροντος του δευτέρου ζεύγους<br />
Σχήμα 7.11: Οι αντιστοιχίσεις του βελτιωμένου RANSAC<br />
Με βάση τα αποτελέσματα του βελτιωμένου RANSAC υπολογίσαμε το βάθος για τα δύο<br />
πακέτα τιμών των f και b. Αρχικά για τις πειραματικές τιμές έχουμε τα αποτελέσματα του πίνακα<br />
7.5:<br />
72
Αριθμός<br />
διορθωμένων<br />
inliers<br />
Βάθος<br />
σημείων σε<br />
pixels<br />
Βάθος<br />
σημείων σε<br />
mm<br />
Κεφάλαιο 7: Υπολογισμός βάθους από στερεοσκοπικό ζεύγος<br />
Αριθμός<br />
διορθωμένων<br />
inliers<br />
Βάθος<br />
σημείων σε<br />
pixels<br />
Βάθος<br />
σημείων σε<br />
mm<br />
1 1730.5 457.86 24 1713.5 453.35<br />
2 1747.9 462.46 25 1721.9 455.60<br />
3 1713.5 453.35 26 1739.2 460.15<br />
4 1756.7 464.80 27 1721.9 455.60<br />
5 1739.2 460.15 28 1747.9 462.46<br />
6 1880.2 497.46 29 1739.2 460.15<br />
7 1739.2 460.15 30 1721.9 455.60<br />
8 1747.9 462.46 31 1721.9 455.60<br />
9 1721.9 455.60 32 1721.9 455.60<br />
10 1747.9 462.46 33 1747.9 462.46<br />
11 1730.5 457.86 34 1870.1 494.79<br />
12 1721.9 455.60 35 1739.2 460.15<br />
13 1721.9 455.60 36 1739.2 460.15<br />
14 1721.9 455.60 37 1747.9 462.46<br />
15 1739.2 460.15 38 1721.9 455.60<br />
16 1721.9 455.60 39 1721.9 455.60<br />
17 1739.2 460.15 40 1739.2 460.15<br />
18 1739.2 460.15 41 1774.7 469.54<br />
19 1721.9 455.60 42 1739.2 460.15<br />
20 1730.5 457.86 43 1739.2 460.15<br />
21 1721.9 455.60 44 1730.5 457.86<br />
22 1730.5 457.86 45 1792.9 474.38<br />
23 1747.9 462.46<br />
Πίνακας 7.5: Βάθη για τις αντιστοιχίσεις του διορθωμένου RANSAC με πειραματικές τιμές<br />
Για τις πραγματικές τιμές των f και b, τα αποτελέσματα του υπολογισμού του βάθους<br />
δίνονται στον πίνακα 7.6:<br />
Αριθμός<br />
διορθωμένων<br />
inliers<br />
Βάθος<br />
σημείων σε<br />
pixels<br />
Βάθος<br />
σημείων σε<br />
mm<br />
Αριθμός<br />
διορθωμένων<br />
inliers<br />
Βάθος<br />
σημείων σε<br />
pixels<br />
Βάθος<br />
σημείων σε<br />
mm<br />
1 3553.4 940.2 19 3535.8 935,5<br />
2 3589.2 949.6 20 3553.4 940,2<br />
3 3518.4 930.9 21 3535.8 935,5<br />
4 3607.3 954,4 22 3553.4 940,2<br />
5 3571.2 944,9 23 3589.2 949,6<br />
6 3860.8 1021,5 24 3518.4 930,9<br />
7 3571.2 944,9 25 3535.8 935,5<br />
8 3589.2 949,6 26 3571.2 944,9<br />
9 3535.8 935,5 27 3535.8 935,5<br />
10 3589.2 949,6 28 3589.2 949,6<br />
11 3553.4 940,2 29 3571.2 944,9<br />
12 3535.8 935,5 30 3535.8 935,5<br />
13 3535.8 935,5 31 3535.8 935,5<br />
14 3535.8 935,5 32 3535.8 935,5<br />
15 3571.2 944,9 33 3589.2 949,6<br />
16 3535.8 935,5 34 3840.0 1016<br />
17 3571.2 944,9 35 3571.2 944,9<br />
18 3571.2 944,9 36 3571.2 944,9<br />
Πίνακας 7.6: Βάθη για τις αντιστοιχίσεις του διορθωμένου RANSAC με πραγματικές τιμές<br />
73
Κεφάλαιο 7: Υπολογισμός βάθους από στερεοσκοπικό ζεύγος<br />
37 3589.2 949,6 42 3571.2 944,9<br />
38 3535.8 935,5 43 3571.2 944,9<br />
39 3535.8 935,5 44 3553.4 940,2<br />
40 3571.2 944,9 45 3681.7 974,1<br />
41 3644.1 964,2<br />
Πίνακας 7.6: Βάθη για τις αντιστοιχίσεις του διορθωμένου RANSAC με πραγματικές τιμές<br />
Παρατηρώντας το σχήμα 7.11, βλέπουμε πως οι τελικές αντιστοιχίσεις βρίσκονται σχεδόν<br />
όλες στην ίδια απόσταση από την κάμερα, κάτι το οποίο μεταφράζεται και στα αποτελέσματα των<br />
πινάκων, αφού δεν παρατηρούνται μεγάλες αποκλίσεις. Άρα μπορούμε να πούμε πως ο αλγόριθμος<br />
δούλεψε ικανοποιητικά.<br />
γ) Τρίτο ζεύγος φωτογραφιών (1.6m)<br />
Η σκηνή του τρίτου ζεύγους είναι ίδια με αυτή του πρώτου ζεύγους, με τη μόνη διαφορά,<br />
πως η κάμερα είναι τοποθετημένη στα 1,6m περίπου από τη σκηνή. Η επιλογή αυτή έγινε έτσι ώστε<br />
να εξετάσουμε την ικανότητα του αλγορίθμου να αντιλαμβάνεται σχετικά μεγάλες διαφορές στα<br />
βάθη. Το ζεύγος φωτογραφιών φαίνεται στο σχήμα 6.12.<br />
Σχήμα 7.12: Τρίτο ζεύγος φωτογραφιών<br />
Οι αρχικές αντιστοιχίσεις, των γωνιών που έδωσε ο Harris Corner Detector με<br />
CornerThreshold ίσο με 0.07e-4, φαίνονται στο σχήμα 7.13. Το MatchThreshold για το<br />
οποίο προέκυψαν αυτά τα αποτελέσματα είναι ίσο με 5. Λόγω του χαμηλού MatchThreshold<br />
έχουμε μεγάλο αριθμό αντιστοιχίσεων, εκ των οποίων πολλές είναι λανθασμένες. Στο σημείο αυτό<br />
χρησιμοποιήσαμε τον συνδυασμό του LMedS με τον κώδικα μας, η αλλιώς τον βελτιωμένο<br />
LMedS, και τα αποτελέσματα του φαίνονται στο σχήμα 7.14. Για να προκύψουν τα αποτελέσματα<br />
αυτά ορίσαμε Disp_xmax=150, Disp_xmin=10 και Disp_ymax=10. Συγκρίνοντας τα αρχικά<br />
αποτελέσματα του LMedS με αυτά του βελτιωμένου LMedS, παρατηρούμε πως ο βελτιωμένος<br />
έδωσε 50 αντιστοιχίσεις, σε αντίθεση με τον LMedS που έδωσε 81. Δηλαδή ο συνδυαστικός<br />
αλγόριθμος έκοψε 31 λανθασμένες αντιστοιχίσεις. Παρόλα αυτά το σχήμα 7.14 δείχνει ότι<br />
ορισμένα outliers κατάφεραν να περάσουν από τα συγκεκριμένα κατώφλια.<br />
74
Κεφάλαιο 7: Υπολογισμός βάθους από στερεοσκοπικό ζεύγος<br />
Σχήμα 7.13: Αρχικές αντιστοιχίσεις των σημείων ενδιαφέροντος του τρίτου ζεύγους<br />
Σχήμα 7.14: Οι αντιστοιχίσεις του βελτιωμένου LMedS<br />
Με βάση τα αποτελέσματα του βελτιωμένου LMedS υπολογίσαμε το βάθος για τα δύο<br />
πακέτα τιμών των f και b. Αρχικά για τις πειραματικές τιμές προέκυψαν τα αποτελέσματα του<br />
παρακάτω πίνακα:<br />
75
Κεφάλαιο 7: Υπολογισμός βάθους από στερεοσκοπικό ζεύγος<br />
Αριθμός<br />
διορθωμένων<br />
inliers<br />
Βάθος<br />
σημείων σε<br />
pixels<br />
Βάθος<br />
σημείων σε<br />
mm<br />
Αριθμός<br />
διορθωμένων<br />
inliers<br />
Βάθος<br />
σημείων σε<br />
pixels<br />
Βάθος<br />
σημείων<br />
σε mm<br />
1 3024.6 800.3 26 2998.6 793.4<br />
2 3051.2 807.3 27 3051.2 807.3<br />
3 2415.5 639.1 28 3078.2 814.4<br />
4 2466.9 652.7 29 3051.2 807.3<br />
5 2851.1 754.3 30 2696.4 713.4<br />
6 2382.4 630.3 31 3024.6 800.3<br />
7 2484.5 657.4 32 2782.7 736.2<br />
8 2484.5 657.4 33 2655.2 702.5<br />
9 2635.1 697.2 34 2432.4 643.6<br />
10 3078.2 814.4 35 2805.1 742.2<br />
11 2449.5 648.1 36 2449.5 648.1<br />
12 2382.4 630.3 37 2449.5 648.1<br />
13 3078.2 814.4 38 2502.4 662.1<br />
14 2760.6 730.4 39 2449.5 648.1<br />
15 2851.1 754.3 40 2382.4 630.3<br />
16 2760.6 730.4 41 2484.5 657.4<br />
17 2557.6 676.7 42 2874.6 760.6<br />
18 3051.2 807.3 43 3078.2 814.4<br />
19 2366.2 626.1 44 5270.2 1394.4<br />
20 2538.9 671.8 45 2432.4 643.6<br />
21 3051.2 807.3 46 2738.8 724.6<br />
22 2998.6 793.4 47 2466.9 652.7<br />
23 3024.6 800.3 48 2898.6 766.9<br />
24 2947.7 779.9 49 2760.6 730.4<br />
25 3281.4 868.2 50 3024.6 800.3<br />
Πίνακας 7.7: Βάθη για τις αντιστοιχίσεις του διορθωμένου LMedS με πειραματικές τιμές<br />
Για τις πραγματικές τιμές των f και b, τα αποτελέσματα του υπολογισμού του βάθους<br />
δίνονται στον πίνακα 7.8:<br />
76<br />
Αριθμός<br />
διορθωμένων<br />
inliers<br />
Βάθος<br />
σημείων σε<br />
pixels<br />
Βάθος<br />
σημείων σε<br />
mm<br />
Αριθμός<br />
διορθωμένων<br />
inliers<br />
Βάθος<br />
σημείων σε<br />
pixels<br />
Βάθος<br />
σημείων σε<br />
mm<br />
1 6211 1643.3 18 6265 1657.7<br />
2 6265 1657.7 19 4859 1285.6<br />
3 4960 1312.3 20 5213 1379.4<br />
4 5066 1340.3 21 6265 1657.7<br />
5 5854 1549 22 6157 1629.1<br />
6 4892 1294.4 23 6211 1643.3<br />
7 5102 1349.8 24 6053 1601.5<br />
8 5102 1349.8 25 6738 1782.8<br />
9 5411 1431.6 26 6157 1629,1<br />
10 6321 1672.4 27 6265 1657,7<br />
11 5030 1330.8 28 6321 1672,4<br />
12 4892 1294.4 29 6265 1657,7<br />
13 6321 1672.4 30 5537 1664,9<br />
14 5669 1499.8 31 6211 1643,3<br />
15 5854 1549 32 5714 1511,8<br />
16 5669 1499.8 33 5452 1442,6<br />
17 5252 1389.5 34 4995 1321,5
Κεφάλαιο 7: Υπολογισμός βάθους από στερεοσκοπικό ζεύγος<br />
35 5760 1524 43 6321 1672.4<br />
36 5030 1330.8 44 10822 2863.3<br />
37 5030 1330.8 45 4995 1321.5<br />
38 5138 1359.5 46 5624 1488<br />
39 5030 1330.8 47 5066 1340.3<br />
40 4892 1294.4 48 5952 1574.8<br />
41 5102 1349.8 49 5669 1499.8<br />
42 5903 1561.8 50 6211 1643.3<br />
Πίνακας 7.8: Βάθη για τις αντιστοιχίσεις του διορθωμένου LMedS με πραγματικές τιμές<br />
Από το σχήμα 7.14 είναι εμφανές πως οι αντιστοιχίσεις του βελτιωμένου LMedS δεν<br />
βρίσκονται στην ίδια απόσταση από την κάμερα, όπως φαίνεται και από τις αποκλίσεις ανάμεσα<br />
στις τιμές των πινάκων. Αν αφαιρέσουμε από την μέγιστη τιμή σε mm, του πίνακα 7.8, την<br />
ελάχιστη τιμή (1782.8-1285.6) προκύπτει η τιμή 497mm που είναι και το πραγματικό βάθος από το<br />
κοντινότερο στην κάμερα αντικείμενο μέχρι το μακρύτερο. Από αυτόν τον υπολογισμό εξαιρέσαμε<br />
την αντιστοίχιση με τον αριθμό 44, αφού προφανώς είναι λανθασμένη. Καταλήγουμε λοιπόν, στο<br />
συμπέρασμα πως ο αλγόριθμος μας λειτουργεί και για αποστάσεις μεγαλύτερες από την εστιακή<br />
απόσταση (1m).<br />
δ) Τέταρτο ζεύγος φωτογραφιών (1.6m)<br />
Η σκηνή του τέταρτου και τελευταίου ζεύγους φωτογραφιών έχει και αυτή απόσταση από<br />
τη σκηνή 1,6m. Είναι αρκετά πολύπλοκη αφού περιέχει αντικείμενα διαφορετικής υφής και σε<br />
διαφορετικές αποστάσεις από το φακό της κάμερας (σχήμα 7.15).<br />
Σχήμα 7.15: Τέταρτο ζεύγος φωτογραφιών<br />
Οι αρχικές αντιστοιχίσεις των γωνιών που έδωσε ο Harris Corner Detector με<br />
CornerThreshold ίσο με 0.07e-4, φαίνονται στο σχήμα 7.16. Το MatchThreshold για το<br />
οποίο προέκυψαν αυτά τα αποτελέσματα είναι και σε αυτό το ζεύγος ίσο με 5 και έτσι εξηγείται ο<br />
μεγάλος αριθμός αρχικών αντιστοιχίσεων. Όπως και στο προηγούμενο ζεύγος, καλύτερα<br />
αποτελέσματα έδωσε η μέθοδος LMedS, η οποία συνδυαζόμενη με τον κώδικα που<br />
κατασκευάσαμε μας έδωσε 27 τελικές αντιστοιχίσεις, τις μισές από όσες έδωσε αρχικά ο LMedS<br />
μόνος του. Τα κατώφλια του βελτιωμένου LMedS παρέμειναν τα ίδια, δηλαδή Disp_xmax=150,<br />
Disp_xmin=10 και Disp_ymax=10, και απέδωσαν πολύ καλά αποτελέσματα, όπως προκύπτει<br />
και από το σχήμα 7.17.<br />
77
Κεφάλαιο 7: Υπολογισμός βάθους από στερεοσκοπικό ζεύγος<br />
Σχήμα 7.16: Αρχικές αντιστοιχίσεις των σημείων ενδιαφέροντος του τέταρτου ζεύγους<br />
Σχήμα 7.17: Οι αντιστοιχίσεις του βελτιωμένου LMedS<br />
Με βάση τα αποτελέσματα του βελτιωμένου LMedS υπολογίσαμε το βάθος για τα δύο<br />
πακέτα τιμών των f και b. Αρχικά για τις πειραματικές τιμές προέκυψαν τα αποτελέσματα του<br />
παρακάτω πίνακα:<br />
78
Αριθμός<br />
διορθωμένων<br />
inliers<br />
Βάθος<br />
σημείων σε<br />
pixels<br />
Βάθος<br />
σημείων σε<br />
mm<br />
Κεφάλαιο 7: Υπολογισμός βάθους από στερεοσκοπικό ζεύγος<br />
Αριθμός<br />
διορθωμένων<br />
inliers<br />
Βάθος<br />
σημείων σε<br />
pixels<br />
Βάθος<br />
σημείων<br />
σε mm<br />
1 2972.9 786.5856 15 2760.6 730.4009<br />
2 2760.6 730.4009 16 1999 528.911<br />
3 2760.6 730.4009 17 2972.9 786.5856<br />
4 2760.6 730.4009 18 2520.5 666.8878<br />
5 2782.7 736.2441 19 2382.4 630.346<br />
6 3024.6 800.2653 20 2502.4 662.09<br />
7 1850.2 489.524 21 3250.8 860.0982<br />
8 3024.6 800.2653 22 2782.7 736.2441<br />
9 2538.9 671.7556 23 2538.9 671.7556<br />
10 2520.5 666.8878 24 2502.4 662.09<br />
11 2484.5 657.3608 25 2760.6 730.4009<br />
12 3024.6 800.2653 26 2484.5 657.3608<br />
13 2760.6 730.4009 27 1932.4 511.2806<br />
14 2502.4 662.09<br />
Πίνακας 7.9: Βάθη για τις αντιστοιχίσεις του διορθωμένου LMedS με πειραματικές τιμές<br />
Για τις πραγματικές τιμές των f και b, τα αποτελέσματα του υπολογισμού του βάθους<br />
δίνονται στον πίνακα 7.10:<br />
Αριθμός<br />
διορθωμένων<br />
inliers<br />
Βάθος<br />
σημείων σε<br />
pixels<br />
Βάθος<br />
σημείων σε<br />
mm<br />
Αριθμός<br />
διορθωμένων<br />
inliers<br />
Βάθος<br />
σημείων σε<br />
pixels<br />
Βάθος<br />
σημείων<br />
σε mm<br />
1 6104,6 1615,2 15 5668,6 1499,8<br />
2 5668,6 1499,8 16 4104,8 1086,1<br />
3 5668,6 1499,8 17 6104,6 1615,2<br />
4 5668,6 1499,8 18 5175,7 1369,4<br />
5 5713,9 1511,8 19 4892,1 1294,4<br />
6 6210,8 1643,3 20 5138,4 1359,5<br />
7 3799,2 1005,2 21 6675,2 1766,1<br />
8 6210,8 1643,3 22 5713,9 1511,8<br />
9 5213,4 1379,4 23 5213,4 1379,4<br />
10 5175,7 1369,4 24 5138,4 1359,5<br />
11 5101,7 1349,8 25 5668,6 1499,8<br />
12 6210,8 1643,3 26 5101,7 1349,8<br />
13 5668,6 1499,8 27 3968 1049,9<br />
14 5138,4 1359,5<br />
Πίνακας 7.10: Βάθη για τις αντιστοιχίσεις του διορθωμένου LMedS με πραγματικές τιμές<br />
Όπως βλέπουμε από τον πίνακα 7.10 η εκτίμηση του βάθους γίνεται σε πολύ καλό βαθμό<br />
αφού το εύρος των τιμών ισούται και με το εύρος της σκηνής (περίπου 650 mm) ενώ και οι<br />
διάφορες αποστάσεις των αντικειμένων από τον φακό αποτυπώνονται στα αποτελέσματα.<br />
Αντίστοιχα, το ίδιο συμβαίνει και για τις πειραματικές τιμές με τη διαφορά πως οι τιμές είναι<br />
περίπου οι μισές. Άρα μπορούμε να πούμε πως και για τις πειραματικές τιμές έχουμε μια σχετική<br />
επιτυχία. Τα συμπεράσματα αυτά δεν προκύπτουν μόνο από το παρόν ζεύγος αλλά από το σύνολο<br />
όλης της πειραματικής διαδικασίας.<br />
79
Κεφάλαιο 8: Τρισδιάστατη ανακατασκευή<br />
Κεφάλαιο 8: Τρισδιάστατη ανακατασκευή<br />
8.1 Εισαγωγή<br />
Στο προηγούμενο κεφάλαιο αναπτύξαμε αναλυτικά τη διαδικασία εκτίμησης του βάθους<br />
της σκηνής. Το βάθος είναι το πιο σημαντικό στοιχείο, αφού ‘αποτελεί’ την τρίτη διάσταση της<br />
φωτογραφίας. Πρακτικά λοιπόν, συνδυάζοντας τις φωτογραφίες που έχουμε από την πειραματική<br />
διαδικασία και τα αποτελέσματα για το βάθος, μπορούμε να αναπαραστήσουμε την τρισδιάστατη<br />
πλέον εικόνα.<br />
Βασική προϋπόθεση της τρισδιάστατης ανακατασκευής είναι η διόρθωση των εικόνων<br />
(image rectification). Έχει αναφερθεί ότι στην παρούσα εργασία αυτή η διαδικασία δε θα έπρεπε να<br />
μας απασχολήσει αφού θεωρούμε τη μετατόπιση στον άξονα των y μηδενική. Εντούτοις, όπως<br />
αποδείχτηκε και από τα αποτελέσματα των πειραμάτων, αυτό είναι πρακτικά αδύνατο όταν<br />
χρησιμοποιείται μία κάμερα για τη λήψη των φωτογραφιών. Επομένως είμαστε υποχρεωμένοι να<br />
διορθώσουμε τη δεξιά εικόνα σε σχέση με την αριστερή, ώστε να αναιρέσουμε οποιοδήποτε<br />
σφάλμα έχει δημιουργηθεί στον κατακόρυφο άξονα.<br />
Με τις εικόνες πλέον διορθωμένες, τους κατάλληλους αλγορίθμους και τις κατάλληλες<br />
μεθόδους διόρθωσης σφαλμάτων, μπορούμε να αναπαραστήσουμε ένα μεγάλο μέρος της σκηνής<br />
που απεικονίζεται σε ένα ζεύγος φωτογραφιών. Δε θα αναφερθούμε στον τρόπο λειτουργίας των<br />
αλγορίθμων αυτών καθώς η πολυπλοκότητά τους είναι μεγάλη και φεύγει από τα πλαίσια αυτής της<br />
εργασίας.<br />
8.2 Διόρθωση εικόνων<br />
Η στερεοσκοπική όραση χρησιμοποιεί την τριγωνοποίηση βάσει της επιπολικής γεωμετρίας<br />
για να καθορίσει την απόσταση ενός αντικειμένου. Έχει προαναφερθεί ότι το δυσκολότερο σημείο<br />
της διαδικασίας της τρισδιάστατης ανακατασκευής είναι η αντιστοίχιση των σωστών σημείων<br />
μεταξύ των δύο εικόνων. Οι αλγόριθμοι μπορούν να ψάχνουν και στις δύο διαστάσεις x και y.<br />
Επειδή όμως στο στάδιο της ανακατασκευής, η έρευνα αυτή γίνεται pixel-to-pixel, το υπολογιστικό<br />
κόστος είναι τεράστιο. Επομένως για να περιορίσουμε τόσο το κόστος, όσο και τα δεδομένα,<br />
μετατρέπουμε το δισδιάστατο αλγόριθμο σε μονοδιάστατο ώστε να ψάχνει για σωστές<br />
αντιστοιχίσεις μόνο κατά μήκος του οριζόντιου άξονα. Για αυτό το λόγο είναι απαραίτητο οι<br />
φωτογραφίες να είναι απόλυτα ευθυγραμμισμένες μεταξύ τους, το οποίο επιτυγχάνεται με<br />
μετασχηματισμό των συντεταγμένων της δεξιάς εικόνας, σε σχέση με την αριστερή.<br />
Αν δεν υπάρχουν γεωμετρικές παραμορφώσεις λόγω του φακού, αυτός ο μετασχηματισμός<br />
είναι γραμμικός. Ουσιαστικά μετακινείται η δεξιά εικόνα στους άξονες x,y ώστε να βρεθεί στο ίδιο<br />
επίπεδο με την αριστερή εικόνα και αν έχουν διαφορετικό μέγεθος, αλλάζει κλίμακα ώστε να είναι<br />
ισομεγέθεις. Στη συνέχεια περιστρέφονται τα pixel γύρω από τον άξονα των z και με την εφαρμογή<br />
του συντελεστή απόκλισης, ευθυγραμμίζονται απευθείας. Επειδή όμως οι κάμερες έχουν<br />
γεωμετρικές παραμορφώσεις, ο μετασχηματισμός είναι πιο πολύπλοκος. Ουσιαστικά<br />
ευθυγραμμίζει τις επιπολικές ευθείες όλων των σημείων οι οποίες εντέλει είναι παράλληλες με τον<br />
οριζόντιο άξονα και τα επίπολα των δύο καμερών βρίσκονται στο άπειρο (σχήμα 8.1).<br />
80
Κεφάλαιο 8: Τρισδιάστατη ανακατασκευή<br />
Σχήμα 8.1: Ευθυγραμμισμένες επιπολικές ευθείες μετά το image rectification<br />
Στη διεθνή βιβλιογραφία έχουν προταθεί διάφορες μέθοδοι διόρθωσης των εικόνων, όπως<br />
π.χ. αυτή των Zhang et al., Fusiello et al., Pollefeys et al. Από τις μεθόδους αυτές, η μέθοδος του<br />
Zhang έχει το πλεονέκτημα ότι ελαχιστοποιεί την παραμόρφωση των εικόνων κατά την διόρθωση,<br />
ενώ η μέθοδος του Pollefeys είναι η μόνη η οποία μπορεί να λειτουργήσει ακόμα και αν κάποιο<br />
από τα επίπολα είναι επί της εικόνας. Εμείς στην υλοποίηση μας χρησιμοποιήσαμε τη μέθοδο του<br />
Fusiello καθώς είναι η απλούστερη όλων, ενώ τα αποτελέσματα της είναι πολύ ικανοποιητικά για<br />
τις ακολουθίες φωτογραφιών που την εφαρμόσαμε. Μόνος περιορισμός της είναι ότι πρέπει, για να<br />
είναι εφαρμόσιμη, τα επίπολα να βρίσκονται εκτός των εικόνων, και σε μεγάλη σχετικά απόσταση.<br />
Αυτό ισοδυναμεί με την απαίτηση, η κύρια συνιστώσα της κίνησης της κάμερας να μην είναι κατά<br />
μήκος του z άξονα. Η απαίτηση αυτή πάντως επιβάλλεται και από άλλους λόγους, καθώς στην<br />
περίπτωση της κίνησης στη διεύθυνση του z άξονα, η αβεβαιότητα της τρισδιάστατης<br />
ανακατασκευής είναι πολύ μεγάλη, για λόγους καθαρά αριθμητικής ευστάθειας.<br />
8.3 Disparity Map (Χάρτης βάθους)<br />
Μία πρώτη εκτίμηση του βάθους της σκηνής μας δίνει ο χάρτης βάθους ή ορθότερα, ο<br />
χάρτης διαφορών ( disparity map). Με χρήση του disparity των pixel, υπολογίζει το βάθος των<br />
αντικειμένων, την απόσταση δηλαδή που έχουν τα αντικείμενα που απεικονίζει η σκηνή από την<br />
κάμερα. Χρησιμοποιώντας χρωματικές διαβαθμίσεις, δείχνει πόσο έχει υπολογίσει το disparity σε<br />
κάθε σημείο της εικόνας. Να σημειώσουμε ότι ακολουθείται όλη η διαδικασία του matching και<br />
του image rectification που έχουμε αναλύσει και στη συνέχεια χρησιμοποιούνται οι μέθοδοι που<br />
αναφέρονται στο Computer Vision System Toolbox for Matlab. Η καθεμία έχει σαν αποτέλεσμα<br />
έναν διαφορετικό χάρτη βάθους που θα παρουσιάσουμε στην ενότητα της πειραματικής<br />
διαδικασίας που ακολουθεί.<br />
8.4 Τρισδιάστατη ανακατασκευή ( 3D reconstruction)<br />
Το τελευταίο στάδιο είναι η ανακατασκευή του τρισδιάστατου χώρου. Συνδυάζοντας τα<br />
πειραματικά αποτελέσματα όλης της διαδικασίας και χρησιμοποιώντας ξανά το Computer Vision<br />
81
Κεφάλαιο 8: Τρισδιάστατη ανακατασκευή<br />
System Toolbox for Matlab , είμαστε σε θέση να αναπαραστήσουμε σε τρισδιάστατο πλέον επίπεδο<br />
τη σκηνή που απεικονίζει το στερεοσκοπικό ζεύγος φωτογραφιών. Ο κώδικας που χρησιμοποιούμε<br />
για την ανακατασκευή απαιτεί γνώση της μήτρας των εσωγενών παραμέτρων Κ που υπολογίστηκε<br />
στο στάδιο της βαθμονόμησης. Επειδή αυτή η μήτρα περιέχει και τις μονάδες μέτρησης των<br />
στοιχείων της, μπορούμε να προβάλουμε τη σκηνή σε τρισδιάστατο άξονα συντεταγμένων<br />
ορισμένο σε μέτρα για να γίνει κατανοητό, τόσο το μέγεθος των αντικειμένων, όσο και το βάθος<br />
της σκηνής. Επίσης, είναι ένα τρόπος ελέγχου της αξιοπιστίας των αποτελεσμάτων. Κατά πόσο<br />
δηλαδή η αναπαράσταση ανταποκρίνεται στην πραγματικότητα. Τέλος, χρησιμοποιεί τα φυσικά<br />
χρώματα που περιέχουν οι αρχικές φωτογραφίες, με αποτέλεσμα η σκηνή να φαίνεται αρκετά<br />
ρεαλιστική.<br />
8.5 Πειραματική διαδικασία<br />
8.5.1 Διόρθωση εικόνων<br />
Όπως και στα πειράματα των προηγούμενων κεφαλαίων, οι ρυθμίσεις της κάμερας<br />
παρέμειναν σταθερές μεταξύ των δύο λήψεων και το baseline είναι και εδώ 5cm. Οι παράμετροι<br />
της κάμερας είναι γνωστές από τη διαδικασία της βαθμονόμησης και οι αρχικές φωτογραφίες είναι<br />
απαλλαγμένες από τις παραμορφώσεις του φακού. Χρησιμοποιήσαμε δηλαδή τις ‘undistorted’<br />
φωτογραφίες οι οποίες παρουσιάζονται στο παρακάτω σχήμα:<br />
Σχήμα 8.2: Αρχικό ζεύγος φωτογραφιών<br />
Για τη διεξαγωγή του πειράματος χρησιμοποιήσαμε τους αλγορίθμους που υπάρχουν στο matlab<br />
και σχετίζονται με το image rectification. Αρχικά εντοπίσαμε τα σημεία ενδιαφέροντος στις δύο<br />
εικόνες (σχήματα 8.3-8.4).<br />
82
Κεφάλαιο 8: Τρισδιάστατη ανακατασκευή<br />
Σχήμα 8.3: Εντοπισθείσες γωνίες στην αριστερή εικόνα<br />
Σχήμα 8.4: Εντοπισθείσες γωνίες στη δεξιά εικόνα<br />
83
Κεφάλαιο 8: Τρισδιάστατη ανακατασκευή<br />
Στη συνέχεια κάναμε τη διαδικασία της αντιστοίχισης, όπως περιγράφθηκε αναλυτικά στο<br />
προηγούμενο κεφάλαιο και το τελικό αποτέλεσμα, μετά τη διόρθωση των λανθασμένων<br />
αντιστοιχίσεων παρουσιάζεται στο ακόλουθο σχήμα:<br />
Σχήμα 8.5: Αντιστοιχίσεις σημείων ενδιαφέροντος<br />
Τέλος υπολογίστηκαν οι διορθωμένες ( rectified) εικόνες οι οποίες εμφανίζονται στην παρακάτω<br />
κοινή φωτογραφία:<br />
Σχήμα 8.6: Διορθωμένες εικόνες<br />
84
Κεφάλαιο 8: Τρισδιάστατη ανακατασκευή<br />
Για να γίνει οπτικά πιο ξεκάθαρη η ευθυγράμμιση των δύο φωτογραφιών, παρουσιάζονται μαζί με<br />
τις επιπολικές τους γραμμές στο επόμενο σχήμα:<br />
Σχήμα 8.7: Οι επιπολικές ευθείες<br />
8.5.2 Disparity Maps<br />
Αφού οι φωτογραφίες μας πλέον είναι rectified, χρησιμοποιούμε τη μέθοδο του Basic Block<br />
Matching, ορίζουμε το disparityRange = 150 (εξ’ού και η κλίμακα του υπομνήματος) και ο<br />
disparity map που προκύπτει από την εφαρμογή της είναι ο ακόλουθος (σχήμα 8.8):<br />
Σχήμα 8.8: Disparity map με Basic Block Matching<br />
Είναι φανερό από το παραπάνω σχήμα ότι η μέθοδος εισάγει πολύ θόρυβο στο χάρτη. Για<br />
να βελτιώσουμε την εικόνα του, χρησιμοποιούμε τη μέθοδο του δυναμικού προγραμματισμού<br />
(Dynamic Programming) και ο χάρτης που προκύπτει είναι ο ακόλουθος (σχήμα 8.9):<br />
85
Κεφάλαιο 8: Τρισδιάστατη ανακατασκευή<br />
Σχήμα 8.9: Disparity Map με Dynamic Programming<br />
Στην παραπάνω μέθοδο εφαρμόσαμε το δυναμικό προγραμματισμό σε κάθε γραμμή<br />
ξεχωριστά. Όπως φαίνεται από το χάρτη, ο δυναμικός προγραμματισμός, εισάγει λάθη από μόνος<br />
του καθώς έχει ‘επιβάλει’ έναν συντελεστή εξομάλυνσης γύρω από τα όρια των αντικειμένων.<br />
Αυτός είναι και ο λόγος που φαίνεται πιο ‘θολός’ αυτός ο χάρτης. Να σημειωθεί ότι δεν εξομαλύνει<br />
τις περιοχές που βρίσκονται μεταξύ των γραμμών γι’ αυτό και προκύπτουν οι ‘ραβδώσεις’ στις<br />
άκρες των αντικειμένων. Αποτελεί όμως σίγουρα βελτιωμένη εκδοχή σε σχέση με το χάρτη που<br />
εμφάνισε η πρώτη μέθοδος.<br />
86<br />
Σχήμα 8.10: Disparity map με Combined Pyramiding and Dynamic Programming
Κεφάλαιο 8: Τρισδιάστατη ανακατασκευή<br />
Στο σχήμα 8.10 παρουσιάζεται το αποτέλεσμα από την εφαρμογή της μεθόδου Combined<br />
Pyramiding and Dynamic Programming. Βλέπουμε ότι έχουν διορθωθεί τα λάθη στην αριστερή<br />
πλευρά της εικόνας, αφού όλα τα αντικείμενα είναι σχεδόν στην ίδια απόσταση από την κάμερα.<br />
Όμως και πάλι η αναπαράσταση δεν ανταποκρίνεται απόλυτα στην πραγματικότητα, αλλά είναι μια<br />
καλή διόρθωση των δύο προηγούμενων μεθόδων.<br />
8.5.3 Τρισδιάστατη ανακατασκευή<br />
Στο τελικό στάδιο της διαδικασίας χρησιμοποιήσαμε όλα τα παραπάνω αποτελέσματα<br />
καθώς και τη μήτρα εσωγενών παραμέτρων της κάμερας:<br />
K = [4368.8 0 1583.2<br />
0 4360.7 1232.9<br />
0 0 1];<br />
Έτσι ανακατασκευάσαμε την τρισδιάστατη σκηνή η οποία απεικονίζεται στο σχήμα 8.11. Να<br />
αναφέρουμε ότι τα αντικείμενα που απεικονίζονται σε αυτή τη σκηνή είχαν απόσταση 1m από την<br />
κάμερα.<br />
Σχήμα 8.11: Τρισδιάστατη ανακατασκευή της σκηνής που απεικονίζεται στο σχήμα 7.2<br />
Στις παρακάτω μεγεθύνσεις (σχήματα 8.12 -8.13), βλέπουμε ότι το κουτί έχει ανακατασκευαστεί<br />
σχεδόν πλήρως καθώς και ένα μεγάλο μέρος του αντικειμένου που βρίσκεται μπροστά του. Το<br />
κατακόρυφα τοποθετημένο μολύβι όμως, έχει χαθεί τελείως από τη σκηνή. Το background έχει<br />
σχηματιστεί στο μέρος που στον τελευταίο χάρτη βάθους είχε εκτιμηθεί σωστά (πάνω δεξιά<br />
πλευρά). Επίσης, βλέπουμε από τους τρισδιάστατους άξονες, ότι έχει υπολογιστεί σωστά τόσο το<br />
ύψος του background όσο και το πλάτος της σκηνής. Το βάθος ήταν αναμενόμενο να μη βγει<br />
απόλυτα σωστό, αφού αυτό ουσιαστικά είναι το αποτέλεσμα όλης της πειραματικής διαδικασίας.<br />
87
Κεφάλαιο 8: Τρισδιάστατη ανακατασκευή<br />
Προφανώς και θα έχει σφάλματα, λόγω ατελειών τόσο της πειραματικής διάταξης, όσο και των<br />
αλγορίθμων εύρεσης γωνιών, αντιστοίχησης και διόρθωσης.<br />
Σχήμα 8.12: 1 η μεγέθυνση του σχήματος 8.11<br />
Σχήμα 8.13: 2 η μεγέθυνση του σχήματος 8.11<br />
Ακολουθήσαμε ακριβώς την ίδια διαδικασία για ένα ζεύγος φωτογραφιών που έχει απόσταση από<br />
την κάμερα 1,6m. Το ζεύγος χρησιμοποιήθηκε και στο κεφάλαιο 7 και παρουσιάζεται στο σχήμα<br />
8.14. Η τελική τρισδιάστατη αναπαράσταση της σκηνής που απεικονίζεται σε αυτό το ζεύγος<br />
φωτογραφιών παρουσιάζεται στο σχήμα 8.15 και το σχήμα 8.16 αποτελεί μεγέθυνση του 8.15.<br />
88
Κεφάλαιο 8: Τρισδιάστατη ανακατασκευή<br />
Σχήμα 8.14: Το ζεύγος των φωτογραφιών που χρησιμοποιήθηκαν<br />
Σχήμα 8.15: Η τρισδιάστατη ανακατασκευή της σκηνής που απεικονίζεται στο σχήμα 8.14<br />
Παρατηρούμε πως σε αυτή την περίπτωση, η ανακατασκευή είναι πολύ ικανοποιητική. Οι<br />
διαστάσεις της σκηνής είναι σωστές, το βάθος είναι σε γενικές γραμμές αντιπροσωπευτικό της<br />
πραγματικότητας και τα αντικείμενα είναι σχεδόν εξ’ ολοκλήρου σωστά ανακατασκευασμένα,<br />
89
Κεφάλαιο 8: Τρισδιάστατη ανακατασκευή<br />
όπως και το background. Βλέπουμε και εδώ βέβαια ότι υπάρχουν πολλά περιθώρια βελτίωσης<br />
στους αλγορίθμους, αφού τα σφάλματα που παρουσιάζονται δεν μπορούν να παραβλεφθούν.<br />
Σχήμα 8.16: Μεγέθυνση του σχήματος 7.15<br />
8.6 Εφαρμογή του αλγορίθμου για σκηνές μεγαλύτερου βάθους<br />
Στα πλαίσια της ως τώρα εργασίας μας, έχουμε ασχοληθεί με ζεύγη φωτογραφιών που<br />
απεικονίζουν σκηνές μικρού σχετικά βάθους και μικρής απόστασης από την κάμερα. Για<br />
πειραματικούς λόγους θα πραγματοποιήσουμε όλη την διαδικασία ανακατασκευής χώρου και για<br />
μία σκηνή μεγαλύτερου βάθους.<br />
Και αυτό το ζεύγος φωτογραφιών έχει ληφθεί με τις ίδιες εσωτερικές παραμέτρους και την<br />
ίδια πλευρική μετατόπιση, όπως και όλα τα προηγούμενα. Το στερεοσκοπίκο ζεύγος φαίνεται στο<br />
σχήμα 8.17:<br />
Σχήμα 8.17: Στερεοσκοπικό ζεύγος μεγάλου βάθους<br />
Το πρώτο βήμα της διαδικασίας είναι ο εντοπισμός των σημείων ενδιαφέροντος των<br />
εικόνων με τον Harris Corner Detector, τα αποτελέσματα του οποίου φαίνονται στο επόμενο<br />
σχήμα:<br />
90
Κεφάλαιο 8: Τρισδιάστατη ανακατασκευή<br />
Σχήμα 8.18: Εντοπισθέντα σημεία ενδιαφέροντος<br />
Έπειτα ακολουθεί η διαδικασία της αρχικής αντιστοίχισης των γωνιών που εντόπισε ο<br />
Harris Corner Detector (σχήμα 8.19):<br />
Σχήμα 8.19: Αρχική αντιστοίχιση σημείων ενδιαφέροντος<br />
Στη συνέχεια, εφαρμόσαμε μια σθεναρή μέθοδο απόρριψης λανθασμένων αντιστοιχίσεων.<br />
Αυτή που ήταν αποδοτικότερη στο παρόν ζεύγος είναι ο LMedS (σχήμα 8.20) . Ο βελτιωμένος<br />
LMedS, για Disp_xmax=35, Disp_xmin=4 και Disp_ymax=10 έδωσε τα αποτελέσματα του<br />
σχήματος 8.21.<br />
91
Κεφάλαιο 8: Τρισδιάστατη ανακατασκευή<br />
Σχήμα 8.20: Αντιστοιχίσεις σημείων ενδιαφέροντος με LMedS<br />
Σχήμα 8.21: Αντιστοιχίσεις σημείων ενδιαφέροντος βελτιωμένου LMedS<br />
92
Κεφάλαιο 8: Τρισδιάστατη ανακατασκευή<br />
Επόμενο βήμα της διαδικασίας είναι η ‘διόρθωση’ των εικόνων (image rectification), βάσει<br />
των inliers του βελτιωμένου LMedS, όπως φαίνεται και στο σχήμα 8.22.<br />
Σχήμα 8.22: Διορθωμένες εικόνες με τις επιπολικές γραμμές<br />
Για τις rectified εικόνες η μέθοδος του Basic Block Matching με disparityRange = 65, έδωσε το<br />
disparity map σχήματος 8.23:<br />
Σχήμα 8.23: Disparity map με Basic Block Matching<br />
Τα αποτελέσματα του αλγορίθμου είναι αρκετά ικανοποιητικά, αφού είναι ορατά τα<br />
αντικείμενα στα διαφορετικά βάθη και επίσης διότι τα αντικείμενα πλησιέστερα στην κάμερα έχουν<br />
μεγαλύτερο disparity, όπως είναι λογικό.<br />
Στη συνέχεια εφαρμόσαμε τον δυναμικό προγραμματισμό (σχήμα 8.24) και τα<br />
αποτελέσματα ήταν εξίσου ικανοποιητικά.<br />
93
Κεφάλαιο 8: Τρισδιάστατη ανακατασκευή<br />
Σχήμα 8.24: Disparity Map με Dynamic Programming<br />
Στο παραπάνω σχήμα είναι εμφανής η εξομάλυνση που πραγματοποιεί ο αλγόριθμος σε<br />
σχέση με τα αποτελέσματα του Basic Block Matching. Η επόμενη μέθοδος που εφαρμόσαμε ήταν<br />
το Pyramid With Dynamic programming and sub-pixel accuracy του σχήματος 8.25:<br />
Σχήμα 8.25: Disparity map με Pyramiding with Dynamic Programming and sub-pixel accuracy<br />
94
Κεφάλαιο 8: Τρισδιάστατη ανακατασκευή<br />
Παρατηρούμε πως η τελευταία μέθοδος δεν απέδωσε καλύτερα αποτελέσματα από το<br />
Dynamic Programming, μάλλον το αντίθετο. Τελευταίο βήμα της διαδικασίας είναι η ίδια η 3d<br />
ανακατασκευή. Τα αποτελέσματα φαίνονται στα επόμενα σχήματα:<br />
Σχήμα 8.26: Τρισδιάστατη ανακατασκευή της σκηνής του στερεοσκοπικού ζεύγους<br />
Σχήμα 8.27: Λεπτομέρεια του σχήματος 8.26<br />
Ακολουθώντας όλη τη διαδικασία, παρατηρούμε πως τα αποτελέσματα είναι ιδιαίτερα<br />
ικανοποιητικά, αν και υπάρχουν πολλά περιθώρια βελτίωσης, ειδικά στην ανακατασκευή. Ήταν<br />
αναμενόμενο να έχουμε λάθος στην εκτίμηση του βάθους, αφού η κάμερα είχε ρυθμιστεί να<br />
εστιάσει στο 1m ενώ η σκηνή είχε βάθος έως και 8m. Παρόλα αυτά μπορούμε να βγάλουμε το<br />
συμπέρασμα πως η διαδικασία λειτουργεί αποτελεσματικά και για σκηνές μεγαλύτερου βάθους.<br />
95
Κεφάλαιο 9: Συμπεράσματα<br />
Κεφάλαιο 9: Συμπεράσματα<br />
Στα πλαίσια της διπλωματικής εργασίας που πραγματοποιήσαμε, κατασκευάσαμε ένα<br />
πλήρες μοντέλο τρισδιάστατης ανακατασκευής χώρου, το οποίο δέχεται σαν εισόδους δύο<br />
φωτογραφίες, που πρέπει να υπακούουν σε κάποιους περιορισμούς. Οι φωτογραφίες θα πρέπει να<br />
έχουν ληφθεί από μια κάμερα με σταθερές παραμέτρους, η οποία θα πρέπει να κινείται μόνο κατά<br />
μια πλευρική μετατόπιση (stereo vision).<br />
Πρόθεσή μας ήταν να δώσουμε, όσο πιο απλά μπορούμε, τις βασικές αρχές και το<br />
μαθηματικό υπόβαθρο πάνω στο οποίο στηρίζεται η τρισδιάστατη ανακατασκευή, άλλα και να<br />
περιγράψουμε σε ικανοποιητικό βαθμό την πειραματική διαδικασία, η οποία είναι απαραίτητη για<br />
την εξαγωγή των επιθυμητών αποτελεσμάτων.<br />
Η πορεία που ακολουθήθηκε σε πειραματικό επίπεδο ήταν η εξής:<br />
α) Βαθμονόμηση της κάμερας, για την εξεύρεση των απαραίτητων παραμέτρων αυτής.<br />
β) Εντοπισμός και αντιστοίχηση των σημείων ενδιαφέροντος (γωνιών) των δύο φωτογραφιών.<br />
γ) Υπολογισμός της τρίτης διάστασης (βάθος), αποκρυπτογραφώντας τα δισδιάστατα επίπεδα<br />
προβολής των φωτογραφιών.<br />
δ) Ανακατασκευή του τρισδιάστατου χώρου.<br />
Επιδίωξη μας, κατά την πορεία αυτή, ήταν να δώσουμε την ίδια βαρύτητα σε όλα τα<br />
βήματα, αν και τελικά ο κεντρικός άξονας πάνω στον οποίο κινηθήκαμε ήταν ο σωστός<br />
υπολογισμός του βάθους, του ακρογωνιαίου λίθου, ουσιαστικά, της τρισδιάστατης ανακατασκευής<br />
χώρου. Παρόλα αυτά, δεν υπάρχει σημείο της όλης διαδικασίας που να μην αναδείχθηκε, αφού<br />
σκοπός μας ήταν η απόκτηση σφαιρικής γνώσης γύρω από το αντικείμενο της τρισδιάστατης<br />
ανακατασκευής χώρου.<br />
Το μοντέλο το οποίο κατασκευάσθηκε, αν και έδωσε ικανοποιητικά αποτελέσματα, σε<br />
καμία περίπτωση δε θα μπορούσε να χαρακτηριστεί τέλειο. Ούτως ή άλλως δεν ήταν αυτός ο<br />
σκοπός της διπλωματικής εργασίας μας. Ωστόσο, στη συνέχεια, δίνονται κάποιες διορθώσεις και<br />
πιθανές βελτιώσεις, που θα μπορούσαν να οδηγήσουν σε ικανοποιητικότερα αποτελέσματα:<br />
Χρήση καλύτερων φακών στη φωτογραφική μηχανή. Καλύτερη ποιότητα φακού συνεπάγεται<br />
και μείωση των μη γραμμικών παραμορφώσεων, κυρίως της ακτινικής που επηρεάζει τη<br />
γραμμικότητα του μοντέλου.<br />
Χρήση ακριβέστερων αλγορίθμων βαθμονόμησης. Σε συνδυασμό με τη χρήση καλύτερων<br />
φακών, η εύρεση των παραμέτρων της κάμερας, εσωγενών και εξωγενών, μπορεί να γίνει με<br />
μεγαλύτερη ακρίβεια. Με αυτό τον τρόπο, αποφεύγονται μεγάλες αποκλίσεις μεταξύ<br />
πειραματικών και πραγματικών δεδομένων, όπως η εκτίμηση που μας έδωσε το stereo<br />
calibration για την μετατόπιση της κάμερας (2cm) σε σχέση με την πραγματική (5cm).<br />
Χρήση αλγορίθμων αυτο-βαθμονόμησης. Με τη χρήση αυτών των αλγορίθμων, αντί της<br />
βαθμονόμησης που πραγματοποιήσαμε στην παρούσα εργασία, μπορούμε να εξάγουμε τις<br />
παραμέτρους της κάμερας από κάθε ζεύγος φωτογραφιών που χρησιμοποιούμε. Με αυτό τον<br />
τρόπο, αποφεύγουμε την εκ τω προτέρων απαραίτητη γνώση των παραμέτρων για κάθε εστιακή<br />
<br />
απόσταση που χρησιμοποιούμε.<br />
Κατασκευή ακριβέστερης πειραματικής διάταξης. Στα πλαίσια της εργασίας μας κάναμε την<br />
παραδοχή πως το ζεύγος φωτογραφιών που χρησιμοποιούσαμε ήταν στερεοσκοπικό. Αυτό δε<br />
συνέβαινε στην πραγματικότητα, αφού η πειραματική διάταξη που χρησιμοποιούσαμε εκτός<br />
από την πλευρική μετατόπιση, εισήγαγε μικρές μετατοπίσεις και στους άλλους δύο άξονες.<br />
Επίσης, ήταν αδύνατο να μην υπάρξει και μια μικρή περιστροφή κατά τη διεξαγωγή των<br />
πειραμάτων.<br />
Χρήση αποτελεσματικότερων μεθόδων αντιστοίχισης των σημείων ενδιαφέροντος.<br />
Χρησιμοποιώντας αποτελεσματικότερες μεθόδους αρχικής αντιστοίχισης και απόρριψης<br />
λανθασμένων αντιστοιχίσεων, μπορούμε να αποκλείσουμε όλες τις λανθασμένες αντιστοιχίσεις<br />
που μας κοστίζουν στην ακρίβεια των αποτελεσμάτων.<br />
96
Κεφάλαιο 9: Συμπεράσματα<br />
<br />
Χρήση αλγορίθμων για το image rectification, που λειτουργούν ακόμα και αν τα επίπολα<br />
βρίσκονται εντός των φωτογραφιών.<br />
97
Βιβλιογραφία<br />
Βιβλιογραφία<br />
Κεφάλαιο 1: Εισαγωγή<br />
[1]Richard Szeliski: “Computer Vision: Algorithms and Applications”, March 30,2008<br />
[2] Massimo Picardi and Tony Jan: “Recent advances in computer vision”<br />
[3]http://en.wikipedia.org/wiki/Computer_stereo_vision<br />
Κεφάλαιο 2:<br />
[4] Οlivier Faugeras: “Three-Dimensional Computer Vision: A geometric viewpoint”, 1993, MIT<br />
press.<br />
[5] F. Ayers: “Theory and Problems of Projective Geometry”, Schaum's Outline Se-ries, McGraw-<br />
Hill, New York, 1967.<br />
[6] Reinhard R. Beichel: “Chapter 9, 3D Vision (Part I): Geometry for 3D vision/ Basics of<br />
projective geometry”, Internet lectures.<br />
http://css.engineering.uiowa.edu/~dip/LECTURE/3DVisionP1_2.html<br />
[7] Stan Birchfield: “ An introduction to Projective Geometry (for computer vision)”, online<br />
tutorial,1998.<br />
http://ai.stanford.edu/~birch/projective/projective.html<br />
[8] http://www.cs.mtu.edu/~shene/COURSES/cs3621/NOTES/geometry/geo-tran.html<br />
Κεφάλαιο 3:<br />
[9] Anthony Whitehead and Gerhard Roth: “Estimating Intrinsic Camera Parameters from the<br />
Fundamental Matrix Using an Evolutionary Approach”<br />
[10] Eduardo Bayro-Corrochano and Bodo Rosenhahn: “Analysis and Computation of the<br />
Intrinsic Camera Parameters”<br />
[11] J. Y. Bouguet: Camera Calibration Toolbox for Matlab,<br />
http://www.vision.caltech.edu/bouguetj/calib_doc/htmls/parameters.html<br />
[12]http://en.wikipedia.org/wiki/Pinhole_camera_model<br />
[13] http://www.cse.unr.edu/~bebis/CS791E/Notes/CameraParameters.pdf<br />
[14] Αναστάσιος Ι. Μουρίκης: “Τρισδιάστατη Ανακατασκευή Χώρου με Κινούμενη Εικονοληψία”,<br />
Διπλωματική εργασία, Ιούνιος 2003.<br />
[15] http://en.wikipedia.org/wiki/Distortion_(optics)<br />
[16]http://siddhantahuja.wordpress.com/tag/sum-of-squared-differences/<br />
Κεφάλαιο 4:<br />
[17] Janne Heikkilä and Olli Silvén: “A four step camera calibration procedure with implicit image<br />
correction”, CVPR97<br />
[18] J. Y. Bouguet: Camera Calibration Toolbox for Matlab,<br />
http://www.vision.caltech.edu/bouguetj/calib_doc/htmls/example.html<br />
[19] Ζ. Zhang: “Flexible Camera Calibration By Viewing a Plane From Unknown Orientations”,<br />
ICCV99.<br />
[20] Αναστάσιος Ι. Μουρίκης: “Τρισδιάστατη Ανακατασκευή Χώρου με Κινούμενη Εικονοληψία”,<br />
Διπλωματική εργασία, Ιούνιος 2003.<br />
98
Βιβλιογραφία<br />
Κεφάλαιο 5:<br />
[21] D.Parks, J.P. Gravel: “Corner Detection”.<br />
[22] Z. Zheng, H. Wang, E. K. Teoh: “Analysis of gray level corner detection”, Pat-tern<br />
Recognition Letters, 1999<br />
[23] C.G. Harris and M.J. Stephens: "A combined corner and edge detector", Proceed-ings Fourth<br />
Alvey Vision Conference, Manchester, pp 147-151, 1988.<br />
[24] http://people.scs.carleton.ca/~c_shu/Courses/comp4900d/notes/lect9_corner.pdf<br />
Κεφάλαιο 6:<br />
[25] Thomas Bräunl: “Parallaxis-III: A Language for Structured Data-Parallel Programming”,<br />
online lectures.<br />
[26] G. Calin and V. O. Roda: “Real-time disparity map extraction in a dual head stereo vision<br />
system”.<br />
http://www.scielo.org.ar/scielo.phppid=S0327-07932007000100005&script=sci_arttext<br />
[27] http://en.wikipedia.org/wiki/Epipolar_geometry<br />
Κεφάλαιο 7:<br />
[28] Jernej Mrovlje and Damir Vrancic: “Distance measuring based on stereoscopic pictures”, PhD<br />
thesis.<br />
[29] Tjandranegara, Edwin , "Distance Estimation Algorithm for Stereo Pair Images" (2005). ECE<br />
Technical Reports. Paper 64.<br />
http://docs.lib.purdue.edu/ecetr/64<br />
[30] Mikko Kytö, Mikko Nuutinen, Pirkko Oittinen : “Method for measuring stereo<br />
camera depth accuracy based on stereoscopic vision”<br />
[31] Dion Boesten : “Depth estimation for stereo image pairs”, October 15, 2009.<br />
[32] Rostam Affendi Hamzah and Sani Irwan Md Salim: “Software Calibration for Stereo Camera<br />
on Stereo Vision Mobile Robot using Tsai’s Method”<br />
[33] P. Torr, D. Murray: “The Development and comparison of Robust Methods for Estimating the<br />
Fundamental Matrix”, Int. Journal of Computer Vision, v 24, n. 3, pp 271-300, 1997.<br />
Κεφάλαιο 8:<br />
[34] A. Fusiello, E. Trucco, and A. Verri. A compact algorithm for rectification of stereo<br />
pairs. Machine Vision and Applications, 12(1):16-22, 2000.<br />
[35] C. Loop, Z. Zhang: “Computing Rectifying Homographies for Stereo Vision”, CVPR99, Fort<br />
Collins, CO, pp I:125-131<br />
[36] M. Pollefeys, R. Koch, L. VanGool: “A Simple and Efficient Rectification Method for General<br />
Motion”, ICCV99, Corfu, Greece, pp 496-501<br />
[37] M. Pollefeys: “Self-calibration and Metric 3D Reconstruction from Uncalibrated Image<br />
Sequences”, PhD thesis, 1999.<br />
99
Παράρτημα<br />
Παράρτημα – Υλοποίηση Matlab<br />
Στο παράρτημα αυτό παραθέτονται τα σημαντικότερα αρχεία του κώδικα matlab που<br />
χρησιμοποιήσαμε στα πλαίσια της εργασίας μας.<br />
% Harris_corner_detector.m<br />
% εισαγωγή στρεοσκοπικού ζεύγους και εύρεση γωνιών με Harris corner<br />
% detector<br />
I1 = im2double(rgb2gray(imread('left.jpg')));<br />
I2 = im2double(rgb2gray(imread('right.jpg')));<br />
cvexShowImagePair(I1, I2, 'Left image', 'Right image');<br />
cvexShowMatches(I1, I2, [], [], 'Left image', 'Right image');<br />
hcornerdet = vision.CornerDetector('MaximumCornerCount', 500, ...<br />
'CornerThreshold', 1.0e-4, 'NeighborhoodSize', [21 21]);<br />
cornerPoints1 = step(hcornerdet, I1);<br />
cornerPoints2 = step(hcornerdet, I2);<br />
cvexShowImagePair(I1, I2, 'Corners in left image', ...<br />
'Corners in right image', 'SingleColor', cornerPoints1, cornerPoints2);<br />
---------------------------------------------------------------------<br />
% initial_matcing.m<br />
% αρχική αντιστοίχιση των γωνιών του Harris corner detector<br />
[features1, validPoints1] = extractFeatures(I1, cornerPoints1, ...<br />
'BlockSize', 9);<br />
[features2, validPoints2] = extractFeatures(I2, cornerPoints2, ...<br />
'BlockSize', 9);<br />
[indexPairs, match_metric] = matchFeatures(features1, features2, ...<br />
'Metric', 'normxcorr', 'MatchThreshold', 10);<br />
% Retrieve locations of matched points for each image<br />
matchedPoints1 = validPoints1(:, indexPairs(1, :));<br />
matchedPoints2 = validPoints2(:, indexPairs(2, :));<br />
cvexShowMatches(I1, I2, matchedPoints1, matchedPoints2, ...<br />
'Matched points in I1', 'Matched points in I2');<br />
---------------------------------------------------------------------<br />
% RANSAC.m<br />
% υπολογίζει τις σωστές αντιστοιχίσεις με τη μέθοδο του κλασσικού<br />
100
Παράρτημα<br />
% RANSAC<br />
[fMatrix, inliers] = estimateFundamentalMatrix(...<br />
matchedPoints1, matchedPoints2, 'Method', 'RANSAC', ...<br />
'NumTrials', 1000, 'DistanceThreshold',0.55, 'Confidence', 99.99);<br />
inlierPoints1 = matchedPoints1(:, inliers);<br />
inlierPoints2 = matchedPoints2(:, inliers);<br />
cvexShowMatches(I1, I2, inlierPoints1, inlierPoints2, ...<br />
'Inlier points in I1', 'Inlier points in I2');<br />
---------------------------------------------------------------------<br />
% LmedS.m<br />
% υπολογίζει τις σωστές αντιστοιχίσεις με τη μέθοδο του LMedS<br />
[fLMS, inliers] = estimateFundamentalMatrix(...<br />
matchedPoints1, matchedPoints2, ...<br />
'NumTrials', 2000);<br />
inlierPoints1 = matchedPoints1(:, inliers);<br />
inlierPoints2 = matchedPoints2(:, inliers);<br />
cvexShowMatches(I1, I2, inlierPoints1, inlierPoints2, ...<br />
'Inlier points in I1', 'Inlier points in I2');<br />
---------------------------------------------------------------------<br />
Στη συνέχεια παρατίθεται ο κώδικας που κατασκευάσαμε για να βελτιώνει τα<br />
αποτελέσματα του RANSAC και του LMedS, για τα δύο πακέτα τιμών των f και b, σε συνδυασμό<br />
με τον υπολογισμό του βάθους. Αρχικά, έχουμε για τις πειραματικές τιμές και στη συνέχεια για τις<br />
πραγματικές.<br />
% code_peir.m<br />
% αποκόπτει τυχόν outliers που έχουν περάσει από RANSAC ή LMedS, και<br />
% υπολογίζει το βάθος για τις πειραματικές τιμές των f και b<br />
disparity=inlierPoints1-inlierPoints2<br />
m=size(disparity)<br />
Disp_xmax=150;<br />
Disp_xmin=10;<br />
Disp_ymax=10;<br />
correct_inliers=0;<br />
for (i=1:m(2))<br />
if (disparity(1,i)
Παράρτημα<br />
x=1;<br />
for (i=1:m(2))<br />
if (disparity(1,i)
Παράρτημα<br />
inliers2= zeros(2,correct_inliers);<br />
x=1;<br />
for (i=1:m(2))<br />
if (disparity(1,i)
Παράρτημα<br />
% disparity map με basic block matching<br />
hIdtc = vision.ImageDataTypeConverter;<br />
hCsc = vision.ColorSpaceConverter('Conversion','RGB to intensity');<br />
leftI3chan = step(hIdtc,imread('left_rectified.jpg'));<br />
leftI = step(hCsc,leftI3chan);<br />
rightI3chan = step(hIdtc,imread('right_rectified.jpg'));<br />
rightI = step(hCsc,rightI3chan);<br />
figure(1), clf;<br />
imshow(rightI3chan), title('Right image');<br />
figure(2), clf;<br />
imshow(cat(3,rightI,leftI,leftI)), axis image;<br />
title('Color composite (right=red, left=cyan)');<br />
Dbasic = zeros(size(leftI), 'single');<br />
disparityRange = 150;<br />
% Selects (2*halfBlockSize+1)-by-(2*halfBlockSize+1) block.<br />
halfBlockSize = 3;<br />
blockSize = 2*halfBlockSize+1;<br />
% Allocate space for all template matcher System objects.<br />
tmats = cell(blockSize);<br />
% Initialize progress bar<br />
hWaitBar = waitbar(0, 'Performing basic block matching...');<br />
nRowsLeft = size(leftI, 1);<br />
% Scan over all rows.<br />
for m=1:nRowsLeft<br />
% Set min/max row bounds for image block.<br />
minr = max(1,m-halfBlockSize);<br />
maxr = min(nRowsLeft,m+halfBlockSize);<br />
% Scan over all columns.<br />
for n=1:size(leftI,2)<br />
minc = max(1,n-halfBlockSize);<br />
maxc = min(size(leftI,2),n+halfBlockSize);<br />
% Compute disparity bounds.<br />
mind = max( -disparityRange, 1-minc );<br />
maxd = min( disparityRange, size(leftI,2)-maxc );<br />
% Construct template and region of interest.<br />
template = rightI(minr:maxr,minc:maxc);<br />
templateCenter = floor((size(template)+1)/2);<br />
roi = [minr+templateCenter(1)-2 ...<br />
minc+templateCenter(2)+mind-2 ...<br />
1 maxd-mind+1];<br />
% Lookup proper TemplateMatcher object; create if empty.<br />
if isempty(tmats{size(template,1),size(template,2)})<br />
tmats{size(template,1),size(template,2)} = ...<br />
vision.TemplateMatcher('ROIInputPort',true);<br />
end<br />
thisTemplateMatcher = tmats{size(template,1),size(template,2)};<br />
end<br />
% Run TemplateMatcher object.<br />
loc = step(thisTemplateMatcher, leftI, template, roi);<br />
Dbasic(m,n) = loc(2) - roi(2) + mind;<br />
end<br />
waitbar(m/nRowsLeft,hWaitBar);<br />
close(hWaitBar);<br />
104
Παράρτημα<br />
figure(3), clf;<br />
imshow(Dbasic,[]), axis image, colormap('jet'), colorbar;<br />
caxis([0 disparityRange]);<br />
title('Depth map from basic block matching');<br />
---------------------------------------------------------------------<br />
% block_matching_with_dynamic_prog.m<br />
% μετά από το basic block matching δίνει το disparity map για το<br />
% block matching με dynamic programming<br />
Ddynamic = zeros(size(leftI), 'single');<br />
finf = 1e3; % False infinity<br />
disparityCost = finf*ones(size(leftI,2), 2*disparityRange + 1, 'single');<br />
disparityPenalty = 2; % Penalty for disparity disagreement between pixels<br />
hWaitBar = waitbar(0,'Using dynamic programming for smoothing...');<br />
% Scan over all rows.<br />
for m=1:nRowsLeft<br />
disparityCost(:) = finf;<br />
% Set min/max row bounds for image block.<br />
minr = max(1,m-halfBlockSize);<br />
maxr = min(nRowsLeft,m+halfBlockSize);<br />
% Scan over all columns.<br />
for n=1:size(leftI,2)<br />
minc = max(1,n-halfBlockSize);<br />
maxc = min(size(leftI,2),n+halfBlockSize);<br />
% Compute disparity bounds.<br />
mind = max( -disparityRange, 1-minc );<br />
maxd = min( disparityRange, size(leftI,2)-maxc );<br />
% Compute and save all matching costs.<br />
for d=mind:maxd<br />
disparityCost(n, d + disparityRange + 1) = ...<br />
sum(sum(abs(leftI(minr:maxr,(minc:maxc)+d) ...<br />
- rightI(minr:maxr,minc:maxc))));<br />
end<br />
end<br />
% Process scan line disparity costs with dynamic programming.<br />
optimalIndices = zeros(size(disparityCost), 'single');<br />
cp = disparityCost(end,:);<br />
for j=size(disparityCost,1)-1:-1:1<br />
% False infinity for this level<br />
cfinf = (size(disparityCost,1) - j + 1)*finf;<br />
% Construct matrix for finding optimal move for each column<br />
% individually.<br />
[v,ix] = min([cfinf cfinf cp(1:end-4)+3*disparityPenalty;<br />
cfinf cp(1:end-3)+2*disparityPenalty;<br />
cp(1:end-2)+disparityPenalty;<br />
cp(2:end-1);<br />
cp(3:end)+disparityPenalty;<br />
cp(4:end)+2*disparityPenalty cfinf;<br />
cp(5:end)+3*disparityPenalty cfinf cfinf],[],1);<br />
cp = [cfinf disparityCost(j,2:end-1)+v cfinf];<br />
% Record optimal routes.<br />
optimalIndices(j,2:end-1) = (2:size(disparityCost,2)-1) + (ix - 4);<br />
end<br />
% Recover optimal route.<br />
[~,ix] = min(cp);<br />
Ddynamic(m,1) = ix;<br />
for k=1:size(Ddynamic,2)-1<br />
Ddynamic(m,k+1) = optimalIndices(k, ...<br />
105
Παράρτημα<br />
max(1, min(size(optimalIndices,2), round(Ddynamic(m,k)) ) ) );<br />
end<br />
waitbar(m/nRowsLeft, hWaitBar);<br />
end<br />
close(hWaitBar);<br />
Ddynamic = Ddynamic - disparityRange - 1;<br />
figure(3), clf;<br />
imshow(Ddynamic,[]), axis image, colormap('jet'), colorbar;<br />
caxis([0 disparityRange]);<br />
title('Block matching with dynamic programming');<br />
---------------------------------------------------------------------<br />
% pyramid_dyn_prog_sub.m<br />
% δίνει το disparity map για το συνδυασμό pyramid και dynamic programming<br />
% με sub-pixel estimation<br />
DpyramidDynamic = vipstereo_blockmatch_combined(leftI,rightI, ...<br />
'NumPyramids',4, 'DisparityRange',150, 'DynamicProgramming',true, ...<br />
'Waitbar', true, ...<br />
'WaitbarTitle', 'Performing combined pyramid and dynamic programming');<br />
figure(3), clf;<br />
imshow(DpyramidDynamic,[]), axis('image'), colorbar, colormap jet;<br />
caxis([0 disparityRange]);<br />
title('3-level pyramid with dynamic programming');<br />
DdynamicSubpixel = vipstereo_blockmatch_combined(leftI,rightI, ...<br />
'NumPyramids',4, 'DisparityRange',150, 'DynamicProgramming',true, ...<br />
'Subpixel', true, ...<br />
'Waitbar', true, ...<br />
'WaitbarTitle', ['Performing combined pyramid and dynamic ',...<br />
'programming with sub-pixel estimation']);<br />
figure(4), clf;<br />
imshow(DdynamicSubpixel,[]), axis image, colormap('jet'), colorbar;<br />
caxis([0 disparityRange]);<br />
title('Pyramid with dynamic programming and sub-pixel accuracy');<br />
-----------------------------------------------------------------------<br />
% 3d_reconstruction.m<br />
% με βάση τις εσωγενείς παραμέτρους της κάμερας μας(KK_let) κάνει τρισδιάστατη<br />
% ανακατασκευή της σκηνής που φωτογραφίσαμε<br />
K=KK_left;<br />
% Create a sub-sampled grid for backprojection.<br />
dec = 2;<br />
[X,Y] = meshgrid(1:dec:size(leftI,2),1:dec:size(leftI,1));<br />
P = K\[X(:)'; Y(:)'; ones(1,numel(X), 'single')];<br />
Disp = max(0,DdynamicSubpixel(1:dec:size(leftI,1),1:dec:size(leftI,2)));<br />
hMedF = vision.MedianFilter('NeighborhoodSize',[5 5]);<br />
Disp = step(hMedF,Disp); % Median filter to smooth out noise.<br />
% Derive conversion from disparity to depth with tie points:<br />
knownDs = [15 9 2]'; % Disparity values in pixels<br />
knownZs = [4 4.5 6.8]';<br />
% World z values in meters based on scene measurements.<br />
106
ab = [1./knownDs ones(size(knownDs), 'single')] \ knownZs; % least squares<br />
% Convert disparity to z (distance from camera)<br />
ZZ = ab(1)./Disp(:)' + ab(2);<br />
% Threshold to [0,8] meters.<br />
ZZdisp = min(8,max(0, ZZ ));<br />
Pd = bsxfun(@times,P,ZZ);<br />
% Remove near points<br />
bad = Pd(3,:)>8 | Pd(3,:)