基于深度学习的虚拟人手势检测方法与流程

文档序号:36614924发布日期:2024-01-06 23:14阅读:18来源:国知局
基于深度学习的虚拟人手势检测方法与流程

本发明属于图像处理,具体涉及一种基于深度学习的虚拟人手势检测方法。


背景技术:

1、目前,人机交互的方式越来越多。随着虚拟技术的发展,基于手势的人机交互方式受到越来越多的关注,其在硬件成本和操作方式上都具有极大的优势。电视机、电子相框等电子设备中可以融入手势识别功能,以实现基于手势的人机交互。电子设备通过摄像头采集用户的手部动作,并通过模式识别算法对采集的图像中的手部特征进行检测和跟踪,将手部的运动信息转化为电子设备上的光标的运动信息,从而触发电子设备上相应的操作命令,例如视频播放控制、网页切换以及游戏互动等。手势识别技术基于电子设备所配备的摄像头和相应的识别软件,即可实现基于手势的人机交互。

2、现有的手势识别检测技术包括肤色分割和目标检测分割。肤色分割过程中,由于rgb 颜色空间中的 r、g、b 三个分量会一起随光照强度的变化而改变,而ycbcr颜色空间中色度信号对光照强度变化感知不强,所以肤色分割主要使用ycbcr 进行肤色与背景的区分,其亮度信号(y)和色度信号(cb 和 cr)是相互独立的。从rgb空间到 ycbcr 空间的转换公式如下:

3、,

4、将rgb图像转为ycbcr图像,提取图像的 y、cr、cb 值判断其是否在肤色范围内,若在该范围内则提取原像素值,反之则将图像像素值设置为 0,最后输出肤色分割结果。然而,rgb 图像容易受环境、光照变化的干扰,从而造成手势分割效果不稳定。肤色分割还存在一些不足,如图片中若有其他肤色区域或人的衣服颜色与肤色相近,会导致该部分被误判为手。总之,应用肤色分割的方法进行手势分割会造成手部提取不充分,手部区域断断续续,进而降低后续的手势识别准确率。

5、通俗来讲,目标检测就是目标识别与定位的结合,使用目标检测分割手势,能够得到手势的位置与类别。目标检测的主流算法框架大致分为一阶结构与两阶结构。两阶结构的算法有 rcnn 系列,一阶结构算法的代表有 yolo系列和ssd算法等。faster rcnn为两阶结构目标检测算法,该网络基本结构主要由4部分构成,分别为基础特征提取、rpn候选区域提取、roi pooling层和分类回归。基础特征提取网络常用vgg16,其全部卷积层与前四层池化用来提取图片特征,最后的输出尺寸是原图片的1/16。区域提议网络(region proposalnetworks ,rpn) 如图1所示,该网络首先根据上一层产生的共享特征图的每个点对应生成k 个锚框(anchor boxes),然后判断锚框属于前景还是背景,同时修正锚框的位置,修正位置后的锚框记作预测框,该模块的主要功能是定位。roi pooling层从预测框中筛选出兴趣区域(region of interest, roi)送入分类判别网络。把每个roi区域对应到 vgg16 提取的整张图片的特征图上,并将对应区域的特征提取出来,然后 roi pooling 将不同维度的roi 转化至维度一致,以保证其能够输入到全连接网络。roi pooling 经历了两次量化过程,输出格式为pool_ w*pool_ h ,作者令 pool_ w 和 pool_ h 都为 7。roi pooling后,由于量化的原因使得候选框与起初回归的位置会存在偏差。分类回归网络(classifier)将池化后的 roi 作为输入进行延展,后接全连接层和两个同级的分类层与位置回归层。该网络分类层的输出维度等于物体的类别数,表示每个类别的置信度,回归层则输出类别的位置偏移量。

6、yolo (you only look once: unified, real-time object detection)系列网络的核心思想是整个图片作为网络的输入,直接返回位置和目标的类型。yolo是one-stagedetection的开山之作。之前的物体检测方法均是基于先产生候选区再检测的方法,虽然有相对较高的检测准确率,但运行速度较慢。yolo创造性的将物体检测任务直接当作回归问题(regression problem)来处理,将候选区和检测两个阶段合二为一。只需一眼就能知道每张图像中有哪些物体以及物体的位置。事实上,yolo也并没有真正的去掉候选区,而是直接将输入图片划分成7x7=49个网格,每个网格预测两个边界框,一共预测49x2=98个边界框。可以近似理解为在输入图片上粗略的选取98个候选区,这98个候选区覆盖了图片的整个区域,进而用回归预测这98个候选框对应的边界框。yolo网络借鉴了googlenet分类网络结构,不同的是yolo使用1x1卷积层和3x3卷积层替代inception module。整个检测网络包括24个卷积层和2个全连接层。其中,卷积层用来提取图像特征,全连接层用来预测图像位置和类别概率值。yolo模型将对象检测框架为一个回归问题,回归到空间分隔的边界框和相关的类概率。在一次评估中,单个神经网络直接从完整的图像中预测边界框和类概率。由于整个检测流程是一个单一的网络,可以直接对检测性能进行端到端优化。yolo模型以每秒45帧的速度实时处理图像。yolov1网络结构图如图2所示,由24个卷积层和12个全连接层组成,通过全连接层预测目标的位置和类别,因此其仅支持相同的分辨率。此外,在训练网络的时候,需要明确每个真实物品由哪一个锚框来负责检测。当有多个物体同属于一个区域,yolo 是无法检测出的,并且如果目标太小或太大,也很难检测到。yolov1 实现了对目标的实时检测,但在相同的基本深度模型中,其检测精度低于其他主流的目标检测算法。在保证分类精度和检测速度的条件下,为了提高目标精度和检测速度,在yolov1 网络中采用了 faster rcnn 中的锚框思路,重新设计了网络结构。这就是yolov2。yolov2 提出了darknet-19,卷积和池化后通道数增加。使用全局平均池化代替 yolov1 的全连接层用于预测分类,使用批量标准化优化网络使训练更加稳定。yolov2 优化了锚框大小的选择方式,并使用 kmeans 聚类方法选择合适的值,并且 yolov2 使用多尺度训练方法,它会微调输入图像的大小以便网络可以使用不同大小的图像。yolov2相对v1版本,在继续保持处理速度的基础上,从预测更准确(better),速度更快(faster),识别对象更多(stronger)这三个方面进行了改进。其中识别更多对象也就是扩展到能够检测9000种不同对象,称之为yolo9000。有人提出了一种新的训练方法–联合训练算法,这种算法可以把这两种的数据集混合到一起,使用一种分层的观点对物体进行分类,用巨量的分类数据集数据来扩充检测数据集,从而把两种不同的数据集混合起来。联合训练算法的基本思路就是:同时在检测数据集和分类数据集上训练物体检测器(object detectors ),用检测数据集的数据学习物体的准确位置,用分类数据集的数据来增加分类的类别量、提升健壮性。yolo9000就是使用联合训练算法训练出来的,他拥有9000类的分类信息,这些分类信息学习自imagenet分类数据集,而物体位置检测则学习自coco检测数据集。yolov3 的先验检测系统将分类器或定位器重新用于执行检测任务。他们将模型应用于图像的多个位置和尺度。而那些评分较高的区域就可以视为检测结果。此外,相对于其它目标检测方法,使用了完全不同的方法。将一个单神经网络应用于整张图像,该网络将图像划分为不同的区域,因而预测每一块区域的边界框和概率,这些边界框会通过预测的概率加权。yolov3模型相比于基于分类器的系统有一些优势。它在测试时会查看整个图像,所以它的预测利用了图像中的全局信息。与需要数千张单一目标图像的 r-cnn 不同,它通过单一网络评估进行预测。这令 yolov3 非常快,一般它比 r-cnn 快 1000 倍、比 fast r-cnn 快 100 倍。yolov1 和 yolov2 在识别小物体方面无效。因此,在节省速度的前提下,yolov3 进一步优化网络,利用残差网络的思想提取特征,增强小目标的识别能力。

7、ssd 的结构如图3所示,主要分为两部分,一部分是特征提取网络,它使用了目标分类网络 vgg 16,删除了其分类层;另一部分是多尺度特征检测网络,它是一组级联 cnn,用于在第一部分生成的特征层中提取不同比例的特征。ssd 算法取消了 yolo 中的全连接层,并在检测层上映射多比例特征图,以适应输入图像中不同大小的目标。在检测层之后,ssd 算法使用非最大抑制来获得区域内的最大值。ssd 算法的思想主要有以下四点:

8、(1)在数据部分做了增强,极大的丰富了数据集,从而提升物体的检测准确率;

9、(2) ssd 在 vgg net 的基础上增加了四个卷积块可以形成不同尺度和感受野的特征图;

10、(3) ssd 的区域生成是使用先验框来实现的,在不同的尺度的特征图上都设立了预选框;

11、(4)通过分类和回归值计算预选框与真实框 iou 值筛选出正负样本,得出分类和回归损失。

