1. 引言
国家林业局2009年颁发的《全国林业信息化建设纲要》 [1] 提出,要加快林业信息服务的发展,以林业数据促进林业决策科学化,而《全国林业信息化建设技术指南》 [1] 把可视化技术列为林业信息化发展的核心技术之一。可视化技术得到如此重视是因为它能够向用户提供一个高效的可视化环境,辅助用户对数据进行深层次的挖掘,不断找出数据的特征,以及内在的联系与规律 [2] 《全国林业信息化建设技术指南》 [1] 还指出,以林业信息查询、分析、统计等业务为主的应用适合采用浏览器/服务器架构进行开发,而以林业数据处理为主的应用适合采用客户端/服务器架构进行开发。由此可见,浏览器/服务器架构的林业数据可视化应用研究是林业信息服务建设的重要发展方向之一。
我国现有森林面积2.2亿公顷,森林蓄积量约175.6亿立方米,森林资源在保障我国生态安全、维持生态平衡、促进经济发展中发挥着重要作用。但过去十年间,全国林业有害生物年均发生面积超过千万公顷,直接经济损失超过千亿元 [3] [4]。其中松材线虫是造成我国森 林资源损失最为严重的重大外来有害生物,属于国家重大生态灾害。松材线虫破坏力极强,松树一旦感染40天左右就能死亡,且无有效的药物可治,被称为松树的“癌症”。截止到2019年5月,松材线虫病疫情已经扩散到我国18个省(直辖市、自治区)的588个县级行政区 [5],对近9亿亩松林安全构成威胁,严重危害了松林资源和生态安全。
传统的松材线虫病害监测主要利用人工调查,用肉眼或借助望远镜瞭望辖区内松林健康状况,调查结果具有较强的主观性,且监测范围小、效率低、漏判和误判率高。另一种监测手段是利用卫星遥感技术结合 GIS 观察病害分布情况,但卫星遥感监测成本高、时效性滞后,无法满足对松材线虫病疫情早监测、早发现的要求。近年来无人机因其易操作、成本低、时效性强等优点,开始应用于林业病虫害监测 [6] [7] [8]。
近年来无人机技术的发展,为森林资源的遥感检测提供了新的手段 [9]。然而,目前在无人机影像中识别松材线虫早期染病阶段疫木,仍处于目视判读的水平 [10] [11],人工判别疫木的方法主观性强、工作效率低。对无人机影像中松材线虫早期染病阶段识别属于目标检测问题,在识别松材线虫疫木同时判定单株疫木位置。无人机遥感结合目标检测技术已开始应用于农林业领域:2018年Fan Zhun等 [12] 在烟草识别问题中从无人机影像数据抽取多个候选区域后,利用卷积神经网络对烟草区域进行识别;同年孙钰等 [13] 改进SSD300目标检测框架,提出一种受红脂大小蠹侵染的油松检测方法,实现森林病虫害无人机实时监测;彭明霞等 [14] 于2019年采用结合FPN (Feature pyramid network)的Faster R-CNN检测方法,在复杂背景下识别棉田中杂草,为精确除草提供参考;2020年Deng等 [15] 使用Faster R-CNN目标检测模型识别无人机影像中的松材线虫病单株,并推演单株疫木坐标位置。本文利用SSD目标检测框架,对图片进行目标检测,在检测结果图中利用红色方框标注被松材线虫侵染的疫木,同时可查询该图片上疫木坐标位置及疫木株数。
综上所述,目前松材线虫病在全国快速扩散,已严重威胁到9亿亩松林的严峻形势,本项目将无人机遥感图像上传至数据库系统,通过SSD框架对图片进行目标检测,将检测结果在3D地球上可视化,构建出一套无人机遥感图像数据可视化系统,为决策部门及时排除病害险情提供准确的信息。
2. 相关技术
2.1. SSM框架
SSM框架整合Spring,Spring MVC,和Mybatis框架,是标准的MVC模式,该模式将整个系统划分为表现层,controller层,service层,DAO层四层。其中,Spring是一个开源框架,其核心是控制反转、依赖注入及AOP面向切面编程。Spring在配置文件中可指定特定参数调用实体类构造方法以完成实例化对象。SpringMVC是一个表现层框架,它应用于web层,相当于一个controller,用来处理用户请求,即从请求中接收传入的参数,将处理后的结果返回给页面进行展示。Mybatis是一个ORM框架,它基于Java的持久化框架,是对jdbc的封装,可使数据库底层操作变得透明,并简化jdbc开发成本。Spring框架如图1所示。
2.2. Vue.js框架
Vue.js是一个JavaScriptMVVM库,即一套构建用户界面的渐进式框架。该框架以数据驱动和组件化的思想构建,采用自底向上增量开发设计。同时,Vue.js是一个用于创建用户界面的开源JavaScript框架,也是一个创建单页应用的Web应用框架,旨在更好地组织与简化Web开发。Vue.js的核心是MVC 模式中的视图层,该视图层可方便地获取数据更新,并且可通过组件内部特定的方法实现视图与模型的交互。Vue.js包含声明式渲染、组件化系统、客户端路由、大规模状态管理、构建工具、数据持久化、跨平台支持等。它提供MVVM风格的双向数据绑定的Javascript库,其核心是MVVM中的VM,即ViewModel,负责连接View和Model,保证视图和数据的一致性,这种轻量级的架构让前端开发更加高效、便捷。如图2所示是MVVM模式的示意图,分为三个部分:View (DOM)层、ViewModel (Vue)层以及Model (JS逻辑层)。其中,在Viewmodel层包含两个类似监听器的部件,DOM Listeners和Data Bindings,当View层的数据状态发生改变时,Dom Listeners监听Model层并改变Model层的数据。当Model层的数据发生改变时,ViewModel层的Data Bindings监听并改变View层数据的显示。即Vue的特性:数据的双向绑定。
2.3. MySQL
Mysql关系型数据库管理系统,它是Web应用方面RDBMS (Relational Database Management System:关系数据库管理系统)应用软件之一。该数据库管理系统由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,使加载数据的速度加快并提高灵活性。MySQL关系型数据库通过“客户端/服务器”模式实现,是一个多用户、多线程的小型数据库,具有稳定、可靠、管理方便以及支持众多系统平台的特点,适用于中小项目的开发 [16]。MySQL软件使用C和C++进行编写,通过多种测试,确保了源代码的移植 [17]。
无人机遥感图像数据可视化系统中的图片、视频数据通过MySQL关系型数据库的增加、删除、查询和修改操作将正确的结果返回给用户,用户在系统前端通过UI组件操作,可实现查看图片、播放视频、在三维地球查看图像数据以及查看疫木侵染程度的功能。
2.4. Nginx
Nginx是一个开源的、支持高性能、高并发的www服务和代理服务软件。该软件支持的负载均衡方式有轮询、IP哈希、URL哈希、加权轮询和最少连接数法等多种方式 [18]。由一个核心和一系列模块组成,核心主要提供Web Server的基本功能,以及Web和Mail反向代理的功能。Nginx的系列模块提供了core内核、event事件、HTTP服务、mail邮件和misc杂项五种类别,每一类模块根据需要具有多种模块 [19]。
2.5. Cesium
Cesium是一款面向三维地球,世界级的JavaScript开源产品。即一个新兴的三维开发框架,可借助HTML5新一代网页标准和WebGL技术规范在Web端实现动态的三维场景渲染。其中,HTML5新添加的canvas和媒体资源等标签 [20] 可在Web窗口页面中添加独立元素,实现诸如HTML文件及媒体资源等的添加,提供更为丰富的可视化实景场景 [21]。Cesium提供基于JavaScript语言的开发包,方便用户快速搭建一款零插件的虚拟地球Web应用,并在性能、精度、渲染质量、多平台以及易用性上具有高质量保证。该系统通过Cesium平台,以三维地球可视化无人机遥感图像数据的信息,可直观看到各个地区上传的图片视频的信息。
2.6. CentOS
CentOS是一个基于Red Hat Linux提供的可自由使用源代码的企业级Linux发行版本。其完全免费,独有的yum命令支持在线升级,可以即时更新系统等特性。由于CentOS 7系统采用了XFS文件系统,XFS能够通过日志很好的保护系统数据的完整性 [22]。也使得其成为了本次研究的十分重要的工具。本次研究使用CentOS作为服务端的操作系统,确保了整个平台的后端能够高效稳定的运行。
3. 数据库设计
无人机遥感图像数据可视化系统使用MySQL关系型数据库管理系统,为多种编程语言提供API,并使用多种编译器进行测试,保证源代码的可移植性。本文采用依据数据库实现数据表的连接减少数据的冗余 [23]。根据实际情况共有15张数据库表格,重点介绍以下几张表(见表1~6):
4. 系统功能设计与实现
4.1. 系统结构设计
无人机遥感图像数据可视化系统主要分为四大模块,其主要功能如下所示。
1) 用户管理模块:用户登录管理、用户角色与权限管理以及用户登录的日志管理。为提高用户安全性,本系统对新用户数据可进行加密 [24]。
2) 图像数据库管理模块:将无人机遥感图片、拼接图(即将多幅图像拼接成一幅大尺度图像)、视频上传至系统,用户可执行查询、删除操作,可查看缩略图,且在系统中对病虫害、树种类型进行增加和修改。
3) 目标检测模块:系统查询拼接图,进行目标检测,检测出图片上病树的具体位置,可查询出病树的中心坐标。
4) 数据可视化模块:3D地球可视化,即系统上传图片和视频的地区以红色气泡在3D地球上显示,点击红色气泡可查看图片以及视频的详细信息。利用不同颜色的多边体代表不同的地区,其高度代表上传图片以及视频的数量。同时利于不同颜色的小球可视化该地区上传拼接图中疫木株数,可表示疫木的侵染程度。系统逻辑结构示意图如图3所示。
4.2. 系统主要功能设计
4.2.1. 用户管理模块
用户管理模块包含用户登录、用户权限管理、用户角色设置、日志管理等功能,如图4所示。
用户权限管理:管理员可为本系统创建多个普通用户,同时可修改用户的信息以及密码。创建用户须填写用户名、登录密码、用户手机号和邮箱等信息;用户角色设置:管理员可为本系统用户设置权限,普通用户仅可查询系统图片及视频数据,管理员可对系统数据进行修改;登录日志管理:用户登录系统时,在系统里进行的一系列操作,管理员均可在日志中查询,并对日志进行管理。
4.2.2. 图像数据库管理模块
图像数据库管理模块主要是对图片及视频数据上传、查询、删除,以及对病虫类型和树种类型管理。上传功能:支持批量上传图片,主要根据拍摄地区、拍摄时间、拍摄角度、病树类型、病虫害 类型上传图片以视频数据;查询功能:根据图片及视频上传的地区可模糊查询,并支持查看缩略图;病树、虫害类型管理:支持树种及虫害类型增加、修改、删除,如图5所示。
4.2.3. 目标检测模块
· 目标检测模块,利用SSD目标检测框架,其算法的运行步骤如下:第一步输入一幅图片,经过卷积神经网络(CNN)提取特征,并生成feature map;第二步抽取其中六层的feature map,在feature map的每个点上生成default box;第三步将生成的所有default box集合起来,先过滤掉类别概率低于阈值的default box,再采用NMS非极大值抑制,即抑制的过程是一个迭代–遍历–消除的过程,将所有候选框的得分进行排序,选中最高分及其所对应的BB,遍历其余的框,如果它和当前最高得分框的重叠面积大于一定的阈值,将其删除,从没有处理的框中继续选择一个得分最高的,重复上述过程筛掉重叠度较高的,输出筛选后的 default box,并输出结果。根据图像检测结果,计算出病树的经纬度返回给用户。如图6所示。
4.2.4. 数据可视化模块
数据可视化模块主要功能为:图片及视频的散落点(上传图像的地区以红色气泡显示,各个红色气泡即为散落点)显示,图片视频数量以多边形实体可视化,病树侵染程度以不同颜色的小球可视化。
1) 散落点显示功能:上传图片和视频数据的地区以红色气泡的形式在地球显示,点击红色气泡,可查询到该地区图片及视频的详细信息,如拍摄时间、拍摄角度、拍摄类型、树种类型、病虫类型等信息,点击查看详情可查询图片并播放视频。如图7所示。
2) 图片及视频数量显示:系统以多变形实体高度可视化图片及视频的数量,该实体高度越高表示该地区上传的图片及视频数量越多。如图8所示。
3) 病树侵染程度显示:系统以不同颜色的小球代表该地区病树侵染程度,点击小球可查询具体地区,以及该地区上传图片中的疫木株数,点击查看详情,可查看病虫害检测结果图,如图9所示。

