Мазмұны:

Камера-динамикадан хабардар жүйесі (SPACS): 8 қадам
Камера-динамикадан хабардар жүйесі (SPACS): 8 қадам

Бейне: Камера-динамикадан хабардар жүйесі (SPACS): 8 қадам

Бейне: Камера-динамикадан хабардар жүйесі (SPACS): 8 қадам
Бейне: Use Cases in UTXO DeFi / 1.10.2024 on Spaces (Chapters in Description) 2024, Қараша
Anonim
Image
Image
Аппараттық құрал - 3D басып шығару
Аппараттық құрал - 3D басып шығару

Бір камераны бірнеше динамик қоршап тұрған конференц -қоңырауды елестетіп көріңіз. Біз камераның шектеулі көру бұрышы сөйлейтін адамға қарамайтын жерде жиі кездесеміз. Бұл аппараттық шектеулер пайдаланушы тәжірибесін айтарлықтай төмендетеді. Егер камера белсенді динамиктерге қараса, алыстағы аудитория қоңырау кезінде сөйлесуге көбірек қатысады. Бұл жобада біз камераны динамикке қарай бұру арқылы белсенді динамикті анықтайтын және қадағалайтын (прототипті) камералық жүйені ұсынамыз. Жүйеде визуалды және дыбыстық әдістер қолданылады. Камерадан беттер анықталған кезде, ол сөйлейтін адамды анықтайды және бұрылу бұрышын есептейді. Беттер қазіргі бұрышта анықталмаған кезде, жүйе дыбыс сигналдарының келу бағытына қарай динамикті іздейді.

1 -қадам: материалдар

Adafruit қауырсыны nRF52840 Express X 1

www.adafruit.com/product/4062

Электрлік микрофон күшейткіші - MAX4466 X 2

www.adafruit.com/product/1063

Микросерво қозғалтқышы X 1

www.adafruit.com/product/169

Android смартфоны X 1

2 -қадам: Аппараттық құрал - 3D басып шығару

Аппараттық құрал - 3D басып шығару
Аппараттық құрал - 3D басып шығару
Аппараттық құрал - 3D басып шығару
Аппараттық құрал - 3D басып шығару

