康文龍, 王廣楨, 蒲志新, 叢佩超
網絡圖片的日下載和上傳量較大,因而需要一種技術以滿足檢索需要。隨著互聯網的逐漸普及,僅僅依靠現有的單機離線識別技術已經無法實現目前所需要的功能,因此,應當采取合適的方法,以云平臺為基礎研究圖像檢測系統。近年來,以Hadoop為基礎的并行支持向量機(support vector machine,SVM)算法,在人臉識別、垃圾郵件檢測以及網絡入侵領域中得到了廣泛的應用[1,2]。
本文通過應用圖像處理技術、SVM算法以及Hadoop處理技術,將云平臺與SVM算法結合,以云計算平臺為基礎對圖像檢測技術進行研究。在繼承云平臺高擴展性以及高效性的基礎上,對于傳統圖像檢測系統在計算效率以及數據處理能力方面存在的問題予以快速解決[3,4]。
單機平臺的圖像識別框架如圖1所示。

圖1 單機平臺的圖像識別框架
1)圖像預處理模塊:用于轉換彩色圖像,并在內存中存儲轉換后的灰度圖像,為后續的計算做準備。
2)利用相關特征提取模塊在內存中讀入的圖像數據進行運算,保證所獲取的圖像特征與用戶需求的一致性;量化用戶需求特征。
3)分類器訓練分類模塊:通過對反向傳播(back propagation,BP)算法以及SVM等算法的應用,該模塊能夠訓練獲取的訓練數據樣本。將通過訓練得到的分類器儲存在本地文件系統中,用于圖像的類別判斷。
在圖像分類時應用傳統的圖像分類系統,需要耗費較長的時間提取圖像特性,同時在計算數據量比較大的特征矩陣時需要對系統內存和硬盤進行讀寫,這對于程序的正確率產生了消極影響,降低了系統穩定性以及可靠性[5,6]。
基于云計算平臺的圖像識別框架如圖2所示。

圖2 基于云計算平臺的圖像識別框架
文獻[6]給出了Hadoop平臺上進行圖像識別的過程:
1)用戶提交圖像分類請求:通過使用Tob client圖像分類作業ID從Hadoop的Iob Tracker中獲得。工程JAR包可以在圖像分類作業中運行,通過應用Job Client在復制程序依賴的配置文件以及圖像特征分類數據。 Job Client在完成以上過程以后就可以在Job Tracker中提交作業,Job Tracker首先對作業的相關信息進行檢查,輸入數據的劃分信息,從分布式文件系統(hadoop distributed file system,HDFS)中獲取作業,準備好作業的執行工作。
2)初始化和分配圖像分類作業任務:Job Tracker在接收到提交的作業以后初始化作業,并將作業放置在內部的任務隊列中;通過Hadoop的作業調度器調度該隊列中的任務;通過參考Job Tracker的心跳情況Job Tracker可以將作業任務向集群節點上分配,因為一些特征數據存放于Data Node中,所以,Job Tracker在進行MapTask時可以直接獲取輸入數據,可有效減少數據傳輸過程中的網絡損耗。
3)圖像分類Map階段:當Job Tracker 獲取所分配的任務后,程序的相關數據以及JAR文件即可從HDFS中自動獲取,在本地的文件磁盤中存儲,通過本地虛擬機的執行即可加載JAR數據和文件,這樣從運行任務實例的Task Tracker中就能夠獲取數據塊。在執行Map任務時需要計算對特征庫中圖像和輸入圖像特征之間的距離,數據結果的鍵值對就是圖像類別,并存儲于在本地磁盤中。
4)圖像分類任務的Reduce:根據對應的鍵值Map Reduce框架分類特征向量,如果中間結果的鍵值相同,則需要充分整理以及合并這些鍵值對的特征向量,利用Reduce Task對合并之后的結果進行處理。利用Reduce Task進行Map Task的輸出排序,得到圖像分類的結果,并將結果寫入到HDFS中。
5)圖像分類任務完成:利用Job Tracker進行識別,同時將完成結果表示出來,可以通過Job Tracker得到作業運行的參數。利用Job Tracker得到所有作業狀態,利用Task Tracker刪除Map階段產生的中間結果。在HDFS上用戶可對結果文件進行查看。
1)在Hadoop云平臺上上傳數據信息,作業完成提交以后從HDFS中獲取數據源,通過數據集群配置劃分處理數據,并分類處理作業的Reduce和Map,對于Reduce和Map過程中的節點信息可以進行輸入;
2)操作過程,在系統中讀入儲存在HDFS中的圖像樣本,同時轉換數據樣本參數類型,使用遺傳算法優化轉換后的組合參數,進行svm_train函數的調入,通過樣本數據的訓練來獲取支持向量,在Reduce中傳入處理結果。
3)實現Reduce的操作過程,用于分類和排序Map函數所轉換的數據形式key/value,將處理后的數據輸入到實現規定的路徑文件中[7]。文獻[8]給出了實現過程示意圖如圖3所示。
以1 000個交通標志的圖像為實例進行分析和驗證本文方法。
不同的交通標志燈存在著非常大的顏色差距,在對交通標志燈進行分割的過程中通過顏色來實現交通標志的抽取和分離。
當交通標志和自然場景均具有比較復雜的背景時,根據顏色無法保證判定結果的精確性,可根據交通標志以及復雜背景在特殊形狀上存在著非常明顯的差距進行提取。
交通標志有矩形、三角形和圓形三種類型,當交通標志不同時其屬性也存在著很大的差距,這些屬性主要包括與邊緣的距離、矩形度、圓形度以及伸長度。伸長度、矩形度以及圓形度的計算方法[9]為
C=4πF/L2,J=F/WT,E=min(W,T)/max(W,T)
(1)
本文利用Gabor濾波提取特征性向量:建立核函數模板,實現圖像卷積。對應的核函數為[10]
(2)
Hadoop中各個節點和主機以及單機所使用的計算機具有相同的配置:內存為8GB、DDR3 1 333 MHz、1T硬盤以及Intel I5 4950的CPU。Ubuntu 14.10操作系統,clipse-jee-juno-SR2版本以及Hadoop 1.0.0版本IDE平臺,JDK1.7.0_07環境下執行Java。
使用本文的圖像特征檢測方法得到的3個實例圖像處理結果如圖4所示。
可以看出:圖像特征檢測方法處理后圖像中雜點更少,更利于圖像的分類識別。
分別在單機環境下使用基于SVM算法和在所建立的Hadoop平臺上使用基于SVM算法、BP網絡算法的圖像識別技術對圖像樣本中的交通標志進行識別。得到各種識別技術的準確率對比如表1。

