private void SendRequest(object state) { mServerResult = string.Empty; try { #if TENCENT ClientProfile clientProfile = new ClientProfile(); HttpProfile httpProfile = new HttpProfile(); httpProfile.Endpoint = ("iai.tencentcloudapi.com"); clientProfile.HttpProfile = httpProfile; IaiClient client = new IaiClient(mCredential, "", clientProfile); DetectFaceRequest req = DetectFaceRequest.FromJsonString <DetectFaceRequest>(state.ToString()); DetectFaceResponse resp = client.DetectFace(req).ConfigureAwait(false).GetAwaiter().GetResult(); mServerResult = AbstractModel.ToJsonString(resp); mResult = JsonUtility.FromJson <DFServerResult>(mServerResult); #endif mIsDone = true; } catch (System.Exception ex) { mServerResult = ex.Message; string[] sf = mServerResult.Split(' '); DFServerResult rs = new DFServerResult(); rs.Error = new DFError(); rs.Error.Code = sf[0].Split(':')[1]; rs.Error.Message = sf[1].Split(':')[1]; mResult = rs; mIsDone = true; } }
/// <summary> /// Call Evaluate Image, to determine whether the image violates any policy /// </summary> /// <param name="imageContent">Image Content</param> /// <returns>Evaluate result</returns> public async Task <DetectFaceResult> DetectFaceAsync(ImageModeratableContent imageContent, bool cacheContent = false) { using (var client = new HttpClient()) { client.BaseAddress = new Uri(this.options.HostUrl); //string urlPath = $"{this.options.ImageServicePath}{string.Format("/Image/DetectFaces{0}", cacheContent ? "?cacheImage=true" : string.Empty)}"; //string urlPath = $"{this.options.ImageServicePathV2}{string.Format("/Faces{0}", cacheContent ? "?cacheImage=true" : string.Empty)}"; string urlPath = string.Format("{0}/Faces{1}", this.options.ImageServicePathV2, cacheContent ? "?cacheImage=true" : string.Empty); HttpRequestMessage message = new HttpRequestMessage(HttpMethod.Post, urlPath); ServiceHelpers.Addkey(message, this.options.ImageServiceKey); DetectFaceRequest request = new DetectFaceRequest(imageContent); if (imageContent.BinaryContent == null) { message.Content = new StringContent( JsonConvert.SerializeObject(request), Encoding.UTF8, "application/json"); } else { message.Content = new StreamContent(imageContent.BinaryContent.Stream); message.Content.Headers.ContentType = MediaTypeHeaderValue.Parse(imageContent.BinaryContent.ContentType); } return(await ServiceHelpers.SendRequest <DetectFaceResult>(client, message)); } }
public async Task <DetectFaceResponse[]> DetectFace(DetectFaceRequest detectRequest, MemoryStream image) { var content = new ByteArrayContent(image.ToArray()); content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream"); HttpResponseMessage hrm = await _client.PostAsync("/detect?returnFaceAttributes=age,gender", content); string result = await hrm.Content.ReadAsStringAsync(); var detectResponse = JsonConvert.DeserializeObject <DetectFaceResponse[]>(result); return(detectResponse); }
/// <summary> /// 检测给定图片中的人脸(Face)的位置、相应的面部属性和人脸质量信息,位置包括 (x,y,w,h),面部属性包括性别(gender)、年龄(age)、表情(expression)、魅力(beauty)、眼镜(glass)、发型(hair)、口罩(mask)和姿态 (pitch,roll,yaw),人脸质量信息包括整体质量分(score)、模糊分(sharpness)、光照分(brightness)和五官遮挡分(completeness)。 /// /// /// 其中,人脸质量信息主要用于评价输入的人脸图片的质量。在使用人脸识别服务时,建议您对输入的人脸图片进行质量检测,提升后续业务处理的效果。该功能的应用场景包括: /// /// 1) 人员库[创建人员](https://cloud.tencent.com/document/product/867/32793)/[增加人脸](https://cloud.tencent.com/document/product/867/32795):保证人员人脸信息的质量,便于后续的业务处理。 /// /// 2) [人脸搜索](https://cloud.tencent.com/document/product/867/32798):保证输入的图片质量,快速准确匹配到对应的人员。 /// /// 3) [人脸验证](https://cloud.tencent.com/document/product/867/32806):保证人脸信息的质量,避免明明是本人却认证不通过的情况。 /// /// 4) [人脸融合](https://cloud.tencent.com/product/facefusion):保证上传的人脸质量,人脸融合的效果更好。 /// /// </summary> /// <param name="req">参考<see cref="DetectFaceRequest"/></param> /// <returns>参考<see cref="DetectFaceResponse"/>实例</returns> public async Task <DetectFaceResponse> DetectFace(DetectFaceRequest req) { JsonResponseModel <DetectFaceResponse> rsp = null; try { var strResp = await this.InternalRequest(req, "DetectFace"); rsp = JsonConvert.DeserializeObject <JsonResponseModel <DetectFaceResponse> >(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return(rsp.Response); }
public async Task <IDetectFaceResponse> Detect([FromBody] byte[] faceCapture) { var detectFaceRequest = new DetectFaceRequest(faceCapture); return(await _cognitiveFaceService.Handle(detectFaceRequest)); }