Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης. Υλοποίηση σε FPGA Αλγορίθμου Συρραφής Εικόνων

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης. Υλοποίηση σε FPGA Αλγορίθμου Συρραφής Εικόνων"

Transcript

1 Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης ΠΜΣ Ηλεκτρονικής Φυσικής (Ραδιοηλεκτρολογίας) Διπλωματική Εργασία Υλοποίηση σε FPGA Αλγορίθμου Συρραφής Εικόνων Βασίλειος Βουτσάς Επιβλέπων Καθηγητής: Σπ.Νικολαϊδης Θεσσαλονίκη 2016

2 Abstract In this Thesis we describe an image stitching algorithm implemented on FPGA board. We introduce an algorithm based on SIFT descriptor. The SIFT descriptor created by D.Lowe is one of the most compact and reliable descriptors. With SIFT algorithm we can detect and describe image features invariant in scale, illumination, rotation and translation transformations. Also SIFT is partly invariant in illumination changes of images. This facts are very important when designing stitching algorithms as the sources of the images i.e. cameras are never aligned or similar calibrated. However SIFT has the disadvantage of high computation time so it not so efficient to be used in video applications. After SIFT is implemented in two images there should be a matching technique to match all the features found in the first image with these in the second image. We use Nearest Neighbor Distance Ratio(NNDR) technique as it offers good reliability with not very high computation time. The organization of the text contains 6 chapters. In the first chapter we make an introduction on some basic knowledge and fundamentals of image processing. These information help understanding the functionality of SIFT. Second chapter contains information of stitching algorithms. Furthermore we make a historical reference on feature detectors and feature descriptors. In the third chapter we describe SIFT algorithm and how we produce the necessary features for matching between the two images. In fourth chapter we introduce the VHDL implementation of the whole stitching algorithm including SIFT algorithm and matching technique. The SIFT implementation is a simple approach of the original algorithm as we choose to reduce the resources FPGA consumes. The FPGA board is Xilinx ZEDBOARD Zynq7000 with clock frequency 100MHz and BRAM capacity 5,040,000 bits (140 BRAMS *36000bits). The results in speed and performance of the implementation are presented in fifth chapter and finally we write a small reference in 6 th chapter on applications in which SIFT or the whole stitching algorithm can be used.

3 ΠΕΡΙΛΗΨΗ Στην εργασία αυτή περιγράφουμε την υλοποίηση ενός αλγορίθμου συρραφής εικόνων (image stitching) σε FPGA. Ο αλγόριθμος είναι βασισμένος στον SIFT feature descriptor. Ο SIFT descriptor δημιουργήθηκε από τον D.Lowe και είναι ένας από τους πιο αξιόπιστους αλγορίθμους στο είδος του. Με τον SIFT μπορεί να γίνει ανίχνευση σε μια εικόνα διαφόρων περιοχών οι οποίες είναι αμετάβλητες ως προς το ζουμ (scale), φωτισμό (illumination), περιστροφή(rotation) και απλή μετατόπιση (translation). Επιπλέον ο SIFT είναι μερικώς αμετάβλητος ως προς τη γωνία θέασης (affine). Ένας αλγόριθμος image stitching πρέπει να είναι αμετάβλητος σε όσο το δυνατόν περισσότερους μετασχηματισμούς καθώς οι πηγές των εικόνων (π.χ κάμερα) δεν μπορούν να είναι τέλεια ευθυγραμμισμένες και παρόμοια ρυθμιζόμενες ώστε να δίνουν την ίδια ποιότητα εικόνας. Ωστόσο ο SIFT έχει το μειονέκτημα του μεγάλου χρόνου υπολογισμού. Το γεγονός αυτό τον καθιστά μη ιδανικό για εφαρμογές video. Ο SIFT εφαρμόζεται στις δύο επικαλυπτόμενες εικόνες προς συρραφή δημιουργώντας χαρακτηριστικές περιοχές features οι οποίες πρέπει να ανιχνευθούν και να ταιριάξουν μεταξύ τους. Επειδή πολλές φορές μια περιοχή feature από την πρώτη εικόνα αντιστοιχεί σε παραπάνω από μία περιοχές στη δεύτερη κρίνεται αναγκαία η εφαρμογή μιας τεχνικής matching που θα δώσει τα σωστά αποτελέσματα. Η τεχνική που χρησιμοποιείται στο κείμενο αυτό ονομάζεται Nearest Neighbor Distance Ratio(NNDR). Όσον αφορά την οργάνωση του κείμενου, αυτό χωρίζεται σε 6 κεφάλαια. Στο 1 ο κεφάλαιο γίνεται μια εισαγωγή σε βασικές αρχές image processing που θα βοηθήσουν στην καλύτερη κατανόηση του αλγορίθμου SIFT και του συνολικότερου αλγορίθμου stitching. Στο 2 ο Κεφάλαιο γίνεται μια ιστορική αναδρομή σε διάφορους feature detectors και feature descriptors που υπάρχουν και χρησιμοποιούνται σε τέτοιου είδους εφαρμογές ενώ υπάρχει και μια αναφορά σε μοντέλα και αλγορίθμους stitching. Στο 3 ο Κεφάλαιο περιγράφεται ο αλγόριθμος SIFT σύμφωνα με το πρωτότυπο σύγγραμμα του D.Lowe. Στο 4 ο κεφάλαιο παρουσιάζουμε μια απλοποιημένη VHDL υλοποίηση του αλγορίθμου SIFT καθώς και τη συνολική υλοποίηση του αλγορίθμου stitching σε FPGA. Η αναπτυξιακή πλακέτα που χρησιμοποιήθηκε για τον προγραμματισμό του FPGA είναι η ZEDBOARD Zynq-7000 της Xilinx με συχνότητα ρολογιού στα 100 MHz και συνολική ενσωματωμένη μνήμη 5,040,000 bits (140 blocks RAM * bits/block). Τα αποτελέσματα και οι επιδόσεις της υλοποίησης δίνονται στο 5 ο Κεφάλαιο ενώ τέλος στο 6 ο Κεφάλαιο γίνεται μια μικρή παρουσίαση διαφόρων εφαρμογών που χρησιμοποιούν τόσο τον SIFT descriptor όσο και το συνολικό stitching αλγόριθμο.

4 Ευχαριστίες Θα ήθελα να ευχαριστήσω τους γονείς μου που με στήριξαν όλα τα χρόνια των σπουδών μου τόσο στο πτυχίο Φυσικής όσο και στο δίπλωμα της Ραδιοηλεκτρολογίας. Χωρίς την βοήθεια τους δε θα είχα καταφέρει να επιτύχω τους στόχους μου ως φοιτητής ώστε να μπορέσω να ορθοποδήσω επαγγελματικά και για αυτό η εργασία αυτή είναι αφιερωμένη σε αυτούς.

5 Περιεχόμενα 1.Εισαγωγή Image Stitching Προβολική γεωμετρία (projective geometry) Μέθοδοι Stitching Feature Detectors Feature Descriptors Περιγραφή Αλγορίθμου SIFT Δημιουργία Gaussian scale space Δημιουργία Differential of Gaussian (DοG) Ανίχνευση ακρότατων Εντοπισμός των σημείων ενδιαφέροντος (Keypoint Localization) Ακριβής εντοπισμός των σημείων ενδιαφέροντος Απόρριψη σημείων με χαμηλό contrast Απόρριψη σημείων με καλή απόκριση σε αιχμές φωτεινότητας (edges) Ανάθεση προσανατολισμού/μεγέθους (Orientation/magnitude assignment) Feature Descriptor Matching FPGA Implementation Real time εφαρμογές image processing Σχεδιασμός συστήματος image stitching Σχεδιασμός του feature detector/descriptor SIFT Σχεδιασμός SIFT Controller Φόρτωση εικόνας σε μνήμες BRAM Σχεδιασμός πυραμίδας Gauss Σχεδιασμός πυραμίδας DoG Ανίχνευση ακρότατων Έλεγχος σταθερότητας μεγίστων Περιγραφή των γειτονικών pixel ενός σημείου ως διανύσματα Matching module Stitching module Αποτελέσματα-Βελτιώσεις Appendix Βιβλιογραφία Code Appendix... 70

6 1.Εισαγωγή Αντικείμενο της εργασίας αυτής είναι η υλοποίηση ενός αλγορίθμου επεξεργασίας εικόνας που έχει σκοπό τη συρραφή εικόνων που έχουν επικαλυπτόμενες περιοχές(image stitching)και τη δημιουργία ενός ευρύτερου πανοράματος. Καθώς το εγχείρημα αυτό είναι ευρέως γνωστό στην επιστήμη των υπολογιστών και πιο συγκεκριμένα στον τομέα της επεξεργασίας εικόνας, είναι φανερό πως έχουν γίνει αρκετές προσεγγίσεις υλοποίησης μέσω software. Πλέον τα περισσότερα σύγχρονα smartphones έχουν ενσωματώσει τη λειτουργία του image stitching και αποτελεί μια βασική δυνατότητα των εφαρμογών κάμερας τους. Μια διαφορετική προσέγγιση είναι αυτή της hardware υλοποίησης τέτοιου είδους αλγορίθμων. Η hardware υλοποίηση αυξάνει αισθητά την απόδοση του αλγορίθμου από πλευράς ταχύτητας σε σχέση με μία software υλοποίηση ωστόσο υπάρχουν και αρκετά μειονεκτήματα στα οποία θα αναφερθούμε παρακάτω. Μία πολύ καλή εκδοχή hardware υλοποίησης γίνεται με τη βοήθεια των FPGAs τα οποία είναι τα πλέον κατάλληλα για εφαρμογές τέτοιου είδους που αφορούν γενικότερα την επεξεργασία σήματος (signal processing, image processing κοκ) [1]. Εικόνα 1.1 Συρραφή επικαλυπτόμενων εικόνων(image stitching) 6

7 2 Image Stitching Το θέμα του image stitching είναι ένα ανοιχτό αντικείμενο προς μελέτη για τον τομέα της πληροφορικής computer vision καθώς γίνεται προσπάθεια να υλοποιηθούν συνεχώς όλο και πιο αξιόπιστοι αλγόριθμοι που θα βελτιώνονται συνεχώς ως προς την ποιότητα της τελικής εικόνας αλλά και την ταχύτητα με την οποία θα εκτελείται ο αλγόριθμος. Η ανάγκη για το stitching προήλθε από το περιορισμένο εύρος οπτικού πεδίου που μπορεί να έχει μια κάμερα. Για να καλύψει μια αρκετά μεγάλη περιοχή μια κάμερα θα πρέπει να απομακρυνθεί από το οπτικό πεδίο που θέλει να καταγράψει. Με τον τρόπο αυτό όμως υπάρχει απώλεια στις λεπτομέρειες της εικόνας που καταγράφεται ακόμα και όταν ενεργοποιηθεί η επιλογή zoom όπου εκεί έχουμε απώλεια ποιότητας. Η λύση θα ήταν η χρήση δύο καμερών οσοδήποτε κοντά στην περιοχή καταγραφής ώστε να μην υπάρχει απώλεια πληροφορίας. Με τον τρόπο αυτό δημιουργούνται δύο ανεξάρτητες εικόνες από δύο διαφορετικές πηγές. Για την πρακτικότητα λοιπόν του όλου εγχειρήματος θα πρέπει αυτές οι δύο ανεξάρτητες εικόνες να ενωθούν με κάποιον τρόπο ώστε να δημιουργήσουν μία πανοραμική εικόνα. 2.1 Προβολική γεωμετρία (projective geometry) Για να μπορέσουν να γίνουν κατανοητές οι αρχές πάνω στις οποίες βασίζονται οι αλγόριθμοι για το image stitching, θα πρέπει να γίνει μια εισαγωγή στην προβολική γεωμετρία που αποτελεί ένα σημαντικό κλάδο στην επιστήμη της computer vision. Αν και οι λεπτομέρειες για το πώς δημιουργείται ένας αλγόριθμος image stitching με βάση την προβολική γεωμετρία είναι πέραν από το σκοπό αυτού του κειμένου εν τούτοις θα γίνει μία βασική αναφορά σε αυτήν. Με τη βοήθεια των παραπομπών που θα υπάρχουν στη συνέχεια του κειμένου μπορεί ο καθένας να ανατρέξει σε αντίστοιχα συγγράμματα και να εμβαθύνει σε περισσότερες λεπτομέρειες που αφορούν το image processing και την προβολική γεωμετρία (projective geometry). Μία βασική γνώση που θα έπρεπε κάποιος να έχει όταν ασχολείται με αλγορίθμους εικόνας είναι οι διάφοροι μετασχηματισμοί εικόνας που υπάρχουν στις δύο διαστάσεις και πώς αυτοί ερμηνεύονται με συμβατικά μαθηματικά. Επιγραμματικά μπορούμε να αναφέρουμε μερικούς μετασχηματισμούς οι οποίοι είναι βασικοί να κατανοηθούν και για τη συνέχεια του συγκεκριμένου project. 7

8 Εικόνα 2.1 2D μετασχηματισμοί Στην παραπάνω εικόνα φαίνονται κάποιοι 2D βασικοί μετασχηματισμοί που λαμβάνουν χώρα κατά την επεξεργασία σήματος εικόνας. Μια εικόνα λοιπόν μπορεί να υποστεί περιστροφή (rotation), απλή μετατόπιση συντεταγμένων (translation), αλλαγή γωνία θέασης (affine), αλλαγή στο zoom (scale) κλπ. Για περισσότερες λεπτομέρειες σχετικά με τη διεργασία που ακολουθείται ώστε να εκφραστούν μαθηματικά αυτοί οι μετασχηματισμοί αλλά και να κάνει μια εισαγωγή στον κλάδο computer vision μπορεί κάποιος να μελετήσει τα συγγράμματα του Szeliski και των Hartley,Zisserman. [2], [3], [4] 2.2 Μέθοδοι Stitching Γενικότερα υπάρχουν πάρα πολλές μέθοδοι που μπορεί κανείς να ακολουθήσει ώστε να υλοποιήσει έναν stitching αλγόριθμο [5]. Οι περισσότερες μέθοδοι ακολουθούν το πρότυπο της παρακάτω εικόνας που περιέχει τρία κύρια βήματα [6]. Εικόνα 3.2 Μοντέλο stitching Αρχικά υπάρχει μια διεργασία που αφορά τη σωστή ρύθμιση των πηγών της εικόνας (calibration) [3] [4],όπως είναι η ελαχιστοποίηση των διαφορών που μπορούν να έχουν μεταξύ τους (πχ οι κάμερες) καθώς μπορεί να προκαλέσουν θόρυβο στην εικόνα. 8

9 Στη συνέχεια υπάρχει το στάδιο του image registration που αφορά τη σωστή ευθυγράμμιση και τοποθέτηση των πηγών ώστε η δημιουργία του μωσαϊκού να είναι όσο τα δυνατόν πιο ομαλή. Γενικότερα σε αυτό το στάδιο προσδίδονται γεωμετρικά χαρακτηριστικά στις εικόνες ώστε να μπορέσουν να επεξεργαστούν με τη βοήθεια της προβολικής γεωμετρίας που αναφέραμε παραπάνω. Τέλος υπάρχει η διαδικασία του image blending στην οποία γίνεται η συρραφή των εικόνων (stitch) και εξαλείφονται οι διαφορές μεταξύ των δύο εικόνων ώστε η τελική εικόνα να φαίνεται σαν μία ενιαία και ανεξάρτητη. Στην εργασία θα ασχοληθούμε κυρίως με την υλοποίηση του αλγορίθμου κατά το στάδιο του image blending συνεπώς οι τεχνικές λεπτομέρειες που αφορούν τις πηγές εικόνας δε θα μας απασχολήσουν. Γενικότερα υπάρχουν δύο ειδών προσεγγίσεις [6] ώστε να συνδυαστούν δύο ή περισσότερες εικόνες και να προκύψει ένα πανόραμα. Οι άμεσες τεχνικές Οι τεχνικές που βασίζονται στη δημιουργία χαρακτηριστικών περιοχών στην εικόνα. Α) Άμεσες τεχνικές Οι άμεσες τεχνικές συγκρίνουν όλες τις φωτεινότητες των pixel από τις δύο εικόνες. Στη συνέχεια ελαχιστοποιούν το άθροισμα των διαφορών στα κοινά pixel των εικόνων. Σημαντικό τους μειονέκτημα ο υπολογιστικός χρόνος που απαιτείται για την εκτέλεση τους αλλά και το γεγονός πως δεν είναι αμετάβλητες ως προς το scale και την περιστροφή της εικόνας. Β) Τεχνικές βασισμένες στη δημιουργία χαρακτηριστικών περιοχών Οι αλγόριθμοι που χρησιμοποιούν αυτή τη μέθοδο δημιουργούν αντιστοιχίες σε διάφορα γεωμετρικά χαρακτηριστικά της εικόνας όπως γραμμές, γωνίες, αιχμές φωτεινότητας κ.ά. Στη συνέχεια αυτές οι αντιστοιχίες συγκρίνονται μεταξύ των εικόνων ώστε τελικά να μπορέσει να γίνει η ένωση των εικόνων με βάση αυτές. Η δεύτερη προσέγγιση θα είναι αυτή που θα μας απασχολήσει στο project αυτό, ενώ το αντίστοιχο μοντέλο Stitching που θα ακολουθήσουμε φαίνεται στην παρακάτω εικόνα. 9

10 Εικόνα 4.3 Μοντέλο stitching με τη μέθοδο των features extraction Όπως φαίνεται από το διάγραμμα αρχικά γίνεται η επιλογή της εικόνας που αυτό μπορεί να συμπεριλαμβάνει και τη δημιουργία της από κάποια πηγή όπως φωτογραφική κάμερα. Στη συνέχεια γίνεται η ανίχνευση των ιδιαίτερων χαρακτηριστικών στις δύο εικόνες που επικαλύπτονται και η αντιστοιχία τους. Ακολουθεί το ταίριασμα των αντιστοιχιών με κάποιον αλγόριθμο ( στην εικόνα επισημαίνεται ο αλγόριθμος RANSAC αλλά έχουν δημιουργηθεί αρκετοί παραπάνω). Αφού έχουν βρεθεί οι αντιστοιχίες θα πρέπει στη συνέχεια να βρεθούν κάποιες γεωμετρικές παράμετροι που ελαχιστοποιούν το εσφαλμένο ταίριασμα των εικόνων. Σε αυτό το βήμα μπορούν να ληφθούν υπόψη και πληροφορίες όπως πχ η θέση της φωτογραφικής πηγής [4] [3]. Το τελευταίο βήμα αποτελεί τον τρόπο με τον οποίο θα γίνει η ένωση των εικόνων. Το βήμα αυτό εξαρτάται άμεσα από την εφαρμογή καθώς υπάρχουν πολλές επιλογές για την τελική μίξη των εικόνων. Για παράδειγμα το τελικό σχήμα (μωσαϊκό) μπορεί να έχει σχήμα κυλινδρικό, επίπεδο,σφαιρικό. Στη συνέχεια θα κάνουμε μία μικρή αναφορά σε αλγορίθμους που αφορούν feature detection, feature description και matching. Σκοπός είναι να δούμε επιγραμματικά με βάση τη βιβλιογραφία και διάφορες αναφορές πώς μπορούμε 10

11 να συνθέσουμε ένα μοντέλο stitching χρησιμοποιώντας αλγορίθμους που έχουν χρησιμοποιηθεί και μελετηθεί για κάθε βήμα Feature Detectors Οι αλγόριθμοι feature detection έχουν σκοπό να ανιχνεύσουν περιοχές σε μία εικόνα από τις οποίες θα μπορέσουν να δημιουργηθούν αντιστοιχίες με τις υπόλοιπες εικόνες που επικαλύπτουν την αρχική. Τα κριτήρια για να χαρακτηρίσουμε έναν αλγόριθμο feature detection αποδοτικό και αξιόπιστο είναι το περιεχόμενο της πληροφορίας και το πλήθος των σωστών σημείων ενδιαφέροντος που μπορεί να εξάγει και μπορούν να ανιχνευτούν σε μια δεύτερη ανεξάρτητη εικόνα (repeatability). [7] Εικόνα 5.5 Περιοχές(features) που μπορούν να ταιριάξουν Τίθεται το ερώτημα ποιες είναι οι κατάλληλες περιοχές που μπορούν να ανιχνευθούν για αυτό το σκοπό; Ποια είναι τα γεωμετρικά χαρακτηριστικά τα οποία είναι κατάλληλα για το ταίριασμα; Στις αναφορές των Shi και Tomasi [8] καθώς και του Triggs [9] δίνεται η απάντηση σε αυτό το ερώτημα. Στο κείμενο των Harris και Stephens [10] παρουσιάζεται το πρόβλημα ανίχνευσης σημείων με τη βοήθεια των αιχμών φωτεινότητας (edges) και γίνεται μια παρουσίαση ενός feature detector που βασίζεται στον πλέον κλασσικό corner detector του Moravec [11] [12] ο οποίος ανιχνεύει γωνίες ως σημεία ενδιαφέροντος. Στο ίδιο κείμενο οι Harris και Stephens παρουσιάζουν το δικό τους feature detector που χρησιμοποιεί τόσο edges όσο και corners. Ο αλγόριθμος τους αποτέλεσε βάση για πάρα πολλούς feature detectors που ακολούθησαν. Γενικότερα ακολούθησαν πάρα πολλοί αλγόριθμοι [13] [9] με γνώμονα να βελτιωθούν όλο και περισσότερο ως προς την αξιοπιστία ενσωματώνοντας καινούριες τεχνικές που προέκυψαν από εκτενές μαθηματικές αναλύσεις. Το κυριότερο κριτήριο για έναν σύγχρονο feature detector είναι να μπορεί να ανιχνεύσει περιοχές σε μια εικόνα και να τις εντοπίσει στη συνέχεια από μια δεύτερη εικόνα η οποία έχει υποστεί διάφορους μετασχηματισμούς όπως περιστροφή,affine, scale, translation όπως αυτοί αναφέρθηκαν στην ενότητα 2.1. Όσον αφορά το scale έγιναν αρκετές προσπάθειες να αντιμετωπιστεί η δυσκολία εύρεσης σημείων σε εικόνες με διαφορετικό scale [14]. Χαρακτηριστικό 11

12 είναι το παράδειγμα των Brown, Szeliski, Winder [15]. Ωστόσο ακολούθησαν και άλλοι βελτιωμένοι αλγόριθμοι [16] [17]. Επιπλέον οι αλγόριθμοι των Schmid, Mohr [18] έδωσαν έμφαση στο να συνθέσουν έναν αλγόριθμο αμετάβλητο ως προς την περιστροφή της εικόνας και γενικότερα τον προσανατολισμό της. Ο μετασχηματισμός που αποτελεί πρόκληση για τέτοιου είδους αλγορίθμους είναι η γωνία θέασης(affine) ειδικότερα όταν χρειάζεται να εφαρμοστεί σε εφαρμογές stereo matching [19] [20] ή αναγνώρισης τοποθεσίας (location recognition) [21]. Αξιόλογη δουλειά έχει γίνει σε αυτόν τον τομέα με τους αλγορίθμους των Matas,Chum,Pajdla,Urban [22]. Οι αλγόριθμοι feature detecting είναι ένα ανοιχτό θέμα στο χώρο του image processing συνεπώς παρουσιάζονται όλο και περισσότεροι αλγόριθμοι. Τελειώνοντας το κομμάτι αυτό θα πρέπει να επισημαίνουμε και τους αλγόριθμους FAST [23] και SURF [24] που είναι ιδανικοί για real time εφαρμογές καθώς δεν έχουν υψηλό υπολογιστικό χρόνο. Εικόνα 6.6 Ανίχνευση Περιοχών(features) σε εικόνες που έχουν υποστεί affine Feature Descriptors Αφού έχουμε τα σημεία ενδιαφέροντος πάνω σε μια εικόνα πρέπει με κάποιον τρόπο να τους δώσουμε κάποια αναγνωριστικά ώστε να μπορέσουν να ανιχνευθούν και σε άλλες εικόνες. Τα ιδιαίτερα αυτά αναγνωριστικά θα προκύψουν από τα γειτονικά pixel του σημείου που ανιχνεύθηκε. Έτσι με τον τρόπο αυτό δημιουργούνται μικρές περιοχές (features ) με τις οποίες μπορούμε να ταιριάξουμε δύο εικόνες. Αναπτύχθηκαν διάφοροι αλγόριθμοι για αυτό το σκοπό. Οι περισσότεροι ενσωματώνονται μαζί με τους feature detectors ώστε να προκύψει ένας ενιαίος αλγόριθμος. Γενικότερα οι feature descriptors χρησιμοποιούν γνωστές μαθηματικές τεχνικές όπως το άθροισμα των ελαχίστων τετραγώνων ή τη συνέλιξη [25]. Στην παρακάτω εικόνα μπορούμε να δούμε ένα παράδειγμα ενός feature descriptor (MOPS [15]) όπου γίνεται χρήση ενός παραθύρου 8x8 για την περιγραφή ενός σημείου. 12

13 Εικόνα 7.6 Feature στον αλγόριθμο MOPS Το σημαντικό πράγμα που λαμβάνουν υπόψη οι feature descriptors είναι πως επειδή γενικότερα η εικόνα μπορεί να υποστεί μετασχηματισμούς οπότε αλλάζει ο προσανατολισμός και το scale των pixel, θα πρέπει να μπορούν να δημιουργήσουν features βασιζόμενοι σε αυτές τις αλλαγές. Γνωστοί feature descriptors είναι ο SURF [24]όπως είδαμε παραπάνω στους feature detectors,ο οποίος αφού ανιχνεύσει τα σημεία ενδιαφέροντος στη συνέχεια τα περιγράφει ως ένα διάνυσμα. Επίσης ο ORB o οποίος είναι ένας πολύ γρήγορος feature descriptor βασιζόμενος στον BRIEF descriptor [26]. Ο ORB συνδυάζει τον FAST detector και τον BRIEF descriptor συνθέτοντας έναν πάρα πολύ γρήγορο αλγόριθμο ιδανικό σε real time εφαρμογές. Από τους καλύτερους feature descriptors που έχουν δημιουργηθεί από θέμα απόδοσης είναι ο αλγόριθμος GLOH [25] ο οποίος δημιουργήθηκε από τους Mikolajczyk and Schmid και βασίζεται στη δημιουργία ιστογραμμάτων από τα pixels τα οποία περιγράφονται ως διανύσματα. Εικόνα 8.7 Δημιουργία ιστογράμματος στον αλγόριθμο GLOH Τέλος δε θα μπορούσαμε να μην αναφέρουμε σε αυτή τη μικρή αναφορά τον αλγόριθμο τον οποίο θα υλοποιήσουμε σε αυτό το project και αυτός είναι ο αλγόριθμος SIFT. Αποτελεί μαζί με τον GLOH έναν από τους κλασσικότερους αλλά και πιο αποδοτικούς αλγόριθμους που έχουν δημιουργηθεί. Πάνω σε αυτόν βασίστηκαν πολλοί αλγόριθμοι. Επιπλέον έχουν εμφανιστεί διάφορες παραλλαγές αυτού προσαρμοζόμενες κάθε φορά ανάλογα με τις απαιτήσεις της εκάστοτε εφαρμογής. Χαρακτηριστικό παράδειγμα ο PCA-SIFT [27] ο οποίος παρουσιάζει μια πιο γρήγορη λύση του αλγορίθμου SIFT καταλληλότερη για real time εφαρμογές. Στην επόμενη ενότητα θα αναλυθεί διεξοδικά η λειτουργία του αλγορίθμου SIFT. 13

14 Scale Invariant Feature Transform (SIFT) 3.Περιγραφή Αλγορίθμου SIFT Ο αλγόριθμος SIFT αποτελεί έναν από τους πιο πλήρεις αλγορίθμους στην κατηγορία των feature detectors και feature descriptors που αναφέρθηκαν στην προηγούμενη ενότητα. Σκοπός του είναι να ανιχνεύσει και να ταιριάξει με όσο το δυνατόν μεγαλύτερο ποσοστό επιτυχίας διάφορα χαρακτηριστικά (features) μεταξύ των εικόνων. Δημιουργήθηκε από τον David Lowe το 2004 [28] και χρησιμοποιείται ακόμα και σήμερα ευρέως σε διάφορα συστήματα επεξεργασίας εικόνας. Ο αλγόριθμος SIFT έχει κάποια ιδιαίτερα πλεονεκτήματα τα οποία τον καθιστούν πολύ αξιόπιστο σε εφαρμογές image matching. 1. Είναι αμετάβλητος όσον αφορά το scale της εικόνας. Μπορεί να ανιχνεύσει και να ταιριάξει με επιτυχία features από δύο εικόνες εκ των οποίων η μία έχει υποστεί αλλαγές στην κλιμάκωση (scale) πχ λόγω της μετακίνησης της κάμερας σε πιο κοντινό ή πιο μακρινό σημείο. Εικόνα 3.9 Μεταβολή στο scale 2. Είναι αμετάβλητος όσον αφορά το rotation της εικόνας. Μπορεί να ανιχνεύσει και να ταιριάξει με επιτυχία features από δύο εικόνες εκ των οποίων η μία έχει περιστραφεί. Εικόνα 3.2 Περιστροφή εικόνας 14

15 3. Είναι μερικώς αμετάβλητος ως προς τη γωνία θέασης (affine,3d viewpoint) Έχει πολύ μεγάλο ποσοστό αξιοπιστίας να αναγνωρίζει features από εικόνες στις οποίες έχει αλλάξει η γωνία λήψης της κάμερας. Εικόνα 3.3 Μεταβολή στο affine 4. Είναι μερικώς αμετάβλητος ως προς το φωτισμό (illumination) Έχει πολύ μεγάλο ποσοστό αξιοπιστίας να αναγνωρίζει features από εικόνες στις οποίες έχει αλλάξει o φωτισμός. Εικόνα 3.4 Μεταβολή στο φωτισμό Η φιλοσοφία του αλγορίθμου είναι να δημιουργήσει σε πρώτο στάδιο τοπικά σημεία ενδιαφέροντος και να τους προσδώσει κάποια αναγνωριστικά ώστε να μπορούν να ανιχνευθούν σε μία οι περισσότερες εικόνες με την τεχνική του feature matching. 15

16 Εικόνα 3.5 Feature Matching Τα στάδια του αλγορίθμου μπορούν να διαιρεθούν σε επιμέρους βήματα. 1. Δημιουργία ενός Gaussian χώρου κλιμάκωσης (scale space) με την εφαρμογή του φίλτρου Gauss διαδοχικά στην εικόνα ώστε να προκύψουν διαφορετικές υποεικόνες οι οποίες θα έχουν διαφορετικό scale. 2. Δημιουργία του διαφορικού Gaussian χώρου (DoG) που προκύπτει από την αφαίρεση μεταξύ των εικόνων από τον Gaussian χώρο και τη δημιουργία περαιτέρω εικόνων. 3. Ανίχνευση των μεγίστων και ελαχίστων φωτεινότητας των υποεικόνων DoG. Τα ακρότατα αυτά θα αποτελέσουν τα υποψήφια σημεία ενδιαφέροντος. 4. Εντοπισμός της πραγματικής θέσης των υποψήφιων σημείων και φιλτράρισμα ώστε να προκύψουν τα πραγματικά σημεία ενδιαφέροντος. 5. Προσδιορισμός του προσανατολισμού της περιοχής γύρω από τα σημεία και χαρακτηρισμός του σημείου ως διάνυσμα. 6. Περιγραφή των γειτονικών pixel γύρω από το σημείο ενδιαφέροντος και δημιουργία ενός χαρακτηριστικού διανύσματος για το σημείο που εξαρτάται από τα γειτονικά pixel. 3.1 Δημιουργία Gaussian scale space Σύμφωνα με τον Witkin [29] για να ανιχνευτούν περιοχές οι οποίες να είναι αμετάβλητες ως προς το scale θα πρέπει να ανιχνευθούν χρησιμοποιώντας μια συνεχή συνάρτηση που ονομάζεται scale space. Ο Lindeberg [30] και ο Koenderink (1984) έδειξαν πως αυτό μπορεί να γίνει χρησιμοποιώντας τη συνάρτηση Gauss. Το πρώτο βήμα λοιπόν του αλγορίθμου είναι η εφαρμογή του φίλτρου Gauss διαδοχικά στην εικόνα ώστε να προκύψουν διαφορετικές υποεικόνες η καθεμία με διαφορετική σταθερά σ. Στους πειραματικούς υπολογισμούς του Lowe η σταθερά σ που χρησιμοποιείται για το φιλτράρισμα είναι κάθε φορά σ = 2. Αναλυτικές πληροφορίες για το φίλτρο Gauss υπάρχουν στην ενότητα A1 του κειμένου. Το σύνολο των υποεικόνων που έχουν δημιουργηθεί μετά την εφαρμογή του φίλτρου ονομάζεται οκτάβα(octave). Συνήθως δημιουργούνται

17 υποεικόνες για μία οκτάβα. Κάθε υποεικόνα χαρακτηρίζεται πλέον από ένα συγκεκριμένο scale. Αφού έχει δημιουργηθεί η πρώτη οκτάβα, η υποεικόνα που βρίσκεται σε ένα ενδιάμεσο scale μειώνεται στο μισό των διαστάσεων της. Στη συνέχεια δημιουργείται μία επιπλέον οκτάβα με τη διαδικασία που αναφέρθηκε παραπάνω, πλέον με τις καινούριες διαστάσεις. Με τον τρόπο αυτό δημιουργούνται 3-4 οκτάβες. Εικόνα 3.6 Gaussian scale space Ο χώρος (scale space) που έχει δημιουργηθεί πλέον χρησιμεύει ώστε ο αλγόριθμος να μπορέσει να ανιχνεύσει με επιτυχία περιοχές ταιριάσματος( matching features) ακόμα και αν η εικόνα έχει υποστεί μεταβολή ως προς το scale (zoom) σε σχέση με την αρχική εικόνα. Εικόνα 3.7 Ο αλγόριθμος SIFT μπορεί να ανιχνεύσει αντικείμενα με διαφορετικό scale Αυτό είναι μια πολύ σημαντική βελτίωση σε σχέση με προγενέστερους features detectors οι οποίοι δεν μπορούσαν να ανιχνεύσουν διαφορές στην κλίμακα (scale) της εικόνας. Στην παρακάτω εικόνα φαίνεται εποπτικά για ποιο λόγο ο Harris detector αποτυγχάνει. [31] Εικόνα 3.8 O Harris detector μπορεί να θεωρήσει ως ίδια και τα τρία πράσινα κουτάκια της αριστερής γραμμής 17

18 Όπως μπορούμε να δούμε ο Harris detector θα αναγνώριζε ως ίδια όλα τα σημεία στο πράσινο κουτί της αριστερής καμπύλης. Στην πραγματικότητα όμως το σωστό κουτί είναι το μεσαίο. Το πρόβλημα αυτό λύνεται με τον αλγόριθμο SIFT. H διαδικασία δημιουργίας του Gaussian χώρου μπορεί να εκφραστεί μαθηματικά με την παρακάτω εξίσωση: L(x, y, σ) = G(x, y, σ) Ι(x, y) (3.1) Όπου με * δηλώνεται η πράξη της συνέλιξης, Ι(x, y) είναι η αρχική εικόνα και G(x, y, σ) = 1 x 2 +y 2 2πσ 2 e 2σ 2 είναι ο πυρήνας Gauss (Gauss mask ή Gauss kernel) Παρατηρείστε πως πλέον οι συναρτήσεις L και G εξαρτώνται εκτός από τις καρτεσιανές συντεταγμένες της εικόνας και από τη σταθερά σ. 3.2 Δημιουργία Differential of Gaussian (DοG) Για να ανιχνευθούν σταθερά σημεία ενδιαφέροντος(keypoints) επάνω στην εικόνα θα πρέπει να υπολογιστεί η λαπλασιανή συνάρτηση του Γκαουσιανού χώρου (Laplacian of Gaussian )που έχει δημιουργηθεί. Όπως περιγράφεται σε αναφορές του Mikolajczyk [32]ο εντοπισμός των μεγίστων και ελαχίστων (βλέπε παρακάτω) της Laplacian of Gaussian δίνει τα πιο σταθερά σημεία στην εικόνα τα οποία μπορούν να χρησιμοποιηθούν για τη διεργασία του image matching.η συνάρτηση Laplacian of Gaussian εκφράζεται με τον τύπο σ 2 2 G. Μια πιο απλοποιημένη μορφή της συνάρτησης αυτής όπως φαίνεται και στο παρακάτω διάγραμμα είναι η διαφορική Γκαουσιαννή( Differential of Gaussian). Καθώς η μορφή της είναι πιο απλή είναι και αυτή που θα χρησιμοποιείται τελικά στον αλγόριθμο SIFT. Στο κείμενο του Lowe [28] γίνεται αναφορά για το πώς η συνάρτηση DoG φτάνει τελικά να είναι μια απλοποιημένη μορφή της συνάρτησης LoG. Εικόνα 3.9 Προσέγγιση της συνάρτησης LoG με τη συνάρτηση DoG 18

19 Ο αλγόριθμος SIFT χρησιμοποιεί τη συνάρτηση DoG ως εξής: Αφού έχει δημιουργηθεί ο Gaussian scale space, όπως περιγράφηκε στο προηγούμενο βήμα, οι υποεικόνες που έχουν δημιουργηθεί αφαιρούνται ώστε να δημιουργηθούν καινούριες οκτάβες Εικόνα 3.10 DoG space Η διαδικασία συνοψίζεται στη μαθηματική εξίσωση: D(x, y, σ) = (G(x, y, kσ) G(x, y, σ)) Ι(x, y) = L(x, y, kσ) L(x, y, σ) (3.2) Όπου με * δηλώνεται η πράξη της συνέλιξης Εικόνα 3.11 DoG space 19

20 3.3 Ανίχνευση ακρότατων Έχοντας δημιουργήσει ένα σύνολο εικόνων που προήλθαν από τη συνάρτηση DOG έχει έρθει η ώρα να ανιχνευθούν τα υποψήφια σημεία ενδιαφέροντος (candidate keypoints). Η επιλογή γίνεται από ένα παράθυρο 9 pixel στη δεύτερη υποεικόνα DOG αμέσως μετά από αυτήν που βρίσκεται στην κατώτερο θέση της οκτάβας. Το σημείο που εξετάζεται είναι το κεντρικό pixel του παραθύρου αυτού. Το pixel αυτό θα χαρακτηριστεί ως υποψήφιο σημείο αν έχει τη μεγαλύτερη ή τη μικρότερη τιμή από τα υπόλοιπα 8 του παραθύρου αλλά και από τα 9 pixel που βρίσκονται στην αμέσως κατώτερη και στην αμέσως ανώτερη εικόνα της οκτάβας οι οποίες έχουν όπως είναι κατανοητό και διαφορετικό scale. Το pixel αυτό δηλαδή υπόκειται σε 26 ελέγχους. Η διαδικασία επαναλαμβάνεται για όλα ta pixel όλων των ενδιάμεσων υποεικόνων της οκτάβας (εκτός από αυτήν που βρίσκεται στην αρχή και στο τέλος της οκτάβας) αλλά και για όλες τις οκτάβες. Εικόνα 3.11 Ανίχνευση ακρότατων στις DoG υποεικόνες Επιπλέον σύμφωνα με το πρωτότυπο κείμενο του Lowe [28] κάθε υποεικόνα DoG που υπόκειται σε έλεγχο ακρότατων φιλτράρεται αρχικά με φίλτρο Gauss σταθεράς σ=1,6 ώστε να απορριφθούν οι υψηλότερες συχνότητες και στη συνέχεια ξεκινά ο έλεγχος των μεγίστων και ελαχίστων. 3.4 Εντοπισμός των σημείων ενδιαφέροντος (Keypoint Localization) Αφού έχουν ανιχνευθεί τα υποψήφια σημεία (keypoints) θα πρέπει να προσδιοριστεί η ακριβής τους θέση σε σχέση με τα γειτονικά σημεία και να περάσουν από κάποιους ελέγχους. Οι έλεγχοι θα απορρίψουν σημεία τα οποία έχουν χαμηλό contrast και άρα είναι ευαίσθητα σε θόρυβο αλλά και αυτά που βρίσκονται πάνω σε αιχμές φωτεινότητας (edges). Από αυτή την επεξεργασία θα προκύψουν τα σημεία τα οποία θα χρησιμοποιηθούν ώστε να δημιουργηθούν οι περιοχές που θα μπορούν να ανιχνευθούν στις υπόλοιπες εικόνες. 20

21 3.4.1 Ακριβής εντοπισμός των σημείων ενδιαφέροντος Για την ακριβή θέση του υποψήφιου σημείου οι Brown και Lowe πρότειναν την εφαρμογή μιας 3D τετραγωνικής συνάρτησης γύρω από το σημείο ενδιαφέροντος που εντοπίστηκε ως ακρότατο ώστε να προσδιορίσουν τη θέση του που προκύπτει από την παρεμβολή (interpolation) των γειτονικών ακρότατων. Για το λόγο αυτό χρησιμοποίησαν μια επέκταση του αναπτύγματος Taylor για τη συνάρτηση D(x,y,σ). D(x) = D + DT x x xτ 2 D x 2 x (3. 3) Όπου x = (x, y, σ) Τ είναι το offset από το σημείο Εικόνα 3.12 Δημιουργία μιας 3D τετραγωνικής συνάρτησης γύρω από το σημείο ενδιαφέροντος Η θέση του ακρότατου x καθορίζεται διαφορίζοντας την παραπάνω εξίσωση, αγνοώντας τους όρους δευτέρας τάξης και θέτοντας την ίση με το 0. 0 = D x + 2 D x 2 x (3. 4) Οπότε η θέση του ακρότατου είναι πλέον x = 2 D 1 D x 2 x (3.5) Στην παρακάτω εικόνα μπορούμε να δούμε γραφικά την παραπάνω διαδικασία Εικόνα 3.13 Εντοπισμός της πραγματικής θέσης του ακρότατου 21

22 Η παραπάνω εξίσωση αποτελεί ένα γραμμικό σύστημα 3x3 (μην ξεχνάμε πως x=(x,y,σ)) και για να λυθεί χρειάζεται αρκετούς υπολογισμούς. Όπως πρότεινε ο Brown τα διαφορικά της συνάρτησης D μπορούν να προσεγγιστούν με τις διαφορές στις τιμές των pixel ενώ αν το offset x είναι μεγαλύτερο από 0.5 αυτό σημαίνει πως το ακρότατο βρίσκεται κοντά σε άλλο σημείο ενδιαφέροντος. Στην περίπτωση αυτή το offset προστίθεται στη θέση του σημείου που έχει βρεθεί ώστε να προκύψει η σωστή θέση Απόρριψη σημείων με χαμηλό contrast Για να απορριφθούν τα σημεία που έχουν χαμηλό contrast θα πρέπει να υπολογιστεί η συνάρτηση D στο ακρότατο σημείο. D(x ) = D + 1 D T x (3.6) 2 x Όλα τα σημεία με τιμή D μικρότερη από 0.03 αποτελούν σημεία χαμηλού contrast και δε λαμβάνονται υπόψη. Η τιμή αυτή,όπως προκύπτει από πειραματικούς υπολογισμούς, αναφέρεται όταν η κλίμακα στις τιμές των pixel είναι στο διάστημα [0,1]. Σε πρακτικές εφαρμογές όπως θα δούμε και παρακάτω που οι τιμές των pixel είναι μεγαλύτερες του 1 θα πρέπει να απορρίψουμε τα σημεία που έχουν τιμή μικρότερη από το 3% της μέγιστης τιμής των pixel Απόρριψη σημείων με καλή απόκριση σε αιχμές φωτεινότητας (edges) Εκτός από την απόρριψη των σημείων με χαμηλό contrast πολύ σημαντικός είναι ο έλεγχος για το εάν ένα σημείο είναι πιθανόν να βρίσκεται επάνω σε αιχμή φωτεινότητας(edge). Αυτό συμβαίνει γιατί η συνάρτηση Dog έχει πολύ καλή απόκριση στις αιχμές αυτές. Ένα κακώς ορισμένο ακρότατο όπως προέκυψε από τη συνάρτηση DoG θα έχει μία μεγάλη καμπυλότητα κατά μήκος της αιχμής αλλά μία μικρή στην κάθετη διεύθυνση. Μπορούμε να υπολογίσουμε τις καμπυλότητες με τη βοήθεια του 2x2 πίνακα Hessian (Hessian matrix) όπως προκύπτει από τις αναφορές των Harris -Stephens. D xy H = ( D xx ) (3.7) D xy D yy Οι τιμές του πίνακα μπορούν να υπολογιστούν από τις διαφορές των γειτονικών pixel ενώ οι υπολογισμοί γίνονται στο συγκεκριμένο scale του σημείου. Οι ιδιοτιμές του πίνακα H είναι ανάλογες με τις κύριες καμπυλότητες της συνάρτησης D. Για ευκολία δε χρειάζεται να υπολογιστούν ξεχωριστά οι ιδιοτιμές του πίνακα αλλά ο λόγος τους είναι αυτός που κυρίως μας ενδιαφέρει. 22

23 Αν α είναι η ιδιοτιμή με το μεγαλύτερο μέγεθος και β η ιδιοτιμή με το μικρότερο τότε υπολογίζουμε το ίχνος του πίνακα (trace) και την ορίζουσα (det) ως εξής: Tr(H) = D xx + D yy = α + β (3.8) Det(H) = D xx D yy (D xy ) 2 = αβ (3.9) Αν η ορίζουσα είναι αρνητική οι καμπυλότητες έχουν διαφορετικά πρόσημα οπότε το σημείο απορρίπτεται καθώς δεν αποτελεί ακρότατο. Θεωρούμε τώρα πως r είναι ο λόγος μεταξύ της τιμής α και β έτσι ώστε α = rβ. Υπολογίζουμε το λόγο Tr(H) 2 (α + β)2 (rβ + β)2 (r + 1)2 = = Det(H) αβ rβ 2 = r (3.10) Όπως παρατηρούμε ο λόγος Tr(H)2 εξαρτάται μόνο από τον λόγο των ιδιοτιμών r Det(H) και όχι από τις ίδιες τις ιδιοτιμές. Μάλιστα γίνεται ο ελάχιστος όταν οι δύο τιμές α και β είναι ίδιες. Ώστε τελικά για να ελέγχουμε ότι οι κύριες καμπυλότητες είναι κάτω από κάποιο κατώφλι αρκεί να δείξουμε ότι Tr(H) 2 (r + 1)2 < Det(H) r (3.11) Τα πειράματα έδειξαν πως για τιμή r=10 έχουμε πολύ καλή εξάλειψη των σημείων με καλή απόκριση στις αιχμές. Εικόνα 3.14 [33] α)3522 σημεία,β)503 μετά από απόρριψη σημείων με χαμηλό contrast,γ)225 μετά από απόρριψη σημείων σε edges 23

24 Εικόνα 3.15 [31] α) αρχική εικόνα,β)1294 σημεία που προέκυψαν από τη συνάρτηση DoG,γ)605 μετά από απόρριψη σημείων με χαμηλό contrast,δ)328 μετά από απόρριψη σημείων σε edges με λόγο r=10,ε) χαρακτηρισμός των σημείων ως διανύσματα 3.5 Ανάθεση προσανατολισμού/μεγέθους (Orientation/magnitude assignment) Ο αλγόριθμος SIFT έχει το πλεονέκτημα όπως αναφέρθηκε στην αρχική περιγραφή να ανιχνεύει σημεία ακόμα και αν η εικόνα έχει περιστραφεί. Αυτό γίνεται περιγράφοντας τα σημεία που έχουν εντοπιστεί (keypoints) ως διανύσματα. Κάθε σημείο πλέον θα έχει έναν προσανατολισμό όπως θα δούμε αμέσως παρακάτω. Αυτή η προσέγγιση αποτελεί ένα μεγάλο πλεονέκτημα για τον αλγόριθμο SIFT καθώς υπερτερεί άλλων διαδεδομένων αλγορίθμων όπως αυτός των Schmid και Mohr. Από την άλλη μεριά η επεξεργασία των δεδομένων 24

25 ώστε να αποκτήσουν τα χαρακτηριστικά ενός διανύσματος απαιτούν ένα σημαντικό χρόνο υπολογισμού που αποτελεί μειονέκτημα για κάποιες εφαρμογές. Για μια περιοχή λοιπόν γύρω από το σημείο υπολογίζονται για κάθε pixel το μέγεθος του διανύσματος m και η γωνία προσανατολισμού θ σύμφωνα με τους τύπους: m(x, y) = (L(x + 1, y) L(x 1, y)) 2 + (L(x, y + 1) L(x, y 1)) 2 (3.12) θ(x, y) = tan 1 L(x, y + 1) L(x, y 1) ( L(x + 1, y) L(x 1, y) ) (3.13) Όπου L(x,y) οι τιμές των pixel στη συγκεκριμένη περιοχή γύρω από το σημείο. Θα πρέπει να σημειωθεί πως οι υπολογισμοί γίνονται στην υποεικόνα που ανήκει στις Gauss οκτάβες που έχει το ίδιο scale με την εικόνα DoG από την οποία προήλθε το σημείο. Επιπλέον η περιοχή γα την οποία υπολογίζονται τα παραπάνω μεγέθη φιλτράρεται αρχικά με ένα φίλτρο Gauss που έχει σταθερά σ 1,5 φορές μεγαλύτερη από τη σταθερά σ της υποεικόνας Gauss. Εικόνα 3.16 Φιλτράρισμα περιοχής γύρω από το σημείο Εικόνα 3.17 Περιγραφή των pixel γύρω από το σημείο ως διανύσματα 25

26 Για να αποδοθεί στο σημείο ενδιαφέροντος μια χαρακτηριστική διεύθυνση θα πρέπει να κατασκευαστεί ένα ιστόγραμμα το οποίο αποτελείται από 36 ράβδους(1 ράβδος αντιστοιχεί σε 10 μοίρες) καλύπτοντας έτσι 360. Κάθε διάνυσμα της περιοχής ταξινομείται ανάλογα τη γωνία προσανατολισμού θ. Σε κάθε ράβδο του ιστογράμματος κάθε φορά που προστίθεται ένα διάνυσμα προστίθεται και το αντίστοιχο μέγεθος m. Με αυτόν τον τρόπο προκύπτει η διέυθυνση με το μεγαλύτερο μέγεθος m η οποία θα είναι και η αντίστοιχη κύρια διεύθυνση του σημείου. Επιπλέον κάθε ράβδος που είναι πάνω από το 80% της τιμής της κύριας διεύθυνσης χρησιμοποιείται ώστε να δημιουργηθεί ένα καινούριο σημείο με τη συγκεκριμένη κύρια διεύθυνση. Έχει παρατηρηθεί παρόλαυτα πως μόνο το 15% των συνολικών σημείων δημιουργείται με αυτόν τον τρόπο. Εικόνα 3.18 Ανίχνευση κορυφών ιστογράμματος Επιπλέον οι κορυφές του ιστογράμματος με τις τρεις μεγαλύτερες τιμές συνθέτουν μια παραβολή η οποία μπορεί να χρησιμοποιηθεί ώστε να προσδιοριστεί ακριβώς η θέση της μέγιστης κορυφής για μεγαλύτερη ακρίβεια. Εικόνα 3.19 Κατασκευή ιστογράμματος 36 δειγμάτων 26

27 3.6 Feature Descriptor Η κορυφή με τη μεγαλύτερη τιμή που προέκυψε αποτελεί τη χαρακτηριστική διεύθυνση του σημείου. Για να μπορέσει ο αλγόριθμος να εντοπίζει σημεία σε εικόνα η οποία έχει περιστραφεί θα πρέπει η περιοχή από την οποία φτιάχτηκε το ιστόγραμμα των 36 ράβδων να περιστραφεί κατά τη διεύθυνση της χαρακτηριστικής διεύθυνσης. Επομένως συνοψίζοντας, για κάθε σημείο δημιουργείται το ιστόγραμμα με τα 36 δείγματα. Από αυτό προκύπτει η κύρια διεύθυνση του σημείου που ορίζει τη γωνία που πρέπει να περιστραφούν οι συντεταγμένες της περιοχής γύρω από το σημείο. Με τον τρόπο αυτό ο αλγόριθμος θα μπορεί να ανιχνεύει features σε εικόνα η οποία έχει περιστραφεί ως προς την αρχική. Εικόνα 3.20 Περιστροφή περιοχής κατά τη χαρακτηριστική διεύθυνση του σημείου Για να μπορούν όμως να εντοπιστούν τα σημεία στη δεύτερη εικόνα θα χρειαστεί η δημιουργία περαιτέρω ιστογραμμάτων. Στην παρακάτω εικόνα φανερώνεται η διαδικασία που ακολουθήθηκε στον αλγόριθμο SIFT ώστε να μπορέσουν να περιγραφούν αποδοτικά τα σημεία ενδιαφέροντος. Εικόνα 3.21 Υποδιαίρεση μιας περιοχής 16x16 pixel σε 4x4 πίνακα και κατασκευή ιστογράμματος για κάθε κελί του καινούριου πίνακα Όπως φαίνεται στην εικόνα επιλέγεται μια περιοχή 16x16 pixel γύρω από το σημείο ενδιαφέροντος,τα οποία χαρακτηρίζονται ως διανύσματα αφού έχουν αποδοθεί σε αυτά διεύθυνση και μέγεθος όπως περιγράφηκε στο προηγούμενο 27

28 βήμα του αλγορίθμου. Η περιοχή αυτή περιστρέφεται κατά τη χαρακτηριστική διέυθυνση του σημείου όπως περιγράφηκε παραπάνω. Στη συνέχεια υποδιαιρείται σε μικρότερες ώστε να δημιουργηθεί ένα παράθυρο 4x4. Κάθε υποπεριοχή περιέχει 16 pixel-διανύσματα. Τα διανύσματα αυτά συνθέτουν ένα ιστόγραμμα 8 δειγμάτων αυτή τη φορά με την ίδια διαδικασία που περιγράφηκε στο προηγούμενο βήμα. Το ιστόγραμμα δημιουργείται για όλες τις υποπεριοχές οπότε συνολικά προκύπτουν 16 ιστογράμματα. Εικόνα 3.22 Δημιουργία 16 ιστογραμμάτων για κάθε σημείο ενδιαφέροντος(keypoint) Τα ιστογράμματα αυτά συνθέτουν ένα ευρύτερο διάνυσμα 128 στοιχείων (8 ράβδοι για κάθε ιστόγραμμα x 16 ιστογράμματα) το οποίο εμπεριέχει όλες τις τιμές των διανυσμάτων που δημιουργήθηκαν. Αυτό το ευρύτερο διάνυσμα είναι χαρακτηριστικό για κάθε σημείο ενδιαφέροντος. Επιπλέον αυτό θα χρησιμοποιηθεί ώστε να ταυτοποιηθεί το σημείο στη δεύτερη εικόνα κατά τη διαδικασία του image matching. 3.7 Matching Έχοντας βρει τα σημεία ενδιαφέροντος στις εικόνες από τις οποίες πρόκειται να προκύψει το τελικό πανόραμα, και έχοντας πληροφορίες για τη γειτονιά κάθε σημείου έφτασε η στιγμή να γίνει ο εντοπισμός των σημείων της μιας εικόνας στις υπόλοιπες. Ουσιαστικά πρόκειται για μια λειτουργία σύγκρισης στην οποία συγκρίνονται τα αποτέλεσμα του feature descriptor κάθε εικόνας. Στην περίπτωση λοιπόν που έχουμε δύο εικόνες για συρραφή (stitching), θα πρέπει να ανιχνευθεί κάθε σημείο ενδιαφέροντος της πρώτης εικόνας (το διάνυσμα των 128 στοιχείων) στη δεύτερη εικόνα. Για το σκοπό αυτό δημιουργήθηκαν διάφοροι αλγόριθμοι καθώς η απλή σύγκριση των διανυσμάτων δεν είναι πάντα η πιο αξιόπιστη λύση. Ο πιο διαδεδομένος αλγόριθμος που εκτελεί τη διαδικασία του feature matching είναι ο RANSAC [34] [35]. Ο αλγόριθμος όμως αυτός απαιτεί αρκετούς υπολογισμούς πράγμα που δεν είναι επιθυμητό σε κάποιες εφαρμογές real time όπου το κριτήριο είναι η ταχύτητα. 28

29 Εκτός από τον RANSAC έχουν αναπτυχθεί και άλλοι αλγόριθμοι γεωμετρικής φύσης. Ένας εξ αυτών αρχικά ανιχνεύει ποια features από την πρώτη εικόνα αντιστοιχούν στη δεύτερη ώστε να προκύψουν ζεύγη ταιριασμένων σημείων. Στη συνέχεια υπολογίζει την ευκλείδεια απόσταση μεταξύ του κάθε ζεύγους. Θέτοντας ένα κατώφλι, όσες αποστάσεις είναι μεγαλύτερες από αυτό θα απορρίπτονται και δε θα χρησιμοποιούνται. Η χρήση κατωφλίου ωστόσο απαιτεί μεγάλη προσοχή καθώς θέτοντας ένα κατώφλι αρκετά μεγάλο θα έχει ως συνέπεια να ανιχνευθούν πολλά εσφαλμένα ζεύγη (false positive). Αντίθετα θέτοντας ένα κατώφλι αρκετά μικρό μπορεί να προκαλέσει την απώλεια πολλών αληθών ζευγών (false negative). Εικόνα 3.23 Ζεύγη που προέκυψαν από τη διαδικασία του matching και οι ευκλείδειες αποστάσεις τους. Θέτοντας κατάλληλα το κατώφλι οι μεγάλες αποστάσεις απορρίπτονται (πχ.c) Όπως θα έγινε αντιληπτό το πρόβλημα σε αυτόν τον αλγόριθμο είναι η τιμή του κατωφλίου. Η τιμή αυτή μπορεί να προκύψει από διάφορες μελέτες και η εύρεση της ιδανικότερης τιμής καθιστά τον αλγόριθμο ελαφρώς δύσχρηστο. Μια πιο βελτιωμένη έκδοση είναι ο υπολογισμός του λόγου NNDR(Nearest Neighbor Distance Ratio) αφού έχουν ανιχνευθεί παραπάνω από ένα ζεύγη για ένα σημείο. NNDR = d 1 d 2 Όπου d 1 είναι η απόσταση των δύο διανυσμάτων από το πρώτο match και d 2 είναι η απόσταση των διανυσμάτων από το δεύτερο match. Όταν ο λόγος είναι μεγαλύτερος από 0.8 το ζεύγος απορρίπτεται ενώ όταν είναι μικρότερος από 0.8 χαρακτηρίζεται ως good match.. 29

30 4. FPGA Implementation Στο κεφάλαιο αυτό θα περιγράψουμε την υλοποίηση του αλγορίθμου image stitching σε FPGA με τη βοήθεια της VHDL. Όπως αναφέραμε και στην εισαγωγή η hardware υλοποίηση ενός αλγορίθμου απαιτείται όταν κριτήριο είναι η ταχύτητα και η απόδοση. Υπερέχει σημαντικά σε σχέση με μια software υλοποίηση καθώς αυξάνεται ο παραλληλισμός. Υπάρχει δηλαδή η δυνατότητα να εκτελούνται πολλές λειτουργίες ταυτόχρονα και όχι σειριακά όπως ενδεχομένως θα γινόταν σε μια γλώσσα προγραμματισμού όπως η C/C++. Τα FPGA είναι τα πλέον ιδανικά για απαιτητικές εφαρμογές όπως image processing και signal processing καθώς έχουν μεγάλη υπολογιστική ισχύ. Το μειονέκτημα φυσικά είναι η μεγάλη κατανάλωση ισχύος σε σχέση με απλούς μικροελεγκτές για τέτοιου είδους εφαρμογές αλλά με την πάροδο των χρόνων γίνονται βήματα μπροστά για τη βελτίωση σε αυτόν τον τομέα. Στη συνέχεια του κειμένου θα αναφέρουμε με αναφορές κάποια παραδείγματα για real time εφαρμογές στον τομέα του image processing με τη βοήθεια των FPGA ώστε να κατανοήσει ο αναγνώστης τις επιδόσεις που μπορεί να έχει μια hardware υλοποίηση ενός αλγορίθμου και θα προχωρήσουμε στην περιγραφή της υλοποίησης του αλγορίθμου image stitching. 4.1 Real time εφαρμογές image processing Καθώς οι τεχνικές του image matching και feature detecting που αναλύσαμε στην ενότητα 2 έχουν βρει πληθώρα εφαρμογών και χρησιμοποιούνται σε real time εφαρμογές αναγνώρισης προσώπων και αντικειμένων, σε συστήματα ασφαλείας, συστήματα χαρτογράφησης και ρομποτικής κλπ, επόμενο ήταν να γίνει προσπάθεια να υλοποιηθούν στα FPGA. Από τις πρώτες υλοποιήσεις σε FPGA ήταν αυτές του αλγορίθμου SUSAN που περιγράφεται στο άρθρο των C. Torres-Huitzil and M. Arias-Estrada [36] και του κλασικού Harris detector [37]. Στο [38] παρουσιάζεται μια υλοποίηση feature detection και feature description βασιζόμενη στον αλγόριθμο SURF. Η ταχύτητα του συγκεκριμένου project ήταν 10 fps (frames per sec) για εικόνα διαστάσεων 1024x768. Στο άρθρο των Michał Fularz, Marek Kraft, Adam Schmidt και Andrzej Kasiński [39] γίνεται η παρουσίαση μιας υλοποίησης σε FPGA ενός αλγορίθμου που βασίζεται στους αλγορίθμους feature detecting FAST και BRIEF για τους οποίους κάναμε μια πρώτη νύξη στην αρχή του κειμένου αυτού. Η υλοποίηση αυτή αν και χρησιμοποιεί και τμήμα software, είναι μια embedded υλοποίηση και υπόσχεται πως μπορεί να επεξεργαστεί μέχρι και 325 fps(frames per sec) όπου η ανάλυση του ενός frame είναι 640x480. Αντίθετα για μια εικόνα full HD (1920x1080) μπορεί να επεξεργαστεί μέχρι 48 fps. Οι χρόνοι αυτοί αναφέρονται στο κομμάτι του feature detecting και όχι στο feature description και matching. Αντιλαμβάνεται κανείς πως τέτοιου είδους αλγόριθμοι όπως ο FAST μπορούν να χρησιμοποιηθούν πολύ εύκολα σε εφαρμογές video processing. 30

31 Ακόμα μία υλοποίηση για τον FAST αλγόριθμο παρουσιάζεται στο [40]. Φυσικά δε θα μπορούσαμε να παραβλέψουμε τις προσπάθειες υλοποίησης του SIFT αλγορίθμου με τον οποίο θα ασχοληθούμε και στο project αυτό. Στο [41] εφαρμόζεται ο SIFT για stereo calibration με ταχύτητα επεξεργασίας 60 fps, ενώ υπάρχουν αναφορές για υλοποιήσεις του SIFT (για feature detecting και όχι description) σε ταχύτητες 0,8 ms [42] και 62 ms [43] για μια εικόνα 320x240. Μια πιο πλήρης αναφορά σε τεχνικά χαρακτηριστικά του SIFT δίνεται στο [44] που μπορεί να ανιχνεύσει features σε ταχύτητα 33 ms ανά frame για την ίδια ανάλυση εικόνας ενώ και στο [45] η ταχύτητα προσεγγίζει τα 50 ms ανά frame. 4.2 Σχεδιασμός συστήματος image stitching Στη συνέχεια θα προχωρήσουμε στην περιγραφή της υλοποίησης του αλγορίθμου image stitching. Η υλοποίηση έγινε με τη βοήθεια της VHDL η οποία αναπτύχθηκε στο Xilinx ISE. Χρησιμοποιήθηκε η πλακέτα Zedboard Zynq 7000 [46] η οποία αποτελεί μια πολύ καλή μέση λύση για εφαρμογές signal και image processing. Εικόνα 4.1 Zedboard Zynq7000 Το block διάγραμμα του συστήματος φαίνεται στο παρακάτω σχήμα. Οι δύο επικαλυπτόμενες εικόνες οδηγούνται σε δύο top module που υλοποιούν τον feature descriptor SIFT όπου ανιχνεύονται και δημιουργούνται τα σημεία και οι περιοχές ενδιαφέροντος. Στη συνέχεια γίνεται η αντιστοιχία των σημείων με το module matching και τέλος το module stitching αναλαμβάνει να δημιουργήσει το τελικό panorama. 31

32 Εικόνα 4.2 Block διάγραμμα συστήματος stitching Η παραπάνω εικόνα αποτελεί το dataflow του συνολικού αλγορίθμου stitching. Όπως θα φανεί και κατά την αναλυτική περιγραφή του αλγορίθμου κάθε module από αυτά που αναφέραμε αλληλεπιδρά με τα προηγούμενα σε όλες τις φάσεις εκτέλεσης. 4.3 Σχεδιασμός του feature detector/descriptor SIFT Θα ξεκινήσουμε την περιγραφή με το κυριότερο μέρος του συστήματος που είναι ο αλγόριθμος SIFT. Θα πρέπει να επισημάνουμε εδώ ότι η υλοποίηση του SIFT που περιγράφεται είναι μια απλοποιημένη έκδοση του αλγορίθμου, προκειμένου να μπορέσει να υλοποιηθεί στην πλακέτα Zedboard συνεπώς δεν έχουν συμπεριληφθεί όλα τα βήματα όπως περιγράφεται στο πρωτότυπο κείμενο του Lowe και όπως τα έχουμε αναφέρει στην προηγούμενη ενότητα. Η εικόνα που επεξεργάζεται έχει βάθος 4 bit καθώς αυτή είναι η ανάλυση που μπορεί να δώσει η πλακέτα ZEDBOARD ενώ επιπλέον μειώνονται και οι απαιτήσεις μνήμης. Επίσης θα πρέπει να αναφέρουμε πως η επεξεργασία έγινε για grayscale εικόνα καθώς με τέτοιου είδους εικόνες λειτουργεί πιο αποδοτικά ο αλγόριθμος SIFT. To block διάγραμμα του SIFT φαίνεται και στο παρακάτω σχήμα για τις δύο εικόνες. 32

33 Εικόνα 4.3 Block διάγραμμα συστήματος SIFT Αρχικά υπάρχει το module Gauss, όπου δημιουργείται η πυραμίδα Gauss όπως περιγράφηκε στην ενότητα 3. Ακολουθεί η πυραμίδα DoG,ενώ το module του maxima detector ανιχνεύει τα μέγιστα της DoG πυραμίδας. Στη συνέχεια υπάρχει το module του OriMag που περιγράφει κάθε pixel γύρω από κάθε μέγιστο ως διάνυσμα. Τέλος ο Descriptor αναλαμβάνει να συνθέσει τα ιστογράμματα που περιγράφηκαν στην ενότητα 3 ώστε να μπορέσει να ανιχνευτεί το σημείο ενδιαφέροντος ως ένα διάνυσμα πλέον αποτελούμενο από 128 στοιχεία-διανύσματα. Το σύστημα χωρίζεται στις προηγούμενες 5 καταστάσεις οι οποίες εκτελούνται η μία μετά την άλλη καθώς κάθε μία εξαρτάται από την προηγούμενη. Η εναλλαγή των καταστάσεων γίνεται μέσω ενός module που ονομάζεται SIFT Controller Σχεδιασμός SIFT Controller Ο SIFT Controller υλοποιείται ως ένα fsm 6 καταστάσεων και αναλαμβάνει να ενεργοποιεί κάθε φορά τα modules που χρειάζονται σε κάθε κατάσταση. Οι καταστάσεις είναι: Gauss_state, DOG_state, maxima_state, orimag_state, descriptor_state ενώ υπάρχει και μία προαιρετική κατάσταση VGA_state που ενεργοποιείται από εξωτερικό διακόπτη ώστε να αποτυπώνονται οι εικόνες στην οθόνη. 33

34 Εικόνα SIFT Controller entity Ο SIFT Controller ενεργοποιεί το συνολικό σύστημα (περνάει στην πρώτη κατάσταση) μέσω του εξωτερικού διακόπτη switch. Παρέχει τα κατάλληλα σήματα ενεργοποίησης σε όλα τα modules που είναι απαραίτητα να λειτουργούν σε κάθε κατάσταση συμπεριλαμβανόμενων και τυχόν πολυπλέκτες και αποπολυπλέκτες καθώς και σήματα εγγραφής σε μνήμες. Τέλος δέχεται ως εισόδους σήματα (flags) τα οποία τον ειδοποιούν ώστε να αλλάξει κατάσταση. Εικόνα SIFT Controller simulation Φόρτωση εικόνας σε μνήμες BRAM Καθώς η αρχική προσέγγιση του project είναι να γίνει όσο το δυνατόν γρηγορότερο, προτιμήσαμε τη χρήση BRAM ως μέσο μνήμης καθώς με αυτόν τον τρόπο το συνολικό design γίνεται πιο ευέλικτο και πιο εύκολα υλοποιήσιμο. Η μνήμη RAM υλοποιείται μέσω του core generator του ΙSE στο οποίο μπορούμε να ρυθμίσουμε αναλυτικά τα σήματα εισόδου και εξόδου, τη χωρητικότητα της μνήμης καθώς και τα σήματα εγγραφής. Τα BRAM αποτελούν ενσωματωμένα 34

35 στην πλακέτα modules με τα οποία μπορούμε να συνθέσουμε μνήμες RAM,ROM και FIFO. Ο αποθηκευτικός τους χώρος περιορίζεται σε μικρές απαιτήσεις μνήμης. Η πλακέτα Zedboard διαθέτει 140 blockrams των 36kbits με συνολική χωρητικότητα 560kB. Στο συγκεκριμένο project η εικόνα έχει προφορτωθεί στη μνήμη κατά το στάδιο της δημιουργίας της BRAM. Αυτό γίνεται μέσω ενός αρχείου coe [47] το οποίο περιέχει τις τιμές των pixel και εξάγεται από τη Matlab. Φυσικά σε μεταγενέστερες βελτιώσεις του project η εικόνα θα μπορεί με το κατάλληλο module να εισάγεται στη μνήμη BRAM μέσω μιας εξωτερικής θύρας (σειριακής, usb) ή ακόμα και από κάμερα. To module της BRAM περιέχει μια θύρα εισόδου δεδομένων (dina) που είναι ένα διάνυσμα 4 bit όσο είναι και το βάθος του κάθε pixel, μια θύρα εξόδου(douta), το σήμα εγγραφής στη μνήμη (wea) και τη διεύθυνση (addra) στην οποία αποθηκεύεται το κάθε pixel. Η διεύθυνση θα έχει τόσο εύρος ώστε να μπορεί να περιέχει όλα τα pixel της εικόνας. Εικόνα BRAM entity Σχεδιασμός πυραμίδας Gauss Δομικό συστατικό μιας πυραμίδας Gauss είναι όπως μπορεί εύκολα να γίνει αντιληπτό το φίλτρο Gauss. Το φίλτρο Gauss λειτουργεί (βλέπε και A1) χρησιμοποιώντας ένα παράθυρο 9 pixel (πίνακας 3x3) το οποίο σαρώνει ολόκληρη την εικόνα και εφαρμόζει την πράξη της συνέλιξης σε κάθε pixel. Μπορούν να γίνουν πολλές προσεγγίσεις για το πώς μπορεί να δημιουργηθεί ένα φίλτρο Gauss μέσω της VHDL [48]. Στο συγκεκριμένο project τo block διάγραμμα της vhdl υλοποίησης αποτελείται α) από τον image controller που δημιουργεί το κινούμενο παράθυρο των 9 pixel που σαρώνει την εικόνα, β) από το block convolution στο οποίο γίνεται η πράξη της συνέλιξης, γ) από το διαιρέτη που ολοκληρώνει την πράξη της συνέλιξης και δ) από τον Gauss controller που παρέχει τα απαραίτητα σήματα ελέγχου και ενεργοποίησης για κάθε block. 35

36 Εικόνα Block διάγραμμα του Gauss module Το module του Gauss βρίσκεται σε άμεση επικοινωνία με τη μνήμη, καθώς από αυτήν θα διαβάζει τις τιμές των pixel και σε αυτήν θα αποθηκεύει τη φιλτραρισμένη πλέον τιμή. Στο module αυτό α) ο image controller(ακολουθήθηκε το μοντέλο της αναφοράς [48]) συνθέτει το παράθυρο της συνέλιξης μέσω ενός fsm. Βρίσκεται σε άμεση επικοινωνία με τα BRAM που βρίσκεται η εικόνα από τα οποία και δέχεται την πληροφορία για το ποιο pixel πρέπει να εισαχθεί στο module (douta) μέσω της διεύθυνσης (addra) που αυτό είναι αποθηκευμένο στη BRAM. Τα pixel του παραθύρου(p0-p8) αποτελούν τις εξόδους του module που θα οδηγηθούν στο block της συνέλιξης. Επίσης ο image controller ειδοποιεί τον gauss controller μόλις τελειώσει η διεργασία του(gauss_count). Εικόνα Image controller entity 36

37 β) To convolution module εκτελεί τις πράξεις του πολλαπλασιασμού και της πρόσθεσης για όλα τα pixel του παραθύρου. Κάθε pixel του παραθύρου πολλαπλασιάζεται αρχικά με την αντίστοιχη σταθερά constant σύμφωνα με τον Gauss kernel. Χρησιμοποιώντας σταθερά σ για το φίλτρο Gauss ίση με σ=1 προκύπτει πως ο Gauss kernel και οι σταθερές k θα είναι σύμφωνα με τον παρακάτω πίνακα. k1=1 k2=2 k3=1 k4=2 k5=4 k6=2 k7=1 k8=2 k9=1 Εικόνα Gauss mask Από το block διάγραμμα παρακάτω φαίνεται πως κάθε pixel εισάγεται με την αντίστοιχη σταθερά σε έναν πολλαπλασιαστή και το αποτέλεσμα σε έναν αθροιστή. Εικόνα Block διάγραμμα του convolution module Οι πολλαπλασιαστές υλοποιήθηκαν μέσω του core generator και πραγματοποιούν πολλαπλασιασμό δύο διανυσμάτων 4 bit (όσο είναι και η ανάλυση της εικόνας). Το αποτέλεσμα είναι ένα 8 bit διάνυσμα το οποίο οδηγείται σε έναν αθροιστή ο οποίος προσθέτει όλα τα αποτελέσματα των πολλαπλασιασμών. Για λόγους σωστού συγχρονισμού και για καλύτερο έλεγχο ο αθροιστής υλοποιήθηκε ως ένα fsm 3 καταστάσεων. Η πρώτη είναι η αρχική κατάσταση, η δεύτερη είναι η κατάσταση που διαβάζονται τα δεδομένα στις εισόδους του αθροιστή και στην 37

38 τρίτη εκτελείται η πράξη της πρόσθεσης και εμφανίζεται το αποτέλεσμα στην έξοδο του αθροιστή. γ) Το κύκλωμα του divider γενικά αποτελεί ένα καίριο σημείο στο σχεδιασμό με FPGA. Είναι ένα ιδιαίτερα απαιτητικό component τόσο στο πλήθος των πυλών που χρειάζεται για να υλοποιηθεί όσο και στο χρόνο που χρειάζεται τελικά για να εκτελεστεί η πράξη της διαίρεσης. Ωστόσο στο συγκεκριμένο design χρησιμοποιήθηκε ένα πολύ γρήγορος divider που εκτελεί την πράξη της διαίρεσης σε έναν κύκλο ρολογιού κάνοντας χρήση μιας συνάρτησης γραμμένης σε VHDL(λεπτομέρειες στο Code Appendix). δ) Το module του Gauss controller αποτελεί ένα fsm 3 καταστάσεων. Στην πρώτη κατάσταση (read_state) διαβάζει τα δεδομένα από τη μνήμη BRAM, στη δεύτερη κατάσταση γίνεται η συνέλιξη των pixel και στην τρίτη εκτελείται η διαίρεση και η εγγραφή του αποτελέσματος στη μνήμη BRAM. Περιέχει τα σήματα ενεργοποίησης των επιμέρους components (reg_ena,nd,ena) καθώς και το σήμα εγγραφής στη μνήμη BRAM(wea). Επιπλέον ειδοποιείται από τα επιμέρους components για το πότε τελειώνει κάθε διεργασία ώστε να προχωρήσει στην επόμενη μέσω των σημάτων flags (read_flag,rdy). Εικόνα Gauss controller entity Εικόνα Gauss controller simulation 38

39 Η πυραμίδα Gauss αποτελείται λοιπόν από 12 φίλτρα Gauss τα οποία χωρίζονται σε 3 οκτάβες. Αυτό είναι το σημαντικό πλεονέκτημα μιας hardware υλοποίησης καθώς τα 12 φίλτρα αυτά μαζί με τις 12 BRAM μπορούν να τρέχουν παράλληλα χωρίς να χρειάζεται να τελειώσει η διεργασία του ενός φίλτρου ώστε να προχωρήσει στη δεύτερη. Εικόνα Block διάγραμμα πυραμίδας Gauss Σχεδιασμός πυραμίδας DoG Με την ίδια λογική όπως και με την πυραμίδα Gauss δημιουργείται και η πυραμίδα του διαφορικού Gauss (DoG). Τα μπλοκ μνήμης που περιέχουν πλέον τις φιλτραρισμένες εικόνες αφαιρούνται όπως φαίνεται και στο διάγραμμα παρακάτω. Εικόνα Block διάγραμμα πυραμίδας DoG 39

40 Η προσέγγιση του DoG γίνεται πολύ εύκολη με τη χρήση ενός fsm τεσσάρων καταστάσεων. Εκτός από την αρχική κατάσταση(initial_state) υπάρχει η κατάσταση read_state στην οποία γίνεται η προσπέλαση της εικόνας ανά pixel αυξάνοντας κάθε φορά την τιμή διεύθυνσης των δύο BRAM ώστε να διαβάζονται τα pixel κατά γραμμή. Στην κατάσταση write_state γίνεται εγγραφή στη BRAM που έχει δημιουργηθεί για το συγκεκριμένο module και γίνεται έλεγχος για το πότε η εικόνα έφτασε στο τέλος της. Η τελευταία κατάσταση προστέθηκε για λόγους συγχρονισμού και εκτελείται όταν η εικόνα έχει προσπελαστεί ολόκληρη. Εικόνα Entity DoG Στο module αυτό τα διανύσματα data_in1 και addr1 αναφέρονται στην τιμή του pixel και τη διεύθυνση στην οποία είναι αποθηκευμένο για τη μία από τις δύο BRAM που αφαιρούνται. Ομοίως και για τα διανύσματα data_in2 και addr2. Το διάνυσμα wr_addr αναφέρεται στη διεύθυνση της μνήμης στην οποία γράφεται το αποτέλεσμα της αφαίρεσης DoG out, ενώ το σήμα wr_ena_ram είναι το σήμα εγγραφής της BRAM. Η σημαία DOG_end είναι το σήμα που ειδοποιεί τον SIFT_controller ότι η διαδικασία της δημιουργίας DoG πυραμίδας έχει τελειώσει. Θα πρέπει να επισημάνουμε τελειώνοντας πως η αφαίρεση εκτελείται μόνο όταν το αποτέλεσμα θα είναι θετικό καθώς δεν μπορούμε να έχουμε αρνητική τιμή pixel. Σε διαφορετική περίπτωση το αποτέλεσμα είναι 0, δηλαδή το pixel έχει τη μικρότερη δυνατή φωτεινότητα (μαύρο). Εικόνα DoG Simulation 40

41 4.3.4 Ανίχνευση ακρότατων Εφόσον έχει δημιουργηθεί ο χώρος scale space όπως ορίζει ο αλγόριθμος SIFT, στη συνέχεια θα πρέπει να γίνει η ανίχνευση ακρότατων στην πυραμίδα DoG. Το module maxima detector αρχικά δημιουργηθεί ένα παράθυρο 9 pixel όπως ακριβώς είχε δημιουργηθεί και από τον image controller. Το κεντρικό pixel του παραθύρου είναι αυτό που θα ελεγχθεί αν αποτελεί κάποιο ακρότατο. Στον πρωτότυπο αλγόριθμο SIFT γίνεται έλεγχος τόσο για ελάχιστο όσο και για μέγιστο ακρότατο. Στη συγκεκριμένη όμως υλοποίηση γίνεται έλεγχος μόνο για μέγιστα. Αυτό θα οδηγήσει σε λιγότερα σημεία ενδιαφέροντος αλλά σε σημαντική βελτίωση του χώρου και του χρόνου εκτέλεσης του αλγορίθμου. Αρχικά λοιπόν γίνεται ο έλεγχος στα 8 γειτονικά pixel του παραθύρου. Αν η τιμή του κεντρικού pixel είναι η μέγιστη το pixel συνεχίζει τον έλεγχο σε δύο ακόμα όμοια παράθυρα από την εικόνα που βρίσκεται στο αμέσως μικρότερο scale και στο αμέσως μεγαλύτερο πάντα στο χώρο DoG. Αν η τιμή του pixel είναι η μέγιστη από τα 26 pixel που συγκρίθηκε τότε αποθηκεύεται (τιμή και διεύθυνση) σε μία μνήμη FIFO. Το module υλοποιήθηκε ως ένα fsm 32 καταστάσεων. Εκτός από την αρχική (initial_state) και την τελική (halt) υπάρχουν άλλες 30 καταστάσεις στις οποίες γίνεται η σύγκριση του κεντρικού pixel. Το module έχει τη δυνατότητα να μετράει τον αριθμό των μέγιστων pixel που βρέθηκαν ώστε να μπορέσει να προσπελαστεί πιο εύκολα η μνήμη FIFO στη συνέχεια. Εικόνα Entity Maxima detector 41

42 Εικόνα Maxima detector Simulation Έλεγχος σταθερότητας μεγίστων Στο τμήμα αυτό αποφασίζεται ποια ακρότατα θα αποτελέσουν τα σημεία ενδιαφέροντος στα οποία θα δοθούν διεύθυνση και μέγεθος στο επόμενο block και τα οποία θα αποτελέσουν τα σημεία από τα οποία θα δημιουργηθούν οι διάφορες περιοχές ενδιαφέροντος. Στη συγκεκριμένη υλοποίηση χρησιμοποιήθηκε χάριν απλούστευσης μόνο ένας έλεγχος για τα ακρότατα συγκριτικά με το πρωτότυπο έγγραφο του D.Lowe ο οποίος είναι και ο πιο σημαντικός. Πιο συγκεκριμένα ο έλεγχος αφορά τα σημεία που έχουν καλή απόκριση σε αιχμές φωτεινότητας (edges) και είναι αυτά τα οποία θα πρέπει να απορριφθούν (ενότητα 3.4.3). Λόγω της πολυπλοκότητας των πράξεων του συγκεκριμένου module το τμήμα αυτό υλοποιήθηκε με software χρησιμοποιώντας ένα μικροελεγκτή. Θα μπορούσε να χρησιμοποιηθεί κάλλιστα και ο επεξεργαστής Arm της πλακέτας Zedboard ως μια embedded εφαρμογή. Ο κώδικας που χρησιμοποιήθηκε δίνεται στο Code Appendix ενώ πληροφορίες για το πώς υπολογίζονται οι διάφορες παράγωγοι με τη βοήθεια software δίνεται στην ενότητα Appendix Περιγραφή των γειτονικών pixel ενός σημείου ως διανύσματα Το block αυτής της λειτουργίας είναι το πιο χρονοβόρο σημείο του αλγορίθμου SIFT. Στο module Orimag που υλοποιεί την ανάθεση κατεύθυνσης και μεγέθους στα pixels χρειάζονται αρκετές αριθμητικές πράξεις οι οποίες καθυστερούν το συνολικό χρόνο εκτέλεσης του αλγορίθμου ενώ ταυτόχρονα χρειάζεται και αρκετούς πόρους από το FPGA προκειμένου να υλοποιηθεί. 42

43 Στο παρακάτω διάγραμμα φαίνεται η λειτουργία του Orimag. Αφού ο SIFT controller έχει περάσει πλέον στην κατάσταση orimag_state ενεργοποιείται το παρακάτω block. Εικόνα Block διάγραμμα OriMag Η λειτουργία του είναι να υπολογίσει αρχικά τις διαφορές των pixel τόσο στην οριζόντια κατεύθυνση(dx) όσο και στην κάθετη (dy). Τα αποτελέσματα αποθηκεύονται στη συνέχεια σε μνήμη FIFO και οδηγούνται στα υποblock Οri το οποίο υπολογίζει την κατεύθυνση του pixel και στο υποblock Mag που υπολογίζει το μέγεθος του διανύσματος. Τα αποτελέσματα θα σωθούν σε μια BRAM η οποία θα έχει εύρος 256 θέσεων. Τα περιεχόμενα της μνήμης αυτής θα αποτελέσουν το παράθυρο 16x16 pixel το οποίο χρειάζεται για την κατασκευή του ιστογράμματος από τον descriptor. Στη συνέχεια θα αναλύσουμε λίγο πιο διεξοδικά τη λειτουργία του OriMag Orimag topmodule Ξεκινώντας από το ανώτερο σε ιεραρχία module του OriMag (top_magnitude) παρατηρούμε πως δέχεται ως είσοδο το σήμα ενεργοποίησης του module από τον SIFT controller(ena), τη διεύθυνση του ακρότατου που ανιχνεύθηκε στο προηγούμενο στάδιο (maxima_addr) και το σήμα ενεργοποίησης του descriptor (descr_ena). Ο SIFT controller θα αναλάβει επίσης να ενεργοποιήσει το σήμα προσπέλασης της μνήμης στην οποία αποθηκεύονται οι κατευθύνσεις και τα μεγέθη των pixel. Το σήμα αυτό (window_mux_sel) είναι ένα σήμα επιλογής για έναν πολυπλέκτη που χρειάζεται ώστε να προσπελαστεί η διεύθυνση μνήμης της BRAM που αποθηκεύει τις κατευθύνσεις και τα μεγέθη των pixel από δύο διαφορετικές καταστάσεις. Πιο συγκεκριμένα όταν η κατάσταση του SIFT controller είναι η orimag το σήμα αυτό θα έχει την τιμή 0 (εγγραφή στη μνήμη ) ενώ όταν βρίσκεται στην κατάσταση descriptor_state το σήμα θα λάβει την τιμή 1 και θα γίνεται η ανάγνωση των δεδομένων από τον descriptor. 43

44 Το module παρέχει το σήμα bram_addr για να μπορεί να διαβάζει τα δεδομένα (bram_out) από την Gauss BRAM. Επίσης ειδοποιεί τον SIFT controller πότε τελείωσε η επεξεργασία των δεδομένων (orimag_done και descr_done). Τέλος αποθηκεύει τα δεδομένα ως ένα διάνυσμα 128 στοιχείων (histogram_out) σε μια FIFO με τη βοήθεια του σήματος εγγραφής save_histogram. Εικόνα Entity top module OriMag Orimag controller Όπως έχει γίνει αντιληπτό το Orimag είναι ένα ιδιαίτερα πολύπλοκο module και χρειάζεται αρκετά modules controllers ώστε να μπορεί να ρυθμιστούν σωστά τα σήματα ελέγχου. Ο OriMag controller περιέχει 8 καταστάσεις: initial_state,dx_state,dy_state,mag_state,ori_state,div_state,sqrt_state,halt. Πέρα από την αρχική κατάσταση (initial_state) υπάρχουν οι καταστάσεις dx και dy στις οποίες υπολογίζονται οι διαφορές των pixel. Θα πρέπει να επισημάνουμε εδώ πως οι δύο αυτές καταστάσεις dx και dy εκτελούνται σειριακά και όχι παράλληλα καθώς αντλούν τα δεδομένα από την ίδια Gauss BRAM η οποία δεν μπορεί να απασχολείται ταυτόχρονα από δύο διαφορετικά module. Αυτό είναι ένα σημείο καθυστέρησης που με τις κατάλληλες τροποποιήσεις θα μπορούσε να βελτιωθεί σε μεταγενέστερη έκδοση του project και να εκτελούνται οι δύο αυτές καταστάσεις παράλληλα. Στη συνέχεια γίνεται ο υπολογισμός του μεγέθους των διανυσμάτων pixel μέσω των καταστάσεων mag_state και sqrt_state οι οποίες εναλλάσσονται μέχρι να τελειώσει η συγκεκριμένη διαδικασία υπολογισμού. Οι επόμενες καταστάσεις είναι η ori_state και div_state που και αυτές εναλλάσσονται. Και εδώ θα πρέπει να επισημάνουμε ότι πρώτα εκτελείται η διαδικασία υπολογισμού του μεγέθους των διανυσμάτων και στη συνέχεια η διαδικασία υπολογισμού των κατευθύνσεων αυξάνοντας την καθυστέρηση του συστήματος. Και αυτό το σημείο θα μπορούσε να βελτιωθεί εκτελώντας τις δύο διαδικασίες παράλληλα. 44

45 Εικόνα Entity OriMag Controller Ο OriMag controller παρέχει τα σήματα ενεργοποίησης για όλα τα modules Οrimag (dx_ena,dy_ena,ena_divider,ena_mag,mux_sel,demux_sel) καθώς και τα σήματα εγγραφής και ανάγνωσης στις ενδιάμεσες μνήμες FIFO (fifo1_rd, fifo2_rd). Επιπλέον ειδοποιείται κάθε φορά που τελειώνει μια διεργασία ώστε να αλλάξει κατάσταση με τα σήματα (dx_done,dy_done,ori_done,div_cycle_done,mag_cycle_done,mag_done) Υπολογισμός διαφορών dx,dy Μέσω των καταστάσεων dx_state, dy_state γίνεται ο υπολογισμών των διαφορών dx και dy. Όπως αναφέρθηκε και στην ενότητα 3.5 η ανάθεση κατεύθυνσης σε κάθε pixel της γειτονιάς του σημείου που χαρακτηρίστηκε ως ακρότατο υπολογίζεται μέσω της σχέσης m(x, y) = (L(x + 1, y) L(x 1, y)) 2 + (L(x, y + 1) L(x, y 1)) 2 (3.12) η οποία γίνεται m(x, y) = (dx) 2 + (dy) 2 Ένας τρόπος προσέγγισης του υπολογισμού των διαφορών dx και dy αναφέρεται στο [49].Στο dx module μέσω της κατάστασης dx_state υπολογίζουμε τη διαφορά dx ενός pixel σε μια σειρά αφαιρώντας το pixel που βρίσκεται αριστερά με το pixel που βρίσκεται δεξιά από αυτό. Αν το pixel βρίσκεται σε γωνία της εικόνας η αφαίρεση γίνεται μεταξύ του ίδιου του pixel και του διπλανού του. Η ίδια διαδικασία ακολουθείτε και για τις στήλες της εικόνας 45

46 ώστε να προκύψουν οι διαφορές dy μέσω του module dy στην κατάσταση dy_state. Εικόνα Υπολογισμός dx Τα module dx και dy υλοποιούνται με τον ίδιο τρόπο. Εκτός από το σήμα ενεργοποίησης τους (ena) έχουν ως είσοδο τη διεύθυνση του ακρότατου maxima_addr (το σήμα αυτό προέρχεται από την αντίστοιχη είσοδο του top module) και την τιμή των pixel p1. Ανάλογα τη διεύθυνση maxima_addr τα δύο module αναλμβάνουν να προσπελάσουν τα pixel που βρίσκονται γύρω από το pixel που χαρακτηρίστηκε ως ακρότατο. Το σήμα addr είναι αυτό που θα αναλάβει να θέσει τη σωστή διεύθυνση στη μνήμη ώστε να εισαχθούν τα σωστά pixel. Επιπλέον τα δύο αυτά module περιέχουν τρεις καταστάσεις στις οποίες γίνεται η ανάγνωση του πρώτου pixel προς αφαίρεση (read_p1),η ανάγνωση του δεύτερου pixel προς αφαίρεση (read_p2) και η πράξη της αφαίρεσης substract. Τέλος το αποτέλεσμα αποθηκεύεται σε δύο σήματα ένα για το block Ori (dx_ori) και ένα για το block Mag(dx_mag). Εικόνα Entity dx,dy Εικόνα Παράθυρο υπολογισμού dx,dy 46

47 Εικόνα dx,dy simulation Υπολογισμός του μεγέθους των διανυσμάτων (Mag) Εφόσον έχουν υπολογιστεί πλέον οι διαφορές dx και dy μπορεί πλέον να υπολογιστεί για κάθε pixel το μέγεθος του διανύσματος του κάνοντας χρήση της σχέσης m(x, y) = (dx) 2 + (dy) 2 Η διεργασία αυτή εκτελείται με το module Μag το οποίο περιέχει δύο modules που υπολογίζουν τη δύναμη του 2, έναν αθροιστή και ένα module υπολογισμού τετραγωνικής ρίζας. Εικόνα Mag block 47

48 Εικόνα Mag simulation Mag Controller Για να υλοποιηθεί το Mag χρειάζεται ένας controller ο οποίος θα καθορίζει τη σειρά των πράξεων. Αρχικά εκτελείται η δύναμη του 2 τόσο για το dx όσο και για το dy αλλά και η πρόσθεση μέσω της κατάστασης pow_state του Mag controller ενώ στην κατάσταση sqroot_state υπολογίζεται η τετραγωνική ρίζα του αθροίσματος. Το module υπολογισμού τετραγωνικής ρίζας υλοποιείται μέσω του core generator του ISE χρησιμοποιώντας το core CORDIC [50]. Το core αυτό είναι ένας αλγόριθμος εκτέλεσης μαθηματικών πράξεων προσαρμοσμένος για ψηφιακά συστήματα ώστε να μπορεί να υλοποιηθεί σε FPGA [51]. Μεταξύ άλλων μπορεί να εκτελέσει και άλλες μαθηματικές πράξεις όπως υπολογισμός ημιτόνου, συνημίτονου, arctan, arctanh, περιστροφή σε σύστημα συντεταγμένων(rotate) κ.ά. Εικόνα Mag Controller entity Όπως βλέπουμε και στο παραπάνω σχήμα ο Mag Controller παρέχει τα σήματα ενεργοποίησης των module που λαμβάνουν μέρος στη διαδικασία του Mag. Το sqrt_nd είναι το σήμα ενεργοποίησης του CORDIC για τον υπολογισμό της τετραγωνικής ρίζας ενώ το mag_adder_ena ενεργοποιεί τον αθροιστή. Όταν 48

49 υπολογιστεί το πρώτο αποτέλεσμα το σήμα mag_cycle_done ειδοποιεί τον OriMag controller να αλλάξει κατάσταση ώστε να ξεκινήσει η διαδικασία υπολογισμού του μεγέθους για τα υπόλοιπα pixel του παραθύρου 16x16. Επιπλέον όταν υπολογιστούν όλα τα μεγέθη του παραθύρου το σήμα mag_done ειδοποιεί και πάλι τον OriMag controller ότι μπορεί να ξεκινήσει η διαδικασία για τον υπολογισμό των κατευθύνσεων των διανυσμάτων(ori) που θα δούμε στην επόμενη υποενότητα. Τέλος ο Mag controller παρέχει και το σήμα εγγραφής των μεγεθών σε μια μνήμη FIFO (save_mag) Υπολογισμός τετραγώνου των διαφορών dx,dy και τετραγωνικής ρίζας Η αριθμητική πράξη της δύναμης του 2 γίνεται με τη χρήση ενός πολλαπλασιαστή από τον CORE generator. Αρχικά το αποτέλεσμα dx (το αντίστοιχο ισχύει και για το dy) αποθηκεύεται σε ένα δεύτερο σήμα temp. Το σήμα temp μαζί με την είσοδο dx αποτελούν τις εισόδους του πολλαπλασιαστή και το αποτέλεσμα που προκύπτει είναι η δύναμη του 2. Εικόνα Pow entity Τα dx και dy αφού έχουν υψωθεί στο τετράγωνο οδηγούνται σε έναν αθροιστή ο οποίος έχει υλοποιηθεί ως fsm για καλύτερο συγχρονισμό των σημάτων. Ο αθροιστής περιέχει εκτός από την αρχική και την τελική κατάσταση δύο ακόμα ενδιάμεσες στις οποίες διαβάζει τα δεδομένα (read_state) και υπολογίζει το άθροισμα (add_state). Το αποτέλεσμα τέλος οδηγείται στο module υπολογισμού της τετραγωνικής ρίζας Υπολογισμός των κατευθύνσεων διανυσμάτων (Ori) Έχοντας υπολογίσει τα μεγέθη δε μένει παρά να υπολογιστούν και οι κατευθύνσεις των pixel στο παράθυρο γύρω από το σημείο ενδιαφέροντος. Το module Ori εκτελεί αυτή τη λειτουργία. Όπως αναφέραμε στην ενότητα 3 η σχέση που εκτελεί τον υπολογισμό των κατευθύνσεων είναι η 49

50 ή θ(x, y) = tan 1 L(x, y + 1) L(x, y 1) ( L(x + 1, y) L(x 1, y) ) (3.13) θ(x, y) = tan 1 ( dy dx ) Συνεπώς το Ori θα αναλάβει να πάρει τα δεδομένα dx και dy και να εκτελέσει την πράξη της αντίστροφης εφαπτομένης από την οποία θα προκύψει η γωνία του διανύσματος για κάθε pixel. Όπως μπορεί να παρατηρήσει κανείς από το block διάγραμμα υπάρχει to block που υπολογίζει την arctan και υπάρχει το block που υπολογίζει την arctan2 [52]. Εικόνα Ori block Η arctan2 αποτελεί επέκταση της arctan ώστε το πεδίο τιμών να είναι από και όχι από όπως είναι της arctan. Με τη χρήση της arctan2 μπορούμε να γνωρίζουμε σε ποιο τεταρτημόριο βρίσκεται το διάνυσμα αφού έχουμε υπολογίσει τη γωνία σύμφωνα με τον παρακάτω πίνακα. Εικόνα Πίνακας atan2 50

51 Το module arctan υλοποιείται μέσω του CORE generator του ISE χρησιμοποιώντας και εδώ τον αλγόριθμο CORDIC. Οι είσοδοι που δέχεται πρέπει να είναι λέξεις των 10 bit από τα οποία το ακέραιο μέρος είναι τα 2 περισσότερο σημαντικά ψηφία ενώ τα υπόλοιπα 8 αποτελούν το δεκαδικό μέρος. Επιπλέον το ένα από τα δύο bit του ακέραιου μέρους (το MSB) αποτελούν το πρόσημο του dx ή του dy αντίστοιχα. Σημειώνουμε πως σύμφωνα με το datasheet του CORDIC [51] οι είσοδοι του arctan πρέπει να έχουν εύρος [-1 1].Θα πρέπει λοιπόν να υπάρχει μια αντιστοιχία μεταξύ της μέγιστης τιμής των pixel (15 για 4 bit ανάλυση) και του 10 bit αριθμού που θα αποτελέσει την είσοδο στο module του arctan. Η λύση που προτείνεται είναι να γίνει εκχώρηση των bit που αποτελούν την τιμή του pixel στο δεκαδικό μέρος του 10 bit αριθμού. Έτσι για παράδειγμα για τιμή dx ή dy =+15 θα προκύψει ο αριθμός >00, Ενώ για τιμή dx=-15 θα προκύψει >10, Όπου το αριστερό bit αποτελεί το πρόσημο. Με τον τρόπο αυτό έχουμε για το +15 μια τιμή πολύ κοντά στο 1 (όπως απαιτεί ο CORDIC) ενώ για το -15 μια τιμή πολύ κοντά στο -1. Τη διαδικασία αυτή (casting) αναλαμβάνει το module atan2cast το οποίο παρέχει και δύο έξτρα σήματα (xneg,yneg) που πληροφορεί αν οι έξοδοι x και y είναι αρνητικοί αριθμοί. Εικόνα atan2cast entity Θα πρέπει επίσης να σημειωθεί πως οι αρνητικοί αριθμοί υπολογίζονται ως συμπλήρωμα του 2 στον αλγόριθμο CORDIC και για αυτό το module atan2cast αναλαμβάνει να μετατρέψει τους αρνητικούς αριθμούς σε αυτή τη μορφή. Αφού υπολογιστεί η συνάρτηση arctan στη συνέχεια γίνεται και ο υπολογισμός του arctan2 μέσω του module atan2 ως εξής: Αν dx>0,dy>0 (1o τεταρτημόριο) τότε atan2 = atan Αν dx<0,dy>0 (2o τεταρτημόριο) τότε atan2 = π atan Αν dx<0,dy<0 (3o τεταρτημόριο) τότε atan2 = π + atan 51

52 Αν dx>0,dy<0 (4o τεταρτημόριο) τότε atan2 = 2π atan Εικόνα atan2 entity Εικόνα Ori simulation Ο Ori controller έχει παρόμοια λειτουργία με τον Mag controller. Υλοποιείται με ένα fsm και μέσω των καταστάσεων prodivide_state, divide_state καθορίζει ποιο επιμέρους block θα εκτελείται. Επιπλέον με 2 process υπολογίζει σε ποια διεύθυνση μνήμης BRAM πρέπει να αποθηκευθούν τα δεδομένα. Σε αυτήν την BRAM αποθηκεύονται τόσο οι κατευθύνσεις που υπολογίζονται σε αυτό το στάδιο όσο και τα μεγέθη των διανυσμάτων από το στάδιο Mag. Εικόνα Ori controller entity 52

53 Descriptor Ο descriptor όπως αναφέρθηκε στην ενότητα 3 αναλαμβάνει να τοποθετήσει τα διανύσματα από το παράθυρο 16x16 σε ιστογράμματα και να προκύψει ένα τελικό διάνυσμα αποτελούμενο από 128 στοιχεία-διανύσματα. Εικόνα Ιστόγραμμα descriptor Αρχικά δημιουργείται ένα παράθυρο 4x4 μέσω ενός fsm 16 καταστάσεων. Κάθε διάνυσμα ανάλογα με την κατεύθυνση που έχει προστίθεται με το μέγεθος του μόνο πλέον σε ένα από τα 8 σήματα τα οποία συμβολίζουν 8 διαφορετικές γωνίες στον τριγωνομετρικό κύκλο. Για παράδειγμα αν το πρώτο διάνυσμα έχει γωνία από 0-45 (360/8=45) το μέγεθος του διανύσματος προστίθεται στο πρώτο σήμα. Εάν το δεύτερο έχει κατεύθυνση από προστίθεται στο δεύτερο κοκ. Τα 8 σήματα από ένα παράθυρο 4x4 γίνονται concatenate ώστε να προκύψει ένα καινούριο σήμα. Με τον τρόπο αυτό δημιουργούνται 16 σήματα για το παράθυρο 16x16. Τα σήματα αυτά γίνονται εκ νέου concatenate ώστε να προκύψει το τελικό σήμα που θα χαρακτηρίζει το σημείο ενδιαφέροντος. Το σήμα αυτό στη συγκεκριμένη υλοποίηση έχει μέγεθος 1152 bit και αποθηκεύεται σε μνήμη FIFO. Το σήμα αυτό θα αναζητηθεί στη συνέχεια από τη διαδικασία του matching στη δεύτερη εικόνα. Εικόνα descriptor entity 53

54 4.4 Matching module Όπως αναφέρθηκε και στο 3 ο κεφάλαιο ο αλγόριθμος SIFT εφαρμόζεται και για τις δύο εικόνες δημιουργώντας τα χαρακτηριστικά διανύσματα των 128 στοιχείων. Κάθε διάνυσμα από την πρώτη εικόνα συγκρίνεται με όλα τα διανύσματα από τη δεύτερη. Εάν βρεθεί ένα ίσο διάνυσμα στη δεύτερη εικόνα έχει προκύψει ένα ταιριασμένο ζεύγος. Επιπλέον αν βρεθούν δύο διανύσματα στη δεύτερη εικόνα που αντιστοιχούν σε ένα διάνυσμα από την πρώτη εικόνα επιλέγεται το σωστό διάνυσμα σύμφωνα με την τεχνική NNDR(Nearest Neighbor Distance Ratio). NNDR = d 1 d 2 Σε περίπτωση που ο παραπάνω λόγος είναι μικρότερος του 1 επιλέγεται ως ταιριασμένο ζεύγος το πρώτο διάνυσμα που ανιχνεύθηκε και το οποίο αντιστοιχεί στην απόσταση d1. Σε περίπτωση που ο λόγος είναι μεγαλύτερος από 1 δεν υπάρχει ταιριασμένο ζεύγος και η διαδικασία συνεχίζεται με το επόμενο διάνυσμα από την πρώτη εικόνα. Για την υλοποίηση του module αυτού απαιτείται ο μαθηματικός υπολογισμός των ευκλείδειων αποστάσεων μεταξύ των σημείων στις δύο εικόνες. Η κύρια λειτουργία του matching module περιγράφεται από ένα fsm το οποίο έχει σαν εισόδους τα δύο διανύσματα(image1_point, image2_point) που προέκυψαν από τον αλγόριθμο SIFT για τις δύο εικόνες, τις συντεταγμένες κάθε σημείου (x1,y1,x2,y2) οι οποίες είναι αποθηκευμένες στη μνήμη BRAM στην οποία είναι αποθηκευμένη η εικόνα, καθώς και οι διευθύνσεις των σημείων που ανιχνεύθηκαν(max_addr1, max_addr2). Σαν εξόδους το module έχει τις διευθύνσεις των σημείων τα οποία έχουν χαρακτηριστεί πλέον ως ταιριασμένο ζεύγος(addr1_addr2), τα σήματα ανάγνωσης των δύο FIFO στις οποίες είναι αποθηκευμένα τα σημεία καθώς και μια έξοδο flag (match_found) που ειδοποιεί τον Image Stitching Controller ότι έχει βρεθεί ένα ταίριασμα και πρέπει να ενεργοποιηθεί το stitching module ώστε να γίνει η ένωση των εικόνων στο συγκεκριμένο σημείο. Εικόνα match entity 54

55 Εικόνα match block Η λειτουργία του fsm έχει ως εξής. Αρχικά γίνεται η ανάγνωση του σημείου στην πρώτη εικόνα στην κατάσταση image2_state. Αμέσως μετά την ανάγνωση γίνεται η προσπέλαση της δεύτερης FIFO στην κατάσταση image2_state. Τo fsm θα παραμείνει σε αυτήν την κατάσταση μέχρι το σημείο από την πρώτη εικόνα να είναι ίσο με κάποιο σημείο από τη δεύτερη εικόνα. Εφόσον συμβεί αυτό ενεργοποιείται ένα block υπολογισμού της απόστασης d1 στην κατάσταση calculate_distance. Το block αυτό περιλαμβάνει την αφαίρεση των συντεταγμένων, την ύψωση στο τετράγωνο με τη βοήθεια ενός πολλαπλασιαστή και τέλος τον υπολογισμό της τετραγωνικής ρίζας μέσω του αλγορίθμου CORDIC. Η σχέση που ακολουθείται είναι η γνωστή σχέση υπολογισμού της ευκλείδειας απόστασης. d = (y 2 y 1 ) 2 + (x 2 x 1 ) 2 Εφόσον υπάρχει και δεύτερο ζεύγος υπολογίζεται η απόσταση κατά τον ίδιο τρόπο μέσω των καταστάσεων image22_state και calculate_distance2 όπου και εκεί κρίνεται η τελική απόφαση αν υπάρχει ταιριασμένο ζεύγος. Ένα module controller είναι επίσης απαραίτητο σε όλη αυτή την λειτουργία ώστε να συγχρονίζονται σωστά τα διάφορα blocks που εκτελούν τη μαθηματική πράξη υπολογισμού της απόστασης. 55

56 Εικόνα match simulation 4.5 Stitching module Εφόσον έχουν βρεθεί πλέον όλα τα ταιριασμένα ζεύγη έχει φτάσει η ώρα για τη σύνθεση του τελικού πανοράματος. Για το σκοπό αυτό χρειαζόμαστε άλλο ένα fsm 4 καταστάσεων (initial_state, image1_state,image2_state,stitch_state). Η φιλοσοφία στο module αυτό είναι η εξής: To module ξεκινάει να γράφει σε μια BRAM τα pixel από την πρώτη εικόνα και μόλις συναντήσει κάποιο ταιριασμένο ζεύγος θα συνεχίσει την εγγραφή από τη δεύτερη εικόνα. Η εγγραφή θα συνεχίσει στο σημείο της δεύτερης εικόνας στο οποίο βρέθηκε το ζεύγος. Για το λόγο αυτό είναι απαραίτητες οι συντεταγμένες στην y διεύθυνση της δεύτερης εικόνας. Εικόνα Stitch module entity Το module έχει ως εισόδους τις διευθύνσεις των ζευγών (key_addr1, key_addr2). Όταν το fsm βρίσκεται στην κατάσταση image1_state αυξάνει τη διεύθυνση προσπέλασης της πρώτης εικόνας (bram1_addr). Μόλις αυτή η διεύθυνση γίνει ίση με τη διεύθυνση 56

57 key_addr1 το fsm μεταβαίνει στην κατάσταση stitch_state όπου αυξάνει την τιμή της διεύθυνσης bram2_addr ανάλογα με τη συντεταγμένη y2 που δηλώνει που βρίσκεται το ταιριασμένο ζεύγος στη δεύτερη εικόνα. Εάν δεν έχει βρεθεί κάποιο ζεύγος ενώ έχει συμπληρωθεί η γραμμή της πρώτης εικόνας το fsm συνεχίζει στην κατάσταση image2_state μέχρι να συμπληρωθεί και η γραμμή από τη δεύτερη εικόνα οπότε στη συνέχεια η διαδικασία ξεκινά πάλι από την κατάσταση image1_state. Το module περιλαμβάνει το σήμα που δηλώνει πόσα ζεύγη έχουν βρεθεί (max_points) ενώ υπάρχουν και τα κατάλληλα flags που ειδοποιούν πότε έχει τελειώσει η εγγραφή μιας γραμμής του τελικού πανοράματος (done) καθώς και πότε έχει ολοκληρωθεί το stitching του τελικού πανοράματος(stitch_done). 57

58 5. Αποτελέσματα-Βελτιώσεις Στην ενότητα αυτή θα παρουσιάσουμε τα αποτελέσματα και τις επιδόσεις της συγκεκριμένης υλοποίησης του αλγορίθμου Image Stitching τόσο σε κάθε στάδιο λειτουργίας όσο και συνολικά. Το σημαντικό σε τέτοιου είδους αλγορίθμους είναι να επιτευχθεί ένας αρκετά μικρός χρόνος περάτωσης του αλγορίθμου με όσο το δυνατόν οικονομική υλοποίηση αναφερόμενοι στους πόρους που χρησιμοποιεί ο αλγόριθμος από το FPGA. Τα συγκεκριμένα αποτελέσματα που θα παρουσιαστούν προήλθαν από μια πρώτη προσέγγιση του αλγορίθμου έτσι όπως παρουσιάστηκε στις προηγούμενες ενότητες. Η συγκεκριμένη υλοποίηση επιδέχεται αρκετές βελτιώσεις τόσο σε ταχύτητα όσο και στον τρόπο λειτουργίας του αλγορίθμου ώστε να γίνει πρακτικότερος σε διάφορες εφαρμογές. Οι χρόνοι εκτέλεσης που θα ακολουθήσουν αναφέρονται για εικόνα διαστάσεων 150x180 και βάθους 4 bit. Στο block Gauss ο χρόνος εκτέλεσης είναι σταθερός στα 3.4 ms ενώ στο block DoG ο χρόνος ήταν 0.5 ms. Όσον αφορά το block ανίχνευσης μεγίστων ο χρόνος εκτέλεσης ήταν 7.4 ms για 55 σημεία που ανιχνεύθηκαν στη συγκεκριμένη εικόνα. Γίνεται όμως φανερό πως ο χρόνος αυτός μπορεί να διαφοροποιηθεί αναλόγως την εικόνα και τον αριθμό των μεγίστων που ανιχνεύονται. Επιπλέον θα πρέπει να επισημάνουμε πως σε αυτό το block έχει μια γίνει μια σημαντική απλοποίηση καθώς ανιχνεύονται μόνο τα μέγιστα της εικόνας και όχι τα ακρότατα(μέγιστα και ελάχιστα) όπως αναφέρεται στο πρωτότυπο κείμενο του αλγορίθμου SIFT. Τo block που αναλαμβάνει να αναθέσει στα pixel χαρακτηριστικά διανύσματος(orimag) μαζί με το block του descriptor εκτελέστηκε σε 4.6 ms για 55 σημεία ενώ για ένα σημείο ο χρόνος που απαιτείται είναι 87μs. Θα ήταν ενδιαφέρον να συγκρίνουμε τους χρόνους αυτούς με μία software υλοποίηση όπως είναι αυτή που εκτελείται μέσω MATLAB. Χρησιμοποιώντας έναν υπολογιστή με επεξεργαστή i στα 3.2 GHz και τρέχοντας τον αλγόριθμο SIFT γραμμένο σε MATLAB παρατηρούμε πως για την ίδια εικόνα τα blocks Gauss-DoG-Maxima Detection εκτελούνται σε 410 ms, το block OriMag σε 340ms ενώ o descriptor σε 660 ms. Είναι φανερό πως μια software υλοποίηση του αλγορίθμου SIFT είναι ακατάλληλη για real time εφαρμογές καθώς ο χρόνος που απαιτείται είναι περίπου 83 φορές μεγαλύτερος και η διαφορά αυτή μπορεί να αυξηθεί ακόμα περισσότερο σε μεγαλύτερες και πιο πολύπλοκες εικόνες. Όσο αφορά το υλικό που χρησιμοποιείται όπως φαίνεται από τη σύνοψη του Synthesize η μεγαλύτερη κατανάλωση πόρων ήταν σε μνήμη. Το γεγονός αυτό μας προδιαθέτει να χρησιμοποιήσουμε την εξωτερική μνήμη DDR3 σε μεταγενέστερες βελτιώσεις του αλγορίθμου. Με αυτόν τον τρόπο θα μπορούμε να επεξεργαστούμε και μεγαλύτερες εικόνες με καλύτερη ανάλυση. 58

59 Εικόνα 5.1 Synthesize report Στη συγκεκριμένη υλοποίηση θα μπορούσαμε να βελτιώσουμε την ταχύτητα με μια σειρά ρυθμίσεων. 1) Χρησιμοποιώντας μεγαλύτερο παράθυρο Gauss kernel πχ 5x5 ή 7x7 αντί για 3x3 θα εκτελούσε τη συνέλιξη των φίλτρων Gauss σε μικρότερο χρόνο. Το αντίτιμο θα ήταν να χρησιμοποιηθούν πιο πολλοί πόροι από το FPGA πχ πολλαπλασιαστές. 2) Στη λειτουργία απόδοσης χαρακτηριστικά διανύσματος στα σημεία ενδιαφέροντος (Orimag block) οι λειτουργίες προσδιορισμού της διεύθυνσης και του μεγέθους των διανυσμάτων θα μπορούσαν να εκτελούνται παράλληλα και όχι σειριακά όπως συμβαίνει στη συγκεκριμένη υλοποίηση. Συνεπώς ο χρόνος του συγκεκριμένου block θα μειωνόταν στο μισό. 3) Θα ήταν εφικτό ο αλγόριθμος SIFT να ανιχνεύει μέγιστα στο μισό της εικόνας και όχι σε ολόκληρη την εικόνα αφού σχεδόν ολόκληρο το ποσοστό των σημείων βρίσκεται κοντά στο δεύτερο μισό της εικόνας. 4) Δημιουργώντας την πρώτη οκτάβα της Gauss πυραμίδας αφού έχουμε μειώσει τις διαστάσεις της εικόνας και όχι χρησιμοποιώντας τις αρχικές διαστάσεις θα ήταν άλλη μια απλοποίηση από την οποία θα κερδίζαμε τόσο σε χρόνο όσο και σε υλικό. 59

60 Appendix Φίλτρο Gauss Γενικότερα το φίλτρο Gauss χρησιμοποιείται πάρα πολύ σε εφαρμογές επεξεργασίας εικόνας(image processing). Το οπτικό του αποτέλεσμα είναι το λεγόμενο blur, δηλαδή το θόλωμα της εικόνας. Πρακτικά εφαρμόζεται στις εικόνες προκειμένου να αφαιρέσει τον υψίσυχνο θόρυβο. Μπορούμε να πούμε λοιπόν πως αποτελεί ένα χαμηλοπερατό φίλτρο. Το φίλτρο Gauss στηρίζεται στη γνωστή μαθηματική εξίσωση Gauss: G(x) = 1 x 2 2πσ 2 e 2σ 2 Όπου σ είναι η σταθερά τυπικής απόκλισης που καθορίζει πόσο έντονο θα είναι το αποτέλεσμα του φίλτρου στην εικόνα. Η γραφική παράσταση της συνάρτησης όπως φαίνεται στο παρακάτω σχήμα επηρεάζεται έντονα από τη σταθερά σ. Πιο συγκεκριμένα όσο πιο μικρή είναι η σταθερά σ τόσο πιο μεγάλη βαρύτητα δίνεται στην περιοχή κοντά στο μέγιτο της καμπύλης. Στην εικόνα αυτό μεταφράζεται όπως θα δούμε και παρακάτω σε μικρότερη επίδραση από τα γειτονικά pixel. Αντίθετα όσο μεγαλώνει η σταθερά σ και απλώνει η κατανομή οι τιμές δεν περιορίζονται πλέον κοντά στο μέγιστο. Με λίγα λόγια η επίδραση των γειτονικών pixel γίνεται μεγαλύτερη. 60

