[具身智能-613]:嵌入式视觉常用图像格式完整梳理(适配 RDK X5 + MIPI 相机 + FCOS/YOLO AI 链路)

📅 2026/7/22 10:50:04
[具身智能-613]:嵌入式视觉常用图像格式完整梳理(适配 RDK X5 + MIPI 相机 + FCOS/YOLO AI 链路)
嵌入式视觉常用图像格式完整梳理适配 RDK X5 MIPI 相机 FCOS/YOLO AI 链路分为四大类传感器原始裸数据、未压缩 YUV、未压缩 RGB、压缩图像同时标注变换关系、工程取舍、适用场景。一、Sensor 原始 Bayer RAW 系列相机最前端来源MIPI 摄像头感光芯片直接输出不是可视图像必须 ISP 处理RGGB8 / BGGR8 / GRBG8RAW88bit 单通道拜耳阵列OV5647、IMX219 常用无文件头二进制裸流无法直接打开用途Sensor 调试、镜头标定、排查曝光 / 噪声 / I2C 硬件问题RGGB10 / RGGB12RAW10/RAW1210/12 位高精度采样IMX335 等高动态传感器数据位宽更大内存占用更高流转规则RAW →ISP Demosaic3A 处理→ YUV (NV12)❌ 不能直接送入 AI 网络、编码器、显示模块。二、未压缩 YUV 系列嵌入式硬件标准重点NV12YUV 亮度 (Y) 色度 (UV)利用人眼对色彩不敏感降低色度采样带宽是ISP 输出标准。1. NV12YUV420SP 半平面⭐【RDK X5 首选】布局1 个完整 Y 平面 UV 交错平面U、V 交替存放plaintextYYYYY YYYYY UVUVU UVUVU地平线 ISP/VPS/BPU/H264/JPEG编码器原生支持mipi_cam/image_combine_raw默认输出格式用途AI 推理输入、硬件编码、EGL 本地预览2. NV21YUV420SP布局Y 平面 VU 交错安卓相机默认格式和 NV12 仅 UV 顺序相反极易出现画面偏色。3. YU12/I420YUV420P 平面三个独立平面Y U V 依次分开存储PC 端常见嵌入式硬件支持弱不推荐。4. YV12Y、V、U 分开排列较少使用。5. YUYV / UYVYYUV422 打包格式打包存储采样率更高多用于 USB 摄像头 V4L2 输出带宽高于 NV12。转换约束 RAW→ISP→NV12NV12 可硬件 / 软件转为 RGB不建议反向压缩格式解码后再转回 YUV 做 AI 推理。三、未压缩 RGB 系列CPU / 桌面图像标准1. RGB24 / BGR24每个像素 R G B 各 8bitOpenCV 默认使用BGR24。缺点内存占用大比 NV12 多 50%地平线硬件无法零拷贝接收用途PC 调试、OpenCV 算法开发⚠️工程避坑尽量避免NV12→RGBCPU 拷贝优先使用VPS 硬件转换。2. RGB56516bit 低深度 RGB多用于简易 LCD 屏幕不适合 AI。3. RGBA32RGBAlpha 透明通道GUI 界面渲染使用视觉算法极少用到。四、有损压缩静态图像存储 / 网络预览1. JPG(JPEG)底层编码输入要求 YUV420有损压缩优点通用、体积小浏览器直接解码websocket 预览使用缺点存在画质损失禁止解压后送入 FCOS/YOLO 推理2. JPEG2000压缩性能更好但硬件编码器支持极少嵌入式基本不用。3. WebP谷歌格式同等画质体积小于 JPG网页场景可用开发板硬件加速少。五、无损压缩静态图像1. PNG无损压缩 RGB支持透明通道特点压缩耗时高于 JPG无画质损失用途截图存档、UI 素材不适合实时视频链路2. TIFF无损高精度图像工业相机、测绘、标定使用体积巨大。六、视频码流不属于静态图片工程配套H.264/H.265 裸流.h264NV12 送入硬件编码器生成MP4封装容器内部承载 H264 码流 时间戳核心对比总表面向RDK 视觉工程表格格式大类代表格式是否压缩是否可视图像推荐用途是否适合 AI 推理Sensor RAWRGGB8/RGGB10无❌底层硬件调试、标定❌YUV 半平面NV12无✅主链路采集、编码、BPU 推理、预览✅【首选】YUV 平面I420/YU12无✅PC 软件调试⚠️不推荐缺少硬件加速RGBBGR24无✅OpenCV 调试⚠️尽量减少使用有损压缩JPG有损✅网页预览、快照存储❌无损压缩PNG无损✅截图存档❌标准数据流最优工程链路plaintextMIPI Sensor → RAW(Bayer) → ISP处理 → NV12 ├─分支1NV12 → VPS缩放 → FCOS/YOLO BPU推理主业务 ├─分支2NV12 → 硬件H264 → 视频录像 └─分支3NV12 → 硬件JPG → WebSocket远程预览高频踩坑总结不要把 JPG 解码成 YUV 后送给目标检测多次压缩造成精度下降尽量整条链路以 NV12 流转减少 NV12↔RGB 格式转换降低 CPU 占用排查相机 I2C、Sensor 异常时抓取 RAW调试漏检问题保存 NV12对外预览使用 JPG裸流文件RAW/NV12没有分辨率头播放时必须手动指定分辨率bash运行ffplay -f rawvideo -pixel_format nv12 -video_size 1280x720 frame.nv12