本發(fā)明涉及一種紅外圖像處理技術(shù),特別是一種基于fpga的紅外顯著物體檢測(cè)方法。
背景技術(shù):
紅外成像具有良好的穿透能力、較強(qiáng)的抗干擾能力和可晝夜工作的優(yōu)點(diǎn),基于紅外成像的顯著物體檢測(cè)技術(shù)廣泛應(yīng)用于制導(dǎo)、跟蹤及預(yù)警等軍事系統(tǒng)中。顯著物體檢測(cè)方法的實(shí)時(shí)性、穩(wěn)定性和精度將直接影響軍事系統(tǒng)的可靠性。然而,紅外圖像信息單一,對(duì)比度低,且存在信號(hào)弱和背景復(fù)雜等情況,給檢測(cè)造成了極大的困難。因此,亟待開發(fā)適用于紅外圖像的顯著物體檢測(cè)系統(tǒng)和方法。
吳燕茹等在文獻(xiàn)(利用kpca特征提取的adaboost紅外目標(biāo)檢測(cè)[j].紅外與激光工程,2011,40(2):338-343.)中提出的紅外目標(biāo)檢測(cè)算法較傳統(tǒng)算法具有更好的魯棒性和準(zhǔn)確性,但該算法復(fù)雜度高,在硬件平臺(tái)上的實(shí)現(xiàn)效果有待考證。
stolkin等在文獻(xiàn)(particlefiltertrackingofcamouflagedtargetsbyadaptivefusionofthermalandvisiblespectracameradata[j].ieeetransactionsonsensorsjournal,2013,99:1-8.)中提出的目標(biāo)檢測(cè)和跟蹤方法對(duì)于偽裝目標(biāo)有較好的檢測(cè)效果,但是該方法基于可見光和紅外融合圖像,在硬件平臺(tái)上實(shí)現(xiàn)時(shí),系統(tǒng)的復(fù)雜度高,穩(wěn)定性難以保障。
cn201310031758.7采用dsp處理器,雖然可以實(shí)現(xiàn)運(yùn)動(dòng)目標(biāo)檢測(cè),但由于單個(gè)dsp不具備并行處理能力,處理時(shí)間相對(duì)較長(zhǎng),且基于dsp的系統(tǒng)結(jié)構(gòu)復(fù)雜,功耗高,不利于應(yīng)用到軍事系統(tǒng)中。
cn201410450244.x采用一種基于fpga的紅外目標(biāo)檢測(cè)方法,該方法能夠提高檢測(cè)系統(tǒng)的實(shí)時(shí)性,但僅針對(duì)小目標(biāo)檢測(cè),對(duì)復(fù)雜場(chǎng)景中的各顯著物體難以檢測(cè),不具有普適性。
近年來fpga芯片工藝發(fā)展迅速,片上資源越來越豐富、處理速度越來越快,且在fpga上能夠?qū)崿F(xiàn)靈活的設(shè)計(jì),節(jié)約開發(fā)周期和成本。采用fpga實(shí)現(xiàn)紅外顯著物體檢測(cè)算法,不僅因?yàn)樗哂胁⑿刑幚砟芰?,還因?yàn)樗啥雀撸c紅外相機(jī)構(gòu)成的實(shí)時(shí)檢測(cè)系統(tǒng)在體積和重量方面更具優(yōu)勢(shì)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種基于fpga的紅外顯著物體檢測(cè)方法,該方法可以于復(fù)雜的場(chǎng)景中檢測(cè)出顯著物體,在確保實(shí)時(shí)性和穩(wěn)定性的同時(shí)能夠提高檢測(cè)精度。
一種基于fpga的紅外顯著物體檢測(cè)方法,其特征在于,包括以下步驟:
步驟1,采集圖像a1;
步驟2,對(duì)采集到的圖像進(jìn)行閾值分隔得到圖像a2;
步驟3,對(duì)a2進(jìn)行邊緣檢測(cè)得到圖像a3;
步驟4,對(duì)a3標(biāo)記連通域得到圖像a4;
步驟5,對(duì)a4中的連通域,獲取以連通域邊界為特征的特征矩陣;
步驟6,對(duì)連通域?qū)?yīng)的特征矩陣,通過約束的方式判斷是否為顯著物體,包括視野約束、灰度約束和占空比約束;
步驟7,對(duì)通過約束的連通域進(jìn)行交叉合并得到新的連通域特征矩陣;
步驟8,輸出經(jīng)交叉合并后連通域特征值對(duì)應(yīng)邊界值內(nèi)的圖像。
本發(fā)明與現(xiàn)有技術(shù)相比,具有如下優(yōu)點(diǎn):(1)紅外顯著物體檢測(cè)方法基于fpga實(shí)現(xiàn),其采用的系統(tǒng)體積小,功耗低,可以在消隱期內(nèi)完成整體算法,系統(tǒng)實(shí)時(shí)性較好;(2)紅外顯著物體檢測(cè)方法與圖像采集和預(yù)處理模塊完全獨(dú)立,算法可移植性高;(3)采用視野約束、灰度約束和占空比約束判斷是否為顯著性物體,檢測(cè)精度較高;(4)采用交叉檢測(cè)域合并算法減少一個(gè)目標(biāo)被分散成多個(gè)檢測(cè)、標(biāo)記的情況,使檢測(cè)目標(biāo)更加連續(xù)。
下面結(jié)合說明書附圖對(duì)本發(fā)明做進(jìn)一步描述。
附圖說明
圖1是本發(fā)明基于fpga的紅外顯著物體檢測(cè)方法的流程圖。
圖2是本發(fā)明中邊緣檢測(cè)模塊的具體流程圖。
圖3是本發(fā)明中顯著性約束模塊的具體流程圖。
圖4是顯著性約束中視野約束模塊的區(qū)域劃分示意圖。
圖5是顯著性約束中灰度約束模塊的連通域邊界擴(kuò)展示意圖。
圖6是本發(fā)明方法在城市道路場(chǎng)景下的紅外顯著物體檢測(cè)效果圖一。
圖7是本發(fā)明方法在城市道路場(chǎng)景下的紅外顯著物體檢測(cè)效果圖二。
圖8是本發(fā)明方法在城市道路場(chǎng)景下的紅外顯著物體檢測(cè)效果圖三。
圖9是本發(fā)明方法在城市道路場(chǎng)景下的紅外顯著物體檢測(cè)效果圖四。
具體實(shí)施方式
如圖1所示,一種基于fpga的紅外顯著物體檢測(cè)方法,包括以下步驟:
步驟s1,采集圖像a1;
步驟s2,對(duì)采集到的圖像進(jìn)行閾值分隔得到圖像a2;
步驟s3,對(duì)a2進(jìn)行邊緣檢測(cè)得到圖像a3;
步驟s4,對(duì)a3標(biāo)記連通域得到圖像a4;
步驟s5,對(duì)a4中的連通域,獲取以連通域邊界為特征的特征矩陣;
步驟s6,對(duì)連通域?qū)?yīng)的特征矩陣,通過約束的方式判斷是否為顯著物體,包括視野約束、灰度約束和占空比約束;
步驟s7,對(duì)通過約束的連通域進(jìn)行交叉合并得到新的連通域特征矩陣;
步驟s8,輸出經(jīng)交叉合并后連通域特征值對(duì)應(yīng)邊界值內(nèi)的圖像;
下面詳細(xì)說明各模塊的實(shí)現(xiàn)方法,以下說明僅用來解釋本發(fā)明,并不限制本發(fā)明。
步驟s1,圖像采集和預(yù)處理,包括:
從熱像儀輸出的紅外視頻流中截取每一幀的256×256像素大小的圖像,對(duì)采集的圖像進(jìn)行預(yù)處理,通過預(yù)處理以后的圖像輸入到閾值分割模塊,同時(shí)存儲(chǔ)到fpga的ram1當(dāng)中。
圖像預(yù)處理的目的是濾除噪聲,提高信噪比。中值濾波是一種基于排序理論的非線性濾波技術(shù),能有效抑制噪聲。本實(shí)施例中選取5×5大小的中值濾波模板進(jìn)行圖像預(yù)處理。
步驟s2,閾值分割包括:
對(duì)通過預(yù)處理以后的圖像數(shù)據(jù),設(shè)圖像均值為u,同時(shí)設(shè)當(dāng)前景與背景的分割閾值為t時(shí),前景點(diǎn)所占圖像的比例為w0,均值為u0,背景點(diǎn)所占圖像的比例為w1,均值為u1。建立目標(biāo)函數(shù):
g(t)=w0×(u0-u)2+w1×(u1-u)2
按照最大類間方差法,使得g(t)取得全局最大值的t為最佳閾值,將圖像中灰度級(jí)大于或等于t的像素點(diǎn)灰度級(jí)設(shè)置為255,灰度級(jí)小于t的像素點(diǎn)灰度級(jí)設(shè)置為0,得到二值化圖像數(shù)據(jù),將其輸入到邊緣檢測(cè)模塊。
步驟s3,邊緣檢測(cè)包括:
采用canny算子對(duì)二值化圖像進(jìn)行邊緣檢測(cè),結(jié)合圖3,采用5×5窗口進(jìn)行高斯濾波,采用sobel算子計(jì)算濾波后圖像的梯度幅值和方向,通過梯度直方圖統(tǒng)計(jì)獲得高低閾值,對(duì)梯度直方圖進(jìn)行非極大值限制,按照之前獲得的高低閾值,采用雙門限的方法去除虛假邊緣點(diǎn)和連接邊緣。通過邊緣檢測(cè)后的圖像數(shù)據(jù)輸入到連通域標(biāo)記模塊。
步驟s4,連通域標(biāo)記包括:
一幅圖像中可以有多個(gè)連通域的存在,任意兩個(gè)連通域不重疊也不相鄰。一般來說,連通域的判斷有兩種度量準(zhǔn)則:四連通和八連通。四連通是指根據(jù)目標(biāo)像素點(diǎn)的上、下、左、右像素點(diǎn)判斷連通關(guān)系,而八連通是指根據(jù)目標(biāo)像素點(diǎn)的上、下、左、右和四個(gè)對(duì)角像素確定連通關(guān)系。八連通準(zhǔn)則的判斷誤差相對(duì)較小,因此本實(shí)施例采用八連通準(zhǔn)則進(jìn)行連通域標(biāo)記。
對(duì)通過邊緣檢測(cè)后的圖像進(jìn)行連通域標(biāo)記,將連通域標(biāo)記圖像存儲(chǔ)在ram2中。設(shè)全部標(biāo)記完成后,當(dāng)前邊緣檢測(cè)圖像中共有n個(gè)(n>=0,且為整數(shù))連通域,即標(biāo)記為1~n。
步驟s5,特征矩陣生成包括
讀取ram2中的最終連通域標(biāo)記圖像數(shù)據(jù),定義任一連通域的特征值為其上、下、左、右的邊界坐標(biāo)值:f_up、f_down、f_left、f_right,得到n個(gè)連通域的對(duì)應(yīng)的特征矩陣fr,每一行對(duì)應(yīng)一個(gè)連通域的特征值,表達(dá)式如下:
將特征矩陣存儲(chǔ)到fpga的ram3當(dāng)中。
步驟s6,顯著性約束包括:
對(duì)于特征矩陣生成模塊中獲得的n個(gè)連通域,需要通過約束的方式進(jìn)一步判斷,是否為顯著物體。如圖3所示,本發(fā)明中采用視野約束限制檢測(cè)范圍,采用灰度約束和占空比約束判斷目標(biāo)顯著性,檢測(cè)精度較高,并且約束參數(shù)均實(shí)時(shí)可調(diào),可適應(yīng)不同的場(chǎng)景。
顯著性約束包含視野約束、灰度約束和占空比約束。
(1)視野約束模塊
讀取ram3中對(duì)應(yīng)當(dāng)前幀的n個(gè)連通域的特征矩陣,任一連通域的中心坐標(biāo)可由下面的式子計(jì)算得到:
x_c=(f_left+f_right)/2
y_c=(f_up+f_down)/2
該連通域所占面積計(jì)算為:
s_c=(f_down-f_up+1)×(f_right-f_left+1)
如圖4所示,將連通域標(biāo)記圖像劃分為幾個(gè)區(qū)域,按照截取圖像的大小,m=n=256,本實(shí)施例中區(qū)域劃分參數(shù)x0=128,y3=250,y2=230,y1=220,y0=200,area0=64,area1=64,area2=25,area3=9,參數(shù)可根據(jù)實(shí)際場(chǎng)景調(diào)整。
對(duì)任一連通域,視野約束的具體實(shí)現(xiàn)方式如下:
1)判斷連通域中心坐標(biāo)是否在r0區(qū)域:若在r0區(qū)域,則判斷是否滿足s_c>=area0,滿足跳至步驟5),不滿足則跳至步驟6);若不在r0區(qū)域則跳至步驟2)。
2)判斷連通域中心坐標(biāo)是否在r1區(qū)域:若在r1區(qū)域,則判斷是否滿足s_c>=area1,滿足跳至步驟5),不滿足則跳至步驟6);若不在r1區(qū)域則跳至步驟3)。
3)判斷連通域中心坐標(biāo)是否在r2區(qū)域:若在r2區(qū)域,則判斷是否滿足s_c>=area2,滿足跳至步驟5),不滿足則跳至步驟6);若不在r2區(qū)域則跳至步驟4)。
4)判斷連通域中心坐標(biāo)是否在r3區(qū)域:若在r3區(qū)域,則判斷是否滿足s_c>=area3,滿足跳至步驟5),不滿足則跳至步驟6);若不在r3區(qū)域則跳至步驟6)。
5)該連通域滿足視野約束,在特征矩陣中保留其對(duì)應(yīng)的特征值。
6)該連通域不滿足視野約束,在特征矩陣中去除其對(duì)應(yīng)的特征值,刷新ram3。
分別對(duì)n個(gè)連通域進(jìn)行視野約束判斷,判斷完成后刷新ram3中的特征值,然后進(jìn)入灰度約束模塊。
(2)灰度約束模塊
讀取ram3中的通過視野約束模塊的連通域特征值,對(duì)其中任一連通域,將其上、下、左、右邊界分別擴(kuò)展,如圖5所示,其中:
e_up=f_up-ex_up,
e_down=f_down-ex_down,
e_left=f_left-ex_left,
e_right=f_right-ex_right,
擴(kuò)展參數(shù)可根據(jù)實(shí)際場(chǎng)景調(diào)整,在本實(shí)施例中,此處擴(kuò)展參數(shù)的取值為:
ex_up=ex_down=ex_left=ex_right=3
讀取ram1中緩存的圖像數(shù)據(jù),根據(jù)此圖像各像素點(diǎn)灰度級(jí)計(jì)算該連通域邊界內(nèi)的平均灰度級(jí)e_ave,以及擴(kuò)展區(qū)域內(nèi)的平均灰度級(jí)f_ave,灰度約束的具體描述如下式:
|e_ave-f_ave|>=g_ratio×max(e_ave,f_ave)
其中,g_ratio為灰度約束系數(shù),一般取g_ratio=0.3,本實(shí)施例中也取此值,但可根據(jù)實(shí)際場(chǎng)景調(diào)整。
同樣地,若該連通域滿足視野約束則保留,否則去除。對(duì)ram3中每一個(gè)連通域進(jìn)行灰度約束判斷,同時(shí)刷新ram3中的特征值,判斷完成后進(jìn)入占空比約束模塊。
(3)占空比約束模塊
占空比原本的定義是有效電平在一個(gè)周期內(nèi)所占的時(shí)間比率,本發(fā)明將其映射為圖像區(qū)域范圍內(nèi)有效像素點(diǎn)占整個(gè)區(qū)域像素點(diǎn)的比例,并將該比例稱為“目標(biāo)占空比”。有效像素點(diǎn)是指在某連通域邊界內(nèi)灰度級(jí)滿足一定約束的像素點(diǎn)。“目標(biāo)占空比”滿足一定條件就稱為占空比約束,通過該約束可以去除假目標(biāo),從而降低誤檢率。
下面說明占空比約束的具體實(shí)施方式:
讀取ram3中的通過灰度約束的連通域特征值,對(duì)其中任一連通域,計(jì)算在該連通域上、下、左、右邊界內(nèi)的總像素個(gè)數(shù):
pix_total=(f_down-f_up+1)×(f_right-f_left+1)
讀取ram1中緩存的圖像數(shù)據(jù),設(shè)gray(x,y)為該圖像在(x,y)坐標(biāo)位置對(duì)應(yīng)的灰度級(jí)大小,根據(jù)灰度約束計(jì)算的連通域邊界內(nèi)平均灰度f_ave及擴(kuò)展區(qū)域平均灰度e_ave,滿足以下兩個(gè)條件之一的像素點(diǎn)稱為有效像素點(diǎn),統(tǒng)計(jì)其個(gè)數(shù)為pix_duty:
1)若f_ave>=e_ave,則統(tǒng)計(jì)gray(x,y)>=e_ave的像素點(diǎn)個(gè)數(shù);
2)若f_ave<e_ave,則統(tǒng)計(jì)gray(x,y)<e_ave的像素點(diǎn)個(gè)數(shù);
那么定義該連通域邊界內(nèi)的“目標(biāo)占空比”為:
占空比約束可以具體描述為:
duty_ratio>=dr_min
其中dr_min為最小占空比參數(shù),本實(shí)施例中取50%,也可根據(jù)實(shí)際場(chǎng)景調(diào)整。
若該連通域滿足占空比約束則保留,否則去除。對(duì)ram3中每一個(gè)連通域進(jìn)行占空比約束判斷,同時(shí)刷新ram3中的特征值,判斷完成后進(jìn)入交叉檢測(cè)域合并模塊。
步驟s7,交叉檢測(cè)域合并包括:
讀取ram3中的通過占空比約束的連通域特征值,設(shè)通過顯著性約束模塊后ram3中剩余m個(gè)(m>=0,且為整數(shù))連通域的特征值,將這m個(gè)連通域記為l1,l2,…,lm,每個(gè)連通域?qū)?yīng)一個(gè)檢測(cè)目標(biāo),并將它的特征值對(duì)應(yīng)的上下左右邊界內(nèi)的區(qū)域稱為目標(biāo)檢測(cè)域,那么m個(gè)連通域就對(duì)應(yīng)著m個(gè)目標(biāo)檢測(cè)域。
以其中任兩個(gè)連通域lj、lk為例說明兩個(gè)目標(biāo)檢測(cè)域是否應(yīng)該合并,設(shè)lj的特征值為f_up_j、f_down_j、f_left_j、f_right_j,lk的特征值為f_up_k、f_down_k、f_left_k、f_right_k。
按照步驟s6中灰度約束的擴(kuò)展方式將lj的上、下、左、右邊界分別擴(kuò)展,將擴(kuò)展邊界內(nèi)的區(qū)域稱為lj的擴(kuò)展目標(biāo)檢測(cè)域,且在本實(shí)施例中,此處擴(kuò)展參數(shù)的取值為:ex_up_c=ex_down_c=4,ex_left_c=ex_right_c=10,大小可根據(jù)實(shí)際場(chǎng)景調(diào)整。
若lj的擴(kuò)展目標(biāo)檢測(cè)域與lk的目標(biāo)檢測(cè)域交叉,則合并這兩個(gè)目標(biāo)檢測(cè)域,形成一個(gè)合并的目標(biāo)檢測(cè)域,它的特征值為該合并目標(biāo)檢測(cè)域的上、下、左、右坐標(biāo),即:min(f_up_j,f_up_k)、max(f_down_j,f_down_k)、min(f_left_j,f_left_k),max(f_right_j,f_right_k)。
交叉檢測(cè)域合并的具體實(shí)現(xiàn)方式如下:
1)l1邊界擴(kuò)展,擴(kuò)展目標(biāo)檢測(cè)域分別與l2,…,lm的目標(biāo)檢測(cè)域比較,若與li的目標(biāo)檢測(cè)域與之交叉,則合并l1與li對(duì)應(yīng)目標(biāo)檢測(cè)域,且跳至步驟2),若判斷至lm都不交叉,也跳至步驟2);
2)若l2的目標(biāo)檢測(cè)域在之前的步驟已經(jīng)合并過則跳至步驟3),否則將l2邊界擴(kuò)展,擴(kuò)展目標(biāo)檢測(cè)域分別與l3,…,lm中在前面步驟中未合并過的目標(biāo)檢測(cè)域比較,若li的目標(biāo)檢測(cè)域與之交叉,則合并l2與li對(duì)應(yīng)目標(biāo)檢測(cè)域,并跳至步驟3),若判斷至lm都不交叉,也跳至步驟3);
3)若l3的目標(biāo)檢測(cè)域在之前的步驟已經(jīng)合并過則跳至步驟4),否則將l3邊界擴(kuò)展,擴(kuò)展目標(biāo)檢測(cè)域分別與l4,…,lm中在前面步驟中未合并過的目標(biāo)檢測(cè)域比較,若li的目標(biāo)檢測(cè)域與之交叉,則合并l3與li對(duì)應(yīng)目標(biāo)檢測(cè)域,并跳至步驟4),若判斷至lm都不交叉,也跳至步驟4);
m-1)若l(m-1)或lm的目標(biāo)檢測(cè)域在之前的步驟已經(jīng)合并過則結(jié)束合并步驟,否則將若l(m-1)邊界擴(kuò)展,擴(kuò)展目標(biāo)檢測(cè)域與lm的目標(biāo)檢測(cè)域比較,若交叉,則合并l(m-1)與lm對(duì)應(yīng)目標(biāo)檢測(cè)域,最后結(jié)束合并步驟。
在交叉檢測(cè)域合并的步驟中,每合并一次都需要更新ram3中的特征值,交叉檢測(cè)域合并步驟全部完成時(shí),ram3中的特征值即為最終目標(biāo)檢測(cè)域的特征值,即它的上、下、左、右邊界坐標(biāo)值。
步驟s8,顯著物體標(biāo)記模塊
交叉檢測(cè)域合并完成后,讀取ram3中目標(biāo)檢測(cè)域的特征值,根據(jù)其邊界值將目標(biāo)框疊加到輸出視頻流中,標(biāo)記出顯著物體。
通過圖6、7、8、9,可以明顯的看出,采用本方法,可以在復(fù)雜的場(chǎng)景檢測(cè)出顯著性物體,檢測(cè)精度較高。