李世文 李立聰
摘 要:針對(duì)艦船邊緣信息檢測(cè)實(shí)時(shí)性差、檢測(cè)效果不佳等問題,通過選取適用于艦船邊緣檢測(cè)的數(shù)學(xué)形態(tài)運(yùn)算與最大類間方差二值法的方法,并結(jié)合 FPGA并行處理能力,構(gòu)建艦船邊緣檢測(cè)硬件平臺(tái)。在該硬件平臺(tái)上,采用FPGA對(duì)艦船目標(biāo)相關(guān)算法進(jìn)行硬件實(shí)現(xiàn)。從艦船圖像處理結(jié)果分析可知,采用傳統(tǒng)CPU進(jìn)行算法處理需要約120ms,采用FPGA實(shí)現(xiàn)僅需21.2ms,采用FPGA加速后處理速度提高5倍以上,完全可滿足實(shí)時(shí)性要求,因此該方法具有良好的應(yīng)用前景。
關(guān)鍵詞:FPGA;OSTU;數(shù)學(xué)形態(tài);邊緣檢測(cè)
DOI:10. 11907/rjdk. 191442
中圖分類號(hào):TP317.4
文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1672-7800(2019)006-0176-05
Abstract: In order to solve the problems of poor real-time performance and poor detection effect in ship edge information detection, this paper constructs a hardware platform for ship edge detection by choosing the methods of mathematical morphology operation and OSTU, and combining the parallel processing ability of FPGA. On this hardware platform, we use FPGA to implement the related algorithm of ship target. From our analysis of the results of ship image processing, it takes about 120ms to process the ship image using traditional CPU. It takes about 21.2ms to implement by using FPGA. The speed of post-processing accelerated by using FPGA is ?five times faster than traditional CPU, which can meet the real-time requirements and has broad application prospects.
Key Words: FPGA; OSTU; ?mathematical morphology; edge detection
0 引言
艦船目標(biāo)邊緣信息非常豐富,通過提取艦船目標(biāo)邊緣信息可以進(jìn)一步識(shí)別艦船目標(biāo),因此艦船邊緣信息提取研究具有重要意義,目前在具體目標(biāo)識(shí)別系統(tǒng)中已有相關(guān)應(yīng)用。但是艦船目標(biāo)邊緣檢測(cè)具有以下特點(diǎn):首先艦船目標(biāo)所處環(huán)境非常復(fù)雜,包括復(fù)雜多變的海面背景和艦船在航行中激起的浪花軌跡等,其次對(duì)邊緣檢測(cè)系統(tǒng)實(shí)時(shí)性要求高。
目前國內(nèi)外眾多學(xué)者對(duì)艦船目標(biāo)邊緣檢測(cè)進(jìn)行了深入研究[1-6]。文獻(xiàn)[1]基于SIM 模型的目標(biāo)檢測(cè)技術(shù),采用事前設(shè)定的閾值二值化及腐蝕膨脹進(jìn)行前期預(yù)處理,但圖像提取效果不佳;文獻(xiàn)[2]利用支持向量機(jī)并結(jié)合船體邊緣信息識(shí)別檢測(cè)目標(biāo),但還是采用傳統(tǒng)方法獲取邊緣信息;文獻(xiàn)[3]采用多向梯度的艦船邊緣檢測(cè),可以有效去除海洋虛電噪聲,識(shí)別率較高;文獻(xiàn)[4]采用模板匹配方法,但先驗(yàn)信息獲取較困難;文獻(xiàn)[5]主要采用模糊Sobel算子進(jìn)行邊緣檢測(cè),提高了邊緣檢測(cè)準(zhǔn)確度;文獻(xiàn)[6]主要利用海洋和艦船的紋理進(jìn)行檢測(cè),對(duì)海上航行的船只檢測(cè)效果較好,但在碼頭??繒r(shí)檢測(cè)效果不佳。同時(shí)上述文獻(xiàn)在邊緣檢測(cè)中均采用軟件實(shí)現(xiàn)相關(guān)算法,導(dǎo)致實(shí)時(shí)性差。
針對(duì)上述問題,本文采用FPGA對(duì)相關(guān)算法進(jìn)行硬件加速。FPGA指現(xiàn)場(chǎng)可編程門陣列,其最大優(yōu)勢(shì)是其并行處理能力,而數(shù)學(xué)形態(tài)學(xué)和OSTU算法具有形態(tài)分析和算法處理的并行實(shí)現(xiàn)結(jié)構(gòu),所以適用于FPGA。因此本文通過FPGA實(shí)現(xiàn)OSTU和數(shù)學(xué)形態(tài)算法,以此實(shí)現(xiàn)艦船目標(biāo)邊緣檢測(cè)[7]。
1 艦船目標(biāo)邊緣檢測(cè)流程及方案設(shè)計(jì)
1.1 基于FPGA的艦船目標(biāo)邊緣檢測(cè)流程
艦船目標(biāo)邊緣檢測(cè)流程如圖1所示。首先獲取待測(cè)彩色圖像,然后對(duì)圖像進(jìn)行灰度化,由于圖像在拍攝過程中,受環(huán)境等原因影響存在噪聲干擾,需進(jìn)行中值濾波消去圖像噪聲干擾。濾波后圖像進(jìn)行最大類間方差二值化運(yùn)算,對(duì)圖像進(jìn)行分割,OSTU算法利用統(tǒng)計(jì)學(xué)相關(guān)知識(shí)確定一個(gè)最佳閾值,然后根據(jù)該閾值對(duì)圖像進(jìn)行分割。
由于艦船圖像存在海洋背景、浪花等干擾,不能直接獲取艦船圖像邊緣,需進(jìn)一步對(duì)圖像進(jìn)行形態(tài)運(yùn)算,即進(jìn)行腐蝕、膨脹等運(yùn)算消除相應(yīng)背景干擾,之后采用Sobel算子進(jìn)行艦船圖像邊緣檢測(cè)。
1.2 基于FPGA 的設(shè)計(jì)方案
艦船目標(biāo)檢測(cè)的FPGA設(shè)計(jì)方案如圖2所示。FPGA內(nèi)部電路主要包括控制模塊、中值濾波模塊、最大類間方差二值化模塊、數(shù)學(xué)形態(tài)運(yùn)算模塊、邊緣檢測(cè)模塊、SDRAM控制模塊和協(xié)調(diào)模塊各種狀態(tài)的機(jī)控制電路[8-9]。電路工作時(shí),艦船圖像傳入FPGA后,利用中值濾波對(duì)灰度化后的艦船目標(biāo)圖像進(jìn)行濾波,濾波后的圖像存入動(dòng)態(tài)存儲(chǔ)器中。在中值濾波的同時(shí)利用OSTU圖像相關(guān)像素進(jìn)行統(tǒng)計(jì)、計(jì)算獲取艦船目標(biāo)圖像最佳自適應(yīng)分割閾值,再從地圖存儲(chǔ)器中讀出處理后的艦船目標(biāo)圖像,由于在中值濾波后獲得了分割閾值,本文利用該閾值對(duì)艦船目標(biāo)圖像作二值化處理,然后通過Sobel算子運(yùn)算進(jìn)行艦船目標(biāo)圖像邊緣檢測(cè),將檢測(cè)到的艦船圖像送往顯示器。
2 艦船目標(biāo)圖像FPGA實(shí)現(xiàn)
2.1 艦船目標(biāo)圖像中值濾波及其FPGA實(shí)現(xiàn)
由于艦船處于復(fù)雜的環(huán)境,在圖像傳輸、圖像拍攝等過程中存在噪聲,影響圖像真實(shí)性,所以需要對(duì)圖像進(jìn)行濾波。本文在FPGA中采用中值濾波的方式,中值濾波采用非線性平滑技術(shù)處理圖像,尤其對(duì)椒鹽噪聲的濾波效果非常好,同時(shí)中值濾波在濾波時(shí)對(duì)艦船邊緣影響較小。
中值濾波指用像素點(diǎn)灰度值的中值替代具體某點(diǎn)的像素值。中值濾波在FPGA中的實(shí)現(xiàn)方法多樣,本文采用Shift_RAM實(shí)現(xiàn)中值濾波。在FPGA中實(shí)現(xiàn)中值濾波包括3個(gè)步驟:①在Shift_RAM中保存3行數(shù)據(jù),之后在每行對(duì)這3個(gè)像素進(jìn)行并行排序;②獲取3個(gè)像素中的最大值、最小值和中間值;③將得到的最大值、最小值和中間值再次求中值,該值為求得的中值。具體實(shí)現(xiàn)過程如圖3所示,中值濾波包括緩存器、排序模塊和D觸發(fā)器。圖像數(shù)據(jù)通過Shift_RAM進(jìn)行數(shù)據(jù)緩存和移位操作,首先每行相應(yīng)像素?cái)?shù)據(jù)通過模塊1-3進(jìn)行排序,在FPGA中并行執(zhí)行3個(gè)像素?cái)?shù)據(jù)的排序。
接著排序模塊4-6對(duì)已處理后的數(shù)據(jù)再次進(jìn)行處理,處理過程是把排序模塊1-3中的最大值作為排序輸出輸入到排序模塊4中,最小值輸入到排序模塊6中,中間值輸入到排序模塊5中。將排序模塊4的最小值、排序模塊5的中間值和排序模塊6的最大值輸入到排序模塊7中,然后由排序模塊7對(duì)這3個(gè)數(shù)進(jìn)行排序,取中間值位置濾波輸出的結(jié)果。中值濾波在FPGA中實(shí)現(xiàn)后,在Modelsim中對(duì)其進(jìn)行仿真。從仿真結(jié)果可以看出,中值濾波符合設(shè)計(jì)要求。
3 實(shí)驗(yàn)結(jié)果
完成系統(tǒng)硬件平臺(tái)設(shè)計(jì)之后,本文利用從網(wǎng)絡(luò)下載的圖片對(duì)相關(guān)算法進(jìn)行測(cè)試,測(cè)試時(shí)利用MATLAB把圖片轉(zhuǎn)換成imag.txt文件,然后通過串口把圖片數(shù)據(jù)發(fā)給FPGA,F(xiàn)PGA把數(shù)據(jù)存儲(chǔ)在SDRAM中,之后從SDRAM中讀出圖像并進(jìn)行處理,相關(guān)算法完成處理后通過USB串口在電腦中顯示。
將相關(guān)算法處理后的圖像進(jìn)行分析,其中圖11是目標(biāo)原圖,圖12是本文采用自適應(yīng)閾值進(jìn)行二值化分割后的結(jié)果,圖13是本文采用文獻(xiàn)[8]中的方法進(jìn)行二值化分割后的結(jié)果,對(duì)比兩種分隔情況可以看出來,利用OSTU分隔方法進(jìn)行分隔的圖像邊緣信息更加豐富,圖像細(xì)節(jié)更加清晰。
利用OSTU算法進(jìn)行圖像二值化后,再進(jìn)行腐蝕和膨脹處理。由于艦船在航行中引起的浪花對(duì)艦船目標(biāo)實(shí)際邊緣影響最大,需要對(duì)圖像進(jìn)行濾波以進(jìn)一步消除相關(guān)干擾,本文主要采用數(shù)學(xué)形態(tài)的濾波方法消除噪聲干擾。圖14是經(jīng)過腐蝕和膨脹之后的艦船目標(biāo),從圖14可以看出經(jīng)過形態(tài)濾波之后很大一部分干擾信息被消除。圖15是在形態(tài)濾波的基礎(chǔ)上艦船目標(biāo)邊緣檢測(cè)結(jié)果,邊緣檢測(cè)本身具有平滑作用,所以從圖15可以看出,經(jīng)過OSTU算法和數(shù)學(xué)形態(tài)濾波技術(shù)處理后可以較精準(zhǔn)地確定艦船目標(biāo)邊緣信息,沒有經(jīng)過數(shù)學(xué)形態(tài)而直接進(jìn)行邊緣檢測(cè)得到的邊緣信息如圖16所示,可以看出沒有形態(tài)濾波邊緣檢測(cè)圖像里干擾信息非常大。
同時(shí)本文在FPGA中對(duì)相關(guān)算法加以實(shí)現(xiàn),由于FPGA并行處理能力非常強(qiáng),所以目標(biāo)邊緣檢測(cè)實(shí)時(shí)性很高,從實(shí)驗(yàn)和仿真結(jié)果來看,仿真時(shí)采用仿真頻率為50MHz的時(shí)鐘驅(qū)動(dòng),在FPGA中處理600×480圖像大約需21.2ms,每秒鐘大約可處理207幅圖像,完全可以滿足艦船目標(biāo)對(duì)系統(tǒng)實(shí)時(shí)性要求。
4 結(jié)語
本文提出利用自適應(yīng)OSTU算法和數(shù)學(xué)形態(tài)學(xué)的方法對(duì)艦船目標(biāo)進(jìn)行邊緣檢測(cè),并利用FPGA硬件平臺(tái)對(duì)相關(guān)算法加以實(shí)現(xiàn)。測(cè)試結(jié)果表明,利用OSTU算法對(duì)艦船目標(biāo)進(jìn)行二值化的分割效果更好,利用數(shù)學(xué)形態(tài)學(xué)的方法可以更好地消除包括復(fù)雜的海水背景和航行波浪產(chǎn)生的影響。同時(shí)由于本系統(tǒng)采用FPGA進(jìn)行實(shí)現(xiàn),耗時(shí)比傳統(tǒng)方法提高5倍以上。但本文采用自適應(yīng)OSTU算法獲取的圖像閾值為全局閾值,在圖像分割中受光照不均勻等因素影響較大,這也是下一步待研究解決的問題。
參考文獻(xiàn):
[1] 宋明珠,張素霞. 含噪光學(xué)遙感圖像海面弱小艦船目標(biāo)檢測(cè)[J]. 光學(xué)學(xué)報(bào)2017,24(37):1-7.
[2] 吳飛,汪渤,周志強(qiáng). 基于船頭特征提取和輪廓定位的港口艦船檢測(cè)[J]. 北京理工大學(xué)學(xué)報(bào),2018,20(38):387-393.
[3] 胡耀輝,張科,邢超. 基于海天線的艦船弱小目標(biāo)檢測(cè)[J]. 西北工業(yè)大學(xué)學(xué)報(bào),2019,37(1):35-40.
[4] LI WK,F(xiàn)U K,SUN H. Integrated localization and recognition for inshore ships in large scene remote sensing images[J]. IEEE Geoscience and Remote Sensing Letters.2017,14(6): 936-940.
[5] GONZALEZ C I,MELIN P,CASTRO J R,et al. An improved Sobel edge detection method based on generalized type-2 fuzzy logic[J].Soft Computing,2016,20(2):773-784.
[6] YANG G,LI B ,JI S. Ship detection from optical satellite images based on sea surface analysis[J]. IEEE Geoscience and Remote Sensing Letters , 2014, 11(3): 641-645.
[7] 杜默,王清理. 基于雙邊緣檢測(cè)的目標(biāo)定位技術(shù)[J]. 計(jì)算機(jī)與現(xiàn)代化,2016, 56(1):56-59.
[8] 侯宏錄,張文芳. 基于 FPGA 的 SDRAM 控制器設(shè)計(jì)方案[J]. 兵工自動(dòng)化, 2012, 31(2):57-60.
[9] 梁晨,趙邦信. 基于 FPGA 和DDR3 SDRAM 的大規(guī)模查找表設(shè)計(jì)與實(shí)現(xiàn)[J]. 電子器件,2017,40(4): 849-855.
[10] 宋森森,賈振紅,楊杰. 結(jié)合Ostu閾值法的最小生成樹圖像分割算法[J]. 計(jì)算機(jī)工程與應(yīng)用,2018,56(1):1-7.
[11] 趙冬梅,楊薇. 數(shù)學(xué)形態(tài)濾波的圖像邊緣檢測(cè)[J]. 艦船科學(xué)技術(shù),2018, 40(5A):31-35.
[12] 郭海濤,徐雷,趙紅葉. 一種抑制聲吶圖像散斑噪聲的形態(tài)學(xué)濾波器[J]. 儀器儀表學(xué)報(bào),2015,36(3):654-660.
[13] 仝海峰. 基于FPGA實(shí)時(shí)Sobel邊緣檢測(cè)形態(tài)學(xué)優(yōu)化設(shè)計(jì)[J]. 微電子學(xué),2015,6(45):781-784.
[14] 葉惠嬌,冉全,成果. FPGA 圖像邊緣檢測(cè)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 計(jì)算機(jī)應(yīng)用與軟件,2018,12(35):237-302.
[15] 李正,張海. 一種基于梯度方向一致性的邊緣檢測(cè)新算法[J]. 電子與信息學(xué)報(bào),2016, 38(7):1674-1681.
[16] 徐文晴,王敏. 基于自適應(yīng)形態(tài)學(xué)濾波的紅外小目標(biāo)檢測(cè)算法[J]. 激光與紅外,2017, 47(1):108-113.
[17] 金大超,冷建偉. 基于 FPGA-邊緣檢測(cè)算法的設(shè)計(jì)[J]. 電子設(shè)計(jì)工程,2017, 25(13):159-162.
[18] 溫杰,李錦明. 基于 FPGA 的實(shí)時(shí)圖像邊沿檢測(cè)系統(tǒng)的實(shí)現(xiàn)[J]. 電子技術(shù)應(yīng)用,2015,41(10):65-67.
[19] 何春華,張雪飛,胡迎春. 基于改進(jìn) Sobel 算子的邊緣檢測(cè)算法的研究[J]. 光學(xué)技術(shù),2015,38(3):323-327.
[20] 董立紅,彭業(yè)勛,符立梅. 基于Sobel邊緣檢測(cè)的圓周Harris角點(diǎn)檢測(cè)算法[J]. 西安科技大學(xué)學(xué)報(bào),2019,2(38):374-380.
(責(zé)任編輯:江 艷)