人臉識別技術原理與實現方式

2020-12-08 電子發燒友

人臉識別技術原理與實現方式

電子發燒友 發表於 2019-02-05 11:16:00

  隨著大數據時代的到來,「人臉」也將成為數據的一部分,人臉識別如何實現?本文將為大家從人臉檢測、人臉定位、人臉校準以及人臉對比等方面詳細闡述人臉識別的原理與實現方式。

  隨著計算機技術以及光學成像技術的發展,集成了人工智慧、機器學習、視頻圖像處理等技術的人臉識別技術也逐漸成熟。未來五年,我國人臉識別市場規模平均複合增長率將達到25%,到2021年人臉識別市場規模將達到51億元左右,具有巨大的市場需求與前景。

  安防、金融是人臉識別切入細分行業較深的兩個領域,移動智能硬體終端成為人臉識別新的快速增長點。因此,這三大領域將是人臉識別快速增長的最大驅動力。

  

  2017年,我國安防行業總產值達到6200億,同比增長16.98%,維持強勁發展勢頭。從細分產業來看,視頻監控是構建安防系統中的核心,在中國的安防產業中所佔市場份額最大。而人臉識別在視頻監控領域具有相當的優勢,應用前景廣闊。

  

  市面上的人臉識別解決方案也越來越多,但在系統框架上基本大同小異,大體框架如下圖所示:

  

  接下來對人臉識別算法各技術點逐一進行詳細介紹,包括人臉檢測、人臉定位、人臉校準、人臉比對、人臉反欺詐以及算法優化等。

  1. 人臉檢測

  人臉檢測算法繁多,我們採用由粗到精的高效方式,即先用計算量小的特徵快速過濾大量非人臉窗口圖像,然後用複雜特徵篩選人臉。這種方式能快速且高精度的檢測出正臉(人臉旋轉不超過45度)。該步驟旨在選取最佳候選框,減小非人臉區域的處理,從而減小後續人臉校準及比對的計算量。

  

  以下為人臉檢測算法的初始化接口, 根據實際應用場景設置人臉的相關參數,包括最小人臉尺寸、搜索步長、金字塔縮放係數等:

  

  人臉檢測實測效果如下圖所示:

  

  在人臉檢測領域比較權威的測試集FDDB上進行評測, 100誤檢時的召回率達到85.2%, 1000誤檢時的召回率達到89.3%。

  

  2. 人臉定位

  面部特徵點定位在人臉識別、表情識別、人臉動畫等人臉分析任務中至關重要的一環。人臉定位算法需要選取若干個面部特徵點,點越多越精細,但同時計算量也越大。兼顧精確度和效率,我們選用雙眼中心點、鼻尖及嘴角五個特徵點。經測試,它們在表情、姿態、膚色等差異上均表現出很好的魯棒性。

  人臉定位接口程序如下所示,需要先加載預先訓練好的模型,再進行定位檢測:

  

  人臉定位程序的效果如下所示:

  

  本算法在AFLW數據集上的定位誤差及與其他算法的對比情況:

  

  3. 人臉校準

  本步驟目的是擺正人臉,將人臉置於圖像中央,減小後續比對模型的計算壓力,提升比對的精度。主要利用人臉定位獲得的5個特徵點(人臉的雙眼、鼻尖及嘴角)獲取仿射變換矩陣,通過仿射變換實現人臉的擺正。

  目標圖形以(x,y)為軸心順時針旋轉Θ弧度,變換矩陣為:

  

  人臉校準C++代碼可參考如下所示:

  

  一般此步驟不建議使用外部庫做變換,所以這裡提供仿射變換python源碼以供參考:

  

  人臉校準的效果如圖所示:

  

  4. 人臉比對

  人臉比對和人臉身份認證的前提是需要提取人臉獨有的特徵點信息。在人臉校準之後可以利用深度神經網絡,將輸入的人臉進行特徵提取。如將112×112×3的臉部圖像提取256個浮點數據特徵信息,並將其作為人臉的唯一標識。在註冊階段把256個浮點數據輸入系統,而認證階段則提取系統存儲的數據與當前圖像新生成的256個浮點數據進行比對最終得到人臉比對結果。

  人臉比對流程的示意圖如下所示:

  

  通過神經網絡算法得到的特徵點示意圖如下:

  

  而人臉比對則是對256個浮點數據之間進行距離運算。計算方式常用的有兩種,一種是歐式距離,一種是餘弦距離。x,y向量歐式距離定義如下:

  

  x,y向量之間餘弦距離定義如下:

  

  餘弦距離或歐式距離越大,則兩個特徵值相似度越低,屬於同一個人的可能性越小。如下圖,他們的臉部差異值為0.4296 大於上文所說的該模型最佳閾值0.36,此時判斷兩人為不同的人,可見結果是正確的。

  

  把歸一化為-1到1的圖像數據、特徵點提取模型的參數還有人臉資料庫輸入到人臉比對的函數接口face_recgnition,即可得人臉認證結果。程序接口的簡單調用方式如下所示:

  

  人臉比對算法的準確率方面是以查準率為保證的,AUC (Area under curve)=0.998,ROC曲線圖如下所示:

  

  

  我們設計的比對模型主要特點是模型參數少、計算量少並能保證高的準確率,一定程度上適合在嵌入端進行布置。對比其他人臉比對模型差異如下表格所示:

  

  l far@1e-3表示將反例判定為正例的概率控制在千分之一以下時,模型仍能保持的準確率;

  l dlib在實際測試中,存在detector檢測不出人臉的情況,導致最終效果與官網上有一定差異;

  l resnet-18為pytorch的playground標準模型;

  l lfw/agedb_30/cfp_ff為標準人臉比對測試庫,測試過程中圖片已經過人臉居中處理。

  5. 人臉反欺詐

  從技術角度來說,人臉是唯一不需要用戶配合就可以採集的生物特徵信息。人臉不同於指紋、掌紋、虹膜等,用戶不願意被採集信息就無法獲得高質量的特徵信息。人臉信息簡單易得,而且質量還好,所以這引發了有關個人數據安全性的思考。而且在沒有設計人臉反欺詐算法的人臉識別系統使用手機、ipad或是列印的圖片等都能對輕鬆欺騙系統。

  所以我們採用多傳感器融合技術的方案,使用紅外對管與圖像傳感器數據進行深度學習來判斷是否存在欺詐。紅外對管進行用戶距離的判斷,距離過近則懷疑欺詐行為。圖像傳感器用深度學習算法進行二分類,把正常用戶行為與欺詐用戶行為分為兩類,對欺詐用戶進行排除。

  二分類算法能夠有效抵抗一定距離的手機、ipad或是列印圖片的欺詐攻擊。對人臉欺詐數據集與普通人臉數據集預測如圖所示:

  

  本二分類算法在100萬張圖片中準確分類的概率為98.89%,所以並不會對整體系統的準確率進行影響,保障系統的可靠性。

  6. 算法優化

  在使用神經網絡算法解決問題的時候,算法效率問題是必要的考量的。特別是在資源與算力不足的嵌入式端,更是頭等大問題。除了依託TensorFlow、Keras等開源框架,根據其前向傳播的原理寫成C++程序,還有必要的編譯優化外,模型權重參數的清洗和算法計算的向量化都是比較有效的手段。

  1) 模型權重參數清洗

  權重參數清洗對神經網絡算法的效率影響相當大,沒有進行清洗的權重參數訪問與操作非常低效,與清洗後的權重參數相比往往能效率相差6-8倍。這差距在算力不足的嵌入式端非常明顯,往往決定一個算法是否能落地。具體的方法就是先讀取原模型進行重組,讓參數變得緊湊且能在計算時連續訪問計算,最後獲得重組後的模型與對應的重組模型的計算方法。這個步驟需要一定的優化實踐經驗以達到滿意的效果,對模型讀取效率與運算效率都會有顯著的提高。

  2) 算法計算向量化

  對於算法的向量化的做法就是讓算法的計算能夠使用向量乘加等運算,而特別是在使用神經網絡算法情況下,大量的計算沒有前後相關性且執行相類似的步驟,所以向量化計算會對算法有明顯的提升,一般能把算法效率提升三倍左右。

  使用NEON指令集的SIMD指令取代ARM通用的SISD指令,是一個常用的算法向量化方法。在基於ARMV7-A和ARMV7-R的體系架構上基本採用了NEON技術,ARMV8也支持並與ARMV7兼容。

  以IMX6ULL晶片為例,可以通過查閱官方的參考手冊查看其NEON相關信息:

  

  下面舉例說明普通的編程寫法與NEON instrinsics編程、NEON assembly編程區別。以下為普通的編程寫法:

  

  以下為轉化為NEON instrinsics的編程:

  

  以為轉為NEON assembly的編程:

  

  一般NEON instrinsics已經能做到三倍的提速效果,而NEON assembly效果會更好一些。但是程序向量化需要特殊訪存規則,如果不符合則會對導致提速效果大打折扣。

  訪存特徵詳細分類如表所示:

  

  其中,無冗餘飽和順序模式是理想的訪問模式,能夠發揮算法計算向量化的效果。但是我們神經網絡算法的最基本的卷積、全連接等計算卻是冗餘飽和非順序模式的計算,這要如何解決呢?

  查閱相關論文、期刊對這程序向量化非規則訪存的研究,可以發現程序向量化有以下步驟:

  

  如上圖所示,需要對卷積、全連接等冗餘飽和非順序模式計算通過向量混洗為無冗餘飽和順序的模式,以達到優化的效果。

  7. 人臉識別效果展示

  基於PC的人臉識別展示demo如下視頻所示:

  

  我們的人臉識別算法已經成功移植到了cortex-a7的EPC-6Y2C-L平臺,並已經進行了一定的優化,後面會進行進一步的優化。人臉檢測效率為166ms左右,人臉定位效率為125ms左右,人臉比對的效率為493ms左右,合計人臉識別總耗時788.3ms左右。下面是在EPC-6Y2C-L的實測效果:

  

  最後附上EPC-6Y2C-L產品圖片:

  

打開APP閱讀更多精彩內容

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴

相關焦點

  • 人臉識別技術原理與工程實踐(10個月人臉識別領域實戰總結)
    1人臉識別應用場景(驗證)我們先來看看人臉識別的幾個應用。第一個是蘋果的FACE ID,自從蘋果推出FaceID後,業界對人臉識別的應用好像信心大增,各種人臉識別的應用從此開始「野蠻生長」。事實上,人臉識別技術在很多場景的應用確實可以提升認證效率,同時提升用戶體驗。
  • 人臉識別技術理論
    人臉識別,是基於人的臉部特徵信息進行身份識別的一種生物識別技術。用攝像機或攝像頭採集含有人臉的圖像或視頻流,並自動在圖像中檢測和跟蹤人臉,進而對檢測到的人臉進行臉部識別的一系列相關技術,通常也叫做人像識別、面部識別。
  • 生物識別方式有指紋人臉識別!而生物虹膜、指靜脈識別你知道嗎?
    消息傳到國內,中國銀行率先做出回應,為了保護客戶帳戶資金安全,決定將三星涉事機型指紋快捷登錄方式暫時關閉,並且會密切關注三星公司的修復進度。生物指紋解鎖,通過程序採樣,將手指表面的指紋圖樣轉化為數字密碼,通過信息匹配技術,在指紋傳感器上掃描指紋,匹配系統預設指紋數字信息,然後,通過複雜的驗證識別技術,實現指紋驗證身份,從而實現登錄終端。
  • 人臉識別技術的基本方法是什麼?
    分析算法人臉識別技術中被廣泛採用的區域特徵分析算法,它融合了計算機圖像處理技術與生物統計學原理於一體,利用計算機圖像處理技術從視頻中提取人像特徵點,利用生物統計學的原理進行分析建立數學模型,即人臉特徵模板。
  • 人臉識別真的安全嗎?關於人臉識別技術發展的瞻望
    日前,清華大學電子工程系蘇光大教授就算法、系統、標準、應用四方面深度講解了人臉識別技術的發展態勢。該技術的發展主要是依靠深度學習、三維人臉識別、超低解析度人臉三個方面,」蘇教授介紹道。,研製出低解析度人臉圖像的重建與人臉識別的綜合技術,實現基於低解析度人臉圖像的重建與人臉識別的視頻目標人的搜索與跟蹤。
  • 人臉識別技術介紹和表情識別最新研究
    作者:夏初來源:公眾號|計算機視覺工坊(系投稿)一、人臉識別技術介紹人臉識別作為一種生物特徵識別技術,具有非侵擾性、非接觸性、友好性和便捷性等優點。但是由於2D圖像反映二維平面信息,不包含深度數據,不能夠完整的表達出真實人臉模型。相比於二維人臉圖像,三維圖像不受光照等影響,具有更強的描述能力,能夠更為真實的反映人臉信息,在人臉合成、人臉遷移、三維人臉識別等場景中應用。3D人臉識別一般採用深度相機獲取人臉深度信息,主要包括雙目相機,基於結構光原理的RGB-D相機和基於光飛行時間原理的TOF相機。
  • 基於深度學習的人臉識別技術全解
    人臉識別技術詳解 1、人臉識別流程 人臉識別技術原理簡單來講主要是三大步驟:一是建立一個包含大批量人臉圖像的資料庫,二是通過各種方式來獲得當前要進行識別的目標人臉圖像,三是將目標人臉圖像與資料庫中既有的人臉圖像進行比對和篩選。
  • 人臉識別閘機功能及工作原理 看後恍然大悟!
    伴隨著人工智慧的迅猛發展,閘機的智能化也逐步被智能技術取代。人臉識別技術的閘機,幾乎可以算作當下熱門閘機系統。其高精度識別技術,充分保障來訪人員、內部員工的安全通行,可以大大減輕管理人員的工作量。那麼,人臉識別的工作原理到底是如何的呢?人臉識別閘機系統工作原理根據對機芯的控制方式的不同,分為機械式、半自動式、全自動式。有些廠商會把半自動式稱為電動式,把全自動式稱為自動式。
  • 硬核科普:一文看懂人臉識別技術流程
    所以,當前階段的人臉識別不是單一的技術,而是融合了神經生理學、腦神經學、計算機視覺等多方面學科的技術。不過,本質上它還是一項計算機視覺技術。當然,IT之家做這篇文章的重點不在於回顧人臉識別的歷史,而是和大家講講人臉識別背後的一些基本原理。
  • 人臉識別技術風險的法律防範
    人臉識別技術通常包括人臉檢測、人臉跟蹤、人臉比對三個部分。該技術的研究始於20世紀60年代,隨著計算機技術和光學成像技術的發展在80年代後得到提升,而真正進入初級應用階段則在90年代後期,並且以美國、德國和日本的技術實現為主。
  • 人臉識別技術存在重大網絡安全風險
    2017年春運人臉識別在部分火車站進站檢票時開始應用,引起很多關注,部分媒體也報導了生產商的核心技術掌控在日本企業手中,以及由此引發的對信息安全的擔憂。前不久央視「3·15」晚會現場對於人臉識別的實驗演示,再一次將網絡產品的人臉識別的風險清晰展示在觀眾面前。
  • 人臉識別技術在考勤的應用
    近年來,人臉識別技術發展迅猛,識別精度和速度不斷的得到提升,在眾多領域的應用裡都能「大展身手」使人眼前一亮,觸不及防。 首先,我們來了解一下什麼是人臉識別技術?人臉識別技術是指利用分析比較的計算機技術識別人臉。人臉識別是一項熱門的計算機技術研究領域,其中包括人臉追蹤偵測,自動調整影像放大,夜間紅外偵測,自動調整曝光強度等技術。
  • 人臉識別行業分析
    人臉識別技術原理簡單來講主要是三大步驟:一是建立一個包含大批量人臉圖像的資料庫;二是通過各種方式來獲得當前要進行識別的目標人臉圖像;三是將目標人臉圖像與資料庫中既有的人臉圖像進行比對和篩選。根據人臉識別技術原理具體實施起來的技術流程則主要包含以下四個部分,即人臉圖像的採集與預處理、人臉檢測、人臉特徵提取、人臉識別和活體鑑別。1.
  • 虹膜識別,聲紋識別,指紋識別,人臉識別的優缺點是什麼
    北京時間07月15日消息,中國觸控螢幕網訊,生物識別六大技術(指紋、臉象、虹膜等)趨勢分析。生物識別技術,通過計算機與光學、聲學、生物傳感器和生物統計學原理等高科技手段密切結合,利用人體固有的生理特性(如指紋、臉象、虹膜等)和行為特徵(如筆跡、聲音、步態等)來進行個人身份的鑑定。
  • 作為變革新技術,人臉識別技術帶來哪些好處呢?
    人臉識別技術是生物識別技術的其中一種,以人的面部特徵進行識別,是未來必然發展趨勢的新技術,也是目前應用最為熱門的刷臉技術,尤其是在支付、安檢等等有著廣泛應用。人臉識別技術是一項新的技術變革,它有哪些好處呢?
  • 揭秘:人臉識別系統能否識別雙胞胎呢?
    隨著人臉識別技術的應用場景越來越廣泛,不僅提高了工作效率,同時也較人工識別準確度大大提高。因為一些肉眼無法識別的特徵,機器卻能準確識別。然而,這並不是說,機器就能完全取代人工,比如,當人臉識別門禁監控系統遇上雙胞胎的時候,會發生什麼樣的事呢?能正確否識別出雙胞胎呢?
  • 依圖NIST奪冠,解密人臉識別算法原理
    中國公司取得如此戰績,一定程度上代表在人工智慧領域,我國的人臉識別技術已經走在世界前列,可喜可賀!為此,小編特別想探究一下人臉識別背後的算法原理。  1.基於幾何特徵的方法  基本思想:採用幾何特徵進行正面人臉識別一般是通過提取人眼、口、鼻等重要特徵點的位置和眼睛等重要器官的幾何形狀作為分類特徵。
  • 3D結構光人臉識別技術全解析
    3D結構光人臉識別技術全解析 2019年09月29日 10:38作者:網絡編輯:王動   9月份蘋果正式發布了iPhone 11和11 Pro系列新品手機,在原有技術的基礎上進一步提升了性能
  • 隱私問題與安全爭議未休,人臉識別技術的應用邊界該如何圈點?
    視頻圖像面部識別是一種常見的身份識別方式,現已被廣泛用於公共安全領域,但其容易受光照影響,同時人體面部與攝像機的成像角度也會顯著影響識別效果。該技術也被稱為2D人臉識別技術。在人臉識別智能門鎖投入市場的初級階段,產品所採用的大多為2D人臉識別技術。
  • 反人臉技術並非壞事 促進人臉識別技術進化和成熟
    人臉識別技術作為十大突破性技術之一,可見其無法比擬的優勢和發揮的商用價值,近幾年,基於人臉識別技術的產品和解決方案層出不窮,隱隱有著百花齊放,百家爭鳴的發展趨勢,所應用的場景也涉及到了各行各業,尤其是在支付、驗證、通行等等場景應用尤其突出。科技向善,隨著人臉識別技術的深入和成熟,「反人臉識別技術」也逐漸頻繁的出現,僅用照片、模型等方式方法幹擾人臉識別技術的新聞也不少。