人臉檢測(cè)是應(yīng)用最為廣泛的計(jì)算機(jī)視覺(jué)任務(wù)之一,特別是在移動(dòng)端上發(fā)揮著不可替代的重要作用,包括美顏、人臉跟蹤、VR、人臉特效、人臉識(shí)別等任務(wù)以及刷臉支付、直播、試妝等應(yīng)用上都有著廣泛的引用,幾乎涵蓋了人工智能落地的方方面面。作為很多后續(xù)工作的第一步,人臉檢測(cè)器需要達(dá)到非常高效的性能,盡可能高速準(zhǔn)確地完成檢測(cè)任務(wù)。
為了不斷提升用戶(hù)的流程體驗(yàn)、促進(jìn)人臉相關(guān)應(yīng)用的進(jìn)一步發(fā)展、拓寬支持人臉檢測(cè)的設(shè)備范圍,來(lái)自谷歌的研究人員通過(guò)改造mobileNet提出更為緊湊的輕量級(jí)特征提取方法、結(jié)合適用于移動(dòng)端GPU高效運(yùn)行的新型錨框機(jī)制,以及代替非極大值抑制的加權(quán)方法保證檢測(cè)結(jié)果的穩(wěn)定性,在移動(dòng)端上實(shí)現(xiàn)了超高速的高性能人臉檢測(cè)BlazeFace,最快不到一毫秒的檢測(cè)速度為眾多人臉相關(guān)的應(yīng)用提供了更廣闊的發(fā)展空間。
強(qiáng)大的模型一定有強(qiáng)大的細(xì)節(jié)在支撐。
BlazeFace模型一共從四個(gè)方面進(jìn)行了有效改進(jìn),從而大幅減小了計(jì)算量并提高了檢測(cè)精度與穩(wěn)定性。它提升了mobilenet中深度可分離卷積的計(jì)算效率和感受野,基于此構(gòu)建了有效的特征抽取器、改進(jìn)錨框機(jī)制后處理過(guò)程。
更大的感受野更快的計(jì)算。mobilenet中的深度可分離架構(gòu)包含了每個(gè)通道上的3*3卷積和逐點(diǎn)進(jìn)行的在深度方向上的1*1的卷積操作。
深度可分離卷積
研究人員發(fā)現(xiàn),其中大部分計(jì)算量都發(fā)生在最后逐點(diǎn)計(jì)算1*1的過(guò)程中。例如針對(duì)一個(gè)s*s*c的張量,如果使用k*k卷積核為大小的深度可分離操作,那么第一步操作的計(jì)算量是s^2*c*k^2,第二步針對(duì)d個(gè)通道的輸出進(jìn)行逐點(diǎn)1*1卷積的計(jì)算量則是s^2*c*d,第二步相對(duì)于第一步的計(jì)算量消耗是d/k^2倍。在mobilenet論文中也提高1*1卷積對(duì)于計(jì)算資源的占比較高。
讓我們?cè)賮?lái)直觀(guān)的感受一下這兩種操作計(jì)算量的大小。針對(duì)實(shí)際的iPhoneX手機(jī),其中基于Metal Performance Shader實(shí)現(xiàn)的3*3卷積,針對(duì)56*56*128大小的16比特浮點(diǎn)張量操作需要0.07ms,而使用1*1卷積對(duì)128通道到128通道的操作則需要耗時(shí)0.3ms,幾乎是前者的四倍多。
這樣的結(jié)果為研究人員指明了提高效率的方向,增加深度可分離卷積操作中第一步核的大小是相對(duì)高效的選擇。所以在BlazeFace中研究人員將卷積核的大小擴(kuò)大成了5*5。卷積核的增大在bottleneck總量減小的情況下保證了模型感受野的大小。
此外,MobileNetV2的bottleneck通過(guò)非線(xiàn)性將深度增加的擴(kuò)張和深度縮減的投影分開(kāi)。
mobileNet中的深度可分離卷積單元
為了適應(yīng)Blaze單元中更少的通道數(shù),研究人員對(duì)這一階段進(jìn)行掃描使得殘差可以實(shí)現(xiàn)類(lèi)似拓展通道分辨率的操作。
BlazeBlock的單元構(gòu)造,包括增大的卷積核與殘差連接。
左圖是基本的blaze單元,右圖是雙blaze單元
由于增大了卷積核后的Blaze單元的開(kāi)銷(xiāo)很小,使得另一個(gè)層的加入成為可能。于是研究人員又在上面模塊的基礎(chǔ)上開(kāi)發(fā)出了雙份的Blaze單元。不僅增加了感受野的大小,同時(shí)也提高了特征的抽象。
特征抽取器。雖然這一模型同時(shí)適合與后攝和前攝,研究人員在文章中針對(duì)前視攝像頭作為例子來(lái)構(gòu)建特征抽取器,前視攝像頭需要搜索的范圍更小,計(jì)算需求也更少。
模型的輸入是針對(duì)128*128大小的rgb圖像展開(kāi)的,在一個(gè)卷積后疊加了5個(gè)單Blaze單元和6個(gè)雙Blaze單元,可以看到通道數(shù)最多的時(shí)候達(dá)到了96,而最低的空間分辨率則不低于8*8的大小。
可以發(fā)現(xiàn)這一模型的最大通道數(shù)大大小于其他模型,而最低空間分辨率也較高。下面是模型的構(gòu)造細(xì)節(jié):
錨框機(jī)制。錨框在目標(biāo)檢測(cè)中廣泛使用,通常為了適應(yīng)多尺度的目標(biāo),預(yù)定義的錨框都包含了多個(gè)不同的分辨率。同時(shí)大幅度的將采樣也為目標(biāo)檢測(cè)中的計(jì)算量帶來(lái)了較多的優(yōu)化。雖然SSD中使用了多個(gè)不同尺度的特征度來(lái)進(jìn)行預(yù)測(cè),單池化金字塔架構(gòu)中卻表明過(guò)多尺度的特征圖可能在某個(gè)分辨率后變得冗余。
同時(shí)GPU計(jì)算相比于CPU存在一個(gè)需要注意的關(guān)鍵問(wèn)題,針對(duì)特定層的計(jì)算GPU存在固定的調(diào)度開(kāi)銷(xiāo),在對(duì)低分辨率層進(jìn)行計(jì)算時(shí)會(huì)尤其明顯。例如測(cè)試中的MobileNetV1耗時(shí)4.9ms,其中只有3.9ms真正在進(jìn)行計(jì)算。
綜上考慮,研究人員對(duì)于錨框的設(shè)計(jì)作出了以下幾個(gè)方面的改進(jìn):
首先特征圖的尺寸不低于8*8,避免更深的下采樣;
其次將8*8,4*4和2*2各個(gè)特征圖上的兩個(gè)錨框用8*8特征圖上的6個(gè)錨框代替;
由于人臉的寬高比相對(duì)問(wèn)題,在實(shí)際過(guò)程中使用1*1的錨框比例已經(jīng)能夠達(dá)到足夠的精度了。
后處理。由于在8*8的特征圖上存在多個(gè)錨框,很有可能產(chǎn)生多個(gè)重疊的結(jié)果。為了處理多個(gè)不同的框,先前的方法利用執(zhí)行度的非極大值抑制來(lái)選擇可能性最高的框作為結(jié)果,但這會(huì)帶來(lái)人臉檢測(cè)結(jié)果的抖動(dòng),造成人類(lèi)感知上的不適。
為了緩解這種抖動(dòng),研究人員使用融合策略代替了非極大值抑制,通過(guò)加權(quán)平均多個(gè)重疊結(jié)果的方式來(lái)估計(jì)最后回歸的bbox參數(shù)。這不會(huì)增加額外的計(jì)算量,在減小抖動(dòng)的同時(shí)還提升了10%的精度。實(shí)驗(yàn)表明這一機(jī)制使得前視攝像頭的人臉檢測(cè)抖動(dòng)降低了40%,后攝則降低了30%。
優(yōu)異性能
實(shí)驗(yàn)中研究人員利用66K圖像進(jìn)行了訓(xùn)練,2K多樣性圖像進(jìn)行了測(cè)試。下圖顯示了數(shù)據(jù)在地理位置上的多樣性:
針對(duì)前視攝像頭模型,只有超過(guò)20%的區(qū)域被人臉(faces)占據(jù)才考慮(后攝5%,為了與實(shí)際情況相符)。下圖顯示了與MobileNetv2-SSD對(duì)比下的前視攝像頭性能,研究人員利用tensorflowLite在16bit下實(shí)現(xiàn)了模型,在iPhoneXS上僅需0.6ms,這意味著達(dá)到了1600fps+的速度。
研究人員還測(cè)試了在不同型號(hào)手機(jī)上的實(shí)現(xiàn)結(jié)果,速度都在約170fs到1600ps之間。
最后研究人員還比較了回歸參數(shù)的預(yù)測(cè)質(zhì)量,由于模型體量較小帶來(lái)了一定程度的退化,但不影響AR或者人臉跟蹤中的使用。
應(yīng)用展示
高速準(zhǔn)確的人臉檢測(cè)網(wǎng)絡(luò)將為后續(xù)的人臉相關(guān)任務(wù)提供有效地預(yù)處理,包括關(guān)鍵點(diǎn)檢測(cè)、輪廓、表面幾何估計(jì)、微表情識(shí)別和人臉解譯等任務(wù)。
通過(guò)與BlazeFaze給出的人臉關(guān)鍵點(diǎn)結(jié)合,算法可以得到跟隨人臉旋轉(zhuǎn)的bbox,得到居中的、尺度歸一化的、相對(duì)框無(wú)較大角度誤差的人臉結(jié)果,這將大幅度降低后續(xù)對(duì)于圖像的旋轉(zhuǎn)和平移處理,節(jié)約了計(jì)算的開(kāi)銷(xiāo)。
例如在人臉輪廓檢測(cè)中,首先利用BlazeFace模型預(yù)測(cè)出人臉框和對(duì)應(yīng)的關(guān)鍵點(diǎn),隨后利用更為復(fù)雜的模型對(duì)人臉輪廓進(jìn)行進(jìn)一步優(yōu)化估計(jì)。這些檢測(cè)結(jié)果可以用于后續(xù)幀的處理中。
研究人員展示了基于這一人臉檢測(cè)模型的一系列例子,包括人臉幾何重建、分割、美妝等等。
值得一提的是,研究人員還將這一方法集成到了多模態(tài)媒體機(jī)器學(xué)習(xí)工具mediapipe中,這一工具包含了多種圖像處理模塊和方法、可以基于圖機(jī)制來(lái)構(gòu)建多模態(tài)的機(jī)器學(xué)習(xí)應(yīng)用工具鏈,并實(shí)現(xiàn)跨平臺(tái)的運(yùn)行。
最后附上一份Blazeface的海報(bào),再次感受下這一算法眾多的創(chuàng)新:
-
谷歌
+關(guān)注
關(guān)注
27文章
6080瀏覽量
104353 -
人臉檢測(cè)
+關(guān)注
關(guān)注
0文章
78瀏覽量
16393
原文標(biāo)題:超高速人臉檢測(cè)器BlazeFace,谷歌將人臉檢測(cè)效率提升到逆天水平
文章出處:【微信號(hào):thejiangmen,微信公眾號(hào):將門(mén)創(chuàng)投】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論