日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【paper】BlazeFace: Sub-millisecond Neural Face Detection on Mobile GPUs

發(fā)布時間:2023/12/15 编程问答 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【paper】BlazeFace: Sub-millisecond Neural Face Detection on Mobile GPUs 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

概要

文章名稱:BlazeFace: Sub-millisecond Neural Face Detection on Mobile GPUs
文章來源:Google
文章作者:Valentin Bazarevsky Yury Kartynnik Andrey Vakunov
文章下載:https://arxiv.org/pdf/1907.05047.pdf
代碼實現(xiàn):https://github.com/tkat0/PyTorch_BlazeFace
概要說明:算法設(shè)計時,追求復(fù)雜度低和適合硬件加速(比如適合GPU運(yùn)算等)是算法加速的兩大方向。BlazeFace算法是一款專為移動GPU推理量身定制的輕量級且性能卓越的人臉檢測器。BlazeFace 在主流的移動設(shè)備上以200-1000+ FPS的速度運(yùn)行。這種超實時性能使其能夠應(yīng)用于任何對性能要求極高的增強(qiáng)現(xiàn)實應(yīng)用中。

主要創(chuàng)新點(diǎn)

  • 改進(jìn)網(wǎng)絡(luò),增大感受野。基于Mobilenet v1/v2,改進(jìn)網(wǎng)絡(luò),提出一種輕量級的特征提取網(wǎng)絡(luò)(Single BlazeBlock and Double BlazeBlock)

  • 特征提取網(wǎng)絡(luò)設(shè)計

  • 改進(jìn)Anchor。基于SSD的Anchor設(shè)計,改進(jìn)Anchor的梯度金字塔結(jié)構(gòu),使其更加適應(yīng)于GPU運(yùn)算,從而達(dá)到提速的目的。

  • 使用blending策略(tie resolution)替換非極大抑制(NMS)。

1. 改進(jìn)網(wǎng)絡(luò),增大感受野

在MobileNet架構(gòu)中,使用5×5卷積核代替3×3卷積核,擴(kuò)大感受野,而這種在深度可分離卷積中卷積核大小增大,而帶來的計算量增加是有限的。另外為了促進(jìn)感受野Size的傳遞,提出了double BlazeBlock 模塊,如下圖:

[PS]在深度可分離卷積(depthwise separable convolution)中,depthwise convolution部分(s2ck2 )與 pointwise convolution 部分(s2cd)計算量比值為(k2 : d),可見depthwise separable convolution計算量主要由d 決定。使用55卷積核代替33卷積核,不會帶來太大開銷,但是可以增大感受野(receptive field)。

[PS]不會帶來太大開銷:論文中以56×56×128輸入為例,在16 bit 浮點(diǎn)運(yùn)算下, 3×3 的depthwish需要0.07ms,pointwish需要0.3s,即便換成5×5,整個網(wǎng)絡(luò)運(yùn)算時間依舊在1ms量級內(nèi),并未增加大量計算開銷。

[PS]右側(cè)的Optional需要參考特征提取網(wǎng)絡(luò)設(shè)計來看,當(dāng)stride=2的時候,需要使用右側(cè)分支來進(jìn)行通道對齊。

2. 特征提取網(wǎng)絡(luò)設(shè)計

針對前置攝像頭人臉檢測的特定需要,人臉尺度變化較小,定義更加輕量級的特征提取,輸入圖像128*128,含有5個Single BlazeBlock和6個double BlazeBlock。網(wǎng)絡(luò)架構(gòu)如下表:
[PS] 主干網(wǎng)絡(luò)中,首先通過一個cov增加通道

3. 改進(jìn)Anchor

修改的SSD目標(biāo)檢測anchor機(jī)制,使其更適于GPU計算。在8×8特征圖尺寸處停止而無需進(jìn)一步下采樣(如下圖2),將8×8,4×4和2×2分辨率中的每個像素的2個anchor替換為8×8的6個anchor。由于人臉長寬比的變化有限,因此作者們發(fā)現(xiàn)將anchor固定為1:1縱橫比足以進(jìn)行精確的面部檢測。

[PS] 為什么要把2×4×4和2×2×2使用4×8×8來代替?

文中講到,與CPU的運(yùn)算不同,GPU的運(yùn)算成本聚焦在特定的網(wǎng)絡(luò)層運(yùn)算上,對于處理深度的低分辨率隱層,CPU能夠做的更好。但這里的低分辨率為什么設(shè)置成小于8×8,論文中沒有詳細(xì)說明,也沒有給出實驗證明。
這里筆者猜測,由于本文是重在移動端GPU運(yùn)算的優(yōu)化,太小的分辨率的cnn在gpu上的運(yùn)算比較耗時,而且對于小于8×8的場景下的人臉檢測必要性不大,所以將Anchor停留在8×8。

4. 使用blending策略(tie resolution)替換非極大抑制(NMS)

由于上述anchor機(jī)制中特征提取器未將分辨率降低到8×8以下,所以與給定對象重疊的anchor數(shù)量將會下降。在SSD的NMS中,只有一個勝出的anchor用于算法輸出,這導(dǎo)致在視頻中進(jìn)行檢測時,人臉框抖動明顯。

為了降低這種效應(yīng),作者不再使用NMS,代之一種blending策略,以重疊框的加權(quán)平均值來估計邊界框的回歸參數(shù)。它幾乎不會產(chǎn)生之前NMS部分的成本。作者稱對于在視頻中的面部檢測任務(wù),此調(diào)整導(dǎo)致準(zhǔn)確度提高10%。

論文通過連續(xù)輸入目標(biāo)輕微偏移的圖像來統(tǒng)計框抖動的數(shù)量以觀察模型輸出是如何被影響的。在應(yīng)用這一策略后,抖動的數(shù)量大幅下降。

[PS]這里舉個猜測的例子:

設(shè)a,b兩個矩形框為人臉框的重疊框,經(jīng)由網(wǎng)絡(luò)輸出a(bbox, score), b(bbox, score),并且a_score > b_score,IoU(a,b) > iou_nms_threhold

傳統(tǒng)的NMS方法:b(score) 設(shè)置為0,bbox直接選取a(bbox)

Blending: (weigth_a * bbox_a) + (weight_b * bbox_b) = bbox

其中 weidth_a = a(score)/[a(score)+b(score)]

實驗結(jié)果

下圖是比較結(jié)果,精度高于MobileNetV2-SSD,在iPhone XS上的速度也從2.1毫秒降到0.6毫秒。

更多手機(jī)上的運(yùn)算速度比較:

應(yīng)用

總結(jié)

以上是生活随笔為你收集整理的【paper】BlazeFace: Sub-millisecond Neural Face Detection on Mobile GPUs的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。