Пример #1
0
 public void NetTwoFaceMatchTest()
 {
     Image image1 = null;
     Image image2 = null;
     RecognitionProvider baiduRecognitionProvider = new RecognitionProvider();
     var data = baiduRecognitionProvider.NetTwoFaceMatch(image1, image2);
 }
Пример #2
0
        /// <summary>
        /// 两张人脸对比
        /// </summary>
        /// <param name="sourceImage">原来的脸</param>
        /// <param name="matchImage">需要对比的脸</param>
        /// <returns></returns>
        public Tuple <bool, bool, string> NetTowFaceMatchData(Image sourceImage, Image matchImage)
        {
            try
            {
                RecognitionProvider recognitionProvider = new RecognitionProvider();
                JObject             jsonData            = recognitionProvider.NetTwoFaceMatch(sourceImage, matchImage);
                jsonData.TryGetValue("error_code", out JToken errorCodeToken);
                jsonData.TryGetValue("error_msg", out JToken errorMessageToken);
                jsonData.TryGetValue("result", out JToken value);
                float score  = (float)value["score"];
                bool  sucess = false;
                bool  match  = false;
                if (80 < score)
                {
                    match = true;
                }
                if (errorCodeToken.ToString() == "0")
                {
                    sucess = true;
                }

                return(new Tuple <bool, bool, string>(match, sucess, errorMessageToken.ToString()));
            }
            catch (Exception e)
            {
                return(new Tuple <bool, bool, string>(false, false, e.ToString()));
            }
        }
Пример #3
0
        /// <summary>
        /// 根据数据库Match人脸
        /// </summary>
        /// <param name="image"></param>
        /// <returns></returns>
        public string NetFaceMatchData(Image image)
        {
            try
            {
                RecognitionProvider recognitionProvider = new RecognitionProvider();

                //Task<JObject> @object = new Task<JObject>(baiduRecognitionProvider.NetFaceMatch(image) );
                JObject jsonData = recognitionProvider.NetFaceMatch(image);
                jsonData.TryGetValue("result", out JToken value);
                JToken infoArry  = value["user_list"];
                string faceToken = value["face_token"].ToString();
                string id        = infoArry[0]["user_id"].ToString();
                string group     = infoArry[0]["group_id"].ToString();
                string info      = infoArry[0]["user_info"].ToString();
                //info解析
                JObject faceInfo = (JObject)JsonConvert.DeserializeObject(info);
                //string[] faceInfo = info.Split('`');

                string name   = faceInfo["UserName"].ToString();
                string text   = faceInfo["value"].ToString();
                string score  = infoArry[0]["score"].ToString();
                int    so     = (int)double.Parse(score);
                string result = $"姓名:{name}\r\nID:{id}\r\n信息:{text}\r\n匹配度:{so}\r\n人脸标识:{faceToken}\r\n";
                return(result);
            }
            catch (Exception ex)
            {
                string result = "识别出错:" + ex.ToString();
                return(result);
            }
        }
Пример #4
0
        public string NetRecognitionDataStr(Image image)
        {
            try
            {
                RecognitionProvider recognitionProvider = new RecognitionProvider();

                //Task<JObject> @object = new Task<JObject>(baiduRecognitionProvider.NetFaceMatch(image) );
                JObject jsonData = recognitionProvider.NetRecognition(image);
                jsonData.TryGetValue("result", out JToken value);
                JToken infoArry = value["face_list"];

                string left   = infoArry[0]["location"]["left"].ToString();
                string top    = infoArry[0]["location"]["top"].ToString();
                string width  = infoArry[0]["location"]["width"].ToString();
                string height = infoArry[0]["location"]["height"].ToString();

                string yaw   = infoArry[0]["angle"]["yaw"].ToString();
                string pitch = infoArry[0]["angle"]["pitch"].ToString();
                string roll  = infoArry[0]["angle"]["roll"].ToString();

                string result = $"人脸位置:\r\n    距离左边线:{left}\r\n    距离上边线:{top}\r\n    宽度:{width}\r\n    高度:{height}\r\n人脸翻转:\r\n    俯仰角:{yaw}\r\n    平移角:{pitch}\r\n    翻滚角:{roll}";
                return(result);
            }
            catch (Exception ex)
            {
                string result = "检测出错{" + ex + "}";
                return(result);
            }
        }
