陳獻(xiàn)明, 王阿川*, 王春艷
(1. 東北林業(yè)大學(xué) 信息與計算機(jī)工程學(xué)院,黑龍江 哈爾濱 150040;2. 扎蘭屯職業(yè)學(xué)院,內(nèi)蒙古 扎蘭屯 162650)
由于木材加工自動化程度低、缺陷識別不夠精確、鋸切方案不夠合理,我國木材原料的使用效率較低[1]。為了顯著提高木材的使用效率,國內(nèi)外學(xué)者提出了多種木材缺陷的檢測方法:如3D掃描技術(shù)分析法[2]、基于多模型融合的木材缺陷研究[3]、鉆入阻抗法檢測[4]、基于C-V模型的缺陷圖像特征提取[5]、一階統(tǒng)計特征檢測法[6]、基于快速l1和LBP算法的缺陷檢測技術(shù)[7]、改進(jìn)C-V模型與小波變換[8]等。然而,木材缺陷的形狀、顏色、尺寸、紋理等特征千差萬別,給缺陷識別與分割帶來了困難,這使得目前的木材缺陷檢測方法存在著一定的局限性,難以做到對木材缺陷進(jìn)行統(tǒng)一的識別與分割。
近年來,基于深度學(xué)習(xí)的圖像檢測方法發(fā)展迅猛,在圖像的識別、分類和目標(biāo)檢測領(lǐng)域都取得了一些成就。針對木材缺陷的識別檢測及帶有缺陷的木材加工方案優(yōu)選問題,本文提出了將深度學(xué)習(xí)中的Faster-RCNN檢測模型[9]用于木材缺陷圖像識別與定位,結(jié)合NL-Means[10]、線性濾波等方法用于木材缺陷圖像的去噪和增強(qiáng),之后提取缺陷的邊緣特征,獲得了較好的分割效果。為了解決傳統(tǒng)缺陷加工方案木材損耗較多,而按照缺陷邊緣進(jìn)行加工,切削路線復(fù)雜的問題,本文提出了一種改進(jìn)的橢圓擬合算法擬合木材缺陷輪廓,兼顧節(jié)約木材和簡化切削路線,降低了缺陷修補(bǔ)的木材填充量,提高了木材的使用效率,為自動化加工帶有缺陷的木材提供了優(yōu)選方案。
由于木材表面缺陷復(fù)雜多樣,因此難以取得比較好的分割和識別效果。本文利用Faster-RCNN檢測模型確定木材缺陷定位邊框及缺陷類型,再利用NL-Means、線性濾波等方法對框內(nèi)區(qū)域進(jìn)行精細(xì)化分割,解決了彩色圖像分割時容易受到復(fù)雜背景干擾,難以得到閉合輪廓曲線的問題[11],得到了比較好的結(jié)果。
Faster-RCNN是一種結(jié)合Fast-RCNN[12]與區(qū)域生成網(wǎng)絡(luò)(Region Proposal Network,RPN)的新型目標(biāo)檢測模型。Faster-RCNN模型將目標(biāo)檢測的四個基本步驟: 提取特征、獲取感興趣區(qū)域(Region of Interest,ROI)、目標(biāo)識別和邊框回歸統(tǒng)一到一個深度網(wǎng)絡(luò)框架中。網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 Faster-RCNN網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Structure of Faster-RCNN network
RPN是一種用于產(chǎn)生高可靠性候選區(qū)域框的網(wǎng)絡(luò),它與Fast-RCNN共享卷積特征,通過滑動窗口對提取到的特征圖滑動卷積,得到不同尺度的錨框(Anchor)。每個滑動窗口生成一個特征向量,這個特征向量被輸送到邊框回歸層和分類層。在邊框回歸層可以得到對應(yīng)的4個坐標(biāo)位置編碼;在分類層中可以得到ROI中物體目標(biāo)的概率。隨后將得到的坐標(biāo)編碼和判定概率輸入到ROI池化層。
在得到預(yù)測方框的坐標(biāo)參數(shù)后,為了降低預(yù)測方框與真實(shí)方框的誤差,對坐標(biāo)參數(shù)進(jìn)行回歸調(diào)整,調(diào)整方式如式(1)、(2)所示:
(1)
(2)
式中:x,y,w和h分別表示預(yù)測方框的中心坐標(biāo)點(diǎn)、寬度和高度,xa,ya,wa和ha表示生成anchor的中心坐標(biāo)、寬度和高度,x*、y*、w*和h*表示目標(biāo)真實(shí)方框的中心坐標(biāo)、寬度和高度。
NL-Means(Non-Local Means)是一種將整體圖像作為作用域的去噪方法,它以像素塊為單位,在圖像中尋找相似區(qū)域,再對這些相似的區(qū)域求平均,以達(dá)到去除圖像噪聲的目的。NL-Means的處理過程如式(3)、(4)所示:
(3)
(4)
線性濾波和對比度、亮度調(diào)整是常見的圖像增強(qiáng)操作。卷積濾波器是一個行數(shù)和列數(shù)都是奇數(shù)的二維數(shù)組,中間的元素對應(yīng)待計算的像素點(diǎn),其它的元素對應(yīng)這個像素點(diǎn)的鄰近像素點(diǎn)。線性濾波具體操作為:每個二維圖像像素點(diǎn)的鄰域像素值和對應(yīng)卷積濾波器元素乘積之和作為該像素點(diǎn)新的值,如圖2所示。
圖2 卷積濾波器Fig.2 Convolutional filter
對比度是圖像中顏色間的差別程度。對比度越大,顏色間的反差越明顯,圖像顯示越清晰。亮度是顏色的相對明暗程度,它使得底層的特征諸如形狀、顏色等可以表現(xiàn)出來[13]。對圖像對比度和亮度的調(diào)整如式(5)所示:
Gi,j=a(Ii,j-M)+b×M,
(5)
式中:Ii,j表示原圖像中(i,j)位置的像素值,Gi,j表示經(jīng)對比度和亮度調(diào)節(jié)之后的數(shù)值,a表示對比度系數(shù),b表示亮度系數(shù),M表示圖像的RGB像素均值。
橢圓擬合是圖像內(nèi)幾何形狀檢測的重要部分,它在人臉識別、瞳孔識別、細(xì)胞檢測以及復(fù)雜物體的形狀表達(dá)等領(lǐng)域有著廣泛的應(yīng)用[14]。橢圓擬合的基本思想是:對于給定平面上的一組樣本點(diǎn),尋找到距離所有樣本點(diǎn)最近的橢圓。最小二乘法是較好的橢圓擬合方法[15],其基本思想是追求整體誤差的最小化。橢圓的一般方程如式(6)所示:
x2+gxy+cy2+dx+ey+f=0,
(6)
由式(6)可知,當(dāng)?shù)玫叫枰獢M合的5個坐標(biāo)點(diǎn)后,即可得到一個五元一次方程組,進(jìn)而求得g、c、d、e、f。在實(shí)際應(yīng)用中得到的樣本點(diǎn)遠(yuǎn)遠(yuǎn)大于5,會得到一個超定方程,通過最小二乘法可以求出其誤差最小的解。
根據(jù)橢圓上N個具有誤差的坐標(biāo)點(diǎn)(xi,yi),i=1,2,3...,N,將每個坐標(biāo)點(diǎn)(xi,yi)代入橢圓一般方程,假設(shè)會產(chǎn)生誤差εi,極小化方程誤差εi的平方和J如式(7)所示:
(7)
根據(jù)極值原則,通過求解上述方程即可求得參數(shù)(g,c,d,e,f),進(jìn)而得到橢圓的中心點(diǎn)(x0,y0)、旋轉(zhuǎn)角θ、及長短軸a和b。由此得到擬合后的橢圓方程。
基于最小二乘法擬合出的橢圓,一部分特征點(diǎn)在該橢圓外,其余特征點(diǎn)在該橢圓內(nèi),所有特征點(diǎn)到該橢圓方程的和最小。直接利用該方法擬合出的缺陷輪廓不能滿足木材缺陷加工的實(shí)際需要。因此本文提出了一種改進(jìn)的最小二乘橢圓擬合算法,以求出點(diǎn)集的優(yōu)選橢圓輪廓。其方法是:不斷淘汰對橢圓擬合影響極小的點(diǎn),當(dāng)無法繼續(xù)減小樣本點(diǎn)范圍時,逐步擴(kuò)大擬合橢圓的長軸和短軸,最終得到點(diǎn)集的優(yōu)選橢圓輪廓。
橢圓的定義為:平面內(nèi)到定點(diǎn)F1、F2的距離之和等于常數(shù)的動點(diǎn)P的軌跡,其中F1、F2是橢圓的兩個焦點(diǎn),2a是橢圓的長軸長。其數(shù)學(xué)表達(dá)式為:|PF1|+|PF2|=2a。根據(jù)定義可以得到:若平面上的點(diǎn)到F1、F2的距離之和大于2a,則表明該點(diǎn)在橢圓外部;若等于2a,則表明在橢圓上;若小于2a,則表明該點(diǎn)在橢圓內(nèi)部。由于點(diǎn)的位置對于橢圓的擬合至關(guān)重要,如果貿(mào)然淘汰已經(jīng)擬合的點(diǎn),將剩余點(diǎn)進(jìn)行下次迭代,會出現(xiàn)未參與下次迭代的某些點(diǎn)出現(xiàn)在新擬合橢圓外部的情況,導(dǎo)致擬合效果變差,因此本文在計算平面上的點(diǎn)到兩個焦點(diǎn)的距離之和時,加入大于1的比例系數(shù)λ,新的判斷方式如式(8)所示:
λ(|PF1|+|PF2|)=2a,
(8)
即:將到F1、F2距離之和放大λ倍后仍小于2a的點(diǎn)淘汰,將其余點(diǎn)參加下一次擬合計算,具體算法步驟如下:
步驟1 :通過最小二乘法求出所有特征點(diǎn)最初的橢圓擬合方程,并計算出橢圓面積;
步驟2 :遍歷所有保留的特征點(diǎn),根據(jù)λ倍的點(diǎn)到橢圓兩個焦點(diǎn)距離和與2a的關(guān)系,將到兩焦點(diǎn)距離之和放大λ倍后仍小于2a的點(diǎn)剔除,保留其余點(diǎn);
步驟3:將保留的點(diǎn)再次進(jìn)行最小二乘法擬合,計算擬合后橢圓的面積,并與上一次擬和的面積進(jìn)行對比,如果面積增大轉(zhuǎn)步驟2,否則轉(zhuǎn)步驟4;
步驟4:逐步擴(kuò)大最后一步擬合出橢圓的長軸和短軸,直至滿足要求為止,結(jié)束迭代,得到了特征點(diǎn)集的優(yōu)選橢圓輪廓。
本文算法分為缺陷的定位和識別、缺陷的精細(xì)分割以及缺陷的邊緣擬合3個步驟。在實(shí)現(xiàn)缺陷的定位與識別時主要使用Faster-RCNN檢測模型,F(xiàn)aster-RCNN檢測模型包括深度神經(jīng)網(wǎng)絡(luò)層、RPN、全連接層3部分:其中深度神經(jīng)網(wǎng)絡(luò)層用來提取卷積特征,RPN用來提取感興趣區(qū)域,最后的全連接層用來進(jìn)行分類和邊框校正;在實(shí)現(xiàn)缺陷的精細(xì)分割時主要采用各種圖像增強(qiáng)方法:其中通過NL-Means對原圖像去除噪聲,通過線性濾波和對比度、亮度調(diào)整提升圖像目標(biāo)與背景區(qū)域反差,再進(jìn)行二值化等操作,隨后對缺陷邊緣進(jìn)行提取。在實(shí)現(xiàn)缺陷的邊緣擬合時,使用本文改進(jìn)的算法擬合所提取的缺陷邊緣即可。
本文實(shí)驗(yàn)硬件環(huán)境為CPU:i5-8400,2.8 GHz,8 GB內(nèi)存;GPU: GTX 1060,6 G顯存;軟件環(huán)境為:Windows 10;編程語言為Python,python語言有強(qiáng)大的類庫,是一種解釋型、交互式、面向?qū)ο蟮哪_本程序設(shè)計語言,具有廣泛的應(yīng)用;算法實(shí)現(xiàn)依托的工具為TensorFlow機(jī)器學(xué)習(xí)框架和PyCharm集成開發(fā)環(huán)境。TensorFlow是一個采用數(shù)據(jù)流圖,用于數(shù)值計算的開源軟件庫,被廣泛用于機(jī)器學(xué)習(xí)和深度神經(jīng)網(wǎng)絡(luò)方面的研究。木材缺陷圖像數(shù)據(jù)集樣本總數(shù)為1 139幅,其中死節(jié)(437幅),蟲眼(342幅),活節(jié)(360幅)3類,每個樣本尺寸為400 pixel×500 pixel。
本文選用死節(jié)、蟲眼和活節(jié)3種典型木材缺陷圖像進(jìn)行檢測。蟲眼和死節(jié)圖像的目標(biāo)和背景差異較明顯,在圖像平滑后使用線性濾波可使圖像背景區(qū)域像素值提高,與目標(biāo)區(qū)域差異變大,更接近白色。活節(jié)圖像在節(jié)子和木材背景之間差異較小,整體像素值較大,因此不需要使用線性濾波處理圖像來提升像素值。具體算法步驟如下:
圖3 算法實(shí)現(xiàn)流程圖Fig.3 Flow chart of algorithm implementation
步驟1:利用標(biāo)注好的木材缺陷圖像對Faster-RCNN深度網(wǎng)絡(luò)進(jìn)行訓(xùn)練,得到具有對木材缺陷圖像定位和分類能力的檢測模型;
步驟2:使用訓(xùn)練好的模型對原始圖像進(jìn)行檢測,獲取木材缺陷邊框及缺陷類別;
步驟3:使用NL-Means方法對原始木材缺陷圖像去除噪聲;
步驟4:根據(jù)Faster-RCNN檢測模型識別出的缺陷類型,決定是否對去噪后的圖像使用線性濾波方法對圖像進(jìn)行增強(qiáng)處理,擴(kuò)大木材缺陷邊界與背景之間差異;
步驟5:對線性濾波處理后的圖像提升對比度和亮度,之后再進(jìn)行二值化操作,使背景區(qū)域的像素值達(dá)到最大,通過截斷操作,區(qū)分背景區(qū)域與前景區(qū)域;
步驟6:對二值化處理后的圖像,在Faster-RCNN所確定的邊框內(nèi),消除離散點(diǎn),根據(jù)像素差異提取邊緣,并獲取木材缺陷的邊緣特征點(diǎn)集;
步驟7:使用改進(jìn)的橢圓擬合算法求出木材缺陷的優(yōu)選輪廓。
算法流程如圖3所示。
本文選取死節(jié)、蟲眼、活節(jié)3種典型的彩色木材缺陷圖像對其進(jìn)行實(shí)驗(yàn),木材表面缺陷圖像如圖4所示。其中(a)和(b)分別是不帶紋理和帶紋理的死節(jié)圖像,(c)和(d)分別是缺陷區(qū)域和背景差異較小和缺陷區(qū)域和背景差異較大的蟲眼圖像,(e)和(f)分別是活節(jié)與背景相似程度較大和活節(jié)與背景相似程度較小的活節(jié)圖像。
圖4 木材表面缺陷圖像Fig.4 Defect images of wood surface
使用訓(xùn)練好的Faster-RCNN網(wǎng)絡(luò)對實(shí)驗(yàn)樣本進(jìn)行檢測,檢測結(jié)果如圖5所示。從圖5可以看出,本文算法不但可以準(zhǔn)確對缺陷進(jìn)行定位,而且將缺陷的全部區(qū)域標(biāo)定出來,具有較好的缺陷識別能力。
對比多次試驗(yàn)效果,本文算法各步驟參數(shù)值選擇如下:在對圖片進(jìn)行分割時,首先,使用NL-Means方法對圖像進(jìn)行去噪,式(4)中濾波系數(shù)h取值為50;然后利用線性濾波方法實(shí)現(xiàn)圖像增強(qiáng),當(dāng)識別結(jié)果是死節(jié)和蟲眼時,圖2中參數(shù)m5取值為11,其他參數(shù)值取值為-1;當(dāng)識別結(jié)果為活節(jié)時,m5取值為1,其他參數(shù)值取值為0;其次,對圖像進(jìn)行增大對比度和亮度操作,式(5)中對比度系數(shù)a取5,亮度系數(shù)b取2.5,保存像素值在250~255的點(diǎn),并進(jìn)行二值化處理,若像素周圍與它像素值相同的點(diǎn)的數(shù)量小于5,將它作為離散點(diǎn)并消除;最后,使用Sobel算子根據(jù)像素差異提取缺陷邊緣特征點(diǎn)集,選擇定位邊框內(nèi)最大的連通域,并對點(diǎn)逐個判斷,保留距離連通域較近的點(diǎn)作為缺陷邊緣,實(shí)現(xiàn)了對木材缺陷圖像的精細(xì)分割。
圖5 缺陷分類及定位結(jié)果Fig.5 Defect classification and location results
圖6 木材表面缺陷分割過程Fig.6 Segmentation of wood surface defects
將提取的缺陷邊緣內(nèi)部進(jìn)行填充,填充后的圖像如圖7所示。從圖7中可以看出,采用本文算法分割后的圖像,受背景區(qū)域影響較小,輪廓曲線比較平滑,沒有過分分割的情況,達(dá)到了比較好的效果。
圖7 木材表面缺陷分割結(jié)果Fig.7 Segmentation of wood surface defects
為了評價本文提出算法對木材缺陷分割的效果,將本文方法分割出的圖像與人工分割出的理想目標(biāo)[16]進(jìn)行對比,以漏分率(Leakage Rate,LR)、錯分率(Misclassification Rate,MR)和相似率(Similarity Rate,SR)作為評價標(biāo)準(zhǔn)。定義的標(biāo)準(zhǔn)目標(biāo)圖像和本文分割圖像分別為Igold-truth、Isegmented。
漏分率LR定義如式(9)所示:
(9)
錯分率MR定義如式(10)所示:
(10)
相似率SR定義如式(11)所示:
(11)
利用式(9)~式(11)對分割后圖像進(jìn)行計算,缺陷圖像分割評價結(jié)果如表1所示,從表1中可以看出,本文算法分割后的圖像具有較小的漏分率和錯分率,具有較大的相似率,分割效果較好。
在實(shí)際生產(chǎn)中,一般只對死節(jié)和蟲眼等對木材結(jié)構(gòu)性能影響較大的缺陷進(jìn)行加工,對活節(jié)這種影響較小的缺陷不做處理。為保持板材較大的幅面,對木材缺陷比較好的處理方法是先將缺陷部分切除,隨后填充相應(yīng)大小的優(yōu)質(zhì)木料,如果切除區(qū)域過多,相應(yīng)填充區(qū)域也較大。
表1 木材缺陷圖像分割性能評價Tab.1 Evaluation of wood defect image segmentation performance (%)
對缺陷的邊緣特征點(diǎn)集采用改進(jìn)的橢圓擬合方法進(jìn)行橢圓擬合,式(8)中參數(shù)λ取值為1.005,為了評價所獲取的優(yōu)選擬合輪廓效果,與木材加工企業(yè)采用的人工劃線方法識別木材表面缺陷確定的方案進(jìn)行對比,將缺陷輪廓上下左右的4個極值所確定的矩形作為原方案,則可減少的木材填充率(Reduced Filling Rate,RFR)如式(12)所示:
(12)
式中:wi和hi分別為第i個樣本矩形框的寬和高,ai和bi分別為第i個樣本橢圓擬合后的長軸和短軸長。原始方案與新方案填充區(qū)域如圖8所示,通過對比可以看出,采用本文方法擬合的輪廓不但包含全部缺陷部分,還大大降低了木材的切削量,對每個實(shí)驗(yàn)圖像測算RFR結(jié)果如表2所示,可以看出本文方法大大降低了死節(jié)缺陷和活節(jié)缺陷在加工時的木材消耗,在一定程度上降低了蟲眼缺陷加工時的木材消耗。結(jié)合實(shí)際生產(chǎn)情況,進(jìn)一步對全部樣本中死節(jié)和蟲眼樣本進(jìn)行測算,可在缺陷修補(bǔ)這一步減少約10%的木材填充量。
圖8 優(yōu)選分割方案與原方案對比Fig.8 Comparing of the optimum segmentation scheme with the original scheme
死節(jié)(a)死節(jié)(b)蟲眼(c)蟲眼(d)活節(jié)(e)活節(jié)(f)RFR10.9917.045.544.5919.7012.09
本文算法中邊框檢測、圖像分割、輪廓擬合所需時間如表3所示,結(jié)合表3與圖像可以看出,每個樣本邊框檢測和輪廓擬合兩個步驟所耗費(fèi)時間相對較少,而圖像分割所耗費(fèi)的時間占總流程耗費(fèi)時間比重較大,圖像分割耗費(fèi)的時間與缺陷區(qū)域面積呈正相關(guān)。當(dāng)缺陷區(qū)域較小時,耗費(fèi)時間較少,當(dāng)缺陷區(qū)域較大時,耗費(fèi)時間相對較多??傮w來說,本文算法花費(fèi)時間較少,可以在較短的時間實(shí)現(xiàn)木材缺陷的識別與定位、分割和輪廓擬合,可以在較短的時間內(nèi)獲取木材缺陷的加工方案。
表3 木材缺陷圖像處理時間Tab.3 Image processing time of wood defects (s)
本文結(jié)合Faster-RCNN目標(biāo)檢測模型、NL-Means方法和線性濾波等方法,實(shí)現(xiàn)了對木材死節(jié)、蟲眼、活節(jié)的識別與分割。實(shí)驗(yàn)表明,本文算法可以準(zhǔn)確識別出缺陷類型、確定缺陷的定位邊框。該算法不僅對具有較明顯邊緣的死節(jié)、蟲眼有很好的分割效果,而且對邊緣不明顯的活節(jié)也具有很好的分割效果,降低了噪聲對分割的影響,使缺陷的輪廓更為平滑清晰。采用改進(jìn)的最小二乘法擬合橢圓可以較好地擬合缺陷輪廓,相比傳統(tǒng)人工劃線方法確定方案,使用本文方案通過銑削方式加工木材缺陷不但提高了加工的自動化水平,還在缺陷修補(bǔ)這一環(huán)節(jié),平均可減少約10%的木材填充量,節(jié)省了大量的木材。本文提出方法可為木材企業(yè)加工生產(chǎn)以及相關(guān)研究提供相應(yīng)的理論參考。