海康线阵相机调试指导

前言


前段时间应结构要求一起评估结构光和硬件,主要围绕线阵相机图像质量和光均匀性做灯光调整, 在此记录调试过程中遇到的坑。希望给同行一些避坑指南,同时希望多留言和给出一些指导!

线阵相机结构光评估


  • 光源
    • 评估光源是否满足的要求是图像无太大压缩,无太大拉伸(10%以内)的情况下,模拟增益不超过4dB,gamma增强不超过0.7的情况下,图像亮度正常, 图像整体亮度基本均匀,无暗条纹等情况。
    • 图像无压缩,无拉伸可以确认行频和当前车速基本匹配,此时定下了曝光时间。
    • 模拟增益和gamma是DSP放大,放大会导致噪点的出现,因此需要做一些控制。
      图像亮度均匀是判断外界灯的角度,灯的排版是否合理的有效依据。
      量化工具可以使用照度计。
  • 镜头

    • 镜头确认需要保证像素点都使用到(比如2048的宽,那么绝大部分的像素需要可见),因此镜头的选择尤其重要。
      在选择镜头匹配到所有像素时(width),也需要考虑到抓拍的宽度,尽量满足抓拍的宽度要求(比如客户要求2米等重要指标)
  • 物距

    • 首先确认客户需要使用的环境,确认物距距离,按照物距距离模拟环境, 相机不动, 运动的传送带等通过一种控制
      转动的工具,比如马达类的电机转速等,在上面贴一些字符,方便视觉上调整行频,保证图像不被拉伸和压缩。
  • 视野

    • 抓拍模式设置为连续。调整heigh为128或256,调整曝光时间和行频,确保图像不压缩和拉伸;
      调整gamma等,确认图像正常曝光;
    • 可以找一些白色的条状物体模拟边缘, 移动物体让图像刚好在最边缘,使用卷尺测量横向距离,如果不满足客户要求,
      做结构上的调整,原则上物距越远, 可看到的横向(width)越大。
      P.S:注意晃动的时候,使用比较长的杠子,避免手进入可视区,误以为杆子边缘可见(手的物距高于杆子)

图像优化


帧率

  • 帧率= 行频(Hz)/高(当1/行频大于曝光时间的前提下), 当行频比较高的时候,帧率也会高( 前提是曝光固定切曝光*行频不超过1000000us)。行频的突破需要曝光做牺牲,比如曝光1000us,如果要出30fps, 如果height为32, 那么行频就是1000,此时如果想要帧率继续提高, 就要求行频提高,行频提高需要曝光减少, 关系为反比例

  • 当1/行频小于曝光时间时,帧率由曝光决定, 帧率 = 1/曝光时间/图像行高。

建议:
设置图像宽度(采集方向),设置行频,确认图像是否拉伸或压缩,如果压缩,增大行频, 行频如果最大依然压缩,降低曝光时间。
如果此时图像依然比较暗,优先提高外部亮度, 考虑到功耗图像质量的均衡, 做一个平衡点。
Notice:如果不考虑功耗, 尽量拉伸外部亮度,可以变相的增加了行频利用率以及图像质量。

拖影

  • 对于要做尺寸测量之类,或人脸识别算法之类的场景, 像素精度有一定的要求,一般要求不超过1/2个像素。

  • 拖影对人工智能不造成影响条件是 曝光时间 * 相对运动速度 ≤ 相对运动速度的需求。

例如曝光时间400us,小车按照10km/h的速度从相机上行驶, 分辨率为20484500, 整体视野2m * 4.5m(车长),像素精度要求1/2。
曝光时间 * 相对运动速度(相机固定) = 400/1000000 * 2.78
1000 = 1.112mm
垂直方向像素精度 : 4500(视野范围的垂直方向) / 4500 * 1/2 = 0.5mm
因此无法满足场景
解决方式: 降低曝光时间(要求外界亮度足够)或降低传送带的运动速度

  • 关于线阵相机调试后的效果,传送

适配速度

关于相对速度变化的场景, 如果保证线阵相机抓拍图像正常?

  • 需要确认当前适配的最大速度依然不变形,首先是确认可设置的最小曝光时间, 目前发现曝光在120us以下的情况,图像依然不欠曝(或微欠曝),基本能保证速度能到35km/h。
  • 保证曝光不变形的情况下,然后确认图像亮度,如果亮度不足可以适当增益模拟增益和数字增益,有限模拟增益。如果客户对分辨率没有特别的要求,可以适当降低分辨率(BIND)。

获取速度

  • 因为图像变形和车速正相关, 所以必须有一个测速的模块, 如果是匀速的传送带相关的场景,使用一套ISP参数即可。
    测速模块如果有更好的解决方案, 希望一起讨论下,方便提高产品竞争力, 谢谢!

