热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

人工智能——人脸登录

在百度云中存入照片[php]viewplaincopychooseImag

在百度云中存入照片

[php]  view plain  copy
  1. chooseImage:function(){  
  2.     var that=this  
  3.     wx.chooseImage({  
  4.       count: 1, // 默认9  
  5.       sizeType: ['original''compressed'], // 可以指定是原图还是压缩图,默认二者都有  
  6.       sourceType: ['album''camera'], // 可以指定来源是相册还是相机,默认二者都有  
  7.       success: function (res) {  
  8.         // 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片  
  9.         var imageList = res.tempFilePaths;  
  10.         that.setData({  
  11.           imageList: res.tempFilePaths  
  12.         })  
  13.         console.log(imageList);  
  14.       }  
  15.     })  
  16.   },  
  17.   previewImage: function (e) {  
  18.     var current = e.target.dataset.src  
  19.     wx.previewImage({  
  20.       current: current,  
  21.       urls: this.data.imageList  
  22.     })  
  23.   },  
  24.  upload:function(){  
  25.    wx.uploadFile({  
  26.      url: 'http://bestwangyuan.top/face/index.php/home/index/upload', //仅为示例,非真实的接口地址  
  27.      filePath: this.data.imageList[0],  
  28.      name: 'file',  
  29.      formData: {  
  30.        'user''test'  
  31.      },  
  32.      success: function (res) {  
  33.        var data = res.data  
  34.        console.log(data);  
  35.        var json=JSON.parse(res.data);  
  36.       //  console.log(json);  
  37.        wx.showToast({  
  38.          title: json.msg,  
  39.          icon: 'none',  
  40.          duration: 3000,  
  41.        })  
  42.      }  
  43.    })  
  44.  }  

在用php把照片上传到照片库里面

方法如下

[php]  view plain  copy
  1. public function sdk(){  
  2.      $file='./Uploads/111.jpg';  
  3.      if(!file_exists($file)){  
  4.        die('文件不存在');  
  5.      }  
  6.      $dir=APP_PATH .'/face-sdk/';  
  7.      require_once $dir .'AipFace.php';  
  8.      $APP_ID='';  
  9.      $API_KEY='';  
  10.      $SECRET_KEY='';  
  11.      $client=new \AipFace($APP_ID,$API_KEY,$SECRET_KEY);  
  12.   
  13.      $image=file_get_contents($file);  
  14.      $image=base64_encode($image);  
  15.   
  16.      $imageType='BASE64';  
  17.      $options=array();  
  18.      $options["max_face_num"]=10;  
  19.      $ret=$client->detect($image,$imageType,$options);  
  20.      print_r($ret);  
  21.   
  22.   
  23.   
  24.    }  

然后我们在后台写刷脸登陆的接口login我们要把拍照获取的照片存储到服务器

[php]  view plain  copy
  1. public function login(){  
  2.       // 上传文件路径  
  3.       $dir = "./Uploads/temp/";  
  4.       if(!file_exists($dir)){  
  5.         mkdir($dir,0777,true);  
  6.       }  
  7.       $upload = new \Think\Upload();  
  8.       $upload->maxSize = 2048000 ;// 设置附件上传大小  
  9.       $upload->exts = array('jpg''gif''png''jpeg');// 设置附件上传类型  
  10.       $upload->savepath = '';  
  11.       $upload->autoSub = false;  
  12.       $upload->rootPath = $dir// 设置附件上传根目录  
  13.       // 上传单个文件  
  14.       $info = $upload->uploadOne($_FILES['file']);  
  15.       if(!$info) {// 上传错误提示错误信息  
  16.           echo json_encode(array('error'=>true,'msg'=>$upload->getError()),JSON_UNESCAPED_UNICODE);  
  17.       }else{// 上传成功 获取上传文件信息  
  18.         $file = $dir . $info['savepath'].$info['savename'];  
  19.         $image = base64_encode(file_get_contents($file));  
  20.         $client = $this->init_face();  
  21.         $options['liveness_control'] = 'NORMAL';  
  22.         $options['max_user_num']  = '1';  
  23.         $ret = $client->search($image,'BASE64','student',$options);  
  24.         // echo json_encode($ret,JSON_UNESCAPED_UNICODE);  
  25.         // exit;  
  26.         if($ret['error_code']==0){  
  27.           $user = $ret['result']['user_list'][0];  
  28.           $no = $user['user_id'];  
  29.           $score = $user['score'];  
  30.           if($score>=95){  
  31.             $data = M('student')->where("no = '{$no}'")->find();  
  32.             $data['score'] = $score;  
  33.             // $data['name'] = json_decode($data['name'],true);  
  34.             // $data['sex'] = json_decode($data['sex'],true);  
  35.             echo '识别成功' . json_encode($data,JSON_UNESCAPED_UNICODE);  
  36.           }else{  
  37.             echo '识别失败' . $data['score'];  
  38.           }  
  39.         }  
  40.       }  
  41.     }  

在js里面调用接口

[html]  view plain  copy
  1. takePhoto() {  
  2.      const ctx = wx.createCameraContext()  
  3.      ctx.takePhoto({  
  4.        quality: 'high',  
  5.        success: (res) => {  
  6.          this.setData({  
  7.            src: res.tempImagePath  
  8.          })  
  9.          console.log(res)  
  10.          wx.uploadFile({  
  11.            url: '', //仅为示例,非真实的接口地址  
  12.            filePath: this.data.src,  
  13.            name: 'file',  
  14.            formData: {  
  15.            },  
  16.            success: function (res) {  
  17.              // var data = res.data  
  18.              // var json = JSON.parse(data)  
  19.              console.log(res)  
  20.              wx.showModal({  
  21.                title: "提示",  
  22.                content: res.data,  
  23.                showCancel: false,  
  24.                confirmText: "确定"  
  25.              })  
  26.            }  
  27.          })  
  28.        }  
  29.      })  
  30.    },  


