亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于Hadoop平臺的圖像分類方法與流程

文檔序號:11952110閱讀:464來源:國知局
一種基于Hadoop平臺的圖像分類方法與流程

本發(fā)明涉及圖像分類技術,具體涉及一種分布式圖像分類方法。



背景技術:

一、圖像分類方面

圖像分類技術利用計算機對圖像進行自動化分析與分類,是目標檢測與識別、圖像檢索等領域的基礎。圖像分類一般由圖像特征的提取和基于特征的分類兩個方面組成。

在特征提取方面,目前大多關注圖像的局部特征,使用尺度不變特征變換(Scale Invariant Feature Transform,SIFT)、加速穩(wěn)健特征(Speeded Up Robust Features,SURF)等算法提取出局部特征向量。視覺詞袋(Bag of Visual Words,BoVW)模型在此基礎上更進一步,將提取出的大量特征向量進行聚類,生成視覺詞典,將圖像根據(jù)詞典映射成詞典單詞的直方圖形式,這樣既減少了特征向量的數(shù)量,也使圖像向量更具表達力。

在基于特征的分類方面,目前多使用機器學習的方法進行。主流的分類器有支持向量機(Support Vector Machine,SVM)分類器,它在解決小樣本、非線性以及高維分類中表現(xiàn)出良好的性質。另外如Adaboost分類器,作為一種迭代算法,在每一輪中加入一個新的弱分類器,直到達到某個預定的足夠小的錯誤率。但是,當待處理的圖像規(guī)模較大時,其海量樣本、高維向量的特點對這些傳統(tǒng)分類算法所依賴的文件系統(tǒng)和計算架構提出了很大的挑戰(zhàn)。隨機森林算法將隨機理論引入決策樹模型,利用若干決策樹建立組合分類器,為圖像分類提供了新的思路,是生物信息學、數(shù)據(jù)挖掘領域熱門方向之一。然而,當數(shù)據(jù)量特別大時,隨機森林分類器也面臨著分類時耗過長的問題。

二、云計算平臺方面

Hadoop是當前主流的開源分布式云計算平臺,常用于Web訪問日志分析、反向索引構建、文檔聚類、基于統(tǒng)計的機器翻譯和生成整個搜索引擎的索引等大規(guī)模數(shù)據(jù)處理工作。Hadoop平臺由Apache基金會開發(fā),很多國內外知名的互聯(lián)網(wǎng)公司基于Hadoop架構布置內部應用,比如淘寶、eBay和百度等。

也有一些公司對設計大數(shù)據(jù)處理平臺,提供完整的商業(yè)大數(shù)據(jù)解決方案,如微軟的Azure,中國移動的BigCloude等。借助大數(shù)據(jù)平臺強大的分布式計算能力,海量數(shù)據(jù)的存儲和計算得以更好地實現(xiàn)。因此,如何結合大數(shù)據(jù)處理平臺,移植海量圖像的處理過程,是一個很有意義的課題。



技術實現(xiàn)要素:

本發(fā)明的目的是,提供一種適于Hadoop平臺的分布式圖像分類方法,該方法能夠充分利用Hadoop平臺的分布式計算能力,克服大規(guī)模圖像分類中時耗過長、存儲及文件系統(tǒng)瓶頸的問題,提高大規(guī)模圖像分類的效率。本發(fā)明的技術方案如下。

一種基于Hadoop平臺的分布式圖像分類算法,包括以下幾個技術步驟:

步驟1.提取圖像Sift特征:

輸入多幅訓練圖像,設計在Hadoop平臺上并行提取各個訓練圖像SIFT特征,生成訓練圖像的SIFT特征庫;

步驟2.利用Sift特征生成BoVW視覺詞典:

在Hadoop平臺上,將sift特征庫中的sift向量進行分布式聚類,得到若干視覺單詞,作為BoVW模型的詞典;

步驟3.提取BoVW模型的詞典后,將經(jīng)過特征提取的訓練圖像與此詞典對照,把訓練圖像表示為基于詞典的直方圖向量形式;

步驟4.將步驟3的訓練圖像的直方圖向量作為隨機森林分類器的訓練輸入,在Hadoop上設計分類器的并行化生成;

步驟5.針對需要分類的測試圖像,將其依次進行特征提取、直方圖向量化操作后,輸入步驟4所得的分類器,在Hadoop平臺上進行并行分類。

本發(fā)明針對大規(guī)模圖像分類運算耗時過多、文件系統(tǒng)及存儲架構落后的問題,提出一種基于Hadoop平臺的圖像分類方法。實驗顯示,本發(fā)明不僅具有較好的分類準確度,同時有效減少分類時間,可以良好地應用于大規(guī)模圖像分類場景。

附圖說明

圖1是Hadoop平臺的結構圖

圖2是本發(fā)明的流程圖

圖3是BoVW模型的原理圖

具體實施方式

本發(fā)明將圖像的分類過程分為圖像特征的提取和隨機森林分類器的訓練兩個階段,在每個階段進行并行化設計與編程,使得圖像處理的整體過程都不涉及對全部圖像數(shù)據(jù)的操作;另外,在第一個階段引入BoVW模型,依據(jù)模型對圖像進行簡化表示,提高圖像分類的準確性。

本發(fā)明選取Caltech-101經(jīng)典圖像庫進行實驗,隨機選取brain、bonsai、leopards等八類圖像進行分類。在每類圖像中,分別選取30幅圖像作為訓練圖像,20幅作為測試圖像,每項實驗均進行10次。下面對本發(fā)明做進一步說明。

(1)圖像特征的提取

Sift算法提取的Sift描述子對圖像尺度變換、旋轉、亮度變化等保持不變性,對視角變化、仿射變換也保持一定的穩(wěn)定性。在Hadoop上進行大量圖像的Sift特征提取,并行化步驟如下:

步驟1 將訓練圖像數(shù)據(jù)集{img(x,y)}輸入Hadoop集群,塊式存儲在各從節(jié)點上。由于圖像自身分立性,塊內每個圖像img(x,y)作為一個單獨的分片。

步驟2 Map任務節(jié)點輸入鍵/值對<Key,Value>,其中Key是img(x,y)的ID,Value是圖像數(shù)據(jù)img(x,y)。各map任務對圖像進行Sift特征提取,每張圖像均得到特征集合{X1,X2,...},Xi內部符合<(xi,yi),Xn(xi,yi)>形式,其中(xi,yi)是特征點的位置坐標,Xn(xi,yi)是該處128維的Sift特征向量。

步驟3 各Map節(jié)點產(chǎn)生的Sift特征分布式地存儲在HDFS集群上,無需進行Reduce過程,因此將Reduce函數(shù)數(shù)目設置為0。

(2)使用BoVW模型表示圖像

直接對(1)中提取的大量圖像Sift向量實施分類具有數(shù)據(jù)量大、計算復雜的問題。引入BoVW模型對圖像進行簡化表示,可以減少數(shù)據(jù)量,獲得更好的分類效果。BoVW模型在大量Sift特征的基礎上,產(chǎn)生有限個視覺單詞(Visual Words,VW)組成視覺詞典,然后利用視覺詞典將圖像表示成維度等同于詞典大小的向量。其中的聚類過程使用K-means算法,將向量空間中的n個特征點根據(jù)類內方差和最小的原則分為指定的K類,如公式(1)所示。

<mrow> <mi>m</mi> <mi>i</mi> <mi>n</mi> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>K</mi> </munderover> <munder> <mo>&Sigma;</mo> <mrow> <mi>x</mi> <mo>&Element;</mo> <msub> <mi>C</mi> <mi>i</mi> </msub> </mrow> </munder> <mi>d</mi> <mi>i</mi> <mi>s</mi> <mi>t</mi> <msup> <mrow> <mo>(</mo> <msub> <mi>&mu;</mi> <mi>i</mi> </msub> <mo>,</mo> <msub> <mi>x</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow>

式中:Ci表示第i個聚類類別,中心為μi,xi為該類別的數(shù)據(jù)點。

本發(fā)明使用Apache Machout開源機器學習庫實施K-means算法,首先轉化(2)中產(chǎn)生的大量Sift特征為sequenceFile格式,默認最大迭代次數(shù)為10,設定聚類中心數(shù)為200,利用org.apache.mahout.clustering.kmeans下的KMeansMapper、KMeansCombiner、KMeansReducer、KMeansDriver產(chǎn)生聚類中心,所得聚類中心存儲在HDFS上,作為BoVW模型的詞典使用。

得到大小為200的詞典后,根據(jù)詞典單詞與圖像各Sift向量的歐氏距離,將Sift向量映射為距其較近的視覺單詞。統(tǒng)計視覺單詞的詞頻,所得頻次直方圖即為基于BoVW的200維的圖像向量

(3)隨機森林分類器訓練

隨機森林由多個決策樹采用隨機的方式建立,將多個弱分類器組合成為一個高精度的分類器。森林中的每一棵決策樹均由根節(jié)點、分支節(jié)點、葉節(jié)點組成。節(jié)點分裂時,從訓練樣本的備選屬性集中隨機選擇若干屬性,計算各屬性的基尼不純度,將不純度下降最大的屬性作為該節(jié)點分裂屬性。基尼不純度定義為:

<mrow> <mi>G</mi> <mi>i</mi> <mi>n</mi> <mi>i</mi> <mrow> <mo>(</mo> <msub> <mi>N</mi> <mrow> <mi>n</mi> <mi>o</mi> <mi>d</mi> <mi>e</mi> </mrow> </msub> <mo>)</mo> </mrow> <mo>=</mo> <mn>1</mn> <mo>-</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mn>1</mn> <mo>=</mo> <mn>1</mn> </mrow> <mi>H</mi> </munderover> <msubsup> <mi>p</mi> <mi>i</mi> <mn>2</mn> </msubsup> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>

式中,pi在是類別i在節(jié)點處的占比。經(jīng)過分裂后,設原集合被分為L個部分,則分裂后的平均基尼系數(shù)為:

<mrow> <mi>G</mi> <mi>i</mi> <mi>n</mi> <mi>i</mi> <mrow> <mo>(</mo> <mi>&alpha;</mi> <mo>)</mo> </mrow> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>L</mi> </munderover> <mfrac> <mrow> <mo>|</mo> <msub> <mi>T</mi> <mi>i</mi> </msub> <mo>|</mo> </mrow> <mrow> <mo>|</mo> <mi>T</mi> <mo>|</mo> </mrow> </mfrac> <mo>&times;</mo> <mi>G</mi> <mi>i</mi> <mi>n</mi> <mi>i</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>3</mn> <mo>)</mo> </mrow> </mrow>

式中,L是子節(jié)點的個數(shù),Ti是子節(jié)點i處樣本的個數(shù),Gini(i)為子節(jié)點i的基尼不純度。

根據(jù)(1)(2)得到的圖像Sift向量及視覺詞典,可將圖像表示為200維的向量,將該向量作為隨機森林的訓練數(shù)據(jù),在Hadoop上分布式地生成隨機森林,并行化步驟如下:

步驟1設隨機森林中樹的數(shù)目為T=200,在原始訓練樣本集上,使用Bootstrap方法得到T個訓練樣本子集{S1,S2...S200},作為每棵樹的輸入。

步驟2啟動與森林大小相等的T個Map任務,輸入鍵值對<Key,Value>,Key是森林標識,Value是訓練子集Si。Map函數(shù)在各節(jié)點處計算最佳分裂屬性,依次產(chǎn)生左右分支。輸出鍵值對<Key,Value>,Key是森林標識,Value存儲每棵樹的信息DTi。

步驟3Map任務全部完成后,將結果輸入Reduce任務,Reduce任務整合所有樹的信息,輸出<Key,Value>,Key為森林標識,Value是隨機森林全體,表示為{DT1,DT2...DT200}。

(4)利用隨機森林進行分類測試

測試圖像通過Sift特征提取、基于BoVW表示圖像、隨機森林分類三個環(huán)節(jié),最后由隨機森林分類器投票產(chǎn)生分類結果。

分布式實驗環(huán)境是由4臺DellR730服務器組成的Hadoop集群,其中1臺服務器為NameNode節(jié)點,其他3臺為DataNode節(jié)點。四臺服務器的操作系統(tǒng)均采用Ubuntu14.04,Hadoop版本為CDH 5.5.0。測試圖像選取cal-101圖像庫中brain、bonsai、leopards等8類圖像進行,在各類圖像中選取20張作為測試圖像。

實驗比較了本方法的分布式和單機形式在運行時間上的性能:在BoVW詞典構建、隨機森林分類器訓練及測試圖像分類三個子過程上,分布式集群的執(zhí)行時間較單機均有明顯縮短,平均加速比約為2.4。

另外,實驗顯示,建樹數(shù)目不同對本方法的分類性能的影響,在建樹個數(shù)過少時,分類準確率隨著建樹個數(shù)增加而增大;當建樹個數(shù)達到200時,分類器的性能趨于穩(wěn)定,準確度接近75%。

綜上所示,本發(fā)明可以獲得良好的分類效果,同時充分利用Hadoop環(huán)境在分布式存儲和并行運算上的優(yōu)勢,顯著減少分類的時間開銷。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1