CN113126750A - 在3d建模中利用沉浸式手势选择边 - Google Patents

在3d建模中利用沉浸式手势选择边 Download PDF

Info

Publication number
CN113126750A
CN113126750A CN202011592846.0A CN202011592846A CN113126750A CN 113126750 A CN113126750 A CN 113126750A CN 202011592846 A CN202011592846 A CN 202011592846A CN 113126750 A CN113126750 A CN 113126750A
Authority
CN
China
Prior art keywords
edge
orientation
hand
user
edges
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.)
Pending
Application number
CN202011592846.0A
Other languages
English (en)
Inventor
F·多加尼斯
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.)
Dassault Systemes SE
Original Assignee
Dassault Systemes SE
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 Dassault Systemes SE filed Critical Dassault Systemes SE
Publication of CN113126750A publication Critical patent/CN113126750A/zh
Pending legal-status Critical Current

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/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • 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/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • 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
    • 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/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/12Geometric CAD characterised by design entry means specially adapted for CAD, e.g. graphical user interfaces [GUI] specially adapted for CAD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/10Numerical modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/18Details relating to CAD techniques using virtual or augmented reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/048023D-info-object: information is displayed on the internal or external surface of a three dimensional manipulable object, e.g. on the faces of a cube that can be rotated by the user

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Geometry (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Architecture (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)
  • Image Analysis (AREA)

Abstract

本发明尤其涉及一种计算机实现的方法,该方法用于在CAD系统的3D沉浸式环境中从3D对象的边之中选择边。每个边都在3D沉浸式环境定向。该方法包括:在3D沉浸式环境中显示3D对象;检测到包括除拇指以外的所有手指折叠的手势;确定在3D沉浸式环境中由手的折叠手指形成的定向线;以及识别与定向线具有最接近取向的3D对象的边。

Description

在3D建模中利用沉浸式手势选择边
技术领域
本发明涉及计算机程序和系统领域,并且更具体地,涉及一种用于在3D沉浸式环境中在3D对象的边之中选择边的方法。
背景技术
市场上提供了许多用于对象的设计、工程和制造的系统和程序。CAD是计算机辅助设计的首字母缩略词,例如它涉及用于设计对象的软件解决方案。CAE是计算机辅助工程的缩写,例如它涉及用于模拟未来产品的物理行为的软件解决方案。CAM是计算机辅助制造的首字母缩略词,例如它涉及用于定义制造过程和操作的软件解决方案。在这种计算机辅助设计系统中,图形用户界面在技术效率方面起着重要的作用。这些技术可能嵌入在产品生命周期管理(PLM)系统中。PLM指的是一种商业战略,其帮助企业共享产品数据,应用通用流程,并利用企业知识进行从概念到产品生命尽头的跨越扩展企业概念的产品开发。达索系统(Dassault Systèmes)(以CATIA、ENOVIA和DELMIA为商标)提供的PLM解决方案提供了组织产品工程知识的工程中心、管理制造工程知识的制造中心、以及使企业能够集成和连接到工程中心和制造中心二者的企业中心。整个系统提供了一个开放的对象模型,以链接产品、过程和资源,以实现动态的、基于知识的产品创建和决策支持,这推动了优化的产品定义、制造准备、生产和服务。
CAD应用允许以交互方式创建准确的3D对象。当3D对象忠实地复制相应的真实对象时,该3D对象被认为是准确的。一种标准是最小化3D对象的包络和实际对象的包络之间的差异。因此,传统上用CAD应用创建的3D对象针对3D对象的粗糙部分包含许多小的拓扑元素。已经实现了几种用于选择感兴趣的拓扑元素进行设计的方法。传统上,使用基于鼠标的方法。
在这里,小的拓扑元素可以被定义为具有小的可见表面(surface)的元素。在基于鼠标的方法中,小的拓扑元素可以定义为具有小的可点击表面的元素。换句话说,由于用户需要非常精确地定义鼠标位置,因此很难选择基于鼠标的方法中的小拓扑元素。拓扑元素也可能经常重叠和/或被部分或完全遮挡。因此,即使拓扑元素不小,在基于鼠标的方法的情况下它们的可点击表面也可能很小甚至为零。
在3D应用中,众所周知的问题是关于用户要选择哪些元素的歧义(ambiguity)。在CAD应用中,基于鼠标的方法倾向于选择光标指向的最小元素,但这不能完全解决歧义。为了减少这种歧义,众所周知的解决方案是让用户指定他们想要选择哪种类型的拓扑元素。使用此信息,可以在选择期间按类型过滤元素。该解决方案是耗时的,并且需要例如在2D面板中显示可用的各种过滤器。选择元素期间的另一个问题是减少选择一个元素所需的强制单击次数。例如,经常有必要放大感兴趣的区域以选择3D对象的感兴趣的元素。当感兴趣的元素被遮挡时,更改3D场景的视点也是必要的。这两种情况需要用户采取若干措施,并且是耗时的。
近来,手部交互在3D设计应用中变得越来越重要。实际上,沉浸式技术的最新进展已使全手跟踪(full hand tracking)在虚拟现实(VR)、增强现实(AR)和混合现实(MR)中得到广泛应用。虚拟现实是一种3D沉浸式环境,其可以被定义为用软件创建并以用户中止信任(belief)并将其接受为真实环境的方式呈现给用户的人工环境。在虚拟现实(VR)中,用户对现实的感知完全基于虚拟信息。增强现实(AR)以及混合现实(MR)与虚拟现实(VR)的不同之处在于,3D沉浸式环境由实际真实的周围环境和添加到真实环境中的一些层的虚拟对象构成。在增强现实(AR)和混合现实(MR)中,向用户提供了其他计算机生成的信息,其增强他们对现实的感知。另一方面,在虚拟现实(VR)中,周围环境是完全虚拟的。增强现实和混合现实之间的区别在于,用户无法直接与增强现实(AR)中的虚拟对象进行交互。在混合现实中,将计算机生成的附加信息“混合”在一起以创建现实的环境。用户可以导航该环境并与既真实又虚拟的对象进行交互。
例如,增强现实(AR)可以在物理桌子上显示虚拟3D盒子。在混合现实(MR)的情况下,用户可能可以拿起并打开盒子。
在虚拟、增强和混合现实的定义中,真实对象是物理地存在于环境世界中的对象。
现有的CAD应用都不允许使用自然的手部交互在沉浸式环境中创建准确的3D对象。
在此上下文内,仍然需要一种改进的方法,以用于在CAD系统的3D沉浸式环境中通过使用手势来选择诸如3D对象的边之类的拓扑元素。
发明内容
因此,提供了一种计算机实现的方法,用于在CAD系统的3D沉浸式环境中从3D对象的边中选择边。每个边都在3D沉浸式环境中被定向。该方法包括:
-在3D沉浸式环境中显示3D对象;
-检测到包括除拇指以外的所有手指折叠的手势;
-确定在3D沉浸式环境中由手的折叠手指形成的定向线;以及
-识别与所述定向线具有最接近取向(orientation)的3D对象的边。
该方法可以包括以下一项或多项:
-所述3D对象的每个边和所述定向线还具有方向,并且其中,所述识别还包括:识别具有在所述边的方向与定向线的方向之间的最接近方向的3D对象的面;
-在识别之前,确定在3D沉浸式环境中由手掌或手背形成的定向平面,该定向平面包括法线,其中,3D对象的每个边和定向线在3D沉浸式环境中还具有位置,并且其中,所述识别还包括:
-最小化函数f:
Figure BDA0002869630240000031
其中:
-Edge是感兴趣的边;
-
Figure BDA0002869630240000032
Figure BDA0002869630240000033
且{w1+w2>0};
-||FH||是3D沉浸式环境中边Edge的位置与手的定向平面的位置H之间的欧几里得距离;并且
-
Figure BDA0002869630240000041
是在3D沉浸式环境中边Edge的方向和用手的折叠手指形成的定向线的方向之间的角度。
-函数f的项||FH||替换为||FH′||,其中,H′通过以下方式计算:
H′=E+EH*max(1,a*(||EOmax||)/||EHmax||)
其中:
-H’是虚拟手的定向平面的位置;
-E是用户视点的位置;
-H是用户的手的定向平面的位置;
-EH是从E到H的向量;
-Omax是3D对象的距E最远的边的位置;
-Hmax是用户的手的中心在用户身体横向平面上距E最远的位置;
-
Figure BDA0002869630240000042
-||EOmax||是从E到Omax的向量的范数;并且
-||EHmax||是从E到Hmax的向量的范数;
-函数f的项||FH||还包括在3D沉浸式环境中的边的位置和3D模型与射线的至少一个交点之间的欧几里得距离,所述射线从头部的中心或优势眼或眼睛之间的点投射到3D模型的中心;
-所述识别包括:
-确定与定向线具有最接近取向的3D对象的边;
-计算所确定的边的一个或多个n相邻边、一个或多个相邻边和所确定的边,以形成可选择的边的子集;以及
-从可选择的边的子集中识别与定向线具有最接近取向的3D对象的边;
-修改可选择的边的子集中的边的第一渲染;
-修改所识别的边的第二渲染;
-所述3D对象的边是这样的边:其是选自三角形和/或四边形和/或拓扑面和/或参数曲面/或过程表面中的至少一个的一部分;
-检测到所述手势包括除拇指以外的所有手指的折叠和拇指的外展;
-通过检测到手势还包括拇指的内收来选择所识别的3D对象的边;
-检测到手势还包括除拇指以外的所有手指的展开,并取消选择所选择的边;
-检测到手势还包括检测到食指、中指、无名指和小指的远端指骨实质上与手的手掌接触。
还提供了一种计算机程序,其包括用于执行该方法的指令。
还提供了一种系统,该系统包括显示器以及与存储器通信地耦合的处理电路,该存储器存储该计算机程序。
还提供了一种存储计算机程序的计算机可读介质。
附图说明
现在将通过非限制性示例并参考附图来描述本发明的实施例,其中:
-图1示出了该方法的流程图的示例;
-图2示出了该方法的步骤S40的流程图的示例;
-图3示出了系统的示例;
-图4示出了默认姿态下的右手的骨架的后前视图的示例;
-图5示出了检测到的姿势的示例;
-图6示出了默认手势的示例;
-图7示出边的识别示例。
-图8示出了边的识别的另一示例;
-图9和图10示出了确定由手掌或手背形成的定向平面的示例;并且
-图11和图12示出虚拟手的示例。
具体实施方式
参考图1的流程图,提出了一种计算机实现的方法,用于在CAD系统的3D沉浸式环境中从3D对象的边之中选择边。每个边都在3D沉浸式环境被定向。该方法包括在3D沉浸式环境中显示3D对象。该方法还包括检测手势。手势包括除拇指外所有手指折叠。该方法还包括确定在3D沉浸式环境中由手的折叠手指形成的定向线。该方法还包括识别与定向线具有最接近取向的3D对象的边。
这构成了一种改进的方法,该方法用于在CAD系统的3D沉浸式环境中使用手交互在3D对象的边之中选择一个边。值得注意的是,该方法解决了用户想要选择哪些元素的歧义的问题。如上所述,在CAD应用中,3D对象包含许多小元素。由于从该元素的尺寸或用户的角度来看的该元素的可见表面的尺寸,利用基于鼠标的方法选择元素可能是困难的。实际上,如果尺寸是小的,则利用基于鼠标的方法,用户需要真正精确地移动鼠标和/或放大和/或更改3D场景的视点。此处介绍的方法解决了此缺陷。实际上,该方法是在手势过程中使用由手的折叠手指形成的线(虚拟线)的取向来确定用户想要选择的元素。该方法还可以将用手的折叠手指形成的线的取向与在用户的手势期间手的位置相组合,以确定用户想要选择哪个元素。通过使用位置和取向的组合,可以区分3D对象的所有元素,并因此由用户使用该方法进行选择。
方法是计算机实现的。这是指该方法的步骤(或实质上所有步骤)由至少一台计算机或任何类似系统执行。因此,该方法的步骤由计算机执行,可能是全自动执行,也可能是半自动执行。在示例中,可以通过用户计算机交互来执行该方法的至少一些步骤的触发。所需的用户-计算机交互级别可以取决于预见的自动级别,并与实现用户意愿的需求保持平衡。在示例中,该级别可以是用户定义的和/或预定义的。
例如,检测S20和确定S30部分地取决于用户动作。作为包括除了拇指以外的所有手指都折叠的用户手势的用户动作的结果,执行检测S20。作为包括用户手势(其中,利用(或根据)用户的手的折叠手指(拇指除外)形成定向线)的用户动作的结果,执行确定S30。
方法的计算机实现的典型示例是使用适用于此目的的系统执行该方法。该系统可以包括耦合到存储器和图形用户界面(GUI)的处理器,该存储器上记录有计算机程序,该计算机程序包括用于执行该方法的指令。存储器还可以存储数据库。该存储器是适合于这种的存储的任何硬件,可能包括几个物理上不同的部分(例如,一个用于程序,而可能一个用于数据库)。
图3示出了系统的示例,其中该系统是客户端计算机系统,例如用户的工作站。
该示例的客户计算机包括连接至内部通信总线1000的中央处理单元(CPU)1010、也连接至总线的随机存取存储器(RAM)1070。客户端计算机还被提供有图形处理单元(GPU)1110,其与连接到总线的视频随机存取存储器1100相关联。视频RAM 1100在本领域中也称为帧缓冲器。大容量存储设备控制器1020管理对大容量存储设备(例如,硬盘驱动器1030)的访问。适合于有形地体现计算机程序指令和数据的大容量存储设备包括所有形式的非易失性存储器,包括例如:半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘和可移动磁盘;磁光盘;以及CD-ROM盘1040。上述任何内容可以通过专门设计的ASIC(专用集成电路)进行补充或被包括在专门设计的ASIC中。网络适配器1050管理对网络1060的访问。客户端计算机还可以包括触觉设备1090,例如光标控制设备、键盘等。在客户端计算机中使用光标控制设备以允许用户将光标选择性地定位在显示器1080上的任何期望位置处。此外,光标控制设备允许用户选择各种命令并输入控制信号。光标控制设备包括多个信号生成设备,以用于将控制信号输入到系统。通常,光标控制设备可以是鼠标,该鼠标的按钮用于生成信号。可替代地或附加地,客户计算机系统可以包括敏感垫和/或敏感屏幕。
该计算机程序可以包括可由计算机执行的指令,该指令包括用于使上述系统执行该方法的单元。该程序可以是可记录在任何数据存储介质上的,包括系统的存储器。该程序可以例如以数字电子电路或计算机硬件、固件、软件或它们的组合来实现。该程序可以被实现为装置,例如有形地体现在机器可读存储设备中以由可编程处理器执行的产品。方法步骤可以通过以下方式来执行:可编程处理器执行指令程序以通过对输入数据进行操作并生成输出来执行该方法的功能。因此,处理器可以是可编程的并且被耦合以从数据存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,以及向其发送数据和指令。如果需要,可以以高级过程或面向对象的编程语言或汇编或机器语言来实现应用程序。在任何情况下,该语言都可以是编译语言或解释语言。该程序可以是完整的安装程序或更新程序。在任何情况下,程序在系统上的应用都会得到执行该方法的指令。
该方法操纵3D对象。此后,对3D对象的任何引用都将指数字建模的3D对象,而不是物理对象。数字建模的3D对象可以表示在用例如CAD软件解决方案或CAD系统进行其虚拟设计完成之后在现实世界中要制造的产品的几何形状,例如(例如,机械)零件或零件的组装件(或等效地,零件的组装件,因为从方法的角度看零件的组装件可以看作是零件本身,或者该方法可以独立地应用于组装件的每个零件)或者更一般地任何刚体组装件(例如,移动机构)。CAD软件解决方案允许在各种不受限的工业领域中的产品设计,包括:航空航天、建筑、建造、消费品、高科技设备、工业设备、运输、船舶和/或海上油/气生产或运输。因此,此处的3D建模对象可以表示工业产品,该产品可以是任何机械零件,例如:陆地载具(包括例如汽车和轻型卡车设备、赛车、摩托车、卡车和机动车设备、卡车和公共汽车、火车)的零件,飞行器(包括例如机身设备、航空航天设备、推进设备、国防产品、航空设备、航天设备)的零件,海上载具(包括例如海军设备、商用船、海上设备、游艇和工作船、船舶设备)的零件,通用机械零件(包括例如工业制造机械、重型移动机械或设备、安装的设备、工业设备产品、金属制品、轮胎制品),机电或电子零件(包括例如消费者电子产品、安全和/或控制和/或仪器产品、计算和通信设备、半导体、医疗设备和装备),消费品(包括例如家具、家居和花园产品、休闲用品、时尚产品、硬商品零售商的产品、软商品零售商的产品),包装(包括例如食品和饮料和烟草、美容和个人护理、家用产品包装)。
3D对象可以由以下三种拓扑实体中的至少一种构成:面、边和顶点。根据定义,面是表面的有界部分。边是曲线的有界部分。顶点是3D空间中的点。它们之间的相互关系如下。曲线的有界部分由位于曲线上的两个点(顶点)定义。表面的有界部分由其边界定义,该边界是位于表面上的一组边。面的边界的边通过共享顶点连接。通过共享边来连接面。如果两个面共享边,则它们是相邻的。同样,如果两个边共享顶点,则它们是相邻的。面的所有边都可以位于同一平面上,也可以不在同一平面上。可以通过获取面的两条边的向量叉积来计算该面的法线。如果不是面的所有边都位于同一平面上,则值得注意的是,可以根据为计算叉积而选择的边来计算各种法线。法线也可以被编辑。法线给出平面的方向。可以从平面的方向推导出平面的取向。所述平面的取向通过平行于其法线的线具体化。平面的这条线的取向也可以被编辑。平面也有位置。面的位置可以由其质心给出。面的位置也可以被编辑。3D模型的边被定向。边的取向可以从其所属的面的取向推导出。例如,在边界表示(也称为B-Rep)的情况下,B-Rep的面的法线和属于该面的边之间的一致性可用于确定边取向(例如,顺时针规则、逆时针)。实际上,边属于包含三角形和/或四边形的网格的两个面。边的方向可以任意地确定,例如它可以由用户编辑。如前所述,可以根据面的两个边的向量叉积计算平面的法线;边因此被定向。
从现在开始,我们假设所有取向、方向和位置都是在3D沉浸式环境的参考框架中计算的。
3D对象还可以使用边或线(在某些情况下(即,可选地)使用面或表面)定义。例如,可以根据从实体模型的激光扫描获得的点云计算3D对象。这样的点云通常由不连续的顶点组成,但也可以包含表示数字化实体模型的形状的互连边。
3D对象可以是线框3D对象。线框可以从点云中获得,也可以由用户设计。
线、边或表面可以各种方式表示,例如非均匀有理B样条(NURBS)。这些边、线和/或表面可以用作输入,根据该输入可以生成3D对象的几何形状,这进而允许生成3D对象的表示。此处描述的方法可用于基于非均匀有理B样条(NURBS)线、边和表面的3D对象。更一般地,表面也可以是参数曲面和/或过程表面。参数曲面是欧几里德空间
Figure BDA0002869630240000091
中的表面,其由具有两个参数
Figure BDA0002869630240000092
的参数方程定义。过程表面是定义为过程(procedure)的表面。细分表面可以视为过程表面。细分表面是一种经由指定较粗的分段线性多边形网格来表示平滑曲面的方法。
现在参考图1,该方法在3D沉浸式环境中显示S10至少一个3D对象。如果在3D沉浸式环境中显示了多于一个3D对象,则存在识别为感兴趣的3D对象的一个3D对象。从现在起,将感兴趣的3D对象称为3D对象。
如上所述,可以在虚拟、增强或混合现实中使用3D沉浸式环境。3D沉浸式环境具有参考框架。因此,在此3D沉浸式环境中,所有对象及其所有拓扑元素都可以相对于此参考框架定位。然后可以在虚拟、增强和混合现实中使用该方法来选择3D沉浸式环境中任何3D对象的面。该方法还可以在包括具有参考框架的环境的任何其他现实中使用,该参考框架允许定位至少一个3D对象。
然后,检测到手势(S20)。手势包括除拇指外所有手指的折叠。
可以通过跟踪用户的身体的一部分的位置和取向,或者通过跟踪用户的身体的若干部分的相应的位置和取向,或者甚至跟踪完整的用户身体的位置和取向,来完成用户与3D沉浸式环境的交互。
在示例中,用户身体的部分是用户的手。
手部追踪提供直接且自然的交互,并改善了沉浸式体验。实际上,用户不需要使用特定的虚拟、混合或增强现实手部控制器。传统上,为了在3D沉浸式环境中与3D对象进行交互,一种方法包括在用虚拟3D线指向3D对象之后单击特定控制器的按钮。
手部跟踪允许检测手的特定姿态或手势。例如,可以使用视频记录器或手套来完成对特定姿态的手部跟踪,而可以使用加速度计来完成对特定手势的手部跟踪。该方法可以与用户的右手或左手一起使用。姿态是使用身体的一部分的位姿(pose),并且这里的手势可以定义为允许一部分改变其姿态的运动。换句话说,第二姿态可以看作是从第一姿态开始的手势的结果。因此,可以通过检测第二姿态并将该第二姿态与第一姿态进行比较来检测手势。如果检测到的第二姿态与第一姿态相同,则没有手势发生。如果检测到的姿态与第一姿态不同,则可以将手势定义为第二姿态和第一姿态之间的差异。更一般地,手势可以被定义为由用户身体的一部分(例如,用户的手)的位置和/或取向的改变触发的姿态改变。例如,在该方法中,检测手势可以由计算当前姿态与默认姿态的差异组成。在该示例中,默认姿态对应于第一姿态,并且当前手势对应于第二姿态。可以利用用户的手的位置和/或取向的改变来推断差异。值得注意的是,对特定姿态的手部跟踪是通过以高帧速率(例如,每秒至少10帧)捕获姿态的设备执行的,因此未检测到这样的运动的风险相当低:其涉及在有第二中间姿态的情况下从第一姿态到第一姿态的运动。默认姿态可以是允许检测到除拇指外所有手指折叠的任何手势。右手的默认姿态的示例在图6中示出。此默认姿态是休息的右手的常用姿态的示例。换句话说,默认姿态是其中所有肌肉都松弛的右手姿态的示例。默认姿态也可以定义为任何姿态,该姿态不会被检测为该方法的任何步骤中使用的特定姿态。从现在开始,仅出于说明的目的,所有手势都将定义为图6中所示默认姿势的差异。
手势的检测可以以各种方式来完成。在示例中,可以通过对身体的各个部分的相对位置和/或取向进行数学比较来检测手势,并具有一定的容忍度以考虑形态变化。请注意,系统可能需要校准阶线段以适应用户的形态(morphology)。在另一个示例中,还可以通过训练神经网络区分不同的可能手势,来使用机器学习技术检测手势。
在示例中,可以通过虚拟骨架(例如,如图6所示)来提供手的手势的运动学参数。虚拟骨架包括一个或多个关节和一个或多个骨骼。该虚拟骨架不需要复制真实骨架。换句话说,虚拟骨架的关节和骨骼与真实骨架的关节和骨骼之间可能没有对应关系。例如,手的虚拟骨架可能比手的真实骨架具有更少或更多的关节。此外,即使虚拟骨架的每个关节都对应于真实骨架的关节,它们的位置和取向也可能会发生变化。通过使用虚拟骨架的关节的线速度和角速度、位置和取向,可以检测真实骨架的手势或姿态。为了简单起见,稍后我们将考虑虚拟骨架复制手的真实骨架。
值得注意的是,本发明的方法独立于用于检测所描述的各种姿态的检测方法。因此,可以使用能够基于或不基于虚拟骨架来检测姿态变化(例如,用户身体的一部分的位置和/或取向的变化)的任何技术。
在图4中示出了手的真实骨架的示例。手包含五个手指,通常称为:拇指、食指、中指、无名指和小指。拇指由掌指关节10和指间关节60组成。食指由掌指关节20、近端指间关节70和远端指间关节110组成。中指由掌指关节30、近端指间关节80和远端指间关节120组成。无名指由掌指关节40、近端指间关节90和远端指间关节130组成。小指由掌指关节50、近端指间关节100和远端指间关节140组成。手的其余部分可以分为三个区域。第一个区域是手掌,它是手前部的中央区域。第二区域是手背,其是手掌在手后部的相应区域。第三区域是位于手掌近侧部分中的手的跟(heel)。
折叠所有手指是使手的手指卷曲的手势。如在图5的示例中所示,对于除拇指以外的手指,折叠是将每个手指移向线190的手势。作为图5所示的示例,该线190可以由手的手掌的中心定义。除拇指外所有手指的折叠是:分别食指、中指、无名指和小指的掌指关节20、30、40、50,分别食指、中指、无名指和小指的近端指间关节70、80、90、100和远端指间关节110、120、130、140的折叠。此手势是手指肌肉收缩的结果,并且其可以包括称为指深屈肌和指浅屈肌的肌肉。此手势使食指、中指、无名指和小指的尖端与手的手掌接触、接近。
拇指的内收是使拇指朝手的手掌的手势。拇指的内收主要是由内收肌产生的。拇指的内收也可能使拇指朝向食指和手掌的侧面。拇指外展是使拇指远离手的手掌的手势。拇指的外展还可以使拇指远离食指和手的手掌的侧面。拇指的内收部分是由外展拇长肌引起的。拇指的内收和外展涉及拇指的掌指关节10。拇指屈曲将拇指移向线190。拇指屈曲主要由屈拇短肌产生。拇指的伸展使拇指远离线190。拇指的伸展主要是由伸肌的耻骨长肌引起的。拇指的内收、外展、屈曲和伸展涉及拇指的掌指关节10。
回到图1,在检测到S20包括除拇指以外的所有手指折叠的手势之后,该方法包括确定S30在3D沉浸式环境中由手的折叠手指形成的定向线。确定S30由手的折叠手指形成的定向线可以基于评估除拇指以外的手的近端指骨的取向。当除拇指以外的所有手指都折叠时,手指的近端指骨可被视为形成一条线。因此,当除拇指以外的所有手指折叠时,可以将手的近端指骨视为一条线。为了近似由除拇指以外的折叠手指形成的线的取向,可以在每个近端指骨上确定一个点,并且可以计算穿过每个点的笔直位置,例如通过使用这些点的平均位置。可替代地,确定S30由手的折叠手指形成的定向线可以基于评估穿过由折叠的手指(拇指除外)和手的手掌形成的腔(cavity)的虚拟线。该腔大致具有圆柱形状。可以通过计算由折叠的手指(拇指除外)形成的该圆柱体的中心来获得虚拟线。可替代地,用手的折叠手指形成的确定S30可以基于:当手指处于折叠位置时确定分别穿过食指、中指、无名指和小指的掌指关节20、30、40、50的线。图4示出了掌指关节20、30、40、50的对齐200。掌指关节自然地对齐,因此使得与手的其他关节相比,从这些关节计算线更容易。
在上文的讨论中,利用了近端指骨的取向。实际上,这些指骨具有较小的自由度,并且因此涉及较小的个体间差异。换句话说,近端指骨的检测更加鲁棒。应当理解,可以使用远端指骨代替近端指骨,或者与近端指骨结合使用。
确定S30可以通过使用虚拟骨架来完成。确定S30也可以在没有任何虚拟骨架的情况下完成。作为示例,确定S30可以基于被训练为从视频记录器进行确定S30的神经网络。
使用手的折叠手指以允许用户向系统提供定向线使得该方法更加可靠。实际上,指尖的相对对齐稍微取决于执行手势的人。此外,可以使用不同的方法来确定定向线,从而允许系统选择提供最佳结果的方法,或者通过根据两种或更多种这些不同方法中计算一条线。
然后,该方法还包括识别S40与定向线具有最接近取向的3D对象的边。应当理解,3D对象的每个边定义一条线,并且与定向线最接近的取向是通过定向线与由边形成的线中的每条线(或其至少一部分)之间的比较来确定的。现在讨论确定最接近取向的示例。
作为示例,每个边的取向可以通过线来具体化。对于每个边,计算代表其取向的线与用手的折叠手指(拇指除外)形成的定向线之间的角度。具有最小角度值的边是具有与定向线最接近的取向的3D对象的边。在这里,我们认为所有角度都定义在[0;2PI]之间。
在本公开的示例中,可以通过考虑3D对象的每个边来迭代地完成识别S40。应当理解,当确定具有与定向线最接近的取向的3D对象的边时,可以仅使用3D对象的边的子集。例如,仅可以使用距用户手最接近的边(例如,根据欧几里得距离)。
使用取向在3D对象的边之中选择一条边可以加速了对感兴趣边的选择。将取向用于3D对象的边之中的边还减少用户想要选择哪个面的歧义。实际上,准确的3D对象是数字建模的3D对象,它可以非常高精度地复制物理对象。例如,精确的3D模型通常具有许多小边来复制粗糙表面,以及大边来复制平坦表面。在这种情况下,准确的3D对象的相邻边具有显著的取向差异。因此,通过使用取向在3D对象的边之中选择边,该方法在3D对象具有许多小边的情况下特别有用,对于精确的3D对象而言就是这种情况。
在示例中,识别S40可以包括识别这样的3D对象的边:该3D对象的边在该边的方向和定向线的方向之间具有最接近的方向。例如,可以通过考虑3D对象的每个边或边的子集来迭代地执行识别S40。对于所考虑的每个边,计算其方向与定向线的方向之间的角度。具有最小角度值的边是具有与定向线最接近的方向的3D对象的边。在这里,我们认为所有角度都定义在[0;2PI]之间。通过在识别S40期间使用方向而不是取向,更加减小了用户想要选择哪个边的歧义。实际上,如果两个共线边具有相反的方向,则在识别S40期间使用方向而不是取向可以消除用户想要选择哪个的歧义。
图7示出了边的选择,其中,在选择期间边的方向介入。边200和220属于六边形面300。它们具有相同的取向(它们是平行的)但是具有相反的方向。在该示例中,两个边200和220的取向与线190的取向相同(或非常接近)。从手势S20派生出S30的线190具有与边200最接近的方向,并且边200被识别。
现在参考图8,示出了根据线的取向和方向对边的选择(S30)。3D对象与图7中的相同,除了通过将其右手的手掌朝向其头部转动之外,该方法允许用户选择属于同一面302但从用户的角度来看位于对象的背面的边202。选择边202而不选择边222,这是因为边202具有与线190的方向最接近的方向。
有趣的是,使用方向选择3D对象的边之中的边对于选择从用户的角度具有小可见表面的边也特别有用。尽管其小可见性,但用户仅需将其右手掌向3D对象转动即可选择期望的边。
在示例中,识别S40可以包括识别边之中的这样的边,该边使记为f的函数最小化。该函数将在下面讨论。在使用该函数之前(即在执行识别S40之前),确定在3D沉浸式环境中用手掌或手背形成的平面。该平面可以通过法线定向。确定平面是基于评估手掌和/或手背的取向。当除拇指以外的所有手指都被内收或折叠时,手掌和/或手背可被视为平坦表面。因此,当除拇指以外的所有手指被内收或折叠时,可以将手背视为平面。为了在内收除拇指以外的所有手指时近似手掌和/或手背的取向,通过使用平面的任何点的法线或通过使用平面的三个点的位置,以便利用叉积计算平面的法线。仍在使用该函数之前,用折叠的手指形成的定向线具有方向和位置。3D对象的每个边和定向线在3D沉浸式环境中还具有位置;如本领域已知的那样计算它们的位置。
现在讨论图9。图9示出了通过使用虚拟骨架的腕关节160的取向来确定方位平面的示例。实际上,虚拟骨架150的腕关节160是表示手掌和/或手背的定向平面的点,因此腕关节160的取向是定向平面的取向。
图10示出了基于腕关节160的位置、食指的掌指关节170的位置以及小指的掌指关节180的位置来确定S30的另一示例。这三个位置形成一个三角形。三角形的法线可以通过取该三角形的两个边的向量叉积来计算。法线给出手的手掌和/或手背的方向,取决于为计算叉积而选择的边。法线还取决于这些边用于计算叉积的顺序。可以通过垂直于三角形所有角位于其上的平面的线来具体化三角形的取向。三角形的取向也可以被编辑,并且因此不垂直于平面。
现在讨论记为f的函数。该函数用以下等式(1)计算:
Figure BDA0002869630240000151
其中:
-Edge是感兴趣的边;
-
Figure BDA0002869630240000152
Figure BDA0002869630240000153
且{w1+w2>0};
-||FH||是3D沉浸式环境中边Edge的位置与手的定向平面的位置H之间的欧几里得距离;并且
-
Figure BDA0002869630240000154
是3D沉浸式环境中边Edge的方向与手的折叠手指形成的定向线的方向之间的角度。
函数f是两个项的加权和。实际上,第一项||FH||乘以因子w1,并且第二项
Figure BDA0002869630240000155
乘以因子w2
第一加权项||FH||是3D沉浸式环境中边Edge的位置与手的手掌和/或手背的定向平面的位置H之间的欧几里得距离。例如,边Edge的位置可以位于边的质心。例如,手的手掌和/或手背的定向平面的位置可以位于虚拟骨架的腕关节160的位置。
第二加权项
Figure BDA0002869630240000156
是边Edge的方向与由手的折叠手指形成的定向线的方向之间的角度。第二加权项也可以基于边Edge的取向和由手的折叠手指形成的定向线的取向(而不是使用它们的方向)。
每个权重w1和w2可以等于或大于0。两个权重的总和严格大于0。如果权重之一等于0,则意味着该函数仅考虑两个项之一。例如,可以将w1设置在0.1和0.5之间,并且可以将w2设置在0.5和0.9之间。
权重w1和w2可以被预先计算。例如,可以基于3D对象的边的数量和大小对其进行预先计算。权重w1和w2例如可以在包含3D对象的3D沉浸式环境的加载时被预先计算。如果3D对象具有许多小边,则第二项的权重可能大于第一项的权重。权重也可以取决于所使用的设备。例如,一些设备可能给出手部位置的有限精度,但更好的取向精度。权重在方法期间也可能有所不同。例如,权重可以根据位于用户视野中的3D对象的表面的3D对象的边的数量和大小而变化。视野可以被定义为在给定时间的可观察环境的范围。因此,由于在该方法期间视野可能会发生变化,因此权重w1和w2也可能会发生变化。
在示例中,可以通过考虑3D对象的每个边来迭代地完成识别S40。在另一示例中,可以通过考虑3D对象的子集的每个边来迭代地完成识别S40。对于每个边,计算函数f的结果。具有最小值的边是使函数f最小化的3D对象的面。
在示例中,函数f的项|FH|可以替换为项||FH′||。通过以下方式使用公式(2)计算H′:
H′=E+EH*max(1,a*(||EOmax||)/||EHmax||) (2)
其中:
-H’是虚拟手的中心的计算位置;
-E是用户视点的位置;
-H是用户手部中心的位置;
-EH是从E到H的向量;
-Omax是3D对象的距E最远的边的位置;
-Hmax是用户手的中心在用户身体横向平面上距E最远的位置;
-
Figure BDA0002869630240000161
-||EOmax||是从E到Omax的向量的范数;并且
-||EHmax||是从E到Hmax的向量的范数;
H’是虚拟手的定向平面的计算出的位置。虚拟手可以被定义为这样的手:在3D沉浸式环境中从用户的视点E看,其虚拟地定位在至少比用户的手更远的位置。为了确保从用户的视点来看,项||FH′||始终与面的距离有关,使用虚拟手是有用的。从用户的视点E来看,虚拟手可能不会比用户的手更近。用户的视点E可能位于例如他们的头部中心,或位于他们的优势眼处,或位于他们的眼睛中间。Omax是从用户视点E看3D对象的最远边的位置。例如,可以在方法开始时,例如在检测S20开始时,确定从用户的视点E看被视为3D对象的最远边的边。例如,从用户视点E来看被视为3D对象的最远边的边也可以在整个方法中进行更新。如果在此方法期间用户的视点E和/或3D对象移动,则更新从用户的视点E看被视为3D对象的最远边的边特别有用。换句话说,作为示例,可以在检测S20期间确定Omax,并且可以在整个方法期间更新Omax。Hmax是用户的手的定向平面在用户身体的横向平面中距用户的视点E最远的位置。因此,Hmax是是否可通过使用考虑边距用户视点E的距离的方法来选择边的指标。Hmax例如是当用户的手臂在他们面前水平伸展时用户的手的定向平面的位置。Hmax可以例如在校准阶线段期间被预先计算。Hmax也可以由用户设置。a用作||EOmax||/||EHmax||的因子。例如,a是由用户在使用该方法之前设置的。如果a=1,则意味着当在用户的身体的横向平面中从用户视点E看3D对象的最远边之间的距离大于从用户视点E看用户的手的定向平面的最远位置时,则在3D沉浸式环境中虚拟手将比用户的手更远。对a使用大于1的值将允许用户选择从用户的视点E看3D对象的最远边,而不必完全伸展其手臂。例如,a的值可以设置为在1.5和2之间。为简单起见,下面我们将考虑a=1。
使用虚拟手可以改善用户与3D对象的交互(并且一般地说,在3D环境中)。图11和图12的示例示出了使用虚拟手在人体工程学方面的改进。
在图11的示例中,使用虚拟手可以允许用户选择3D对象的任何边,而不必完全伸展他们的手臂。保持手臂的伸展可能会使用户疲劳,因此使用虚拟的来解决此问题。
在图12的示例中,使用虚拟手允许用户选择3D对象的任何边而无需移动用户的视点E。事实上,例如,当在用户的身体的横向平面上3D对象的最远边与用户的视点E之间的距离大于用户手的中心距E的最远的位置之间的距离时,则在不使用虚拟手的情况下3D对象的一些边可能是不可选择的。在这种情况下,从用户的视点E看虚拟手定位于比用户的手E更远处。在不使用虚拟手的情况下,项||FH||将对从用户的视点E看3D对象的最远边的选择进行惩罚。因此,该方法将因该项而有所偏差。虚拟手通过虚拟地移动用户的手在3D沉浸式环境中的位置来解决此问题,以便确保虚拟H'可以始终至少与3D对象的最远边一样远,其中,两个位置都是从用户的视点E考虑的。
在示例中,使用虚拟手可以与从虚拟手发送的射线投射结合。例如,如果用户的手确实接近用户的头部,则可以激活此组合。射线的方向可以正交于虚拟手的手掌/手背的定向平面或来自虚拟手的手掌/手背的中心朝向3D对象中心。例如,在混合现实或增强现实中,此组合对于选择可能被真实障碍物包围的3D对象的任何边可以是非常有用的。
在示例中,函数f的项||FH||或项||FH′||(分别用等式(1)或等式(2)计算)还可以包括3D沉浸式环境中以下二者的位置之间的欧几里得距离:边;以及3D模型与从用户视点E投射的射线之间的至少一个交点。例如,射线可以从头部的中心或优势眼或眼睛之间的点投射到3D模型的中心。投射的方向可以例如由用户的凝视或用户的头部的方向定义。例如,还可以从用户的视点E的位置到3D模型中心的位置计算投射的方向。3D模型的中心可以例如被定义为3D模型的边界框的中心。例如,从用户的视点E的位置到3D模型中心的位置来计算投射的方向。
将基于3D沉浸式环境中的欧几里德距离(其为边与3D模型与从用户视点E投射的射线的至少一个交点的位置之间的欧几里德距离)的项添加到项||FH||或||FH′||允许该方法对用户的视点E的位置敏感。换句话说,这允许促进选择与以下二者之间的线对齐的边:用户的视点E;以及3D模型与射线的至少一个交点。如果3D模型在视野之外部分渲染,则这将特别有用。在这种情况下,该方法将惩罚对视野之外的边的选择。
为了取回用户头部的位置和/或取向,可以使用任何能够检测到姿态或运动的变化的技术来进行头部跟踪。例如,存在在虚拟、混合或增强现实中提供此类信息的头戴式受话器或眼镜。为了取回用户凝视的方向和/或取向,可以使用眼睛跟踪技术。
在示例中,参考图2的示例,识别S40可以进一步包括:确定S400与定向线具有最接近朝向的3D对象的边。识别S40可以进一步包括计算S410形成可选择的边的子集的确定的边的一个或多个n相邻面、一个或多个相邻边和所确定的边。所确定的边的n相邻边是与所确定的边的n-1相邻边共享一个顶点且不与n-2相邻边共享顶点的边。因此,所确定的边的1相邻边是与所确定的边共享顶点的边,并且所确定的边的2相邻边是与所确定的边的1相邻边共享顶点且不与所确定的边共享的边的边。识别S40还包括:从可选择的边的子集中,识别S420与定向线具有最接近取向的3D对象的边。可以基于3D对象的边的大小来预先确定n。也可以基于形成子集的边的大小或基于形成子集的边的从用户视点E看的可见表面的大小和/或基于用户的视点与所确定的边之间的距离来更新n。也可以基于设备规格或基于用户偏好来预先确定n。
确定S400和S420还可通过确定具有最接近方向的3D对象的边或通过确定使等式(1)或(2)的函数f最小化的面来执行。可以使用确定S400和S420之间的所有组合。例如,确定S400可以通过确定具有最接近方向的3D对象的边来完成,并且确定S420可以通过确定使函数f最小化的边来完成。
在另一示例中,可以通过确定使函数f最小化的边来完成确定S400和确定S420。在这种情况下,在确定S400期间,权重w1可以比w2大四倍,并且在确定S420期间,权重w1可以比w2小四倍。
在示例中,该方法可以进一步包括修改可选择的边的子集的边的第一渲染。在步骤S410中计算可选择的边的子集。如上所述,例如,在确定S40期间,基于所确定的边来计算子集。子集的大小取决于在计算S410中使用的n的值。在示例中,可以计算n的值以确保从用户的角度看的可见表面总是足够大以使用户容易地标识它。修改子集的渲染有助于用户识别在步骤S420期间哪些边将被视为可选择的。因此,用户将容易地识别感兴趣的边不在该子集之中,并且因此在步骤S410期间修改其手的位置和/或取向以改变子集。
在检测到S20没有发生时,3D对象的边的渲染不被该方法修改。
在示例中,用户在标识可选择的边的子集之后,可以修改其手的位置以便改变可选择的边的子集和/或他们可以修改他们的手的取向以便改变可选择的边的相同子集之中的所识别的边。
渲染的修改可以以各种方式来完成。渲染的修改可以在计算S410和/或识别S420期间完成。作为示例,可以通过突出显示可选择的边来执行渲染的修改。作为另一个示例,可以通过将特定纹理应用于可选择的边来执行渲染的修改。在另一个示例中,渲染的修改还可以包括放大(zoom-in)可选择的边和将可选择的边与3D对象断开连接。可以通过对用户的任何另一反馈(例如,在识别的边上自动捕捉图形用户信息)来完成渲染的修改。通过更改手的表示,渲染的修改也可能出现在用户手之上。例如,手的颜色可能改变,或者线可能覆盖在手指之上。
在示例中,该方法可以进一步包括修改所识别的边的第二渲染。所识别的边可以是例如在步骤S40期间识别的边。因此,对识别的边的渲染的修改开始,并帮助用户选择感兴趣的边。
所识别的边也可以是例如在步骤S420期间识别的边。所识别的边也可以是例如在步骤S400期间确定的边。在这些情况下,例如,第二渲染和第三渲染可能与可选择的边子集的第一渲染不同。第二渲染也可能与第三渲染不同。第一渲染和/或第二渲染和/或第三渲染改善了用户在3D环境中与3D对象的交互:实际上,如果用户需要改变手的位置以便改变可选择的边子集,则用户可以在步骤S420期间更容易地掌握,和/或他们可以修改其手的取向,以便在可选择的边的相同子集之中改变已识别的边。需要较少的用户交互以选择期望的边。
在提供持续的用户反馈和避免过度弹出之间可以找到良好的平衡。提供连续的用户反馈可以被定义为具有响应用户输入的方法。换句话说,例如,一旦用户提供输入,该方法就应该在没有可见延迟的情况下更新识别S40的结果和/或确定S400的结果和/或计算S410的结果和/或识别S420的结果。通过具有响应用户的输入的该方法,存在该方法提供过度弹出的风险。该术语定义了用户界面在各种状态之间快速且连续地切换的趋势。在该方法中,例如其可以是在视为被识别的面的两个或多个面之间进行迅速且快速的切换。
作为示例,可以保留具有修改的渲染的被识别的边,直到已经确信地识别了相同维度的更好的候选为止。换句话说,识别S40可以包括最小化函数f,一旦另一边的函数f的值小于当前识别的边的函数f的值,则将不进行从当前识别的边到另一边的切换。为了避免过度弹出,可以在识别S40期间使用惩罚阈值或惩罚因子,以将当前识别的边的函数f的结果的值与另一边进行比较。换句话说,具有修改后的渲染的所识别的边可以被保留,直到具有相同维度的更好的候选将函数f最小化为止,其具有增加的惩罚阈值和/或向候选的函数f的结果乘以惩罚因子。可替代地,可以仅在检测到用户的手在特定时间段内没有移动后,才从当前识别的边切换到另一个边,从而避免出现过度弹出。
连续的用户反馈可以例如通过修改3D对象的渲染和/或通过在3D对象附近和/或用户的手附近添加虚拟表示和/或通过来自设备的触觉反馈来完成。
在示例中,该方法中的3D对象的边可以是形成三角形和/或四边形和/或拓扑面的一部分的边。拓扑面是一组相邻的三角形或一组相邻的四边形,它们形成较大的“逻辑”连续面,同时仍潜在地显示每个图元之间的各种各样的取向,尤其是在拓扑面是大的时。在CAD程序中,拓扑面大部分时间都受拓扑边的约束。所谓相邻的三角形和/或相邻的四边形,应当理解,组的每个三角形或四边形是所述组的三角形或四边形的1相邻三角形或四边形。例如,代表汽车的CAD对象可以由数千个三角形组成,这些三角形可以分组在少于一百个拓扑面中。例如,一个拓扑面可以代表汽车座椅的上表面。
在示例中,检测到S20手势包括除拇指以外的所有手指的折叠和拇指的外展。如图5所示,食指、中指、无名指和小指折叠,同时用户执行拇指外展。拇指外展是包括外展肌短缩肌的肌肉的收缩的结果。
由于两个原因,检测除拇指以外的所有手指的折叠和拇指的外展是有利的。首先,该手势非常易于由用户执行,从而改善了手势的人体工程学。另外,该手势降低了所检测的姿态与默认姿态之间混淆的风险,因此检测S20更加可靠。
在示例中,该方法还包括通过检测到手势还包括拇指的内收,来选择3D对象的所识别的边。换句话说,当手势还包括拇指的内收时,将3D对象的所识别的边添加到边的当前选择。因此,所识别的边被认为是选择的边。该选择可以在步骤S40或S400或S420期间发生。因此,用户可以迭代地使用该方法来选择多个感兴趣的边。
在示例中,该方法可以还包括检测到手势还包括除拇指以外的所有手指的展开以及取消选择所选择的边。该检测可以在该方法的任何步骤期间发生。例如,用户可以因此取消选择最后选择的边。作为另一个示例,用户可以取消选择他们当前对边的全部选择。
在示例中,检测到手势可以还包括检测到远端指骨实质上与手的手掌接触。远端指骨与手掌的接触提高了检测S20的鲁棒性。检测到远端指骨实质上与手的手掌接触降低了检测到的姿态与默认姿态之间混淆的风险。

Claims (15)

1.一种计算机实现的方法,用于在CAD系统的3D沉浸式环境中从3D对象的边之中选择边,每个边在所述3D沉浸式环境中定向,所述方法包括:
-在所述3D沉浸式环境中显示(S10)所述3D对象;
-检测到(S20)包括除拇指以外的所有手指折叠的手势;
-确定(S30)在所述3D沉浸式环境中由手的折叠手指形成的定向线;以及
-识别(S40)与所述定向线具有最接近取向的所述3D对象的边。
2.根据权利要求1所述的计算机实现的方法,其中,所述3D对象的每个边和所述定向线还具有方向,并且其中,所述识别还包括:识别具有在所述边的方向与定向线的方向之间的最接近方向的所述3D对象的面边。
3.根据权利要求2所述的计算机实现的方法,还包括:
-在所述识别之前,确定在所述3D沉浸式环境中由手掌或手背形成的定向平面,所述定向平面包括法线;
其中,所述3D对象的每个边和所述定向线还在所述3D沉浸式环境中具有位置,并且其中,所述识别(S40)还包括:
-使函数f最小化:
Figure FDA0002869630230000011
其中:
-Edge是感兴趣的边;
-
Figure FDA0002869630230000012
Figure FDA0002869630230000013
且{w1+w2>0};
-||FH||是所述3D沉浸式环境中边Edge的位置与所述手的所述定向平面的位置H之间的欧几里得距离;并且
-
Figure FDA0002869630230000014
是所述3D沉浸式环境中所述边Edge的方向和用所述手的所述折叠手指形成的所述定向线的方向之间的角度。
4.根据权利要求3所述的计算机实现的方法,其中,所述函数f的项||FH||替换为||FH′||,其中,H′通过以下方式计算:
H′=E+EH*max(1,a*(||EOmax||)/||EHmax||)
其中:
-H’是虚拟手的定向平面的位置;
-E是用户的视点的位置;
-H是所述用户的手的所述定向平面的位置;
-EH是从E到H的向量;
-Omax是所述3D对象的距E最远的边的位置;
-Hmax是所述用户的手的中心在所述用户身体的横向平面中距E最远的位置;
-
Figure FDA0002869630230000021
-||EOmax||是从E到Omax的向量的范数;并且
-||EHmax||是从E到Hmax的向量的范数。
5.根据权利要求4所述的计算机实现的方法,其中,所述函数f的项||FH||还包括在所述3D沉浸式环境中的所述边的位置和3D模型与射线的至少一个交点之间的欧几里得距离,所述射线是从头部的中心或优势眼或眼睛之间的点投射到所述3D模型的中心的。
6.根据权利要求1至5中的任一项所述的计算机实现的方法,其中,所述识别包括:
-确定(S400)与所述定向线具有最接近取向的所述3D对象的边;
-计算(S410)所确定的边的一个或多个n相邻边、一个或多个相邻边和所确定的边,以形成可选择的边的子集;以及
-从所述可选择的边的子集中识别(S420)与所述定向线具有最接近取向的所述3D对象的边。
7.根据权利要求6所述的计算机实现的方法,还包括:修改可选择的边的子集中的边的第一渲染。
8.根据权利要求1至7中的任一项所述的计算机实现的方法,还包括:修改所识别的边的第二渲染。
9.根据权利要求1至8中的任一项所述的计算机实现的方法,其中,所述3D对象的边是这样的边:其是选自三角形和/或四边形和/或拓扑面和/或参数曲面/或过程表面中的至少一个的一部分。
10.根据权利要求1至9中的任一项所述的计算机实现的方法,其中,检测到(S20)所述手势包括除拇指以外的所有手指的折叠和所述拇指的外展。
11.根据权利要求1至10中的任一项所述的计算机实现的方法,还包括:
-通过检测到所述手势还包括所述拇指的内收,来选择所述3D对象的所识别的边。
12.根据权利要求11所述的计算机实现的方法,还包括:
-检测到所述手势还包括除拇指以外的所有手指的展开;以及
-取消选择所选择的边。
13.根据权利要求1至12中的任一项所述的计算机实现的方法,其中,检测所述手势还包括:
-检测到食指、中指、无名指和小指的远端指骨实质上与所述手的手掌接触。
14.一种计算机程序,包括允许计算机执行根据权利要求1至13中的任一项所述的方法的指令。
15.一种系统,包括显示器以及与存储器通信地耦合的处理电路,所述存储器存储根据权利要求14所述的计算机程序。
CN202011592846.0A 2019-12-30 2020-12-29 在3d建模中利用沉浸式手势选择边 Pending CN113126750A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP19306791.5 2019-12-30
EP19306791.5A EP3846004A1 (en) 2019-12-30 2019-12-30 Selection of an edge with an immersive gesture in 3d modeling

Publications (1)

Publication Number Publication Date
CN113126750A true CN113126750A (zh) 2021-07-16

Family

ID=69185278

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011592846.0A Pending CN113126750A (zh) 2019-12-30 2020-12-29 在3d建模中利用沉浸式手势选择边

Country Status (4)

Country Link
US (1) US11567579B2 (zh)
EP (1) EP3846004A1 (zh)
JP (1) JP2021131848A (zh)
CN (1) CN113126750A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI822493B (zh) * 2022-02-17 2023-11-11 宏達國際電子股份有限公司 用於提高視覺內容的品質的方法及相關產品

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11797162B2 (en) 2020-12-22 2023-10-24 Snap Inc. 3D painting on an eyewear device
US20220197393A1 (en) * 2020-12-22 2022-06-23 Snap Inc. Gesture control on an eyewear device
US11782577B2 (en) 2020-12-22 2023-10-10 Snap Inc. Media content player on an eyewear device

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020056009A1 (en) 2000-08-22 2002-05-09 Affif Filippo L. Method for interacting with a device using an abstract space
US9070402B2 (en) 2006-03-13 2015-06-30 Autodesk, Inc. 3D model presentation system with motion and transitions at each camera view point of interest (POI) with imageless jumps to each POI
US10235827B2 (en) * 2007-11-09 2019-03-19 Ball Gaming, Inc. Interaction with 3D space in a gaming system
FR2971066B1 (fr) 2011-01-31 2013-08-23 Nanotec Solution Interface homme-machine tridimensionnelle.
US20150220149A1 (en) 2012-02-14 2015-08-06 Google Inc. Systems and methods for a virtual grasping user interface
JP5925024B2 (ja) 2012-04-06 2016-05-25 キヤノン株式会社 表示制御装置、表示制御方法、およびプログラム
US10168873B1 (en) 2013-10-29 2019-01-01 Leap Motion, Inc. Virtual interactions for machine control
JP6326847B2 (ja) 2014-02-14 2018-05-23 富士通株式会社 画像処理装置、画像処理方法および画像処理プログラム
US10140776B2 (en) * 2016-06-13 2018-11-27 Microsoft Technology Licensing, Llc Altering properties of rendered objects via control points
EP3710962A1 (en) * 2017-11-13 2020-09-23 Arkio EHF. Virtual/augmented reality modeling application for architecture
US11573641B2 (en) 2018-03-13 2023-02-07 Magic Leap, Inc. Gesture recognition system and method of using same

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI822493B (zh) * 2022-02-17 2023-11-11 宏達國際電子股份有限公司 用於提高視覺內容的品質的方法及相關產品

Also Published As

Publication number Publication date
EP3846004A1 (en) 2021-07-07
US20210200324A1 (en) 2021-07-01
US11567579B2 (en) 2023-01-31
JP2021131848A (ja) 2021-09-09

Similar Documents

Publication Publication Date Title
US11567579B2 (en) Selection of an edge with an immersive gesture in 3D modeling
EP3188033B1 (en) Reconstructing a 3d modeled object
Weichel et al. MixFab: a mixed-reality environment for personal fabrication
US7084869B2 (en) Methods and apparatus for detecting and correcting penetration between objects
US7568171B2 (en) Stroke-based posing of three-dimensional models
TW202014851A (zh) 具有廣泛使用性的三維圖形使用者介面的系統及方法
EP3458942B1 (en) Display of three-dimensional model information in virtual reality
KR101867991B1 (ko) 다관절 오브젝트의 모션 에디팅 방법 및 장치
Ng et al. Integrated product design and assembly planning in an augmented reality environment
Ahmad et al. Hand pose estimation and tracking in real and virtual interaction: A review
US11543889B2 (en) Selection of a vertex with an immersive gesture in 3D modeling
Wong et al. Virtual 3d sculpting
Ueda et al. Hand pose estimation using multi-viewpoint silhouette images
Cohen et al. A 3d virtual sketching system using NURBS surfaces and leap motion controller
US11822727B2 (en) Selection of a face with an immersive gesture in 3D modeling
Schkolne et al. Surface drawing.
Moustakas et al. A geometry education haptic VR application based on a new virtual hand representation
Fiorentino et al. Surface design in virtual reality as industrial application
CN112486319B (zh) 基于触觉渲染设备的vr交互方法、装置、设备及介质
US11941773B2 (en) Method for designing a three-dimensional mesh in a 3D scene
US20230215040A1 (en) Method and system for tracking a cad model in real time based on particle filters
SISWANTI et al. Image Processing of Hand Gesture for Augmented Reality Systems
Leal-Meléndez et al. Physically-based Modeling of Virtual Content for a Natural way of Interaction in AR.
CN116361879A (zh) 设置类型化参数
Gheorghe et al. Exploring interactions specific to mixed reality 3D modeling systems

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