Overview
The new technology known as Eulerian Video Magnification (EVM) provides the ability to study very small color changes and movements using video images. Basically, EVM tracks subtle changes in images on a pixel by pixel basis. MIT has produced pioneering open source EVM software which was originally designed to monitor the vital signs of neonatal infants. It has become apparent that such software also provides the ability to detect and study micro-movements in inanimate physical structures such as buildings.
NASA has also done some pioneering work in this area as part of a crew state monitoring system. As part of that effort, NASA has developed a Webcam Pulse Detector which is the subject of this application note. The resulting software is available in github.
With the proper hardware and software, Fitlet running Linux Mint works well as an Optical Heart Rate Monitor.
Hardware
The required hardware consists of:
1. Fitlet
2. Webcam
Software
The main software required is:
1. Webcam-Pulse-Detector. This is a NASA developed open-source python package which optically measures pulse rate using Eulerian Video Magnification techniques.
The Webcam-Pulse-Detector Software is found here:
https://github.com/thearn/webcam-pulse-detector
Installation of Webcam-Pulse-Detector is straightforward. Simply download the .zip file and extract it in a directory of your choice.
Requisite packages for Webcam-Pulse-Detector are:
A. OpenMDAO
B. Python v2.7+
C. Python-Numpy
D. Python-Scipy
E. Pyserial
F. OpenCV v2.4+
2. OpenMDAO v10.3.2 or earlier. Versions later than 10.3.2 will not allow the Webcam-Pulse-Detector application to run due to a variable initialization error.
OpenMDAO stands for Open-Source Multidisciplinary Design, Analysis, and Optimization framework. OpenMDAO is written in python and is heavily contributed to by NASA. It operates as a virtual environment in which other applications can run.
For more about OpenMDAO see:
http://openmdao.org/
For OpenMDAO installation instructions see:
http://openmdao.org/releases/0.10.3.2/d ... stall.html
To obtain OpenMDAO software see:
http://openmdao.org/downloads/archive/
Requisite packages for OpenMDAO are:
A. python-dev (v2.7.5 or higher)
B. python-numpy (v1.6 or higher)
C. python-scipy (v.11 or higher)
D. python-matplotlib
E. gfortran
Running the Application
Running Webcam-Pulse-Detector is a 2-step process. Those steps are:
1. Start the OpenMDAO environment. To do this, navigate to the directory where OPENMDAO resides and issue the command:
. bin/activate
2. Run Webcam-Pulse-Detector. Navigate to the directory where Webcam-Pulse-Detector is located and issue the command:
python get_pulse.py
After a short delay, a webcam window will open. At that point, OpenCV recognizes and begins actively tracking the test subject's face. A green patch which represents the pulse test area also appears. Immediately open opening, the webcam view displays an estimated pulse rate. In as little as 15 seconds, a more accurate reading is displayed.
In addition, a graphical streaming data view is also available. The streaming mode is accessed by pressing the "D" key once a lock has been achieved. The real-time graphical data display includes a pulse waveform.
Results
The results using the Webcam-Pulse-Detector application with Fitlet were very good. OpenCV does an excellent job of tracking the test subjects face, and the pulse rates indicated were very close to the values I manually measured using a watch. I find it particularly amazing that a modestly priced system comprised of a Fitlet and a Logitech webcam can accurately determine a person's pulse using optical, non-contact methods. +1 for technology.
Conclusions
1. The Webcam-Pulse-Detector Application is a very cool application.
2. Fitlet again demonstrates its capabilities and versatility.
Use Fitlet as an Optical Heart Rate Monitor in Linux Mint
Application notes using fitlet. Credit goes to user Hassellbear for publishing more than enough cool application notes to justify a dedicated sub-forum.
Moderator: hassellbear
-
- Posts: 106
- Joined: Mon May 28, 2012 3:25 pm
Return to “Cool stuff with fitlet”
Jump to
- Announcements
- ↳ Read me first
- ↳ News
- ↳ Ordering
- Tensor-PC
- ↳ General Tensor-PC questions
- ↳ Tensor-PC Hardware
- ↳ Tensor-PC Software
- fitlet3
- ↳ General fitlet3 questions
- ↳ fitlet3 hardware
- ↳ fitlet3 software
- ↳ fitlet3 FACET Cards
- Airtop3
- ↳ General Airtop3 questions
- ↳ Airtop3 Hardware
- ↳ Airtop3 Software
- ↳ Airtop3 I3M
- fitlet2 and MBM2
- ↳ General fitlet2 questions
- ↳ fitlet2 hardware
- ↳ fitlet2 software
- ↳ fitlet2 FACET Cards
- ↳ Cool stuff with fitlet2
- Airtop2
- ↳ General Airtop2 questions
- ↳ Airtop2 Software
- ↳ Airtop2 Hardware
- ↳ Airtop2 I3M
- Mature products
- ↳ Airtop
- ↳ General Airtop questions
- ↳ I3M
- ↳ IPC2 (Intense PC2)
- ↳ General IPC2 questions
- ↳ IPC2 availability
- ↳ IPC2 Hardware
- ↳ Linux on IPC2
- ↳ Windows on IPC2
- ↳ Other operating systems on IPC2
- ↳ IPC2 BIOS
- ↳ IPC2 faults and troubleshooting
- ↳ Intense PC and MintBox 2
- ↳ General Intense PC questions
- ↳ Intense PC hardware
- ↳ CPU & Chipset
- ↳ Display interface
- ↳ Memory
- ↳ Storage
- ↳ Ethernet
- ↳ WLAN and miniPCI-e
- ↳ Audio
- ↳ USB
- ↳ Power and heat
- ↳ Linux on Intense PC
- ↳ Linux Mint
- ↳ Other distributions
- ↳ Windows on Intense PC
- ↳ Win7 on Intense PC
- ↳ Win8 on Intense PC
- ↳ Audio
- ↳ Intense PC BIOS
- ↳ Android on Intense PC
- ↳ Intense PC faults and troubleshooting
- ↳ fitlet and MintBox Mini
- ↳ General fitlet questions
- ↳ fitlet performance
- ↳ fitlet hardware
- ↳ Memory
- ↳ Storage
- ↳ Power and heat
- ↳ Mechanical
- ↳ fitlet BIOS
- ↳ Linux on MintBox Mini / Linux on fitlet
- ↳ Windows on fitlet
- ↳ Other operating systems on fitlet
- ↳ FACET Cards
- ↳ fitlet compatible devices
- ↳ Cool stuff with fitlet
- ↳ fitlet faults and troubleshooting
- ↳ fit-PC4
- ↳ General fit-PC4 questions
- ↳ fit-PC4 hardware
- ↳ Windows on fit-PC4
- ↳ Linux on fit-PC4
- ↳ Other operating systems on fit-PC4
- ↳ fit-PC4 BIOS
- ↳ fit-PC4 faults and troubleshooting
- ↳ fit-PC3
- ↳ General fit-PC3 questions
- ↳ fit-PC3 hardware
- ↳ Display interface
- ↳ Storage
- ↳ Audio
- ↳ WLAN and miniPCI-e
- ↳ USB
- ↳ Power and Heat
- ↳ Ethernet
- ↳ Windows on fit-PC3
- ↳ Linux on fit-PC3
- ↳ Other operating systems on fit-PC3
- ↳ fit-PC3 BIOS
- ↳ fit-PC3 accessories
- ↳ Using fit-PC3
- ↳ fit-PC3 faults and troubleshooting
- ↳ fit-PC2
- ↳ General fit-PC2 questions
- ↳ Buying fit-PC2
- ↳ Linux on fit-PC2
- ↳ Linux Mint
- ↳ Ubuntu 9.10
- ↳ Ubuntu 10.04
- ↳ Ubuntu 10.10
- ↳ Ubuntu 11.04
- ↳ Other Linux distributions
- ↳ Ubuntu 8.04
- ↳ Ubuntu 9.04
- ↳ Display driver
- ↳ Multimedia in Linux
- ↳ Multimedia in Mint
- ↳ Windows on fit-PC2
- ↳ Windows 7
- ↳ Windows 7 display driver
- ↳ Audio in Win7
- ↳ Windows XP
- ↳ XP installation
- ↳ Display driver
- ↳ Video playback
- ↳ Audio in XP
- ↳ Other Windows versions
- ↳ Other operating systems on fit-PC2
- ↳ FreeBSD
- ↳ fit-PC2 hardware
- ↳ fit-PC2i hardware
- ↳ Display interface
- ↳ Storage
- ↳ Audio
- ↳ WLAN and miniPCI-e
- ↳ USB
- ↳ Auto-ON
- ↳ Power and Heat
- ↳ Ethernet
- ↳ RTC & System clock
- ↳ fit-PC2 BIOS
- ↳ BIOS updates fit-PC2
- ↳ BIOS updates fit-PC2i
- ↳ fit-PC2 accessories
- ↳ Using fit-PC2
- ↳ HTPC
- ↳ Server
- ↳ Control
- ↳ Verified displays
- ↳ Car PC
- ↳ fit-PC1 questions
- ↳ fit-PC Slim questions
- ↳ uSVR
- ↳ General uSVR questions
- ↳ IPC3
- ↳ General IPC3 questions
- ↳ IPC3 Software
- ↳ IPC3 Hardware
- ↳ FACE modules
- ↳ FACE Modules
- ↳ General FACE Module questions
- Compulab accessories
- ↳ fit-Headless and fit-Headless 4K
- ↳ fit-Uptime
- ↳ fit-statUSB
- ECN/PCN
- ↳ fitlet3 ECN/PCN
- ↳ Tensor-I20 ECN/PCN
- ↳ Tensor-I22 ECN/PCN
- ↳ fitlet2 ECN/PCN
- ↳ Airtop3 ECN/PCN
- ↳ IPC3 ECN
- ↳ fitlet1 ECN
- ↳ IPC2 ECN
- ↳ IPC1 ECN
- ↳ Airtop2 ECN
- ↳ Airtop1 ECN
- ↳ fit-PC4 ECN
- ↳ fit-PC3 ECN
- ↳ fit-PC2 ECN
- ↳ FACE Modules ECN
- ↳ FACET Cards ECN
- Wish list
- ↳ Addressed requests