MindSpore:不用摘口罩也知道你是誰


【本期推薦專題】從三大主流前端技術出發,看看它們各自特性,以及如何從業務特性出發,選擇合適的框架。

摘要:我們基於MindSpore設計了一種人臉識別算法,以解決口罩遮擋場景下的人臉識別問題。該算法的開源代碼已經在MindSpore上首發了。

本文分享自華為雲社區《不用摘口罩也知道你是誰,MindSpore訓練口罩人臉識別模型》,原文作者:chengxiaoli。

人臉識別的目標是確定人臉圖像的身份。隨着智慧城市的建設,人臉識別的應用場景越來越多樣,比如嫌疑人追蹤、定位走失的老人兒童等。隨着新型冠狀病毒在全球范圍內的爆發,為了公共衛生安全,越來越多的人在公共場所佩戴口罩以降低感染傳染性疾病的風險。

傳統的人臉分析方法主要提取整張臉部的全局特征進行分析,口罩遮擋場景下,面部的部分重要部位(比如下頜等)被口罩覆蓋住,提取整張臉的全局特征將會引入大量噪聲。因此,口罩遮擋場景下的人臉分析任務亟需新的解決方案。我們基於MindSpore設計了一種人臉識別算法,以解決口罩遮擋場景下的人臉識別問題。該算法的開源代碼已經在MindSpore上首發了。

  • 論文:

Feifei Ding, Peixi Peng, Yangru Huang, Mengyue Geng and Yonghong Tian. Masked Face Recognition with Latent Part Detection. ACM Multimedia 2020. https://dl.acm.org/doi/pdf/10.1145/3394171.3413731

  • 開源地址:https://gitee.com/mindspore/mindspore/tree/master/model_zoo/research/cv/MaskedFaceRecognition

算法框架

目前還沒有針對口罩人臉的大規模的訓練數據集,為解決訓練數據不足的問題,我們基於已有的公開人臉數據集生成口罩人臉數據作為訓練數據。流程如下:

(1)采用已有的人臉關鍵點檢測算法(比如Dlib)檢測出無遮擋人臉圖片上的多個關鍵點位置;

(2)標注出口罩佩戴區域(鼻尖以下區域)的關鍵點位置;

(3)在口罩示例圖片(比如N95口罩)上手動標注關鍵點,並和人臉口罩佩戴區域的關鍵點一一對應;

(4)根據口罩示例圖片的關鍵點位置,對其做三角剖分,將口罩示例圖片划分為多個小三角形;

(5)根據口罩示例圖片和人臉圖片的關鍵點對應關系,將口罩示例圖片上的每個小三角形區域仿射變換到人臉圖片上,並進行平滑操作,生成口罩人臉圖片。

我們在人臉公開數據集WebFace上生成了8種不同風格的口罩人臉,將其與原始未佩戴口罩的人臉圖片混合,作為訓練數據。

https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202104/20/150534e7usifmzrtz38ux6.png

算法框架如圖所示,考慮到口罩人臉中的許多重要信息被口罩遮擋,我們提出了基於潛在區域檢測的二分支網絡模型以提取更具判別力的特征。其中,局部分支對潛在區域提取局部特征,全局分支對原圖提取全局特征。

我們將潛在區域定義為未被口罩遮擋的人臉區域,用https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202104/20/150659bigfh7vezxuiyycu.png表示,其中https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202104/20/150738dxdpyp4vr7yo8zq0.pnghttps://bbs-img.huaweicloud.com/data/forums/attachment/forum/202104/20/150757hvkjqk7iorlnznpw.png為待學習的參數。受空間轉換網絡(STN)的啟發,我們對https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202104/20/150830y68uulnfaqtl04po.png區域內的特征進行有限制的仿射變換,使其轉變為原圖大小,公式如下:

https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202104/20/150921ik6syf05xacith0p.png

其中,目標框定義為https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202104/20/150955zs87ntpjajqt8tbb.pngH和W分別為原圖的長和寬。通過該公式可以得到https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202104/20/1510313ojlzhmfvl33tgjm.png可以通過STN的仿射變換矩陣的參數https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202104/20/151103kbgb3ljratifjmvz.pnghttps://bbs-img.huaweicloud.com/data/forums/attachment/forum/202104/20/151119vyfddrltcttnjtjs.png轉化得到,由此可以檢測出潛在區域。根據潛在區域和原圖坐標的對應關系,采用雙線性插值將其擴充為和原圖一樣的大小。

網絡模型為二分支網絡,一分支對潛在區域提取局部特征,另一分支對原圖提取全局特征,兩分支共享網絡參數。各分支采用分類損失函數進行優化,對於局部分支,額外引入LPD損失函數:

https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202104/20/151207xqhgzg8uj8v0ydp6.png

其中,https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202104/20/151243gfv3wjjkro6h7off.png為鼻尖關鍵點的縱坐標。引入該損失函數的目的是規范網絡對潛在區域的定位,使其盡可能在人臉鼻尖以上的區域,因為根據先驗知識,口罩往往會遮擋鼻尖以下的臉部區域。在測試階段,將全局特征與局部特征結合作為最終的特征表達。

實驗結果

我們搜集了實際的口罩人臉數據集PKU-Masked-Face Dataset作為測試集,該測試集共有10301張屬於1018個不同身份的人臉圖片。大多數身份有至少5張佩戴口罩和5張不佩戴口罩的共計5個視角的人臉圖片,5個視角分別為:正面、左面、右面、俯視、仰視。口罩人臉圖片作為查詢圖像庫,正常人臉圖片作為待匹配圖像庫。

  • 測試集鏈接:

https://pkuml.org/resources/pku-masked-face-dataset.html

基於MindSpore實現的算法模型實驗結果如下表所示,其中Baseline為采用WebFace原始數據訓練的ResNet50基准模型,MG是采用WebFace增強數據訓練的ResNet50模型,LPD為我們提出的潛在區域檢測模型。

https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202104/20/1514069oucfqkhrcyet71l.png

MindSpore代碼實現

二分支網絡結構代碼:

https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202104/20/151512aoqc5xd1viy3oebs.png

其中global_out和partial_out分別對應對原圖提取的全局特征和潛在區域提取的局部特征,兩部分共用特征提取主干層。 

潛在區域檢測LPD模塊的具體實現:

https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202104/20/151546naqlq7anghcrnygb.png

其中輸入為原始圖片,輸出為未被遮擋人臉區域邊界坐標。

  • 相關訓練與推理代碼:

https://gitee.com/mindspore/mindspore/tree/master/model_zoo/research/cv/MaskedFaceRecognition

該代碼基於MindSpore框架實現,運行的硬件環境為Ascend910。算法解決了口罩遮擋場景下的人臉識別問題,對基准模型性能提升明顯,實驗結果如上表達到業界領先水平。

 

點擊關注,第一時間了解華為雲新鮮技術~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM