朱帥飛,馬 偉,楊 芳
(1.河南科技大學機電工程學院,河南 洛陽 471003;2.河南省機械設計及傳動系統(tǒng)重點實驗室,河南 洛陽 471003)
圖像的邊緣檢測是運動目標中心定位中的重要一環(huán),直接影響著運動目標中心位置檢測的精度。傳統(tǒng)的邊緣檢測方法包括Sobel、Roberts、Canny、Prewitt、Laplacian等,但是這些方法在硬件設備一定的情況下,檢測精度只能達到像素級。隨著對檢測精度的要求的提高,傳統(tǒng)的檢測方法早已不能滿足我們的需求,很多學者把目光轉向了亞像素邊緣檢測領域,而且取得較大的進展[1]。
在亞像素邊緣檢測算法中,基于Zernike矩的亞像素邊緣檢測算法由于其獨特的優(yōu)點促使國內外學者對其進行了大量的研究。文獻[2]建立了理想的灰度模型,利用Zernike矩的旋轉不變形,通過3個不同階次的Zernike矩來計算定位所需要的4個參數,最終實現了亞像素級別的邊緣定位。文獻[3]為了提高Zernike矩邊緣檢測的速度,在傳統(tǒng)算法的基礎上將傅里葉變換函數與Zernike矩相結合提出了一種新的檢測算法,并通過一系列的實驗對檢測速度進行了驗證;但是該算法邊緣檢測的精度不高。文獻[4]通過對三角函數的分析,結合三角函數的對稱性和反對稱性的特點,對原有的Zernike矩進行了改進,在一定程度上提高了算法的檢測精度。文獻[5]針對Zernike矩邊緣檢測的圖像存在的邊緣較粗、精度不高等問題,從邊緣判據和卷積模板的大小兩個方面出發(fā),對其進行改進,從而達到了提高邊緣檢測精度的目的。文獻[6]將小波能量熵與二維Zernike矩相結合,來進一步改善圖像邊緣檢測的精度,并且將該算法推廣到工程實踐中實現了對IC芯片表面的定位識別。文獻[7]等對傳統(tǒng)的形態(tài)學梯度算子進行了改進,利用改進后的梯度算子作為邊緣粗定位,再通過Zernike矩算法對圖像進行重定位,通過這兩種結合的方式提高了算法的精度和抗噪性。
以運動靶標中心定位為研究對象,提出了一種基于改進Zernike矩的亞像素邊緣定位算法。該算法首先采用改進的Can?ny邊緣檢測算法對圖像進行粗定位,再采用提出的改進的Zernike矩算法對圖像進行亞像素級重定位,并且對誤差進行了分析和補償,然后利用最小二乘法擬合確定靶標的中心,最終通過坐標變換實現了靶標位置的空間定位。
經典的的Canny邊緣檢測算法利用高斯濾波降噪,會造成圖像邊緣模糊,影響之后的亞像素定位。自適應中值濾波不但可以有效的濾除噪聲,而且可以能夠較好的保留圖像邊緣的完整度和圖像的細節(jié)[8]。利用自適應中值濾波代替經典的的Canny邊緣檢測算法中的高斯濾波。自適應中值濾波算法主要分為如下兩個步驟:
(1)若fmin (2)若fmin 可以看出,算法中噪聲的檢測和認定時以fmin和fmin為基準的,如果fmin 其中,f ij表示點(i,j)的灰度值,s i j為當前工作窗口。fmin表示當前工作窗口s ij中灰度的最小值;fmax表示當前工作窗口s ij中灰度的最大值;f med表示當前工作窗口s ij中灰度的中值;smax預設允許的最大窗口。 圖像在平移或旋轉時,圓形中心定位精度影響較小,算法的穩(wěn)定性較好;而對矩形中心定位精度影響很大,算法的穩(wěn)定性差[9]。因此在運動靶標上制作圓形標記,標記圓的中心點作為特征點。靶標標記圓像素級邊緣提取步驟如下: (1)對采集到的靶標圖像進行預處理。 (2)將R G B轉化為HSV模型,通過顏色特征作為提取的標準,提取出感興趣的區(qū)域即靶標標記圓,最后采用改進的邊緣檢測算法,對提取出的標記圓進行像素級邊緣提取。 其中原始圖像和像素級提取后的圖像,如圖1、圖2所示。 圖1原始圖像Fig.1 The Original Image 圖2提取后圖像Fig.2 The Extracted Image 一副圖像中p階q次Zernike矩定義如下: 當圖像為離散形式時,其理論公式如下: Zernike正交矩的很重要的一個特性是擁有旋轉不變的性質,根據這個特性可知當轉角為φ時,旋轉前的正交矩A pq和旋轉后的正交矩關系如下:根據這個特性,可以推導得到其它所需要的參數,從而實現圖像邊緣的亞像素定位。 傳統(tǒng)的Zenike正交矩在計算時,灰度邊緣模型采用的是理想的二級階躍邊緣模型,如圖3所示。其中參數k表示階躍高度,參數h表示背景灰度,l表示圓心與理論邊緣之間的垂直長度,φ表示l與坐標軸x軸之間的夾角。 圖3 二級理想灰度模型Fig.3 Two-Level Ideal Gray Model 式中:f′(x,y)—旋轉后的邊緣函數。 由上式進一步可得旋轉角度為: 進而推導出模型的多元方程式如下: 由此可以推導出模型中各參數l,k,h的表達式,如式(9)所示。 最終得到圖像亞像素邊緣點的位置坐標如下: 經典的Zernike邊緣檢測算法中亞像素邊緣判據為k≥τ?l≤δ,其中δ為1 2,由上面可以推導得出φ,h,l,k四個參數。其中閾值τ的選取的自由的,其值影響著亞像素邊緣檢測的效果。若閾值τ選取太小,亞像素邊緣檢測結果中會出現較多的虛假邊緣;若閾值τ選取太大,則會導致亞像素邊緣檢測時丟失較多的邊緣信息。傳統(tǒng)的閾值τ選取是經過人工手動選取的,通過多次反復調整閾值τ使亞像素邊緣檢測達到理想的效果,不僅降低了檢測效率而且精測的精度會隨著調試人員的情緒問題而變得不穩(wěn)定,無法保證其檢測質量。 基于迭代法的最佳閾值選取是采用逼近的思想,其原理是先選取一個估計值作為閾值,然后利用此閾值對圖像進行分割,根據生成的子圖像的特征來選取新的閾值,再采用新的閾值來分割圖像,經過一定次數的循環(huán),使圖像中錯誤分割的像素點達到最少。 圖像中相同像素點的灰度值與階躍灰度值在其像素點及其鄰域內的變化趨勢相同,因此可以利用迭代法求最佳閾值的方法求出最佳階躍灰度閾值τ。具體步驟如下: (1)初始值的選取 式中:Zmin、Zmax—圖像中最小階躍灰度值和最大階躍灰度值。 (2)根據閾值T k將圖像分為兩部分,并分別求出兩部分的平均階躍灰度值。 式中:Z(i,j)—圖像上(i,j)點的階躍灰值;N(i,j)—(i,j)點的權重系數。 (3)求解新閾值 (4)如果T k=T k+1,即階躍灰度最佳閾值τ=T k=T k+1迭代結束,反之k=k+1轉向步驟(2)。 改進的Zernike邊緣定位算法檢測流程,如圖4所示。其大致可以分為以下幾個步驟: 圖4 改進算法檢測流程圖Fig.4 Flow Chart of Improved Algorithm Detection (1)采用傳統(tǒng)的Zernike矩檢測算法分別求得三個不同階次的Zernike矩A00,A11,A20,φ; (2)根據Zernike正交矩旋轉不變的性質,計算得到A′00,A′11,A′20; (3)將階躍灰度值作為研究對象,利用4.1基于迭代法求取階躍灰度最佳閾值τ; (4)根據亞像素邊緣判據為k≥τ?l≤δ,對圖像中像素點進行判別。符合條件k≥τ?l≤δ,則該像素點為邊緣像素點,反之不成立。 在選取卷積模板時,由于模板大小的不同會引起誤差。若模板大小為N×N,其覆蓋區(qū)域是模板中心周圍N2個像素,在單位圓內取樣時,此時單位圓半徑變成N∕2,則需要把計算出來的垂直距離增大兩倍,補償后的亞像素邊緣檢測坐標公式如下: 上述亞像素邊緣檢測位置坐標的推導是基于理想的二級階躍邊緣模型,即一個表示背景灰度另一個表示前景灰度。但是圖像中圖形的邊緣是以灰度漸變的形式存在的,實際的邊緣模型更接近三級階躍邊緣模型,即一個表示背景灰度,一個表示目標灰度,另一個表示過渡階段灰度,其模型,如圖5所示。 圖5 三級灰度模型示意圖Fig.5 Three-Level Ideal Gray Model 類似于傳統(tǒng)的Zernike矩亞像素邊緣檢測位置坐標推導方法,同理可以得到如下的公式: 將傳統(tǒng)的Zernike邊緣檢測算法計算得到的l與三級灰度模型得到的l m做差,可推導偏差e如下: 當圖像邊緣位于模板中心的兩側像素及其鄰域時,則可以利用偏差e對傳統(tǒng)的Zernike邊緣檢測算法計算得到的l進行補償,從而達到提高亞像素邊緣精測的精度的目的。 利用上述改進的Zernike矩算法可以得到靶標標記圓的一系列亞像素邊緣點,然后通過最小二乘法可以擬合得到標記圓的圓心圖像坐標位置,隨后采用文獻[10]的方法對攝像機進行進行標定,根據得到的標定參數通過坐標變換最終得到靶標的空間位置。其中最小二乘法理論公式如下: 式中:p(x i,y i)—離散的亞像素邊緣點;N—離散的數;(x0,y0)—目標的坐標位置;r—圓半徑。 第一組實驗是計算機仿真實驗,為了對兩種算法的檢測精度進行檢測,制做了一副分辨率為(256×256)的圖像。以一系列點為圓心坐標,圓半徑為60像素,圖像背景像素值為0,如圖6所示。分別采用傳統(tǒng)的Zernike算法與改進算法對圓心坐標進行定位,然后利用最小二乘法擬合得圓心圖像坐標位置,如表1所示。通過表1可知傳統(tǒng)算法的定位誤差為0.03107像素;改進算法定位誤差為0.013624像素,表明算法檢測精度優(yōu)于傳統(tǒng)Zernike算法。 圖6 仿真所用圖像Fig.6 The Image for Simulation 表1 仿真結果Tab.1 Simulation Result 第二組實驗:在省基金的支持下我們搭建了柔索驅動機構實驗平臺。實驗臺主要包括機械結構和電氣控制系統(tǒng),機械結構部分主要由機架、靶標的運動平臺、柔索、靶標等模塊組成;控制系統(tǒng)主要由用戶操作界面、圖像采集卡、運動控制中心、伺服電機、驅動器等模塊構成,實驗臺,如圖7所示。 圖7 柔索驅動機構實驗平臺Fig.7 Experimental Platform for Cable Driving Mechanism 其中采集裝置為德國巴斯勒acA2000-340kc型號的工業(yè)相機,分別率為2046*1086,編程平臺為vs2013,編程語為c++結合OpenCV2.4.10。在驅動靶標運動的過程中,首先分別采用傳統(tǒng)的Zernike算法與這里改進算法分別對運動靶標中心進行亞像素邊緣提取,然后采用最小二乘法對提取的亞像素邊緣進行擬合,最終通過坐標變換得到靶標中心空間坐標。通過進行對比分析,來驗證改進算法的檢測精度。在靶標運動過程中抽取十個數據點,將計算坐標與理論坐標進行了對比分析,實驗結果,如表2所示。 表2 實驗結果Tab.2 SimulationResult 三條曲線比較接近,不容易直觀地對其進行區(qū)分、評價,如圖8所示。為了對兩種算法的檢測精度進行定量的分析,將這些實驗數據進行了整理分析,整理后的數據,如表2所示。通過表2可知傳統(tǒng)Zernike算法的x方向最大誤差為1.269mm,平均誤差為0.787mm,y方向最大誤差為1.451mm,平均誤差為1.065mm;改進算法x方向最大誤差為0.744mm,平均誤差為0.475mm,y方向最大誤差為0.819mm,平均誤差為0.65mm。顯然,改進算法的檢測精度要優(yōu)于傳統(tǒng)的Zernike算法;同時最佳閾值的自動選取相比于相比于人工手動調試具有更高的效率,為后期柔索機構伺服反饋、高精度的控制提供了有效依據。 圖8 算法對比曲線Fig.8 Algorithmic Contrast Curve 經典的Zernike矩算法邊緣檢測判據中因為自由閾值的存在,降低了檢測效率,且傳統(tǒng)的檢測方法對誤差的來源未進行分析,也未考慮誤差補償,造成檢測精度的下降。針對這兩個檢測的難題,提出一種基于改進Zernike矩的亞像素邊緣定位算法。以運動靶標中心定位為實驗研究對象,測試結果表明:該方法能夠準確對運動靶標中心進行定位,檢測精度要優(yōu)于傳統(tǒng)的Zernike算法,同時最佳閾值的自動選取相比于人工手動調試具有更高的效率。2.2像素級邊緣粗提取
3傳統(tǒng)的Zernike邊緣定位算法
3.1圖像中Zernike矩定義
3.2 Zernike亞像素邊緣定位原理
4 改進的Zernike邊緣定位算法
4.1 基于迭代法的階躍灰度最佳閾值選取
4.2 改進的Zernike邊緣定位算法檢測流程
5 誤差分析及補償
5.1 卷積模板引起的誤差
5.2 邊緣模型選取引起的誤差
6 最小二乘法擬合靶標圓心坐標
7 實驗結果及分析
8 結論