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

基于RetinaNet的水下機器人目標檢測

2022-10-17 13:53:30魏慶宇張境鋒郭碧宇
計算機工程與設計 2022年10期
關鍵詞:檢測

陳 偉,魏慶宇,張境鋒,郭碧宇

(江蘇科技大學 電子信息學院,江蘇 鎮江 212000)

0 引 言

水下環境中的光學成像比大氣環境中的光學成像更復雜,圖像存在明顯的質量退化問題,基于機器視覺的傳統目標檢測方法精度與準確率不高[1]。隨著數據量的增加與計算機計算能力的增強,傳統目標檢測方法已被人工智能所取代[2]。近年來,許多基于卷積神經網絡的方法被用于水下目標檢測的研究。基于SSD[3]、Faster R-CNN[4-6]和YOLO[7-9]的水下目標檢測方法在準確性上已經遠超傳統目標檢測算法,即使水下目標物圖像質量明顯退化,依然能夠準確識別,但均沒有應用到水下機器人上進行目標檢測作業。水下機器人屬于嵌入式機器人,計算力不足且存儲有限,因此需要一種算力需求小且保證速度與精度的目標檢測算法。

RetinaNet是一種單階段目標檢測算法[10],在保證單級目標高檢測速度的基礎上,達到甚至超過了兩級目標檢測精度,對于中小型目標具有較好效果。因此,本文采用RetinaNet作為水下機器人目標檢測框架,為進一步提高水下機器人目標檢測速度,降低算法運算所需硬件資源,需對RetinaNet進行改進。首先采用DenseNet[11]替代ResNet構建骨干網絡,減輕網絡重量,其次使用2×2大小的卷積核進行兩次卷積代替原始的單次卷積操作,增加感受野并減少參數[12];最后通過實驗驗證該算法的運行速度與檢測精度。

1 基于RetinaNet的目標檢測方法研究

1.1 RetinaNet

RetinaNet是一種單階段目標檢測算法,解決了單階段目標檢測中速度快但精度不高的問題[13]。其網絡結構如圖1所示,是一個簡單的端到端網絡,相對于其它目標檢測網絡結構較為簡單,主要由ResNet、FPN(feature pyramid networks)和兩個FCN(fully convolutional networks)子網絡組成。

ResNet負責提取特征,一個FCN執行水下目標的分類(class students),另一個FCN執行水下目標包圍盒的回歸(box students)。FCN由卷積層組成,不包含全連接層,使用上采樣和去卷積將通過卷積運算獲得的特征圖放大到預測期間輸入圖像的大小。因此,可以實現原始圖像的逐像素分類預測,比傳統方法的全圖像預測更有效,最后使用S(Softmax)型函數進行激活。回歸子網與分類子網平行,并且在FPN的每一層都添加了一個小的完整卷積網絡,以進行邊界回歸。

RetinaNet應用在水下機器人上對水下目標具有較好的檢測效果的另一個重要原因是它使用了一個新的損失函數(FL)。FL將原始損失函數乘以一個因子,削弱易檢測目標對訓練模型的貢獻,從而解決類別不平衡問題。二分類標準的交叉熵損失函數如下

(1)

其中,y∈{±1} 為類別真實標簽,p∈[0,1] 是模型預測y=1的概率。如果定義如下的pt

(2)

典型交叉熵損失函數可簡化如下

CE(p,y)=CE(pt)=lnpt

(3)

FL乘以對典型交叉熵損失的調整因子,其公式如式(3)所示

FL(pt)=αt(1-pt)γlnpt

(4)

其中,γ為焦點損失。從中可以看出,更易檢測的目標對總損失的貢獻較小,而不可區分的樣本對損失的貢獻相對較大。對于不同的類別,參數α可以使損失函數更加平衡。這樣的損失函數將引導模型嘗試區分難以區分的水下目標。

1.2 改進的RetinaNet目標檢測網絡

由于水下機器人計算力不足且存儲有限,直接采用RetinaNet作為目標檢測網絡可能會造成機器人運行卡頓。因此,本文使用新的骨干神經網絡DenseNet代替默認的殘差網絡,將FPN構造為改進的RetinaNet特征提取網絡來提高算法的識別精度和速度。同時使用2×2大小的卷積核進行兩次卷積代替原始的單次卷積,減少網絡參數進一步提高算法的檢測速度,并同時增加網絡深度,提高網絡非線性力。

1.2.1 基于DenseNet對FPN的改進

DenseNet提出了一個更為激進的密集連接機制:即互相連接所有的層,具體來說就是每個層都接受其前面所有層作為其額外輸入[14]。相比ResNet,DenseNet網絡更窄,參數更少。圖2為ResNet網絡連接機制,作為對比,圖3為DenseNet密集連接機制。ResNet是每個層與前面的某層(一般是2~3層)短路連接在一起,連接方式是通過元素級相加。而在DenseNet中,每個層都會與前面所有層在通道維度上連接在一起(這里各個層的特征圖大小相同),并作為下一層的輸入。在傳統的卷積神經網絡中,每一層都與相鄰層直接相連,因此整個網絡只有l個連接,而在DenseNet中,每一層都與上一層直接相連,因此存在l(l+1)/2個連接。

傳統網絡在l層的輸出為

xl=Hl(xl-1)

(5)

ResNet在l層的輸出為

xl=Hl(xl-1)+xl-1

(6)

DenseNet在l層的輸出為

xl=Hl([x0,x1,…,xl-1])

(7)

式中:xl為第l層的輸出,Hl為第l層的非線性變化,其中可能包括一系列的激活、池化及卷積等操作。

由于密集連接方式,改進的FPN提升了梯度的反向傳播,使網絡更加容易訓練,且每層輸出都可以參與最后計算,實現隱式深度監督。改進后的FPN建立在兩個方向結構上,在自下而上的路徑上,從每個密集塊輸出特征圖中獲取特征圖。在自頂向下的路徑上,特征金字塔網絡通過因子為2的向上采樣和橫向連接來構建。之后去掉全連接層,連接兩個FCN作為分類器和回歸器。一些較早層提取出的特征仍可能被較深層直接使用,過渡層也會使用這些特征,因此改進后的RetinaNet在原始數據集和增廣數據集上的性能都會比采用殘差網絡的原始結構有所提高。

本文采用DenseNet連接機制代替原有ResNet連接機制,為保證維度上的連接,每個層的特征圖大小需保持一致,且卷積之后輸出通道數相同。假設輸入層的特征圖通道數記為k0, 則l層的輸入通道數為k0+k(l-1)。 那么隨著層數的增加,網絡的輸入量將會激增,因此學習率k可設置為一個較小值, 同時把網絡的每一層設計得特別“窄”。雖然后期網絡有著較大的輸入量,但由于特征重用的原因,每層僅有k個特征是獨有的。考慮到后面層輸入量過大的問題,在DenseNet連接機制中增加1×1卷積以降低特征數量。通過DenseNet的連接機制,每一層都包含之前所有層的輸出信息,因此其僅需要較少的特征圖,并且可采用較小學習率k,因此每個層所獨有的特征圖較小,整體參數更小且計算效率更高。

1.2.2 基于卷積層堆疊對RetinaNet的改進

卷積層堆疊策略,是將多個連續的卷積層構成卷積層組替換原始單次卷積的操作[15]。如圖4所示,使用2×2大小的卷積核進行兩層卷積堆疊替代原始網絡的一次卷積操作,可視范圍達到16,但參數僅有8個,使用3×3大小的卷積核進行卷積,可視范圍為9,參數為9個。與單個卷積層相比,卷積層堆疊提高了可視范圍,增強了網絡學習能力和特征表達能力;與使用較大卷積核的卷積層相比,采用具有小卷積核的卷積層串聯的方式能夠減少網絡參數,在每層卷積之后進行ReLU非線性操作可提升網絡特征學習能力。

在DensNet中,將原有的Dense block設計中3×3大小的卷積核替換為兩個2×2的小卷積核。并且使用1×1卷積核,保證輸出數據維度不變,增加系統非線性能力且不增加計算量。采用卷積層堆疊改進后,具有121層和169層的DenseNet的結構見表1,其增長率為32。

表1 改進的DenseNet結構

由于2×2卷積核且步長為2的卷積操作無法處理尺寸為奇數大小的圖片,在訓練之初,需要將尺寸為S×J(S為奇數,J為偶數)的大小圖片擴展成 (S+1)×J大小。在配置中,使用1×1卷積核進行輸入通道的線性變換。使用兩種方法進行訓練尺度的確定,第一種是固定S, 第二種采用多尺度的方法。首先使用S=256進行預先訓練,接著使用其權重加快S=384的網絡訓練。多尺度訓練時,其中每個訓練圖像通過從范圍 [Smax,Smin] 隨機采樣S來單獨重新縮放。因為圖像中的物體可以有不同的大小,所以在訓練中考慮到這一點是有益的。這也可以看作是通過縮放抖動來增加訓練集模型。出于速度原因,通過微調具有相同配置的單比例模型的所有層來訓練多比例模型。

改進后的RetinaNet使用卷積層堆疊組合成的“卷積組”代替原來的單次卷積操作,因此網絡更深,模型判別力增強。小卷積層與大的相比,擁有更多非線性變換,使得CNN對特征的學習能力更強。相比之前,整個網絡的參數明顯降低,在一定程度上可以提高水下目標檢測的精度與速度。在訓練過程中,淺層網絡采用隨機數初始化,然后將權重值移植后面較為復雜的模型,從而加快訓練速度。

1.3 標記框重設

根據每個特征層次的不同大小和步長生成候選框,并在每個候選點生成K個不同大小和步長的候選框。候選框的大小和步長與原算法相似,但候選框的大小和步長不是基于先驗的,而是通過對數據集中標記盒的大小進行聚類得到的。根據候選框生成機制,可以在算法開始時得到與目標大小相匹配的候選框,提高算法的識別精度。原RetinaNet候選框生成相當于在原始圖像中以 {8,16,32,64,128} 的步長滑動 {32,64,128,256,512} 像素大小的窗口,并在每個候選框生成3個大小比例和3個比例大小的候選框,每個候選點生成9個候選框。由于算法的速度與輸入圖像的分辨率直接相關,因此經常需要調整原始圖像的分辨率。假設調整后的分辨率大小為1200×800像素,則在輸入圖像中將生成大約7000個錨框。

因此,本文利用K-means++算法重新設計候選框的數量和大小,使得改進算法的候選框得到最高的平均IoU值,與水下目標的實際大小相匹配。

使用標記框之間的相交比率IoU作為距離函數的參數

dij=1-IoUij

(8)

式中:IoUij是標記框i和標記框j之間的IoU值。在聚類中心初始化位置的選擇中,隨機選擇一個樣本點作為第一個聚類中心,然后選擇剩余樣本點中離第一個聚類中心最遠的點作為第二個聚類中心,離前兩個聚類中心最遠的樣本點作為第三個聚類中心。在收斂準則上,定義了一個新的損失函數LossN,它是將所有樣本點與相應聚類中心之間的距離相加得到的,公式表示為

(9)

當聚類中心位置更新前后的損失差小于設定的閾值時,算法收斂。在迭代次數的選擇上,考慮到聚類中心的初始位置是預選的,算法相對容易收斂,需將迭代次數設置為足夠大。

原始網絡中,K值為9。K-means++算法處理后的損耗曲線和平均IoU曲線如圖5所示。迭代3次時平均IoU值達到最大,損失值最小,且滿足設定的30次迭代收斂條件。但根據期望的聚類數來看,并不是數據集中的所有數據都是嚴格的球形分布。當一個聚類中大部分數據相對集中,少量數據相對較遠時,如果聚類中心相對靠近稠密樣本,迭代會使聚類中心向稀疏數據靠攏。由于稀疏數據的樣本量相對較小,迭代對聚類中心偏移的影響會越來越小,最終收斂,但聚類中心陷入局部最優解。增加K值可以在一定程度上解決局部最優解的問題,但是增加K值,也就是增加每個錨點獲得的錨幀數量,會導致RetaiNet的運行速度變慢。所以在增加K值和運行速度上要做到平衡。在本文中,K在1~15之間進行測試。

2 實驗和結果分析

2.1 實驗數據集

本文以海參為典型研究對象,建立海參數據集。共收集水下攝像頭拍攝海參高分辨率圖像1329張和互聯網上海參圖像1518張。同時根據PascalVOC標簽格式,使用labelImge在海參圖像中標注目標,生成XML文件。XML文件包括標記框坐標和訓練所需其它信息。其中2000幅圖像用作訓練集,847幅圖像用作測試集。

2.2 訓練環境和參數設置

本研究中使用的硬件和軟件見表2。為訓練RetinaNet原始算法及改進算法,進行以下初始化設置:

(1)使用DenseNet169作為骨干網;

(2)使用MSCOCO訓練集參數對ResNet101骨干網進行初始化,根據激活函數值σ=0.01和高斯分布初始化DenseNet骨干網所有權重;

(3)共訓練40個歷元,將批處理設置為一張圖像,每個歷元重復5242次;

(4)重量衰減設置為0.0001,動量設置為0.9;

(5)焦點損失γ設置為2,α設置為0.25。

表2 訓練環境

2.3 改進的RetinaNet模型驗證

為了驗證DenseNet與卷積層堆疊的優越性,本文分別基于ResNet101和卷積層堆疊作用下DenseNet121訓練測試了改進的RetinaNet。兩種算法的損耗曲線如圖6所示。

從圖6可以看出,由于在訓練開始時沒有轉移學習,改進的RetinaNet損失值高于原始網絡損失值。隨著訓練進行,原始網絡對訓練集的收斂速度更快,但是在36個歷元之后,改進的RetinaNet損失值低于原始網絡損失值,這表明改進的RetinaNet可以更好地擬合36個歷元的訓練集數據。兩種算法在測試集上的性能,見表3。

表3 改進前后RetinaNet性能對比

從表3可以看出,盡管改進的RetinaNet網絡參數僅具有16.8 M,但AP值達到0.8958,在海參檢測性能上提高了8.24%。DenseNet每一層都與前面所有層相連接,且每一層輸入都為前面所有層輸出線性連接。改進的網絡結構采用了DenseNet這種較為復雜的結構,增加了計算成本,訓練速度較慢。但在檢測速度上,改進的RetinaNet網絡比原始網絡有所提高。

實驗結果表明,改進的RetinaNet網絡相比較原始網絡具有較高的準確性。通過改進的RetinaNet對海參進行檢測結果如圖7所示,即使在水質渾濁且背景相似的情況下,依然能夠準確對海參進行識別與框選。

2.4 不同算法的實驗比較

為驗證改進的RetinaNet性能,訓練并測試Faster R-CNN 與YOLOv3作為實驗對比。

Faster R-CNN和YOLOv3的損耗曲線如圖8所示。可以看出,RetinaNet的損耗曲線比較平滑,YOLOv3的損耗曲線略有振蕩,而Faster R-CNN相對較大。這種差異很大程度上是由于RetinaNet每次迭代使用一幅圖像,每幅圖像對損失函數的貢獻值有限,所以曲線相對平滑。每一次迭代分別使用64幅和256幅圖像,因此每次迭代的損失波動較大值,這也可以解釋為什么YOLOv3和Faster R-CNN越來越振蕩的原因。同時,從訓練成本來看,Faster R-CNN 需要10 000次左右的迭代才能得到相對穩定的損失值。YOLOv3訓練到一個相對穩定的損失值需要6000次左右的迭代。改進RetinaNet在近40個迭代周期趨于穩定,從網絡訓練難度來說,Faster R-CNN>YOLOv3>RetinaNet。

Faster R-CNN、YOLOv3和改進的RetinaNet在測試集上的實驗結果見表4。改進的RetinaNet正確率比Faster R-CNN略高8.65個百分點,明顯高于YOLOv3網絡30.93個百分點。算法參數方面,改進的RetinaNet參數僅有18.1 M,遠小于Fast RCNN 和YOLOv3。在速度上,由于YOLOv3算法結構和少量錨盒提取,速度明顯快于Faster R-CNN,但仍落后于改進的RetinaNet。

表4 不同算法的性能

為了驗證不同算法對不同識別難度目標的識別能力,根據主觀判斷將測試集中的樣本分為簡單樣本、一般樣本和困難樣本3種類型。簡單樣本包括高水質下單個海參,共300張圖像;一般樣本包括一般水質下多個海參,共150幅圖像;困難樣本包渾濁水質下多個被遮擋海參,共50幅圖像。3種算法的識別結果見表5。

表5 不同難度樣本的識別性能

從表5可以看出,雖然改進的RetinaNet在簡單樣本中的檢測效果與Faster R-CNN基本相同,AP值分別為0.8631和0.8823,但在一般樣本和困難樣本中表現出較好的檢測精度,分別高出7.84和36.21個百分點。同時,改進的RetinaNet比YOLOv3的準確性方面更具綜合優勢。通過實驗驗證和結果分析,可以得出結論:改進的RetinaNet是一種適用于水下目標識別的目標檢測算法。

2.5 不同網絡深度的實驗比較

分別以改進的DenseNet121和DenseNet169為基礎進行實驗,驗證網絡深度對改進的RetinaNet性能的影響,實驗結果見表6。

表6 不同網絡深度下改進的RetinaNet性能

從表6中可以看出,采用改進的DenseNet169作為主干網絡在海參檢測的性能上略有提高,但參數數量相比DenseNet121高了45.6%。由于網絡的加深,檢測速度降低到27 fps,整體檢測速度降低了13%。因此,本文所研制的水下機器人采用改進的DenseNet121作為主干網絡代替原始的殘差網絡。

2.6 樣機實驗與結果分析

本文使用的實驗平臺如圖9所示,主要由Vectored ROV型水下機器人和目標檢測網絡實驗平臺兩部分組成。機器人本身配備一個三自由度電動機械手和一個網絡攝像機,并配備4個電動推進器,內置環境感知系統,如慣性導航、水深測量和熱導率深度(CTD)。機體選用吸水率小于1%(24 h)的固體復合泡沫,可承受2000英尺至36 000英尺的水下環境。Vectored ROV型機器人進行水下圖像的采集,目標檢測網絡實驗平臺讀取圖像信息,進行海參目標檢測,將處理好的結果實時顯示在屏幕上,同時記錄下目標框的平面坐標為后期的海參自動捕撈提供數據支持。實驗場地為大型水池,滿足實驗所需環境布置要求。

實驗結果如圖10所示,改進的RentinaNet可以在水下機器人上穩定快速運行。在實驗水池環境下,單個及多個目標均可以準確檢測,即使在海參被遮擋或顯示不全的情況下,依舊能夠準確判別與框選。

同時,水下機器人自動捕撈系統采用本文提出的改進的水下目標檢測方法替代原有基于機器視覺目標檢測方法,進行抓取實驗。實驗結果如圖11~圖12所示。

從圖中可以看出,采用基于機器視覺方法做海參目標檢測,受光線和角度影響,會造成目標丟失,導致機器人放棄原有目標進行其它目標的檢測與抓取,出現捕撈不完全的問題。采用本文提出的改進的目標檢測方法的自動捕撈系統,海參相互重疊的情況下,依舊可以識別出所有海參,并進行準確的自主捕撈作業。

為準確驗證改進的目標檢測系統對水下機器人自動捕撈系統的提升,使用同一機器人,在實驗池、池塘及海灘中,每次放置多只海參,進行多次海參抓取實驗,實驗結果見表7。

從表7中可以看出,改進的RetinaNet可以在水下機器人上穩定快速運行,無論哪種環境下,水下機器人的自動捕撈率均有明顯提高,自動捕獲海參的時間顯著減少。其中,目標檢測精度提高了23%,運行速度提高了17%。實驗結果表明,本文提出的目標檢測方法可應用在水下機器人上,并提高水下機器人自動捕獲效率。

3 結束語

水下機器人自動捕撈系統廣泛應用于水產養殖和海洋資源探索作業,而水下環境中的光學成像較為復雜,圖像存在明顯的質量退化問題,基于卷積神經網絡的目標檢測方法難以應用在計算力有限的水下機器人上。針對上述問題,本文設計了一種基于改進的RetinaNet水下機器人目標檢測方法,使用新的骨干神經網絡DenseNet代替默認的殘差網絡,將FPN構造為改進的RetinaNet特征提取網絡來提高算法的識別精度和速度。同時使用2×2大小的卷積核進行兩次卷積代替原始的單次卷積,在擴大感受野的同時減少網絡參數,并同時增加網絡深度,提升網絡的特征學習能力。本文以海參為典型研究對象。實驗結果表明,所設計的目標檢測網絡能夠在水下機器人上正常穩定運行,顯著提高了水下機器人檢測水下目標的速度和精度。在多種環境下,應用于水下機器人自動打撈任務,目標檢測精度提高約23%左右,作業速度提高約17%。該方法可應用于水下機器人,有效解決了對水下目標檢測環境適應性差的問題,提高了水下機器人的自動捕撈效率。水下機器人的自動捕撈系統的研發,仍有許多地方需改進優化,如海流等未知水下環境干擾會顯著降低系統的性能,在本文的基礎上需進一步研究。

表7 不同環境下自動捕撈速度及準確率

猜你喜歡
檢測
QC 檢測
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
“幾何圖形”檢測題
“角”檢測題
“有理數的乘除法”檢測題
“有理數”檢測題
“角”檢測題
“幾何圖形”檢測題
主站蜘蛛池模板: 日韩欧美91| 国产成人一级| 波多野结衣视频一区二区| 国产精品jizz在线观看软件| 狠狠躁天天躁夜夜躁婷婷| 欧洲av毛片| 这里只有精品在线播放| 国产精品区视频中文字幕| 亚洲床戏一区| 伊人色在线视频| a天堂视频| 日韩高清中文字幕| 国产成人精品一区二区| 首页亚洲国产丝袜长腿综合| 久久午夜夜伦鲁鲁片无码免费| 色精品视频| 91精品福利自产拍在线观看| 伊人成人在线视频| 日韩国产黄色网站| 国产av色站网站| 操国产美女| 久久久久久久久18禁秘| 国产精品久久久久久久伊一| 亚洲精品视频免费观看| 国产精品页| 91九色最新地址| 国产成人三级在线观看视频| 99视频在线精品免费观看6| 国产日本欧美亚洲精品视| 欧美在线精品一区二区三区| 一级毛片基地| 美女视频黄频a免费高清不卡| 欧美成人一级| 九色在线视频导航91| 国产精品深爱在线| 漂亮人妻被中出中文字幕久久| 五月综合色婷婷| 久久精品国产精品一区二区| 亚洲第一区欧美国产综合| 欧美区一区二区三| 亚洲天堂网2014| 亚洲精品视频在线观看视频| 九九九久久国产精品| 亚洲Va中文字幕久久一区 | 国产va免费精品观看| 毛片大全免费观看| 91成人在线观看视频| 99九九成人免费视频精品 | 亚洲精品人成网线在线| 不卡色老大久久综合网| 国产玖玖视频| 色婷婷在线影院| 国产97视频在线| 免费国产高清视频| 久久网欧美| 精品午夜国产福利观看| 午夜福利在线观看入口| 国产成人盗摄精品| 欧美国产综合色视频| 国产精品成人AⅤ在线一二三四| 在线a网站| 乱人伦视频中文字幕在线| 国产国产人成免费视频77777 | 一级成人a做片免费| 一级成人a毛片免费播放| 亚洲欧美自拍视频| 制服无码网站| 国产人免费人成免费视频| 九色免费视频| 成人一级免费视频| 熟女日韩精品2区| 国模在线视频一区二区三区| 秋霞一区二区三区| 女人爽到高潮免费视频大全| 天天操天天噜| 免费欧美一级| 国产丝袜无码精品| 国产免费黄| 蝴蝶伊人久久中文娱乐网| 青青青视频91在线 | 色婷婷啪啪| 萌白酱国产一区二区|