接口地址:https://api-cn.faceplusplus.com/humanbodypp/v1/skeleton |
---|
返回格式:json |
请求方式:post |
请求示例:https://api-cn.faceplusplus.com/humanbodypp/v1/skeleton?api_key=1&api_secret=2&image_url=3 |
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
api_key | string | 必填 | Face++的 API Key 扫码关注公众号 |
api_secret | string | 必填 | Face++的 API Secret 扫码关注公众号 |
image_url | string | 必填 | 图片的 URL |
名称 | 类型 | 说明 |
---|---|---|
- | - | 见json返回 |
{
"time_used": 2299,
"image_id": "lHjvzhnGndA/zZja3ho2fA==",
"skeletons": [{
"body_rectangle": {
"width": 781,
"top": 315,
"height": 910,
"left": 134
},
"landmark": {
"left_buttocks": {
"y": 901,
"x": 452,
"score": 0.7299447
},
"head": {
"y": 9,
"x": 305,
"score": 0.5368539
},
"neck": {
"y": 673,
"x": 378,
"score": 0.6446256
},
"left_shoulder": {
"y": 692,
"x": 769,
"score": 0.7006054
},
"left_hand": {
"y": 597,
"x": 769,
"score": 0.41823307
},
"left_knee": {
"y": 901,
"x": 329,
"score": 0.6185796
},
"right_elbow": {
"y": 901,
"x": 12,
"score": 0.4332367
},
"right_shoulder": {
"y": 635,
"x": 12,
"score": 0.724305
},
"right_hand": {
"y": 901,
"x": 232,
"score": 0.56872773
},
"left_foot": {
"y": 901,
"x": 452,
"score": 0.3753785
},
"left_elbow": {
"y": 901,
"x": 769,
"score": 0.51084995
},
"right_buttocks": {
"y": 901,
"x": 134,
"score": 0.5565492
},
"right_knee": {
"y": 901,
"x": 85,
"score": 0.47690523
},
"right_foot": {
"y": 901,
"x": 452,
"score": 0.52765757
}
}
}, {
"body_rectangle": {
"width": 559,
"top": 533,
"height": 740,
"left": 394
},
"landmark": {
"left_buttocks": {
"y": 732,
"x": 114,
"score": 0.8086717
},
"head": {
"y": 270,
"x": 464,
"score": 0.4876535
},
"neck": {
"y": 270,
"x": 79,
"score": 0.5550944
},
"left_shoulder": {
"y": 378,
"x": 359,
"score": 0.64766926
},
"left_hand": {
"y": 362,
"x": 481,
"score": 0.6320832
},
"left_knee": {
"y": 563,
"x": 271,
"score": 0.49012265
},
"right_elbow": {
"y": 378,
"x": 551,
"score": 0.6178683
},
"right_shoulder": {
"y": 347,
"x": 324,
"score": 0.5143001
},
"right_hand": {
"y": 378,
"x": 551,
"score": 0.6799432
},
"left_foot": {
"y": 732,
"x": 9,
"score": 0.4409459
},
"left_elbow": {
"y": 362,
"x": 499,
"score": 0.56940734
},
"right_buttocks": {
"y": 732,
"x": 201,
"score": 0.6996023
},
"right_knee": {
"y": 424,
"x": 551,
"score": 0.48145446
},
"right_foot": {
"y": 732,
"x": 9,
"score": 0.43120167
}
}
}],
"request_id": "1533886107,224911b6-e136-42bd-aebb-e1aec327e018"
}
错误码 | 说明 |
---|---|
401 | api_key 和 api_secret 不匹配。 |
403 | api_key 没有调用本 API 的权限,具体原因为:用户自己禁止该 api_key 调用、管理员禁止该 api_key 调用、由于账户余额不足禁止调用。 |
403 | 并发数超过限制。 |
400 | 缺少某个必选参数。 |
400 | 某个参数解析出错(比如必须是数字,但是输入的是非数字字符串; 或者长度过长,etc.) |
400 | 同时传入了要求是二选一或多选一的参数。如有特殊说明则不返回此错误。 |
413 | 客户发送的请求大小超过了 2MB 限制。该错误的返回格式为纯文本,不是 json 格式。 |
404 | 所调用的 API 不存在。 |
500 | 服务器内部错误,当此类错误发生时请再次请求,如果持续出现此类错误,请及时联系技术支持团队。 |
<?php
/**
* Created by PhpStorm.
* User: FZS
* Time: 2020/11/02 21:53
*/
//----------------------------------
// 人体关键点检测 调用类
//----------------------------------
class freeApi
{
private $apiKey = false;
private $apiSecret = false;
private $apiUrl = 'https://api-cn.faceplusplus.com/humanbodypp/v1/skeleton';
public function __construct($apikey,$apiSecret){
$this->apiKey = $apikey;
$this->apiSecret = $apiSecret;
}
/**
* 将JSON内容转为数据,并返回
* @param string $content [内容]
* @return array
*/
public function returnArray($content){
return json_decode($content,true);
}
/**
* 获取结果
* @return array
*/
public function getResult(){
$params = [
"api_key" => $this->apiKey,
"api_secret" => $this->apiSecret,
"image_url" => "",
];
$params = http_build_query($params);
return $this->returnArray($this->freeApiCurl($this->apiUrl,$params,1));
}
/**
* 请求接口返回内容
* @param string $url [请求的URL地址]
* @param string $params [请求的参数]
* @param int $ipost [是否采用POST形式]
* @return string
*/
public function freeApiCurl($url,$params=false,$ispost=0){
$ch = curl_init();
curl_setopt( $ch, CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_1 );
curl_setopt( $ch , CURLOPT_SSL_VERIFYHOST , false );
curl_setopt( $ch , CURLOPT_SSL_VERIFYPEER , false );
curl_setopt( $ch, CURLOPT_USERAGENT , 'free-api' );
curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT , 60 );
curl_setopt( $ch, CURLOPT_TIMEOUT , 60);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER , true );
if( $ispost )
{
curl_setopt( $ch , CURLOPT_POST , true );
curl_setopt( $ch , CURLOPT_POSTFIELDS , $params );
curl_setopt( $ch , CURLOPT_URL , $url );
}
else
{
if($params){
curl_setopt( $ch , CURLOPT_URL , $url.'?'.$params );
}else{
curl_setopt( $ch , CURLOPT_URL , $url);
}
}
$response = curl_exec( $ch );
if ($response === FALSE) {
return false;
}
curl_close( $ch );
return $response;
}
}