資料介紹
描述
介紹
在這個項目中,我圍繞一個訓練識別單詞left 、right 、up和down的模型構(gòu)建了一個應用程序。它所做的只是捕獲和處理音頻,將其輸入 TensorFlow Lite 模型,然后在 OLED 顯示器上顯示輸出。我將介紹如何使用 i.MXR1010 評估套件在邊緣設(shè)置和進行機器學習。
設(shè)置開發(fā)環(huán)境
任何機器學習和嵌入式電子項目都需要許多硬件和軟件才能使用。我正在使用 MacOS 進行開發(fā)。由于 Nvidia GPU 不支持 MacOS,所以我使用 Linux 桌面進行訓練和模型生成。
安裝 MCUExpresso IDE
![pYYBAGNxItyATBR7AALZttDAMmc167.png](https://file.elecfans.com/web2/M00/7A/CF/pYYBAGNxItyATBR7AALZttDAMmc167.png)
下載 SDK 后,我們需要將下載的包拖放到 MCUExpresso IDE Installed SDKs區(qū)域,如下所示(紅色框)。
![poYBAGNxIt6AQqU3AABiG-SFqk0202.jpg](https://file.elecfans.com/web2/M00/7A/40/poYBAGNxIt6AQqU3AABiG-SFqk0202.jpg)
我們可以從 Quickstart Panel > New Project 創(chuàng)建一個新項目,它會顯示一個向?qū)?,我們可以在其中選擇 IMXRT1010 作為開發(fā)板。我們可以使用此向?qū)渲盟璧尿?qū)動程序/組件,如下所示。添加/刪除驅(qū)動程序和其他組件可以在此期間完成。發(fā)展。由于我們將使用 TensorFlow C++ 庫,所以我選擇了C++ Project 。
![pYYBAGNxIuGALxF_AAJdZJzFir4573.png](https://file.elecfans.com/web2/M00/7A/CF/pYYBAGNxIuGALxF_AAJdZJzFir4573.png)
為微控制器安裝 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
復制后,我們將擁有 TensorFlow C++ 庫以及其他一些用于音頻處理的第三方庫。我們需要使用Quickstart Panel > Edit Project Settings > C/C++ build > Settings > MCU C++ Compiler > Includes為不屬于 SDK 的庫(在下面的屏幕截圖中突出顯示)設(shè)置包含路徑。
![poYBAGNxIuWAcV25AANNE6xedKE420.png](https://file.elecfans.com/web2/M00/7A/40/poYBAGNxIuWAcV25AANNE6xedKE420.png)
應用程序?qū)⒉东@的音頻數(shù)據(jù)保存在運行時創(chuàng)建的緩沖區(qū)中,因此我們需要將默認堆大?。▋H 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進行配置。
![poYBAGNxIuiACz0OAAK7qVqwE_Y206.png](https://file.elecfans.com/web2/M00/7A/40/poYBAGNxIuiACz0OAAK7qVqwE_Y206.png)
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%
訓練數(shù)據(jù)集和模型生成
我們使用的模型是使用 TensorFlow Simple Audio Recognition 腳本訓練的,這是一個示例腳本,旨在演示如何使用 TensorFlow 構(gòu)建和訓練音頻識別模型。該模型在帶有 eGPU(Nvidia 1080 Ti)的 Linux 桌面上進行了訓練,其中包含“上”、“下”、“左”、“右”四個詞。數(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ù)組,每個切片取自不同的時間窗口。我們可以將頻譜圖視為輸入模型進行推理的圖像數(shù)據(jù)。OLED 顯示器通過 I2C 連接到 i.MXRT1010 EVK。The
預測的單詞顯示在 OLED 顯示屏上。
構(gòu)建和調(diào)試
可以分別使用 MCUExpresso IDE Quickstart Panel > Build和Quickstart Panel > Debug來構(gòu)建和調(diào)試項目。使用菜單ConfigTools > Pins將 UART 引腳配置為在調(diào)試期間重定向打印。
![pYYBAGNxIuyAJFTsAAPBJupBAE0277.png](https://file.elecfans.com/web2/M00/7A/CF/pYYBAGNxIuyAJFTsAAPBJupBAE0277.png)
在 MacOS 上可以使用以下命令查看調(diào)試打?。?/font>
screen /dev/cu.usbmodem14202 115200
板載 LED 也配置為在推理時閃爍。
演示視頻
現(xiàn)場演示如下。它并不完美,但有效。
改進范圍
如果使用 8 位量化模型,可以提高推理率。目前,TensorFlow Lite Micro SDK 中缺少一些操作,這些操作不允許將 Conv 2D 轉(zhuǎn)換為量化版本。目前,由于音頻數(shù)據(jù)中的口音或噪音,有時會漏掉一些單詞。如果使用遷移學習使用更多自己的語音數(shù)據(jù)進行訓練,則可以提高模型的準確性。此外,板載麥克風數(shù)據(jù)有一些噪音,可以使用某些設(shè)置進行修復,或者可以使用外部數(shù)字麥克風以獲得更好的性能。
此應用程序的 MCUExpresso 項目可以在代碼部分提到的 Github 存儲庫中找到。
- Helping Finger開源硬件
- 顏色循環(huán)開源硬件
- 開源硬件-警燈
- AirBits開源硬件
- 閃爍的LED開源硬件
- 智能積木開源硬件
- 可識別額外乘客設(shè)備的開源硬件
- 音箱開源硬件分享
- HBus開源硬件
- 門鈴開源硬件
- 開源硬件之語音控制LED
- Arduino手表開源硬件
- 機械臂開源硬件
- 基于Arduino硬件光控燈制作資料 7次下載
- 主流的開源硬件有哪些詳細資料說明
- 用小安派開源硬件制作一個桌面天氣站 1007次閱讀
- 尋找開源硬件成功的觸發(fā)器 755次閱讀
- 當語音控制和語音接口開始滲透到所有消費類邊緣設(shè)備 1772次閱讀
- dfrobot語音識別控制板 介紹 3202次閱讀
- 源創(chuàng)通信BPI-M1+ 開源硬件開發(fā)板介紹 2811次閱讀
- 語音識別系統(tǒng)功能_語音識別系統(tǒng)的應用 5694次閱讀
- 語音識別芯片的原理_語音識別芯片有哪些 5308次閱讀
- 利用語音識別技術(shù)和嵌入式系統(tǒng)交叉研究是語音識別的一個重要研究方向 1525次閱讀
- 語音識別技術(shù)的發(fā)展歷程,語音識別是如何工作的?語音識別資料概述 1w次閱讀
- 三大主流開源硬件對比:Arduino vs BeagleBone vs Raspberry Pi 6655次閱讀
- 語音識別技術(shù)是什么_語音識別技術(shù)應用領(lǐng)域介紹 1.6w次閱讀
- 從應用、算法、芯片角度了解語音識別技術(shù) 7838次閱讀
- 開源硬件究竟有多“Open”?看完這個你就清楚了 7124次閱讀
- 語音識別技術(shù)原理全面解析 1.2w次閱讀
- 語音識別技術(shù)的應用及發(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元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用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十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論