这个是我的综合实践与设计的课题,作为毕设的一部分,因为时间比较紧,做的很简单。主要实现了在简单背景下,利用笔记本摄像头实时采集视频,根据肤色检测识别手部区域并跟踪手部运动轨迹。

项目的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的整数序列

基于视觉的动态手势轨迹跟踪相关推荐

  1. 【开源方案共享】VDO-SLAM:基于视觉的动态SLAM感知系统

    点云PCL免费知识星球,点云论文速读. 标题:VDO-SLAM: A Visual Dynamic Object-aware SLAM System 作者:Jun Zhang , Mina Henei ...

  2. 【开源分享】VIDO-SLAM:一种视觉惯性动态物体SLAM系统

    文章:Inertial-Only Optimization for Visual-Inertial Initialization 作者:Carlos Campos, Jose M.M. Montiel ...

  3. 论文简述 | DOT:面向视觉SLAM的动态目标跟踪

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 1 摘要 在本文中,我们提出了动态目标跟踪(DOT),一个添加到现有SLAM系统的前端,可以显著提高它 ...

  4. 基于opencV的动态背景下运动目标检测及跟踪(修改版)

    基于openCV的动态背景下的运动目标检测 from: http://www.mianfeiwendang.com/doc/89c6692a222a84b2ced0d502/1 摘要:介绍在动态背景下 ...

  5. 柔性机械臂_CSR论文精选 | 基于视觉的双连杆柔性机械臂末端位置跟踪控制

    05基于视觉的双连杆柔性机械臂末端位置跟踪控制 Umesh Kumar Sahu; Dipti Patra; Bidyadhar Subudhi 文章精读 英文标题: Vision-based tip ...

  6. 前景提取 matlab,基于MATLAB的动态前景目标特征提取与运动跟踪

    吴晶鑫 仲梁维 摘 要:动态前景目标识别和提取是计算机视觉领域的重要内容.对动态图像进行前景目标提取与运动跟踪,通过改进高斯混合背景模型,提出一种基于自适应特征加权的前景目标提取算法,目的是对动态画面 ...

  7. 基于MATLAB的动态前景目标特征提取与运动跟踪

    基于MATLAB的动态前景目标特征提取与运动跟踪 摘 要:动态前景目标识别和提取是计算机视觉领域的重要内容.对动态图像进行前景目标提取与运动跟踪,通过改进高斯混合背景模型,提出一种基于自适应特征加权的 ...

  8. 基于matlab单目视觉焊缝跟踪系统,基于激光线结构光3D视觉的机器人轨迹跟踪方法与应用...

    摘要: 本文利用工控机.图像采集卡.工业相机和激光器,设计了激光线结构光3D视觉系统;利用工控机.运动控制卡.伺服驱动器和六轴串联机器人组成机器人运动系统;两者共同构成基于激光线结构光的机器人轨迹跟踪 ...

  9. 使用Minifly打造基于视觉感知的跟踪无人机

    摘自:https://www.cnblogs.com/kryo/p/11278565.html 使用Minifly打造基于视觉感知的跟踪无人机 前言:本文介绍一种可行的解决方案来实现基于视觉感知的跟踪 ...

最新文章

  1. 如何运行具有奇点的NGC深度学习容器
  2. Sublime Text2.0.2注册码
  3. 3_3 ObserverMode 观察者模式
  4. jdbctemplate 开启事务_SpringBoot 系列教程之事务隔离级别知识点小结
  5. 【script】python3中的docx、win32com和openpyxl模块
  6. 安装oracle ora-01005,Exteernal table ORA-29913,ORA-30653,KUP-01005
  7. 经典排序算法总结与Python实现(下)
  8. FontAwesome图标大全
  9. android studio手机与蓝牙收发数据_QT for Android :蓝牙
  10. excel文件损坏修复绝招_电脑常识:电脑提示dll文件丢失/损坏,该怎么修复?...
  11. 【细胞分割】基于matlab GUI原子力显微镜图像分析【含Matlab源码 1371期】
  12. c3p0 服务启动获取连接超时_一次c3p0连接池连接异常错误的排查
  13. php融云开发文档,融云应用公众服务开发者文档 - 融云 RongCloud
  14. Python练习小程序 定时关机小脚本
  15. Tkinter 的text使用方法
  16. (车载网络-读书笔记)Source Identification Using Signal Characteristics in Controller Area Networks
  17. 一些实用的零零散散的知识
  18. YOLOv7详解:实时目标检测新标杆 | Chien-Yao Wang团队与Alexey团队倾力打造
  19. point类型的数组java_Java基础学习之引用类型数组访问NullPoint问题
  20. 计算机网络的各层协议知识总结

热门文章

  1. 数字滚动效果(number-flip)
  2. CAD图纸如何从低版本转换成高版本
  3. edge 黑色 护眼 深色模式
  4. imagecreatefromjpeg(): gd-jpeg, libjpeg: recoverable error: Corrupt JPEG data: 1 extraneous bytes be
  5. ubuntu 安装tar.gz文件
  6. PR制作视频开头上下帷幕拉开效果
  7. ACM-ICPC近年省赛汇总
  8. IOT演进,数据觉醒
  9. 获取sku详细信息 API 返回值说明
  10. 数字孪生数字工厂 数字孪生工厂解决方案