袁 海,劉幺和,花 奇
(湖北工業(yè)大學(xué)機(jī)械工程學(xué)院,湖北 武漢430068)
隨著物聯(lián)網(wǎng)[1]大規(guī)模普及,在零售、醫(yī)療衛(wèi)生、物流、運(yùn)輸、公共事業(yè)、制造及公共安全等重點(diǎn)行業(yè),及平安家庭、個(gè)人健康、電子支付等公共服務(wù)領(lǐng)域?qū)ζ髽I(yè)級(jí)、家庭級(jí)或個(gè)人級(jí)的移動(dòng)類物聯(lián)網(wǎng)終端提出了更高要求。不同的移動(dòng)終端采集自不同來(lái)源的數(shù)據(jù),數(shù)據(jù)信息內(nèi)容和信息格式各不相同,導(dǎo)致移動(dòng)終端對(duì)數(shù)據(jù)的識(shí)別難度大大增加,識(shí)別的種類包括:光電一體化信息識(shí)別、圖像處理與識(shí)別、聲學(xué)信號(hào)的識(shí)別、射頻信息識(shí)別等。因此,對(duì)物體的信息進(jìn)行實(shí)時(shí)、有效的識(shí)別是物聯(lián)網(wǎng)發(fā)展亟待解決的問題。利用物聯(lián)網(wǎng)本身的智能處理能力,以及云計(jì)算、模式識(shí)別等各種智能技術(shù)能有效解決這一問題。
信息識(shí)別技術(shù)是計(jì)算機(jī)發(fā)展的產(chǎn)物,又是輔助計(jì)算機(jī)識(shí)別信息的一大類技術(shù)系統(tǒng),可以將它看成是計(jì)算機(jī)的眼睛、耳朵、鼻子和感覺神經(jīng)。就像人的大部分信息獲取來(lái)自人的感官一樣,自動(dòng)信息識(shí)別技術(shù)是人們?nèi)粘I钪羞\(yùn)用較多,且較為成熟的一門技術(shù)。
目前信息的載體有一維條形碼、二維條形碼,而容量較大的芯片則通過(guò)射頻技術(shù)識(shí)別。一維條形碼[2]有信息承載成本低、識(shí)別方便等顯著優(yōu)勢(shì),但是信息容量太小。射頻識(shí)別技術(shù)的發(fā)展相當(dāng)成熟,對(duì)信息的保存也相對(duì)安全,不像一維條形碼那樣容易受到損壞,但是其成本相對(duì)較高。近幾年逐步成長(zhǎng)起來(lái)的二維條形碼同一維條形碼一樣,幾乎是零成本信息存儲(chǔ)技術(shù),但是二維條形碼[3]的存儲(chǔ)容量卻大得多,十分適合移動(dòng)終端本地識(shí)別。
移動(dòng)終端對(duì)信息在本地識(shí)別的框架如圖1所示,主要包括采集模塊、處理模塊、顯示模塊、系統(tǒng)控制模塊、嵌入式數(shù)據(jù)庫(kù)。

圖1 移動(dòng)終端識(shí)別框架圖
采集模塊負(fù)責(zé)對(duì)模擬信號(hào)進(jìn)行采集,并且轉(zhuǎn)換為數(shù)字信號(hào),如對(duì)二維條形碼進(jìn)行掃描。處理模塊所處理的可能是圖像、視頻等數(shù)據(jù),而圖像、視頻數(shù)據(jù)處理的速度要求較高,因此可能會(huì)用到DSP等高速處理器。顯示模塊主要應(yīng)用于對(duì)識(shí)別信息的顯示。控制模塊也稱作主控制器,可進(jìn)行系統(tǒng)移植。μC/OS-II是一個(gè)可移植性、可固化、可裁剪的、占先式多任務(wù)實(shí)時(shí)內(nèi)核,它適用于多種微處理器[4]。嵌入式數(shù)據(jù)庫(kù)的種類繁多,主要有Sybase SQL Anywhere、Oracle TimesTen、BerkleyDb和SQLite等,其中SQLite是一款開源的,不受許可證費(fèi)用約束,并且是專門為嵌入式設(shè)計(jì)的[5]。其主要用途在于儲(chǔ)存一定量的識(shí)別數(shù)據(jù),例如在語(yǔ)音控制系統(tǒng)中,需要將語(yǔ)音指令保存在系統(tǒng)中。當(dāng)有指令過(guò)來(lái)時(shí),需要對(duì)語(yǔ)音信息進(jìn)行識(shí)別,進(jìn)而執(zhí)行指令所對(duì)應(yīng)的操作。
這種在本地識(shí)別的技術(shù)識(shí)別速率高,適合對(duì)信息量相對(duì)較小的、數(shù)據(jù)結(jié)構(gòu)不復(fù)雜的信息進(jìn)行識(shí)別,并且隨著移動(dòng)終端數(shù)目的增多,其成本也將不斷提高。隨著網(wǎng)絡(luò)化的發(fā)展,面對(duì)需要海量存儲(chǔ)和管理的數(shù)據(jù),NSA/SAN(網(wǎng)絡(luò)化存儲(chǔ))、云存儲(chǔ)和虛擬信息中心在物流、運(yùn)輸、公共事業(yè)、安防監(jiān)控行業(yè)有著巨大的應(yīng)用前景。因此,對(duì)海量數(shù)據(jù)的識(shí)別也是大勢(shì)所趨。
1.2.1 遠(yuǎn)程識(shí)別的基本結(jié)構(gòu) 遠(yuǎn)程識(shí)別技術(shù)[6]為不同程序域、不同進(jìn)程和不同計(jì)算機(jī)中活動(dòng)的對(duì)象提供了廣泛的框架,使其相互之間能夠進(jìn)行暢通無(wú)阻的通信,真正實(shí)現(xiàn)了軟件的分布式應(yīng)用。云端服務(wù)是采用面向服務(wù)的體系結(jié)構(gòu)(service-oriented architecture,SOA)[7],在 SOA 中,接口是關(guān)鍵的,接口定義了服務(wù)的類型,而不是實(shí)現(xiàn)服務(wù)的技術(shù)。
遠(yuǎn)程識(shí)別技術(shù)有移動(dòng)終端和云端兩部分(圖2)。
移動(dòng)終端分為信息采集器、識(shí)別代理、顯示器三個(gè)部分。信息采集器主要用于采集待識(shí)別信息,并進(jìn)行模數(shù)轉(zhuǎn)換。采集器采集的信息傳遞給識(shí)別代理,由于采集的二進(jìn)制代碼不夠規(guī)范,所以需要識(shí)別代理對(duì)二進(jìn)制代碼進(jìn)行過(guò)濾處理。例如:利用DS18B20采集的十進(jìn)制數(shù)信息為25.6,則其真實(shí)溫度為25.6×0.0625=16℃(0.0625為溫度常數(shù)),并且將過(guò)濾后的信息轉(zhuǎn)發(fā)到Internet遠(yuǎn)程識(shí)別服務(wù)器。顯示器用來(lái)顯示經(jīng)過(guò)云端識(shí)別的結(jié)果。
云端主要由云數(shù)據(jù)中心和云服務(wù)中心兩部分組成[8]。云計(jì)算平臺(tái)是一個(gè)集海量數(shù)據(jù)存儲(chǔ)、分析于一體的服務(wù)平臺(tái)。將海量待識(shí)別信息存放于云計(jì)算平臺(tái)的數(shù)據(jù)中心,形成一個(gè)信息庫(kù)。由于移動(dòng)終端識(shí)別的信息結(jié)構(gòu)復(fù)雜,類型繁多,所以對(duì)信息的存儲(chǔ)有較為嚴(yán)格的要求,數(shù)據(jù)中心就是基于數(shù)據(jù)模型管理和操作數(shù)據(jù)的。云服務(wù)中心為云平臺(tái)提供了一致的設(shè)計(jì)、開發(fā)、部署和運(yùn)行服務(wù)器端程序的框架。類似插件的方式,對(duì)各種服務(wù)器端信息識(shí)別程序都可以在云平臺(tái)上運(yùn)行,無(wú)論是基于“.NET”的識(shí)別組件,還是基于java的識(shí)別組件,云平臺(tái)提供了調(diào)用這些組件的接口,云平臺(tái)管理員只需設(shè)置這些組件的位置和所開發(fā)的工具即可。云服務(wù)中心可以對(duì)大量實(shí)時(shí)數(shù)據(jù)和歷史數(shù)據(jù)進(jìn)行高性能計(jì)算和數(shù)據(jù)挖掘,并且集成了報(bào)表和數(shù)據(jù)分析、輔助決策等服務(wù),能夠?qū)ΥR(shí)別信息進(jìn)行有效識(shí)別。

圖2 遠(yuǎn)程處理基本結(jié)構(gòu)
1.2.2 遠(yuǎn)程識(shí)別的工作機(jī)制 遠(yuǎn)程識(shí)別與典型的客戶端/服務(wù)器模式(C/S)應(yīng)用程序的工作機(jī)制相似,服務(wù)器對(duì)象在網(wǎng)絡(luò)上某個(gè)地方創(chuàng)建、部署它的位置,并且時(shí)刻監(jiān)聽要鏈接的客戶端。當(dāng)客戶端向服務(wù)器發(fā)送請(qǐng)求時(shí),攜帶了有關(guān)調(diào)用和參數(shù)的詳細(xì)信息,服務(wù)器接受請(qǐng)求參數(shù),調(diào)用相關(guān)方法處理,并將處理結(jié)果返回客戶端。如圖2所示的遠(yuǎn)程識(shí)別的工作機(jī)制,移動(dòng)終端利用信息采集器采集信息,經(jīng)過(guò)轉(zhuǎn)換后,將信息發(fā)送到識(shí)別代理,識(shí)別代理對(duì)數(shù)據(jù)進(jìn)行過(guò)濾,轉(zhuǎn)換成利于傳輸?shù)母袷剑⑶覕y帶服務(wù)器端IP地址,使用Createlnstanee或Getobjeet方法向云端發(fā)出識(shí)別請(qǐng)求。云服務(wù)中心接受請(qǐng)求,調(diào)用識(shí)別組件中的函數(shù),并且將云數(shù)據(jù)中心的識(shí)別數(shù)據(jù)查詢出來(lái),提取特征進(jìn)行識(shí)別,識(shí)別完成后將識(shí)別結(jié)果返回至移動(dòng)終端。移動(dòng)終端對(duì)組件的調(diào)用是基于租約機(jī)制的,租約到期,遠(yuǎn)程處理機(jī)制將釋放引用。
本案例所針對(duì)的是產(chǎn)品二維碼識(shí)別文件信息。由于文件信息很大,故無(wú)法采用二維碼直接存儲(chǔ);同樣由于文件量大,且移動(dòng)終端內(nèi)存不夠,過(guò)多的文件也不易于在移動(dòng)終端存儲(chǔ)。因此結(jié)合以上兩種方案,只在移動(dòng)終端存儲(chǔ)文件信息的地址,而把文件存放在云端。這樣就可以識(shí)別海量的文件,聲音,視頻信息。
EPC——產(chǎn)品電子代碼,實(shí)際上是一種編碼手段,其載體可以是二維條形碼、電子標(biāo)簽等。這里采用 EPC-64編碼格式(圖3)[9]。

