腾讯云 人工智能图像识别 SDK for PHP 本人集合了图像识别sdk和API中心的接口源码
源码均来自于腾迅的SDK!!!
从github下载源码,并加载image-php-sdk-v2.0/index.php就可以了。 调用请参考sample.php
授权包括: APP_ID SECRET_ID SECRET_KEY BUCKET
如果要使用图片,需要创建图片操作类对象
require_once __DIR__ . '/index.php';
use QcloudImage\CIClient;
$client = new CIClient('APP_ID', 'SECRET_ID', 'SECRET_KEY', 'BUCKET');
$client->setTimeout(30);
在创建完对象后,根据实际需求,调用对应的操作方法就可以了。sdk提供的方法包括:图片识别、人脸识别及人脸核身等。
图片识别包括:
图片鉴黄、图片标签;
文字识别系列(OCR):
身份证, 名片, 行驶证, 驾驶证, 车牌号, 银行卡, 营业执照, 印刷体, 手写体;
人脸识别系列:
人脸检测, 五官定位,
//单个或多个图片Url
var_dump ($client->pornDetect(array('urls'=>array('YOUR URL A',
'YOUR URL B'))));
//单个或多个图片File
var_dump ($client->pornDetect(array('files'=>array('F:\pic\你好.jpg','G:\pic\test2.jpg'))));
//单个图片url
var_dump ($client->tagDetect(array('url'=>'YOUR URL')));
//单个图片file
var_dump ($client->tagDetect(array('file'=>'G:\pic\hot1.jpg')));
//单个图片内容
var_dump ($client->tagDetect(array('buffer'=>file_get_contents('G:\pic\hot1.jpg'))));
//单个或多个图片Url,识别身份证正面
var_dump ($client->idcardDetect(array('urls'=>array('YOUR URL A',
'YOUR URL B')), 0));
//单个或多个图片file,识别身份证正面
var_dump ($client->idcardDetect(array('files'=>array('F:\pic\id6_zheng.jpg', 'F:\pic\id2_zheng.jpg')), 0));
//单个或多个图片内容,识别身份证正面
var_dump ($client->idcardDetect(array('buffers'=>array(file_get_contents('F:\pic\id6_zheng.jpg'),
file_get_contents('F:\pic\id2_zheng.jpg'))), 0));
//单个或多个图片Url,识别身份证反面
var_dump ($client->idcardDetect(array('urls'=>array('YOUR URL C',
'YOUR URL D')), 1));
//单个或多个图片file,识别身份证反面
var_dump ($client->idcardDetect(array('files'=>array('F:\pic\id5_fan.jpg', 'F:\pic\id7_fan.png')), 1));
//单个或多个图片内容,识别身份证反面
var_dump ($client->idcardDetect(array('buffers'=>array(file_get_contents('F:\pic\id5_fan.jpg'),
file_get_contents('F:\pic\id7_fan.jpg'))), 1));
//单个或多个图片Url
var_dump ($client->namecardDetect(array('urls'=>array('YOUR URL A',
'YOUR URL B')), 0));
//单个或多个图片file,
var_dump ($client->namecardDetect(array('files'=>array('F:\pic\r.jpg', 'F:\pic\name2.jpg')), 1));
//单个或多个图片内容
var_dump ($client->namecardDetect(array('buffers'=>array(file_get_contents('F:\pic\name1.jpg'),
file_get_contents('F:\pic\name2.jpg'))), 0));
人脸识别包括:人脸检测、五官定位、个体信息管理、人脸验证、人脸对比及人脸检索。
//单个图片Url, mode:1为检测最大的人脸 , 0为检测所有人脸
var_dump ($client->faceDetect(array('url'=>'YOUR URL'), 1));
//单个图片file,mode:1为检测最大的人脸 , 0为检测所有人脸
var_dump ($client->faceDetect(array('file'=>'F:\pic\face1.jpg'),0));
//单个图片内容,mode:1为检测最大的人脸 , 0为检测所有人脸
var_dump ($client->faceDetect(array('buffer'=>file_get_contents('F:\pic\face1.jpg')), 1));
//单个图片Url,mode:1为检测最大的人脸 , 0为检测所有人脸
var_dump ($client->faceShape(array('url'=>'YOUR URL'),1));
//单个图片file,mode:1为检测最大的人脸 , 0为检测所有人脸
var_dump ($client->faceShape(array('file'=>'F:\pic\face1.jpg'),0));
//单个图片内容,mode:1为检测最大的人脸 , 0为检测所有人脸
var_dump ($client->faceShape(array('buffer'=>file_get_contents('F:\pic\face1.jpg')), 1));
//个体创建,创建一个Person,并将Person放置到group_ids指定的组当中,不存在的group_id会自动创建。
//创建一个Person, 使用图片url
var_dump ($client->faceNewPerson('person1111', array('group11',), array('url'=>'YOUR URL'), 'xiaoxin'));
//创建一个Person, 使用图片file
var_dump ($client->faceNewPerson('person2111', array('group11',), array('file'=>'F:\pic\hot1.jpg')));
//创建一个Person, 使用图片内容
var_dump ($client->faceNewPerson('person3111', array('group11',), array('buffer'=>file_get_contents('F:\pic\zhao1.jpg'))));
//增加人脸,将一组Face加入到一个Person中。
//将单个或者多个Face的url加入到一个Person中
var_dump ($client->faceAddFace('person1111', array('urls'=>array('YOUR URL A',
'YOUR URL B'))));
//将单个或者多个Face的file加入到一个Person中
var_dump ($client->faceAddFace('person2111', array('files'=>array('F:\pic\yang.jpg','F:\pic\yang2.jpg'))));
//将单个或者多个Face的文件内容加入到一个Person中
var_dump ($client->faceAddFace('person3111', array('buffers'=>array(file_get_contents('F:\pic\yang.jpg'),file_get_contents('F:\pic\yang2.jpg')))));
// 删除人脸,删除一个person下的face
var_dump ($client->faceDelFace('person1', array('12346',)));
//设置信息
var_dump ($client->faceSetInfo('person1', 'fanbing'));
//获取信息
var_dump ($client->faceGetInfo('person1'));
//获取组列表
var_dump ($client->faceGetGroupIds());
//获取人列表
var_dump ($client->faceGetPersonIds('group1'));
//获取人脸列表
var_dump ($client->faceGetFaceIds('person1'));
//获取人脸信息
var_dump ($client->faceGetFaceInfo('1704147773393235686'));
//删除个人
var_dump ($client->faceDelPerson('person11'));
给定一个Face和一个Person,返回是否是同一个人的判断以及置信度
//单个图片Url
var_dump ($client->faceVerify('person1', array('url'=>'YOUR URL')));
//单个图片file
var_dump ($client->faceVerify('person3111', array('file'=>'F:\pic\yang3.jpg')));
//单个图片内容
var_dump ($client->faceVerify('person3111', array('buffer'=>file_get_contents('F:\pic\yang3.jpg'))));
对于一个待识别的人脸图片,在一个Group中识别出最相似的Top5 Person作为其身份返回,返回的Top5中按照相似度从大到小排列。
//单个文件url
var_dump ($client->faceIdentify('group1', array('url'=>'YOUR URL')));
//单个文件file
var_dump ($client->faceIdentify('group11', array('file'=>'F:\pic\yang3.jpg')));
//单个文件内容
var_dump ($client->faceIdentify('group11', array('buffer'=>file_get_contents('F:\pic\yang3.jpg'))));
//两个对比图片的文件url
var_dump ($client->faceCompare(array('url'=>"YOUR URL A"),
array('url'=>'YOUR URL B')));
//两个对比图片的文件file
var_dump ($client->faceCompare(array('file'=>'F:\pic\yang.jpg'), array('file'=>'F:\pic\yang2.jpg')));
//两个对比图片的文件内容
var_dump ($client->faceCompare(array('file'=>'F:\pic\yang.jpg'), array('file'=>'F:\pic\yang2.jpg')));
//身份证url
var_dump ($client->faceIdCardCompare('xxxxxxxxxxx', 'xxxxxxxxxxx', array('url'=>'YOUR URL')));
//身份证文件file
var_dump ($client->faceIdCardCompare('xxxxxxxxxxx', 'xxxxxxxxxxx', array('file'=>'F:\pic\idcard.jpg')));
//身份证文件内容
var_dump ($client->faceIdCardCompare('xxxxxxxxxxx', 'xxxxxxxxxxx', array('buffer'=>file_get_contents('F:\pic\idcard.jpg'))));
$obj = $client->faceLiveGetFour();
var_dump ($obj);
$validate_data = $obj['data']['validate_data'];
var_dump ($client->faceLiveDetectFour($validate_data, array('file'=>'F:\pic\ZOE_0171.mp4'), False, array('F:\pic\idcard.jpg')));
var_dump ($client->faceIdCardLiveDetectFour($validate_data, array('file'=>'F:\pic\ZOE_0171.mp4'), 'xxxxxxxxxxx', 'xxxxxxxxxxx'));
[具体链接](https://cloud.tencent.com/document/api/1007/33848)
以下是我自己测试的两个接口
//身份证认证测试源码
<?php
/**
* Created by PhpStorm.
* User: 1655664358@qq.com
* Date: 2019/6/4
* Time: 15:47
*/
require_once 'vendor/autoload.php';
use TencentCloud\Common\Credential;
use TencentCloud\Common\Profile\ClientProfile;
use TencentCloud\Common\Profile\HttpProfile;
use TencentCloud\Common\Exception\TencentCloudSDKException;
use TencentCloud\Faceid\V20180301\FaceidClient;
use TencentCloud\Faceid\V20180301\Models\IdCardVerificationRequest;
try {
$cred = new Credential("xxx", "xxx");
$httpProfile = new HttpProfile();
$httpProfile->setEndpoint("faceid.tencentcloudapi.com");
$clientProfile = new ClientProfile();
$clientProfile->setHttpProfile($httpProfile);
$client = new FaceidClient($cred, "ap-chengdu", $clientProfile);
$req = new IdCardVerificationRequest(['verify'=>0]);
$params = '{"IdCard":"身份证号","Name":"姓名"}';
$req->fromJsonString($params);
//调用失败记得修改CurlFactory.php文件
$resp = $client->IdCardVerification($req);
print_r($resp->toJsonString());
}
catch(TencentCloudSDKException $e) {
echo $e;
}
//银行卡核验
use TencentCloud\Common\Credential;
use TencentCloud\Common\Profile\ClientProfile;
use TencentCloud\Common\Profile\HttpProfile;
use TencentCloud\Common\Exception\TencentCloudSDKException;
use TencentCloud\Faceid\V20180301\FaceidClient;
use TencentCloud\Faceid\V20180301\Models\BankCardVerificationRequest;
try {
$cred = new Credential("xx", "xxx");
$httpProfile = new HttpProfile();
$httpProfile->setEndpoint("faceid.tencentcloudapi.com");
$clientProfile = new ClientProfile();
$clientProfile->setHttpProfile($httpProfile);
$client = new FaceidClient($cred, "ap-chengdu", $clientProfile);
$req = new BankCardVerificationRequest();
$params = '{"IdCard":"身份证","Name":"姓名","BankCard":"银行卡号"}';
$req->fromJsonString($params);
$resp = $client->BankCardVerification($req);
print_r($resp->toJsonString());
}
catch(TencentCloudSDKException $e) {
echo $e;
}
测试时如果出现错误就把curl 证书给禁用掉!
curl源码修改位置
PS:该SDK由腾迅官方提供,本人自己整理了一份便于使用!