Touch Designer voorbeeld: bewegingsdetectie met webcams

Door admin, 20 maart 2023

Zoals vaak bij codering zijn er verschillende benaderingen om eenzelfde doel te bereiken, bijvoorbeeld door verschillende technieken te gebruiken en componenten op een andere manier op te zetten. Dit artikel toont twee verschillende benaderingen voor het detecteren van beweging met een enkele webcam.

Dit artikel richt zich op het vastleggen van bewegingsgegevens met eenvoudige webcams. Dit artikel en dit voorbeeld combineren 2 basistutorials over dit onderwerp, een eerste die gebaseerd is op de vergelijking van een vertraagde webcamregistratie en een tweede die gebruik maakt van een component genaamd Optical Flow component.

Beide voorbeelden gaan uit van gegevens die met een webcam in het netwerk worden ingevoerd. Daarvoor gebruiken we een Videodevice in Top. Het Videoapparaat in TOP kan worden gebruikt om video op te nemen van een externe camera, capturekaart, capturedongle, IP-camera of videodecoder die op het systeem is aangesloten.

 

Voorbeeld 1: Eenvoudige bewegingsdetectie

Het eerste voorbeeld begint met een Texture 3D TOP die een aantal frames in het werkgeheugen (cache) van de applicatie opslaat om ze met elkaar te vergelijken. Time Machine vervormt beelden alleen in de tijd. De vergelijking van de resulterende beelden gebeurt door een compositie die is ingesteld op "Toevoegen".  Zo krijgen de overlappende pixels van de twee beelden kleur, de rest blijft zwart. De rest van het netwerk is vergelijkbaar met het analysegedeelte van het volgende voorbeeld.

Easy movement detection is de link naar de (extreem snelle) youtube tutorial.

 

Voorbeeld 2: rtichtingsdetectie met een webcam

Met de optische stroom en wat CHOP-verwerking kunnen we een relatief zuiver signaal krijgen van de algemene bewegingsrichting (links/rechts/omlaag/omhoog). We kunnen deze signalen dan gebruiken om dingen te activeren op basis van deze richtingen.

Click here for more info

 

The optical flow component splitst de bewegingsdetectie op in twee kleurkanalen, het rode voor de horizontale beweging, het groene voor de verticale beweging. Om horizontale of verticale bewegingsgegevens te verkrijgen is de structuur van de netwerken voor beide soorten gegevens vrijwel gelijk.

De horizontale beweging (gebaseerd op het rode kanaal) is het deel aan de onderkant van bovenstaande schermafbeelding. Met een treshold top kunnen we de gegevens van de horizontale gegevens van links naar rechts splitsen en omgekeerd. Deze beeldgegevens worden geanalyseerd en teruggebracht tot één pixel die in intensiteit verandert. We hebben een Topto gebruikt om de waarde van de intensiteit om te zetten in getallen (een getal boven nul, voor de beweging van links naar rechts en omgekeerd). De rest van de Topto's dienen vooral om de waarden te hernoemen en de hoeveelheid gegevens te filteren.

We kunnen dit principe herhalen voor de verticale beweging (gebaseerd op het groene kanaal).

 

Download the example:

Click here to download the example.

Een korte beschrijving van de tutorial: deze tutrial laat twee basistechnieken zien, gebaseerd op het beeld van een enkele webcam om bewegingsgegevens in Touchdesigner te krijgen. Probeer als uitbreiding van dit voorbeeld hetzelfde te doen met twee webcams - of gebruik de bewegingsgegevens om parameters van een geluidsgolf te genereren en te wijzigen.