CN105574860A - 一种舵片偏转极性识别方法 - Google Patents
一种舵片偏转极性识别方法 Download PDFInfo
- Publication number
- CN105574860A CN105574860A CN201510925888.4A CN201510925888A CN105574860A CN 105574860 A CN105574860 A CN 105574860A CN 201510925888 A CN201510925888 A CN 201510925888A CN 105574860 A CN105574860 A CN 105574860A
- Authority
- CN
- China
- Prior art keywords
- rudder
- image
- rudder sheet
- value
- width
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10004—Still image; Photographic image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20048—Transform domain processing
- G06T2207/20061—Hough transform
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30108—Industrial image inspection
Landscapes
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
一种舵片偏转极性识别方法,本发明属于图像处理方法,解决舵片偏转过程中舵片偏转角度过小,依靠人眼识别可靠性得不到保证,而现有基于机器视觉的识别方法测试过程效率低的问题,用于各种具备舵片的设备测试过程中对于舵片偏转极性的自动识别。本发明的基本思想是通过相机采集静态或动态舵片图像,通过滤波、形态学闭运算和空洞填补等预处理后,提取出舵片区域,计算出舵片区域的质心和面积作为识别特征量,且在此基础上考虑邻帧的影响,有效得识别舵片的偏转极性。本发明效果硬件简单,效率高,可靠性高。
Description
技术领域
本发明属于图像处理方法,具体涉及一种舵片偏转极性识别方法,用于各种具备舵片的设备测试过程中对于舵片偏转极性的自动识别。
背景技术
在航天、船舶、导弹测试等很多领域的测试过程中,需要自动识别出舵片的偏转极性,然而舵片本身体形很小,偏转速度极快且在测试过程中偏转角往往很小,在极端的情况下,最大偏转角甚至仅为2°,人工判读时由于偏转角过小以及偏转速度极快,而难以识别,而且存在人为误差,因此,迫切需求一种基于机器视觉的自动高效识别系统。
目前,舵片的偏转极性的判断多是依靠熟练的测试员肉眼判断,这样对于测试员的要求较高而且人为误差较大,其他领域的基于机器视觉的识别系统,针对小目标物体,都是依靠在目标物体上贴特殊标签,然后通过检测标签上的目标来识别,见专利申请公开号CN104835173A、一种基于机器视觉的定位方法,该发明首先通过设计定位数字标签,将其粘贴在小车上,车载视觉系统获取包含标签的图像,然后运用一定的算法对图像进行处理并识别出标签的位置、内容与偏转角度,最终通过标定相机的距离关系表与相关坐标变换将标签的位置、内容与偏转角度转化为小车在环境中的位置与姿态信息,实现小车在环境中的定位。
由于舵片很小,如果将上述方法应用于舵片偏转的极性识别,必然也要运用数字标签,首先,这增加了测试过程的复杂性,如果舵片数目多,贴标签的方式本身就会降低效率,其次,标签可能对舵片本身造成影响,由于标签的粘性可能对舵片造成污染,再者,标签的可靠性得不到保证,如果测试过程中,标签由于某些原因而遭到破坏或丢失,那么测试过程也不得不终止,造成的损失是不可估量的。
为便于理解本发明,以下对有关术语加以解释:
轮廓的(p,q)矩:一个轮廓的(p,q)矩mpq定义为其中,I(x,y)表示图像中坐标为(x,y)的像素点灰度值,x、y分别为像素点的横纵坐标,p、q均为正整数;
根据该轮廓的(p,q)矩mpq,可以计算该轮廓的质心坐标
其中m10为该轮廓的(1,0)矩,m01为该轮廓的(0,1)矩,m00为该轮廓的(0,0)矩。
本发明中使用OpenCV库,OpenCV库全称为OpenSourceComputerVisionLibrary,由美国Intel公司建立,它是一个开源发行的跨平台计算机视觉应用程序库,包括很多图像处理和计算机视觉方面的通用算法,可以运行在Linux、Windows和MacOS操作系统上;目前由WillowGarage公司提供支持。
本发明中使用平面直角坐标系,图像原始直角坐标系x-y以图像最左上角像素点为坐标原点O,x轴正方向为水平向右方向,y轴正方向为竖直向下方向。
发明内容
本发明提供一种舵片偏转极性识别方法,解决舵片偏转过程中舵片偏转角度过小,依靠人眼识别可靠性得不到保证,而现有基于机器视觉的识别方法测试过程效率低的问题。
本发明所提供的一种舵片偏转极性识别方法,其特征在于,包括以下步骤:
步骤一:在测试指令发出前,通过相机采集静态的舵片图像,所述舵片图像系相机镜头取景方向与各舵片旋转轴所在平面垂直所摄取的图像;
步骤二:从舵片图像中确定出对应各个舵片的掩模并保存;各个掩模选取的原则是确保舵片处于该掩模内且掩模的最左上角像素点处于背景而不是舵片上;
步骤三:利用所述各掩模,从所述舵片图像中提取出对应各个舵片的感兴趣区域(ROI)图像;
步骤四:分别对各幅感兴趣区域图像利用高斯-拉普拉斯算子进行边缘检测,再进行霍夫变换,检测出各感兴趣区域图像中的舵片边缘直线段,求出各感兴趣区域图像中长度最长的直线段与水平方向所夹的不大于90°的角度αi,1≤i≤N,N为舵片个数;
步骤五:分别对各幅感兴趣区域(ROI)图像进行中值滤波,得到滤波图像;
步骤六:对各幅滤波图像利用迭代法分别确定最佳阈值,再利用各最佳阈值分别对各幅滤波图像进行图像分割,各幅滤波图像中,灰度值大于最佳阈值的像素置白,其它像素置黑,得到对应各个舵片的黑白二值图像;
步骤七:对各幅黑白二值图像进行形态学闭运算,得到对应的去噪图像;再对各幅去噪图像进行空洞填补,得到对应的静态预处理图像;
形态学闭运算是先膨胀后腐蚀,黑白二值图像白色区域边界不平滑,且内部存在空洞,通过形态学闭运算平滑了白色区域的边界,去除了孤立噪声点,在一定程度上填补了空洞,同时不显著改变白色区域的面积;
步骤八:找出各幅静态预处理图像中白色区域最大的外轮廓,各幅静态预处理图像中最大外轮廓包含的白色区域即作为对应的舵片区域,计算出各最大外轮廓包含的白色区域面积Si0作为对应舵片的初始零位面积;
步骤九:计算各幅静态预处理图像中舵片区域的质心坐标(xi0,yi0),并通过坐标变换与降维得到舵片区域一维质心坐标xi0',作为各舵片的初始零位质心坐标;
步骤十:将第一寄存器、第二寄存器均赋值为0,测试指令发出以后,通过相机连续采集动态的舵片图像;所述第一寄存器用于保存识别结果,第一寄存器的值为0、1或-1,分别表示舵片未偏转、舵片正偏转、舵片负偏转;第二寄存器用于用于保存辅助识别结果,第二寄存器的值为0和1,分别表示本次识别未满足全部识别条件和满足全部识别条件;
步骤十一:对每次采集的动态的舵片图像进行步骤三、步骤五~步骤七,得到对应的动态预处理图像,直至测试结束;
步骤十二:找出各幅动态预处理图像中白色区域最大的外轮廓,各幅动态预处理图像中最大外轮廓包含的白色区域即作为对应的舵片区域,计算出各最大外轮廓包含的白色区域面积Si作为对应舵片的当前面积;
步骤十三:计算各幅动态预处理图像中舵片区域的质心坐标(xi,yi),并通过坐标变换与降维得到舵片区域一维质心坐标xi',作为各舵片的当前质心坐标;
步骤十四:计算各幅动态预处理图像中舵片的质心变化Δxi'=xi'-xi0'与舵片的面积变化ΔSi=Si-Si0;
步骤十五:判断是否|Δxi'|<Δx'gate,Δx'gate为质心阈值,是则判定舵片处于零位未偏转,并将第一寄存器和第二寄存器均赋值为0,转步骤十一,进行下一次识别;否则判断是否|ΔSi|<ΔSgate,ΔSgate为面积阈值,是则读出第一寄存器的值作为当前识别结果,将第二寄存器赋值为0,转步骤十一,进行下一次识别;否则进行步骤十六;
其中, RH、RV分别为相机水平分辨率和垂直分辨率,Δx'gate和ΔSgate的选取与实际系统识别灵敏度要求、舵片表面积、相机分辨率及舵片最大偏转角相关,系统识别灵敏度要求越高、舵片表面积越小、相机分辨率越低或舵片最大偏转角越小,则Δx'gate和ΔSgate越小;
步骤十六:判断第二寄存器的值是否为1,是则进行步骤十七,否则进行步骤十八;
步骤十七:将第二寄存器清0,判断是否Δxi'>0,是则识别舵片偏转极性为正,将第一寄存器赋值为1,转步骤十一,进行下一次识别;否则识别舵片偏转极性为负,将第一寄存器赋值为-1,转步骤十一,进行下一次识别;
步骤十八:读出第一寄存器的值作为当前识别结果,并将第二寄存器赋值为1,转步骤十一,进行下一次识别。
所述的舵片偏转极性识别方法,其特征在于:
所述步骤四中,先对各幅感兴趣区域图像利用高斯-拉普拉斯算子进行边缘检测,然后利用OpenCV库的HoughLinesP函数进行霍夫变换,检测出各感兴趣区域图像中的舵片边缘直线段;其中,高斯-拉普拉斯算子为
先利用高斯-拉普拉斯算子进行边缘检测,粗略检测边缘点,是为了加快霍夫变换的速度;
由于静态的舵片图像中,舵片与其旋转轴线平行的方向上的边缘直线段最长,因此在检测出来的直线段中,将长度最长的直线段作为舵片,该直线段与水平方向所夹的不大于90°的角度αi为舵片与水平方向的夹角。
所述的舵片偏转极性识别方法,其特征在于:
所述步骤六中,利用迭代法分别确定最佳阈值包括下述子步骤:
(1)将滤波图像的灰度平均值赋予阈值变量T,置迭代次数变量j=1;
(2)以T为阈值,将滤波图像的各像素灰度值分为灰度值集合Gj1和Gj2,Gj1中各像素灰度值大于T,Gj2中各像素灰度值不大于T,分别计算Gj1和Gj2的平均灰度值uj1和uj2;
(3)将j+1的值赋予j,计算新阈值Tj:
(4)判断是否|Tj-T|<Tgate,是则以Tj作为最佳阈值,结束;否则转步骤(5);其中Tgate为设定误差限,0<Tgate≤10,系统识别速率要求越高,Tgate越大;
(5)判断是否j≥Ngate,是则求出滤波图像的最大灰度值Max和最小灰度值Min,将的值作为最佳阈值,结束;否则将Tj值赋予T,转步骤(2);其中Ngate为设定迭代次数,5≤Ngate<1000,系统识别速率要求越高,Ngate越小。
所述的舵片偏转极性识别方法,其特征在于:
所述步骤七中,对各幅去噪图像进行空洞填补,包括下述子步骤:
(1)以去噪图像最左上角像素点作为基础点,步骤二中掩模的选取原则已经保证了最左上角像素点(基础点)位于背景而非舵片上,利用OpenCV库中的填充函数cvFloodFill将该基础点所在连通域(背景)用白色像素值255填充,得到填充图像;
(2)将所述填充图像进行二值反转:所有灰度值为255的像素点,其灰度值变为0;所有灰度值为0的像素点,其灰度值变为255,得到反转图像;
(3)将反转图像与去噪图像对应各像素点的灰度值相加,相加后灰度值超过255的像素点,其灰度值为255,得到静态预处理图像。
所述的舵片偏转极性识别方法,其特征在于:
所述步骤八和步骤十二中,利用OpenCV库的cvFindContours函数找出各幅静态预处理图像或动态预处理图像中白色区域最大的外轮廓;
利用OpenCV库的cvContourArea函数计算出各最大外轮廓包含的的白色区域面积Si0或Si。
所述的舵片偏转极性识别方法,其特征在于:
所述步骤九包括下述子步骤:
(1)利用OpenCV库的cvGetSpatialMoment函数计算出各幅静态预处理图像中白色区域最大外轮廓的(1,0)矩(0,1)矩和(0,0)矩
(2)计算出各幅静态预处理图像中各舵片区域的质心坐标(xi0,yi0),其中
(3)对各质心坐标(xi0,yi0)进行坐标变换与降维:
以βi表示该舵片旋转轴顺时针旋转至与x坐标轴正向平行方向所旋转的最小角度,以θi表示测试之前规定的该舵片偏转极性为正的方向与x坐标轴正向所夹的角度,αi表示该舵片与x坐标轴不超过90°的夹角;
若βi≤90°且θi≤90°,则xi0'=yi0·cosαi+xi0·sinαi;
若βi≤90°且θi>90°,则xi0'=-yi0·cosαi-xi0·sinαi;
若βi>90°且θi≤90°,则xi0'=-yi0·cosαi+xi0·sinαi;
若βi>90°且θi>90°,则xi0'=yi0·cosαi-xi0·sinαi;
所述步骤十三包括的子步骤与步骤九相同,区别仅在于用动态预处理图像代替静态预处理图像,用质心坐标(xi,yi)代替(xi0,yi0),用xi'代替xi0'。
本发明基本步骤是:相机采集静态或动态图像,根据掩模获得各个舵片的感兴趣区域图像,先对各个感兴趣区域图像进行中值滤波,消除椒盐噪声的影响,然后利用迭代法确定最佳阈值,将各感兴趣区域图像分割成黑白二值图像,再进行形态学闭运算,既消除了孤立噪声点,又能够在一定程度上填充内部空洞,然后进行基于代数运算的空洞填补,彻底填补空洞,得到静态或动态预处理图像,找出各幅静态预处理图像或动态预处理图像中白色区域最大的外轮廓,各最大外轮廓包含的白色区域即作为对应的舵片区域,计算出舵片区域的面积和经过坐标变换与降维后的质心坐标,对应静态图像得到的各舵片区域面积和质心坐标分别作为舵片的初始零位面积和初始质心坐标,对应动态图像得到的各舵片区域面积和质心坐标分别作为舵片的当前面积和当前质心坐标,分别比较当前质心坐标和当前面积相对初始零位质心坐标和初始零位面积的变化,即可识别舵片当前的偏转极性。
本发明的硬件环境包括相机A、处理器B和应用对象,应用对象包括多个舵片,图1中以一号舵片1~四号舵片4共四个舵片为例,相机A实时采集舵片图片,并传送至处理器B,然后在处理器B上使用本发明实现舵片偏转的极性自动快速识别。
如图2所示,舵片的M端为舵片尾部,虚线为其旋转轴L,舵片运动中检测尾部M绕旋转轴L的偏转极性,由于舵片本身的不对称性,决定了其质心偏向M端。
如图3所示,舵片图像在x-y平面内,各舵片旋转轴轴线的交点W,朝向W方向,当舵片M端的位置相对旋转轴处于逆时针旋转后的位置,识别舵片偏转极性为正,当舵片M端的位置相对旋转轴处于顺时针旋转后的位置,识别舵片偏转极性为负,当M端的位置相对旋转轴位置未变,识别舵片偏转极性为未偏转;
因此,一号舵片1的偏转极性为正的方向为在x-y平面内与一号舵片1旋转轴垂直且与x坐标轴正向夹角不超过90°的方向;三号舵片3的偏转极性为正的方向为在x-y平面内与三号舵片3旋转轴垂直且与x坐标轴正向夹角不小于90°的方向;二号舵片2的偏转极性为正的方向是在x-y平面内与二号舵片2旋转轴垂直且与x坐标轴正向夹角不超过90°的方向;四号舵片4的偏转极性为正的方向是在x-y平面内与四号舵片4旋转轴垂直且与x坐标轴正向夹角不小于90°的方向;当前二号舵片2、三号舵片3、四号舵片4处于零位,识别极性为未偏转;一号舵片1偏转极性为负(M端位置相对初始零位位置位于逆时针旋转方向)。P1是一号舵片1处于初始零位时的舵片的质心,P2是当前偏转极性为负时舵片的质心,由于舵片形状的不对称性,P2必然处于P1的左下方,舵片M端的位置相对旋转轴处于顺时针旋转后的位置,因此,根据P2、P1的相对位置即可识别偏转极性,为了提高识别可靠性,本发明在以质心变化为主要识别准则的基础上,添加了面积变化作为辅助识别准则,动态图像中由于舵片偏转了一定角度,舵片的面积必然大于静态图像(舵片处于初始零位)中舵片的面积,因此仅当动态图像中舵片面积相对静态图像中舵片面积的变化超过一定阈值才说明舵片真正偏转,并且考虑邻帧识别结果对本次识别结果的影响。
图像是一个二维矩阵,图像上的各像素点的坐标为二维坐标,因此计算出来的舵片的质心坐标也是二维坐标,而且舵片的偏转极性方向与默认的图像原始坐标系方向(水平方向和垂直方向)不一致,直接通过二维质心坐标识别偏转极性比较困难,因此,识别之前对质心坐标进行坐标变换与降维,使得新坐标系的方向与舵片偏转极性方向一致,而且由二维坐标变为一维坐标。以图1中的四个舵片为例说明,图4是三号舵片3的坐标变换原理图,以β3表示三号舵片3的旋转轴顺时针旋转至与x坐标轴正向平行方向所旋转的最小角度,以θ3表示规定的三号舵片3偏转极性为正的方向(规定该方向为在x-y平面内与三号舵片3旋转轴垂直且与x坐标轴正向夹角不小于90°的方向)与x坐标轴正向所夹的角度,α3表示三号舵片3与x坐标轴不超过90°的夹角,四边形ABCD是三号舵片3处于初始零位时从静态舵片图像中提取出来的三号舵片3的形状,五边形EFGHI是三号舵片3偏转一定角度后从舵片尾部图像中提取出来的舵片的形状,初始零位时三号舵片3质心为O',偏转一定角度后三号舵片3的质心为P,P在原始图像直角坐标系x-y中坐标为(x,y),x'-y'坐标系为变换后的直角坐标系,O0是x'-y'坐标系的原点,x'轴正方向与三号舵片偏转极性为正的方向一致,且x'轴经过O',P点在x'-y'坐标系中x'、y'轴上的投影分别为P1和P2,舵片偏转过程中,通过计算P在x'轴上投影P1的坐标值与O'在x'轴上投影的坐标值的差值,即可识别三号舵片3的偏转极性,若该差值大于0,说明P1相对O'的方向为x'正方向,则三号舵片偏转极性为正,若该差值小于0,则三号舵片3的偏转极性为负,若差值为0,则三号舵片3处于零位未偏转。图4中,线段P1O'的长度和方向表示了上述差值,本发明中,为了消除随机噪声的影响,所计算的上述差值不是与0比较,而是与质心阈值Δx'gate比较;
在二维空间,旋转可以用一个单一的角θ定义,约定正角表示逆时针旋转,则将某列向量关于原点逆时针旋转θ的变换矩阵为:
图4中,坐标系x-y向坐标系x'-y'坐标变换的旋转角为270°-α3,α3为三号舵片3与x坐标轴所夹的不超过90°的角,因此坐标变换为:
由于仅需要x'轴上的投影坐标,因此继续降维:
x'=y·cosα3-x·sinα3,
因此,三号舵片3的坐标变换与降维公式为:
x'=y·cosα3-x·sinα3;
一号舵片1的坐标变换和降维与三号舵片3的坐标变换与降维相似,区别在于:一号舵片1与x坐标轴所夹的不超过90°的角为α1,规定一号舵片1偏转极性为正的方向(在x-y平面内与一号舵片1旋转轴垂直且与x坐标轴正向夹角不超过90°的方向)与三号舵片3偏转极性为正的方向相反,一号舵片1偏转极性为正的方向与x坐标轴正向所夹的角度为θ1,因此,一号舵片1的坐标变换与降维公式与三号舵片3的坐标变换与降维公式仅仅相差一个符号,一号舵片1的坐标变换与降维公式为x'=-y·cosα1+x·sinα1;
图5是二号舵片2的坐标变换原理图,以β2表示二号舵片2的旋转轴顺时针旋转至与x坐标轴正向平行方向所旋转的最小角度,以θ2表示规定的二号舵片2偏转极性为正的方向(规定该方向为在x-y平面内与二号舵片2旋转轴垂直且与x坐标轴正向夹角不超过90°的方向)与x坐标轴正向所夹的角度,α2表示二号舵片2与x坐标轴不超过90°的夹角,四边形A1B1C1D1是舵片2处于初始零位时从静态舵片图像中提取出来的二号舵片2的形状,初始零位二号舵片2的质心为O”,五边形E1F1G1H1I1是二号舵片2偏转一定角度后从动态舵片图像中提取出来的二号舵片2的形状,初始零位时二号舵片2质心为O”,偏转一定角度后二号舵片2的质心为P',P'在原始图像直角坐标系x-y中坐标为(x,y),x'-y'坐标系为变换后的直角坐标系,O”是x'-y'坐标系的原点,x'轴正方向与二号舵片2偏转极性为正的方向一致,P'点在x'-y'坐标系中x'、y'轴上的投影分别为P1'和P2',二号舵片2偏转过程中,通过计算P'在x'轴上投影P1'的坐标值与O”在x'轴上的投影坐标值的差值,即可识别二号舵片2的偏转极性,若该差值大于0,说明P1'相对O”的方向为x'正方向,则二号舵片偏转极性为正,若该差值小于0,则二号舵片2的偏转极性为负,若差值为0,则二号舵片2处于零位未偏转。图5中,线段P1'O”的长度和方向表示了上述差值,本发明中,为了消除随机噪声的影响,所计算的上述差值不是与0比较,而是与质心阈值Δx'gate比较;
图5中,坐标系x-y向坐标系x'-y'坐标变换的旋转角为270°+α2,α2为二号舵片2与x坐标轴所夹的不超过90°的角,因此坐标变换为:
由于仅需要x'轴上的投影坐标,因此继续降维:
x'=y·cosα2+x·sinα2
因此,二号舵片2的坐标变换与降维公式为:
x'=y·cosα2+x·sinα2
四号舵片4的坐标变换和降维与二号舵片2的坐标变换与降维相似,区别在于:四号舵片4与x坐标轴所夹的不超过90°的角为α4,规定四号舵片4偏转极性为正的方向(在x-y平面内与四号舵片4旋转轴垂直且与x坐标轴正向夹角不小于90°的方向)与二号舵片2偏转极性为正的方向相反,四号舵片4偏转极性为正的方向与x坐标轴正向所夹的角度为θ4,因此,四号舵片4的坐标变换与降维公式与二号舵片2的坐标变换与降维公式仅仅相差一个符号,四号舵片4的坐标变换与降维公式为x'=-y·cosα4-x·sinα4;
舵片初始零位质心坐标的坐标变换与降维公式总结为:
若βi≤90°且θi≤90°,则坐标变化与降维公式为:xi0'=yi0·cosαi+xi0·sinαi;
若βi≤90°且θi>90°,则坐标变化与降维公式为:xi0'=-yi0·cosαi-xi0·sinαi;
若βi>90°且θi≤90°,则坐标变化与降维公式为:xi0'=-yi0·cosαi+xi0·sinαi;
若βi>90°且θi>90°,则坐标变化与降维公式为:xi0'=yi0·cosαi-xi0·sinαi;
对于运动中的舵片质心坐标的坐标变换与降维公式,用质心坐标(xi,yi)代替(xi0,yi0),用xi'代替xi0'。
本发明的各步骤中,耗时最多的步骤是步骤四对静态预处理图像通过高斯-拉普拉斯算子进行边缘检测、再通过霍夫变换检测出舵片最长边缘直线以及步骤六迭代法确定最佳阈值,但是由于步骤四仅针对静态预处理图像,而静态预处理图像系在测试过程开始之前舵片未偏转时相机采集的图像,因此这个步骤在测试过程开始时已经完成,对于测试过程的效率没有影响,其次,在霍夫变换之前,进行高斯-拉普拉斯进行边缘检测,本身就能加快霍夫变换的速度,因此在测试过程开始之前的处理,耗时也不多;步骤六中,如果舵片邻近区域的背景与舵片颜色比较接近,则迭代次数可能较多,造成耗时多,但是本步骤设定了最大迭代次数,当迭代次数超过它,将终止迭代,以滤波图像的灰度最小值和灰度最大值的平均值作为最佳阈值,因此该步骤迭代过程不会耗时很多,而除这两个步骤之外的其他步骤耗时都比较少,因此本发明的效率较高,能够实现比较快速的识别舵片偏转极性;本发明的步骤五和步骤七中,针对各个舵片的感兴趣区域图像做了很多的预处理,包括中值滤波,形态学闭运算以及空洞填补,中值滤波能够减小噪声的影响,闭运算能够消除孤立的噪声点,在一定程度上填补了空洞,而在在此基础上进行了基于代数运算的空洞填补,使得得到的舵片区域更加准确,可靠性得到了提高,识别过程中,将质心变化作为主要特征量,面积变化作为辅助特征量,多特征量加强了可靠性,而且在此基础上进行舵片偏转极性的判别时,通过第一寄存器和第二寄存器,考虑了邻帧处理结果,而不仅仅是依赖于本次的识别结果,大大降低了随机误差,因此本发明的可靠性得到了保证,解决了舵片偏转过程中舵片偏转角度过小,依靠人眼识别效率低的问题,
附图说明
图1是本发明的硬件环境示意图;
图2是舵片示意图;
图3是本发明中舵片偏转位置示意图;
图4是本发明实施例中三号舵片3的坐标变换原理示意图;
图5是本发明实施例中二号舵片2的坐标变换原理示意图;
图6是本发明实施例的流程框图.
具体实施方式
以下结合附图及实施例对本发明进一步详细说明。
如图6所示,本发明的实施例针对四个舵片,包含以下步骤:
步骤一:在测试指令发出前,通过相机采集静态的舵片图像,所述舵片图像系相机镜头取景方向与4个舵片旋转轴所在平面垂直所摄取的图像;
步骤二:从舵片图像中确定出对应各个舵片的掩模并保存;
各个掩模选取的原则是确保舵片处于该掩模内且掩模的最左上角像素点处于背景而不是舵片上;
步骤三:利用所述各掩模,从所述舵片图像中提取出对应各个舵片的感兴趣区域图像P1、P2、P3和P4;
步骤四:分别对各幅感兴趣区域图像P1、P2、P3和P4利用高斯-拉普拉斯算子进行边缘检测,然后利用OpenCV库的HoughLinesP函数进行霍夫变换,检测出各感兴趣区域图像中的舵片边缘直线段,求出各感兴趣区域图像中长度最长的直线段与水平方向所夹的不大于90°的角度角α1、α2、α3和α4,为对应各舵片与水平方向的夹角;其中,高斯-拉普拉斯算子为
步骤五:分别对各幅感兴趣区域图像P1、P2、P3和P4进行中值滤波,得到滤波图像P11、P21、P31和P41;
步骤六:对各幅滤波图像P11、P21、P31和P41利用迭代法分别确定最佳阈值,再利用各最佳阈值分别对各幅滤波图像进行图像分割,各幅滤波图像中,灰度值大于最佳阈值的像素置白,其它像素置黑,得到对应各个舵片的黑白二值图像P12、P22、P32和P42;
其中,对滤波图像P11利用迭代法分别确定最佳阈值包括下述子步骤:
(1)计算P11的灰度平均值并赋予阈值变量T,置迭代次数变量j=1;
(2)以T为阈值,将滤波图像P11的各像素灰度值分为灰度值集合Gj1和Gj2,Gj1中各像素灰度值大于T,Gj2中各像素灰度值不大于T,分别计算Gj1和Gj2的平均灰度值uj1和uj2;
(3)将j+1的值赋予j,计算新阈值Tj:
(4)判断是否|Tj-T|<Tgate,是则以Tj作为最佳阈值,结束;否则转步骤(5);其中Tgate=5;
(5)判断是否j≥Ngate,是则求出滤波图像P11的最大灰度值Max和最小灰度值Min,将作为最佳阈值,结束;否则将Tj值赋予T,转步骤(2);其中Ngate=30;
得到滤波图像P11的最佳阈值为75;
对滤波图像P21、P31和P41分别进行上述同样操作,所得到的各自最佳阈值分别为68、70、78;
步骤七:分别对黑白二值图像P12、P22、P32和P42进行形态学闭运算,得到对应的去噪图像P13、P23、P33和P43;
再对各幅去噪图像P13、P23、P33和P43进行空洞填补,得到对应的静态预处理图像P14、P24、P34和P44;
对各幅去噪图像进行空洞填补,包括下述子步骤:
(1)以去噪图像最左上角像素点作为基础点,利用OpenCV库中的填充函数cvFloodFill将该基础点所在连通域用白色像素值255填充,得到填充图像;
(2)将所述填充图像进行二值反转:所有灰度值为255的像素点,其灰度值变为0;所有灰度值为0的像素点,其灰度值变为255,得到反转图像;
(3)将反转图像与去噪图像对应各像素点的灰度值相加,相加后灰度值超过255的像素点,其灰度值为255,得到静态预处理图像;
步骤八:利用OpenCV库的cvFindContours函数分别找出各幅静态预处理图像P14、P24、P34和P44中的白色区域最大外轮廓C1、C2、C3和C4,各最大外轮廓C1、C2、C3和C4包含的白色区域即作为对应的舵片区域,再利用OpenCV库的cvContourArea函数计算出各最大外轮廓包含的白色区域的面积S10、S20、S30和S40作为对应舵片的初始零位面积;
步骤九:计算各幅静态预处理图像中舵片区域的质心坐标(x10,y10)、(x20,y20)、(x30,y30)和(x40,y40),并通过坐标变换与降维得到舵片区域一维质心坐标x10'、x20'、x30'和x40',作为各舵片的初始零位质心坐标;包括下述子步骤:
(1)利用OpenCV库的cvGetSpatialMoment函数分别计算出各幅静态预处理图像中白色区域最大外轮廓C1、C2、C3和C4的(1,0)矩(0,1)矩和(0,0)矩其中i=1、2、3或4;
(2)计算出各幅静态预处理图像中各舵片区域的质心坐标(xi0,yi0),其中
(3)对各质心坐标(xi0,yi0)进行坐标变换与降维:
对于图1中的四个舵片,如图4、图5所示,
由于β1>90°且θ1≤90°,则一号舵片1:x10'=-y10·cosα1+x10·sinα1;
由于β2≤90°且θ2≤90°,则二号舵片2:x20'=y20·cosα2+x20·sinα2;
由于β3>90°且θ3>90°,则三号舵片3:x30'=y30·cosα3-x30·sinα3;
由于β4≤90°且θ4>90°,则四号舵片4:x40'=-y40·cosα4-x40·sinα4;
步骤十:将第一寄存器、第二寄存器均赋值为0,测试指令发出以后,通过相机连续采集动态的舵片图像;
步骤十一:对每次采集的动态的舵片图像进行步骤三、步骤五~步骤七,得到对应的动态预处理图像,直至测试结束;
步骤十二:利用OpenCV库的cvFindContours函数找出各幅动态预处理图像中白色区域最大的外轮廓C1'、C2'、C3'和C4',各幅动态预处理图像中最大外轮廓包含的白色区域即作为对应的舵片区域,利用OpenCV库的cvContourArea函数计算出各最大外轮廓包含的白色区域面积S1、S2、S3和S4作为对应舵片的当前面积;
步骤十三:计算各幅动态预处理图像中舵片区域的质心坐标(x1,y1)、(x2,y2)、(x3,y3)和(x4,y4),并通过坐标变换与降维得到舵片区域一维质心坐标x1'、x2'、x3'和x4',作为各舵片的当前质心坐标;
所述步骤十三包括的子步骤与步骤九相同,区别仅在于用动态预处理图像代替静态预处理图像,用质心坐标(xi,yi)代替(xi0,yi0),用xi'代替xi0'。
步骤十四:计算各幅动态预处理图像中舵片的质心变化Δxi'=xi'-xi0'与舵片的面积变化ΔSi=Si-Si0;
步骤十五:判断是否|Δxi'|<Δx'gate,是则判定舵片处于零位未偏转,并将第一寄存器和第二寄存器均赋值为0,转步骤十一,进行下一次识别;否则判断是否|ΔSi|<ΔSgate,是则读出第一寄存器的值作为当前识别结果,将第二寄存器赋值为0,转步骤步骤十一,进行下一次识别;否则进行步骤十六;其中,质心阈值Δx'gate=1,面积阈值ΔSgate=5;
步骤十六:判断第二寄存器的值是否为1,是则进行步骤十七,否则进行步骤十八;
步骤十七:将第二寄存器清0,判断是否Δxi'>0,是则识别舵片i偏转极性为正,将第一寄存器赋值为1,转步骤十一,进行下一次识别;否则识别舵片i偏转极性为负,将第一寄存器赋值为-1,转步骤十一,进行下一次识别;
步骤十八:读出第一寄存器的值作为当前识别结果,并将第二寄存器赋
值为1,转步骤十一,进行下一次识别。
Claims (6)
1.一种舵片偏转极性识别方法,其特征在于,包括以下步骤:
步骤一:在测试指令发出前,通过相机采集静态的舵片图像,所述舵片图像系相机镜头取景方向与各舵片旋转轴所在平面垂直所摄取的图像;
步骤二:从舵片图像中确定出对应各个舵片的掩模并保存;各个掩模选取的原则是确保舵片处于该掩模内且掩模的最左上角像素点处于背景而不是舵片上;
步骤三:利用所述各掩模,从所述舵片图像中提取出对应各个舵片的感兴趣区域(ROI)图像;
步骤四:分别对各幅感兴趣区域图像利用高斯-拉普拉斯算子进行边缘检测,再进行霍夫变换,检测出各感兴趣区域图像中的舵片边缘直线段,求出各感兴趣区域图像中长度最长的直线段与水平方向所夹的不大于90°的角度αi,1≤i≤N,N为舵片个数;
步骤五:分别对各幅感兴趣区域(ROI)图像进行中值滤波,得到滤波图像;
步骤六:对各幅滤波图像利用迭代法分别确定最佳阈值,再利用各最佳阈值分别对各幅滤波图像进行图像分割,各幅滤波图像中,灰度值大于最佳阈值的像素置白,其它像素置黑,得到对应各个舵片的黑白二值图像;
步骤七:对各幅黑白二值图像进行形态学闭运算,得到对应的去噪图像;再对各幅去噪图像进行空洞填补,得到对应的静态预处理图像;
步骤八:找出各幅静态预处理图像中白色区域最大的外轮廓,各幅静态预处理图像中最大外轮廓包含的白色区域即作为对应的舵片区域,计算出各最大外轮廓包含的白色区域面积Si0作为对应舵片的初始零位面积;
步骤九:计算各幅静态预处理图像中舵片区域的质心坐标(xi0,yi0),并通过坐标变换与降维得到舵片区域一维质心坐标xi0',作为各舵片的初始零位质心坐标;
步骤十:将第一寄存器、第二寄存器均赋值为0,测试指令发出以后,通过相机连续采集动态的舵片图像;所述第一寄存器用于保存识别结果,第一寄存器的值为0、1或-1,分别表示舵片未偏转、舵片正偏转、舵片负偏转;第二寄存器用于用于保存辅助识别结果,第二寄存器的值为0和1,分别表示本次识别未满足全部识别条件和满足全部识别条件;
步骤十一:对每次采集的动态的舵片图像进行步骤三、步骤五~步骤七,得到对应的动态预处理图像,直至测试结束;
步骤十二:找出各幅动态预处理图像中白色区域最大的外轮廓,各幅动态预处理图像中最大外轮廓包含的白色区域即作为对应的舵片区域,计算出各最大外轮廓包含的白色区域面积Si作为对应舵片的当前面积;
步骤十三:计算各幅动态预处理图像中舵片区域的质心坐标(xi,yi),并通过坐标变换与降维得到舵片区域一维质心坐标xi',作为各舵片的当前质心坐标;
步骤十四:计算各幅动态预处理图像中舵片的质心变化Δxi'=xi'-xi0'与舵片的面积变化ΔSi=Si-Si0;
步骤十五:判断是否|Δxi'|<Δx'gate,Δx'gate为质心阈值,是则判定舵片处于零位未偏转,并将第一寄存器和第二寄存器均赋值为0,转步骤十一,进行下一次识别;否则判断是否|ΔSi|<ΔSgate,ΔSgate为面积阈值,是则读出第一寄存器的值作为当前识别结果,将第二寄存器赋值为0,转步骤十一,进行下一次识别;否则进行步骤十六;
其中, RH、RV分别为相机水平分辨率和垂直分辨率,Δx'gate和ΔSgate的选取与实际系统识别灵敏度要求、舵片表面积、相机分辨率及舵片最大偏转角相关,系统识别灵敏度要求越高、舵片表面积越小、相机分辨率越低或舵片最大偏转角越小,则Δx'gate和ΔSgate越小;
步骤十六:判断第二寄存器的值是否为1,是则进行步骤十七,否则进行步骤十八;
步骤十七:将第二寄存器清0,判断是否Δxi'>0,是则识别舵片偏转极性为正,将第一寄存器赋值为1,转步骤十一,进行下一次识别;否则识别舵片偏转极性为负,将第一寄存器赋值为-1,转步骤十一,进行下一次识别;
步骤十八:读出第一寄存器的值作为当前识别结果,并将第二寄存器赋值为1,转步骤十一,进行下一次识别。
2.如权利要求1所述的舵片偏转极性识别方法,其特征在于:
所述步骤四中,先对各幅感兴趣区域图像利用高斯-拉普拉斯算子进行边缘检测,然后利用OpenCV库的HoughLinesP函数进行霍夫变换,检测出各感兴趣区域图像中的舵片边缘直线段;其中,高斯-拉普拉斯算子为
3.如权利要求1所述的舵片偏转极性识别方法,其特征在于:
所述步骤六中,利用迭代法分别确定最佳阈值包括下述子步骤:
(1)将滤波图像的灰度平均值赋予阈值变量T,置迭代次数变量j=1;
(2)以T为阈值,将滤波图像的各像素灰度值分为灰度值集合Gj1和Gj2,Gj1中各像素灰度值大于T,Gj2中各像素灰度值不大于T,分别计算Gj1和Gj2的平均灰度值uj1和uj2;
(3)将j+1的值赋予j,计算新阈值Tj:
(4)判断是否|Tj-T|<Tgate,是则以Tj作为最佳阈值,结束;否则转步骤(5);其中Tgate为设定误差限,0<Tgate≤10,系统识别速率要求越高,Tgate越大;
(5)判断是否j≥Ngate,是则求出滤波图像的最大灰度值Max和最小灰度值Min,将的值作为最佳阈值,结束;否则将Tj值赋予T,转步骤(2);其中Ngate为设定迭代次数,5≤Ngate<1000,系统识别速率要求越高,Ngate越小。
4.如权利要求1所述的舵片偏转极性识别方法,其特征在于:
所述步骤七中,对各幅去噪图像进行空洞填补,包括下述子步骤:
(1)以去噪图像最左上角像素点作为基础点,利用OpenCV库中的填充函数cvFloodFill将该基础点所在连通域用白色像素值255填充,得到填充图像;
(2)将所述填充图像进行二值反转:所有灰度值为255的像素点,其灰度值变为0;所有灰度值为0的像素点,其灰度值变为255,得到反转图像;
(3)将反转图像与去噪图像对应各像素点的灰度值相加,相加后灰度值超过255的像素点,其灰度值为255,得到静态预处理图像。
5.如权利要求1所述的舵片偏转极性识别方法,其特征在于:
所述步骤八和步骤十二中,利用OpenCV库的cvFindContours函数找出各幅静态预处理图像或动态预处理图像中白色区域最大的外轮廓;
利用OpenCV库的cvContourArea函数计算出各最大外轮廓包含的的白色区域面积Si0或Si。
6.如权利要求1所述的舵片偏转极性识别方法,其特征在于:
所述步骤九包括下述子步骤:
(1)利用OpenCV库的cvGetSpatialMoment函数计算出各幅静态预处理图像中白色区域最大外轮廓的(1,0)矩、(0,1)矩和(0,0)矩;
(2)计算出各幅静态预处理图像中各舵片区域的质心坐标(xi0,yi0),其中
(3)对各质心坐标(xi0,yi0)进行坐标变换与降维:
以βi表示该舵片旋转轴顺时针旋转至与x坐标轴正向平行方向所旋转的最小角度,以θi表示测试之前规定的该舵片偏转极性为正的方向与x坐标轴正向所夹的角度,αi表示该舵片与x坐标轴不超过90°的夹角;
若βi≤90°且θi≤90°,则xi0'=yi0·cosαi+xi0·sinαi;
若βi≤90°且θi>90°,则xi0'=-yi0·cosαi-xi0·sinαi;
若βi>90°且θi≤90°,则xi0'=-yi0·cosαi+xi0·sinαi;
若βi>90°且θi>90°,则xi0'=yi0·cosαi-xi0·sinαi;
所述步骤十三包括的子步骤与步骤九相同,区别仅在于用动态预处理图像代替静态预处理图像,用质心坐标(xi,yi)代替(xi0,yi0),用xi'代替xi0'。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510925888.4A CN105574860B (zh) | 2015-12-14 | 2015-12-14 | 一种舵片偏转极性识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510925888.4A CN105574860B (zh) | 2015-12-14 | 2015-12-14 | 一种舵片偏转极性识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105574860A true CN105574860A (zh) | 2016-05-11 |
CN105574860B CN105574860B (zh) | 2018-01-02 |
Family
ID=55884951
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510925888.4A Active CN105574860B (zh) | 2015-12-14 | 2015-12-14 | 一种舵片偏转极性识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105574860B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106023227A (zh) * | 2016-06-02 | 2016-10-12 | 南京康尼机电股份有限公司 | 一种用于轨道车辆门锁开关的非接触监测方法与装置 |
CN106778898A (zh) * | 2016-12-30 | 2017-05-31 | 华中科技大学 | 一种基于运动检测的舵片偏转极性识别方法 |
CN111242942A (zh) * | 2020-01-20 | 2020-06-05 | 深圳市注能科技有限公司 | 一种舵机舵盘的检测方法与检测装置 |
CN112925298A (zh) * | 2021-01-29 | 2021-06-08 | 湖北三江航天红峰控制有限公司 | 一体化多通道自动化测试系统及测试方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010009466A1 (en) * | 2000-01-20 | 2001-07-26 | Nec Corporation | Spatial light communication equipment |
CN103914074A (zh) * | 2014-04-22 | 2014-07-09 | 西北工业大学 | 飞行器推力强耦合解耦方法 |
-
2015
- 2015-12-14 CN CN201510925888.4A patent/CN105574860B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010009466A1 (en) * | 2000-01-20 | 2001-07-26 | Nec Corporation | Spatial light communication equipment |
CN103914074A (zh) * | 2014-04-22 | 2014-07-09 | 西北工业大学 | 飞行器推力强耦合解耦方法 |
Non-Patent Citations (2)
Title |
---|
XIAO WU: "Calculator Chip Locating System Based on Hough Transform and Shape Matching", 《2015 INTERNATIONAL CONFERENCE ON CONTROL, AUTOMATION AND ARTIFICIAL INTELLIGENCE》 * |
江月松等: "一种架束式激光制导仪的基本组成和制导过程", 《光学技术》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106023227A (zh) * | 2016-06-02 | 2016-10-12 | 南京康尼机电股份有限公司 | 一种用于轨道车辆门锁开关的非接触监测方法与装置 |
CN106778898A (zh) * | 2016-12-30 | 2017-05-31 | 华中科技大学 | 一种基于运动检测的舵片偏转极性识别方法 |
CN111242942A (zh) * | 2020-01-20 | 2020-06-05 | 深圳市注能科技有限公司 | 一种舵机舵盘的检测方法与检测装置 |
CN111242942B (zh) * | 2020-01-20 | 2023-11-07 | 深圳市注能科技有限公司 | 一种舵机舵盘的检测方法与检测装置 |
CN112925298A (zh) * | 2021-01-29 | 2021-06-08 | 湖北三江航天红峰控制有限公司 | 一体化多通道自动化测试系统及测试方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105574860B (zh) | 2018-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108122256B (zh) | 一种逼近状态下旋转目标位姿测量的方法 | |
Jimenez et al. | Traffic sign shape classification and localization based on the normalized FFT of the signature of blobs and 2D homographies | |
CN105069389A (zh) | 二维码分块解码方法及系统 | |
CN109409356B (zh) | 一种基于swt的多方向中文印刷体文字检测方法 | |
WO2019056346A1 (zh) | 一种利用膨胀法校正文本图像倾斜的方法及装置 | |
CN105574860A (zh) | 一种舵片偏转极性识别方法 | |
CN103727930A (zh) | 一种基于边缘匹配的激光测距仪与相机相对位姿标定方法 | |
CN110021029B (zh) | 一种适用于rgbd-slam的实时动态配准方法及存储介质 | |
Uchiyama et al. | Toward augmenting everything: Detecting and tracking geometrical features on planar objects | |
CN107545223B (zh) | 图像识别方法及电子设备 | |
CN106709500A (zh) | 一种图像特征匹配的方法 | |
CN104899888A (zh) | 一种基于Legendre矩的图像亚像素边缘检测方法 | |
CN105404868A (zh) | 一种基于交互平台的复杂背景中文本的快速检测方法 | |
US20230095142A1 (en) | Method and apparatus for improving object image | |
Wang et al. | Hand posture recognition from disparity cost map | |
CN109753981B (zh) | 一种图像识别的方法及装置 | |
Hashmani et al. | A survey on edge detection based recent marine horizon line detection methods and their applications | |
CN103093241B (zh) | 基于同质化处理的光学遥感图像非匀质云层判别方法 | |
CN110647821A (zh) | 通过图像识别进行物体标识的方法和装置 | |
CN111178111A (zh) | 二维码检测方法、电子设备、存储介质及系统 | |
CN115205564B (zh) | 基于无人机的船体维护巡检方法 | |
CN112418210A (zh) | 一种杆塔巡检信息智能分类方法 | |
Yang et al. | A perspective correction method based on the bounding rectangle and least square fitting | |
Tong et al. | Correction of perspective text image based on gradient method | |
Huang et al. | An automatic detection and recognition method for pointer-type meters in natural gas stations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |