?

圖像邊緣檢測算法的Simulink實現及改進*

2023-12-11 12:10彭雙平
艦船電子工程 2023年9期
關鍵詞:高斯算子梯度

彭雙平

(中國船舶集團有限公司第七一〇研究所 宜昌 443003)

1 引言

圖像邊緣檢測是進行圖像處理的一種方法。圖像邊緣檢測常常用于人臉識別、醫療圖像、車牌檢測和工業檢測等實際問題。邊緣檢測還在圖像去噪、生物圖像、紅外圖像、無人機圖像、遙感圖像處理中發揮著重要的作用[1~6]?,F在圖像邊緣檢測在各種軟件環境下已經十分成熟[7~9]。但仍有很多技術難關需要突破,例如:圖像邊緣檢測的實時性、邊緣化處理、可移植性[10~12]。而這些技術難關可以聯合FPGA 和Simulink 來進行技術突破。Xilinx 公司為了方便FPGA 開發推出System generator。System generator 將一些硬件模塊融入到Simulink的庫工具中,這樣用戶可以在Simulink 中進行算法的設計與實現,并且可以直接生成HDL 文件,或者生成網表,后期在Vivado 調用,可以直接生成比特流文件。這樣可以大大提高FPGA 開發速度,將開發人員從枯燥的底層硬件開發中解放出來,可以專心放在算法設計與實現上。而FPGA 具有高并發性、功耗低等優點[13~15],還可以將算法移植到邊緣計算中去[16],這樣又極大地推動了算法的落地。

2 邊緣檢測算法原理與系統設計

邊緣檢測算法是計算機視覺常用來做圖像處理的方法之一。邊緣檢測算法可以提取到圖像中關鍵的邊緣信息。圖像的邊緣信息是指圖像中存在跳變的像素點集合。在現實應用中,最常見的邊緣類型是臺階型、斜坡型和屋頂型。臺階型邊緣的像素值變化容易檢測。斜坡型的檢測與梯度有很大的關系。屋頂型的點常常與噪點混淆,這種邊緣增加了我們邊緣檢測的難度。如圖1 為三種邊緣的數學模型。按照其數學特性,我們可以借助微分來進行邊緣檢測。由此,借助一階導數與二階零點是確定圖像邊緣的關鍵。

圖1 三種邊緣的數學模型及導數

如圖2 為本次Simulink實現的具體流程,在實現的過程中,關鍵為進行問題分析,將現實中的問題數學化,轉化為算法。算法設計的優劣決定了Simulink實現算法的效果。

圖2 Simulink實現流程

圖3 Roberts算子Simulink實現

3 算法實現

本文在Simulink 中實現了Roberts、Prewitt、Sobel、Laplace邊緣檢測算法和高斯濾波算法。

3.1 Roberts

Roberts 是一種基于局部差分的邊緣檢測的算子,利用交叉差分的梯度算法計算,梯度的值就代表邊緣變化的強度。梯度的方向與邊緣的方向正交。

梯度算子的計算方式:

進一步簡化,梯度算子可簡化為

圖像離散化可得Roberts算子:

在Simulink的實現流程如下:

1)將串行數據轉化為2*2矩陣輸入。

2)進行矩陣與算子的卷積計算。

3)數據轉化整理。

4)圖像輸出。

3.2 Prewitt與Sobel的Simulink實現

Prewitt 與Sobel 都是利用像素點的上下、左右鄰點的灰度差來進行邊緣檢測。但Sobel算子結合了高斯平滑,在Prewitt算子的基礎上對相鄰點卷積計算增加了權重的概念,從而實現圖像銳化并突出邊緣輪廓。如圖4為兩種算子的卷積模板。

圖4 Prewitt與Sobel算子

在Simulink中實現的流程如下:

1)將數據由串行數據轉化為3*3矩陣輸入。

2)四個方向并行與對應的卷積因子進行卷積運算。

3)梯度綜合。

4)閾值對比。

5)輸出圖像。

如圖5 為Simulink實現Prewitt 算子總設計圖。整個過程充分利用并行計算。原有一個卷積處理的時間,在算法設計中可以實現四個卷積處理。效率整整提高三倍。

圖5 Simulink實現Prewitt算法總電路圖

3.3 Laplace

Laplace 算子是一種二階微分算子。在計算的過程中,利用二階導數零交叉特性來進行邊緣檢測。如圖6為Laplace算子。

圖6 Laplace算子

Laplace在Simulink中實現的流程如下:

1)將數據由一維串行數據轉化為3*3 矩陣輸入。

2)3*3 矩陣與卷積因子進行卷積運算。

3)數據綜合

4)輸出圖像。

如圖7所示,邏輯運算時,使用九路并行運算。運算速度提高了八倍。

圖7 Laplace算法實現電路圖

3.4 高斯濾波的Simulink實現

高斯濾波是一種典型的線性平滑濾波算法。采用加權平均法來對圖像的像素點進行平滑處理和噪點消除。這個算法的關鍵是用加權平均代替原圖中的像素點,各個方向的平滑程度是相同的。如圖8為高斯濾波的卷積核模型。

圖8 簡化版高斯核

高斯濾波算法在Simulink的實現流程如下:

1)圖像數據轉化為3*3矩陣輸入。

2)與卷積核進行邏輯處理。

3)數據處理(主要進行數值浮點的對齊)。

4)數據輸出,圖像顯示。

如圖9所示,在進行高斯濾波計算時可以進行三路并行計算。運行速度提高了兩倍。高斯濾波可以有效地消除圖像噪聲。在邊緣檢測的過程中,可以根據需求將其加入其中。

圖9 高斯濾波的Simulink設計與實現圖

4 系統驗證

算法在Simulink 中設計與實現后,在Matlab 中進行仿真驗證。如圖10為對應算法的實現效果圖。

圖10 邊緣檢測實現效果圖

對實現的算法圖像做進一步分析。如表1 為圖像邊緣檢測算法的效果統計。由數據可知,經過邊緣檢測處理后,圖像的信息熵有很大的降低,說明圖像的不可控因素和隨機因子有所降低。經過Roberts 邊緣檢測后,圖像的平均梯度有所降低,根據實際效果圖,也可以得出,Roberts 對圖像的邊緣檢測是最弱的。Sobel 和Laplace 對圖像邊緣檢測的效果極佳,平均梯度是其他方法的三到六倍。Sobel 和Laplace 可以清晰地繪制邊緣輪廓。

表1 圖像邊緣檢測效果統計

根據實驗結果和參考文獻,得出表2 各種邊緣檢測算子實現效果比較。

表2 多種算子比較

表3 高斯濾波效果統計

由圖11 和圖12所示,利用Simulink實現的高斯濾波算法可以消除椒鹽噪聲帶來的影響。在進行邊緣處理時,為了消除圖像中的噪聲,可以對圖像先進行高斯濾波,在進行邊緣檢測。

圖11 帶有0.02的椒鹽圖像

圖12 高斯濾波

高斯濾波處理后,圖像的平均梯度有很大的降低,說明高斯濾波可以將圖像中的噪聲做平滑處理,將噪聲對圖像的影響降低。

5 結語

本文使用Simulink實現了當前熱門的邊緣檢測算法。對Roberts、Prewitt、Sobel 和Laplace 等邊緣檢測算法的Simulink實現給出了詳細的實現流程。為了更好地進行邊緣檢測,本文還給出了高斯濾波的Simulink實現方法和流程。用戶可根據實際情況進行選取。本文也驗證了Simulink 能夠簡單快捷地設計與實現算法,并且對后期應用于硬件提供了很大的便利。但本文的算法沒有在多個場景進行實證研究,后續需要聯合硬件來實現真正的邊緣計算。

猜你喜歡
高斯算子梯度
一個改進的WYL型三項共軛梯度法
擬微分算子在Hp(ω)上的有界性
一種自適應Dai-Liao共軛梯度法
各向異性次Laplace算子和擬p-次Laplace算子的Picone恒等式及其應用
數學王子高斯
天才數學家——高斯
一類Markov模算子半群與相應的算子值Dirichlet型刻畫
一類扭積形式的梯度近Ricci孤立子
Roper-Suffridge延拓算子與Loewner鏈
有限域上高斯正規基的一個注記
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合