隨玉騰,閻志遠,戴琳琳,景 輝
(1.北京經(jīng)緯信息技術(shù)有限公司,北京 100081;2.中國鐵道科學研究院集團有限公司 電子計算技術(shù)研究所,北京 100081)
人臉識別技術(shù)經(jīng)不斷發(fā)展,已廣泛應(yīng)用于支付、身份核驗等多種場景。從圖像中快速、準確檢測到人臉是人臉識別的基礎(chǔ),識別的準確率受到人臉質(zhì)量的影響,其中,人臉遮擋是影響較大的一個因素。當旅客佩戴口罩、墨鏡等出行時,人臉信息被嚴重遮擋,這對鐵路實名制進站核驗系統(tǒng)的人臉算法提出了挑戰(zhàn)[1]?,F(xiàn)有人臉檢測算法存在遮擋人臉檢出率低,不能區(qū)分出人臉有無遮擋的問題。且在遮擋情況下,人臉識別算法不能快速、有效完成人臉識別,造成進站閘機識別通過率下降,導致旅客進站時間增長等情況,影響旅客出行體驗。因此,在人臉檢測算法中添加對遮擋類型(墨鏡、口罩等)和遮擋程度的判斷功能,從而對不同遮擋類型和不同遮擋程度的人臉進行分別處理,提高算法的識別成功率和可靠性。
由于進站閘機設(shè)備計算能力有限,對人臉算法要求更輕量、高效、多功能,需要一種計算開銷較小、同時滿足多任務(wù)識別的算法。目前常用的檢測算法主要有:雙階段目標檢測的R-CNN[2]系列算法,使用區(qū)域建議網(wǎng)絡(luò)生成一系列候選區(qū)域,對這些候選區(qū)域進行更細致的邊框回歸和分類,精度較高但是推理速度較慢;單階段目標檢測的YOLO[3](You Look Only Once)算法,將圖像分為多個小的區(qū)域,并在每個小區(qū)域上使用不同形狀和大小的目標框進行回歸,推理速度較快,但存在小物體檢測能力較差等精度問題;單階段目標檢測的SSD[4](Single Shot Detector)算法,通過使用不同層級的特征圖,結(jié)合不同大小、形狀的目標框?qū)ξ矬w進行匹配,提高了對小物體的檢測能力,但沒能較好地利用特征信息。
其中,單階段目標檢測算法在速度方面較優(yōu)秀,更適合進站閘機這種要求在工控機上完成人臉檢測、識別等一系列任務(wù)的資源受限設(shè)備。本文基于Retina-Face 單階段目標檢測算法,設(shè)計了一種能區(qū)分遮擋類型和遮擋程度的人臉檢測模型。
RetinaFace[5]是一種專門檢測人臉的單階段目標檢測算法,在多級特征圖信息的基礎(chǔ)上使用了特征金字塔網(wǎng)絡(luò)[6](FPN,F(xiàn)eature Pyramid Networks)的方法,更充分地使用特征信息,網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示。RetinaFace 使用多級特征的特征圖(P2~P6)構(gòu)成特征金字塔,在不同層級的特征圖上設(shè)計了大小不同、數(shù)量眾多的錨點框,使其獲得了出色的檢測性能。
RetinaFace 的主干網(wǎng)絡(luò)使用了ResNet152[7]網(wǎng)絡(luò)結(jié)構(gòu),特征金字塔中的P2~P5 層級對應(yīng)ResNet152的C2~C5 層級殘差網(wǎng)絡(luò)模塊,P6 則是使用步長為2、卷積核大小為3×3 的卷積對C5 的特征圖進行卷積計算后得到的特征圖。P6 層級采用Xavier[8]方式對參數(shù)進行隨機初始化。并對特征金字塔的每一層使用獨立的語義模塊,提高感受野并增強剛性語境的建模能力。

圖1 RetinaFace 算法網(wǎng)絡(luò)結(jié)構(gòu)
RetinaFace 采用多任務(wù)損失函數(shù),對于訓練階段的每一個錨點框,使用優(yōu)化算法尋求如式(1)的多任務(wù)損失函數(shù)的最小化。


