小程序的前端页面中存入一张图片,将图片存入到人脸库中,并且检测是否有人脸,有几张人脸
前端页面如下:
前端的代码可以参考小程序示例
人脸检测的php代码如下:
public function facevalid(){
$file = './Upload/2.jpg';
// echo $file;
// exit;
if (!file_exists($file)) {
die('文件不存在!');
}
$image = base64_encode(file_get_contents($file));
//如果有可选参数
$options = array();
// $options['face_field'] = "age";
$options['max_face_num'] = 2;
// $options['face_type'] = "LIVE";
$client = $this->init_face();
$ret = $client->detect($image,'BASE64',$options);
// print_r($ret);
if ($ret['error_code'] == 0) {//有人脸
$result = $ret['result'];
$face_num = $result['face_num'];
if (1 == $face_num) { //人脸数量为1
$face_probability = $result['face_list'][0]['face_probability'];
if (1 == $face_probability) { //可靠性为1
$user_id = myguid();
$group_id = $this->face_group();
// print_r($group);
$res = $client->addUser($image,'BASE64',$group_id,$user_id);
// print_r($res);
// exit;
echo "人脸检测完成,并入库";
}else{
die('可靠性为:'.$face_probability);
}
}else{
die('人脸数大于1');
}
}else{
die('没有人脸');
}
}
face_probability
为可靠性,可靠性越接近1,说明是人脸的可能越大
上面为检测图片中是否存在人脸
如果存在就要将图片存放到人脸库中
上传图片的后台代码如下:
//上传照片
public function upload($id=''){
$upload = new \Think\Upload();//实例化上传类
$upload->maxSize = 3145728;//设置附件上传大小
$upload->exts = array('jpg','gif','png','jpeg');//设置附件上传类型
$upload->rootPath = './Upload/';//设置附件上传根目录
$upload->savePath = '';//设置附件上传(子)目录
$upload->saveName = true;
$upload->autoSub = false;
//上传文件
$info = $upload->uploadOne($_FILES['file']);
if (!$info) {//上传错误,提示错误信息
echo json_encode(array('error'=>true,'msg'=>$upload->getError()),JSON_UNESCAPED_UNICODE);
}else{//上传成功
// return $this->ajaxReturn(array('error'=>false,'msg'=>$info['savePath'].$info['savename'],'id'=>$id));
$file = $dir . $info['savepath'] . $info['savename'];
}
}
如此便存放成功