基于Android与参与式感知的可吸收颗粒物检测系统

 2022-01-17 11:01

论文总字数:26229字

目 录

1 绪论 6

1.1课题背景 6

1.2 课题主要研究内容 6

1.3论文的章节安排 7

2 相关技术与理论 8

2.1 Android操作系统 8

2.1.1 Android操作系统简要介绍 8

2.1.2 Android系统构架 8

2.1.2.1 Linux内核 9

2.1.2.2 Android应用程序架构 9

2.1.3 Android编程开发 9

2.1.3.1 组件 9

2.2 移动用户的感知体系 9

2.3 参与式感知 10

2.4 空气质量分析相关技术 10

2.4.1 基于外部传感器的空气质量分析 10

2.4.2 基于图像的可吸收颗粒物分析 10

2.5系统相关开发技术 11

2.5.1 图像的处理及分析- MATLAB 11

2.5.2. OpenCV 11

2.6 雾霾图像特征分析技术 12

2.6.1 基于视觉的图像特征 12

2.6.1.1图像的空间域特征 12

2.6.1.2图像的频率域特征 12

2.6.2 基于物理模型的可吸收颗粒物的图像特征 12

2.6.2.1 天空亮度模型 13

2.6.2.2 大气成像模型 13

3 基于图像分析的可吸收颗粒物估计算法 13

3.1. 不同结构相机图像的归一化处理 13

3.1.1 相机的成像模型 13

3.1.2相机辐射标定 13

3.2 可吸收颗粒物图像特征提取 14

3.2.1 可吸收颗粒物模型分析 14

3.2.2.1 图像梯度特征 15

3.2.2.2图像色彩特征 15

3.2.3基于物理的图像特征提取 15

3.3 可吸收颗粒物估计模型 16

3.3.1基于学习的可吸收颗粒物估计模型 16

3.3.1.1 图像预处理过程 17

3.3.1.2 图像特征提取过程 17

3.3.1.3 可吸收颗粒物估计过程 17

4 设计与实现可吸收颗粒物分析系统 17

4.1 概要设计 17

4.1.1总体设计 17

4.1.2模块设计 18

4.2 客户端设计 19

4.2.1应用层设计与实现 19

4.2.1.1 图像辐射标定模块 19

4.2.1.2 数据预处理模块 20

4.2.1.3 图像特征提取模块 20

4.2.1.4.可吸收颗粒物建模模块 20

4.2.1.5可吸收颗粒物估计模块 20

4.2.2数据层设计与实现 21

4.2.3引擎层设计与实现 21

4.2.3.1特征提取模块 21

4.2.3.2回归分析模块 22

4.3 服务器端设计 23

4.3.1 相机归一化模块 24

4.3.2 气象数据抓取模块 24

4.4 开发与运行环境 25

5 实验分析和系统测试 25

5.1 实验设计与分析 25

5.1.1实验设计 25

5.1.1.1实验评价标准 25

5.2 系统测试与效果展示 26

5.2.1 功能测试 26

5.3本章小结 27

6 总结 27

参考文献: 28

致谢 30

1 绪论

1.1课题背景

近年来,众多发展中国家都有一个亟需解决的重要问题—空气污染治理。在发展科技、提升工业化水平的同时,自然环境和人类健康受到大量的大气污染物带来的严重影响。特别是最近几年,中国多地因以可吸收颗粒物为首的大气污染物持续雾霾天气。据相关数据显示,部分地区可吸收颗粒物浓度远超正常浓度界限。甚至有时会远远超过空气质量检测设备的浓度检测范围。由这种现状可以看出,空气污染在中国的部分地区已经是非常严重了。由空气污染而导致的雾霾环境不仅会产生公共交通安全的隐患,同时还会对人类的身体健康状态带来非常大的危害。由此可见,对可吸收颗粒物的实时监测对于有效治理城市大气污染是一个十分重要的环节。目前,许多国家主要依靠大型的检测设备来检测可吸收颗粒物浓度,其优点是测量结果较为准确,缺点是设备成本昂贵,人工维护及保养耗时长。此外,因其在城市中分布密度低而无法实现细粒度实时检测。而空气质量检测中需要解决的重要课题就是实现低成本细粒度的实时监测。

另一方面,随着通信技术的发展以及相关硬件水平的提高和4G网络的普及,智能手机渐渐成为人类生活中不可缺少的一部分,不仅如此,强大的计算能力和丰富的传感器使其朝着更加智能的方向发展。参与式感知[2][3]是近年来所提出的利用普通民众的智能设备去收集并分享其周围的环境信息的新方法。每一个内置了传感器[28](GPS、加速度、时间、声音、图像、温度、湿度等)的智能手机都是一个综合的传感器平台。例如,我们可以利用智能手机的麦克风[28]去收集噪音信息。我们可以利用GPS传感器去收集位置信息、分析人群热度,我们可以通过其内置的方向及加速传感器得到用户行走或者跑步的状态信息。我们可以通过摄像头得到视频或者图像信息。另外,我们可以通过诸如蓝牙或USB接口这种无线或有线连接来使用外加的传感器设备,譬如空气质量检测仪等。参与式感知[28]相对于传统的传感器网络部署成本极低。参与者分布广泛,具有移动特性。

本研究在参与式感知的理论基础上,设计并实现了一个基于Android和图像分析的可吸收颗粒物检测系统。

1.2 课题主要研究内容

本课题实现一个基于图像分析的可吸收颗粒物检测系统,研究的主要内容包括对不同型号智能手机图像的归一化处理、图像特征与空气质量的关系研究和基于图像的空气质量检测系统。

要想利用图像进行空气质量分析,首先需要借助参与者智能手机所拍摄的照片完成图像处理与分析。由于不同型号的智能手机其摄像头硬件参数也会不同,拍摄时白平衡处理、曝光度及图像分辨率的不同都会对最后的图像处理与分析产生影响,而最终影响可吸收颗粒物的浓度估计。所以,我们需要对其进行归一化处理,让手机所拍摄的图像可以作为可吸收颗粒物图像分析算法的输入图像。

然后接下来需要重点研究可吸收颗粒物和图像特征之间的关系。我们想通过图像分析来达到量化可吸收颗粒物浓度的目的,第一要研究他们之间的关系。针对这个问题,学术界在这方面研究较少,大多数研究是在研究大气能见度与图像特征的联系。而本课题是从图像的物理特征(天空模型,大气模型等)及视觉特征(图像的色彩,锐度,对比度等)入手进行分析。本课题将分析使用不同手机在不同地点拍摄的照片的图像特征和可吸收颗粒物浓度的相关程度。更进一步地,分析出与可吸收颗粒物有更高特性的图像特征,且拥有较高的计算效率。

最后,根据利用研究得到的不同型号智能手机图像的归一化模型和可吸收颗粒物图像特征提取算法来实现基于图像的空气质量检测系统。这个系统先依据分析的参与者手机型号得到它的相机成像模型。然后根据参与者在一个地点获取的若干天的照片进行图像预处理分析。随后利用分析算法和图像处理得到雾霾图像的特征,最后利用该特征和参考可吸收颗粒物浓度值得到这一地点的基于图像的可吸收颗粒物估计模型。进而通过参与者在同一个地方拍摄照片来分析相应的可吸收颗粒物浓度。这个系统主要分为两个部分,参与者利用智能手机采集图像和相关数据,处理和可吸收颗粒物分析。服务器端用来负责存储可吸收颗粒物相关数据和抓取与存储气象数据。

1.3论文的章节安排

本论文的结构安排如下:

第一章 绪论,介绍了这个课题的背景的提出,论述了当前课题的研究概况,及课题的研究背景及目的。

第二章 相关技术与理论。主要介绍了主要的Android开发平台的体系结构,以及参与式感知理论技术、提取雾霾的图像特征和一些有关于空气质量分析的算法还有关于一些传感器的简单介绍。

第三章 基于图像分析的可吸收颗粒物估计算法。第一通过单个图像来进行探索方法进行相机辐射标定。然后,详述此章节使用的图像特征提取算法和有关的优化算法。最后,基于这个特征提取算法完成可吸收颗粒物的分析建模的设计与实现。

第四章 设计与实现可吸收颗粒物分析系统。第一讲述可吸收颗粒物系统的系统设计和总体需求分析。然后逐次介绍设计与实现服务器端和系统客户端的过程。服务器端包括相机归一化与气象数据抓取的模块。客户端部分包括数据和图像预处理模块、可吸收颗粒物分析建模模块及可吸收颗粒物估计模块等。在此章节的最后详述了系统的实际开发和运行环境。

第五章 实验分析和系统测试。第一,利用我们收集到的数据进行实验并对实验所得到的结果进行详尽的分析。然后,介绍可吸收颗粒物分析系统进行测试时所使用的环境,之后测试系统并分析系统的性能。最后,在手机上展示并对于运行结果进行检验。

第六章 总结。对于本次课题的工作进行了较为深刻的总结,指出了可吸收颗粒物分析系统的有待提高之处,并给出了可能的完善方向,对未来的工作进行了展望。

2 相关技术与理论

本文的目标是实现一个基于Android的参与式感知系统,基于这个目标,我们有必要了解一下Android相关的技术背景和编程开发模式、感知器采集以及其他实现相应功能需要的背景知识。

2.1 Android操作系统

2.1.1 Android操作系统简要介绍

Android阵营主要包括三星、高通、中国移动,华为等,这些机构有着不同的性质,但却都在这个平台上不断的进行创新,开拓新的功能,尽可能地使用户的体验更加极致淋漓。Android至少有7件制胜法宝:1、Android平台是免费、开源的。2、应用程序的权限由开发人员决定。3、Android上所有应用程序都是可替代和拓展的。4、应用程序之间可无障碍沟通。5、物理键盘和虚拟键盘双管齐下。6、提供了众多体现个性的功能。7、Android的主流开发环境Eclipse ADT Android SDK,开发环境舒适。

本课题是基于Android4.x平台的。该系列的版本是最新的版本,经过几个年头的沉淀,它不仅功能十分强大,而且十分地高效、稳定。它相对于老的版本,有许多新的功能,并且在界面等方面做了一些修改,代码上做了更便于界面编写的建议,使其更加适合进行软件的开发。

2.1.2 Android系统构架

Android的操作系统的底层是建立在操作系统之上的,其平台是由应用层、应用框架层、系统运行库层和Linux内核层四层所组成。Android采用软件叠层(Software Stack)的形式进行创建。这种Software Stack结构可以使每层之间互相不干扰,明确各自的分工。Software Stack可以保证各层之间的糊合度尽可能的放低,当一层的层内或层下产生变化之后,上层应用程序不需要再做出任何改变就可以适应它的变化。下面便是Android的体系结构,如图2.1所示。

图2.1 Android的体系机构

2.1.2.1 Linux内核

Android操作系统是建立在Linux2.6之上的。对于Linux内核来说,本身就提供了足够的安全性以及相关的进程管理 、内存管理、Internet协议和model驱动等核心服务系统。除此之外,Linux内核也是一个硬件设备和软件之间的桥梁。在这个基础上,Android还做了一些修改,比如电源管理等等,但是由于大部分不会在这一层开发,所以不再进行详细的描述。

2.1.2.2 Android应用程序架构

Android的Application Framework为应用程序层的开发者提供了API,由此,方便开发者应用下层的库编写极其创新又极其丰富的应用程序。通过应用程序框架,开发者可以非常方便的进行位置信息的访问、后台服务的运行、闹钟的设置、在状态栏添加通知等功能。主要通过以下四个服务做一些应用程序,其通过的服务有:1、Activity Manager(管理应用程序生命周期,提供通用的导航回退功能)2、Content Provider(使得应用程序能够访问其他应用程序或者共享自己的一些数据)3、View System(可以通过可以扩展的丰富的视图集合来构建简单的应用程序)4、Resource Manager(提供访问例如图片、音频等非代码的资源)。

2.1.3 Android编程开发

2.1.3.1 组件

应用程序向外共享功能一般都是通过活动(Activity)组件、服务(Service)组件、广播接收者(Broadcast receivers)组件和内容提供者(Contest providers)组件这四个应用程序组件实现的。Activity相当于C/S程序中的窗体或者web程序的页面。每一个Activity组件都会提供一个可视化的区域,在这个可视化区域里面可以放置各式各样的Android组件,它的工作方法主要取决于应用程序的业务的逻辑方面。Service没有可视化接口,但是可以在后台运行。其他程序还可与服务器进行通信。广播接收组件的唯一功能就是接受广播信息以及对广播消息并对其做出响应。它虽然没有用户接口,但在广播的接收者中可以启动一个Activity组件作为对广播的消息的响应。四、内容提供者(Contest providers)组件:这个组件可以给其他应用程序提供所需数据。这些个数据可以保存在文件的系统中,每一个内容提供者都是一个类,这些类都需要从android.content.ContentProvider类里面来继承。

2.2 移动用户的感知体系

随着现在科技的发展,如今的手机集越来越多的功能为一身,而不是简单是通讯设备。同样,为了满足人们的需要,越来越多的智能设备开发了许多传感器,包括气压表、加速器以及陀螺仪等来补充人的感官。这些用来检测环境和物理的传感器提供了令人亢奋的创新机会给增强移动应用的用户体验。如今手机中包含了很多传感器硬件,它们为开发应用程序和用户交互提供了新的可能性。智能移动终端结构以及框图如图2.2所示。

图2.2 智能终端结构框图

2.3 参与式感知

