用OpenCV和Vivado HLS加速基于Zynq SoC的嵌入式視覺應(yīng)用開發(fā)
處理子系統(tǒng)、FPGA邏輯和外設(shè)在Zynq SoC中的高度集成能確保相對于采用分立式組件設(shè)計而成的系統(tǒng)而言提高數(shù)據(jù)傳輸速率,降低功耗和材料清單成本。我們能用Zynq SoC實現(xiàn)實時處理支持1080p60視頻序列(1,920 x 1,080 RGB圖像,每秒60幀)的系統(tǒng),達(dá)到每秒數(shù)千億次運算的處理功能。
本文引用地址:http://m.butianyuan.cn/article/234277.htm為了全面利用Zynq SoC的諸多功能與特性,賽靈思推出了以IP和系統(tǒng)為中心的設(shè)計環(huán)境Vivado™設(shè)計套件。該套件可加速集成和實現(xiàn),從而可幫助設(shè)計人員提高開發(fā)生產(chǎn)力,進(jìn)而動態(tài)開發(fā)出Smater嵌入式產(chǎn)品。Vivado HLS作為該套件的一個組件,能幫助設(shè)計人員將采用C/C++語言開發(fā)的算法編譯為RTL,以便在FPGA邏輯中運行。
Vivado HLS工具非常適用于嵌入式視覺設(shè)計。在此流程中,您用C/C++創(chuàng)建您的算法,再用Vivado HLS將算法或算法的一部分編譯為RTL,進(jìn)而確定哪些函數(shù)更適合在FPGA邏輯中運行,哪些函數(shù)更適合在ARM處理器上運行。這樣,您的設(shè)計團(tuán)隊就能集中精力打造出最佳性能的基于Zynq SoC的視覺系統(tǒng)。
加速算法C到IP集成
ZYNQ SOC:嵌入式視覺的最明智的選擇
在開發(fā)機器視覺應(yīng)用過程中,設(shè)計團(tuán)隊必須選擇高度靈活的器件,這一點至關(guān)重要。設(shè)計團(tuán)隊所需的計算平臺應(yīng)提供強大的通用處理功能,以支持多種不同的軟件生態(tài)系統(tǒng),此外還要有穩(wěn)健可靠的數(shù)字信號處理功能,以便實現(xiàn)計算強度高、存儲高效的計算機視覺算法。芯片的高度集成對實現(xiàn)高效、完整的系統(tǒng)至關(guān)重要。
圖2 高層次綜合設(shè)計流程
為了進(jìn)一步幫助嵌入式視覺開發(fā)人員創(chuàng)建Smarter Vision系統(tǒng),賽靈思在Vivado中增加了對OpenCV計算機視覺算法庫的支持。賽靈思還推出了最新IP Integrator工具和SmartCORE™ IP以支持此類設(shè)計。
OPENCV推廣計算機視覺技術(shù)
OpenCV開辟了一條開發(fā)智能計算機視覺算法的途徑,而且能預(yù)測實時性能。該庫為設(shè)計人員提供了用于算法試驗和快速原型設(shè)計的環(huán)境。
OpenCV設(shè)計框架得到多平臺支持。不過在許多情況下,要提高庫對嵌入式產(chǎn)品的效率,就需要在嵌入式平臺上實現(xiàn),而且該平臺要能夠加速高強度例程,滿足實時性能要求。
雖然OpenCV在設(shè)計時就考慮到計算效率問題,不過它源自傳統(tǒng)計算環(huán)境,可支持多核處理。這種計算平臺或許對高度強調(diào)效率、成本和功耗的嵌入式應(yīng)用來說并不是最佳選擇。
OPENCV的特性
OpenCV是一款基于BSD許可證授權(quán)發(fā)行的開源計算機視覺庫,這就意味著它可免費用于學(xué)術(shù)和商業(yè)應(yīng)用中。它最初設(shè)計旨在提高通用多處理系統(tǒng)的計算效率,側(cè)重于實時應(yīng)用。此外,OpenCV還提供C/C++和Python等多種編程接口。
開源項目的優(yōu)勢在于,用戶能持續(xù)改進(jìn)算法,并將算法擴(kuò)展用于多種不同應(yīng)用領(lǐng)域。目前用OpenCV可現(xiàn)實2,500多種功能,其中包括:
• 矩陣數(shù)學(xué)
• 公用設(shè)施和數(shù)據(jù)結(jié)構(gòu)
• 通用圖像處理功能
• 圖像轉(zhuǎn)換
• 圖像金字塔
• 幾何描述符函數(shù)
• 特性識別、提取和跟蹤
• 圖像分割與擬合
• 攝像頭校準(zhǔn)、立體化和3D處理
• 機器學(xué)習(xí):檢測、識別
圖3 OpenCV算法庫開發(fā)的運動檢測應(yīng)用實例
c++相關(guān)文章:c++教程
評論