本發(fā)明涉及計算機應(yīng)用及計算視覺領(lǐng)域,涉及一種基于語義場景分類的圖像自動標(biāo)注算法。
背景技術(shù):
通過圖像標(biāo)簽來管理、檢索圖像是一種常見且比較簡單有效的方式,但是互聯(lián)網(wǎng)上仍然存在著大量沒有標(biāo)注或者標(biāo)注不完全的圖像,所以設(shè)計一種有效的圖像自動標(biāo)注與分類算法是解決這個問題的關(guān)鍵技術(shù)。近年來,在圖像自動標(biāo)注問題上已存在很多的研究工作。主要的研究方法可以分為兩類:基于模型學(xué)習(xí)的方法和基于搜索數(shù)據(jù)庫的方法。
基于搜索數(shù)據(jù)庫的方法根據(jù)數(shù)據(jù)庫中已標(biāo)注的圖像的標(biāo)簽直接提供標(biāo)簽候選序列,具有簡單、有效的特點。tagprop(guillauminm,mensinkt,verbeekj,etal.tagprop:discriminativemetriclearninginnearestneighbormodelsforimageauto-annotation[c]//ieee,internationalconferenceoncomputervision.ieee,2010:309-316.)算法設(shè)計了一個度量學(xué)習(xí)模型得到一個更加有區(qū)分力度的特征表示,提高了knn方法的性能。2pknn(vermay,jawaharcv.imageannotationusingmetriclearninginsemanticneighbourhoods[m]//computervision–eccv2012.springerberlinheidelberg,2012:836-849.)算法考慮了數(shù)據(jù)集不平衡的問題,在處理后的數(shù)據(jù)平衡的子集中利用knn方法完成標(biāo)注,提高了算法效率。nmf-knn(kalayehmm,idreesh,shahm.nmf-knn:imageannotationusingweightedmulti-viewnon-negativematrixfactorization[c]//ieeeconferenceoncomputervisionandpatternrecognition.ieee,2014:184-191.)算法為每個待標(biāo)注圖像生成一個特定的生成模型完成標(biāo)注任務(wù),提升了標(biāo)注效果,但是算法復(fù)雜度高不適合實際應(yīng)用。swim(liuh,lix,zhangs.learninginstancecorrelationfunctionsformultilabelclassification[j].ieeetransactionsoncybernetics,2016,47(2):499-510.)算法則考慮了訓(xùn)練數(shù)據(jù)與測試數(shù)據(jù)的映射關(guān)系,提出了一種加權(quán)形式的knn算法,實現(xiàn)圖像標(biāo)注。
基于數(shù)據(jù)集搜索的方法主要存在兩個問題,一是忽略了標(biāo)簽共現(xiàn)的問題,從而導(dǎo)致了較低的準(zhǔn)確率,另一個是大規(guī)模數(shù)據(jù)庫條件下knn-based算法效率低下。
基于模型學(xué)習(xí)的方法中,自動圖像標(biāo)注問題可以看作多類別分類問題或者針對每個標(biāo)簽的二分類問題。svia(sunl,geh,yoshidas,etal.supportvectordescriptionofclustersforcontent-basedimageannotation[j].patternrecognition,2014,47(3):1361-1374.)算法為每個標(biāo)簽學(xué)習(xí)一個one-class的svmmodel,之后考慮標(biāo)簽之間的統(tǒng)計關(guān)系利用貝葉斯推理重新為推薦的標(biāo)簽序列計分完成標(biāo)注任務(wù)。ldmkl和sdmkl(jium,sahbih.nonlineardeepkernellearningforimageannotation.[c]//ieeeinternationalconferenceonacoustics,speechandsignalprocessing.ieee,2016:1551-1555.)算法設(shè)計了一個非線性深度核學(xué)習(xí)模型,采用one-vs-rest策略獨立的對每個標(biāo)簽學(xué)習(xí)分類器實現(xiàn)標(biāo)注任務(wù)。算法(darwishsm.combiningfireflyalgorithmandbayesianclassifier:newdirectionforautomaticmultilabelimageannotation[j].ietimageprocessing,2016,10(10):763-772.)將圖像過分割成多個區(qū)域(region),基于在圖像區(qū)域中提取的特征(regionfeature)利用貝葉斯分類器實現(xiàn)圖像標(biāo)注算法。lift(zhangml,wul.lift:multi-labellearningwithlabel-specificfeatures[j].ieeetransactionsonpatternanalysisandmachineintelligence,2015,37(1):107-120.)算法首先為每個類別標(biāo)簽構(gòu)建標(biāo)簽特定的特征,然后對每個標(biāo)簽在該標(biāo)簽特定的特征上學(xué)習(xí)分類器實現(xiàn)標(biāo)注任務(wù)。
此類方法將標(biāo)簽視為類別將標(biāo)注問題轉(zhuǎn)化為分類問題,當(dāng)數(shù)據(jù)集標(biāo)簽數(shù)量巨大時,則意味著巨大的分類輸出空間,從而導(dǎo)致此類方法不再適合。算法lcmkl(guy,qianx,liq,etal.imageannotationbylatentcommunitydetectionandmultikernellearning[j].ieeetransactionsonimageprocessingapublicationoftheieeesignalprocessingsociety,2015,24(11):3450.)采用fastunfoldingalgorithm算法將標(biāo)簽硬分類,并對不同類別訓(xùn)練mkl分類器,緩解了基于模型學(xué)習(xí)的算法不適合標(biāo)簽個數(shù)多的數(shù)據(jù)集的問題,但是由于采用硬分類算法忽略了標(biāo)簽屬于多個類別的情況,從而導(dǎo)致標(biāo)簽分類不合理、樣本映射不準(zhǔn)確,算法效果較差。
針對在圖像標(biāo)注問題中沒有考慮標(biāo)簽與語義場景間的映射關(guān)系以及存在的標(biāo)簽硬分類問題,本發(fā)明基于非負矩陣分解提出了一種標(biāo)簽的語義場景劃分方法,實現(xiàn)了標(biāo)簽與語義場景間的概率映射。繼而利用場景分類,將待標(biāo)注樣本映射到場景相關(guān)的樣本子集中采用knn(knearestneighbor)方法完成標(biāo)注。由于本方法在樣本場景相關(guān)的樣本集合中利用knn完成標(biāo)注,這不僅提升了knn算法效率,也減少了噪音的干擾,提高了標(biāo)注效果。再者,由于場景個數(shù)遠小于標(biāo)簽個數(shù),從而解決了基于模型學(xué)習(xí)的方法不適合標(biāo)簽數(shù)量龐大的數(shù)據(jù)集的問題。
技術(shù)實現(xiàn)要素:
針對在圖像標(biāo)注問題中沒有考慮標(biāo)簽與語義場景間的映射關(guān)系以及存在的標(biāo)簽硬分類問題,本發(fā)明提出了一種基于語義場景分類的圖像自動標(biāo)注方法。首先,根據(jù)訓(xùn)練集中的標(biāo)簽信息利用nmf-based(基于非負矩陣分解的)方法進行場景檢測,得到標(biāo)簽屬于每個場景的概率。然后依據(jù)訓(xùn)練集中樣本的標(biāo)簽信息,將樣本以概率的方式映射到對應(yīng)的場景。繼而,將得到的場景視為不同的類別信息,場景內(nèi)的訓(xùn)練集樣本作為訓(xùn)練數(shù)據(jù),訓(xùn)練場景分類器。最后根據(jù)訓(xùn)練而來的分類器,將測試集中的樣本進行場景分類,在得到的top-2最相關(guān)場景對應(yīng)的訓(xùn)練子集上利用knn方法完成標(biāo)注。
本發(fā)明技術(shù)方案如下:
本發(fā)明實施例提供一種基于語義場景分類的圖像自動標(biāo)注方法及框架。
1、特征提取。
對圖像提取多種不同的特征,例如gist(512d),densehue(100d),harrishue(100d),densesift(1000d),harrissift(1000d)。
2、構(gòu)建標(biāo)簽關(guān)系圖、場景檢測和場景個數(shù)確定。
a、構(gòu)建標(biāo)簽關(guān)系圖
利用公式(1)建立標(biāo)簽之間的關(guān)系圖c:
n(ci,cj)表示訓(xùn)練集中同時標(biāo)注有標(biāo)簽ci和標(biāo)簽cj的樣本數(shù),n(cj)表示標(biāo)注有標(biāo)簽cj的樣本數(shù)。cij表示在標(biāo)注有標(biāo)簽cj的樣本中,標(biāo)注有標(biāo)簽ci的樣本所占比例。
b、場景檢測
依據(jù)關(guān)系圖c和公式(2)建立非負矩陣分解模型,利用更新規(guī)則(3)和公式(4)更新公式(2),收斂后利用公式(5)歸一化w。
wswt=(wd-1)(dsdt)(wd-1)t(5)
c、場景個數(shù)確定
通過設(shè)定不同的場景個數(shù)k,運行b中所述方法。將得到的w矩陣0/1化(將w每行中最大值設(shè)定為1,其他設(shè)為0),再根據(jù)公式(6)計算社區(qū)模塊性。
其中wi,j表示節(jié)點i和節(jié)點j之間的連接權(quán)重,
3、映射樣本到場景
給定訓(xùn)練樣本{xi,yi}(其中xi是該樣本的特征向量,yi表示該樣本的標(biāo)簽向量,yi∈r1*m,如果該樣本標(biāo)注有第k個標(biāo)簽,則yik=1),根據(jù)每個樣本的標(biāo)簽信息映射到各個場景。本發(fā)明假設(shè)圖像的每個標(biāo)簽對圖像屬于哪個場景獨立起作用,并基于此假設(shè)提供了一種映射樣本到場景的策略,即可以如下(7)計算樣本i屬于場景sk的概率:
其中,wk表示w的第k列,w為步驟2中b小節(jié)計算得到。
從而對于訓(xùn)練集{x,y},利用公式(8)得到所有樣本的場景信息:
p=v*(y*w)(8)
其中,p∈rn1*k,pik表示樣本i屬于場景sk的概率,v∈rn1*n1是一個對角陣來歸一化(y*w),
其中pi為p的第i行。則訓(xùn)練集由{x,y}轉(zhuǎn)為{x,y,z},其中,如果zki=1,則表示第i個樣本所屬場景為sk。
4、分類器訓(xùn)練
針對多特征問題本發(fā)明采用了基于差分de(查分進化)和elm(極限學(xué)習(xí)機)的加權(quán)投票法,如下:
本發(fā)明采用加權(quán)投票法線性組合多個特征的分類結(jié)果,作為最終分類結(jié)果,即:
其中cv表示測試集的第v個視角特征對應(yīng)的elm分類器的分類結(jié)果,即:cv=gelm(xv),θv表示第v個特征對應(yīng)分類結(jié)果的權(quán)重,其中θ∈rv*1。本發(fā)明采用5-fold交叉驗證的方式確定這里的權(quán)重θ,構(gòu)建如下目標(biāo)函數(shù):
采用de算法優(yōu)化公式(11)求解上述參數(shù)θ,z為步驟3得到的場景類別信息。
5、對未標(biāo)注圖像進行標(biāo)注。
對未標(biāo)注圖像提取同樣的特征信息,并輸入到4中訓(xùn)練的分類器里,得到分類結(jié)果。在最相關(guān)的兩個場景內(nèi)的訓(xùn)練集樣本上運行knn-based算法,得到預(yù)測標(biāo)簽。下面是本步驟所使用的標(biāo)注算法偽代碼。
本發(fā)明的有益效果為:
由于本方法在樣本場景相關(guān)的樣本集合中利用knn完成標(biāo)注,這不僅提升了knn算法效率,也減少了噪音的干擾,提高了標(biāo)注效果。再者,由于場景個數(shù)遠小于標(biāo)簽個數(shù),從而解決了基于模型學(xué)習(xí)的方法不適合標(biāo)簽數(shù)量龐大的數(shù)據(jù)集的問題。
附圖說明
圖1算法流程圖;
圖2場景檢測損失函數(shù)變化曲線;
圖3基準(zhǔn)實例iaprtc12模塊性變化曲線;
圖4基準(zhǔn)實例iaprtc12不同最鄰近樣本個數(shù)下的效果曲線;(a)準(zhǔn)確率、(b)召回率、(c)f1值、(d)平均準(zhǔn)確率;
圖5基準(zhǔn)實例iaprtc12不同隱藏節(jié)點個數(shù)下的效果曲線;(a)準(zhǔn)確率、(b)召回率、(c)f1值、(d)平均準(zhǔn)確率。
具體實施方式
所論述的具體實施例僅用于說明本發(fā)明的實現(xiàn)方式,而不限制本發(fā)明的范圍。下面結(jié)合附圖對本發(fā)明的實施方式進行詳細說明。
本發(fā)明在基準(zhǔn)實例iaprtc12的實施例如下:
符號表示:訓(xùn)練集合{x,y},測試集合{x′},x表示樣本特征矩陣,y表示訓(xùn)練集標(biāo)簽信息,x′表示測試集特征矩陣。
(1)特征提取
利用基準(zhǔn)實例iaprtc12已存在的gist(512d),densehue(100d),harrishue(100d),densesift(1000d),harrissift(1000d)五種特征作為本本實施例的特征{x}。
(2)場景檢測示例
根據(jù)公式(1)和標(biāo)簽矩陣y構(gòu)建標(biāo)簽關(guān)系圖c,依據(jù)公式(2)和關(guān)系矩陣c建立非負分解模型,利用公式(3)和公式(4)更新所建模型,并利用公式(5)歸一化所得w。圖2展示了算法在基準(zhǔn)實例iaprtc12上的損失值變化曲線;圖3給出了模塊性標(biāo)準(zhǔn)在k=3,…,15時的取值情況。依據(jù)圖3本實施例選取k=9作為該基準(zhǔn)實例的場景個數(shù),并將k=9時公式(2)得到的w作為映射樣本的依據(jù)。
(3)樣本映射到場景
依據(jù)上述步驟得到的w,根據(jù)公式(8)和公式(9)將樣本映射到對應(yīng)的場景中,從而訓(xùn)練集成為{x,y,z},其中,如果zki=1,則表示第i個樣本所屬場景為sk。
(4)分類器訓(xùn)練
將上一步驟得到的{x,z},依據(jù)公式(10)和公式(11),訓(xùn)練分類器。
(5)對未標(biāo)注圖像進行標(biāo)注。
對于測試樣本x∈x′,首先依據(jù)(4)步驟訓(xùn)練的分類器找到最相關(guān)的兩個場景,在這個兩個相關(guān)場景內(nèi)的樣本子集中利用knn算法完成標(biāo)注。圖4展示了基準(zhǔn)實例對于最鄰近樣本個數(shù)取值為10,20,…,150時,算法的準(zhǔn)確率、召回率、f1值、平均準(zhǔn)確率的變化曲線。圖5展示了基準(zhǔn)實例對于極限學(xué)習(xí)機隱藏層節(jié)點個數(shù)取值100,200,…,1500時的效果變化曲線。