参与式感知[2][3]是利用随身携带的智能手机组件传感器网络并收集、分析、分享其周边的数据。这样,我们便可以集中在手机上进行收集数据以及计算和传输,而且可以使其成为参与式感知网络中的一个节点进行环境感知。相比于传统传感器网络,参与者控制所有的感知设备,因此要想保持用户较高的参与度,我们需要有持续并且有效的激励策略,以此完成数据采集任务。本课题需要的是参与者周边的环境参数,诸如温度、湿度、空气污染指数等。这样,参与者可以利用智能手机的外部传感器或者内置传感器测量环境参数;利用GPS传感器来确定手机用户的移动轨迹抑或是方位信息利用光照传感器确定参与者所在处的光强信息[7];利用外传感器[8]感知空气污染程度。言而总之,参与式感知使我们可以依靠智能手机实现收集,分析,共享环境信息。

2.4 空气质量分析相关技术

通过参与者智能手机实现可吸收颗粒物分析,目前比较普遍的主要有两种方法,一种是基于外部的传感器,另一种是基于图像。第一种在业界已有防范的研究,相比之下,第二种可参考的理论及系统实现较少。除此之外,大部分论文还会把大气浊度[11]、大气消光系数[10]和大气能见度[9]作为衡量空气质量的参数尺度。这些都和可吸收颗粒物的浓度有着密切联系[12][13]

2.4.1 基于外部传感器的空气质量分析

随着硬件的发展,传感器设备越来越小型、便利而且成本低,方便了我们携带设备去感知周边环境参数数据。对于实现数据的传输与分享可通过无线连接或与智能手机相连。现在的研究集中于小型空气质量传感器,通过其与参与者的智能手机相连,然后将其收集到的空气质量参数上传至后台服务器。CommenSense[14]使用的测量精确的手持式专业传感器体积及净重过大,不易随身携带;Srinivas Devarakonda等人[15]提出的实时移动车载传感网络功能繁多且设备成本高的不适合普通民众;InAir[16]使用小型有害气体传感设备采集室内的有害颗粒物浓度,并可以通过智能手机实时查看室内空气环境,及历史数据。但是其设备体积较大,且无法测量室外的空气质量。除设备大外还无法测量室外情况,总而言之,这不是一种很好的方法。

2.4.2 基于图像的可吸收颗粒物分析

基于图像的空气质量分析在提取不同的图像特征的基础上分析其与空气质量的关系。现在大家大部分使用的是固定摄像机,诸如交通或者气象观测专用的摄像头等,方法间的不同之处在于三个方面,分别是采用的理论模型、选取的图像特征、建模方法。其缺点是成本昂贵,不能有效利用参与者的智能手机的移动特性。

2.5系统相关开发技术

2.5.1 图像的处理及分析- MATLAB

MATLAB为矩形实验室,专门针对现代的处理器进行了一定的优化,它是一种高级语言及交互环境,主要用它来实现算法开发,数据分析和数据可视化以及数值计算。MATLAB的基本数据元素是矩阵,它是一种交互系统,对于诸如图像处理这些涉及矩阵表示的技术计算问题可以明确表达并求解。另外,它还可以调用C/C 以及Java。MATLAB可以提供一些附加的工具箱,这些工具箱可以拿来让它适用于不同领域,其中的Image Processing Toolbox提供了许许多多的图像处理函数,这些函数可以按功能分类,诸如图像特征提取、分割,图像滤波、增强去模糊,图像空间变换及图像配准,图像变换包括离散余弦变换和傅里叶变换等等,图像形态学处理包含一些诸如感兴趣区域选择等互动模块化工具。所以,通过MATLAB所提供的大量图像处理函数,研究时只需考虑其图像分析算法的逻辑实现,略去底层代码实现的担忧。

2.5.2. OpenCV

OpenCV是一个计算机视觉库,它是开源的,基于C/C ,它的程序可以在windows,Linux,Mac,Android,iOS等多种操作系统中运行。另外,OpenCV提供了一些语言接口,诸如MATLAB,Python和Ruby。OpenCV为了更加方便地快捷地开发出复杂的应用程序构建了一个简单的易用的计算机视觉框架,主体如图2.5。下面依次介绍各个模块:其一是CV模块,它含有图像处理的基本的函数和高级计算机视觉算法,其二,ML模块含有一些基于统计和聚类的算法,其三,HighGUI含有使图像及视频能够输入或者输出的函数,其四,CXCore含有OpenCV基础数据结构以及相关函数,最后,CvAux模块含有已淘汰或实验性质的图像算法函数。所以,我们可以通过使用OpenCV轻松开发出高效的图像分析算法,方便在不同的平台进行代码移植。

剩余内容已隐藏,请支付后下载全文,论文总字数:26229字

您需要先支付 80元 才能查看全部内容!立即支付

该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;