Υλοποίηση σε FPGA αλγορίθμου Συρραφής εικόνων
Creators: name: Βουτσάς, Βασίλειος Χρήστου
Publisher: name: Aristotle University of Thessaloniki
Year: 2016
Subjects: Συρραφή Εικόνων
Αλγόριθμος σε FPGA
Επεξεργασία εικόνας
FPGA
Image Stitching
SIFT

description: Στην εργασία αυτή περιγράφουμε την υλοποίηση ενός αλγορίθμου συρραφής εικόνων (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 * 36000 bits/block). Τα αποτελέσματα και οι επιδόσεις της υλοποίησης δίνονται στο 5ο Κεφάλαιο ενώ τέλος στο 6ο Κεφάλαιο γίνεται μια μικρή παρουσίαση διαφόρων εφαρμογών που χρησιμοποιούν τόσο τον SIFT descriptor όσο και το συνολικό stitching αλγόριθμο.
description: 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 6th chapter on applications in which SIFT or the whole stitching algorithm can be used.