Après avoir écumer le forum et le groupe Fb, je demande vos avis concernant ce que je dois faire pour mon installation Frigate de 3 caméras.
Je viens de passer sous Proxmox avec une VM où tourne HAOS.
Pour l’instant j’ai l’addon Frigate avec OpenVino mais il semble y avoir des problèmes de lenteurs (message « Ov is slow »).
J’ai vu qu’il y a des clés Coral mais avant cela se pose la question du type d’installation dans un container LXC via les helper scripts de tteck ou via docker.
J’ai lu que l’accélération matériel pour le LXC pourrait suffire.
Qu’en pensez vous ? Que dois je faire pour optimiser mon installation Frigate ?
Il « semble » ou il y en a ?
Je ne sais pas comment tu utilises frigate, mais, en supposant que tu utilises les alertes sur détections de personne ou autre. Est-ce que ces alertes ne marchent pas ? Est-ce qu’elles arrivent trop tard ?
Est-ce que le CPU du PC Proxmox est à plus de 50% tout le temps ?
Selon le principe « when ain’t break, don’t fix it », je préfère agir quand il y a un vrai problème ou au moins quand ça marche mais vraiment mal.
Sur Proxmox, frigate est moins consommateur de ressource en LXC qu’en VM. Pourquoi, je ne sais pas.
Mais, si c’est pour utiliser les scripts (de tteck ou d’autre) qui transforment tout en boite noire, je ne le ferai pas.
Je n’ai pas de soucis sur les alertes mais j’ai toujours le message en bas à droite donc pour moi c’est qu’il y a un problème à régler concernant la charge. Je cherche donc à savoir si passer en LXC serait bénéfique ou si la galère assurée.
Sur Frigate j’ai cela :
Il doit y avoir un seuil ou openvino considère que c’est lent. Lequel, aucune idée.
Dans mon installation, j’ai une cle coral usb avec Frigate en docker dans LXC, et l’inférence est de 8ms.
Donc, c’est « mieux ».
Après, sortir Frigate de la VM, le mettre en LXC, sans carte Coral, tu baisseras peut-être à 20ms 30ms ? ça dépend de PC ou tourne proxmox.
Ca plaira (peut-être) à openvino et donc, il n’y aura plus le message.
Est-ce que ça changera réellement ton usage de Frigate ? je dirais non.
Quand à savoir si c’est une galère à installer, ce n’est pas le plus simple à faire, avec le passthrough d’une éventuelle carte coral, c’est encore moins simple.
Est-ce que tout cela sera compensé par le « plaisir » d’un openvino pas orange, chacun est juge
Que dit proxmox de l’état de la VM ?
Rajouter de la mémoire ou du CPU virtuel à la VM, si tu as les ressources ça suffira peut-être à abaisser l’inférence.
C’est effectivement un usage de CPU un tantinet haut, mais, rien de dramatique pour moi. Possibilité d’ajouter plus de processeurs ? Quelle est la configuration physique du serveur proxmox ?
Vu que HA est pour le moment presque tout seul sur proxmox, ça peut valoir le coup de lui donner accès à plus de ressources si le PC en a encore sous le pied.
Le test pour voir si ça marche, c’est de tester une/plusieurs détection(s) et de voir si tu reçois toutes les alertes et avec quels délais.
J’ai un I5 6500 4 coeurs dont 2 affectés à HA. 1 coeur pour AdGuard.
8 Go dont 4 pour HA.
Je debute sous Proxmox, je dois faire quoi? Où ?
Encore merci pour ton aide
Ne fais pas attention à la consommation de ram, c’est à cause de Debian, c’est le fonctionnement normal à priori, il alloue tout ce qui est disponible, mais en réalité, tout n’est pas utilisé.
Je ne sais pas comment ça fonctionne en LXC, moi il tourne sur une VM debian dans un conteneur docker, mais il m’a fallu partager le GPU avec la VM pour que ça fonctionne.
Bonjour a tous,
Je lis vos échanges , et du coup je me pose des questions sur la pertinence de mon installation :
Mini PC GK3+ Intel Alder Lake- N97
8Go
Promox
Ha en VM
Frigate directement dans HA
Je n’avais pas connaissance de ce problème, j’avais une google Coral il n’y a encore pas si longtemps et j’ai migré sur de détecteur OpenVimo car il n’y avait pas de différence avec ma Coral, c’était même légèrement mieux avec OpenVimo au niveau de l’inférence.
Ton GPU est bien partagé dans les réglage hardware de proxmox (regardes sur mon dernier screen)?
Voici mon fichier de config :
(je ne sais pas pourquoi tout le code est en gris par contre)
mqtt:
# Optional: Enable mqtt server (default: shown below)
enabled: true
# Required: host name
host: 192.168.*.***
# Optional: port (default: shown below)
port: ****
# Optional: topic prefix (default: shown below)
# NOTE: must be unique if you are running multiple instances
topic_prefix: frigate
# Optional: client id (default: shown below)
# NOTE: must be unique if you are running multiple instances
client_id: frigate
# Optional: user
# NOTE: MQTT user can be specified with an environment variable or docker secrets that must begin with 'FRIGATE_'.
# e.g. user: '{FRIGATE_MQTT_USER}'
user: ****
# Optional: password
# NOTE: MQTT password can be specified with an environment variable or docker secrets that must begin with 'FRIGATE_'.
# e.g. password: '{FRIGATE_MQTT_PASSWORD}'
password: ****
detectors:
ov:
type: openvino
device: GPU
model:
width: 300
height: 300
input_tensor: nhwc
input_pixel_format: bgr
path: /openvino-model/ssdlite_mobilenet_v2.xml
labelmap_path: /openvino-model/coco_91cl_bkgr.txt
birdseye:
enabled: false
# Optional: Snapshot configuration
snapshots:
enabled: true
# Optional: save a clean PNG copy of the snapshot image (default: shown below)
clean_copy: true
# Optional: print a timestamp on the snapshots (default: shown below)
timestamp: true
# Optional: draw bounding box on the snapshots (default: shown below)
bounding_box: true
# Optional: crop the snapshot (default: shown below)
crop: false
# Optional: Camera override for retention settings (default: global values)
retain:
# Required: Default retention days (default: shown below)
default: 15
# Optional: Per object retention days
objects:
person: 15
# Optional: Record configuration
# NOTE: Can be overridden at the camera level
record:
enabled: true
# Optional: Number of minutes to wait between cleanup runs (default: shown below)
# This can be used to reduce the frequency of deleting recording segments from disk if you want to minimize i/o
expire_interval: 60
# Optional: Retention settings for recording
retain:
# Optional: Number of days to retain recordings regardless of events (default: shown below)
# NOTE: This should be set to 0 and retention should be defined in events section below
# if you only want to retain recordings of events.
days: 15
# Optional: Mode for retention. Available options are: all, motion, and active_objects
# all - save all recording segments regardless of activity
# motion - save all recordings segments with any detected motion
# active_objects - save all recording segments with active/moving objects
# NOTE: this mode only applies when the days setting above is greater than 0
#mode: active_objects
# Optional: Event recording settings
alerts:
retain:
days: 15
pre_capture: 5
post_capture: 5
detections:
retain:
days: 15
pre_capture: 5
post_capture: 5
cameras:
Garage:
enabled: true
ffmpeg:
hwaccel_args: preset-vaapi
inputs:
- path: rtsp://127.0.0.1:8554/frigate1_sub
input_args: preset-rtsp-restream
roles:
- detect
- path: rtsp://127.0.0.1:8554/frigate1
input_args: preset-rtsp-restream
roles:
- record
# detect:
# enabled: true
objects:
track:
- person
- cat
- dog
filters:
person:
# Optional: minimum score for the object to initiate tracking (default: shown below)
min_score: 0.7
# Optional: minimum decimal percentage for tracked object's computed score to be considered a true positive (default: shown below)
threshold: 0.7
mask:
0.001,0.646,0.381,0.468,0.504,0.356,0.544,0.279,0.693,0.32,0.709,0.186,0.977,0.267,0.95,0.41,0.67,1,1,1,1,0.15,1,0,0,0
motion:
mask:
0,0,0,0.647,0.379,0.475,0.5,0.368,0.544,0.285,0.695,0.325,0.707,0.185,0.977,0.268,0.952,0.406,0.671,0.994,0.999,0.996,1,0
zones:
sol_garage:
coordinates:
0,0.657,0.393,0.476,0.549,0.305,0.703,0.337,0.716,0.205,0.966,0.275,0.948,0.398,0.666,1,0,1
loitering_time: 0
Portail:
enabled: false
ffmpeg:
hwaccel_args: preset-vaapi
inputs:
- path: rtsp://127.0.0.1:8554/frigate3_sub
input_args: preset-rtsp-restream
roles:
- detect
- path: rtsp://127.0.0.1:8554/frigate3
input_args: preset-rtsp-restream
roles:
- record
# detect:
# enabled: true
objects:
track:
- person
- cat
- dog
filters:
person:
# Optional: minimum score for the object to initiate tracking (default: shown below)
min_score: 0.7
# Optional: minimum decimal percentage for tracked object's computed score to be considered a true positive (default: shown below)
threshold: 0.7
Yicam:
enabled: true
ffmpeg:
output_args:
record: preset-record-generic-audio-aac
hwaccel_args: preset-vaapi
inputs:
- path: rtsp://127.0.0.1:8554/frigate2_sub
input_args: preset-rtsp-restream
roles:
- detect
- path: rtsp://127.0.0.1:8554/frigate2
input_args: preset-rtsp-restream
roles:
- record
# detect:
# fps: 5
# enabled: true
objects:
track:
- person
- cat
- dog
filters:
person:
# Optional: minimum score for the object to initiate tracking (default: shown below)
min_score: 0.7
# Optional: minimum decimal percentage for tracked object's computed score to be considered a true positive (default: shown below)
threshold: 0.7
mask:
- 0,0.631,0,0,1,0,1,0.434,0.487,0.563
- 0,0.887,0.743,0.803,0.997,0.95,1,1,0,1
motion:
mask:
- 0,0.629,0.497,0.562,1,0.434,1,0,0,0
- 0.742,0.804,0,0.884,0,1,1,1,1,0.95
zones:
Sol_Terrasse:
coordinates: 0.177,0.83,0.086,0.875,0.73,0.808,0.998,0.952,0.996,0.624
loitering_time: 0
go2rtc:
streams:
frigate1:
- rtsp://*****:*****@192.168.*.***:***/cam/realmonitor?channel=1&subtype=0
frigate1_sub:
- rtsp://*****:*****@192.168.*.***:***/cam/realmonitor?channel=1&subtype=1
frigate2:
- rtsp://192.168.*.***:***/ch0_0.h264
- ffmpeg:frigate2#audio=aac
frigate2_sub:
- rtsp://192.168.*.***:***/ch0_1.h264
- ffmpeg:frigate2_sub#audio=aac
frigate3:
- rtsp://****:****@192.168.*.***:***/cam/realmonitor?channel=1&subtype=1
frigate3_sub:
- rtsp://****:****@192.168.*.***:***/cam/realmonitor?channel=1&subtype=0
webrtc:
candidates:
- 192.168.*.**:8555
- stun:8555
version: 0.15-1
Alors concernant le go2rtc ça sert à restreamer les flux vidéo de tes caméras, ça permet d’avoir une seule connexion rtsp à la caméra et de le diffuser à plusieurs « lecteurs » au travers de go2rtc sans surcharger la caméra.
Pour le webrtc, j’avais suivi un tuto, je t’avoue que je n’ai pas cherché mieux que ça à quoi ça servait exactement.
Mais dans tous les cas ton problème ne vient pas de là.
Essai de regarder du côté LXC s’il y a des subtilités pour le partage de matériel HW, notamment le GPU, sinon essaie de te monter une VM debian en parallèle
Là j’ai mis le HW sur la VM de HAOS comme j’utilise l’addon Frigate.
Je n’arrive pas à trouver quelqu’un qui saurait m’aider avec mes logs pour savoir d’où vient le problème exactement
Oui j’ai bien compris, c’est pour cela que je te disais d’essayer sur une vrai VM et pas un LXC. Je n’ai pas de connaissance dans les LXC.
Pour info, c’est ceci que j’ai suivi pour partager le GPU à ma VM, regardes s’il n’y aurait pas une subtilité qu’on aurai pas pensé, tu y trouveras aussi des commandes pour contrôler si le GPU est bien accessible par la VM il me semble :