New file |
| | |
| | |  |
| | | #ifndef INCLUDE_CVFACE_API_CV_FACE_EXTERNAL_H_ |
| | | #define INCLUDE_CVFACE_API_CV_FACE_EXTERNAL_H_ |
| | | |
| | | |
| | | #include "cv_common.h" |
| | | /// @defgroup cvface_common cvface common |
| | | /// @brief Common definitions for cvface |
| | | /// @{ |
| | | |
| | | /// @brief 人è¸ä¿¡æ¯ç»æä½ |
| | | typedef struct cv_face_t { |
| | | cv_rect_t rect; ///< 代表é¢é¨çç©å½¢åºå |
| | | float score; ///< 置信度ï¼ç¨äºçé¤è´ä¾ï¼ä¸äººè¸ç
§çè´¨éæ å
³ï¼å¼è¶é«è¡¨ç¤ºç½®ä¿¡åº¦è¶é«ã |
| | | int points_count; ///< 人è¸å
³é®ç¹æ°ç»çé¿åº¦ï¼å¦ææ²¡æè®¡ç®å
³é®ç¹ï¼å为0 |
| | | float yaw; ///< 水平转è§ï¼çå®åº¦éçå·¦è´å³æ£ |
| | | float pitch; ///< 俯仰è§ï¼çå®åº¦éçä¸è´ä¸æ£ |
| | | float roll; ///< æè½¬è§ï¼çå®åº¦éçå·¦è´å³æ£ |
| | | float eye_dist; ///< 两ç¼é´è· |
| | | int ID; ///< faceIDï¼ç¨äºè¡¨ç¤ºå¨å®æ¶äººè¸è·è¸ªä¸çç¸å人è¸å¨ä¸å叧夿¬¡åºç°ï¼å¨äººè¸æ£æµçç»æä¸æ å®é
æä¹ |
| | | cv_pointf_t points_array[256]; ///< 人è¸å
³é®ç¹çæ°ç»æ¯æ21ç¹ï¼106ç¹ï¼ä»¥åä¸ºå°æ¥é¢ççç©ºé´ |
| | | } cv_face_t; |
| | | |
| | | /// äººè¸æ£æµãè·è¸ªé
ç½®é项 |
| | | #define CV_FACE_DEFAULT_CONFIG 0x00000000 ///< é»è®¤é项ï¼ä¸è®¾ç½®ä»»ä½å¼å
³ |
| | | #define CV_FACE_RESIZE_IMG_320W 0x00000002 ///< resizeå¾å为é¿è¾¹320çå¾å |
| | | #define CV_FACE_RESIZE_IMG_640W 0x00000004 ///< resizeå¾å为é¿è¾¹640çå¾å |
| | | #define CV_FACE_RESIZE_IMG_1280W 0x00000008 ///< resizeå¾å为é¿è¾¹1280çå¾å |
| | | |
| | | /// detect config flags, 0x----00-- ~ 0x----FF-- |
| | | #define CV_DETECT_ENABLE_ALIGN_21 0x00000100 ///< å¼å¯é¢é¨å
³é®21ç¹æ£æµé项 |
| | | #define CV_DETECT_ENABLE_ALIGN_106 0x00000200 ///< å¼å¯é¢é¨å
³é®106ç¹æ£æµé项 |
| | | |
| | | /// è¯¥çæ¬sdkæªå¼å¯æ¤åè½(å¦ï¼é¢é¨å
³é®21ç¹æ£æµçæ¬ä¼ å
¥äºé¢é¨å
³é®106ç¹æ£æµåæ°) |
| | | #define CV_E_UNSURPPORTED (-1000) |
| | | /// æå®ä½ç½®æªæ¾å°license.licæä»¶ |
| | | #define CV_E_MISSLICENSE (-1001) |
| | | /// cv_face_init_license_config 彿°è¢«éå¤è°ç¨ |
| | | #define CV_E_MULTI_CALLS (-1002) |
| | | |
| | | /// @brief äººè¸æå |
| | | typedef enum { |
| | | CV_FACE_UP = 0x0000001, ///< 人è¸åä¸ï¼å³äººè¸æåæ£å¸¸ |
| | | CV_FACE_LEFT = 0x0000002, ///< 人è¸åå·¦ï¼å³äººè¸è¢«éæ¶éæè½¬äº90度 |
| | | CV_FACE_DOWN = 0x0000004, ///< 人è¸åä¸ï¼å³äººè¸è¢«éæ¶éæè½¬äº180度 |
| | | CV_FACE_RIGHT = 0x0000008, ///< 人è¸åå³ï¼å³äººè¸è¢«éæ¶éæè½¬äº270度 |
| | | CV_FACE_UNKNOWN = 0xf ///< äººè¸æåæªç¥ï¼APIèªå¨å¤æäººè¸æåï¼èæ¶å¢å ãface_track䏿¯ææ¤åæ°ï¼çåäºCV_FACE_UP |
| | | } cv_face_orientation; |
| | | |
| | | /// @brief è¾åºå½åSDKææ¯æçç®æ³åå
置模åä¿¡æ¯ |
| | | CV_SDK_API |
| | | void |
| | | cv_face_algorithm_info(); |
| | | |
| | | /// @brief æå¨å è½½licenseæä»¶ï¼é¤IOS,Androidå¹³å°å¤ï¼é½å¯ä»¥ä¸ä¸»å¨è°ç¨æ¤å½æ°ï¼ä½éè¦å°licenseæä»¶æ¾å¨å¯æ§è¡ç¨åºåä¸ç®å½ï¼åç§°å½å为license.licï¼,è¯¥å½æ°åªè½è¢«æåè°ç¨ä¸æ¬¡ |
| | | /// param[in] szLicense æææä»¶ä¸çå符串ï¼licenseæä»¶çå
¨é¨å
容 |
| | | CV_SDK_API |
| | | cv_result_t |
| | | cv_face_init_license_config(const char* szLicense); |
| | | |
| | | |
| | | /// @defgroup cvface_detect cvface detect |
| | | /// @brief face position detection interfaces |
| | | /// |
| | | /// This set of interfaces processing face position & 21 or 106 points landmark detection routines |
| | | /// |
| | | /// @{ |
| | | |
| | | /// @brief åå»ºäººè¸æ£æµå¥æ |
| | | /// @param[out] handle彿°æåæ¶è¢«è®¾ç½®ä¸ºææçdetector handle |
| | | /// @param[in] model_path 模åæä»¶çç»å¯¹è·¯å¾æç¸å¯¹è·¯å¾ï¼è¥ä¸æå®æ¨¡åå¯ä¸ºNULL |
| | | /// @param[in] config é
ç½®é项ï¼é»è®¤é
置为CV_DETECT_ENABLE_ALIGN_21(21å
³é®ç¹æ£æµ)ãæ¯æ106å
³é®ç¹æ£æµCV_DETECT_ENABLE_ALIGN_106åèªå¨ç¼©æ¾CV_FACE_RESIZE_IMG_XXXXã |
| | | /// @return è¿åCV_OK 失败è¿åé误ç |
| | | CV_SDK_API |
| | | cv_result_t |
| | | cv_face_create_detector( |
| | | cv_handle_t *handle, |
| | | const char *model_path, |
| | | unsigned int config |
| | | ); |
| | | |
| | | /// @brief è·åå½åäººè¸æ£æµçé»è®¤éå¼ |
| | | /// @param[in] handle äººè¸æ£æµå¥æ |
| | | /// @param[out] threshold äººè¸æ£æµçé»è®¤éå¼ |
| | | CV_SDK_API |
| | | cv_result_t cv_face_detect_get_threshold( |
| | | cv_handle_t detector_handle, |
| | | float *threshold |
| | | ); |
| | | |
| | | /// @brief 设置å½åäººè¸æ£æµçéå¼ï¼éè¦å¨è°ç¨cv_face_detectä¹åè°ç¨æ¤å½æ°ï¼éå¼é大äº0ï¼è®¾ç½®åè°ç¨cv_face_detect_get_threshold为æ°è®¾ç½®åçå¼) |
| | | /// @param[in] handle äººè¸æ£æµå¥æ |
| | | /// @param[in] threshold äººè¸æ£æµæ°éå¼ |
| | | CV_SDK_API |
| | | cv_result_t cv_face_detect_set_threshold( |
| | | cv_handle_t detector_handle, |
| | | float threshold |
| | | ); |
| | | |
| | | /// @brief 鿝已åå§åçäººè¸æ£æµå¥æ |
| | | /// @param[in] detector_handle å·²åå§åçäººè¸æ£æµå¥æ |
| | | CV_SDK_API |
| | | void cv_face_destroy_detector( |
| | | cv_handle_t detector_handle |
| | | ); |
| | | |
| | | /// @brief äººè¸æ£æµ |
| | | /// @param[in] detector_handle å·²åå§åçäººè¸æ£æµå¥æ |
| | | /// @param[in] image ç¨äºæ£æµçå¾åæ°æ® |
| | | /// @param[in] piexl_format ç¨äºæ£æµçå¾åæ°æ®çåç´ æ ¼å¼ |
| | | /// @param[in] image_width ç¨äºæ£æµçå¾åç宽度(以åç´ ä¸ºåä½) |
| | | /// @param[in] image_height ç¨äºæ£æµçå¾åçé«åº¦(以åç´ ä¸ºåä½) |
| | | /// @param[in] image_stride ç¨äºæ£æµçå¾å䏿¯ä¸è¡ç跨度(以åç´ ä¸ºåä½) å¾å跨度=å¾å宽度*å¾å维度 |
| | | /// @param[in] orientation å¾çä¸äººè¸çæ¹å |
| | | /// @param[out] p_faces_array æ£æµå°ç人è¸ä¿¡æ¯æ°ç»ï¼apiè´è´£åé
å
åï¼éè¦è°ç¨cv_face_release_detector_result彿°éæ¾ |
| | | /// @param[out] p_faces_count æ£æµå°çäººè¸æ°é |
| | | /// @return æåè¿åCV_OKï¼å¦åè¿åé误类å |
| | | CV_SDK_API |
| | | cv_result_t |
| | | cv_face_detect( |
| | | cv_handle_t detector_handle, |
| | | const unsigned char *image, |
| | | cv_pixel_format pixel_format, |
| | | int image_width, |
| | | int image_height, |
| | | int image_stride, |
| | | cv_face_orientation orientation, |
| | | cv_face_t **p_faces_array, |
| | | int *p_faces_count |
| | | ); |
| | | |
| | | /// @brief éæ¾äººè¸æ£æµè¿åç»ææ¶åé
çç©ºé´ |
| | | /// @param[in] faces_array æ£æµå°ç人è¸ä¿¡æ¯æ°ç» |
| | | /// @param[in] faces_count æ£æµå°çäººè¸æ°é |
| | | CV_SDK_API |
| | | void |
| | | cv_face_release_detector_result( |
| | | cv_face_t *faces_array, |
| | | int faces_count |
| | | ); |
| | | |
| | | |
| | | /// @} |
| | | |
| | | |
| | | /// @defgroup cvface_track cvface track |
| | | /// @brief face tracking interfaces |
| | | /// |
| | | /// This set of interfaces processing face tracking routines |
| | | /// |
| | | /// @{ |
| | | |
| | | #define CV_FACE_TRACKING_TWO_THREAD 0x00110000 ///< å¼å¯å线ç¨äººè¸è·è¸ªï¼å»ºè®®ä½é
ç½®ç¯å¢å¼å¯æ¤é项ã |
| | | |
| | | /// @brief åå»ºå®æ¶äººè¸è·è¸ªå¥æãå¯ä»¥è°ç¨cv_face_track_set_detect_face_cnt_limitè®¾ç½®æ£æµçæå¤§äººè¸æ°ç®ï¼é»è®¤ä¸ºä¸éå¶äººè¸æ£æµæ°éã |
| | | /// @param[out] handle彿°æåæ¶è¢«è®¾ç½®ä¸ºææçtracker handle |
| | | /// @param[in] model_path 模åæä»¶çç»å¯¹è·¯å¾æç¸å¯¹è·¯å¾ï¼è¥ä¸æå®æ¨¡åå¯ä¸ºNULL |
| | | /// @param[in] config é»è®¤é
置为CV_DETECT_ENABLE_ALIGN_21(21å
³é®ç¹æ£æµ)ãæ¯æ106å
³é®ç¹æ£æµCV_DETECT_ENABLE_ALIGN_106ãèªå¨ç¼©æ¾CV_FACE_RESIZE_IMG_XXXXåå线ç¨è·è¸ªCV_FACE_TRACKING_TWO_THREADã |
| | | /// @return è¿åCV_OK 失败è¿åé误ç |
| | | CV_SDK_API |
| | | cv_result_t |
| | | cv_face_create_tracker( |
| | | cv_handle_t *handle, |
| | | const char *model_path, |
| | | unsigned int config |
| | | ); |
| | | |
| | | /// @brief 鿝已åå§åç宿¶äººè¸è·è¸ªå¥æ |
| | | /// @param[in] tracker_handle å·²åå§åç宿¶äººè¸è·è¸ªå¥æ |
| | | CV_SDK_API |
| | | void |
| | | cv_face_destroy_tracker( |
| | | cv_handle_t tracker_handle |
| | | ); |
| | | |
| | | /// @brief 对è¿ç»è§é¢å¸§è¿è¡å®æ¶å¿«é人è¸è·è¸ª |
| | | /// @param[in] tracker_handle å·²åå§åç宿¶äººè¸è·è¸ªå¥æ |
| | | /// @param[in] image ç¨äºæ£æµçå¾åæ°æ® |
| | | /// @param[in] piexl_format ç¨äºæ£æµçå¾åæ°æ®çåç´ æ ¼å¼ |
| | | /// @param[in] image_width ç¨äºæ£æµçå¾åç宽度(以åç´ ä¸ºåä½) |
| | | /// @param[in] image_height ç¨äºæ£æµçå¾åçé«åº¦(以åç´ ä¸ºåä½) |
| | | /// @param[in] image_stride ç¨äºæ£æµçå¾å䏿¯ä¸è¡ç跨度(以åç´ ä¸ºåä½)ï¼å¾å跨度=å¾å宽度*å¾å维度 |
| | | /// @param[in] orientation è§é¢ä¸äººè¸çæ¹å |
| | | /// @param[out] p_faces_array æ£æµå°ç人è¸ä¿¡æ¯æ°ç»ï¼apiè´è´£åé
å
åï¼éè¦è°ç¨cv_facesdk_release_tracker_result彿°éæ¾ |
| | | /// @param[out] p_faces_count æ£æµå°çäººè¸æ°é |
| | | /// @return æåè¿åCV_OKï¼å¦åè¿åé误类å |
| | | CV_SDK_API |
| | | cv_result_t |
| | | cv_face_track( |
| | | cv_handle_t tracker_handle, |
| | | const unsigned char *image, |
| | | cv_pixel_format pixel_format, |
| | | int image_width, |
| | | int image_height, |
| | | int image_stride, |
| | | cv_face_orientation orientation, |
| | | cv_face_t **p_faces_array, |
| | | int *p_faces_count |
| | | ); |
| | | |
| | | /// @brief é置人è¸è·è¸ªæ£æµå¨ |
| | | /// @param[in] tracker_handle å·²åå§åç宿¶äººè¸è·è¸ªå¥æ |
| | | CV_SDK_API |
| | | void |
| | | cv_face_reset_tracker( |
| | | cv_handle_t tracker_handle |
| | | ); |
| | | |
| | | /// @brief 鿾宿¶äººè¸è·è¸ªè¿åç»ææ¶åé
çç©ºé´ |
| | | /// @param[in] faces_array æ£æµå°ç人è¸ä¿¡æ¯æ°ç» |
| | | /// @param[in] faces_count æ£æµå°çäººè¸æ°é |
| | | CV_SDK_API |
| | | void |
| | | cv_face_release_tracker_result( |
| | | cv_face_t *faces_array, |
| | | int faces_count |
| | | ); |
| | | |
| | | /// @brief è®¾ç½®æ£æµå°çæå¤§äººè¸æ°ç®Nï¼æç»trackå·²æ£æµå°çN个人è¸ç´å°äººè¸æ°å°äºNåç»§ç»ådetect,妿æªè°ç¨åä¸å¯¹æ£æµäººè¸æ°éåéå¶ |
| | | /// @param[in] tracker_handle å·²åå§åç宿¶äººè¸è·è¸ªå¥æ |
| | | /// @param[in] detect_face_cnt_limit æå¤§äººè¸æ°ç®Nï¼-1表示ä¸è®¾ä¸é |
| | | /// @param[out] val å¦æä¸ºé空æéï¼åè¿åéç¨çæ°çå¼ï¼æ³¨æï¼ç±äºå
é¨çéå¶ï¼ å®é
éç¨çå¼å¹¶ä¸ä¸å®çäºdetect_face_cnt_limit |
| | | /// @return æåè¿åCV_OKï¼å¦åè¿åé误类å (å®é
è®¾ç½®æ£æµå°çæå¤§ç®æ æ°ç®Nå¯è½å°äºdetect_face_cnt_limit) |
| | | CV_SDK_API |
| | | cv_result_t |
| | | cv_face_track_set_detect_face_cnt_limit( |
| | | cv_handle_t tracker_handle, |
| | | int detect_face_cnt_limit, |
| | | int* val |
| | | ); |
| | | |
| | | /// @} |
| | | |
| | | |
| | | /// @defgroup cvface_verify cvface verify |
| | | /// @brief face verification interfaces |
| | | /// |
| | | /// This set of interfaces processing face verification routines. |
| | | /// |
| | | /// @{ |
| | | |
| | | /// @brief å建人è¸éªè¯å¥æ |
| | | /// @param[out] handle彿°æåæ¶è¢«è®¾ç½®ä¸ºææçverify handle |
| | | /// @param[in] model_path 模ååºæå¨æä»¶å¤¹çç»å¯¹è·¯å¾æç¸å¯¹è·¯å¾(sdk䏿¨¡åæä»¶è·¯å¾ä¸ºsdk/models/verify.model")ï¼ä¸è½ä¸ºNULL |
| | | /// @return è¿åCV_OK 失败è¿åé误ç |
| | | CV_SDK_API |
| | | cv_result_t |
| | | cv_verify_create_handle( |
| | | cv_handle_t* handle, |
| | | const char *model_path |
| | | ); |
| | | |
| | | /// @brief å建人è¸éªè¯å¥æç坿¬ï¼ä¸æ§ç奿å
±äº«å
åï¼å¯ç¨äºå¤çº¿ç¨è°ç¨ |
| | | /// @param[in] old_handle æ§ç人è¸éªè¯å¥æï¼æ°å¥æéæ¾åæè½éæ¾æ§å¥æ |
| | | /// @param[out] new_handle 彿°æåè¿å人è¸éªè¯å¥æç坿¬ |
| | | /// @return æåè¿åCV_OK |
| | | CV_SDK_API |
| | | cv_result_t |
| | | cv_verify_duplicate_handle( |
| | | cv_handle_t old_handle, |
| | | cv_handle_t* new_handle |
| | | ); |
| | | |
| | | /// @brief 鿝已åå§åç人è¸éªè¯å¥æ |
| | | /// @param[in] verify_handle å·²åå§åç人è¸éªè¯å¥æ |
| | | CV_SDK_API |
| | | void |
| | | cv_verify_destroy_handle( |
| | | cv_handle_t verify_handle |
| | | ); |
| | | |
| | | /// @brief è·åå½å人è¸éªè¯ä½¿ç¨ç模åçæ¬å· |
| | | /// @param[in] verify_handle 人è¸éªè¯å¥æ |
| | | /// @return çæ¬å· |
| | | CV_SDK_API |
| | | int |
| | | cv_verify_get_version( |
| | | cv_handle_t verify_handle |
| | | ); |
| | | |
| | | /// @brief è·åå½å人è¸éªè¯ä½¿ç¨ç模åæåçfeatureé¿åº¦ï¼ä¸å
å«cv_feature_header_tçé¿åº¦ |
| | | /// @param[in] verify_handle 人è¸éªè¯å¥æ |
| | | /// @return ç¹å¾é¿åº¦ |
| | | CV_SDK_API |
| | | int |
| | | cv_verify_get_feature_length( |
| | | cv_handle_t verify_handle |
| | | ); |
| | | |
| | | /// @brief æå人è¸ç¹å¾ï¼è¿åç¹å¾æ°æ®é¿åº¦ï¼å¯ä»¥æè¿åæ°ç»ç¼ç æå符串ååå¨èµ·æ¥ä»¥ä¾¿ä»¥åä½¿ç¨ |
| | | /// @param[in] verify_handle å·²åå§åç人è¸éªè¯å¥æ |
| | | /// @param[in] image ç¨äºæ£æµçå¾åæ°æ® |
| | | /// @param[in] piexl_format ç¨äºæ£æµçå¾åæ°æ®çåç´ æ ¼å¼ |
| | | /// @param[in] image_width ç¨äºæ£æµçå¾åç宽度(以åç´ ä¸ºåä½) |
| | | /// @param[in] image_height ç¨äºæ£æµçå¾åçé«åº¦(以åç´ ä¸ºåä½) |
| | | /// @param[in] image_stride ç¨äºæ£æµçå¾å䏿¯ä¸è¡ç跨度(以åç´ ä¸ºåä½)ï¼å¾å跨度=å¾å宽度*å¾å维度 |
| | | /// @param[in] face è¾å
¥å¾
å¤çç人è¸ä¿¡æ¯ï¼éè¦å
æ¬å
³é®ç¹ä¿¡æ¯ï¼å³ face.points_array ä¸ä¸ºNULL |
| | | /// @param[out] p_feature 人è¸ç¹å¾æ°æ®ï¼éè¦è°ç¨cv_verify_release_feature彿°éæ¾ |
| | | /// @param[out] feature_blob_size ç¹å¾çé¿åº¦ï¼å
å«cv_feature_header_tçé¿åº¦ï¼ä¸cv_feature_header_t->lenä¸è´ |
| | | /// @return æåè¿åCV_OKï¼å¦åè¿åé误类å |
| | | CV_SDK_API |
| | | cv_result_t |
| | | cv_verify_get_feature( |
| | | cv_handle_t verify_handle, |
| | | const unsigned char *image, |
| | | cv_pixel_format pixel_format, |
| | | int image_width, |
| | | int image_height, |
| | | int image_stride, |
| | | const cv_face_t *face, |
| | | cv_feature_t **p_feature, |
| | | unsigned int *feature_blob_size |
| | | ); |
| | | |
| | | /// @brief ç¹å¾ä¿¡æ¯ç¼ç æå符串ï¼ç¼ç åçå符串ç¨äºä¿å |
| | | /// @param[in] feature è¾å
¥çç¹å¾ä¿¡æ¯ |
| | | /// @param[out] feature_str è¾åºçç¼ç åçå符串,ç±ç¨æ·åé
åéæ¾ |
| | | /// @return æåè¿åCV_OKï¼å¦åè¿åé误类å |
| | | CV_SDK_API |
| | | cv_result_t |
| | | cv_verify_serialize_feature( |
| | | const cv_feature_t *feature, |
| | | char *feature_str |
| | | ); |
| | | |
| | | |
| | | /// @brief è§£ç å符串æç¹å¾ä¿¡æ¯ |
| | | /// @param[in] feature_str è¾å
¥çå¾
è§£ç çå符串ï¼apiè´è´£åé
å
åï¼éè¦è°ç¨cv_verify_release_featureéæ¾ |
| | | /// @return è¿åè§£ç åçfeature, éè¦ç¨æ·ä½¿ç¨ cv_common_feature_release() éæ¾ |
| | | CV_SDK_API |
| | | cv_feature_t * |
| | | cv_verify_deserialize_feature( |
| | | const char *feature_str |
| | | ); |
| | | |
| | | /// @brief 人è¸éªè¯ |
| | | /// @param[in] verify_handle å·²åå§åç人è¸éªè¯å¥æ |
| | | /// @param[in] feature1 第ä¸å¼ 人è¸ç¹å¾ä¿¡æ¯ |
| | | /// @param[in] feature2 第äºå¼ 人è¸ç¹å¾ä¿¡æ¯ |
| | | /// @param[out] score 人è¸éªè¯ç¸ä¼¼åº¦å¾åï¼èå´0-1ï¼å¾åè¶æ¥è¿1è¶ç¸ä¼¼ |
| | | /// @return æåè¿åCV_OKï¼å¦åè¿åé误类å |
| | | CV_SDK_API |
| | | cv_result_t |
| | | cv_verify_compare_feature( |
| | | cv_handle_t verify_handle, |
| | | const cv_feature_t *feature1, |
| | | const cv_feature_t *feature2, |
| | | float *score |
| | | ); |
| | | |
| | | /// @brief éæ¾æå人è¸ç¹å¾æ¶åé
çç©ºé´ |
| | | /// @param[in] feature æåå°ç人è¸ç¹å¾ä¿¡æ¯ |
| | | CV_SDK_API |
| | | void |
| | | cv_verify_release_feature( |
| | | cv_feature_t *feature |
| | | ); |
| | | |
| | | /// @} |
| | | |
| | | |
| | | /// @defgroup cvface_search cvface search |
| | | /// @brief face searching interfaces |
| | | /// |
| | | /// This set of interfaces processing face search routines. |
| | | /// |
| | | /// @{ |
| | | |
| | | /// @defgroup cvface_database cvface database for search |
| | | /// @ingroup cvface_search |
| | | /// @brief face database CURD interfaces for face searching |
| | | /// @{ |
| | | |
| | | /// @brief åå»ºäººè¸æ°æ®åºå¥æ |
| | | /// @handle[out] æåæ¶åè®¾ç½®ä¸ºäººè¸æ°æ®åºå¥æ |
| | | /// @return[in] æåè¿åCV_OKï¼å¦åè¿åé误类å |
| | | CV_SDK_API |
| | | cv_result_t |
| | | cv_verify_create_db(cv_handle_t *handle); |
| | | |
| | | /// @brief 鿝已åå§åçäººè¸æ°æ®åºå¥æ |
| | | /// @param[in] db_handle å·²åå§åçäººè¸æ°æ®åºå¥æ |
| | | CV_SDK_API |
| | | void |
| | | cv_verify_destroy_db( |
| | | cv_handle_t db_handle |
| | | ); |
| | | |
| | | /// @brief äººè¸æ°æ®åºå¢å æ°æ® |
| | | /// @param[in] db_handle å·²åå§åçäººè¸æ°æ®åºå¥æ |
| | | /// @param[in] items ç¨äºåå»ºæ°æ®åºç人è¸ç¹å¾ä¿¡æ¯æ°ç» |
| | | /// @param[in] item_count ç¹å¾ä¿¡æ¯æ°é |
| | | /// @return æåè¿åCV_OKï¼å¦åè¿åé误类å |
| | | CV_SDK_API |
| | | cv_result_t |
| | | cv_verify_build_db( |
| | | cv_handle_t db_handle, |
| | | cv_feature_t* const *items, |
| | | unsigned int item_count |
| | | ); |
| | | |
| | | /// @brief äººè¸æ°æ®åºå¢å æ°æ® |
| | | /// @param[in] db_handle å·²åå§åçäººè¸æ°æ®åºå¥æ |
| | | /// @param[in] item å¾
å å
¥ç人è¸ç¹å¾ä¿¡æ¯ |
| | | /// @param[out] idx å å
¥åçäººè¸æ°æ®åºç´¢å¼å¼ |
| | | /// @return æåè¿åCV_OKï¼å¦åè¿åé误类å |
| | | CV_SDK_API |
| | | cv_result_t |
| | | cv_verify_add_face( |
| | | cv_handle_t db_handle, |
| | | const cv_feature_t *item, |
| | | int *idx |
| | | ); |
| | | |
| | | /// @brief äººè¸æ°æ®åºå 餿°æ® |
| | | /// @param[in] db_handle å·²åå§åçäººè¸æ°æ®åºå¥æ |
| | | /// @param[in] idx å¾
å é¤çäººè¸æ°æ®åºç´¢å¼å¼(ä¸å å
¥æ¶ä¸è´) |
| | | /// @return æåè¿åCV_OKï¼å¦åè¿åé误类å |
| | | CV_SDK_API |
| | | cv_result_t |
| | | cv_verify_delete_face( |
| | | cv_handle_t db_handle, |
| | | int idx |
| | | ); |
| | | |
| | | /// @brief å°äººè¸æ°æ®åºä¿¡æ¯ä¿åä¸ºæ°æ®åºæä»¶ |
| | | /// @param[in] db_handle å·²åå§åçäººè¸æ°æ®åºå¥æ |
| | | /// @param[in] db_path äººè¸æ°æ®åºä¿åæä»¶çè·¯å¾ |
| | | /// @return æåè¿åCV_OKï¼å¦åè¿åé误类å |
| | | CV_SDK_API |
| | | cv_result_t |
| | | cv_verify_save_db( |
| | | cv_handle_t db_handle, |
| | | const char *db_path |
| | | ); |
| | | |
| | | /// @brief å è½½äººè¸æ°æ®åºæä»¶ |
| | | /// @param[in] db_handle å·²åå§åçäººè¸æ°æ®åºå¥æ |
| | | /// @param[in] db_path äººè¸æ°æ®åºä¿åæä»¶çè·¯å¾ |
| | | /// @return æåè¿åCV_OKï¼å¦åè¿åé误类å |
| | | CV_SDK_API |
| | | cv_result_t |
| | | cv_verify_load_db( |
| | | cv_handle_t db_handle, |
| | | const char *db_path |
| | | ); |
| | | |
| | | /// @} |
| | | |
| | | /// @brief æç´¢äººè¸æ°æ®åº |
| | | /// @param[in] verify_handle å·²åå§åç人è¸éªè¯å¥æ |
| | | /// @param[in] db_handle å·²åå§åçäººè¸æ°æ®åºå¥æ |
| | | /// @param[in] query å¾
æç´¢ç人è¸ç¹å¾ä¿¡æ¯ |
| | | /// @param[in] top_k æå¤§çäººè¸æç´¢æ°é |
| | | /// @param[out] top_idxs æç´¢å°çäººè¸æ°æ®åºç´¢å¼å¼æ°ç»(ç±ç¨æ·åé
åéæ¾) |
| | | /// @param[out] top_scores æç´¢å°ç人è¸ç¸ä¼¼åº¦å¾åæ°ç»(ç±ç¨æ·åé
åéæ¾)ï¼èå´0-1ï¼å¾åè¶æ¥è¿1è¶ç¸ä¼¼ |
| | | /// @param result_length å®é
æç´¢å°çäººè¸æ°é |
| | | /// @return æåè¿åCV_OKï¼å¦åè¿åé误类å |
| | | CV_SDK_API |
| | | cv_result_t |
| | | cv_verify_search_face( |
| | | cv_handle_t verify_handle, |
| | | cv_handle_t db_handle, |
| | | const cv_feature_t *query, |
| | | unsigned int top_k, |
| | | int *top_idxs, |
| | | float *top_scores, |
| | | unsigned int *result_length |
| | | ); |
| | | |
| | | /// @brief ä»ä¸ç»ç¹å¾æ°ç»ä¸æç´¢äººè¸ |
| | | /// @param[in] verify_handle å·²åå§åç人è¸éªè¯å¥æ |
| | | /// @param[in] list_feature 人è¸ç¹å¾ä¿¡æ¯æ°ç» |
| | | /// @param[in] list_count 人è¸ç¹å¾ä¿¡æ¯æ°é |
| | | /// @param[in] query å¾
æç´¢ç人è¸ç¹å¾ä¿¡æ¯ |
| | | /// @param[in] top_k æå¤§çäººè¸æç´¢æ°é |
| | | /// @param[out] top_idxs æç´¢å°çäººè¸æ°æ®åºç´¢å¼å¼æ°ç»(ç±ç¨æ·åé
åéæ¾) |
| | | /// @param[out] top_scores æç´¢å°ç人è¸ç¸ä¼¼åº¦å¾åæ°ç»(ç±ç¨æ·åé
åéæ¾)ï¼èå´0-1ï¼å¾åè¶æ¥è¿1è¶ç¸ä¼¼ |
| | | /// @param[out] result_length å®é
æç´¢å°çäººè¸æ°é |
| | | /// @return æåè¿åCV_OKï¼å¦åè¿åé误类å |
| | | CV_SDK_API |
| | | cv_result_t |
| | | cv_verify_search_face_from_list( |
| | | cv_handle_t verify_handle, |
| | | cv_feature_t* const *list_feature, |
| | | int list_count, |
| | | const cv_feature_t *query, |
| | | unsigned int top_k, |
| | | int *top_idxs, |
| | | float *top_scores, |
| | | unsigned int *result_length |
| | | ); |
| | | |
| | | /// @} |
| | | |
| | | |
| | | /// @defgroup cvface_group cvface group |
| | | /// @brief face grouping interfaces |
| | | /// |
| | | /// This set of interfaces processing face grouping routines. |
| | | /// |
| | | /// @{ |
| | | |
| | | |
| | | /// @brief æ¹é人è¸åç» |
| | | /// @param[in] verify_handle å·²åå§åç人è¸éªè¯å¥æ |
| | | /// @param[in] features 人è¸ç¹å¾ä¿¡æ¯æ°ç» |
| | | /// @param[in] feature_count 人è¸ç¹å¾ä¿¡æ¯æ°é |
| | | /// @param[out] p_groups_array åç»ç»æï¼index对åºfeaturesçindexï¼p_groups_array[0]表示index为0çfeature对åºçåç»ï¼å
åç±ç¨æ·ç®¡çï¼p_groups_array大å°ä¸feature_countä¸è´ |
| | | /// @param[out] group_count åç»çç»æ°ï¼éç¨æ·åå§å为0 |
| | | /// @return æåè¿åCV_OKï¼å¦åè¿åé误类å |
| | | CV_SDK_API |
| | | cv_result_t |
| | | cv_verify_grouping( |
| | | cv_handle_t verify_handle, |
| | | const cv_feature_t * const *features, |
| | | unsigned int feature_count, |
| | | unsigned int *p_groups_array, |
| | | unsigned int *groups_count |
| | | ); |
| | | |
| | | /// @brief åå§åç¹å¾æ°ç»ç»æ |
| | | /// @param[in] p_groups_array ç¹å¾åç»ç»æåå¨å°å |
| | | /// @param[in] feature_count ç¹å¾æ°ç»é¿åº¦ |
| | | CV_SDK_API |
| | | void |
| | | cv_verify_initialize_labels( |
| | | unsigned int *p_groups_array, |
| | | unsigned int feature_count |
| | | ); |
| | | |
| | | /// @} |
| | | |
| | | |
| | | /// @defgroup cvface_group cvface group |
| | | /// @brief face grouping interfaces |
| | | /// |
| | | /// This set of interfaces processing face grouping routines. |
| | | /// |
| | | /// @{ |
| | | |
| | | /// @brief å建ç¹å¾èç±»å¥æ |
| | | /// @param[out] handle è¾åºå·²åå§åçç¹å¾èç±»å¥ææå¨å°å |
| | | /// @param[in] model è½½å
¥ç模åè·¯å¾ |
| | | /// @return æåè¿åCV_OK, å¦åè¿åéè¯¯ä¿¡æ¯ |
| | | CV_SDK_API |
| | | cv_result_t |
| | | cv_face_create_clustering( |
| | | cv_handle_t *clustering_handle, |
| | | const char* model_path |
| | | ); |
| | | |
| | | /// @brief ç¹å¾èç±»ï¼å
å«å¢éèç±»ï¼ |
| | | /// @param[in] handle å·²åå§åçç¹å¾èç±»å¥æ |
| | | /// @param[in] features å¾
èç±»çç¹å¾æ°ç» |
| | | /// @param[out] labels ç±»å«æ°ç», 0表示éè¦éæ°èç±»ï¼1表示æ¯åå¼ äººè¸ï¼å½äººè¸æ°é大äºçäº2æ¯æä¼åç¬åç»ï¼ï¼2表示åªé³ï¼æ¨¡ç³ãä¾§è¸ã䏿¯äººè¸çï¼ï¼3åå
¶ä»¥ä¸è¡¨ç¤ºå®é
åç±»ç»æ |
| | | /// @param[out] size ç¹å¾åç±»å«çæ°é |
| | | /// @return æåè¿åCV_OK, å¦åè¿åé误类å |
| | | CV_SDK_API |
| | | cv_result_t |
| | | cv_face_clustering( |
| | | cv_handle_t clustering_handle, |
| | | const cv_feature_t * const *features, |
| | | unsigned int *labels, |
| | | int size |
| | | ); |
| | | |
| | | |
| | | /// @brief 鿝已åå§åçç¹å¾èç±»å¥æ |
| | | /// @param[in] handle å·²åå§åçç¹å¾èç±»å¥æ |
| | | CV_SDK_API |
| | | void |
| | | cv_face_clustering_destroy( |
| | | cv_handle_t clustering_handle |
| | | ); |
| | | |
| | | /// @} |
| | | |
| | | |
| | | #endif // INCLUDE_CVFACE_API_CV_FACE_H_ |