基于Harris度量的轮廓尖锐度CDA优化算法
2021-04-13于微波王国秀李岩杨宏韬李昱刘克平
于微波,王国秀,李岩,杨宏韬,李昱,刘克平
(长春工业大学 电气与电子工程学院, 吉林 长春 130012)
0 引言
工业现场的工件自动测量过程中,工件图像的角点提取是测量过程很重要的一环,角点提取的质量和速度会直接影响测量的精度和效率,因此研究角点检测算法(corner detection algorithm,CDA)对工件的自动化测量具有十分重要的意义。现阶段角点检测算法主要有以下三种[1]:①基于灰度图像的角点检测算法;②基于二值图像的角点检测算法;③基于轮廓曲线的角点检测算法。其中基于灰度图像与二值图像的角点检测算法依靠图像灰度值的变化获取角点,操作复杂、计算难度较大,而基于轮廓曲线的角点检测算法在轮廓曲线上进行角点提取,计算量较少、检测的准确性较高,由于工业检测在保证精度的同时对速度也有很大的要求,因此基于轮廓曲线的角点检测算法被广泛地应用在工业检测现场[2]。
文献[3]最早提出使用k-Cosine方法检测轮廓角点,该算法先计算轮廓线上每一点前后支撑臂夹角的余弦值,然后将局部极大值点作为角点。钱文光等[4]提出了一种基于轮廓尖锐度的角点检测算法,该算法对轮廓曲线进行高斯平滑,近似计算轮廓线中心点两侧支撑区域的夹角提取角点,通过非极大值抑制获取最终角点,该算法能较好抑制伪角点,但高斯平滑使算法更复杂且检测精度降低。赵亚利[5]等人提出一种图像边缘轮廓自适应阈值的角点检测算法,通过Canny算子提取边缘轮廓,平滑后计算轮廓点响应并与自适应阈值做比较获取候选角点,非极大值抑制后确定最终角点,而通过边缘提取到轮廓往往具有断点,具有较大影响。邢彩燕等[6]在Canny算子检测的基础上结合8邻域轮廓追踪算法,将孤立的像素点连成线并避免了检测到的边缘中存在的伪边缘和噪声边缘,然后计算轮廓曲线上2点间弧线的尖锐度并进行非极大值抑制确定最终角点,但算法无法去除轮廓曲线上的噪声点和伪角点。SMITH等[7]提出一种SUSAN角点检测算法,采用圆形模板来检测图像中的角点,优点在于不计算梯度、不需插值且不依赖图像分割的结果,直接对像素的邻域灰度值比较即可判断出角点,缺点是对噪声敏感,还可能漏检角点。陈洪等[8]在SUSAN角点检测算法的基础上,提出了自适应SUSAN角点特征提取方法,首先引用Ly算子做角点粗提取,然后利用改进的SUSAN算法做角点精提取,提高了角点检测速度和精度,但算法的抗噪能力还有所欠缺。HARRIS等[9]最先提出了一种角点和边缘检测器,通过移动高斯窗口,计算自相关矩阵,将像素点的角点相应函数值作为边缘和角点的测度,确定图像的角点和边缘,但由于对整体图像进行遍历,运行速度较慢。HAGGUI等[10]为提高Harris角点检测算法的运行速度,从计算机硬件层面着手,并考虑了NUMA配置影响,一定程度减少了运行时间,但对计算机硬件有一定要求。张立亭等[11]提出一种基于相似像素的Harris角点检测改进算法,计算图像中目标像素8邻域内相似像素的数目筛选候选角点,有效降低了测量时间,但定位精度较差。
本文针对采集的图像轮廓质量和噪声点等因素对角点提取质量影响较大问题,以及无关图像区域和复杂计算过程等因素使角点提取的实时性降低问题,提出一种基于Harris度量的轮廓尖锐度CDA优化算法,在提高角点检测算法实时性的同时,显著降低了角点提取的误检率。
1 图像轮廓候选角点的提取
1.1 基于Freeman链码的图像轮廓提取
工件轮廓提取的效果直接影响角点提取、尺寸测量和质量检测的正确性。由于相机采集到的工件图像具有噪声和无关信息,为准确地进行轮廓提取,首先对目标图像进行预处理,从而获得易于提取轮廓的二值图像,然后采用Freeman链码法进行轮廓提取。Freeman链码通常由图像轮廓边界任一像素点作为起始点坐标,沿着图像的边界像素点按顺时针或逆时针方向搜索,直到回到起始点坐标为止得到的一组有序方向链码构成,常被用在图像处理、计算机图形学与模式识别等领域中表示曲线和区域边界[12-14]。Freeman链码法常用的链码编码方式有八邻域链编码和四邻域链编码两种编码方式,四邻域的邻接点有4个,分别在中心点的上、下、左和右,八邻域比四邻域增加了4个斜方向,因为任意一个像素周围均有8个邻接点,而八邻域正好与像素点的实际情况相符,能够准确地描述中心像素点与其邻接点的信息,使得链码跟踪更加准确,故本文采用八邻域链编码。图1为Freeman链码图像轮廓提取过程示意图,图1(a)为八邻域链码,图1(b)为某段轮廓的八邻域链码示意图。
3.1 年龄与受教育程度 执行功能受年龄及教育程度的广泛影响,引起学者的极大关注。王静[26]采用威斯康星卡分类测验及TM评估重度抑郁显示执行功能损害与受教育年限有关。研究发现,首发抑郁症患者年龄越大、发病年龄越早,执行功能损害越明显;教育年限越长,工作记忆保持功能越好[27]。张玉欣等[28]发现抑郁症中年龄与执行功能呈负相关,受教育年限与其呈正相关。因此,提高教育程度是减少执行功能损害的有效途径。
(a) 八邻域链码
Freeman链码图像轮廓提取的主要步骤如下:
通过以上步骤对候选角点进行优化,确定最终的真实角点结果如图4所示,对比候选角点可以看到优化算法有效地去除掉了上述两种伪角点,并且保留了全部的真实角点。
针对闸口的无船名船号、无船舶证、无船籍港的船舶整治工作已开展多年,但由于执法难、处罚难等问题一直得不到有效解决,在防汛过程中,突出表现为水闸在紧急排涝过程中由于闸口船只阻水而影响排水效率,甚至水闸管理部门因为考虑船户的生命财产安全而不得不降低闸门的开启高度,直接影响防洪除涝;另外,崇明岛市县级河道整治工作效果明显,但是部分镇村河道由于长期不清淤疏通,导致河底标高上升、河床深度变小、过流断面缩小、流水不畅,影响河道防洪排涝的正常发挥,并且河道内的地笼、网络子等也在防洪排涝的过程中阻碍了涝水的及时排出。
邻接伪角点通常采取非极大值抑制[4-6]的办法进行去除,但对于复杂的轮廓曲线,单一的非极大值抑制并不能完全去除邻接伪角点。因此,在此基础上,提出支撑区域自适应概念,即在候选角点的邻接范围内,根据邻接角点位置,重新确定支撑区域并计算轮廓尖锐度,从而达到最大程度上去除邻接伪角点的目的。算法的具体步骤如下:
Step 3:检测N点是否与轮廓的起始边界点O重合:若不是,则存储N点并从N点开始重复执行step 2;若是,停止搜索,并输出图像轮廓。
对标准图像进行图像预处理之后,采用Freeman链码法提取图像的轮廓如图2所示,图2(a)为原始标准图像,图2(b)为预处理图像,图2(c)为算法提取到的轮廓图像。可以看到针对不同形状的物体算法都提取到了完整的轮廓且连续性较好,为候选角点的提取提供了良好的基础。
(a) 原始标准图像
1.2 图像轮廓候选角点的获取
为获取轮廓上的候选角点,首先对轮廓上的任意一点pi(x,y),选取前后相邻的距离为k的两点pi-k(x,y)和pi+k(x,y)作为支撑点,并以该点为中心点、该点到支撑点为两边构成角α,α的正弦计算公式如式(1)所示:
(1)
面对成本预算、施工设计、运营服务等各项问题,传统的CAD绘图、成本估算、人工运维等方式已经难以满足智能建筑的设计及建设运维。
利用上述方法对标准图像的轮廓进行候选角点,结果如图3所示,从图3(a)中可以看出候选角点包含了所有真实角点,但也具有很多伪角点。这些伪角点大体可以分为边缘伪角点和邻接伪角点两类。边缘伪角点是由于一段平滑的边缘生长方向突然发生变化产生的极少数的点,这些点往往被误检为角点,如图3(b)中心所示。邻接伪角点的产生是因为在复杂的轮廓变化较快的部分,会有多个点被判定为候选角点,这些候选角点互相邻接,如图3(c)中心所示。
图3 标准图像候选角点
2 图像轮廓真实角点的优化确定
伪角点的存在会对工件的测量产生很大的影响,所以需要对上述过程获取到的候选角点进一步优化。针对存在的两种伪角点,分别采用Harris度量窗口去除边缘伪角点,利用支撑区域自适应抑制邻接伪角点,从而达到有效去除伪角点、保留真实角点的目的。
2.1 边缘伪角点的去除
设图像I(x,y)在候选角点(x,y)处平移(u,v)后产生的灰度变化E(x,y,u,v)为
(2)
式中:w(x,y)为高斯加权函数,S表示移动的窗口区域。
将式(2)利用Taylor展开近似任意方向得到式(3):
(3)
去除轮廓边缘上的伪角点通常采用轮廓平滑法,如高斯平滑[4-5]和Gabor滤波[2,15]等,但轮廓经过平滑处理后定位精度会有所下降,且由于算法复杂、计算量大,一定程度上降低了算法的实时性。由于Harris角点检测算法主要运用微分运算和自相关矩阵检测图像的角点,具有尺度不变性、光照不变性、旋转不变性及抗干扰能力强等优点,此外当度量窗口在候选角点处进行移动时,可以有效平滑图像、抑制噪声并降低计算量,因此引入改进的Harris角点检测算法对候选角点进行优化[16-17]。
孝长。孝敬长辈是中华民族传统美德之一,但数千年的宗法统治将“忠”“孝”混为一谈,倡导愚忠愚孝,使“孝”具有了一定的消极意义。村官选举中,受传统家长制潜意识影响,大姓长辈往往具有一定优势。但在农村青壮年大量外出务工经商,“空巢老人”已成为较普遍社会问题的背景下,提倡孝敬长辈,具有积极的社会意义,但要剔除传统孝道中的封建糟粕,按照现行法律法规,赋予“孝”最鲜活的现代内核。
通过计算自相关矩阵M得到角点响应函数R,如式(4)所示。
R=λ1λ2-k(λ1+λ2)2=det(M)-k[trace(M)]=(ac-b2)-k(a+c)2,
(4)
其中:λ1λ2是矩阵M的特征值;det(M)是矩阵M行列式的值;k为常数;trace(M)为矩阵M的迹。
Step 3:再次遍历候选角点,对于每个候选角点在邻接范围N由外到内搜寻邻接角点,搜索半径为N/2,若有邻接角点,则以邻接角点为支撑点、邻接角点到候选角点的距离为支撑区域长度,重新计算当前点的轮廓尖锐度sharp,若新的sharp值大于阈值TS,则保留该角点。
2.2 邻接伪角点的去除
Step 2:按照预先设定的跟踪方向,以O点为中心进行八邻域搜索,定位到下一个像素点N。
Step 1:为保证最大程度地去邻接伪角点,首先确定邻接范围N,选取N=m×k,其中k为支撑区域大小,m为整数。
Step 2:遍历候选角点,对于每个候选角点在邻接范围N由内到外搜寻邻接角点,搜索半径为N/2,若有邻接角点,对比角点的尖锐度sharp,若当前点的sharp值最大,则保留该角点。
由Harris原理可知,角点处的R值很大,平坦区域|R|值很小,边缘的R值为负值,且因候选角点都在图像轮廓上,只有边缘和角点两种情况,即R只为极大正值或极大负值。此外,为进一步抑制轮廓曲线上噪声的影响,设置较小正阈值TH,当R
小学低年级学生的内心不够专注,容易被其他事物分散注意力,这时我们教师就要运用巧妙的手段来帮助学生排除一些事物的干扰,引导学生将注意力放在文章之中。在进行低年级语文阅读教学时,我就引导学生用手眼相结合的方法来专心阅读。例如,在进行文章阅读时,我就要求学生在手里拿着笔去做一些标注。手里有了笔,学生在遇到一些难以理解的句子时就可标注下来,而不是因为句子难懂而跳过或者直接放弃文章;手里有了笔,学生就可以将文章中的细节圈出来,从而更加专心地阅读文章;手里有了笔,学生的注意力就集中了起来,阅读效率就能得到提高。随着这种阅读与记录同时进行的习惯的慢慢养成,学生在阅读时的专注程度就会不断提高。
第三,加强水利财务工作,是适应大规模水利建设、确保水利资金规范安全高效使用的迫切需要。新一轮大规模水利建设具有点多、面广、线长和实施主体基层化的新特点,能否管好用好这些来之不易的资金,不仅事关水利改革发展大局,也是各级水利部门面临的重大课题和严峻考验。必须充分认识加强水利财务监管的重要性和紧迫性,进一步落实和完善资金资产管理责任制,认真履行监督检查职责,实现对资金资产使用的全过程、全覆盖监管,确保资金使用规范安全高效。
Step 1:根据二值图像轮廓的性质,对图像进行扫描寻找轮廓的起始边界点O并存储到容器中。
(a) 候选角点
3 实验及结果分析
将本文提出的算法应用到实际工件的尺寸测量中,将齿轮工件作为实验对象,处理器为Intel(R) Core(TM) i7-8750H CPU @ 2.20 GHz,内存8.00 GB的计算机上,Windows 10操作系统下,基于Microsoft Visual Studio 2017开发工具并配置图像处理库OpenCV4.1.0,用C/C++实现算法,算法具体流程如图5所示。实验过程图像如图6至图7所示。
图5 基于轮廓的角点检测算法流程图
图6(a)为齿轮的原始标准图像,图6(b)为经过图像增强、图像滤波以及图像二值化的预处理图像,图6(c)为Freeman链码轮廓提取算法提取到的轮廓结果。图7(a)为计算轮廓尖锐度获取到的候选角点,图7(b)为经过角点优化算法得到的真实角点。
(1)在员工对“薪酬制度”的满意度评价中,本文依据文献,设计出如下二级评价指标:企业薪酬规定(U211)、员工薪酬增长机制(U212)、及个人薪酬水平策略(U213)。
比如:沪教版八年级第一课“公共生活,注重规范”。无论任何人,在使用公共设施的时候,都应该爱护公共设施,注重规范。教师可以让学生课外去了解自己家附近的公共设施,再记录使用、磨损情况,观察人们在使用这些公共设施时的态度和方式,做好相应的观察记录,整理成笔记,作为作业交给教师。教师重点讲解本节课的课程重点,再根据学生了解到的具体信息加以分析,引导学生树立正确的社会主义价值观。
(a) 原始标准图像
(a) 候选角点
文献[4]与经典的SUSAN角点检测算法[6]以及Harris角点检测算法[7]在三类角点检测方法中具有很好的实际意义和代表性,故在角点检测算法的准确性和效率等方面,将算法分别与上述三种算法进行比较。由于算法与文献[4]所提算法都需要设置支撑区域k和尖锐度阈值Ts,且本文算法增加伪角点去除部分,故单独与文献[4]进行准确性的对比。对比结果如图8所示,对比数据如表1和表2所示。
(a) 本文结果
表1 与文献[4]算法检测结果对比表
表2 与文献[6]和[7]算法检测结果对比表
由表1及图8(a)、图8(b)和图8(c)可知,对于同一副齿轮图像,在选取支撑区域半径k=7,阈值TS=0.15时,文献[4]算法检测到了94角点,其中伪角点有4个,此外,由于支撑区域过大导致遗漏了6个真实角点。当选取支撑区域半径k=5,阈值TS=0.11时,文献[4]算法检测到了109个角点,由于减小了支撑区域和阈值,使得所有真实角点都被检测到,但伪角点数量增加到了13个,而本文算法在两种参数设置下,检测的结果都为96个,且全部为真实角点,受支撑区域和阈值的影响较低。从而可以看出本文算法检测更加精准,此外对参数选取的依赖程度较低。
1.2.1 纳入标准 ①所有孕妇在入院后均接受临床检查证实为妊娠期高血压;②均符合剖宫产术手术指征;③患者及其家属均对研究知情并签署同意书;④本院收治的住院患者;⑤患者均具备完整的临床资料。
由表2及图8(a)、图8(d)和图8(e)可知,由于SUSAN算法对噪声和伪角点抑制能力较差,边缘处的噪声点也误判断为角点,因此检测到了164个角点,伪角点数为72个,并遗漏了4个角点,而由于在一个角点处附近像素的R值都相对较大,从而使得Harris算法会判断多个像素点为角点,故共检测到了105个角点,伪角点数为9个。在算法运行速度上,由于Harris和SUSAN算法都是对灰度图像整体进行角点提取,故运行时间分别为1.746 s和1.778 s,而本文算法直接对轮廓曲线进行角点检测,因此计算量大大降低,仅用了0.199 s,可以看出本文算法有良好的实时性,此外,算法分别针对由于边缘处噪声和复杂轮廓变化较快产生的伪角点进行了处理,故算法的准确性相对更高。
4 结语
本文提出了一种轮廓角点检测算法,首先对预处理后的图像使用Freeman链码法进行图像轮廓的提取;然后计算轮廓点的尖锐度,通过非极大值抑制得到了候选角点;最后,利用Harris度量窗口和支撑区域自适应法对候选角点进行优化,最终确定了真实角点。实验结果表明,本文所提出的算法在角点检测的准确性方面有相对较大的提升,且算法简单,速度较快,对参数选取的依赖程度较低,能够较好地得满足工业现场,特别是工件自动化测量的需求。