当前位置: 首页 > news >正文

RV1126准备-----RockX的使用

一、Rock-X组件介绍

Rock-X主要是RK官方提供的AI实例,用于给与用户测试使用,使得用户不需要自训练模型和AI算法,通过调用Rock-X的AI接口快速体验AI应用和芯片性能,官方仅仅提供接口并没有全部开源。

SDK中的Rock-X组件:

  • auth目录下存放的是认证相关的文件。
  • ChangeLog.txt存放的是rockx组件的版本更新记录。
  • demo目录下的command_line_demo存放的是rockx组件的c接口例程。
  • doc目录下是开发手册和API介绍。
  • python目录下是python接口的安装包和历程。
  • sdk目录下存放rockx组件的库头文件和模型文件,version文件记录当前组件的版本信息。

Rock-X组件最新资料参考,里面有代码和接口文档参考:
Toybrick-开源社区-人工智能-Rock-X AI组件库1.2.0 SDK发布(C&&Python)


demo目录下的command_line_demo存放的是rockx组件的c接口例程:


模型文件位置: {SDK目录}/external/rockx/sdk/rockx-data-rv1109下:

二、Rock-X的使用

  • 调用流程:
    • 声明句柄:首先需要声明句柄,用于后续操作对应的模块
    • 配置模型路径:指定模型文件的路径,否则模块可能找不到对应模型文件
    • 初始化模块:通过句柄初始化对应模块,指定模块使用的模型文件
    • 调用API:初始化后调用相应API运行模块进行推理
    • 后处理:对推理结果进行处理,如绘制识别框等
    • 释放资源:最后需要释放句柄,避免内存泄漏

正点原子代码实现,参考的是SDK下的command_line_demo,根据车牌识别为例子({SDK目录}/external/rockx/demo/command_line_demo/rockx_carplate_demo):

(1)句柄声明:每一个模块声明一个句柄,rockx_handle_t carplate_det_handle----声明车牌检测模块句柄,carplate_align_handle----声明车牌对齐模块句柄,carplate_recog_handle----声明车牌识别模块句柄

rockx_ret_t ret; rockx_handle_t carplate_det_handle; rockx_handle_t carplate_align_handle; rockx_handle_t carplate_recog_handle;

(2)模型路径配置:char *rockx_data = "/demo/src/rockx_data";指定模型文件路径

(3)通过句柄指定初始化对应模块:

rockx_create(&carplate_det_handle,ROCKX_MODULE_CARPLATE_DETECTION, config, sizeof(rockx_config_t))

(4)通过句柄,调用相应API运行某个模块、进行模型的推理:

rockx_carplate_detect(carplate_det_handle, &input_image, &carplate_array, nullptr); rockx_carplate_align(carplate_align_handle, &input_image, &(max_area.box), &result); rockx_carplate_recognize(carplate_recog_handle, &(result.aligned_image), &recog_result);

(5)后处理,如绘制识别框等

(6)资源释放:释放句柄资源

rockx_destroy(carplate_det_handle); rockx_destroy(carplate_align_handle); rockx_destroy(carplate_recog_handle);

http://www.cnnetsun.cn/news/4323458.html

相关文章:

  • 【Python 多行字符串与三引号】
  • 从C语言到机器码:掌握编译与反汇编的核心原理
  • OpenAI 应用快照指南:锁定模型版本,告别输出漂移
  • 安卓开发环境配置避坑指南
  • 8K电视盒子配置指南:从双频Wi-Fi到蓝牙语音遥控全解析
  • Paperless-ngx 多语言配置:中文 OCR、日期解析与本地化界面的 4 步落地法
  • HyperMesh 12.0前处理实战:几何清理与网格划分完整流程解析
  • Stats 开箱即用:macOS 系统监控工具 DMG 安装全流程
  • MATLAB整车性能仿真指南:参数化建模与批量仿真高效流程
  • 车载NFC技术解析:从原理到Android实现与安全防御
  • 大模型页游开发实战横评:K3/GLM5.2/Fable5/Hy3对比
  • 三极管驱动LED电路设计:NPN低边、PNP高边与基极电阻计算详解
  • Python构建投资实证数据工作流:股息率计算与持仓快照
  • 整车NVH建模与仿真:Hypermesh+Optistruct关键实操指南
  • IT软件行业GEO实战:让AI引擎优先推荐你(附真实案例)
  • 层次分析法(AHP)详解:MATLAB实现、判断矩阵与一致性检验
  • AI盈利拐点背后的技术杠杆:算力成本与单位经济模型
  • 宠物医院管理系统毕业设计:从数据库设计到SSH框架部署全解析
  • Hypermesh入门指南:从几何清理到网格质量检查与节点显示排查
  • 第302篇 策略梯度——从REINFORCE到现代方法
  • 【2】. OpenCode 快速上手
  • 尚硅谷JavaWeb源码拆解:从Servlet到Spring Boot的架构进阶
  • 基于YOLOv8的港口船舶缆绳系泊状态监测系统设计与部署
  • 告别默认手势限制:MediaPipe Model Maker 自定义手势识别模型训练实战
  • Disruptor环形队列为什么比BlockingQueue快?零拷贝+伪共享+缓存行填充
  • C++模板教程:变参模板、折叠表达式与SFINAE
  • langchain入门基础
  • RAG Refresher Notebook:Jupyter 中从零跑通 RAG 实战全链路
  • Minecraft Overlay机制与末地通关测试全解析
  • 基于MATLAB的AGV视觉导航与二维码控制系统解析