基于雙Nios II的紅外圖像實(shí)時(shí)Otsu局部遞歸分割算法設計
摘 要:針對傳統Otsu局部遞歸分割方法很難實(shí)時(shí)實(shí)現的局限性,提出了一種適合現場(chǎng)可編程門(mén)陣列(FPGA)中Nios II軟核處理器實(shí)現的快速Otsu局部遞歸分割算法,該算法的思路是把一次Otsu分割得到的目標區域作為新的圖像再進(jìn)行一次Otsu分割,得到的結果作為最終分割閾值.利用并行Nios II和VHDL實(shí)現的硬件加速邏輯協(xié)同設計保證算法的實(shí)時(shí)實(shí)現。實(shí)驗結果表明,在不同的背景下,利用本文設計能夠實(shí)時(shí)穩定地對目標分割提取,具有較好的魯棒性。
關(guān)鍵字:FPGA Nios II 0tsu分割 局部遞歸
1 引言
利用紅外成像傳感器實(shí)現實(shí)時(shí)目標成像跟蹤是精確制導武器的核心技術(shù),圖像中目標的分割效果尤其是有效地使目標從背景中分離出來(lái)是保證系統穩定跟蹤的關(guān)鍵,Otsu分割算法因其簡(jiǎn)單有效在實(shí)時(shí)目標成像跟蹤系統中得到了很廣泛的應用,用這種聚類(lèi)準則分割圖象,當目標在圖象中占有適當的比例時(shí),分割結果比較好。然而對小目標圖象卻不能把目標從背景中分割出來(lái),經(jīng)常會(huì )把很多背景錯分為目標,本文提出了利用改進(jìn)的快速局部遞歸Otsu分割算法對圖象分割。并且依靠并行Nios II軟核和硬件邏輯結合的速度優(yōu)勢對算法實(shí)時(shí)實(shí)現。
2 算法原理
Otsu方法(即大律方法)在獲得圖像灰度直方圖的條件下,利用概率論的知識,通過(guò)計算最大類(lèi)間方差而得到分割門(mén)限.在較為理想的“雙峰”條件下,用Otsu準則能夠得到較好的分割效果。Otsu算法步驟如下:
在冷背景(如天空)下的紅外飛機圖像中,飛機目標的灰度級比較高,而且目標區域的面積往往要比背景區域的面積小一些,當兩者面積相差懸殊時(shí),簡(jiǎn)單的一次Otsu分割會(huì )錯誤地將部分背景劃分到目標區域Otsu,考慮到一次Otsu分割的結果圖像可以分為兩部分:背景區域和(含有部分背景的)目標區域.由于只對目標區域感興趣,把背景區域去掉并不會(huì )丟失目標信息.那么,可以對結果圖像的(含有部分背景的)目標區域進(jìn)行Otsu分割得到新的結果圖像,接著(zhù),把新的結果圖像中背景區域去掉,若目標區域還包含有部分背景,則再對(含有部分背景的)目標區域進(jìn)行Otsu分割,依次遞歸下去,直到得到比較理想的分割圖像為止.這種方法稱(chēng)為Otsu局部遞歸分割方法。
對紅外圖像數據流處理時(shí),由于Otsu局部遞歸分割算法需要對圖像進(jìn)行多次迭代處理,而且對每場(chǎng)圖像分割需要的迭代次數不同,所以很難保證分割的實(shí)時(shí)性,為此我們提出了利用Otsu準則對圖象進(jìn)行兩次局部遞歸分割。即在第一次Otsu方法分割之后,將分割得到的亮像素再次利用Otsu分割準則計算得到新的分割閾值。實(shí)驗表明,即使存在復雜的云層背景的情況下,經(jīng)過(guò)兩次迭代分割后,目標也較好地被分割出來(lái)。
3 雙Nios II的實(shí)現方案
Nios II嵌入式處理器是Altera公司于2004年6月推出的第二代用于可編程邏輯器件的可配置的軟核處理器,性能超過(guò)100 DMIPS。NioslI是基于哈佛結構的RISC通用嵌入式處理器軟核,能與用戶(hù)邏輯相結合,編程至Altera的FPGA中。處理器具有32位指令集,32位數據通道和可配置的指令以及數據緩沖。它特別為可編程邏輯進(jìn)行了優(yōu)化設計,也為可編程單芯片系統(SOPC)設計了一套綜合解決方案。NioslI處理器系列包括三種內核:一種是高性能的內核(Nios II/f);一種是低成本內核(Nios II/e);一種是性能/成本折中的標準內核(Nios II/s),它是前兩種的平衡。本系統采用高性能內核。Nios II處理器支持256個(gè)具有同定或可變時(shí)鐘周期操作的定制指令;允許Nios II設計人員利用擴展CPU 指令集,通過(guò)提升那些對時(shí)間敏感的應用軟件的運行速度,來(lái)提高系統性能。
根據紅外焦平面成像特性,為了保證算法的實(shí)時(shí)性,采用雙Nios II軟核和硬件加速器協(xié)同設計的方式,在圖像場(chǎng)的間隙做實(shí)時(shí)Otsu局部遞歸分割處理。如圖 1 所示實(shí)現算法原理圖
圖 1 算法實(shí)現原理圖
局部遞歸區域提取單元將需要分割的紅外數據讀入FPGA內部雙端口RAM0,直方圖統計對數據統計直方圖,存放于雙端口RAM2,聚類(lèi)統計單元分別對直方圖依次從高低兩個(gè)方向計算類(lèi)內均值和概率,把累加結果存入三端口RAM0和RAM1中,聚類(lèi)統計結束后,兩個(gè)Nios II并行對高低兩個(gè)方向的聚類(lèi)統計結果進(jìn)行類(lèi)間方差計算并分別求最大值。取兩者最大為分割閾值,完成一次分割后,局部遞歸區域提取單元依據得到的閾值提取出目標區域存入雙端口RAM1中,接著(zhù)按照第一次分割步驟完成快速局部0tsu遞歸分割算法。
實(shí)現算法的CPU互聯(lián)結構:
為了最大化的提高算法的處理速度,系統采用CPU并行工作方式。如圖 2 所示,兩個(gè)Nios II同時(shí)負責收發(fā)處理數據。當其中一個(gè)CPU執行完制定的任務(wù)后等待另一Nios II,當兩個(gè)Nios II任務(wù)全部完成后,Nios II0從MailBox中取出Nios II1的處理結果計算最終分割閾值,采用這種將數據塊分細處理結構,減少單個(gè)CPU處理的數據量,縮短了算法延遲。
考慮到算法需要進(jìn)行循環(huán)的浮點(diǎn)數計算,采用Nios II的定制指令和VHDL編寫(xiě)硬件算法加速器保證系統運行速度,如圖3 所示采用自定義浮點(diǎn)指令和軟件實(shí)現浮點(diǎn)運算性能對比。定制指令邏輯和Nios II的連接在SoPC Builder 中完成。Nios II CPU配置向導提供了一個(gè)可添加256條定制指令的圖形用戶(hù)界面,在該界面中導入設計文件,設置定制指令名,并分配定制指令所需的CPU時(shí)鐘周期數目。系統生成時(shí),Nios II IDE為每條用戶(hù)指令產(chǎn)生一個(gè)在系統頭文件中定義的宏,可以在C或C++應用程序代碼中直接調用這個(gè)宏。圖4 Nios II軟件實(shí)現系統算法和自定義指令實(shí)現性能對比
4 結束語(yǔ)
局部遞歸Otsu分割方法,通過(guò)遞歸計算對圖像中目標不斷的逼近,因此在復雜的背景下,對紅外圖像目標分割有很好的效果,但是由于算法迭代繁瑣很難實(shí)時(shí)實(shí)現,本文提出了一種基于雙Nios II嵌入式處理器的紅外圖像快速局部遞歸Otsu分割實(shí)時(shí)實(shí)現方法。通過(guò)在A(yíng)ltera的Stratix FPGA 中集成兩個(gè)l00 MHz軟核配合一定的硬件邏輯,大大減小了算法的處理時(shí)間,實(shí)現了算法的實(shí)時(shí)處理,實(shí)驗表明,該設計每秒可處理25幀320x240x8bits的紅外圖像。如圖 3 所示對系統對3公里外的坦克目標分割效果圖,(a)為原始圖像,圖像中心位置有一坦克目標,(b)圖像一次Otsu分割結果,由于背景比較復雜,坦克目標與背景沒(méi)有完全分割開(kāi),(c)經(jīng)過(guò)本文快速局部遞歸Otsu分割后效果圖,圖中的坦克目標從背景中很好的分割出來(lái)。
c++相關(guān)文章:c++教程
評論