資料介紹
描述
介紹
在這個項目中,我圍繞一個訓(xùn)練識別單詞left 、right 、up和down的模型構(gòu)建了一個應(yīng)用程序。它所做的只是捕獲和處理音頻,將其輸入 TensorFlow Lite 模型,然后在 OLED 顯示器上顯示輸出。我將介紹如何使用 i.MXR1010 評估套件在邊緣設(shè)置和進(jìn)行機(jī)器學(xué)習(xí)。
設(shè)置開發(fā)環(huán)境
任何機(jī)器學(xué)習(xí)和嵌入式電子項目都需要許多硬件和軟件才能使用。我正在使用 MacOS 進(jìn)行開發(fā)。由于 Nvidia GPU 不支持 MacOS,所以我使用 Linux 桌面進(jìn)行訓(xùn)練和模型生成。
安裝 MCUExpresso IDE

下載 SDK 后,我們需要將下載的包拖放到 MCUExpresso IDE Installed SDKs區(qū)域,如下所示(紅色框)。

我們可以從 Quickstart Panel > New Project 創(chuàng)建一個新項目,它會顯示一個向?qū)В覀兛梢栽谄渲羞x擇 IMXRT1010 作為開發(fā)板。我們可以使用此向?qū)渲盟璧尿?qū)動程序/組件,如下所示。添加/刪除驅(qū)動程序和其他組件可以在此期間完成。發(fā)展。由于我們將使用 TensorFlow C++ 庫,所以我選擇了C++ Project 。

