一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

MCU如何部署OpenCV

恩智浦MCU加油站 ? 來(lái)源:恩智浦MCU加油站 ? 作者:恩智浦MCU加油站 ? 2022-11-03 09:12 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文是一個(gè)小系列的第一篇,MCU部署OpenCV的“先跑篇”,稍后會(huì)陸續(xù)有“配置篇”、“實(shí)戰(zhàn)篇”、“進(jìn)階篇”、“優(yōu)化篇”,帶您牽手OpenCV,進(jìn)入OpenCV的廣闊世界。

說(shuō)到OpenCV,想必不用小編再多說(shuō)什么了吧,可謂是計(jì)算機(jī)視覺(jué)處理屆的扛把子選手。

對(duì)她仰慕已久

但凡是接觸過(guò)/親手把玩過(guò)數(shù)字圖像的朋友們,都或多或少的接受過(guò)OpenCV的輔佐吧。小到:圖像數(shù)據(jù)的打開(kāi)/保存、攝像頭數(shù)據(jù)的讀取,大到目標(biāo)識(shí)別,神經(jīng)網(wǎng)絡(luò)等,可以說(shuō),OpenCV就像是一個(gè)無(wú)所不能的存在。想做圖像開(kāi)發(fā)嗎?come on,OpenCV準(zhǔn)能大手一揮,委派手下將領(lǐng)來(lái)輔佐我們打下江山。

看到這里,相信大家已經(jīng)從字里行間感受到了,小編這無(wú)處安放的、快要溢出紙面的、滿滿的膜拜和敬仰之情了吧。沒(méi)錯(cuò),小編也正是OpenCV的受益者,當(dāng)你還在為如何打開(kāi)一張粉絲發(fā)過(guò)來(lái)的彩圖而一籌莫展之時(shí),OpenCV就會(huì)在遠(yuǎn)方呼喚:試試imread?圖片太小,看不清偶像的簽名?試試resize?是的,無(wú)所不能的OpenCV就是能隨時(shí)滿足我們的任何開(kāi)發(fā)需求,或者說(shuō)的稍顯專(zhuān)業(yè)范一點(diǎn):知道《數(shù)字圖像處理-岡薩雷斯》嗎?相信我,OpenCV里都有。

寫(xiě)到這兒,小編真想直接一個(gè)一鍵三連。

配得上她嗎?

就不再過(guò)多的感慨了,讓我們開(kāi)始下一部分,說(shuō)說(shuō)今天的主題。

相信大家也有注意到,即便OpenCV在PC端混的風(fēng)生水起,可是在我們的嵌入式平臺(tái)上,這里特指MCU平臺(tái)(同為嵌入式平臺(tái),隔壁MPU仗著DDR+強(qiáng)力A核已經(jīng)成功上船),可以說(shuō)是障礙重重。

首先第一個(gè)遇到的障礙是代碼空間,盡管OpenCV的功能強(qiáng)大,其代碼量也讓人心頭一驚。低頭翻翻芯片手冊(cè),看到那捉襟見(jiàn)肘的存儲(chǔ)容量,基本可以直接放棄跑OpenCV的想法了。

第二個(gè)大障礙則是算力,與PC機(jī)主頻上GHz的多核處理器相比,MCU的處理能力確實(shí)堪憂。

但是,自從出現(xiàn)了i.MX RT系列的MCU,讓人們看到了在嵌入式MCU的應(yīng)用環(huán)境中,借助OpenCV進(jìn)行圖像開(kāi)發(fā)的希望。

i.MX RT具有600MHz以上的主頻,讓運(yùn)行OpenCV成為可能。而其對(duì)外部存儲(chǔ)擴(kuò)展的支持,正好能夠解決代碼空間的問(wèn)題。i.MX RT系列為部署OpenCV提供了一個(gè)新的突破口。

還有第三大障礙,在MCU平臺(tái)上跑OpenCV沒(méi)有先例可循,想玩但感覺(jué)無(wú)從下手。