表1 3種算法的識別結果對比
隨著迭代次數的增加,3種檢測方法的平均識別率如圖5所示。可以看出,3種算法中將云計算平臺與SVM分類器進行結合實現圖像識別的準確率最優。對于多層神經網絡結構,為了保證算法參數最優需要訓練和優化多次,直接限制了其在云計算平臺中的應用,如果將神經網絡識別分類模型建立在云計算平臺上會使得計算效率降低,因此,神經網絡模型并不適用MapReduce模型。

圖5 3種檢測方法的平均識別率隨迭代次數的變化
分別在單機平臺和Hadoop平臺上實驗,SVM圖像分類器識別交通標志的效率對比。在Hadoop平臺中設置節點數分別為2,3,4。Hadoop平臺中各節點計算機與單機平臺計算機配置完全一致。各實驗條件下交通標志的識別時間對比如圖6所示。

圖6 各實驗條件圖像識別時間對比
通過識別效率對比曲線能夠發現,如果在圖像識別的過程中Hadoop圖像識別平臺上只有2個節點,數據交換消耗時間較長,因此,兩臺計算機圖像識別消耗的時間會大于一臺計算機消耗的時間;如果Hadoop圖像識別平臺上具有更多數量的節點,隨著節點數量的增加,處理相同圖像所消耗的時間逐漸減少。
1)本文通過應用圖像處理技術、SVM算法以及Hadoop處理技術,將云平臺與SVM算法結合起來,以云計算平臺為基礎對圖像檢測技術進行研究。通過交通標志識別實例驗證此方法可行性。
2)利用神經網絡算法進行圖像識別時需要運算大量的矩陣,但為保證算法參數的最優需要訓練和優化多次,使得神經網絡算法任務無法在MapReduce中一次完成,需要讀寫操作反復進行,因此,在進行應用的過程中會導致計算效率降低的問題出現,在MapReduce模型中不適合應用神經網絡算法。
3)當Hadoop平臺中的節點數較少時,由于數據交換消耗了較長時間,使得Hadoop平臺的運算效率低于單機平臺,所以,Hadoop平臺中節點數超過2個后,才能發揮云計算平臺的優勢。
參考文獻:
[1] 王剛毅.交通標志檢測與分類算法研究[D].哈爾濱:哈爾濱工業大學,2013.
[2] 張 儼.一種云計算環境下人臉識別系統的設計與實現[D].西安:西安電子科技大學,2013.
[3] 李仕釗.基于云計算的人臉識別系統研究與實現[D].廣州:華南理工大學,2013.
[4] 李 潔.基于Hadoop的海量視頻的分布式存儲與檢索研究[D].南京:南京郵電大學,2015.
[5] 陳永權.基于Hadoop的圖像檢索算法研究與實現[D].廣州:華南理工大學,2013.
[6] 李 彬.嵌入式車牌識別系統的設計與實現[D].西安:西安工業大學,2013.
[7] 廖周宇,謝曉蘭,劉建明.云計算環境下基于SVM的數據分類[J].桂林理工大學學報,2013(4):765-769.
[8] 牛 科.基于Hadoop云平臺的分布式支持向量機研究[D].臨汾:山西師范大學,2014.
[9] 鮑朝前.針對圓形和三角形交通標志的檢測與識別[D].北京:北京工業大學,2015.
[10] 周 欣.圓形和三角形交通標志分割與識別算法研究[D].上海:華東理工大學,2013.