ID.nl logo
Nooit meer een valse melding van je ip-camera
© Reshift Digital
Zekerheid & gemak

Nooit meer een valse melding van je ip-camera

Het is interessant om enkele ip-camera’s op te hangen, maar als de nieuwigheid eraf is, worden de beelden nog maar zelden bekeken. Bewegingsmeldingen kunnen helpen, maar worden door veel valse meldingen ook al snel genegeerd. Met Frigate NVR detecteer je veel nauwkeuriger personen, dieren en objecten, geholpen door een AI-model. Ook kun je handiger inspelen op meldingen door een integratie met Home Assistant.

In dit artikel laten we in enkele stappen zien hoe je Frigate NVR installeert en optimaliseert, zodat je alleen nog maar een melding van je ip-camera krijgt als dat echt nodig is.

  • Installatie van Frigate NVR via Docker of Home Assistant
  • Ip-camera instellen met de juiste streams
  • Streams configureren
  • Stream optimaliseren
  • Personen en objecten detecteren
  • Gebieden en zones aangeven die voor ongeweste detecties zorgen

Lees ook: Houd toezicht op je huis en tuin: 12 beveiligingscamera's met app getest

Code downloaden In deze workshop worden wat voorbeelden van stukken code gegeven. Omdat overtikken van code erg foutgevoelig is, kun je die code beter downloaden en daarna bekijken of kopiëren. Je vindt de code in het bestand frigcode.txt.

De meest praktische methode om beelden van ip-camera’s op te nemen, is een network video recorder (NVR). Alles wordt dan centraal én lokaal verwerkt. Bekende opties zijn Blue Iris, Synology Surveillance Station, Unifi Protect en Frigate NVR. Steeds vaker wordt AI toegepast. Niemand heeft immers zin om de hele dag naar camera-feeds te kijken. Liever ontvang je een melding als er echt iets interessants gebeurt, zonder overvloed aan valse meldingen natuurlijk.

Blue Iris biedt slimme detectie met CodeProject.ai of DeepStack. Maar de afhankelijkheid van Windows is voor velen een probleem. Frigate NVR is een andere bekende optie en werkt onder Linux. Recent verscheen een grote update naar 0.12.0 waar we in dit artikel mee aan de slag gaan. Aantrekkelijk is de detectie van objecten en personen die je kunt versnellen met onder meer een Google Coral Edge TPU: een kleine chip die machinelearning-taken kan uitvoeren voor een snellere en efficiëntere verwerking. Deze chip gaan we ook gebruiken. Optioneel zorgt een integratie met Home Assistant voor nog meer slimme bewakingsmogelijkheden.

01 Installatie via Docker

Een gebruikelijke manier om Frigate te installeren is via Docker met Compose. Voor je docker-compose.yml-bestand kun je het voorbeeld gebruiken dat je vindt op de installatiepagina van Frigate. Waar je vooral op moet letten, zijn de volumes voor het configuratiebestand (config.yml) en media, zoals opnames en snapshots. Voor media is om te beginnen een paar gigabyte genoeg. Daarna hangt de benodigde ruimte vooral af van het aantal dagen waarvan je opnames gaat bewaren.

Voordat we Frigate gaan starten, zorgen we eerst voor de juiste camerastreams. Als deze streams werken, gaan we verder met de detectie van personen en objecten.

Voor de installatie kun je onder andere Docker Compose gebruiken.

02 Installatie via Home Assistant

Frigate kun je ook als add-on installeren onder Home Assistant OS. Let er in dat geval wel op dat singleboardcomputers, zoals de Raspberry Pi en Odroid N2+, die vaak voor Home Assistant worden gebruikt niet altijd snel genoeg zijn. Vooral bij objectdetectie met meerdere camerastreams kun je zonder extra hardware tegen beperkingen aanlopen.

Voor de installatie voeg je deze repository toe aan de add-on-winkel, waarna je Frigate eenvoudig kunt installeren: https://github.com/blakeblackshear/frigate-hass-addons.

