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

基于T-YOLO-LITE樹干檢測的模型部署方法

2021-02-25 07:48:26高宗斌崔永杰
計算機應用與軟件 2021年2期
關鍵詞:檢測模型

高宗斌 崔永杰 李 凱

(西北農林科技大學機械與電子工程學院 陜西 楊凌 712100)(農業農村部農業物聯網重點實驗室 陜西 楊凌 712100)

0 引 言

中國是獼猴桃栽培面積最大的國家,獼猴桃采摘機器人[1]可以有效改善勞動力短缺的現狀,而自動導航是實現其自動化作業的關鍵技術之一。目前國內外普遍采用GPS進行導航,但是在獼猴桃果園獨特的棚架式栽培模式下,由于棚架頂部用鋼絲固定枝蔓,受鋼絲和樹冠層遮擋,導致無法精確接收GPS信號[2],故選擇視覺方法檢測獼猴桃樹干實現移動設備的導航與定位。深度學習技術的迅猛發展使得目標檢測算法的性能[3]遠優于傳統圖像處理算法,所以利用深度學習目標檢測算法對獼猴桃樹干進行檢測有重要意義。

目前,許多學者利用傳統圖像處理方法嘗試對果園特定目標進行檢測或對圖像進行分割。新西蘭獼猴桃果園樹干與支撐物苔蘚附著嚴重,使得利用顏色特征將樹干與背景分離顯得尤為困難,Scarfe[4]利用樹干邊緣特征,采用Sobel算子邊緣檢測和模板匹配方法對樹干以及支撐物進行檢測,但是只在有利光照條件下取得較好的效果。柑橘果園環境下,文獻[5-6]利用顏色特征,分別采用BP神經網絡分類以及聚類的方法將天空、樹冠、土地進行圖像分割,并取得較高的分割精度,但是柑橘果園場景相對單一,此方法并不適用于背景復雜的獼猴桃果園。中國新疆矮化密植棗園環境復雜,樹干邊緣以及顏色特征均不顯著,彭順正等[7]選用B分量圖對其進行處理,提出“行閾值分割”方法分割樹干,并引入了趨勢線,但算法相對復雜,且準確率不高。由此可見,在果園較為復雜的環境中,常規的圖像處理算法未取得較好的效果。

近年來,借助卷積神經網絡進行圖像分類的精度超過了人工分類[8],將其作為特征提取層的目標檢測算法在檢測精度和速度上均取得了巨大的提升,如R-CNN系列[9-11]、SSD[12]、YOLO[13-15]在許多不同的領域取得了較好的表現[16-17]。獼猴桃果園樹干特征較為明顯,部分學者對樹干的檢測進行了嘗試: Zhang等[18]針對蘋果收獲問題,利用Kinect深度圖像與R-CNN目標檢測算法檢測蘋果樹干,但是因為環境的復雜性以及蘋果樹干本身的特征等因素導致檢測精度較低;Shah等[19]利用無人機搭載深度學習網絡對樹干進行檢測和定位,同時標定相應的GPS信息,進行數據庫的建立,但由于獼猴桃樹干的特征與大多數樹干的特征差異較大,無法利用現有的數據集進行檢測。

深度學習在數據集愈發龐大、網絡結構愈發復雜的發展趨勢下,精度不斷提高,但計算量也隨之增大,需要高性能GPU支持,在某些場合下無法投入實際應用。一些學者開始將輕量化模型部署在功耗較低的嵌入式設備[20-22]上,以減少計算量并提高實時性。本文對YOLO-LITE[23]模型進行優化,并利用Movidius與OpenCV-DNN兩種方式將其部署在樹莓派3B+與CPU設備中,為算法真正投入使用打下基礎,對實現獼猴桃采摘機器人視覺導航有重要意義。

1 YOLO目標檢測

1.1 圖像采集與數據集構建

2018年9月于陜西省眉縣獼猴桃試驗站進行圖像采集。利用大疆御 Mavic Air無人機拍攝視頻。視頻編碼格式為mp4、碼率為5 217 kbit/s、幀率為30 幀每秒、分辨率為1 280×720像素,將視頻進行分幀處理得到JPG格式圖像。

