国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于單目視覺的水下目標(biāo)檢測(cè)與位姿估計(jì)

2022-07-08 16:14:36遲書凱葛憲威
海洋技術(shù)學(xué)報(bào) 2022年3期
關(guān)鍵詞:角點(diǎn)位姿姿態(tài)

賈 威,遲書凱,葛憲威

(中國(guó)海洋大學(xué)工程學(xué)院,山東 青島266100)

應(yīng)用于水下場(chǎng)景的視覺系統(tǒng)主要有單目視覺系統(tǒng)和雙目視覺系統(tǒng)[1]。與雙目視覺系統(tǒng)相比,單目視覺結(jié)構(gòu)簡(jiǎn)單,易于配置安裝,因此更適合水下的應(yīng)用需求[2]。但是由于成像原理的限制,單目視覺在原理上無法直接獲取深度信息,但結(jié)合一定的先驗(yàn)信息可以實(shí)現(xiàn)單目視覺的深度估計(jì)。

在基于傳統(tǒng)視覺方法的單目視覺研究中,張法全等[3-4]對(duì)圖像進(jìn)行模糊度監(jiān)測(cè)獲取邊緣寬度然后通過樣條插值算法求取深度信息,但該方法只適用于較近距離下的深度信息求解。王劍等[5]通過改變相機(jī)焦距獲取多張圖像,在固定尺寸和焦距兩種情況下成像,利用目標(biāo)物體尺寸和焦距之間的關(guān)系,定量求取深度信息,但該方法要求對(duì)相機(jī)進(jìn)行在線標(biāo)定,不滿足實(shí)時(shí)性的要求。

基于深度學(xué)習(xí)的單目深度估計(jì)方法,根據(jù)訓(xùn)練方法的不同可以分為:有監(jiān)督方法、無監(jiān)督方法和半監(jiān)督方法[6]。在有監(jiān)督的單目深度估計(jì)如文獻(xiàn)[7—8]的方法中,方法使用的監(jiān)督信號(hào)基于深度圖的地面真值,這在一些應(yīng)用場(chǎng)景下的獲取代價(jià)是相當(dāng)昂貴的。在水下自主作業(yè)的應(yīng)用場(chǎng)景中,很難獲得具有準(zhǔn)確監(jiān)督信號(hào)的水下深度圖像作為網(wǎng)絡(luò)訓(xùn)練使用的數(shù)據(jù)集。在無監(jiān)督單目深度估計(jì)中,如文獻(xiàn)[9—10]的方法中,一般使用幀間的幾何約束作為訓(xùn)練過程的監(jiān)督信號(hào)。無監(jiān)督方法在網(wǎng)絡(luò)訓(xùn)練中沒有使用真值,所以性能和有監(jiān)督方法的差距很大,而且無監(jiān)督方法存在著尺度模糊、不一致的問題[6]。

綜上所述,無論是傳統(tǒng)方法還是基于深度學(xué)習(xí)的方法,都存在一定的問題?;谏疃葘W(xué)習(xí)的單目估計(jì)方法,不管是有監(jiān)督方法或是無監(jiān)督方法在水下的應(yīng)用場(chǎng)景中都無法出色地完成任務(wù),但卷積神經(jīng)網(wǎng)絡(luò)在目標(biāo)識(shí)別與跟蹤領(lǐng)域仍有著非常出色的表現(xiàn)。在水下的應(yīng)用場(chǎng)景中,拍攝得到的圖像往往存在清晰度差,邊緣銳度低,整體亮度低,目標(biāo)顏色強(qiáng)度會(huì)隨著水深逐漸減弱,輪廓信息也會(huì)受到一定影響的問題[11],這就使得傳統(tǒng)的目標(biāo)識(shí)別方法會(huì)出現(xiàn)誤識(shí)別,甚至無法識(shí)別的情況。深度學(xué)習(xí)網(wǎng)絡(luò)方法可以通過多次卷積計(jì)算來對(duì)圖像特征進(jìn)行提取,能夠充分利用圖像的像素信息,提高檢測(cè)性能,同時(shí)滿足實(shí)時(shí)性和準(zhǔn)確性的要求。在面向水下環(huán)境的目標(biāo)檢測(cè)中,最新的依賴卷積神經(jīng)網(wǎng)絡(luò)的檢測(cè)器可以分為兩階段檢測(cè)器如R-CNN、Faster R-CNN 和單階段檢測(cè)器如YOLO(You Only Look Once)、SSD(Single Shot Multibox Detector) 兩類。兩階段的檢測(cè)器具有更高的準(zhǔn)確性,但在水下應(yīng)用場(chǎng)景中不能滿足實(shí)時(shí)性和計(jì)算資源限制的需求[12]?,F(xiàn)有的針對(duì)水下環(huán)境的單階段檢測(cè)器改進(jìn)主要針對(duì)水下小目標(biāo)的檢測(cè)性能,以及克服水下成像質(zhì)量的影響,但算法的實(shí)時(shí)性較差,同時(shí)網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜,離線移植實(shí)現(xiàn)的難度較大。YOLOv3 網(wǎng)絡(luò)結(jié)構(gòu)相對(duì)簡(jiǎn)單,復(fù)雜程度低,便于水下的離線實(shí)現(xiàn),同時(shí)YOLO 單階段檢測(cè)器更為快速,且對(duì)小物體的檢測(cè)性能更好。

