Obsah:

Reproduktorový systém Camara (SPACS): 8 krokov
Reproduktorový systém Camara (SPACS): 8 krokov

Video: Reproduktorový systém Camara (SPACS): 8 krokov

Video: Reproduktorový systém Camara (SPACS): 8 krokov
Video: Обзорная видеоинструкция по настройке видеорегистратора 2024, November
Anonim
Image
Image
Hardvér - 3D tlač
Hardvér - 3D tlač

Predstavte si konferenčný hovor, kde jednu kameru obklopuje viac reproduktorov. Často sa stretávame s tým, keď obmedzený uhol pohľadu kamery často nedokáže pozerať na osobu, ktorá hovorí. Toto hardvérové obmedzenie výrazne zhoršuje užívateľské prostredie. Ak sa kamera môže pozerať na aktívne reproduktory, vzdialené publikum by bolo počas hovoru viac zapojené do konverzácie. V tomto projekte navrhujeme (prototyp) kamerový systém, ktorý detekuje a sleduje aktívny reproduktor otočením kamery smerom k reproduktoru. Systém používa vizuálny aj zvukový prístup. Keď sú kamerou rozpoznané tváre, určí osoba, ktorá hovorí, a vypočíta uhol otočenia. Keď tváre nie sú rozpoznané v aktuálnom uhle, systém vyhľadá reproduktora podľa smeru prichádzajúcich zvukových signálov.

Krok 1: Materiály

Adafruitové perie nRF52840 Express X 1

www.adafruit.com/product/4062

Elektretový mikrofónny zosilňovač - MAX4466 X 2

www.adafruit.com/product/1063

Micro servomotor X 1

www.adafruit.com/product/169

Smartfón s Androidom X 1

Krok 2: Hardvér - 3D tlač

Hardvér - 3D tlač
Hardvér - 3D tlač
Hardvér - 3D tlač
Hardvér - 3D tlač

Aby bola implementácia rýchla, rozhodli sme sa vytlačiť prílohy, ktoré potrebujeme, 3D tlačou. Existujú dve hlavné súčasti puzdier; gramofón a stojan na smartfón. Použili sme gramofón z tohto odkazu (https://www.thingiverse.com/thing:141287), kde v spodnej časti poskytuje puzdro Arduino a otočný stôl, ktorý je možné spojiť so servomotorom. Použili sme stojan na smartfóny z tohto odkazu (https://www.thingiverse.com/thing:2673050), ktorý je skladací a nastaviteľný v uhloch, takže nám umožňuje pohodlnú kalibráciu uhla. Nasledujúci obrázok zobrazuje 3D tlačené diely zostavené dohromady.

Krok 3: Hardvér - elektronické súčiastky

Hardvér - elektronické súčiastky
Hardvér - elektronické súčiastky
Hardvér - elektronické súčiastky
Hardvér - elektronické súčiastky

Existujú štyri drôtové komponenty; Adafruit Feather, dva mikrofóny a motor. Pri kompaktnom obale sme spájkovali (sivé kruhy) drôty bez použitia breadboardu. Nasleduje popis schémy zapojenia a skutočného artefaktu.

Krok 4: Softvér

Náš systém predovšetkým používa vizuálne informácie z rozpoznávania tvárí na sledovanie rečníka, pretože sú presnejšie. Aby Feather získaval vizuálne informácie z aplikácie pre Android, používame ako hlavný spôsob komunikácie Bluetooth Low Energy.

Keď sa zistí akákoľvek tvár, aplikácia vypočíta uhol, ktorý musí motor otočiť, aby reproduktor zaostril na stred rámu. Rozložili sme možné scenáre a postupovali sme nasledovne:

  1. Ak je tvár rozpoznaná a hovorí, vypočíta stred reproduktorov a vráti relatívny uhol periu.
  2. Ak sú tváre rozpoznané, ale nikto z nich nehovorí, vypočíta tiež stred tvárí a podľa toho vráti uhol.
  3. Ak nie je rozpoznaná žiadna tvár, systém zmení logiku sledovania reproduktorov z vizuálnej na zvukovú.

Softvér SPACS sa nachádza na adrese

Krok 5: Softvér - zvuk

Softvér - Zvuk
Softvér - Zvuk

Zvuk (YH)

Aby sme lokalizovali zdroj prichádzajúceho zvuku, najskôr sme sa pokúsili využiť časový rozdiel medzi týmito dvoma mikrofónmi. Nebolo to však také presné, ako sme očakávali, pretože vzorkovacia frekvencia (~ 900 Hz) Arduino Leopard, kde sme testovali zvukové signály, bola pomalá, takže nedokázala zachytiť časový rozdiel medzi 10 cm mikrofónmi.

Zmenili sme plán tak, aby používal rozdiel v intenzite medzi dvoma vstupnými zvukovými signálmi. Výsledkom je, že perie zachytí dva zvukové signály a spracuje ich, aby zistilo, odkiaľ zvuk pochádza. Spracovanie je možné popísať nasledujúcimi krokmi:

  1. Zoberte vstupy z dvoch mikrofónov a odčítajte offset, aby ste získali amplitúdy signálov.
  2. Akumulujte absolútne hodnoty amplitúd na MIC pre 500 snímačov.
  3. Rozdiel nahromadených hodnôt uložte do frontu s 5 slotmi.
  4. Vráti súčet frontov ako konečnú hodnotu rozdielu.
  5. Porovnajte konečnú hodnotu s prahovými hodnotami a rozhodnite, odkiaľ zvuk pochádza.

Prah sme našli vynesením konečnej hodnoty za rôznych okolností vrátane zvuku prichádzajúceho zľava a sprava. Okrem prahov pre konečnú hodnotu sme tiež nastavili ďalší prah pre priemer akumulovaných amplitúd v kroku 2, aby sme filtrovali zvuky.

Krok 6: Software - Detekcia tváre a reči

Na rozpoznávanie tváre sme použili ML Kit pre Firebase vydaný spoločnosťou Google (https://firebase.google.com/docs/ml-kit). ML Kit poskytuje API na detekciu tváre, ktoré vracia ohraničujúci rámček každej tváre a jej orientačné body, vrátane očí, nosa, uší, líca a rôznych bodov na ústach. Akonáhle sú rozpoznané tváre, aplikácia sleduje pohyb úst a určuje, či daná osoba hovorí. Používame jednoduchý prístup založený na prahových hodnotách, ktorý prináša spoľahlivý výkon. Využili sme skutočnosť, že keď človek hovorí, pohyb v ústach sa zvyšuje horizontálne aj vertikálne. Vypočítame vertikálnu a horizontálnu vzdialenosť úst a vypočítame štandardnú odchýlku pre každú vzdialenosť. Vzdialenosť je normalizovaná podľa veľkosti tváre. Väčšia štandardná odchýlka naznačuje rozprávanie. Tento prístup má obmedzenie, že každú aktivitu, ktorá zahŕňa pohyb úst, vrátane jedenia, pitia alebo zívania, možno rozpoznať ako hovorenie. Má však nízku mieru falošne negatívnych výsledkov.

Krok 7: Software - rotujúci motor

Software - Rotujúci motor
Software - Rotujúci motor

Otáčanie motora nebolo také jednoduché, ako sme očakávali kvôli regulácii rýchlosti otáčania. Na ovládanie rýchlosti deklarujeme globálnu premennú počítadla takú, aby sa motor mohol otáčať iba vtedy, keď premenná dosiahne určitú hodnotu. Tiež sme deklarovali ďalšiu globálnu premennú, ktorá indikuje, či sa motor pohybuje, aby dala mikrofónom vedieť, aby sa mohla vyhnúť zvuku pochádzajúcemu z otáčania motora.

Krok 8: Budúce zlepšenia

Jedným z obmedzení je, že sa motor v určitých uhloch kýva. Zdá sa, že motor nie je dostatočne výkonný na to, aby prekonal krútiaci moment generovaný otáčaním smartfónu. Vyriešiť to možno výkonnejším motorom alebo nastavením polohy smartfónu smerom k stredu otáčania, aby sa znížil krútiaci moment.

Detekciu smeru zvuku založenú na zvuku je možné vylepšiť sofistikovanejšou metódou. Radi by sme vyskúšali prístup akustického tvarovania lúčov na určenie smeru prichádzajúceho zvuku. Skúsili sme s časom príchodu zvukových signálov. Vzorkovacia frekvencia peria je však obmedzená na detekciu časového rozdielu, keď sú mikrofóny vzdialené iba asi 10 cm.

Posledným chýbajúcim kusom tohto prototypu je vyhodnotenie použiteľnosti. Jeden sľubný spôsob hodnotenia je integrácia systému s existujúcou platformou videohovorov a sledovanie reakcií používateľov. Tieto reakcie pomôžu vylepšiť systém a urobiť ďalšiu iteráciu tohto prototypu.

Odporúča: