예제 #1
0
        public static void DemoV2()
        {
            // Use FrsClient::GetV2() to get v2 api

            AuthInfo  authInfo  = new AuthInfo("https://face.cn-north-1.myhuaweicloud.com", "ak", "sk");
            FrsClient frsClient = new FrsClient(authInfo, "project id");

            try
            {
                Console.WriteLine("compare");
                CompareFaceResult compareFaceResult = frsClient.GetV2().GetCompareService().CompareFaceByUrl("/obs/1.jpg", "/obs/1.jpg");
                Console.WriteLine(compareFaceResult.GetJsonString());
                compareFaceResult = frsClient.GetV2().GetCompareService().CompareFaceByFile("/resource/1.jpeg", "/resource/1.jpeg");
                Console.WriteLine(compareFaceResult.GetJsonString());

                Console.WriteLine("detect");
                DetectFaceResult detectFaceResult = frsClient.GetV2().GetDetectService().DetectFaceByUrl("/obs/1.jpg", "0,1,2");
                Console.WriteLine(detectFaceResult.GetJsonString());
                DetectFaceResult detectFaceResult2 = frsClient.GetV2().GetDetectService().DetectFaceByFile("/resource/1.jpeg", "1,2");
                Console.WriteLine(detectFaceResult2.GetJsonString());

                Console.WriteLine("live detect");
                LiveDetectResult liveDetectResult = frsClient.GetV2().GetLiveDetectService().LiveDetectByUrl("/obs/1.jpg", "1", "0-1000");
                Console.WriteLine(liveDetectResult.GetJsonString());
                liveDetectResult = frsClient.GetV2().GetLiveDetectService().LiveDetectByFile("/resource/3.png", "1");
                Console.WriteLine(liveDetectResult.GetJsonString());

                Console.WriteLine("create face set");
                //CreateFaceSetResult createFaceSetResult = frsClient.GetFaceSetService().CreateFaceSet("face_set_name_test");
                //Console.WriteLine(createFaceSetResult.GetJsonString());
                CreateExternalFields createExternalFields = new CreateExternalFields();
                createExternalFields.AddField("testInt", FieldType.INTEGER);
                createExternalFields.AddField("testStr", FieldType.STRING);
                CreateFaceSetResult createFaceSetResult = frsClient.GetV2().GetFaceSetService().CreateFaceSet("face_set_name_test", 10000, createExternalFields);
                Console.WriteLine(createFaceSetResult.GetJsonString());

                Console.WriteLine("get all face set");
                GetAllFaceSetsResult getAllFaceSetsResult = frsClient.GetV2().GetFaceSetService().GetAllFaceSets();
                Console.WriteLine(getAllFaceSetsResult.GetJsonString());

                Console.WriteLine("get face set");
                GetFaceSetResult getFaceSetResult = frsClient.GetV2().GetFaceSetService().GetFaceSet("face_set_name_test");
                Console.WriteLine(getFaceSetResult.GetJsonString());

                Console.WriteLine("add face");
                AddFaceResult addFaceResult = frsClient.GetV2().GetFaceService().AddFaceByUrl("face_set_name_test", "/obs/1.jpg");
                Console.WriteLine(addFaceResult.GetJsonString());
                AddExternalFields addExternalFields = new AddExternalFields();
                addExternalFields.AddField("testInt", 1);
                addExternalFields.AddField("testStr", "str");
                addFaceResult = frsClient.GetV2().GetFaceService().AddFaceByFile("face_set_name_test", "/resource/3.png", addExternalFields);
                Console.WriteLine(addFaceResult.GetJsonString());

                Console.WriteLine("get all face");
                GetFaceResult getFaceResult = frsClient.GetV2().GetFaceService().GetFaces("face_set_name_test", 0, 10);
                Console.WriteLine(getFaceResult.GetJsonString());

                Console.WriteLine("search face");
                SearchFaceResult searchFaceResult = frsClient.GetV2().GetSearchService().SearchFaceByFile("face_set_name_test", "/resource/3.png", 10, 0.1);
                Console.WriteLine(searchFaceResult.GetJsonString());
                SearchSort searchSort = new SearchSort();
                searchSort.AddSortField("testInt", SortType.ASC);
                SearchReturnFields searchReturnFields = new SearchReturnFields();
                searchReturnFields.AddReturnField("testInt");
                searchFaceResult = frsClient.GetV2().GetSearchService().SearchFaceByUrl("face_set_name_test", "/obs/1.jpg", 10, 0, searchSort, searchReturnFields, null);
                Console.WriteLine(searchFaceResult.GetJsonString());

                Console.WriteLine("delete face set");
                DeleteFaceSetResult deleteFaceSetResult = frsClient.GetV2().GetFaceSetService().DeleteFaceSet("face_set_name_test");
                Console.WriteLine(deleteFaceSetResult.GetJsonString());
            }
            catch (Exception e)
            {
                Console.WriteLine("=======ERROR CLEAN==========");
                DeleteFaceSetResult deleteFaceSetResult = frsClient.GetV2().GetFaceSetService().DeleteFaceSet("face_set_name_test");
                Console.WriteLine(deleteFaceSetResult.GetJsonString());
                Console.WriteLine(e);
            }
        }
