PHP百度智能云调用,人脸识别接口

类的介绍
HttpUrl方法:用于拼装url,发送请求;
getAccessToken方法:用于获取accessToken,判断token是否过期,过期就再次获取;
prepareToken方法:用于新建accessToken数据;
faceRegister方法:人脸注册方法;
faceDelete方法:删除人脸;
faceFind方法:人脸查询。

这些只是封装好的部分方法,具体返回的数据请参考文档【文档链接】

<?php

/**
 * 人脸识别
 * Class FaceKnow
 * @package app\api\controller\v1
 */
class FaceKnow
{
    private $accessToken;
    private $position = "./accessToken/faceknowAccessToken.json";	//用于存放accessToken的地址,记得提前生成对应文件夹和文件,或者通过命令生成
    private $apiKey = '你申请的apikey';
    private $secretKey = '你申请的secrekey';


    public function __construct()
    {
        self::getAccessToken();
    }


    /**
     * 整合发送url
     * @param $url  请求的url
     * @param $post_data    发送的数据
     * @return mixed    返回的结果
     */
    private function HttpUrl($url, $post_data)
    {
//        $post_data = ($post_data);
        $o = "";
        foreach ($post_data as $k => $v) {
            $o .= "$k=" . urlencode($v) . "&";
        }
        $post_data = substr($o, 0, -1);

        $res = httpCurl($url, $post_data);

        return $res;
    }

    private function getAccessToken()
    {

        $data = json_decode(file_get_contents($this->position), true);

        //没有或过期的话就新增或修改
        if (!$data || !isset($data['expires_time']) || $data['expires_time'] <= time()) {
            $this->prepareToken();
        } else {
            $this->accessToken = $data['access_token'];
        }


    }

    /**
     * 生成数据插入文件
     */
    private function prepareToken()
    {
        //获取Token
        $url = 'https://aip.baidubce.com/oauth/2.0/token';
        $post_data['grant_type'] = 'client_credentials';
        $post_data['client_id'] = $this->apiKey;
        $post_data['client_secret'] = $this->secretKey;

        $data = self::HttpUrl($url, $post_data);
        $data = json_decode($data, true);
        $data['expires_time'] = $data['expires_in'] + time();

        $fp = fopen($this->position, "w");
        fwrite($fp, json_encode($data));
        fclose($fp);
    }

    /**
     * 人脸注册
     */
    public function faceRegister($userId, $image, $userInfo = '用户登录', $groupId = 'wyc_bishe')
    {
        $url = 'https://aip.baidubce.com/rest/2.0/face/v3/faceset/user/add?access_token=' . $this->accessToken;

        $image = config('systemConfig.img_domain') . $image;
        $data = [
            "image" => $image,
            "image_type" => "URL",
            "group_id" => $groupId,
            "user_id" => $userId,
            "user_info" => $userInfo
        ];

        $res = httpCurl($url, $data);


        $res = json_decode($res, true);

        return $res;


    }


    /**
     * 删除用户
     */
    public function faceDelete($userId, $groupId, $faceToken)
    {

        $url = 'https://aip.baidubce.com/rest/2.0/face/v3/faceset/user/delete?access_token=' . $this->accessToken;

        $data = [
            "user_id" => $userId,
            "group_id" => $groupId,
            "face_token" => $faceToken
        ];

        $res = httpCurl($url, $data);

        $res = json_decode($res, true);

        return $res;

    }


    /**
     * 用户查询
     */
    public function faceFind($image, $groupIdList = 'wyc_bishe')
    {
        $url = 'https://aip.baidubce.com/rest/2.0/face/v3/search?access_token=' . $this->accessToken;

        $image = config('systemConfig.img_domain') . $image;
        $data = [
            "image" => $image,
            "image_type" => "URL",
            "group_id_list" => $groupIdList,
        ];

        $res = json_decode(httpCurl($url, $data), true);


        return $res;
    }
}


/**
 * curl请求访问
 * @param $url string 地址
 * @param $data string post数据
 * @return mixed string 返回结果
 */
function httpCurl($url, $data = '')
{
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_REFERER, $url);
    curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Linux; Android 5.0; SM-N9100 Build/LRX21V) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/37.0.0.0 Mobile Safari/537.36 V1_AND_SQ_5.3.1_196_YYB_D QQ/5.3.1.2335 NetType/WIFI");
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    if ($data != '') {
        curl_setopt($curl, CURLOPT_POST, 1);
        curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
    }
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $result = curl_exec($curl);
    return $result;
}

对于springboot人脸识别,根据引用中的信息,有人使用了百度人脸识别的API和虹软SDK来实现人脸识别的功能。springboot是一个快速开发框架,可以结合这些人脸识别的API和SDK来实现人脸识别功能。 具体实现方法可以参考引用中提到的使用虹软SDK的人脸识别的服务。虹软SDK可以用于提取人脸特征向量,然后可以使用向量搜索引擎进行分析和处理。这样可以实现大规模的人脸搜索和识别服务。 在springboot中,可以使用相关的依赖库和工具来集成人脸识别功能。可以通过调用API接口来实现人脸识别功能,例如对人脸进行检测、人脸特征提取、人脸比对等操作。 需要注意的是,在使用人脸识别功能时,可能需要准备好人脸数据集和相应的模型训练。另外,还需要注意保护用户隐私和数据安全。 总结起来,使用springboot可以结合相关的人脸识别API和SDK来实现人脸识别功能,可以根据具体需求选择合适的库和工具进行集成。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [自美智能系统是基于树莓派、Python、HTML5、PHP、微信小程序打造出的一款物联网人工智能系统](https://download.csdn.net/download/m0_73728511/88281260)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [SpringBoot 基于向量搜索引擎及虹软人脸识别SDK的大规模人脸搜索](https://blog.csdn.net/weixin_41579324/article/details/124792789)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值