public async Task <IActionResult> Detect([FromBody] FaceUploadModel model) { //var faceDetect = await _faceClient.DetectAsync(this.Request.Body,true,true); //var targetFace = faceDetect.First().FaceRectangle; //this.Request.Body.Seek(0, SeekOrigin.Begin); var photo = model.Photo.Substring(_imgPrefix.Length); var bytes = Convert.FromBase64String(photo); var memoryStream = new MemoryStream(bytes); var result = await _faceClient.DetectAsync(memoryStream, true, true /*, null, targetFace */); var face = result[0]; return(this.Json(new { FaceId = face.FaceId, Rect = face.FaceRectangle, Landmarks = face.FaceLandmarks }));; }
public async Task <IActionResult> AddFace([FromBody] FaceUploadModel model) { var cursor = await _db.Persons.FindAsync(Builders <PersonDocument> .Filter.Eq(x => x.Id, model.UserID)); var doc = await cursor.FirstAsync(); var photo = model.Photo.Substring(_imgPrefix.Length); var bytes = Convert.FromBase64String(photo); var memoryStream = new MemoryStream(bytes); var result = await _faceClient.AddPersonFaceAsync(_personGroupKey, doc.PersonId, memoryStream /*, null, targetFace */); var face = new FaceDocument() { Id = ObjectId.GenerateNewId().ToString(), UserId = doc.Id, ImageBase64 = photo, PersonId = doc.PersonId, PersistedFaceId = result.PersistedFaceId, Created = DateTime.Now }; _db.Faces.InsertOneAsync(face); return(this.Json(doc)); }