CN111771231A - 用于虚拟化身的匹配网格 - Google Patents
用于虚拟化身的匹配网格 Download PDFInfo
- Publication number
- CN111771231A CN111771231A CN201980015643.4A CN201980015643A CN111771231A CN 111771231 A CN111771231 A CN 111771231A CN 201980015643 A CN201980015643 A CN 201980015643A CN 111771231 A CN111771231 A CN 111771231A
- Authority
- CN
- China
- Prior art keywords
- mesh
- vertices
- base
- target
- error
- 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
Links
- 230000009466 transformation Effects 0.000 claims abstract description 189
- 238000000034 method Methods 0.000 claims abstract description 188
- 238000004891 communication Methods 0.000 claims description 21
- 238000013519 translation Methods 0.000 claims description 10
- 241001465754 Metazoa Species 0.000 claims description 8
- 210000003746 feather Anatomy 0.000 claims description 8
- 238000010397 one-hybrid screening Methods 0.000 claims description 4
- 238000000844 transformation Methods 0.000 abstract description 27
- 210000001508 eye Anatomy 0.000 description 106
- 238000012545 processing Methods 0.000 description 95
- 230000008569 process Effects 0.000 description 73
- 230000033001 locomotion Effects 0.000 description 55
- 238000009877 rendering Methods 0.000 description 39
- 238000003384 imaging method Methods 0.000 description 37
- 238000004422 calculation algorithm Methods 0.000 description 35
- 210000001503 joint Anatomy 0.000 description 31
- 230000003287 optical effect Effects 0.000 description 20
- 238000013507 mapping Methods 0.000 description 19
- 210000001747 pupil Anatomy 0.000 description 19
- 210000003128 head Anatomy 0.000 description 17
- 230000008859 change Effects 0.000 description 14
- 230000000007 visual effect Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 13
- 230000004044 response Effects 0.000 description 13
- 238000000605 extraction Methods 0.000 description 12
- 230000001815 facial effect Effects 0.000 description 12
- 230000004308 accommodation Effects 0.000 description 9
- 238000004458 analytical method Methods 0.000 description 9
- 210000000988 bone and bone Anatomy 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 238000012360 testing method Methods 0.000 description 9
- 230000006978 adaptation Effects 0.000 description 8
- 238000013528 artificial neural network Methods 0.000 description 8
- 230000003993 interaction Effects 0.000 description 8
- 238000010801 machine learning Methods 0.000 description 8
- 238000012546 transfer Methods 0.000 description 8
- 230000007423 decrease Effects 0.000 description 7
- 238000002347 injection Methods 0.000 description 7
- 239000007924 injection Substances 0.000 description 7
- 210000003205 muscle Anatomy 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 238000012937 correction Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000003190 augmentative effect Effects 0.000 description 5
- 230000004424 eye movement Effects 0.000 description 5
- 230000008921 facial expression Effects 0.000 description 5
- 210000000245 forearm Anatomy 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 5
- 239000000203 mixture Substances 0.000 description 5
- 230000007935 neutral effect Effects 0.000 description 5
- 230000008447 perception Effects 0.000 description 5
- 230000035807 sensation Effects 0.000 description 5
- 239000013598 vector Substances 0.000 description 5
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 4
- 210000002310 elbow joint Anatomy 0.000 description 4
- 230000004438 eyesight Effects 0.000 description 4
- 230000014509 gene expression Effects 0.000 description 4
- 239000000463 material Substances 0.000 description 4
- 239000000047 product Substances 0.000 description 4
- 238000000926 separation method Methods 0.000 description 4
- 210000000323 shoulder joint Anatomy 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 210000003813 thumb Anatomy 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 210000004556 brain Anatomy 0.000 description 3
- 210000000887 face Anatomy 0.000 description 3
- 210000004209 hair Anatomy 0.000 description 3
- 230000001953 sensory effect Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 210000003857 wrist joint Anatomy 0.000 description 3
- 206010019233 Headaches Diseases 0.000 description 2
- 230000004913 activation Effects 0.000 description 2
- 230000008649 adaptation response Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000001427 coherent effect Effects 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000003066 decision tree Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 210000000613 ear canal Anatomy 0.000 description 2
- 210000004709 eyebrow Anatomy 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 210000003811 finger Anatomy 0.000 description 2
- 238000007499 fusion processing Methods 0.000 description 2
- 238000009499 grossing Methods 0.000 description 2
- 230000012447 hatching Effects 0.000 description 2
- 231100000869 headache Toxicity 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 230000004807 localization Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 210000001331 nose Anatomy 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 230000000284 resting effect Effects 0.000 description 2
- 230000002207 retinal effect Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000001228 spectrum Methods 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 208000002874 Acne Vulgaris Diseases 0.000 description 1
- 241000256837 Apidae Species 0.000 description 1
- 241000282412 Homo Species 0.000 description 1
- 239000004983 Polymer Dispersed Liquid Crystal Substances 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 206010000496 acne Diseases 0.000 description 1
- 229910052782 aluminium Inorganic materials 0.000 description 1
- XAGFODPZIPBFFR-UHFFFAOYSA-N aluminium Chemical compound [Al] XAGFODPZIPBFFR-UHFFFAOYSA-N 0.000 description 1
- 210000003484 anatomy Anatomy 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 208000003464 asthenopia Diseases 0.000 description 1
- 230000002238 attenuated effect Effects 0.000 description 1
- 230000003416 augmentation Effects 0.000 description 1
- 230000004397 blinking Effects 0.000 description 1
- 238000005253 cladding Methods 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 210000003414 extremity Anatomy 0.000 description 1
- 210000000744 eyelid Anatomy 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000004886 head movement Effects 0.000 description 1
- 208000013057 hereditary mucoepithelial dysplasia Diseases 0.000 description 1
- 238000010191 image analysis Methods 0.000 description 1
- 238000003064 k means clustering Methods 0.000 description 1
- 210000000088 lip Anatomy 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 229910052751 metal Inorganic materials 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000036651 mood Effects 0.000 description 1
- 238000013488 ordinary least square regression Methods 0.000 description 1
- 238000010422 painting Methods 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000000513 principal component analysis Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000011514 reflex Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 210000001525 retina Anatomy 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
- 125000006850 spacer group Chemical group 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000012706 support-vector machine Methods 0.000 description 1
- 208000024891 symptom Diseases 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000010396 two-hybrid screening Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
- 230000004470 vergence movement Effects 0.000 description 1
- 230000037303 wrinkles Effects 0.000 description 1
- 210000000707 wrist Anatomy 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B63—SHIPS OR OTHER WATERBORNE VESSELS; RELATED EQUIPMENT
- B63B—SHIPS OR OTHER WATERBORNE VESSELS; EQUIPMENT FOR SHIPPING
- B63B21/00—Tying-up; Shifting, towing, or pushing equipment; Anchoring
- B63B21/24—Anchors
- B63B21/26—Anchors securing to bed
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B63—SHIPS OR OTHER WATERBORNE VESSELS; RELATED EQUIPMENT
- B63B—SHIPS OR OTHER WATERBORNE VESSELS; EQUIPMENT FOR SHIPPING
- B63B35/00—Vessels or similar floating structures specially adapted for specific purposes and not otherwise provided for
- B63B35/44—Floating buildings, stores, drilling platforms, or workshops, e.g. carrying water-oil separating devices
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B63—SHIPS OR OTHER WATERBORNE VESSELS; RELATED EQUIPMENT
- B63B—SHIPS OR OTHER WATERBORNE VESSELS; EQUIPMENT FOR SHIPPING
- B63B79/00—Monitoring properties or operating parameters of vessels in operation
- B63B79/10—Monitoring properties or operating parameters of vessels in operation using sensors, e.g. pressure sensors, strain gauges or accelerometers
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B63—SHIPS OR OTHER WATERBORNE VESSELS; RELATED EQUIPMENT
- B63B—SHIPS OR OTHER WATERBORNE VESSELS; EQUIPMENT FOR SHIPPING
- B63B79/00—Monitoring properties or operating parameters of vessels in operation
- B63B79/30—Monitoring properties or operating parameters of vessels in operation for diagnosing, testing or predicting the integrity or performance of vessels
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B63—SHIPS OR OTHER WATERBORNE VESSELS; RELATED EQUIPMENT
- B63H—MARINE PROPULSION OR STEERING
- B63H21/00—Use of propulsion power plant or units on vessels
- B63H21/32—Arrangements of propulsion power-unit exhaust uptakes; Funnels peculiar to vessels
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F01—MACHINES OR ENGINES IN GENERAL; ENGINE PLANTS IN GENERAL; STEAM ENGINES
- F01N—GAS-FLOW SILENCERS OR EXHAUST APPARATUS FOR MACHINES OR ENGINES IN GENERAL; GAS-FLOW SILENCERS OR EXHAUST APPARATUS FOR INTERNAL COMBUSTION ENGINES
- F01N13/00—Exhaust or silencing apparatus characterised by constructional features ; Exhaust or silencing apparatus, or parts thereof, having pertinent characteristics not provided for in, or of interest apart from, groups F01N1/00 - F01N5/00, F01N9/00, F01N11/00
- F01N13/004—Exhaust or silencing apparatus characterised by constructional features ; Exhaust or silencing apparatus, or parts thereof, having pertinent characteristics not provided for in, or of interest apart from, groups F01N1/00 - F01N5/00, F01N9/00, F01N11/00 specially adapted for marine propulsion, i.e. for receiving simultaneously engine exhaust gases and engine cooling water
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
- G06T13/40—3D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/10—Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F01—MACHINES OR ENGINES IN GENERAL; ENGINE PLANTS IN GENERAL; STEAM ENGINES
- F01N—GAS-FLOW SILENCERS OR EXHAUST APPARATUS FOR MACHINES OR ENGINES IN GENERAL; GAS-FLOW SILENCERS OR EXHAUST APPARATUS FOR INTERNAL COMBUSTION ENGINES
- F01N2590/00—Exhaust or silencing apparatus adapted to particular use, e.g. for military applications, airplanes, submarines
- F01N2590/02—Exhaust or silencing apparatus adapted to particular use, e.g. for military applications, airplanes, submarines for marine vessels or naval applications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2021—Shape modification
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Combustion & Propulsion (AREA)
- Chemical & Material Sciences (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mechanical Engineering (AREA)
- Ocean & Marine Engineering (AREA)
- Software Systems (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Architecture (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Structural Engineering (AREA)
- Civil Engineering (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- Processing Or Creating Images (AREA)
- User Interface Of Digital Computer (AREA)
- Image Generation (AREA)
Abstract
公开了用于针对虚拟化身或对象而将基础网格与目标网格相匹配的系统和方法的示例。该系统和方法可以被配置为自动地将动画操纵的基础网格与目标网格相匹配,该目标网格可以表示虚拟化身或对象的特定姿势。可以通过将化身或对象操纵到特定姿势来获得基础网格,而目标网格可以通过扫描、拍照或以其他方式获得关于处于特定姿势的人或对象的信息来获得。该系统和方法可以使用在较高误差区域中的刚性变换和在较低误差区域中的非刚性变形来自动地将基础网格与目标网格相匹配。
Description
相关申请的交叉引用
本申请要求于2018年2月27日提交的名称为“Matching Meshes for VirtualAvatars(用于虚拟化身的匹配网格)”的美国专利申请号62/635,939的优先权的权益,其全部内容通过引用合并于此。
技术领域
本公开涉及虚拟现实和增强现实,包括混合现实、成像和可视化系统,并且更具体地涉及用于使诸如化身(avatar)的虚拟角色动画化(animiate)的操纵(rig)系统和方法。
背景技术
现代计算和显示技术促进了用于所谓的“虚拟现实”、“增强现实”和“混合现实”体验的系统的开发,其中数字再现的图像以使得它们看起来是或者可以被感觉是真实的方式呈现给用户。虚拟现实(VR)场景通常涉及计算机生成的虚拟图像信息的呈现,而不对其它实际的真实世界的视觉输入透明。增强现实(AR)场景通常涉及将虚拟图像信息呈现为对用户周围的现实世界的可视化的增强。混合现实(MR)是增强现实的一种类型,其中物理和虚拟对象可以共存并实时交互。在此公开的系统和方法解决了与VR、AR和MR技术有关的各种挑战。
发明内容
公开了用于针对虚拟化身或对象而将基础网格与目标网格相匹配的系统和方法的示例。该系统和方法可以被配置为自动地将动画操纵的基础网格与目标网格相匹配,该目标网格可以表示虚拟化身或对象的特定姿势。可以通过将化身或对象操纵到特定姿势来获得基础网格,而目标网格可以通过扫描、拍照或以其他方式获得关于处于特定姿势的人或对象的信息来获得。该系统和方法可以使用在较高误差区域中的刚性变换和在较低误差区域中的非刚性变形来自动地将基础网格与目标网格相匹配。
例如,自动化系统可以针对虚拟化身将第一网格与第二网格相匹配。第一网格可以表示动画操纵的基础网格,第二网格可以表示目标网格,在某些情况下,可以从执行目标姿势的人的摄影测量扫描获得目标网格。
在各种实现方式中,系统可以首先将第一网格与第二网格配准(register),然后使第一网格与第二网格相符合。该系统可以识别第一网格和第二网格不相匹配到第一误差水平的第一组区域以及第一网格和第二网格不相匹配到第二误差水平的第二组区域,其中第二误差水平小于第一误差水平。该系统可以在第一组区域中应用刚性变换,并且在第二组区域中应用非刚性变换。系统可以迭代此变换过程,直到第一和第二网格之间的误差小于误差容限为止。
在其他实现方式中,系统可以通过匹配相对大的子区域并且迭代地匹配逐渐变小的子区域直到满足收敛性准则,来将第一网格与第二网格相匹配。
在其他实现方式中,系统识别第一网格的第一组子区域和第一网格的第二组子区域。例如,第一组和第二组子区域可以形成棋盘格图案。系统可以在第一组子区域上应用刚性变换,以将第一组子区域与目标网格相匹配。系统可以经由插值将第二组子区域与目标网格相。系统可以例如通过交换第一和第二组子区域来迭代该过程。
在附图和以下描述中阐述了本说明书中描述的主题的一种或多种实现方式的细节。通过说明书、附图和权利要求,其它特征、方面和优点将变得显而易见。本发明内容和以下具体实现方式都并非旨在限定或限制本发明主题的范围。
附图说明
在附图和以下描述中阐述了本说明书中描述的主题的一种或多种实现方式的细节。通过说明书、附图和权利要求,其它特征、方面和优点将变得显而易见。
图1示出了具有由人观看到的某些虚拟现实对象和某些物理对象的混合现实场景的图示。
图2示意性地示出了可穿戴系统的示例。
图3示意性地示出了可穿戴系统的示例组件。
图4示意性地示出了用于将图像信息输出给用户的可穿戴装置的波导堆叠的示例。
图5是用于与虚拟用户界面交互的方法的示例的过程流程图。
图6A是可穿戴系统的另一示例的框图,该可穿戴系统可包括化身处理和渲染系统。
图6B示出了化身处理和渲染系统的示例组件。
图7是包括到可穿戴系统中的各种输入的可穿戴系统的示例的框图。
图8是渲染与所识别的对象相关的虚拟内容的方法的示例的过程流程图。
图9A示意性地示出了整体系统视图,其描绘了彼此交互的多个可穿戴系统。
图9B示出了示例远端临场会话。
图10示出了由可穿戴系统的用户所感知的化身的示例。
图11A示出了胳膊的示例网格,该示例网格包括基础网格、目标网格和通过使基础网格与目标网格相匹配而获得的传递(transfer)网格。
图11B示出了衬衫的示例网格,该示例网格包括基础网格、目标网格和通过使基础网格与目标网格相匹配而获得的传递网格。
图12A示出了基础网格朝向目标网格的刚性变换的应用的示例,刚性变换诸如刚性最近邻变换。
图12B示出了基础网格朝向目标网格的非刚性变形的应用的示例,非刚性变形诸如表面上最近点变形。
图13示出了在表面上最近点变形或其他非刚性变形中的不同衰减半径的各种示例。
图14A-14C示出了用于使基础网格与目标网格相匹配的示例过程。
在全部附图中,参考标号可以被重复使用来指示被引用的要素之间的对应关系。提供附图是为了示例本文中描述的示例性实施例,而非旨在限制本公开的范围。另外,本公开中的附图仅用于说明目的并且未按比例绘制。
具体实现方式
概述
虚拟化身可以是真实或虚构的人(或生物或拟人化的对象)在AR/VR/MR环境中的虚拟表示。例如,在其中两个AR/VR/MR用户彼此交互的远端临场会话期间,观看者可以感知观看者环境中另一用户的化身,从而创建对观看者环境中的另一用户的存在的有形的感觉。化身还可以为用户提供一种在共享的虚拟环境中彼此交互并一起做事的方式。例如,参加在线课程的学生可以感知虚拟教室中的其他学生或老师的化身并与之交互。作为另一示例,在AR/VR/MR环境中玩游戏的用户可以查看游戏中其他玩家的化身并与之交互。
所公开的系统和方法的实施例可以提供化身的改进的动画以及可穿戴系统的用户与用户环境中的化身之间的更真实的交互。尽管本公开中的示例通常描述了使人形化身动画化,但是类似的技术也可以应用于动物、虚构生物、对象等。
可穿戴装置可以包括用于呈现包括高逼真数字化身的交互式VR/AR/MR环境的显示器。高逼真数字化身的创建可能需要专业团队花费数周或数月的时间,并且可以利用人体模型的大量高质量数字化拍摄扫描。所公开的技术的实施例具有创建任何人类、动物、角色或对象的高质量或高逼真的化身(或一般地,数字表示)的能力。为了实现这一点,所公开的过程的实施例是更快的并且低资源密集(例如,使用户经历专业模型可能经历的相同扫描过程可能是不实际的),同时仍然维持准确的输出。
作为示例,人(通常是任何动物或例如衣服或头发的可变形对象)的数字表示可以包括骨架(skeleton)和上面的网格(例如,以显示可以是皮肤、衣服等的外表面)。每个骨骼(bone)可以被分配有特定的网格顶点,以使得当骨骼移动时,所分配的顶点会随骨骼自动移动。此初始运动称为“皮肤团簇(cluster)”,并且通常捕获总体运动。(应该注意,骨骼和骨架是数字构造,并且不一定与人体中的实际骨骼对应。)可能需要对人建模(有时在本文中被称为化身)的后续步骤来捕获皮肤(有时在本文中被称为表面或网格)的精细运动。此后续步骤有时被称为混合形状(blendshape),并表示与初始总体运动的差异,以捕获皮肤的精细运动。对于数字表示移入到其中的不同姿势中的一些或所有,可能需要获得混合形状。作为示例,可能需要第一混合形状来使数字表示动画化以使其手臂弯曲一半,并且可能需要第二混合形状来使数字表示动画化以使其手臂完全弯曲。
在本公开中,提供了用于有效地生成用于人或动物(或其他对象)的化身或数字表示的各种姿势的混合形状的方法和系统。作为示例,计算系统可以例如通过将人的数字表示中的一个或多个骨骼移动到给定骨骼中(例如,以捕获数字表示的总体运动)来获得以给定姿势的化身的基础网格,并且可以例如通过拍摄以给定姿势的用户(或对象)来获得以给定姿势的目标网格。然后,计算系统可以尝试使基础网格与目标网格相匹配,以便获得用于该给定姿势的混合形状(例如,以确定如何经由混合形状来调整基础网格,从而使以给定姿势的被动画化的数字表示与以给定姿势的用户或对象相匹配)。计算系统可以通过生成热图(其可以示出基础网格与目标网格之间的具有较高误差和较低误差的区域)、应用刚性变换、在具有较高误差的区域中使基础网格朝向目标网格移动、以及应用使得在具有较低误差的区域中使基础网格与目标网格一致的非刚性变形,来使基础网格与目标网格相匹配。可以以迭代方式重复这些过程,直到获得令人满意的匹配或满足一些其他条件。作为另一示例,计算系统可以使基础网格的子区域与目标网格相匹配并且迭代地匹配其他子区域,直到满足收敛性准则。在获得令人满意的匹配或满足一些其他条件之后,计算系统可以为给定姿势生成一个或多个混合形状,然后可以将其用于使数字表示精细化以更准确地反映以给定姿势的真实世界用户(或对象)。
因此,下面将提供用于将第一网格匹配到第二网格上的系统和方法的各种实现方式。
可穿戴系统的3D显示的示例
可穿戴系统(这里也被称为增强现实(AR)系统)可以被配置为向用户呈现2D或三维3D虚拟图像。图像可以是静止图像、视频帧或视频、上述项的组合等等。可穿戴系统的至少一部分可以在可穿戴装置上实现,可穿戴装置可以单独或组合地呈现VR、AR或MR环境以用于用户交互。可穿戴装置可以被可互换地用作AR设备(ARD)。此外,对于本公开的目的,术语“AR”与术语“MR”可互换地使用。
图1示出了具有由人观看到的某些虚拟现实对象以及某些物理对象的混合现实场景的图示。在图1中,示出了MR场景100,其中MR技术的用户看到以人、树木、背景中的建筑物以及混凝土平台120为特征的真实世界公园状设置110。除了这些项目之外,MR技术的用户还感知他“看到”站在真实世界平台120上的机器人雕像130,以及看起来像大黄蜂的化身的飞舞的卡通式的化身角色140,尽管这些元素不存在于真实世界中。
为了使3D显示器产生真实的深度感觉,更具体地,模拟的表面深度感觉,可能期望显示器的视野中的每个点产生与其虚拟深度对应的适应响应(accommodative response)。如果对显示点的适应响应不对应于该点的虚拟深度(由汇聚和立体视觉的双眼深度线索确定),则人眼可能经历适应冲突,导致成像不稳定、有害的眼部紧张、头痛,并且在没有适应信息的情况下,几乎完全缺乏表面深度。
VR、AR和MR体验可以由具有显示器的显示系统提供,在显示器中,对应于多个深度平面的图像被提供给观看者。对于每个深度平面,图像可以是不同的(例如,提供稍微不同的场景或对象呈现),并且可以由观看者的眼睛单独聚焦,从而有助于基于眼睛的适应(需要这种适应以使位于不同深度平面上的场景的不同图像特征聚焦),或者基于观察到不同深度平面上的不同图像特征脱焦,为用户提供深度线索。如本文其它地方所讨论的,这种深度线索提供了可靠的深度感。
图2示例出可穿戴系统200的示例,该可穿戴系统200可以被配置为提供AR/VR/MR场景。可穿戴系统200也可以被称为AR系统200。可穿戴系统200包括显示器220以及支持该显示器220的功能的各种机械和电子模块和系统。显示器220可以被耦接到框架230,该框架可由用户、佩戴者或观看者210穿戴。显示器220可以被定位在用户210的眼睛的前方。显示器220可以向用户呈现AR/VR/MR内容。显示器220可以包括穿戴在用户头部上的头戴式显示器(HMD)。
在一些实施例中,扬声器240被耦接到框架230并且被定位在用户的耳道附近(在一些实施例中,另一扬声器(未示出)可以被定位在用户的另一耳道附近以提供立体声/可塑形的声音控制)。显示器220可以包括用于检测来自环境的音频流并捕获环境声音的音频传感器(例如,麦克风)232。在一些实施例中,未示出的一个或多个其他音频传感器被定位为提供立体声音接收。立体声音接收可以用于确定声源的位置。可穿戴系统200可以对音频流执行语音或言语识别。
可穿戴系统200可包括面向外的成像系统464(如图4所示),其观察用户周围环境中的世界。可穿戴系统200可以还包括面向内的成像系统462(如图4所示),其可以跟踪用户的眼睛运动。面向内的成像系统可以跟踪一只眼睛的运动或全部两只眼睛的运动。面向内的成像系统462可以被附接到框架230并且可以与处理模块260或270电通信,处理模块260或270可以处理由面向内的成像系统获取的图像信息以确定例如用户210的眼睛的瞳孔直径或取向、眼睛运动或眼睛姿势。面向内的成像系统462可以包括一个或多个相机。例如,至少一个照相机可以用于对每只眼睛成像。由相机获取的图像可用于单独地确定针对每只眼睛的瞳孔尺寸或眼睛姿势,从而允许将图像信息呈现给每只眼睛以相对于该眼睛被动态地定制。
作为示例,可穿戴系统200可以使用面向外的成像系统464或面向内的成像系统462来获取用户姿势的图像。图像可以是静止图像、视频帧或视频。
显示器220可以例如通过有线引线或无线连接可操作地耦接250到本地数据处理模块260,本地数据处理模块260可以以各种配置安装,例如固定地附接到框架230,固定地附接到用户戴的头盔或帽子,嵌入在耳机中,或以其它方式可移除地附接到用户210(例如,采取背包式配置,采取腰带耦接式配置)。
本地处理和数据模块260可以包括硬件处理器以及诸如非易失性存储器(例如,闪速存储器)的数字存储器,二者都可用于辅助数据的处理、缓存以及存储。数据可以包括如下数据:a)从传感器(其可以例如可操作地耦接到框架230或以其它方式附接到用户210)捕获的数据,传感器例如图像捕获设备(例如,相机、面向内的成像系统或面向外的成像系统)、音频传感器(例如,麦克风)、惯性测量单元(IMU)、加速度计、罗盘、全球定位系统(GPS)单元、无线电设备或陀螺仪;或b)使用远程处理模块270或远程数据储存库280获取或处理的数据,可能在这样的处理或检索之后传递给显示器220。本地处理和数据模块260可以通过通信链路262或264(诸如经由有线或无线通信链路)可操作地耦接到远程处理模块270或远程数据储存库280,使得这些远程模块作为资源可用于本地处理和数据模块260。另外,远程处理模块280和远程数据储存库280可以可操作地相互耦接。
在一些实施例中,远程处理模块270可以包括一个或多个处理器,其被配置为分析和处理数据或图像信息。在一些实施例中,远程数据储存库280可以包括数字数据存储设施,其可以通过互联网或其它网络配置以“云”资源配置而可用。在一些实施例中,在本地处理和数据模块中存储全部数据,并且执行全部计算,允许从远程模块完全自主使用。
可穿戴系统的示例组件
图3示意性地示出了可穿戴系统的示例组件。图3示出了可穿戴系统200,其可包括显示器220和框架230。放大的图202示意性地示出了可穿戴系统200的各种组件。在某些实现中,图3中示出的组件中的一个或多个可以是显示器220的一部分。单独或以组合方式的各种组件可以收集与可穿戴系统200的用户或用户的环境相关联的各种数据(例如,音频或视觉数据)。应当理解,取决于使用该可穿戴系统的应用,其他实施例可以具有附加的或更少的组件。然而,图3提供了各种组件和可以通过可穿戴系统收集、分析和存储的数据的类型中的一些的基本概念。
图3示出了示例可穿戴系统200,可以包括显示器220。显示器220可以包括显示器透镜226,该显示器透镜226可以安装到用户的头部或壳体或框架230,壳体或框架230对应于框架230。显示透镜226可包括一个或多个透明镜,该一个或多个透明镜由壳体230定位在用户眼睛302、304的前方,并可以被配置为将投射的光338反射到眼睛302、304中并促进光束成形,同时还允许来自本地环境的至少一些光透射。投射的光束338的波前可以被弯曲或聚焦以与投射的光的期望焦距一致。如图所示,两个宽视场机器视觉相机316(也被称为世界相机)可以耦接到壳体230以对用户周围的环境成像。这些相机316可以是双捕获可见光/不可见(例如,红外)光相机。相机316可以是图4中示出的面向外的成像系统464的一部分。由世界相机316获取的图像可以由姿势处理器336处理。例如,姿势处理器336可以实现一个或多个对象识别器708(例如,图7所示)以便识别用户或用户环境中的另一人的姿势或者以便识别用户环境中的物理对象。
继续参考图3,示出了一对扫描激光成形波前(例如,用于深度)光投射器模块,其具有被配置为将光338投射到眼睛302、304中的显示镜和光学器件。所描绘的视图还示出与红外光(例如发光二极管“LED”)配对的两个微型红外相机324,该红外相机324被配置为能够跟踪用户的眼睛302、304以支持渲染和用户输入。相机324可以是图4中示出的面向内的成像系统462的一部分。可穿戴系统200以优选地以相对高的频率(例如200Hz)提供数据的传感器组件339为特征,该组件339可包括X、Y和Z轴加速度计能力以及磁罗盘和X、Y和Z轴陀螺仪能力。传感器组件339可以是参考图2A描述的IMU的一部分。所描绘的系统200还可以包括例如ASIC(专用集成电路)、FPGA(现场可编程门阵列)或ARM处理器(高级精简指令集机器)的头部姿势处理器336,该头部姿势处理器336可以被配置根据从捕获装置16输出的宽视场图像信息来计算实时或接近实时的用户头部姿势。头部姿势处理器336可以是硬件处理器,并且可以被实现作为图2A所示的本地处理和数据模块260的一部分。
可穿戴系统还可包括一个或多个深度传感器234。深度传感器234可被配置为测量环境中的对象到可穿戴装置之间的距离。深度传感器234可包括激光扫描仪(例如,激光雷达)、超声深度传感器或深度感测相机。在某些实现方式中,在相机316具有深度感测能力的情况下,相机316也可以被认为是深度传感器234。
还示出了处理器332,其被配置为执行数字或模拟处理以从来自传感器组件339的陀螺仪、罗盘或加速度计数据中得出姿势。处理器332可以是图2中示出的本地处理和数据模块260的一部分。图3中示出的可穿戴系统200还可以包括诸如GPS 337(全球定位系统)的定位系统,以辅助姿势和定位分析。另外,GPS可以进一步提供关于用户环境的基于远程的(例如,基于云的)信息。此信息可用于识别用户环境中的对象或信息。
可穿戴系统可以将由GPS 337获取的数据与可以提供有关用户环境的更多信息的远程计算系统(例如,远程处理模块270、另一用户的ARD等)组合。作为一个示例,可穿戴系统可以基于GPS数据确定用户的位置,并检索包括与用户的位置相关联的虚拟对象的世界地图(例如,通过与远程处理模块270通信)。作为另一示例,可穿戴系统200可以使用世界相机316(其可以是图4所示的面向外的成像系统464的一部分)来监视环境。基于由世界相机316获取的图像,可穿戴系统200可以检测环境中的对象(例如,通过使用图7所示的一个或多个对象识别器708)。可穿戴系统可以进一步使用由GPS 337获取的数据来解释字符。
可穿戴系统200还可以包括渲染引擎334,该渲染引擎334可以被配置为提供对用户而言是本地的渲染信息,以促进扫描仪的操作和到用户的眼睛中的成像,以用于用户对世界的观看。渲染引擎334可以由硬件处理器(例如,中央处理单元或图形处理单元)实现。在一些实施例中,渲染引擎是本地处理和数据模块260的一部分。渲染引擎334可以可通信地耦接(例如,经由有线或无线链路)到可穿戴系统200的其他组件。例如,渲染引擎334可以经由通信链路274耦接到眼睛摄像机324,并且可以经由通信链路272耦接到投影子系统318(其可以以类似于视网膜扫描显示器的方式经由扫描的激光布置将光投射到用户的眼睛302、304中)。渲染引擎334还可以分别经由链路276和294与其他处理单元通信,其他处理单元例如为传感器姿势处理器332和图像姿势处理器336。
相机324(例如,最小红外相机)可被用于跟踪眼睛姿势以支持渲染和用户输入。一些示例眼睛姿势可以包括用户正在看的地方或者他或她正在聚焦的深度-(可以使用眼睛聚散度来对其进行估计)。GPS 337、陀螺仪、指南针和加速度计339可被用于提供粗略或快速姿态估计。相机316中的一个或多个可以获取图像和姿势,这些图像和姿势与来自关联的云计算资源的数据结合可以用于映射(map)本地环境并与其他用户共享用户视图。
图3中所描绘的示例性组件仅用于说明目的。为了便于说明和描述,一起示出了多个传感器和其他功能模块。一些实施例可以仅包括这些传感器或模块中的一个或子集。此外,这些组件的位置不限于图3所示的位置。一些组件可以被安装到其他组件中或被容纳在其他组件内,其他组件例如为腰带安装的组件、手持式组件或头盔组件。作为一个示例,图像姿势处理器336、传感器姿势处理器332和渲染引擎334可以被定位在腰包中,并被配置为经由无线通信或经由有线通信与可穿戴系统的其他组件通信,无线通信例如为超宽带、Wi-Fi、蓝牙等。所描绘的壳体230优选地是由用户可头戴的和可穿戴的。然而,可穿戴系统200的一些组件可以被穿戴到用户身体的其他部位。例如,扬声器240可以被插入用户的耳朵中以向用户提供声音。
关于将光338投射到用户的眼睛302、304中,在一些实施例中,相机324可以用于测量用户眼睛的中心在几何上被倾斜(verge)到的位置,通常,该位置与眼睛的聚焦位置或“聚焦深度”一致。眼睛倾斜到的所有点的三维表面可以被称为“双眼单视界(horopter)”。焦距可以采用有限数量的深度或者可能是无限变化的。从聚散距离投射的光看起来聚焦到对象眼睛302、304,而聚散距离前面或后面的光被模糊。在美国专利公开No.2016/0270656中也描述了本公开的可穿戴装置和其他显示系统的示例,其全部内容通过引用合并于此。
人类视觉系统复杂,并且提供深度的逼真感知是具挑战性的。对象的观看者可能由于聚散度和适应组合而将该对象感知为“三维的”。两只眼睛相对于彼此的聚散运动(例如,瞳孔朝向彼此或远离彼此的滚动运动,以会聚眼睛的眼睛注视来注视对象)与眼睛晶状体的聚焦(或“适应”)密切相关。在正常情况下,改变眼睛晶状体的焦点或使眼睛适应,以将焦点从一个对象改变到在不同距离处的另一个对象,这将会在被称为“适应-聚散度反射(accommodation-vergence reflex)”的关系下自动地导致到相同的距离的聚散度的匹配改变。同样,在正常情况下,聚散度的改变将引发适应的匹配改变。提供适应和聚散度之间的更好匹配的显示系统可以形成更逼真且舒适的三维图像模拟。
此外,无论眼睛聚焦在何处,人眼都能正确地分辨出光束直径小于约0.7毫米的空间相干光。由此,为了产生适当聚焦深度的错觉,可以利用相机324跟踪眼睛聚散,并且可以利用渲染引擎334和投影子系统318来渲染在对焦的双眼单视界上或靠近双眼单视界的所有对象以及不同程度的散焦处所有其他对象(例如,使用有意创建的模糊)。优选地,系统220以大约每秒60帧或更高的帧速率向用户呈现。如上所述,优选地,相机324可以用于眼睛跟踪,并且软件可以被配置为不仅拾取聚散几何而且还有聚焦位置提示以用作用户输入。优选地,这种显示系统配置有适合白天或夜晚使用的亮度和对比度。
在一些实施例中,显示系统优选地具有关于视觉对象对准的小于约20毫秒的延迟时间、小于约0.1度的角度对准以及约1弧分的分辨率,不受理论限制,这被认为是大约是人眼的极限。显示系统220可以与定位系统集成以辅助位置和姿态确定,该定位系统可以涉及GPS元件、光学跟踪、罗盘、加速度计或其他数据源;可以利用定位信息来促进在相关世界的用户视图中的准确呈现(例如,这样的信息将促进眼镜知道他们相对于真实世界的位置)。
在一些实施例中,可穿戴系统200被配置为基于用户眼睛的适应来显示一个或多个虚拟图像。与先前的迫使用户聚焦正被投射的图像的位置处的3D显示方法不同,在一些实施例中,可穿戴系统被配置为自动改变被投射的虚拟内容的焦点以允许更舒适地观看呈现给用户的一个或多个图像。例如,如果用户的眼睛具有1米的当前焦点,则可以投射图像以与用户的焦点一致。如果用户将焦点移位3米,则投射图像以与新焦点一致。因此,一些实施例的可穿戴系统200允许用户的眼睛以更自然的方式工作,而不是迫使用户进入预定的焦点。
这种可穿戴系统200可以消除或减少眼睛疲劳、头痛和通常相对于虚拟现实装置观察到的其他生理症状的发生率。为实现此目的,可穿戴系统200的各种实施例被配置为通过一个或多个可变焦点元件(VFE)以变化的焦距投射虚拟图像。在一个或多个实施例中,可以通过在远离用户的固定焦平面处投射图像的多平面聚焦系统来实现3D感知。其他实施例采用可变平面聚焦,其中焦平面在z方向上来回移动以与用户的当前聚焦状态一致。
在多平面聚焦系统和可变平面聚焦系统中,可穿戴系统200可以采用眼睛跟踪来确定用户眼睛的聚散度、确定用户的当前焦点以及将虚拟图像投射到确定的焦点。在其他实施例中,可穿戴系统200包括光调制器,该光调制器通过光纤扫描仪或其他光生成源跨视网膜以光栅模式可变地投射具有不同聚焦的光束。因此,如在美国专利公开No.2016/0270656中进一步描述的,可穿戴系统200的显示器以变化的焦距投射图像的能力不仅减轻了用户观看3D对象的适应,而且还可以用来补偿用户的眼部异常,该专利公开的通过引用整体合并于此。在一些其他实施例中,空间光调制器可以通过各种光学组件将图像投射到用户。例如,如下文进一步所述,空间光调制器可以将图像投射到一个或多个波导上,然后将其传输给用户。
波导堆叠组件
图4示出了用于将图像信息输出给用户的波导堆叠的示例。可穿戴系统400包括波导堆叠或堆叠波导组件480,其可用于使用多个波导432b、434b、436b、438b、4400b向眼睛/大脑提供三维感知。在一些实施例中,可穿戴系统400可以对应于图2的可穿戴系统200,图4更详细地示意性地示出了该可穿戴系统200的一些部分。例如,在一些实施例中,波导组件480可以被集成到图2的显示器220中。
继续参考图4,波导组件480可以还包括位于波导之间的多个特征458、456、454、452。在一些实施例中,特征458、456、454、452可以是透镜。在其它实施例中,特征458、456、454、452可以不是透镜。相反,它们可以简单地是间隔物(例如,包层和/或用于形成气隙的结构)。
波导432b、434b、436b、438b、440b或多个透镜458、456、454、452可以被配置为以各种水平的波前曲率或光线发散度向眼睛发送图像信息。每个波导水平可以与特定深度平面相关联,并且可以被配置为输出对应于该深度平面的图像信息。图像注入装置420、422、424、426、428可用于将图像信息注入到波导440b、438b、436b、434b、432b中,每个波导可以被配置为分配入射光穿过每个相应的波导以便朝着眼睛410输出。光从图像注入装置420、422、424、426、428的输出表面射出,并且被注入到波导440b、438b、436b、434b、432b的相应输入边缘。在一些实施例中,可以将单个光束(例如准直光束)注入到每个波导中,以输出克隆的准直光束的整个场,这些克隆的准直光束以对应于与特定波导相关联的深度平面的特定角度(和发散量)朝向眼睛410定向。
在一些实施例中,图像注入装置420、422、424、426、428是分立的显示器,每个显示器产生用于分别注入到相应波导440b、438b、436b、434b、432b中的图像信息。在一些其它实施例中,图像注入装420、422、424、426、428是单个多路复用显示器的输出端,其可以例如经由一个或多个光导管(例如光纤电缆)将图像信息管道传输到图像注入装置420、422、424、426、428中的每一者。
控制器460控制堆叠波导组件480和图像注入装置420、422、424、426、428的操作。控制器460包括编程(例如,非暂时性计算机可读介质中的指令),该编程调节到波导440b、438b、436b、434b、432b的图像信息的定时和提供。在一些实施例中,控制器460可以是单个整体设备,或者是通过有线或无线通信信道连接的分布式系统。在一些实施例中,控制器460可以是处理模块260或270(如图2所示)的部分。
波导440b、438b、436b、434b、432b可以被配置为通过全内反射(TIR)在每一个相应的波导内传播光。波导440b、438b、436b、434b、432b可以各自是平面的或具有其它形状(例如,弯曲),具有顶部和底部主表面以及在这些顶部和底部主表面之间延伸的边缘。在所示的配置中,波导440b、438b、436b、434b、432b可以各自包括光提取光学元件440a、438a、436a、434a、432a,这些光提取光学元件被配置为通过将每一个相应波导内传播的光重定向而将光提取到波导外,以向眼睛410输出图像信息。提取的光也可以被称为耦出光,并且光提取光学元件也可以被称为耦出光学元件。提取的光束在波导中传播的光照射光重定向元件的位置处被波导输出。光提取光学元件(440a、438a、436a、434a、432a)可以例如是反射或衍射光学特征。虽然为了便于描述和清晰绘图起见而将其图示设置在波导440b、438b、436b、434b、432b的底部主表面处,但是在一些实施例中,光提取光学元件440a、438a、436a、434a、432a可以设置在顶部或底部主表面处,或可以直接设置在波导440b、438b、436b、434b、432b的体积中。在一些实施例中,光提取光学元件440a、438a、436a、434a、432a可以形成在被附接到透明基板的材料层中以形成波导440b、438b、436b、434b、432b。在一些其它实施例中,波导440b、438b、436b、434b、432b可以是单片材料,并且光提取光学元件440a、438a、436a、434a、432a可以形成在那片材料的表面上或那片材料的内部中。
继续参考图4,如本文所讨论的,每一个波导440b、438b、436b、434b、432b被配置为输出光以形成与特定渲染平面对应的图像。例如,最接近眼睛的波导432b可以被配置为将如注入到这种波导432b中的准直光传送到眼睛410。准直光可以表示光学无限远焦平面。下一上行波导434b可以被配置为将传输通过第一透镜452(例如,负透镜)的准直光在其可以到达眼睛410之前发出。第一透镜452可以被配置为产生轻微凸面的波前曲率,使得眼睛/大脑将来自该下一上行波导434b的光解释为来自第一焦平面,该第一焦平面从光学无限远处向内更靠近眼睛410。类似地,第三上行波导436b将输出光在到达眼睛410之前传输通过第一透镜452和第二透镜454。第一透镜452和第二透镜454的组合光焦度(optical power)可被配置为产生波前曲率的另一增量,以使得眼睛/大脑将来自第三波导436b的光解释为来自第二焦平面,该第二焦平面从光学无穷远比来自所述下一上行波导434b的光更向内靠近人。
其它波导层(例如,波导438b、440b)和透镜(例如,透镜456、458)被类似地配置,其中堆叠中的最高波导440b通过它与眼睛之间的全部透镜发送其输出,用于表示最靠近人的焦平面的总(aggregate)焦度。当在堆叠波导组件480的另一侧上观看/解释来自世界470的光时,为了补偿透镜458、456、454、452的堆叠,补偿透镜层430可以被设置在堆叠的顶部处以补偿下面的透镜堆叠458、456、454、452的总焦度。这种配置提供了与可用波导/透镜配对一样多的感知焦平面。波导的光提取光学元件和透镜的聚焦方面可以是静态的(例如,不是动态的或电激活的)。在一些替代实施例中,两者之一或者两者都可以使用电激活特征而为动态的。
继续参考图4,光提取光学元件440a、438a、436a、434a、432a可以被配置为将光重定向出它们各自的波导并且针对与波导相关联的特定深度平面以适当的发散量或准直度输出该光。结果,具有不同相关联深度平面的波导可具有不同的光提取光学元件配置,其取决于相关联的深度平面而输出具有不同发散量的光。在一些实施例中,如本文所讨论的,光提取光学元件440a、438a、436a、434a、432a可以是体积或表面特征,其可以被配置为以特定角度输出光。例如,光提取光学元件440a、438a、436a、434a、432a可以是体积全息图、表面全息图和/或衍射光栅。在2015年6月25日公开的美国专利公开No.2015/0178939中描述了诸如衍射光栅的光提取光学元件,其通过引用全部并入本文中。
在一些实施例中,光提取光学元件440a、438a、436a、434a、432a是形成衍射图案的衍射特征或“衍射光学元件”(本文中也称为“DOE”)。优选地,DOE具有相对较低的衍射效率,以使得仅光束的一部分通过DOE的每一个交点偏转向眼睛410,而其余部分经由全内反射继续移动通过波导。携带图像信息的光因此可被分成多个相关的出射光束,这些出射光束在多个位置处离开波导,并且该结果对于在波导内反弹的该特定准直光束是朝向眼睛304的相当均匀图案的出射发射。
在一些实施例中,一个或多个DOE可以在它们活跃地衍射的“开”状态和它们不显著衍射的“关”状态之间可切换。例如,可切换的DOE可以包括聚合物分散液晶层,其中微滴在基体介质中包含衍射图案,并且微滴的折射率可以被切换为基本上匹配基体材料的折射率(在这种情况下,图案不明显地衍射入射光),或者微滴可以被切换为与基体介质的折射率不匹配的折射率(在这种情况下,该图案活跃地衍射入射光)。
在一些实施例中,深度平面的数量和分布或景深可以基于观看者的眼睛的瞳孔大小或取向而动态地改变。景深可以与观看者的瞳孔大小成反比地改变。因此,随着观看者眼睛的瞳孔大小减小时,景深增加,使得由于一个平面的位置超出了眼睛的焦点深度而不可辨别的该平面可能变得可辨别,并且随着瞳孔大小的减小表现为更聚焦,而且与景深的增加相称。同样地,用于向观看者呈现不同图像的间隔开的深度平面的数量可以随着瞳孔大小的减小而减小。例如,观看者在不将眼睛的适应从一个深度平面调整到另一个深度平面的情况下,可能不能以一个瞳孔大小清楚地感知第一深度平面和第二深度平面两者的细节。然而,这两个深度平面可以在不改变适应的情况下,对于处于另一瞳孔大小的用户同时充分地聚焦。
在一些实施例中,显示系统可以基于瞳孔大小或取向的确定,或在接收到指示特定瞳孔大小或取向的电信号时,改变接收图像信息的波导的数量。例如,如果用户的眼睛不能区分与两个波导相关联的两个深度平面,则控制器460(其可以是本地处理和数据模块260的实施例)可以被配置或编程为停止向这些波导中的一个提供图像信息。有利地,这可以减轻系统的处理负担,从而增加系统的响应性。在其中用于一波导的DOE可在接通和关断状态之间切换的实施例中,当波导确实接收图像信息时,DOE可以被切换到关断状态。
在一些实施例中,可能期望使出射光束满足直径小于观看者眼睛直径的条件。然而,考虑到观看者的瞳孔大小的可变性,满足这种条件可能是具有挑战性的。在一些实施例中,通过响应于观看者的瞳孔大小的确定而改变出射光束的大小,该条件在宽范围的瞳孔大小上满足。例如,随着瞳孔大小减小,出射光束的大小也可以减小。在一些实施例中,可以使用可变光圈来改变出射光束大小。
可穿戴系统400可包括面向外的成像系统464(例如,数字相机),其对世界470的一部分进行成像。世界470的该部分可被称为世界相机的视野(FOV),并且成像系统464有时被称为FOV相机。世界相机的FOV可以与观看者210的FOV相同或不同,该观看者210的FOV包含观察者210在给定时间感知的世界470的一部分。例如,在一些情况下,世界相机的FOV可以大于可穿戴系统400的观看者210的观看者210。可供观看者观看或成像的整个区域可被称为能视域(FOR)。因为佩戴者可以移动他的身体、头部或眼睛以感知空间中的基本上任何方向,FOR可以包括围绕可穿戴系统400的立体角的4π球面度。在其它情况下,佩戴者的运动可能更受限制,相应地,佩戴者的FOR可以对着更小的立体角。从面向外的成像系统464获得的图像可用于跟踪用户做出的手势(例如手或手指的姿势),检测用户前方的世界470中的对象等等。
可穿戴系统400可以包括音频传感器232,例如麦克风,以捕获环境声音。如上所述,在一些实施例中,可以定位一个或多个其他音频传感器以提供对确定语音源的位置有用的立体声接收。作为另一示例,音频传感器232可以包括定向麦克风,该音频传感器还可以提供关于音频源的位置的有用的方向信息。可穿戴系统400可以在定位语音源时或者为了在特定时刻确定活动的讲话者等,而使用来自面向外的成像系统464和音频传感器230的信息。例如,可穿戴系统400可以单独地使用语音识别,或者与讲话者的反射图像(例如,在镜子中看到的)结合来使用语音识别以确定讲话者的身份。作为另一示例,可穿戴系统400可以基于从定向麦克风获取的声音来确定讲话者在环境中的位置。可穿戴系统400可以使用语音识别算法解析来自讲话者的位置的声音,以确定语音内容并使用语音识别技术来确定讲话者的身份(例如,姓名或其他人口统计学信息)。
可穿戴系统400还可以包括面向内的成像系统466(例如,数码相机),其观察用户的运动,诸如眼睛运动和面部运动。面向内的成像系统466可以用于捕获眼睛410的图像以确定眼睛304的瞳孔的大小和/或取向。面向内的成像系统466可以用于获得图像,用于确定用户正在观看的方向(例如,眼睛姿势)或用于用户的生物测定识别(例如,经由虹膜识别)。在一些实施例中,可以为每只眼睛利用至少一个相机,以独立地分别确定每只眼睛的瞳孔大小或眼睛姿势,由此允许向每只眼睛呈现图像信息以动态地适合该眼睛。在一些其它实施例中,仅单个眼睛410的瞳孔直径或取向(例如,每对眼睛仅使用单个相机)被确定并假定对于用户的双眼是相似的。可以分析由面向内的成像系统466获得的图像以确定用户的眼睛姿势或情绪,其可由可穿戴系统400使用来决定应该向用户呈现哪些音频或视觉内容。可穿戴系统400还可以使用诸如IMU、加速度计、陀螺仪等的传感器来确定头部姿势(例如,头部位置或头部取向)。
可穿戴系统400可以包括用户输入设备466,通过该用户输入设备466用户可以向控制器460输入命令以与可穿戴系统400交互。例如,用户输入设备466可以包括触控板、触摸屏、操纵杆、多自由度(DOF)控制器、电容感测设备、游戏控制器、键盘、鼠标、方向垫(D-pad)、魔杖、触觉设备、图腾(例如,用作虚拟用户输入设备)等等。多DOF控制器可以感测控制器的部分或全部可能的平移(例如,左/右、前/后、或上/下)或旋转(例如,偏航、俯仰或翻滚)方面的用户输入。支持平移运动的多DOF控制器可以被称为3DOF,而支持平移和旋转的多DOF控制器可以被称为6DOF。在一些情况下,用户可以使用手指(例如,拇指)在触敏输入设备上按压或轻扫以向可穿戴系统400提供输入(例如,以将用户输入提供给由可穿戴系统400提供的用户界面)。用户输入设备466可以在使用可穿戴系统400期间由用户的手保持。用户输入设备466可以与可穿戴系统400进行有线或无线通信。
可穿戴系统的其它组件
在许多实现方式中,可穿戴系统可以包括其它组件,作为上述可穿戴系统的组件的补充或替代。可穿戴系统例如可以包括一个或多个触觉设备或组件。触觉设备或组件可以用于向用户提供触觉。例如,触觉设备或组件可以在触摸虚拟内容(例如,虚拟对象、虚拟工具、其它虚拟构造)时提供压力或纹理的触觉。触觉可以复制虚拟对象表示的物理对象的感觉,或者可以复制虚拟内容表示的想象的对象或角色(例如,龙)的感觉。在一些实现方式中,触觉设备或组件可由用户穿戴(例如,用户可穿戴的手套)。在一些实现方式中,触觉设备或组件可以由用户保持。
可穿戴系统例如可以包括可由用户操纵的一个或多个物理对象以允许输入或与可穿戴系统进行交互。这些物理对象在本文中可以被称为图腾。一些图腾可采取无生命对象的形式,诸如例如金属或塑料块、墙壁、桌子的表面。在某些实现方式中,图腾可能实际上不具有任何物理输入结构(例如,键、触发器、操纵杆、轨迹球、摇杆开关)。相反,图腾可以简单地提供物理表面,并且可穿戴系统可以呈现用户界面,以便对于用户而言看起来在图腾的一个或多个表面上。例如,可穿戴系统可以使计算机键盘和触控板的图像看起来驻留在图腾的一个或多个表面上。例如,可穿戴系统可以使虚拟计算机键盘和虚拟触控板看起来在作为图腾的铝的薄矩形板的表面上。矩形板本身没有任何物理键或触控板或传感器。然而,可穿戴系统可以检测用户操纵或交互或触摸该矩形板作为经由虚拟键盘或虚拟触控板进行的选择或输入。用户输入设备466(在图4中示出)可以是图腾的实施例,其可以包括触控板、触摸板、触发器、操纵杆、轨迹球、摇杆或虚拟开关、鼠标、键盘、多自由度控制器或另一物理输入设备。用户可以单独或与姿势结合使用图腾,以与可穿戴系统或其它用户进行交互。
在美国专利公开No.2015/0016777中描述了可用于本公开的可穿戴装置、HMD和显示系统的触觉设备和图腾的示例,其全部内容通过引用并入本文中。
用户与可穿戴系统交互的示例过程
图5是用于与虚拟用户界面进行交互的方法500的示例的过程流程图。方法500可以由本文描述的可穿戴系统执行。方法500的实施例可以由可穿戴系统用来检测可穿戴系统的FOV中的人或文档。
在框510处,可穿戴系统可识别特定UI。UI的类型可以由用户预先确定。可穿戴系统可以基于用户输入(例如,姿势、视觉数据、音频数据、传感数据、直接命令等)识别需要填充特定UI。UI可以特定于安全场景,其中,系统的佩戴者正在观察向佩戴者呈现文档的用户(例如,在旅行检查站)。在框520处,可穿戴系统可以生成用于虚拟UI的数据。例如,可以生成与UI的界限、一般结构、形状等相关联的数据。另外,可穿戴系统可以确定用户的物理位置的地图坐标,使得可穿戴系统可以显示与用户的物理位置有关的UI。例如,如果UI以身体为中心,则可穿戴系统可以确定用户的身体站姿(physical stance)、头部姿势或眼睛姿势的坐标,使得可以在用户周围显示环形UI,或者可以在墙壁上或在用户前面显示平面UI。在本文所述的安全上下文中,可以将UI显示为好像UI围绕正在向系统的佩戴者呈现文档的旅行者一样,以使得佩戴者可以在查看旅行者和旅行者的文档时轻松查看UI。如果UI以手为中心,则可以确定用户的手的地图坐标。这些地图点可以从通过FOV相机接收的数据、传感输入或任何其它类型的收集数据得到。
在框530处,可穿戴系统可以从云向显示器发送数据,或者数据可以从本地数据库被发送到显示组件。在框540处,基于发送的数据向用户显示UI。例如,光场显示器可以将虚拟UI投射到用户的一只或两只眼睛中。在框550处,一旦创建了虚拟UI,可穿戴系统只需等待来自用户的命令以在虚拟UI上生成更多虚拟内容。例如,UI可以是围绕用户身体或者用户环境中的人(例如,旅行者)的身体的以身体为中心的环。然后,可穿戴系统可以等待命令(姿势、头部或眼睛运动、语音命令、来自用户输入装置的输入等),并且如果它被识别(框560),可以向用户显示与该命令相关联的虚拟内容(框570)。
混合现实中的化身渲染的示例
可穿戴系统可以采用各种与地图绘制相关的技术,以便在所呈现的光场中实现高景深。在绘制出虚拟世界时,了解真实世界中的所有特征和点以准确描绘与真实世界相关的虚拟对象是有利的。为此,可以通过包括传达关于真实世界的各种点和特征的信息的新图片,将从可穿戴系统的用户捕获的FOV图像添加到世界模型。例如,可穿戴系统可以收集一组地图点(诸如2D点或3D点)并找到新的地图点以呈现的世界模型的更精确版本。可以将第一用户的世界模型(例如,通过诸如云网络的网络)传达给第二用户,使得第二用户可以体验围绕第一用户的世界。
图6A是可穿戴系统的另一示例的框图,该可穿戴系统可以包括在混合现实环境中的化身处理和渲染系统690。可穿戴系统600可以是图2所示的可穿戴系统200的一部分。在该示例中,可穿戴系统600可以包括地图620,其可以包括地图数据库710(图7所示)中的数据的至少一部分。该映射可以部分地本地驻留在可穿戴系统上,并且可以部分地驻留在可以由有线或无线网络访问的网络存储位置(例如,在云系统中)。姿势过程610可以在可穿戴计算架构(例如,处理模块260或控制器460)上执行,并利用来自620映射的数据以确定可穿戴计算硬件或用户的位置和取向。可以从用户正在体验系统并在世界中操作时即时收集的数据中计算姿势数据。数据可以包括图像、来自传感器(诸如惯性测量单元,其通常包括加速度计和陀螺仪组件)的数据和与真实或虚拟环境中的对象相关的表面信息。
稀疏点表示可以是同时定位和映射(例如,SLAM或vSLAM,指的是其中输入仅是图像/视觉的配置)过程的输出。该系统可以被配置为不仅可以找出世界上各种组件的位置,而且还可以找出世界由什么组成。姿势可以是实现方式许多目标的构建块,包括填充(populate)映射和使用映射中的数据。
在一个实施例中,稀疏点位置本身可能不完全足够,并且可能需要进一步的信息来产生多焦点AR、VR或MR体验。通常表示为深度映射信息的密集表示可以用于至少部分地填充该间隙。可以从称为立体640的过程计算这样的信息,其中使用诸如三角测量或飞行时间感测的技术来确定深度信息。图像信息和活动图案(诸如使用活动投影仪创建的红外图案)、从图像相机获取的图像或手部手势/图腾650可以用作立体过程640的输入。可以将大量深度映射信息融合在一起,并且可以用表面表示来概括其中的一些。例如,数学上可限定的表面可以是有效的(例如,相对于大点云)并且可以是对诸如游戏引擎的其他处理装置的可消化的输入。因此,立体过程的输出(例如,深度映射)640可以在融合过程630中组合。姿势610也可以是该融合过程630的输入,并且融合630的输出成为填充映射过程620的输入。子表面可以彼此连接,诸如在地形映射中,以形成更大的表面,并且映射变成点和表面的大混合。
为了解决混合现实过程660中的各个方面,可以使用各种输入。例如,在图6A所示的实施例中,游戏参数可以是输入以确定系统的用户正在与各个位置处的一个或多个怪物、在各种条件下死亡或逃跑(诸如如果用户射击怪物)的怪物、墙壁或者在不同位置处的其他对象等玩怪物战斗游戏。世界映射可以包括关于对象的位置或对象的语义信息的信息(例如分类,诸如对象是平坦的或圆形的、水平的或垂直的、是桌子或灯等),并且该世界映射是到混合现实的另一个有价值的输入。相对于世界的姿势也成为输入,并且几乎对任何交互系统起着关键作用。
来自用户的控制或输入是到可穿戴系统600的另一输入。如本文所述,用户输入可以包括视觉输入、手势、图腾、音频输入、感官输入等。为了在周围移动或玩游戏,例如,用户可能需要向可穿戴系统600指示关于他或她想要做什么。除了在空间中移动自己之外,还可以使用各种形式的用户控制。在一个实施例中,图腾(例如,用户输入装置)或诸如玩具枪的对象可以由用户握持并由系统跟踪。该系统优选地将被配置为知道用户正在握持物品并且理解用户与物品进行何种交互(例如,如果图腾或对象是枪,则系统可以被配置为理解位置和取向以及用户是否正在点击触发器或其他可能配备有例如IMU的传感器的感测按钮或元件,这可能有助于确定正在发生的事情,即使此类活动不在任何相机的视场之内)。
手姿势跟踪或辨别也可以提供输入信息。可穿戴系统600可以被配置为跟踪和解释用于按钮按压、用于向左或向右作出手势、停止、抓取、握持等的手姿势。例如,在一种配置中,用户可能想要在非游戏环境中翻阅电子邮件或日历或者与其他人或玩家做“拳头碰撞”。可穿戴系统600可以被配置为利用最小量的手姿势,其可以是动态的,也可以不是动态的。例如,手姿势可以是简单的静态姿势,例如,用于停止的张开手、用于表示好(ok)的拇指向上、用于表示不好的拇指向下、或者用于方向命令的用手向右或向左或向上/向下翻转。
眼睛跟踪是另一输入(例如,跟踪用户正在看的位置以控制显示技术以在特定深度或范围呈现)。在一个实施例中,可以使用三角测量来确定眼睛的聚散,然后使用为该特定人物开发的聚散/适应模型,可以确定适应。眼睛跟踪可以由眼睛相机执行以确定眼睛注视(例如,一只或两只眼睛的方向或取向)。其他技术可以用于眼睛跟踪,诸如例如通过放置在眼睛附近的电极测量电位(例如,电眼图)。
话音跟踪可以是另一输入,该另一输入可以单独使用或与其他输入(例如,图腾跟踪、眼睛跟踪、手势跟踪等)组合使用。话音跟踪可以包括话音辨别、语音辨别或其组合。系统600可以包括从环境接收音频流的音频传感器(例如,麦克风)。系统600可以结合说话者辨别技术以确定谁在说话(例如,言语是否来自ARD的佩戴者或者来自另一个人或语音(例如,由环境中的扬声器发送的被记录的语音)),以及可以结合语音辨别技术以确定所说的内容。本地数据和处理模块260或远程处理模块270可以处理来自麦克风的音频数据(或另一流中的音频数据,例如,用户正在观看的视频流),以通过应用各种语音辨别算法来识别语音的内容,各种语音辨别算法例如隐马尔可夫模型、基于动态时间规整(DTW)的语音辨别、神经网络、例如深度前馈和递归神经网络的深度学习算法、端到端自动语音辨别、机器学习算法(参考图7描述)或使用声学建模或语言建模等的其他算法。
本地数据和处理模块260或远程处理模块270还可以应用语音辨别算法,该算法可以辨别说话者的身份,例如说话者是可穿戴系统600的用户210还是用户正在与其交谈的其他人。一些示例性语音辨别算法可以包括频率估计、隐马尔可夫模型、高斯混合模型、模式匹配算法、神经网络、矩阵表示、向量量化,说话者分类(diarisation)、决策树和动态时间规整(DTW)技术。语音辨别技术还可以包括反说话者(anti-speaker)技术,诸如群组模型和世界模型。频谱特征可以用于表示说话者特性。本地数据和处理模块或远程数据处理模块270可以使用参考图7描述的各种机器学习算法以执行语音辨别。
可穿戴系统的实现方式可以经由UI使用这些用户控件或输入。UI元素(例如,控件、弹出窗口、气泡、数据输入字段等)可以用于例如关闭信息的显示,例如,对象的图形或语义信息。
关于相机系统,图6A中所示的示例性可穿戴系统600包括三对相机:相对宽的FOV或被动SLAM相机对,其布置在用户的脸部的侧面;定向在用户的前方的不同的相机对以处理立体成像过程640并且还用于捕捉在用户面部的前方的手姿势和图腾/对象跟踪。FOV相机和用于立体过程640的相机对可以是面向外的成像系统464(如图4所示)的一部分。可穿戴系统600可以包括定向朝向用户的眼睛的眼睛跟踪相机(其可以是图4中所示的面向内的成像系统462的一部分),以便对眼睛向量和其他信息进行三角测量。可穿戴系统600还可以包括一个或多个纹理光投影仪(诸如红外(IR)投影仪)以将纹理注入场景中。
可穿戴系统600可以包括化身处理和渲染系统690。化身处理和渲染系统690可以被配置为基于上下文(contextual)信息来生成、更新、动画化和渲染化身。化身处理和渲染系统690中的一些或所有可以单独地或组合地实现为本地处理和数据模块260或远程处理模块262、264的一部分。在各种实施例中,多个化身处理和渲染系统690(例如,如在不同的可穿戴装置上实现的)可以用于渲染虚拟化身670。例如,第一用户的可穿戴装置可以用于确定第一用户的意图,而第二用户的可穿戴装置可以基于从第一用户的可穿戴装置接收的意图来确定化身的特征并渲染第一用户的化身。第一用户的可穿戴装置和第二用户的可穿戴装置(或其他这样的可穿戴装置)可以例如经由网络进行通信,如将参考图9A和9B所描述的。
图6B示出了示例化身处理和渲染系统690。化身处理和渲染系统690可以实现参照图11-14C描述的网格传递技术。示例化身处理和渲染系统690可以包括单独地或组合地3D模型处理系统680、上下文信息分析系统688、化身自动缩放器692、意图映射系统694、解剖调整系统698、刺激响应系统696。系统690旨在示出用于化身处理和呈现的功能,而并非旨在进行限制。例如,在某些实现方式中,这些系统中的一个或多个可以是另一系统的一部分。例如,上下文信息分析系统688的部分可以单独地或组合地是化身自动缩放器692、意图映射系统694、刺激响应系统696或解剖调整系统698的一部分。
上下文信息分析系统688可以被配置为基于参照图2和图3描述的一个或多个装置传感器来确定环境和对象信息。例如,上下文信息分析系统688可以使用由用户或用户的化身的观看者的面向外的成像系统464获取的图像来分析用户环境或其中渲染了用户的化身的环境中的环境和对象(包括物理或虚拟对象)。上下文信息分析系统688可以单独地或与从位置数据或世界地图(例如,地图620、710、910)获取的数据组合地分析这样的图像,以确定对象在环境中的位置和布局。上下文信息分析系统688通常还可以访问用户或人的生物学特征,以通常地用于真实地使虚拟化身670动画化。例如,上下文信息分析系统688可以生成不适感曲线,该不适感曲线可以被应用于化身,使得用户化身的身体的一部分(例如,头部)相对于用户身体的其他部分不会处于不舒适(或不真实)的位置(例如,化身的头部未旋转270度)。在某些实现方式中,一个或多个对象识别器708(图7所示)可以被实现作为上下文信息分析系统688的一部分。
化身自动缩放器692、意图映射系统694和刺激响应系统696以及解剖调整系统698可以被配置为基于上下文信息来确定化身的特征。化身的一些示例特征可以包括尺寸、外观、位置、取向、运动、姿势、表情等。化身自动缩放器692可以被配置为自动缩放化身,使得用户不必以不舒服的姿势看向化身。例如,化身自动缩放器692可以增加或减小化身的尺寸以将化身带到用户的眼睛水平,使得用户不需要分别向下看向化身或向上看向化身。意图映射系统694可以确定用户交互的意图并且基于渲染了化身的环境将意图映射到化身(而不是确切的用户交互)。例如,第一用户的意图可以是在远端临场会话中与第二用户通信(参见例如图9B)。典型地,两个人在交流时会面对面。第一用户的可穿戴系统的意图映射系统694可以确定在远端临场会话期间存在这样的面对面意图,并且可以使第一用户的可穿戴系统将第二用户的化身渲染为面对第一用户。如果第二用户要物理地转身,而不是将第二用户的化身渲染为处于转动的位置(这将导致第二用户的化身的背面被渲染给第一用户),则第一用户的意图映射系统694可以继续将第二化身的脸渲染给第一用户,这是远端临场会话的推断意图(例如,在此示例中的面对面意图)。
刺激响应系统696可以识别环境中的感兴趣的对象,并确定化身对感兴趣的对象的响应。例如,刺激响应系统696可以识别化身的环境中的声源,并自动转动化身以看向声源。刺激响应系统696还可以确定阈值终止条件。例如,刺激响应系统696可以使化身在声源消失之后或在经过一段时间之后回到其原始姿势。
解剖调整系统698可以被配置为基于生物学特征来调整用户的姿势。例如,解剖调整系统698可以被配置为基于不适感曲线来调整用户的头部与用户的躯干之间或用户的上半身与下半身之间的相对位置。
3D模型处理系统680可以被配置为使显示器220动画化并使其渲染虚拟化身670。3D模型处理系统680可以包括虚拟角色处理系统682和运动处理系统684。虚拟角色处理系统682可以被配置为生成和更新用户的3D模型(用于创建和动画化虚拟化身)。运动处理系统684可以被配置为使化身动画化,诸如例如通过改变化身的姿势、通过在用户的环境中四处移动化身、或通过使化身的面部表情动画化等。如将在本文中进一步描述的,可以使用操纵技术使虚拟化身动画化。在一些实施例中,化身以两个部分表示:用于渲染虚拟化身的外观的表面表示(例如,可变形的网格)和用于使网格动画化的互连关节的分级集合(例如,核心骨架)。在一些实现方式中,虚拟角色处理系统682可以被配置为编辑或生成表面表示,而运动处理系统684可以用于通过移动化身、使网格变形等来使化身动画化。例如,在一些实现方式中,然后,运动处理系统684执行下面参考图11A–14C描述的基础网格与目标网格的相匹配。
映射用户环境的示例
图7是MR环境700的示例的框图。MR环境700可以被配置为接收来自一个或多个用户可穿戴系统(例如,可穿戴系统200或显示系统220)或固定房间系统(例如,室内相机等)的输入(例如,来自用户的可穿戴系统的视觉输入702、诸如房间相机的固定输入704、来自各种传感器的传感器输入706、来自用户输入设备466的用户输入、手势、图腾、眼睛跟踪等)。可穿戴系统可以使用各种传感器(例如,加速度计、陀螺仪、温度传感器、移动传感器、深度传感器、GPS传感器、面向内的成像系统、面向外的成像系统等)来确定用户环境的位置和各种其它属性。该信息可以进一步补充有来自房间中的固定相机的信息,该相机可以从不同的视点提供图像或各种线索。由相机(诸如房间相机和/或面向外的成像系统的相机)获取的图像数据可以被缩减为映射点组。
一个或多个对象识别器708可以爬过(crawl through)接收到的数据(例如,点的集合)并且借助于地图数据库710来识别或映射点、标记图像,将语义信息附加到对象。地图数据库710可以包括随时间推移收集的各个点及其相应的对象。各种设备和地图数据库可以通过网络(例如LAN、WAN等)相互连接以访问云。
基于该信息和地图数据库中的点集合,对象识别器708a至708n可以识别环境中的对象。例如,对象识别器可以识别面部、人、窗户、墙壁、用户输入设备、电视、文件(例如,如本文安全示例中所述的旅行票、驾驶执照、护照)用户环境中的其它对象等。一个或多个对象识别器可以专用于具有特定特性的对象。例如,对象识别器708a可用于识别面部,而另一对象识别器可用于识别文件。
可以使用各种计算机视觉技术来执行对象识别。例如,可穿戴系统可以分析由面向外的成像系统464(如图4所示)获取的图像以执行场景重建、事件检测、视频跟踪、对象识别(例如,人或文件)、对象姿势估计、面部识别(例如,从环境中的人或从文件中的图像)、学习、索引、运动估计或图像分析(例如,识别诸如照片、签名、标识信息、旅行信息等文件内的标记等)等等。可以使用一种或多种计算机视觉算法来执行这些任务。计算机视觉算法的非限制性示例包括:尺度不变特征变换(SIFT)、加速鲁棒特征(SURF)、定向FAST和旋转BRIEF(ORB)、二进制鲁棒不变可扩展关键点(BRISK)、快速视网膜关键点(FREAK)、Viola-Jones算法、特征脸方法、Lucas-Kanade算法、Horn-Schunk算法,均值漂移(Mean-shift)算法、视觉同步定位与地图构建(vSLAM)技术、序列贝叶斯估计器(例如,卡尔曼滤波器、扩展卡尔曼滤波器等)、光束法平差(bundle adjustment)、自适应阈值分割(和其它阈值分割技术)、迭代最近点(ICP)、半全局匹配(SGM)、半全局块匹配(SGBM)、特征点直方图、各种机器学习算法(例如,支持向量机、k最近邻算法、朴素贝叶斯、神经网络(包括卷积或深度神经网络)或其它有监督/无监督模型等)等等。
附加地或替代地,对象识别可以通过各种机器学习算法来执行。一旦经过训练,机器学习算法就可以由HMD存储。机器学习算法的一些示例可以包括有监督或无监督机器学习算法,包括回归算法(例如,普通最小二乘回归)、基于实例的算法(例如,学习向量量化)、决策树算法(例如,分类和回归树)、贝叶斯算法(例如,朴素贝叶斯)、聚类算法(例如,k均值聚类)、关联规则学习算法(例如,先验算法)、人工神经网络算法(例如,感知机)、深度学习算法(例如,深度玻尔茨曼机或深度神经网络)、降维算法(例如例如,主成分分析)、集合算法(例如,堆栈泛化)和/或其它机器学习算法。在一些实施例中,可以针对各个数据集定制各个模型。例如,可穿戴装置可以生成或存储基础模型。基础模型可以用作生成特定于数据类型(例如,远端临场会话中的特定用户)、数据集(例如,在远端临场会话中从用户处获得的附加图像集)、条件情况或其它变化的附加模型的起点。在一些实施例中,可穿戴HMD可以被配置为利用多种技术来生成用于分析聚合数据的模型。其它技术可包括使用预定义的阈值或数据值。
基于该信息和地图数据库中的点的集合,对象识别器708a至708n可以识别对象并用语义信息补充对象以赋予对象生命。例如,如果对象识别器将一组点识别为门,则系统可以附加一些语义信息(例如,该门具有铰链并且具有围绕铰链的90度移动)。如果对象识别器将一组点识别为镜子,则系统可以附加这样的语义信息:该镜子具有可以反射房间中对象的图像的反射表面。语义信息可以包括本文所述的对象的功能可见性(affordance)。例如,语义信息可以包括对象的法线。系统可以分配一个向量,其方向指示对象的法线。随着时间的推移,地图数据库随着系统(其可以驻留在本地或可以通过无线网络访问)累积来自世界的更多数据而增长。一旦识别出对象,就可以将该信息发送到一个或多个可穿戴系统。例如,MR环境700可以包括关于在加利福尼亚发生的场景的信息。环境700可以被发送给纽约的一个或多个用户。基于从FOV相机和其它输入接收的数据,对象识别器和其它软件组件可以映射从各种图像收集的点、识别对象等,使得该场景可以准确地“传递”给可能在世界的不同部分的第二用户。环境700也可以使用拓扑图来实现本地化目的。
图8是呈现与所识别的对象相关的虚拟内容的方法800的示例的过程流程图。方法800描述了如何将虚拟场景呈现给可穿戴系统的用户。用户可能在地理上远离该场景。例如,用户可能在纽约,但可能想要观看当前正在加利福尼亚发生的场景,或者可能想要与居住在加利福尼亚的朋友散步。
在框810处,可穿戴系统可以从用户和其他用户接收关于用户的环境的输入。这可以通过各种输入设备和在地图数据库中已有的知识来实现。在框810处,用户的FOV相机、传感器、GPS、眼睛跟踪等向系统传送信息。在框820处,系统可以基于该信息确定稀疏点。稀疏点可用于确定姿势数据(例如,头部姿势、眼睛姿势、身体姿势或手部手势),这些数据可用于显示和理解用户周围环境中各种对象的取向和位置。在框830处,对象识别器708a-708n可以爬过这些收集的点并使用地图数据库识别一个或多个对象。然后可以在框840处将该信息传送给用户的个人可穿戴系统,并且可以在框850处相应地向用户显示所期望的虚拟场景。例如,可以相对于在纽约的用户的各种对象和其它环境以适当的取向、位置等显示所期望的虚拟场景(例如,位于CA的用户)。
多个可穿戴系统之间的示例通信
图9A示意性地示出了描绘彼此交互的多个用户装置的整体系统图。计算环境900包括用户装置930a、930b、930c。用户装置930a、930b和930c可以通过网络990彼此通信。用户装置930a-930c可以各自包括网络接口,以经由网络990与远程计算系统920进行通信(也可以包括网络接口971)。网络990可以是LAN、WAN、对等网络、无线电、蓝牙或任何其他网络。计算环境900还可以包括一个或多个远程计算系统920。远程计算系统920可以包括被群集的并且位于不同地理位置的服务器计算机系统。用户装置930a、930b和930c可以经由网络990与远程计算系统920通信。
远程计算系统920可以包括远程数据储存库980,其可以维持关于特定用户的物理和/或虚拟世界的信息。数据存储器980可以存储与用户、用户的环境(例如,用户环境的世界地图)或用户的化身的配置有关的信息。远程数据储存库可以是图2所示的远程数据储存库280的实施例。远程计算系统920还可以包括远程处理模块970。远程处理模块970可以是图2所示的远程处理模块270的实施例。远程处理模块970可以包括可以与用户装置(930a、930b、930c)和远程数据储存库980通信的一个或多个处理器。处理器可以处理从用户装置和其他源获得的信息。在一些实现方式中,处理或存储的至少一部分可以由本地处理和数据模块260(如图2所示)提供。远程计算系统920可以使给定用户能够与另一用户共享关于特定用户自己的物理和/或虚拟世界的信息。
用户装置可以是单独地或组合地的可穿戴装置(例如HMD或ARD)、计算机、移动装置或任何其他装置。例如,用户装置930b和930c可以是图2所示的可穿戴系统200(或图4所示的可穿戴系统400)的实施例,其可以被配置为呈现AR/VR/MR内容。
用户装置中的一个或多个可以与图4所示的用户输入装置466一起使用。用户装置可以获得关于用户和用户环境的信息(例如,使用图4所示的面向外的成像系统464)。用户装置和/或远程计算系统1220可以使用从用户装置获得的信息来构建、更新和建立图像、点和其他信息的集合。例如,用户装置可以处理获取的原始信息,并将处理后的信息发送到远程计算系统1220以进行进一步处理。用户装置还可以将原始信息发送到远程计算系统1220以进行处理。用户装置可以从远程计算系统1220接收处理后的信息,并在投射到用户之前提供最终处理。用户装置还可以处理获得的信息,并将处理后的信息传递给其他用户装置。用户装置可以在处理所获取的信息的同时与远程数据储存库1280通信。多个用户装置和/或多个服务器计算机系统可以参与所获取的图像的构造和/或处理。
关于物理世界的信息可以随着时间而发展并且可以基于由不同用户装置收集的信息。虚拟世界的模型也可能随着时间而发展,并基于不同用户的输入。这样的信息和模型有时在本文中可以被称为世界地图或世界模型。如参照图6和图7所述,由用户装置获取的信息可以用于构建世界地图910。世界地图910可以包括图6A中描述的地图620的至少一部分。各种对象识别器(例如708a、708b、708c…708n)可用于识别对象和标记图像以及将语义信息附到对象。这些对象识别器也在图7中描述。
远程数据储存库980可以用于存储数据并促进世界地图910的构建。用户装置可以不断地更新关于用户环境的信息并接收关于世界地图910的信息。世界地图910可以由用户或其他人创建。如本文所讨论的,用户装置(例如930a、930b、930c)和远程计算系统920可以单独地或组合地构造和/或更新世界地图910。例如,用户装置可以与远程处理模块970和远程数据储存库980通信。用户装置可以获取和/或处理关于用户和用户环境的信息。远程处理模块970可以与远程数据储存库980和用户装置(例如930a、930b、930c)通信,以处理关于用户和用户环境的信息。远程计算系统920可以修改由用户装置(例如,930a、930b、930c)获取的信息,例如,选择性地裁剪用户的图像、修改用户的背景、将虚拟对象添加到用户环境、用辅助信息注释用户的语音等。远程计算系统920可以将处理后的信息发送到相同和/或不同的用户装置。
远端临场会话的示例
图9B描绘了其中各个可穿戴系统的两个用户正在进行远端临场会话的示例。此图中示出了两个用户(在此示例中分别名为爱丽丝912和鲍勃914)。两个用户正在佩戴他们各自的可穿戴装置902和904,可穿戴装置可包括用于表示远端临场会话中的另一用户的虚拟化身的参照图2描述的HMD(例如,系统200的显示装置220)。两个用户可以使用可穿戴装置进行远端临场会话。注意,图9B中将两个用户分开的垂直线旨在示出当爱丽丝912和鲍勃914经由遥现而通信时(例如,爱丽丝可能在她位于亚特兰大的办公室内而鲍勃在波士顿的户外时)可能(但不一定)位于两个不同的位置。
如参考图9A所描述的,可穿戴装置902和904可以彼此通信或者与其他用户装置和计算机系统通信。例如,爱丽丝的可穿戴装置902可以例如经由网络990(在图9A中示出)与鲍勃的可穿戴装置904通信。可穿戴装置902和904可以跟踪用户的环境和环境中的运动(例如,经由相应的面向外的成像系统464或一个或多个位置传感器)和语音(例如,经由相应的音频传感器232)。可穿戴装置902和904还可以基于由面向内的成像系统462获取的数据来跟踪用户的眼睛运动或凝视。在一些情况下,在用户靠近反射表面并且面向外的成像系统464可以获得用户的反射图像以观察用户的面部表情或其他身体运动的情况下,可穿戴装置还可以捕获或跟踪用户的面部表情或其他身体运动(例如手臂或腿部运动)。
可穿戴装置可以使用获取的关于第一用户和环境信息来使虚拟化身动画化,该虚拟化身将由第二用户的可穿戴装置渲染,以在第二用户环境中创建第一用户的存在的有形感。例如,可穿戴装置902和904、远程计算系统920可以单独地或组合地处理爱丽丝的图像或运动以由鲍勃的可穿戴装置904呈现,或者可以处理鲍勃的图像或运动以由爱丽丝的可穿戴装置902呈现。如本文进一步描述的,可以基于诸如用户的意图、用户的环境或其中渲染了化身的环境、或者人的其他生物学特征的上下文信息来渲染化身。
尽管示例仅涉及两个用户,但是本文描述的技术不应限于两个用户。使用可穿戴装置(或其他遥现装置)的多个用户(例如,两个、三个、四个、五个、六个或更多)可以参加远端临场会话。在远端临场会话期间,特定用户的可穿戴装置可以向该特定用户呈现其他用户的化身。此外,虽然该图中的示例将用户示出为站在环境中,但是不需要用户站立。在远端临场会话期间,任何用户都可以站立、坐着、跪着、躺下、走路或跑步、或者处于任何姿势或运动。除了本文示例中所描述的,用户还可能处于物理环境中。在进行远端临场会话时,用户可以处于单独的环境中,也可以处于相同的环境中。并非所有用户都需要在远端临场会话时佩戴他们各自的HMD。例如,当鲍勃914佩戴可穿戴装置904时,爱丽丝912可以使用其他图像采集和显示装置,例如网络摄像头和计算机屏幕。
虚拟化身的示例
图10示出了由可穿戴系统的用户所感知的化身的示例。图10中所示的示例化身1000可以是站在房间中的物理植物后面的爱丽丝912的化身(图9B所示)。化身可以包括各种特征,例如尺寸、外观(例如肤色、脸色、发型、衣服、皮肤和例如皱纹、痣、斑点、粉刺、酒窝等的面部特征)、位置、取向、运动、姿势、表情等。这些特征可以基于与化身相关联的用户(例如,爱丽丝的化身1000可以具有实际人爱丽丝912的一些或所有特征)。如本文中进一步描述的,化身1000可以基于上下文信息被动画化,该上下文信息可以包括对化身1000的一个或多个特征的调整。尽管在本文中通常被描述为表示人(例如,爱丽丝)的身体外观,但是这是为了说明而不是限制。爱丽丝的化身可以表示除了爱丽丝之外的另一真实或虚构的人、拟人化的对象、生物或其他任何真实或虚构的表示的外观。此外,图10中的植物还不必是物理的,而可以是可穿戴系统向用户呈现的植物的虚拟表示。而且,与图10所示的内容相比,附加的或不同的虚拟内容也可以被呈现给用户。
虚拟角色的操纵系统的示例
诸如人化身的动画虚拟角色可以在计算机图形中全部或部分地被表示为多边形网格。多边形网格或简称为“网格”,是建模的三维空间中的点的集合。网格可以形成多面体对象,其的表面限定虚拟角色(或其一部分)的主体或形状。虽然网格可以包括任意数量的点(在可用计算能力可能应用的实际限制内),但具有更多点的更精细的网格通常能够描绘具有更精细的细节的更逼真的虚拟角色,这些细节可以很近似于真实生活中的人、动物、对象等等。图10示出了化身1000的眼睛周围的网格1010的示例。
网格中的每个点可以由建模的三维空间中的坐标定义。建模的三维空间可以是例如由(x,y,z)坐标寻址的笛卡尔空间。网格中的点是组成多面体对象的多边形的顶点。每个多边形表示多面体对象的表面或面并且由有序的顶点组限定,每个多边形的边是连接该有序的顶点组的直线边缘。在一些情况下,网格中的多边形顶点可能与几何多边形不同,因为它们在3D图形中不一定共面。另外,网格中多边形的顶点可以是共线的,在这种情况下,多边形具有零的面积(称为退化的多边形)。
在一些实施例中,网格由三顶点多边形(即,三角形或简称为“三”)或四顶点多边形(即,四边形或简称为“四”)组成。然而,也可以在一些网格中使用高阶多边形。在直接内容创建(DCC)应用(例如,诸如Maya(可从Autodesk,Inc.获得)或Houdini(可从SideEffects Software Inc.获得)的应用,这些应用主要被设计用于创建和操作3D计算机图形)的应用中,网格典型地是基于四边形的,而网格在实时应用中典型地是基于三边形的。
为了使虚拟角色动画化,可以通过在不同的时刻将网格的一些或所有顶点移动到空间中的新位置来使网格变形。变形既可以表示大规模运动(例如,四肢运动)又可以表示精细运动(例如,面部运动)。这些变形和其他变形可以基于真实世界的模型(例如,对执行人体运动、关节、面部扭曲、表情等的真实人进行摄影测量扫描)、以艺术为导向的开发(其可能基于真实世界采样)、相同或其他技术的组合。在计算机图形学的早期,可以通过独立地设置用于顶点的新位置来手动完成网格变形,但是鉴于现代网格的尺寸和复杂性,通常需要使用自动化系统和过程来产生变形。产生这些变形的控制系统、过程和技术称为操纵,或简称为“操纵”。图6B的示例性化身处理和渲染系统690包括可实现操纵的3D模型处理系统680。
用于虚拟角色的操纵可以使用骨架系统来辅助网格变形。骨架系统包括一组关节,这些关节对应于用于网格的关节点。在操纵的上下文中,尽管在解剖学意义上使用时的这些术语之间有差异,但有时也将关节称为“骨骼”。骨架系统中的关节可以根据可以被应用于关节的变换彼此相对移动或以其他方式改变。变换可以包括在空间中的平移或旋转以及其他操作。可以为关节分配相对于彼此的分级关系(例如,父子关系)。这些分级关系可以允许一个关节从另一个关节继承变换或其他特征。例如,骨架系统中的子关节可以继承被分配给其父关节的变换,以使子关节与父关节一起移动。
用于虚拟角色的骨架系统可以被限定为具有位于适当位置处的关节、并且具有适当的局部旋转轴、自由度等,以允许进行一组期望的网格变形。一旦已为虚拟角色限定了骨架系统,就可以在称为“蒙皮”的过程中为每个关节分配对网格中各个顶点的影响量。这可以通过为骨架系统中每个关节的每个顶点分配一个权重值来完成。当将变换应用于任何给定关节时,可以基于该关节变换以一定量自动地移动或以其他方式更改受其影响的顶点,该量取决于它们各自的权重值。
一个操纵可以包括多个骨架系统。一种类型的骨架系统是核心骨架(也称为低阶骨架),其可用于控制虚拟角色的大规模移动。例如,在人类化身的情况下,核心骨架可能类似于人类的解剖骨架。尽管用于操纵目的的核心骨架可能无法精确地映射到解剖学上正确的骨架,但它可以具有位于相似位置的具有类似取向和运动特性的关节子集。
如上简要提及的,关节的骨架系统可以是分级的,例如,关节之间的父子关系。当将变换(例如,位置和/或取向的变化)应用于骨架系统中的特定关节时,可以将相同的变换应用于相同分级内的所有其他较低水平的关节。例如,在用于人类化身的操纵的情况下,核心骨架可以包括用于化身的肩部、肘部和腕部的单独的关节。其中,可以将肩关节分配给分级中的最高水平,而可以将肘关节分配为肩关节的子级,可以将腕关节分配作为肘关节的子级。因此,当将特定的平移和/或旋转变换应用于肩关节时,相同的变换也可以应用于肘关节和腕关节,使得它们被以与肩部相同的方式平移和/或旋转。
尽管其名称具有含义,但是操纵中的骨架系统不一定表示解剖学骨架。在操纵时,骨架系统可以表示用于控制网格的变形的各种分级。例如,头发可以表示为分级链中的一系列关节;由化身的面部扭曲(可表示诸如微笑、皱眉、笑、说话、眨眼等表情)引起的皮肤运动可以由通过面部操纵而控制的一系列面部关节来表示;肌肉变形可以通过关节来建模;以及衣服的运动可以用关节的网格来表示。
用于虚拟角色的操纵可以包括多个骨架系统,其中一些可以驱动其他骨架的运动。低阶骨架系统是驱动一个或多个高阶骨架系统的系统。相反,高阶骨架系统是由低阶骨架系统驱动或控制的系统。例如,虽然角色的核心骨架的运动可能由动画师手动控制,但核心骨架进而可以驱动或控制高阶骨架系统的运动。例如,可以提供高阶的辅助关节-其可能不具有物理骨架中的解剖学类似物-来改善由核心骨架的运动引起的网格变形。可以从被应用于低阶骨架的变换通过算法来推导应用于高阶骨架系统中的这些关节和其他关节的变换。高阶骨架可以表示例如肌肉、皮肤、脂肪、衣服、头发或不需要直接的动画控制的任何其他骨架系统。
如已经讨论的,可以将变换应用于骨架系统中的关节以便执行网格变形。在操纵的上下文中,变换包括函数,这些函数接受3D空间中的一个或多个给定点,并产生一个或多个新3D点的输出。例如,变换可以接受限定关节的一个或多个3D点,并可以输出指定变换后的关节的一个或多个新3D点。关节变换可以包括例如平移分量、旋转分量和比例分量。
平移是这样的变换,其使建模的3D空间中的一组一个或多个指定点移动指定量,而该组点的取向或尺寸不变。旋转这样的变换,其使建模的3D空间中的一组一个或多个指定点围绕指定轴旋转指定量(例如,使网格中的每个点围绕z轴旋转45度)。仿射变换(或6自由度(DOF)变换)是一种包含平移和旋转的变换。仿射变换的示例应用可以被认为是移动空间中一组一个或多个点而不改变其尺寸,尽管可以改变取向。仿射变换也可以包括剪切或缩放变化。
同时,比例变换是这样的变换,其通过使建模的3D空间中的一个或多个指定点的相应坐标缩放指定值来修改该点。这改变变换后的点组的尺寸和/或形状。均匀比例变换可以将每个坐标缩放相同的量,而非均匀比例变换可以独立地缩放指定点的(x,y,z)坐标。例如,可以使用非均匀比例变换来提供挤压和拉伸效果,例如可能由肌肉动作导致的挤压和拉伸效果。另一类型的变换是剪切变换。剪切变换是这样的变换,其通过基于建模的3D空间中的一组一个或多个指定点的坐标距轴的距离使该点的坐标平移不同量来修改该点。
当将变换应用于关节以使其移动时,在该关节的影响下的顶点也将移动。这导致网格的变形。如上所述,分配权重以量化每个关节对每个顶点的影响的过程称为蒙皮(或有时称为“权重绘画”或“蒙皮加权”)。权重通常是介于0(表示无影响)和1(表示完全影响)之间的值。网格中的一些顶点可能仅受单个关节的影响。在那种情况下,那些顶点被分配了用于该关节的1的权重值,并且它们的位置基于被分配给该特定关节的变换而不是其他变换而改变。网格中的其他顶点可能会受到多个关节的影响。在这种情况下,将为所有受影响的关节的那些顶点分配单独的权重,每个顶点的权重之和等于1。这些顶点的位置基于被分配给所有受影响的关节的变换而改变。
对网格中的所有顶点进行权重分配可能会非常费力,尤其是随着关节数量的增加。对于即使是训练有素的艺术家来说,响应于被应用到关节的变换来使权重平衡以实现所需的网格变形也可能非常困难的。在实时应用的情况下,由于许多实时系统还对可被加权到特定顶点的关节数量应用了限制(通常为8个或更少),这一事实会使任务进一步复杂化。通常出于图形处理单元(GPU)的效率的原因而强加这样的限制。
术语蒙皮还指基于被应用到骨架系统中的关节的变换来使用分配的权重实际上使网格变形的过程。例如,动画师可以指定一系列核心骨架关节变换,以产生期望的角色运动(例如,跑步运动或舞步)。当将变换应用于一个或多个关节时,在变换后的关节的影响下为顶点计算新位置。通常将任何给定顶点的新位置计算为影响该特定顶点的所有关节变换的加权平均。存在用于计算此加权平均的许多算法,但最常见的并且由于其简单性和易于控制性而在大多数实时应用中使用的算法是线性混合蒙皮(LBS)。在线性混合蒙皮中,使用顶点具有非零权重的每个关节变换来计算用于每个顶点的新位置。然后,将由这些关节变换中的每一个导致的新顶点坐标与针对每个关节分配给该顶点的各个权重成比例平均。在实践中,存在对LBS的众所周知的局限性,制造高质量操纵的许多工作都致力于发现并克服这些局限性。为此专门设计了许多辅助关节系统。
除了骨架系统,“混合形状”也可以被用在操纵中以产生网格变形。混合形状(有时也称为“变形目标”或简称为“形状”)是一种应用于网格中一组顶点的变形,其中该组中的每个顶点都基于权重在指定方向上移动了指定量。对于特定的混合形状,组中的每个顶点可能都有其自己的自定义运动,并且同时移动组中的顶点将生成期望的形状。可以用“德尔塔(delta)”指定用于混合形状中的每个顶点的自定义运动,“德尔塔”是一个向量,其表示应用到该顶点的XYZ运动的量和方向。混合形状可用于产生例如使眼睛、嘴唇、眉毛、鼻子、酒窝等移动的面部变形,仅举几种可能性。
混合形状可用于以一种艺术可导向的方式使网格变形。它们提供很大的控制,因为可以通过模型的扫描来雕刻或捕获确切的形状。但是,混合形状的好处是以必须存储用于混合形状中所有顶点的德尔塔为代价的。对于具有精细网格和许多混合形状的动画角色,德尔塔数据量可能很大。
通过使用混合形状权重,可以将每个混合形状应用到指定程度。这些权重通常在0(根本没有应用混合形状)到1(其中混合形状是完全活动的)的范围内。例如,移动角色眼睛的混合形状可以被以小的权重应用以使眼睛移动少量,或者其可以被以较大的权重应用以创建较大的眼睛移动。
操纵可以彼此组合地应用多种混合形状以实现期望的复杂变形。例如,要产生微笑,操纵可以组合地应用混合形状,以用于唇角拉动、抬高上唇和降低下唇以及移动眼睛、眉毛、鼻子和酒窝。将两个或多个混合形状组合而成的期望形状被称为组合形状(或简称为“组合”)。
组合地应用两个混合形状可能导致的一个问题是,混合形状可能作用于一些相同的顶点。当两个混合形状都是活动的时,结果被称为双重变换或“脱离模型”。解决此问题的方法通常是校正的混合形状。校正的混合形状是一种特殊的混合形状,其表示相对于当前应用的变形的期望的变形,而不是表示相对于中性的期望的变形。可以基于正在校正的混合形状的权重来应用校正的混合形状(或仅称为“校正”)。例如,可以使校正的混合形状的权重与基础混合形状的权重成比例,该基础混合形状触发校正的混合形状的应用。
校正的混合形状也可以用于校正蒙皮异常或改善变形的质量。例如,关节可以表示特定肌肉的运动,但作为单个变换,它不能表示皮肤、脂肪和肌肉的所有非线性行为。在肌肉激活时应用校正或一系列校正可以导致更令人愉悦和令人信服的变形。
操纵内置于层中,较低、较简单的层通常驱动高阶的层。这适用于骨架系统和混合形状变形。例如,如已经提到的,对动画化的虚拟角色的操纵可以包括由低阶骨架系统控制的高阶骨架系统。存在许多方法以基于低阶骨架控制高阶骨架或混合形状,包括约束、逻辑系统和基于姿势的变形。
约束通常是其中特定对象或关节变换控制被应用于另一关节或对象的变换的一个或多个分量的系统。存在许多不同类型的约束。例如,目标约束将目标变换的旋转改变为指向特定方向或特定对象。父约束充当变换对之间的虚拟父子关系。位置约束将变换约束到特定点或特定对象。取向约束将变换约束为对象的特定旋转。
逻辑系统是数学等式的系统,其在给定一组输入的情况下产生一些输出。这些是指定的,不是学习的。例如,混合形状值可以被定义为两个其他混合形状的乘积(这是称为组合或组合形状的校正形状的示例)。
基于姿势的变形也可以用于控制高阶骨架系统或混合形状。骨架系统的姿势由用于该骨架系统中所有关节的变换(例如,旋转和平移)的集合限定。也可以为骨架系统中关节的子集限定姿势。例如,可以通过被应用于肩部、肘部和腕关节的变换来限定手臂姿势。姿势空间变形器(PSD)是一种系统,其用于基于特定姿势与限定的姿势之间的一个或多个“距离”来确定用于特定姿势的变形输出。这些距离可以是表征姿势中的一者与另一姿势有多不同的度量。PSD可以包括一个姿势插值节点,该节点例如接受一组关节旋转(限定姿势)作为输入参数,进而输出归一化的每姿势权重来驱动变形器,例如混合形状。姿势插值节点可以以多种方式实现,包括使用径向基函数(RBF)。RBF可以执行函数的机器学习数学近似。可以使用一组输入及其关联的预期输出来训练RBF。训练数据可以是例如多组关节变换(其限定特定姿势)和响应于这些姿势而应用的对应混合形状。一旦学习了函数,就可以给出新的输入(例如,姿势),并且可以有效地计算它们的预期输出。RBF是人工神经网络的子类型。RBF可用于基于较低水平分量的状态来驱动操纵的较高水平分量。例如,核心骨架的姿势可以驱动辅助关节和更高水平的校正。
这些控制系统可以链接在一起以执行复杂的行为。例如,眼睛操纵可以包含两个“环视”值以进行水平和垂直旋转。这些值可以通过一些逻辑来确定眼睛关节变换的确切旋转,其进而可以用作RBF的输入,该RBF控制混合形状,该混合形状改变眼睑的形状以匹配眼睛的位置。这些形状的激活值可用于使用其他逻辑等来驱动面部表情的其他分量。
操纵系统的目标通常是提供机制以基于简单的、人类可理解的控制系统来产生令人愉悦的高逼真变形。在实时应用的情况下,目标通常是提供操纵系统,该操纵系统足够简单以在例如VR/AR/MR系统200上实时运行,同时对最终质量尽可能做出很少的妥协。在一些实施例中,3D模型处理系统680执行操纵系统以实时地在混合现实环境100中使化身动画化以便进行交互(与VR/AR/MR系统的用户交互)并提供用户环境中的适当的上下文化身行为(例如,基于意图的行为)。
将基础网格与目标网格相匹配
如本文中所讨论的,操纵包括用于将关于化身的身体的变形(例如,面部扭曲、手臂运动、腿部运动、躯干运动、头部旋转和倾斜、包括抓握和指向的手部运动等)的信息传递到网格上的技术。使网格动画化(例如,使化身动画化)可以包括通过将形成网格的一些或所有顶点移动到3D空间中的新位置来使网格变形。图6B的示例性化身处理和渲染系统690包括3D模型处理系统680,其可以实现操纵(例如,用于使网格变形和使化身动画化的控制系统)。由于网格可以包括大量顶点,因此操纵通常提供常见的期望变形作为计算机化命令,该计算机化命令使控制网格更加容易。对于诸如电影的高端视觉特效产品,操纵可能有足够的生产时间来执行大量的数学计算,以实现高度逼真的动画效果-换言之,此上下文通常会优先考虑高质量而以牺牲高速为代价。但是对于实时的应用(例如在混合现实中),变形速度可能会非常有利的,并且可以使用不同的操纵技术-换言之,该上下文通常会优先考虑高速而以牺牲高质量为代价。操纵经常利用依赖于骨架系统和/或混合形状的变形。
当进行部分或全身数字化身时,可以获取大量的面部和/或身体扫描作为用于化身操纵动画和变形的参考。操纵可以包括基础网格,该网格可以表示身体的中性静止状态,该基础网格可以通过分级矩阵(例如,皮肤团簇)的骨架结构并使用混合形状而被变形。面部表情和身体姿势的扫描可以用作操纵的混合变形的参考。这些参考扫描通常是与基础网格不相干的非结构化几何。将参考扫描的形式和形状与一个或多个基础网格相匹配的过程先前需要大量的手工雕刻顶点。作为示例,对于每个单个的静态固定操纵姿势(例如,直臂姿势、手臂以45度弯曲的姿势、手臂完全弯曲的姿势等),都将必须手动地将各个参考或基础扫描雕刻到目标网格中。
本公开克服了使用刚性变换、非刚性变形以及这种变换和变形的迭代的新颖组合将参考扫描与一个或多个基础网格费力地相匹配的挑战,以便程序性地将基础网格的形状和形式与所扫描的参考相匹配,而使用最少的人工干预。在本公开的实施例中,提供一种系统,该系统获得基础网格和目标网格作为输入、以合适的方式程序性地将基础网格与目标网格相匹配、以及输出匹配的基础网格(例如,传递网格或者可用于辅助化身的动画化的混合形状)。在至少一些实施例中,图6B的化身处理和渲染系统690可以实现本文描述的用于将基础网格与目标网格相匹配的技术。
如本文结合图10所讨论的,网格或多边形网格是建模的三维空间中的点的集合。网格可以形成多面体对象,其的表面限定了虚拟角色(或其一部分)的主体或形状。虽然网格可以包括任意数量的点(在可用计算能力可能应用的实际限制内),但是具有更多点的更精细的网格通常能够描绘具有更精细的细节的更逼真的虚拟角色,这些细节可以更近似真实生活中的人、动物、对象等。图10示出了化身1000的眼睛周围的网格1010的示例。网格1010可以是相对精细的(例如,具有相对大量的点),以促进对在眼睛区域中发生的复杂曲线和运动的高质量仿真。
将目标网格与基础网格相匹配的示例
图11A-图11B示出了可以被获得或提供给本公开的匹配系统的基础网格和目标网格以及可以通过匹配系统生成或提供的传递网格(例如,匹配的基础网格)的各种示例,包括手臂和衬衫。注意,在图11A-11B中,未示出网格的顶点。可以通过使操纵的骨架结构从中性的静止状态到期望的姿势的变形来获得基础网格。目标网格可以通过对以期望姿势的人的参考扫描来获得。在一些实施例中,参考扫描可以是2D或3D照片或模型的扫描。在其他实施例中,参考扫描可以是2D或3D照片或诸如AR、MR或VR装置的电子装置的用户的扫描。在这样的实施例中,用户可以在电子装置的方向上以期望的姿势摆姿势(例如,电子装置可以提示用户移动到预定姿势),或者电子装置可以实时跟踪用户并使化身动画化以匹配用户的运动。这些仅是说明性的示例,通常,可以出于任何所需目的获得基础、目标和传递网格。
在至少一些实施例中,基础网格可以指限定例如化身或其他虚拟对象的多面体对象的干净网格或一组结构化的顶点、边缘和面。另外,目标网格可以指限定例如模型、用户或对象的多面体对象的扫描网格或一组非结构化顶点、边缘和面。在一些布置中,可以通过操纵的变形来生成干净网格或基础网格,而可以使用摄影测量法(例如,在勘测和映射中使用摄影和其他传感器来测量对象之间的距离;例如使用相机和其他传感器对人或对象的3D映射)来生成或获得扫描网格或目标网格。
如图11A的基础网格1110所示,操纵可从中性的静止状态(在该示例中,其可以是操纵的手臂可以以相对直的方式延伸的状态)变形为弯曲的手臂状态,其中人的左肘完全或几乎完全弯曲。如基础网格1110中所示,操纵到此位置的变形可能与用户的预期变形不相匹配。作为示例,在区域1112中,操纵的前臂和上臂皮肤可能以看起来不自然的方式(例如,皮肤上的折痕)压缩。相反,如图11A的目标网格1120所示,与基础网格1110相同的姿势的模型或用户的参考扫描在肘区域1122中可以具有更自然的外观。特别地,前臂可以压缩目标网格1122中的二头肌,而不是如在基础网格1112中那样看起来消失在前臂中的二头肌。
使用本文公开的系统和过程,基础网格可以准确地符合目标网格。在这些系统和过程中的一些中,热图1130可用于识别存在不同大小的误差(例如,网格中顶点的空间位置之间的偏差)的基础网格(或目标网格)的区域。作为示例,用于使基础网格与目标网格相匹配的当前技术可以识别误差相对较高的区域,例如区域1132(以单线阴影示出),误差相对中等的区域,例如区域1134(以双线阴影示出),以及误差相对较低的区域,例如区域1136(以交叉阴影示出以及在手部的误差特别低的没有阴影的部分中示出),其中误差与基础网格中的给定顶点的位置相对于目标网格中对应顶点的位置的差异有关。如图11A所示,在前臂和上臂肌肉彼此压缩的区域中,基础网格可以具有相对于目标网格的相对高的位置差(例如,高误差)。另外,在前臂和上臂的靠近高误差区域的区域中,基础网格可能具有稍低的位置差异(例如,中等误差),而在远离肘部的区域(例如手部和肩部)中,基础网格可能具有小的甚至没有位置差异(例如,无误差或低误差)。
图11A和11B中的示例1130、1160可以被称为热图,其中在基础网格和目标网格之间的误差被可视化地示出。作为示例,误差相对低或无误差的区域可以用蓝色表示(或某种类型的标记,例如图11A和11B的交叉阴影),误差相对中等的区域可以用绿色表示(或另一种类型的标记,例如图11A和11B的双线阴影),以及误差相对高的区域可以用红色表示(或另一种类型的标记,例如图11A和11B的单线阴影)。例如,肘部示出不自然折痕的区域1112处于热图1130中的高误差、单阴影区域1132中。
在这些示例中,误差可指基础网格与目标网格之间的对应顶点对之间的三维距离。在一些示例中,高误差区域可以具有超过小于0.2cm、大约0.2cm、0.4cm、0.6cm、0.8cm、1.0cm、2.0cm、4.0cm或更大的距离误差;低误差到无误差区域可以具有小于大约0.05cm、0.1cm、0.2cm、0.3cm、0.5cm、1.0或更大的距离误差;中等误差区域可以具有在高误差区域和低误差区域之间的距离误差(例如,中等误差区域的距离误差可以小于例如小于0.2cm、0.4cm、0.6cm、0.8cm、1.0cm、2.0cm、4.0cm或更大的距离误差,但是大于大约0.5cm、0.1cm、0.2cm、0.3cm、0.5cm、1.0或更大的距离误差的低误差区域)。作为一个示例,高误差区域可以具有超过大约0.4cm的距离误差,中误差区域可以具有在大约0.4cm和大约0.1cm之间的距离误差,以及低至无误差区域可以具有小于大约0.1cm的距离误差。这些仅是说明性示例。可以利用颜色或其他合适的视觉指示符来使人类动画师对所公开的用于将基础网格传递到目标网格上的过程进行快速视觉监视。
尽管图11A和11B中所示的热图示出了使用不同样式的阴影的三个误差区域,但是这仅是示例性的而不是限制性的。可以使用任意数量的误差区域(例如2、3、4、5、10、20或更多)。此外,阴影旨在提供对误差发生位置的清晰视觉指示。在一些布置中,可以经由颜色示出不同的误差区域(类似于示出天气温度的热图)。在全自动系统中,系统将不需要对不同的误差区域应用阴影(或其他图形标记,例如颜色或其他合适的图案或视觉指示符)。然而,一些系统可能生成并渲染热图的图形表示,以在发生不同数量误差的位置向人类动画师显示。在其他实施例中,作为热图的补充或替代,可以生成误差的其他图形表示,例如等高线图或任何其他可用的图形技术。另外,尽管已将不同的误差区域描述为红色、绿色和蓝色(从高、到中等、到低误差),但可以使用任何颜色,也可以使用任何类型的定量或定性标度(例如,数字标度或质量标度(例如,A、B、C))。
如将在下面进一步描述的,可以在不同的误差区域中使用不同的网格传递或网格匹配技术,以将基础网格配准到目标网格上并与目标网格相符合。因为任何特定的网格传递技术都将具有其自己的独特优势和劣势,所以系统可以有利地针对每个误差区域使用适当的技术。例如,刚性网格传递技术可以在误差相对高的区域中很好地执行以配准基础网格和目标网格,但是在相对低的误差区域不是很好地执行以使两个网格彼此相符合。相反,非刚性网格传递技术在误差相对高的区域中可能不是很好的执行,但是在误差相对低的区域中可以很高地执行以使基础网格与目标网格相符合。因此,网格传递系统的实现方式在高误差区域(例如,热图1130中的单线阴影区域1132)中使用刚性传递技术,在中等误差区域(例如,热图1130中的双线阴影区域1134)使用非刚性传递技术,以及在两个网格基本相同的低误差区域(例如,热图1130中的交叉阴影区域1136)中不执行其他传递。因此,系统可以有利地将适当的网格传递技术应用于热图中的每种类型的区域。此外,系统可以迭代该方法以逐步地使基础网格与目标网格相匹配,直到网格的所有(或基本上所有)区域都处于热图的低误差(例如,交叉阴影或蓝色)区域中。
图11B示出了将基础网格与目标网格相匹配以获得传递网格的第二示例。特别地,图11B示出了可以被建模为化身上的衣服的衬衫的基础网格1140、目标网格1150和热图1160。基础网格1140可以表示将衬衫的操纵从中性姿势变形为所示出的姿势(例如由于下部的化身的腿被抬起引起所示出的衬衫的变形,使得衬衫的下部被举起的姿势)的结果。如图11B所示,在基础网格和目标网格之间的误差在化身或用户的左腿提起衬衫的区域中可能最明显。作为示例,基础网格1140可具有区域1142,其中用户的腿没有以自然的方式提起衬衫,而目标网格1150可示出区域1152中衬衫的自然曲线。目标网格1150可表示被变形为所示姿势的衬衫的扫描参考(例如,穿着衬衫并以如所示出的使衬衫变形的方式摆姿势的模型或用户的扫描)或者可以是艺术家建模的网格。传递网格1160可以表示与目标网格相符合的基础网格,其中识别出不同误差的区域。作为示例,区域1162、1164和1166可以分别表示基础网格和目标网格之间的高、中等和低位置误差的区域。
示例刚性变换
图6B的头像处理和渲染系统690或另一合适的系统可以通过使用多种技术变换基础网格或使基础网格变形来使基础网格与目标网格相匹配。作为一个示例,使基础网格与目标网格相匹配可以涉及刚性变换。刚性变换可以应用于具有高误差度、高曲率度的区域或者具有高误差和高曲率的区域。刚性变换不改变要变换的基础网格的区域的尺寸或形状,例如,该变换不改变该区域中顶点之间的距离。可以被应用于基础网格以使目标网格与目标网格相匹配的刚性变换的示例包括但不限于刚性最近邻变换、具有衰减的刚性最近邻(NN)变换、例如旋转和平移的线性变换、具有或不具有衰减的变换以及这些变换和其他变换的组合。刚性变换的另一示例是迭代最近点(ICP)算法。在其他实施例中,系统690可以利用仿射变换来变换基础网格或使基础网格变形。
在图12A中示出了刚性最近邻变换过程1200的示例应用。如图12A所示,基础网格1202可以被变换,以使得基础网格1202的顶点更靠近目标网格1204的顶点。在1200a中,可以确定基础网格1202和目标网格1204的高误差区域。在1200b中,化身处理和渲染系统690或另一合适的系统可以为基础网格1202的一些或所有顶点识别最近邻。作为示例,图12A示出了针对基础网格1202上的三个不同顶点的目标网格1204上的最近邻1206。刚性NN过程可以利用n个最近邻,其中n为1、2、3、4、5、6或更大。如1200c中所示,化身处理和渲染系统690或另一合适的系统然后可以将基础网格1202朝向目标网格1204刚性地变换。换言之,系统可以尝试最小化或优化基础网格1202上的顶点与目标网格1204上的对应最近邻之间的距离的平均值,而不更改基础网格1202的形状,但是替代地平移、旋转或对基础网格1202应用其他刚性变换。
在至少一些实施例中,基础网格1202朝向目标网格1204的刚性变换可以经受衰减,该衰减将刚性变形羽化(feather)到具有较低误差的附近区域。具有高误差的基础网格的各个区域可以朝目标网格而被刚性地变换,而具有低误差的附近区域以衰减区域中的加权衰减被刚性地或非刚性地变换。在至少一些实施例中,被刚性地变换的各个区域可以包括被刚性地变换的区域(例如区域1208内的区域)、未被变换的周边区域(例如区域1210之外的区域)和中间区域(例如在区域1208和1210之间的区域),该中间区域在被刚性地变换的区域1208至区域1210之外的可不被变换的(或者可以使用其他技进行变换,包括非刚性变形技术)区域之间平滑地过渡。
刚性变换中的衰减可以允许对高误差区域进行校正,而不会导致所得变换在相邻区域中创建新的误差。衰减的示例在图12A的1200b和1200c中示出。特别地,1200b示出了衰减开始区域1208和衰减结束区域1210。在衰减开始区域1208内,可以执行基础网格1202朝向目标网格1204的刚性变换(例如,系统可以尝试最小化最近邻之间距离的平均值,而不更改变换后的网格的形状)。相反,系统可以使基础网格1202在区域1210之外保持相对不变。在中间区域1210中,系统可以使用在区域1208之内应用的刚性变换技术的加权衰减来变换基础网格1202,以在刚性变形的区域1208与基础网格1202的在区域1210之外的部分之间提供平滑的过渡。在各种实施例中,从衰减边界1208应用到衰减边界1210的羽化过渡的加权衰减可以是线性、二次、指数或任何其他合适的衰减。
在一些实施例中,由系统刚性变换的区域的尺寸可以随基础网格1202和目标网格1204之间的初始误差而变化。作为示例,系统可以识别误差水平高于某个阈值的基础网格1202中的顶点的数量n。然后,系统可以从误差水平高于阈值的一组顶点中识别出具有最大误差的顶点子集(例如,系统可以将n/2个顶点标识为具有最大误差的顶点)。然后,系统可以基于最近邻方法,对具有最大误差的顶点子集(例如,n/2个具有最大误差的顶点)进行刚性变换,以与目标网格1204相匹配。在一些实施例中,系统可以利用迭代最近点(ICP)变换来刚性地变换具有最大误差的顶点子集,以与目标网格1204相匹配。
衰减区域的尺寸(例如,区域1208和1210的半径)可以至少部分地基于要被变换的对象的尺寸(例如,高误差区域的尺寸)来设置,或者可以随基础网格1202和目标网格1204之间的误差而变化。作为示例,衰减半径可以被设置为π乘以x的平方根,其中x等于要被刚性变形的区域内的最大误差值(例如,基础网格1202中任何给定顶点与目标网格1204中的对应邻居之间的最大单个距离)。衰减区域可用于将刚性最近邻变换羽化到具有较低误差值的相邻顶点(并且不对其应用变换或非刚性变换)。在一些实施例中,可以将衰减球的中心设置为被刚性变换的区域的中心。在其他实施例中,可以将衰减球的中心设置为目标网格1204上的与最大误差值相关联的顶点。
在图12A的1200c中,示出了示例输出,其中输入基础网格1202已被刚性地变换成形状1212。与以上的讨论一致,输入基础网格1202的变换在衰减区域1208之内通常可以是刚性的,可以在区域1210之外不应用变换或者应用非刚性变换,以及系统可以将区域1208之内的刚性变换平滑地羽化(例如,在区域1210中,但在1208之外)到区域1210之外的无变换或非刚性变换。对衰减区域的羽化是可选的,但是可以提供如将参考图13描述的优点(例如,网格的锐度或阶梯化的减少)。
示例非刚性变形
图6B的化身处理和渲染系统690或另一合适的系统可以使用的用于将基础网格与目标网格相匹配的其他技术可以包括非刚性变形。非刚性变形可以应用于具有中等至低度误差的区域(例如,基础网格上的顶点与目标网格上的对应顶点之间的距离)或具有中等至低曲率误差的区域。在非刚性变换中,允许在此变换下改变网格顶点之间的距离,并且区域的尺寸(或形状)可能改变。可以应用于基础网格以与目标网格相匹配的非刚性变换的示例包括但不限于表面上最近点变形(CPOS)、表面上迭代最近点变形、弹性配准、物理变形模型(例如,模拟皮肤的模型)等。这些仅是示例性示例,通常,任何期望的非刚性(或刚性)变形都可以应用于低至中等误差的区域。
图12B中示出了非刚性的表面上最近点(CPOS)过程1250的示例应用。如图12B所示,基础网格1252可以变形(例如,非刚性地变形),使得基础网格1252的顶点更靠近目标网格1254的顶点。在至少一些实施例中,非刚性变形可以使基础网格与目标网格相符合,就像将基础网格被真空形成为目标网格一样。在1250a中,可以识别或获得基础网格1252的中等误差区域和目标网格1254的对应区域。在1250b中,对于基础网格1252的所识别区域中的每个顶点,可以识别目标网格1254的表面上的最近点(例如,目标网格1254的最近顶点)。作为示例,图12B示出了基础网格1252的五个不同顶点的最近点1256和目标网格1254的表面上的五个对应的最近点。
如1250c所示,化身处理和渲染系统690或另一合适的系统然后可以使基础网格1252(例如,具有中等误差水平的基础网格区域)非刚性地朝向目标网格1254(例如,与中等误差水平的基础网格区域对应的目标网格区域)变形。换言之,系统可以尝试将基础网格1252中每个顶点与目标网格1254上最近点之间的距离尽可能完全地减小到零。如果需要,系统可以采用计算了表面上初始最近点的迭代CPOS过程,使基础网格顶点朝向目标网格的表面上的相应最近点偏移一部分路径(way),然后重新计算最近点,并使基础网格顶点朝向目标网格的表面上的相应最近点偏移路径的一些其他分数(或余数)。如步骤1250c中所示,系统可以使基础网格1252变形,直到基础网格1252基本符合目标网格1254为止,如此,基础网格1252的初始形状可以被变换为目标网格1254的形状。
与结合图12A描述的刚性变换一样,在图12B的非刚性变形中,系统可以(可选地)利用衰减。非刚性变形中的衰减可以允许对中等或中间误差区域进行校正,而不会导致所得变换在较低误差的相邻区域中创建新的误差。图12B的用于非刚性变换的衰减的示例在1250b中别示出,其包括衰减开始区域1258和衰减结束区域1260。在衰减开始区域1258内,CPOS变形过程可以如这里所述进行,其中基础网格的每个顶点朝向目标网格上最接近该基础网格顶点的顶点移动。在衰减结束区域1260之外,系统可以使基础网格1252保持相对不变。在中间区域中,系统可以羽化CPOS变形(例如,对于更靠近衰减开始区域1258的顶点,系统可以提供更多的CPOS变形,而对于更靠近衰减区域的外边缘的顶点,则可以提供更少的CPOS变形)。CPOS变形中的衰减可以帮助使任何一个顶点的影响平均化,从而改善变形后的基础网格1252中顶点的表观(apparent)连通性、减少诸如锐度或阶梯化的伪影(artifact)、以及减少在匹配过程中的潜在的误差量。然而,如果需要,系统可以应用非刚性变形而没有衰减。
非刚性变形中的衰减半径
图13示出了更改表面上最近点(CPOS)变形或其他非刚性变形中的衰减的影响的示例。
图像1300示出了基础网格。图像1302使出了在不具有衰减的CPOS变形之后的基础网格。
图像1304和1306示出了在具有衰减的CPOS变形之后的基础网格。如在图像1304和1306中可以看到的,具有衰减的CPOS变形导致更平滑的输出(例如,更平滑的匹配网格)。
图像1308示出了来自图像1300的基础网格的不具有衰减的CPOS变形的结果。如图像1308所示,单个顶点从球体上被拉开,这导致尖峰从球体延伸。如果已应用了衰减,则单个顶点替代地显示为图像1310,其更多地显示为圆形凸出。
用于使用刚性的迭代将目标网格与基础网格相匹配的示例过程
图14A-14C示出了用于使基础网格与目标网格相匹配的示例过程。示例过程1400可以由一个或多个计算系统来执行,该系统包括远程处理模块270、本地处理和数据模块260、图6B中的化身处理和渲染系统690、图9A的远程计算系统920、其他合适的计算装置以及这些和其他计算装置的组合。
在图14A中,在框1401和1402处,计算系统可以获得基础网格和目标网格。如本文中所讨论的,计算系统可以通过将化身或对象的操纵控制为期望姿势来获得框1401中的基础网格,并且可以例如通过获得照片、3D图像、人的皮肤和/或衣服(或对象的表面)上多个点的位置信息等或者通过使艺术家雕刻目标姿势,来通过扫描期望姿势的人(或其他目标、例如对象)获得框1402中的目标网格。
在框1404和1406处,计算系统可以获得基础网格的顶点与目标网格的对应顶点之间的一组距离误差,并且可以初始化热图。参照图11A和11B的示例,热图可以采取诸如热图1130和1160的距离误差的图形表示的形式。换言之,热图可以通过以下方式而被可视地示出,例如通过以红色(或单线阴影)突出显示高误差的区域、以绿色(或双线阴影)突出显示中等误差的区域、以蓝色(或交叉阴影)突出显示低误差至没有误差的区域。通常,可以使用将彼此具有不同误差的区域区分开的其他手段,诸如不同的颜色、不同的强度、明暗、点画、阴影和交叉阴影等。如果需要,在框1406中初始化热图可以包括将基础网格和目标网格的顶点分割为多个区域。特别地,被标识为具有相对较高的误差的区域可以与其他区域分割,并且经受与那些其他区域不同的处理步骤。可以将具有中等和低误差的区域类似地与其他区域中分割,并使其经受不同的处理步骤。
在框1408处,计算系统可以检查以查看已经执行了匹配过程的多少次迭代。在一些实施例中,计算系统可以在已完成匹配过程的预定次数的迭代之后终止匹配过程(例如,作为框1442的一部分)。在其他实施例中,计算系统可以在一些其他准则之后终止匹配过程,一些其他准则例如如果匹配过程已超过了预定时间量。
在框1410处,计算系统可以基于误差水平(例如,基于热图的频谱或整个基础网格上的误差水平的频谱)将热图划分为组。然后可以根据其误差水平对热图的划分区域进行不同的处理。作为示例,框1410可以包括识别基础网格的哪些区域是低误差的(例如,如示例图11A和11B所示的交叉阴影)并且将那些区域传递到框1412、识别基础网格的哪些区域是中等误差的或是绿色的(或双线阴影)并将这些区域传递到框1416、以及识别基础网格的哪些区域是高误差的或红色的(或单线阴影)并将这些区域传递到框1424。
在框1414处,计算系统可以在无变形或变换的情况下使低误差至无误差区域(例如,热图的蓝色区域)传递。换言之,计算系统可以确定基础网格的这些区域已经很好地与目标网格相匹配,并且不需要进一步的调整。
在框1418、1420和1422处,计算系统可以选择基础网格1401中的元素(例如,顶点),这些元素相对于目标网格1402具有中等误差水平,并且计算系统可以对基础网格1401的所选择的顶点应用表面上最近点(CPOS)变形。在框1422中由计算系统应用的CPOS变形可以使基础网格1402非刚性地与目标网格1402相符合。框1422中的CPOS变形可以如结合图12B所描述的那样来执行。在框1420中可选地应用的衰减也可以如结合图12B和图13所描述的那样来执行。
在框1426、1428和1430处,计算系统可以选择基础网格1401中的元素(例如,顶点),该元素相对于目标网格1402具有较高的误差水平,并且该计算系统可以对基础网格1401的所选择的顶点应用刚性最近邻变换。在框1430中由计算系统应用的刚性最近邻变换可以将基础网格1401朝着目标网格1402刚性地变换,而不会使基础网格1401的形状变形。框1430中的刚性最近邻变换可以如结合图12A所描述的那样来执行。在框1428中可选地应用的衰减也可以如结合图12B和图13所描述的那样来执行。
在框1432处,计算系统可执行网格松弛过程以解决由刚刚执行的CPOS变形和刚性最近邻变换引入的任何伪影。作为示例,计算系统可以平滑变换后的基础网格中的任何尖峰。弛豫过程可以包括平滑或滤波过程,例如线性或多项式平滑过程。
在框1434处,计算系统可以重新计算当前变换的基础网格和目标网格1402之间的误差距离。
在框1436处,计算系统可以通过确定当前变换的基础网格的哪些区域具有低误差水平、中等误差水平以及是否还有剩余区域(例如,顶点或顶点组)具有高误差水平,来可选地更新热图。
在框1438处,计算系统可以执行收敛性测试。收敛性测试可以使用任何期望的度量来检查以查看当前变换的基础网格是否已经与目标网格1202充分地匹配。作为一个示例,框1438中的收敛性测试可以涉及识别单个或成组的任何顶点是否具有落入中等或高水平内的误差值。如果计算系统确定当前变换的基础网格与目标网格充分地匹配(例如,所有顶点的误差水平都落在例如蓝色范围的低误差范围至无误差范围内),则计算系统可以进行到框1442。否则,计算系统可以增加已被完成的作为框1440的一部分的传递迭代的数量的可选计数器,并返回到框1408。如上所述,一旦已完成的传递迭代的数量与一些限制匹配(或超过一些限制),计算系统可以进行到框1442。如果需要,计算系统可以使用收敛性测试和迭代计数的组合来确定何时进行到框1442。作为示例,计算系统可以在随着时间的推移或经过一定次数的迭代之后放松收敛性测试,以使质量较低的匹配项能够通过收敛性测试。
在框1442、1444和1446处,计算系统可以终止将基础网格1401与目标网格1402相匹配的过程,并且可以提供期望的输出,例如传递网格、混合形状或其他输出。作为一个示例,计算系统可以输出数据,该数据指示基础网格1401中的顶点应如何相对于它们的初始位置来移动,以使得网格与目标网格1402相匹配。
可选网格传递技术的示例
作为上述图14A的布置的替代,计算系统可以仅在初始迭代组中变换高误差区域,同时不对中等误差区域和低误差区域进行校正,并且可以在随后的迭代组中对中误差区域和低误差区域进行校正。换言之,在图14B中,对于初始迭代组可以省略框1454、1456和1460,使得在初始迭代组中仅高误差区域被大致相匹配。如果需要,初始迭代组可以继续进行,直到所有或基本上所有较高误差区域已经以将它们的误差减小到低于高误差阈值水平的方式被变换为止(因此,这些区域现在被分类为低误差或中等误差区域)。然后,在初始迭代组之后,可以执行框1454、1456和1460,并且可以省略框1458、1462(由于不必要,或者可替代地包括,但是由于没有高误差区域而包含有空组),以便最终确定基础网格与目标网格相匹配。
作为另一替代,计算系统可以基于除误差之外的其他项将输入网格划分为子区域。作为示例,计算系统可以使用诸如棋盘格的几何图案将输入网格任意地划分为子区域。然后,计算系统可以如上所述地仅变换高误差子区域(例如,热图中的“红色”子区域),或者可以同时变换高和中等误差子区域,如结合图14A的示例所讨论的。如果需要,计算系统可以将输入网格划分成棋盘格,从而仅区域的一部分(例如,一半,诸如棋盘格的红色空间)被直接变换,而区域的另一半(例如,棋盘格的白色空间)可以被间接地调整,例如通过线性插值(例如,响应于其与直接变换的顶点的连接而被自动地调整)。
图14B示出了用于将基础网格与目标网格相匹配的另一示例过程1450。示例过程1450可以由一个或多个计算系统执行,该系统包括远程处理模块270、本地处理和数据模块260、图6B中的化身处理和渲染系统690、图9A中的远程计算系统920、其他合适的计算装置以及这些和其他计算设装置组合。
在框1451处,计算系统可以获得要匹配的网格,包括至少一个基础网格和至少一个目标网格。
在框1452处,计算系统可以识别网格之间的误差区域,并且可以基于误差水平隔离网格的区域。作为示例,高误差水平的区域可以被发送到框1458,中误差水平的区域可以被发送到框1456,低或无误差水平的区域可以被发送到框1454。框1454可以将低或无误差水平的区域传递到框1464而不进行变换。
在框1460和1462处,计算系统可以将期望的变换或变形应用于基础网格,作为将基础网格与目标网格相匹配的一部分。作为示例,计算系统可以在框1462中将刚性变换应用于基础网格的具有高误差(例如,与目标网格差地匹配)的区域,并且可以在框1460中将非刚性变形应用于基础网格的具有中等误差(例如,与目标网格几乎相匹配)的区域。
在框1464处,计算系统可以测试调整后的基础网格,以查看其是否与目标网格充分地匹配。另外,计算系统可以确定迭代的匹配过程应停止,因为已满足了条件,例如,迭代的匹配过程已超过某个预定的迭代次数或某个预定的时间长度或限定已满足匹配的阈值。如果计算系统确定基础网格不充分地匹配(并且不满足用于停止该过程的其他条件),则计算系统可以返回到框1452。如果计算系统确定基础网格被充分相地匹配(或者满足用于停止该过程的其他条件),则计算系统可以进行到框1466。
在框1466处,计算系统可以输出已经与目标网格相匹配的所匹配的基础网格。在一些实施例中,在框1466处计算系统的输出可以被称为混合形状。
图14C示出了用于将基础网格与目标网格相匹配的另一示例过程1480。示例过程1480可以由一个或多个计算系统来执行,该系统包括远程处理模块270、本地处理和数据模块260、图6B中的化身处理和渲染系统690、图9A中的远程计算系统920、其他合适的计算装置以及这些和其他计算装置的组合。
在框1481处,计算系统可以接收输入网格,例如基础网格和目标网格。
在框1482处,计算系统可以识别基础网格内的第一区域和第二区域。在一些实施例中,第一区域可以表示基础网格的相对于目标网格具有相对高的误差水平的区域(例如,一个或多个顶点),并且第二区域可以表示基础网格的具有相对低的误差水平的区域。在其他实施例中,可以基于除误差水平之外的因素来识别第一区域和第二区域。作为示例,第一和第二区域可以使用特定图案通过随机选择(例如,将棋盘格图案应用于基础网格,并将棋盘格中的白色正方形标识为第一区域以及将棋盘格中的黑色正方形标识为第二区域)或者通过选择具有较高细节的区域(例如,具有较大顶点密度的区域)作为第一区域以及选择具有较低细节的区域作为第二区域来识别。
在框1484处,计算系统可以将刚性变换应用于基础网格的第一区域(例如,基础网格中的与第一区域对应的顶点)。
在框1484处,计算系统可以将非刚性变形应用于基础网格的第二区域(例如,基础网格中的与第二区域对应的顶点)。
在框1488处,计算系统可以测试以查看当前变换的基础网格是否与目标网格充分地匹配。如果未充分地匹配,则计算系统可诸如通过返回到图14C所示的框1482来迭代匹配过程。如果充分地匹配,则计算系统可以进行到框1490,并提供输出,例如与目标网格相匹配的变换后的基础网格,有时称为混合形状。可以应用收敛性测试,使得迭代次数超过最大迭代次数或者网格之间的基准误差(例如,平均误差、最大误差等)低于阈值。例如,阈值可以指示距离,其中网格在该距离以下被充分地匹配(例如,阈值距离可以是0.5cm、0.1cm、0.05cm、0.01cm等)。
其他考虑
本文描述和/或附图中描绘的过程、方法和算法中的每一个可以体现在由一个或多个物理计算系统、硬件计算机处理器、应用专用电路和/或被配置为执行特定和特殊的计算机指令的电子硬件所执行的代码模块中并且完全或部分地由该代码模块自动化。例如,计算系统可以包括用特定计算机指令编程的通用计算机(例如,服务器)或专用计算机、专用电路等等。代码模块可以被编译并链接到可执行程序中,安装在动态链接库中,或者可以用解释的编程语言编写。在一些实现方式中,特定操作和方法可以由专用于给定功能的电路来执行。
此外,本公开的功能的某些实现方式在数学上、计算上或技术上是足够复杂的,使得应用专用硬件或一个或多个物理计算设备(利用适当的专用可执行指令)对于执行功能可能是必需的,例如由于所涉及的计算的数量或复杂性或为了基本上实时提供结果。例如,动画或视频可以包括许多帧,每帧具有数百万个像素,并且具体地编程的计算机硬件对于处理视频数据是必需的以在商业上合理的时间量内提供期望的图像处理任务或应用。
代码模块或任何类型的数据可以存储在任何类型的非暂时性计算机可读介质上,诸如物理计算机存储器,包括硬盘驱动器、固态存储器、随机存取存储器(RAM)、只读存储器(ROM)、光盘、易失性或非易失性存储器、其组合和/或类似物。方法和模块(或数据)也可以在各种计算机可读传输介质上作为生成的数据信号(例如,作为载波或其他模拟或数字传播信号的一部分)传输,所述传输介质包括基于无线的和有线/基于线缆的介质,并且可以采取多种形式(例如,作为单个或多路复用模拟信号的一部分,或者作为多个离散数字分组或帧)。所公开的方法或方法步骤的结果可以持久地或以其他方式存储在任何类型的非暂时性有形计算机存储器中,或者可以经由计算机可读传输介质来通信。
在此描述的和/或在附图中描绘的流程图中的任何过程、框、状态、步骤或功能应当被理解为潜在地表示代码模块、代码段或代码部分,代码包括一个或多个可执行指令以实现特定功能(例如,逻辑或算术)或方法中的步骤。各种方法、框、状态、步骤或功能可以与本文提供的说明性示例相组合,重新排列,添加,删除,修改或以其他方式改变。在一些实施例中,附加的或不同的计算系统或代码模块可以执行本文描述的功能中的一些或全部。本文描述的方法和过程也不限于任何特定的序列,并且与其相关的块、步骤或状态可以以适当的其他序列来执行,例如串行、并行或以某种其他方式。可以向所公开的示例性实施例添加任务或事件或者从中移除任务或事件。此外,本文描述的实现中的各种系统组件的分离是出于说明的目的,并且不应该被理解为在所有实现方式中都需要这种分离。应该理解,所描述的程序组件、方法和系统通常可以一起集成在单个计算机产品中或者封装到多个计算机产品中。许多实现方式变化是可能的。
过程、方法和系统可以在网络(或分布式)计算环境中实施。网络环境包括企业范围的计算机网络、内联网、局域网(LAN)、广域网(WAN)、个人区域网络(PAN)、云计算网络、众包计算网络、因特网和万维网。网络可以是有线或无线网络或任何其他类型的通信网络。
本公开的系统和方法各自具有若干创新性方面,其中没有单独一个对于本文公开的期望属性完全负责或需要。上述各种特征和过程可以彼此独立地使用,或者可以以各种方式组合。所有可能的组合和子组合均旨在落入本公开的范围内。对于本公开中所描述的实现方式的各种修改对于本领域技术人员来说可能是显而易见的,并且在不脱离本公开的精神或范围的情况下,可将本文中定义的一般原理应用于其他实现方式。因此,权利要求不旨在限于本文所示的实现方式,而是应被赋予与本公开一致的最宽范围、本文公开的原理和新颖特征。
在本说明书中在分开的实现方式的情境中描述的某些特征也可以在单个实现方式中组合实施。相反,在单个实现方式的情境中描述的各种特征也可以分开或者以任何合适的子组合在多个实现方式中实施。此外,尽管上文可以将特征描述为以某些组合起作用并且甚至最初如此要求,但是来自所要求保护的组合的一个或多个特征可以在一些情况下从组合中删除,并且所要求保护的组合可以针对子组合或变体的子组合。没有单个特征或特征组对于每个实施例是必要或是必不可少的。
除非另有明确说明,否则本文中使用的条件语言,诸如“能够”、“可能”“应该”、“可以”、“例如”等等,或者在情境中以其他方式理解的,为一般地意在表达某些实施例包括,而其他实施例不包括某些特征、元件和/或步骤。因此,这样的条件语言通常不旨在暗示特征、元素和/或步骤以任何方式对于一个或多个实施例是必需的,或者一个或多个实施例必然包括用于在有或者没有作者输入或提示的情况下决定是否这些特征、元件和/或步骤包括在任何特定实施例中或将在任何特定实施例中执行。术语“包括”、“包含”、“具有”等是同义词,并且以开放式的方式包含性地使用,并且不排除附加的元件、特征、动作、操作等等。此外,术语“或”以其包含性含义(而不是其专有含义)使用,因此当用于例如连接元素列表时,术语“或”表示一个、一些或全部列表中的元素。另外,除非另有说明,否则本申请和所附权利要求中使用的冠词“一”、“一个”和“所述”应被解释为表示“一个或多个”或“至少一个”。
如本文所使用的,提及项目列表中的“至少一个”的短语是指这些项目的任何组合,包括单个成员。举例来说,“A、B或C中的至少一个”旨在覆盖:A、B、C、A和B、A和C、B和C以及A、B和C。连接语言例如短语“X、Y和Z中的至少一个”,除非另有特别说明,否则在通常用于表达项目,术语等可以是X、Y或Z中的至少一个。因此,这样的连接语言通常并不意味着某些实施方案需要X中的至少一个,Y中的至少一个和Z中的至少一个存在。
类似地,尽管可以在特定顺序中在附图中描绘操作,但应认识到,这些操作不需要以所示出的特定顺序或按顺序执行,或者所有所示操作都要执行,以实现理想的结果。此外,附图可以以流程图的形式示意性地描绘一个或多个示例过程。然而,未示出的其他操作可以并入示意性说明的示例性方法和过程中。例如,可以在任何所示操作之前、之后、同时或之间执行一个或多个附加操作。另外,在其他实施中,操作可以重新安排或重新排序。在某些情况下,多任务和并行处理可能是有利的。此外,上述实现方式中的各种系统组件的分离不应该被理解为在所有实现方式中都需要这种分离,并且应该理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或者封装到多个软件产品。另外,其他实现方式在以下权利要求的范围内。在一些情况下,权利要求中列举的动作可以以不同的顺序执行并且仍然实现期望的结果。
示例
本文描述了将用于虚拟化身或对象的基础网格与虚拟化身或对象的目标网格相匹配的系统的各种示例,例如以下列举的示例:
示例1:一种用于将用于虚拟化身的基础网格与所述虚拟化身的目标网格相匹配的系统,所述系统包括:非暂时性计算机存储器,其被配置为存储用于所述虚拟化身的所述目标网格和用于所述虚拟化身的所述基础网格,所述目标网格包括多个目标网格顶点,并且所述基础网格包括多个基础网格顶点;以及与所述非暂时性计算机存储器通信的硬件处理器,所述硬件处理器被编程为:(i)确定所述目标网格与所述基础网格之间的多个误差区域,每个误差区域表示所述基础网格顶点的位置相对于所述目标网格顶点的位置之间的偏差,所述多个误差区域包括具有第一误差的第一误差区域和具有第二误差的第二误差区域,所述第二误差小于所述第一误差;(ii)对所述第一误差区域中的所述基础网格顶点应用刚性变换;(iii)对所述第二误差区域中的所述基础网格顶点应用非刚性变换;对操作(i)、(ii)和(iii)进行迭代,直到变换后的基础网格满足收敛性准则;以及至少部分地基于所述变换后的基础网格,输出用于所述虚拟化身的混合形状。
示例2:根据上述示例中的任一项所述的系统,其中,从执行姿势的人或动物对象的拍摄扫描来确定所述目标网格。
示例3:根据上述示例中的任一项所述的系统,其中,所述多个误差区域包括具有小于所述第二误差的第三误差的第三误差区域。
示例4:根据上述示例中的任一项所述的系统,其中,所述硬件处理器被编程为不对所述第三区域中的所述基础网格顶点应用变换。
示例5:根据上述示例中的任一项所述的系统,其中,所述刚性变换包括旋转和平移。
示例6:根据上述示例中的任一项所述的系统,其中,所述刚性变换包括刚性最近邻变换。
示例7:根据上述示例中的任一项所述的系统,其中,所述非刚性变换包括表面上最近点变换。
示例8:根据上述示例中的任一项所述的系统,其中,所述刚性变换或所述非刚性变换中的一者或两者包括第一组顶点与第二组顶点之间的衰减。
示例9:根据上述示例中的任一项所述的系统,其中,所述硬件处理器进一步被编程为:确定第一衰减区域;确定在所述第一衰减区域之外的第二衰减区域;对所述第一衰减区域中的基础网格顶点应用所述刚性变换或所述非刚性变换;以及对所述第二衰减区域中的基础网格顶点羽化所述刚性变换或所述非刚性变换。
示例10:根据上述示例中的任一项所述的系统,其中,所述硬件处理器进一步被编程为不对所述第二衰减区域之外的基础网格顶点应用变换。
示例11:根据上述示例中的任一项所述的系统,其中,所述硬件处理器被编程为至少部分地基于与所述第一误差区域或所述第二误差区域相关联的误差值来确定所述第一衰减区域的大小。
示例12:根据上述示例中的任一项所述的系统,其中,所述硬件处理器进一步被编程为在完成操作(ii)和(iii)之后使所述基础网格顶点驰豫。
示例13:根据上述示例中的任一项所述的系统,其中,所述收敛性准则包括最大迭代数量或者所述变换后的基础网格与所述目标网格之间的误差低于阈值误差。
示例14:根据上述示例中的任一项所述的系统,其中,所述硬件处理器进一步被编程为至少部分地基于所述多个误差区域来生成热图。
示例15:一种用于将用于虚拟化身的基础网格与所述虚拟化身的目标网格相匹配的系统,所述系统包括:非暂时性计算机存储器,其被配置为存储用于所述虚拟化身的所述目标网格和用于所述虚拟化身的所述基础网格,所述目标网格包括多个目标网格顶点,并且所述基础网格包括多个基础网格顶点;以及与所述非暂时性计算机存储器通信的硬件处理器,所述硬件处理器被编程为:识别所述基础网格的第一组区域;识别所述基础网格的第二组区域;对所述第一组区域中的所述基础网格顶点应用刚性变换,以提供变换后的基础网格;以及输出所述变换后的基础网格。
示例16:根据上述示例中的任一项所述的系统,其中,所述第一组区域和所述第二组区域形成棋盘格图案。
示例17:根据上述示例中的任一项所述的系统,其中,所述硬件处理器被编程为至少部分地基于在所述第一组区域中应用的刚性变换来对所述第二组区域中的基础网格顶点进行插值。
示例18:根据上述示例中的任一项所述的系统,其中,所述硬件处理器被编程为:将非刚性变换应用于所述第二组区域中的所述变换后的基础网格中的基础网格顶点,以提供第二变换后的基础网格。
示例19:根据上述示例中的任一项所述的系统,其中,为了识别所述基础网格的所述第一组区域或所述第二组区域,所述硬件处理器被编程为确定所述基础网格顶点相对于所述目标网格顶点的位置之间的误差。
示例20:根据上述示例中的任一项所述的系统,其中,与所述第二组区域相比,所述第一组区域与更大的误差相关联。
示例21:根据上述示例中的任一项所述的系统,其中,为了将所述刚性变换应用于所述基础网格顶点,所述硬件处理器被编程为:在所述第一组区域和所述第二组区域之间对所述基础网格顶点羽化所述刚性变换。
示例22:一种用于为可变形对象的数字表示生成至少一个混合形状的方法,所述方法包括:使用计算设备获得第一网格和第二网格,每个网格包括多个网格顶点;使用所述计算设备通过以下操作来将所述第一网格与所述第二网格相匹配:(i)确定所述第一网格的第一区域和第二区域中的所述网格顶点相对于所述第二网格的所述网格顶点之间的距离差;(ii)对所述第一网格的所述第一区域中的所述网格顶点应用第一类型变换,以减小与所述第一区域中的网格顶点相关联的所述距离差;以及(iii)对所述第一网格的所述第二区域中的所述网格顶点应用第二类型变换,以减小与所述第二区域中的网格顶点相关联的所述距离差;以及使用所述计算设备至少基于具有变换后的网格顶点的所述第一网格来提供混合形状。
示例23:根据上述示例中的任一项所述的方法,其中,所述第一类型变换包括刚性变换,并且其中所述第二类型变换包括非刚性变形。
示例24:根据上述示例中的任一项所述的方法,其中,所述第一类型变换包括刚性变换,其中所述第一网格的所述第一区域的形状被维持,并且其中所述第二类型变换包括非刚性变形,其中所述第一网格的所述第二区域的形状被更改以匹配所述第二网格的给定区域的形状。
示例25:根据上述示例中的任一项所述的方法,其中,将所述第一网格与所述第二网格相匹配进一步包括确定与所述第一区域相关联的所述距离误差大于与所述第二区域相关联的所述距离误差。
示例26:根据上述示例中的任一项所述的方法,其中,将所述第一网格与所述第二网格相匹配进一步包括确定满足收敛性准则,并且其中提供所述混合形状包括在确定满足所述收敛性准则之后提供所述混合形状。
示例27:根据上述示例中的任一项所述的方法,其中,确定满足收敛性准则包括确定所述第一网格的网格顶点相对于所述第二网格的对应网格顶点之间的所述距离差小于给定量。
示例28:根据上述示例中的任一项所述的方法,其中,将所述第一网格与所述第二网格相匹配进一步包括迭代操作(ii)和(iii)中的至少一个。
示例29:根据上述示例中的任一项所述的方法,其中,确定满足所述收敛性准则包括确定操作(ii)和(iii)中的所述至少一个已被迭代至少给定次数。
示例30:根据上述示例中的任一项所述的方法,其中,使用所述计算设备获得所述第一网格包括移动以所述可变形对象的数字表示的关节。
示例31:根据上述示例中的任一项所述的方法,其中,使用所述计算设备获得所述第二网格包括扫描所述可变形对象的真实世界示例。
示例32:根据上述示例中的任一项所述的方法,其中,使用所述计算设备获得所述第一网格包括移动以所述可变形对象的数字表示的关节,以使得所述可变形对象处于给定姿势。
示例33:根据上述示例中的任一项所述的方法,其中,使用所述计算设备获得所述第二网格包括扫描以所述给定姿势的所述可变形对象的真实世界示例。
示例34:根据上述示例中的任一项所述的方法,其中,所述可变形对象包括人的数字化身,并且其中,使用所述计算设备获得所述第一网格包括将人的所述数字化身移动到给定姿势。
示例35:根据上述示例中的任一项所述的方法,其中,使用所述计算设备获得所述第二网格包括在所述人处于所述给定姿势时扫描所述人。
示例36:一种用于为可变形对象的数字表示生成至少一个混合形状的系统,所述系统包括:非暂时性计算机存储器,其被配置为存储第一网格和第二网格,每个网格包括多个网格顶点;以及硬件处理器,其被配置为将所述第一网格与所述第二网格相匹配,所述硬件处理器与所述非暂时性计算机存储器通信,并且所述硬件处理器被编程为:(i)确定所述第一网格的第一区域和第二区域中的所述网格顶点相对于所述第二网格的所述网格顶点之间的距离差;(ii)对所述第一网格的所述第一区域中的所述网格顶点应用第一类型变换,以减小与所述第一区域中的网格顶点相关联的所述距离差;(iii)对所述第一网格的所述第二区域中的所述网格顶点应用第二类型变换,以减小与所述第二区域中的网格顶点相关联的所述距离差;以及(iv)至少基于具有变换后的网格顶点的所述第一网格提供混合形状。
示例37:根据上述示例中的任一项所述的系统,其中,所述第一类型变换包括刚性变换,并且其中所述第二类型变换包括非刚性变形。
示例38:根据上述示例中的任一项所述的系统,其中,所述第一类型变换包括刚性变换,其中所述第一网格的所述第一区域的形状被维持,并且其中所述第二类型变换包括非刚性变形,其中所述第一网格的所述第二区域的形状被更改以匹配所述第二网格的给定区域的形状。
示例39:根据上述示例中的任一项所述的系统,其中,所述硬件处理器被编程为确定与所述第一区域相关联的所述距离误差大于与所述第二区域相关联的所述距离误差。
示例40:根据上述示例中的任一项所述的系统,其中,所述硬件处理器被编程为确定满足收敛性准则并在确定满足所述收敛性准则之后提供所述混合形状。
示例41:根据上述示例中的任一项所述的系统,其中,所述硬件处理器被编程为基于确定所述第一网格的网格顶点相对于所述第二网格的对应网格顶点之间的所述距离差小于给定量,来确定满足所述收敛性准则。
示例42:根据上述示例中的任一项所述的系统,其中,所述硬件处理器被编程为迭代操作(ii)和(iii)中的至少一个,以使所述第一网格与所述第二网格相匹配。
示例43:根据上述示例中的任一项所述的系统,其中,所述硬件处理器被编程为基于确定操作(ii)和(iii)中的所述至少一个已被迭代至少给定次数,来确定满足所述收敛性准则。
示例44:根据上述示例中的任一项所述的系统,其中,所述硬件处理器被编程为移动以所述可变形对象的数字表示的关节,以获得所述第一网格。
示例45:根据上述示例中的任一项所述的系统,其中,所述硬件处理器被编程为扫描所述可变形对象的真实世界示例,以获得所述第二网格。
示例46:根据上述示例中的任一项所述的系统,其中,所述硬件处理器被编程为移动以所述可变形对象的数字表示的关节以使得所述可变形对象处于给定姿势,以获得所述第一网格。
示例47:根据上述示例中的任一项所述的系统,其中,所述硬件处理器被编程为扫描以所述给定姿势的所述可变形对象的真实世界示例,以获得所述第二网格。
示例48:根据上述示例中的任一项所述的系统,其中,所述可变形对象包括人的数字化身,并且其中,所述硬件处理器被编程为将人的所述数字化身移动到给定姿势,以获得所述第一网格。
示例49:根据上述示例中的任一项所述的系统,其中,所述硬件处理器被编程为在所述人处于所述给定姿势时扫描所述人,以获得所述第二网格。
示例50:一种用于使基础网格与目标网格相匹配的方法,所述方法包括:使用计算设备获得所述基础网格和所述目标网格,每个网格包括多个顶点;使用计算设备通过以下操作来使所述基础网格与所述目标网格相匹配:(i)将第一类型变换的至少一次迭代应用于所述基础网格的至少一些所述顶点,直到所述基础网格与所述目标网格之间的距离差低于第一阈值;以及(ii)将第二类型变换的至少一次迭代应用于所述基础网格的至少一些所述顶点,直到所述基础网格与所述目标网格之间的距离差低于第二阈值,其中所述第二阈值小于所述第一阈值;以及使用所述计算设备至少基于具有变换后的顶点的所述基础网格来提供输出。
示例51:根据上述示例中的任一项所述的方法,其中,所述第一类型变换包括将所述基础网格中的至少一些所述顶点朝向所述目标网格的对应顶点的刚性变换。
示例52:根据上述示例中的任一项所述的方法,其中,所述刚性变换包括刚性最近邻变换。
示例53:根据上述示例中的任一项所述的方法,其中,所述第二类型变换包括所述基础网格中的至少一些所述顶点朝向所述目标网格的对应顶点的非刚性变形。
示例54:根据上述示例中的任一项所述的方法,其中,所述非刚性变形包括表面上最近点(CPOS)变形。
示例55:根据上述示例中的任一项所述的方法,其中,应用所述第二类型变换的至少一次迭代直到所述距离差低于所述第二阈值包括:(a)将所述第二类型变换应用于基础网格的至少一些所述顶点;(b)确定所述基础网格的所述顶点相对于所述目标网格的对应顶点之间的距离差;以及迭代操作(a)和(b),直到所确定的距离差的平均误差低于所述第二阈值。
示例56:根据上述示例中的任一项所述的方法,其中,应用所述第二类型变换的至少一次迭代直到所述距离差低于所述第二阈值包括:(1)将所述第二类型变换应用于所述基础网格的至少一些的所述顶点;(2)确定所述基础网格的所述顶点相对于所述目标网格的对应顶点之间的距离差;以及迭代操作(1)和(2),直到所确定的距离差的最大误差低于所述第二阈值。
示例57:根据上述示例中的任一项所述的方法,其中,应用所述第二类型变换的至少一次迭代直到所述距离差低于所述第二阈值包括:(A)将所述第二类型变换应用于所述基础网格的至少一些的所述顶点;(B)确定所述基础网格的所述顶点相对于所述目标网格的对应顶点之间的距离差;以及迭代操作(A)和(B),直到所确定的距离差的最大误差小于0.5cm。
示例58:根据上述示例中的任一项所述的方法,其中,所述第一类型变换包括所述基础网格的至少一些所述顶点朝向所述目标网格的对应顶点的刚性变换,并且其中,应用所述第一类型变换的至少一次迭代包括:确定衰减区域;对所述衰减区域中的所述基础网格的所述顶点应用所述刚性变换;以及对所述衰减区域之外所述基础网格的所述顶点羽化所述刚性变换。
示例59:根据上述示例中的任一项所述的方法,其中,所述第一类型变换包括所述基础网格的至少一些所述顶点朝向所述目标网格的对应顶点的刚性变换,并且其中,应用所述第一类型变换的至少一次迭代包括:识别所述基础网格中的距离差大于所述第一阈值的顶点的分组,其中,顶点的所述分组中的给定顶点在所述分组中具有最大的距离差;至少部分地基于所述最大距离差的大小来确定衰减区域的尺寸;对所述衰减区域中的所述基础网格的所述顶点应用所述刚性变换;以及对所述衰减区域之外的所述基础网格的所述顶点羽化所述刚性变换。
示例60:一种用于使基础网格与目标网格相匹配的系统,所述系统包括:非暂时性计算机存储器,其被配置为存储所述基础网格和所述目标网格,每个网格包括多个顶点;以及硬件处理器,其被配置为使所述基础网格与所述目标网格相匹配,所述硬件处理器与所述非暂时性计算机存储器通信,并且所述硬件处理器被编程为:(i)将第一类型变换的至少一次迭代应用于所述基础网格的至少一些所述顶点,直到所述基础网格与所述目标网格之间的距离差低于第一阈值;以及(ii)将第二类型变换的至少一次迭代应用于所述基础网格的至少一些所述顶点,直到所述基础网格与所述目标网格之间的距离差低于第二阈值,其中所述第二阈值小于所述第一阈值;以及(iii)至少基于具有变换后的顶点的所述基础网格来提供输出。
示例61:根据上述示例中的任一项所述的系统,其中,所述第一类型变换包括将所述基础网格中的至少一些所述顶点朝向所述目标网格的对应顶点的刚性变换。
示例62:根据上述示例中的任一项所述的系统,其中,所述刚性变换包括刚性最近邻变换。
示例63:根据上述示例中的任一项所述的系统,其中,所述第二类型变换包括所述基础网格中的至少一些所述顶点朝向所述目标网格的对应顶点的非刚性变形。
示例64:根据上述示例中的任一项所述的系统,其中,所述非刚性变形包括表面上最近点(CPOS)变形。
示例65:根据上述示例中的任一项所述的系统,其中,所述硬件处理器被编程为:(a)将所述第二类型变换应用于基础网格的至少一些所述顶点;(b)确定所述基础网格的所述顶点相对于所述目标网格的对应顶点之间的距离差;以及迭代操作(a)和(b),直到所确定的距离差的平均误差低于所述第二阈值。
示例66:根据上述示例中的任一项所述的系统,其中,所述硬件处理器被编程为:(1)将所述第二类型变换应用于所述基础网格的至少一些的所述顶点;(2)确定所述基础网格的所述顶点相对于所述目标网格的对应顶点之间的距离差;以及迭代操作(1)和(2),直到所确定的距离差的最大误差低于所述第二阈值。
示例67:根据上述示例中的任一项所述的系统,其中,所述硬件处理器被编程为:(A)将所述第二类型变换应用于所述基础网格的至少一些的所述顶点;(B)确定所述基础网格的所述顶点相对于所述目标网格的对应顶点之间的距离差;以及迭代操作(A)和(B),直到所确定的距离差的最大误差小于0.5cm。
示例68:根据上述示例中的任一项所述的系统,其中,所述第一类型变换包括所述基础网格的至少一些所述顶点朝向所述目标网格的对应顶点的刚性变换,并且其中,所述硬件处理器被便成为:确定衰减区域;对所述衰减区域中的所述基础网格的所述顶点应用所述刚性变换;以及对所述衰减区域之外所述基础网格的所述顶点羽化所述刚性变换。
示例69:根据上述示例中的任一项所述的系统,其中,所述第一类型变换包括所述基础网格的至少一些所述顶点朝向所述目标网格的对应顶点的刚性变换,并且其中,所述硬件处理器被编程为:识别所述基础网格中的距离差大于所述第一阈值的顶点的分组,其中,顶点的所述分组中的给定顶点在所述分组中具有最大的距离差;至少部分地基于所述最大距离差的大小来确定衰减区域的尺寸;对所述衰减区域中的所述基础网格的所述顶点应用所述刚性变换;以及对所述衰减区域之外的所述基础网格的所述顶点羽化所述刚性变换。
示例70:一种用于使基础网格与目标网格相匹配的方法,所述方法包括:使用计算设备获得基础网格和目标网格,每个网格包括多个顶点;使用所述计算设备通过以下操作使所述基础网格与所述目标网格相匹配:(i)确定所述基础网格的至少一些所述顶点相对于所述目标网格的距离差;(ii)识别所述基础网格中所述距离差高于第一阈值的顶点组;(iii)对所述基础网格中的所述顶点组应用刚性变换,以减小所述顶点组中的所述顶点的所述距离差并产生第一变换后的基础网格;以及(iv)对所述第一变换后的基础网格中的所述顶点组应用非刚性变换,以进一步减小所述顶点组中的所述顶点的所述距离差并产生第二变换后的基础网格;以及使用所述计算设备至少基于所述第二变换后的基础网格来提供混合形状。
示例71:根据上述示例中的任一项所述的方法,其中,在应用所述刚性变换的同时维持所述顶点组的形状。
示例72:根据上述示例中的任一项所述的方法,其中,所述顶点组的形状被更改以匹配所述目标网格的对应顶点的形状。
示例73:根据上述示例中的任一项所述的方法,其中,将所述刚性变换应用于所述顶点组包括:(1)将所述刚性变换应用于所述顶点组中的至少一些顶点;(2)确定所述顶点组中的所述顶点相对于所述目标网格的对应顶点的距离差;以及迭代操作(1)和(2),直到满足第一收敛性准则为止。
示例74:根据上述示例中的任一项所述的方法,其中,所述第一收敛性准则包括所确定的距离差中的最大误差低于所述第一阈值的准则。
示例75:根据上述示例中的任一项所述的方法,其中,所述第一收敛性准则包括已完成操作(1)和(2)的最大迭代次数的准则。
示例76:根据上述示例中的任一项所述的方法,其中,将所述非刚性变换应用于所述顶点组包括:(a)将所述非刚性变换应用于所述顶点组中的至少一些顶点;(b)确定所述顶点组中的的顶点相对于所述目标网格的对应顶点之间的距离差;以及迭代操作(a)和(b),直到满足第二收敛性准则为止。
示例77:根据上述示例中的任一项所述的方法,其中,所述第二收敛性准则包括所确定的距离差中的最大误差低于第二阈值的准则。
示例78:根据上述示例中的任一项所述的方法,其中,所述第二收敛性准则包括已完成操作(a)和(b)的最大迭代次数的准则。
示例79:一种用于使基础网格与目标网格相匹配的系统,所述系统包括:非暂时性计算机存储器,其被配置为存储所述基础网格和所述目标网格,每个网格包括多个顶点;以及硬件处理器,其被配置为将所述基础网格与所述目标网格相匹配,所述硬件处理器与所述非暂时性计算机存储器通信,并且所述硬件处理器被编程为:(i)确定所述基础网格的至少一些所述顶点相对于所述目标网格的距离差;(ii)识别所述基础网格中的所述距离差高于第一阈值的顶点组;(iii)对所述基础网格中的所述顶点组应用刚性变换,以减小所述顶点组中的所述顶点的所述距离差并产生第一变换后的基础网格;(iv)对所述第一变换后的基础网格中的所述顶点组应用非刚性变换,以进一步减小所述顶点组中的所述顶点的所述距离差并产生第二变换后的基础网格;以及(v)至少基于所述第二变换后的基础网格来提供混合形状。
示例80:根据上述示例中的任一项所述的系统,其中,所述硬件处理器被编程为在应用所述刚性变换的同时维持所述顶点组的形状。
示例81:根据上述示例中的任一项所述的系统,其中,所述硬件处理器被编程为更改所述顶点组的形状以匹配所述目标网格的对应顶点的形状。
示例82:根据上述示例中的任一项所述的系统,其中,所述硬件处理器被编程为:(1)将所述刚性变换应用于所述顶点组中的至少一些顶点;(2)确定所述顶点组中的所述顶点相对于所述目标网格的对应顶点的距离差;以及迭代操作(1)和(2),直到满足第一收敛性准则为止。
示例83:根据上述示例中的任一项所述的系统,其中,所述第一收敛性准则包括所确定的距离差中的最大误差低于所述第一阈值的准则。
示例84:根据上述示例中的任一项所述的系统,其中,所述第一收敛性准则包括已完成操作(1)和(2)的最大迭代次数的准则。
示例85:根据上述示例中的任一项所述的系统,其中,所述硬件处理器被编程为:(a)将所述非刚性变换应用于所述顶点组中的至少一些顶点;(b)确定所述顶点组中的的顶点相对于所述目标网格的对应顶点之间的距离差;以及迭代操作(a)和(b),直到满足第二收敛性准则为止。
示例86:根据上述示例中的任一项所述的系统,其中,所述第二收敛性准则包括所确定的距离差中的最大误差低于第二阈值的准则。
示例87:根据上述示例中的任一项所述的系统,其中,所述第二收敛性准则包括已完成操作(a)和(b)的最大迭代次数的准则。
可以组合任何上述示例。另外,可以用单个深度平面和/或一个或多个可变深度平面(即,提供随时间变化的适应提示的一个或多个具有可变聚焦能力的元件)来实现任何上述示例。
Claims (21)
1.一种用于将用于虚拟化身的基础网格与所述虚拟化身的目标网格相匹配的系统,所述系统包括:
非暂时性计算机存储器,其被配置为存储用于所述虚拟化身的所述目标网格和用于所述虚拟化身的所述基础网格,所述目标网格包括多个目标网格顶点,并且所述基础网格包括多个基础网格顶点;以及
与所述非暂时性计算机存储器通信的硬件处理器,所述硬件处理器被编程为:
(i)(i)确定所述目标网格与所述基础网格之间的多个误差区域,每个误差区域表示所述基础网格顶点的位置相对于所述目标网格顶点的位置之间的偏差,所述多个误差区域包括具有第一误差的第一误差区域和具有第二误差的第二误差区域,所述第二误差小于所述第一误差;
(ii)(ii)对所述第一误差区域中的所述基础网格顶点应用刚性变换;
(iii)(iii)对所述第二误差区域中的所述基础网格顶点应用非刚性变换;
(iv)对操作(i)、(ii)和(iii)进行迭代,直到变换后的基础网格满足收敛性准则;以及
(v)至少部分地基于所述变换后的基础网格,输出用于所述虚拟化身的混合形状。
2.根据权利要求1所述的系统,其中,从执行姿势的人或动物对象的拍摄扫描来确定所述目标网格。
3.根据权利要求1所述的系统,其中,所述多个误差区域包括具有小于所述第二误差的第三误差的第三误差区域。
4.根据权利要求3所述的系统,其中,所述硬件处理器被编程为不对所述第三区域中的所述基础网格顶点应用变换。
5.根据权利要求1所述的系统,其中,所述刚性变换包括旋转和平移。
6.根据权利要求1所述的系统,其中,所述刚性变换包括刚性最近邻变换。
7.根据权利要求1所述的系统,其中,所述非刚性变换包括表面上最近点变换。
8.根据权利要求1所述的系统,其中,所述刚性变换或所述非刚性变换中的一者或两者包括第一组顶点与第二组顶点之间的衰减。
9.根据权利要求1所述的系统,其中,所述硬件处理器进一步被编程为:
确定第一衰减区域;
确定在所述第一衰减区域之外的第二衰减区域;
对所述第一衰减区域中的基础网格顶点应用所述刚性变换或所述非刚性变换;以及
对所述第二衰减区域中的基础网格顶点羽化所述刚性变换或所述非刚性变换。
10.根据权利要求9所述的系统,其中,所述硬件处理器进一步被编程为不对所述第二衰减区域之外的基础网格顶点应用变换。
11.根据权利要求9所述的系统,其中,所述硬件处理器被编程为至少部分地基于与所述第一误差区域或所述第二误差区域相关联的误差值来确定所述第一衰减区域的尺寸。
12.根据权利要求1所述的系统,其中,所述硬件处理器进一步被编程为在完成操作(ii)和(iii)之后使所述基础网格顶点驰豫。
13.根据权利要求1所述的系统,其中,所述收敛性准则包括最大迭代数量或者所述变换后的基础网格与所述目标网格之间的误差低于阈值误差。
14.根据权利要求1所述的系统,其中,所述硬件处理器进一步被编程为至少部分地基于所述多个误差区域来生成热图。
15.一种用于将用于虚拟化身的基础网格与所述虚拟化身的目标网格相匹配的系统,所述系统包括:
非暂时性计算机存储器,其被配置为存储用于所述虚拟化身的所述目标网格和用于所述虚拟化身的所述基础网格,所述目标网格包括多个目标网格顶点,并且所述基础网格包括多个基础网格顶点;以及
与所述非暂时性计算机存储器通信的硬件处理器,所述硬件处理器被编程为:
(i)识别所述基础网格的第一组区域;
(ii)识别所述基础网格的第二组区域;
(iii)对所述第一组区域中的所述基础网格顶点应用刚性变换,以提供变换后的基础网格;以及
(iv)输出所述变换后的基础网格。
16.一种用于为可变形对象的数字表示生成至少一个混合形状的方法,所述方法包括:
使用计算设备获得第一网格和第二网格,每个网格包括多个网格顶点;
使用所述计算设备通过以下操作来将所述第一网格与所述第二网格相匹配:
(i)确定所述第一网格的第一区域和第二区域中的所述网格顶点相对于所述第二网格的所述网格顶点之间的距离差;
(ii)对所述第一网格的所述第一区域中的所述网格顶点应用第一类型变换,以减小与所述第一区域中的网格顶点相关联的所述距离差;以及
(iii)对所述第一网格的所述第二区域中的所述网格顶点应用第二类型变换,以减小与所述第二区域中的网格顶点相关联的所述距离差;以及
使用所述计算设备至少基于具有变换后的网格顶点的所述第一网格来提供混合形状。
17.一种用于为可变形对象的数字表示生成至少一个混合形状的系统,所述系统包括:
非暂时性计算机存储器,其被配置为存储第一网格和第二网格,每个网格包括多个网格顶点;以及
硬件处理器,其被配置为将所述第一网格与所述第二网格相匹配,所述硬件处理器与所述非暂时性计算机存储器通信,并且所述硬件处理器被编程为:
(i)确定所述第一网格的第一区域和第二区域中的所述网格顶点相对于所述第二网格的所述网格顶点之间的距离差;
(ii)对所述第一网格的所述第一区域中的所述网格顶点应用第一类型变换,以减小与所述第一区域中的网格顶点相关联的所述距离差;
(iii)对所述第一网格的所述第二区域中的所述网格顶点应用第二类型变换,以减小与所述第二区域中的网格顶点相关联的所述距离差;以及
(iv)至少基于具有变换后的网格顶点的所述第一网格提供混合形状。
18.一种用于使基础网格与目标网格相匹配的方法,所述方法包括:
使用计算设备获得所述基础网格和所述目标网格,每个网格包括多个顶点;
使用计算设备通过以下操作来使所述基础网格与所述目标网格相匹配:
(i)将第一类型变换的至少一次迭代应用于所述基础网格的至少一些所述顶点,直到所述基础网格与所述目标网格之间的距离差低于第一阈值;以及
(ii)将第二类型变换的至少一次迭代应用于所述基础网格的至少一些所述顶点,直到所述基础网格与所述目标网格之间的距离差低于第二阈值,其中所述第二阈值小于所述第一阈值;以及
使用所述计算设备至少基于具有变换后的顶点的所述基础网格来提供输出。
19.一种用于使基础网格与目标网格相匹配的系统,所述系统包括:
非暂时性计算机存储器,其被配置为存储所述基础网格和所述目标网格,每个网格包括多个顶点;以及
硬件处理器,其被配置为使所述基础网格与所述目标网格相匹配,所述硬件处理器与所述非暂时性计算机存储器通信,并且所述硬件处理器被编程为:
(i)将第一类型变换的至少一次迭代应用于所述基础网格的至少一些所述顶点,直到所述基础网格与所述目标网格之间的距离差低于第一阈值;以及
(ii)将第二类型变换的至少一次迭代应用于所述基础网格的至少一些所述顶点,直到所述基础网格与所述目标网格之间的距离差低于第二阈值,其中所述第二阈值小于所述第一阈值;以及
(iii)至少基于具有变换后的顶点的所述基础网格来提供输出。
20.一种用于使基础网格与目标网格相匹配的方法,所述方法包括:
使用计算设备获得基础网格和目标网格,每个网格包括多个顶点;
使用所述计算设备通过以下操作使所述基础网格与所述目标网格相匹配:
(i)确定所述基础网格的至少一些所述顶点相对于所述目标网格的距离差;
(ii)识别所述基础网格中所述距离差高于第一阈值的顶点组;
(iii)对所述基础网格中的所述顶点组应用刚性变换,以减小所述顶点组中的所述顶点的所述距离差并产生第一变换后的基础网格;以及
(iv)对所述第一变换后的基础网格中的所述顶点组应用非刚性变换,以进一步减小所述顶点组中的所述顶点的所述距离差并产生第二变换后的基础网格;以及
使用所述计算设备至少基于所述第二变换后的基础网格来提供混合形状。
21.一种用于使基础网格与目标网格相匹配的系统,所述系统包括:
非暂时性计算机存储器,其被配置为存储所述基础网格和所述目标网格,每个网格包括多个顶点;以及
硬件处理器,其被配置为将所述基础网格与所述目标网格相匹配,所述硬件处理器与所述非暂时性计算机存储器通信,并且所述硬件处理器被编程为:
(i)确定所述基础网格的至少一些所述顶点相对于所述目标网格的距离差;
(ii)识别所述基础网格中的所述距离差高于第一阈值的顶点组;
(iii)对所述基础网格中的所述顶点组应用刚性变换,以减小所述顶点组中的所述顶点的所述距离差并产生第一变换后的基础网格;
(iv)对所述第一变换后的基础网格中的所述顶点组应用非刚性变换,以进一步减小所述顶点组中的所述顶点的所述距离差并产生第二变换后的基础网格;以及
(v)至少基于所述第二变换后的基础网格来提供混合形状。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862635939P | 2018-02-27 | 2018-02-27 | |
US62/635,939 | 2018-02-27 | ||
PCT/US2019/017792 WO2019168673A1 (en) | 2018-02-27 | 2019-02-13 | Matching meshes for virtual avatars |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111771231A true CN111771231A (zh) | 2020-10-13 |
Family
ID=67684364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980015643.4A Pending CN111771231A (zh) | 2018-02-27 | 2019-02-13 | 用于虚拟化身的匹配网格 |
Country Status (7)
Country | Link |
---|---|
US (2) | US11074748B2 (zh) |
EP (1) | EP3759693A4 (zh) |
JP (2) | JP7342008B2 (zh) |
CN (1) | CN111771231A (zh) |
AU (1) | AU2019227506A1 (zh) |
CA (1) | CA3089316A1 (zh) |
WO (1) | WO2019168673A1 (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111771231A (zh) | 2018-02-27 | 2020-10-13 | 奇跃公司 | 用于虚拟化身的匹配网格 |
HK1253750A2 (zh) * | 2018-07-04 | 2019-06-28 | Bun Kwai | 用於將3d掃描對象轉換為化身的方法和裝置 |
US20200242280A1 (en) | 2019-01-30 | 2020-07-30 | Augmntr, Inc. | System and methods of visualizing an environment |
US20220237880A1 (en) * | 2019-05-31 | 2022-07-28 | Applications Mobiles Overview Inc. | System and method of generating a 3d representation of an object |
US10818059B1 (en) * | 2019-07-17 | 2020-10-27 | Pixar | Sculpt transfer |
US10861233B1 (en) * | 2019-07-17 | 2020-12-08 | Pixar | Mesh wrap based on affine-invariant coordinates |
CN110517339B (zh) | 2019-08-30 | 2021-05-25 | 腾讯科技(深圳)有限公司 | 一种基于人工智能的动画形象驱动方法和装置 |
US11380037B2 (en) * | 2019-10-30 | 2022-07-05 | Tencent Technology (Shenzhen) Company Limited | Method and apparatus for generating virtual operating object, storage medium, and electronic device |
WO2021087425A1 (en) * | 2019-10-31 | 2021-05-06 | Bodygram, Inc. | Methods and systems for generating 3d datasets to train deep learning networks for measurements estimation |
US20210142342A1 (en) * | 2019-11-10 | 2021-05-13 | Zhiqing Cheng | Methods and systems for provisioning digital data to an individual |
US11587276B2 (en) | 2019-12-03 | 2023-02-21 | Disney Enterprises, Inc. | Data-driven extraction and composition of secondary dynamics in facial performance capture |
US11687778B2 (en) | 2020-01-06 | 2023-06-27 | The Research Foundation For The State University Of New York | Fakecatcher: detection of synthetic portrait videos using biological signals |
CN111260764B (zh) * | 2020-02-04 | 2021-06-25 | 腾讯科技(深圳)有限公司 | 一种制作动画的方法、装置及存储介质 |
CN111563945B (zh) * | 2020-04-30 | 2021-04-20 | 完美世界(北京)软件科技发展有限公司 | 角色变身动画的生成方法、装置、设备及可读存储介质 |
US20210374517A1 (en) * | 2020-05-27 | 2021-12-02 | Babylon Partners Limited | Continuous Time Self Attention for Improved Computational Predictions |
CN111696184B (zh) * | 2020-06-10 | 2023-08-29 | 上海米哈游天命科技有限公司 | 骨骼蒙皮融合确定方法、装置、设备和存储介质 |
US11151767B1 (en) * | 2020-07-02 | 2021-10-19 | Disney Enterprises, Inc. | Techniques for removing and synthesizing secondary dynamics in facial performance capture |
TW202221649A (zh) * | 2020-11-24 | 2022-06-01 | 圓剛科技股份有限公司 | 利用特徵補償的成像裝置及其成像方法 |
US11423601B1 (en) | 2021-04-29 | 2022-08-23 | Dg Holdings, Inc. | Transforming a three-dimensional virtual model to a manipulatable format |
US20230063681A1 (en) * | 2021-08-25 | 2023-03-02 | Sony Interactive Entertainment Inc. | Dynamic augmentation of stimuli based on profile of user |
US11847756B2 (en) * | 2021-10-20 | 2023-12-19 | Snap Inc. | Generating ground truths for machine learning |
CN114332412B (zh) * | 2021-12-30 | 2023-06-16 | 中铁二院工程集团有限责任公司 | 一种顾及比例尺的三维模型数据抽稀简化方法及装置 |
US11928781B2 (en) | 2022-04-01 | 2024-03-12 | Microsoft Technology Licensing, Llc | Mesh simplification |
WO2024118955A1 (en) * | 2022-12-01 | 2024-06-06 | SlingshotVR Inc. | Systems and methods for immersive digital experiences |
Family Cites Families (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6222525B1 (en) | 1992-03-05 | 2001-04-24 | Brad A. Armstrong | Image controllers with sheet connected sensors |
US5670988A (en) | 1995-09-05 | 1997-09-23 | Interlink Electronics, Inc. | Trigger operated electronic device |
US20070081123A1 (en) | 2005-10-07 | 2007-04-12 | Lewis Scott W | Digital eyewear |
US11428937B2 (en) | 2005-10-07 | 2022-08-30 | Percept Technologies | Enhanced optical and perceptual digital eyewear |
US8696113B2 (en) | 2005-10-07 | 2014-04-15 | Percept Technologies Inc. | Enhanced optical and perceptual digital eyewear |
US8659596B2 (en) | 2008-11-24 | 2014-02-25 | Mixamo, Inc. | Real time generation of animation-ready 3D character models |
US9304319B2 (en) | 2010-11-18 | 2016-04-05 | Microsoft Technology Licensing, Llc | Automatic focus improvement for augmented reality displays |
EP4036630A1 (en) | 2010-12-24 | 2022-08-03 | Magic Leap, Inc. | Image display system |
US10156722B2 (en) | 2010-12-24 | 2018-12-18 | Magic Leap, Inc. | Methods and systems for displaying stereoscopy with a freeform optical system with addressable focus for virtual and augmented reality |
JP6316186B2 (ja) | 2011-05-06 | 2018-04-25 | マジック リープ, インコーポレイテッドMagic Leap,Inc. | 広範囲同時遠隔ディジタル提示世界 |
US10795448B2 (en) | 2011-09-29 | 2020-10-06 | Magic Leap, Inc. | Tactile glove for human-computer interaction |
CN106484115B (zh) | 2011-10-28 | 2019-04-19 | 奇跃公司 | 用于增强和虚拟现实的系统和方法 |
US9851563B2 (en) | 2012-04-05 | 2017-12-26 | Magic Leap, Inc. | Wide-field of view (FOV) imaging devices with active foveation capability |
US20150178988A1 (en) * | 2012-05-22 | 2015-06-25 | Telefonica, S.A. | Method and a system for generating a realistic 3d reconstruction model for an object or being |
US9671566B2 (en) | 2012-06-11 | 2017-06-06 | Magic Leap, Inc. | Planar waveguide apparatus with diffraction element(s) and system employing same |
EP2895910A4 (en) | 2012-09-11 | 2016-04-20 | Magic Leap Inc | ERGONOMIC HEAD-MOUNTED DISPLAY DEVICE AND OPTICAL SYSTEM |
IL301489B2 (en) | 2013-01-15 | 2024-08-01 | Magic Leap Inc | A system for scanning electromagnetic imaging radiation |
CA2905427C (en) | 2013-03-11 | 2022-07-12 | Magic Leap, Inc. | System and method for augmented and virtual reality |
KR102458124B1 (ko) | 2013-03-15 | 2022-10-21 | 매직 립, 인코포레이티드 | 디스플레이 시스템 및 방법 |
EP3410715A1 (en) * | 2013-04-05 | 2018-12-05 | Vid Scale, Inc. | Inter-layer reference picture enhancement for multiple layer video coding |
US10262462B2 (en) | 2014-04-18 | 2019-04-16 | Magic Leap, Inc. | Systems and methods for augmented and virtual reality |
US9874749B2 (en) | 2013-11-27 | 2018-01-23 | Magic Leap, Inc. | Virtual and augmented reality systems and methods |
US9202300B2 (en) * | 2013-06-20 | 2015-12-01 | Marza Animation Planet, Inc | Smooth facial blendshapes transfer |
WO2015057994A1 (en) | 2013-10-16 | 2015-04-23 | Kaji Masamune | Virtual or augmented reality headsets having adjustable interpupillary distance |
US9857591B2 (en) | 2014-05-30 | 2018-01-02 | Magic Leap, Inc. | Methods and system for creating focal planes in virtual and augmented reality |
KR102651578B1 (ko) | 2013-11-27 | 2024-03-25 | 매직 립, 인코포레이티드 | 가상 및 증강 현실 시스템들 및 방법들 |
US10258256B2 (en) * | 2014-12-09 | 2019-04-16 | TechMah Medical | Bone reconstruction and orthopedic implants |
US9710964B2 (en) * | 2014-01-23 | 2017-07-18 | Max-Planck-Gesellschaft Zur Foerderung Der Wissenschaften E.V. | Method for providing a three dimensional body model |
US9524582B2 (en) * | 2014-01-28 | 2016-12-20 | Siemens Healthcare Gmbh | Method and system for constructing personalized avatars using a parameterized deformable mesh |
JP6509883B2 (ja) | 2014-01-31 | 2019-05-08 | マジック リープ, インコーポレイテッドMagic Leap,Inc. | 多焦点表示システムおよび方法 |
JP6525436B2 (ja) | 2014-01-31 | 2019-06-05 | マジック リープ, インコーポレイテッドMagic Leap,Inc. | 多焦点表示システムおよび方法 |
US10203762B2 (en) | 2014-03-11 | 2019-02-12 | Magic Leap, Inc. | Methods and systems for creating virtual and augmented reality |
CN106537290B (zh) | 2014-05-09 | 2019-08-27 | 谷歌有限责任公司 | 与真实和虚拟对象交互的基于生物力学的眼球信号的系统和方法 |
KR102193052B1 (ko) | 2014-05-30 | 2020-12-18 | 매직 립, 인코포레이티드 | 가상 또는 증강 현실 장치로 가상 콘텐츠 디스플레이를 생성하기 위한 방법들 및 시스템들 |
US9928663B2 (en) * | 2015-07-27 | 2018-03-27 | Technische Universiteit Delft | Skeletal joint optimization for linear blend skinning deformations utilizing skeletal pose sampling |
US10061871B2 (en) * | 2015-07-27 | 2018-08-28 | Technische Universiteit Delft | Linear blend skinning weight optimization utilizing skeletal pose sampling |
US9760996B2 (en) * | 2015-08-11 | 2017-09-12 | Nokia Technologies Oy | Non-rigid registration for large-scale space-time 3D point cloud alignment |
US10186082B2 (en) * | 2016-04-13 | 2019-01-22 | Magic Leap, Inc. | Robust merge of 3D textured meshes |
EP3471657A1 (en) * | 2016-06-21 | 2019-04-24 | Nobel Biocare Services AG | Method for estimating at least one of shape, position and orientation of a dental restoration |
US10565792B2 (en) * | 2017-09-07 | 2020-02-18 | Dreamworks Animation Llc | Approximating mesh deformations for character rigs |
CN111771231A (zh) | 2018-02-27 | 2020-10-13 | 奇跃公司 | 用于虚拟化身的匹配网格 |
-
2019
- 2019-02-13 CN CN201980015643.4A patent/CN111771231A/zh active Pending
- 2019-02-13 US US16/274,677 patent/US11074748B2/en active Active
- 2019-02-13 WO PCT/US2019/017792 patent/WO2019168673A1/en unknown
- 2019-02-13 JP JP2020541548A patent/JP7342008B2/ja active Active
- 2019-02-13 AU AU2019227506A patent/AU2019227506A1/en not_active Abandoned
- 2019-02-13 EP EP19760736.9A patent/EP3759693A4/en active Pending
- 2019-02-13 CA CA3089316A patent/CA3089316A1/en active Pending
-
2021
- 2021-07-26 US US17/385,620 patent/US12054227B2/en active Active
-
2023
- 2023-04-25 JP JP2023071521A patent/JP2023089294A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
EP3759693A1 (en) | 2021-01-06 |
US20190266796A1 (en) | 2019-08-29 |
US12054227B2 (en) | 2024-08-06 |
WO2019168673A1 (en) | 2019-09-06 |
CA3089316A1 (en) | 2019-09-06 |
US11074748B2 (en) | 2021-07-27 |
JP2021515292A (ja) | 2021-06-17 |
JP7342008B2 (ja) | 2023-09-11 |
EP3759693A4 (en) | 2021-11-24 |
JP2023089294A (ja) | 2023-06-27 |
US20210358214A1 (en) | 2021-11-18 |
AU2019227506A1 (en) | 2020-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12054227B2 (en) | Matching meshes for virtual avatars | |
JP7516260B2 (ja) | 仮想アバタをアニメーション化するための骨格システム | |
US12033263B2 (en) | Using three-dimensional scans of a physical subject to determine positions and/or orientations of skeletal joints in the rigging for a virtual character | |
US20220366627A1 (en) | Animating virtual avatar facial movements | |
US11868515B2 (en) | Generating textured polygon strip hair from strand-based hair for a virtual character | |
US11557076B2 (en) | Computer generated hair groom transfer tool | |
EP3759542B1 (en) | Head scan alignment using ocular registration | |
JP2024069598A (ja) | 仮想キャラクタの姿勢空間変形のための姿勢空間次元低減 | |
US11836840B2 (en) | Systems and methods for cross-application authoring, transfer, and evaluation of rigging control systems for virtual characters |
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 |