Innehållsförteckning:
- Steg 1: Material
- Steg 2: Hårdvara - 3D -utskrift
- Steg 3: Hårdvara - elektroniska komponenter
- Steg 4: Programvara
- Steg 5: Programvara - Ljud
- Steg 6: Programvara - Ansikts- och talande upptäckt
- Steg 7: Programvara - roterande motor
- Steg 8: Framtida förbättringar
Video: Speaker-Aware Camara System (SPACS): 8 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:44
Tänk dig ett konferenssamtal där flera högtalare omger en kamera. Vi möter ofta där den begränsade betraktningsvinkeln på en kamera ofta misslyckas med att titta på personen som talar. Denna maskinvarubegränsning försämrar användarupplevelsen avsevärt. Om kameran kan titta på aktiva högtalare, skulle den avlägsna publiken vara mer engagerad i en konversation under samtalet. I detta projekt föreslår vi ett (prototyp) kamerasystem som detekterar och följer den aktiva högtalaren genom att vrida kameran mot högtalaren. Systemet använder både visuellt och ljudbaserat tillvägagångssätt. När ansikten detekteras från kameran bestämmer den personen som talar och beräknar vinkeln att rotera. När ansikten inte detekteras i den aktuella vinkeln söker systemet efter högtalaren baserat på riktningen för ankomstljudsignalerna.
Steg 1: Material
Adafruit Feather nRF52840 Express X 1
www.adafruit.com/product/4062
Electret mikrofonförstärkare - MAX4466 X 2
www.adafruit.com/product/1063
Micro Servo Motor X 1
www.adafruit.com/product/169
Android smartphone X 1
Steg 2: Hårdvara - 3D -utskrift
För snabb implementering bestämde vi oss för att 3D-skriva ut de kapslingar vi behöver. Det finns två huvudkomponenter för kapslingar; en skivspelare och ett smarttelefonstativ. Vi använde skivspelaren från den här länken (https://www.thingiverse.com/thing:141287), där den har ett Arduino -fodral längst ner och ett roterande bord som kan anslutas med en servomotor. Vi använde ett smarttelefonstativ från den här länken (https://www.thingiverse.com/thing:2673050), som är vikbar och vinkeljusterbar så att vi kan kalibrera vinkeln bekvämt. Bilden nedan visar de 3D -tryckta delarna monterade ihop.
Steg 3: Hårdvara - elektroniska komponenter
Det finns fyra trådbundna komponenter; Adafruit Feather, två mikrofoner och en motor. För den kompakta förpackningen lödde vi (gråa cirklar) trådarna utan att använda en brödbräda. Nedan beskrivs kretsschemat och den faktiska artefakten.
Steg 4: Programvara
Vårt system använder främst den visuella informationen från ansiktsigenkänningen för att följa högtalaren eftersom den är mer exakt. För att fjädern ska få visuell information från Android -appen använder vi Bluetooth Low Energy som huvudkommunikationsmetod.
När något ansikte detekteras beräknar appen vinkeln som motorn behöver rotera för att fokusera högtalaren i bildens mitt. Vi sönderdelade de möjliga scenarierna och hanterade så här:
- Om ansikte / ansikten detekteras och talar beräknar det mittpunkten för högtalarna och returnerar den relativa vinkeln till fjädern.
- Om ansikte / ansikten upptäcks men ingen av dem talar beräknar det också mittpunkten för ansiktena och returnerar vinkeln därefter.
- Om något ansikte inte upptäcks ändrar systemet högtalarspårningslogiken från det visuella till ljudet.
SPACS-programvaran finns på
Steg 5: Programvara - Ljud
Ljud (YH)
För att hitta källan till inkommande ljud försökte vi först använda tidsskillnaden mellan de två mikrofonerna. Men det var inte exakt så mycket som vi förväntade oss eftersom samplingsfrekvensen (~ 900Hz) för Arduino Leopard, där vi testade ljudsignalerna, var långsam så att den inte kan ta upp tidsskillnaden mellan 10 cm-separata mikrofoner.
Vi ändrade planen för att använda intensitetsskillnaden mellan de två ingångssignalerna. Som ett resultat tar fjädern två ljudsignaler och bearbetar dem för att upptäcka var ljudet kom ifrån. Behandlingen kan beskrivas med följande steg:
- Ta ingångarna från två mikrofoner och subtrahera förskjutningen för att få signalernas amplituder.
- Ackumulera de absoluta värdena för amplituderna per MIC för 500 pickuper.
- Spara skillnaden mellan de ackumulerade värdena i kön med 5 platser.
- Returnera summan av köerna som det slutliga skillnadsvärdet.
- Jämför slutvärdet med trösklar för att avgöra var ljudet kommer ifrån.
Vi hittade tröskeln genom att rita det slutliga värdet under olika omständigheter, inklusive ljud som kommer från vänster och höger. Utöver trösklarna för det slutliga värdet sätter vi också en annan tröskel för medelvärdet för de ackumulerade amplituderna i steg 2 för att filtrera bort ljuden.
Steg 6: Programvara - Ansikts- och talande upptäckt
För ansiktsigenkänning använde vi ML Kit för Firebase som släpptes av Google (https://firebase.google.com/docs/ml-kit). ML Kit tillhandahåller ansiktsdetekterings -API som returnerar gränsytan för varje ansikte och dess landmärken, inklusive ögon, näsa, öron, kinder och olika punkter på en mun. När ansikten upptäcks spårar appen munrörelsen för att avgöra om personen talar. Vi använder en enkel tröskelbaserad metod som ger tillförlitlig prestanda. Vi utnyttjade det faktum att munrörelsen blir större både horisontellt och vertikalt när en person talar. Vi beräknar det vertikala och horisontella avståndet för munnen och beräknar standardavvikelsen för varje avstånd. Avståndet normaliseras till ansiktsstorleken. Större standardavvikelse indikerar tal. Detta tillvägagångssätt har begränsningen att varje aktivitet involverar munrörelsen, inklusive att äta, dricka eller gäspa, kan kännas igen som talande. Men den har en låg falsk negativ hastighet.
Steg 7: Programvara - roterande motor
Motorrotationen var inte så rak som vi förväntade oss på grund av kontrollen av rotationshastigheten. För att kontrollera hastigheten deklarerar vi en global motvariabel så att motorn bara kan rotera när variabeln når ett visst värde. Vi förklarade också en annan global variabel som indikerar om motorn rör sig för att meddela mikrofoner så att det kan undvika ljud från motorrotationen.
Steg 8: Framtida förbättringar
En av begränsningarna är att motorn blir vinglig i vissa vinklar. Det verkar som om motorn inte är tillräckligt kraftfull för att övervinna det vridmoment som genereras genom att rotera smarttelefonen. Det kan lösas genom att använda en kraftfullare motor eller justera smarttelefonens position mot rotationscentrum för att minska vridmomentet.
Ljudbaserad detektering av ljudriktning kan förbättras med en mer sofistikerad metod. Vi vill prova ett akustiskt strålformande tillvägagångssätt för att bestämma riktningen för det inkommande ljudet. Vi har försökt med ankomsttiden för ljudsignalerna. Men fjäderns samplingshastighet är begränsad för att upptäcka tidsskillnaden när mikrofonerna bara är cirka 10 cm bort.
Den sista saknade delen av denna prototyp är användbarhetsbedömningen. Ett lovande sätt att utvärdera är att integrera systemet med den befintliga videosamtalsplattformen och observera användarens svar. Dessa svar kommer att hjälpa till att förbättra systemet och göra nästa iteration av denna prototyp.
Rekommenderad:
Arduino Car Reverse Parking Alert System - Steg för steg: 4 steg
Arduino Car Reverse Parking Alert System | Steg för steg: I det här projektet kommer jag att utforma en enkel Arduino Car Reverse Parking Sensor Circuit med Arduino UNO och HC-SR04 Ultrasonic Sensor. Detta Arduino -baserade bilomvändningsvarningssystem kan användas för autonom navigering, robotavstånd och andra
Proyecto Museo De Herling Y Paula De La Cámara: 4 steg
Proyecto Museo De Herling Y Paula De La Cámara: En este proyecto vamos a relizar un museo, en el cual vamos ha programar varias alarmas para que salte cuando intenten robar la joya, tambien vamos a utilizar sensores de luz para que dectecten los distintos movimiento que intentiono robar la joya
Prototipo Deslizador Para Cámara Profesional DSLR: 6 steg
Prototipo Deslizador Para Cámara Profesional DSLR: El proyecto consiste en hacer un deslizador de cámara motorizado con cabezal de giro e inclinación. El proyecto es basado en arduino, construido con PLA y Aluminio, 3 motores a pasos, algunos botones y un joystick en una PCB diseñada a medida. El re
Reutilizar Vieja Cámara Digital: 7 steg
Reutilizar Vieja Cámara Digital: El prop ó sito de este instructable es: modificar una vieja c á mara que no utilizas.A ñ adir un bot ó no pulsador extra, con el que m á s adelante podr á s hacer time que har é .Tambi & ea
DIY Audio Speaker 2.1 System: 10 steg
DIY Audio Speaker 2.1 System: 4 månader sedan jag fick idén, lådorna är redo att dyka upp i min allra första instruerbara. Det började faktiskt med projektet eftersom befintlig (mycket billig) 5.1 -utrustning tyvärr sällan användes. För komplicerat med 2 fjärrkontroller etc. Förstärkaren