Assignment 4 ΟΜΑΔΑ 2 ΕΠΙΒΛΕΠΩΝ ΚΑΘΘΓΘΣΘ ΔΠΜ-ΠΡΟΗΓΜΕΝΑ ΤΣΗΜΑΣΑ ΠΑΡΑΓΩΓΗ ΑΤΣΟΜΑΣΙΜΟΤ ΚΑΙ ΡΟΜΠΟΣΙΚΗ

Σχετικά έγγραφα
ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΡΗΤΗΣ ΔΠΜΣ ΠΡΟΗΓΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΠΑΡΑΓΩΓΗΣ ΑΥΤΟΜΑΤΙΣΜΟΥ ΚΑΙ ΡΟΜΠΟΤΙΚΗΣ ΕΡΓΑΣΙΑ 4. Drone Localization ΣΠΟΥΔΑΣΤΕΣ:

ςυςτιματα γραμμικϊν εξιςϊςεων

ΑΝΣΙΣΡΟΦΗ ΤΝΑΡΣΗΗ. f y x y f A αντιςτοιχίηεται ςτο μοναδικό x A για το οποίο. Παρατθριςεισ Ιδιότθτεσ τθσ αντίςτροφθσ ςυνάρτθςθσ 1. Η. f A τθσ f.

ΘΥ101: Ειςαγωγι ςτθν Πλθροφορικι

Ένα πρόβλθμα γραμμικοφ προγραμματιςμοφ βρίςκεται ςτθν κανονικι μορφι όταν:

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

GNSS Solutions guide. 1. Create new Project

Assignment 1. ι ό αος α ά ς Page1

Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής

3.4 SUM AND DIFFERENCE FORMULAS. NOTE: cos(α+β) cos α + cos β cos(α-β) cos α -cos β

Παράςταςη ςυμπλήρωμα ωσ προσ 1

Σ ΤΑΤ Ι Σ Τ Ι Κ Η. Statisticum collegium V

Other Test Constructions: Likelihood Ratio & Bayes Tests

HY437 Αλγόριθμοι CAD

Approximation of distance between locations on earth given by latitude and longitude

Ποσοτικές Μέθοδοι Δρ. Χάϊδω Δριτσάκη

Αυτόνομοι Πράκτορες. Αναφορά Εργασίας Εξαμήνου. Το αστέρι του Aibo και τα κόκαλα του

Numerical Analysis FMN011

Αςφάλεια και Προςταςία Δεδομζνων

Η γραφικι παράςταςθ τθσ ςυνάρτθςθσ f(x)=αx+β είναι μια ευκεία με εξίςωςθ y=αx+β θ οποία τζμνει τον άξονα των y ςτο ςθμείο Β(0,β) και ζχει κλίςθ λ=α.

Χεμπιανά μοντζλα μάκθςθσ. Κϊςτασ Διαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ

Δομθμζνοσ Προγραμματιςμόσ. Βαγγζλθσ Οικονόμου Εργαςτιριο 9

Πλαγιογώνια Συςτήματα Συντεταγμζνων Γιϊργοσ Καςαπίδθσ

Πόςο εκτατό μπορεί να είναι ζνα μη εκτατό νήμα και πόςο φυςικό. μπορεί να είναι ζνα μηχανικό ςτερεό. Συνιςταμζνη δφναμη versus «κατανεμημζνησ» δφναμησ

ΦΥΕ 14 ΑΚΑΔ. ΕΤΟΣ Η ΕΡΓΑΣΙΑ. Ημερομηνία παράδοςησ: 12 Νοεμβρίου (Όλεσ οι αςκιςεισ βακμολογοφνται ιςοτίμωσ με 10 μονάδεσ θ κάκε μία)

Γενικά Μαθηματικά ΙΙ

ΕΡΓΑΣΗΡΙΑΚΗ ΑΚΗΗ 4.1

Odometry Calibration by Least Square Estimation

ΧΕΔΙΑΜΟ ΠΡΟΪΟΝΣΩΝ ΜΕ Η/Τ

CHAPTER 48 APPLICATIONS OF MATRICES AND DETERMINANTS

Θεςιακά ςυςτιματα αρίκμθςθσ

Θέματα διπλωματικών εργαςιών ςτην ανάλυςη εικόνασ

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007

Υπολογιςτική πολυπλοκότητα αλγορίθμων γραμμικοφ προγραμματιςμοφ

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 2 ο Εργαςτιριο Διαχείριςθ Διεργαςιϊν

Μάκθςθ Κατανομϊν Πικανότθτασ και Ομαδοποίθςθ

Γενικά Μαθηματικά ΙΙ

DESIGN OF MACHINERY SOLUTION MANUAL h in h 4 0.

1 ο Διαγώνιςμα για το Α.Ε.Π.Π.

Homework 3 Solutions

Διαχείριςθ του φακζλου "public_html" ςτο ΠΣΔ

Τεχνικζσ Ανάλυςησ Διοικητικών Αποφάςεων

Modellus 4.01 Συ ντομοσ Οδηγο σ

Ειδικά Θζματα Βάςεων Δεδομζνων

Exercises to Statistics of Material Fatigue No. 5

Διαδικαςία Διαχείριςθσ Στθλϊν Βιβλίου Εςόδων - Εξόδων. (v.1.0.7)

Ιδιότθτεσ πεδίων Γενικζσ.

Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων. 15. Πίνακεσ ΙI. Ιωάννθσ Κατάκθσ. ΕΠΛ 032: Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων

Τυπικζσ Γλϊςςεσ Περιγραφισ Υλικοφ Διάλεξθ 4

Οδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο του Άβακα

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 7 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Γ

Δυναμικι Μθχανϊν I. Διάλεξθ 16. Χειμερινό Εξάμθνο 2013 Τμιμα Μθχανολόγων Μθχ., ΕΜΠ

8 τριγωνομετρία. βαςικζσ ζννοιεσ. γ ςφω. εφω και γ. κεφάλαιο

Ιςοηυγιςμζνα δζντρα και Β- δζντρα. Δομζσ Δεδομζνων

Partial Differential Equations in Biology The boundary element method. March 26, 2013

Ενδεικτικζσ Λφςεισ Θεμάτων

ΑΝΩΣΕΡΑ ΜΑΘΗΜΑΣΙΚΑ. Διαφορικόσ και Ολοκληρωτικόσ Λογιςμόσ Δφο ή Περιςςοτζρων Μεταβλητϊν

ΠΡΟΓΡΑΜΜΑΣΙΜΌ ΤΠΟΛΟΓΙΣΏΝ. Κεφάλαιο 8 Η γλϊςςα Pascal

Πωσ δθμιουργώ φακζλουσ;

Γενικά Μαθηματικά ΙΙ

Άςκθςθ 1θ: Να γραφεί αλγόρικμοσ που κα δθμιουργεί με τθ βοικεια διπλοφ επαναλθπτικοφ βρόχου, τον ακόλουκο διςδιάςτατο πίνακα:

Πανεπιςτιμιο Κφπρου ΟΙΚ 223: Μακθματικά για οικονομολόγουσ ΙΙ Διδάςκων:

ΚΥΠΡΙΑΚΟΣ ΣΥΝΔΕΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY 21 ος ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δεύτερος Γύρος - 30 Μαρτίου 2011

HY437 Αλγόριθμοι CAD

Βάςεισ Δεδομζνων Ι. Ενότθτα 10: Συνακροιςτικζσ ςυναρτιςεισ. Δρ. Σςιμπίρθσ Αλκιβιάδθσ Σμιμα Μθχανικών Πλθροφορικισ ΣΕ

Αςφάλεια και Προςταςία Δεδομζνων

Προχωρθμζνα Θζματα Συςτθμάτων Ελζγχου

Διαδικασία Δημιοσργίας Ειδικών Λογαριασμών. (v.1.0.7)

Δομζσ Δεδομζνων. Αναηιτθςθ και Ταξινόμθςθ Διάλεξθ 3

Exercises 10. Find a fundamental matrix of the given system of equations. Also find the fundamental matrix Φ(t) satisfying Φ(0) = I. 1.

Στα προθγοφμενα δφο εργαςτιρια είδαμε τθ δομι απόφαςθσ (ι επιλογισ ι ελζγχου ροισ). Ασ κυμθκοφμε:

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006

EE512: Error Control Coding

Concrete Mathematics Exercises from 30 September 2016

HY437 Αλγόριθμοι CAD

ΟΜΑΔΑ: ΘΕΟΚΛΗΣΩ-ΑΝΣΡΕΑ-ΝΕΦΕΛΗ

Τάξη Β. Φυςικθ Γενικθσ Παιδείασ. Τράπεζα ιεμάτων Κεφ.1 ο ΘΕΜΑ Δ. Για όλεσ τισ αςκθςεισ δίνεται η ηλεκτρικθ ςταιερά

Ηλεκτρονικι Επιχειρθςιακι Δράςθ Εργαςτιριο 1

16. Πίνακεσ και Συναρτήςεισ

ΑΝΩΣΑΣΟ ΕΚΠΑΙΔΕΤΣΙΚΟ ΙΔΡΤΜΑ ΠΕΙΡΑΙΑ ΣΕΧΝΟΛΟΓΙΚΟΤ ΣΟΜΕΑ ΧΟΛΗ ΣΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΣΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΑΤΣΟΜΑΣΙΜΟΤ Σ.Ε.

Γράφοι. Δομζσ Δεδομζνων Διάλεξθ 9

ΔΙΑΔΙΚΑΙΑ ΚΑΙ ΡΤΘΜΙΕΙ ΓΙΑ ΤΝΔΕΗ ΣΟ INTRANET ΣΟΤ ΕΚΕΣΑ-ΙΣΧΗΔ

SCHOOL OF MATHEMATICAL SCIENCES G11LMA Linear Mathematics Examination Solutions

Example Sheet 3 Solutions

Joomla! - User Guide

1. Εγκατάςταςη κειμενογράφου JCE

( ) 2 and compare to M.

Math 6 SL Probability Distributions Practice Test Mark Scheme

x n D 2 ENCODER m - σε n (m 2 n ) x 1 Παραδείγματα κωδικοποιθτϊν είναι ο κωδικοποιθτισ οκταδικοφ ςε δυαδικό και ο κωδικοποιθτισ BCD ςε δυαδικό.

Δια-γενεακι κινθτικότθτα

7η Εργαστηριακή Άσκηση: Προβολή εικόνας στη φόρμα με εκτέλεση ερωτήματος.

Areas and Lengths in Polar Coordinates

Εργαςτιριο Βάςεων Δεδομζνων

The Simply Typed Lambda Calculus

Areas and Lengths in Polar Coordinates

ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΠΕΛΟΠΟΝΝΗΣΟΥ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ

Practice Exam 2. Conceptual Questions. 1. State a Basic identity and then verify it. (a) Identity: Solution: One identity is csc(θ) = 1

ΜΑΘΗΜΑΤΙΚΑ Α Γυμνασίου

Εςωτερικό υδραγωγείο

Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων. 19. Αλφαριθμητικά II. Ιωάννθσ Κατάκθσ. ΕΠΛ 032: Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων

Transcript:

Assignment 4 01 10/02/2017 Unknown ΟΜΑΔΑ 2 Δθμιτρθσ Βοςκάκθσ (mth76@edu.teicrete.gr) Νικόλαοσ Βαρδάκθσ (mth75@edu.teicrete.gr) ΕΠΙΒΛΕΠΩΝ ΚΑΘΘΓΘΣΘ Κ.Αλζξανδροσ Μακρισ Page1

