[具身智能-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/7/24 14:01:51 阅读更多 →
零基础玩转bWAPP靶场(十六):SQL 注入(POST/选择型)

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

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

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

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

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

2026/7/24 14:01:51 阅读更多 →

最新新闻

大模型接入的认证与计费:多模型供应商的统一网关设计

大模型接入的认证与计费:多模型供应商的统一网关设计

大模型接入的认证与计费:多模型供应商的统一网关设计 一、三个团队各用各的 API Key,月底账单混乱,财务说"分不清谁花了多少钱" 多模型供应商共存的企业场景下(OpenAI Claude 自建 vLLM),接入层…

2026/7/24 14:09:54 阅读更多 →
AI数字内容生产系统:30天打造多平台高效创作流水线

AI数字内容生产系统:30天打造多平台高效创作流水线

1. 项目背景与核心价值去年夏天,我和团队用30天时间完成了一个疯狂的实验:用AI工具搭建完整的数字内容生产系统。这个系统覆盖了公众号运营、小说创作、小红书种草和视频号制作四大场景,实测下来单日最高产出达到47篇原创内容,小红…

2026/7/24 14:09:54 阅读更多 →
OpenClaw 切换 Kimi 系列模型,Moonshot 账号充值与密钥创建(含安装包)

OpenClaw 切换 Kimi 系列模型,Moonshot 账号充值与密钥创建(含安装包)

OpenClaw v2.7.9 接入 Kimi 大模型完整配置教程 接入前必备条件 本地设备完成 OpenClaw v2.7.9 部署,客户端能够正常打开运行;OpenClaw 页面顶部 Gateway 服务保持在线标识;设备网络环境稳定,可正常访问 Moonshot 开放平台&…

2026/7/24 14:09:54 阅读更多 →
8款AI工具助力本科生高效完成毕业论文写作

8款AI工具助力本科生高效完成毕业论文写作

1. 本科生毕业论文写作痛点与AI工具的价值 作为一名经历过本科论文写作的过来人,我深刻理解这个过程中的各种困扰。文献综述找不到方向、数据分析无从下手、格式调整耗时费力...这些问题往往让同学们在毕业季焦头烂额。而如今AI工具的快速发展,确实为我们…

2026/7/24 14:09:54 阅读更多 →
2026年工业级三维扫描仪技术路线全解析:手持式、跟踪式、固定式哪种更适合你

2026年工业级三维扫描仪技术路线全解析:手持式、跟踪式、固定式哪种更适合你

工业三维扫描仪,为何成为制造业数字化的核心工具在全球制造业加速向数字化、智能化转型的大背景下,工业三维扫描仪作为连接物理世界与数字世界的核心测量工具,正迎来前所未有的发展机遇。根据Mordor Intelligence最新发布的行业研究报告&…

2026/7/24 14:09:53 阅读更多 →
TLV320AIC3256硬件DRC配置实战:从原理到寄存器级调优

TLV320AIC3256硬件DRC配置实战:从原理到寄存器级调优

1. 项目概述:TLV320AIC3256中的动态范围压缩(DRC)技术 在音频系统设计,尤其是便携式消费电子设备中,我们常常面临一个经典矛盾:用户希望在小音量下也能听到清晰的细节,但又不想在音乐高潮或突然…

2026/7/24 14:08:53 阅读更多 →

日新闻

用Highcharts 创建可拖拽三维散点立方体3D图表

用Highcharts 创建可拖拽三维散点立方体3D图表

该案例基于Highcharts scatter3d 三维散点图实现空间立方体散点可视化,核心特色:三维 X/Y/Z 三轴空间,所有散点分布在 0~10 立方体空间内;散点使用径向渐变实现立体 3D 圆球质感;支持鼠标 / 触屏拖拽画布,…

2026/7/24 0:00:29 阅读更多 →
AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口 AppCertDlls 位于 HKLM\System\CurrentControlSet\Control\Session Manager\AppCertDlls。本文的程序功能是只读列出这个键在 64 位和 32 位注册表视图中的全部值,并显示每条值的来源、名称、类型和可安全显示的数…

2026/7/24 0:00:29 阅读更多 →
我的编程之路:第一篇博客

我的编程之路:第一篇博客

大家好,我是一名编程初学者,同时这也是我编程学习之路上的第一篇博客。在这里,我想要向大家介绍我的一些想法和规划。a.自我介绍我是一个刚刚接触编程的新手,目前在学习c语言,我对编程世界充满了强烈的好奇。当然&…

2026/7/24 0:00:29 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/24 3:59:20 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/24 1:23:39 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/23 17:49:47 阅读更多 →

月新闻