Περίληψη: | Η παρούσα εργασία πραγματεύεται τη δημιουργία μιας εφαρμογής για την είσοδο σε ένα ηλεκτρονικό σύστημα με τη μέθοδο της αναγνώρισης προσώπου. Για το σκοπό αυτό αξιοποιείται μια τεχνολογία των τελευταίων ετών το Blockchain. Μέσα από την διαδραστική ενασχόληση με αυτές τις τεχνολογίες καταφέρνουμε να δούμε μια διαφορετική οπτική γωνία για την ανάπτυξη εφαρμογών. Τα βιομετρικά χαρακτηριστικά ήταν πάντα στο στόχαστρο του ανθρώπου για τις λειτουργίες της αναγνώρισης. Χιλιάδες χρόνια πριν, αξιοποιήθηκαν πρώτη φορά και παρόλο που ο άνθρωπος τα χρησιμοποιεί σε καθημερινή βάση, η τεχνολογία για την εκμετάλλευση τους σε ευρεία κλίμακα είναι έτοιμη μονάχα τα τελευταία χρόνια. Πλέον, η πλειοψηφία της ανθρωπότητας έχει πρόσβαση στο διαδίκτυο και σε συσκευές που έχουν κατά μεγάλο ποσοστό μια κάμερα ενσωματωμένη. Άλλα βιομετρικά χαρακτηριστικά απαιτούν επιπλέον εξαρτήματα (π.χ. τα δακτυλικά αποτυπώματα), επίσης η εξαγωγή μιας εικόνας μπορεί να γίνει χωρίς διαδραστικότητα με το χρήστη κάνοντας το σύστημα πιο εύχρηστο. Η αναγνώριση προσώπου μπορεί να γίνει οπουδήποτε ασχέτως με το περιβάλλον που βρίσκεται ο χρήστης, της ενδυμασίας του ή των εξωτερικών του χαρακτηριστικών. Τα συστήματα αυτά δίνουν πλέον μεγάλη ακρίβεια και αποτελεσματικότητα σε μικρό χρονικό διάστημα. Για τους λόγους αυτούς επιλέξαμε το πρόσωπο ως την κεντρική πηγή πληροφοριών για την πιστοποίηση του χρήστη.
Ο σκοπός της παρούσας διπλωματικής είναι μέσα από την ερεύνα στο γνωστικό αντικείμενο της αναγνώρισης προσώπου να εξερευνήσουμε αλγόριθμους σχετικούς με τη μηχανική μάθηση. Ο πιο ισχυρός και δημοφιλής από αυτούς είναι τα νευρωνικά δίκτυα. Για το λόγο αυτό αφιερώθηκαν αρκετές σελίδες στην ανάλυση της αρχιτεκτονικής τους.
Προεπεξεργασία
Η εργασία ξεκινάει με την φάση της προεπεξεργασίας. Σε αυτή τη κατάσταση η εικόνα προετοιμάζεται προκειμένου να αξιοποιηθεί από τα συστήματα εντοπισμού και αναγνώρισης. Το στάδιο αυτό, συχνά δεν διερευνάται σε βάθος λόγο του μικρού βάρους που φέρει στο συνολικό σύστημα. Εμείς όμως, αναγνωρίζοντας την αξία του ειδικά για τα συστήματα που εφαρμόζονταν κατά κόρων μέχρι και μια δεκαετία πριν, αναλύουμε 4 τεχνικές που μπορούν να συνδυαστούν. Ο συνδυασμός τους θα κάνει την εικόνα περισσότερο ανεξάρτητη προς τη φωτεινότητα ενισχύοντας τα αποτελέσματα της αναγνώρισης προσώπου. Αναλύονται οι αλγόριθμοι, Histogram Equalization, SQI, ο αλγόριθμος των Tan & Trigg και η προεπεξεργασία με LBP.
Εντοπισμός Προσώπου
Στο επόμενο κεφάλαιο παρουσιάζεται η πρώτη ουσιαστική επαφή των αλγορίθμων με την εικόνα. Η ουσιαστική επαφή έγκειται στο γεγονός ότι περιμένουμε συγκεκριμένα αποτελέσματα από το στάδιο αυτό το οποίο μπορεί να πετύχει αλλά φυσικά και να αποτύχει. Οι τεχνολογικές αναπτύξεις στον κλάδο, παρόλ’ αυτά έχουν ελαχιστοποιήσει το ποσοστό αποτυχίας. Ο λόγος λοιπόν δίνεται στους αλγόριθμους εντοπισμού του προσώπου. Ως φόρο τιμής η ανάλυση αυτών ξεκινάει από μεθόδους που χρησιμοποιήθηκαν στα πρώτα βήματα της τεχνολογίας αυτής, τον περασμένο αιώνα. Η αναγνώριση προσώπου μέσα από το διαχωρισμό του χρώματος και των γεωμετρικών χαρακτηριστικών ήταν οι πρώτες προσεγγίσεις. Παρόλο που δεν είναι διακριτό εύκολα στο ανθρώπινο μάτι, το χρώμα του δέρματος όλων των ανθρώπων από κάθε ήπειρο περιορίζεται σε μια κλειστή περιοχή. Η παρατήρηση αυτή έδωσε τα πρώτα αποτελέσματα. Στη συνέχεια το γεγονός ότι κάθε πρόσωπο έχει συγκεκριμένα χαρακτηριστικά όπως μια μύτη, δυο μάτια και ένα στόμα αξιοποιήθηκε από τους επιστήμονες δίνοντας καλύτερα αποτελέσματα. Η επόμενη τεχνική που, αν και είναι πολύ κοντά στις δυο προηγούμενες, χρησιμοποιείται ακόμα και σήμερα στην αναγνώριση προσώπων και πραγμάτων είναι το Template Matching. Να διευκρινίσουμε ότι χρησιμοποιείται σε περιπτώσεις που θέλουμε γρήγορα αποτελέσματα με ανοχή σε σφάλμα και κυρίως οι πόροι δεν επιτρέπουν υψηλή υπολογιστική περιπλοκότητα. Οι εν συνεχεία διαδικασίες από εκείνο το σημείο και έπειτα έγιναν πολύ σύνθετες για τα πλαίσια της περίληψης. Στις αρχές του 21ου αιώνα κάνει την εμφάνιση του ένα δίδυμο ερευνητών, οι Viola και Jones. Αυτοί δείχνουν στην επιστημονική, τότε, κοινότητα ότι δεν χρειάζεται ένα μεγάλο περίπλοκο σύστημα για την αναγνώριση, αλλά πολλά μικρά εύκολα υλοποιήσιμα με τη σωστή βεβαίως αρχιτεκτονική. Αυτό σε συνδυασμό με κάποιες τεχνικές για την ελάττωση των υπολογιστικών απαιτήσεων άνοιξαν το δρόμο για την ανάπτυξη. Μερικά χρόνια αργότερα με τις συμπληρωματικές προσθήκες των Dalal και Triggs ο αλγόριθμος που είχε γίνει πατέντα το 1989 επανέρχεται στο προσκήνιο. Ο λόγος για τον HoG (Histogram of oriented gradient), ο οποίος αναλύει την εικόνα με βάση τον προσανατολισμό της φωτεινότητας των pixel. Φτιάχνοντας έτσι, μια περιγραφή της εικόνας το λεγόμενο feature vector. Συγκρίνοντας το με ένα δοσμένο σύνολο αποφασίζει εάν υπάρχει ή όχι πρόσωπο στην εικόνα. Στο παρόν κεφάλαιο αναλύονται και κάποια τεχνάσματα για την συμπλήρωση των αλγορίθμων και την αποφυγή των περιορισμών τους όπως οι Gaussian Pyramids.
Εντοπισμός συγκεκριμένων χαρακτηριστικών
Στη συνεχεία, ως εκροή της απαίτησης του συστήματος αναγνώρισης, τα πρόσωπα να έχουν συγκεκριμένη μορφή, δημιουργείται η κατηγορία των αλγορίθμων αυτή. Εδώ βασικός στόχος είναι να βρούμε κάποια σημεία στο πρόσωπο τα οποία θα μας επιτρέψουν με μια εύκολη μαθηματική μετατροπή να επιτύχουμε το σκοπό μας. Ο στόχος είναι να προσανατολίσουμε και να μεταφέρουμε το πρόσωπο σε μια συγκεκριμένη απαιτούμενη μορφή. Οι αλγόριθμοι που παρουσιάζονται χωρίζονται σε δυο κατηγορίες. Η πρώτη είναι τα deformable templates και βασισμένος σε αυτά παίρνοντας τα ηνία από τον προκάτοχο (ASM) είναι ο αλγόριθμος AAM (Active Appearance Model). Ο αλγόριθμος αυτός δέχεται ένα σύνολο από πρόσωπα με ενδεδειγμένα τα σημεία του προσώπου κατά το στάδιο της εκπαίδευσης. Έτσι, υπολογίζει το μέσο πρόσωπο από το δοσμένο σύνολο. Εφαρμόζοντας το μέσο πρόσωπο σε ένα καινούριο πρόσωπο και με μια επαναληπτική διαδικασία καταφέρνει να φέρει το αρχικό σχήμα ακριβώς στην επιθυμητή θέση. Ο αλγόριθμος αυτός αν και καταφέρνει να βρει τη λύση δεν κερδίζει ούτε σε σφάλμα ούτε σε ταχύτητα. Η επόμενη οικογένεια αλγορίθμων είναι οι cascade regressor αλγόριθμοι. Η κατηγορία αυτή είναι εμπνευσμένη από το δίδυμο που περιγράψαμε στην προηγούμενη παράγραφο. Χρησιμοποιούν απλά συστήματα για τη βελτίωση του σφάλματος σε τόσο μεγάλο βαθμό που καταφέρνουν να πετύχουν εξαιρετικά αποτελέσματα. Ο πρώτος αλγόριθμος είναι ο ESR ( Explicit Shape Regression) και ο διάδοχος του ERT ( Ensemble of Regression Trees). Οι αλγόριθμοι χρησιμοποιούν μια μέθοδο με 10 στάδια που κάθε στάδιο περιλαμβάνει 500 διαφορετικούς μικρούς ταξινομητές. Οι αλγόριθμοι αυτοί μοιάζουν πολύ, έχοντας όμως μια ουσιαστική διαφορά. Ο πρώτος χρησιμοποιεί fern ενώ ο δεύτερος tree regressors. Το ιδιαίτερο χαρακτηριστικό των fern είναι ότι κάνουν την ίδια ερώτηση σε κάθε επίπεδο του δέντρου. Περιληπτικά, οι αλγόριθμοι σε κάθε ένα από τα στάδια ελαχιστοποιούν το σφάλμα της αρχικής εκτίμησης που γίνεται. Τα πρώτα στάδια κάνουμε μεγάλες μετατοπίσεις ενώ τα τελευταία διορθώνουν με λεπτότητα τις λεπτομέρειες. Βάση χρόνου και ενδιαφέρουσας λογικής επιλέγουμε τον ERT για το δικό μας σύστημα.
Αναγνώριση Προσώπου
Το τελευταίο κεφάλαιο που ασχολείται με τη μηχανική όραση και τη θεωρία στο αντικείμενο αυτό είναι η αναγνώριση προσώπου. Εδώ διαλέξαμε 3 βασικές μεθόδους που έχουν χρησιμοποιηθεί αρκετά στο παρελθόν αλλά και την πλέον επικρατέστερη τα νευρωνικά δίκτυα. Αρχικά παρουσιάζουμε τον Eigenface που αξιοποιεί μια μέθοδο ανάλυσης δεδομένων ευρέως γνωστή την PCA (Principal Component Analysis). Σε αυτή την τεχνική συνθέτουμε τις εικόνες σε ένα πίνακα όπου κάθε πρόσωπο είναι ένα ξεχωριστό χαρακτηριστικό και βγάζουμε τις ιδιοτιμές και τα ιδιοδιανύσματα. Τα πιο σημαντικά ιδιοδιανύσματα αποτελούν τα πιο συχνά χαρακτηριστικά. Διαλέγουμε έναν αριθμό ιδιοδιανυσμάτων που ικανοποιεί την ακρίβεια. Μπορούμε εύκολα να ανάγουμε όλες τις εικόνες σε γραμμική σχέση με τα ιδιοδιανύσματα αυτά. Υπολογίζοντας τη γραμμική σχέση μπορούμε να πάρουμε μια καλή αναπαράσταση του προσώπου. Τα βάρη που χρησιμοποιούνται αποτελούν το feature vector και η διαδικασία της ταυτοποίησης τυποποιείται. Ο επόμενος αλγόριθμος ανήκει στην ίδια κατηγορία αφού αξιοποιεί και αυτός τη στατιστική ανάλυση των ιδιοτιμών και ιδιοδιανυσμάτων. Ο αλγόριθμος LDA (Linear Discriminant Analysis) δεν εφαρμόζει την ανάλυση αυτή απ’ ευθείας στις εικόνες, αντιθέτως σε ένα πίνακα που προσδιορίζεται από τη συσχέτιση μεταξύ των κλάσεων (διαφορετικών προσώπων) και τη συσχέτιση μέσα στις κλάσεις (ίδια πρόσωπα, άλλη εικόνα). Ο τελευταίος εκ των τριών είναι ένας αλγόριθμος που χρησιμοποιείται αρκετά στο πεδίο της μηχανικής όρασης. Ο λόγος για τον LBPH (Local Binary Pattern Histogram). Εδώ ο feature vector υπολογίζεται ως ένα σύνολο ιστογραμμάτων, τα οποία εξάγονται από την εικόνα για κάθε ένα pixel. Με σύγκριση της τιμής του στην γειτονική περιοχή υπολογίζεται ο αριθμός που κατηγοριοποιεί το συγκεκριμένο Pixel. Εφόσον εξαχθεί το απαιτούμενο χαρακτηριστικό διάνυσμα, το πρόσωπο κατηγοριοποιείται με βάση των προσώπων εκπαίδευσης. Τελευταία και πιο σημαντική, έρχεται μια καινούρια κατηγορία τα νευρωνικά δίκτυα. Αν και γνωστά από νωρίς να νευρωνικά δεν είχα μεγάλη απήχηση τα πρώτα χρόνια λόγω της υπολογιστική δύναμης και των δεδομένων που απαιτούν. Γίνεται εκτενή περιγραφή των πρώτων νευρωνικών και της βασικής αρχιτεκτονικής που έχει μείνει έως και σήμερα. Στη συνέχεια εξερευνούμε ένα νέο κομμάτι τα νευρωνικά δίκτυα στην μηχανική όραση. Τα λεγόμενα CNN (Convoluted Neural Network) έκαναν το επόμενο βήμα για την αναγνώριση προσώπου το 2012 με το περίφημο AlexNet. Το μοντέλο αυτό, που αναλύεται, κατάφερε να ελαττώσει το σφάλμα κατά 10,8% παραπάνω από το προηγούμενο κάτοχο του τίτλου στον διαγωνισμό ImageNet. Μια παραλλαγή του αλγορίθμου αυτού αξιοποιούμε και εμείς στην εφαρμογή μας. Για το λόγο αυτό στο παρών κεφάλαιο θα βρείτε λεπτομερή ανάλυση του CNN.
Blockchain
Σε αυτό το σημείο η ανάλυση για την αναγνώριση του προσώπου έχει τελειώσει. Τη σκυτάλη παίρνει μια καινούρια τεχνολογία βασισμένη στην ασφάλεια των υπολογιστών. Το περίφημο Bitcoin και η τεχνολογία που το υποστηρίζει το Blockchain. Το 2008 παρουσιάστηκε η πρώτη ιδέα και το 2009 το Bitcoin η πρώτη υλοποιημένη εφαρμογή. Βασική αρχή της εφαρμογής ήταν η απουσία της μέχρι τότε αναντικατάστατης κεντρικής αρχής που ρύθμιζε τη λογική πίσω από οποιαδήποτε εφαρμογή. Αυτό αντικαταστάθηκε με ένα σύνολο από πρωτόκολλα που επέτρεψαν σε ένα δίκτυο ομότιμων κόμβων να αλληλοεπιδρά με εγκυρότητα και αξιοπιστία. Το Blockchain αποτελούσε μια λίστα συνδεδεμένη με αποδείξεις για την εγκυρότητα των συναλλαγών στο δίκτυο αυτό. Όλοι έχουν πρόσβαση και μπορούν να τις επιβεβαιώσουν, αποκλείοντας την περίπτωση απάτης. Ο δρόμος είχε ανοίξει αλλά χρειαζόταν κάτι παραπάνω. Το 2014 γίνεται λόγος πρώτη φορά για τη δεύτερη μεγαλύτερη εφαρμογή στις τεχνολογίες αυτές, το Ethereum. Η βασική διαφορά τους είναι ότι το Ethereum δίνει τη μια γλώσσα προγραμματισμού η οποία επιτρέπει την αξιοποίηση του blockchain του Ethereum από άλλες εφαρμογές χωρίς την ανάγκη δημιουργίας εκ νέου. Στο κεφάλαιο αυτό αναλύονται κάποια από τα χαρακτηριστικά του δικτύου και τα πρωτόκολλα διανομής και διεύρυνσης του Blockchain.
Η εφαρμογή μας - Verifacion
Φτάσαμε μετά από ένα ενδιαφέρον μονοπάτι στην περιγραφή της εφαρμογής. Η εφαρμογή όπως αναφέραμε είναι ένα σύστημα πιστοποίησης λογαριασμού με τη χρήση αναγνώρισης προσώπου. Υπάρχουν δυο είδη χρηστών, οι απλοί χρήστες που θα αξιοποιήσουν την εφαρμογή για να εισέλθουν σε ένα σύστημα και οι κάτοχοι δικτυακών εφαρμογών που θα ενσωματώσουν την εφαρμογή μας στη δικιά τους. Το δικό μας σύστημα αποτελεί μια επέκταση στο χώρο των διαδικτυακών εφαρμογών. Οι υπηρεσίες που προσφέρονται σε έναν απλό χρήστη είναι δυο. Επίτηδες θελήσαμε ο αριθμός αυτός να είναι μικρός. Η πρώτη είναι η εγγραφή και η δεύτερη η είσοδος στο σύστημα. Και οι δυο εξυπηρετούνται με πάτημα ενός κουμπιού από ένα ξεχωριστό για την κάθε μια αναδυόμενο παράθυρο. Μια φωτογραφία και ένα όνομα χρήστη είναι όλα όσα χρειάζονται για να γραφτεί κανείς αλλά και για να εισέλθει στο σύστημα. Για τους ιδιοκτήτες άλλων εφαρμογών υπάρχουν δύο παράμετροι που πρέπει να καθορίσουν. Η πρώτη είναι η σελίδα επιτυχημένης πιστοποίησης στην οποία θα μεταφέρεται ο χρήστης. Η δεύτερη παράμετρος και πιο σημαντική είναι ο δείκτης αυστηρότητας της εφαρμογής. Για απλές εφαρμογές θα μπορούσε να είναι υψηλό το όριο διευκολύνοντας τους χρήστες, αφού θα γίνονται πιο εύκολα δεκτοί υπό διάφορες συνθήκες περιβάλλοντος. Αντίθετα σε ιδιαίτερα ευαίσθητα δεδομένα η είσοδος θα μπορούσε να δυσκολέψει τόσο ώστε η πιθανότητα λάθος να μηδενίζεται, αναγκάζοντας το χρήστη να προσέχει για διάφορες παραμέτρους κατά την είσοδο.
Η αρχιτεκτονική του συστήματος
Η αρχιτεκτονική του συστήματος χωρίζεται σε τρία αυτόνομα κατά κάποιο τρόπο μέρη. Το πρώτο είναι το server-side όπως το ονομάσαμε. Εκεί εξυπηρετείται ο χρήστης με δυο τρόπους. Στέλνεται μια φωτογραφία και εξάγονται τα χαρακτηριστικά. Εάν θέλουμε να κάνουμε εγγραφή τότε απλά μας επιστρέφει τα χαρακτηριστικά αυτά. Εάν θέλουμε να κάνουμε είσοδο στο σύστημα τότε πρέπει να του στείλουμε και τα προηγούμενα χαρακτηριστικά του αντίστοιχου username που βάζουμε για να μας απαντήσει με ένα ναι ή με ένα όχι. Η εξαγωγή των χαρακτηριστικών ακολουθεί τη διαδικασία των πρώτων 4 κεφαλαίων. Αρχικά εντοπίζεται το πρόσωπο, εξάγονται τα σημεία που μας ενδιαφέρουν, τροποποιούνται ώστε να είναι σε μια συγκεκριμένη μορφή και τροφοδοτούμε το πρόσωπο στο νευρωνικό δίκτυο. Το ειδικά επιλεγμένο δίκτυο μας βγάζει την αναπαράσταση που θέλουμε για το πρόσωπο. Το συγκεκριμένο νευρωνικό προορίζεται για συστήματα με χαμηλές δυνατότητες όπως κινητά, δίνοντας μας εξ’ αιτίας αυτού πάντα γρήγορα και φυσικά ακριβή αποτελέσματα.
Το δεύτερο μέρος είναι το κομμάτι που κάνει την εφαρμογή μας decentralized, το smart contract. Εκεί η λογική είναι αρκετά απλή. Αξιοποιούμε το δίκτυο σαν μια βάση δεδομένων. Χρησιμοποιούμε μια συνάρτηση για την οποία ο χρήστης πρέπει να πληρώσει κατά την εγγραφή. Στην συνάρτηση αυτή επιβεβαιώνεται ότι δεν θα γίνει διπλή εγγραφή στο ίδιο όνομα χρήστη. Κατά την ανάκτηση των δεδομένων όμως, δεν απαιτείται κανένα χρηματικό ποσό. Η εφαρμογή από την μεριά του απλού χρήστη είναι ένα έξοδο μιας φοράς. Απαιτείται όμως κάθε φορά σύνδεση με το δίκτυο το οποίο μπορεί να γίνει με εφαρμογές plugin στο φυλλομετρητή (Metamask).
Το τελευταίο κομμάτι είναι ο συνδετικός κρίκος μεταξύ των πρώτων δύο και είναι το λεγόμενο client-side. Το κομμάτι αυτό εκτελείται και εμφανίζεται κάθε φορά που ο χρήστης ανοίγει μια συμβεβλημένη εφαρμογή. Εκεί βρίσκεται η διαδικασία λήψης της φωτογραφίας, η επικοινωνία με τα άλλα μέρη και ο συντονισμός, κομμάτι ιδιαίτερα σημαντικό. Παράλληλα είναι υπεύθυνο το σημείο αυτό για την αλληλεπίδραση με το χρήστη, δηλαδή τη σωστή κατεύθυνση του και ενημέρωση σε περίπτωση σφαλμάτων.
Επίλογος Περίληψης
Στο σημείο αυτό θα θέλαμε να ευχαριστήσουμε τους αναγνώστες και να τους παροτρύνουμε να αναζητήσουν τα θέματα ενδιαφέροντος στα αντίστοιχα κεφάλαια για μια πιο αναλυτική προσέγγιση. Η ανάπτυξη της εφαρμογής Verifacion μας έδωσε την ευκαιρία να μάθουμε αναλυτικά και να κάνουμε πραγματικότητα μερικές από τις πιο ταχείες ανεπτυγμένες τεχνολογίες του σήμερα. Μέσα από τη διαδικασία αυτή αναλύθηκαν πολλές τεχνικές της μηχανικής μάθησης και ο σκοπός έχει επιτευχθεί σε έναν ικανοποιητικό βαθμό. Παράλληλα χτίσαμε μια εφαρμογή με ιδιαίτερα καλή απόκριση η οποία μας έδωσε κίνητρο για να γίνει πραγματική εφαρμογή.
|