Пример #5
0
        public Tuple <bool, string> NetFaceRegisterData(Image image, string userName, JObject info)
        {
            try
            {
                RecognitionProvider recognitionProvider = new RecognitionProvider();
                string groupId = "UsualUser";
                string userId  = ChineseToPinyin(userName).ToLower();
                info.Add("UserName", userName);
                JObject jsonData = recognitionProvider.NetFaceRegister(image, groupId, userId, info.ToString());
                jsonData.TryGetValue("error_code", out JToken errorCodeToken);
                jsonData.TryGetValue("error_msg", out JToken errorMessageToken);
                bool   mark    = true;
                string message = errorMessageToken.ToString();
                //int errorCode = int.Parse(errorCodeToken.ToString());
                string errorCode = errorCodeToken.ToString();
                switch (errorCode)
                {
                case "223105":
                    mark = false;
                    break;

                default:
                    mark = true;
                    break;
                }
                return(new Tuple <bool, string>(mark, message));
            }
            catch (Exception ex) { return(new Tuple <bool, string>(false, ex.ToString())); }
        }
Пример #6
0
        public void NetFaceRegisterTest()
        {
            Image          image    = null;
            string         id       = "id";
            string         name     = "姓名";
            string         group    = "UsualUser";
            string         info     = "信息";
            string         faceInfo = name + "`" + info;
            Task <JObject> task     = new Task <JObject>(
                () =>
            {
                RecognitionProvider baiduRecognitionProvider = new RecognitionProvider();
                return(baiduRecognitionProvider.NetFaceRegister(image, group, id, faceInfo));
            });

            task.Start();
            task.Wait();
            var aaa = task.Result;
        }
Пример #7
0
        public string GetData(string userName)
        {
            RecognitionProvider recognitionProvider = new RecognitionProvider();
            string  userId   = ChineseToPinyin(userName).ToLower();
            JObject jsonData = recognitionProvider.GetInfo(userId);

            if (jsonData == null)
            {
                return("查询失败");
            }
            jsonData.TryGetValue("result", out JToken value);
            JToken  infoArry = value["user_list"];
            string  info     = infoArry[0]["user_info"].ToString();
            JObject faceInfo = (JObject)JsonConvert.DeserializeObject(info);
            string  name     = faceInfo["UserName"].ToString();
            string  text     = faceInfo["value"].ToString();

            return($"姓名:{name}\r\n信息:{text}");
        }
Пример #8
0
        /// <summary>
        /// 人脸识别
        /// </summary>
        /// <param name="image"></param>
        /// <returns></returns>
        public Dictionary <string, string> NetRecognitionData(Image image)
        {
            try
            {
                RecognitionProvider recognitionProvider = new RecognitionProvider();

                //Task<JObject> @object = new Task<JObject>(baiduRecognitionProvider.NetFaceMatch(image) );
                JObject jsonData = recognitionProvider.NetRecognition(image);
                jsonData.TryGetValue("result", out JToken value);
                JToken infoArry = value["face_list"];

                Dictionary <string, string> result = new Dictionary <string, string>();
                //人脸数量,现在只用1
                result.Add("faceNum", value["face_num"].ToString());


                //人脸标识
                result.Add("faceToken", infoArry[0]["face_token"].ToString());
                //人脸位置
                JToken location = infoArry[0]["location"];
                result.Add("left", location["left"].ToString());
                result.Add("top", location["top"].ToString());
                result.Add("width", location["width"].ToString());
                result.Add("height", location["height"].ToString());
                //年龄
                result.Add("age", infoArry[0]["age"].ToString());
                //美丑
                result.Add("beauty", infoArry[0]["beauty"].ToString());
                //性别
                //JToken gender = infoArry[0]["gender"];
                result.Add("gender", infoArry[0]["gender"]["type"].ToString());
                return(result);
            }
            catch (Exception ex)
            {
                string info = "检测出错{" + ex + "}";
                Dictionary <string, string> result = new Dictionary <string, string>();
                result.Add("错误消息:", info);
                return(result);
            }
        }
Пример #9
0
        /// <summary>
        /// 登录验证
        /// </summary>
        /// <param name="image"></param>
        /// <returns></returns>
        public bool Login(Image image)
        {
            RecognitionProvider recognitionProvider = new RecognitionProvider();
            bool loc = false;
            //Task<JObject> @object = new Task<JObject>(baiduRecognitionProvider.NetFaceMatch(image) );
            JObject jsonData = recognitionProvider.NetFaceMatch(image);

            jsonData.TryGetValue("result", out JToken value);
            JToken infoArry = value["user_list"];
            string info     = infoArry[0]["user_info"].ToString();
            //info解析
            JObject faceInfo = (JObject)JsonConvert.DeserializeObject(info);
            string  name     = faceInfo["UserName"].ToString();
            string  score    = infoArry[0]["score"].ToString().Substring(0, 5);
            double  ss       = double.Parse(score);

            if (name == "王宁" && ss >= 70)
            {
                loc = true;
            }
            return(loc);
        }
Пример #10
0
 public void NetRecognitionTest()
 {
     Image image = null;
     RecognitionProvider baiduRecognitionProvider = new RecognitionProvider();
     var data = baiduRecognitionProvider.NetRecognition(image);
 }