AI改變世界,電商業(yè)務(wù)場景中的人臉識別怎么玩?
原創(chuàng)【51CTO.com原創(chuàng)稿件】
1、概述
時至今日,計算機(jī)視覺和深度學(xué)習(xí)的迅速發(fā)展,給很多技術(shù)領(lǐng)域帶來了顛覆性的變化。
人臉圖像處理(Face Image Processing)就是其中的典型例子:在互聯(lián)網(wǎng)時代,該技術(shù)通過各種各樣的應(yīng)用方式,為人們的生活帶來了便利和安全,并增添了樂趣。
另一方面,電子商務(wù)領(lǐng)域歷經(jīng)PC互聯(lián)網(wǎng)和移動互聯(lián)網(wǎng)時代,進(jìn)入到了智能化時代;它所擁有的海量圖像視頻數(shù)據(jù)、豐富的應(yīng)用場景,以及高難度的性能挑戰(zhàn),為計算機(jī)視覺技術(shù),尤其是人臉技術(shù),提供了大放異彩的舞臺。
圖1.電商業(yè)務(wù)中人臉技術(shù)的應(yīng)用架構(gòu)
如圖1所示,電商工作中需要綜合利用人臉技術(shù)。從業(yè)務(wù)看,涉及到4種類型的場景:
- 后臺圖像數(shù)據(jù)管理:比如違禁圖片和廣告圖片的管理;
- 電商的實時應(yīng)用:例如直播、 短視頻;
- 電商導(dǎo)購:例如美妝導(dǎo)購和試戴,改善用戶體驗;
- 人臉支付:已經(jīng)在移動支付和金融應(yīng)用中普及使用了。
從算法技術(shù)看,人臉技術(shù)包括了3個主要模塊,即:
- 人臉檢測(找到輸入圖像中的人臉位置)。
- 特征點定位(將人臉中的關(guān)鍵點位置找到,例如:眼睛、鼻子、嘴巴以及輪廓上的關(guān)鍵點)。
- 人臉識別(在預(yù)先存儲的人臉圖像數(shù)據(jù)庫進(jìn)行查詢,獲取身份識別的結(jié)果)。
圖像算法在實際中落地,可以采用不同的運行模型,包括: 云端部署、移動端部署。
云端模式中,算法和數(shù)據(jù)都在服務(wù)器上運行,圖片需要集中存儲,適合后臺的批量圖像處理。
移動端部署是為了達(dá)到實時響應(yīng),將算法部署在移動端(通常是手機(jī))上,適合單個業(yè)務(wù)請求的實時響應(yīng)。
電商業(yè)務(wù)會根據(jù)實際需要,采用相應(yīng)的方案;在有些情況下也可以將云端和移動端結(jié)合起來,形成一種混合部署方式:云+端。
更進(jìn)一步,現(xiàn)在有的公司在探索將人臉?biāo)惴ㄟ\行在芯片上的技術(shù)方案,可以形成邊緣計算的模式。
本文結(jié)合電子商務(wù)業(yè)務(wù)場景,介紹人臉圖像技術(shù)的原理,以及如何在業(yè)務(wù)中使用這些技術(shù)構(gòu)建業(yè)務(wù)應(yīng)用。
2. 人臉圖像的技術(shù)原理
經(jīng)過多年的不懈努力,研究者們在人臉圖像技術(shù)方面取得了日新月異的成就。這些技術(shù)一般涉及到兩種類型,即:傳統(tǒng)方法和深度學(xué)習(xí)為主的方法。
2.1基于深度學(xué)習(xí)的人臉檢測(MTCNN)
人臉檢測技術(shù)的里程碑是Paul Viola和Michael J. Jones在2000年左右提出的級聯(lián)人臉檢測器,該方法采用了快速計算的Harr特征,通過Adaboost算法選擇出有效特征和一系列的弱分類器(weak learner),***以線性組合方式得到強分類器,提高了檢測的速度和精確率,可以實時運行。
近幾年,深度學(xué)習(xí)發(fā)揮出越來越大的威力,將人臉檢測技術(shù)推向了新的高度,因此涌現(xiàn)了很多基于Deep Learning的人臉檢測算法。其中比較有代表性的是MTCNN方法(Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Neural Networks),它是由中國學(xué)者Kaipeng Zhang、Yu Qiao等提出來的。
該方法被稱為MTCNN(Multi-task Cascaded Convolutional Neural Networks),借鑒了級聯(lián)檢測器的思想,通過不同的CNN分類器聯(lián)合訓(xùn)練,將人臉檢測和特征點定位的任務(wù)結(jié)合在一起。
圖2.MTCNN方法的系統(tǒng)架構(gòu)
它的框架如圖2所示,包括3個CNN的網(wǎng)絡(luò)結(jié)構(gòu)(P-Net,R-Net,O-Net)。
(1)Proposal Network (P-Net):這是一個全聯(lián)接的CNN網(wǎng)絡(luò),用于獲取人臉區(qū)域的候選窗口,以及人臉邊界框(bounding box)的回歸向量?;谶吔缁貧w信息對候選框進(jìn)行校準(zhǔn),那些高度重疊的候選框通過非極大值抑制(NMS)操作進(jìn)行合并。
(2)Refine Network (R-Net):從P-Net階段通過的所有候選窗口,輸入R-Net網(wǎng)絡(luò),該網(wǎng)絡(luò)將大部分的False Positive區(qū)域作進(jìn)一步的排除,然后進(jìn)行邊界框回歸和NMS操作。
(3)Output Network (O-Net):該結(jié)構(gòu)和R-Net層類似,但是該層對人臉區(qū)域進(jìn)行了更多的監(jiān)督,同時還會輸出5個特征點的位置。這一步輸出最終的人臉框和特征點位置(左眼、右眼、鼻子、左嘴角、右嘴角)。
具體的網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示:
圖3.網(wǎng)絡(luò)結(jié)構(gòu)(P-Net、R-Net、O-Net)
在訓(xùn)練過程中,MTCNN方法從三個任務(wù)對CNN檢測器進(jìn)行聯(lián)合訓(xùn)練:人臉分類、邊界框回歸、人臉特征點定位。它綜合考慮每個任務(wù)對應(yīng)的損失函數(shù),構(gòu)成了多任務(wù)的總的損失函數(shù)。
訓(xùn)練過程中,采用隨機(jī)梯度下降方法(SGD)對這三個CNN進(jìn)行優(yōu)化求解。此外,該方法采用了Hard Sample Mining的策略,每次只后向傳播前70%樣本的梯度,這樣能夠自動化訓(xùn)練,且取得更好的訓(xùn)練效果。
圖4是檢測和特征點定位的示例圖:
圖4.MTCNN方法結(jié)果的實例圖
從實際運用看,MTCNN方法在FDDB和WIDER FACE集合上取得了很不錯的檢測效果,同時還能夠?qū)崟r運行(在GPU環(huán)境下)。
該方法在GitHub上開源代碼了(開源地址是:https://github.com/kpzhang93/MTCNN_face_detection_alignment),以Caffe為基礎(chǔ)框架。很多研究者以它為基礎(chǔ),提出很多改進(jìn)版本,包括Mxnet、Windows等平臺上的人臉檢測運行包,獲得了廣泛的應(yīng)用。
2.2特征點定位
MTCNN方法可以輸出人臉上5個特征點的位置,即:左眼、右眼、鼻子、左嘴角、右嘴角。
實際上根據(jù)不同應(yīng)用,特征點的數(shù)量定義各不相同,少則幾個,多則上百個,通常分布的區(qū)域包括眼睛、眉毛、鼻子、嘴巴、臉部外輪廓等,如圖5所示。
圖5. 人臉特征點的定義示意圖
這個技術(shù)的核心是如何精確計算出人臉中特征點的位置,一般涉及到的算法分成3種,分別是:
- ASM(Active Shape Model)和AAM (Active Appearnce Model)的方法。
- 基于級聯(lián)形狀回歸的方法。
- 基于深度學(xué)習(xí)的方法。
前兩種方法都屬于傳統(tǒng)方法,定位效果不錯且檢測速度快,實際中都有開源包,例如Stam開源包是ASM的一種實現(xiàn)方式;另外,Ensemble of Regression Tress(ERT)是級聯(lián)方法,開源的dlib 庫中(http://dlib.net/),有該方法的實現(xiàn)代碼。
基于深度學(xué)習(xí)的特征點定位算法,在2013年開始取得突破,香港中文大學(xué)的Tang Xiaoou教授研究組提出了DCNN的級聯(lián)結(jié)構(gòu)(Deep Convolutional Network Cascade for Facial Point Detection),在特征點定位上取得了不錯的效果。
在此基礎(chǔ)上,Zhou Erjin等提出了一個從粗到精的人臉特征點定位方法(Extensive Facial Landmark Localization
with Coarse-to-fine Convolutional Network Cascade),***利用卷積神經(jīng)網(wǎng)絡(luò),實現(xiàn)了68個人臉特征點的高精度定位。
該算法將人臉特征點分為內(nèi)部特征點和輪廓特征點,內(nèi)部特征點包含眉毛、眼睛、鼻子、嘴巴共計51個位置,輪廓特征點包含17個特征點。具體采用的系統(tǒng)架構(gòu)和CNN網(wǎng)絡(luò)結(jié)構(gòu),如圖6所示。
圖6.人臉特征點定位(a)系統(tǒng)架構(gòu)
圖6.人臉特征點定位(b)CNN網(wǎng)絡(luò)結(jié)構(gòu)
2.3人臉識別
人臉識別的過程是:在預(yù)先存儲的人臉圖像數(shù)據(jù)庫中進(jìn)行查詢,獲取身份識別的結(jié)果。其中最關(guān)鍵的步驟是提取人臉表示特征,最近幾年的突破,都是采用深度學(xué)習(xí)的方法。
在經(jīng)過人臉檢測和特征點定位等模塊之后,輸入人臉區(qū)域圖像樣本。人臉識別的大致流程如下:
- 樣本預(yù)處理:包括裁剪、對齊、相似變換等,然后把人臉樣本圖像按照不同尺度、不同區(qū)域,劃分成若干子區(qū)域(patch)。
- 基于CNN的特征提?。河?xùn)練一個CNN,目標(biāo)函數(shù)可以定義為人臉分類或其他目標(biāo)函數(shù);將訓(xùn)練好的網(wǎng)絡(luò)中***一層(一般是fc層),提取出來作為特征向量。如果有多個子區(qū)域patch,就訓(xùn)練多個CNN網(wǎng)絡(luò),并且把所有CNN獲取的特征向量串接,獲得一個超長的特征向量(一般幾萬到幾十萬維)。
- 特征比對:對超長特征向量進(jìn)行降維操作,壓縮到低維特征向量(例如160維向量),利用低維向量訓(xùn)練對比模型,判斷兩個向量是否屬于同一類,即同一個人。
從具體方法上看,2013年提出的DeepFace方法是CNN在人臉識別的開山之作,人們后續(xù)又提出了DeepID和FaceNet等方法,而且都能體現(xiàn)DeepFace的身影。
對人臉識別技術(shù)發(fā)展起到重要促進(jìn)作用的另一因素是人臉圖像數(shù)據(jù)庫的建設(shè),它為技術(shù)的評測提供了舞臺和標(biāo)準(zhǔn)。如今幾個著名的人臉識別的評測數(shù)據(jù)庫包括:FERET人臉數(shù)據(jù)庫、LFW數(shù)據(jù)庫、Mega Face數(shù)據(jù)庫。
3. 人臉圖像技術(shù)基于電商業(yè)務(wù)的應(yīng)用實踐
從之前所列的4項業(yè)務(wù)應(yīng)用看,美妝導(dǎo)購和人臉支付是日常比較常見的了,本文主要介紹圖像管理和電商直播中如何使用人臉技術(shù)。
3.1后臺圖像管理
在電商基礎(chǔ)業(yè)務(wù)中,需要對肖像權(quán)使用情況進(jìn)行監(jiān)測,這個需求通常與兩個場景有關(guān):
***個是廣告侵權(quán)檢測,有的商家邀請了明星代言店鋪的商品,而有些侵權(quán)商家會盜用明星代言商品圖;因此需要進(jìn)行明星臉識別。
第二個是商家實拍認(rèn)證,判斷拍攝圖片是否為商家合作模特拍的圖像;有人臉的模特照片可通過人臉識別方式解決。
歸納起來就是使用人臉識別技術(shù)來判明圖片中的人物身份。本文以廣告侵權(quán)處理場景為例,介紹2種不同的解決方案。
被動的廣告侵權(quán)檢測
給定商品圖像,如何判定它是否侵犯明星肖像權(quán)?首先構(gòu)建一個明星庫,包含需要保護(hù)人物的肖像圖像。明星數(shù)量通常與實際業(yè)務(wù)相關(guān),一般有數(shù)百人,圖像數(shù)量有限。特征比對步驟,可以采用快速排序的方法。具體的流程如圖7所示。
圖7.廣告侵權(quán)檢測的流程圖(被動)
主動的廣告侵權(quán)稽查
該任務(wù)是:給定明星圖像,對全平臺上的商品進(jìn)行稽查,將侵權(quán)商品查找出來并進(jìn)行處理。
首先要按照人臉檢測、特征點定位、特征向量提取的步驟,將商品圖中的人臉對象進(jìn)行處理,構(gòu)建商品圖中的人臉庫。
如圖8所示,查詢對象是海量的商品圖中的人臉庫,通常規(guī)模很大,數(shù)以百萬計,有的平臺的規(guī)模是數(shù)十億。
圖8.廣告侵權(quán)檢測的流程圖(主動)
因此特征搜索的步驟,不能采用簡單的排序方式了,而是要構(gòu)建一個搜索引擎,通過近似最近鄰查找的方法完成搜索任務(wù)。
鑒于搜索數(shù)據(jù)庫的量級很大,因此對每個查詢都要計算所有的距離是非常困難的,同時存儲海量圖片的特征向量需要耗費巨大的存儲空間。
為了解決這些問題,采用了近似最近鄰算法中的局部優(yōu)化的乘積量化算法(Product Quantization, PQ),訓(xùn)練得到粗量化質(zhì)心和細(xì)量化質(zhì)心,粗量化的結(jié)果用來建立倒排索引,細(xì)量化的結(jié)果用來計算近似距離。
通過這種方法,既能保證商品圖的人臉圖像索引結(jié)果的存儲需求合理,也能使檢索質(zhì)量和速度達(dá)到更好的水平。
這兩種方案的對比,可以總結(jié)如下:
3.2直播應(yīng)用
后臺圖像管理部署在云端執(zhí)行,而電商直播中的人臉技術(shù)應(yīng)用,需要在手機(jī)上運行。直播中的人臉技術(shù)總體架構(gòu)如圖9所示:
圖9.直播中的人臉技術(shù)總體架構(gòu)
直播中所涉及的底層技術(shù)(人臉檢測、特征點定位和跟蹤)大部分都需要在手機(jī)上實時運行,由此需要遵循新要求:速度要足夠快,模型要足夠小,同時保證有足夠高的準(zhǔn)確度,這是需要折中的過程。
目前所采用的解決方案大部分是通過算法優(yōu)化和模型優(yōu)化的工程手段,將算法移植到手機(jī)端。
在實際業(yè)務(wù)中實現(xiàn)了人臉特征點跟蹤的SDK,并部署在移動端,應(yīng)用在電商直播場景中。
基于深度學(xué)習(xí)的人臉技術(shù)雖然取得了顯著的成果,但是深度學(xué)習(xí)對大量計算資源的需求,以及復(fù)雜的模型(幾十MB到幾百MB),難以應(yīng)用在移動端。
傳統(tǒng)算法雖然效果沒有超過深度學(xué)習(xí),但是資源消耗很小,模型也簡單,在應(yīng)用過程中更加適合于用到目前的移動設(shè)備上來。
隨著處理器技術(shù)發(fā)展和深度學(xué)習(xí)優(yōu)化技術(shù)的逐漸成熟,基于深度學(xué)習(xí)的人臉技術(shù)會更加普及。
人臉檢測算法
在調(diào)研了眾多的人臉檢測算法后,最終選用了基于Pixel Difference(PD)特征的PICO算法(Object detection with pixel intensity comparisons organized in decision trees)。該方法采用像素間的灰度差值作為特征,可以提高檢測速度;更進(jìn)一步,將PD特征進(jìn)行歸一化,提出了Normalize Pixel Difference(NPD)特征,提高了對光照的魯棒性。這些方法計算資源消耗少、模型簡單,適合應(yīng)用于移動設(shè)備。
得到了分類器之后,還需要做代碼優(yōu)化的工作。針對移動端CPU的特點,進(jìn)行了定點化。采用了查表(Look Up Tabel)的方法,將NPD特征預(yù)先計算的結(jié)果存儲在一個二維表中;在實時計算特征的時候,直接從內(nèi)存中讀取,從而提高檢測速度。最終得到的人臉檢測SDK具備以下特性:
人臉特征點跟蹤算法
采用基于Ensemble of Regression Tress(ERT)算法的人臉特征點檢測方法,利用PD特征,學(xué)習(xí)每個特征點的局部特征,然后將特征組合起來,使用線性回歸檢測關(guān)鍵點;檢測速度快,定位效果也不錯。
同時需要做一系列優(yōu)化,包括如下幾個方面:
- 使用OpenMP并行技術(shù)對訓(xùn)練階段進(jìn)行優(yōu)化:將訓(xùn)練速度提高7~8倍。
- 將PD特征替換為NPD特征,提高了算法對光照的魯棒性。
- 針對實時直播,利用視頻中前后兩幀關(guān)系修正特征點預(yù)測結(jié)果。
- 通過參數(shù)定點化、huffman編碼等方法對模型進(jìn)行壓縮,壓縮后的模型容量約為原始模型的35%。
最終得到人臉特征點定位SDK,具備以下特性:
圖10(a)是人臉檢測和特征點定位的示例圖。從中看到算法具有較好的魯棒性,對于不同的姿態(tài)、不同的光照下的人臉圖像,能夠準(zhǔn)確的定位出來,為后續(xù)的直播打下基礎(chǔ)。
直播中可以利用這些算法來做互動效果,包括人臉的美膚/美白,以及特效,如圖10(b)所示。
圖10. (a)人臉檢測和特征點定位的示例圖
圖10.(b)美顏圖像實例
總結(jié)
綜合本文中的應(yīng)用實例可以看出,人臉技術(shù)和電商業(yè)務(wù)場景的結(jié)合,為保障平臺運營和用戶體驗,帶來了新的價值。一方面,通過人臉識別方法自動識別商品圖像中的人物,提升了后臺圖像管理的效率;另一方面,電商直播中應(yīng)用人臉技術(shù),實現(xiàn)了美膚和特效等功能,改善了用戶體驗。
深度學(xué)習(xí)方法為人臉識別技術(shù)領(lǐng)域帶來了巨大的飛躍,而傳統(tǒng)方法能夠保證足夠的性能和足夠的準(zhǔn)確度,達(dá)到實時運行的目標(biāo)。因此,在開發(fā)過程中,需要根據(jù)具體需求來進(jìn)行方案的權(quán)衡和選擇。
圖像算法技術(shù)的開發(fā),需要在日常工作過程中積累基礎(chǔ)模塊,逐步拓展其運用場景,并且根據(jù)業(yè)務(wù)場景變化,進(jìn)行不斷的迭代,為業(yè)務(wù)需求提供保障。
【張洪明·蘑菇街高級技術(shù)專家】
張洪明(蘑菇街花名:民達(dá))2015 年加入蘑菇街,負(fù)責(zé)美麗聯(lián)合集團(tuán)圖像技術(shù)的研發(fā)工作,創(chuàng)建和帶領(lǐng)一個算法團(tuán)隊,與工程和業(yè)務(wù)團(tuán)隊合作,為集團(tuán)提供圖像技術(shù)支持。主要工作包括:圖像搜索、圖像識別、商品圖像內(nèi)容分析等;業(yè)務(wù)涉及電商導(dǎo)購、直播等場景。在加入蘑菇街之前,分別在 NEC 中國研究院、阿里巴巴集團(tuán),從事圖像技術(shù)和機(jī)器學(xué)習(xí)的研究和應(yīng)用。
更多AI內(nèi)容,請關(guān)注公眾號:AI推手
【51CTO原創(chuàng)稿件,合作站點轉(zhuǎn)載請注明原文作者和出處為51CTO.com】