99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

電子發(fā)燒友App

硬聲App

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

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

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>TinyML變得簡單:圖像分類

TinyML變得簡單:圖像分類

2023-07-13 | zip | 0.00 MB | 次下載 | 免費

資料介紹

描述

我們越來越多地面臨著人工智能 (AI) 革命,正如 Gartner 所說,Edge AI具有非常高的影響潛力,而且現(xiàn)在是這樣!

poYBAGSBLJOADVU0AABvBP-AhZE651.png
?

在新興技術(shù)的“靶心”中,雷達就是Edge Computer Vision ,而當我們談到Machine Learning (ML)應(yīng)用于視覺時,首先想到的就是Image Classification ,一種ML的“Hello World” “!

Seeed Studio 發(fā)布了一款經(jīng)濟實惠的新型開發(fā)板XIAO ESP32S3 Sense ,它集成了攝像頭傳感器、數(shù)字麥克風(fēng)和 SD 卡支持。該開發(fā)板結(jié)合了嵌入式 ML 計算能力和攝影能力,是開始使用 TinyML(智能語音和視覺 AI)的絕佳工具。

XIAO ESP32S3 Sense 主要特點

  • 強大的 MCU:集成 ESP32S3 32 位雙核 Xtensa 處理器芯片,運行頻率高達 240 MHz,安裝多個開發(fā)端口,支持 Arduino / MicroPython
  • 高級功能:1600*1200分辨率的可拆卸OV2640攝像頭傳感器,兼容OV5640攝像頭傳感器,集成一個額外的數(shù)字麥克風(fēng)
  • 精心設(shè)計的電源設(shè)計鋰電池充電管理能力提供四種功耗模式,允許深度睡眠模式,功耗低至14μA
  • 大內(nèi)存,更多可能性:提供 8MB PSRAM 和 8MB 閃存,支持 SD 卡插槽,用于外部 32GB FAT 內(nèi)存
  • 出色的射頻性能:支持2.4GHz Wi-Fi和BLE雙無線通信,連接U.FL天線支持100m+遠程通信
  • 拇指大小的緊湊型設(shè)計:21 x 17.5mm,采用 XIAO 的經(jīng)典外形,適用于可穿戴設(shè)備等空間有限的項目
poYBAGSBLJqAUozMAAB9gvSH4v0201.png
?

以下是通用板引出線:

poYBAGSBLKCAdLrGAAX02CeSVq4237.png
?
更多詳情請參考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

pYYBAGSBLKKAMcX9AABwkgicXvY642.png
?

接下來,打開板管理器。轉(zhuǎn)到Tools > Board > Boards Manager...并輸入esp32。選擇并安裝最新的軟件包:

poYBAGSBLKWAdvBRAABsVbfEHcc178.png
?

Tools上,選擇 Board ( XIAO ESP32S3 ):

poYBAGSBLKmALQUpAAGoq9WTEX4281.png
?

最后但同樣重要的是,選擇連接 ESP32S3 的端口。

這就對了!設(shè)備應(yīng)該沒問題。讓我們做一些測試。

使用 BLINK 測試電路板

XIAO ESP32S3 Sense 有一個連接到 GPIO21 的內(nèi)置 LED。因此,您可以按原樣運行閃爍草圖(使用LED_BUILTINArduino 常量)或相應(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)閉
pYYBAGSBLLaAaJY5ABRvKOc_ieU717.png
?

連接Sense模塊(擴展板)

購買時,擴展板與主板分離,但安裝擴展板非常簡單。需要將擴展??板上的連接器對準XIAO ESP32S3上的B2B連接器,用力按壓,聽到“咔噠”一聲即表示安裝完成。

?

如介紹中所述,擴展板或設(shè)備的“感知”部分具有一個 1600x1200 OV2640 攝像頭、一個 SD 卡插槽和一個數(shù)字麥克風(fēng)。

麥克風(fēng)測試

讓我們從聲音檢測開始。轉(zhuǎn)到GitHub 項目下載草圖:XIAOEsp2s3_Mic_Test并在 Arduino IDE 上運行它:

pYYBAGSBLLqANJTgAALrq0CFtik044.png
?

發(fā)出聲音時,您可以在串行繪圖儀上進行驗證。

將錄制的聲音(.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 )。

poYBAGSBLL2AVkT0AAEVrr5IjC8657.png
?
  • 下載草圖Wav_Record ,您可以在 GitHub 上找到它。
  • 執(zhí)行代碼(Wav Record)需要用到ESP-32芯片的PSRAM功能,所以上傳前先開啟:Tools>PSRAM: "OPI PSRAM">OPI PSRAM
pYYBAGSBLL-AYo-BAADSZsU93Oo377.png
?
  • 運行代碼Wav_Record.ino
  • 該程序僅在用戶打開串口監(jiān)視器后執(zhí)行一次,錄音 20 秒并將錄音文件保存到 microSD 卡中,名為“arduino_rec.wav”。
  • 當。。。的時候 ”。” 串口監(jiān)視器每1秒輸出一次,程序執(zhí)行完畢,可以借助讀卡器播放錄制的聲音文件。
poYBAGSBLMKAIYCtAACCILKpQG0552.png
?

音質(zhì)非常好!

代碼工作原理的解釋超出了本教程的范圍,但您可以在wiki頁面上找到出色的描述。

測試相機

要測試相機,您應(yīng)該從 GitHub 下載文件夾take_photos_command 該文件夾包含草圖 ( .ino) 和兩個.h 包含相機詳細信息的文件。

  • 運行代碼:take_photos_command.ino。打開串行監(jiān)視器并發(fā)送命令“ capture”以捕獲圖像并將其保存在 SD 卡上:
確認在串行監(jiān)視器上選擇了 [Both NL & CR]。
pYYBAGSBLMmAK0FIAAvCC98uW30523.png
?

這是拍攝照片的示例:

poYBAGSBLMyAMflHAAIG3cAYBbA068.png
?

測試無線網(wǎng)絡(luò)

XIAO ESP32S3 的差異化因素之一是其 WiFi 功能。所以,讓我們測試它的無線電,掃描它周圍的 wifi 網(wǎng)絡(luò)。您可以通過運行板上的代碼示例之一來完成。

轉(zhuǎn)到 Arduino IDE 示例并查找WiFI ==> WiFIScan

在串行監(jiān)視器上,您應(yīng)該會看到設(shè)備范圍內(nèi)的 wifi 網(wǎng)絡(luò)(SSID 和 RSSI)。這是我在家里得到的:

poYBAGSBLM-ASSscAACe4m8W0QE127.png
?

簡單的 WiFi 服務(wù)器(打開/關(guān)閉 LED)

讓我們測試設(shè)備充當 WiFi 服務(wù)器的能力。我們將在設(shè)備上托管一個簡單的頁面,該頁面發(fā)送命令以打開和關(guān)閉 XIAO 內(nèi)置 LED。

和以前一樣,去 GitHub 下載帶有 sketch 的文件夾:SimpleWiFiServer 。

在運行草圖之前,您應(yīng)該輸入您的網(wǎng)絡(luò)憑據(jù):

const char* ssid     = "Your credentials here";
const char* password = "Your credentials here";

您可以使用串行監(jiān)視器監(jiān)視您的服務(wù)器如何工作。

pYYBAGSBLNKAVi6SAAEq8TBr5rI652.png
?

獲取 IP 地址并將其輸入瀏覽器:

pYYBAGSBLNSAGEA7AABkZ4N3MXg352.png
?

您將看到一個頁面,其中包含可以打開和關(guān)閉 XIAO 內(nèi)置 LED 的鏈接。讓我們將相機拍攝的圖像傳輸?shù)骄W(wǎng)頁:

從 GitHub 下載包含代碼的文件夾:XIAO-ESP32S3-Streeming_Video.ino。

請記住,該文件夾不僅包含 .ino 文件,還包含一些處理相機所必需的 .h 文件。

輸入您的憑據(jù)并運行草圖。在串行監(jiān)視器上,您可以找到要在瀏覽器中輸入的頁面地址:

poYBAGSBLNeAT5eNAAB6QwB4it0896.png
?

