91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

3天內(nèi)不再提示

FPGA硬件資源與算法設計

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

掃碼添加小助手

加入工程師交流群

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

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

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

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

項目設計

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

1.FPGA硬件資源介紹

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

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

2.算法設計

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

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

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

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

(二)整體流程

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

(三)算法基礎

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

1.均值濾波與中值濾波

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

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

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

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

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

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

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

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

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

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

2.Sobel邊緣檢測

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

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

使用算式

來計算目標點的卷積值:

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

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

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

3. RGB轉YCbCr

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

……

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

    關注

    1662

    文章

    22450

    瀏覽量

    637701
  • 控制器
    +關注

    關注

    114

    文章

    17827

    瀏覽量

    194395
  • 控制模塊
    +關注

    關注

    2

    文章

    146

    瀏覽量

    19840

原文標題:《來實戰(zhàn)》第4期:國內(nèi)牛人用FPGA打造運動目標追蹤系統(tǒng)(持續(xù)更新中......)

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    基于FPGA的低照度條件下EBAPS圖像混合噪聲去除算法

    本文提出了基于可編程邏輯門陣列(field programmable gate array,FPGA)的開關融合中值-高斯(open and close mix-median-Gaussian,OCMMG)濾波算法
    的頭像 發(fā)表于 03-11 09:24 ?6229次閱讀
    基于<b class='flag-5'>FPGA</b>的低照度條件下EBAPS圖像混合噪聲去除<b class='flag-5'>算法</b>

    詳解FPGA定點數(shù)計算方法

    FPGA定點數(shù)計算在高效資源利用、運算速度優(yōu)勢、硬件可預測性和成本效益等方面發(fā)揮著重要作用。它能節(jié)省邏輯和存儲資源,實現(xiàn)更快速的運算和更高的時鐘頻率,保證行為可預測且易于
    的頭像 發(fā)表于 12-02 10:09 ?584次閱讀
    詳解<b class='flag-5'>FPGA</b>定點數(shù)計算方法

    嵌入式和FPGA的區(qū)別

    ,FPGA憑借硬件并行處理能力,能夠實現(xiàn)納秒級響應,遠優(yōu)于微秒級的嵌入式系統(tǒng)。 功耗效率上,嵌入式系統(tǒng)針對特定應用優(yōu)化后能效比很高,而FPGA由于可編程特性通常功耗較大,但在特定算法
    發(fā)表于 11-19 06:55

    NVMe高速傳輸之擺脫XDMA設計45:上板資源占用率分析

    占用率低, 使其能夠更容易的被集成到應用環(huán)境中。 表1 基于 ZCU106 開發(fā)板的資源占用率 表2 基于 VC709 開發(fā)板的資源占用率 基于 ZCU106 FPGA 和 VC709 FPG
    發(fā)表于 11-13 08:36

    復雜的軟件算法硬件IP核的實現(xiàn)

    Compiler)將算法編譯轉化為可綜合的 Verilog 文本,進而通過 FPGA硬件上實現(xiàn)算法。 1.C to Hardware 技術簡介 AltiumDesign
    發(fā)表于 10-30 07:02

    【開源FPGA硬件硬件黑客集結:開源FPGA開發(fā)板測評活動全網(wǎng)火熱招募中......

    ,審核通過的代碼將作為開源資料與開發(fā)板一同公布; 參考選題: 開箱測評(功能特性、系統(tǒng)框圖、硬件資源、FPGA資源、功能演示等方面測評) 各接口模塊測評 開發(fā)板配套教程實驗
    發(fā)表于 10-29 11:37

    25年11月上海FPGA算法實現(xiàn)與應用技術高級研修分享

    設計仿真能力。   深入學習數(shù)據(jù)流,不僅是算法FPGA&DSP設計者的需求,對于從事接口設計工作、軟件配置工作、系統(tǒng)測試工作,項目管理工作的同事,也同樣有非常重要的意義。在實際工作中,對于
    發(fā)表于 10-11 11:55

    如何在資源受限型應用中使用 FPGA

    的性能需求,同時在嚴格的功耗、尺寸和成本限制內(nèi)運行?,F(xiàn)代現(xiàn)場可編程門陣列 (FPGA) 可以滿足這些相互競爭的需求。 本文回顧了為資源受限型應用選擇 FPGA 時需要考慮的關鍵設計標準。然后,以 [Altera] 經(jīng)過[功率和成
    的頭像 發(fā)表于 10-03 17:31 ?2047次閱讀
    如何在<b class='flag-5'>資源</b>受限型應用中使用 <b class='flag-5'>FPGA</b>

    基于FPGA實現(xiàn)FOC算法之PWM模塊設計

    哈嘍,大家好,從今天開始正式帶領大家從零到一,在FPGA平臺上實現(xiàn)FOC算法,整個算法的框架如下圖所示,如果大家對算法的原理不是特別清楚的話,可以先去百度上學習一下,本教程著重介紹實現(xiàn)
    的頭像 發(fā)表于 07-17 15:21 ?3593次閱讀
    基于<b class='flag-5'>FPGA</b>實現(xiàn)FOC<b class='flag-5'>算法</b>之PWM模塊設計

    無位置傳感器無刷直流電機的+FPGA+控制實現(xiàn)

    硬件方案,同時通過算法優(yōu)化,避免了乘法和除法運算,大大減少了 FPGA 邏輯資源消耗,并在一片低端現(xiàn)場可編程門陣列中得到了具體驗證和實現(xiàn)。該方案充分運用
    發(fā)表于 07-10 16:35

    基于Matlab與FPGA的雙邊濾波算法實現(xiàn)

    前面發(fā)過中值、均值、高斯濾波的文章,這些只考慮了位置,并沒有考慮相似度。那么雙邊濾波來了,既考慮了位置,有考慮了相似度,對邊緣的保持比前幾個好很多,當然實現(xiàn)上也是復雜很多。本文將從原理入手,采用Matlab與FPGA設計實現(xiàn)雙邊濾波算法。
    的頭像 發(fā)表于 07-10 11:28 ?4682次閱讀
    基于Matlab與<b class='flag-5'>FPGA</b>的雙邊濾波<b class='flag-5'>算法</b>實現(xiàn)

    基于FPGA的壓縮算法加速實現(xiàn)

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

    火爆開發(fā)中 | 開源FPGA硬件板卡,硬件第一期發(fā)布

    開源FPGA項目自發(fā)布以來,得到了眾多開發(fā)者的關注,涉及工業(yè)、通信、車載等多個行業(yè)的100+位工程師報名參與設計,并分為:硬件組、FPGA組、linux組。其中硬件組率先開始啟動項目,
    發(fā)表于 07-09 13:54

    火爆開發(fā)中|開源FPGA硬件板卡,硬件第一期發(fā)布

    開源FPGA項目自發(fā)布以來,得到了眾多開發(fā)者的關注,涉及工業(yè)、通信、車載等多個行業(yè)的100+位工程師報名參與設計,并分為:硬件組、FPGA組、linux組。其中硬件組率先開始啟動項目,
    的頭像 發(fā)表于 07-09 11:43 ?1326次閱讀
    火爆開發(fā)中|開源<b class='flag-5'>FPGA</b><b class='flag-5'>硬件</b>板卡,<b class='flag-5'>硬件</b>第一期發(fā)布

    Xilinx Ultrascale系列FPGA的時鐘資源與架構解析

    Ultrascale是賽靈思開發(fā)的支持包含步進功能的增強型FPGA架構,相比7系列的28nm工藝,Ultrascale采用20nm的工藝,主要有2個系列:Kintex和Virtex
    的頭像 發(fā)表于 04-24 11:29 ?2771次閱讀
    Xilinx Ultrascale系列<b class='flag-5'>FPGA</b>的時鐘<b class='flag-5'>資源</b>與架構解析