[具身智能-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()

相关新闻

TLV320AIC3256音频编解码器:从架构到实战的嵌入式音频设计指南

TLV320AIC3256音频编解码器:从架构到实战的嵌入式音频设计指南

1. 项目概述:为什么选择TLV320AIC3256?在嵌入式音频系统设计里,选型音频编解码器(Codec)是个挺有意思的活儿。你既要考虑音质,又得掂量功耗,还得看它跟主控芯片的配合度,外围电路是不…

2026/7/24 14:03:10阅读更多 →
AI记忆偏差解析与优化方案

AI记忆偏差解析与优化方案

1. 为什么AI总是"记错"你?从技术视角看记忆偏差 上周调试对话系统时,一个用户反复投诉:"这AI怎么老把我当成张先生?我姓王啊!"这让我想起过去半年收到的17起类似反馈。AI的记忆系统就像个总在梦游…

2026/7/24 14:03:10阅读更多 →
大模型调整:从原理到实践的工程指南

大模型调整:从原理到实践的工程指南

1. 为什么我们需要重新认识模型调整?大模型训练常被戏称为"炼丹",这个比喻背后反映的是许多从业者对模型调整过程的误解——把它当作一种神秘且不可控的玄学操作。实际上,现代大模型调整背后有着严谨的数学原理和工程方法。我见过太…

2026/7/24 14:01:10阅读更多 →
C++/CLI桥接技术:封装C动态库为.NET托管组件的完整实践

C++/CLI桥接技术:封装C动态库为.NET托管组件的完整实践

1. 项目概述与核心价值 最近在重构一个遗留的工业控制上位机软件时,遇到了一个典型的“技术债”场景:核心算法库是一个用C语言编写的、经过十几年迭代的CDLL(动态链接库),稳定但接口古老且复杂;新的业务模块…

2026/7/24 15:35:32阅读更多 →
最近发现:GitHub 其实很适合做开发者获客

最近发现:GitHub 其实很适合做开发者获客

很多人一提到“技术营销”,第一反应是写文章、发动态、做投放。 但如果目标用户是开发者,我反而觉得 GitHub 是一个更容易被低估的入口:不是因为它适合发广告,而是因为它适合放“有用的东西”。 比如一个能直接运行的示例仓库&…

2026/7/24 15:35:32阅读更多 →
Claude Tool Search 深度拆解:延迟加载、工具引用和与 Codex 对比

Claude Tool Search 深度拆解:延迟加载、工具引用和与 Codex 对比

Claude Tool Search 解决的不是一个小开关问题,而是 Agent 工具规模化后的上下文管理问题。 导语 Agent 接的工具越多,能力看起来越强。但过了某个点,工具本身会变成噪音。 一个 coding agent 同时接 GitHub、Slack、Jira、Sentry、Grafana…

2026/7/24 15:35:32阅读更多 →
嵌入式RTC日历模式实战:从寄存器配置到低功耗驱动开发

嵌入式RTC日历模式实战:从寄存器配置到低功耗驱动开发

1. 项目概述:从芯片手册到可运行的代码 在嵌入式开发中,实时时钟(RTC)模块是构建任何需要时间戳、定时唤醒或日历功能系统的基石。它远不止是一个简单的“计时器”,而是一个由精密硬件逻辑构成的独立时间引擎。很多开发…

2026/7/24 15:35:32阅读更多 →
卷积扰动认证训练:原理、实现与鲁棒性保障

卷积扰动认证训练:原理、实现与鲁棒性保障

1. 先搞清楚“卷积扰动认证训练”到底解决什么问题 如果你在机器学习安全或鲁棒性优化领域工作,大概率遇到过这种场景:模型在干净数据上表现很好,但遇到稍微改动过的输入——比如加了点噪声、平移了几个像素、或者做了个模糊处理——性能就大…

2026/7/24 15:35:32阅读更多 →
115、VR与全景影像系统:多目拼接与畸变校正

115、VR与全景影像系统:多目拼接与畸变校正

115、VR与全景影像系统:多目拼接与畸变校正 去年夏天,我在产线盯一个VR全景相机的量产调试。六目方案,每颗摄像头都是200鱼眼,拼接完的画面在边缘总有重影,像喝醉了酒看世界。产线工人说“这玩意儿调了三天了,怎么拧螺丝都不对”。我蹲在产线边上,盯着那台样机看了半小时…

2026/7/24 15:33:31阅读更多 →
Go语言静态资源打包方案对比与实践指南

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

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

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

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

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

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

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

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

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

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

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

2026/7/24 0:00:06阅读更多 →
【LeetCode 54】螺旋矩阵

【LeetCode 54】螺旋矩阵

问题描述: 解法: 1、模拟(参考自【LeetCode 54】螺旋矩阵-CSDN博客) int *spiralOrder(int **matrix, int matrixSize, int *matrixColSize, int *returnSize) {static const int dirs[4][2] {{0, 1}, {1, 0}, {0, -1}, {-1, …

2026/7/24 0:00:06阅读更多 →
2026 WAIC:模型隐身、智能体疯野,厂商竞赛聚焦办公场景与商业闭环

2026 WAIC:模型隐身、智能体疯野,厂商竞赛聚焦办公场景与商业闭环

知春路不相信模型领先今年WAIC大会,昔日AI六小龙来了五家,分别是Kimi、阶跃星辰、Minimax、百川智能、零一万物。连放弃基模的百川和零一万物都来了,唯一缺席的竟是近几个月来风光无限的智谱。(DeepSeek一直不参加)WAI…

2026/7/24 0:00:06阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/23 22:58:43阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/23 18:58:18阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/23 18:58:18阅读更多 →