Aura Camera — наш открытый проект для видеозвонков в браузере. Расширение заменяет фон веб-камеры картинкой, размывает его или заливает цветом. Обработка выполняется на компьютере пользователя, а сайт продолжает работать с обычной камерой. Версию 0.4.2 мы опубликовали бесплатно с исходным кодом под лицензией MIT.
Задача
Пользователю нужен аккуратный фон на веб-встрече без настройки OBS, установки системного драйвера виртуальной камеры и выбора нового устройства на каждом сайте. При этом хочется управлять эффектом до звонка: посмотреть результат, выбрать алгоритм и снизить нагрузку, если компьютер не справляется.
Мы поставили проекту конкретные границы: расширение для настольного Chrome, работающее на страницах HTTP/HTTPS, включая Google Meet. Оно не должно обещать подмену камеры в отдельных приложениях и совместимость с любым сайтом. Установка должна оставаться воспроизводимой из открытого репозитория.
Решение
Мы сделали расширение Chrome, которое подключается к браузерному видеоконвейеру и отдаёт странице обработанные кадры от обычной камеры. Отдельного устройства «Aura Camera» в системе не появляется. В интерфейсе можно выбрать изображение, размытие или цвет; доступно восемь встроенных фонов и загрузка своей картинки.
Камеру можно проверить в предпросмотре до встречи. В расширении есть отдельные переключатели для обычных сайтов и Google Meet, настройки качества, режим нагрузки «Для звонка» и быстрый профиль Selfie. По умолчанию в версии 0.4.2 выбран SelfieMulticlass + RGB. Дополнительные алгоритмы RVM, MODNet и экспериментальную поправку глубины MiDaS пользователь загружает отдельно, если они нужны.
Как устроена обработка
Сегментационная модель строит маску человека. Затем локальный конвейер совмещает исходное изображение человека с выбранным фоном. Для уточнения контура используется RGB-фильтр на WebAssembly; предусмотрен JavaScript fallback. Опциональное антимерцание уменьшает небольшие колебания края между кадрами. Его силу можно снизить или выключить, если контур начинает запаздывать за движением.
Модели и библиотеки подготавливаются скриптом prepare.py. После первой загрузки они читаются из папки расширения. Для установки нужны настольный Chrome 119+ и Python 3.10+; Node.js, отдельная установка pip и сборка WASM пользователю не требуются. Расширение загружается в Chrome как распакованное.
Данные и границы приватности
Кадры и маски обрабатываются в памяти браузера и не отправляются на отдельный сервер Aura Camera. Настройки и выбранная пользователем картинка хранятся в локальном хранилище Chrome. При подготовке скрипт скачивает модели и библиотеки из внешних источников, но не передаёт им видео камеры.
Это не делает сам видеозвонок локальным: сайт получает итоговое видео по собственным правилам. Расширение также не служит защитой от злонамеренной страницы, которая может запросить камеру другим способом. Эти ограничения мы прямо описали в политике обработки данных.
Проверка и результат
Для версии 0.4.2 в репозитории опубликован отчёт о 227 пройденных автоматических проверках: логика, интерфейс, временная стабилизация маски, браузерный видеоконвейер, подготовка и обновление. Часть проверок использует синтетические кадры и контролируемые замены моделей. Это подтверждает проверенные сценарии кода, но не измеряет качество каждого реального звонка и не обещает определённый FPS на любом компьютере.
Результат проекта — публичная тестовая сборка Aura Camera 0.4.2 с исходным кодом, инструкцией установки, политикой данных, историей изменений и воспроизводимыми тестами. Пользователь может скачать её бесплатно, проверить фон до встречи и выбрать баланс качества и нагрузки под своё устройство.
Исходный код Aura Camera на GitHub · Пошаговая инструкция по установке