毕业设计(一):基于YOLO算法的手势识别技术
因为是大四下学期了,所以最近在准备毕设。因为我对图像感兴趣,所以最后选择了基于YOLO算法的手势识别技术。之前对于这个是完全没有任何概念的,所以要从头开始进行学习。
手势识别技术
近年来,计算机视觉技术(Computer Vision,CV)迅速发展,人类的生活方式和生产方式越来越智能化,人机交互技术(Human Computer Interaction,HCI)已经成为时代潮流的主题。手势识别就是其中备受瞩目的研究方向之一。
手势检测识别技术是由计算机通过视频输入硬件(摄像头等)对使用者有一定语义的手势进行摄像后进行特定的检测与识别分析进而输出预先设定结果的一种计算机技术。
手势识别主要分为静态手势识别与动态手势识别,在深度学习出现之前,不管是静态手势还是动态手势,大多数方法都是基于人工提取的特征进行分类,随着深度学习的发展,由于深度神经网络学习有效特征的强大能力,大量研究人员开始探索基于深度学习的手势识别方法。
在手势识别技术研究的早期,人们主要靠硬件来进行测量研究。例如被测试者会穿戴手套、头盔等外部设备,为了使测量数据更加准确,测试员往往会加大皮肤颜色于背景颜色的色差,在早期最好的方法就是使手套变得荧光,在摄像头的扫描下与背景会有明显的区别,如已经产品化的cy-berGlove。但是它的缺点也十分明显,硬件的价格昂贵,穿戴者会感到不适,于是研究人员开始以在手部粘贴高亮标签取代手套的佩戴。借助光学技术,利用红外线扫描将需要捕捉的动作投射到屏幕中,虽然也有缺陷,但是也是一种进步。后来计算机视觉技术的发展,研究人员开始把目光放到不需要借助外部设备的自然手势识别技术之上。逐渐地,就发展成为现在的研究环境。目前手势识别主要有基于计算机视觉、基于超声波和基于惯性传感器三种实现方式。超声波技术主要依赖多普勒效应。基于惯性传感器是随着微机电系统的发展出现的,渐渐地成为经济高效,人机交互性好方式。
随着几年来对手势识别技术的研究,其也被广泛运用于许多方面。例如:微软的Xbox游戏机,它利用一种3D体感摄影机(Kinect)来完成手势识别任务;虚拟现实技术(Virtual Reality,VR)也利用了手势识别,靠穿戴者的手环,手柄,头盔等来精确的识别人体动作;智能驾驶,将手势识别应用到驾驶辅助系统中,通过简单的手势,来完成一些需要按钮才可以做成的事,使车内交互更加方便自然。因此,研究手势识别技术有一定的研究意义和应用价值。
基本步骤
基于计算机视觉的手势识别主要分为下面的几个步骤:图像预处理,手势分割,手势建模和分析,手势识别。
图像预处理
这个步骤主要任务是去除图像中的冗余信息,在摄像头提取图像时,不免会有其他的干扰,会对识别造成影响。所以图像预处理是对画面进行滤波,去噪等处理,并分解为若干个静态图像进行分析。常见的手势图像预处理主要包括:手势图像去噪、手势图像二值化、形态学处理等。
手势分割
这一步骤是手势识别的前提和基础,主要任务为检测图像中是否存在手势。在图像中会存在大量背景信息,而手势分割就是将手势从背景中提取出来,降低背景的干扰。同时解决了手势图像中的多手势问题,即一副图像中含有多个手势,通过手势分割可以获取得到多个手势图像。常见手势的检测分割方法主要有: 基于运动信息的检测分割、基于徒手表观特征的检测分割以 及多模式信息的检测分割。
手势建模和分析
手势建模在手势识别技术中至关重要,一个好的模型能够提高识别的精确度。复杂的人机交互更需要一个高效且精确的模型。现在的手势模型基本都是对手势的外在形状进行分析,进而建模。根据现在的文献记载,手势建模的方法可以分为两大类:基于表观的手势建模;基于3D的手势建模。基于表观的手势建模是通过分析图像中手势的表观特征而完成的。基于3D的手势建模则多出了对于手臂的分析,不仅需要对手进行分析,还要对臂膀进行参数估计和姿态建模。模型确立后,就开始对其进行分析,根据手势模型进行特征检测和参数估计。
手势识别
手势识别是在经过图像的处理后,对手势分割区域内的图像进行特征值提取和手势模型的参数估计,最后归结为已知的手势。目前的手势识别技术主要由以下几类:基于模板匹配的方法 、基 于人工神经 网络的方法(ANN)、基于概率统计模型的方法、基于支持向量机的方法 、基于动态时间规划(DTW)的方 法和基于压缩时间轴的方法 。
在手势识别领域发展历程中,主要存在两个发展方向,即基于传统机器学习的手势识别技术与基于卷积神经网络的手势识别技术。
YOLO算法
目标检测是手势识别中重要的一环,YOLO(you only look once)算法是比其他算法更有效的方法。YOLO算法主要分为三类,YOLOv1、YOLOv2和YOLOv3。现在还有两个新版本,YOLOv4和YOLOv5,但是这两个都是在YOLOv3的基础上进行进一步改进而来的,所以YOLOv3算法是最普遍适用的算法。它是一种多目标检测算法,识别速度快,准确率高。
下面一篇文章将去介绍YOLO算法。由于现在我还在学习中,所以一时半会是出不来的。最近就要交一个报告,我得先把任务完成了才会继续。而且这算一种学习记录,我想把YOLO算法介绍清楚,才会符合自己的要求,敷衍的我是不会接受的,所以需要一段时间才可以,但是我毕业也有时间要求,所以最晚不会超过两个星期。