白茹意 郭小英 耿海軍 賈春花
(山西大學(xué)軟件學(xué)院 山西 太原 030013)
抽象繪畫是由繪畫者通過其主觀思想,用點(diǎn)、線、面、顏色、肌理的組合視覺形式來表達(dá)的,通常被理解為不描述自然的藝術(shù)[1]。抽象畫中通過色彩,圖像的組合來表達(dá)人內(nèi)心熱烈的情感,被稱為“熱抽象”;不表達(dá)情感,而是通過圖形和色彩的組合來表達(dá)結(jié)構(gòu),被稱為“冷抽象”。如圖1所示。本文的研究包括冷抽象和熱抽象。當(dāng)創(chuàng)作一幅抽象畫時,藝術(shù)家會根據(jù)他們的審美觀念,做出正確的方向選擇,但是對于非專業(yè)領(lǐng)域的觀賞者來說,在沒有明確提示的情況下,抽象畫(特別是冷抽象)的正確懸掛方向是不明顯的。
圖1 抽象畫示例
心理學(xué)研究[2-5]表明繪畫方向是一個與審美評價有關(guān)系的因素,抽象繪畫的原始懸掛方向更易于獲得較高的審美評價,即專業(yè)的藝術(shù)家或非專業(yè)的觀賞者對正確方向的欣賞程度遠(yuǎn)遠(yuǎn)高于其他懸掛方向的審美程度。因此,在沒有明確提示的情況下,自動識別抽象畫的正確懸掛方向是十分必要的。
近年來,隨著圖像處理技術(shù)的發(fā)展,涌現(xiàn)出很多關(guān)于圖像方向檢測算法的研究。Safonov等[6]在假設(shè)圖像下半部分的紋理比其他區(qū)域的紋理多的情況下,使用AdaBoost算法判斷戶外圖像的方向。Lumini等[7]對6 000多幅真實(shí)照片方向進(jìn)行自動檢測,采用的特征包括顏色矩陣、哈里斯角點(diǎn)、相位對稱和邊緣方向直方圖,并使用Borda count組合不同的分類器,包括支持向量機(jī)、AdaBoost、子空間分類器。Lyu[8]從多尺度多方向圖像分解(如小波)中收集了一組圖像統(tǒng)計(jì)信息,采用多二進(jìn)制支持向量機(jī)分類器確定了18 040幅自然圖像的方向。Cingovska等[9]提出了一種自動檢測圖像方向的算法,對5 400幅用戶圖像進(jìn)行方向檢測,其先根據(jù)圖像所包含的語義線索(如天空、光線或人臉的存在和不存在),將圖像按層次預(yù)先分類為不同的組,再對每組進(jìn)行獨(dú)立的SVM分類器訓(xùn)練。Zhang等[10]分別對室內(nèi)外圖像的朝向進(jìn)行了估計(jì),實(shí)驗(yàn)結(jié)果表明室外圖像的準(zhǔn)確率(85%)遠(yuǎn)遠(yuǎn)高于室內(nèi)圖像(48%)。Borawski等[11]提出一種確定圖像方向的方法,該方法對圖像降尺度,定位包含天空的圖像子部分,計(jì)算其絕對頻譜的對數(shù),將得到的表示轉(zhuǎn)換為極坐標(biāo),確定圖像的方向,實(shí)驗(yàn)發(fā)現(xiàn)在100幅實(shí)驗(yàn)圖像中僅有6幅失敗。Ciocca等[12]結(jié)合低層特征和人臉,利用人臉方向來識別圖像方向。Luo等[13]在貝葉斯框架中使用低層和語義特征,在此基礎(chǔ)上開發(fā)了一種概率方法來研究圖像的方向。Ciocca等[14]提出了一種基于LBP-LRR的圖像方向自動檢測方法。該算法已經(jīng)被廣泛應(yīng)用于超過10萬幅的場景圖像方向檢測中。此外,還總結(jié)了目前最先進(jìn)的一些圖像方向檢測方法及其準(zhǔn)確率。Hollitt等[15]使用圖像的功率譜密度估計(jì)攝像系統(tǒng)的滾動方向,找到圖像中大量的垂直紋理,并利用Hough變換確定圖像中線的方向。Cao等[16]設(shè)計(jì)了一個局部旋轉(zhuǎn)算子來計(jì)算最優(yōu)輸出和局部方向,作為圖像方向估計(jì)的低層特征,并引入了一個特征篩選器來篩選大量無用的低級特征。實(shí)驗(yàn)結(jié)果表明,該方法對全局圖像定位具有快速、可靠等優(yōu)點(diǎn)。Swami等[17]通過使用低水平視覺特征,采用CNN對大量圖像進(jìn)行方向檢測,結(jié)果表明,該方法顯著優(yōu)于目前最先進(jìn)的文獻(xiàn)[14]方法,其準(zhǔn)確率達(dá)95%;同時還展示了圖像局部區(qū)域的可視化,分析了哪些區(qū)域會影響分類結(jié)果。
以往對方向檢測的研究主要針對自然和場景圖像,且識別率都比較滿意。然而,對于抽象畫圖像而言,其內(nèi)容和語義相對于自然圖像比較含蓄、不明顯,因此對抽象畫的方向檢測會比較困難,近幾年的相關(guān)工作也比較少。Liu等[18]基于抽象藝術(shù)理論,運(yùn)用樸素貝葉斯和BP神經(jīng)網(wǎng)絡(luò)對抽象畫的方向進(jìn)行分類,其平均分類準(zhǔn)確率僅為74%。
為了提高抽象畫的方向檢測準(zhǔn)確率,本文采用一種基于非旋轉(zhuǎn)不變等價LBP(nri-uniform-LBP)描述符和AdaBoost算法的自動檢測方法,將抽象畫分為“向上”(“up”)和“不向上”(“non-up”)兩類。本文框架如圖2所示。
圖2 本文框架
局部二值模式(Local Binary Pattern,LBP)是由Ojala等[19]在1994年提出的一種用來描述圖像局部紋理特征的算子。由于具有對光照條件的不變性和對圖像噪聲的魯棒性,其在很多不同領(lǐng)域都有廣泛應(yīng)用[21],例如:人臉識別、多目標(biāo)跟蹤和場景分類等。上述應(yīng)用主要利用的是LBP的旋轉(zhuǎn)不變特性。而本文則利用LBP的旋轉(zhuǎn)特性實(shí)現(xiàn)抽象繪畫的方向檢測。
LBP描述符[22]被定義為圖像中每個像素周圍的局部模式的直方圖。這個模式是通過某個像素的灰度與其鄰域像素的灰度進(jìn)行閾值化來計(jì)算的。給定鄰域半徑R和像素個數(shù)P(鄰域R上的采樣點(diǎn)數(shù)),每個像素的LBPR,P計(jì)算如下:
(1)
式中:gc是當(dāng)前像素的灰度級;gn是其領(lǐng)域的灰度級;s(x)是一個符號函數(shù)。
(2)
圖3所示為P=8、R=1時某像素的LBPR,P碼的形成過程。設(shè)定3×3的正方形窗口,把窗口中心像素的灰度值作為閾值,將該值與其8鄰域像素的灰度值進(jìn)行比較,若鄰域像素的灰度值大于中心點(diǎn)像素,則將該像素點(diǎn)的值置1,反之置0,隨后產(chǎn)生一個8位的二進(jìn)制數(shù),即為LBPR,P碼。
圖3 LBP1,8碼的形成過程
經(jīng)過不斷探索,研究人員對原始的LBP算法提出了如下幾種優(yōu)化和改進(jìn)策略。
1) LBP圓形算子。原始LBP算子的最大劣勢是它只研究了半徑為1的正方形窗口覆蓋的小區(qū)域。因此,在位移(Rcos(2πn/P),Rsin(2πn/P))處對圖像灰度進(jìn)行插值,能滿足不同尺度和頻率采樣的需要,如圖4所示。
圖4 不同尺度的LBP算子
2) LBP旋轉(zhuǎn)不變模式是對LBP圓形算子的進(jìn)一步擴(kuò)展。將中心像素作為軸心,不斷旋轉(zhuǎn)圓形鄰域,在旋轉(zhuǎn)過程中得到一系列的LBP值,將其中的最小值作為中心像素的LBP值。然而,本文決定不采用LBP方法的這個特性,因?yàn)樾D(zhuǎn)不變性顯然會丟棄關(guān)于圖像方向的重要信息。
3) LBP等價模式。一個LBP算子可以產(chǎn)生多種二進(jìn)制LBP編碼,例如采樣點(diǎn)為P的LBP圓形算子會產(chǎn)生2P種編碼。很明顯,編碼種類會隨著采樣點(diǎn)數(shù)的增多而急劇遞增,因此需要對原始的LBP模式進(jìn)行降維,提高運(yùn)算速度。為了解決該問題,“等價模式”被提出,其限制二進(jìn)制序列從0到1或從1到0的跳變次數(shù)不超過2次,跳變次數(shù)小于等于2,則各自代表一類,大于2的所有情況歸為一類。經(jīng)過這樣的優(yōu)化之后,LBP編碼的種類大大減少,由原來的2P減少為2+P(P-1),而且不會丟失任何信息。
表1 不同LBP模式的編碼種類
AdaBoost[23]是一種集成迭代的自適應(yīng)增強(qiáng)算法,能夠很好地應(yīng)用于分類問題。該算法原理如圖5所示。
圖5 AdaBoost算法原理
(1) 設(shè)置訓(xùn)練數(shù)據(jù)的初始權(quán)值:假設(shè)訓(xùn)練集中有N個樣本,將每個樣本的初始權(quán)值統(tǒng)一設(shè)置為1/N。
(2) 訓(xùn)練弱分類器:在訓(xùn)練過程中,如果某個樣本已經(jīng)被準(zhǔn)確地分類,那么在構(gòu)建下一個訓(xùn)練集時,它的權(quán)重就會減少;反之,其權(quán)重就會增加。更新權(quán)值后的樣本集被用于訓(xùn)練下一個分類器,不斷迭代整個訓(xùn)練過程。
(3) 合成強(qiáng)分類器:將訓(xùn)練得到的多個弱分類器按照一定規(guī)則合成一個強(qiáng)分類器,其中規(guī)則就是誤差率低的弱分類器在最終分類器中占較大的比例,反之較小。
該算法流程如算法1所示,其中:wi,j表示樣本權(quán)重;G表示分類器。
算法1AdaBoost算法
輸入:訓(xùn)練集D={(x1,y1)},(x2,y2),…,(xN,yN)},xi表示數(shù)據(jù),yi表示數(shù)據(jù)所屬的類;弱分類器Gm;訓(xùn)練輪數(shù)M。
1.D1(x)=(w11,w12,…,w1i,…,wiN),w1i=1/N,i=1,2,…,N
2. form=1,2,…,Mdo
3.Gm(x):χ→{-1,1}
5. ifem>0.5 then break
9.Dm+1=(wm+1,1,wm+1,2,…,wm+1,i,…,wm+1,N)
10. end for
步驟1灰度變換:將一幅彩色繪畫圖像(RGB模式)轉(zhuǎn)成灰度圖像。
步驟2旋轉(zhuǎn)圖像:本文探討的是抽象畫的正確懸掛方向,然而對于大多數(shù)繪畫來說,其懸掛方向不會是斜的,因此本文只考慮了(0°,90°,180°,270°)四個方向。使用PIL庫中的“圖像模塊”將上述灰度圖像逆時針旋轉(zhuǎn)三個方向(90°,180°,270°),最終得到四幅方向不同的抽象畫,并且旋轉(zhuǎn)后的圖像尺寸不發(fā)生變化,如圖6所示。
圖6 按不同度數(shù)旋轉(zhuǎn)后的抽象畫
步驟3圖像分割:將灰度圖像分別進(jìn)行水平和垂直平均分割,得到6塊水平子圖和6塊垂直子圖,共12塊,如圖7所示。
圖7 圖像分割示意圖
(1) LBP值:首先將檢測窗口劃分為16×16的小區(qū)域,即P為16,R為2,對子圖中的每一個像素求出每個像素對應(yīng)的LBP2,16值;
(2) 直方圖:采用“非旋轉(zhuǎn)不變等價模式”,計(jì)算每幅子圖的直方圖(橫坐標(biāo)為243種LBP編碼方式,縱坐標(biāo)為每個樣本出現(xiàn)的頻率),然后對該直方圖進(jìn)行歸一化處理;
(3) LBP特征:將上一步得到的每幅子圖的直方圖縱坐標(biāo)的值組合起來,作為整幅圖的LBP特征,特征總數(shù)為12×243=2 916。
步驟5分類:采用AdaBoost分類器對繪畫圖像進(jìn)行方向識別,分為“向上”和“不向上”兩類。
此算法運(yùn)行的軟件環(huán)境為Anaconda 3,編程語言為Python,系統(tǒng)環(huán)境為Windows 7和6 GB RAM內(nèi)存。為了驗(yàn)證本文算法的有效性,本文隨機(jī)選取500幅抽象畫,來自于Wikiart。其中隨機(jī)選取400幅繪畫作為訓(xùn)練集原始圖像,100幅繪畫作為測試集,因此,原始圖像通過旋轉(zhuǎn)后得到最終的訓(xùn)練集樣本為1 600幅,測試集樣本為400幅。為了得到更準(zhǔn)確的分類結(jié)果,本文采用十折交叉驗(yàn)證評估該分類模型。
本文采用AdaBoost算法將抽象畫分為“向上”和“不向上”兩類。由于數(shù)據(jù)集中的正負(fù)樣本數(shù)量不等,因此很多文獻(xiàn)會采用不同手段將正負(fù)樣本平衡表示。但是,本文傾向于保持?jǐn)?shù)據(jù)集的不平衡,因?yàn)檫@樣更能代表實(shí)際應(yīng)用中所發(fā)生的情況。
在使用LBP進(jìn)行繪畫圖像特征提取時,不同的鄰域半徑和采樣點(diǎn)個數(shù)會導(dǎo)致不同的特征描述,實(shí)驗(yàn)中比較不同半徑R=1,2,3對應(yīng)的鄰域像素個數(shù)P=8,16,24的LBP特征,以及該參數(shù)對應(yīng)不同的弱分類器個數(shù)時,得到的分類準(zhǔn)確率,具體的分類結(jié)果如表2所示。可以看出,當(dāng)鄰域半徑為2,鄰域像素為16,弱分類器為30時,分類準(zhǔn)確率最高達(dá)78.75%。根據(jù)實(shí)驗(yàn)結(jié)果和計(jì)算成本,本文實(shí)驗(yàn)選取LBP2,16算子進(jìn)行方向特征的提取。
表2 不同鄰域半徑和鄰域像素?cái)?shù)對應(yīng)不同弱分類器數(shù)的分類精度
表3 不同分類器的分類精度
為了評估本文算法的分類性能,使用分類精度和CPU運(yùn)行時間作為評價標(biāo)準(zhǔn),如表4所示。實(shí)驗(yàn)結(jié)果顯示,當(dāng)弱分類器個數(shù)為10時,分類準(zhǔn)確率較低,但是運(yùn)行時間較短;之后隨著弱分類器個數(shù)不斷增加,分類準(zhǔn)確率也逐漸提高,并且運(yùn)行時間也逐漸變長,這是由于錯分樣本在多次訓(xùn)練后,權(quán)重會增加;但是,當(dāng)弱分類器個數(shù)達(dá)到40時,運(yùn)行時間成倍地增加,而分類準(zhǔn)確率提高很少,這是由于錯分樣本的權(quán)重不可能無限地增加。因此本文選擇30個弱分類器進(jìn)行實(shí)驗(yàn)。
表4 不同弱分類器個數(shù)的分類精度和運(yùn)行時間
表5 不同圖像分割模塊的分類精度和運(yùn)行時間
在三種不同的顏色模式(灰度圖像、RGB、HSI)下,采用LBP特征得到的分類準(zhǔn)確率如表6所示,實(shí)驗(yàn)結(jié)果表明,采用不同的顏色模式,對本文算法影響不大。
表6 不同顏色模式的分類精度
由于目前對抽象繪畫方向檢測的研究比較少,并且為了驗(yàn)證本文算法的有效性,在同一數(shù)據(jù)庫下,將本文算法與文獻(xiàn)[18]算法的分類精度進(jìn)行比較,結(jié)果表明其精度高于后者,如表7所示。
表7 算法分類精度比較
通過對抽象畫圖像方向的研究可以發(fā)現(xiàn),內(nèi)容清晰的抽象畫的方向?qū)τ谘劬头诸惸P投际呛苊黠@的,更容易被區(qū)分,如圖8所示。從表6中可以看出,與自然圖像的方向識別率相比識別率不是很高,那是因?yàn)檫€有一些內(nèi)容抽象且含蓄的抽象畫,它們的方向無論是眼睛還是模型都很難判斷(如圖8(b)所示)。對于這些抽象繪畫方向的識別研究是我們今后著重研究的方向。
圖8 抽象畫圖像示例
本文提出的檢測抽象繪畫方向算法的優(yōu)勢在于:(1) 許多情況下為方便研究,對大量圖像的處理需要統(tǒng)一其大小,但是繪畫的大小(長和寬)是畫家設(shè)定好的,如果修改了繪畫的大小,就會失去繪畫內(nèi)容的真實(shí)性。本文采用“等價LBP模式”,恰好可以在圖像大小不一致的情況下,得到相同數(shù)量的特征(243個)。因此,可以在不統(tǒng)一繪畫大小的基礎(chǔ)上進(jìn)行方向檢測。(2) 在同一數(shù)據(jù)庫下,與目前流行的繪畫方向檢測方法相比,本文方法的分類精度比較高。(3) 本文算法的總運(yùn)行時間(模型訓(xùn)練+測試)為57.9 s,在實(shí)際應(yīng)用過程中能夠滿足人們的實(shí)時體驗(yàn)。
然而,從實(shí)驗(yàn)結(jié)果可見,由于抽象畫的內(nèi)容相對含蓄,因此分類準(zhǔn)確率不是特別高,在未來的研究中,特別針對內(nèi)容含蓄的冷抽象繪畫,可以從以下幾方面進(jìn)行進(jìn)一步研究,從而提高分類精度:(1) LBP描述了圖像的紋理特征,今后可以提取基于顏色、布局、語義或與方向相關(guān)的特征。(2) 本文采用Adaboost 分類算法,今后可以考慮將多種分類算法進(jìn)行融合,取長補(bǔ)短,得到更強(qiáng)的分類器。(3) 可以增加抽象畫樣本的數(shù)量,采用深度學(xué)習(xí)算法(例如CNN等)實(shí)現(xiàn)更快速有效的分類。