資料介紹
描述
我們越來越多地面臨著人工智能 (AI) 革命,正如 Gartner 所說,Edge AI具有非常高的影響潛力,而且現(xiàn)在是這樣!
在新興技術(shù)的“靶心”中,雷達(dá)就是Edge Computer Vision ,而當(dāng)我們談到Machine Learning (ML)應(yīng)用于視覺時(shí),首先想到的就是Image Classification ,一種ML的“Hello World” “!
Seeed Studio 發(fā)布了一款經(jīng)濟(jì)實(shí)惠的新型開發(fā)板XIAO ESP32S3 Sense ,它集成了攝像頭傳感器、數(shù)字麥克風(fēng)和 SD 卡支持。該開發(fā)板結(jié)合了嵌入式 ML 計(jì)算能力和攝影能力,是開始使用 TinyML(智能語音和視覺 AI)的絕佳工具。
XIAO ESP32S3 Sense 主要特點(diǎn)
- 強(qiáng)大的 MCU 板:集成 ESP32S3 32 位雙核 Xtensa 處理器芯片,運(yùn)行頻率高達(dá) 240 MHz,安裝多個(gè)開發(fā)端口,支持 Arduino / MicroPython
- 高級功能:1600*1200分辨率的可拆卸OV2640攝像頭傳感器,兼容OV5640攝像頭傳感器,集成一個(gè)額外的數(shù)字麥克風(fēng)
- 精心設(shè)計(jì)的電源設(shè)計(jì):鋰電池充電管理能力提供四種功耗模式,允許深度睡眠模式,功耗低至14μA
- 大內(nèi)存,更多可能性:提供 8MB PSRAM 和 8MB 閃存,支持 SD 卡插槽,用于外部 32GB FAT 內(nèi)存
- 出色的射頻性能:支持2.4GHz Wi-Fi和BLE雙無線通信,連接U.FL天線支持100m+遠(yuǎn)程通信
- 拇指大小的緊湊型設(shè)計(jì):21 x 17.5mm,采用 XIAO 的經(jīng)典外形,適用于可穿戴設(shè)備等空間有限的項(xiàng)目
以下是通用板引出線:
更多詳情請參考Seeed Studio WiKi頁面:https://wiki.seeedstudio.com/xiao_esp32s3_getting_started/
在 Arduino IDE 上安裝 XIAO ESP32S3 Sense
在 Arduino IDE 上,導(dǎo)航到File > Preferences ,然后填寫 URL:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_dev_index.json
在現(xiàn)場 ==>其他 Boards Manager URL
接下來,打開板管理器。轉(zhuǎn)到Tools > Board > Boards Manager...并輸入esp32。選擇并安裝最新的軟件包:
在Tools上,選擇 Board ( XIAO ESP32S3 ):
最后但同樣重要的是,選擇連接 ESP32S3 的端口。
這就對了!設(shè)備應(yīng)該沒問題。讓我們做一些測試。
使用 BLINK 測試電路板
XIAO ESP32S3 Sense 有一個(gè)連接到 GPIO21 的內(nèi)置 LED。因此,您可以按原樣運(yùn)行閃爍草圖(使用LED_BUILTIN
Arduino 常量)或相應(yīng)地更改閃爍草圖:
#define LED_BUILT_IN 21
void setup() {
pinMode(LED_BUILT_IN, OUTPUT); // Set the pin as output
}
// Remember that the pin work with inverted logic
// LOW to Turn on and HIGH to turn off
void loop() {
digitalWrite(LED_BUILT_IN, LOW); //Turn on
delay (1000); //Wait 1 sec
digitalWrite(LED_BUILT_IN, HIGH); //Turn off
delay (1000); //Wait 1 sec
}
請注意,引腳與反邏輯一起工作:LOW 開啟,HIGH 關(guān)閉
連接Sense模塊(擴(kuò)展板)
購買時(shí),擴(kuò)展板與主板分離,但安裝擴(kuò)展板非常簡單。需要將擴(kuò)展??板上的連接器對準(zhǔn)XIAO ESP32S3上的B2B連接器,用力按壓,聽到“咔噠”一聲即表示安裝完成。
如介紹中所述,擴(kuò)展板或設(shè)備的“感知”部分具有一個(gè) 1600x1200 OV2640 攝像頭、一個(gè) SD 卡插槽和一個(gè)數(shù)字麥克風(fēng)。
麥克風(fēng)測試
讓我們從聲音檢測開始。轉(zhuǎn)到GitHub 項(xiàng)目并下載草圖:XIAOEsp2s3_Mic_Test并在 Arduino IDE 上運(yùn)行它:
發(fā)出聲音時(shí),您可以在串行繪圖儀上進(jìn)行驗(yàn)證。
將錄制的聲音(.wav 音頻文件)保存到 microSD 卡。
現(xiàn)在讓我們使用板載 SD 卡讀卡器來保存 .wav 音頻文件。為此,我們需要修復(fù) XIAO PSRAM。
ESP32-S3 在 MCU 芯片上只有幾百 KB 的內(nèi)部 RAM。對于某些用途,ESP32-S3 可以使用與 SPI 閃存芯片并聯(lián)的最多 16 MB 的外部 PSRAM(偽靜態(tài) RAM)可能不夠。外部存儲器包含在存儲器映射中,并且在某些限制下,可以像內(nèi)部數(shù)據(jù) RAM 一樣使用。
首先,如下圖所示將 SD 卡插入 XIAO(SD 卡應(yīng)格式化為FAT32 )。
- 下載草圖Wav_Record ,您可以在 GitHub 上找到它。
- 執(zhí)行代碼(Wav Record)需要用到ESP-32芯片的PSRAM功能,所以上傳前先開啟:Tools>PSRAM: "OPI PSRAM">OPI PSRAM
-
運(yùn)行代碼
Wav_Record.ino
- 該程序僅在用戶打開串口監(jiān)視器后執(zhí)行一次,錄音 20 秒并將錄音文件保存到 microSD 卡中,名為“arduino_rec.wav”。
- 當(dāng)。。。的時(shí)候 ”。” 串口監(jiān)視器每1秒輸出一次,程序執(zhí)行完畢,可以借助讀卡器播放錄制的聲音文件。
音質(zhì)非常好!
代碼工作原理的解釋超出了本教程的范圍,但您可以在wiki頁面上找到出色的描述。
測試相機(jī)
要測試相機(jī),您應(yīng)該從 GitHub 下載文件夾take_photos_command 。該文件夾包含草圖 ( .ino
) 和兩個(gè).h
包含相機(jī)詳細(xì)信息的文件。
-
運(yùn)行代碼:take_photos_command.ino。打開串行監(jiān)視器并發(fā)送命令“
capture
”以捕獲圖像并將其保存在 SD 卡上:
確認(rèn)在串行監(jiān)視器上選擇了 [Both NL & CR]。
這是拍攝照片的示例:
測試無線網(wǎng)絡(luò)
XIAO ESP32S3 的差異化因素之一是其 WiFi 功能。所以,讓我們測試它的無線電,掃描它周圍的 wifi 網(wǎng)絡(luò)。您可以通過運(yùn)行板上的代碼示例之一來完成。
轉(zhuǎn)到 Arduino IDE 示例并查找WiFI ==> WiFIScan
在串行監(jiān)視器上,您應(yīng)該會看到設(shè)備范圍內(nèi)的 wifi 網(wǎng)絡(luò)(SSID 和 RSSI)。這是我在家里得到的:
簡單的 WiFi 服務(wù)器(打開/關(guān)閉 LED)
讓我們測試設(shè)備充當(dāng) WiFi 服務(wù)器的能力。我們將在設(shè)備上托管一個(gè)簡單的頁面,該頁面發(fā)送命令以打開和關(guān)閉 XIAO 內(nèi)置 LED。
和以前一樣,去 GitHub 下載帶有 sketch 的文件夾:SimpleWiFiServer 。
在運(yùn)行草圖之前,您應(yīng)該輸入您的網(wǎng)絡(luò)憑據(jù):
const char* ssid = "Your credentials here";
const char* password = "Your credentials here";
您可以使用串行監(jiān)視器監(jiān)視您的服務(wù)器如何工作。
獲取 IP 地址并將其輸入瀏覽器:
您將看到一個(gè)頁面,其中包含可以打開和關(guān)閉 XIAO 內(nèi)置 LED 的鏈接。讓我們將相機(jī)拍攝的圖像傳輸?shù)骄W(wǎng)頁:
從 GitHub 下載包含代碼的文件夾:XIAO-ESP32S3-Streeming_Video.ino。
請記住,該文件夾不僅包含 .ino 文件,還包含一些處理相機(jī)所必需的 .h 文件。
輸入您的憑據(jù)并運(yùn)行草圖。在串行監(jiān)視器上,您可以找到要在瀏覽器中輸入的頁面地址:
在瀏覽器上打開頁面(等待幾秒鐘以開始流式傳輸)。就是這樣。
當(dāng)您定位相機(jī)以捕獲 ML 項(xiàng)目的數(shù)據(jù)集(例如,使用代碼“take_phots_commands.ino”)時(shí),簡化相機(jī)“看到”的內(nèi)容可能很重要。
當(dāng)然,我們可以同時(shí)做這兩件事,在頁面上顯示相機(jī)所看到的內(nèi)容,并發(fā)送一個(gè)命令來捕獲圖像并將其保存在 SD 卡上。為此,您可以使用代碼 Camera_HTTP_Server_STA,該文件夾可以從 GitHub 下載。
該程序?qū)?zhí)行以下任務(wù):
- 將相機(jī)設(shè)置為 JPEG 輸出模式。
- 創(chuàng)建網(wǎng)頁(例如==> http://192.168.4.119//)。正確的地址將顯示在串行監(jiān)視器上。
- 如果是 server.on ("/capture", HTTP_GET, serverCapture),程序會拍攝照片并將其發(fā)送到 Web。
- 可以使用 [ROTATE] 按鈕在網(wǎng)頁上旋轉(zhuǎn)圖像
- [CAPTURE]命令只會在網(wǎng)頁上預(yù)覽圖片,在串口監(jiān)視器上顯示圖片大小
- [SAVE] 命令會將圖像保存在 SD 卡上,同時(shí)在網(wǎng)絡(luò)上顯示該圖像。
- 保存的圖像將遵循順序命名(image1.jpg,image2.jpg。
該程序可用于圖像分類項(xiàng)目的圖像數(shù)據(jù)集捕獲。
檢查代碼;這將更容易理解相機(jī)的工作原理。此代碼是基于偉大的 Rui Santos 教程:ESP32-CAM 在 Web 服務(wù)器中拍照和顯示而開發(fā)的,我邀請大家訪問。
水果與蔬菜 - TinyML 圖像分類項(xiàng)目
現(xiàn)在我們有一個(gè)嵌入式相機(jī)在運(yùn)行,是時(shí)候嘗試圖像分類了。為了比較動機(jī),我將復(fù)制為與舊 ESP2-CAM 一起使用而開發(fā)的相同圖像分類項(xiàng)目:
我們項(xiàng)目的整體思路是訓(xùn)練模型并在 XIAO ESP32S3 Sense 上進(jìn)行推理。對于訓(xùn)練,我們應(yīng)該找到一些數(shù)據(jù)(實(shí)際上是大量數(shù)據(jù)!)。
但首先,我們需要一個(gè)目標(biāo)!我們要分類什么?
使用TinyML,一組與嵌入式設(shè)備上的機(jī)器學(xué)習(xí)推理相關(guān)的技術(shù),由于限制(在這種情況下主要是內(nèi)存),我們應(yīng)該將分類限制為三或四類。我們將區(qū)分蘋果與香蕉和土豆(您可以嘗試其他類別)。
因此,讓我們找到一個(gè)包含這些類別圖像的特定數(shù)據(jù)集。Kaggle 是一個(gè)好的開始:
https://www.kaggle.com/kritikseth/fruit-and-vegetable-image-recognition
該數(shù)據(jù)集包含以下食品的圖像:
- 水果-香蕉、蘋果、梨、葡萄、橙子、奇異果、西瓜、石榴、菠蘿、芒果。
- 蔬菜- 黃瓜、胡蘿卜、辣椒、洋蔥、馬鈴薯、檸檬、番茄、蘿卜、甜菜根、卷心菜、生菜、菠菜、大豆、花椰菜、燈籠椒、辣椒、蘿卜、玉米、甜玉米、紅薯、紅辣椒、墨西哥辣椒、生姜、 大蒜、 豌豆、 茄子。
每個(gè)類別分為訓(xùn)練(100 張圖像)、測試(10 張圖像)和驗(yàn)證(10 張圖像)。
- 從 Kaggle 網(wǎng)站將數(shù)據(jù)集下載到您的計(jì)算機(jī)。
或者,您可以添加一些來自家庭廚房的香蕉、蘋果和土豆的新鮮照片,例如,使用上一節(jié)中討論的草圖。
使用 Edge Impulse Studio 訓(xùn)練模型
我們將使用 Edge Impulse Studio 來訓(xùn)練我們的模型。Edge Impulse是領(lǐng)先的邊緣設(shè)備機(jī)器學(xué)習(xí)開發(fā)平臺。
在 Edge Impulse 輸入您的帳戶憑據(jù)(或創(chuàng)建一個(gè)免費(fèi)帳戶)。接下來,創(chuàng)建一個(gè)新項(xiàng)目:
數(shù)據(jù)采集
接下來,在該UPLOAD DATA
部分,從您的計(jì)算機(jī)上傳所選類別的文件:
您現(xiàn)在應(yīng)該擁有訓(xùn)練數(shù)據(jù)集,分為三類數(shù)據(jù):
您可以上傳額外的數(shù)據(jù)以進(jìn)行進(jìn)一步的模型測試或拆分訓(xùn)練數(shù)據(jù)。我將保留原樣,盡可能使用大部分?jǐn)?shù)據(jù)。
沖量設(shè)計(jì)
脈沖獲取原始數(shù)據(jù)(在本例中為圖像),提取特征(調(diào)整圖片大小),然后使用學(xué)習(xí)塊對新數(shù)據(jù)進(jìn)行分類。
如前所述,對圖像進(jìn)行分類是深度學(xué)習(xí)最常見的用途,但要完成這項(xiàng)任務(wù)需要大量數(shù)據(jù)。每個(gè)類別我們有大約 90 張圖像。這個(gè)數(shù)量夠嗎?一點(diǎn)也不!我們將需要數(shù)千張圖像來“教授或建?!币詤^(qū)分蘋果和香蕉。但是,我們可以通過使用數(shù)千張圖像重新訓(xùn)練之前訓(xùn)練過的模型來解決這個(gè)問題。我們稱這種技術(shù)為“遷移學(xué)習(xí)”(TL)。
借助 TL,我們可以根據(jù)我們的數(shù)據(jù)微調(diào)預(yù)訓(xùn)練圖像分類模型,即使在相對較小的圖像數(shù)據(jù)集(我們的案例)中也能表現(xiàn)良好。
因此,從原始圖像開始,我們將調(diào)整它們的大小 (96x96) 像素,然后將它們提供給我們的遷移學(xué)習(xí)塊:
預(yù)處理(特征生成)
除了調(diào)整圖像大小,我們應(yīng)該將它們改為灰度以保持實(shí)際的 RGB 顏色深度。這樣做,我們的每個(gè)數(shù)據(jù)樣本都將具有 9 維、216 個(gè)特征 (96x96x1)。保持 RGB,這個(gè)維度會大三倍。使用灰度有助于減少推理所需的最終內(nèi)存量。
不要忘記“保存參數(shù)”。這將生成要在訓(xùn)練中使用的特征。
培訓(xùn)(遷移學(xué)習(xí)和數(shù)據(jù)增強(qiáng))
2007 年,谷歌推出了MobileNetV1,這是一個(gè)通用計(jì)算機(jī)視覺神經(jīng)網(wǎng)絡(luò)系列,專為移動設(shè)備而設(shè)計(jì),支持分類、檢測等。MobileNet 是小型、低延遲、低功耗模型,經(jīng)過參數(shù)化以滿足各種用例的資源限制。
盡管基本 MobileNet 架構(gòu)已經(jīng)很小并且延遲很低,但很多時(shí)候,特定的用例或應(yīng)用程序可能需要模型更小和更快。MobileNet 引入了一個(gè)稱為寬度乘數(shù)的簡單參數(shù) α (alpha) 來構(gòu)建這些更小且計(jì)算成本更低的模型。寬度乘數(shù) α 的作用是在每一層均勻地細(xì)化網(wǎng)絡(luò)。
Edge Impulse Studio 具有可用的 MobileNet V1(96x96 圖像)和 V2(96x96 和 160x160 圖像),具有多個(gè)不同的α值(從 0.05 到 1.0)。例如,您將使用 V2、160x160 圖像和 α=1.0 獲得最高準(zhǔn)確度。當(dāng)然,需要權(quán)衡取舍。精度越高,運(yùn)行模型所需的內(nèi)存就越多(大約 1.3M RAM 和 2.6M ROM),這意味著更多的延遲。
在MobileNet V1和 α=0.10(大約 53.2K RAM 和 101K ROM)的另一個(gè)極端情況下,將獲得更小的占用空間。
當(dāng)我們第一次發(fā)布這個(gè)在 ESP32-CAM 上運(yùn)行的項(xiàng)目時(shí),我們停留在可能性的較低端,這保證了推理具有較小的延遲但不具有高精度。對于第一遍,我們將保留此模型設(shè)計(jì)(MobileNet V1和 α=0.10)。
與深度學(xué)習(xí)一起使用的另一個(gè)重要技術(shù)是數(shù)據(jù)增強(qiáng)。數(shù)據(jù)增強(qiáng)是一種可以幫助提高機(jī)器學(xué)習(xí)模型準(zhǔn)確性的方法,可以創(chuàng)建額外的人工數(shù)據(jù)。數(shù)據(jù)增強(qiáng)系統(tǒng)在訓(xùn)練過程中對訓(xùn)練數(shù)據(jù)進(jìn)行小的隨機(jī)更改(例如翻轉(zhuǎn)、裁剪或旋轉(zhuǎn)圖像)。
在底層,您可以在這里看到 Edge Impulse 如何對您的數(shù)據(jù)實(shí)施數(shù)據(jù)增強(qiáng)策略:
# Implements the data augmentation policy
def augment_image(image, label):
# Flips the image randomly
image = tf.image.random_flip_left_right(image)
# Increase the image size, then randomly crop it down to
# the original dimensions
resize_factor = random.uniform(1, 1.2)
new_height = math.floor(resize_factor * INPUT_SHAPE[0])
new_width = math.floor(resize_factor * INPUT_SHAPE[1])
image = tf.image.resize_with_crop_or_pad(image, new_height, new_width)
image = tf.image.random_crop(image, size=INPUT_SHAPE)
# Vary the brightness of the image
image = tf.image.random_brightness(image, max_delta=0.2)
return image, label
在訓(xùn)練期間接觸這些變化有助于防止您的模型通過“記住”訓(xùn)練數(shù)據(jù)中的表面線索來走捷徑,這意味著它可以更好地反映數(shù)據(jù)集中深層的潛在模式。
我們模型的最后一層將有 16 個(gè)神經(jīng)元和 10% 的 dropout 以防止過度擬合。這是訓(xùn)練輸出:
結(jié)果不是很好。該模型達(dá)到了 77% 左右的準(zhǔn)確率,但預(yù)計(jì)在推理過程中使用的 RAM 量相對較?。s 60 KB),這非常好。
部署
經(jīng)過訓(xùn)練的模型將部署為 .zip Arduino 庫:
打開您的 Arduino IDE,在Sketch 下,轉(zhuǎn)到Include Library并添加 .ZIP Library。選擇您從 Edge Impulse Studio 下載的文件,就是這樣!
在 Arduino IDE 的示例選項(xiàng)卡下,您應(yīng)該在項(xiàng)目名稱下找到草圖代碼。
打開靜態(tài)緩沖區(qū)示例:
您可以看到第一行代碼正是調(diào)用一個(gè)庫,其中包含在您的設(shè)備上運(yùn)行推理所需的所有必要內(nèi)容。
#include
當(dāng)然,這是一個(gè)通用代碼(一個(gè)“模板”),它只獲取一個(gè)原始數(shù)據(jù)樣本(存儲在變量中:features = {} 并運(yùn)行分類器,進(jìn)行推理。結(jié)果顯示在串行監(jiān)視器上。
我們應(yīng)該從相機(jī)中獲取樣本(圖像)并對其進(jìn)行預(yù)處理(將大小調(diào)整為 96x96,轉(zhuǎn)換為灰度,并將其展平)。這將是我們模型的輸入張量。輸出張量將是一個(gè)具有三個(gè)值(標(biāo)簽)的向量,顯示每個(gè)類別的概率。
返回您的項(xiàng)目(選項(xiàng)卡圖像),復(fù)制原始數(shù)據(jù)示例之一:
9、將216個(gè)特征復(fù)制到剪貼板。這是輸入張量(96x96x1 的扁平圖像),在本例中為香蕉。超過此輸入張量 features[] = {0xb2d77b, 0xb5d687, 0xd8e8c0, 0xeaecba, 0xc2cf67, ...}
注意:Edge Impulse在其 SDK 中包含ESP NN 庫,其中包含針對各種 Espressif 芯片優(yōu)化的 ??NN(神經(jīng)網(wǎng)絡(luò))函數(shù)。在本教程發(fā)布(5 月 2 日)之前,ESP NN 無法與 ESP32S3 (Arduino IDE) 一起使用。
如果您編譯代碼并遇到錯(cuò)誤,則有必要修復(fù)它。EI 建議關(guān)閉 ESP NN 加速。為此,ei_classifier_config.h
在導(dǎo)出的 Arduino 庫文件夾中找到: /scr/edge-impulse-sdk/classifier/:
找到帶有 的行#define EI_CLASSIFIER_TFLITE_ENABLE_ESP_NN 1
,并將其從 1 更改為 0:
現(xiàn)在,在運(yùn)行推理時(shí),您應(yīng)該得到“banana”的最高分。
好消息!我們的設(shè)備進(jìn)行推理,發(fā)現(xiàn)輸入圖像是香蕉。這是比 ESP32 CAM(525 毫秒延遲)更好的結(jié)果。
現(xiàn)在,我們應(yīng)該結(jié)合攝像頭并對圖像進(jìn)行實(shí)時(shí)分類。
轉(zhuǎn)到 Arduino IDE 示例并從您的項(xiàng)目下載草圖 esp32_camera:
您應(yīng)該根據(jù)與我們的模型相關(guān)的數(shù)據(jù)更改第 32 行到第 75 行,它們定義了相機(jī)模型和引腳:
修改后的草圖可以從 GitHub 下載:xiao_esp32s3_camera 。
請注意,您可以選擇將引腳保留為 ah 文件,就像我們在前幾節(jié)中所做的那樣。
將代碼上傳到您的 XIAO ESP32S3 Sense,您應(yīng)該就可以開始對水果和蔬菜進(jìn)行分類了!您可以在串行監(jiān)視器上檢查結(jié)果。
測試模型(推理)
使用相機(jī)拍攝照片,分類結(jié)果將顯示在串口監(jiān)視器上:
其他測試:
使用更大的模型進(jìn)行測試
現(xiàn)在,讓我們轉(zhuǎn)到模型尺寸的另一側(cè)。讓我們選擇一個(gè) MobilinetV2 96x96 0.35,輸入 RGB 圖像。
即使使用更大的模型,準(zhǔn)確性也不好,最糟糕的是,運(yùn)行模型所需的內(nèi)存量增加了五倍,延遲增加了七倍。因此,為了讓我們的模型更好,我們可能需要訓(xùn)練更多的圖像。
即使我們的模型沒有改進(jìn),讓我們測試一下 XIAO 是否可以處理這么大的模型。我們將使用靜態(tài)緩沖區(qū)草圖進(jìn)行簡單的推理測試。
結(jié)果是肯定的!內(nèi)存在這里不是問題;延遲是!在實(shí)際測試中看到,XIAO 花費(fèi)了將近 2.5 秒來執(zhí)行推理(與之前的 318 毫秒相比)。
可選擇使用 ESP-NN 加速 [2013 年 5 月 19 日更新]
盡管 Edge Impulse 尚未發(fā)布使用加速器的 ESP32S3 SDK,但多虧了Dmitry Maslov, 我們可以為 ESP32-S3 恢復(fù)和修復(fù) ESP NN 的裝配優(yōu)化。這個(gè)解決方案還不是官方的,因?yàn)橐坏┧麄兘鉀Q了與其他板的沖突,EI 就會將它包含在 EI SDK 中。
目前,這僅適用于非 EON 版本。因此,如果在生成庫時(shí)啟用了 EON 編譯器,則應(yīng)重新部署模型。
同時(shí),你可以從項(xiàng)目的GitHub上下載一個(gè)初步版本,解壓,將src/edge-impulse-sdk/porting/espressif/ESP-NN,
你的Arduino庫文件夾下的ESP NN文件夾替換為:
然后編譯草圖。替換文件夾后重新啟動 IDE 可能會有所幫助。
使用 MobilinetV2 96x96 0.35 進(jìn)行推理,將 RGB 圖像作為輸入,延遲從 2,383 毫秒減少到 219 毫秒,減少了十倍以上!
在我的測試中,此選項(xiàng)適用于 MobileNet V2 但不適用于 V1。因此,我再次訓(xùn)練模型,使用最小版本的 MobileNet V2,alpha 為 0.05。
請注意,以 480MHz 時(shí)鐘運(yùn)行的 Arduino Portenta(ou Nicla)的估計(jì)延遲為 45ms。
部署模型,并應(yīng)用修復(fù),替換 ESP-NN 文件夾,如前所述,我得到的推斷只有 135 毫秒,記得 XIAO 運(yùn)行的時(shí)鐘是 Portenta/Nicla 使用的時(shí)鐘的一半(240MHz):
結(jié)論
XIAO ESP32S3 Sense 是一款非常靈活、價(jià)格低廉且易于編程的設(shè)備。該項(xiàng)目證明了 TinyML 的潛力。內(nèi)存不是問題;該設(shè)備可以處理許多后處理任務(wù),包括通信。但是你應(yīng)該考慮到高延遲(沒有 ESP NN 加速器)會限制一些應(yīng)用程序,盡管 XIAO 比 ESP32-CAM 快 50%。
在我的 GitHub 存儲庫中,您會找到最新版本的代碼:XIAO-ESP32S3-Sense。
一如既往,我希望這個(gè)項(xiàng)目可以幫助其他人在令人興奮的人工智能、電子和物聯(lián)網(wǎng)世界中找到自己的出路!
鏈接:MJRoBot.org
來自世界南方的問候!
在我的下一個(gè)項(xiàng)目見!
謝謝
馬塞洛
- TinyML變得簡單:關(guān)鍵詞識別(KWS)
- TinyML:使用合成數(shù)據(jù)的永遠(yuǎn)在線的音頻分類器
- TinyML課程#7變得更小
- 使用Esp32和TinyML進(jìn)行手勢分類
- TinyML:ESP32 CAM和TFT上的實(shí)時(shí)圖像分類
- 智能零售場景中的圖像分類技術(shù)綜述 15次下載
- 基于空譜聯(lián)合特征的高光譜圖像分類方法 2次下載
- 基于空間特征的遙感圖像場景分類方法 6次下載
- 眼底視網(wǎng)膜及圖像質(zhì)量分類研究綜述 9次下載
- 結(jié)合CSPPNet與集成學(xué)習(xí)的人類蛋白質(zhì)圖像分類 4次下載
- 基于區(qū)域RGB統(tǒng)計(jì)數(shù)據(jù)的圖像粗分類方法 17次下載
- 基于特征交換的卷積神經(jīng)網(wǎng)絡(luò)圖像分類算法 27次下載
- 基于二維圖像與遷移卷積神經(jīng)網(wǎng)絡(luò)的分類方法 6次下載
- 針對遙感圖像場景分類的多粒度特征蒸餾方法 20次下載
- 一種新的圖像定位和分類系統(tǒng)實(shí)現(xiàn)方案
- 計(jì)算機(jī)視覺怎么給圖像分類 219次閱讀
- 基于XIAO的圖像分類處理項(xiàng)目 1118次閱讀
- 如何在KV260上快速體驗(yàn)Vitsi AI圖像分類示例程序 1289次閱讀
- 【tinyML】使用EdgeImpulse讓您的Arduino可以辨識手勢! 4081次閱讀
- 如何使用TinyML在內(nèi)存受限的設(shè)備上部署ML模型呢 958次閱讀
- 圖像分類任務(wù)的各種tricks 1059次閱讀
- 如何在 MCU 上快速部署 TinyML 1689次閱讀
- 如何利用TinyML實(shí)現(xiàn)語音識別機(jī)器人車的設(shè)計(jì) 2110次閱讀
- 圖像分類法實(shí)現(xiàn)智能車找路功能 1604次閱讀
- 圖像分類的5種技術(shù),總結(jié)并歸納算法、實(shí)現(xiàn)方式,并進(jìn)行實(shí)驗(yàn)驗(yàn)證 7.3w次閱讀
- 數(shù)字圖像噪聲的四種分類方式 1.3w次閱讀
- CNN是怎么幫助進(jìn)行圖像分類的 1.7w次閱讀
- 簡單好上手的圖像分類教程! 8136次閱讀
- 深度學(xué)習(xí)的典型應(yīng)用是圖像分類問題 8527次閱讀
- 如何讓光伏逆變器效率測量變得更簡單 1492次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評論
查看更多