Voor de configuratie van Frigate maak je een bestand frigate.yml in de configuratiemap (/config) van Home Assistant.

Hier installeren we Frigate als add-on voor Home Assistant.

03 Welke ip-camera?

Voor Frigate gebruik je bij voorkeur een ip-camera die H.264 ondersteunt, wat gelukkig heel gangbaar is. Hoewel het nieuwere H.265 een betere compressie geeft, is de compatibiliteit met browsers en Home Assistant niet optimaal. Een camera sluit je voor de beste stabiliteit aan via een netwerkkabel. Voor het gemak kun je Power over Ethernet (PoE) gebruiken, waarbij de camera vanuit de switch of een PoE-injector voeding krijgt via diezelfde netwerkkabel.

Het is een pluspunt als de camera meerdere streams kan aanbieden met verschillende resoluties. Je kunt dan opnemen in de hoogste resolutie en voor objectdetectie een lagere resolutie gebruiken, zonder dat je deze streams hoeft om te zetten. Bekende merken die vaak worden aanbevolen, zijn Dahua, Hikvision en Amcrest.

In dit artikel gebruiken we een camera van Hikvision. Het is raadzaam een camera te kiezen die RTSP-streams ondersteunt. Daar gaan we in dit artikel ook mee werken. Controleer in andere gevallen de compatibiliteit van jouw camera. In de documentatie van Frigate vind je nog andere opties om streams op te halen van bekende camera’s.

In de documentatie vind je diverse camera-specifieke configuraties.

04 Hoofdstream voor opnames

We gaan eerst de camera instellen zodat deze de juiste streams aanbiedt met de juiste resolutie en framerate. Open daarvoor de configuratie van jouw ip-camera. De camera van Hikvision kun je via de browser configureren. We gaan twee streams gebruiken: een hoofdstream voor het maken van opnames en een substream voor objectdetectie en snapshots. Voor de hoofdstream kiezen we de hoogst mogelijke resolutie (in dit geval 2688 × 1520 pixels) en een beeldfrequentie (framerate) van naar voorkeur 15 fps. Bij de optie i-frame-interval vullen we 30 in. Zorg dat H.264 is geselecteerd als je die keuze hebt en gebruik geen opties als H.264+.

Voor de opnames gebruiken we de hoogst mogelijke resolutie.

05 Substream voor detectie

De camera van Hikvision ondersteunt naast de hierboven genoemde hoofdstream ook een substream. Standaard is de hoogste resolutie voor die substream 640 × 480 pixels. Optioneel kun je via de systeeminstellingen nog een derde stream instellen. Die biedt een hogere resolutie, tot 1280 × 720 pixels. Dat heeft onze voorkeur en daarom kiezen we ervoor deze derde stream in te schakelen. Hiermee verlies je wel opties als gezichtsherkenning door de camera zelf, H.264+ en H.265+, maar die zijn niet nodig voor deze toepassing. Verder selecteren we H.264. Voor de substream selecteren we een resolutie van 1280 × 720 pixels, en een beeldfrequentie en i-frame-interval van 6 fps. Meer is voor detectie niet nodig.

Voor de detectiestream mag je een lagere resolutie kiezen.

Test de cameraverbinding We raden je aan om met een programma als VLC media player de verbinding met je camera via RTSP te controleren. Hiervoor installeer je www.videolan.org. Kies dan onder Media de optie Netwerkstream openen en blader naar de url. Voor onze camera van Hikvision is dat rtsp://gebruiker:wachtwoord@ipadres:554/Streaming/Channels/101 voor de hoofdstream. De derde stream is beschikbaar via rtsp://gebruiker:wachtwoord@ipadres:554/Streaming/Channels/103. Zulke streams zijn voor elke ip-camera anders.

Test de verbinding met je camera via RTSP met bijvoorbeeld VLC media player.

06 Configuratie

We beginnen met het toevoegen van de detectiestream. Daarvoor zetten we de onderstaande regels in het configuratiebestand config.yml. We geven hierin de camera een naam (oprit), configureren we de RTSP-stream en definiëren we de resolutie, maar zetten we de detectie nog even uit:

