王 釗 劉廣瑞 孟少飛
(鄭州大學機械與動力工程學院 河南 鄭州 450001)
人臉檢測是現代所有基于視覺的人與電腦、人與機器人和人機交互系統的基礎,在人臉識別、人臉追蹤、表情識別、數字視頻,以及游戲領域具有重要的應用價值。目前,國內外學者提出了許多有效的人臉檢測算法,常見的有先驗知識法、統計訓練法、膚色檢測法、模板匹配法[1]。其中模板匹配法具有過程簡單、容易實現等優點。
近年Dekel等[2]提出了一種基于最佳相似性(BBS)的模板匹配算法,該方法通過統計模板圖像和目標圖像搜索窗之間的最佳相似對(BBP)的數目,將對數最大的搜索窗作為最優匹配結果。該算法穩健性好、匹配精度高,并且能夠在部分遮擋的情況下完成匹配,但是該算法采用的搜索方式是逐點滑窗,計算量大,不能滿足實時要求,而且難以實現對旋轉、縮放目標的檢測。
針對以上問題,考慮以尺度迭代最近點算法[3](SICP)作為BBS算法的搜索方式,首先計算模板圖像與目標搜索窗之間的最佳相似點對,將其作為兩個圖像之間的對應點,然后利用SICP算法對搜索窗進行變換,得到新的搜索窗口,再計算得到最佳相似點對,直到滿足閾值要求。
在模板匹配過程中,傳統匹配算法會將窗口中所有像素或其他特征考慮在內,但是當檢測目標的背景發生變化時,這種策略是不可取的,不同的背景帶來的像素或特征變化是任意的,因此可能會導致匹配錯誤。針對此問題,Dekel等提出了一種新的相似性度量方法,該方法只考慮搜索窗內與模板相似的點,這種新的相似性度量準則稱為最佳相似性(BBS)。

(1)
其中:
(2)
d(p,qj)是一種距離測度,最常用的是歐氏距離:
(3)
式中:上標A表示像素值,一般為RGB顏色空間;上標L表示像素坐標位置;根據經驗,在實驗中一般令λ=2。文獻[5]中使用曼哈頓距離代替歐氏距離,使得計算效率更高,差異性更小;而在顏色空間中,HSV空間比RGB空間能更好地反映出顏色信息,所以本文采用的距離測度如式(4)所示。
d(p,q)=MDxy+λMDHSV
(4)
s.t.MDxy=|xp-xq|+|yp-yq|,
MDHSV=|Hp-Hq|+|Sp-Sq|+|Vp-Vq|
為了提高計算效率,在BBP中將模板和搜索窗內圖像分解為k×k的小塊,并取小塊的中心點代表這個小塊的所有點,這些小塊則組成了待匹配的點集。
迭代最近點算法(ICP)是運用最廣泛的點集配準方法,該算法配準精度高,易于實現,但是沒有考慮尺度變換的配準問題。在此基礎上,Du等提出了尺度迭代最近點算法(SICP),但是對較大點集處理的迭代速度比較緩慢。針對收斂速度問題,趙夫群等[6]引進了帶邊界的尺度矩陣,在不影響算法精度和收斂方向的情況下,減少迭代次數,提高收斂速度。
(5)
s.t.RTR=Im,det(R)=1
S=diag(s1,s2,…,sq),sj∈[aj,bj]
式中:S是一個有邊界的尺度矩陣。
迭代過程主要分為以下兩步[7]:
(1) 根據當前的變換參數(Sk-1,Rk-1,tk-1)建立點集之間的對應關系:
(6)
(2) 通過最小化距離公式計算出新的變換參數(Sk,Rk,tk):
(7)
重復以上兩個步驟,直到滿足停止條件。
原始BBS算法采用簡單的逐點滑窗匹配,逐個窗口計算BBS相似性度量值,選取相似性值最大的窗口作為最終匹配結果。這種策略重復計算多,計算量大,而且對于尺度變化、旋轉變化的目標檢測失效。而尺度迭代最近點算法作為一種點集配準算法,搜索速度快,對尺度變換和旋轉變換的圖像均能有較高的匹配效果,但是對點集的選擇要求比較高。因此考慮將兩種算法結合起來,以兩個圖像之間的最佳相似對點集作為SICP算法的配準點集進行迭代搜索,直到滿足閾值條件。BSICP算法如下:
1) 初始化變換參數(S0,R0,t0),將初始搜索窗口定義在目標圖像左上角。
2) 將模板大小調為與窗口大小一致,根據式(1)計算模板圖像與窗口之間的所有最佳相似對,生成窗口點集Pk和模板點集Qk。
3) 計算新的變換參數(Sk,Rk,tk):
(8)
式中:NBBPS表示最佳相似點對的數量。
4) 當滿足兩次變換之間的ΔS=|Sk-Sk-1|小于閾值ε或迭代次數k大于最大迭代次數Kstep時,停止迭代,否則返回步驟2)。
該算法在人臉檢測中的實現流程如圖1所示。

圖1 人臉檢測算法流程
實驗選用一臺Inter Corei5-8250U 1.60 GHz CPU和8 GB內存的計算機作為測試環境,仿真軟件為MATLAB 2018a。為了驗證算法的有效性、實用性,進行了兩個實驗。實驗一比較了幾種經典檢測算法和本文算法在數據集上的檢測率和檢測速度;實驗二是本文算法在視頻序列人臉檢測中的應用。
本實驗所用的IMDB-WIKI數據集是具有年齡和性別標簽的最大面部圖像公共數據集,包含各個年齡和不同姿態、背景的人物面部圖像。從中隨機選取了100幅圖片作為實驗測試數據,統一圖片大小為300×300,然后分別進行四種變換,生成包括旋轉、縮放、旋轉縮放和部分遮擋的四組圖像,加上原始圖像一共五組500幅圖像。
為了分析本文算法的檢測效果,選用了包括本文算法在內共五種人臉檢測算法進行比較,包括:SAD[8]、NCC[9]、HM[10]、YOLO[11]、BSICP。實驗結果如圖2和圖3所示,結果分析如表1和表2所示。

圖2 算法檢測率對比

表1 檢測率數據分析(%)

圖3 算法檢測速度對比

表2 檢測時間數據分析
由圖2和表1可知,HM、YOLO和本文算法平均檢測率比較高,分別為94%、95.6%和98.2%;由圖3和表2可知,NCC、YOLO和本文算法的平均檢測速度比較快,分別為0.095 s、0.845 s和0.077 s。不管在檢測率還是在檢測速度上,本文算法都有優于其他算法的檢測效果,對人臉檢測具有很好的使用價值。
本實驗所用數據來源于文獻[12]的標準視頻序列圖像庫,從中選取了6段彩色視頻,并從每段視頻中每相隔20幀以上取一幅共5幅圖像組成一組,其中一組序列檢測結果如圖4所示,(a)為手工標記,其余為檢測結果。通過實驗發現,本文算法能夠很好地完成檢測任務,有利于人臉檢測的應用。

(a)

(b)

(c)

(d)

(e)圖4 視頻序列人臉檢測結果
本文提出一種人臉檢測算法,在算法中引入最佳相似性這樣一種相似性度量來尋找對應點,然后利用SICP算法快速搜索到最優目標,實現了在圖像中對人臉的快速檢測。實驗數據表明,該算法在速度和檢測率上均優于其他常用的人臉檢測算法。由于復雜的人臉表情種類以及背景環境影響,該算法的計算量比較大,如何降低計算量和如何對非彩色圖像中的人臉進行檢測將是下一步的工作重點。