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,是否有戴口罩

相关推荐
国科安芯4 小时前
四重证据,一条逻辑链:商业航天级微控制器MCU抗辐射验证方法学综述——以国科安芯AS32S601为例
人工智能·单片机·嵌入式硬件·mcu·安全·抗辐射
dk_tjy4 小时前
AI驱动的自动化攻击背景下:企业端点安全体系的技术架构与建设路径
网络·人工智能·安全·自动化·终端安全管理·数据防泄漏
布吉岛的石头4 小时前
Java 程序员第 50 阶段2:预训练的目标函数:自回归语言建模本质
java·开发语言·人工智能·深度学习·回归·transformer
2601_965454235 小时前
用AI把开源项目功能清单做成MG动画介绍视频
人工智能·开源·音视频
风雅GW5 小时前
局域网访问为何少一半配置页:DSH 的安全边界设计复盘
人工智能
衡石科技5 小时前
同一句业务问题,怎样持续问对数?衡石 ChatBI 的语义准备与回归验证
人工智能·数据挖掘·回归·chatbi
新新学长搞科研5 小时前
【会议征稿 | 杭州站】第七届机器学习与计算机应用国际学术会议 (ICMLCA 2026)
人工智能·机器学习·计算机
找方案5 小时前
从用户画像到智能定价:81页方案拆解“大数据决策与支撑平台”怎么落地
大数据·人工智能·数据分析·智慧城市·用户画像
紧跟先前的步伐5 小时前
Go AI Agent 实战 05|Temperature 与生成参数:让模型输出可控
java·人工智能·golang
一只爱撸猫的程序猿5 小时前
我让 Agent 干活,自己只做审核:一个真实项目的六次"人审拦截"
人工智能