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

基于YOLOv3的嵌入式實時視頻目標檢測算法

2020-02-19 15:19:22尹彥卿龔華軍王新華
計算機工程 2020年2期
關鍵詞:嵌入式深度檢測

尹彥卿,龔華軍,王新華

(南京航空航天大學 自動化學院,南京 210000)

0 概述

目標檢測是指從場景中區分出不同對象,定位每個對象的邊界框并判別其類型的技術。如何實現精確的目標檢測是計算機視覺領域一個基礎性難題,引起了研究人員的廣泛關注。

隨著深度學習技術的發展,許多基于卷積神經網絡(Convolutional Neural Network,CNN)的目標檢測方法都已具備優越的檢測性能。例如,特征金字塔網絡(Feature Pyramid Network,FPN)算法在coco數據集上的檢測精度達到59.1%,但該算法由于網絡參數繁多、計算復雜,即使在Titan GPU上,其檢測速度也僅能達到6 frame/s,難以實現實時目標檢測[1]。

2018年,YOLOv3目標檢測算法被提出,它將目標檢測視作一個回歸問題,通過一個神經網絡同時輸出目標的位置和類別,在幾乎不損失識別精度的前提下,其檢測速度明顯提升。在Titan-X GPU上,YOLOv3-416網絡的運行速度達35 frame/s,可用于實現對視頻信息的實時檢測[2-4]。

盡管YOLOv3在強大的GPU上具有實時檢測性能,但高端GPU價格昂貴、體積巨大,通常僅能在服務器上安裝,極大地限制了YOLO算法的應用場景。在智能手機、無人機、無人車等常見的嵌入式設備上,計算資源和內存都非常有限,因此,嵌入式設備上的實時目標檢測仍是一大挑戰。YOLOv3的研究者還提出了一種tiny-YOLOv3網絡,其網絡結構簡單,可在嵌入式設備上進行實時檢測,但其mAP值僅為33.1%,無法兼顧實時性和檢測準確度[5]。

本文提出一種基于YOLOv3的嵌入式平臺實時視頻目標檢測算法。該算法運用半精度推理策略,在幾乎不損失檢測精度的情況下提高檢測速度,同時,利用視頻目標運動自適應推理策略,降低深度網絡推理的運行頻率,進一步提高視頻目標檢測的幀率。結合上述2種策略,在NVIDIA Tegra系列嵌入式GPU平臺上實現實時、準確的目標檢測[6-7]。

1 YOLOv3網絡的半精度推理

1.1 半精度推理的可行性分析

為了保證計算精度,目前主流算法框架的深度網絡權值均使用單精度浮點數據類型進行保存。單精度浮點類型在計算機中較為常見,但其在存儲時需要4 Byte的空間,且計算復雜度較高。在IEEE 754標準中定義了一種半精度浮點類型[8],其在CUDA編程環境中又稱為Half類型。半精度浮點類型需要2 Byte存儲空間,其優勢在于GPU中的計算硬件可在一個周期內同時完成2個半精度浮點類型的運算,大幅提高計算速度。2種數據類型的比較如表1所示。

表1 單精度與半精度類型的比較

由表1可知,2種數據類型的性能差異主要體現在數值范圍與精度上。在數值范圍方面,根據本文在coco數據集上的測試結果,YOLOv3網絡權值和激活值普遍分布在±20之內,故2種數據類型的數值范圍均能滿足要求。在精度方面,由于網絡訓練時反向傳播算法需要計算權值的梯度,權值的一點微小變化都會對結果產生較大影響,因此在訓練過程中,權值的精度至關重要,只能使用單精度類型儲存。在本文算法的網絡推理過程中,推理速度是最重要的影響因素,因此,半精度類型權值的精度損失對網絡推理結果的影響程度,將直接決定能否使用半精度推理策略進行YOLO網絡加速。

將待檢測的目標類別數記作C,則YOLO網絡對每個檢測目標的輸出結果為一個五元組(c,x,y,w,h)和一個長度為C的向量(P1,P2,…,PC),其中,Pi表示目標屬于第i類的分類概率,c表示目標存在的概率,(x,y,w,h)表示目標的位置和大小,其含義是實際目標框相對于一個固定預設框的位置偏移和長寬比例,而不是目標框的絕對坐標。實際輸出目標框相對于預設框的位置關系如圖1所示。

圖1 實際目標框相對于預設框的位置和大小

令每個網格距離圖片左上角的像素距離分別為cx、cy,每個預設框的寬高為pw、ph,σ函數表示將范圍在0~1的輸入線性映射到網格的實際長寬范圍,則物體實際在圖像中的位置和大小如下:

σ(x)=32x

bx=σ(x)+cx

by=σ(y)+cy

bw=pwew

bh=pheh

本文在coco數據集上分別進行單精度和半精度推理實驗。根據實驗結果的統計數據,對于YOLO網絡最終輸出的激活值,使用半精度類型運算與單精度類型運算的誤差在±0.001以內。下面將逐一分析該誤差對網絡輸出變量的影響:

1)目標存在概率c。本文算法以0.5為閾值判斷是否存在目標,將低于0.5的值判定為背景。c的取值范圍為0~1,因而在絕大多數情況下,該誤差不足以影響c相對于閾值的關系,其對判定結果基本沒有影響。

2)目標分類概率Pi。算法通過argmax函數選取其中最大值的下標i作為目標分類的結果。Pi的分布范圍為0~1,而正確的目標分布概率普遍在0.9以上。因此,該誤差不能改變最大值的分布,因而可認為該誤差對于目標分類結果幾乎沒有影響。

3)目標位置(x,y)。經過σ函數線性映射后,目標位置(x,y)的誤差在0.032像素以內,而該誤差經過指數函數放大后,其對目標大小(w,h)產生的誤差也在1像素以內。因此,可認為該誤差對于目標定位位置影響較小。

綜上所述,使用半精度類型取代單精度類型進行網絡權值和激活值的表示,對于網絡輸出結果基本沒有影響,但可以大幅加快推理速度和降低存儲要求,便于在嵌入式平臺上進行推理。

1.2 TX2平臺上半精度推理的實現

需要注意的是,并非所有嵌入式設備均支持半精度浮點類型運算。自Tegra X1以后,NVIDIA的嵌入式GPU平臺也支持原生的半精度計算指令,因此,本文選用Tegra系列的最新處理器TX2進行YOLOv3網絡半精度推理的實現。TX2處理器的核心板大小僅為5 cm×8 cm,但其能夠為深度學習應用提供超過1 Tflops的浮點運算性能,同時功耗低于7.5 W,故適合在視頻監控攝像頭、無人機、機器人等嵌入式平臺上部署應用[9]。

在進行CUDA編程時,需要使用內置的Half 2類型對半精度運算進行加速。Half 2類型為2個半精度類型在顯存中的組合,其結構如圖2所示。其中,S為符號位,E為階碼,M為尾數。Half 2類型在計算時將2個半精度類型同時輸入32位GPU,可在一個周期內同時完成2個半精度浮點類型的運算。

圖2 Half 2類型在顯存中的存儲結構

由于需要2個半精度類型同時運算才能起到加速效果,因此在YOLO網絡推理時要盡量保證所有的操作均為內存中相鄰兩組操作數的計算,避免計算資源的浪費[10]。在嵌入式GPU平臺上使用半精度類型進行推理的主要過程如下[11]:

1)讀入待檢測的圖像數據和網絡權值數據,送入顯存,并在GPU中轉換成半精度類型。

2)使用CUDNN提供的卷積運算接口API進行卷積計算,在設置參數時,將數據類型選為半精度類型[12]。

3)進行偏置、正則化等計算。首先將參數在顯存中拷貝一份,然后使用Half 2類型進行計算,以達到最大的加速效果。以偏置計算為例,其Half 2類型的快速計算過程如圖3所示。

4)在GPU中將計算結果轉換成單精度類型,并傳回內存中由CPU進行最終處理,然后輸出檢測結果。

圖3 Half 2類型的快速偏置計算

2 視頻運動自適應推理

考慮到本文算法主要應用于視頻目標檢測,目標信息在視頻中的相鄰幀之間具有連續性,因而并不需要對每一幀圖像進行完整的深度網絡推理。為進一步提高視頻目標檢測的速度,本文引入運動自適應推理的策略來判斷視頻幀是否需要重新進行完整的深度推理[13]。