61 Η συνάρτηση Gauss μπορεί να επεκταθεί και στις δύο διαστάσεις πολλαπλασιάζοντας τη συνάρτηση στη διάσταση x με τη συνάρτηση στη διάσταση y: G(x, y) = ( x 1 2 y 2πσ 2 e 2σ )( 2πσ 2 e 2σ 2 )= ( 1 x 2 +y 2 2πσ 2 e 2σ 2 ) Η γραφική παράσταση πλέον επεκτείνεται σε αυτήν του παρακάτω σχήματος. Η συνάρτηση Gauss στις δύο διαστάσεις είναι αυτή που θα μας απασχολήσει στο συγκεκριμένο project καθώς είναι αυτή που χρησιμοποιείται στις εφαρμογές επεξεργασίας εικόνας. Συνέλιξη Η εφαρμογή του φίλτρου Gauss γίνεται με τη διαδικασία της συνέλιξης που θα περιγραφεί παρακάτω. Αρχικά δημιουργείται ένας πίνακας Gauss (Gauss kernel ή Gauss mask) με βάση τις τιμές που προκύπτουν από τη μαθηματική εξίσωση Gauss. 61

62 Ο πιίνακας αυτός μπορεί να κανονικοποιηθεί και να έρθει στη μορφή Αυτή η μορφή είναι πολύ βολική όταν εφαρμόζεται σε μια εικόνα καθώς και η ίδια εικόνα αποτελεί έναν δυσδιάστατο πίνακα ακεραίων αριθμών που συμβολίζουν τη φωτεινότητα των pixel. Οι τιμές του Gauss kernel υπολογίζονται με βάση ένα καρτεσιανό σύστημα συντεταγμένων που για x=0 και y=0 θεωρούμε το κεντρικό στοιχείο του πίνακα δηλαδή την τιμή 41 στο παραπάνω παράδειγμα. Παρατηρούμε πως ένα πίνακας Gauss είναι συμμετρικός ως προς τις τιμές του. Επιπλέον οι τιμές εξαρτώνται από τη σταθερά τυπικής απόκλισης σ όπως ναφέρθηκε και παραπάνω ενώ οι διαστάσεις του πίνακα ποικίλουν. Ώστε τελικά μπορούμε να έχουμε πίνακες Gauss 3x3,5x5,7x7 κοκ. 273 Η επιλογή του πίνακα που θα διαλέξουμε εξαρτάται από την εκάστοτε εφαρμογή. Αφού δημιουργηθεί ο πυρήνας Gauss, το επόμενο βήμα είναι να εφαρμοστεί στην εικόνα με τη διαδικασία της συνέλιξης. Ο πυρήνας εφαρμόζεται σε κάθε pixel της εικόνας τοποθετώντας το κέντρο του στο αντίστοιχο pixel. Στη συνέχεια κάθε pixel που εφάπτεται στον πίνακα πολλαπλασίάζεται με το αντίστοιχο στοιχείο του πυρήνα. Τα αποτελέσματα των πολλαπλασιασμών αθροίζονται και στο τέλος το αποτέλεσμα διαιρείται με το άθροισμα των στοιχείων του πυρήνα που πήραν μέρος στον πολλαπλασιασμό που αναφέρθηκε. 62

63 Η διαδικασία επαναλαμβάνεται για κάθε pixel της εικόνας μέχρι να καλυφθεί ολόκληρη η εικόνα. Αναλυτικά η διαδικασία της συνέλιξης φαίνεται στις παρακάτω εικόνες. Όπως παρατηρείται στις γωνίες της εικόνας καθώς και στις πρώτες δύο γραμμές και πρώτες δύο στήλες της, δεν εφαρμόζεται ολόκληρος ο πυρήνας Gauss αλλά ένα μέρος του.συνέπεια αυτού είναι να αλλάζει κάθε φορά ο παράγοντας διαίρεσης. Παρατηρείστε τις διαφορές στο αποτέλεσμα της εικόνας με εφαρμογή του φίλτρου Gauss διαφορετικής τυπικής απόκλισης σ. 63

64 64

D. Lowe, Distinctive Image Features from Scale-Invariant Keypoints, International Journal of Computer Vision, 60(2):91-110, 2004.

D. Lowe, Distinctive Image Features from Scale-Invariant Keypoints, International Journal of Computer Vision, 60(2):91-110, 2004. D. Lowe, Distinctive Image Features from Scale-Invariant Keypoints, International Journal of Computer Vision, 60(2):91-110, 2004. 1/45 Τι είναι ο SIFT-Γενικά Scale-invariant feature transform detect and

Διαβάστε περισσότερα

D. Lowe, Distinctive Image Features from Scale-Invariant Keypoints, International Journal of Computer Vision, 60(2):91-110, 2004.

D. Lowe, Distinctive Image Features from Scale-Invariant Keypoints, International Journal of Computer Vision, 60(2):91-110, 2004. D. Lowe, Distinctive Image Features from Scale-Invariant Keypoints, International Journal of Computer Vision, 60(2):91-110, 2004. Εισαγωγικά: SIFT~Harris Harris Detector: Δεν είναι ανεξάρτητος της κλίμακας

Διαβάστε περισσότερα

Ειδικά Θέµατα Υπολογιστικής Όρασης & Γραφικής. Εµµανουήλ Ζ. Ψαράκης & Αθανάσιος Τσακαλίδης Πολυτεχνική Σχολή Τµήµα Μηχανικών Η/Υ & Πληροφορικής

Ειδικά Θέµατα Υπολογιστικής Όρασης & Γραφικής. Εµµανουήλ Ζ. Ψαράκης & Αθανάσιος Τσακαλίδης Πολυτεχνική Σχολή Τµήµα Μηχανικών Η/Υ & Πληροφορικής Ειδικά Θέµατα Υπολογιστικής Όρασης & Γραφικής Εµµανουήλ Ζ. Ψαράκης & Αθανάσιος Τσακαλίδης Πολυτεχνική Σχολή Τµήµα Μηχανικών Η/Υ & Πληροφορικής Χαρακτηριστικά Εµµανουήλ Ζ. Ψαράκης Πολυτεχνική Σχολή Τµήµα

Διαβάστε περισσότερα

Ειδικά Θέµατα Υπολογιστικής Όρασης & Γραφικής. Εµµανουήλ Ζ. Ψαράκης & Αθανάσιος Τσακαλίδης Πολυτεχνική Σχολή Τµήµα Μηχανικών Η/Υ & Πληροφορικής

Ειδικά Θέµατα Υπολογιστικής Όρασης & Γραφικής. Εµµανουήλ Ζ. Ψαράκης & Αθανάσιος Τσακαλίδης Πολυτεχνική Σχολή Τµήµα Μηχανικών Η/Υ & Πληροφορικής Ειδικά Θέµατα Υπολογιστικής Όρασης & Γραφικής Εµµανουήλ Ζ. Ψαράκης & Αθανάσιος Τσακαλίδης Πολυτεχνική Σχολή Τµήµα Μηχανικών Η/Υ & Πληροφορικής Σύνθεση Πανοράµατος Εµµανουήλ Ζ. Ψαράκης Πολυτεχνική Σχολή

Διαβάστε περισσότερα

ΣΥΓΚΡΙΤΙΚΗ ΜΕΛΕΤΗ ΑΛΓΟΡΙΘΜΩΝ ΕΞΑΓΩΓΗΣ ΧΑΡΑΚΤΗΡΙΣΤΙΚΩΝ

ΣΥΓΚΡΙΤΙΚΗ ΜΕΛΕΤΗ ΑΛΓΟΡΙΘΜΩΝ ΕΞΑΓΩΓΗΣ ΧΑΡΑΚΤΗΡΙΣΤΙΚΩΝ ΣΥΓΚΡΙΤΙΚΗ ΜΕΛΕΤΗ ΑΛΓΟΡΙΘΜΩΝ ΕΞΑΓΩΓΗΣ ΧΑΡΑΚΤΗΡΙΣΤΙΚΩΝ Ρήγας Κουσκουρίδας, Βασίλειος Μπελαγιάννης, Δημήτριος Χρυσοστόμου και Αντώνιος Γαστεράτος Δημοκρίτειο Πανεπιστήμιο Θράκης, Πανεπιστημιούπολη, Κιμμέρια,

Διαβάστε περισσότερα

Τεχνικές Μείωσης Διαστάσεων. Ειδικά θέματα ψηφιακής επεξεργασίας σήματος και εικόνας Σ. Φωτόπουλος- Α. Μακεδόνας

Τεχνικές Μείωσης Διαστάσεων. Ειδικά θέματα ψηφιακής επεξεργασίας σήματος και εικόνας Σ. Φωτόπουλος- Α. Μακεδόνας Τεχνικές Μείωσης Διαστάσεων Ειδικά θέματα ψηφιακής επεξεργασίας σήματος και εικόνας Σ. Φωτόπουλος- Α. Μακεδόνας 1 Εισαγωγή Το μεγαλύτερο μέρος των δεδομένων που καλούμαστε να επεξεργαστούμε είναι πολυδιάστατα.

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΣΕΡΡΩΝ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ. Πτυχιακή εργασία. Μπαδέκα Ευτυχία (AEM 1037)

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΣΕΡΡΩΝ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ. Πτυχιακή εργασία. Μπαδέκα Ευτυχία (AEM 1037) ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΣΕΡΡΩΝ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ Πτυχιακή εργασία Μελέτη και υλοποίηση σε λογισμικό ανιχνευτών σημειακών χαρακτηριστικών από εικόνες (point

Διαβάστε περισσότερα

Ενδεικτική πολυ-εργασία 1 - εφαρμογή στην υπολογιστική όραση

Ενδεικτική πολυ-εργασία 1 - εφαρμογή στην υπολογιστική όραση Ενδεικτική πολυ-εργασία 1 - εφαρμογή στην υπολογιστική όραση Εντοπισμός ενός σήματος STOP σε μια εικόνα. Περιγράψτε τη διαδικασία με την οποία μπορώ να εντοπίσω απλά σε μια εικόνα την ύπαρξη του παρακάτω

Διαβάστε περισσότερα

Εργαστήριο Τεχνολογίας Πολυμέσων & Γραφικών, Τ.Ε.Π Π.Μ, Μάθημα: Γραφικά με Η/Υ

Εργαστήριο Τεχνολογίας Πολυμέσων & Γραφικών, Τ.Ε.Π Π.Μ, Μάθημα: Γραφικά με Η/Υ ΓΡΑΦΙΚΑ Γέμισμα ΑΛΓΟΡΙΘΜΟΙ ΓΕΜΙΣΜΑΤΟΣ Για τις πλεγματικές οθόνες υπάρχουν: Αλγόριθμοι γεμίσματος:, που στηρίζονται στη συνάφεια των pixels του εσωτερικού ενός πολυγώνου Αλγόριθμοι σάρωσης: που στηρίζονται

Διαβάστε περισσότερα

Κατάτµηση Εικόνων: Ανίχνευση Ακµών και Κατάτµηση µε Κατωφλίωση

Κατάτµηση Εικόνων: Ανίχνευση Ακµών και Κατάτµηση µε Κατωφλίωση ΤΨΣ 50 Ψηφιακή Επεξεργασία Εικόνας Κατάτµηση Εικόνων: Ανίχνευση Ακµών και Κατάτµηση µε Κατωφλίωση Τµήµα ιδακτικής της Τεχνολογίας και Ψηφιακών Συστηµάτων Πανεπιστήµιο Πειραιώς Περιεχόµενα Βιβλιογραφία

Διαβάστε περισσότερα

Μετάδοση Πολυμεσικών Υπηρεσιών Ψηφιακή Τηλεόραση

Μετάδοση Πολυμεσικών Υπηρεσιών Ψηφιακή Τηλεόραση Χειμερινό Εξάμηνο 2013-2014 Μετάδοση Πολυμεσικών Υπηρεσιών Ψηφιακή Τηλεόραση 5 η Παρουσίαση : Ψηφιακή Επεξεργασία Εικόνας Διδάσκων: Γιάννης Ντόκας Σύνθεση Χρωμάτων Αφαιρετική Παραγωγή Χρώματος Χρωματικά

Διαβάστε περισσότερα

Συστήματα συντεταγμένων

Συστήματα συντεταγμένων Κεφάλαιο. Για να δημιουργήσουμε τρισδιάστατα αντικείμενα, που μπορούν να παρασταθούν στην οθόνη του υπολογιστή ως ένα σύνολο από γραμμές, επίπεδες πολυγωνικές επιφάνειες ή ακόμη και από ένα συνδυασμό από

Διαβάστε περισσότερα

Μεταπτυχιακό Πρόγραμμα «Γεωχωρικές Τεχνολογίες» Ψηφιακή Επεξεργασία Εικόνας. Εισηγητής Αναστάσιος Κεσίδης

Μεταπτυχιακό Πρόγραμμα «Γεωχωρικές Τεχνολογίες» Ψηφιακή Επεξεργασία Εικόνας. Εισηγητής Αναστάσιος Κεσίδης Μεταπτυχιακό Πρόγραμμα «Γεωχωρικές Τεχνολογίες» Ψηφιακή Επεξεργασία Εικόνας Εισηγητής Αναστάσιος Κεσίδης Ακμές και περιγράμματα Ακμές και περιγράμματα Γενικά Μεγάλο τμήμα της πληροφορίας που γίνεται αντιληπτή

Διαβάστε περισσότερα

Matlab command: corner

Matlab command: corner Matlab command: corner http://www.mathworks.com/help/images/ref/corner.html Μια εισαγωγή-youtube: http://www.youtube.com/watch?v=vkwdzwerfc4 Τι είναι σημεία keypoints ενδιαφέροντος Σημεία που μπορούν να

Διαβάστε περισσότερα

ΦΙΛΤΡΟ KALMAN ΔΙΑΚΡΙΤΟΥ ΧΡΟΝΟΥ

ΦΙΛΤΡΟ KALMAN ΔΙΑΚΡΙΤΟΥ ΧΡΟΝΟΥ 1 ΦΙΛΤΡΟ KALMAN ΔΙΑΚΡΙΤΟΥ ΧΡΟΝΟΥ Σε αυτό το μέρος της πτυχιακής θα ασχοληθούμε λεπτομερώς με το φίλτρο kalman και θα δούμε μια καινούρια έκδοση του φίλτρου πάνω στην εφαρμογή της γραμμικής εκτίμησης διακριτού

Διαβάστε περισσότερα

ΒΙΟΜΗΧΑΝΙΚΑ ΗΛΕΚΤΡΟΝΙΚΑ

ΒΙΟΜΗΧΑΝΙΚΑ ΗΛΕΚΤΡΟΝΙΚΑ ΒΙΟΜΗΧΑΝΙΚΑ ΗΛΕΚΤΡΟΝΙΚΑ Συµπληρωµατικές Σηµειώσεις Προχωρηµένο Επίπεδο Επεξεργασίας Εικόνας Σύνθεση Οπτικού Μωσαϊκού ρ. Γ. Χ. Καρράς Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Μηχανολόγων Μηχανικών Τοµέας Μηχανολογικών

Διαβάστε περισσότερα

Ανάκτηση πολυμεσικού περιεχομένου

Ανάκτηση πολυμεσικού περιεχομένου Ανάκτηση πολυμεσικού περιεχομένου Ανίχνευση / αναγνώριση προσώπων Ανίχνευση / ανάγνωση κειμένου Ανίχνευση αντικειμένων Οπτικές λέξεις Δεικτοδότηση Σχέσεις ομοιότητας Κατηγοριοποίηση ειδών μουσικής Διάκριση

Διαβάστε περισσότερα

ισδιάστατοι μετασχηματισμοί ΚΕΦΑΛΑΙΟ 4: ισδιάστατοι γεωμετρικοί μετασχηματισμοί

ισδιάστατοι μετασχηματισμοί ΚΕΦΑΛΑΙΟ 4: ισδιάστατοι γεωμετρικοί μετασχηματισμοί ΚΕΦΑΛΑΙΟ 4: ισδιάστατοι γεωμετρικοί μετασχηματισμοί Πολλά προβλήματα λύνονται μέσω δισδιάστατων απεικονίσεων ενός μοντέλου. Μεταξύ αυτών και τα προβλήματα κίνησης, όπως η κίνηση ενός συρόμενου μηχανισμού.

Διαβάστε περισσότερα

E[ (x- ) ]= trace[(x-x)(x- ) ]

E[ (x- ) ]= trace[(x-x)(x- ) ] 1 ΦΙΛΤΡΟ KALMAN ΔΙΑΚΡΙΤΟΥ ΧΡΟΝΟΥ Σε αυτό το μέρος της πτυχιακής θα ασχοληθούμε λεπτομερώς με το φίλτρο kalman και θα δούμε μια καινούρια έκδοση του φίλτρου πάνω στην εφαρμογή της γραμμικής εκτίμησης διακριτού

Διαβάστε περισσότερα

Matlab command: corner

Matlab command: corner Matlab command: corner http://www.mathworks.com/help/images/ref/corner.html Μια εισαγωγή-outube: http://www.outube.com/watch?v=vkwdzwerfc4 Οκτώβριος 013 Σ. Φωτόπουλος ΨΕΕ Harris Corner detector ΔΠΜΣ ΗΕΠ

Διαβάστε περισσότερα

ΣΧΕΔΙΑΣΗ ΜΗΧΑΝΟΛΟΓΙΚΩΝ ΚΑΤΑΣΚΕΥΩΝ ΜΕ Η/Υ (Computer Aided Design)

ΣΧΕΔΙΑΣΗ ΜΗΧΑΝΟΛΟΓΙΚΩΝ ΚΑΤΑΣΚΕΥΩΝ ΜΕ Η/Υ (Computer Aided Design) ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΣΧΕΔΙΑΣΗ ΜΗΧΑΝΟΛΟΓΙΚΩΝ ΚΑΤΑΣΚΕΥΩΝ ΜΕ Η/Υ (Computer Aided Design) Ενότητα # 2: Στερεοί Μοντελοποιητές (Solid Modelers) Δρ Κ. Στεργίου

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ. Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής. Μεταπτυχιακή Διπλωματική Εργασία

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ. Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής. Μεταπτυχιακή Διπλωματική Εργασία ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Μεταπτυχιακή Διπλωματική Εργασία «Ανάπτυξη τεχνικών αντιστοίχισης εικόνων με χρήση σημείων κλειδιών» Ιωάννα

Διαβάστε περισσότερα

Speeding up the Detection of Scale-Space Extrema in SIFT Based on the Complex First Order System

Speeding up the Detection of Scale-Space Extrema in SIFT Based on the Complex First Order System (MIRU2008) 2008 7 SIFT 572-8572 26-12 599-8531 1-1 E-mail: umemoto@ipc.osaka-pct.ac.jp, kise@cs.osakafu-u.ac.jp SIFT 1 ANN 3 1 SIFT 1 Speeding up the Detection of Scale-Space Extrema in SIFT Based on the

Διαβάστε περισσότερα

ΕΡΕΥΝΗΤΙΚΑ ΠΡΟΓΡΑΜΜΑΤΑ ΑΡΧΙΜΗΔΗΣ ΕΝΙΣΧΥΣΗ ΕΡΕΥΝΗΤΙΚΩΝ ΟΜΑΔΩΝ ΣΤΟ ΤΕΙ ΣΕΡΡΩΝ. Ενέργεια. 2.2.3.στ ΘΕΜΑ ΕΡΕΥΝΑΣ: ΔΙΑΡΘΡΩΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΕΧΡΩΜΩΝ ΕΓΓΡΑΦΩΝ

ΕΡΕΥΝΗΤΙΚΑ ΠΡΟΓΡΑΜΜΑΤΑ ΑΡΧΙΜΗΔΗΣ ΕΝΙΣΧΥΣΗ ΕΡΕΥΝΗΤΙΚΩΝ ΟΜΑΔΩΝ ΣΤΟ ΤΕΙ ΣΕΡΡΩΝ. Ενέργεια. 2.2.3.στ ΘΕΜΑ ΕΡΕΥΝΑΣ: ΔΙΑΡΘΡΩΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΕΧΡΩΜΩΝ ΕΓΓΡΑΦΩΝ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ (Τ.Ε.Ι.) ΣΕΡΡΩΝ Τμήμα ΠΛΗΡΟΦΟΡΙΚΗΣ & ΕΠΙΚΟΙΝΩΝΙΩΝ ΕΡΕΥΝΗΤΙΚΑ ΠΡΟΓΡΑΜΜΑΤΑ ΑΡΧΙΜΗΔΗΣ ΕΝΙΣΧΥΣΗ ΕΡΕΥΝΗΤΙΚΩΝ ΟΜΑΔΩΝ ΣΤΟ ΤΕΙ ΣΕΡΡΩΝ Ενέργεια. 2.2.3.στ ΘΕΜΑ ΕΡΕΥΝΑΣ: ΔΙΑΡΘΡΩΣΗ

Διαβάστε περισσότερα

Αναγνώριση Προτύπων από Εικόνες

Αναγνώριση Προτύπων από Εικόνες ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Αναγνώριση Προτύπων από Εικόνες Συγγραφέας: Χάρης Κωτσιόπουλος Επιβλέπων Καθηγητής: Σωτήρης Κωτσιαντής Υποβάλλεται προς

Διαβάστε περισσότερα

Ψηφιακή Επεξεργασία Σημάτων

Ψηφιακή Επεξεργασία Σημάτων Ψηφιακή Επεξεργασία Σημάτων Ενότητα 11: Εφαρμογές DFT Ταχύς Μετασχηματισμός Fourier (FFT) Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής 1 Διακριτός Μετασχηματισμός Fourier Υπολογισμός Γραμμικής Συνέλιξης

Διαβάστε περισσότερα

Οπτική Μοντελοποίηση Ανθρώπινου Προσώπου με Εφαρμογές σε Αναγνώριση

Οπτική Μοντελοποίηση Ανθρώπινου Προσώπου με Εφαρμογές σε Αναγνώριση Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Τομέας Σημάτων Ελέγχου και Ρομποτικής Οπτική Μοντελοποίηση Ανθρώπινου Προσώπου με Εφαρμογές σε Αναγνώριση Επιβλέπων: καθ. Πέτρος Μαραγκός Ορισμός

Διαβάστε περισσότερα

Αναγνώριση Προτύπων Ι

Αναγνώριση Προτύπων Ι Αναγνώριση Προτύπων Ι Ενότητα 1: Μέθοδοι Αναγνώρισης Προτύπων Αν. Καθηγητής Δερματάς Ευάγγελος Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

E [ -x ^2 z] = E[x z]

E [ -x ^2 z] = E[x z] 1 1.ΦΙΛΤΡΟ KALMAN ΔΙΑΚΡΙΤΟΥ ΧΡΟΝΟΥ Σε αυτήν την διάλεξη θα πάμε στο φίλτρο με περισσότερες λεπτομέρειες, και θα παράσχουμε μια νέα παραγωγή για το φίλτρο Kalman, αυτή τη φορά βασισμένο στην ιδέα της γραμμικής

Διαβάστε περισσότερα

Μάθημα 8 ο. Ανίχνευση Ακμών ΤΜΗΥΠ / ΕΕΣΤ 1

Μάθημα 8 ο. Ανίχνευση Ακμών ΤΜΗΥΠ / ΕΕΣΤ 1 Μάθημα 8 ο Ανίχνευση Ακμών ΤΜΗΥΠ / ΕΕΣΤ 1 Εισαγωγή (1) Οι ακμές είναι βασικά χαρακτηριστικά της εικόνας. Ένας αποδεκτός ορισμός της ακμής είναι ο ακόλουθος: «Το σύνορο μεταξύ δύο ομοιογενών περιοχών με

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

Διαβάστε περισσότερα

Μάθημα 8 ο. Ανίχνευση Ακμών ΤΜΗΥΠ / ΕΕΣΤ 1

Μάθημα 8 ο. Ανίχνευση Ακμών ΤΜΗΥΠ / ΕΕΣΤ 1 Μάθημα 8 ο Ανίχνευση Ακμών ΤΜΗΥΠ / ΕΕΣΤ 1 Εισαγωγή (1) Οι ακμές είναι βασικά χαρακτηριστικά της εικόνας Προς το παρόν δεν υπάρχει ακόμα ένας ευρέως αποδεκτός ορισμός της ακμής. Εδώ θα θεωρούμε ως ακμή:

Διαβάστε περισσότερα

Ψηφιακή Επεξεργασία Εικόνας. Σ. Φωτόπουλος ΨΕΕ

Ψηφιακή Επεξεργασία Εικόνας. Σ. Φωτόπουλος ΨΕΕ Ψηφιακή Επεξεργασία Εικόνας ΒΕΛΤΙΩΣΗ ΕΙΚΟΝΑΣ ΜΕ ΙΣΤΟΓΡΑΜΜΑ ΔΠΜΣ ΗΕΠ 1/46 Περιλαμβάνει: Βελτίωση (Enhancement) Ανακατασκευή (Restoration) Κωδικοποίηση (Coding) Ανάλυση, Κατανόηση Τμηματοποίηση (Segmentation)

Διαβάστε περισσότερα

Ειδικές Επιστηµονικές Εργασίες

Ειδικές Επιστηµονικές Εργασίες Ειδικές Επιστηµονικές Εργασίες 2005-2006 1. Ανίχνευση προσώπων από ακολουθίες video και παρακολούθηση (face detection & tracking) Η ανίχνευση προσώπου (face detection) αποτελεί το 1 ο βήµα σε ένα αυτόµατο

Διαβάστε περισσότερα

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM). Μνήμες Ένα από τα βασικά πλεονεκτήματα των ψηφιακών συστημάτων σε σχέση με τα αναλογικά, είναι η ευκολία αποθήκευσης μεγάλων ποσοτήτων πληροφοριών, είτε προσωρινά είτε μόνιμα Οι πληροφορίες αποθηκεύονται

