차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
ko:face_api [2021/11/14 18:22] sypark1 |
ko:face_api [2024/02/27 14:48] |
||
---|---|---|---|
줄 1: | 줄 1: | ||
- | ====== Face API ====== | ||
- | 사용자의 얼굴을 인식하여 템플릿 데이터를 추출하고 매치하는 함수를 제공하는 API입니다. \\ | ||
- | * [[BS2_ScanFace]]: ''FaceStation2'' ''FaceLite'' 장치에서 얼굴을 스캔하고 템플릿 데이터와 이미지 데이터를 추출합니다. | ||
- | * [[BS2_GetAuthGroup]]: 주어진 인증 그룹을 가져옵니다. | ||
- | * [[BS2_GetAllAuthGroup]]: 모든 인증 그룹을 가져옵니다. * | ||
- | * [[BS2_SetAuthGroup]]: 인증 그룹을 설정합니다. | ||
- | * [[BS2_RemoveAuthGroup]]: 주어진 인증 그룹을 제거합니다. | ||
- | * [[BS2_RemoveAllAuthGroup]]: 모든 인증 그룹을 제거합니다. | ||
- | |||
- | ====== FaceEx API ====== | ||
- | * [[BS2_ScanFaceEx]]: ''FaceStation F2'' 장치에서 얼굴을 스캔하고 이미지 및 템플릿을 추출합니다. [+ 2.7.1] | ||
- | * [[BS2_ExtraceTemplateFaceEx]]: ''FaceStation F2'' 얼굴이 포함된 이미지를 가지고 template을 추출합니다. [+ 2.7.1] | ||
- | * [[BS2_GetNormalizedImageFaceEx]]: ''FaceStation F2'' WARP 되어지지 않은(가공되어지지 않은) 얼굴 이미지로, WARP 이미지를 만듭니다. [+ 2.8] | ||
- | |||
- | ===== 구조체 ===== | ||
- | ==== BS2Face ==== | ||
- | <code cpp> | ||
- | typedef struct { | ||
- | uint8_t faceIndex; | ||
- | uint8_t numOfTemplate; | ||
- | uint8_t flag; | ||
- | uint8_t reserved; | ||
- | |||
- | uint16_t imageLen; | ||
- | uint8_t reserved2[2]; | ||
- | |||
- | uint8_t imageData[BS2_FACE_IMAGE_SIZE]; | ||
- | uint8_t templateData[BS2_TEMPLATE_PER_FACE][BS2_FACE_TEMPLATE_LENGTH]; | ||
- | } BS2Face; | ||
- | </code> | ||
- | 1. //faceIndex// \\ | ||
- | 얼굴 인덱스입니다 \\ \\ | ||
- | 2. //numOfTemplate// \\ | ||
- | 얼굴 템플릿 개수입니다. \\ \\ | ||
- | 3. //flag// \\ | ||
- | FaceStation2 V1.4.0, FaceLite V1.2.0 기준으로 장치내부에서 사용되는 값입니다. \\ | ||
- | 장치에서 수신한 flag 값을 사용하면 되지만, 알 수 없다면 0으로 지정하면 됩니다. \\ \\ | ||
- | 4. //reserved// \\ | ||
- | 예약된 공간입니다. \\ \\ | ||
- | 5. //imageLen// \\ | ||
- | 얼굴 이미지 데이터 크기입니다. \\ \\ | ||
- | 6. //reserved2// \\ | ||
- | 예약된 공간입니다. \\ \\ | ||
- | 4. //imageData// \\ | ||
- | 얼굴 이미지 데이터입니다. \\ \\ | ||
- | 5. //data// \\ | ||
- | 얼굴 템플릿 데이터입니다. \\ | ||
- | |||
- | ==== BS2AuthGroup==== | ||
- | <code cpp> | ||
- | typedef struct { | ||
- | BS2_AUTH_GROUP_ID id; | ||
- | char name[BS2_MAX_AUTH_GROUP_NAME_LEN]; | ||
- | uint8_t reserved[32]; | ||
- | } BS2AuthGroup; | ||
- | |||
- | </code> | ||
- | 1. //id// \\ | ||
- | 인증 그룹 식별자입니다. \\ \\ | ||
- | 2. //name// \\ | ||
- | BioStar 애플리케이션에서 보여줄 인증 그룹 이름입니다 \\ \\ | ||
- | 3. //reserved// \\ | ||
- | 예약된 공간입니다. \\ \\ | ||
- | |||
- | |||
- | ==== BS2TemplateEx ==== | ||
- | <code cpp> | ||
- | typedef struct { | ||
- | uint8_t data[552]; | ||
- | uint8_t isIR; | ||
- | uint8_t reserved[3]; | ||
- | } BS2TemplateEx; | ||
- | </code> | ||
- | ''FaceStation F2'' \\ \\ | ||
- | 1. //data// \\ | ||
- | IR 또는 visual 이미지 탬플릿 데이터 입니다. \\ \\ | ||
- | 2. //isIR// \\ | ||
- | IR 이미지라면 true, visual 이미지라면 false입니다. \\ \\ | ||
- | 3. //reserved// \\ | ||
- | 예약된 공간입니다. \\ \\ | ||
- | |||
- | |||
- | ==== BS2FaceEx ==== | ||
- | <code cpp> | ||
- | typedef struct { | ||
- | uint8_t faceIndex; | ||
- | uint8_t numOfTemplate; | ||
- | uint8_t flag; | ||
- | uint8_t reserved; | ||
- | |||
- | uint32_t imageLen; | ||
- | union { | ||
- | struct { | ||
- | uint16_t irImageLen; | ||
- | uint8_t unused[6]; ///< 6 bytes (packing) | ||
- | uint8_t imageData[BS2_MAX_WARPED_IMAGE_LENGTH]; ///< 40 * 1024 bytes | ||
- | uint8_t irImageData[BS2_MAX_WARPED_IR_IMAGE_LENGTH]; ///< 30 * 1024 bytes | ||
- | BS2TemplateEx templateEx[BS2_MAX_TEMPLATES_PER_FACE_EX]; ///< 20 * 556 bytes | ||
- | }; | ||
- | |||
- | uint8_t *rawImageData; | ||
- | }; | ||
- | } BS2FaceEx; | ||
- | </code> | ||
- | ''FaceStation F2'' \\ \\ | ||
- | 1. //faceIndex// \\ | ||
- | 얼굴 인덱스입니다 \\ \\ | ||
- | 2. //numOfTemplate// \\ | ||
- | Visual, IR을 포함한 얼굴 템플릿 개수입니다. \\ \\ | ||
- | 3. //flag// \\ | ||
- | 이미지가 WARP된 이미지인지 여부를 나타냅니다. \\ | ||
- | 여기서 WARP란, 이미지에는 다양한 신체부분이 담겨 있을 수 있는데, 이중 얼굴부분을 뽑아내는, 일종의 일반화라고 보시면 됩니다. \\ | ||
- | flag가 1로 설정되면, 장치는 union 내의 struct로 정의되어 있는 5개의 정보를 참조합니다. \\ | ||
- | flag가 0으로 설정되면, 장치는 union 내의 rawImageData를 참조합니다. \\ | ||
- | 만약에 사용자가 WARP되지 않은 임의의 이미지를 가지고 얼굴을 등록하고자 하는 경우, \\ | ||
- | flag는 BS2_FACE_EX_FLAG_NONE(0)으로, rawImageData의 주소공간에 이미지 데이터로 설정하고, 이미지 데이터의 크기를 imageLen으로 지정해주시면 됩니다. \\ | ||
- | 이렇게 되면 장치는 rawImageData를 가지고 자동으로 WARP 과정을 거쳐서 struct 내의 정보들을 채워주게 될 것입니다. \\ | ||
- | rawImageData와 struct가 union으로 묶여있음을 주목해 주세요. \\ | ||
- | <WRAP group 50%> | ||
- | ^값 ^설명 ^ | ||
- | |BS2_FACE_EX_FLAG_NONE |0x00 | | ||
- | |BS2_FACE_EX_FLAG_WARPED |0x01 | | ||
- | |BS2_FACE_EX_FLAG_ALL |0xFF | | ||
- | </WRAP> | ||
- | 4. //reserved// \\ | ||
- | 예약된 공간입니다. \\ \\ | ||
- | 5. //imageLen// \\ | ||
- | 얼굴 이미지 데이터 크기입니다. \\ \\ | ||
- | 6. //irImageLen// \\ | ||
- | IR 이미지 데이터 크기입니다. \\ \\ | ||
- | 7. //unused// \\ | ||
- | 사용하지 않는 공간입니다. (packing용) \\ \\ | ||
- | 8. //imageData// \\ | ||
- | WARP 되어진 얼굴 이미지 데이터입니다. rawImageData로부터 자동으로 만들어집니다. \\ \\ | ||
- | 9. //irImageData// \\ | ||
- | IR 이미지 데이터입니다. WARP 단계에서는 IR 이미지는 존재하지 않을 수 있습니다. \\ | ||
- | 인증을 시도하게되면 자동으로 생성됩니다. \\ | ||
- | 10. //templateEx// \\ | ||
- | Visual 또는 IR 이미지에 대한 탬플릿 데이터입니다. \\ \\ | ||
- | 11. //rawImageData// \\ | ||
- | WARP되지 않은 이미지 정보입니다. ''(JPG 이미지만 지원, 최소크기 250 * 250)'' \\ \\ |