De code kun je bekijken in het bestand frigcode.txt, te downloaden via deze pagina.

Je kunt Frigate nu starten met dit commando in dezelfde map als het bestand docker-compose.yml:

docker compose up

Met dit commando krijg je in de terminal meldingen te zien. Als alles werkt, kun je Frigate ook als achtergrondproces starten met deze opdracht:

docker compose up -d

De parameter -d staat voor daemon. Je krijgt dan geen meldingen te zien. Je kunt dan de terminal sluiten zonder Frigate te stoppen. Als je na het starten met een browser naar http://ipadres:5000 bladert, zie je als het goed is de beheerdersomgeving met een beeld van de camera. Verander als het werkt achter detect de optie enabled naar True en herstart je container. Hierna zullen personen worden gedetecteerd.

We testen de detectiestream via de beheeromgeving van Frigate.

07 Optimalisaties toepassen

Als de stream werkt, kun je enkele optimalisaties gaan toepassen. Bij de huidige configuratie zal ffmpeg de processor gebruiken voor het (softwarematig) decoderen van de streams. Het is verstandig hardwareversnelling te gebruiken als je die mogelijkheid hebt. Hoewel een losse grafische kaart kan worden gebruikt, is een geïntegreerde gpu meer dan toereikend. Voor de negende generatie Intel-processor die we in dit artikel gebruiken, voegen we de parameter preset-vaapi toe als parameter onder ffmpeg.

De code kun je bekijken in het bestand frigcode.txt, te downloaden via deze pagina.

Vanaf de tiende generatie gebruik je preset-intel-qsv-h264. In de documentatie van Frigate vind je nog aanwijzingen voor verschillende andere systemen. Na het maken van de aanpassing zul je de Docker-container opnieuw moeten starten. Als je daarna via de beheerdersomgeving naar System gaat, zie je of een gpu wordt gebruikt voor hardware-versnelling.

Via de systeempagina kun je controleren of hardwareversnelling wordt gebruikt.

08 Detecteren personen en objecten

Frigate zal bij elke detectie een gebeurtenis maken met daarbij een clip en/of snapshot. Op het snapshot zie je een afbeelding van de gedetecteerde persoon met een kader eromheen en een percentage dat aangeeft hoe zeker het model is dat het een persoon is.

Behalve personen kun je ook bijvoorbeeld honden, katten, paraplu’s, auto’s, fietsen of paarden laten detecteren via sleutelwoorden die je aan de configuratie toevoegt. In de documentatie bij Frigate vind je een enorme lijst met opties. Ook deze opties worden als gebeurtenis toegevoegd en je kunt hier eventueel op filteren. Daarnaast kun je bijvoorbeeld ook op camera en datum filteren.

Standaard zal Frigate de processor gebruiken voor detectie. Dit gaat doorgaans prima met enkele streams, afhankelijk van de resolutie van de detectiestream en de snelheid van de processor. Een speciale detector kan de taken wel enorm versnellen. Bekende opties zijn TensorNT voor grafische kaarten van Nvidia en OpenVINO die werkt op niet al te oude Intel-systemen. De tijd die het AI-model nodig heeft om uitvoer te genereren, ook wel inference speed genoemd, is, afhankelijk van je opstelling, veel korter met zulke detectors. Een Google Coral Edge TPU (zie het gelijknamige kader), onder meer verkrijgbaar in usb-uitvoering, is een van de populairste opties. Alleen is de beschikbaarheid soms beperkt door de snelle opmars van AI.

De detectie van personen gaat veel sneller met speciale hardware.

Google Coral Edge TPU Bij machinelearning worden vaak krachtige servers in de cloud gebruikt. Erg snel en efficiënt is dat echter niet en er zijn voor bepaalde toepassingen zorgen over privacy. Met een zogeheten Edge TPU kun je lokaal je machinelearning-taken versnellen. De Google Coral Edge TPU is een populaire optie, verkrijgbaar als usb-dongel of mini-PCIe-adapter.

