1. 程式人生 > >神經網路移植到STM32F4上的應用 可以訓練識別手勢

神經網路移植到STM32F4上的應用 可以訓練識別手勢

利用顏色感測器讀取pH試紙的顏色,然後得到他代表的pH值。一開始想擬合出一個關於RGB和pH的函式,但是總是效果不好。於是利用神經網路來根據RGB判斷他的pH值。
這個也完全可以用於手勢識別,將電容感測器的資料匯入神經網路訓練,得到關於手勢的識別網路,再進行識別。

思路是首先利用MATLAB訓練出神經網路,然後將神經網路匯出來,移植到F4上。

x=inputn;

net=newff(minmax(x),[5 1],{'tansig','purelin'},'trainlm');
net.trainParam.epochs = 1000;  
net.trainParam.goal = 1e-6
; [net,tr]=train(net,x,outputn); %訓練神經網路 iw=net.iw{1,1}; %匯出神經網路 lw=net.lw{2,1}; b1=net.b{1}; b2=net.b{2};

F4上的神經網路計算函式

void Get_pH()   //神經網路計算函式
{       
        u8 i=0;
                RGB_data[0]=(float32_t)R/255.0;  //RGB歸一化存入矩陣
                RGB_data[1]=(float32_t)G/255.0;
                RGB_data[2
]=(float32_t)B/255.0; arm_mat_mult_f32(&iw,&RGB,&temp); //DSP指令,矩陣相乘 for(i=0;i<5;i++) { h_data[i]=2/(1+exp(-2*(temp_data[i]+b1[i])))-1; //tansig函式 } arm_mat_mult_f32(&lw,&h,&pH); pH_data=(float32_t)((pH_data+b2)*14.00
); }

用到關鍵變數

float32_t iw_data[15]={ 37.8146271525703f,    61.6224915049775f,  -116.119809374016f,
                                                1.96880581432674f,  -0.597865017458179f,  -1.00688890479118f,
                                                5.58165621812740f,    1.88117664982108f,    -4.44180569880110f,
                                                152.824588053478f,   -132.267718125163f,  -22.9259593680010f,
                                                88.8431847421991f,    551.674736239499f,     404.835691342993f
                                            };    

float32_t lw_data[5]={-28.7273044233606f,-1.03643090499672f,0.313686607538904f,0.146049290519538f,-0.0206856023439895f};

float32_t temp_data[5];

float32_t h_data[5];

float32_t RGB_data[3];

float32_t pH_data;

float32_t b1[5]={22.6580899725128f,-0.510182522968968f,-3.52855071976284f,-2.82498427573125f,-92.7000542294773f};

float32_t b2=29.396496369741858f;

arm_matrix_instance_f32 iw={5,3,iw_data};

arm_matrix_instance_f32 lw={1,5,lw_data};

arm_matrix_instance_f32 temp={5,1,temp_data};

arm_matrix_instance_f32 h={5,1,h_data};

arm_matrix_instance_f32 RGB={3,1,RGB_data};

arm_matrix_instance_f32 pH={1,1,&pH_data};

需要注意的是,這裡開了F4的FPU並且用到的DSP庫,所以需要新增“arm_math.h”這個標頭檔案。

相關推薦

神經網路移植STM32F4應用 可以訓練識別手勢

利用顏色感測器讀取pH試紙的顏色,然後得到他代表的pH值。一開始想擬合出一個關於RGB和pH的函式,但是總是效果不好。於是利用神經網路來根據RGB判斷他的pH值。 這個也完全可以用於手勢識別,將電容感測器的資料匯入神經網路訓練,得到關於手勢的識別網路,

卷積神經網路(CNN)在語音識別中的應用

卷積神經網路(CNN)在語音識別中的應用 作者:侯藝馨 前言 總結目前語音識別的發展現狀,dnn、rnn/lstm和cnn算是語音識別中幾個比較主流的方向。2012年,微軟鄧力和俞棟老師將前饋神經網路FFDNN(Feed Forward Deep Neural Network)引入到聲學模

TensorSpace:一套用於構建神經網路3D視覺化應用的框架

作者 | syt123450、Chenhua Zhu、Yaoxing Liu (本文經原作者授權轉載) 今天要為大家推薦一套超酷炫的,用於構建神經網路 3D 視覺化應用的框架——TensorSpace。 有什麼用途? 大家可以使用類 Keras

卷積神經網路課程筆記-實際應用(第三、四周)

所插入的圖片仍然來源於吳恩達老師的課件。 第三週 目標檢測 1. 物件的分類與定位,在輸出層不僅輸出類別,還應輸出包含物體的邊界框(bx,by,bh,bw),從而達到定位的目的。注意網路的輸出(例如下圖的輸出就有是否為目標,邊界框的引數,以及是哪類的判斷)和損失函式的定義

lesson22-24 MNIST資料集,模組化搭建神經網路八股,手寫數字識別準確率輸出

import tensorflow as tf #MNIST資料集輸出識別準確率 #MNIST資料集: #提供6w張28*28畫素點的0-9手寫數字圖片和標籤,用於訓練 #提供1w張28*28畫素點的0-9手寫數字圖片和標籤,用於測試 #每張圖片的784個畫素點(

