影像边界提取技术在卫星增值影像数据库中的应用
王彦佐, 随欣欣, 魏英娟, 晋佩东
中国国土资源航空物探遥感中心,北京 100083

第一作者: 王彦佐(1986-),男,硕士研究生,高级工程师,主要从事地理信息系统及遥感方面的研究。Email:wangyanzuo@foxmail.com

摘要

在卫星增值影像数据库中,去除背景值区域的影像真实边界数据能够显著提升空间查询及覆盖分析等操作的准确率及速度。为提高边界提取精度,研究并实现了一种基于虫随算法及Douglas-Peukcer算法的影像边界提取方法。首先识别出影像的背景像素值,然后使用虫随算法跟踪出影像边界,最后使用Douglas-Peukcer算法将边界进行抽稀。该方法已经在国产卫星增值影像数据库中进行了部署,应用结果表明,该方法能够稳定准确地提取出增值影像数据的真实边界,取得了良好的应用效果。

关键词: 增值影像; 影像边界提取; 虫随算法; Douglas-Peukcer算法
文献标志码:A 文章编号:1001-070X(2017)s1-0166-05 doi: 10.6046/gtzyyg.2017.s1.28
Application of image boundary extraction technology to satellite orthophoto database
WANG Yanzuo, SUI Xinxin, WEI Yingjuan, JIN Peidong
China Aero Geophysical Survey and Remote Sensing Center for Land and Resources, Beijing 100083, China
Abstract

In the satellite orthophoto database, the real boundaries of orthophoto images can significantly improve the accuracy and speed of operations such as spatial query and coverage analysis. This paper proposes and implements an image boundary extraction method based on Pixel-Following algorithm and Douglas-Peukcer algorithm. After the identification of background pixel value of the image, the boundary is tracked using the Pixel-Following algorithm, and then the redundant vertexes of the boundary are deleted using the Douglas-Peukcer algorithm. This method has been deployed in the satellite orthophoto database, and the results show that this method can extract the real boundary of the orthophoto image stably and accurately, with good application effects achieved.

Keyword: orthophoto map; image boundary extraction; Pixel-Following algorithm; Douglas-Peukcer algorithm
0 引言

增值影像产品是指卫星原始影像经过几何校正、正射校正、融合、裁切、拼接等处理操作而生成的影像产品。国产卫星应用系统中, 每天都会生产大量的增值影像产品, 经过元数据解析、空间范围提取、快视图生成等操作, 归档至国产卫星增值影像数据库中。针对影像产品进行空间查询及覆盖范围分析是增值影像产品数据库的重要应用需求, 但是经过正射校正及裁切操作的数据产品中, 在影像的有效区域的外侧, 往往存在形状不规则的无值或背景值区域, 如果将这部分区域也计入影像的空间范围, 将导致影像空间查询及覆盖分析操作得出错误的结果, 因此在生成影像产品空间范围时, 需要去除影像的背景值区域, 对影像的真实边界进行提取。本文研究并实现了一种基于虫随算法及Douglas-Peukcer算法的影像边界提取方法, 并在国产卫星增值影像数据库中进行了部署, 该方法能够稳定准确地提取出增值影像数据的真实边界, 取得了良好的应用效果。

影像真实边界提取操作的主要目的为: 针对存在不规则背景区域的增值影像产品, 忽略其无值或背景值部分, 将实际的有效边界提取为矢量要素, 以支撑后续的数据归档、空间查询以及空间覆盖范围分析等操作。

1 技术方法

传统的边界跟踪法一般有虫随算法、光栅扫描法、轮廓编码(T算法)等, 其中光栅扫描法需要不断调整阈值, 而且扫描依赖于光栅扫描的方向性, 稳定性较差; 而轮廓编码(T算法)是4邻域方法, 其搜索结果与进入方向有关, 且搜索效率较低, 因此, 本文选取了稳定性较强, 流程简洁的虫随算法进行边界追踪。边界追踪完成后, 由于增值影像边界的边界点集节点数过多, 且冗余度非常高, 因此, 本文还选取了Douglas-Peukcer算法对追踪的结果点集进行抽稀, 提升数据的有效性和存储效能。

此外, 由于增值影像产品的单景数据量通常较大, 难以完全加载至内存中, 因此还需对提取流程及算法进行针对性优化, 采取分治思想, 逐块处理影像, 同时优选算法, 提高处理效率并减小结果占用空间。

影像真实边界提取流程包含3个主要环节, 分别为: ①影像背景值确定, 根据影像产品的特征判断影像背景值, 作为区分有效区域以及二值化操作的基准; ②边界追踪, 对影像产品使用基于虫随算法的八邻域边界追踪, 生成影像产品的初步边界点集; ③边界抽稀, 对生成的边界点集使用改进Douglas-Peukcer算法对其进行抽稀, 并生成矢量格式的要素, 完成提取。影像边界提取结果示意图见图1。

图1 影像边界提取结果示意图Fig.1 Result of the image boundary extraction

2 影像背景值确定

不同处理方式以及不同处理级别的增值影像产品有时会存在不同的影像背景值。开始影像真实边界提取之前, 首先需要根据影像的特点, 判断影像的背景值。

本文进行背景值判断主要依据以下3个条件: ①影像4个角点的像素值; ②影像统计值(Statistics)中数量最多的像素值; ③遥感影像的NoData值或0。大部分增值影像产品的背景值至少符合以上2个条件。

确定影像背景像素值后, 即可依据该像素值对影像进行二值化, 与背景像素值完全相等时即为背景区域, 不等于背景像素值时即为有效区域。本文考虑到需要处理的增值影像产品的数据量大, 选取了在像素值读取过程中(即第2步边界追踪的过程中)进行动态二值化的策略, 以提高运算效率并减少过程数据。

3 边界追踪

边界追踪的主要目的为: 依据确定的影像背景值, 通过特定算法搜索出轮廓线, 从而区分有效区域与背景。

本文选用基于8邻域搜索的虫随算法[1, 2, 3]进行边界追踪。该算法能够高效准确地追踪出影像的边界, 同时由于该算法在处理过程中, 只需要逐块读取当前像素四周有限区域的影像, 非常契合分治思想以及本文的应用需求, 能够在不将超大影像完全加载至内存的情况下对其进行高效处理。

该算法基本思想为: 二维影像上的每个有效区域都必定存在一个封闭的轮廓边界, 假定边界上有1只虫子, 让其沿一个方向爬行一圈, 必定能够回到初始位置, 且其轨迹即为有效区域的边界。

算法的输入为待处理的影像以及确定的背景值, 输出为边界对应的点集。算法流程包括2个主要环节, 扫描起点和边界搜索。

3.1 扫描起点

以逐行(或逐列)扫描的方式找到第1个边界像素: 可通过从上至下, 从左至右的顺序扫描影像, 直至扫描到第1个与背景值不相同的像素, 将该像素设置为起点。

3.2 边界搜索

从起点出发, 按顺时针方向搜索已知边界像素的8领域, 依次找到边界上的下一点。8邻域及边界搜索示意图如图2所示。

图2 8邻域及边界搜索流程Fig.2 Schematic diagram of 8-neighbour and boundary tracing

针对已知边界像素的邻域进行搜索包括以下5个步骤:

1)首先声明一个空的“ 结果点集” (有序列表或栈结构), 并将起点加入点集。

2)将起点设置为“ 当前点” , 设置正右方(即图2左图中标号为0的矢量方向)为“ 搜索矢量” , 从起点的正右侧开始搜索。

3)如果“ 当前点” 沿“ 搜索矢量” 方向的相邻点像素值为背景值, 或该点已超出影像边界, 则将“ 搜索矢量” 顺时针旋转45度(例如将标号为0的矢量方向旋转为标号为1的矢量方向), 重新执行本步骤继续搜索。

4)如果“ 当前点” 沿“ 搜索矢量” 方向的相邻点像素值为非背景值, 则先判断该相邻点是否与起点相同, 如果不相同, 则将该点加入“ 结果点集” , 并将该点设置为“ 当前点” ; 同时, 计算结果点集中“ 当前点” 至前一点的矢量方向, 并将该方向按顺时针旋转45度后, 设置为“ 搜索矢量” , 返回第3)步继续搜索。

5)如果与起点相同, 则表示搜索已完成, 当前的“ 结果点集” 即为边界轮廓。

基于虫随算法的边界追踪算法的流程示意图如图3所示。

图3 边界追踪算法流程Fig.3 Process of boundary tracing

4 边界抽稀

“ 边界追踪” 环节所获取到的轮廓线是由一系列边界点构成的, 其中包含了影像边界上的每一个像素点, 占用空间巨大且包含大量冗余信息, 若将其直接存储到数据库, 将浪费大量数据存储空间, 并严重影响后续空间操作的效率, 因此需要对该边界进行抽稀操作, 去除冗余信息, 只保留最关键的拐点作为边界。

4.1 Douglas-Peukcer基础算法

本文选用Douglas-Peukcer算法[4, 5, 6]进行边界抽稀操作, 算法输入条件为待抽稀曲线对应的点集, 输出为抽稀后的结果曲线对应的点集, 其算法的基础流程如下:

1)确定抽稀阈值, 点集中与结果曲线距离小于阈值的点将被去除, 阈值越大曲线的简化程度越高(算法通常使用影像的像素大小的整数倍作为阈值, 例如5倍像素大小)。

