• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to secondary sidebar
  • Skip to footer

У Павла!

  • Контроллеры
    • Arduino
      • Приборы
      • Музыка
      • Проекты Arduino
      • Уроки Arduino
      • Игры на Arduino
      • Роботы на Ардуино
      • FLProg
    • Одноплатные ПК
      • Orange pi
      • Raspberry pi
        • Raspberry pi pico
        • Raspberry pi server
        • Проекты Raspberry pi
    • ESP
      • ESP8266
        • NodeMCU
      • ESP32
      • M5stack
    • Другие контроллеры
      • STM32
  • Умный дом
    • Home Assistant
      • Автоматизации
    • Tuya
    • Bluetooth
    • ESPHome
    • Frigate
    • Telegram
    • Яндекс
  • ЧПУ
  • 3d печать
  • Об авторе

Настройка работы Frigate на Orange pi 5 используя NPU процессор Rockchip RK3588

14 апреля, 2024

Работает на платах:

Orange pi 5: https://alii.pub/6xq1kd?erid=2SDnjdVDh6Z

Orange pi 5 plus: https://alii.pub/6xq1k6?erid=2SDnjcbL8EV

Прежде чем приступить к материалу, я Вас попрошу, если нравится то, что я делаю и хотите следить за моей деятельностью, то рекомендую подписаться на мой телеграмм канал: https://t.me/ypavla
Там я публикую новости о вышедших видео, статьях и разные устройства для умного дома и не только показываю.
Спасибо за внимание, теперь продолжим.

 

В этой статье расскажу как настроить программу Frigate на NPU процессора Rockchip RK3588 на Orange pi 5.

Frigate – Это полноценный локальный сетевой видеорегистратор, разработанный для Home Assistant с обнаружением объектов AI. Использует OpenCV и Tensorflow для локального обнаружения объектов в реальном времени для IP-камер.

Введение:

Frigate очень популярен, многим нравится и многие его используют. Прям считают лучшим регистратором для ip камер и без альтернативным.

Ну и так как фишкой Frigate выступает обнаружение объектов будь то человек, машина, собака, птица. И собственно по обнаружениям этим отправляют всякие уведомления в телеграмм например или начинается запись или делается скриншот.

Ну и естественно обнаружение объектов нагружает процессор устройство на котором производятся вычисления этих объектов. А когда у Вас на том же процессоре находится Home Assistant еще какие-то сервера и прочее прочее, то процессор может прям сильно нагружаться от всего этого.

И вот чтоб снять нагрузку с процессора научились запускать вычисления фригата на NPU Google coral: https://alii.pub/6xq0mc?erid=2SDnjecS93w

И вышло вполне себе не плохо. У Google coral вычислительная мощность 4 TOPs, которых вполне достаточно распознавать объекты не напрягаясь как самому Coral, так и снять нагрузку совсем с процессора.

Ну а тут вышел год  назад Orange pi 5 на процессоре Rockchip RK3588. У которого есть NPU ядра с вычислительной мощностью 6TOPs – чего еще больше даже чем в Coral.

И конечно-же начали пытаться перенести Frigate непосредственно на эти ядра, для того, чтоб не грузить процессор.

Собственно в этой статье я и покажу настройку этого NPU процессора у Orange pi 5 на вычисления Firgate.

Настройка Frigate:

Для начала нам нужно выбрать образ для Orange pi 5. В образе должны быть установлены драйвера на NPU. Самые первые образы не содержали драйверов, но потом с этим проблем не было.

В общем я использовал образ Armbian_24.2.3_Orangepi5-plus_bookworm_legacy_5.10.160_minimal.img 

Не обращайте внимания, что образ под Orange pi 5 plus. Я просто ее использовал, если у Вас просто Orange pi 5, то образ армбиан качайте примерно близкий, но под свою плату. Думаю там будет драйвер.

Далее нам нужно установить Docker.

 

apt update

apt install docker.io

 

Я еще установил Docker-compose. Его можно не ставить. Я просто покажу установку Frigate в docker двумя способами.

 

apt install docker-compose

 

Далее создадим папки в каталоге /root/ с этими папками будет работать сам Frigate.

 

mkdir /root/frigate

mkdir /root/frigate/storage

 

В созданной папке создаём файл config.yml . Это файл с конфигурацией frigate, который будет запускаться.

 

