色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 用OpenCV和Vivado HLS加速基于Zynq SoC的嵌入式視覺應(yīng)用開發(fā)

          用OpenCV和Vivado HLS加速基于Zynq SoC的嵌入式視覺應(yīng)用開發(fā)

          作者:Fernando Martinez Vallina 時(shí)間:2014-03-06 來源:電子產(chǎn)品世界 收藏

          HLS編譯器流程的最后兩步就是RTL實(shí)現(xiàn)和IP封裝。這是 HLS編譯器中自動(dòng)進(jìn)行的兩步,不需要用戶具備RTL方面的知識(shí)。針對(duì)產(chǎn)品組合中不同器件的RTL創(chuàng)建優(yōu)化細(xì)節(jié)內(nèi)置在編譯器中。在此階段,為滿足需求,我們提供了經(jīng)過全面測(cè)試和驗(yàn)證的按鈕式工具,能生成基于時(shí)序和基于FPGA架構(gòu)的RTL。 HLS編譯器的輸出自動(dòng)封裝為IP-XACT等其它工具能接受的格式,因此無需進(jìn)行其它操作,就可在Vivado中使用HLS生成的IP核。

          本文引用地址:http://cafeforensic.com/article/234277.htm

            庫為用Vivado HLS進(jìn)行設(shè)計(jì)優(yōu)化提供了捷徑。這些庫預(yù)先特性描述后能提供1080p分辨率的像素處理功能。引導(dǎo)Vivado HLS編譯器進(jìn)行優(yōu)化的細(xì)節(jié)已嵌入在這些庫中。這樣,您就能快速自如地將桌面環(huán)境中的理念應(yīng)用迭代為Zynq上運(yùn)行的應(yīng)用,均可在ARM處理器和FPGA架構(gòu)上操作。

            圖3概述了用OpenCV進(jìn)行運(yùn)動(dòng)檢測(cè)應(yīng)用開發(fā)流程。該設(shè)計(jì)的目的就是通過比較當(dāng)前幀和前一幀來檢測(cè)視頻流中的移動(dòng)物體。算法的第一階段要檢測(cè)前后兩幀的邊緣。數(shù)據(jù)縮減運(yùn)算(data-reduction operation)便于分析連續(xù)幀之間的相對(duì)變化。邊緣信息提取出來后,通過邊緣對(duì)比可以檢測(cè)出當(dāng)前圖像中出現(xiàn)而前一圖像中不存在的邊緣。檢測(cè)出來的新邊緣則構(gòu)成運(yùn)動(dòng)檢測(cè)掩膜圖像。最新邊緣檢測(cè)結(jié)果在當(dāng)前圖像上凸顯前,應(yīng)考慮到圖像傳感器噪聲的影響。各幀的噪聲可能不同,會(huì)導(dǎo)致運(yùn)動(dòng)檢測(cè)掩膜圖像中出現(xiàn)隨機(jī)錯(cuò)誤邊緣。因此我們必須過濾圖像,減少噪聲對(duì)算法質(zhì)量的影響。

            圖5  采用可編程架構(gòu)的Zynq上的運(yùn)動(dòng)檢測(cè)

            在該應(yīng)用中,可通過在運(yùn)動(dòng)檢測(cè)掩膜圖像上采用7x7中值濾波器來降噪。中值濾波器的主要就是取7x7相鄰像素窗口的中值,然后將中值作為窗口中心像素的最終值進(jìn)行報(bào)告。降噪后,運(yùn)動(dòng)檢測(cè)掩膜圖像結(jié)合于實(shí)時(shí)輸入圖像并用紅色凸顯出運(yùn)動(dòng)邊緣。

            您可全面實(shí)現(xiàn)應(yīng)用,運(yùn)行在ARM處理子系統(tǒng)上,采用Zynq源代碼映射,如圖4所示。實(shí)現(xiàn)過程中僅有的硬件元素就是cvget-frameshowimage函數(shù)。這兩個(gè)視頻I/O函數(shù)用FPGA架構(gòu)中的賽靈思視頻I/O子系統(tǒng)實(shí)現(xiàn)的。在cvgetframe函數(shù)調(diào)用時(shí),視頻I/O子系統(tǒng)的輸入端負(fù)責(zé)處理所有細(xì)節(jié),從HDMI接口抓取并解碼視頻流,再把像素?cái)?shù)據(jù)存入DDR存儲(chǔ)器。Showimage函數(shù)調(diào)用時(shí),該子系統(tǒng)負(fù)責(zé)將像素?cái)?shù)據(jù)從DDR存儲(chǔ)器傳輸?shù)揭曨l顯示控制器,以驅(qū)動(dòng)電視機(jī)或其它符合HDMI標(biāo)準(zhǔn)的視頻顯示設(shè)備。

          Vivado HLS優(yōu)化的、支持硬件加速的OpenCV庫能將圖4中的代碼移植到FPGA架構(gòu)中的60fps實(shí)時(shí)像素處理流水線上。OpenCV庫為需要硬件加速的OpenCV元素提供基礎(chǔ)功能。如果沒有硬件加速,也就是說如果僅在ARM處理器中運(yùn)行所有代碼的話,那么該算法吞吐量?jī)H為每131(也就是0.076fps)。圖5顯示了Vivado HLS編譯后的應(yīng)用的新映射。請(qǐng)注意,原系統(tǒng)的視頻I/O映射可重復(fù)使用。此前正在ARM處理器上執(zhí)行的算法的計(jì)算內(nèi)核,現(xiàn)在可編譯到多個(gè)Vivado HLS生成的IP模塊中。這些模塊連接至Vivado IP Integrator中的視頻I/O子系統(tǒng),針對(duì)60fps、1080p的視頻處理進(jìn)行了優(yōu)化。

          Zynq SoCVivado設(shè)計(jì)套件提供的All Programmable環(huán)境非常適合以最新高分辨率視頻技術(shù)所要求的高數(shù)據(jù)處理速率運(yùn)行的嵌入式視覺系統(tǒng)的設(shè)計(jì)、原型設(shè)計(jì)和測(cè)試。采用OpenCV中的開源庫集是在較短開發(fā)時(shí)間內(nèi)實(shí)現(xiàn)高標(biāo)準(zhǔn)計(jì)算機(jī)視覺應(yīng)用的最佳選擇。由于OpenCV庫用C++編寫,因此我們用Vivado HLS創(chuàng)建的源代碼能高效轉(zhuǎn)換為Zynq SoC FPGA架構(gòu)中的硬件RTL,并可用作方便易用的處理加速器,且不影響OpenCV最初設(shè)想的設(shè)計(jì)環(huán)境的靈活性。

          c++相關(guān)文章:c++教程



          上一頁 1 2 3 4 下一頁

          關(guān)鍵詞: 賽靈思 Vivado OpenCV Smarter SoC

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