神經網路實現Mnist手寫數字識別筆記

目錄 1.Mnist手寫數字識別介紹         Mnist手寫數字識別是Kaggle上一個很經典的機器學習資料集,裡邊包括55000張訓練資料和10000張圖片的測試資料,每張圖片大小為28*28畫素的單通圖片。該任務為通過機器學習來識別圖片中的

深度學習:tensorflow入門:卷積神經網路實現MNIST手寫字型識別

程式碼中./data/mnist/input_data/為真實MNIST資料集的路徑 import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data # 定義

43個MATLAB神經網路的案例經典應用

連結:https://pan.baidu.com/s/1fKZEj_Ji1EXS7au0KlewMQ   密碼:z5h9 內容簡介 讀者呼叫案例的時候,只要把案例中的資料換成自己需要處理的資料,即可實現自己想要的網路。如果在實現過程中有任何疑問,可以隨時在MATLAB中文

【TensorFlow】3-2構建簡單單層神經網路進行【手寫字元識別

 自動下載並轉化MNIST資料集格式到TF中 import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data #載入MNIST資料集,如果不存在,將自動在預設網址

CNN(卷積神經網路)在iOS的使用

在iOS11上推出了CoreML和架構在CoreML之上的Vision, 這樣為CNN(卷積神經網路)在iOS裝置上的應用鋪平了道路。 將CoreML模型載入到App 讓你的App整合CoreML模型非常簡單, 將模型檔案(*.mlmodel)拖進工程即可

06《基於卷積神經網路LeNet-5的車牌字元識別研究》學習總結

一、本篇介紹 二、本文主要內容(知識點) 1、概要 2、卷積神經網路介紹 1.卷積層 2.次抽樣層 3、LeNet-5介

深度學習(Deep Learning)讀書思考八:迴圈神經網路三(RNN應用

概述 通過前兩小節的介紹,可以清楚的瞭解RNN模型的網路結構以及LSTM。本小節主要介紹RNN其他變形以及應用,包括 1.GRU單元 2.序列到序列(Seq2Seq)模型 3.注意力(Attention)模型 4.RNN在NLP中的應

4用於cifar10的卷積神經網路-4.6設計模型訓練和評估的會話流程

在TensorFlow中實現這個網路模型 0、載入資料集 1、啟動會話 2、一輪一輪的訓練模型 2.1、在每一輪中分多個批次餵給資料 2.1.1在每個批次上執行訓練節點,訓練模型 2.1.2經過

基於卷積神經網路和tensorflow實現的人臉識別

以前在學習卷積神經網路的時候,發現了很多很有趣的demo,有一次發現了上面這個人臉識別的例子,不過當時還看不懂,經過一段時間之後決定試試能不能將上面的例子改一下,調以調參什麼的,於是就有了這篇文章。本以為我的程式碼和原文沒有什麼太大的區別,應該不會出現什麼錯誤,但是實際自己上

人工神經網路演算法原理和應用

人工神經網路 什麼是人工神經網路? 我們先從他的結構談起 說明: 通常一個神經網路由一個input layer,多個hidden layer和一個output layer構成。圖中圓圈可以視為一個神經元(又可以稱為感知器)設計神經網路的重要工作是設計hidden layer,及神經元之間的權重新增

PyTorch基礎入門六:PyTorch搭建卷積神經網路實現MNIST手寫數字識別

1)卷積神經網路(CNN)簡介 關於什麼是卷積神經網路(CNN),請自行查閱資料進行學習。如果是初學者,這裡推薦一下臺灣的李巨集毅的深度學習課程。連結就不給了,這些資料網站上隨處可見。 值得一提的是,CNN雖然在影象處理的領域具有不可阻擋的勢頭,但是它絕對不僅僅只能用來影

基於注意力模型和卷積迴圈神經網路的中文自然場景文字識別

 最近,在進行相關中文文字識別的工作,查閱了許多論文。最終決定參考谷歌的基於注意力機制的街景文字識別的論文:"Attention-based Extraction of Structured Information from Street View Imagery",並對官方原始碼進行修改

構建多層感知器神經網路對數字圖片進行文字識別

在Keras環境下構建多層感知器模型,對數字影象進行精確識別。 模型不消耗大量計算資源,使用了cpu版本的keras,以Tensorflow 作為backended,在ipython互動環境jupyter notebook中進行編寫。 1.資料來源 此資料庫包含四部分:訓練資

神經網路演算法學習---獲取常用訓練資料集

下載地址:http://vision.stanford.edu/Datasets/OlympicSports/ 7. UIUC action dataset 這個資料庫已經做到98%了,建議不要去做了。下載地址:http://vision.cs.uiuc.edu/projects/activity/

一文入門BP神經網路——從原理到應用應用篇)

編號 公式 備註 1 Z[l]=w[l]A[l−1]+b[l] 2 A[l]=σ(Z[l]) 3 dZ[L]=∇AC⊙σ′(Z[L]) 4 dZ[l]=[w[l+1]