覃 俊,羅一凡,帖 軍*,鄭 祿,呂偉龍
(1.中南民族大學計算機科學學院,武漢 430074;2.湖北省制造企業智能管理工程技術研究中心(中南民族大學),武漢 430074;3.南京理工大學計算機科學與工程學院,南京 210094)
京劇被譽為“國粹”,在中國五大戲曲劇種中的地位尤為突出。它是一種將文學、音樂伴奏、表演藝術聚合在一起的舞臺藝術表演形式,其最大的特點是綜合性。京劇的視覺效果是其最具有影響力的特征之一。京劇圖像識別任務發展時間較短,2011年,由浙江大學的蔡飛龍[1]首次提出利用計算機技術對“臉譜”這一特征進行數字化建模,通過建立京劇臉譜矢量紋樣庫、矢量化臉譜、觀察臉譜表情動畫、繪制三維臉譜等輔助設計和展示方式來促進對臉譜的保護和研究。2012 年,山東大學的原娜[2]提出一種通過Bezier曲線擬合、外觀匹配跟蹤模型(Active Appearance Model,AAM)、圖像變形等技術來實現對視頻中不同人臉繪制相應京劇臉譜的任務。2017 年,北京工業大學的賈曉琪[3]和張朋[4]分別對“京劇臉譜”投影任務以及“京劇臉譜”圖像識別任務展開了深入研究,前者通過改進人臉特征點檢測算法以及人臉追蹤技術獲取面部特征及輪廓定位,實現了預測追蹤以達到將臉譜圖片投影到預測的臉部,有效地解決了臉譜和臉部的融合問題;后者通過尺度不變特征變化(Scale-Invariant Feature Transform,SIFT)方法、支持向量機(Support Vector Machine,SVM)分類識別等方法實現了對京劇臉譜的自動識別。2020 年,郝占軍等[5]以京劇動作為研究對象,提出了一種基于信道狀態信息的非接觸式京劇人員動作識別方法。以上所有在京劇視覺領域的計算機應用研究工作,集中針對京劇臉譜特征以及京劇動作特征展開。而包括衣、蚾、蟒、靠、褶、靴、盔等在內的京劇服飾特征目前只限于文學界的研究[6-9],而少有與計算機的跨學科研究。所以本文將結合京劇的臉譜、服飾等多種視覺特征,對京劇人物的圖像分類問題展開研究。
圖像分類任務是計算機視覺中最基礎的任務,主要是通過圖像信息中反映的不同特征來對目標進行類別劃分。1998年,Lecun 等[10]提出的Lenet-5 將反向傳播(Back Propagation,BP)算法運用到了神經網絡結構上,開啟了現代卷積神經網絡(Convolutional Neural Network,CNN)的篇章。然而,原始的CNN 效果并不理想,直到2012 年后才進入飛速發展期。Krizhevsky 等[11]提出AlexNet 引入了全新的深層結構和Dropout 方法,大幅提高了準確率。隨后幾年,相關領域如雨后春筍般發展。Simonyan 等[12]提出的深層網絡(Visual Geometry Group,VGG)采用更小的卷積核和更深層次的網絡;He等[13]提出ResNet采用超深層次網絡以及倒殘差結構解決梯度消失問題;Howard 等[14]提出MobileNet 系列采用深度可分離卷積和倒殘差結構大量減少內存占用。然而以上這些網絡主要致力于普通分類任務(粗粒度)的學習,并不適應于京劇人物的還需更細粒度劃分的分類任務。
細粒度圖像是對粗粒度圖像更進一步的劃分,由于子類別間細微的差別以及較大的類內差異,相較于粗粒度分類任務而言,挑戰性更高。現今相關研究主要分為基于強監督信息和基于弱監督信息的細粒度圖像分類研究。強監督學習如Zhang 等[15]提出的基于候選區域的CNN(Region CNN,R-CNN)、Branson 等[16]提出的可變型區域模型(Deformable Part Model,DPM)算法、Wei 等[17]提出的Mask-CNN,應用于物體級別和局部區域的檢測效果顯著,但均需要借助大量費時費力的人工標注工作,所以弱監督機制成為了細粒度圖像研究的主要方向。Lin 等[18]提出的Bilinear-CNN,使用兩組卷積神經網絡對圖像進行特征抽取,再通過bilinear pool 函數將提取到的類別特征和位置特征融合。Fu 等[19]提出的基于循環軟性注意力機制的RA-CNN(Recurrent Attention CNN)模型,通過注意力機制聚焦關鍵區域從而大幅提升細粒度特征的識別效果,在弱監督機制的研究中最為優秀,然而該網絡在特征提取的過程中,由于空間特征的逐漸弱化、類別語義特征的不斷增強,不同階段的特征圖會呈現出較大的特征差異,使得在使用RA-CNN 模型的注意力機制方法APN(Attention Proposal Network)時,后期因為丟失空間信息而產生細粒度特征區域定位不夠準確的問題。Sun 等[20]提出的門控網絡結構以及霍煜豪等[21]提出的尺度依賴池化(Scale Dependent Pooling,SDP)算法采用了特征融合的思路,能兼顧RA-CNN 模型中部分丟失的特征,但仍存在部分的重要特征丟失的問題。
為了更好地兼顧RA-CNN 模型特征圖層的特征,本文提出了基于輕量級網絡MobileNetV2 的HCA-CNN(CNN based on HyperColumn and Attention mechanism)模型,模型采用超列[22](HyperColumn)特征,利用其基于像素點串聯多層特征圖的特點,能夠更好地兼顧早期的空間特征與后期的類別語義特征。除此之外,模型將該超列集作為特征用于注意力子網絡HC-APN 的定位任務,以達到擴大京劇細粒度特征在圖像中占比的目的,從而提升定位關鍵區域的準確度,實現更準確地分類。
在RA-CNN 模型中提到,空間特征有助于細粒度圖像的識別,并希望在未來對此特征有更多的處理和研究。因此京劇圖像特征提取階段存在的大量空間特征值得深入研究。本文通過可視化特征提取階段的中間層特征圖信息來展示京劇人物圖像特征。圖1 以圖像輸入為例,展示了其經過MobileNetV2 網絡的不同特征提取階段時的特征圖特征強弱信息。可以通過不同顏色強弱漸變特征得出:越接近圖片輸入層的底層,類別特征越弱,空間特征越強;越接近輸出層(classifier)的高層,類別信息越強,空間特征越弱。

圖1 網絡各層類別和空間特征對比Fig.1 Comparison of category features and spatial features of different network layers
通過可視化結果進一步對MobileNetV2 分類網絡的中間層部分特征圖進行了展示,如圖2所示:圖2(a)代表最底層的特征圖,可以看出有明顯的輪廓特征;圖2(b)、(c)代表了中間階段的特征圖,輪廓特征效果減弱;圖2(d)代表了較高層特征圖,輪廓等特征已消失。

圖2 中間層特征矩陣可視化信息展示Fig.2 Visual information display of intermediate layer feature matrix
在特征提取的過程中,為了滿足分類任務,京劇行當類別的語義信息會不斷增強,而空間特征(包括人物姿態、肢體的關節,舞臺燈光強弱和所在舞臺位置等)會被減弱。
根據1.1 節可知,在卷積神經網絡特征提取過程中,由于空間特征的逐漸弱化、類別語義特征的不斷增強,不同階段的特征圖呈現出較大的特征差異。
如圖3 所示,展示了輸入圖像經過神經網絡特征提取后不同階段的特征圖情況,可以引入“超列”的概念將各層特征圖關聯起來,針對輸入京劇圖像的某一像素點i,將特征提取過程中此像素在各層特征圖中對應的位置串聯起來,組合成一個特征向量f,這個特征向量就是輸入的京劇圖像某一像素點位置i對應的超列特征:


圖3 基于像素點的超列特征Fig.3 HyperColumn feature based on pixel point
由圖4 可知,在訓練步數達到100 時,未加入超列特征的平均定位損失遠大于加入了超列特征的,且通過二者結果圖示可以明顯觀察到加入超列特征后的顯著提升效果。
可以得到結論,加入超列特征后的定位網絡減少了定位損失,提高了細粒度關鍵特征區域的準確度。

