weiwei2012holy / faceplusplus
face++ api
dev-master
2019-01-08 09:16 UTC
Requires
- php: >=5.5.0
- guzzlehttp/guzzle: ~6.0
This package is auto-updated.
Last update: 2024-09-08 22:24:42 UTC
README
1.安装
composer require weiwei2012holy/faceplusplus
2.使用
$key = '8kG5rX3D1mbK*********VWQEuFuhr8L'; $secret = 'XJwx2rcuU2***********3ZK5rb-AGak'; //初始化人脸分析 $face = new \weiwei2012holy\Face($key, $secret); //初始化图像分析 $image = new \weiwei2012holy\Image($key, $secret);
2.1 人脸分析
2.1.1 发起人脸分析
//图片可以是链接,文件路径或者base64编码数据,自动处理 $mUrl = 'https://wx-static.yidejia.com/fandom1541484919647'; //发起皮肤分析 $mUrlDetail = $face->detect($mUrl, 'skinstatus');
请求成功示例:
Array ( [image_id] => pFVWo+CGnzn2eoEO8AW28w== [request_id] => 1542263847,2612d95b-8fef-4d3e-b10a-0b5ca110fe9c [time_used] => 537 [faces] => Array ( [0] => Array ( [attributes] => Array ( [skinstatus] => Array ( [dark_circle] => 3.157 [stain] => 10.996 [acne] => 5.3 [health] => 4.423 ) ) [face_rectangle] => Array ( [width] => 377 [top] => 202 [left] => 19 [height] => 377 ) [face_token] => 6d265e22d06cbb9e62f853b22cf296c5 ) ) )
2.1.2 人脸美颜美白
人脸美白 $url = 'https://wx-static.yidejia.com/fandom1536201951787'; $res = $face->beautify($url); file_put_contents('美颜.png', base64_decode($res['result']));
请求成功响应格式:
{
"time_used": 544,
"result":……省略 base64 图片数据
}
2.1.3 人脸对比
//人脸对比 $url1 = 'https://wx-static.yidejia.com/fandom1536201951787'; //$url2 = 'https://wx-static.yidejia.com/fandom1536201951787'; $url2 = '0337a0d38d5c89b4c15098a695572414'; //$url1 = '0337a0d38d5c89b4c15098a695572414'; $res = $face->compare($url1, $url2);
响应示例:
Array ( [confidence] => 97.389 [request_id] => 1542265057,9658622d-61e8-4570-95b7-85a8ad4b415d [time_used] => 623 [thresholds] => Array ( [1e-3] => 62.327 [1e-5] => 73.975 [1e-4] => 69.101 ) )
2.2 face set 管理
2.2.1 创建faceSet
$res = $face->faceSetCreate('测试2','test2');
返回数据:
Array ( [faceset_token] => f17b4dec9507927fa3dd5cc286c27923 [time_used] => 180 [face_count] => 0 [face_added] => 0 [request_id] => 1542262652,e9cb60e7-b354-4744-8fb3-8a9918265ced [outer_id] => test2 [failure_detail] => Array ( ) )
2.2.2 获取face set列表
$res = $face->faceSetGetFaceSets();
返回数据:
Array ( [time_used] => 80 [next] => ...分页用的参数 [facesets] => Array ( [0] => Array ( [faceset_token] => 154a366740b29b5ab020c3714a8bb932 [outer_id] => [display_name] => 测试1 [tags] => ) [1] => Array ( [faceset_token] => f17b4dec9507927fa3dd5cc286c27923 [outer_id] => test2 [display_name] => 测试2 [tags] => ) ) [request_id] => 1542264730,7229c308-452e-454e-88f4-c889ee13775e )
2.2.3 更新face set
//更新face set $res = $face->faceSetUpdate('154a366740b29b5ab020c3714a8bb932', ['new_outer_id' => 'test1']);
响应示例:
Array
(
[faceset_token] => 154a366740b29b5ab020c3714a8bb932
[request_id] => 1542266624,6cc031b3-43a6-4c1c-9e83-85e25d6a3409
[time_used] => 102
[outer_id] => test1
)
2.2.4 获取face set 详情
$res = $face->faceSetGetDetail('154a366740b29b5ab020c3714a8bb932');
响应示例:
Array
(
[faceset_token] => f17b4dec9507927fa3dd5cc286c27923
[tags] =>
[time_used] => 444
[user_data] =>
[display_name] => 测试2
[face_tokens] => Array
(
[0] => 7b84a3cb51caab1a02b48a60d677e260
)
[face_count] => 1
[request_id] => 1542273001,2293b317-8089-4d66-934c-f290254b01ca
[outer_id] => test2
)
2.2.5 删除face set
$res = $face->faceSetDelete('154a366740b29b5ab020c3714a8bb932');
响应示例:
Array
(
[faceset_token] => 154a366740b29b5ab020c3714a8bb932
[request_id] => 1542269667,9b46e488-3e5d-4b14-b36b-158370f1b6d1
[time_used] => 325
[outer_id] => test1
)
2.2.6 往face set 添加face_token
$res = $face->faceSetAddFace($faceSetToken,'7b84a3cb51caab1a02b48a60d677e260');
响应示例:
同步请求: Array ( [faceset_token] => f17b4dec9507927fa3dd5cc286c27923 [time_used] => 96 [face_count] => 1 [face_added] => 0 [request_id] => 1542272991,0ac07155-12ed-4456-a410-46780be72e3d [outer_id] => test2 [failure_detail] => Array ( ) ) 如果为异步请求,则返回数据为: Array ( [time_used] => 154 [task_id] => 9e108e86-f47c-46b6-9ada-cdc7c2c7a648 [request_id] => 1542273307,9832ced0-ee67-49f7-83db-5c274dd5e25e )
2.2.7 往face set 删除face token
$res = $face->faceSetRemoveFace($faceSetToken, '55ad5a72d902af5e582a56769cbcbb05', false, true);
2.2.8 获取face token的详情
$res = $face->faceAnalyze($faceToken,'emotion');
2.2.9 查询异步任务情况
$res = $face->faceSetTaskStatus($taskId);
响应示例:
Array
(
[status] => 1
[faceset_token] => f17b4dec9507927fa3dd5cc286c27923
[time_used] => 31
[task_id] => fa6a190b-d061-4bed-90b5-7ac394b7c962
[face_count] => 5
[face_added] => 0
[request_id] => 1542273533,0c2cdb55-4bb0-4278-b4c5-5a2c0c1667b4
[outer_id] => test2
[failure_detail] => Array
(
)
)
** 呵呵**
返回数据:
2.3 图像分析
2.3.1 发起人脸融合
$angle = ['top', 'left', 'width', 'height']; $mUrl = 'https://wx-static.yidejia.com/fandom1541484919647'; //发起人脸分析 $mUrlDetail = $face->detect($mUrl); $mUrlFace = $mUrlDetail['faces'][0]; foreach ($angle as $item) { $mAngle[$item] = $mUrlFace['face_rectangle'][$item]; } $mAngle = implode(',', $mAngle); print_r($mUrlFace); $tUrl = 'http://img2.jiemian.com/101/original/20160129/145404008426286800.jpg'; $tUrlDetail = $face->detect($tUrl); $tUrlFace = $tUrlDetail['faces'][0]; foreach ($angle as $item) { $tAngle[$item] = $tUrlFace['face_rectangle'][$item]; } $tAngle = implode(',', $tAngle); print_r($tUrlFace); //发起人脸融合 $res = $image->mergeFace($tUrl, $tAngle, $mUrl, $mAngle, 70); print_r($res);
请求成功示例:
{
"time_used": 544,
"result":……省略 base64 图片数据,
"request_id": "1510906671,53ca1f2b-c3d8-473a-858c-3b4fd99ef07a"
}