程 健, 安鴻波, 郭一楠,3, 葉 亮
(1.煤炭科學(xué)研究總院 礦山大數(shù)據(jù)研究院,北京 100013; 2.中國礦業(yè)大學(xué) 信息與控制工程學(xué)院,江蘇 徐州 221116; 3.中國礦業(yè)大學(xué)(北京) 機(jī)電與信息工程學(xué)院,北京 100083)
水尺計(jì)重方法是船舶貨物計(jì)重的常用方法,通常由人工觀測(cè)進(jìn)行測(cè)定。受到人視覺觀測(cè)精度的限制,人工觀測(cè)水尺的方法勞動(dòng)強(qiáng)度大、效率低、誤差大。因此,亟待提出一種輪船吃水線測(cè)定算法,實(shí)現(xiàn)輪船貨物重量的精準(zhǔn)測(cè)量。這些測(cè)量算法需要滿足多個(gè)指標(biāo)的要求,如自動(dòng)化程度高、測(cè)量準(zhǔn)確且快速等指標(biāo),因此需要利用多目標(biāo)方法設(shè)計(jì)新算法。
研究人員先后提出基于壓力傳感器、激光水位、機(jī)器視覺的新型船舶水尺檢測(cè)算法。孫國元等[1]提出了采用船體兩側(cè)的壓力傳感器減少波浪、輪船搖晃等環(huán)境因素對(duì)測(cè)量結(jié)果的不利影響。陳文煒等[2]搭建了船舶吃水線檢測(cè)系統(tǒng),根據(jù)激光測(cè)距儀測(cè)出的基準(zhǔn)面和水面之間距離,獲得輪船的吃水量。但是,由于船體外側(cè)安裝壓力傳感器,整體安裝施工難度大;長時(shí)間工作在惡劣環(huán)境下,半導(dǎo)體硅片持續(xù)受壓變形,容易發(fā)生零點(diǎn)漂移,設(shè)備維護(hù)量大。激光水位檢測(cè)易受到水面漂浮物影響,測(cè)量精度和穩(wěn)定性難以保證;其設(shè)備只能安裝在輪船船體上,無法滿足航道管理部門對(duì)快速離船吃水線檢測(cè)的要求。
考慮到機(jī)器視覺算法不需要復(fù)雜的設(shè)備安裝,對(duì)環(huán)境適應(yīng)性好,周廣程[3]根據(jù)水尺線字符的特點(diǎn),利用HIS顏色空間信息,提出一種基于梯度幅度的啟發(fā)式邊緣提取算法。劉丹[4]針對(duì)彩色船體圖像,采用歐氏距離作為相似性度量,提取吃水線。Tsujii等[5]在提取船體字符的基礎(chǔ)上進(jìn)行模板匹配。Ran等[6]結(jié)合Canny邊緣檢測(cè)和Hough變換,估計(jì)吃水線的位置。類似以上各種吃水線檢測(cè)算法主要是通過固定相機(jī)采集吃水線所在區(qū)域圖像,采用圖像處理的方法實(shí)現(xiàn)船舶吃水線識(shí)別。此外,固定相機(jī)獲取船舶外弦吃水線圖像難度較大,也很難實(shí)現(xiàn)船舶吃水線區(qū)域的快速精準(zhǔn)定位。
鑒于此,本文構(gòu)建了基于無人機(jī)的視覺獲取平臺(tái),通過其攜帶的高清攝像頭,實(shí)現(xiàn)船舶水尺圖像采集。采用融合水尺特性先驗(yàn)知識(shí)的輪廓統(tǒng)計(jì)篩選方法,提取先導(dǎo)知識(shí);綜合利用像素點(diǎn)在L×a×b顏色空間的信息,采用知識(shí)引導(dǎo)的K-means++聚類和分水嶺算法,實(shí)現(xiàn)船舶吃水線區(qū)域的動(dòng)態(tài)識(shí)別和吃水線測(cè)定。該算法克服了傳統(tǒng)固定拍攝設(shè)備的布設(shè)和實(shí)施困難,通過機(jī)器視覺算法,實(shí)現(xiàn)了吃水線區(qū)域的實(shí)時(shí)識(shí)別,具有穩(wěn)定的測(cè)定精度,滿足吃水線測(cè)定的快速性要求。
無人機(jī)搭載的高清相機(jī)能夠高效采集船舶吃水線區(qū)域圖像,簡化了固定相機(jī)的復(fù)雜布設(shè),解決吃水線測(cè)定效率低和船舶外弦水線測(cè)定困難等問題。但是,無人機(jī)環(huán)繞輪船飛行,受到飛行航跡波動(dòng)的影響,船舶吃水線區(qū)域在圖像中的位置并不固定,需要?jiǎng)討B(tài)標(biāo)定;在吃水線上方約10 cm處存在海浪長期拍打船體形成的水跡線,干擾吃水值的準(zhǔn)確讀??;另外,不同曝光環(huán)境、水波紋等現(xiàn)象的存在,也影響到吃水線的精確識(shí)別。因此,基于知識(shí)的船舶吃水線動(dòng)態(tài)識(shí)別算法中,如何在具有上述眾多干擾的復(fù)雜場(chǎng)景下,準(zhǔn)確定位到感興趣的吃水線區(qū)域,是該類測(cè)定系統(tǒng)的核心難點(diǎn)問題,也是區(qū)別于固定相機(jī)測(cè)定系統(tǒng)的特有問題。
為解決上述問題,本文提出復(fù)雜場(chǎng)景下的船舶吃水線區(qū)域識(shí)別算法。針對(duì)動(dòng)態(tài)變化的吃水線區(qū)域,采用統(tǒng)計(jì)方法篩選吃水線刻度輪廓,提取感興趣的吃水線區(qū)域先導(dǎo)知識(shí);針對(duì)水跡線的干擾,結(jié)合聚類與分水嶺算法,完成吃水線的精確分割;通過顏色空間轉(zhuǎn)化,避免不同曝光環(huán)境下,光照強(qiáng)度導(dǎo)致的吃水線區(qū)域誤判;采用濾波算法,解決大量的水波紋對(duì)算法時(shí)間和識(shí)別精度的影響。
為獲取完整的吃水線及其字符信息,需在整幅圖像中定位到感興趣的吃水線水平區(qū)域。本文給出一種融合水尺特性先驗(yàn)知識(shí)的輪廓統(tǒng)計(jì)篩選算法,實(shí)現(xiàn)快速的吃水線水平區(qū)域定位。如圖1所示,在未進(jìn)行預(yù)處理的整幅二值化圖像中,存在大量水波紋,在輪廓查找中,將識(shí)別出過多的微小區(qū)域,增加算法計(jì)算代價(jià)和識(shí)別難度。本文首先對(duì)采集獲得的船舶水尺圖像進(jìn)行濾波,由于mean-shift算法[7]在濾除細(xì)微干擾的同時(shí),能夠保留圖像的主要邊緣[8],既保留了重要的吃水線邊緣信息,同時(shí)也可消除水尺圖像中大量水波紋的干擾、有效減少水波紋對(duì)識(shí)別結(jié)果的不利影響。
圖1 水波紋干擾Figure 1 Interference of water ripples
對(duì)濾波后的水尺圖像,根據(jù)鄰域內(nèi)的像素值,采用自適應(yīng)閾值[9],得到二值化圖像。記圖像中每個(gè)像素點(diǎn)的值為Pi,則有Pi={0,1}。根據(jù)輪廓像素的連續(xù)性,進(jìn)行輪廓查找和記數(shù),并保存其坐標(biāo)位置。整幅圖像中輪廓數(shù)量記為s,當(dāng)前一個(gè)輪廓閉合時(shí),則有:
(1)
(2)
根據(jù)n個(gè)區(qū)間的起止坐標(biāo)范圍,將每個(gè)輪廓按各自的坐標(biāo)位置劃歸到所屬的區(qū)間。每個(gè)區(qū)間所包含的輪廓組成集合A{si},i=1,2,…,n,如圖2所示。
圖2 圖像水平區(qū)間劃分(n=10)Figure 2 Division of image horizontal interval(n=10)
船舶吃水線字符通常由上至下分布,并且分布緊湊。非字符區(qū)域識(shí)別出的輪廓通常包括船體銹跡輪廓和非船體背景輪廓。船體銹跡輪廓數(shù)量少,分布分散;非船體背景輪廓細(xì)節(jié)眾多,背景輪廓數(shù)量遠(yuǎn)遠(yuǎn)多于字符輪廓,并且背景區(qū)域橫跨多個(gè)水平區(qū)間。根據(jù)以上船體字符分布特征的先驗(yàn)知識(shí),依據(jù)輪廓統(tǒng)計(jì),對(duì)感興趣區(qū)域的水平位置進(jìn)行確定。記|A{si}|表示集合中的輪廓數(shù)量,j為目標(biāo)區(qū)域序號(hào),sj為識(shí)別出的目標(biāo)區(qū)域所包含的輪廓數(shù),sj-1和sj+1為其相鄰的左、右2個(gè)區(qū)間輪廓數(shù)。設(shè)定相鄰區(qū)間輪廓數(shù)之和的界限函數(shù)為α(n),與輪廓數(shù)n呈反比。在目標(biāo)區(qū)域與相鄰區(qū)間輪廓數(shù)相加滿足界限函數(shù)時(shí),包含輪廓數(shù)最大的區(qū)間,被認(rèn)為是感興趣的吃水線區(qū)域水平位置,即滿足:
(3)
識(shí)別出整幅圖像中感興趣的吃水線水平區(qū)域后,需要在垂直方向上確定出吃水線位置,最終得到吃水線區(qū)域標(biāo)定。相較于RGB顏色空間,作為感官均勻顏色模式的L×a×b顏色空間采用a和b分量描述顏色范圍,包含更多顏色信息[10]。當(dāng)采集圖像的光照條件存在強(qiáng)弱變化時(shí),可以舍棄L分量,僅考慮a和b分量,可以排除光照條件對(duì)圖像識(shí)別結(jié)果的影響。因此,先將RGB圖像轉(zhuǎn)換為XYZ圖像,再實(shí)現(xiàn)XYZ圖像到L×a×b色彩空間的轉(zhuǎn)換[11]。R、G、B為像素的3個(gè)顏色通道;a*、b*為L×a×b色彩空間2個(gè)通道,Xn、Yn、Zn為CIE標(biāo)準(zhǔn)照明體的三刺激值;f(t)為判斷函數(shù)。
(4)
(5)
(6)
基于感興趣吃水線區(qū)域水平位置,在L×a×b顏色空間中,從垂直方向上定位船體和水面交界處能夠獲得完整的吃水線區(qū)域。在船舶水尺圖像中,船體表面和水面存在顯著顏色差異。因此,采用K-means++聚類算法對(duì)二者顏色進(jìn)行分類,設(shè)置聚類簇為2,迭代次數(shù)為T,從m個(gè)像素樣本po(o=1,2,…,m),選取2個(gè)點(diǎn)作為初始聚類中心cq(t)(q=1,2,t=1,2,…,T)。傳統(tǒng)K-means算法隨機(jī)選取初始聚類中心,而K-means++算法[12]則要求初始聚類中心之間具有足夠遠(yuǎn)的距離。由于船體和水面在圖像上的相對(duì)位置固定,所以聚類中心的初始化是將圖片中部最上點(diǎn)設(shè)為第1個(gè)聚類中心,代表船體顏色;第2個(gè)聚類中心在距第1個(gè)聚類中心相似度距離遠(yuǎn)的區(qū)域,即選擇圖片中部最下點(diǎn),代表水面顏色。采用該選取方式,能夠減少迭代次數(shù),優(yōu)化算法時(shí)間。隨后,計(jì)算樣本po到各聚類中心cq(t)的相似度距離D(po,cq(t)),并將樣本劃歸到具有最小相似度距離的類別中:
D(po,cq(t))=‖po-cq(t)‖2。
(7)
(8)
反復(fù)迭代上述聚類過程,直到滿足下述收斂條件:
|J(t+1)-J(t)|<ε;
(9)
(10)
式中:J(t)為目標(biāo)函數(shù);ε為設(shè)定閾值。
在計(jì)算出2個(gè)顏色區(qū)域的聚類中心后,在L×a×b顏色空間下,計(jì)算圖像中所有m個(gè)像素點(diǎn)po到聚類中心cq的顏色距離D(po,cq),篩選出最大距離Dmax(po,cq),設(shè)置相關(guān)倍數(shù)?∈(0,1),定義距離閾值Dθ,則有:
Dθ=?Dmax(po,cq)。
(11)
當(dāng)D(pi,cq)位于閾值區(qū)域內(nèi)時(shí),則確定pi作為該類別具有較強(qiáng)代表性的種子點(diǎn),進(jìn)行分水嶺算法[13];否則,將pi從原來的類別中分離出來,視為空白點(diǎn)。通過計(jì)算各類別內(nèi)樣本到聚類中心的顏色距離,篩選出與聚類中心距離相近的顏色對(duì)象,作為該類別具有較強(qiáng)代表性的種子點(diǎn),采用分水嶺算法進(jìn)行準(zhǔn)確的吃水線分割。根據(jù)吃水線的識(shí)別,在垂直方向上保留完整的船體字符信息,結(jié)合水平方向上的預(yù)測(cè)區(qū)間,實(shí)現(xiàn)吃水線及相應(yīng)字符位置的感興趣區(qū)域識(shí)別。
無人機(jī)船舶水尺圖像采集于某港口檢驗(yàn)檢疫局的輪船視頻。本文所提吃水線區(qū)域識(shí)別算法在i5-4210CPU,4 G內(nèi)存的筆記本電腦上通過Visual Studio Code編程實(shí)現(xiàn)。選取不同環(huán)境下采集圖像驗(yàn)證算法的通用性,這些圖像中包括水跡線、不同曝光程度,以及水波紋等多種干擾。
水平劃分區(qū)間數(shù)目設(shè)置為n=5、10、13、15、20,其目的是分析不同水平劃分區(qū)間數(shù)對(duì)識(shí)別效果和有效輪廓占比率的影響。表1和圖3分別是不同區(qū)間數(shù)目下獲得的區(qū)間中有效輪廓占比率和區(qū)間識(shí)別準(zhǔn)確率。圖3中每幅圖像下分別是n=5、10、13、15、20時(shí)獲得的感興趣區(qū)域,當(dāng)為15和20時(shí),劃分過于細(xì)致,包含的有效輪廓占比大,具有很高的輪廓利用率;但由于識(shí)別出的區(qū)域范圍過小,受到相機(jī)拍攝角度的影響,當(dāng)船體字符出現(xiàn)傾斜時(shí)會(huì)使字符信息不完整,識(shí)別準(zhǔn)確度降低,甚至造成誤識(shí)別。當(dāng)n為5時(shí),識(shí)別出的區(qū)域范圍大,即使出現(xiàn)船體字符傾斜的情況,也能將全部信息包含其中;同時(shí)包含過多無效信息,有效輪廓占比小,會(huì)造成計(jì)算冗余。而當(dāng)n為10和13時(shí),能夠有效解決以上兩個(gè)問題,既有較高的有效輪廓占比,又能準(zhǔn)確、完整獲得吃水線信息。因此,為預(yù)防各種傾斜情況,確保算法適用性,通常選擇10~13作為水平劃分區(qū)間數(shù)n的取值范圍。
表1 水線位置識(shí)別準(zhǔn)確率與有效輪廓占比率Table 1 Accuracy of waterline position recognition and ratio of effective contour
圖3 不同水平區(qū)間數(shù)目下識(shí)別的吃水線水平區(qū)域Figure 3 Waterline horizontal regions identification under different numbers of horizontal intervals
基于船舶吃水線水平區(qū)域圖像,在垂直方向上對(duì)吃水線進(jìn)行精確分割。由于水波紋以及水跡線等干擾的存在,傳統(tǒng)的檢測(cè)算法會(huì)出現(xiàn)無效識(shí)別或者誤識(shí)別的情況。該部分實(shí)驗(yàn)采用Canny算子以及傳統(tǒng)的K-means算法檢測(cè)吃水線,針對(duì)水波紋和水跡線的影響與本文算法進(jìn)行對(duì)比分析。
Canny算子檢測(cè)出很多包含水波紋和水跡線的邊緣信息,難以將吃水線從眾多邊緣中提取出來。同時(shí),該方法識(shí)別出的吃水線也存在如圖4(a)所示的間斷情況,另外,傳統(tǒng)的K-means算法將水跡線誤識(shí)別成吃水線,如圖4(b)所示,主要是因?yàn)樗E線導(dǎo)致水面與船體顏色邊界混淆引起的誤識(shí)別。本文結(jié)合輪船和水體的先驗(yàn)顏色知識(shí),指導(dǎo)初始點(diǎn)選取,根據(jù)樣本點(diǎn)的顏色和空間信息,篩選出與聚類中心距離相近的顏色對(duì)象,作為各自類別中具有較強(qiáng)代表性的種子點(diǎn)進(jìn)行分水嶺分割,對(duì)相近顏色的差異更敏感,能夠有效避免水跡線的干擾,如圖4(c)所示。顯然,所提算法可以更為準(zhǔn)確地識(shí)別吃水線位置。
圖4 吃水線精確識(shí)別Figure 4 Precise segmentation of waterline
為了探究本文算法在識(shí)別效果以及計(jì)算時(shí)間上的優(yōu)勢(shì),將其與未濾波的傳統(tǒng)閾值算法[9]進(jìn)行對(duì)比。當(dāng)水平劃分區(qū)間數(shù)目n=10時(shí),表2和表3分別是2種算法得到的輪廓數(shù)量和計(jì)算時(shí)間,圖5表示了各場(chǎng)景下不同算法的輪廓情況對(duì)比以及在整幅圖像中定位出吃水線區(qū)域的算法效果。
表2 各場(chǎng)景下不同算法的輪廓個(gè)數(shù)統(tǒng)計(jì)Table 2 Contour statistics of different algorithms in scenes
表3 各場(chǎng)景下不同算法的計(jì)算時(shí)間統(tǒng)計(jì)Table 3 Calculating time statistics of different algorithms in each scenes ms
分析表2和圖5所示結(jié)果可以得到,與對(duì)原始圖像進(jìn)行輪廓查找相比,經(jīng)過濾波處理的圖像在整幅圖像范圍內(nèi)輪廓數(shù)量明顯減少,在算法計(jì)算時(shí)間上也有所減少。另外也可以看出濾波算法在輪廓信息不豐富的區(qū)域輪廓縮減不明顯,但在圖像的其他區(qū)域效果顯著,能夠最終在整幅圖像中準(zhǔn)確定位出吃水線區(qū)域。對(duì)于具有復(fù)雜港口背景以及更大水波紋面積的場(chǎng)景1,本文所提算法能濾除大部分水波紋干擾,根據(jù)輪廓分布特點(diǎn)和船體與水面顏色差異,可以在整幅圖片范圍中準(zhǔn)確識(shí)別出感興趣的吃水線區(qū)域。對(duì)于存在光照變化的場(chǎng)景2和場(chǎng)景3,不同曝光程度導(dǎo)致船體顏色變化明顯,本文所提算法對(duì)相近顏色的差異更敏感,結(jié)合樣本點(diǎn)的顏色和空間信息對(duì)吃水線進(jìn)行分割,可以準(zhǔn)確識(shí)別出吃水線區(qū)域。但光照變化的場(chǎng)景2和場(chǎng)景3不包括港口岸邊的眾多設(shè)施,作為干擾需要排除的輪廓較少,在輪廓縮減上與具有復(fù)雜背景下的船舶圖片相比效果不明顯,且算法計(jì)算時(shí)間縮短量少,但仍優(yōu)于傳統(tǒng)算法。
圖5 船舶吃水線區(qū)域識(shí)別Figure 5 Identification of ship waterline area
已有的水尺機(jī)器視覺檢測(cè)算法主要依賴固定攝像頭,通過拍攝水尺區(qū)域,實(shí)現(xiàn)對(duì)已知輪船水線區(qū)域的吃水線識(shí)別。但是,固定相機(jī)的布設(shè)和實(shí)施困難,且效率低下。采用無人機(jī)搭載相機(jī)航拍船舶圖像,避免了布設(shè)復(fù)雜的固定相機(jī),易于實(shí)際推廣。但是,航拍圖像中的船舶吃水線區(qū)域受到飛行軌跡的影響,存在位置波動(dòng)。為此,給出一種融合水尺特性先驗(yàn)知識(shí)的輪廓統(tǒng)計(jì)篩選算法,用于定位整幅圖像中的感興趣吃水線水平區(qū)域。綜合利用像素點(diǎn)的顏色和空間信息,在L×a×b顏色空間下,結(jié)合知識(shí)引導(dǎo)的K-means++聚類與分水嶺算法,實(shí)現(xiàn)吃水線的精確分割,有效避免光照和水跡線的干擾,實(shí)現(xiàn)動(dòng)態(tài)視頻下船舶吃水線區(qū)域的快速識(shí)別。該算法能夠較好適應(yīng)港口的復(fù)雜航拍場(chǎng)景,具有較強(qiáng)的環(huán)境魯棒性和識(shí)別快速性,為有效提高港口的自動(dòng)化水平奠定了基礎(chǔ)。在后續(xù)的工作中,基于識(shí)別的吃水線區(qū)域,將進(jìn)一步研究水尺的精確計(jì)重算法。