本次的重中之重就是體驗MAX78000FTHR的邊緣計算,本次選用的demo是kws20_demo,演示了如何使用MAX78000FTHR 識別關(guān)鍵字,完整數(shù)據(jù)集中的以下 20 個關(guān)鍵字子集:[‘up’, ‘down’, ‘left’, ‘right’, ‘stop’, ‘go’, ‘yes’, ‘no’, ‘on’, ‘off’, ‘one’, ‘two’, ‘three’, ‘four’, ‘five’, ‘six’, ‘seven’, ‘eight’, ‘nine’, ‘zero’]其余關(guān)鍵字和無法識別的詞屬于“Unknown”類別。
demo體驗:
首先導(dǎo)入kws20_demo這個例子,基礎(chǔ)例程在:\MaximSDK\Examples\MAX78000\CNN\kws20_demo,不過我這邊不建議通過“Import”添加,因為在我們不用的使用進行刪除時,如果不小心選擇了刪除源文件會將demo文件刪除,這樣就不能再繼續(xù)使用了,如果通過新建的方式參考demo建工程,相當(dāng)于把demo復(fù)制了過來,這樣咱們刪除不刪除至少不會對基礎(chǔ)demo例程產(chǎn)生損害。
接下來我們編譯工程并調(diào)試,可以發(fā)現(xiàn)綠燈亮起,這個時候我們可以說出上面的關(guān)鍵詞,采集到后就可以通過串口輸出了,如下圖:
可以看到當(dāng)采集到麥克風(fēng)的動作時就出出發(fā)輸出,如果沒有識別就會是“Unknown”,輸出內(nèi)容包括采集次數(shù),邊緣計算CNN運行時間,音量的大小,以及識別出的字符。通過不斷的測試發(fā)現(xiàn)“SEVEN”的識別相對錯誤率或者不識別率比較高,有可能是我的發(fā)音與第二版 Google 語音命令數(shù)據(jù)集差別比較大。
CNN實現(xiàn)流程:
需要的環(huán)境:
ADI推薦的是使用windows上的wsl進行模型訓(xùn)練,需要借用GPU的計算能力,GPU對于加速訓(xùn)練的效果非常明顯,注意在wsl中安裝的cuda版本號就不能電腦支持的最高版本。
接下來是linux中的操作,安裝一個PyTorch,模型訓(xùn)練是使用PyTorch機型進行訓(xùn)練的,并且安裝一些系列的工具如penv。
重中之重是ai8x-training和ai8x-synthesis兩個庫,ai8x-training與我們模型訓(xùn)練及模型評估相關(guān),ai8x-synthesis是量化模型,生成sdk開發(fā)中的3個文件相關(guān),具體介紹可以參考下面的官方介紹: