網站首頁 文學常識 簡歷 公文文書 文學名著 實用文 人生哲理 作文 熱點話題作文
當前位置:文萃咖 > 實用範文 > 論文

海量圖片快速去重技術論文

欄目: 論文 / 發佈於: / 人氣:1.23W

針對海量圖片中的去除重複圖片效率低的問題,提出一種基於圖片特徵的並行化海量圖片快速去重技術。首先,對圖片提取圖片顏色、紋理、形狀等特徵,用來全面描述圖片;其次,使用度量標準對圖片之間的特徵距離進行度量計算;最後,利用如果兩個點到任意一點距離相等則這兩點有可能是同一個點的思想實現根據特徵距離對重複圖片的快速定位,達到重複圖片檢測與去重的目的。結合實驗計算機網絡數據分析驗證該技術不僅能夠準確地去重圖片,且採用i5四核處理器的單機計算方式僅10min左右即可處理500萬級圖片量,與一般的兩兩計算相比,提高了海量圖片去重的時效性,使得計算時間大幅度縮短。

海量圖片快速去重技術論文

0引言

隨着數據的指數級增長,企業面臨的快速備份和恢復的時間點越來越多,管理保存數據的成本及數據中心空間和能耗也變得越來越嚴重。研究發現,應用系統所保存的數據中高達60%是宂餘的,縮減數據佔用空間,降低成本,重複數據刪除技術此句不太通順,請作相應調整。已成為一個熱門的研究課題。所以,重複數據刪除技術就成為了縮減數據佔用空間及降低成本的重要手段之一。目前重複數據刪除技術主要包含相同數據檢測及相似數據檢測兩大類,其中相同數據檢測[1-3]的方法主要有完全文件檢測技術、固定分塊檢測等,這些檢測方法主要通過hash技術進行數據挖掘;相似數據檢測利用數據自身的相似性特點,通過shingle技術[4]、bloom filter技術[5]及模式匹配技術[6-7]等挖掘出重複數據。這些技術使得共享數據塊的文件之間產生了依賴性,降低了系統的可靠性;同時因為數據檢測對比等過程導致大量的計算開銷,對系統的性能影響也很大。因此,為了提高檢測速度,降低對系統的性能影響,很多學者提出了並行化處理方式[8-10]。

由於圖片文件的數據量大且不易修改的特性由於圖片文件的數據量大其不易修改的特性,若採用文件級去重則計算開銷大,效率較低,而塊級則容易導致圖片讀取不完整、刪除錯誤、恢復圖片困難等問題,在海量圖片的情況下這些問題將更加突出。針對上述問題,文獻[11]提出一種針對海量圖片文件存儲去重技術的方法,利用MD5(MessageDigest Algorithm 5)特性在圖片文件上載存儲過程中實現去重取得了較好的效果。本文則針對已存儲的海量圖片,提出一種並行化快速去重算法:主要提取圖片本身具有的數據特徵,根據特徵進行重複檢測,實現海量圖片去重處理,其時間複雜度為Ο(n2)。進一步,為了降低算法時間複雜度,本文針對該算法進行改進,將時間複雜度降低為Ο(n log n),實現了海量圖片的快速去重。

1.1顏色特徵提取方法

顏色是圖像最直觀的特徵,也是圖像視覺重要的感知特徵之一。HSV(Hue, Saturation, Value)顏色模型由色度H、飽和度S、亮度V三個分量組成,和人的視覺特性比較接近,所以選擇在HSV空間提取顏色特徵.為減少高維數特徵對計算帶來的不便,進行如下量化[12]:

再按式L=7H+3S+1V轉化成一維特徵量。傳統顏色直方圖只是每種顏色的量的統計,忽略了圖像中每種顏色的分佈方式。文獻[12]提出一種環形區域劃分的思想,將圖片空間劃分成M個同心圓環及外圍區域,以(C,D)為圖片幾何中心,中心圓半徑為R=[min(A,B)]/(2M),其中(A,B)為圖片邊長,其他圓形半徑為MR,其中取M=2。本文同樣選擇M=2,將圖片區域被劃分為中心圓、圓環和外部3個區域。這樣既能夠不增加特徵向量的維數和計算成本,同時與傳統顏色直方圖相比顏色空間分佈信息得到充分利用。所以提取累加直方圖作為顏色特徵,每個區域提取58個,共提取174個顏色特徵。

1.2紋理特徵及形狀特徵提取方法

小波分析往往具有多尺度以及多方向性的特點,已經被廣泛應用到圖像紋理特徵提取及形狀特徵提取方面的應用[13-14]。本文首先採用Mallat小波分解,得到分解層上的高頻子帶圖像能量和低頻子帶上灰度共生矩陣統計量作為紋理特徵特徵向量;同時得到分解層上的高頻子帶圖像均值、標準差和低頻子帶圖像Hu不變矩的10個相對矩作為形狀特徵向量。Mallat在多分辨率分析中採用了離散框架小波變換。多次小波分解的分解係數是一組有關離散高通濾波U(n)和低通濾波G(n)的遞推關係式,其計算方式如式(4)和(5)所示:

特徵提取過程如下:

1)根據Mallat分解方法,對圖片進行4個子帶的分解。

2)繼續對低頻子圖像進行小波變換,得到更多級別的分解子圖像。第i級別j子帶的能量表示為:

ENij=1n∑nk=1Cij(k)2(7)

其中:Cij(k)為該子帶上的小波係數;n是j子帶的小波的係數個數,將能量作為特徵矩陣的元素構造特徵向量。

3)繼續對低頻子圖像進行小波變換,對每層低頻子圖像計算Hu不變矩的10個相對矩[14]:

4)在低頻子帶上依次按照0°、45°、90°和135°方向構造灰度共生矩陣[13],然後分別計算熵Entropyj、二階矩ASMj、逆差矩DMj、對比度conj、相關係數corj作為特徵參數,其中j=1,2,3,4,再結合之前計算出的各層子帶的能量ENj成為紋理特徵向量如下:

Wi=[ENi.j.k,Entropyi.j.k,ASMi.j.k,DMi.j.k,coni.j.k,cori.j.k]

其中k表示分解層數。

1.3度量方法

1.3.1顏色特徵的距離度量

本文顏色特徵的距離度量採用歐氏距離法,公式如式(9)所示:

其中:xi,xj(i≠j)為圖片集中任意兩幅圖像;Eyk 、Ehk 、Ewk 分別為圖片區域的圓心、圓環和外部區域所提取的特徵;k是特徵分量;N為特徵數目;ay,ah,aw為各區域的權重,對於一般圖片而言,圖片的中心區域信息量多,而圓環部分和外部區域的信息量較少,所以本文分別取0.5,0.3,0.2代表各區域的重要程度。

1.3.2紋理特徵和形狀特徵的距離度量

2並行化圖片去重算法

2.1並行化圖片去重算法

1)本文主要使用圖片固有特徵實現達到圖片去重的目的,所以首先對圖片集{xi}提取上述特徵值,設圖片集{xi}大小為n,將其分配給T個計算單元進行處理,則時間縮短至n/T,本文中實驗取T=4。

2)對任意圖片xi,xj(i≠j)計算距離D(xi,xj),由於重複圖片所在位置具有任意性,若要找出所有重複圖片則需要遍歷整個圖片集,計算量n2,採用並行計算則計算量為n2/T。

3)遍歷相似度距離D(xi,xj),查找其中距離為0。若為0,則説明其為相同圖片,標記並且刪除後一張圖片,僅保留前一張。

2.2實驗結果

由於如果圖片為重複圖片則提取特徵值相等,則距離必然為0,故本文主要使用運行時間作為衡量該算法的重要指標,使用Matlab軟件編程實現對上述算法進行評價(注:以下時間均不包含圖片特徵的採集時間)。

本次實驗選取1000及5000張圖片進行處理,運行時間如表1所示。

按照上述算法進行5000張圖片去重時,處理時間就達到22min。如果按照上述算法對萬級、十萬級甚至百萬級圖片處理時程序運行時間不可估量,本文對上述算法進行改進。

3改進算法及實驗結果

3.1算法改進

針對上述算法主要影響運行時間的是在去重過程要遍歷整個圖片集,計算量為n2,即便採用並行處理方式,對最終結果的影響終究有限。針對此問題,本文對第2章中的算法進行改進,從圖片集中任取一張圖片x0,如果存在圖片{xi,xj}(i≠j)使得D(x0,xi)=D(x0,xj),則{xi,xj}(i≠j)有可能為重複圖片,需要進一步判斷D(xi,xj)是否為0;若不為0,則{xi,xj}(i≠j)不是重複圖片。利用這樣處理方式,在距離計算過程中計算量為n;同時在計算過程中採用並行處理,最終計算量減小為n/T,相比n2的計算量大大減小。

改進算法具體步驟如下:

1)對圖片集提取特徵值,設圖片集大小為n,將其分配給T個計算單元進行處理,則時間縮短至n/T,本文中實驗取T=4。

2)從圖片集中任取一張圖片x0,分別與其圖片集中其他圖片進行距離計算,在計算過程中採用並行處理,計算量縮短為n/T。

3)對2)中計算得到的距離D(x0,xi)進行由小到大排序,得到排序後的距離D*i(i=1,2,…,n)。本文采用快速排序法。

4)遍歷距離D*(x0,xi),查找其中相同的距離。由於在3)中已經對距離進行由小到大的排序,故每次只需要判斷D*i+1是否與D*i相同,若D*i+1與D*i相同則進行第5)步,比較完畢後繼續遍歷剩下的距離,若遍歷完成且沒有相同距離則停止。

5)設{xi,xj}(i≠j)使得D(x0,xi)=D(x0,xj),則計算D(xi,xj)之間的距離,若為0,則説明其為相同圖片,標記並且刪除xj,保留xi;若大於0,則説明{xi,xj}對x0在特徵上的相似程度一致,但並非相同圖片,兩張同時保留。

3.2查找重複圖片的改進算法與第2章原算法運行時間的對比

如果圖片量太大,第2章中對重複圖片查找算法的計算量會急劇上升,導致運行時間過長,故本次選用300,600及900張圖片分別用改進方法和第2章中方法進行重複圖片的查找,對查找時間進行對比,如表2所示。

由表2中數據可知,採用遍歷圖片集查找重複圖片的方式運算時間高於改進運算的10倍以上。同時改進運算在圖片數量增加時運算時間增長並不明顯,增長幅度僅在百分位,説明改進算法在海量圖片去重上是有效的。

3.3改進算法在不同數量級與不同重複率時間對比

分別使用萬級(1萬)、十萬級(10萬)、百萬級(100萬和500萬)級圖片量進行測試;同時每種量級的重複圖片分別佔總數的30%、60%及90%,結果如表3所示。

由表3中數據可知:1)由萬級到10萬級運行時間增長在兩倍左右,而10萬級到100萬級甚至500萬級時按照本文圖片量呈現線性關係,運行時間增長分別在10倍及50倍左右,這是由於處理數據大量增長,而實驗用機在運行速度和處理能力上有限,導致在100萬張及500萬張圖片的距離、比較等運算時處理能力不足,所以運行時間會呈現出與圖片量增長倍數相同的情況,故適當提高硬件處理能力可以減少運行時間;2)由每種數量級不同重複率下的運行時間來看,隨着重複率的升高運行時間略有下降,此情況出現是由於排序算法導致,重複圖片越多,相同距離也就越多,故排序時間也就越短,所以在大數據量時選用合適的排序算法也是影響運行時間的重要因素。

綜上所述,本文在改進算法中,從圖片集中任取一張圖片x0,分別與其圖片集中其他圖片進行距離的計算的方式相比遍歷圖片集計算距離的方式在運行時間效率此處是否應該是“運行效率”,時間上應該是減少,而不是提高吧?請明確。上提高10倍以上;同時針對不同重複率下不同數量級進行了測試,發現查詢500萬數量級中重複圖片時運算時間也僅需10min左右,去重效率大幅度提高。故本文提出的算法為大數據量的圖片快速去重工作提供了有效支撐。

4結語

面對目前數據的指數級增長,海量數據重複刪除技術的研究在解決數據存儲空間消耗大、數據備份及恢復成本高等方面具有重要的意義。本文利用圖片固有屬性特徵,提出了一種海量圖片快速並行化去重算法,使用該算法能夠快速準確地對圖片進行去重。實驗結果表明,10min左右即可處理完500萬圖片集的去重工作,這為海量圖片的去重處理提供了新的思路。同時,實驗發現在大數據量時,對距離進行排序的時間對整個去重過程有一定的影響,排序時間越短,整個去重的時間也就越短,所以如何縮短排序時間作為本文將是該快速去重技術進一步的研究方向。