4.SDK API の使用
4.1 SDK ハンドルの初期化
1.HumanAction の初期化
//HumanAction ハンドルを初期化します
//モデルのパスを取得します
NSString *strModelPath = [[NSBundle mainBundle]
pathForResource:@"M_SenseME_Action" ofType:@"model"];
//HumanAction ハンドルを作成します
//注記: 本 SDK の API では、2 種類の HumanAction ハンドル作成方法を提供します。
//検知対象がビデオである場合は ST_MOBILE_HUMAN_ACTION_DEFAULT_CONFIG_CREATE
//に設定し、画像である場合は ST_MOBILE_HUMAN_ACTION_DEFAULT_CONFIG_IMAGE に
//設定します。詳細については、st_mobile_human_action.h ファイルをご参照ください。
//ハンドル作成用の config コマンドと、人間の動作を検知するための config コマンドを
//区別するように注意してください。動作を検知するための config コマンドは、config
//コマンドを使用してハンドルを作成できる場合にのみ有効になります。
iRet = st_mobile_human_action_create(
strModelPath.UTF8String,
ST_MOBILE_HUMAN_ACTION_DEFAULT_CONFIG_VIDEO,
&_hDetector
);
//他のモデルをロードして、st_mobile_human_action_add_sub_model を呼び出します
NSString *strEyeCenter = [[NSBundle mainBundle]
pathForResource:@"xx" ofType:@"model"];
iRet = st_mobile_human_action_add_sub_model(
_hDetector,
strEyeCenter.UTF8String
);
//アバタースタンプは、目の輪郭点モデルと専用のアバターモデル (avatar_core.model)
// を一緒に読み込む必要があることに注意してください
//モデルを削除します。必要に応じて、動的にモデルを追加、または削除できます。
//詳細についてはサンプルをご参照ください。
iRet = st_mobile_human_action_remove_model_by_config(
_hDetector,
ST_MOBILE_ENABLE_FACE_EXTRA_DETECT
);
//人間の動作用のパラメーターを設定します。2 フレームごとに 1 回ジェスチャを検知するよう
//に設定しています。必要に応じて設定できます。
//他のパラメーターに関しては、st_mobile_human_action.h ファイルをご参照ください。
iRet = st_mobile_human_action_setparam(
_hDetector,
ST_HUMAN_ACTION_PARAM_HAND_PROCESS_INTERVAL,
2
);2.顔属性 API ハンドルの初期化
3.美化 API ハンドルの初期化
4.スタンプ API ハンドルの初期化
5.フィルター API ハンドルの初期化
6.一般的なオブジェクト API ハンドルの初期化
SDK ハンドルの初期化が終了しました。詳細については、公式のデモをご参照ください。 注記: 本 SDK は、オブジェクトの美化およびフィルター化の統一されたコンテキスト内にある必要があります。次のように設定します。
注記: コンテキストが異なると、エラーが発生する可能性があるため、OpenGL コンテキストが同じであることを確認してください。
4.2 テクスチャの取得
1.STCamera の使用
STCamera: iOS システムに合わせたカメラ用 SenseTime パッケージ。解像度や出力フォーマットなど、多数のパラメーターを簡単に設定できます。詳細については、STCamera.h ファイルをご参照ください。
2.STCamera からテクスチャを取得
4.3 テクスチャの前処理
4.4 フレーム処理フロー
1.HumanAction API の使用
回転角度: 写真を撮り、携帯電話に対して回転させて、顔を検知できる方向を確認します。これが顔を検知する際の角度です。詳細については、enum パラメーターをご参照ください。
2.表情 API の使用
表情に関する API は、動作検知の関数の結果を必要とします。したがって、次のように 動作検知の関数の後に呼び出されます。
3.顔属性 API の使用
FaceAttribute API は、HumanAction パラメーターからパラメーターを入力します。したがって、顔属性 API の実行前に、HumanAction パラメーターを設定する必要があります。
4.美化 API の使用
同様に、目の拡大や顎の縮小などの美化 API の関数も、HumanAction に由来します。
detectResult 項目は、人間の動作の検知結果用で、processedResult 項目は目の拡大や顎の縮小などの美化を行った後の顔特徴点用です (processResult 項目は、上位層で手動で割り当てられます。detectResult 項目と同じか、detectResult 項目から取り込まれたものです)。
美化パラメーターの設定:
5.スタンプ API の使用
スタンプには、主に 2D スタンプ、3D スタンプ、顔変形スタンプ、前面と背面の背景スタンプ、ジェスチャスタンプ、音楽スタンプ、メイクスタンプ、パーティクルアニメーションスタンプ、アバタースタンプ、スカイボックススタンプが含まれます。スタンプ機能を実装するには、顔情報が利用可能であることを確認し、事前に HumanAction を実行します。
スタンプのレンダリング
注記:
1.本 API は、前景スタンプの回転角度を追加します。必要に応じて使用できます。
2.スカイボックススタンプを使用するには、カメラのクォータニオンを入力してください。スカイボックスの inputEvent 項目が必要ない場合は、NULL を入力します。
詳細については、サンプルをご参照ください。
スタンプの変更:
アクションをトリガーするスタンプの取得: (st_mobile_sticker_change_package 関数を取得後にのみ、スタンプを取得します。アクションはヘッダーファイルで定義されています。)
6.フィルター API の使用
7.一般的なオブジェクト API の使用
4.5 SDK ハンドルの解放
1.GL リソースは、GL スレッドで解放する必要があります。
まとめ: 第 3 章では、本 SDK の API の使用方法に関する概要を説明しました。デモのプレゼンテーションは、SDK のより迅速な統合を促進します。いくつかの考慮すべき点を以下に示します。
1.顔属性の検知、美化、スタンプを使用するには、事前に humanAction を検知する必要があります。
2.美化、スタンプ、フィルターは、OpenGL によりレンダリングされます。そのため、同じ EAGLContext 内にある必要があります。次のように実装します。
Last updated