Cuprins:
- Pasul 1: Materiale
- Pasul 2: Hardware - Imprimare 3D
- Pasul 3: Hardware - Componente electronice
- Pasul 4: Software
- Pasul 5: Software - Sunet
- Pasul 6: Software - Detectarea feței și a vorbirii
- Pasul 7: Software - Motor rotativ
- Pasul 8: Îmbunătățiri viitoare
Video: Sistem Camara conștient de difuzor (SPACS): 8 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
Imaginați-vă o conferință în care mai multe difuzoare înconjoară o cameră. Ne întâlnim adesea în cazul în care unghiul limitat de vedere al unei camere nu reușește adesea să privească persoana care vorbește. Această limitare hardware degradează semnificativ experiența utilizatorului. Dacă camera poate privi difuzoarele active, publicul aflat la distanță ar fi mai implicat într-o conversație în timpul apelului. În acest proiect, propunem un sistem de camere (prototip) care detectează și urmărește difuzorul activ prin rotirea camerei spre difuzor. Sistemul folosește atât abordarea vizuală, cât și cea audio. Când fețele sunt detectate din cameră, aceasta determină persoana care vorbește și calculează unghiul de rotit. Când fețele nu sunt detectate la unghiul curent, sistemul caută difuzorul pe baza direcției semnalelor audio de sosire.
Pasul 1: Materiale
Adafruit Feather nRF52840 Express X 1
www.adafruit.com/product/4062
Amplificator de microfon Electret - MAX4466 X 2
www.adafruit.com/product/1063
Micro servomotor X 1
www.adafruit.com/product/169
Smartphone Android X 1
Pasul 2: Hardware - Imprimare 3D
Pentru o implementare rapidă, am decis să imprimăm 3D carcasele de care avem nevoie. Există două componente principale pentru carcase; un platan rotativ și un suport pentru smartphone. Am folosit platanul din acest link (https://www.thingiverse.com/thing:141287), unde oferă carcasa Arduino în partea de jos și o masă rotativă care poate fi conectată cu un servomotor. Am folosit un suport pentru smartphone de pe acest link (https://www.thingiverse.com/thing:2673050), care este pliabil și reglabil în unghi, astfel încât să ne permită calibrarea unghiului în mod convenabil. Figura de mai jos prezintă părțile imprimate 3D asamblate împreună.
Pasul 3: Hardware - Componente electronice
Există patru componente cablate; Adafruit Feather, două microfoane și un motor. Pentru ambalajul compact, am lipit firele (cercuri gri) fără a utiliza o placă de tratare. Mai jos descrie schema de circuit și artefactul real.
Pasul 4: Software
Sistemul nostru folosește în primul rând informațiile vizuale din recunoașterea feței pentru a urmări difuzorul, deoarece este mai precis. Pentru ca Feather să obțină informații vizuale din aplicația Android, folosim Bluetooth Low Energy ca metodă principală de comunicare.
Când este detectată orice față, aplicația calculează unghiul pe care motorul trebuie să îl rotească pentru a focaliza difuzorul în centrul cadrului. Am descompus scenariile posibile și ne-am ocupat de următoarele:
- Dacă fața (fețele) este detectată și vorbită, calculează punctul mediu al difuzoarelor și returnează unghiul relativ la Pene.
- Dacă sunt detectate fețe, dar niciuna nu vorbește, se calculează și punctul de mijloc al fețelor și returnează unghiul în consecință.
- Dacă nicio față nu este detectată, sistemul schimbă logica de urmărire a difuzoarelor de la vizual la audio.
Software-ul SPACS este situat la
Pasul 5: Software - Sunet
Sunet (YH)
Pentru a localiza sursa sunetului primit, am încercat mai întâi să folosim diferența de timp dintre cele două microfoane. Dar nu a fost exact atât cât ne-am așteptat, deoarece rata de eșantionare (~ 900Hz) a Arduino Leopard, unde am testat semnalele sonore, a fost lentă, astfel încât să nu poată prelua diferența de timp dintre microfoanele separate la 10 cm.
Am schimbat planul pentru a utiliza diferența de intensitate dintre cele două semnale sonore de intrare. Ca urmare, penei ia două semnale sonore și le procesează pentru a detecta de unde provenea sunetul. Prelucrarea poate fi descrisă prin următorii pași:
- Luați intrările de la două microfoane și scădeți offsetul pentru a obține amplitudinile semnalelor.
- Acumulați valorile absolute ale amplitudinilor per MIC pentru 500 de pickup-uri.
- Salvați diferența valorilor acumulate în coada cu 5 sloturi.
- Returnează suma cozilor ca valoare diferență finală.
- Comparați valoarea finală cu pragurile pentru a decide de unde provine sunetul.
Am găsit pragul trasând valoarea finală în diferite circumstanțe, inclusiv sunetul provenit din stânga și din dreapta. În plus față de pragurile pentru valoarea finală, am stabilit și un alt prag pentru media amplitudinilor acumulate în pasul 2 pentru a filtra zgomotele.
Pasul 6: Software - Detectarea feței și a vorbirii
Pentru recunoașterea feței, am folosit ML Kit pentru Firebase lansat de Google (https://firebase.google.com/docs/ml-kit). ML Kit oferă API-ul de detectare a feței care returnează cutia de delimitare a fiecărei fețe și reperele sale, inclusiv ochi, nas, urechi, obraji și diferite puncte de pe gură. Odată detectate fețele, aplicația urmărește mișcarea gurii pentru a determina dacă persoana vorbește. Folosim o abordare simplă bazată pe prag, care oferă performanțe fiabile. Am valorificat faptul că mișcarea gurii crește atât pe orizontală, cât și pe verticală atunci când o persoană vorbește. Calculăm distanța verticală și orizontală a gurii și calculăm abaterea standard pentru fiecare distanță. Distanța este normalizată la dimensiunea feței. Abaterea standard mai mare indică vorbirea. Această abordare are limitarea faptului că fiecare activitate implică mișcarea gurii, inclusiv mâncarea, băutura sau căscatul, pot fi recunoscute ca vorbind. Dar are o rată fals falsă negativă.
Pasul 7: Software - Motor rotativ
Rotația motorului nu a fost atât de simplă pe cât ne așteptam datorită controlului vitezei de rotație. Pentru a controla viteza, declarăm o variabilă globală de contor care permite motorului să se întoarcă numai atunci când variabila atinge o anumită valoare. De asemenea, am declarat o altă variabilă globală care indică dacă motorul se mișcă pentru a anunța microfoanele, astfel încât să poată evita sunetul provenit de la rotația motorului.
Pasul 8: Îmbunătățiri viitoare
Una dintre limitări este că motorul devine oscilant în anumite unghiuri. Se pare că motorul nu este suficient de puternic pentru a depăși cuplul generat de rotirea smartphone-ului. Poate fi rezolvat folosind un motor mai puternic sau reglând poziția smartphone-ului spre centrul rotației pentru a reduce cuplul.
Detectarea direcției sunetului bazată pe audio ar putea fi îmbunătățită cu o metodă mai sofisticată. Am dori să încercăm o abordare acustică de formare a fasciculului pentru a determina direcția sunetului primit. Am încercat cu momentul sosirii semnalelor audio. Dar, rata de eșantionare a Penei este limitată pentru a detecta diferența de timp când microfoanele sunt la doar 10 cm distanță.
Ultima piesă lipsă a acestui prototip este evaluarea utilizabilității. O modalitate promițătoare de evaluare este integrarea sistemului cu platforma de apel video existentă și observarea răspunsurilor utilizatorilor. Aceste răspunsuri vor ajuta la îmbunătățirea sistemului și la următoarea iterație a acestui prototip.
Recomandat:
Sistem de sortare a culorilor: Sistem bazat pe Arduino cu două centuri: 8 pași
Sistem de sortare a culorilor: Sistem pe bază de Arduino cu două benzi: Transportul și / sau ambalarea produselor și articolelor din domeniul industrial se face folosind linii realizate cu benzi transportoare. Aceste centuri ajută la mutarea articolului dintr-un punct în altul cu o viteză specifică. Unele sarcini de procesare sau identificare pot fi
Difuzor DIY Mai puțin difuzor LIFI: 6 pași
Difuzor DIY cu mai puține difuzoare LIFI: Astăzi, în acest instructiv vă voi arăta cum să faceți difuzorul LiFi, adică utilizează lumina pentru a transfera date. În mai puțin de 30 de minute. Acest instructable constă în detalii complete, cum ar fi procedura de proiectare, schema de circuit și descrierea
Difuzor Bluetooth Difuzor - Streaming Home Theatre: 8 pași (cu imagini)
Bluetooth Speaker Hack - Streaming Home Theatre: Acest instructabil detaliază hacking-ul unui difuzor Bluetooth și rafturi de ceai LED pâlpâitoare pentru a deveni front-end-ul pentru sistemul dvs. home theater, păstrând în același timp funcționalitatea originală a difuzorului Bluetooth. Am fost probabil
Difuzor Bluetooth Boombox / Difuzor: 6 pași
Difuzor Bluetooth Boombox / difuzor: Bună ziua! În acest Instructable vă voi arăta cum să vă construiți un Boombox Bluetooth
Transformați orice difuzor într-un difuzor Bluetooth: 4 pași
Transformați orice difuzor într-un difuzor Bluetooth: acum câțiva ani era obișnuit ca difuzoarele portabile să aibă mufă de 3,5 mm și să fie alimentate cu baterii AA. Conform standardelor actuale, este puțin depășit, mai ales bateria, deoarece în prezent fiecare gadget are o baterie reîncărcabilă. Mufa audio este st