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