jpg 神经网络 手势识别_在STM32上跑神经网络做手势识别
為了在Cortex-M的MCU上成功跑起CNN,用的模型是一個不到10層FCN網絡,但是即便如此,對于主頻只有不到100MHz,SRAM只有不到100K的單片機來說依然是極其吃力的,模型不做量化的話肯定無法做到實時的。
硬件資源:作品硬件自制,使用的MCU是STM32F407。在168 MHz頻率下,從Flash存儲器執行時,STM32F407單片機能夠提供210 DMIPS/566 CoreMark性能,并且利用ART加速器實現了FLASH零等待狀態。DSP指令和浮點單元擴大了產品的應用范圍。迄今基于Cortex-M內核的微控制器產品中,F407的性能得分是非常高的。
等不及,先展示最終實現結果。實現細節、詳細介紹等整理好資料后,再來分享。
知識補給—CNN 與 FCN
通常CNN網絡在卷積層之后會接上若干個全連接層, 將卷積層產生的特征圖(feature map)映射成一個固定長度的特征向量。以AlexNet為代表的經典CNN結構適合于圖像級的分類和回歸任務,因為它們最后都期望得到整個輸入圖像的一個數值描述(概率),比如AlexNet的ImageNet模型輸出一個1000維的向量表示輸入圖像屬于每一類的概率(softmax歸一化)。
栗子:下圖中的貓, 輸入AlexNet, 得到一個長為1000的輸出向量, 表示輸入圖像屬于每一類的概率, 其中在“tabby cat”這一類統計概率最高。
FCN對圖像進行像素級的分類,從而解決了語義級別的圖像分類(semantic segmentation)問題。與經典的CNN在卷積層之后使用全連接層得到固定長度的特征向量進行分類(全聯接層+softmax輸出)不同,FCN可以接受任意尺寸的輸入圖像,采用反卷積層對最后一個卷積層的feature map進行上采樣, 使它恢復到輸入圖像相同的尺寸,從而可以對每個像素都產生了一個預測, 同時保留了原始輸入圖像中的空間信息, 最后在上采樣的特征圖上進行逐像素分類。
最后逐個像素計算softmax分類的損失, 相當于每一個像素對應一個訓練樣本。下圖是Longjon用于語義分類所采用的全卷積網絡(FCN)的結構示意圖:
簡單的來說,FCN與CNN的區別在把于CNN最后的全連接層換成卷積層,輸出的是一張已經Label好的圖片。
CNN的強大之處在于它的多層結構能自動學習特征,并且可以學習到多個層次的特征:較淺的卷積層感知域較小,學習到一些局部區域的特征;較深的卷積層具有較大的感知域,能夠學習到更加抽象一些的特征。這些抽象特征對物體的大小、位置和方向等敏感性更低,從而有助于識別性能的提高。
總結
以上是生活随笔為你收集整理的jpg 神经网络 手势识别_在STM32上跑神经网络做手势识别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 没有终结点在侦听可以接受消息的_IoT
- 下一篇: bartlett方差齐性检验_基于R实现