新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 利用OpenCV加速嵌入式系統開發

        利用OpenCV加速嵌入式系統開發

        作者: 時間:2011-07-19 來源:網絡 收藏

        嵌入式處理器的性能日益提升、價格不斷下降,帶來日益廣泛的嵌入式計算機視覺應用,包括從安全及工業監控到自動化車輛與汽車安全等領域。開發人員可充分利用越來越高級的硬件,在不影響基本質量的同時,更快速、更低成本地開發具有突破性性能的產品。

        本文引用地址:http://www.104case.com/article/257852.htm

        開發周期縮短而帶來的巨大壓力,迫使人員必須高效利用嵌入式領域與傳統PC工作站領域的現有技術;適應并復用現有穩定軟件可為嵌入式開發人員提供不斷開發重大新項目的必備基礎。

        OpenCV就是進入嵌入式開發領域的一個實例。OpenCV是一款免費的開源計算機視覺庫,可提供從影像過濾及轉換,到特性抽象與機器學習等幾十個不同類別的數百種算法。它已被成千上萬的開發人員所使用,而且還在不斷發展之中。目前有很多庫是針對嵌入式系統的,但很少有像OpenCV這樣能夠在計算機視覺領域得到普遍推廣,而且涵蓋如此豐富的算法。


        圖1:OpenCV庫縮略圖。

        盡管OpenCV最初來源于Intel的x86架構,但它也不失為目前功能日益強大的嵌入式器件的自然選擇。OpenCV現已移植到嵌入式處理器常用CPU選擇ARM架構上,這點也并不奇怪。我們完全能夠在嵌入式器件上原封不動地采用OpenCV的交叉編譯版,不過,存儲器限制與其它架構注意事項可能會帶來一個技術難題。因此我們需要對OpenCV進行優化,以使它在新的主機上實現更高性能與更高效率。

        對嵌入式平臺而言,“優化”這個詞以前意味著要無限制地研究低級架構中不重要的細節,反復編寫匯編語言代碼。然而幸運的是,隨著嵌入式處理器復雜性的提升,嵌入式開發工具已變得日益強大,用戶友好性也得以大幅提高。

        典型的嵌入式器件可描述為系統級芯片(SoC),其中不僅包含ARM處理器,而且還含有多種外設與加速器,可將CPU從相關支持任務中解放出來。SoC甚至可能具有多個ARM內核,或其它功能齊全的協處理器。


        圖2:SoC基本內部架構。

        現在,SoC最重要的部分不是硬件本身,而是可幫助開發人員通過ARM應用程序高效利用SoC全部性能的支持性軟件,這不僅包括優化C語言編譯器的熟悉工具,還包括加速常見信號處理任務的優化軟件庫,以及處理SoC中不同模塊之間低級互動的驅動器。此外,它可能還包括支持特定廠商協處理器與加速器的特殊工具。這些工具相結合,可使嵌入式優化成為高級應用開發中一個簡單透明的組成部分。

        通過高效集成OpenCV等高級軟件與器件廠商提供的低端軟件,進而創建高效可行的系統,是嵌入式開發的重要挑戰之一。例如,我們不妨考慮這樣一種情況,SoC中包括了針對高強度計算的全功能數字信號處理器(DSP)。該DSP可能非常適合OpenCV的影像分析算法,尤其是在CPU缺乏原生浮點指令情況下更是如此,不過,要讓OpenCV在DSP架構上運行,可能還有大量工作要做。讓OpenCV等高級軟件實現分區,并在整個SoC上無縫運行是軟件開發工具的重要使命。

        從嵌入式開發人員的角度來說,將應用的不同部分透明地交給SoC上最合適的模塊來處理是再好不過的了。這樣做能夠幫助開發人員將更多資源集中到終端產品開發方面,從而花費更少的時間處理特定平臺問題,這是嵌入式器件的獨特優勢。支持上述要求的軟件工具則可在基本的處理功能與硬件功能基礎上更進一步,這對開發人員而言具有更重要的意義,器件廠商必須滿足這一要求,才能保持自身的競爭優勢。


        圖3:嵌入式應用分區后,在異構多內核SoC上運行更高效。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 客服| 阳曲县| 昭平县| 前郭尔| 虞城县| 房山区| 正蓝旗| 剑河县| 怀安县| 乌拉特前旗| 板桥市| 体育| 澜沧| 昂仁县| 南江县| 象州县| 驻马店市| 洞头县| 和龙市| 遂平县| 海宁市| 开鲁县| 泸定县| 宝应县| 通道| 石狮市| 博客| 漳州市| 敦煌市| 卫辉市| 瑞丽市| 阳曲县| 江山市| 宁陕县| 清水河县| 安福县| 察隅县| 若羌县| 岳普湖县| 仙居县| 集贤县|