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