那曲檬骨新材料有限公司

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

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

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

基于XIAO的圖像分類處理項(xiàng)目

柴火創(chuàng)客空間 ? 來(lái)源:柴火創(chuàng)客空間 ? 2023-10-28 09:50 ? 次閱讀

XIAOXIAO今天小編給大家?guī)?lái)的是圣地亞哥的Maker Marcelo Rovai 使用 XIAO ESP32S3 Sensor 搭配Edge Impulse 實(shí)現(xiàn)的圖像分類的項(xiàng)目。

材料清單

硬件

Seeed XIAO ESP32S3 Sensor

軟件

Arduino IDE

Edge Impulse Studio

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

XIAOESP32S3 Sense主要特點(diǎn)

MCU:采用ESP32S3 32位雙核Xtensa處理器芯片,運(yùn)行頻率高達(dá)240 MHz,安裝多個(gè)開(kāi)發(fā)端口,支持Arduino / MicroPython

組合設(shè)計(jì):可拆卸 OV2640 攝像頭傳感器,分辨率為 1600*1200,兼容 OV5640 攝像頭傳感器,集成額外的數(shù)字麥克風(fēng)

電源設(shè)計(jì)鋰電池充電管理能力提供四種功耗模式,深度睡眠模式功耗低至14μA超大內(nèi)存,更多可能:提供 8MB PSRAM 和 8MB FLASH,支持 SD 卡插槽用于外部 32GB FAT 內(nèi)存

射頻性能:支持2.4GHz Wi-Fi和BLE雙無(wú)線通信,連接U.FL天線支持100m+遠(yuǎn)程通信

緊湊設(shè)計(jì):21 x 17.5mm,采用XIAO經(jīng)典外形,適合可穿戴設(shè)備等空間有限的項(xiàng)目

26b3684e-74bf-11ee-939d-92fbcf53809c.png

引腳圖:

26bde08a-74bf-11ee-939d-92fbcf53809c.png

欲了解更多詳細(xì)信息,請(qǐng)參閱 Seeed Studio WiKi 頁(yè)面

Step-1 在Arduino IDE上安裝XIAO ESP32S3板載文件

在 Arduino IDE 上,導(dǎo)航至“文件”>“首選項(xiàng)”,然后填寫 UR

26cbc54c-74bf-11ee-939d-92fbcf53809c.png

接下來(lái),打開(kāi)板管理器。轉(zhuǎn)到“工具”>“開(kāi)發(fā)板”>“開(kāi)發(fā)板管理器”...并輸入 esp32。選擇并安裝最新的軟件包:

26d6683a-74bf-11ee-939d-92fbcf53809c.png

在工具上,選擇主板 (XIAO ESP32S3):

26e130da-74bf-11ee-939d-92fbcf53809c.jpg

最后使用數(shù)據(jù)線連接開(kāi)發(fā)板到電腦上,選擇ESP32S3的端口即可。

Step-2 測(cè)試開(kāi)發(fā)板

XIAO ESP32S3 Sense 有一個(gè)內(nèi)置 LED,連接到 GPIO21。因此,您可以修改引腳編號(hào)后上傳運(yùn)行 Blink 代碼。

#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          
}

請(qǐng)注意,引腳以反轉(zhuǎn)邏輯工作:低電平打開(kāi),高電平關(guān)閉

2706f900-74bf-11ee-939d-92fbcf53809c.png



連接Sense模塊(擴(kuò)展板)

購(gòu)買時(shí),擴(kuò)展板與主板是分離的,但安裝擴(kuò)展板非常簡(jiǎn)單。需要將擴(kuò)展板上的連接器與XIAO ESP32S3上的B2B連接器對(duì)齊,用力按壓,聽(tīng)到“咔”的一聲,安裝完成。

正如簡(jiǎn)介中所述,擴(kuò)展板或設(shè)備的“傳感”部分具有 1600x1200 OV2640 攝像頭、SD 卡插槽和數(shù)字麥克風(fēng)。

麥克風(fēng)測(cè)試

讓我們從聲音檢測(cè)開(kāi)始。轉(zhuǎn)到 GitHub(https://github.com/Mjrovai/XIAO-ESP32S3-Sense) 項(xiàng)目并下載草圖:XIAOEsp2s3_Mic_Test(https://github.com/Mjrovai/XIAO-ESP32S3-Sense/tree/main/Mic_Test/XiaoEsp32s3_Mic_Test) 并在 Arduino IDE 上運(yùn)行它:

2710b95e-74bf-11ee-939d-92fbcf53809c.jpg

當(dāng)產(chǎn)生聲音時(shí),您可以在串行繪圖儀上驗(yàn)證它。

將錄制的聲音(.wav 音頻文件)保存到 microSD 卡。

使用板載 SD 卡讀卡器來(lái)保存 .wav 音頻文件。為此,我們需要啟用 XIAO PSRAM。

ESP32-S3 的 MCU 芯片上只有幾百 KB 的內(nèi)部 RAM。對(duì)于某些用途來(lái)說(shuō),這可能不夠,因此 ESP32-S3 可以使用與 SPI 閃存芯片并聯(lián)的高達(dá) 16 MB 的外部 PSRAM(偽靜態(tài) RAM)。外部存儲(chǔ)器包含在存儲(chǔ)器映射中,并且在有一定限制的情況下,可以與內(nèi)部數(shù)據(jù) RAM 相同的方式使用。

首先,將 SD 卡插入 XIAO,如下圖所示(SD 卡應(yīng)格式化為 FAT32)。

271b85c8-74bf-11ee-939d-92fbcf53809c.jpg

下載示例程序“ Wav_Record ”,可以在 GitHub 上找到它。

執(zhí)行代碼(Wav Record)需要使用ESP-32芯片的PSRAM功能,所以上傳前先打開(kāi):Tools>PSRAM:“OPI PSRAM”>OPI PSRAM

2723d192-74bf-11ee-939d-92fbcf53809c.jpg

運(yùn)行代碼Wav_Record.ino

該程序僅在用戶打開(kāi)串口監(jiān)視器后執(zhí)行一次,錄制20秒并將錄制文件保存到microSD卡上,名稱為“arduino_rec.wav”。

當(dāng)串口監(jiān)視器每1秒輸出一次“ . ”程序執(zhí)行完畢,可以借助讀卡器播放錄制的聲音文件。

273a8694-74bf-11ee-939d-92fbcf53809c.png

音質(zhì)非常棒!

代碼如何工作的解釋超出了本教程的范圍,但您可以在SeeedStudio的wiki 頁(yè)面上找到詳細(xì)的描述。

相機(jī)測(cè)試

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

運(yùn)行代碼:take_photos_command.ino。打開(kāi)串行監(jiān)視器并發(fā)送命令“ capture ”來(lái)捕獲圖像并將其保存在SD卡上:

驗(yàn)證串口監(jiān)視器上是否選擇了 [Both NL & CR]。

27495066-74bf-11ee-939d-92fbcf53809c.png

測(cè)試WiFi

XIAO ESP32S3 的優(yōu)勢(shì)之一是其 WiFi 功能。那么,讓我們測(cè)試它的無(wú)線電,掃描它周圍的 WiFi 網(wǎng)絡(luò)。您可以通過(guò)運(yùn)行板上的代碼示例之一來(lái)完成此操作。

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

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

2760e348-74bf-11ee-939d-92fbcf53809c.png

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

讓我們測(cè)試一下設(shè)備作為 WiFi 服務(wù)器的能力。我們將在設(shè)備上托管一個(gè)簡(jiǎn)單的頁(yè)面,用于發(fā)送打開(kāi)和關(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ù)器的工作情況。

2768e174-74bf-11ee-939d-92fbcf53809c.png

獲取 IP 地址并在瀏覽器中輸入:

278278f0-74bf-11ee-939d-92fbcf53809c.png

您將看到一個(gè)頁(yè)面,其中包含可以打開(kāi)和關(guān)閉 XIAO 內(nèi)置 LED 的鏈接。

視頻流傳輸至網(wǎng)絡(luò)

現(xiàn)在您知道可以從網(wǎng)頁(yè)向您的設(shè)備發(fā)送命令,讓我們執(zhí)行相反的操作。讓我們拍攝相機(jī)捕獲的圖像并將其流式傳輸?shù)骄W(wǎng)頁(yè):

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

請(qǐng)記住,該文件夾不僅包含 .ino 文件,還包含處理相機(jī)所需的幾個(gè) .h 文件。

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

2789ba0c-74bf-11ee-939d-92fbcf53809c.png

在瀏覽器上打開(kāi)頁(yè)面(等待幾秒鐘以開(kāi)始流式傳輸)效果如圖。

當(dāng)您將相機(jī)定位為捕獲 ML 項(xiàng)目的數(shù)據(jù)集時(shí)(例如,使用代碼“take_photos_commands.ino”),簡(jiǎn)化相機(jī)“看到”的內(nèi)容可能非常重要。

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

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

將相機(jī)設(shè)置為 JPEG 輸出模式。

創(chuàng)建一個(gè)網(wǎng)頁(yè)(例如==> http://192.168.4.119//)。正確的地址將顯示在串行監(jiān)視器上。

如果 server.on ("/capture", HTTP_GET, serverCapture),則程序拍攝照片并將其發(fā)送到 Web。

可以使用[旋轉(zhuǎn)]按鈕旋轉(zhuǎn)網(wǎng)頁(yè)上的圖像

[CAPTURE]命令只會(huì)預(yù)覽網(wǎng)頁(yè)上的圖像,并在串行監(jiān)視器上顯示其大小

[SAVE]命令將圖像保存在SD卡上,同時(shí)在網(wǎng)絡(luò)上顯示圖像。

保存的圖像將遵循順序命名(image1.jpg、image2.jpg。

27c21e10-74bf-11ee-939d-92fbcf53809c.png

該程序可用于圖像分類項(xiàng)目的圖像數(shù)據(jù)集捕獲。

檢查代碼;將會(huì)更容易理解相機(jī)的工作原理。此代碼是基于 Rui Santos 的精彩教程:ESP32-CAM 在 Web 服務(wù)器中拍照并顯示而開(kāi)發(fā)的,我邀請(qǐng)大家訪問(wèn)該教程。

Step-3圖像數(shù)據(jù)收集


現(xiàn)在我們已經(jīng)運(yùn)行了嵌入式攝像頭,是時(shí)候嘗試圖像分類了。出于比較目的,我將復(fù)制開(kāi)發(fā)用于舊 ESP2-CAM 的相同圖像分類項(xiàng)目:

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

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

但首先,我們需要一個(gè)目標(biāo)!我們想要分類什么?

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

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

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

水果 - 香蕉、蘋果、梨、葡萄、橙子、獼猴桃、西瓜、石榴、菠蘿、芒果。

蔬菜 - 黃瓜、胡蘿卜、辣椒、洋蔥、土豆、檸檬、番茄、蘿卜、甜菜根、卷心菜、生菜、菠菜、大豆、花椰菜、甜椒、辣椒、蘿卜、玉米、甜玉米、紅薯、辣椒粉、墨西哥胡椒、生姜、大蒜、豌豆、茄子。

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

將數(shù)據(jù)集從 Kaggle 網(wǎng)站下載到您的計(jì)算機(jī)。

或者,您可也添加一些來(lái)自家庭廚房的香蕉、蘋果和土豆的新鮮照片。

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

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

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

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

接下來(lái),在 UPLOAD DATA 部分,從您的計(jì)算機(jī)上傳所選類別的文件:

wKgaomU8ajGANZgwAAGEY7Dp4F0284.png

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

wKgaomU8ag6ASX6TAAHjXhNXRuo072.png



您可以上傳額外的數(shù)據(jù)以進(jìn)行進(jìn)一步的模型測(cè)試或拆分訓(xùn)練數(shù)據(jù)。我將保留原樣,以使用盡可能多的數(shù)據(jù)。

模型設(shè)計(jì)

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

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

wKgZomU8aeGAYq25AAHkOVRsYOI095.png

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

因此,從原始圖像開(kāi)始,我們將調(diào)整它們的大小(96x96)像素,然后將它們輸入到我們的遷移學(xué)習(xí)塊中:

2816061a-74bf-11ee-939d-92fbcf53809c.png

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

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

281ff2b0-74bf-11ee-939d-92fbcf53809c.png

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

模型訓(xùn)練(遷移學(xué)習(xí)和數(shù)據(jù)增強(qiáng))

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

盡管基本的 MobileNet 架構(gòu)已經(jīng)很小并且延遲很低,但很多時(shí)候,特定的用例或應(yīng)用程序可能需要模型更小、更快。

MobileNet 引入了一個(gè)稱為寬度乘數(shù)的簡(jiǎn)單參數(shù) α(alpha)來(lái)構(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 時(shí),您將獲得最高的準(zhǔn)確度。當(dāng)然,這是一個(gè)權(quán)衡。精度越高,運(yùn)行模型所需的內(nèi)存(大約 1.3M RAM 和 2.6M ROM)就越多,這意味著延遲也就越長(zhǎng)。

MobileNet V1 和 α=0.10 的另一個(gè)極端(大約 53.2K RAM 和 101K ROM)將獲得更小的占用空間。

當(dāng)我們第一次發(fā)布這個(gè)在 ESP32-CAM 上運(yùn)行的項(xiàng)目時(shí),我們停留在可能性的較低水平,這保證了小延遲的推理,但不能保證高精度。對(duì)于第一遍,我們將保留此模型設(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ù)的方法。

在下面,您可以看到 Edge Impulse 如何對(duì)您的數(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)練期間接觸這些變化可以幫助防止模型通過(guò)“記住”訓(xùn)練數(shù)據(jù)中的表面線索來(lái)走捷徑,這意味著它可以更好地反映數(shù)據(jù)集中深層的底層模式。

我們模型的最后一層將有 16 個(gè)神經(jīng)元,并具有 10% 的 dropout,以防止過(guò)度擬合。這是訓(xùn)練輸出:

2829cc4a-74bf-11ee-939d-92fbcf53809c.png



結(jié)果并不好。該模型達(dá)到了約 77% 的準(zhǔn)確率,但預(yù)計(jì)在推理過(guò)程中使用的 RAM 量相對(duì)較小(約 60 KB),這非常好。

模型部署

訓(xùn)練后的模型將作為 .zip Arduino 庫(kù)部署:

打開(kāi) Arduino IDE,然后在 Sketch 下,轉(zhuǎn)到 Include Library 和 add.ZIP Library。選擇您從 Edge Impulse Studio 下載的文件,就這樣!

283cfae0-74bf-11ee-939d-92fbcf53809c.png

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

284c1912-74bf-11ee-939d-92fbcf53809c.jpg

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

28562a4c-74bf-11ee-939d-92fbcf53809c.png

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

#include      

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

我們應(yīng)該從相機(jī)獲取樣本(圖像)并對(duì)其進(jìn)行預(yù)處理(調(diào)整大小至 96x96、轉(zhuǎn)換為灰度并展平)。這將是我們模型的輸入張量。

輸出張量將是一個(gè)具有三個(gè)值(標(biāo)簽)的向量,顯示每一類的概率。

2860dcee-74bf-11ee-939d-92fbcf53809c.png

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

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

286f04c2-74bf-11ee-939d-92fbcf53809c.png



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

如果編譯代碼并出現(xiàn)錯(cuò)誤,則有必要修復(fù)此問(wèn)題。EI 建議關(guān)閉 ESP NN 加速。為此,請(qǐng)?jiān)趯?dǎo)出的 Arduino 庫(kù)文件夾中找到 ei_classifier_config.h :/scr/edge-impulse-sdk/classifier/:

288400c0-74bf-11ee-939d-92fbcf53809c.png



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

28936574-74bf-11ee-939d-92fbcf53809c.png



現(xiàn)在,在運(yùn)行推理時(shí),您應(yīng)該獲得“香蕉”的最高分。

289bf02c-74bf-11ee-939d-92fbcf53809c.png



好消息!我們的設(shè)備進(jìn)行推理,發(fā)現(xiàn)輸入圖像是香蕉。另請(qǐng)注意,推理時(shí)間約為 317 毫秒,如果您嘗試對(duì)視頻中的圖像進(jìn)行分類,則最大幀率為 3 fps。

這是比 ESP32 CAM(525 毫秒延遲)更好的結(jié)果。

現(xiàn)在,我們應(yīng)該結(jié)合相機(jī)并對(duì)圖像進(jìn)行實(shí)時(shí)分類。

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

28ad98f4-74bf-11ee-939d-92fbcf53809c.jpg



應(yīng)該通過(guò)與我們的模型相關(guān)的數(shù)據(jù)更改第 32 至 75 行,這些行定義了相機(jī)模型和引腳:

28b77d24-74bf-11ee-939d-92fbcf53809c.png

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

請(qǐng)注意,您可以選擇將引腳保留為 a.h 文件,就像我們?cè)谇懊娌糠种兴龅哪菢印?/pre>

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

測(cè)試模型(推理)


用相機(jī)拍照,分類結(jié)果將顯示在串行監(jiān)視器上:

28d5e1b0-74bf-11ee-939d-92fbcf53809c.png

其他測(cè)試:

image.png

結(jié)論

XIAO ESP32S3 Sense是一種非常靈活,高性價(jià)比且易于編程的設(shè)備。該項(xiàng)目證明了TinyML的潛力。記憶不是問(wèn)題;該設(shè)備可以處理許多后處理任務(wù),包括通信。但是您應(yīng)該考慮到高延遲(沒(méi)有ESP NN加速器)將限制一些應(yīng)用程序,盡管XIAO比ESP32-CAM快50%。在我的GitHub存儲(chǔ)庫(kù)中,您可以找到代碼的最新版本:XIAO-ESP32S3-Sense。一如既往,我希望這個(gè)項(xiàng)目可以幫助其他人在人工智能電子物聯(lián)網(wǎng)的激動(dòng)人心的世界中找到自己的路!

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)投訴
  • 傳感器
    +關(guān)注

    關(guān)注

    2553

    文章

    51390

    瀏覽量

    756563
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    19407

    瀏覽量

    231171
  • 攝像頭
    +關(guān)注

    關(guān)注

    60

    文章

    4862

    瀏覽量

    96298
  • 圖像分類
    +關(guān)注

    關(guān)注

    0

    文章

    93

    瀏覽量

    11956
  • esp32s3
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    626