推荐阅读
  • 作为软件工程专业的学生,我深知课堂上教师讲解速度之快,很多时候需要课后自行消化和巩固。因此,撰写这篇Java Web开发入门教程,旨在帮助初学者更好地理解和掌握基础知识。通过详细记录学习过程,希望能为更多像我一样在基础方面还有待提升的学员提供有益的参考。 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • 本文详细介绍了在CentOS 6.5 64位系统上使用阿里云ECS服务器搭建LAMP环境的具体步骤。首先,通过PuTTY工具实现远程连接至服务器。接着,检查当前系统的磁盘空间使用情况,确保有足够的空间进行后续操作,可使用 `df` 命令进行查看。此外,文章还涵盖了安装和配置Apache、MySQL和PHP的相关步骤,以及常见问题的解决方法,帮助用户顺利完成LAMP环境的搭建。 ... [详细]
  • CTF竞赛中文件上传技巧与安全绕过方法深入解析
    CTF竞赛中文件上传技巧与安全绕过方法深入解析 ... [详细]
  • Android中将独立SO库封装进JAR包并实现SO库的加载与调用
    在Android开发中,将独立的SO库封装进JAR包并实现其加载与调用是一个常见的需求。本文详细介绍了如何将SO库嵌入到JAR包中,并确保在外部应用调用该JAR包时能够正确加载和使用这些SO库。通过这种方式,开发者可以更方便地管理和分发包含原生代码的库文件,提高开发效率和代码复用性。文章还探讨了常见的问题及其解决方案,帮助开发者避免在实际应用中遇到的坑。 ... [详细]
  • 微信小程序实现类似微博的无限回复功能,内置云开发数据库支持
    本文详细介绍了如何利用微信小程序实现类似于微博的无限回复功能,并充分利用了微信云开发的数据库支持。文中不仅提供了关键代码片段,还包含了完整的页面代码,方便开发者按需使用。此外,HTML页面中包含了一些示例图片,开发者可以根据个人喜好进行替换。文章还将展示详细的数据库结构设计,帮助读者更好地理解和实现这一功能。 ... [详细]
  • 尽管我们尽最大努力,任何软件开发过程中都难免会出现缺陷。为了更有效地提升对支持部门的协助与支撑,本文探讨了多种策略和最佳实践,旨在通过改进沟通、增强培训和支持流程来减少这些缺陷的影响,并提高整体服务质量和客户满意度。 ... [详细]
  • 【图像分类实战】利用DenseNet在PyTorch中实现秃头识别
    本文详细介绍了如何使用DenseNet模型在PyTorch框架下实现秃头识别。首先,文章概述了项目所需的库和全局参数设置。接着,对图像进行预处理并读取数据集。随后,构建并配置DenseNet模型,设置训练和验证流程。最后,通过测试阶段验证模型性能,并提供了完整的代码实现。本文不仅涵盖了技术细节,还提供了实用的操作指南,适合初学者和有经验的研究人员参考。 ... [详细]
  • Spring框架的核心组件与架构解析 ... [详细]
  • 2018年9月21日,Destoon官方发布了安全更新,修复了一个由用户“索马里的海贼”报告的前端GETShell漏洞。该漏洞存在于20180827版本的某CMS中,攻击者可以通过构造特定的HTTP请求,利用该漏洞在服务器上执行任意代码,从而获得对系统的控制权。此次更新建议所有用户尽快升级至最新版本,以确保系统的安全性。 ... [详细]
  • 在Ubuntu系统中配置Python环境变量是确保项目顺利运行的关键步骤。本文介绍了如何将Windows上的Django项目迁移到Ubuntu,并解决因虚拟环境导致的模块缺失问题。通过详细的操作指南,帮助读者正确配置虚拟环境,确保所有第三方库都能被正确识别和使用。此外,还提供了一些实用的技巧,如如何检查环境变量配置是否正确,以及如何在多个虚拟环境之间切换。 ... [详细]
  • 在C#中开发MP3播放器时,我正在考虑如何高效存储元数据以便快速检索。选择合适的数据结构,如字典或数组,对于优化性能至关重要。字典能够提供快速的键值对查找,而数组则在连续存储和遍历方面表现优异。根据具体需求,合理选择数据结构将显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文探讨了利用Python编程语言开发自动化脚本来实现文件的全量和增量备份方法。通过详细分析不同备份策略的特点,文章介绍了如何使用Python标准库中的os和shutil模块来高效地管理和执行备份任务。此外,还提供了示例代码和最佳实践,帮助读者快速掌握自动化备份技术,确保数据的安全性和完整性。 ... [详细]
  • 本文介绍了一种利用PHP cURL库高效提取Sohu邮箱联系人列表的方法。通过设置错误报告级别、定义Cookie文件路径等关键步骤,确保了代码的稳定性和可靠性。经过实际测试,该方法在2012年3月24日被验证为有效,能够快速准确地获取联系人信息。此外,文章还提供了详细的代码示例和注意事项,帮助开发者更好地理解和应用这一技术。 ... [详细]
  • AppFog 是一个基于 CloudFoundry 的多语言 PaaS(平台即服务)提供商,允许用户在其平台上轻松构建和部署 Web 应用程序。本文将通过详细的图文步骤,指导读者如何在 AppFog 免费云平台上成功部署 WordPress,帮助用户快速搭建个人博客或网站。 ... [详细]
author-avatar
王意之
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有