APP下载

移动近红外珍稀木材鉴别云服务系统的设计与实现

2017-03-01洪胜杰顾玉琦寿国忠

计算机应用与软件 2017年1期
关键词:木材应用程序光谱

洪胜杰 顾玉琦 寿国忠*

1(浙江省林业智能监测与信息技术研究重点实验室 浙江 临安 311300)2(浙江农林大学工程学院 浙江 临安 311300)

移动近红外珍稀木材鉴别云服务系统的设计与实现

洪胜杰1顾玉琦2寿国忠1*

1(浙江省林业智能监测与信息技术研究重点实验室 浙江 临安 311300)2(浙江农林大学工程学院 浙江 临安 311300)

用近红外光谱技术检测珍稀木材已经趋向成熟,为了使近红外珍稀木材检测设备更加方便携带外出作业,针对时下市场占有率达81%的Android手机终端,提出一种基于Android手机的移动近红外木材鉴别云服务系统的设计方案。设计了设备到手机、到云服务器的三层架构;重点研究基于Weka的珍稀木材最优判别模型,使用JavaWeb 技术构建部署云服务器,详细阐述Android应用程序开发中设备控制,信息呈现,服务器交互三个主要模块的实现。云端计算程序的部署很好地解决了手机计算能力弱、耗时久的问题,该系统为近红外光谱检测模型的建立、云端部署与Android应用程序的开发提供参考。

近红外 Android系统 云服务 JavaWeb

0 引 言

近红外光谱分析技术具有快速、准确、不破坏样品等特性,在木材定性鉴别领域,杨忠等利用近红外光谱技术对针叶材杉木和阔叶材桉树进行快速识别,正确率达100%[1]。Shou等利用近红外光谱技术结合SIMCA模式识别方法对檀香紫檀,卢氏黑黄檀、非洲紫檀三种珍稀木材进行识别[2]。显然,近红外光谱技术能很好地应用在木材的检测识别。然而传统的近红外设备体积质量庞大,只能架设在实验室环境。随着近红外光谱仪制造技术的发展,目前有杭州尼迩光电科技公司开发的轻型近红外设备尺寸(直径×高)为45×42毫米,重量小于60克,这为近红外设备手持化的室外检测提供了解决方案。由于近红外设备必须搭配一台计算机,传统的笔记本电脑还是过于笨重,不方便外出携带,在进行大量的光谱采集时,重复的鼠标操作、频繁的设备移动还是显得笨拙,并且操作过程很容易出错。为此我们考虑采用Android触控智能手机来取代传统的计算机来进行计算,然而手机的计算能力和电脑相比又相差太大。经笔者亲自实验,同样的计算程序部署在台式计算机上运算只要500~700毫秒,而部署在测试手机上运算时间却要30~40秒,耗时太久,无法满足珍稀木材和红木家具现场快速的检测的需求。近年来,中国4G网络覆盖快速推进,4G网络的传输速率峰值能达到100 Mbps,网络传输中的耗时会变得很小。因此,我们采用JavaWeb技术借助远程服务计算机来解决手机计算耗时长的问题。

1 系统的设计和实现

1.1 系统架构设计

近红外珍稀木材云检测系统开发主要分为三大部分:(1) 用Java语言程序构建四类珍稀木材的检测模型;(2) 云检测服务器端的开发和检测模型的云端部署;(3) Android应用程序的开发。系统架构如图1所示。

图1 系统框架图

1.2 模型建立

1) Weka简介

由于Android应用程序采用Java语言编程,为了更好地实现建模程序和应用软件程序之间的融合,所开发的系统中包括建模算法、Web服务器、Android应用程序,都统一采用Java语言。怀卡托智能分析环境Weka(Waikato Environment for Knowledge Analysis)是一款开源的、基于Java语言的机器学习以及数据挖掘软件,Weka中集合了大量数据挖掘的机器学习算法,包括对数据进行预处理、分类、回归、聚类、关联规则。由于其开源特性,我们可以得到里面各种算法的源程序,可以根据自己的需求对代码进行修改,也可以在工程中导入其jar包。在Weka的各种算法基础上进行二次开发,使用各类分类算法构建出自己的定性判别模型,对比算法优劣选出最合适分类算法。使用Weka建模的流程如图2所示。

图2 Weka建模流程

2) 样本集的建立

本系统对四种红木进行定性判别建模,分别是:奥氏黄檀,刺猬紫檀,大果紫檀,非洲紫檀。木材来源为本实验室采集全国各地珍稀木材生产厂家的这四种木材边角料,经由专业老师鉴定,确保木材样本的准确性。在测试环境温度25℃下,每个木材样品经过近红外光谱仪光纤探头扫描,采集和整理的四类木材近红外光谱样本数据如表1所示。

表1 四类珍稀木材近红外样本集

3) K最邻近算法

