肖勁勇 梅慧伶 姚寒冰
1 重慶果園港埠有限公司 2 武漢理工大學計算機與人工智能學院
在集裝箱過閘口時,除了識別集裝箱箱號以及運輸車輛的車牌信息外,還需要對集裝箱進行殘缺檢測。相對沿海大型港口,內(nèi)河港口智能化程度不高,一些內(nèi)河港口仍采用人工方式對集裝箱閘口進行管理,集卡過閘效率不高,降低了整個港口的作業(yè)效率。研究集裝箱箱號自動識別以及集裝箱的智能驗殘,可以減少人力成本的投入、提升集卡過閘效率,對于內(nèi)河港口具有重要的應(yīng)用價值。
邊緣檢測技術(shù)是圖像處理過程中常用的一種方法,能夠在圖像中獲取有效數(shù)據(jù),減少處理數(shù)據(jù)量。邊緣可以定義為:不同圖像區(qū)域之間的邊界以及圖像中局部強度顯著變化的臨界線。邊緣檢測可以基于算子實現(xiàn),也可以基于深度學習實現(xiàn)。如Canny[1]、Sobel[2]、Log[3]以及Prewitt[4]都是在全局條件下建立的傳統(tǒng)邊緣檢測技術(shù)。在用于邊緣檢測的傳統(tǒng)算子中,Canny算子表現(xiàn)良好。
集裝箱自動驗殘的關(guān)鍵是集裝箱圖像的邊緣提取,基于Canny的邊緣檢測在對大量脈沖噪聲的濾除過程中,會造成邊緣連接不平滑和偽邊緣出現(xiàn),甚至會丟失一些重要的局部細節(jié)特征,影響目標區(qū)域的識別精度。為了濾除干擾噪聲、剔除錯誤邊緣,將混合濾波和多尺度細節(jié)增強技術(shù)引入到Canny算法中,對集裝箱圖像進行邊緣提取,得到準確清晰的集裝箱邊緣圖像。隨后使用Hough變換提取該邊緣圖像中的直線并分析其斜率,為集裝箱的自動驗殘過程提供依據(jù)。
集裝箱的殘缺類型主要有以下幾種:①集裝箱出現(xiàn)破洞,此種集裝箱不能繼續(xù)使用,需要報廢或者維修;②集裝箱變形,過量的承載貨物撐大集裝箱使其變形,或者集裝箱整體出現(xiàn)彎曲線程,造成集裝箱不能放入規(guī)定的位置上,該集裝箱不能正常使用;③集裝箱銹蝕情況嚴重,則不能繼續(xù)使用。本次研究主要針對前兩種情況進行。
此次集裝箱驗殘主要由兩部分構(gòu)成:基于Canny的邊緣檢測和Hough變換?;贑anny的邊緣檢測主要包括5個步驟:①對圖像進行多尺度細節(jié)增強及圖像融合;②使用混合濾波對集裝箱圖像進行降噪;③計算其梯度幅值和方向;④非極大值抑制;⑤雙閾值篩選邊緣并且進行邊緣連接。最后使用Hough變換提取邊緣圖像中的直線,并分析其斜率,為集裝箱的殘缺檢測提供依據(jù)。具體的驗殘過程見圖1。
圖1 集裝箱驗殘過程
在邊緣提取過程中,引入多尺度細節(jié)增強和圖像融合技術(shù)是為了得到清晰的集裝箱圖像;混合濾波的主要作用是濾除集裝箱圖像中的脈沖噪聲;梯度計算、非極大值抑制和雙閾值篩選邊緣的作用是找出能夠構(gòu)成清晰準確的集裝箱邊緣圖像的邊緣點。該邊緣檢測方法中的重點研究對象是圖像多尺度細節(jié)增強及融合和混合濾波,進行梯度計算、非極大值抑制和雙閾值(高低閾值)篩選邊緣的方法與原始Canny算法中采用的方法一樣,通過最大類間方差計算得到高低閾值。
在傳統(tǒng)的邊緣檢測算法中,Canny算法的檢測精度和信噪比都更高,但容易受噪聲影響,檢測出的邊緣含有更多的噪聲信號,不能將有用的信號提取出來。在檢測前,需要進行細節(jié)增強和去除噪聲。
為了使圖像中的細節(jié)信息得以清晰體現(xiàn),會對圖像的局部細節(jié)進行多尺度增強操作。具體步驟如下:①多個尺度下,采用高斯模糊的方式對原圖進行處理,得到多個影像;②對這些影像做“減法”,不同尺度下的圖像通過這種方式產(chǎn)生;③將上述獲得的圖像與原圖融合,最終圖像的細節(jié)信息被加強。用N0表示原始圖像,高斯核則用G表示,經(jīng)過下列公式可以得到新圖像M。
Pi=Gi,a=1,2,3
(1)
Mb+1=Mb-Mb+1,b=0,1,2
(2)
M4=(1-λ1sgn(M1))M1+λ2M2+λ3M3
(3)
(4)
M=M4+N0
(5)
采用文獻[5]的方法高斯模糊處理后再進行圖像融合的操作,λ1、λ2、λ3根據(jù)經(jīng)驗分別取值為0.5、0.5、0.25;G1、G2與G3表示不同標準差的高斯核,在高斯核取值分別為1.0、2.0和4.0的高斯濾波處理下的圖像由P1、P2與P3表示;M1、M2與M3表示經(jīng)過細節(jié)增強后呈現(xiàn)的不同尺度的圖像細節(jié)。M4表示累加賦予不同權(quán)值的圖像細節(jié)而得到的細節(jié)圖,新圖像M由其與原圖N0疊加產(chǎn)生。對圖像進行融合操作時可能會產(chǎn)生灰度飽和的問題,使用sgn函數(shù)來解決上述問題。實驗表明,該算法可以增強圖像中的某些細節(jié),使得圖片細節(jié)更加清晰,色彩對比更加鮮明。
傳統(tǒng)的Canny邊緣檢測算法使用高斯濾波去除圖像噪聲,但是使用像素點領(lǐng)域的加權(quán)平均值來替代該像素點像素值的方式,會產(chǎn)生邊緣模糊、灰度值差的現(xiàn)象,并且對于脈沖噪聲的處理效果差。使用一種混合濾波器對圖像進行平滑和去噪操作,主要步驟為:對圖像進行自適應(yīng)的中值濾波,去除圖像中的噪聲,包括脈沖噪聲。使用自適應(yīng)中值濾波是因為它對高強度的噪聲有很強的抵抗力,并能保留更多的細節(jié)。
實現(xiàn)自適應(yīng)中值濾波算法分為2個過程,首先自定義一個矩形窗口Fxy,這個區(qū)域的行和列由(x,y)表示;其中最大灰度值由Mmax表示,最小灰度值由Mmin表示,灰度中值由Mmed表示;Fmax表示區(qū)域內(nèi)允許使用的最大尺寸;fxy則表示像素點是否在(x,y)處。
(1)令m1=Mmed-Mmin,m2=Mmed-Mmax,如果m1>0并且m2<0,進行步驟(2),否則增大窗口大小。如果窗口大小小于或等于Fmax,重復(fù)步驟(1);否則輸出Mmed。
(2)令n1=Mxy-Mmin,n2=Mxy-Mmax,如果n1>0并且n2<0,輸出fxy;否則輸出Mmed。
此過程中使用導頻濾波器是一種局部線性濾波器,邊緣保持效果很好,其數(shù)學公式為:
qi=akIi+bk,?i∈ωk
(6)
式中,qi為輸出圖像的值;Ii為導向圖像的值;ak和bk為當窗口中心為k并且半徑為r時,線性函數(shù)的常數(shù)項系數(shù);i和k為像素索引;ωk為以第k個像素索引為中心的窗口。為了最小化擬合函數(shù)的輸出值和實際值之間的差異,方程式如公式(7)所示:
(7)
式中,pi為要過濾的圖像;ε為防止ak值太大的一個懲罰參數(shù),同時這也是一個調(diào)整引導濾波效果的參數(shù)。通過最小二乘法,可以得出以下結(jié)論:
(8)
(9)
(10)
bk=(1-ak)μk
(11)
與傳統(tǒng)Canny算法中使用的高斯濾波器相比,該混合濾波器去除噪聲和保留了邊緣細節(jié)的能力更強,效果更好。脈沖噪聲的存在會影響邊緣提取的效果,混合濾波器對脈沖噪聲有很強的“耐受力”,濾除脈沖噪聲的效果好,可見這種混合濾波器對提高圖像邊緣檢測精度有著極大的優(yōu)勢。
集裝箱箱面除了字母和文字標識之外,瓦楞和邊沿都是直線。所以對集裝箱進行殘缺檢測只需要檢測并提取集裝箱邊緣圖像中除字母和文字區(qū)域外的直線即可,然后根據(jù)提取的直線(斜率)進行分析。理想狀態(tài)下,若是集裝箱不存在缺損的話,集裝箱側(cè)邊箱面瓦楞邊緣表現(xiàn)為豎線,而頂邊線面表現(xiàn)為橫線。一旦在集裝箱的側(cè)面檢測出偏離豎直方向很多的直線,或者在頂面檢測出偏離水平方向很多的直線,則說明此集裝箱箱面存在非直線的線段,表示箱面除了瓦楞結(jié)構(gòu)形成的邊緣,還存在其余干擾的邊緣。在此種情況下,表示該集裝箱可能有缺損,需要進一步確認其缺損情況。
Hough變換可以用來檢測邊緣圖中的直線,但是針對Hough變換計算量和資源占用大以及速度慢的問題,采取如下方法進行直線檢測:首先在圖像上選取一個隨機點,如果該點在某條直線上,就一定存在一些點可以與之形成一條直線。再為選取的點建立點集G,從點集中選取一個點gi為中心,i為半徑形成一個區(qū)域(直線檢測的最短距離)。當尋找下一個點時,可以以gi為圓心,d為間隔距離,通過Hough變換和gi可以得到局部點。具體步驟為:
(1)圖像中選取隨機的一個點gi,以該點為圓心,i為半徑形成區(qū)域S。
(2)設(shè)置間隔d,以gi為圓心,d為半徑對點進行采樣,并將其放入點集S。
(3)點集S中隨機選取一個點pj,并且使用Hough變換檢測直線可能性。如果存在,則選擇點pj;若是不存在,就繼續(xù)重復(fù)步驟(3),直到所有的點完成計算并且點集中的所有點被清空了,重復(fù)步驟(1)。
(4)所有選定的點都要再次經(jīng)過Hough變換進行重新計算,如果投票結(jié)果大于設(shè)定閾值,則認為存在一條直線,并且得到該直線的方程,根據(jù)直線兩端端點檢測這些選定的點是否在該直線上。一旦某點出現(xiàn)偏差,則表示該點不在該直線上。
(5)計算檢測的直線長度,如果長度大于最短距離L,表示該直線沒有錯判,最后提取直線。
在邊緣檢的過程中,噪聲會對圖像的邊緣提取產(chǎn)生重大影響。無噪聲的環(huán)境中,傳統(tǒng)的Canny算法和本研究提出方法的檢測結(jié)果基本相同,但若是加上噪聲,原始的Canny算子會將脈沖噪聲識別為圖像邊緣,并且濾除脈沖噪聲的能力較弱。其結(jié)果見表1,其中MSE表示均方差,PSNR表示峰值信噪比。
表1 Canny與本研究方法的比較
實驗過程中使用各種傳統(tǒng)的邊緣檢測算法對同一張集裝箱圖片進行檢測,呈現(xiàn)出不同的實驗結(jié)果,其中傳統(tǒng)的Canny邊緣檢測以及融合了高斯濾波的Canny檢測算法的效果最好,但是也會產(chǎn)生較多的虛假邊緣,并且實輸出的圖像中也會忽略一些邊緣細節(jié)。各種邊緣檢測實驗結(jié)果見圖2。
圖2 邊緣檢測算法結(jié)果圖
若是處于存在較強脈沖噪聲的環(huán)境中,在檢測效果方面,此次研究采用的方法比傳統(tǒng)算子(包括傳統(tǒng)的Canny算子、Roberts算子以及Log算子)更好。在脈沖噪聲嚴重的場景下,傳統(tǒng)算子可能無法保留完整的細節(jié)特征,檢測出的邊緣圖像中會丟失一些重要的局部邊緣,并且還會有偽邊緣的出現(xiàn)。基于邊緣點的4領(lǐng)域、8領(lǐng)域進行操作,并且統(tǒng)計個數(shù),分別用F和E表示,同時統(tǒng)計其邊緣點總數(shù),用T表示。選取4張集裝箱圖像(見圖3),分別使用不同的邊緣檢測方法對這4張圖像進行處理。
圖3 測試圖
各個方法的E/F值和E/T值見表2和表3。E/F值與E/T值分別與集裝箱邊緣圖片的平滑程度和連結(jié)程度有關(guān)。E/F值和E/T值越小分別表示邊緣的平滑程度和鏈接程度越好。由表2和表3可知,本研究方法的E/F值和E/T值都低于其余幾種算法,表明其性能更好。
表2 不同邊緣檢測算法的E/F值
表3 不同邊緣檢測算法的E/T值
集裝箱箱面經(jīng)過本研究的Hough算法的處理后,將邊緣圖中的直線提取出來,效果見圖4。圖4(a)和4(b)分別表示完好的側(cè)箱面和頂箱面。側(cè)箱面除邊沿外,提取的直線基本都呈現(xiàn)為垂直的直線。而頂箱面除邊沿外,提取的直線基本都呈現(xiàn)為水平的直線。圖4(c)表示側(cè)面缺損的集裝箱,除了垂直方向上的直線外,還含有很多偏離垂直方向的線。若是圖中提取出的直線出現(xiàn)偏離垂直方向或者水平方向太多的直線,則表示該集裝箱可能出現(xiàn)缺損。
圖4 邊緣直線提取圖
將本研究方法與原始Hough變換進行比較,其結(jié)果見表4。分別使用這兩種方法對相同的集裝箱圖片進行檢測,將檢測時間、錯誤率和正確率作為性能衡量指標。由表4可以看出本研究方法在檢測時間和準確率上優(yōu)于原始Hough變換。
表4 原始Hough與本文研究法結(jié)果對比
此次研究設(shè)計了基于Canny和Hough變換的集裝箱自動驗殘方法。傳統(tǒng)Canny算法處理后的圖像中會出現(xiàn)間斷的邊緣和偽邊緣,甚至會丟失一些比較局部邊緣的細節(jié)特征,并且沒有很強的抗噪聲干擾的能力。使用混合濾波替代原有的高斯濾波并對圖像細節(jié)進行增強,以達到濾除干擾噪聲、剔除錯誤邊緣的目的,得到清晰準確的邊緣圖像。邊緣圖中的直線提取用到了Hough變換,這些直線的斜率是集裝箱殘缺判定的依據(jù)?;贑anny和Hough變換的集裝箱自動驗殘方法對提高閘口工作效率、減少人力成本投入,加快閘口智能化進程有一定的推動意義。