示例#1
0
        private SearchFaceResult SearchFace(string faceSetName, string image, ImageType imageType, int topN, double threshold,
                                            SearchSort searchSort, SearchReturnFields searchReturnFields, string filter)
        {
            string uri = string.Format(FrsConstantV2.FACE_SEARCH_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;

            case ImageType.FACEID:
                jsonObj.Add("face_id", image);
                break;
            }
            if (-1 != topN)
            {
                jsonObj.Add("top_n", topN);
            }
            if (Math.Abs(threshold) > 0)
            {
                jsonObj.Add("threshold", threshold);
            }
            if (null != searchSort)
            {
                jsonObj.Add("sort", searchSort.GetString());
            }
            if (null != searchReturnFields)
            {
                jsonObj.Add("return_fields", searchReturnFields.GetString());
            }
            if (null != filter)
            {
                jsonObj.Add("filter", filter);
            }
            HttpWebResponse response = accessService.Post(uri, null, HttpUtils.ObjToData(jsonObj), FrsConstantV2.TYPE_JSON);

            return(HttpUtils.ResponseToObj <SearchFaceResult>(response));
        }
示例#2
0
        public SearchFaceResult SearchFaceByFile(string faceSetName, string imagePath, int topN, double threshold,
                                                 SearchSort searchSort, SearchReturnFields searchReturnFields, string filter)
        {
            string          uri       = string.Format(FrsConstantV2.FACE_SEARCH_URI, this.projectId, faceSetName);
            MultipartWriter multipart = new MultipartWriter();

            multipart.WriteStart();
            multipart.WriteFile("image_file", imagePath, imagePath);
            //top n
            if (-1 != topN)
            {
                multipart.WriteProperty("top_n", topN.ToString());
            }
            //threshold
            if (Math.Abs(threshold) > 0)
            {
                multipart.WriteProperty("threshold", threshold.ToString());
            }
            //search sort
            if (null != searchSort)
            {
                multipart.WriteProperty("sort", searchSort.GetString());
            }
            //return fields
            if (null != searchReturnFields)
            {
                multipart.WriteProperty("return_fields", searchReturnFields.GetString());
            }
            //filter
            if (null != filter)
            {
                multipart.WriteProperty("filter", filter);
            }
            byte[]          data     = multipart.WriteClose();
            HttpWebResponse response = this.accessService.Post(uri, null, data, multipart.GetContentType());

            return(HttpUtils.ResponseToObj <SearchFaceResult>(response));
        }
示例#3
0
 public SearchFaceResult SearchFaceByFaceId(string faceSetName, string faceId, int topN, double threshold,
                                            SearchSort searchSort, SearchReturnFields searchReturnFields, string filter)
 {
     return(SearchFace(faceSetName, faceId, ImageType.FACEID, topN, threshold, searchSort, searchReturnFields, filter));
 }
示例#4
0
 public SearchFaceResult SearchFaceByUrl(string faceSetName, string imageUrl, int topN, double threshold,
                                         SearchSort searchSort, SearchReturnFields searchReturnFields, string filter)
 {
     return(SearchFace(faceSetName, imageUrl, ImageType.URL, topN, threshold, searchSort, searchReturnFields, filter));
 }
示例#5
0
 public SearchFaceResult SearchFaceByBase64(string faceSetName, string imageBase64, int topN, double threshold,
                                            SearchSort searchSort, SearchReturnFields searchReturnFields, string filter)
 {
     return(SearchFace(faceSetName, imageBase64, ImageType.BASE64, topN, threshold, searchSort, searchReturnFields, filter));
 }
示例#6
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);
            }
        }