Figure 9. Visualization of the diseased tree infestation
图9. 病树侵染程度可视化
5. 研究意义
相对于传统的数据库系统:无人机遥感图像数据可视化系统支持拼接图上传以及无人机图片批量上传,图片上传时可查看缩略图进行预览。该数据库系统部署到云服务器上,林区工作人员可随时随地将拍摄的图片上传至系统并且进行目标检测,通过检测结果图查看病树的具体坐标,可及时对病树防治,对林业的发展有重要的研究价值。
相对于其他可视化系统:无人机遥感图像数据可视化系统在三维地球上利用红色气泡标注出上传图片及视频的地区,用户可查看图片以及播放视频。该系统以多边形实体的高度表示各个地区的图片视频数量,并且以小球的颜色显示地区的疫木侵染程度,可查看疫木株数以及疫木具体坐标位置。三维地球可视化使用户在体验功能的同时又拥有良好的视觉感受。
6. 结论与展望
为解决无人机遥感图片以及视频数据存储空间大、数据保密性低、查看不方便等问题,本文实现了无人机遥感图像数据可视化系统。该系统上传图片及视频的速度快、查询方便、数据安全性高,并且操作简单、交互性强,使用户拥有良好的体验感。三维地球的可视化使林业工作人员更直观地看到各个地区疫木侵染情况,对未来林业树木防治工作有重要的意义。随着技术日新月异的发展,对于数据库管理以及数据可视化的要求越来越高,这就需要我们不停地去探索新的需求,发展新的技术,使得系统更加完善,集成度更加深入。
基金项目
1) 国家重点研发计划“林业有害生物检测、监测与预警关键技术”(2018YFD0600201)。
2) 国家林业和草原局重大应急科技项目“松材线虫病防控关键技术研究与示范”(ZD202001-05)。