예제 #2
0
 public AddFaceResult AddFaceByUrl(string faceSetName, string imageUrl, AddExternalFields addExternalFields)
 {
     return(AddFaceByUrl(faceSetName, null, imageUrl, addExternalFields));
 }
예제 #3
0
        //FILE
        public AddFaceResult AddFaceByFile(string faceSetName, string externalImageId, string imagePath, AddExternalFields addExternalFields)
        {
            string          uri       = string.Format(FrsConstantV2.FACE_ADD_URI, this.projectId, faceSetName);
            MultipartWriter multipart = new MultipartWriter();

            multipart.WriteStart();
            multipart.WriteFile("image_file", imagePath, imagePath);
            if (null != externalImageId)
            {
                multipart.WriteProperty("external_image_id", externalImageId);
            }
            if (null != addExternalFields)
            {
                multipart.WriteProperty("external_fields", addExternalFields.GetString());
            }
            byte[]          data     = multipart.WriteClose();
            HttpWebResponse response = this.accessService.Post(uri, null, data, multipart.GetContentType());

            return(HttpUtils.ResponseToObj <AddFaceResult>(response));
        }
예제 #4
0
 //URL
 public AddFaceResult AddFaceByUrl(string faceSetName, string externalImageId, string imageUrl, AddExternalFields addExternalFields)
 {
     return(AddFace(faceSetName, externalImageId, imageUrl, ImageType.URL, addExternalFields));
 }
예제 #5
0
 public AddFaceResult AddFaceByBase64(string faceSetName, string imageBase64, AddExternalFields addExternalFields)
 {
     return(AddFaceByBase64(faceSetName, null, imageBase64, addExternalFields));
 }
예제 #6
0
 public AddFaceResult AddFaceByBase64(string faceSetName, string externalImageId, string imageBase64, AddExternalFields addExternalFields)
 {
     return(AddFace(faceSetName, externalImageId, imageBase64, ImageType.BASE64, addExternalFields));
 }
예제 #7
0
        private AddFaceResult AddFace(string faceSetName, string externalImageId, string image, ImageType imageType, AddExternalFields addExternalFields)
        {
            string uri = String.Format(FrsConstantV2.FACE_ADD_URI, projectId, faceSetName);
            Dictionary <string, object> jsonObj = new Dictionary <string, object>();

            switch (imageType)
            {
            case ImageType.BASE64:
                jsonObj.Add("image_base64", image);
                break;

            case ImageType.URL:
                jsonObj.Add("image_url", image);
                break;
            }
            if (null != externalImageId)
            {
                jsonObj.Add("external_image_id", externalImageId);
            }
            if (null != addExternalFields)
            {
                jsonObj.Add("external_fields", addExternalFields.GetValue());
            }
            HttpWebResponse response = accessService.Post(uri, null, HttpUtils.ObjToData(jsonObj), FrsConstantV2.TYPE_JSON);

            return(HttpUtils.ResponseToObj <AddFaceResult>(response));
        }
예제 #8
0
 public AddFaceResult AddFaceByFile(string faceSetName, string imagePath, AddExternalFields addExternalFields)
 {
     return(AddFaceByFile(faceSetName, null, imagePath, addExternalFields));
 }