unity 百度人脸识别上传人脸库

后台给到token,把这个脚本放到场景中

using com.baidu.ai;
using System;
using System.Collections;
using System.IO;
using UnityEngine;
public class Test : MonoBehaviour
{
    //string app_ID = "";
    //string app_KEY = "";
    //string secret_KEY = "";
    string token = "后台给的token";
    void Start()
    {
        StartCoroutine(IEGetStringBase64());
    }
    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 = "test1";
            //用户id,一般同一个人的图片放在同一个id下  
            string userId = "1";
            //开始注册  
            SignUpFace(imageBase64, imageType, groupId, userId);
            yield return new WaitForSeconds(0.6f);
        }
    }

    public void SignUpFace(string image, string imageType, string groupId, string userId)
    {
        //var options = new Dictionary<string, object>{
        //    {"user_info", "test user info"},
        //    {"quality_control", "HIGH"},
        //    {"liveness_control", "HIGH"},
        //    {"action_type", "REPLACE"} };
        // 带参数调用人脸注册
        
        FaceAdd.add();
    }
}

这个脚本是百度API官方脚本

using System;
using System.IO;
using System.Net;
using System.Text;
using System.Web;

namespace com.baidu.ai
{
    public class FaceAdd
    {
        // 人脸注册
        public static string add()
        {
            string token = "[调用鉴权接口获取的token]";
            string host = "https://aip.baidubce.com/rest/2.0/face/v3/faceset/user/add?access_token=" + token;
            Encoding encoding = Encoding.Default;
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(host);
            request.Method = "post";
            request.KeepAlive = true;
            // 这里面参数根据你的需求更改,直接带参传值即可
            String str = "{\"image\":\"027d8308a2ec665acb1bdf63e513bcb9\",\"image_type\":\"FACE_TOKEN\",\"group_id\":\"group_repeat\",\"user_id\":\"user1\",\"user_info\":\"abc\",\"quality_control\":\"LOW\",\"liveness_control\":\"NORMAL\"}";
            byte[] buffer = encoding.GetBytes(str);
            request.ContentLength = buffer.Length;
            request.GetRequestStream().Write(buffer, 0, buffer.Length);
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default);
            string result = reader.ReadToEnd();
            Console.WriteLine("人脸注册:");
            Console.WriteLine(result);
            return result;
        }
    }
}

然后在 StreamingAssets文件夹下新建一个FaceDetect文件夹,把要识别的图片放在这里面就可以了

发布了57 篇原创文章 · 获赞 22 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/Mediary/article/details/103098111
今日推荐