王 敏,陳立潮,曹建芳,潘理虎
(1.太原科技大學 計算機科學與技術學院,山西 太原 030024; 2.忻州師范學院 計算機科學與技術系,山西 忻州 034000)
隨著互聯網技術的變革,大數據技術、深度學習、人工智能等相關研究變得越來越重要,其中大數據技術在各領域應用廣泛,它不僅僅用于分析處理海量數據,還用于解決由于計算量大導致算法效率較低的問題[1]。圖像分類可以使圖像數據得到歸并,對于圖像的識別和檢索都有非常重要的作用。當前,圖像分類的主要方法是以圖像底層特征(如顏色、紋理、形狀等)為基礎,利用相關算法訓練出分類模型后預測圖像的類別信息。
Azhar等[2]提取圖像的Sift特征后,用SVM構建分類模型,實現對蠟染圖像的分類。Camlica等[3]利用LBP特征,通過支持向量機對醫學圖像進行了分類。由于圖像底層特征的提取和表示對圖像的分類性能有著重要的影響,一般來說,采用單一特征不能更好地描述一幅圖像的內容,因此,從圖像中提取多種特征通過一定方法組合成能更好地描述圖像內容的特征向量成為很多研究者的選擇[4]。但不同特征在圖像中的重要性并不完全相同,當采用多個底層特征來描述圖像內容時,如果只是將單個特征簡單拼接,就不能控制每個特征對分類結果的影響系數,這在一定程度上影響了分類器的準確率。因此,文中提出了一種自適應的隨機權值多特征融合圖像分類算法(Multi-feature fusion classification algorithm with random weight,MFFRW),并通過實驗對其進行驗證。
數據融合可以分為像素級、特征級和決策級三個層次[5]。特征級融合屬于中間層,它將來自傳感器的原始數據提取特征后進行融合。已有研究成果表明[6-7],多特征融合能夠提高圖像分類或識別的性能。
特征融合的關鍵是尋找最優權值組合,因此,設計權值確定算法就變得尤為重要。最初的研究主要是通過反復實驗確定,但這種方法受主觀因素影響較大,所以很多研究者就提出了自適應的權值確定算法。張春森等[8]依據每個特征對應的分類正確率,利用提出的權值計算公式自適應確定在融合特征中每個特征對應的權值,但權值計算公式中的常量取值由人工確定,受人為經驗影響。李玉峰等[9]用預先訓練好的單個特征對應的分類器模型分別識別訓練集中的數據,如果能正確識別,那么該特征對應的權重加1,如此循環計算出每個特征對應的權值。該算法雖然避免了人為干預,但需要多次輸入輸出,算法復雜度高,且預先的分類器模型質量與初始訓練樣本質量密切相關。袁廣林等[10]提出一種基于概率分布可分性判據確定特征融合權重的方法,根據目標與背景特征值的概率分布動態計算它們之間的區分度,克服了利用單一特征跟蹤易受相似目標與背景的影響,提高了算法魯棒性,但該方法只適應于目標跟蹤等相關應用場景,對多分類場景并不適用。
綜上所述,權值確定受人為影響小、算法復雜度低和融合效果好成為未來研究的方向。張春森、李玉峰等提出的自適應權值算法雖然在一定程度上提高了融合效果,但受算法設計思想、復雜度和應用場景的限定,權值的確定還受主觀因素影響,算法復雜度較高,且應用場景單一。因此,提出一種受主觀因素影響小、復雜度低、能適應多種場景的自適應權值確定算法就變得非常重要。
MFFRW算法屬于特征級融合的圖像分類算法,包括特征提取、特征歸一化、隨機權值矩陣生成、特征融合、訓練分類器、得到最優權值組合及對應的分類器6個步驟,框架如圖1所示。

圖1 MFFRW算法框架
該算法將單一特征通過隨機權值矩陣形成融合特征,然后通過訓練多個分類器進一步得到最優權值組合。算法在特征提取階段和SVM訓練階段彼此獨立,滿足并行算法的執行條件,因此可利用大數據技術提高運算效率。
不同特征向量的量綱不同,取值范圍也存在較大差異,當融合成一個特征向量時,需要按照一定的規則加以處理[11]。同一幅圖像的不同特征之間,數值上存在很大的懸殊,為了避免其對分類結果的影響,文中采用線性歸一化方法將特征值縮放到一個指定范圍,用如下方法進行特征歸一化。

為了實現MFFRW算法,進一步給出它的數學描述形式:
(1)隨機權值矩陣。

(2)融合特征向量矩陣。
用x,y,z分別代表3種不同的圖像底層特征,通過式1得到融合特征向量矩陣Wn×1,矩陣的每一行代表一個融合特征向量,n的大小取決于隨機權值矩陣的行數。
(1)
令
wi=Aix+Biy+Ciz,i=1,2,…,n
(2)
(3)MFFRW算法。
MFFRW算法將數據集中每張圖片的x,y,z特征代入式2得到在(Ai,Bi,Ci)權值組合下由融合特征向量組成的數據集,將此數據按2∶1比例分成訓練數據集和測試數據集,用訓練數據集可訓練得到一個分類模型,用測試數據集可得到此模型的分類正確率。如此,n組隨機權值就可以訓練得到一個分類模型集合A={C1,C2,…,Cn}和一個分類正確率集合B={T1,T2,…,Tn},將集合A中的數據降序排序后得到最優權值組合及其對應的SVM模型。
Hadoop[12]平臺是布式處理的軟件框架,是一個被認可的用于處理海量各類型數據和應對復雜計算問題的平臺。其中HDFS和MapReduce是Hadoop平臺的兩個核心設計。HDFS是分布式文件系統,采用主/從模式體系結構,實現了對大規模數據集的流式訪問。MapReduce是一種并行編程模型,能夠將計算任務和數據分配到Hadoop集群的各個節點上,它借助函數式編程方法,將計算分為Map和Reduce兩個過程,每個過程的處理均以鍵值對的形式進行輸入和輸出,通過定義Mapper類和Reduce類實現一個鍵值對到另一個鍵值對的映射。
2.2.1 MFFRW算法并行框架
在Hadoop平臺上的MFFRW算法實現過程如圖2所示。
整個流程分為2部分,第一部分完成圖像Hue特征、紋理特征、PCA-Sift特征的提取,第二部分完成特征融合并得到最優權值組合和對應的分類模型。在特征提取部分采用序列化文件的輸入方式處理大量的圖像小文件,降低Hadoop集群頻繁啟動Map任務的消耗,優化集群性能,提高圖像特征提取效率。
在輸出最優權值組合的過程中,通過重寫setup方法、map和reduce方法實現MFFRW算法的并行。同時,為了降低Hadoop系統的I/O消耗,只將模型路徑輸出到HDFS文件系統,最后通過reduce方法得到最優權值組合及其對應的分類模型路徑。

圖2 隨機權值特征融合SVM圖像分類總體框架
2.2.2 算法設計與實現
鑒于OpenCV是一個開源的、跨平臺的計算機視覺庫,實現了很多數字圖像處理方面的算法,同時也提供了大量的Java接口[13]。因此,文中利用OpenCV的函數庫實現圖像特征提取和分類,并利用PCA算法對Sift特征降維,可以起到對特征向量去噪提純的作用,提高匹配率[14]。Hadoop平臺下用Java語言編程實現了MFFRW算法。此外,由于SVM的各參數設置對分類結果影響很大,所以采用K折交叉驗證算法得到徑向基函數的最佳參數,通常將K的值設為10。
在MapReduce框架中,Map任務和Reduce任務主要由setup、map或reduce、cleanup函數組成。其中setup函數只在任務開始時執行一次,map和reduce函數循環執行多次直到全部數據處理完畢,cleanup只在任務結束時執行一次。文中利用各函數的運行特點設計實現MFFRW算法,算法描述如下:
輸入:n個類別的圖像訓練和測試數據集S1,S2,…,Sn。
特征提取算法:
Step1:將輸入數據集中的小圖像文件處理為序列化文件,保存至HDFS文件系統;
Step2:map函數讀取序列化文件并將圖像統一處理為150*200大小,Step2~4在map函數中實現;
Step3:獲取每張圖像的類別信息,并提取對應圖像的Hue特征(x)、LBP特征(y)、PCA-Sift特征(z);
Step4:將Step3的類別信息和特征組成鍵值對形式<類別,特征值>,記為:cf1,cf2,…,cfn,保存至HDFS文件系統。
MFFRW算法:
Step1:在Map任務的setup函數中生成隨機權值矩陣Mn×3,Step2~6在map函數中實現;
Step2:將cfi(i=1,2,…,n)拆分為x,y,z三個特征分量后代入式2,得到融合后的特征向量集WF;
Setp3:WF按2∶1比例隨機分為WF1和WF2,選取WF1作為訓練樣本,WF2作為測試樣本;
Setp4:將WF1的每個元素輸入到SVM,得到訓練好的分類模型;
Setp5:將WF2中的每個元素輸入到訓練好的分類模型,得到對應模型的分類正確率Cr;
Setp6:反復執行Step2~5,得到一個由Cr組成的集合{Cr1,Cr2,…,Crn};
Setp7:reduce函數中將Setp6集合中的數據進行排序,得到最大值和對應的權值組合,即最優權值組合。
輸出:將最優權值組合和它對應的模型路徑輸出到HDFS文件系統。
利用5臺計算機搭建Hadoop集群,1臺為Master節點,其余4臺為Slave節點。所有節點計算機硬件配置都采用酷睿i7四核八線程4.2 G處理器,8 G內存,4 T硬盤空間;軟件配置如下:操作系統為64位的Ubuntu 14.04,Java環境為jdk1.7.0_79,Hadoop為Hadoop-2.5.1(64位編譯)的版本。
實驗數據來源于Corel1000圖像庫中,每個類別的前65張圖片作為訓練集,后35張圖片作為測試集,對于多個SVM,訓練和測試的數據總量情況如表1所示。

表1 多個SVM訓練、測試數據統計
3.2.1 圖像分類正確率對比
為驗證文中算法的效果,在相同條件下得到MFFRW算法與1∶1∶1融合、文獻[6-7]的分類正確率對比結果,如表2所示。

表2 正確率對比 %
從表2可以得知,文中算法的分類效果相對較好,巴士和恐龍的分類正確率達100%,其中單個特征的分類正確率與MFFRW算法的對比效果如圖3所示。

圖3 單個特征與最優SVM正確率對比
由圖3可知,MFFRW算法的分類效果比單個特征更加優越。綜上可知,通過文中算法確定的權值組合能更好地描述圖像內容。
3.2.2 加速比
加速比[15]指同一任務在單節點環境下運行時間與多節點環境運行時間的比值,是衡量Hadoop平臺下并行算法效率的一個重要指標。為驗證文中算法在Hadoop平臺下的性能,通過訓練50、80、100、120個SVM進行了加速比實驗,結果如圖4所示。

圖4 加速比對比
理想狀態下,系統的加速比應隨著節點計算機的增加而線性增長,但由于受通信開銷、負載平衡的原因,實際上加速比并不能線性增長。從圖4可以看到,在訓練個數不多時,系統的加速比隨著節點計算機的增多而增大,但增長幅度并不大,而隨著訓練個數的增多,系統加速比增長幅度會變大,當訓練個數達到120時,系統的加速比幾乎呈線性增長的趨勢,這進一步說明了Hadoop集群在計算量大時更能體現其優越性。
對Hadoop平臺下的MFFRW分類算法進行了深入的探討和研究,并將MapReduce并行編程模型應用于文中算法以解決計算量大的問題,在保證算法正確率的前提下,有效提升了算法效率。實驗結果表明,該算法分類正確率高、運行耗時少、不受主觀因素影響,搭建的Hadoop集群能夠充分利用各節點計算機的資源,相對于單節點計算機,系統獲得了很好的加速比,充分體現了Hadoop集群分布式并行處理的強大運算能力。
隨著大數據技術的廣泛應用,將大數據技術應用于傳統算法已成為新的研究熱點。下一步的研究工作中,將擴展Hadoop集群的節點數,調節參數,提升分布
式集群的性能;進一步改進圖像特征提取算法。