一种基于深度相机偏离用户手势控制的标定方法和装置与流程

文档序号:24193241发布日期:2021-03-09 15:51阅读:127来源:国知局
一种基于深度相机偏离用户手势控制的标定方法和装置与流程

1.本发明属于手势控制的标定技术领域,特别是涉及一种基于深度相机偏离用户手势控制的标定方法和装置。


背景技术:

2.利用深度相机获取手势深度信息,深度相机连接的主机分析3d手势行为,并与2d展示界面进行互动。目前比较常见的设备有互动投影,体感游戏机、智能电视机,通过深度相机识别人体姿势或手势来完成与投影幕、投影墙、电子屏幕体感交互过程。
3.用户在与投影幕或屏幕进行交互时,需要保证3d手势在空间坐标系下与屏幕上操作对象是一一对应的关系,并且屏幕与3d手势深度方向相互垂直。深度相机在安装过程中很难保证手势与屏幕中对象一一对应,并很难保证手势深度方向与屏幕垂直,往往深度相机深度方向与手势深度方向不是同一方向,手势操作位置也会偏离深度相机,这使得3d手势控制无法与屏幕中对象对应。
4.现有深度相机偏离用户手势交互标定方法的缺点。
5.1、依靠深度相机识别人脸朝向判断手势操作深度方向,识别精度以及人脸朝向算法精度不够,导致操作深度方向误差增大。
6.2、人脸朝向必须与操作深度方向保持一致,导致用户操作随意性太差。
7.3、深度相机必须能够拍摄到用户脸部信息,导致深度相机安装位置必须在用户前方,限制了深度相机的安装位置。
8.4、用户操作深度方向与操作屏幕没有相互垂直。
9.5、用户3d手势不能与屏幕中对象对应。
10.6、无法对曲面屏幕中元素进行对应。
11.综上所述缺点,本发明提出的一种基于深度相机偏离用户手势控制的标定方法与装置能够解决上述问题。


技术实现要素:

12.本发明目的是为了解决现有的技术问题,提出了一种基于深度相机偏离用户手势控制的标定方法和装置。
13.本发明是通过以下技术方案实现的,本发明提出一种基于深度相机偏离用户手势控制的标定方法,包括1号坐标系和2号坐标系,当前空间坐标系中心是1号深度相机,z轴是深度相机深度方向;1号深度相机安装到屏幕前方任意位置,用于采集整个屏幕数据;所述方法包括以下步骤:
14.步骤1、1号深度相机采集数据进行三维重建;
15.步骤2、由屏幕4个特征点生成空间像素点;
16.步骤3、将像素点模型pixobj点坐标投影到屏幕三维网格模型obj上,从而使得像素点模型点坐标替代屏幕像素点坐标;
17.步骤4、1号深度相机采集屏幕三维网格模型obj数据,通过屏幕三维网格模型obj数据创建像素点模型pixobj数据,2号深度相机采集空间手势坐标,将1号深度相机坐标系下的像素点模型pixobj变换到2号深度相机坐标系下从而实现空间手势坐标、pixobj、屏幕像素坐标关系一一对应;
18.步骤5、如果空间手势坐标提供指向方向,则空间手势坐标按照指向方向投影到像素点模型pixobj表面,寻找最近点,查询点编号即可得出对应的屏幕像素点坐标;如果空间手势坐标未提供指向方向,那么在空间直接寻找像素点模型pixobj最近点,查询点编号即可得出对应的屏幕像素点坐标。
19.进一步地,所述步骤1具体为:
20.步骤1.1、通过1号深度相机获取三维场景空间点;
21.步骤1.2、通过手动方式或者自动方式选取特征点,特征点位置为屏幕4个角,顺序依次为左上角、右上角、右下角、左下角;
22.步骤1.3、未被4个特征点所包含的三维场景空间点删除掉,删除前将4个特征点进行扩大处理防止误删;
23.步骤1.4、剩余的三维场景空间点,采用delaunay三角剖分算法进行三角剖分,最终得出屏幕三维网格模型数据定义为obj。
24.进一步地,在步骤2中,根据屏幕像素尺寸w,h;空间特征点坐标p1,p2,p3,p4;计算屏幕每一个像素点对应的像素点模型坐标,具体为:
25.步骤2.1、计算p1(x1,y1,z1)与p2(x2,y2,z2)之间距离d:
[0026][0027]
步骤2.2、计算横向空间像素点之间距离d:
[0028][0029]
步骤2.3、p1沿着p2

p1方向按照距离d依次生成空间像素点坐标,此时不能按照x轴方向生成,因为p1与p2没有保证与x轴平行;
[0030]
步骤2.4、根据步骤2.1、步骤2.2、步骤2.3方法生成纵向空间像素点坐标;
[0031]
步骤2.5、生成的空间像素点坐标,每个点的索引值对应屏幕像素坐标值;
[0032]
步骤2.6、生成的空间像素点进行三角剖分得出像素点模型pixobj。
[0033]
进一步地,所述步骤3具体为:
[0034]
步骤3.1、确定投影方向,p1、p2、p3、p4,形成2组平面,p1p2p3形成a面,p3p4p1形成b面,a面向量与b面向量平均值得出投影向量
[0035][0036][0037][0038]
步骤3.2、遍历像素点模型pixobj所有点,依次投影到屏幕三维网格模型obj表面,obj是由无数个三角面片组成的复杂曲面,像素点模型点按照向量向obj所有三角面片依次求交点得出新的投影点,更新像素点模型pixobj;
[0039]
步骤3.3、像素点模型pixobj投影到屏幕三维网格模型obj表面后会出现点间距不等问题,采用模型横向平滑与纵向平滑,平滑后再次执行步骤3.2;执行步骤3.3次数越多精度越高。
[0040]
进一步地,在1号深度相机与2号深度相机之间添加配准板,配准板正反面标有abc三个顶点,1号与2号深度相机采集到配准板数据后,通过手动标注,或者自动识别配准板上标签点来确定a、b、c三点空间坐标,利用a、b、c三点来实现两个坐标系变换的过程具体步骤如下:
[0041]
步骤4.1、1号深度相机在采集屏幕三维网格模型obj数据同时能够采集到配准板数据,标注点a1、b1、c1;
[0042]
步骤4.2、2号深度相机安装位置采集配准板数据,标注点a2、b2、c2;
[0043]
步骤4.3、1号深度相机采集数据进行缩放,计算缩放系数β;
[0044][0045][0046][0047][0048]
步骤4.4、按照β对a1、b1、c1和像素点模型pixobj进行缩放;
[0049]
步骤4.5、采用icp算法计算出最优匹配参数r和t,误差函数e(r,t)为:
[0050][0051]
其中n为最邻近点对的个数,p
i
表示目标点云p中的一点,q
i
表示源点云q中与p
i
对应的最近点,r为旋转矩阵,t为平移向量;
[0052]
将像素点模型pixobj按照r和t进行变换,完成pixobj变换到2号深度相机坐标系下,实现空间手势坐标与像素点模型在同一坐标系下。
[0053]
进一步地,所述如果空间手势坐标提供指向方向,则空间手势坐标按照指向方向投影到像素点模型pixobj表面,寻找最近点,查询点编号即可得出对应的屏幕像素点坐标,具体为:
[0054]
步骤5.1、空间手势坐标p按照手势指向方向n与pixobj进行投影,p点与pixobj所有三角面片求交点p、;
[0055]
步骤5.2、p、在pixobj寻找最近点m,获取m点序号n;
[0056]
步骤5.3、序号n转换像素坐标pix(x,y),w为屏幕像素宽,h为屏幕像素高;
[0057]
x=n%w
ꢀꢀ
(11)
[0058][0059]
本发明还提出一种基于深度相机偏离用户手势控制的标定装置,所述装置由深度相机、托盘、1号伸缩杆、两个直角连接件、1号连接件、两个底座、两个垂直连接件、2号伸缩杆、2号连接件、3号伸缩杆和配准板组成;所述深度相机包括1号深度相机和2号深度相机,1号深度相机放置在托盘上,2号深度相机放置在屏幕上方,1号伸缩杆用于支撑托盘,所述1
号伸缩杆的另一端与直角连接件连接,所述直角连接件的另一端与1号连接件连接,所述1号连接件的另一端与垂直连接件连接,所述垂直连接件还分别与2号伸缩杆和底座连接,所述2号伸缩杆的另一端与另一个垂直连接件连接,所述另一个垂直连接件还分别与2号连接件和另一个底座连接,所述2号连接件的另一端与另一个直角连接件连接,所述另一个直角连接件的另一端与3号伸缩杆连接,所述3号伸缩杆的另一端与配准板连接,所述装置放置于屏幕前方。
[0060]
本发明的有益效果:
[0061]
1、实现了空间手势坐标与复杂曲面屏幕坐标关系对应;
[0062]
2、解决了深度相机偏离用户手势控制的问题;
[0063]
3、解决了深度相机安装位置的局限性。
附图说明
[0064]
图1为1号深度相机位置放置示意图;
[0065]
图2为屏幕4个特征点示意图;
[0066]
图3为像素点模型pixobj示意图;
[0067]
图4为像素点模型pixobj点坐标投影到屏幕三维网格模型obj上示意图;
[0068]
图5为点间距平滑处理后示意图;
[0069]
图6为坐标系变换示意图;
[0070]
图7为基于深度相机偏离用户手势控制的标定装置结构图;
[0071]
图8为实施例装置结构示意图;
[0072]
图9为实施例标定方法流程图;
[0073]
图10为标定数据应用流程图。
具体实施方式
[0074]
下面将结合本发明实施例中的附图对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0075]
结合图1

图10,本发明提出一种基于深度相机偏离用户手势控制的标定方法,包括1号坐标系和2号坐标系,当前空间坐标系中心是1号深度相机,z轴是深度相机深度方向;1号深度相机安装到屏幕前方任意位置,用于采集整个屏幕数据;所述方法将空间手势坐标与屏幕像素坐标一一对应,屏幕包括平面或者曲面屏幕。所述方法包括以下步骤:
[0076]
步骤1、1号深度相机采集数据进行三维重建;
[0077]
步骤2、由屏幕4个特征点生成空间像素点;
[0078]
步骤3、将像素点模型pixobj点坐标投影到屏幕三维网格模型obj上,从而使得像素点模型点坐标替代屏幕像素点坐标;
[0079]
步骤4、1号深度相机采集屏幕三维网格模型obj数据,通过屏幕三维网格模型obj数据创建像素点模型pixobj数据,2号深度相机采集空间手势坐标,将1号深度相机坐标系下的像素点模型pixobj变换到2号深度相机坐标系下从而实现空间手势坐标、pixobj、屏幕
像素坐标关系一一对应;
[0080]
步骤5、如果空间手势坐标提供指向方向,则空间手势坐标按照指向方向投影到像素点模型pixobj表面,寻找最近点,查询点编号即可得出对应的屏幕像素点坐标;如果空间手势坐标未提供指向方向,那么在空间直接寻找像素点模型pixobj最近点,查询点编号即可得出对应的屏幕像素点坐标。查找最近点可使用kdtree或者octree算法。
[0081]
创建像素点模型本发明提出pixobj模型与obj模型,分别代表含义:
[0082]
像素点模型pixobj是三维空间点组成的wrl或stl网格模型,点个数与屏幕像素点个数相等,点集按照一定规则进行排序,点坐标映射到投影幕或屏幕模型上。
[0083]
屏幕模型obj是三维空间点组成的wrl或stl网格模型,是由深度相机通过数据采集后进行三维重建获得的数据。
[0084]
坐标系变换中提出两个坐标系,1号坐标系与2号坐标系:
[0085]
1号坐标系是由1号深度相机采集的数据形成的坐标系,坐标系中心为1号深度相机镜头中心,z轴为1号相机拍摄方向;
[0086]
2号坐标系是由2号深度相机采集的数据形成的坐标系,坐标系中心为2号深度相机镜头中心,z轴为2号相机拍摄方向;
[0087]
1号深度相机与2号深度相机型号可以不一致。
[0088]
用户操作对象一般为led屏幕、投影幕、投影墙,统称为屏幕。像素点模型是将屏幕上像素点映射到三维空间下的对应模型,1号深度相机安装到屏幕前方任意位置,不限制角度与距离,需要保证能够采集整个屏幕即可,屏幕尺寸形状不限制,形状可以是平面、曲面、不规则平面。
[0089]
所述步骤1具体为:
[0090]
步骤1.1、通过1号深度相机获取三维场景空间点;
[0091]
步骤1.2、通过手动方式或者自动方式选取特征点,特征点位置为屏幕4个角,顺序依次为左上角、右上角、右下角、左下角;
[0092]
步骤1.3、未被4个特征点所包含的三维场景空间点删除掉,删除前将4个特征点进行扩大处理防止误删;
[0093]
步骤1.4、剩余的三维场景空间点,采用delaunay三角剖分算法进行三角剖分,最终得出屏幕三维网格模型数据定义为obj。
[0094]
在步骤2中,根据屏幕像素尺寸w,h;空间特征点坐标p1,p2,p3,p4;计算屏幕每一个像素点对应的像素点模型坐标,具体为:
[0095]
步骤2.1、计算p1(x1,y1,z1)与p2(x2,y2,z2)之间距离d:
[0096][0097]
步骤2.2、计算横向空间像素点之间距离d:
[0098][0099]
步骤2.3、p1沿着p2