疑难杂症

  • 在线扫过程中停止, 加速,减速。

解决方案: 目前需要评估一种测速,当速度变化后设置图像ISP,但这样会增加链路层传输的时间(调用API),导致抓拍可能丢了一些帧(特别是单帧比较小的情况)

  • 如果被扫距离不固定,如何做到图像最优化?
    该问题如果有解决方案,欢迎指导。

鲁棒性(采集稳定性)


  • 采集丢帧

原因分析:海康SDK走的是TCP/IP方式。 [^Continue]会有两个因子影响到采集,分别是客户端的CPU(arm板或工控机)以及网络往返的时间,当工控机的CPU不足等会造成进程调度问题(如果工控机性能不足或运行的任务比较多时), 或网络抖动等问题可能造成请求一帧的时间超过了一帧的时间,MVS采集帧是不设置缓存,采集时如果客户端消费者来不及请求时,会将后续的帧覆盖掉上一帧,导致客户端丢帧。 单帧采集模式不会出现上述的问题,因为拼接是在MVS相机的Soc中,当完成客户端设置的height后就将数据回调给客户端。

  • 采集方式
  • 单帧扫描采集
yes
no
isp set
start
capture
height max?
callback
stop
montage
compress

这里采集的是一帧数据,采集什么时候结束按照ISP设置的参数决定,特别需要注意的是行频以及曝光
宽度决定扫描的行数, 行频曝光决定扫描的速度,即帧率

  • 连续采集{continue}采集
yes
no
yes
yes
no
isp set
start
capture
one frame?
is_cache?
polling
cache_buffer
interrupt?
stop
montage
compress

interrupt: 中断方式,分软中断和硬件中断,这里只讨论软中断,即不再polling同时停止采集。

  • 比较
    • 单帧扫描方式常用于比较规律的地方,存在周期性的拍摄场景。
    • 单帧模式很多场景无法满足客户需求,在这里只针对连续采集模式下应付以上问题:
    a. 客户端轮询拿到本地数据,数据都采用指针方式存储,降低拷贝耗时。
    b. 确认部署按照文档部署。
    c. 采集设置缓存,减轻cpu调用客户端时的分配时间片不足问题。
    d. 单帧设置的height可以适当的增大,即降低帧率,同时也变相的增加了行频利用率。
    
    
    • 后续的想法
      最后说一点,如果对行频利用率要求非常高的场景,建议还是想办法使用单帧的方式,而且能利用外部中断提前停止采集。
      之前尝试这种解决方案, 貌似HIKVISION SDK不支持这种方式。

选型

参考: 工业镜头基础知识和选型
参考: HIKVISION

一些坑参考

  • 自动曝光还是手动曝光(白平衡同理)?

环境单一的场景用手动曝光即可, 如果场景照度多变,使用自动曝光。
自动曝光因为收敛的时间差,导致图像可能存在光线不均匀的情况, 这种问题提高外部亮度,让曝光的上下限设置波动小。

  • 线阵相机采集不均匀问题 ?

主要是因为外部补光导致问题,可以通过尝试sharding,如果还是无法解决,使用后期的图像增强,可以使用OpenCV的图像增强,参考数字宽动态,缺点是算法时间复杂度导致出图可能慢的问题

  • 没有测速模块,无法使用编码器的场景如何解决图像变形{拉伸或压缩}?

如果没有测速模块, 可能无法解决该问题,但可以做缩放, 缩放中的拉伸会降低分辨率,所以如果考虑这种情况,
增大行频相对更好。

  • 开始抓拍和结束抓拍的触发源是通过IO方式(事件),怎么做能刚好扫描到触发前后的图?
    • 后期裁剪算法,逻辑大概是比较每行的差异,如果大多数相同,就说明是无效数据。如果考虑稳定性,增加软件滤波即可。
    • 采用高帧率连续采集模式,拿到帧数据自行realloc后保存, 流程大概为 触发源开始触发抓拍->请求抓拍数据->数据保存到vector中->收到停止信号停止->将vector数据保存一张raw数据->做编码即可

视频预览

采用usb摄像头或MIPI:

  • 镜头选择尽量高收敛低震荡的CMOS, 这个可能需要代理定制了,建议500ms的曝光收敛比较合理。
  • 自动曝光依然过曝,可以定制低目标亮度的固件。
  • 因为运动物体,曝光采用增益优先方式更好,曝光上限做一定限制,比如5ms, 毕竟外部补光很高。
  • 如果带宽足够,帧率建议30+, 编码码率选择更高的码率,建议定码率,减少运动场景的网格。
  • 4
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值