Exemple #1
0
 /// <summary>
 /// 人脸注册
 /// 注册前需要检测人脸图像是否合格
 /// 暂时不做分组,整个项目同属一个分组内
 /// 使用登录用户的手机号码作为userId
 /// </summary>
 public JsonResponse UserAdd(FaceRequest request)
 {
     try
     {
         var qiniu    = EngineContext.Current.Resolve <IQiniuService>();
         var result   = Client.UserAdd(qiniu.DownLoadPrivateUrl(request.image), ImageType, GroupId, request.userId);
         var faceList = result.SelectToken("result");
         if (!faceList.Any())
         {
             return(new JsonResponse(OperatingState.Failure, "人脸导入失败,原因:" + GetError_msg(result.SelectToken("error_code").ToString())));
         }
         var resultStr = DeserializeToModel <FaceListItem>(faceList.ToString());
         //注册成功,修改用户的FaceImg和FaceToken
         //var userInfo = _enterpriseUserInfo.Table.FirstOrDefault(s => s.UserName == request.userId);
         //if (userInfo == null) return new JsonResponse(OperatingState.Failure, "人脸导入失败,原因:系统中未找到对应的用户");
         //userInfo.FaceImg = request.image;
         //userInfo.FaceToken = resultStr.face_token;
         //_enterpriseUserInfo.SaveChanges();
         return(new JsonResponse(OperatingState.Success, "人脸导入成功"));
     }
     catch (Exception e)
     {
         return(new JsonResponse(OperatingState.Success, "人脸导入成功,原因:", e.Message));
     }
 }
Exemple #2
0
 /// <summary>
 /// 人脸对比
 /// 优先注册一张照片到人脸库
 /// 拍照获取照片生成网络路径调用此接口
 /// 对比结果大于50或60表示认证成功
 /// </summary>
 /// <returns>是否对比成功</returns>
 public bool Contrast(FaceRequest request)
 {
     try
     {
         //获取当前用户 最近登记的打卡图片的faceToken
         var userFaceToken = "";
         var faceResult    = FaceGetlist(request.userId);
         if (faceResult == null || faceResult.face_list.Count <= 0)
         {
             return(false);
         }
         var userFace = faceResult.face_list.FirstOrDefault(s => s.face_token == userFaceToken);
         var faces    = new JArray
         {
             new JObject
             {
                 { "image", request.image },
                 { "image_type", ImageType },
                 { "face_type", "LIVE" },      //人脸的类型  LIVE  表示生活照:通常为手机、相机拍摄的人像图片、或从网络获取的人像图片等
                 { "quality_control", "LOW" }, //图片质量控制 LOW 较低的质量要求
             },
             new JObject
             {
                 { "image", userFace?.face_token },
                 { "image_type", "FACE_TOKEN" },
                 { "face_type", "LIVE" },
                 { "quality_control", "LOW" },
             }
         };
         var result   = Client.Match(faces);
         var faceList = result.SelectToken("result");
         var score    = DeserializeToModel <FaceList>(faceList.ToString());
         if (score == null)
         {
             return(false);
         }
         return(Convert.ToDouble(score.score) >= 50);
     }
     catch (Exception)
     {
         return(false);
     }
 }