APP下载

基于OpenCV建筑物变化检测系统设计

2017-03-02施方林李宏伟

地理空间信息 2017年2期
关键词:建筑物水库数据库

施方林,李宏伟,樊 超,朱 燕

(1.信息工程大学 地理空间信息学院,河南 郑州 450000)

基于OpenCV建筑物变化检测系统设计

施方林1,李宏伟1,樊 超1,朱 燕1

(1.信息工程大学 地理空间信息学院,河南 郑州 450000)

针对南水北调建设过程中众多配套设施建设后的管理需求,设计实现了一个建筑物变化检测系统,监测水库周边环境。详细阐述了系统建设的需求、关键技术,剖析了系统的主要功能。系统运用OpenCV提供的类库及算法的改进完成影像建筑物的提取,利用ArcGIS Engine提供的组件和接口完成对影像的预处理和分析结果的统计。该系统具有较高的实用性,复用性强,为森林、湿地等的周边环境监测等提供了一个很好的案例。

影像;建筑物监测;OpenCV;ArcGIS Engine

南水北调工程建设中,国家需要建设大量配套的基础设施来为整个工程服务,随着国家对湿地、绿地等的保护力度越来越大,对湿地、绿地等周边建筑物的变化监测成为了一个重要的方面。无人机是近几年来快速发展并投入应用的一项技术,无人机影像也成为一种重要的数据来源,越来越多地被应用。现在,对于湿地、绿地等区域的监察还主要以人工为主,对于有大量建筑的区域更是难以及时发现变化的建筑物,政府无法及时掌握保护区域的环境信息,严重影响工作效率。

现有的影像变化检测常用的研究路线有两条:分类后比较法和比较后分类法[1-2],本系统采用的是分类后比较法,即先提取出影像中的建筑物,然后再比较两个时相的建筑物分布的差异,得到变化结果。本文基于OpenCV图像处理类库及算法的改进[3],采用ArcGIS Engine,Visual studio 2010开发平台,Oracle11g数据库设计实现了一个水库周边建筑物变化监测管理系统,系统自动提取同一区域不同时期的建筑变化区域,检测水库周边建筑用地的变化。

1 系统设计

1.1 系统框架结构设计

水库周边建筑物监测管理系统主要设计为6个部分:地图操作子系统、系统菜单子系统、水库信息管理子系统、遥感影像管理子系统、影像对比子系统、统计分析子系统。其逻辑结构如图1所示,其中系统菜单子系统分为角色管理、用户管理、密码管理;水库信息管理子系统分为水库信息查询、水库信息添加、水库信息编辑;遥感影像管理分为元数据查询,影像裁剪、影像添加;影像对比子系统分为影像自动对比、影像手动对比、对比结果查询;统计分析子系统分为统计结果查询、打印和输出。

图1 系统结构逻辑图

1.2 系统功能设计

水库周边建筑物监测管理系统设计为以下5个功能:

1)地图操作功能。包括放大、缩小、漫游、全图、定位、测距、侧面积,属性信息查询等。

2)用户管理功能。包括角色管理、用户管理、修改密码。用户可以新增管理角色,对角色进行编辑,同时还可以对现有用户进行编辑,修改密码。

3)水库信息查询与管理功能。包括水库信息查询、水库信息添加、水库信息编辑。用户可以根据“水库名称”和“所在地区”查询现有水库的信息,添加和编辑现有水库的信息。

4)影像信息查询与影像管理功能。包括元数据查询、影像裁剪、影像添加、影像编辑。元数据查询是根据影像水库名称、上传时间来查询影像波段数、像素行列数、经纬度范围;影像裁剪是将需要监测的范围内的影像从一整幅影像中裁剪下来;影像添加是将影像上传至指定的文件夹,并向数据库中添加影像的信息;影像编辑可以将现有影像从文件夹中删除,并删除数据库中的相关信息。

5)影像对比和结果查询功能。包括影像自动对比、影像手动对比、对比结果查询。影像自动对比是采用自动化的方式提取两个时期的影像建筑物的矢量图层,进行面积、周长等属性的对比;影像手动对比是在自动对比的基础上,手动画出未自动提取出来的变化区域;对比结果查询是查询已对比过的两幅影像的对比结果。

2 系统开发关键技术

