一、前言
在NVH性能开发过程中,需对整车进行振动试验,进行模态分析。在多个模态频率下,车门、天窗、轮胎或排气系统会产生共振, 形成最大的振幅。如图中排气系统在某个频率下产生了共振,在水平方向产生最大振幅。
二、目标检测
1.图像预处理
由于振动部件的颜色比较明显,振动幅度越大,红色越明显,而静止部分为蓝色。可以尝试将彩色图像RGB转换HSV空间(色差、饱和度、强度)后对蓝色背景进行过滤。
#过滤蓝色部分,将背景转换为白色
def data_prepare(image,index):
imhsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
lower_blue = np.array([100,43,46])
upper_blue = np.array([124,255,255])
lower_white = np.array([0,0,255])
upper_white = np.array([0,0,255])
mask_blue = cv2.inRange(imhsv,lower_blue,upper_blue)
mask_white = cv2.inRange(imhsv,lower_white,upper_white)
mask=mask_blue|mask_white
mask = 255 - mask
res = cv2.bitwise_and(image,image,mask=mask)
#将黑色背景转换为白色背景
res[(res[:,:,0]+res[:,:,1]+res[:,:,2])==0]=[255,255,255]
return res
2.帧间差分法
帧间差分法是将视频流中相邻两帧或相隔几帧图像的两幅图像像素值相减,并对相减后的图像进行阈值化来提取图像中的运动区域。因此,可采用帧间差分法检测振动部件。
1)帧间差分法的优点:算法简单,不易受环境光线影响。
2)帧间差分法的缺点:无法识别静止或运动速度很慢的目标;差分时容易产生孔洞,需做处理。
若相减两帧图像的帧数分别为第 k k k帧、第 k + 1 k+1 k+1帧,其帧图像分别为 f k ( x , y ) f_k(x,y) fk(x,y)、 f k + 1 ( x , y ) f_{k+1}(x,y) fk+1(x,y),差分图像二值化阈值为T,差分图像用D(x, y)表示,则帧间差分法的公式如下:
D ( x , y ) = { 1 , ∣ f k + 1 ( x , y ) − f k ( x , y ) ∣ > T 0 , o t h e r w i s e D(x,y) = \left\{\begin{array}{l}1,\;\;\;\;\left|f_{k+1}(x,y)-f_k(x,y)\right|>T\\0,\;\;\;\;otherwise\end{array}\right. D(x,y)={ 1,∣f