公司动态
[具身智能-617]:相机图像传感器、相机ISP、相机驱动、openCV算法库、CNN深度神经网络、GPU、RDK X5的推理单元BPU,他们在图像处理中各自的输入和输出?
全链路模块输入输出梳理适配 RDK X5 平台严格区分像素图像 / 结构化数据同时厘清硬件、驱动、软件库、网络模型、加速器边界先给出整条典型流水线基线光线 → 图像传感器 → MIPI CSI → 相机驱动 → ISP → 图像帧缓存 图像帧分流 ① NV12 → BPU 运行 CNN② YUV/RGB → GPU 图像预处理③ RGB/BGR → OpenCV 传统视觉1. 图像传感器Image SensorIMX 系列等输入光学光信号输出MIPI CSI-2 传输流像素格式为Bayer RAW可选RAW8 / RAW10 / RAW12 / RAW14RGGB/BGGR/GRBG/GBRG 特性无色彩、未 Debayer只是光电原始采样值无法直接被 ISP 以外任何单元处理不输出 YUV/RGB。2. 相机驱动Linux V4L2 / RDK 媒体驱动模块定位硬件协议转发、内存管理、控制通道不做像素运算输入接收 Sensor 通过 MIPI 传来的 RAW 数据流接收上层配置指令分辨率、曝光、帧率。输出把 RAW 数据流转发给硬件 ISPISP 处理完成后驱动向用户态抛出帧缓存NV12/YUYV/RGB驱动本身换图像不转格式只搬运数据、管理 DMA 缓冲区、控制寄存器。通俗理解驱动是 “快递员”不加工货物只负责转运图像数据。3. 硬件 ISPRDK 内置图像信号处理器输入仅支持 Bayer RAWRAW8/10/12输出内存图像帧可选配置 NV12首选、YUYV (UYVY)、RGB888、BGR888 内部硬件流水线Debayer、白平衡、降噪、LDC 畸变校正、Gamma、色彩转换、缩放裁剪。约束只能固化成像算法不能跑 CNN、不能跑 OpenCV 边缘 / 形态学算子。4. OpenCV 算法库传统机器视觉cv::Mat 为载体默认运行 CPU可启用 OpenCL 将算子卸载至 GPU输入原生友好格式BGR8、RGB8、GRAY8、YUYV ⚠️ NV12 无原生支持需要手动拆分平面构造 Mat ⚠️ Bayer RAW 虽然提供转换 API但 CPU 效率极低实时工程禁止使用输出仍然是cv::MatBGR/RGB/ 灰度图、二值图、处理后的图像 额外输出轮廓点集、特征点、匹配对、相机标定参数等图像结构化信息用途Canny、阈值、形态学、轮廓检测、光流、模板匹配、标定等传统视觉不负责深度学习推理。5. CNN 深度神经网络网络模型本身*.onnx只是数学权重与网络拓扑不是硬件模型逻辑输入逻辑张量常见RGB 图像张量 / YUV 归一化张量float32归一化至 0~1 或减均值除方差 注意这是算法理论输入不等于硬件 BPU 直接接收 NV12硬件会做预处理适配。模型逻辑输出张量目标检测坐标、置信度、类别张量语义分割每个类别概率图张量分类各类别得分向量关键点 ONNX 模型是浮点网络部署到 BPU 前必须经过量化工具转为定点模型.bin网络本身不能直接读取硬件 NV12 帧需要配套预处理。6. GPU通用图形 / 并行计算单元输入成熟彩色图像帧 NV12、YUYV、RGB888、BGR888 ❌ 无法直接处理 Bayer RAW输出同类型图像帧NV12/YUV/RGB/BGR擅长硬件加速缩放、旋转、仿射变换、YUV↔RGB 格式转换、图像滤波、图层渲染叠加。 区分GPU 可以跑通用算子但不是专门 AI 推理硬件CNN 推理性能远弱于 BPU。7. RDK X5 BPU地平线 AI 推理硬件加速器硬件输入工程最优链路✅ NV12YUV420支持零拷贝推荐、YUYV、RGB888❌不支持 Bayer RAWBPU 内置硬件预处理模块缩放、归一化、色域转换可以直接消费 ISP 输出 NV12省去 CPU/GPU 格式转换硬件输出结构化张量数据无图像像素检测框、置信度、类别 ID、分割掩码张量、特征向量。 ⚠️ BPU 只执行量化后的 CNN 模型前向推理不能运行 OpenCV 传统视觉算子。统一汇总对照表表格模块输入数据输出数据重要备注图像传感器光线Bayer RAW8/10/12MIPI 数据流原始光电采样无彩色相机驱动 (V4L2 / 媒体驱动)1. Sensor RAW 流2. 用户控制指令1. RAW 转发给 ISP2. ISP 处理后的图像帧缓存 (NV12/YUYV/RGB)只搬运数据不做图像处理硬件 ISPBayer RAW8/10/12NV12、YUYV、RGB888、BGR888唯一硬件单元可以处理 RAWOpenCV 算法库BGR/RGB/GRAY/YUYVNV12 需手动解析RAW 不适合实时cv::Mat 图像 轮廓 / 特征点等视觉结构信息传统机器视觉不含 CNN 推理CNN 深度神经网络 (ONNX 模型)理论浮点张量归一化 RGB/YUV 图像浮点张量检测框、分割图、分类概率只是网络拓扑权重需要量化才能部署 BPUGPUNV12/YUYV/RGB/BGR不支持 RAWNV12/YUYV/RGB/BGR 图像帧图像变换、格式转换、渲染通用并行计算RDK X5 BPU 推理单元NV12 (首选)、YUYV、RGB/BGR不支持 RAW推理结构化张量框、掩码、特征仅运行量化 CNN不输出图片RDK X5【推荐最优完整数据流格式流向】plaintext光线 → Sensor → RAW10 → 相机驱动转发 → ISP → ISP输出 NV12 帧缓存DMA内存 ├─ 零拷贝直送 BPU → 运行量化CNN → 输出检测框 └─ NV12送入GPU → GPU硬件转BGR → OpenCV绘制框、轮廓后处理高频开发误区总结❌ RAW 不能直接送入驱动以外所有模块必须经过 ISP❌ CNN 模型理论输入是浮点张量 ≠ BPU 直接接收 NV12依靠 BPU 内置硬件预处理做转换❌ BPU 输出不是图片想要可视化画框必须交给 OpenCV/GPU❌ 相机驱动不会做图像格式转换格式转换是 ISP/GPU/ 软件负责❌ OpenCV 不能调用 BPU 推理 CNN必须使用地平线原生媒体 SDK BPU 工具链。