日期
12/22
2023
咨询
  • QQ扫一扫

  • Vision小助手
    (CMVU)

机器视觉工业相机如何解决帧丢失问题
收藏
2023-12-22 14:30:53来源: 中国机器视觉网

导语:工业摄像头的丢帧现象之所以会发生,其实就是资料通道的堵塞,无法技术处理,所以新的图像采集进来时,前一张图像可能会被迫丢弃,或者是新的图像被迫丢弃。

微信图片_20231222143218.jpg

丢帧表现

工业相机预览模式下,无法以满帧的速度传输图像;触发拍照模式下,相机传输图像数量少于触发次数(触发频率应小于帧率);图像处理软件处理的图像数量小于预期。

丢帧可能存在的原因

工业相机丢帧问题是工业相机常出现的问题,其原因与相机的传输接口没有太大的关系,主要在于工业相机硬件和设计不良的驱动程序有关,这种情况对于机器视觉检测来说,具有很不确定性的效果影响。

相机丢帧3个主要原因解释:

1. 工业相机自身硬件设计

工业相机将图像从光学信号转变成有序的电信号,其中图像传感器传送图像到相机上的usb芯片,USB再传送给电脑端,如果某一时段电脑端系统繁忙,没有及时接收到图像,而后续的图像又传送过来,导致未接收到的那部分图像丢失。

2. 工业视觉软件应用程序部分

视觉软件包括硬件驱动程序和图像处理,为图像计算所分配的内存空间,有无缓冲的机制,可以加大图像的缓存来加大缓冲的时间,另外多线程的设计好坏也会影响到处理速度。

让程序运算有足够的空间来处理,在运作情况下,CPU的整体处理速度比图像进来的速度慢,如果缓存不够,接收的效率太低,工业相机又没有足够的缓存,就会构成丢帧的现象。

但这是系统掉资料,不是工业相机丢帧。在这种情况不管是用1394接口的工业相机,还是USB接口,又或者是GigE接口,任何接口的工业相机都会得到相同效果。

微信图片_20231222143232.png

3. 硬件PC系统部分

PC部分主要依赖于硬件驱动程序,重要的是驱动程序的功率以及系统有多少内核方式下的线程在分割CPU的时间,接收的功率不佳,工业相机没有比较好的缓冲记忆,往往会引起丢帧现象。

硬件原因导致的丢帧,可能是因为数据带宽不足引起的,比如扩展网卡或者USB3.0卡都可能造成问题。

相机网线达不到传输速率要求;PCIe插槽有问题,达不到标准速率(比如有的PCIe插槽可能是从主PCIe插槽扩展出来的,与主PCIe插槽共用一个PCIe插槽的带宽);又或者相机满帧采像的数据传输速率超过单个网口/USB3.0口的传输速度;网卡/USB3.0卡所有通道满负荷工作超过对应PCIe插槽的数据传输速率。

微信图片_20231222143237.jpg

如何解决帧丢失问题

为了解决这个问题,设计者需要精确地设计驱动和工业相机硬件数据传输的每个部分,有三个地方阻止图像数据:

1. 工业相机的一部分

图像传感器将图像传输到相机上的USB芯片,将USB传输到PC,如果PC系统忙于处理接收到的图像,并且图像传感器继续传输新的图像数据,则工业相机必须有足够的存储器缓冲区,反之亦然。

2. 可视化软件程序部分

该可视化软件具有用于等待所计算的图像空间的缓冲机制,以便增加图像的缓冲以获得缓冲时间,从而可以处理程序的操作,但是如果操作稳定,则CPU的整体处理速度更快。

在机器视觉系统中,工业相机的帧率往往很大,且工业相机自带缓存也有限,主要为调度系统起到暂时繁忙处理的辅助功能。

机器视觉软件的速度比工业相机图像进来的速度还慢,时间长了就会导致软件缓存的饱和溢出丢失,所以不管是usb接口和gige接口等,都会出现丢帧现象,所以,优化机器视觉软件的处理速度也是非常重要的。

3. 硬件PC系统部分

这部分偏向PC硬件驱动程序,与可视化软件程序无关。

PC机接收的关键是驱动程序的效率,在内核模式下有多少线程处于CPU时间,接收效率不高,工业相机没有足够的缓冲存储器会导致帧丢失。

微信图片_20231222143240.png

工业相机具有非常快的帧速率,事实上,只要有足够的容量来调整系统的“临时”忙碌,工业相机缓存就不会像PC程序那样扩大规模。USB工业相机将丢弃帧,只有一种情况,机器视觉软件比工业相机图像慢,软件缓存已满,无法存储新图像。

但这是系统数据,而不是工业相机掉数据。在这种情况下,不管使用1394接口、USB接口或GigE接口的工业相机,任何接口的工业相机都将得到相同的结果。因此,在购买工业相机时,必须详细检查其参数,并选择项目的实际要求,以避免发生掉帧事件。

(文章来源于深眸科技)