因此,本文基于改進(jìn)的YOLOv3 算法實(shí)現(xiàn)水下目標(biāo)的檢測(cè),同時(shí)在神經(jīng)網(wǎng)絡(luò)獲取到的像素信息的基礎(chǔ)上構(gòu)建單應(yīng)性模型,結(jié)合基于PnP(Perspectiven-Point)問題的改進(jìn)算法對(duì)目標(biāo)進(jìn)行實(shí)時(shí)的位姿估計(jì),算法實(shí)時(shí)性滿足應(yīng)用需求并且網(wǎng)絡(luò)結(jié)構(gòu)有利于離線移植實(shí)現(xiàn),可以在水下應(yīng)用場(chǎng)景中實(shí)時(shí)獲取位置信息。

1 目標(biāo)檢測(cè)

本文面向水下自主作業(yè)場(chǎng)景,提出一種目標(biāo)檢測(cè)與實(shí)時(shí)位姿估計(jì)方法,在目標(biāo)物體幾何規(guī)則并結(jié)合一定先驗(yàn)信息的基礎(chǔ)上可以實(shí)現(xiàn)單目視覺下的目標(biāo)檢測(cè)與實(shí)時(shí)位姿估計(jì)。在這里以廣泛應(yīng)用于水下裝置設(shè)備的水密接插件和工件為例驗(yàn)證本文方法可行性。為了實(shí)現(xiàn)快速且魯棒地對(duì)目標(biāo)進(jìn)行檢測(cè),本文在YOLOv3 算法[13]的基礎(chǔ)上加以改進(jìn),使得算法在水下場(chǎng)景中具備更好的檢測(cè)效果和更低的誤差?;赮OLOv3 網(wǎng)絡(luò)的檢測(cè)方法將候選框提取、提取特征、目標(biāo)分類與目標(biāo)跟蹤統(tǒng)一于一個(gè)神經(jīng)網(wǎng)絡(luò)中,網(wǎng)絡(luò)可以從圖像中提取候選區(qū)域,然后通過圖像中的特征來預(yù)測(cè)目標(biāo)在圖像中的位置和置信度。

基礎(chǔ)的YOLOv3 算法對(duì)物體的檢測(cè)無法解決邊界框跟隨物體旋轉(zhuǎn)的問題,也就是說盡管本文方法的應(yīng)用場(chǎng)景中目標(biāo)物體幾何形狀規(guī)則,但使用傳統(tǒng)的YOLOv3 網(wǎng)絡(luò)無法實(shí)現(xiàn)邊界框與物體相切,且能隨著物體姿態(tài)的變化保持很好的相切于物體。在水下自主作業(yè)的場(chǎng)景中,單目視覺系統(tǒng)需獲取物體的深度信息和姿態(tài)信息,故對(duì)傳統(tǒng)的YOLOv3 算法進(jìn)行改進(jìn),在解決跟蹤效果的基礎(chǔ)上盡可能保證提供較為準(zhǔn)確的姿態(tài)及深度信息。

1.1 YOLO 網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)

YOLOv3 網(wǎng)絡(luò)對(duì)圖像特征的提取主要通過卷積和池化操作來實(shí)現(xiàn),在本文水下自主作業(yè)的應(yīng)用場(chǎng)景中,考慮到水下拍攝畫面的霧化模糊問題,以及完成目標(biāo)檢測(cè)之后進(jìn)行位姿估計(jì)時(shí)對(duì)局部特征的需求問題,為了增強(qiáng)YOLOv3 網(wǎng)絡(luò)在本文應(yīng)用場(chǎng)景中的適用性,給位姿估計(jì)提供精度更高的像素信息,本文采用重組層代替卷積和池化操作來對(duì)圖像進(jìn)行特征提取。重組層的結(jié)構(gòu)如圖1 所示,重組層將每個(gè)通道上的2 ×2 圖像塊中的4 個(gè)像素點(diǎn)進(jìn)行拆解,并且重新排列成4 通道的1×1 圖像塊,這樣操作可以更好地保留像素中的局部細(xì)節(jié),有利于為后續(xù)的位姿估計(jì)流程提供像素信息。改進(jìn)后的網(wǎng)絡(luò)結(jié)構(gòu)如圖2 所示。

圖1 重組層結(jié)構(gòu)

圖2 改進(jìn)的YOLOv3 網(wǎng)絡(luò)結(jié)構(gòu)

1.2 損失函數(shù)改進(jìn)

在本文方法的水下應(yīng)用場(chǎng)景中,目標(biāo)在水中的姿態(tài)是隨機(jī)的,也就是說物體可能在水中發(fā)生旋轉(zhuǎn),這會(huì)導(dǎo)致同一類物體由于拍攝角度的不同出現(xiàn)多種情況的長(zhǎng)寬比,而原始YOLOv3 網(wǎng)絡(luò)的損失函數(shù)是長(zhǎng)寬的損失,為了提高網(wǎng)絡(luò)的泛化能力,識(shí)別各種姿態(tài)下的目標(biāo)物體,改進(jìn)模型的損失函數(shù),轉(zhuǎn)化為區(qū)域框?qū)蔷€的損失,損失函數(shù)具體如下所示。

在式(1)中,Ci表示目標(biāo)分類;Pi表示屬于某類別的概率,對(duì)于存在目標(biāo)的待檢測(cè)區(qū)域,該區(qū)域置信度為1;目標(biāo)不存在的區(qū)域則置信度為0。訓(xùn)練時(shí)選用λcoord=λnoobj=0.5 的權(quán)重。

1.3 網(wǎng)絡(luò)訓(xùn)練

制作網(wǎng)絡(luò)訓(xùn)練使用的數(shù)據(jù)集,選取在水下環(huán)境中拍攝得到的不同姿態(tài)不同距離的水密接插件及工件圖片制作數(shù)據(jù)集,使用LabelImg2 工具進(jìn)行標(biāo)注。數(shù)據(jù)集圖像總共2 000 張,其中1 200 張作為訓(xùn)練集,600 張作為測(cè)試集,200 張作為驗(yàn)證集。

對(duì)YOLO 網(wǎng)絡(luò)的訓(xùn)練過程需要在開始時(shí)對(duì)預(yù)測(cè)框(Anchor box)的數(shù)量及大小進(jìn)行設(shè)定,由于網(wǎng)絡(luò)訓(xùn)練過程實(shí)質(zhì)上就是在初始預(yù)測(cè)框的基礎(chǔ)上不斷對(duì)預(yù)測(cè)框進(jìn)行調(diào)整,使其與真實(shí)框接近的過程,所以設(shè)定合適的初始預(yù)測(cè)框不僅能加快網(wǎng)絡(luò)的訓(xùn)練過程,而且能提高算法識(shí)別的準(zhǔn)確率,本文針對(duì)水下應(yīng)用場(chǎng)景的需求,以及目標(biāo)物體幾何形狀的特點(diǎn),將識(shí)別目標(biāo)設(shè)定為水密接插件的4 個(gè)角點(diǎn),同時(shí)引入K-Means 聚類算法,生成角點(diǎn)目標(biāo)的最優(yōu)初始預(yù)測(cè)框,以實(shí)現(xiàn)優(yōu)化網(wǎng)絡(luò)性能的目的。

K-Means 算法是一種較為常見的聚類算法[14],把一個(gè)樣本集作為算法的輸入,算法對(duì)樣本進(jìn)行聚類,將相似特征的一類樣本聚為一類。在本文的訓(xùn)練模型中共需要9 個(gè)先驗(yàn)框,因此在聚類算法中令K=9,聚類得到9 個(gè)類簇。聚類在無監(jiān)督下進(jìn)行,首先選取9 個(gè)中心點(diǎn),遍歷每個(gè)樣本點(diǎn)進(jìn)行分配,尋找與每個(gè)點(diǎn)距離最近的中心點(diǎn),距離同一中心點(diǎn)最近的點(diǎn)為一個(gè)類簇,這樣便完成了一次聚類,然后遍歷所有類簇,計(jì)算新的質(zhì)心,直到類簇質(zhì)心不發(fā)生變化或迭代次數(shù)達(dá)到最大,則聚類完成。其中聚類的目標(biāo)函數(shù)如下。

式中,Box[i]表示聚類結(jié)果;Box[j]表示物體框真實(shí)值;IOU表示兩者間的交并比。

2 位姿估計(jì)

通過改進(jìn)的YOLOv3 目標(biāo)檢測(cè)算法實(shí)現(xiàn)對(duì)角點(diǎn)的檢測(cè)后,YOLOv3 網(wǎng)絡(luò)可以輸出4 個(gè)預(yù)測(cè)框(Bounding Box)中心點(diǎn)的像素坐標(biāo)及預(yù)測(cè)框的長(zhǎng)寬數(shù)據(jù),至此可以獲取目標(biāo)物上四點(diǎn)在像素坐標(biāo)系下的2D坐標(biāo),同時(shí)結(jié)合目標(biāo)物先驗(yàn)信息,可以建立世界坐標(biāo)系,獲取四點(diǎn)在真實(shí)世界坐標(biāo)系下的3D 坐標(biāo)。

至此,如果在相機(jī)不發(fā)生移動(dòng)也就是相機(jī)坐標(biāo)系固定的應(yīng)用場(chǎng)景中,對(duì)目標(biāo)的位姿估計(jì)問題則可以轉(zhuǎn)化為簡(jiǎn)單的已知世界坐標(biāo)系下N個(gè)空間點(diǎn)的真實(shí)坐標(biāo)及這些空間點(diǎn)在圖像中的投影,來計(jì)算相機(jī)位姿,進(jìn)而計(jì)算物體與相機(jī)間的姿態(tài)變化矩陣,得到物體位姿的過程。但是在本文的應(yīng)用場(chǎng)景中,相機(jī)在實(shí)際水下應(yīng)用場(chǎng)景下提供視覺信息的過程中可能需要發(fā)生移動(dòng)即相機(jī)坐標(biāo)系會(huì)發(fā)生改變。

因此,本文將對(duì)目標(biāo)物體的位姿估計(jì)問題轉(zhuǎn)化為已知世界坐標(biāo)系下N個(gè)空間點(diǎn)的真實(shí)坐標(biāo)及這些空間點(diǎn)在圖像中的投影,來計(jì)算相機(jī)位姿,進(jìn)而計(jì)算物體與相機(jī)間的姿態(tài)變化矩陣,得到物體位姿的過程。同時(shí)考慮到本文應(yīng)用場(chǎng)景中相機(jī)位姿會(huì)隨著跟蹤過程發(fā)生變化,建立物體前后姿態(tài)間的單應(yīng)性模型[15],結(jié)合物體與相機(jī)間的姿態(tài)變化矩陣,對(duì)各種可能情形下的目標(biāo)位姿進(jìn)行估計(jì)。

2.1 單應(yīng)性模型

根據(jù)計(jì)算機(jī)視覺領(lǐng)域的單應(yīng)性概念,水密接插件和相機(jī)之間可以構(gòu)建單應(yīng)性矩陣來確定目標(biāo)物體的深度與姿態(tài)。對(duì)不同姿態(tài)下的水密接插件與相機(jī)進(jìn)行單應(yīng)性模型構(gòu)建,模型原理如圖3 所示,將水密接插件高垂直于水平面時(shí)看作零初始狀態(tài),此時(shí)在物體上建立世界坐標(biāo)系O0-X0Y0Z0,以圓柱體的高為X軸,以圓柱體橫截面矩形的寬為Y軸,以垂直于橫截面矩形正方向向外為Z軸。相機(jī)坐標(biāo)系建立為OC-XCYCZC,則零初始狀態(tài)下的世界坐標(biāo)系O0-X0Y0Z0與相機(jī)坐標(biāo)系OC-XCYCZC間的關(guān)系為(R1,T1),其中,R、T 分別表示兩個(gè)坐標(biāo)系間的旋轉(zhuǎn)和平移矩陣。當(dāng)目標(biāo)物姿態(tài)發(fā)生變化,離開零初始狀態(tài)時(shí),在姿態(tài)改變后的物體上仍按照零初始狀態(tài)下坐標(biāo)系建立的方法,以圓柱體的高為X軸,以圓柱體橫截面矩形的寬為Y軸,以垂直于橫截面矩形正方向向外為Z軸建立新的世界坐標(biāo)系O′-X′Y′Z′,該世界坐標(biāo)系與相機(jī)坐標(biāo)系OC-XCYCZC之間的關(guān)系可以用(R2,T2)來表示。由剛體的平移旋轉(zhuǎn)定理可知,物體兩種不同姿態(tài)間的轉(zhuǎn)換關(guān)系可以用一個(gè)單應(yīng)性矩陣H 描述,且H 應(yīng)當(dāng)滿足式(3)。

圖3 單應(yīng)性模型的原理圖

式中,[x0y0z0]T表示坐標(biāo)系O0-X0Y0Z0中點(diǎn)的坐標(biāo);[x′y′z′]T為同一個(gè)點(diǎn)在姿態(tài)變化后建立的新世界坐標(biāo)系O′-X′Y′Z′中的坐標(biāo)。

在本文方法的驗(yàn)證中,水密接插件的先驗(yàn)信息是固定且已知的,則由式(3)可知,物體當(dāng)前姿態(tài)與零初始狀態(tài)下姿態(tài)間的轉(zhuǎn)換關(guān)系可以由單應(yīng)性矩陣給出,而單應(yīng)性矩陣可以由同一點(diǎn)在兩個(gè)坐標(biāo)系下對(duì)應(yīng)的不同坐標(biāo)確定。設(shè)實(shí)際物體上一點(diǎn)在兩種姿態(tài)下在成像平面上得到的兩個(gè)投影點(diǎn)分別為U1=[u1v11]T和此時(shí)兩投影點(diǎn)間關(guān)系可表示如下。

理論上通過數(shù)據(jù)歸一化的直接線性變換(DLT)算法,可以求式(5)中的8 個(gè)未知量,從而求得單應(yīng)性矩陣H。但在本文應(yīng)用場(chǎng)景中,水下自主作業(yè)無法攜帶大量計(jì)算資源,DLT 算法計(jì)算量較大,所以對(duì)位姿的實(shí)時(shí)估計(jì)難以實(shí)現(xiàn)。

2.2 PnP 問題

至此,位姿估計(jì)問題可以近似為一個(gè)PnP問題[16],PnP 問題的一般內(nèi)容如下。

(1)給定n個(gè)3D 參考點(diǎn)到攝像機(jī)圖像上2D投影點(diǎn)的匹配點(diǎn)對(duì)。

(2)已知3D 點(diǎn)在世界坐標(biāo)系下的坐標(biāo),2D 點(diǎn)在圖像坐標(biāo)系下的坐標(biāo)。

(3)已知攝像機(jī)的內(nèi)參數(shù)矩陣。來求世界坐標(biāo)系與攝像機(jī)坐標(biāo)系之間的位姿變換矩陣[R|t]。

PnP 問題的一般示意圖如圖4 所示。

圖4 PnP 問題示意圖

2.3 PnP 位姿估計(jì)模型

在已知先驗(yàn)信息的基礎(chǔ)上,結(jié)合目標(biāo)檢測(cè)算法提供的圖像位置信息,建立PnP 位姿估計(jì)模型,在對(duì)匹配點(diǎn)的基礎(chǔ)上,先使用P3P 算法獲得模型下的初始轉(zhuǎn)換矩陣[R|T],然后構(gòu)建最小二乘問題,使用LM(Levenberg-Marquardt Method) 算法繼續(xù)對(duì)轉(zhuǎn)換矩陣進(jìn)行迭代求解,實(shí)現(xiàn)降低誤差的目的。整個(gè)位姿估計(jì)算法流程如圖5 所示。

圖5 整體位姿估計(jì)算法流程

首先結(jié)合物體與相機(jī)幾何信息構(gòu)建單應(yīng)性模型,結(jié)合已知先驗(yàn)信息與PnP 原理[16],可以建立PnP 位姿估計(jì)模型,本文將物體的投影按四邊形處理,得到的四邊形空間角點(diǎn)坐標(biāo)系模型如圖6所示。

圖6 四邊形空間角點(diǎn)坐標(biāo)系模型

基于PnP 問題的求解理論,為了同時(shí)保證求解的精度與算法的計(jì)算速度,實(shí)現(xiàn)較為精準(zhǔn)的實(shí)時(shí)位姿估計(jì),本文首先選用P3P 算法使用四對(duì)點(diǎn)中的三對(duì)點(diǎn)進(jìn)行計(jì)算得到,在圖6 中,分別連接A′、C′與a′、c′,A′、B′、C′、D′為水密接插件的4 個(gè)角點(diǎn),a′、b′、c′、d′為角點(diǎn)在相機(jī)成像平面上的投影,o′為相機(jī)的光心。首先,顯然圖中的三角形間存在對(duì)應(yīng)關(guān)系:Δo′a′b′-Δo′A′B′,Δo′b′c′-Δo′B′C′,Δo′a′c′-Δo′A′C′。對(duì)于三角形Δo′a′b和Δo′A′B′,由余弦定理可得式(6)。

對(duì)圖中另外兩組對(duì)應(yīng)三角形,同理可得式(7)。

對(duì)于式(7),等式兩邊同時(shí)除以o′C′2,然后記x=o′A′/o′C′,y=o′B′/o′C′,記v=o′B′2/o′C′2,uv=B′C′2/o′C′2,wv=A′C′2/o′C′2,則可得式(8)。

至此,在式(8)中,從圖像中點(diǎn)的位置可以得到3 個(gè)余弦角cos〈a′,b′〉、cos〈b′,c′〉、cos〈a′,c′〉,同時(shí),u=B′C′2/A′B′2、w=A′C′2/A′B′2可以通過真實(shí)世界坐標(biāo)系結(jié)合先驗(yàn)信息計(jì)算得到,所以未知量只有x、y,式(8)轉(zhuǎn)化成關(guān)于x、y的一個(gè)二元二次方程,將3 個(gè)點(diǎn)帶入,得到4 個(gè)解,然后將第4 點(diǎn)帶入,得到一個(gè)最優(yōu)解。

得到P3P 算法的最優(yōu)解后,構(gòu)建最小二乘問題,對(duì)位姿矩陣進(jìn)行迭代更新,降低誤差。在PnP問題的求解中,得到的位姿主要誤差產(chǎn)生于相機(jī)的重投影誤差。將變換矩陣的李代數(shù)表示為ξ。假設(shè)空間中實(shí)際點(diǎn)的世界坐標(biāo)為Pi=[Xi,Yi,Zi]i,i=1,2,…,M,實(shí)際點(diǎn)所對(duì)應(yīng)投影的像素坐標(biāo)為μi=[ui,vi],根據(jù)三維變換和李代數(shù),有

將前文得到的相機(jī)初始位姿作為exp(ξ^)的初值,將等式兩邊的誤差求和,構(gòu)建最小二乘問題,迭代求解使誤差最小化,誤差函數(shù)構(gòu)建如下。

然后對(duì)每個(gè)誤差項(xiàng)關(guān)于優(yōu)化變量的導(dǎo)數(shù)進(jìn)行求解,即線性化:e(x+Δx)≈e(x)+J Δx(13),然后將雅可比矩陣J 代入,利用鏈?zhǔn)椒▌t進(jìn)行求導(dǎo)。

LM 算法是基于信賴區(qū)域理論進(jìn)行求解非線性最小二乘的算法[17],基于上述計(jì)算,使用LM 算法進(jìn)行迭代運(yùn)算,每次迭代的增量公式如下。

然后將Δx帶入增益比例p公式。

每次迭代后計(jì)算一次p,直到p大于閾值則迭代結(jié)束,判斷是否收斂,得到最終的優(yōu)化結(jié)果。

3 實(shí)驗(yàn)與分析

為了驗(yàn)證本文整體技術(shù)路線的可行性及有效性,同時(shí)分別對(duì)基于YOLOv3 的結(jié)構(gòu)改進(jìn)目標(biāo)檢測(cè)算法和PnP 位姿估計(jì)算法的效果進(jìn)行驗(yàn)證,設(shè)計(jì)系列相應(yīng)的實(shí)驗(yàn)進(jìn)行驗(yàn)證分析,實(shí)驗(yàn)部分算法運(yùn)行的計(jì)算機(jī)平臺(tái)處理器為i5-9300H,GPU 為GTX1660Ti。

實(shí)驗(yàn)主要分為3 部分:①測(cè)試本文目標(biāo)檢測(cè)網(wǎng)絡(luò)對(duì)水密接插件進(jìn)行檢測(cè)的性能,驗(yàn)證網(wǎng)絡(luò)結(jié)構(gòu)相關(guān)改進(jìn)的有效性;②驗(yàn)證本文位姿估計(jì)算法的可行性,評(píng)估本文迭代方法的誤差優(yōu)化效果;③進(jìn)行綜合實(shí)驗(yàn),驗(yàn)證本文技術(shù)路線及問題解決方法的可行性,評(píng)估位姿估計(jì)精度及實(shí)際適用范圍。

3.1 目標(biāo)檢測(cè)與跟蹤效果分析

首先進(jìn)行目標(biāo)檢測(cè)與跟蹤實(shí)驗(yàn),驗(yàn)證本文目標(biāo)檢測(cè)算法的性能,同時(shí)用改進(jìn)網(wǎng)絡(luò)結(jié)構(gòu)的YOLOv3算法與原始算法效果進(jìn)行對(duì)比,驗(yàn)證對(duì)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行改進(jìn)的有效性和效果。

在水箱中加入碎紙屑模擬海洋環(huán)境中的雜質(zhì),遮擋光源模擬海洋環(huán)境中的弱光情況,在搭建的水下環(huán)境中分別拍攝3 種水下接插件及工件不同姿態(tài)的圖像共1 500 幅制作實(shí)驗(yàn)驗(yàn)證集,在本文制作的驗(yàn)證集中分別使用3 種YOLOv3 網(wǎng)絡(luò)進(jìn)行檢測(cè)試驗(yàn),分析檢測(cè)效果與檢測(cè)框與物體切合程度。圖7為3 種網(wǎng)絡(luò)結(jié)構(gòu)檢測(cè)結(jié)果對(duì)比。

圖7 3 種網(wǎng)絡(luò)結(jié)構(gòu)檢測(cè)結(jié)果對(duì)比

從圖像對(duì)比可以看出,對(duì)YOLOv3 網(wǎng)絡(luò)進(jìn)行重新聚類之后,由對(duì)目標(biāo)整體進(jìn)行檢測(cè)改變?yōu)閷?duì)角點(diǎn)進(jìn)行檢測(cè),同時(shí)對(duì)YOLOv3 網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行改進(jìn),使得局部特征細(xì)節(jié)得以保留,在角點(diǎn)像素坐標(biāo)方面和檢驗(yàn)框與物體的切合度方面都有了良好的提升。定義角點(diǎn)輸出坐標(biāo)實(shí)驗(yàn)中的誤差為目標(biāo)物角點(diǎn)真實(shí)位置坐標(biāo)與估計(jì)得到對(duì)應(yīng)角點(diǎn)位置坐標(biāo)的偏差,分別使用絕對(duì)誤差和相對(duì)誤差對(duì)這個(gè)偏差進(jìn)行評(píng)估。真實(shí)坐標(biāo)與估計(jì)坐標(biāo)間的歐式距離定義為絕對(duì)誤差,使用絕對(duì)誤差與對(duì)應(yīng)位置距坐標(biāo)系原點(diǎn)歐氏距離的比值作為相對(duì)誤差。表2 是目標(biāo)角點(diǎn)真實(shí)像素坐標(biāo)與3 種網(wǎng)絡(luò)結(jié)構(gòu)輸出的物體角點(diǎn)坐標(biāo)對(duì)比,由表2 可得,改進(jìn)后的YOLOv3 網(wǎng)絡(luò)大大降低了輸出的角點(diǎn)像素坐標(biāo)誤差,與每點(diǎn)真實(shí)像素坐標(biāo)間的相對(duì)誤差平均在2%左右,基本上可以忽略不計(jì),相較于前兩種網(wǎng)絡(luò)像素坐標(biāo)精度提高了80%以上,為后續(xù)位姿估計(jì)提供了更為可靠的數(shù)據(jù),效果明顯。同時(shí)使用置信度0.5 進(jìn)行篩選后的結(jié)果對(duì)算法平均準(zhǔn)確度(Mean Average Precision,mAp)指標(biāo)進(jìn)行性能評(píng)估,使用YOLOv5x 及Faster R-CNN 網(wǎng)絡(luò)在本文驗(yàn)證集中進(jìn)行測(cè)試,表3 為改進(jìn)YOLOv3 方法與其他方法在驗(yàn)證集圖像檢測(cè)中的對(duì)比數(shù)據(jù)及網(wǎng)絡(luò)結(jié)構(gòu)的相關(guān)性能對(duì)比,可見,在驗(yàn)證集中本文改進(jìn)YOLOv3 算法在平均準(zhǔn)確度及處理速度上均有提升,且網(wǎng)絡(luò)性能相較于目前較新的YOLOv5 和Faster R-CNN 目標(biāo)檢測(cè)網(wǎng)絡(luò)相當(dāng),且處理速度較快,同時(shí)改進(jìn)后網(wǎng)絡(luò)結(jié)構(gòu)更加簡(jiǎn)單有利于水下的離線移植實(shí)現(xiàn),能夠滿足水下自主作業(yè)場(chǎng)景中實(shí)時(shí)跟蹤檢測(cè)任務(wù)的需要。

表2 角點(diǎn)像素坐標(biāo)

表3 海南島水邊線提取結(jié)果對(duì)比

考慮水下的應(yīng)用場(chǎng)景,在實(shí)際的海洋應(yīng)用場(chǎng)景中噪聲的影響不可忽視,盡管實(shí)驗(yàn)環(huán)境中對(duì)海洋環(huán)境進(jìn)行了模擬,但與實(shí)際海洋環(huán)境仍有一定差距,因此對(duì)拍攝得到的3 種不同工件圖像添加不同信噪比的高斯白噪聲后進(jìn)行檢測(cè)并輸出角點(diǎn)坐標(biāo),驗(yàn)證本文算法應(yīng)對(duì)噪聲干擾的魯棒性,實(shí)驗(yàn)結(jié)果如圖8所示,在不同噪聲情況下網(wǎng)絡(luò)輸出的角點(diǎn)坐標(biāo)與誤差如表4 所示。

由圖8 和表4 可得,本文目標(biāo)檢測(cè)網(wǎng)絡(luò)在應(yīng)對(duì)噪聲干擾的魯棒性較好,在表4 中,隨著噪聲的添加,同一姿態(tài)下同一物體的角點(diǎn)輸出坐標(biāo)相對(duì)誤差和絕對(duì)誤差均有所增加,但誤差均保持在5%以內(nèi),且與未添加噪聲時(shí)的估計(jì)結(jié)果相比,像素誤差增大值保持在3 個(gè)像素以內(nèi),由圖8 的檢測(cè)效果可以看出本文檢測(cè)網(wǎng)絡(luò)在面對(duì)噪聲干擾時(shí)對(duì)目標(biāo)的檢測(cè)具有一定的魯棒性。同樣的在相同噪聲條件下網(wǎng)絡(luò)對(duì)紅色接插件的檢測(cè)效果最好,輸出的角點(diǎn)坐標(biāo)誤差最低,對(duì)黑色工件檢測(cè)輸出的角點(diǎn)坐標(biāo)誤差較高,這是受到水下成像環(huán)境的影響,紅色在水下環(huán)境中的特征更加明顯,所以會(huì)有較好的檢測(cè)效果,但誤差相對(duì)最高的黑色工件輸出的角點(diǎn)誤差也保持在5%左右,在上述實(shí)驗(yàn)中,最高為5.13%,滿足后續(xù)位姿估計(jì)的需求。

表4 不同噪聲情況下角點(diǎn)坐標(biāo)誤差

圖8 添加噪聲情況下檢測(cè)效果

3.2 PNP 位姿估計(jì)模型的驗(yàn)證及分析

在對(duì)位姿估計(jì)模型的驗(yàn)證分析中,首先進(jìn)行靜態(tài)圖像的實(shí)驗(yàn)驗(yàn)證,第一步進(jìn)行物體深度估計(jì)實(shí)驗(yàn),使用相機(jī)在水箱中拍攝得到的目標(biāo)圖像進(jìn)行驗(yàn)證,拍攝的目標(biāo)物體處于前文定義的零初始狀態(tài),相機(jī)拍攝時(shí)成像平面垂直于地面。分別將物體放置在100 mm、150 mm、200 mm、250 mm、300 mm、350 mm、400 mm、450 mm 和500 mm 處,每種距離下拍攝10 幅靜態(tài)圖像,最終在每種距離情況下取10 次深度估計(jì)的均值與真實(shí)值進(jìn)行比較,分別使用本文算法和雙目匹配算法進(jìn)行深度估計(jì),最終的估計(jì)結(jié)果如表5 所示。在同一計(jì)算平臺(tái)下算法的運(yùn)行時(shí)間情況如表6 所示。

表5 深度估計(jì)結(jié)果

表6 算法實(shí)時(shí)性對(duì)比

從表5 可以發(fā)現(xiàn),在實(shí)驗(yàn)過程中,當(dāng)目標(biāo)處于100~500 mm 范圍內(nèi)時(shí),誤差控制在1%~4.5%,隨著相機(jī)距離目標(biāo)過近(100~200 mm)或者距離目標(biāo)過遠(yuǎn)(400~500 mm)時(shí),誤差會(huì)變大,但是也在滿足需求的范圍內(nèi),造成這個(gè)現(xiàn)象的原因主要是相機(jī)成像質(zhì)量的下降??梢酝ㄟ^提高相機(jī)像素來改善這種情況。

表6統(tǒng)計(jì)了兩種算法在同一計(jì)算平臺(tái)下對(duì)共90 幅圖像的深度估計(jì)使用的總時(shí)間,由表6 可以看出,本文提出算法對(duì)一幅圖像進(jìn)行估計(jì)的時(shí)間大約在95 ms,相較于雙目匹配算法使用的平均185 ms的時(shí)間,算法實(shí)時(shí)性大幅提升,同時(shí)結(jié)合表5 中深度估計(jì)結(jié)果對(duì)比,本文算法在近距離下(100~500 mm)的估計(jì)結(jié)果優(yōu)于雙目匹配算法,且能夠?qū)崿F(xiàn)對(duì)目標(biāo)的姿態(tài)估計(jì)。

然后進(jìn)行靜態(tài)圖像下的姿態(tài)估計(jì)實(shí)驗(yàn),在本文的應(yīng)用場(chǎng)景中,由于目標(biāo)物體是圓柱形物體,所以用于描述物體姿態(tài)只需要兩個(gè)旋轉(zhuǎn)角,這里使用飛機(jī)姿態(tài)角的命名方式,兩個(gè)角度分別是繞軸旋轉(zhuǎn)的俯仰角和繞軸旋轉(zhuǎn)的航向角。在水下將物體按照預(yù)設(shè)角度固定好,共8 種姿態(tài),每種姿態(tài)拍攝10 幅圖像,取10 次估計(jì)的均值,與真實(shí)姿態(tài)進(jìn)行對(duì)比。最終估計(jì)結(jié)果如表7 所示。

表7 姿態(tài)估計(jì)結(jié)果

由表中數(shù)據(jù)可以發(fā)現(xiàn),在一定范圍內(nèi)的姿態(tài)估計(jì)誤差基本保持在5%左右,并且在實(shí)驗(yàn)過程中對(duì)俯仰角θ的變化比較敏感,這是因?yàn)槿绻茸兓^一定范圍時(shí),相機(jī)在固定的情況下有可能無法從圖像中識(shí)別出全部4 個(gè)角點(diǎn),經(jīng)實(shí)驗(yàn)發(fā)現(xiàn),θ在-70?~50?時(shí),均能得到較為準(zhǔn)確的姿態(tài)估計(jì)效果,同時(shí)處理一幅圖像所需時(shí)間約為95 ms,滿足實(shí)時(shí)性的要求。

3.3 綜合實(shí)驗(yàn)與分析

為驗(yàn)證本文整套目標(biāo)識(shí)別跟蹤與位姿估計(jì)算法的有效性與實(shí)時(shí)性,設(shè)計(jì)水下目標(biāo)實(shí)時(shí)定位跟蹤實(shí)驗(yàn)。

在水箱環(huán)境中選取3 個(gè)不同位置,保證3 個(gè)位置都在相機(jī)視野內(nèi)。實(shí)驗(yàn)前人工測(cè)量3 個(gè)位置在相機(jī)坐標(biāo)系下的真實(shí)坐標(biāo),每個(gè)位置都有預(yù)先設(shè)計(jì)好的物體位姿,實(shí)時(shí)監(jiān)測(cè)人工將物體從位置1 依次移動(dòng)到位置2、位置3,以及黑色和白色工件在位置4、5 和位置6、7 移動(dòng)的過程,過程中3 種不同物體在7 個(gè)位置時(shí)的實(shí)時(shí)估計(jì)結(jié)果如圖9 所示。俯仰角、航向角和深度估計(jì)值如表8 所示。

圖9 實(shí)時(shí)檢測(cè)結(jié)果

由表8 可以看出,3 種不同工件在7 個(gè)位置處的俯仰角、航向角和深度估計(jì)誤差均保持在5%左右,同時(shí)實(shí)時(shí)檢測(cè)過程中處理速度保持在15 FPS,說明本文的位姿估計(jì)算法是合理有效的,能夠滿足水下自主作業(yè)應(yīng)用中實(shí)時(shí)性和準(zhǔn)確性的要求。但存在一定的適用范圍限制,當(dāng)物體的俯仰角度過大即朝正方向或者負(fù)方向旋轉(zhuǎn)超過約80?時(shí),相機(jī)無法將4 個(gè)角點(diǎn)全部拍攝到圖像中時(shí),則無法對(duì)位姿進(jìn)行估計(jì),部分估計(jì)失敗情況如圖10 所示。

圖10 部分估計(jì)失敗情況

表8 位姿估計(jì)結(jié)果

4 結(jié) 論

針對(duì)水下應(yīng)用場(chǎng)景中對(duì)已知先驗(yàn)信息目標(biāo)物體的目標(biāo)識(shí)別與位姿估計(jì)問題,提出了一種基于單目視覺的水下目標(biāo)檢測(cè)與實(shí)時(shí)位姿估計(jì)方法。首先,基于YOLOv3 算法,改進(jìn)網(wǎng)絡(luò)結(jié)構(gòu),重新聚類,提出了改進(jìn)YOLOv3 算法,實(shí)現(xiàn)了對(duì)目標(biāo)物體的檢測(cè)與跟蹤,改進(jìn)后網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜度降低,有利于水下場(chǎng)景中的移植實(shí)現(xiàn)。同時(shí)為后續(xù)位姿估計(jì)算法提供像素坐標(biāo)信息。然后,結(jié)合目標(biāo)物體的已知先驗(yàn)信息與計(jì)算機(jī)視覺原理,建立單應(yīng)性模型,通過單應(yīng)性模型來求解物體位姿,同時(shí)為了解決直接求解計(jì)算資源需求大的問題,構(gòu)建PnP 模型,基于PnP 問題的基礎(chǔ)上使用P3P 加LM 算法迭代的方法,獲取相機(jī)坐標(biāo)系與世界坐標(biāo)系間的轉(zhuǎn)換關(guān)系,進(jìn)而求解單應(yīng)性矩陣,不僅滿足實(shí)時(shí)性的需求,同時(shí)通過迭代提高了求解精度,還能滿足相機(jī)坐標(biāo)系變化的情況。整體方法能夠?qū)崿F(xiàn)面向水下場(chǎng)景的目標(biāo)物連續(xù)幀圖像實(shí)時(shí)位姿估計(jì)。

實(shí)驗(yàn)結(jié)果表明,本文方法能夠基于單目視覺對(duì)水下目標(biāo)進(jìn)行實(shí)時(shí)的檢測(cè)跟蹤與位姿估計(jì),與現(xiàn)有的雙目匹配算法相比實(shí)時(shí)性較好,且誤差較低,在一定的姿態(tài)范圍內(nèi)具有較好的檢測(cè)效果,且對(duì)噪聲干擾具有一定的魯棒性,能夠以較為靈活簡(jiǎn)單的單目視覺系統(tǒng)為水下自主作業(yè)提供需要的位置信息。

猜你喜歡
角點(diǎn)位姿姿態(tài)
攀爬的姿態(tài)
全新一代宋的新姿態(tài)
汽車觀察(2018年9期)2018-10-23 05:46:40
跑與走的姿態(tài)
基于FAST角點(diǎn)檢測(cè)算法上對(duì)Y型與X型角點(diǎn)的檢測(cè)
基于邊緣的角點(diǎn)分類和描述算法
電子科技(2016年12期)2016-12-26 02:25:49
基于共面直線迭代加權(quán)最小二乘的相機(jī)位姿估計(jì)
基于CAD模型的單目六自由度位姿測(cè)量
基于圓環(huán)模板的改進(jìn)Harris角點(diǎn)檢測(cè)算法
小型四旋翼飛行器位姿建模及其仿真
基于幾何特征的快速位姿識(shí)別算法研究
东乡县| 五河县| 陇川县| 绥江县| 田林县| 昌乐县| 托里县| 海口市| 离岛区| 正镶白旗| 宽甸| 闸北区| 荣成市| 龙门县| 东乌| 阿图什市| 晋城| 任丘市| 博客| 平泉县| 博乐市| 观塘区| 萨嘎县| 双牌县| 平湖市| 保德县| 镇康县| 桐城市| 体育| 芦山县| 古交市| 申扎县| 庄河市| 邹平县| 耿马| 武邑县| 古交市| 忻州市| 景德镇市| 大余县| 垦利县|