2.1 Oracle数据库技术

Oracle是一个功能强大的关系型数据库系统,这种类型的数据库的关键是理解数据间的关系,然后构造反映这些关系的信息库。Oracle成功地将关系型数据库转移到桌面计算机上,提供了一个完整的客户/服务器体系结构的商用DBMS,同时利用SQL*NET软件层,与多种操作系统支持的通信协议相配合,为Oracle关系型数据库提供分布式环境,可以实现单点更新、多点查询[4]。Oracle的特点主要体现在:①支持大数据库、多用户的高性能事务处理,可充分利用硬件设备。支持大量用户同时在同一数据上执行各种应用,并使数据争用最小,保证数据的一致性[5]。②遵守数据库查询语言、网络通信协议等的工业标准。③较好的安全性和完整控制。Oracle有用户鉴别、特权、角色、触发器、日志、后备等功能,有效地保证了数据存取的安全性和完整性以及并发控制和数据的回复[4]。④具有可移植、可兼容、可连接等特性,Oracle不仅可以在不同型号的机器上运行,还可以在不同操作系统下运行,具有操作系统的独立性。

本系统采用的数据库是Oracle 11g,相较于SQL Server而言,Oracle数据库在稳定性、安全机制及市场占有率方面更占优势。

2.2 OpenCV图像处理技术

OpenCV(open source computer vision library),是由Intel微处理器研究实验室视觉交互组开发的一个开放源码的计算机视觉库,采用C/C++语言编写,可以运行在各主流操作系统上。利用OpenCV所包含的函数,可以很方便地实现数字图像的处理。

在本系统中建筑物提取阶段,首先进行图像灰度化处理,然后采用Canny算子进行边缘检测[6]。Canny边缘检测算子是CANNY于1986年开发出来的一个多级边缘检测算法,它主要分为3步:①用高斯滤波器平滑图像;②寻找图像中的亮度梯度;③边缘跟踪。经Canny算子处理后得到影像中各物体的轮廓,接着采用Hough变换进行直线检测[7]。Hough变换的基本思想是点-线的对偶性,即图像空间共线的点对应在参数空间里相交的线;反过来,在参数空间中相交于同一个点的所有直线(曲线)在图像空间里都有共线的点与之对应。经Hough变换直线检测和Harris角点检测算法得到多边形,填充多边形得到二值图像[8]。然后使用Potrace算子进行栅格图像的矢量化,完成影像建筑物提取工作[9]。

2.3 基于ArcGIS Engine的组件式GIS开发技术

ComGIS的基本思想是将不同的GIS功能封装为一个个的控件,各GIS控件之间以及与其他非GIS控件之间通过可视化的软件开发平台集成起来,形成一个GIS应用系统。

ArcGIS Engine由嵌入式GIS组件库和工具库构成,它主要分为两个部分:开发工具包以及运行环境Runtime。ArcGIS Engine开发工具包是一个基于组件的软件产品,可用于构建自定义GIS和制图应用软件,开发人员利用工具包可以为用户构建GIS应用系统。ArcGIS Engine Runtime是一个使终端软件能够运行的核心AO组件产品,每一台ArcGIS Engine应用程序的计算机上都需要安装。

本系统充分利用了ArcGIS Engine组件式开发的便利性,如鹰眼、基本地图操作、影像手动对比等,大大提高了系统的开发效率。

3 系统实现

3.1 实现步骤

本项目依托南阳市南水北调工程,实验数据为南阳市斩龙岗水库多个时期的无人机影像和南阳市基础地图数据。影像数据和基础地图数据均存储在本地,属性数据存储在数据库Oracle 11g中。

由于影像数据量比较大,难以一次性进行提取,故先采用缓冲区分析提取水库周边500 m范围内的影像作为提取范围,然后将影像按4×4分割为大小相同的16个部分进行处理。影像建筑物提取采用OpenCV提供的类库及其改进来实现。完成提取后,经矢量化、.shp文件拼接、空间校正,得到两个时期影像中建筑物的.shp文件,然后对两个时期的.shp文件进行叠加分析,得到变化区域,对存在变化而没有检测出来的变化区域,采用地图编辑功能手动标出,完成水库周边建筑物变化监测功能。最后对.shp文件中代表着建筑物变化区域的多边形进行统计分析。具体的实现步骤如图2所示。