對于新輸入的視頻幀,使用三幀差分法進行運動估計[14]。當前幀、上一幀、上上幀的圖像分別記為It、It-1、It-2,則三幀差分的結果如下:

Mmovement=(It-It-1)∩(It-1-It-2)

對三幀差分法得到的運動圖進行閾值化、形態學處理和濾波后,即可得到圖像中的運動區域。對于相對上一幀運動較大的視頻幀,需要運行一次完整的深度推理,重新檢測圖像中的目標位置和分類;對于相對上一幀運動不大的視頻幀,則使用粒子濾波來進行視頻目標跟蹤,并更新之前檢測出的目標位置。考慮到粒子濾波器在進行長時間的目標跟蹤時容易出現漂移、跟蹤失敗的情況,設置強制深度推理間隔為m,即在進行m幀的粒子濾波后,對第m+1幀強制使用深度推理重新檢測目標位置。每次完成深度推理后,將深度網絡的檢測結果作為粒子濾波器的初始值,重新初始化粒子濾波器[15-17]。整個過程如圖4所示。

圖4 視頻運動自適應推理流程

在TX2平臺上進行測試后發現,GPU加速后的三幀差分法耗時5 ms,對單個目標進行粒子濾波跟蹤耗時3 ms,比進行一幀深度推理的耗時要少。當視頻中的目標個數較少,例如,將幀差法與粒子濾波的耗時忽略不計時,整個算法運行幀率的上限為深度推理運行幀率的m倍。根據本文的測試結果,m取1~3時較為合適。當m取值較大時,算法的幀率上限有所提升,但其輸出對于粒子濾波結果的依賴性較強,準確度有所下降。若視頻中的目標個數較多,對目標逐個進行粒子濾波跟蹤的耗時增大,在這種情況下,可考慮使用CamShift等相對更快的視頻目標跟蹤算法降低耗時,進一步改善算法的實時性[18]。

3 實驗結果與評估

本文算法的所有評估工作均在NVIDIA TX2嵌入式平臺上進行,處理器運行于高性能模式,軟件環境為CUDA 9.0、CUDNN 7.1。本文利用coco數據集對不同輸入尺度下單精度網絡和半精度網絡的單幀圖片推理性能進行測試。由于coco數據集中全部為靜態圖像,因此僅啟動半精度推理加速策略,視頻目標跟蹤策略沒有明顯的效果[19],結果如表2所示。

表2 不同輸入尺度下單精度與半精度推理性能的對比

由表2可以看出,在不同的輸入尺度下,本文的半精度推理策略相對于其他2種策略有3倍左右的加速效果,同時其mAP值損失不到0.3%,檢測精度明顯優于tiny-YOLO和單數度YOLOv3實時目標檢測算法,使YOLO算法在嵌入式設備上的推理性能大幅提升。

本文選用ILSVRC視頻目標檢測(VID)數據集對算法的性能進行測試[20]。該數據集包含數千個完全標注的視頻片段,每個片段的長度為56幀~458幀。在2段視頻中各截取4幀相鄰圖片,如圖5所示。

圖5 ILSVRC VID測試序列中的檢測結果

在圖5中,第1幀與第4幀圖片的檢測結果由深度網絡推理得到,中間2幀圖片的檢測結果為粒子濾波跟蹤得到。可以看出,如果視頻畫面中的目標運動不太明顯,通過粒子濾波能夠可靠地跟蹤深度網絡檢測到的目標位置,降低深度推理的運行頻率,大幅節省計算量。在完整的ILSVRC VID測試數據集上,本文算法與原始YOLO算法的實驗結果對比如表3所示。

表3 ILSVRC VID數據集上的視頻目標檢測結果對比

從表3可以看出,本文的嵌入式實時視頻目標檢測算法在深度推理間隔為2時,可通過視頻目標運動自適應推理策略將深度推理運行次數減少66%,結合半精度推理策略,可在TX2嵌入式平臺上將運行幀率提高至28.2 frame/s,同時mAP值損失很低,檢測精度仍與原始YOLOv3網絡相當。增大深度推理間隔可得到更高的幀率,但也會導致目標檢測精度降低。

