Skip to content

Commit 11a4a38

Browse files
committed
acrolinx
1 parent 9da813c commit 11a4a38

File tree

7 files changed

+50
-50
lines changed

7 files changed

+50
-50
lines changed

articles/ai-services/computer-vision/concept-face-recognition-data-structures.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,14 @@ This article explains the data structures used in the Face service for face reco
2424

2525
## Data structures used with Identify
2626

27-
The Face Identify API uses container data structures to the hold face recognition data in the form of **Person** objects. There are three types of containers for this, listed from oldest to newest. We recommend you always use the newest one.
27+
The Face Identify API uses container data structures to the hold face recognition data in the form of **Person** objects. There are three types of containers for this purpose, listed from oldest to newest. We recommend you always use the newest one.
2828

2929
### PersonGroup
3030

3131
**PersonGroup** is the smallest container data structure.
3232
- You need to specify a recognition model when you create a **PersonGroup**. When any faces are added to that **PersonGroup**, it uses that model to process them. This model must match the model version with Face ID from detect API.
3333
- You must call the Train API to make any new face data reflect in the Identify API results. This includes adding/removing faces and adding/removing persons.
34-
- For the free tier subscription, it can hold up to 1000 Persons. For S0 paid subscription, it can have up to 10,000 Persons.
34+
- For the free tier subscription, it can hold up to 1,000 Persons. For S0 paid subscription, it can have up to 10,000 Persons.
3535

3636
**PersonGroupPerson** represents a person to be identified. It can hold up to 248 faces.
3737

@@ -45,7 +45,7 @@ The Face Identify API uses container data structures to the hold face recognitio
4545

4646
**PersonDirectory** is the newest data structure of this kind. It supports a larger scale and higher accuracy. Each Azure Face resource has a single default **PersonDirectory** data structure. It's a flat list of **PersonDirectoryPerson** objects - it can hold up to 20 million.
4747

48-
**PersonDirectoryPerson** represents a person to be identified. Updated from the **PersonGroupPerson** model, it allows you to add faces from different recognition models to the same person. However, the Identify operation can only match faces obtained with the same recognition model.
48+
**PersonDirectoryPerson** represents a person to be identified. Based on the older **PersonGroupPerson** model, it allows you to add faces from different recognition models to the same person. However, the Identify operation can only match faces obtained with the same recognition model.
4949

5050
**DynamicPersonGroup** is a lightweight data structure that allows you to dynamically reference a **PersonDirectoryPerson**. It doesn't require the Train operation: once the data is updated, it's ready to be used with the Identify API.
5151

@@ -61,15 +61,15 @@ For more details, please refer to the [PersonDirectory how-to guide](./how-to/us
6161
| --- | --- | --- |
6262
| Capacity | A **LargePersonGroup** can hold up to 1 million **PersonGroupPerson** objects. | The collection can store up to 20 millions **PersonDirectoryPerson** identities. |
6363
| PersonURI | `/largepersongroups/{groupId}/persons/{personId}` | `(/v1.0-preview-or-above)/persons/{personId}` |
64-
| Ownership | The **PersonGroupPerson** objects are exclusively owned by the **LargePersonGroup** they belong to. If you want a same identity kept in multiple groups, you will have to [Create Large Person Group Person](/rest/api/face/person-group-operations/create-large-person-group-person) and [Add Large Person Group Person Face](/rest/api/face/person-group-operations/add-large-person-group-person-face) for each group individually, ending up with a set of person IDs in several groups. | The **PersonDirectoryPerson** objects are directly stored inside the **PersonDirectory**, as a flat list. You can use an in-place person ID list to [Identify From Person Directory](/rest/api/face/face-recognition-operations/identify-from-person-directory), or optionally [Create Dynamic Person Group](/rest/api/face/person-directory-operations/create-dynamic-person-group) and hybridly include a person into the group. A created **PersonDirectoryPerson** object can be referenced by multiple **DynamicPersonGroup** without duplication. |
65-
| Model | The recognition model is determined by the **LargePersonGroup**. New faces for all **PersonGroupPerson** objects will become associated with this model when they're added to it. | The **PersonDirectoryPerson** object prepares separated storage per recognition model. You can specify the model when you add new faces, but the Identify API can only match faces obtained with the same recognition model, that is associated with the query faces. |
64+
| Ownership | The **PersonGroupPerson** objects are exclusively owned by the **LargePersonGroup** they belong to. If you want a same identity kept in multiple groups, you'll have to [Create Large Person Group Person](/rest/api/face/person-group-operations/create-large-person-group-person) and [Add Large Person Group Person Face](/rest/api/face/person-group-operations/add-large-person-group-person-face) for each group individually, ending up with a set of person IDs in several groups. | The **PersonDirectoryPerson** objects are directly stored inside the **PersonDirectory**, as a flat list. You can use an in-place person ID list to [Identify From Person Directory](/rest/api/face/face-recognition-operations/identify-from-person-directory), or optionally [Create Dynamic Person Group](/rest/api/face/person-directory-operations/create-dynamic-person-group) and hybridly include a person into the group. A created **PersonDirectoryPerson** object can be referenced by multiple **DynamicPersonGroup** without duplication. |
65+
| Model | The recognition model is determined by the **LargePersonGroup**. New faces for all **PersonGroupPerson** objects become associated with this model when they're added to it. | The **PersonDirectoryPerson** object prepares separated storage per recognition model. You can specify the model when you add new faces, but the Identify API can only match faces obtained with the same recognition model, that is associated with the query faces. |
6666
| Training | You must call the Train API to make any new face/person data reflect in the Identify API results. | There's no need to make Train calls, but API such as [Add Person Face](/rest/api/face/person-directory-operations/add-person-face) becomes a long running operation, which means you should use the response header "Operation-Location" to check if the update completes. |
67-
| Cleanup | [Delete Large Person Group](/rest/api/face/person-group-operations/delete-large-person-group) will also delete the all the **PersonGroupPerson** objects it holds, as well as their face data. | [Delete Dynamic Person Group](/rest/api/face/person-directory-operations/delete-dynamic-person-group) will only unreference the **PersonDirectoryPerson**. To delete actual person and the face data, see [Delete Person](/rest/api/face/person-directory-operations/delete-person). |
67+
| Cleanup | [Delete Large Person Group](/rest/api/face/person-group-operations/delete-large-person-group) will also delete the all the **PersonGroupPerson** objects it holds, along with their face data. | [Delete Dynamic Person Group](/rest/api/face/person-directory-operations/delete-dynamic-person-group) will only unreference the **PersonDirectoryPerson**. To delete actual person and the face data, see [Delete Person](/rest/api/face/person-directory-operations/delete-person). |
6868

6969

7070
## Data structures used with Find Similar
7171

72-
Unlike the Identify API, the Find Similar API is designed to be used in applications where the enrollment of **Person** is hard to set up (for example, face images captured from video analysis, or from a photo album analysis).
72+
Unlike the Identify API, the Find Similar API is used in applications where the enrollment of a **Person** is hard to set up (for example, face images captured from video analysis, or from a photo album analysis).
7373

7474
### FaceList
7575

articles/ai-services/computer-vision/concept-people-detection.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ ms.author: pafarley
1717
Version 4.0 of Image Analysis offers the ability to detect people appearing in images. The bounding box coordinates of each detected person are returned, along with a confidence score.
1818

1919
> [!IMPORTANT]
20-
> We built this model by enhancing our object detection model for person detection scenarios. People detection does not involve distinguishing one face from another face, predicting or classifying facial attributes, or creating a facial template (a unique set of numbers generated from an image that represents the distinctive features of a face).
20+
> We built this model by enhancing our object detection model for person detection scenarios. People detection doesn't involve distinguishing one face from another face, predicting or classifying facial attributes, or creating a facial template (a unique set of numbers generated from an image that represents the distinctive features of a face).
2121
2222
## People detection example
2323

articles/ai-services/computer-vision/how-to/find-similar-faces.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,11 @@ string baseUrl = "https://raw.githubusercontent.com/Azure-Samples/cognitive-serv
4040

4141
The following face detection method is optimized for comparison operations. It doesn't extract detailed face attributes, and it uses an optimized recognition model.
4242

43-
[!code-csharp[](~/cognitive-services-quickstart-code/dotnet/Face/FindSimilar.cs?name=snippet_face_detect_recognize)]
43+
[!Code-csharp[](~/cognitive-services-quickstart-code/dotnet/Face/FindSimilar.cs?name=snippet_face_detect_recognize)]
4444

4545
The following code uses the above method to get face data from a series of images.
4646

47-
[!code-csharp[](~/cognitive-services-quickstart-code/dotnet/Face/FindSimilar.cs?name=snippet_loadfaces)]
47+
[!Code-csharp[](~/cognitive-services-quickstart-code/dotnet/Face/FindSimilar.cs?name=snippet_loadfaces)]
4848

4949

5050
#### [REST API](#tab/rest)
@@ -73,11 +73,11 @@ In this guide, the face detected in the *Family1-Dad1.jpg* image should be retur
7373

7474
The following code calls the Find Similar API on the saved list of faces.
7575

76-
[!code-csharp[](~/cognitive-services-quickstart-code/dotnet/Face/FindSimilar.cs?name=snippet_find_similar)]
76+
[!Code-csharp[](~/cognitive-services-quickstart-code/dotnet/Face/FindSimilar.cs?name=snippet_find_similar)]
7777

7878
The following code prints the match details to the console:
7979

80-
[!code-csharp[](~/cognitive-services-quickstart-code/dotnet/Face/FindSimilar.cs?name=snippet_find_similar_print)]
80+
[!Code-csharp[](~/cognitive-services-quickstart-code/dotnet/Face/FindSimilar.cs?name=snippet_find_similar_print)]
8181

8282

8383
#### [REST API](#tab/rest)

articles/ai-services/computer-vision/quickstarts-sdk/identity-client-library.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: 'Quickstart: Use the Face service'
33
titleSuffix: Azure AI services
4-
description: The Face API offers client libraries that make it easy to detect, find similar, identify, verify and more.
4+
description: The Face API offers client libraries that make it easy to detect, find similar, identify, verify, and more.
55
#services: cognitive-services
66
author: PatrickFarley
77
manager: nitinme

articles/ai-services/custom-vision-service/getting-started-improving-your-classifier.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Improve your model - Custom Vision service
33
titleSuffix: Azure AI services
4-
description: In this article you'll learn how the amount, quality and variety of data can improve the quality of your model in the Custom Vision service.
4+
description: In this article you learn how the amount, quality, and variety of data can improve the quality of your model in the Custom Vision service.
55
#customer intent: As a developer, I want to improve my Custom Vision model so that it performs better with real-world data.
66
#services: cognitive-services
77
author: PatrickFarley
@@ -15,19 +15,19 @@ ms.author: pafarley
1515

1616
# How to improve your Custom Vision model
1717

18-
In this guide, you'll learn how to improve the quality of your Custom Vision model. The quality of your [classifier](./getting-started-build-a-classifier.md) or [object detector](./get-started-build-detector.md) depends on the amount, quality, and variety of labeled data you provide and how balanced the overall dataset is. A good model has a balanced training dataset that is representative of what will be submitted to it. The process of building such a model is iterative; it's common to take a few rounds of training to reach expected results.
18+
In this guide, you learn how to improve the quality of your Custom Vision model. The quality of your [classifier](./getting-started-build-a-classifier.md) or [object detector](./get-started-build-detector.md) depends on the amount, quality, and variety of labeled data you provide and how balanced the overall dataset is. A good model has a balanced training dataset that is representative of what is submitted to it. The process of building such a model is iterative; it's common to take a few rounds of training to reach expected results.
1919

2020
The following is a general pattern to help you train a more accurate model:
2121

2222
1. First-round training
2323
1. Add more images and balance data; retrain
2424
1. Add images with varying background, lighting, object size, camera angle, and style; retrain
25-
1. Use new image(s) to test prediction
25+
1. Use new images to test prediction
2626
1. Modify existing training data according to prediction results
2727

2828
## Prevent overfitting
2929

30-
Sometimes a model will learn to make predictions based on arbitrary characteristics that your images have in common. For example, if you're creating a classifier for apples vs. citrus, and you've used images of apples in hands and of citrus on white plates, the classifier may give undue importance to hands vs. plates, rather than apples vs. citrus.
30+
Sometimes a model learns to make predictions based on arbitrary characteristics that your images have in common. For example, if you're creating a classifier for apples vs. citrus, and you've used images of apples in hands and of citrus on white plates, the classifier may give undue importance to hands vs. plates, rather than apples vs. citrus.
3131

3232
To correct this problem, provide images with different angles, backgrounds, object size, groups, and other variations. The following sections expand upon these concepts.
3333

@@ -37,7 +37,7 @@ The number of training images is the most important factor for your dataset. We
3737

3838
## Ensure data balance
3939

40-
It's also important to consider the relative quantities of your training data. For instance, using 500 images for one label and 50 images for another label makes for an imbalanced training dataset. This will cause the model to be more accurate in predicting one label than another. You're likely to see better results if you maintain at least a 1:2 ratio between the label with the fewest images and the label with the most images. For example, if the label with the most images has 500 images, the label with the least images should have at least 250 images for training.
40+
It's also important to consider the relative quantities of your training data. For instance, using 500 images for one label and 50 images for another label makes for an imbalanced training dataset. This causes the model to be more accurate in predicting one label than another. You're likely to see better results if you maintain at least a 1:2 ratio between the label with the fewest images and the label with the most images. For example, if the label with the most images has 500 images, the label with the least images should have at least 250 images for training.
4141

4242
## Ensure data variety
4343

@@ -76,7 +76,7 @@ Object detectors handle negative samples automatically, because any image areas
7676
> [!NOTE]
7777
> The Custom Vision service supports some automatic negative image handling. For example, if you are building a grape vs. banana classifier and submit an image of a shoe for prediction, the classifier should score that image as close to 0% for both grape and banana.
7878
>
79-
> On the other hand, in cases where the negative images are just a variation of the images used in training, it is likely that the model will classify the negative images as a labeled class due to the great similarities. For example, if you have an orange vs. grapefruit classifier, and you feed in an image of a clementine, it may score the clementine as an orange because many features of the clementine resemble those of oranges. If your negative images are of this nature, we recommend you create one or more additional tags (such as **Other**) and label the negative images with this tag during training to allow the model to better differentiate between these classes.
79+
> On the other hand, in cases where the negative images are just a variation of the images used in training, it is likely that the model will classify the negative images as a labeled class due to the great similarities. For example, if you have an orange vs. grapefruit classifier, and you feed in an image of a clementine, it may score the clementine as an orange because many features of the clementine resemble those of oranges. If your negative images are of this nature, we recommend you create one or more extra tags (such as **Other**) and label the negative images with this tag during training to allow the model to better differentiate between these classes.
8080
8181
## Handle occlusion and truncation (object detectors only)
8282

@@ -95,7 +95,7 @@ When you use or test the model by submitting images to the prediction endpoint,
9595

9696
1. Hover over an image to see the tags that were predicted by the model. Images are sorted so that the ones that can bring the most improvements to the model are listed the top. To use a different sorting method, make a selection in the __Sort__ section.
9797

98-
To add an image to your existing training data, select the image, set the correct tag(s), and select __Save and close__. The image will be removed from __Predictions__ and added to the set of training images. You can view it by selecting the __Training Images__ tab.
98+
To add an image to your existing training data, select the image, set the correct tag(s), and select __Save and close__. The image is removed from __Predictions__ and added to the set of training images. You can view it by selecting the __Training Images__ tab.
9999

100100
![Screenshot of the tagging page.](./media/getting-started-improving-your-classifier/tag.png)
101101

0 commit comments

Comments
 (0)