圖4 超列集定位效果展示Fig.4 HyperColumn set positioning effect display
針對京劇人物圖像研究提出的HCA-CNN,結構如圖5 所示,由三層層級結構迭代而成,各層網絡結構相同,每一層的部分特征會作為下一層的輸入信息。京劇圖像input image0輸入至HCA-CNN 中首先經過MobileNetV2 分類網絡中包括ConvBNReLU、Bottleneck 等一系列特征提取操作:一方面將特征提取操作得到的最后一層特征圖信息輸入至分類器中用于當前層的分類任務,通過avgpool、softmax 等方法得到圖像的類別特征結果(Feature Result0),從而計算出當前的類別損失函數Lcls0,表示第一層的類別損失;另一方面將部分中間層的特征圖進行基于像素點的疊加形成超列集(HyperColumn Set)并輸入至子網絡HC-APN中,HC-APN會對得到的超列集特征進行下采樣、全連接操作提取關鍵區域參數(tx,ty,tl)。關鍵區域參數將用于對原圖像input image0 通過雙線性插值方法(bilinear interpolation)進行關鍵區域圖像放大任務,放大后得到的新圖像input image1將輸入至下一層繼續進行分類任務,得到這一層的圖像類別特征結果(Feature Result1),從而計算出當前的類別損失函數Lcls1,表示第二層的類別損失;并且通過Feature Result0 和Feature Result1 可以計算出兩層之間產生的范圍損失Lrank0,表示第一層與第二層間的范圍損失;類別損失Lcls和范圍損失Lrank將用于網絡的訓練;如此多次遞歸,實現細粒度特征更精細化的研究。
考慮到京劇人物識別任務在視頻應用場景下的實時性需求,本文將擁有較少參數量和較高運算效率的MobileNetV2網絡作為主干網絡。如圖6所示,組成結構類似于VGG16,但在減少內存占用、降低模型復雜度等方面更優。本文的HCACNN模型使用MobileNetV2網絡,采用Conv2d、Bottleneck結構堆疊,利用Conv2d 結構深度可分離卷積的特征和Bottleneck結構的倒殘差特征(Inverted residual block)。
深度可分離卷積由深度卷積和逐點卷積兩部分完成卷積操作。輸入一張224×224 像素、3 通道的彩色京劇人物圖片,會經過深度卷積進行第一次卷積運算,其中卷積操作的卷積核通道數等于輸入特征矩陣的通道數,輸入的RGB 彩色圖像經過運算后生成3 層特征圖,即深度卷積完成后的特征圖數量與輸入層的通道數相同,展現了深度卷積只對輸入層每個通道獨立進行卷積運算特點。針對深度卷積的特點,采用了逐點卷積配合的方式,逐點卷積有效地利用不同通道在相同空間位置上的特征信息,將特征圖進行組合后生成新的特征圖,其運算過程與常規卷積運算相似,卷積核的尺寸為1×1×M(M為上一層的通道數)。所以這里的卷積運算會將上一步的特征圖在深度方向上進行加權組合,生成新的特征圖,有幾個卷積核就有幾個輸出特征圖。最終通過輸入特征矩陣的寬和高以及通道數、卷積核大小、輸出特征矩陣的通道數等參數可以計算出,深度可分離卷積的參數量僅為普通卷積的1/9,充分體現了輕量化的效果。
Bottleneck 結構的倒殘差特征在ResNet 網絡的殘差結構(Residual block)基礎上進行了優化改進。殘差結構包括了用于降維的1×1卷積核、中間層的3×3卷積和用于升維的1×1卷積核,而倒殘差結構是先通過1×1 的卷積升維,經過3×3 卷積,再通過1×1卷積降維的順序,呈現出“兩頭小中間大”的結構,增強了梯度的傳播,并顯著減少了所需的內存占用。
網絡對提取到的特征圖集進行Task1 和Task2 的多任務學習,其中Task1表示整合用于HC-APN的超列集,Task2表示學習用于分類任務的最后一層的特征圖。

圖5 HCA-CNN結構Fig.5 HCA-CNN structure

圖6 中間層特征融合階段展示Fig.6 Display of intermediate layer feature fusion stage
2.2.1 超列特征預處理
在分類模型Task1 中,各層的特征圖大小與原始京劇圖像大小不同,在對特征圖與原始京劇圖像進行基于像素單位的疊加前,需要先進行一次上采樣方法。在上采樣任務中,任一點P=(x,y)代表上采樣后插入的點,原圖像中存在Q11=(x1,y1)、Q12=(x1,y2)、Q21=(x2,y1)、Q22=(x2,y2)四個像素點值,有R1=(x,y1)、R2=(x,y2)。想要得到P點的值f,需在x方向先進行線性插值:

接著在y方向進行線性插值:

對各層的特征圖進行上采樣操作后,即可進行疊加。由于輸入圖像尺寸固定設置為224×224 大小,所以超列集也是由224×224個像素點i的超列組成。
2.2.2 注意力模型與圖像放大模型
1)注意力模型。
由于RA-CNN 的子網絡APN 只采用了主網絡VGG 的最后一層特征圖作為輸入特征,丟失了前期過程的空間特征。本文根據輸入特征的改變,在APN 基礎上進行了改進,提出新的注意力機制子網絡HC-APN。
HC-APN 由224×224×2 024 大小的超列集輸入特征、5 次下采樣(3×3 conv&2×2 pooling)以及2 次全連接操作的結構組成,如圖7所示。

圖7 HC-APN結構Fig.7 HC-APN structure
224×224×2 024 大小的特征輸入至HC-APN 子網絡,首先下采樣為7×7×2 024 大小;接著執行兩次全連接操作,第一次將特征扁平化為1×1×16 192大小,第二次變為1×1×3大小(通道數3代表了用于關鍵區域定位的三個參數tx、ty、tl。
三個參數用于HC-APN定位注意力關鍵區域,(tx,ty)表示區域的中心坐標點,tl表示正方形區域邊長的一半,得到目標區域的左上角及右下角坐標為:

2)圖像放大模型。
確定坐標關系后,通過Mask和輸入圖像X做元素相乘(⊙)的方法得到裁剪后的區域:

Mask函數可以挑選出正向傳播中最重要的區域,由于連續函數的特性,易于在反向傳播中進行優化:

當-kx趨于正無窮時,分母同樣趨于正無窮,此時h(x)趨于0;當-kx趨于負無窮,分母的后一半趨于0,這樣整個分母趨于1,h(x)趨于1。tx(tl)≤x≤tx(br),h(x-tx(tl))-h(x-tx(br))的值趨于1,y軸同理。
所以只有當x介于tx(tl)和tx(br)之間,y介于ty(tl)和ty(br)之間(即像素點落在關鍵區域),Mask趨于1,其他情況均趨于0。
接著采用雙線性插值的方法對確定的目標區域進行區域放大,計算過程如下所示:

其中:m=[i/λ]+α;n=[j/λ]+β;λ=S/tl;(m,n)表示原來未放大attention區域的任一點;(i,j)表示圖像放大后(m,n)的對應值,它們的關系由雙線性插值因子決定;λ、α、β設為0;S表示放大尺寸;[·]和{·}分別表示取整數部分和小數部分。
聯合損失函數包含Lcls、Lrank兩部分,其中類別損失Lcls包含三層分類網絡預測京劇人物類別相對于真實類別標簽產生的損失;Lrank表示前后兩層中高層識別率低于低層情況時產生的損失,聯合損失采用兩種損失函數交替訓練的方法,有聯合損失函數計算公式:

由于缺乏相關京劇人物特征數據集,本研究根據京劇人物之間視覺特征的差異,制作了面向京劇人物識別任務的BJOR(BeiJing Opera Role)數據集。
1)采集過程。
a)視頻收集整理:通過多方渠道獲取高清京劇視頻錄像315部,并根據經典劇目類別進行整理分類。
b)圖像截取:采用控制變量法設定不同視頻幀進行圖像截取,所得圖片集中圖像像素值均大于224×224,有利于輸入網絡前的數據集預處理操作。
c)篩選分類數據集:對圖像截取方法獲得的273 100張隨機圖片進行人工篩選,篩選出包含單個京劇人物目標內容的圖片40 000張,對應8種類別,各類別5 000張。
2)數據集分類。
京劇人物的分類行內術語——“行當”,是根據人物的年齡、性別、性格等特征進行的劃分。通過參考京劇行當相關語料庫研究[23-24],最終設定其中具有代表性的8種行當作為類別標簽,如圖8 所示,設定基本類別標簽包括:老生(LaoSheng)、武生(WuSheng)、小生(XiaoSheng)、正旦(ZhengDan)、花旦(HuaDan)、老旦(LaoDan)、凈角(JingJue)、丑角(ChouJue)。

