Оглавление:
- Шаг 1: материалы
- Шаг 2. Аппаратное обеспечение - 3D-печать
- Шаг 3. Аппаратное обеспечение - электронные компоненты
- Шаг 4: Программное обеспечение
- Шаг 5: Программное обеспечение - Звук
- Шаг 6: Программное обеспечение - Обнаружение лица и речи
- Шаг 7: Программное обеспечение - вращающийся двигатель
- Шаг 8: Будущие улучшения
Видео: Система Camara с функцией распознавания говорящего (SPACS): 8 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:51
Представьте себе конференц-связь, в которой несколько выступающих окружают одну камеру. Мы часто сталкиваемся с тем, что ограниченный угол обзора камеры часто не позволяет взглянуть на говорящего. Это аппаратное ограничение значительно ухудшает взаимодействие с пользователем. Если камера может смотреть на активных выступающих, удаленная аудитория будет более вовлечена в разговор во время разговора. В этом проекте мы предлагаем (прототип) систему камеры, которая обнаруживает активного говорящего и следует за ним, поворачивая камеру к говорящему. В системе используется как визуальный, так и звуковой подход. Когда камера обнаруживает лица, она определяет говорящего и вычисляет угол поворота. Когда лица не обнаруживаются под текущим углом, система ищет говорящего на основе направления приходящих аудиосигналов.
Шаг 1: материалы
Adafruit Feather 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-принтере. Корпус состоит из двух основных компонентов; проигрыватель винила и подставка для смартфона. Мы использовали поворотный стол по этой ссылке (https://www.thingiverse.com/thing:141287), где он предоставляет корпус Arduino внизу и вращающийся стол, который можно соединить с серводвигателем. Мы использовали подставку для смартфона по этой ссылке (https://www.thingiverse.com/thing:2673050), которая складывается и регулируется по углу, что позволяет нам удобно откалибровать угол. На рисунке ниже показаны детали, напечатанные на 3D-принтере, собранные вместе.
Шаг 3. Аппаратное обеспечение - электронные компоненты
Есть четыре проводных компонента; Adafruit Feather, два микрофона и мотор. Для компактной упаковки мы спаяли (серые кружки) провода без использования макета. Ниже описывается принципиальная схема и собственно артефакт.
Шаг 4: Программное обеспечение
Наша система в первую очередь использует визуальную информацию от распознавания лиц, чтобы следить за говорящим, поскольку она более точна. Чтобы перо получало визуальную информацию из приложения для Android, мы используем Bluetooth Low Energy в качестве основного метода связи.
При обнаружении лица приложение вычисляет угол, на который двигатель должен повернуть, чтобы сфокусировать динамик в центре кадра. Мы разложили возможные сценарии и поступили следующим образом:
- Если лицо (а) обнаружено и говорит, он вычисляет среднюю точку динамиков и возвращает относительный угол в Feather.
- Если лицо (а) обнаружено, но никто из них не говорит, он также вычисляет среднюю точку лиц и возвращает угол соответственно.
- Если какое-либо лицо не обнаружено, система меняет логику слежения за говорящим с визуальной на звуковую.
Программное обеспечение SPACS находится по адресу
Шаг 5: Программное обеспечение - Звук
Звук (YH)
Чтобы определить источник входящего звука, мы сначала попытались использовать разницу во времени между двумя микрофонами. Но это было не так точно, как мы ожидали, поскольку частота дискретизации (~ 900 Гц) Arduino Leopard, где мы тестировали звуковые сигналы, была медленной, так что он не мог уловить разницу во времени между микрофонами, расположенными на расстоянии 10 см.
Мы изменили план, чтобы использовать разницу в интенсивности между двумя входными звуковыми сигналами. В результате перо принимает два звуковых сигнала и обрабатывает их, чтобы определить, откуда исходит звук. Обработку можно описать следующими этапами:
- Возьмите входы от двух микрофонов и вычтите смещение, чтобы получить амплитуды сигналов.
- Накопите абсолютные значения амплитуд на микрофон для 500 датчиков.
- Сохраните разницу накопленных значений в очереди, имеющей 5 слотов.
- Верните сумму очередей в качестве окончательного значения разницы.
- Сравните окончательное значение с порогами, чтобы решить, откуда исходит звук.
Мы нашли порог, построив окончательное значение при различных обстоятельствах, включая звук, исходящий слева и справа. Помимо пороговых значений для конечного значения, мы также устанавливаем еще один порог для среднего значения накопленных амплитуд на шаге 2, чтобы отфильтровать шумы.
Шаг 6: Программное обеспечение - Обнаружение лица и речи
Для распознавания лиц мы использовали ML Kit для Firebase, выпущенный Google (https://firebase.google.com/docs/ml-kit). ML Kit предоставляет API обнаружения лиц, который возвращает ограничивающую рамку каждого лица и его ориентиры, включая глаза, нос, уши, щеки и различные точки на рту. После обнаружения лиц приложение отслеживает движение рта, чтобы определить, говорит ли человек. Мы используем простой подход на основе пороговых значений, который обеспечивает надежную работу. Мы использовали тот факт, что движение рта увеличивается как по горизонтали, так и по вертикали, когда человек говорит. Мы вычисляем вертикальное и горизонтальное расстояние рта и вычисляем стандартное отклонение для каждого расстояния. Расстояние нормализовано по размеру лица. Большее стандартное отклонение означает говорение. Этот подход имеет ограничение, заключающееся в том, что каждое действие, связанное с движением рта, включая еду, питье или зевание, можно распознать как говорение. Но у него низкий уровень ложноотрицательных результатов.
Шаг 7: Программное обеспечение - вращающийся двигатель
Вращение двигателя оказалось не таким простым, как мы ожидали, из-за контроля скорости вращения. Чтобы контролировать скорость, мы объявляем глобальную переменную счетчика, которая позволяет двигателю вращаться только тогда, когда переменная достигает определенного значения. Мы также объявили еще одну глобальную переменную, указывающую, движется ли двигатель, чтобы сообщить микрофонам, чтобы они могли избежать звука, исходящего от вращения двигателя.
Шаг 8: Будущие улучшения
Одним из ограничений является то, что двигатель начинает раскачиваться под определенными углами. Кажется, что двигатель недостаточно мощный, чтобы преодолеть крутящий момент, создаваемый вращением смартфона. Это можно решить, используя более мощный двигатель или отрегулировав положение смартфона по направлению к центру вращения, чтобы уменьшить крутящий момент.
Обнаружение направления звука на основе звука можно улучшить с помощью более сложного метода. Мы хотели бы попробовать акустический метод формирования луча, чтобы определить направление входящего звука. Мы попробовали время прихода звуковых сигналов. Но частота дискретизации Feather ограничена для определения разницы во времени, когда микрофоны находятся всего на расстоянии около 10 см.
Последней недостающей частью этого прототипа является оценка удобства использования. Один из многообещающих способов оценки - интеграция системы с существующей платформой для видеозвонков и наблюдение за ответами пользователей. Эти ответы помогут улучшить систему и сделать следующую итерацию этого прототипа.
Рекомендуемые:
Фоторамка OSD с функцией распознавания лиц: 11 шагов (с изображениями)
Фоторамка OSD с функцией распознавания лиц: в этом руководстве показано, как создать фоторамку с отображением лица на экране (OSD). OSD может отображать время, погоду или другую информацию в Интернете по вашему желанию
IP-камера с функцией распознавания лиц с использованием платы ESP32-CAM: 5 шагов
IP-камера с функцией распознавания лиц с использованием платы ESP32-CAM: этот пост отличается от других, и мы рассмотрим очень интересную плату ESP32-CAM, которая на удивление дешева (менее 9 долларов США) и проста в использовании. Мы создаем простую IP-камеру, которую можно использовать для потоковой передачи видео в реальном времени с помощью 2
Музыкальный проигрыватель с функцией распознавания голоса CS122A: 7 шагов
Музыкальный проигрыватель с функцией распознавания голоса CS122A: это музыкальный проигрыватель с функцией распознавания голоса. Он может воспроизводить до 33 песен в зависимости от того, сколько названий песен и исполнителя вы храните
Система безопасности распознавания лиц для холодильника с Raspberry Pi: 7 шагов (с изображениями)
Система безопасности с распознаванием лиц для холодильника с Raspberry Pi: просматривая Интернет, я обнаружил, что цены на системы безопасности варьируются от 150 до 600 долларов и выше, но не все решения (даже очень дорогие) могут быть интегрированы с другими. умные инструменты у вас дома! Например, вы не можете установить
Управление роботом с функцией распознавания голоса: 7 шагов (с изображениями)
Робот-гид с функцией распознавания голоса: робот-гид - это мобильный робот, который мы создали, чтобы направлять посетителей на различные факультеты в кампусе нашего колледжа. Мы заставили его произносить несколько предопределенных утверждений и двигаться вперед и назад в соответствии с голосом ввода. В нашем колледже у нас есть т