一种基于图像处理的油液颗粒检测方法与流程

文档序号:20506567发布日期:2020-04-24 18:01阅读:284来源:国知局
一种基于图像处理的油液颗粒检测方法与流程

本发明涉及图像处理和模式识别技术领域,尤其涉及一种基于图像处理的油液颗粒检测方法。



背景技术:

油液检测技术的出现,起始于磨粒分析技术的需求与应用。油液污染检测技术经过多年的发展,已经形成了很多检测的技术和方法,包括光谱分析法、电测法、铁谱分析法和颗粒计数法等。其中,颗粒计数技术是评定油液内固体颗粒污染程度的一项重要技术。该技术的原理是把油样中的颗粒进行粒度测量,并按照预选的颗粒粒度范围进行计数,从而得到有关颗粒粒度分布方面的重要信息,在判断油液的污染程度方面非常有效。自动颗粒计数法测定油液的污染度自动化程度高,重复性很好,准确性也有保证,可测量不同尺寸范围的颗粒数,因而是油液检测中普遍应用的一种方法,基于图像处理的油液颗粒检测方法属于自动颗粒计数法。现有技术中,大部分的基于图像处理的油液颗粒检测方法主要是先利用油液图像获得背景,然后根据背景和阈值提取颗粒目标。由于对颗粒目标的特征信息利用不足,因此检测结果中容易存在虚假颗粒,使检测结果不准确。



技术实现要素:

为了解决现有技术中存在的问题,本发明提出了一种基于图像处理的油液颗粒检测方法,以便通过求取过滤阈值来排除受灯光闪烁影响的图像进而提高检测的稳定性,通过选取图像对应位置最大像素值作为背景来提高提取目标的能力,通过对候选颗粒分块确认来提高颗粒检测的准确度。

为了实现上述目的,本发明提出了一种基于图像处理的油液颗粒检测方法,所述方法包括以下步骤:

步骤1、控制工业摄像机进行油液图像采集,直至整个检测过程结束为止;

步骤2、控制油液工作泵工作,先进行油液管路的清洗,之后进行颗粒检测;

步骤3、对步骤1所采集的图像进行图像预处理:判断图像的亮度是否满足继续检测的条件,当不满足时,则终止检测过程;当满足时,过滤掉受灯光闪烁影响的油液图像;

步骤4、在步骤3处理所得的油液图像中,每当油液图像的帧数达到nb时,则进行一次背景建模,其中nb≥100;

步骤5、根据获得的背景和预设的背景阈值,获取当前油液图像的候选颗粒二值化图像,其中,所选用的背景与所述当前油液图像所处的帧数是相对应的;

步骤6、对候选颗粒的二值化图像进行数学形态学运算;

步骤7、利用区域生长算法求连通区域,对每个候选颗粒图像进行截取,并进行初步筛选;

步骤8、计算步骤5所涉及的当前油液图像中的每个候选颗粒图像的梯度图像;之后对每个候选颗粒图像的梯度图像进行分块统计,以确认候选颗粒的真实性;之后计算颗粒边缘平均灰度值;

步骤9、利用颗粒边缘平均灰度值,获取步骤5所涉及的当前油液图像中的候选颗粒图像的二值化图像;

步骤10、对颗粒的颗粒类型进行识别,所述颗粒类型包括固态颗粒、水珠和气泡;

步骤11、计算颗粒的相对直径,之后按尺度分段进行计数和污染度标准值换算;

步骤12、根据统计结果生成油液检测分析报告。

优选的是,所述步骤3包括以下步骤:

步骤31、首先将步骤1所采集的图像放缩到合适大小,其中步骤1所采集的图像为灰度图,像素值范围为0到255;判断图像的亮度是否满足继续检测的条件的方法如下:计算并统计工业摄像机所采集的前ng帧图像的平均灰度值,并计算前ng帧图像的平均灰度值的平均值,如果该平均值小于lmin,则认为图像的亮度不满足继续检测的条件,则终止检测过程;如果该平均值大于等于lmin,则认为图像的亮度满足继续检测的条件,跳转至步骤32,其中lmin根据需要而设定;

步骤32、在工业摄像机所采集的前ng帧图像之后的油液图像中,每当油液图像的帧数达到np时,则进行一次过滤阈值t的计算,以过滤掉受灯光闪烁影响的油液图像,其中np≥100,所述过滤阈值t=ave-a×std,其中ave表示的是np帧图像的平均灰度值的平均值,std表示的是np帧图像的平均灰度值的标准差,a根据精度要求而设定;上一组np帧之后的第k帧油液图像是否受灯光闪烁影响,k<np,是判断该第k帧油液图像的平均灰度值是否小于上一组np帧图像所计算出的过滤阈值,当小于时,则直接过滤掉该第k帧油液图像,以排除灯光闪烁的影响;当大于等于时,该第k帧油液图像会作为步骤3处理所得的油液图像进入步骤4中进行下一步的处理,同时该第k帧油液图像会作为下一组np帧图像中的一帧图像。

优选的是,所述步骤4中的背景建模过程如下:每当油液图像的帧数达到nb时,在同一位置,选取最高的像素值作为背景像素值,利用公式进行,在同一位置(xi,yj),如果图像的像素值an(xi,yi)大于背景的像素值f(xi,yi),则用图像的像素值an(xi,yi)更新背景对应位置的像素值,否则的话,背景对应位置的像素值f(xi,yi)不变。

优选的是,所述步骤5中的当前油液图像的候选颗粒二值化图像获取过程如下:按照公式进行,在同一位置(xi,yj),如果背景的像素值f(xi,yi)与图像的像素值an(xi,yi)之差大于背景阈值s,则判定是候选颗粒,将二值化图像像素值置为0,否则置为255,其中s根据需要而设定。

优选的是,所述步骤6中的数学形态学运算包括对候选颗粒的二值化图像进行闭操作,即先进行膨胀操作,后进行腐蚀操作。

优选的是,所述步骤8包括以下步骤:

步骤81、计算步骤5所涉及的当前油液图像中的每个候选颗粒图像的梯度图像:采用sobel边缘检测算子计算每个候选颗粒图像的梯度图像,采用的求梯度幅值的方法为其中g(i,j)表示梯度幅值,fx表示水平方向梯度分量,fy表示垂直方向梯度分量;

步骤82、将每个梯度图像的候选颗粒区域以nt×nt为分块单位进行分块,nt为正整数,每个块中包括nt2个像素,当每个块中有nk个像素的梯度大于梯度阈值sg时,则判定该块是一个真实的颗粒块,其中nt、nk和sg根据需要设定;当真实的颗粒块数目大于块数阈值sk1或者真实的颗粒块数占候选颗粒块数的比例超过阈值sk2,则判定该候选颗粒是一个真实的颗粒,其中sk1和sk2根据需要设定;同时记录真实颗粒块所对应原始图像的像素值和像素数目,所述原始图像是指步骤5所涉及的当前油液图像;

步骤83、计算得到颗粒边缘平均灰度值。

优选的是,所述步骤9中候选颗粒图像的二值化图像的获取过程如下:从候选颗粒区域的左上角像素开始进行判断,如果当前像素灰度值比颗粒边缘平均灰度值小,则判定该像素是颗粒像素,将该像素对应的像素值置为0,否则不是颗粒像素,将该像素的像素值置为255,更新颗粒坐标范围和统计颗粒像素个数;同时统计二值化图像中,候选颗粒区域中心的空心区域像素数。

优选的是,所述步骤10中对颗粒的颗粒类型进行识别的过程如下:

步骤101、判断步骤9所得的二值化图像中,颗粒的宽长比是否大于ld1并且其等效直径是否大于ld2微米,ld1和ld2根据需要而设定;如果不满足条件,则直接判定为固态颗粒;

步骤102、判断颗粒区域是否为圆形,如果不是,则判定为固态颗粒;如果是圆形并且颗粒区域中心的空心区域像素数目大于nh,nh根据需要而设定,则判定为水珠,否则判定为气泡。

优选的是,所述步骤11中计算颗粒的相对直径采用以下方式进行计算:利用公式进行计算,其中r表示等效圆直径,a(s)表示颗粒对应的像素面积。

本发明的该方案的有益效果在于上述基于图像处理的油液颗粒检测方法能够通过求取过滤阈值排除受灯光闪烁影响的图像来提高检测的稳定性,通过选取图像对应位置最大像素值作为背景来提高提取目标的能力;该方法弥补了无法同时利用背景以及梯度信息进行颗粒检测的缺陷,通过候选颗粒分块技术,可以在获取候选颗粒之后,利用梯度信息对候选颗粒进行分块统计,有效的检测出油液图像中的真实颗粒,统计颗粒的像素数,从而得到更好的油液颗粒检测结果,提高了颗粒检测的准确度。

附图说明

图1示出了本发明所涉及的基于图像处理的油液颗粒检测方法的流程图。

具体实施方式

下面结合附图对本发明的具体实施方式作进一步的说明。

如图1所示,本发明所涉及的基于图像处理的油液颗粒检测方法包括以下步骤:

步骤1、控制工业摄像机进行油液图像采集,直至整个检测过程结束为止。

步骤2、控制油液工作泵工作,先进行油液管路的清洗,之后进行颗粒检测。具体的在清洗阶段,油液工作泵的转速在2000左右,在颗粒检测阶段,油液工作泵的转速在200左右。

步骤3、对步骤1所采集的图像进行图像预处理:判断图像的亮度是否满足继续检测的条件,当不满足时,则终止检测过程;当满足时,过滤掉受灯光闪烁影响的油液图像。

具体的步骤3包括以下步骤:

步骤31、首先将步骤1所采集的图像放缩到合适大小,其中步骤1所采集的图像为灰度图,像素值范围为0到255;判断图像的亮度是否满足继续检测的条件的方法如下:计算并统计工业摄像机所采集的前ng帧图像的平均灰度值,并计算前ng帧图像的平均灰度值的平均值,如果该平均值小于lmin,则认为图像的亮度不满足继续检测的条件,则终止检测过程;如果该平均值大于等于lmin,则认为图像的亮度满足继续检测的条件,跳转至步骤32,其中lmin根据需要而设定。在本实施例中,ng可取100,lmin可取150。

步骤32、在工业摄像机所采集的前ng帧图像之后的油液图像中,每当油液图像的帧数达到np时,则进行一次过滤阈值t的计算,以过滤掉受灯光闪烁影响的油液图像,其中np≥100,所述过滤阈值t=ave-a×std,其中ave表示的是np帧图像的平均灰度值的平均值,std表示的是np帧图像的平均灰度值的标准差,a根据精度要求而设定;上一组np帧之后的第k帧油液图像是否受灯光闪烁影响,k<np,是判断该第k帧油液图像的平均灰度值是否小于上一组np帧图像所计算出的过滤阈值,当小于时,则直接过滤掉该第k帧油液图像,以排除灯光闪烁的影响;当大于等于时,该第k帧油液图像会作为步骤3处理所得的油液图像进入步骤4中进行下一步的处理,同时该第k帧油液图像会作为下一组np帧图像中的一帧图像。

例如,np=100,每当油液图像的帧数达到100时,则进行一次过滤阈值t的计算,当第103帧油液图像的平均灰度值小于第一组100帧图像所计算出的过滤阈值时,则直接过滤掉该第103帧油液图像;当第104帧油液图像的平均灰度值大于第一组100帧图像所计算出的过滤阈值时,则该第104帧油液图像会作为步骤3处理所得的油液图像进入步骤4中进行下一步的处理,同时该第104帧油液图像会作为第二组100帧图像中的一帧图像,当第二组计满100帧图像后,则进行过滤阈值t的计算,以此类推。

步骤4、在步骤3处理所得的油液图像中,每当油液图像的帧数达到nb时,则进行一次背景建模,其中nb≥100,例如nb可取200。

具体的所述步骤4中的背景建模过程如下:每当油液图像的帧数达到nb时,在同一位置,选取最高的像素值作为背景像素值,具体利用公式进行,在同一位置(xi,yj),如果图像的像素值an(xi,yi)大于背景的像素值f(xi,yi),则用图像的像素值an(xi,yi)更新背景对应位置的像素值,否则的话,背景对应位置的像素值f(xi,yi)不变。

步骤5、根据获得的背景和预设的背景阈值,获取当前油液图像的候选颗粒二值化图像,其中,所选用的背景与所述当前油液图像所处的帧数是相对应的。例如当前油液图像是第(nb+8)帧图像,则其所依据的背景是上一组nb帧油液图像所进行的背景建模。

具体的所述步骤5中的当前油液图像的候选颗粒二值化图像获取过程如下:按照公式进行,在同一位置(xi,yj),如果背景的像素值f(xi,yi)与图像的像素值an(xi,yi)之差大于背景阈值s,则判定是候选颗粒,将二值化图像像素值置为0,否则置为255,其中s根据需要而设定。

步骤6、对候选颗粒的二值化图像进行数学形态学运算。

具体的步骤6中的数学形态学运算包括对候选颗粒的二值化图像进行闭操作,即先进行膨胀操作,后进行腐蚀操作,使用参考点在中心、大小为ns×ns(ns可取5)的椭圆形结构元素。上述闭操作会弥合较窄的间隔和细长的沟壑,消除小的孔洞,填补轮廓线中的断裂,该操作在这里主要为了去掉噪声点。

步骤7、利用区域生长算法求连通区域,对每个候选颗粒图像进行截取,并进行初步筛选。

具体的步骤7中利用区域生长算法求连通区域,其主要流程如下:

(1)输入待标记图像bitmap,初始化一个与输入图像同样尺寸的标记矩阵labelmap,一个队列queue以及标记计数labelindex;

(2)按从左至右、从上至下的顺序扫描bitmap,当扫描到一个未被标记的前景像素p时,labelindex加1,并在labelmap中标记p(相应点的值赋为labelindex),同时,扫描p的八邻域点,若存在未被标记的前景像素,则在labelmap中进行标记,并放入queue中,作为区域生长的种子;

(3)当queue不为空时,从queue中取出一个生长种子点p1,扫描p1的八邻域点,若存在未被标记过的前景像素,则在labelmap中进行标记,并放入queue中;

(4)重复(3)直至queue为空,一个连通区标记完成;

(5)转到(2),直至整幅图像被扫描完毕,得到标记矩阵labelmap和连通区的个数labelindex。

以上利用区域生长算法求连通区域属于现有技术,在此不作更详尽的描述。

进行初步筛选是指去掉像素数小于nc的颗粒和在画面四周的不完整颗粒,以便加快检测速度,提高检测准确度。具体操作是在二值化图像中将对应颗粒位置像素值置为255。其中nc是指需要检测的最小颗粒的像素数,nc可根据需求设定,例如对应等效直径4.2微米的像素数。

步骤8、计算步骤5所涉及的当前油液图像中的每个候选颗粒图像的梯度图像;之后对每个候选颗粒图像的梯度图像进行分块统计,以确认候选颗粒的真实性;之后计算颗粒边缘平均灰度值。

具体的所述步骤8包括以下步骤:

步骤81、计算步骤5所涉及的当前油液图像中的每个候选颗粒图像的梯度图像:采用sobel边缘检测算子计算每个候选颗粒图像的梯度图像,采用的求梯度幅值的方法为其中g(i,j)表示梯度幅值,fx表示水平方向梯度分量,fy表示垂直方向梯度分量;

步骤82、将每个梯度图像的候选颗粒区域以nt×nt(nt可取3)为分块单位进行分块,nt为正整数,每个块中包括nt2个像素,当每个块中有nk(nk可取8)个像素的梯度大于梯度阈值sg时,则判定该块是一个真实的颗粒块,其中nt、nk和sg根据需要设定;当真实的颗粒块数目大于块数阈值sk1或者真实的颗粒块数占候选颗粒块数的比例超过阈值sk2,则判定该候选颗粒是一个真实的颗粒,其中sk1和sk2根据需要设定;同时记录真实颗粒块所对应原始图像的像素值和像素数目,所述原始图像是指步骤5所涉及的当前油液图像;

步骤83、计算得到颗粒边缘平均灰度值edge。

步骤9、利用颗粒边缘平均灰度值,获取步骤5所涉及的当前油液图像中的候选颗粒图像的二值化图像。

具体的步骤9中候选颗粒图像的二值化图像的获取过程如下:从候选颗粒区域的左上角像素开始进行判断,如果当前像素灰度值比颗粒边缘平均灰度值edge小,则判定该像素是颗粒像素,将该像素对应的像素值置为0,否则不是颗粒像素,将该像素的像素值置为255,更新颗粒坐标范围和统计颗粒像素个数;同时统计二值化图像中,候选颗粒区域中心的空心区域像素数,即对候选颗粒区域的m/n(m可取2,n可取3)中心部分统计像素值为255的像素数目。

步骤10、对颗粒的颗粒类型进行识别,所述颗粒类型包括固态颗粒、水珠和气泡。

具体的步骤10中对颗粒的颗粒类型进行识别的过程如下:

步骤101、判断步骤9所得的二值化图像中,颗粒的宽长比是否大于ld1并且其等效直径是否大于ld2微米,ld1和ld2根据需要而设定(例如,ld1可取0.75,ld2可取11);如果不满足条件,则直接判定为固态颗粒。

步骤102、判断颗粒区域是否为圆形,如果不是,则判定为固态颗粒;如果是圆形并且颗粒区域中心的空心区域像素数目大于nh(例如,对应的等效直径为7微米),则判定为水珠,否则判定为气泡。具体的nh根据需要而设定。

步骤11、计算颗粒的相对直径,之后按尺度分段进行计数和污染度标准值换算。

具体的步骤11中计算颗粒的相对直径采用以下方式进行计算:利用公式进行计算,其中r表示等效圆直径,a(s)表示颗粒对应的像素面积(气泡和水珠包括中心的空白区域)。

步骤12、根据统计结果生成油液检测分析报告。

具体的步骤12中的分析报告可以包括以下内容:主要记录各个尺度的固态颗粒个数、气态颗粒个数(气泡)和液态颗粒个数(水珠),同时画出分布曲线,使结果更加直观。检测分析报告中还附有所有固态颗粒结果、所有气态颗粒结果和所有液态颗粒结果的图片。

本发明所涉及的基于图像处理的油液颗粒检测方法能够通过求取过滤阈值排除受灯光闪烁影响的图像来提高检测的稳定性,通过选取图像对应位置最大像素值作为背景来提高提取目标的能力;该方法弥补了无法同时利用背景以及梯度信息进行颗粒检测的缺陷,通过候选颗粒分块技术,可以在获取候选颗粒之后,利用梯度信息对候选颗粒进行分块统计,有效的检测出油液图像中的真实颗粒,统计颗粒的像素数,从而得到更好的油液颗粒检测结果,提高了颗粒检测的准确度。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1