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 .

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 .

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 .

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 .

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 .

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 .

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
Waar voor je geld: 5 scheerapparaten met roterende koppen voor minder dan 65 euro
© ID.nl
Gezond leven

Waar voor je geld: 5 scheerapparaten met roterende koppen voor minder dan 65 euro

Op zoek naar een nieuw scheerapparaat? Op Kieskeurig.nl vind een groot assortiment. Wij bekeken scheerapparaten met roterende koppen met een prijs van onder de 65 euro. De meeste modellen zijn zowel nat als droog te gebruiken en het merendeel van de door ons gevonden scheerapparaten hebben een reviewscore van 7,5 en hoger.

Philips Shaver 3000 Series S3143/00

De Philips Shaver 3000 Series S3143/00 wordt op Kieskeurig.nl aangeboden als elektrisch scheerapparaat voor nat en droog scheren, met roterende scheerkoppen. Het apparaat heeft een opgegeven batterijduur van 60 minuten, maar heeft even lang nodig om volledig op te laden. Het apparaat is afspoelbaar en bedoeld om ook onder de kraan te reinigen.

De messen van dit scheerapparaat zijn zelfslijpend. De Philips Shaver 3000 wordt goed beoordeeld op Kieskeurig.nl: bij dit product staat een gemiddelde score van 9,0, gebaseerd op 56 reviews van gebruikers.

Remington XR1600

Bij de Remington XR1600 zie je meteen dat het om een roterend elektrisch scheerapparaat gaat met een ingestelde minimale haarlengte van 0,02 cm (0,2 mm). De kop werkt met vijf ringen/mesjes en is bedoeld voor heel kort scheren, bijvoorbeeld hoofdhaar of een heel korte stoppel. De voeding loopt via een oplaadbare batterij; bij een volle lading geeft de fabrikant een gebruiksduur van 60 minuten op.

Laden gebeurt in ongeveer een uur via de meegeleverde lader. Dit scheerapparaat kun je nat en droog gebruiken. De XR1600 heeft een geïntegreerde trimmersetfunctie en een minimale verstelbare lengte die gelijk is aan de kortste stand. In de reviewsectie op Kieskeurig.nl wordt een gemiddelde gebruikersscore van 8,2 op basis van zes reviews genoemd.

Remington Style Series R3

Dit model uit de Style Series R3-lijn heeft een scheerunit dat vast is gemonteerd en ontworpen is voor droog scheren. De opgegeven accuduur bedraagt 40 minuten, met een opvallend lange laadtijd van ongeveer 4 uur via netstroom.

Deze Remington is afspoelbaar onder de kraan en is voorzien van een geïntegreerde precisietrimmer voor het bijwerken van randen. op Kieskeurig.nl krijgt de Remington Style Series R3 een gemiddelde gebruikersscore van 7,5 op basis van 14 reviews.

Philips Shaver Series 1000 S1142/00

De Philips Shaver Series 1000 S1142/00 is een model in de lagere nummerreeks van Philips en is eigenlijk een scheerkit. De batterijduur van deze shaver is rond de 40 minuten, maar heeft maar liefst 8 uur nodig om volledig opgeladen te worden.

De kop is opgebouwd uit drie ringen. Het scheerapparaat is onder de kraan af te spoelen en dus ook geschikt voor nat scheren; bij de accessoires vinden we een extra beschermkapje

Remington PR1350 PowerSeries Plus

Bij de Remington PR1350 gaat het om een PowerSeries-model met drie roterende scheerringen. In de productspecificaties op Kieskeurig.nl staat dat dit een draadloos te gebruiken elektrisch scheerapparaat is voor droog scheren, met een opgegeven accuduur van 40 minuten en een laadtijd van ongeveer 4 uur. Er zit een geïntegreerde precisietrimmer op.

De shaver is verder waterdicht, waardoor je de kop onder de kraan kunt reinigen. In de productinformatie is verder opgenomen dat het apparaat op een ingebouwde accu/netstroom werkt en dat er een gebruikshandleiding wordt meegeleverd. Op de reviewpagina van Kieskeurig.nl staat een gemiddelde beoordeling van 8,5, gebaseerd op 61 goedgekeurde reviews.

▼ Volgende artikel
Coöpgame Horizon Hunters Gathering van Guerrilla Games onthuld
Huis

Coöpgame Horizon Hunters Gathering van Guerrilla Games onthuld

Guerrilla Games en Sony hebben vanmiddag de coöperatieve actiegame Horizon Hunters Gathering aangekondigd, een nieuwe game binnen de Horizon-reeks.

Het spel, dat op een nog onbekend moment op PlayStation 5 en pc uitkomt, was enkele jaren geleden al deels gelekt. Toen was al bekend dat de game een speelser uiterlijk zou krijgen dan de wat volwassener vormgegeven Horizon-hoofddelen.

Op PlayStation Blog wordt gemeld dat spelers met z'n drieën een team kunnen vormen en als Hunters de wereld kunnen beschermen van dodelijke machines. De setting blijft daarbij gelijk aan eerdere games uit de reeks van de Amsterdamse ontwikkelaar. Het is daarnaast ook mogelijk om de game alleen te spelen, of om een team met computergestuurde personages samen te stellen.

Verschillende modi en Hunters

Er zijn twee verschillende modi onthuld. In Machine Incursion is het de bedoeling dat spelers het opnemen tegen golven aan machines, gevolgd door een eindbaas, terwijl Cauldron Descent langere potjes omslaat met constant veranderende ruimtes die het uiterste van spelers vragen.

Watch on YouTube

Spelers kunnen kiezen uit een uniek aantal Hunters, elk met hun eigen speelstijl, zoals mêlee of van een afstand aanvallen. Tussen missies waarbij er gejaagd wordt op machines door kan men socializen in de Hunters Gathering, waar men ook hun personages kan aanpassen, aankopen kan doen en gear kan upgraden.

Aankomende februari wordt een kleinschalige speeltest gehouden, waarvoor mensen zich kunnen aanmelden via het PlayStation Beta Program. In deze test zal het overigens alleen mogelijk zijn om in teamverband te spelen. Een releasedatum voor de uiteindelijke versie van het spel is nog niet bekend.

Over de Horizon-reeks

Horizon Zero Dawn verscheen in 2017 en is zoals gezegd ontwikkeld door het in Amsterdam gevestigde Guerrilla Games. Sindsdien is ook vervolg Horizon Forbidden West uitgekomen, alsmede vr-spel Horizon: Call of the Mountain en Lego Horizon Adventures. Voor het origineel is ook een remaster op de PS5 en pc verschenen.

Ondertussen werkt NCSoft in samenwerking met Sony ook aan Horizon Steel Frontiers, een mmorpg gebaseerd op de franchise die op een nog onbekend moment naar pc, iOS en Android komt.

Nieuw op ID: het complete plaatje

Misschien valt het je op dat er vanaf nu ook berichten over games, films en series op onze site verschijnen. Dat is een bewuste stap. Wij geloven dat technologie niet stopt bij hardware; het gaat uiteindelijk om wat je ermee beleeft. Daarom combineren we onze expertise in tech nu met het laatste nieuws over entertainment. Dat doen we met de gezichten die mensen kennen van Power Unlimited, dé experts op het gebied van gaming en streaming. Zo helpen we je niet alleen aan de beste tv, smartphone of laptop, maar vertellen we je ook direct wat je erop moet kijken of spelen. Je vindt hier dus voortaan de ideale mix van hardware én content.