本文從分幀處理所得到的6 844幅圖像中隨機取5 128幅圖像作為訓練集,剩余1 716幅圖像作為測試集。將獼猴桃果園樹干和支撐鋼管歸為一類, 統一標注為“tree”,標注示例如圖1所示。

圖1 Labelimg標注示例

1.2 YOLO目標檢測原理

YOLO 算法的核心思想是將目標檢測作為回歸問題解決。將輸入圖像劃分成S×S個柵格(grid cell),若一個目標的中心點落在某個柵格里,那么這個柵格負責預測該目標。每個柵格需要預測邊界框(bounding box)的四個值:x,y,w,h。坐標(x,y)表示預測邊界框中心與柵格邊界的相對值;坐標(w,h)表示預測邊界框的長與寬相對于整幅圖像長與寬的比例。在預測邊界框坐標的同時,會為每個邊界框預測一個置信度(Confidence scores),置信度則反映了此柵格中是否含有目標以及邊界框與Ground truth的接近程度,其定義如下:

(1)

置信度反映柵格中是否存在目標,而不反映屬于哪一類目標,所以每個柵格還需要預測條件類別概率。本文只有一類目標,所以設置條件類別概率的數量為1。最終預測時每個柵格的條件類別概率與邊界框的置信度共同反映其預測精度,定義如下:

(2)

YOLO目標檢測算法經過三個版本的更替,其性能逐漸提高。YOLOV3在YOLOV2基礎上進行改進,在不降低檢測速度的情況下,盡可能提升檢測精度,但輕量級模型YOLOV3-TINY相比YOLOV2-TINY在檢測速度方面下降幅度較大,所以在某些對精度要求不高,但需要保證檢測速度的應用場合,選擇在YOLOV2-TINY基礎上進行優化的YOLO-LITE模型進行改進以及部署。

2 YOLO-LITE改進與模型評價

為與YOLO-LITE原模型進行區分,將改進后的YOLO-LITE統稱為T-YOLO-LITE(TREE-YOLO-LITE)。本文保留YOLO-LITE提出的特征提取層,依據所要檢測的類別數量,修改最后一個1×1卷積層。最終用于預測的向量深度為B×(5+C),B為每個柵格內預測邊界框的數量,5個anchor boxes分別預測5個邊界框,B為5;C為所要檢測的類別數量,C為1,最終的向量深度為5×(5+1)=30。所以表1中Conv7的Filters為30。

表1 T-YOLO-LITE特征提取層網絡結構

2.1 模型改進方法

本文通過保留BN(Batch Normalization)層、調整輸入圖像尺寸、修改anchor boxes、添加負樣本對YOLO-LITE進行優化,使之滿足獼猴桃樹干檢測的需求。

(1) 保留BN層。YOLO-LITE模型證明了在某些應用場合下,利用淺層網絡進行預測時,BN層是非必需的,而且剔除BN層可以減少計算量,提高實時性。但由于本研究中獼猴桃樹干目標較小,并引入大量背景信息,較難檢測。去除BN層后訓練出現梯度消失的問題,模型無法收斂,故本文保留了YOLO-LITE剔除的BN層。

(2) 調整輸入圖像尺寸。YOLO-LITE模型為了提高實時性,將輸入圖像大小調整為224×224像素,但是輸入圖像過小導致檢測精度降低,很難滿足實際應用中的需求。本文將輸入圖像調整至448×448像素,保證模型部署后滿足實際需求。

(3) 修改anchor boxes。設置anchor boxes的目的是讓邊界框與Ground truth的IOU更大,以便提取目標中更多有用信息,而非背景,因此需要選擇合適的anchor boxes使模型更加精準。采用k-means聚類方法對訓練集Ground truth做聚類分析,選取Ground truth的box與聚類中心box之間的IOU作為距離指標:

d(box,centroid)=1-IOU(box,centroid)

(3)

