35

Подключение Frigate с использованием Coral TPU в HA

Серия HomeLab

В предыдущем посте внимательный @Machaeon, заметил у меня на фотке Coral USB Accelerator и спросил, как он. К тому времени я еще не успел его настроить, поэтому пообещал написать пост как разберусь. Не то что бы я полностью разобрался, но постараюсь в этой статье рассказать

- что такое система домашнего видеонаблюдения, какие они бывают
- как установить Frigate и подключить к нему Coral TPU
- как настроить распознавание лиц
- какие ошибки я сделал в процессе настройки своей системы видеонаблюдения

Первые ошибки.
Когда мы говорим про умный дом, часто имеем в виду лампочки, розетки или голосовых ассистентов. Но на самом деле важнейший элемент - это видеонаблюдение и аналитика. Первым моим решением (ошибочным) было купить камеру Aqara Camera E1.

Большую часть времени устройство провело в таком виде.

Большую часть времени устройство провело в таком виде.

Минусы aqara стали мне очевидны только после покупки:
- нет возможности подключения по кабелю (видеосигнал через вайфай не самое надежное решение)
- нет нормальной интеграции с Home Assistant так как RTSP поток на ней не доступен (на самом деле после пары часов плясок с бубном и чатом гпт через go2rtc/HomeBridge мне удалось заставить HA увидеть камеру, но это был опыт который я не могу рекомендовать начинающим)
- большинство интересных функций вроде обнаружения лиц, животных, пожара, машины, посылки - убрано в подписку HomeGuardian за 9.99 евро в месяц.

Мне хотелось другого:

  • хранить записи локально, на NAS (зря его что ли покупал)

  • получать уведомления о реальном движении, а не «порхающей мухи»

  • интегрировать камеры в Home Assistant

  • определять не просто событие "человек в комнате" - но и распознавать этого человека.

Решением стал связанный тандем: Frigate + Coral TPU.

Frigate — это NVR (система записи и аналитики IP-камер) с открытым исходным кодом, созданная специально под Home Assistant.

Основные возможности:

- подключение камер по RTSP,

- детекция объектов (люди, машины, животные),

- хранение записей только по событиям,

- интеграция через MQTT и Home Assistant API,

- поддержка аппаратных ускорителей (Coral TPU, GPU).

Coral Edge TPU — это аппаратный ускоритель от Google, оптимизированный для TensorFlow Lite моделей.

Выполняет до 4 трлн операций в секунду при очень низком энергопотреблении.

Да, вместо Frigate можно использовать MotionEye, Shinobi или Blue Iris, но в первом нет АИ, второй показался сложным в настройке, а третий вариант платновый и под винду - а я же энтузиаст докера уже третий месяц.

Вместо Coral TPU я тоже мог использовать аналоги - подключить AORUS Gaming Box RTX 3080 или вообще использовать CPU. Но Видеокарта жрет существенно больше энергии и шумит, а проц не очень тянет четыре камеры - а я хочу со временем сделать еще парочку - на парковку и с балкона.

Установка.

Сам процесс установки оказался достаточно простым. Я напомню что использую виртуализатор Proxmox VE.

  1. Создаем новую виртуалку. Я где то читал что CORAL может не работать на 13 дебиане и советы ставить на 12 - но забегая вперед скажу что это не правда, все работает хорошо. Если совсем лень, то можно воспользоваться готовым комьюнити скриптом по разворачиванию LXC пакета с Frigate, но мне показалось что проще пробрасывать физические устройства в виртуалку, а не в контейнер, поэтому я ставил фригейт сам.

  2. Ставим собственно фригейт

sudo apt update

sudo apt install -y curl ca-certificates gnupg udev

# Docker

curl -fsSL https://get.docker.com | sh

sudo usermod -aG docker $USER

newgrp docker

Начинаем с докера. Потом в Проксмоксе прокидываем наш usb порт с коралом. Я советую прокинуть именно весь порт, а не отдельное устройство, меньше ебли с тем что виртуалка не увидит свисток.

не обращаем внимание на надпись "не подключено", это из за того что прокинут весь порт.

не обращаем внимание на надпись "не подключено", это из за того что прокинут весь порт.

Командой lsusb проверяем что корал виден, создаем каталоги под фригейт, монтируем NAS каталоги для хранения видео, создаем docker-compose.yml

