얼굴 특징점 감지 통합 가이드
이 기능은 얼굴이 프레임을 벗어났거나, 가려졌거나 여러 얼굴이 있는 경우를 감지합니다. 256개의 얼굴 특징점을 인식할 수 있습니다.
256 얼굴 키포인트
iOS API
iOS 통합
Tencent Effect iOS SDK 통합 방법은 Tencent Effect SDK 통합하기를 참고하십시오.
XMagic 리스너 등록
/// @brief SDK 이벤트 리스너
/// @param listener: 이벤트 리스너 콜백, 주로 AI 이벤트, Tips 프롬프트 이벤트, Asset 이벤트로 구분
- (void)registerSDKEventListener:(id<YTSDKEventListener> _Nullable)listener;
YTSDKEventListener
#pragma mark - 콜백 API
/// @brief SDK 이벤트 콜백 API
@protocol YTSDKEventListener <NSObject>
/// @brief YTDataUpdate 콜백
/// @param event NSString*형식의 콜백
- (void)onYTDataEvent:(id _Nonnull)event;
/// @brief AI 이벤트 콜백
/// @param event dict 형식의 콜백
- (void)onAIEvent:(id _Nonnull)event;
/// @brief 팁 이벤트 콜백
/// @param event dict 형식의 콜백
- (void)onTipsEvent:(id _Nonnull)event;
/// @brief 리소스 이벤트 콜백
/// @param event string 형식의 콜백
- (void)onAssetEvent:(id _Nonnull)event;
@end
콜백이 성공적으로 구성된 후 SDK는 각 비디오 프레임에 대한 얼굴 데이터의 콜백을 보냅니다.
- (void)onYTDataEvent:(id _Nonnull)event;
반환된 data는 JSON 형식이며 다음 필드를 포함합니다(256개의 얼굴 키포인트에 대한 자세한 내용은 위 그림 참고).
/// @note 콜백 필드
/**
| 필드 | 유형 | 값 범위 | 설명 |
| :---- | :---- |:---- | :---- |
| trace_id | int | [1,INF) | 얼굴 id, 연속 비디오 스트림에서 얻은 얼굴의 얼굴 id가 동일하면 동일한 사람으로 간주할 수 있습니다 |
| face_256_point | float | [0,screenWidth] 또는 [0,screenHeight] | 얼굴 키포인트의 위치, 256개의 얼굴 키포인트에 대해 총 512개의 값이 있습니다. (0, 0)은 화면의 왼쪽 상단 모서리입니다 |
| face_256_visible | float | [0,1] | 얼굴 256 키 포인트 가시도 |
| out_of_screen | bool | true/false | 얼굴이 프레임 밖에 있는지 여부 |
| left_eye_high_vis_ratio | float | [0,1] | 왼쪽 눈의 가시성이 높은 키포인트의 비율 |
| right_eye_high_vis_ratio | float | [0,1] | 오른쪽 눈의 가시성이 높은 키포인트의 비율 |
| left_eyebrow_high_vis_ratio | float | [0,1] | 왼쪽 눈썹의 가시성이 높은 키포인트의 비율 |
| right_eyebrow_high_vis_ratio | float | [0,1] | 오른쪽 눈썹의 가시성이 높은 키포인트의 비율 |
| mouth_high_vis_ratio | float | [0,1] | 입에 대한 가시성이 높은 키포인트의 비율 |
**/
- (void)onYTDataEvent:(id _Nonnull)event;
Android API
Android 통합
Tencent Effect Android SDK 통합 방법은 Tencent Effect SDK 통합하기를 참고하십시오.
Xmagic 리스너 등록
얼굴 키포인트 및 기타 데이터의 콜백을 구성합니다.
void setYTDataListener(XmagicApi.XmagicYTDataListener ytDataListener)
안면 인식 정보 등 데이터 콜백 설정
public interface XmagicYTDataListener {
void onYTDataUpdate(String data)
}
onYTDataUpdate 는 JSON string 구조를 반환하고 최대 5개의 안면 인식 정보를 반환합니다.
{
"face_info":[{
"trace_id":5,
"face_256_point":[
180.0,
112.2,
...
],
"face_256_visible":[
0.85,
...
],
"out_of_screen":true,
"left_eye_high_vis_ratio:1.0,
"right_eye_high_vis_ratio":1.0,
"left_eyebrow_high_vis_ratio":1.0,
"right_eyebrow_high_vis_ratio":1.0,
"mouth_high_vis_ratio":1.0
},
...
]
}
필드 의미
필드 | 유형 | 값범위 | 설명 |
---|---|---|---|
trace_id | int | [1,INF) | 얼굴 ID입니다. 연속 비디오 스트림에서 얻은 얼굴의 얼굴 ID가 동일하면 동일한 사람에 속합니다. |
face_256_point | float | [0,screenWidth] 또는 [0,screenHeight] | 얼굴 키포인트의 위치입니다. 256개의 얼굴 키포인트에 대해 총 512개의 값이 있습니다. (0, 0)은 화면의 왼쪽 상단 모서리입니다. |
face_256_visible | float | [0,1] | 256개의 얼굴 키포인트의 가시성입니다. |
out_of_screen | bool | true/false | 얼굴이 프레임 밖에 있는지 여부입니다. |
left_eye_high_vis_ratio | float | [0,1] | 왼쪽 눈의 가시성이 높은 키포인트의 비율입니다. |
right_eye_high_vis_ratio | float | [0,1] | 오른쪽 눈의 가시성이 높은 키포인트의 비율입니다. |
left_eyebrow_high_vis_ratio | float | [0,1] | 왼쪽 눈썹의 가시성이 높은 키포인트의 비율입니다. |
right_eyebrow_high_vis_ratio | float | [0,1] | 오른쪽 눈썹의 가시성이 높은 키포인트의 비율입니다. |
mouth_high_vis_ratio | float | [0,1] | 입에 대한 가시성이 높은 키포인트의 비율입니다. |
매개변수
매개변수 | 의미 |
---|---|
XmagicApi.XmagicYTDataListener ytDataListener | 콜백 구현 클래스입니다. |