Жылдам жүзеге асыру үшін біз қажетті корпусты 3D басып шығаруды шештік. Қоршаудың екі негізгі компоненті бар; бұрылмалы табақ пен смартфонға арналған стенд. Біз бұл сілтемеден айналмалы табақты қолдандық (https://www.thingiverse.com/thing:141287), онда ол төменгі жағында Arduino корпусын және серво қозғалтқышымен қосылатын айналмалы үстелді қамтамасыз етеді. Біз бұл сілтемеден смартфон тіреуін қолдандық (https://www.thingiverse.com/thing:2673050), ол бұрышын ыңғайлы калибрлеуге мүмкіндік беретін, жиналмалы және бұрыштық реттелетін. Төмендегі суретте 3D басып шығарылған бөлшектер бірге жиналған.

3 -қадам: Аппараттық құралдар - электронды компоненттер

Аппараттық құралдар - электронды компоненттер
Аппараттық құралдар - электронды компоненттер
Аппараттық құралдар - электронды компоненттер
Аппараттық құралдар - электронды компоненттер

Сымды төрт компонент бар; Adafruit қауырсыны, екі микрофон және қозғалтқыш. Ықшам қаптама үшін біз сымды нан тақтасын пайдаланбай дәнекерледік (сұр шеңберлер). Төменде схема мен нақты артефакт сипатталған.

4 -қадам: Бағдарламалық қамтамасыз ету

Біздің жүйе, ең алдымен, динамикті қадағалау үшін бетті танудың визуалды ақпаратын пайдаланады, себебі ол дәлірек. Қауырсын Android қосымшасынан визуалды ақпарат алу үшін біз негізгі байланыс әдісі ретінде Bluetooth Low Energy қолданамыз.

Кез келген бет анықталған кезде, қолданба динамикті кадрдың ортасына бағыттау үшін қозғалтқыштың бұрылуы қажет бұрышты есептейді. Біз ықтимал сценарийлерді ажыратып, келесідей өңдедік:

  1. Егер бет (тер) анықталса және сөйлесе, ол динамиктердің ортаңғы нүктесін есептейді және қауырсынға қатысты бұрышты қайтарады.
  2. Егер бет (тер) анықталса, бірақ олардың ешқайсысы сөйлемесе, ол сонымен қатар беттердің ортаңғы нүктесін есептейді және сәйкесінше бұрышты қайтарады.
  3. Егер қандай да бір бет анықталмаса, жүйе динамикті бақылау логикасын визуалдыдан аудиоға өзгертеді.

SPACS бағдарламасы https://github.com/yhoonkim/cse599h-fp мекенжайында орналасқан.

5 -қадам: Бағдарламалық қамтамасыз ету - Дыбыс

Бағдарламалық қамтамасыз ету - Дыбыс
Бағдарламалық қамтамасыз ету - Дыбыс

Дыбыс (YH)

Кіретін дыбыстың көзін табу үшін біз алдымен екі микрофон арасындағы уақыт айырмасын қолдануға тырыстық. Бірақ бұл біз күткендей дәл болмады, өйткені біз дыбыстық сигналдарды тексерген Arduino Leopard үлгісін алу жылдамдығы (~ 900 Гц) бір-бірінен 10 см қашықтықтағы микрофондар арасындағы уақыт айырмашылығын қабылдай алмайтындай баяу болды.

Біз екі кіріс дыбыстық сигнал арасындағы қарқындылық айырмашылығын қолдану жоспарын өзгерттік. Нәтижесінде қауырсын екі дыбыстық сигналды қабылдайды және дыбыстың қайдан шыққанын анықтау үшін оларды өңдейді. Өңдеуді келесі қадамдармен сипаттауға болады:

  1. Сигналдардың амплитудасын алу үшін кірісті екі микрофоннан алыңыз және ығысуды алып тастаңыз.
  2. 500 пикапқа арналған MIC бойынша амплитудалардың абсолюттік мәндерін жинақтаңыз.
  3. Жиналған мәндердің айырмашылығын 5 ұясы бар кезекке сақтаңыз.
  4. Кезектің қосындысын соңғы айырмашылық мәні ретінде қайтарыңыз.
  5. Дыбыстың қайдан шыққанын анықтау үшін соңғы мәнді табалдырықтармен салыстырыңыз.

Біз шекті әр түрлі жағдайларда, соның ішінде оң мен сол жақтан шығатын дыбыстарды анықтау арқылы таптық. Қорытынды мәннің табалдырығының үстіне, біз 2 -қадамдағы жинақталған амплитудалардың орташа мәніне шуды сүзу үшін тағы бір шекті қойдық.

6 -қадам: Бағдарламалық қамтамасыз ету - бет пен сөйлеуді анықтау

Бетті тану үшін біз Google шығарған Firebase үшін ML Kit қолдандық (https://firebase.google.com/docs/ml-kit). ML Kit әр тұлғаның шектеу қорабын және оның белгілерін, соның ішінде көзді, мұрынды, құлақты, щектерді және аузындағы әр түрлі нүктелерді қайтаратын бетті анықтайтын API ұсынады. Беттер анықталғаннан кейін қолданба адамның сөйлеп тұрғанын анықтау үшін аузының қозғалысын бақылайды. Біз сенімді нәтиже беретін шекті деңгейге негізделген әдісті қолданамыз. Біз адам сөйлеген кезде ауыз қозғалысының көлденеңінен де, тігінен де үлкен болатынын білдік. Біз ауыздың тік және көлденең қашықтықтарын есептейміз және әр қашықтық үшін стандартты ауытқуды есептейміз. Беттің өлшеміне дейінгі қашықтық нормаланған. Үлкен стандартты ауытқу сөйлеуді білдіреді. Бұл тәсілде ауызша қозғалысты қамтитын әрбір әрекет, соның ішінде тамақтану, ішу немесе есіну сөйлеу деп танылуы мүмкін. Бірақ оның жалған теріс көрсеткіші төмен.

7 -қадам: Бағдарламалық қамтамасыз ету - айналмалы қозғалтқыш

Бағдарламалық қамтамасыз ету - айналмалы қозғалтқыш
Бағдарламалық қамтамасыз ету - айналмалы қозғалтқыш

Қозғалтқыштың айналу жылдамдығы бақылауға байланысты біз күткендей қарапайым болмады. Жылдамдықты бақылау үшін біз айнымалы мән белгілі бір мәнге жеткенде ғана қозғалтқыштың айналуына мүмкіндік беретін жаһандық есептегіш айнымалы деп жариялаймыз. Біз сондай -ақ қозғалтқыш микрофонға хабарлау үшін қозғалтқыштың қозғалатын -қозғалмайтынын көрсететін басқа да жаһандық айнымалыны жарияладық, ол қозғалтқыштың айналуынан келетін дыбысты болдыртпауы үшін.

8 -қадам: Болашақ жақсартулар

Шектеулердің бірі - қозғалтқыш белгілі бір бұрыштарда дірілдей бастайды. Қозғалтқыш смартфонды айналдыру кезінде пайда болатын моментті еңсеру үшін жеткілікті күшті емес сияқты. Бұл моментті азайту үшін неғұрлым қуатты қозғалтқышты пайдалану немесе смартфонның айналу ортасына қарай орналасуын реттеу арқылы шешілуі мүмкін.

Аудиоға негізделген дыбыс бағытын анықтауды неғұрлым күрделі әдіспен жақсартуға болады. Біз кіретін дыбыстың бағытын анықтау үшін акустикалық сәулелену әдісін қолданғымыз келеді. Біз дыбыстық сигналдардың келу уақытында тырыстық. Бірақ қауырсынның іріктеу жылдамдығы микрофондар тек 10см қашықтықта болған кездегі уақыт айырмашылығын анықтау үшін шектелген.

Бұл прототиптің соңғы жетіспеушілігі - пайдалану ыңғайлылығын бағалау. Бағалаудың перспективті әдістерінің бірі - бұл жүйені қолданыстағы бейнеқоңырау платформасымен біріктіру және пайдаланушылардың жауаптарын бақылау. Бұл жауаптар жүйені жақсартуға және осы прототиптің келесі қайталануын жасауға көмектеседі.

Ұсынылған: