Pose 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 decent resolution video with less than 40mb.
Output - Inferred video with angles between the joints and poses over a time in JSON format.
Note: Upload the appropriate video for optimal performance. Video that doesn't relate to the model might provide you unexpected results.

Through radical computer vision techniques, the key points of a person or an object are tracked to predict and track behaviours over the time. In the example of a Pose estimation applied on a human body, localizes certain key body joints(key points) in images and videos. These spatial locations can be used to determine if a person is standing, sitting, lying down or performing activities like dancing, jumping, etc. The application draws points on detected joints and semantically links them.

In the wake of Covid 19, the concept of home fitness through online workout videos has really gone up in addition to the increased popularity of health apps for round the clock health monitoring. The ability to track human movement and estimate the position of the person working out becomes extremely handy through pose estimation. Body pose analysis is being used in the field of sports by identifying the movement of players to better manage the game. While the athletes or players are training, their body pose estimation can send important alerts such as level of fatigue, stress or injury prompting the game to be stopped.

Our lives are increasingly getting automated with the help of Robotic instruments around us. The biggest benefit has been in health care where Robots are already being used inside Operation theatres to perform complex tasks. And with the advancement in 3D pose estimation, the ability of Robots to perform tasks a lot more accurately and responsively has gone up. Not only this but interactive video gaming has been made possible by motion capture technology powered by Deep Learning based pose estimation models. Now character animation can be done by capturing motion including various poses in real time.

Use Cases

Human Activity Recognition, Medical Physiotherapy, Sports, Robotic Trainings, Motion Capture, Animations, Fitness Trainings 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”:”pose”
              “link”:”video Link” -> 
             },
	Headers:{
		“Key”:”xxxxxxxxx”
}
Response:
	{“id”:”ID”}

#For uploading video rtsp link
Request:
post/
[URL]
body:{
“app”:”pose”
“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”:'pose'},
     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':'pose',”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':'pose',”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”:'pose'},
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”:'pose'},
headers = {“key”: “xxxxxxx”})
#Response→ {“fileLink”:”CSV Link for downloading”}
//File Upload
var form = new FormData();
form.append('app', 'pose');
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”:'pose'},
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”:'pose'},
    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=pose”},{
    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=pose'},{
    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=pose’
#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=pose'
#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=pose'
#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=pose”}' \
  -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=pose”}' \
  -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': 'pose'
}
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': 'pose'
}
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': 'pose'
}
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': 'pose',
  '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': 'pose',
  'id': '{ID Received}'
}
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);

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