工业相机高速存图丢帧解决方案

一、工业相机在连续存图时为什么会丢帧

1、PC性能不足

当我们在使用windows主机连接工业相机时,不做存图时、采集帧率一般可以跑满,但当我们使用树莓派这种微型计算机平台时,连接2000万分辨率的相机时,采集状态时就会出现大量丢帧、残帧现象,如我过去出现这个现象 出现这种残阵、丢帧的现象的因素有:内存小、读写速度慢、CPU性能不足等 ,无法支持如此大的数据量的处理。

2、硬盘读写速度不够

不管是windows还是linux系统,当采集帧率可以稳定时,需要将采集到的图像存储到硬盘中需要考虑一下几点:

  1. 存图的帧率多少?或者说每秒存入多少MB的的数据
  2. 硬盘的写入速度是多少?

关于第一点,当使用2500万黑白相机存图时、一张图像时25M大小、每秒存一张的话硬盘写入速度至少达到25MB/s,这点大部分硬盘都可以达到。以下为我的硬盘测试读写速度,
在这里插入图片描述
可以我到我的硬盘连续4K读写速度在90MB/s,也就是说当连续存图时,3帧的速度存储时不会丢帧的,但是当存图速度大于3帧时,则会出现丢帧丢图现象,以下为测试结果
当以3帧/秒的速度存储时,保存100张图像,没有丢弃帧数的现象
在这里插入图片描述
当以4帧/秒的速度存储时,保存100张图象则会有丢弃帧数的现象出现
在这里插入图片描述
(以上测试结果以大恒ME2P-2621-15U3M测试结果)


关于第二点,相机的存图都是小文件存储,而市面上大部分硬盘标称的都是大文件顺序存储的速度,在选购硬盘时,注意查看硬盘的4K读写速度在这里插入图片描述

二、避免丢帧的解决方案

1、更换高速固态硬盘

如果想连续存图不丢图、建议采用PCIE4.0的固态硬盘,4K写入速度大于存储速度时,则几乎不会产生丢帧现象。

2、使用商用专业存图软件

使用专业的存图软件如VT-HSS1000、Streampix等高速存图商业软件、这类软件的基本逻辑就是将大量数据存储到内存中,再将内存的图导出到硬盘中。购买这类软件不代表一般的主机使用就可以不丢图,当然也需要配置大内存和高速固态硬盘,厂家会根据客户存图的大小、速度、时长需求配制出合适的主机硬件。

3、将图存到RAM(内存)中

如果内存足够大使用魔方内存工具将自己的部分内存转换为硬盘使用,由于内存的写入速度很快,再存图的过程中基本不会出现丢帧现象,缺点则是电脑内存需要大一些,且容量很小,当你是学生做实验,存储数据小时可以这样使用。
以我的电脑举例,内存64G,分配出30G模拟成硬盘。
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述
可以看到我们成功用内存模拟出了一个30G的硬盘,接下来让我们测试一下他的写入速度。

在这里插入图片描述
可以看到4K顺序写入速度大约为720MB/s,也就是说25M大小的图像可以达到28帧不丢图,接下来我们测试一下,由于USB带宽限制,相机最大速率为15帧/秒,因此我们就用最大速率直接测试。

在这里插入图片描述
在以15帧的速度存储时,存600张图像基本内有丢弃帧数的情况。

三、20230830外置USB存储测试补充

普通的USB3.0外置存储保存图像时,仅仅可以对1Gbps的传输量的数据保证不丢真的连续存储,大部分千兆网口相机都可以满足USB3.0设备满帧存图不丢真。

但是对于USB3.0相机来说,外置USB3.0存储设备写入图片速度远远不足,这个时候需要升级外设,采用USB3.2 Gen2 10G的存储设备进行存图,但是依旧存储速度不足,经过测试,USB3.2 Gen2 10G只能对3.2Gbps的数据量连续存图不丢帧,因此对于USB3.0的相机,只能以80%的帧率进行连续存图不丢帧。

但是把USB外设有更高的速度的设备可以采用如USB3.2 Gen2 x2 20G 这个传输速度的接口足以对USB3.0的工业相机实现连续存图不丢帧。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: QT是一种跨平台的应用程序开发框架,它提供了许多功能和工具来简化软件开发。对于网口工业相机检测,QT可以作为一个使用方便且功能强大的工具来实现。 在使用QT来实现网口工业相机检测时,我们可以利用QT中提供的网络模块来连接相机,并从相机中获取图像。通过设置一个定时器,我们可以定时获取相机图像,并与上一进行对比,以检查是否有失。 首先,我们需要使用QT的网络模块来建立与相机的连接。QT提供了TCP和UDP的网络通信功能,我们可以选择适合相机的通信方式来与相机进行通信。 然后,我们可以使用QT的定时器功能来定时获取相机图像。可以设置一个适当的时间间隔,例如每秒获取一图像。在定时器的槽函数中,我们可以调用相机的API来获取当前的图像。 获取到图像后,我们需要将其与上一进行对比,以检查是否有失。可以通过比较的序号或时间戳来判断图像是否有失。如果发现失,我们可以在界面上显示相应的提示信息,以便后续处理。 在使用QT进行网口工业相机检测时,我们需要熟悉QT的各种功能和API,并理解网口工业相机的相关接口和协议。通过合理地利用QT的功能和工具,我们可以方便地进行相机检测,并及时处理失的图像。 ### 回答2: QT对于网口工业相机检测可以通过以下步骤实现: 首先,需要使用QT进行图像采集和显示。可以使用QT自带的图像采集模块或者调用第三方库来读取网口工业相机的图像。QT提供了强大的图像显示功能,可以显示相机采集的图像。 其次,需要在QT中编写处理图像的算法。针对检测,可以通过比较连续之间的时间戳或号来判断是否有情况发生。可以在每次采集到新的图像时记录下当前的时间戳或号,并与前一的时间戳或号进行比较。如果时间差值或号差值超过一定的阈值,则可以判断为发生了。 接着,可以使用QT的界面设计功能将检测结果可视化。可以在界面上显示当前的号或时间戳,以及检测到的数量。可以通过改变界面上的颜色或文字来提醒用户是否发生了情况。 最后,可以通过QT的多线程编程功能将图像采集和处理分离,以提高系统的并发性能。可以将图像采集和处理的任务分别放在不同的线程中进行,这样可以更好地实现检测的实时性和准确性。 总之,使用QT可以方便地实现网口工业相机检测功能,并通过界面设计功能将检测结果可视化,提高用户的交互体验。 ### 回答3: Qt是一个跨平台应用程序开发框架,可以用于开发各种类型的应用程序,包括工业相机检测系统。 在使用Qt进行网口工业相机检测时,我们可以利用Qt提供的网络模块来实现与工业相机进行数据通信。通过从相机接收图像数据并进行处理,可以检测到是否有失的情况发生。 Qt提供了高效且易用的图像处理库,如OpenCV和Qt Multimedia模块,可以帮助我们实现对图像数据的处理和分析。可以通过设置适当的算法来检测图像中是否失了某些。 此外,Qt还提供了强大的图形界面开发能力,我们可以使用Qt的图形界面设计器设计出直观友好的用户界面,展示相机采集到的图像、显示检测结果等。 在开发过程中,我们可以利用Qt的信号与槽机制来实现相机采集图像数据的实时显示和检测的响应处理。通过设置合适的信号触发条件,当检测到时,我们可以及时发出警告或采取其他适当的处理措施。 综上所述,Qt对于网口工业相机检测提供了全面的支持和强大的开发能力。借助于Qt的跨平台特性和丰富的功能库,我们可以很方便地开发出高效可靠的检测系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

未来超低端科技研究所

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值