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