原文標(biāo)題:創(chuàng)客項(xiàng)目秀|基于XIAO 的圖像分類處理項(xiàng)目

文章出處:【微信號(hào):ChaiHuoMakerSpace,微信公眾號(hào):柴火創(chuàng)客空間】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    一種柔性圖像并行處理機(jī)

    一種柔性圖像并行處理機(jī)摘 要:探討了多指令流多數(shù)據(jù)流圖像并行處理拓?fù)浣Y(jié)構(gòu),設(shè)計(jì)了一種具有柔性結(jié)構(gòu)的圖像并行
    發(fā)表于 10-06 08:57

    基于多通道分類合成的SAR圖像分類研究

    【作者】:李長(zhǎng)春;冒亞明;孫灝;慎利;【來(lái)源】:《計(jì)算機(jī)與現(xiàn)代化》2010年03期【摘要】:SAR具有全天時(shí)、全天候工作能力,且能夠提供高分辨率圖像數(shù)據(jù)。SAR圖像分類是SAR圖像
    發(fā)表于 04-23 11:52

    公司項(xiàng)目外包:圖像處理(FPGA實(shí)現(xiàn))

    本公司有個(gè)項(xiàng)目需要尋找外援,價(jià)格面談大概要求:高清網(wǎng)絡(luò)攝像機(jī)采集到的圖像是原始圖像(貝爾模式下的RGB即CFA模式)經(jīng)過(guò)轉(zhuǎn)換處理成普通的RGB(需在FPGA上實(shí)現(xiàn)),最終通過(guò)VGA輸出
    發(fā)表于 12-07 10:16

    【TL6748 DSP申請(qǐng)】指紋圖像處理項(xiàng)目、攝像頭視頻還原項(xiàng)目、音頻算法研究項(xiàng)目

    申請(qǐng)理由:指紋圖像處理項(xiàng)目、攝像頭視頻還原項(xiàng)目、音頻算法研究項(xiàng)目項(xiàng)目描述:指紋
    發(fā)表于 09-10 11:16

    區(qū)分圖像分類方法是什么

    區(qū)分圖像分類方法
    發(fā)表于 05-07 09:37

    【Seeeduino XIAO申請(qǐng)】基于微控制器和激光測(cè)距的小型防撞提醒裝置

    項(xiàng)目名稱:基于微控制器和激光測(cè)距的小型防撞提醒裝置試用計(jì)劃:申請(qǐng)理由本人在嵌入式和電路設(shè)計(jì)有五年多的學(xué)習(xí)和開(kāi)發(fā)經(jīng)驗(yàn),曾設(shè)計(jì)過(guò)北斗GPS多功能救生裝置,想借助發(fā)燒友論壇和Seeeduino XIAO
    發(fā)表于 06-08 18:45

    【Seeeduino XIAO申請(qǐng)】準(zhǔn)備試下中控,準(zhǔn)備帶孩子學(xué)習(xí)下Seeeduino XIAO開(kāi)發(fā)板。

    項(xiàng)目名稱:準(zhǔn)備試下中控,準(zhǔn)備帶孩子學(xué)習(xí)下Seeeduino XIAO開(kāi)發(fā)板。試用計(jì)劃:試用計(jì)劃:本人在本領(lǐng)域有三年多的學(xué)習(xí)和開(kāi)發(fā)經(jīng)驗(yàn),最近少兒編程非常的火爆,申請(qǐng)這個(gè)Seeeduino XIAO
    發(fā)表于 06-08 18:46

    【Seeeduino XIAO申請(qǐng)】Seeeduino XIAO的PWM應(yīng)用

    項(xiàng)目名稱:Seeeduino XIAO的PWM應(yīng)用試用計(jì)劃:申請(qǐng)理由:Seeeduino XIAO是矽遞科技推出的32位低功耗微型控制器,適合穿戴類設(shè)備的開(kāi)發(fā),CPU是基于ARM
    發(fā)表于 06-08 18:46

    圖像分類的方法之深度學(xué)習(xí)與傳統(tǒng)機(jī)器學(xué)習(xí)

    實(shí)際情況非常復(fù)雜,傳統(tǒng)的分類方法不堪重負(fù)。現(xiàn)在,我們不再試圖用代碼來(lái)描述每一個(gè)圖像類別,決定轉(zhuǎn)而使用機(jī)器學(xué)習(xí)的方法處理圖像分類問(wèn)題。 目前,
    發(fā)表于 09-28 19:43 ?0次下載

    基于顯著性檢測(cè)的圖像分類算法

    針對(duì)傳統(tǒng)的圖像分類方法對(duì)整個(gè)圖像不分等級(jí)處理以及缺乏高層認(rèn)知的問(wèn)題,提出了一種基于顯著性檢測(cè)的圖像分類
    發(fā)表于 01-04 13:47 ?0次下載

    簡(jiǎn)單好上手的圖像分類教程!

    簡(jiǎn)單好上手的圖像分類教程!構(gòu)建圖像分類模型的一個(gè)突破是發(fā)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)(CNN)可以用來(lái)逐步地提取圖像內(nèi)容的更高層的表示。CNN不是預(yù)先
    的頭像 發(fā)表于 05-31 16:36 ?8284次閱讀
    簡(jiǎn)單好上手的<b class='flag-5'>圖像</b><b class='flag-5'>分類</b>教程!

    關(guān)于深度學(xué)習(xí)圖像分類不得不說(shuō)的技巧詳解

    計(jì)算機(jī)視覺(jué)主要問(wèn)題有圖像分類、目標(biāo)檢測(cè)和圖像分割等。針對(duì)圖像分類任務(wù),提升準(zhǔn)確率的方法路線有兩條,一個(gè)是模型的修改,另一個(gè)是各種數(shù)據(jù)
    的頭像 發(fā)表于 04-01 14:29 ?3028次閱讀
    關(guān)于深度學(xué)習(xí)<b class='flag-5'>圖像</b><b class='flag-5'>分類</b>不得不說(shuō)的技巧詳解

    圖像分類任務(wù)的各種tricks

    計(jì)算機(jī)視覺(jué)主要問(wèn)題有圖像分類、目標(biāo)檢測(cè)和圖像分割等。針對(duì)圖像分類任務(wù),提升準(zhǔn)確率的方法路線有兩條,一個(gè)是模型的修改,另一個(gè)是各種數(shù)據(jù)
    的頭像 發(fā)表于 09-14 16:42 ?1207次閱讀

    使用CircuitPython對(duì)Seeeduino Xiao進(jìn)行編程上午開(kāi)源項(xiàng)目

    電子發(fā)燒友網(wǎng)站提供《使用CircuitPython對(duì)Seeeduino Xiao進(jìn)行編程上午開(kāi)源項(xiàng)目.zip》資料免費(fèi)下載
    發(fā)表于 11-18 09:27 ?0次下載
    使用CircuitPython對(duì)Seeeduino <b class='flag-5'>Xiao</b>進(jìn)行編程上午開(kāi)源<b class='flag-5'>項(xiàng)目</b>

    簡(jiǎn)單易懂常用的 Python 圖像處理庫(kù)

    圖像處理中的常見(jiàn)任務(wù)包括顯示圖像,基本操作(如裁剪、翻轉(zhuǎn)、旋轉(zhuǎn)等),圖像分割,分類和特征提取,圖像
    發(fā)表于 12-28 09:42 ?816次閱讀
    澳门威尼斯人娱乐| 百家乐投注平台导航网| 百家乐官网10个人| 金沙网上娱乐城| 威尼斯人娱乐棋牌下载| 百家乐越长的路| 属蛇做生意坐向| 公海百家乐官网的玩法技巧和规则 | 芝加哥百家乐的玩法技巧和规则| 百家乐视频游戏平台| 肯博百家乐官网的玩法技巧和规则| 澳门百家乐官网规例| 百家乐官网微心打法| 易胜博棋牌| 星空棋牌大厅下载| 二八杠分析仪| 888百家乐的玩法技巧和规则| 百家乐定位膽技巧| 百家乐必胜绝技| 百家乐官网路单下| 澳门百家乐官网游戏玩法 | 百家乐官网翻天youtube| 讷河市| 云南省| 新国美娱乐城| 六合彩现场开奖结果| 大发888线上娱乐21点| 威尼斯人娱乐城介| YY百家乐的玩法技巧和规则| 茅台百家乐的玩法技巧和规则| 誉博百家乐327589| 网络百家乐漏洞| 百家乐游戏接口| 百家乐电投软件| 百家乐必胜赌| 澳门百家乐赌技巧| 百家乐五湖四海娱乐| 百家乐必胜密| 优惠搏百家乐的玩法技巧和规则| 利高百家乐的玩法技巧和规则| 威尼斯人娱乐场色|