那么,下面小編就來(lái)引領(lǐng)大家開(kāi)始OpenCV的另一種玩兒法,在MCU平臺(tái)上進(jìn)行部署,所選用的平臺(tái)是擁有高達(dá)1GHz主頻的,我們的i.MX RT1170系列MCU,她擁有最大2MB的內(nèi)部RAM,和外擴(kuò)的QSPI Flash用于代碼存儲(chǔ),以及外擴(kuò)的SDRAM用于龐大的數(shù)據(jù)存儲(chǔ)。

好好地端詳

開(kāi)始把玩之前,先來(lái)正式介紹一下這次的主角,大名鼎鼎的OpenCV項(xiàng)目。

OpenCV(開(kāi)源計(jì)算機(jī)視覺(jué)庫(kù):http://OpenCV.org)是一個(gè)包含數(shù)百種計(jì)算機(jī)視覺(jué)算法的開(kāi)源庫(kù)。沒(méi)錯(cuò), OpenCV是開(kāi)源的,不收費(fèi)喲,太良心。

OpenCV具有模塊化結(jié)構(gòu),這意味著其包括多個(gè)共享或靜態(tài)庫(kù)。例如:核心功能、圖像處理、視頻分析、相機(jī)校準(zhǔn)和3D重建(calib3d)、2D功能框架(features2D)、對(duì)象檢測(cè)(objdetect)、高級(jí)GUI(highgui)、視頻I/O(Video)??梢哉f(shuō),涵蓋了幾乎所有的數(shù)字圖像處理領(lǐng)域。

牽手前的準(zhǔn)備

認(rèn)識(shí)了我們的主角,下面我們來(lái)看看移植上可能會(huì)遇到的問(wèn)題,當(dāng)然上文所述,算力和代碼大小的問(wèn)題也要考慮到:

編譯方式/最終呈現(xiàn)方式:這個(gè)主要是涉及到我們最終如何使用OpenCV代碼,是源碼嵌入還是用靜態(tài)鏈接庫(kù)的形式。
小編這里直接選擇編譯成靜態(tài)鏈接庫(kù),這樣就不用每次都集成源碼到工程中,更加方便。
不過(guò),有一個(gè)問(wèn)題要注意,因?yàn)镺penCV代碼主體是C++編寫(xiě)的,受編譯器版本影響,可能會(huì)導(dǎo)致編譯出來(lái)的靜態(tài)鏈接庫(kù)并不兼容當(dāng)前工程。
因此,要注意,編譯器的版本要保證一致,切記??!

編譯工具鏈:在PC上,一般是選用GCC / visual studio(分別對(duì)應(yīng)linux和windows平臺(tái))進(jìn)行代碼編譯,到了嵌入式平臺(tái),要注意使用對(duì)應(yīng)的嵌入式開(kāi)發(fā)工具鏈,小編這里推薦arm-none-eabi-gcc以及ARMCland(Keil)。
可能有朋友要問(wèn)了啊,IAR呢?別問(wèn),問(wèn)就是小編用Keil比較熟悉,手動(dòng)捂臉。。。。

頭文件和數(shù)據(jù)類(lèi)型問(wèn)題:不同的工具鏈的頭文件組織/構(gòu)成方式不同,換句話說(shuō),有些頭文件,GCC有而ARMCLang可能沒(méi)有,需要特殊考慮。
而數(shù)據(jù)類(lèi)型問(wèn)題主要體現(xiàn)在不同編譯器,對(duì)于使用typedef重定義的整數(shù)類(lèi)型的解釋方式。

代碼大小和算力:這里小編沒(méi)有進(jìn)行特殊的代碼級(jí)優(yōu)化,完完全全的放手讓編譯器幫我們?nèi)プ隽?,例如使用GCC的-o3,ARMCLand的-oszie / -ofast等

操作系統(tǒng)支持:因?yàn)镺penCV的一些代碼是要依賴(lài)于OS的,例如多進(jìn)程 / 進(jìn)程通信等,而我們的MCU平臺(tái)盡管也支持OS。
但是一般都是多線程O(píng)S,不太能滿足OpenCV的要求。當(dāng)然,除了多進(jìn)程這一點(diǎn),我們的MCU平臺(tái)還是可以勝任的。
針對(duì)這一點(diǎn),就沒(méi)啥可說(shuō)的了,簡(jiǎn)單粗暴一點(diǎn):直接disable掉這些模塊。

配置工具適配:因?yàn)槲覀冞@里不使用VS進(jìn)行代碼管理,而OpenCV可以基于CMake進(jìn)行工程管理并借助Make進(jìn)行代碼編譯。
那么針對(duì)不同的開(kāi)發(fā)端OS,Linux / Windows,需要安裝對(duì)應(yīng)版本的CMake + Make工具。

憧憬與遐想

隨著人工智能技術(shù)的普及,人們期待在MCU平臺(tái)上能進(jìn)行更加復(fù)雜的圖像處理,成熟的OpenCV自然而然地引起了我們的高度關(guān)注。

但是由于前面提到的那些障礙以及對(duì)操作系統(tǒng)的依賴(lài),在MCU上跑OpenCV能夠做到什么程度,還是需要不斷地挖掘和探索。

從我們目前工作的情況看,可以說(shuō)一些基礎(chǔ)的圖像操作:resize、rotate、邊緣提取以及基本的濾波算法等,完全沒(méi)問(wèn)題。小編也將在后面的系列中為大家一一揭密。

當(dāng)然,OpenCV+MCU仍然是一個(gè)全新的領(lǐng)地,具體能做到什么,還要大家發(fā)揮想象力,讓OpenCV能夠在MCU平臺(tái)上開(kāi)出絢爛的花朵!

限于篇幅,本期小編就和大家聊到這兒,下期將為大家詳細(xì)介紹如何進(jìn)行工具鏈的安裝,以及如何對(duì)OpenCV源碼進(jìn)行配置的具體方法。

審核編輯:彭靜
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17981

    瀏覽量

    366846
  • 計(jì)算機(jī)視覺(jué)

    關(guān)注

    9

    文章

    1709

    瀏覽量

    46777
  • OpenCV
    +關(guān)注

    關(guān)注

    32

    文章

    642

    瀏覽量

    42889

原文標(biāo)題:這個(gè)秋天,OpenCV和MCU更配喲

文章出處:【微信號(hào):NXP_SMART_HARDWARE,微信公眾號(hào):恩智浦MCU加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    【Milk-V Duo S 開(kāi)發(fā)板免費(fèi)體驗(yàn)】SDK編譯、人臉檢測(cè)、OpenCV測(cè)試

    【Milk-V Duo S 開(kāi)發(fā)板免費(fèi)體驗(yàn)】SDK編譯、人臉檢測(cè)、OpenCV測(cè)試 本文介紹了 Milk-V Duo S 開(kāi)發(fā)板實(shí)現(xiàn) Buildroot SDK 鏡像編譯、基于 TDL 模型的人
    發(fā)表于 07-11 13:48

    編譯opencv_camera_test找不到opencv.hpp怎么解決?

    1.取消makefile中的注釋 2.在k230_sdk目錄下進(jìn)入docker環(huán)境后使用make mpp-apps編譯 期待結(jié)果和實(shí)際結(jié)果 期待得到opencv_camera_test.elf文件
    發(fā)表于 06-23 06:14

    #工作原理大揭秘 #單片機(jī) #電路原理 #MCU#mcu程序開(kāi)發(fā)

    mcu
    宇凡微電子
    發(fā)布于 :2025年06月19日 19:02:28

    如何在k230上運(yùn)行OpenCV的代碼?

    如何在k230上運(yùn)行OpenCV的代碼
    發(fā)表于 06-17 06:06

    快速部署!米爾全志T527開(kāi)發(fā)板的OpenCV行人檢測(cè)方案指南

    本文將介紹基于米爾電子MYD-LT527開(kāi)發(fā)板(米爾基于全志T527開(kāi)發(fā)板)的OpenCV行人檢測(cè)方案測(cè)試。摘自?xún)?yōu)秀創(chuàng)作者-小火苗 一、軟件環(huán)境安裝1.在全志T527開(kāi)發(fā)板安裝OpenCV
    發(fā)表于 04-11 18:14

    為L(zhǎng)SDK構(gòu)建opencv時(shí)遇到的問(wèn)題求解

    我正在嘗試使用 flex-builder 來(lái)運(yùn)行 bld -c opencv -r ubuntu:桌面 我想要最新版本的 OpenCV。在我的 sdk.yml 文件中,我將 opencv
    發(fā)表于 03-26 08:26

    如何部署OpenVINO?工具套件應(yīng)用程序?

    編寫(xiě)代碼并測(cè)試 OpenVINO? 工具套件應(yīng)用程序后,必須將應(yīng)用程序安裝或部署到生產(chǎn)環(huán)境中的目標(biāo)設(shè)備。 OpenVINO?部署管理器指南包含有關(guān)如何輕松使用部署管理器將應(yīng)用程序打包并部署
    發(fā)表于 03-06 08:23

    是否可以使用OpenVINO?部署管理器在部署機(jī)器上運(yùn)行Python應(yīng)用程序?

    使用 OpenVINO?部署管理器創(chuàng)建運(yùn)行時(shí)軟件包。 將運(yùn)行時(shí)包轉(zhuǎn)移到部署機(jī)器中。 無(wú)法確定是否可以在部署機(jī)器上運(yùn)行 Python 應(yīng)用程序,而無(wú)需安裝OpenVINO? Toolkit 和 Python。
    發(fā)表于 03-05 08:16

    使用OpenCV保存從攝像頭捕獲的視頻時(shí)更改顏色輸出視頻收到警告怎么解決?

    保存了從配備 OpenCV* 的攝像頭捕獲的視頻。 生成更改的顏色輸出視頻。 收到警告:[ INFO:0] global .。/opencv/modules/core/src/utils
    發(fā)表于 03-05 07:20

    AI模型部署邊緣設(shè)備的奇妙之旅:如何在邊緣端部署OpenCV

    1 簡(jiǎn)介 Opencv(Open Source Computer Vision Library)是一個(gè)基于開(kāi)源發(fā)行的跨平臺(tái)計(jì)算機(jī)視覺(jué)庫(kù),它實(shí)現(xiàn)了圖像處理和計(jì)算機(jī)視覺(jué)方面的很多通用算法,已成為計(jì)算機(jī)
    發(fā)表于 12-14 09:31

    AI模型部署邊緣設(shè)備的奇妙之旅:如何在邊緣端部署OpenCV

    1簡(jiǎn)介Opencv(OpenSourceComputerVisionLibrary)是一個(gè)基于開(kāi)源發(fā)行的跨平臺(tái)計(jì)算機(jī)視覺(jué)庫(kù),它實(shí)現(xiàn)了圖像處理和計(jì)算機(jī)視覺(jué)方面的很多通用算法,已成為計(jì)算機(jī)視覺(jué)領(lǐng)域最有
    的頭像 發(fā)表于 12-14 09:10 ?898次閱讀
    AI模型<b class='flag-5'>部署</b>邊緣設(shè)備的奇妙之旅:如何在邊緣端<b class='flag-5'>部署</b><b class='flag-5'>OpenCV</b>

    RK3568 + OpenCV 會(huì)碰撞出什么火花?案例詳解:2-1 基于OpenCV的畫(huà)線實(shí)驗(yàn)

    一、實(shí)驗(yàn)?zāi)康?本節(jié)視頻的目的是了解OpenCV的作用并通過(guò)OpenCV實(shí)現(xiàn)畫(huà)線。 二、實(shí)驗(yàn)原理 OpenCV 開(kāi)放源代碼計(jì)算機(jī)視覺(jué)庫(kù) OpenCV(Open source Comput
    發(fā)表于 12-03 14:09

    國(guó)產(chǎn)MCU扎堆平替STM32的原因

    mcu
    芯廣場(chǎng)
    發(fā)布于 :2024年11月11日 17:00:28

    【龍芯2K0300蜂鳥(niǎo)板試用】5 搭建opencv開(kāi)發(fā)環(huán)境

    在官方提供的buildroot根文件系統(tǒng)中,不支持opencv庫(kù),故需要自己增加,另外,在本地編譯的時(shí)候,需要在本地(ubuntu)上安裝對(duì)應(yīng)opencv庫(kù),這樣才能將編譯好的鏡像放到板子上跑起來(lái)
    發(fā)表于 08-27 15:08