Contents Drone Localization... 3 Θεωρθτικι Ανάλυςθ... 4 Ανάλυςθ του LEAST SQUARE SVD... 4 Ανάλυςθ του RANSAC... 5 Ανάπτυξθ του Μακθματικοφ Μοντζλου... 6 Ερμθνεία του προγράμματοσ και των ςυναρτιςεων... 7 Εφαρμογζσ Αποτελζςματα... 10 Βιβλιογραφικι Αναφορά:... 13 Page2

Drone Localization The aim of the project is to estimate the trajectory of a UAV (unmanned aerial vehicle, drone) using visual information. Assuming that the drone has a rigidly attached camera the problem reduces to estimating the camera motion between two consecutive frames. To test your method we provide a dataset named freiburg_floor, containing 80 rgb/depth frames and groundtruth. For more datasets visit: http://vision.in.tum.de/data/datasets/rgbd-dataset/download Implement a function: [Rt_cellarray] = CalcTrajectory(Rtinit, n_frames,rgb_tmpl, depth_tmpl, camera); that takes as input the initial transformation Rtinit (at t=1), the image template filenames, and the camera parameters and outputs the drone trajectory. To that the function should perform the following steps for each pair of consecutive frames: 1. Local feature detection (sift, surf) and matching with the features of the other image using an appropriate distance metric (e.g. euclidean distance). You can use one of the provided functions match_features_sift and match_features_surf that take as input the two images and calculate the matching feature pairs. 2. Given the feature correspondences find the rigid motion transformation from I2 to I1 i.e. the 4x4 camera rotation and translation matrix Rt. Follow the algorithm described on the paper 'Least-Squares Rigid Motion Using Svd' [e-class: svd_rot.pdf]. Try two different approaches: 1. Least squares: [ Rt ] = CalcRigidMotionSVD( P1, P2 ) For this approach you can use the matlab function svd. To debug it try it first with a set of manually defined point correspondences. 2. RANSAC: [ Rt, inliers_ratio ] = CalcRigidMotionRansac(P1,P2,Niter,dmax,Npoints ) Implement RANSAC that returns the rigid transformation with the highest inliers ratio. The RANSAC parameters are the number of iterations (Niter), the max inlier distance (dmax), and the number of correspondences to use in order to calculate the transform at each iteration (Npoints). Try different values for these parameters and comment on the results. Combine the transformation to get the trajectory for the whole sequence. Apply the method to the provided freiburg_floor dataset. Visually compare your trajectory with the provided groundtruth trajectory (file: groundtruth.txt) e.g. using matlab s scatter3 function. The Rtinit transformation and the camera parameters for this dataset are in info.txt. Page3

