在技術(shù)發(fā)展的歷史上,技術(shù)先獨(dú)立發(fā)展再相互融合以改變世界的例子比比皆是。原子能和噴氣式發(fā)動(dòng)機(jī)的融合催生了核動(dòng)力航母,改變了20世紀(jì)大部分戰(zhàn)爭(zhēng)的形態(tài)。計(jì)算機(jī)和射頻通信的融合產(chǎn)生了智能手機(jī),同時(shí)也重新定義了我們與技術(shù)以及彼此之間的互動(dòng)方式。今天,嵌入式電子和人工智能(AI)的融合正日益成為下一個(gè)具有顛覆性的技術(shù)組合。接下來(lái)我們就看一下這種融合的發(fā)展演變。
歡迎來(lái)到網(wǎng)絡(luò)邊緣 人工智能的概念最早出現(xiàn)在古希臘人的著作中,但直到20世紀(jì)上半葉,才開始將其作為一種實(shí)際技術(shù)進(jìn)行開發(fā)。從根本上來(lái)說,人工智能讓數(shù)字技術(shù)仿佛人腦一樣,能夠與模擬世界高效而快速地互動(dòng)溝通。為了讓人工智能在現(xiàn)實(shí)世界獲得實(shí)際應(yīng)用,比如在自動(dòng)駕駛車輛中,那么在處理多個(gè)動(dòng)態(tài)輸入時(shí),電子設(shè)備和物理世界之間的交互必須接近瞬時(shí)完成。值得慶幸的是,隨著機(jī)器學(xué)習(xí)算法的發(fā)展,嵌入式電子系統(tǒng)也在不斷進(jìn)步。他們的聯(lián)姻催生出了邊緣計(jì)算的概念。
邊緣計(jì)算將過去只有云端強(qiáng)大處理硬件才具備的處理能力,帶給了位于物理-數(shù)字接口邊緣的本地設(shè)備。再加上MCU和傳感器等價(jià)格便宜而又性能強(qiáng)大的嵌入式組件的普及,最終在自動(dòng)化領(lǐng)域掀起了一場(chǎng)規(guī)模、功能都史無(wú)前例的革命。
TensorFlow Lite:基于微型硬件的大型機(jī)器學(xué)習(xí)算法
TensorFlow是Google主導(dǎo)開發(fā)的一套開源軟件庫(kù),使開發(fā)人員能夠輕松地將復(fù)雜的數(shù)值計(jì)算算法和機(jī)器學(xué)習(xí)(ML)集成到他們的項(xiàng)目中(圖1)。按照Google的說法,這些庫(kù)為Python(所有平臺(tái)上的Python 3.7+)和C語(yǔ)言提供穩(wěn)定的應(yīng)用程序編程接口(API)。此外,它們還為C++、Go、Java和JavaScript提供不保證向后兼容的API。針對(duì)Apple公司的Swift語(yǔ)言,它也提供了一個(gè)alpha版本。
TensorFlow為深度神經(jīng)網(wǎng)絡(luò)(DNN)的開發(fā)和利用提供了我們常說的端到端機(jī)器學(xué)習(xí)支持。DNN是機(jī)器學(xué)習(xí)的一種應(yīng)用類型,特別擅長(zhǎng)模式識(shí)別以及對(duì)象檢測(cè)與分類。TensorFlow庫(kù)支持機(jī)器學(xué)習(xí)過程的兩個(gè)階段,即訓(xùn)練和推斷。其中第一階段是深層神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,這需要大量算力,通常由服務(wù)器級(jí)硬件和圖形處理單元(GPU)提供。張量處理單元(TPU)則是最近開發(fā)的一種專用集成電路,用于支持這種訓(xùn)練。第二階段是推斷,即利用在現(xiàn)實(shí)世界中接受訓(xùn)練的DNN來(lái)回應(yīng)新的輸入:按照培訓(xùn)好的模型分析這些輸入,并根據(jù)分析結(jié)果提出建議。這應(yīng)該是嵌入式產(chǎn)品開發(fā)人員比較感興趣的階段。
適用于MCU的TensorFlow Lite(TensorFlow庫(kù)的一個(gè)子集)專門用于在內(nèi)存受限的設(shè)備上執(zhí)行推斷,大多數(shù)嵌入式系統(tǒng)應(yīng)用中都存在這種設(shè)備。它不允許您訓(xùn)練新的網(wǎng)絡(luò),那仍然需要更高端的硬件。
實(shí)用為王:ML應(yīng)用實(shí)例
在嵌入式系統(tǒng)上運(yùn)行人工智能算法的目標(biāo),就是要比傳統(tǒng)程序或面向?qū)ο蟮木幊谭椒ǜ咝У靥幚韨鞲衅魇占恼鎸?shí)世界數(shù)據(jù)。也許在大家的意識(shí)中,最常見的使用案例是從傳統(tǒng)汽車到具有自動(dòng)輔助功能(如車道偏離警報(bào)和防撞系統(tǒng))的汽車,再到無(wú)人駕駛汽車這個(gè)最終目標(biāo)的發(fā)展歷程。不過,深度學(xué)習(xí)還有其他一些不那么顯眼的用例,雖然你不知道,但已經(jīng)在使用了。智能手機(jī)中的語(yǔ)音識(shí)別或Amazon Alexa等虛擬助手均使用了深度學(xué)習(xí)算法。其他用例包括用于安防領(lǐng)域的面部檢測(cè)和/或背景替換、去除綠幕、遠(yuǎn)程會(huì)議軟件(如Zoom)等。
人工智能、神經(jīng)網(wǎng)絡(luò)和機(jī)器學(xué)習(xí)等術(shù)語(yǔ)有時(shí)候給人的印象就像科幻小說或行話。那么這些新興技術(shù)的現(xiàn)實(shí)意義何在?
使用AI,可以自動(dòng)監(jiān)測(cè)安全源來(lái)識(shí)別某些人
同時(shí)使用機(jī)器學(xué)習(xí)算法和聯(lián)網(wǎng)設(shè)備(如物聯(lián)網(wǎng)設(shè)備)帶來(lái)的一個(gè)巨大優(yōu)勢(shì)就是,隨著時(shí)間的推移,產(chǎn)品可以通過簡(jiǎn)單的OTA固件更新來(lái)集成新的或經(jīng)過更好訓(xùn)練的模型。這意味著產(chǎn)品可以逐漸變得更加智能,并且不局限于制造時(shí)能夠?qū)崿F(xiàn)的功能,只要新的模型和固件不超出硬件的物理內(nèi)存和處理能力即可。
圖3:將TensorFlow模型轉(zhuǎn)換為可在MCU等內(nèi)存受限設(shè)備上使用的版本。
(圖源:NXP)
工作流程 根據(jù)適用于MCU的TensorFlow Lite的說明文檔,開發(fā)人員的工作流程可以分為五個(gè)關(guān)鍵步驟(圖3),具體如下:
1、創(chuàng)建或獲取一個(gè)TensorFlow模型
該模型必須足夠小,以便在轉(zhuǎn)換后適合目標(biāo)設(shè)備,并且它只能使用支持的運(yùn)算。如果要使用當(dāng)前不支持的運(yùn)算,可以提供自定義實(shí)現(xiàn)。
2、將模型轉(zhuǎn)換為TensorFlow Lite FlatBuffer
使用TensorFlow Lite轉(zhuǎn)換器將模型轉(zhuǎn)換為標(biāo)準(zhǔn)TensorFlow Lite格式。您可能希望輸出一個(gè)量化模型,因?yàn)檫@種模型的尺寸更小,執(zhí)行效率更高。
3、將FlatBuffer轉(zhuǎn)換為C位數(shù)組
模型保存在只讀程序內(nèi)存中,并以簡(jiǎn)單的C文件形式提供??梢允褂脴?biāo)準(zhǔn)工具將FlatBuffer轉(zhuǎn)換為C位數(shù)組。
4/集成適用于MCU的TensorFlow Lite C++庫(kù)
編寫MCU代碼來(lái)收集數(shù)據(jù),使用C++庫(kù)執(zhí)行推斷,然后使用結(jié)果。
5、部署到設(shè)備
編寫程序并將其部署到您的設(shè)備。
選擇與TensorFlow Lite庫(kù)一起使用的兼容嵌入式平臺(tái)時(shí),開發(fā)人員應(yīng)注意以下幾點(diǎn):
基于32位架構(gòu)(如Arm Cortex-M處理器)和ESP32的系統(tǒng)。
它可以在內(nèi)存僅有數(shù)十KB的系統(tǒng)上運(yùn)行。
適用于MCU的TensorFlow Lite采用C++ 11編寫。
適用于MCU的TensorFlow Lite可作為Arduino庫(kù)提供。該框架還可以為其他開發(fā)環(huán)境(如Mbed)生成項(xiàng)目。
不需要操作系統(tǒng)支持、動(dòng)態(tài)內(nèi)存分配或任何C/C++標(biāo)準(zhǔn)庫(kù)。
后續(xù)步驟 Google提供四個(gè)預(yù)先訓(xùn)練的模型作為示例,可用于在嵌入式平臺(tái)上運(yùn)行。只需稍做修改,就能在各種開發(fā)板上使用。這些示例包括:
1、Hello World
演示使用適用于MCU的TensorFlow Lite的必備基礎(chǔ)知識(shí)。
2、Micro-Speech
用麥克風(fēng)捕捉音頻以檢測(cè)單詞“yes”和“no”。
用圖像傳感器捕捉攝像頭數(shù)據(jù),以檢測(cè)是否有人。
4、Magic Wand
捕獲加速度計(jì)數(shù)據(jù)以對(duì)三種不同的身體姿勢(shì)進(jìn)行分類。
編輯:hfy
-
mcu
+關(guān)注
關(guān)注
146文章
17718瀏覽量
358355 -
人工智能
+關(guān)注
關(guān)注
1804文章
48449瀏覽量
245062 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8481瀏覽量
133864 -
邊緣計(jì)算
+關(guān)注
關(guān)注
22文章
3231瀏覽量
50333 -
tensorflow
+關(guān)注
關(guān)注
13文章
330瀏覽量
60939
原文標(biāo)題:適用于MCU的TensorFlow Lite - 網(wǎng)絡(luò)邊緣的人工智能
文章出處:【微信號(hào):gh_0ef8449c3acb,微信公眾號(hào):SmartMcu】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
未來(lái)的人工智能技術(shù)趨勢(shì)是什么?
人工智能:超越炒作
人工智能AI-卷積神經(jīng)網(wǎng)絡(luò)LabVIEW之Yolov3+tensorflow深度學(xué)習(xí)有用嗎?
迅為RK3399開發(fā)板人工智能深度學(xué)習(xí)框架
Labview深度學(xué)習(xí)tensorflow人工智能目標(biāo)檢測(cè)-教學(xué)貼【連載】
路徑規(guī)劃用到的人工智能技術(shù)
人工智能芯片是人工智能發(fā)展的
微型微控制器與強(qiáng)大的人工智能(AI)世界有什么關(guān)系
基于RK3399ProD的人工智能開發(fā)板深度學(xué)習(xí)課程分享
什么是人工智能、機(jī)器學(xué)習(xí)、深度學(xué)習(xí)和自然語(yǔ)言處理?
嵌入式人工智能學(xué)習(xí)路線
《移動(dòng)終端人工智能技術(shù)與應(yīng)用開發(fā)》人工智能的發(fā)展與AI技術(shù)的進(jìn)步
《移動(dòng)終端人工智能技術(shù)與應(yīng)用開發(fā)》+理論學(xué)習(xí)
深度解析行業(yè)場(chǎng)景中的人工智能應(yīng)用
TensorFlow Lite for MCUs - 網(wǎng)絡(luò)邊緣的人工智能

評(píng)論