K最邻近算法:该算法核心思想是如果一个样本在特征空间中的K个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。该方法在确定分类决策上依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。由于最邻近算法主要靠周围有限的邻近样本,而不是靠判别类域的方法来确定所属类别,因此对于类域的交叉或重叠较多的待分样本集来说,最邻近算法在珍稀木材近红外光谱定性判别中的应用效果比其他算法好。

当然Weka中还有其他的建模算法,其适用的领域不尽相同,本文重点介绍珍稀木材近红外检测云服务系统整个构建的过程,在各种算法的精确性和普适性方面还需深入研究。本系统所建立的最邻近定性判别模型校正集交叉验证的识别正确率达到了89.21%,而用测试集验证模型的识别正确率达到了91.85%。

2 服务端的实现

1)JavaWeb开发环境

EclipseJavaEEIDEforWebDevelopers在安装JDK的环境下下载解压即可运行;ApacheTomcat6.0开发好的JavaWeb应用程序要配置在Tomcat下才能为客户端提供访问服务。

2)servlet

JavaServlet是运行在Web服务器上的程序,它是作为来自Web浏览器或其他HTTP客户端的请求和HTTP服务器上的数据库或应用程序之间的中间层。其主要任务如下:

(1) 读取客户端(浏览器)发送的显式的或隐式的HTTP请求数据。

(2) 处理数据并生成结果。

(3) 发送显式的数据(即文档)或隐式的HTTP响应到客户端。

3) 实现过程

JavaWeb服务端开发任务主要是实现相应功能的servlet,该系统主要用到两个servlet,一个servlet负责接收上传文件,命名为upload.java;另一个servlet负责处理判别待测文件并返回结果到客户端(Android应用程序),命名为prediction.java。把上文中用Weka中K最邻近算法建立好的判别模型和处理程序嵌入到prediction.java中去;另外一个txtToCsv.java为数据处理程序,负责把多个单个以txt格式保存的待测光谱数据转换成一个保存多条待测光谱数据的csv格式的文件,以提供prediction.java程序使用(Weka只支持arff和csv格式的文件)。服务器程序工作流程如图3所示。

图3 珍稀木材检测云服务器运行图

3 手机端的实现

3.1Android应用程序开发环境

Window7 64位操作系统;JDK1.8.0 ;AndroidDeveloperTools,集成了开发Android应用程序所需的eclipse和AndroidSDK,下载解压即可运行;Android调试手机:HTCbutterflys运行操作系统为AndroidOS4.2;近红外光谱仪:杭州尼迩光电科技有限公司的微型近红外光谱仪SmartEye1700。

3.2Android客户端

Android是由谷歌公司推出基于Linux的移动设备的操作系统,主要包括应用程序层、应用程序框架层、程序库、Android运行库和Linux内核等部分。

本项目开发的Android客户端重点在于实现手机程序和近红外光谱仪以及云端服务器的通信,使Android设备上部署的应用程序通过USB数据线能够控制近红外设备的打开、关闭、灯源的开关、设备的参比、光谱获取、光谱数据的保存、光谱的图形化、光谱数据的上传、下载、系统状态的显示、结果的输出、并确保其数据的准确性。

3.3 实现过程

Android手机端所要处理的业务主要分成设备控制模块、信息呈现模块、服务器交互模块,图4展示了针对相应的业务构建的应用程序框架。

图4 系统功能模块图

1) 设备控制模块

如图所示,设备控制模块主要负责对近红外设备的控制,设备控制模块的代码主要由设备厂商提供开发接口和相应范例,直接从提供的范例中把代码移植到自己的工程中就可以了。设备开关:负责Android手机和设备连接上后打开、关闭设备;灯源开关:负责设备光纤探头灯源的开关;设备参比:负责调整好设备中的各项设置参数,获取光谱,即负责生成相应的近红外漫反射光谱数据。

2) 信息呈现模块

显示模块分为两个部分:一是光谱数据要以光滑的曲线图显示出来;二是要有一个文本输出框。

图表部分用到开源项目AChartEngine,其为Android系统下一个制作图表的框架,该项目支持丰富的图表(如折线图、积图、散点图、条形图、气泡图等),使用里面的曲线图表过程如下:

(1) 创建三个类对象分别是:

二维多系列的数据集

private XYMultipleSeriesDataset mDataset=new XYMultipleSeriesDataset();

二维的多系列的渲染器(画图器)

private XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer();

GraphicalView View对象

private GraphicalView mChartView;

(2) 分别往mDataset对象中添加光谱数据光谱值和吸光度值,并往mRenderer中添加每个光谱数据的渲染器,使每条光谱数据画出来颜色都不一样。

(3) 用ChartFactory.getCubeLineChartView这个方法创建出曲线图,把数据集参数mDataset 渲染器参数mRenderer,还有一个为曲线的粗细参数填好,即把要画的曲线图画好。

mChartView=ChartFactory.getCubeLineChartView(this, mDataset, mRenderer, (float) 5);

(4) 最后把这个View添加到主页面的LinearLayout布局中去就完成了图表显示的工作。

layout.addView(mChartView);

实际界面如图5所示。