Θεωρητική Ανάλυςη τθν ςυγκεκριμζνθ άςκθςθ μασ ηθτικθκε να επιλφςουμε το πρόβλθμα τθσ τροχιάσ του τετρακόπτερου μζςω ανάλυςθσ RANSAC και LEAST SQUARE.Παρακάτω αναλφουμε τον κάκε αλγόρικμο πιο αναλυτικά. Ανάλυςη του LEAST SQUARE SVD Σο κυριότερο πρόβλθμα τθσ άςκθςθσ ιταν θ εφρεςθ του ομογενοφσ μεταςχθματιςμοφ δφο ςθμείων που βρίςκονται ςτον πραγματκό κόςμο.πιο ςυγκεκριμζνα κεωριςαμε το W ωσ μοναδιαίο.).(να επιςυμάνουμε ότι ςτθν άςκθςθ Τπολογίζοντασ τα βαρυτικά κέντρα Αρχικά υποκζτουμε ότι ο πίνακασ ςτροφισ είναι δεδομζνοσ,ζχοντασ τον παραπάνω τφπο. Τπολογίηοντασ τθν παράγωγο τθσ παραπάνω ςυνάρτθςθσ καταλιγουμε ότι ο μζςοσ όροσ των δφο ςθμείων δίνονται από τουσ τφπουσ ζτςι ο τφποσ τθσ μετατόπιςθσ καταλιγει ςτθν εξισ μορφι. Τπoλογίζοντασ τα centered vectors Αν αντικαταςτιςουμε τα δεδομζνα που βρικαμε ςτον αρχικό τφπο βρίςκουμε ότι,όπου χ και y είναι τα ςθμεία ςτο καρτεςιανό επίπεδο. Τπολογίζοντασ τον πίνακα ςτροφήσ Για τον υπολογιςμό του πίνακα ςτροφισ πρζπει να υποκζςουμε ότι θ μετατόπιςθ είναι μθδενικι.ζτςι αν επιλφςουμε τον ςυγκεκριμζνο τφπο Καταλιγουμε ότι και υπολογίηοντασ τθν SVD βρίςκουμε ότι ο πίανκασ ςτροφισ είναι Τπολογίζοντασ την μετατόπιςη Αφοφ υπολογίςαμε όλα τα απαραίτθτα δεδομζνα αντικακιςτοφμε ςτον παρακάτω τφπο:. Page4

Ανάλυςη του RANSAC Ο αλγόρικμοσ Random Sample Consensus ι αλλιϊσ RANSAC εκδόκθκε για πρϊτθ φορά από Fischler και Bolles ςτο SRI International το 1981.Είναι μια επαναλθπτικι μζκοδοσ για τθν εκτίμθςθ των παραμζτρων του μακθματικοφ μοντζλου από ζνα ςφνολο παρατθροφμενων δεδομζνων.ουςιαςτικά είναι μια τεχνικι μάκθςθσ για τθν εκτίμθςθ των δεδομζνων με τυχαία δειγματολθψία.όπωσ μπορείτε να δείτε ςτο παρακάτω παράδειγμα βρικαμε τθν βζλτιςτθ γραμμι βάςει των παραμζτρων που μασ δόκθκαν. Σα μπλζ ςθμεία λζγοντα inliers και τα κόκκινα outliers.θ γραμμι δθμιουργικθκε βάςει των inlier και κάποιων ςυνκθκϊν που δόκθκαν μζςα ςτο πρόγραμμα (Σο ςυγκεκριμζνο παράδειγμα δεν ζχει καμία ςχζςθ με τθν εν λόγω άςκθςθ).σζλοσ κα μποροφςαμε να αναφζρουμε περιλθπτικά τα βιματα τθσ μεκόδου RANSAC: 1. Επιλζγουμε μια τυχαία παράμετρο όπου όςα ςτοιχεία τθν πλθροφν τα ονομάηουμε inliers. 2. Διαλζγουμε κάκε φορά τυχαία ςθμεία για ζνα ςυγκεκριμζνο αρικμό επαναλιψεων.σα ςθμεία που δεν ταιριάηουν με τθν παραπάνω παράμετρο ονομάηονται outliers. 3. ε κάκε επανάλθψθ που κάνει ψθφίηει πόςοσ ιταν ο μεγαλφτεροσ αρικμόσ ςθμείων που πιρε πλθρϊντασ τισ παραμζτρουσ που του ζχουμε δϊςει. Page5

Ανάπτυξη του Μαθηματικού Μοντέλου Ζςτω t το διάνυςμα των τιμϊν του χρόνου, που τραβιχτθκαν οι φωτογραφίεσ, X0t το ςθμείο *0 0 0+ και St το ςφςτθμα ςυντεταγμζνων τθ χρονικι ςτιγμι t, όπωσ δείχνει το παρακάτω ςχιμα. Ιςχφουν οι παρακάτω ςχζςεισ, όπου τα ςθμεία Χ είναι ςε Ομογενείσ ςυντεταγμζνεσ: X 1 St-1 = Rt* X 1 St X 0 St-1 = Rt* X 0 St (1) X 0 St = Rt * X 1 St+1 (2) Από τισ (1) και (2) ζπεται ότι: X 0 St-1 = Rt* Rt * X 1 St+1 (3). Θεωρϊντασ ότι Rt_init είναι ο Μεταςχθματιςμόσ του 1 ου ςθμείου ωσ προσ το φςτθμα ςυντεταγμζνων θ (3) γίνεται: X 0 St-1 = Rt_init *Rt* Rt * X 1 St+1 (4). Ζτςι: RtTotal = Rt_init *Rt* Rt (5) Εκτελϊντασ τθ ίδια διαδικαςία από εικόνα ςε εικόνα ο ςυνολικόσ μεταςχθματιςμόσ γίνεται: RtTotal = Rt_init *Rt* Rt * Rt * Rt. Ο πολλαπλαςιαςμόσ του Rt γίνεται από δεξιά, διότι γίνεται ωσ προσ το τρζχον πλαίςιο. Page6

Ερμηνεία του προγράμματοσ και των ςυναρτήςεων Σα προγράμματα που χρθςιμοποιικθκαν για τον προςδιοριςμό τθσ τροχιάσ εείναι το «Drone_Loc.m», και οι ςυναρτιςεισ «CalcRigidMotionSVD», «CalcRigidMotionRansac» και «calctrajectrory». Αρχικά μετονομάηω τισ εικόνεσ (0000.png, 0001.png κλπ) που αντιςτοιχοφν ςτο βάκοσ ςε (D0000.png, D0001.png κλπ), ϊςτε να μποροφν να είναι ςτον ίδιο φάκελο με τισ rgb. A) Drone_Loc Σο κυρίωσ πρόγραμμα απεικόνιςθσ τθσ τροχιάσ του Drone είναι το «Drone_Loc.m», όπου: Ορίηει τθν τροχιά του groundtrouth για να ςυγκρικεί με τθν υπολογιςμζνθ με τον παρακάτω αλγόρικμο: data=importdata('groundtruth.txt'); xd=data(:,2); yd=data(:,3); zd=data(:,4); Ειςάγει τισ παραμζτρουσ τθσ κάμερασ και τον αρικμό των εικόνων f=525; u0=319.5; v0=239.5; s=5000; Rtinit = [0.9865 0.0857-0.1398 1.4912; 0.1628-0.6113 0.7744-1.1755; -0.0191-0.7866-0.6170 0.6596; 0 0 0 1]; N=40; %Number of frames Καλεί τθν Rt_cellArray=calcTrajectrory( Rtinit, N, u0,v0,s,f ); Που υπολογίηει τον Ομογενι Μεταςχθματιςμό Rt από εικόνα ςε εικόνα. ε κάκε ηεφγοσ εικόνων ο Rt τοποκετείται ςε μια δομι. Με τον παρακάτω αλγόρικμο προςδιορίηονται τα διανφςματα των ςυντεταγμζνων τθσ τροχιάσ: RtTotal=Rtinit; P=Rtinit*[0;0;0;1]; x(1)=p(1); y(1)=p(2); z(1)=p(3); for i=1:n RtTotal=RtTotal*Rt_cellArray(i).pin; P=RtTotal*[0;0;0;1]; z(i+1)=p(3); x(i+1)=p(1); y(i+1)=p(2); B) CalcRigidMotionSVD a. Τπολογίηει τουσ Μζςουσ Όρουσ pav, qav των ςυντεταγμζνων του Ρ1 και Ρ2. sp1=size(p1); pav=[mean(p1(1,:)); mean(p1(2,:)); mean(p1(3,:))]; qav=[mean(p2(1,:)); mean(p2(2,:)); mean(p2(3,:))]; b. Τπολογίηει τα διανφςματα: Χ=Ρ1- pav και Τ=Ρ2- qav. for i=1:sp1(2) X(1,i)=P1(1,i)-pav(1); X(2,i)=P1(2,i)-pav(2); X(3,i)=P1(3,i)-pav(3); Y(1,i)=P2(1,i)-qav(1); Page7

Y(2,i)=P2(2,i)-qav(2); Y(3,i)=P2(3,i)-qav(3); c. Τπολογίηει τθν SVD, R, t και τον Ομογενι Μεταςχθματιςμό Rt S=X*Y'; [U, SS, V]=svd(S); R=V*U'; t=qav-r*pav; Rt=[R,t;0 0 0 1]; C) CalcRigidMotionRansac ε κάκε επανάλθψι του: 1. Διαλζγει από τα Ρ1, Ρ2 nrp ςθμεία τυχαία με το παρακάτω βρόχο. j=randperm(np,nrp); %Choose nrp points randomly for i=1:length(j) %Create Random points matrix p1r(:,i)=p1(:,j(i)); p2r(:,i)=p2(:,j(i)); 2. Καλεί τθν SVD θ οποία επιςτρζφει ζνα Rt1. Rt1 = CalcRigidMotionSVD(p1r,p2r); 3. Μετράει και προςδιορίηει τουσ Inliers, δθλαδι τα ςθμεία των Ρ1 και Ρ2 που ζχουν τθν ιδιότθτα: D<Dth. D είναι θ ευκλείδεια απόςταςθ μεταξφ των Ρ2 και των Ρ2ret, όπου Ρ2ret=Rt*P1. Σα ςθμεία αυτά τοποκετοφνται ςτουσ πίνακεσ P1rIN και P2rIN και προςδιορίηονται από τον παρακάτω αλγόρικμο: cnt=0; %Count Inliers InliersNo=0; for i=1:np P2ret(:,i)=Rt1*P1(:,i); %p2r in return a=p2(:,i); b=p2ret(:,i); D=norm(a(1:3)-b(1:3)); if D<Dth cnt=cnt+1; P1rIN(:,cnt)=P1(:,i); P2rIN(:,cnt)=P2(:,i); 4.Προςδιοριςμόσ του Inliers_ratio και του Rt που αντιςτοιχεί ςτο μζγιςτο Inliers_ratio. if InliersNo<cnt InliersNo=cnt; inliers_ratio=cnt/np; Rt = CalcRigidMotionSVD(P2rIN,P1rIN); clear P1rIN, clear P2rIN; D) calctrajectrory Ηθτάει από το χριςτθ να επιλζξει αν ο υπολογιςμόσ τθσ τροχιάσ κα είναι με τθ μζκοδο «Least Squares» ι με «RANSAC». mtd=input('1 for Least Square or 2 for RANSAC method\n'); Και ςτισ δφο περιπτϊςεισ διαβάηει τισ rgb εικόνεσ και βρίςκει τα κοινά τουσ ςθμεία με τον αλγόρικμο: I1=num2str(n,'%04d'); %Read RGB images I2=num2str(n+1,'%04d'); I1 = strcat(i1,'.png'); I1=imread(I1); I1=rgb2gray(I1); I2 = strcat(i2,'.png'); I2=imread(I2); I2=rgb2gray(I2); si1=size(i1); [P1, P2] = match_features_surf(i1,i2); Page8

