Frigate - NVR z funkcją wykrywania obiektów w czasie rzeczywistym dla kamer IP HA

Oprogramowanie: Frigate NVR
Link YT instalacja konfiguracja : YT Frigate

1 polubienie

Chyba ta integracja staje się popularna :stuck_out_tongue: - do niedawna na SeedStudio można było kupić Google Coral w niemal dowolnej wersji i od ręki, a teraz… Out of Stock, a zaglądałem tam zaledwie parę dni temu:

jest pocieszenie jedynie dla posiadaczy niektórych NUC’ów i podobnych konstrukcji - wersja m.2 A+E (można zamontować zamiast karty WiFi/BT)

Aby nie było, że faworyzuję wybrany sklep, wygląda na to, że przynajmniej w innych sklepach są dostępne różne wersje:

(no ale nie wszędzie mam konta, a z niektórych sklepów koszt porto zabija sens kupna).

Zgadza się, stick jest coraz bardziej popularny.

No a ja mam problem, że Supervisor nie widzi dodanego repozytorium z Frigate i nie mogę go zainstalować. W czym problem? Pozdrawiam

Mi wywala taki komunikat :
21-06-04 07:11:31 ERROR (MainThread) [supervisor.store] GitHub - blakeblackshear/frigate-hass-integration: Frigate integration for homeassistant is not a valid add-on repository.

I zainstalować się nie da.

