0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Vivado HLS的圖像傳感器FPN噪聲去除算法設計

麥克泰技術 ? 來源: 嵌入式系統(tǒng)專家之聲 ? 2024-01-02 11:10 ? 次閱讀

0引言

隨著科技的發(fā)展,圖像傳感器逐步在各行各業(yè)廣泛應用[1]。受限于半導體工藝,CMOS圖像傳感器的輸出一般都帶有噪聲,噪聲的表現(xiàn)形式也多種多樣[2]。其中,F(xiàn)PN噪聲對圖像傳感器輸出的圖像質量影響很大,表現(xiàn)為明暗不均勻的條帶噪聲。同時,為了滿足圖像傳感器的實時攝像要求,算法的處理延時要低[3]。基于以上原因,本設計提出一種適用于圖像傳感器的 FPN 噪聲去除算法,并在XilinxZynq平臺的 PL 端(FPGA)進行設計與加速實現(xiàn),利用硬件并行化思想改進傳統(tǒng)的算法處理模式[4]。

目前,國內外對于條帶噪聲的去除算法分為以下3類:第一類是基于數(shù)字濾波的條帶噪聲去除算法,以小波變換和傅里葉變換法為代表;第二類是基于統(tǒng)計匹配的方法,以矩匹配算法和直方圖匹配算法為代表;第三類是基于變分正則化的方法。這些方法各有優(yōu)缺點,且都針對單幀特定類型的圖像效果較好。本設計的核心思想是基于統(tǒng)計匹配方法中的矩匹配算法并對其進行改進,使其應用于圖像傳感器的條帶噪聲去除,而不是單幀特定類型圖像的條帶噪聲去除。它基于傳感器的輻射分布特性,通過對比不同地物的統(tǒng)計特征來進行分類。矩匹配法的基本假設是每個地物在不同圖像傳感器的探測下具有獨特的輻射分布特征。該方法通過計算每個地物類別在傳感器觀測下的統(tǒng)計特征(如均值和方差),然后與已知的地物類 別的統(tǒng)計特征進行比較。Gadallah等人提出了矩匹配法,該方法對于條帶噪聲的去除效果較好,但在地物復雜的圖像中會產生“帶狀效應”[5]。劉正軍等人提出了改進的矩匹配方法,加入了傅里葉變換法等步驟[6]。Sun等人運用了光譜矩匹配法,結合遙感圖像的光譜相關特性,在譜域實施矩匹配來去條帶[7]。鄭逢斌等人加入了平滑濾波來改進矩匹配方法。胡寶鵬等人提出了變分法和 矩匹配相結合的條帶去除方法,先利用矩匹配方法去除條帶,然后定位殘余條帶噪聲,最后再運用變分法去除剩余條帶[9]。蘇俊杰等人提出了使用空間鄰域加權方法的改進矩匹配法,針對特定高光譜影像噪聲特點,對影像實現(xiàn)相對輻射校正[10]。

矩匹配法也有一些限制,如對傳感器觀測下的輻射分布假設較為嚴格,以及對統(tǒng)計特征的計算和比較可能受到噪聲和數(shù)據(jù)不完整性的影響,所以使得去除條帶噪聲后的圖像的地物光譜信息的分布具有一定的畸變,產生“帶狀效應”。本設計中,系統(tǒng)上電后讓圖像傳感器采集隨機的300幀圖像正是為了克服這一缺點,讓該傳感器的條帶噪聲更加準確地被分離出來,以免產生“帶狀效應”。

1算法流程

矩匹配法在處理圖像時要求行均值和行方差接近,因此其去條帶噪聲效果較好。然而,當處理復雜地物導致子圖像的行均值和行方差的差異較大時,該方法可能出現(xiàn)“帶狀效應”,即圖像在行或列方向上出現(xiàn)明暗度不連續(xù)的現(xiàn)象,與實際地物自然分布特征不符。這種現(xiàn)象的根本原因在于經過矩匹配算法后,圖像中所有行或列的均值相等,導致光譜信息失真。本設計的算法基于矩匹配統(tǒng)計的思想。首先讓圖像傳感器采集隨機場景的300 幀圖像,目的是不同場景的樣本越多,分離出的條帶噪聲結果越準確。本設計中選用的 OV6946表現(xiàn)出的 FPN 噪聲為列條帶噪聲,采集好隨機場景的300 幀圖像后,首先,求出這 300幀圖像的列像素均值,如式(1)所示:

b0e2c0b0-a91b-11ee-8b88-92fbcf53809c.png

式中,x代表單幀圖像的第x列,y代表300 幀圖像的第y行,j為單幀圖像的行數(shù)乘300。如本設計中所用的OV6946圖像傳感器,輸出參數(shù)為400×400@30f/s,在式 (1)中,x的范圍為1~400,y的范圍為1~120000,j的值為120000。接著,求出這300幀圖像的所有像素平均值,如式(2)所示:

b0e9ce28-a91b-11ee-8b88-92fbcf53809c.png

式中,x、y與j的意義同式(1),i為單幀圖像的列數(shù),如本設計中所用的 OV6946 圖像傳感器,輸出參數(shù)為 400×400@30f/s,i的值為400。最后,求每列的校正值,如式(3)所示:

b0f43eee-a91b-11ee-8b88-92fbcf53809c.png

式中,x為單幀圖像的第 x列,也就是每列內的像素值共用一個校正值,該列內的像素值減去這個校正值后,即為去除條帶噪聲的結果,如式(4)所示:

b0fb5936-a91b-11ee-8b88-92fbcf53809c.png

若k(x)小于0,則取為0。至此,完成了條帶噪聲的分離,對于該圖像傳感器,采集圖像的像素值按列減去當前列號的校正值即可。

2硬件平臺

算法最終運行的載體為 Zynq7020 平臺,Zynq 是由 Xilinx公司開發(fā)的可編程片上系統(tǒng)平臺。它結合了處理系統(tǒng) PS 和可編程邏輯 PL,采用了 ARM 處理器與 FPGA的組合架構。這兩部分相互聯(lián)系但可以獨立使用[11]。

攝像頭型號為OV6946。OV6946是OmniVision Technologies公司推出的一款超小型CMOS 圖像傳感器芯片,尺寸為0.65 mm×0.65 mm×1.158 mm。OV6946采用 CMOS圖像傳感器技術,具有低功耗、高靈敏度和高動態(tài)范圍等優(yōu)點。但是由于受半導體工藝的限制,最后的成像效果可能帶有不同程度的條帶噪聲,需要視情況進行去除。

3基于 Vivado HLS 的設計與加速

本文的算法設計與加速是通過 Vivado HLS 開發(fā)完成的。Vivado HLS(High Level Synthesis)是 Xilinx 公司提供的一款高級綜合工具。它允許開發(fā)人員使用 C、C++或SystemC等高級語言描述硬件功能,并將其自動轉換為可綜合的硬件描述語言。利用 Vivado HLS可以縮短 1/3的 RTL仿真時間,使算法驗證速度提高10倍以上[12]。

在本設計中,OV6946圖像傳感器輸出的原始數(shù)據(jù)經過預處理后輸出 RGB888 格式的圖像數(shù)據(jù)。在算法處理之前,首先要對 RGB888進行通道分離,然后分別對 R、G、B通道進行校正,接著再通道合并,最后進行輸出。算法總體設計架構如圖1所示。

b10484fc-a91b-11ee-8b88-92fbcf53809c.png

圖1 算法總體設計架構

在使用 Vivado HLS 編寫IP之前,先把 OV6946 的 RGB888 數(shù)據(jù)轉換為 AXI4 Stream 協(xié)議的數(shù)據(jù)流,然后再使用 VivadoHLS編寫輸入/輸出接口都為 AXI4 Stream 的算法IP核。在 VivadoHLS中,首先使用 AXIvideo2Mat函數(shù)把傳入 IP 的 AXI4 Stream 轉換為 Mat,以便在 VivadoHLS中使用 OpenCV 進行圖像處理[13]。經算法處理后,再使用 Mat2AXIvideo 函數(shù)實現(xiàn) Mat到 AXI4 Stream 的轉換。

3.1 仿真與綜合

VivadoHLS除了將高效的編程代碼轉換為IP 以外,還提供了另一項重要功能:C 語言仿真和 C/RTL 協(xié)同仿真[14]。在對 VivadoHLS 設計的IP 工程進行綜合之前,可以進行功能性仿真來驗證C 代碼的邏輯正確性和效果是否符合預期[15]。為此,需要編寫激勵文件。

本設計的激勵文件編寫思路如下:首先,使用cvLoad- Image函數(shù)從本地加載待仿真處理的原始圖像,分辨率調整為400×400,與實際硬件平臺的圖像傳感器的分辨率相匹配。接下來,使用IplImage2AXIvideo函數(shù)將原始圖像轉換為 AXI4 Stream 協(xié)議的數(shù)據(jù)格式。在處理完成后,使用 AXIvideo2IplImage將數(shù)據(jù)重新轉換為圖像格式。最后,使用 cvShowImage 函數(shù)將圖像顯示出來,繼續(xù)進行 C/RTL 協(xié)同仿真,以驗證所編寫的算法 IP 的 AXI4 Stream 輸入/輸出接口是否可以正常流通數(shù)據(jù),仿真結果如圖2所示。

b113a5b8-a91b-11ee-8b88-92fbcf53809c.png

圖2 C/RTL的輸入輸出接口仿真結果

從圖2可以看出,AXI4 Stream 的output_r_TDATA 和 input_r_TDATA 單幀內都有連續(xù)的數(shù)據(jù),說明流接口邏輯仿真沒有問題。接下來可以進行IP工程的綜合,VivadoHLS綜合結果如圖3所示。

b122d79a-a91b-11ee-8b88-92fbcf53809c.png

圖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攝像頭的視頻流數(shù)據(jù)采集以及 FPN 噪聲校正值的計算與應用。而 PS端則負責攝像頭的寄存器配置。最終,通過 HDMI接口實現(xiàn)了實時處理的視頻流輸出和顯示。硬件平臺實物如圖4所示。

b1323afa-a91b-11ee-8b88-92fbcf53809c.png

圖4 系統(tǒng)實物圖

原始輸出如圖5所示,可以看出,圖像條帶噪聲明顯,嚴重影響圖像傳感器的輸出質量。

b14852d6-a91b-11ee-8b88-92fbcf53809c.png

圖5 未經本設計算法處理的原始輸出

在加入本設計的算法后,系統(tǒng)上電時要讓攝像頭隨機晃動或者對著播放隨機噪聲的顯示設備停留10s,以采集到足夠的帶有條帶噪聲的隨機圖像,因為 OV6946 的幀率為30fps,10秒剛好采集300幀圖像,10 秒后則一直應用計算出的結果,以達到去除該圖像傳感器條帶噪聲的目的。在進行完上述操作并且應用校正值后,實時顯示結果如圖6所示。

b165440e-a91b-11ee-8b88-92fbcf53809c.png

圖6 經本設計算法處理的圖像傳感器輸出

對比圖5和圖6可以明顯看出,條帶噪聲得到了較好的去除,圖像整體質量提升明顯,圖像無傳統(tǒng)的單幀矩匹配算法易產生的"帶狀效應"。表現(xiàn)為行條帶的FPN 噪聲也可用此方法進行噪聲去除,把上述列計算換為行計算即可。最后視頻幀顯示無撕裂,感覺不到延時,做到了實時處理。

4結語

本文圍繞 FPN 噪聲去除進行了設計與分析,基于矩匹配思想提出了一種去除圖像傳感器 FPN 噪聲的方法,使用 VivadoHLS設計算法IP 實現(xiàn)了 FPN 噪聲的去除,能夠輕松滿足 OV6946 攝像頭視頻流的實時處理。本算法對各應用場景 FPN 噪聲的去除具有一定的參考價值,可以用在諸如圖像傳感器產品出廠前校正與測試、攝像頭產品非均勻校正等場景,具有工程應用意義。

(作者單位:中北大學儀器科學與動態(tài)測試教育部重點實驗室,太原 030051)

(本文由《單片機嵌入式系統(tǒng)應用》雜志授權發(fā)表,原文刊發(fā)在2023年第12期)

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 噪聲
    +關注

    關注

    13

    文章

    1113

    瀏覽量

    47320
  • 圖像傳感器
    +關注

    關注

    68

    文章

    1849

    瀏覽量

    129348
  • Vivado
    +關注

    關注

    19

    文章

    799

    瀏覽量

    66128
  • HLS
    HLS
    +關注

    關注

    1

    文章

    128

    瀏覽量

    23966

原文標題:Vivado HLS的圖像傳感器FPN噪聲去除算法設計

文章出處:【微信號:麥克泰技術,微信公眾號:麥克泰技術】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    探索Vivado HLS設計流,Vivado HLS高層次綜合設計

    作者:Mculover666 1.實驗目的 通過例程探索Vivado HLS設計流 用圖形用戶界面和TCL腳本兩種方式創(chuàng)建Vivado HLS項目 用各種
    的頭像 發(fā)表于 12-21 16:27 ?3510次閱讀

    用OpenCV和Vivado HLS加速基于Zynq SoC的嵌入式視覺應用開發(fā)

    Vivado設計環(huán)境提供豐富的處理IP SmartCORE,能簡化到圖像傳感器、網(wǎng)絡及其它必要I/O接口的連接,簡化OpenCV庫中這些函數(shù)的實現(xiàn)。這相對于其它實現(xiàn)方案而言是一種明顯的優(yōu)勢,因為其它方案哪怕是
    發(fā)表于 04-21 15:49

    新手求助,HLS實現(xiàn)opencv算法加速的IP在vivado的使用

    是video in to AXI4-Stream,接到DMA,而HLS生成的算法IP是AXI4-Stream in and out。我想把AXI-Stream信號輸出接到HLS輸出的IP,IP經過
    發(fā)表于 01-16 09:22

    基于一種新型CMOS圖像傳感器原理及設計

    、去除FPN噪聲、色彩差值,圖像銳化差值、光圈修正、Gamma修正等一系列處理?! ⊥ㄟ^數(shù)字圖像處理算法
    發(fā)表于 11-14 15:24

    新型CMOS圖像傳感器設計

    進行處理。一般上,圖像的預處理是在協(xié)處理中完成的。最近,隨著SoC技術的發(fā)展,可以在CMOS傳感器中集成圖像預處理功能.這正顯示了CMOS圖像
    發(fā)表于 11-14 15:48

    上海格科微1/4英寸VGA CMOS圖像傳感器

    的sensor架構,有效減少串擾(crosstalk);圖像層次感比較強,圖像顯示比較真實;圖像周邊亮度比較強;在圖像處理上還進行了顏色糾正,保證色彩充分還原。至于
    發(fā)表于 12-03 10:22

    怎么在Vivado HLS中生成IP核?

    的經驗幾乎為0,因此我想就如何解決這個問題提出建議。這就是我的想法:1 - 首先,用Vivado HLS轉換VHDL中的C代碼(我現(xiàn)在有一些經驗)2 - 在Vivado HLS中生成I
    發(fā)表于 03-24 08:37

    Vivado HLS實現(xiàn)OpenCV圖像處理的設計流程與分析

    庫函數(shù),測試激勵讀入圖像,經過濾波處理輸出的圖像保存分析??梢钥吹?,算法的處理基于IPIimage類型,輸入和輸出圖像都使用此類型。2.3
    發(fā)表于 07-08 08:30

    Vivado HLS設計流的相關資料分享

    1.實驗目的通過例程探索Vivado HLS設計流用圖形用戶界面和TCL腳本兩種方式創(chuàng)建Vivado HLS項目用各種HLS指令綜合接口優(yōu)化
    發(fā)表于 11-11 07:09

    基于Vivado HLS平臺來評估壓縮算法

    隨著無線網(wǎng)絡的數(shù)據(jù)流量和密集度不斷增加,所有運營商都面臨著非常大的挑戰(zhàn)。一套好的數(shù)據(jù)壓縮算法能夠幫助運營商節(jié)省不少的網(wǎng)絡基礎設備的開支。使用Xilinx Vivado HLS工具評估開放式無線電設備
    發(fā)表于 11-17 02:25 ?1442次閱讀
    基于<b class='flag-5'>Vivado</b> <b class='flag-5'>HLS</b>平臺來評估壓縮<b class='flag-5'>算法</b>

    如何創(chuàng)建Vivado HLS項目

    了解如何使用GUI界面創(chuàng)建Vivado HLS項目,編譯和執(zhí)行C,C ++或SystemC算法,將C設計合成到RTL實現(xiàn),查看報告并了解輸出文件。
    的頭像 發(fā)表于 11-20 06:09 ?3862次閱讀

    關于Vivado HLS錯誤理解

    盡管 Vivado HLS支持C、C++和System C,但支持力度是不一樣的。在v2017.4版本ug871 第56頁有如下描述??梢?,當設計中如果使用到任意精度的數(shù)據(jù)類型時,采用C++ 和System C 是可以使用Vivado
    的頭像 發(fā)表于 07-29 11:07 ?5423次閱讀
    關于<b class='flag-5'>Vivado</b> <b class='flag-5'>HLS</b>錯誤理解

    CMOS圖像傳感器的ISP算法

    ISP,也稱為圖像信號處理(Image Signal Processor),在CMOS圖像傳感器(如相機)中起著重要的作用。ISP從圖像
    的頭像 發(fā)表于 05-28 11:39 ?3810次閱讀
    CMOS<b class='flag-5'>圖像</b><b class='flag-5'>傳感器</b>的ISP<b class='flag-5'>算法</b>

    UltraFast Vivado HLS方法指南

    電子發(fā)燒友網(wǎng)站提供《UltraFast Vivado HLS方法指南.pdf》資料免費下載
    發(fā)表于 09-13 11:23 ?1次下載
    UltraFast <b class='flag-5'>Vivado</b> <b class='flag-5'>HLS</b>方法指南

    VIVADO HLS設計移植到CATAPULT HLS平臺

    電子發(fā)燒友網(wǎng)站提供《將VIVADO HLS設計移植到CATAPULT HLS平臺.pdf》資料免費下載
    發(fā)表于 09-13 09:12 ?2次下載
    將<b class='flag-5'>VIVADO</b> <b class='flag-5'>HLS</b>設計移植到CATAPULT <b class='flag-5'>HLS</b>平臺