1.ROCKX-SDK是什么

Rockx-sdk是基于rk系列(包括: RV1126/RV1109、RK3399/RK3568)的一套AI组件。开发者可以使用ROCKX的AI组件快速搭建AI的应用,这些应用可以是车牌识别、人脸识别、目标识别,人体骨骼识别等等,具体的如上图。我们本章节的内容主要是讲解rockx的人脸识别、人脸检测模块。

2.ROCKX-SDK版本

上面目录有很多个版本的ROCKX-SDK, 这个SDK主要是包含不同类型的识别模型 , 我们来一一来进行解释:

2.1. rockx-data

rockx-data是通用的版本,就是所有的芯片都可以用到这个模型类型

2.1.1. carplate_align.data车牌对齐模型,主要是用在车牌图像的矫正

2.1.2. carplate_detection.data:车牌检测模型,主要是用于图像中的车牌图像的检测

2.1.3. carplate_recognition.data:车牌识别模型,主要是用于图像中的车牌图像的识别

2.1.4. face_attribute.data人脸属性模型,主要是用于人脸属性的输出

2.1.5. face_detection.data人脸检测模型,主要是用于人脸的检测

2.1.6. face_landmark5.data人脸关键点检测,landmark5指的是5点面部标识,包括:额头、两边的面颊、鼻尖、下巴

2.1.7. face_landmarks68.data人脸关键点检测,landmark68指的是68点面部标识,包括:眉毛、眼睛、鼻子、嘴巴一共51个关键点,轮廓关键点17

2.1.8. face_liveness_2d.data人脸活体检测模型,主要是检测人脸是否是活人

2.1.9. face_recognition.data人脸识别模型,主要是判断两个人脸的特征值是否是同一个人

2.1.10.head_detection.data头部检测模型,主要是判断人的头部

2.1.11.object_detection.data物体检测模型,判断当前图像的物体是什么,object_detection的底层是用rknn进行人工智能的训练

2.1.12.pose_body.data人体姿态检测模型,人体姿态指的是将图片中已检测到的人体关键点正确连接起来,并正确估计人体的姿态。人体的姿态一般如:肩、颈、腰、膝盖等

2.1.13.pose_finger.data人体手指检测模型,主要是检测手指的关键点。

2.1.14.pose_hand.data人体手势识别。

2.2.rockx-data-rv1109

rockx-data-rv1109rv1126/rv1109芯片适配的AI模型

2.2.1.body_detection.data:人体检测模型,主要是判断目前物体是否是人

2.2.2.body_mask:口罩检测模型,判断目前人是否带口罩

2.2.3. carplate_align.data车牌对齐模型,主要是用在车牌图像的矫正

2.2.4. carplate_detection.data车牌检测模型,主要是用于图像中的车牌图像的检测

2.2.5. carplate_recognition.data车牌识别模型,主要是用于图像中的车牌图像的识别

2.2.6. face_attribute.data人脸属性模型,主要是用于人脸属性的输出

2.2.7.face_detection_v2.data人脸检测模型V2V2指的是Version2。它主要运用在人脸的检测

2.2.8.face_detection_v2_horizontal.data人脸水平位置检测V2V2指的是Version2。它主要运用在人脸的水平位置检测,就是图像位置只能是水平位置。

2.2.9.face_detection_v3.data人脸检测模型V3V3指的是Version3。它主要运用在人脸检测,Version3的人脸检测精确度比Version3更加精确。

2.2.10.face_detection_v3_fast.data人脸检测模型V3V3指的是Version3。它主要运用在人脸检测,Version3的人脸检测精确度比Version3更加精确,fast指的是精简版意思它的人脸检测的模型比较少。

2.2.11. face_detection_v3_large.data人脸检测模型V3V3指的是Version3。它主要运用在人脸检测,Version3的人脸检测精确度比Version3更加精确,large指的是加强版它提供的人脸检测模型比v3v3_fast都要全面。

2.2.11. face_landmark5.data人脸关键点检测,landmark5指的是5点面部标识,包括:额头、两边的面颊、鼻尖、下巴

2.2.12. face_landmarks68.data人脸关键点检测,landmark68指的是68点面部标识,包括:眉毛、眼睛、鼻子、嘴巴一共51个关键点,轮廓关键点17

2.2.13. face_mask_classify.data口罩分类检测,检测当前口罩是什么类型

2.2.14. face_masks_detection.data检测当前人是否戴口罩

2.2.15. face_recognition.data人脸识别模型,主要是判断两个人脸的特征值是否是同一个人

2.2.16. head_detection.data头部检测模型,主要是判断人的头部

2.2.17. head_detection_v2_640X480.data头部检测模型,它只能检测640 * 480的视频图像

2.2.18. object_detection.data物体检测模型,判断当前图像的物体是什么,object_detection的底层是用rknn进行人工智能的训练

2.2.19. person_detection_v2.data人体检测模型,判断当前的视频或者图像有无行人,V2指的是Version2版本。

2.2.19. person_detection_v3.data人体检测模型,判断当前的视频或者图像有无行人,V3指的是Version3版本。V3的行人检测精确度要比Version2要高不少

2.2.19. pose_body.data人体姿态检测模型,人体姿态指的是将图片中已检测到的人体关键点正确连接起来,并正确估计人体的姿态。人体的姿态一般如:肩、颈、腰、膝盖等

2.2.20. pose_body_v2.data人体姿态检测模型,人体姿态指的是将图片中已检测到的人体关键点正确连接起来,并正确估计人体的姿态,人体的姿态一般如:肩、颈、腰、膝盖等。V2指的是Version2,它的精确度要比pose_body.data要高。

2.2.21.pose_finger.data人体手指检测模型,主要是检测手指的关键点。

2.2.22.pose_hand.data人体手势识别。

2.3.rockx-rk1806-Linux

这里主要是放rk1806的动态库和头文件include

2.3.1. lib文件夹:

librknn_api.sorknn的动态库

librockx.sorockx的动态库

注意:在开发中,通常需要把librknn_api.solibrockx.so放在同一个目录下,rockx的功能才会正常

2.3.2.include文件夹

rockx.hrockx的创建和销毁的API函数的头文件

rockx_type.hrockx类型的头文件定义,包括像素类型、数据类型等

2.3.2.1. modules文件夹

carplate.h车牌识别的头文件

face.h人脸识别检测相关的头文件

object_detection.h物体检测的头文件

object_track.h物体追踪的头文件

pose.h姿态相关的头文件

2.3.2.2. utils文件夹

rockx_config_util.hrockx配置相关的头文件

rockx_image_util.hrockx跟图像处理相关的头文件

rockx_tensor_util.hrockxtensor相关的头文件

2.4.rockx-rk1808-Linux

这里主要是放rk1808的动态库和头文件include

2.4.1.lib64文件夹

librknn_api.sorknn的动态库

librockx.sorockx的动态库

注意:在开发中,通常需要把librknn_api.solibrockx.so放在同一个目录下,rockx的功能才会正常

2.4.2.include文件夹

rockx.hrockx的创建和销毁的API函数的头文件

rockx_type.hrockx类型的头文件定义,包括像素类型、数据类型等

2.4.2.1. modules文件夹

carplate.h车牌识别的头文件

face.h人脸识别检测相关的头文件

object_detection.h物体检测的头文件

object_track.h物体追踪的头文件

pose.h姿态相关的头文件

2.4.2.2. utils文件夹

rockx_config_util.hrockx配置相关的头文件

rockx_image_util.hrockx跟图像处理相关的头文件

rockx_tensor_util.hrockxtensor相关的头文件

2.5.rockx-rk3399pro-Android

这里主要是放rk3399Android动态库和头文件,要注意的是Android版本的动态库分两个,一个是arm64-v8a,另外一个是arm64-v7a

2.5.1. arm64-v8a目录

arm64-v8a第八代64ARM处理器,这个文件夹里面主要是放了librknn_api.solibrockx.so两个动态库。

2.5.2. arm64-v7a目录

arm64-v8a第七代ARM处理器,这个文件夹里面主要是放了librknn_api.solibrockx.so两个动态库。

2.5.3.include目录

2.5.3.1. include文件夹

rockx.hrockx的创建和销毁的API函数的头文件

rockx_type.hrockx类型的头文件定义,包括像素类型、数据类型等

2.5.3.2. modules文件夹

carplate.h车牌识别的头文件
face.h人脸识别检测相关的头文件

object_detection.h物体检测的头文件

object_track.h物体追踪的头文件

pose.h姿态相关的头文件

2.5.3.3. utils文件夹

rockx_config_util.hrockx配置相关的头文件

rockx_image_util.hrockx跟图像处理相关的头文件
rockx_tensor_util.hrockxtensor相关的头文件

2.6.rockx-rk3399pro-Linux

这里主要是放rk3399Linux动态库和头文件。

2.6.1.lib64文件夹

librknn_api.sorknn的动态库

librockx.sorockx的动态库

注意:在开发中,通常需要把librknn_api.solibrockx.so放在同一个目录下,rockx的功能才会正

2.6.2.include文件夹

rockx.hrockx的创建和销毁的API函数的头文件

rockx_type.hrockx类型的头文件定义,包括像素类型、数据类型等

2.6.2.1.modules文件夹

carplate.h车牌识别的头文件

face.h人脸识别检测相关的头文件

object_detection.h物体检测的头文件

object_track.h物体追踪的头文件

pose.h姿态相关的头文件

2.7. rockx-rv1109-Linux

这里主要是放rv1126/rv1109Linux动态库和头文件。

2.7.1. lib文件夹

librknn_api.sorknn的动态库

librockx.sorockx的动态库

注意:在开发中,通常需要把librknn_api.solibrockx.so放在同一个目录下,rockx的功能才会正常

2.7.2. include文件夹

rockx.hrockx的创建和销毁的API函数的头文件

rockx_type.hrockx类型的头文件定义,包括像素类型、数据类型等

2.7.2.1.modules文件夹

bodymask.h身体遮挡的头文件

carplate.h车牌识别的头文件

face.h人脸识别检测相关的头文件

object_detection.h物体检测的头文件

object_track.h物体追踪的头文件

pose.h姿态相关的头文件

2.7.2.2. utils文件夹

rockx_config_util.hrockx配置相关的头文件

rockx_image_util.hrockx跟图像处理相关的头文件

rockx_tensor_util.hrockxtensor相关的头文件

2.8.rockx-x86-64-Linux

这里主要是包含x86-64的瑞芯微动态库和include头文件

2.8.1. lib64文件夹

librknn_api.sorknn的动态库

librockx.sorockx的动态库

npu_transfer_proxynpu是人工智能加速的模块

注意:在开发中,通常需要把librknn_api.solibrockx.so放在同一个目录下,rockx的功能才会正常

2.8.2. include文件夹

rockx.hrockx的创建和销毁的API函数的头文件

rockx_type.hrockx类型的头文件定义,包括像素类型、数据类型等

2.8.2.1.modules文件夹

carplate.h车牌识别的头文件
face.h人脸识别检测相关的头文件

object_detection.h物体检测的头文件

object_track.h物体追踪的头文件

pose.h姿态相关的头文件

2.8.2.2. utils文件夹

rockx_config_util.hrockx配置相关的头文件

rockx_image_util.hrockx跟图像处理相关的头文件

rockx_tensor_util.hrockxtensor相关的头文件

3.把rockx_data的文件夹放到板子的/userdata/里面

上图是要把rockx_data的文件夹放到/usesrdata/里面,这个rockx_data是我经过裁剪后的data模型数据,直接用就可以。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