1. 程式人生 > >深度|人臉圖像的技術原理及在電商業務中的應用

深度|人臉圖像的技術原理及在電商業務中的應用

人臉圖像/原理/電商業務/應用

1、概述

時至今日,計算機視覺和深度學習的迅速發展,給很多技術領域帶來了顛覆性的變化。

人臉圖像處理(Face Image Processing)就是其中的典型例子:在互聯網時代,該技術通過各種各樣的應用方式,為人們的生活帶來了便利和安全,並增添了樂趣。

另一方面,電子商務領域歷經PC互聯網和移動互聯網時代,進入到了智能化時代;它所擁有的海量圖像視頻數據、豐富的應用場景,以及高難度的性能挑戰,為計算機視覺技術,尤其是人臉技術,提供了大放異彩的舞臺。

技術分享圖片

圖1.電商業務中人臉技術的應用架構

如圖1所示,電商工作中需要綜合利用人臉技術。從業務看,涉及到4種類型的場景:

  • 後臺圖像數據管理:比如違禁圖片和廣告圖片的管理;

  • 電商的實時應用:例如直播、 短視頻;

  • 電商導購:例如美妝導購和試戴,改善用戶體驗;

  • 人臉支付:已經在移動支付和金融應用中普及使用了。

從算法技術看,人臉技術包括了3個主要模塊,即:

  • 人臉檢測(找到輸入圖像中的人臉位置)。

  • 特征點定位(將人臉中的關鍵點位置找到,例如:眼睛、鼻子、嘴巴以及輪廓上的關鍵點)。

  • 人臉識別(在預先存儲的人臉圖像數據庫進行查詢,獲取身份識別的結果)。

圖像算法在實際中落地,可以采用不同的運行模型,包括: 雲端部署、移動端部署。

雲端模式中,算法和數據都在服務器上運行,圖片需要集中存儲,適合後臺的批量圖像處理。

移動端部署是為了達到實時響應,將算法部署在移動端(通常是手機)上,適合單個業務請求的實時響應。

電商業務會根據實際需要,采用相應的方案;在有些情況下也可以將雲端和移動端結合起來,形成一種混合部署方式:雲+端。

更進一步,現在有的公司在探索將人臉算法運行在芯片上的技術方案,可以形成邊緣計算的模式。

本文結合電子商務業務場景,介紹人臉圖像技術的原理,以及如何在業務中使用這些技術構建業務應用。

2. 人臉圖像的技術原理

經過多年的不懈努力,研究者們在人臉圖像技術方面取得了日新月異的成就。這些技術一般涉及到兩種類型,即:傳統方法和深度學習為主的方法。

2.1基於深度學習的人臉檢測(MTCNN)

人臉檢測技術的裏程碑是Paul Viola和Michael J. Jones在2000年左右提出的級聯人臉檢測器,該方法采用了快速計算的Harr特征,通過Adaboost算法選擇出有效特征和一系列的弱分類器(weak learner),最後以線性組合方式得到強分類器,提高了檢測的速度和精確率,可以實時運行。

近幾年,深度學習發揮出越來越大的威力,將人臉檢測技術推向了新的高度,因此湧現了很多基於Deep Learning的人臉檢測算法。其中比較有代表性的是MTCNN方法(Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Neural Networks),它是由中國學者Kaipeng Zhang、Yu Qiao等提出來的。

該方法被稱為MTCNN(Multi-task Cascaded Convolutional Neural Networks),借鑒了級聯檢測器的思想,通過不同的CNN分類器聯合訓練,將人臉檢測和特征點定位的任務結合在一起。

技術分享圖片

圖2.MTCNN方法的系統架構

它的框架如圖2所示,包括3個CNN的網絡結構(P-Net,R-Net,O-Net)。

(1)Proposal Network (P-Net):這是一個全聯接的CNN網絡,用於獲取人臉區域的候選窗口,以及人臉邊界框(bounding box)的回歸向量。基於邊界回歸信息對候選框進行校準,那些高度重疊的候選框通過非極大值抑制(NMS)操作進行合並。

(2)Refine Network (R-Net):從P-Net階段通過的所有候選窗口,輸入R-Net網絡,該網絡將大部分的False Positive區域作進一步的排除,然後進行邊界框回歸和NMS操作。

(3)Output Network (O-Net):該結構和R-Net層類似,但是該層對人臉區域進行了更多的監督,同時還會輸出5個特征點的位置。這一步輸出最終的人臉框和特征點位置(左眼、右眼、鼻子、左嘴角、右嘴角)。

具體的網絡結構如圖3所示:

技術分享圖片

圖3.網絡結構(P-Net、R-Net、O-Net)

在訓練過程中,MTCNN方法從三個任務對CNN檢測器進行聯合訓練:人臉分類、邊界框回歸、人臉特征點定位。它綜合考慮每個任務對應的損失函數,構成了多任務的總的損失函數。

訓練過程中,采用隨機梯度下降方法(SGD)對這三個CNN進行優化求解。此外,該方法采用了Hard Sample Mining的策略,每次只後向傳播前70%樣本的梯度,這樣能夠自動化訓練,且取得更好的訓練效果。

圖4是檢測和特征點定位的示例圖:

技術分享圖片

圖4.MTCNN方法結果的實例圖

從實際運用看,MTCNN方法在FDDB和WIDER FACE集合上取得了很不錯的檢測效果,同時還能夠實時運行(在GPU環境下)。

該方法在GitHub上開源代碼了(開源地址是:https://github.com/kpzhang93/MTCNN_face_detection_alignment),以Caffe為基礎框架。很多研究者以它為基礎,提出很多改進版本,包括Mxnet、Windows等平臺上的人臉檢測運行包,獲得了廣泛的應用。

2.2特征點定位

MTCNN方法可以輸出人臉上5個特征點的位置,即:左眼、右眼、鼻子、左嘴角、右嘴角。

實際上根據不同應用,特征點的數量定義各不相同,少則幾個,多則上百個,通常分布的區域包括眼睛、眉毛、鼻子、嘴巴、臉部外輪廓等,如圖5所示。

技術分享圖片

圖5. 人臉特征點的定義示意圖

這個技術的核心是如何精確計算出人臉中特征點的位置,一般涉及到的算法分成3種,分別是:

  • ASM(Active Shape Model)和AAM (Active Appearnce Model)的方法。

  • 基於級聯形狀回歸的方法。

  • 基於深度學習的方法。

前兩種方法都屬於傳統方法,定位效果不錯且檢測速度快,實際中都有開源包,例如Stam開源包是ASM的一種實現方式;另外,Ensemble of Regression Tress(ERT)是級聯方法,開源的dlib 庫中(http://dlib.net/),有該方法的實現代碼。

基於深度學習的特征點定位算法,在2013年開始取得突破,香港中文大學的Tang Xiaoou教授研究組提出了DCNN的級聯結構(Deep Convolutional Network Cascade for Facial Point Detection),在特征點定位上取得了不錯的效果。

在此基礎上,Zhou Erjin等提出了一個從粗到精的人臉特征點定位方法(Extensive Facial Landmark Localization

with Coarse-to-fine Convolutional Network Cascade),首次利用卷積神經網絡,實現了68個人臉特征點的高精度定位。

該算法將人臉特征點分為內部特征點和輪廓特征點,內部特征點包含眉毛、眼睛、鼻子、嘴巴共計51個位置,輪廓特征點包含17個特征點。具體采用的系統架構和CNN網絡結構,如圖6所示。

技術分享圖片

圖6.人臉特征點定位(a)系統架構

技術分享圖片

圖6.人臉特征點定位(b)CNN網絡結構

2.3人臉識別

人臉識別的過程是:在預先存儲的人臉圖像數據庫中進行查詢,獲取身份識別的結果。其中最關鍵的步驟是提取人臉表示特征,最近幾年的突破,都是采用深度學習的方法。

在經過人臉檢測和特征點定位等模塊之後,輸入人臉區域圖像樣本。人臉識別的大致流程如下:

  1. 樣本預處理:包括裁剪、對齊、相似變換等,然後把人臉樣本圖像按照不同尺度、不同區域,劃分成若幹子區域(patch)。

  2. 基於CNN的特征提取:訓練一個CNN,目標函數可以定義為人臉分類或其他目標函數;將訓練好的網絡中最後一層(一般是fc層),提取出來作為特征向量。如果有多個子區域patch,就訓練多個CNN網絡,並且把所有CNN獲取的特征向量串接,獲得一個超長的特征向量(一般幾萬到幾十萬維)。

  3. 特征比對:對超長特征向量進行降維操作,壓縮到低維特征向量(例如160維向量),利用低維向量訓練對比模型,判斷兩個向量是否屬於同一類,即同一個人。

從具體方法上看,2013年提出的DeepFace方法是CNN在人臉識別的開山之作,人們後續又提出了DeepID和FaceNet等方法,而且都能體現DeepFace的身影。

對人臉識別技術發展起到重要促進作用的另一因素是人臉圖像數據庫的建設,它為技術的評測提供了舞臺和標準。如今幾個著名的人臉識別的評測數據庫包括:FERET人臉數據庫、LFW數據庫、Mega Face數據庫。

3. 人臉圖像技術基於電商業務的應用實踐

從之前所列的4項業務應用看,美妝導購和人臉支付是日常比較常見的了,本文主要介紹圖像管理和電商直播中如何使用人臉技術。

3.1後臺圖像管理

在電商基礎業務中,需要對肖像權使用情況進行監測,這個需求通常與兩個場景有關:

第一個是廣告侵權檢測,有的商家邀請了明星代言店鋪的商品,而有些侵權商家會盜用明星代言商品圖;因此需要進行明星臉識別。

第二個是商家實拍認證,判斷拍攝圖片是否為商家合作模特拍的圖像;有人臉的模特照片可通過人臉識別方式解決。

歸納起來就是使用人臉識別技術來判明圖片中的人物身份。本文以廣告侵權處理場景為例,介紹2種不同的解決方案。

被動的廣告侵權檢測

給定商品圖像,如何判定它是否侵犯明星肖像權?首先構建一個明星庫,包含需要保護人物的肖像圖像。明星數量通常與實際業務相關,一般有數百人,圖像數量有限。特征比對步驟,可以采用快速排序的方法。具體的流程如圖7所示。

技術分享圖片

圖7.廣告侵權檢測的流程圖(被動)

主動的廣告侵權稽查

該任務是:給定明星圖像,對全平臺上的商品進行稽查,將侵權商品查找出來並進行處理。

首先要按照人臉檢測、特征點定位、特征向量提取的步驟,將商品圖中的人臉對象進行處理,構建商品圖中的人臉庫。

如圖8所示,查詢對象是海量的商品圖中的人臉庫,通常規模很大,數以百萬計,有的平臺的規模是數十億。

技術分享圖片

圖8.廣告侵權檢測的流程圖(主動)

因此特征搜索的步驟,不能采用簡單的排序方式了,而是要構建一個搜索引擎,通過近似最近鄰查找的方法完成搜索任務。

鑒於搜索數據庫的量級很大,因此對每個查詢都要計算所有的距離是非常困難的,同時存儲海量圖片的特征向量需要耗費巨大的存儲空間。

為了解決這些問題,采用了近似最近鄰算法中的局部優化的乘積量化算法(Product Quantization, PQ),訓練得到粗量化質心和細量化質心,粗量化的結果用來建立倒排索引,細量化的結果用來計算近似距離。

通過這種方法,既能保證商品圖的人臉圖像索引結果的存儲需求合理,也能使檢索質量和速度達到更好的水平。

這兩種方案的對比,可以總結如下:

技術分享圖片

3.2直播應用

後臺圖像管理部署在雲端執行,而電商直播中的人臉技術應用,需要在手機上運行。直播中的人臉技術總體架構如圖9所示:

技術分享圖片

圖9.直播中的人臉技術總體架構

直播中所涉及的底層技術(人臉檢測、特征點定位和跟蹤)大部分都需要在手機上實時運行,由此需要遵循新要求:速度要足夠快,模型要足夠小,同時保證有足夠高的準確度,這是需要折中的過程。

目前所采用的解決方案大部分是通過算法優化和模型優化的工程手段,將算法移植到手機端。

在實際業務中實現了人臉特征點跟蹤的SDK,並部署在移動端,應用在電商直播場景中。

基於深度學習的人臉技術雖然取得了顯著的成果,但是深度學習對大量計算資源的需求,以及復雜的模型(幾十MB到幾百MB),難以應用在移動端。

傳統算法雖然效果沒有超過深度學習,但是資源消耗很小,模型也簡單,在應用過程中更加適合於用到目前的移動設備上來。

隨著處理器技術發展和深度學習優化技術的逐漸成熟,基於深度學習的人臉技術會更加普及。

人臉檢測算法

在調研了眾多的人臉檢測算法後,最終選用了基於Pixel Difference(PD)特征的PICO算法(Object detection with pixel intensity comparisons organized in decision trees)。該方法采用像素間的灰度差值作為特征,可以提高檢測速度;更進一步,將PD特征進行歸一化,提出了Normalize Pixel Difference(NPD)特征,提高了對光照的魯棒性。這些方法計算資源消耗少、模型簡單,適合應用於移動設備。

得到了分類器之後,還需要做代碼優化的工作。針對移動端CPU的特點,進行了定點化。采用了查表(Look Up Tabel)的方法,將NPD特征預先計算的結果存儲在一個二維表中;在實時計算特征的時候,直接從內存中讀取,從而提高檢測速度。最終得到的人臉檢測SDK具備以下特性:

技術分享圖片

人臉特征點跟蹤算法

采用基於Ensemble of Regression Tress(ERT)算法的人臉特征點檢測方法,利用PD特征,學習每個特征點的局部特征,然後將特征組合起來,使用線性回歸檢測關鍵點;檢測速度快,定位效果也不錯。

同時需要做一系列優化,包括如下幾個方面:

  • 使用OpenMP並行技術對訓練階段進行優化:將訓練速度提高7~8倍。

  • 將PD特征替換為NPD特征,提高了算法對光照的魯棒性。

  • 針對實時直播,利用視頻中前後兩幀關系修正特征點預測結果。

  • 通過參數定點化、huffman編碼等方法對模型進行壓縮,壓縮後的模型容量約為原始模型的35%。

最終得到人臉特征點定位SDK,具備以下特性:

技術分享圖片

圖10(a)是人臉檢測和特征點定位的示例圖。從中看到算法具有較好的魯棒性,對於不同的姿態、不同的光照下的人臉圖像,能夠準確的定位出來,為後續的直播打下基礎。

直播中可以利用這些算法來做互動效果,包括人臉的美膚/美白,以及特效,如圖10(b)所示。

圖10. (a)人臉檢測和特征點定位的示例圖

技術分享圖片

圖10.(b)美顏圖像實例

總結

綜合本文中的應用實例可以看出,人臉技術和電商業務場景的結合,為保障平臺運營和用戶體驗,帶來了新的價值。一方面,通過人臉識別方法自動識別商品圖像中的人物,提升了後臺圖像管理的效率;另一方面,電商直播中應用人臉技術,實現了美膚和特效等功能,改善了用戶體驗。

深度學習方法為人臉識別技術領域帶來了巨大的飛躍,而傳統方法能夠保證足夠的性能和足夠的準確度,達到實時運行的目標。因此,在開發過程中,需要根據具體需求來進行方案的權衡和選擇。

圖像算法技術的開發,需要在日常工作過程中積累基礎模塊,逐步拓展其運用場景,並且根據業務場景變化,進行不斷的叠代,為業務需求提供保障。


有獎調研:


現如今,人臉識別技術發展已經相對成熟,在安全驗證、人機交流、公安系統等方面廣泛使用的同時,也在視頻會議、檔案管理、醫學醫療等方面發揮著很大的作用。 未來,人臉識別技術是全新人機交互的開端,同時也是隱私道德矛盾的碰撞。

本調研是由51CTO發起,旨在了解互聯網從業人員對人臉識別技術的認知度,進而分析人群比、城市分布、使用場景等規律,為今後人臉識別功能的用戶體驗設計優化做基石。


:此次問卷為非記名調查問卷,共10個問題,填寫時間約3分鐘。填寫問卷者(抽取100位)將有機會獲取《刷臉背後》、《虹膜識別 》、《基於稀疏算法的人臉識別》等暢銷書籍。


調研鏈接: https://jinshuju.net/f/aGc5n7


作者:蘑菇街張洪明(民達)


深度|人臉圖像的技術原理及在電商業務中的應用