导语:工业摄像头的丢帧现象之所以会发生,其实就是资料通道的堵塞,无法技术处理,所以新的图像采集进来时,前一张图像可能会被迫丢弃,或者是新的图像被迫丢弃。
01 丢帧表现
01 工业相机预览模式下,无法以满帧的速度传输图像
02 触发拍照模式下,相机传输图像数量少于触发次数(触发频率应小于帧率)
03 图像处理软件处理的图像数量小于预期
02 丢帧可能存在的原因
工业相机丢帧问题是工业相机常出现的问题,其原因与相机的传输接口没有太大的关系,主要在于工业相机硬件和设计不良的驱动程序有关,这种情况对于机器视觉检测来说,具有很不确定性的效果影响。
相机丢帧3个主要原因解释:
1. 工业相机自身硬件设计
工业相机将图像从光学信号转变成有序的电信号,其中图像传感器传送图像到相机上的usb芯片,USB再传送给电脑端,如果某一时段电脑端系统繁忙,没有及时接收到图像,而后续的图像又传送过来,导致未接收到的那部分图像丢失。
2. 工业视觉软件应用程序部分
视觉软件包括硬件驱动程序和图像处理,为图像计算所分配的内存空间,有无缓冲的机制,可以加大图像的缓存来加大缓冲的时间,另外多线程的设计好坏也会影响到处理速度。
让程序运算有足够的空间来处理,在运作情况下,CPU的整体处理速度比图像进来的速度慢,如果缓存不够,接收的效率太低,工业相机又没有足够的缓存,就会构成丢帧的现象。
但这是系统掉资料,不是工业相机丢帧。在这种情况不管是用1394接口的工业相机,还是USB接口,又或者是GigE接口,任何接口的工业相机都会得到相同效果。
3. 硬件PC系统部分
PC部分主要依赖于硬件驱动程序,重要的是驱动程序的功率以及系统有多少内核方式下的线程在分割CPU的时间,接收的功率不佳,工业相机没有比较好的缓冲记忆,往往会引起丢帧现象。
硬件原因导致的丢帧,可能是因为数据带宽不足引起的,比如扩展网卡或者USB3.0卡都可能造成问题。
相机网线达不到传输速率要求;PCIe插槽有问题,达不到标准速率(比如有的PCIe插槽可能是从主PCIe插槽扩展出来的,与主PCIe插槽共用一个PCIe插槽的带宽);又或者相机满帧采像的数据传输速率超过单个网口/USB3.0口的传输速度;网卡/USB3.0卡所有通道满负荷工作超过对应PCIe插槽的数据传输速率。
03 如何解决帧丢失问题
为了解决这个问题,设计者需要精确地设计驱动和工业相机硬件数据传输的每个部分,有三个地方阻止图像数据:
1. 工业相机的一部分
图像传感器将图像传输到相机上的USB芯片,将USB传输到PC,如果PC系统忙于处理接收到的图像,并且图像传感器继续传输新的图像数据,则工业相机必须有足够的存储器缓冲区,反之亦然。
2. 可视化软件程序部分
该可视化软件具有用于等待所计算的图像空间的缓冲机制,以便增加图像的缓冲以获得缓冲时间,从而可以处理程序的操作,但是如果操作稳定,则CPU的整体处理速度更快。
在机器视觉系统中,工业相机的帧率往往很大,且工业相机自带缓存也有限,主要为调度系统起到暂时繁忙处理的辅助功能。
机器视觉软件的速度比工业相机图像进来的速度还慢,时间长了就会导致软件缓存的饱和溢出丢失,所以不管是usb接口和gige接口等,都会出现丢帧现象,所以,优化机器视觉软件的处理速度也是非常重要的。
3. 硬件PC系统部分
这部分偏向PC硬件驱动程序,与可视化软件程序无关。
PC机接收的关键是驱动程序的效率,在内核模式下有多少线程处于CPU时间,接收效率不高,工业相机没有足够的缓冲存储器会导致帧丢失。
工业相机具有非常快的帧速率,事实上,只要有足够的容量来调整系统的“临时”忙碌,工业相机缓存就不会像PC程序那样扩大规模。USB工业相机将丢弃帧,只有一种情况,机器视觉软件比工业相机图像慢,软件缓存已满,无法存储新图像。
但这是系统数据,而不是工业相机掉数据。在这种情况下,不管使用1394接口、USB接口或GigE接口的工业相机,任何接口的工业相机都将得到相同的结果。
因此,在购买工业相机时,必须详细检查其参数,并选择项目的实际要求,以避免发生掉帧事件。