[具身智能-635]:vio_capture  srcampy 完整对比详解(D-Robotics RDK X3/X5)
vio_capture srcampy 完整对比详解D-Robotics RDK X3/X5前置基础VIO Video Input/Output地瓜 RDK 平台视频输入输出子系统管理MIPI CSI ISP、图像缩放、数据流通路、HDMI 显示、硬件编码。两者底层共用同一套内核 VIO 驱动只是上层 Python 封装两套 API。底层驱动模块名字就叫vio_capture这也是命名源头。一、总体演进路线plaintext早期SDKvio_capture单纯采集接口 ↓ 新版SDKlibsrcampy(srcampy)【一体化多媒体套件】 底层不变VIO驱动 AMP多媒体流水线官方现状✅srcampy 作为新项目标准推荐FCOS MIPI Demo 采用⚠️ vio_capture 仅做兼容保留不再新增功能。二、vio_capture 详解1. 定位轻量化单一功能采集接口只负责从 MIPI CSI读取图像无显示、无硬件 bind、无 OSD、无编码能力。 导入方式python运行from hobot_vio import vio_capture2. 核心类VioCapture构造参数python运行cap vio_capture.VioCapture( video_index0, # CSI00CSI12 width512, height512, formatnv12 # 仅支持nv12 )常用方法python运行frame cap.read() # 获取 nv12 numpy数组阻塞读取 cap.release() # 释放CSI、ISP资源3. 数据流模型只能配置单路分辨率输出plaintextMIPI Sensor → ISP → 硬件缩放成 [w,h] NV12 → read()给到Python限制同一路 CSI 只能输出一种尺寸图像。 如果你同时想要 512×512AI 推理 1920×1080HDMI 预览vio_capture原生不支持硬件双通路。4. 优点API 极简上手快开销小适合无屏幕、只做后端 AI 运算的设备5. 致命短板不支持 ISP 硬件双路输出没有 HDMI 显示、硬件数据流绑定如果要预览画面Python 必须持续读取大图转发到 Display占用带宽 CPU延迟高不支持 OSD 画框、文字叠加不支持硬件 H.264/H.265 编码。6. 适用场景无头设备无 HDMI 显示器只需要单一分辨率图像做 AI 推理不需要实时预览录像三、srcampylibsrcampy详解全称释义回顾 src图像源 ampAMP 高级多媒体流水线 pypython 绑定python运行try: from hobot_vio import libsrcampy as srcampy except ImportError: from hobot_vio_rdkx5 import libsrcampy as srcampy1. 定位一体化全栈多媒体SDK能力覆盖MIPI 采集 ISP 多路缩放 HDMI 显示 硬件 DMA 数据流绑定 OSD 图层绘图 硬件音视频编码。包含四大核心类srcampy.Camera()摄像头采集srcampy.Display()HDMI 输出、OSD 图层srcampy.Encoder()硬件 H264/H265 编码srcampy.Decoder()硬件码流解码2. Camera 类核心接口open_cam () 【最关键】python运行cam.open_cam(video_index, fps, [w1,w2], [h1,h2], sensor_h, sensor_w)[w1,w2] [h1,h2]ISP 硬件双通路同时输出两路不同分辨率 NV12 图像通路 1小图512×512→ AI 推理通路 2原图1920×1080→ HDMI 预览 硬件同时生成两路CPU 不参与缩放get_img(fmt_id, w, h)python运行img cam.get_img(2, 512, 512)fmt_id2 代表 NV12指定读取哪一路分辨率的图像返回 bytes 裸 buffer可直接np.frombuffer送入 dnn.forward ()close_cam()释放 CSI 通道与 ISP 资源。3. Display 类核心接口python运行disp srcampy.Display() disp.display(layer_id, w, h) # layer0原始视频图层 # layer3OSD透明叠加图层画框、文字OSD 绘图函数set_graph_rect()绘制矩形检测框set_graph_word()绘制文本标签4. 全局超级接口srcampy.bind ()python运行srcampy.bind(cam, disp)硬件 DMA 直通绑定摄像头 ISP 输出大图直接路由到 HDMI图像数据完全不经过 Python 内存。 优势极低延迟、几乎零 CPU 占用。这是 srcampy 相比 vio_capture 最大的杀手锏。5. srcampy 完整流水线FCOS 代码plaintextMIPI CSI0 → ISP ├─通路A1920×1080 NV12 → bind硬件直通HDMI原始画面 └─通路B512×512 NV12 → cam.get_img读取 → BPU FCOS推理 ↳ 推理结果 → Display OSD图层叠加框6. srcampy 适用场景需要 HDMI 实时预览 AI 推理同时运行目标检测任务需要硬件 OSD 绘制框需要多路分辨率、硬件编码录像对画面延迟敏感的机器人视觉项目。四、vio_capture VS srcampy 横向对比总表表格对比项vio_capturesrcampy(libsrcampy)包hobot_vio.vio_capturehobot_vio.libsrcampy产品定位轻量化单纯采集全功能多媒体套件ISP 双路硬件输出❌不支持✅原生支持硬件 bind 直通 HDMI❌无✅支持极低延迟OSD 绘制矩形 / 文字❌无✅Display 图层接口硬件 H264/H265 编码❌无✅Encoder 类支持图像格式仅 NV12仅 NV12CSI 通道编号规则CSI00CSI12CSI00CSI12规则完全一致推荐新项目不推荐仅兼容✅官方标准推荐典型 demo 场景无头设备纯 AI 运算MIPIHDMI 目标检测当前 FCOS 工程五、高频工程坑点1. 互斥占用同一 CSI 通道不能同时打开 vio_capture 和 srcampy.Camera会抢占VIO 驱动打开失败。2. CSI1 通道极易踩错无论两套 APICSI0 → index0CSI1 → index2 不要写 13. vio_capture 无法实现 “预览 推理并行”如果用 vio_capture想要同时预览只能持续读取大图Python 转发CPU 负载上升、延迟明显变大。4. 资源释放程序异常退出不执行release()/close_cam()ISP 锁死需要重启开发板才能重新打开摄像头。六、选型建议直接套用项目需要HDMI 预览 / 检测框 OSD / 录像编码 / 双分辨率直接使用 srcampylibsrcampy设备无显示器只做后端 AI 识别单一分辨率追求代码极简 可选 vio_capture七、最简示例对照vio_capture 极简模板python运行from hobot_vio import vio_capture import numpy as np cap vio_capture.VioCapture(0, 512, 512, nv12) while True: frame cap.read() # dnn forward(frame) cap.release()srcampy 极简模板python运行from hobot_vio_rdkx5 import libsrcampy as srcampy import numpy as np sensor_w, sensor_h 1920,1080 model_w, model_h 512,512 preview_w, preview_h 1920,1080 cam srcampy.Camera() cam.open_cam(0, -1, [model_w, preview_w], [model_h, preview_h], sensor_h, sensor_w) disp srcampy.Display() disp.display(0, preview_w, preview_h) srcampy.bind(cam, disp) disp.display(3, preview_w, preview_h) while True: nv12_buf cam.get_img(2, model_w, model_h) img np.frombuffer(nv12_buf, dtypenp.uint8) # dnn forward(img) cam.close_cam() disp.close()

相关新闻

流式传输引擎:Eino StreamReader 源码拆解(第61篇-E47)

流式传输引擎:Eino StreamReader 源码拆解(第61篇-E47)

系列「企业级 AI Agent 实现拆解」E47 篇,Part 10 生产工程篇第五章。上一篇 讲了 RAG 流水线。这篇往下看底层:LLM 的流式输出在 Eino 内部是怎么流动的——StreamReader 如何实现 fan-out、fan-in、类型转换,以及 Graph 层如何包装它。 读完…

2026/8/13 10:44:09 阅读更多 →
零基础玩转bWAPP靶场(十六):SQL 注入(POST/选择型)

零基础玩转bWAPP靶场(十六):SQL 注入(POST/选择型)

摘要:本文是 bWAPP 靶场系列的第十六篇,聚焦于 SQL Injection (POST/Select)(POST 型下拉选择框 SQL 注入)。页面看起来和第十四篇(GET/Select)一模一样,区别只是请求方式从 GET 变成了 POST。我…

2026/8/15 1:37:33 阅读更多 →
AI开发C语言应用按步走,表达式计算器calc的第十一步,Token 联合体、哈希表满报错、批处理变量赋值

AI开发C语言应用按步走,表达式计算器calc的第十一步,Token 联合体、哈希表满报错、批处理变量赋值

calc11 — Token 联合体、哈希表满报错、批处理变量赋值 1. 概述 本次迭代基于 suggestions.md 中的建议,完成了三项代码改进: Token 联合体 — 将 value 和 name 字段合并为联合体,减少内存占用哈希表满报错 — 变量符号表满时输出错误提示&…

2026/8/8 1:46:01 阅读更多 →

最新新闻

运维常见面试题_05_NFS 与共享存储

运维常见面试题_05_NFS 与共享存储

Q102. NFS v3 和 NFS v4 的主要区别是什么? 1. 是什么:NFS(Network File System)是网络文件共享协议。v3(RFC 1813)是经典的 RPC 版 NFS;v4(RFC 7530,含 v4.1/4.2&#x…

2026/8/16 8:07:38 阅读更多 →
彻底解决VSCode中文乱码:从编码原理到终端配置的完整指南

彻底解决VSCode中文乱码:从编码原理到终端配置的完整指南

1. 项目概述:从一次恼人的乱码说起那天下午,我正在调试一个Python脚本,脚本里需要读取一个包含中文路径的CSV文件。代码逻辑清晰,路径也确认无误,但在VSCode的集成终端里运行后,屏幕上却蹦出了一串熟悉的“…

2026/8/16 8:07:38 阅读更多 →
设置服务器使用ssh密钥登录

设置服务器使用ssh密钥登录

1.再自己的电脑生成公钥和私钥ssh-keygen -t rsa -b 4096 -C "自己的密钥说明可以用于区别密钥"一路返回(不输入密码)就会再本机的.ssh文件夹下(C:\Users\NINGMEI\.ssh)生成两个文件id_rsa和id_rsa.pub2.把id_rsa.pub这…

2026/8/16 8:07:38 阅读更多 →
海康威视五盘位NAS,价格太香别人这么玩?

海康威视五盘位NAS,价格太香别人这么玩?

海康威视五盘位NAS,价格太香别人这么玩? 前两天刷到海康存储上了个新品,五盘位NAS,到手价1600左右。 我反复看了两遍价格,确认不是四盘位,也不是什么阉割版。五盘位,AI私有云,MAGE50…

2026/8/16 8:07:38 阅读更多 →
从文档到演示:用aigcbiye AI PPT重塑你的学术表达

从文档到演示:用aigcbiye AI PPT重塑你的学术表达

在学术世界里,我们常常陷入一个误区:认为一篇优秀的论文或开题报告,其价值就等同于一次成功的演示。然而,现实往往是,一份逻辑严谨、数据详实的文档,在转化为PPT时却变得冗长乏味,让听众昏昏欲睡…

2026/8/16 8:07:38 阅读更多 →
对抗性组合老虎机:动态环境下的高效决策算法与实践

对抗性组合老虎机:动态环境下的高效决策算法与实践

如果你正在构建一个推荐系统、在线广告竞价策略,或者任何需要在一系列不确定的选项中进行持续、动态选择的智能系统,那么“探索与利用”的经典困境一定让你头疼不已。传统的多臂老虎机(Multi-Armed Bandit)模型虽然优雅&#xff0…

2026/8/16 8:06:38 阅读更多 →

日新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/16 0:00:54 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/16 0:00:55 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/16 0:03:55 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/16 0:00:54 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/16 0:00:55 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/16 0:03:55 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/16 6:00:23 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/16 6:00:24 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/16 6:00:27 阅读更多 →