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