课程编号:Z10ME1112
课程名称:《图像理解与机器视觉》课程学分:3.0学生姓名:徐进学号:1504122120学科专业:控制工程导师:任获荣
无人机视觉避障系统中输电线的识别研究与仿真
徐进
摘要
随着航空技术的不断发展,无人机科技在军事和民用上受到了广泛的关注。无人机的很多任务都需要在未知复杂的低空环境下执行,统计分析表明,绝大部分飞行事故都是由于无人机在飞行中撞到输电线所致。因此,为保证安全和任务的顺利执行,使无人机系统能够识别并避开飞行路径中的输电线,设计其视觉避障系统显得尤为重要。单目视觉系统具有体积小、功耗低、隐蔽性好,价格低廉等特点,同时,输电线的识别是最基本的环节。本文主要研究无人机单目视觉避障系统中图像的预处理方法、输电线的识别算法以及MATLAB平台的仿真实现。
本文的主要工作有以下几个部分:
1.根据无人机机载摄像头拍摄图像的特点,简要研究了图像预处理方法。通过图像增强方法改善了图像亮度不均衡和对比度下降的缺陷;针对图像运动模糊和噪声干扰的情况,采用维纳滤波和基于边缘检测的小波去噪算法,提高了图像复原的质量。
2.在图像预处理的基础下,研究了常见的几种角点检测算法,重点对Harris角点检测原理进行了介绍和分析。
3.采用Harris角点检测算法实现了图像的特征点提取,在不同参数下实验并进行了对比。对输电线特征进行了分析,结合基于并查集的Harris特征点簇形成算法和最小二乘拟合法实现了输电线的识别。
关键词:无人机视觉避障图像预处理Harris特征点提取输电线识别
Abstract
Withtheunceasingdevelopmentofaviationtechnology,UnmannedAerialVehicle(UAV)scienceandtechnologyinmilitaryandcivilianhavereceivedwidespreadattention.Formanycivilianapplicationsandtasks,UAVsarerequiredtonavigateinunknownlow-altitudeterrainswhereobstaclesofvarioustypesandsizesexist.Accordingtothestatisticsofaviationaccidents,usuallycollisionsoccurbecauseUAVsflyingatlowaltitudefailtoidentifythinobjectssuchaspowerlines.Therefore,inordertoensuretheimplementationofthetask,andrecognizeandavoidthepowerlinesintheflightpath,itisparticularlyimportanttodesignthevisualobstacleavoidancesystem.Monocularvisionsystemhasthecharacteristicsofsmallvolume,lowpowerconsumption,goodconcealment,cheapetal.Meanwhile,theidentificationofpowerlinesisthemostfundamentalstep.Thispapermainlystudiesonpreprocessingmethod,powerlineidentificationandsimulationimplementationinMATLAB.
Thisdissertationmainlyincludesthefollowingseveralparts:
1.AccordingtotheactualsituationofaerialimageobtainedbytheUAVimagecollectionsystem,thepreprocessingmethodisbrieflystudied.Byusingopticalcorrection,itcanbeimprovedthebrightnessunbanlancedandcontrastdescendingoftheimages.Duetothenoisejamminginimage,animprovedwaveletde-noisingwhichbasedonedgedetectionareusedtoenhancethequalityofimagerestoration.
2.Onthebasisofimagepreprocessing,thisdissertationstudiesseveralcommoncornerdetectionalgorithms,andspeciallyintroducesandanalyzestheHarriscornerdetectiontheory.
3.ThefeaturesextractedbyHarrisdetectormethodvarywithdifferentvaluesaretestedandcompared.Accordingtothecharacteristicsofpowerlines,bytheFind-Unionbasedclusteringalgorithmandtheleastsquaremethodfitting,powerlinesareobtainedandthenoiselinesaregivenup.
Keywords:UAVvisualobstacleavoidance,imagepreprocessing,Harrisfeatureextracting,powerlineidentification
引言
由于无人机具有体积小、生存能力强、机动性能好等优点,相比载人飞机,无人机可以执行环境更复杂或危险的任务,由此受到广泛关注。2005年8月美国国防部在《无人机系统发展图(2005-2030)》中明确指出将把无人机作为近30年航空器发展重点,无人机在军事侦查、自然灾害监测、搜索与救援行动、目标定位与追踪、输电线检测以及农业相关方面有着巨大的应用前景。
20世纪对于无人机的研究主要聚集在高空领域,随着无人机在低空的应用拓展,低空安全飞行成为关键问题。美国联邦航空管理局数据统计显示,国家每年在航空事故中损失的无人机数量远超过执行军事任务的损失。而大量航空事故的统计结果表明,通常碰撞事故都是由于无人机在低空飞行时未能识别细小障碍物所致,其中最主要的就是输电线。因此,考虑无人机视觉躲避输电线问题对于低空安全飞行尤为重要,而识别输电线是其中最基本的环节。
识别输电线最大的问题即是视觉避障系统对外界环境的感知性,即完成陌生低空环境的自主避障需要依靠载体自身携带的传感器,不断感知自身的状态信息以及外部环境的信息,识别出输电线障碍物。
由此,本文对于输电线的研究从图像预处理和目标识别两大问题入手。对于图像预处理,由于无人机视觉系统处于自然环境中运动,其采集的图像可能出现亮度与分辨率、噪声与运动模糊问题,进而导致图像退化和降质。因此,需要研究图像增强、去噪、去模糊相关算法。而对于目标的识别问题,首先进行边缘检测,再利用线检测算法结合输电线特征实现输电线的识别,从一定程度上降低了信息的冗余度,减小了线检测算法的计算量,但仍然存在冗余信息,计算量依然很大,因此如何在保留足够的有效信息基础上尽可能地减少冗余信息成为问题的关键。
一、图像预处理无人机在自然界中运动时,采集的图像会出现亮度和分辨率、噪声和运动模糊问题,图像预处理的过程包括图像增强、图像复原等。图像增强是为了能够解决图像采集时的聚焦、曝光问题,对图像的对比度进行改善;图像复原是为了能够去除图像中的噪声和运动模糊,增强图像中的有用信息。
1.图像增强
图像在采集过程中,由于摄像传感器输入—输出特性的非线性,即入射光强度L与曝光量D(或输出电流I)存在非线性关系,如图1所示。
I
饱和区域噪声L
图1曝光量与CCD电流的输入输出关系曲线图
由图1可知,在特别暗的部分由于固有噪声的影响而没有响应,中间部分也不完全成比例关系,在特别亮的部分则产生饱和现象。而图像灰度f与入射光强度L的关系为:
fcL(1-1)
(c为常数,ccd传感器为0.4~0.8之间,成非线性关系)
本文采用基于非线性灰度变换的直方图均衡法,对曝光不足或过度的问题,进行图像增强。
由(1-1)式得知,图像灰度与实际光照强度成非线性,因此,必须通过非线性变换,实现图像灰度与光强关系线性化,构造的非线性变换为:
f
gkLk()c1
(1-2)
g为变换后图像灰度,k为常数,通常取1。
(1)直方图均衡化
直方图均衡化的思想就是把原始图像不均匀的直方图分布变换为均匀分布的形式,从而增加了灰度值的动态范围,达到增强图像整体对比度的效果。
在MATLAB图像工具箱中提供了一种直方图均衡化函数:adapthisteq,其作用在局部图像,即对图像中的一个小区域进行直方图均衡化,则这个小区域的对比度将得到加强,然后利用双线性差值方法把各个小区域拼接起来,以消除局部区域造成的边界。从效果上看,对比度自适应直方图均衡化函数adapthisteq在高亮区和暗区的增强能力强,图像的整体效果更加清晰。
(2)图像增强算法实现步骤
针对图像采集过程中产生的光学失真的情况,本文采用了亮度补偿和对比度增强的方法进行图像增强,具体步骤如下:(1)计算原始图像的平均灰度值g;(2)根据g得到的值;
(3)代入式(1—2)中进行Gamma校正,实现图像的灰度校正;
(4)调用对比度自适应直方图均衡化函数,实现图像的对比度增强。
2.图像复原
(1)图像复原基本概念
无人机在飞行时,图像在拍摄过程中可能出现畸变、模糊、失真或混入噪声,从而导致图像质量下降,这种现象称为图像退化。图像复原就是对退化的图像进行处理,尽可能恢复原图像的本来面目。假设物平面上的真实图像用f(x,y)表示,通过一个成像系统H同时引入外来加性噪声n(x,y)的影响,则实际得到的退化图像g(x,y)可以由下图2退化模型来描述。
n(x,y)
f(x,y)H+
g(x,y)图2图像退化模型
其数学表达式可以描述为:
g(x,y)=f(x,y)*h(x,y)+n(x,y)
通常把h(x,y)称为点扩展函数(pointspreadfunction,PSF)。图像的复原就是在点扩展函数(PSF)指导下进行的,所以,在实际应用中,点扩展函数的估计是一个非常关键的环节。图像恢复就是在已知g(x,y)、h(x,y)和n(x,y)的一些先验知识条件下,求得f(x,y)。
(2)图像复原算法实现
由于无人机运动会产生运动模糊,进而产生图像退化,因此需要利用图像复原算法,解决图像退化问题。常见的图像复原算法有:逆滤波算法、正则滤波法、Lucy-Richardson算法、盲解卷积算法和维纳滤波算法等。维纳滤波算法是综合退化函数和噪声统计特性两方面的情况后进行图像复原处理的,在噪声较小,图
像退化不太严重的情况下,复原效果好,是图像复原算法中应用最广泛的一种且计算量小,因此本文主要研究维纳滤波算法。
维纳滤波算法实质上是按照使复原后的图像与原图像的均方差最小的原则来恢复图像,其图像复原算法实现过程为:
①计算图像f(x,y)的二维离散傅立叶变换得到F(u,v);
②计算点扩散函数PSF的二维离散傅立叶变换。为了避免混叠效应引起的误差,应将尺寸延拓;
③估算图像的功率谱密度pf(u,v)和噪声的谱密度pn(u,v);④计算图像的估计值F'(u,v);
⑤计算F'(u,v)的逆傅立叶变换,得到恢复后的图像f(x,y)。
3.图像去噪
(1)噪声与噪声模型
噪声是造成图像退化的重要因素。图像处理中会遇到多种噪声,通常认为噪声是由概率密度函数(ProbabilityDensityFunction,PDF)表示的随机变量。常见的噪声有:高斯噪声、瑞利噪声、椒盐噪声、伽马噪声、指数分布噪声、均匀分布噪声等。其中,高斯噪声的PDF分布为
(z)122e2p(z)
其中,z表示灰度级,μ表示z的平均值或期望值,表示z的标准差。对于一般噪声的估计,可以从图像中抽取合理的、具有恒定灰度值的一小部分图像(称为子图像S)来估计的PDF参数。最简单的方法是计算灰度值的均值和方差
zis
zip(zi)
(1-3)
2
2
zis
(z)
i
p(zi)
(1-4)
式中,是Zi子图像S中像素的灰度值,p(zi)表示响应的归一化直方图值。直方图的形状指示出最接近的PDF匹配,可以根据子图像S的直方图来匹配最接近的PDF。如果直方图的形状接近于高斯分布,那么由式(1-3)和式(1-4)计算出的均值和方差可作为高斯PDF所需要的两个参数的近似值。对于其它噪声还需要其它的处理。(2)图像去噪算法实现
图像降噪的主要目的是在能够有效地降低图像噪声的同时尽可能地保证图像细节信息不受损失。由于图像信号主要集中在低频部分而噪声信号主要分布在
高频部分,根据这个特点,采取相应去噪方法。
小波去噪是针对图像信号与噪声信号经小波变换后在不同尺度下呈现出的不同形态,在不同尺度下,设定阈值门限,调整小波系数,达到图像去噪目的,或者利用多通道小波变换实现去噪,其图像去噪效果明显。本文主要研究小波去噪的处理算法。
小波去噪的算法通常包括如下三个实现步骤:①确定一个小波函数和分解级数(对应尺度j),对含有噪声的图像信号进行小波变换,获得不同尺度上的子图像;
②在不同尺度上对细节的小波变换系数设定阈值,把噪声从信号中分离出来;
③用重构算法实现图像的复原。
小波阈值化的选取主要采用萎缩法,阈值萎缩法去噪主要基于比较大的小波系数基本上代表有用信号,而比较小的系数则很大程度上是噪声。因此可通过设定合适的阈值,首先将比阈值小的系数置零而保留大于阈值的系数,然后经过阈值函数映射得到估计系数,最后对估计系数进行逆变换,就可实现重建与去噪。
二、特征点检测一般提取的具有不变性的图像特征有图像的边缘、角、点、线、曲率等其中边缘和区域边界最常用,可以由边缘检测方法和区域分割方法得到。本文针对机载视觉系统中图像的实际情况,将角点作为输电线特征进行提取。
角点是指位于某一平面边界曲线上的点,且在各个方向上同时取得大的梯度。同边缘和直线等特征相比,角点具有提取过程简单、结果稳定和提取算法适应性强等特点。角点检测被广泛地应用于在一组相关图像中进行目标跟踪,立体图像之间对应关系的匹配,运动目标检测等。1、特征检测方法介绍
角点检测的方法主要分为两种,一种是基于图像边缘的方法:先提取图像信息的边缘,然后再求角点,例如,基于小波变换模极大的角点检测、基于边界链码的角点检测。另一种是基于图像灰度的方法,例如,Moravec算法、Harris算法、Susan算法等。常用特征点提取算子有:
1)Harris算子:是一种基于信号的点特征提取算子。其受信号处理中自相关函数的启发,给出与自相关函数相联系的矩阵M。M阵的特征值是自相关函数的一阶曲率,如果两个曲率值都高,则认为该点是特征点。
Harris算法认为,特征点是局部范围内的极大兴趣值对应的像素点。因此,在计算完各点的兴趣值后,要提取出原始图像中的所有局部兴趣值最大的点。在实际操作中,可依次从以每个像素为中心的3X3的窗口中提取最大值,如果中心点像素的兴趣值就是最大值,则该点就是特征点。Harris算子中只用到灰度的一阶差分以及滤波,计算简单。同时,由于Harris算子特征点的检测不需设置阈值,因此还可以满足自动化的要求。其优点总结起来有:计算简单,提取的点特征均匀而且合理,可以定量的提取特征点,稳定。其缺点是Harris算子虽然能提取出一定数量的特征点,而且这些特征点都是图像局部范围内的最优点特征,但每个特征点对应于一个具体的像素,其精度只能达到一个像素。
2)Forstner算子:是一种从图像中提取点(角点、圆点等)特征的较为有效的算子。通过计算各像素的Robert梯度和以像素(c,r)为中心的一个窗口的
灰度协方差矩阵,在图像中寻找具有尽可能小而且接近圆的点作为特征点,通过计算各图像点的兴趣值并采用抑制局部极小点的方法提取特征点。其最大的优点是计算速度快。通过在最优窗口内进行加权中心化的操作,可以将定位精度提高到子像素,具有一定的抗噪性。但Forstner算法要确定阈值,因此受图像灰度、对比度变化的影响,进而对配准精度有很大影响。
3)Moravec算子:其在四个主要方向上,选择具有最大、最小灰度方差的点作为特征点。可以对图像中每一个像素点给出角点化测量值。其实现的过程为:输入处理好的图像,对逐个像素点计算其四个方向灰度差的平方和,然后判断min(V1,V2,V3,V4)是否大于阈值,抑制局部非最大,输出特征点图像。Moravec角点提取算子是一个相对简单的算子,它最显著的优点是实现简单快速。它对强边缘比较敏感,这是由于响应值是自相关的最小值而不是差值。它不是旋转不变性的,因为它的反应是各项异性的,因而对噪声有反应,它容易把沿着边缘的点和孤立的点作为角点,所以它对噪音敏感。当然,它的计算相当有效,因而在某此实时地和计算能力有限的应用中有它的作为。
4)Susan算子:Susan角点提取是在给定大小的窗口中对像素点进行运算,得到窗口中心处的角点初始响应,然后在所有的初始响应中寻找局部极大值得到最终的角点。其提取特征点分布合理,对明显角点提取的能力较强,较适合提取图像边缘上的拐点,由于它不需对图像求导数,所以也有较强的抗噪声能力。2、Harris特征检测原理
由于Harris具有快速、准确以及稳定的特点,本文采取Harris特征检测算法对输电线特征进行提取。
Harris角点检测器是基于信号的局部自动互相关函数进行计算的,其原理是将所处理的图像窗口w(一般为矩形区域)向任意方向移动微小位移(x,y),则其灰度改变量可定义为:
Ex,ywu,vIxu,yuwu,vxXyYOx2,y2u,v2=Ax
22CxyBy2(x,y)M(x,y)T其中,X和Y是一阶灰度梯度,可对图像求卷积得
I
X=I(1,0,1)xY=
I
I(1,0,1)y为了提高抗噪能力,对图像窗口进行了高斯平滑,选用如下的高斯窗口:
wu,ve
(u2v2)
22另定义
AX2w,BY2w,C(XY)w
和矩阵:
M=[ACC
B
]注意到,E与局部自相关函数很接近,M描述了这个相关函数在原点的形状。令1,2为M的两个特征值,令1,2与局部自相关函数的主曲率成比例,构成一个对M的旋转不变数,则特征值可视为旋转不变描述子。此时,通过判断的
1,2值的情况来判断平坦区、角点和边缘,有以下三种情况:
1)如果1,2都很小,则局部自动互相关函数相对平坦,图像窗口区域的灰度就近似为常数;
2)如果1,2一个大一个小,则局部自动互相关函数成脊状分布,只有一个方向(沿着脊状)的局部转移在E内会引起微小的变化,在垂直方向上会发生较大的显著变化,此处代表边缘;
3)如果1,2都很大,则局部自动互相关函数锋利地耸起,任何方向的转移都会导致明显的增加,此处表明是一个角点。
于是,Harris特征点即为Harris角点值的局部区域最大值,Harris角点值的定义公式为:
RDet(M)kTr2(M)
其中,Tr(M)表示矩阵M的迹,Det(M)表示矩阵M的行列式值,k值Harris推荐为0.04。在具体的计算中:
Tr(M)12ABDet(M)12ABC2则角点响应函数可定义为:
RABC2k2(AB)2三、输电线检测识别1.输电线几何特征对于特征点的提取,我们首先需要对实际的输电线几何特征进行研究,根据已有的先验知识以及观察,发现无人机在低空飞行环境中遇到的输电线一般有以下几个特点:
1)一般来说,输电线中任意一根局部都近似为直线,而且输电线比较长,通常是贯穿于整个图像画面的。
2)输电线一般成组出现,线与线之间是几行的。3)输电线一般来说都是分布相对比较均匀的。
根据上述总结输电线的特征,可归纳为:近似直线、平行、分布均匀、成组出现。
2.输电线识别过程的实现在输电线的识别过程中,首先对图像进行Harris特征点提取,根据输电线的特征提出基于并查集的Harris特征点簇形成算法对特征点进行聚类,然后对特征点簇进行最小二乘法拟合,最后剔除图像中误识别的输电线,得到输电线识别的结果。
图像采图像预处Harris特Harris特最小二乘集
理
征点提取
征点簇聚类法拟合
形成
输电线识别过程框图
2.1.Harris特征点提取Harris方法提取图像中的特征点的过程可以分为以下几个步骤:1)计算图像像素点在水平和垂直方向上的梯度,以及两者的乘积,得到M中4个元素的值,具体进行算法实现时,采取与卷积相似的方法,分别利用x方向的模版[1
011
1
01]和y方向的模版
[11000]在图像上移动,通过10
1
111
计算每个位置所对应的中心像素梯度值得到原始图像在x和y方向上的梯度图像,再计算每个像素点对应的x和y方向梯度的乘积,进而得到一幅新的图像,最后得到矩阵M:
M=I2xIxIy
II2xIyy
其中,I2xIxIx,I2yIyIy。
2)对图像进行高斯滤波,进行平滑处理,得到新的M。离散二维零均值高
斯函数为:
(x2y2)Guasse
223)计算原图像中每个像素点对应的兴趣值即响应函数R。
Rdet(M)ktrace2(M)
=I2xI2y(IxIy)2k(I2xI2y)24)选取局部极值点。根据非极大值抑制算法选取所需要的角点,Harris特征点是局部范围内的极大兴趣值对应的像素点。
剔除误识别电线
5)设定MinQuality(Q)和FilterSize(S)的值,其中,Q(0 基于并查集的特征点簇形成算法通过构造树图对Harris特征点提取的结果进行聚类,得到若干符合输电线特征的Harris特征点簇,具体实现步骤如下: 1)对提取出的Harris特征点进行编号为v1,v2,,vn,共n个特征点。根据输电线的特征可知,输电线局部近乎为直线,斜率相对统一。因此,可以通过Harris特征点之间的斜率对特征点进行筛选。 2)任取一个Harris特征点vk,计算其与邻近m个特征点之间的斜率值s,遍历所有特征点后,得到若干个结构体e,每个结构体ek中存有编号k,斜率值s、斜率对应的两端特征点vi,vj,即ek{k,sij,i,j}。 sij yjyixjxi3)对于第2步得到的斜率值,我们认定斜率之间差值属于区间[-0.1,0.1]即为相等,由此条件可以得到若干个斜率群,斜率群中特征点数量越多对应该斜率群在图像中跨度越大,由于输电线一般比较长,通常贯穿于整个图像画面,因此,符合输电线斜率的斜率群在各斜率群中应当为特征点数量较多的部分,此时取出其中规模最大的l个斜率群,为g1,g2,,gl,可以保证选中的斜率群可以满足输电线的特征。若前一帧图像可以完整检测识别图像中的输电线并得到经验参数斜率s0,则此时只保留斜率值符合s0的斜率群用于后续处理,可以明显减小计算量。 4)由输电线的特征,输电线之间互相平行且成组出现,因此满足输电线斜率特征的斜率群中应当包含若干互相平行的点集。针对每个斜率群gi可以通过对应结构体e中存放的特征点编号构造树状结构,不同子树互相平行或在同一条线上。 5)对遍历第4步中得到的子树,通过判断各子树中的节点是否为其他子树所对应线上的点,若符合条件,则合并对应子树,反之,不合并。遍历所有子树,合并所有符合条件的子树,即可得到Harris特征点簇c1,c2,,ck,特征点簇间互相近似平行。算法伪代码如下: 基于并查集的Harris特征点簇形成算法伪代码 基于并查集的Harris特征点簇形成算法输入:Harris特征点v1,v2,,vn输出:Harris特征点簇c1,c2,,ckfori=1tondo calculateslopeswithmnearestHarrisfeatures/*m个距离节点vi最近的点*/endfor generatevector_same(slope,arr)/*每个vector中保存具有相同斜率的特征点对*/ findg1,g2,,glinvector_same/*在vector_same选择规模最大的l个斜率群*/ fori=1toldo/*构建树图结构T得到若干子树r*/randomlyselect{vm,vn}in giifset-Find(i)!=set-Find(j)do createrootrwithUnion(i,j)endifendfor foreverysub-treerdo/*通过合并子树得到特征点簇对应树tree*/iftwosub-treer1,r2canbecombineddoCreaterootrleftsub-treer1andrightsub-treeendifendforforeverytree rido cir2findcorrespondingHarrisfeaturesinitputHarrisfeaturesinendfor 2.3基于最小二乘法拟合的输电线识别 上面通过基于并查集的Harris特征点簇形成算法得到了若干符合输电线特征的特征点簇,本小节通过最小二乘法多项式拟合,将得到的特征点簇c1,c2,,ck进行拟合得到k条可能代表输电线的线。其具体实现步骤如下: (1)将拟合得到的线,计算得到任意两条线之间的距离,形成距离矩阵Diskk,k为拟合线的条数。矩阵中元素Dis(i,j)代表拟合线i,j之间的距离。 (2)遍历矩阵Diskk中的元素,若在其他帧图像中已得到参考距离值,则对该距离值设置累积器并置1,出现与参考距离值近似相等的元素,则该距离值对应的累积器加1;若不存在已知的参考距离值,则遍历过程中出现近似相等的距离值时,判断拟合线之间是否有交集,存在即对该距离值设置累积器并保存出现的次数以及对应的拟合线。 (3)查询第2步中得到的累加器,若其中存在值为2的累加器,则累加器中的拟合线即对应输电线。将得到拟合线之间的距离设置为参考距离值用于同一视频中其他帧的剔除误识别输电线过程。 根据输电线的特征,经过基于并查集的Harris特征点簇形成算法得到特征点簇,然后对特征点簇进行最小二乘法拟合,剔除图像中误识别的输电线,可得到最终输电线识别的结果。 四、输电线识别的仿真实现本文开头对无人机图像预处理(增强、复原、预处理)相关问题进行了研究与算法选取,为输电线的识别提供了良好的基础。本部分主要通过Matlab软件平台,进行不同参数Harris特征点检测实验以及输电线识别的仿真实现(Matlab源主程序见本文附录)。 由前面部分可知,输电线识别的Matlab仿真程序主要包含Harris特征点检测,基于并查集的harris特征点簇形成,输电线识别,以下为Matlab实测界面: 输电线识别的matlab平台测试实图 1.harris特征点检测实验根据前面对harris特征点检测原理与算法的研究,调节特征点最低门限值MinQuality(Q)和高斯滤波器窗口值FilterSize(S)的大小,可以得到不同参数下的检测结果。 仿真实验选取含有输电线的景物图像,对其进行不同参数测试,结果如下: Q=0.01,S=5Q=0.1,S=5Q=0.15,S=5 Q=0.01,S=7Q=0.1,S=7Q=0.15,S=7 Q=0.01,S=9Q=0.1,S=9Q=0.15,S=9 不同参数值的harris特征点检测提取实验结果图 通过参数测试可以看出,参数的不同会影响特征点提取的点个数,提取点个数过少会影响结果的准确性,点个数过多会加大计算量,并且参数值越大,特征点提取个数越少。综合以上情况,选取Q=0.1,S=9作为参数,能较好的提取输电线上的特征点。 2.输电线识别仿真实验在Matlab平台运行main主程序后,会依次产生7张结果图片,它们是输电线识别过程的几个重要实现过程,分别是原图片、harris特征点提取结果图、剔除不符合输电线特征的harris特征点结果图、最小二乘法拟合结果图、基于并查集的特征点簇形成结果图、特征点簇拟合直线结果图、剔除不符合要求的直线得到最终输电线识别结果图,图中红色的点和线的变化为识别的过程,其仿真实现结果如下: 原始输电线图像 Harris特征点提取处理结果图 剔除不符合要求的特征点结果图 ④最小二乘法拟合处理结果图 ⑤基于并查集的特征点簇聚类形成结果图 ⑥最小二乘法实景拟合结果图 ⑦(剔除不符合要求的直线)输电线成功识别结果图 五、结论 本文对基于单目视觉的无人机避障系统中拍摄图像的预处理、输电线识别方法进行了系统地研究,将无人机上的摄像头传感器在飞行过程中采集的图像作为研究对象,实现了输电线的识别。本文从理论算法上主要研究了图像的灰度校正和图像复原方法,输电线的特征点提取与识别方法,并且在应用层面,对输电线识别进行了仿真实现。需要提出的是,本文仅对无人机避障中输电线识别环节进行了研究,而后续目标动态匹配以及无人机与输电线距离估计和避障控制策略等并未涉及,输电线识别仅仅是避障中最基本的一个环节。而且,本文对于输电线的检测、识别着重于算法的稳定性、准确性以及适用性,导致算法计算量和处理效率有所局限,对于实时性要求高的应用场合,还待进一步提高。无人机所面对的场景视野图像是复杂的,而对于输电线的识别是其最终目的,如何有效剔除输电线各种类似物,准确适应现场多变的视场环境,还需要更深入地研究。 参考文献[1]贾云得.机器视觉[M].北京:科学出版社,2000. [2]陈刚,魏晗,高毫林.MATLAB在数字图像处理中的应用[M].北京:清华大学出版社,2016. [3]DalamagkidisK.AviationHistoryandUnmannedFlight[M].SpringerNetherlands,2014. [4]MukhtarA,XiaL,TangTB.VehicleDetectionTechniquesforCollisionAvoidanceSystems:AReview[J].IEEETransactionsonIntelligentTransportationSystems,2015,16(5):1-21. [5]BrockersR,HumenbergerM,KuwataY,etal.ComputerVisionforMicroAirVehicles[M]AdvancesinEmbeddedComputerVision.SpringerInternationalPublishing,2014:73-107. [6]章引晋.图象工程(上册)——图象处理和分析[M].北京:清华大学出版社.1999. [7]章引晋.图象工程(下册)——图象理解与计算机视觉[M].北京:清华大学出版社.2000. [8]DhananjayaB.DetectionofObjectsinAerialVideosforObjectExtractionandTrackingforUAVApplications[J].InternationalJournalofComputerApplications,2015,112(12):37-42. [9]RobertoSabatini,AlessandroGardi,MarkA.Richardson[J].LIDARObstacleWarningandAvoidanceSystemforUnmannedAircraft.InternationalJournalofMechanical,Aerospace,IndustrialandMechatronicsEngineering,2014,8(4):62-73.[10]GolanO,KiroS,HorovitzI.Methodandsystemforedgedetection:US,US84617B2[P].2014. [11]肖志涛,国澄明,侯正信等.图像特征检测算法的分析与研究[J].中国图象图形学报,2004,第12期:1414-1420. [12]SinghS,SinghR.Comparisonofvariousedgedetectiontechniques[C]InternationalConferenceonComputingforSustainableGlobalDevelopment.IEEE,2015:26-28. [13]HuZ,JiangH,ZhangT.ResearchonMATLAB-basedImagePreprocessing[C]InternationalConferenceonInformationSciences,Machinery,MaterialsandEnergy.2015. [14]QuanC,XuX,RenF.Expressionimagepreprocessingbasedonwavelettransform[C]IEEEInternationalConferenceonRoboticsandBiomimetics.IEEE,2014:2374-2377. [15]XiangH.ResearchonImageRestorationAlgorithmforDynamicTarget[J].InternationalJournalofSignalProcessingImageProcessing&PatternRecognition,2015,8. [16]ZhangHB.SpreadPointFunctionEstimationandVariationalFunctionBasedImageRestorationAlgorithmforBlurringandNoisyImage[J].ComputerSystems&Applications,2014. [17]WangJ,PengY,WangX.StudyonalgorithmofimagerestorationbasedonStochasticResonanceandWeinerfiltering[C]InternationalConferenceonElectronicsInformationandEmergencyCommunication.IEEE,2015. [18]BasheerJM,MurugeshV.ImagerestorationusingmodifiedGaussianfilter[J].InternationalJournalofAppliedEngineeringResearch,2015,10(13):32927-32932.[19]LichaoHU,ShiZ,PangK,etal.ImprovedHarrisFeaturePointDetectionAlgorithmforImageMatching[J].ComputerEngineering,2015. [20]LehtolaVV,RonnholmP.Imageenhancementforpointfeaturedetectioninbuiltenvironment[C]ICSAI2014:InternationalConferenceonSystemsandInformatics.2014:774-779. [21]ZhangL,LiuP,HangP,etal.ARegion-basedSegmentationnoThresholdHarrisFeaturePointDetectionAlgorithm[J].JournalofShanxiUniversity,2014. [22]王毅敏,马丽英.传统最小二乘法曲线拟合的缺陷及其改进[J].电力学报,1997(1):51-. [23]YinX,KimDH,HongCP,etal.Advancedfeaturepointtransformationofcornerpointsformobileobjectrecognition[J].MultimediaTools&Applications,2015,74(16):61-6556. [24]Heng-LiLV,ShangZH,LiuH,etal.VehicleImageMatchingBasedonHarrisCornerandSIFTAlgorithm[J].JournalofKunmingUniversityofScience&Technology,2015. [25]姜华,刘国庆,成孝刚.图象运动模糊方向的检测方法[J].计算机应用,2008,28(6):220-222. [26]WangY.SubstationRemoteViewingImageMosaicbasedonCannyOperatorandHarrisCornerDetection[C]InternationalConferenceonLogisticsEngineering,ManagementandComputerScience.2015:352-356. [27]ChenJC,LiWT,WenCK,etal.EfficientIdentificationMethodforPowerLineOutagesintheSmartPowerGrid[J].IEEETransactionsonPowerSystems,2014,29(4):1788-1800. [28]仝卫国.基于航拍图像的输电线路识别与状态检测方法研究[D].华北电力大学,2011. [29]ZhangX.TheDesignofDBSCANAlgorithmBasedonUnion-findSet[J].JournalofYiliNormalUniversity,2014. [30]ChenX.Anewclusteringalgorithmbasedonnearneighborinfluence[J].ExpertSystemswithApplications,2014,42(21):7746-7758. [31]柳薇,马争鸣.基于边缘检测的图象小波阈值去噪方法[J].中国图象图形学报,2002,7(8):394-399. [32]WangY,LiT.ApplicationofWaveletandWienerFilteringAlgorithminImageDe-Noising[J].OpenAccessLibraryJournal,2016,03(1):1-7. 附录Matlab仿真代码输电线识别仿真程序由5个.m文件构成,分别为main主程序、特征点检测find_harris程序、并查集聚类findunion程序、误差点、线剔除fun_dis_point_line程序、参数群定义块refer_para程序,篇幅有限,以下列出主程序: 主程序main源代码:clc;clearclose; %all; Directory选择文件夹 filesmax=dir(directory);=uigetdir('','E:\\');Directoryname= =size(files,1);strcat(directory,extension'\\');'jpeg','tif'={}; 'jpg','gif','bmp',theta=round_looprefer_para(directory);forfilename_of_ii_img==11;=files(i_img).name;:maxfront_of_file= strfind(filename_of_i,file_loop'.');front_of_file(end) me_of_i) filename_of_i(front_of_file(end)ifany(ismember(extension, +1:end))) strcat(directoryname,filename_offilename= _i); file_loop(round_loop).filenamefilename; =pointsBW=imread(filename); =find_harris(filename); j=1; [m,harris_matrixn,q]=size(BW); loc=zeros(m,n); length(points.Location) for=izeros(0);=1: harris_matrix(int32(points.Locai-on(i,2)), int32(points.Location(i,1)))loc(j,1)loc(j,2)=points.Location(i,1);=1; j=j+1;=points.Location(i,2); end foriholdfigure,imshow(BW,[]); =1:on length(loc)plot(loc(i,1),loc(i,2),end'r+') harris_clusters= holdoff findunion(filename,harris_matri;if~isempty(harris_clusters) figureholdendpointon zeros(0); =zeros(0);b_clustera_clusterb==zeros(0);c_cluster=num_of_real_clusters=zeros(0);zeros(0); fori=1=0; x=:length(harris_clusters) y=harris_clusters(i).y;harris_clusters(i).x; if~isempty(x)&&~isempty(y) ex1=randi(length(x));ey1=randi(length(y)); harris_clusters(i).slope_of_clusters; b_cluster(i)=-1; a_cluster(i)= endpoint(i,1,1)=x(ex1);endpoint(i,1,2)=y(ey1); c_cluster(i)=b(i); ex2=randi([ex1,length(x)]); num_of_real_clusters end ey2=randi([ey1,length(y)]); =num_of_real_clusters+1; endpoint(i,2,1)=x(ex2);endpoint(i,2,2)=y(ey2);endpoint(i,3,1)= x(randi([ex1,ex2]));endpoint(i,3,2) =y(randi([ey1,ey2]));p=polyfit(x,y,2); y1x1==polyval(p,x1); 0:0.05:n; switchplot(x,y,'r.'casei);1plot(x,y,'r+'case); 2plot(x,y,case3 case'r*');plot(x,y,4case5'r<');end plot(x,y,'r>'); plot(x1,y1,axis([0n'b-'0m]);); set(gca,reverse''XDir') ,'normal','YDir','endpoint(i,2,2)b(i)= harris_clusters(i).slope_of_clus- ters*endpoint(i,2,1); dis=zeros(num_of_real_clusters);end num_of_real_clusters-1 fori=1: point1j=i+1; [endpoint(i,1,1),=endpoint(i,1,2)];[endpoint(i,2,1),point2= endpoint(i,2,2)];[endpoint(i,3,1),point3= endpoint(i,3,2)]; b_cluster(j),lin=[a_cluster(j), dis(i,j)c_cluster(j)];(fun_dis_point_line(point1,= +fun_dis_point_line(point2,lin)+lin) lin))/3; fun_dis_point_line(point3,endones(num_of_real_clusters,num_ofdif= _real_clusters,num_of_real_clusters)+n; num_of_real_clusters-2 fori=1: dif(i,j,j+1)j=i+1; abs(dis(i+1,j+1)-dis(i,j)); = min(min(min(dif))); min_difend = fori_dif=1:num_of_real_clusters forj_dif=1:num_of_real_clustersfork_dif=1:num_of_real_clustersp=polyfit(x,y,2);x1=0:0.01:n;min_dif ifdif(i_dif,j_dif,k_dif)== i_outputj_output=i_dif; k_output=j_dif;end =k_dif;end end end imshow(BW,[]) figure, holdforon 1:length(harris_clusters)i= xy==harris_clusters(i).x;ifharris_clusters(i).y; ~isempty(x)p&&y1x1=~isempty(y) ==polyfit(x,y,2);polyval(p,x1);0:0.01:n; switchi plot(x,y,case1case);2'r.'); plot(x,y,plot(x,y,case'r+'case'r*'3 4 );plot(x,y,case'r<'endplot(x,y,5 );'r>');end end imshow(BW,[]) figure,fori=1holdon x:length(harris_clusters) if~isempty(x)y==harris_clusters(i).x;harris_clusters(i).y; &&~isempty(y) switchy1casei =polyval(p,x1); plot(x,y,1 case2 'r.');plot(x,y,case'r+');caseplot(x,y,3 4 'r*');plot(x,y,case'r<');plot(x,y,'r>'5 end);plot(x1,y1,end'b-'); figure,endholdimshow(BW,[]) forifii===i_output1:num_of_real_clusterson ||i==k_output ||i==j_output xify==harris_clusters(i).x;~isempty(x)harris_clusters(i).y; p=polyfit(x,y,2); &&~isempty(y) x1y1==0:0.01:n; polyval(p,x1); plot(x1,y1,; 'r-','LineWidth',2.5)end end end round_loop=pause(0.05); end round_loop+1; end end end deletedelete'./*.mat'delete'./*.txt''./*.jpg' 因篇幅问题不能全部显示,请点此查看更多更全内容2.2基于并查集的Harris特征点簇形成
Copyright © 2019- sarr.cn 版权所有 赣ICP备2024042794号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务