public FacenetResponseInformations RecognizeFace(string baseImage, string img1, string img2, string img3) { FacenetHandler facenet = new FacenetHandler(); FacenetRequestInformations requestInformations = new FacenetRequestInformations { baseImage = baseImage, img1 = img1, img2 = img2, img3 = img3 }; WebRequest request = facenet.SendMessage("recognizeFaces", "POST", requestInformations); FacenetResponseInformations facenetResponse = (FacenetResponseInformations)facenet.GetWebResponse <FacenetResponseInformations>(request); return(facenetResponse); }
public FacenetResponseInformations CheckFace(byte[] baseImage, byte[] photo, byte[] photo1) { Thread t1 = new Thread(new ParameterizedThreadStart(ThreadAdjsutImage)); t1.Name = "Photos 1"; ThreadParam param = new ThreadParam(photo, 1, AdjustBright); t1.Start(param); Thread t2 = new Thread(new ParameterizedThreadStart(ThreadAdjsutImage)); t2.Name = "Photos 2"; param = new ThreadParam(photo1, 2, AdjustBright); t2.Start(param); t1.Join(); t2.Join(); double distance = -10; try { FacenetResponseInformations facenetResponse = RecognizeFace(Convert.ToBase64String(baseImage), ListOfFaces[0], ListOfFaces[1], ListOfFaces[2]); distance = facenetResponse.distance; if (distance < 0.0f) { throw new ResponseException("Erro", "Erro inesperado, favor entrar em contato com o supoerte"); } return(facenetResponse); } catch (ResponseException e) { if (distance == -1f) { throw new ResponseException("Erro", "Não foi possível detectar sua face, por favor tente novamente"); } if (distance == -2f) { throw new ResponseException("Erro", "Desculpe, não é possível validar presença com foto de outra foto"); } throw e; } catch { throw new ResponseException("Erro", "Erro ao carregar arquivos para o reconhecimento"); } finally { ListOfFaces.Clear(); } }
private void RecognizeFace() { Face face = new Face(this.Informations.Code, this.Informations.Photo); FacenetResponseInformations facenetResponse = face.CheckFace((byte[])this.queryNameImage[1], this.Informations.Photo1, this.Informations.Photo2); if (facenetResponse.distance <= 1.1f) { isFaceCorrect = true; } else { isFaceCorrect = false; } facesDistance = facenetResponse.distance; timeResponse = facenetResponse.time; }