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

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

3天內不再提示

基于FPGA的圖像實時處理系統(tǒng)設計

FPGA設計論壇 ? 來源:未知 ? 2023-06-15 15:20 ? 次閱讀
9186747c-0b4c-11ee-962d-dac502259ad0.png

點擊上方藍字關注我們

由于現場實時測量的需要,機器視覺技術越來越多地借助硬件來完成,如DSP芯片、專用圖像信號處理卡等。但是,DSP做圖像處理也面臨著由于數據存儲與處理量大,導致處理速度較慢,系統(tǒng)實時性較差的問題。本文將FPGA的IP核內置緩存模塊和乒乓讀寫結構相結合,實現了圖像數據的緩存與提取,節(jié)省了存儲芯片所占用的片上空間,并且利用圖像預處理重復率高,但算法相對簡單的特點和FPGA數據并行處理,結合流水線的結構,大大縮短了圖像預處理的時間,解決了圖像處理實時性差的問題。
1系統(tǒng)架構和流程簡介
本系統(tǒng)采用了FPGA與DSP相結合的架構,綜合了各自的優(yōu)點,使系統(tǒng)滿足實時性要求的同時,又可以在后續(xù)任務中完成復雜算法的處理。系統(tǒng)的整體架構如圖1所示。
系統(tǒng)上電后,CCD相機向AD轉換芯片TVP5150輸入PAL制式模擬圖像信號,TVP5150將模擬信號轉換成數字信號后,以ITU-R BT656格式傳輸到FPGA,FPGA對采集到的ITU-R BT656格式的圖像數據去消隱化后進行預處理,處理完之后傳輸到DM642的VP0口,VP0以8位RAW格式接收圖像數據,并通過EDMA通道存儲到連接在EMIFA接口上的SDRAM中。經過DSP的圖像處理后,將SDRAM中的圖像數據以ITU-R BT656的格式經DM642的VP2口傳輸到DA芯片SAA7121,然后SAA7121進行DA轉換后,將PAL制式的模擬信號輸出到LCD顯示器上顯示。需要說明的是,TVP5150和SAA7121通過DM642的I2C總線接口配置。

9194ebf6-0b4c-11ee-962d-dac502259ad0.jpg


2 FPGA圖像緩存與處理
由于該系統(tǒng)利用FPGA并行性和高速性來縮減圖像預處理的時間,因此,FPGA的圖像緩存和預處理環(huán)節(jié)直接影響到系統(tǒng)的實時性,是整個系統(tǒng)的部分,也是本文所要介紹的重點。根據圖像預處理的需求和FPGA內部各模塊功能的不同,將其分為4個部分:去消隱化、濾波、閾值分割和邊緣提取。
2.1去消隱化
FPGA接收TVP5150傳輸的數字信號為ITUR BT656格式,該格式除了傳輸4∶2∶2的YCbCr視頻數據流外,還包含行、列消隱信號。因此,需要將行列消隱信號剔除掉,以便后期進行圖像預處理。
根據BT656的固有結構,編寫了Verilog硬件語言程序,用于提取BT656中的720×576個像素點的有效視頻數據,由于圖像處理過程只需要檢測亮度信號(Y分量),因此同時舍去各像素點的色度信號(Cb、Cr分量),僅保留亮度信號作為圖像有效數據。在去消隱化過程中,每行起始狀態(tài)里,檢測輸入8位數據,如果連續(xù)3個輸入信號滿足FF、00、00結構,則跳入下一個狀態(tài),判斷下一個8位輸入XY信號,是否為有效圖像標志信號(80標志該行為偶場圖像數據,C7標志該行為奇場圖像數據),若判斷是,則計數器計數,并采集計數器為偶數時的數據(即亮度信號),為圖像有效數據,當采集滿720個圖像有效數據時,狀態(tài)機轉入初始狀態(tài)繼續(xù)等待FF、00、00結構,并依此循環(huán)。
2.2濾波
攝像機采集的圖像存在各類噪聲,從而對目標信息的進一步處理產生不利影響,因此,獲取圖像后需要對圖像進行濾波??紤]到中值濾波在平滑脈沖噪聲方面非常有效,并且可以保護圖像尖銳的邊緣的優(yōu)點,我們選用3×3中值濾波作為系統(tǒng)的圖像濾波算法。中值濾波模塊包括3個子模塊:乒乓結構讀寫模塊、3×3陣列生成模塊和中值濾波算子模塊,其流程如圖2所示。

91a75584-0b4c-11ee-962d-dac502259ad0.jpg


2.2.1乒乓結構讀寫模塊
為了節(jié)約芯片成本和電路板的片上空間,圖像數據的存儲利用FPGA上固有的IP核生成雙口RAM來緩存。由于圖像數據量較大,而中值濾波只需要持續(xù)地提取3×3模塊來進行數據處理,因此,僅需生成4片雙口RAM,每個用于存儲一行的圖像數據,通過乒乓讀寫結構,便可實現數據的緩存。
乒乓讀寫結構是指將輸入數據流通過輸入數據選擇單元等時地將輸入數據分配到兩個數據緩存區(qū),并且再寫入某一個緩存區(qū)的過程中,從另外一個緩存區(qū)讀出上個緩存周期寫入的數據,依此循環(huán),不斷往復。在本系統(tǒng)中,選用4片1024×8bit的雙口RAM作為緩存區(qū),在每個緩存周期,向其中1片雙口RAM中寫入圖像數據,同時,讀控制模塊從另外3片雙口RAM中讀出前三個緩存周期已寫入的數據,用于生成3×3陣列。當一行數據緩存完成后,寫使能信號跳轉到下一個雙口RAM,繼續(xù)進行下一行數據寫入,讀控制模塊繼續(xù)讀取剩余三行所存儲數據。
2.2.2 3×3陣列生成模塊
3×3陣列生成模塊利用了3個并行的24位移位寄存器,如果讀使能信號有效,則在每個時鐘的上升沿,將3個移位寄存器中的數據左移8位,然后將從3個雙口RAM中讀取的數據分別填充各自對應移位寄存器的后8位,在每個讀取周期內循環(huán),直到讀使能信號置低時停止,然后等待下一行數據的循環(huán)。這樣,就生成了中值濾波所需要的3×3陣列。需要注意的是,每一幀圖像的行和一行因為沒有相應的上下行數據,因此不能提取3×3陣列,所以需要控制信號將該兩行數據的3×3陣列剔除,以滿足圖像處理的準確性。
在雙口RAM的讀寫過程中,涉及到讀寫的時序問題,讀寫時序的控制必須滿足建立和保持時間的關系,以滿足圖像數據準確性的要求。在此,設計了一種新型的讀寫時序控制方法,首先,在數據傳輸至寫雙口RAM模塊時,利用一個與雙口RAM寫時鐘頻率相同,但是相位相差180°的時鐘做同步處理,使數據信號和控制信號的上升沿與該時鐘同步,然后,將同步后的數據信號和控制信號傳輸到雙口RAM的寫數據端口,則可以將觸發(fā)采集的寫時鐘的上升沿,恰好置于數據信號和控制信號的中央部分,以此保證數據寫入的穩(wěn)定性。該讀寫時序控制圖如圖5所示,其中,Clk_W為寫時鐘,Clk_180°為上文所講的同步時鐘,Data_in為同步前數據信號,Data_in1為同步后數據信號,由圖可以清楚的顯示,利用這種方法,可以將數據信號穩(wěn)定的寫入雙口RAM中,減少了時序設計時的計算時間,并且可以節(jié)約時序仿真的步驟,大大節(jié)省了開發(fā)時間。

91cd6d64-0b4c-11ee-962d-dac502259ad0.jpg


2.2.3中值濾波算子模塊
中值濾波的原理是把圖像中某一點的像素值用該點的一個鄰域中各點像素值的中值代替,讓該點像素值更加接近真實值,從而消除孤立的噪聲點的濾波方法。在本系統(tǒng)中,選用3×3中值濾波模塊,其具體算法為將圖像某一點及其周圍8個點的像素按照大小排列順序,取9個像素值的中間值作為當前點的像素值,依次濾除整幀圖像的雜散信號。
通過FPGA實現9個數大小的排序,為了節(jié)省處理時間和芯片片上資源,利用快速中值濾波算法,結合流水線結構,分級排序來選取圖像像素的中間值。排序步驟如下:首先對3×3陣列進行列排序,然后行排序,副對角線排序,得到濾波中值。下圖4為快速中值濾波示意圖,圖中的C代表三輸入排序器,所用比較器為assign結構,可以節(jié)約大量比較所用時間,提高系統(tǒng)的實時性。

91e05096-0b4c-11ee-962d-dac502259ad0.jpg


2.3閾值分割
由于實時圖像系統(tǒng)的刷新頻率較快(BT656格式每秒刷新25幀圖像),每幀圖像之間像素灰度均值差別很小,因此,我們可以利用上一幀圖像的統(tǒng)計值來計算閾值,為下一幀圖像二值化提供閾值,以適應測試環(huán)境變化所引起的閾值變化,閾值統(tǒng)計采用直方圖的方式。
利用FPGA的IP核生成一個256×9位的DPRAM,用以作為直方圖的計數器。以該DPRAM的地址作為圖像的像素值,而以DPRAM的內部存儲值,作為該幀圖像中該像素值的個數,每讀出一位相應的像素,對應地址的內部寄存器加1,以此完成整幀圖像的像素統(tǒng)計。
整幀圖像像素統(tǒng)計完成以后,按照地址從小到大的順序,依此累加DPRAM中的值,當累加和不小于整幀圖像像素數的0.7時,該DPRAM地址,即為直方圖法得到的閾值,然后利用該閾值,為下一幀圖像做閾值分割。
2.4邊緣檢測
邊緣檢測在圖像處理中占有很重要的地位,好的邊緣檢測,可以提高圖像的定位精度,減少圖像后續(xù)處理中的數據量。綜合考慮各種濾波算法的優(yōu)缺點,由于Sobel算法對噪聲容抗較大,并且較易在FPGA上實現,因此,選取Sobel算法作為該系統(tǒng)的邊緣檢測算法。
邊緣檢測模塊類似于濾波模塊,同樣也包括3個主要部分:乒乓結構存儲模塊、3×3陣列生成模塊和Sobel邊緣檢測算子模塊。前兩個部分不再贅述,本文主要介紹Sobel算子模塊。
該算子包含兩組3×3的矩陣,分別為橫向及縱向,將之與圖像作平面卷積,即可分別得出橫向及縱向的亮度差分近似值。
利用FPGA在硬件并行結構和流水線結構的特點,我們將整個Sobel算子分為4級,、二級分別將首、末行和首、末列按照算子模板參數相加并輸出結果,第三級將上級所得到的行列結果分別相減,第四級比較上級所得兩個值的,取較小的值作為Sobel檢測結果。如此,每個時鐘周期每級都執(zhí)行各自相應的加減法運算,并在下個時鐘上升沿將所得數據級級傳遞,即可完成3×3陣列的Sobel算法,該模塊的流水線結構如圖5所示。這樣,在每個時鐘周期,都會輸出1個Sobel檢測值,即處理每一行圖像數據,僅需要n+4個時鐘周期的時間,處理整幀圖像所需少時間為(n+4)×m×T,其中n為每行像素點個數,m為行數,T為時鐘周期。

91f98750-0b4c-11ee-962d-dac502259ad0.jpg


3實驗結果分析
根據系統(tǒng)硬件結構搭建的實驗平臺,連接各模塊接口,編譯并程序,運行系統(tǒng)。在實驗室環(huán)境下采集圖像,并進行濾波和邊緣檢測等處理,在CCS3.3的view/graph菜單下觀測處理圖像效果圖,實驗結果與原圖對比如圖6所示。由于實驗室光線環(huán)境較為穩(wěn)定,圖像噪聲較少,濾波效果不明顯,但是通過圖6(c)可以明顯看到圖像邊緣檢測效果較好,可以滿足圖像預處理要求。
針對系統(tǒng)圖像預處理速度的評估,我們以Sobel邊緣檢測算法作為參考。首先利用CCS3.3的計時函數,運行得到DSP對一幀720×576像素的圖像邊緣提取所用時間為254.83ms,然后通過上文所列公式計算FPGA圖像邊緣提取所用少時間為15.445ms.通過兩種處理方式所用時間的比較,可以明顯得出FPGA在圖像預處理時的速度優(yōu)勢,完全可以滿足圖像實時處理的要求,具有很強的實用性。

9217d9da-0b4c-11ee-962d-dac502259ad0.jpg


4結論
本文設計了一種基于FPGA為的圖像處理系統(tǒng),實現了圖像的采集、傳輸、緩儲和預處理,經過試驗證明,處理速度達到了10ms級別,滿足圖像處理實時性的要求,有非常廣闊的應用前景。

9231d092-0b4c-11ee-962d-dac502259ad0.png

有你想看的精彩 利用FPGA開發(fā)板進行ASIC原型開發(fā)的技巧基于FPGA實現通用異步收發(fā)器基本功能的應用設計使用FPGA實現高效并行實時上采樣

923b5fd6-0b4c-11ee-962d-dac502259ad0.jpg

掃碼加微信邀請您加入FPGA學習交流群

92533052-0b4c-11ee-962d-dac502259ad0.jpg9261ceaa-0b4c-11ee-962d-dac502259ad0.png

歡迎加入至芯科技FPGA微信學習交流群,這里有一群優(yōu)秀的FPGA工程師、學生、老師、這里FPGA技術交流學習氛圍濃厚、相互分享、相互幫助、叫上小伙伴一起加入吧!

點個在看你最好看


原文標題:基于FPGA的圖像實時處理系統(tǒng)設計

文章出處:【微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。


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

    關注

    1625

    文章

    21620

    瀏覽量

    601238

原文標題:基于FPGA的圖像實時處理系統(tǒng)設計

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    恩智浦S32Z/E實時處理器實現車載ECU集成

    隨著車輛電子電氣架構的發(fā)展,整合各種實時汽車應用成為了剛需,恩智浦的S32Z和S32E實時處理器系列應運而生。
    的頭像 發(fā)表于 10-21 10:07 ?414次閱讀

    FPGA圖像處理領域的優(yōu)勢有哪些?

    等協(xié)同工作,實現高效的圖像處理。這種多接口支持使得FPGA在構建復雜的圖像處理系統(tǒng)時具有更大的靈活性。 七、
    發(fā)表于 10-09 14:36

    國產FRAM SF25C20用于實時處理系統(tǒng),兼容MB85RS2MT

    國產FRAM SF25C20用于實時處理系統(tǒng),兼容MB85RS2MT
    的頭像 發(fā)表于 07-31 10:06 ?311次閱讀
    國產FRAM SF25C20用于<b class='flag-5'>實時處理系統(tǒng)</b>,兼容MB85RS2MT

    FPGA在自動駕駛領域有哪些應用?

    數據的實時處理和反饋,為自動駕駛汽車的決策提供實時、準確的數據支持。 三、控制系統(tǒng)優(yōu)化自動駕駛汽車的控制系統(tǒng)是復雜的,需要實現對車速、轉向、剎車等多種信息的
    發(fā)表于 07-29 17:09

    基于FPGA圖像采集與顯示系統(tǒng)設計

    源和固有的并行處理能力,在數字信號處理、硬件加速、汽車電子等領域得到了廣泛應用。在圖像采集與顯示系統(tǒng)中,FPGA能夠實現高速、并行的數據
    的頭像 發(fā)表于 07-17 10:58 ?1624次閱讀

    FPGA設計經驗之圖像處理

    處理。假如采集圖像的幀率是30幀,那么DSP,GPU要是能在1/30秒內完成一幀圖像處理,那基本上就能算是實時處理。
    發(fā)表于 06-12 16:26

    基于FPGA實時邊緣檢測系統(tǒng)設計,Sobel圖像邊緣檢測,FPGA圖像處理

    計算機軟件實現方式有更快的處理速度。 經驗證,系統(tǒng)工作穩(wěn)定,滿足實時性要求 。 MATLAB 與 FPGA無線通信、圖像
    發(fā)表于 05-24 07:45

    基于MATLAB的信號處理系統(tǒng)與分析

    基于MATLAB的信號處理系統(tǒng)與分析,包括信號的導入、預處理、分析、特征提取以及頻譜分析等關鍵步驟,并通過實例展示MATLAB在信號處理與分析中的強大功能。
    的頭像 發(fā)表于 05-17 14:24 ?934次閱讀

    數字圖像處理系統(tǒng)及應用

    電子發(fā)燒友網站提供《數字圖像處理系統(tǒng)及應用.pdf》資料免費下載
    發(fā)表于 02-23 14:49 ?0次下載

    FPGA圖像處理之CLAHE算法

    FPGA圖像處理--CLAHE算法(一)中介紹了為啥要用CLAHE算法來做圖像增強。
    的頭像 發(fā)表于 01-04 12:23 ?2330次閱讀
    <b class='flag-5'>FPGA</b><b class='flag-5'>圖像</b><b class='flag-5'>處理</b>之CLAHE算法

    labview中怎么對字符串中的進行實時處理

    LabVIEW是一種用于開發(fā)控制、測試和測量系統(tǒng)的可視化編程環(huán)境,它提供了許多處理字符串的功能。在LabVIEW中,可以使用不同的函數和工具來實時處理字符串。下面我將詳細介紹一些常見的方法和技術
    的頭像 發(fā)表于 12-26 14:12 ?1662次閱讀

    集成化信息化信號采集處理系統(tǒng)有哪些

    隨著科技的飛速發(fā)展,集成化信息化信號采集處理系統(tǒng)在各個領域的應用越來越廣泛。這種系統(tǒng)能夠實現對各種信號的實時采集、處理和分析,為決策者提供準確、及時的信息,從而推動各行業(yè)的快速發(fā)展。本
    的頭像 發(fā)表于 12-14 11:19 ?952次閱讀

    FPGA圖像處理方法

    圖像細節(jié)。 FPGA 圖像處理方法 1、圖像增強 兩大方法:空間域方法和時間域方法(以后再詳述) 2、
    的頭像 發(fā)表于 12-02 13:15 ?1025次閱讀

    實時處理如何驅動高性能電源系統(tǒng)

    實時處理如何驅動高性能電源系統(tǒng)? 實時處理是一種在實時環(huán)境中對來自外部傳感器和設備的數據進行即時處理和響應的技術。在電源
    的頭像 發(fā)表于 11-24 14:26 ?470次閱讀

    圖像采集卡:視覺系統(tǒng)控制中心

    圖像采集卡是穩(wěn)健、高速圖像采集和信號控制的關鍵組件之一。圖像采集板的核心FPGA處理器可確保實時處理
    的頭像 發(fā)表于 11-15 15:34 ?357次閱讀
    <b class='flag-5'>圖像</b>采集卡:視覺<b class='flag-5'>系統(tǒng)</b>控制中心