毕业设计-基于机器视觉的数字静态手势的匹配识别-OpenCV

目录

前言

课题背景和意义

实现技术思路

一、相关理论和实现过程

二、结果分析 

实现效果图样例

最后


前言


    📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过和节省时间与精力投入到更重要的就业和考试中去,学长分享优质的选题经验和毕设项目与技术思路。

🚀对毕设有任何疑问都可以问学长哦!

选题指导: https://blog.csdn.net/qq_37340229/article/details/128243277

大家好,这里是海浪学长毕设专题,本次分享的课题是

🎯基于机器视觉的数字静态手势的匹配识别-OpenCV 

课题背景和意义

现如今 人们对于人机交互技术的需求日益提高 手势识别便是人机交互的重要的手段之一 。 人机交互的目标是使人机器即计算机的性能与人 - 人交互相似 手势在我们的日常生活中起着重要作用, 它们可以帮助人们传达信息并表达自己的感受 。从技术上讲 手势是时空模式 可以是静 态的, 动态的或两者兼而有之的 手势识别技术可以应用于各个学科和我们的生活领域中了 如智
能家居方向就可以使用这种高效的控制方式实现对设备的操控 。手势识别的研究可以分为动态手势和静态手势。 其中 静态手势是利用模版匹配法进行手势识别 主要是分析不同特征 ( HOG 特征、 Gabor 特征 、几何特征 、谱图小波特征 以及多特征联合) 信息的识别效果 而动态手势则在静态手势的基础上基于状态转移的图模型方法, 检测和跟踪手势目标。例如基于深度卷积网络的深度学习方法可以通过 SSD 模型和微调网结构实现目标识别和匹配。手势识别成为了一种新型的人机交互手段,对于社会生产和日常生活都有着非常重要的研究意义。

实现技术思路

一、相关理论和实现过程

HSV 颜色模型
HSV ( HUE 色调 ,Saturation 饱和度 Value 明度 ) 是根据颜色直观特性有 A. R. Smith 1978 年创建的一种颜色空间 H 的取值范围为 0° ~ 360° 红色为 按逆时针开始计算 ; S 的取值越大 颜色越饱和; V 的取值范围为 0% ~ 100% 由黑到白 一般情况下 RGB 模型面向的是工业工程 而HSV 模型面向的是用户 在本文中 HSV 颜色模型至关重要 通过该模型直接进行肤色分割 因为黄种人的肤色在 HSV 颜色模型中各项参数是由取值范围的 肤色范围 : H ( 0 - 30 ) ,S( 30 - 170 ) , V ( 0 - 200 )
图像的获取
利用  VideoCapture 来访问计算机的摄像头 如若访问失败 便会输出摄像头打开失败的信息, 并停止程序 环境需要光线充足 用户必须穿着长袖衣物以遮挡手腕部分 当摄像头成功
打开 继续执行程序 将摄像头获取的图片帧储存到 frame 如若后续过程中摄像头没有接收到图片, 便输出没有获取图片并跳出获取图片帧的循环
手势轮廓提取
1)H 通道分离
为了后续的肤色分割处理 我们首先将图片转换为 HSV 空间 再将其中的 H 通道图片分离出来
单独处理
使用到了 OpenCV 函数库中的 cvtColor 函数 cvtColor 函数前两个参数便是输入与输出图片
三个参数 CV_RGB2HSV 表示将输入图片从 RGB 空间转换为 HSV 空间 Split 函数的作用是通道分
将图像分离为 H 、S、 V 三个通道并存入 channels 、channels、channels中。 RGB 转换 HSV
公式如下 :

2)肤色分割
通过上一步对图片 H 通道图像的提取 可以针对原图 H 的值将用户的皮肤提取出来 使用 in-
Range 函数 第一个参数即输入 后两个元素便是筛选的阈值区间 最后一个参数就是输出的图片 , 其中输出的图片是一幅二值化后的图像。

