解夢達,孫 鵬,2,張志豪,郎宇博,周純冰,單大國
1.中國刑事警察學院 公安信息技術與情報學院,沈陽110854
2.司法部司法鑒定重點實驗室,上海200063
人臉追蹤是計算機視覺領域的經典研究方向,被廣泛地應用于生物識別、安全檢測、視頻篩選等領域。近幾年,研究人員在人臉追蹤方向開展了許多工作,也取得了一定的進展。然而,由于視頻場景變化及人臉狀態的不確定性,人臉追蹤方向仍然存在著許多的難點,制約著追蹤精度與速度的提升。
視頻中的人臉追蹤可從目標追蹤這一研究方向考慮。在文獻[1]中,Wu等人將目標追蹤難點主要分為遮擋、變形、尺度變化、快速運動幾個方面。目標遮擋及快速運動導致目標特征的部分消失或改變將考驗算法追蹤過程中的魯棒性,后續視頻序列內目標定位的精度同樣受該類條件下模型更新機制的影響。此外,非剛性目標外觀的變化將導致目標邊緣信息及局部紋理發生較大改變;尺度的變化則要求追蹤算法對目標具有外觀的尺寸自適應性,單一尺寸的追蹤窗口在目標大小發生改變時將導致追蹤的精度下降,同時可能使得追蹤器學習到部分背景信息,導致追蹤的偏移或失效。最后,目標或背景快速運動導致的圖像模糊易降低目標與背景間差異性,增加追蹤窗口的選取難度。現有目標追蹤算法可以分為生成式模型算法與鑒別式模型算法[2]。生成式模型算法針對當前幀目標區域進行建模,并在后續視頻幀中尋找模型相似區域以進行坐標預測。其中較為典型的算法有粒子濾波、光流法、Mean-Shift等算法;鑒別式模型算法則采用機器學習的方式針對生成的目標及背景樣本進行學習,并將學習到的分類器應用于后續視頻幀內的目標檢測,由于將目標所處的背景信息引入了判定模型,相比生成式模型算法,該類算法在復雜環境及目標變化時具有更高的魯棒性。現有判別式算法包括傳統判別式算法,如MIL[3]、TLD[4]、DAT[5]等;相關濾波類算法,如CSK[6]、KCF[7]、BACF[8]等。近幾年,隨著深度學習技術的發展,部分算法如DeepSRDCF[9]、SiamBAN[10]、LTMU[11]、ROAM[12]等,嘗試將深度神經網絡學習到的特征應用于目標追蹤,取得了更高的追蹤精度。
在人臉追蹤相關研究中,趙昶辰等人[13]提出一種結合TLD 與級聯回歸樹模型的地標檢測及人臉追蹤算法,該算法通過設置閾值作為地標點穩定判據,以解決人臉追蹤過程中,地標無規則抖動對基于遠程光體積描記算法的心率測量干擾。此外,牛穎等人[14]以TLD算法為基礎,采用CamShift 算法加速TLD 算法的人臉追蹤過程,同樣取得了良好的人臉追蹤效果。對于人臉來說,隨著姿態的改變,人臉所表達的面部特征也在隨之變化[15]。人臉的平面內及平面外旋轉將導致面部紋理特征發生較大改變,而膚色受到的影響則較小,且在多數色彩空間中,人體膚色具有較強的共性,形成一個小而緊致的聚簇[16]。因此,本文以面部膚色為特征,并采用基于目標色彩特征的CamShift 算法實現人臉追蹤。然而,CamShift算法易受類膚色背景影響導致搜索框的偏移及尺寸異常。針對以上問題,文獻[17]將KCF算法與CamShift算法相結合,同時構建高斯背景模型以去除類膚色背景,但該算法無法處理動態背景的視頻序列,且實時性較弱。文獻[18]則在YCbCr 色彩空間內采用非參數膚色分割模型劃分人臉及背景,然而,非參數膚色分割模型僅采用一組固定閾值邊界,難以有效地區分類膚色背景與人臉。基于對膚色分割速度及精度兩方面的考慮,本文采用非參數膚色分割模型及SVM 構建聯合膚色分割模型。其中,非參數膚色分割模型用于快速去除視頻幀中的多數背景,而對于難以去除的類膚色背景,則采用SVM 構建特定于當前視頻幀的膚色分割模型,以在類膚色背景中精細分割出人臉膚色區域。接下來,考慮在應用CamShift算法對分割后區域進行人臉追蹤時,由場景或光照變化導致的聯合膚色分割模型或CamShift 色彩直方圖失效,繼而引發的追蹤失敗問題。采用拉依達準則對CamShift算法返回目標窗口內的Cr均值進行異常值監測,當發現異常值時即判定當前幀人臉追蹤失敗。隨后,采用預訓練的AdaBoost 算法進行人臉復檢,同時重構膚色分割模型及CamShift算法色彩直方圖,以確保算法在人臉追蹤過程中的魯棒性。
本文主要貢獻在于以下兩方面:
(1)針對類膚色背景對CamShift 算法的干擾,提出了一種非參數膚色分割模型與SVM相結合的膚色分割算法,該算法可實現對類膚色背景的有效去除,同時相比僅使用SVM的膚色分割算法速度優勢明顯。
(2)提出了一種簡單有效的追蹤監測機制。該監測機制通過拉依達準則判斷追蹤窗口內Cr 均值異常,可有效識別到由膚色分割模型或CamShift 算法色彩直方圖失效所導致的追蹤失敗問題。
本文人臉追蹤算法主要由人臉追蹤、追蹤監測、人臉復檢三部分流程組成。其中,人臉追蹤流程包括基于聯合膚色分割模型的膚色分割及CamShift 算法人臉追蹤。追蹤監測流程用于對追蹤器性能做出評價,以判斷聯合膚色分割模型或CamShift 算法色彩直方圖是否存在失效問題。對于判斷追蹤失效視頻幀,采用預訓練的AdaBoost算法進行人臉復檢,同時重構膚色分割模型及CamShift算法色彩直方圖。算法全局流程如圖1所示。