2)将待抽稀曲线首末两点相连, 构建一条辅助直线, 求出曲线上其余所有点到该直线的距离。

3)选择到直线距离最大的点, 检查该距离与阈值之间的关系, 若大于阈值, 则该点保留, 将原曲线在该点处拆分为两条曲线, 跳转至第2)步迭代执行; 若小于阈值, 则将首末点间的所有中间点全部去除。

4)反复迭代上述过程, 直至没有可以去除的点, 完成抽稀过程。

Douglas-Peukcer算法示意图如图4所示。

图4 Douglas-Peukcer算法示意图Fig.4 Schematic diagram of Douglas-Peukcer algorithm

完成抽稀过程后, 以抽稀的结果点集为边界生成多边形矢量要素, 完成整个边界提取过程。

4.2 算法改进

在实际的应用过程中, 针对增值影像产品的特性, 本文对传统Douglas-Peukcer算法进行了几项适应性改进。

1)由于待抽稀的边界提取自栅格影像, 栅格影像具有像素大小一致的特点, 导致边界点中存在大量连续共线情况。因此进行算法抽稀操作前, 通过共线检测对点集进行预处理, 将连续共线的点从点集中移除, 能够大幅减小抽稀操作的运算量, 显著提升效率。

2)对于增值影像产品, 待抽稀边界所构成的轮廓线为闭合曲线, 首末点重合, 无法直接使用传统Douglas-Peukcer算法处理, 需要将边界分为多段, 分别抽稀后再进行合并。

3)根据不同增值影像产品的分辨率, 动态调整算法阈值, 以保证抽稀效果一致, 利于提高后续空间查询操作的整体效率。

5 系统实现

国产卫星增值影像数据库中, 影像边界提取软件功能是数据归档入库模块中的一部分, 其软件开发基础环境如下:

1)Windows系统环境, Win7以上版本。

2)集成开发环境为Microsoft Visual Studio.net 2010, 开发语言为C#。

3)使用开源类库空间数据抽象库(geospatial data abstraction library, GDAL)实现影像文件的读取, 使用GDAL开源库的OGR组件实现边界矢量要素(shapefile格式)生成。

国产卫星增值影像数据库中, 影像边界提取结果入库情况如图5所示。

图5 影像边界提取结果入库情况示意图Fig.5 Results of image boundary extraction in the database

6 结论

本文针对国产卫星增值影像数据库中的应用需求, 研究并实现了基于虫随算法及Douglas-Peukcer算法的影像边界提取方法。经实际应用检验, 该方法能够准确高效地提取出增值影像产品的真实边界, 为国产卫星增值影像产品的管理及应用提供了有效的支撑, 取得了良好的应用效果。

The authors have declared that no competing interests exist.

参考文献
[1] Pavlidis T. Algorithms for graphics and image processing[M]. Berlin Heidelberg: Springer-Verlag, 1982. [本文引用:1]
[2] 陈士金, 汤漾平, 邓勇. 基于链码的轮廓跟踪技术在二值图像中的应用[J]. 华中理工大学学报, 1998, 26(12): 26-28.
Chen S J, Tang Y P, Deng Y. An application of contour tracing technique in the binary images based on the chain code[J]. Journal of Huazhong University of Science and Technology, 1998, 26(12): 26-28. [本文引用:1]
[3] 韩敏, 孙杨. 一种基于分组式蛇模型的GIS矢量边界更新方法[J]. 测绘学报, 2009, 38(2): 168-174.
Han M, Sun Y. A method of vector edge updating based on grouping snake model in GIS[J]. Acta Geodaetica et Cartographica Sinica, 2009, 38(2): 168-174. [本文引用:1]
[4] Douglas D H, Peucker T K. Algorithms for the reduction of the number of points required to represent a digitized line or its caricature[J]. Cartographica, 1973, 10(2): 112-122. [本文引用:1]
[5] 于靖, 陈刚, 张笑, . 面向自然岸线抽稀的改进道格拉斯-普克算法[J]. 测绘科学, 2015, 40(4): 23-27.
Yu J, Chen G, Zhang X, et al. An improved douglas-peucker algorithm oriented to natural shoreline simplification[J]. Science of Surveying and Mapping, 2015, 40(4): 23-27. [本文引用:1]
[6] 彭认灿, 董箭, 郑义东, . 垂距法与道格拉斯-普克法删除冗余顶点效率的比较[J]. 测绘通报, 2010(3): 66-67, 71.
Peng R C, Dong J, Zheng Y D, et al. The efficiency comparison of methods between perpendicular distance and Douglas-Peucker in deleting redundant vertexes[J]. Bulletin of Surveying and Mapping, 2010(3): 66-67, 71. [本文引用:1]