quan846951943

此功能类似淘宝拍照找图,以图找图功能 (需要对接百度接口)

 

 

 

 相似图搜索文档地址: https://ai.baidu.com/ai-doc/IMAGESEARCH/3k3bczqz8

下面是个简单的例子,只是简单的请求一个,如有需要例子或者demo请留言我,或者加入QQ: 846951943

<?php
$api_key = \'你的api_key\';
$secret_key = \'你的secret_key\';



//首先先获取access_token  ,因为请求身份证验证接口需要用到 ,请求access_token 有效期是30天 我这里没有保存, 如需要你们可以保存到session中
//获取access_token  返回参数请参考 https://ai.baidu.com/ai-doc/REFERENCE/Ck3djhhu
$access_token = getAccessToken($api_key,$secret_key);

$url = \'https://aip.baidubce.com/rest/2.0/image-classify/v1/realtime_search/similar/add?access_token=\' . $access_token;   //入库
//$url = \'https://aip.baidubce.com/rest/2.0/image-classify/v1/realtime_search/similar/search?access_token=\' . $access_token;  //检索
//$url = \'https://aip.baidubce.com/rest/2.0/image-classify/v1/realtime_search/similar/delete?access_token=\' . $access_token; //删除
//$url = \'https://aip.baidubce.com/rest/2.0/image-classify/v1/realtime_search/similar/update?access_token=\' . $access_token;  //更新

$base64 = $_POST[\'base64\'];
//在这个地方处理base64 图片

$brief = [  //存到百度的唯一标识
    \'goods_id\' => 1
];
$res = request_post($url,[\'brief\' => json_encode($brief), \'image\' => $base64,]);




/**
 * 创建一个curl请求,用来请求第三方
 * @param $url
 * @param array $data
 * @return array|bool|float|int|mixed|stdClass|string|null
 * User: wang
 * Date: 2021/9/6 18:13
 */
function request_post($url , $data=array()){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    $output = curl_exec($ch);
    curl_close($ch);

    return json_decode($output,true);
}

/**
 * 获取AccessToken
 * @param $api_key
 * @param $secret_key
 * @return mixed|string
 * User: wang
 * Date: 2021/9/6 18:30
 */
function getAccessToken($api_key,$secret_key){
    $url = \'https://aip.baidubce.com/oauth/2.0/token\';
    $post_data[\'grant_type\']    = \'client_credentials\';
    $post_data[\'client_id\']     = $api_key;
    $post_data[\'client_secret\'] = $secret_key;
    $o = "";
    foreach ( $post_data as $k => $v )
    {
        $o.= "$k=" . urlencode( $v ). "&" ;
    }
    $post_data = substr($o,0,-1);

    $res = request_post($url, $post_data);
    if(!isset($res[\'access_token\'])){
        exit($res[\'error\']);
    }
    return $res[\'access_token\'];
}

 

分类:

技术点:

相关文章: