2.2.2. APIと構造体のパラメーター のマクロ定義

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

st_handle_t

機能:引数やデータの保存に必要なハンドルです。対応する解放引数の呼び出し、メモリの解放及びリサイクルを行う必要があります。

定義:

typedef void *st_handle_t;

st_result_t

機能:戻されたエラーコードを表示します。

定義:

typedef int st_result_t;

struct stid_detection_result

機能:顔枠情報を取得できます。

定義:

typedef struct stid_detection_result {
    cv_rect32i_t rect;        ///< Result rect
    float score;            ///< スコア
    int label;            ///< ラベル
    int orientation;        ///< 向き
    unsigned int reserved1;
    unsigned int reserved2;
} stid_detection_result_t;

struct stid_landmarks

機能:顔特徴点情報を取得できます。

定義:

typedef struct stid_landmarks {
    cv_point3D32f *points_array;    ///< 特徴点をアレイします
    unsigned char *points_available;    ///< 利用可能な特徴点を表記します。 point_count =ユニット個数情報を含み、 point_array に対応しています。1 は利用可能な特徴点を示し、0 は遮られている特徴点を示しています。
    int points_count;    ///< 特徴点の数を示しています。
    int label;    ///< トラッキング結果を取得します。
    float alignment_score;    ///< 特徴点の位置のスコアを示しています。
    float label_score;
    void* extra_info; ///< 特徴点の中間情報
    float* points_score;
    unsigned int reserved1;
    unsigned int reserved2;
} stid_landmarks_t;

struct stid_target

機能:トラッキングの結果を取得できます。

定義:

typedef struct stid_target {
    stid_detection_result_t detect_result;            ///< 顔枠
    stid_landmarks_t landmarks;        ///< 特徴点
    int id;                ///< 顔ID を示しています。顔をトラッキングする際、トラッキングする顔が変化した場合、1 を加算します (トラッキングする顔が変化していることを示し、同じ人物であるかどうかは判断できません)。
} stid_target_t;

stid_pose

機能:ポーズの角度情報を取得できます。

定義:

typedef struct stid_pose{
    float yaw;    ///< Y 軸角度を示します
    float pitch;    ///< X 軸角度を示します
    float roll;    ///< Z 軸角度を示します
} stid_pose_t;

stid_face_quality

機能:顔写真品質の情報を取得できます。

定義:

typedef struct stid_face_quality {
    float distance2center;      ///< [0,1]. max(1 - 五官中心から画像中心への距離 / 画像の短辺の距離, 0)
    float size;                 ///< [0,1]. 五官が画像に占める面積 / 画像の面積
    float occlusion;            ///< [0,1]. 遮られていない五官の面積/五官の面積
    float brightness;           ///< [-1,1]. 明るさがスコアに正比例します
    float sharpness;            ///< [0,1]. シャープネスがスコアに正比例します
    float mouth_open;           ///< [0,1]. 開いている口の角度を計算します。口の開き具合がスコアに反比例します
    float missing;              ///< [0,1]. 五官が画像中に占める面積/五官の面積
} stid_face_quality_t;

stid_attribute_category_t

機能:顔属性情報構造体。 カテゴリーが「mask」の場合、value値は 0:nomask、1:mask

定義:

typedef struct stid_attribute_category_t {
    char category[STID_COMMON_MAX_LABEL_LENGTH]; ///< 属性種別名
    int value; ///< 属性結果値
} stid_attribute_category_t;

stid_attribute_list

機能:顔属性の一覧です。

定義:

typedef struct stid_attribute_list{
    stid_attribute_category_t* attribute_category_array; ///> 顔属性情報の配列
    int attribute_category_count; ///> 顔属性の数
}stid_attribute_list_t;

Config (detect)

機能:顔認識モードを示します。

定義:

#define STID_FACEPRO_DETECTOR_CONFIG_LARGE_FACE 0x00000000 // 大顔認識モード
#define STID_FACEPRO_DETECTOR_CONFIG_SMALL_FACE 0x00000200 // 小顔認識モード
#define STID_FACEPRO_DETECTOR_CONFIG_ANY_FACE 0x00000400 // 大小顔認識モード、認識速度が比較的遅い

config (track)

機能:非同期の顔トラッキングを使用できます(遅い認識モデル、かつリアルタイムプレビューが必要の場合での利用を推奨)。

定義:

#define STID_FACEPRO_TRACKING_CONFIG_ASYNC (0x00010000)

config (track)

機能:顔トラッキングモードを示します。

定義:

#define STID_FACEPRO_TRACKING_CONFIG_LARGE_FACE 0x00000000 // 大顔認識モード
#define STID_FACEPRO_TRACKING_CONFIG_SMALL_FACE 0x00000200 // 小顔認識モード

config (track)

機能:顔をトラッキングするターゲット数Nを設定できます。

設定範囲:1~32。初期値N=1。検知されたN個の顔をトラッキングします。 顔の数がNを下回った場合、顔の認識を開始します。値N=1の場合、1つの顔をトラッキングします。

定義:

#define STID_FACEPRO_DETECTION_OPTION_TYPE_LIMIT    (0x0001)

機能:顔写真の品質計算標識位置を取得できます。

定義:

#define STID_FACEPRO_QUALITY_FLAG_DISTANCE2CENTER  (1 << 2)
#define STID_FACEPRO_QUALITY_FLAG_SIZE             (1 << 3)
#define STID_FACEPRO_QUALITY_FLAG_OCCLUSION        (1 << 4)
#define STID_FACEPRO_QUALITY_FLAG_BRIGHTNESS       (1 << 5)
#define STID_FACEPRO_QUALITY_FLAG_SHARPNESS        (1 << 6)
#define STID_FACEPRO_QUALITY_FLAG_MOUTH            (1 << 7)
#define STID_FACEPRO_QUALITY_FLAG_MISSING          (1 << 10)
#define STID_FACEPRO_QUALITY_FLAG_ALL              (0xffffffff)

最終更新