Satura rādītājs:

Skaļruņiem zināma kameras sistēma (SPACS): 8 soļi
Skaļruņiem zināma kameras sistēma (SPACS): 8 soļi

Video: Skaļruņiem zināma kameras sistēma (SPACS): 8 soļi

Video: Skaļruņiem zināma kameras sistēma (SPACS): 8 soļi
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Novembris
Anonim
Image
Image
Aparatūra - 3D druka
Aparatūra - 3D druka

Iedomājieties konferences zvanu, kurā vienu skaļruni ieskauj vairāki skaļruņi. Mēs bieži sastopamies, kad kameras ierobežotais skata leņķis bieži vien nespēj paskatīties uz cilvēku, kurš runā. Šis aparatūras ierobežojums ievērojami pasliktina lietotāja pieredzi. Ja kamera var skatīties uz aktīvajiem skaļruņiem, zvana laikā attālā auditorija būtu vairāk iesaistīta sarunā. Šajā projektā mēs piedāvājam (prototipa) kameru sistēmu, kas nosaka un seko aktīvajam skaļrunim, pagriežot kameru pret skaļruni. Sistēma izmanto gan vizuālo, gan audio pieeju. Kad no kameras tiek atklātas sejas, tas nosaka personu, kas runā, un aprēķina pagriešanās leņķi. Ja sejas netiek noteiktas pašreizējā leņķī, sistēma meklē skaļruni, pamatojoties uz ierašanās audio signālu virzienu.

1. solis: materiāli

Adafruit Feather nRF52840 Express X 1

www.adafruit.com/product/4062

Elektreta mikrofona pastiprinātājs - MAX4466 X 2

www.adafruit.com/product/1063

Mikro servomotors X 1

www.adafruit.com/product/169

Android viedtālrunis X 1

2. darbība. Aparatūra - 3D drukāšana

Aparatūra - 3D druka
Aparatūra - 3D druka
Aparatūra - 3D druka
Aparatūra - 3D druka

Ātrai ieviešanai mēs nolēmām izdrukāt nepieciešamos korpusus 3D formātā. Korpusiem ir divas galvenās sastāvdaļas; pagrieziena galds un viedtālruņa statīvs. Mēs izmantojām pagrieziena galdu no šīs saites (https://www.thingiverse.com/thing:141287), kur tas nodrošina Arduino korpusu apakšā un rotējošu galdu, ko var savienot ar servomotoru. Mēs izmantojām viedtālruņa statīvu no šīs saites (https://www.thingiverse.com/thing:2673050), kas ir salokāms un regulējams leņķī, lai tas ļautu ērti kalibrēt leņķi. Zemāk redzamajā attēlā redzamas 3D drukātās detaļas, kas ir saliktas kopā.

3. darbība. Aparatūra - elektroniskie komponenti

Aparatūra - elektroniskie komponenti
Aparatūra - elektroniskie komponenti
Aparatūra - elektroniskie komponenti
Aparatūra - elektroniskie komponenti

Ir četri vadu komponenti; Adafruit Feather, divi mikrofoni un motors. Kompaktajam iepakojumam mēs lodējām (pelēkos apļus) vadus, neizmantojot maizes dēli. Zemāk ir aprakstīta shēma un faktiskais artefakts.

4. solis: programmatūra

Mūsu sistēma galvenokārt izmanto vizuālo informāciju no sejas atpazīšanas, lai sekotu runātājam, jo tā ir precīzāka. Lai Spalva iegūtu vizuālu informāciju no Android lietotnes, mēs izmantojam Bluetooth Low Energy kā galveno saziņas metodi.

Kad tiek atklāta jebkura seja, lietotne aprēķina leņķi, kas motoram jāpagriež, lai fokusētu skaļruni rāmja centrā. Mēs sadalījām iespējamos scenārijus un rīkojāmies šādi:

  1. Ja tiek atklāta seja (-s) un tā runā, tā aprēķina skaļruņu viduspunktu un atgriež relatīvo leņķi uz spalvu.
  2. Ja tiek atklāta (-as) seja (-as), bet neviena no tām nerunā, tā arī aprēķina seju viduspunktu un attiecīgi atgriež leņķi.
  3. Ja kāda seja netiek atklāta, sistēma maina skaļruņu izsekošanas loģiku no vizuālās uz audio.

SPACS programmatūra atrodas vietnē

5. solis: programmatūra - skaņa

Programmatūra - skaņa
Programmatūra - skaņa

Skaņa (YH)

Lai atrastu ienākošās skaņas avotu, vispirms mēģinājām izmantot laika starpību starp diviem mikrofoniem. Bet tas nebija tik precīzs, kā mēs gaidījām, jo Arduino Leopard paraugu ņemšanas ātrums (~ 900 Hz), kurā pārbaudījām skaņas signālus, bija lēns, tāpēc tas nevar uztvert laika starpību starp 10 cm attālumā esošiem mikrofoniem.

Mēs mainījām plānu, lai izmantotu intensitātes starpību starp abiem ieejas skaņas signāliem. Tā rezultātā spalva saņem divus skaņas signālus un apstrādā tos, lai noteiktu, no kurienes nāk skaņa. Apstrādi var aprakstīt, veicot šādas darbības:

  1. Paņemiet ieejas no diviem mikrofoniem un atņemiet nobīdi, lai iegūtu signālu amplitūdas.
  2. Uzkrājiet amplitūdas absolūtās vērtības uz vienu MIC 500 uztvērējiem.
  3. Saglabājiet uzkrāto vērtību starpību rindā, kurā ir 5 vietas.
  4. Atgrieziet rindu summu kā galīgo starpības vērtību.
  5. Salīdziniet galīgo vērtību ar sliekšņiem, lai izlemtu, no kurienes nāk skaņa.

Mēs atradām slieksni, uzzīmējot galīgo vērtību dažādos apstākļos, ieskaitot skaņu, kas nāk no kreisās un labās puses. Papildus galīgās vērtības sliekšņiem mēs arī 2. solī iestatījām citu slieksni uzkrāto amplitūdu vidējam līmenim, lai filtrētu trokšņus.

6. darbība. Programmatūra - sejas un runas noteikšana

Sejas atpazīšanai izmantojām Google izlaisto ML Kit for Firebase (https://firebase.google.com/docs/ml-kit). ML Kit nodrošina sejas noteikšanas API, kas atgriež katras sejas ierobežojošo lodziņu un tās orientierus, tostarp acis, degunu, ausis, vaigus un dažādus mutes punktus. Kad sejas ir noteiktas, lietotne izseko mutes kustību, lai noteiktu, vai persona runā. Mēs izmantojam vienkāršu, uz sliekšņiem balstītu pieeju, kas nodrošina uzticamu sniegumu. Mēs izmantojām faktu, ka, runājot, mutes kustība kļūst lielāka gan horizontāli, gan vertikāli. Mēs aprēķinām mutes vertikālo un horizontālo attālumu un aprēķinām standarta novirzi katram attālumam. Attālums tiek normalizēts atbilstoši sejas izmēram. Lielāka standarta novirze norāda uz runāšanu. Šai pieejai ir ierobežojums, ka katra darbība ietver mutes kustību, ieskaitot ēšanu, dzeršanu vai žāvāšanos, un to var atpazīt kā runājošu. Bet tam ir zems viltus negatīvs rādītājs.

7. solis: programmatūra - rotējošs motors

Programmatūra - rotējošs motors
Programmatūra - rotējošs motors

Motora rotācija nebija tik vienkārša, kā mēs gaidījām rotācijas ātruma kontroles dēļ. Lai kontrolētu ātrumu, mēs deklarējam globālu skaitītāja mainīgo, kas ļauj motoram griezties tikai tad, kad mainīgais sasniedz noteiktu vērtību. Mēs arī paziņojām par citu globālu mainīgo, kas norāda, vai motors pārvietojas, lai informētu mikrofonus, lai tas izvairītos no skaņas, kas nāk no motora rotācijas.

8. darbība. Turpmākie uzlabojumi

Viens no ierobežojumiem ir tas, ka motors kļūst svārstīgs noteiktos leņķos. Šķiet, ka motors nav pietiekami jaudīgs, lai pārvarētu griezes momentu, kas rodas, pagriežot viedtālruni. To var atrisināt, izmantojot jaudīgāku motoru vai pielāgojot viedtālruņa stāvokli rotācijas centra virzienā, lai samazinātu griezes momentu.

Uz skaņas balstītu skaņas virziena noteikšanu varētu uzlabot, izmantojot sarežģītāku metodi. Mēs vēlētos izmēģināt akustisko staru veidošanas pieeju, lai noteiktu ienākošās skaņas virzienu. Mēs esam mēģinājuši ar audio signālu ierašanās laiku. Tomēr spalvu paraugu ņemšanas ātrums ir ierobežots, lai noteiktu laika starpību, ja mikrofoni atrodas tikai aptuveni 10 cm attālumā.

Pēdējais trūkstošais šī prototipa elements ir lietojamības novērtējums. Viens daudzsološs novērtēšanas veids ir sistēmas integrēšana esošajā videozvanu platformā un lietotāju atsauksmju novērošana. Šīs atbildes palīdzēs uzlabot sistēmu un nākamo šī prototipa atkārtojumu.

Ieteicams: