一种基于手部姿态估计的灵巧手遥操作方法
未命名
08-26
阅读:155
评论:0

1.本发明属于计算机视觉、遥操作和人工智能技术领域,尤其涉及一种基于手部姿态估计的灵巧手遥操作方法。
背景技术:
2.随着科学技术的快速发展,各式各样的机器人被广泛应用于生活中的各个领域。而目前机器人拥有的机械化式重复工作已经无法满足人们对于机器人更深层次的需求,人们迫切需求机器人在工业制造、服务行业和危险作业等方面帮助人类完成更多复杂的任务。在机器人领域,当前灵巧手还无法独立处理大量复杂的任务,尤其是出现需要快速做出决策或处理极端情况时,离不开人类的遥操作。而手势作为人们与生俱来的一种自然交互方式,如何将控制端人类的手部姿态快速准确地转化为灵巧手的控制指令成为了研究的热点。
3.其中最常见的方法是使用数据手套,通过多个传感器实时获取操作者手部的姿态信息,然后将姿态信息转换为灵巧手的控制指令传递给控制终端,令灵巧手模仿操作者的动作,进而完成拿、抓、握等相关动作。但是这种方法过于依赖于数据手套对人手姿态信息的采集,过于沉重的设备不仅在一定程度上限制了人手的动作表达,也导致前期准备过于繁琐,无法实现更为便捷的操控,从而限制了该类方法的推广应用。
技术实现要素:
4.为了更加便捷的获取人手准确的手部姿态信息并以此实现灵巧手的遥操作,本发明揭示了一种基于手部姿态估计的灵巧手遥操作方法,所述方法包括如下步骤:
5.s100:采用基于detnet的手部姿态估计网络获取手部关键点的3d坐标;
6.s200:采用基于运动规划的方法将所述获取的手部关键点的3d坐标映射为控制灵巧手的关节角度。
7.该方法具有易操作、关节角度映射准、延时短的特点,可广泛用于工业生产、服务行业、危险作业等领域的灵巧手操作。
附图说明
8.图1是本发明一个实施例中所提供的一种基于手部姿态估计的灵巧手遥操作方法流程图;
9.图2是本发明一个实施例中所提供的一种基于detnet的手部姿态估计网络结构示意图;
10.图3是本发明一个实施例中所提供的一种基于resnet50的手部特征提取网络结构示意图;
11.图4是本发明一个实施例中所提供的根据手势热图生成的位图获取关键点的3d坐标的示例图;
12.图5是本发明一个实施例中所提供的一种人手和灵巧手关节的映射关系图;
13.图6是本发明一个实施例中所提供的一种基于运动规划的灵巧手关节角度求解示例图。
具体实施方式
14.为了使本领域技术人员理解本发明所披露的技术方案,下面将结合实施例及有关附图1至图6,对各个实施例的技术方案进行描述,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。
15.在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其他实施例互斥的独立的或备选的实施例。本领域技术人员可以理解的是,本文所描述的实施例可以与其他实施例相结合。
16.参见图1,在一个实施例中,本发明揭示了一种基于手部姿态估计的灵巧手遥操作方法,所述方法包括如下步骤:
17.s100:采用基于detnet的手部姿态估计网络获取手部关键点的3d坐标;
18.s200:采用基于运动规划的方法将所述获取的手部关键点的3d坐标映射为控制灵巧手的关节角度。
19.就该实施例而言,本方法通过基于detnet的手部姿态估计网络获取手部关键点的3d坐标、采用基于运动规划的方法将所述获取的手部关键点3d坐标映射为控制灵巧手的关节角度这两个步骤可实现基于手势的灵巧手遥操作。
20.所述的手部姿态估计算法主要涉及手部关键点的坐标获取,主要可以分为通过手部模型进行姿态估计的生成式方法以及基于神经网络的回归关键点坐标的判别式方法。随着深度学习领域的快速发展,基于深度卷积网络的姿态估计方法由于结构简单且效果明显受到了广泛的关注,基于学习的判别式方法在手势姿态估计应用中也更受青睐。所述的人手向灵巧手的动作映射方法主要涉及确定两者之间的动作映射关系,将手部的姿态信息传递给灵巧手,实现灵巧手的遥操作。常见的映射关系大致可以分为三类:角度映射,姿态映射以及位置映射。三种映射方式中,角度映射是最为直接的映射方法,将人手关节角度直接映射为灵巧手的关节角度。
21.本方法考虑到深度图像需要专门的深度相机进行采集,获取成本高以及遥操作的实时性要求,设计实现了一种基于detnet网络的手部姿态估计方法以及基于运动规划的人手向灵巧手的关节角度映射方法,其以rgb图像为输入,通过从图像二维特征中学习的3d姿态隐含特征,结合网络输出的2d关键点估计坐标,估计相应的3d关键点坐标;并通过运动规划的方法,将所述获取的手部关键点3d坐标映射为控制灵巧手的关节角度。
22.所述基于detnet的手部姿态估计网络结构包括特征提取器(feature extractor)、2d检测器(2d detector)和3d检测器(3ddetector)。特征提取器结构即resnet50网络结构,2d检测器为两层简单的卷积网络,3d检测器主要由一个全卷机网络组成。resnet网络是detnet网络所用的特征提取模块,即backbone部分所使用的网络。
23.在另一个实施例中,所述的detnet手部姿态估计网络整体结构如图2所示。
24.将rgb摄像头拍摄的手部图像调整为128
×
128的分辨率后送入网络,经过由
resnet50构成的特征提取模块提取手部信息并输出大小为32
×
32
×
256的特征图f;2d检测模块由一个简单的2层卷积网络构成。将resnet50网络提取到的特征图f输入到卷积网络中输出相应关键点的热图(heatmap)h,将得到的特征图与热图特征融合后一起送入网络的3d检测器部分;在3d检测器部分,首先利用2层卷积网络来从热图h和特征图f生成增量图进一步提取语义信息,然后,将热图h、特征图f和增量图特征融合后一并送到另一个2层全卷积网络中,生成最终的位图,以位图的形式估计各个关节的3d坐标。
25.网络主要在三个公共数据集进行训练:cmu panoptic(cmu)、rendered handpose dataset(rhd)和stereo tracking benchmark dataset(stb)。cmu数据集包含了14817张全景摄影棚拍摄的人物图片,并带有真实世界收集的2d注释。网络主要聚焦于手部姿态的信息获取,所以在特征提取前需要对此数据集进行相应的预处理,根据ground truth的关键点标注对图像中的手部进行裁剪。rhd数据集包含了43986个基于第三方视图合成的模拟游戏场景图片,其中包括了20个不同人物分别执行不同动作时的模拟场景,并且提供了包含手部21个关键点的二维信息与三维坐标的数据标签。stb数据集包含了18000组真实世界的数据样本,其中包含了真实的人手在不同背景和不同照明条件下的rgb图像与深度图像以及相应2d与3d注释。最后将数据集按照8:2的比例随机分为训练集和测试集,每个样本由一个rgb图像以及相应的2d或3d注释构成。
26.合适的损失函数可以高效的利用手部图像中的2d和3d标注训练网络,加快网络的收敛速度,提高网络的学习效率。detnet手部姿态估计网络的损失函数主要由如下所示的三个部分组成:
27.loss=λ1l
heat
+λ2l
loc
+λ3l
delta
28.其中,l
heat
的定义为:
[0029][0030]
l
heat
通过计算h和h
gt
之间的frobenius范数,最小化估计值和真实值之间的距离误差。为了生成关键点j的ground truth热图本文使用以图像数据集2d注释为中心,标准差σ=1的高斯滤波器对图像进行处理。为了更好的监督网络对于带有3d标签的手部图像进行学习,损失函数中加入了l
loc
和l
delta
两个额外损失:
[0031][0032][0033]
其中,
⊙
表示矩阵乘积,l
loc
和l
delta
分别用于比较ground truth和生产的位图和增量图之间的差值。location map(上面公式中的l)和delta map(上面公式中的d)的ground truth l
gt
和d
gt
通过将数据集中手部图像的ground truth中关节位置和骨骼方向的坐标扩展到热图的尺寸的方式生成。而3d检测器部分主要对热图最大值处的3d坐标进行预测,因此使用h
gt
对差值进行加权。并通过计算h和h
gt
之间的frobenius范数,最小化估计值和真实值之间的距离误差。其中frobenius范数(上面公式中的f)也称为euclidean范数,是矩阵的一种范数,也即矩阵各元素平方和的二次方根。
[0034]
训练过程各个阶段都使用adam优化器,并为进一步避免高深度网络训练中出现梯度消失或梯度爆炸而导致网络无法收敛,在网络训练前对权重进行xavier初始化操作,确
保输入和输出服从相同的分布。训练的批次大小设为16;训练轮数设为80;初始的学习率为0.001,每20轮学习率衰减为原来的0.1。在训练时,每一批的训练数据都包含带有2d和3d标注的手部图像,同时对所有模块进行联合训练。并且考虑到量纲之间的差异以及特征提取模块与2d检测器模块是整个手部姿态估计网络最为基础的一环,为了提高关键点2d坐标的估计精度,超参数取λ1=1、λ2=0.5、λ3=0.05来训练网络。
[0035]
在另一个实施例中,所述步骤s100中进一步包括:
[0036]
s101:手部特征图的生成;
[0037]
s102:通过所得到的手部特征图预测手部关键点的2d坐标;
[0038]
s103:通过所得到的手部特征图以及手部关键点的2d坐标预测手部关键点的3d坐标。
[0039]
就该实施例而言,基于detnet的手部检测网络对手部检测的处理过程分为三步。
[0040]
第一步:手部特征图的生成。在网络输入端部分,将rgb摄像头拍摄的手部图像调整为128
×
128的分辨率后送入网络,经过特征提取模块提取手部信息并输出大小为32
×
32
×
256的特征图f。本方法采用resnet50架构的骨干网络(backbone)作为网络的特征提取器部分,其整体框架如图3所示。resnet50网络主要由卷积层(conv)、正则化层(bn)、激活函数层(relu)、最大池化层(maxpoo1)、平均池化层(avgpool)、全连接层(fc)以及多个残差块bottleneck(btnk)组成。最大池化和平均池化是常见的池化操作,即将输入图像平均划分成若干个矩形区域。最大的池化则是将池化区域的像素点取最大值,这种方式得到的特征图对纹理特征信息更加敏感;平均池化则是对池化区域内的图像取平均值,这种方式得到的特征信息对背景信息更加敏感。通过最大池化可以更好地提取目标在特征图中突出的部分,协助网络更好地判断目标的大小和形状,而平均池化,则有助于降低特征图的尺寸,增强特征的表示能力,同时减少过拟合风险。全连接层在整个卷积神经网络中起到“分类器”的作用,将学到的“分布式特征表示”映射到样本的标记空间。残差块有两种结构,其中btnk1模块通过对输入图像进行下采样降低后续计算的参数量大小,用以提升网络的计算效率;btnk2残差块则采用快捷连接和恒等映射的结构解决了网络因深度加深而出现的训练难,收敛慢等问题,确保网络能够提取到不同层次的手部特征信息。
[0041]
第二步:通过所得到的特征图预测手部关键点的2d坐标。2d检测模块由一个简单的2层卷积网络构成。将resnet50网络提取到的特征图f输入给网络,并输出对应关节j的热图(heatmap)hj,hj上每个像素的值表示第j个关节位于此处的置信度,置信度最高处表示该关键点的2d坐标。
[0042]
第三步:通过所得到特征图以及2d坐标预测手部关键点的3d坐标。3d检测器部分,输入由特征提取模块和2d检测模块生成的特征图f和热图h,并通过一个全卷积网络来预测3个额外的位图(location map),以location mapl的形式估计各个关节的3d坐标,具体示例如图4所示。对于关节j,保证预测的位图lj与热图hj分辨率保持一致的同时,并通过位图lj中的像素值表示关节j的3d坐标。在推理时,首先确定热图最大值处的像素坐标,并根据该坐标在相应的xyz三个生成位图中分别取得该关键点的3d坐标(-0.125,0.412,0.104)。
[0043]
在另一个实施例中,所述步骤s101中进一步包括:对输入的手部图像通过resnet50网络进行特征提取并生成相应的手部特征图。
[0044]
在另一个实施例中,所述步骤s102中进一步包括:将所述手部特征图输入到两层
卷积网络,输出对应手部关键点的2d热图,所述2d热图中每个像素的值表示该手部关键点位于此处的置信度,置信度最高处表示该手部关键点的2d坐标。
[0045]
在另一个实施例中,步骤s103进一步包括如下步骤:
[0046]
s1031:输入的2d热图和手部特征图经过两层卷积网络生成相应的特征增量图;
[0047]
s1032:将所述2d热图、手部特征图和特征增量图一并送到另一个两层全卷积网络中,生成三个额外的位图;
[0048]
s1033:通过2d热图最大值处的x、y、z位图中每个像素的值表示手部关键点位于此处坐标值作为该手部关键点的3d坐标。
[0049]
就该实施例而言,位图就是2d热图、手部特征图和特征增量图卷积操作生成的和热图分辨率相同的图像,上面每个像素的值代表热图该点处的坐标,用来代表热图每个像素点位置处xyz三个方向的坐标大小。
[0050]
基于热图回归关键点坐标会以每一个关键点为中心产生了一个高斯热图,离中心点最近的位置值越大,离中心点远的位置值越小,整体数值围绕中心点随着距离指数衰减。可以将这些数值理解为该位置存在关键点的概率,热图值最大处代表该点为关键点的概率最大,可以看作关键点在手部图像中的位置。
[0051]
在另一个实施例中,步骤s1033中的手部关键点的3d坐标根据参考骨骼的长度进行了归一化处理。
[0052]
就该实施例而言,需要注意的是,为了消除单目视觉的深度歧义性带来的影响,估计的是相对于根节点的3d坐标,并根据参考骨骼的长度进行了归一化处理。其中将中指根关节处的关键点作为根关节,并将从该关节到手腕的骨骼定义为参考骨骼。
[0053]
在另一个实施例中,步骤s200进一步包括如下步骤:
[0054]
s201:将手部关键点映射到灵巧手的运动空间;
[0055]
s202:根据几何关系计算指尖在灵巧手运动空间下的相对坐标;
[0056]
s203:在ros仿真环境下进行运动规划并执行运动规划结果,根据执行的运动规划结果获取灵巧手的关节角度。
[0057]
就该实施例而言,第一步将人手关节映射到灵巧手的运动空间中:和基于几何法的关节角度求解方法类似,基于运动规划的方法首先也需将人手关节的世界坐标系转换为基于手腕部分的局部坐标系;同时考虑到人手的结构大小和灵巧手存在差异,对人手的局部坐标系与灵巧手的局部坐标系作对齐处理,其对应关系如图5所示。为方便指代,将人手手指的四个关键点分别称作tip,dip,pip和mcp。其中tip表示的是指尖位置的关键点,由于指尖自身不会影响手部的动作,所以其自由度为0;而dip和pip两者结构类似,均可绕自身局部坐标系中的x轴旋转,因此具有1个自由度;mcp作为手指根部的关键点,与dip和pip关键点类似都可以绕x轴旋转,除此之外还可以左右摆动,具有两个自由度。但考虑到实际控制时,人手手部动作基本不会涉及手指根部的左右摆动并且使用的灵巧手手指根部无法转动,本方法将mcp关节看作仅具有一个自由度。
[0058]
第二步:在灵巧手的相对坐标系中,根据获取的关键点坐标信息,得到指尖处关键点相对于手腕关键点的相对坐标。
[0059]
第三步:进一步进行运动规划求解时,本方法选取位置约束和方向约束作为约束条件,来优化关节角度的求解。实际中为了简化运动规划的求解过程,只取其中一部分进行
后续的运动学求解。由于指尖在整个手指运动链中处于末端,对于反映手指的最终状态最具代表性,因此选取每个手指的指尖坐标作为位置约束。而又因为手指的根关节处于手指运动链的最前端不会有误差累积,故选择每根手指的mcp-pip作为方向约束。将灵巧手的五根手指看作为小型的四轴机械臂,多个约束条件下的关节角度求解转换为典型的逆运动学规划问题。其中运动规划算法使用的是bioik算法,该算法可以设置多个不同形式的规划目标,并且通过权重参数调整每个规划目标在整个任务中的重要性。在上述的多个约束条件中,指尖位置最为重要,因此可将权重设为1,其余的两个约束都可设置为0.2作为辅助约束。
[0060]
在另一个实施例中,步骤s201进一步包括如下步骤:将手部关键点的世界坐标系转换为基于手腕部分的人手的局部坐标系,同时对人手的局部坐标系与灵巧手的局部坐标系作对齐处理。
[0061]
在另一个实施例中,步骤s203进一步包括如下步骤:选取指尖坐标作为位置约束以及根关节方向作为方向约束,优化关节角度的求解。
[0062]
在另一个实施例中,步骤s203中执行运动规划结果时采用基于topic的通信方式进行灵巧手控制。
[0063]
就该实施例而言,需要注意的是ros主要提供topic和service两种通信方式。其中topic相当于一个消息队列,将信息以话题的形式发布而订阅端通过订阅这个话题实现信息交互。而基于service的通信方法中,master主节点会一直维护一个service服务,每个节点通过指令调用该服务,客户端每次调用均需等待结果的返回,因此增加了响应时间。采用基于topic的通信方式可以有效控制指令解决响应时间慢的问题,改善该遥操作方法的实时性。
[0064]
在另一个实施例中,所述基于运动规划的灵巧手关节角度求解流程如图6所示。
[0065]
就该实施例而言,首先根据几何关系,通过手部姿态估计算法获取的各关键点的3d坐标得到指尖关键点在灵巧手坐标系下相对于手指根关节的相对坐标,以其中的食指为例,其坐标为(0.014,0.034,0.813);再根据指尖坐标在ros仿真环境下,进行逆运动学规划求解,得到灵巧手手指的各关节的弯曲角度,即所求的灵巧手关节角度86.8。本方法通过运动规划算法获取关节角度的人手向灵巧手动作映射方法,利用手指各关节之间的运动约束关系,提高了动作映射的准确性以及鲁棒性。
[0066]
所述的基于运动规划的关节角度求解方法和基于可穿戴设备(如数据手套等)的灵巧手控制方法相比,需要通过人手与灵巧手之间的几何关系将手部关键点的3d坐标转换为灵巧手的关节角度以实现人手向灵巧手的动作映射。常见的方法是将关键点的坐标转换到基于掌心的局部坐标系中,然后将相邻的关键点构成空间向量,通过求解向量夹角获取灵巧手控制所需的关节角度。同时考虑到实际手指的关节并不是相互独立的存在,相反它们处于同一个运动链上,因此存在较大的相关性。这可以看作是一种约束关系,这种强约束的存在,可以保障整体的关节角度不会因为某一部分的坐标误差而对整体造成较大的影响。在几何法求解的基础上,提出了一种通过运动规划算法获取关节角度的人手向灵巧手动作迁移方法。
[0067]
最后,需要说明的是,本领域的普通技术人员在本说明书的启示下和在不脱离本发明权利要求所保护的范围的情况下,还可以做出很多种的形式变化,这些均属于本发明
保护之列。
技术特征:
1.一种基于手部姿态估计的灵巧手遥操作方法,所述方法包括如下步骤:s100:采用基于detnet的手部姿态估计网络获取手部关键点的3d坐标;s200:采用基于运动规划的方法将所述获取的手部关键点的3d坐标映射为控制灵巧手的关节角度。2.如权利要求1所述的方法,所述步骤s100中进一步包括:优选的,s101:手部特征图的生成;s102:通过所得到的手部特征图预测手部关键点的2d坐标;s103:通过所得到的手部特征图以及手部关键点的2d坐标预测手部关键点的3d坐标。3.如权利要求2所述的方法,所述步骤s101中进一步包括:对输入的手部图像通过resnet50网络进行特征提取并生成相应的手部特征图。4.如权利要求2所述的方法,所述步骤s102中进一步包括:将所述手部特征图输入到两层卷积网络,输出对应手部关键点的2d热图,所述2d热图中每个像素的值表示该手部关键点位于此处的置信度,置信度最高处表示该手部关键点的2d坐标。5.如权利要求1所述的方法,步骤s103进一步包括如下步骤:s1031:输入的2d热图和手部特征图经过两层卷积网络生成相应的特征增量图;s1032:将所述2d热图、手部特征图和特征增量图一并送到另一个两层全卷积网络中,生成三个额外的位图;s1033:通过2d热图最大值处的x、y、z位图中每个像素的值表示手部关键点位于此处坐标值作为该手部关键点的3d坐标。6.如权利要求5所述的方法,步骤s1033中的手部关键点的3d坐标根据参考骨骼的长度进行了归一化处理。7.如权利要求1所述的方法,步骤s200进一步包括如下步骤:s201:将手部关键点映射到灵巧手的运动空间;s202:根据几何关系计算指尖在灵巧手运动空间下的相对坐标;s203:在ros仿真环境下进行运动规划并执行运动规划结果,根据执行的运动规划结果获取灵巧手的关节角度。8.如权利要求7所述的方法,步骤s201进一步包括如下步骤:将手部关键点的世界坐标系转换为基于手腕部分的人手的局部坐标系,同时对人手的局部坐标系与灵巧手的局部坐标系作对齐处理。9.如权利要求7所述的方法,步骤s203进一步包括如下步骤:选取指尖坐标作为位置约束以及根关节方向作为方向约束,优化关节角度的求解。10.如权利要求7所述的方法,步骤s203中执行运动规划结果时采用基于topic的通信方式进行灵巧手控制。
技术总结
一种基于手部姿态估计的灵巧手遥操作方法,所述方法包括如下步骤:S100:采用基于DetNet的手部姿态估计网络获取手部关键点的3D坐标;S200:采用基于运动规划的方法将所述获取的手部关键点的3D坐标映射为控制灵巧手的关节角度。所述方法具有易操作、关节角度映射准、延时短的特点,可广泛用于工业生产、服务行业、危险作业等领域的灵巧手操作。危险作业等领域的灵巧手操作。危险作业等领域的灵巧手操作。
技术研发人员:周艳辉 胡翔驰 马文彪 郝健雄 葛晨阳
受保护的技术使用者:西安交通大学
技术研发日:2023.07.12
技术公布日:2023/8/24
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/