Rockchip平台RAW图抓取全攻略,助力嵌入式视觉高效开发

描述

 

在嵌入式视觉开发领域,RAW图是算法调试与画质优化的"黄金素材"。它未经ISP加工,真实还原了Sensor的原始数据。本期技术分享,灵眸科技工程师将为您详解在Rockchip平台上抓取RAW图的完整流程,助您快速获取高质量原始数据,夯实项目开发基础。


 

在嵌入式视觉项目中,无论是进行3A算法(AF/AE/AWB)的底层调试,还是针对特定场景进行画质调优,获取纯净的RAW图都是至关重要的第一步。RAW数据保留了图像传感器最原始的Bayer阵列信息,未经过白平衡、降噪及色彩增强等ISP处理,能让开发者最直观地评估硬件性能与环境光线。

针对ROCKCHIP平台开发板,我们整理了这份详尽的RAW图抓取指南。本文将从环境准备到命令执行,逐一拆解关键步骤,助力企业研发团队提升开发效率。

 


 

PART.01

抓取前的准备工作

为确保抓取过程顺利,请提前确认以下环境与权限配置:

1.硬件环境:Rockchip开发板(如我们的EASY-EAI-Nano-TB等型号)已正常启动,且MIPI摄像头模组连接稳固。

2.软件工具:系统已预装 v4l2-ctl(视频设备控制工具)及 systemctl(服务管理工具)。

3.操作权限:全程需使用 root  权限操作,避免因权限不足导致命令执行失败。

嵌入式


 

PART.02

核心操作流程

1. 关闭 RKAIQ 3A 服务

Rockchip平台默认运行 rkaiq_3A_server服务,该服务会自动对Sensor数据进行处理。为了获取"纯血"RAW图,必须先关闭此服务。

  •  

systemctl stop rkaiq_3A

验证状态:

  •  

systemctl status rkaiq_3A

若反馈显示为AUTHENTICATION  COMPLETE,则表示服务已成功关闭。

嵌入式


 

 

2. 使能非紧凑模式(Non-compact Mode)

平台默认的"紧凑模式"可能会对输出数据进行压缩或裁剪。我们需要手动关闭它,以确保获取完整的RAW数据。

推荐方式:环境变量配置

  •  

export normal_no_read_back=0


 

备选方式:Sysfs节点配置

若环境变量不生效,可根据摄像头接口,向对应节点写入数值:

  •  
  •  
  •  

echo 0 0 0 0 > /sys/devices/platform/rkcif-mipi-lvds/compact_test# 若为lvds2接口,则执行:# echo 0 0 0 0 > /sys/devices/platform/rkcif-mipi-lvds2/compact_test


 

3. 确认 Video 设备节点

Rockchip平台通过/dev/video*节点管理摄像头设备。不同的stream_cif_mipi_id对应不同的功能(如线性模式或HDR模式)。我们需要找到正确的节点路径。

执行命令查找:

  •  

grep "stream_cif_mipi_id" /sys/class/video4linux/*/name

输出示例解读:


 

注:示例中,stream_cif_mipi_id0对应/dev/video0通常情况下,线性模式抓取RAW图优先选用 id0对应的节点。

  •  
  •  

/sys/class/video4linux/video0/name:stream_cif_mipi_id0/sys/class/video4linux/video1/name:stream_cif_mipi_id1


 

4. 执行 RAW 图抓取

使用v4l2-ctl工具进行抓图。以下命令以抓取BG10格式、1920x1080分辨率的单帧RAW图为例:

  •  

v4l2-ctl -d /dev/video0 --set-fmt-video=width=1920,height=1080,pixelformat=BG10 --stream-mmap=3 --stream-skip=3 --stream-poll --verbose --stream-count=1 --stream-to=/tmp/cam0.raw


 

关键参数解析:

-d /dev/video0:指定视频节点(请根据上一步查询结果替换)。

--set-fmt-video:设定视频格式。BG10代表10位深度的Bayer RAW数据(BGBG排列)。

--stream-skip=3:跳过前3帧,排除Sensor启动阶段的不稳定数据。

--stream-to=/tmp/cam0.raw:指定RAW图的存储路径。

抓取完成后,可通过ls /tmp/ | grep cam0.raw确认文件是否生成。


 

PART.03

避坑指南与注意事项

权限报错:若出现 Permission denied,请执行 su root切换至超级用户。

参数校验:若出现 Invalid argument,通常是分辨率或像素格式不被支持。建议使用 v4l2-ctl -d /dev/video0 --list-formats-ext查看Sensor支持的具体参数。

RAW图查看:BG10等RAW格式无法直接用普通看图软件打开,建议使用 ImageMagick、RawDigger  等专业工具,或通过自研代码进行解析。

HDR模式:HDR RAW图的抓取涉及不同的ID映射关系,建议结合具体的Rockchip芯片手册及摄像头模组Datasheet进行确认。


 

写在最后
 

把整套流程串起来看,Rockchip平台抓RAW图其实就四件事:关3A → 开非紧凑 → 对节点 → v4l2-ctl落帧。步骤不复杂,但每一步都有"踩坑点"——3A没关干净拿到的是ISP后的数据、紧凑模式没解开会丢行、节点对错了HDR和线性会串流。把这些细节捋顺,后面做IQ tuning、做3A对标、甚至做Sensor选型评估,素材才站得住脚。


 

这篇帖子是我们工程师在 EASY-EAI-Nano-TB  实板上跑通后整理出来的原版记录,社区里还有同系列的Netplan、MIPI出图排查路径、AI-ISP的几篇,都是"先踩完坑再写出来"的经验之谈。做嵌入式项目的同学,欢迎来社区蹲一蹲。


 

嵌入式


 

 

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分