Pulserkennung

Aus toolbox_interaktion
Wechseln zu: Navigation, Suche

Die Idee

Es gibt schon längere zeit Apps, die den Puls des Benutzers durch "filmen" des Fingers mit dem Smartphone feststellen können. Nachdem im Internet ein Artikel zur Eulerschen Video Verstärkung (eulerian video magnification - EVM) gefunden wurde und als Beispielanwedung ein Sichtbarmachen des Pulses gezeigt wurde, hat man sich entschlossen eine Weiterführung der vorher genannten App zu schreiben.

Das Prinzip

Es wird der Videostream einer Webcam eingelesen das Gesicht identifiziert und anschließend auf einen kleinen Bereich um das Gesicht herum der EVM-Algorithmus angewendet. Danach müssen nur noch der Mittelwert des Farbwertes ermittelt und die Maxima gezählt werden.

Programmierumgebung

Für dieses Projekt wurde Codeblocks V10.5 mit den Openframeworks Libs verwendet.


Details und Problematik

Um das Programm zu optimieren wurde das Gesichtstracking einem Tastendruck zugewiesen. Wenn es Deaktiviert ist, wird statt dem Bereich um das Gesicht ein vordefinierter Ausschnitt in der Mitte des eingelesenen Videostreams verwendet, da das Gesichtstracking nicht "Reibungslos" genug funktioniert und einen Zittereffekt hervorruft wenn ein Bereicht um das Gesicht definiert wird. Des Weiteren müssen die Variablen (MotionAmp, CutOffWavelenght, Low- und Highfrequency, ChromaticAmp) bei jeder Benutzung an die Lichtverhältnisse angepasst werden, denn bei falschen Werten wird streckenweise schon die Körperbewegung beim Atmen als "Puls" identifiziert und gezählt. Eine letzte Problematik des Projekts ist das man bei Verwendung der Anwendung sehr still sitzen und der Hintergrund bewegungsfrei sein muss.


Fazit

Nach anfänglichen Schwierigkeiten lies sich das Projekt angebracht zügig durchführen. Die Implementierung ist nich so reaktiv wie sie sein sollte, damit gemeint ist die einigermasen lange Dauer bis sich ein Grundmittelwert des Farbwerts gebildet hat und die eigentliche Messung beginnt. Die oben beschriebenen Problematiken hindern die Anwendung jedoch nicht daran bei richtiger Bedienung ein relativ akkurates Ergebnis zu liefern.

Nützliche Links & Source Code

-Artikel zum Evm-algorithmus

-OpenFrameworks setup guide for Codeblocks

-Codeblocks

-Source Code