3) 滤波降噪
通过线性滤波器以减少噪声 使用中值滤波器来模糊图像 此方法相较于使用线性滤波器 处理
的图像细节更清晰 图像的边缘信息丢失少 但代价是需要更多的处理时间  
4) 形态学处理
调用 morphologyEX 函数对降噪后的图片进行开运算处理 ( 对图像先膨胀处理再进行腐蚀 。在删除图像中细小对象时很好用, 同样还可以放大低亮度区域 ) , 从而进一步去除大噪声 突出手势对象以便后续的手势提取。 经过多次实验验证 采用了 MORPH_RECT 的构建方式 即矩形的结构元素, 大小选择的是 7 × 7  
5) 手势轮廓提取
手势轮廓提取前将上述步骤处理后的图片所具有的信息进行整理 图片提取出来 放入一个大小相同的图片窗口中, 并将其中的点存入被定为二位浮点型向量的 mContours ,以便后续的轮廓查找。轮廓提取效果图如图 :

手势的匹配识别

1) 手势模板制作
通过程序识别手势从 1 10 的数字表示 将进行手势的轮廓提取再将处理后的图片作为识别模板, 结果如图:

2)Hu 不变矩
Hu 不变矩实际上是指图像的 Hu 矩具有平移 旋转和缩放不变的性质 将每个图像看作一个 ρ
( x ,y) 的密度分布函数 其分布区间放在 [0,255] 阈值对应的 ( p + q ) 阶中心矩定义如下

 3)匹配识别

首先判定函数中的 mContoursProc mContoursTemp 中已经储存了图片信息 然后应用 matchS-hapes 函数比较两张图片轮廓的 Hu 不变矩 并返回相似度大小 该函数共有三种比较匹配方式 : 最后一个参数 取 值 为 0,1,2 时

二、结果分析 

 数据集来源

实验数据来源于 5 位志愿者在不同背景下的手势拍照图像集 共包含 10 种手势 每种手势有 10
张图 合计 100 张手势图 不同手势图像存在脖子 干扰手臂 灯光 景深以及复杂背景的干扰 部分实验图像如图 所示 将收集到 100 张图像随机分成训练集和测试集两个部分 训练集和测试集的比例为 7 : 3

 识别结果分析:

为了验证基于 OpenCV 的静态手势识别技术的识别效果分别选取 30 1 - 10 的手势数据通 过已设定手势模板进行测试。输出结果中 hu 的值越小表示匹配度越高本文将 hu 小于 0. 15 的视 为匹配成功并输出。上为手势数字识别结果以箱线图和正态分布曲线形式表示

根据各数字的 hu 不变矩特征值均值结果按大到小的排列顺序为: 7 > 5 > 8 > 2 > 6 > 3 > 1 > 10 > 4 > 9。

 数字 1 的识别共进行了 30 次,成功次数 30,识别成功率 100% 。数字 2 的识别共进行 30 次,成功次数 26,失败次数 4,识别成功率 86. 67% 。数字 3 的识别共进行 30 次,成功次数20,失败次数 10,识别成功率 66. 67% 。数字 4 的识别共进行 30 次,成功次数 30,识别成功率 100% 。数字 5 的识别共进行 30 次,成功次数 26,失败次数 4,识别成功率 86. 67% 。数字 6 的识别共进行 30次,成功次数 28,失败次数 2,识别成功率 93. 33% 。数字 7 的识别共进行 30 次,成功次数 30,识别成功率 100% 。数字 8 的识别共进行 30 次,成功次数 26,失败次数 4,识别成功率 86. 67% 。数字 9 的识别共进行 30 次,成功次数 30,识别成功率 100% 。数字 10 的识别共进行 30 次,成功次数 30,识别成功率 100% 。本设计共实验 300 次,成功次数 276,失败次数 24,识别成功率 92%

实现效果图样例

信息视觉数字手势识别:

 我是海浪学长,创作不易,欢迎点赞、关注、收藏、留言。

毕设帮助,疑难解答,欢迎打扰!

最后

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值