摄像头模组 Golden Sample

http://blog.youkuaiyun.com/sylorchen/article/details/54907486


摄像头模组的生产加工过程实际上是各个功能物料堆积组合的过程,由上至下大概可以参考下面的示意图:


由于模组摄像头的这个堆叠过程中需要用到不同功能的单体物料,每个单体物料之间又不能保证有良好的一致性,所以需要使用OTP这样的手段来综合成品模组之间的差异性。通过将各个单体模组放在标准测试环境中检测,获得并记录各个模组之间的差异信息,我们便实现了OTP烧录的功能。但是在终端进行实际效果调试的时候,不可能对各个模组进行单独的调试,这时候便出现了典型模组挑选的流程。

一般而言,我们所说的典型模组倾向于是指色彩方面的典型,即AWB与Shading相关的典型模组。感性上讲,典型模组是所有单体模组中最有代表性的若干个模组,在调试过程中能够很好地覆盖该批次模组的特性,使得针对典型模组进行调试之后的参数能够适应到其他非典型模组上去;理性上讲,典型模组各通道的RGB数据处在所有模组的RGB的几何中心。我们一下图为例,如下所示我们模仿单体模组在DNP光源下进行拍照后R/G与B/G的数值进行描点,其中“+”代表未应用OTP进行纠正的情况,而“o”代表使用OTP进行补偿后的情况。其中黑色箭头指向的两个数据点刚好代表此批物料的典型模组,由此图示可看出,典型模组为RGB信息位于整批物料几何中心。


调试过程中我们会以这一颗模组进行软件效果调试,我们假定终端以此颗物料的调试结果进行优化实际拍摄效果,则类似于进行搬移的过程,而OTP应用则是收敛的过程。如果在TL48色温下拍摄得到了“+”所示的一组分布,终端会应用OTP将其收敛至“o”的分布状态,然后再将其调整所需色温的分布位置即“*”。其中“*”位置会根据整个终端的机身色温及实际拍摄场景的拍摄色温来确定。


当我们使用另外一个模组如最左下角的点(0.5092,0.5194)进行调试的话,会出现下面的偏移情况,其中会有黑色圈选的部分不能够被正确的调整到所需的色温分布中去,则色圈选的模组很大概率会出现偏色。所以在挑选的过程中我们需要正确的选择居中的典型模组,否则会导致终端进行调试之后出现部分模组成像异常的情况。



典型模组的挑选过程一般都是拍照的过程,

1、在三个色温下拍摄图片,D65/TL84/A三种光源,使用毛玻璃遮盖使进光均匀,A光下若出现水波纹可适用滤波片ND8,画面中心亮度保证160±10(0~255)。若不在范围内则适当调整寄存器使合适;

2、使用OVT或其他工具读取图片所需信息AWB、Shading等,读取数据一般为16进制,部分数据处理工具需留意进制转换问题;

3、根据实际所需要的典型模组挑选规则进行挑选,并提供客户典型模组及典型模组报告;

每个模组厂针对实际的典型模组挑选会有所差异,但基本上都数据拍照、读数据、数据分析的流程,大同小异。


下面以OV的典型模组表单为例,讨论一下数据处理过程,下面的图示是数据处理Exl的Tab页包括“AWB-TestDataWithoutOTP”、“AWB Typical”、“AWB Simulation Result”,除此之外还应该含有Shading相关的对应Tab页,但是因为这两个的计算方式相对重合,所以不讨论Shading。


其中“AWB-TestDataWithoutOTP”的Tab页为软件读取及OTP烧录内容,而“AWB Typical”的Tab页内容则如下所示:


如上面表单所示,其中包含了OTP Data、D65、TL84、A光的数据,及OTP数据16进制与10进制各1份。文档中的黄色&蓝色背景列为Exl公式计算所得数据,其中的蓝色为对应列的平均值,黄色列计算公式分别为如下公式,参考此计算方式我们可知,计算结果为各个模组数据点距离平均值的距离,其中距离最小的为典型模组。



最后的一张Tab页为“AWB Simulation Result”,其内容如下图所示:


与前一Tab页一致,其中的作色背景为Exl文档计算的数据,其中黄色区域的计算公式为


该公式的意思是指将D65、TL84、A光下计算所得的R/G、B/G乘以某个比例,记为应用典型模组OTP的结果。该比例的为当前模组的OTP与典型模组OTP的比值,可以简单的理解为某一模组在D65光源下应用典型模组的方式,即为该模组在D65光源下的R/G、B/G按照典型模组的OTP进行缩放。该方式实际讨论起来也可以认为是几何距离的调整。而且中max error与min error行对应的数据则体现了收敛性,最大与最小的端差通过典型模组综合之后变得更小的。

以上的内容大概的说明了典型模组的作用,在调试中的应用,如何挑选典型等信息。

没有保存的照片 start running... -- [I] Get key devices success. -- [I] load cvimodel from: /root/models/mymodel/model_127448.cvimodel -- [I] model info: type: yolov5 input type: rgb mean:0.000000 0.000000 0.000000 scale:0.003922 0.003922 0.003922 labels num: 8 anchors:10.00 13.00 16.00 30.00 33.00 23.00 30.00 61.00 62.00 45.00 59.00 119.00 116.00 90.00 156.00 198.00 373.00 326.00 input size: 224x224 [SAMPLE_COMM_SNS_ParseIni]-2191: Parse /mnt/data/sensor_cfg.ini [parse_source_devnum]-1784: devNum = 1 [parse_sensor_name]-1865: sensor = GCORE_GC4653_MIPI_4M_30FPS_10BIT [parse_sensor_busid]-1894: bus_id = 4 [parse_sensor_i2caddr]-1905: sns_i2c_addr = 29 [parse_sensor_mipidev]-1916: mipi_dev = 0 [parse_sensor_laneid]-1927: Lane_id = 4, 3, 2, -1, -1 [parse_sensor_pnswap]-1938: pn_swap = 0, 0, 0, 0, 0 [parse_sensor_mclken]-1960: mclk_en = 1 [parse_sensor_mclk]-1971: mclk = 1 [SAMPLE_COMM_SNS_ParseIni]-2191: Parse /mnt/data/sensor_cfg.ini [parse_source_devnum]-1784: devNum = 1 [parse_sensor_name]-1865: sensor = GCORE_GC4653_MIPI_4M_30FPS_10BIT [parse_sensor_busid]-1894: bus_id = 4 [parse_sensor_i2caddr]-1905: sns_i2c_addr = 29 [parse_sensor_mipidev]-1916: mipi_dev = 0 [parse_sensor_laneid]-1927: Lane_id = 4, 3, 2, -1, -1 [parse_sensor_pnswap]-1938: pn_swap = 0, 0, 0, 0, 0 [parse_sensor_mclken]-1960: mclk_en = 1 [parse_sensor_mclk]-1971: mclk = 1 try release sys ok [_mmf_init]-1144: maix multi-media version:67a90e2-musl_riscv64 maix multi-media init ok try release vio ok try release venc ok ISP Vipipe(0) Allocate pa(0x8acf5000) va(0x0x3fd00cb000) size(291424) stSnsrMode.u16Width 2560 stSnsrMode.u16Height 1440 25.000000 wdrMode 0 pstSnsObj 0x3fd3496d18 ############# [cmos_set_image_mode][1176] fps:25.000000 [SAMPLE_COMM_VI_StartMIPI]-494: sensor 0 stDevAttr.devno 0 awbInit ver 6.9@2021500 0 R:1400 B:3100 CT:2850 1 R:1500 B:2500 CT:3900 2 R:2300 B:1600 CT:6500 Golden 1024 1024 1024 WB Quadratic:0 isWdr:0 20250325 07:53:47.016 1053 E isp setNoiseProfile:3460 Noise profile get fail. Please check ########### PinMux ####################################################################### ########### PinMux End ####################################################################### ViPipe:0,===OS04A10 1520P 30fps 12bit LINE Init OK!=== ******************************************************************************** cvi_bin_isp message gerritId: 97347 commitId: fc6ce647 md5: d6db2297ddfd44e8252c1f3f888f47b2 sensorNum 1 sensorName0 5440577 PQBIN message gerritId: commitId: fc6ce647 md5: d6db2297ddfd44e8252c1f3f888f47b2 sensorNum 1 sensorName0 5440577 author: lxowalle desc: os04a10 createTime: 2024-08-30 11:00:43version: tool Version: v3.0.5.48 mode: ******************************************************************************** [SAMPLE_COMM_ISP_Thread]-95: ISP Dev 0 running! 0 R:1257 B:3920 CT:2788 1 R:1588 B:2858 CT:3968 2 R:2169 B:1819 CT:7154 Golden 1588 1024 2858 wdrLEOnly:1 [SAMPLE_COMM_VO_StartChn]-351: u32Width:480, u32Height:640, u32Square:1 -- [I] exit app by KEY_OK -- [I] read key thread exit -- [I] [Default CommListener] exit success maix multi-media driver released. ISP Vipipe(0) Free pa(0x8acf5000) va(0x0x3fd00cb000) program exited
03-26
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值