在瀏覽器上打開頁面(等待幾秒鐘以開始流式傳輸)。就是這樣。

poYBAGSBLNyALScfAAOaarnJ1eM986.png
?

當您定位相機以捕獲 ML 項目的數(shù)據(jù)集(例如,使用代碼“take_phots_commands.ino”)時,簡化相機“看到”的內(nèi)容可能很重要。

當然,我們可以同時做這兩件事,在頁面上顯示相機所看到的內(nèi)容,并發(fā)送一個命令來捕獲圖像并將其保存在 SD 卡上。為此,您可以使用代碼 Camera_HTTP_Server_STA,該文件夾可以從 GitHub 下載。

pYYBAGSBLN-AGOImAAIwiNeiqxU890.png
?

該程序?qū)?zhí)行以下任務(wù):

  • 將相機設(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 卡上,同時在網(wǎng)絡(luò)上顯示該圖像。
  • 保存的圖像將遵循順序命名(image1.jpg,image2.jpg。
poYBAGSBLOOAGYCgAACglbC_lkw985.png
?
該程序可用于圖像分類項目的圖像數(shù)據(jù)集捕獲。

檢查代碼;這將更容易理解相機的工作原理。此代碼是基于偉大的 Rui Santos 教程:ESP32-CAM 在 Web 服務(wù)器中拍照和顯示而開發(fā)的,我邀請大家訪問。

水果與蔬菜 - TinyML 圖像分類項目

現(xiàn)在我們有一個嵌入式相機在運行,是時候嘗試圖像分類了。為了比較動機,我將復(fù)制為與舊 ESP2-CAM 一起使用而開發(fā)的相同圖像分類項目:

ESP32-CAM:TinyML 圖像分類——水果與蔬菜

我們項目的整體思路是訓(xùn)練模型并在 XIAO ESP32S3 Sense 上進行推理。對于訓(xùn)練,我們應(yīng)該找到一些數(shù)據(jù)(實際上是大量數(shù)據(jù)!)。

但首先,我們需要一個目標!我們要分類什么?

使用TinyML,一組與嵌入式設(shè)備上的機器學(xué)習(xí)推理相關(guān)的技術(shù),由于限制(在這種情況下主要是內(nèi)存),我們應(yīng)該將分類限制為三或四類。我們將區(qū)分蘋果香蕉土豆(您可以嘗試其他類別)

因此,讓我們找到一個包含這些類別圖像的特定數(shù)據(jù)集。Kaggle 是一個好的開始:

https://www.kaggle.com/kritikseth/fruit-and-vegetable-image-recognition

該數(shù)據(jù)集包含以下食品的圖像:

  • 水果-香蕉、蘋果、梨、葡萄、橙子、奇異果、西瓜、石榴、菠蘿、芒果。
  • 蔬菜- 黃瓜、胡蘿卜、辣椒、洋蔥、馬鈴薯、檸檬、番茄、蘿卜、甜菜根、卷心菜、生菜、菠菜、大豆、花椰菜、燈籠椒、辣椒、蘿卜、玉米、甜玉米、紅薯、紅辣椒、墨西哥辣椒、生姜、 大蒜、 豌豆、 茄子。

每個類別分為訓(xùn)練(100 張圖像)、測試(10 張圖像)和驗證(10 張圖像)。

  • 從 Kaggle 網(wǎng)站將數(shù)據(jù)集下載到您的計算機。
或者,您可以添加一些來自家庭廚房的香蕉、蘋果和土豆的新鮮照片,例如,使用上一節(jié)中討論的草圖。

使用 Edge Impulse Studio 訓(xùn)練模型

我們將使用 Edge Impulse Studio 來訓(xùn)練我們的模型。Edge Impulse是領(lǐng)先的邊緣設(shè)備機器學(xué)習(xí)開發(fā)平臺。

在 Edge Impulse 輸入您的帳戶憑據(jù)(或創(chuàng)建一個免費帳戶)。接下來,創(chuàng)建一個新項目:

pYYBAGSBLO2ALskMAAGpM2bH1MY825.png
?

數(shù)據(jù)采集

接下來,在該UPLOAD DATA部分,從您的計算機上傳所選類別的文件:

poYBAGSBLPGAJo4gAACbEYxmjGU348.png
?

您現(xiàn)在應(yīng)該擁有訓(xùn)練數(shù)據(jù)集,分為三類數(shù)據(jù):

pYYBAGSBLPSAZ-aVAADKzDlnTBc806.png
?
您可以上傳額外的數(shù)據(jù)以進行進一步的模型測試或拆分訓(xùn)練數(shù)據(jù)。我將保留原樣,盡可能使用大部分數(shù)據(jù)。

沖量設(shè)計

脈沖獲取原始數(shù)據(jù)(在本例中為圖像),提取特征(調(diào)整圖片大?。?,然后使用學(xué)習(xí)塊對新數(shù)據(jù)進行分類。

如前所述,對圖像進行分類是深度學(xué)習(xí)最常見的用途,但要完成這項任務(wù)需要大量數(shù)據(jù)。每個類別我們有大約 90 張圖像。這個數(shù)量夠嗎?一點也不!我們將需要數(shù)千張圖像來“教授或建?!币詤^(qū)分蘋果和香蕉。但是,我們可以通過使用數(shù)千張圖像重新訓(xùn)練之前訓(xùn)練過的模型來解決這個問題。我們稱這種技術(shù)為“遷移學(xué)習(xí)”(TL)。

pYYBAGSBLPeAdufiAAEJZ5trvIM494.png
?

借助 TL,我們可以根據(jù)我們的數(shù)據(jù)微調(diào)預(yù)訓(xùn)練圖像分類模型,即使在相對較小的圖像數(shù)據(jù)集(我們的案例)中也能表現(xiàn)良好。

因此,從原始圖像開始,我們將調(diào)整它們的大小 (96x96) 像素,然后將它們提供給我們的遷移學(xué)習(xí)塊:

poYBAGSBLPuATWY5AACzZOw8mQI732.png
?

預(yù)處理(特征生成)

除了調(diào)整圖像大小,我們應(yīng)該將它們改為灰度以保持實際的 RGB 顏色深度。這樣做,我們的每個數(shù)據(jù)樣本都將具有 9 維、216 個特征 (96x96x1)。保持 RGB,這個維度會大三倍。使用灰度有助于減少推理所需的最終內(nèi)存量。

poYBAGSBLP6AQdKLAAChy7GPqkg301.png
?

不要忘記“保存參數(shù)”。這將生成要在訓(xùn)練中使用的特征。

培訓(xùn)(遷移學(xué)習(xí)和數(shù)據(jù)增強)

2007 年,谷歌推出了MobileNetV1,這是一個通用計算機視覺神經(jīng)網(wǎng)絡(luò)系列,專為移動設(shè)備而設(shè)計,支持分類、檢測等。MobileNet 是小型、低延遲、低功耗模型,經(jīng)過參數(shù)化以滿足各種用例的資源限制。

盡管基本 MobileNet 架構(gòu)已經(jīng)很小并且延遲很低,但很多時候,特定的用例或應(yīng)用程序可能需要模型更小和更快。MobileNet 引入了一個稱為寬度乘數(shù)的簡單參數(shù) α (alpha) 來構(gòu)建這些更小且計算成本更低的模型。寬度乘數(shù) α 的作用是在每一層均勻地細化網(wǎng)絡(luò)。

Edge Impulse Studio 具有可用的 MobileNet V1(96x96 圖像)和 V2(96x96 和 160x160 圖像),具有多個不同的α值(從 0.05 到 1.0)。例如,您將使用 V2、160x160 圖像和 α=1.0 獲得最高準確度。當然,需要權(quán)衡取舍。精度越高,運行模型所需的內(nèi)存就越多(大約 1.3M RAM 和 2.6M ROM),這意味著更多的延遲。

在MobileNet V1和 α=0.10(大約 53.2K RAM 和 101K ROM)的另一個極端情況下,將獲得更小的占用空間

當我們第一次發(fā)布這個在 ESP32-CAM 上運行的項目時,我們停留在可能性的較低端,這保證了推理具有較小的延遲但不具有高精度。對于第一遍,我們將保留此模型設(shè)計(MobileNet V1和 α=0.10)。

與深度學(xué)習(xí)一起使用的另一個重要技術(shù)是數(shù)據(jù)增強。數(shù)據(jù)增強是一種可以幫助提高機器學(xué)習(xí)模型準確性的方法,可以創(chuàng)建額外的人工數(shù)據(jù)。數(shù)據(jù)增強系統(tǒng)在訓(xùn)練過程中對訓(xùn)練數(shù)據(jù)進行小的隨機更改(例如翻轉(zhuǎn)、裁剪或旋轉(zhuǎn)圖像)。

在底層,您可以在這里看到 Edge Impulse 如何對您的數(shù)據(jù)實施數(shù)據(jù)增強策略:

# 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 個神經(jīng)元和 10% 的 dropout 以防止過度擬合。這是訓(xùn)練輸出:

pYYBAGSBLQCANeSuAACU6MqNCm4206.png
?

結(jié)果不是很好。該模型達到了 77% 左右的準確率,但預(yù)計在推理過程中使用的 RAM 量相對較?。s 60 KB),這非常好。

部署

經(jīng)過訓(xùn)練的模型將部署為 .zip Arduino 庫:

poYBAGSBLQOAZlydAACY_ljXcB4419.png
?

打開您的 Arduino IDE,在Sketch 下,轉(zhuǎn)到Include Library添加 .ZIP Library。選擇您從 Edge Impulse Studio 下載的文件,就是這樣!

pYYBAGSBLQaAUN3QAADvijSIC9Q969.png
?

在 Arduino IDE 的示例選項卡,您應(yīng)該在項目名稱下找到草圖代碼。

pYYBAGSBLQqAQKQ7AAGf06gf6F4205.png
?

打開靜態(tài)緩沖區(qū)示例:

pYYBAGSBLQ2Ae3PCAAFhBNIFE2E678.png
?

您可以看到第一行代碼正是調(diào)用一個庫,其中包含在您的設(shè)備上運行推理所需的所有必要內(nèi)容。

#include 

當然,這是一個通用代碼(一個“模板”),它只獲取一個原始數(shù)據(jù)樣本(存儲在變量中:features = {} 并運行分類器,進行推理。結(jié)果顯示在串行監(jiān)視器上。

我們應(yīng)該從相機中獲取樣本(圖像)并對其進行預(yù)處理(將大小調(diào)整為 96x96,轉(zhuǎn)換為灰度,并將其展平)。這將是我們模型的輸入張量。輸出張量將是一個具有三個值(標簽)的向量,顯示每個類別的概率。

pYYBAGSBLQ-AWf15AAB96jSG6to695.png
?

返回您的項目(選項卡圖像),復(fù)制原始數(shù)據(jù)示例之一:

poYBAGSBLROAUY1-AAIYrlxQ1Sw020.png
?

9、將216個特征復(fù)制到剪貼板。這是輸入張量(96x96x1 的扁平圖像),在本例中為香蕉。超過此輸入張量 features[] = {0xb2d77b, 0xb5d687, 0xd8e8c0, 0xeaecba, 0xc2cf67, ...}

poYBAGSBLRaAIJ65AAD83HHOMpY905.png
?

注意:Edge Impulse在其 SDK 中包含ESP NN 庫,其中包含針對各種 Espressif 芯片優(yōu)化的 ??NN(神經(jīng)網(wǎng)絡(luò))函數(shù)。在本教程發(fā)布(5 月 2 日)之前,ESP NN 無法與 ESP32S3 (Arduino IDE) 一起使用。

如果您編譯代碼并遇到錯誤,則有必要修復(fù)它。EI 建議關(guān)閉 ESP NN 加速。為此,ei_classifier_config.h在導(dǎo)出的 Arduino 庫文件夾中找到: /scr/edge-impulse-sdk/classifier/:

poYBAGSBLRmAImQfAAEao8V24O4165.png
?

找到帶有 的行#define EI_CLASSIFIER_TFLITE_ENABLE_ESP_NN 1,并將其從 1 更改為 0:

poYBAGSBLR-AT0BGAAEkV0h8wbM263.png
?

現(xiàn)在,在運行推理時,您應(yīng)該得到“banana”的最高分。

pYYBAGSBLSOAZ3KlAACz5jwbk74829.png
?

好消息!我們的設(shè)備進行推理,發(fā)現(xiàn)輸入圖像是香蕉。這是比 ESP32 CAM(525 毫秒延遲)更好的結(jié)果。

現(xiàn)在,我們應(yīng)該結(jié)合攝像頭并對圖像進行實時分類。

轉(zhuǎn)到 Arduino IDE 示例并從您的項目下載草圖 esp32_camera:

poYBAGSBLSaAJalpAABvcwIuy5Y279.png
?

您應(yīng)該根據(jù)與我們的模型相關(guān)的數(shù)據(jù)更改第 32 行到第 75 行,它們定義了相機模型和引腳:

pYYBAGSBLSmAGu8rAACRmvlOaCU469.png
?

修改后的草圖可以從 GitHub 下載:xiao_esp32s3_camera 。

請注意,您可以選擇將引腳保留為 ah 文件,就像我們在前幾節(jié)中所做的那樣。

將代碼上傳到您的 XIAO ESP32S3 Sense,您應(yīng)該就可以開始對水果和蔬菜進行分類了!您可以在串行監(jiān)視器上檢查結(jié)果。

測試模型(推理)

poYBAGSBLS2AP8SEAAOnArpXIJU262.jpg
?

使用相機拍攝照片,分類結(jié)果將顯示在串口監(jiān)視器上:

pYYBAGSBLTCAY20oAACtdqArdmE112.png
?

其他測試:

?
?
?
pYYBAGSBLTiAL_TKAAlFsGY7iPM934.png
?
1 / 3
?

使用更大的模型進行測試

現(xiàn)在,讓我們轉(zhuǎn)到模型尺寸的另一側(cè)。讓我們選擇一個 MobilinetV2 96x96 0.35,輸入 RGB 圖像。

poYBAGSBLTuAcAFxAAGqNeLLs2w132.png
?

即使使用更大的模型,準確性也不好,最糟糕的是,運行模型所需的內(nèi)存量增加了五倍,延遲增加了七倍。因此,為了讓我們的模型更好,我們可能需要訓(xùn)練更多的圖像。

即使我們的模型沒有改進,讓我們測試一下 XIAO 是否可以處理這么大的模型。我們將使用靜態(tài)緩沖區(qū)草圖進行簡單的推理測試。

poYBAGSBLT6AaiuBAACrDtzqb-c797.png
?

結(jié)果是肯定的!內(nèi)存在這里不是問題;延遲是!在實際測試中看到,XIAO 花費了將近 2.5 秒來執(zhí)行推理(與之前的 318 毫秒相比)。

可選擇使用 ESP-NN 加速 [2013 年 5 月 19 日更新]

盡管 Edge Impulse 尚未發(fā)布使用加速器的 ESP32S3 SDK,但多虧了Dmitry Maslov, 我們可以為 ESP32-S3 恢復(fù)和修復(fù) ESP NN 的裝配優(yōu)化。這個解決方案還不是官方的,因為一旦他們解決了與其他板的沖突,EI 就會將它包含在 EI SDK 中。

目前,這僅適用于非 EON 版本。因此,如果在生成庫時啟用了 EON 編譯器,則應(yīng)重新部署模型。

pYYBAGSBLUGAIMXAAAGgnfgXWMo042.png
?

同時,你可以從項目的GitHub上下載一個初步版本,解壓,將
src/edge-impulse-sdk/porting/espressif/ESP-NN,你的Arduino庫文件夾下的ESP NN文件夾替換為:

poYBAGSBLUSAVdyxAAB8_KatwHs112.png
?

然后編譯草圖。替換文件夾后重新啟動 IDE 可能會有所幫助。

使用 MobilinetV2 96x96 0.35 進行推理,將 RGB 圖像作為輸入,延遲從 2,383 毫秒減少到 219 毫秒,減少了十倍以上!

?
?
?
poYBAGSBLUeAU2TdAACj8UihduE056.png
?
1 / 2
?

在我的測試中,此選項適用于 MobileNet V2 但不適用于 V1。因此,我再次訓(xùn)練模型,使用最小版本的 MobileNet V2,alpha 為 0.05。

poYBAGSBLUuAHMwTAAGvzha0Wlw461.png
?
請注意,以 480MHz 時鐘運行的 Arduino Portenta(ou Nicla)的估計延遲為 45ms。

部署模型,并應(yīng)用修復(fù),替換 ESP-NN 文件夾,如前所述,我得到的推斷只有 135 毫秒,記得 XIAO 運行的時鐘是 Portenta/Nicla 使用的時鐘的一半(240MHz):

pYYBAGSBLU6Af8SZAAFAJXhknLU878.png
?

結(jié)論

XIAO ESP32S3 Sense 是一款非常靈活、價格低廉且易于編程的設(shè)備。該項目證明了 TinyML 的潛力。內(nèi)存不是問題;該設(shè)備可以處理許多后處理任務(wù),包括通信。但是你應(yīng)該考慮到高延遲(沒有 ESP NN 加速器)會限制一些應(yīng)用程序,盡管 XIAO 比 ESP32-CAM 快 50%。

在我的 GitHub 存儲庫中,您會找到最新版本的代碼:XIAO-ESP32S3-Sense。

一如既往,我希望這個項目可以幫助其他人在令人興奮的人工智能、電子物聯(lián)網(wǎng)世界中找到自己的出路!

poYBAGNVlOKAQp0tAABnO-FoD-w048.png
?

鏈接:MJRoBot.org

來自世界南方的問候!

在我的下一個項目見!

謝謝

馬塞洛


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1DD3118電路圖紙資料
  2. 0.08 MB   |  1次下載  |  免費
  3. 2AD庫封裝庫安裝教程
  4. 0.49 MB   |  1次下載  |  免費
  5. 3PC6206 300mA低功耗低壓差線性穩(wěn)壓器中文資料
  6. 1.12 MB   |  1次下載  |  免費
  7. 4網(wǎng)絡(luò)安全從業(yè)者入門指南
  8. 2.91 MB   |  1次下載  |  免費
  9. 5DS-CS3A P00-CN-V3
  10. 618.05 KB  |  1次下載  |  免費
  11. 6海川SM5701規(guī)格書
  12. 1.48 MB  |  次下載  |  免費
  13. 7H20PR5電磁爐IGBT功率管規(guī)格書
  14. 1.68 MB   |  次下載  |  1 積分
  15. 8IP防護等級說明
  16. 0.08 MB   |  次下載  |  免費

本月

  1. 1貼片三極管上的印字與真實名稱的對照表詳細說明
  2. 0.50 MB   |  103次下載  |  1 積分
  3. 2涂鴉各WiFi模塊原理圖加PCB封裝
  4. 11.75 MB   |  89次下載  |  1 積分
  5. 3錦銳科技CA51F2 SDK開發(fā)包
  6. 24.06 MB   |  43次下載  |  1 積分
  7. 4錦銳CA51F005 SDK開發(fā)包
  8. 19.47 MB   |  19次下載  |  1 積分
  9. 5PCB的EMC設(shè)計指南
  10. 2.47 MB   |  16次下載  |  1 積分
  11. 6HC05藍牙原理圖加PCB
  12. 15.76 MB   |  13次下載  |  1 積分
  13. 7802.11_Wireless_Networks
  14. 4.17 MB   |  12次下載  |  免費
  15. 8蘋果iphone 11電路原理圖
  16. 4.98 MB   |  6次下載  |  2 積分

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935127次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233089次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191390次下載  |  10 積分
  9. 5十天學(xué)會AVR單片機與C語言視頻教程 下載
  10. 158M  |  183342次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81588次下載  |  10 積分
  13. 7Keil工具MDK-Arm免費下載
  14. 0.02 MB  |  73815次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65989次下載  |  10 積分