Heart Rate Estimation

Interested to know more? Do you have a potential use case? Fill the below form to contact us.






Congratulations. Your message has been sent successfully.
Error, please retry. Your message has not been sent.

Instructions
Input - Click on the “+” button in the video player and upload a single person featured video with good resolution video with less than 40mb.
Output - Infers the video with estimated heart rate in a JSON format.
Note: Upload a video with 25-30 FPS where the person should be in good light conditions, with no movements for optimal performance. Uploading any video that doesn't relate to the model might provide you unexpected results.

Using advanced non-invasive computer vision techniques to estimate the heart rate of the person by iterating over a sequence of frames is achieved through this modelIt allows us to visually see how the person's heart rate changes dynamically. Non-contact video-based physiological measurement has many applications in health care, in the wake of Covid-19 the significance of virtual doctor consultation has become very common as well as routine check of heart rate is also common amongst the general public, using non-contact video-based heart rate estimation can be very simple and affordable to many.

As our lives are becoming more mechanical to work it is necessary to have a continuous monitoring of heart rate, which provides the insides of the health over a period of time. It's a well known science that heart beats can carry a lot more information about the person than just the beats per minute. Such analysis can help a great deal in diagnosing and treating people with mental health issues including depression and dementia. Aspects related to overall patient care gets easier when combined with emotion analysis as well.

Use Cases

Remote Heart Rate Monitoring, Fitness Trainings, Medical Conditions etc.,

API Request and Response

TensorGo Platform provides you with a one stop solution to customize the our API offerings as per your use case by mixing and matching the existing APIs or requesting for a new custom model. This accelerates the development of use cases with minimal or no code towards deep learning applications.

Specification

API Endpoints

#For Getting the API KEY
#(Registration Not Required)
#Enter the email ID to get the api key.
#The api key will be valid for 2 hours only.#
Request:
post/
[URL]
	body:{ 
      		“email”:”xxxxxxx@xxxx.com”
             }
Response:
	 {“msg”:”Key has been sent to your email”}

#For Uploading
#Enter the api key which you have received in
#the email to access any of the below API. The api key should be
#added in the header with name “key”

#For uploading video or image.
Request:
post/
[URL]
	body:{ 
	        ‘app': ”Name of the app”
             	“file”:”Attached File”
             },
	Headers:{
		“Key”:”xxxxxxxxx”
		}
Response:
	{“ID”:”ID”}

#You have to enter the above ID in order to download
#the video or file in the download api. If it’s a image file
#then you will directly receive the infrared image link

#For uploading video link
Request:
post/
[URL]
	body:{
             “app”:”heartRate”
              “link”:”video Link” -> 
             },
	Headers:{
		“Key”:”xxxxxxxxx”
}
Response:
	{“id”:”ID”}

#For uploading video rtsp link
Request:
post/
[URL]
body:{
“app”:”heartRate”
“link”:”video Link” ->
},
Headers:{
“Key”:”xxxxxxxxx”
}
Response:
{“id”:”ID”}

#For Downloading
#Enter the ID which you have received in response
#to use any of the below API. It should be added in the query
#with the name “id”. Enter the app name which you
#have selected while uploading the video,
#to use any of the below api and It should be added
#in the query with the name “app”.

#Download the inferred video:
get/
[URL]?app=”app name”&ID=”ID received”
Headers:{
“Key”:”xxxxxxxxx”
}

#Download the csv file:
get/
[URL]?app=”app name”&ID=”ID received”
Headers:{
“Key”:”xxxxxxxxx”
}
#File Upload
import requests
with open(“File Location”, 'rb') as f:
     response=requests.post({URL},
     data={“app”:'heartRate'},
     files={'file':f},
     headers = {“key”: “*******”})
#Response →  {“msg”:”Key has been sent to your email”}

#Video Link
#Enter the key that you have received in mail
response=requests.post({URL/videolink},
data={'app':'heartRate',”link”:”Video Link”},
headers = {“key”: “xxxxxxx”})
#Response→ {“msg”:”Some Random ID”}

#Video RTSP Link
#Enter the key that you have received in mail
response=requests.post({URL/link},
data={'app':'heartRate',”link”:”Video RTSP Link”},
headers = {“key”: “xxxxxxx”})
#Response→ {“msg”:”Some Random ID”}

#Video Link for Download
#Enter the key that you have received in mail
#Enter the id that you have received in response while uploading
response=requests.get({URL/downloadLink/video},
params={“id”:{ID Received},”app”:'heartRate'},
headers = {“key”: “xxxxxxx”})
#Response→ {“videoLink”:”Video Link for downloading”}

#CSV Link for Download
#Enter the key that you have received in mail
#Enter the id that you have received in response while uploading
response=requests.get({URL/downloadLink/output},
params={“id”:{ID Received},”app”:'heartRate'},
headers = {“key”: “xxxxxxx”})
#Response→ {“fileLink”:”CSV Link for downloading”}
//File Upload
var form = new FormData();
form.append('app', 'heartRate');
form.append('file', files[0]);
fetch({URL}, {
  method: 'POST',
  body: form,
  headers: {
     “key”: “xxxxxxx”
    }})
