基于视觉的动态手势轨迹跟踪
这个是我的综合实践与设计的课题,作为毕设的一部分,因为时间比较紧,做的很简单。主要实现了在简单背景下,利用笔记本摄像头实时采集视频,根据肤色检测识别手部区域并跟踪手部运动轨迹。
项目的GitHub地址:(采用C++,基于opencv)
https://github.com/1092366225/HandGestureRecognition
代码百度网盘链接:
链接:https://pan.baidu.com/s/1Wh9qRPjjqY4pL5HrFfdwzg
提取码:zd2w
效果如下:(画五角星)
1.背景介绍
手势分为静态手势和动态手势,静态是指一个固定的手的形姿态,比如摆出“V”的pose,动态是指手部的位置或形态变化的含义,比如画个圈。
手势识别技术在人机交互领域有很大的作用和应用前景。目前已经发展地比较久了,有着很多的实现方案,但是仍然存在鲁棒性不强,识别率不高或者是无法满足实时性的问题。
手势识别主要有基于计算机视觉、基于超声波和基于惯性传感器三种实现方式。我采用的是基于视觉的,通过处理真实的视频图像来识别手势,分为手势分割、轨迹跟踪和分类识别三个过程,这里只实现了前两步。
2.主要流程与算法
流程图:
(1)手势分割
利用人的肤色在YCrCb颜色空间的聚类性质,根据颜色来区分图像中的手部和背景。先把图像转换到YCrCb颜色空间,然后采用otsu自适应阈值来对Cr通道进行划分。当然也可以根据经验值或者训练值直接给出阈值,不过效果较差。
处理后的二值图像如下:
这时候会发现有很多干扰区域,所以先对图像进行形态学处理,先膨胀后腐蚀,消除小的封闭空间。结果如下:
然后利用opencv中的相关算法来找出图中的各个连通域的外接矩形,同时把面积较小的先排除。
之后图像中最大的连通域有两块:手部和脸部。采用模板匹配的方法来排除脸部的干扰(也可以用其他方法,比如手指个数,肤色比例等),模板是用ps做的
这样就可以划分出手部区域:(图中的红色小矩形表示模板匹配最佳点的结果,绿色矩形为手部区域的外接最大矩形)
(2)轨迹跟踪
跟踪手的运动轨迹可以采用图像跟踪算法,经典的有光流法、camshift等,或者目前比较主流的KCF、深度学习等。我原本想采用camshift,但是没能成功,就直接利用每帧图像中检测到的手部位置来跟踪轨迹。
用手部外接矩形的左上角坐标来表示手的位置。然后等间隔采样得到坐标点序列,再根据每个坐标与坐标序列中心点的角度对其进行离散化,提取特征向量用于后期的分类识别。
例如8连通链码得到的特征向量为0-7的整数序列
基于视觉的动态手势轨迹跟踪相关推荐
- 【开源方案共享】VDO-SLAM:基于视觉的动态SLAM感知系统
点云PCL免费知识星球,点云论文速读. 标题:VDO-SLAM: A Visual Dynamic Object-aware SLAM System 作者:Jun Zhang , Mina Henei ...
- 【开源分享】VIDO-SLAM:一种视觉惯性动态物体SLAM系统
文章:Inertial-Only Optimization for Visual-Inertial Initialization 作者:Carlos Campos, Jose M.M. Montiel ...
- 论文简述 | DOT:面向视觉SLAM的动态目标跟踪
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 1 摘要 在本文中,我们提出了动态目标跟踪(DOT),一个添加到现有SLAM系统的前端,可以显著提高它 ...
- 基于opencV的动态背景下运动目标检测及跟踪(修改版)
基于openCV的动态背景下的运动目标检测 from: http://www.mianfeiwendang.com/doc/89c6692a222a84b2ced0d502/1 摘要:介绍在动态背景下 ...
- 柔性机械臂_CSR论文精选 | 基于视觉的双连杆柔性机械臂末端位置跟踪控制
05基于视觉的双连杆柔性机械臂末端位置跟踪控制 Umesh Kumar Sahu; Dipti Patra; Bidyadhar Subudhi 文章精读 英文标题: Vision-based tip ...
- 前景提取 matlab,基于MATLAB的动态前景目标特征提取与运动跟踪
吴晶鑫 仲梁维 摘 要:动态前景目标识别和提取是计算机视觉领域的重要内容.对动态图像进行前景目标提取与运动跟踪,通过改进高斯混合背景模型,提出一种基于自适应特征加权的前景目标提取算法,目的是对动态画面 ...
- 基于MATLAB的动态前景目标特征提取与运动跟踪
基于MATLAB的动态前景目标特征提取与运动跟踪 摘 要:动态前景目标识别和提取是计算机视觉领域的重要内容.对动态图像进行前景目标提取与运动跟踪,通过改进高斯混合背景模型,提出一种基于自适应特征加权的 ...
- 基于matlab单目视觉焊缝跟踪系统,基于激光线结构光3D视觉的机器人轨迹跟踪方法与应用...
摘要: 本文利用工控机.图像采集卡.工业相机和激光器,设计了激光线结构光3D视觉系统;利用工控机.运动控制卡.伺服驱动器和六轴串联机器人组成机器人运动系统;两者共同构成基于激光线结构光的机器人轨迹跟踪 ...
- 使用Minifly打造基于视觉感知的跟踪无人机
摘自:https://www.cnblogs.com/kryo/p/11278565.html 使用Minifly打造基于视觉感知的跟踪无人机 前言:本文介绍一种可行的解决方案来实现基于视觉感知的跟踪 ...
最新文章
- 学校APP太难用,码农爸妈们自己做出开源程序,官方却要报警
- 《bbs.yingjiesheng.com,超全的求职笔经面经论坛》
- 大牛书单 | 消息队列方向的好书
- for in for of区别_Python 第5课:for…in循环黄金搭档之列表
- HTML5新特征、窍门和技术(1~5)
- C 语言:我不是针对谁,我是说在座的都是乐色
- 带你重新认识ZooKeeper!java数组长度可变吗
- 自带flash的浏览器_受够了手机自带浏览器?来看看这些超实用的不常用浏览器...
- 东北大学金工实习理论考试重点
- 汽车系统英文缩写大全,值得收藏
- 华为u8500刷机、、root
- linux的命令名必须是小写英文字母,Linux常用命令及操作
- 独立按键之长按、短按、单击、双击
- xgboost, lightgbm, catboost, 谁才是预言之战的最终赢家?
- 泰勒公式求解极限(泰勒展不开)
- signature=7b0862cc6ec2e108409eba8ab4ddc267,来用百度密语吧!!!
- linux ubuntu22.04安装原生版微信 QQ 企业微信等
- 解决ubuntu Certificate verification failed: The certificate is NOT trusted.
- DSOD: Learning Deeply Supervised Object Detectors from Scratch
- 张卫健被胃癌,自我炒作还是微波账户被盗?娱乐圈被死亡事件大揭秘
热门文章
- 18.Spring学习笔记_切面的优先级(by尚硅谷_佟刚)
- opencv实现车牌识别
- []575. Distribute Candies
- 高数-数列极限与函数极限
- 苹果电脑无法自动修复此计算机,Mac电脑因出现问题而重新启动请按一下怎么解决?附解决方法...
- 【海康摄像头二次开发】移植海康摄像头Android SDK并实现多屏显示
- 不要再使用TCHAR和_T了
- 手机安装python的步骤_手机安装python环境
- Python.openpyxl操作Excel
- 【关于ChatGPT的30个问题】26、ChatGPT的开发团队是谁?/ By 禅与计算机程序设计艺术