本發(fā)明涉及圖像檢索,尤其是涉及到一種質(zhì)量保證的漸進式并行圖像檢索方法。
背景技術(shù):
圖像設(shè)備(如數(shù)碼相機、手機)的普及,使得人們可以輕松地獲取高分辨率的圖像。數(shù)據(jù)驅(qū)動的圖像分析和編輯方法變得越來越受歡迎,然而圖像數(shù)據(jù)的爆炸性增長也帶來了許多挑戰(zhàn),其中之一就是如何幫助用戶在海量的圖像數(shù)據(jù)庫中檢索出期望的圖像。傳統(tǒng)的通過文本標(biāo)簽來查詢是常用的一種方式,然而這種方式不僅需要為每一張圖像打上標(biāo)簽,而且不太準(zhǔn)確,不能很好地表達用戶真實的想法。因此人們傾向于通過各種線索來基于內(nèi)容查詢,比如樣例圖、粗略模糊的圖像顏色塊,簡單的輪廓草圖。
基于內(nèi)容的圖像檢索是一個很有價值同時又非常具有挑戰(zhàn)的研究(如yongr,huangts,changsf.imageretrieval:currenttechniques,promisingdirections,andopenissues[j].journalofvisualcommunication&imagerepresentation,1999,10(1):39-62.)早期學(xué)者們用樣例圖像作為查詢的線索(如hiratak,katot.querybyvisualexample,contentbasedimageretrieval[c],advancesindatabasetechnology-edbt'92,internationalconferenceonextendingdatabasetechnology,vienna,austria,march23-27,1992,proceedings.1992:56-71.)。但是用戶往往無法提供一個合適的足夠表達他們要表達的意思的圖像,因為這本身就是用戶搜索的目的。因此更自然的是讓用戶通過繪制他想要搜索的結(jié)果的輪廓,這也就是基于輪廓草圖的圖像檢索(如bimboad,palap.imageretrievalbyelasticmatchingofusersketches[j].patternanalysis&machineintelligenceieeetransactionson,1997,19(2):121-132.)。雖然基于草圖的方法讓用戶不必關(guān)心精確度、方向、尺寸、紋理和顏色等,其他一些學(xué)者提出了多條件的包括基于內(nèi)容和文本不同程度混合的方法(如stert,pfeifferm,bauckhagec.combiningspeechandhapticsforintuitiveandefficientnavigationthroughimagedatabases[c],internationalconferenceonmultimodalinterfaces.acm,2003:180-187)。kaster等人描述了一個多模式系統(tǒng),包括用手勢和語音來查詢和交互反饋。
雖然多線索結(jié)合的方法已經(jīng)引起許多學(xué)者的注意,這種方法可以有效地提高準(zhǔn)確率,但是這仍然帶來另一個問題,那就是需要消耗額外的時間來匹配每一種線索。除此之外,針對于海量的圖像數(shù)據(jù)庫,性能也是不容忽視的另一個問題。一些學(xué)者選擇將關(guān)鍵的步驟進行并行處理,比如用gpu,但是圖像數(shù)據(jù)庫一般是分布式存儲在多臺機器上,這種集中式的機制將導(dǎo)致巨大的數(shù)據(jù)傳輸,從而可能使得網(wǎng)絡(luò)崩潰或者是很高的傳輸時間代價。mapreduce框架的出現(xiàn),提供了另一種方式的并行化處理。mapreduce是一種最初由谷歌提出來的并行計算框架(deanj,ghemawats.mapreduce:simplifieddataprocessingonlargeclusters.[j].communicationsoftheacm,2008,51(1):107-113.),用來通過一個普通機器集群來處理海量的數(shù)據(jù)。受高級函數(shù)式編程語言的啟發(fā),mapreduce提供了一個抽象的方法,然后讓程序員自己去實現(xiàn)“mapper”(特定的記錄的計算)和“reducer”(特定的結(jié)果的聚合)。這個框架將透明地在集群上執(zhí)行其它的步驟,包括調(diào)度、故障處理等。這種方式被成功地應(yīng)用到許多應(yīng)用中,比如各種各樣的計算機視覺任務(wù)(如moised,shestakovd,gudmundssong,etal.indexingandsearching100mimageswithmap-reduce[c],acmconferenceoninternationalconferenceonmultimediaretrieval.acm,2013:17-24.),場景渲染(如stuartja,chenck,makl,etal.multi-gpuvolumerenderingusingmapreduce[c],the,acminternationalsymposium.2010:841-848.)以及醫(yī)學(xué)領(lǐng)域(如markonisd,schaerr,eggeli,etal.usingmapreduceforlarge-scalemedicalimageanalysis[c],ieeesecondinternationalconferenceonhealthcareinformatics,imagingandsystemsbiology.2012:1-1)等。
目前市場上存在的圖像檢索方法存在著各種各樣的問題,實用性較低,并且無法保證檢索結(jié)果的圖像質(zhì)量。主要的有三個原因:1、文本或單一的圖像特征無法準(zhǔn)確地描述一個圖像,不能夠很好地反映用戶的真實想法。2、多線索的檢索中每種圖像特征線索的查詢都是比較耗時的過程,多線索融合會導(dǎo)致查詢性能低,因此變得不實用。3、沒有對檢索結(jié)果進行圖像質(zhì)量的保證,使得無法很好地應(yīng)用于進一步的圖像分析和編輯任務(wù)。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于解決現(xiàn)有圖像檢索中存在的兩個難點問題,提供能在保證檢索性能的前提下,檢索結(jié)果更準(zhǔn)確,更符合用戶意圖,質(zhì)量更高,以便用于進一步數(shù)字內(nèi)容創(chuàng)作的一種質(zhì)量保證的漸進式并行圖像檢索方法。
本發(fā)明包括以下步驟:
1)數(shù)據(jù)準(zhǔn)備;
2)標(biāo)簽過濾;
3)對象清晰度過濾;
4)對象可分離度過濾;
5)場景元素分割;
6)輪廓匹配。
在步驟1)中,所述數(shù)據(jù)準(zhǔn)備的具體方法可為:對每張圖像通過眾包等方式打上5個標(biāo)簽,將圖像數(shù)據(jù)和標(biāo)簽數(shù)據(jù)存儲在hadoop分布式文件系統(tǒng)上,所述hadoop分布式文件系統(tǒng)簡稱為hdfs。
在步驟2)中,所述標(biāo)簽過濾的具體方法可為:通過map操作將查詢文本分發(fā)給每個集群機器,讓它們在本地的文件系統(tǒng)中進行標(biāo)簽匹配,通過reduce操作收集所有匹配的候選圖像,返回圖像文件名,再通過map操作將用戶輸入的查詢輪廓和候選圖像文件名分發(fā)給每個集群機器。
在步驟3)中,所述對象清晰度過濾的具體方法可為:計算每張候選圖像的顯著性值,并保留每張候選圖片中前s個面積最大的顯著性對象;對每個顯著性對象從三分點、對角線準(zhǔn)則和視覺平衡三個美學(xué)標(biāo)準(zhǔn)來評價,過濾掉不符合美學(xué)標(biāo)準(zhǔn)的對象。
在步驟4)中,所述對象可分離度過濾的具體方法可為:通過每個顯著性對象邊緣的梯度信息判斷其邊界是否明顯,通過顯著性對象周圍區(qū)域聚類的分塊數(shù)量衡量其背景的復(fù)雜性,過濾掉邊界清晰度低或背景復(fù)雜的對象。
在步驟5)中,所述場景元素分割的具體方法可為:對于每個剩余的圖像,通過grab-cut算法將場景元素分割出來,并且對高顯著性區(qū)域進行形態(tài)學(xué)擴張。
在步驟6)中,所述輪廓匹配的具體方法可為:衡量用戶繪制的輪廓和場景元素輪廓之間的一致性,首先將用戶繪制的輪廓通過形態(tài)學(xué)閉包運算轉(zhuǎn)換成封閉的區(qū)域,然后用形狀上下文法來衡量兩個輪廓的一致性。
由于針對海量圖像素材庫并且步驟2)~6)都是計算量較大的任務(wù),因此將整個流程都通過mmapreduce框架實現(xiàn)并行化,以提高檢索性能。
本發(fā)明針對現(xiàn)有圖像檢索方法存在的檢索不準(zhǔn)確,無法符合用戶預(yù)期,且針對海量圖像數(shù)據(jù)庫檢索性能低的問題,提出了一種質(zhì)量保證的漸進式并行圖像檢索方法,并且可以保證檢索結(jié)果的圖像質(zhì)量。本發(fā)明算法明確、結(jié)果魯棒、檢索結(jié)果準(zhǔn)確且性能較高。該方法在產(chǎn)業(yè)化后可以極大的圖像檢索的效率和質(zhì)量,同時檢索結(jié)果質(zhì)量高,可用于進一步的數(shù)字內(nèi)容創(chuàng)作,促進數(shù)字內(nèi)容創(chuàng)作市場發(fā)展。
附圖說明
圖1為本發(fā)明實施例整體流程圖。
圖2為本發(fā)明實施例顯著性對象清晰度過濾流程圖。
圖3為本發(fā)明實施例顯著性對象可分離度過濾流程圖。
具體實施方式
一種質(zhì)量保證的漸進式并行圖像檢索方法:首先從在線分享網(wǎng)站或者眾包獲取圖像以及一組描述圖像特征的標(biāo)簽,構(gòu)建圖像素材數(shù)據(jù)庫,然后根據(jù)用戶輸入的查詢文本與圖像標(biāo)簽進行匹配,進行文本過濾。對標(biāo)簽匹配的候選圖像進行顯著性過濾,計算圖像顯著性值,進一步地獲得圖像的顯著性區(qū)域并保留每張候選圖片中前s個顯著性對象。然后對每個顯著性對象從三分點,對角線準(zhǔn)則,視覺平衡三個美學(xué)標(biāo)準(zhǔn)來評價,過濾掉不符合美學(xué)標(biāo)準(zhǔn)閾值的部分;接著計算每個顯著性對象的邊界可分離度并過濾掉可分離度低的對象,對剩余的對象擴張周圍區(qū)域并計算此區(qū)域的分塊數(shù)量數(shù)量越大表示復(fù)雜度越高,然后過濾掉復(fù)雜度過高的圖像(分塊數(shù)量大于b)。對于每個剩余的圖像,將場景元素分割出來,并且對高顯著性區(qū)域進行形態(tài)學(xué)擴張。最后衡量用戶繪制的輪廓和場景元素輪廓之間的一致性。然后將最符合用戶意圖的結(jié)果返回。具體流程參見圖1~3。由于針對海量圖像素材庫并且檢索的線索大都是基于圖像內(nèi)容,計算量大耗時多,所以將整個流程都通過mapreduce框架實現(xiàn)并行計算,以提高檢索性能。
本發(fā)明實施的關(guān)鍵有兩點:質(zhì)量保證的漸進式圖像檢索流程的設(shè)計、基于mapreduce的算法并行化。下面具體介紹關(guān)鍵的實現(xiàn)細節(jié):
1、質(zhì)量保證的漸進式圖像檢索流程設(shè)計
通過文本標(biāo)簽來查詢是最簡單,效率最高的方式。但是這種方式需要為每一張圖像打上標(biāo)簽,并且不能準(zhǔn)確地對一個圖像的特征如顏色、輪廓等進行描述,因此基于內(nèi)容查詢是比較合適的方式,比如樣例圖、粗略模糊的圖像顏色塊,簡單的輪廓草圖。樣例圖存在一個問題就是用戶往往很難找到合適的包含預(yù)期特征的圖像。粗略模糊的預(yù)期圖像顏色被人們作為一個替代的方法,然而這種方法缺少形狀描述能力,因此很難搜索出滿足用戶預(yù)期形狀的圖像?;诓輬D的方法提供了一種更為簡單和快速的檢索用戶預(yù)期形狀的特定圖像的方式,然而基于草圖的檢索的成功很大程度上依賴于用于查詢的輪廓草圖的質(zhì)量。因此僅僅使用上述的某種方法,人們總是會在某些情況下很難準(zhǔn)確地表達他們的意愿。因此多線索結(jié)合是一種比較有效的方式。本發(fā)明利用文本查詢、圖像顯著性、圖像復(fù)雜度、輪廓形狀等特征作為查詢的線索,并依此設(shè)計了一種漸進式的查詢策略。
注意到在許多應(yīng)用中尤其是數(shù)字內(nèi)容創(chuàng)作,檢索得到的結(jié)果不僅要求準(zhǔn)確而且要有較高的質(zhì)量。檢索得到的元素應(yīng)該足夠的清晰,因此它通常是一幅圖像的顯著性區(qū)域。而且背景也要較為清楚這樣前景才能夠更好地被分離出來。基于這些觀察,采用一種漸進式策略:從最快的文本匹配開始,以最耗時的輪廓匹配結(jié)束。首先通過用戶輸入的查詢文本和圖像標(biāo)簽比較從數(shù)據(jù)庫中找出候選圖像。然后這些候選圖像通過一系列的質(zhì)量過濾,排除那些不適合用于進一步創(chuàng)作的。最后,使用grab-cut算法分割出場景元素,然后用形狀上下文方法在用戶草圖和候選場景元素輪廓之間執(zhí)行輪廓匹配,并返回給用戶最匹配的前n個結(jié)果。這種策略的優(yōu)勢主要有兩方面:(1)提前迅速地排除許多不適合的候選圖片,從而大大地提高了系統(tǒng)的性能和可擴展性;(2)可以得到高質(zhì)量的檢索結(jié)果,以便用于進一步的數(shù)字內(nèi)容創(chuàng)作。
在許多應(yīng)用中,尤其是在數(shù)字內(nèi)容創(chuàng)作領(lǐng)域,檢索的結(jié)果不僅要求準(zhǔn)確而且要高質(zhì)量。也就是檢索到的元素要足夠清晰,因此它通常是圖像中顯著的部分;背景應(yīng)足夠干凈以便前景元素可以很容易分離出,等等。將這些要求分成了兩類標(biāo)準(zhǔn):對象清晰度和對象可分離度。
對象清晰度
注意到,在原始圖像中顯著的對象通常有更高的可能性是明確的。因此,使用一種常見的顯著性檢測方法來計算圖像的顯著性,然后收集那些由顯著性值大于一個給定的閾值st的連續(xù)像素組成的顯著性對象ok。對于每個高顯著性區(qū)域,根據(jù)以下公式來給定一個顯著性得分,以此來反應(yīng)它在圖像中的顯著性程度:
其中nk是這個顯著性對象ok所包含的像素個數(shù),si是像素pi的顯著性值。根據(jù)顯著性得分來排序圖像的高顯著性區(qū)域,,然后選取前k個區(qū)域(在的實現(xiàn)中k=3)用于進一步的處理。注意到,在由專業(yè)人士拍攝的圖像中,通常這些顯著性對象會符合一定的美學(xué)組合規(guī)則。雖然一般用戶可能不遵循這些規(guī)則,但他們也往往把這些顯著的對象放在一些顯眼的地方(比如中心位置)。在的算法中,考慮了三種常見的組合規(guī)則。
(1)三分法則
三分法則認為圖像被兩條等分的空間水平線和兩條這樣的垂直線分成了9個相等的部分。顯著性對象偏向于被放置在由這些線條組成的交叉點(能量點)或者圖像的中心位置。定義這條準(zhǔn)則的美學(xué)得分為顯著性對象的中心位置到四個能量點和圖像中心的最小歸一化距離:
(2)對角線法則
除了三分線,圖像對角線(能量線)也有美學(xué)意義。重要的元素偏向于沿著這些對角線放置,并且兩個顯著性對象的連線也應(yīng)該沿著其中一條對角線。為了計算顯著性對象om的相關(guān)能量,首先找出這個對象與圖像中其它顯著性對象on的連線lmn。然后對角線能量edia被定義為這些連線到兩條對角線l1和l2的最小距離:
其中da(lmn,li)=1-|(lmn·li)|是lmn和li之間的角距離,由它們之間夾角的余弦值來定義。de(lmn,li)是lmn和li之間的歐式距離,由它們的中點之間的距離來定義。
(3)視覺平衡
顯著性對象均勻分布在中心周圍以達到視覺平衡。使用所有顯著性對象的重心到圖像中心的歸一化距離作為視覺平衡值:
其中cm=∑inici表示所有顯著性對象oi的面積加權(quán)中心,ni是這個顯著性對象oi所包含的像素個數(shù),ci則是這個顯著性對象的中心位置。
對于每一個顯著性對象,計算由三種組合規(guī)則對應(yīng)的得分,并將這三個得分的最小值作為這個顯著性對象的美學(xué)得分eaes:
eaes=min(e3rd,edia,ebal)
通過以上公式計算的美學(xué)得分,得分越高,說明越不符合美學(xué)標(biāo)準(zhǔn)??紤]到圖像來源的多樣性,通過設(shè)置一個更大的閾值來對審美標(biāo)準(zhǔn)采取相對寬松的約束。當(dāng)一個顯著性對象的美學(xué)得分eaes>0.9將被過濾掉。
對象可分離度
通常需要將前景對象與背景分開以便于進一步的編輯。具有清晰的邊界的對象更容易被分離出來,并且被復(fù)雜的背景所環(huán)繞的對象更難被分割出來。首先計算感興趣的顯著性對象ok的包圍矩形,然后這個包圍矩形被進一步擴大1.5倍。從這個矩形的四個角開始,往里泛洪收集一個所有像素的顯著性值都小于閾值α·st(在的實現(xiàn)中α=1.1)的連續(xù)區(qū)域,即“周圍背景區(qū)域”b。
評估對象的邊界清晰度的基本思想是首先識別所有潛在的邊界像素p∈b,這些像素都對應(yīng)一個置信值cp。對象邊界置信值被定義為這些置信值的歸一化和:
其中nb=|b|,即邊界像素個數(shù)。econ<0.3的對象則被過濾掉。通過非極大值抑制算子,圖像i中的局部最大值標(biāo)記為潛在的邊界像素。具體的,圖像i通過一個二維的二階偏微分高斯卷積核卷積,當(dāng)像素滿足以下條件則被標(biāo)記為邊界像素:
其中*表示卷積,
是一個二維的高斯函數(shù),
是被檢測到邊緣的方向法線。而邊界像素p對應(yīng)的置信值定義為:
cp=|▽(g*i)|
同時還注意到清晰的背景通常由大的均勻區(qū)域組成。因此,使用一個標(biāo)準(zhǔn)的分割算法來分割圖像,并根據(jù)區(qū)域數(shù)nseg來判別對象包圍背景的復(fù)雜度。區(qū)域數(shù)大于10的對象將被過濾掉。
2、基于mapreduce的算法并行化
多線索結(jié)合的檢索方法可以有效地提高準(zhǔn)確率,但是這需要消耗額外的時間來匹配每一種線索,導(dǎo)致可用性與用戶體驗度降低。一些學(xué)者選擇將關(guān)鍵的步驟進行并行處理比如用gpu,但是圖像數(shù)據(jù)庫一般是分布式存儲在多臺機器上,這種集中式的機制將導(dǎo)致巨大的數(shù)據(jù)傳輸,從而可能使得網(wǎng)絡(luò)崩潰或者是很高的傳輸時間代價。
基于這些問題,提出了一種基于mapreduce框架下的層級的多線索檢索方法——一種質(zhì)量保證的漸進式并行圖像檢索方法,來達到高性能的檢索。首先通過文本標(biāo)簽、顯著性特征、美學(xué)得分、對象邊界可分離度和背景噪聲來篩選圖像,最后執(zhí)行耗時的輪廓匹配以找到所需的結(jié)果。所有的這些步驟都通過mapreduce框架來計算。
整個處理流程分成兩階段:階段#1獲取圖像標(biāo)簽與查詢文本相匹配的候選圖像;階段#2處理剩余的任務(wù)包括顯著性過濾、美學(xué)得分計算、顯著性對象可分離度和背景復(fù)雜度過濾、顯著性場景元素分割和輪廓匹配。每個階段都包含一個map和reduce模塊。
每個圖像都對應(yīng)一個標(biāo)簽文件用來存儲描述這個文件用的一系列標(biāo)簽。將圖像數(shù)據(jù)和標(biāo)簽文件同時存儲在hdfs上。
階段#1:這是一個只有map的作業(yè),每個節(jié)點被分配一個任務(wù)來判斷是否有某個圖像的標(biāo)簽與查詢文本相匹配,如果有匹配的則返回標(biāo)簽對應(yīng)的圖像文件名。具體見算法1所述。
算法1:獲取圖像標(biāo)簽與查詢文本匹配的候選圖像
階段#2:在這個階段,首先計算輸入圖像的顯著性值并檢測顯著性區(qū)域,然后過濾出那些滿足質(zhì)量標(biāo)準(zhǔn)的顯著性區(qū)域,然后分割出顯著性區(qū)域從而獲得邊界輪廓;最后計算顯著性區(qū)域與用戶繪制的輪廓的匹配一致性得分,并將最匹配的結(jié)果返回給用戶。具體的見算法2所述。
算法2:從候選圖像中判別出滿足質(zhì)量標(biāo)準(zhǔn)和匹配用戶輪廓的前n個結(jié)果