微信小程序之人脸识别

最近学习了人脸识别,就是判断某个图片是否存在人脸,此次实现功能是,如果此图片存在一张人脸,则存入数据,多张人脸或无人脸均返回人脸过多或人脸不存在。

首先使用百度云,并在小程序中关联上百度云账号,在百度云中找到人脸识别功能,通过API Key 和Secret Key 来初始化人脸识别,代码如下

  private function init_face(){
        $app_id = '';
        $app_key = '';
        $secret_key = '';

        $dir = APP_PATH .'/face_sdk/';

        require_once $dir .'AipFace.php'; 
        return new \AipFace($app_id,$app_key,$secret_key);
    }

检查图片是否存在,代码如下

     $file='';
      if(!file_exists($file)){
        die('文件不存在');
      }

下面是识别人脸的代码

   $image= base64_encode(file_get_contents($file));
      $options=array();
      $options['max_face_num']=2;
      $client=$this->init_face();
      $ret=$client->detect($image,'BASE64',$options);
      // echo $ret;
      // exit;
      if($ret['error_code']==0){
        // echo $ret['error_code'];
        //有人脸
        $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
            $guid=myguid();
            $group=$this->face_group();
            $client->addUser($image,'BASE64',$group,$guid);
            echo '人脸检测完成,并已入库';
          }else{
            die('人脸为'.$face_probability);
          }
        }else{
          die('人脸数量大于1');
        }
      }else{
        die('没有人脸');
      }

guid和myguid需要定义在function中代码如下

//生成guid
function guid(){
    if(function_exists('com_create_guid')){
        return com_create_guid();
    }else{
        mt_srand((double)microtime()*10000);
        $charid=strtoupper(md5(uniqid(rand(),true)));
        $hyphen=chr(45);
        $uuid=chr(123)
                .substr($charid,0,8).$hyphen
                .substr($charid,8,4).$hyphen
                .substr($charid,12,4).$hyphen
                .substr($charid,16,4).$hyphen
                .substr($charid,20,12)
                .chr(125);
                return $uuid;
    }
}
//生成变种guid
function myguid(){
    $guid=guid();
    $guid=trim($guid,'{}');
    $guid=str_replace('-', '_',$guid);
    return $guid;
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: uniapp是一款跨平台的开发框架,可以方便地开发出适配多个平台的应用程序。在uniapp中使用微信小程序的API调用人脸识别功能也是可以实现的。 要在uniapp中使用微信小程序人脸识别功能,首先需要在uniapp的项目配置文件中引入微信小程序的插件,具体步骤如下: 1. 在uniapp的项目目录中找到`manifest.json`文件,打开编辑。 2. 在`"mp-weixin"`字段下的`"usingComponents"`中添加以下内容: ``` "wx-open-data": "/static/wxopen-data", "tmpl": "/static/tmpl", "face": "/static/face" ``` 3. 在`"mp-weixin"`字段下的`"plugins"`数组中,添加以下内容: ``` { "name": "wx2f2c58f8b060adb1", "version": "1.1.3", "provider": "wx2f8bd3e2d38b0951" } ``` 4. 在uniapp的项目根目录下创建一个`static`文件夹,然后在该文件夹下再创建一个`wxopen-data`文件夹。 5. 将微信小程序SDK中的`wxopen-data`文件夹拷贝到上一步创建的`static/wxopen-data`文件夹下。 完成以上配置后,就可以在uniapp中使用微信小程序人脸识别功能了。通过在uniapp的页面中调用相应的API,可以实现人脸识别的功能,如获取用户的人脸信息,进行人脸比对等操作。 需要注意的是,由于uniapp是跨平台的开发框架,所以在使用微信小程序人脸识别功能时,需要保证运行环境是微信小程序,其他平台可能无法正常使用该功能。 ### 回答2: UniApp是一个跨平台的开发框架,可以用于开发微信小程序。而微信小程序有提供人脸识别的能力。因此,我们可以使用UniApp来调用微信小程序人脸识别功能。 具体来说,我们可以在UniApp中引入微信小程序人脸识别相关的API,并在需要的时候调用这些API来实现人脸识别功能。首先,在UniApp的项目配置文件中,我们需要将微信小程序的AppID配置好。然后,在UniApp的页面文件中,我们可以使用uni.login()方法获取用户的登录凭证。接着,我们可以使用uni.checkSession()方法来检查用户登录状态。如果登录状态有效,我们可以通过uni.getUserInfo()方法获取用户的基本信息,包括头像和昵称等。然后,我们就可以使用微信小程序人脸识别API来进行人脸识别了。比如,我们可以使用uni.chooseImage()方法选择一张图片,然后使用uni.uploadFile()方法将图片上传到微信小程序的服务器。接着,我们可以使用微信小程序人脸识别API对图片进行人脸识别,得到人脸的相关信息。最后,我们可以将人脸识别的结果显示在UniApp的页面上,或者做相应的业务处理。 需要注意的是,为了使用微信小程序人脸识别功能,我们需要先在微信开放平台注册并申请相关的接口权限。同时,开发过程中也需要遵循微信小程序的开发规范和限制。以上就是使用UniApp调用微信小程序人脸识别的简要介绍。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值