检测人脸,存入人脸库

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xiruiyang/article/details/80390257

小程序的前端页面中存入一张图片,将图片存入到人脸库中,并且检测是否有人脸,有几张人脸

前端页面如下:


前端的代码可以参考小程序示例

人脸检测的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'];
    	}
    }
如此便存放成功

展开阅读全文

没有更多推荐了,返回首页