当前位置:网站首页>手势数字启蒙学习机
手势数字启蒙学习机
2022-06-30 01:25:00 【Martin の Blog】
契子
今天看到邻居家的小孩子在学习用手势表示数字
他也不知道对不对,就在那比比划划的,看起来很懵的样子(小朋友你是否有很多问号~~)。
我看到他,也因此产生了一个念头:做一个能够识别手势的启蒙器。
但想到仅仅一个手势识别,那太单调了。在手势识别的基础上,添加了一个计算验证的程序
设计思想
- 系统给出十以内的加减法问题(考虑到手势常用的就是1-10之间的表示)
- 在用户计算这个问题后,用手势表示出来,系统会识别并显示手势表示出来的数字
- 系统会评定手势表示出来的数字是否是问题答案
- 如果是问题答案,会提示:“YOU ARE RIGHT”
- 如果是不是问题答案,会提示:“YOU ARE ERROR”
技术分析
手势识别采用什么技术?
- 对于手势识别,我这里采用的是深度学习中的分类算法,之前考虑到可以用检测算法进行识别,
- 但没有必要用到检测,一方面自己的机器处理图片的大小有限,另一方面在界面段仅仅留出一个展示手的位置大小就OK了
- 因为摄像头是固定的,背景是白色的,所以没有必要再去检测人体中的手部分了
- 为此最终定下了:使用分类器进行手势识别
- 对于分类器,我这里采用的BackBone是ResNet18,Loss选用的是CrossEntropy Loss进行处理
- 图片采用的是(224, 224, 3)大小的数据,每个手势图片(1-10)分别对应300-400张
- 数据前处理部分也很简单,对图片减均值除方差就OK了
- epoch定在了50轮次,batchsize设定了32,最终测试的手势精度在97%左右
界面用什么进行显示,以及界面的布局如何?
- 最开始想到搭建一个web,采用flask进行部署,后来想想没必要啦,用OpenCV就能搞定的事情(杀鸡焉用牛刀)
- 为此整个界面开始采用OpenCV进行项目界面的设计
- 首先在界面的左上角显示问题是否答对的提示,下方显示问题的题目
- 在界面的右边设计一个窗口用来显示摄像头采集的信息,也就是放手的位置
- 最后识别出来的答案在左边的公式等号后进行显示,用其他颜色标明,就OK啦
- 设计的效果如下所示,对于我这种艺术细胞为负值的小伙子,就不要要求美观了:

当前硬件是否支持该项目的开发?
- 既然模型实现完成了,界面也设计好了,就要考虑目前的硬件是否能够支持了
- 目前我这里的硬件有,一个家用摄像头,一台笔记本(酷睿i7系列5代,一个内置独显GTX950)
- 不运行不知道,一运行吓一跳。处理速度堪称龟速不为过(1分钟能够处理1帧)
- 无奈到网上看到一块好的显卡就要大几千。最终我还是向金钱低头了。。。
- 买了一块Jeston Nano开发板,至少便宜啊~~~
- 最后一运行,处理速度能达到每秒20帧的样子,贫穷限制了我的想象。。。
效果展示:https://www.bilibili.com/video/BV1C44y1j76W#reply97610586848
项目地址:https://github.com/martinzhang710/SignLanguage.git
后期与展望
- 不禁吐槽一下界面哈,后续要美化是一定的,如果有必要使用flask部署一下也好
- 模型的精度还是需要进一步提升的
- 不过给我家邻居小孩玩一玩还是够了的~~
边栏推荐
- I, 33 years old, ByteDance test development, unveiled the real income of Beijing "test post"
- 眼底出血术后需注意事项//每天必看
- 【图神经网络】图分类学习研究综述[2]:基于图神经网络的图分类
- Ansible ad-hoc 临时命令
- 阅读,是最廉价的高贵
- Understanding of int argc, char * * argv in C language main function
- HC32M0+ GPIO
- ES6 synchronous asynchronous execution and block level scope
- 【图神经网络】图分类学习研究综述[3]:图分类方法评价及未来研究方向
- In depth analysis of a large number of clos on the server_ The root of wait
猜你喜欢

眼底出血术后需注意事项//每天必看

I, 33 years old, ByteDance test development, unveiled the real income of Beijing "test post"

Some thoughts on small program subcontracting and verification of uiniapp subcontracting optimization logic

Seata and the three platforms are working together in the summer of programming. Millions of bonuses are waiting for you

Pytroch Learning Notes 6: NN network layer convolution layer

Online sql to CSV tool

cookie加密8

C语言 一元多项式求导

R language linear regression model fitting diagnosis outliers analysis of domestic gas consumption and calorie examples with self-test questions
![【图神经网络】图分类学习研究综述[2]:基于图神经网络的图分类](/img/5f/b23b64eed7f28ffd92c122b6859e2d.png)
【图神经网络】图分类学习研究综述[2]:基于图神经网络的图分类
随机推荐
Solving plane stress problem with MATLAB
Solution to webkitformboundaryk in post request
cookie加密8
Interview summary
The unity editor randomly generates objects. After changing the scene, the problem of object loss is solved
Varnish 基础概览6
postman 之接口关联
The first unlucky person watching eth 2.0
81. 搜索旋转排序数组 II
App test related tools
Newton method (optimization of two variable functions)
3-6sql injection website instance step 5: break through the background to obtain web administrator permissions
js逆向请求参数加密:
Unity编辑器随机生成物体,更换场景之后物体丢失问题解决
Mysql 监控3
How to unify the use of package manager in a project?
Cantilever beam calculation [matlab code]
Cookie加密10
Wechat applet - requestsubscribemessage:fail can only be invoked by user tap gesture
Varnish 基础概览7