圖1 人臉追蹤算法總流程圖Fig.1 General flow chart of face tracking algorithm
膚色分布與色彩空間的選擇密切相關,對于膚色分割來說,其選用的色彩空間應對膚色及背景具有良好的可區分度。Shin 等人[19]在RGB、YUV、Lab、YCbCr 等色彩空間下對膚色-非膚色的可分離性指標進行比較,結果證明:不同的色彩空間內可分離性指標存在差異。采用Shin 等人提出指標,徐占武等人[20]使用1 894 幅圖像建立膚色及背景的像素樣本庫,并對不同的色彩空間內膚色與背景分離指標進行比較以尋找膚色檢測最優空間。根據徐占武等人實驗結果,本文選取膚色分割常用的RGB、HSV、YCbCr 三類色彩空間作為候選色彩空間集,同時采用膚色分布信息熵E對膚色分布的緊致度進行評價:

式(1)內pj代表膚色分布概率,較低的信息熵E代表了膚色分布的一致性,故該值越低膚色緊致度越高。此外,采用膚色及非膚色樣本集合的離散度矩陣指標tr[Sw]/tr[SB]對二者的可分離性進行評價,tr[SW]代表膚色及非膚色樣本的類內距離,tr[SB]則代表兩者的類間距離。顯然,應期望較小的類內距離及較大的類間距離,即tr[Sw]/tr[SB]取值越小越好。

式(2)中,M為類別數,Ni為第i類下的樣本數目,為第i類下的第k樣本,此外,m(i)為第i類樣本的均值,m則為所有樣本均值,三類色彩空間下的膚色緊致度及可分離性指標如表1所示。
表1 中3D 為三維色彩空間,2D 為去除亮度后的二維色彩平面,RGB色彩空間內視G為亮度分量。由表1可知,相比三維色彩空間,膚色在二維平面內的分布及其與背景的可分離性更為理想。此外,在二維色彩平面中,三類色彩空間下膚色分布的緊致度指標信息熵E相差不大,YCbCr色彩空間略優于另外兩者。而對比不同色彩空間下膚色與背景的離散度矩陣指標tr[Sw]/tr[SB],可發現在二維色彩平面內,YCbCr 色明顯低于另外兩者,這反映出YCbCr色彩空間內的膚色與非膚色分布具有更好的可分離性,故本文選用YCbCr色彩空間的Cb、Cr分量進行膚色分割。

表1 不同色彩空間膚色緊致度及可分離性指標Table 1 Indexes of skin compactness and separability in different color spaces
常見膚色分割模型可分為非參數、參數以及半參數三種類型[16]。非參數模型基于特定色彩空間設置閾值邊界,盡管其分割速度較快,但分割精度較低。此外,參數模型通過構建模型對膚色數據進行擬合,常用有單高斯模型(single Gaussian model,SGM)以及高斯混合模型(Gaussian mixture model,GMM)。最后,半參數模型以神經網絡、SVM 為代表,與前兩種模型相比,其膚色分布信息被隱藏在網絡架構或不同權值中[20],且同時考慮了膚色及非膚色信息來構建二分類器。近幾年,另有部分更為復雜的膚色分割算法提出:如王雪等人[21]采用貝葉斯分類器標記準膚色像素點,后通過Gabor特征計算圖像紋理以對準膚色像素點進行二次分類,最后以區域生長的方式擴充膚色區域完成膚色分割。此外,董旭德等人[22]采用非參數膚色分割模型對圖像進行粗分割,并將質心及圖像梯度局部極小值作為積水盆地,通過分水嶺算法完成膚色分割。與上述膚色分割算法不同,劉可等人[23]則將膚色分割建模為多目標優化模型,并通過分布估計算法尋找最佳分割方案。
在本文算法中,所使用的膚色分割模型由非參數模型及SVM聯合構建。其中非參數模型用于快速去除圖像中大量與膚色差異顯著的背景區域,而SVM 則用于在未被正確去除的類膚色背景與人臉膚色間構建決策面。需要說明,本文采用SVM 構建膚色分割模型是基于以下三點考慮:(1)基于SVM的膚色分割算法具有較快運行速度,相比之下,文獻[21]、[22]中的區域生長及分水嶺算法均存在重復迭代過程,而文獻[23]中求解一幅100×100像素尺寸的多目標優化模型用時則在4~5 s,因此不適于人臉追蹤中的快速膚色分割。(2)文獻[16]、[24]研究均表明,同時考慮膚色及背景樣本信息將有助于膚色分割精度提升,而在同一視頻序列中,基于視頻標準幀(視頻首幀及后續人臉復檢所用視頻幀)內類膚色背景及膚色樣本構建的SVM 膚色分割模型對后續視頻幀的膚色分割顯然會更加高效且具有針對性。(3)SVM 可根據結構風險最小化原則增強學習機的泛化能力[16],這使得僅基于視頻標準幀構建的膚色分割模型同樣能夠對后續視頻幀起到較好分割作用。
在本文算法中,未直接采用SVM 構建膚色分割模型是考慮到盡管SVM 的運行速度較快,但其在訓練及預測過程中的特征高維映射仍需一定計算開銷,而這將降低整體人臉追蹤算法的實時性。因此,設計在使用SVM 構建膚色分割模型前,首先應用非參數膚色分割模型對視頻幀進行粗分割,以去除大多數易于分割的背景,降低SVM 所需訓練及預測的數據量。為得到非參數膚色分割模型所使用閾值邊界,本文采用了FDDB人臉數據集構建基于人臉的膚色樣本庫。所構建樣本庫包含來自300幅人臉圖像中超過24萬個膚色像素,其中人臉圖像的搜集已考慮不同人種膚色及成像時環境光照差異性。基于構建的膚色樣本庫,本文所使用的非參數膚色分割模型閾值邊界如下:

在經非參數膚色分割模型粗分割后,對于未被有效去除的類膚色背景,則使用SVM 算法構建特定于當前背景及膚色的分割模型。基于非參數膚色分割模型及SVM構建的聯合膚色分割模型將用于對同一視頻序列中后續視頻幀的膚色分割。圖2 展示了部分常見膚色分割算法及本文基于聯合膚色分割模型的算法應用于同一視頻幀時膚色分割效果。

圖2 不同膚色分割方法效果圖Fig.2 Results of different skin color segmentation methods
由圖2 可看出,在單獨使用非參數、SGM 及橢圓膚色分割模型進行膚色分割時,視頻幀內的部分類膚色背景信息均未被有效去除。而在本文所提出的聯合膚色分割模型中,SVM 在膚色分割時考慮到了類膚色背景因素,因此最終實現的膚色分割更為準確,這將有效地降低類膚色背景對后期人臉追蹤算法的影響。表2 展示了不同膚色分割模型算法對圖2視頻幀的分割用時,特別地,對僅采用SVM 的膚色分割算法及本文構建的聯合膚色分割模型算法的分割用時進行了對比。

表2 不同膚色分割模型算法用時Table 2 Runtime of different skin color segmentation algorithms ms
由表2可知,盡管非參數膚色分割模型算法的分割精度較低,但其分割用時明顯短于其他膚色分割模型算法。相比之下,橢圓膚色分割模型算法及SGM 膚色分割模型算法在分割精度及速度上均未達到最優。最后,基于SVM的膚色分割模型算法及本文所提聯合膚色分割模型算法均具有較高的分割精度。但由于僅采用SVM時,算法所需訓練及預測數據量均較高,因此該算法用時較長。而聯合膚色分割模型算法則可通過非參數膚色分割模型去除多數的背景區域,僅在未被有效去除的類膚色背景中使用SVM 對膚色區域進行分割,因此算法的整體用時較僅采用SVM進行膚色分割明顯更短。
在有效分割出視頻幀中的膚色區域后,本文采用CamShift算法自適應更改追蹤窗口大小并定位目標人臉。CamShift 算法基于MeanShift 算法[25]改進,MeanShift 算法使用核函數對色彩直方圖加權,并在一組密度不均的數據中,反復迭代進行密度估計以尋找局部極值。MeanShift算法多用于單幅圖像的目標搜索,相比之下,CamShift算法則在其基礎上擴展至連續視頻序列,同時可利用目標投影概率密度自適應地調整搜索窗口的大小。原始CamShift 算法采用HSV 色彩空間中H分量構建色彩直方圖。而本文2.1 節證明,膚色在YCbCr 色彩空間的Cb、Cr分量內與背景的可分離性更為理想。然而,同時采用Cb、Cr兩類分量將增加構建色彩直方圖時的復雜度。因此,本文使用FDDB人臉數據庫對膚色及背景信息建模,以在Cb、Cr分量中進一步篩選與背景可分離性最高的分量。圖3 為FDDB 人臉數據庫中膚色及背景的Cb、Cr分量取值概率密度分布,其中膚色分布信息為圖中經擬合后的紅色曲線,背景分布信息則由黑色直方圖表示。

圖3 膚色及非膚色區域Cb、Cr 分量概率密度分布圖Fig.3 Probability density distribution of Cb and Cr components in skin and non-skin areas
對比可知,相比Cb分量,膚色在Cr分量下與背景分布的重疊區域更小,這說明Cr分量下膚色與背景具有更高的可區分性。因此,本文選用Cr分量構建基于人臉膚色色彩直方圖。設構建的直方圖模型為H={hu},u=1,2,…,m,則投影概率圖坐標(x,y) 下目標概率值I(x,y)為:

式(4)內目標投影概率圖I(x,y)取值范圍為0~255,I(x,y)代表像素值為u時目標出現概率。在獲得目標概率后,使用如下方法計算搜索窗口的零階距M00與x、y方向的一階矩M10、M01,進而計算該搜索窗口下的質心坐標(xc,yc):

CamShift 算法在目標投影概率圖中進行迭代至質心收斂于搜索窗口中心附近,后根據搜索窗口內目標概率密度改變搜索框尺寸,設置人臉搜索窗口固定寬高比為a,則搜索窗口自適應寬度W與高度G計算方式如下:

在追蹤過程中,如何判定追蹤結果的準確性是確保有效追蹤的關鍵。目前各類追蹤有效判定的方式較多,如李子印等人[26]采用相鄰追蹤窗口的城區距離(CityBlock)構建模板評價函數,其背后的思想是運動目標在相鄰幀間的位置一般不易發生突變。此外,Ma等人提出的LCT算法[27]通過置信度濾波器計算目標周圍最大響應值作為追蹤置信度,當置信度低于設定閾值時即停止更新模型并進行目標重檢。
在本文算法的人臉追蹤流程中,追蹤精度將主要受以下兩方面因素影響:(1)當人臉所處背景相較標準幀發生較大改變時,由于聯合膚色分割模型中SVM 訓練未考慮該部分背景信息,將可能導致對當前視頻幀的膚色分割性能降低,進而使得CamShift算法受到類膚色背景影響并導致追蹤窗口異常。(2)視頻幀內場景光照強度變化過大時易引發人體膚色信息波動,使得當前聯合膚色分割模型及CamShift目標色彩直方圖不再適用,從而導致追蹤窗口異常。考慮本文算法中膚色分割模型及CamShift目標色彩直方圖均基于膚色構建,因此使用色彩信息構建追蹤監測機制即為本文目的。若在人臉追蹤流程中,認為聯合膚色分割模型及CamShift目標色彩直方圖正確生效時,所返回的追蹤窗口將精確標記出當前人臉窗口,此時各個追蹤窗口內的色彩信息應趨向于膚色且穩定在一定區間。而當追蹤窗口發生偏移或尺寸異常時,由于包含了較多背景,此時追蹤窗口內色彩信息相較先前追蹤精度較高視頻幀內的追蹤窗口色彩信息將存在較為明顯差異。因此,對人臉追蹤精度的監測即可轉化為對追蹤窗口內色彩信息的異常監測。本文監測流程將采用追蹤窗口內Cr分量均值記錄不同視頻幀間的色彩信息變動,這是考慮到YCbCr 色彩空間下膚色區域的Cb、Cr分量與聯合膚色分割模型及CamShift 目標色彩直方圖直接相關,且由圖3(b)可知,膚色在Cr分量下與背景分布的重疊區域更小,這表明Cr分量下膚色與背景具有更大的差異性,即在追蹤精度降低時,采用Cr分量更有可能識別出膚色與被誤判背景間差異。
假設在追蹤精度較高時,CamShift算法返回追蹤窗口內的Cr均值變化呈正態分布。則對追蹤窗口內Cr均值的異常值監測即可采用拉依達準則[28]實現。為確定用于拉依達準則中數據呈正態分布時的方差及均值,本文假設在任意連續的20 幀視頻序列中,算法返回的追蹤窗口將保持較高追蹤精度,即該20 幀追蹤窗口內的Cr均值應呈正態分布。進一步,將不同的測試視頻序列以20 幀為單位劃分至多組,并采用Lilliefors[29]檢驗每組內Cr均值分布正態性。Lilliefors 檢驗基于Kolmogorov-Smirnov 檢驗改進,在μ及σ2未知的情況下采用樣本均值和方差作為估計值以確定理論分布函數F(x),并求出樣本經驗分布函數S(x)。最后,采用Kolmogorov-Smirnov 檢驗單樣本統計量的形式檢驗擬合優度并計算檢驗統計量D,依據查表所得LillieforsD界值進行判斷,其中檢驗統計量D計算形式如下:

由于Lilliefors 檢驗避免了在擬合優度檢驗前對分布參數的估計,因此Lilliefors檢驗對小樣本可用[30]。在本文正態性檢驗中,選取了來自OTB-2015 內Trellis、David、Man、Boy、BlurFace 共五部以人臉為追蹤目標的彩色視頻序列。測試時將每部視頻序列以20幀為單位分為多組,在每組首幀給定真實人臉窗口標注并采用基于聯合膚色分割模型的CamShift 算法進行追蹤。對于返回的20幀追蹤窗口內Cr均值,使用Lilliefors檢驗以0.05顯著性水平判斷每組內追蹤窗口Cr均值分布的正態性。
由表3可知,不同視頻序列經分割后的正態性檢驗均具有較高接受率。這表明在追蹤精度較高的情況下,多數視頻幀返回追蹤窗口內的Cr均值呈正態分布,即拉依達準則可用于本文中對追蹤窗口內Cr均值的異常值監測。
表3 不同視頻序列的分布正態性檢驗Table 3 Normality test of distribution for different video sequences

表3 不同視頻序列的分布正態性檢驗Table 3 Normality test of distribution for different video sequences
基于拉依達準則,可認為對于服從正態分布,且均值為μ,方差為σ2的數據N(μ,σ2)有:

由式(11)可知,數據N(μ,σ2)取值落在(μ-3σ,μ+3σ)區間之外的概率小于0.003。因此,超出上述區間的N(μ,σ2)取值即可視為異常值。在人臉追蹤監測流程中,基于拉依達準則的異常值監測公式表達如下:

式(11)及式(12)中,p代表當前監測視頻幀標簽,q代表初始視頻幀或最近一次復檢視頻幀標簽,代表第i幀追蹤窗口內Cr均值,為由i∈{q,q+20}計算的標準差。U(p,q)為追蹤監測評價指標,其取值為1時代表第p幀追蹤精度良好,當取值為0時,則代表第p幀追蹤精度可能由于聯合膚色分割模型或CamShift算法色彩直方圖的性能減弱而降低,此時則應重啟人臉復檢程序對人臉重新定位,同時重構聯合膚色分割模型及CamShift算法色彩直方圖。
在算法實際運行中,考慮到在給定第q幀真實人臉窗口后,第{q,q+20}幀內返回的追蹤窗口一般具有較高的追蹤精度,因此本文設置監測機制僅在連續獨立追蹤20 幀后啟用。對于當前第p幀返回的追蹤窗口,其追蹤監測流程可用圖4表示。

圖4 追蹤監測流程圖Fig.4 Tracing monitor flow chart
基于第4章對人臉追蹤過程可能產生的誤差分析,建立了相應的人臉追蹤監測機制。對于監測異常的視頻幀將啟動人臉復檢流程。不同于多數的目標追蹤算法,本文人臉復檢流程中的人臉重定位問題可獨立于追蹤過程實現,即人臉檢測器可在執行追蹤前,學習來自非同一追蹤目標的大量人臉樣本,并用于復檢流程中的人臉重定位。進一步,基于重定位后的人臉坐標信息,重構聯合膚色分割模型并CamShift算法色彩直方圖,即可有效避免追蹤過程中的模型誤差累積[31],實現較為準確的人臉追蹤效果。
目前人臉檢測領域研究成果較多,如王茹等人[32]提出的二分支神經網絡檢測算法以DSFD 人臉檢測算法為基礎,增加特征增強模塊以改進網絡提取特征性能,可在提升人臉檢測速度的同時確保檢測精度。此外,張海濤等人[33]設計雙層級聯卷積神經網絡來檢測人臉,其中前端神經網絡模型用于輸出多個疑似人臉窗口,后端神經網絡則用于判斷并輸出最佳檢測窗口,同樣取得了較好的檢測效果。然而,盡管基于深度神經網絡的人臉檢測器在檢測精度上較高,但其代價在于模型架構復雜且參數較多[34],對設備的計算能力需求較高[35]。本文綜合模型復雜度及檢測速度兩方面的考慮,選擇使用基于Haar特征的AdaBoost算法構建人臉檢測器。其中,Haar特征用于表示人臉灰度分布,而AdaBoost 算法則用于構建人臉檢測分類器,本文以FDDB人臉數據庫為基礎訓練人臉檢測器并應用于人臉復檢流程。基于AdaBoost算法的人臉檢測器訓練方式如下:
(1)給定n個訓練樣本(x1,y1),(x2,y2),…,(xi,yi),…,(xn,yn)。其中xi代表第i個訓練樣本,yi=1 代表該訓練樣本為人臉樣本,yi=0 則代表訓練樣本為非人臉樣本。
(2)初始化樣本權值
設訓練樣本中人臉樣本數量為p,非人臉樣本數量為u,則初始化第t輪訓練中第i個樣本權值方式如下:

(3)樣本權值歸一化

(4)最優弱分類器選取
基于AdaBoost算法的人臉檢測器由以下多個弱分類器組成:

式(16)中,x代表圖像中的待檢測窗口,f代表Haar特征,p代表不等號方向,θ代表特征值閾值。最優弱分類器選取即為尋找對當前人臉及非人臉樣本具有最小加權錯誤率εt的Haar特征及閾值θ:

(5)樣本權值更新
在經一輪循環取得最優弱分類器后,需降低正確分類的樣本權值并增大被錯誤分類的樣本權值,并進入下一輪循環,樣本權值更新策略如下:

(6)強分類器構建
經T輪循環后可得到T個最優弱分類器,對多個最優弱分類器組合即得到強分類器:

(7)強分類器級聯
在得到多組強分類器后,最終的人臉檢測器由強分類器以級聯形式組成。在級聯形式中,絕大多數非人臉窗口僅需較少強分類器即可被排除,因此級聯結構可顯著降低人臉檢測時間,且確保檢測準確率。強分類器的級聯示意圖如圖5。

圖5 強分類器級聯示意圖Fig.5 Strong classifier cascade diagram
實驗中發現,基于AdaBoost 的人臉檢測算法僅對正面人臉的檢測成功率較高,而對于出現人臉平面外旋轉的視頻幀則易發生人臉復檢失敗的情況。針對此類問題,設計對復檢失敗視頻幀及其后10 幀內視頻幀重新應用人臉追蹤流程,而對復檢失敗后第10 幀視頻幀再次應用人臉復檢流程。未對復檢失敗的相鄰視頻幀進行復檢是考慮到相鄰視頻幀間內容多具有高度相關性,因此針對相鄰視頻幀的人臉復檢仍具有較高失敗概率,這將增加不必要的計算開銷。
硬件環境:CPU:Inter CoreTMi7-8750h@2.21 GHz,RAM(16 GB)and HD(1.5 TB)。軟件環境:Microsoft Windows10 and MatlabR2017a。
數據集與對比算法:實驗采用OTB-2015 目標追蹤數據集內Trellis、David、Man、Boy、BlurFace共五組以人臉為追蹤目標的彩色視頻序列,模擬追蹤難點為光照變化、尺度變化、類膚色背景、運動模糊、平面內、外旋轉。對比算法為原始CamShift 算法、結合膚色分割的CamShift算法(CAMSHIFT-S)、結合膚色分割及監測機制的CamShift 算法(CAMSHIFT-SM,本文算法),以及Wu 等人用于OTB-2015 數據集測試的不同目標追蹤算法。此外,實驗同樣對比了近幾年的相關濾波類算法BACF 及深度學習類算法ECO[36]、MDNet[37]。測試平臺為OTB-2015提供的Tracker Benchmark。
6.2.1 追蹤精度評價
實驗中,采用單次成功率(one-pass evaluation,OPE)評估算法追蹤精度,同時對算法的運行速度做出評估。其中,OPE計算方式為視頻幀內真實標注與追蹤器返回窗口的重疊比:

式(21)中,BT代表追蹤器返回人臉窗口,BR代表數據集提供真實人臉窗口,成功率采用曲線下面積(area under the curve,AUC)計算。圖6展示了不同追蹤算法在五段測試視頻序列中的OPE曲線。

圖6 不同算法OPE曲線圖Fig.6 Different algorithm OPE plots
如圖6 所示,結合膚色分割及監測機制的CamShift算法(CAMSHIFT-SM)在五段人臉追蹤視頻序列中的精度為(64.2%),這一結果低于BACF 算法(77.0%),及深度學習類算法ECO(81.8%)、MDNet(74.2%),但優于KCF(60.0%)、STRUCK[38](48.8%)以及CSK(59.4%)等算法。此外注意到,原始CamShift算法的追蹤精度僅為29.8%,在實驗中劣于絕大多數對比算法,而在使用聯合膚色分割模型進行膚色分割預處理后,算法追蹤精度提升至40.0%。進一步,在加入追蹤監測機制后,算法的性能再次由40.0%提升至64.2%,這證明了本文所提聯合膚色模型及追蹤監測機制的有效性及必要性。進一步,對比不同挑戰下各類算法的追蹤性能,可發現本文算法(CAMSHIFT-SM)具有良好的尺寸變化適應性,這是由于經膚色分割后,CamShift算法在無類膚色背景干擾下能夠更為精確地計算出人臉的尺寸。另外,由于采用膚色為追蹤特征,因此本文算法受目標平面內及平面外旋轉所產生的形變影響較小,同時對快速運動所產生的紋理及輪廓模糊表現較為魯棒。最后,可發現算法在光照變化中性能表現稍弱,這主要是由于光照變化易引起膚色信息的波動,從而導致本文算法中膚色分割模型及CamShift目標色彩直方圖失效,繼而影響算法追蹤精度。
6.2.2 參數設置分析
在本文算法膚色分割流程中,非參數膚色分割模型所采用的閾值邊界決定了其對膚色及背景間的分割性能,并將進一步影響人臉追蹤精度。盡管本文所采用的閾值邊界由人臉數據集構建,但基于不同數據集得到的閾值邊界仍存在差異。為測試不同閾值邊界設置對人臉追蹤精度的影響,本文擴展了以下三組閾值邊界對非參數膚色分割模型中的參數設置進行分析:

式(22)由Chai 等人[39]在嘗試使用膚色圖實現人面部膚色分割時提出。此外,Basilio 等人[40]在研究中認為,Chai 等人提出的參數(式(22))僅適用于白種人膚色,且對膚色分割的準確度不高。因此,他們提出了一組新的閾值邊界:

最后,第三組閾值邊界由Kukharev等人[41]提出:

相較于式(22)與式(23),式(24)在構建閾值邊界時將光照強度納入對膚色的判定依據,因此該組閾值邊界可用于研究光照強度對膚色分割精度的影響。在采用包括本文所確定閾值邊界在內的四種非參數膚色分割模型進行分割的基礎上,測得的五組視頻序列中追蹤窗口與真實標注窗口平均重疊比如表4。

表4 不同非參數膚色分割模型下算法追蹤精度對比Table 4 Comparison of algorithm tracking accuracy under different non-parametric skin color segmentation models
觀察表4 可發現,采用本文與文獻[39]構建閾值邊界的算法均具有較高人臉追蹤精度。相比之下,由文獻[40]及文獻[41]構建的閾值邊界則在部分視頻序列中對算法的追蹤精度起到了負面作用。這主要是由于以上兩組閾值邊界在視頻幀中均產生了較為嚴重的過分割。為進一步說明以上問題,在圖7中展示了四組閾值邊界對不同視頻序列中部分關鍵幀的分割情況。
結合表4 及圖7 可發現,人臉膚色過分割問題與追蹤精度間存在一定關聯。如在子圖(3)、(4)、(8)中,所采用的閾值邊界均將人臉完全去除,從而導致了追蹤算法在構建聯合膚色分割模型及CamShift 目標色彩直方圖時失敗。此外,子圖(1)、(2)、(5)、(15)、(16)、(20)中同樣存在著一定程度的過分割問題,因此表4中算法相應的追蹤精度同樣較低。總體來看,本文及文獻[39]構建的閾值邊界在五組視頻序列中對人臉膚色的分割精度相對較高,故基于上述兩組閾值邊界構建膚色分割模型的算法追蹤精度良好。相比之下,文獻[40]、[41]構建的閾值邊界則在較多視頻序列中存在完全及部分人臉過分割問題,這也導致了以上兩組閾值邊界構建的算法追蹤精度相對較低。

圖7 非參數膚色分割示意圖Fig.7 Diagram of nonparametric skin color segmentation
6.2.3 追蹤監測流程分析
在本文追蹤監測流程中,拉依達準則用于監測追蹤窗口內Cr均值是否異常以對算法追蹤精度做出判定。其背后的依據是背景與膚色間的Cr均值存在較為明顯差異。為直觀說明基于拉依達準則的追蹤監測流程有效性,通過圖8展示了本文算法在視頻序列Man中所返回追蹤窗口內的Cr均值變化。該視頻序列以一段由暗至明的人臉為追蹤目標,且類膚色背景干擾較為嚴重。

圖8 視頻序列Man中追蹤窗口內Cr均值變化折線圖Fig.8 Line chart of Cr mean change in tracking window of video sequence Man
本文算法在視頻序列Man中的三處復檢幀已在圖7中標記并給出了相應追蹤狀態。觀察可知,三幀復檢幀均存在著追蹤精度降低的問題。其中第33幀的追蹤精度降低是由于場景中光照由暗轉明,導致當前聯合膚色分割模型及CamShift 目標色彩直方圖不再適用,從而引發追蹤窗口的尺寸擴大及偏移。而后續第70 幀及第90 幀的追蹤窗口偏移則是受到了類膚色背景(人臉右側的紅色書籍)影響。結合視頻序列中追蹤窗口內Cr均值變化來看,可發現以上三幀復檢視頻幀均由于追蹤窗口異常而包含了一定背景信息,因此相比先前視頻幀內追蹤窗口的Cr均值存在較為明顯差異。在此基礎上,拉依達準則通過對追蹤窗口內Cr均值的異常值監測即可有效檢出此類情況,從而啟動人臉復檢程序以確保追蹤穩定。
6.2.4 人臉復檢流程分析
盡管人臉復檢流程在多數情況下可有效實現對人臉的重定位,同時重構聯合膚色分割模型并初始化CamShift 目標色彩直方圖。但AdaBoost 的人臉檢測算法所給出的人臉坐標仍與真實標注的人臉窗口存在一定差異。表5 列出了本文中AdaBoost 人臉檢測算法在復檢幀中的人臉檢測窗口與真實標注人臉窗口的重疊比,同時給出在不同分辨率下算法對人臉的重定位速度。

表5 基于AdaBoost算法的人臉檢測統計Table 5 Face detection statistics based on Adaboost algorithm
觀察表5可知,AdaBoost人臉檢測算法在五組視頻序列復檢幀中所給出的人臉窗口均與真實人臉窗口具有較高的重疊比,同時在各分辨率視頻幀中的人臉重定位速度可達到實時效果,這表明了本文采用AdaBoost人臉檢測算法對人臉重定位的有效性。然而,盡管在多數復檢視頻幀中AdaBoost人臉檢測算法均能夠較為準確地給出人臉窗口,但由于本文中AdaBoost 算法僅接受了正面人臉樣本訓練,因此對存在平面外旋轉的人臉易出現檢測失敗的情況。針對這一問題,在表6中進一步對算法的人臉重定位幀數進行了統計。

表6 人臉重定位幀數統計Table 6 Statistics of face relocation frames
觀察表6可知:AdaBoost人臉檢測算法在多數視頻序列中的人臉重定位成功率較高,且五組視頻序列的復檢幀數占比均穩定在較小區間,這表明本文算法在絕大多數視頻幀中的人臉定位由追蹤流程完成。此外,可觀察到AdaBoost 人臉檢測算法在視頻序列Trellis 及Boy中的重定位失敗次數較多,這主要是由于視頻序列Trellis中存在明顯光照不均問題,而這對以人臉灰度分布為特征的AdaBoost 人臉檢測算法影響較大。另外,視頻序列Boy中則存在較多人臉平面外旋轉現象,這同樣會使得AdaBoost 算法難以有效檢出人臉。因此可以預見,采用更為魯棒且速度更快的人臉檢測算法將可以效降低人臉復檢次數,從而提升算法的整體追蹤速度,這也將作為本文后續的一個優化方向。
6.2.5 追蹤速度分析
表7 為不同算法的運行速度對比,限于篇幅,此處僅展示OPE性能優于本文算法的幾類追蹤算法。其中,對于深度學習類ECO 算法,分別測試了該算法在GPU及CPU上的運行速度。不同算法測試時所依賴硬件環境已在算法名稱的下方標出。
對比表7內各類算法運行速度可知,深度學習類算法MDNet及ECO的平均運行速度均較慢。而相關濾波類算法BACF 雖然運行速度稍快,但19 frame/s 左右的速度仍達不到良好的實時性。相比之下,本文算法在五段視頻序列中的平均運行速度接近160 frame/s,對比前四類追蹤精度更優的算法具有明顯的速度優勢。此外需要指出:由于深度學習類算法模型復雜度較高,因此通常需要在GPU 中訓練,當僅使用CPU 時算法的運行速度將明顯降低。以表7中ECO算法為例,當僅在CPU中運行時,該算法的跟蹤速度由在GPU 中的11 frame/s降至1.5 frame/s。相比之下,本文算法僅在CPU中測試,采用未經優化的Matlab 代碼即可達到接近160 frame/s的速度。

表7 部分追蹤算法運行速度對比Table 7 Speed comparison of partial tracking algorithms frame/s
6.3.1 追蹤結果展示
為便于直觀地對比分析,在圖9中展示了五段測試視頻序列中的部分算法追蹤結果,下面將基于追蹤結果對各算法進行詳細的定性評估及分析。
觀察圖9可發現,KCF算法由于無法自適應改變目標窗口大小,因此其在在視頻序列1中的第374幀、視頻序列3 中的第465 幀追蹤精度較低,且在視頻序列1 中的第400幀受復雜背景干擾發生目標窗口偏移。此外,在視頻序列1 中的第316 幀、視頻序列3 中的第400 幀、視頻序列4中的第10幀,原始CamShift算法在類膚色背景的干擾下出現了目標窗口的尺寸異常現象。類似的,在視頻序列2 中的第37 幀,視頻序列5 中的第10 幀,原始CamShift 算法則受類膚色背景影響發生目標窗口偏移,而本文算法與經膚色分割后的CamShift 算法(CAMSHIFT-S)由于排除了類膚色背景干擾,因此追蹤結果較為穩定。此外,對于CAMSHIFT-S 算法,其在視頻序列3中的第465幀由于未能適應場景變化導致膚色分割失效,使得目標窗口偏移至分割失敗的類膚色背景區域,相似情況同樣發生在視頻序列2、4、5 中,由于場景及光源強度存在變化,該算法在后期視頻序列中十分容易失效。最后,BACF算法與本文算法在五類視頻序列中的追蹤精度均較高,然而值得注意的是:在視頻序列1中的第400幀,視頻序列3中的第465幀、第747幀,本文算法將追蹤窗口定位至膚色較為集中的臉頰及脖頸區域,導致追蹤精度較低,這是由于CamShift 算法基于膚色概率密度投影決定追蹤窗口位置,而臉頰、脖子等人體部位膚色概率較高且分布較為密集,因此本文算法易將追蹤窗口定位至此類區域。

圖9 不同算法在部分視頻幀中追蹤結果Fig.9 Different algorithms track results in partial video frames
6.3.2 類膚色背景下算法追蹤性能評價
為進一步分析本文人臉追蹤算法處理不同等級類膚色背景下視頻序列的能力,本小節將對五組測試視頻序列的類膚色等級做出大致劃分,同時定性分析不同類膚色等級掉本文算法追蹤精度的影響。然而,由于不同視頻序列自身存在著諸多挑戰因素,本文算法的追蹤精度將同樣受這些因素影響。表8 展示了文獻[1]對五組視頻序列中各類追蹤挑戰的劃分。此外,本文同樣對各視頻序列中的類膚色等級做出定性評價,類膚色等級分為I(低)、II(中)、III(高)三級。

表8 各視頻序列中追蹤挑戰及類膚色等級劃分Table 8 Tracking challenges and skin color similarity level in each video sequence
分析表8 可知:視頻序列Trellis 及David 中均存在較多追蹤挑戰,且類膚色等級劃分為II(中),因此本文算法在兩組視頻序列中的追蹤精度并不高。相比之下,視頻序列Boy中同樣存在較多追蹤挑戰,然而其類膚色等級為I(低),即視頻幀中存在較少類膚色背景,因此本文算法在該組視頻序列中的追蹤精度相較上兩組視頻序列明顯較高。最后,本文將Man及BlurFace兩組視頻序列放在一起對比,這是由于以上兩組視頻序列均具有最少的追蹤挑戰,而類膚色的等級劃分卻不同。其中,視頻序列BlurFace 中的運動模糊、快速運動、平面內旋轉三項追蹤挑戰對以色彩為特征的CamShift 算法影響較低,且在等級為II 的類膚色背景下,聯合膚色分割模型可有效實現對非人臉背景的去除,因此本文算法在該組視頻序列中的追蹤精度較高。相比之下,本文算法在視頻序列Man中的追蹤精度則較低,這一方面是由于本文算法受光照變化這一追蹤挑戰影響較高,另一方面則是由于視頻序列Man 中存在較多的類膚色背景(如圖8中出現的紅色書籍、櫥柜燈等),此外該組視頻序列中同樣存在著明顯的偏色問題,這同樣提升了背景與目標膚色間的相似度。
綜上所述,本文算法在各類類膚色等級的視頻序列中均具有較為理想的追蹤精度。然而分析表明,與膚色相似度較高的背景仍會對算法追蹤精度產生一定干擾,因此考慮除膚色外更多魯棒的人臉特征將作為本文后續的一個改進方向。
針對人臉追蹤中可能出現的類膚色背景干擾問題,提出了一種基于膚色分割及追蹤監測機制的改進CamShift算法。相比原始CamShift算法,所提算法通過構建聯合膚色分割模型的方式,有效避免了類膚色背景可能對CamShift 算法造成的追蹤窗口偏移及尺寸異常問題。此外,所提出的追蹤監測機制可有效監測到由聯合膚色分割模型及CamShift 算法色彩直方圖失效引發的追蹤精度降低問題。最后,基于AdaBoost 算法的人臉復檢流程可實現對追蹤精度較低視頻幀的人臉重定位,并重構聯合膚色分割模型及CamShift算法色彩直方圖,使人臉追蹤過程更為魯棒。基于OTB-2015目標追蹤數據庫的測試結果表明,本文所提算法具有較高追蹤精度,且相比多數追蹤算法存在明顯速度優勢。最后,本文算法的不足在于:僅使用膚色特征易使得算法追蹤窗口落入人體其他膚色區域(如臉頰、脖頸處),且追蹤監測機制難以識別此類情況,造成追蹤精度的降低。因此本文下一步研究將致力于聯合膚色及紋理特征來實現對人臉的追蹤。