陳 偉,魏慶宇,張境鋒,郭碧宇
(江蘇科技大學(xué) 電子信息學(xué)院,江蘇 鎮(zhèn)江 212000)
水下環(huán)境中的光學(xué)成像比大氣環(huán)境中的光學(xué)成像更復(fù)雜,圖像存在明顯的質(zhì)量退化問題,基于機(jī)器視覺的傳統(tǒng)目標(biāo)檢測方法精度與準(zhǔn)確率不高[1]。隨著數(shù)據(jù)量的增加與計算機(jī)計算能力的增強(qiáng),傳統(tǒng)目標(biāo)檢測方法已被人工智能所取代[2]。近年來,許多基于卷積神經(jīng)網(wǎng)絡(luò)的方法被用于水下目標(biāo)檢測的研究?;赟SD[3]、Faster R-CNN[4-6]和YOLO[7-9]的水下目標(biāo)檢測方法在準(zhǔn)確性上已經(jīng)遠(yuǎn)超傳統(tǒng)目標(biāo)檢測算法,即使水下目標(biāo)物圖像質(zhì)量明顯退化,依然能夠準(zhǔn)確識別,但均沒有應(yīng)用到水下機(jī)器人上進(jìn)行目標(biāo)檢測作業(yè)。水下機(jī)器人屬于嵌入式機(jī)器人,計算力不足且存儲有限,因此需要一種算力需求小且保證速度與精度的目標(biāo)檢測算法。
RetinaNet是一種單階段目標(biāo)檢測算法[10],在保證單級目標(biāo)高檢測速度的基礎(chǔ)上,達(dá)到甚至超過了兩級目標(biāo)檢測精度,對于中小型目標(biāo)具有較好效果。因此,本文采用RetinaNet作為水下機(jī)器人目標(biāo)檢測框架,為進(jìn)一步提高水下機(jī)器人目標(biāo)檢測速度,降低算法運(yùn)算所需硬件資源,需對RetinaNet進(jìn)行改進(jìn)。首先采用DenseNet[11]替代ResNet構(gòu)建骨干網(wǎng)絡(luò),減輕網(wǎng)絡(luò)重量,其次使用2×2大小的卷積核進(jìn)行兩次卷積代替原始的單次卷積操作,增加感受野并減少參數(shù)[12];最后通過實驗驗證該算法的運(yùn)行速度與檢測精度。
RetinaNet是一種單階段目標(biāo)檢測算法,解決了單階段目標(biāo)檢測中速度快但精度不高的問題[13]。其網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,是一個簡單的端到端網(wǎng)絡(luò),相對于其它目標(biāo)檢測網(wǎng)絡(luò)結(jié)構(gòu)較為簡單,主要由ResNet、FPN(feature pyramid networks)和兩個FCN(fully convolutional networks)子網(wǎng)絡(luò)組成。
ResNet負(fù)責(zé)提取特征,一個FCN執(zhí)行水下目標(biāo)的分類(class students),另一個FCN執(zhí)行水下目標(biāo)包圍盒的回歸(box students)。FCN由卷積層組成,不包含全連接層,使用上采樣和去卷積將通過卷積運(yùn)算獲得的特征圖放大到預(yù)測期間輸入圖像的大小。因此,可以實現(xiàn)原始圖像的逐像素分類預(yù)測,比傳統(tǒng)方法的全圖像預(yù)測更有效,最后使用S(Softmax)型函數(shù)進(jìn)行激活?;貧w子網(wǎng)與分類子網(wǎng)平行,并且在FPN的每一層都添加了一個小的完整卷積網(wǎng)絡(luò),以進(jìn)行邊界回歸。
RetinaNet應(yīng)用在水下機(jī)器人上對水下目標(biāo)具有較好的檢測效果的另一個重要原因是它使用了一個新的損失函數(shù)(FL)。FL將原始損失函數(shù)乘以一個因子,削弱易檢測目標(biāo)對訓(xùn)練模型的貢獻(xiàn),從而解決類別不平衡問題。二分類標(biāo)準(zhǔn)的交叉熵?fù)p失函數(shù)如下
(1)
其中,y∈{±1} 為類別真實標(biāo)簽,p∈[0,1] 是模型預(yù)測y=1的概率。如果定義如下的pt
(2)
典型交叉熵?fù)p失函數(shù)可簡化如下
CE(p,y)=CE(pt)=lnpt
(3)
FL乘以對典型交叉熵?fù)p失的調(diào)整因子,其公式如式(3)所示
FL(pt)=αt(1-pt)γlnpt
(4)
其中,γ為焦點(diǎn)損失。從中可以看出,更易檢測的目標(biāo)對總損失的貢獻(xiàn)較小,而不可區(qū)分的樣本對損失的貢獻(xiàn)相對較大。對于不同的類別,參數(shù)α可以使損失函數(shù)更加平衡。這樣的損失函數(shù)將引導(dǎo)模型嘗試區(qū)分難以區(qū)分的水下目標(biāo)。
由于水下機(jī)器人計算力不足且存儲有限,直接采用RetinaNet作為目標(biāo)檢測網(wǎng)絡(luò)可能會造成機(jī)器人運(yùn)行卡頓。因此,本文使用新的骨干神經(jīng)網(wǎng)絡(luò)DenseNet代替默認(rèn)的殘差網(wǎng)絡(luò),將FPN構(gòu)造為改進(jìn)的RetinaNet特征提取網(wǎng)絡(luò)來提高算法的識別精度和速度。同時使用2×2大小的卷積核進(jìn)行兩次卷積代替原始的單次卷積,減少網(wǎng)絡(luò)參數(shù)進(jìn)一步提高算法的檢測速度,并同時增加網(wǎng)絡(luò)深度,提高網(wǎng)絡(luò)非線性力。
1.2.1 基于DenseNet對FPN的改進(jìn)
DenseNet提出了一個更為激進(jìn)的密集連接機(jī)制:即互相連接所有的層,具體來說就是每個層都接受其前面所有層作為其額外輸入[14]。相比ResNet,DenseNet網(wǎng)絡(luò)更窄,參數(shù)更少。圖2為ResNet網(wǎng)絡(luò)連接機(jī)制,作為對比,圖3為DenseNet密集連接機(jī)制。ResNet是每個層與前面的某層(一般是2~3層)短路連接在一起,連接方式是通過元素級相加。而在DenseNet中,每個層都會與前面所有層在通道維度上連接在一起(這里各個層的特征圖大小相同),并作為下一層的輸入。在傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)中,每一層都與相鄰層直接相連,因此整個網(wǎng)絡(luò)只有l(wèi)個連接,而在DenseNet中,每一層都與上一層直接相連,因此存在l(l+1)/2個連接。
傳統(tǒng)網(wǎng)絡(luò)在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層的非線性變化,其中可能包括一系列的激活、池化及卷積等操作。
由于密集連接方式,改進(jìn)的FPN提升了梯度的反向傳播,使網(wǎng)絡(luò)更加容易訓(xùn)練,且每層輸出都可以參與最后計算,實現(xiàn)隱式深度監(jiān)督。改進(jìn)后的FPN建立在兩個方向結(jié)構(gòu)上,在自下而上的路徑上,從每個密集塊輸出特征圖中獲取特征圖。在自頂向下的路徑上,特征金字塔網(wǎng)絡(luò)通過因子為2的向上采樣和橫向連接來構(gòu)建。之后去掉全連接層,連接兩個FCN作為分類器和回歸器。一些較早層提取出的特征仍可能被較深層直接使用,過渡層也會使用這些特征,因此改進(jìn)后的RetinaNet在原始數(shù)據(jù)集和增廣數(shù)據(jù)集上的性能都會比采用殘差網(wǎng)絡(luò)的原始結(jié)構(gòu)有所提高。
本文采用DenseNet連接機(jī)制代替原有ResNet連接機(jī)制,為保證維度上的連接,每個層的特征圖大小需保持一致,且卷積之后輸出通道數(shù)相同。假設(shè)輸入層的特征圖通道數(shù)記為k0, 則l層的輸入通道數(shù)為k0+k(l-1)。 那么隨著層數(shù)的增加,網(wǎng)絡(luò)的輸入量將會激增,因此學(xué)習(xí)率k可設(shè)置為一個較小值, 同時把網(wǎng)絡(luò)的每一層設(shè)計得特別“窄”。雖然后期網(wǎng)絡(luò)有著較大的輸入量,但由于特征重用的原因,每層僅有k個特征是獨(dú)有的??紤]到后面層輸入量過大的問題,在DenseNet連接機(jī)制中增加1×1卷積以降低特征數(shù)量。通過DenseNet的連接機(jī)制,每一層都包含之前所有層的輸出信息,因此其僅需要較少的特征圖,并且可采用較小學(xué)習(xí)率k,因此每個層所獨(dú)有的特征圖較小,整體參數(shù)更小且計算效率更高。
1.2.2 基于卷積層堆疊對RetinaNet的改進(jìn)
卷積層堆疊策略,是將多個連續(xù)的卷積層構(gòu)成卷積層組替換原始單次卷積的操作[15]。如圖4所示,使用2×2大小的卷積核進(jìn)行兩層卷積堆疊替代原始網(wǎng)絡(luò)的一次卷積操作,可視范圍達(dá)到16,但參數(shù)僅有8個,使用3×3大小的卷積核進(jìn)行卷積,可視范圍為9,參數(shù)為9個。與單個卷積層相比,卷積層堆疊提高了可視范圍,增強(qiáng)了網(wǎng)絡(luò)學(xué)習(xí)能力和特征表達(dá)能力;與使用較大卷積核的卷積層相比,采用具有小卷積核的卷積層串聯(lián)的方式能夠減少網(wǎng)絡(luò)參數(shù),在每層卷積之后進(jìn)行ReLU非線性操作可提升網(wǎng)絡(luò)特征學(xué)習(xí)能力。
在DensNet中,將原有的Dense block設(shè)計中3×3大小的卷積核替換為兩個2×2的小卷積核。并且使用1×1卷積核,保證輸出數(shù)據(jù)維度不變,增加系統(tǒng)非線性能力且不增加計算量。采用卷積層堆疊改進(jìn)后,具有121層和169層的DenseNet的結(jié)構(gòu)見表1,其增長率為32。
表1 改進(jìn)的DenseNet結(jié)構(gòu)
由于2×2卷積核且步長為2的卷積操作無法處理尺寸為奇數(shù)大小的圖片,在訓(xùn)練之初,需要將尺寸為S×J(S為奇數(shù),J為偶數(shù))的大小圖片擴(kuò)展成 (S+1)×J大小。在配置中,使用1×1卷積核進(jìn)行輸入通道的線性變換。使用兩種方法進(jìn)行訓(xùn)練尺度的確定,第一種是固定S, 第二種采用多尺度的方法。首先使用S=256進(jìn)行預(yù)先訓(xùn)練,接著使用其權(quán)重加快S=384的網(wǎng)絡(luò)訓(xùn)練。多尺度訓(xùn)練時,其中每個訓(xùn)練圖像通過從范圍 [Smax,Smin] 隨機(jī)采樣S來單獨(dú)重新縮放。因為圖像中的物體可以有不同的大小,所以在訓(xùn)練中考慮到這一點(diǎn)是有益的。這也可以看作是通過縮放抖動來增加訓(xùn)練集模型。出于速度原因,通過微調(diào)具有相同配置的單比例模型的所有層來訓(xùn)練多比例模型。
改進(jìn)后的RetinaNet使用卷積層堆疊組合成的“卷積組”代替原來的單次卷積操作,因此網(wǎng)絡(luò)更深,模型判別力增強(qiáng)。小卷積層與大的相比,擁有更多非線性變換,使得CNN對特征的學(xué)習(xí)能力更強(qiáng)。相比之前,整個網(wǎng)絡(luò)的參數(shù)明顯降低,在一定程度上可以提高水下目標(biāo)檢測的精度與速度。在訓(xùn)練過程中,淺層網(wǎng)絡(luò)采用隨機(jī)數(shù)初始化,然后將權(quán)重值移植后面較為復(fù)雜的模型,從而加快訓(xùn)練速度。
根據(jù)每個特征層次的不同大小和步長生成候選框,并在每個候選點(diǎn)生成K個不同大小和步長的候選框。候選框的大小和步長與原算法相似,但候選框的大小和步長不是基于先驗的,而是通過對數(shù)據(jù)集中標(biāo)記盒的大小進(jìn)行聚類得到的。根據(jù)候選框生成機(jī)制,可以在算法開始時得到與目標(biāo)大小相匹配的候選框,提高算法的識別精度。原RetinaNet候選框生成相當(dāng)于在原始圖像中以 {8,16,32,64,128} 的步長滑動 {32,64,128,256,512} 像素大小的窗口,并在每個候選框生成3個大小比例和3個比例大小的候選框,每個候選點(diǎn)生成9個候選框。由于算法的速度與輸入圖像的分辨率直接相關(guān),因此經(jīng)常需要調(diào)整原始圖像的分辨率。假設(shè)調(diào)整后的分辨率大小為1200×800像素,則在輸入圖像中將生成大約7000個錨框。
因此,本文利用K-means++算法重新設(shè)計候選框的數(shù)量和大小,使得改進(jìn)算法的候選框得到最高的平均IoU值,與水下目標(biāo)的實際大小相匹配。
使用標(biāo)記框之間的相交比率IoU作為距離函數(shù)的參數(shù)
dij=1-IoUij
(8)
式中:IoUij是標(biāo)記框i和標(biāo)記框j之間的IoU值。在聚類中心初始化位置的選擇中,隨機(jī)選擇一個樣本點(diǎn)作為第一個聚類中心,然后選擇剩余樣本點(diǎn)中離第一個聚類中心最遠(yuǎn)的點(diǎn)作為第二個聚類中心,離前兩個聚類中心最遠(yuǎn)的樣本點(diǎn)作為第三個聚類中心。在收斂準(zhǔn)則上,定義了一個新的損失函數(shù)LossN,它是將所有樣本點(diǎn)與相應(yīng)聚類中心之間的距離相加得到的,公式表示為
(9)
當(dāng)聚類中心位置更新前后的損失差小于設(shè)定的閾值時,算法收斂。在迭代次數(shù)的選擇上,考慮到聚類中心的初始位置是預(yù)選的,算法相對容易收斂,需將迭代次數(shù)設(shè)置為足夠大。
原始網(wǎng)絡(luò)中,K值為9。K-means++算法處理后的損耗曲線和平均IoU曲線如圖5所示。迭代3次時平均IoU值達(dá)到最大,損失值最小,且滿足設(shè)定的30次迭代收斂條件。但根據(jù)期望的聚類數(shù)來看,并不是數(shù)據(jù)集中的所有數(shù)據(jù)都是嚴(yán)格的球形分布。當(dāng)一個聚類中大部分?jǐn)?shù)據(jù)相對集中,少量數(shù)據(jù)相對較遠(yuǎn)時,如果聚類中心相對靠近稠密樣本,迭代會使聚類中心向稀疏數(shù)據(jù)靠攏。由于稀疏數(shù)據(jù)的樣本量相對較小,迭代對聚類中心偏移的影響會越來越小,最終收斂,但聚類中心陷入局部最優(yōu)解。增加K值可以在一定程度上解決局部最優(yōu)解的問題,但是增加K值,也就是增加每個錨點(diǎn)獲得的錨幀數(shù)量,會導(dǎo)致RetaiNet的運(yùn)行速度變慢。所以在增加K值和運(yùn)行速度上要做到平衡。在本文中,K在1~15之間進(jìn)行測試。
本文以海參為典型研究對象,建立海參數(shù)據(jù)集。共收集水下攝像頭拍攝海參高分辨率圖像1329張和互聯(lián)網(wǎng)上海參圖像1518張。同時根據(jù)PascalVOC標(biāo)簽格式,使用labelImge在海參圖像中標(biāo)注目標(biāo),生成XML文件。XML文件包括標(biāo)記框坐標(biāo)和訓(xùn)練所需其它信息。其中2000幅圖像用作訓(xùn)練集,847幅圖像用作測試集。
本研究中使用的硬件和軟件見表2。為訓(xùn)練RetinaNet原始算法及改進(jìn)算法,進(jìn)行以下初始化設(shè)置:
(1)使用DenseNet169作為骨干網(wǎng);
(2)使用MSCOCO訓(xùn)練集參數(shù)對ResNet101骨干網(wǎng)進(jìn)行初始化,根據(jù)激活函數(shù)值σ=0.01和高斯分布初始化DenseNet骨干網(wǎng)所有權(quán)重;
(3)共訓(xùn)練40個歷元,將批處理設(shè)置為一張圖像,每個歷元重復(fù)5242次;
(4)重量衰減設(shè)置為0.0001,動量設(shè)置為0.9;
(5)焦點(diǎn)損失γ設(shè)置為2,α設(shè)置為0.25。
表2 訓(xùn)練環(huán)境
為了驗證DenseNet與卷積層堆疊的優(yōu)越性,本文分別基于ResNet101和卷積層堆疊作用下DenseNet121訓(xùn)練測試了改進(jìn)的RetinaNet。兩種算法的損耗曲線如圖6所示。
從圖6可以看出,由于在訓(xùn)練開始時沒有轉(zhuǎn)移學(xué)習(xí),改進(jìn)的RetinaNet損失值高于原始網(wǎng)絡(luò)損失值。隨著訓(xùn)練進(jìn)行,原始網(wǎng)絡(luò)對訓(xùn)練集的收斂速度更快,但是在36個歷元之后,改進(jìn)的RetinaNet損失值低于原始網(wǎng)絡(luò)損失值,這表明改進(jìn)的RetinaNet可以更好地擬合36個歷元的訓(xùn)練集數(shù)據(jù)。兩種算法在測試集上的性能,見表3。
表3 改進(jìn)前后RetinaNet性能對比
從表3可以看出,盡管改進(jìn)的RetinaNet網(wǎng)絡(luò)參數(shù)僅具有16.8 M,但AP值達(dá)到0.8958,在海參檢測性能上提高了8.24%。DenseNet每一層都與前面所有層相連接,且每一層輸入都為前面所有層輸出線性連接。改進(jìn)的網(wǎng)絡(luò)結(jié)構(gòu)采用了DenseNet這種較為復(fù)雜的結(jié)構(gòu),增加了計算成本,訓(xùn)練速度較慢。但在檢測速度上,改進(jìn)的RetinaNet網(wǎng)絡(luò)比原始網(wǎng)絡(luò)有所提高。
實驗結(jié)果表明,改進(jìn)的RetinaNet網(wǎng)絡(luò)相比較原始網(wǎng)絡(luò)具有較高的準(zhǔn)確性。通過改進(jìn)的RetinaNet對海參進(jìn)行檢測結(jié)果如圖7所示,即使在水質(zhì)渾濁且背景相似的情況下,依然能夠準(zhǔn)確對海參進(jìn)行識別與框選。
為驗證改進(jìn)的RetinaNet性能,訓(xùn)練并測試Faster R-CNN 與YOLOv3作為實驗對比。
Faster R-CNN和YOLOv3的損耗曲線如圖8所示。可以看出,RetinaNet的損耗曲線比較平滑,YOLOv3的損耗曲線略有振蕩,而Faster R-CNN相對較大。這種差異很大程度上是由于RetinaNet每次迭代使用一幅圖像,每幅圖像對損失函數(shù)的貢獻(xiàn)值有限,所以曲線相對平滑。每一次迭代分別使用64幅和256幅圖像,因此每次迭代的損失波動較大值,這也可以解釋為什么YOLOv3和Faster R-CNN越來越振蕩的原因。同時,從訓(xùn)練成本來看,F(xiàn)aster R-CNN 需要10 000次左右的迭代才能得到相對穩(wěn)定的損失值。YOLOv3訓(xùn)練到一個相對穩(wěn)定的損失值需要6000次左右的迭代。改進(jìn)RetinaNet在近40個迭代周期趨于穩(wěn)定,從網(wǎng)絡(luò)訓(xùn)練難度來說,F(xiàn)aster R-CNN>YOLOv3>RetinaNet。
Faster R-CNN、YOLOv3和改進(jìn)的RetinaNet在測試集上的實驗結(jié)果見表4。改進(jìn)的RetinaNet正確率比Faster R-CNN略高8.65個百分點(diǎn),明顯高于YOLOv3網(wǎng)絡(luò)30.93個百分點(diǎn)。算法參數(shù)方面,改進(jìn)的RetinaNet參數(shù)僅有18.1 M,遠(yuǎn)小于Fast RCNN 和YOLOv3。在速度上,由于YOLOv3算法結(jié)構(gòu)和少量錨盒提取,速度明顯快于Faster R-CNN,但仍落后于改進(jìn)的RetinaNet。
表4 不同算法的性能
為了驗證不同算法對不同識別難度目標(biāo)的識別能力,根據(jù)主觀判斷將測試集中的樣本分為簡單樣本、一般樣本和困難樣本3種類型。簡單樣本包括高水質(zhì)下單個海參,共300張圖像;一般樣本包括一般水質(zhì)下多個海參,共150幅圖像;困難樣本包渾濁水質(zhì)下多個被遮擋海參,共50幅圖像。3種算法的識別結(jié)果見表5。
表5 不同難度樣本的識別性能
從表5可以看出,雖然改進(jìn)的RetinaNet在簡單樣本中的檢測效果與Faster R-CNN基本相同,AP值分別為0.8631和0.8823,但在一般樣本和困難樣本中表現(xiàn)出較好的檢測精度,分別高出7.84和36.21個百分點(diǎn)。同時,改進(jìn)的RetinaNet比YOLOv3的準(zhǔn)確性方面更具綜合優(yōu)勢。通過實驗驗證和結(jié)果分析,可以得出結(jié)論:改進(jìn)的RetinaNet是一種適用于水下目標(biāo)識別的目標(biāo)檢測算法。
分別以改進(jìn)的DenseNet121和DenseNet169為基礎(chǔ)進(jìn)行實驗,驗證網(wǎng)絡(luò)深度對改進(jìn)的RetinaNet性能的影響,實驗結(jié)果見表6。
表6 不同網(wǎng)絡(luò)深度下改進(jìn)的RetinaNet性能
從表6中可以看出,采用改進(jìn)的DenseNet169作為主干網(wǎng)絡(luò)在海參檢測的性能上略有提高,但參數(shù)數(shù)量相比DenseNet121高了45.6%。由于網(wǎng)絡(luò)的加深,檢測速度降低到27 fps,整體檢測速度降低了13%。因此,本文所研制的水下機(jī)器人采用改進(jìn)的DenseNet121作為主干網(wǎng)絡(luò)代替原始的殘差網(wǎng)絡(luò)。
本文使用的實驗平臺如圖9所示,主要由Vectored ROV型水下機(jī)器人和目標(biāo)檢測網(wǎng)絡(luò)實驗平臺兩部分組成。機(jī)器人本身配備一個三自由度電動機(jī)械手和一個網(wǎng)絡(luò)攝像機(jī),并配備4個電動推進(jìn)器,內(nèi)置環(huán)境感知系統(tǒng),如慣性導(dǎo)航、水深測量和熱導(dǎo)率深度(CTD)。機(jī)體選用吸水率小于1%(24 h)的固體復(fù)合泡沫,可承受2000英尺至36 000英尺的水下環(huán)境。Vectored ROV型機(jī)器人進(jìn)行水下圖像的采集,目標(biāo)檢測網(wǎng)絡(luò)實驗平臺讀取圖像信息,進(jìn)行海參目標(biāo)檢測,將處理好的結(jié)果實時顯示在屏幕上,同時記錄下目標(biāo)框的平面坐標(biāo)為后期的海參自動捕撈提供數(shù)據(jù)支持。實驗場地為大型水池,滿足實驗所需環(huán)境布置要求。
實驗結(jié)果如圖10所示,改進(jìn)的RentinaNet可以在水下機(jī)器人上穩(wěn)定快速運(yùn)行。在實驗水池環(huán)境下,單個及多個目標(biāo)均可以準(zhǔn)確檢測,即使在海參被遮擋或顯示不全的情況下,依舊能夠準(zhǔn)確判別與框選。
同時,水下機(jī)器人自動捕撈系統(tǒng)采用本文提出的改進(jìn)的水下目標(biāo)檢測方法替代原有基于機(jī)器視覺目標(biāo)檢測方法,進(jìn)行抓取實驗。實驗結(jié)果如圖11~圖12所示。
從圖中可以看出,采用基于機(jī)器視覺方法做海參目標(biāo)檢測,受光線和角度影響,會造成目標(biāo)丟失,導(dǎo)致機(jī)器人放棄原有目標(biāo)進(jìn)行其它目標(biāo)的檢測與抓取,出現(xiàn)捕撈不完全的問題。采用本文提出的改進(jìn)的目標(biāo)檢測方法的自動捕撈系統(tǒng),海參相互重疊的情況下,依舊可以識別出所有海參,并進(jìn)行準(zhǔn)確的自主捕撈作業(yè)。
為準(zhǔn)確驗證改進(jìn)的目標(biāo)檢測系統(tǒng)對水下機(jī)器人自動捕撈系統(tǒng)的提升,使用同一機(jī)器人,在實驗池、池塘及海灘中,每次放置多只海參,進(jìn)行多次海參抓取實驗,實驗結(jié)果見表7。
從表7中可以看出,改進(jìn)的RetinaNet可以在水下機(jī)器人上穩(wěn)定快速運(yùn)行,無論哪種環(huán)境下,水下機(jī)器人的自動捕撈率均有明顯提高,自動捕獲海參的時間顯著減少。其中,目標(biāo)檢測精度提高了23%,運(yùn)行速度提高了17%。實驗結(jié)果表明,本文提出的目標(biāo)檢測方法可應(yīng)用在水下機(jī)器人上,并提高水下機(jī)器人自動捕獲效率。
水下機(jī)器人自動捕撈系統(tǒng)廣泛應(yīng)用于水產(chǎn)養(yǎng)殖和海洋資源探索作業(yè),而水下環(huán)境中的光學(xué)成像較為復(fù)雜,圖像存在明顯的質(zhì)量退化問題,基于卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測方法難以應(yīng)用在計算力有限的水下機(jī)器人上。針對上述問題,本文設(shè)計了一種基于改進(jìn)的RetinaNet水下機(jī)器人目標(biāo)檢測方法,使用新的骨干神經(jīng)網(wǎng)絡(luò)DenseNet代替默認(rèn)的殘差網(wǎng)絡(luò),將FPN構(gòu)造為改進(jìn)的RetinaNet特征提取網(wǎng)絡(luò)來提高算法的識別精度和速度。同時使用2×2大小的卷積核進(jìn)行兩次卷積代替原始的單次卷積,在擴(kuò)大感受野的同時減少網(wǎng)絡(luò)參數(shù),并同時增加網(wǎng)絡(luò)深度,提升網(wǎng)絡(luò)的特征學(xué)習(xí)能力。本文以海參為典型研究對象。實驗結(jié)果表明,所設(shè)計的目標(biāo)檢測網(wǎng)絡(luò)能夠在水下機(jī)器人上正常穩(wěn)定運(yùn)行,顯著提高了水下機(jī)器人檢測水下目標(biāo)的速度和精度。在多種環(huán)境下,應(yīng)用于水下機(jī)器人自動打撈任務(wù),目標(biāo)檢測精度提高約23%左右,作業(yè)速度提高約17%。該方法可應(yīng)用于水下機(jī)器人,有效解決了對水下目標(biāo)檢測環(huán)境適應(yīng)性差的問題,提高了水下機(jī)器人的自動捕撈效率。水下機(jī)器人的自動捕撈系統(tǒng)的研發(fā),仍有許多地方需改進(jìn)優(yōu)化,如海流等未知水下環(huán)境干擾會顯著降低系統(tǒng)的性能,在本文的基礎(chǔ)上需進(jìn)一步研究。
表7 不同環(huán)境下自動捕撈速度及準(zhǔn)確率