[置顶] unity百度人脸识别之登录篇
2018-03-21 13:21
295 查看
using Baidu.Aip.Face; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.IO; using UnityEngine; using UnityEngine.UI; public class FaceLogin : MonoBehaviour { private Face client;//调用百度API接口 private byte[] image;//注册时用到的图片数据 private Dictionary<string, object> options = new Dictionary<string, object>();//多参数 private JObject result; private string uid;//用户id,这是存到人脸库中的 private string groupid;//用户所在组,部门 private double scores = 0.01f;//认证返回的分数(百度0-100,指数是80分可以通过认证,可以自己设置) public Text uidInput; public Text DebugText;//提示是否通过认证 public Text DebugText1; public Text DebugText2; public bool isSuccess = false; private int error_code = 0;//百度API返回的错误代码编号 private string error_msg;//错误描述信息,帮助理解和解决发生的错误。 void Awake() { client = new Face(AccessToken.client_id, AccessToken.client_secret);//通过APIKey和Secret Key取得接口 AccessToken.ClientCallback(); } public void Login() { Invoke("FaceVerify", 5.0f); } private void Update() { if (string.IsNullOrEmpty(uidInput.text)) { isSuccess = true; } if (!string.IsNullOrEmpty(uidInput.text)) { isSuccess = false; DebugText1.text = ""; } } //人脸认证登录,人脸认证需要指定具体的用户id即可 void FaceVerify() { if (isSuccess == false) { uid = uidInput.text; groupid = "test1,group1,group2,group3,U3D1,U3D";//这是我所有的用户组 string path = Application.dataPath + "/ScreenShot/" + WebCamera.ScreenShotTexture2D + ".jpg"; image = File.ReadAllBytes(path); options = new Dictionary<string, object>() { {"top_num",1 },//最大认证数 {"ext_fields","faceliveness" }//活体检测 }; result = client.Verify(uid, groupid, image, options); Debug.Log(result); } try//避免出现网络异常导致错误 { error_code = int.Parse(result["error_code"].ToString());//先把json数据转成字符串,再转成int类型 error_msg = result["error_msg"].ToString();//把返回的json错误信息转成字符串 switch (error_code) { case 216611: DebugText.text = "user not exist 用户id不存在,请确认该用户是否注册或注册已经生效(需要已经注册超过5s)"; break; case 216401: DebugText.text = "internal error 内部错误"; break; case 216402: DebugText.text = "face not found 未找到人脸,请检查图片是否含有人脸"; break; case 216500: DebugText.text = "unknown error 未知错误"; break; case 216615: DebugText.text = "fail to process images 服务处理该图片失败,发生后重试即可"; break; case 216618: DebugText.text = "no user in group 组内用户为空,确认该group是否存在或已经生效(需要已经注册超过5s)"; break; default: DebugText.text = error_msg; break; }
if (error_code != 216611 || error_code != 216401 || error_code != 216402 || error_code != 216500 || error_code != 216615 || error_code != 216618) { scores = double.Parse(result["result"][0].ToString()); }} catch (Exception e) { if (isSuccess == true) { DebugText1.text = "用户id不能为空,请重新填写!"; } if (isSuccess == false && scores > 80.0f) { if (error_code != 216611 || error_code != 216401 || error_code != 216402 || error_code != 216500 || error_code != 216615 || error_code != 216618) { DebugText.text = "通过认证!"; } //下个场景 } else if(isSuccess == false && scores < 80.0f) { DebugText.text = "认证失败!"; DebugText2.text = "分值为:" + scores + " 低于认证值 非法入侵!"; } } }}
相关文章推荐
- [置顶] 百度人脸识别之人脸登录修改BUG篇,unity
- [置顶] 百度人脸识别AddUser优化版,较上一篇,改了一些
- [置顶] 百度人脸识别之人脸注册AddUser
- 百度DMLC分布式深度机器学习开源项目(简称“深盟”)上线了如xgboost(速度快效果好的Boosting模型)、CXXNET(极致的C++深度学习库)、Minerva(高效灵活的并行深度学习引擎)以及Parameter Server(一小时训练600T数据)等产品,在语音识别、OCR识别、人脸识别以及计算效率提升上发布了多个成熟产品。
- 百度人脸识别BFR API效果测试及测试代码
- 日常API之C#百度人脸识别
- 百度人脸识别集成
- 百度DMLC分布式深度机器学习开源项目(简称“深盟”)上线了如xgboost(速度快效果好的Boosting模型)、CXXNET(极致的C++深度学习库)、Minerva(高效灵活的并行深度学习引擎)以及Parameter Server(一小时训练600T数据)等产品,在语音识别、OCR识别、人脸识别以及计算效率提升上发布了多个成熟产品。
- 百度人脸实时识别软件
- python3.6+百度人脸识别API进行照片人脸对比
- [置顶] OpenCV — 人脸识别
- 【Unity3d】在Unity3d中使用百度AI人脸识别功能
- [置顶] OpenCV3.3人脸识别模块的API的变化
- 借助百度云中的百度人脸识别用java开发一个人脸识别
- [置顶] java实现人脸识别源码【含测试效果图】——前期准备工作及访问提示
- Java实现调用百度AI开放云平台(人脸识别API)
- [置顶] PCA人脸识别详解——初学者必看
- Unity实现简单的人脸识别
- 学习Opencv, 人脸识别, 图片来自百度