用OpenCV和Vivado HLS加速基于Zynq SoC的嵌入式視覺(jué)應用開(kāi)發(fā)
將Vivado HLS與OpenCV庫配合使用,既能實(shí)現快速原型設計,又能加快基于Zynq All Programmable SoC的Smarter Vision系統的開(kāi)發(fā)進(jìn)度。
本文引用地址:http://dyxdggzs.com/article/234277.htm計算機視覺(jué)技術(shù)幾年來(lái)已發(fā)展成為學(xué)術(shù)界一個(gè)相當成熟的科研領(lǐng)域,目前許多視覺(jué)算法來(lái)自于數十年的科研成果。不過(guò),我們最近發(fā)現計算機視覺(jué)技術(shù)正快速滲透到我們生活的方方面面?,F在我們擁有能自動(dòng)駕駛的汽車(chē)、能根據我們的每個(gè)動(dòng)作做出反應的游戲機、自動(dòng)工作的吸塵器、能根據我們的手勢做出響應的手機,以及其它等視覺(jué)產(chǎn)品。
今天我們面臨的挑戰就是如何高效實(shí)現上述這些及未來(lái)的各種視覺(jué)系統,同時(shí)滿(mǎn)足嚴格的功耗和上市要求。此類(lèi)產(chǎn)品可以Zynq™ All Programmable SoC為基礎,并結合廣泛使用的計算機視覺(jué)庫OpenCV和高層次綜合(HLS)工具,以實(shí)現關(guān)鍵功能的硬件加速。這種強強組合能為設計和實(shí)現Smarter Vision系統提供強大的平臺。
嵌入式系統在當今的市場(chǎng)中無(wú)所不在。不過(guò),計算功能方面的局限性,尤其是在處理大型圖片、高幀率時(shí)計算能力低下嚴重限制了嵌入式系統在計算機/機器視覺(jué)實(shí)際實(shí)現方面的應用。圖像傳感器技術(shù)的發(fā)展猶如為嵌入式器件裝上了慧眼,能幫助該器件通過(guò)計算機視覺(jué)算法與環(huán)境互動(dòng)。嵌入式系統和計算機/機器視覺(jué)的融合催生了嵌入式視覺(jué)技術(shù),這是一個(gè)快速發(fā)展的領(lǐng)域,正成為設計能夠觀(guān)看并了解周邊環(huán)境的設備的基礎所在。
嵌入式視覺(jué)系統的開(kāi)發(fā)
嵌入式視覺(jué)技術(shù)要在計算平臺上運行智能計算機視覺(jué)算法。對許多用戶(hù)來(lái)說(shuō),標準的桌面計算處理平臺即可方便地滿(mǎn)足需求。不過(guò),一般性計算平臺或許無(wú)法滿(mǎn)足高度嵌入式產(chǎn)品的生產(chǎn)需求,這種產(chǎn)品要做到小型化、高效性、低功耗,而且要處理龐大的圖像數據集,比如同時(shí)處理多個(gè)每秒60幀的實(shí)時(shí)高清視頻流。
圖1給出了設計人員通常用來(lái)創(chuàng )建嵌入式視覺(jué)應用的流程。算法設計是整個(gè)流程中最重要的一環(huán),因為算法將決定我們能否滿(mǎn)足任何特定計算機視覺(jué)任務(wù)的處理和質(zhì)量標準要求。首先,設計人員在MATLAB®等數字計算環(huán)境中搜索算法選項,明確高級處理選項。一旦確定了適當的算法,設計人員通常用C/C++等高級語(yǔ)言來(lái)為算法建模,以便快速執行,并滿(mǎn)足最終比特精度實(shí)現方案的要求。
系統分區是開(kāi)發(fā)過(guò)程中的重要步驟。在此,設計人員通過(guò)算法性能分析,可明確他們要對算法的哪些部分進(jìn)行硬件加速,從而滿(mǎn)足處理代表性輸入數據集的實(shí)時(shí)要求。同樣重要的是對目標平臺中的整個(gè)系統進(jìn)行原型設計,從而實(shí)際地檢測性能預期。一旦原型設計過(guò)程說(shuō)明設計滿(mǎn)足了所有性能和質(zhì)量目標要求,那么設計人員就能在實(shí)際的目標器件中啟動(dòng)最終系統實(shí)現。最后一步就是測試運行在芯片上的設計在各種用例場(chǎng)景下的表現。一切檢查完成后,設計團隊就能發(fā)布最終產(chǎn)品。
圖1 嵌入式視覺(jué)系統開(kāi)發(fā)流程
賽靈思All Programmable SoC是以處理器為中心的器件,在單芯片上提供了軟/硬件和I/O可編程性。Zynq SoC在單個(gè)器件中集成了一個(gè)ARM®雙核Cortex™-A9 MPCore™處理系統、FPGA邏輯和一些關(guān)鍵外設。這樣,該器件就能幫助設計人員實(shí)現極為高效的嵌入式視覺(jué)系統。
c++相關(guān)文章:c++教程
評論