//Response →  {“msg”:”Key has been sent to your email”}
//You’ll receive a key in in your mail

//Video Link
//Enter the key that you have received in mail
fetch(
  {URL/videolink},{
method:”POST”,
body: {“app”:'heartRate'},
headers: {
      “key”: “xxxxxxx”
    }})
//Response→ {“msg”:”Some Random ID”}

//Video RTSP Link
//Enter the key that you have received in mail
fetch(
  {URL/link},{
method:”POST”,
body: {“app”:'heartRate'},
    headers: {
    “key”: “xxxxxxx”
    }})
//Response→ {“msg”:”Some Random ID”}

//Video Link for Download
//Enter the key that you have received in mail
//Enter the id that you have received in response while uploading
fetch(
  {URL/downloadLink/video+”?
  id={ID Received}&app=heartRate”},{
    headers: {
     “key”: “xxxxxxx”
    }})
//Response→ {“videoLink”:”Video Link for downloading”}

//CSV Link for Download
//Enter the key that you have received in mail
//Enter the id that you have received in response while uploading
fetch(
  {URL/downloadLink/output+”?
  id={ID Received}&app=heartRate'},{
    headers: {
    “key”: “xxxxxxx”    }}
//Response→ {“fileLink”:”CSV Link for downloading”}

#File Upload
curl -X 'POST' \
  '{URL}' \
  -H 'accept: application/json' \
  -H 'Content-Type: multipart/form-data' \
  -F 'file={File Attached}' \
  -F 'app=heartRate’
#Response →  {“msg”:”Key has been sent to your email”}
#You’ll receive a key in in your mail

#Video RTSP Link
#Enter the key that you have received in mail
curl -X 'POST' \
  '{URL/link}' \
  -H 'accept: application/json' \
  -H 'Content-Type: multipart/form-data' \
  -H 'key: xxxxxxxx' \
  -F 'url={Video RTSP Link},' \
  -F 'app=heartRate'
#Response→ {“msg”:”Some Random ID”}

#Video Link
#Enter the key that you have received in mail
curl -X 'POST' \
  '{URL/videolink}' \
  -H 'accept: application/json' \
  -H 'Content-Type: multipart/form-data' \
  -H 'key: xxxxxxxx' \
  -F 'url={Video Link},' \
  -F 'app=heartRate'
#Response→ {“msg”:”Some Random ID”}

#Video Link for Download
#Enter the key that you have received in mail
#Enter the id that you have received in response while uploading
curl -X 'GET' \
  '{URL/downloadLink/video/ + ”?
   id={ID Received}&app=heartRate”}' \
  -H 'accept: application/json'\
  -H 'key: xxxxxxxx' 
#Response→ {“videoLink”:”Video Link for downloading”}

#CSV Link for Download
#Enter the key that you have received in mail
#Enter the id that you have received in response while uploading
curl -X 'GET' \
  '{URL/downloadLink/output/ + ”?
   id={ID Received}&app=heartRate”}' \
  -H 'accept: application/json'\
  -H 'key: xxxxxxxx' 
#Response→ {“videoLink”:”Video Link for downloading”} 
//File Upload
$cf = new CURLFile($files);
$curl = curl_init(URL);
curl_setopt($curl, CURLOPT_URL, URL);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, ['upload' => $cf]);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('key': '********'));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

$data =
{
  'app': 'heartRate'
}
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
//Response →  {'msg':'Key has been sent to your email'}
//You'll receive a key in in your mail

//Video Link
//Enter the key that you have received in mail
$curl = curl_init(URL/videolink);
curl_setopt($curl, CURLOPT_URL,URL/videolink);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('key': '********'));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

$data =
{
  'app': 'heartRate'
}
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);

$resp = curl_exec($curl);
//Response→ {'msg':'Some Random ID'}

//Video RTSP Link
//Enter the key that you have received in mail
$curl = curl_init(URL/link);
curl_setopt($curl, CURLOPT_URL,URL/link);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('key': '********'));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

$data =
{
  'app': 'heartRate'
}
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);

$resp = curl_exec($curl);
//Response→ {'msg':'Some Random ID'}

//Video Link for Download
//Enter the key that you have received in mail
//Enter the id that you have received in response while uploading
$curl = curl_init(URL/downloadLink/video);
curl_setopt($curl, CURLOPT_URL,URL/downloadLink/output);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('key': '********'));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

$data =
{
  'app': 'heartRate',
  'id': '{ID Received}'
}
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);

$resp = curl_exec($curl);
//Response→ {'videoLink':'Video Link for downloading'}

//CSV Link for Download
//Enter the key that you have received in mail
//Enter the id that you have received in response while uploading
$curl = curl_init(URL/downloadLink/output);
curl_setopt($curl, CURLOPT_URL,URL/downloadLink/output);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('key': '********'));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

$data =
{
  'app': 'heartRate',
  'id': '{ID Received}'
}
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);

$resp = curl_exec($curl);
//Response→ {'fileLink':'CSV Link for downloading'}