Διαβάστε περισσότερα

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 9 Ανάλυση Fourier: Από τη Θεωρία στην Πρακτική Εφαρμογή των Μαθηματικών

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 9 Ανάλυση Fourier: Από τη Θεωρία στην Πρακτική Εφαρμογή των Μαθηματικών Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 9 Ανάλυση Fourier: Από τη Θεωρία στην Πρακτική Εφαρμογή των Μαθηματικών Τύπων. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων Σκοπός Βασική δομή ενός προγράμματος

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 5: ΑΠΕΙΚΟΝΙΣΗ ΚΑΙ ΑΠΟΚΟΠΗ

ΚΕΦΑΛΑΙΟ 5: ΑΠΕΙΚΟΝΙΣΗ ΚΑΙ ΑΠΟΚΟΠΗ ΚΕΦΑΛΑΙΟ 5: ΑΠΕΙΚΟΝΙΣΗ ΚΑΙ ΑΠΟΚΟΠΗ Ένα γεωμετρικό μοντέλο είναι μια αριθμητική περιγραφή ενός αντικειμένου, που περιλαμβάνει το μέγεθος, το σχήμα, καθώς και άλλες ιδιότητές του. Η περιγραφή του μοντέλου

Διαβάστε περισσότερα

6-Aνίχνευση. Ακμών - Περιγράμματος

6-Aνίχνευση. Ακμών - Περιγράμματος 6-Aνίχνευση Ακμών - Περιγράμματος Ανίχνευση ακμών Μετατροπή 2 εικόνας σε σύνολο ακμών Εξαγωγή βασικών χαρακτηριστικών της εικόνας Πιο «συμπαγής» αναπαράσταση Ανίχνευση ακμών Στόχος: ανίχνευση ασυνεχειών

Διαβάστε περισσότερα

Η διαδικασία Παραγωγής Συνθετικής Εικόνας (Rendering)

Η διαδικασία Παραγωγής Συνθετικής Εικόνας (Rendering) Υφή Η διαδικασία Παραγωγής Συνθετικής Εικόνας (Rendering) Θέσεις αντικειμένων και φωτεινών πηγών Θέση παρατηρητή 3D Μοντέλα 3Δ Μετασχ/σμοί Μοντέλου 3Δ Μετασχ/σμός Παρατήρησης Απομάκρυνση Πίσω Επιφανειών

Διαβάστε περισσότερα

Διάλεξη #10. Διδάσκων: Φοίβος Μυλωνάς. Γραφικά με υπολογιστές. Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Χειμερινό εξάμηνο.

Διάλεξη #10. Διδάσκων: Φοίβος Μυλωνάς. Γραφικά με υπολογιστές. Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Χειμερινό εξάμηνο. Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Χειμερινό εξάμηνο Γραφικά με υπολογιστές Διδάσκων: Φοίβος Μυλωνάς fmlonas@ionio.gr Διάλεξη # Δ Μετασχηματισμοί (γενικά) Γραμμικοί Μετασχηματισμοί Απλοί Συσχετισμένοι

Διαβάστε περισσότερα

Ανάλυση και Αναζήτηση Εικόνων με Μεθόδους Ανίχνευσης Τοπικών Χαρακτηριστικών

Ανάλυση και Αναζήτηση Εικόνων με Μεθόδους Ανίχνευσης Τοπικών Χαρακτηριστικών ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΕΦΑΡΜΟΣΜΕΝΩΝ ΜΑΘΗΜΑΤΙΚΩΝ ΚΑΙ ΦΥΣΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΟΜΕΑΣ ΜΑΘΗΜΑΤΙΚΩΝ Δ.Π.Μ.Σ. «ΜΑΘΗΜΑΤΙΚΗ ΠΡΟΤΥΠΟΠΟΙΗΣΗ ΣE ΣΥΓΧΡΟΝΕΣ ΤΕΧΝΟΛΟΓΙΕΣ ΚΑΙ ΤΗΝ ΟΙΚΟΝΟΜΙΑ» Ανάλυση και Αναζήτηση

Διαβάστε περισσότερα

Μάθημα 10 ο. Περιγραφή Σχήματος ΤΜΗΥΠ / ΕΕΣΤ 1

Μάθημα 10 ο. Περιγραφή Σχήματος ΤΜΗΥΠ / ΕΕΣΤ 1 Μάθημα 10 ο Περιγραφή Σχήματος ΤΜΗΥΠ / ΕΕΣΤ 1 Εισαγωγή (1) Η περιγραφή μίας περιοχής μπορεί να γίνει: Με βάση τα εξωτερικά χαρακτηριστικά (ακμές, όρια). Αυτή η περιγραφή προτιμάται όταν μας ενδιαφέρουν

Διαβάστε περισσότερα

4. ΚΕΦΑΛΑΙΟ ΕΦΑΡΜΟΓΕΣ ΤΟΥ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΥ FOURIER

4. ΚΕΦΑΛΑΙΟ ΕΦΑΡΜΟΓΕΣ ΤΟΥ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΥ FOURIER 4. ΚΕΦΑΛΑΙΟ ΕΦΑΡΜΟΓΕΣ ΤΟΥ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΥ FOURIER Σκοπός του κεφαλαίου είναι να παρουσιάσει μερικές εφαρμογές του Μετασχηματισμού Fourier (ΜF). Ειδικότερα στο κεφάλαιο αυτό θα περιγραφούν έμμεσοι τρόποι

Διαβάστε περισσότερα

References. Chapter 10 The Hough and Distance Transforms

References.   Chapter 10 The Hough and Distance Transforms References Chapter 10 The Hough and Distance Transforms An Introduction to Digital Image Processing with MATLAB https://en.wikipedia.org/wiki/circle_hough_transform Μετασχηματισμός HOUGH ΤΕΧΝΗΤΗ Kostas

Διαβάστε περισσότερα

Ενότητα 2. Ζωγραφίζοντας με το ΒΥΟΒ

Ενότητα 2. Ζωγραφίζοντας με το ΒΥΟΒ Ενότητα 2 : Ζωγραφίζοντας με το ΒΥΟΒ -1- Ενότητα 2. Ζωγραφίζοντας με το ΒΥΟΒ Κεφάλαιο 1: Κίνηση και γεωμετρικά σχήματα α. Θέση και προσανατολισμός της μορφής Η θέση της κάθε μορφής στο σκηνικό προσδιορίζεται

Διαβάστε περισσότερα

Digital Image Processing

Digital Image Processing Digital Image Processing Intensity Transformations Πέτρος Καρβέλης pkarvelis@gmail.com Images taken from: R. Gonzalez and R. Woods. Digital Image Processing, Prentice Hall, 2008. Image Enhancement: είναι

Διαβάστε περισσότερα

ΦΥΣΙΚΗ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ

ΦΥΣΙΚΗ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ ΦΥΣΙΚΗ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ Β ΛΥΚΕΙΟΥ Καμπυλόγραμμες Κινήσεις Επιμέλεια: Αγκανάκης Α. Παναγιώτης, Φυσικός http://phyiccore.wordpre.com/ Βασικές Έννοιες Μέχρι στιγμής έχουμε μάθει να μελετάμε απλές κινήσεις,

Διαβάστε περισσότερα

ΨΗΦΙΑΚΗ ΕΠΕΞΕΡΓΑΣΙΑ ΕΙΚΟΝΑΣ

ΨΗΦΙΑΚΗ ΕΠΕΞΕΡΓΑΣΙΑ ΕΙΚΟΝΑΣ H O G feature descriptor global feature the most common algorithm associated with person detection Με τα Ιστογράμματα της Βάθμωσης (Gradient) μετράμε τον προσανατολισμό και την ένταση της βάθμωσης σε μία

Διαβάστε περισσότερα

Γραφικά Υπολογιστών & Εικονική Πραγματικότητα. Μετασχηματισμός απεικόνισης & Αλγόριθμοι αποκοπής

Γραφικά Υπολογιστών & Εικονική Πραγματικότητα. Μετασχηματισμός απεικόνισης & Αλγόριθμοι αποκοπής Γραφικά Υπολογιστών & Εικονική Πραγματικότητα Μετασχηματισμός απεικόνισης & Αλγόριθμοι αποκοπής Βασικές λειτουργίες απεικόνισης μετατροπή του παγκόσμιου συστήματος συντεταγμένων, ενός αντικειμένου, σε

Διαβάστε περισσότερα

ΜΕΛΕΤΗ ΑΡΜΟΝΙΚΗΣ ΤΑΛΑΝΤΩΣΗΣ ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ ΤΟΥ ΜΑΘΗΤΗ Τάξη, τμήμα: Ημερομηνία:. Επώνυμο-όνομα:..

ΜΕΛΕΤΗ ΑΡΜΟΝΙΚΗΣ ΤΑΛΑΝΤΩΣΗΣ ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ ΤΟΥ ΜΑΘΗΤΗ Τάξη, τμήμα: Ημερομηνία:. Επώνυμο-όνομα:.. 1 ΑΠΛΗ ΑΡΜΟΝΙΚΗ ΤΑΛΑΝΤΩΣΗ ΜΕ ΤΗ ΧΡΗΣΗ ΤΟΥ Multilong ΜΕΛΕΤΗ ΑΡΜΟΝΙΚΗΣ ΤΑΛΑΝΤΩΣΗΣ ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ ΤΟΥ ΜΑΘΗΤΗ Τάξη, τμήμα: Ημερομηνία:. Επώνυμο-όνομα:.. Στόχοι: Με τη βοήθεια των γραφικών παραστάσεων των ταλαντώσεων

Διαβάστε περισσότερα

Ε.Α.Υ. Υπολογιστική Όραση. Κατάτμηση Εικόνας

Ε.Α.Υ. Υπολογιστική Όραση. Κατάτμηση Εικόνας Ε.Α.Υ. Υπολογιστική Όραση Κατάτμηση Εικόνας Γεώργιος Παπαϊωάννου 2015 ΚΑΤΩΦΛΙΩΣΗ Κατωφλίωση - Γενικά Είναι η πιο απλή μέθοδος segmentation εικόνας Χωρίζουμε την εικόνα σε 2 (binary) ή περισσότερες στάθμες

Διαβάστε περισσότερα

Μεταπτυχιακό Πρόγραμμα «Γεωχωρικές Τεχνολογίες» Ψηφιακή Επεξεργασία Εικόνας. Εισηγητής Αναστάσιος Κεσίδης

Μεταπτυχιακό Πρόγραμμα «Γεωχωρικές Τεχνολογίες» Ψηφιακή Επεξεργασία Εικόνας. Εισηγητής Αναστάσιος Κεσίδης Μεταπτυχιακό Πρόγραμμα «Γεωχωρικές Τεχνολογίες» Ψηφιακή Επεξεργασία Εικόνας Εισηγητής Αναστάσιος Κεσίδης Χωρικά φίλτρα Χωρικά φίλτρα Γενικά Σε αντίθεση με τις σημειακές πράξεις και μετασχηματισμούς, στα

Διαβάστε περισσότερα

Ολοκληρωμένα Κυκλώματα

Ολοκληρωμένα Κυκλώματα Δημοκρίτειο Πανεπιστήμιο Θράκης Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Γ. Δημητρακόπουλος Ολοκληρωμένα Κυκλώματα Πρόοδος - Φθινόπωρο 2017 Θέμα 1 ο Σχεδιάστε το datapath για τον υπολογισμό

Διαβάστε περισσότερα

Ψηφιακά Αντικείμενα Μάθημα 1 Δραστηριότητα 2. Προγραμματισμός Φυσικών Συστημάτων. Συστήματα Πραγματικών Εφαρμογών. Νέα Ψηφιακά Αντικείμενα

Ψηφιακά Αντικείμενα Μάθημα 1 Δραστηριότητα 2. Προγραμματισμός Φυσικών Συστημάτων. Συστήματα Πραγματικών Εφαρμογών. Νέα Ψηφιακά Αντικείμενα Σκοπός Ψηφιακά Αντικείμενα Μάθημα 1 Δραστηριότητα 2 ΤΟ ΣΥΣΤΗΜΑ ΣΑΡΩΣΗΣ ΤΟΥ ΟΠΤΙΚΟΥ ΠΕΔΙΟΥ. Ψηφιακά Αντικείμενα Μικροελεγκτής Προγραμματισμός Φυσικών Συστημάτων Συστήματα Πραγματικών Εφαρμογών Νέα Ψηφιακά

Διαβάστε περισσότερα

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D.

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D. Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D. Μη γραμμικός προγραμματισμός: μέθοδοι μονοδιάστατης ελαχιστοποίησης Πανεπιστήμιο Θεσσαλίας Σχολή Θετικών Επιστημών ΤμήμαΠληροφορικής Διάλεξη 6 η /2017 Τι παρουσιάστηκε

Διαβάστε περισσότερα

ΚΕΣ 03: Αναγνώριση Προτύπων και Ανάλυση Εικόνας. KEΣ 03 Αναγνώριση Προτύπων και Ανάλυση Εικόνας. Κατάτµηση Εικόνων:

ΚΕΣ 03: Αναγνώριση Προτύπων και Ανάλυση Εικόνας. KEΣ 03 Αναγνώριση Προτύπων και Ανάλυση Εικόνας. Κατάτµηση Εικόνων: KEΣ 3 Αναγνώριση Προτύπων και Ανάλυση Εικόνας Κατάτµηση Εικόνων: Ανίχνευση Ακµών Τµήµα Επιστήµης και Τεχνολογίας Τηλεπικοινωνιών Πανεπιστήµιο Πελοποννήσου Περιεχόµενα Βιβλιογραφία Περιεχόµενα Ενότητας

Διαβάστε περισσότερα

Συνήθεις διαφορικές εξισώσεις προβλήματα οριακών τιμών

Συνήθεις διαφορικές εξισώσεις προβλήματα οριακών τιμών Συνήθεις διαφορικές εξισώσεις προβλήματα οριακών τιμών Οι παρούσες σημειώσεις αποτελούν βοήθημα στο μάθημα Αριθμητικές Μέθοδοι του 5 ου εξαμήνου του ΤΜΜ ημήτρης Βαλουγεώργης Καθηγητής Εργαστήριο Φυσικών

Διαβάστε περισσότερα

ΣΧΕΔΙΑΣΗ ΣΥΣΤΗΜΑΤΩΝ ΜΕ ΧΡΗΣΗ ΥΠΟΛΟΓΙΣΤΩΝ (E-CAD) ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

ΣΧΕΔΙΑΣΗ ΣΥΣΤΗΜΑΤΩΝ ΜΕ ΧΡΗΣΗ ΥΠΟΛΟΓΙΣΤΩΝ (E-CAD) ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ ΣΧΕΔΙΑΣΗ ΣΥΣΤΗΜΑΤΩΝ ΜΕ ΧΡΗΣΗ ΥΠΟΛΟΓΙΣΤΩΝ (E-CAD) ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2016 2017 Χ. Βέργος Καθηγητής ΕΡΓΑΣΙΑ ΕΞΑΜΗΝΟΥ Σκοπός της φετινής εργασίας εξαμήνου είναι η σχεδίαση ενός Συστήματος Απεικόνισης Χαρακτήρων

Διαβάστε περισσότερα

Παράλληλος προγραμματισμός περιστροφικών αλγορίθμων εξωτερικών σημείων τύπου simplex ΠΛΟΣΚΑΣ ΝΙΚΟΛΑΟΣ

Παράλληλος προγραμματισμός περιστροφικών αλγορίθμων εξωτερικών σημείων τύπου simplex ΠΛΟΣΚΑΣ ΝΙΚΟΛΑΟΣ Παράλληλος προγραμματισμός περιστροφικών αλγορίθμων εξωτερικών σημείων τύπου simplex ΠΛΟΣΚΑΣ ΝΙΚΟΛΑΟΣ Διπλωματική Εργασία Μεταπτυχιακού Προγράμματος στην Εφαρμοσμένη Πληροφορική Κατεύθυνση: Συστήματα Υπολογιστών

Διαβάστε περισσότερα

Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής

Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής Βασισμένο σε μια εργασία των Καζαρλή, Καλόμοιρου, Μαστοροκώστα, Μπαλουκτσή, Καλαϊτζή, Βαλαή, Πετρίδη Εισαγωγή Η Εξελικτική Υπολογιστική

Διαβάστε περισσότερα

Κεφάλαιο 1: Κίνηση και γεωμετρικά σχήματα

Κεφάλαιο 1: Κίνηση και γεωμετρικά σχήματα Ασκήσεις της Ενότητας 2 : Ζωγραφίζοντας με το ΒΥΟΒ -1- α. Η χρήση της πένας Κεφάλαιο 1: Κίνηση και γεωμετρικά σχήματα Υπάρχουν εντολές που μας επιτρέπουν να επιλέξουμε το χρώμα της πένας, καθώς και το

Διαβάστε περισσότερα

Κεφάλαιο 5. Το Συμπτωτικό Πολυώνυμο

Κεφάλαιο 5. Το Συμπτωτικό Πολυώνυμο Κεφάλαιο 5. Το Συμπτωτικό Πολυώνυμο Σύνοψη Στο κεφάλαιο αυτό παρουσιάζεται η ιδέα του συμπτωτικού πολυωνύμου, του πολυωνύμου, δηλαδή, που είναι του μικρότερου δυνατού βαθμού και που, για συγκεκριμένες,

Διαβάστε περισσότερα

