2.2.3.モノキュラカメラによる顔トラッキング

Windows/Linux/Arm_Linux 用のAPIは、以下の解説をご参照ください。

stid_facepro_tracking_create_handle

機能:モデルファイルをロードすることによって、trackingハンドルを作成できます。

注意:

  1. 現バージョンSDKのハンドルはマルチスレッドによる呼び出しに対応していないため、1 スレッドごとに1つのハンドルを作成する必要があります。

  2. 1つのスレッドは初期化する引数は一度だけ呼び出す必要があります。その後は繰り返しハンドルを作成しなくても、顔検知引数を複数回呼び出すことができます。

定義:

STID_SDK_API
stid_result_t
stid_facepro_tracking_create_handle(
    stid_handle_t* out_handle,
    const char *alignment_model_filename,
    unsigned int config
);

引数:

  • [out] out_handle:初期化されたハンドルです(利用しない時、destroy_handleを呼び出してリソースを解放する必要があります)。

  • [in] alignment_model_filename:alignmentのモデルファイルの所在位置をロードします。

  • [in] config:顔認識機の構成項目を設定します(0に設定した場合、デフォルト項目設定が適用されます)

デフォルト項目設定は以下の通りです:

  • ST_DETECT_ENABLE_ALIGN_21(21個特徴点認識)

  • ST_DETECT_LARGE_FACE(大顔認識モード)

上記の項目設定以外に、以下のような構成項目を設定できます:

  • ST_DETECT_ENABLE_ALIGN_106(106個特徴点認識)

  • ST_DETECT_SMALL_FACE(小顔認識モード)

  • ST_FACE_RESIZE_IMG_XXXX(顔を自動的にリサイズ)

  • STID_FACEPRO_TRACKING_CONFIG_ASYNC(トラッキング設定)

  • 構成項目の設定引数の詳細については、本マニュアル4.2.2章の「構造体及びマクロ定義の説明」内の顔検知とトラッキング設定のマクロ定義をご参照ください。

返り値:

  • [return]:正常の場合、STID_OKが表示されます(エラーになった場合はエラーコードが表示されます)

stid_facepro_destroy_tracker

機能:trackingハンドルを解放します。

定義:

STID_SDK_API
void
stid_facepro_tracking_destroy_handle(
    stid_handle_t handle
);

引数

  • [in] handle:解放するハンドルを入力します。

返り値:ありません。

stid_facepro_tracking_reset

機能:tracking"ハンドルをリセットできます。

定義

STID_SDK_API
stid_result_t
stid_facepro_tracking_reset(
    stid_handle_t handle
);

引数

  • [in] handle:リセットするハンドルです。

返り値:正常の場合はSTID_OKが表示され、エラーになった場合はエラーコードを返します。

stid_facepro_tracking_track

機能:1フレーム分の画像を入力して顔トラッキングを行ないます。連続したフレームに顔トラッキングを行うには、当APIを連続して呼び出ししてください。

定義:

STID_SDK_API
stid_result_t
stid_facepro_tracking_track(
    stid_handle_t handle,
    const stid_image_t* input_image,
    stid_orientation_t face_orientation,
    double time_stamp_s,
    stid_target_t **out_targets_array,
    int *out_targets_array_count
);

引数:

  • [in] handle:初期化されたハンドルです。

  • [in] input_image:1フレームの画像をロードしてください。

  • [in] face_orientation:入力した画像中の顔の向きを指定してください。

  • [in] time_stamp_s:入力した画像のタイムスタンプ情報(単位:秒、浮動小数点数)

  • [out] out_targets_array:検知された顔情報のアレイを表示します(APIによるメモリの配分が表示されます。またAPI stid_facepro_tracking_release_targets_arrayを呼び出して、ハンドルを解放する必要があります)。

  • [out] out_targets_array_count:トラッキングできた顔の数を表示します。

返り値:

  • [return]:正常の場合はSTID_OKが表示、エラーになった場合はエラーコードが表示されます。

stid_facepro_set_tracking_option

機能:顔検知に関する構成項目を設定できます。トラッキングのハンドルもサポートします。

定義:

STID_SDK_API
stid_result_t
stid_facepro_set_tracking_option(
    stid_handle_t handle,
    unsigned int option_type,
    int value,
    int* out_new_value
);

引数

  • [in] handle:初期化されたハンドルです。

  • [in] option_type:構成項目を指定します。サポートしている項目種類は、STID_FACEPRO_DETECTION_OPTION_ TYPE_LIMIT(トラッキングする顔数)です。

  • [in] value:新しい値を設定できます。サポートしている項目種類の設定範囲は、1〜32です。

  • [out] out_new_value:nullptrではない場合、新しい値で表示されます。内部の制限で使用される実際の値は、必ずしもvalue 設定した値と同じではありません。

返り値:

  • [return]:正常の場合はSTID_OKが表示、エラーになった場合はエラーコードが表示されます。

stid_facepro_tracking_release_targets_array

機能:顔の認識結果を解放します。

注意:顔トラッキング引数を呼び出した後、この引数でリソースを解放する必要があります。

定義:

STID_SDK_API
void
stid_facepro_tracking_release_targets_array(
    const stid_target_t *targets_array,
    int targets_array_count
);

引数:

  • [in] targets_array:解放する顔数アレイのヘッダを入力してください。

  • [in] targets_array_count:解放する顔数アレイの要素の数を入力してください。

返り値:ありません。

最終更新