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:人脸识别的长度

feature[512]:人脸识别的数据,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:关键点个数

landmarks[128]:具体的人脸关键点,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,是否有戴口罩

相关推荐
Agent产品评测局1 小时前
制造业智能装箱规划方案,主流AI产品横向对比测评:2026企业级自动化选型深度指南
运维·人工智能·ai·chatgpt·自动化
格林威1 小时前
Baumer工业相机堡盟相机Chunk功能全解析:如何在图像中嵌入时间戳、编码器值等元数据?
开发语言·人工智能·数码相机·机器学习·计算机视觉·视觉检测·机器视觉
南宫萧幕1 小时前
锂电池二阶 RC 模型仿真实战:从理论解析到 Simulink 闭环搭建全流程
开发语言·人工智能·算法·机器学习
aini_lovee1 小时前
基于特征表示的迁移学习 MATLAB 实现
人工智能·matlab·迁移学习
AIminminHu1 小时前
((AI升级篇)OpenGL渲染与几何内核那点事-(二-1-(14):你的3D查看器,是怎么一步步先试着造个数据工厂,向学会“教”机器人看世界的而努力)
人工智能·3d·机器人
AIDF20261 小时前
【无声音的画像——当深度学习遇上 MFCC标题】
人工智能·深度学习·语音识别
hans汉斯1 小时前
基于LSTM与扩展卡尔曼滤波的无人机机载电子磁干扰补偿研究
开发语言·人工智能·算法·目标检测·lstm·人机交互·无人机
小新同学^O^1 小时前
简单学习--> 神经网络
人工智能·python·神经网络·学习
Raink老师1 小时前
【AI面试临阵磨枪-38】设计一个外卖售后客服 Agent 的工具集与流程
人工智能·ai 面试