You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/ai-services/computer-vision/concept-face-recognition-data-structures.md
+7-7Lines changed: 7 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -24,14 +24,14 @@ This article explains the data structures used in the Face service for face reco
24
24
25
25
## Data structures used with Identify
26
26
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.
28
28
29
29
### PersonGroup
30
30
31
31
**PersonGroup** is the smallest container data structure.
32
32
- 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.
33
33
- 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.
35
35
36
36
**PersonGroupPerson** represents a person to be identified. It can hold up to 248 faces.
37
37
@@ -45,7 +45,7 @@ The Face Identify API uses container data structures to the hold face recognitio
45
45
46
46
**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.
47
47
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.
49
49
50
50
**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.
51
51
@@ -61,15 +61,15 @@ For more details, please refer to the [PersonDirectory how-to guide](./how-to/us
61
61
| --- | --- | --- |
62
62
| Capacity | A **LargePersonGroup** can hold up to 1 million **PersonGroupPerson** objects. | The collection can store up to 20 millions **PersonDirectoryPerson** identities. |
| 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. |
66
66
| 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). |
68
68
69
69
70
70
## Data structures used with Find Similar
71
71
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).
Copy file name to clipboardExpand all lines: articles/ai-services/computer-vision/concept-people-detection.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,7 +17,7 @@ ms.author: pafarley
17
17
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.
18
18
19
19
> [!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).
The following face detection method is optimized for comparison operations. It doesn't extract detailed face attributes, and it uses an optimized recognition model.
Copy file name to clipboardExpand all lines: articles/ai-services/custom-vision-service/getting-started-improving-your-classifier.md
+7-7Lines changed: 7 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
---
2
2
title: Improve your model - Custom Vision service
3
3
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.
5
5
#customer intent: As a developer, I want to improve my Custom Vision model so that it performs better with real-world data.
6
6
#services: cognitive-services
7
7
author: PatrickFarley
@@ -15,19 +15,19 @@ ms.author: pafarley
15
15
16
16
# How to improve your Custom Vision model
17
17
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.
19
19
20
20
The following is a general pattern to help you train a more accurate model:
21
21
22
22
1. First-round training
23
23
1. Add more images and balance data; retrain
24
24
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
26
26
1. Modify existing training data according to prediction results
27
27
28
28
## Prevent overfitting
29
29
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.
31
31
32
32
To correct this problem, provide images with different angles, backgrounds, object size, groups, and other variations. The following sections expand upon these concepts.
33
33
@@ -37,7 +37,7 @@ The number of training images is the most important factor for your dataset. We
37
37
38
38
## Ensure data balance
39
39
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.
41
41
42
42
## Ensure data variety
43
43
@@ -76,7 +76,7 @@ Object detectors handle negative samples automatically, because any image areas
76
76
> [!NOTE]
77
77
> 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.
78
78
>
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.
80
80
81
81
## Handle occlusion and truncation (object detectors only)
82
82
@@ -95,7 +95,7 @@ When you use or test the model by submitting images to the prediction endpoint,
95
95
96
96
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.
97
97
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.
99
99
100
100

0 commit comments