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

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

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

在Cortex-M處理器上完成關(guān)鍵詞識別所面臨的問題分析

電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2018-09-28 09:35 ? 次閱讀

我們可以對神經(jīng)網(wǎng)絡(luò)架構(gòu)進(jìn)行優(yōu)化,使之適配微控制器的內(nèi)存和計(jì)算限制范圍,并且不會影響精度。我們將在本文中解釋和探討深度可分離卷積神經(jīng)網(wǎng)絡(luò)在 Cortex-M 處理器上實(shí)現(xiàn)關(guān)鍵詞識別的潛力。

關(guān)鍵詞識別 (KWS) 對于在智能設(shè)備上實(shí)現(xiàn)基于語音的用戶交互十分關(guān)鍵,需要實(shí)時響應(yīng)和高精度,才能確保良好的用戶體驗(yàn)。最近,神經(jīng)網(wǎng)絡(luò)已經(jīng)成為 KWS 架構(gòu)的熱門選擇,因?yàn)榕c傳統(tǒng)的語音處理算法相比,神經(jīng)網(wǎng)絡(luò)的精度更勝一籌。

在Cortex-M處理器上完成關(guān)鍵詞識別所面臨的問題分析

關(guān)鍵詞識別神經(jīng)網(wǎng)絡(luò)管道

由于要保持“永遠(yuǎn)在線”,KWS 應(yīng)用的功耗預(yù)算受到很大限制。雖然 KWS 應(yīng)用也可在專用 DSP 或高性能 CPU 上運(yùn)行,但更適合在 Arm Cortex-M 微控制器上運(yùn)行,有助于最大限度地降低成本,Arm Cortex-M 微控制器經(jīng)常在物聯(lián)網(wǎng)邊緣用于處理其他任務(wù)。

但是,要在基于 Cortex-M 的微控制器上部署基于神經(jīng)網(wǎng)絡(luò)的 KWS,我們面臨著以下挑戰(zhàn):

1.有限的內(nèi)存空間

典型的 Cortex-M 系統(tǒng)最多提供幾百 KB 的可用內(nèi)存。這意味著,整個神經(jīng)網(wǎng)絡(luò)模型,包括輸入/輸出、權(quán)重和激活,都必須在這個很小的內(nèi)存范圍內(nèi)運(yùn)行。

2.有限的計(jì)算資源

由于 KWS 要保持永遠(yuǎn)在線,這種實(shí)時性要求限制了每次神經(jīng)網(wǎng)絡(luò)推理的總運(yùn)算數(shù)量。

以下是適用于 KWS 推理的典型神經(jīng)網(wǎng)絡(luò)架構(gòu):

● 深度神經(jīng)網(wǎng)絡(luò) (DNN)

DNN 是標(biāo)準(zhǔn)的前饋神經(jīng)網(wǎng)絡(luò),由全連接層和非線性激活層堆疊而成。

● 卷積神經(jīng)網(wǎng)絡(luò) (CNN)

基于 DNN 的 KWS 的一大主要缺陷是無法為語音功能中的局域關(guān)聯(lián)性、時域關(guān)聯(lián)性、頻域關(guān)聯(lián)性建模。CNN 則可將輸入時域和頻域特征當(dāng)作圖像處理,并且在上面執(zhí)行 2D 卷積運(yùn)算,從而發(fā)現(xiàn)這種關(guān)聯(lián)性。

● 循環(huán)神經(jīng)網(wǎng)絡(luò) (RNN)

RNN 在很多序列建模任務(wù)中都展現(xiàn)出了出色的性能,特別是在語音識別、語言建模和翻譯中。RNN 不僅能夠發(fā)現(xiàn)輸入信號之間的時域關(guān)系,還能使用“門控”機(jī)制來捕捉長時依賴關(guān)系。

● 卷積循環(huán)神經(jīng)網(wǎng)絡(luò) (CRNN)

卷積循環(huán)神經(jīng)網(wǎng)絡(luò)是 CNN 和 RNN 的混合,可發(fā)現(xiàn)局部時間/空間關(guān)聯(lián)性。CRNN 模型從卷積層開始,然后是 RNN,對信號進(jìn)行編碼,接下來是密集全連接層。

● 深度可分離卷積神經(jīng)網(wǎng)絡(luò) (DS-CNN)

最近,深度可分離卷積神經(jīng)網(wǎng)絡(luò)推薦為標(biāo)準(zhǔn) 3D 卷積運(yùn)算的高效替代方案,并已用于實(shí)現(xiàn)計(jì)算機(jī)視覺的緊湊網(wǎng)絡(luò)架構(gòu)。

DS-CNN 首先使用獨(dú)立的 2D 濾波,對輸入特征圖中的每個通道進(jìn)行卷積計(jì)算,然后使用點(diǎn)態(tài)卷積(即 1x1),合并縱深維度中的輸出。通過將標(biāo)準(zhǔn) 3D 卷積分解為 2D和后續(xù)的 1D,參數(shù)和運(yùn)算的數(shù)量得以減少,從而使得更深和更寬的架構(gòu)成為可能,甚至在資源受限的微控制器器件中也能運(yùn)行。

在 Cortex-M 處理器上運(yùn)行關(guān)鍵詞識別時,內(nèi)存占用和執(zhí)行時間是兩個最重要因素,在設(shè)計(jì)和優(yōu)化用于該用途的神經(jīng)網(wǎng)絡(luò)時,應(yīng)該考慮到這兩大因素。以下所示的神經(jīng)網(wǎng)絡(luò)的三組限制分別針對小型、中型和大型 Cortex-M 系統(tǒng),基于典型的 Cortex-M 系統(tǒng)配置。

在Cortex-M處理器上完成關(guān)鍵詞識別所面臨的問題分析

KWS 模型的神經(jīng)網(wǎng)絡(luò)類別 (NN) 類別,假定每秒 10 次推理和 8 位權(quán)重/激活

要調(diào)節(jié)模型,使之不超出微控制器的內(nèi)存和計(jì)算限制范圍,必須執(zhí)行超參數(shù)搜索。下表顯示了神經(jīng)網(wǎng)絡(luò)架構(gòu)及必須優(yōu)化的相應(yīng)超參數(shù)。

在Cortex-M處理器上完成關(guān)鍵詞識別所面臨的問題分析

神經(jīng)網(wǎng)絡(luò)超參數(shù)搜索空間

首先執(zhí)行特征提取和神經(jīng)網(wǎng)絡(luò)模型超參數(shù)的窮舉搜索,然后執(zhí)行手動選擇以縮小搜索空間,這兩者反復(fù)執(zhí)行。下圖總結(jié)了適用于每種神經(jīng)網(wǎng)絡(luò)架構(gòu)的最佳性能模型及相應(yīng)的內(nèi)存要求和運(yùn)算。DS-CNN 架構(gòu)提供最高的精度,而且需要的內(nèi)存和計(jì)算資源也低得多。

在Cortex-M處理器上完成關(guān)鍵詞識別所面臨的問題分析

最佳神經(jīng)網(wǎng)絡(luò)模型中內(nèi)存與運(yùn)算/推理的關(guān)系

KWS 應(yīng)用部署在基于 Cortex-M7 的 STM32F746G-DISCO 開發(fā)板上(如下圖所示),使用包含 8 位權(quán)重和 8 位激活的 DNN 模型,KWS 在運(yùn)行時每秒執(zhí)行 10 次推理。每次推理(包括內(nèi)存復(fù)制、MFCC 特征提取、DNN 執(zhí)行)花費(fèi)大約 12 毫秒。為了節(jié)省功耗,可讓微控制器在余下時間處于等待中斷 (WFI) 模式。整個 KWS 應(yīng)用占用大約 70 KB 內(nèi)存,包括大約 66 KB 用于權(quán)重、大約 1 KB 用于激活、大約 2 KB 用于音頻 I/O 和 MFCC 特征。

Cortex-M7 開發(fā)板上的 KWS 部署

總而言之,Arm Cortex-M 處理器可以在關(guān)鍵詞識別應(yīng)用中達(dá)到很高的精度,同時通過調(diào)整網(wǎng)絡(luò)架構(gòu)來限制內(nèi)存和計(jì)算需求。DS-CNN 架構(gòu)提供最高的精度,而且需要的內(nèi)存和計(jì)算資源也低得多。

代碼、模型定義和預(yù)訓(xùn)練模型可從獲取。

我們?nèi)碌奶峁┮徽臼劫Y源庫、詳細(xì)產(chǎn)品信息教程,幫助應(yīng)對網(wǎng)絡(luò)邊緣的機(jī)器學(xué)習(xí)所面臨的挑戰(zhàn)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    19048

    瀏覽量

    228543
  • 神經(jīng)網(wǎng)絡(luò)

    關(guān)注

    42

    文章

    4727

    瀏覽量

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

    關(guān)注

    11

    文章

    2237

    瀏覽量

    82226
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    4846

    瀏覽量

    96893
收藏 人收藏

    評論

    相關(guān)推薦

    為什么說Cortex-M是低功耗應(yīng)用的首選

    雖然Cortex-M處理器家族目標(biāo)瞄準(zhǔn)效能光譜較低端的區(qū)域,但是和大多數(shù)微控制(MCU)采用的其他典型處理器相比,Cortex-M的效能依
    發(fā)表于 07-28 09:44 ?3441次閱讀
    為什么說<b class='flag-5'>Cortex-M</b>是低功耗應(yīng)用的首選

    基于Cortex-M處理器實(shí)現(xiàn)高精度關(guān)鍵詞語音識別

    我們可以對神經(jīng)網(wǎng)絡(luò)架構(gòu)進(jìn)行優(yōu)化,使之適配微控制的內(nèi)存和計(jì)算限制范圍,并且不會影響精度。我們將在本文中解釋和探討深度可分離卷積神經(jīng)網(wǎng)絡(luò) Cortex-M 處理器
    發(fā)表于 01-30 10:01 ?1943次閱讀

    基于Cortex-M處理器做產(chǎn)品開發(fā)為什么受歡迎

    使用ARM Cortex-M系列處理器關(guān)鍵優(yōu)勢之一是廣泛的成熟設(shè)備、開發(fā)工具鏈和軟件庫的支持。目前有:? 超過15家微控制廠商正在銷售基于ARM
    發(fā)表于 08-27 16:11

    基于Cortex-M處理器的高精度關(guān)鍵詞識別實(shí)現(xiàn)

    我們可以對神經(jīng)網(wǎng)絡(luò)架構(gòu)進(jìn)行優(yōu)化,使之適配微控制的內(nèi)存和計(jì)算限制范圍,并且不會影響精度。我們將在本文中解釋和探討深度可分離卷積神經(jīng)網(wǎng)絡(luò) Cortex-M 處理器
    發(fā)表于 07-23 06:59

    如何選擇正確的Cortex-M處理器?

    4和Cortex-M7處理器應(yīng)用在許多高性能的微控制產(chǎn)品中,最大的時鐘頻率可以達(dá)到400Mhz。當(dāng)然,性能不是選擇處理器的唯一指標(biāo)。許多
    發(fā)表于 10-22 08:16

    如何在Cortex-M處理器實(shí)現(xiàn)高精度關(guān)鍵詞識別

    如何在 Cortex-M 處理器實(shí)現(xiàn)高精度關(guān)鍵詞識別
    發(fā)表于 02-05 07:14

    ARM Cortex-M處理器詳解 精選資料分享

    ARM Cortex-M處理器家族現(xiàn)在有8款處理器成員。本文中,我們會比較Cortex-M系列處理器
    發(fā)表于 07-16 07:57

    可分離卷積神經(jīng)網(wǎng)絡(luò) Cortex-M 處理器實(shí)現(xiàn)關(guān)鍵詞識別

    我們可以對神經(jīng)網(wǎng)絡(luò)架構(gòu)進(jìn)行優(yōu)化,使之適配微控制的內(nèi)存和計(jì)算限制范圍,并且不會影響精度。我們將在本文中解釋和探討深度可分離卷積神經(jīng)網(wǎng)絡(luò) Cortex-M 處理器
    發(fā)表于 07-26 09:46

    Cortex-M處理器優(yōu)化的代碼

    生成針對Cortex-M處理器優(yōu)化的代碼。嵌入式編碼?Support Package的ARM?的Cortex?-M處理器可以生成使用CMSI
    發(fā)表于 12-14 09:10

    基于Cortex-M處理器的***技術(shù)簡介

    物聯(lián)網(wǎng)安全-基于Cortex-M處理器的***技術(shù)簡介(1)Trustzone 技術(shù)介紹***的特性Register banking*** 技術(shù)可以滿足的安全需求Secure/Non-Secure
    發(fā)表于 01-25 06:09

    介紹易于使用的Arm Cortex-M處理器的信號處理功能

    庫功能節(jié)省開發(fā)時間受益于使用高級編程語言(例如C或C ++)進(jìn)行編程,而不是通常用于專有DSP的手動匯編程序該文章將介紹易于使用的Arm Cortex-M處理器的信號處理功能,以及如
    發(fā)表于 07-29 14:48

    ARM Cortex-M處理器對比表

    Cortex-M處理器系列針對低成本、高能效的微控制進(jìn)行了優(yōu)化。 這些處理器可以各種應(yīng)用中找到,包括物聯(lián)網(wǎng)、工業(yè)和日常消費(fèi)設(shè)備。 該
    發(fā)表于 08-29 07:00

    【ARM白皮書】ARM Cortex-M處理器入門

    ARM Cortex-M處理器家族現(xiàn)在有8款處理器成員。本文中,會比較Cortex-M系列處理器
    發(fā)表于 04-20 15:34 ?39次下載

    Cortex-M系列處理器介紹及其特性參數(shù)

    本文首先介紹了Cortex-M處理器的家族成員,其次介紹了Cortex-M處理器的特性,具體的跟隨小編一起來了解一下。
    發(fā)表于 04-18 17:17 ?1.8w次閱讀
    <b class='flag-5'>Cortex-M</b>系列<b class='flag-5'>處理器</b>介紹及其特性參數(shù)

    Cortex-MCortex-A認(rèn)識ARM處理器

    Cortex-MCortex-A認(rèn)識ARM處理器
    的頭像 發(fā)表于 03-08 11:34 ?3370次閱讀