基于tensorflow的简单鼠标键盘识别

import cv2 as cvimport tensorflow as tfimport numpy as npimport random

##以下为数据预处理,分类为cata,总共样本为cata*num_batch,总共图像为cata*num_imgcata=2                                                     #需要分的类别num_img=49                                                  #图像个数#该函数返回x与y,输入批量,产生cata*num_batchdef XANDY(num_batch):

    x_mouse=np.zeros([num_batch,500,500,1])                      #保存鼠标图片矩阵    x_keyboard=np.zeros([num_batch,500,500,1])                    #保存键盘图片矩阵    temp_mouse=random.sample(range(0,num_img),num_batch)    temp_keyboard=random.sample(range(0,num_img),num_batch)    for i in range(num_batch):        img_mouse1 = cv.imread(‘C:\\Users\\HHQ\\Desktop\\tangjun\\mouse\\data_mouse\\‘+str(temp_mouse[i])+‘.PNG‘, cv.IMREAD_GRAYSCALE)        img_mouse=cv.resize(img_mouse1,(500,500))        x_mouse[i,:,:,0]=img_mouse        img_keyboard1 = cv.imread(‘C:\\Users\\HHQ\\Desktop\\tangjun\\mouse\\data_keyboard\\‘+str(temp_keyboard [i])+‘.bmp‘, cv.IMREAD_GRAYSCALE)        img_keyboard = cv.resize(img_keyboard1, (500, 500))        x_keyboard [i,:,:,0] = img_keyboard

    xx=np.vstack((x_mouse,x_keyboard))    #表签中0表示鼠标,1表示键盘    y_0=np.zeros([num_batch,1])    y_1=np.ones([num_batch,1])    y_mouse=np.hstack((y_1,y_0))    y_keyboard=np.hstack((y_0,y_1))    yy_=np.vstack((y_mouse,y_keyboard))                         #标签为二维数组,行保存样本数量,列保存分类    return xx,yy_

x=tf.placeholder(dtype=tf.float32,shape=[None ,500,500,1])y_=tf.placeholder(dtype=tf.float32,shape=[None,cata])#建立卷积#第一层卷积W_cov1=tf.Variable(tf.truncated_normal([5,5,1,32],stddev=0.1),dtype=tf.float32)B_cov1=tf.Variable(tf.truncated_normal([32],stddev=0.1),dtype=tf.float32)A_cov1=tf.nn.relu(tf.nn.conv2d(x,W_cov1,strides=[1,1,1,1],padding=‘SAME‘)+B_cov1)P_cov1=tf.nn.max_pool(A_cov1,ksize=[1,2,2,1],strides=[1,2,2,1],padding=‘VALID‘)#得到250*250*32维度的图像

#第二层卷积W_cov2=tf.Variable(tf.truncated_normal([5,5,32,64],stddev=0.1),dtype=tf.float32)B_cov2=tf.Variable(tf.truncated_normal([64],stddev=0.1),dtype=tf.float32)A_cov2=tf.nn.relu(tf.nn.conv2d(P_cov1,W_cov2,strides=[1,1,1,1],padding=‘SAME‘)+B_cov2)# #第三层卷积# W_cov3=tf.Variable(tf.truncated_normal())

# 建立全连接层,识别2物体w=tf.Variable(tf.zeros([250*250*64,cata]),dtype= tf.float32)b=tf.Variable(tf.zeros([cata]),dtype=tf.float32)x_reshape=tf.reshape(A_cov2,[-1,250*250*64])y=tf.matmul(x_reshape,w)+b

#定义交叉熵,为了定义损失函数loss=tf.nn.softmax_cross_entropy_with_logits(labels=y_, logits=y)# loss=-tf.reduce_mean(y_*tf.log(y))#定义优化器# train=tf.train.GradientDescentOptimizer(0.001).minimize(loss)# train=tf.train.AdagradDAOptimizer(0.01).minimize(loss)train=tf.train.AdamOptimizer(0.001).minimize(loss)#定义预测准确率predict1=tf.equal(tf.argmax(y,1),tf.argmax(y_,1))predict=tf.reduce_mean(tf.cast(predict1,tf.float32))

init=tf.initialize_all_variables()sess=tf.Session()

sess.run(init)x_pr,y_pr=XANDY(40)

for i in range(30):    x_ba,y_ba=XANDY(15)    sess.run(train,feed_dict={x:x_ba,y_:y_ba})    accuracy=sess.run(predict, feed_dict={x: x_pr, y_: y_pr})    print(‘训练步骤:   %d  ,  训练精度:%g‘ %(i,accuracy))



原文地址:https://www.cnblogs.com/tangjunjun/p/10986239.html

时间: 2024-10-30 22:21:03

基于tensorflow的简单鼠标键盘识别的相关文章

基于tensorflow的MNIST手写字识别(一)--白话卷积神经网络模型

一.卷积神经网络模型知识要点卷积卷积 1.卷积 2.池化 3.全连接 4.梯度下降法 5.softmax 本次就是用最简单的方法给大家讲解这些概念,因为具体的各种论文网上都有,连推导都有,所以本文主要就是给大家做个铺垫,如有错误请指正,相互学习共同进步. 二.卷积神经网络讲解 2.1卷积神经网络作用 大家应该知道大名鼎鼎的傅里叶变换,即一个波形,可以有不同的正弦函数和余弦函数进行叠加完成,卷积神经网络也是一样,可以认为一张图片是由各种不同特征的图片叠加而成的,所以它的作用是用来提取特定的特征,举

