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/Tutorials/build-enrollment-app.md
+13-10Lines changed: 13 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,28 +10,31 @@ ms.subservice: azure-ai-face
10
10
ms.custom:
11
11
- ignite-2023
12
12
ms.topic: tutorial
13
-
ms.date: 11/17/2020
13
+
ms.date: 02/14/2024
14
14
ms.author: pafarley
15
15
---
16
16
17
17
# Build a React Native app to add users to a Face service
18
18
19
-
This guide will show you how to get started with the sample Face enrollment application. The app demonstrates best practices for obtaining meaningful consent to add users into a face recognition service and acquire high-accuracy face data. An integrated system could use an app like this to provide touchless access control, identification, attendance tracking, or personalization kiosk, based on their face data.
19
+
This guide will show you how to get started with a sample Face enrollment application. The app demonstrates best practices for obtaining meaningful consent to add users into a face recognition service and acquire high-quality face data. An integrated system could use an app like this to provide touchless access control, identification, attendance tracking, or personalization kiosk, based on their face data.
20
20
21
-
When launched, the application shows users a detailed consent screen. If the user gives consent, the app prompts for a username and password and then captures a high-quality face image using the device's camera.
21
+
When users launch the app, it shows a detailed consent screen. If the user gives consent, the app prompts them for a username and password and then captures a high-quality face image using the device's camera.
22
22
23
-
The sample app is written using JavaScript and the React Native framework. It can currently be deployed on Android and iOS devices; more deployment options are coming in the future.
23
+
The sample app is written using JavaScript and the React Native framework. It can be deployed on Android and iOS devices.
24
24
25
25
## Prerequisites
26
26
27
27
* An Azure subscription – [Create one for free](https://azure.microsoft.com/free/cognitive-services/).
28
28
* Once you have your Azure subscription, [create a Face resource](https://portal.azure.com/#create/Microsoft.CognitiveServicesFace) in the Azure portal to get your key and endpoint. After it deploys, select **Go to resource**.
29
29
* You'll need the key and endpoint from the resource you created to connect your application to Face API.
30
30
31
-
### Important Security Considerations
32
-
* For local development and initial limited testing, it is acceptable (although not best practice) to use environment variables to hold the API key and endpoint. For pilot and final deployments, the API key should be stored securely - which likely involves using an intermediate service to validate a user token generated during login.
33
-
* Never store the API key or endpoint in code or commit them to a version control system (e.g. Git). If that happens by mistake, you should immediately generate a new API key/endpoint and revoke the previous ones.
34
-
* As a best practice, consider having separate API keys for development and production.
31
+
32
+
> [!IMPORTANT]
33
+
> **Security considerations**
34
+
>
35
+
> * For local development and initial limited testing, it is acceptable (although not best practice) to use environment variables to hold the API key and endpoint. For pilot and final deployments, the API key should be stored securely - which likely involves using an intermediate service to validate a user token generated during login.
36
+
> * Never store the API key or endpoint in code or commit them to a version control system (e.g. Git). If that happens by mistake, you should immediately generate a new API key/endpoint and revoke the previous ones.
37
+
> * As a best practice, consider having separate API keys for development and production.
35
38
36
39
## Set up the development environment
37
40
@@ -63,7 +66,7 @@ The sample app is written using JavaScript and the React Native framework. It ca
63
66
64
67
## Customize the app for your business
65
68
66
-
Now that you have set up the sample app, you can tailor it to your own needs.
69
+
Now that you've set up the sample app, you can tailor it to your own needs.
67
70
68
71
For example, you may want to add situation-specific information on your consent page:
69
72
@@ -76,7 +79,7 @@ For example, you may want to add situation-specific information on your consent
76
79
* Face size (faces that are distant from the camera)
77
80
* Face orientation (faces turned or tilted away from camera)
78
81
* Poor lighting conditions (either low light or backlighting) where the image may be poorly exposed or have too much noise
79
-
* Occlusion (partially hidden or obstructed faces) including accessories like hats or thick-rimmed glasses)
82
+
* Occlusion (partially hidden or obstructed faces), including accessories like hats or thick-rimmed glasses
80
83
* Blur (such as by rapid face movement when the photograph was taken).
81
84
82
85
The service provides image quality checks to help you make the choice of whether the image is of sufficient quality based on the above factors to add the customer or attempt face recognition. This app demonstrates how to access frames from the device's camera, detect quality and show user interface messages to the user to help them capture a higher quality image, select the highest-quality frames, and add the detected face into the Face API service.
@@ -411,38 +411,38 @@ Next, you'll add the code that actually uses the Azure AI Vision service to crea
411
411
1. Open the *HomeController.cs* file in the project's **Controllers** folder and add the following `using` statements at the top of the file:
412
412
413
413
```csharp
414
-
usingAzure.AI.Vision.Common;
414
+
usingAzure;
415
415
usingAzure.AI.Vision.ImageAnalysis;
416
+
usingSystem;
416
417
```
417
418
418
419
1. Then, gotothe**Upload**method; thismethodconvertsanduploadsimagestoblobstorage. Addthefollowingcodeimmediatelyaftertheblockthatbeginswith `// Generate a thumbnail` (or at the end of your image-blob-creation process). This code takes the blob containing the image (`photo`), and uses Azure AI Vision to generate a description for that image. The Azure AI Vision API also generates a list of keywords that apply to the image. The generated description and keywords are stored in the blob's metadata so that they can be retrieved later on.
Copy file name to clipboardExpand all lines: articles/ai-services/computer-vision/concept-face-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
@@ -70,7 +70,7 @@ Attributes are a set of features that can optionally be detected by the [Face -
70
70
>[!NOTE]
71
71
> The availability of each attribute depends on the detection model specified. QualityForRecognition attribute also depends on the recognition model, as it is currently only available when using a combination of detection model detection_01 or detection_03, and recognition model recognition_03 or recognition_04.
72
72
73
-
## Input data
73
+
## Input requirements
74
74
75
75
Use the following tips to make sure that your input images give the most accurate detection results:
Copy file name to clipboardExpand all lines: articles/ai-services/computer-vision/concept-face-recognition.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,13 +11,13 @@ ms.subservice: azure-ai-face
11
11
ms.custom:
12
12
- ignite-2023
13
13
ms.topic: conceptual
14
-
ms.date: 12/27/2022
14
+
ms.date: 02/14/2024
15
15
ms.author: pafarley
16
16
---
17
17
18
18
# Face recognition
19
19
20
-
This article explains the concept of Face recognition, its related operations, and the underlying data structures. Broadly, face recognition is the act of verifying or identifying individuals by their faces. Face recognition is important in implementing the identification scenario, which enterprises and apps can use to verify that a (remote) user is who they claim to be.
20
+
This article explains the concept of Face recognition, its related operations, and the underlying data structures. Broadly, face recognition is the process of verifying or identifying individuals by their faces. Face recognition is important in implementing the identification scenario, which enterprises and apps can use to verify that a (remote) user is who they claim to be.
21
21
22
22
You can try out the capabilities of face recognition quickly and easily using Vision Studio.
23
23
> [!div class="nextstepaction"]
@@ -48,7 +48,7 @@ The recognition operations use mainly the following data structures. These objec
48
48
49
49
See the [Face recognition data structures](./concept-face-recognition-data-structures.md) guide.
50
50
51
-
## Input data
51
+
## Input requirements
52
52
53
53
Use the following tips to ensure that your input images give the most accurate recognition results:
@@ -35,13 +35,13 @@ Try out the capabilities of Product Recognition quickly and easily in your brows
35
35
36
36
## Product Recognition features
37
37
38
-
### Shelf Image Composition
38
+
### Shelf image composition
39
39
40
40
The [stitching and rectification APIs](./how-to/shelf-modify-images.md) let you modify images to improve the accuracy of the Product Understanding results. You can use these APIs to:
41
41
* Stitch together multiple images of a shelf to create a single image.
42
42
* Rectify an image to remove perspective distortion.
43
43
44
-
### Shelf Product Recognition (pretrained model)
44
+
### Shelf product recognition (pretrained model)
45
45
46
46
The [Product Understanding API](./how-to/shelf-analyze.md) lets you analyze a shelf image using the out-of-box pretrained model. This operation detects products and gaps in the shelf image and returns the bounding box coordinates of each product and gap, along with a confidence score for each.
47
47
@@ -90,7 +90,7 @@ The following JSON response illustrates what the Product Understanding API retur
The Product Understanding API can also be used with a [custom trained model](./how-to/shelf-model-customization.md) to detect your specific products. This operation returns the bounding box coordinates of each product and gap, along with the label of each product.
96
96
@@ -139,7 +139,7 @@ The following JSON response illustrates what the Product Understanding API retur
139
139
}
140
140
```
141
141
142
-
### Shelf Planogram Compliance (preview)
142
+
### Shelf planogram compliance
143
143
144
144
The [Planogram matching API](./how-to/shelf-planogram.md) lets you compare the results of the Product Understanding API to a planogram document. This operation matches each detected product and gap to its corresponding position in the planogram document.
145
145
@@ -183,3 +183,4 @@ It returns a JSON response that accounts for each position in the planogram docu
183
183
Get started with Product Recognition by trying out the stitching and rectification APIs. Then do basic analysis with the Product Understanding API.
184
184
*[Prepare images for Product Recognition](./how-to/shelf-modify-images.md)
185
185
*[Analyze a shelf image](./how-to/shelf-analyze.md)
Copy file name to clipboardExpand all lines: articles/ai-services/computer-vision/enrollment-overview.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,13 +8,13 @@ manager: nitinme
8
8
ms.service: azure-ai-vision
9
9
ms.subservice: azure-ai-face
10
10
ms.topic: best-practice
11
-
ms.date: 09/27/2021
11
+
ms.date: 02/14/2024
12
12
ms.author: pafarley
13
13
---
14
14
15
15
# Best practices for adding users to a Face service
16
16
17
-
In order to use the Azure AI Face API for face verification or identification, you need to enroll faces into a **LargePersonGroup** or similar data structure. This deep-dive demonstrates best practices for gathering meaningful consent from users and example logic to create high-quality enrollments that will optimize recognition accuracy.
17
+
In order to use the Azure AI Face API for face verification or identification, you need to enroll faces into a **LargePersonGroup** or similar [data structure](/azure/ai-services/computer-vision/concept-face-recognition-data-structures). This deep-dive demonstrates best practices for gathering meaningful consent from users and example logic to create high-quality enrollments that will optimize recognition accuracy.
18
18
19
19
## Meaningful consent
20
20
@@ -29,7 +29,7 @@ Based on Microsoft user research, Microsoft's Responsible AI principles, and [ex
29
29
30
30
This section offers guidance for developing an enrollment application for facial recognition. This guidance has been developed based on Microsoft user research in the context of enrolling individuals in facial recognition for building entry. Therefore, these recommendations might not apply to all facial recognition solutions. Responsible use for Face API depends strongly on the specific context in which it's integrated, so the prioritization and application of these recommendations should be adapted to your scenario.
31
31
32
-
> [!NOTE]
32
+
> [!IMPORTANT]
33
33
> It is your responsibility to align your enrollment application with applicable legal requirements in your jurisdiction and accurately reflect all of your data collection and processing practices.
34
34
35
35
## Application development
@@ -39,7 +39,7 @@ Before you design an enrollment flow, think about how the application you're bui
39
39
|Category | Recommendations |
40
40
|---|---|
41
41
|Hardware | Consider the camera quality of the enrollment device. |
42
-
|Recommended enrollment features | Include a log-on step with multi-factor authentication. </br></br>Link user information like an alias or identification number with their face template ID from the Face API (known as person ID). This mapping is necessary to retrieve and manage a user's enrollment. Note: person ID should be treated as a secret in the application.</br></br>Set up an automated process to delete all enrollment data, including the face templates and enrollment photos of people who are no longer users of facial recognition technology, such as former employees. </br></br>Avoid auto-enrollment, as it does not give the user the awareness, understanding, freedom of choice, or control that is recommended for obtaining consent. </br></br>Ask users for permission to save the images used for enrollment. This is useful when there is a model update since new enrollment photos will be required to re-enroll in the new model about every 10 months. If the original images aren't saved, users will need to go through the enrollment process from the beginning.</br></br>Allow users to opt out of storing photos in the system. To make the choice clearer, you can add a second consent request screen for saving the enrollment photos. </br></br>If photos are saved, create an automated process to re-enroll all users when there is a model update. Users who saved their enrollment photos will not have to enroll themselves again. </br></br>Create an app feature that allows designated administrators to override certain quality filters if a user has trouble enrolling. |
42
+
|Recommended enrollment features | Include a log-on step with multifactor authentication. </br></br>Link user information like an alias or identification number with their face template ID from the Face API (known as person ID). This mapping is necessary to retrieve and manage a user's enrollment. Note: person ID should be treated as a secret in the application.</br></br>Set up an automated process to delete all enrollment data, including the face templates and enrollment photos of people who are no longer users of facial recognition technology, such as former employees. </br></br>Avoid auto-enrollment, as it does not give the user the awareness, understanding, freedom of choice, or control that is recommended for obtaining consent. </br></br>Ask users for permission to save the images used for enrollment. This is useful when there is a model update since new enrollment photos will be required to re-enroll in the new model about every 10 months. If the original images aren't saved, users will need to go through the enrollment process from the beginning.</br></br>Allow users to opt out of storing photos in the system. To make the choice clearer, you can add a second consent request screen for saving the enrollment photos. </br></br>If photos are saved, create an automated process to re-enroll all users when there is a model update. Users who saved their enrollment photos will not have to enroll themselves again. </br></br>Create an app feature that allows designated administrators to override certain quality filters if a user has trouble enrolling. |
43
43
|Security | Azure AI services follow [best practices](../cognitive-services-virtual-networks.md?tabs=portal) for encrypting user data at rest and in transit. The following are other practices that can help uphold the security promises you make to users during the enrollment experience. </br></br>Take security measures to ensure that no one has access to the person ID at any point during enrollment. Note: PersonID should be treated as a secret in the enrollment system. </br></br>Use [role-based access control](../../role-based-access-control/overview.md) with Azure AI services. </br></br>Use token-based authentication and/or shared access signatures (SAS) over keys and secrets to access resources like databases. By using request or SAS tokens, you can grant limited access to data without compromising your account keys, and you can specify an expiry time on the token. </br></br>Never store any secrets, keys, or passwords in your app. |
44
44
|User privacy |Provide a range of enrollment options to address different levels of privacy concerns. Do not mandate that people use their personal devices to enroll into a facial recognition system. </br></br>Allow users to re-enroll, revoke consent, and delete data from the enrollment application at any time and for any reason. |
45
45
|Accessibility |Follow accessibility standards (for example, [ADA](https://www.ada.gov/regs2010/2010ADAStandards/2010ADAstandards.htm) or [W3C](https://www.w3.org/TR/WCAG21/)) to ensure the application is usable by people with mobility or visual impairments. |
0 commit comments