12、目标检测算法虽然解决了肤色分割中因为不同光照、不同背景造成的手部关键区域噪声过多且特征分散的问题,同时也不会产生其他肤色区域的误检。但是,其一阶段检测模型整体上既要做定位又要做分类,两阶段模型通常在完成前景与背景的分类和回归后,把第一阶段的结果作为输入再进行一次多类别的分类和回归,检测准确率较单阶段有所提升但是算力开销较大。efficientdet检测算法单阶段识别率更好。

13、efficientdet检测算法主要由主干特征提取网络、双向特征融合网络、分类预测网络三部分组成。efficientnet作为主干特征提取网络,通过调整网络的深度,宽度和分辨率来获得优良的算法性能。efficientnet 网络计算为:

14、,

15、其中代表连乘运算,f 和 i 分别表示基础网络层和网络层数,表示网络深度,x 表示输入的特征矩阵,表示 x 的高度、宽度以及通道数, d、w 和 r 分别用来缩放深度、通道和分辨率,表示为:

16、,

17、,

18、,

19、式中,α、β、γ 是对应维度的资源分配参数。在满足约束条件的情况下,使用神经架构搜索调整三个参数。efficientnet 网络构建了 b0 至 b7 共八个模型,对应到efficientdet 有 d0-d7,本文的研究基于 efficientdet-d0。

20、移动反向瓶颈卷积(mb conv)是 efficientnet 的主要构件。mb conv 是从mobilenet模型中借用的概念,它由深度方向的卷积层和点方向的卷积层组成。这两个概念是从 mobilenet-v2中借用的,包括反向连接和线性瓶颈。原始残差网络中的残差块之间存在短路连接(shortcut),如图4的(a)所示。在图4的(b)所示的反向残差块中,所连接的通道大小是反向的,通道的数量被减少压缩到 16 个,从而下一层的 3×3 卷积所需的参数数量也被减少,这就是倒置残差块这个名字的由来。在后一种类型中,即使块内层中的通道数量增加到 64 个,参数的数量实际上比 resnet 的原始残差块少。

21、线性瓶颈是 mobilenet-v2 中的第二个想法,这意味着对图4的(b)中以方框突出显示的层使用线性激活函数。这被称为瓶颈层,因为信道的数量在网络的这些位置被压缩。提出 mobilenet-v2 的作者认为,cnn 体系结构中常用的 relu 激活函数不能很好地处理反向残差块,因为它会丢弃小于零的值。对通道减少的层(瓶颈通道)使用线性激活函数可产生更好的性能。

22、此外,efficientnet 网络使用名为 swish 的新激活函数,而不是 relu 激活函数。如图5所示,swish 激活函数在形状上与 relu 相似,因此具有一些良好的性能优势,它是一个更平滑的激活函数。swish 函数定义如下公式所示:

23、,

24、其中β≥0是可以在 cnn 模型的训练期间学习的参数。如果β=0,成为线性激活函数,当β→∞时,看起来越来越像 relu 函数。

25、卷积层的输出由一组通道组成,这些通道由滤波器数量参数定义。通常,这些通道的权重相等。se net 网络作为视觉注意模块,主要包含全局信息嵌入(squeeze)和自适应重新校准(excitation)两个关键部分,本质上是为更加关注与手势相关的通道特征,而抑制那些无关的通道特征,从而增强整个网络的表示能力,提高对象检测的准确率。

26、目标检测的准确率可以通过融合不同尺度的特征来提高,之前的目标检测算法普遍采用自动向下的特征金字塔网络,fpn引入了一条自顶向下的通道来融合特征,如图6的(a)所示;panet在fpn基础上增加了一条自底向上的通道,如图6的(b);efficientdet 提出了一个新的双向特征网络 bifpn,使得信息既能够自上而下的流动也能够自下而上的流动,同时使用跨级连接,如图6的(c)所示。

27、总之,虚拟人进行手势展示时,判断手势正误的第一步是检测手势的位置。fasterrcnn 虽然识别精度高,但计算量大、模型大、检测速度慢。而 ssd、yolo 虽然识别速度快,但对于很小的物体检测定位不准确。efficientdet检测算法的主干特征提取网络efficientnet 使用了深度可分离卷积、se 块和 swish 激活函数等结构,并引入了bifpn,使其检测效率提高。然而,在手势检测任务中,由于手语视频中的手存在多尺度问题,大小不一,会忽略手部特征的一些细节信息;此外由于网络层数加深造成特征融合的效果变差。


技术实现思路

1、本发明的目的在于,针对现有技术存在的缺陷,提出一种基于深度学习的虚拟人手势检测方法,,能够解决现有的efficientdet目标检测算法特征提取不充分、感受野不够、细节信息丢失等问题,提高了手势检测的准确率。