version: "3.9"

services:

frigate:

container_name: frigate

image: ghcr.io/blakeblackshear/frigate:stable

restart: unless-stopped

privileged: true

shm_size: "512mb"

ports:

- "5000:5000" # Web UI

- "8554:8554" # RTSP (go2rtc)

- "8555:8555/tcp" # WebRTC

- "8555:8555/udp"

devices:

- /dev/bus/usb/004/004:/dev/bus/usb/004/004

device_cgroup_rules:

- 'c 189:* rmw'

volumes:

- /etc/localtime:/etc/localtime:ro

- /opt/frigate/config:/config

- /mnt/frigate/Frigate:/media/frigate

И в файл конфигурации фригейта добавляем настройки и наши камеры.

# === указываем брокера данных для связи с Home Assistant ===


mqtt:

host: 192.168.0.* # адрес mqtt сервера, у меня он связан с Home Assistant

port: 1883

user: frigate # имя пользователя в mqtt

password: *** # пароль пользователя в mqtt

# === EdgeTPU (Coral USB) ===

detectors:

coral:

type: edgetpu

device: usb

# === Настройки записи ===

record:

enabled: true

retain:

days: 3

mode: motion

alerts:

retain:

days: 30

detections:

retain:

days: 30

snapshots:

enabled: true

retain:

default: 30

# === Настройки распознавания ===

detect:

enabled: true

version: 0.16-0

semantic_search:

enabled: true

model_size: small

face_recognition:

enabled: true

unknown_score: 0.6

recognition_threshold: 0.8

model_size: small

blur_confidence_filter: true # фильтровать размытые лица

lpr:

enabled: false

classification:

bird:

enabled: false

# === База и логирование ===

database:

path: /media/frigate/frigate.db

logger:

default: info

# === Камеры ===, указываем каждую камеру отдельно

cameras:

Имякамеры:

enabled: true

ffmpeg:

inputs:

- path: rtsp://имяпользователя:пароль@айпиадрескамеры:554/h264Preview_01_sub

roles: [detect]

input_args: [-rtsp_transport, tcp]

- path:

rtsp://имяпользователя:пароль@айпиадрескамеры/h264Preview_01_main

roles: [record]

input_args: [-rtsp_transport, tcp]

detect:

enabled: true

width: 640

height: 360

fps: 7

record:

enabled: true

retain:

days: 3

mode: all

Почти готово, вы великолепны. Осталось добавить интеграцию фригейт. Идем в HACS (надеюсь у вас он уже установлен!), затем подключить ее в разделе Настройки-Интеграции.

Отлично, ваши камеры видны в frigate и проброшены в HA по желанию.

Отлично, ваши камеры видны в frigate и проброшены в HA по желанию.


Обучение.

После того как все установлено и настроено - настало время самого интересного - настройка распознавания. Нам же нужно что бы камеры не просто видели какого то человека - а понимали что это за человек (и передавали это дальше в автоматизацию, чего я правда еще не сделал).

  1. Идем в Настройки - Обогащение (Settings - Enrichments)
    2. Добавляем лицо через Add Face (лучше скинуть селфи фронталки с телефона, можно парочку).
    3. Активно ходим вокруг камеры, что бы она детектила лицо.
    4. Затем заходите в Face Library - Train и вручную размечаете фотографии.
    5. Указываем в конфиге frigate.yml настройки точности. Тут можно поиграть с вариантами в зависимости от освещенности, типа камеры, размещения.
    6. В принципе можно еще поиграть с настройками точности

Мне хватило порядка 100 фотографий в разных ракурсах, что бы в дальнейшем распознавание шло точно.

Мне хватило порядка 100 фотографий в разных ракурсах, что бы в дальнейшем распознавание шло точно.

Google Coral достаточно редкий зверь, мне удалось достать его бушным на ебае только, поэтому прикладываю табличку сравнения - что бы понять чего его можно заменить.

Спасибо что дочитали, надеюсь кому то этот пост поможет избежать тех граблей, что были пройдены мной)

Хомячу Сервер

20 постов1.3K подписчика

Правила сообщества

Правила просты: уважение друг к другу, помощь новичкам, делимся только тем, что пробовали сами.

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества