얼굴 인식 데이터 구조
이 문서에서는 Face 서비스에서 얼굴 인식 작업에 사용되는 데이터 구조를 설명합니다. 이러한 데이터 구조는 얼굴과 사람에 대한 데이터를 보유합니다.
주의
Face 서비스 액세스는 책임 있는 AI 원칙을 지원하기 위해 자격 및 사용 기준에 따라 제한됩니다. Face 서비스는 Microsoft 관리 고객 및 파트너만 사용할 수 있습니다. 얼굴 인식 접수 양식을 사용하여 액세스를 적용합니다. 자세한 내용은 얼굴 제한 액세스 페이지를 참조하세요.
식별과 함께 사용되는 데이터 구조
Face Identify API는 컨테이너 데이터 구조를 사용하여 얼굴 인식 데이터를 Person 개체 형식으로 보유합니다. 이 용도로는 세 가지 유형의 컨테이너가 있으며, 가장 오래된 컨테이너에서 최신 컨테이너로 나열됩니다. 항상 최신 컨테이너를 사용하는 것이 좋습니다.
PersonGroup
PersonGroup은 가장 작은 컨테이너 데이터 구조입니다.
- PersonGroup을 만들 때 인식 모델을 지정해야 합니다. 해당 PersonGroup에 얼굴이 추가되면 해당 모델을 사용하여 처리합니다. 이 모델은 API 검색의 Face ID와 모델 버전을 일치시켜야 합니다.
- 새 얼굴 데이터가 Identify API 결과에 반영되도록 하려면 학습 API를 호출해야 합니다. 여기에는 얼굴 추가/제거 및 사람 추가/제거가 포함됩니다.
- 무료 계층 구독의 경우 최대 1,000명을 보유할 수 있습니다. S0 유료 구독의 경우 최대 10,000명의 사용자를 포함할 수 있습니다.
PersonGroupPerson은 식별할 사람을 나타냅니다. 최대 248개의 얼굴을 보유할 수 있습니다.
대규모 사람 그룹
LargePersonGroup은 S0 계층 구독의 경우 최대 1백만 개의 엔터티를 지원하기 위해 도입된 후기의 데이터 구조입니다. 대규모 데이터를 지원하도록 최적화되어 있습니다. 이 데이터 구조는 대부분의 PersonGroup 기능을 공유하며, 생성 시 인식 모델을 지정해야 하고 학습 API는 사용하기 전에 호출해야 합니다.
Person 디렉터리
PersonDirectory는 이러한 종류의 최신 데이터 구조입니다. 더 큰 규모와 더 높은 정확도를 지원합니다. 각 Azure Face 리소스에는 하나의 기본 PersonDirectory 데이터 구조가 있습니다. PersonDirectoryPerson 개체의 플랫 목록이며 최대 2천만 개의 개체를 보유할 수 있습니다.
PersonDirectoryPerson은 식별할 사람을 나타냅니다. 이전 PersonGroupPerson 모델을 기반으로 다른 인식 모델의 얼굴을 동일한 사람에게 추가할 수 있습니다. 그러나 식별 작업은 동일한 인식 모델을 사용하여 가져온 얼굴만 일치시킬 수 있습니다.
DynamicPersonGroup 은 PersonDirectoryPerson을 동적으로 참조 할 수 있는 간단한 데이터 구조입니다. 학습 작업이 필요하지 않습니다. 데이터가 업데이트되면 Identify API와 함께 사용할 준비가 된 것입니다.
식별 작업에 현재 위치 사용자 ID 목록을 사용할 수도 있습니다. 이렇게 하면 식별할 그룹의 범위를 좁혀 지정할 수 있습니다. 이 작업을 수동으로 수행하여 대규모 그룹의 식별 성능을 향상시킬 수 있습니다.
위의 데이터 구조를 함께 사용할 수 있습니다. 예시:
- 액세스 제어 시스템에서 PersonDirectory는 회사의 모든 직원을 나타낼 수 있지만, 더 작은 DynamicPersonGroup은 건물의 한 층에 액세스할 수 있는 직원만 나타낼 수 있습니다.
- 항공편 온보딩 시스템에서 PersonDirectory는 항공사의 모든 고객을 나타낼 수 있지만 DynamicPersonGroup은 특정 항공편의 승객만 나타냅니다. 현재 위치 사람 ID 목록은 막바지에 변경한 승객을 나타낼 수 있습니다.
자세한 내용은 PersonDirectory 방법 가이드를 참조하세요. LargePersonGroup과 PersonDirectory 간의 빠른 비교:
세부 정보 | LargePersonGroup | PersonDirectory |
---|---|---|
용량 | LargePersonGroup은 최대 1백만 개의 PersonGroupPerson 개체를 보유할 수 있습니다. | 컬렉션은 최대 2,000만 개의 PersonDirectoryPerson ID를 저장할 수 있습니다. |
PersonURI | /largepersongroups/{groupId}/persons/{personId} |
(/v1.0-preview-or-above)/persons/{personId} |
소유권 | PersonGroupPerson 개체는 속한 LargePersonGroup에서 독점적으로 소유합니다. 동일한 ID를 여러 그룹에 유지하려면 큰 사람 그룹 사용자를 만들고 각 그룹에 대해 큰 사람 그룹 사람 얼굴을 개별적으로 추가해야 하며, 결국 여러 그룹의 개인 ID 집합으로 끝나야 합니다. | PersonDirectoryPerson 개체는 플랫 목록으로 PersonDirectory 내에 직접 저장됩니다. 현재 위치 사용자 ID 목록을 사용하여 개인 디렉터리에서 식별하거나 선택적으로 동적 인물 그룹을 만들고 그룹에 사람을 하이브리드로 포함할 수 있습니다. 만든 PersonDirectoryPerson 개체는 중복 없이 여러 DynamicPersonGroup 에서 참조할 수 있습니다. |
모델 | 인식 모델은 LargePersonGroup에 의해 결정됩니다. 모든 PersonGroupPerson 개체에 대한 새 얼굴은 모델에 추가될 때 이 모델과 연결됩니다. | PersonDirectoryPerson 개체는 인식 모델별로 구분된 스토리지를 준비합니다. 새 얼굴을 추가할 때 모델을 지정할 수 있지만 식별 API는 쿼리 얼굴과 연결된 동일한 인식 모델로 얻은 얼굴만 일치시킬 수 있습니다. |
학습 | 새 얼굴/사람 데이터가 식별 API 결과에 반영되도록 하려면 학습 API를 호출해야 합니다. | 학습 호출을 수행할 필요는 없지만 사람 얼굴 추가와 같은 API는 장기 실행 작업이 됩니다. 즉, 응답 헤더 "Operation-Location"을 사용하여 업데이트가 완료되었는지 확인해야 합니다. |
정리 | 큰 사람 그룹을 삭제하면 보유하는 모든 PersonGroupPerson 개체와 얼굴 데이터도 삭제됩니다. | 동적 인물 그룹을 삭제하면 PersonDirectoryPerson만 유추되지 않습니다. 실제 사용자와 얼굴 데이터를 삭제하려면 사람 삭제를 참조 하세요. |
유사 얼굴 찾기와 함께 사용되는 데이터 구조
식별 API와 달리, 유사 찾기 API는 사용자의 등록을 설정하기 어려운 애플리케이션에서 사용됩니다(예: 비디오 분석 또는 사진 앨범 분석에서 캡처한 얼굴 이미지).
FaceList
FaceList 는 고정된 얼굴의 플랫 목록을 나타냅니다. 여기에는 1,000개의 얼굴을 보유 할 수 있습니다.
LargeFaceList
LargeFaceList는 최대 1,000,000개의 얼굴을 보유할 수 있는 후기 버전입니다.
다음 단계
이제 얼굴 데이터 구조에 익숙해졌으므로 식별 작업에서 이를 사용하는 스크립트를 작성합니다.