2、为了达到以上目的,本发明提供一种基于深度学习的虚拟人手势检测方法,所述手势检测方法基于训练后的手势检测模型,手势检测模型采用efficientdet手势检测模型;efficientdet手势检测模型包括基于注意力机制的主干特征提取网络、基于拉普拉斯金字塔的双向特征融合网络及分类预测网络;

3、该方法包括如下步骤:

4、采集虚拟人手势视频,并读取手势视频,将手势视频转换为手势视频帧图像;

5、将待识别的手势视频帧图像输入基于注意力机制的主干特征提取网络进行特征提取,获得待识别图像的特征图;

6、将待识别图像的特征图输入基于拉普拉斯金字塔的双向特征融合网络,对特征图中不同尺度的特征进行融合,获得待识别图像的高级特征图;

7、将待识别图像的高级特征图输入分类预测网络,对目标进行回归分类,以实现手势的识别。

8、本发明通过对主干特征提取网络和双向特征融合网络进行改进,实现了快速而精确的手部位置检测,并进行手势识别。

9、本发明进一步的采用如下技术方案:

10、优选地,所述主干特征提取网络包括依次连接的卷积层、深度卷积层、se block和点卷积层。

11、本发明的主干特征提取网络efficientnet是由一系列卷积块(mbconv block)组成的,该结构首先是一个1×1的卷积层,再经过k×k的深度卷积层,然后经由se block进行通道特征提取,最后再经过一个1×1的点卷积层。

12、优选地,在所述se block与所述点卷积层之间设有空间注意力模块,所述空间注意力模块的计算方式为:

13、,

14、其中,表示空间注意力特征, f表示给定特征图,σ表示sigmoid函数,avgpool表示平均池化,maxpool表示最大池化操作。

15、优选地,所述空间注意力模块的操作如下:首先分别使用全局平均池化和全局最大池化对从se block输入的特征图 f进行压缩,然后将两个压缩后的特征图按照通道维度进行拼接,拼接后经过一个卷积操作降维为一个通道,以保证得到的降维特征图在空间维度上与输入的特征图一致,然后降维特征图经过sigmoid函数生成空间注意力特征 m i,最后接原卷积块(mbconv block)中的点卷积操作。

16、本发明为了将注意力放在占位较小的手部空间特征上,在se block后新添了空间注意力模块(spatial attention block)。首先使用全局平均池化和全局最大池化对输入的特征图f进行压缩操作,然后将得到的2个特征图按通道维度拼接,之后经过一个卷积操作降维为一个通道,保证得到的特征图在空间维度上与输入的特征图一致,经过sigmoid函数最终生成空间注意力特征 m i,之后接原mbconv block中的点卷积操作。

17、优选地,所述基于拉普拉斯金字塔的双向特征融合网络是采用拉普拉斯金字塔(laplacian pyramid,lp)对加权双向特征金字塔网络(bifpn)进行改进,拉普拉斯金字塔第i层的数学定义如下:

18、,

19、式中,gi为拉普拉斯金字塔第i层的图像,为拉普拉斯金字塔第i+1层的图像,而up()操作为上采样操作,符号表示卷积,为5×5的高斯内核。

20、优选地,所述的将待识别图像的特征图输入,对特征图中不同尺度的特征进行融合,操作如下:

21、(1)处理前一层图像的上一层图像,对其进行上采样和高斯卷积操作;

22、(2)将当前图像的前一层图像减去步骤(1)处理后的图像,获取细节图像,细节图像的计算公式为,

23、,

24、(3)用当前图像的前一层图像加上步骤(2)获得的细节图像,以获得当前图像的增强特征。

25、本发明efficientdet模型的主干特征提取网络efficientnet使用了深度可分离卷积、se块和swish激活函数等结构,并引入了bifpn,使其检测效率提高了10倍。本发明改进的模型保留了其效率高的特点。

26、针对在现有手势检测任务中,由于手语视频中的手存在多尺度问题,大小不一,会忽略手部特征的一些细节信息,以及由于网络层数加深造成特征融合的效果变差等问题,本发明通过对主干特征提取网络和特征网络融合的改进,增强了模型对细节特征的捕捉,并且降低了因网络层增加而引起特征融合效果变差的效果,可在多种不同条件下精确地检测出手势位置。

27、针对在现有手势检测中,每个人做手语动作的过程中手势在整个视频区域的占比是不同的,手部区域时大时小,在空间层面,在efficientdet模型中,bifpn会经历多次下采样,导致部分高频细节信息被丢失的问题。为了描述遗失的这些信息,提升检测效果,本发明通过注意力机制来实现将注意力放在占位较小的手部空间特征上,并通过拉普拉斯金字塔降低网络层数增加引起的性能降低。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1