NEWS
Proxmox LXC mit Frigate
-
@crunchip dank dir das kenn ich.
Wollte eure erfahrungen wissen und was ihr nutzt und mit was ihr zufrieden seit und wo ihr allenfalls mehr ram mehr cpu oder dergkeichen einsetzen würdet. Was verwendest du denn -
@drapo nen Geekom AS6 mit unraid, allerdings läuft da ja noch vieeeel mehr
frigate selbst, bei 4 cams
ne Empfehlung rein nur für frigate, so wie es auf der Seite beschrieben ist, ein kleiner miniPC
-
@drapo ,
ich nutze einen alten HP Elitedesk I5-7500 32GB Ram den ich für 1 Euro gekauft habe.
Die wurden entsorgt, da sie nicht mehr dem Sicherheitsstandard meiner Firma entsprachen.
Die Teile gibt es aber auch für 80-150 Euro im Netz als Gebrauchtware.
Da läuft jetzt Proxmox mit mittlerweile 8 LXC Containern drauf incl. Frigate und ioBroker, das Teil langweilt sich.
Für die Objekterkennung läuft bei mir eine Coral Dual TPU die incl. Adapter nochmals ca. 150 Euro verschlangen.
Ein Coral-USB für ca. 60-80 Euro genügt.Edit: Wichtig, trotz 65W TDP und 1TB NVME/1TB SSD/1TB USB-SSD Datentank läuft das Teil mit 22-25W im Schnitt.
-
@wal dank dir für das feedback. Dann werd ich schauen dass ich was ähnliches finde. Noch was. In der Feigate Beschreibung wird die benutzung von proxmox nicht empfohlen. Bei dir scheint das aber ohne probleme zu funktionieren. Oder hattest du irgendwo schlechte erfahrungen?
-
@drapo ,
habe Frigate schon über 1Jahr am laufen und konnte bis jetzt noch keine Nachteile entdecken. -
@wal alles klar. Zumal du hier alles sauber beschrieben hast wäre es sicherlich eine option ebenfalls auf proxmox zu gehen. Dank dir für deine rückmeldung
-
@wal Hallo Walter,
nach längerer Abstinenz von Frigate habe ich jetzt erneut mal probiert, das Ganze nach deiner Anleitung zu installieren.
So recht will das aber immer noch nicht rund laufen. FRIGATE meint, so glaube ich, keine Coral-TPU zu erkennen. Verbaut ist jetzt ein M.2 Accelerator with Dual Edge TPU. Vorher hatte ich die einfache TPU verbaut, aber das ganze gar nicht zum Laufen bekommen.
Hier das Log vom Start von Frigate:2024-01-28 13:30:31.218569409 [INFO] Starting Frigate... 2024-01-28 13:30:32.125243630 [2024-01-28 13:30:32] frigate.app INFO : Starting Frigate (0.12.1-367d724) 2024-01-28 13:30:32.150690234 [2024-01-28 13:30:32] peewee_migrate INFO : Starting migrations 2024-01-28 13:30:32.153556313 [2024-01-28 13:30:32] peewee_migrate INFO : There is nothing to migrate 2024-01-28 13:30:32.162656517 [2024-01-28 13:30:32] detector.coral1 INFO : Starting detection process: 575 2024-01-28 13:30:32.164672673 Process detector:coral1: 2024-01-28 13:30:32.164760541 [2024-01-28 13:30:32] frigate.detectors.plugins.edgetpu_tfl INFO : Attempting to load TPU as pci:0 2024-01-28 13:30:32.164885429 [2024-01-28 13:30:32] frigate.detectors.plugins.edgetpu_tfl ERROR : No EdgeTPU was detected. If you do not have a Coral device yet, you must configure CPU detectors. 2024-01-28 13:30:32.165172631 [2024-01-28 13:30:32] detector.coral2 INFO : Starting detection process: 577 2024-01-28 13:30:32.165544757 Traceback (most recent call last): 2024-01-28 13:30:32.165554583 File "/usr/lib/python3/dist-packages/tflite_runtime/interpreter.py", line 160, in load_delegate 2024-01-28 13:30:32.165556312 delegate = Delegate(library, options) 2024-01-28 13:30:32.165558040 File "/usr/lib/python3/dist-packages/tflite_runtime/interpreter.py", line 119, in __init__ 2024-01-28 13:30:32.165560833 raise ValueError(capture.message) 2024-01-28 13:30:32.165565880 ValueError 2024-01-28 13:30:32.165570393 2024-01-28 13:30:32.165572014 During handling of the above exception, another exception occurred: 2024-01-28 13:30:32.165573076 2024-01-28 13:30:32.165574405 Traceback (most recent call last): 2024-01-28 13:30:32.165596052 File "/usr/lib/python3.9/multiprocessing/process.py", line 315, in _bootstrap 2024-01-28 13:30:32.165597573 self.run() 2024-01-28 13:30:32.165599180 File "/usr/lib/python3.9/multiprocessing/process.py", line 108, in run 2024-01-28 13:30:32.165600753 self._target(*self._args, **self._kwargs) 2024-01-28 13:30:32.165602288 File "/opt/frigate/frigate/object_detection.py", line 98, in run_detector 2024-01-28 13:30:32.165603923 object_detector = LocalObjectDetector(detector_config=detector_config) 2024-01-28 13:30:32.165610398 File "/opt/frigate/frigate/object_detection.py", line 52, in __init__ 2024-01-28 13:30:32.165611916 self.detect_api = create_detector(detector_config) 2024-01-28 13:30:32.165613440 File "/opt/frigate/frigate/detectors/__init__.py", line 24, in create_detector 2024-01-28 13:30:32.165614768 return api(detector_config) 2024-01-28 13:30:32.165616335 File "/opt/frigate/frigate/detectors/plugins/edgetpu_tfl.py", line 37, in __init__ 2024-01-28 13:30:32.165617976 edge_tpu_delegate = load_delegate("libedgetpu.so.1.0", device_config) 2024-01-28 13:30:32.165639294 File "/usr/lib/python3/dist-packages/tflite_runtime/interpreter.py", line 162, in load_delegate 2024-01-28 13:30:32.165651721 raise ValueError('Failed to load delegate from {}\n{}'.format( 2024-01-28 13:30:32.165653525 ValueError: Failed to load delegate from libedgetpu.so.1.0 2024-01-28 13:30:32.165654747 2024-01-28 13:30:32.166393925 [2024-01-28 13:30:32] frigate.app INFO : Output process started: 580 2024-01-28 13:30:32.167531932 Process detector:coral2: 2024-01-28 13:30:32.167535028 [2024-01-28 13:30:32] frigate.detectors.plugins.edgetpu_tfl INFO : Attempting to load TPU as pci:1 2024-01-28 13:30:32.167726773 [2024-01-28 13:30:32] frigate.detectors.plugins.edgetpu_tfl ERROR : No EdgeTPU was detected. If you do not have a Coral device yet, you must configure CPU detectors. 2024-01-28 13:30:32.168493464 Traceback (most recent call last): 2024-01-28 13:30:32.168501725 File "/usr/lib/python3/dist-packages/tflite_runtime/interpreter.py", line 160, in load_delegate 2024-01-28 13:30:32.168502975 delegate = Delegate(library, options) 2024-01-28 13:30:32.168504312 File "/usr/lib/python3/dist-packages/tflite_runtime/interpreter.py", line 119, in __init__ 2024-01-28 13:30:32.168505459 raise ValueError(capture.message) 2024-01-28 13:30:32.168515052 ValueError 2024-01-28 13:30:32.168537189 2024-01-28 13:30:32.168538362 During handling of the above exception, another exception occurred: 2024-01-28 13:30:32.168539185 2024-01-28 13:30:32.168540152 Traceback (most recent call last): 2024-01-28 13:30:32.168576991 File "/usr/lib/python3.9/multiprocessing/process.py", line 315, in _bootstrap 2024-01-28 13:30:32.168578091 self.run() 2024-01-28 13:30:32.168579237 File "/usr/lib/python3.9/multiprocessing/process.py", line 108, in run 2024-01-28 13:30:32.168580303 self._target(*self._args, **self._kwargs) 2024-01-28 13:30:32.168581466 File "/opt/frigate/frigate/object_detection.py", line 98, in run_detector 2024-01-28 13:30:32.168582588 object_detector = LocalObjectDetector(detector_config=detector_config) 2024-01-28 13:30:32.168592956 File "/opt/frigate/frigate/object_detection.py", line 52, in __init__ 2024-01-28 13:30:32.168594726 self.detect_api = create_detector(detector_config) 2024-01-28 13:30:32.168596518 File "/opt/frigate/frigate/detectors/__init__.py", line 24, in create_detector 2024-01-28 13:30:32.168597864 return api(detector_config) 2024-01-28 13:30:32.168599747 File "/opt/frigate/frigate/detectors/plugins/edgetpu_tfl.py", line 37, in __init__ 2024-01-28 13:30:32.168601251 edge_tpu_delegate = load_delegate("libedgetpu.so.1.0", device_config) 2024-01-28 13:30:32.168602439 File "/usr/lib/python3/dist-packages/tflite_runtime/interpreter.py", line 162, in load_delegate 2024-01-28 13:30:32.168603549 raise ValueError('Failed to load delegate from {}\n{}'.format( 2024-01-28 13:30:32.168604616 ValueError: Failed to load delegate from libedgetpu.so.1.0 2024-01-28 13:30:32.168605486 2024-01-28 13:30:32.170047019 [2024-01-28 13:30:32] frigate.app INFO : Camera processor started for garage_vorn: 583 2024-01-28 13:30:32.172816130 [2024-01-28 13:30:32] frigate.app INFO : Camera processor started for hof_haus: 585 2024-01-28 13:30:32.175955252 [2024-01-28 13:30:32] frigate.app INFO : Camera processor started for hof_laube: 586 2024-01-28 13:30:32.178686414 [2024-01-28 13:30:32] frigate.app INFO : Camera processor started for garage_hinten: 588 2024-01-28 13:30:32.181556494 [2024-01-28 13:30:32] frigate.app INFO : Camera processor started for laube_maeher: 590 2024-01-28 13:30:32.184597814 [2024-01-28 13:30:32] frigate.app INFO : Camera processor started for laube_Garten: 591 2024-01-28 13:30:32.187944215 [2024-01-28 13:30:32] frigate.app INFO : Camera processor started for garage_hinten_innen: 593 2024-01-28 13:30:32.190958400 [2024-01-28 13:30:32] frigate.app INFO : Capture process started for garage_vorn: 594 2024-01-28 13:30:32.194004536 [2024-01-28 13:30:32] frigate.app INFO : Capture process started for hof_haus: 598 2024-01-28 13:30:32.196950398 [2024-01-28 13:30:32] frigate.app INFO : Capture process started for hof_laube: 602 2024-01-28 13:30:32.200098151 [2024-01-28 13:30:32] frigate.app INFO : Capture process started for garage_hinten: 608 2024-01-28 13:30:32.203626557 [2024-01-28 13:30:32] frigate.app INFO : Capture process started for laube_maeher: 614 2024-01-28 13:30:32.207971269 [2024-01-28 13:30:32] frigate.app INFO : Capture process started for laube_Garten: 631 2024-01-28 13:30:32.212493902 [2024-01-28 13:30:32] frigate.app INFO : Capture process started for garage_hinten_innen: 677 2024-01-28 13:30:32.305915429 [2024-01-28 13:30:32] frigate.app WARNING : The current SHM size of 67.1MB is too small, recommend increasing it to at least 114.69999999999997MB.
Die Ausgabe beim Test der Coral-TPU im Container scheinen zu passen:
frigate@frigate:~$ lspci -nn | grep 089a 01:00.0 System peripheral [0880]: Global Unichip Corp. Coral Edge TPU [1ac1:089a] frigate@frigate:~$ ls /dev/apex_0 /dev/apex_0 frigate@frigate:~$ ls /dev/apex_1 /dev/apex_1 frigate@frigate:~$
Wo könnte ich da noch etwas verbogen haben? Für einen Ratschlag wäre ich dankbar.
Edit: so sieht die Systeminfo aus:
Ralf
-
@radi ,
bei dir wird schon mal nur eine TPU angezeigt, deswegen kannst du auch nur eine durchreichen.frigate@frigate:~$ lspci -nn | grep 089a 05:00.0 System peripheral [0880]: Global Unichip Corp. Coral Edge TPU [1ac1:089a] 06:00.0 System peripheral [0880]: Global Unichip Corp. Coral Edge TPU [1ac1:089a]
-
@wal Ich habe wohl eine Kleinigkeit nicht beachtet. Du hast einen Adapter zwischengeschaltet. Das war mir gar nicht aufgefallen. Ich habe die Karte in einem M2 A/E Slot, der eigentlich für BT/WLan-Adapter gedacht ist, stecken. Der Rechner ist ein Gigabyte BRIX Barebone GB-BRi7H-10710. Ich vermute, dass der von dir verlinkte Adapter dafür nicht geeignet ist. Gibt es eine Möglichkeit, die TPU in diesem Rechner zu betreiben oder ist dies doch der richtige Adapter?
-
In den meisten M2 A/E Slots sind nur 1 Lane durchgeschaltet, deshalb wird nur eine TPU erkannt
Es muss aber auch mit einer TPU gehen, halt nur eine durchreichen.@radi sagte in Proxmox LXC mit Frigate:
Gibt es eine Möglichkeit, die TPU in diesem Rechner zu betreiben oder ist dies doch der richtige Adapter?
Das kann ich dir nicht sagen, ich habe diesen Rechner nicht. Mit dem verlinkten Adapter, funktioniert die Karte fast in jedem Rechner der einen PCIe x1 Steckplatz hat..
-
@wal
Hast du zufällig Deepstack auch mit am Laufen?
Suche gerade noch nach einer guten Anleitung.VG
-
@tschaeens ,
nein damit habe ich mich noch nicht befasst, falls du es aber zum Laufen bewegen kannst wäre eine Anleitung nicht schlecht. -
@wal
Ich probier heut abend mal mein Glück!
Falls ich es zum Laufen bekomme stell ich gerne eine Anleitung zur Verfügung.
Achja kann ich den proxmox kernel jetzt updaten, weil du mal geschrieben hast, dass dann der coral nicht mehr durchgereicht wird? -
@tschaeens sagte in Proxmox LXC mit Frigate:
Achja kann ich den proxmox kernel jetzt updaten, weil du mal geschrieben hast, dass dann der coral nicht mehr durchgereicht wird?
Ich musste auf einen unprivilegierten Container umstellen, danach ging es wieder.
Vor einem Update des Kernels, update ich erst immer dessen Kernelheader (z.Z. "apt install proxmox-headers-6.5.11-8-pve ") damit die initrd ohne Fehler erstellt werden. -
@wal
kay vielen Dank. Also mit etwas basteln habe ich es hinbekommen.
Ich habe zu Testzwecken einen neuen lxc mit docker und portainer aufgesetzt. Anschließend folgende zwei Befehle durchgeschickt:Zuerst Deepstack installieren:
docker run -d \ --name deepstack \ -e VISION-DETECTION=True \ -e VISION-FACE=True \ -e VISION-SCENE=True \ -p 5000:5000 \ -v /opt/deepstack:/datastore \ -v /opt/deepstack/custom_models:/modelstore/detection \ deepquestai/deepstack
Danach wird Double Take installiert:
docker run -d \ --name=double-take \ --restart=unless-stopped \ -p 3000:3000 \ -v /opt/doubletake/storage:/.storage \ skrashevich/double-take:v1.13.11.8
Als Letztes die config yml in Double Take an eigene Bedürfnisse anpasssen:
# Double Take # Learn more at https://github.com/skrashevich/double-take/#configuration mqtt: host: IP username: XXX password: XXX frigate: url: http://IP:5000 stop_on_match: true labels: - person attempts: # number of times double take will request a frigate latest.jpg for facial recognition latest: 10 # number of times double take will request a frigate snapshot.jpg for facial recognition snapshot: 10 # process frigate images from frigate/+/person/snapshot topics mqtt: true # add a delay expressed in seconds between each detection loop delay: 0 detectors: deepstack: url: http://IP:5000
Ich werde als nächstes versuchen das Projekt direkt in Frigate mit rein zu packen, da Frigate ja sowieso bereits im Docker läuft.
-
@tschaeens ,
in der config.yml von Frigate muss nichts geändert werden ? -
@wal
an der Frigate.yaml muss nichts geändert werden. Also bei mir läufts komplett stabil. Double-Take kommt auch im Adapter an. -
@tschaeens ,
habs getestet Double Take läuft und kommt im Adapter an, Deepstack funktioniert bei mir noch nicht und wird in Double Take rot angezeigt. Habe den Port nur auf 4000 geändert, da der 5000 ja von frigate genutzt wird. -
@tschaeens ,
es läuft nachdem ich einen eigenen LXC in Proxmox für deepstack erstellt habe.
Wie werden die Gesichter der Personen angelernt ? -
@wal leg beim Reiter "train" einen Ordner mit zB deinem Namen an. Lade dort Bilder von dir hoch. Wenn er Bilder mit dir erkennt, wird der Ordnernamen dann angezeigt (also dein Name)
EDIT: trainieren musst du die Gesichter noch. Bin nur noch unterwegs, sonst wäre ich ausführlicher