p1方向按照距离d依次生成空间像素点坐标,此时不能按照x轴方向生成,因为p1与p2没有保证与x轴平行;
[0100]
步骤2.4、根据步骤2.1、步骤2.2、步骤2.3方法生成纵向空间像素点坐标;
[0101]
步骤2.5、生成的空间像素点坐标,每个点的索引值对应屏幕像素坐标值;
[0102]
步骤2.6、生成的空间像素点进行三角剖分得出像素点模型pixobj。
[0103]
像素点模型点坐标依然在空间平面上,需要将这些点集投影到屏幕三维网格模型obj上,这样才能保证使用像素点模型点坐标替代屏幕像素点坐标目的,所述步骤3具体为:
[0104]
步骤3.1、确定投影方向,p1、p2、p3、p4,形成2组平面,p1p2p3形成a面,p3p4p1形成b面,a面向量与b面向量平均值得出投影向量
[0105][0106][0107][0108]
步骤3.2、遍历像素点模型pixobj所有点,依次投影到屏幕三维网格模型obj表面,obj是由无数个三角面片组成的复杂曲面,像素点模型点按照向量向obj所有三角面片依次求交点得出新的投影点,更新像素点模型pixobj;
[0109]
步骤3.3、像素点模型pixobj投影到屏幕三维网格模型obj表面后会出现点间距不等问题,采用模型横向平滑与纵向平滑,平滑后再次执行步骤3.2;执行步骤3.3次数越多精度越高。
[0110]
坐标系变换:1号深度相机与2号深度相机安装位置如果相同,并且2号相机能够拍摄到屏幕,则不需要进行坐标系变换,如果2号深度相机安装到屏幕上方拍摄用户手势,并且不能拍摄到屏幕,则需要1号深度相机进行屏幕数据的采集。
[0111]
在1号深度相机与2号深度相机之间添加配准板,配准板正反面标有abc三个顶点,1号与2号深度相机采集到配准板数据后,通过手动标注,或者自动识别配准板上标签点来确定a、b、c三点空间坐标,利用a、b、c三点来实现两个坐标系变换的过程具体步骤如下:
[0112]
步骤4.1、1号深度相机在采集屏幕三维网格模型obj数据同时能够采集到配准板数据,标注点a1、b1、c1;
[0113]
步骤4.2、2号深度相机安装位置采集配准板数据,标注点a2、b2、c2;
[0114]
步骤4.3、1号深度相机采集数据进行缩放,计算缩放系数β;
[0115][0116][0117][0118][0119]
步骤4.4、按照β对a1、b1、c1和像素点模型pixobj进行缩放;
[0120]
步骤4.5、采用icp算法计算出最优匹配参数r和t,误差函数e(r,t)为:
[0121][0122]
其中n为最邻近点对的个数,p
i
表示目标点云p中的一点,q
i
表示源点云q中与p
i
对应的最近点,r为旋转矩阵,t为平移向量;
[0123]
将像素点模型pixobj按照r和t进行变换,完成pixobj变换到2号深度相机坐标系下,实现空间手势坐标与像素点模型在同一坐标系下。
[0124]
所述如果空间手势坐标提供指向方向,则空间手势坐标按照指向方向投影到像素点模型pixobj表面,寻找最近点,查询点编号即可得出对应的屏幕像素点坐标,具体为:
[0125]
步骤5.1、空间手势坐标p按照手势指向方向n与pixobj进行投影,p点与pixobj所有三角面片求交点p、;
[0126]
步骤5.2、p、在pixobj寻找最近点m,获取m点序号n;
[0127]
步骤5.3、序号n转换像素坐标pix(x,y),w为屏幕像素宽,h为屏幕像素高;
[0128]
x=n%w
ꢀꢀ
(11)
[0129][0130]
本发明还提出一种基于深度相机偏离用户手势控制的标定装置,所述装置由深度相机、托盘、1号伸缩杆、两个直角连接件、1号连接件、两个底座、两个垂直连接件、2号伸缩杆、2号连接件、3号伸缩杆和配准板组成;所述深度相机包括1号深度相机和2号深度相机,1号深度相机放置在托盘上,2号深度相机放置在屏幕上方,1号伸缩杆用于支撑托盘,所述1号伸缩杆的另一端与直角连接件连接,所述直角连接件的另一端与1号连接件连接,所述1号连接件的另一端与垂直连接件连接,所述垂直连接件还分别与2号伸缩杆和底座连接,所述2号伸缩杆的另一端与另一个垂直连接件连接,所述另一个垂直连接件还分别与2号连接件和另一个底座连接,所述2号连接件的另一端与另一个直角连接件连接,所述另一个直角连接件的另一端与3号伸缩杆连接,所述3号伸缩杆的另一端与配准板连接,所述装置放置于屏幕前方。所有零件可拆卸。
[0131]
·
深度相机:标定装置上的深度相机是非固定形式位置标记为1号深度相机位置,无需固定;
[0132]
·
托盘:摆放深度相机平台;
[0133]
·
1号伸缩杆:能够伸缩,调整深度相机高度;
[0134]
·
直角连接件:起到连接作用;
[0135]
·
1号连接件:起到连接作用;
[0136]
·
底座:固定整体结构;
[0137]
·
垂直连接件:连接作用;
[0138]
·
2号伸缩杆:调节深度相机与配准板之间距离;
[0139]
·
2号连接件:起到连接作用;
[0140]
·
3号伸缩杆:调节配准板高度作用;
[0141]
·
配准板:配准板采用非对称式三角板,正反面标注a、b、c三个顶点。
[0142]
实施例
[0143]
下面以实施例说明本发明的实施方法。
[0144]
本实施例展示了深度相机在互动投影系统空间手势标定的过程与标定数据应用过程。互动投影系统硬件包括:投影仪、主机、深度相机,使用墙面充当幕布;软件包括:标定系统、互动投影系统。
[0145]
互动投影系统说明:主机连接投影机连接与深度相机,系统将展示的内容ui通过投影机投射到墙面,通过深度相机识别用户指尖与指向方向来获取空间手势数据,通过空
间手势控制墙面ui动画的过程。
[0146]
标定
[0147]
选择合适位置摆放标定装置,要求1号深度相机位置与2号深度相机位置都能拍摄到配准板,1号相机能够拍摄到完整的屏幕,并且标定板不遮挡屏幕,标定流程如下:
[0148]
步骤1、将1号深度相机与主机程序进行连接;
[0149]
步骤2、查看1号深度相机点云图像,点云图像是否清晰,配准板是否清晰,配准板位置是否遮挡屏幕点云,适当调整相机和配准板位置来满足条件;
[0150]
步骤3、选择屏幕边界点,按照左上角p1、右上角p2、右下角p3、左下角p4顺序进行选择;
[0151]
步骤4、选择配准点,按照a1、b1、c1顺序进行选择,选择位置尽量与三角配准板顶点靠近;
[0152]
步骤5、生成像素点模型pixobj步骤进行了网格分割,利用p1、p2、p3、p4将屏幕模型obj分割出来,再利用p1、p2、p3、p4构建像素点模型pixobj与计算投影方向,像素点模型按照投影方向,投射到屏幕模型表面,在经过平滑处理到投影过程执行3遍;
[0153]
步骤6、导出pixobj模型文件,采用wrl格式,这样能够保证点云顺序不会被改变,同时导出1号深度相机坐标系下的配准点a1、b1、c1到abc.txt文件中;
[0154]
步骤7、主机与1号深度相机断开,连接2号深度相机;
[0155]
步骤8、实时观察2号深度相机点云图像,配准板能够清晰可见;
[0156]
步骤9、选择配准点顺序为a2、b2、c2,选择位置尽量与三角配准板顶点靠近;
[0157]
步骤10、加载像素点模型文件pixobj.wrl与1号深度相机配准点文件abc.txt;
[0158]
步骤11、按照ipc配准算法执行坐标系变换,pixobj变换到2号深度相机坐标系下;
[0159]
步骤12、导出pixobj模型。
[0160]
标定数据应用
[0161]
互动投影系统通过深度相机获取空间手势坐标与指向,利用pixobj模型完成坐标映射过程,输出屏幕像素坐标,界面做出相应。
[0162]
步骤1、互动投影系统初始化完成了深度相机连接任务与加载pixobj模型任务;
[0163]
步骤2、进入子线程控制的循环,实时完成手势检测与坐标映射,坐标映射完成了手势坐标按照指向方向投射到像素点模型pixobj表面上,找到最近点查询像素坐标;
[0164]
步骤3、输出屏幕像素坐标;
[0165]
步骤4、进入另一个子线程,利用像素点坐标集合完成行为分析、界面动作相应事件。
[0166]
以上对本发明所提供的一种基于深度相机偏离用户手势控制的标定方法和装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1