ΑΠΛΗ ΑΡΜΟΝΙΚΗ ΤΑΛΑΝΤΩΣΗ - ΜΕΛΕΤΗ ΤΑΛΑΝΤΩΣΗΣ ΕΛΑΤΗΡΙΟΥ [Π. Μουρούζης, Γ. Παληός, Κ. Παπαμιχάλης, Γ. Τουντουλίδης, Ε. Τσιτοπούλου, Ι.

ΑΠΛΗ ΑΡΜΟΝΙΚΗ ΤΑΛΑΝΤΩΣΗ - ΜΕΛΕΤΗ ΤΑΛΑΝΤΩΣΗΣ ΕΛΑΤΗΡΙΟΥ [Π. Μουρούζης, Γ. Παληός, Κ. Παπαμιχάλης, Γ. Τουντουλίδης, Ε. Τσιτοπούλου, Ι. ΑΠΛΗ ΑΡΜΟΝΙΚΗ ΤΑΛΑΝΤΩΣΗ - ΜΕΛΕΤΗ ΤΑΛΑΝΤΩΣΗΣ ΕΛΑΤΗΡΙΟΥ [Π. Μουρούζης, Γ. Παληός, Κ. Παπαμιχάλης, Γ. Τουντουλίδης, Ε. Τσιτοπούλου, Ι. Χριστακόπουλος] Για τον καθηγητή Στόχοι: Με τη βοήθεια των γραφικών παραστάσεων

Διαβάστε περισσότερα

ΤΕΙ ΣΕΡΡΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΕΞΕΤΑΣΗ ΣΤΟ ΜΑΘΗΜΑ «ΑΝΑΓΝΩΡΙΣΗ ΠΡΟΤΥΠΩΝ ΝΕΥΡΩΝΙΚΑ ΔΙΚΤΥΑ» ΔΕ. 11 ΙΟΥΝΙΟΥ 2012

ΤΕΙ ΣΕΡΡΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΕΞΕΤΑΣΗ ΣΤΟ ΜΑΘΗΜΑ «ΑΝΑΓΝΩΡΙΣΗ ΠΡΟΤΥΠΩΝ ΝΕΥΡΩΝΙΚΑ ΔΙΚΤΥΑ» ΔΕ. 11 ΙΟΥΝΙΟΥ 2012 ΔΕ. ΙΟΥΝΙΟΥ Δίνονται τα εξής πρότυπα: [ ] [ ] [ ] [ ] Άσκηση η ( μονάδες) Χρησιμοποιώντας το κριτήριο της ομοιότητας να απορριφθεί ένα χαρακτηριστικό με βάσει το συντελεστή συσχέτισης. (γράψτε ποιο χαρακτηριστικό

Διαβάστε περισσότερα

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Οργάνωση Η/Υ Ενότητα 1η: Εισαγωγή στην Οργάνωση Η/Υ Άσκηση 1: Αναλύστε τη διαδοχική εκτέλεση των παρακάτω εντολών MIPS με βάση τις

Διαβάστε περισσότερα

Γραφικά με υπολογιστές

Γραφικά με υπολογιστές Γραφικά με Υπολογιστές Ενότητα # 3: Εισαγωγή Φοίβος Μυλωνάς Τμήμα Πληροφορικής Φοίβος Μυλωνάς Γραφικά με υπολογιστές 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ ΓΙΑ ΤΗ ΔΙΕΝΕΡΓΕΙΑ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΜΕΛΕΤΩΝ

ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ ΓΙΑ ΤΗ ΔΙΕΝΕΡΓΕΙΑ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΜΕΛΕΤΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ ΓΙΑ ΤΗ ΔΙΕΝΕΡΓΕΙΑ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΜΕΛΕΤΩΝ ΠΛΟΣΚΑΣ ΝΙΚΟΛΑΟΣ Α.Μ. 123/04 ΕΠΙΒΛΕΠΩΝ: ΣΑΜΑΡΑΣ ΝΙΚΟΛΑΟΣ ΘΕΣΣΑΛΟΝΙΚΗ, ΙΟΥΝΙΟΣ 2007 Περιεχόμενα

Διαβάστε περισσότερα

Εισαγωγή στους Υπολογιστές

Εισαγωγή στους Υπολογιστές Εισαγωγή στους Υπολογιστές Ενότητα #2: Αναπαράσταση δεδομένων Αβεβαιότητα και Ακρίβεια Καθ. Δημήτρης Ματαράς Πολυτεχνική Σχολή Τμήμα Χημικών Μηχανικών Αναπαράσταση δεδομένων (Data Representation), Αβεβαιότητα

Διαβάστε περισσότερα

Αναγνώριση Προτύπων Ι

Αναγνώριση Προτύπων Ι Αναγνώριση Προτύπων Ι Ενότητα 3: Στοχαστικά Συστήματα Αν. Καθηγητής Δερματάς Ευάγγελος Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

Διαβάστε περισσότερα

ΙΑΤΡΙΚΗ ΑΠΕΙΚΟΝΙΣΗ & ΨΗΦΙΑΚΗ ΕΠΕΞΕΡΓΑΣΙΑ ΙΑΤΡΙΚΗΣ ΕΙΚΟΝΑΣ

ΙΑΤΡΙΚΗ ΑΠΕΙΚΟΝΙΣΗ & ΨΗΦΙΑΚΗ ΕΠΕΞΕΡΓΑΣΙΑ ΙΑΤΡΙΚΗΣ ΕΙΚΟΝΑΣ ΙΑΤΡΙΚΗ ΑΠΕΙΚΟΝΙΣΗ & ΨΗΦΙΑΚΗ ΕΠΕΞΕΡΓΑΣΙΑ ΙΑΤΡΙΚΗΣ ΕΙΚΟΝΑΣ ΔΡ. Γ. ΜΑΤΣΟΠΟΥΛΟΣ ΕΠ. ΚΑΘΗΓΗΤΗΣ ΣΧΟΛΗ ΗΛΕΚΤΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Επεξεργασία Ιατρικών Εικόνων

Διαβάστε περισσότερα

ΒΕΣ 04: Συµπίεση και Μετάδοση Πολυµέσων. Περιεχόµενα. Βιβλιογραφία. Εικόνες και Πολυµεσικές Εφαρµογές. Ψηφιακή Επεξεργασία Εικόνας.

ΒΕΣ 04: Συµπίεση και Μετάδοση Πολυµέσων. Περιεχόµενα. Βιβλιογραφία. Εικόνες και Πολυµεσικές Εφαρµογές. Ψηφιακή Επεξεργασία Εικόνας. ΒΕΣ 04: Συµπίεση και Μετάδοση Πολυµέσων Εικόνα και Πολυµεσικές Εφαρµογές Περιεχόµενα Ψηφιακή Επεξεργασία Εικόνας Σηµειακές µέθοδοι Φίλτρα γειτνίασης Γεωµετρικές µέθοδοι Εικόνες και Πολυµεσικές Εφαρµογές

Διαβάστε περισσότερα

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 1. Arduino + LabVIEW: Μέτρηση Έντασης Φωτός με Φωτοαντίσταση. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 1. Arduino + LabVIEW: Μέτρηση Έντασης Φωτός με Φωτοαντίσταση. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων Σκοπός Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 1 Arduino + LabVIEW: Μέτρηση Έντασης Φωτός με Φωτοαντίσταση. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων Βασική δομή ενός προγράμματος στο LabVIEW. Εμπρόσθιο

Διαβάστε περισσότερα

Θεωρία μετασχηματισμών

Θεωρία μετασχηματισμών Μήτρα Μετασχηματισμού Η γεωμετρία ενός αντικειμένου μπορεί να παρουσιαστεί από ένα σύνολο σημείων κατανεμημένων σε διάφορα επίπεδα. Έτσι λοιπόν ένα πλήθος δεδομένων για κάποιο αντικείμενο μπορεί να αναπαρασταθεί

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΟΝΙΚΩΝ ΕΦΑΡΜΟΓΩΝ

ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΟΝΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΟΝΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΨΗΦΙΑΚΑ ΟΛΟΚΛΗΡΩΜΕΝΑ ΗΛΕΚΤΡΟΝΙΚΑ ΚΑΙ ΣΥΣΤΗΜΑΤΑ ΟΜΑ Α Α Αριθµητική Λογική Μονάδα των 8-bit 1. Εισαγωγή Γενικά µια αριθµητική λογική µονάδα (ALU, Arithmetic Logic Unit)

Διαβάστε περισσότερα

Γραφικά με Η/Υ Αλγόριθμοι σχεδίασης βασικών 22D D σχημάτων (ευθεία

Γραφικά με Η/Υ Αλγόριθμοι σχεδίασης βασικών 22D D σχημάτων (ευθεία Γραφικά με Η/Υ Αλγόριθμοι σχεδίασης βασικών 2D σχημάτων (ευθεία) Σχεδίαση ευθείας θί με σάρωση (παρουσίαση προβλήματος) σχεδίαση ευθείας AB, με σάρωση, όπου A=(0,1) και B=(5,4) ποιο είναι το επόμενο pixel

Διαβάστε περισσότερα

i Throughput: Ο ρυθμός ολοκλήρωσης έργου σε συγκεκριμένο χρόνο

i Throughput: Ο ρυθμός ολοκλήρωσης έργου σε συγκεκριμένο χρόνο Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 6-7 Απόδοση ΚΜΕ (Μέτρηση και τεχνικές βελτίωσης απόδοσης) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Κεντρική Μονάδα Επεξεργασίας

Διαβάστε περισσότερα

Digital Image Processing

Digital Image Processing Digital Image Processing Χωρικό φιλτράρισμα Πέτρος Καρβέλης pkarvelis@gmail.com Images taken from: R. Gonzalez and R. Woods. Digital Image Processing, Prentice Hall, 008. Χωρικού Φιλτράρισμα Η μηχανική

Διαβάστε περισσότερα

ΔΕΙΓΜΑ ΠΡΙΝ ΤΙΣ ΔΙΟΡΘΩΣΕΙΣ - ΕΚΔΟΣΕΙΣ ΚΡΙΤΙΚΗ

ΔΕΙΓΜΑ ΠΡΙΝ ΤΙΣ ΔΙΟΡΘΩΣΕΙΣ - ΕΚΔΟΣΕΙΣ ΚΡΙΤΙΚΗ Συναρτήσεις Προεπισκόπηση Κεφαλαίου Τα μαθηματικά είναι μια γλώσσα με ένα συγκεκριμένο λεξιλόγιο και πολλούς κανόνες. Πριν ξεκινήσετε το ταξίδι σας στον Απειροστικό Λογισμό, θα πρέπει να έχετε εξοικειωθεί

Διαβάστε περισσότερα

ΤΕΙ ΣΕΡΡΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΕΞΕΤΑΣΗ ΣΤΟ ΜΑΘΗΜΑ «ΑΝΑΓΝΩΡΙΣΗ ΠΡΟΤΥΠΩΝ ΝΕΥΡΩΝΙΚΑ ΔΙΚΤΥΑ» ΠΑ. 7 ΣΕΠΤΕΜΒΡΙΟΥ 2012

ΤΕΙ ΣΕΡΡΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΕΞΕΤΑΣΗ ΣΤΟ ΜΑΘΗΜΑ «ΑΝΑΓΝΩΡΙΣΗ ΠΡΟΤΥΠΩΝ ΝΕΥΡΩΝΙΚΑ ΔΙΚΤΥΑ» ΠΑ. 7 ΣΕΠΤΕΜΒΡΙΟΥ 2012 ΠΑ. 7 ΣΕΠΤΕΜΒΡΙΟΥ Δίνονται τα εξής πρότυπα: [ ] [ ] [ ] [ ] Άσκηση η (3 μονάδες) Χρησιμοποιώντας το κριτήριο της ομοιότητας να απορριφθεί ένα χαρακτηριστικό με βάση το συντελεστή συσχέτισης. (γράψτε ποιο

Διαβάστε περισσότερα

Σύστημα ψηφιακής επεξεργασίας ακουστικών σημάτων με χρήση προγραμματιζόμενων διατάξεων πυλών. Πτυχιακή Εργασία. Φοιτητής: ΤΣΟΥΛΑΣ ΧΡΗΣΤΟΣ

Σύστημα ψηφιακής επεξεργασίας ακουστικών σημάτων με χρήση προγραμματιζόμενων διατάξεων πυλών. Πτυχιακή Εργασία. Φοιτητής: ΤΣΟΥΛΑΣ ΧΡΗΣΤΟΣ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε. Σύστημα ψηφιακής επεξεργασίας ακουστικών σημάτων με χρήση προγραμματιζόμενων διατάξεων πυλών. Πτυχιακή Εργασία Φοιτητής:

Διαβάστε περισσότερα

Συμπίεση Πληροφορίας Πλαισίου με Ανάλυση Κύριων Συνιστωσών

Συμπίεση Πληροφορίας Πλαισίου με Ανάλυση Κύριων Συνιστωσών Τμήμα Πληροφορικής και Τηλεπικοινωνιών Πρόγραμμα Μεταπτυχιακών Σπουδών Συμπίεση Πληροφορίας Πλαισίου με Ανάλυση Κύριων Συνιστωσών Διπλωματική Εργασία Παναγιώτης Γεώργας (Μ1040) Επιβλέπωντες: Επικ. Καθηγητής

Διαβάστε περισσότερα

Μεταπτυχιακό Πρόγραμμα «Γεωχωρικές Τεχνολογίες» Ψηφιακή Επεξεργασία Εικόνας. Εισηγητής Αναστάσιος Κεσίδης

Μεταπτυχιακό Πρόγραμμα «Γεωχωρικές Τεχνολογίες» Ψηφιακή Επεξεργασία Εικόνας. Εισηγητής Αναστάσιος Κεσίδης Μεταπτυχιακό Πρόγραμμα «Γεωχωρικές Τεχνολογίες» Ψηφιακή Επεξεργασία Εικόνας Εισηγητής Αναστάσιος Κεσίδης Τμηματοποίηση εικόνας Τμηματοποίηση εικόνας Γενικά Διαμερισμός μιας εικόνας σε διακριτές περιοχές

Διαβάστε περισσότερα

ΚΑΤΑΓΡΑΦΗ ΤΟΥ ΙΧΝΟΥΣ ΤΗΣ ΟΠΤΙΚΗΣ ΑΝΑΖΗΤΗΣΗΣ: ΜΙΑ ΜΕΘΟΔΟΣ ΔΙΕΡΕΥΝΗΣΗΣ ΤΗΣ ΕΠΙΛΕΚΤΙΚΟΤΗΤΑΣ ΤΗΣ ΟΠΗΣ ΩΣ ΒΑΣΙΚΟΥ ΧΑΡΑΚΤΗΡΙΣΤΙΚΟΥ ΤΟΥ ΣΧΗΜΑΤΟΣ

ΚΑΤΑΓΡΑΦΗ ΤΟΥ ΙΧΝΟΥΣ ΤΗΣ ΟΠΤΙΚΗΣ ΑΝΑΖΗΤΗΣΗΣ: ΜΙΑ ΜΕΘΟΔΟΣ ΔΙΕΡΕΥΝΗΣΗΣ ΤΗΣ ΕΠΙΛΕΚΤΙΚΟΤΗΤΑΣ ΤΗΣ ΟΠΗΣ ΩΣ ΒΑΣΙΚΟΥ ΧΑΡΑΚΤΗΡΙΣΤΙΚΟΥ ΤΟΥ ΣΧΗΜΑΤΟΣ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΑΓΡΟΝΟΜΩΝ ΚΑΙ ΤΟΠΟΓΡΑΦΩΝ ΜΗΧΑΝΙΚΩΝ ΤΟΜΕΑΣ ΤΟΠΟΓΡΑΦΙΑΣ ΕΡΓΑΣΤΗΡΙΟ ΧΑΡΤΟΓΡΑΦΙΑΣ ΚΑΤΑΓΡΑΦΗ ΤΟΥ ΙΧΝΟΥΣ ΤΗΣ ΟΠΤΙΚΗΣ ΑΝΑΖΗΤΗΣΗΣ: ΜΙΑ ΜΕΘΟΔΟΣ ΔΙΕΡΕΥΝΗΣΗΣ ΤΗΣ ΕΠΙΛΕΚΤΙΚΟΤΗΤΑΣ

Διαβάστε περισσότερα

Advances in Digital Imaging and Computer Vision

Advances in Digital Imaging and Computer Vision Advances in Digital Imaging and Computer Vision Lecture and Lab XXX Introduction to Python Κώστας Μαριάς Αναπληρωτής Καθηγητής Επεξεργασίας Εικόνας 21/2/2017 1 Image Processing and Computer Vision with

Διαβάστε περισσότερα

Απεικόνιση Υφής. Μέρος Α Υφή σε Πολύγωνα

Απεικόνιση Υφής. Μέρος Α Υφή σε Πολύγωνα Απεικόνιση Γραφικά ΥφήςΥπολογιστών Απεικόνιση Υφής Μέρος Α Υφή σε Πολύγωνα Γ. Γ. Παπαϊωάννου, - 2008 Τι Είναι η Υφή; Η υφή είναι η χωρική διαμόρφωση των ποιοτικών χαρακτηριστικών της επιφάνειας ενός αντικειμένου,

Διαβάστε περισσότερα

Λιβανός Γιώργος Εξάμηνο 2017Β

Λιβανός Γιώργος Εξάμηνο 2017Β Λιβανός Γιώργος Εξάμηνο 2017Β Υπολογιστικό σύστημα Υλικό (hardware) Λογισμικό (Software) Ολοκληρωμένα κυκλώματα, δίσκοι, οθόνη, κλπ. Λογισμικό συστήματος Προγράμματα εφαρμογών Χρειάζονται ένα συντονιστή!!!

Διαβάστε περισσότερα

Συνδυαστικά Κυκλώματα

Συνδυαστικά Κυκλώματα 3 Συνδυαστικά Κυκλώματα 3.1. ΣΥΝΔΥΑΣΤΙΚΗ Λ ΟΓΙΚΗ Συνδυαστικά κυκλώματα ονομάζονται τα ψηφιακά κυκλώματα των οποίων οι τιμές της εξόδου ή των εξόδων τους διαμορφώνονται αποκλειστικά, οποιαδήποτε στιγμή,

Διαβάστε περισσότερα

Ενσωμάτωση εικόνας BMP σε σχέδιο

Ενσωμάτωση εικόνας BMP σε σχέδιο Ενσωμάτωση εικόνας BMP σε σχέδιο Εγχειρίδιο χρήσης Αθήνα, Οκτώβριος 2009 Version 1.0.1 Τι είναι. Με την λειτουργία αυτή εικόνες τύπου BMP είναι δυνατόν να εισαχθούν μέσα σε οποιαδήποτε αρχείο και να υποστούν

Διαβάστε περισσότερα

Οδηγίες για το Geogebra Μωυσιάδης Πολυχρόνης Δόρτσιος Κώστας

Οδηγίες για το Geogebra Μωυσιάδης Πολυχρόνης Δόρτσιος Κώστας Οδηγίες για το Geogebra Μωυσιάδης Πολυχρόνης Δόρτσιος Κώστας Η πρώτη οθόνη μετά την εκτέλεση του προγράμματος διαφέρει κάπως από τα προηγούμενα λογισμικά, αν και έχει αρκετά κοινά στοιχεία. Αποτελείται

Διαβάστε περισσότερα

Τμήμα Φυσικής, Παν/μιο Ιωαννίνων, Ειδική Σχετικότητα, Διάλεξη 5 Οι Μετασχηματισμοί του Lorentz και η Συστολή του μήκους

Τμήμα Φυσικής, Παν/μιο Ιωαννίνων, Ειδική Σχετικότητα, Διάλεξη 5 Οι Μετασχηματισμοί του Lorentz και η Συστολή του μήκους 1 Οι Μετασχηματισμοί του Lorentz και η Συστολή του μήκους Σκοποί της πέμπτης διάλεξης: 10.11.2011 Εξοικείωση με τους μετασχηματισμούς του Lorentz και τις διάφορες μορφές που μπορούν να πάρουν για την επίλυση

Διαβάστε περισσότερα

Εισαγωγή στην Πληροφορική

Εισαγωγή στην Πληροφορική Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Εισαγωγή στην Πληροφορική Ενότητα 8: Λειτουργικά Συστήματα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

Διαβάστε περισσότερα

8. Σύνθεση και ανάλυση δυνάμεων

8. Σύνθεση και ανάλυση δυνάμεων 8. Σύνθεση και ανάλυση δυνάμεων Βασική θεωρία Σύνθεση δυνάμεων Συνισταμένη Σύνθεση δυνάμεων είναι η διαδικασία με την οποία προσπαθούμε να προσδιορίσουμε τη δύναμη εκείνη που προκαλεί τα ίδια αποτελέσματα

Διαβάστε περισσότερα

ΔΙΔΑΣΚΑΛΙΑ ΤΗΣ ΕΝΝΟΙΑΣ ΤΟΥ ΟΡΙΟΥ ΣΥΝΑΡΤΗΣΗΣ

ΔΙΔΑΣΚΑΛΙΑ ΤΗΣ ΕΝΝΟΙΑΣ ΤΟΥ ΟΡΙΟΥ ΣΥΝΑΡΤΗΣΗΣ ΕΠΙΜΟΡΦΩΣΗ ΤΩΝ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΓΙΑ ΤΗΝ ΑΞΙΟΠΟΙΗΣΗ ΚΑΙ ΕΦΑΡΜΟΓΗ ΤΩΝ ΤΠΕ ΣΤΗ ΔΙΔΑΚΤΙΚΗ ΠΡΑΞΗ ΔΙΔΑΣΚΑΛΙΑ ΤΗΣ ΕΝΝΟΙΑΣ ΤΟΥ ΟΡΙΟΥ ΣΥΝΑΡΤΗΣΗΣ ΟΡΙΟ ΣΥΝΑΡΤΗΣΗΣ ΕΞ ΑΡΙΣΤΕΡΩΝ ΚΑΙ ΕΚ ΔΕΞΙΩΝ ΣΥΓΓΡΑΦΕΑΣ: ΚΟΥΤΙΔΗΣ ΙΩΑΝΝΗΣ

Διαβάστε περισσότερα

ΕΡΩΤΗΣΕΙΣ ΓΙΑ ΤΟ ΜΑΘΗΜΑ ΤΟΠΟΓΡΑΦΙΚΑ ΔΙΚΤΥΑ ΚΑΙ ΥΠΟΛΟΓΙΣΜΟΙ 5 ο εξάμηνο

ΕΡΩΤΗΣΕΙΣ ΓΙΑ ΤΟ ΜΑΘΗΜΑ ΤΟΠΟΓΡΑΦΙΚΑ ΔΙΚΤΥΑ ΚΑΙ ΥΠΟΛΟΓΙΣΜΟΙ 5 ο εξάμηνο ΕΡΩΤΗΣΕΙΣ ΓΙΑ ΤΟ ΜΑΘΗΜΑ ΤΟΠΟΓΡΑΦΙΚΑ ΔΙΚΤΥΑ ΚΑΙ ΥΠΟΛΟΓΙΣΜΟΙ 5 ο εξάμηνο ΓΕΝΙΚΕΣ ΕΝΝΟΙΕΣ 1) Ποιός είναι ο βασικός ρόλος και η χρησιμότητα των δικτύων στη Γεωδαισία και την Τοπογραφία; 2) Αναφέρετε ορισμένες

Διαβάστε περισσότερα

Μέθοδοι πολυδιάστατης ελαχιστοποίησης

Μέθοδοι πολυδιάστατης ελαχιστοποίησης Μέθοδοι πολυδιάστατης ελαχιστοποίησης με παραγώγους Μέθοδοι πολυδιάστατης ελαχιστοποίησης Δ. Γ. Παπαγεωργίου Τμήμα Μηχανικών Επιστήμης Υλικών Πανεπιστήμιο Ιωαννίνων dpapageo@cc.uoi.gr http://pc64.materials.uoi.gr/dpapageo

Διαβάστε περισσότερα

Αριθμητική εύρεση ριζών μη γραμμικών εξισώσεων

Αριθμητική εύρεση ριζών μη γραμμικών εξισώσεων Αριθμητική εύρεση ριζών μη γραμμικών εξισώσεων Με τον όρο μη γραμμικές εξισώσεις εννοούμε εξισώσεις της μορφής: f( ) 0 που προέρχονται από συναρτήσεις f () που είναι μη γραμμικές ως προς. Περιέχουν δηλαδή

Διαβάστε περισσότερα

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή 1. Ηλεκτρονικός Υπολογιστής Ο Ηλεκτρονικός Υπολογιστής είναι μια συσκευή, μεγάλη ή μικρή, που επεξεργάζεται δεδομένα και εκτελεί την εργασία του σύμφωνα με τα παρακάτω

Διαβάστε περισσότερα

Μεταπτυχιακό Πρόγραμμα Φυσικού Τμήματος «Υπολογιστική Φυσική» Θέμα εργασίας στο A Μέρος του μαθήματος «Προσομοίωση Χαοτικών Συστημάτων»

Μεταπτυχιακό Πρόγραμμα Φυσικού Τμήματος «Υπολογιστική Φυσική» Θέμα εργασίας στο A Μέρος του μαθήματος «Προσομοίωση Χαοτικών Συστημάτων» Μεταπτυχιακό Πρόγραμμα Φυσικού Τμήματος «Υπολογιστική Φυσική» Θέμα εργασίας στο A Μέρος του μαθήματος «Προσομοίωση Χαοτικών Συστημάτων» Οδηγίες: Σχετικά με την παράδοση της εργασίας θα πρέπει: Το κείμενο

Διαβάστε περισσότερα

Αυτόματη Αξιολόγηση και Συγχώνευση 2D Xαρτών Κατάληψης Πλέγματος με Χρήση Περιγραφέων Εικόνας

Αυτόματη Αξιολόγηση και Συγχώνευση 2D Xαρτών Κατάληψης Πλέγματος με Χρήση Περιγραφέων Εικόνας ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Τομέας Ηλεκτρονικής και Υπολογιστών Διπλωματική Εργασία Αυτόματη Αξιολόγηση και Συγχώνευση

Διαβάστε περισσότερα

Μάθημα 5: Χαρακτηριστικά της Κ.Μ.Ε.

Μάθημα 5: Χαρακτηριστικά της Κ.Μ.Ε. Μάθημα 5: Χαρακτηριστικά της Κ.Μ.Ε. 5.1 Το ρολόι Κάθε μία από αυτές τις λειτουργίες της Κ.Μ.Ε. διαρκεί ένα μικρό χρονικό διάστημα. Για το συγχρονισμό των λειτουργιών αυτών, είναι απαραίτητο κάποιο ρολόι.

Διαβάστε περισσότερα