張 雪, 郭佳昕
(北京工業(yè)大學 軟件學院, 北京100124)
人臉識別系統(tǒng)目前被廣泛應用在監(jiān)控場景中, 從監(jiān)控視頻中快速并準確獲取人臉身份信息對于公安破案等具有重要意義[1-3]. 人臉圖像質(zhì)量分析作為人臉識別過程中的關(guān)鍵一環(huán), 不同場景選擇不同的圖像質(zhì)量分析方法對識別的準確率有很大的影響, 特別是在監(jiān)控場景下, 由于拍攝的人臉圖像含有大量被其他物體遮擋、模糊、頭部姿態(tài)不正以及無法判斷人臉等的低質(zhì)量圖像, 若這些圖像進入識別系統(tǒng)會導致系統(tǒng)準確率下降, 嚴重影響識別效果[4,5]. 因此在監(jiān)控場景中預先采用合理的圖像質(zhì)量分析方法對提高人臉識別系統(tǒng)準確率有重要應用價值.
人臉圖像質(zhì)量分析作為圖像質(zhì)量分析的一部分,在保留傳統(tǒng)的圖像質(zhì)量分析方法基礎上, 加入人臉特有的因素. 2009年, 國際標準化組織制定了關(guān)于人臉圖像質(zhì)量的 ISO/IEC 標準, 對多種參數(shù)做出了規(guī)定[6]. 基于該標準國內(nèi)外學者對于人臉圖像質(zhì)量分析做了很多研究. 整體研究方法分為兩種: 基于深度學習的人臉圖像質(zhì)量分析和基于多因素融合的人臉圖像質(zhì)量分析.前者從大量數(shù)據(jù)中學習獲取人臉質(zhì)量關(guān)注的特征并進行質(zhì)量判斷. 在提取特征向量后對數(shù)據(jù)進行學習, 質(zhì)量好的樣本離中心距離較近, 不好的樣本離中心距離盡量遠, 最后根據(jù)樣本到中心的距離, 得到質(zhì)量分數(shù). 該方法2015年開始出現(xiàn), 隨后國外相繼出現(xiàn)了使用ResNet-50[7]、AlexNet[8]、GoogLeNet[9]等訓練人臉圖像質(zhì)量模型. 近兩年出現(xiàn)的有SER-FIQ利用隨機嵌入魯棒性來估計人臉圖像質(zhì)量[10]. 而這種方法普遍存在一個問題就是沒有針對具體的場景進行訓練, 雖然最終得到的質(zhì)量模型在識別系統(tǒng)上有較好的魯棒性, 但若是使用在含有以大量低質(zhì)量圖像為主導的視頻監(jiān)控場景中, 模型效果并沒有較為突出的表現(xiàn), 并且這樣訓練得到的模型無法適應特定場景, 一旦使用場景改變, 就需要重新訓練, 耗費大量的時間. 后者通過分析單個的質(zhì)量因素,例如光照、清晰度、遮擋等, 對其分配權(quán)重進行加權(quán)融合, 最終得到一個質(zhì)量分數(shù), 該分數(shù)就是人臉圖像的質(zhì)量分數(shù). Nasrollahi等[11]分別對人臉角度、圖像亮度、銳度和分辨率逐一計算, 通過賦予這4個因素一定比例的權(quán)重, 得到圖像的質(zhì)量分數(shù), 進而對人臉圖像質(zhì)量進行評價. Fourney等[12]為人臉提取了6個特征:人臉姿勢、亮度、銳度、人體皮膚的存在、分辨率,最終將這6個參數(shù)加權(quán)得到質(zhì)量分數(shù). 然而不同場景下指標的選取、權(quán)重的分配都會對質(zhì)量分析結(jié)果產(chǎn)生影響.
鑒于上述研究缺陷和問題本文選取人臉角度(pitch、roll、yaw) 和圖像清晰度作為人臉圖像質(zhì)量分析的兩個關(guān)鍵指標. 針對這兩個指標分別采用合適的方法訓練得到每個指標下的人臉圖像質(zhì)量分數(shù), 并設計基于聚類的人臉圖像質(zhì)量分析算法, 對這兩個指標分配權(quán)重進行加權(quán)融合, 獲得人臉圖像質(zhì)量分數(shù)的計算公式. 最后將所研究的人臉圖像質(zhì)量分析技術(shù)應用人臉識別系統(tǒng)中, 證明該技術(shù)能夠有效過濾監(jiān)控場景中的低質(zhì)量圖像, 提高識別系統(tǒng)的準確率[13].
本文分析過程主要包含3大模塊: 人臉角度計算、圖像清晰度計算、基于聚類的人臉圖像質(zhì)量分析系統(tǒng). 最后得到人臉圖像質(zhì)量分數(shù). 算法流程圖如圖1.
圖1 算法流程
首先分別訓練人臉角度模型和圖像清晰度模型,得到對應的分數(shù)值, 之后設計基于聚類的人臉圖像質(zhì)量分析算法, 并設計聚類系統(tǒng), 在前端調(diào)節(jié)兩者的權(quán)重后可視化聚類結(jié)果, 計算聚類純度, 最終確定人臉圖像質(zhì)量的計算公式.
(1) 概述: 人臉角度指的是根據(jù)一張二維的人臉圖像, 計算出這個人在實際三維空間中的面部朝向. 即輸入一張人臉圖片, 輸出表示方位的3個旋轉(zhuǎn)角度(pitch, yaw, roll), 其中, pitch表示俯仰角(關(guān)于x軸的旋轉(zhuǎn)角度), yaw表示偏航角(關(guān)于y軸的旋轉(zhuǎn)角度),roll表示翻滾角(關(guān)于z軸的旋轉(zhuǎn)角). 將一張二維圖像的特征映射到三維模型上效果如圖2所示[14,15].
圖2 人臉角度的三維效果圖
(2)本文使用方法: 由于人臉角度估計與頭部姿態(tài)估計的輸入輸出值相同, 本文中使用頭部姿態(tài)估計的經(jīng)典方法, 利用先分類后回歸的思想, 使用CNN預測pitch、yaw、roll三個值. 如圖3所示. 使用ResNet作為主干網(wǎng)絡, 分別全連接3個fc層, 每個層單獨預測.首先對3個歐拉角分類, 將角度范圍從[-99, +99]以3為間隔劃分, 劃分成66個區(qū)間. 分類得到的結(jié)果做回歸, 即Softmax將其映射為概率值, 根據(jù)Softmax定義,此時所有的概率值和為1, 求出期望后, 網(wǎng)絡的輸出可以被映射到[0, 99]這個區(qū)間范圍內(nèi), 乘以3減去99,這個區(qū)間范圍就被映射到了[-99, +99]這個區(qū)間范圍[16,17]. 然后計算回歸的Loss, 使用MSE Loss與BCE Loss按照一定權(quán)重加權(quán)求和, 對最終的Loss梯度反向,就完成了整個過程, 每個歐拉角的Loss定義為:
圖3 人臉角度算法流程圖
其中, H 表示交叉熵函數(shù), α表示權(quán)重系數(shù), M SE 為平方誤差損失函數(shù).
(3)模型訓練: 使用ALFW2000數(shù)據(jù)集, 包含2 000多張不同的頭部姿勢圖像, 訓練集和測試集按照7:3的比例劃分. 主要參數(shù)有:
1)學習率0.000 01;
2)一次訓練所取的樣本數(shù)即batch size為16;
3) epochs為20;
4)權(quán)重系數(shù)α 設置為1時, 損失最小.
(1)概述: 圖像清晰度和模糊度是相對的, 一張人臉圖像清晰度越高, 則模糊度越低. 反之如此. 因此使用圖像模糊度算法進行研究. 作為質(zhì)量評價中的重要因素之一, 其方法主要分為兩種情況: 一種是有參考算法, 即根據(jù)已有的圖像, 來判斷當前圖像是否模糊; 另一種是無參考的算法, 判斷圖像是否模糊; 常見的圖像清晰度算法主要有: Brenner 梯度函數(shù), 它是最簡單的梯度評價函數(shù), 它的原理是計算相鄰兩個像素灰度差的平方; Tenengrad 梯度函數(shù)采用Sobel算子分別提取水平和垂直方向的梯度; Laplacian 梯度函數(shù)與Tenengrad梯度函數(shù)基本一致, 用Laplacian算子替代Sobel算子即可; SMD (灰度方差)函數(shù)當完全聚焦時, 圖像最清晰, 圖像中的高頻分量也最多, 故可將灰度變化作為聚焦評價的依據(jù), 常用的很多, 但都是在最簡單的基礎上進行優(yōu)化和變換.
(2)本文使用方法: 由于攝像頭下采集到的圖片參差不齊, 將人臉圖像的清晰度作為人臉識別其中一項關(guān)鍵的指標很有必要. 本文使用OpenCV結(jié)合拉普拉斯方差算法計算人臉的模糊度進而得到圖像清晰度分數(shù). 拉普拉斯算子是各向同性微分算子, 主要用來測量圖像的二階導數(shù), 突出圖片中強度快速變化的區(qū)域, 一個二維圖像函數(shù)的拉普拉斯變換是各向同性的二階導數(shù)[18]. 定義為:
其中, ?2表示拉普拉斯算子, f 表示空間標量函數(shù), x和y表示圖像像素的兩個方向. 對圖片進行灰度處理后,將圖片中的某一通道用拉普拉斯掩模做卷積運算后計算方差[19]. 基于圖像模糊度進行訓練后, 得到每個圖像對應的分數(shù)值, 值越小圖像越清晰, 0表示非常清晰,1表示非常模糊.
本文設計了基于聚類的人臉圖像質(zhì)量分析算法,該算法在傳統(tǒng)的人臉識別流程的基礎上加入圖像質(zhì)量分析和聚類, 如圖4.
圖4 基于聚類的人臉圖像質(zhì)量分析算法
為了方便可視化聚類結(jié)果, 開發(fā)了基于聚類的人臉圖像質(zhì)量分析系統(tǒng), 通過調(diào)節(jié)圖像清晰度 b lur和人臉角度的權(quán)重, 對人臉圖像聚類, 聚類的純度越高則當前閾值下的人臉識別準確率越高. 純度的計算公式如下:
其中, mi表示為同一人的組數(shù), m表 示總組數(shù), 本文m 固定為200. 純度可表示為聚類的準確率, 即人臉識別的準確率.
系統(tǒng)主要涉及兩大部分的功能:
1)簇內(nèi)聚類. 該模塊的功能主要支持調(diào)節(jié)歐式距離, 計算各人臉圖像到簇心之間的距離, 使用K-means聚類算法將相似的人聚在一類, 并隨機可視化前200組聚類結(jié)果的人臉圖像. 在每一個組圖像下設置了判斷該組人臉圖像是否是同一人的選擇框, 如圖5所示. 選擇完成后即可計算出對應距離下的聚類純度.
圖5 簇內(nèi)聚類結(jié)果
2)簇間聚類. 在進行完上述的簇內(nèi)聚類后, 已經(jīng)篩選出聚類純度較高的簇內(nèi)距離, 接著調(diào)節(jié)簇間的閾值,此處引入人臉圖像質(zhì)量的兩個因素, 圖像清晰度b lur和人臉角度. 通過調(diào)節(jié)這兩個的權(quán)重值, 將篩選后的結(jié)果隨機分為兩組對比, 觀察這兩組的純度, 純度較高的清晰度和角度閾值即為最終分配的權(quán)重. 圖6是簇間聚類結(jié)果.
圖6 簇間聚類結(jié)果
一個較為完整的人臉識別流程要經(jīng)過以下幾個步驟: 人臉檢測、人臉對齊、提取特征、人臉識別. 本文在進行人臉檢測后, 先根據(jù)檢測到的人臉關(guān)鍵點進行人臉對齊校準(face alignment)操作, 校準之后的人臉roll就全部變成0, 因此在進行質(zhì)量分析時, 暫時不考慮roll的分數(shù)和權(quán)重. 下面重點介紹人臉質(zhì)量分數(shù)的計算流程:
步驟1. 運行完人臉角度模型, 得到人臉的俯仰角、偏轉(zhuǎn)角以及翻滾角, 將角度轉(zhuǎn)化為分數(shù)值如下:
其中, a、 b 為 參數(shù). y awscore是人臉圖像y aw角轉(zhuǎn)化后對應的分數(shù)值, pitchscore是 人臉圖像 pitch角轉(zhuǎn)化后對應的分數(shù)值, a nglescore是人臉角度的分數(shù)值. 一張人臉角度最正的分數(shù)是 pitch 、r aw 、r oll全部為0, 此時基于人臉角度的圖片分析, 該圖像質(zhì)量是高的.
步驟2. 運行清晰度模型并得到對應的blur分數(shù)值.
步驟3. 簇內(nèi)聚類. 采用本文研究的基于聚類的人臉圖像質(zhì)量分析技術(shù), 對人臉識別結(jié)果聚類, 選擇合適的聚類距離, 觀察聚類效果.
步驟4. 簇間聚類. 調(diào)節(jié)前兩步得到的 a nglescore和blur權(quán)重閾值, 并計算聚類純度.
步驟5. 通過實驗分析確定權(quán)重分別為0.6和0.4,最終得到圖像質(zhì)量分數(shù)q ualityscore. 計算公式如下:
其中, b lurscore是關(guān)于圖像清晰度的分數(shù)值, a nglescore是關(guān)于人臉角度的分數(shù)值.
由表1可見, 在融入基于聚類的人臉圖像質(zhì)量分析算法后, 同一批數(shù)據(jù)集在簇內(nèi)距離為0.45、0.5、0.6時調(diào)節(jié) b lur 和a ngle的權(quán)重計算得出的聚類純度均在0.6和0.4時最高, 因此當為b lur 和a ngle分配權(quán)重分別為0.6和0.4時, 對識別準確率的影響最大.
表1 不同參數(shù)下人臉圖像的聚類純度
為驗證該研究技術(shù)的有效性, 本文使用某公司2021年2月到2021年5月之間采集到的監(jiān)控視頻, 對視頻進行抽幀, 抽幀方法選取常用的幀差法, 即對相鄰兩幀作差分運算來獲得運動目標輪廓. 抽出的圖像在進行簡單的檢測和識別后, 最終包含有6 000 000張人臉圖像, 為了進行實驗對比, 得到更客觀準確的實驗結(jié)果, 本文將數(shù)據(jù)分為10個批次, 每個批次含有600 000張圖像, 其中訓練集470 000張, 測試集130 000張進行驗證.
對一批數(shù)據(jù)設置不同的閾值并對該閾值下的結(jié)果聚類可視化, 隨機展示200組聚類結(jié)果, 計算聚類純度.通過研究發(fā)現(xiàn), 加入人臉圖像質(zhì)量分析算法后, 圖像的純度相比沒有質(zhì)量過濾的純度有很大的提高. 如表2.
表2 不同聚類距離下的人臉圖像質(zhì)量分析結(jié)果
由表2可見, 在對一批數(shù)據(jù)測試后分別對比未加入人臉圖像質(zhì)量分析算法和本文研究的基于聚類的人臉圖像質(zhì)量分析算法的純度結(jié)果, 本文研究的技術(shù)使聚類純度平均提高了11.67%, 該方法在一批數(shù)據(jù)集上表現(xiàn)較好.
在10批數(shù)據(jù)上分別進行測試后, 采用基于聚類的人臉識別技術(shù)明顯優(yōu)于未加入質(zhì)量分析的情況, 聚類純度明顯提升, 因此本文得到的人臉圖像質(zhì)量計算公式具有一定的適用性. 如圖7、圖8、圖9分別是10批簇內(nèi)距離在0.45、0.5、0.6時加入和未加入圖像質(zhì)量分析技術(shù)的結(jié)果.
圖7 簇內(nèi)距離在0.45時質(zhì)量分析前后對比
圖8 簇內(nèi)距離在0.50時質(zhì)量分析前后對比
圖9 簇內(nèi)距離在0.60時質(zhì)量分析前后對比
由于本文研究的人臉圖像質(zhì)量分析技術(shù)的目的是提高人臉識別系統(tǒng)的準確率, 此處的人臉識別系統(tǒng)采用某公司的門禁系統(tǒng). 在未加入人臉圖像質(zhì)量分析前人臉識別Top10準確率79.56%, 采用本文技術(shù), 目前識別準確率已經(jīng)達到95.98%. 結(jié)果見表3.
表3 加入質(zhì)量分析前后人臉識別準確率比較 (%)
將本批從監(jiān)控場景下獲取到的數(shù)據(jù)集在基于AlexNet、GoogLeNet、CNN的人臉質(zhì)量模型上測試后分別計算Top1和Top10, 雖然這些模型在公開數(shù)據(jù)集上有較好的表現(xiàn), 但在監(jiān)控場景中, 采用本文提出的人臉圖像質(zhì)量計算公式應用在識別系統(tǒng)中得到的結(jié)果優(yōu)于其他方法. 如圖10.
圖10 不同人臉圖像質(zhì)量分析方法在識別系統(tǒng)的表現(xiàn)
本文研究了基于監(jiān)控視頻下的人臉圖像質(zhì)量分析技術(shù), 該技術(shù)可有效過濾低質(zhì)量圖像進入識別系統(tǒng), 提高人臉識別準確率. 該研究技術(shù)對于監(jiān)控下的人臉識別有很大意義. 目前人臉圖像質(zhì)量分析的研究已經(jīng)進入深度學習階段, 但在特定場景下深度學習的方法未必達到較好的效果, 相信日后會有更好的方法解決此問題.