Beispiel #1
0
        // snippet-start:[Rekognition.dotnetv3.SearchFacesMatchingIdExample]
        public static async Task Main()
        {
            string collectionId = "MyCollection";
            string faceId       = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";

            var rekognitionClient = new AmazonRekognitionClient();

            // Search collection for faces matching the face id.
            var searchFacesRequest = new SearchFacesRequest
            {
                CollectionId       = collectionId,
                FaceId             = faceId,
                FaceMatchThreshold = 70F,
                MaxFaces           = 2,
            };

            SearchFacesResponse searchFacesResponse = await rekognitionClient.SearchFacesAsync(searchFacesRequest);

            Console.WriteLine("Face matching faceId " + faceId);

            Console.WriteLine("Matche(s): ");
            searchFacesResponse.FaceMatches.ForEach(face =>
            {
                Console.WriteLine($"FaceId: {face.Face.FaceId} Similarity: {face.Similarity}");
            });
        }
Beispiel #2
0
        internal SearchFacesResponse SearchFaces(SearchFacesRequest request)
        {
            var marshaller   = new SearchFacesRequestMarshaller();
            var unmarshaller = SearchFacesResponseUnmarshaller.Instance;

            return(Invoke <SearchFacesRequest, SearchFacesResponse>(request, marshaller, unmarshaller));
        }
Beispiel #3
0
    public static void Example()
    {
        String collectionId = "MyCollection";
        String faceId       = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";

        AmazonRekognitionClient rekognitionClient = new AmazonRekognitionClient();

        // Search collection for faces matching the face id.

        SearchFacesRequest searchFacesRequest = new SearchFacesRequest()
        {
            CollectionId       = collectionId,
            FaceId             = faceId,
            FaceMatchThreshold = 70F,
            MaxFaces           = 2
        };

        SearchFacesResponse searchFacesResponse = rekognitionClient.SearchFaces(searchFacesRequest);

        Console.WriteLine("Face matching faceId " + faceId);

        Console.WriteLine("Matche(s): ");
        foreach (FaceMatch face in searchFacesResponse.FaceMatches)
        {
            Console.WriteLine("FaceId: " + face.Face.FaceId + ", Similarity: " + face.Similarity);
        }
    }
Beispiel #4
0
        public async Task <SearchResult <MediaFace> > SearchAsync(
            SearchFacesRequest request,
            CancellationToken cancellationToken)
        {
            FilterDefinition <MediaFace> filter = Builders <MediaFace> .Filter.Empty;

            if (request.States is { } states&& states.Any())
            {
                filter = filter & Builders <MediaFace> .Filter.In(x => x.State, states);
            }
            if (request.RecognitionTypes is { } types&& types.Any())
            {
                filter = filter & Builders <MediaFace> .Filter.In(x => x.RecognitionType, types);
            }
            if (request.Persons is { } persons&& persons.Any())
            {
                filter = filter & Builders <MediaFace> .Filter.In(nameof(MediaFace.PersonId), persons);
            }

            IFindFluent <MediaFace, MediaFace> cursor = _mediaStoreContext.Faces.Find(filter);

            long totalCount = await cursor.CountDocumentsAsync(cancellationToken);

            List <MediaFace> faces = await cursor
                                     .Skip(request.PageNr *request.PageSize)
                                     .Limit(request.PageSize)
                                     .ToListAsync();

            return(new SearchResult <MediaFace>(faces, (int)totalCount));
        }
Beispiel #5
0
        /// <summary>
        /// Initiates the asynchronous execution of the SearchFaces operation.
        /// </summary>
        ///
        /// <param name="request">Container for the necessary parameters to execute the SearchFaces operation.</param>
        /// <param name="cancellationToken">
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// </param>
        /// <returns>The task object representing the asynchronous operation.</returns>
        public Task <SearchFacesResponse> SearchFacesAsync(SearchFacesRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var marshaller   = new SearchFacesRequestMarshaller();
            var unmarshaller = SearchFacesResponseUnmarshaller.Instance;

            return(InvokeAsync <SearchFacesRequest, SearchFacesResponse>(request, marshaller,
                                                                         unmarshaller, cancellationToken));
        }
        public void cloudCheck()
        {
            String aaaa = path + "aaa.png";

            Console.WriteLine(aaaa);
            String ImagBase64 = ImgToBase64String(aaaa);

            //String ImagBase64 = "";
            //StreamWriter sw = new StreamWriter(Application.StartupPath + "\\Log.txt", true, Encoding.Default);
            //sw.WriteLine(ImagBase64);
            //sw.Close();
            //  Console.WriteLine(ImagBase64);


            try
            {
                Credential cred = new Credential
                {
                    SecretId  = "XXXX",
                    SecretKey = "yyyy"
                };

                ClientProfile clientProfile = new ClientProfile();
                HttpProfile   httpProfile   = new HttpProfile();
                httpProfile.Endpoint      = ("iai.tencentcloudapi.com");
                clientProfile.HttpProfile = httpProfile;

                IaiClient          client    = new IaiClient(cred, "ap-seoul", clientProfile);
                SearchFacesRequest req       = new SearchFacesRequest();
                string             strParams = "{\"GroupIds\":[\"hjtest\"],\"Image\":\"" + ImagBase64 + "\"}";
                req = SearchFacesRequest.FromJsonString <SearchFacesRequest>(strParams);
                SearchFacesResponse resp = client.SearchFacesSync(req);
                String tt = AbstractModel.ToJsonString(resp);
                //   Console.WriteLine(tt);
                String temp = GetPerson(tt);
                if (temp.Equals("error"))
                {
                    //MessageBox.Show("존재하지 않는 Person");
                }
                else
                {
                }
                // Console.WriteLine(temp);
                ListBoxItemAdd(this, this.listBox1, temp);
            }
            catch (Exception e)
            {
                ListBoxItemAdd(this, this.listBox1, "존재하지 않는 Person");
                Console.WriteLine(e.ToString());
            }
            Console.Read();
        }
Beispiel #7
0
        private static async Task <SearchFacesResponse> SearchFaces(string collectionId, string faceId)
        {
            AmazonRekognitionClient rekognitionClient = new AmazonRekognitionClient(Amazon.RegionEndpoint.USWest2);
            float similarityThreshold = 0F; // set to 0 to see all probability scores
            int   maxResults          = 100;

            SearchFacesRequest request = new SearchFacesRequest()
            {
                CollectionId       = collectionId,
                FaceId             = faceId,
                FaceMatchThreshold = similarityThreshold,
                MaxFaces           = maxResults
            };

            return(await rekognitionClient.SearchFacesAsync(request));
        }
Beispiel #8
0
        /// <summary>
        /// 用于对一张待识别的人脸图片,在一个或多个人员库中识别出最相似的 TopN 人员,识别结果按照相似度从大到小排序。单次搜索的人员库人脸总数量不得超过 100 万张。
        /// 此接口需与[人员库管理相关接口](https://cloud.tencent.com/document/product/867/32794)结合使用。
        /// </summary>
        /// <param name="req">参考<see cref="SearchFacesRequest"/></param>
        /// <returns>参考<see cref="SearchFacesResponse"/>实例</returns>
        public async Task <SearchFacesResponse> SearchFaces(SearchFacesRequest req)
        {
            JsonResponseModel <SearchFacesResponse> rsp = null;

            try
            {
                var strResp = await this.InternalRequest(req, "SearchFaces");

                rsp = JsonConvert.DeserializeObject <JsonResponseModel <SearchFacesResponse> >(strResp);
            }
            catch (JsonSerializationException e)
            {
                throw new TencentCloudSDKException(e.Message);
            }
            return(rsp.Response);
        }
Beispiel #9
0
 public async Task <SearchResult <MediaFace> > SearchFacesAsync(
     SearchFacesRequest request,
     CancellationToken cancellationToken)
 {
     return(await _mediaStore.Faces.SearchAsync(request, cancellationToken));
 }
        /// <summary>
        /// Initiates the asynchronous execution of the SearchFaces operation.
        /// </summary>
        /// 
        /// <param name="request">Container for the necessary parameters to execute the SearchFaces operation on AmazonRekognitionClient.</param>
        /// <param name="callback">An AsyncCallback delegate that is invoked when the operation completes.</param>
        /// <param name="state">A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.</param>
        /// 
        /// <returns>An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndSearchFaces
        ///         operation.</returns>
        public IAsyncResult BeginSearchFaces(SearchFacesRequest request, AsyncCallback callback, object state)
        {
            var marshaller = new SearchFacesRequestMarshaller();
            var unmarshaller = SearchFacesResponseUnmarshaller.Instance;

            return BeginInvoke<SearchFacesRequest>(request, marshaller, unmarshaller,
                callback, state);
        }
        /// <summary>
        /// For a given input face ID, searches the specified collection for matching faces. You
        /// get a face ID when you add a face to the collection using the <a>IndexFaces</a> operation.
        /// The operation compares the features of the input face with faces in the specified
        /// collection. 
        /// 
        ///  <note> 
        /// <para>
        /// You can also search faces without indexing faces by using the <code>SearchFacesByImage</code>
        /// operation.
        /// </para>
        ///  </note> 
        /// <para>
        ///  The operation response returns an array of faces that match, ordered by similarity
        /// score with the highest similarity first. More specifically, it is an array of metadata
        /// for each face match that is found. Along with the metadata, the response also includes
        /// a <code>confidence</code> value for each face match, indicating the confidence that
        /// the specific face matches the input face. 
        /// </para>
        ///  
        /// <para>
        /// For an example, see <a>example3</a>.
        /// </para>
        ///  
        /// <para>
        /// This operation requires permissions to perform the <code>rekognition:SearchFaces</code>
        /// action.
        /// </para>
        /// </summary>
        /// <param name="request">Container for the necessary parameters to execute the SearchFaces service method.</param>
        /// 
        /// <returns>The response from the SearchFaces service method, as returned by Rekognition.</returns>
        /// <exception cref="Amazon.Rekognition.Model.AccessDeniedException">
        /// You are not authorized to perform the action.
        /// </exception>
        /// <exception cref="Amazon.Rekognition.Model.InternalServerErrorException">
        /// Amazon Rekognition experienced a service issue. Try your call again.
        /// </exception>
        /// <exception cref="Amazon.Rekognition.Model.InvalidParameterException">
        /// Input parameter violated a constraint. Validate your parameter before calling the
        /// API again.
        /// </exception>
        /// <exception cref="Amazon.Rekognition.Model.ProvisionedThroughputExceededException">
        /// The number of requests exceeded your throughput limit. If you want to increase this
        /// limit, contact Amazon Rekognition.
        /// </exception>
        /// <exception cref="Amazon.Rekognition.Model.ResourceNotFoundException">
        /// Collection specified in the request is not found.
        /// </exception>
        /// <exception cref="Amazon.Rekognition.Model.ThrottlingException">
        /// Amazon Rekognition is temporarily unable to process the request. Try your call again.
        /// </exception>
        public SearchFacesResponse SearchFaces(SearchFacesRequest request)
        {
            var marshaller = new SearchFacesRequestMarshaller();
            var unmarshaller = SearchFacesResponseUnmarshaller.Instance;

            return Invoke<SearchFacesRequest,SearchFacesResponse>(request, marshaller, unmarshaller);
        }
        /// <summary>
        /// Initiates the asynchronous execution of the SearchFaces operation.
        /// </summary>
        /// 
        /// <param name="request">Container for the necessary parameters to execute the SearchFaces operation.</param>
        /// <param name="cancellationToken">
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// </param>
        /// <returns>The task object representing the asynchronous operation.</returns>
        public Task<SearchFacesResponse> SearchFacesAsync(SearchFacesRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var marshaller = new SearchFacesRequestMarshaller();
            var unmarshaller = SearchFacesResponseUnmarshaller.Instance;

            return InvokeAsync<SearchFacesRequest,SearchFacesResponse>(request, marshaller, 
                unmarshaller, cancellationToken);
        }