張發軍,彭文剛,虞成俊,何孔德
(1.機器人與智能系統市重點實驗室,宜昌 443002;2.三峽大學機械動力學院,宜昌 443002)
機器視覺技術作為一門新興技術,伴隨著人工智能技術的快速發展推動新一輪產業革命的到來[1]。近年來,隨著機器視覺技術的快速發展,機器視覺廣泛應用于農業、工業、醫學等眾多領域,也取得了相關的學術成果和實用價值,如溫室綠熟番茄檢測[2]、基于機器視覺的水下河蟹識別[3]、超視場工件識別抓取系統的設計[4]和木板的實時分類[5]。而數字圖像技術作為機器視覺的基礎環節,對整個視覺系統的正確檢測、識別和控制有著至關重要的作用。在木板紋路識別的過程中,由于燈光的選擇、硬件設備等眾多因素影響下,要保證絕對均勻的光照環境是不切實際的,故以木板為實驗對象,主要研究光照不均勻的情況下,木板的圖像增強方法。
木材作為生產原料中的一種,近年來木材的應用也越來越普遍,隨著人們對于產品質量越發關注,對所需木材的品質等級也相對有所提高。紋理是木材最重要的自然屬性之一,也是鑒定和利用木材的重要基礎[6],所討論的并非木紋的整個識別過程,而是著重研究木紋識別前期的圖像處理階段,圖像增強方法是機器視覺的基礎技術,受到廣泛的重視。Park等[7]提出了一種基于Retinex理論的雙自動編碼器網絡模型,通過組合堆疊和卷積自動編碼器來進行低光增強和降噪;Garg等[8]提出了一種基于對比度限制的自適應直方圖均衡化和百分比法相結合的水下復雜光照圖像增強算法,對比其他方法的水下圖像增強效果較好;楊衛中等[9]采用對比度受限自適應直方圖均衡化方法對水下海參圖像進行增強處理;董麗麗等[10]在直方圖均衡化(histogram equalization,HE)經典算法的基礎上,對算法做出了改進,分別引入了直方圖動態削峰技術和邊緣信息融合技術,選取曝光不足和曝光過度兩類圖像,實現了圖像質量增強的目的。對遙感圖像的研究上,邵帥等[11]利用改進的多尺度Retinex算法與局部對比度自適應調整相結合的方法來改善圖像的質量。
綜上,木板紋理分類的工程應用中,在保證準確識別的同時也要充分考慮識別效率,采用的CLAHE算法相比迭代運行的多向自相關(iterable multidirectional autocorrelation, IMA)方法和基于變分Retinex模型的圖像增強等方法較簡單,易于實現。在楊衛中等[9]研究的基礎上,對算法做改進,以期在圖像增強方面得到較為滿意的結果,為木板在線分類提供了理論基礎。
試驗樣本:各200張細紋、中紋、粗紋,共600張三種類型木板圖片,450幅圖像作為訓練集圖像,150幅作為驗證集圖像,經測量:木板圖像與實際木板的寬比為1∶1.216,如圖1所示。

圖1 木板圖像類別及實驗設備
樣本來源:宜昌金寶樂器制造有限公司。
試驗裝置:計算機配置:64位Win10系統;USB工業攝像頭(3 Mega Pixels)。
首先有針對性選擇不同類型的木板作為研究對象,分別為細紋、中紋、粗紋3種類型的木板[圖1(a)~圖1(c)]。如圖1(d)所示,在木板識別系統中,傳送帶以一定的速度運轉,木板通過傳送帶進入遮光罩,攝像頭拍取木板圖片,將每幀圖像以.jpg格式存儲在計算機的指定位置。然后,選取600張符合要求的木板圖片作為試驗樣本。
圖像灰度化處理是指將一幅彩色圖片進行灰度處理的過程,常見的圖像灰度處理方法有分量法、最小值法、平均值法及加權平均等算法。
加權平均法:對B、G、R通道取不同的權重比例,即
B=G=R=(kbB+kgG+krR)
(1)
式(1)中:kb、kg、kr分別表示B、G、R通道的權重。
人的視覺感官對藍色敏感度最低,對綠色最為敏感,因此對B、G、R這3個通道分別采用0.144、0.587、0.299的比例加權平均將得到較合理的灰度圖像。
傳統的HE算法是對圖像灰度級進行全局調整,不能有效地提高局部對比度,灰度級個數減小, 局部細節缺失,與HE相比,自適應直方圖均衡化(area histogram equalization,AHE)解決了這一難題,但AHE存在局部對比度提高過大、容易放大噪聲等問題導致圖像失真,CLAHE算法在AHE基礎上針對此現象,對局部對比度進行限制,在圖像增強方面取得了滿意的效果。
CLAHE算法步驟如下。
(1)劃分圖像:首先將原圖像的灰度圖劃分為d個大小相等且互不重疊的子塊,假設每個子塊的大小為(a,b),子塊的大小決定圖像的增強程度,通常子塊的數目取得越多,越容易出現過增強的現象。為了達到適度增強圖像的目的,子塊數目由實際所研究目標及應用環境確定。
(2)選取對比度閾值:將每個子塊的像素個數平均分到相對應子塊的每個灰度級中,得到每個灰度級所分配的平均像素個數Na,計算公式如式(2)所示:
(2)
式(2)中:nx為子塊x方向的像素個數;ny為子塊y方向的像素個數;Ng為子塊包含的灰度級數。
限定閾值如式(3)所示:
T=McNa
(3)
式(3)中:Mc為截取限制倍數,閾值T不可超過Na的Mc倍。
(3)截取像素:利用閾值T對每個子塊的灰度直方圖進行切割,將剪切到的多余像素個數平均分配到其他灰度級中,得到每個灰度級均分到的像素個數,如式(4)所示:
(4)
式(4)中:Sc為截取總的像素個數。
重分配思路可用如下方法表示:
ifG(j)>T:
G(j)=T
elifG(j)>UandG(j) G(j)=T else: G(j)+=Ne 其中U=T-Ne,G(j)為分配像素前圖像第j個灰度級對應的像素個數。 在上述分配一輪完后,由算法本身的局部性,會多出來一部分像素點沒有分配,可以把這些像素點均勻分配到目前仍小于T的灰度,循環分配,直至剩余像素為零。 (4)均衡處理:對重新分配像素后的每個子塊進行直方圖均衡化處理。 (5)插值運算:若每個子區域像素點的值僅通過映射函數進行變換得到,最終的圖像會呈現塊狀效應,因此需用線性插值對圖像每個點進行插值處理。為提高圖像質量,采用雙線性插值法,把每個子塊的中心點作為參考點,如圖2所示:其中4個參考點的坐標分別為Q11(x1,y2),Q12(x2,y2),Q21(x1,y1),Q22(x2,y1),待計算的p點像素值由其相鄰的4個參考點確定,待測點像素值f(p)的計算公式如下。 Q11、Q12、Q21、Q22為參考點;p為待求點;R1、R2為計算輔助點 首先對x方向進行線性插值運算,得R1點和R2點的像素值分別為f(R1)、f(R2): (5) (6) 再對y方向進行插值,得f(p): 綜合式(3)、式(4)得到雙線性插值結果,如式(7)所示: (7) 雙線性插值只針對周圍包括4個子塊的中心點,即4個參考點的像素點,如圖3綠色區域中的點,因圖像邊界上的點較特殊;如圖3紅色區域和藍色區域,對于紅色區域像素值只需由所在子塊的映射函數作變換可得,藍色區域像素點找到相鄰兩個參考點進行插值運算,經過上述插值處理后的圖像就會消除圖像的塊狀效應。 圖3 圖像的像素區域 (6)降噪保邊:木板紋路信息受噪聲信號影響較為嚴重,為得到質量更好的圖像,將處理后的圖像進一步采用高斯雙邊濾波處理,達到再次降噪保邊的目的。 在Python 3.6.5版本上進行仿真試驗,驗證CLAHE算法的圖像增強效果。采用木板紋路灰度圖像(細紋、中紋、粗紋等共三種類型的木板圖像)作為處理對象,分別采用HE算法,灰度線性變換,以及CLAHE算法對圖像處理,其效果對比如圖4~圖6所示。 圖4 三種方法處理后的細紋圖像對比 圖4(a)為木板細紋原始灰度圖,圖4(b)為HE變換之后的灰度圖,圖4(c)為灰度線性變換后的圖像,圖4(d)是經過CALHE算法變換后的圖像,其中圖4(e)~圖4(h)分別為相對應的直方圖。 如圖4(b)、圖5(b)經HE變換后的圖像下半區域較暗,左上角過亮,出現過增強的現象,導致圖像出現失真。經灰度線性變換后的圖4(c)、圖5(c)、圖6(c),上部分稍微偏亮,且圖4(c)左、右上角和圖6(c)右上角局部區域出現失真,采用CLAHE算法處理的圖像相對前兩種算法,不僅突出了木板的紋路信息,且圖像一般無失真和過增強現象,直方圖灰度級分布較均勻,大致服從所擬合的正態分布[圖4(h)、圖5(h)、圖6(h)紅色虛線處]。 圖5 三種方法處理后的木板中紋圖像對比 圖6 三種方法處理后的木板粗紋圖像對比 為表明CLAHE算法的優越性,從定量的角度出發,采用這3種方法處理后的圖像與原始圖像之間的平均絕對誤差(mean absolute error,MAE)、峰值信噪比(peak signal to noise rate,PSNR)來進行對比。 3.2.1 MAE方法 (8) MAE表示失真圖像與原始圖像對應像素點值的絕對誤差平均值,MAE越大,表明失真圖像與原始圖像的誤差越大。 3.2.2 PSNR方法 PSNR是基于圖像像素點灰度值進行統計分析,可由均方誤差(mean square error,MSE)簡單定義,是一個評價圖像質量的重要指標之一,均方誤差MSE由式(9)計算可得: (9) (10) 式中:Mmax表示灰度圖像能夠取到最大的灰度,對于8位灰度圖像,Mmax取值為255。 通常,MAE越小,表明圖像的處理效果也相對較好,PSNR越大,圖像噪聲強度越低,說明圖像處理效果好。表1是圖4~圖6中的圖像經HE變換,灰度線性變換及CLAHE變換后的MAE,PSNR和算法處理所用時間,結果表明CALHE算法在圖像增強方面有更好的效果。 表1 圖4~圖6所示圖像的MAE、PSNR和算法處理時間 對訓練集中的450幅含細紋、中紋、粗紋的木板圖像進行處理,得到表2中的MAE, PSNR和處理時間的均值。經分析,HE變換后的圖像效果不理想,容易導致木板圖像出現失真或過增強,因木板圖像紋路信息通過人眼觀察有時也不易發現,如深色細紋,故灰度線性變換后的圖像不能很好地突出紋路,CLAHE算法補充了上述兩種方法的缺陷,降低了噪聲的影響,一般不會出現圖像的失真,能夠達到后期木紋準確識別的目的。但CLAHE方法唯一不足的是運算時間相對較長,在保證正確識別狀態下同時會相對降低木紋的識別速率。 表2 450幅木板圖像MAE、PSNR和處理時間的平均值 利用CLAHE方法對圖像處理時,窗口大小的不同,圖像質量有明顯的差異,為了CLAHE算法適用光照不均勻的木板圖像,針對窗口大小參數進行有效的調整,如圖7所示,分別為不同窗口大小的處理圖像。 圖7 不同窗口大小的CLAHE變換對比 通常,其他系數不變的情況下,窗口大小越大即子塊數目越少時,圖像的局部對比度相對較弱;窗口大小越小即子塊數目越多時,圖像的局部對比度會增強。如圖7(b)、圖7(c)引入了大量的噪點;圖7(e)白色區域,圖像局部出現失真;圖7(f)下區域稍微的過增強;圖7(d)處理效果較好,故選擇窗口大小為(8, 8)定量結果分析如表3所示。 表3 不同窗口大小的MAE、PSNR 分別隨機抽取樣本中的各50張木板細紋圖像、中紋圖像及粗紋圖像,組成含150張圖像的新測試集,分別利用HE變換,灰度線性變換和CLAHE算法對新的測試圖像進行處理,通過后期的同一木紋識別算法對上述方法處理后的圖像進行紋理識別,如圖8~圖10所示分別為細紋,中紋,粗紋圖像經木紋識別算法處理后的效果圖。 圖8 木紋識別算法處理的細紋對比 圖9 木紋識別算法處理的中紋對比 圖10 木紋識別算法處理的粗紋對比 圖8~圖10中,木板的劃線是由木紋識別算法根據紋路擬合的。經分析,圖8(b)左、右兩側因圖像出現失真等原因,木紋識別算法不能進行有效識別,圖8(c)出現過擬合,圖8(d)擬合效果相對較好。圖9(b)、圖9(c)和圖10(b)、圖10(c)紋路大量出現錯誤擬合的現象,圖9(d)的紋路擬合基本與木紋一致。經驗證,木紋識別算法在基于CLAHE方法得到的圖像基礎上進行紋路識別,正確率相對于其他兩種算法有了很大的提升,解決了在光照不均勻的情況下木板紋路錯誤識別的這一難題。 (1)以細紋、中紋、粗紋三種類型的木板圖像為研究對象,針對受光不均勻等眾多因素導致木板圖像模糊和紋路不清晰,利用CLAHE算法拉伸圖像灰度動態范圍,增強圖像對比度,突出圖像的細節信息,由于木紋易受噪聲的影響,在CLAHE方法的基礎上通過高斯雙邊濾波算法對圖像再次進行降噪保邊處理,從定性與定量的角度都表明,得到的圖像質量相對HE變換和灰度線性變換更好。 (2)為了CLAHE算法適用于光照不均勻的木板圖像,修改了CLHAE算法的窗口大小系數,通過試驗表明,取窗口大小為8×8可以得到較滿意的圖像效果,為后續的木紋正確識別提供了先決條件。 (3)利用MAE、PSNR圖像質量評價指標和最終的實驗,分別對比HE變換,灰度線性變換以及CLAHE算法處理的圖像效果,客觀證明了CLAHE算法在圖像降噪、突出細節等方面具有更大的優勢。該方法為同類型圖像的研究提供了重要的參考價值,同時為工業應用中的木板紋路檢測與識別帶來了技術上的幫助。



3 試驗結果與分析
3.1 定性結果與分析



3.2 定量結果與分析



3.3 算法改進


3.4 實驗結果分析



4 結論