您好(hǎo),上海喬嶺儀器儀表有限公司官方指定産品銷售網歡迎您!

公司簡介|聯系我們|

上海喬嶺儀器儀表有限公司

上海喬嶺儀器儀表有限公司銷售熱(rè)線:

021-56529532021-56358670

您是(shì)否在找:上海喬嶺儀器儀表有限公司|
上海喬嶺儀器儀表有限公司

在嵌入式IoT節點中運行(xíng)機(jī)器(qì)學習(xí)代碼以輕松識别對(duì)象

發表時(shí)間(jiān):2022-12-05 10:30:41小(xiǎo)大(dà)

 在動态環境中運行(xíng)的(de)物(wù)聯網(IoT)網絡已從(cóng)對(duì)象檢¶測擴展到(dào)了(le)在 性,環境監控, 性和(hé)工(gōng)業(yè)物(wù)聯網(IIoT)等應用(yòng)程序中包≈括可(kě)視(shì)對(duì)象識别。由于對(duì)象識别是(shì)自(zì)适應的(de),并且涉及使用(yòng)機(jī)器(qì♣)學習(xí)(ML)模型,因此這(zhè)是(shì)一(yī)個(gè)複雜(zá)的(de)領域,可(kě)能(néng)很(h£ěn)難從(cóng)頭開(kāi)始學習(xí)并難以有(yǒu)效實施。

困難源于一(yī)個(gè)事(shì)實,即ML模型僅與其數(shù)據集一(yī)樣好(hǎo),并且一(yī)旦獲取了(le)正确的(de♦)數(shù)據,就(jiù)必須對(duì)該系統進行(xíng)适當的(de)培訓以使其起作(zuò)用≠(yòng),以使其實用(yòng)。

本文将向開(kāi)發人(rén)員(yuán)展示如(rú)何将Google的(de)TensorFlow Lite for Mi​crocontrollers ML模型實現(xiàn)到(dào)Microchip Technology微(wēi)控制(zhì)器(qì)中。然後,它将說(shuō)明(m₩íng)如(rú)何在TensorFlow Lite中使用(yòng)圖像分(fēn)類和(hé)對(duì)象檢測學習(xí)數±(shù)據集,以很(hěn)少(shǎo)的(de)自(zì)定義編碼輕松識别對(duì)象。

然後,它将引入Adafruit Industries的(de)TensorFlow Lite ML入門¥(mén)套件(jiàn),該套件(jiàn)可(kě)使開(kāi)發人(rén)員(yuán)熟悉ML的(de)基礎知(zεhī)識。

嵌入式視(shì)覺系統的(de)ML

廣義上(shàng)講,ML為(wèi)計(jì)算(suàn)機(jī)或嵌入式系統提供了(le)類似于人(ré n)的(de)模式識别功能(néng)。從(cóng)人(rén)類感覺的(de)角度來(lái)看(kàn),這(zhè)意味著(zhe)使用(↕yòng)諸如(rú)麥克風(fēng)和(hé)攝像機(jī)之類的(de)傳感器(qì)來(lái)模仿人( rén)類對(duì)聽(tīng)覺和(hé)視(shì)覺的(de)感覺感知(zhī)。盡管傳感器(qì)很(hěn)容易用(yòng)于捕獲音(y'īn)頻(pín)和(hé)視(shì)頻(pín)數(shù)據,但(dàn)是(shì)一(yī)旦将數(shù)據數(shù)字化(huà)并存儲起來(l'ái),就(jiù)必須對(duì)其進行(xíng)處理(lǐ),以便可(kě)以與代表已知(zhī)聲音(yīn)或對(duì)象的(de)存儲模式進'行(xíng)匹配。挑戰在于,例如(rú),攝像機(jī)為(wèi)視(shì)覺對(duì)象捕獲的(de)圖像數(shù)據将與對(duì)§象內(nèi)存中存儲的(de)數(shù)據不(bù)完全匹配。需要(yào)在視(shì)覺上(shàng)識别對(duì)象的 (de)ML應用(yòng)程序必須處理(lǐ)數(shù)據,以便它可(kě)以準确有(yǒu)效地(dì)将相(xiàn'g)機(jī)捕獲的(de)圖案與存儲在內(nèi)存中的(de)圖案進行(xíng)匹配。

