TPU Google Coral USB: https://alii.pub/72qdvy?erid=2SDnjbqRmNK
TPU Google Coral M2 B+M и A+E: https://alii.pub/72qdzn?erid=2SDnjd1dCLB
В этой статье расскажу про то как настроить Frigate под работу с ускорителем TPU Google Coral.
Введение:
Frigate – это полноценный локальный сетевой видеорегистратор, разработанный для Home Assistant с обнаружением объектов AI. Использует OpenCV и Tensorflow для локального обнаружения объектов в реальном времени для IP-камер.
Я делал статью, про то, как установить Frigate в Home Assistant дополнением. И как его настроить. Её можно посмотреть тут:
В той статье была произведена настройка Frigate, а именно вычислений самим центральным процессором сервера. У меня этот процессор Intel Celeron N5105. Но процессор с такой задачей слабо справляется, у меня с одной камерой во время обнаружения объектов, процессор потребляет более 80% производительности.
И вот, чтоб таких проблем не было, существуют разные способы решения. Например есть специальная модель под названием OpenVino, которая заточена на работу с процессорами Intel и с ней гораздо меньше процессор нагружается.
Еще есть способ настройки вычислений на видеокарте, но в нашем случае её нет, по этому отставим этот вариант решения.
Так-же есть способ настройки вычислений на процессорах RK3588, именно на NPU части. Такие процессоры стоят в Orange pi 5 к примеру и я делал статью о том, как настроить Frigate именно на том процессоре:
Настройка работы Frigate на Orange pi 5 используя NPU процессор Rockchip RK3588
Ну и последний способ, который собственно в этой статье и будем описывать, это перенос вычислений на TPU акселератор Google Coral.
Даже сами Frigate рекомендуют Google Coral использовать, так как на обычном процессоре много камер не вытяниш.
Настройка Frigate:
За настройку того, на чем будут производиться вычисления. Этот блок под названием “detectors”. И Выглядеть настройка для Google coral USB будет в этом блоке следующим образом:
detectors:
coral:
type: edgetpu
device: usb
Путь к USB устройству указывать не надо, просто вставили его в USB порт, если на proxmox это делаете, то USB прокинули до виртуалки, а Frigate сам найдёт это USB устройство. Ну а остальные настройки которые у Вас были, остаются без изменений, но теперь процессор прям разгрузится. У меня с 80% упал до 40%.
Причем распознавание было во время того, как шёл снег и там много объектов, что явно давало нагрузку на вычисления.
И самое главное, что когда будете подключать вторую камеру, третью, четвертую, то процессор больше нагружаться не будет, вся эта нагрузка будет идти на TPU.
Это что касается настройки USB версии Google Coral, но есть же еще pci версия.
Причем PCI версия дешевле гораздо и её даже приятнее использовать, так как ничего лишнего не торчит. Плата такой же вычислительной мощностью в 4 TOPs.
Есть Варианты для подключения к шине M2 с ключем B+M и с ключем A+E, по этому на это стоит обращать внимание при покупке, чтоб понимать какой ключ у Вас в материнской плате, а то придётся переходники городить.
Для PCI версии блок “detectors” выглядит следующим образом:
detectors:
coral:
type: edgetpu
device: pci
Ну и по сути все будет работать так-же. Если это в proxmox, то тоже надо пробросить устройство pci.