顔検出(顔の枠外へのはみ出し、複数の顔、顔部分の遮蔽の認識)では、顔の256個の重要特徴点の位置を認識し出力します。
iOSのSDKの統合ガイドについては、Tencent Effectの独立した統合をご参照ください。
/// @brief SDKイベント監視インターフェース
/// @param listener イベントリスナーコールバックです。主に、AIイベント、Tips表示イベント、Assetイベントがあります
- (void)registerSDKEventListener:(id<YTSDKEventListener> _Nullable)listener;
#pragma mark - イベントコールバックインターフェース
/// @brief SDK内部イベントコールバックインターフェース
@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
コールバックの設定に成功すると、各フレームの顔イベントごとに次のコールバックを行います。
- (void)onYTDataEvent:(id _Nonnull)event;
コールバックdataはJSON形式のデータで、具体的な意味は次のとおりです(256のポイントは上図の位置に対応します)。
/// @note フィールド意味リスト
/**
| フィールド | タイプ | 値の範囲 | 説明 |
| :---- | :---- |:---- | :---- |
| trace_id | int | [1,INF) | 顔id。連続ストリーム取得の過程で、idが同一であれば同じ顔であると認識できます |
| face_256_point | float | [0,screenWidthまたはscreenHeight] | 計512個。顔の256個の重要特徴点であり、画面左上隅が(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のSDKの統合ガイドについての詳細は、Tencent Effectの独立した統合をご参照ください。
顔の特徴点位置情報などのデータのコールバックを設定します。
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] | 計512個。顔の256個の重要特徴点であり、画面左上隅が(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 | コールバック関数実装クラス。 |
この記事はお役に立ちましたか?