姜春萌,吳翔,楊拴柱



摘要:大壩、水閘、泵站等水工建筑結(jié)構(gòu)在施工時可能存在某些缺陷,特別隨著水工建筑物的服役期限逐漸增長,由于水流侵蝕和凍融風(fēng)化作用,其水下結(jié)構(gòu)會出現(xiàn)裂縫、凹坑、侵蝕等缺陷,嚴(yán)重影響水工建筑的服役安全。文章提出基于雙目視覺技術(shù)提高水工建筑水下檢測任務(wù)完成質(zhì)量。首先進(jìn)行水下雙目相機(jī)標(biāo)定,然后采用改進(jìn)人工魚群算法應(yīng)用于最大熵閾值法完成水下圖像分割,圖像分割結(jié)果突出檢測目標(biāo)特征,為水下檢測工作提供了參考和依據(jù)。
關(guān)鍵詞:雙目視覺;水工建筑;水下檢測
中圖分類號:TP319? ? ? ? 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2022)33-0007-03
針對水工建筑水下檢測任務(wù),可以安排潛水員通過目視、水下攝像等方式進(jìn)行水下檢測作業(yè),但手工檢測技術(shù)對潛水操作技能和潛水員的水下操作經(jīng)驗(yàn)要求較高,并且測試結(jié)果不夠準(zhǔn)確、客觀[1]。相比而言,通過搭載攝像設(shè)備的水下潛器來完成水工建筑水下檢測任務(wù),則能實(shí)現(xiàn)更高的工作效率和檢測精度。
雙目視覺測量方法憑借著效率高、精度適宜、系統(tǒng)結(jié)構(gòu)簡單、成本低等優(yōu)點(diǎn),已逐漸在非接觸檢測領(lǐng)域得到了廣泛應(yīng)用。同時,自主水下機(jī)器人由于大多通過鋰電池提供動力,可實(shí)現(xiàn)一定負(fù)載下的連續(xù)巡航與較大范圍自主作業(yè)。因此,以自主水下機(jī)器人為載體,采用雙目視覺技術(shù)對水工建筑服役狀態(tài)進(jìn)行檢測,為水工建筑水下檢測作業(yè)提供了新的探索和實(shí)踐途徑。
1 水下相機(jī)標(biāo)定
雙目視覺是一種模擬人眼進(jìn)行定位的技術(shù),通過兩個型號相近或相同的相機(jī)從不同角度對同一目標(biāo)進(jìn)行拍攝,基于視差原理,利用三角測量法對目標(biāo)進(jìn)行定位,從而恢復(fù)目標(biāo)的三維幾何信息[2]。實(shí)現(xiàn)上述目標(biāo)的一個主要環(huán)節(jié)是相機(jī)標(biāo)定,它是三維世界坐標(biāo)轉(zhuǎn)換到二維圖像坐標(biāo)投影參數(shù)求解的過程。具體而言,相機(jī)標(biāo)定的目的是獲得兩個攝像機(jī)的空間位置關(guān)系,具體包括求解左右相機(jī)內(nèi)參數(shù)矩陣、畸變系數(shù)矩陣、攝像頭之間的平移矩陣和旋轉(zhuǎn)矩陣。
首先,對左、右攝像頭分別進(jìn)行單目標(biāo)定,獲得左右相機(jī)內(nèi)參數(shù)矩陣和畸變系數(shù)矩陣,包括焦距([fx],[fy])、圖像中心([cx],[cy])、畸變系數(shù)([k1],[k2],[p1],[p2],[k3])以及兩個攝像頭分別相對標(biāo)定物的旋轉(zhuǎn)矩陣([Rl],[Rr])和平移矩陣([Tl],[Tr])。接下來,依照下列關(guān)系可以得到右攝像頭向左攝像頭的平移矩陣[T]和旋轉(zhuǎn)矩陣[R]。
[Pl=RlPW+Tl]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(1)
[Pr=RrPW+Tr]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (2)
[Pr=RPl+T]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(3)
其中,[PW]是空間中的一點(diǎn)[P]在世界坐標(biāo)系下的坐標(biāo),[Pl]和[Pr]是其在左右攝像機(jī)坐標(biāo)系下的坐標(biāo)。由此可得:
[R=RrRTl]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (4)
[T=Tr-RTl]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (5)
標(biāo)定過程中,保持處于平行軸的雙目相機(jī)位置不動,通過變換標(biāo)定板的位姿,左、右水下相機(jī)各采集16張標(biāo)定圖像。鑒于水下機(jī)器人執(zhí)行水下檢測任務(wù)時的主要目標(biāo)是變形的開裂、隆起、滲漏等[3],因此標(biāo)定板布置在離相機(jī)15cm~20cm處,雙目相機(jī)物理基線距離為80mm。為了獲取圖像的畸變信息,標(biāo)定板處于圖像的不同位置。水下場景相機(jī)內(nèi)參數(shù)標(biāo)定圖像如下所示。
出于標(biāo)定精度和操作便利性考量,本文選用Matlab軟件完成雙目相機(jī)的水下標(biāo)定實(shí)驗(yàn)。標(biāo)定完成后可以得到每組圖片的重投影誤差,由標(biāo)定結(jié)果可知,均重投影誤差為0.24pixels,如圖3所示,同時得到相機(jī)相關(guān)參數(shù)數(shù)據(jù),如圖4所示。
2基于改進(jìn)人工魚群算法的最大熵水下圖像分割
圖像分割是目標(biāo)識別預(yù)處理的關(guān)鍵步驟。特別在執(zhí)行水下檢測任務(wù)過程中,由于江河水質(zhì)的復(fù)雜性,導(dǎo)致光線在水下的傳播有折射、散射等現(xiàn)象的同時,渾濁的水質(zhì)和湍流也是導(dǎo)致水下圖像退化、模糊的因素,這會為水工建筑水下檢測結(jié)果的識別帶來困難。針對水下圖像中部分目標(biāo)區(qū)域與背景區(qū)域間對比度較低、目標(biāo)分割結(jié)果與背景粘連或不完整等問題,采用改進(jìn)人工魚群算法對最大熵圖像分割進(jìn)行優(yōu)化。
基本人工魚群算法優(yōu)化原理是:一片水域中,魚生存數(shù)目最多的地方通常就是當(dāng)前水域中營養(yǎng)物質(zhì)最多的地方。人工魚所在的空間即為待優(yōu)化問題的解空間,人工魚當(dāng)前位置對應(yīng)的食物濃度[X]即為一個潛在解,在其視野范圍[Visual]內(nèi),對其他人工魚個體狀態(tài)[XV]進(jìn)行感知。如果[XV]優(yōu)于人工魚當(dāng)前位置狀態(tài)[X],那么該人工魚就根據(jù)判定條件[Evaluate()]執(zhí)行覓食[Prey()]、追尾[Follow()]、聚群[Swarm()]或隨機(jī)[Move()]行為向狀態(tài)[XV]前進(jìn)[Step]距離,到達(dá)狀態(tài)[Xnext]。如果[XV]沒能優(yōu)于人工魚當(dāng)前位置狀態(tài)[X],那么該人工魚繼續(xù)在視野范圍內(nèi)進(jìn)行搜索,以找到更優(yōu)的狀態(tài)。
a)覓食行為
假設(shè)人工魚[i]在當(dāng)前[t]時刻的狀態(tài)為[Xi],在視野范圍內(nèi)隨機(jī)感知到狀態(tài)[Xj=Xi+Visual?rand()],如果該視點(diǎn)所在位置的食物濃度[Yj]優(yōu)于其當(dāng)前所在位置的食物濃度[Yi](即[Yj>Yi] ),人工魚[i]朝[Xj]方向前進(jìn)一步,得到下一時刻狀態(tài):
[Xt+1i=Xti+Xj-XtiXj-Xti?Step?rand()]? ? ? ? ? ? ?(6)
否則,人工魚[i]重新隨機(jī)選擇視點(diǎn)[Xj],若嘗試[try_number]次后仍不滿足前進(jìn)條件,那么人工魚[i]隨機(jī)移動一步。
[Xt+1i=Xti+Visual?rand()]? ? ? ? ? ? ? ? ? ?(7)
b)追尾行為
假設(shè)人工魚[i]當(dāng)前[t]時刻的狀態(tài)為[Xi],感知到當(dāng)前鄰域內(nèi)[ns]個同伴中狀態(tài)[Xj]具有最高食物濃度[Yj]且擁擠度[δc]適宜(即[Yj/ns>δc?Yi]),人工魚[i]向[Xj]方向前進(jìn)一步。否則,人工魚[i]執(zhí)行覓食行為。
[Xt+1i=Xti+Xj-XtiXj-Xti?Step?rand()]? ? ? ? ? ? (8)
c)聚群行為
假設(shè)人工魚[i]當(dāng)前[t]時刻的狀態(tài)為[Xi],感知到當(dāng)前鄰域內(nèi)同伴數(shù)目[ns]及中心位置狀態(tài)[Xc]。如果同伴中心位置食物濃度較高且不太擁擠(即[Yc/ns>δc?Yi]),人工魚[i]向同伴中心位置[Xc]方向前進(jìn)一步。否則,人工魚[i]執(zhí)行覓食行為。
[Xt+1i=Xti+Xc-XtiXc-Xti?Step?rand()]? ? ? ? ? (9)
d)隨機(jī)行為
假設(shè)人工魚[i]當(dāng)前[t]時刻的狀態(tài)為[Xi],如果未能在視野范圍內(nèi)感知到比當(dāng)前更優(yōu)狀態(tài),人工魚[i]隨機(jī)選擇一個狀態(tài)并向該方向前進(jìn)一步。
人工魚群算法對初值和參數(shù)選擇要求不高,同時具備很強(qiáng)的全局搜索能力[4],但算法收斂速度相對較慢。針對此問題,結(jié)合最大熵圖像分割優(yōu)化中的特點(diǎn),引入自適應(yīng)視野和步長,同時強(qiáng)化追尾行為和聚群行為,以提高人工魚群算法的收斂速度和搜索精度。
在改進(jìn)的算法中,每條人工魚個體通過公告板信息計(jì)算出與當(dāng)前最優(yōu)個體的距離,并將該距離作為自身在下一次迭代時的視野范圍[Visual],同時根據(jù)預(yù)先設(shè)定的視步因子[aV∈[0,1]]計(jì)算下一次迭代時的步長[Step=aV?Visual]。
根據(jù)最大熵閥值法[5]圖像分割原理,圖像灰度級別[∈[0,l-1]],[t]是圖像分割閥值;[Pt=i=0tpi],其中[pi]是灰度級別是[i]的概率,目標(biāo)是選擇最優(yōu)的[t]使圖像熵[H(t)=-i=0tpiPtlnpiPt-i=t+1l-1pi1-Ptlnpi1-Pt]最大。對于多閥值,則變?yōu)檎业侥苁箞D像熵[H(t1,t2,...,tk)=-i=0t1piPt0lnpiPt0-i=t1+1t2piPt1lnpiPt1-...-i=til-1piPtklnpiPtk]最大的多閥值[tk]。
本文選擇2閥值實(shí)現(xiàn)圖像分割優(yōu)化,設(shè)定人工魚數(shù)量[total=20],嘗試次數(shù)[try_number=2],視野范圍[visual=8],步長[step=8],擁擠度因子[δ=0.7],算法迭代次數(shù)為50。選取2組水下檢測圖片結(jié)果進(jìn)行分割優(yōu)化后的結(jié)果如下:
從基于改進(jìn)人工魚群參數(shù)優(yōu)化算法的圖像分割結(jié)果可以看出,雖然初始水下圖像對比度較低模糊性較強(qiáng),但圖像分割效果較好,有效地保留了目標(biāo)的形狀信息,突出了檢測目標(biāo)的特征,為水工建筑水下缺陷的檢測和識別提供了有力依據(jù)。
3結(jié)論
面向水工建筑水下部分的檢測任務(wù),本文采用雙目視覺技術(shù)對目標(biāo)進(jìn)行圖像采集,完成了水下相機(jī)標(biāo)定,得到相機(jī)參數(shù),然后采用改進(jìn)人工魚群算法實(shí)現(xiàn)對最大熵閥值法參數(shù)優(yōu)化,完成水下圖像分割,得到的結(jié)果有效突出了目標(biāo)特征,驗(yàn)證了方法有效性,為實(shí)際水工建筑水下檢測作業(yè)提供了參考。
參考文獻(xiàn):
[1] 譚界雄,田金章,王秘學(xué).水下機(jī)器人技術(shù)現(xiàn)狀及在水利行業(yè)的應(yīng)用前景[J].中國水利,2018(12):33-36.
[2] 董鵬,周烽,趙悰悰,等.基于雙目視覺的水下海參尺寸自動測量方法[J].計(jì)算機(jī)工程與應(yīng)用,2021,57(8):271-278.
[3] 林泓,李靈汐.有纜遙控水下機(jī)器人在水利水電工程領(lǐng)域的應(yīng)用現(xiàn)狀與發(fā)展前景[J].新型工業(yè)化,2021,11(2):198-200.
[4] 伍鎣芮,張志勇.基于改進(jìn)粒子群人工魚群算法的二維熵多閾值快速圖像分割[J].現(xiàn)代計(jì)算機(jī),2021(1):56-61.
[5] 章毓晉.圖像分割[M].北京:科學(xué)出版社,2001.
【通聯(lián)編輯:唐一東】