圖3 基于EPC-64的車輛信息編碼結(jié)構(gòu)
產(chǎn)品信息EPC就是需要識(shí)別的信息,即產(chǎn)品的出廠日期、公司簡(jiǎn)介,以及在各大商場(chǎng)的出售價(jià)格等。EPC就像一把打開所有信息大門的鑰匙。例如:11 0000000000 10111101 01001010 00000010 00000 00000000000000000000001。頭字段11(十進(jìn)制3)表示采用的是EPC-64,后面相應(yīng)的部分表示:中國(guó)湖北省武漢市某某公司,桶裝面,編號(hào)1。其二維碼見圖4。

圖4 產(chǎn)品信息EPC二維碼
移動(dòng)終端需要移植μC/OS-II系統(tǒng),并且安裝SQLite數(shù)據(jù)庫(kù)[10],其創(chuàng)建數(shù)據(jù)庫(kù)表以及存儲(chǔ)數(shù)據(jù)如下sql語(yǔ)句所示:
sqlite> create table EPC2IP (id integer primary key,EPCcode text,IP text,Company text,Category text,Serial-Num text);
sqlite>insert into EPC2IP(id,EPCcode,IP,Company,Category,SerialNum)values(1,’1100 0000 0000 1011 1101 01001010000000100000000000000000000000000001’,’xxx.xxx.xxx.xxx:8080’,’中國(guó)湖北省武漢市某某公司’,’桶裝面’,’1’);
移動(dòng)終端的數(shù)據(jù)錄入是通過(guò)觸摸屏實(shí)現(xiàn)的,也可通過(guò)鍵盤實(shí)現(xiàn),還可以借助上位機(jī)串口錄入。數(shù)據(jù)錄入完之后移動(dòng)終端進(jìn)入循環(huán),等待掃描后的二維碼。由識(shí)別代理進(jìn)行處理,以下是識(shí)別代理的部分代碼:
uchar checkrightflag;//驗(yàn)證標(biāo)志位
uchar EPCcodebuffer[65];//EPCcode接受數(shù)組
uchar Querydata[6][64];//查詢sqlite接受二維數(shù)組
uchar SendCode[64];//處理后的數(shù)組
...
while(1)
{
EPCcodebuffer= ScanQRcode();//二維碼掃描
if(EPCodebuffer[0]!=OLDCODEFLG)//判斷是否發(fā)生數(shù)據(jù)更新
{
checkrightflag=Check(EPCcodebuffer);//驗(yàn)證掃描的二維碼
if(checkrightflag)//驗(yàn)證是否正確
{ Querydata=QuerybyEPCcode(EPCcodebuffer);//查詢sqlite的函數(shù)
SendCode=QuerydateDispose(Querydata);//對(duì)查詢出的數(shù)據(jù)進(jìn)行轉(zhuǎn)換為規(guī)范的格式
}
EPCodebuffer[0]=0;//更新位置位
}
....
}
移動(dòng)終端的代理組件將數(shù)據(jù)處理后將Send-Code轉(zhuǎn)換為:“http://xxx.xxx.xxx.xxx:8080/中國(guó)湖北省武漢市某某公司.do?Category=桶裝面&SerialNum=1”,移動(dòng)終端利用這個(gè)IP到達(dá)云端服務(wù)的地址,在云端調(diào)用服務(wù)提供者提供的服務(wù)即可。遠(yuǎn)程識(shí)別組件會(huì)首先根據(jù)條件去查詢?cè)品?wù)中心的數(shù)據(jù),然后將識(shí)別成功的數(shù)據(jù)返回給移動(dòng)終端。服務(wù)中心數(shù)據(jù)庫(kù)采用SQL SERVER2008。云端的識(shí)別數(shù)據(jù)見圖5。

