儀表網(wǎng)手機版
手機訪問更快捷
儀表網(wǎng)小程序
更多流量 更易傳播
公眾號:ybzhan
隨時掌握行業(yè)動態(tài)
掃碼關(guān)注視頻號
網(wǎng)絡(luò)課堂 行業(yè)直播
在二次元影像測量儀及機器視覺系統(tǒng)中,邊緣檢測是提取工件輪廓、測量尺寸的核心步驟。經(jīng)典的邊緣檢測算法(如Canny算子、Sobel算子)在計算圖像梯度后,通常會得到一個梯度幅值圖,但其中邊緣往往呈現(xiàn)出“寬而模糊”的帶狀區(qū)域,而非理想的單像素寬度。為了將邊緣細化為精確的、單像素寬的輪廓線,非極大值抑制(Non-Maximum Suppression, NMS)算法起到了關(guān)鍵作用。該算法通過保留梯度方向上的局部大值,抑制非極大值點,從而銳化邊緣,為后續(xù)的亞像素定位和尺寸測量提供高質(zhì)量的輸入。本文將詳細介紹非極大值抑制的原理、實現(xiàn)步驟及其對測量精度的影響。
非極大值抑制是一種邊緣細化的技術(shù)。其核心思想是:對于每個像素點,沿著其梯度方向(即邊緣的法線方向)比較相鄰像素的梯度幅值,如果當前像素的幅值不是該方向上的大值,則將其抑制(設(shè)為0);否則保留。經(jīng)過處理后,原本數(shù)像素寬的邊緣帶被壓縮為僅保留局部峰值位置的單像素邊緣,從而得到清晰、連續(xù)的邊緣線。
在數(shù)學上,梯度幅值 和梯度方向 已由前序算子(如Sobel)計算得到。NMS對每個像素執(zhí)行以下判斷:
將梯度方向量化到四個主要方向(0°、45°、90°、135°)或更細的離散方向。
沿梯度方向的正負方向各取一個相鄰像素(例如,對于水平邊緣,梯度方向為垂直,則比較上下像素)。
若當前像素的幅值大于兩個相鄰像素的幅值,則保留;否則抑制。
在經(jīng)典的Canny邊緣檢測流程中,非極大值抑制位于“計算梯度幅值與方向”之后、“雙閾值檢測”之前。具體步驟如下:
計算梯度幅值和方向:利用Sobel、Prewitt或Scharr算子計算圖像每個像素的水平梯度 和垂直梯度 ,進而得到幅值 和方向 。
方向量化:將連續(xù)的梯度方向 離散化為四個或八個扇區(qū)。常用的四方向量化規(guī)則為:
方向0: 或 (水平邊緣,梯度垂直)
方向1: 或 (對角線邊緣)
方向2: 或 (垂直邊緣,梯度水平)
方向3: 或 (另一對角線)
沿梯度方向比較:對于每個像素,根據(jù)其量化后的方向,獲取正負方向上的相鄰像素的幅值。例如:
若方向為0°(梯度水平),則比較左右像素。
若方向為90°(梯度垂直),則比較上下像素。
若方向為45°,則比較右上和左下像素。
若方向為135°,則比較左上和右下像素。
抑制非極大值:如果當前像素的幅值小于相鄰兩個像素中的任何一個,則將其幅值設(shè)為0;否則保留原值。
輸出:得到一幅只有局部極大值保留的單像素邊緣圖。
對于二次元影像測量儀而言,邊緣的亞像素定位精度直接影響尺寸測量的重復(fù)性和準確性。非極大值抑制帶來的好處包括:
邊緣寬度壓縮:原始梯度幅值圖往往呈現(xiàn)數(shù)像素寬的“山脈”狀邊緣,NMS將其壓縮為1像素寬的“山脊線”,使得后續(xù)的亞像素擬合(如灰度矩、插值法)更加穩(wěn)定。
減少冗余信息:抑制了邊緣附近的弱響應(yīng)和噪聲引起的偽邊緣,降低了誤檢率。
提高測量重復(fù)性:單像素邊緣減少了隨機采點波動,多次測量同一位置時邊緣位置的標準差更小。
支持復(fù)雜輪廓提取:在圓、圓弧、直線等幾何元素的擬合中,細化后的邊緣點集更接近真實輪廓,擬合精度更高。
優(yōu)點:
計算簡單,速度快,適合實時測量。
與閾值分割結(jié)合后能獲得高質(zhì)量的二進制邊緣圖。
對于對比度良好的工件邊緣。
缺點與局限:
對噪聲敏感:噪聲點可能在梯度方向上產(chǎn)生虛假的局部極大值,導(dǎo)致偽邊緣。通常需要在NMS之前進行高斯濾波平滑。
方向量化誤差:將連續(xù)梯度方向量化為離散扇區(qū),會導(dǎo)致邊緣位置產(chǎn)生微小的偏移(通常<0.5像素)。高精度測量時可采用插值法(如雙線性插值)獲取更精確的梯度方向鄰域值。
對于模糊邊緣或低對比度邊緣,梯度幅值變化平緩,NMS可能產(chǎn)生斷裂的邊緣線段,需要后續(xù)的連通性處理。
改進方法:
亞像素非極大值抑制:在梯度方向上進行二次曲線擬合,找到亞像素級別的峰值位置,從而將邊緣定位精度提升到0.1像素甚至更高。
各向異性NMS:根據(jù)局部圖像結(jié)構(gòu)自適應(yīng)調(diào)整比較鄰域的大小和形狀,適用于紋理復(fù)雜或曲率變化大的邊緣。
在影像測量軟件中,用戶通常不會直接調(diào)節(jié)NMS算法內(nèi)部參數(shù),但了解其原理有助于理解邊緣檢測結(jié)果。以下是一些實用建議:
梯度算子選擇:Sobel算子對噪聲有一定抑制,但邊緣定位精度中等;Scharr算子定位更準但對噪聲更敏感;Canny中常使用Sobel。
高斯濾波尺度:在NMS之前,高斯濾波的標準差 越大,邊緣越平滑,但可能丟失細節(jié)。對于清晰邊緣, 即可;對于噪聲大的圖像,可適當增大至1.5~2.0。
高低閾值設(shè)定:NMS之后,Canny還會使用雙閾值檢測(高閾值保留強邊緣,低閾值連接弱邊緣)。若測量對象是銳利邊緣,可提高高閾值(如150),減少偽邊緣;若邊緣較模糊,降低高閾值(如80)。
檢查邊緣斷裂:如果測量結(jié)果顯示邊緣不連續(xù),可能是NMS后閾值過高導(dǎo)致??山档偷烷撝祷蛟黾舆吘夁B接像素距離。
考慮一個簡單的一維剖面:原始圖像中一條從黑到白的理想階躍邊緣,梯度幅值在邊緣處形成一個單峰。但實際圖像中由于鏡頭衍射和采樣,邊緣會呈現(xiàn)斜坡狀,梯度幅值形成一個寬峰。經(jīng)過NMS后,只有峰頂位置的像素被保留,邊緣寬度從5~6像素壓縮至1~2像素。如果進一步結(jié)合亞像素擬合,可將邊緣定位到0.1像素精度。這正是影像測量儀能夠達到微米級重復(fù)精度的算法基礎(chǔ)。
非極大值抑制是邊緣檢測中的一步,它通過保留梯度方向上的局部大值,將寬邊緣細化為單像素寬度的精確輪廓。對于二次元影像測量軟件而言,NMS直接影響到邊緣提取的準確性和測量重復(fù)性。理解其原理有助于操作員在遇到邊緣檢測失敗時,有針對性地調(diào)整預(yù)處理參數(shù)(如濾波、梯度算子、閾值)。隨著測量精度的要求不斷提高,亞像素級別的改進型NMS算法正逐漸成為測量軟件的標準配置。
相關(guān)產(chǎn)品
免責聲明
客服熱線: 18758282240(同微信)
加盟熱線: 18758282240(同微信)
媒體合作: 0571-87759945
投訴熱線: 0571-87759942

下載儀表站APP

Ybzhan手機版

Ybzhan公眾號

Ybzhan小程序