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

基于模型剪枝和半精度加速改進YOLOv3-tiny算法的實時司機違章行為檢測①

2020-04-24 02:23:50姚巍巍
計算機系統應用 2020年4期
關鍵詞:嵌入式檢測模型

姚巍巍,張 潔

(西南交通大學 機械工程學院,成都 610031)

隨著經濟高速全面發展,我國對交通運輸的需求越來越大,軌道交通由于其便捷和運量大的特性,在我國交通運輸中的地位愈為重要.自2011年“四橫四縱”高速鐵路干線陸續建成通車以來,我國鐵路運輸的速度和運輸總量實現了質的突破.鐵路運輸生產力的高速發展,對鐵路行車的安全保障提出了更高的要求.確保機車的平穩運行已成為鐵路運輸部門的重中之重,提高鐵路機務部門對機車運行安全的監控水平也成為當務之急.

鐵路安全是一個復雜的系統工程,由鐵路運輸生產人員、鐵路設備和鐵路環境這3 部分所組成.隨著科技的發展,車輛設備和鐵路環境都有了較大的發展進步,鐵路運輸生產人員逐漸成為提高鐵路行車安全的重要因素.因此對系統中的人加強監管就顯得極為重要.

司機行為識別是目標檢測的一個重要的應用場景.在行車途中,司機的駕駛行為是否符合安全規范直接關系到全車人的人身安全,所以對司機進行視頻監控是一項重要的安防措施.現有的行為分析以人工挑選分析LKJ 中保存的視頻數據為主,抽樣不均勻、分析質量不高等問題突出,且只用于司機的績效評定.實現實時自動分析以及預判的安全駕駛監督系統已經成為鐵路行業的迫切需求.

安全駕駛監督系統離不開目標檢測技術的發展.自2012年深度學習問世以來,其在圖像識別中表現出了極佳的效果,并逐漸取代了傳統特征機器學習的地位.在目標檢測領域,一批高精度的算法不斷刷新了識別精度的上線,并逐漸為工業界所使用.然而,當前國內外大多數智能司機行為識別集中于汽車行業,由于汽車內部狹小,駕駛員人臉和手部等有明確的特征,可以達到實時行為識別的目標[1-4].而對于機車來說,現有的系統一般搭載于昂貴的遠程大型服務器上,只能在列車運行結束后收集運行保存的監控視頻檢測,無法實現實時和隨車檢測,只能進行司機非安全行為發生后的追查和定責.

因此,采用一種低成本,可隨車一起運行的嵌入式設備,在其上部署可以實時運行的監控系統,以便實時傳回違章信息便成為一項極有意義的工作.為解決實時、高精度檢測司機安全駕駛監督的問題,本文選擇玩手機這種較為難以肉眼識別的行為為例,對目標檢測中檢測速度較快的YOLOv3-tiny[5,6]算法進行了加速,最終將其成功的部署在了計算能力較低的嵌入式設備上部署,實現了較高精度下實時運行的目的.

1 實驗數據

1.1 實驗數據采集

為能夠確保數據的多樣性,本文采集多個鐵路局機務段貨車及客車的駕駛室原始視頻數據,標記其中出現手機的圖片共5491 張.標注,從中隨機選擇4919張圖片(含5890 個手機對象)作為訓練集,剩余的572張圖片(含892 個手機對象)作為驗證集,如表1 所示.

表1 司機駕駛室圖片數據集

1.2 數據增強與標注

為了對抗過擬合、提高樣本多樣性和圖片質量,在數據集較少的情況下對數據進行增強,采用雙邊濾波、隨機水平鏡像翻轉、隨機亮度改變和0°~10°隨機角度旋轉對數據集進行擴增,采用LabelImg 進行人工畫框標注,只標注被遮擋面積比小于0.5 的手機圖片以確保精確性,如圖1 所示.

圖1 增強和標注數據集

2 加速目標檢測網絡

2.1 YOLO算法原理

為實現在線實時高精度檢測,本文選取精度較高同時推理速度較快的YOLOv3 作為基礎網絡.YOLOv3是一種one-stage(單階段)的目標檢測深度學習算法,其集精確的和推理的快速性于一身,自其提出至今,在工業界已有了廣泛的應用[7-10].YOLOv3 在Coco 和Pascal-voc 等開源數據集上均有不俗的表現,其速度和精準度在相同輸入大小的情況下均優于SSD[11]、faster-RCNN[12]等主流算法,尤其是YOLOv3-tiny 網絡以其非常快的檢測速度、較少的參數總量在嵌入式領域和邊緣計算受到親睞.YOLOv3 主要包含以下3 種網絡,如表2 所示.

表2 YOLO 網絡對比

表2 中精度一欄是在Coco 測試數據集上得到的精度,檢測速度一欄是在嵌入式設備jetson Nano 中測試得到.可見雖然YOLOv3 和YOLOv3-spp 網絡的精度較高,但由于其復雜的網絡在計算量受限的嵌入式設備很難達成實時運行的目標.決定網絡運行消耗的時間由模型在每一層計算所耗時間和前后網絡層參數傳遞所耗時間決定,YOLOv3 和YOLOv3-spp 較深的網絡層數使得運行需要在完成上一層網絡推理之后才能傳入到下一層網絡進行推理,對于嵌入式這種并行處理能力差的設備來說,如非直接縮減網絡的層數,則僅對每層的參數進行半精度優化和剪枝也無法縮減網絡在前后傳遞中浪費的時間.而YOLOv3-tiny 的網絡層數較少,主要運行時間消耗在網絡每一層計算中,這就為優化提夠了條件.盡管精度僅為YOLOv3 的一半,但由于文中針對的是單一司機違章行為目標的目標檢測而非coco 數據集中80 個類別的目標檢測任務,YOLOv3-tiny 針對此類任務仍有較好的性能和向下優化的空間,如下文中的實驗所證.此外,YOLOv3-tiny在占用硬盤空間和運行內存均處于優勢.因此,我們選用YOLOv3-tiny算法作為實現實時違章檢測的主干網絡.

YOLOv3-tiny 網絡結構如圖2 所示.與雙階段目標檢測算法,如faster-RCNN 等網絡不同的是,在輸入圖片經過主體網絡推理后,YOLOv3 網絡直接通過3 個不同尺度(13×13,26×26,52×52)的輸出通道直接得到包含目標框坐標、目標置信度和目標框內物體分類在內的特征圖,最后經過非極大值抑制算法(nms)去掉重復目標后得到最終輸出結果.而YOLOv3-tiny 為了節省計算量,只在兩個尺度上輸出特征圖,分別為[B,3×(4+1+C),13,13]和[B,3×(4+1+C),26,26],其中B 為每次載入圖片的數量,3×(4+1+C)為輸出特征圖的通道數,C 為每一類的概率,3×(4+1+C)代表特征圖上每個1×1 的點對三個anchor(錨定框)進行目標框的回歸,以此增強對不同大小物體的識別,如圖3 所示.

2.2 模型剪枝

深度學習通過眾多的參數計算推理得到預測結果,其中有相當多的參數都是冗余且對預測結果無影響的.當模型訓練時,原始網絡需要一個足夠大的參數空間以充分的尋找最優解.但當模型訓練完之后,我們只需要保留最優的參數也一樣可以達到和原參數空間一樣的效果.我們可以把剪枝視為在原有模型構成的參數空間里中搜尋了一條最有價值的計算路徑[13],這樣模型的精度不會降低,而使模型運行的更有效率,這就是進行模型剪枝的意義.本文采用模型剪枝的方法對訓練后模型進行保持原精度情況下計算量和參數總量的縮減.模型剪枝可以根據細粒度和粗粒度分為權重剪枝和通道剪枝兩類,通道剪枝方法由于其獨有的簡單、可行性、總計算量較小和不需要特殊的硬件庫的優勢,在近幾年得到了相當迅速的發展,并已實際應用于一些工程中[14-16].通道剪枝本質上從通道這一層面上對卷積層中的卷積核的重要性進行區分,去除對網絡輸出結果影響小的卷積核,以此實現計算總量和模型體積的縮小.

圖2 YOLOv3-tiny 網絡

我們采用了對Batch Normalization 層(批標準化層,下稱為BN 層)進行L1 懲罰的方式進行通道剪枝.在神經網絡的計算中,BN 層實際上進行了兩步運算,如式(1)所示:(1)對輸入特征圖所有參數規整到均值為0,方差為1 的正態分布范圍內.(2)讓每個規整后所有參數在訓練過程中學習到對應的兩個調節因子γ 和β,對標準化后的值進行微調,使之更適于梯度下降.

其中,ai代表輸入的每個通道的特征圖,為Bl×Hl×Wl;u,σi分別是均值和方差;γi和βi是每個通道特征圖所對應的兩個調節因子.實際上,γ 可以視為BN 層特征圖每一通道的權重,如果當前輸入的通道Ci對應的權重γi出現γi=0 或γi≈0 的情況,那么就會有γi×τ=0,特征圖對應的輸出通道即全為常數0,不會再對接下來的運算產生影響.因此,我們可以利用BN 層中的縮放因子γ 衡量特征圖每個通道的重要性,當γi=0 或者γi≈0 時,即可剪去γi對應特征圖的通道,最終剪去γ=0 對應的上下卷積層的卷積核,以此完成減少計算量和縮小模型體積的任務,如圖4 所示.

圖3 YOLO 檢測過程圖

圖4 BN 層剪枝示意圖

然而,一般訓練之后神經網絡中的γ 值通常呈正態分布,并不會有很多參數等于或者靠近0.因此,我們需要在訓練網絡的同時減小γ,這被稱之為稀疏化訓練.通常使用L1 次梯度法稀疏每個BN 層的γ 值,如式(2)所示.

其中,u 代表損失函數的學習率;u ?l代表訓練中原始損失函數的梯度,它是從損失的反向傳播中得出的;η 是超參數,決定了L1 次梯度法的每次梯度下降大小,根據經驗,η 應在1e-4~1e-5 之間取得[15];sgn(γl- u?l)決定了L1 次梯度法的損失方向.

2.3 TesnorRT 模型簡化及半精度加速

TensoRT 是NVIDIA 為深度學習的高速推理需求所推出的一個高性能深度學習推理平臺.它包括深度學習推理優化器和運行器,可為深度學習推理應用提供INT8 和FP16(半精度)優化,例如視頻、語音識別、推薦系統和自然語言處理等.在深度學習的部署中,降低精度推斷可顯著減少應用程序延遲,這是許多實時服務,自動和嵌入式應用程序的要求.

在搭建TensorRT 加速引擎時,需要將原模型轉化為TensorRT 可以讀取的形式,如caffe、onnx 的模型結構.TensorRT 自帶的接口NvcaffeParser 提供了Caffe 結構模型中卷積層、激活層和池化層等常見層的接口,而YOLOv3-tiny 中的Upsample 層(上采樣層)及YOLO 層(檢測層)需要自行編寫后自定義插入.Upsample層實現了數據圖H,W 方向上的調整,放大輸入的特征圖以適應聯結、矩陣加法等操作,常見的Upsample 方法有線性插值、最近鄰值等.YOLO 層實現了從特征圖中挑選置信度(confidence)大于預設值的目標輸出的目的,并將挑選出的特征與錨定框大小計算回歸出目標框真實位置和長寬值.本文將最近鄰值的Upsample層和YOLO 層添加到了TensorRT 加速引擎中.

TensorRT 通過實現模型簡化和半精度對模型進行加速,其中模型簡化通過整合卷積層、激活層和BN 層為CBR 層實現;半精度加速通過在平臺支持的情況下,將數據精度需求從32 位float (浮點數)降低為16 位float,可極大的提升計算效率.

2.4 總體流程

我們提出的算法總體流程如下:(1)首先進行稀疏訓練,在訓練模型的同時使BN 層γ 因子盡可能地收縮;(2)當稀疏訓練完成時,執行修剪以移除冗余參數;(3)微調修剪后的模型以獲得最終模型;(4)搭建TensorRT 推理加速引擎,編寫自定義層;(5)將模型讀入TensorRT 加速引擎中,部署在嵌入式設備上.訓練流程圖如圖5 所示.

圖5 訓練部署流程

