Obsah:

Spark-Aware Camara System (SPACS): 8 kroků
Spark-Aware Camara System (SPACS): 8 kroků

Video: Spark-Aware Camara System (SPACS): 8 kroků

Video: Spark-Aware Camara System (SPACS): 8 kroků
Video: NEVYJÍMEJTE baterii z auta. Udělej to správně! 2024, Listopad
Anonim
Image
Image
Hardware - 3D tisk
Hardware - 3D tisk

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

Hardware - 3D tisk
Hardware - 3D tisk
Hardware - 3D tisk
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

Hardware - elektronické součástky
Hardware - elektronické součástky
Hardware - elektronické součástky
Hardware - elektronické součástky

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ě:

  1. Pokud jsou tváře rozpoznávány a mluví, vypočítá střed reproduktorů a vrátí relativní úhel Featherovi.
  2. Pokud jsou detekovány tváře a nikdo z nich nemluví, vypočítá také střed tváře a podle toho vrátí úhel.
  3. 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

Software - Zvuk
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:

  1. Vezměte vstupy ze dvou mikrofonů a odečtěte offset, abyste získali amplitudy signálů.
  2. Shromážděte absolutní hodnoty amplitud na MIC pro 500 snímačů.
  3. Rozdíl nahromaděných hodnot uložte do fronty s 5 sloty.
  4. Vraťte součet front jako konečnou hodnotu rozdílu.
  5. 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

Software - Rotující motor
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: