前提条件: 首先,要有一个百度云账号并获取到自己的App_Id、API_KEY、Secret_Key和创建好的人脸库名
1. 下载SDK
composer require baidu/aip-sdk
2. 直接上代码 挂件地方已注释
<?php
namespace App\Http\Controllers\Face;
use App\Http\Controllers\Controller;
use Dcat\Admin\Grid\Filter\Group;
use Illuminate\Http\Request;
class FaceController extends Controller
{
const APP_ID = '25640027'; //百度智能云获取
const API_KEY = 'bXrfQjXEL6wXSt4hNsA7arev'; //百度智能云获取
const SECRET_KEY = 'MAPGUugYAQXbxF7RqrjEgLBIajOgVNgN'; //百度智能云获取
const IMAGE_Type = 'BASE64'; // 设置图片类型 必须大写
const OPSTION = ['max_face_num'=>5,'face_field'=>'age,beauty,gender,expression']; // 最大人脸数及返回 可选参数
const GROUP = 'liyan1'; // 组名
private $client;
public function __construct()
{
//实例化对象
$this->client = new \AipFace(self::APP_ID, self::API_KEY, self::SECRET_KEY);
}
/**
* 人脸识别
* @param $image string 人脸图片
* */
public function face(request $request){
$image = $request['image'];
if(empty($image)) return showMsg(400,'参数不全');
$img = base64_encode(file_get_contents($image));
$result = $this->client->detect($img,self::IMAGE_Type,self::OPSTION);
return $result;
}
/**
* 人脸搜索
* @param $image string 人脸图片
* */
public function faceSearch(request $request){
$image = $request['image'];
if(empty($image)) return showMsg(400,'参数不全');
$img = base64_encode(file_get_contents($image));
$result = $this->client->search($img,self::IMAGE_Type,self::GROUP);
return $result;
}
/**
* 人脸注册
* @param $image string 人脸图片
* @param $userId int 用户Id
* */
public function faceRegister(request $request){
$image = $request['image'];
$userId = $request['userId'];
if(empty($image)) return showMsg(400,'参数不全');
if(empty($userId)) return showMsg(400,'参数不全');
$img = base64_encode(file_get_contents($image));
$result = $this->client->addUser($img,self::IMAGE_Type,self::GROUP,$userId,self::OPSTION);
return $result;
}
/**
* 人脸删除
* @param $faceToken string 删除的人脸图片token 注册成功时返回
* @param $userId int 用户ID
* */
public function faceDel(request $request){
$faceToken = $request['faceToken'];
$userId = $request['userId'];
if(empty($faceToken) || empty($userId)) return showMsg(400,'参数不全');
$result = $this->client->faceDelete($userId,self::GROUP,$faceToken);
return $result;
}
/**
* 人脸更新
* @param $image string 人脸图片
* @param $userId int 用户ID
* */
public function faceUpd(request $request){
$userId = $request['userId'];
$image = $request['image'];
if(empty($image) || empty($userId)) return showMsg(400,'参数不全');
$img = base64_encode(file_get_contents($image));
$result = $this->client->updateUser($img,self::IMAGE_Type,self::GROUP,$userId);
return $result;
}
}
3. 官方文档链接
人脸识别_人脸检测_人脸对比_人脸搜索_活体检测_百度智能云