Mündəricat:

Dinamikdən xəbərdar kamera sistemi (SPACS): 8 addım
Dinamikdən xəbərdar kamera sistemi (SPACS): 8 addım

Video: Dinamikdən xəbərdar kamera sistemi (SPACS): 8 addım

Video: Dinamikdən xəbərdar kamera sistemi (SPACS): 8 addım
Video: САМАЯ МАЛЕНЬКАЯ КАМЕРА 2В1 | НОВИНКА 2024, Noyabr
Anonim
Image
Image
Avadanlıq - 3D çap
Avadanlıq - 3D çap

Birdən çox dinamikin bir kameranı əhatə etdiyi bir konfrans zəngi təsəvvür edin. Kameranın məhdud baxış bucağının danışan adama baxa bilməməsi ilə tez -tez qarşılaşırıq. Bu hardware məhdudiyyəti istifadəçi təcrübəsini əhəmiyyətli dərəcədə pisləşdirir. Kamera aktiv dinamiklərə baxa bilsəydi, uzaq auditoriya zəng əsnasında daha çox söhbətə girərdi. Bu layihədə, kameranı dinamikə doğru çevirərək aktiv spikeri aşkar edən və izləyən (prototip) kamera sistemi təklif edirik. Sistem həm vizual, həm də səs əsaslı bir yanaşma istifadə edir. Kameradan üzlər aşkar edildikdə danışan adamı təyin edir və dönmə bucağını hesablayır. Üzlər indiki açıda aşkar edilmədikdə, sistem səs siqnallarının gəliş istiqamətinə əsaslanaraq dinamiki axtarır.

Addım 1: Materiallar

Adafruit Lələk nRF52840 Express X 1

www.adafruit.com/product/4062

Elektret Mikrofon Gücləndiricisi - MAX4466 X 2

www.adafruit.com/product/1063

Mikro Servo Motor X 1

www.adafruit.com/product/169

Android smartfonu X 1

Addım 2: Avadanlıq - 3D Çap

Avadanlıq - 3D çap
Avadanlıq - 3D çap
Avadanlıq - 3D çap
Avadanlıq - 3D çap

Sürətli tətbiq üçün ehtiyac duyduğumuz korpusları 3D çap etməyə qərar verdik. Qutular üçün iki əsas komponent var; bir dönər masası və bir smartfon dayanacağı. Dönər masasını bu linkdən istifadə etdik (https://www.thingiverse.com/thing:141287), burada Arduino korpusunu və servo motorla bağlana bilən fırlanan bir masanı təmin edir. Bu bağlantıdan (https://www.thingiverse.com/thing:2673050) bir smartfon dayanacağı istifadə etdik ki, bucağı rahat şəkildə kalibr etməyimizə imkan verən qatlana bilən və bucaqla tənzimlənəndir. Aşağıdakı şəkil 3D çaplı hissələrin bir araya gətirildiyini göstərir.

Addım 3: Avadanlıq - Elektron Komponentlər

Avadanlıq - Elektron Komponentlər
Avadanlıq - Elektron Komponentlər
Avadanlıq - Elektron Komponentlər
Avadanlıq - Elektron Komponentlər

Dörd simli komponent var; Adafruit Lələk, iki mikrofon və bir motor. Kompakt qablaşdırma üçün telləri çörək taxtası istifadə etmədən lehimlədik (boz dairələr). Aşağıda dövrə diaqramı və faktiki artefakt təsvir edilmişdir.

Addım 4: Proqram təminatı

Sistemimiz daha dəqiq olduğu üçün spikeri izləmək üçün ilk növbədə üz tanıma vizual məlumatlarından istifadə edir. Tüyün Android tətbiqindən vizual məlumat əldə etməsi üçün əsas ünsiyyət üsulu olaraq Bluetooth Low Energy istifadə edirik.

Hər hansı bir üz aşkar edildikdə, tətbiq dinamikin çərçivənin mərkəzinə yönəldilməsi üçün motorun dönməsi lazım olan bucağı hesablayır. Mümkün ssenariləri ayırd etdik və aşağıdakı kimi işlətdik:

  1. Üz (lər) aşkar edilərsə və danışarsa, dinamiklərin orta nöqtəsini hesablayır və Tüyə nisbi bucağı qaytarır.
  2. Üz (lər) aşkarlansa və heç biri danışmırsa, üzlərin orta nöqtəsini də hesablayır və buna uyğun olaraq bucağı qaytarır.
  3. Hər hansı bir üz aşkar edilmədikdə, sistem dinamikin izləmə məntiqini vizualdan səsə dəyişir.

SPACS proqramı https://github.com/yhoonkim/cse599h-fp ünvanında yerləşir.

Addım 5: Proqram təminatı - Səs

Proqram təminatı - Səs
Proqram təminatı - Səs

Səs (YH)

Gələn səsin mənbəyini tapmaq üçün əvvəlcə iki mikrofon arasındakı vaxt fərqini istifadə etməyə çalışdıq. Səs siqnallarını sınaqdan keçirdiyimiz Arduino Leopard-ın nümunə götürmə sürəti (~ 900Hz) 10 sm aralı mikrofonlar arasındakı vaxt fərqini ala bilməyəcəyi üçün gözlədiyimiz qədər dəqiq deyildi.

İki giriş səs siqnalı arasındakı intensivlik fərqini istifadə etmək planını dəyişdirdik. Nəticədə, lələk iki səs siqnalı alır və səsin haradan gəldiyini aşkar etmək üçün işlədir. Emal aşağıdakı addımlarla təsvir edilə bilər:

  1. Girişləri iki mikrofondan götürün və siqnalların amplitüdünü əldə etmək üçün ofsetdən çıxarın.
  2. 500 pikap üçün MİK başına amplitüdlərin mütləq dəyərlərini yığın.
  3. Yığılmış dəyərlər arasındakı fərqi 5 yuvası olan növbəyə qeyd edin.
  4. Növbələrin cəmini son fərq dəyəri olaraq qaytarın.
  5. Səsin haradan gəldiyinə qərar vermək üçün son dəyəri eşiklərlə müqayisə edin.

Soldan və sağdan gələn səslər də daxil olmaqla müxtəlif şərtlərdə son dəyəri təyin edərək ərəfəni tapdıq. Yekun dəyərin eşiklərinin üzərinə, səsləri süzmək üçün 2 -ci addımdakı yığılmış amplitüdlərin ortalaması üçün başqa bir eşik təyin etdik.

Addım 6: Proqram təminatı - Üz və Danışıq Algılama

Üz tanıma üçün Google tərəfindən buraxılan Firebase üçün ML Kit istifadə etdik (https://firebase.google.com/docs/ml-kit). ML Kit, gözlər, burun, qulaqlar, yanaqlar və ağızdakı fərqli nöqtələr də daxil olmaqla hər bir üzün sərhəd nöqtəsini və əlamətlərini qaytaran üz tanıma API təmin edir. Üzlər aşkar edildikdən sonra, tətbiq danışanın olub olmadığını müəyyən etmək üçün ağız hərəkətini izləyir. Etibarlı performans təmin edən sadə bir eşik əsaslı yanaşmadan istifadə edirik. Bir adam danışanda ağız hərəkətinin həm üfüqi, həm də şaquli olaraq daha da genişləndiyini öyrəndik. Ağızın şaquli və üfüqi məsafəsini hesablayırıq və hər bir məsafə üçün standart sapmanı hesablayırıq. Məsafə üzün ölçüsünə görə normallaşdırılır. Daha böyük standart sapma danışmağı göstərir. Bu yanaşma, yemək, içmək və ya əsnəmək də daxil olmaqla, hər bir fəaliyyətin ağız hərəkətini əhatə etdiyini məhdudlaşdırır. Ancaq aşağı bir mənfi mənfi nisbət var.

Addım 7: Proqram - Fırlanan Motor

Proqram təminatı - fırlanan motor
Proqram təminatı - fırlanan motor

Fırlanma sürətinin idarə edilməsi səbəbindən motorun fırlanması gözlədiyimiz qədər sadə deyildi. Sürəti idarə etmək üçün, yalnız dəyişən müəyyən bir dəyərə çatdıqda mühərrikin dönməsinə imkan verən qlobal bir əks dəyişən elan edirik. Motorun fırlanmasından gələn səsin qarşısını almaq üçün motorun mikrofonları xəbərdar etmək üçün hərəkət etdiyini göstərən başqa bir qlobal dəyişən də elan etdik.

Addım 8: Gələcək Təkmilləşdirmələr

Məhdudiyyətlərdən biri də motorun müəyyən açılarda yellənməsidir. Göründüyü kimi, mühərrik smartfonun fırlanması nəticəsində yaranan torku aşa biləcək qədər güclü deyil. Daha güclü bir mühərrikdən istifadə etməklə və ya fırlanma momentini azaltmaq üçün smartfonun mövqeyini fırlanma mərkəzinə doğru tənzimləməklə həll etmək olar.

Səs əsaslı səs istiqaməti daha mürəkkəb bir üsulla təkmilləşdirilə bilər. Gələn səsin istiqamətini müəyyən etmək üçün akustik şüa düzəltmə yanaşmasını sınamaq istərdik. Səs siqnallarının gəlməsi vaxtı ilə çalışdıq. Lakin, Tüyün nümunə götürmə sürəti, mikrofonların yalnız 10 sm aralığında olduğu zaman fərqini aşkar etmək üçün məhduddur.

Bu prototipin son çatışmazlığı istifadə qabiliyyətinin qiymətləndirilməsidir. Qiymətləndirmənin perspektivli bir yolu, sistemi mövcud video zəng platforması ilə birləşdirmək və istifadəçilərin cavablarını müşahidə etməkdir. Bu cavablar sistemin təkmilləşdirilməsinə və bu prototipin növbəti təkrarlanmasına kömək edəcək.

Tövsiyə: