李詠豪
(南京理工大學計算機科學與工程學院,江蘇南京 210094)
由于新冠疫情的影響,為防止疾病傳播,在公共場合要求戴上口罩。人們戴上口罩后,對原有的人臉識別技術[1]形成了新的挑戰,為保證識別準確率,不少已有的人臉識別門禁系統要求摘下口罩進行識別,而這對人民健康又會帶來安全隱患。因此,需要對現有的人臉識別技術作進一步改進,允許不摘口罩的情況下進行識別,并能夠保證其識別準確率。特征臉識別方法[2-3]是常用的人臉識別技術之一,但是該方法在有口罩遮擋的情況下,識別準確率較低。本文在特征臉識別基礎上,提出了基于眉眼子區域和零均值預處理的特征臉識別方法,獲得了較高的識別準確率。
在訓練圖像無遮擋,而測試圖像有遮擋的情況下,如果將整幅圖像作為訓練或測試使用,在缺少嘴巴、鼻子等五官信息的情況下,識別率一定會受到較大的影響。在人臉有口罩遮擋的情況下,只有眉毛和眼睛的子區域未被遮擋,對訓練圖像截取眉、眼子區域,同樣,對測試圖像也截取眉、眼子區域,這樣,可進一步降低遮擋對五官信息的影響,從而保證人臉識別率。如圖1所示,圖1(a)為人臉原圖,圖1(b)為有遮擋的人臉圖,圖1(c)為截取眉眼后的人臉圖。
假設圖像用m*n大小的矩陣I來表示:

本文選取包含眉毛、眼睛部位的前k行以提取圖像眉眼子區域I’:


圖1 眉眼子區域的選取
人臉識別的精度較易受到外界光照的影響,這主要是由于當光照發生變化之后,人臉圖像的整體像素分布將會發生較大影響,從而影響基于特征臉識別方法的準確率。為降低該因素的影響,我們通過對圖像數據進行預處理,去除亮度差異帶來的干擾。如圖2所示,測試人臉偏亮時,特征臉方法中的前三個主分量受光照最為嚴重,對識別結果產生一定的影響。所以,考慮光照這一影響識別結果的重要因素,本文通過對圖像數據進行預處理,去除亮度差異帶來的干擾,從而優化改進了模型。

圖2 基于PCA的特征臉識別方法受到光照影響

圖3 當k為不同數值時的人臉識別準確率
本文對特征臉方法添加了一個自身圖像零均值的預處理。預處理具體步驟如下:首先,求出訓練圖像中每一幅圖像的灰度平均值,然后,將圖像中每一點像素(x,y)的灰度值I(x,y)減去該圖像自身灰度平均值生成向量放入數據庫中,即
以主成分分析算法[4-5]為基礎的特征臉識別算法步驟如下:
步驟一:生成訓練樣本
對于經上述預處理后的人臉訓練庫,我們從中為每人隨機選擇一定數量的圖像用來構成人臉訓練集,而剩下的人臉圖像則構成測試集。設人臉訓練庫中共有M幅圖像。假定人臉圖像矩陣為并將其每幅人臉圖像矩陣按列連接,構成m*n大小的列向量,得到訓練樣本集表示長度為m*n的列向量。
步驟二:執行K-L變換
首先,計算所有訓練樣本的均值,即平均臉,再將M幅圖像分別減去平均臉,得到M幅差圖像向量,減去平均臉后構成的矩陣
步驟三:求特征值和特征向量
步驟四:求特征空間
選擇前t個特征臉進行識別,若其對應的特征值越大,則其對應的特征向量上的投影對方差的貢獻也越大,這里,定義方差貢獻率:

步驟五:提取特征
我們將每幅人臉圖像向特征臉子空間進行投影,將投影系數作為特征空間中的一個點。根據這組系數,即可將其作為人臉識別的依據。
步驟六:識別分類
我們利用特征向量,計算人臉測試圖像和人臉構造圖像間的距離:

表1 識別準確率與同一個人的訓練圖像數目之間的關系

本文的人臉數據集中,訓練集和測試集中的圖像均為32×32大小,分別包括100個人。訓練圖像中每個類有6張圖,口罩遮擋圖像是每個類3張圖,每張人臉圖片都已經對齊。
我們利用本文算法,計算k取不同數值時得到的人臉識別準確率。從圖3可見,當k為9-14,人臉識別率達到峰值,接近22%,而當k在14-32之間時,人臉識別率呈遞減趨勢,該結果進一步證明了本文提出的模型的準確性。當k為9-14時,所截取的圖像中僅包括眉、眼子區域,當訓練人臉與測試人臉都只包含眉、眼子區域,而被口罩所遮擋的五官均不作考慮,這時,識別率可達到最大值。當k為32時,相當于不作任何截取,取整幅圖像進行訓練與測試,因受口罩等遮擋,因此識別率較低。
另外,本文還測試了識別準確率與同一個人的訓練圖像數目之間的關系,如表1所示。從表1可見,本文算法識別率達到60%(人臉圖像訓練數據只有一張圖像),隨著訓練圖像數目的增加,識別準確率也相應提升。因此,利用本文算法可以有效提高有遮擋情況下的人臉識別準確率。