Ο παρακάτω αλγόρικμοσ αντιςτοιχεί τα κοινά ςθμεία των rgb εικόνων με το βάκοσ τουσ. Επίςθσ, αν ο αρικμόσ των κοινϊν ςθμείων είναι μικρότεροσ του 3, διακόπτει τθ ρουτίνα διότι οι τρζχουςεσ φωτογραφίεσ δεν είναι ικανζσ να δϊςουν τθν τροχιά. P1=round(P1); P2=round(P2); Iz1=num2str(n,'D%04d'); %Read Depth images Iz1 = strcat(iz1,'.png'); Iz1=imread(Iz1); Az1=Iz1; Iz2=num2str(n+1,'D%04d'); Iz2 = strcat(iz2,'.png'); Iz2=imread(Iz2); Az2=Iz2; np=length(p1); %Corresponds RGB with Depth if np<=3 break for k=1:np x1=p1(1,k); y1=p1(2,k); P1(3,k)=double(Az1(y1,x1)); P1(4,k)=1; x2=p2(1,k); y2=p2(2,k); P2(3,k)=double(Az2(y2,x2)); %Depth Calculation P2(4,k)=1; Ζπειτα μετατρζπουμε τα Ρ1, Ρ2 ςε καρτεςιάνεσ ςυντεταγμζνεσ και ζπειτα ομογενείσ. P1(3,:)=P1(3,:)/s; P1(1,:)=(P1(1,:)-u0).*P1(3,:)/f; P1(2,:)=(P1(2,:)-v0).*P1(3,:)/f; P2(3,:)=P2(3,:)/s; P2(1,:)=(P2(1,:)-u0).*P2(3,:)/f; P2(2,:)=(P2(2,:)-v0).*P2(3,:)/f; Σζλοσ φτιάχνει μια δομι cell_array για κάκε Rt που υπολογίηει: Α. Για SVD [Rt] = CalcRigidMotionSVD(P2,P1); Rt_cellArray(cn).pin=Rt; n cn=cn+1; Β. Για RANSAC nrp=4; %No of random points. Niter=200; Dth=0.02; [ Rt, inliers_ratio ] = CalcRigidMotionRansac( P1,P2,Niter,Dth,nrp ); Rt_cellArray(cn).pin=Rt; n cn=cn+1; Page9

