얼굴 인식 모델 지정

주의

Face 서비스 액세스는 책임 있는 AI 원칙을 지원하기 위해 자격 및 사용 기준에 따라 제한됩니다. Face 서비스는 Microsoft 관리 고객 및 파트너만 사용할 수 있습니다. 얼굴 인식 접수 양식을 사용하여 액세스를 적용합니다. 자세한 내용은 얼굴 제한 액세스 페이지를 참조하세요.

이 가이드에서는 Azure AI Face 서비스를 사용하여 얼굴 감지, 식별 및 유사성 검색을 위한 얼굴 인식 모델을 지정하는 방법을 보여 줍니다.

Face 서비스는 기계 학습 모델을 사용하여 이미지에서 보이는 사람의 얼굴에 대한 작업을 수행합니다. 사용자 피드백에 따라 모델의 정확도를 지속적으로 향상시키고 연구를 진행하면서 이러한 향상된 기능을 모델 업데이트로 제공합니다. 개발자는 사용하려는 얼굴 인식 모델의 버전을 지정하여 사용 사례에 가장 적합한 모델을 선택할 수 있습니다.

모델 호환성

Azure AI Face 서비스는 4가지 인식 모델을 제공합니다. recognition_01(2017년 게시), recognition_02(2019년 게시), recognition_03(2020년 게시) 모델은 FaceList또는 PersonGroup을 사용하여 만든 고객의 이전 버전과의 호환성을 보장하기 위해 지속적으로 지원됩니다. FaceList 또는 PersonGroup은 생성된 인식 모델을 항상 사용하며 새 얼굴은 추가될 때 이 모델과 연결됩니다. 생성 후에는 변경할 수 없으며 고객은 해당 FaceList 또는 PersonGroup에서 해당 인식 모델을 사용해야 합니다.

나중에 편리한 시간에 인식 모델로 이동할 수 있지만 선택한 인식 모델을 사용하여 새 FaceList 및 PersonGroup을 만들어야 합니다.

recognition_04 모델(2021년에 게시됨)은 현재 사용할 수 있는 가장 정확한 모델입니다. 신규 고객인 경우 이 모델을 사용하는 것이 좋습니다. Recognition_04 유사성 비교 및 사람 일치 비교 모두에 대해 향상된 정확도를 제공합니다. Recognition_04 얼굴 커버 (수술 마스크, N95 마스크, 천 마스크)를 착용 등록 된 사용자에 대한 인식을 향상시킵니다. 이제 최신 detection_03 모델을 사용하여 등록된 사용자가 얼굴 가리개를 착용하고 있는지 여부를 감지하는 안전하고 원활한 사용자 환경을 빌드할 수 있습니다. 그런 다음, 최신 recognition_04 모델을 사용하여 해당 ID를 인식할 수 있습니다. 각 모델은 서로 독립적으로 작동하며, 한 모델에 설정된 신뢰도 임계값을 다른 인식 모델과 비교할 수 없습니다.

모델 충돌을 방지하면서 다른 Face 작업에서 선택한 모델을 지정하는 방법을 알아봅니다. 고급 사용자가 최신 모델로 전환해야 하는지 여부를 결정하려는 경우 여러 모델 평가 섹션으로 건너뜁니다. 현재 데이터 세트를 사용하여 새 모델을 평가하고 결과를 비교할 수 있습니다.

필수 조건

AI 얼굴 감지 및 식별의 개념에 대해 잘 알고 있어야 합니다. 그렇지 않은 경우 먼저 다음 가이드를 참조하세요.

지정된 모델을 사용하여 얼굴 감지

얼굴 감지는 인간의 얼굴의 시각적 랜드마크를 식별하고 경계 상자 위치를 찾습니다. 또한 얼굴의 특징을 추출하여 최대 24시간 동안 임시로 보관하여 식별에 사용할 수 있습니다. 이 모든 정보는 한 얼굴의 표현을 형성합니다.

인식 모델은 얼굴 기능을 추출할 때 사용되므로 검색 작업을 수행할 때 모델 버전을 지정할 수 있습니다.

Face - Detect API를 사용하는 경우 매개 변수를 사용하여 모델 버전을 할당합니다recognitionModel. 사용 가능한 값은 다음과 같습니다.

  • recognition_01
  • recognition_02
  • recognition_03
  • recognition_04

필요에 따라 returnRecognitionModel 매개 변수(기본값 false)를 지정하여 응답에서 recognitionModel을 반환할지 여부를 나타낼 수 있습니다. 따라서 Face - Detect REST API에 대한 요청 URL은 다음과 같습니다.

https://westus.api.cognitive.microsoft.com/face/v1.0/detect[?returnFaceId][&returnFaceLandmarks][&returnFaceAttributes][&recognitionModel][&returnRecognitionModel]&subscription-key=<Subscription key>

클라이언트 라이브러리를 사용하는 경우 버전을 나타내는 문자열을 전달하여 recognitionModel 값을 할당할 수 있습니다. 할당되지 않은 상태로 두면 recognition_01의 기본 모델 버전이 사용됩니다. .NET 클라이언트 라이브러리에 대한 다음 코드 예제를 참조하세요.

string imageUrl = "https://news.microsoft.com/ceo/assets/photos/06_web.jpg";
var faces = await faceClient.Face.DetectWithUrlAsync(url: imageUrl, returnFaceId: true, returnFaceLandmarks: true, recognitionModel: "recognition_01", returnRecognitionModel: true);

