文章目录
- 前言
- 1. 线阵相机结构光评估
- * 确认外界光源是否满足
- * 镜头的确认
- * 确认物距
- * 确认抓拍宽度
- 2. 图像优化
- * 如何确认当前的帧率
- *关于拖影的解决方式
- *关于适应更高的速度
- *关于获取车速的讨论
- *延伸几个比较难的解决场景和解决方案
前言
前段时间应公司结构要求,需评估结构和硬件,主要围绕线阵相机图像质量上,在此记录下调试过程中的一些经验,希望能给同行一些方向,互相学习。
1. 线阵相机结构光评估
* 确认外界光源是否满足
评估光源是否满足的要求是图像无太大压缩,无太大拉伸(10%以内)的情况下,模拟增益不超过4dB,gamma增强不超过0.7的情况下,图像亮度正常, 图像整体亮度基本均匀,无暗条纹等情况。
P.S:
图像无压缩,无拉伸可以确认行频和当前车速基本匹配,此时定下了曝光时间。
模拟增益和gamma是DSP放大,放大会导致噪点的出现,因此需要做一些控制。
图像亮度均匀是判断外界灯的角度,灯的排版是否合理的有效依据。
量化工具可以使用照度计。
* 镜头的确认
镜头确认需要保证像素点都使用到(比如2048的宽,那么绝大部分的像素需要可见),因此镜头的选择尤其重要。
在选择镜头匹配到所有像素时(width),也需要考虑到抓拍的宽度,尽量满足抓拍的宽度要求(比如客户要求2米等重要指标)
* 确认物距
首先确认客户需要使用的环境,确认物距距离,按照物距距离模拟环境, 相机不动, 运动的传送带等通过一种控制
转动的工具,比如马达类的电机转速等,在上面贴一些字符,方便视觉上调整行频,保证图像不被拉伸和压缩。
* 确认抓拍宽度
a. 先让抓拍模式设置为连续;
b. 调整heigh为128或256,调整曝光时间和行频,确保图像不压缩和拉伸;
c. 调整gamma等,确认图像正常曝光;
d. 可以找一些白色的条状物体模拟边缘, 移动物体让图像刚好在最边缘,使用卷尺测量横向距离,如果不满足客户要求,
做结构上的调整,原则上物距越远, 可看到的横向(width)越大。
P.S:注意晃动的时候,使用比较长的杠子,避免手进入可视区,误以为杆子边缘可见(手的物距高于杆子)
2. 图像优化
* 如何确认当前的帧率
1)帧率= 行频(Hz)/高(当1/行频大于曝光时间的前提下), 当行频比较高的时候,帧率也会高, 但行频的突破需要曝光做牺牲,比如
曝光1000us,如果要出30fps, 如果height为32, 那么行频就是1000,此时如果想要帧率继续提高, 就要求行频提高,
行频提高需要曝光减少, 他们的倍数关系一致。
2)当1/行频小于曝光时间时,帧率由曝光决定, 帧率 = 1/曝光时间/图像行高
在调试过程中, 设置过程如下:
设置Height, 设置行频,确认图像是否拉伸或压缩, 如果压缩, 增大行频, 行频如果最大依然压缩, 降低曝光时间,
如果此时图像比较暗, 优先提高外部亮度,或增加增益(不推荐)
*关于拖影的解决方式
1)对于要做尺寸测量之类,或人脸识别算法之类的场景, 像素精度有一定的要求,一般要求不超过1/2个像素。
2)拖影对人工智能不造成影响条件是 曝光时间 * 相对运动速度 ≤ 相对运动速度的需求
例如曝光时间400us,小车按照10km/h的速度从相机上行驶, 分辨率为20484500, 整体视野2m * 4.5m(车长),像素精度要求1/2。
曝光时间 * 相对运动速度(相机固定) = 400/1000000 * 2.781000 = 1.112mm
垂直方向像素精度 : 4500(视野范围的垂直方向) / 4500 * 1/2 = 0.5mm
因此无法满足场景
解决方式: 降低曝光时间(要求外界亮度足够)或降低传送带的运动速度
关于线阵相机调试后的效果,传送
*关于适应更高的速度
关于相对速度变化的场景, 如果保证线阵相机抓拍图像正常?
1)需要确认当前适配的最大速度依然不变形,首先是确认可设置的最小曝光时间, 目前发现曝光在120us以下的情况,图像依然不欠曝(或微欠曝),基本能保证速度能到35km/h。
2)保证曝光不变形的情况下,然后确认图像亮度,如果亮度不足可以适当增益模拟增益和数字增益,有限模拟增益。如果客户对分辨率没有特别的要求,可以适当降低分辨率(BIND)。
*关于获取车速的讨论
因为图像变形和车速正相关, 所以必须有一个测速的模块, 如果是匀速的传送带相关的场景,使用一套ISP参数即可。
测速模块如果有更好的解决方案, 希望一起讨论下,方便提高产品竞争力, 谢谢!
*延伸几个比较难的解决场景和解决方案
场景1:通过测速模块工程中停止或变速
场景2:在线扫过程中停止, 加速,减速。
解决方案: 目前需要评估一种测速,当速度变化后设置图像ISP,但这样会增加链路层传输的时间(调用API),导致抓拍可能丢了一些帧(特别是单帧比较小的情况)
场景3:如果被扫距离不固定,如何做到图像最优化?
该问题如果有解决方案,欢迎指导。