top of page

Contactless, Vital Signs Monitor using PhotoPlethysmographic Imaging, Infrared Sensing Techniques, & Computer Vision

Purpose/Goals: To design/develop a low-cost, contactless, continuous-monitoring prototype that detects and logs skin temperature, heart rate, respiratory rate, blood pressure, and peripheral capillary oxygen saturation (SpO2). It should have the ability to remotely monitor and alert the guardian of any abnormalities detected. During triaging, it should reduce the exposure of the healthcare providers or first responders during infectious (like the current COVID-19 outbreak) and hazardous situations. It should provide continuous monitoring capabilities for monitoring the general health of babies (especially due to SIDS), the elderly, and the sick.

Materials: Raspberry PI 4, MLX90640, Raspberry Pi near-IR camera, and Open Computer Vision were used to
detect vital signs. AWS is used to transmit information to an Ionic app.


Methods: The MLX90640 infrared sensor reads the temperature of the subject. Heart rate is measured by remote Photoplethysmography. The video feed utilizes OpenCV to locate the face and isolate the forehead region. The pumping of the heart creates changes in peripheral blood vessel volume, which causes green pixel fluctuations in the video frames. The heart rate is then extracted from this wave of green intensity through Fast Fourier Transforms. The Respiratory-Rate is isolated by applying a bandpass filter (0.1 Hz to 0.3 Hz) to the red-light wave. Blood-Pressure is calculated using an algorithm from Chandrasekaran 2013. The program uses height and weight to calculate stroke volume. Stroke volume, heart rate, age, and experimental constants are then used to find pulse pressure, which is used to find the diastolic and systolic pressure. SpO2 is evaluated through a formula found in Kanva 2014. The composition of blue versus red pixel counts from each frame is used to identify the blood oxygen levels.

Results/Analysis: A total of 1218 tests were conducted on 48 testers, 25 tests each (5 /vital sign) and 18 other
prototype functionality tests. Manual counting was used for validating the respiratory rate. A pulse-oximeter,
blood-pressure cuff, and a non-contact thermometer were used for the rest. My prototype accuracy exceeded my goal for temperature (96.7% vs 95%), respiratory rate (91.7% vs 90%), and SpO2 (93.5% vs 90%). heart rate (84.8% vs 90%) and blood pressure (69.6% vs 75%) fell below my goal. The primary reason for the percent error in heart rate is the frequency of the artificial light interfering with the dominant signal, making the FFT choose that over the heart rate. Since BP the formula used was a derivative of HR, the errors were further amplified.

Conclusions: Currently, contactless, cost-effective monitors for all 5 vital signs are not available. The overall
accuracy is 87.2% (vs. goal of 88%+). The cost of my prototype is ~$127 dollars. With Pi Zero and mass
production, the cost can be brought down to $60-$75. Hence, my prototype can be used not only for symptomatic monitoring/triaging without risking the healthcare providers but also for continuously monitoring the general health of the patient. It can be used for screening in transit hubs and hospitals to reduce transmission. For future improvements, I would like to improve the accuracy of HR and BP by implementing filtering algorithms to solve light related errors.

bottom of page