Giter Site home page Giter Site logo

handgesturerecognition's Introduction

2020-02-2020.05 计算机视觉课程利用SVM做的基于手势识别的播放器,一个人完成,还有好多问题,如果以后有精力再弄好看点。

目录

一、主要算法

1.1 肤色提取

肤色提取有多种,常用的包括RGB空间、HSV空间以及YCrCb空间的提取,本次用到的肤色提取模型是基于YCrCb颜色空间的椭圆模型。 算法原理: 百度百科的参考链接:https://baike.baidu.com/item/YCrCb/10874556?fr=aladdin YCrCb原来是为了兼容老式电视机而设计的,但随着肤色检测的需要,YCrCb模型相比于传统的RGB和HSV模型能够较好地消除光照产生的影响,故在视觉处理中常被用来 进行肤色检测。 由于前人已经做了大量地统计分析,如果将皮肤信息映射到YCrCb空间,则在CrCb二维空间中皮肤像素点近似成一个椭圆分布。因此,如果我们构建一个CrCb椭圆模型,我们只需要判断这个像素点(Cr,Cb),我们只需要判断是否在这个椭圆内我们就能确定是肤色像素点,否则就不是。 代码参考MyFuncs.py中的skinMask()函数。

1.2 傅里叶描述子

1.2.1 算法原理

傅里叶描述子是一种图像特征,具体来说,是一个用来描述轮廓的特征参数。其基本**是用物体边界信息的傅里叶变换作为形状特征,将轮廓特征从空间域变换到频域内,,提取频域信息作为图像的特征向量。即用一个向量代表一个轮廓,将轮廓数字化,从而能更好地区分不同的轮廓,进而达到识别物体的目的。 详细请参考:https://blog.csdn.net/Lemon_jay/article/details/89349006

1.2.2 实现流程

(写论文时请不要直接复制粘贴,由于内容很多我自己也有些写不太下去,这里只是用我觉得能描述清楚的语言介绍,并不适合直接作为书面语言,请按照原理流程自行撰写书面描述,可以参考我的推荐阅读论文) a)把图片二值化,并去除无关干扰项(非手势部分,比如手臂、脸部、额头等) b)提取手势轮廓,对每个轮廓点对应的坐标构建一个复数(x,y)构建为u=x+i*y, 对复数u做傅里叶变换。 c)将傅里叶变换后的频域向量,从中间那项做截断(因为轮廓信息主要在高频部分,但又由于具体的轮廓复杂度难以估计,具体的向量维数不确定,我们从中间向量按两头取相同数量的子向量以此代表整体的轮廓信息) d)对提取的傅里叶算子做简单的归一标准化处理后得到我们需要的训练向量和测试向量,等待将其送入到SVM分类处理。

1.3 预处理和后处理

a)预处理:此次试验由于采用的是笔记本的摄像头,其分辨率不高且试验中不同的光照条件还是会对试验的结果造成一定的影响。这些干扰分别是高斯白噪声和椒盐噪声,使用高斯滤波器和中值滤波器,我们可以在一定程度上消除它们带来的影响。
b)后处理:肤色提取后的手势由于硬件设备和光照的原因,图像中可能会出现一些小黑点或者手势边缘过于尖锐,为了消除这些影响,我们使用一些形态学操作:腐蚀和膨胀、开操作。

1.3.1 ROI提取

a)在视觉处理中,通常一张图像上我们要研究的内容只占其中的一部分,其它部分是非研究部分,也就是不感兴趣的部分。因此,我们需要提取出我们的研究部分(手势部分)。但在此次项目中,为了简便,我们提前规定好了ROI区域,要求在试验中,手势部分必须人为地保持在ROI区域。

1.4 SVM(支持向量机)

1.4.1 简要说明

支持向量机的主要功能是解决一个简单的二分类和多分类问题。通过构建一系列的回归运算和拉格朗日损失函数的决策函数构建超决策平面实现分类。 (请注意,这里还是为了简要地说明原理,不要直接复制套用)例如,桌面上摆放着若干的红球和黑球,现让你用一根棍子将他们简单地分割为两堆,注意:球是被视为固定位置的,你绝对不能移动任何的小球而只能移动这根棍子。接着,向桌面上增加若干小球,这时,增加的小球很有可能会跑到错误的“阵营”致使分类错误。

1.4.2 加载数据

1.4.3 参数调整

1.4.4 测试结果

二、数据库的获得以及采集

2.1 下载数据库

2.2 自己采集获得数据库

2.3 数据库的整理

三、评价指标

3.1 精确度

3.2 混淆矩阵

3.3 准确度

3.4 召回率

3.5 F1-Measure

四、数据的可视化以及matplot绘图

4.1 热力图绘制混淆矩阵

4.2 PCA降维数据库可视化

4.2.1 PCA算法简述

4.2.2 降维过程

4.2.3 绘图方法

4.2.4 绘图中踩到的地雷

4.3 决策过程的可视化

五、Python GUI的实现

5.1 Pyside 的简单说明

5.2 Data.ui数据采集训练模型以及检验的测试

5.3 Play.ui音乐播放控制系统的GUI设计

六、附录

6.1 参考资料

——————————————————————————————————————————————

handgesturerecognition's People

Contributors

zerotower69 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.