曲福恒,楊勇,胡雅婷,陳學廣
(1長春理工大學 計算機科學技術學院,長春 130022;2吉林農業(yè)大學 信息技術學院,長春 130118)
硬度是固體材料表面抵抗變形或破壞的能力,是零件機械性能的一個綜合體現,通過對硬度的測量可以得到零件的諸多信息[1-3]。實際中應用最廣的是壓痕硬度,它根據壓痕尺寸來確定材料的硬度值。由于壓痕尺寸較小,傳統方法依靠顯微鏡下的人工測量,難以達到精度要求[4]。利用圖像處理技術進行全自動的硬度檢測避免了這方面的問題[2,4]。這類方法主要分為兩步:首先通過圖像處理技術提取出零件壓痕圖像四個角點(原文獻[2,4]中稱為四邊形頂點)的位置坐標,根據角點的坐標信息計算出其對角線的長度。然后根據圖像像素和實際長度的換算關系利用硬度的計算公式得出材料的硬度值。角點定位的準確程度直接影響著最終的檢測結果,而硬度圖像的復雜性使角點定位成為硬度自動檢測的難點和關鍵點。硬度圖像干擾嚴重,傳統角點檢測算法無法定位目標區(qū)域角點?,F有文獻中的硬度檢測沒有直接利用角點檢測算法來尋找目標區(qū)域的角點,而是采用直線擬合目標邊緣特征點再求交點的方法來確定角點[2,4]。由于圖像邊緣彎曲復雜、雜質干擾嚴重,這種單獨依靠邊緣信息的方法精度必然受到影響,見圖6、圖8(g)。
目前的角點檢測算法分為兩大類,一類是以灰度變化來定義角點的算法。典型算法包括Harris算法[5],SUSAN 算法[6],LoG(Laplacian of a Gaussian)算法[7]等。這些算法在硬度圖像角點區(qū)域由于受噪聲和雜質的影響無法找到真正角點,見圖8(a)-(e)。而硬度圖像邊緣區(qū)域受雜質干擾具有明顯的灰度變化,會在邊緣附近檢測到大量的非目標區(qū)域角點。一類是基于邊緣信息的角點檢測算法,這類算法通過尋找圖像邊緣中方向變化較大的點來確定角點的位置[8-10]。但由于硬度圖像的邊緣本身歪曲復雜,見圖1,會把邊緣上的曲率較大的點當做角點[見圖8(f)],而目標區(qū)域的真正角點由于干擾嚴重無法檢測到。綜上可知,傳統角點檢測算法不適合于復雜背景下目標區(qū)域的角點檢測,其是當目標區(qū)域具有模糊、歪曲的邊緣時效果更不理想。本文針對硬度圖像的特點設計一種新的角點檢測算法來解決復雜背景下目標區(qū)域的角點檢測問題,使其可以直接對硬度圖像進行角點精確定位。算法中角點的確定同時考慮了檢測點兩個方向的灰度變化信息與邊界的形狀信息,與傳統的角點檢測算法或直線求交確定角點的方法相比具有更好的檢測精度、魯棒性和適應性。
圖1 原始硬度圖像Fig.1 Original image
通過大量的數據分析我們發(fā)現,硬度圖像中盡管雜質和噪聲較多,但目標區(qū)域的內部灰度具有明顯的一致性,如圖1所示,由此本文提出利用灰度的旋轉變化來尋找角點的思想。首先以給定檢測區(qū)域Ω內的任意一個像素點P(x,y)作為候選角點。以P為圓心,做一條長度為d的虛擬半徑R,記半徑R上所經過的像素點的灰度總和為G0。然后讓半徑R以給定的角度dθ進行逆時針(或者順時針)旋轉。設初始半徑上有點(x(0),y(0)),則經過k次逆時針旋轉后的坐標(x(k),y(k))(順時針公式類似):
圖2 算法示意圖Fig.2 Principle diagram of the algorithm
若P為真實的角點,如圖2中點a的位置,則在邊界附近旋轉前后灰度將有明顯的變化。從目標外部走進內部時,會遇到灰度減少的最大值記Gmax;當走出時,會遇到灰度減少的最小值Gmin。這兩個最值出現位置的角度差是接近于90度的,如圖3(a)所示。反之,如果O不是真實的角點,如圖2中點b的位置,則不會出現灰度明顯減少的位置,即 ||Gmax和 | Gmin|相對較小,且兩者角度間隔接近90度的概率也很小,如圖3(b)。本文以 | Gmax-Gmin|以及Gmax、Gmin出現位置的角度差作為判斷依據進行角點檢測。令G(x,y,θ)表示當前旋轉角度為θ時的灰度變化值,則區(qū)域D內角點坐標(x*,y*)表示為:
圖3 灰度減少與旋轉角度關系圖Fig.3 Relationships between image gray and angles
圖3中是硬度圖像中角點與非角點處旋轉灰度減少值的變化曲線。從圖中可以看出,角點處|Gmax-Gmin|>4000,而非角點處 |Gmax-Gmin|<400,明顯小于角點處的值。從出現的位置看(橫坐標),角點處Gmax、Gmin的角度間隔大約在95到100度之間,非角點處的間隔小于10度,可以看出兩者的灰度變化曲線在這兩點上均有著明顯的差異。
檢測分為角點區(qū)域的初步確定和角點檢測兩個階段。直接在整幅圖像內進行角點檢測運算量較大,通過確定角點區(qū)域可以降低計算復雜度。
2.2.1 角點區(qū)域的確定
角點區(qū)域的確定遵循兩個原則。第一,確定的所有區(qū)域的并集包含硬度圖像的全部角點。第二,區(qū)域的總面積盡可能小。本文采取直線求交點的方式初步估計出四個角點,再以每個點為中心選擇一定面積的區(qū)域作為角點區(qū)域。主要步驟如下。(1)運用圖形學方法估計出目標所在區(qū)域記為T,結果見圖7。(2)對于提取出來的目標區(qū)域,利用canny算子提取目標區(qū)域邊緣。(3)對提取的邊緣進行hough變換來提取直線。(4)把求出的四條直線的交點按逆時針方向記為Q1、Q2、Q3、Q4,并以Qi(i=1,2,3,4)為中心以四邊形Q1Q2Q3Q4邊長均值的八分之一確定一個正方形區(qū)域Si(i=1,2,3,4)。(5)確定角點檢測區(qū)域Ωi=Si?T(i=1,2,3,4),如圖7。目標邊緣的復雜性可能導致hough變換無法直接定位四條邊界直線,或者找到的直線與邊界的方向偏離較大,見圖5。本文利用hough變換尋找多條直線再選擇出兩組近似平行但具有一定距離的直線來確定圖像的邊緣方向,見圖6。
2.2.2 角點檢測
角點檢測區(qū)域確定后,對于任意給定點p(x,y)∈Ωi(i=1,2,3,4),需要確定旋轉半徑的長度d與旋轉角度dθ。在角點區(qū)域確定階段中,雖然提取的四條直線與真實的邊界有一定的偏差,但其反映了邊界的大體位置與走向,因此沒有必要讓半徑旋轉360度來尋找角點。對于給定的角點檢測區(qū)域,根據上面確定的邊界方向確定旋轉時初始半徑和終止半徑的方向,按照逆時針的順序選擇其中一條為始邊另一條為終邊的原則進行旋轉。半徑的長度取為四邊形Q1Q2Q3Q4邊長均值的三分之一。每次旋轉的偏轉角度選擇的過小會導致計算量的增大,過大會導致檢測不準確。實驗發(fā)現,旋轉角度取為3度時已經具有良好的檢測能力。當旋轉半徑長度d、旋轉角度dθ以及角度差閾值δ確定以后,根據公式(2)在檢測區(qū)域Ωi(i=1,2,3,4)內確定最終的四個角點。
圖4 canny算子邊緣提取結果Fig.4 Edge detection using canny
圖5 Hough變換提取的直線Fig.5 Line extraction using Hough transform
圖6 處理后直線Fig.6 Final results of line extraction
圖7 提取的角點區(qū)域Fig.7 Corner region after extraction
圖8 不同算法角點檢測結果Fig.8 Corner detection results of different algorithms
提出的方法與經典的角點檢測算法進行了對比,對比的算法包括Harris算法[5]、Harris-Laplace算法[11]、Susan 算法[6]、Gilles算法[12]、LOG 算法[7]以及He-Yang算法[8]。此外,還與兩種直線求交確定角點(嚴格來說是四邊形頂點,因為這類不是角點檢測算法而是根據硬度圖像特點設計的算法)方法進行了對比,一個是基于hough變換的方法,另一個是基于canny邊緣檢測與直線擬合的方法。
從圖8可以看出經典的角點檢測算法無法檢測到硬度圖像的角點。Harris算法[5]、Harris-Laplace算法[11]、Susan 算法[6]、Gilles算法[12]、LOG 算法[7]都是基于灰度變化定義角點的,由于硬度圖像中大量雜質、噪聲的存在,在目標區(qū)域邊緣附近產生了大量灰度變化幅度大的點,這類算法會把這些點當作角點而無法找到真正角點,見圖8(a)-(e)。He-Yang算法[8]是最近提出的一種基于邊緣信息的角點檢測算法,如圖8(f)所示其結果很不理想。這是由兩方面引起的,一方面,硬度圖像邊緣受雜質干擾嚴重,He-Yang算法在邊緣檢測階段無法找到硬度圖像的邊緣。另一方面,硬度圖像邊緣形狀彎曲復雜,算法無法區(qū)分邊緣彎曲度大的點和真實的角點。基于直線求交的方法效果也不理想。利用Hough變換法求取直線方程再求交點方法的結果見圖6,這種方法只能找到角點的大致位置,精確度有待提高。算法遇到的另一個問題是如何確定目標區(qū)域四條邊的直線方程,見圖5。利用直線擬合的方法精確度也不高,但比Hough方法稍好,見圖8(g)。直線擬合法會面臨如何選擇擬合點的問題,本文實驗中采用了手工方法確定每條邊的擬合點。在具體應用時必須通過圖像處理的方法自動確定擬合點,精度很難保證。另外,這兩種方法都需要進行邊緣檢測,其檢測結果依賴于使用的檢測方法與邊緣提取的精確程度,而硬度圖像的復雜性使其很難提取出精確的邊緣,這也是這兩個方法共同面臨的問題。如圖8(h)所示,本文的方法比較準確的找出了目標區(qū)域的角點位置,這是由于算法同時考慮了檢測點兩個方向上灰度的整體變化,具有更好的抗干擾性能。
硬度圖像的復雜性使傳統的角點檢測算法難以實現,現有的直線求交方法僅考慮圖像的邊緣信息,檢測精度不高。針對以上問題,本文提出一種新的角點檢測算法。算法同時考慮了“旋轉半徑”在兩個方向的灰度變化信息及角度信息,具有更好的檢測精度、魯棒性和適應性。在應用上,本文方法不僅適用于硬度圖像,同樣適用于復雜背景下大尺度(目標區(qū)域在整幅圖像中的比例較大)目標區(qū)域的角點檢測。但對于像素級別的小尺度角點,傳統的角點檢測算法即可得到較好的結果,而本算法的時間復雜度相對較高。我們的下一步的工作是設計快速算法,提高運行速度。
[1]Tuma J,Gubeljak N,Sustarsic B.Fracture toughness of a high-strength low-alloy steel weldment[J].Materiali in Tehnologije,2006,40(6):263-268.
[2]劉祥.基于圖像處理技術的維氏硬度檢測方法的研究[D].長春理工大學碩士學位論文,2009.
[3]王揚衛(wèi),馬壯,于曉東.幾種典型材料的動態(tài)硬度研究[J]. 材料工程,2010(9):62-70.
[4]He B,Zhu M,Yang Y.Application of Harris corner points locating testing of metal hardness[J].Laser&Infrared,2009,40(9):1027-1032.
[5]HarrisC,StephensM.A combinedcornerand edge detector[J].proceedings of the Fourth Alvey Vision Conference[C].1988.
[6]Smith SM,Brady JM.SUSAN—A new approach to low level image processing[J].International Journal of Computer Vision,1997,23(1):45-78.
[7]Lindeberg T.Feature detection with automatic scale selection[J].IEEE Transactions Pattern Analysis Machine Intelligence,1998,30:77-116.
[8]He X,Yung N.Corner detector based on global and local curvature properties[J].Optical Engineering,2008,47(5):1-12.
[9]Rattarangs A,Chin RT.Scale-based detection of corners of planar curves[J].IEEE transactions on pattern analysis and machine Intelligence,1992,14(4):430-449.
[10]Zhong B,Li C,Wang Z.Curvature product corner detection in direct curvature scale space[J].International Journal of Computational Vision and Robotics,2010,1(2):194-205.
[11]Mikolajczyk K,Schmid C.Scale&affine invariant interest point detectors[J].International Journal of Computer Vision,2004,60(1):63-68.
[12]Gilles S.Robust description and matching of images[D].PhD thesis,Oxford University,1988.