3 實驗結果與分析

本文使用了Pytorch 框架完成YOLO算法的搭建,主要訓練硬件設備為:①處理器:Intel 9400f;②GPU 顯卡:RTX2070 8G.操作系統為Ubuntu16.04,python 環境為python3.6.8.部署嵌入式平臺為較為廉價、適于工業部署的NVIDIA Jetson Nano,如圖6 所示.Jetson Nano 是NVIDIA 公司2019年新推出的嵌入式高性能開發板,其采用NVIDIA Maxwell?架構,配備128 個CUDA 核心,內存為4 GB,搭載的運行環境為JetPack 4.2.

圖6 Jetson Nano

為提高顯存利用率,增加batch size(批大小),采用了NVIDIA 的apex 技術進行混合精度訓練.選取準確率P (precision)、召回率R (recall)、平均精確率均值mAP (mean Average Precision)、F1 值、檢測速度和參數總量作為評價準則.其中,precision 指的是被正確檢測出的物體占總被檢測出的物體的比例,recall 指被正確檢測出的物體占驗證集中所有物體的比例.precision和recall 一般情況下是成反比關系,即recall 越大,precision 越小,反之同理.而mAP 為目標檢測任務中最重要的指標,決定了檢測的效果.mAP 一般通過改變檢測時置信度(confidence)閾值得到Precision-recall 曲線,計算Precision-recall 曲線的面積得到mAP 值.為了在計算機中更快速精確的求mAP 的大小,通常使用插值近似的方法,如式(3)所示.

本文同時以正常訓練模式和稀疏化訓練模式訓練了兩個YOLOv3-tiny 模型,設置稀疏訓練超參數η=1e-4 進行訓練.表3 展示了YOLOv3-tiny 網絡稀疏化訓練后的各項指標,可見稀疏化訓練后的各項指標均處于相當優秀的水平,0.965 的mAP 保證了高精度檢測的目的,甚至要高于正常訓練,這是因為稀疏化訓練也可以視為進行了L1 正則化,降低了模型對訓練數據的過擬合.圖7 顯現了稀疏化訓練后γ 系數的稀疏化水平.YOLOv3-tiny 網絡共有11 層BN 層,這11 層BN 層共有4512 個γ 系數,40%的γ 參數的絕對值下降到0 值附近,滿足進行剪枝的條件.隨后進行剪枝并進行微調.

表3 YOLOv3-tiny 訓練結果

圖7 稀疏化訓練后全γ 系數分布圖

表4 展示了剪枝后各個卷積層變化情況,剪枝后的模型各卷積層通道大小由之前的2 的n 次方數變為不再有規律可循,這便是非結構剪枝在現有模型中搜尋了一條最為有效的計算路徑的結果.

表4 剪枝后的模型各卷積層大小

表5 展示了剪枝后并微調后改進模型(下文稱為Prune-YOLOv3-tiny)在Jetson Nano 上的表現.可見在微調后,Prune-YOLOv3-tiny 模型的精度略有上升,而在檢測速度相較原模型提高了76.5%,計算總量降低為原模型的43.2%,在參數總量上降低為原模型的31.4%.盡管只有40%的γ 參數被剪去,模型參數總量依然下降很大.由表4 可見,Conv1、Conv2、Conv3 等參數較少的卷積層被剪去的較少,而如Conv6、Conv7、Conv8 等參數較多的卷積層剪去的參數較多,參數最多的Conv7 有高于一半的參數被剪去,這是剪枝后模型參數總量要更少的原因.而對于計算復雜度,參數最多的Conv7 層并非是計算量最大的層,考慮計算量需要綜合每層輸入輸出的特征圖大小.對YOLOv3-tiny 模型來說,Conv6 是模型計算量最大的層并沒有如Conv7 一樣被剪去一半以上,這是計算總量的縮小程度低于參數總量的原因.

表5 原網絡與改進網絡對比

隨后,將原YOLOv3-tiny 模型加載到搭建好的TensorRT 加速引擎中以生成半精度加速的模型.表6展現了YOLOv3-tiny 模型在TensorRT 加速引擎中的效果.相較于原模型,TensorRT 加速的半精度模型的精度沒有變化,檢測速度提高52.9%,而參數總量沒有明顯下降.

表6 YOLOv3-tiny 在不同推理平臺上對比

最后,我們將Prune-YOLOv3-tiny 模型加載到搭建好的TensorRT 加速引擎中完成最終的加速模型(下文稱為最終模型),表7 展現了最終模型的效果評估.經過模型剪枝和半精度加速的最終模型相較于原模型精度沒有下降,檢測速度提高了117.6%,而在參數總量上降低為原模型的39.5%.圖8 展示了最終模型的識別效果.

表7 原模型與最終加速模型對比

圖8 加速模型檢測效果

4 結語

在這項工作中,我們成功的對目標檢測中經典的深度學習神經網絡YOLOv3-tiny 進行了通道剪枝和半精度加速,在精度不變的情況下減少了改進后神經網絡的計算總量和參數總數.我們在計算能力較低的嵌入式設備上成功部署了剪枝后的模型.所提出的模型在嵌入式設備可以達到37 幀每秒的檢測速度,與現有模型相比,我們的模型除了需要在稀疏化訓練中增加一個η 超參數外,在速度和體積上均占有優勢,而精確率、召回率和平均精確率均值不變,實現了高精度下實時檢測的目的.

猜你喜歡
嵌入式檢測模型
一半模型
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
搭建基于Qt的嵌入式開發平臺
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
3D打印中的模型分割與打包
小波變換在PCB缺陷檢測中的應用
主站蜘蛛池模板: 青草娱乐极品免费视频| 亚洲AⅤ无码日韩AV无码网站| 中国一级特黄大片在线观看| 99精品欧美一区| 久久情精品国产品免费| 女同国产精品一区二区| 久久毛片免费基地| 日韩色图在线观看| 高潮爽到爆的喷水女主播视频 | 国产精品一区不卡| 老司国产精品视频91| 亚洲VA中文字幕| 欧美第一页在线| 99久久亚洲综合精品TS| 国产av色站网站| 高清码无在线看| 国产亚洲欧美日韩在线一区二区三区| 国产另类乱子伦精品免费女| 又黄又湿又爽的视频| 无码人妻热线精品视频| 国产成人精品视频一区二区电影 | 亚洲成a人在线观看| 成人av手机在线观看| 91福利在线观看视频| 亚洲熟女偷拍| 黄色网在线免费观看| 伊伊人成亚洲综合人网7777| 日韩无码白| 91精品国产自产在线老师啪l| 黑色丝袜高跟国产在线91| 噜噜噜久久| 久久男人资源站| 亚洲午夜18| 日韩国产亚洲一区二区在线观看| 久久久久国产一级毛片高清板| 久青草网站| 一级片一区| 五月婷婷欧美| 国产欧美性爱网| 精品国产www| 色综合狠狠操| 人人澡人人爽欧美一区| 国产成人亚洲精品色欲AV| 国产导航在线| 青青青国产免费线在| 欧美第一页在线| 波多野结衣一二三| 波多野结衣第一页| 亚洲日韩精品综合在线一区二区| 另类重口100页在线播放| 四虎永久在线| 老司国产精品视频91| 亚洲人成影视在线观看| 国产三级视频网站| 在线不卡免费视频| 欧美日韩国产综合视频在线观看| 色婷婷在线播放| 尤物成AV人片在线观看| 亚洲综合二区| 国产午夜看片| 在线精品视频成人网| 亚洲国产午夜精华无码福利| 日韩国产高清无码| 午夜国产精品视频| 天天躁夜夜躁狠狠躁躁88| 午夜影院a级片| 色网在线视频| 92午夜福利影院一区二区三区| 无码综合天天久久综合网| 日本国产精品一区久久久| 中文字幕av无码不卡免费 | 在线免费无码视频| 干中文字幕| 亚洲欧美另类中文字幕| 日本欧美视频在线观看| 亚洲天堂网站在线| 国产精品成人免费视频99| 人人澡人人爽欧美一区| 看国产一级毛片| 日韩福利在线观看| 亚洲日韩国产精品综合在线观看| 亚洲an第二区国产精品|