图2 实现步骤

3.2 主要功能

主要功能如下:

1)基本地图功能:用户可以对地图进行平移、放大、缩小、全图、根据经纬度定位、信息查询等基本地图操作,同时系统还提供鹰眼、测距、测面积等功能,单击左侧树控件中的水库名称,水库将自动平移至屏幕中央,系统主界面如图3所示。

图3 系统主界面

2)水库信息添加:向水库中添加某水库的信息,添加南阳水库的信息,包括所在地、海拔、平均深度等,在水库树中增加了南阳水库的记录,如图4所示。

3)影像裁剪:要监测的是水库周边500 m范围内的建筑物变化,由于无人机获取的影像范围较大,需要对影像进行裁剪。打开影像,选择需要裁剪的影像的名称,若已有该水库的裁剪信息,则不需要再创建裁剪文件,在弹出的窗口中选择“是”;若没有,则选择“否”,如图5所示。

图4 添加水库信息

图5 影像裁剪

4)影像自动对比:选择需要对比的水库名称、新旧影像的日期,系统将提取两个时期影像中的建筑物,并进行叠加分析,获得的.shp矢量图层表示两个时期水库周边建筑物变化的区域,如图6所示。

图6 影像自动对比

5)影像手动对比:选择需要进行手动对比的影像名称和对比日期,利用ArcGIS Engine 10提供的编辑器对矢量图层进行编辑,手动绘出遗漏的变化区域,如图7所示。

图7 影像手动对比

4 结 语

水库周边建筑物监测系统的开发包括两部分内容:系统设计与系统开发。从系统框架结构设计、系统功能设计、系统关键技术、系统实现过程等方面对系统的设计与开发进行了介绍,在系统设计工程中,需要对系统的结构、系统的功能、系统数据库分别进行设计;在系统开发过程中,根据系统的设计目标选择开发工具,然后对系统所需要的数据进行收集和处理、数据入库,最后进行系统界面设计与物理实现。水库周边建筑物监测系统的建立,大大提高了工作效率,减少了人力成本。随着研究和应用的深入,系统将进一步完善功能,并提高建筑物提取的精度。

[1] RENÉ R. Colditz,Joanna Acosta-Velázquez,JOSÉ Reyes Díaz Gallegos,et al.Potential Effects in Multi-Resolution Post-Classification Change Detection[J].International Journal of Remote Sensing, 2012,33(20):6 426-6 445

[2] MOSER G, ANGIATI E, SERPICO S B.Multiscale Unsupervised Change Detection on Optical Images by Markov Random Fileds and Wavelets[J].IEEE Transactions on Geoscience and Remote Sensing, 2011,8(4):725-729

[3] 黎松,平西建,丁益洪,等.开放源代码的计算机视觉类库OpenCV的应用[J].计算机应用与软件,2005,22(8):134-136

[4] 魏亚楠,宋义秋. Oracle数据库应用系统的性能优化[J].制造业自动化,2008,32(8):204-206

[5] THOMAS KYTE.ORACLE9I&10G编程艺术:深入数据库体系结构[M].北京:人民邮电出版社,2006

[6] 孙英慧.基于Canny算子的边缘检测研究[J].鞍山师范学院学报,2010,12(2):48-50

[7] 孙颖,丁庆生,陈静.一种基于OpenCV的飞机跑道及地平线检测算法[J].现代电子技术,2009(3):190-191

[8] 陈凯歌,韩晓军,张宇,等.基于OpenCV的Harris角点检测[J].河南工程学院学报,2011,23(4):53-56

[9] 姚鹏鹏.改进的Potrace提花织物图像矢量化算法[J].传感器与微系统,2014,33(4):125-127

P208

B

1672-4623(2017)02-0080-03

10.3969/j.issn.1672-4623.2017.02.025

2016-05-06。

项目来源:四川省应急测绘与防灾减灾工程技术研究中心开放基金资助项目(K2015B014)。

施方林,硕士研究生,主要研究方向为地理信息系统技术与应用。

猜你喜欢

建筑物水库数据库
漳河有一水库群
邻近既有建筑物全套管回转钻机拔桩技术
出山店水库
描写建筑物的词语
出山店水库
数据库
数据库
数据库
数据库
火柴游戏