Lpixel是人臉密集點回歸損失函數(shù);λ1~λ3為損失函數(shù)權(quán)重,控制每一個損失函數(shù)在多任務(wù)損失函數(shù)中的貢獻,在RetinaFace 中將4 個任務(wù)的權(quán)重分別設(shè)置為1、0.25、0.1 和0.01。
對于輸入大小為640×640 的圖像,在P2~P6 構(gòu)成的特征金字塔中共生成102300 個錨點框,每個層級的錨點框大小如表1 所示。設(shè)置錨點框大小按照的比例逐步遞增,長寬比均為1∶1,錨點框的大小從16×16 到406×406,適應(yīng)原圖中不同大小的人臉。其中,P2 層級共生成76800 個錨點框,占據(jù)了所有錨點框個數(shù)的75%。通過設(shè)計P2 層級使用較低級別的特征圖和密集的錨點框,旨在提高模型對面積較小、質(zhì)量較差的人臉的識別能力,進而提高人臉檢測模型在Wider Face 數(shù)據(jù)集[10]上的成績,但這種方式會帶來更多的計算開銷和更高的假陽性的風險。

表1 各個層級目標框的數(shù)目
一般而言,人臉檢測網(wǎng)絡(luò)只區(qū)分人臉和背景,為了提高檢出率,對被遮擋的人臉及遮擋物不做細致的區(qū)分,然而受到遮擋的人臉會造成識別準確率下降。本文提出的模型可增加檢測的類別輸出,在一個模型中實現(xiàn)口罩、墨鏡等遮擋類別的檢測,以便直接、有效地對存在人臉遮擋的旅客進行相應(yīng)處理,降低遮擋對人臉識別的影響,加快旅客進站過程,提高旅客出行體驗??紤]到密集損失函數(shù)在原損失函數(shù)中貢獻較少,在移除密集點回歸損失函數(shù)后,本文優(yōu)化后的損失函數(shù)為:

其中,gi,分別為預(yù)測佩戴墨鏡的概率和佩戴墨鏡的真實標簽,根據(jù)是否佩戴墨鏡,標簽∈{0,1};mi,分別為預(yù)測遮擋的概率和遮擋的真實標簽,根據(jù)遮擋程度的不同,標簽∈{0,1,2};λ1~λ4為第2~第5 個任務(wù)的權(quán)重,本公式中共有5 個學習任務(wù),權(quán)重分別設(shè)置為1、0.25、0.1、1、1。
對神經(jīng)網(wǎng)絡(luò)而言,輕量化網(wǎng)絡(luò)的研究目的是在模型識別準確率接近大型網(wǎng)絡(luò)的前提下,通過一系列方式提高模型參數(shù)的有效性,得到參數(shù)量、計算開銷均較小的模型。常見的提高模型參數(shù)有效性的方式包括使用特殊的卷積核(深度可分離卷積和分組卷積)和特殊網(wǎng)絡(luò)結(jié)構(gòu)等。MobileNet[9]是一種適用于資源受限設(shè)備的深度學習網(wǎng)絡(luò),該網(wǎng)絡(luò)使用了深度可分離卷積代替標準卷積,在ImageNet 數(shù)據(jù)集的驗證集上取得70.6%的準確率。為進一步減少計算開銷,本文采用0.25 倍通道數(shù)量的MobileNet 作為骨干網(wǎng)絡(luò)。
通過對閘機場景下采集到的帶有人臉的圖像進行分析,檢票的旅客人臉面積在原圖中占比適中,因此移除P2 和P6 這兩部分結(jié)構(gòu),可在不過度降低模型精度的前提下,大幅提高模型推理速度。綜上,本文改進算法的網(wǎng)絡(luò)結(jié)構(gòu)如圖2 所示。
目前,常用的人臉檢測質(zhì)量評估數(shù)據(jù)集是Wider-Face[10]數(shù)據(jù)集,但是Wider Face 中存在大量小的、質(zhì)量差的人臉,與閘機的使用場景較為不同。目前并無該場景的公開數(shù)據(jù)集,因此,本文仿照閘機使用場景搭建實驗平臺,進行數(shù)據(jù)采集。共采集、標注10000 張圖,得到12601 張人臉,并對于每一張圖像的人臉標注了人臉框的左上點和右下點、遮擋程度、是否佩戴墨鏡,并根據(jù)不同遮擋情況標注關(guān)鍵點信息。不同類型的樣本如圖3 所示。

圖3 各類型樣本示意
本文算法在Ubuntu18.04 操作系統(tǒng)環(huán)境下運行,基于PyTorch 深度學習框架,使用Python3.6 進行編程。機器硬件部分參數(shù):CPU 為Inter Xeon Gold5218@2.3GHz ×2,GPU 為NVIDIA TeslaV100@16GB ×4,R AM 為250GB。
(1)訓練過程采用帶有動量的隨機梯度下降優(yōu)化算法,動量大小為0.9,權(quán)重衰減系數(shù)為0.0005,批次大小為16×4。學習率下降采用熱身的方式,在初始的10 個輪次學習率設(shè)置為10?3,隨后加大到10?2,在第75 輪、100 輪、115 輪時分別下降10 倍,在120 輪停止訓練。
(2)訓練過程中,當錨點框與標簽中人臉框的交并比(IoU,Intersection over Union)大于0.5 時認為是正樣本,IoU 小于0.3 時認為是負樣本,其余的錨點框訓練時被忽略。這種策略會導致超過99%的錨點框為負樣本,存在樣本不均衡現(xiàn)象。因此本文采用在線難例挖掘方式,將訓練過程中正負樣本的比例控制在3∶1。
(3)因數(shù)據(jù)增廣能有效提高模型表現(xiàn),本文按原圖短邊長度0.3~1 的大小裁剪一塊方形區(qū)域,并將圖像縮放到640 ×640,通過這種方式產(chǎn)生更多的人臉圖像,提高模型的魯棒性。
(4)對于每個訓練樣本,本文以50%的概率進行隨機水平鏡像或顏色失真處理。使用相同的訓練方式和數(shù)據(jù)集對骨干網(wǎng)絡(luò)為MobileNet-0.25 的Retina-Face 算法進行訓練,得到一個輸出人臉坐標和5 點信息的模型。
為驗證算法在鐵路場景下的可靠性,按照鐵路使用場景建立一個標準測試數(shù)據(jù)集。該數(shù)據(jù)集按照人臉檢出難易程度分為簡單和困難數(shù)據(jù)集,其中,簡單數(shù)據(jù)集的人臉較清晰、無面部遮擋,困難數(shù)據(jù)集存在較為嚴重的人臉遮擋。使用鐵路人臉標準數(shù)據(jù)集對本文提出的改進算法和RetinaFace 算法模型分別進行測試,在推理速度幾乎相同的情況下,本文提出的改進算法不僅能準確檢測出被遮擋的人臉,且能識別出是否佩戴眼鏡、遮擋程度。對各個任務(wù)的表現(xiàn)如表2 所示。

表2 實驗結(jié)果
本文基于對RetinaFace 算法的研究與改進,對閘機使用場景進行分析后,提出了一種基于Retina-Face 的人臉多屬性檢測算法。該算法不但能輸出人臉框位置而且能準確檢測人臉是否佩戴墨鏡和遮擋程度等。在自建數(shù)據(jù)集上人臉檢出率為95.4%,推理速度35ms,同時能準確識別遮擋程度,從而對不同遮擋方式的旅客進行不同的處理,有效提高旅客進站效率,提升旅客使用體驗。在接下來的研究中,可以對數(shù)據(jù)集的標注信息進行優(yōu)化,增加人臉角度、性別、年齡等標簽,對人臉質(zhì)量進行更加細致的區(qū)分。