一种基于Hough变换求解无人机滚转角的方法
2011-02-28焦文潭段晓明
焦文潭,段晓明
(洛阳理工学院 电气工程与自动化系,河南 洛阳 471023)
在无人机进场着陆段的机器视觉导航中,当获得一幅图像时,需要对图像数据进行处理,然后对图像的内容进行分析、理解并从中抽取对无人机着陆有用的信息。通过对某型无人机实际着陆录像分析,可以看出地平线在图像中是一个很明显的特征。根据地平线在图像中的位置、角度可以解算出无人机的滚转角,所以,地平线检测是用图像处理的方法获取无人机滚转角的重要途径。
地平线的检测方法很多,参考文献[1]提出了一种基于模式识别的地平线检测算法,但其处理的图像是彩色图像,对于灰度图不适用。参考文献[2]提出了一种基于图像纹理的地平线检测算法。本文提出一种基于边缘检测和Hough变换的地平线检测算法,并在此算法的基础上求解出无人机滚转角。
数字图像的滤波主要采用两大类方法:一类方法是在空间域中处理,即在图像空间中对图像进行各种处理;另一类方法是对空间图像进行变化(如经过傅里叶变换),使之在频率域内进行各种处理,然后再转换到图像的空间形成处理后的图像[3]。第二种方法使用的计算机内存和计算时间的开销很大,不适于实时系统,因此,本文采用空间域中的中值滤波处理方法。
中值滤波是一种非线性信号处理方法,它在一定的条件下,可以克服线性滤波器如最小均方滤波、平均值滤波等带来的图像细节模糊,而且对滤除脉冲干扰及图像扫描噪声最为有效[3]。本文采用 3×3的模板窗口,把二维窗口中的数据一维化,并采用冒泡法进行排序。之后计算M=median{x11,x12,x13,x21,x22,x23,x31,x32,x33,},并赋值给原来的灰度x22,如图1所示。
图1 中值滤波
1 图像的边缘检测
图2所示为摄像机获得的原始图像。可以看出地平线是地面与天空的分界线,因此地平线一定是图像中的一条边缘线。在图像处理中,边缘检测[4,5]的方法很多,为了消除噪声信号对边缘检测的影响,选用高斯-拉普拉斯边缘检测算子Guass-Laplacian,获得了较好的效果。
图 3 5×5模板
本文使用高斯-拉普拉斯算子卷积核,如图 3所示的 5×5大小的模板。
图2中的图像经过预处理、边缘算子卷积和二值化处理,得到如图4所示的二值图。通过边
缘检测可以看到图像中的主要边缘(地平线、跑道边缘)已经提取出来。
2 清除边线
从图4可以看到,图像的4个边上存在4条很明显的直线,这是边缘检测算子与图像卷积产生的必然结果。如果这些直线不清除,在Hough变换检测直线时这些直线就一定会被检测出来,而这些直线会对下一步工作产生很大干扰。因此,这些直线必须被清除。清除方法很简单,可以将图像的4个边上的元素都置为255。
3 利用Hough变换提取直线
Hough变换是一种在图像中检测直线和曲线的有效方法,直线方程可写为:ρ=xcosθ+ysinθ,其中 ρ表示原点到直线的垂直距离,θ表示该垂线与X轴的夹角。这样在X-Y坐标系中的一条直线与ρ-θ坐标系中的一个点(ρ,θ)一一对应。 而 X-Y 坐标系中的一个点(x,y)和 ρ-θ坐标系中的一条正弦曲线一一对应。e-θ坐标系中的多条正弦曲线的交点(ρ,θ)在 X-Y坐标系中是一条直线。下面建立一个计数数组:
其中lWidth、lHeight分别为图像的宽度和高度。
将X-Y坐标系中的点映射到ρ-θ坐标系中。从图5可以看到图像中不仅仅是地平线,还包括跑道的边缘线和地面上的一些边缘线。因此,如果仅从m_Ipline数组中找出最大的元素是不可能找出地平线的。实验证明,至少从数组中找出10个最大元素才能保证得到的直线完全包括地平线,如图6所示。
4 获取地平线
从图6可以看到通过Hough变换得到的直线包括地平线和主、副跑道的边缘线等。现在的问题是如何从这些众多的直线中提取出地平线。在无人机进场着陆段,无人机的滚转角 φ∈[-10°,10°],因此可以将上述直线中 ρ∈[80°,100°]标识出来。从图6可以看到,除了地平线,ρ∈[80°,100°]的直线还包括其他一些杂乱的点和线。
为了清除这些杂乱的点和线,根据图像在内存中的存储特点,从图6可以得到:像素数组每列中最后一行被标识像素一定是地平线上的像素。算法表示为:
处理后得到的图如图7所示。
对图7再次使用Hough变换,这样可以完整地检测出地平线,如图8所示。
5 用最小二乘法获得地平线参数
一般来说,认为地平线H与图像坐标系中X轴之间的夹角Φ和无人机的滚转角Φ是相等的,如图9所示,具体的证明过程请参照参考文献[2]。利用Hough变换可以直接读出无人机的滚转角,分别为 3°、1°和-4°。但是由于在编写程序时为了运算的快速性,使用的是长整型,因此,所得到的滚转角误差较大。所以,可以使用最小二乘法[6,7]来拟合地平线方程,拟合后算得无人机的滚转角分别为 2.645 8°、0.892 4°和-3.254 1°。
地平线检测算法是本文的关键所在。本文先后两次运用了改进Hough变换提取直线,实验证明在不过于复杂的着陆场环境下,该算法可以有效地检测出地平线,同时利用最小二乘法可以得到满足无人机着陆要求的飞机滚转角。
[1]ETTINGER S M.Towards flight autonomy vision-based horizon detection for micro air vehicles.Proceeding of IEEE International Conference on Robotics and Automation[DB/OL].Washington,D.C.,2002.
[2]刘新华.基于视觉的无人机着陆姿态检测和跑道识别[D].南京:南京航空航天大学,2004.
[3]王荣本,游峰,崔高健,等.基于计算机视觉高速智能车辆的道路识别[J].计算机工程与应用,2004(26):18-21.
[4]DJEKOUNE A O.Visual guidance control based on the hough transgorm.Proceedings of the IEEE International Vehicles Symposium 2000.Dearborn(MI)[DB/OL].USA,2000.
[5]张会章,张利霞,郭雷.用霍夫变换来提取目标边界[J].计算机应用,2003,6(23):117-119.
[6]郎锐.数字图像处理学Visual C++实现[M].北京:希望电子出版社,2002.
[7]曾接贤,张桂梅,储珺,等.霍夫变换与最小二乘法相结合的直线拟合[J].南昌航空工业学院学报(自然科学版),2003,17(4):9-12.