APP下载

基于笔画宽度变换的无人机视觉道路检测

2018-02-09侯阳阳

计算机与数字工程 2018年1期
关键词:笔画宽度边缘

侯阳阳 王 欢

(南京理工大学计算机科学与工程学院 南京 210094)

1 引言

无人飞行器(Unmanned Aerial Vehicle)在军事侦察、抢险救灾、地质勘探、交通运输、输油管线检测等方面具有重要的实际应用价值。这些应用中,视觉传感器由于具有重量轻、功耗低、隐蔽性好、信息丰富等优点,已被各种UAV普遍使用。当前UAV的一个主要研究方向是利用视觉传感器提升其自主导航和场景理解能力,其中,道路检测是视觉导航和场景理解的重要基础,例如,固定翼无人飞行器着陆时需要准确检测出跑道位置;利用UAV实现目标侦察时,道路信息可以为目标检测与跟踪提供重要信息[1~2]。

道路检测的研究大多集中于地面车载以及遥感卫星拍摄的图像。前者传感器离地面一般2m~3m,拍摄正前方道路场景,后者距地面数十公里,而无人飞行器一般飞行高度在100m~300m,前下方或正下方俯视拍摄,高度和视角的差别导致所拍摄的道路大小和形状与前两者有明显区别,针对前两者设计的道路检测算法并不适用于无人飞行器道路图像。

近年来,学者们提出了一些专门针对无人飞行器的道路检测方法[3~9]。如Zhou H和Kong H在文献[10]中利用图像分割获得候选区域,并使用霍夫变换检测直线段,再利用直线段与区域的关系筛选道路区域实现道路检测。Hosang J和Benenson R通过学习道路结构模式,使用匹配的方法搜索相同模式的区域作为道路区域[11]。文献[12]提出了一个综合道路检测跟踪系统,使用离线道路像素建立初始道路颜色模型,采用图割方法实现道路的分割,并在序列图像上利用特征点匹配实现道路的跟踪。检测和跟踪协同工作,跟踪出现漂移时重新启动检测模块,正确跟踪时在线更新道路颜色模型。

然而这几种方法应用范围较为受限,文献[10]中的方法针对沙漠图像处理效果较好,因为所用到的直方图分割和朴素贝叶斯方法在复杂环境下分割效果不佳;文献[11]中的方法需要初始给出一帧道路图像进行模式提取,并获得校正透视投影效应的相关参数。文献[12]中的方法需要手工获得道路的颜色样本构建初始颜色模型,而学习一个能针对各种道路的通用颜色模型几乎是不可能的。

为此,本文提出一种基于笔画宽度变换的无人机视觉道路检测方法。该方法首先利用了笔画宽度变换来得到道路宽度,并对其进行改进使得道路宽度图像更加准确;然后通过道路特有的形状特征和颜色特征自动找出道路区域;最后去除道路区域类别中的干扰和毛刺,实现道路的准确检测。在典型公开数据集上的实验证明本文方法适于检测多种道路,准确性上优于传统的方法。

2 改进的笔画宽度变换

2.1 传统SWT

笔画宽度变换最初是针对自然场景的文本检测所提出的[13],由于文本字符具有相对稳定的笔画宽度,而非文本字符的笔画宽度往往变化很大,因此在文本字符和非文本字符之间具有很高的区分度。考虑到航拍图像的道路区域也具有较强的宽度一致性,因此,我们可以利用SWT来进行航拍图像的道路检测。

笔画宽度变换是一种局部的图像操作,利用每个像素的颜色信息得到每个像素最有可能的笔画宽度值,其核心问题就是计算图像中每一个像素最有可能的笔画宽度值[14]。它的基本流程是:

1)建立一幅与原图像一样大小的图像,称为宽度图像,初始化宽度图像中的每个像素值为无穷大;

2)对原图像提取边缘点,从任一边缘点出发,沿该点的梯度方向搜索其他边缘点,如果找到一个其它边缘点,且其梯度方向正好与搜索方向一致(dθ<T=π/6),则将出发点与该点的空间位置距离赋予宽度图像中连接这两点的线段上所有像素点的值;

3)由于宽度图像的每个点可能在上述过程中被不止一次的赋值,故每次赋值总是与原有值进行比较。如果比原有值小,则进行赋值,即每个像素总是记录所属于的最细笔画的宽度。

图1给出了SWT的示意图。其中点 p是考察的边缘点,点q是在 p点梯度方向上寻找到的满足方向一致条件的另一个边缘点,满足条件如式(1)所示。宽度图上线段pq上的所有像素点的值被赋予为像素点p和像素点q的欧氏距离||p-q||。

图1 SWT算法示意图

2.2 SWT的改进

传统的SWT方法需要在输入图像的灰度图上使用Canny边缘检测算子,进一步得到笔画宽度图像。但是实验发现,直接对航拍图像使用SWT会存在一些缺点:对于高纹理区域(比如树木植被),存在很多背景杂乱边缘点,这会降低效率并产生干扰。为此,本文考虑使用基于分区域的Canny边缘检测得到更为准确的边缘图像[15],以此来改进笔画宽度变换,具体步骤为

1)按照一定准则对图像进行分区。分区时需要保证各分区的边缘有一些重叠,以使轮廓连续;

2)对每个分区分别进行自适应的边缘检测,得出相应的分区轮廓;

3)最后按照一定准则来连接各个分区,还原出最终的边缘图。

这个方法相当于把对一幅完整图像的Canny边缘检测过程分成了各个子图像的边缘检测过程。使用分区域的Canny边缘检测得到准确的边缘图像,再按照算法流程获得笔画宽度图像,最终的结果一定程度上可以解决上述问题。图2给出了改进SWT前后的笔画宽度图像对比。

图2 改进前后的笔画宽度图像对比

3 道路区域的提取

从上一步我们可以得到笔画宽度图像,这时也还是一个个具有宽度信息的像素,所以我们要根据一些规则把特征相似的像素合并成区域(即自底向上的一个过程),以最终实现道路检测。

鉴于道路区域的宽度和颜色具有较高的一致性,并且道路在空间上具有连续性,我们可以使用K均值聚类算法。K均值算法的基本思路是:先选K个初始类均值,然后将每个像素归入均值离它最近的类别并计算出新的类均值;迭代执行前面的步骤直到新旧类均值的差小于某一阈值。

通过笔画宽度变换,每个像素获得了道路宽度。利用宽度特征,再结合RGB颜色值,共获得了4维特征向量,如式(2)所示,其中V/maxV表示像素宽度的归一化。

本文使用这个4维特征向量进行聚类。实验证明,将具有宽度的像素聚成3个类可以取得较好结果。

接下来我们需要从这3个类中选出属于道路区域的类别,这里使用了变异系数Var这个特征,对每个分类图像求笔画宽度的平均值,然后根据变异系数Var来度量笔画宽度变化的大小。

其中,mean是指笔画宽度的平均值,N是指区域内的像素个数,xi是指区域内某一点像素的笔画宽度。由于一个连通区域内文本的笔画宽度一般都会保持稳定,Var值越大就代表笔画宽度的变化越大,此类别是道路区域的概率就越低。我们取Var值最小的类别为含有道路区域的类别。具体结果如图3所示。

图3 利用K均值聚类得到道路区域

4 道路区域的验证

从上一步处理我们得到了包含道路区域的类别,但这并不是我们最终的检测结果。从图3可以看出,得到的道路区域并不十分准确,图片中除了道路区域还包含许多干扰区域和毛刺,因此需要进一步处理来得到更好的检测结果。这里,我们利用霍夫变换找出直线然后选取区域[16]。具体步骤如下:

1)对于原图像4(a),使用笔画宽度变换得到道路宽度特征,然后结合道路的颜色特征,通过聚类的方法获得含有道路区域的类别,如图4(b)所示;

2)对上一步得到的道路区域类别图像进行霍夫变换,得到所有可能的直线,如图4(c)所示,同时我们需要求得直线上每个点的位置信息;

