锐英源软件
第一信赖

精通

英语

开源

擅长

开发

培训

胸怀四海 

第一信赖

当前位置:锐英源 / 英语翻译 / 用神经网络bp算法实现鼠标手势识别
服务方向
人工智能数据处理
人工智能培训
kaldi数据准备
小语种语音识别
语音识别标注
语音识别系统
语音识别转文字
kaldi开发技术服务
软件开发
运动控制卡上位机
机械加工软件
软件开发培训
Java 安卓移动开发
VC++
C#软件
汇编和破解
驱动开发
技术分类
讨论组翻译
VC++不同版本对数学函数参数调用的影响和解决办法
联系方式
固话:0371-63888850
手机:138-0381-0136
Q Q:396806883
微信:ryysoft

锐英源精品开源心得,转载请注明:“锐英源www.wisestudy.cn,孙老师作品,电话13803810136。需要全文内容也请联系孙老师。

用神经网络bp算法实现鼠标手势识别

示例图片

Introduction 介绍

Recently I installed Opera 5 and was impressed on a Gesture UI. Moreover several weeks ago I noticed a discussion on CodeProject's Lounge about it. To all appearances people want to know about it too . IMHO, the neural network most suitable for this purpose. As I a little know neural network I tried to implement such feature themselves.

最近我安装Opera5并且对一个UI手势印象深刻。此外几周前我注意到在CodeProject上有关于它的讨论。显然人们也想知道它。恕我直言,神经网络最适合这一目的。我了解一点神经网络,试图自己实现这些功能。

What is Neural Network ? Hm it's not easy to say. A rephrased definition Zurada, J.M.: 神经网络是什么?这很难说。描述定义Zurada, J.M,:

"Neural network software is a software which can acquire, store, and utilize experiential knowledge." “神经网络软件是可以获取,存储和利用经验知识一个软件”。

Implementation 实现

Let's return to mouse gestures. After some research I have chosen a multilayer perceptron and standard back-propagation algorithm for training. The main problem was in the representation of an input data for neural network. The best result I found was in the transformation of a mouse path into a vector of cosines and sines.

让我们回到鼠标手势。一些研究之后,我选择了一个多层感知器和标准bp算法进行训练。主要问题是表示神经网络的输入数据。我发现最好的结果是在鼠标路径转换为一个向量的余弦和正弦。

For example: 例如:

path   {170:82 172:83 175:85 177:86 ...} 
   transformed into 
   vector {0.45 0.55 0.45 0.71 ... 0.89 0.83 0.89 0.71 ...}       

Recognition algorithm. 识别算法。

record a mouse path 记录鼠标路径

smooth a path to a base points 平滑路径的一个据点

transform points to angles' vector 变换指向角度的矢量

compute sines and cosines 计算正弦和余弦

pass values (cosines and sines) to network's inputs 值(余弦和正弦)传递给网络的输入

apply softmax function on an output network vector 适用于输出网络载体SOFTMAX功能

find and verify a winner 发现和验证一个赢家

Neural network architecture. 神经网络的体系结构。

input layers : 32 sinapses 输入层:32 sinapses

hidded layer : 32 neurons 隐藏层:32个神经元

output layer : 29 axons (one for each gesture) 输出层:29轴突(每个手势)

fully connected layers 完全连接层

transfer function : log-sigmoid 传递函数:log-sigmoid

incremental training algorithm, standard back-propagation method 增量训练算法、标准反向传播方法

momentum, variable learning rate (slowly reduced) 动力,可变学习速率(慢慢的减少)

input noise 输入噪声

Application 应用程序

Training 培训

应用程序

Before testing the recognition ability you must train the network (or you can load an file image of trained net). You can customize the parameters of the training process, namely: maximum number of cycles, a momentum value, a learning rate, a minimum value of mean square error (in other words "target error"). The training process will stop after achieving either of the conditions: maximum number of cycles or target error. During the training process you can keep an eye on a error's graph, a current gesture (with noise) and 2D network presentation.

在测试之前,你必须训练网络(或者你可以装载训练网络的文件映像)来获取识别能力。您可以自定义的参数训练过程,即:最大数量的周期,动量值,学习速率、最小值的均方误差(换句话说“目标错误”)。周期或目标错误的最大数目:实现任何一个条件后的训练过程将停止。在培训过程中您可以关注错误的图,一个当前姿态(噪声)和2d网络演示。

Testing 测试

As soon as you have a trained net, you can test it. Select the patterns (or test all of them), a speed value and a noise level. Besides, you can familiarize oneself with ideal presentation of gestures via setting minimal noise and minimal speed.

只要你有一个训练有素的网络,你可以测试它。选择模式(或测试全部),速度值和噪声水平。此外,你可以通过设置最小噪声和最小速度熟悉自己理想的手势展示。

Recognition 识别

For recognition of mouse gestures you must press right mouse button during moving a mouse. For example for recognition "left" gesture, press right mouse button and move a mouse to the left. If a neural network can recognize the gesture, then you will see the name, probability and ideal presentation of winner. Because of freeware nature of GestureApp the mouse path must have at least 16 points Sorry I didn't implemented a "stretch a path" feature so far.

鼠标手势的识别必须在移动鼠标时按鼠标右键。例如识别“左”的手势,按鼠标右键,鼠标移到左边。如果神经网络可以识别手势,那么您将看到名字,概率和赢家的理想展示。因为免费软件GestureApp的本质,鼠标路径必须至少有16点,抱歉我没有实现“延伸路径”功能。

Note: the direction is very important. 注意:方向是非常重要的。

The network is trained to recognize the gestures but not 2D images. Hence, you can draw the "circle" gesture a thousand different ways, but the only valid way is: press mouse button and move a mouse to the right and down and so on. Once more: it's gesture, not 2D image.

该网络被训练识别手势而不是2D图像。因此,您可以绘制一千不同的“圆”的手势,但唯一有效的方法是:按下鼠标按钮,鼠标向右和向下移动等等。再一次提醒,它是手势而不是2d图像。

Compatibility 兼容性

Compatible with Win2k, WinXP, Win98, WinMe. Unfortunately doesn't work on WinNT because of the need for the AlphaBlend API.

兼容Win2k WinXP,Win98,WinMe。不幸的是不能在WinNT工作因为需要AlphaBlend API。

友情链接
版权所有 Copyright(c)2004-2021 锐英源软件
公司注册号:410105000449586 豫ICP备08007559号 最佳分辨率 1024*768
地址:郑州大学北校区院(文化路97号院)内