(4) 添加負樣本。本研究對誤檢測率要求較為嚴格,預測模型不能出現將行間雜草、地面以及樹冠等檢測為樹干的情況,因此本文通過隨機裁剪和人工分類的方式在訓練樣本中添加了5 800幅不同尺度的負樣本,避免誤檢測。幾類負樣本示例如圖2所示。

圖2 負樣本示例

2.2 模型精度評價指標

為了驗證獼猴桃樹干檢測精度,引入準確率P(precision)、召回率R(recall)、AP(average precision)、F1值對訓練后的模型進行評價。評價指標計算公式如下:

P=TP/(TP+FP)

(4)

R=TP/(TP+FN)

(5)

F1=2PR/(P+R)

(6)

(7)

式中:TP(True Positive)為預測成功的數量,即正確檢測到的樹干數量;FP(False Positive)為背景預測為樹干的數量,即誤檢為樹干的數量;FN(False Negative)為將樹干預測為背景的數量,即未檢測的樹干數量。

檢測時,TP為邊界框與Ground truth IOU大于0.5的目標數量,FP為邊界框與Ground truth IOU小于等于0.5的目標數量;FN為沒有檢測到的Ground truth的數量。

3 模型部署

本文選擇Ubuntu 16.04 darknet框架進行模型訓練。硬件配置: 處理器Intel Xeon E5-1650 v4, 主頻3.6 GHz,內存32 GB,顯卡Nvidia Titan XP,顯示存儲12 GB。將標注完畢的數據集送入改進后的T-YOLO-LITE網絡結構進行訓練,保存網絡結構T-YOLO-LITE.cfg以及權重T-YOLO-LITE.weights文件。

3.1 Movidius

Movidius是一款低功耗深度學習推理工具和獨立的神經網絡加速器。功耗1 W,浮點性能為100 GFLOPs,為廣泛的邊緣主機或嵌入式設備提供專用的深度神經網絡推理功能。Movidius通過USB接口連接至PC或樹莓派等設備,不能用于訓練模型,但是可以部署訓練完畢的神經網絡模型,通過Movidius進行加速計算與推理。本文將Movidius通過USB連接至樹莓派3B+,如圖3所示。

圖3 樹莓派3B+與Movidius

Movidius支持Caffe以及Tensorflow模型的轉換與推理,本文利用darknet框架訓練模型,所以要將訓練完畢的模型轉換為Caffe或Tensorflow模型進行推理。利用:YoloV2NCS(https://github.com/duangenquan/YoloV2NCS)將T-YOLO-LITE.cfg轉換為T-YOLO-LITE.prototxt,保存為Caffe格式的網絡結構;將T-YOLO-LITE.weights轉換為T-YOLO-LITE.caffemodel,保存為Caffe格式的訓練權重。

Movidius運行Caffe模型前,需要借助NCSDK中的mvNCCompile工具,將Caffe模型T-YOLO-LITE.prototxt與T-YOLO-LITE.caffemodel轉化為Movidius推理所需要的graph模型。最后利用在樹莓派編譯完畢的NCSDK中inference模塊調用轉換后的graph模型,完成T-YOLO-LITE在樹莓派設備中的部署。利用graph推斷得到目標位置(x,y,w,h)、類別、置信度。模型轉換流程如圖4所示。

相較于傳統文學,網絡文學是文學形式的一種全新載體,盛大文學鼎盛時期曾壟斷了整個網絡文學市場。自“橄欖樹”原創文學網站打響第一槍后,隨后興起的“榕樹下”網站,讓無數網絡文學愛好者追捧。而網絡文學的贏利模式可謂一波三折,并不如網站興起那般順利,“榕樹下”之后有大量的文學網站產生,他們嘗試各種贏利路線,比如付費閱讀、實體出版等,都一一“撲街”,直到起點中文網站另辟蹊徑,最先開啟微支付商業模式,成功讓讀者買單。

圖4 模型轉換流程

Darknet模型訓練依賴高性能GPU,功耗較大。經過兩次模型轉換,將其部署在樹莓派3B+與Movidius后,只需要5 V的電源為樹莓派供電即可,滿足實際應用中低功耗的需求。

3.2 OpenCV-DNN

OpenCV是機器視覺領域運用較為廣泛的視覺庫,隨著深度學習迅速發展,OpenCV 3.1版本contrib中加入了深度神經網絡DNN模塊,OpenCV 3.3版本將DNN模塊加入正式代碼的主倉庫。DNN模塊包含深度神經網絡Convolution、FullyConnected、MaxPooling、ReLU、BatchNormalization等許多基本構成元素;包含Alexnet、GoogLeNet、VGG-16等經典卷積神經網絡以及SSD、YOLO等經典目標檢測算法。DNN模塊只支持模型推理與加速,不支持模型訓練。

目前深度學習模型大多依賴Caffe、Tensorflow、Pytorch等框架,并需要CUDA、CUDNN等用于調用GPU加速訓練。在某些實際應用中無須訓練模型,硬件性能只需要保證神經網絡的前向傳播過程,進行推理即可。OpenCV-DNN模塊不依賴第三方庫,也無須考慮深度學習框架以及算法的配置和編譯,即不需要重新編譯Darknet,依靠DNN模塊調用訓練好的模型即可進行推理。由于不需要訓練以及反向傳播過程,針對此特點進行優化,避免不必要的計算,DNN模塊中YOLO模型在CPU上的推理速度要明顯優于原版Darknet。

OpenCV-DNN調用Darknet模型包括以下幾步:

1) Darknet導出模型。模型經訓練后,保存T-YOLO-LITE.cfg和T-YOLO-LITE.weights文件。

2) 調整初始化參數。調整網絡的輸入圖像大小,設置為448像素×448像素。調整置信度閾值大小為0.5。調整非極大值抑制閾值為0.01。將非極大值閾值調整至一個較低的水平,用于判斷網絡的輸出結果的誤檢測率,即讓盡可能多的boxes輸出,從而判斷誤檢測率是否滿足需求。

3) 讀取網絡結構。利用函數cv.dnn.readNetFromDarknet(),讀取兩個傳入參數:T-YOLO-LITE.cfg和T-YOLO-LITE.weights,加載訓練完畢的網絡。

4) 讀取輸入視頻或圖像。每幀圖像通過bolbFromImage()函數將其處理為神經網絡的輸入類型bolb,將圖像像素歸一化為0至1之間。

5) 網絡輸出。網絡輸出的每一個邊界框都包含長度為5的向量,分別為x、y、w、h、置信度。利用坐標將邊界框逐幀畫在輸入圖像中。

本文在CPU:i5-7300 HQ,內存8 GB的PC上配置OpenCV 3.4.1進行T-YOLO-LITE的推理加速計算。

4 實 驗

T-YOLO-LITE網絡訓練超參數設定:batch=64,subdivisions=8,momentum=0.9,decay=0.000 5,angle=0,saturation=1.5,exposure=1.5,hue=0.1,learning_rate=0.001,burn_in=1 000,max_batches=500 000,policy=steps,steps=400 000,scales=0.1。采用分步調整學習率的策略,初始學習率為0.001,當迭代次數超過400 000次時,學習率降低10倍,調整為0.000 1。

損失函數如圖5所示。共迭代500 000次,平均loss穩定在0.13附近,模型收斂較好。

圖5 損失函數loss可視化

4.1 模型改進實驗

利用第2.1節中提出的4個改進方法對YOLO-LITE進行優化,分別對應表2中改進(1)至改進(4),并針對每一個改進方法在測試集對檢測精度進行測試。本文通過AP以及F1值兩個評價標準對樹干的檢測精度進行評價。通過FPS對檢測速度進行評價,在Nvidia Titan XP中進行計算。

表2 YOLO-LITE改進實驗結果

注:表中改進(1)至改進(4)對應2.1節中四個改進方法;“√”表示采用此改進方法。

YOLO-LITE原模型為了提高實時性,剔除了BN層,但在檢測獼猴桃樹干時,模型不收斂,無法檢測到目標。如表2所示:YOLO-LITE原模型AP為0%,通過改進(1)保留BN層后,AP提升至15.94%,開始檢測到目標;通過改進(2)增大輸入圖像尺寸,AP提升至42.65%,但經過兩次改進導致檢測速度降低,FPS由240降低至200;通過改進(3)修改anchor boxes以及改進(4)添加負樣本,使AP進一步提高至59.75%。F1值與AP所反映的趨勢一致。通過4個改進方法得到最終的T-YOLO-LITE模型。

圖6為4個改進方法對應的檢測結果,改進(1)和改進(2)中白色橢圓標記的目標是明顯的誤檢測結果,精度無法滿足需求;改進(3)和改進(4)精度差距較小,檢測結果無明顯差異。

圖6 不同改進方法檢測結果

4.2 模型性能對比

將T-YOLO-LITE模型與YOLOV2以及YOLOV2-TINY模型進行比較,結果如表3所示。特征提取層最深的YOLOV2模型取得了最高的檢測精度,其AP為69.54%;YOLOV2-TINY與T-YOLO-LITE模型在檢測精度上基本持平,AP分別為59.99%與59.75%。檢測速度上YOLOV2-TINY和T-YOLO-LITE的FPS分別為YOLOV2的3.25倍與5倍,由此可知輕量級模型在檢測速度方面的優勢明顯強于深層模型。在模型大小方面,深層結構的YOLOV2最大,為192 MB,淺層結構YOLOV2-TINY為42 MB,而T-YOLO-LITE模型大小僅為2 MB,遠小于上述兩種模型,但是T-YOLO-LITE卻取得了與YOLOV2-TINY幾乎一致的精度,并且在檢測速度方面明顯優于上述兩種模型。

表3 三種模型性能對比

PR曲線下方面積為該目標檢測模型的AP,三種模型的PR曲線如圖7所示??梢钥闯?,YOLOV2的曲線完全高于YOLOV2-TINY與T-YOLO-LITE,其面積最大,精度最高。YOLOV2-TINY與T-YOLO-LITE曲線相互交錯,面積基本一致,精度持平。 雖然YOLOV2在精度上有著明顯的優勢,但從如圖8所示的檢測結果中可以看出:YOLOV2-TINY與T-YOLO-LITE檢測到的目標均在地壟附近,未出現將樹冠、地面等檢測為樹干的情況,其檢測精度已經可以滿足獼猴桃樹干檢測的需求。YOLOV2-TINY與T-YOLO-LITE兩種輕量級模型檢測到的目標與Ground truth重疊部分較少,IOU較低,從而被判定為檢測錯誤。大部分目標檢測算法評價標準中,均將IOU小于0.5的目標判定為誤檢測,而本研究中誤檢測定義為將樹冠、地面等檢測為樹干,但為與標準一致,依然保留此評價方法。

圖7 三種模型PR曲線

圖8 三種模型檢測結果

從圖8(b)與圖8(c)可以看出,在獼猴桃樹干檢測任務當中,YOLOV2-TINY與T-YOLO-LITE出現的IOU較低的目標位置依然處于地壟周圍或樹干之間,不影響擬合導航路徑時的精度。雖然T-YOLO-LITE模型在AP、F1值等評價標準中處于較低的水平,但是完全符合實際應用需求,并且在檢測速度以及模型大小兩方面擁有顯著優勢。

4.3 模型部署后檢測速度驗證

利用第3節中的兩種方法將模型分別部署在樹莓派3B+與i5-7300HQ上。通過表4所示的三種模型部署后的FPS對比可知:不利用高性能GPU,三種模型的檢測速度都出現很大程度的下降,其中深層模型YOLOV2表現最不理想。在無法利用高性能GPU的場合,深層模型無法真正落地應用。相比之下,經過優化的T-YOLO-LITE在部署后的檢測速度遠遠優于其他兩種模型,T-YOLO-LITE在OpenCV-DNN與Movidius中的推理FPS均達到了YOLOV2-TINY的2倍。

表4 三種模型部署后FPS對比

圖9為模型部署后的檢測結果, OpenCV-DNN的檢測結果要優于Movidius,Movidius經過兩次模型轉換后,邊界框與Ground truth的接近程度下降。由于Darknet在Maxpooling時默認進行padding操作,轉換后Caffe模型最終輸出的特征圖大小減少1,造成精度損失。后續研究中,將Darknet模型轉換為Caffe模型后,重新將模型進行訓練,提升精度,最后再轉換為graph進行推理。

圖9 模型部署后檢測結果

5 結 語

本文通過改進優化輕量級網絡YOLO-LITE,在檢測精度和速度上做平衡,使其在精度滿足獼猴桃樹干的檢測要求下,盡量提升檢測速度。最終通過Movidius與OpenCV-DNN兩種部署方式,將訓練完畢的T-YOLO-LITE模型分別部署在樹莓派3B+與CPU中,達到了每秒2幀和每秒6幀的檢測速度。本文為深度學習真正投入應用與后續研究中獼猴桃采摘機器人視覺路徑的擬合打下了基礎。

猜你喜歡
檢測模型
一半模型
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
“幾何圖形”檢測題
“角”檢測題
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
3D打印中的模型分割與打包
小波變換在PCB缺陷檢測中的應用
主站蜘蛛池模板: 国产人成网线在线播放va| 中文字幕中文字字幕码一二区| 无码内射在线| 国产成人1024精品| 免费看一级毛片波多结衣| 久久久成年黄色视频| 伊人大杳蕉中文无码| 国产在线观看高清不卡| 色AV色 综合网站| 久久国产精品麻豆系列| 亚洲欧美成aⅴ人在线观看| 国产成人精品亚洲77美色| 亚洲黄色网站视频| 日韩大片免费观看视频播放| 99这里只有精品在线| 国产网站一区二区三区| 午夜人性色福利无码视频在线观看| 欧美A级V片在线观看| 国产手机在线观看| 91精品啪在线观看国产60岁| 国产超碰在线观看| a毛片免费看| 中文字幕亚洲精品2页| 很黄的网站在线观看| 亚洲综合色吧| 国产精品视频系列专区| 国产精品林美惠子在线观看| 精品伊人久久大香线蕉网站| 亚洲av无码成人专区| 日韩精品专区免费无码aⅴ| 欧美激情,国产精品| 九九热免费在线视频| 99热这里只有免费国产精品| 欧美日本在线播放| 欧美日韩免费观看| 黄片一区二区三区| 国产欧美日韩18| 国产香蕉一区二区在线网站| 又粗又硬又大又爽免费视频播放| 999精品免费视频| 四虎成人在线视频| 色综合成人| 久久国产黑丝袜视频| 国产性爱网站| 又爽又大又光又色的午夜视频| 欧美成人看片一区二区三区| 久久这里只有精品国产99| 成人精品午夜福利在线播放| 国产精品永久免费嫩草研究院| 国产91久久久久久| 国产精品自在拍首页视频8 | 欧美yw精品日本国产精品| 国产在线精彩视频二区| 久久精品人人做人人爽97| 国产精品亚洲а∨天堂免下载| 国产毛片片精品天天看视频| 99偷拍视频精品一区二区| 国产不卡国语在线| 色天天综合久久久久综合片| 国产精品入口麻豆| 久久精品中文字幕少妇| 男女猛烈无遮挡午夜视频| 日本91在线| 欧美综合成人| 毛片网站观看| 人妻中文字幕无码久久一区| 久久人人97超碰人人澡爱香蕉 | 欧美亚洲激情| 中文字幕一区二区人妻电影| 国产特级毛片aaaaaaa高清| 一级做a爰片久久免费| 午夜欧美理论2019理论| 亚洲成人高清在线观看| 91色爱欧美精品www| 亚洲自偷自拍另类小说| 四虎国产永久在线观看| 亚洲va在线∨a天堂va欧美va| 国产综合亚洲欧洲区精品无码| 亚洲人成影院在线观看| 国产成人精品18| 国产91高跟丝袜| 亚洲国产成熟视频在线多多|