3)接下来,对第一步得到的二值图像4(b)进行轮廓提取,可以获得图像的所有连通区域。再利用第二步得到的直线点的位置信息,可以做一个判定:对于一个连通区域,如果存在一条直线,确切的讲应该是线段,线段上的大部分点(这里取80%)都落在此连通区域内,则保留这个连通区域;如果不满足这个条件,则将这个连通区域去除,如式(4)所示即可得到筛选后的连通区域图像:

4)再经过一些简单的后处理,即可得到最终的检测结果,如图4(d)所示。

图4 去除道路区域中的干扰

5 实验结果与分析

5.1 实验设置

本文算法在一台i5CPU(2.6G Hz)和4G内存的64位PC机上使用Matlab2013a实现。实验所用到的数据集有两个,其一是文献[4]提供的的lin数据集,包含沙漠场景的多幅图片,全部被用于性能测试;其二,我们通过Google图像搜索自建了一个包含20幅图像的数据集,包含多种复杂的场景。

5.2 性能分析

基于本文方法的道路检测过程如图5所示。

图5 算法检测过程

1)定量分析

本文引入文献中[17]的评价方法,定量地描述本文算法的性能。在该方法中,检测结果包含4个类别,如表1所示。

表1 定量评估方法定义

其中,TN表示groundtruth和检测结果都为非路区域的像素点个数;FN表示groundtruth为道路区域,检测结果为非路区域的像素点个数;FP表示groundtruth为非路区域,检测结果为道路区域的像素点个数;TP表示groundtruth和检测结果都为道路区域的像素点个数。本文使用错误率ER来体现算法的检测精度:

本文所提出方法与文献中提出的算法,在不同数据集中,各项性能指标平均统计结果对比如表2所示。可知,利用霍夫变换的算法耗时最少,但是错误率最高,这是因为其处理过程较为简单;基于图割的算法准确率有所提高但是耗时较高。与文献中两种算法相比,本文的算法错误率最小,并且在耗时方面处于两者之间,算法性能有所提升。

表2 各项性能指标对比

2)定性分析

使用图割模型实现道路区域的分割,初始需要训练图像来建立道路区域和背景区域的颜色高斯混合模型,进而作为数据项用于图割模型,且跟踪过程中,提供了种子区域需要尽可能充分。初始检测训练样本不充分时的检测结果,以及在跟踪过程中不够充分的检测结果。前者由于构建GMM模型中,一些具有特殊颜色的道路,以及道路上的阴影,由于没有充分的样本,在构建的GMM模型中不占主要成分,而导致图割模型检测结果不理想,后者,由于跟踪误差的累积导致,导致道路和非路区域样本发生的错误,导致分割结果的错误。

利用概率霍夫变换来提取道路的方法,需要用到全局分割。同时实验发现,该方法依赖道路和背景颜色存在较大差异,对道路分割和边缘提取均构成较大影响,对弯曲道路检测准确性较低。

相比而言,本文方法使用笔画宽度变换,更能反映道路的宽度特征。错误率较低,且对于弯曲的道路检测效果很好。三种方法的检测结果对比如图6所示。

6 结语

利用视觉传感器自动实现道路检测是无人飞行器环境感知与视觉导航重要的研究内容。本文首先利用了自然场景文字检测中的笔画宽度变换算法来得到道路宽度,并对其进行改进使得道路宽度图像更加准确;然后使用道路特有的形状特征和颜色特征,通过聚类的方法自动找出含有道路区域的类别;最后去除道路区域类别中的干扰和毛刺,实现道路的准确检测。通过定量实验证明,本文算法与现有算法相比提高了检测精度,并且由于对道路的宽度信息比颜色等信息普适性更高,拓展了本文算法的适用范围。此外,算法兼顾了处理效率。

图6 算法检测结果对比

猜你喜欢

笔画宽度边缘
笔画相同 长短各异
——识记“己”“已”“巳”
有趣的一笔画
找不同
一张图看懂边缘计算
孩子成长中,对宽度的追求更重要
你有“马屁股的宽度”吗?
添笔画等
在边缘寻找自我
走在边缘
边缘艺术