圖8 BJOR數據集類別展示Fig.8 BJOR dataset category display
3)特征描述。
通過參考京劇服裝圖譜等[25-26]相關資料,本次研究采用頭飾(Headwear)、臉譜(Face)、髯口(Beard)、服飾(Clothes)、袖子(Sleeve)、腰帶(Belt)等部位對行當(Type)進行特征區分,如圖9所示。
選取其中部分特征進行介紹:
a)老生:髯口特征呈多樣化,顏色黑、蒼、白色,形狀三髯、滿髯;臉譜表現為包括“通天”(印堂處的修飾妝)在內的整體妝容呈現淺淡特征。
b)小生:髯口特征為無髯口,可觀察到嘴形;臉譜特征表現為整體妝容濃厚、通天較細、唇部呈深紅色。
c)武生:髯口特征表現為無髯口,可觀察到嘴形;臉譜特征表現為通天明顯、唇部紅色度較深;服飾特征多表現為白色長靠(一種穿著方便的緊身衣服),繡有“單龍戲珠”圖案。
d)正旦:臉譜特征表現為妝容濃厚;頭飾特征多表現為穿戴銀泡;袖子特征表現為有水袖。
e)花旦:服飾特征多表現為著飯單和襖裙;頭飾特征多表現為穿戴亮頭面、水鉆;袖子特征表現為無水袖;除此之外“手絹”也是其特別標識特征。
f)老旦:臉譜特征表現為妝容較淺;服飾特征多表現為著黃色、灰白色、深綠色褶子(一種便服);除此之外“拐杖”也是其特別標識特征。
g)凈角:髯口特征常表現為滿髯;臉譜特征表現為濃厚的臉譜妝,包括了特有的“整臉”“三塊瓦臉”“花三塊瓦臉”和“碎臉”等多種類別。
h)丑角:臉譜特征表現為鼻梁處抹有一塊白粉;文丑髯口特征表現為“丑三髯”、袖子特征為有水袖,武丑髯口特征表現為無髯口、袖子特征為無水袖。

圖9 類別特征展示Fig.9 Category feature display
1)準確率。通過Top1_Accuracy、Top5_Accuracy 指標檢測模型識別效果。

Top1_Accuracy 表示預測類別標簽取概率向量里面最大的作為預測結果,若預測結果中概率最大的分類正確,則預測正確;否則預測錯誤。其中:TP代表將正類預測為正類的數量;FP代表將負類預測為正類的數量,可稱為誤報率;FN代表將正類預測為負類的數量,可稱為漏報率;TN代表將負類預測為負類的數量。
Top5_Accuracy 表示概率向量最大的前五名中,若出現正確概率即為預測正確,否則預測錯誤。
2)復雜度。本研究采用一系列指標來評估網絡的復雜度,其中時間復雜度評估指標包括每秒浮點運算次數(FLOPs),空間復雜度評估指標包括內存使用量(Memory Usage)、參數量(Params)以及乘加次數(Mult Adds)。
時間復雜度決定了模型的訓練和預測時間,空間復雜度決定了模型的參數量以及訪存量,其中參數量表示模型所有帶參數的權重參數總量。卷積神經網絡的復雜度與卷積核輸出的特征圖大小M息息相關。整體時間復雜度計算公式為:

其中:X表示輸入矩陣尺寸;K表示卷積核大小;Padding表示填充值;Stride表示步長。
表1 統計了各類型網絡對應指標情況。對比RA-CNN(VGG16+APN),MobileNetV2 網絡的引入大幅度降低了復雜度。MobileNetV2 代替VGG16 結合注意力網絡APN 同樣也減少了參數量,減小了網絡的規模。HCA-CNN 相較于同類型網絡RA-CNN 而言,在Memory Usage、Params、Mult-Adds、FLOPs等復雜度指標上分別減少了162.84 MB、131.5 MB、39 885×106、51 886×106,然而由于MobileNetV2 的特性原因,在縮小模型結構的同時,識別準確率會有一定下降。

表1 消融實驗復雜度指標對比Tab.1 Comparison of complexity indexes in ablation experiment
為了解決識別準確率下降的問題,提出的基于超列特征的HCA-CNN[MobileNetV2+(HC-APN)],相較于(MobileNetV2+APN)組合,在增加少量參數的情況下大幅提高了準確率;相較于RA-CNN(VGG16+APN)組合,大幅減少了參數量的同時提高了準確率。
模型訓練主要包括數據預處理、訓練集訓練交替損失L(X)、隨機梯度下降方法更新網絡權重、驗證集測試網絡效果。
圖像分為訓練集(Training Data)和驗證集(Validate Data),對PIL Image 和Tensor 兩種狀態進行預處理操作,主要包括:
1)歸一化;
2)訓練集隨機裁剪、隨機水平翻轉;
3)測試集中心裁剪;
4)正則化,利用均值(mean)和標準差(std)對張量圖像進行標準化。
圖10 中:圖(a)展示了Lcls、Lrank兩種損失變化;圖(b)、(c)分別展示了HCA-CNN 網絡三層結構(scale1+scale2+scale3)各層的Top1_Accuracy、Top5_Accuracy 指標的變化情況,可以觀察到模型在隨著訓練次數(Epochs)增加,兩種損失Lcls、Lrank逐漸降低,第一層(scale1)對應的準確率指標(cls0Top1_Accuracy 和cls0Top5_Accuracy)、第二層(scale2)對應的準確率指標(cls1Top1_Accuracy 和cls1Top5_Accuracy)、第三層(scale3)對應的準確率指標(cls2Top1_Accuracy 和cls2Top5_Accuracy)均有明顯提升。
針對自制的BJOR 數據集,通過不同弱監督網絡、遞歸網絡的不同層(scale)之間進行組合,進行對比消融實驗,選定組合如下所示:
1)VGG16;
2)RA-CNN(scale 1+2+3);
3)MobileNetV2;
4)MobileNetV2+APN;
5)HCA-CNN(scale 2);
6)HCA-CNN(scale 3);
7)HCA-CNN(scale 1+2);
8)HCA-CNN(scale 1+2+3)。
本文選定BJOR 數據集(80%)作為網絡訓練集,其余作為網絡驗證集,由模型訓練結果可以得到網絡準確率,即Top1_Accuracy指標值。

圖10 訓練損失和Top1_Accuracy、Top5_Accuracy變化Fig.10 Change of training loss,Top1_Accuracy and Top5_Accuracy
由表2 可知,MobileNetV2 網絡相較于VGG16 而言,準確率小幅降低了1.78 個百分點;同樣,MobileNetV2 組合APN 形成的三層遞歸網絡,同樣比RA-CNN 少1.67 個百分點。接著本文引入超列特征,提出新的網絡HCA-CNN,并對遞歸網絡的不同層級(scale)進行了消融實驗,可以觀察到層級結合的交叉訓練更優于單層。三層HCA-CNN 遞歸網絡準確率達到91.58%,在準確率方面相較于基于循環弱性注意力機制的RA-CNN 模型(90.95%)提高了0.63 個百分點,有效解決了注意力機制的定位不夠高效和準確問題。

表2 消融實驗準確率對比Tab.2 Comparison of accuracy in ablation experiment
由于空間特征的逐漸弱化、類別語義特征的不斷增強,不同階段的特征圖呈現出較大的特征差異,使用傳統的諸如RA-CNN 模型的APN 注意力機制方法時,后期因為丟失空間信息,而導致細粒度特征區域定位不夠準確。本文提出的HCA-CNN 試圖利用超列的基于像素點串聯多層特征圖的特點,更好地兼顧早期的空間特征與后期的類別語義特征。此外還使用MobileNetV2 網絡代替VGG16 網絡用于分類,更好地用于京劇實時識別的場景。實驗結果表明,HCA-CNN 識別準確率更高、復雜度更低,相較于同類型對比網絡RA-CNN 在Memory Usage、Params、Mult-Adds、FLOPs 等復雜度指標上分別減少了162.84 MB、131.5 MB、39 885×106、51 886×106,在Accuracy 指標上提高了0.63 個百分點。有效解決了RA-CNN注意力機制定位不夠高效和準確的問題。