為微控制器安裝 TensorFlow Lite
用于微控制器的 TensorFlow Lite 能夠生成包含所有必要源文件的獨立項目。我的 MCUXpresso IDE 工作區(qū)位于 ~/Documents/MCUXpressoIDE_11.1.0/workspace/。您可能需要根據(jù)您的目錄結(jié)構(gòu)更改路徑。我們還需要制作3.82 或更高版本。MacOS Catalina 上捆綁的make版本為 3.81。我們可以使用安裝所需的版本
brew install make
并且可以使用gmake命令運行它。
cd ~
git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow
gmake -f tensorflow/lite/micro/tools/make/Makefile generate_projects
cp -r tensorflow/lite/micro/tools/make/gen/osx_x86_64/prj/micro_speech/make/* ~/Documents/MCUXpressoIDE_11.1.0/workspace/IMXRT1010_Speech_Recognition/source
復(fù)制后,我們將擁有 TensorFlow C++ 庫以及其他一些用于音頻處理的第三方庫。我們需要使用Quickstart Panel > Edit Project Settings > C/C++ build > Settings > MCU C++ Compiler > Includes為不屬于 SDK 的庫(在下面的屏幕截圖中突出顯示)設(shè)置包含路徑。

應(yīng)用程序?qū)⒉东@的音頻數(shù)據(jù)保存在運行時創(chuàng)建的緩沖區(qū)中,因此我們需要將默認(rèn)堆大小(僅 2KB)調(diào)整為 14 KB。此外,一些緩沖區(qū)數(shù)據(jù)需要是不可緩存的。我們可以利用 i.MXRT1010 的FlexRAM功能。堆棧/堆大小和不可緩存數(shù)據(jù)可以使用Quickstart Panel > Edit Project Settings > C/C++ build > Settings > MCU C++ Linker > Managed Linker Script進(jìn)行配置。

i.MXRT1010 具有有限的 128 KB 內(nèi)存,分為 32 KB 庫。由于內(nèi)存溢出,編譯失敗。
section `.heap' will not fit in region `SRAM_DTC'
arm-none-eabi/bin/ld: region `SRAM_DTC' overflowed by 15920 bytes
Memory region Used Size Region Size %age Used
BOARD_FLASH: 215432 B 16 MB 1.28%
SRAM_DTC: 48688 B 32 KB 148.58%
SRAM_ITC: 0 GB 32 KB 0.00%
SRAM_OC: 0 GB 32 KB 0.00%
NCACHE_REGION: 4748 B 32 KB 14.49%
多虧了FlexRAM ,我們可以使用下面的代碼配置變量聲明以選擇內(nèi)存庫。__DATA(RAM3)用于告訴編譯器將大約 16 KB 的變量g_audio_capture_buffer保存到 FlexRAM 的 OCRAM 部分 (SRAM_OC) 中。
__DATA(RAM3) int16_t g_audio_capture_buffer[kAudioCaptureBufferSize];
編譯后,我們可以在下面看到內(nèi)存分配的編譯器輸出。
Memory region Used Size Region Size %age Used
BOARD_FLASH: 231432 B 16 MB 1.38%
SRAM_DTC: 32688 B 32 KB 99.76%
SRAM_ITC: 0 GB 32 KB 0.00%
SRAM_OC: 16000 B 32 KB 48.83%
NCACHE_REGION: 4748 B 32 KB 14.49%
訓(xùn)練數(shù)據(jù)集和模型生成
我們使用的模型是使用 TensorFlow Simple Audio Recognition 腳本訓(xùn)練的,這是一個示例腳本,旨在演示如何使用 TensorFlow 構(gòu)建和訓(xùn)練音頻識別模型。該模型在帶有 eGPU(Nvidia 1080 Ti)的 Linux 桌面上進(jìn)行了訓(xùn)練,其中包含“上”、“下”、“左”、“右”四個詞。數(shù)據(jù)集中的其他詞被用作“未知”。將創(chuàng)建的模型轉(zhuǎn)換為 TensorFlow Lite 模型,并將轉(zhuǎn)換后的模型轉(zhuǎn)換為 C 數(shù)組文件,以便與推理代碼一起部署。TensorFlow Lite Micro SDK 用于在設(shè)備上運行推理。卷積神經(jīng)網(wǎng)絡(luò)用于模型創(chuàng)建。
設(shè)備端推理
使用帶有增強型直接內(nèi)存訪問 (eDMA) 控制器的同步音頻接口 (SAI) 捕獲音頻。該過程首先為給定的時間片生成快速傅立葉變換 (FFT),在本例中為 30 ms 的捕獲音頻數(shù)據(jù)。TensorFlow Lite 模型不接收原始音頻樣本數(shù)據(jù)。相反,它適用于頻譜圖,頻譜圖是由頻率信息切片組成的二維數(shù)組,每個切片取自不同的時間窗口。我們可以將頻譜圖視為輸入模型進(jìn)行推理的圖像數(shù)據(jù)。OLED 顯示器通過 I2C 連接到 i.MXRT1010 EVK。The
預(yù)測的單詞顯示在 OLED 顯示屏上。
構(gòu)建和調(diào)試
可以分別使用 MCUExpresso IDE Quickstart Panel > Build和Quickstart Panel > Debug來構(gòu)建和調(diào)試項目。使用菜單ConfigTools > Pins將 UART 引腳配置為在調(diào)試期間重定向打印。

在 MacOS 上可以使用以下命令查看調(diào)試打?。?/font>
screen /dev/cu.usbmodem14202 115200
板載 LED 也配置為在推理時閃爍。
演示視頻
現(xiàn)場演示如下。它并不完美,但有效。
改進(jìn)范圍
如果使用 8 位量化模型,可以提高推理率。目前,TensorFlow Lite Micro SDK 中缺少一些操作,這些操作不允許將 Conv 2D 轉(zhuǎn)換為量化版本。目前,由于音頻數(shù)據(jù)中的口音或噪音,有時會漏掉一些單詞。如果使用遷移學(xué)習(xí)使用更多自己的語音數(shù)據(jù)進(jìn)行訓(xùn)練,則可以提高模型的準(zhǔn)確性。此外,板載麥克風(fēng)數(shù)據(jù)有一些噪音,可以使用某些設(shè)置進(jìn)行修復(fù),或者可以使用外部數(shù)字麥克風(fēng)以獲得更好的性能。
此應(yīng)用程序的 MCUExpresso 項目可以在代碼部分提到的 Github 存儲庫中找到。
- Helping Finger開源硬件
- 顏色循環(huán)開源硬件
- 開源硬件-警燈
- AirBits開源硬件
- 閃爍的LED開源硬件
- 智能積木開源硬件
- 可識別額外乘客設(shè)備的開源硬件
- 音箱開源硬件分享
- HBus開源硬件
- 門鈴開源硬件
- 開源硬件之語音控制LED
- Arduino手表開源硬件
- 機(jī)械臂開源硬件
- 基于Arduino硬件光控?zé)糁谱髻Y料 7次下載
- 主流的開源硬件有哪些詳細(xì)資料說明
- 用小安派開源硬件制作一個桌面天氣站 1007次閱讀
- 尋找開源硬件成功的觸發(fā)器 755次閱讀
- 當(dāng)語音控制和語音接口開始滲透到所有消費類邊緣設(shè)備 1772次閱讀
- dfrobot語音識別控制板 介紹 3202次閱讀
- 源創(chuàng)通信BPI-M1+ 開源硬件開發(fā)板介紹 2811次閱讀
- 語音識別系統(tǒng)功能_語音識別系統(tǒng)的應(yīng)用 5694次閱讀
- 語音識別芯片的原理_語音識別芯片有哪些 5308次閱讀
- 利用語音識別技術(shù)和嵌入式系統(tǒng)交叉研究是語音識別的一個重要研究方向 1525次閱讀
- 語音識別技術(shù)的發(fā)展歷程,語音識別是如何工作的?語音識別資料概述 1w次閱讀
- 三大主流開源硬件對比:Arduino vs BeagleBone vs Raspberry Pi 6655次閱讀
- 語音識別技術(shù)是什么_語音識別技術(shù)應(yīng)用領(lǐng)域介紹 1.6w次閱讀
- 從應(yīng)用、算法、芯片角度了解語音識別技術(shù) 7838次閱讀
- 開源硬件究竟有多“Open”?看完這個你就清楚了 7124次閱讀
- 語音識別技術(shù)原理全面解析 1.2w次閱讀
- 語音識別技術(shù)的應(yīng)用及發(fā)展 2346次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應(yīng)用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關(guān)電源設(shè)計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅(qū)動電路設(shè)計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論