• 
    

    
    

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

      ?

      基于Zynq與Qt的視頻采集與圖像邊緣檢測(cè)系統(tǒng)*

      2019-03-08 10:26:10寧效龍何子力張昕昱徐景宏劉文
      關(guān)鍵詞:圖像處理嵌入式邊緣

      寧效龍,何子力,張昕昱,徐景宏,劉文

      (1.中國科學(xué)技術(shù)大學(xué) 微電子學(xué)院,安徽 合肥 230026;2.中國科學(xué)技術(shù)大學(xué) 物理學(xué)院,安徽 合肥 230026)

      0 引言

      目前大多數(shù)人工智能應(yīng)用主要依靠的是云計(jì)算技術(shù),然而基于云計(jì)算技術(shù)的人工智能由于需要與云端的服務(wù)器進(jìn)行信息交互,而且對(duì)數(shù)據(jù)的處理與推斷基本上都是依賴云端的服務(wù)器,因此在實(shí)時(shí)性與安全性方面有著先天的不足[1-2]。而某些特定場(chǎng)景下的人工智能應(yīng)用(如自動(dòng)駕駛、機(jī)器人、智能家居等)又對(duì)實(shí)時(shí)性與安全性有著較高的要求[3],基于云計(jì)算技術(shù)的人工智能顯然不能很好地滿足這一要求。為了解決這一問題,一種基于邊緣計(jì)算與嵌入式技術(shù)的人工智能概念被提了出來,即將數(shù)據(jù)的處理與決策放到嵌入式終端去執(zhí)行,以此獲得更好的實(shí)時(shí)性與隱私性[4]。

      人工智能與圖像處理技術(shù)密不可分,無論是在自動(dòng)駕駛、智能安防還是智慧醫(yī)療領(lǐng)域,人工智能若想大展身手,必定都離不開圖像處理技術(shù)?,F(xiàn)有的應(yīng)用于圖像處理領(lǐng)域的嵌入式處理器主要包括ARM、FPGA、DSP以及GPU,而以單一種類處理器為平臺(tái)的嵌入式圖像處理方法已經(jīng)無法滿足邊緣人工智能中高速、低延時(shí)、數(shù)據(jù)吞吐量大的要求[5],因此需要用一款集成多種處理器優(yōu)點(diǎn)的嵌入式平臺(tái)來開展相關(guān)的研究。Xilinx公司推出的Zynq系列可擴(kuò)展處理平臺(tái)完美地解決了上述問題,該系列器件配備ARM Cortex-A9處理器與Artix-7 FPGA芯片,集成了ARM處理器的軟件可編程性與FPGA的硬件可編程性,不僅可實(shí)現(xiàn)重要分析與硬件加速,同時(shí)還在單個(gè)器件上高度集成CPU、DSP以及混合信號(hào)功能。因此,本文決定使用該芯片進(jìn)行邊緣圖像處理技術(shù)方面的探索。

      1 邊緣檢測(cè)算法與相應(yīng)IP核的實(shí)現(xiàn)

      邊緣檢測(cè)是圖像處理與機(jī)器視覺中的重要技術(shù)之一[6],其目的是檢測(cè)識(shí)別出圖像中亮度變化劇烈的像素點(diǎn)構(gòu)成的集合。使用邊緣檢測(cè)技術(shù)可以大大減少源圖像的數(shù)據(jù)量,提取出源圖像中有用的信息,并保留圖像的重要結(jié)構(gòu)。邊緣檢測(cè)算法大致可以分為兩類:基于一階差分的方法和基于二階差分的方法[7]。一階差分方法通過計(jì)算圖像的梯度值來檢測(cè)圖像邊緣,二階差分方法通過尋求二階導(dǎo)數(shù)中的過零點(diǎn)來檢測(cè)邊緣。

      1.1 Sobel邊緣檢測(cè)算法

      Sobel邊緣檢測(cè)算子是應(yīng)用最廣泛的一階差分算子之一,其最早于1968年由SOBEL I所提出[8]。對(duì)于一幅數(shù)字圖像f(x,y),在像素(x,y)處的梯度可定義為向量

      (1)

      式中,Gx(x,y)與Gy(x,y)分別表示沿x與y方向上的梯度分量。

      在邊緣檢測(cè)中,梯度的幅值相較于方向更為重要,梯度幅值可用下式來表示:

      (2)

      由式(1)可以看出,數(shù)字圖像梯度的計(jì)算需要在每一個(gè)像素位置計(jì)算兩個(gè)方向的一階差分,這一操作可以通過將Sobel算子與源圖像進(jìn)行卷積來實(shí)現(xiàn)。圖1(a)和(b)分別是Sobel算子大小為3×3的水平卷積核與垂直卷積核。

      圖1 Sobel邊緣檢測(cè)算子

      圖像f(x,y)中任一像素點(diǎn)(x,y)的水平梯度分量Gx(x,y)和垂直梯度分量Gy(x,y)可以按下式計(jì)算:

      Gx(x,y)=f(x+1,y-1)+2×f(x+1,y)+f(x+1,y+1)-f(x-1,y-1)-2×f(x-1,y)-f(x-1,y+1)

      (3)

      Gy(x,y)=f(x-1,y+1)+2×f(x,y+1)+f(x+1,y+1)-f(x-1,y-1)-2×f(x,y-1)-f(x+1,y-1)

      (4)

      1.2 基于Vivado HLS的Sobel邊緣檢測(cè)IP核的設(shè)計(jì)

      Vivado HLS是Xilinx公司推出的一款高層次綜合工具,使用該工具可以實(shí)現(xiàn)直接使用C、C++以及System C語言規(guī)范對(duì)Xilinx系列FPGA進(jìn)行編程,無需手動(dòng)創(chuàng)建RTL,從而可加速IP創(chuàng)建[9]。

      本文中使用Vivado HLS工具設(shè)計(jì)并實(shí)現(xiàn)了Sobel邊緣檢測(cè)IP核。IP核的工作流程如下:

      (1)對(duì)輸入的格式為AXI_STREAMD的視頻流進(jìn)行格式轉(zhuǎn)換,轉(zhuǎn)換為Mat類型圖像數(shù)據(jù);

      (2)將圖像數(shù)據(jù)中的每個(gè)像素點(diǎn)與Sobel算子進(jìn)行卷積,得到邊緣檢測(cè)的圖像;

      (3)將得到的邊緣檢測(cè)圖像進(jìn)行二值化處理,使得圖像中的邊緣信息更加明顯;

      (4)將處理后的圖像數(shù)據(jù)再轉(zhuǎn)換為AXI_STREAMD視頻流格式進(jìn)行輸出。

      該IP核對(duì)圖像的處理流程如圖2所示。

      圖2 Sobel邊緣檢測(cè)IP核工作流程圖

      該IP核所占用的資源情況如表1所示。

      表1 Sobel邊緣檢測(cè)IP核片內(nèi)資源使用情況

      使用圖3對(duì)該IP核進(jìn)行測(cè)試,并與軟件方法實(shí)現(xiàn)的Sobel邊緣檢測(cè)進(jìn)行比較,如圖4所示??梢钥闯鰞煞N方法實(shí)現(xiàn)的Sobel邊緣檢測(cè)幾乎都能很好地檢測(cè)出物體的邊緣情況,功能上沒有顯著的差異。

      圖3 Sobel邊緣檢測(cè)測(cè)試用圖片

      圖4 基于軟件與硬件方法實(shí)現(xiàn)的Sobel邊緣檢測(cè)比較

      圖5 系統(tǒng)硬件組成

      2 系統(tǒng)硬件組成

      圖5大致描述了系統(tǒng)的硬件組成結(jié)構(gòu)。

      (1)圖像采集模塊。該部分由一個(gè)攝像頭及其讀寫電路組成,攝像頭的輸出格式為YUV422,分辨率為640×480。

      (2)視頻復(fù)制模塊。該部分由一個(gè)視頻復(fù)制IP核及其控制電路組成,其輸入端為攝像頭采集到的視頻數(shù)據(jù),輸出端為兩路(A路和B路)完全相同的輸入端視頻數(shù)據(jù)的復(fù)制,其目的是將輸入的視頻數(shù)據(jù)進(jìn)行復(fù)制,并得到兩路完全相同的視頻數(shù)據(jù)以供后面的圖像處理使用。

      (3)硬件Sobel邊緣檢測(cè)模塊。該部分由Sobel邊緣檢測(cè)IP核及其控制電路組成,其對(duì)由B路輸入的視頻數(shù)據(jù)進(jìn)行硬件Sobel邊緣檢測(cè)操作,并將處理完畢的數(shù)據(jù)輸出。

      (4)緩存模塊。該部分使用視頻直接內(nèi)存訪問(Video Direct Memory Access,VDMA)工具,通過AXI_HP接口將兩路視頻數(shù)據(jù)直接搬移到外部DDR3存儲(chǔ)中進(jìn)行緩存,以供PS端的ARM主控芯片對(duì)視頻數(shù)據(jù)進(jìn)行處理。

      (5)軟件Sobel邊緣檢測(cè)模塊。該部分功能有PS端的ARM處理器實(shí)現(xiàn),ARM處理器使用OpenCV庫自帶的Sobel邊緣檢測(cè)函數(shù)對(duì)A路視頻數(shù)據(jù)進(jìn)行Sobel邊緣檢測(cè),并將處理完畢的數(shù)據(jù)再存儲(chǔ)到DDR中。

      (6)圖像顯示模塊。該部分由HDMI輸出端以及相應(yīng)的輸出時(shí)序控制模塊組成,HDMI的輸出時(shí)序控制由自帶IP核VTC(Video Timing Controller)實(shí)現(xiàn)。

      系統(tǒng)的工作流程主要如下:

      由攝像頭采集到的視頻數(shù)據(jù)首先通過視頻復(fù)制IP核處理生成完全相同的兩路視頻數(shù)據(jù),一路(A路)視頻數(shù)據(jù)直接經(jīng)過AXI_HP接口寫入DDR系統(tǒng)內(nèi)存目錄的緩沖區(qū),另一路(B路)視頻數(shù)據(jù)經(jīng)過Sobel邊緣檢測(cè)IP核處理后再經(jīng)過AXI_HP接口寫入DDR系統(tǒng)內(nèi)存目錄的緩沖區(qū)。位于PS部分的ARM處理器利用OpenCV自帶Sobel邊緣檢測(cè)函數(shù)對(duì)A路視頻數(shù)據(jù)進(jìn)行Sobel邊緣檢測(cè)處理,對(duì)B路視頻則不做處理。經(jīng)過處理后的兩路視頻數(shù)據(jù)再通過AXI_HP接口被傳輸?shù)紿DMI顯示端進(jìn)行輸出,進(jìn)而輸出在顯示屏上。

      3 系統(tǒng)軟件實(shí)現(xiàn)

      3.1 基于PetaLinux工具的嵌入式Linux系統(tǒng)的搭建

      PetaLinux是一款專為Xilinx SoC設(shè)備設(shè)計(jì)的嵌入式Linux系統(tǒng)開發(fā)工具。與以往通用的嵌入式Linux系統(tǒng)搭建方法相比,使用Petalinux工具為Xilinx SoC設(shè)備創(chuàng)建Linux系統(tǒng)可以大大減少開發(fā)時(shí)間以及避免繁瑣的操作,同時(shí)更方便在后期對(duì)Linux應(yīng)用程序的移植與拓展。

      PetaLinux的開發(fā)流程主要包括以下幾個(gè)步驟:

      (1)創(chuàng)建PetaLinux工程。

      (2)配置硬件信息。

      (3)配置設(shè)備樹文件。

      (4)配置內(nèi)核文件。

      (5)配置文件系統(tǒng)。

      (6)配置Uboot啟動(dòng)文件。

      (7)生成Boot.bin與images.ub文件并復(fù)制到啟動(dòng)SD卡中。

      3.2 基于Qt的Zynq可視化操作系統(tǒng)的搭建

      Qt是一個(gè)跨平臺(tái)C++ 圖形用戶界面應(yīng)用程序開發(fā)框架,使用Qt開發(fā)的軟件,相同的代碼可以在任何支持的平臺(tái)上編譯與執(zhí)行[10]。同時(shí)Qt支持的平臺(tái)非常豐富,幾乎涵蓋所用常用的操作系統(tǒng),包括Windows、UNIX、LINUX、Mac OS以及各類嵌入式平臺(tái)。為了實(shí)現(xiàn)對(duì)Zynq的可視化操控,且基于Qt的這些便捷特性,考慮使用Qt 5.6.2工具作為開發(fā)板的控制系統(tǒng)。

      首先,需要在PC Ubuntu環(huán)境下搭建Qt開發(fā)環(huán)境??梢詮腝t官網(wǎng)上下載適用于x64 Linux系統(tǒng)的Qt IDE安裝包,并進(jìn)行安裝。安裝結(jié)束后便可以進(jìn)行Qt應(yīng)用程序的開發(fā),需要注意的是為了能夠編譯出可以在Zynq開發(fā)板上運(yùn)行的Qt程序,需要選擇適配于Zynq開發(fā)板運(yùn)行環(huán)境的qmake編譯器。要想實(shí)現(xiàn)在Zynq開發(fā)板上運(yùn)行編譯好的Qt程序,還需要為開發(fā)板建立Qt運(yùn)行環(huán)境。

      4 系統(tǒng)測(cè)試

      將使用PetaLinux工具生成的Uboot文件與image.ub文件拷貝到SD卡中,并將Zynq與PC端的串口相連接,同時(shí)將Zynq端的HDMI接口連接到外部顯示器。打開超級(jí)終端工具(Hyper Terminal)并選擇正確的串口號(hào),給Zynq上電后便可以進(jìn)入Zynq的Linux終端界面。然后,便可以在Zynq上運(yùn)行已經(jīng)在PC端編譯好的測(cè)試程序。

      采取兩種不同的場(chǎng)景進(jìn)行測(cè)試,測(cè)試圖片如圖6所示,Zynq通過攝像頭(型號(hào)為OV5640)獲取測(cè)試圖片。兩次測(cè)試的結(jié)果分別如圖7(a)和(b)所示,其中Software(軟件)指的是在ARM處理器上由OpenCV自帶函數(shù)處理的結(jié)果,Hardware(硬件)指的是由邊緣檢測(cè)IP核處理的結(jié)果。

      圖6 測(cè)試用圖

      圖7 系統(tǒng)測(cè)試結(jié)果

      由圖7(a)和(b)可以得出硬件與軟件兩種Sobel邊緣檢測(cè)方法的耗時(shí)情況,如表2所示。

      表2 軟硬件Sobel邊緣檢測(cè)耗時(shí)比較

      由表2可以看出,所構(gòu)造的Sobel邊緣檢測(cè)IP核比ARM處理器上基于OpenCV的軟件Sobel邊緣檢測(cè)速度快了6倍多,在達(dá)到相同的圖像處理效果的同時(shí),極大地縮減了嵌入式系統(tǒng)的耗時(shí)。這說明基于Zynq的硬件圖像處理方法可以有效加速在嵌入式ARM上的圖像處理操作,這為嵌入式實(shí)時(shí)圖像處理以及邊緣人工智能提供了一個(gè)可行的方案。

      5 結(jié)論

      本文設(shè)計(jì)并實(shí)現(xiàn)了一套基于Zynq與Qt的嵌入式視頻采集與邊緣檢測(cè)系統(tǒng),在該系統(tǒng)中設(shè)計(jì)了一個(gè)基于Zynq PL部分的硬件Sobel邊緣檢測(cè)IP核,并將該硬件Sobel邊緣檢測(cè)方法的效果和耗時(shí)與基于Zynq PS端實(shí)現(xiàn)的軟件Sobel邊緣檢測(cè)進(jìn)行了比較。結(jié)果表明,基于Zynq硬件Sobel邊緣檢測(cè)IP核實(shí)現(xiàn)的圖像邊緣檢測(cè)在效果上與軟件Sobel邊緣檢測(cè)方法十分接近,但在耗時(shí)上卻減少到后者的1/6,極大地縮減了圖像處理的耗時(shí),使得基于嵌入式系統(tǒng)的圖像處理實(shí)時(shí)性得到了很大程度的提升。

      綜上,本文中所設(shè)計(jì)與實(shí)現(xiàn)的嵌入式邊緣檢測(cè)系統(tǒng),充分證明了基于FPGA的硬件加速可以顯著降低圖像數(shù)據(jù)的處理耗時(shí),這為邊緣人工智能中邊緣終端數(shù)據(jù)處理量大以及耗時(shí)長的問題提供了一個(gè)新的解決思路。該設(shè)計(jì)方案可以應(yīng)用于諸如自動(dòng)駕駛汽車、機(jī)器人以及智能監(jiān)控等邊緣人工智能場(chǎng)景,在減少嵌入式終端系統(tǒng)運(yùn)行耗時(shí)、增強(qiáng)系統(tǒng)運(yùn)行可靠性的同時(shí),也極大地提高了數(shù)據(jù)的隱私性。

      猜你喜歡
      圖像處理嵌入式邊緣
      機(jī)器學(xué)習(xí)在圖像處理中的應(yīng)用
      電子制作(2018年18期)2018-11-14 01:48:20
      搭建基于Qt的嵌入式開發(fā)平臺(tái)
      模糊圖像處理,刑事偵查利器
      圖像處理技術(shù)的實(shí)戰(zhàn)應(yīng)用
      一張圖看懂邊緣計(jì)算
      嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
      Altera加入嵌入式視覺聯(lián)盟
      倍福 CX8091嵌入式控制器
      Photo Shop通道在圖像處理中的應(yīng)用
      河南科技(2014年1期)2014-02-27 14:04:06
      在邊緣尋找自我
      雕塑(1999年2期)1999-06-28 05:01:42
      梨树县| 鹰潭市| 仁布县| 仁怀市| 莒南县| 金平| 台中县| 松江区| 盐池县| 新野县| 新郑市| 府谷县| 霍山县| 南漳县| 自贡市| 武强县| 巴彦淖尔市| 林周县| 蒙自县| 手游| 龙胜| 洪雅县| 鄄城县| 灵武市| 扶风县| 红安县| 鄂伦春自治旗| 竹北市| 留坝县| 牡丹江市| 阿尔山市| 陆良县| 梁平县| 博乐市| 会同县| 兴安县| 钟祥市| 宁武县| 湖南省| 库尔勒市| 托里县|