Επιτάχυνση εκτέλεσης προηγμένων αλγορίθμων επεξεργασίας εικόνας και βίντεο σε επαναδιαμορφούμενο υλικό (FPGA), για εφαρμογές ρομποτικής όρασης
Authors: Βουρβουλάκης Ιωάννης 
Published: September 2021

Το πρόβλημα της εύρεσης αντιστοιχιών ανάμεσα σε παρόμοιες εικόνες αποτελεί ένα από τα πιο πολυσύνθετα και δύσκολα προβλήματα στην επεξεργασία εικόνας. Η εξαγωγή χαρακτηριστικών σημείων εικόνων και η χρήση τους για την εύρεση των αντιστοιχιών αποτελεί μία μεθοδολογία που βελτιώνει την αξιοπιστία της διαδικασίας αντιστοίχησης. Στη βιβλιογραφία μπορούν να εντοπιστούν αρκετοί αλγόριθμοι για την εξαγωγή χαρακτηριστικών σημείων. Ένας από τους πιο αξιόπιστους και ακριβείς αλγορίθμους είναι ο αλγόριθμος SIFT (Scale Invariant Feature Transform). Ωστόσο, η εκτέλεσή του προϋποθέτει ιδιαίτερα απαιτητικούς υπολογισμούς και η χρήση του σε εφαρμογές πραγματικού χρόνου θα μπορούσε να χαρακτηριστεί ως αναποτελεσματική. Στα πλαίσια της παρούσας διδακτορικής διατριβής περιγράφεται η υλοποίηση σε FPGA ενός επιταχυντή για την εύρεση αντιστοιχιών ανάμεσα σε διαδοχικά πλαίσια βίντεο, χρησιμοποιώντας τα χαρακτηριστικά σημεία SIFT. Ο προτεινόμενος επιταχυντής σε FPGA πραγματοποιεί ανίχνευση και εξαγωγή των χαρακτηριστικών SIFT μέσα από μια πλήρως παραλληλισμένη (pipelined) αρχιτεκτονική. Επίσης, περιλαμβάνει τη διαδικασία αντιστοίχησης (matching) των χαρακτηριστικών σημείων ανάμεσα σε δύο πλαίσια βίντεο, η οποία σχεδιάστηκε με την αρχή να ακολουθεί την παραλληλισμένη αρχιτεκτονική των προηγούμενων βαθμίδων. Στην τελευταία βαθμίδα του επιταχυντή, εφαρμόζεται ο αλγόριθμος RANSAC (random sample consensus) για την απομάκρυνση των εσφαλμένων αντιστοιχιών. Ο RANSAC, αν και αποτελεί έναν επαναληπτικό αλγόριθμο ιδιαίτερα απαιτητικό, είναι επίσης παραλληλισμένος σε μεγάλο βαθμό και η ολοκλήρωση της εκτέλεσής του απαιτεί μερικούς κύκλους ρολογιού. Συνοψίζοντας, η αρχιτεκτονική του επιταχυντή περιλαμβάνει όλα τα στάδια που απαιτούνται από τη σύλληψη της εικόνας μέχρι και την εξαγωγή των σωστών αντιστοιχιών. Ο επιταχυντής περιλαμβάνει μία σειρά από ελεγκτές που αναπτύχθηκαν με στόχο την ελαχιστοποίηση των πόρων που απαιτούνται στο FPGA. Ο κυριότερος ελεγκτής είναι ο ελεγκτής σύλληψης των εισερχόμενων πλαισίων βίντεο (frame grabber) από την κάμερα (CMOS αισθητήρας εικόνας). Περιλαμβάνει τον ελεγκτή (I2C controller) για τη ρύθμιση της κάμερας, τον ελεγκτή για την εξαγωγή της φωτεινότητας των εικονοστοιχείων από την κωδικοποίηση Bayer, καθώς επίσης και έναν ελεγκτή VGA για οπτική επαλήθευση. Επιπλέον, για χρήση σε διάφορες λειτουργίες του επιταχυντή υλοποιήθηκαν οι ελεγκτές SPI master, ελεγκτής επικοινωνίας με συσκευή USB και ο ελεγκτής μνήμης SDR SDRAM. Στην παρούσα διατριβή προτείνονται δύο βασικές πρωτοτυπίες ως προς τον τρόπο που υλοποιείται ο ανιχνευτής SIFT (SIFT detector). Αρχικά προτείνεται μια διαφορετική τεχνική για τη δημιουργία του χώρου κλιμάκωσης (scale space). Στη βιβλιογραφία, συνήθως, συναντάται το σχήμα καταρράκτη (cascade scheme) όπου κάθε επόμενη γκαουσιανή προκύπτει από την γκαουσιανή της προηγούμενης κλίμακας. Ο προτεινόμενος επιταχυντής χρησιμοποιεί μια μέθοδο εφαρμόζοντας γκαουσιανά φίλτρα στην ίδια αρχική εικόνα με προσεκτικά επιλεγμένη την τυπική απόκλιση. Με τον τρόπο αυτό επιτυγχάνεται μείωση της απαιτούμενης μνήμης στο FPGA. Επιπλέον, με το σχήμα αυτό είναι δυνατή η επαναχρησιμοποίηση των γκαουσιανών όταν ζητούνται περισσότερες κλίμακες. Η δεύτερη πρωτοτυπία βασίζεται στον τρόπο που υλοποιείται η συνέλιξη. Συνήθως στη βιβλιογραφία συναντάται το σχήμα της διαχωρίσιμης συνέλιξης. Με το σχήμα που υλοποιείται στον επιταχυντή γίνεται εξοικονόμηση πολλαπλασιαστών, χωρίς απώλεια της ακρίβειας στον αλγόριθμο SIFT. Μια σημαντική συνεισφορά της διατριβής αποτελεί ο πλήρης παραλληλισμός του αλγορίθμου εξαγωγής χαρακτηριστικών σημείων SIFT. Η προτεινόμενη αρχιτεκτονική έχει τη δυνατότητα να εξάγει έναν περιγραφέα ανά παλμό ρολογιού. Καθώς διαβάζονται τα εικονοστοιχεία από την κάμερα με τη μορφή streaming, με τον ίδιο ρυθμό γίνεται και η εξαγωγή χαρακτηριστικών σημείων (SIFT detector/descriptor), αναφερόμενοι σε άλλα εικονοστοιχεία που διαβάστηκαν σε προηγούμενο χρόνο. Με την ίδια αρχή είναι σχεδιασμένο στον επιταχυντή και τo κύκλωμα εύρεσης αντιστοιχιών. Κάθε νέο χαρακτηριστικό, που λαμβάνεται από το τρέχον πλαίσιο βίντεο, συγκρίνεται με αποθηκευμένα χαρακτηριστικά του προηγούμενου πλαισίου και η αντιστοίχηση, αν υπάρχει, εξάγεται σε 1 παλμό ρολογιού. Θα πρέπει να αναφερθεί ότι πολύ σημαντικός είναι και ο βαθμός στον οποίο έχει παραλληλιστεί ο RANSAC. Ο RANSAC συνήθως εκτελείται επαναληπτικά και απαιτείται υπολογίσιμος χρόνος για την ολοκλήρωσή του. Για την ελάττωση του χρόνου εκτέλεσης του RANSAC, πολλές φορές χρησιμοποιούνται λιγότερα τυχαία δείγματα για τον υπολογισμό του πίνακα μετασχηματισμού. Αυτό όμως μπορεί να οδηγήσει σε μείωση της ακρίβειας στην απομάκρυνση των εσφαλμένων αντιστοιχιών, καθώς μπορεί να απορριφθούν και πραγματικές αντιστοιχήσεις. Με την προτεινόμενη υλοποίηση του RANSAC είναι δυνατή η εκτέλεση του αλγορίθμου χρησιμοποιώντας όλους τους δυνατούς συνδυασμούς των αντιστοιχιών ως τυχαία δείγματα, κάτι που προσδίδει τη μέγιστη δυνατή ακρίβεια στον πίνακα μετασχηματισμού. Η επιτάχυνση που επιτυγχάνεται στην εκτέλεση του αλγορίθμου SIFT είναι ιδιαίτερα σημαντική. Να σημειωθεί ότι ο χρόνος εξαγωγής ενός περιγραφέα SIFT υπολογίστηκε στα 40ns, περίπου 50 φορές μικρότερος σε σύγκριση με εργασίες οι οποίες υλοποιούν τον αλγόριθμο χρησιμοποιώντας μηχανές καταστάσεων (state machines). Επιπλέον, παρουσιάζεται για πρώτη φορά στη βιβλιογραφία κύκλωμα εύρεσης αντιστοιχιών, το οποίο έχει τη δυνατότητα να υπολογίζει μια αντιστοιχία σε χρόνο 80ns. Η συνολική αρχιτεκτονική ανιχνευτή/περιγραφέα/κυκλώματος εύρεσης αντιστοιχιών μπορεί να φιλοξενηθεί σε FPGA μεσαίας κλίμακας, όπως της οικογένειας Cyclone IV της Altera. Περισσότερα για την υλοποίηση των παραπάνω δίνονται στα κεφάλαια που ακολουθούν. Στο πρώτο κεφάλαιο γίνεται μια εισαγωγή στους αλγορίθμους εξαγωγής χαρακτηριστικών σημείων σε εικόνες. Στο δεύτερο κεφάλαιο παρουσιάζεται η δομή του επιταχυντή και οι ελεγκτές που υλοποιούν τις βασικές λειτουργίες. Στο τρίτο κεφάλαιο αναλύεται ο ανιχνευτής και ο περιγραφέας των χαρακτηριστικών σημείων SIFT. Στο τέταρτο κεφάλαιο παρουσιάζεται το κύκλωμα εύρεσης αντιστοιχιών των χαρακτηριστικών σημείων (SIFT matcher). Στο πέμπτο κεφάλαιο δίνονται οι λεπτομέρειες υλοποίησης για τις αρχιτεκτονικές του RANSAC. Στο έκτο κεφάλαιο παρουσιάζονται τα συμπεράσματα και αναλύονται προοπτικές μελλοντικής έρευνας.