Linux48:rockx常用的API

rockx人脸检测使用的API

rockx框架提供了一系列的人脸识别、检测的API,开发者使用它的API能够快速开发出人脸相关的功能。我们来看看在人脸检测中需要用到的API。

1.1 rockx_create 函数的定义

rockx_ret_t rockx_create(rockx_handle_t *handle, rockx_module_t m, void *config, size_t config_size);

函数解释:rockx_create创建rockx的句柄rockx_handle_t rockx_handle_t也是管理整个rockx人脸检测、人脸识别的最重要结构体

**第一个参数:**rockx_handle_t的结构体指针

**第二个参数:**rockx_module_t的结构体,rockx_module_t是一个枚举类型,设置当前rockx的处理类型。具体的如下:

ROCKX_MODULE_FACE_DETECTION **:**人脸检测模块

ROCKX_MODULE_FACE_LANDMARK_68 **:**人脸68个特征点检测

ROCKX_MODULE_FACE_RECOGNIZE **:**人脸识别模块

ROCKX_MODULE_FACE_ANALYZE 人脸分析模块

ROCKX_MODULE_OBJECT_DETECTION **:**目标检测模块

ROCKX_MODULE_POSE_BODY 人体姿态检测模块,14个关键点

ROCKX_MODULE_POSE_FINGER_21 **:**手指检测模块,21个关键点

ROCKX_MODULE_FACE_LANDMARK_5 **:**人脸5个特征点检测

ROCKX_MODULE_HEAD_DETECTION 人体头部检测模块

ROCKX_MODULE_CARPLATE_DETECTION 车牌检测模块

ROCKX_MODULE_CARPLATE_ALIGN **:**车牌对齐模块

ROCKX_MODULE_CARPLATE_RECOG **:**车牌识别模块

ROCKX_MODULE_OBJECT_TRACK **:**物体追踪模块

ROCKX_MODULE_POSE_FINGER_3 **:**手指检测模块, 支持3个关键点

ROCKX_MODULE_FACE_MASKS_DETECTION **:**人脸口罩检测,检测这个人是否戴口罩

ROCKX_MODULE_FACE_DETECTION_V2 **:**人脸检测模块,Version2版本

ROCKX_MODULE_BODY_MASK 人体身体遮挡检测,主要是检测当前人体是否有遮挡物

ROCKX_MODULE_POSE_BODY_V2 **:**人体姿态检测,V2是Version2,最多能够检测17个关键点

ROCKX_MODULE_FACE_DETECTION_V3 **:**人脸检测模块,V3是Version3,它只能检测320 * 320的人脸

ROCKX_MODULE_FACE_DETECTION_V3_LARGE **:**人脸检测模块加强版,V3是Version3,Large能够检测640 * 640的人脸

ROCKX_MODULE_PERSON_DETECTION **:**行人检测模块,主要是检测当前图像中是否有行人

ROCKX_MODULE_FACE_LANDMARK_106 **:**人脸关键点检测模型,总共能检测出106个关键点

ROCKX_MODULE_FACE_BEAUTY **:**人脸漂亮指数检测模型,主要是检测人的漂亮指数是多少

ROCKX_MODULE_FACE_SMILE_DETECT **:**人脸微笑检测模型,检测当前人是否微笑

ROCKX_MODULE_FACE_MASK_CLASSIFIER **:**人脸口罩分类检测模型,主要是检测当前口罩的类型是什么

ROCKX_MODULE_PERSON_DETECTION_V2 行人检测模型**,**V2是Version2,它只能检测532 * 320的行人图像

ROCKX_MODULE_PERSON_DETECTION_V3 **:**行人检测模型,V3是Version3,它可以检测多尺寸的行人图像

**第三个参数:**rockx_config_t结构体指针,主要是配置rockx的基本参数,它的创建是用rockx_add_config来创建

**第四个参数:**config_size,默认是0就可以

1.2 rockx_add_config 函数的定义

rockx_ret_t rockx_add_config(rockx_config_t *config, const char *key, const char *value);

**函数解释:**添加rockx的config配置

第一个参数:rockx_config_t 结构体指针,rockx_config_t的创建是用rockx_create_config来分配,如:rockx_config_t *config = rockx_create_config();

第二个参数:config的key, 最常见的KEY是ROCKX_CONFIG_DATA_PATH(ROCKX 的配置路径 )

第三个参数:config的value, 跟Key一一对应, 比方说Key是ROCKX_CONFIG_DATA_PATH, 那它的value就是对应的rockx的具体路径,如**:/userdata/rockx_data/**

示例:

rockx_config_t *config = rockx_create_config();

rockx_add_config(config, ROCKX_CONFIG_DATA_PATH, "/userdata/rockx_data/");

1.3 rockx_face_detect 函数的定义

函数解释:这个 API 主要是对人脸进行检测,得到人脸检测的位置信息

rockx_ret_t rockx_face_detect(rockx_handle_t handle, rockx_image_t *in_img, rockx_object_array_t *face_array, rockx_async_callback *callback);

第一个参数:rockx_handle_t的结构体

第二个参数:rockx_image_t的结构体指针,这个是输入的图像,需要检测的图像,也可以是每一帧视频流。

第三个参数:rockx_object_array_t的结构体指针,主要是输出检测结果,这个检测结果的结构体如下:

count **:**检测的人脸数量

rockx_object_t **:**检测的具体信息,具体的成员变量如下:

id **:**object的id号

cls_idx **:**object的index索引

box **:**rockx的区域信息,rockx_rect_t结构体。

left **:**区域左边缘的x坐标,其实就是x轴数据

**top:**区域顶的y坐标,其实就是Y轴数据

right **:**区域右边缘的x坐标,其实就是left + width

bottom **:**区域底的Y坐标,其实就是 top + height

score object物体信任分数

第四个参数:config_size **,**默认是0就可以

1.4 rockx_face_recognize 函数的定义

函数定义:这个 API 主要是对人脸进行识别,并提取人脸数据

rockx_ret_t rockx_face_recognize(rockx_handle_t handle, rockx_image_t *in_img, rockx_face_feature_t *out_feature);

第一个参数:rockx_handle_t的结构体

第二个参数:rockx_image_t的结构体指针,这个是输入的图像,需要检测的图像,也可以是每一帧视频流。

第三个参数:rockx_face_feature_t 的结构体指针,rockx_face_feature_t结构体主要是存储人脸的特征值和长度,我们来看看这个结构体的组成

version:人脸识别版本

len:人脸识别的长度

feature512:人脸识别的数据,512的float数组,这个值是存储一个二进制数据

​​​​​​​1.5 rockx_face_feature_similarity 函数的定义

函数的定义:这个 API 主要是对比两个人脸,并计算两个人脸的对比数值

rockx_ret_t rockx_face_feature_similarity(rockx_face_feature_t *in_feature1, rockx_face_feature_t *in_feature2, float *out_similarity);

**第一个参数:**in_feature1,需要对比的人脸特征值1

**第一个参数:**in_feature2,需要对比的人脸特征值2

**第三个参数:**in_feature1和in_feature2对比的相似度值,一般小于1.0可以判断为同一个人

​​​​​​​1.6 rockx_face_align 函数的定义

函数的定义:这个API主要是对目前检测的人脸进行对齐,这个对齐一般是用face_landmark检测人脸关键点进行对齐

rockx_ret_t rockx_face_align(rockx_handle_t handle, rockx_image_t *in_img, rockx_rect_t *in_box, rockx_face_landmark_t *in_landmark, rockx_image_t *out_img);

第一个参数: rockx_handle_t的结构体

第二个参数: in_img输入的图像

第三个参数: in_box是人脸检测的区域,用矩形来表示,我们来看看rockx_rect_t的结构体成员变量

left:表示矩形左边缘的X坐标。

top:表示矩形顶部的y坐标

right:表示矩形右边缘的x坐标

bottom:表示矩形底部的y坐标。

**第四个参数:**rockx_face_landmark_t 的结构体指针,主要是检测人脸关键点,我们来看看这个结构体的成员变量

image_width:图像的长度

image_height:图像的高度

face_box:人脸的检测区域,用矩形表示

landmarks_count:关键点个数

landmarks128:具体的人脸关键点,rockx_point_t来表示,它本质上就是x,y的点

score:每个关键点的分数

第五个参数:out_img输出的图像,经过人脸对齐后的图像

​​​​​​​1.7 rockx_face_filter 函数的定义

函数的定义:这个 API 主要是过滤人脸,过滤图像中不符合人脸的图像

rockx_ret_t rockx_face_filter(rockx_handle_t handle, rockx_image_t *in_img, rockx_rect_t *in_box, int *is_false_face);

第一个参数:rockx_handle_t的结构体

第二个参数:in_img是输入的图像

第三个参数:in_box人脸检测区域,是一个矩形

第四个参数:is_falas_face判断当前检测的图像是否是人脸,是人脸就等于true,否则false

​​​​​​​1.8 rockx_face_masks_detect 函数的定义

函数解释:这个 API 主要是检测当前人脸是否有戴口罩

rockx_ret_t rockx_face_masks_detect(rockx_handle_t handle, rockx_image_t *in_img, rockx_face_mask_array_t *face_mask_array, rockx_async_callback *callback);

第一个参数:rockx_handle_t的结构体

第二个参数:in_img是输入的图像

第三个参数:face_mask_array 存放口罩的数据,我们来看看这个结构体的数据

第一个参数: count **,**口罩的数量

第二个参数: rockx_face_mask_t,具体的口罩参数,如下图

**第一个参数:**face_box是口罩的区域,用矩形表示

**第二个参数:**mask_score,口罩的分数

**第三个参数:**hasMask,是否有戴口罩

相关推荐
weixin_468466855 小时前
大语言模型原理新手入门指南
人工智能·python·算法·语言模型·自然语言处理·transformer·注意力机制
SEO_juper5 小时前
“不可替代内容”=GEO 核心:AI 抄不走的经验、数据、案例
大数据·人工智能·seo·geo·谷歌优化·2026·谷歌算法更新
慧一居士5 小时前
Codex 使用海外模型GPT 和国内模型DeepSeek 的区别
人工智能
superantwmhsxx5 小时前
GPT-5.5:面向下一代智能应用的技术展望
大数据·人工智能·gpt
yubo05095 小时前
计算机视觉第四课:寻找轮廓(自动框出所有物体)
人工智能·opencv·计算机视觉
IT_陈寒5 小时前
React hooks闭包陷阱把我坑惨了,原来这才是正确用法
前端·人工智能·后端
fie88895 小时前
近红外与可见光图像融合的ICA变换:原理、实现与应用
图像处理·人工智能·计算机视觉
weixin_468466855 小时前
Crawl4Ai 智能数据采集与场景化应用指南
大数据·人工智能·爬虫·python·数据分析
塔能物联运维5 小时前
不止降温,更要稳温:两相液冷,精准控温决定算力兑换效率
人工智能
涛思数据(TDengine)5 小时前
TDengine IDMP 1.0.18 上线:MCP、CLI、过程分析与可视化能力持续升级
大数据·人工智能·tdengine