Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions curl/face/detect.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# <detect_for_similar>
curl -H "Ocp-Apim-Subscription-Key: TODO_INSERT_YOUR_FACE_SUBSCRIPTION_KEY_HERE" "TODO_INSERT_YOUR_FACE_ENDPOINT_HERE/face/v1.0/detect?detectionModel=detection_03&returnFaceId=true&returnFaceLandmarks=false" -H "Content-Type: application/json" --data-ascii "{\"url\":\"https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/Face/images/Family1-Dad1.jpg\"}"
curl -v -X POST "https://{resource endpoint}/face/v1.0/detect?detectionModel=detection_03&recognitionModel=recognition_04&returnFaceId=true" -H "Content-Type: application/json" -H "Ocp-Apim-Subscription-Key: {subscription key}" --data-ascii "{\"url\":\"https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/Face/images/Family1-Dad1.jpg\"}"
# </detect_for_similar>

# <similar_group>
Expand All @@ -17,7 +17,7 @@ https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-f
# </similar_matcher>

# <similar>
curl -v -X POST "https:/{endpoint}/face/v1.0/findsimilars" -H "Content-Type: application/json" -H "Ocp-Apim-Subscription-Key: {subscription key}" --data-ascii "{body}"
curl -v -X POST "https://{resource endpoint}/face/v1.0/findsimilars" -H "Content-Type: application/json" -H "Ocp-Apim-Subscription-Key: {subscription key}" --data-ascii "{body}"
# </similar>

