偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

揭秘微信「掃一掃」識(shí)物為什么這么快?

企業(yè)動(dòng)態(tài)
微信“掃一掃”識(shí)物已上線一段時(shí)間,在公司內(nèi)外均受到極大的關(guān)注。相比于行內(nèi)相關(guān)競(jìng)品的“拍”,“掃一掃”識(shí)物的特點(diǎn)在于“掃”,帶來(lái)更為便捷的用戶體驗(yàn)?!皰摺彪x不開高效的移動(dòng)端物體檢測(cè),本文將為你揭秘。

 [[317268]]

微信“掃一掃”識(shí)物已上線一段時(shí)間,在公司內(nèi)外均受到極大的關(guān)注。相比于行內(nèi)相關(guān)競(jìng)品的“拍”,“掃一掃”識(shí)物的特點(diǎn)在于“掃”,帶來(lái)更為便捷的用戶體驗(yàn)。“掃”離不開高效的移動(dòng)端物體檢測(cè),本文將為你揭秘。

一、背景

“掃”是“掃一掃”識(shí)物的亮點(diǎn),帶來(lái)更為便捷的用戶體驗(yàn)。相比于“拍”的交互方式,“掃”的難點(diǎn)在于如何自動(dòng)地選擇包含物體的圖像幀,這離不開高效的移動(dòng)端物體檢測(cè)。

二、問(wèn)題

“掃一掃”識(shí)物是一種面向開放環(huán)境的通用物體檢測(cè)——復(fù)雜多樣的物體形態(tài)要求模型具有強(qiáng)的泛化性,移動(dòng)端的計(jì)算瓶頸又要求模型保持高的實(shí)時(shí)性。“掃一掃”識(shí)物需要一個(gè)什么樣的移動(dòng)端檢測(cè)(Class-wise or Object-ness)呢?Class-wise 檢測(cè)(即傳統(tǒng)意義上的物體檢測(cè))的優(yōu)勢(shì)在于同時(shí)輸出物體的位置和類別,然而開放環(huán)境下的物體類別很難準(zhǔn)確定義和完整覆蓋。

因此,我們將問(wèn)題定義為Object-ness 檢測(cè)(即主體檢測(cè)):只關(guān)注是否為物體和物體的位置,并不關(guān)心物體的具體類別。Object-ness 的物體檢測(cè)對(duì)多樣化的物體具有更強(qiáng)的普適性,同時(shí)大大減輕模型的負(fù)擔(dān)來(lái)保證其實(shí)時(shí)性。這是“掃一掃”識(shí)物相比于相關(guān)競(jìng)品在移動(dòng)端檢測(cè)問(wèn)題上定義的不同。

三、選型

近幾年物體檢測(cè)算法日新月異,面對(duì)琳瑯滿目的檢測(cè)模型(見圖 1),合適的才是最好的。

 

圖1:琳瑯滿目的檢測(cè)器(圖中標(biāo)注各個(gè)檢測(cè)器的優(yōu)缺點(diǎn),請(qǐng)放大查看)

(1)One-stage

從模型的層次結(jié)構(gòu)上,可分為兩階段(two-stage)和單階段(one-stage)。

(a)Two-stage 檢測(cè)器以 R-CNN 系列(Fast R-CNN [1]、Faster R-CNN [2]、Mask-RCNN[3])為代表,其模型的第一階段輸出粗糙的物體候選框(proposal),第二階段進(jìn)一步回歸物體坐標(biāo)和分類物體類別。Two-stage 檢測(cè)器的優(yōu)勢(shì)在于:RoIPool 的候選框尺度歸一化對(duì)小物體具有較好的魯棒性;進(jìn)一步的區(qū)域(region)分類對(duì)于較多類別的檢測(cè)需求更為友好。

(b)One-stage 檢測(cè)器以 YOLO 和 SSD 系列(YOLO V1-V3 [4-6]、SSD [7]、RetinaNet[8])為代表,其特點(diǎn)是全卷積網(wǎng)絡(luò)(FCN)直接輸出物體的坐標(biāo)和類別,為移動(dòng)端加速提供了便利。

對(duì)于“掃一掃”識(shí)物中主體檢測(cè)的應(yīng)用場(chǎng)景,小物體和多類別的需求不如實(shí)時(shí)性來(lái)得強(qiáng)烈,因此我們選擇 one-stage 的模型結(jié)構(gòu)。

(2)Anchor-free

(a)錨點(diǎn)(anchor)是 R-CNN 系列和 SSD 系列檢測(cè)方法的特點(diǎn):在 one-stage 檢測(cè)器中,通過(guò)滑動(dòng)窗口(slide window)產(chǎn)生各式各樣的 anchor 作為候選框;在 two-stage 檢測(cè)器中,RPN 從 anchor 中挑選合適的候選框進(jìn)行第二階段的分類和回歸。Anchor 為檢測(cè)器提供物體的形狀先驗(yàn),可有效地降低檢測(cè)任務(wù)的復(fù)雜度,但經(jīng)驗(yàn)性的 anchor 參數(shù)會(huì)極大地影響模型的性能。

(b)無(wú)錨點(diǎn)(anchor-free)的檢測(cè)器隨著網(wǎng)絡(luò)結(jié)構(gòu)(如:FPN[9]、DeformConv [10])和損失函數(shù)(如:Focal Loss [8]、IOU Loss[11])的發(fā)展逐漸煥發(fā)出新的生機(jī)。其中,尺度魯棒的網(wǎng)絡(luò)結(jié)構(gòu)增強(qiáng)模型的表達(dá)能力,訓(xùn)練魯棒的損失函數(shù)解決樣本的平衡和度量問(wèn)題。Anchor-free 方法以 YOLOV1-V2 [4-5]及其衍生(DenseBox [12]、DuBox [13]、FoveaBox [14]、FCOS[15]、ConerNet [16]、CenterNet[17]等)為代表。他們拋開候選框的形狀先驗(yàn),直接分類物體的類別和回歸物體的坐標(biāo)。

在“掃一掃”識(shí)物的應(yīng)用場(chǎng)景中,復(fù)雜多樣的物體形狀對(duì) anchor 的設(shè)計(jì)提出了巨大挑戰(zhàn),因此我們選擇 anchor-free 的模型結(jié)構(gòu)。

(3)Light-head

近一年來(lái),anchor-free 的檢測(cè)器日新月異。然而,在移動(dòng)端的應(yīng)用場(chǎng)景下,大部分 one-stage 且 anchor-free 的檢測(cè)器仍存在以下不足:

(a)多輸出(Multi-head):為了增強(qiáng)模型對(duì)多尺度物體的檢測(cè)能力,大部分檢測(cè)器(如:FoveaBox[14]、DuBox [13]、FCOS[15])普遍采用多頭輸出來(lái)提高模型的尺度魯棒性。其中,低層特征滿足小物體檢測(cè)需求,高層特征應(yīng)對(duì)大物體檢測(cè)。然而,多頭輸出的網(wǎng)絡(luò)結(jié)構(gòu)對(duì)于移動(dòng)端加速并不友好。

(b)后處理(Post-process):為了解決 anchor 先驗(yàn)缺失和 multi-head 結(jié)果整合的問(wèn)題,大部分檢測(cè)器都需依賴復(fù)雜的后處理,如:非極大值抑制(NMS)和各式各樣的奇技淫巧(trick),但它們普遍不適合并行化加速。

綜上,我們選取CenterNet作為“掃一掃”識(shí)物的移動(dòng)端檢測(cè)模型(見圖 2)。CenterNet 是 one-stage 的 anchor-free 檢測(cè)方法,single-head 的輸出和高斯響應(yīng)圖的回歸使其不依賴 NMS 的后處理。CenterNet 將目標(biāo)檢測(cè)問(wèn)題變成一個(gè)標(biāo)準(zhǔn)的關(guān)鍵點(diǎn)估計(jì)問(wèn)題:通過(guò)全卷積網(wǎng)絡(luò)得到中心點(diǎn)的熱力圖(峰值點(diǎn)即中心點(diǎn)),并預(yù)測(cè)峰值點(diǎn)對(duì)應(yīng)的物體寬高信息。 

