Exemplo n.º 1
0
        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;
            }
        }
Exemplo n.º 2
0
        /// <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);
        }
Exemplo n.º 4
0
        /// <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);
        }
Exemplo n.º 5
0
        public async Task <IDetectFaceResponse> Detect([FromBody] byte[] faceCapture)
        {
            var detectFaceRequest = new DetectFaceRequest(faceCapture);

            return(await _cognitiveFaceService.Handle(detectFaceRequest));
        }