崔紅艷 曹建芳
(忻州師范學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系 山西 忻州 034000)
?
基于改進(jìn)的分布式K-Means特征聚類的海量場景圖像檢索
崔紅艷曹建芳*
(忻州師范學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系山西 忻州 034000)
摘要針對傳統(tǒng)的圖像檢索方法在處理海量數(shù)據(jù)時面臨的問題,提出一種基于改進(jìn)的分布式K-Means特征聚類的海量場景圖像檢索方法。對分布式K-Means算法進(jìn)行改進(jìn),優(yōu)化了初始聚類中心的選擇和迭代過程,并將其應(yīng)用與場景圖像的特征聚類中;充分利用Hadoop分布式平臺的海量存儲能力和強(qiáng)大并行計(jì)算能力, 提出了海量場景圖像的存儲和檢索方案,設(shè)計(jì)了場景圖像特征提取、特征聚類以及圖像檢索三個階段分布式并行處理的Map和Reduce任務(wù)。多組實(shí)驗(yàn)表明,提出的方法數(shù)據(jù)伸縮率曲線平緩,取得了優(yōu)良的加速比,效率大于0.6,檢索的平均準(zhǔn)確率達(dá)到了88%左右,適合海量場景圖像數(shù)據(jù)的檢索。
關(guān)鍵詞Hadoop分布式平臺MapReduce分布式K-Means算法特征聚類場景圖像檢索
0引言
多媒體技術(shù)及網(wǎng)絡(luò)技術(shù)的快速發(fā)展,已導(dǎo)致圖像數(shù)據(jù)的迅速增長,面對海量的圖像數(shù)據(jù),如何快速、準(zhǔn)確地檢索到用戶需要的圖像,已成為人們關(guān)注的熱點(diǎn)問題。傳統(tǒng)的基于單節(jié)點(diǎn)架構(gòu)的圖像檢索方法,在同時訪問用戶數(shù)量較少時,基本可以滿足用戶對訪問時間的要求,但隨著圖像數(shù)量的迅速增長,圖像特征庫會變得很大,在線同時訪問用戶數(shù)量也會隨之增多,導(dǎo)致圖像的檢索速度會因此而急速下降;另外,圖像的特征相似度計(jì)算屬于復(fù)雜運(yùn)算,使用傳統(tǒng)的檢索方法會耗費(fèi)大量的計(jì)算資源,運(yùn)算速度也很慢。這些都會導(dǎo)致大量用戶同時檢索時,系統(tǒng)運(yùn)行效率迅速下降,甚至無法承受,難以及時對用戶作出響應(yīng)[1]。因此,傳統(tǒng)的圖像檢索方法已無法完成對海量圖像數(shù)據(jù)的處理,難以滿足人們對圖像檢索性能的要求。對海量圖像的檢索面臨巨大的挑戰(zhàn),探索新的圖像檢索方法已成為數(shù)字圖像理解領(lǐng)域的研究熱點(diǎn)。
云計(jì)算技術(shù)的發(fā)展為海量圖像數(shù)據(jù)的處理提供了新的思路,云計(jì)算技術(shù)的發(fā)展過程一直與大規(guī)模數(shù)據(jù)的處理關(guān)系密切,因此利用云計(jì)算平臺進(jìn)行分布式并行處理是實(shí)現(xiàn)海量圖像高效檢索的一種有效解決方案。Hadoop是一個能夠?qū)Υ笠?guī)模數(shù)據(jù)進(jìn)行分布式并行處理的軟件框架,自問世以來因其優(yōu)秀的大規(guī)模數(shù)據(jù)處理能力、良好的可擴(kuò)展性、高可靠性以及低成本等優(yōu)點(diǎn)得到了廣泛的應(yīng)用[2]。本文以最常見的場景圖像為例,在分析傳統(tǒng)的圖像檢索方法的基礎(chǔ)上,研究了Hadoop平臺中的MapReduce并行編程框架,提出了基于MapReduce的海量場景圖像檢索方案和改進(jìn)的分布式K-Means特征聚類算法,設(shè)計(jì)了場景圖像并行特征聚類的Map任務(wù)和Reduce任務(wù),實(shí)現(xiàn)了海量場景圖像的高效檢索。為驗(yàn)證本文提出的檢索方法的性能,實(shí)驗(yàn)從檢索準(zhǔn)確率、數(shù)據(jù)伸縮率、加速比與效率等多個方面驗(yàn)證了檢索方案的強(qiáng)大并行計(jì)算能力。
1相關(guān)工作
近年來,研究者們對分布式K-Means聚類算法進(jìn)行了一些研究,目前研究應(yīng)用較多的平臺是Hadoop分布式平臺,它利用MapReduce并行編程計(jì)算模型實(shí)現(xiàn)大規(guī)模數(shù)據(jù)的存儲和計(jì)算。對分布式K-Means聚類算法的改進(jìn)大多是借鑒于傳統(tǒng)的非分布式K-Means算法,而對于傳統(tǒng)的K-Means算法的改進(jìn)主要集中在初始聚類中心的確定和距離函數(shù)的確定兩個方面。NehaA等人[3]利用所有的數(shù)據(jù)對象到特定中心的計(jì)算,選取中間的數(shù)據(jù)對象作為數(shù)據(jù)中心,避免了隨機(jī)選取初始聚類中心的不確定性,減少了循環(huán)迭代的次數(shù)。張軍偉等人[4]和韓最蛟[5]根據(jù)聚類數(shù)據(jù)間的距離和密度,選擇距離較大或密度較小的數(shù)據(jù)作為聚類中心。出了對K-Means算法的聚類過程做一些改進(jìn)之外,針對Hadoop分布式平臺,趙衛(wèi)中[6]等人提出了一種基于云平臺的并行K-Means聚類算法,利用MapReduce并行編程模型的Combine函數(shù)進(jìn)行本地的合并,加快了算法的迭代速度。金偉健[7]等人通過在計(jì)算模型中增加通信模塊,減少重復(fù)的通信流量,從而提高了數(shù)據(jù)的傳輸速率。盡管這些算法都可以對大規(guī)模數(shù)據(jù)進(jìn)行處理,但其聚類的質(zhì)量并不是很高,也沒有很好地考慮算法執(zhí)行過程中的計(jì)算量的問題。
在海量圖像處理方面,WileyK[8]等人通過將圖像轉(zhuǎn)換成序列化的二進(jìn)制文件,利用Hadoop實(shí)現(xiàn)了對天文圖像的分析處理,但因其無法對圖像進(jìn)行隨機(jī)讀寫,所以應(yīng)用受到了一定的限制。AlmeerMH[1]等人利用Hadoop的HDFS實(shí)現(xiàn)了對大規(guī)模遙感圖像的分析和存儲。朱義明[9]通過自定義圖像接口讀寫整張圖像,提出了基于Hadoop平臺的圖像分類方法, 但該方法未考慮小文件低效率的問題,從而導(dǎo)致一定的資源浪費(fèi),因此僅適合對遙感圖像的處理。SweeneyC[10]提出了一種新的方法,通過將圖像數(shù)據(jù)信息轉(zhuǎn)化為Float數(shù)組的方式將其存儲在一個文件中,并附有索引文件,從而有效解決了小文件低效率問題并支持通過索引文件隨機(jī)讀取,但這種方法不能存儲圖像的原始完整信息,而且圖像與數(shù)組互相轉(zhuǎn)換的編碼與解碼方法較為復(fù)雜,目前僅支持RGB顏色空間和jpg、png、ppm格式的圖像,應(yīng)用范圍受到一定的限制。
綜上所述,目前幾乎沒有一種適合大規(guī)模場景圖像的高效的特征聚類和檢索方法。因此,本文在上述研究的基礎(chǔ)上,以傳統(tǒng)的K-Means算法和海量場景圖像為研究對象,在MapReduce冰箱編程模型框架下,研究場景圖像的特征聚類優(yōu)化方法,分析如何能準(zhǔn)確、快速、高效的從海量場景圖像庫中檢索到用戶需要的圖像數(shù)據(jù),實(shí)現(xiàn)“以人為本”的高效場景圖像檢索。
2系統(tǒng)整體架構(gòu)
針對傳統(tǒng)的單節(jié)點(diǎn)架構(gòu)和場景圖像迅速增長引發(fā)的瓶頸問題,本文提出了Hadoop分布式平臺下的場景圖像檢索方案,系統(tǒng)整體架構(gòu)如圖1所示。
系統(tǒng)整體架構(gòu)分為三層:
(1) 表現(xiàn)層:用戶通過Internet獲取服務(wù),提交示例圖像或接收檢索結(jié)果。
(2) 業(yè)務(wù)邏輯層:Web服務(wù)器根據(jù)用戶的檢索請求執(zhí)行相應(yīng)的業(yè)務(wù)處理。
(3) 數(shù)據(jù)處理層:是整個系統(tǒng)的核心部分,主要進(jìn)行海量場景圖像的存儲和管理,負(fù)責(zé)場景圖像的特征提取、匹配、輸出結(jié)果等。用戶將檢索示例圖像或檢索關(guān)鍵字通過Internet提交給Hadoop分布式系統(tǒng),經(jīng)過MapReduce計(jì)算模型進(jìn)行特征提取(如果是示例圖像),然后進(jìn)行特征匹配:如果是示例圖像檢索,就將示例圖像特征與HDFS中存儲的場景圖像特征庫匹配;如果是關(guān)鍵字檢索,就將檢索關(guān)鍵字與場景圖像庫的標(biāo)注信息匹配;最后輸出檢索結(jié)果。
圖1 海量場景圖像檢索系統(tǒng)架構(gòu)
2.1MapReduce并行編程模型
MapReduce是Hadoop分布式處理的核心技術(shù)之一,它為大數(shù)據(jù)的處理提供了一種面向底層的分布式并行處理計(jì)算模式,為開發(fā)者提供了一套完整的編程接口和執(zhí)行環(huán)境。MapReduce采用標(biāo)準(zhǔn)的函數(shù)式編程計(jì)算模式,核心是可以將被稱為高次函數(shù)的函數(shù)作為參數(shù)進(jìn)行傳遞,通過多個高次函數(shù)的串接,將數(shù)據(jù)的計(jì)算過程轉(zhuǎn)換成為函數(shù)的執(zhí)行過程。
MapReduce將數(shù)據(jù)的計(jì)算過程分為Map和Reduce兩個階段,分別對應(yīng)兩個函數(shù):mapper和reducer。在Map階段,原始數(shù)據(jù)經(jīng)分段處理后作為輸入給mapper,經(jīng)過過濾和轉(zhuǎn)換,將產(chǎn)生的中間結(jié)果作為Reduce階段reducer的輸入,最后經(jīng)過聚合處理得到最終結(jié)果。
Map階段,MapReduce將用戶的輸入數(shù)據(jù)分割為固定大小的片段(Split),然后將每個Split分解成一批鍵值對
Reduce階段,Reduce把從不同的mapper函數(shù)接收過來的數(shù)據(jù)整合排序,然后調(diào)用對應(yīng)的reducer函數(shù),將
其過程表示為:
Map:(k1,v1)→list(k2,v2)
Reduce:(k2,list(v2))→list(k3,v3)
2.2HDFS體系結(jié)構(gòu)設(shè)計(jì)
HDFS也是Hadoop的核心子項(xiàng)目之一,采用主從(Master/Slave)模式體系結(jié)構(gòu),將大規(guī)模的數(shù)據(jù)存儲在多臺相關(guān)聯(lián)的計(jì)算機(jī)上,既可增加存儲容量,又能實(shí)現(xiàn)自動容錯,能夠自動檢測和快速恢復(fù)硬件故障,在超大規(guī)模數(shù)據(jù)集上方便的進(jìn)行流式數(shù)據(jù)訪問。
當(dāng)圖像數(shù)據(jù)規(guī)模很大時,如果將其全部存儲在HDFS中,那么讀取圖像會產(chǎn)生很大的時間開銷,HBase是一個在HDFS之上的面向列的分布式數(shù)據(jù)庫,可以進(jìn)行實(shí)時讀寫,因此本文將場景圖像的存儲路徑和特征存儲于HBase分布式數(shù)據(jù)庫中。結(jié)構(gòu)如表1所示。
表1 海量場景圖像的存儲表設(shè)計(jì)
將場景圖像的ID作為HBase表的主鍵,取圖像和提取的圖像特征、標(biāo)注信息作為HBase表的兩個列族。由于HBase對表執(zhí)行的是按行原子操作,因此將一張場景圖像的所有信息全部放在一行存放,以便于讀寫。
3改進(jìn)的分布式K-Means特征聚類算法
3.1場景圖像特征提取
由于SURF算法能在保持尺度、旋轉(zhuǎn)、照明變化等無關(guān)特性的同時,使得計(jì)算過程效率更高,因此,本文采用SURF算法提取場景圖像的特征。過程如下:
(1) 計(jì)算場景圖像每個像素點(diǎn)X=(x,y)在尺度σ下的Hessian矩陣:
(1)
該矩陣是由二階導(dǎo)數(shù)構(gòu)成的矩陣,用不同尺度σ下的近似高斯核計(jì)算求得,因此,Hessian值實(shí)際上是一個包含三個變量的函數(shù):H(x,y,σ)。
(2) 計(jì)算在空間域和尺度域上同時達(dá)到局部極大值時的相應(yīng)位置和尺度。
對于每個特征點(diǎn),求其在半徑為6σ的圓內(nèi)的Haar小波在x和y方向的響應(yīng)dx和dy,對覆蓋在60°范圍內(nèi)的響應(yīng)求和,旋轉(zhuǎn)窗口得到最長向量的方向即為主要方向。
(3) 對得到的64維特征向量做歸一化處理。
該過程在Hadoop分布式處理平臺下的MapReduce計(jì)算過程如下:
Map任務(wù):
輸入:
輸出:
mapper函數(shù)對每張場景圖像利用SURF算法特征向量,并統(tǒng)計(jì)特證數(shù),便于歸一化處理。
Reduce任務(wù):
reducer函數(shù)將mapper函數(shù)輸出的每個鍵值對作為自己的輸入,并再將其傳遞到輸出部分。
3.2特征聚類
K-Means聚類算法是一個重復(fù)迭代算法,在分布式環(huán)境下,每次迭代都會耗費(fèi)大量的時間和通信量,而且用于圖像的特征聚類時,圖像的屬性維數(shù)較高,數(shù)量較多,因此傳統(tǒng)的分布式K-Means算法的時間復(fù)雜度很大。本文改進(jìn)了傳統(tǒng)的分布式K-Means算法,首先使用Canopy算法選擇初始聚類中心,然后在聚類中心點(diǎn)生成的過程中使用Combine函數(shù)進(jìn)行了本地的合并,這樣既優(yōu)化了初始聚類中心,又優(yōu)化了算法的迭代過程,大大降低了分布式K-Means算法的時間復(fù)雜度。
(1) Canopy算法和K-Means算法
Canopy算法[11]的主要思想是將聚類分成兩個階段:首先,使用一個簡單、快捷的距離計(jì)算方法將數(shù)據(jù)分成被稱為“canopy”的可重疊的子集;然后,使用一個精準(zhǔn)而嚴(yán)密的距離計(jì)算方法計(jì)算出現(xiàn)在第一階段中的屬于同一個“canopy”的所有數(shù)據(jù)向量的距離。該算法由于只計(jì)算重疊部分的數(shù)據(jù)向量而有效地減少了計(jì)算量。
K-Means算法[11]是一種經(jīng)典的基于距離的聚類算法,它采用距離作為相似性的評價指標(biāo),即兩個對象的距離越近,相似性就越大。其基本思想為:首先隨機(jī)選取k個點(diǎn)作為初始聚類中心,然后計(jì)算各樣本到中心點(diǎn)的距離,將樣本歸類到離其最近的簇中,接著對調(diào)整后的新類計(jì)算新的簇中心,若相鄰兩次的簇中心沒有變化,則樣本調(diào)整結(jié)束,聚類準(zhǔn)則函數(shù)E收斂。
(2)
其中,Mi為類Ci中數(shù)據(jù)對象的均值,p是類Ci中的空間點(diǎn)。
分布式K-Means算法[11]的基本思想是:首先隨機(jī)選擇一個站點(diǎn)作為主站點(diǎn),然后主站點(diǎn)利用K-Means算法將其劃分為k個簇,接著主站點(diǎn)將各個簇的中心點(diǎn)廣播給其余的k-1個子站點(diǎn),最后各子站點(diǎn)計(jì)算本站點(diǎn)的數(shù)據(jù)對象與中心站點(diǎn)各個簇中心點(diǎn)的距離,并將每個樣本點(diǎn)歸入離其最近的中心點(diǎn),將不屬于自己的樣本對象傳送給與該樣本對象所屬的簇類對應(yīng)的站點(diǎn)。反復(fù)迭代,直到判別函數(shù)E收斂為止。
(2) 改進(jìn)的分布式K-Means特征聚類算法描述
本文將Canopy算法與K-Means算法結(jié)合,利用Canopy算法優(yōu)化K-Means算法的初始聚類中心,其算法描述如下。
算法分為兩大部分:初始聚類中心的優(yōu)化和聚類迭代過程的優(yōu)化。
利用Canopy算法對初始聚類中心的優(yōu)化過程為:
輸入:場景圖像數(shù)據(jù)集List(形如
輸出:k個初始聚類中心(形如
① 數(shù)據(jù)預(yù)處理。將場景圖像數(shù)據(jù)集合List按照圖像的image_id排序,并設(shè)置初始距離閾值T1和T2(使用交叉驗(yàn)證獲得),且T1>T2。
②mapper函數(shù)隨機(jī)選取一個場景圖像樣本向量作為一個canopy中心向量,然后遍歷場景圖像數(shù)據(jù)集合List,若場景圖像數(shù)據(jù)與canopy中心向量之間的距離小于T1,則將該圖像數(shù)據(jù)歸入此canopy;若距離小于T2,則將該圖像數(shù)據(jù)從原始數(shù)據(jù)集中去除,直到List為空;最后輸出所有的canopy中心向量。
③reducer函數(shù)處理mapper函數(shù)的輸出,整合Map階段產(chǎn)生的canopy中心向量,生成新的canopy中心向量,即初始聚類中心。
這樣就得到了k個初始聚類中心。
利用K-Means算法進(jìn)行特征聚類的迭代優(yōu)化過程為:
輸入:場景圖像數(shù)據(jù)集List(形如
輸出:k個聚類中心(形如
①mapper函數(shù)接收Canopy算法reducer函數(shù)的輸出,計(jì)算各場景圖像數(shù)據(jù)對象到其所屬的各canopy中最近的簇中心的距離,輸出場景圖像數(shù)據(jù)及所屬的簇,形如
②combine函數(shù)接收mapper函數(shù)的輸出,在本地進(jìn)行同一簇對象的合并,即對各簇中場景圖像數(shù)據(jù)對象的對應(yīng)維求和,統(tǒng)計(jì)數(shù)據(jù)對象的個數(shù),得到形如
③reducer函數(shù)接收combine函數(shù)的輸出,統(tǒng)計(jì)各簇的所有場景圖像數(shù)據(jù)對象的對應(yīng)維之和、場景圖像數(shù)據(jù)對象的總個數(shù),得到新的簇中心值作為穩(wěn)定的K-Means簇中心,形如
④ 根據(jù)產(chǎn)生的穩(wěn)定的簇中心,進(jìn)行聚類劃分:mapper函數(shù)接收待聚類場景圖像數(shù)據(jù)作為輸入,并加載穩(wěn)定的K-Means簇中心,計(jì)算各場景圖像數(shù)據(jù)對象與k個簇中心之間的距離,得到該數(shù)據(jù)對象最終所屬的簇;reducer函數(shù)接收mapper函數(shù)的輸出,進(jìn)行數(shù)據(jù)收集,得到最終的聚類結(jié)果。
對于場景圖像特征相似度的計(jì)算,本文采用歐幾里得距離公式進(jìn)行計(jì)算。
(3)
4海量場景圖像檢索的實(shí)現(xiàn)
檢索流程如圖2所示。
圖2 海量場景圖像檢索流程
基于改進(jìn)的分布式K-Means特征聚類的海量場景圖像檢索,根據(jù)場景圖像的SURF特征描述圖像,結(jié)合場景圖像的標(biāo)注信息特征,實(shí)現(xiàn)圖像檢索。主要是以下幾個步驟:
(1) 場景圖像庫以及標(biāo)注信息存儲于HDFS的HBase分布式數(shù)據(jù)庫中,用于特征提取、聚類以及獲取檢索結(jié)果。
(2) 對庫中的場景圖像使用SURF算法進(jìn)行分布式并行特征提取,并使用本文提出的改進(jìn)的分布式K-Means算法進(jìn)行特征聚類,將聚類后的圖像數(shù)據(jù)及特征信息存儲于HDFS中。
(3) 在圖像檢索階段,Map任務(wù)接收用戶輸入的檢索要求,并讀取圖像特征信息庫,判斷檢索要求,提取示例圖像特征,計(jì)算待檢索圖像特征與圖像庫中各聚類中心的相似度,并將計(jì)算的結(jié)果作為中間結(jié)果輸出。
(4)Reduce任務(wù)接收Map任務(wù)的輸出,將相似度按從大到小的順序排序,將相似度最大的聚類中心的場景圖像作為最終檢索結(jié)果輸出。
5實(shí)驗(yàn)及結(jié)果分析
5.1實(shí)驗(yàn)環(huán)境和測試數(shù)據(jù)
本文實(shí)驗(yàn)環(huán)境搭建的Hadoop集群由局域網(wǎng)內(nèi)5臺計(jì)算機(jī)構(gòu)成,其中1臺計(jì)算機(jī)為Master節(jié)點(diǎn),其余4臺計(jì)算機(jī)為Slave節(jié)點(diǎn),各節(jié)點(diǎn)計(jì)算機(jī)采用4G雙核處理器,500GB硬盤空間的基本配置,操作系統(tǒng)采用Ubuntu。
本文的實(shí)驗(yàn)測試數(shù)據(jù)來自Internet上的SUNDatabase場景圖像數(shù)據(jù)庫,該數(shù)據(jù)庫目前包含131 067張場景圖像,908個場景類別。由于實(shí)驗(yàn)條件的限制,我們從中選取20 000張場景圖像作為實(shí)驗(yàn)測試數(shù)據(jù)集。
5.2系統(tǒng)性能測試與分析
(1) 存儲性能測試與分析
在做存儲性能實(shí)驗(yàn)測試時,根據(jù)Hadoop集群不同節(jié)點(diǎn)個數(shù)的情況,我們對存儲不同的場景圖像集規(guī)模所需消耗的時間進(jìn)行了實(shí)驗(yàn)對比,場景圖像集的規(guī)模分別設(shè)置為:500、1000、3000、6000、10 000、15 000、20 000張;在1個、2個、3個和4個節(jié)點(diǎn)時分別做了存儲耗時性能的測試。實(shí)驗(yàn)結(jié)果如圖3所示。
圖3 海量場景圖像存儲耗時對比
可以看出,在場景圖像的規(guī)模小于1000張時,節(jié)點(diǎn)數(shù)量的增長對場景圖像存儲耗時性能的影響并不明顯,當(dāng)場景圖像的規(guī)模大于1000時,分布式并行存儲的優(yōu)勢逐漸明顯。在相同的圖像規(guī)模下,存儲耗時隨著節(jié)點(diǎn)的數(shù)量增加而下降;隨著圖像規(guī)模的增大,存儲耗時也在不斷增加,然而,單節(jié)點(diǎn)集群增加最快,而4個節(jié)點(diǎn)集群的增長速度最為緩慢,即在圖像規(guī)模不太大時,不適合采用多節(jié)點(diǎn)集群分布式存儲,而當(dāng)圖像規(guī)模變大時,采用分布式存儲的效率是很高的。
(2) 檢索性能測試與分析
為驗(yàn)證檢索的效果,本文從檢索準(zhǔn)確率、加速比與效率、數(shù)據(jù)伸縮率等三個方面進(jìn)行了實(shí)驗(yàn)對比。
① 檢索準(zhǔn)確率
本文首先使用傳統(tǒng)的查準(zhǔn)率、召回率以及F1值來衡量系統(tǒng)的檢索效果。表2是在不同的場景圖像規(guī)模下,結(jié)合人工輔助的統(tǒng)計(jì),得到的檢索效率。
表2 檢索平均準(zhǔn)確率比較
從表2可以看出,系統(tǒng)檢索的查準(zhǔn)率、召回率和F1值都較高,檢索效果較好;另外,還可以看到,隨著場景圖像規(guī)模的不斷增大,雖然系統(tǒng)的查準(zhǔn)率和召回率在降低,但下降的幅度很小,這充分說明,采用分布式并行處理方式非常適合大規(guī)模數(shù)據(jù)的處理。
② 數(shù)據(jù)伸縮率
數(shù)據(jù)伸縮率[2]是衡量設(shè)計(jì)的方案處理不同數(shù)據(jù)規(guī)模的能力的一個指標(biāo),是指處理擴(kuò)大后的數(shù)據(jù)集所需的時間與處理原始數(shù)據(jù)集所需時間的比值。實(shí)驗(yàn)以節(jié)點(diǎn)數(shù)為4進(jìn)行,從1 000張場景圖像的數(shù)據(jù)規(guī)模起,逐漸將圖像規(guī)模增加到10 000,測試結(jié)果如圖4所示。
圖4 系統(tǒng)數(shù)據(jù)伸縮率測試
可以看到,在場景圖像的規(guī)模小于5000時,數(shù)據(jù)伸縮率曲線較為平緩,這說明在圖像數(shù)量較少時,系統(tǒng)并不能充分發(fā)揮各數(shù)據(jù)節(jié)點(diǎn)的計(jì)算能力,而當(dāng)圖像規(guī)模大于5000時,數(shù)據(jù)伸縮率的增長趨勢較快,曲線上升較為陡峭,這進(jìn)一步的說明數(shù)據(jù)規(guī)模愈大,愈能發(fā)揮各數(shù)據(jù)節(jié)點(diǎn)的計(jì)算能力。同時,可以看出,圖像規(guī)模從5000張擴(kuò)大到10 000張時大約需要3.8倍的時間,而從1000張擴(kuò)大到10 000張時只用了大約5.8倍的時間,系統(tǒng)取得了較好的數(shù)據(jù)伸縮率。
③ 加速比與效率
加速比[2,13]是指同一任務(wù)在單個計(jì)算節(jié)點(diǎn)的運(yùn)行時間與多個計(jì)算節(jié)點(diǎn)的運(yùn)行時間之比,效率是加速比與計(jì)算節(jié)點(diǎn)數(shù)量之比,二者是用來衡量檢索方案整體性能的指標(biāo)。圖5是場景圖像規(guī)模分別為5000、10 000、15 000時系統(tǒng)加速比與效率的實(shí)驗(yàn)對比結(jié)果。
圖5 系統(tǒng)性能對比
在理想狀態(tài)下,系統(tǒng)加速比應(yīng)隨著節(jié)點(diǎn)個數(shù)增加而線性增長,效率始終保持不變。但實(shí)際上由于任務(wù)的控制受到通信開銷、負(fù)載平衡等因素的影響,加速比不會線性增長,系統(tǒng)效率并不會達(dá)到1。GollerA[12,14]等人認(rèn)為只要效率達(dá)到0.5,即可認(rèn)為系統(tǒng)獲得了很好的性能。從圖5可以看出,通過對三組規(guī)模不同的場景圖像的測試,加速比隨著節(jié)點(diǎn)個數(shù)的增加而增加,效率都在0.5以上,這充分說明系統(tǒng)獲得了很好的性能。另外,隨著場景圖像規(guī)模的增大,節(jié)點(diǎn)個數(shù)愈多,加速比與效率的性能就愈好,這同時也說明在分布式并行處理情況下,數(shù)據(jù)規(guī)模愈大,愈能充分發(fā)揮各數(shù)據(jù)節(jié)點(diǎn)的計(jì)算能力。
從整體上看,無論是存儲性能還是檢索性能,本文提出的基于改進(jìn)的分布式K-Means特征聚類的海量場景圖像檢索方法都達(dá)到了很好的效果。
6結(jié)語
本文對基于改進(jìn)的分布式K-Means特征聚類的海量場景圖像檢索方法進(jìn)行了深入探討和研究,研究了如何對分布式K-Means算法改進(jìn),并將其應(yīng)用于場景圖像檢索的特征聚類中,在Hadoop分布式處理平臺上實(shí)現(xiàn)了海量場景圖像的檢索。實(shí)驗(yàn)結(jié)果表明,設(shè)計(jì)的檢索方案能均衡系統(tǒng)負(fù)載,充分利用分布式系統(tǒng)的資源,提高檢索速度;面對海量的場景圖像數(shù)據(jù),Hadoop分布式系統(tǒng)的檢索效率相對于單節(jié)點(diǎn)架構(gòu)的系統(tǒng)有很大提高,充分體現(xiàn)了分布式并行處理架構(gòu)的強(qiáng)大計(jì)算能力。
隨著大數(shù)據(jù)時代的到來以及云計(jì)算、多媒體技術(shù)的快速發(fā)展,對于大規(guī)模多媒體數(shù)據(jù)的分析和處理逐漸成為新的研究熱點(diǎn)。本文下一步的研究內(nèi)容主要包括:(1) 擴(kuò)展Hadoop分布式平臺的節(jié)點(diǎn)數(shù),調(diào)節(jié)系統(tǒng)的相關(guān)參數(shù),進(jìn)一步提高分布式系統(tǒng)的工作效率;(2) 優(yōu)化特征提取和聚類算法,提高檢索的準(zhǔn)確率;(3) 優(yōu)化分布式處理Map任務(wù)和Reduce任務(wù)的設(shè)計(jì),從而實(shí)現(xiàn)更快、更精確的檢索。
參考文獻(xiàn)
[1]AlmeerMH.CloudHadoopmapreduceforremotesensingimageanalysis[J].JournalofEmergingTrendsinComputingandInformationSciences,2012,3(4):637-644.
[2] 朱為盛,王鵬.基于Hadoop云計(jì)算平臺的大規(guī)模圖像檢索方案[J].計(jì)算機(jī)應(yīng)用,2014,34(3):695-699.
[3]NehaA,KiriiA.Amid-pointbasedk-meanclusteringalgorithmforDatamining[J].InternationalJournalonComputerScienceandEngineering,2012,4(6):1174-1180.
[4] 張軍偉,王念濱,黃少濱,等.二分K均值聚類算法優(yōu)化及并行化研究[J].計(jì)算機(jī)工程,2011,37(11):23-25.
[5] 韓最蛟.基于數(shù)據(jù)密集性的自適應(yīng)K均值初始化方法[J].計(jì)算機(jī)應(yīng)用與軟件,2014,31(2):182-187.
[6] 趙衛(wèi)中,馬慧芳,傅燕翔,等.基于云計(jì)算平臺Hadoop的并行K-Means聚類算法設(shè)計(jì)研究[J].計(jì)算機(jī)科學(xué),2011,38(10):166-168.
[7] 金偉健,王春枝.適于進(jìn)化算法的迭代式MapReduce框架[J].計(jì)算機(jī)應(yīng)用,2013,33(12):3591-3595.
[8]WileyK,ConnollyA,KrughoffS,etal.AstronomicalimageprocessingwithHadoop[C]//Proceedingsofthe20thConferenceonAstronomicalDataAnalysisSoftwareandSystems.SanFrancisco:AstronomicalSocietyofthePacific,2011:93-96.
[9] 朱義明.基于Hadoop平臺的圖像分類[J].西南科技大學(xué)學(xué)報(bào),2011,26(2):70-73.
[10]SweeneyC,LiuL,AriettaS,etal.HIPI:aHadoopimageprocessinginterfaceforimage-basedmapreducetasks[D].Charlattesville:UniversityofVirginia,2011.
[11] 樊哲.Mahout算法解析與案例實(shí)戰(zhàn)[M].北京:機(jī)械工業(yè)出版社,2014.
[12]GollerA,GlendinningI,BachmannD,etal.Parallelanddistributedprocessing[M].DigitalImageAnalysis.Berlin:Springer-Verlag,2001:135-153.
[13] 王賢偉,戴青云,姜文超,等.基于MapReduce的外觀設(shè)計(jì)專利圖像檢索方法[J].小型微型計(jì)算機(jī)系統(tǒng),2012,33(3):626-632.
[14] 顏宏文,陳鵬.基于云模型的電網(wǎng)統(tǒng)計(jì)數(shù)據(jù)質(zhì)量評估方法研究[J].計(jì)算機(jī)應(yīng)用與軟件,2014,31(12):100-103.
MASSIVE SCENE IMAGE RETRIEVAL BASED ON IMPROVED DISTRIBUTEDK-MEANSFEATURECLUSTERING
Cui HongyanCao Jianfang*
(Department of Computer Science and Technology,Xinzhou Teachers University,Xinzhou 034000,Shanxi,China)
AbstractConcerning that traditional image retrieval methods are confronted with the problems when processing massive data, we put forward a retrieval method for massive scene images, which is based on improved k-means feature clustering. We improved the distributed K-means algorithm, optimised the selection of initial cluster centres and the iteration procedure, and applied it to feature clustering of scene images. We made full use of the massive storage capacity and the powerful parallel computing ability of Hadoop distributed platform, proposed the storage and retrieval scheme on massive scene image, and designed the Map and Reduce tasks of three-phase distributed parallel processing on scene image with feature extraction, feature clustering and image retrieval. Sets of experiments demonstrated that the proposed method has gentle curve of data expansion rate, achieves good speedup ratio, the efficiency is greater than 0.6, and the average accuracy rate of retrieval reaches about 88%. The proposed scheme is suitable for large-scale scene image data retrieval.
KeywordsHadoop distributed platformMapReduceDistributed k-means algorithmFeature clusteringScene image retrieval
收稿日期:2015-01-19。國家自然科學(xué)基金項(xiàng)目(61202163);山西省高校大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練項(xiàng)目(2014383);山西省自然科學(xué)基金項(xiàng)目(2013011017-2);忻州師范學(xué)院重點(diǎn)學(xué)科專項(xiàng)課題(XK201308)。崔紅艷,本科生,主研領(lǐng)域:數(shù)字圖像理解。曹建芳,副教授。
中圖分類號TP391
文獻(xiàn)標(biāo)識碼A
DOI:10.3969/j.issn.1000-386x.2016.06.047