行业见解
全面系统集成,优化数据可靠性
发表于12/11/2017
作者:温·哈丁,特约编辑
当AIA在2006年引入使用千兆以太网通信协议的GigE Vision全球摄像机接口标准时,机器视觉客户很快就看到了通过长度达100米的CAT5e和CAT6低成本电缆进行快速、高带宽(125 MB/s)传输的优势。然而,自从GigE Vision成立以来,一些用户报告了图像传输过程中的数据完整性问题——具体来说,GigE摄像头丢包。
根据您所要求的谁,丢弃的数据包的问题从几乎不存在的游戏表运行到频繁和有问题的低风险。虽然他们不同意Gige数据可靠性问题的规律性或严重性,但几乎所有机器视觉系统集成商同意,只有适当的系统设计和开发都可以克服数据完整性问题。
找到更好的方法
GigE Vision通过UDP (user datagram protocol)协议传输图像数据包。UDP报文识别图像号、包号和时间戳,用于在用户内存中构造图像。
与其传输控制协议(TCP)对应物不同,UDP不能保证数据包传送或数据包按顺序提供。因此,Gige Vision采用分组恢复过程,以确保图像不是缺少数据。虽然不需要包恢复实现符合GigE视觉,但大多数高端工业摄像机都有此功能。
即使使用这个包恢复过程,图像数据包掉落仍然会发生。“与GigE Vision相机相比,USB3 Vision有一个很大的优势,那就是我还没有看到一个丢失的信息包,”公司总裁罗伯特•伊斯特伦德说Graftek Imaging,Inc。(德克萨斯州奥斯汀)。“在GigE Vision摄像头中,丢包是一种常见的丢失信息,此外还有各种启动头痛和防火墙问题。”
在部署前测试机器视觉系统时,合格的系统集成商将识别丢失的图像数据,识别丢失数据的来源,并进行相应的故障排除,直到问题消失。Eastlund指出了两个常见的数据包丢失的原因:一个是坏的电缆——这会困扰任何数据网络——或者是不合适的网卡。
Eastlund说:“通常这些问题会发生在你没有提供给客户的网络上。”“你会看到顾客把一根旧的GigE电缆连接到一个新的相机上,他们就会在屏幕上看到一张图像,几秒钟后,图像的一部分消失了,然后图像又回来了,但另一部分却不见了。”
在固定环境中排除丢失的数据包是一回事;在恶劣的零度以下条件下这样做是另一回事。Eastlund有一个客户在阿拉斯加的北坡,那里的相机拍摄的一些图像丢失了10%的数据。虽然他曾一度认为外部电磁干扰可能是丢包的原因,但电缆本身更有可能是罪魁祸首。
伊斯特伦德说:“我可以通过向相机发送一个命令来解决这个问题,让它放慢速度,或者减少带宽的使用,但我宁愿及时得到图像。”“这通常不是一个好的解决方案。这就像买了一辆跑车,然后说它运行得很好,直到你达到80英里/小时,它开始振动。”
在整合工作中,他为客户执行八个系统(加利福尼亚州圣地亚哥)说,他们自己的掉落的框架不是问题。“关注不容易识别掉落的框架,”他说。“Gige Vision标准允许您识别帧号,但它并不明显且应该是。”
缓解丢包或帧的问题需要“了解应用程序,知道丢帧是可以的,还是你根本不能丢帧,”Long说。
心灵的带宽
Brian Durand,公司总裁当解决方案(明尼苏达州圣保罗),只要不超过相机的最大帧率,就不会出现帧或包丢失的问题。杜兰德说:“我们从不使用以太网交换机,而是将每个摄像头连接到自己的专用网络端口上。”“我们使用的网络适配器有多个端口,每个端口都有自己的芯片,为摄像头驱动程序优化并得到支持。所以每个摄像头都是独立的,并获得全带宽。”
这些网络适配器还通过PoE为摄像头供电。此外,杜兰德公司还使用适用于工业环境的高质量屏蔽以太网电缆。
杜兰德说:“我们唯一可能失去一帧图像的情况是图像处理跟不上摄像机的速度。”“我们可以在软件中检测到这种情况,并采取适当的行动。”
杜兰德建议设计相关的控制和设备来假设一个部件是坏的。例如,一个部件拒绝系统应该总是拒绝一个部件,除非视觉系统表明它是好的,而不是假设一个部件是好的,除非视觉系统表明它是坏的。如果电线松动,或者设备被拔下,系统就会拒绝所有部件。
“这种情况很快就会得到操作员的注意力,”Durand说。“不拒绝任何零件是众所周心的,这可能会在一段时间内忽略几小时或几天。“被拒绝的部件溢出到地板上,或者自动停止过度拒绝的设备,比电子邮件或文本提醒更快地引起注意。”
缓解方法
一款精心设计的机器视觉系统将始终找到一种方法来绕过“灾难性场景”,其中Gige Vision相机可能会失去框架,写入Teledyne DALSA的GigE Vision委员会主席埃里克·凯里(Eric Carey)在他的博客中谈到了这个话题。
当相机根本无法捕获图像时,发生了一种这样的场景,最有可能因为相机被触发太快,而且经常触发。相机制造商决定如何处理过触发,通常通过忽略额外触发信号或将其存储,直到它可以在当前帧之后执行。
如果相机捕捉到图像,凯里列举了一些情况,其中一帧在传输前被丢弃。在一种情况下,如果千兆链路太慢而无法支持采集带宽,相机将不得不降低一些帧来调整采集带宽以匹配传输带宽。
另一种情况涉及凸轮在PC在完全暴露之前向相机发送到相机的“触发器之间的竞争和停止之间的比赛条件”。来自不同供应商的摄像机将不同地处理这种情况,因为可能会期待。Carey表示,它取决于集成商设计系统以“以更优雅的方式处理这样的场景”。
大多数系统集成商都同意,100%实时验证数据的唯一方法是缓冲数据。在Camera Link的情况下,帧抓取器存储数据,直到系统准备好。但PC上的GigE端口是由Windows或Linux操作系统运行的,这些操作系统不能实时运行。使用GigE Vision软件,尽量减少CPU占用,实现实时图像采集。
但是,如果传输在PC块上的CPU或总线带宽或其他软件程序上发生图像获取,则会发生数据丢失。通过优先级优先于由操作系统调度的其他操作,专门的驱动程序解决了这个问题。凸轮指出,其他“表现不良的内核驱动程序”可能会限制优化驱动程序的性能,因此风险丢失数据包,他没有看到这种情况。
最后,如果应用程序软件可能无法快速处理数据,如果没有足够的缓冲区以容纳下一个图像,则根据章程,将被丢弃。只要积分器在系统设计期间识别和纠正了这一点和其他上述问题,就不会在操作期间出现问题。
虽然关于数据完整性对设计良好的机器视觉系统会造成多大的威胁仍存在一些争论,但Camera Link、GigE vision和USB3 vision等标准在设计时都考虑到了数据完整性和系统信心。根据Cyth’s Long的说法,当别人模仿你的努力时,你就知道你正在朝着正确的方向前进,比如新兴的嵌入式视觉行业及其对传统机器视觉标准的识别和使用。
“这对这个行业有益,但我想知道它们是针对这个低功耗的空间设计的,是否有积极的参与者试图确定低功耗的单帧按需采集标准,”很长的要求。