<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 用OpenCV和Vivado HLS加速基于Zynq SoC的嵌入式視覺(jué)應用開(kāi)發(fā)

用OpenCV和Vivado HLS加速基于Zynq SoC的嵌入式視覺(jué)應用開(kāi)發(fā)

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

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

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

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

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

  圖5  采用可編程架構的Zynq上的運動(dòng)檢測

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

  您可全面實(shí)現應用,運行在ARM處理子系統上,采用Zynq源代碼映射,如圖4所示。實(shí)現過(guò)程中僅有的硬件元素就是cvget-frameshowimage函數。這兩個(gè)視頻I/O函數用FPGA架構中的賽靈思視頻I/O子系統實(shí)現的。在cvgetframe函數調用時(shí),視頻I/O子系統的輸入端負責處理所有細節,從HDMI接口抓取并解碼視頻流,再把像素數據存入DDR存儲器。Showimage函數調用時(shí),該子系統負責將像素數據從DDR存儲器傳輸到視頻顯示控制器,以驅動(dòng)電視機或其它符合HDMI標準的視頻顯示設備。

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

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

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



上一頁(yè) 1 2 3 4 下一頁(yè)

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

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>