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