0引言
隨著科技的發展,圖像傳感器逐步在各行各業廣泛應用[1]。受限于半導體工藝,CMOS圖像傳感器的輸出一般都帶有噪聲,噪聲的表現形式也多種多樣[2]。其中,FPN噪聲對圖像傳感器輸出的圖像質量影響很大,表現為明暗不均勻的條帶噪聲。同時,為了滿足圖像傳感器的實時攝像要求,算法的處理延時要低[3]。基于以上原因,本設計提出一種適用于圖像傳感器的 FPN 噪聲去除算法,并在XilinxZynq平臺的 PL 端(FPGA)進行設計與加速實現,利用硬件并行化思想改進傳統的算法處理模式[4]。
目前,國內外對于條帶噪聲的去除算法分為以下3類:第一類是基于數字濾波的條帶噪聲去除算法,以小波變換和傅里葉變換法為代表;第二類是基于統計匹配的方法,以矩匹配算法和直方圖匹配算法為代表;第三類是基于變分正則化的方法。這些方法各有優缺點,且都針對單幀特定類型的圖像效果較好。本設計的核心思想是基于統計匹配方法中的矩匹配算法并對其進行改進,使其應用于圖像傳感器的條帶噪聲去除,而不是單幀特定類型圖像的條帶噪聲去除。它基于傳感器的輻射分布特性,通過對比不同地物的統計特征來進行分類。矩匹配法的基本假設是每個地物在不同圖像傳感器的探測下具有獨特的輻射分布特征。該方法通過計算每個地物類別在傳感器觀測下的統計特征(如均值和方差),然后與已知的地物類 別的統計特征進行比較。Gadallah等人提出了矩匹配法,該方法對于條帶噪聲的去除效果較好,但在地物復雜的圖像中會產生“帶狀效應”[5]。劉正軍等人提出了改進的矩匹配方法,加入了傅里葉變換法等步驟[6]。Sun等人運用了光譜矩匹配法,結合遙感圖像的光譜相關特性,在譜域實施矩匹配來去條帶[7]。鄭逢斌等人加入了平滑濾波來改進矩匹配方法。胡寶鵬等人提出了變分法和 矩匹配相結合的條帶去除方法,先利用矩匹配方法去除條帶,然后定位殘余條帶噪聲,最后再運用變分法去除剩余條帶[9]。蘇俊杰等人提出了使用空間鄰域加權方法的改進矩匹配法,針對特定高光譜影像噪聲特點,對影像實現相對輻射校正[10]。
矩匹配法也有一些限制,如對傳感器觀測下的輻射分布假設較為嚴格,以及對統計特征的計算和比較可能受到噪聲和數據不完整性的影響,所以使得去除條帶噪聲后的圖像的地物光譜信息的分布具有一定的畸變,產生“帶狀效應”。本設計中,系統上電后讓圖像傳感器采集隨機的300幀圖像正是為了克服這一缺點,讓該傳感器的條帶噪聲更加準確地被分離出來,以免產生“帶狀效應”。
1算法流程
矩匹配法在處理圖像時要求行均值和行方差接近,因此其去條帶噪聲效果較好。然而,當處理復雜地物導致子圖像的行均值和行方差的差異較大時,該方法可能出現“帶狀效應”,即圖像在行或列方向上出現明暗度不連續的現象,與實際地物自然分布特征不符。這種現象的根本原因在于經過矩匹配算法后,圖像中所有行或列的均值相等,導致光譜信息失真。本設計的算法基于矩匹配統計的思想。首先讓圖像傳感器采集隨機場景的300 幀圖像,目的是不同場景的樣本越多,分離出的條帶噪聲結果越準確。本設計中選用的 OV6946表現出的 FPN 噪聲為列條帶噪聲,采集好隨機場景的300 幀圖像后,首先,求出這 300幀圖像的列像素均值,如式(1)所示:
式中,x代表單幀圖像的第x列,y代表300 幀圖像的第y行,j為單幀圖像的行數乘300。如本設計中所用的OV6946圖像傳感器,輸出參數為400×400@30f/s,在式 (1)中,x的范圍為1~400,y的范圍為1~120000,j的值為120000。接著,求出這300幀圖像的所有像素平均值,如式(2)所示:
式中,x、y與j的意義同式(1),i為單幀圖像的列數,如本設計中所用的 OV6946 圖像傳感器,輸出參數為 400×400@30f/s,i的值為400。最后,求每列的校正值,如式(3)所示:
式中,x為單幀圖像的第 x列,也就是每列內的像素值共用一個校正值,該列內的像素值減去這個校正值后,即為去除條帶噪聲的結果,如式(4)所示:
若k(x)小于0,則取為0。至此,完成了條帶噪聲的分離,對于該圖像傳感器,采集圖像的像素值按列減去當前列號的校正值即可。
2硬件平臺
算法最終運行的載體為 Zynq7020 平臺,Zynq 是由 Xilinx公司開發的可編程片上系統平臺。它結合了處理系統 PS 和可編程邏輯 PL,采用了 ARM 處理器與 FPGA的組合架構。這兩部分相互聯系但可以獨立使用[11]。
攝像頭型號為OV6946。OV6946是OmniVision Technologies公司推出的一款超小型CMOS 圖像傳感器芯片,尺寸為0.65 mm×0.65 mm×1.158 mm。OV6946采用 CMOS圖像傳感器技術,具有低功耗、高靈敏度和高動態范圍等優點。但是由于受半導體工藝的限制,最后的成像效果可能帶有不同程度的條帶噪聲,需要視情況進行去除。
3基于 Vivado HLS 的設計與加速
本文的算法設計與加速是通過 Vivado HLS 開發完成的。Vivado HLS(High Level Synthesis)是 Xilinx 公司提供的一款高級綜合工具。它允許開發人員使用 C、C++或SystemC等高級語言描述硬件功能,并將其自動轉換為可綜合的硬件描述語言。利用 Vivado HLS可以縮短 1/3的 RTL仿真時間,使算法驗證速度提高10倍以上[12]。
在本設計中,OV6946圖像傳感器輸出的原始數據經過預處理后輸出 RGB888 格式的圖像數據。在算法處理之前,首先要對 RGB888進行通道分離,然后分別對 R、G、B通道進行校正,接著再通道合并,最后進行輸出。算法總體設計架構如圖1所示。
圖1 算法總體設計架構
在使用 Vivado HLS 編寫IP之前,先把 OV6946 的 RGB888 數據轉換為 AXI4 Stream 協議的數據流,然后再使用 VivadoHLS編寫輸入/輸出接口都為 AXI4 Stream 的算法IP核。在 VivadoHLS中,首先使用 AXIvideo2Mat函數把傳入 IP 的 AXI4 Stream 轉換為 Mat,以便在 VivadoHLS中使用 OpenCV 進行圖像處理[13]。經算法處理后,再使用 Mat2AXIvideo 函數實現 Mat到 AXI4 Stream 的轉換。
3.1 仿真與綜合
VivadoHLS除了將高效的編程代碼轉換為IP 以外,還提供了另一項重要功能:C 語言仿真和 C/RTL 協同仿真[14]。在對 VivadoHLS 設計的IP 工程進行綜合之前,可以進行功能性仿真來驗證C 代碼的邏輯正確性和效果是否符合預期[15]。為此,需要編寫激勵文件。
本設計的激勵文件編寫思路如下:首先,使用cvLoad- Image函數從本地加載待仿真處理的原始圖像,分辨率調整為400×400,與實際硬件平臺的圖像傳感器的分辨率相匹配。接下來,使用IplImage2AXIvideo函數將原始圖像轉換為 AXI4 Stream 協議的數據格式。在處理完成后,使用 AXIvideo2IplImage將數據重新轉換為圖像格式。最后,使用 cvShowImage 函數將圖像顯示出來,繼續進行 C/RTL 協同仿真,以驗證所編寫的算法 IP 的 AXI4 Stream 輸入/輸出接口是否可以正常流通數據,仿真結果如圖2所示。
圖2 C/RTL的輸入輸出接口仿真結果
從圖2可以看出,AXI4 Stream 的output_r_TDATA 和 input_r_TDATA 單幀內都有連續的數據,說明流接口邏輯仿真沒有問題。接下來可以進行IP工程的綜合,VivadoHLS綜合結果如圖3所示。
圖3 VivadoHLS 綜合結果
由圖3可知,綜合目標時鐘周期為10ns,預計最高可達到8.67ns,實際平臺時鐘為50 MHz(即20ns),故符合要求。最高延遲為 166453 個時鐘周期,時 鐘周期為 20ns,故預估延時約為3.3 ms。OV6946 圖像傳感器輸出的視頻流每秒為30 幀,所以幀間隔為33.3 ms,完全可以做到實時處理。至此,完成了算法IP的編寫、仿真與綜合,在 VivadoHLS中生成IP后,既可以通過 RTL 文件的方式添加進 Vivado 的工程,也可以通過 BlockDesign 的方式添加固化到 FPGA 中。
3.2 實物驗證與結果分析
本設計以 Zynq7020 為核心處理平臺,其中 PL 端負責 OV6946攝像頭的視頻流數據采集以及 FPN 噪聲校正值的計算與應用。而 PS端則負責攝像頭的寄存器配置。最終,通過 HDMI接口實現了實時處理的視頻流輸出和顯示。硬件平臺實物如圖4所示。
圖4 系統實物圖
原始輸出如圖5所示,可以看出,圖像條帶噪聲明顯,嚴重影響圖像傳感器的輸出質量。
圖5 未經本設計算法處理的原始輸出
在加入本設計的算法后,系統上電時要讓攝像頭隨機晃動或者對著播放隨機噪聲的顯示設備停留10s,以采集到足夠的帶有條帶噪聲的隨機圖像,因為 OV6946 的幀率為30fps,10秒剛好采集300幀圖像,10 秒后則一直應用計算出的結果,以達到去除該圖像傳感器條帶噪聲的目的。在進行完上述操作并且應用校正值后,實時顯示結果如圖6所示。
圖6 經本設計算法處理的圖像傳感器輸出
對比圖5和圖6可以明顯看出,條帶噪聲得到了較好的去除,圖像整體質量提升明顯,圖像無傳統的單幀矩匹配算法易產生的"帶狀效應"。表現為行條帶的FPN 噪聲也可用此方法進行噪聲去除,把上述列計算換為行計算即可。最后視頻幀顯示無撕裂,感覺不到延時,做到了實時處理。
4結語
本文圍繞 FPN 噪聲去除進行了設計與分析,基于矩匹配思想提出了一種去除圖像傳感器 FPN 噪聲的方法,使用 VivadoHLS設計算法IP 實現了 FPN 噪聲的去除,能夠輕松滿足 OV6946 攝像頭視頻流的實時處理。本算法對各應用場景 FPN 噪聲的去除具有一定的參考價值,可以用在諸如圖像傳感器產品出廠前校正與測試、攝像頭產品非均勻校正等場景,具有工程應用意義。
(作者單位:中北大學儀器科學與動態測試教育部重點實驗室,太原 030051)
(本文由《單片機與嵌入式系統應用》雜志授權發表,原文刊發在2023年第12期)
審核編輯:湯梓紅
-
噪聲
+關注
關注
13文章
1125瀏覽量
47517 -
圖像傳感器
+關注
關注
68文章
1917瀏覽量
129699 -
Vivado
+關注
關注
19文章
815瀏覽量
66889 -
HLS
+關注
關注
1文章
130瀏覽量
24208
原文標題:Vivado HLS的圖像傳感器FPN噪聲去除算法設計
文章出處:【微信號:麥克泰技術,微信公眾號:麥克泰技術】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論