此外,我們引進(jìn)了 TTFNet[18]中高斯采樣、高斯加權(quán)和 GIOU Loss[19]等技術(shù)實(shí)現(xiàn) CenterNet 的訓(xùn)練加速,僅需 5 小時(shí)即可在 4 塊 Tesla P4 下完成 MS-COCO 的訓(xùn)練,這為模型調(diào)參和優(yōu)化節(jié)省了大量的時(shí)間。

 

圖2:CenterNet: Objects as points

三、優(yōu)化

針對(duì)移動(dòng)端的檢測(cè)需求,首先我們將 CenterNet 的骨干網(wǎng)絡(luò)(backbone)從 ResNet18 更換為對(duì)移動(dòng)設(shè)備更為友好的 ShuffleNetV2[20]。然而,僅僅依賴 backbone 帶來(lái)的效能提升是有限的,對(duì)此我們進(jìn)行針對(duì)性的模型優(yōu)化。

(1)大感受野(Large RF)

從 ResNet 到 ShuffleNetV2 主要影響了模型的深度和感受野。在以熱力圖回歸的 CenterNet 中,模型的感受野顯得異常重要。如何在保持網(wǎng)絡(luò)輕量的前提下提高模型的感受野呢?從 AlexNet 到 VGG,VGG 通過(guò)將大尺度的卷積核拆解為多個(gè)小尺度的卷積核(1 個(gè) 5x5→2 個(gè) 3x3):在相同感受野下,2 個(gè) 3x3 卷積的參數(shù)量和計(jì)算量均只有 1 個(gè) 5x5 的 18/25。然而,這在深度(depth-wise)卷積的時(shí)代并不適用。在 ShuffleNet 中,5x5 的 depth-wise 卷積獲得兩倍感受野,僅比 3x3 的 depth-wise 卷積增加極少的計(jì)算量(如圖 3)。

因此,我們將 ShuffleNetV2 中所有的 depth-wise 卷積均替換為 5x5 卷積。因?yàn)槿鄙?ImageNet 預(yù)訓(xùn)練的 5x5 模型,我們?nèi)∏傻貙?3x3 的 ShuffleNetV2 預(yù)訓(xùn)練模型進(jìn)行卷積核的零擴(kuò)邊(zero padding),得到 5x5 的大卷積核 ShuffleNetV2。V2。

 

圖3:大感受野的depth-wise卷積

(2)輕檢測(cè)頭(Light Head)

CenterNet 的檢測(cè)頭使用類 U-Net[21]的上采樣結(jié)構(gòu),可有效地融合低層細(xì)節(jié)信息,從而提高對(duì)小物體的檢測(cè)性能。然而,CenterNet 的檢測(cè)頭并未針對(duì)移動(dòng)端進(jìn)行優(yōu)化,因此我們對(duì)其進(jìn)行 ShuffleNet 化改造(見圖 4 紅框)。

首先,將檢測(cè)頭的所有普通 3x3 卷積替換為 5x5 的 depth-wise 卷積,并將可形變卷積(DeformConv)也改造為 depth-wise 的可形變卷積。其次,參照 ShuffleNet 通道壓縮的技巧,將 CenterNet 中多層特征的殘差融合(residual)改造為通道壓縮的連接融合(concat)。通過(guò)大感受野(Large RF)和輕檢測(cè)頭(Light Head),優(yōu)化后的模型在 MS-COCO 數(shù)據(jù)庫(kù)在計(jì)算量(FLOPs)、參數(shù)量(Parameters)和檢測(cè)性能(mAP)均取得優(yōu)異的結(jié)果,見表 1。

 

圖4:CenterNet檢測(cè)頭的結(jié)構(gòu)優(yōu)化

表1:在MS-COCO下物體檢測(cè)的對(duì)比

(3)金字塔插值(Pyramid Interpolation Module,PIM)

然而,可形變卷積(DeformConv)對(duì)移動(dòng)端加速并不友好,因此我們需要重新設(shè)計(jì) DeformConv 的替代品。DeformConv 可自適應(yīng)地對(duì)多尺度信息進(jìn)行抽取,在 MS-COCO 中的小物體檢測(cè)起到巨大作用。“掃一掃”識(shí)物對(duì)小物體的檢測(cè)需求并不是非常強(qiáng)烈,DeformConv 更多的是提供多樣化的尺度特征。對(duì)此,我們借鑒圖像分割方法 PSPNet[22](見圖 5)的金字塔池化(Pyramid PoolingModule,PPM),提出了金字塔插值(Pyramid Interpolation Module,PIM)同時(shí)實(shí)現(xiàn)多尺度特征的融合和特征圖的插值(見圖 4 藍(lán)框)。

PIM 中主要包括三條分支進(jìn)行 2 倍上采樣:空洞解卷積,卷積+上采樣,全局平均池化+全連接。其中,“空洞解卷積”對(duì)應(yīng)大尺度特征;“卷積+上采樣”對(duì)應(yīng)小尺度特征;“全局平均池化+全連接”對(duì)應(yīng)全局特征。在 ShuffleNetV2 x0.5 的骨干網(wǎng)絡(luò)下,表 2 對(duì)比了各種上采樣方法對(duì)檢測(cè)性能的影響,可見 PIM 有效地替代 DeformConv 在“掃一掃”識(shí)物中的作用。

 

圖5:PSPNet的金字塔池化模塊

表2:不同上采樣方法在“掃一掃”識(shí)物中的效果對(duì)比(測(cè)試集包含7k張圖片) 

 

五、部署

通過(guò)以上優(yōu)化,我們最終采用表 2 中最優(yōu)結(jié)果作為“掃一掃”識(shí)物的移動(dòng)端檢測(cè)模型。該模型采用基于 pytorch 框架的 mmdetection 作為訓(xùn)練工具。在移動(dòng)端部署上,我們采用 ncnn 框架,將 pytorch 模型轉(zhuǎn)換為 onnx 模型再轉(zhuǎn)換為 ncnn 模型,并在轉(zhuǎn)換過(guò)程中將參數(shù)量化到 16bit。此外,為了進(jìn)一步減小模型體積和加速,我們將網(wǎng)絡(luò)中 conv/bn/scale 三個(gè)連續(xù)的線性操作融合為一個(gè) conv 層,在不影響效果的同時(shí)可減少約 5%的參數(shù)量,并提速約 5%~10%。最終,“掃一掃”識(shí)物的移動(dòng)端檢測(cè)模型僅 436 KB,在 iphone8 的 A11 CPU 上的單幀檢測(cè)時(shí)間僅 15ms。

六、展望

目前“掃一掃”移動(dòng)端檢測(cè)只是開端,移動(dòng)端物體檢測(cè)的發(fā)展也才剛剛開始。拋開“掃一掃”識(shí)物的場(chǎng)景,CenterNet 在通用的物體檢測(cè)上仍存在以下問(wèn)題:如何解決類別增加帶來(lái)的檢測(cè)頭爆炸性增長(zhǎng)?可形變卷積(DeformConv)是否存在更通用的替代品?U-Net 式的上采樣結(jié)構(gòu)是否可進(jìn)一步優(yōu)化?路漫漫其修遠(yuǎn)兮,在我們后續(xù)工作中將針對(duì)這些問(wèn)題進(jìn)行探索。

七、參考文獻(xiàn)

[1] Girshick, Ross. "Fast R-CNN." international conference on computer vision

(2015): 1440-1448.

[2] Ren, Shaoqing, et al. "Faster R-CNN: Towards Real-Time Object Detection with

Region Proposal Networks." IEEE Transactions on Pattern Analysis and Machine

Intelligence 39.6 (2017): 1137-1149.

[3] He, Kaiming, et al. "Mask R-CNN." international conference on computer

vision (2017): 2980-2988.

[4] Redmon, Joseph, et al. "You Only Look Once: Unified, Real-Time Object

Detection." computer vision and pattern recognition (2016): 779-788.

[5] Redmon, Joseph, and Ali Farhadi. "YOLO9000: Better, Faster, Stronger."

computer vision and pattern recognition (2017): 6517-6525.

[6] Redmon, Joseph, and Ali Farhadi. "YOLOv3: An Incremental Improvement."

arXiv: Computer Vision and Pattern Recognition (2018).

[7] Liu, Wei, et al. "SSD: Single Shot MultiBox Detector." european conference

on computer vision (2016): 21-37.

[8] Lin, Tsungyi, et al. "Focal Loss for Dense Object Detection." international

conference on computer vision (2017): 2999-3007.

[9] Lin, Tsungyi, et al. "Feature Pyramid Networks for Object Detection."

computer vision and pattern recognition (2017): 936-944.

[10] Dai, Jifeng, et al. "Deformable Convolutional Networks." international

conference on computer vision (2017): 764-773.

[11] Yu, Jiahui, et al. "UnitBox: An Advanced Object Detection Network." acm

multimedia (2016): 516-520.

[12] Huang, Lichao, et al. "DenseBox: Unifying Landmark Localization with End to

End Object Detection." arXiv: Computer Vision and Pattern Recognition (2015).

[13] Chen, Shuai, et al. "DuBox: No-Prior Box Objection Detection via Residual

Dual Scale Detectors." arXiv: Computer Vision and Pattern Recognition (2019).

[14] Kong, Tao, et al. "FoveaBox: Beyond Anchor-based Object Detector." arXiv:

Computer Vision and Pattern Recognition (2019).

[15] Tian, Zhi, et al. "FCOS: Fully Convolutional One-Stage Object Detection."

international conference on computer vision (2019): 9627-9636.

[16] Law, Hei, and Jia Deng. "CornerNet: Detecting Objects as Paired Keypoints."

european conference on computer vision (2019): 765-781.

[17] Zhou, Xingyi, Dequan Wang, and Philipp Krahenbuhl. "Objects as Points."

arXiv: Computer Vision and Pattern Recognition (2019).

[18] Liu, Zili, et al. "Training-Time-Friendly Network for Real-Time Object

Detection." arXiv: Computer Vision and Pattern Recognition (2019).

[19] Rezatofighi, Hamid, et al. "Generalized Intersection Over Union: A Metric

and a Loss for Bounding Box Regression." computer vision and pattern recognition

(2019): 658-666.

[20] Ma, Ningning, et al. "ShuffleNet V2: Practical Guidelines for Efficient CNN

Architecture Design." european conference on computer vision (2018): 122-138.

[21] Ronneberger, Olaf, Philipp Fischer, and Thomas Brox. "U-Net: Convolutional

Networks for Biomedical Image Segmentation." medical image computing and

computer assisted intervention (2015): 234-241.

[22] Zhao, Hengshuang, et al. "Pyramid Scene Parsing Network." computer vision

and pattern recognition (2017): 6230-6239.

[23] Li, Zeming, et al. "Light-Head R-CNN: In Defense of Two-Stage Object

Detector." arXiv: Computer Vision and Pattern Recognition (2017).

[24] Wang, Jun, Xiang Li, and Charles X. Ling. "Pelee: A Real-Time Object

Detection System on Mobile Devices." neural information processing systems

(2018): 1967-1976.

 

責(zé)任編輯:武曉燕 來(lái)源: 51CTO專欄
相關(guān)推薦

2020-04-26 07:39:05

微信掃一掃識(shí)物

2020-04-06 12:39:09

微信掃一掃功能

2013-06-08 09:27:22

微信微信公眾平臺(tái)微信5.0

2013-07-08 10:34:31

微信掃一掃微信公眾平臺(tái)

2017-12-28 10:10:15

2013-11-28 10:05:28

O2O線下微信掃一掃

2018-05-25 14:15:14

iOS微信功能

2022-06-28 10:05:16

淘寶技術(shù)

2021-07-26 17:55:06

數(shù)字人民幣微信支付寶

2013-12-03 10:32:52

2021-07-29 21:00:07

數(shù)字人民幣微信支付寶

2021-01-18 14:26:07

微信掃描儀功能相互翻譯

2020-02-27 21:03:30

調(diào)度器架構(gòu)效率

2024-02-26 21:15:20

Kafka緩存參數(shù)

2020-02-27 15:44:41

Nginx服務(wù)器反向代理

2020-03-08 15:39:41

微信掃碼登陸二維碼

2019-02-18 08:10:53

2017-01-23 15:13:11

戴爾

2020-04-29 09:22:10

微信更新內(nèi)測(cè)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)