Hij is ontwikkeld voor het TensorFlow-platform van Google, een opensource-softwarebibliotheek. Frigate gebruikt die bibliotheek voor het detecteren en identificeren van personen en objecten. Het achterliggende model is daarbij getraind voor bijvoorbeeld personen, auto’s, dieren of andere objecten. De Edge TPU zal de detectie enorm versnellen, waardoor de processorbelasting in Frigate tot een minimum beperkt kan blijven. Dit merk je zeker in het stroomverbruik en daarmee de kosten voor 24x7-gebruik. Helaas is met name de usb-variant soms lastig te verkrijgen en al wat prijziger dan voorheen. De uitvoering met mini-PCIe is eenvoudiger te verkrijgen, maar let op: deze past niet in elk M.2-slot.

De kleine Google Coral Edge TPU kan objectdetectie enorm versnellen.

09 Coral Edge TPU toevoegen

Voor dit artikel gaan we de usb-uitvoering van de Coral Edge TPU gebruiken. Je hoeft op de host in principe geen drivers te installeren voor de detector, omdat je deze doorgeeft aan de Docker-container, zoals je in docker-compose.yml kunt zien. De container bevat alle vereiste drivers. In de configuratie van Frigate voeg je de volgende regels toe:

De code kun je bekijken in het bestand frigcode.txt, te downloaden via deze pagina.

Het is overigens wel handig wat drivers en software te installeren op je Docker-systeem, zodat je kunt testen of het apparaat werkt. Zeker als je zoals in onze situatie een Linux-container in Proxmox gebruikt en de hardware voor die container beschikbaar wil maken, wat soms een uitdaging kan zijn. Voor het testen kun je de instructies van Coral volgen. Merk op dat de gebruikte PyCoral-bibliotheek beschikbaar is voor ten hoogste Python 3.9. Debian 11 en Ubuntu 20.04 hebben een nieuwere Python-versie. Eventueel kun je de oudere Python-versie dan via pyenv installeren om de test te doen. Na enkele installatiestappen kun je een model testen met de afbeelding van een papagaai.

Volg de instructies bij Coral voor het testen van de detector.

10 Gebieden maskeren

Het is nuttig om bepaalde gebieden op het camerabeeld die ongewenste detecties geven te maskeren om de systeembelasting te beperken. Denk bijvoorbeeld aan een overhangende struik die beweegt in de wind.

Je kunt zien welke gebieden veel detecties geven. Open hiervoor het camerabeeld, klik op Show options en zet een vinkje bij Motion boxes. Je ziet nu rode vakjes op het camerabeeld rond plekken weer beweging werd gedetecteerd. Klik op Mask & Zone creator. Klik op Add om een eerste masker toe te voegen. Klik op het camerabeeld op plekken waar je een punt toe wil voegen of houd een punt ingedrukt om deze te verslepen. Je ziet nu een hele reeks coördinaten die je handmatig aan je configuratie moet toevoegen bij de betreffende camera, bijvoorbeeld:

De code kun je bekijken in het bestand frigcode.txt, te downloaden via deze pagina.

Hierna moet je Frigate herstarten. Je kunt meerdere maskers toevoegen voor verschillende gebieden in het beeld. Uiteraard kun je dit ook bij andere camera’s doen.

Bekijk welke gebieden ongewenste detecties geven, zodat je die kunt maskeren.

Zones aanwijzen

Binnen je beheeromgeving kun je zones aanmaken voor delen van je camerabeeld. Dat werkt vergelijkbaar met het maskeren van gebieden. Op het beeld van je oprit wijs je bijvoorbeeld een apart gedeelte aan met daarin de voordeur. Vaak zul je immers extra geïnteresseerd zijn in personen die voor de voordeur staan.

Zones helpen je ook om ongewenste meldingen tegen te gaan. Neemt de camera bijvoorbeeld een stukje van de weg mee, dan helpen zones je om auto’s die langsrijden of personen die langslopen te negeren, door jouw terrein als zone in te stellen. In je configuratie voeg je de zones dan weer toe bij de betreffende camera:

De code kun je bekijken in het bestand frigcode.txt, te downloaden via deze pagina.

11 Opnames en snapshots

Voor opnames in hoge kwaliteit kun je voor de betreffende camera een extra stream toevoegen met onder roles de optie record. Als je geen aparte stream hebt, kun je eventueel de stream die je voor detectie gebruikt deze extra rol geven. Verder zetten we opnames (onder record) aan met enabled: True. Voor snapshots doen we hetzelfde onder snapshots. Hier wordt de detectiestream voor gebruikt.

Let op: als bepaalde opties in het configuratiebestand uitstaan, heeft het geen effect als je ze via de beheerdersomgeving aanzet! Dat geldt onder meer voor opnames en snapshots. De totale configuratie voor de bewuste camera ziet er dan als hieronder uit:

De code kun je bekijken in het bestand frigcode.txt, te downloaden via deze pagina.

Standaard zal Frigate gebeurtenissen van de laatste tien dagen bewaren, maar je kunt dit op allerlei manieren aanpassen.

De uiteindelijke configuratie voor de betreffende camera.

Geavanceerde opties benutten Frigate geeft je ook nog diverse geavanceerde opties. Zo kun je met wat parameters de detectie nog wat verbeteren, om de incidentele valse melding ook nog tegen te gaan. Ook kun je go2rtc gebruiken, zodat andere systemen zoals Home Assistant de RTSP-streams bij Frigate zelf op kunnen vragen en niet bij de camera (die dat vaak niet aankan).

Ook is integratie met Home Assistant mogelijk. Je kunt dan eenvoudig via Blueprints automatiseringen maken, die zorgen dat je bijvoorbeeld voor bepaalde zones een notificatie ontvangt met clip en snapshot van de gedetecteerde persoon. Merk op dat je voor die integratie een MQTT-broker nodig hebt (bijvoorbeeld de Mosquitto-broker-add-on van Home Assistant), die je dan ook in je configuratie van Frigate moet opnemen.

▼ Volgende artikel
Black Friday bij Simyo: hoge kortingen én tot 40 euro cashback via CashbackXL
Huis

Black Friday bij Simyo: hoge kortingen én tot 40 euro cashback via CashbackXL

Wie deze Black Friday écht wil besparen op zijn mobiele abonnement, komt al snel uit bij de combinatie Simyo en CashbackXL. Want waar de meeste providers één losse korting aanbieden, stapel je hier twee voordelen op elkaar: scherpe Black Friday-prijzen én een royale cashback. Zo wordt mobiel internetten ineens verrassend goedkoop, zonder dat je hoeft in te leveren op snelheid of flexibiliteit.

Black Friday is hét moment om je mobiele abonnement eens goed onder de loep te nemen. Dit jaar pakt Simyo extra groot uit met tot 75 procent korting op alle internetbundels, en wie via CashbackXL bestelt, krijgt daarbovenop tot 40 euro cashback. Een combinatie die de sowieso al betaalbare provider tijdelijk nóg aantrekkelijker maakt.

Tot 75 procent korting op databundels

Tijdens de Black Friday-periode verlaagt Simyo de prijzen van al zijn databundels van 2 tot 30 GB. Bij een tweejarig contract geldt de korting 12 maanden, bij een eenjarig contract 6 maanden. Na deze periode betaal je weer de standaardprijs (die gelukkig ook vrij laag is). Omdat Simyo zijn bundels maandelijks laat aanpassen, profiteer je gedurende je volledige kortingsperiode ook als je van bundel wisselt.

De actietarieven liggen opvallend laag. Zo kost de databundel van 30 GB tijdelijk 1,50 euro in plaats van 7 euro, en betaal je voor 2 GB tijdelijk slechts 50 cent per maand. Wie veel belt, kan voor 1 euro extra per maand onbeperkt bellen toevoegen. Klanten met KPN-thuisinternet krijgen via Simyo Compleet bovendien 10 GB extra data per maand cadeau.

Extra besparen via CashbackXL