nano /root/frigate/config.yml

 

И вставляем туда:


mqtt:
  enabled: false
detectors:
  rknn:
    type: rknn
    core_mask: 0b111
model:
  path: default-yolov8n
  width: 320
  height: 320
  input_tensor: nhwc
  input_pixel_format: bgr

rtmp:
  enabled: false

cameras:
  Fasad3: # <--- this will be changed to your actual camera later
    enabled: true
    birdseye:
      order: 2
    ffmpeg:
      input_args: preset-rtsp-restream
      hwaccel_args: preset-rk-h264
      inputs:
      - path: rtsp://10.5.44.35:554/profile4/media.smp
        roles:
        - detect
    detect:
      enabled: True
      width: 800
      height: 600
      fps: 5
    objects:
      track:
      - person
      - car


       

Собственно здесь главное это блоки detctors  – где описывается, что детектором выступает rknn (rk3588) и что вычисления будут производиться на 3х ядрах npu 0b111

Ну блоком model выбирается модель. Без этих блоков или без хотя-бы одного из двух – frigate не будет работать на NPU.


detectors:
  rknn:
    type: rknn
    core_mask: 0b111
model:
  path: default-yolov8n
  width: 320
  height: 320
  input_tensor: nhwc
  input_pixel_format: bgr
       

 

С конфигурацией Frigate мы разобрались, теперь давайте создадим docker-compose файл который создаст контейнер frigate для работы:

nano docker-compose.yml


services:
    frigate:
      container_name: frigate
      image: ghcr.io/blakeblackshear/frigate:stable-rk
      privileged: true # this may not be necessary for all setups
      restart: unless-stopped
      group_add:
        - "106" # render
        - "44"  # video
        - "46"  # plugdev
      shm_size: "512mb" # update for your cameras based on calculation above
      devices:
        - /dev/dri/renderD128:/dev/dri/renderD128
        - /dev/dri/card0:/dev/dri/card0
        - /dev/rga
        - /dev/video-dec0:/dev/video-dec0
        - /dev/video-enc0:/dev/video-enc0
      volumes:
        - /dev/bus/usb:/dev/bus/usb
        - /etc/localtime:/etc/localtime:ro
        - /root/frigate/config.yml:/config/config.yml:rw
        - /root/frigate/storage:/media/frigate:rw
        - type: tmpfs # Optional: 1GB of memory, reduces SSD/SD Card wear
          target: /tmp/cache
          tmpfs:
            size: 2000000000
      ports:
        - "5000:5000"
        - "1935:1935"
        - "8554:8554" # RTSP feeds
        - "8555:8555/tcp" # WebRTC over tcp
        - "8555:8555/udp" # WebRTC over udp
      device_cgroup_rules:
        - "c 189:* rmw"

       

После создания файла docker-compose.yml его можно запустить и у нас соберется контейнер Frigate.

Для запуска вводим команду:

 

docker-compose up -d

 

Ну по сути на этом настройка работы Frigate на NPU процессора rockchip rk3588 закончена. Далее переходим по ip адресу и порту :5000 и наслаждаемся вычислительной мощностью.

 

Ну а чтоб посмотреть нагрузку NPU процессоров и удостовериться, что вычисления проходят именно на NPU, то для этого есть команда:

 

watch -n 1 cat /sys/kernel/debug/rknpu/load

 

Которая выводит нагрузку NPU:

Primary Sidebar

Поиск

Новые записи

  • Автоматизация перезагрузки устройства по команде Ping.
  • Разблокирование и добавление шлюза Xiaomi gateway 3 в Home Assistant для управления Bluetooth устройствами из экосистемы Xiaomi Home (mihome)
  • Интеграция для локального управления (без интернета) ик пультом Tuya работающим по wifi из Home Assistant
  • Транслируем показания с Уличного Bluetooth Датчика температуры по BTHome на дисплей датчика температуры XIaomi LYWSD03MMC
  • Заставляем Bluetooth датчики температуры tuya и xiaomi отправлять данные по Zigbee в Home Assistant.

Официальный YouTube Канал M5Stack:

Подписывайтесь на Телеграм канал

https://t.me/ypavla

Подписаться на YouTube!

Secondary Sidebar




Подписывайтесь на Telegram Канал!

У Павла!

Footer

Copyright_У Павла! © 2025 ·