圖5 SQL SERVER2008云端產(chǎn)品數(shù)據(jù)表
從云端返回的數(shù)據(jù)可以是XML格式的,這里采用JSON的數(shù)據(jù)格式,因?yàn)樵诒磉_(dá)相同的信息時(shí),JSON比XML形成的文件更小,更便于機(jī)器解析。以下是從云端返回的JSON數(shù)據(jù):
識(shí)別數(shù)據(jù):{產(chǎn)品:{編號(hào):1,品種號(hào):1,生產(chǎn)日期:’2014-1-20’,產(chǎn)地:’湖北省 xxxxxx’,消費(fèi)者服務(wù)熱線:’0278xxxxxx’},
品種:{品種號(hào):1,品種名稱:’桶裝面’,產(chǎn)品配料:’面餅,調(diào)味包,火腿腸’,致敏原信息:’包含小麥制品,大豆制品,乳制品,蟹,貝類,魚類制品,蛋類制品’,溫馨提示:’如發(fā)現(xiàn)調(diào)味包膨脹,破損,請(qǐng)勿食用,保質(zhì)期6個(gè)月’},
公司:{成立年限:1988,發(fā)展歷程:’1988年創(chuàng)始人靠打工開始了艱苦的創(chuàng)業(yè)歷程……’,公司簡(jiǎn)介:’xx企業(yè)中國(guó)控股有限公司([本公司])為中國(guó)領(lǐng)先飲料及方便面制造商之一……’}
}
移動(dòng)終端接收到數(shù)據(jù)后,利用JSON解析器將識(shí)別內(nèi)容解析,然后將結(jié)果顯示在顯示屏上。至此,整個(gè)識(shí)別過(guò)程結(jié)束。
移動(dòng)終端在本地以及在云端對(duì)信息進(jìn)行識(shí)別的技術(shù)各有其優(yōu)勢(shì),本地識(shí)別識(shí)別速度明顯高于在云端識(shí)別,適用于數(shù)據(jù)量較小的情況,但如果移動(dòng)終端數(shù)量多,其成本會(huì)急劇上升。隨著4G網(wǎng)絡(luò)的發(fā)展,移動(dòng)終端在云端的識(shí)別速度也會(huì)隨之提高。這兩種模型不僅適用于對(duì)文本信息的識(shí)別,而且還適用于語(yǔ)音、圖像、視頻等信息的識(shí)別。如何更好地利用這兩種模型,需要具體問題具體分析。
[1] 楊正洪,周發(fā)武.云計(jì)算和物聯(lián)網(wǎng)[M].北京:清華大學(xué)出版社,2011.
[2] 鐘書成,陳曉紅.一維條碼識(shí)別系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].成都信息工程學(xué)院學(xué)報(bào),2006,21(12)::73-77.
[3] 中國(guó)物品編碼中心.條碼技術(shù)與應(yīng)用[M].北京:清華大學(xué)出版社,2003.
[4] DAI Qihua,DAI Shuguang,MU Pingan.The solution of real time response for uCOS[J].J.University of Shanghai for Science and Technology,2002,24(01):73-75.
[5] Allen G,Owens M.The Definitive Guide to SQLite[M].第二版.北京:電子工業(yè)出版社,2012.
[6] ZHANG Guohua,YUAN Zhongfan.Remote heart sound collection and identification system[J].China Measurement & Test,2012,38(06):49-52.
[7] 欒大為,劉偉君.基于云計(jì)算和SOA構(gòu)架的信息化辦公系統(tǒng)[J].通信管理與技術(shù),2013(03):27-30.
[8] ZHANG Hongli.Distributed Digital Library Framework Based on Cloud Computing Platform[J].Information Science,2013,31(03):40-45.
[9] 張海成,張 鐸.物聯(lián)網(wǎng)與產(chǎn)品電子代碼[M].武漢:大學(xué)出版社,2010.
[10]吳名星,李 彤.嵌入式數(shù)據(jù)庫(kù)SQLite在UC/OS2上的移植[J].科學(xué)技術(shù)與工程,2009,9(04):1 023-1 027.