# <similar_body>
Expand Down
6 changes: 3 additions & 3 deletions dotnet/Face/Detect.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@ namespace FaceQuickstart
{
class Program
{
static string SUBSCRIPTION_KEY = "PASTE_YOUR_FACE_SUBSCRIPTION_KEY_HERE";
static string ENDPOINT = "PASTE_YOUR_FACE_ENDPOINT_HERE";
static string SubscriptionKey = "PASTE_YOUR_FACE_SUBSCRIPTION_KEY_HERE";
static string Endpoint = "PASTE_YOUR_FACE_ENDPOINT_HERE";

async static void Quickstart()
{
FaceClient faceClient = new FaceClient(new Uri(ENDPOINT), new AzureKeyCredential(SUBSCRIPTION_KEY));
FaceClient faceClient = new FaceClient(new Uri(Endpoint), new AzureKeyCredential(SubscriptionKey));

var imageUrl = "https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/ComputerVision/Images/faces.jpg";

Expand Down
37 changes: 16 additions & 21 deletions dotnet/Face/FindSimilar.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,24 +8,19 @@ namespace FaceQuickstart
class Program
{
// <snippet_image_url>
const string IMAGE_BASE_URL = "https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/Face/images/";
const string ImageBaseUrl = "https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/Face/images/";
// </snippet_image_url>

// <snippet_creds>
static readonly string SUBSCRIPTION_KEY = Environment.GetEnvironmentVariable("FACE_APIKEY") ?? "<apikey>";
static readonly string ENDPOINT = Environment.GetEnvironmentVariable("FACE_ENDPOINT") ?? "<endpoint>";
static readonly string SubscriptionKey = Environment.GetEnvironmentVariable("FACE_APIKEY") ?? "<apikey>";
static readonly string Endpoint = Environment.GetEnvironmentVariable("FACE_ENDPOINT") ?? "<endpoint>";
// </snippet_creds>

static void Main(string[] args)
{

// <snippet_detect_models>
FaceRecognitionModel RECOGNITION_MODEL4 = FaceRecognitionModel.Recognition04;
// </snippet_detect_models>

// <snippet_maincalls>
FaceClient client = Authenticate(ENDPOINT, SUBSCRIPTION_KEY);
FindSimilar(client, IMAGE_BASE_URL, RECOGNITION_MODEL4).Wait();
FaceClient client = Authenticate(Endpoint, SubscriptionKey);
FindSimilar(client, ImageBaseUrl).Wait();
// </snippet_maincalls>
}

Expand All @@ -37,15 +32,15 @@ public static FaceClient Authenticate(string endpoint, string key)
// </snippet_auth>

// <snippet_face_detect_recognize>
private static async Task<List<FaceDetectionResult>> DetectFaceRecognize(FaceClient faceClient, string url, FaceRecognitionModel recognition_model)
private static async Task<List<FaceDetectionResult>> DetectFaceRecognize(FaceClient faceClient, string url)
{
// Detect faces from image URL.
Response<IReadOnlyList<FaceDetectionResult>> response = await faceClient.DetectAsync(new Uri(url), FaceDetectionModel.Detection03, recognition_model, returnFaceId: true, [FaceAttributeType.QualityForRecognition]);
var response = await faceClient.DetectAsync(new Uri(url), FaceDetectionModel.Detection03, FaceRecognitionModel.Recognition04, true, [FaceAttributeType.QualityForRecognition]);
IReadOnlyList<FaceDetectionResult> detectedFaces = response.Value;
List<FaceDetectionResult> sufficientQualityFaces = new List<FaceDetectionResult>();
foreach (FaceDetectionResult detectedFace in detectedFaces)
{
var faceQualityForRecognition = detectedFace.FaceAttributes.QualityForRecognition;
QualityForRecognition? faceQualityForRecognition = detectedFace.FaceAttributes.QualityForRecognition;
if (faceQualityForRecognition.HasValue && (faceQualityForRecognition.Value != QualityForRecognition.Low))
{
sufficientQualityFaces.Add(detectedFace);
Expand All @@ -57,7 +52,7 @@ private static async Task<List<FaceDetectionResult>> DetectFaceRecognize(FaceCli
}
// </snippet_face_detect_recognize>

public static async Task FindSimilar(FaceClient client, string base_url, FaceRecognitionModel recognition_model)
public static async Task FindSimilar(FaceClient client, string baseUrl)
{
// <snippet_loadfaces>
Console.WriteLine("========FIND SIMILAR========");
Expand All @@ -76,27 +71,27 @@ public static async Task FindSimilar(FaceClient client, string base_url, FaceRec
};

string sourceImageFileName = "findsimilar.jpg";
IList<Guid> targetFaceIds = new List<Guid>();
foreach (var targetImageFileName in targetImageFileNames)
List<Guid> targetFaceIds = new List<Guid>();
foreach (string targetImageFileName in targetImageFileNames)
{
// Detect faces from target image url.
var faces = await DetectFaceRecognize(client, $"{base_url}{targetImageFileName}", recognition_model);
List<FaceDetectionResult> faces = await DetectFaceRecognize(client, $"{baseUrl}{targetImageFileName}");
// Add detected faceId to list of GUIDs.
targetFaceIds.Add(faces[0].FaceId.Value);
}

// Detect faces from source image url.
IList<FaceDetectionResult> detectedFaces = await DetectFaceRecognize(client, $"{base_url}{sourceImageFileName}", recognition_model);
List<FaceDetectionResult> detectedFaces = await DetectFaceRecognize(client, $"{baseUrl}{sourceImageFileName}");
Console.WriteLine();
// </snippet_loadfaces>

// <snippet_find_similar>
// Find a similar face(s) in the list of IDs. Comapring only the first in list for testing purposes.
Response<IReadOnlyList<FaceFindSimilarResult>> response = await client.FindSimilarAsync(detectedFaces[0].FaceId.Value, targetFaceIds);
IList<FaceFindSimilarResult> similarResults = response.Value.ToList();
var response = await client.FindSimilarAsync(detectedFaces[0].FaceId.Value, targetFaceIds);
List<FaceFindSimilarResult> similarResults = response.Value.ToList();
// </snippet_find_similar>
// <snippet_find_similar_print>
foreach (var similarResult in similarResults)
foreach (FaceFindSimilarResult similarResult in similarResults)
{
Console.WriteLine($"Faces from {sourceImageFileName} & ID:{similarResult.FaceId} are similar with confidence: {similarResult.Confidence}.");
}
Expand Down
Loading