基于fpga的高清視頻實(shí)時(shí)自動化去霧方法
【專利摘要】本發(fā)明公開了一種基于FPGA的高清視頻實(shí)時(shí)自動化去霧方法,涉及數(shù)字視頻圖像處理【技術(shù)領(lǐng)域】。本方法采用的是暗原色先驗(yàn)算法,并進(jìn)行了大量優(yōu)化,主要是:①輸入一幀CCD圖像傳感器產(chǎn)生的高清原始圖像數(shù)據(jù);②求取像素點(diǎn)的暗通道值;③求取像素點(diǎn)的暗原色值;④對像素點(diǎn)的暗原色值進(jìn)行均值濾波;⑤求取大氣光數(shù)值;⑥求取透過率值;⑦統(tǒng)計(jì)經(jīng)均值濾波后的暗原色值小于閾值1的像素點(diǎn)數(shù)目;⑧針對天空等明亮區(qū)域算法失效的情況調(diào)整透過率;⑨恢復(fù)出無霧圖像;⑩輸出原始圖像數(shù)據(jù)。本發(fā)明去霧效果好,能明顯提升圖像的對比度、清晰度、色彩飽和度和可視性;實(shí)現(xiàn)了自動化去霧功能;在FPGA上實(shí)現(xiàn)了該算法對高清視頻的實(shí)時(shí)處理。
【專利說明】基于FPGA的高清視頻實(shí)時(shí)自動化去霧方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)字視頻圖像處理【技術(shù)領(lǐng)域】,尤其涉及一種基于FPGA的高清視頻實(shí)時(shí)自動化去霧方法。
【背景技術(shù)】
[0002]在霧天等惡劣天氣環(huán)境下,光線受到大氣環(huán)境中存在的懸浮粒子(如煙霧、粉塵和顆粒等)的吸收消耗和物理散射作用,使采集得到的戶外圖像或視頻信息受到干擾,引起對比度下降和細(xì)節(jié)模糊。這些采集到的退化圖像不但使系統(tǒng)的利用價(jià)值變低和應(yīng)用范圍變窄,也極大地阻礙了戶外成像處理系統(tǒng)的圖像特征提取。因此,研宄如何從霧天退化圖像中獲取清晰的圖像信息是非常必要的。
[0003]目前,常見的去霧方法主要分為基于圖像增強(qiáng)的方法和基于圖像復(fù)原的方法。
[0004]基于圖像增強(qiáng)的方法是:不關(guān)注有霧圖像降質(zhì)的原因,單純從改善圖像視覺效果的角度出發(fā),以圖像增強(qiáng)的手段來實(shí)現(xiàn)有霧圖像對比度、清晰度和色彩的提升。其優(yōu)點(diǎn)是,因?yàn)椴皇菑挠徐F圖像降質(zhì)的原因出發(fā),并沒有特別針對有霧圖像,所以該方法的適用范圍較廣,而且圖像增強(qiáng)的方法一般都要比圖像復(fù)原的方法簡單,易實(shí)現(xiàn),運(yùn)算速度更快。其缺點(diǎn)是,沒有從有霧圖像降質(zhì)的原因出發(fā),因此針對性不夠,去霧效果一般沒有圖像復(fù)原的方法好。基于圖像增強(qiáng)的方法主要包括直方圖均衡化、Retinex、小波變換、曲波變換和同態(tài)濾波等。
[0005]基于圖像復(fù)原的方法是:從有霧圖像降質(zhì)的原因出發(fā),建立其退化模型,以圖像復(fù)原的方法恢復(fù)出其原本的圖像。其優(yōu)點(diǎn)是,具有針對性,去霧效果理想,得到的無霧圖像更加自然和真實(shí)。其缺點(diǎn)是,基于圖像復(fù)原的方法一般要基于一定的先驗(yàn)知識或已知一些前提條件,算法較為復(fù)雜,運(yùn)算時(shí)間長,而且適用范圍較窄?;趫D像復(fù)原的方法主要包括基于先驗(yàn)知識的算法、基于深度信息的算法和基于偏微分方程的算法。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的目的就在于克服現(xiàn)有技術(shù)存在的缺點(diǎn)和不足,提供一種基于FPGA的高清視頻實(shí)時(shí)自動化去霧方法。
[0007]本發(fā)明的技術(shù)方案是:
采用了暗原色先驗(yàn)算法,暗原色先驗(yàn)算法屬于基于圖像復(fù)原的方法,其去霧效果好,但也存在計(jì)算復(fù)雜,資源占用多,實(shí)時(shí)性差等明顯缺點(diǎn)。針對這些缺點(diǎn),在保證其去霧效果的前提下,本方法在CCD圖像傳感器產(chǎn)生的高清原始圖像數(shù)據(jù)上進(jìn)行處理,相比在RGB和YUV顏色空間上處理減少了大量的數(shù)據(jù)量,在暗原色值、大氣光數(shù)值和透過率值的求取上極大優(yōu)化了計(jì)算過程,減少了其資源占用和計(jì)算量,也減少了 DDR的使用,把延時(shí)控制在0.5毫秒以內(nèi),實(shí)時(shí)性好;同時(shí)針對天空等明亮區(qū)域算法失效的情況進(jìn)行了修正,并實(shí)現(xiàn)了自動化去霧功能。
[0008]算法處理的是CXD圖像傳感器產(chǎn)生的高清原始圖像數(shù)據(jù),而不是RGB或YUV顏色空間上的數(shù)據(jù)。
[0009]具體地說,本方法包括下列步驟:
輸入一幀CCD圖像傳感器產(chǎn)生的高清原始圖像數(shù)據(jù);
①A、采用雙線性插值和最小值濾波求得像素點(diǎn)的暗通道值;
①B、對區(qū)域中的暗通道值進(jìn)行最小值濾波,將結(jié)果作為該區(qū)域左上角像素點(diǎn)的暗原色值,如此逐點(diǎn)計(jì)算像素點(diǎn)的暗原色值;
①C、對暗原色值進(jìn)行均值濾波;
①C-a、對經(jīng)均值濾波后的暗原色值進(jìn)行最大值濾波,在相鄰若干幀圖像中該結(jié)果的平均值即為大氣光數(shù)值;
①C-b、將放大一定倍數(shù)后的透過率值存儲在以暗原色值為地址的ROM中,這樣透過率的計(jì)算過程就變成了讀取ROM的過程,ROM中透過率的計(jì)算公式為:t= (1-wO X dc/gray_max) Xn,t是透過率,w0取0.9,dc是暗原色值,gray_max是最大灰度級,η是放大倍數(shù);
再針對天空等明亮區(qū)域算法失效的情況修正了透過率值,引入了容差的概念,容差是指暗原色值與大氣光數(shù)值的差的絕對值,容差越小越容易出現(xiàn)透過率估計(jì)值偏小的情況,因此這里的做法是設(shè)定一個(gè)閾值,當(dāng)容差小于閾值時(shí)適當(dāng)增大透過率的值,否則透過率保持不變;
①C-c、統(tǒng)計(jì)經(jīng)均值濾波后的暗原色值小于閾值I的像素點(diǎn)數(shù)目,用來判斷場景是否有霧,在一幀圖像中,當(dāng)該像素點(diǎn)數(shù)目大于閾值2時(shí),場景被判斷為無霧,當(dāng)該像素點(diǎn)數(shù)目小于閾值3時(shí),場景被判斷為有霧,在閾值2與閾值3之間,判斷狀態(tài)保持不變(207);
②恢復(fù)出無霧圖像,計(jì)算公式為J=(1-A)/t+A,
J為無霧圖像,I為有霧圖像,A為大氣光數(shù)值,t為透過率;
③輸出一幀原始圖像數(shù)據(jù),當(dāng)場景被判斷為有霧時(shí),輸出的原始圖像為去霧后的圖像,當(dāng)場景被判斷為無霧時(shí),輸出的原始圖像與輸入圖像保持一致。
[0010]本發(fā)明具有下列優(yōu)點(diǎn)和積極效果:
①基于圖像復(fù)原的方法,去霧效果好,能明顯提升圖像的對比度、清晰度、色彩飽和度和可視性;
②對高清視頻圖像進(jìn)行處理,能把延時(shí)控制在0.5毫秒以內(nèi),實(shí)時(shí)性好;
③在CXD圖像傳感器產(chǎn)生的原始圖像數(shù)據(jù)上進(jìn)行處理,相比在RGB或YUV顏色空間上處理減少了大量的數(shù)據(jù)量;
④優(yōu)化了暗原色值的求取過程,采用了對區(qū)域內(nèi)的暗通道值進(jìn)行最小值濾波的方法來逐點(diǎn)求取暗原色值,避免了分塊求取暗原色值后需要對透過率值進(jìn)行細(xì)化、平滑的操作,也減少了逐點(diǎn)計(jì)算時(shí)的誤差,大大簡化了計(jì)算,減少了資源占用;
⑤優(yōu)化了大氣光數(shù)值的求取過程,先對經(jīng)均值濾波后的暗原色值進(jìn)行最大值濾波,然后求相鄰若干幀圖像中該結(jié)果的平均值作為大氣光數(shù)值,采用平均值可以避免因大氣光數(shù)值在相鄰幀之間的跳變而導(dǎo)致的視頻閃爍問題,同時(shí)把上一幀圖像的大氣光數(shù)值用在當(dāng)前幀上,減少了用DDR來緩存一幀圖像的需要;
⑥優(yōu)化了透過率值的求取過程,用讀取ROM的操作代替了復(fù)雜的計(jì)算過程,大大減少了資源占用和延時(shí);
⑦引入容差概念,對天空等明亮區(qū)域算法失效的情況進(jìn)行了修正,擴(kuò)大了算法的適用范圍;
⑧實(shí)現(xiàn)了自動化去霧功能;
⑨在FPGA上實(shí)現(xiàn)了該算法對高清視頻的實(shí)時(shí)處理。
【專利附圖】
【附圖說明】
[0011]圖1是本系統(tǒng)的結(jié)構(gòu)方框圖;
圖2是本方法步驟圖;
圖3是暗原色值求取流程圖;
圖4是大氣光數(shù)值求取流程圖。
[0012]圖中:
1— CXD圖像傳感器,
20—模數(shù)轉(zhuǎn)換器;
30—處理器,
31—數(shù)據(jù)采集模塊,
32—實(shí)時(shí)自動化去霧模塊,
33—數(shù)據(jù)輸出模塊;
40一顯不器。
[0013]英譯漢
FPGA:Field — Programmable Gate Array,現(xiàn)場可編程門陣列。
[0014]CCD:Charge-coupled device,電荷I禹合器件。
【具體實(shí)施方式】
[0015]下面結(jié)合附圖和實(shí)施例詳細(xì)說明:
一、系統(tǒng)
1、總體
如圖1,本系統(tǒng)是本方法的工作平臺,包括依次連接的CCD圖像傳感器10、模數(shù)轉(zhuǎn)換器20、處理器30和顯示器40 ;
處理器30包括依次交互的數(shù)據(jù)采集模塊31、實(shí)時(shí)自動化去霧模塊32和數(shù)據(jù)輸出模塊
33ο
[0016]2、功能部件
I) CXD圖像傳感器10
CCD圖像傳感器10是一種高感光度圖像傳感器;
其功能是產(chǎn)生光電轉(zhuǎn)換后生成模擬信號;
型號選用TSI的Ka1-04050。
[0017]2)模數(shù)轉(zhuǎn)換器20
模數(shù)轉(zhuǎn)換器20是一種多片單路模數(shù)轉(zhuǎn)換器或者多片帶雙路功能的模數(shù)轉(zhuǎn)換器;
其功能是將模擬信號量化成數(shù)字信號。
[0018]3)處理器 30
本發(fā)明采用Lattice公司的ECP3系列LFE335EA8FN484I型號的FPGA產(chǎn)品實(shí)現(xiàn);處理器30內(nèi)部主要算法模塊分別包含數(shù)據(jù)采集模塊31、實(shí)時(shí)自動化去霧模塊32和數(shù)據(jù)輸出模塊33。
[0019]以下分別描述處理器30中各模塊的功能:
(I)數(shù)據(jù)采集模塊31
采集CCD圖像傳感器10經(jīng)過模數(shù)轉(zhuǎn)換后的數(shù)字圖像數(shù)據(jù)。
[0020](2)實(shí)時(shí)自動化去霧模塊32
對采集到的圖像數(shù)據(jù)進(jìn)行實(shí)時(shí)自動化去霧處理。
[0021](3)數(shù)據(jù)輸出模塊33 將去霧處理后的原始數(shù)據(jù)輸出。
[0022]4)顯示器 40
有網(wǎng)絡(luò)協(xié)議的顯示裝置,如帶IE瀏覽器的電腦等。
[0023]3、本系統(tǒng)的工作機(jī)理
CCD圖像傳感器10感光,產(chǎn)生光電效應(yīng),輸出模擬電信號;
由模數(shù)轉(zhuǎn)換器20接收CCD圖像傳感器10輸出的模擬信號,并將其量化轉(zhuǎn)換成頻域數(shù)字量化值,以并行或者串行方式幀級連續(xù)傳輸?shù)较乱患壧幚砥?0 ;
處理器30檢測接收模數(shù)轉(zhuǎn)換器20的數(shù)字信號,通過數(shù)據(jù)采集模塊31收集數(shù)字圖像信號,再由實(shí)時(shí)自動化去霧模塊32對采集到的圖像進(jìn)行實(shí)時(shí)自動化去霧處理,最后輸出去霧后的原始圖像數(shù)據(jù)。
[0024]二、方法
如圖2,本方法包括下列步驟:
輸入一幀CCD圖像傳感器10產(chǎn)生的經(jīng)模數(shù)轉(zhuǎn)換后的高清原始圖像數(shù)據(jù)-201,而大多數(shù)情況下暗原色先驗(yàn)算法是在RGB顏色空間上對圖像進(jìn)行處理的;
①A、采用雙線性插值和最小值濾波求得像素點(diǎn)的暗通道值-202 ;
①B、對區(qū)域中的暗通道值進(jìn)行最小值濾波,將結(jié)果作為該區(qū)域左上角像素點(diǎn)的暗原色值,如此逐點(diǎn)計(jì)算像素點(diǎn)的暗原色值-203,而大多數(shù)情況下暗原色先驗(yàn)算法是分塊求取暗原色值的;
①C、對暗原色值進(jìn)行均值濾波-204,避免暗原色值在局部區(qū)域內(nèi)出現(xiàn)劇烈變化;
①C-a、對經(jīng)均值濾波后的暗原色值進(jìn)行最大值濾波,在相鄰若干幀圖像中該結(jié)果的平均值即為大氣光數(shù)值-205,采用平均值可以避免因大氣光數(shù)值的跳變而導(dǎo)致的視頻閃爍問題,大氣光數(shù)值每幀更新一次,在視頻消隱期更新,把上一幀圖像的大氣光數(shù)值用在當(dāng)前幀上,減少了用DDR來緩存一幀圖像的需要;
①C-b、將放大一定倍數(shù)后的透過率值存儲在以暗原色值為地址的ROM中,這樣透過率的計(jì)算過程就變成了讀取ROM的過程,而且也減少了細(xì)化、平滑透過率值的操作,大大節(jié)省了資源及減少了延時(shí),ROM中透過率的計(jì)算公式為:t= (1-wO X dc/gray_max) Xn,t是透過率,w0取0.9,dc是暗原色值,gray_max是最大灰度級,η是放大倍數(shù), 與標(biāo)準(zhǔn)的計(jì)算公式不同的是大氣光數(shù)值被固定為最大灰度級-206 ;
再針對天空等明亮區(qū)域算法失效的情況修正了透過率值,引入了容差的概念,容差是指暗原色值與大氣光數(shù)值的差的絕對值,容差越小越容易出現(xiàn)透過率估計(jì)值偏小的情況,因此這里的做法是設(shè)定一個(gè)閾值,當(dāng)容差小于閾值時(shí)適當(dāng)增大透過率的值,否則透過率保持不變-208 ;
①C-c、統(tǒng)計(jì)經(jīng)均值濾波后的暗原色值小于閾值I的像素點(diǎn)數(shù)目,用來判斷場景是否有霧,在一幀圖像中,當(dāng)該像素點(diǎn)數(shù)目大于閾值2時(shí),場景被判斷為無霧,當(dāng)該像素點(diǎn)數(shù)目小于閾值3時(shí),場景被判斷為有霧,在閾值2與閾值3之間,判斷狀態(tài)保持不變-207 ;
②恢復(fù)出無霧圖像,計(jì)算公式為J=(1-A)/t+A,
J為無霧圖像,I為有霧圖像,A為大氣光數(shù)值,t為透過率-209 ;
③輸出一幀原始圖像數(shù)據(jù),當(dāng)場景被判斷為有霧時(shí),輸出的原始圖像為去霧后的圖像,當(dāng)場景被判斷為無霧時(shí),輸出的原始圖像與輸入圖像保持一致-210。
[0025]I)暗原色值求取流程如圖3,暗原色值求取流程是:
A、采用雙線性插值和最小值濾波求得像素點(diǎn)的暗通道值-301;
B、對區(qū)域中的暗通道值進(jìn)行最小值濾波,將結(jié)果作為該區(qū)域左上角像素點(diǎn)的暗原色值,如此逐點(diǎn)計(jì)算像素點(diǎn)的暗原色值,而大多數(shù)情況下暗原色先驗(yàn)算法是分塊求取暗原色值的-302 ;
C、對暗原色值進(jìn)行均值濾波,避免暗原色值在局部區(qū)域內(nèi)出現(xiàn)劇烈變化-303。
[0026]2 )大氣光數(shù)值求取流程如圖4,大氣光數(shù)值求取流程是:
A、對經(jīng)均值濾波后的暗原色值進(jìn)行最大值濾波-401;
B、在相鄰若干幀圖像中該結(jié)果的平均值即為大氣光數(shù)值-402;
C、大氣光數(shù)值每幀更新一次,在視頻消隱期更新,把上一幀圖像的大氣光數(shù)值用在當(dāng)前幀上,減少了用DDR來緩存一幀圖像的需要。
[0027]3)透過率的求取流程是:
A、將透過率的計(jì)算過程簡化為讀取ROM的過程;
B、ROM中透過率數(shù)值的計(jì)算公式為:
t= (1-wOX dc/gray_max) Xn, t 是透過率,w0 取 0.9, dc 是暗原色值,gray_max 是最大灰度級,η是放大倍數(shù)。
[0028]與標(biāo)準(zhǔn)的計(jì)算公式不同的是大氣光數(shù)值被固定為最大灰度級,而且為了便于在FPGA計(jì)算透過率的數(shù)值被放大了一定倍數(shù)后再存儲在ROM中。
[0029]減少了細(xì)化和平滑透過率數(shù)值的操作。
[0030]4)自動化去霧流程是:
Α、在一幀圖像中,當(dāng)經(jīng)均值濾波后的暗原色值小于閾值I的像素點(diǎn)數(shù)目大于閾值2時(shí),場景被判斷為無霧,當(dāng)經(jīng)均值濾波后的暗原色值小于閾值I的像素點(diǎn)數(shù)目小于閾值3時(shí),場景被判斷為有霧,在閾值2與閾值3之間,判斷狀態(tài)保持不變;
B、當(dāng)場景被判斷為有霧時(shí),輸出的原始圖像為去霧后的圖像,當(dāng)場景被判斷為無霧時(shí),輸出的原始圖像與輸入圖像保持一致,從而實(shí)現(xiàn)自動化去霧。
【權(quán)利要求】
1.一種基于FPGA的高清視頻實(shí)時(shí)自動化去霧方法,其特征在于: 輸入一幀CXD圖像傳感器產(chǎn)生的高清原始圖像數(shù)據(jù)(201); ①A、采用雙線性插值和最小值濾波求得像素點(diǎn)的暗通道值(202); ①B、對區(qū)域中的暗通道值進(jìn)行最小值濾波,將結(jié)果作為該區(qū)域左上角像素點(diǎn)的暗原色值,如此逐點(diǎn)計(jì)算像素點(diǎn)的暗原色值(203); ①C、對暗原色值進(jìn)行均值濾波(204); ①C-a、對經(jīng)均值濾波后的暗原色值進(jìn)行最大值濾波,在相鄰若干幀圖像中該結(jié)果的平均值即為大氣光數(shù)值(205); ①C-b、將放大一定倍數(shù)后的透過率值存儲在以暗原色值為地址的ROM中(206),這樣透過率的計(jì)算過程就變成了讀取ROM的過程,ROM中透過率的計(jì)算公式為:t= (1-wO X dc/gray_max) Xn,t是透過率,w0取0.9,dc是暗原色值,gray_max是最大灰度級,η是放大倍數(shù); 再針對天空等明亮區(qū)域算法失效的情況修正了透過率值,引入了容差的概念,容差是指暗原色值與大氣光數(shù)值的差的絕對值,容差越小越容易出現(xiàn)透過率估計(jì)值偏小的情況,因此這里的做法是設(shè)定一個(gè)閾值,當(dāng)容差小于閾值時(shí)適當(dāng)增大透過率的值,否則透過率保持不變(208); ①C-c、統(tǒng)計(jì)經(jīng)均值濾波后的暗原色值小于閾值I的像素點(diǎn)數(shù)目,用來判斷場景是否有霧,在一幀圖像中,當(dāng)該像素點(diǎn)數(shù)目大于閾值2時(shí),場景被判斷為無霧,當(dāng)該像素點(diǎn)數(shù)目小于閾值3時(shí),場景被判斷為有霧,在閾值2與閾值3之間,判斷狀態(tài)保持不變(207); ②恢復(fù)出無霧圖像,計(jì)算公式為J=(1-A)/t+A, J為無霧圖像,I為有霧圖像,A為大氣光數(shù)值,t為透過率(209); ③輸出一幀原始圖像數(shù)據(jù),當(dāng)場景被判斷為有霧時(shí),輸出的原始圖像為去霧后的圖像,當(dāng)場景被判斷為無霧時(shí),輸出的原始圖像與輸入圖像保持一致(210)。
2.按權(quán)利要求1所述的一種基于FPGA的高清視頻實(shí)時(shí)自動化去霧方法,其特征在于像素點(diǎn)暗原色值的求取流程是: A、采用雙線性插值和最小值濾波求得像素點(diǎn)的暗通道值(301); B、對區(qū)域中的暗通道值進(jìn)行最小值濾波,將結(jié)果作為該區(qū)域左上角像素點(diǎn)的暗原色值,如此逐點(diǎn)計(jì)算像素點(diǎn)的暗原色值(302); C、對暗原色值進(jìn)行均值濾波,避免暗原色值在局部區(qū)域內(nèi)出現(xiàn)劇烈變化(303)。
3.按權(quán)利要求1所述的一種基于FPGA的高清視頻實(shí)時(shí)自動化去霧方法,其特征在于大氣光數(shù)值的求取流程是: A、對經(jīng)均值濾波后的暗原色值進(jìn)行最大值濾波(401); B、在相鄰若干幀圖像中該結(jié)果的平均值即為大氣光數(shù)值(402); C、大氣光數(shù)值每幀更新一次,在視頻消隱期更新,把上一幀圖像的大氣光數(shù)值用在當(dāng)前幀上。
4.按權(quán)利要求1所述的一種基于FPGA的高清視頻實(shí)時(shí)自動化去霧方法,其特征在于自動化去霧流程是: A、在一幀圖像中,當(dāng)經(jīng)均值濾波后的暗原色值小于閾值I的像素點(diǎn)數(shù)目大于閾值2時(shí),場景被判斷為無霧,當(dāng)經(jīng)均值濾波后的暗原色值小于閾值I的像素點(diǎn)數(shù)目小于閾值3時(shí),場景被判斷為有霧,在閾值2與閾值3之間,判斷狀態(tài)保持不變; B、當(dāng)場景被判斷為有霧時(shí),輸出的原始圖像為去霧后的圖像,當(dāng)場景被判斷為無霧時(shí),輸出的原始圖像與輸入圖像保持一致,從而實(shí)現(xiàn)自動化去霧。
【文檔編號】G06T5/00GK104506755SQ201510015274
【公開日】2015年4月8日 申請日期:2015年1月13日 優(yōu)先權(quán)日:2015年1月13日
【發(fā)明者】周維峰, 吳超斌 申請人:武漢烽火眾智數(shù)字技術(shù)有限責(zé)任公司