CN108919955B - 一种基于多体感设备的虚拟沙画交互结合方法 - Google Patents

一种基于多体感设备的虚拟沙画交互结合方法 Download PDF

Info

Publication number
CN108919955B
CN108919955B CN201810708999.3A CN201810708999A CN108919955B CN 108919955 B CN108919955 B CN 108919955B CN 201810708999 A CN201810708999 A CN 201810708999A CN 108919955 B CN108919955 B CN 108919955B
Authority
CN
China
Prior art keywords
sand
gesture
hand
painting
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810708999.3A
Other languages
English (en)
Other versions
CN108919955A (zh
Inventor
张元�
石倩
韩燮
马珩钧
吕金泽
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
North University of China
Original Assignee
North University of China
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by North University of China filed Critical North University of China
Priority to CN201810708999.3A priority Critical patent/CN108919955B/zh
Publication of CN108919955A publication Critical patent/CN108919955A/zh
Application granted granted Critical
Publication of CN108919955B publication Critical patent/CN108919955B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/01Indexing scheme relating to G06F3/01
    • G06F2203/012Walk-in-place systems for allowing a user to walk in a virtual environment while constraining him to a given position in the physical environment

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明属于虚拟沙画绘制方法技术领域,具体涉及一种基于多体感设备的虚拟沙画交互结合方法。本方法首先运用leap motion的数据捕捉功能,来获取手部原始数据,进而采用已有的特征提取方法对原始数据预处理,引入新的手部特征数据,完成对动态手势的跟踪,通过模板匹配进行手势识别,结合渲染效果完成非接触式虚拟沙画的绘制。利用PQ Labs G4S触摸屏获取触摸信息,产生触摸事件,并通过图嵌入的方法将其转化为特征向量以供手势识别,同时结合沙粒渲染效果完成接触式虚拟沙画绘制。本发明通过leap motion和触摸屏的辅助进行虚拟沙画绘制:与真实沙画相比,既有空中的三维绘制,又有接触式的二维绘制,能够很好地用于虚拟沙画绘制中。

Description

一种基于多体感设备的虚拟沙画交互结合方法
技术领域
本发明属于虚拟沙画绘制方法技术领域,具体涉及一种基于多体感设备的虚拟沙画交互结合方法,该方法是基于leap motion的非接触式虚拟沙画绘制和基于PQ Labs G4S接触屏的触控式虚拟沙画绘制。
背景技术
人机交互作为虚拟现实技术的核心之一,肩负着提升用户沉浸体验和系统真实性的任务。对传统绘画艺术进行仿真是计算机艺术领域最具挑战性的课题之一,在吸取传统绘画艺术的营养、弘扬传统绘画艺术成就的同时,对计算机仿真绘画技术提出了新的要求。虚拟沙画系统理论上可以集成到任何可视化系统中例如个人PC机,甚至是支持IOS、Android或Windows Phone的移动设备上。现有的虚拟沙画让使用者可以不必考虑时间、地点、对象,随心所欲地绘制自己的沙画作品,其电子版本让绘画者可以随时发布自己的电子绘画给朋友、家人甚至是网络好友。这样的行为可以更快地加快沙画艺术的传播。同时,在电子设备上使用者不需要考虑物理上的限制,例如大面积的沙盘和大量用于沙绘的细沙沙粒。同时使用者不必考虑沙子撒落、设备损坏或者沙子用完等情况,因为这是在虚拟空间中进行的操作,不会消耗除了计算机和电力之外任何东西。但是存在的问题是在绘制的时候不能模拟非接触式的沙画绘制,例如真实沙画绘制中的空中扬沙和漏沙。
发明内容
本发明针对上述技术问题,提出一种基于多体感设备的虚拟沙画交互结合方法。
为解决上述技术问题,本发明采用的技术方案为:
一种基于多体感设备的虚拟沙画交互结合方法,包括以下步骤:
1)数据获取:运用Leap Motion的数据捕捉功能,获取非接触式的沙画绘制的手部原始数据,通过Hand Controller组件获得所需要的手部数据;将PQ Labs G4S触摸屏与显示器通过接口连接好,确保数据的正确传输,通过TUIO协议在 Unity3D中获取接触式沙画绘制的手部触摸数据;
2)数据处理:首先采用特征提取方法对手部原始数据进行预处理,然后引入新的手部特征数据,完成对动态手势的跟踪;通过对应位置的接收器和传感器将手部的触摸数据传递到计算机进行处理,从而产生对应的触摸事件;
3)手势识别:提前训练建立一个包含不同特征数据的手势模板库,实时监测非接触式沙画绘制的手势和手势模板库的匹配状态,通过匹配完成对模拟非接触式沙画绘制的手势识别;采用图嵌入方法构建不同模拟绘制手势的特征向量,依据特征向量建立手势数据库,使用触摸屏采集触摸位置与手势数据库中手势进行匹配,从而完成对模拟接触式沙画绘制的手势识别;
4)沙画渲染:根据真实沙画绘制时的非接触式和接触式绘制手法,将模拟沙画沙粒渲染效果分为非接触式的空中扬沙和漏沙,以及接触式的手指勾沙,点沙,抹沙和铺沙,完成对虚拟沙画的渲染;
5)触摸屏和Leap Motion设备的接口调试:采用C#接口将触摸屏和Leap Motion设备结合;
6)沙画绘制:完成一个基于Leap Motion的以真实手在空中非接触的绘制沙画,另一个是通过PQ Labs G4S触摸屏与显示器相粘合的方式,进行接触式沙画绘制,即完成基于多体感设备的虚拟沙画交互结合。本发明采用以上技术方案,首先运用leap motion的数据捕捉功能,来获取手部原始数据,进而采用已有的特征提取方法对原始数据预处理,引入新的手部特征数据,完成对动态手势的跟踪,接着根据手势特征与手势模板库进行匹配,结合渲染效果完成非接触式虚拟沙画的绘制。利用PQ Labs G4S触摸屏获取触摸信息,根据唯一的 Session ID标识所产生的触摸事件,对触摸点信息进行新建、更新及移除操作,并通过图嵌入的方法将其转化为特征向量以供手势识别,同时结合沙粒渲染效果完成接触式虚拟沙画绘制,沙画绘制。本发明通过leap motion和触摸屏的辅助进行虚拟沙画绘制:与真实沙画相比,基本达到了用户的真实体验感,既有空中的三维绘制,又有接触式的二维绘制,能够很好地用于虚拟沙画绘制系统中。
进一步,所述步骤2)中首先采用特征提取方法对手部原始数据进行预处理,然后引入新的手部特征数据,完成对动态手势的跟踪;通过对应位置的接收器和传感器将手部的触摸数据传递到计算机进行处理,从而产生对应的触摸事件,具体步骤包括:
2.1将获取到的手部原始数据信息采用图像处理方法,进而得到手部的数据,可以得到手的位置信息,对手部数据进行预处理可以作为下一步手势识别时的特征数据;
2.2在进行手势特征提取的过程中,引入了新的索引向量进行调整,具体方法:
Leap motion可以捕捉手部的多个关键节点的坐标信息,同时选择手指5个骨骼特征点作为原始输入,该时刻的骨骼索引输入向量定义为Vtn=(V1n,V2n,V3n,V4n,V5n),其中,V1n,V2n,V3n,V4n,V5n分别代表tn时刻5 个手指的空间坐标,不同的人在进行手势识别时,手距离Leap motion的远近不同,会对同种手势特征的识别产生差异;但是特征向量是具有不变性的,将坐标系由原先的Leap motion为参考原点变成以手掌中心点为参考原点;设手掌中心参考点的三维空间坐标为Mtn=(xn,yn,zn),经过坐标系转换之后重新定义 tn时刻的手指索引输入向量
Vtn=(V1n-Mtn,V2n-Mtn,V3n-Mtn,V4n-Mtn,V5n-Mtn),定义时序长度为n的手势输入序列为fn=(Vt1,Vt2,Vt3,Vt4,Vt5),对tn时刻特征索引向量求解梯度,则Vtn的X,Y,Z方向的梯度G=(Gx,Gy,Gz)分别有如下表示
Figure BDA0001715972110000041
将tn时刻索引向量的梯度G作为手势特征的输入;能够更有效的区分不同手势之间的差异性,实验结果表明,以梯度向量G作为手势特征向量较Vtn在实时预测中可靠性更高,误检测率大幅降低。
2.3对获得的手部触摸数据进行处理,取得触摸事件并建立相应的反馈机制;每个触摸事件都具有唯一的Session ID,根据这一标识就可对触摸点信息进行新建、更新及移除操作。
再进一步,所述步骤4)中,采用非接触式的空中扬沙对虚拟沙画进行渲染的具体方法为:首先是对扬沙范围内二维网格像素点进行了区域划分,将原始的圆形区域划分转变成了一种方形的区域划分,沙子从空中洒落到画布是不可能呈现规则的圆形,区域内的像素点可以服从高斯分布来模拟沙粒的随机分布;运用Leap Motion的数据捕捉功能,来获取手部原始数据,当检测到手部数据的关键点时,投影到画布上,会有与其对应的像素点Q(x0,y0),每个像素点周围都有与其相邻的8个像素点;
Figure BDA0001715972110000051
方形的函数为,以Qmn为沙画扬沙落在画布区域内,以(x0,y0)为区域内起始点的中心,以L长为领域半径划定方形区域
R={(m,n)|m-i|≤L,|n-j|≤L}。
使得渲染效果和真实的沙画更接近。
更进一步,所述步骤5)中采用C#接口将触摸屏和Leap Motion设备结合,具体步骤包括:
将接触式绘制沙画和非接触式绘制沙画相结合,以“层次结构”进行划分;最上层是“绘制层”,其直接附属于游戏物体进行渲染或者调用操作;第二层是“识别层”,识别层是一个工具类以Tools结尾;第三层是“生成层”,生成层同样是工具类以Tools结尾,其中的静态函数负责对像素坐标进行生成;同时系统有状态记录类,以-Var结尾,记录沙画参数,定义了两个接口,一个是用于三维空间沙画的绘制,另一个是用于接触类二维沙画绘制;定义了三大类,分别是渲染类,手势识别类和触控类,渲染继承两个接口,手势识别继承第一个接口,触控继承第二个接口;类结构:
(1)TouchGestureTools工具类
属于识别层结构,负责在绘制的过程中对触摸式的沙画手势进行识别,以便于绘制层的绘制;PavingSandTouchGesture是用于对铺沙手势进行识别的函数;WipingSandTouchGesture是用于对抹沙手势进行识别的函数; HokingSandTouchGesture是用于对勾沙手势进行识别的函数;当对某个接触式的沙画手势进行识别之后,对绘制层传递手势信息,绘制层做相应的绘制动作;接触式手势识别脚本附着于接受控件上,在项目开始运行的时候,设备不断的检测是否有手的部位在屏幕上进行沙画的绘制,将手在触摸屏上的坐标转化为在虚拟屏幕中的UV坐标,进而进行沙画绘制;
(2)OnAirGestureTools工具类
属于识别层结构,负责在绘制过程中对非接触式手势进行识别;PavingSandOnAirGesture是用于空中的扬沙手势识别的函数; LeakingSandOnAirGesture是用于空中的漏沙手势识别的函数;当现实操作的手的部位超过触摸面板一定距离的时候,Leap Motion对在空中的手做出轨迹的跟踪和沙画手势的识别,非接触式的手势识别脚本附着于HandController上,之后将识别的非接触式的手势类型传递到绘制层,绘制层根据不同的手势方式做出相应的沙画绘制;
(3)VerticalTools工具类
属于绘制层结构,负责像素点坐标的预生成;GenerateEraseVerticesV2是用于预生成擦除像素点坐标的函数;GenerateDropVerticesByGaussianV2是使用高斯分布和同心圆算法预生成撒落像素点坐标的函数;GenerateVertices是产生固定数量随机粒子坐标的函数,一般用于随机绘制;GenerateSquareByGRV2是使用GenerateRectV3函数生成正方形范围矩形区域的预计算函数,其中“ByGR”是ByGenerateRect的缩写;绘制脚本附着于沙盘上,在沙盘上初始化撒沙并且获取当前沙盘的渲染组件;在Update里计算渲染组件纹理的UV坐标用于转化鼠标投射坐标到沙盘的局部坐标系;
(4)DrawTools工具类
属于绘制层,负责给予传递的GameObject对象go上的主要纹理绘制图形;GenerateSandByRandom函数是给go的主要纹理绘制随机的沙粒平铺效果; EraseSand和DropSand是绘制层最重要的两个函数,其都具有多重重载,可以根据不同的传递参数进行判定;BoostPaint是加强像素点绘制效果的函数,对于高清纹理,单独的绘制单个像素点会产生无法识别的状态,将单个像素点扩展为周围3x3范围,甚至5x5范围的“大像素点”;
(5)SandVar参数存储类
这是最主要的参数存储中介,其中存储了沙盘宽和高,沙盘的沙子颜色常量,沙盘的擦除和撒落半径及形状;函数ComputeDropNum和ComputeEraseNum 用于计算高斯量。
C#中接口的特性就是可以多重重载,利用这一特性,可以使非接触式沙画绘画与接触式沙画绘制两个功能完美的结合在一起,增强用户的虚拟沙画绘制体验感。
附图说明
图1是本发明流程图;
图2是高斯曲线图;
图3,4是扬沙渲染效果对比图;
图5是绘制过程演示图;
图6,7是绘制成果展示图。
具体实施方式
如图1所示,本实施例中的一种基于多体感设备的虚拟沙画交互结合方法,包括以下步骤:
1)数据获取:运用Leap Motion的数据捕捉功能,获取非接触式的沙画绘制的手部原始数据,通过Hand Controller组件获得所需要的手部数据;将PQ Labs G4S触摸屏与显示器通过接口连接好,接触式沙画绘制是通过实时扫描外框发射的红外线,一旦手指或大于最低遮断直径的物体对其产生遮挡,即可判断产生接触的手部数据,确保数据的正确传输,通过TUIO协议在Unity3D中获取接触式沙画绘制的手部触摸数据;
2)数据处理:首先采用特征提取方法对手部原始数据进行预处理,然后引入新的手部特征数据,完成对动态手势的跟踪;通过对应位置的接收器和传感器将手部的触摸数据传递到计算机进行处理,从而产生对应的触摸事件;
具体步骤包括:
2.1将获取到的手部原始数据信息采用图像处理方法,进而得到手部的数据,可以得到手的位置信息,对手部数据进行预处理可以作为下一步手势识别时的特征数据;
2.2在进行手势特征提取的过程中,引入了新的索引向量进行调整,具体方法:
Leap motion可以捕捉手部的多个关键节点的坐标信息,同时选择手指5个骨骼特征点作为原始输入,该时刻的骨骼索引输入向量定义为 Vtn=(V1n,V2n,V3n,V4n,V5n),其中,V1n,V2n,V3n,V4n,V5n分别代表tn时刻5 个手指的空间坐标,不同的人在进行手势识别时,手距离Leap motion的远近不同,会对同种手势特征的识别产生差异;但是特征向量是具有不变性的,将坐标系由原先的Leap motion为参考原点变成以手掌中心点为参考原点;设手掌中心参考点的三维空间坐标为Mtn=(xn,yn,zn),经过坐标系转换之后重新定义 tn时刻的手指索引输入向量
Vtn=(V1n-Mtn,V2n-Mtn,V3n-Mtn,V4n-Mtn,V5n-Mtn),定义时序长度为n的手势输入序列为fn=(Vt1,Vt2,Vt3,Vt4,Vt5),对tn时刻特征索引向量求解梯度,则Vtn的X,Y,Z方向的梯度G=(Gx,Gy,Gz)分别有如下表示
Figure BDA0001715972110000091
将tn时刻索引向量的梯度G作为手势特征的输入;能够更有效的区分不同手势之间的差异性,实验结果表明,以梯度向量G作为手势特征向量较Vtn在实时预测中可靠性更高,误检测率大幅降低。(识别率结果见表1)
表1 识别率对比
Figure BDA0001715972110000092
2.3对获得的手部触摸数据进行处理,取得触摸事件并建立相应的反馈机制;每个触摸事件都具有唯一的Session ID,根据这一标识就可对触摸点信息进行新建、更新及移除操作。
3)手势识别:提前训练建立一个包含不同特征数据的手势模板库,实时监测非接触式沙画绘制的手势和手势模板库的匹配状态,通过匹配完成对模拟非接触式沙画绘制的手势识别;采用图嵌入方法构建不同模拟绘制手势的特征向量,依据特征向量建立手势数据库,使用触摸屏采集触摸位置与手势数据库中手势进行匹配,从而完成对模拟接触式沙画绘制的手势识别;
4)沙画渲染:根据真实沙画绘制时的非接触式和接触式绘制手法,将模拟沙画沙粒渲染效果分为非接触式的空中扬沙和漏沙,以及接触式的手指勾沙,点沙,抹沙和铺沙,完成对虚拟沙画的渲染;
采用非接触式的空中扬沙对虚拟沙画进行渲染的具体方法为:首先是对扬沙范围内二维网格像素点进行了区域划分,将原始的圆形区域划分转变成了一种方形的区域划分,沙子从空中洒落到画布是不可能呈现规则的圆形,区域内的像素点可以服从高斯分布来模拟沙粒的随机分布;运用Leap Motion的数据捕捉功能,来获取手部原始数据,当检测到手部数据的关键点时,投影到画布上,会有与其对应的像素点Q(x0,y0),每个像素点周围都有与其相邻的8个像素点;
Figure BDA0001715972110000101
方形的函数为,以Qmn为沙画扬沙落在画布区域内,以(x0,y0)为区域内起始点的中心,以L长为领域半径划定方形区域
R={(m,n)|m-i|≤L,|n-j|≤L}。
由于真实的沙画中的沙粒洒落到画布分布是具有一定的随机性的,而绝大多数随机事件都服从高斯分布,因此,通过高斯分布随机数来表征像素点的随机性。
Figure BDA0001715972110000111
当σ取不同值时,G(x)的变化曲线不同,分别取σ=0.3,0.5,1,1.5,3,6,绘制不同的函数曲线,如图2。
经过多次实验对比当σ=0.5时效果较好,与真实的扬沙落入沙盘的效果最逼近。(见附图3,4)
5)触摸屏和Leap Motion设备的接口调试:采用C#接口将触摸屏和Leap Motion设备结合;
采用C#接口将触摸屏和Leap Motion设备结合,具体步骤包括:
将接触式绘制沙画和非接触式绘制沙画相结合,以“层次结构”进行划分;最上层是“绘制层”,其直接附属于游戏物体进行渲染或者调用操作;第二层是“识别层”,识别层是一个工具类以Tools结尾;第三层是“生成层”,生成层同样是工具类以Tools结尾,其中的静态函数负责对像素坐标进行生成;同时系统有状态记录类,以-Var结尾,记录沙画参数,定义了两个接口,一个是用于三维空间沙画的绘制,另一个是用于接触类二维沙画绘制;定义了三大类,分别是渲染类,手势识别类和触控类,渲染继承两个接口,手势识别继承第一个接口,触控继承第二个接口;类结构:
(1)TouchGestureTools工具类
属于识别层结构,负责在绘制的过程中对触摸式的沙画手势进行识别,以便于绘制层的绘制;PavingSandTouchGesture是用于对铺沙手势进行识别的函数;WipingSandTouchGesture是用于对抹沙手势进行识别的函数; HokingSandTouchGesture是用于对勾沙手势进行识别的函数;当对某个接触式的沙画手势进行识别之后,对绘制层传递手势信息,绘制层做相应的绘制动作;接触式手势识别脚本附着于接受控件上,在项目开始运行的时候,设备不断的检测是否有手的部位在屏幕上进行沙画的绘制,将手在触摸屏上的坐标转化为在虚拟屏幕中的UV坐标,进而进行沙画绘制;
(2)OnAirGestureTools工具类
属于识别层结构,负责在绘制过程中对非接触式手势进行识别;PavingSandOnAirGesture是用于空中的扬沙手势识别的函数; LeakingSandOnAirGesture是用于空中的漏沙手势识别的函数;当现实操作的手的部位超过触摸面板一定距离的时候,Leap Motion对在空中的手做出轨迹的跟踪和沙画手势的识别,非接触式的手势识别脚本附着于HandController上,之后将识别的非接触式的手势类型传递到绘制层,绘制层根据不同的手势方式做出相应的沙画绘制;
(3)VerticalTools工具类
属于绘制层结构,负责像素点坐标的预生成;GenerateEraseVerticesV2是用于预生成擦除像素点坐标的函数;GenerateDropVerticesByGaussianV2是使用高斯分布和同心圆算法预生成撒落像素点坐标的函数;GenerateVertices是产生固定数量随机粒子坐标的函数,一般用于随机绘制;GenerateSquareByGRV2是使用GenerateRectV3函数生成正方形范围矩形区域的预计算函数,其中“ByGR”是ByGenerateRect的缩写;绘制脚本附着于沙盘上,在沙盘上初始化撒沙并且获取当前沙盘的渲染组件;在Update里计算渲染组件纹理的UV坐标用于转化鼠标投射坐标到沙盘的局部坐标系;
(4)DrawTools工具类
属于绘制层,负责给予传递的GameObject对象go上的主要纹理绘制图形;GenerateSandByRandom函数是给go的主要纹理绘制随机的沙粒平铺效果;EraseSand和DropSand是绘制层最重要的两个函数,其都具有多重重载,可以根据不同的传递参数进行判定;BoostPaint是加强像素点绘制效果的函数,对于高清纹理,单独的绘制单个像素点会产生无法识别的状态,将单个像素点扩展为周围3x3范围,甚至5x5范围的“大像素点”;
(5)SandVar参数存储类
这是最主要的参数存储中介,其中存储了沙盘宽和高,沙盘的沙子颜色常量,沙盘的擦除和撒落半径及形状;函数ComputeDropNum和ComputeEraseNum 用于计算高斯量。
在本方法中使用触摸屏和Leap Motion作为沙画手势的数据收集设备,采用基于纹理着色的模拟沙画绘制过程。主要模拟过程完全依赖于纹理像素操作和 shader操作。主场景需要一块“平面(Plane)”用于沙画绘制着色,一个摄像机用于视角投影,HandController控制空中沙画绘制的投射和触摸屏接触信息接受控件,一个空物体用于逻辑控制。
接触式手势识别脚本附着于接受控件上,在方法开始运行的时候,设备不断的检测是否有手的部位在屏幕上进行沙画的绘制,将手在触摸屏上的坐标转化为在虚拟屏幕中的UV坐标,进而进行沙画绘制。
非接触式的手势识别脚本附着于HandController上,通过实时监测手部的数据,当真实手超过一定高度,对手进行手部的轨迹跟踪和手势识别。采用DTW 方法对沙画手势进行识别,在速度上有较大的优势,能够减少用户在操作时候产生的绘制延迟感。
绘制脚本附着于沙盘(Plane)上,在沙盘上初始化撒沙并且获取当前沙盘的Renderer(渲染组件)。在Update里计算渲染组件纹理的UV坐标用于转化鼠标投射坐标到沙盘的局部坐标系。(见附图5)
6)沙画绘制:完成一个基于Leap Motion的以真实手在空中非接触的绘制沙画,另一个是通过PQ Labs G4S触摸屏与显示器相粘合的方式,进行接触式沙画绘制,即完成基于多体感设备的虚拟沙画交互结合(见附图6,7)。

Claims (3)

1.一种基于多体感设备的虚拟沙画交互结合方法,其特征在于:包括以下步骤:
1)数据获取:运用Leap Motion的数据捕捉功能,获取非接触式的沙画绘制的手部原始数据,通过Hand Controller组件获得所需要的手部数据;将PQ Labs G4S触摸屏与显示器通过接口连接好,确保数据的正确传输,通过TUIO协议在Unity3D中获取接触式沙画绘制的手部触摸数据;
2)数据处理:首先采用特征提取方法对手部原始数据进行预处理,然后引入新的手部特征数据,完成对动态手势的跟踪;通过对应位置的接收器和传感器将手部的触摸数据传递到计算机进行处理,从而产生对应的触摸事件;
3)手势识别:提前训练建立一个包含不同特征数据的手势模板库,实时监测非接触式沙画绘制的手势和手势模板库的匹配状态,通过匹配完成对模拟非接触式沙画绘制的手势识别;采用图嵌入方法构建不同模拟绘制手势的特征向量,依据特征向量建立手势数据库,使用触摸屏采集触摸位置与手势数据库中手势进行匹配,从而完成对模拟接触式沙画绘制的手势识别;
4)沙画渲染:根据真实沙画绘制时的非接触式和接触式绘制手法,将模拟沙画沙粒渲染效果分为非接触式的空中扬沙和漏沙,以及接触式的手指勾沙,点沙,抹沙和铺沙,完成对虚拟沙画的渲染;
5)触摸屏和Leap Motion设备的接口调试:采用C#接口将触摸屏和Leap Motion设备结合;
6)沙画绘制:完成一个基于Leap Motion的以真实手在空中非接触的绘制沙画,另一个是通过PQ Labs G4S触摸屏与显示器相粘合的方式,进行接触式沙画绘制,即完成基于多体感设备的虚拟沙画交互结合;
所述步骤2)中首先采用特征提取方法对手部原始数据进行预处理,然后引入新的手部特征数据,完成对动态手势的跟踪;通过对应位置的接收器和传感器将手部的触摸数据传递到计算机进行处理,从而产生对应的触摸事件,具体步骤包括:
2.1将获取到的手部原始数据信息采用图像处理方法,进而得到手部的数据,可以得到手的位置信息,对手部数据进行预处理可以作为下一步手势识别时的特征数据;
2.2在进行手势特征提取的过程中,引入了新的索引向量进行调整,具体方法:
Leap motion可以捕捉手部的多个关键节点的坐标信息,同时选择手指5个骨骼特征点作为原始输入,该时刻的骨骼索引输入向量定义为Vtn=(V1n,V2n,V3n,V4n,V5n),其中,V1n,V2n,V3n,V4n,V5n分别代表tn时刻5个手指的空间坐标,不同的人在进行手势识别时,手距离Leap motion的远近不同,会对同种手势特征的识别产生差异;但是特征向量是具有不变性的,将坐标系由原先的Leap motion为参考原点变成以手掌中心点为参考原点;设手掌中心参考点的三维空间坐标为Mtn=(xn,yn,zn),经过坐标系转换之后重新定义tn时刻的手指索引输入向量
Vtn=(V1n-Mtn,V2n-Mtn,V3n-Mtn,V4n-Mtn,V5n-Mtn),定义时序长度为n的手势输入序列为fn=(Vt1,Vt2,Vt3,Vt4,Vt5),对tn时刻特征索引向量求解梯度,则Vtn的X,Y,Z方向的梯度G=(Gx,Gy,Gz)分别有如下表示
Figure FDA0002937488060000031
将tn时刻索引向量的梯度G作为手势特征的输入;
2.3对获得的手部触摸数据进行处理,取得触摸事件并建立相应的反馈机制;每个触摸事件都具有唯一的Session ID,根据这一标识就可对触摸点信息进行新建、更新及移除操作。
2.根据权利要求1所述的一种基于多体感设备的虚拟沙画交互结合方法,其特征在于:所述步骤4)中,采用非接触式的空中扬沙对虚拟沙画进行渲染的具体方法为:首先是对扬沙范围内二维网格像素点进行了区域划分,将原始的圆形区域划分转变成了一种方形的区域划分,沙子从空中洒落到画布是不可能呈现规则的圆形,区域内的像素点可以服从高斯分布来模拟沙粒的随机分布;
运用Leap Motion的数据捕捉功能,来获取手部原始数据,当检测到手部数据的关键点时,投影到画布上,会有与其对应的像素点Q(x0,y0),每个像素点周围都有与其相邻的8个像素点;
Figure FDA0002937488060000032
方形的函数为,以Qmn为沙画扬沙落在画布区域内,以(x0,y0)为区域内起始点的中心,以L长为领域半径划定方形区域
R={(m,n)|m-i|≤L,|n-j|≤L}。
3.根据权利要求2所述的一种基于多体感设备的虚拟沙画交互结合方法,其特征在于:所述步骤5)中采用C#接口将触摸屏和Leap Motion设备结合,具体步骤包括:
将接触式绘制沙画和非接触式绘制沙画相结合,以“层次结构”进行划分;最上层是“绘制层”,其直接附属于游戏物体进行渲染或者调用操作;第二层是“识别层”,识别层是一个工具类以Tools结尾;第三层是“生成层”,生成层同样是工具类以Tools结尾,其中的静态函数负责对像素坐标进行生成;同时系统有状态记录类,以-Var结尾,记录沙画参数,定义了两个接口,一个是用于三维空间沙画的绘制,另一个是用于接触类二维沙画绘制;定义了三大类,分别是渲染类,手势识别类和触控类,渲染继承两个接口,手势识别继承第一个接口,触控继承第二个接口;类结构:
(1)TouchGestureTools工具类
属于识别层结构,负责在绘制的过程中对触摸式的沙画手势进行识别,以便于绘制层的绘制;PavingSandTouchGesture是用于对铺沙手势进行识别的函数;WipingSandTouchGesture是用于对抹沙手势进行识别的函数;HokingSandTouchGesture是用于对勾沙手势进行识别的函数;当对某个接触式的沙画手势进行识别之后,对绘制层传递手势信息,绘制层做相应的绘制动作;接触式手势识别脚本附着于接受控件上,在项目开始运行的时候,设备不断的检测是否有手的部位在屏幕上进行沙画的绘制,将手在触摸屏上的坐标转化为在虚拟屏幕中的UV坐标,进而进行沙画绘制;
(2)OnAirGestureTools工具类
属于识别层结构,负责在绘制过程中对非接触式手势进行识别;PavingSandOnAirGesture是用于空中的扬沙手势识别的函数;LeakingSandOnAirGesture是用于空中的漏沙手势识别的函数;当现实操作的手的部位超过触摸面板一定距离的时候,Leap Motion对在空中的手做出轨迹的跟踪和沙画手势的识别,非接触式的手势识别脚本附着于HandController上,之后将识别的非接触式的手势类型传递到绘制层,绘制层根据不同的手势方式做出相应的沙画绘制;
(3)VerticalTools工具类
属于绘制层结构,负责像素点坐标的预生成;GenerateEraseVerticesV2是用于预生成擦除像素点坐标的函数;GenerateDropVerticesByGaussianV2是使用高斯分布和同心圆算法预生成撒落像素点坐标的函数;GenerateVertices是产生固定数量随机粒子坐标的函数,用于随机绘制;GenerateSquareByGRV2是使用GenerateRectV3函数生成正方形范围矩形区域的预计算函数,其中“ByGR”是ByGenerateRect的缩写;绘制脚本附着于沙盘上,在沙盘上初始化撒沙并且获取当前沙盘的渲染组件;在Update里计算渲染组件纹理的UV坐标用于转化鼠标投射坐标到沙盘的局部坐标系;
(4)DrawTools工具类
属于绘制层,负责给予传递的GameObject对象go上的主要纹理绘制图形;GenerateSandByRandom函数是给go的主要纹理绘制随机的沙粒平铺效果;EraseSand和DropSand是绘制层最重要的两个函数,其都具有多重重载,可以根据不同的传递参数进行判定;BoostPaint是加强像素点绘制效果的函数,对于高清纹理,单独的绘制单个像素点会产生无法识别的状态,将单个像素点扩展为周围3x3范围,甚至5x5范围的“大像素点”;
(5)SandVar参数存储类
这是参数存储中介,其中存储了沙盘宽和高,沙盘的沙子颜色常量,沙盘的擦除和撒落半径及形状;函数ComputeDropNum和ComputeEraseNum用于计算高斯量。
CN201810708999.3A 2018-07-02 2018-07-02 一种基于多体感设备的虚拟沙画交互结合方法 Active CN108919955B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810708999.3A CN108919955B (zh) 2018-07-02 2018-07-02 一种基于多体感设备的虚拟沙画交互结合方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810708999.3A CN108919955B (zh) 2018-07-02 2018-07-02 一种基于多体感设备的虚拟沙画交互结合方法

Publications (2)

Publication Number Publication Date
CN108919955A CN108919955A (zh) 2018-11-30
CN108919955B true CN108919955B (zh) 2021-05-28

Family

ID=64423542

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810708999.3A Active CN108919955B (zh) 2018-07-02 2018-07-02 一种基于多体感设备的虚拟沙画交互结合方法

Country Status (1)

Country Link
CN (1) CN108919955B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109753876A (zh) * 2018-12-03 2019-05-14 西北工业大学 一种三维手势的提取识别和三维手势交互系统的构建方法
CN111694487B (zh) * 2019-03-11 2021-12-28 网易(杭州)网络有限公司 信息处理的方法及装置、电子设备、存储介质
CN112862928B (zh) * 2021-02-24 2024-03-15 北京天文馆 天文数据可视化方法、装置、计算机设备及可读存储介质
CN113093904A (zh) * 2021-03-26 2021-07-09 河北建筑工程学院 基于体感设备的图形获取方法、系统、介质及设备
CN113570679A (zh) * 2021-07-23 2021-10-29 北京百度网讯科技有限公司 一种图形绘制方法、装置、设备以及存储介质
CN113961067B (zh) * 2021-09-28 2024-04-05 广东新王牌智能信息技术有限公司 基于深度学习的非接触式涂鸦绘制方法与识别交互系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101211341A (zh) * 2006-12-29 2008-07-02 上海芯盛电子科技有限公司 图像智能模式识别搜索方法
CN103823554A (zh) * 2014-01-12 2014-05-28 青岛科技大学 一种数字化虚实交互系统及方法
CN104679411A (zh) * 2015-01-21 2015-06-03 河北工程大学 一种基于手势交互的沙画系统
CN107024989A (zh) * 2017-03-24 2017-08-08 中北大学 一种基于Leap Motion手势识别的沙画制作方法
CN107688390A (zh) * 2017-08-28 2018-02-13 武汉大学 一种基于体感交互设备的手势识别控制器

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103303054A (zh) * 2013-06-25 2013-09-18 李文秀 一种沙画制作方法
CN107678664A (zh) * 2017-08-28 2018-02-09 中兴通讯股份有限公司 一种终端界面切换、手势处理的方法、装置及终端

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101211341A (zh) * 2006-12-29 2008-07-02 上海芯盛电子科技有限公司 图像智能模式识别搜索方法
CN103823554A (zh) * 2014-01-12 2014-05-28 青岛科技大学 一种数字化虚实交互系统及方法
CN104679411A (zh) * 2015-01-21 2015-06-03 河北工程大学 一种基于手势交互的沙画系统
CN107024989A (zh) * 2017-03-24 2017-08-08 中北大学 一种基于Leap Motion手势识别的沙画制作方法
CN107688390A (zh) * 2017-08-28 2018-02-13 武汉大学 一种基于体感交互设备的手势识别控制器

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Hand Gesture Recognition with Jontly Calibrater Leap Motion and Depth Sensor;Marin G等;《Multimedia Tools & Applications》;20151213;全文 *
基于Leap Motion和Unity3D的虚拟沙画手势识别及交互;宁亚楠等;《计算机工程与应用》;20161228;第1-5节 *
基于多点触控的沙画虚拟系统;席晓晨;《中国优秀硕士学位论文全文数据库 信息科技辑》;20170815;第3.1-5.4节 *

