Το Pictoblox μας προσφέρει πολλά πρόσθετα τα οποία δίνουν δυνατότητες τεχνητής νοημοσύνης στα έργα μας. Ένα από αυτά είναι το Face Detection το οποίο βασίζεται σε εκπαιδευμένα μοντέλα αναγνώρισης του προσώπου και των χαρακτηριστικών του. Σε αυτό το εργαστήριο θα δούμε πως μπορούμε να το αξιοποιήσουμε για να φτιάξουμε εντυπωσιακά έργα με πινελιές τεχνητής νοημοσύνης!
Τα βασικά
Αρχικά πάμε να δούμε πως μπορούμε να προσθέσουμε το πρόσθετο Face detection ώστε να χρησιμοποιήσουμε τις εντολές που μας προσφέρει.
Αριθμός προσώπων
Πάμε αρχικά να δούμε αν το Pictoblox μπορεί να αναγνωρίσει πόσα πρόσωπα βλέπει στην κάμερα. Αρχικά θα πρέπει να χρησιμοποιήσουμε τρεις εντολές οι οποίες ρυθμίζουν την συμπεριφορά του προσθέτου. Οι εντολές αυτές θα εκτελεστούν μόνο μία φορά και δεν χρειάζεται να είναι μέσα σε κάποια επανάληψη όπως το “Για πάντα”.
Η πρώτη εντολή ενεργοποιεί την κάμερα και ορίζει το ποσοστό διαφάνειας. Αυτό έχει νόημα όταν έχουμε και κάποια σκηνή στο Pictoblox με φόντο και θέλουμε να φαίνεται και αυτή. Όταν το ποσοστό είναι στο 0% φαίνεται μόνο η κάμερα, ενώ όσο προχωράμε προς το 100% η εικόνα της κάμερας σβήνει και φαίνεται κυρίως το φόντο της σκηνής. Στην δική μας περίπτωση αφήνω το ποσοστό σε 0%.
Η δεύτερη εντολή ενεργοποιεί ή απενεργοποιεί την εμφάνιση ενός πράσινου πλαισίου γύρω από τα πρόσωπα που αναγνωρίζει η κάμερα. Όταν έχουμε την κατάσταση show το πλαίσιο φαίνεται ενώ στο hide όχι. Συνήθως ορίζουμε αρχικά το πλαίσιο να φαίνεται ώστε και όταν πλέον έχουμε ολοκληρώσει το έργο μας και είμαστε σίγουροι για τα αποτελέσματα μπορούμε και να το κρύψουμε. Τέλος η τρίτη εντολή ορίζει το κατώφλι της αναγνώρισης.
Τώρα θα χρειαστώ να έχω μια επανάληψη στην οποία θα βάλω μόνο δύο εντολές. Θα χρειαστώ οπωσδήποτε κάθε φορά να ζητάω την ανάλυση της εικόνας από την κάμερα και μετά θα ζητάω από τον Tobi να μου πει πόσα πρόσωπα βλέπει. Θα χρησιμοποιήσω το get # faces μαζί με μερικές εντολές που ενώνουν κείμενα ώστε να φτιάξω ένα πιο όμορφο αποτέλεσμα.
Μπορείτε να κάνετε αλλαγές στο παραπάνω πρόγραμμα έτσι ώστε αν ο Tobi αναγνωρίζει μόνο ένα πρόσωπο να μας λέει την λέξη πρόσωπο και όχι πρόσωπα;
Αναγνώριση εκφράσεων προσώπου
Το πρόσθετο Face detection μας προσφέρει επίσης την δυνατότητα να αναγνωρίσουμε τις εκφράσεις των προσώπων. Είναι εκπαιδευμένο έτσι ώστε να αναγνωρίζει αν είμαστε θυμωμένοι, αηδιασμένοι, φοβισμένοι, χαρούμενοι, ουδέτεροι, λυπημένοι ή έκπληκτοι.
Οι αναγνώριση των εκφράσεων γίνεται με αγγλικές λέξεις και για αυτό θα χρησιμοποιήσουμε την μετάφραση για να βάλουμε τον Tobi να μας τα λέει στα ελληνικά.
Τώρα θα διορθώσουμε το σενάριο του Tobi ώστε να μαντεύει τι νιώθουμε. Θα χρειαστούμε την εντολή get expression of face 1 την οποία θα την μεταφράσουμε στα ελληνικά και θα την ενώσουμε με άλλο κείμενο.
Φίλτρα προσώπου
Το Face detection επίσης μπορεί να αναγνωρίσει την θέση του προσώπου μας στην κάμερα (άλλωστε φαίνεται και από το πράσινο περίγραμμα) καθώς και την θέση των ματιών μας, της μύτης μας, του στόματος μας. Αυτό είναι ιδιαίτερα χρήσιμο στην περίπτωση που θέλουμε να βάλουμε φίλτρα τα οποία ακολουθούν το πρόσωπο μας στην οθόνη.
Αυτός ο χαρακτήρας έχει πολλές ενδυμασίες όπως γυαλιά, στέμμα, μουστάκι κλπ. Εγώ θα επιλέξω το στέμμα και θα προσπαθήσω να το εμφανίζω πάντα πάνω στο κεφάλι μου.
Τώρα θα χρειαστεί να γράψω ένα σενάριο για τον χαρακτήρα Face filters. Δεν χρειάζεται να βάλω πάλι τις τρεις εντολές που έβαλα στον Tobi και αρχικοποιούν το Face detection και την κάμερα, ούτε χρειάζεται να καλώ ξανά την ανάλυση της εικόνας μέσα στο Για πάντα. Εδώ θα χρησιμοποιήσω απευθείας τις εντολές που ορίζουν την θέση x και y του στέμματος και θα επιλέγω να είναι η θέση x και y του προσώπου.
Στην περίπτωση που το φίλτρο που επιλέγω δεν πηγαίνει ακριβώς στην θέση που θέλω μπορώ να πειράξω λίγο τις θέσεις x και y προσθέτοντας ή αφαιρώντας κάποιες αποστάσεις. Στην δική μου περίπτωση όλα πήγαν καλά όσον αφορά την θέση αλλά παρατήρησα ότι το στέμμα δεν αλλάζει μέγεθος όταν εγώ μετακινώ το πρόσωπο μου κοντά ή μακριά από την κάμερα. Μένει πάντα στο ίδιο μέγεθος και αυτό δεν δείχνει πολύ ωραία. Για αυτό το λόγο προσθέτω άλλη μία εντολή. Θα ορίζω το μέγεθος του στέμματος ως εξής:
- Θα βρίσκω την διαφορά στην απόσταση μεταξύ των δυο ματιών (η οποία θα μου δίνει το πόσο κοντά είμαι στην κάμερα)
- και θα πολλαπλασιάζω το αποτέλεσμα με έναν αριθμό. Στην δική μου περίπτωση είδα ότι το 2.5 δίνει το καλύτερο αποτέλεσμα
Μπορείτε να δοκιμάσετε να προσθέσετε και ένα ζευγάρι γυαλιά στο πρόσωπο; Θα χρειαστείτε ακόμα έναν χαρακτήρα Face filters με τα δικά του σενάρια.
Αναγνώριση ατόμων
Το Face detection μας δίνει επίσης τη δυνατότητα να κάνουμε και την δική μας εκπαίδευση στο μοντέλο. Μπορούμε να το εκπαιδεύσουμε ώστε να αναγνωρίζει ποιος ή ποιοι φαίνονται κάθε φορά στην κάμερα.
Μπορείτε να διορθώσετε το πρόγραμμα ώστε να εκπαιδεύουμε την AI για περισσότερα άτομα; Θα χρειαστείτε ένα πλήκτρο για κάθε άτομο.