付 豪,張 渤,杜京義,梁大明
(1.西安科技大學(xué) 通信與信息工程學(xué)院,陜西 西安 710054;2.西安科技大學(xué) 電氣與控制工程學(xué)院,陜西 西安 710054)
海運(yùn)船舶通常采用水尺計(jì)重的方式獲得貨物質(zhì)量[1],通過卸貨前后的六面水尺讀數(shù)獲得吃水深度的變化來計(jì)算船舶載運(yùn)貨物的質(zhì)量。獲得六面水尺讀數(shù)常見的方式為人工觀測(cè),這種傳統(tǒng)的方式受主觀性和環(huán)境的影響,容易造成較大的讀數(shù)誤差。除人工觀測(cè)的方法外,還有通過傳感器等輔助儀器測(cè)量的方法和圖像處理的方法。蓋志剛等[2]提出固定傳感器激光測(cè)量到水面的距離的方法。吳俊等[3]提出聲吶傳感器獲得輪廓線的方法。管利廣等[4]提出壓力傳感器與陀螺儀結(jié)合獲得載重量的方法。以上的外載輔助儀器容易受場(chǎng)景限制、海水腐蝕,因此更多的學(xué)者提出圖像處理的方法。在傳統(tǒng)的圖像處理方法中,吳海[5]提出透明水體邊緣檢測(cè),采用霍夫直線檢測(cè)水線,渾濁水體分析顏色分量確定感興趣區(qū)域(Region of Interest,ROI),邊緣檢測(cè)挑選合適分量,水平投影定位水線,彩色圖像RGB分割字符,采用平方差和(Sum of Squared Differences,SSD)相似度計(jì)算獲得匹配區(qū)域,然后仿射變換動(dòng)態(tài)匹配視頻。李錦峰[6]提出雙向提取的字符區(qū)域采用背景色填充,利用K-means聚類算法分割圖像,定位吃水線。但這些傳統(tǒng)的方法在遇到水尺受損、水面有浪花等復(fù)雜環(huán)境時(shí)表現(xiàn)較差。在采用深度學(xué)習(xí)方法中,吳禹辰[7]提出采用Faster R-CNN算法固定大小錨框標(biāo)定水尺位置,采用最小二乘法和3次樣條插值擬合,設(shè)計(jì)了傾斜和非傾斜2種方法計(jì)算吃水線。此方法面對(duì)有浪花、船體斑駁等情況,對(duì)吃水線的定位精度會(huì)有所下降。張鋼強(qiáng)[8]采用語(yǔ)義分割的方法,分割水體與船體定位吃水線,采用單一灰度圖像最大穩(wěn)定極值區(qū)域(Maximally Stable Extremal Regions,MSER)與CIElab的L通道的MSER提取候選區(qū)域合并,選取blob特征分析對(duì)字符裁剪進(jìn)行識(shí)別。這種方法對(duì)吃水線的定位有顯著提升,但針對(duì)水尺字符傾斜角度較大的情況表現(xiàn)較差,其性能和魯棒性會(huì)較差。針對(duì)圖像的矯正,薛銀濤[9]提出手動(dòng)旋轉(zhuǎn)第一幀視頻圖像,之后的每一幀旋轉(zhuǎn)同樣的角度,但該方法自動(dòng)化程度不高且只適用于固定位置拍攝的情況。安鴻波[10]提出對(duì)二值化圖像進(jìn)行形態(tài)學(xué)處理,通過獲得字符與吃水線的走勢(shì)計(jì)算斜率進(jìn)而矯正圖像。然而,在夜間和船體受損的情況下,該方法效果表現(xiàn)不佳。
針對(duì)船體表面彎曲程度不同、水尺拍攝時(shí)間段不一、水尺標(biāo)志區(qū)域受損且存在傾斜等問題,本文提出一種基于場(chǎng)景自適應(yīng)的船舶吃水精確檢測(cè)方法,水尺計(jì)重會(huì)根據(jù)不同船型的彎曲程度有相應(yīng)公式修正,因此重點(diǎn)解決后兩點(diǎn)的場(chǎng)景問題,首先采用不同閾值的修正型伽馬矯正,改善夜間拍攝圖像的質(zhì)量,接著采用語(yǔ)義分割定位字符和吃水線排除水尺標(biāo)志區(qū)域受損的影響,再結(jié)合字符和吃水線的定位信息矯正圖像,然后裁剪字符進(jìn)行識(shí)別和精確定位,最后根據(jù)字符信息計(jì)算獲得吃水深度。本文方法解決了夜間拍攝識(shí)別困難的問題,對(duì)不同場(chǎng)景的拍攝都有較好的矯正效果,排除了水尺標(biāo)志區(qū)域受損的干擾,實(shí)現(xiàn)吃水深度的精確測(cè)量。
本文提出一種基于場(chǎng)景自適應(yīng)的船舶吃水值計(jì)算方法,主要分為四部分。首先,進(jìn)行圖像預(yù)處理,利用亮度公式確定是否需要增強(qiáng)圖像,并對(duì)需要增強(qiáng)的圖像采用修正型伽馬校正,以提升夜間拍攝圖像的質(zhì)量;其次,進(jìn)行圖像分割,利用改進(jìn)的語(yǔ)義分割算法對(duì)水體、水尺字符和船體進(jìn)行分割,定位吃水線和水尺字符;然后,進(jìn)行圖像矯正,結(jié)合水體分割圖像信息和水尺字符圖形信息,計(jì)算斜率并設(shè)計(jì)對(duì)應(yīng)坐標(biāo),采用投影變換對(duì)水尺進(jìn)行矯正;最后,進(jìn)行吃水值計(jì)算,利用矯正后的字符分割圖像的輪廓信息裁剪水尺字符,對(duì)大M字符二值化后進(jìn)行字符識(shí)別獲得數(shù)值信息,對(duì)小字符進(jìn)行邊緣檢測(cè),結(jié)合數(shù)值信息,利用吃水值的計(jì)算公式得到吃水值。吃水值計(jì)算流程如圖1所示。
圖1 吃水值計(jì)算流程Fig.1 Draft value calculation process
本文數(shù)據(jù)來源于海南某港口電廠,采集圖像時(shí)通常為電廠人員乘坐小艇在全天任意時(shí)間段拍攝,如圖2所示。在夜間采集時(shí),通常為手電照射水尺區(qū)域,然后采集圖像,采集到的圖像如圖2(a)所示,圖像出現(xiàn)光照不均勻,且水尺標(biāo)志出現(xiàn)高亮。此外,由于船只受海水腐蝕和靠岸側(cè)船體刮擦,工作人員的拍攝角度也受到限制,因此拍攝的圖像可能存在水尺區(qū)域缺失、白色字符脫色、水尺標(biāo)志傾斜和水面有浪花等情況。這些因素都會(huì)對(duì)船舶吃水值的計(jì)算造成很大困難。拍攝圖像時(shí)存在諸多不利因素,例如光線環(huán)境變化、水尺損傷和傾斜等,多數(shù)拍攝圖像存在字符傾斜的情況,因此需要一種算法來自適應(yīng)不同的場(chǎng)景。
(a)夜間拍攝
(b)船體銹蝕
(c)浪花干擾
(d)字符缺損
受港口環(huán)境和拍攝方式的限制,采集到的水尺圖像往往需要進(jìn)行預(yù)處理。觀察可知,夜間拍攝和白天拍攝的圖像存在明顯的亮度差異,字符區(qū)域不清晰。因此,本文采用亮度公式判定圖像是否需要進(jìn)行亮度增強(qiáng)。首先,計(jì)算圖像RGB三通道的像素均值;然后,利用式(1)求得圖像的亮度表達(dá)值。針對(duì)多張白天與夜間拍攝的圖像分別進(jìn)行計(jì)算并分析二者亮度表達(dá)值的分布情況,如圖3所示。由于夜間拍攝也存在光照良好情況,所以設(shè)置亮度表達(dá)值的閾值為100,將小于此閾值的圖形進(jìn)行亮度增強(qiáng),提高較暗區(qū)域的亮度,使得水體和字符能夠更加突出。
圖3 夜間與白天拍攝圖像的亮度分布Fig.3 Brightness distribution of images taken at night and during the day
亮度公式如下:
Y=0.299×R+0.587×G+0.114×B,
(1)
式中:R、G、B為圖片的顏色分量,Y為求得的亮度表達(dá)值。
針對(duì)圖像的亮度增強(qiáng),常見的方式如下:
方式1是對(duì)圖像的HSV顏色分量中的V分量進(jìn)行直方圖均衡化[11],壓制圖像高亮區(qū)域,提亮圖像暗區(qū)域,這種方式對(duì)于亮度表達(dá)值較小的圖像會(huì)出現(xiàn)嚴(yán)重的色彩失真,對(duì)后續(xù)的圖像分割任務(wù)有重要影響。
方式2是對(duì)圖像采用伽馬校正,通過非線性變換,解決圖像過暗和過亮問題。其中,伽馬值為最重要的參數(shù),當(dāng)伽馬值大于1時(shí),用于校正較亮的圖像;小于1時(shí),用于校正較暗的圖像。手動(dòng)調(diào)節(jié)伽馬值可以通過觀測(cè)找到最佳校正的伽馬值,但不適用于大批量的圖像處理。文獻(xiàn)[12]提出的自適應(yīng)伽馬校正,通過假設(shè)正常圖像的像素均值為0.5,計(jì)算目標(biāo)圖像的平均亮度,并分別對(duì)其取對(duì)數(shù)相除,以獲取伽馬值,使得目標(biāo)圖像的直方圖向中心靠近。這種方式對(duì)于不太暗的圖像可以獲得的較好校正效果,但是對(duì)于太暗的圖像校正結(jié)果會(huì)出現(xiàn)偏色。
因此,提出了一種修正型的伽馬校正,采用分段函數(shù)對(duì)小于0.5的伽馬值進(jìn)行上調(diào),大于0.5的不進(jìn)行修改,用上述RGB三通道得到的亮度表達(dá)值歸一化后代替原公式中用圖像灰度化求均值得到的平均亮度,使其計(jì)算值更準(zhǔn)確。圖像預(yù)處理結(jié)果如圖4所示。經(jīng)實(shí)驗(yàn),修正后伽馬值對(duì)整體圖像校正效果更好,適應(yīng)性增強(qiáng)。
(a)原圖
(b)方式1
(c)方式2
(d)本文方法
本文采用的修正型伽馬校正公式如下:
(2)
(3)
式中:Y/255為亮度表達(dá)值歸一化,γ為未修正的伽馬值,伽馬為采用分段函數(shù)進(jìn)行修正獲得伽馬值。
在水尺深度的測(cè)量中,圖像的分割任務(wù)尤為重要。傳統(tǒng)的分割方法會(huì)受圖像場(chǎng)景變換的影響。沒有風(fēng)浪、船體無污染以及照充足時(shí)拍攝的圖像,傳統(tǒng)圖像分割方法可以準(zhǔn)確地定位吃水線以及字符,圖像的矯正工作也會(huì)減輕,計(jì)算結(jié)果相對(duì)準(zhǔn)確。但實(shí)地環(huán)境以及船體是多變的,復(fù)雜的背景難以取得良好的效果,并進(jìn)而影響吃水深度的計(jì)算。因此,針對(duì)船舶水尺圖像中船體和水尺標(biāo)志損傷,采用傳統(tǒng)的圖像處理技術(shù)已經(jīng)不能滿足要求,對(duì)水線和字符的定位工作就難以進(jìn)行。目前采用語(yǔ)義分割的方式已經(jīng)在分割船體和水體取得了很好的結(jié)果。語(yǔ)義分割的模型眾多,例如FCN[13]、DeepLab[14]、SegNet[15]和PSPNet[16]。本文選用常用于醫(yī)學(xué)圖像分割的UNet[17]網(wǎng)絡(luò),其采用編碼(encoder)與解碼(decoder)的U型結(jié)構(gòu),在醫(yī)學(xué)中的CT掃描影像、顯微圖像等的分割任務(wù)中有著出色的表現(xiàn)。針對(duì)船舶水尺的水體與字體分割任務(wù)中,目標(biāo)的特征較為單一,但其水尺標(biāo)志區(qū)域受外界因素的影響會(huì)有不同程度的損傷,這對(duì)目標(biāo)分割的精細(xì)化是一項(xiàng)挑戰(zhàn)。因此,對(duì)原UNet進(jìn)行改進(jìn),采用特征提取能力較好的VGG網(wǎng)絡(luò)替換原主干網(wǎng)絡(luò)。VGG每一層的卷積提取的特征并不一定是關(guān)鍵特征,因此在編碼與解碼的跳躍連接中增加混合注意力機(jī)制(Convolutional Block Attention Module,CBAM)以提高網(wǎng)絡(luò)對(duì)字符與水體區(qū)域的關(guān)注,細(xì)化目標(biāo)區(qū)域的特征提取。修改損失函數(shù),采用Focal Loss作為損失函數(shù),讓網(wǎng)絡(luò)更注重解決相對(duì)難分割的字符樣本,提高分割的精度。改進(jìn)后的UNet網(wǎng)絡(luò)結(jié)構(gòu)圖如圖5所示。
圖5 改進(jìn)后的UNet網(wǎng)絡(luò)結(jié)構(gòu)Fig.5 Diagram of the improved UNet network structure
CBAM為融合通道注意力(Channel Attention Model,CAM)和空間注意力(Spatial Attention Model,SAM)的混合注意力機(jī)制,CBAM結(jié)構(gòu)如圖6所示。在骨干網(wǎng)絡(luò)VGG提取的特征層與對(duì)應(yīng)上采樣進(jìn)行特征融合時(shí),將中間的特征層輸入CAM,獲取其通道上的注意力權(quán)重,再將結(jié)果傳到SAM獲得特征圖的空間注意力權(quán)重。經(jīng)過CBAM注意力機(jī)制處理,網(wǎng)絡(luò)更聚焦重要特征區(qū)域,抑制無關(guān)特征的影響。
圖6 CBAM結(jié)構(gòu)Fig.6 CBAM structure
流程公式如下:
(4)
(5)
式中:F為主干網(wǎng)絡(luò)提取特征圖,Mc為CAM特征圖,Ms為SAM特征圖,?表示元素級(jí)相乘。
替換原本的損失函數(shù),選用Focal Loss作為本文的損失函數(shù),目的是調(diào)整網(wǎng)絡(luò)對(duì)易分割目標(biāo)與難分割的權(quán)重分配,字符的分割相對(duì)于水體為難分割目標(biāo),因此選用Focal Loss解決字符的分割問題行之有效。
Focal Loss的公式如下所示,通過對(duì)交叉熵?fù)p失函數(shù)CE引入一個(gè)調(diào)節(jié)因子(1-p′)λ減小容易分類的樣本權(quán)重,關(guān)注難分類樣本。
(6)
(7)
(8)
式中:p為預(yù)測(cè)標(biāo)簽的置信度,λ為調(diào)節(jié)因子的調(diào)節(jié)參數(shù)。λ≥0,λ的值越大,易分類的loss越小,這就使模型關(guān)注難分類樣本。
由于拍攝角度受限,采集的圖像會(huì)出現(xiàn)不同程度的傾斜,傾斜圖像對(duì)于后期計(jì)算吃水值會(huì)有很大影響,若對(duì)傾斜圖像進(jìn)行計(jì)算,則需根據(jù)不同的傾斜情況設(shè)計(jì)不同的算法,且精度會(huì)有所偏差。所以,由上述得到的水體和字符的分割圖像對(duì)原圖像進(jìn)行矯正可以大大減少后期吃水值的計(jì)算難度,并且精度有所提高[18]。通過水體和字符的分割圖像可以計(jì)算吃水線和字符的斜率,利用斜率在原圖像上尋找4對(duì)相對(duì)應(yīng)的坐標(biāo)點(diǎn),采用投影變換對(duì)圖像進(jìn)行矯正。與矯正結(jié)果有著直接關(guān)系的是斜率的確定,因此針對(duì)兩斜率的計(jì)算設(shè)計(jì)如下2個(gè)算法流程。
(1)針對(duì)水體分割圖像
① 采用形態(tài)學(xué)處理,去除分割產(chǎn)生的雜點(diǎn)和填充細(xì)小的孔洞;
② 對(duì)①結(jié)果進(jìn)行canny邊緣檢測(cè),獲得吃水線的邊緣;
③ 對(duì)②結(jié)果采用輪廓檢測(cè)得到吃水線的點(diǎn)集;
④ 對(duì)③結(jié)果采用最小二乘法擬合得到水線的斜率。
對(duì)于吃水線斜率算法設(shè)計(jì),采用canny邊緣檢測(cè)[19]算法對(duì)二值圖像的邊緣查找要好于其他邊緣檢測(cè)算法,不會(huì)出現(xiàn)吃水線邊緣未檢測(cè)到和邊緣存在大空洞的情況。沒有對(duì)圖像直接進(jìn)行輪廓檢測(cè)獲取吃水線點(diǎn)集,是因?yàn)檩喞獣?huì)包含圖片的邊框,需設(shè)計(jì)另外的算法對(duì)其進(jìn)行去除,適應(yīng)性差且圖像處理速度變慢。
(2)針對(duì)字符分割圖像
① 采用形態(tài)學(xué)處理,去除分割產(chǎn)生的雜點(diǎn)和填充細(xì)小的孔洞;
② 對(duì)①結(jié)果中字符的每個(gè)連通區(qū)域進(jìn)行最小外接矩形擬合獲得連通區(qū)域的中心坐標(biāo);
③ 對(duì)②中心坐標(biāo)的集合進(jìn)行外接矩形擬合,獲得穿過中心坐標(biāo)點(diǎn)最多的直線;
④ 計(jì)算②獲得的所有中心坐標(biāo)到③獲得直線的距離,采用大于距離集合均值剔除的算法,去除離群點(diǎn);
⑤ 采用最小二乘法擬合④的結(jié)果點(diǎn)集,獲得字符的斜率。
對(duì)于字符的斜率算法設(shè)計(jì),采用連通區(qū)域的外接矩形中心點(diǎn)再次進(jìn)行外接矩形擬合,可以很好地獲得所有中心點(diǎn)的大體走向,再利用距離信息剔除離群的點(diǎn),最后采用最小二乘法擬合直線,可以得到更加精準(zhǔn)的斜率,相對(duì)于直接對(duì)中心坐標(biāo)進(jìn)行最小二乘法擬合直線,效果要更好。算法的結(jié)果和比較如圖7所示,其中圖7(e)中的實(shí)線為剔除離群點(diǎn)的結(jié)果,虛線為直接擬合直線的結(jié)果。
(a)原圖
(b)水體分割圖
(c)字符分割圖
(d)字符連通區(qū)域中心點(diǎn)擬合
(e)字符2種擬合直線結(jié)果
(f) 最終擬合斜率
最小二乘法是一種數(shù)學(xué)優(yōu)化技術(shù),通過最小化誤差的平方和尋找數(shù)據(jù)的最佳函數(shù)匹配。假設(shè)一組坐標(biāo)樣本為((x1,y1),(x2,y2),…,(xn,yn)),對(duì)樣本進(jìn)行直線擬合,直線公式設(shè)為y=kx+b。通過使損失函數(shù)值最小,求得k和b的值如下:
(9)
(10)
根據(jù)吃水線和字符的斜率,采用投影變換對(duì)圖像進(jìn)行矯正,投影變換是將圖像投影到一個(gè)新的視平面,即正面拍攝水尺圖像的效果。投影變換需要4組兩兩對(duì)應(yīng)的坐標(biāo),通過計(jì)算得到變換矩陣[20],對(duì)原圖進(jìn)行矯正,由于矯正后的圖像會(huì)出現(xiàn)圖像缺失,因此為保證圖像的字符較好地保留下來,對(duì)坐標(biāo)的選定為圖7(f)中白線與圖片的邊框的交點(diǎn)和以白線的交點(diǎn)為十字中心的正十字線與圖片的邊框的交點(diǎn)作為4組對(duì)應(yīng)點(diǎn)。圖像矯正結(jié)果如圖8所示,矯正之后可以很好地保留圖像的有效區(qū)域且結(jié)果較為準(zhǔn)確,便于后續(xù)吃水值的計(jì)算。
圖8 圖像矯正結(jié)果Fig.8 Image correction results
投影變換算法公式如下:
(11)
(12)
式中:(x0,y0)為原圖像中的坐標(biāo)點(diǎn),(X,Y,Z)為變換后的目標(biāo)點(diǎn),通過4組對(duì)應(yīng)的坐標(biāo)點(diǎn)即可求出矩陣中a11,a12,…,a33的值,其中a33=1。
吃水值的計(jì)算,需要大M字符的數(shù)值和字符與水線的位置。水線的位置信息在圖像矯正的過程已經(jīng)獲得,因此只需獲得字符的位置信息和靠近吃水線的大M字符的數(shù)值。
(1)大M字符數(shù)值的確定
在矯正原圖的同時(shí)對(duì)字符的分割圖像進(jìn)行矯正,對(duì)字符的矯正結(jié)果進(jìn)行輪廓檢測(cè),通過獲得的輪廓信息裁剪原圖中的大M字符,將裁剪的左側(cè)大米數(shù)的字符進(jìn)行大律法二值化,再對(duì)二值化圖像進(jìn)行字符識(shí)別,獲得字符的數(shù)值。采用大律法可以更好地得到描述字符特征的二值圖像,相對(duì)于原圖,裁剪后的圖像二值化效果更佳。
(2)字符位置的確定
對(duì)裁剪的右側(cè)字符進(jìn)行高斯濾波然后邊緣檢測(cè),通過水平投影的方法獲得頂部位置,由于光照會(huì)在字符的左、右下側(cè)產(chǎn)生陰影,對(duì)字符的頂部沒有影響。因此使用相鄰字符頂部像素距離與實(shí)際距離的比值作為像素比例尺,最終計(jì)算底部字符到水線的距離通過計(jì)算公式得到吃水值。針對(duì)有波浪情況下采集的水尺視頻,可對(duì)連續(xù)的讀數(shù)結(jié)果進(jìn)行周期化,之后取平均值,能有效降低波浪對(duì)讀數(shù)精度的影響;針對(duì)字符白色漆料缺失等情況下,采用邊緣檢測(cè)可有效避免其造成像素比例無法正確計(jì)算和吃水值出現(xiàn)大誤差的問題,算法的適應(yīng)性更強(qiáng)。吃水值計(jì)算過程如圖9所示。
(a)分割字符矯正
(b)大M字符裁剪與二值化
(c)小字符裁剪
(d)邊緣檢測(cè)
(e)水平投影
吃水值計(jì)算示意如圖10所示,標(biāo)準(zhǔn)船只的小字符的高度為10 cm,假設(shè)字符6和8的頂部像素距離為S2,字符6與水線的像素距離為S1,大M字符的下方有2個(gè)字符,設(shè)吃水值為D,吃水值的計(jì)算公式為:
(13)
圖10 吃水值計(jì)算示意Fig.10 Schematic diagram of draft value calculation
針對(duì)夜間圖像的處理結(jié)果如圖11所示,從左向右圖像亮度依次降低,V分量直方圖均衡化方法會(huì)使圖像出現(xiàn)嚴(yán)重偏色,自適應(yīng)伽馬校正的方法在圖像亮度較低時(shí)會(huì)出現(xiàn)過度校正,圖像會(huì)偏白失真。與二者比較可以看出經(jīng)過修正后伽馬值校正效果更佳,在圖像不失真的情況下最大可能凸顯水尺標(biāo)志與水體。
(a)場(chǎng)景1 (b)場(chǎng)景2 (c)場(chǎng)景3
實(shí)驗(yàn)數(shù)據(jù)經(jīng)過剔除無效圖像后,包含1 035張白天采集圖像和150張夜間采集圖像。對(duì)夜間采集的圖像經(jīng)過修正型伽馬校正后與白天采集的圖像放在一起,采用百度飛槳提供的半自動(dòng)打標(biāo)簽軟件EIseg對(duì)所有的圖像進(jìn)行標(biāo)注,標(biāo)注類別為字符和水體。如標(biāo)注圖像的示意如圖12所示,分為字符的標(biāo)注區(qū)域、水體的標(biāo)注區(qū)域和船體區(qū)域。
圖12 圖像標(biāo)注示意Fig.12 Illustration of the image annotation
數(shù)據(jù)集中訓(xùn)練集與驗(yàn)證集的比例劃分為4∶1,采用Windows 10操作系統(tǒng)實(shí)現(xiàn),硬件環(huán)境如下:CPU為Intel(R) Xeon(R) CPU E5-2640 @2.40 GHz、GPU為NVIDIA Quadro P2200,后期可使用更高規(guī)格的GPU進(jìn)一步提高檢測(cè)速度。算法采取了凍結(jié)網(wǎng)絡(luò)主干和解凍訓(xùn)練結(jié)合的方式進(jìn)行訓(xùn)練,訓(xùn)練均采用遷移學(xué)習(xí),以加快模型的收斂,特征提取網(wǎng)絡(luò)權(quán)重均為數(shù)據(jù)集VOC2007訓(xùn)練權(quán)重,訓(xùn)練總輪次為300,50次凍結(jié)訓(xùn)練加250次解凍訓(xùn)練,基本學(xué)習(xí)率為0.001,下采樣倍數(shù)為16,輸入圖像的尺寸為512 pixel×512 pixel,凍結(jié)訓(xùn)練和解凍訓(xùn)練的batch-size分別為8和4。訓(xùn)練300次后,訓(xùn)練集和驗(yàn)證集的損失值曲線如圖13所示,可以看到模型的迭代已經(jīng)收斂。
圖13 訓(xùn)練集與驗(yàn)證集loss曲線Fig.13 Training loss curves versus validation loss curves
4.2.1 評(píng)價(jià)指標(biāo)
采用單個(gè)類別的交并比(Intersection over Union,IoU)、召回率(Recall)和精確率(Precision)作為衡量指標(biāo),單類別分析更能分析其分割效果。IoU為預(yù)測(cè)結(jié)果與真實(shí)標(biāo)簽交集與并集的比值,示意如圖14所示。
圖14 IoU示意Fig.14 Diagram of IoU
(14)
(15)
(16)
式中:FP為預(yù)測(cè)為真樣本,實(shí)際為假樣本的部分;TP為預(yù)測(cè)為真樣本,實(shí)際為真樣本的部分;FN為預(yù)測(cè)為假樣本,實(shí)際為真樣本的部分。
4.2.2 不同算法對(duì)比
為驗(yàn)證本文改進(jìn)UNet的優(yōu)勢(shì),分別對(duì)比了幾個(gè)主流網(wǎng)絡(luò)在分割水體與字符的表現(xiàn)。不同模型分割結(jié)果的對(duì)比分析如表1所示,不同模型在水體的分割任務(wù)中的表現(xiàn)相差并不大,所以水體的分割不作為重點(diǎn)分析對(duì)象。不同模型分割結(jié)果如圖15所示。對(duì)于字符的分割,改進(jìn)的UNet對(duì)比幾個(gè)主流的網(wǎng)絡(luò),分割效果最好,對(duì)比采用ResNet50為特征提取網(wǎng)絡(luò)的UNet,IoU也提升了2.23%。
表1 不同模型分割結(jié)果對(duì)比Tab.1 Comparison of segmentation results of different models
(a)原圖 (b)標(biāo)簽 (c)HrNet (d)BiSeNetv2 (e)ABCNet (f)UNet (g)本文算法
4.2.3 消融實(shí)驗(yàn)
為驗(yàn)證特征提取網(wǎng)絡(luò)替換,以及添加注意力機(jī)制和修改損失函數(shù)的有效性,首先對(duì)不同的特征提取網(wǎng)絡(luò)替換進(jìn)行了評(píng)估,然后對(duì)增加注意力機(jī)制和修改損失函數(shù)進(jìn)行了評(píng)估。消融實(shí)驗(yàn)結(jié)果如表2所示,水體的分割結(jié)果已滿足檢測(cè)需求,因此只列出字符分割的評(píng)價(jià)指標(biāo)。
表2 消融實(shí)驗(yàn)Tab.2 Ablation experiment
觀察表2可知,對(duì)于字符這種特征較為單一的目標(biāo),ResNet的表現(xiàn)并不如VGG,在選用不同深度的VGG特征提取網(wǎng)絡(luò)中,VGG16的表現(xiàn)最佳,網(wǎng)絡(luò)深度的提升可能會(huì)造成梯度消失,對(duì)特征的提取效果會(huì)降低。字符的分割效果會(huì)一定程度影響圖像的校正效果,在添加了注意力機(jī)制與修改損失函數(shù)后,字符的IoU、Recall和Precision均有所提升,這對(duì)后續(xù)的圖像校正有著重大的作用。消融實(shí)驗(yàn)證明對(duì)UNet所做改進(jìn)的有效性。
針對(duì)水尺標(biāo)志圖像的矯正的實(shí)驗(yàn)部分結(jié)果如圖16所示,將不同場(chǎng)景下的水尺圖像進(jìn)行實(shí)驗(yàn)對(duì)比。傳統(tǒng)方式中,文獻(xiàn)[10]提出的經(jīng)過mean-shift濾波再自適應(yīng)閾值分割,針對(duì)圖像質(zhì)量較好的情況有著良好的表現(xiàn),根據(jù)設(shè)定的條件可以獲得字符和吃水線的斜率,圖像的矯正效果較好,但對(duì)于復(fù)雜的環(huán)境變化,如水面反光、水尺標(biāo)志區(qū)域受損以及光照條件差等情況,此方法不能取得穩(wěn)定的表現(xiàn)。本文依靠語(yǔ)義分割,在各種復(fù)雜場(chǎng)景都能取得良好效果,通過對(duì)輪廓以及邊緣信息的分析,矯正圖像的效果都要優(yōu)于傳統(tǒng)方式。
(a)水面反光 (b)船體受損 (c)夜間拍攝
吃水值計(jì)算結(jié)果如圖17所示,從上往下第2條紅色標(biāo)注線到第3條紅色標(biāo)注線的距離為最下方字符到吃水線的像素距離1;第1條紅色標(biāo)注線到第2條紅色標(biāo)注線為計(jì)算的像素距離2,用來計(jì)算像素比例尺;左上角為計(jì)算的吃水值。本文算法對(duì)于多種場(chǎng)景都有著很好的識(shí)別效果,讀數(shù)數(shù)據(jù)如表3所示,算法讀數(shù)的準(zhǔn)確以船方提供的標(biāo)準(zhǔn)讀數(shù)為準(zhǔn),本文的算法識(shí)別為像素級(jí)別的比例換算,結(jié)果達(dá)到毫米級(jí)別。
表3 讀數(shù)數(shù)據(jù)Tab.3 Reading data
(a)場(chǎng)景1 (b)場(chǎng)景2 (c)場(chǎng)景3
與標(biāo)準(zhǔn)讀數(shù)的誤差保持在上下3 cm內(nèi),讀數(shù)結(jié)果優(yōu)于人眼的直接估算,本文算法與人工讀數(shù)的誤差分布圖如圖18所示,人工讀數(shù)的穩(wěn)定性和低誤差性要差于本文算法。
圖18 誤差分布Fig.18 Error distribution
基于場(chǎng)景自適應(yīng)的船舶吃水值的計(jì)算方法,針對(duì)采集后的圖像數(shù)據(jù),采用圖像亮度增強(qiáng)有效地解決了夜間拍攝圖像難識(shí)別的問題,利用深度學(xué)習(xí)分割圖像,消除了船體有損傷造成的字符和吃水線難定位問題,對(duì)分割圖像的后處理,有效地提高了船舶吃水值的計(jì)算準(zhǔn)確度,這對(duì)后續(xù)的水尺計(jì)重提供了有力的保障。此外,考慮到語(yǔ)義分割對(duì)小目標(biāo)的分割精度會(huì)弱一些,因此字符的分割只作為字符初步定位,后續(xù)會(huì)對(duì)字符的分割進(jìn)一步研究,對(duì)算法的整個(gè)流程進(jìn)行優(yōu)化,使得算法的魯棒性更強(qiáng)。