Wie deze Black Friday-kortingen wil combineren met cashback, moet via CashbackXL doorklikken naar Simyo. Afhankelijk van je keuze ontvang je:

  • 40 euro cashback bij een nieuw tweejarig sim-only-abonnement

  • 30 euro cashback bij een eenjarig sim-only of een abonnement met telefoon

  • 25 euro cashback bij een verlenging

  • 2,50 tot 20 euro cashback bij prepaid-opwaarderingen

De spelregels

CashbackXL werkt eenvoudig, maar er zijn een paar belangrijke regels om rekening mee te houden. Wie deze stappen volgt, krijgt zijn cashback vrijwel altijd zonder problemen uitgekeerd.

Zoals we hierboven al hebben gemeld, moet je via CashbackXL doorklikken naar Simyo en in dezelfde sessie je bestelling afronden. Dat betekent: niet tussendoor de pagina sluiten of later terugkomen via een andere link. Daarnaast moeten cookies geaccepteerd worden en mag er géén adblocker actief zijn, omdat die de benodigde tracking tegenhouden.

Ook belangrijk: gebruik géén andere kortingscodes tijdens je bestelling, want die kunnen ervoor zorgen dat je cashback wordt afgekeurd. De cashback wordt volgens CashbackXL meestal binnen tien minuten bevestigd, en de daadwerkelijke uitbetaling volgt doorgaans binnen twee maanden. Houd er verder rekening mee dat er geen cashback wordt uitgekeerd bij abonnementen waarvan het maandbedrag onder de 5 euro ligt.

Waarom Simyo?

Simyo maakt gebruik van het 5G-netwerk van KPN, met snelheden tot 300 Mbit/s. Daarbij kun je elke maand je bundels aanpassen en optioneel een dataplafond instellen, zodat internet automatisch stopt wanneer je bundel op is. Je zit dus niet alleen voordelig, maar ook flexibel en veilig.

Volgens CashbackXL loopt de complete Black Friday-actie, inclusief cashback, door tot en met 7 december 2025. Daarna vervallen zowel de extra hoge kortingen op de databundels als de verhoogde cashback-bedragen. Wees er dus snel bij!

▼ Volgende artikel
Tweede ronde voor toptech: ontdek onze nieuwe Vinted-pagina
Huis

Tweede ronde voor toptech: ontdek onze nieuwe Vinted-pagina

Op ID.nl en op het TikTok-kanaal Power Unlimited Tech zie je geregeld tests van de nieuwste gadgets en apparaten. Daarnaast worden op Review.nl (dat ook bij ons moederbedrijf hoort) allerlei producten getest door gewone consumenten. Alles wat na afloop terugkomt, krijgt een tweede kans bij ons. Correctie: bij júllie. Want de Pu Tech Tweedehands-Vintedstore is nú geopend!

View post on TikTok

🧪Wat Review.nl precies doet

Review.nl is ons platform waar consumenten nieuwe producten testen. Want die kijken toch anders naar producten dan professionele reviewers. Hoe iets bevalt in de praktijk, in het dagelijks leven, ook bij langer gebruik: dat is wat veel mensen willen weten voordat ze zelf naar de (web)winkel lopen.

Vaak willen deze consumentenreviewers het product dat ze getest hebben overnemen, omdat ze eigenlijk niet meer zonder kunnen. Maar soms komen er ook spullen terug, bijvoorbeeld omdat testers al iets vergelijkbaars hebben. Die producten zijn vaak maar een paar weken gebruikt. Zo goed als nieuw dus – en daarom verdienen ze een tweede leven.

🎯Tweede ronde op Vinted

De beste exemplaren bieden we nu aan via onze nieuwe Vinted-pagina. Daar vind je tweedekans elektronica die er nog prima uitziet, maar niet meer als nieuw verkocht wordt. Denk aan smartwatches, koptelefoons, muizen en toetsenborden. Het aanbod wordt regelmatig aangevuld, dus het loont om af en toe even te kijken.

Toptechtweedehands!

Check de Pu Tech Tweedehands-Vintedstore