Skip to content

weiwei2012holy/faceplusplus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Face++ 接口集合,待完善版本

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"
}

About

face++ api整合,方便使用

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages