肖得勝,劉桂華
(西南科技大學 信息工程學院,四川 綿陽 621010)
圖像角點檢測是圖像處理領域中的經典研究方向。Harris[1]角點檢測算子以其計算簡單、角點檢測效果好的優點得到了廣泛的運用。但是,Harris角點檢測算子不具有尺度不變性。Mikolajczyk和 Schmid[2]將Harris角點檢測算子與高斯尺度空間相結合,在多個尺度上進行Harris角點的檢測,使其具有尺度不變性。
多尺度Harris角點檢測雖然克服了Harris算子只能在單一尺度下檢測角點的缺點,但是卻大大增加了計算量和計算時間,難以進行實時處理。通過分析發現,雖然多尺度Harris角點檢測計算量很大,但是其結構相對簡單,適合利用現場可編程門陣列(FPGA,Field Programmable Gate Array)來實現以提高處理速度[3-4]。本文充分考慮FPGA的結構及多尺度角點提取原理[5-6],對算法進行改進,在FPGA上實現了圖像的多尺度角點檢測。
(1)高斯尺度空間的構建
圖像通過與不同標準差高斯函數的卷積得到不同尺度的高斯圖像,一系列不同尺度的高斯圖像就構成了高斯尺度空間。
(2)位置、尺度空間響應值計算[7]多尺度Harris角點檢測二階矩如下:
其中,g (σI)表示標準差為的高斯函數,符號“ ? ”表示卷積,(x,y,) 和(x,y,) 表示圖像經標準差為σD的高斯函數g() 卷積后,在x和y方向的微分圖像。Mikolajczyk和 Schmid建議取σD=0.7×σI。

位置空間響應值計算公式為:

det表示矩陣的行列式,trace表示矩陣的跡。α是取值于0.04~0.06的參數。
尺度空間響應值計算公式為:

(3)多尺度Harris角點檢測
位置空間大于閾值的局部極大值點若在尺度空間也大于閾值且大于相鄰兩層對應點尺度響應值,那么此點為多尺度Harris角點。
多尺度Harris角點檢測算法的計算量主要集中在高斯尺度空間的建立、微分計算及響應值計算。
在FPGA實現中,采用不同權值的高斯模版(矩形窗口)替代高斯函數。給定標準差 sigma和模板大小n×n,用matlab計算高斯模版對應數值核心代碼如下:

高斯函數標準差越大,高斯函數值越分散,為了設計的精度,對應高斯模板也應該取的越大,但大窗口的高斯模板不易于FPGA的實現,為減少高斯函數標準差,后一尺度圖像通過前一尺度圖像經高斯卷積得到,同時卻增加了FPGA實現時的延時。
在充分考慮精度與FPGA器件延時情況下,前3個尺度圖像采用直接由原始圖像經過高斯卷積得到,后三個尺度圖像則采用由其前一個尺度圖像經過高斯卷積得到。
在設計中,涉及圖像x和y方向的一階、二階微分運算。FPGA中采用圖像與微分模塊的卷積來實現。x方向一階微分模版為:[-1 0 1;-2 0 2;-1 0 1];y方向一階微分模版為:[-1 -2 -1;0 0 0;1 2 1];x方向二階微分模版為:[1 0 -2 0 1;4 0 -8 0 4;6 0 -12 0 6;4 0 -8 0 4;1 0 -2 0 1];y方向二階微分模版為:[1 4 6 4 1;0 0 0 0 0;-2 -8 -12 -8 -2;0 0 0 0 0;1 4 6 4 1]。
公式(2)中包含參數α,α的取值有些任意,不太令人滿意。考慮到FPGA實現多尺度Harris角點檢測時,先構建尺度空間圖像,然后計算差分,再將差分后的圖像數據與高斯函數 g (σD) 相卷,對多尺度Harris角點響應計算函數進行改進,改進后的響應函數如下:

其中:

為提高搜索速度,在FPGA實現過程中,同時對位置空間和尺度空間響應值點進行搜索。先將各層圖像的位置、尺度空間響應值經先進先出緩存器(FIFO,First Input First Output)緩存對齊,每層圖像響應值均經過3×3窗口模板并行輸出3×3領域的響應值。并行比較每個位置空間響應值與它所在尺度的8個相鄰位置響應值、尺度空間響應值與它相鄰兩層對應點的尺度響應值。
根據上面的多尺度Harris角點FPGA實現分析,FPGA整體結構框圖如圖1所示。初始圖像與不同標準差的高斯函數卷積得到不同尺度的圖像,然后將尺度圖像數據與微分模板相卷得到圖像微分數據,再利用圖像微分數據求得圖像各像素點在位置、尺度空間的響應值,最后將各個響應值經FIFO緩存后同步并行輸出,通過并行比較位置、尺度空間的響應值,快速檢測出圖像的多尺度Harris角點。

圖1 多尺度Harris角點檢測框架
采用 Altera公司 Cyclone Ⅲ系列 EP3C120 F484C7芯片實現,測試圖像為8位灰度圖,分辨率為256×256,采用50 MHz時鐘頻,整個設計處理時間約為1.4 ms。用ModelSim進行仿真驗證,功能仿真結果如圖2所示。

圖2 ModelSim功能仿真結果
直接觀察波形很難看出角點提取的效果,將ModelSim的仿真結果存入文本中,然后通過Matlab讀取文本中的角點信息,將角點在原圖中顯示如圖3,其中符號“*”表示角點在圖中的位置。

圖3 多尺度Harris角點檢測圖
本文根據多尺度Harris角點檢測原理,通過對高斯函數、角點響應值計算函數、角點搜索方法的改進,提出了改進多尺度Harris角點的FPGA實現方案,通過 ModelSim驗證了角點檢測的正確性,并在FPGA芯片上得到實現,從處理時間可以看出,本文設計能夠滿足多尺度Harris角點提取實時性的需求,在實時圖像處理領域具有很好的應用價值。
[1] HARRIS C, STEPHENS M. A Combined Corner and Edge Detector[C].UK: Manchester University Press, 1988:147-151.
[2] MIKOLAJCZYK K, SCHMID C. Scale & Affine Invariant Interest Point Detectors[J].International Journal on Computer Vision,2004,60(01):63-86.
[3] 王剛,卿粼波,滕奇志.基于嵌入式平臺的實時雙目視覺測量系統[J].通信技術,2011,44(10):55-57.
[4] 雷明,馬游春,李錦明,等.基于 FPGA的多通道圖像采集存儲系統設計[J].通信技術,2010,43(04):204-207.
[5] 楊金孝,趙強,楊百平,等.一種改進型SUSAN算法的FPGA實現[J].信息安全與通信保密,2010(03):57-59.
[6] 張怡,馮飛,宋冠群.基于 FPGA的圖像預處理縮放算法[J].信息安全與通信保密,2007(01):77-78,81.
[7] 王永明,王貴錦.圖像局部不變特征與描述[M].北京:國防工業出版社,2010:53-56.
[8] 王渝,王剛,梅員.基于FPGA的改進Harris角點檢測方法[J].通信技術,2010,43(04):158-160.