一种基于线程池并发技术的实时在线的视觉振动测量方法
技术领域
本发明涉及振动检测技术领域,更具体地说,涉及一种基于线程池并发技术的实时在线的视觉振动测量方法。
背景技术
在已有的振动测量技术中,主要有利用各种应变片或加速度传感器的接触式测量方法和利用激光多普勒效应或激光干涉技术的非接触式测量方法。其中又以加速度传感器等接触式测量方法为主,在应用中存在接触式测量传感器布线麻烦、效率低下、负载效应影响测量结果准确性以及无法测量高温等特殊环境物体等一系列局限性。
随着高速摄像技术和数据传输技术逐步发展,数字相机的拍摄速度越来越快,所拍摄到的图像越来越精细,相机成本也在逐步下降,在这样的背景下,基于高速相机的采用计算机视觉技术的非接触式振动测量方法应运而生,但是这种测量方法需要采集大量的目标物体图像,所涉及到的图像处理分析,其计算量十分繁重,要求CPU的处理速度非常高,否则将会使得这种振动测量过程陷入长时间的等待,无法满足测量现场的实时性要求。虽然CPU不断更新换代,其处理速度不断得到提升,但是如果不能充分利用CPU强大的计算能力,现有的计算机的处理速度面对视觉振动分析的繁重的图像处理分析工作量,还是显得捉衿见肘。
线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中。如果某个线程在托管代码中空闲(如正在等待某个事件),则线程池将***另一个辅助线程来使所有处理器保持繁忙。如果采用线程池并发技术处理高速相机采集到的大量的目标物体图像,将能充分利用CPU计算能力,满足测量现场的实时性要求。
现有技术中已经有大量的利用线程池技术来提高CPU处理能力,完成快速处理问题的技术方案公开,如中国专利申请号201410034750.0,公开公告日为2014年4月23日,发明创造名称为:一种彩色图像数字隐写及其分析方法,该申请案涉及一种彩色图像数字隐写及其分析方法,秘密信息嵌入步骤包括生成通用图像数据缓冲区和数据隐写因子,将彩色图像与数据隐写因子进行一系列函数转换,生成包含隐写数据的彩色图像,秘密信息提取步骤包括:生成通用图像数据缓冲区,将包含隐写数据的彩色图像进行一系列函数转换读取出该隐写数据。本发明通过固化隐写数据,提高隐写速度,降低数据隐写CPU时间和隐写数据读取CPU 时间。该申请案支持多种彩色图像格式,采用线程池技术,提高数据隐写和隐写数据读取并发数。但是在基于非接触式振动检测的技术领域,并没有此类方法用于快速处理高速相机采集到的大量的目标物体图像,从而获得实时在线的物体振动结果。
发明内容
1.发明要解决的技术问题
本发明的目的在于克服现有技术基于非接触式振动检测领域中,不能快速处理高速相机采集到的大量的目标物体图像从而获得实时在线的物体振动结果的不足,提供了一种基于线程池并发技术的实时在线的视觉振动测量方法。采用本发明的技术方案,更充分彻底地利用了CPU的计算处理能力,成倍的加快了视觉振动测量中的图像处理和计算的速度,扩大了计算机视觉在振动测量上的应用。
2.技术方案
为达到上述目的,本发明提供的技术方案为:
本发明的一种基于线程池并发技术的实时在线的视觉振动测量方法,通过高速相机录制目标物体的振动视频,计算机内置的振动测量软件提取出上述目标物体的振动视频包含的每一帧图像,储存在计算机内置的振动测量软件开辟出的内存池中,并由计算机内置的振动测量软件创建线程池,线程池中不同的线程有序提取内存池中相应的图像帧,并发分析得到物体的振动特性。
更近一步地,本发明的步骤如下:
步骤一、获取被测目标物体的振动图像
固定平面标靶到被测目标物体上,调整高速相机方向与镜头焦距,使固定有平面标靶的被测目标物体在高速相机上清晰成像,将实际标靶与标靶成像对比,对高速相机成像进行标定,得到图像与实际物体的尺寸换算关系M;高速相机对被测目标物拍摄一段振动视频,计算机内置的振动测量软件提取出该视频包含的每一帧图像,图像帧编号为j(j=1、2……);
步骤二、创建线程池并分配图像帧
在计算机内置的振动测量软件中开辟一块内存池用于保存高速相机所获得到的目标物体在一段时间内的一定数目帧数的图像;并由计算机内置的振动测量软件中创建一个包含多个线程的线程池,该线程池内的线程可以并行运行于不同CPU内核,每个线程都有一个自身编号,该编号为i(i=1、2、……m,m为线程池的线程总数目),其中,m为正整数;
每一个带有自身编号的线程有序地从内存池中提取相应编号的待分析的图像帧,其提取规则是,第i号线程应分析第j帧图像,其中j=i+n×m(n=0、1、2……);
步骤三、图像处理
计算机内置的振动测量软件提取步骤一中的振动视频的第1帧图像,依据图像处理技术,提取出某测量点的图像特征,计算第1帧图像的该测量点图像特征中心位置,并标记在所有的线程中;
第i号线程提取出第j帧图像的相应测量点图像特征,计算第j帧图像的该测量点图像的特征中心位置,并与计算出的第1帧图像的该测量点图像特征中心位置进行比对,得到第j帧图像对应的测量点的图像位移;然后根据步骤一中得到的图像与实际物体尺寸换算关系M,将第j帧该测量点的图像位移换算成实际的位移;
将所有测量点对应的图像帧的位移信息分解到x、y两个维度上,绘制目标物体振动的位移波形;将两维位移信息做一阶微分运算得到速度信息,绘制目标物体振动的速度波形;根据前面获得的速度信息做一阶微分计算得到加速度信息,绘制目标振动的加速度波形;根据前面获得的位移、速度、加速度信息,做快速傅里叶变换运算得到频域信息,得到振动的频谱,绘制目标振动的频谱波形;根据前述步骤得到的时域和频域信息,可以对振动数据进行统计分析,计算物体的振动模态、监控工作状态,进行故障分析与诊断等。
更进一步地,对相机成像进行标定的方法为:固定平面标靶到被测目标物体上,调整高速相机方向与镜头焦距,使包含平面标靶的被测目标物体在高速相机上清晰成像;高速相机对目标物体的振动情况进行拍摄,得到目标物体的振动视频;由计算机内置的振动测量软件对得到的视频提取出第1帧图像;选取平面标靶所在的图像区域,依据标靶特征识别算法,识别出平面标靶的范围区域;以平面标靶的中心点为坐标原点分别在物体上和图像中建立两个坐标系,根据事先已知的平面标靶实际尺寸和识别出的标靶特征范围区域在图像上的尺寸,计算出高速相机标定的图像与实际物体尺寸换算关系M。
更进一步地,所述的计算机内置的振动测量软件自动获取到计算机的CPU并发内核数目,并创建与CPU并发内核相同数目的线程形成线程池来进行图像分析和计算的并发执行。
更进一步地,所述的高速相机采用CCD或CMOS高速相机,高速相机的采样帧率在100fps以上,本方法能测量到的物体最大振动频率是相机采样帧率的1/2。
3.有益效果
采用本发明提供的技术方案,与现有技术相比,具有如下显著效果:
(1)本发明的一种基于线程池并发技术的实时在线的视觉振动测量方法,利用线程池并发处理技术将从被测目标物体的振动视频中提取的图像分配给不同的线程同时并发处理若干帧,成倍提升了计算机的CPU利用率,大大加快了振动分析计算的过程;有效地实现了视觉振动测量的实时在线分析,提高了现场测量的效率。
(2)本发明的一种基于线程池并发技术的实时在线的视觉振动测量方法,任务适应性和 可扩展性很强,即使更换不同的CPU,也能最大限度地利用CPU的计算能力,由于计算机内置的振动测量软件自动获取到计算机的CPU并发内核数目,并创建与CPU并发内核相同数目的线程形成线程池来进行图像分析和计算的并发执行,所以随着CPU多核技术的飞速发展,***的振动分析速度也能得到快速提升。
(3)本发明的一种基于线程池并发技术的实时在线的视觉振动测量方法,操作方便,实用性高,易于推广使用。
具体实施方式
为进一步了解本发明的内容,结合实施例对本发明作详细描述。
实施例1
本发明的一种基于线程池并发技术的实时在线的视觉振动测量方法,所涉及的装置由6个部分组成,分别是高速相机、镜头、支架、计算机、显示器和电源模块。具体在本实施例中,高速相机采用的是工业高速CMOS相机,采样频率可达到6000fps,镜头采用放大倍率x5的定焦镜头,高速数据传输接口采用USB3.0技术,计算机采用配备高性能CPU和高速大容量内存的工业计算机,显示器采用电阻触摸屏,计算机和显示器之间通过VGA和USB2.0连接。镜头使被测目标物体成像到高速相机的焦面上,高速相机在一定的采样速度下对目标物体的振动影像进行采集,并通过高速数据传输接口实时的将图像传输到计算机,计算机的内置软件对图像进行特征区的识别与跟踪,采用线程池技术,计算出后续各帧中目标物体上的特征点相对于第一帧的位移,根据此位移信息进行计算得出振动的速度和加速度,再根据获得的位移、速度、加速度等时域信息进行频域变换可得出振动的频谱等频域信息。
本装置的测量距离取决于所选用的镜头的放大倍率和焦距,测量精度取决于相机的分辨率,测量频率范围取决于所采用的相机的最大采样帧率,根据采样定律,本方法所涉及的装置能测量到的物体最大振动频率是相机采样率的1/2。
本实施例中一种基于线程池并发技术的实时在线的视觉振动测量方法,具体步骤如下:
步骤一、获取被测目标物体的振动图像
在振动物体上的振动测量点固定平面标靶作为后续特征识别与跟踪的目标,平面标靶的的形状与尺寸后面将用来进行标定参考。调整高速相机方向与镜头焦距,使含有平面标靶的被测目标在高速相机上清晰成像。
测量开始前,设置高速相机的曝光时间、采样帧率和采样帧数等各项参数,高速相机对被测目标物拍摄一段振动视频,计算机内置的振动测量软件提取出该视频包含的每一帧图像,图像帧编号为j(j=1、2……);其中提取出的第1帧图像,选取平面标靶所在的图像区域,依据标靶特征识别算法,识别出平面标靶的范围区域;以平面标靶的中心点为坐标原点分别 在物体上和图像中建立两个坐标系oxy和ouv,根据事先已知的平面标靶实际尺寸和识别出的标靶特征范围区域在图像上的尺寸,计算出高速相机标定的图像与实际物体尺寸换算关系M,计算公式如下:
其中,s为比例因子,令其为1, 根据解一次方程组的基本条件,至少需要标靶上的3个不同特征点的实际物理坐标和图像坐标才可以求解出M矩阵内部的各个元素系数,根据标靶上的3个特征点的坐标值,代入上面的公式中可以得到关于mpq(p=1、2、3,q=1、2、4)的一次方程组,利用高斯消元法可以求解得到M矩阵内部的各个元素系数的值,即求得图像与实际物体尺寸换算矩阵M。
步骤二、创建线程池并分配图像帧
在计算机内置的振动测量软件中开辟一块内存池用于保存高速相机所获得到的目标物体在一段时间内的一定数目帧数的图像;并由计算机内置的振动测量软件创建一个包含多个线程的线程池。其中,计算机内置的振动测量软件自动获取到计算机的CPU并发内核数目,并创建与CPU并发内核相同数目的线程形成线程池来并发进行图像分析和计算的并发执行,***的振动分析方法适应性和可扩展性很强,能够随着CPU多核技术的飞速发展,任务处理速度也能得到快速提升。
该线程池内的线程可以并行运行于不同CPU内核,每个线程都有一个自身编号,该编号为i(i=1、2、……m,m为线程池的线程总数目),其中,m为正整数;
每一个带有自身编号的线程有序地从内存池中提取相应编号的待分析的图像帧,其提取规则是,第i号线程应分析第j帧图像,其中j=i+n×m(n=0、1、2……)。
步骤三、图像处理
计算机内置的振动测量软件提取步骤一中的振动视频的第1帧图像,依据图像处理技术,提取出某测量点的图像特征,计算第1帧图像的该测量点图像特征中心位置,并标记在所有的线程中;
第i号线程提取出第j帧图像的相应测量点图像特征,计算第j帧图像的该测量点图像特征中心位置,并与计算出的第1帧图像的该测量点图像特征中心位置进行比对,得到第j帧 图像对应的测量点的图像位移;然后根据步骤一中得到的图像与实际物体尺寸换算关系M,将第j帧该测量点的图像位移换算成实际的位移,具体算法如下:
根据图像与实际物体尺寸换算关系M,可计算出图像上每一个像素所代表的实际物理坐标,振动视频中的任意一帧图像中的任何一点(u,v)映射到实际场景(x,y)的变换公式如下:
因此,
已知该测量点分别在第1帧和第j帧的图像坐标与相对应的实际坐标后,根据位移公式即可得到第j帧图像的该测量点的图像位移与实际位移。
将所有测量点对应的图像帧的位移信息分解到x、y两个维度上,绘制目标物体振动的位移波形;将两维位移信息做一阶微分运算得到速度信息,绘制目标物体振动的速度波形;根据前面获得的速度信息做一阶微分计算得到加速度信息,绘制目标振动的加速度波形;根据前面获得的位移、速度、加速度信息,做快速傅里叶变换运算得到频域信息,得到振动的频谱,绘制目标振动的频谱波形;根据前述步骤得到的时域和频域信息,可以对振动数据进行统计分析,计算物体的振动模态、监控工作状态,进行故障分析与诊断等。
本实施例的一种基于线程池并发技术的实时在线的视觉振动测量方法,利用线程池并发处理技术将从被测目标物体的振动视频中提取的图像按一定规则分配给不同的线程同时并发处理若干帧,成倍提升了计算机的CPU利用率,大大加快了振动分析计算的过程;有效地实现了视觉振动测量的实时在线分析,提高了现场测量的效率。
实施例2
本实施例中的方法使用步骤及该方法所依赖的装置基本结构同实施例1,不同之处在于,高速相机采用的是CCD高速相机。