999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于移動(dòng)端平臺(tái)的目標(biāo)檢測及其優(yōu)化

2019-01-30 08:05:40程劍劉海濤張琦珺
電子技術(shù)與軟件工程 2019年2期
關(guān)鍵詞:特征檢測模型

文/程劍 劉海濤 張琦珺

目標(biāo)檢測作為圖像處理和計(jì)算機(jī)視覺領(lǐng)域的重要課題,在警戒安防、交通監(jiān)控、人機(jī)交互等工程應(yīng)用中扮演著重要的角色。受限于光照、角度、遮擋等因素,傳統(tǒng)檢測算法在復(fù)雜的工程環(huán)境下表現(xiàn)鮮有出彩。

2014年基于候選區(qū)域的深度學(xué)習(xí)檢測算法R-CNN一經(jīng)提出,其以驚艷的檢測效果擊敗了一眾經(jīng)典算法,一舉奪得了目標(biāo)檢測領(lǐng)域的頭籌。此后此類算法得到了研究者們的重點(diǎn)關(guān)注,短時(shí)間內(nèi)獲得飛速長足的發(fā)展。先是出現(xiàn)了R-CNN的改進(jìn)算法Fast R-CNN、Faster R-CNN,后又有基于回歸的檢測方法,如YOLO、SSD、YOLOv2、DSSD、YOLOv3等,在保證準(zhǔn)確率的前提下,也滿足了工業(yè)實(shí)時(shí)性的要求。

如今在要求穩(wěn)定精準(zhǔn)快速的目標(biāo)識(shí)別工程項(xiàng)目上,深度學(xué)習(xí)檢測算法已經(jīng)不可或缺。籠統(tǒng)來說,這些檢測算法都需要將輸入圖像經(jīng)過深層的卷積神經(jīng)網(wǎng)絡(luò)提取出高維特征,再利用這些特征來定位和分類圖像中物體。以YOLOv3為例,基礎(chǔ)網(wǎng)絡(luò)和yolo網(wǎng)絡(luò)共有105層,其中含有大量矩陣卷積操作,浮點(diǎn)計(jì)算量相較于經(jīng)典算法不可同日而語。因此,深度學(xué)習(xí)算法往往需要運(yùn)行在高性能的GPU服務(wù)器上,這就為實(shí)際工程應(yīng)用帶來了不便。往往在項(xiàng)目中,既要滿足算法速度和精度的要求,也要考慮到復(fù)雜苛刻的工程環(huán)境以及系統(tǒng)部署的方便簡易性,同時(shí)還要兼顧成本和功耗,如何在移動(dòng)端平臺(tái)AI芯片上實(shí)現(xiàn)實(shí)時(shí)的深度學(xué)習(xí)檢測算法便顯得尤為重要,成為了當(dāng)下的研究熱點(diǎn)。

目前的AI芯片大致可以分為兩類。第一類是一種協(xié)處理器,獨(dú)立于主處理器之外,只用來專門計(jì)算神經(jīng)網(wǎng)絡(luò)前向過程,一般價(jià)格低廉且通用性強(qiáng);第二類則是將CPU、GPU、DSP等都集成到SoC中,這樣內(nèi)部數(shù)據(jù)在各種計(jì)算內(nèi)核之間的遷移得到優(yōu)化,整體流程耗時(shí)降低,且一般體積更小、功耗更低。

本文以地鐵站客流統(tǒng)計(jì)為例,在服務(wù)器上訓(xùn)練出SSD模型,利用SNPE SDK (Snapdragon Neural Processor Engine SDK)將模型轉(zhuǎn)為Kryo和Adreno支持的dlc(Deep Learning Container)格式,運(yùn)行于高通驍龍835芯片上。另外對(duì)模型做了針對(duì)性的優(yōu)化,降低了在手機(jī)上運(yùn)行時(shí)的內(nèi)存需要和時(shí)間損耗,增強(qiáng)了模型的抗虛警能力。實(shí)驗(yàn)結(jié)果表明,算法檢測結(jié)果準(zhǔn)確,每幀檢測耗時(shí)約45ms,滿足工程應(yīng)用要求。

1 SSD算法簡介

SSD是Wei Liu在ECCV 2016上提出的一種one-stage目標(biāo)檢測算法。區(qū)別于R-CNN的先提取候選區(qū)域再分類的流程,SSD的整個(gè)檢測過程只需要一步,在一次前向過程中就能完成預(yù)選框選擇、預(yù)選框特征提取、目標(biāo)分類、目標(biāo)定位這些操作。SSD的結(jié)構(gòu)使其便于訓(xùn)練和優(yōu)化,同時(shí)也提高了檢測速度。

SSD的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,可以看出網(wǎng)絡(luò)由兩個(gè)部分構(gòu)成。左側(cè)的VGG-16為SSD的基礎(chǔ)網(wǎng)絡(luò),主要負(fù)責(zé)對(duì)圖像做卷積操作,加深網(wǎng)絡(luò)以提高擬合性能。其中的Conv4_3層與右側(cè)增加的5個(gè)特征層則每層產(chǎn)生三個(gè)輸出,直接作用到目標(biāo)識(shí)別。第一個(gè)輸出是預(yù)選框的坐標(biāo)和回歸權(quán)值參數(shù)第二個(gè)輸出是經(jīng)過一次批標(biāo)準(zhǔn)化(batch norm)和卷積后產(chǎn)生的給預(yù)選框分類的置信度向量第三個(gè)輸出同樣需要經(jīng)過一次批標(biāo)準(zhǔn)化和卷積,用于給預(yù)選框坐標(biāo)回歸,其中n為預(yù)選框的序號(hào),假設(shè)該層共產(chǎn)生預(yù)選框N個(gè),則。

經(jīng)過一次網(wǎng)絡(luò)前向后便能得到上述的輸出。由于置信度向量遵循softmax原則,因此有:

挑選出每個(gè)預(yù)選框中最大置信度對(duì)應(yīng)的序號(hào)k,即為該預(yù)選框的類別。再通過預(yù)選框坐標(biāo)和其回歸向量,即可計(jì)算出真實(shí)目標(biāo)位置,對(duì)每一個(gè)預(yù)選框,計(jì)算方法如下式2所示:

SSD利用了6層特征來生成、調(diào)整、分類預(yù)選框,最后經(jīng)過非極大值抑制的篩選即可獲得正確的目標(biāo)位置信息,由于多尺度的特征映射在原圖上代表不同感受野,因此SSD的特征金字塔結(jié)構(gòu)使其檢出率得到進(jìn)一步提升。

2 SNPE簡介

SNPE是高通公司專門為運(yùn)行神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)的處理引擎,可以使神經(jīng)網(wǎng)絡(luò)模型運(yùn)行在GPU上,速率比CPU快4倍。用戶在訓(xùn)練生成自己的模型后,利用官方提供的SDK轉(zhuǎn)成指定格式方可運(yùn)行于GPU上。然而目前SNPE只支持Caffe、TensorFlow、Caffe2三種框架,且僅能加速指定的一些層,當(dāng)用戶模型中出現(xiàn)了支持列表之外的層時(shí),可以利用SNPE提供的用戶自定義接口予以完善。

SNPE作為一個(gè)為集成AI芯片提供神經(jīng)網(wǎng)絡(luò)加速服務(wù)的引擎,為實(shí)現(xiàn)移動(dòng)端平臺(tái)的目標(biāo)檢測提供了便利。

3 移動(dòng)平臺(tái)的SSD算法實(shí)現(xiàn)及優(yōu)化

3.1 模型生成及算法移植

本文利用SNPE在驍龍835芯片上實(shí)現(xiàn)目標(biāo)檢測的開發(fā)工作流程如圖2所示。

首先在服務(wù)器上基于開源的Caffe框架設(shè)計(jì)并訓(xùn)練一個(gè)SSD檢測模型。接下來利用SNPE(版本 1.15.0)提供的SDK接口,將模型的網(wǎng)絡(luò)配置文件和網(wǎng)絡(luò)權(quán)重文件合并后轉(zhuǎn)換為dlc格式,在SNPE上成功加載并在GPU內(nèi)核上運(yùn)行。圖中虛線以上部分的工作是可以在移動(dòng)設(shè)備之外調(diào)試進(jìn)行的,虛線以下則只能在移動(dòng)端設(shè)備上完成。

圖1:SSD卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)

正如第2節(jié)所說,SNPE作為一個(gè)問世不久的產(chǎn)品,目前功能尚不完善,還不支持對(duì)某些類型層的加速,本文生成的SSD模型中的“detection_out”層便不被支持。為了讓模型得以順利移植,本文在網(wǎng)絡(luò)中截去了這一層,并在SNPE之外單獨(dú)實(shí)現(xiàn)。“detection_out”層是整個(gè)網(wǎng)絡(luò)的輸出層,其層類型為“DetectionOutput”。該層獲取三個(gè)輸入:預(yù)選框分類的置信度向量;預(yù)選框坐標(biāo)回歸向量;預(yù)選框的坐標(biāo)和回歸權(quán)值參數(shù)。將這三個(gè)參數(shù)按照式2計(jì)算,即可得到真實(shí)目標(biāo)的位置和類別信息,所以想要在網(wǎng)絡(luò)構(gòu)架外重新實(shí)現(xiàn)該層,也需要同樣從網(wǎng)絡(luò)獲得這三個(gè)向量。因此我們?cè)诰W(wǎng)絡(luò)最后新增一個(gè)concat層,連接“mbox_соnf_flаttеn”層和“mbox_loc”層,這樣整個(gè)模型在SNPE上做完前向之后,便可以得到上述的前兩個(gè)向量。至于第三個(gè)向量預(yù)選框的坐標(biāo)則只和輸入圖像尺寸以及網(wǎng)絡(luò)結(jié)構(gòu)相關(guān),所以可以事先確定好,解析真實(shí)值時(shí)直接調(diào)用即可。

3.2 網(wǎng)絡(luò)模型優(yōu)化

上小節(jié)討論了如何在移動(dòng)端設(shè)備移植運(yùn)行目標(biāo)檢測算法,但由于SSD算法本身為服務(wù)器端設(shè)計(jì),模型的尺寸結(jié)構(gòu)相對(duì)于移動(dòng)端設(shè)備而言太大,過于冗余復(fù)雜的結(jié)構(gòu)會(huì)導(dǎo)致模型體積變大、輸出維數(shù)變高、運(yùn)行時(shí)間變長等問題。為了使算法得以高效運(yùn)行,本文對(duì)生成的SSD模型分別從基礎(chǔ)網(wǎng)絡(luò)選型和預(yù)選框篩選這兩個(gè)方面作了優(yōu)化。

3.2.1 基礎(chǔ)網(wǎng)絡(luò)選型

正如第1節(jié)所論述,SSD模型結(jié)構(gòu)由兩部分組成:基礎(chǔ)網(wǎng)絡(luò)和附加網(wǎng)絡(luò)。附加網(wǎng)絡(luò)是SSD的核心所在,實(shí)現(xiàn)了其特征金字塔等特性,所以一般其結(jié)構(gòu)不予更改,而基礎(chǔ)網(wǎng)絡(luò)則只是負(fù)責(zé)提取特征所用,因此可以選用各種經(jīng)典或新近的卷積神經(jīng)網(wǎng)絡(luò),例如VGG-16、Resnet、Densenet等,基礎(chǔ)網(wǎng)絡(luò)的選擇直接影響到了SSD的性能和計(jì)算復(fù)雜度。本文選用了Mobilenet[9]作為基礎(chǔ)網(wǎng)絡(luò),顧名思義,該網(wǎng)絡(luò)設(shè)計(jì)初衷就是為了能在移動(dòng)端便捷使用。Mobilenet與一般的卷積神經(jīng)網(wǎng)絡(luò)不同,其基本單元是深度級(jí)可分離卷積,在相同權(quán)值參數(shù)數(shù)量的情況下,能減少數(shù)倍的計(jì)算量。自2017年首次發(fā)表之后,迄今論文應(yīng)用量已逾900。

圖2:移動(dòng)平臺(tái)檢測算法開發(fā)流程

圖3:SSD選取預(yù)選框的規(guī)則

3.2.2 預(yù)選框篩選

從式2可以看出,真實(shí)目標(biāo)的位置信息是通過對(duì)預(yù)選框作坐標(biāo)偏移得來的,因此預(yù)選框設(shè)置的合理準(zhǔn)確與否直接影響到了最終結(jié)果。SSD的特征層生成預(yù)選框的規(guī)則如圖3所示。

圖4:地鐵客流統(tǒng)計(jì)待檢圖

以本文選用的Mobilenet為例。Mobilenet共計(jì)28層,我們利用了其中的6層特征用來目標(biāo)檢測,假設(shè)輸入圖尺寸為300×300,這6層特征層尺寸分別是 19×19、10×10、5×5、3×3、2×2 和 1×1,而除了第一層沒有且只有1個(gè)外,其余5層都有且為2。由式3可計(jì)算得預(yù)選框數(shù)目為(1083+600+150+54+24+6),共1917個(gè)。圖4為地鐵站客流統(tǒng)計(jì)項(xiàng)目的一張待檢圖,可以看出該場景人群比較密集,人與人之間存在大幅重疊情況,因此只能通過檢測人頭來確定流量。

本文中,算法的主要目的是檢測站臺(tái)內(nèi)出現(xiàn)的人頭數(shù)目,因此對(duì)于待檢目標(biāo)的尺寸和位置已經(jīng)有了先驗(yàn)知識(shí)。我們知道人頭在整幅圖像中所占比例偏小,大多數(shù)近似正方形狀,且不會(huì)出現(xiàn)在圖中左上方劃線的區(qū)域,同時(shí)考慮到特征層越深,負(fù)責(zé)檢出越大目標(biāo)的原則,本文對(duì)SSD的后5層預(yù)選框作了削減,刪去了所有同時(shí)也刪去了中心點(diǎn)位于劃線區(qū)域里的預(yù)選框,預(yù)選框數(shù)目從1917變?yōu)榱?22,約減少為原本的一半。經(jīng)過篩取之后,模型的concat層的輸出維數(shù)大大降低,后續(xù)對(duì)預(yù)選框的選擇、調(diào)整和非極大值抑制等處理也減少了資源開銷,同時(shí)由于對(duì)預(yù)選框的位置做了限制,不應(yīng)該出現(xiàn)目標(biāo)的地方產(chǎn)生虛警的概率便大大降低,這些都為模型能在移動(dòng)端平臺(tái)快速高效準(zhǔn)確的運(yùn)行產(chǎn)生積極影響。

4 算法效果

4.1 運(yùn)行環(huán)境

本文算法運(yùn)行于驍龍835芯片,詳細(xì)配置信息如下:

4.2 檢測指標(biāo)

測試數(shù)據(jù)集為200張類似于圖4的地鐵站臺(tái)監(jiān)控圖。在上述測試條件下,算法平均每幀耗時(shí)約45ms,而mAP(mean Average Precision)達(dá)到了0.723。

5 結(jié)論

相比較于傳統(tǒng)經(jīng)典算法,基于深度學(xué)習(xí)的目標(biāo)檢測算法在精確性、魯棒性、泛化性等方面更有優(yōu)勢(shì),但深度學(xué)習(xí)算法往往需要運(yùn)行在計(jì)算能力強(qiáng)大的服務(wù)器上,考慮到實(shí)際工程項(xiàng)目中對(duì)場地、資金預(yù)算、功耗的苛刻要求,深度學(xué)習(xí)目標(biāo)檢測算法反而應(yīng)用場景不多。本文實(shí)現(xiàn)了在移動(dòng)端平臺(tái)的深度學(xué)習(xí)目標(biāo)檢測算法,經(jīng)數(shù)據(jù)集測試每幀處理速度約45ms,mAP為0.723,滿足一般實(shí)時(shí)性和精確性要求,對(duì)相關(guān)領(lǐng)域方面的研究具有一定啟發(fā)意義。

猜你喜歡
特征檢測模型
一半模型
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
重要模型『一線三等角』
重尾非線性自回歸模型自加權(quán)M-估計(jì)的漸近分布
如何表達(dá)“特征”
不忠誠的四個(gè)特征
抓住特征巧觀察
3D打印中的模型分割與打包
主站蜘蛛池模板: 国产自产视频一区二区三区| 国产色偷丝袜婷婷无码麻豆制服| 五月综合色婷婷| 一级毛片在线播放| 亚洲一级毛片在线观播放| 国产成人夜色91| 欧美一区二区自偷自拍视频| 一本大道无码日韩精品影视| 欧美激情第一区| 夜精品a一区二区三区| 国产日韩AV高潮在线| 亚洲福利片无码最新在线播放| 国产人成在线视频| 青青青伊人色综合久久| 青青草综合网| 国产麻豆福利av在线播放| 日韩午夜伦| 国产成年无码AⅤ片在线 | 国国产a国产片免费麻豆| 国产爽歪歪免费视频在线观看| 91蝌蚪视频在线观看| 欧美精品一区二区三区中文字幕| 欧美亚洲一区二区三区导航| 国产欧美中文字幕| 日本黄色不卡视频| 国产视频一区二区在线观看| 国产激情国语对白普通话| 91小视频版在线观看www| 久久性视频| 久久成人18免费| 亚洲免费毛片| 欧美日韩福利| 亚洲欧洲国产成人综合不卡| 国产国拍精品视频免费看| 亚洲国产系列| 99精品高清在线播放 | 欧美在线导航| 成人国产精品2021| 超碰aⅴ人人做人人爽欧美 | 国产激情无码一区二区免费| 91丝袜美腿高跟国产极品老师| 欧美精品在线免费| 欧美另类视频一区二区三区| 一本一道波多野结衣一区二区| 国产丝袜91| 全部免费特黄特色大片视频| www.91中文字幕| 啪啪啪亚洲无码| 国产精品无码AV中文| 久久精品国产免费观看频道| 婷婷丁香在线观看| 欧美日韩免费在线视频| 久久综合伊人 六十路| 日本尹人综合香蕉在线观看| 波多野结衣一区二区三区88| 蜜臀av性久久久久蜜臀aⅴ麻豆| 亚洲区欧美区| 亚洲精品不卡午夜精品| 国产精品页| 色婷婷在线播放| 91在线丝袜| 99久久精品国产自免费| 国产成人盗摄精品| 久久中文电影| 亚洲自偷自拍另类小说| 日韩国产无码一区| 国产91特黄特色A级毛片| 91免费精品国偷自产在线在线| 免费无码一区二区| 久久国产精品麻豆系列| 亚洲成人在线免费| 精品一区二区三区中文字幕| 婷婷成人综合| 91丨九色丨首页在线播放| 成人在线观看不卡| 91蜜芽尤物福利在线观看| 国产www网站| 色爽网免费视频| 亚洲日韩AV无码一区二区三区人| 亚洲欧美在线综合一区二区三区| 极品国产一区二区三区| 亚洲无码视频一区二区三区|