文字显示框使用Textview控件,设置其xml配置信息垂直方向能滚动。在程序代码中设置一个全局变量,在需要输出文字信息时往全局变量上加相应的字符串,加完后更新一下使Textview滚动到最底端,这样就实现了每个新出现的文字信息在主页面的实时显示。

图5 Android端应用程序主界面和文件选择复选框图

3) 与服务器交互模块

与服务器的交互分别由四个按钮实现:

文件选择按钮:点击跳出对话框,对话框中列表显示复选框,复选框显示的是所有保存在手机中的光谱数据的文件名,选择要预测判别的光谱后,会在图表控件中显示,被选择的光谱数据路径会被保存在一个集合中。

文件上传按钮:经过文件选择,点击文件上传就会把所选的文件上传至服务器,具体的实现过程为,Android客户端通过模拟 HTTP multipart/form-data 请求协议信息实现文件上传。即向upload.java 这个servlet发送请求,把上传的文件以字节流的形式带给servlet,servlet做出相应的文件保存工作。

云端预测按钮:此按钮即访问prediction.java这个servlet,servlet做出相应的定性判别工作后会返回包含判别结果的数据,Android手机端把这个返回数据解析出来显示到Textview中即可。

4 结 语

本文设计的系统很好地实现了Android手机程序和近红外云服务检测JavaWeb服务器端的交互,可用于实地的珍稀木材红木检测,把近红外的检测工具变得更加轻便便携,操作更加简单,手持化程度更高,解决了Android手机在近红外光谱数据方面计算能力弱的问题。

[1] 杨忠,吕斌,黄安民,等.近红外光谱技术快速识别针叶材和阔叶材的研究[J].光谱学与光谱分析,2012,32(7):1785-1789.

[2] Shou G,Zhang W,Gu Y,et al.Application of near infrared spectroscopy for discrimination of similar rare woods in the Chinese market[J].Journal of Near Infrared Spectroscopy,2014,22(6):423-432.

[3] 陈慧萍,林莉莉,王建东,等.WEKA数据挖掘平台及其二次开发[J].计算机工程与应用,2008,44(19):76-79.

[4] 杨林楠,郜鲁涛,林尔升,等.基于Android系统手机的甜玉米病虫害智能诊断系统[J].农业工程学报,2012,28(18):163-168.

[5] 李炳穆.理想的图书馆员和信息专家的素质与形象[J].图书情报工作,2000,44(2):5-8,95.

[6] 黄华,祝诗平,刘碧贞.近红外光谱云计算分析系统构架与实现[J].农业机械学报,2014,45(8):294-298,327.

[7] 李献礼,范会联.基于JSP/Servlet技术的网上选课系统的设计及实现[J].涪陵师范学院学报,2005,21(5):107-110.

[8] 张红.利用Java Servlet实现在Web服务器平台上的开发[J].桂林电子科技大学学报,2009,29(3):238-242.

DESIGN AND IMPLEMENTATION OF MOBILE NEAR-INFRARED CLOUD SERVICE SYSTEM FOR RARE WOOD IDENTIFICATION

Hong Shengjie1Gu Yuqi2Shou Guozhong1*

1(KeyLaboratoryofForestryIntelligentMonitoringandInformationTechnologyResearchofZhejiangProvince,ZhejiangAgriculturalandForestryUniversity,Lin’an311300,Zhejiang,China)2(SchoolofEngineering,ZhejiangAgriculturalandForestryUniversity,Lin’an311300,Zhejiang,China)

The technology of detecting rare wood by near infrared spectrum (NIR) is more and more mature. According to the Android mobile terminals which occupies 81% of the current market, a mobile NIR timber identification cloud service system designing scheme based on Android mobile phone is proposed to make the rare wood near-infrared detection equipment more convenient on fieldwork. In the designing scheme, the three-tier architecture is designed, which is the device to the phone, the phone to the cloud server, then, the optimal discrimination model for rare wood based on Weka is focused, and the realization of three system modules is described, which are device control, information presentation and server interaction in Android application development by using Java Web technology to deploy cloud server. The deployment of cloud computing program is a good solution to the problem of weak handset computing power and time-consuming. This system is set up to provide a reference to the modeling of NIR detection, cloud deployment and Android applications development.

Near-infrared Android system Cloud services Java Web

2015-12-02。浙江省林业智能监测与信息技术研究重点实验室开放基金项目(100151403)。洪胜杰,硕士生,主研领域:近红外珍稀木材鉴别。顾玉琦,博士。寿国忠,教授。

TP391.4

A

10.3969/j.issn.1000-386x.2017.01.039

猜你喜欢

木材应用程序光谱
基于三维Saab变换的高光谱图像压缩方法
橘子皮用来开发透明木材
高光谱遥感成像技术的发展与展望
数字说
木材在未来建筑设计中的应用分析
删除Win10中自带的应用程序
谷歌禁止加密货币应用程序
星载近红外高光谱CO2遥感进展
苦味酸与牛血清蛋白相互作用的光谱研究
严格木材认证