赞
踩
又到了交完项目暂时么有事情的时候啦~ 然后自己无聊,突然想研究研究人脸识别 =- = 于是就开始了
零. 先在网上查Unity 人脸识别 ,你会发现网上的大部分都是 OpenCV 和 BaiduAI 的SDK ~ 于是我就选择了先看 Baidu的把~
(忘了一件事情: 百度的人脸识别SDK 更新了V3 版本,但是V2 也是能正常服务的,所以要注意)
一: 下载SDK
因为Unity 是C#语言的所以你懂的~
下载以后解压你会发现有好几个~ 因为我用的版本是5.6.1 ,查了查网上的资料,我选择了第一个 net35 (为啥查资料呢?因为unity 支持的 .NET 版本不高啊,太高的用不了,毕竟SDK 是针对C# 不是针对Unity啊)
然后打开文件夹 你会发现 有几个 .dll 的文件
然后把他们 放在 文件夹下就行了
二. 注册个百度账号,去创建你的库
创建好以后你会看到
AppID ,API Key 和 Secret Key 很重要哦~
三 . 接下来就是代码了 话不多说直接粘代码
-
- // **********************************************************************
- // Copyright (C) 2017 The company name
- //
- // 文件名(File Name):
- // 作者(Author): Future.YS
- // 创建时间(CreateTime): 2018/7/18 15:34:45
- // 修改者列表(modifier):
- // 模块描述(Module description): 百度人脸识别
- // **********************************************************************
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using Baidu.Aip.Face;
- using System.IO;
- using System;
-
- public class HelloFace : MonoBehaviour {
-
- // 设置
- private string app_ID = "";
- private string app_KEY = "";
- private string secret_KEY = "";
- private Face client;
-
- // 连接
- void Awake()
- {
- System.Net.ServicePointManager.ServerCertificateValidationCallback +=
- delegate (object sender, System.Security.Cryptography.X509Certificates.X509Certificate certificate,
- System.Security.Cryptography.X509Certificates.X509Chain chain,
- System.Net.Security.SslPolicyErrors sslPolicyErrors)
- {
- return true; // **** Always accept
- };
- }
-
- void Start(){
- client = new Baidu.Aip.Face.Face (app_KEY,secret_KEY);
- StartCoroutine(IEGetStringBase64());
-
- }
-
- // /// <summary>
- // /// 人脸注册(官网给的)
- // /// </summary>
- // public void UserAddDemo() {
- // string image = "取决于image_type参数,传入BASE64字符串或URL字符串或FACE_TOKEN字符串";
- //
- // string imageType = "BASE64";
- //
- // string groupId = "Friend";
- //
- // string userId = "user1";
- //
- // // 调用人脸注册,可能会抛出网络等异常,请使用try/catch捕获
- // var result = client.UserAdd(image, imageType, groupId, userId);
- // print(result);
- // // 如果有可选参数
- // var options = new Dictionary<string, object>{
- // {"user_info", "liuyizhong"},
- // {"quality_control", "NORMAL"},
- // {"liveness_control", "LOW"}
- // };
- // // 带参数调用人脸注册
- // result = client.UserAdd(image, imageType, groupId, userId, options);
- // print(result);
- // }
-
-
- public void SignUpFace(string image, string imageType, string groupId, string userId)
- {
- var options = new Dictionary<string, object>{
- {"user_info", "liuyizhong"},
- {"quality_control", "NORMAL"},
- {"liveness_control", "LOW"}
- };
- // 带参数调用人脸注册
- var result = client.UserAdd(image, imageType, groupId, userId, options);
- }
-
- IEnumerator IEGetStringBase64()
- {
- //获取到每一张图片的路径
- string[] picsPathArr = Directory.GetFiles(Application.streamingAssetsPath + "/FaceDetect/");
- //循环获取每张图片的base64字符串
- for (int i = 0; i < picsPathArr.Length; i++)
- {
- //unity会自动生成.meta文件,过滤掉
- if (picsPathArr[i].Contains("meta")) continue;
- //读取
- FileInfo file = new FileInfo(picsPathArr[i]);
- var stream = file.OpenRead();
- byte[] buffer = new byte[file.Length];
- //读取图片字节流
- stream.Read(buffer, 0, Convert.ToInt32(file.Length));
- //base64字符串
- string imageBase64 = Convert.ToBase64String(buffer);
- //采用base64字符串方式上传
- string imageType = "BASE64";
- //用户组
- string groupId = "Friend";
- //用户id,一般同一个人的图片放在同一个id下
- string userId = "liuyizhong";
- //开始注册
- SignUpFace(imageBase64, imageType, groupId, userId);
- yield return new WaitForSeconds(0.6f);
- }
- }
-
- //人脸对比
- public void FaceSearch()
- {
- FileInfo file = new FileInfo(Application.streamingAssetsPath + "/FaceDetect/1_1.jpg");
- var stream = file.OpenRead();
- byte[] buffer = new byte[file.Length];
- //读取图片字节流
- stream.Read(buffer, 0, Convert.ToInt32(file.Length));
- var image = Convert.ToBase64String(buffer);
- var imageType = "BASE64";
-
- //之前注册的组
- var groupIdList = "Friend";
- var result = client.Search(image, imageType, groupIdList);
- Debug.Log(result);
- }
-
- }
好了- - 之后 开始工程 你就会发现他上传到了你自己账号里~
score 就是人脸对比度 0 - 100 ~
————————————————
版权声明:本文为CSDN博主「灰了个灰」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yaojiawudi/article/details/81095428
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。