Errata: szukajka na Github i v`oila :

To działa.

Miałem pisać że link do repozytorium dodatku jest teraz inny
https://github.com/blakeblackshear/frigate-hass-addons
pod starym linkiem jest tylko custom_component.

A ja napotkałem przeszkodę i nie umiem tego pokonać.
Mam kamerę po IP - używam softu do niej ( obserwacja zachowania kotów jak mnie w domu nie ma ) - kamera generuje średnio przez 8 h około 1000 zdjęć.
Chciałem doświadczalnie zobaczyć jak działa Frigate i…

  • brak kodeków ffmpeg ( nie mogę dodać lub nie umiem ( HASSIO na PROXMOXIE )),
  • Frigate nie potrafi się połączyć z kamerą ( bo brak ffmpeg),.
  • Integracja ONVIF widzi kamerę ale lagi są okropne.

Taka mała ciekawostka - pojawiła się karta m.2 key-E z dwoma niezależnymi (każdy ma własne linie pcie) akceleratorami Coral

na bis
Asus ma w ofercie pełnowymiarowe karty z 8 lub 16 TPU, ale nigdzie nie widziałem ich w sprzedaży
https://iot.asus.com/products/AI-accelerator/AI-Accelerator-PCIe-Card/

1 polubienie

hej
mam zapytanie
podlaczylem Corala Dual Edge TPU przez pci do xpenology za pomocą pcie > M2 adaptera wifi/BT
widzę ze jest podłączony ale go nie rozpoznaje,

$ lspci -nn | grep 089a
0000:02:00.0 Class [0000]: Device [1ac1:089a]
$ lspci -k
0000:00:1f.3 Class 0c05: Device 8086:8c22 (rev 04)
        Subsystem: Device 1028:0612
        Kernel driver in use: i801_smbus
0000:01:00.0 Class 0000: Device 1ac1:089a
        Subsystem: Device 1ac1:089a #<--to jest to 
0000:03:00.0 Class 0200: Device 10ec:8168 (rev 0c)
        Subsystem: Device 1028:0612
        Kernel driver in use: r8168

zrozumiałem że muszę skompilować sterownik :scream:
i w tym momencie już nic nie potrafie zrobić.

Gość na forum dał mi link, ale nie rozumiem na co patrze i jak unride ma się do xpenology
oni tam pobierają jakieś jądra unride itp. po prostu nie rozumiem na co patrze

Czy jest może ktoś kto takie rzeczy po prostu wie i mógłby pomóc? :slight_smile:

1 polubienie

Tu masz kolejne kroki jakie należy wykonać w konsoli
https://forums.unraid.net/topic/98064-support-blakeblackshear-frigate/?do=findComment&comment=940330
Musisz dostosować pakiety i kernel do twojego systemu . Długa droga, większość podstawowych linuksów nie posiada wielu narzędzi potrzebnych do kompilacji i trzeba je doinstalować.

Tak to widziałem ale nijak ma się to do synology, tam są pobierane jakieś Linuksy uniraid.
No cóż, myślałem że to prosta sprawa dla kogoś w temacie, także dla mnie bez tej wiedzy nie do zrobienia :frowning:

Informacyjnie: problem rozwiązany wspólnie z @bartik22, szczegóły na forum Frigate NVR - akceleracja Coral TPU z lokalnym AI - Projekty - AI-Speaker

P.S. Nie mam Synology, nigdy go nie używałem, wystarczyło uzyskać odpowiednie informacje, popracować wspólnie nad rozwiązaniem problemu. Kernel kompilowałem ostatnio na Slackware 8.0 pod i386 :grin:.

2 polubienia

Ja niestety nie umiem poradzić sobie z instalacją/uruchomieniem Frigate.
Całą procedurę wykonuję dokładnie wg instruktażu, ale każda próba uruchomienia kończy się listą błędów fatalnych, jak w poniższym logu:

[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] done.
[services.d] starting services
[services.d] done.
Fatal Python error: Illegal instruction
Current thread 0x00007f2659f30740 (most recent call first):
  File "<frozen importlib._bootstrap>", line 228 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 1108 in create_module
  File "<frozen importlib._bootstrap>", line 565 in module_from_spec
  File "<frozen importlib._bootstrap>", line 666 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 986 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1007 in _find_and_load
  File "<frozen importlib._bootstrap>", line 228 in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1058 in _handle_fromlist
  File "/usr/lib/python3/dist-packages/tflite_runtime/interpreter.py", line 41 in <module>
  File "<frozen importlib._bootstrap>", line 228 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 790 in exec_module
  File "<frozen importlib._bootstrap>", line 680 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 986 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1007 in _find_and_load
  File "/opt/frigate/frigate/edgetpu.py", line 11 in <module>
  File "<frozen importlib._bootstrap>", line 228 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 790 in exec_module
  File "<frozen importlib._bootstrap>", line 680 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 986 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1007 in _find_and_load
  File "/opt/frigate/frigate/app.py", line 24 in <module>
  File "<frozen importlib._bootstrap>", line 228 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 790 in exec_module
  File "<frozen importlib._bootstrap>", line 680 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 986 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1007 in _find_and_load
  File "/opt/frigate/frigate/__main__.py", line 9 in <module>
  File "/usr/lib/python3.9/runpy.py", line 87 in _run_code
  File "/usr/lib/python3.9/runpy.py", line 197 in _run_module_as_main
[cmd] python3 exited 260
[cont-finish.d] executing container finish scripts...
[cont-finish.d] done.

Każda próba uruchomienia dodatku kończy się takim ekranem:


… i nic dalej się nie dzieje.

Wklej config frigate…

Oto mój config: plik frigate.yaml umieszczony w folderze /config jeszcze przed próbą uruchomienia Frigate:

mqtt:
  host: 192.168.1.20
  user: frigate
  password: frigate

#logger:
  # Optional: default log level (default: shown below)
#  default: debug
ffmpeg:
  # Optional: global hwaccel args (default: shown below)
  # NOTE: See hardware acceleration docs for your specific device
  hwaccel_args: []
#  hwaccel_args:
#    - -hwaccel
#    - vaapi
#    - -hwaccel_device
#    - /dev/dri/renderD128
#    - -hwaccel_output_format
#    - yuv420p

  input_args:
  - -headers
  - "Authorization: Basic YWRtaW46"

# Optional: RTMP configuration
# NOTE: Can be overridden at the camera level
rtmp:
  # Optional: Enable the RTMP stream (default: True)
  enabled: true

detect:
  enabled: false

cameras:
################# Telecamere DVR163 #######################


  test: # <------ Name the camera
    ffmpeg:
      inputs:
        - path: http://172.20.14.33:81/ # <----- Update for your camera
      input_args: -avoid_negative_ts make_zero -fflags nobuffer -flags low_delay -strict experimental -fflags +genpts+discardcorrupt -use_wallclock_as_timestamps 1
################ DUMP Telecamere #######################
  parking: # <------ Name the camera
    ffmpeg:
      inputs:
        - path: rtsp://192.168.1.21:554/realmonitor?channel=2&stream=0.sdp # <----- Update for your camera
          roles:
            - detect
            - rtmp
      input_args: -an
#        - -headers
#        - "Authorization: Basic YWRtaW46"
    rtmp:
      enabled: true # <-- RTMP should be disabled if your stream is not H264
    detect:
      width: 2304 # <---- update for your camera's resolution
      height: 1296 # <---- update for your camera's resolution

IP 192.168.1.20 - adres lokalny serwera HA z zainstalowanym brokerem MQTT
IP 192.168.1.21 - adres lokalny rejestratora obrazu NVR
IP 172.20.14.xxx - adresy lokalne kamer CCTV podpiętych do NVR wydzieloną siecią WiFi

Po pierwsze primo wydaje mi się że plik powinien się nazywać : /config/frigate.yml (yml a nie yaml)
bynajmniej ja tak mam :slight_smile:

Po drugie primo spróbuj prostego configa:

 mqtt:
  host: XXXXX
  user: XXXXX
  password: XXXXX
  topic_prefix: frigate



 detectors:
  coral_usb:
    type: edgetpu
    device: usb
  coral_pci:
    type: edgetpu
    device: pci


 cameras:
  cam_wejscie:
    ffmpeg:
      inputs:
        - path: rtsp://XXXXX niższa rozdzielczość kamery
          roles:
            - detect
            
        - path: rtsp:// XXX wyższa rozdzielczośc kamery
          roles:
            - record
            - rtmp

    detect:
      width: 640   
      height: 480
      fps: 5

    objects:
      track:
        - person
        

        

    snapshots:
      enabled: true
      crop: false
      bounding_box: true
      retain:
        default: 1



    record:
      enabled: true
      retain_days: 1
      events:
        max_seconds: 60
        retain:
          default: 1

Nie wiem dlaczego wiele osób próbuje wykrywać obiekty w największej dostępnej rozdzielczości kamery, manual dokładnie to wyjaśnia.

Dostosuj configa pod siebie i zobacz czy ruszy.

1 polubienie

Przynajmniej :slight_smile:

1 polubienie

image

OFF TOPIC - napisałeś

a nie np.

bynajmniej ja tak nie mam

więc nie zachodzi przypadek wzmocnienia przeczenia (bo, że to nie jest wykrzyknik, to chyba oczywiste).

powinieneś użyć np. “przynajmniej”.

1 polubienie

Niestety nadal nie ruszył. Nawet nie mruknął…

Logi z uruchomienia są takie:

[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] done.
[services.d] starting services
[services.d] done.
Fatal Python error: Illegal instruction
Current thread 0x00007fd6eddc9740 (most recent call first):
  File "<frozen importlib._bootstrap>", line 228 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 1108 in create_module
  File "<frozen importlib._bootstrap>", line 565 in module_from_spec
  File "<frozen importlib._bootstrap>", line 666 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 986 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1007 in _find_and_load
  File "<frozen importlib._bootstrap>", line 228 in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1058 in _handle_fromlist
  File "/usr/lib/python3/dist-packages/tflite_runtime/interpreter.py", line 41 in <module>
  File "<frozen importlib._bootstrap>", line 228 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 790 in exec_module
  File "<frozen importlib._bootstrap>", line 680 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 986 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1007 in _find_and_load
  File "/opt/frigate/frigate/edgetpu.py", line 11 in <module>
  File "<frozen importlib._bootstrap>", line 228 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 790 in exec_module
  File "<frozen importlib._bootstrap>", line 680 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 986 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1007 in _find_and_load
  File "/opt/frigate/frigate/app.py", line 24 in <module>
  File "<frozen importlib._bootstrap>", line 228 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 790 in exec_module
  File "<frozen importlib._bootstrap>", line 680 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 986 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1007 in _find_and_load
  File "/opt/frigate/frigate/__main__.py", line 9 in <module>
  File "/usr/lib/python3.9/runpy.py", line 87 in _run_code
  File "/usr/lib/python3.9/runpy.py", line 197 in _run_module_as_main
[cmd] python3 exited 260
[cont-finish.d] executing container finish scripts...
[cont-finish.d] done.
[s6-finish] waiting for services.
[s6-finish] sending all processes the TERM signal.

Oczywiście maksymalnie uprościłem plik konfiguracyjny jak sugerowałeś i zmieniłem jego rozszerzenie na .yml. Alarmujący jest Fatal Python error: Illegal instruction. Przeszedłem procedurę instalacji dokładnie wg instrukcji ale wygląda na to, że nadal czegoś brakuje (jakichś bibliotek?). Nietety, nie mam pojęcia…