Πίνακας περιεχομένων:

Σύστημα Camara που γνωρίζει ηχεία (SPACS): 8 βήματα
Σύστημα Camara που γνωρίζει ηχεία (SPACS): 8 βήματα

Βίντεο: Σύστημα Camara που γνωρίζει ηχεία (SPACS): 8 βήματα

Βίντεο: Σύστημα Camara που γνωρίζει ηχεία (SPACS): 8 βήματα
Βίντεο: Η ΣΙΝΤΕΡΕΛΑ ΚΑΝΕΙ ΤΑΤΟΥ ΣΕ ΚΡΥΦΟ ΣΗΜΕΙΟ 2024, Νοέμβριος
Anonim
Image
Image
Υλικό - τρισδιάστατη εκτύπωση
Υλικό - τρισδιάστατη εκτύπωση

Φανταστείτε μια κλήση συνδιάσκεψης όπου πολλά ηχεία περιβάλλουν μία κάμερα. Συχνά συναντάμε όπου η περιορισμένη γωνία θέασης μιας φωτογραφικής μηχανής συχνά αποτυγχάνει να κοιτάξει το άτομο που μιλά. Αυτός ο περιορισμός υλικού υποβαθμίζει σημαντικά την εμπειρία του χρήστη. Εάν η κάμερα μπορεί να κοιτάξει ενεργά ηχεία, το απομακρυσμένο κοινό θα συμμετείχε περισσότερο σε μια συνομιλία κατά τη διάρκεια της κλήσης. Σε αυτό το έργο, προτείνουμε ένα (πρωτότυπο) σύστημα κάμερας που ανιχνεύει και ακολουθεί το ενεργό ηχείο στρέφοντας την κάμερα προς το ηχείο. Το σύστημα χρησιμοποιεί τόσο οπτική όσο και ηχητική προσέγγιση. Όταν εντοπίζονται πρόσωπα από την κάμερα, καθορίζει το άτομο που μιλά και υπολογίζει τη γωνία περιστροφής. Όταν οι όψεις δεν ανιχνεύονται στην τρέχουσα γωνία, το σύστημα αναζητά το ηχείο με βάση την κατεύθυνση των ηχητικών σημάτων άφιξης.

Βήμα 1: Υλικά

Adafruit Feather nRF52840 Express X 1

www.adafruit.com/product/4062

Ηλεκτρονικός ενισχυτής μικροφώνου - MAX4466 X 2

www.adafruit.com/product/1063

Micro Servo Motor X 1

www.adafruit.com/product/169

Smartphone Android X 1

Βήμα 2: Υλικό - τρισδιάστατη εκτύπωση

Υλικό - τρισδιάστατη εκτύπωση
Υλικό - τρισδιάστατη εκτύπωση
Υλικό - τρισδιάστατη εκτύπωση
Υλικό - τρισδιάστατη εκτύπωση

Για γρήγορη εφαρμογή, αποφασίσαμε να εκτυπώσουμε 3D τα περιβλήματα που χρειαζόμαστε. Υπάρχουν δύο κύρια στοιχεία για περιβλήματα. ένα πικάπ και μια βάση για smartphone. Χρησιμοποιήσαμε το πικάπ από αυτόν τον σύνδεσμο (https://www.thingiverse.com/thing:141287), όπου παρέχει θήκη Arduino στο κάτω μέρος και περιστρεφόμενο τραπέζι που μπορεί να συνδεθεί με σερβοκινητήρα. Χρησιμοποιήσαμε μια βάση για smartphone από αυτόν τον σύνδεσμο (https://www.thingiverse.com/thing:2673050), η οποία είναι αναδιπλούμενη και ρυθμιζόμενη από γωνία έτσι ώστε να μας επιτρέπει να βαθμονομήσουμε τη γωνία με βολικό τρόπο. Το παρακάτω σχήμα δείχνει τα τρισδιάστατα τυπωμένα μέρη συναρμολογημένα μεταξύ τους.

Βήμα 3: Υλικό - Ηλεκτρονικά εξαρτήματα

Υλικό - Ηλεκτρονικά εξαρτήματα
Υλικό - Ηλεκτρονικά εξαρτήματα
Υλικό - Ηλεκτρονικά εξαρτήματα
Υλικό - Ηλεκτρονικά εξαρτήματα

Υπάρχουν τέσσερα ενσύρματα εξαρτήματα. Φτερό Adafruit, δύο μικρόφωνα και ένα μοτέρ. Για τη συμπαγή συσκευασία, κολλήσαμε (γκρι κύκλους) τα καλώδια χωρίς να χρησιμοποιήσουμε σανίδα ψωμιού. Παρακάτω περιγράφεται το διάγραμμα κυκλώματος και το πραγματικό τεχνούργημα.

Βήμα 4: Λογισμικό

Το σύστημά μας χρησιμοποιεί κυρίως τις οπτικές πληροφορίες από την αναγνώριση προσώπου για να ακολουθήσει το ηχείο καθώς είναι πιο ακριβές. Προκειμένου το Feather να λάβει οπτικές πληροφορίες από την εφαρμογή Android, χρησιμοποιούμε το Bluetooth Low Energy ως κύρια μέθοδο επικοινωνίας.

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

  1. Εάν εντοπιστεί και μιλήσει πρόσωπο (ες), υπολογίζει το μεσαίο σημείο των ηχείων και επιστρέφει τη σχετική γωνία στο Φτερό.
  2. Αν ανιχνευτούν πρόσωπα και κανένα από αυτά δεν μιλάει, υπολογίζει επίσης το μέσο σημείο των όψεων και επιστρέφει ανάλογα τη γωνία.
  3. Εάν δεν εντοπιστεί κάποιο πρόσωπο, το σύστημα αλλάζει τη λογική παρακολούθησης ηχείων από οπτικό σε ήχο.

Το λογισμικό SPACS βρίσκεται στη διεύθυνση

Βήμα 5: Λογισμικό - oundχος

Λογισμικό - oundχος
Λογισμικό - oundχος

Sχος (YH)

Για να εντοπίσουμε την πηγή του εισερχόμενου ήχου, προσπαθήσαμε πρώτα να χρησιμοποιήσουμε τη διαφορά ώρας μεταξύ των δύο μικροφώνων. Αλλά δεν ήταν τόσο ακριβές όσο περιμέναμε αφού ο ρυθμός δειγματοληψίας (~ 900Hz) του Arduino Leopard, όπου δοκιμάσαμε τα ηχητικά σήματα, ήταν αργός, ώστε να μην μπορεί να πάρει τη διαφορά ώρας μεταξύ μικροφώνων 10 εκατοστών.

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

  1. Πάρτε τις εισόδους από δύο μικρόφωνα και αφαιρέστε τη μετατόπιση για να λάβετε τα πλάτη των σημάτων.
  2. Συγκεντρώστε τις απόλυτες τιμές των πλάτων ανά MIC για 500 pickup.
  3. Αποθηκεύστε τη διαφορά των συσσωρευμένων τιμών στην ουρά με 5 θέσεις.
  4. Επιστρέψτε το άθροισμα των ουρών ως τελική τιμή διαφοράς.
  5. Συγκρίνετε την τελική τιμή με τα κατώφλια για να αποφασίσετε από πού προέρχεται ο ήχος.

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

Βήμα 6: Λογισμικό - Ανίχνευση προσώπου και ομιλίας

Για την αναγνώριση προσώπου, χρησιμοποιήσαμε το ML Kit for Firebase που κυκλοφόρησε από την Google (https://firebase.google.com/docs/ml-kit). Το ML Kit παρέχει το API ανίχνευσης προσώπου που επιστρέφει το κουτί οριοθέτησης κάθε προσώπου και τα ορόσημά του, όπως μάτια, μύτη, αυτιά, μάγουλα και διαφορετικά σημεία στο στόμα. Μόλις εντοπιστούν πρόσωπα, η εφαρμογή παρακολουθεί την κίνηση του στόματος για να καθορίσει εάν το άτομο μιλά. Χρησιμοποιούμε μια απλή προσέγγιση βασισμένη σε κατώφλι, η οποία αποδίδει αξιόπιστη απόδοση. Αξιοποιήσαμε το γεγονός ότι η κίνηση του στόματος γίνεται μεγαλύτερη τόσο οριζόντια όσο και κάθετα όταν μιλάει ένα άτομο. Υπολογίζουμε την κάθετη και οριζόντια απόσταση του στόματος και υπολογίζουμε την τυπική απόκλιση για κάθε απόσταση. Η απόσταση ομαλοποιείται στο μέγεθος του προσώπου. Μεγαλύτερη τυπική απόκλιση υποδηλώνει ομιλία. Αυτή η προσέγγιση έχει τον περιορισμό ότι κάθε δραστηριότητα που περιλαμβάνει την κίνηση του στόματος, συμπεριλαμβανομένου του φαγητού, του ποτού ή του χασμουρητού, μπορεί να αναγνωριστεί ως ομιλία. Όμως, έχει χαμηλό ψευδώς αρνητικό ποσοστό.

Βήμα 7: Λογισμικό - Περιστρεφόμενος κινητήρας

Λογισμικό - Περιστρεφόμενος κινητήρας
Λογισμικό - Περιστρεφόμενος κινητήρας

Η περιστροφή του κινητήρα δεν ήταν τόσο απλή όσο περιμέναμε λόγω του ελέγχου της ταχύτητας περιστροφής. Για τον έλεγχο της ταχύτητας, δηλώνουμε μια γενική μεταβλητή μετρητή τέτοια που επιτρέπει στον κινητήρα να γυρίζει μόνο όταν η μεταβλητή φτάσει σε μια ορισμένη τιμή. Δηλώσαμε επίσης μια άλλη καθολική μεταβλητή που δείχνει εάν ο κινητήρας κινείται για να ενημερώσει τα μικρόφωνα, ώστε να αποφύγει τον ήχο που προέρχεται από την περιστροφή του κινητήρα.

Βήμα 8: Μελλοντικές βελτιώσεις

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

Η ανίχνευση κατεύθυνσης ήχου βάσει ήχου θα μπορούσε να βελτιωθεί με μια πιο εξελιγμένη μέθοδο. Θα θέλαμε να δοκιμάσουμε μια ακουστική προσέγγιση διαμόρφωσης δέσμης για να καθορίσουμε την κατεύθυνση του εισερχόμενου ήχου. Προσπαθήσαμε με την ώρα άφιξης των ηχητικών σημάτων. Αλλά, ο ρυθμός δειγματοληψίας του Φτερού είναι περιορισμένος για να ανιχνεύσει τη διαφορά ώρας όταν τα μικρόφωνα απέχουν μόνο περίπου 10 εκατοστά.

Το τελικό κομμάτι που λείπει από αυτό το πρωτότυπο είναι η αξιολόγηση της χρηστικότητας. Ένας πολλά υποσχόμενος τρόπος αξιολόγησης είναι η ενσωμάτωση του συστήματος με την υπάρχουσα πλατφόρμα βιντεοκλήσεων και η παρακολούθηση των απαντήσεων των χρηστών. Αυτές οι απαντήσεις θα βοηθήσουν στη βελτίωση του συστήματος και την επόμενη επανάληψη αυτού του πρωτοτύπου.

Συνιστάται: