女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

FPGA硬件資源與算法設計

5CTi_cirmall ? 來源:電路設計技能 ? 2020-08-27 17:39 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

各位工程師朋友,同學們大家好!我是本期“來實戰”項目《運動目標追蹤系統》的執行官。本項目由電路城發起,由ALINX贊助的黑金國產FPGA板卡Logos系列PGL22G學習板實現。

我是一個熱愛技術的在校學生。希望可以通過本次的項目來幫助更多的同學,給予一個機會來了解什么是真正的實戰項目,也讓之前沒有競賽經驗的朋友了解一下,競賽對于我們學生來說并沒有那么遠。幫助更多的電子專業的同學找到學習的方向,更順利的進入這個行業,為電子行業做出一份自己的貢獻。許多同學在學校期間不去做項目的原因并不是不愿意去做,而是沒有方向。其實大項目就可以通過競賽來獲得,競賽中的一些命題項目可以給予你很多靈感,有了方向之后,即使是個大項目,他也是由一個一個小部分組成的,一步一步完成一個個小項目,自己的大工程不久也就成功了。項目本身的意義可能是在做保護區的攝像頭,捕捉動態視頻;也可以在監控中做一些應用。更重要的意義就是給廣大同學們一個學習視頻處理的機會,讓想學而不知道怎么去學的同學一個模板。

很多在最初接觸FPGA的同學都有這個問題,甚至以為FPGA和單片機一樣下板子燒代碼。其實不是這樣的,FPGA不是單片機,首先FPGA和單片機的區別,本質上是軟件和硬件的區別,FPGA更偏向于硬件電路,而單片機更偏于軟件。單片機是一種微處理器,類似于電腦CPU的,它一般采用的是哈佛總線結構,或者馮諾依曼結構,對單片機的編程很大程度上要考慮到它的結構和各個寄存器的作用,而FPGA 它的結構是查找表結構,其程序不用去太考慮芯片的結構,要注意的是時序上問題,它的結構比較復雜,功能也很強大,一般應用在通信領域等比較高端的場合,單片機是一個微控制器,通過加載模塊軟件來實現某種功能,是成型的芯片;FPGA是用來設計芯片的芯片。FPGA由于是硬件電路,運行速度直接取決于晶振速度,系統穩定,特別適合高速接口電路。單片機由于是單線程,哪怕是常用的M3系列流水線也是單線程執行,程序語句需要等待單片機周期才能執行。單片機設計屬軟件范疇;它的硬件(單片機芯片)是固定的,通過軟件編程語言描述軟件指令在硬件芯片上的執行;

FPGA開發的語言是Verilog HDL。HDL代表的就是硬件描述語言,描述就代表他并不是一個開發性的語言。相比C語言開發,Verilog更像是你先設計好電路,再用Verilog描述出來你的設計。而對于一個完整的FPGA工程應包含以下幾個步驟:算法實現,模塊化,模塊的硬件電路設計,硬件描述語言書寫,小模塊進行仿真,總模塊的連接,總體工程的仿真,板級驗證。下面我們就進入正題......

項目設計

步驟一:FPGA硬件資源與算法設計

1.FPGA硬件資源介紹

首先感謝黑金ALINX提供的開發板對本項目的大力支持,期望以后能有更多的機會合作。對于黑金國產FPGA板卡Logos系列PGL22G學習板,它配備了以下資源:

系統邏輯部分由ov5640驅動模塊、RGB轉Ycbcr模塊、存儲控制模塊、HDMI驅動模塊、圖像處理模塊、追蹤控制模塊、sim900a驅動模塊共同組成。由OV5640攝像頭采集圖像,經過RGB轉YCbCr模塊完成顏色空間轉換,為了配合幀差法的數據,將數據進行掩碼然后經由DDR3控制器模塊控制存入DDR3中,通過HDMI時序從DDR3中取出數據,此時取出的每個16bit數據同時包含了相鄰兩幅圖像的灰度信息,高8位為第n幀圖像的某個像素點灰度值,低8位為第n+1幀圖像對應像素點的灰度值。圖像處理模塊將取出的數據進行預處理和幀差法計算得到運動目標的位置信息,追蹤控制模塊根據運動目標的位置相對于圖像中心的偏移通過控制舵機轉動來調整OV5640攝像頭的方向完成追蹤。攝像頭使用黑金ALINX視頻套餐中的OV5640攝像頭;同套餐的還贈送一個屏幕,也非常適合學習視頻處理的工程。舵機模塊是使用的SC90,來完成攝像頭的轉動的,該模塊看上去很簡單,但是他和攝像頭一起組合使用就非常炫酷!

2.算法設計

(一)項目簡介與項目難點

首先FPGA的基礎操作,以及Verilog基礎語法就不再贅述。

項目簡介在前面也已經講說,這里只放一個整體框圖來表現。這個框圖為了便于大家理解已經進行了簡化,大抵說白了就是將攝像頭采集到的數據存起來,再把圖像處理清晰,去除噪聲。最后識別出在動的東西,把采集到的圖像放在顯示屏上,并標明哪個部分是正在運動的。

項目的難點:項目本身的難點在于驅動起來攝像頭,一個類IIC協議接口的書寫,以及對攝像頭寄存器的配置。驅動SDRAM/DDR,將采集到的數據寫進存儲單元中。實現簡單的圖像處理算法來優化采集到的圖像,識別物體的邊緣。最后抓捕再顯示出來,驅動VGA或HDMI接口將數據傳輸至顯示屏上顯示出來。

(二)整體流程

首先上電之后對各個模塊的寄存器堆進行配置,計數器進行初始化。之后由OV5640攝像頭采集圖像,經過RGB轉YCbCr模塊完成顏色空間轉換,為了配合幀差法的數據,將數據進行掩碼然后經由DDR3控制器模塊控制存入DDR3中,通過HDMI時序從DDR3中取出數據,此時取出的每個16bit數據同時包含了相鄰兩幅圖像的灰度信息,高8位為第n幀圖像的某個像素點灰度值,低8位為第n+1幀圖像對應像素點的灰度值。圖像處理模塊將取出的數據進行預處理和幀差法計算得到運動目標的位置信息,追蹤控制模塊根據運動目標的位置相對于圖像中心的偏移通過控制舵機轉動來調整OV5640攝像頭的方向完成追蹤。

(三)算法基礎

由于我們做的是一個圖像,所以要對基礎的圖像算法進行簡單學習。我們使用的算法主要有均值濾波,中值濾波,Sobel邊緣檢測及RGB轉YCbCr。

1.均值濾波與中值濾波

首先何謂濾波?圖像濾波,即在盡量保留圖像細節特征的條件下對目標圖像的噪聲進行抑制,是圖像預處理中不可缺少的操作,其處理效果的好壞將直接影響到后續圖像處理和分析的有效性和可靠性。消除圖像中的噪聲成分叫作圖像的平滑化或濾波操作。信號或圖像的能量大部分集中在幅度譜的低頻和中頻段是很常見的,而在較高頻段,感興趣的信息經常被噪聲淹沒。因此一個能降低高頻成分幅度的濾波器就能夠減弱噪聲的影響。

圖像濾波的目的有兩個:一是抽出對象的特征作為圖像識別的特征模式;另一個是為適應圖像處理的要求,消除圖像數字化時所混入的噪聲。

而對濾波處理的要求也有兩條:一是不能損壞圖像的輪廓及邊緣等重要信息;二是使圖像清晰視覺效果好。

而我們今天面對的主要為椒鹽噪聲,椒鹽噪聲是數字圖像的一個常見噪聲,就是在圖像上隨機出現黑色白色的像素。椒鹽噪聲是一種因為信號脈沖強度引起的噪聲。RGB圖像上,每一個像素點都是三段數字,分別對應R,G,B三種顏色在灰白圖像中,椒鹽噪聲若果是黑點的話,就是指這一點的像素值明顯低于周圍像素點的值,而白點就是明顯高于周圍的像素值。而對于這種噪聲,只要讓他與周圍的值相持平皆可以消除。中值濾波和均值濾波就是根據這種方法來消除,每個像素點周圍都有8個像素,如果使用周圍8個像素的平均值來代替這個像素點的像素值,就是均值濾波的基本方法;如果使用8個像素點的中值來代替這個像素點的像素值,就是中值濾波的基本方法。

要做這個處理,核心就是要搭建3x3矩陣。如何搭建3x3矩陣呢?我們有三種方法:

1.通過2個或者3個RAM的存儲來實現3X3像素窗口;

2.通過2個或者3個FIFO的存儲來實現3X3像素窗口;

3.通過2行或者3行Shift_RAM的存儲來實現3X3像素窗口;

以shift_ram為例,shift_ram就是移位寄存器,如圖:

左方數據輸入,N是每行的像素點數,每行輸出的就是要的矩陣。

2.Sobel邊緣檢測

在圖像處理中,邊緣是一幅圖像中最基本的特征,每幅圖像的邊緣包含了用于識別的有用信息,是圖像分析和模式識別的主要特征提取手段。在模式識別或進行其他的中,在很多方法來識別,其中一種方法就是識別出來圖像邊緣。在圖像中,一幅圖像的“臨界”表示為圖像上亮度顯著變化的地方,邊緣指的是一個區域的結束,也是另一個區域的開始。“邊緣點”指的是圖像中具有坐標[x,y],且處在強度顯著變化的位置上的點。常用的邊緣檢測算法大多是以原始圖像灰度值為基礎,通過考察圖像的每個像素的某個鄰域內 灰度的變化,利用邊緣一階或二階導數的規律來檢測邊緣。下圖左邊為原始的黑白灰度的圖像,通過邊緣檢測算法后變成了右邊的圖像。

sobel 是一個梯度的計算,如下圖所示,是 x 和 y 方向的 3x3 窗口的卷積。

使用算式

來計算目標點的卷積值:

這里注意一定是絕對值,要大于0。

計算完成以后,要進行簡單的二值化處理,將 sobel 值和閾值對比,產生黑白的二值化圖像。將大于閾值設置為與背景色相反的圖像。

利用此即可確定圖像中各物體的邊緣。

3. RGB轉YCbCr

攝像頭采集的RGB565格式數據為16比特,SDRAM不能同時將兩幀RGB圖像存儲。因此在存入SDRAM前先將RGB格式轉換為YCbCr格式并提取亮度分量作為灰度圖像。YCbCr是通過有序的三元組來表示的,三元由Y(Luminance)、Cb(Chrominance-Blue)和Cr(Chrominance-Red)組成,其中Y表示顏色的明亮度和濃度,而Cb和Cr則分別表示顏色的藍色濃度偏移量和紅色濃度偏移量。人的肉眼對由YCbCr色彩空間編碼的視頻中的Y分量更敏感,而Cb和Cr的微小變化不會引起視覺上的不同,根據該原理,通過對Cb和Cr進行子采樣來減小圖像的數據量,使得圖像對存儲需求和傳輸帶寬的要求大大降低,從而達到在完成圖像壓縮的同時也保證了視覺上幾乎沒有損失的效果,進而使得圖像的傳輸速度更快,存儲更加方便。我們要的到灰度圖像,首先要將采集到的彩色圖像轉化為YCbCr。其轉換公式如下:

……

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

    關注

    1645

    文章

    22040

    瀏覽量

    618185
  • 控制器
    +關注

    關注

    114

    文章

    17098

    瀏覽量

    184191
  • 控制模塊
    +關注

    關注

    2

    文章

    138

    瀏覽量

    19293

原文標題:《來實戰》第4期:國內牛人用FPGA打造運動目標追蹤系統(持續更新中......)

文章出處:【微信號:cirmall,微信公眾號:電路設計技能】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    基于FPGA的壓縮算法加速實現

    本設計中,計劃實現對文件的壓縮及解壓,同時優化壓縮中所涉及的信號處理和計算密集型功能,實現對其的加速處理。本設計的最終目標是證明在充分并行化的硬件體系結構 FPGA 上實現該算法時,可以大大提高該
    的頭像 發表于 07-10 11:09 ?619次閱讀
    基于<b class='flag-5'>FPGA</b>的壓縮<b class='flag-5'>算法</b>加速實現

    FPGA應用于人工智能的趨勢

    高速和低功耗 : FPGA通過優化硬件結構和算法實現,能夠在處理復雜的人工智能任務時保持高速和低功耗,這對于資源有限的嵌入式系統和移動設備尤為重要。 靈活性 :
    的頭像 發表于 10-25 09:20 ?2010次閱讀

    TMS320C6413硬件設計人員資源指南

    電子發燒友網站提供《TMS320C6413硬件設計人員資源指南.pdf》資料免費下載
    發表于 10-17 10:43 ?0次下載
    TMS320C6413<b class='flag-5'>硬件</b>設計人員<b class='flag-5'>資源</b>指南

    TMS320C6713硬件設計人員資源指南

    電子發燒友網站提供《TMS320C6713硬件設計人員資源指南.pdf》資料免費下載
    發表于 10-16 11:39 ?1次下載
    TMS320C6713<b class='flag-5'>硬件</b>設計人員<b class='flag-5'>資源</b>指南

    TMS320DM643硬件設計人員資源指南

    電子發燒友網站提供《TMS320DM643硬件設計人員資源指南.pdf》資料免費下載
    發表于 10-16 10:41 ?0次下載
    TMS320DM643<b class='flag-5'>硬件</b>設計人員<b class='flag-5'>資源</b>指南

    TMS320VC5503硬件設計人員資源指南

    電子發燒友網站提供《TMS320VC5503硬件設計人員資源指南.pdf》資料免費下載
    發表于 10-16 10:04 ?0次下載
    TMS320VC5503<b class='flag-5'>硬件</b>設計人員<b class='flag-5'>資源</b>指南

    TMS320C6418硬件設計人員資源指南

    電子發燒友網站提供《TMS320C6418硬件設計人員資源指南.pdf》資料免費下載
    發表于 10-16 09:37 ?0次下載
    TMS320C6418<b class='flag-5'>硬件</b>設計人員<b class='flag-5'>資源</b>指南

    TMS320VC5501硬件設計人員資源指南

    電子發燒友網站提供《TMS320VC5501硬件設計人員資源指南.pdf》資料免費下載
    發表于 10-16 09:33 ?0次下載
    TMS320VC5501<b class='flag-5'>硬件</b>設計人員<b class='flag-5'>資源</b>指南

    TMS320C6410硬件設計人員資源指南

    電子發燒友網站提供《TMS320C6410硬件設計人員資源指南.pdf》資料免費下載
    發表于 10-16 09:31 ?0次下載
    TMS320C6410<b class='flag-5'>硬件</b>設計人員<b class='flag-5'>資源</b>指南

    TMS320C6412硬件設計人員資源指南

    電子發燒友網站提供《TMS320C6412硬件設計人員資源指南.pdf》資料免費下載
    發表于 10-16 09:27 ?0次下載
    TMS320C6412<b class='flag-5'>硬件</b>設計人員<b class='flag-5'>資源</b>指南

    TMS320VC5502硬件設計人員資源指南

    電子發燒友網站提供《TMS320VC5502硬件設計人員資源指南.pdf》資料免費下載
    發表于 10-16 09:26 ?0次下載
    TMS320VC5502<b class='flag-5'>硬件</b>設計人員<b class='flag-5'>資源</b>指南

    FPGA在圖像處理領域的優勢有哪些?

    FPGA具有可重配置性,可以在運行時根據需要對硬件進行重新配置。這使得FPGA在處理不同圖像任務時,可以靈活地調整硬件資源,以適應不同的
    發表于 10-09 14:36

    FPGA做深度學習能走多遠?

    并行計算的能力,可以在硬件層面并行處理大量數據。這種并行處理能力使得 FPGA 在執行深度學習算法時速度遠超傳統處理器,能夠提供更低的延遲和更高的吞吐量,從而加速模型訓練和推理過程,滿足實時性要求較高
    發表于 09-27 20:53

    FPGA算法工程師、邏輯工程師、原型驗證工程師有什么區別?

    ,如數字信號處理、圖像處理、人工智能等,并將其轉化為適合 FPGA 實現的硬件邏輯。重點在于算法的性能提升、資源利用效率以及與系統的集成。 FPGA
    發表于 09-23 18:26

    為什么FPGA屬于硬件,還需要搞算法

    ,就 需要設計相應的算法來指導硬件資源的配置和利用,以達到期望的性能和功能。 關于學習 FPGA 時先接觸語法,這是因為需要掌握如何用特定的編程語言來描述電路的邏輯和功能。這類
    發表于 09-09 16:54