一、工业相机丢包问题
前言
使用环境:
海康的工业相机相机、海康MVS软件。
问题描述:
通过架设的两个相机采集图像,其中一个相机采集图像数量少于另一个相机。MVS提示相机丢包。
首先可以肯定的一个相机丢包了,另一个不确定。
原因
工业相机丢包原因是什么?
1、可视化软件问题
主要查看图像空间等待可视化软件进行计算,是否存在缓冲机制,以增加图像缓存的缓冲时间,从而可以处理程序的操作。如果图像在稳定操作下比CPU的整体处理速度更快地进入,则当缓存过载时,将发生帧丢失。
简而言之:一次性给予的数据太多处理不多来,所以丢包了。如果有缓存机制一定程度上能解决这个问题,但不能彻底解决。
2、工业相机本身问题
图像传感器首先将图像传送到工业相机的芯片,然后传送到PC。如果PC系统太忙而不能及时处理接收到的图像,并且图像传感器继续传送新图像,则工业相机必须有足够的存储器缓存,否则它将导致帧丢失。
在PC来不及处理的情况下,相机会把一定数量的图像存储在自身缓存中,也能在一定程度上保留图像数据。
3、PC系统硬件原因
PC硬件驱动程序有偏差。对于PC机来说,最重要的事情是驱动程序的效率和CPU中内核模式的线程数。接收效率不高,工业相机没有足够的缓冲存储器。帧丢失也会发生。
工业相机出现掉帧现象的原因是数据通道被阻塞,无法进行技术处理。因此,当捕获新图像时,可以强制丢弃先前图像,或者强制丢弃新图像。为了解决这个问题,设计者需要精确地设计驱动和工业相机硬件数据传输的每个部分。
工业相机出现掉帧现象的原因是数据通道被阻塞,无法进行技术处理。因此,当收集新图像时,可以强制丢弃先前的图像,或者强制丢弃新图像。一般来说,工业相机的帧丢失与工业相机所使用的传输接口无关。无论是USB、1394、GigE还是相机链接,设计不当的驱动程序或工业相机硬件都是帧丢失的真正原因。
总的来说:当PC因各种原因,对数据的处理数据慢于接受的数据,额外的数据就可能被丢弃,从而造成丢包。提高驱动效率增加线程数,保持数据通道畅通,提高PC的数据处理能力才能真正解决丢包问题。
解决方法
精确地设计驱动和工业相机硬件数据传输的每个部分。从上述三方面着手,处理相机丢包问题。
1、增加相机的缓存区大小
2、增加相机缓存机制
3、加强pc处理能力
虽然上面这么说,但是不知道怎么做
但是如果自己写软件,可以使用
1、多线程方式。创建多个线程,分别侦听各个端口上的连接。
2、用poll或epoll方式,异步接收每个端口上的数据。
3、创建缓存区,定时读取缓存内容(加锁)。
还是不会
现成的相机和软件的丢包处理方式:
1、推荐使用英特尔芯片的千兆网口
2、PC设置:
(1)网卡巨型帧为9KB或9014字节
控制面板搜索网络共享中心→属性→ 巨型帧
(2)设置网卡接收与缓存区最大
控制面板搜索网络共享中心→属性→transmit buffers
(3)关闭网卡休眠节能选项
网卡属性→电源管理→取消✔(允许计算机关闭此设备以节约电源)
3、电源设置
高性能
4、防火墙
关闭防火墙
6、网线选择
千兆网口工业相机需使用超五类及其以上规格网线(cat5e、cat6…)
万兆网口工业相机,根据接口类型,分为光口与电口线缆,电口需使用7类网线(cat7)
7、相机设置
检查相机Transport Layer Control属性下GevSCPSPacketSize,GevSCPD参数数值
(1). 检查Packet Size(GEV SCPD上方的参数)的数值是否为8164/1500
(2). 修改GevSCPD值,视具体情况,调大GevSCPD(400>800>1200…)
(3).开启相机端Pause帧功能,此功能需同步设置网卡端参数(流量控制>启用Rx>Tx)
实操如上,好像有用。
参考
参考链接:
工业相机丢帧的原因 - 知乎 (zhihu.com)[相机配置] 海康相机丢包配置环境_丶布布的博客-CSDN博客_jumbo packet设置文章来源:https://www.toymoban.com/news/detail-490802.html
实时摄像头数据传输丢包问题_魏波.的博客-CSDN博客_摄像头丢包怎么解决文章来源地址https://www.toymoban.com/news/detail-490802.html
到了这里,关于视觉检测系统设计过程中遇到的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!