z ΔΠΜ-ΠΡΟΗΓΜΕΝΑ ΤΣΗΜΑΣΑ ΠΑΡΑΓΩΓΗ ΑΤΣΟΜΑΣΙΜΟΤ ΚΑΙ Εφαρμογέσ Αποτελέςματα Εκτελϊ το «Drone_Loc» για Ν=40 frames. Με κόκκινο ςθμειϊνεται θ πραγματικι τροχιά και με μπλε θ υπολογιςμζνθ. Θ τροχιά με τθν απλι μζκοδο SVD είναι: 1.5 1 0.5 5 0 4-0.5-1 3 2 1-1.5 2 1.5 1 0.5 0-0.5-1 y -1.5-1 0 x Page10

z ΔΠΜ-ΠΡΟΗΓΜΕΝΑ ΤΣΗΜΑΣΑ ΠΑΡΑΓΩΓΗ ΑΤΣΟΜΑΣΙΜΟΤ ΚΑΙ Με τθ μζκοδο RANSAC είναι: 1 0.5 0-0.5-1 0.5 4 0 3-0.5 2-1 1 y -1.5 0-2 -1 x Page11

z ΔΠΜ-ΠΡΟΗΓΜΕΝΑ ΤΣΗΜΑΣΑ ΠΑΡΑΓΩΓΗ ΑΤΣΟΜΑΣΙΜΟΤ ΚΑΙ Για 20 frames: 1 0.9 0.8 0.7 0.6 0.5 0.5 0-0.5 y -1-1.5-1 -0.5 0 x 0.5 1 1.5 2 Παρατθριςεισ: 1. Θ μζκοδο SVD αποκλίνει από τθν πραγματικι τροχιά ςχεδόν από τθν εκκίνθςθ του Drone. Αυτό οφείλεται ςτο γεγονόσ ότι τα κοινά ςθμεία των γειτονικϊν φωτογραφιϊν δεν είναι όλα πραγματικά. 2. Θ μζκοδοσ RANSAC φαίνεται ότι ακολουκάει με ικανοποιθτικι ακρίβεια τθν πραγματικι τροχιά για περίπου 17 frames και ζπειτα αποκλίνει. Θ υπολογιςμζνθ τροχιά διαφζρει λίγο κάκε φορά που εκτελείται το πρόγραμμα, διότι λαμβάνει τυχαία ςθμεία, τα οποία διαφζρουν. Page12

Βιβλιογραφική Αναφορά: 1. Forsyth 22.1, 10.1-10.4 2. Szeliski A.2, 4.3.2, 6.1.4 3. Lectures Alexandros Makris 4. A. Horn, Doubly stochastic matrices and the diagonal of a rotation matrix. Amer. J. Math. Page13

Annotations ΔΙΠΛΩΜΑ ΕΙΔΙΚΕΥΣΗΣ Assignment 4 01 Unknown Unknown Page 1 10/2/2017 13:37 B:10/10