个基于TensorFlow的简单故事生成案例:带你了解LSTM

https://medium.com/towards-data-science/lstm-by-example-using-tensorflow-feb0c1968537 在深度学习中,循环神经网络(RNN)是一系列善于从序列数据中学习的神经网络.由于对长期依赖问题的鲁棒性,长短期记忆(LSTM)是一类已经有实际应用的循环神经网络.现在已有大量关于 LSTM 的文章和文献,其中推荐如下两篇: Goodfellow et.al.<深度学习>一书第十章:http://www.deeplearnin

基于tensorflow的MNIST手写识别

这个例子,是学习tensorflow的人员通常会用到的,也是基本的学习曲线中的一环.我也是! 这个例子很简单,这里,就是简单的说下,不同的tensorflow版本,相关的接口函数,可能会有不一样哟.在TensorFlow的中文介绍文档中的内容,有些可能与你使用的tensorflow的版本不一致了,我这里用到的tensorflow的版本就有这个问题. 另外,还给大家说下,例子中的MNIST所用到的资源图片,在原始的官网上,估计很多人都下载不到了.我也提供一下下载地址. 我的tensorflow的版

21个项目玩转深度学习:基于TensorFlow的实践详解06—人脸检测和识别——数据集

书籍:<21个项目玩转深度学习:基于TensorFlow的实践详解> 人脸检测 FDDB FDDB是UMass的数据集,被用来做人脸检测(Face Detection).这个数据集比较大,比较有挑战性.而且作者提供了程序用来评估检测结果,所以在这个数据上面比较算法也相对公平. 2845 张图片,其中包含了 5171 张人脸: 包含了各种遮挡,高难度的姿态,低分辨率以及对焦模糊的人脸: 用椭圆来标定人脸区域: 同时包括灰度图和彩色图. 人脸识别 LFW 户外标记人脸数据集LFW (Labeled

【转】机器学习教程 十四-利用tensorflow做手写数字识别

模式识别领域应用机器学习的场景非常多,手写识别就是其中一种,最简单的数字识别是一个多类分类问题,我们借这个多类分类问题来介绍一下google最新开源的tensorflow框架,后面深度学习的内容都会基于tensorflow来介绍和演示 请尊重原创,转载请注明来源网站www.shareditor.com以及原始链接地址 什么是tensorflow tensor意思是张量,flow是流. 张量原本是力学里的术语,表示弹性介质中各点应力状态.在数学中,张量表示的是一种广义的"数量",0阶张量

模拟鼠标键盘操作,含硬件模拟技术[转载]

键盘是我们使用计算机的一个很重要的输入设备了,即使在鼠标大行其道的今天,很多程序依然离不开键盘来操作.但是有时候,一些重复性的,很繁琐的键盘操作总会让人疲惫,于是就有了用程序来代替人们按键的方法,这样可以把很多重复性的键盘操作交给程序来模拟,省了很多精力,按键精灵就是这样的一个软件.那么我们怎样才能用VB来写一个程序,达到与按键精灵类似的功能呢?那就让我们来先了解一下windows中响应键盘事件的机制.    当用户按下键盘上的一个键时,键盘内的芯片会检测到这个动作,并把这个信号传送到计算机.如

一个简单的键盘钩子程序

实现适时监视键盘,并将按键信息保存在TXT文件中的程序       Windows系统是建立在事件驱动的机制上的,说穿了就是整个系统都是通过消息的传递来实现的.而钩子是Windows系统中非常重要的系统接口,用它可以截获并处理送给其他应用程序的消息,来完成普通应用程序难以实现的功能.钩子的种类很多,每种钩子可以截获并处理相应的消息,如键盘钩子可以截获键盘消息,外壳钩子可以截取.启动和关闭应用程序的消息等.本文在VC6编程环境下实现了一个简单的键盘钩子程序,并对Win32全局钩子的运行机制.Win

《21个项目玩转深度学习:基于TensorFlow的实践详解》高清带标签PDF版本学习下载

1 写在前面 <21个项目玩转深度学习——基于TensorFlow的实践详解>以实践为导向,深入介绍了深度学习技术和TensorFlow框架编程内容. 通过本书,读者可以训练自己的图像识别模型.进行目标检测和人脸识别.完成一个风格迁移应用,还可以使用神经网络生成图像和文本,进行时间序列预测.搭建机器翻译引擎,训练机器玩游戏.全书共包含21个项目,分为深度卷积网络.RNN网络.深度强化学习三部分.读者可以在自己动手实践的过程中找到学习的乐趣,了解算法和编程框架的细节,让学习深度学习算法和Tens

python模拟鼠标键盘操作 GhostMouse tinytask 调用外部脚本或程序 autopy右键另存为

1.参考 autopy (实践见最后一章节) 用Python制作游戏外挂(上) AutoPy Introduction and Tutorial autopy.mouse.smooth_move(1, 1) 可以实现平滑移动 autopy - API Reference pip install PyUserInput SavinaRoja/PyUserInput [python3.5][PyUserInput]模拟鼠标和键盘模拟 Python-模拟鼠标键盘动作 autoit selenium借助