OpenCV的加速嵌入式系統開發中的應用

2021-01-20 電子產品世界

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

本文引用地址:http://www.eepw.com.cn/article/150861.htm

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

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



圖1:OpenCV庫縮略圖

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

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

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

linux作業系統文章專題:linux作業系統詳解(linux不再難懂)

相關焦點

  • Python在實時嵌入式系統開發中的主要應用
    Python在實時嵌入式系統開發中的主要應用 搜狐網 發表於 2020-09-23 10:55:04 由於Python有強大的社區支持,且是一款比容易入門的腳本語言,因此一些非IT領域的人都選它作為入門語言。
  • 風河VxWorks引入Python,加速嵌入式系統中的智能開發!
    風河VxWorks引入Python,加速嵌入式系統中的智能開發! 今,VxWorks 7已經擁有Python的支持,開發者可以在Wind River Workbench上創建並運行,也可以自由選擇其他編輯器,還可以在交互模式下使用Python,非常方便。
  • 使用LabVIEW加速基於ARM的嵌入式系統開發
    事實上自1991年來,已經有100多億ARM處理器應用到嵌入式系統中。開發基於ARM的嵌入式系統時,若採用用於ARM微控制器的NILabviewEmbeddedModule,可以幫助提高效率,而且使用LabVIEW中所提供的高級抽象功能還可以保證軟體的高質量。
  • OpenCV 4.3.0 發布,OPEN AI LAB Tengine 與OpenCV合作共同加速...
    這個提速是由Tengine實現的,OpenCV可無縫調用Tengine。Tengine是OPEN AI LAB(開放智能)自主智慧財產權的商用級AIoT智能開發平臺,針對於嵌入式終端平臺以及終端AI應用場景特點,採用模塊化設計為終端人工智慧量身打造的高效、簡潔、高性能的前端推理計算框架,是Arm CPU上深度學習框架的最佳選擇。據CSDN發布的最新數據,在國產AI開發工具中,Tengine成為國內AI開發者最受歡迎的AI工具框架。
  • 四種嵌入式系統開發中常用資料庫的簡單介紹
    打開APP 四種嵌入式系統開發中常用資料庫的簡單介紹 華清遠見 發表於 2020-04-01 11:28:02 一個在嵌入式中,我們可學習使用的資料庫有多種,每種資料庫都會呈現出不同的一面,那麼我們在嵌入式系統開發中可用到的資料庫都有哪幾種?給大家詳細介紹一下。 第一種:嵌入式開發的MySQL,這是一種關係型的資料庫管理系統,具有體積小、速度快、、成本低的特點,尤其是它的源碼開發特點,很多網站為了降低開發成本而選擇了MySQL資料庫,應用非常廣泛。
  • OpenCV4.4 CUDA編譯與加速全解析
    點擊上方「3D視覺工坊」,選擇「星標」乾貨第一時間送達來源丨OpenCV學堂OpenCV4.4 + CUDA概述OpenCV4.4中關於CUDA加速的內容主要有兩個部分。第一部分是之前OpenCV支持的圖像處理與對象檢測傳統算法的CUDA加速;第二部分是OpenCV4.2版本之後開始支持的針對深度學習卷積神經網絡模型的CUDA加速。這些內容都在OpenCV的擴展模塊中,想要獲取這OpenCV CUDA的支持,必須首先編譯OpenCV CUDA相關的模塊,這裡主要是開展模塊以CUDA開頭的那些。
  • 嵌入式開發套件可加速物聯網設計
    打開APP 嵌入式開發套件可加速物聯網設計 liz33969310 發表於 2020-05-13 10:50:56 近年來,隨著開發人員利用各種系統和協議的通信功能,將易於使用的經濟型開發平臺用於物聯網產品設計已豐富了市場。智能板-無論是基於微控制器或SoC的板,還是單板計算機-都可以實現具有成本效益的原型設計,並且是開發互連對象的基本步驟。物聯網嵌入式開發板的市場領域既有電子巨頭也有初創公司,其中一些是通過眾籌計劃籌集資金的。物聯網開發活動圍繞一系列主導技術進行融合。
  • 基於MySQL資料庫應用開發實現嵌入式數控系統的設計
    基於MySQL資料庫應用開發實現嵌入式數控系統的設計 鄔依林 , 黃瑛 發表於 2020-12-02 10:07:37 1 引言 本文所論述是數控系統大課題中人機互動的外圍部分子課題中的資料庫開發應用
  • Xilinx Zynq使用HLS實現OpenCV的開發流程
    Xilinx VivadoHLS高層次綜合工具能夠使用C/C++ 編寫的代碼直接創建RTL硬體,顯著提高設計生產力,同時,Xilinx Zynq全可編程SOC系列器件嵌入雙核ARM Cortex-A9處理器將軟體可編程能力與FPGA的硬體可編程能力實現完美結合,以低功耗和低成本等系統優勢實現單晶片無以倫比的系統性能、靈活性、可擴展性,加速圖形處理產品設計上市時間。
  • 嵌入式Linux系統開發入門基礎
    ,World程序 使用 make命令編譯程序 編寫帶有一個循環的程序 調試一個有問題的程序   4、嵌入式系統開發基礎嵌入式系統概述 交叉編譯 配置TFTP服務 配置NFS服務 下載Bootloader和內核 嵌入式Linux應用軟體開發流程熟悉嵌入式系統概念以及開發流程 建立嵌入式系統開發環境製作cross_gcc工具鏈 編譯並下載U-boot 編譯並下載Linux內核 編譯並下載Linux
  • FPGA進行開發嵌入式系統中用的幾個發展方向
    顧名思義,嵌入式系統指的是嵌入到系統內部的計算機系統,是面向特定應用設計的專用計算機系統。本文引用地址:http://www.eepw.com.cn/article/191575.htm  早期的嵌入式系統一般是以通用處理器或單片機為核心,在外圍電路中加入存儲器、功率驅動器、通信接口、顯示接口、人機輸入接口等外圍接口,再加上應用軟體,有些還加上了嵌入式作業系統,從而構成完整的系統。
  • 一文解析嵌入式系統的開發之路
    一文解析嵌入式系統的開發之路 Stephen Evanczuk 發表於 2021-01-01 10:41:00 就像任何開發領域一樣,嵌入式系統的開發就像大海一樣:深海洋流相對上較穩定,而看似平靜的海面下卻可能暗潮洶湧
  • 嵌入式開發中的三種程序構架|開發人員|嵌入式軟體|嵌入式開發|...
    前言在嵌入式軟體開發,包括單片機開發中,軟體架構對於開發人員是一個必須認真考慮的問題。軟體架構對於系統整體的穩定性和可靠性是非常重要的,一個合適的軟體架構不僅結構清晰,並且便於開發。我相信在嵌入式或單片機軟體開發的初期大多數開發者採用的都是簡單的前後臺順序執行架構(我就是這樣的)。
  • 4種常見的嵌入式開發系統
    其實現在身邊已經有很多運用到嵌入式開發的產品,大家也都慢慢習慣了嵌入式,那麼大家對於嵌入式系統可能還有些不知道的領域,所以,一起來了解下4種常見的嵌入式開發系統。
  • 藍鵬測控平臺嵌入式的系統開發
    什麼是嵌入式系統?嵌入式系統由硬體和軟體組成.是能夠獨立進行運作的器件。其軟體內容只包括軟體運行環境及其作業系統。硬體內容包括信號處理器、存儲器、通信模塊等在內的多方面的內容。嵌入式系統是以應用為中心,以現代計算機技術為基礎,能夠根據用戶需求(功能、可靠性、成本、體積、功耗、環境等)靈活裁剪軟硬體模塊的專用計算機系統。嵌入式系統的應用場合大多對可靠性、實時性有較高要求,這就決定了服務於特定應用的專用系統是嵌入式系統的主流模式,它並不強調系統的通用性和可擴展。
  • 「OpenCV入門教程一」安裝OpenCV+VS開發環境配置
    】->【高級(標籤)】->【環境變量】->「雙擊」系統變量中的PATH->在變量值裡面添加相應的路徑。…… opencv\build\x64\vc10\bin」,這樣,到時候才可以在編譯器Win32和X64中來回切換都吃得開,遊刃有餘~例如,淺墨的就是D:\Program Files\opencv\build\x64\vc10\bin;D:\Program Files\opencv\build\x86\vc10\bin PS:有童鞋親測說64位系統也只需添加
  • 物聯網開發筆記——嵌入式開發之Linux系統中C運算符
    了解熟悉工業自動化領域的,也開發過物聯網相關的產品。我的初衷是做工業物聯網的,但這個系統太過於龐大。所以就先做小的系統,例如構建一整套智能家居系統,從硬體到軟體全系列。下面就開始這套智能家居系統是如何在物聯網基礎上構建。在這裡你可以0開始,然後到1質變,僅僅需要一起跟我學物聯網系列的開發筆記的文章。
  • 如何學STM32 嵌入式系統開發詳細指導
    3、把軟體內核或應用文件系統等東西燒到嵌入式系統硬體平臺中的ROM中就實現了一個真正的「嵌入」。4、應用層,相對來講較為容易的,如果會在windows下如何進行編程接口函數調用,到作業系統下只是編譯和開發環 境有相應的變化而已。如果涉及Jave方面的編程也是如此的。嵌入式系統中涉及算法的由專業算法的人來處理的,不必歸結到嵌入式系統範疇內。
  • 嵌入式在物流機器人行業中的應用
    伴隨網絡技術、網格計算的發展,以嵌入式行動裝置為中心的「無所不在的計算」將成為現實。從用於生產加工的傳統工業機器人到豐富大眾生活的現代娛樂機器人,都與嵌入式密不可分。但我們常常說到的嵌入式基本是以微控制器為核心的軟體和硬體系統。
  • 嵌入式在物流機器人行業中的應用
    伴隨網絡技術、網格計算的發展,以嵌入式行動裝置為中心的「無所不在的計算」將成為現實。從用於生產加工的傳統工業機器人到豐富大眾生活的現代娛樂機器人,都與嵌入式密不可分。但我們常常說到的嵌入式基本是以微控制器為核心的軟體和硬體系統。