Ejemplo 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;
            }
        }
Ejemplo n.º 2
0
        async Task LoadStatisticPercentages()
        {
            var listPersonAttributes = new List <PersonAttributes>();

            foreach (var person in Persons)
            {
                if (string.IsNullOrWhiteSpace(person.FaceImageUrl))
                {
                    continue;
                }

                var detectResults = await FaceApiService.DetectFaces(person.FaceImageUrl);

                DetectFaceResponse detectFaceResponse = detectResults.FirstOrDefault();

                if (detectFaceResponse == null || detectFaceResponse.FaceAttributes == null)
                {
                    continue;
                }

                listPersonAttributes.Add(new PersonAttributes
                {
                    Emotion = GetEmotion(detectFaceResponse.FaceAttributes?.Emotion),
                    Age     = detectFaceResponse.FaceAttributes.Age,
                    Gender  = detectFaceResponse.FaceAttributes.Gender
                });
            }
            if (listPersonAttributes != null)
            {
                GetMaxEmotionOnGroup(listPersonAttributes);
                GetMediumAgeOnGroup(listPersonAttributes);
                GetPercentageFemaleOnGroup(listPersonAttributes);
            }
        }
        public static DetectFaceResponse Unmarshall(UnmarshallerContext context)
        {
            DetectFaceResponse detectFaceResponse = new DetectFaceResponse();

            detectFaceResponse.HttpResponse = context.HttpResponse;

            return(detectFaceResponse);
        }
Ejemplo n.º 4
0
        public static DetectFaceResponse Unmarshall(UnmarshallerContext context)
        {
            DetectFaceResponse detectFaceResponse = new DetectFaceResponse();

            detectFaceResponse.HttpResponse = context.HttpResponse;
            detectFaceResponse.RequestId    = context.StringValue("DetectFace.RequestId");

            DetectFaceResponse.DetectFace_Data data = new DetectFaceResponse.DetectFace_Data();
            data.FaceCount     = context.IntegerValue("DetectFace.Data.FaceCount");
            data.LandmarkCount = context.IntegerValue("DetectFace.Data.LandmarkCount");

            List <string> data_faceRectangles = new List <string>();

            for (int i = 0; i < context.Length("DetectFace.Data.FaceRectangles.Length"); i++)
            {
                data_faceRectangles.Add(context.StringValue("DetectFace.Data.FaceRectangles[" + i + "]"));
            }
            data.FaceRectangles = data_faceRectangles;

            List <string> data_faceProbabilityList = new List <string>();

            for (int i = 0; i < context.Length("DetectFace.Data.FaceProbabilityList.Length"); i++)
            {
                data_faceProbabilityList.Add(context.StringValue("DetectFace.Data.FaceProbabilityList[" + i + "]"));
            }
            data.FaceProbabilityList = data_faceProbabilityList;

            List <string> data_poseList = new List <string>();

            for (int i = 0; i < context.Length("DetectFace.Data.PoseList.Length"); i++)
            {
                data_poseList.Add(context.StringValue("DetectFace.Data.PoseList[" + i + "]"));
            }
            data.PoseList = data_poseList;

            List <string> data_landmarks = new List <string>();

            for (int i = 0; i < context.Length("DetectFace.Data.Landmarks.Length"); i++)
            {
                data_landmarks.Add(context.StringValue("DetectFace.Data.Landmarks[" + i + "]"));
            }
            data.Landmarks = data_landmarks;

            List <string> data_pupils = new List <string>();

            for (int i = 0; i < context.Length("DetectFace.Data.Pupils.Length"); i++)
            {
                data_pupils.Add(context.StringValue("DetectFace.Data.Pupils[" + i + "]"));
            }
            data.Pupils             = data_pupils;
            detectFaceResponse.Data = data;

            return(detectFaceResponse);
        }
Ejemplo n.º 5
0
        public static DetectFaceResponse Unmarshall(UnmarshallerContext _ctx)
        {
            DetectFaceResponse detectFaceResponse = new DetectFaceResponse();

            detectFaceResponse.HttpResponse = _ctx.HttpResponse;
            detectFaceResponse.RequestId    = _ctx.StringValue("DetectFace.RequestId");

            DetectFaceResponse.DetectFace_Data data = new DetectFaceResponse.DetectFace_Data();
            data.LandmarkCount = _ctx.IntegerValue("DetectFace.Data.LandmarkCount");
            data.FaceCount     = _ctx.IntegerValue("DetectFace.Data.FaceCount");

            List <string> data_faceProbabilityList = new List <string>();

            for (int i = 0; i < _ctx.Length("DetectFace.Data.FaceProbabilityList.Length"); i++)
            {
                data_faceProbabilityList.Add(_ctx.StringValue("DetectFace.Data.FaceProbabilityList[" + i + "]"));
            }
            data.FaceProbabilityList = data_faceProbabilityList;

            List <string> data_faceRectangles = new List <string>();

            for (int i = 0; i < _ctx.Length("DetectFace.Data.FaceRectangles.Length"); i++)
            {
                data_faceRectangles.Add(_ctx.StringValue("DetectFace.Data.FaceRectangles[" + i + "]"));
            }
            data.FaceRectangles = data_faceRectangles;

            List <string> data_landmarks = new List <string>();

            for (int i = 0; i < _ctx.Length("DetectFace.Data.Landmarks.Length"); i++)
            {
                data_landmarks.Add(_ctx.StringValue("DetectFace.Data.Landmarks[" + i + "]"));
            }
            data.Landmarks = data_landmarks;

            List <string> data_poseList = new List <string>();

            for (int i = 0; i < _ctx.Length("DetectFace.Data.PoseList.Length"); i++)
            {
                data_poseList.Add(_ctx.StringValue("DetectFace.Data.PoseList[" + i + "]"));
            }
            data.PoseList = data_poseList;

            List <string> data_pupils = new List <string>();

            for (int i = 0; i < _ctx.Length("DetectFace.Data.Pupils.Length"); i++)
            {
                data_pupils.Add(_ctx.StringValue("DetectFace.Data.Pupils[" + i + "]"));
            }
            data.Pupils = data_pupils;

            DetectFaceResponse.DetectFace_Data.DetectFace_Qualities qualities = new DetectFaceResponse.DetectFace_Data.DetectFace_Qualities();

            List <string> qualities_noiseList = new List <string>();

            for (int i = 0; i < _ctx.Length("DetectFace.Data.Qualities.NoiseList.Length"); i++)
            {
                qualities_noiseList.Add(_ctx.StringValue("DetectFace.Data.Qualities.NoiseList[" + i + "]"));
            }
            qualities.NoiseList = qualities_noiseList;

            List <string> qualities_scoreList = new List <string>();

            for (int i = 0; i < _ctx.Length("DetectFace.Data.Qualities.ScoreList.Length"); i++)
            {
                qualities_scoreList.Add(_ctx.StringValue("DetectFace.Data.Qualities.ScoreList[" + i + "]"));
            }
            qualities.ScoreList = qualities_scoreList;

            List <string> qualities_blurList = new List <string>();

            for (int i = 0; i < _ctx.Length("DetectFace.Data.Qualities.BlurList.Length"); i++)
            {
                qualities_blurList.Add(_ctx.StringValue("DetectFace.Data.Qualities.BlurList[" + i + "]"));
            }
            qualities.BlurList = qualities_blurList;

            List <string> qualities_maskList = new List <string>();

            for (int i = 0; i < _ctx.Length("DetectFace.Data.Qualities.MaskList.Length"); i++)
            {
                qualities_maskList.Add(_ctx.StringValue("DetectFace.Data.Qualities.MaskList[" + i + "]"));
            }
            qualities.MaskList = qualities_maskList;

            List <string> qualities_glassList = new List <string>();

            for (int i = 0; i < _ctx.Length("DetectFace.Data.Qualities.GlassList.Length"); i++)
            {
                qualities_glassList.Add(_ctx.StringValue("DetectFace.Data.Qualities.GlassList[" + i + "]"));
            }
            qualities.GlassList = qualities_glassList;

            List <string> qualities_fnfList = new List <string>();

            for (int i = 0; i < _ctx.Length("DetectFace.Data.Qualities.FnfList.Length"); i++)
            {
                qualities_fnfList.Add(_ctx.StringValue("DetectFace.Data.Qualities.FnfList[" + i + "]"));
            }
            qualities.FnfList = qualities_fnfList;

            List <string> qualities_poseList1 = new List <string>();

            for (int i = 0; i < _ctx.Length("DetectFace.Data.Qualities.PoseList.Length"); i++)
            {
                qualities_poseList1.Add(_ctx.StringValue("DetectFace.Data.Qualities.PoseList[" + i + "]"));
            }
            qualities.PoseList1 = qualities_poseList1;

            List <string> qualities_illuList = new List <string>();

            for (int i = 0; i < _ctx.Length("DetectFace.Data.Qualities.IlluList.Length"); i++)
            {
                qualities_illuList.Add(_ctx.StringValue("DetectFace.Data.Qualities.IlluList[" + i + "]"));
            }
            qualities.IlluList      = qualities_illuList;
            data.Qualities          = qualities;
            detectFaceResponse.Data = data;

            return(detectFaceResponse);
        }
        public static DetectFaceResponse Unmarshall(UnmarshallerContext context)
        {
            DetectFaceResponse detectFaceResponse = new DetectFaceResponse();

            detectFaceResponse.HttpResponse = context.HttpResponse;
            detectFaceResponse.RequestId    = context.StringValue("DetectFace.RequestId");

            List <string> detectFaceResponse_srcUris = new List <string>();

            for (int i = 0; i < context.Length("DetectFace.SrcUris.Length"); i++)
            {
                detectFaceResponse_srcUris.Add(context.StringValue("DetectFace.SrcUris[" + i + "]"));
            }
            detectFaceResponse.SrcUris = detectFaceResponse_srcUris;

            List <DetectFaceResponse.DetectFace_SuccessDetailsItem> detectFaceResponse_successDetails = new List <DetectFaceResponse.DetectFace_SuccessDetailsItem>();

            for (int i = 0; i < context.Length("DetectFace.SuccessDetails.Length"); i++)
            {
                DetectFaceResponse.DetectFace_SuccessDetailsItem successDetailsItem = new DetectFaceResponse.DetectFace_SuccessDetailsItem();
                successDetailsItem.SrcUri  = context.StringValue("DetectFace.SuccessDetails[" + i + "].SrcUri");
                successDetailsItem.PhotoId = context.StringValue("DetectFace.SuccessDetails[" + i + "].PhotoId");

                List <DetectFaceResponse.DetectFace_SuccessDetailsItem.DetectFace_FacesItem> successDetailsItem_faces = new List <DetectFaceResponse.DetectFace_SuccessDetailsItem.DetectFace_FacesItem>();
                for (int j = 0; j < context.Length("DetectFace.SuccessDetails[" + i + "].Faces.Length"); j++)
                {
                    DetectFaceResponse.DetectFace_SuccessDetailsItem.DetectFace_FacesItem facesItem = new DetectFaceResponse.DetectFace_SuccessDetailsItem.DetectFace_FacesItem();
                    facesItem.FaceId = context.StringValue("DetectFace.SuccessDetails[" + i + "].Faces[" + j + "].FaceId");

                    DetectFaceResponse.DetectFace_SuccessDetailsItem.DetectFace_FacesItem.DetectFace_FaceRectangle faceRectangle = new DetectFaceResponse.DetectFace_SuccessDetailsItem.DetectFace_FacesItem.DetectFace_FaceRectangle();
                    faceRectangle.Top       = context.StringValue("DetectFace.SuccessDetails[" + i + "].Faces[" + j + "].FaceRectangle.Top");
                    faceRectangle.Left      = context.StringValue("DetectFace.SuccessDetails[" + i + "].Faces[" + j + "].FaceRectangle.Left");
                    faceRectangle.Width     = context.StringValue("DetectFace.SuccessDetails[" + i + "].Faces[" + j + "].FaceRectangle.Width");
                    faceRectangle.Height    = context.StringValue("DetectFace.SuccessDetails[" + i + "].Faces[" + j + "].FaceRectangle.Height");
                    facesItem.FaceRectangle = faceRectangle;

                    DetectFaceResponse.DetectFace_SuccessDetailsItem.DetectFace_FacesItem.DetectFace_FaceAttribute faceAttribute = new DetectFaceResponse.DetectFace_SuccessDetailsItem.DetectFace_FacesItem.DetectFace_FaceAttribute();

                    DetectFaceResponse.DetectFace_SuccessDetailsItem.DetectFace_FacesItem.DetectFace_FaceAttribute.DetectFace_Gender gender = new DetectFaceResponse.DetectFace_SuccessDetailsItem.DetectFace_FacesItem.DetectFace_FaceAttribute.DetectFace_Gender();
                    gender._Value        = context.StringValue("DetectFace.SuccessDetails[" + i + "].Faces[" + j + "].FaceAttribute.Gender.Value");
                    faceAttribute.Gender = gender;

                    DetectFaceResponse.DetectFace_SuccessDetailsItem.DetectFace_FacesItem.DetectFace_FaceAttribute.DetectFace_Age age = new DetectFaceResponse.DetectFace_SuccessDetailsItem.DetectFace_FacesItem.DetectFace_FaceAttribute.DetectFace_Age();
                    age._Value        = context.IntegerValue("DetectFace.SuccessDetails[" + i + "].Faces[" + j + "].FaceAttribute.Age.Value");
                    faceAttribute.Age = age;

                    DetectFaceResponse.DetectFace_SuccessDetailsItem.DetectFace_FacesItem.DetectFace_FaceAttribute.DetectFace_HeadPose headPose = new DetectFaceResponse.DetectFace_SuccessDetailsItem.DetectFace_FacesItem.DetectFace_FaceAttribute.DetectFace_HeadPose();
                    headPose.PitchAngle    = context.FloatValue("DetectFace.SuccessDetails[" + i + "].Faces[" + j + "].FaceAttribute.HeadPose.PitchAngle");
                    headPose.RollAngle     = context.FloatValue("DetectFace.SuccessDetails[" + i + "].Faces[" + j + "].FaceAttribute.HeadPose.RollAngle");
                    headPose.YawAngle      = context.FloatValue("DetectFace.SuccessDetails[" + i + "].Faces[" + j + "].FaceAttribute.HeadPose.YawAngle");
                    faceAttribute.HeadPose = headPose;

                    DetectFaceResponse.DetectFace_SuccessDetailsItem.DetectFace_FacesItem.DetectFace_FaceAttribute.DetectFace_EyeStatus eyeStatus = new DetectFaceResponse.DetectFace_SuccessDetailsItem.DetectFace_FacesItem.DetectFace_FaceAttribute.DetectFace_EyeStatus();

                    DetectFaceResponse.DetectFace_SuccessDetailsItem.DetectFace_FacesItem.DetectFace_FaceAttribute.DetectFace_EyeStatus.DetectFace_LeftEyeStatus leftEyeStatus = new DetectFaceResponse.DetectFace_SuccessDetailsItem.DetectFace_FacesItem.DetectFace_FaceAttribute.DetectFace_EyeStatus.DetectFace_LeftEyeStatus();
                    leftEyeStatus.NormalGlassEyeOpen  = context.FloatValue("DetectFace.SuccessDetails[" + i + "].Faces[" + j + "].FaceAttribute.EyeStatus.LeftEyeStatus.NormalGlassEyeOpen");
                    leftEyeStatus.NoGlassEyeClose     = context.FloatValue("DetectFace.SuccessDetails[" + i + "].Faces[" + j + "].FaceAttribute.EyeStatus.LeftEyeStatus.NoGlassEyeClose");
                    leftEyeStatus.Occlusion           = context.FloatValue("DetectFace.SuccessDetails[" + i + "].Faces[" + j + "].FaceAttribute.EyeStatus.LeftEyeStatus.Occlusion");
                    leftEyeStatus.NoGlassEyeOpen      = context.FloatValue("DetectFace.SuccessDetails[" + i + "].Faces[" + j + "].FaceAttribute.EyeStatus.LeftEyeStatus.NoGlassEyeOpen");
                    leftEyeStatus.NormalGlassEyeClose = context.FloatValue("DetectFace.SuccessDetails[" + i + "].Faces[" + j + "].FaceAttribute.EyeStatus.LeftEyeStatus.NormalGlassEyeClose");
                    leftEyeStatus.DarkGlasses         = context.FloatValue("DetectFace.SuccessDetails[" + i + "].Faces[" + j + "].FaceAttribute.EyeStatus.LeftEyeStatus.DarkGlasses");
                    eyeStatus.LeftEyeStatus           = leftEyeStatus;

                    DetectFaceResponse.DetectFace_SuccessDetailsItem.DetectFace_FacesItem.DetectFace_FaceAttribute.DetectFace_EyeStatus.DetectFace_RightEyeStatus rightEyeStatus = new DetectFaceResponse.DetectFace_SuccessDetailsItem.DetectFace_FacesItem.DetectFace_FaceAttribute.DetectFace_EyeStatus.DetectFace_RightEyeStatus();
                    rightEyeStatus.NormalGlassEyeOpen  = context.FloatValue("DetectFace.SuccessDetails[" + i + "].Faces[" + j + "].FaceAttribute.EyeStatus.RightEyeStatus.NormalGlassEyeOpen");
                    rightEyeStatus.NoGlassEyeClose     = context.FloatValue("DetectFace.SuccessDetails[" + i + "].Faces[" + j + "].FaceAttribute.EyeStatus.RightEyeStatus.NoGlassEyeClose");
                    rightEyeStatus.Occlusion           = context.FloatValue("DetectFace.SuccessDetails[" + i + "].Faces[" + j + "].FaceAttribute.EyeStatus.RightEyeStatus.Occlusion");
                    rightEyeStatus.NoGlassEyeOpen      = context.FloatValue("DetectFace.SuccessDetails[" + i + "].Faces[" + j + "].FaceAttribute.EyeStatus.RightEyeStatus.NoGlassEyeOpen");
                    rightEyeStatus.NormalGlassEyeClose = context.FloatValue("DetectFace.SuccessDetails[" + i + "].Faces[" + j + "].FaceAttribute.EyeStatus.RightEyeStatus.NormalGlassEyeClose");
                    rightEyeStatus.DarkGlasses         = context.FloatValue("DetectFace.SuccessDetails[" + i + "].Faces[" + j + "].FaceAttribute.EyeStatus.RightEyeStatus.DarkGlasses");
                    eyeStatus.RightEyeStatus           = rightEyeStatus;
                    faceAttribute.EyeStatus            = eyeStatus;

                    DetectFaceResponse.DetectFace_SuccessDetailsItem.DetectFace_FacesItem.DetectFace_FaceAttribute.DetectFace_Blur blur = new DetectFaceResponse.DetectFace_SuccessDetailsItem.DetectFace_FacesItem.DetectFace_FaceAttribute.DetectFace_Blur();

                    DetectFaceResponse.DetectFace_SuccessDetailsItem.DetectFace_FacesItem.DetectFace_FaceAttribute.DetectFace_Blur.DetectFace_Blurness blurness = new DetectFaceResponse.DetectFace_SuccessDetailsItem.DetectFace_FacesItem.DetectFace_FaceAttribute.DetectFace_Blur.DetectFace_Blurness();
                    blurness._Value    = context.FloatValue("DetectFace.SuccessDetails[" + i + "].Faces[" + j + "].FaceAttribute.Blur.Blurness.Value");
                    blurness.Threshold = context.FloatValue("DetectFace.SuccessDetails[" + i + "].Faces[" + j + "].FaceAttribute.Blur.Blurness.Threshold");
                    blur.Blurness      = blurness;
                    faceAttribute.Blur = blur;

                    DetectFaceResponse.DetectFace_SuccessDetailsItem.DetectFace_FacesItem.DetectFace_FaceAttribute.DetectFace_FaceQuality faceQuality = new DetectFaceResponse.DetectFace_SuccessDetailsItem.DetectFace_FacesItem.DetectFace_FaceAttribute.DetectFace_FaceQuality();
                    faceQuality._Value        = context.FloatValue("DetectFace.SuccessDetails[" + i + "].Faces[" + j + "].FaceAttribute.FaceQuality.Value");
                    faceQuality.Threshold     = context.FloatValue("DetectFace.SuccessDetails[" + i + "].Faces[" + j + "].FaceAttribute.FaceQuality.Threshold");
                    faceAttribute.FaceQuality = faceQuality;
                    facesItem.FaceAttribute   = faceAttribute;

                    successDetailsItem_faces.Add(facesItem);
                }
                successDetailsItem.Faces = successDetailsItem_faces;

                detectFaceResponse_successDetails.Add(successDetailsItem);
            }
            detectFaceResponse.SuccessDetails = detectFaceResponse_successDetails;

            List <DetectFaceResponse.DetectFace_FailDetailsItem> detectFaceResponse_failDetails = new List <DetectFaceResponse.DetectFace_FailDetailsItem>();

            for (int i = 0; i < context.Length("DetectFace.FailDetails.Length"); i++)
            {
                DetectFaceResponse.DetectFace_FailDetailsItem failDetailsItem = new DetectFaceResponse.DetectFace_FailDetailsItem();
                failDetailsItem.SrcUri = context.StringValue("DetectFace.FailDetails[" + i + "].SrcUri");
                failDetailsItem.Reason = context.StringValue("DetectFace.FailDetails[" + i + "].Reason");

                detectFaceResponse_failDetails.Add(failDetailsItem);
            }
            detectFaceResponse.FailDetails = detectFaceResponse_failDetails;

            return(detectFaceResponse);
        }