Also Published As

Publication number Publication date
CN108919955A (zh) 2018-11-30

Similar Documents

Publication Publication Date Title
CN108919955B (zh) 一种基于多体感设备的虚拟沙画交互结合方法
US10761612B2 (en) Gesture recognition techniques
US10732725B2 (en) Method and apparatus of interactive display based on gesture recognition
US6624833B1 (en) Gesture-based input interface system with shadow detection
CN100407798C (zh) 三维几何建模系统和方法
Rautaray et al. Real time multiple hand gesture recognition system for human computer interaction
Tran et al. Real-time virtual mouse system using RGB-D images and fingertip detection
CN108875133A (zh) 确定建筑布局
CN105637564A (zh) 产生未知对象的扩增现实内容
CN109271023B (zh) 一种基于三维对象外形轮廓徒手手势动作表达的选择方法
JP2022019748A (ja) 複合現実において動的仮想コンテンツを生成するデバイスおよび方法
US20210089639A1 (en) Method and system for 3d graphical authentication on electronic devices
CN104081307A (zh) 图像处理装置、图像处理方法和程序
CN109933190B (zh) 一种头戴显示设备及其交互方法
CN105103112A (zh) 用于操纵显示装置上的对象的取向的设备和方法
WO2019223889A1 (en) Method, system and computer program for remotely controlling a display device via head gestures
CN109669537B (zh) 一种基于计算机虚拟界面的人机交互系统
CN105138131B (zh) 一种通用的手势命令发射和操作方法
CN106383583A (zh) 用于隔空人机交互的控制虚拟物体精确定位的方法与系统
CN105205786A (zh) 一种图像深度恢复方法及电子设备
JP2005165864A (ja) コマンド入力方法、画像表示方法及び画像表示装置
Diaz et al. Multimodal sensing interface for haptic interaction
Ruwanthika et al. Dynamic 3D model construction using architectural house plans
KR102103614B1 (ko) 전방 프로젝션 환경에서 그림자를 제거하기 위한 방법
CN106339089A (zh) 一种人机交互动作识别系统及方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant