Obsah:
- Krok 1: Materiály
- Krok 2: Hardware - 3D tisk
- Krok 3: Hardware - elektronické součásti
- Krok 4: Software
- Krok 5: Software - Zvuk
- Krok 6: Software - Detekce obličeje a mluvení
- Krok 7: Software - rotující motor
- Krok 8: Budoucí vylepšení
Video: Spark-Aware Camara System (SPACS): 8 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
Představte si konferenční hovor, kde je jedna kamera obklopena více reproduktory. Často se setkáváme tam, kde omezený úhel pohledu kamery často nedokáže pohlédnout na osobu, která mluví. Toto hardwarové omezení výrazně zhoršuje uživatelské prostředí. Pokud se kamera může dívat na aktivní reproduktory, vzdálené publikum by bylo během hovoru více zapojeno do konverzace. V tomto projektu navrhujeme (prototyp) kamerový systém, který detekuje a sleduje aktivní reproduktor otočením kamery směrem k reproduktoru. Systém využívá vizuální i zvukový přístup. Když jsou z kamery detekovány tváře, určí osobu, která mluví, a vypočítá úhel otočení. Pokud tváře nejsou detekovány v aktuálním úhlu, systém vyhledá reproduktor na základě směru příchozích zvukových signálů.
Krok 1: Materiály
Adafruit Feather nRF52840 Express X 1
www.adafruit.com/product/4062
Elektretový mikrofonní zesilovač - MAX4466 X 2
www.adafruit.com/product/1063
Mikro servomotor X 1
www.adafruit.com/product/169
Chytrý telefon Android X 1
Krok 2: Hardware - 3D tisk
Pro rychlou implementaci jsme se rozhodli vytisknout 3D skříně, které potřebujeme. Existují dvě hlavní součásti skříní; gramofon a stojan na smartphone. Použili jsme gramofon z tohoto odkazu (https://www.thingiverse.com/thing:141287), kde ve spodní části poskytuje pouzdro Arduino a otočný stůl, který lze připojit k servomotoru. Použili jsme stojan na smartphone z tohoto odkazu (https://www.thingiverse.com/thing:2673050), který je skládací a nastavitelný na úhel, takže nám umožňuje pohodlnou kalibraci úhlu. Níže uvedený obrázek ukazuje 3D tištěné součásti sestavené dohromady.
Krok 3: Hardware - elektronické součásti
K dispozici jsou čtyři drátové komponenty; Adafruit Feather, dva mikrofony a motor. U kompaktních obalů jsme pájili (šedé kruhy) vodiče bez použití prkénka. Níže je popsáno schéma zapojení a skutečný artefakt.
Krok 4: Software
Náš systém primárně využívá vizuální informace z rozpoznávání tváří k následování mluvčího, protože je přesnější. Aby Feather získal vizuální informace z aplikace pro Android, používáme Bluetooth Low Energy jako hlavní způsob komunikace.
Když je detekován jakýkoli obličej, aplikace vypočítá úhel, který musí motor otočit, aby zaostřil reproduktor na střed rámu. Rozložili jsme možné scénáře a postupovali jsme následovně:
- Pokud jsou tváře rozpoznávány a mluví, vypočítá střed reproduktorů a vrátí relativní úhel Featherovi.
- Pokud jsou detekovány tváře a nikdo z nich nemluví, vypočítá také střed tváře a podle toho vrátí úhel.
- Pokud není detekován žádný obličej, systém změní logiku sledování reproduktorů z vizuální na audio.
Software SPACS je umístěn na adrese
Krok 5: Software - Zvuk
Zvuk (YH)
Abychom našli zdroj příchozího zvuku, zkusili jsme nejprve použít časový rozdíl mezi těmito dvěma mikrofony. Nebylo to však tak přesné, jak jsme očekávali, protože vzorkovací frekvence (~ 900 Hz) Arduino Leopard, kde jsme testovali zvukové signály, byla pomalá, takže nemohla zachytit časový rozdíl mezi 10 cm vzdálenými mikrofony.
Změnili jsme plán, abychom použili rozdíl intenzity mezi dvěma vstupními zvukovými signály. V důsledku toho peří vezme dva zvukové signály a zpracuje je, aby zjistilo, odkud zvuk pochází. Zpracování lze popsat následujícími kroky:
- Vezměte vstupy ze dvou mikrofonů a odečtěte offset, abyste získali amplitudy signálů.
- Shromážděte absolutní hodnoty amplitud na MIC pro 500 snímačů.
- Rozdíl nahromaděných hodnot uložte do fronty s 5 sloty.
- Vraťte součet front jako konečnou hodnotu rozdílu.
- Porovnejte konečnou hodnotu s prahovými hodnotami a rozhodněte, odkud zvuk pochází.
Prah jsme našli vynesením konečné hodnoty za různých okolností, včetně zvuku přicházejícího zleva a zprava. Kromě prahů pro konečnou hodnotu jsme také nastavili další práh pro průměr akumulovaných amplitud v kroku 2, abychom filtrovali zvuky.
Krok 6: Software - Detekce obličeje a mluvení
Pro rozpoznávání obličejů jsme použili ML Kit pro Firebase vydaný společností Google (https://firebase.google.com/docs/ml-kit). ML Kit poskytuje API pro detekci obličeje, které vrací ohraničující rámeček každé tváře a její orientační body, včetně očí, nosu, uší, tváří a různých bodů na ústech. Jakmile jsou detekovány tváře, aplikace sleduje pohyb úst a určuje, zda osoba mluví. Používáme jednoduchý přístup založený na prahu, který poskytuje spolehlivý výkon. Využili jsme toho, že pohyb v ústech se zvětšuje jak horizontálně, tak vertikálně, když člověk mluví. Vypočítáme svislou a vodorovnou vzdálenost ústí a vypočítáme směrodatnou odchylku pro každou vzdálenost. Vzdálenost je normalizována podle velikosti obličeje. Větší standardní odchylka indikuje mluvení. Tento přístup má omezení, že každá aktivita zahrnuje pohyb úst, včetně jídla, pití nebo zívání, lze rozpoznat jako mluvení. Má však nízkou míru falešně negativních výsledků.
Krok 7: Software - rotující motor
Otáčení motoru nebylo tak jednoduché, jak jsme očekávali kvůli ovládání rychlosti otáčení. Abychom mohli řídit rychlost, deklarujeme globální proměnnou čítače, která umožňuje motoru otáčet se pouze tehdy, když proměnná dosáhne určité hodnoty. Také jsme deklarovali další globální proměnnou indikující, zda se motor pohybuje, abychom dali vědět mikrofonům, aby se mohla vyhnout zvuku přicházejícímu z otáčení motoru.
Krok 8: Budoucí vylepšení
Jedním z omezení je, že se motor v určitých úhlech kývá. Zdá se, že motor není dostatečně silný, aby překonal točivý moment generovaný otáčením smartphonu. Lze to vyřešit použitím silnějšího motoru nebo nastavením polohy smartphonu směrem ke středu otáčení, aby se snížil točivý moment.
Zvukovou detekci směru zvuku lze vylepšit sofistikovanější metodou. Chtěli bychom zkusit přístup akustického tvarování paprsků k určení směru příchozího zvuku. Zkoušeli jsme s časem příchodu zvukových signálů. Vzorkovací frekvence Feather je však omezena na detekci časového rozdílu, když jsou mikrofony vzdáleny pouze asi 10 cm.
Posledním chybějícím kusem tohoto prototypu je hodnocení použitelnosti. Jedním ze slibných způsobů vyhodnocení je integrace systému do stávající platformy pro videohovory a sledování reakcí uživatelů. Tyto odpovědi pomohou vylepšit systém a provést další iteraci tohoto prototypu.
Doporučuje:
Systém třídění barev: Systém založený na Arduinu se dvěma pásy: 8 kroků
Systém třídění barev: Systém založený na Arduinu se dvěma pásy: Přeprava a/nebo balení produktů a položek v průmyslové oblasti se provádí pomocí linek vyrobených pomocí dopravníkových pásů. Tyto pásy pomáhají přesouvat předmět z jednoho bodu do druhého určitou rychlostí. Některé úlohy zpracování nebo identifikace mohou být
Demo s velkým kondenzátorem Spark - nabíječka 170 V DC: 5 kroků
Ukázka velkého kondenzátoru Spark - nabíječka 170 V DC: Tento projekt má ukázat, co je to kondenzátor, a upoutat pozornost publika. Toto zařízení převádí 120 V AC na nabíjení velkého kondenzátoru na 170 V DC a umožňuje vám jeho vybití, produkující velkou jiskru a hlasitý hluk, v bezpečném
Spark Gap Tesla Coil: 14 kroků
Spark Gap Tesla Coil: Toto je návod, jak postavit Spark Gap Tesla Coil s oblečením do klece Faraday. Tento projekt mi a mému týmu (3 studenti) zabral 16 pracovních dnů, stojí kolem 500 USD, ujišťuji vás, že nebude to fungovat napoprvé :), nejdůležitější
HackerBox 0045: Spark Net: 10 kroků
HackerBox 0045: Spark Net: Zdravím hackery HackerBox po celém světě! S HackerBox 0045 experimentujeme s rádiovými transceivery Nordic nRF24, programujeme a propojujeme moduly Digispark Pro, servomotory s rádiovým propojením, detektory pohybu a mnoho dalšího. Th
Internetový zabezpečovací systém DSC Home Security System: 22 kroků
Internet povolen DSC Home Security System: Upravte stávající systém DSC Home Security tak, aby umožňoval internet a byl monitorován sám. Tento návod předpokládá, že máte fungující Raspberry Pi. Upozorňujeme, že tato implementace má následující nedostatky: Pokud zloděj přeruší přicházející kabel DSL