27.01.2015 Views

ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΠΑΤΡΩΝ - Nemertes

ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΠΑΤΡΩΝ - Nemertes

ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΠΑΤΡΩΝ - Nemertes

SHOW MORE
SHOW LESS

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,:)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!