• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Sobel算子的實(shí)時(shí)視頻處理系統(tǒng)設(shè)計(jì)與FPGA實(shí)現(xiàn)

      2022-02-17 11:58:22朱高鋒
      電子制作 2022年3期
      關(guān)鍵詞:算子攝像頭預(yù)處理

      朱高鋒

      (重慶交通大學(xué) 機(jī)電與車輛工程學(xué)院,重慶,400074)

      0 引言

      得益于近年計(jì)算機(jī)視覺與底層硬件電路的飛速發(fā)展,實(shí)時(shí)視頻處理與加速在通信系統(tǒng)、醫(yī)療成像乃至安全防護(hù)領(lǐng)域[1]都有重要作用。

      圖像邊沿檢測(cè)算法可以提取到圖像中像素發(fā)生明顯變化的像素點(diǎn),即視覺圖像中的邊緣,是實(shí)時(shí)視頻處理發(fā)展中必不可少的一環(huán)。由于視頻分辨率的不斷提高,(常規(guī)分辨率數(shù)據(jù)量),傳統(tǒng)邊沿提取算法在嵌入式軟件中的表現(xiàn)一直不佳,其實(shí)時(shí)性與功耗一直難以滿足要求[2-4],丟幀現(xiàn)象也時(shí)有發(fā)生。

      FPGA作為可并行處理數(shù)據(jù)、硬件資源豐富的可重構(gòu)系統(tǒng),其特點(diǎn)可完美契合實(shí)時(shí)視頻處理需求[5],將視頻傳輸數(shù)據(jù)以數(shù)據(jù)流的形式傳遞與計(jì)算,并能根據(jù)圖像處理算法的變化重構(gòu)硬件系統(tǒng),是未來圖像處理的主流平臺(tái)之一。

      本文采用OV5640攝像頭采集視頻數(shù)據(jù),Xinlinx公司的Kintex 7系列FPGA芯片XC7K325T作為主控芯片,在Vivado2019.2上通過Verilog編寫實(shí)現(xiàn)了視頻圖像接收與格式轉(zhuǎn)換、圖像預(yù)處理、視頻數(shù)據(jù)緩存控制以及HDMI驅(qū)動(dòng)顯示等功能。經(jīng)測(cè)試,該系統(tǒng)可完成1280×720分辨率、30fps的圖像采集、預(yù)處理及顯示,實(shí)現(xiàn)了一種基于SOBEL算子的實(shí)時(shí)視頻采集與顯示系統(tǒng)設(shè)計(jì)。

      1 系統(tǒng)整體邏輯方案設(shè)計(jì)

      本系統(tǒng)采用Xinlinx公司的XC7K325T芯片作為開發(fā)平臺(tái),作為Xinlinx廠家7系列FPGA芯片,Kintex系列與Spartan、Artix以及Virtex系列相比具有最佳的性價(jià)比。同時(shí),作為28納米制程芯片,XC7K325T基于6輸入查找表,具有200萬邏輯單元容量,支持高達(dá)1866Mb/s的DDR3接口,25×18的乘法器、48位累加器以及預(yù)加法器的DSP片,提供了多種硬核IP等特性都十分適合視頻實(shí)時(shí)處理領(lǐng)域應(yīng)用。外部搭載了DDR3 SDRAM大容量高速緩存芯片、HDMI接口、用于固化程序的FLASH等硬件用于實(shí)現(xiàn)系統(tǒng)功能。

      系統(tǒng)采用自頂而下的模塊化設(shè)計(jì)方法,將FPGA內(nèi)部邏輯劃分為系統(tǒng)初始化、圖像預(yù)處理模塊、數(shù)據(jù)交互三大模塊。其中,系統(tǒng)初始化模塊作用為完成對(duì)OV5640攝像頭的初始化,包含I2C通信模塊、寄存器初值存儲(chǔ)模塊、配置延遲模塊;圖像預(yù)處理模塊負(fù)責(zé)完成視頻圖像的預(yù)處理操作,包括RGB888轉(zhuǎn)Ycbcr模塊、中值濾波模塊、Sobel邊緣提取模塊、開操作模塊;數(shù)據(jù)交互模塊負(fù)責(zé)FPGA與外部數(shù)據(jù)交互,包括攝像頭接收模塊、視頻數(shù)據(jù)緩存模塊、HDMI驅(qū)動(dòng)模塊。

      系統(tǒng)整體邏輯方案如圖1所示。首先由攝像頭初始化模塊通過I2C接口對(duì)OV5640進(jìn)行配置,主要參數(shù)配置為:分辨率1280×720、幀率30fps、輸出圖像格式RGB565、輸出接口DVP、輸出時(shí)鐘PCLK42MHz;通過圖像接收模塊對(duì)視頻進(jìn)行接收的同時(shí)將圖像視頻格式轉(zhuǎn)換為RGB888輸入圖像預(yù)處理模塊;在預(yù)處理模塊中,首先將RGB888轉(zhuǎn)為對(duì)邊緣提取有益的Ycbcr格式,并經(jīng)過中值濾波初步濾除圖像噪點(diǎn),然后經(jīng)過SOBEL算子與先腐蝕后膨脹操作完成視頻數(shù)據(jù)預(yù)處理操作;視頻數(shù)據(jù)緩存控制模塊將預(yù)處理后的視頻數(shù)據(jù)緩存入DDR3 SDRAM外部存儲(chǔ)器中,該模塊調(diào)用了MIG核進(jìn)行片外DDR3讀寫控制,讀出的視頻緩存數(shù)據(jù)后經(jīng)由HDMI驅(qū)動(dòng)模塊輸出至顯示屏觀察系統(tǒng)設(shè)計(jì)效果。

      圖1 系統(tǒng)邏輯框圖

      2 FPGA片內(nèi)邏輯設(shè)計(jì)

      2.1 攝像頭配置模塊

      本設(shè)計(jì)采用OV5640高清攝像頭,設(shè)置輸入時(shí)鐘XCLK頻率為24M,通過I2C接口賦值寄存器設(shè)置相關(guān)參數(shù),I2C時(shí)鐘速率設(shè)置為400K。

      本文系統(tǒng)中,分辨率為1280×720,幀率設(shè)置為30fps,其中幀率由總水平輸出寬度HTS、總豎直輸出寬度VTS和輸出時(shí)鐘PCLK頻率共同決定。

      攝像頭輸出接口設(shè)置為DVP接口,則攝像頭輸出分辨率為DVP輸出水平與豎直寬度,在配置文件中,攝像頭寄存器0X3808內(nèi)數(shù)據(jù)bit[3:0]與0X3809內(nèi)數(shù)據(jù)bit[7:0]拼接控制DVP接口輸出水平寬度,DVP水平輸出為1280,即0X3808配置為05、0X3809配置為00。類似地,DVP輸出豎直寬度為720,即0X380A配置為02,0X380B配置為D0。

      0X3035、0X3036、0X3037、0X3108等多個(gè)寄存器經(jīng)過倍頻與分頻操作得到輸出時(shí)鐘PCLK,本文PCLK配置為42MHz,并通過配置0X380C與0X380D設(shè)置HTS與VTS分別為1892、740。則攝像頭輸出幀率F為:

      2.2 攝像頭數(shù)據(jù)接收模塊

      攝像頭輸出接口配置為DVP接口,輸出格式為RGB565,即一格圖像的數(shù)據(jù)位寬為16位。DVP時(shí)序圖如圖2所示。

      圖2 DVP時(shí)序圖

      圖中,VSYNS為幀同步有效信號(hào),兩個(gè)VSYNS高電平信號(hào)中間輸出一幀圖像的數(shù)據(jù),而HREF為行同步有效信號(hào),當(dāng)HREF信號(hào)為高,接口輸出一行圖像的數(shù)據(jù)。

      DVP接口的數(shù)據(jù)寬度為8位,所以當(dāng)HREF信號(hào)為高時(shí),需兩個(gè)PCLK輸出數(shù)據(jù)拼接為一位圖像數(shù)據(jù),在拼接接收到的視頻數(shù)據(jù)的同時(shí),將數(shù)據(jù)RGB三個(gè)通道對(duì)應(yīng)的5、6、5位數(shù)據(jù)高位填0填充至8位,再將其拼接轉(zhuǎn)化為RGB888格式。

      2.3 RGB888轉(zhuǎn)Ycbcr模塊

      Ycbcr作為圖像色彩空間的一種格式,常用于圖像系統(tǒng)的編解碼中,其中Y分量代表了一格圖像的亮度成分。對(duì)于圖像來說,顏色的亮度分量在圖像邊緣處常常發(fā)生突變,更易于提取邊緣[6]。同時(shí),通過將彩色視頻數(shù)據(jù)通過轉(zhuǎn)為Ycbcr格式,提取其中Y分量進(jìn)行后續(xù)的處理,可減少圖像的數(shù)據(jù)處理量。RGB888轉(zhuǎn)換至Ycbcr公式如下:

      為避免小數(shù)計(jì)算,節(jié)省FPGA內(nèi)部邏輯資源,將RGB三個(gè)系數(shù)常量左移8位并量化為整數(shù),在計(jì)算后右移8位恢復(fù)量級(jí),并將公式中的運(yùn)算分為乘積、求和、移位三級(jí)流水線以提升運(yùn)算速率,同時(shí)對(duì)相應(yīng)行、場同步信號(hào)做同步延遲。

      2.4 中值濾波模塊

      源于排序基礎(chǔ)理論的中值濾波法是非線性濾波方式中抑制噪聲的有效方法之一,在能有效濾除常見的椒鹽噪聲或脈沖噪聲的同時(shí)可以保證圖像信息的完整性。本文采用中值濾波是因?yàn)樵摲椒床粫?huì)造成圖像邊緣模糊,在保留了對(duì)常規(guī)圖像濾波效果的同時(shí)易于硬件加速實(shí)現(xiàn)。中值濾波的原理是采用一個(gè)鄰域中的中值來替換該鄰域內(nèi)其他值,其公式為:

      其中,f(x,y)為圖像像素點(diǎn)的像素值,g(x,y)為中值濾波后的圖像像素值,W為待濾波的圖像模板。本文采用3×3的矩陣模板,即將臨近的像素點(diǎn)組成3×3的矩陣,并通過排序得出模板中的中值,最后將模板中的其他像素值替換為中值。

      在FPGA內(nèi)部邏輯實(shí)現(xiàn)過程中,充分利用FPGA的并行能力,通過三級(jí)流水線進(jìn)行實(shí)現(xiàn):

      (1)將三行數(shù)據(jù)分別進(jìn)行排序,得到每行數(shù)據(jù)的最大值、中間值、最小值;

      (2)分別對(duì)三行數(shù)據(jù)的最大、最小與中間值進(jìn)行同時(shí)比較;

      (3)將三個(gè)最大值比較得到的最小值、三個(gè)中間值得到的中間值以及三個(gè)最小值比較得到的最大值進(jìn)行比較,得到最后的中值。

      2.5 SOBEL運(yùn)算模塊

      在本模塊中,將得到的灰度圖像采用3*3的Sobel算子進(jìn)行水平方向與豎直方向的同步邊緣檢測(cè)。

      Sobel算法第一步需采用水平算子與豎直算子與視頻每幀圖像進(jìn)行卷積運(yùn)算,其中的Sobel算法的水平算子Sobelx與豎直算子Sobely如式(4)、(5)所示:

      對(duì)一幀圖像進(jìn)行3*3的卷積運(yùn)算需緩存前兩行的數(shù)據(jù)。本設(shè)計(jì)采用了Shiftram IP核對(duì)前兩行數(shù)據(jù)進(jìn)行緩存,因?yàn)閄inlinx的ShiftramIP核最大深度為1088,采用深度為1024與256的兩個(gè)IP核共同緩存一行數(shù)據(jù)。

      第二步需計(jì)算圖像的梯度向量G,G等于Sobel算子在兩個(gè)方向得到的卷積值Gx與Gy的平方根,即:

      其中,開方采用CORDIC核進(jìn)行運(yùn)算,其延遲為6個(gè)時(shí)鐘周期。

      第三步將得到的梯度值G與閾值比較,大于閾值則判定為邊緣,小于閾值則相反。將輸出的圖像數(shù)據(jù)值進(jìn)行翻轉(zhuǎn),即讓檢測(cè)到的圖像邊緣顯示為白色,非邊緣顯示為黑色。

      本文系統(tǒng)中采用雙按鍵來控制Sobel閾值的加減,可使圖像輸出調(diào)整至最佳效果。

      2.6 開操作運(yùn)算模塊

      由于SOBEL運(yùn)算結(jié)果存在檢測(cè)邊緣過厚[7-8]的問題,對(duì)處理后的邊緣數(shù)據(jù)進(jìn)行開操作,即先腐蝕后膨脹。開操作可以消除圖像中的細(xì)小噪點(diǎn),并能平滑邊緣輪廓。腐蝕與膨脹運(yùn)算與中值濾波類似,同樣采用3*3的腐蝕矩陣與膨脹矩陣模板對(duì)每幀圖像進(jìn)行運(yùn)算,若圖像數(shù)據(jù)生成的3*3矩陣模板為:

      則對(duì)應(yīng)的腐蝕輸出Geros與膨脹輸出Gexpa分別為:

      將得到的輸出Geros與Gexpa替代該模板中的其他像素值,就得到了輸出圖像。

      2.7 視頻緩存控制模塊

      本模塊采用DDR3存儲(chǔ)控制器MIG的IP核輔助完成數(shù)據(jù)緩存設(shè)計(jì)。作為整個(gè)系統(tǒng)中的時(shí)鐘域數(shù)據(jù)交互模塊,MIG核兩側(cè)分別采用兩個(gè)FIFO分別用于MIG的讀寫數(shù)據(jù)緩存以及數(shù)據(jù)的跨時(shí)鐘域操作。MIG核輸入差分時(shí)鐘頻率為200MHz,兩側(cè)時(shí)鐘比例設(shè)置為4:1。

      FPGA內(nèi)部邏輯通過控制讀寫使能信號(hào)app_en、app_wdf_wren,以及觀測(cè)是否可以進(jìn)行讀寫的準(zhǔn)備信號(hào)app_rdy、app_wdf_wren進(jìn)行讀寫操作,并化用乒乓操作思想,通過地址總線與BANK地址來進(jìn)行視頻數(shù)據(jù)存儲(chǔ)位置切換,提升了實(shí)際帶寬,避免了視頻圖像拖影現(xiàn)象的產(chǎn)生。

      2.8 HDMI驅(qū)動(dòng)模塊

      本系統(tǒng)采用了常規(guī)HDMI驅(qū)動(dòng)芯片Sil9134作為顯示橋接芯片,通過產(chǎn)生1280×720的VGA時(shí)序讀取讀FIFO內(nèi)的視頻采集數(shù)據(jù),并通過Sil9134芯片轉(zhuǎn)換為HDMI接口輸送至顯示屏顯示。其中1280×720的VGA時(shí)序圖見2,通過計(jì)數(shù)器產(chǎn)生VSYNC信號(hào)和HREF信號(hào),其計(jì)數(shù)時(shí)序表如表1所示。

      表1 VGA時(shí)序表

      表1中,當(dāng)計(jì)數(shù)器在SYNC范圍內(nèi),將VSYNC、HREF信號(hào)置為高電平。而當(dāng)計(jì)數(shù)器處于DISP范圍內(nèi)時(shí),將行、列有效信號(hào)置為高電平,數(shù)據(jù)有效信號(hào)DE在行、列信號(hào)同時(shí)為高時(shí)置為高電平。

      3 版級(jí)調(diào)試與驗(yàn)證

      將代碼下載至開發(fā)板進(jìn)行版級(jí)測(cè)試,初始閾值設(shè)置為23,測(cè)試圖如圖3所示。

      圖3 測(cè)試原圖

      采用中值濾波與Sobel算子結(jié)果如圖4所示,圖像邊緣提取過厚,且在邊緣提取后有細(xì)小噪點(diǎn)產(chǎn)生。

      圖4 Sobel提取結(jié)果

      加上腐蝕算法后結(jié)果如圖5所示,可以看到,腐蝕操作消除了Sobel提取后的船體體內(nèi)與桅桿周圍的噪點(diǎn),并削弱了檢測(cè)邊緣厚度,但將船帆的左上邊緣、船體下部陰影邊緣以及船體右側(cè)細(xì)小邊緣隔斷或?yàn)V除。

      圖5 Sobel與腐蝕提取結(jié)果

      加上膨脹算法后結(jié)果為圖6所示,膨脹操作將腐蝕操作細(xì)化的邊緣進(jìn)行增強(qiáng),并平滑了船體的邊緣輪廓。

      圖6 Sobel與開操作提取結(jié)果

      實(shí)驗(yàn)結(jié)果顯示,本文設(shè)計(jì)系統(tǒng)可以較好的完成預(yù)期功能,圖像主要邊緣提取效果好,圖像噪聲較低。

      4 結(jié)論

      本文采用Xinlinx公司Kintex-7系列FPGA的XC7K325T芯片與0V5640高清攝像頭完成了基于Sobel算子的實(shí)時(shí)圖像采集與顯示系統(tǒng)設(shè)計(jì),并通過版級(jí)調(diào)試測(cè)試了預(yù)處理算法各模塊的處理效果,驗(yàn)證了系統(tǒng)工作正確性,為要求更高、算法更為復(fù)雜的實(shí)時(shí)視頻處理系統(tǒng)設(shè)計(jì)提供了參考。

      猜你喜歡
      算子攝像頭預(yù)處理
      浙江首試公路非現(xiàn)場執(zhí)法新型攝像頭
      攝像頭連接器可提供360°視角圖像
      擬微分算子在Hp(ω)上的有界性
      各向異性次Laplace算子和擬p-次Laplace算子的Picone恒等式及其應(yīng)用
      一類Markov模算子半群與相應(yīng)的算子值Dirichlet型刻畫
      基于預(yù)處理MUSIC算法的分布式陣列DOA估計(jì)
      Roper-Suffridge延拓算子與Loewner鏈
      淺談PLC在預(yù)處理生產(chǎn)線自動(dòng)化改造中的應(yīng)用
      絡(luò)合萃取法預(yù)處理H酸廢水
      奔馳360°攝像頭系統(tǒng)介紹
      文山县| 固原市| 襄汾县| 河北省| 鄂州市| 文昌市| 鸡东县| 汽车| 大方县| 永善县| 从化市| 肇源县| 塔城市| 健康| 沈阳市| 永川市| 吴旗县| 东光县| 万山特区| 都匀市| 盐源县| 广安市| 郎溪县| 新化县| 新余市| 保靖县| 临沧市| 浦北县| 正镶白旗| 南和县| 尼玛县| 信丰县| 乌兰浩特市| 柞水县| 大石桥市| 库伦旗| 印江| 福鼎市| 崇州市| 建昌县| 黎平县|