一种检测处理视频图像中圆形区域的方法与流程

文档序号:11387653阅读:452来源:国知局
一种检测处理视频图像中圆形区域的方法与流程

本发明涉及一种检测处理视频图像中圆形区域的方法,属于图像处理的技术领域。



背景技术:

图像理解与计算机视觉属于人工智能领域的一个重要分支,具有广泛的应用前景。生活和生产场景中的圆形图像较为常见,而对于圆形区域的检测与准确定位就变得尤为重要。而摄像机作为实时图像采集的主要工具,所采集的图像具有连续性和相关性。对摄像机所采集的连续视频图像帧进行联合处理和检测具有重要意义。

对圆形图像的检测可应用于诸多领域,例如在驾驶辅助装置中的交通标志识别,有助于辅助驾驶员注意道路两侧及上方的交通标志。交通标志中,圆形标志占很大的比例。再例如,通过视频实时检测识别文件中的圆形图章等。在对圆形图像进行检测和识别时,一般采用的方法是首先将彩色图像处理为灰度图像,然后检测灰度图像的边缘。经过仔细观察发现,不论是交通标志还是圆形图章,处理后的边缘图像中经常会存在同心圆的问题,或是图像本身存在同心圆,或是边缘检测后出现的多个同心圆边缘。所检测到的圆形区域一般用于后续识别,同心圆问题是图像中圆形区域检测需要解决的重要问题。

此外,连续视频中因拍摄环境或者hough变换意外的像素排列等问题,在检测圆形时容易出现误检测,把不是圆的区域当成圆形。排除连续视频图像中圆形识别误差也是必要的。

hough变换检测算法是现有技术中图像处理和模式识别常用的算法。将hough变换检测算法推广到检测曲线,称为广义霍夫变换(ght)。广义霍夫变换是检测圆的有效方法,但由于圆的半径、坐标有三个自由参数,采用广义霍夫变换,计算量庞大、需要大量的内存。概率霍夫变换(progressiveprobabilistichoughtransform,缩写为ppht)可有效克服上述缺陷,可用于检测单张图像中的圆形。但对于连续视频中的圆形检测、误差圆排除、同心圆问题并未涉及。参考文献:陈小艳,王强,李柏林.改进的hough变换检测圆方法[j].计算机系统应用,2015,24(8):197-201.公开了一种利用改进hough变换针对单张图像检测圆的方法。



技术实现要素:

针对现有技术的不足,本发明提供一种检测处理视频图像中圆形区域的方法。

本发明的技术方案为:

一种检测处理视频图像中圆形区域的方法,包括步骤如下:

a1、将采集到的连续多帧视频图像转化成灰度边缘图像image1(1),image1(2),……,image1(p);

a2、在每一张灰度边缘图像image1(1),image1(2),……,image1(p)中找圆,输出每张图像中检测到的每一个圆的x-y平面参数;所述圆的x-y平面参数包括,圆心的x坐标、圆心的y坐标和圆的半径r;将上述多张图像中所有圆的x-y平面参数存入同一个原始矩阵mt0中,原始矩阵mt0共3列,i行,i表示检测到的圆的总数量;所述原始矩阵mt0的第1列用于保存检测到的圆的圆心x坐标,所述原始矩阵mt0的第2列用于保存检测到的圆的圆心y坐标,所述原始矩阵mt0的第3列用于保存检测到的圆的半径r;

a3、检测原始矩阵mt0的行数i,如果原始矩阵mt0的行数i<m,则判定原始矩阵mt0中对应的圆为误差圆,清空原始矩阵mt0并回到步骤a1;如果原始矩阵mt0中的行数i≥m,则进行步骤a4;当检测到的圆的数量较低时,则判定图像中实际不存在圆,所检测到的少数圆只是误差圆。

a4、对原始矩阵mt0依次进行x分组、y分组和r分组处理,处理同心圆问题,输出目标圆参数。

交通标志图像或圆形图章图像中的圆形图像边缘常常包含多个同心圆,通过在多个同心圆中选取半径最大的圆作为兴趣区域,实现对兴趣区域的准确定位;上述步骤是对连续的p帧图像所进行的处理,检测兴趣区域内的圆形;

优选的,x分组的具体步骤如下:

x1:将所述原始矩阵mt0中每一行作为一个整体,按第1列元素x的大小升序或降序排序;排序后的原始矩阵记为mt1;

设矩阵mt1为:

x2:将矩阵mt1进行x分组,得到x分组子矩阵,具体方法如下:

依次计算数组(x1)的方差dx1,数组(x1,x2)的方差dx2,数组(x1,x2,x3)的方差dx3,……,数组(x1,x2,…,xk1)的方差dxk1,数组(x2,x3,…,xk1+1)的方差dx(k1+1),数组(x3,x4,…,xk1+2)的方差dx(k1+2),……,数组(xn-k1,xn-k1+1,…,xn-1,xn)的方差dxn,直至dxn≥σx;k1表示计算方差时所选取的元素的最大数量;为保证所计算出方差的有效性,规定了计算方差用数组的元素个数上限k1;

x3:检查当前行号n,如果n<lx,则删除矩阵mt1中的前n-1行,得到矩阵mt2;如果n≥lx,则将矩阵mt1的前n-1行抽取出来作为矩阵mt1的第1个x分组子矩阵,记为mtx1;将矩阵mt1的前n-1行删除,作为矩阵mt2;其中,lx为x分组最少行阈值,如果n<lx,则认为该分组矩阵内的圆数量太少,为误差圆;

矩阵mtx1为:

矩阵mt2为:

x4:对矩阵mt2重复步骤x2和x3,依次得到第2个x数组子矩阵mtx2、第3个x数组子矩阵mtx3、……、第z个x分组子矩阵mtxz,直到将矩阵mt1内所有数据进行了x分组处理;

y分组的具体步骤如下:

y1:将x分组子矩阵中每一行为一个整体,按照第2列元素的大小升序或降序排列;排序后的矩阵记为mtxa1;

y2:将矩阵mtxa1中每一行为一个整体进行y分组,得到y分组子矩阵,具体方法如下:

设矩阵mtxa1为:

依次计算数组(ya)的方差dy1,数组(ya,yb)的方差dy2,数组(ya,yb,yc)的方差dy3,数组(ya,yb,…,yk2)的方差dyk2,数组(yb,yc,…,yk2+1)的方差dy(k2+1),数组(yc,yd,…,yk2+2)的方差dy(k2+2),……,数组(yn-k2,yn-k2+1,…,yn-1,yn)的方差dyn;直至dyn≥σy,停止方差计算;k2表示计算方差时所选取的元素的最大数量;为保证所计算出方差的有效性,规定了计算方差用数组的元素个数上限k2;

y3:检查当前行号n,如果n<ly,删除矩阵mtxx1的前n-1行,生成矩阵mtxb1;如果n≥ly,则将矩阵mtxx1的前n-1行抽取出来,作为矩阵mtxa1的第1个y分组子矩阵,记为mtx1y1;将矩阵mtxx1的前n-1行删除,作为矩阵mtxb1;其中,ly为y分组最少行阈值;

矩阵mtxx1生成的第1个y分组子矩阵mtx1y1为:

y4:对矩阵mtxb1重复步骤y2和y3,依次得到第2个y数组子矩阵mtx1y2、第3个y数组子矩阵mtx1y3、……、第w个y分组子矩阵mtx1yw,直到将矩阵mtxx1内所有数据进行了y分组处理;

y5:将x分组后得到的其他子矩阵mtx2、mtx3、……、mtxz逐次执行步骤y1~步骤y4,最终得到x、y两步分组后的子矩阵:mtx1y1、mtx1y2、…、mtx1yw;mtx2y1、mtx2y2、…、mtx2yu;……;mtxzy1、mtxzy2、…、mtxzyv。

经过x分组和y分组后,得到的每一个子矩阵内的圆数据均为同心圆数据,半径可能不同,但圆心一致或接近;后续所述r分组目的是从众多同心圆中,选取半径较大且接近的圆求半径平均值,作为目标圆进行提取。

r分组的具体步骤如下:

r1:将y分组得到的第1个y分组子矩阵按照第3列元素r的大小降序排序;排序后的矩阵记为mtx1y1r;

r2:将矩阵mtx1y1r中每一行作为一个整体,按照第3列元素r的大小进行分组,仅保留第一个r分组,即r值最大的一个分组,其余数据表示同心圆中半径较小的圆,予以删除;具体方法如下:

设排序后的矩阵mtx1y1r为:

依次计算数组(r13)的方差dr1,数组(r13,r23)的方差dr2,数组(r13,r23,r33)的方差dr3,数组(r13,r23,…,r(k3)3)的方差d(k3)3,数组(r23,r33,…,r(k3)3)的方差d(k3+1)3,……,数组(rn-k3,rn-k3+1,…,rn-1,rn)的方差drn,直至drn≥σr,停止方差计算;k3表示计算方差时所选取的元素的最大数量,为保证所计算出方差的有效性,规定了计算方差用数组的元素个数上限k3;

r3:检查当前行号n,如果n<lr,删除矩阵mtx1y1r的前n-1行,生成矩阵mtx1y1rb,将mtx1y1rb返回步骤r2替代矩阵mtx1y1r重新进行提取;如果n≥lr,则将矩阵mtx1y1r的前n-1行抽取出来,作为矩阵mtx1y1r的第1个r分组子矩阵,记为mtx1y1r1;对矩阵mtx1y1r中的其他数据不再处理;其中,lr为r分组最少行阈值;

当n≥lr时,矩阵mtx1y1r生成的第1个r分组子矩阵mtx1y1r1为:

r4:将矩阵mtx1y1r1中每一列元素求平均值,得到对应目标圆的参数(avr_x,avr_y,avr_r);

r5:将所述y分组得到的子矩阵mtx1y2、…、mtx1yw;mtx2y1、mtx2y2、…、mtx2yu;……;mtxzy1、mtxzy2、…、mtxzyv分别执行上述步骤r1-r4;分别求出每个目标圆的参数。

进一步优选的,k1=k2=k3=4。

根据本发明优选的,所示步骤a1中,将采集到的连续多帧图像转化成灰度边缘图像image1的方法为,利用canny边缘检测算子检测图像的边缘,得到灰度边缘图像image1。

根据本发明优选的,所示步骤a2中,在每一张灰度边缘图像image1(1),image1(2),……,image1(p)中使用ppht算法找圆。

根据本发明优选的,所述p=5。

当用ppht变换检测图像中的圆时,容易出现误检测(即将图像中的其他区域偶然检测成了圆)。或者易出现所检测到的目标圆区域中包含同心圆(圆心相同或接近,半径不同);在x、y、r分组过程中,除了解决同心圆的问题外,还把误差圆排除掉。当连续多帧中,检测到同一个圆的次数较多时,认为是有效目标圆,当检测到同一个圆的次数较少时,认为是误差,予以排除。

本发明的有益效果为:

1.本发明所述检测处理视频图像中圆形的方法,通过分组方法在多个同心圆中选取半径最大的圆作为兴趣区域;选择同心圆中半径最大的圆形区域,包含的特征信息量较大,利于后续识别;在同心圆中保留最大的有效圆,用于选取识别区域具有现实意义;

2.本发明所述通过分组处理检测处理视频图像中圆形的方法有效避免了hough变换后由于意外的像素排列以及噪声的影响带来的错误检测;有效解决同心圆中有效区域选择问题。

附图说明

图1为本发明所述检测处理图像内圆形的方法流程图;

图2为x分组、y分组和r分组的方法流程图;

图3为x分组、y分组和r分组的处理前的图像;

图4为x分组、y分组和r分组的处理后的图像。

具体实施方式

下面结合实施例和说明书附图对本发明做进一步说明,但不限于此。

实施例1

如图1所示。

一种检测处理视频图像中圆形区域的方法,包括步骤如下:

a1、将采集到的连续多帧视频图像转化成灰度边缘图像image1(1),image1(2),……,image1(p);

a2、在每一张灰度边缘图像image1(1),image1(2),……,image1(p)中找圆,输出每张图像中检测到的每一个圆的x-y平面参数;所述圆的x-y平面参数包括,圆心的x坐标、圆心的y坐标和圆的半径r;将上述多张图像中所有圆的x-y平面参数存入同一个原始矩阵mt0中,原始矩阵mt0共3列,i行,i表示检测到的圆的总数量;所述原始矩阵mt0的第1列用于保存检测到的圆的圆心x坐标,所述原始矩阵mt0的第2列用于保存检测到的圆的圆心y坐标,所述原始矩阵mt0的第3列用于保存检测到的圆的半径r;

a3、检测原始矩阵mt0的行数i,如果原始矩阵mt0的行数i<m,则判定原始矩阵mt0中对应的圆为误差圆,清空原始矩阵mt0并回到步骤a1;如果原始矩阵mt0中的行数i≥m,则进行步骤a4;当检测到的圆的数量较低时,则判定图像中实际不存在圆,所检测到的少数圆只是误差圆。

a4、对原始矩阵mt0依次进行x分组、y分组和r分组处理,处理同心圆问题,输出目标圆参数。

交通标志图像或圆形图章图像中的圆形图像边缘常常包含多个同心圆,通过在多个同心圆中选取半径最大的圆作为兴趣区域,实现对兴趣区域的准确定位;上述步骤是对连续的p帧图像所进行的处理,检测兴趣区域内的圆形;

通过对比图3、图4可以看出,x分组、y分组和r分组的处理能够在很大程度上减少误检测情况的发生,能够定位同心圆的最外圆。

实施例2

如图2所示。

如实施例1所述的检测处理视频图像中圆形区域的方法,所不同的是,x分组的具体步骤如下:

x1:将所述原始矩阵mt0中每一行作为一个整体,按第1列元素x的大小升序或降序排序;排序后的原始矩阵记为mt1;

设矩阵mt1为:

x2:将矩阵mt1进行x分组,得到x分组子矩阵,具体方法如下:

依次计算数组(x1)的方差dx1,数组(x1,x2)的方差dx2,数组(x1,x2,x3)的方差dx3,……,数组(x1,x2,…,xk1)的方差dxk1,数组(x2,x3,…,xk1+1)的方差dx(k1+1),数组(x3,x4,…,xk1+2)的方差dx(k1+2),……,数组(xn-k1,xn-k1+1,…,xn-1,xn)的方差dxn,直至dxn≥σx;k1表示计算方差时所选取的元素的最大数量;为保证所计算出方差的有效性,规定了计算方差用数组的元素个数上限k1;

x3:检查当前行号n,如果n<lx,则删除矩阵mt1中的前n-1行,得到矩阵mt2;如果n≥lx,则将矩阵mt1的前n-1行抽取出来作为矩阵mt1的第1个x分组子矩阵,记为mtx1;将矩阵mt1的前n-1行删除,作为矩阵mt2;其中,lx为x分组最少行阈值,如果n<lx,则认为该分组矩阵内的圆数量太少,为误差圆;

矩阵mtx1为:

矩阵mt2为:

x4:对矩阵mt2重复步骤x2和x3,依次得到第2个x数组子矩阵mtx2、第3个x数组子矩阵mtx3、……、第z个x分组子矩阵mtxz,直到将矩阵mt1内所有数据进行了x分组处理;

y分组的具体步骤如下:

y1:将x分组子矩阵中每一行为一个整体,按照第2列元素的大小升序或降序排列;排序后的矩阵记为mtxa1;

y2:将矩阵mtxa1中每一行为一个整体进行y分组,得到y分组子矩阵,具体方法如下:

设矩阵mtxa1为:

依次计算数组(ya)的方差dy1,数组(ya,yb)的方差dy2,数组(ya,yb,yc)的方差dy3,数组(ya,yb,…,yk2)的方差dyk2,数组(yb,yc,…,yk2+1)的方差dy(k2+1),数组(yc,yd,…,yk2+2)的方差dy(k2+2),……,数组(yn-k2,yn-k2+1,…,yn-1,yn)的方差dyn;直至dyn≥σy,停止方差计算;k2表示计算方差时所选取的元素的最大数量;为保证所计算出方差的有效性,规定了计算方差用数组的元素个数上限k2;

