王國偉,陳光武,魏宗壽
1(蘭州交通大學(xué) 光電技術(shù)與智能控制教育部重點實驗室,蘭州 730070)
2(蘭州交通大學(xué) 自動化與電氣工程學(xué)院,蘭州 730070)
3(甘肅省高原交通信息工程及控制重點實驗室,蘭州 730070)
隨著機(jī)車高速、重載和高密度的運(yùn)行以及自然環(huán)境的長期影響,鋼軌表面不可避免地會形成孔洞、擦傷和疤痕等各種缺陷[1].列車在表面有缺陷的鋼軌上運(yùn)行會產(chǎn)生振動,不僅會影響列車車輪和鋼軌的壽命,甚至可能會導(dǎo)致車輪脫軌,造成嚴(yán)重的行車事故[2].因此需要工作人員能夠及時發(fā)現(xiàn)鋼軌缺陷并進(jìn)行維護(hù)處理,以確保列車能夠安全、連續(xù)的運(yùn)行[3,4].傳統(tǒng)的人工巡檢法由于受外界環(huán)境以及巡道工主觀因素的影響較大,且勞動強(qiáng)度大、檢測效率低,已經(jīng)不能滿足現(xiàn)代鐵路的檢測要求[5].因此,想要確保鐵路運(yùn)輸?shù)陌踩c暢通,必須采用現(xiàn)代化的檢測手段來對鋼軌的狀態(tài)進(jìn)行檢測[6],而機(jī)器視覺通過結(jié)合圖像處理與模式識別算法,能夠?qū)︿撥壉砻嫒毕輩^(qū)域進(jìn)行檢測并完成分類,且由于其具有高速度、高精度、低成本和非接觸等優(yōu)點,目前已經(jīng)被廣泛應(yīng)用于鋼軌表面缺陷的檢測[7].
吳祿慎等[8]設(shè)計了基于機(jī)器視覺的軌道缺陷自動檢測系統(tǒng),通過改進(jìn)最大類間方差法來實現(xiàn)軌面缺陷的檢測,但是對軌道圖片濾波后直接進(jìn)行閾值分割會導(dǎo)致分割的準(zhǔn)確率不高.陳后金等[9]根據(jù)鋼軌表面缺陷的灰度和梯度特征,提出基于灰度-梯度共生矩陣的鋼軌表面缺陷檢測方法,該方法能夠避免銹跡區(qū)域的干擾,較好地檢測出塊狀缺陷,但是當(dāng)雜質(zhì)點分布比較集中或存在有規(guī)律的微小傷痕的時候,該方法容易產(chǎn)生誤判; 賀振東等[10]將視頻中的背景差分法應(yīng)用到單張的軌面圖像上,提出了一種基于背景差分的鋼軌表面缺陷分割方法,該方法在一定程度上解決了分割過程中光照變化和反射不均等因素的影響,但是在背景建模過程中會受到極端灰度值的影響而導(dǎo)致背景模型不穩(wěn)定,降低缺陷分割的準(zhǔn)確率; 李曉梅等[11]提出一種將灰度對比圖和形態(tài)學(xué)重構(gòu)相結(jié)合,然后利用最大熵法進(jìn)行軌面缺陷分割的算法,該方法能夠在緩解軌面圖像灰度不均和過度曝光等帶來的影響,但是算法耗時長且容易產(chǎn)生誤分割; 閔永智等[12]提出了基于圖像灰度梯度特征的背景差分軌面缺陷檢測方法,該方法基于雙邊濾波思想設(shè)計了背景平滑濾波器,利用局部灰度和梯度變化信息對原圖像進(jìn)行平滑得到背景圖像,該方法雖然能夠較好地檢測出裂紋和疤痕缺陷,但是參數(shù)過多,且對于不同的缺陷需要設(shè)置不同的參數(shù).
針對上述算法中存在的缺點,本文提出了一種基于背景差分與最大熵的鋼軌表面缺陷分割算法.該算法主要包括3 個步驟: 首先對鋼軌圖像進(jìn)行背景建模并將原圖像與背景圖像進(jìn)行差分操作得到差分圖像;然后利用改進(jìn)遺傳算法的最大熵值法找出差分圖像的最佳分割閾值來對其進(jìn)行二值化; 最后對二值圖進(jìn)行圖像濾波完成鋼軌表面缺陷的分割.該方法能夠避免光照變化、反射不均以及干擾區(qū)域的影響,可以快速準(zhǔn)確地提取出軌面缺陷區(qū)域.
為了減少光照變化和反射不均對軌面缺陷檢測的影響,凸顯出鋼軌表面圖像中的缺陷部分,首先要建立準(zhǔn)確的背景圖像模型,然后再將原圖像與背景圖像進(jìn)行差分操作后取絕對值,以此得到了差分圖像,為后續(xù)軌面缺陷的準(zhǔn)確分割奠定了基礎(chǔ).
鋼軌表面圖像具有以下特征:
(1)在無缺陷的條件下,沿鋼軌方向圖像的灰度值基本不變;
(2)垂直于鋼軌方向圖像的灰度值變化范圍較大.
基于列灰度均值的背景圖像模型建立方法就是根據(jù)上述中鋼軌表面圖像所具有特征來進(jìn)行軌面背景圖像模型的建立[10],具體如下.
定義垂直鋼軌方向為x軸,沿鋼軌方向為y軸.計算圖像每一列的灰度均值,完成背景圖像模型的建立:
其中,Im(x)表示背景圖像模型中第x列的灰度值;mean(·)為均值函數(shù);Iy(x)為軌面圖像中第x列上所有像素點的灰度值;col為軌面圖像的列數(shù).
基于列灰度均值的背景建模法容易受到部分列極端灰度值的影響而導(dǎo)致所建立的背景模型不穩(wěn)定,進(jìn)而導(dǎo)致所得的差分圖像不能夠很好地凸顯出軌面圖像中的缺陷區(qū)域,這將影響后續(xù)缺陷分割的準(zhǔn)確度.為此,本文提出了一種新的背景圖像模型建立方法,該方法在基于列灰度均值背景建模法上進(jìn)行改進(jìn),其耗時短且建模結(jié)果也更加穩(wěn)定,更適用于做背景差分,具體如算法1.
算法1.背景圖像模型建立算法1)計算出軌面圖像中每一列的像素灰度均值,取圖像第x 列的像素灰度均值為Ia(x);2)對每一列上的每一個像素點依次進(jìn)行判斷,假設(shè)對圖像第x 列上的像素點進(jìn)行判斷,若像素點的灰度值小于2Ia(x)/3,則舍棄,反之保留;3)計算出每一列中保留像素點的灰度均值,并將其作為背景圖像對應(yīng)列上所有像素點的灰度值,取圖像第x 列中保留像素點的灰度均值為Ib(x),則背景圖像中第x 列上所有像素點的灰度值都取Ib(x),以此完成背景圖像模型的建立.
本文所提出的背景圖像模型方法通過加入像素點灰度值判斷的過程,舍棄掉一部分灰度值極低的像素點,從而避免了極端灰度值的影響,由此所得到的背景圖像模型作差分效果會更好.還有,鋼軌表面長期與列車車輪進(jìn)行摩擦,其亮度高且較均勻,因此軌面灰度圖中絕大多數(shù)像素點的灰度值較高且均勻,故不需要考慮舍棄灰度值極高的像素點.
將原鋼軌表面圖像與背景圖像進(jìn)行差分運(yùn)算并取絕對值,由此得到差分圖像ΔI(x,y):
其中,I(x,y)表示原軌面圖像中任一點(x,y)的灰度值,Ib(x,y)表示背景圖像模型中任一點(x,y)的灰度值.
通過運(yùn)算所得到的差分圖像背景均勻,能夠很好地突出缺陷部分,因此對差分圖進(jìn)行缺陷分割會更容易且更準(zhǔn)確.如圖1 所示,圖1(a)、圖1(b)和圖1(c)分別是原軌面灰度圖、通過本文算法得到的背景建模圖像以及差分圖像,其中差分圖像背景均勻,缺陷區(qū)域明顯.
圖1 原灰度圖、背景圖及差分圖
本文提出了基于改進(jìn)遺傳算法的最大熵值法來確定差分圖像的分割閾值,該方法不僅能夠找出圖像的最佳分割閾值,同時還可以加快算法的運(yùn)行速度,然后再利用該方法所確定的閾值對差分圖像進(jìn)行二值化,即可準(zhǔn)確地完成鋼軌表面缺陷的分割.
熵是信息論中的一個重要概念,是平均信息量的表征,用以確定隨機(jī)數(shù)據(jù)源中所包含的信息數(shù)量[13].簡單來說,熵就是用來衡量一個分布的均勻程度,熵值越大,說明分布越均勻.圖像的熵被認(rèn)為是圖像灰度空間分布狀態(tài)不穩(wěn)定的量度[14,15].
最大熵閾值分割法是由Kapur 等[16]首次提出,利用圖像熵為準(zhǔn)則進(jìn)行圖像分割,其將圖像劃分為目標(biāo)區(qū)域O及背景區(qū)域B兩部分,使目標(biāo)熵和背景熵之和達(dá)到最大時的閾值為最優(yōu)閾值[17].具體思路如下:
假設(shè)有一幅圖像I尺寸為M×N,灰度級為L,灰度范圍為{0,1,2,…,L-1},則圖像中灰度值i(0≤i≤L-1)出現(xiàn)的概率pi計算公式如下:
其中,h(i)表示圖像I中灰度值為i的像素數(shù),
設(shè)圖像I的分割閾值為t,灰度級小于t的像素點構(gòu)成目標(biāo)區(qū)域O,灰度級大于t的像素點構(gòu)成背景區(qū)域B.目標(biāo)區(qū)域O和背景區(qū)域B的灰度級累積概率分別為
目標(biāo)區(qū)域O的概率分布為:
背景區(qū)域B的概率分布為:
目標(biāo)區(qū)域O的熵為:
背景區(qū)域B的熵為:
圖像I的總熵φ(t)是目標(biāo)熵與背景熵的和,即:
當(dāng)圖像總熵φ(t)達(dá)到最大值時,其所對應(yīng)的灰度值t就是所求的最佳閾值t=argmax(φ(t)).
傳統(tǒng)最大熵閾值法需要遍歷窮舉閾值T(0-255),計算出所有閾值下的圖像總熵,這導(dǎo)致算法的運(yùn)行時間較長.為了加快算法的運(yùn)行速度,可以根據(jù)圖像的動態(tài)范圍來縮小最佳分割閾值的取值范圍或者與尋優(yōu)算法相結(jié)合來搜索最佳分割閾值.
2.2.1 遺傳算法介紹
遺傳算法(genetic algorithm,GA)是模擬達(dá)爾文生物進(jìn)化論的自然選擇和遺傳學(xué)機(jī)理的生物進(jìn)化過程的計算模型,是一種通過模擬自然進(jìn)化過程搜索最優(yōu)解的方法[18].
遺傳操作是模擬生物基因遺傳的做法.在遺傳算法中,首先進(jìn)行編碼并生成初始種群,然后進(jìn)行遺傳操作,即對群體的每一個個體根據(jù)它們的環(huán)境適應(yīng)度來進(jìn)行一定的操作,從而實現(xiàn)優(yōu)勝劣汰的進(jìn)化過程.遺傳操作會使問題的解一代又一代地優(yōu)化,逐漸逼近最優(yōu)解[19].遺傳算法的過程如圖2 所示.
圖2 遺傳算法流程圖
遺傳操作包括3 個基本遺傳算子: 選擇、交叉和變異.遺傳操作的效果與這3 個遺傳算子所取得操作概率、編碼方法、群體大小、初始種群和適應(yīng)度函數(shù)的設(shè)定密切相關(guān)[14].
2.2.2 改進(jìn)遺傳算法介紹
傳統(tǒng)的遺傳算法存在收斂性差和容易陷入局部最優(yōu)解的問題,容易導(dǎo)致圖像的分割結(jié)果不佳.為了避免此問題,對傳統(tǒng)的遺傳因子進(jìn)行了優(yōu)化,具體操作如下:
(1)改進(jìn)選擇算子
輪盤賭選擇法是遺傳算法中最常用且最簡單的選擇方法,但該方法容易引起“早熟收斂”和“搜索遲鈍”問題.在輪盤賭選擇法后采用最優(yōu)保留策略能夠有效解決此問題,即將上一代中適應(yīng)度值最大的個體直接傳遞到下一代,通過強(qiáng)制保留最優(yōu)個體保證種群不會產(chǎn)生退化,加快算法的尋優(yōu)過程[20].
(2)改變種群操作中的交叉概率
傳統(tǒng)遺傳算法的交叉概率為一個固定值,而固定的交叉概率存在嚴(yán)重的缺點: 首先,每一代種群中的個體適應(yīng)度值是不同的,對于適應(yīng)度高的個體,我們應(yīng)該減小交叉的概率,而對于劣質(zhì)個體則應(yīng)該增大交叉概率,采用相同的交叉概率是不合理的,再者,交叉概率采用固定值不能很好地滿足種群進(jìn)化過程的需要,會影響算法的收斂性和效率.因此,采用自適應(yīng)方法對傳統(tǒng)遺傳算法進(jìn)行改進(jìn),根據(jù)迭代次數(shù)和個體適應(yīng)度值的不同自適應(yīng)地改變交叉概率Pc的值[21].
首先,隨迭代次數(shù)的變化自適應(yīng)改變Pc的值: 在進(jìn)化的初始階段設(shè)置較高的交叉概率,以此獲得更多新的個體來避免陷入局部最優(yōu)解,隨著迭代次數(shù)的增加,為了不破壞優(yōu)秀個體和加快收斂速度,應(yīng)逐步降低Pc的值.其次,對于處于同一代的所有個體也要根據(jù)其適應(yīng)度值的不同對應(yīng)不同的Pc值: 適應(yīng)度值較高的個體對應(yīng)較低的Pc值,以此使它們在進(jìn)化過程中被破壞的概率降低,反之,要提高適應(yīng)度較低的個體在進(jìn)化過程中被破壞的概率.具體設(shè)置如下:
其中,fmax表示第g代種群中的最大適應(yīng)度值,favg表示第g代種群中的平均適應(yīng)度值,fi表示第i對要交叉的個體中較大的適應(yīng)度值.
Pc(g)的含義如式(10)所示:
其中,PcM和Pcm分別表示最大交叉概率和最小交叉概率,gmax表示最大代數(shù),g表示當(dāng)前代數(shù).
(3)改變遺傳操作中的變異算子
同交叉算子的改進(jìn)方法一樣,將傳統(tǒng)遺傳算法中的變異概率固定值改為隨迭代次數(shù)和個體適應(yīng)度值不同而自適應(yīng)變化的變異概率值Pm[21].
首先,隨迭代次數(shù)的變化自適應(yīng)改變Pm的值: 在進(jìn)化的初始階段設(shè)置較低的Pm值,在不破壞原有的完整模式下保持種群的多元性; 隨著進(jìn)化的推進(jìn),逐漸增大Pm值,擴(kuò)大算法的搜索空間,算法開始收斂; 在進(jìn)化后期過程中,搜索已經(jīng)接近最優(yōu)解領(lǐng)域,因此再逐漸減小Pm值,使種群在局部重點進(jìn)化,加快收斂速度.具體設(shè)置如下:
其中,fj表示發(fā)生變異的個體j的適應(yīng)度值.
Pm(g)的含義如式(12)所示:
其中,PmM和Pmm分別表示最大變異概率和最小變異概率.
基于改進(jìn)遺傳算法的最大熵值法將改進(jìn)遺傳算法與最大熵閾值分割法相結(jié)合來找出圖像的最佳分割閾值,加快了算法的運(yùn)算速度,提高了軌面圖像缺陷分割的效率.具體步驟如算法2.
算法2.基于改進(jìn)遺傳算法的最大熵值法1)數(shù)據(jù)輸入.讀入鋼軌表面圖像灰度差分圖;2)編碼.圖像的灰度值在0-255 之間,每個灰度值視為一個個體,將每個個體編碼為8 位二進(jìn)制碼,即用00000000-11111111 之間的一個8 位二進(jìn)制代碼代表一個圖像分閾值;3)確定算法參數(shù).種群規(guī)模n 設(shè)置為20,迭代次數(shù)gmax 設(shè)置為100,PcM 設(shè)置為0.8,Pcm 設(shè)置為0.4,PmM 設(shè)置為0.1,Pmm 設(shè)置為0.02;4)初始化種群.以同等概率在00000000-11111111 之間隨機(jī)生成n 個個體作為第一次尋優(yōu)的初始種群;5)適應(yīng)度函數(shù)設(shè)計.適應(yīng)度函數(shù)是用來判斷群體中個體的優(yōu)劣程度的指標(biāo),它是根據(jù)所求問題的目標(biāo)函數(shù)來進(jìn)行評估的.在本算法中,采用式(8)作為適應(yīng)度函數(shù);6)終止條件.終止條件設(shè)為最大迭代次數(shù),達(dá)到預(yù)定最大的迭代次數(shù),則轉(zhuǎn)步驟(10),否則進(jìn)入步驟(7),如此循環(huán),直到滿足終止條件為止;7)選擇.采用第2.2 節(jié)中改進(jìn)的選擇算子進(jìn)行選擇操作;8)交叉.根據(jù)第2.2 節(jié)中改進(jìn)的交叉概率,采用單點交叉方式來完成交叉操作;9)變異.根據(jù)第2.2 節(jié)中改進(jìn)的變異概率,采用基本變異算子來完成變異運(yùn)算;10)解碼.將最后一代種群中適應(yīng)度值最大的個體作為本算法所尋找的最優(yōu)結(jié)果,將其解碼為將0-255 之間的灰度值th,即為所求的最佳分割閾值;11)圖像二值化.將差分圖像二值化: 灰度值大于分割閾值th 的點認(rèn)為是缺陷點,將灰度值置為255; 反之,則認(rèn)為是背景點,將灰度值置為0.
利用該算法得到的閾值對差分圖像進(jìn)行二值化后得到的結(jié)果如圖3 所示.由圖3(b)可知,該算法可以準(zhǔn)確地分割出軌面中的缺陷部分,但除此以外,還分割出部分噪聲干擾區(qū)域.
圖3 原灰度圖與二值圖
本文采用形態(tài)學(xué)圖像處理方法和基于缺陷面積圖像的濾波方法來濾除圖像中的孤立噪聲點,實現(xiàn)缺陷的精確分割.
(1)閉運(yùn)算.對二值圖進(jìn)行圖像閉運(yùn)算,依次經(jīng)過膨脹、腐蝕處理的過程.閉運(yùn)算能夠填充小孔,彌合小裂縫,而總的位置和形狀不變.
(2)圖像濾波.采用基于缺陷面積的濾波方法對圖像進(jìn)行處理,本文將濾波面積設(shè)置為16,將小于16 像素的區(qū)域視為噪聲點并進(jìn)行濾除.
經(jīng)圖像濾波后的結(jié)果如圖4 所示,其中的孤立噪聲點都被濾除,精確地分割出了缺陷區(qū)域.
圖4 圖像濾波結(jié)果圖
在Matlab_R2014b 中編程實現(xiàn)本文所提出的基于背景差分與最大熵結(jié)合的鋼軌表面缺陷分割方法,并利用含有不同缺陷的鋼軌表面圖像來進(jìn)行實驗驗證.實驗所用的計算機(jī)的配置為Intel(R)Core(TM)i5-8300H CPU @ 2.30 GHz,機(jī)帶RAM 8 GB,64 位操作系統(tǒng).實驗采用500 張軌面圖像對算法進(jìn)行測試,其中300 張不含缺陷,200 張包含缺陷,缺陷總數(shù)為316.分別利用最大熵法、文獻(xiàn)[10]算法、文獻(xiàn)[11]算法以及本文算法對軌面圖像進(jìn)行缺陷分割實驗,其中文獻(xiàn)[10]算法中的參數(shù)C取10,部分實驗結(jié)果對比圖如圖5 所示,圖中列出了a、b、c、d 共4 組軌面缺陷分割結(jié)果對比圖,在每一組對比圖中從左到右依次是原軌面灰度圖、利用最大熵法、文獻(xiàn)[10]算法、文獻(xiàn)[11]算法以及本文算法所得到的缺陷分割圖.
由圖5 中所列出的4 組對比圖中可以看出,不同軌面灰度圖上的缺陷位置、大小、數(shù)量、形狀等特征都不相同,其中最大熵法的抗干擾能力差,容易將與缺陷灰度相似的背景區(qū)域誤檢為缺陷,產(chǎn)生大面積的過分割; 文獻(xiàn)[10]算法和文獻(xiàn)[11]算法比最大熵法的分割效果好,但是對于小的或者不連續(xù)的缺陷區(qū)域,容易造成漏檢,對于部分干擾區(qū)域,也會存在誤檢; 利用本文算法進(jìn)行缺陷分割的效果最好,相比較文獻(xiàn)[10]和文獻(xiàn)[11]算法,本文算法的抗干擾能力較強(qiáng),誤檢缺陷和漏檢缺陷較少,且檢測出的缺陷區(qū)域與實際缺陷區(qū)域幾乎相同,但由圖5(c)可以看出,鋼軌存在的不連續(xù)的磨損缺陷,其具有多級灰度且分布不集中,對于此類缺陷,本文算法的分割結(jié)果不理想,僅能分割出缺陷中灰度值較低部分的區(qū)域,但分割效果仍優(yōu)于文獻(xiàn)[10]和文獻(xiàn)[11]的算法.為了能夠更加客觀、科學(xué)地檢測算法的性能,本文采用精確率Pre、召回率Rec和正確率Acc三項指標(biāo)來對這4 種不同算法的性能進(jìn)行定量評價,分別為:
圖5 不同軌面缺陷算法的仿真結(jié)果對比圖
其中,Tp表示正確檢測到的缺陷圖像數(shù)目;Fn表示被漏檢的缺陷圖像數(shù)目;Fp表示被誤檢為缺陷的圖像數(shù)目;Tn表示被正確排除的非缺陷圖像數(shù)目.最終的性能比較結(jié)果見表1.
表1 不同缺陷分割算法的性能數(shù)據(jù)對比
由表1 可見,4 種算法中,本文算法的精準(zhǔn)率和正確率最高,雖然召回率略低于最大熵法,但是最大熵法很容易產(chǎn)生誤檢,其精準(zhǔn)率和正確率都很低,因此,本文算法的分割結(jié)果是最好的.從耗時性上相比,利用最大熵法進(jìn)行缺陷分割的平均耗時最短,但是其缺陷分割效果太差,本文算法的平均耗時大于最大熵法,但是小于文獻(xiàn)[10]和文獻(xiàn)[11]算法,因此綜合來看,本文算法的性能最優(yōu),能在較短的時耗中更準(zhǔn)確地分割出軌面缺陷.
本文提出了基于背景差分與改進(jìn)遺傳算法最大熵法的軌面缺陷分割算法.首先利用背景差分操作更準(zhǔn)確地凸顯出軌面的缺陷區(qū)域,以此避免了光照變化和軌面反射不均造成的影響; 然后利用改進(jìn)遺傳算法最大熵法來尋找圖像的最佳分割閾值,不僅能保證最佳閾值的準(zhǔn)確性,還能夠提高算法的運(yùn)行速度; 最后對圖像進(jìn)行二值化和圖像濾波,完成缺陷分割.仿真結(jié)果表明該算法能夠快速準(zhǔn)確地分割出軌面中的缺陷區(qū)域,缺陷分割的精確率、召回率和正確率分別達(dá)88.6%、93.4%和90.6%.
本文只對軌面缺陷分割做了進(jìn)一步的研究,在后續(xù)的工作中,還需要設(shè)計缺陷分類器來對分割出的缺陷進(jìn)行分類識別.