康文龍, 王廣楨, 蒲志新, 叢佩超
網(wǎng)絡(luò)圖片的日下載和上傳量較大,因而需要一種技術(shù)以滿足檢索需要。隨著互聯(lián)網(wǎng)的逐漸普及,僅僅依靠現(xiàn)有的單機離線識別技術(shù)已經(jīng)無法實現(xiàn)目前所需要的功能,因此,應(yīng)當(dāng)采取合適的方法,以云平臺為基礎(chǔ)研究圖像檢測系統(tǒng)。近年來,以Hadoop為基礎(chǔ)的并行支持向量機(support vector machine,SVM)算法,在人臉識別、垃圾郵件檢測以及網(wǎng)絡(luò)入侵領(lǐng)域中得到了廣泛的應(yīng)用[1,2]。
本文通過應(yīng)用圖像處理技術(shù)、SVM算法以及Hadoop處理技術(shù),將云平臺與SVM算法結(jié)合,以云計算平臺為基礎(chǔ)對圖像檢測技術(shù)進行研究。在繼承云平臺高擴展性以及高效性的基礎(chǔ)上,對于傳統(tǒng)圖像檢測系統(tǒng)在計算效率以及數(shù)據(jù)處理能力方面存在的問題予以快速解決[3,4]。
單機平臺的圖像識別框架如圖1所示。
圖1 單機平臺的圖像識別框架
1)圖像預(yù)處理模塊:用于轉(zhuǎn)換彩色圖像,并在內(nèi)存中存儲轉(zhuǎn)換后的灰度圖像,為后續(xù)的計算做準備。
2)利用相關(guān)特征提取模塊在內(nèi)存中讀入的圖像數(shù)據(jù)進行運算,保證所獲取的圖像特征與用戶需求的一致性;量化用戶需求特征。
3)分類器訓(xùn)練分類模塊:通過對反向傳播(back propagation,BP)算法以及SVM等算法的應(yīng)用,該模塊能夠訓(xùn)練獲取的訓(xùn)練數(shù)據(jù)樣本。將通過訓(xùn)練得到的分類器儲存在本地文件系統(tǒng)中,用于圖像的類別判斷。
在圖像分類時應(yīng)用傳統(tǒng)的圖像分類系統(tǒng),需要耗費較長的時間提取圖像特性,同時在計算數(shù)據(jù)量比較大的特征矩陣時需要對系統(tǒng)內(nèi)存和硬盤進行讀寫,這對于程序的正確率產(chǎn)生了消極影響,降低了系統(tǒng)穩(wěn)定性以及可靠性[5,6]。
基于云計算平臺的圖像識別框架如圖2所示。
圖2 基于云計算平臺的圖像識別框架
文獻[6]給出了Hadoop平臺上進行圖像識別的過程:
1)用戶提交圖像分類請求:通過使用Tob client圖像分類作業(yè)ID從Hadoop的Iob Tracker中獲得。工程JAR包可以在圖像分類作業(yè)中運行,通過應(yīng)用Job Client在復(fù)制程序依賴的配置文件以及圖像特征分類數(shù)據(jù)。 Job Client在完成以上過程以后就可以在Job Tracker中提交作業(yè),Job Tracker首先對作業(yè)的相關(guān)信息進行檢查,輸入數(shù)據(jù)的劃分信息,從分布式文件系統(tǒng)(hadoop distributed file system,HDFS)中獲取作業(yè),準備好作業(yè)的執(zhí)行工作。
2)初始化和分配圖像分類作業(yè)任務(wù):Job Tracker在接收到提交的作業(yè)以后初始化作業(yè),并將作業(yè)放置在內(nèi)部的任務(wù)隊列中;通過Hadoop的作業(yè)調(diào)度器調(diào)度該隊列中的任務(wù);通過參考Job Tracker的心跳情況Job Tracker可以將作業(yè)任務(wù)向集群節(jié)點上分配,因為一些特征數(shù)據(jù)存放于Data Node中,所以,Job Tracker在進行MapTask時可以直接獲取輸入數(shù)據(jù),可有效減少數(shù)據(jù)傳輸過程中的網(wǎng)絡(luò)損耗。
3)圖像分類Map階段:當(dāng)Job Tracker 獲取所分配的任務(wù)后,程序的相關(guān)數(shù)據(jù)以及JAR文件即可從HDFS中自動獲取,在本地的文件磁盤中存儲,通過本地虛擬機的執(zhí)行即可加載JAR數(shù)據(jù)和文件,這樣從運行任務(wù)實例的Task Tracker中就能夠獲取數(shù)據(jù)塊。在執(zhí)行Map任務(wù)時需要計算對特征庫中圖像和輸入圖像特征之間的距離,數(shù)據(jù)結(jié)果的鍵值對就是圖像類別,并存儲于在本地磁盤中。
4)圖像分類任務(wù)的Reduce:根據(jù)對應(yīng)的鍵值Map Reduce框架分類特征向量,如果中間結(jié)果的鍵值相同,則需要充分整理以及合并這些鍵值對的特征向量,利用Reduce Task對合并之后的結(jié)果進行處理。利用Reduce Task進行Map Task的輸出排序,得到圖像分類的結(jié)果,并將結(jié)果寫入到HDFS中。
5)圖像分類任務(wù)完成:利用Job Tracker進行識別,同時將完成結(jié)果表示出來,可以通過Job Tracker得到作業(yè)運行的參數(shù)。利用Job Tracker得到所有作業(yè)狀態(tài),利用Task Tracker刪除Map階段產(chǎn)生的中間結(jié)果。在HDFS上用戶可對結(jié)果文件進行查看。
1)在Hadoop云平臺上上傳數(shù)據(jù)信息,作業(yè)完成提交以后從HDFS中獲取數(shù)據(jù)源,通過數(shù)據(jù)集群配置劃分處理數(shù)據(jù),并分類處理作業(yè)的Reduce和Map,對于Reduce和Map過程中的節(jié)點信息可以進行輸入;
2)操作過程,在系統(tǒng)中讀入儲存在HDFS中的圖像樣本,同時轉(zhuǎn)換數(shù)據(jù)樣本參數(shù)類型,使用遺傳算法優(yōu)化轉(zhuǎn)換后的組合參數(shù),進行svm_train函數(shù)的調(diào)入,通過樣本數(shù)據(jù)的訓(xùn)練來獲取支持向量,在Reduce中傳入處理結(jié)果。
3)實現(xiàn)Reduce的操作過程,用于分類和排序Map函數(shù)所轉(zhuǎn)換的數(shù)據(jù)形式key/value,將處理后的數(shù)據(jù)輸入到實現(xiàn)規(guī)定的路徑文件中[7]。文獻[8]給出了實現(xiàn)過程示意圖如圖3所示。
以1 000個交通標志的圖像為實例進行分析和驗證本文方法。
不同的交通標志燈存在著非常大的顏色差距,在對交通標志燈進行分割的過程中通過顏色來實現(xiàn)交通標志的抽取和分離。
當(dāng)交通標志和自然場景均具有比較復(fù)雜的背景時,根據(jù)顏色無法保證判定結(jié)果的精確性,可根據(jù)交通標志以及復(fù)雜背景在特殊形狀上存在著非常明顯的差距進行提取。
交通標志有矩形、三角形和圓形三種類型,當(dāng)交通標志不同時其屬性也存在著很大的差距,這些屬性主要包括與邊緣的距離、矩形度、圓形度以及伸長度。伸長度、矩形度以及圓形度的計算方法[9]為
C=4πF/L2,J=F/WT,E=min(W,T)/max(W,T)
(1)
本文利用Gabor濾波提取特征性向量:建立核函數(shù)模板,實現(xiàn)圖像卷積。對應(yīng)的核函數(shù)為[10]
(2)
Hadoop中各個節(jié)點和主機以及單機所使用的計算機具有相同的配置:內(nèi)存為8GB、DDR3 1 333 MHz、1T硬盤以及Intel I5 4950的CPU。Ubuntu 14.10操作系統(tǒng),clipse-jee-juno-SR2版本以及Hadoop 1.0.0版本IDE平臺,JDK1.7.0_07環(huán)境下執(zhí)行Java。
使用本文的圖像特征檢測方法得到的3個實例圖像處理結(jié)果如圖4所示。
可以看出:圖像特征檢測方法處理后圖像中雜點更少,更利于圖像的分類識別。
分別在單機環(huán)境下使用基于SVM算法和在所建立的Hadoop平臺上使用基于SVM算法、BP網(wǎng)絡(luò)算法的圖像識別技術(shù)對圖像樣本中的交通標志進行識別。得到各種識別技術(shù)的準確率對比如表1。
表1 3種算法的識別結(jié)果對比
隨著迭代次數(shù)的增加,3種檢測方法的平均識別率如圖5所示。可以看出,3種算法中將云計算平臺與SVM分類器進行結(jié)合實現(xiàn)圖像識別的準確率最優(yōu)。對于多層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),為了保證算法參數(shù)最優(yōu)需要訓(xùn)練和優(yōu)化多次,直接限制了其在云計算平臺中的應(yīng)用,如果將神經(jīng)網(wǎng)絡(luò)識別分類模型建立在云計算平臺上會使得計算效率降低,因此,神經(jīng)網(wǎng)絡(luò)模型并不適用MapReduce模型。
圖5 3種檢測方法的平均識別率隨迭代次數(shù)的變化
分別在單機平臺和Hadoop平臺上實驗,SVM圖像分類器識別交通標志的效率對比。在Hadoop平臺中設(shè)置節(jié)點數(shù)分別為2,3,4。Hadoop平臺中各節(jié)點計算機與單機平臺計算機配置完全一致。各實驗條件下交通標志的識別時間對比如圖6所示。
圖6 各實驗條件圖像識別時間對比
通過識別效率對比曲線能夠發(fā)現(xiàn),如果在圖像識別的過程中Hadoop圖像識別平臺上只有2個節(jié)點,數(shù)據(jù)交換消耗時間較長,因此,兩臺計算機圖像識別消耗的時間會大于一臺計算機消耗的時間;如果Hadoop圖像識別平臺上具有更多數(shù)量的節(jié)點,隨著節(jié)點數(shù)量的增加,處理相同圖像所消耗的時間逐漸減少。
1)本文通過應(yīng)用圖像處理技術(shù)、SVM算法以及Hadoop處理技術(shù),將云平臺與SVM算法結(jié)合起來,以云計算平臺為基礎(chǔ)對圖像檢測技術(shù)進行研究。通過交通標志識別實例驗證此方法可行性。
2)利用神經(jīng)網(wǎng)絡(luò)算法進行圖像識別時需要運算大量的矩陣,但為保證算法參數(shù)的最優(yōu)需要訓(xùn)練和優(yōu)化多次,使得神經(jīng)網(wǎng)絡(luò)算法任務(wù)無法在MapReduce中一次完成,需要讀寫操作反復(fù)進行,因此,在進行應(yīng)用的過程中會導(dǎo)致計算效率降低的問題出現(xiàn),在MapReduce模型中不適合應(yīng)用神經(jīng)網(wǎng)絡(luò)算法。
3)當(dāng)Hadoop平臺中的節(jié)點數(shù)較少時,由于數(shù)據(jù)交換消耗了較長時間,使得Hadoop平臺的運算效率低于單機平臺,所以,Hadoop平臺中節(jié)點數(shù)超過2個后,才能發(fā)揮云計算平臺的優(yōu)勢。
參考文獻:
[1] 王剛毅.交通標志檢測與分類算法研究[D].哈爾濱:哈爾濱工業(yè)大學(xué),2013.
[2] 張 儼.一種云計算環(huán)境下人臉識別系統(tǒng)的設(shè)計與實現(xiàn)[D].西安:西安電子科技大學(xué),2013.
[3] 李仕釗.基于云計算的人臉識別系統(tǒng)研究與實現(xiàn)[D].廣州:華南理工大學(xué),2013.
[4] 李 潔.基于Hadoop的海量視頻的分布式存儲與檢索研究[D].南京:南京郵電大學(xué),2015.
[5] 陳永權(quán).基于Hadoop的圖像檢索算法研究與實現(xiàn)[D].廣州:華南理工大學(xué),2013.
[6] 李 彬.嵌入式車牌識別系統(tǒng)的設(shè)計與實現(xiàn)[D].西安:西安工業(yè)大學(xué),2013.
[7] 廖周宇,謝曉蘭,劉建明.云計算環(huán)境下基于SVM的數(shù)據(jù)分類[J].桂林理工大學(xué)學(xué)報,2013(4):765-769.
[8] 牛 科.基于Hadoop云平臺的分布式支持向量機研究[D].臨汾:山西師范大學(xué),2014.
[9] 鮑朝前.針對圓形和三角形交通標志的檢測與識別[D].北京:北京工業(yè)大學(xué),2015.
[10] 周 欣.圓形和三角形交通標志分割與識別算法研究[D].上海:華東理工大學(xué),2013.