참고 항목

이후 단계에서 얼굴 인식 시나리오를 활성화하려면 returnFaceId 매개 변수를 true로 설정해야 합니다.

지정된 모델을 사용하여 얼굴 식별

Face 서비스는 이미지에서 얼굴 데이터를 추출하여 Person 개체와 연결할 수 있으며(예: 얼굴 API 추가 호출을 통해) 여러 Person 개체를 PersonGroup함께 저장할 수 있습니다. 그런 다음, 새 얼굴을 PersonGroup(얼굴 - 식별 통화 사용)과 비교할 수 있으며, 해당 그룹 내의 일치하는 사용자를 식별할 수 있습니다.

PersonGroup에는 모든 개인에 대해 하나의 고유 인식 모델이 있어야 하며 그룹을 만들 때 매개 변수를 사용하여 recognitionModel 이를 지정할 수 있습니다(PersonGroup - Create 또는 LargePersonGroup - Create). 이 매개 변수를 지정하지 않으면 원래 recognition_01 모델이 사용됩니다. 그룹은 항상 생성된 인식 모델을 사용하며, 새 얼굴이 추가되면 이 모델과 연결됩니다. 그룹 생성 후에는 변경할 수 없습니다. PersonGroup이 구성된 모델을 확인하려면 returnRecognitionModel 매개 변수가 true설정된 PersonGroup - Get API를 사용합니다.

.NET 클라이언트 라이브러리에 대한 다음 코드 예제를 참조하세요.

// Create an empty PersonGroup with "recognition_04" model
string personGroupId = "mypersongroupid";
await faceClient.PersonGroup.CreateAsync(personGroupId, "My Person Group Name", recognitionModel: "recognition_04");

이 코드에서는 ID가 mypersongroupidPersonGroup이 생성되고, recognition_04 모델을 사용하여 얼굴 요소를 추출하도록 설정됩니다.

이에 따라 이 PersonGroup과 비교할 얼굴을 감지할 때 사용할 모델을 지정해야 합니다(Face - Detect API를 통해). 사용하는 모델은 항상 PersonGroup의 구성과 일치해야 합니다. 그렇지 않으면 호환되지 않는 모델로 인해 작업이 실패합니다.

Face - Identify API에는 변경 사항이 없습니다. 검색에서 모델 버전만 지정하면 됩니다.

지정된 모델을 사용하여 유사한 얼굴 찾기

유사성 검색에 대한 인식 모델을 지정할 수도 있습니다. FaceList - recognitionModel API 만들기 또는 LargeFaceList - Create를 사용하여 FaceList를 만들모델 버전을 할당할 수 있습니다. 이 매개 변수를 지정하지 않으면 recognition_01 모델이 기본적으로 사용됩니다. FaceList는 항상 생성 시 사용된 인식 모델을 사용하고, 새 얼굴은 목록에 추가될 때 이 모델에 연결됩니다. 생성 후에는 이를 변경할 수 없습니다. FaceList가 구성된 모델을 확인하려면 returnRecognitionModel 매개 변수가 true설정된 FaceList - Get API를 사용합니다.

.NET 클라이언트 라이브러리에 대한 다음 코드 예제를 참조하세요.

await faceClient.FaceList.CreateAsync(faceListId, "My face collection", recognitionModel: "recognition_04");

이 코드는 기능 추출을 위해 recognition_04 모델을 사용하여 FaceList라는 My face collectionFaceList를 만듭니다. 이 FaceList에서 새로 검색된 얼굴과 유사한 얼굴을 검색하면 해당 얼굴이 recognition_04 모델을 사용하여 검색되어야 합니다(Face - Detect). 이전 섹션과 마찬가지로 모델은 일관적이어야 합니다.

Face - Find Similar API에는 변경 사항이 없습니다. 검색에서 모델 버전만 지정합니다.

지정된 모델을 사용하여 얼굴 확인

Face - Verify API는 두 얼굴이 동일한 사람인지 여부를 확인합니다. Verify API에서 인식 모델과 관련된 변경 내용은 없지만 동일한 모델을 사용하여 검색된 얼굴만 비교할 수 있습니다.

다른 모델 평가

사용자 고유의 데이터에 대한 여러 인식 모델의 성능을 비교하려는 경우 다음을 수행해야 합니다.

  1. 각각 recognition_01, recognition_02, recognition_03recognition_04 사용하여 4개의 PersonGroup을 만듭니다.
  2. 이미지 데이터를 사용하여 얼굴을 감지하고 이러한 4개의 PersonGroup 내에 있는 Person에 등록합니다.
  3. PersonGroup- 학습 API를 사용하여 PersonGroup을 학습합니다.
  4. Face로 테스트 - 4개의 PersonGroup에서 모두 식별하고 결과를 비교합니다.

일반적으로 신뢰도 임계값(모델이 얼굴을 식별해야 하는 정도를 결정하는 값 0과 1 사이의 값)을 지정하는 경우 다른 모델에 대해 다른 임계값을 사용해야 할 수 있습니다. 한 모델의 임계값은 다른 모델과 공유되는 것이 아니며, 반드시 동일한 결과를 생성하는 것은 아닙니다.

다음 단계

이 문서에서는 다른 Face 서비스 API와 함께 사용할 인식 모델을 지정하는 방법을 알아보았습니다. 다음으로, 빠른 시작에 따라 얼굴 감지를 시작합니다.