图割法提取建筑物轮廓及镶嵌线

2018-12-26 08:35程晓庆
地理空间信息 2018年12期
关键词:关键点轮廓矩形

程晓庆,张 丹

(1.黄河水利职业技术学院 ,河南 开封 475000;2.武汉航天远景科技股份有限公司,湖北 武汉 430074)

DOM数字正射影像是对航空(或航天)影像进行数字微分纠正和镶嵌,通常由多张正射影像镶嵌而成,其中镶嵌线对于实际成果的影响至关重要。在实际生产中,DOM中的镶嵌线大都是在软件自动生成简单镶嵌线的基础上进行人工编辑,生产成本高、耗时长。研究镶嵌线的自动生成方法对于提高DOM的质量与生产效率具有重要意义。

1 算法简介

本算法提出如下思路:首先利用图割[1]对影像进行分块,对每张影像进行Canny变换,然后提取轮廓和线段;接着根据矩形直角的特点,对线段进行组合得到矩形或者近似矩形,结合之前的分块信息对矩形区域进行判断。因为建筑物周边通常有阴影(局部低亮度),这一重要参考因素将决定所检测到的矩形否为建筑物,根据已经确定的建筑物区域的纹理进行学习。结合纹理对附近的非规则区域进行建筑物提取[2],同时参考邻近图像相减得到的差值,综合之后得到权重图备用,根据简单的初始镶嵌线,参考权重图移动初始镶嵌线中的关键点。最后利用最短路么(shortest path)[3]在权重图上得到镶嵌线,经过反馈和筛选完成自动生成镶嵌线。

2 提取建筑物轮廓

2.1 图像分割

图像分割是数字图像处理领域一个主要研究方向,在许多计算机视觉应用的研究中作为第一步,起到十分关键的作用。图像分割算法通常可以分为两类:

①全自动图像分割。一般采用聚类算法来最大化前景与背景的差;②用户互动式图像分割。用户提供前景和背景的种子,然后对前景背景建立概率分布模型。

为了实现图像的自动分割,以Opencv提供的FloodFill算法和WaterShed算法为例,这两种算法本身并不提供用于分割的种子,但是采取一定的措施让FloodFill和WaterShed实现自动取种,以此实现图像的自动分割功能。

FloodFill官方译作“漫水填充”,是一种用特定的颜色填充连通区域,通过设置可连通像素的上下限以及连通方式来达到不同的填充效果的方法,漫水填充经常被用来标记或分离图像的一部分以便对其进行进一步处理或分析。我们根据影像的尺寸,均匀分布适当数量的种子点,对每个种子点得到的区域进行叠加,就可以实现对影像区域的自动分割,实现效果如图1所示。

图1 FloodFill算法

从图中的效果可以看到,FloodFill算法可以得到较为理想的分割结果,但部分分割细节出现错误,建筑物和地表被分割到一个区域。

针对 WaterShed算法,有人提出了用Canny之后的轮廓信息作为用于分割的种子点的办法,可以达到利用分水岭算法自动分割的目的,是一种改进。在使用分水岭算法之前需要对图像进行平滑处理,以减少噪点对于图像分割的影响,必要时可以对图像进行重采样,图2是这种改进方法的效果。

图2 WaterShed算法

分水岭算法是一种图像区域分割法,在分割的过程中,它会把跟邻近像素间的相似性作为重要的参考依据,从而将在空间位置上相近并且灰度值相近的像素点互相连接起来构成一个封闭的轮廓,封闭性是分水岭算法的一个重要特征。图2可以看到,改进后的分水岭算法可以得到良好的分割细节,但是分割内容过多,建筑物基本上都被拆分,如图3所示。

图3 分割结果

一般来说,初步分割可能会提取到部分建筑物,但是也很有可能提取不到,这个时候就需要对各个区域进行进一步的处理。

2.2 矩形提取

对每一幅影像进行Canny变换,然后在结果中提取线段,注意这里需要剔除背景的影响。对线段的提取和组合中,如果有接近直角的线段,则首先认为其是矩形的两边,然后对周边的线段进行判断,如果正好存在可能组成矩形的线段,则认为其很可能是矩形;而如果其有矩形的第四条边,再结合矩形大小(建筑物大小在一定的范围之内),判断其是否是建筑物或者疑似建筑物,同时可以判断该区域是否为非建筑物,比如道路、水域等。

矩形判断完成之后,对线段进行组合得到矩形或者近似矩形。结合之前的分块信息,必要的话对分块信息进行不断分割与合并,然后对矩形区域进行判断,因为建筑物周边通常有阴影(局部低亮度),这一重要参考因素将决定所检测到的矩形否为建筑物[4]。根据同样的方法,可以甄别非建筑物区域。

2.3 相邻影像的差异

相邻影像的差异可以通过图像相减得到。通常这部分差异可以很好地表示建筑物的轮廓,这部分信息对于轮廓提取也至关重要,在后面的权重图生成的时候也用到了相邻影像的差异,如图4所示。

用P(x,y)表示在坐标(x,y)点的像素值,则其基本公式为:

图4 图像相减

2.4 建筑物提取

对于已经检测到是建筑物的矩形,我们可以提取矩形区域的属性,属性包括纹理信息、尺寸、颜色、亮度、阴影(局部低亮度)等。对邻近的可能为建筑物的属性进行再次判断,这种反馈可以大大提高检测的正确性。如图5是检测结果范例,图中的房屋屋顶具有明显的纹理特征,所以也能够取得较好的检测效果。

图5 建筑物轮廓提取

2.5 权重图

权重图是根据建筑物提取结果,结合邻近影像的差值得到的重要图像,将直接影响自动镶嵌线的结果。

权重图有两类:第一类是用于移动初始镶嵌线关键点的权重图;第二类是利用最短路么搜寻镶嵌线的权重图。这两类权重图都是综合了单张影像的权重图,影像背景的权值最高,其次就是建筑物的权值,在没有其他信息时采用了影像梯度信息作为权重,权值最低的为道路,涉及到道路检测的相关内容[5],本算法中采用了与建筑物轮廓提取相同的方法,对于提取到的路面设置为比较低的权值,若多张影像上共同检测到路面,则将其权值设置更低,无论是移动关键点还是自动镶嵌线的时候都更容易选取到路面上。这里对权重图的灰度值进行增强以方便查看,如图6所示。

图6 第一类权重图和第二类权重图

2.6 构建初始镶嵌线和移动关键点

初始镶嵌线的生成方如下:首先对相邻的两幅影像进行分块,分块的大小根据影像的尺寸自适应。然后判断每个小块的中心点与两个影像的中心点的距离,根据距离的大小来决定每个小块应该属于哪一幅影像,以此得到初始镶嵌线[6]。

图7 初始镶嵌线

如图7所示,初始镶嵌线通常比较简单,很可能穿过建筑物等。初始镶嵌线的节点称之为关键点,如果关键点正好落在房屋上,则需要对其进行移动,通常来说将其移动到路面上是不错的选择,而移动的方法为根据之前得到的第一类权重图,将其移动到权值较小的路面的中心位置,如图8所示。

图8 移动关键点

移动关键点的主要方法为:①选择公共区域内权值小的点,利用与一个固定的矩阵的乘积可使得新的关键点更容易选取到道路的中心位置[7]。②结合多边形的方法来将不必要的关键点压缩到一起,有利于后续获取自动镶嵌线,减少干扰。

2.7 自动镶嵌线

自动镶嵌线主要利用了最短路么算法,在已经合理设计的权重图的基础之上,结合已经移动好的关键点,对每一条需要自动镶嵌线的走线进行重新走线,再配合控制好多边形形状以及走线平滑、美观等要求对镶嵌线进行选取和处理,得到最终的镶嵌线。

3 结 语

本文提出了一种基于图割的建筑物轮廓信息提取及自动搜索镶嵌线算法,实现了自动提取建筑物信息以及自动镶嵌线的功能,在实际应用中取得了良好的效果。

猜你喜欢
关键点轮廓矩形
聚焦金属关键点
肉兔育肥抓好七个关键点
OPENCV轮廓识别研究与实践
两矩形上的全偏差
基于实时轮廓误差估算的数控系统轮廓控制
化归矩形证直角
从矩形内一点说起
高速公路主动发光轮廓标应用方案设计探讨
医联体要把握三个关键点
锁定两个关键点——我这样教《送考》