考慮到ILSVRC VID數據集中的測試序列長度普遍較短,且在同一個測試序列中出現的目標個數較少,大部分為單個目標面積較大的視頻序列,其目標檢測難度較低,因此,本文選取一段高速公路監控攝像頭拍攝的視頻進行復雜場景下的多目標檢測實驗。從測試視頻中截取2幀相鄰的畫面,檢測結果如圖6所示。由圖6可以看出,在復雜場景下,當視頻中出現多個目標且每個目標的面積均較小時,本文算法依然具有良好的檢測效果,可以應用于實際工程中。

圖6 測試序列中的視頻目標檢測結果

4 結束語

本文提出一種基于YOLOv3的嵌入式平臺實時視頻目標檢測算法。通過半精度推理策略和視頻目標運動自適應推理策略改進原始YOLO算法在嵌入式設備上的性能,提高算法的檢測速度。實驗結果表明,該算法在NVIDIA TX2嵌入式平臺上進行單次推理的速度比原始YOLO算法快3倍以上,其在ILSVRC VID數據集上可實現28.2 frame/s的實時檢測,且檢測精度與YOLOv3算法幾乎相同。下一步將繼續優化YOLO算法在嵌入式平臺上的部署策略,以實現深度學習目標檢測算法在更多設備上的應用。

猜你喜歡
嵌入式深度檢測
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
深度理解一元一次方程
深度觀察
深度觀察
深度觀察
搭建基于Qt的嵌入式開發平臺
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
小波變換在PCB缺陷檢測中的應用
主站蜘蛛池模板: 国产亚洲欧美在线专区| 亚洲综合久久成人AV| 在线观看免费国产| 日本三级欧美三级| 精品久久777| 91麻豆国产精品91久久久| 亚洲青涩在线| 99伊人精品| 青青久视频| 国产亚洲高清视频| 亚洲一道AV无码午夜福利| 亚洲精品无码专区在线观看 | 乱人伦中文视频在线观看免费| 亚洲视频免费在线| 99视频在线免费| 亚洲一区免费看| 久久精品无码国产一区二区三区| 国产成人精品第一区二区| 毛片免费视频| 久久99国产精品成人欧美| 一级香蕉人体视频| 任我操在线视频| 99久久婷婷国产综合精| 亚洲欧洲日本在线| 经典三级久久| 国产丝袜第一页| 久久青草视频| 青草视频网站在线观看| 一区二区午夜| 青青青国产精品国产精品美女| 国产丝袜无码精品| 日本欧美视频在线观看| 亚洲性视频网站| 日韩免费毛片| 日韩在线永久免费播放| 激情六月丁香婷婷| 国产网站黄| 亚洲VA中文字幕| 国产91视频免费| 青青草原偷拍视频| 国产精品一线天| 久久综合成人| 国产在线高清一级毛片| 亚洲AV免费一区二区三区| 午夜福利视频一区| 青青草原国产一区二区| 一区二区三区在线不卡免费| h网址在线观看| 视频二区国产精品职场同事| 亚洲国产成熟视频在线多多| 成人毛片在线播放| 日韩欧美国产三级| 亚洲a级毛片| 国产精品亚洲天堂| 国内精品视频在线| 一级高清毛片免费a级高清毛片| 精品无码一区二区三区电影| 一级成人a毛片免费播放| 国产精品一区在线麻豆| 国产男女XX00免费观看| 91精品国产麻豆国产自产在线| 久久青草免费91线频观看不卡| 久久毛片免费基地| 国产成人AV大片大片在线播放 | 国产福利免费视频| 国产18在线播放| 国产XXXX做受性欧美88| 亚洲福利片无码最新在线播放| 久热中文字幕在线| 亚洲不卡无码av中文字幕| 九九视频在线免费观看| 久久精品国产精品青草app| 国产理论最新国产精品视频| 一个色综合久久| 亚洲第一视频区| 国产国语一级毛片| 免费不卡在线观看av| 日韩精品一区二区三区中文无码| 亚洲国产精品成人久久综合影院| 欧美精品亚洲精品日韩专区| 思思热精品在线8| 亚洲无码视频图片|