有(yǒu)不(bù)同的(de)庫或引擎用(yòng)于匹配傳感器(qì)捕獲的(de)數(shù)據。TensorFlow是(shì)一(yī)個(gè)用(yòng)÷于匹配模式的(de)開(kāi)源代碼庫。TensorFlow Lite for Microcontrollers代碼庫專為(wèi)在微(wēi)控制(zhì)器(qì)上(shàng)運行​(xíng)而設計(jì),因此減少(shǎo)了(le)內(nèi)存和(hé)CPU要(yào)求以在更有(y ǒu)限的(de)硬件(jiàn)上(shàng)運行(xíng)。具體(tǐ)來(lái)說(shuō),它需要(yào)一(yī)個(gè)32位≈微(wēi)控制(zhì)器(qì),并使用(yòng)少(shǎo)于25 KB的(de)閃存。

但(dàn)是(shì),雖然TensorFlow Lite for Microcontrollers是(sσhì)ML引擎,但(dàn)系統仍需要(yào)學習(xí)要(yào)識别的(de)模式的(de)數(shùγ)據集。不(bù)管ML引擎有(yǒu)多(duō)好(hǎo),該系統僅與其學習(xí)數(shù)據集一(yī)樣好(hǎo),對(d"uì)于視(shì)覺對(duì)象,某些(xiē)學習(xí)數(shù)據集對(duì)于許多(duō)大(dà)型®模型可(kě)能(néng)需要(yào)數(shù)GB的(de)數(shù)據。更多(duō)數(shù)據需要(yào)更高(gδāo)的(de)CPU性能(néng)才能(néng)快(kuài)速找到(dào)準确的(de)匹配項,這(zhè)就(jiù)是(shì)為(wèi)什(shén)麽這(zhè)些(✘xiē)類型的(de)應用(yòng)程序通(tōng)常可(kě)以在功能(néng)強大(dà)的(de)計(jì)算(suàn)機(jī)或高(gāo)端筆(bǐ)記本電(diàn)腦(nβǎo)上(shàng)運行(xíng)的(de)原因。

對(duì)于嵌入式系統應用(yòng)程序,僅應将應用(yòng)程序必需的(de)那(nà)些(xiē)特定模型 存儲在學習(xí)數(shù)據集中。如(rú)果系統應該識别工(gōng)具和(hé)硬件(jiàn),則可(kě)以删除代表水(φshuǐ)果和(hé)玩(wán)具的(de)模型。這(zhè)減小(xiǎo)了(le)學習(xí)數(shù)據集的(de)₽大(dà)小(xiǎo),從(cóng)而降低(dī)了(le)嵌入式系統的(de)內(nèi)存需求,從(cóng)而在降低(dī)成本的(de)同時(shí)提高(gāo)了(l©e)性能(néng)。

ML微(wēi)控制(zhì)器(qì)

為(wèi)了(le)運行(xíng)用(yòng)于微(wēi)處理(lǐ)器(qì)的(de)TensorFlow Lite,Mic±rochip Technology的(de)目标是(shì)使用(yòng)基于Arm®Cortex®♦;-M4F的(de)ATSAMD51J19A-AFT微(wēi)控制(zhì)器(qì)在微(wēi)控制(zhì)器(qì)中進÷行(xíng)機(jī)器(qì)學習(xí)(圖1)。它具有(yǒu)512 KB的(de)閃存和(hé)192 KB的(de)SRAM存儲器(qì),并以1α20兆赫(MHz)的(de)速度運行(xíng)。ATSAMD51J19A-AFT是(shì)Microchip Technology ATSAMD51  ML♥微(wēi)控制(zhì)器(qì)系列的(de)一(yī)部分(fēn)。它符合汽車(chē)AEC-Q100 1級質量标準,并在-40°C至+ 125°C的(de)溫度範圍內(♥nèi)運行(xíng),使其适用(yòng)于很(hěn)苛刻的(de)IoT和(hé)IIoT環境。它是(shì)一(yī)種低(dī)壓微(wēi)控制(zhì)器(qì),↕在120 MHz下(xià)運行(xíng)時(shí)的(de)工(gōng)作(zuò)電(diàn)壓為(wèi)1.71至3.63伏♠。

ATSAMD51J19A聯網選項包括用(yòng)于工(gōng)業(yè)聯網的(de)CAN 2.0B和(hé)用(yòng)于大(dà)多(duō)數(shù)有(yǒu)線網絡≈的(de)10/100以太網。這(zhè)使微(wēi)控制(zhì)器(qì)可(kě)以在各種IoT網絡上(shàn✘g)運行(xíng)。USB 2.0接口支持主機(jī)和(hé)設備操作(zuò)模式,可(kě)用(yòng)于設備調試或系統聯網。

處理(lǐ)ML代碼時(shí),4 KB的(de)組合指令和(hé)數(shù)據緩存可(kě)提高(gāo)性能(néng)。浮點單元(FPU)對(duì)于改善ML代™碼的(de)性能(néng)以及處理(lǐ)原始傳感器(qì)數(shù)據也(yě)很(hěn)有(yǒu☆)用(yòng)。

存儲學習(xí)數(shù)據集

ATSAMD51J19A還(hái)具有(yǒu)用(yòng)于外(wài)部程序或數(shù)據存儲器(qì)存儲的₩(de)QSPI接口。對(duì)于超出芯片上(shàng)閃存容量的(de)學習(xí)數(shù)據集的(de)額外(wβài)數(shù)據存儲,這(zhè)很(hěn)有(yǒu)用(yòng)。QSPI還(hái)具有(yǒu)就(jiù)地(dì)執行(xíng)(XiP)支持,用(yòng)于外(wàεi)部高(gāo)速程序存儲器(qì)擴展。

ATSAMD51J19A還(hái)具有(yǒu)SD / MMC存儲卡主機(jī)控制(zhì)器(qì)(SDHC),對(duì)于ML應用(yòng)非常有♦(yǒu)用(yòng),因為(wèi)它可(kě)以輕松地(dì)交換ML代碼和(hé)學習(xí)數(shù>)據集。TensorFlow Lite for Microcontrollers引擎可(kě)以在ATSAMD51J19A的(d​e)512 KB閃存中運行(xíng),而學習(xí)數(shù)據集則可(kě)以定期進行(xíng)升級和(hé) 改進。學習(xí)數(shù)據集可(kě)以存儲在外(wài)部QSPI閃存或QSPI EEPROM中,并且可(kě)以根據網絡配置通(tōng)過網絡進行(xíng)遠(&yuǎn)程升級。但(dàn)是(shì),對(duì)于某些(xiē)系統,将存儲卡與另一(yī)個(gè)具有(y±ǒu)改進的(de)學習(xí)數(shù)據集的(de)存儲卡進行(xíng)物(wù)理(lǐ)交換會(huì)更方便。在此配置中,開(kāi)發人(rén)員±(yuán)需要(yào)确定是(shì)否應将系統設計(jì)為(wèi)熱(rè)交換存儲卡,或者是(shì)否需要(yào)關閉 IoT節點。

如(rú)果IoT節點受到(dào)空(kōng)間(jiān)的(de)限制(zhì),那(nà)麽很(hěn)好(hǎo)使用(yòng)盡可(kě)能(♥néng)多(duō)的(de)應用(yòng)程序放(fàng)入微(wēi)控制(zhì)器(qì)存←儲器(qì)中,而不(bù)是(shì)使用(yòng)外(wài)部存儲器(qì)。Microchip Technology的(de)ATSAMD51J20A-AFT©與ATSAMD51J19A相(xiàng)似,并且引腳兼容,不(bù)同之處在于它具有(yǒu)1 MB的(de)閃存和(hé)256 KB的(de)SRAM,從(cóng)而為(wèi)學₹習(xí)數(shù)據集提供了(le)更多(duō)的(de)片上(shàng)存儲空(kōng)間(jiān)。 

使用(yòng)TensorFlow Lite開(kāi)發微(wēi)控制(zhì)器(qì)

Adafruit Industries利用(yòng)4317 TensorFlow Lite for Microcontrollers開(kāi)發$套件(jiàn)支持ATSAMD51J19A的(de)開(kāi)發(圖2)。該評估闆具有(yǒu)2 MB的(de)QSPI閃存,可(kě)用(yòng)于存儲學習(xí')數(shù)據集。該套件(jiàn)帶有(yǒu)用(yòng)于ML音(yīn)頻(pín)識别的(d>e)麥克風(fēng)插孔。它的(de)1.8英寸彩色160 x 128 TFT LCD可(kě)用(yòng)于開(kāi)發和(hé)調試。當TensorFlowε Lite for Microcontrollers與語音(yīn)識别學習(xí)數(shù)據集一(yī)起使用(yòng)時(shí),該顯示器(qì)還(hái)可(kě)用(yòng)©于語音(yīn)識别演示。當應用(yòng)程序識别不(bù)同的(de)單詞時(shí),它們可(kě)以顯示在屏幕上(shàng)。

Adafruit Industries套件(jiàn)還(hái)具有(yǒu)八個(gè)按鈕,一(yī)個(gè)三♣軸加速度計(jì),一(yī)個(gè)光(guāng)傳感器(qì),一(yī)個(gè)微(wēi)型揚聲器(qì)和(hé)一(yī)個(gè)锂聚合物(wù)電(≥diàn)池。ATSAMD51J19A的(de)USB 2.0端口被引到(dào)用(yòng)于電(diàn)池充電(diàn),調試和(hé)編程的(de)連接器(qì)。

Adafruit套件(jiàn)随附了(le)适用(yòng)于微(wēi)控制(zhì)器(qì)的(de)✘TensorFlow Lite的(de)很(hěn)新版本。可(kě)以使用(yòng)USB端口将學習(xí)數(shù)據集加載到(dào)AT​SAMD51J19A微(wēi)控制(zhì)器(qì)的(de)512 KB閃存中,或加載到(dào)外(wài)部2 MΩB QSPI存儲器(qì)中。

為(wèi)了(le)進行(xíng)圖像識别評估,可(kě)以将TensorFlow對(duì)象檢測學習(xí)集加載到(™dào)開(kāi)發闆上(shàng)。開(kāi)發闆具有(yǒu)用(yòng)于連接微(wēi)控制(zhì)器(qì)的(de)并行(xíng)和(hé)串行(xíng)端口的(de↕)端口,其中許多(duō)端口可(kě)用(yòng)于連接外(wài)部攝像機(jī)。将對(duì)象檢測學習(xí)設置加載到(dào)♠微(wēi)控制(zhì)器(qì)上(shàng)後,LCD可(kě)以用(yòng)于顯示對(duì)象檢測ML處理(lǐ)結果的(de)輸出,因此,如(rú)果識别出香蕉,則TFT顯示 屏可(kě)能(néng)會(huì)顯示識别出的(de)對(duì)象以及百分(fēn)比置信度。結果顯示示例可(kě)能(néng)顯示為(wèi):

香蕉:95%

扳手:12%

眼鏡:8%

梳子(zǐ):2%

對(duì)于物(wù)聯網對(duì)象檢測應用(yòng)程序的(de)開(kāi)發,這(zhè☆)可(kě)以加快(kuài)開(kāi)發速度并幫助診斷任何不(bù)正确的(de)檢測結果。

結論

ML是(shì)一(yī)個(gè)不(bù)斷擴展的(de)領域,需要(yào)專門(mén)技(jì)能(néng)才能(néng)從(cóng)頭開(kāi)發微(wēi)控制(zhì)器(↓qì)和(hé)模型,并在邊緣高(gāo)效地(dì)實現(xiàn)它們。但(dàn)是(shì),在低(dī)成本,高(gāo)效的(®de)微(wēi)控制(zhì)器(qì)或開(kāi)發闆上(shàng)使用(yòng)現(xiàn)有(yǒu)£的(de)代碼庫(例如(rú)TensorFlow Lite for Microcontrollers£)可(kě)節省時(shí)間(jiān)和(hé)金(jīn)錢(qián),從(cóng)而産生(shαēng)了(le)可(kě)用(yòng)于快(kuài)速檢測IoT節點中對(duì)象的(de)高(gāo)性能(néng)ML系統,可(kě)靠,高(gāo)效。


熱(rè)門(mén)産品