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