y3:检查当前行号n,如果n<ly,删除矩阵mtxx1的前n-1行,生成矩阵mtxb1;如果n≥ly,则将矩阵mtxx1的前n-1行抽取出来,作为矩阵mtxa1的第1个y分组子矩阵,记为mtx1y1;将矩阵mtxx1的前n-1行删除,作为矩阵mtxb1;其中,ly为y分组最少行阈值;

矩阵mtxx1生成的第1个y分组子矩阵mtx1y1为:

y4:对矩阵mtxb1重复步骤y2和y3,依次得到第2个y数组子矩阵mtx1y2、第3个y数组子矩阵mtx1y3、……、第w个y分组子矩阵mtx1yw,直到将矩阵mtxx1内所有数据进行了y分组处理;

y5:将x分组后得到的其他子矩阵mtx2、mtx3、……、mtxz逐次执行步骤y1~步骤y4,最终得到x、y两步分组后的子矩阵:mtx1y1、mtx1y2、…、mtx1yw;mtx2y1、mtx2y2、…、mtx2yu;……;mtxzy1、mtxzy2、…、mtxzyv。

经过x分组和y分组后,得到的每一个子矩阵内的圆数据均为同心圆数据,半径可能不同,但圆心一致或接近;后续所述r分组目的是从众多同心圆中,选取半径较大且接近的圆求半径平均值,作为目标圆进行提取。

r分组的具体步骤如下:

r1:将y分组得到的第1个y分组子矩阵按照第3列元素r的大小降序排序;排序后的矩阵记为mtx1y1r;

r2:将矩阵mtx1y1r中每一行作为一个整体,按照第3列元素r的大小进行分组,仅保留第一个r分组,即r值最大的一个分组,其余数据表示同心圆中半径较小的圆,予以删除;具体方法如下:

设排序后的矩阵mtx1y1r为:

依次计算数组(r13)的方差dr1,数组(r13,r23)的方差dr2,数组(r13,r23,r33)的方差dr3,数组(r13,r23,…,r(k3)3)的方差d(k3)3,数组(r23,r33,…,r(k3)3)的方差d(k3+1)3,……,数组(rn-k3,rn-k3+1,…,rn-1,rn)的方差drn,直至drn≥σr,停止方差计算;k3表示计算方差时所选取的元素的最大数量,为保证所计算出方差的有效性,规定了计算方差用数组的元素个数上限k3;

r3:检查当前行号n,如果n<lr,删除矩阵mtx1y1r的前n-1行,生成矩阵mtx1y1rb,将mtx1y1rb返回步骤r2替代矩阵mtx1y1r重新进行提取;如果n≥lr,则将矩阵mtx1y1r的前n-1行抽取出来,作为矩阵mtx1y1r的第1个r分组子矩阵,记为mtx1y1r1;对矩阵mtx1y1r中的其他数据不再处理;其中,lr为r分组最少行阈值;

当n≥lr时,矩阵mtx1y1r生成的第1个r分组子矩阵mtx1y1r1为:

r4:将矩阵mtx1y1r1中每一列元素求平均值,得到对应目标圆的参数(avr_x,avr_y,avr_r);

r5:将所述y分组得到的子矩阵mtx1y2、…、mtx1yw;mtx2y1、mtx2y2、…、mtx2yu;……;mtxzy1、mtxzy2、…、mtxzyv分别执行上述步骤r1-r4;分别求出每个目标圆的参数。

k1=k2=k3=4。

实施例3

如实施例1所述的检测处理视频图像中圆形区域的方法,所不同的是,所示步骤a1中,将采集到的连续多帧图像转化成灰度边缘图像image1的方法为,利用canny边缘检测算子检测图像的边缘,得到灰度边缘图像image1。

canny边缘检测算子是现有技术中对图像进行处理的常用方法。根据边缘检测的有效性和定位的可靠性,canny给出评价边缘检测性能的三个指标:

①高的准确性,检测结果中应尽量多的包含真正的边缘,而尽量少的包含假边缘。

②高的精确度,检测到的边缘应该在真正的边界上。

③单像素宽,要有很高的选择性,对每个边缘有唯一的响应。

针对这三个指标,canny提出了用于边缘检测的一阶微分滤波器h'(x)的三个最优化标准则,即最大信噪比准则、最优过零点定位准则和单边缘响应准则。具体如下:

(a)信噪比准则

式中,g(x)为边缘函数;h(x)为带宽为w的低通滤波器的脉冲响应;σ是高斯噪声的均方差。(b)定位精确度准则

l为边缘的定位精度,定义如下:

式中,g'(x)和h'(x)为g(x)和h(x)的一阶导数;l是对边缘定位精确程度的度量,l越大定位精度越高。

(c)单边缘响应准则

要保证对但边缘只有一个响应,检测算子的脉冲响应导数的零交叉点平均距离应该满足:

式中,h”(x)是h(x)的二阶导数;f'是进行边缘检测后的图像。

这三个准则是对前述边缘检测指标的定量描述。对于阶跃形的边缘,canny推导出的最优边缘检测器的形状与高斯函数的一阶导数类似,因此canny边缘检测器就是高斯函数的一阶导数构成的。高斯函数是圆对称的,因此,canny算子在边缘方向上是对称的,在垂直于边缘的方向上是反对称的。

设二维高斯函数为:其中,σ是高斯函数的分布参数,可用以控制对图像的平滑程度。最优阶跃边缘检测算子以卷积为基础的,边缘强度为而边缘方向为

从高斯函数的定义可知,该函数是无限拖尾的,在实际应用中,一般情况下是将原始模板截断到有限尺寸n。本专利中实验表明,当时,能够获得较好的边缘检测结果。下面给出canny算子的具体实现。

利用高斯函数的可分性,将▽g的两个滤波卷积模板分解为两个一维的行列滤波器:

其中,

可见,h1(x)=xh2(x),h1(y)=yh2(y),k为常数。

然后把这两个模板分别与f(x,y)进行卷积,得到

则a(i,j)反映边缘强度,a(i,j)为垂直于边缘的方向。

根据canny的定义,中心边缘点为算子gn与图像f(x,y)的卷积在边缘梯度方向上的区域中的最大值。这样,就可以在每一点的梯度方向上判断此点强度是否为其领域的最大值来确定该点是否为边缘点。当一个像素满足以下三个条件时,则被认为是图像的边缘点。

1)该点的边缘强度大于沿该点梯度方向的两个相邻像素点的边缘强度;

2)与该点梯度方向上相邻两点方向差小于45°;

3)以该点为中心的3×3领域中的边缘强度极大值小于某个阈值。

此外,如果1)和2)同时被满足,那么在梯度方向上的相邻像素就从候选边缘点中取消,条件3)相当于区域梯度最大值组成的阈值图像与边缘点进行匹配,这一过程消除了许多虚假的边缘点。

canny边缘检测算子步骤如下:step1:用高斯滤波器对图像进行滤波消噪;step2:用一阶偏导的有限差分来计算梯度的幅值和方向;step3:对梯度幅值进行非极大值抑制;step4:用双阈值算法检测和连接边缘。

实施例4

如实施例1所述的检测处理视频图像中圆形区域的方法,所不同的是,所示步骤a2中,在每一张灰度边缘图像image1(1),image1(2),……,image1(p)中使用ppht算法找圆。

采用概率霍夫变换(ppht)检测圆形,步骤如下:step1:随机获取图像边缘上的前景点,映射到参数空间画曲线;step2:当参数空间里有交点达到最小投票数,将该点对应的x-y平面坐标系里的圆找出来;step3:搜索边缘上的前景点,将位于圆上的点(点与点之间的距离小于设定阈值)连接起来,保存该圆的参数(圆心坐标、半径),然后将该圆从输入图像内删除,防止出现重复或无效检测;step4:如果圆的半径在给定的范围内,则将该圆检测结果存入数组;step5:重复上述4个步骤;step6:输出检测到的所有圆的参数数据。

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