С развитием технологий умного дома все больше пользователей стремятся расширить возможности своих систем видеонаблюдения, делая их более интеллектуальными и эффективными. Одним из лучших решений для записи и распознавания объектов на видеофидах является открытая платформа Frigate NVR, которая предлагает поддержку локального анализа видеопотока с использованием нейросетей. Особенно полезным дополнением к такой системе становится аппаратный ускоритель Coral TPU (Tensor Processing Unit) от Google, позволяющий значительно повысить скорость обработки видео и снизить нагрузку на процессор. В статье рассматривается практический опыт установки и настройки Coral TPU в домашний NVR на базе ProxMox LXC с использованием Frigate. Автор делится личными наблюдениями и техническими нюансами, начиная от выбора версии Coral TPU, заканчивая интеграцией устройства в среду контейнеров и оптимизацией конфигурации Frigate.
Выбор и покупка Coral TPU Coral TPU представлен несколькими вариантами исполнения, включая USB-устройства и PCIe-карты. Автор сделал выбор в пользу модуля с интерфейсом M.2, так как в его домашнем сервере NAS была свободная соответствующая слот-площадка. Такой вариант удобен для интеграции и занимает минимум места, однако требует установки соответствующих драйверов и поддержки со стороны операционной системы. Ценовой вопрос также остаётся важным — несмотря на предложения в интернет-магазинах по цене около 150 канадских долларов, официальный поставщик через сайт производителя предлагает устройство за значительно меньшую сумму — порядка 40 долларов плюс налоги и доставка.
Установка устройства и драйверов После физической установки модуля Coral TPU в слот M.2 возникла проблема распознавания оборудования системой, что обусловлено отсутствием поддержки драйверов для используемой версии ядра Linux (в данном случае 6.8.x). Стандартные репозитарии и пакеты от Coral оказались несовместимы с последним ядром, поэтому был предпринят шаг по сборке драйверов вручную.
Для этого скачивается исходный код с официального репозитория Google на GitHub. Затем с помощью специальных инструментов сборки и установки пакетов deb выполняется установка модуля gasket-dkms, оптимизированного под конкретное ядро. После перезагрузки ОС проверяется присутствие модуля в списке загруженных драйверов и доступности устройства /dev/apex_0. Следует заметить, что M.2 слот, использующий всего одну линию PCIe, скорее всего, ограничивает использование только одного TPU.
Хотя аппаратно устройство оснащено двумя TPUs, возможности материнской платы или BIOS могут не позволять полноценно использовать оба ядра параллельно. Этот момент стоит учитывать при планировании аппаратных ресурсов. Влияние на конфигурацию PCI устройств Инсталляция нового PCIe-устройства повлекла смещение номеров других PCI устройств, что стало причиной необходимости ручной перенастройки проброса нужных устройств в виртуальные машины. В данном случае для TrueNAS VM изменились адреса, что подчеркивает важность тщательного контроля идентификаторов PCI при работе с несколькими аппаратными компонентами. Установка Frigate и настройка контейнера Для запуска Frigate на ProxMox используется утилита Frigate Install Helper, которая облегчает процесс развертывания.
Однако ключевым моментом для использования TPU становится проброс устройства из хоста в контейнер LXC. Для этого нужно вручную отредактировать конфигурационный файл контейнера, добавив разрешения для устройства с соответствующими major и minor номерами (в случае /dev/apex_0 — 120 и 0). Также обеспечивается монтирование устройства внутрь контейнера с параметрами bind. Особое внимание надо уделить группе пользователей, которая будет иметь доступ к TPU. На хосте создаётся группа apex, а нужные пользователи получают к ней доступ.
Аналогично добавление группы apex в контейнер и включение в неё пользователей root и frigate способствует корректной работе приложения с устройством без проблем с правами доступа. Оптимизация конфигурации Frigate Фреймворк Frigate по умолчанию использует детектор на базе процессора, который при высокой нагрузке вызывает существенное использование CPU (до 70% и более). Чтобы снизить нагрузку и ускорить распознавание, стоит переключить детектор на использование TPU. Для этого в конфигурации Frigate изменяют раздел detectors, задавая тип edgetpu и указывая устройство pci. После применения обновлённой конфигурации потребление процессорных ресурсов резко падает, а скорость обнаружения объектов на видео увеличивается.
Практическое использование и тёплые наблюдения Даже при отсутствии активных видеопотоков TPU поддерживает температуру примерно 50 градусов по Цельсию, что требует внимания к охлаждению системы NAS. В перспективе можно рассмотреть использование второго M.2 слота для подключения второго TPU, если аппаратные возможности позволят — это должно повысить пропускную способность и производительность. Немаловажным шагом остаётся интеграция Frigate с домашней автоматизацией, например, HomeAssistant, что позволит получать уведомления, записывать отчеты и эффективно управлять системой безопасности. Выводы и советы Интеграция Coral TPU в домашний NVR на базе ProxMox и Frigate — задача реалистичная и доступная энтузиастам, готовым разбираться с драйверами и настройками контейнеров.
Такой подход значительно повышает качество распознавания объектов, снижает нагрузку на центральный процессор и позволяет создавать по-настоящему интеллектуальные системы видеонаблюдения. При выборе TPU рекомендуется обратить внимание на версию устройства и способы его подключения, а также заранее проверить совместимость драйверов с вашей версией ядра Linux. Необходимо учитывать особенности маршрутизации PCIe слотами материнской платы, чтобы оптимально задействовать все аппаратные ресурсы. В конечном итоге, грамотное сочетание компактного и мощного Coral TPU с функциональным ПО Frigate обеспечит современную, эффективную и удобную систему наблюдения для дома или небольшого офиса.