洪勝杰 顧玉琦 壽國忠*
1(浙江省林業(yè)智能監(jiān)測與信息技術研究重點實驗室 浙江 臨安 311300)2(浙江農(nóng)林大學工程學院 浙江 臨安 311300)
移動近紅外珍稀木材鑒別云服務系統(tǒng)的設計與實現(xiàn)
洪勝杰1顧玉琦2壽國忠1*
1(浙江省林業(yè)智能監(jiān)測與信息技術研究重點實驗室 浙江 臨安 311300)2(浙江農(nóng)林大學工程學院 浙江 臨安 311300)
用近紅外光譜技術檢測珍稀木材已經(jīng)趨向成熟,為了使近紅外珍稀木材檢測設備更加方便攜帶外出作業(yè),針對時下市場占有率達81%的Android手機終端,提出一種基于Android手機的移動近紅外木材鑒別云服務系統(tǒng)的設計方案。設計了設備到手機、到云服務器的三層架構(gòu);重點研究基于Weka的珍稀木材最優(yōu)判別模型,使用JavaWeb 技術構(gòu)建部署云服務器,詳細闡述Android應用程序開發(fā)中設備控制,信息呈現(xiàn),服務器交互三個主要模塊的實現(xiàn)。云端計算程序的部署很好地解決了手機計算能力弱、耗時久的問題,該系統(tǒng)為近紅外光譜檢測模型的建立、云端部署與Android應用程序的開發(fā)提供參考。
近紅外 Android系統(tǒng) 云服務 JavaWeb
近紅外光譜分析技術具有快速、準確、不破壞樣品等特性,在木材定性鑒別領域,楊忠等利用近紅外光譜技術對針葉材杉木和闊葉材桉樹進行快速識別,正確率達100%[1]。Shou等利用近紅外光譜技術結(jié)合SIMCA模式識別方法對檀香紫檀,盧氏黑黃檀、非洲紫檀三種珍稀木材進行識別[2]。顯然,近紅外光譜技術能很好地應用在木材的檢測識別。然而傳統(tǒng)的近紅外設備體積質(zhì)量龐大,只能架設在實驗室環(huán)境。隨著近紅外光譜儀制造技術的發(fā)展,目前有杭州尼邇光電科技公司開發(fā)的輕型近紅外設備尺寸(直徑×高)為45×42毫米,重量小于60克,這為近紅外設備手持化的室外檢測提供了解決方案。由于近紅外設備必須搭配一臺計算機,傳統(tǒng)的筆記本電腦還是過于笨重,不方便外出攜帶,在進行大量的光譜采集時,重復的鼠標操作、頻繁的設備移動還是顯得笨拙,并且操作過程很容易出錯。為此我們考慮采用Android觸控智能手機來取代傳統(tǒng)的計算機來進行計算,然而手機的計算能力和電腦相比又相差太大。經(jīng)筆者親自實驗,同樣的計算程序部署在臺式計算機上運算只要500~700毫秒,而部署在測試手機上運算時間卻要30~40秒,耗時太久,無法滿足珍稀木材和紅木家具現(xiàn)場快速的檢測的需求。近年來,中國4G網(wǎng)絡覆蓋快速推進,4G網(wǎng)絡的傳輸速率峰值能達到100 Mbps,網(wǎng)絡傳輸中的耗時會變得很小。因此,我們采用JavaWeb技術借助遠程服務計算機來解決手機計算耗時長的問題。
1.1 系統(tǒng)架構(gòu)設計
近紅外珍稀木材云檢測系統(tǒng)開發(fā)主要分為三大部分:(1) 用Java語言程序構(gòu)建四類珍稀木材的檢測模型;(2) 云檢測服務器端的開發(fā)和檢測模型的云端部署;(3) Android應用程序的開發(fā)。系統(tǒng)架構(gòu)如圖1所示。
圖1 系統(tǒng)框架圖
1.2 模型建立
1) Weka簡介
由于Android應用程序采用Java語言編程,為了更好地實現(xiàn)建模程序和應用軟件程序之間的融合,所開發(fā)的系統(tǒng)中包括建模算法、Web服務器、Android應用程序,都統(tǒng)一采用Java語言。懷卡托智能分析環(huán)境Weka(Waikato Environment for Knowledge Analysis)是一款開源的、基于Java語言的機器學習以及數(shù)據(jù)挖掘軟件,Weka中集合了大量數(shù)據(jù)挖掘的機器學習算法,包括對數(shù)據(jù)進行預處理、分類、回歸、聚類、關聯(lián)規(guī)則。由于其開源特性,我們可以得到里面各種算法的源程序,可以根據(jù)自己的需求對代碼進行修改,也可以在工程中導入其jar包。在Weka的各種算法基礎上進行二次開發(fā),使用各類分類算法構(gòu)建出自己的定性判別模型,對比算法優(yōu)劣選出最合適分類算法。使用Weka建模的流程如圖2所示。
圖2 Weka建模流程
2) 樣本集的建立
本系統(tǒng)對四種紅木進行定性判別建模,分別是:奧氏黃檀,刺猬紫檀,大果紫檀,非洲紫檀。木材來源為本實驗室采集全國各地珍稀木材生產(chǎn)廠家的這四種木材邊角料,經(jīng)由專業(yè)老師鑒定,確保木材樣本的準確性。在測試環(huán)境溫度25℃下,每個木材樣品經(jīng)過近紅外光譜儀光纖探頭掃描,采集和整理的四類木材近紅外光譜樣本數(shù)據(jù)如表1所示。
表1 四類珍稀木材近紅外樣本集
3) K最鄰近算法
K最鄰近算法:該算法核心思想是如果一個樣本在特征空間中的K個最相鄰的樣本中的大多數(shù)屬于某一個類別,則該樣本也屬于這個類別,并具有這個類別上樣本的特性。該方法在確定分類決策上依據(jù)最鄰近的一個或者幾個樣本的類別來決定待分樣本所屬的類別。由于最鄰近算法主要靠周圍有限的鄰近樣本,而不是靠判別類域的方法來確定所屬類別,因此對于類域的交叉或重疊較多的待分樣本集來說,最鄰近算法在珍稀木材近紅外光譜定性判別中的應用效果比其他算法好。
當然Weka中還有其他的建模算法,其適用的領域不盡相同,本文重點介紹珍稀木材近紅外檢測云服務系統(tǒng)整個構(gòu)建的過程,在各種算法的精確性和普適性方面還需深入研究。本系統(tǒng)所建立的最鄰近定性判別模型校正集交叉驗證的識別正確率達到了89.21%,而用測試集驗證模型的識別正確率達到了91.85%。
1)JavaWeb開發(fā)環(huán)境
EclipseJavaEEIDEforWebDevelopers在安裝JDK的環(huán)境下下載解壓即可運行;ApacheTomcat6.0開發(fā)好的JavaWeb應用程序要配置在Tomcat下才能為客戶端提供訪問服務。
2)servlet
JavaServlet是運行在Web服務器上的程序,它是作為來自Web瀏覽器或其他HTTP客戶端的請求和HTTP服務器上的數(shù)據(jù)庫或應用程序之間的中間層。其主要任務如下:
(1) 讀取客戶端(瀏覽器)發(fā)送的顯式的或隱式的HTTP請求數(shù)據(jù)。
(2) 處理數(shù)據(jù)并生成結(jié)果。
(3) 發(fā)送顯式的數(shù)據(jù)(即文檔)或隱式的HTTP響應到客戶端。
3) 實現(xiàn)過程
JavaWeb服務端開發(fā)任務主要是實現(xiàn)相應功能的servlet,該系統(tǒng)主要用到兩個servlet,一個servlet負責接收上傳文件,命名為upload.java;另一個servlet負責處理判別待測文件并返回結(jié)果到客戶端(Android應用程序),命名為prediction.java。把上文中用Weka中K最鄰近算法建立好的判別模型和處理程序嵌入到prediction.java中去;另外一個txtToCsv.java為數(shù)據(jù)處理程序,負責把多個單個以txt格式保存的待測光譜數(shù)據(jù)轉(zhuǎn)換成一個保存多條待測光譜數(shù)據(jù)的csv格式的文件,以提供prediction.java程序使用(Weka只支持arff和csv格式的文件)。服務器程序工作流程如圖3所示。
圖3 珍稀木材檢測云服務器運行圖
3.1Android應用程序開發(fā)環(huán)境
Window7 64位操作系統(tǒng);JDK1.8.0 ;AndroidDeveloperTools,集成了開發(fā)Android應用程序所需的eclipse和AndroidSDK,下載解壓即可運行;Android調(diào)試手機:HTCbutterflys運行操作系統(tǒng)為AndroidOS4.2;近紅外光譜儀:杭州尼邇光電科技有限公司的微型近紅外光譜儀SmartEye1700。
3.2Android客戶端
Android是由谷歌公司推出基于Linux的移動設備的操作系統(tǒng),主要包括應用程序?qū)?、應用程序框架層、程序庫、Android運行庫和Linux內(nèi)核等部分。
本項目開發(fā)的Android客戶端重點在于實現(xiàn)手機程序和近紅外光譜儀以及云端服務器的通信,使Android設備上部署的應用程序通過USB數(shù)據(jù)線能夠控制近紅外設備的打開、關閉、燈源的開關、設備的參比、光譜獲取、光譜數(shù)據(jù)的保存、光譜的圖形化、光譜數(shù)據(jù)的上傳、下載、系統(tǒng)狀態(tài)的顯示、結(jié)果的輸出、并確保其數(shù)據(jù)的準確性。
3.3 實現(xiàn)過程
Android手機端所要處理的業(yè)務主要分成設備控制模塊、信息呈現(xiàn)模塊、服務器交互模塊,圖4展示了針對相應的業(yè)務構(gòu)建的應用程序框架。
圖4 系統(tǒng)功能模塊圖
1) 設備控制模塊
如圖所示,設備控制模塊主要負責對近紅外設備的控制,設備控制模塊的代碼主要由設備廠商提供開發(fā)接口和相應范例,直接從提供的范例中把代碼移植到自己的工程中就可以了。設備開關:負責Android手機和設備連接上后打開、關閉設備;燈源開關:負責設備光纖探頭燈源的開關;設備參比:負責調(diào)整好設備中的各項設置參數(shù),獲取光譜,即負責生成相應的近紅外漫反射光譜數(shù)據(jù)。
2) 信息呈現(xiàn)模塊
顯示模塊分為兩個部分:一是光譜數(shù)據(jù)要以光滑的曲線圖顯示出來;二是要有一個文本輸出框。
圖表部分用到開源項目AChartEngine,其為Android系統(tǒng)下一個制作圖表的框架,該項目支持豐富的圖表(如折線圖、積圖、散點圖、條形圖、氣泡圖等),使用里面的曲線圖表過程如下:
(1) 創(chuàng)建三個類對象分別是:
二維多系列的數(shù)據(jù)集
private XYMultipleSeriesDataset mDataset=new XYMultipleSeriesDataset();
二維的多系列的渲染器(畫圖器)
private XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer();
GraphicalView View對象
private GraphicalView mChartView;
(2) 分別往mDataset對象中添加光譜數(shù)據(jù)光譜值和吸光度值,并往mRenderer中添加每個光譜數(shù)據(jù)的渲染器,使每條光譜數(shù)據(jù)畫出來顏色都不一樣。
(3) 用ChartFactory.getCubeLineChartView這個方法創(chuàng)建出曲線圖,把數(shù)據(jù)集參數(shù)mDataset 渲染器參數(shù)mRenderer,還有一個為曲線的粗細參數(shù)填好,即把要畫的曲線圖畫好。
mChartView=ChartFactory.getCubeLineChartView(this, mDataset, mRenderer, (float) 5);
(4) 最后把這個View添加到主頁面的LinearLayout布局中去就完成了圖表顯示的工作。
layout.addView(mChartView);
實際界面如圖5所示。
文字顯示框使用Textview控件,設置其xml配置信息垂直方向能滾動。在程序代碼中設置一個全局變量,在需要輸出文字信息時往全局變量上加相應的字符串,加完后更新一下使Textview滾動到最底端,這樣就實現(xiàn)了每個新出現(xiàn)的文字信息在主頁面的實時顯示。
圖5 Android端應用程序主界面和文件選擇復選框圖
3) 與服務器交互模塊
與服務器的交互分別由四個按鈕實現(xiàn):
文件選擇按鈕:點擊跳出對話框,對話框中列表顯示復選框,復選框顯示的是所有保存在手機中的光譜數(shù)據(jù)的文件名,選擇要預測判別的光譜后,會在圖表控件中顯示,被選擇的光譜數(shù)據(jù)路徑會被保存在一個集合中。
文件上傳按鈕:經(jīng)過文件選擇,點擊文件上傳就會把所選的文件上傳至服務器,具體的實現(xiàn)過程為,Android客戶端通過模擬 HTTP multipart/form-data 請求協(xié)議信息實現(xiàn)文件上傳。即向upload.java 這個servlet發(fā)送請求,把上傳的文件以字節(jié)流的形式帶給servlet,servlet做出相應的文件保存工作。
云端預測按鈕:此按鈕即訪問prediction.java這個servlet,servlet做出相應的定性判別工作后會返回包含判別結(jié)果的數(shù)據(jù),Android手機端把這個返回數(shù)據(jù)解析出來顯示到Textview中即可。
本文設計的系統(tǒng)很好地實現(xiàn)了Android手機程序和近紅外云服務檢測JavaWeb服務器端的交互,可用于實地的珍稀木材紅木檢測,把近紅外的檢測工具變得更加輕便便攜,操作更加簡單,手持化程度更高,解決了Android手機在近紅外光譜數(shù)據(jù)方面計算能力弱的問題。
[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數(shù)據(jù)挖掘平臺及其二次開發(fā)[J].計算機工程與應用,2008,44(19):76-79.
[4] 楊林楠,郜魯濤,林爾升,等.基于Android系統(tǒng)手機的甜玉米病蟲害智能診斷系統(tǒng)[J].農(nóng)業(yè)工程學報,2012,28(18):163-168.
[5] 李炳穆.理想的圖書館員和信息專家的素質(zhì)與形象[J].圖書情報工作,2000,44(2):5-8,95.
[6] 黃華,祝詩平,劉碧貞.近紅外光譜云計算分析系統(tǒng)構(gòu)架與實現(xiàn)[J].農(nóng)業(yè)機械學報,2014,45(8):294-298,327.
[7] 李獻禮,范會聯(lián).基于JSP/Servlet技術的網(wǎng)上選課系統(tǒng)的設計及實現(xiàn)[J].涪陵師范學院學報,2005,21(5):107-110.
[8] 張紅.利用Java Servlet實現(xiàn)在Web服務器平臺上的開發(fā)[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。浙江省林業(yè)智能監(jiān)測與信息技術研究重點實驗室開放基金項目(100151403)。洪勝杰,碩士生,主研領域:近紅外珍稀木材鑒別。顧玉琦,博士。壽國忠,教授。
TP391.4
A
10.3969/j.issn.1000-386x.2017.01.039