CN114299264A - 用于基于扭曲的三维模型生成增强现实内容的系统和方法 - Google Patents
用于基于扭曲的三维模型生成增强现实内容的系统和方法 Download PDFInfo
- Publication number
- CN114299264A CN114299264A CN202111114770.5A CN202111114770A CN114299264A CN 114299264 A CN114299264 A CN 114299264A CN 202111114770 A CN202111114770 A CN 202111114770A CN 114299264 A CN114299264 A CN 114299264A
- Authority
- CN
- China
- Prior art keywords
- real
- model
- content
- points
- world
- 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
- 238000000034 method Methods 0.000 title claims abstract description 115
- 230000003190 augmentative effect Effects 0.000 title claims abstract description 10
- 238000005259 measurement Methods 0.000 claims description 44
- 238000009877 rendering Methods 0.000 claims description 43
- 238000010801 machine learning Methods 0.000 claims description 33
- 230000003287 optical effect Effects 0.000 claims description 30
- 238000010191 image analysis Methods 0.000 claims description 11
- 230000033001 locomotion Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims 1
- 238000012544 monitoring process Methods 0.000 claims 1
- 239000000047 product Substances 0.000 description 145
- 238000007726 management method Methods 0.000 description 41
- 230000008569 process Effects 0.000 description 27
- 230000000007 visual effect Effects 0.000 description 20
- 230000037303 wrinkles Effects 0.000 description 16
- 238000004891 communication Methods 0.000 description 14
- 230000000694 effects Effects 0.000 description 14
- 230000006870 function Effects 0.000 description 12
- 239000003550 marker Substances 0.000 description 12
- 238000004458 analytical method Methods 0.000 description 11
- 230000008859 change Effects 0.000 description 11
- 238000012545 processing Methods 0.000 description 11
- 230000004044 response Effects 0.000 description 11
- 238000003860 storage Methods 0.000 description 11
- 238000004422 calculation algorithm Methods 0.000 description 10
- 230000018109 developmental process Effects 0.000 description 8
- 239000003086 colorant Substances 0.000 description 7
- 238000013461 design Methods 0.000 description 7
- 238000001514 detection method Methods 0.000 description 7
- 238000011161 development Methods 0.000 description 7
- 230000003068 static effect Effects 0.000 description 7
- 239000003795 chemical substances by application Substances 0.000 description 6
- 230000010354 integration Effects 0.000 description 6
- 239000008186 active pharmaceutical agent Substances 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000001965 increasing effect Effects 0.000 description 5
- 238000012549 training Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 239000004570 mortar (masonry) Substances 0.000 description 4
- 230000008447 perception Effects 0.000 description 4
- 238000012552 review Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000012384 transportation and delivery Methods 0.000 description 4
- 230000015572 biosynthetic process Effects 0.000 description 3
- 239000011449 brick Substances 0.000 description 3
- 230000001066 destructive effect Effects 0.000 description 3
- 239000004744 fabric Substances 0.000 description 3
- 238000002955 isolation Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000003786 synthesis reaction Methods 0.000 description 3
- 230000029305 taxis Effects 0.000 description 3
- 241000283070 Equus zebra Species 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 230000012010 growth Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000004043 responsiveness Effects 0.000 description 2
- 229920000742 Cotton Polymers 0.000 description 1
- 206010011971 Decreased interest Diseases 0.000 description 1
- 244000035744 Hura crepitans Species 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000000386 athletic effect Effects 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000007596 consolidation process Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 230000004907 flux Effects 0.000 description 1
- 238000003709 image segmentation Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000036651 mood Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000004033 plastic Substances 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000012502 risk assessment Methods 0.000 description 1
- 239000005060 rubber Substances 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- 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/006—Mixed reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0641—Shopping interfaces
- G06Q30/0643—Graphical representation of items or shoppers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
-
- 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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30204—Marker
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/16—Cloth
-
- 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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Software Systems (AREA)
- Accounting & Taxation (AREA)
- Computer Graphics (AREA)
- General Engineering & Computer Science (AREA)
- Finance (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Economics (AREA)
- Strategic Management (AREA)
- Development Economics (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Artificial Intelligence (AREA)
- Geometry (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Mathematical Physics (AREA)
- Architecture (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了用于基于扭曲的三维模型生成增强现实内容的系统和方法。提供了用于生成AR内容以虚拟地更改现实世界物品的系统和方法。现实世界物品可以是包括一个或多个柔性表面的可变形物品。根据实施例,一种方法包括确定现实世界物品上的多个点的相对方位。基于多个点的相对方位,虚拟物品的3D模型被扭曲以产生虚拟物品的扭曲的3D模型。扭曲的3D模型可能具有与现实世界物品基本相同的形状。然后基于扭曲的三维模型生成AR内容。
Description
技术领域
本申请涉及增强现实(AR),并且在特定实施例中,涉及AR内容的生成。
背景技术
AR涉及使用计算机生成的或虚拟的内容来提升现实世界的体验。在一些情况下,AR涉及将虚拟内容叠加在现实世界的物理内容上。这种叠加可以或是建设性的或是破坏性的。建设性AR为现实世界的体验添加内容,而破坏性AR掩蔽现实世界体验中的内容。在某些情况下,给定的AR体验由建设性和破坏性AR的组合组成。AR不同于虚拟现实(VR)。VR涉及完全虚拟体验的创建,而AR和最近的变体混合现实(MR)至少保留了一部分现实世界体验,但使用虚拟内容更改了对现实世界体验的感知。
发明内容
本公开的一些方面涉及使用三维(3D)模型来生成更改现实世界物品的外观的AR内容。3D模型可以为现实世界物品提供特定的颜色、图案和/或图形,其当在AR体验中被覆盖到现实世界物品上时,更改现实世界物品的外观。在某些情况下,现实世界物品可以包括一个或多个柔性表面,并且因此现实世界物品的形状可能会随着时间而改变。例如,现实世界物品可能是用户正在穿的衣服。随着使用者移动,衣服可能因此而流动、起皱和/或褶皱。在物品改变形状的同时更改现实世界物品的物理外观是AR系统面临的挑战。
在一些实施例中,为了使用AR更改现实世界物品的外观,系统确定现实世界物品的形状,扭曲物品的3D模型以匹配现实世界物品的形状,并基于扭曲的3D模型生成AR内容。AR内容可以包括覆盖在现实世界物品的图像上的扭曲的3D模型的渲染,这可以从查看AR内容的用户的角度更改现实世界物品的外观。以这种方式,AR内容就可以符合现实世界物品的实时形状。
根据本公开的一方面,存在一种计算机实现的方法,包括确定现实世界物品上的多个点的相对方位,并基于多个点的相对方位扭曲虚拟物品的3D模型以产生虚拟物品的扭曲的3D模型。该方法还可以包括生成AR内容用于呈现。该AR内容可能基于扭曲的3D模型。在一些情况下,现实世界物品可以包括柔性表面和/或可以是或包括衣服。此外,3D模型可以包括现实世界物品的视觉外观。
在一些实施例中,生成AR内容包括渲染扭曲的3D模型。可选地,从与现实世界物品的捕获图像对应的视点渲染扭曲的3D模型。生成AR内容还可以包括将渲染与图像合成以覆盖现实世界物品。
在一些实施例中,该方法还包括确定用户相对于现实世界物品的方位。可以基于用户的这个方位来渲染扭曲的3D模型。例如,然后可以通过透明显示器使渲染覆盖现实世界物品的用户的视点。
在一些实施例中,基于多个点的相对方位来扭曲虚拟物品的3D模型包括修改3D模型以将3D模型中的点重新定位为处于与多个点的相对方位对应的相对方位中。
在一些实施例中,现实世界物品包括多个标记,多个标记中的每一个位于现实世界物品上的多个点中的相应不同的一个点处。确定现实世界物品上的多个点的相对方位然后可以包括确定多个标记的相对方位。在一些实施例中,多个标记包括光学标记并且该方法还包括获得现实世界物品的至少一个图像。确定多个标记的相对方位然后可以包括对所述至少一个图像执行图像分析以检测光学标记。
在一些实施例中,确定现实世界物品上的多个点的相对方位包括获得现实世界物品的测量结果;将测量结果输入到机器学习(ML)模型中;并获得ML模型的输出,其中现实世界物品上的多个点的相对方位基于ML模型的输出。
在一些实施例中,多个点的相对方位是多个点的第一相对方位,虚拟物品的扭曲模型是虚拟物品的第一扭曲模型,并且AR内容是第一AR内容。多个点的第一相对方位可以对应于以第一形状的现实世界物品。该方法还可以包括确定现实世界物品上的多个点的第二相对方位,第二相对方位对应于以第二形状的现实世界物品;基于多个点的第二相对方位扭曲虚拟物品的3D模型,以产生虚拟物品的第二扭曲的3D模型;和生成第二AR内容用于呈现,第二AR内容基于第二扭曲的3D模型。
在一些实施例中,现实世界物品上的多个点的相对方位基于从设备获得的测量结果,并且AR内容用于在该设备处呈现。
在一些实施例中,虚拟物品的3D模型是虚拟物品的第一3D模型,多个点的相对方位是多个点的第一相对方位,并且AR内容是第一AR内容。该方法还可以包括获得用虚拟物品的第二3D模型替换虚拟物品的第一3D模型的指令,该指令源自在设备处的用户输入;确定现实世界物品上的多个点的第二相对方位;基于多个点的第二相对方位,扭曲虚拟物品的第二3D模型,以产生虚拟物品的扭曲的第二3D模型;和生成第二AR内容用于呈现,第二AR内容基于扭曲的第二3D模型。
根据本公开的另一方面,提供了一种系统,该系统包括用于存储例如模型、测量、方位和/或指令的存储器,以及被配置为执行本文公开的任何方法的一个或多个处理器。
根据本公开的另外的方面,提供了一种存储计算机可执行指令的非暂时性计算机可读介质,该计算机可执行指令当由计算机执行时,使得计算机执行本文公开的任何方法。
附图说明
将参考附图仅通过示例的方式描述实施例,其中:
图1是根据实施例的电子商务平台的框图;
图2是根据实施例的管理器(administrator)主页的示例;
图3示出了图1的电子商务平台,但包括AR引擎;
图4和图5分别示出了根据实施例的用户在第一时间实例下和第二时间实例下穿着连衣裙;
图6和图7分别示出了用户在第一时间实例下和第二时间实例下穿着图4和5的连衣裙,但是在连衣裙上覆盖了虚拟图案;
图8是示出根据实施例的用于使用扭曲的3D模型生成AR内容的系统的框图;
图9是示出根据实施例的用于使用扭曲的3D模型生成AR内容的方法的流程图;
图10示出了根据实施例的显示屏幕页面的用户设备;
图11示出了在虚拟坐标系内定义的、响应于用户选择图10的屏幕页面中的选项而生成的扭曲的3D模型;
图12示出了图10的用户设备基于图11的扭曲的3D模型显示包括AR内容的屏幕页面;
图13示出了图11的扭曲的3D模型和图10的用户设备在图11的虚拟坐标系内的新方位;
图14示出了图10的用户设备基于图13中所示的用户设备在虚拟坐标系内的新方位显示包括更新的AR内容的屏幕页面;
图15示出了在图11的虚拟坐标系内定义的另一个扭曲的3D模型;
图16示出了图10的用户设备基于图15的扭曲的3D模型显示包括更新的AR内容的屏幕页面;
图17示出了响应于用户选择图12的屏幕页面中的选项而生成的另外的扭曲的3D模型;和
图18示出了图10的用户设备基于图17的扭曲的3D模型显示包括AR内容的屏幕页面。
具体实施方式
出于说明性目的,现在将在下文结合附图更详细地解释特定示例实施例。
示例电子商务平台
在一些实施例中,本文公开的方法可以在商务平台上或与商务平台相关联地执行,该商务平台在本文中将被称为电子商务平台。因此,将描述电子商务平台的示例。
图1示出根据一个实施例的电子商务平台100。电子商务平台100可用于向顾客提供商家产品和服务。虽然本公开考虑使用设备、系统和过程来购买产品和服务,但是为了简单起见,本文中的描述将只针对产品。贯穿本公开的对产品的所有引用也应当被理解为对产品和/或服务的引用,包括物理产品、数字内容、票、订阅、要提供的服务等。
虽然本公开通篇考虑了“商家”和“顾客”可以不只是个人,但是为了简单起见,本文中的描述一般也可以同样指代商家们和顾客们。在本公开中对商家和顾客的所有引用也应当被理解为对个人、公司、企业、计算实体等的组的引用,并且可以表示产品的盈利目的或非盈利目的的交换。此外,虽然本公开通篇涉及“商家”和“顾客”,并且如此描述了它们的角色,但是电子商务平台100应当被理解为更一般地支持电子商务环境中的用户,并且本公开通篇对商家和顾客的所有引用也应当被理解为是对用户的引用,诸如其中用户是商家用户(例如,产品的销售者、零售商、批发商或提供商)、顾客用户(例如,产品的买家、购买代理或用户)、预期用户(例如,浏览并且尚未承诺购买的用户、评估电子商务平台100以潜在地用于营销和销售产品的用户等)、服务提供商用户(例如,运送提供商112、财务提供商等)、公司或企业用户(例如,代表购买、销售或使用产品的公司、企业用户、顾客关系或顾客管理代理等)、信息技术用户、计算实体用户(例如,用于购买、销售或使用产品的计算机器人程序)等。
电子商务平台100可以提供用于向商家提供用于管理其业务的在线资源和设施的集中式系统。本文所述的设施可通过在一个或多个处理器上执行计算机软件、模块、程序代码和/或指令的机器来部分或全部部署,所述一个或多个处理器可为平台100的一部分或在其外部。商家可以利用电子商务平台100来管理与顾客的商务,诸如经由通过在线商店138、通过渠道110A-B、通过物理位置(例如,实体店面或诸如通过信息亭、终端、读取器、打印机、3D打印机等的其他位置)中的POS设备152实现与顾客的电子商务体验、经由通过电子商务平台100管理他们的业务、以及经由通过电子商务平台100的通信设施129与顾客交互、或其任何组合。商家可以将电子商务平台100用作与顾客的唯一商务存在,或者与其他商家商务设施相结合,诸如通过实体商店(例如,“实体”零售商店)、商家平台外网站104(例如,与电子商务平台分开的由商家支持或代表商家的商务互联网网站或其他互联网或web资产)等。然而,甚至这些“其他”商家商务设施也可被并入到电子商务平台中,诸如其中商家的实体商店中的POS设备152被链接到电子商务平台100中、其中商家平台外网站104诸如通过将内容从商家平台外网站104链接到在线商店138的“购买按钮”而被绑定到电子商务平台100等等。
在线商店138可以表示包括多个虚拟店面的多租户设施。在实施例中,商家可以诸如通过商家设备102(例如,计算机、膝上型计算机、移动计算设备等)来管理在线商店138中的一个或多个店面,并且通过多个不同的渠道110A-B(例如,在线商店138;通过POS设备152的实体店面;电子市场;通过集成到诸如社交网络、社交媒体页面、社交媒体消息传送系统之类的网站或社交媒体渠道中的电子购买按钮;等)来向顾客提供产品。商家可以跨渠道110A-B销售,然后通过电子商务平台100管理其销售,其中,渠道110A可以在电子商务平台100内部提供或者从电子商务渠道110B外部提供。商家可以在其实体零售商店中、在弹出处、通过批发、通过电话等销售,然后通过电子商务平台100管理其销售。商家可以采用这些的全部或任何组合,诸如通过利用POS设备152的实体店面来维护业务、通过在线商店138来维护虚拟店面、以及利用通信设施129来利用顾客交互和分析132以提高销售的概率。贯穿本公开,术语在线商店138和店面可以同义地用于指代通过电子商务平台100提供存在的商家的在线电子商务,其中,在线商店138可以指代由电子商务平台100支持的店面的多租户集合(例如,针对多个商家)或者指代单独的商家的店面(例如,商家的在线商店)。
在一些实施例中,顾客可以通过顾客设备150(例如,计算机、膝上型计算机、移动计算设备等)、POS设备152(例如,零售设备、售货亭、自动结账系统等)或本领域已知的任何其他商务接口设备进行交互。电子商务平台100可以使商家能够通过在线商店138、通过物理位置(例如,商家的店面或其他地方)中的POS设备152到达顾客,以通过经由电子通信设施129的对话等来促进与顾客的商务,从而提供用于到达顾客并促进可用于到达顾客并与顾客交互的真实或虚拟路径的商家服务的系统。
在一些实施例中,并且如本文进一步描述的,电子商务平台100可以通过包括处理器和存储器的处理设施来实现,处理设施存储一组指令,当执行该组指令时使得电子商务平台100执行如本文描述的电子商务和支持功能。处理设施可以是服务器、客户端、网络基础设施、移动计算平台、云计算平台、固定计算平台或其他计算平台的一部分,并且提供电子商务平台100的电子部件、商家设备102、支付网关106、应用开发者、渠道110A-B、运送提供商112、顾客设备150、销售点设备152等之间的电子连接和通信。电子商务平台100可以被实现为云计算服务、软件即服务(SaaS)、基础设施即服务(IaaS)、平台即服务(PaaS)、桌面即服务(DaaS)、管理软件即服务(MSaaS)、移动后端即服务(MBaaS)、信息技术管理即服务(ITMaaS)等,诸如在软件和递送模型中,其中,软件基于订阅被许可并且被集中托管(例如,由用户使用客户端(例如,瘦客户端)经由web浏览器或其他应用进行访问、通过POS设备进行访问等)。在一些实施例中,电子商务平台100的元素可以被实现为在各种平台和操作系统上操作,诸如iOS、Android、在web上等(例如,管理器114在针对web以及针对iOS、Android的给定在线商店的多个实例中实现,每个具有类似的功能)。
在一些实施例中,可以通过由电子商务平台100的服务器提供的网页来将在线商店138提供给顾客设备150。服务器可以从安装在顾客设备150上的浏览器或其他应用接收对网页的请求,其中,浏览器(或其他应用)通过IP地址连接到服务器,IP地址通过转换域名而获得。作为回应,服务器发送回所请求的网页。网页可以用超文本标记语言(HTML)、模板语言、JavaScript等或其任何组合来编写或包括超文本标记语言(HTML)、模板语言、JavaScript等或其任何组合。例如,HTML是描述网页的静态信息的计算机语言,诸如网页的布局、格式和内容。网站设计者和开发者可以使用模板语言来构建网页,其组合了在多个页面上相同的静态内容和从一个页面到下一个页面发生改变的动态内容。模板语言可以使得能够在利用来自在线商店的数据动态地填充页面的同时重新使用定义网页布局的静态元素。静态元素可以用HTML编写,而动态元素可以用模板语言编写。文件中的模板语言元素可以充当占位符,使得文件中的代码被编译并发送到顾客设备150,然后诸如在安装主题时,模板语言被来自在线商店138的数据替换。模板和主题可以考虑标签、对象和过滤器。客户端设备web浏览器(或其他应用)然后相应地渲染页面。
在一些实施例中,可以由电子商务平台100将在线商店138提供给顾客,其中,顾客可以浏览和购买各种可用产品(例如,将它们添加到购物车中、通过购买按钮立即购买等)。可以以透明的方式将在线商店138提供给顾客,而顾客不必知道其是通过电子商务平台100提供的(而不是直接从商家提供的)。商家可以使用商家可配置域名、可定制HTML主题等来定制其在线商店138。商家可以通过主题系统定制其网站的外观和感觉,诸如其中商家可以通过改变他们的主题同时具有在在线商店的产品层次内示出的相同的基础产品和业务数据来选择和改变他们的在线商店138的外观和感觉。主题还可以通过主题编辑器、使用户能够灵活地定制其网站设计的设计接口来定制。主题还可以使用主题特定设置来定制,其改变诸如特定颜色、字体和预先建立的布局方案之类的方面。在线商店可以实现用于网站内容的内容管理系统。商家可以创作博客帖子或静态页面,并将它们发布到其在线商店138(例如通过博客、文章等),以及配置导航菜单。商家可以将(例如,用于产品的)图像、视频、内容、数据等上传到电子商务平台100,诸如用于由系统存储(例如,作为数据134)。在一些实施例中,电子商务平台100可以提供用于调节图像尺寸、将图像与产品相关联、添加文本并将文本与图像相关联、添加用于新产品变体的图像、保护图像等的功能。
如本文所描述的,电子商务平台100可以通过包括在线商店138的多个不同的渠道110A-B、通过电话以及通过物理POS设备152来向商家提供产品的交易设施,如本文所述。电子商务平台100可包括与运行在线业务相关联的业务支持服务116、管理器114等,从而诸如提供与其在线商店相关联的域服务118、用于促进与顾客交易的支付服务120、用于提供针对所购买产品的顾客运送选项的运送服务122、与产品保护和责任相关联的风险和保险服务124、商家账单等。服务116可以经由电子商务平台100或与外部设施相关联地提供,诸如通过用于支付处理的支付网关106、用于加速产品运送的运送提供商112等。
在一些实施例中,电子商务平台100可以提供整合的运送服务122(例如,通过电子商务平台运送设施或通过第三方运送承运商),诸如向商家提供实时更新、跟踪、自动费率计算、批量订单准备、标签打印等。
图2描绘了管理器114的主页的非限制性实施例,其可以示出关于日常任务、商店的最近活动、以及商家可以采取以构建其业务的接下来的步骤的信息。在一些实施例中,商家可以经由商家设备102诸如从台式计算机或移动设备登录到管理器114,并且管理其在线商店138的各方面,诸如查看在线商店138的最近活动、更新在线商店138的目录、管理订单、最近访问活动、总订单活动等。在一些实施例中,商家可能能够通过使用工具栏(sidebar)来访问管理器114的不同部分,诸如图2所示,管理器114的各部分可以包括用于访问和管理包括订单、产品、顾客、可用报告和折扣的商家业务的核心方面的各种接口。管理器114还可以包括用于管理包括在线商店、使得顾客可访问商店的(一个或多个)移动应用(移动App)、POS设备和/或购买按钮的商店的销售渠道的接口。管理器114还可以包括用于管理安装在商家账户上的应用(App);应用于商家在线商店138和账户的设置的接口。商家可使用搜索栏来查找产品、页面或其他信息。取决于商家正在使用的设备102或软件应用,可以通过管理器114使得他们能够用于不同的功能。例如,如果商家从浏览器登录到管理器114,则他们可能能够管理他们的在线商店138的所有方面。如果商家从其移动设备(例如,经由移动应用)登录,则他们可能能够查看其在线商店138的所有方面或其子集,诸如查看在线商店138的最近活动、更新在线商店138的目录、管理订单等。
可以通过获取报告或度量(诸如显示商家的总体业务的销售概要、现行销售渠道的具体销售和参与数据等)来查看关于商家的在线商店138的商务和访客的更详细的信息。报告可以包括获取报告、行为报告、顾客报告、财务报告、营销报告、销售报告、定制报告等。商家可以能够诸如通过使用下拉菜单来查看来自不同时间段(例如,天、周、月等)的不同渠道110A-B的销售数据。可以为想要更详细地查看商店的销售和参与数据的商家提供概览仪表板。可以提供主页度量部分中的活动馈送以示出商家账户上的活动的概况。例如,通过点击“查看所有最近活动”仪表板按钮,商家可以能够看到在其账户上的最近活动的较长馈送。主页可以诸如基于账户状态、增长、最近的顾客活动等示出关于商家的在线商店138的通知。可以提供通知以帮助商家导航通过过程,诸如捕获支付、将订单标记为已完成、将完成的订单存档等。
电子商务平台100可以提供通信设施129和相关联的商家接口,其用于提供电子通信和营销,诸如利用电子消息传送聚合设施来收集和分析商家、顾客、商家设备102、顾客设备150、POS设备152等之间的通信交互,以聚合和分析通信,诸如用于增加提供产品销售的可能性等。例如,顾客可能具有与产品相关的问题,其可以在顾客和商家(或代表商家的自动的基于处理器的代理)之间产生对话,其中,通信设施129分析交互并向商家提供关于如何提高销售概率的分析。
电子商务平台100可以提供用于与顾客的安全财务交易的财务设施120,诸如通过安全卡服务器环境。电子商务平台100可以存储信用卡信息,例如在支付卡行业数据(PCI)环境(例如,卡服务器)中,以便核对财务、向商家开账单、在电子商务平台100财务机构账户和商家的背部账户之间执行自动化票据交换所(ACH)转账(例如,当使用资本时)等。这些系统可以具有Sarbanes-Oxley法案(SOX)合规以及在它们的开发和操作中所需的高水平的勤勉。财务设施120还可以诸如通过借出资本(例如,借出资金、现金预付等)和提供保险来向商家提供财务支持。另外,电子商务平台100可以提供一组营销和合作伙伴服务,并且控制电子商务平台100和合作伙伴之间的关系。它们还可以将新的商家与电子商务平台100连接并将新的商家装载于电子商务平台100。这些服务可以通过使商家更容易地跨电子商务平台100工作来实现商家增长。通过这些服务,可以经由电子商务平台100向商家提供帮助设施。
在一些实施例中,在线商店138可以支持大量独立管理的店面,并且针对各种产品每天处理大量交易数据。交易数据可以包括顾客联系信息、账单信息、运送信息、关于所购买产品的信息、关于所提供服务的信息、以及与通过电子商务平台100的业务相关联的任何其他信息。在一些实施例中,电子商务平台100可以将该数据存储在数据设施134中。交易数据可以被处理以产生分析132,其继而可以被提供给商家或第三方商务实体,从而诸如提供消费者趋势、营销和销售洞察力、用于改进销售的推荐、对顾客行为的评估、营销和销售建模、欺诈趋势等,其与在线商务有关,并且通过仪表板接口、通过报告等来提供。电子商务平台100可以存储关于业务和商家交易的信息,并且数据设施134可以具有增强、贡献、改善和提取数据的许多方式,其中,随着时间的推移,所收集的数据可以实现针对电子商务平台100的各方面的改进。
再次参考图1,在一些实施例中,电子商务平台100可以被配置有用于内容管理、任务自动化和数据管理的商务管理引擎136以使得能够实现针对多个在线商店138的支持和服务(例如,与产品、库存、顾客、订单、合作、供应商、报告、财务、风险和欺诈等相关),但是可通过应用142A-B扩展,其使得能够实现适应日益增长的各种商家在线商店、POS设备、产品和服务所需的更大灵活性和定制过程,其中,应用142A可以在电子商务平台100或应用142B内部提供或者从电子商务平台100外部提供。在一些实施例中,应用142A可由提供平台100的同一方或由不同方来提供。在一些实施例中,应用142B可由提供平台100的同一方或由不同方来提供。商务管理引擎136可以通过诸如按顾客标识符、订单标识符、在线商店标识符等划分(例如,分片)功能和数据而被配置用于灵活性和可扩展性。商务管理引擎136可以适应商店特定的业务逻辑,并且在一些实施例中,可以包含管理器114和/或在线商店138。
商务管理引擎136包括电子商务平台100的基本或“核心”功能,并且因此,如本文所述,并非支持在线商店138的所有功能都可能适于包括在内。例如,用于包括在商务管理引擎136中的功能可能需要超过核心功能阈值,通过该阈值可以确定功能是商务体验的核心(例如,对于大多数在线商店活动是共同的,诸如跨渠道、管理器接口、商家位置、行业、产品类型等),可跨在线商店138重复使用(例如,可跨核心功能重复使用/修改的功能),限于一次单个在线商店138的上下文(例如,实现在线商店“隔离原则”,其中,代码应当不能一次与多个在线商店138交互,从而确保在线商店138不能访问彼此的数据),提供交易工作负载等。维持对实现什么功能的控制可以使商务管理引擎136能够保持响应,因为许多所需特征要么由商务管理引擎136直接提供要么通过接口140A-B实现,例如通过其经由到应用142A-B和渠道110A-B的应用编程接口(API)连接的扩展,其中,接口140A可以被提供给电子商务平台100内部的应用142A和/或渠道110A,或者通过被提供给电子商务平台100外部的应用142B和/或渠道110B的接口140B。通常,平台100可包括接口140A-B(其可以是扩展、连接器、API等),其便于与其他平台、系统、软件、数据源、代码等的连接和通信。更一般地,这样的接口140A-B可以是商务管理引擎136的接口140A或平台100的接口140B。如果没有对商务管理引擎136中的限制功能给予关注,则可能会损害响应性,诸如通过经由慢速数据库的基础设施降级或非关键后端故障、通过诸如具有数据中心离线的灾难性基础设施故障、通过花费比预期更长的时间来执行的新代码等。为了防止或减轻这些情形,商务管理引擎136可被配置成维持响应性,诸如通过利用超时、排队、反向压力来防止降级的配置等。
尽管隔离在线商店数据对于维护在线商店138与商家之间的数据隐私是重要的,但可能存在收集和使用跨商店数据的原因,诸如例如,利用订单风险评估系统或平台支付设施,这两者都需要来自多个在线商店138的信息以良好执行。在一些实施例中,不是违反隔离原则,而是可以优选将这些组件移出商务管理引擎136并移入其自己的电子商务平台100内的基础设施中。
在一些实施例中,电子商务平台100可以提供平台支付设施120,其是利用来自商务管理引擎136的数据的组件的另一示例,但是可以位于外部以便不违反隔离原则。平台支付设施120可以允许与在线商店138交互的顾客使其支付信息由商务管理引擎136安全存储,使得他们仅必须输入其一次。当顾客访问不同的在线商店138时,即使他们以前从未去过那里,平台支付设施120也可以调用他们的信息以实现更快速和正确的结帐。这可以提供跨平台网络效果,其中,电子商务平台100随着更多商家加入而变得对其商家更有用,诸如因为存在更多的由于关于顾客购买的使用容易而更频繁地结账的顾客。为了最大化该网络的效果,给定顾客的支付信息可以从在线商店的结帐可检索,从而使该信息跨在线商店138全局可用。对于每个在线商店138来说,能够连接到任何其他在线商店138以检索存储在那里的支付信息将是困难的并且容易出错的。结果,平台支付设施可以在商务管理引擎136外部实现。
对于未包括在商务管理引擎136内的那些功能,应用142A-B提供了向电子商务平台100添加特征的方式。应用142A-B可能能够访问和修改商家的在线商店138上的数据,通过管理器114执行任务,通过(例如,通过扩展/API而显露的)用户界面为商家创建新流等等。商家可以被允许通过应用搜索、推荐和支持128来发现和安装应用142A-B。在一些实施例中,核心产品、核心扩展点、应用和管理器114可以被开发以一起工作。例如,应用扩展点可以构建在管理器114内部,使得核心特征可以借助于应用被扩展,其可以通过扩展将功能递送给商家。
在一些实施例中,应用142A-B可以通过接口140A-B向商家递送功能,诸如在应用142A-B能够将交易数据显露给商家的情况下(例如,App:“引擎,使用嵌入式appSDK在移动和web管理器中显露我的app数据),和/或在商务管理引擎136能够要求应用按需执行工作的情况下(引擎:“App,给予我用于该结帐的本地税务计算”)。
应用142A-B可以支持在线商店138和渠道110A-B,提供商家支持,与其他服务整合等。在商务管理引擎136可以向在线商店138提供服务基础的情况下,应用142A-B可以为商家提供满足特定的并且有时是独特的需要的方式。不同的商家将具有不同的需要,并且因此可以受益于不同的应用142A-B。应用142A-B可以更好地通过电子商务平台100发现,通过开发应用分类(类别),所述应用分类(类别)使得应用能够根据它为商家执行的功能类型被标记;通过支持搜索、排名和推荐模型的应用数据服务;通过应用发现接口,诸如应用商店、主页信息卡、应用设置页面;等等。
应用142A-B可以通过接口140A-B连接到商务管理引擎136,诸如利用API来向应用的功能(例如,通过REST、GraphQL等)暴露通过商务管理引擎136和在其内可用的功能和数据。例如,电子商务平台100可向面向商家和合作伙伴的产品和服务提供API接口140A-B,诸如包括应用扩展、过程流服务、面向开发者的资源等。随着顾客更频繁地使用移动设备来购物,与移动使用相关的应用142A-B可以受益于对API更广泛的使用,以支持相关增长的商务流量。通过使用应用和API(例如,如为应用开发所提供的)而提供的灵活性使得电子商务平台100能够更好地适应商家(以及通过内部API的内部开发者)的新的和独特的需要,而不需要对商务管理引擎136的持续改变,从而在商家需要时向他们提供他们所需要的东西。例如,可以通过运送或承运商服务API将运送服务122与商务管理引擎136整合,从而使得电子商务平台100能够提供运送服务功能,而不直接影响在商务管理引擎136中运行的代码。
许多商家问题可以通过让合作伙伴通过应用开发来改进和扩展商家工作流来解决,诸如与后台操作(面向商家的应用142A-B)相关联的问题以及在线商店138(面向顾客的应用142A-B)中的问题。作为进行业务的一部分,许多商家将每天使用移动和web相关的应用来进行后台任务(例如,推销、库存、折扣、履行等)和在线商店任务(例如,与其在线商店相关的应用、用于快销、新产品出售等),其中,应用142A-B通过扩展/140APIA-B帮助使产品在快速增长的市场中易于查看和购买。在一些实施例中,合作伙伴、应用开发者、内部应用设施等可以设置有软件开发工具包(SDK),诸如通过在管理器114内创建将应用接口沙盒化的框架。在一些实施例中,管理器114可能没有对框架内发生了什么的控制也不知晓框架内发生了什么。SDK可以与用户界面工具包结合使用,以产生模仿电子商务平台100外观和感觉的接口,例如充当商务管理引擎136的扩展。
利用API的应用142A-B可以按需拉取数据,但是它们通常还需要在发生更新时推送数据。更新事件可以以订阅模型来实现,诸如例如顾客创建、产品改变或订单取消。更新事件可以向商家提供关于商务管理引擎136的改变状态的所需更新,诸如用于同步本地数据库、通知外部整合合作伙伴等。更新事件可以实现该功能,而不必一直轮询商务管理引擎136以检查更新,例如通过更新事件订阅。在一些实施例中,当发生与更新事件订阅相关的改变时,商务管理引擎136就可以发布诸如对预定义的回调URL的请求。该请求的主体可以包含对象的新状态和动作或事件的描述。更新事件订阅可以在管理器设施114中手动创建,或者自动创建(例如,经由API140A-B)。在一些实施例中,更新事件可以排队并且与触发它们的状态改变异步地处理,这可以产生不是实时分发的更新事件通知。
在一些实施例中,电子商务平台100可提供应用搜索、推荐和支持128。应用搜索、推荐和支持128可以包括开发者产品和工具以帮助应用的开发、应用仪表板(例如,用于向开发者提供开发接口、向管理器提供应用的管理、向商家提供应用的定制等)、用于安装和提供关于提供对应用142A-B的访问的许可的设施(例如,用于公共访问,诸如在安装之前必须满足标准,或者用于商家的私人使用)、应用搜索以使得商家易于搜索满足他们的在线商店138的需要的应用142A-B、应用推荐以向商家提供关于他们如何能够通过他们的在线商店138来改进用户体验的建议、对商务管理引擎136内的核心应用能力的描述等。这些支持设施可以由任何实体执行的应用开发来利用,包括开发其自己的应用142A-B的商家、开发应用142A-B的第三方开发者(例如,由商家签订合同、自己开发以提供给公众、签订合同以与电子商务平台100相关联地使用等)、或者由与电子商务平台100相关联的内部个人资源开发的应用142A或142B。在一些实施例中,应用142A-B可以被分配应用标识符(ID),诸如用于链接到应用(例如,通过API)、搜索应用、进行应用推荐等。
商务管理引擎136可以包括电子商务平台100的基本功能,并且通过API140A-B将这些功能暴露给应用142A-B。API140A-B可以实现通过应用开发构建的不同种类的应用。应用142A-B可能能够满足商家的各种各样需要,但是可以粗略地分为三类:面向顾客的应用、面向商家的应用、整合应用等。面向顾客的应用142A-B可以包括在线商店138或作为商家可以列出产品并让它们被购买的地方的渠道110A-B(例如,在线商店、用于快销的应用(例如,商家产品或来自第三方源的机会性销售机会)、移动商店应用、社交媒体渠道、用于提供批发购买的应用等)。面向商家的应用142A-B可以包括允许商家管理其在线商店138(例如,通过与web或网站或移动设备相关的应用)、运行其业务(例如,通过与POS设备相关的应用)、增长其业务(例如,通过与运送(例如,投递运送)相关的应用、使用自动化代理、使用过程流开发和改进)等的应用。整合应用可以包括提供参与业务运行的有用整合的应用,例如运送提供商112和支付网关。
在一些实施例中,应用开发者可以使用应用代理来从外部位置获取数据并将其显示在在线商店138的页面上。这些代理页面上的内容可以是动态的、能够被更新的,等等。应用代理可以有用于显示图像图库、统计、定制表单和其他种类的动态内容。电子商务平台100的核心应用结构可以允许在应用142A-B中建立数量不断增加的商家体验,使得商务管理引擎136可以保持关注更普遍利用的商务业务逻辑。
电子商务平台100通过策划的系统架构提供了在线购物体验,该架构使得商家能够以灵活且透明的方式与顾客连接。通过示例性的实施例购买工作流程可以更好地理解典型的顾客体验,其中,顾客在渠道110A-B上浏览商家的产品,将他们想要购买的东西添加到他们的购物车中,进行结账,并为他们的购物车的内容支付,从而为商家创建订单。然后,商家可以审阅并履行(或取消)该订单。然后产品被交付给顾客。如果顾客不满意,他们可以将产品退货给商家。
在示例性实施例中,顾客可以在渠道110A-B上浏览商家的产品。渠道110A-B是顾客可以查看和购买产品的地方。在一些实施例中,渠道110A-B可以被建模为应用142A-B(可能的例外是在线商店138,其被整合在业务管理引擎136内)。推销组件可以允许商家描述他们想要销售什么以及他们在哪里销售它。产品和渠道之间的关联可以被建模为产品发布并且由渠道应用访问,诸如经由产品列表API。产品可以具有许多选项(如尺寸和颜色)以及将可用选项扩展到所有选项的特定组合的许多变体,如额外小和绿色的变体、或尺寸大和蓝色的变体。产品可以具有至少一个变体(例如,为没有任何选项的产品创建“默认变体”)。为了便于浏览和管理,产品可以被分组为集合,被提供产品标识符(例如,库存单位(SKU))等。产品集合可以通过要么将产品手动分类为一个(例如,定制集合)、通过构建用于自动分类的规则集(例如,智能集合)等来构建。产品可以通过虚拟或增强现实接口等作为2D图像、3D图像、旋转视图图像来查看。
在一些实施例中,顾客可以将他们想要购买的东西添加到他们的购物车(在替选实施例中,可以直接购买产品,诸如通过购买按钮,如本文所述)。顾客可以将产品变体添加到他们的购物车。购物车模型可以是渠道特定的。在线商店138购物车可以由多个购物车明细物品组成,其中,每个购物车明细物品跟踪产品变体的数量。商家可以使用购物车脚本来基于其购物车的内容向顾客提供特定的促销。由于向购物车添加产品并不意味着来自顾客或商家的任何承诺,并且购物车的预期寿命可以是大约几分钟(而不是几天),所以购物车可以被存留到短暂的数据存储装置。
然后,顾客进行结账。结账组件可以将web结账实现为面向顾客的订单创建过程。结账API可被提供为由某些渠道应用使用的面向计算机的订单创建过程,以代表顾客创建订单(例如,用于销售点)。结账可以根据购物车而创建,并且记录顾客的信息,例如电子邮件地址、账单和运送详情。在结帐时,由商家承诺定价。如果顾客输入其联系信息但并没有进行支付,那么电子商务平台100可以提供与顾客重新接入的机会(例如,在放弃的结账特征中)。由于这些原因,结账可以具有比购物车长得多的寿命(几小时或者甚至几天),并且因此被存留。结账可以基于顾客的运送地址来计算税款和运送成本。结帐可以将税款计算委托给计税组件,并将运送成本计算委托给递送组件。定价组件可以使商家能够创建折扣代码(例如,当在结账处输入时将新价格应用于结账处的物品的“秘密”字符串)。折扣可以由商家用来吸引顾客并评估营销活动的表现。折扣和其他定制价格系统可在同一平台片段之上实现,诸如通过价格规则(例如,在满足时暗示一组权利的一组先决条件)。例如,先决条件可以是诸如“订单小计大于$100”或“运送成本低于$10”的物品,并且权利可以是诸如“整个订单的20%折扣”或“产品X、Y和Z减$10”的物品。
然后,顾客为他们的购物车的内容支付,从而为商家创建订单。渠道110A-B可以使用商务管理引擎136来从以及向消费者和商家移动金钱、货币或价值存储(例如美元或加密货币)。与各种支付提供商(例如,在线支付系统、移动支付系统、数字钱包、信用卡网关等)的通信可以在支付处理组件内实现。与支付网关106的实际交互可以通过卡服务器环境来提供。在一些实施例中,支付网关106可接受国际支付,诸如与领先的国际信用卡处理器整合。卡服务器环境可以包括卡服务器应用、卡槽、托管字段等。该环境可以充当敏感信用卡信息的安全关守。在一些实施例中,大部分过程可由支付处理作业来编排。商务管理引擎136可以支持许多其他支付方法,诸如通过非现场支付网关106(例如,其中顾客被重定向到另一网站)、手动(例如,现金)、在线支付方法(例如,在线支付系统、移动支付系统、数字钱包、信用卡网关等)、礼品卡等。在结账过程结束时,订单被创建。订单是商家和顾客之间的销售合同,其中,商家同意提供订单上列出的商品和服务(例如,订单明细物品、运送明细物品等),而顾客同意提供支付(包括税款)。该过程可以在销售组件中建模。不依赖于商务管理引擎136结帐的渠道110A-B可以使用订单API来创建订单。一旦创建了订单,就可以将订单确认通知发送给顾客,并且经由通知组件将下订单通知发送给商家。当支付处理工作开始时可以预留库存以避免超售(例如,商家可以根据每个变体的库存策略来控制这种行为)。库存预留可以具有短的时间跨度(几分钟),并且可能需要非常快速和可缩放以支持快销(例如,短时间内提供的折扣或促销,诸如以冲动购买为目标)。如果支付失败,则释放预留。当支付成功并创建了订单时,预留被转换成分配给特定位置的长期库存承诺。库存组件可以记录变体被存货的地方,并且跟踪启用了库存跟踪的变体的数量。它可以将产品变体(代表产品列表的模板的面向顾客的概念)与库存物品(代表其数量和位置被管理的物品的面向商家的概念)分离。库存水平组件可以跟踪可用于销售、提交到订单或从库存转移组件(例如,从供应商)传入的数量。
然后,商家可以审阅并履行(或取消)订单。审阅组件可实现业务过程商家的使用以确保订单在实际履行之前适于履行。订单可能是欺诈性的,需要验证(例如,ID检查),具有需要商家等待以确保他们将收到他们的资金的支付方法,等等。风险和建议可以被存留在订单风险模型中。订单风险可以从欺诈检测工具生成、由第三方通过订单风险API提交等。在进行履行之前,商家可能需要捕获支付信息(例如,信用卡信息)或等待接收它(例如,经由银行转帐、支票等)并将订单标记为已支付。商家现在可以准备用于递送的产品。在一些实施例中,该业务过程可以由履行组件实现。履行组件可以基于库存位置和履行服务将订单的明细物品分组到工作的逻辑履行单元中。商家可以审阅、调节工作单元、以及触发相关的履行服务(诸如通过在商家在盒子中挑选和打包产品时使用的手动履行服务(例如,在商家管理的位置处))、购买运送标签并输入它的跟踪号、或仅仅把物品标记为已完成。定制履行服务可以发送电子邮件(例如,不提供API连接的位置)。API履行服务可以触发第三方,其中,第三方应用创建履行记录。传统履行服务可以触发从商务管理引擎136到第三方的定制API调用(例如,由Amazon的履行)。礼品卡履行服务可以提供(例如,生成号码)并激活礼品卡。商家可以使用订单打印机应用来打印装箱单。当物品被打包在盒子中并且准备好运送、被运送、跟踪、递送、验证为由顾客接收等时,履行过程可以被执行。
如果顾客不满意,他们可将(一个或多个)产品退货给商家。业务过程商家可以经历由退货组件实现的“取消销售”物品。退货可由各种不同的动作组成,例如再上货,其中,被销售的产品实际上回到了企业中并且可再次销售;退款,其中,从顾客收取的钱被部分或全部退还;记下退款了多少钱的记账调节(例如,包括是否存在任何再进货费用,或未退还并留在顾客手中的货物);等等。退货可以表示对销售合同(例如,订单)的改变,并且其中电子商务平台100可以使商家知道关于法律义务(例如,关于税务)的合规问题。在一些实施例中,电子商务平台100可以使商家能够保持跟踪销售合同随时间的改变,诸如通过销售模型组件(例如,只能添加的基于日期的分类账)实现的。
增强现实在电子商务平台中的实现
诸如增强现实(AR)和混合现实(MR)之类的技术,其使用虚拟内容来更改现实世界的体验——本文通常表示为“AR”——可以用在商务中以提供改进的顾客体验。电子商务平台100可以为多种不同应用中的任何一种实现AR,所述应用的示例在本文别处有描述。图3示出了图1的电子商务平台100,但是包括AR引擎300。AR引擎300是生成由电子商务平台100、顾客设备150和/或商家设备102使用的AR内容的计算机实现的系统的示例。
尽管AR引擎300在图3中被示出为电子商务平台100的不同组件,但这只是一个示例。AR引擎也可以或取而代之地由驻留在电子商务平台100内部或外部的另一个组件来提供。在一些实施例中,应用142A-B中的任一个或两个提供对顾客和/或商家可用的AR引擎。此外,在一些实施例中,商务管理引擎136提供AR引擎。电子商务平台100可以包括由一方或多方提供的多个AR引擎。多个AR引擎可以以相同的方式、相似的方式和/或不同的方式实现。此外,AR引擎的至少一部分可以在商家设备102和/或顾客设备150中实现。例如,顾客设备150可以本地存储和运行AR引擎作为软件应用。
AR引擎300可以实现本文描述的至少一些功能。尽管下面描述的实施例可以与电子商务平台、诸如(但不限于)电子商务平台100相关联地实现,但是下面描述的实施例不限于图1至3的特定电子商务平台100。此外,本文描述的实施例根本不一定需要与电子商务平台相关联地实现或涉及电子商务平台。一般来说,AR的任何应用都可以实现本文公开的系统和方法。
AR在商务中的应用
AR(或其变体)可以用虚拟内容补充用户的现实世界环境,以更改用户对现实世界环境的感知。在一些实现中,通过被称为同时定位和映射(SLAM)的过程,例如用户的现实世界环境的表示和用户在该现实世界环境内的方位可以由AR引擎持续或间歇地确定。应当注意,如本文所使用的,方位可以包括定向和位置。可以通过将一个或多个虚拟模型映射到现实世界环境的表示来生成用户的AR体验。用户的AR内容可以包括覆盖到现实世界环境上的虚拟模型的渲染。生成渲染以反映用户在现实世界环境中的相对方位以及虚拟模型到现实世界环境的映射。以此方式,AR内容可以为用户提供虚拟模型与现实世界环境的近乎无缝的集成。
在一些实现中,AR体验可以通过跟踪标记(诸如快速响应(QR)码)、面部特征(例如诸如用户的眼睛和/或鼻子)和/或现实世界环境中的其他特征来提供。然后可以使用AR体验中的虚拟内容来移除和/或更改这些特征。
当顾客不能与现实世界产品物理交互时,AR可以允许顾客查看虚拟产品并与之交互。例如,AR可以将产品的虚拟表示覆盖到以图像捕获的现实世界环境上,这可以使产品看起来存在于现实世界环境中。图像可以是顾客的家或与顾客相关的另一位置的图像,从而允许顾客在他们感兴趣的环境中查看产品。在一些实现中,家具零售商可以使用AR来使得顾客能够查看他们房屋中的虚拟家具。例如,可以使用AR将电视的虚拟表示叠加到顾客客厅的视频流上,从而允许领会电视在客厅中的尺寸和外观。
AR可以用于减少商家在“实体”零售商店中储存大量不同产品变体的需要。例如,某些产品可能有不同的变体,这些变体具有相同的形状和功能,但它们的视觉外观不同。此类产品变体的非限制性示例包括产品的不同颜色、图案、纹理和/或图形设计。当商家通过零售商店销售产品时,在库存中维护大量产品变体通常需要大的存储空间。此外,向顾客实际展示许多不同的产品变体可能很耗时并导致顾客失去兴趣。
举例来说,某些家具可能有许多不同的变体,但零售商店可能没有足够的存储空间来储存所有变体。AR可以用于以相对快速的方式向顾客展示家具的许多不同变体的虚拟表示,而无需实际存储变体。
服装是可以使用AR呈现给顾客的另一种类型的产品。智能镜子和其他具有AR功能的设备可以用于在零售商店中覆盖顾客身体部位的服装的虚拟表示。这可以被认为是一个智能更衣室。顾客然后可以评估服装的外观和合身性,即使商家没有库存的服装实物。此外,顾客可以在服装的不同变体之间快速切换,而不必实际穿上不同件服装,这可能是耗时的。
使用AR创建产品的虚拟表示的一个缺点是,许多顾客希望在决定是否购买产品之前与产品进行物理交互。例如,考虑有兴趣购买一件服装的顾客。覆盖在顾客身体部位上的一件服装的虚拟表示可能无法为顾客提供足够的信息来决定是否购买该服装。虽然虚拟表示可以向顾客提供服装看起来如何的指示,因为服装只是覆盖在顾客的身体上,顾客不能够评估服装的材料、悬垂性(drape)、感觉和构造。此外,一件服装的静态虚拟表示可能无法展示服装的一些美学特征,包括衣服如何随着顾客的移动而起皱和流动。例如,可能的是:一件服装的静态表示看起来更类似于纸娃娃的服装,而不是在穿着时会在穿戴者的身体周围流动和移动的服装实物。
因此,存在对允许顾客与产品物理交互并查看产品的多个不同变体而不需要商家实际存储每个变体的系统和方法的需要。
应当注意,虽然一些实施例是在商务应用的上下文中描述的,但是本公开绝不限于商务。本文公开的系统和方法也可以在AR的其他应用中实现。
使用扭曲的3D模型生成AR内容
本公开部分地涉及生成AR内容以覆盖现实世界物品然后更改现实世界物品。在零售商店应用中,这可能允许顾客在使用AR查看产品的多个不同变体的同时,与产品的单个现实世界物品进行物理交互。作为结果,商家可能能够减少存储在他们的库存中的物品总数。在在线购物应用中,商家可以将产品的单个现实世界物品运送给顾客,并允许顾客使用AR来查看产品的多个不同变体。这可以降低商家和/或顾客的运送成本,因为只需要运送一个物品。
举例来说,可以在零售商店中储存有限数量的产品的空白或通用物品。空白物品可能是单一单色的物品,但如以下所讨论的,情况可能并非总是如此。顾客可以使用空白物品与产品进行物理交互并欣赏产品的感觉、合身性、运动和/或其他物理特性。然后可以实现AR以在空白物品上描绘产品的不同视觉变体,从而允许顾客查看不同的变体。例如,可以使用AR向顾客呈现不同的产品颜色、图案和/或图形设计。然后顾客可以订购产品的特定变体。
空白物品可能仅意图用在零售商店中,并且可能不得销售给顾客。替代地,空白物品可以是产品的基本版本,诸如米色沙发或单色衣服。在顾客购买沙发的情况下,一张空白沙发在零售商店中可以是可用的,以允许顾客坐在沙发上,而AR用于展示可用于沙发的所有不同的颜色、图案、纹理和图形设计。类似地,在顾客购买衬衫的情况下,多种不同尺寸的空白衬衫在零售商店中可以是可用的,以帮助顾客选择衬衫的尺寸。可以使用AR将不同的视觉外观应用到空白衬衫上,以帮助顾客决定他们更喜欢衬衫的哪种变体。当顾客穿着衬衫和/或当衬衫挂在架子上或以其他方式展示在零售商店中时,可以应用不同的视觉外观。在某些情况下,在零售商店中储存产品的空白物品可能会减少盗窃,因为空白物品可能不是最合期望的产品变体。在某些情况下,空白物品可能会被特别地打上商标或被标记,这样包括可能通过在空白物品上显著地印刷的通知或刻字的方式。
许多产品是柔软的、柔性的、有延展性的或以其他方式可变形的。因此,这些产品的形状不是固定的,而是可以基于许多不同因素中的任何一个而改变。例如,考虑一件棉质衬衫。衬衫的形状特别可以基于它的穿着方式、移动方式、握持方式和定向方式而改变。当使用AR来更改可变形物品的视觉外观时,可能需要实时了解物品的3D形状,才能在现实世界物品上真实地覆盖新的视觉外观。
在一些实施例中,获得可变形现实世界物品的测量结果以帮助确定现实世界物品的3D形状。例如,这些测量结果可以包括光学图像、激光雷达扫描和/或雷达扫描。测量结果的分析然后可以确定提供现实世界物品的近似3D形状的物品上的多个点的3D方位或相对方位。增加被测量的现实世界物品上的点数可以允许更准确地确定现实世界物品的形状。测量结果的分析还可以确定用户设备相对于现实世界物品的方位。
在确定现实世界物品上的多个点的相对方位之后,可以为用户生成与物品对应的AR内容。该AR内容通常包括物品的3D模型的渲染,从用户的角度来看,其覆盖现实世界物品。在某些情况下,3D模型可以为物品提供新的视觉外观。例如,3D模型可以提供图案、颜色和/或图形设计,其可以覆盖现实世界物品以描绘特定的产品变体。
在一些实施例中,生成AR内容可以包括修改、变形或扭曲物品的3D模型,使得修改后的模型的形状对应于物品的测量的3D形状。这种扭曲可以基于现实世界物品上的多个点的测量的相对方位。例如,3D模型上的多个点可以映射到现实世界物品上的多个点的相对方位。在映射期间,3D模型的部分可以重新定位或以其他方式更改,这可以以3D模型的形状重新创建现实世界物品的3D形状。
基于现实世界物品的测量的3D形状扭曲3D模型的一个优点是物品的实时变形可以反映在3D模型中,从而允许3D模型的渲染以现实的方式正确匹配和覆盖现实世界物品。例如,现实世界物品中的任何弯曲、褶皱、波纹或其他变形都可以在修改后的3D模型中捕获。这可以被认为是3D模型被“收缩包裹”到现实世界物品。当3D模型包括无法容易地覆盖变形物品的复杂图案时,修改3D模型可能特别重要。例如,当尝试在空白沙发上虚拟地重新创建斑马纹图案时,可以响应于一个人坐在沙发上并使沙发变形来修改提供该图案的3D模型。照此,斑马纹图案与沙发的形状积极地相符。
此外,基于现实世界物品的测量形状来扭曲3D模型可以使得能够捕获柔性表面的运动和流动。对于诸如服装和衣服之类的物品,这可以捕获这些物品的重要美学方面。举例来说,顾客可能想要看到在衬衫移动、褶皱和起皱时,衬衫上的图案看起来如何。
相反,考虑在生成AR内容以覆盖物品时未确定现实世界物品的3D形状的情况。替代地,仅确定物品的2D轮廓。然后AR内容在物品的轮廓内覆盖一图案。这可以使用色度键合成来完成,例如,其中基于颜色将物品与周围环境分开。然后可以将选择的图案叠加在物品上。当物品不可变形和/或图案是统一颜色时,这种方法可能会为物品提供合适的虚拟外观。然而,如果图案不均匀并且物品可变形,色度键合成可能无法将图案真实地覆盖在变形物品上。例如,如果物品是带有褶皱的衬衫,并且图案是方格图案,则色度键合成可能无法准确描绘褶皱区域中的图案。这是因为色度键合成只能从单一角度检测衬衫的边界,而不能检测衬衫的3D形状。
在为可变形的现实世界物品生成AR内容之后,可以将AR内容输出到设备并覆盖现实世界物品。AR内容可以随着用户相对于物品的移动而更新,以确保从用户的角度来看,3D模型的渲染与物品的尺寸和定向匹配。例如,更新AR内容可以包括实时扭曲3D模型以匹配视频中捕获的物品的任何变形。进一步地,用户可以在物品的不同3D模型之间主动切换,以获得物品的不同物理外观。例如,这可以允许顾客查看产品的不同变体。
图4和图5分别示出了根据实施例的用户在第一时间实例下和在第二时间实例下穿着连衣裙400。连衣裙400是纯白色的柔性衣服。连衣裙400在第一时间实例下具有第一3D形状402并且在第二时间实例下具有第二3D形状404。如所示,3D形状402不同于3D形状404。例如,这种形状变化可能是由用户移动引起的,从而更改了连衣裙400的织物中的曲线、褶皱和折痕。
图6和图7分别示出了用户在第一时间实例下和在第二时间实例下穿着连衣裙400,但是虚拟图案600覆盖到连衣裙400上。虚拟图案600可以由描绘具有方格图案的连衣裙400的变体的AR内容提供。在一些实现中,虚拟图案600对应于连衣裙400的3D模型。3D模型可以在第一时间实例下基于连衣裙400的3D形状402而扭曲。然后可以使用扭曲的3D模型的渲染来提供图6中所示的虚拟图案600。类似地,在第二时间实例下基于连衣裙400的3D形状404扭曲3D模型之后,扭曲的3D模型的渲染可以用于提供图7中所示的虚拟图案600。
因为虚拟图案600基于图6和7中的3D形状402、404,所以虚拟图案600在连衣裙400的曲线和褶皱中被真实地描绘。以这种方式,虚拟图案600可以更好地表示带有方格图案的连衣裙400的变体在现实生活中将看起来如何。
图6和图7中所示的虚拟图案600是可以使用本文公开的系统和方法生成的AR内容的示例。
用于生成AR内容的示例系统和方法
图8是示出根据实施例的用于使用扭曲的3D模型生成AR内容的系统800的框图。系统800包括AR引擎802、网络820、用户设备830和物理、现实世界物品850。
在一些实现中,现实世界物品850是与用户设备830相关联的用户可能意图使用AR引擎802和/或用户设备830虚拟地更改的特定产品的物品。例如,现实世界物品850可以使用AR用不同的颜色、图案和/或设计覆盖来描绘产品的不同变体。现实世界物品850可以被认为是产品的空白物品。
现实世界物品850被示为衬衫,但这只是一个示例。现实世界物品850可以更一般地是任何对象或实体。在一些实现中,现实世界物品850包括一个或多个柔性表面。柔性表面通常是有延展性的、可变形的或能够以其他方式改变形状的表面。柔性表面的非限制性示例包括由织物、塑料和橡胶制成的表面。在一些实现中,现实世界物品850是或包括衣服。
用户设备830可以是或包括移动电话、平板电脑、膝上型电脑、投影仪、头戴式耳机和计算机。例如,用户设备830可以是由顾客拥有和/或操作的顾客设备或者是由商家拥有和/或操作的商家设备。
用户设备830包括处理器832、存储器834、用户界面836、网络接口838和传感器840。用户界面836可以包括例如显示屏幕(其可以是触摸屏幕)、手势识别系统、扬声器、耳机、麦克风、触觉、键盘和/或鼠标。用户界面836可以向用户呈现AR内容,包括视觉、触觉和音频内容。在一些实现中,用户设备830包括植入式设备或可穿戴设备,诸如嵌入衣服材料中的设备或用户穿戴的设备,诸如眼镜,具有允许用户查看现实世界并同时查看覆盖在现实世界上的AR内容的内置显示器。
网络接口838被提供用于通过网络820进行通信。网络接口838的结构将取决于用户设备830如何与网络820对接。例如,如果用户设备830是移动电话、头戴式耳机或平板电脑,则网络接口838可以包括具有天线的发射器/接收器以向/从网络820发送和接收无线传输。如果用户设备是利用网络电缆连接到网络的个人计算机,则网络接口838可以包括例如网络接口卡(NIC)、计算机端口和/或网络插座。处理器832直接执行或指示由用户设备830执行的所有操作。这些操作的示例包括处理从用户界面836接收的用户输入、准备用于通过网络820传输的信息、处理通过网络820接收的数据以及指示显示屏幕显示信息。处理器832可以由执行存储在存储器834中的指令的一个或多个处理器来实现。替代地,处理器832中的一些或全部可以使用专用电路,诸如专用集成电路(ASIC)、图形处理单元(GPU)或编程的现场可编程门阵列(FPGA)来实现。
例如,传感器840可以包括一个或多个相机、雷达传感器、激光雷达传感器和/或声纳传感器。尽管传感器840被示为用户设备830的组件,但是传感器840也可以或替代地与用户设备830分开实现并且可以例如经由有线和/或无线连接与用户设备830和/或AR引擎802通信。
传感器840可以获得现实世界空间的测量结果以帮助为用户设备830的用户提供AR体验。例如,传感器840可以执行SLAM过程的至少一部分。在一些实现中,由传感器840获得的测量结果用于帮助确定现实世界物品850的形状。这些测量结果可以提供现实世界物品850上的多个点852的相对方位。点852可以对应于现实世界物品850上的可被传感器840检测和/或定位的定义的图案、特征、结构、部分或地点。例如,点852中的每一个可以对应于沿着现实世界物品850上的织物之间的接缝的位置。在确定点852的相对方位之后,可以近似或估计现实世界物品850的整体形状。在一些实现中,由传感器840获得的现实世界物品850的测量结果被传输到AR引擎802用于分析以确定点852的相对方位。
应当注意,现实世界物品850上的点852的数量和方位仅作为示例提供。通常,由传感器840获得的测量结果可以帮助确定任何数量的点在现实世界物品850上的相对方位。例如,可以在现实世界物品850上确定数十、数百、数千、数万、数十万或数百万点的方位。在某些情况下,确定大量点在现实世界物品850上的方位可以增加估计现实世界物品850的形状的准确度和精确度。增加传感器840的分辨率可以增加现实世界物品850上可以被检测和定位的点的数量。可以实现相对高的感测分辨率以检测小的形状变化,诸如现实世界物品850的柔性表面中的褶皱或折痕。
在一些实现中,点852对应于并入现实世界物品850上或其中的标记的位置。这些标记中的每一个都可以是可通过测量检测的物理结构或设备。不同类型标记的非限制性示例包括光学标记、无线电波标记、惯性标记和磁性标记。标记可能不是现实世界物品850所固有的,但可能是添加到现实世界物品850的附加元素。例如,现实世界物品850可以是包含标记的空白物品,这些标记被特别添加以允许确定现实世界物品850的形状。通过在现实世界物品850上的点852处实现标记,可以通过检测和定位标记来确定点852的方位。
光学标记可以是通过光学图像可检测到的。例如,颜色、符号、图案、光发射器和/或光反射器可以在光学标记中实现并且可通过光学图像检测到。多个光学图像可以用于确定标记的方位或至少一个标记相对于其他标记的相对方位。值得注意的是,在某些情况下,由于褶皱、穿戴者的身体的方位等原因,光学标记可能被遮挡。在一些实现中,一个或多个标记被遮挡而其他标记可见的事实可以用于检测检测柔性物品的褶皱和/或采用在检测柔性物品的褶皱中。附加地或替代地,在一些实现中,计算机可读代码或标记,诸如条形码和快速响应(QR)码,例如被用作光学标记。这些计算机可读代码可以提供允许在现实世界物品上区分每个标记的信息。例如,当在现实世界物品上实现多个QR码时,每个QR码可能会提供指示QR码对应于该物品上的特定点的信息。
无线电波标记可以包括可以由RFID读取器检测和定位的射频识别(RFID)应答器。惯性标记可以包括被并入到物品中并且可以传输惯性数据的惯性传感器,惯性数据可以被分析以确定传感器的方位。例如,磁性标记可以包括通过磁通量测量来检测和定位的磁体。
网络820可以是在不同设备之间实现有线和/或无线连接的计算机网络,包括AR引擎802和用户设备830。网络820可以实现本领域已知的任何通信协议。通信协议的非限制性示例包括局域网(LAN)、无线LAN、互联网协议(IP)网络和蜂窝网络。
AR引擎802支持AR内容的生成,所述AR内容包括基于扭曲的3D模型的AR内容。如所示,AR引擎802包括处理器804、存储器806和网络接口808。处理器804可以由执行存储在存储器806或另一计算机可读介质中的指令的一个或多个处理器来实现。替代地,处理器804中的一些或全部可以使用专用电路,诸如ASIC、GPU或编程的FPGA来实现。
网络接口808被提供用于通过网络820进行通信。网络接口808的结构是实现特定的。例如,网络接口808可以包括NIC、计算机端口(例如,插头或电缆连接到的物理插座)和/或网络插口。
存储器806存储3D模型记录810、图像分析器812、3D模型扭曲器814和AR内容生成器816。
3D模型记录810可以包括物品、对象、建筑、位置、风景、人、解剖学特征、动物和/或任何其他类型的实体的虚拟3D模型。3D模型是用长度、宽度和高度定义的实体的数学表示。3D模型可以在3D虚拟坐标系内定位或以其他方式定义,例如,3D虚拟坐标系可以是笛卡尔坐标系、圆柱坐标系或极坐标系。3D模型可以锚定到虚拟坐标系的原点,使得3D模型在虚拟坐标系的中心处。3D模型可以完全是计算机生成的,或者可以基于现实世界实体的测量来生成。用于从现实世界实体生成3D模型的可能方法包括摄影测量(从一系列2D图像创建3D模型)和3D扫描(围绕实体移动扫描仪以捕获所有角度)。
可以在AR体验中实现3D模型,以允许在AR体验内以各种不同的角度查看虚拟物品。此外,当用户正在使用具有3D能力的设备(例如诸如耳机)与AR体验交互时,3D模型可以允许生成虚拟物品的3D表示。例如,虚拟物品的3D表示可以通过在用户的每只眼睛中显示虚拟物品的稍微不同的视角来实现,从而赋予对象3D效果。
存储在3D模型记录810中的3D模型还可以具有相关联的音频内容和/或触觉内容。例如,3D模型记录810可以存储由模型发出或以其他方式与模型相关联的声音和/或可以提供模型感觉的触觉反馈。
在一些实现中,存储在3D模型记录810中的一个或多个3D模型为产品提供不同的变体。例如,多个3D模型可能基于同一产品,但都可能具有反映产品的不同变体的不同视觉、音频和/或触觉内容。如本文别处所讨论的,这些3D模型可以覆盖到该产品的现实世界物品上以向用户呈现这些不同的变体。
应当注意,存储在3D模型记录810中的3D模型可能仅表示产品的一部分。在一个示例中,3D模型表示衬衫的标志,可以实现该标志以将标志覆盖到用户所穿的现实世界衬衫的图像上。这可能描绘了包括标志的衬衫的变体。在另一个示例中,3D模型表示一个铃铛,该铃铛可以覆盖到现实世界自行车的图像上以描绘包括铃铛的自行车的变体。
3D模型记录810中的3D模型可以以多种不同方式中的任何方式获得。在一些实现中,至少一些3D模型是从AR引擎802的用户获得的,例如诸如从顾客或商家获得的。商家可以为其商店中销售的任何、一个、一些或全部产品生成一个或多个3D模型。这些3D模型可以由商家直接提供给AR引擎802,或者AR引擎802可以从电子商务平台上的商家账户和/或从商家的在线商店获得3D模型。3D模型也可以从其他平台获得,例如诸如社交媒体平台。此外,一些3D模型可以在AR引擎802处本地生成。例如,由AR引擎802获得的图像或扫描可以用于生成3D模型。
提供图像分析器812以分析由AR引擎802接收和/或存储的图像。图像分析器812可以实现用于AR体验的SLAM过程的至少一部分。例如,图像分析器812可以从现实世界空间的一个或多个图像生成现实世界空间的表示并且在该现实世界空间内定位用户和/或用户设备。现实世界空间的表示可以包括在虚拟坐标系内定义的表面、边缘和/或拐角。
在一些实现中,图像分析器812用于分析从传感器840接收的图像以帮助确定现实世界物品上的多个点的相对方位,诸如现实世界物品850上的点852。举例来说,图像分析可以检测现实世界物品的特征,诸如现实世界物品的表面、边缘和/或拐角,并确定这些特征在3D中的尺寸和相对方位。然后可以使用特征的相对方位来获得现实世界物品上的多个点的相对方位。
可以将不止一张图像输入到图像分析器812中。例如,从不同方位拍摄的现实世界物品的多张图像可以允许检测和定位现实世界物品上的大量点。例如,可以从视频流和/或从多个不同的相机获得多个图像。在图像分析器812接收现实世界物品的视频流的情况下,图像分析器812可以执行初始特征检测操作以定位现实世界物品的特征。然后可以在从视频流接收的后续图像中实时跟踪这些特征。在后续图像中检测到的新特征可以用于确定现实世界物品上更多点的相对方位。
图像分析器812可以以可由处理器804执行的软件指令的形式实现。图像分析器812中可以包括许多不同算法中的任何一种。此类算法的非限制性示例包括:
● 表面、拐角和/或边缘检测算法;
● 对象识别算法;
● 运动检测算法;和
● 图像分割算法。
关于图像分析算法的另外细节可以在Richard Szeliski的Computer Vision: Algorithms and Applications, ISBN: 978-1-84882-935-0(Springer, 2010)中找到,其内容通过引用以其整体并入本文。
图像分析器812可以检测和定位并入到现实世界物品中的标记。这些标记可以被配置为使得它们可通过图像分析相对容易地被检测到。例如,现实世界物品上的亮色、光发射器和/或光反射器可以通过图像分析相对容易地可检测到。图像分析器812还可以被配置为读取由标记提供的机器可读代码以确定该标记对应于现实世界物品上的哪个点。
图像分析器812可以实现一个或多个机器学习(ML)模型来分析现实世界物品的图像并确定物品上多个点的相对方位。该物品可能包括由ML模型检测和定位的标记,但情况可能并非总是如此。ML模型可能替代地被训练来定位物品的某些固有物理特性。
根据一个示例,由图像分析器812实现的ML模型的训练数据集是通过在现实世界物品上的多个点处并入RFID应答器来生成的。RFID应答器在物品上不可见。然后获得物品的光学图像(例如,数码照片),同时测量RFID应答器的方位。RFID应答器的光学图像和测量方位可以形成ML模型的训练数据集。例如,RFID应答器方位可用于标记光学图像,这创建用于训练ML模型的标记数据集。然后可以训练ML模型以基于在该时间点捕获的光学图像预测每个RFID应答器在该时间点的测量方位。在训练之后,ML模型可以处理该物品和类似物品(例如,同一产品的物品)的光学图像,以检测和定位物品上与RFID应答器被并入的点相对应的点。在其他示例中,来自现实世界物品中陀螺仪的惯性数据、来自现实世界物品中加速度计的加速度数据和/或光学图像的手动标记也可以或替代地用于为ML模型创建训练数据集。
3D模型扭曲器814采用和/或实现一个或多个算法(可能以处理器804可执行的软件指令的形式)以基于对应现实世界物品上的多个点的相对方位来扭曲3D模型。得到的扭曲的3D模型的形状可能与现实世界物品的形状基本匹配。举例来说,3D模型扭曲器814可以基于点852的相对方位来扭曲对应于现实世界物品850的3D模型。该3D模型可以从3D模型记录810获得,并且点的相对方位可以由图像分析器812使用来自传感器840的测量结果来确定。
在一些实现中,3D模型扭曲器814基于现实世界物品上的点的测量方位映射或以其他方式重新定位3D模型的点。多边形建模、曲线建模和/或数字雕刻然后可以由3D模型扭曲器814使用以基于重新定位的点形成扭曲的3D模型。以这种方式,扭曲的3D模型的形状可以对应于现实世界物品的形状。
AR内容生成器816采用和/或实现一个或多个算法(可能以处理器804可执行的软件指令的形式)来为一个或多个用户生成AR内容。该AR内容可以为用户提供AR体验。
为了生成AR内容,AR内容生成器816的可能输入可能包括:
● 一个或多个3D模型。例如,3D模型可以从3D模型记录810获得。
● 一个或多个扭曲的3D模型。例如,3D模型可以从3D模型扭曲器814获得。
● 与用户相关联的现实世界空间的表示。可以使用SLAM过程和/或图像分析器812来获得现实世界空间的表示。现实世界空间的表示可以在虚拟坐标系内定义。
● 例如使用SLAM过程和/或图像分析器812确定的用户和/或用户设备在现实世界空间内的方位。
● 例如使用SLAM过程和/或图像分析器812确定的一个或多个现实世界物品在现实世界空间内的方位。
● 例如使用图像分析器812和/或通过无线电波、惯性和/或磁测量结果的分析确定的现实世界空间内现实世界物品上的多个点的方位。
AR内容生成器816输出的AR内容可以包括视觉、触觉和/或音频内容。该视觉、触觉和/或音频内容可以基于用户和/或用户设备在现实世界空间内的相对方位(包括位置和定向)生成。以这种方式,AR内容可以以上下文相关的方式虚拟地更改用户对现实世界空间的感知。
视觉内容可以允许用户在AR体验内查看虚拟图案、图形和/或对象。在一些实现中,视觉内容可以覆盖到用户周围的现实世界空间上。例如,这可以包括将视觉内容与由相机捕获的现实世界空间的图像进行合成。替代地,例如,可以使用AR头戴式耳机中的透明显示器将视觉内容覆盖到现实世界空间上。在一些实现中,AR内容包括覆盖在现实世界物品上以改变物品的物理外观的3D模型的渲染。这可以允许在同一现实世界物品上查看产品的多个视觉变体。
触觉内容可以允许用户在AR体验内触摸和感受虚拟纹理。触觉内容可以更改现实世界物品的纹理。在商务应用中,这可以允许用户与产品的空白物品交互并感受产品的一个或多个其他变体的纹理。触觉内容可以至少部分地使用具有内置触觉的服装来实现。
音频内容可以允许用户在AR体验内听到声音。音频内容可以在AR体验内实现具有与用户相对于音频内容的源的方位相对应的方向性的空间音频。在一些实现中,空间音频是通过独立控制播放到用户的每只耳朵中的声音来产生的。
AR内容可以由AR内容生成器816连续或间歇地更新以反映AR体验中的变化和/或修改。例如,如果使用3D模型来更改现实世界物品的外观并且用户相对于现实世界物品移动,则可以生成新的AR内容以反映用户相对于现实世界物品的新方位。新的AR内容可以包括基于用户相对于现实世界物品的新方位的3D模型的新渲染。此外,如果现实世界物品是可变形的并且随着时间的推移改变形状,则可以使用基于现实世界物品的实时形状而扭曲的3D模型来生成新的AR内容。
尽管图像分析器812、3D模型扭曲器814和AR内容生成器816被示为单独存储在存储器806中,但这仅是示例。一些实施例可以将图像分析器812、3D模型扭曲器814和/或AR内容生成器816的功能组合在存储在存储器806或另一计算机可读介质中的单个软件实例中。
可以输出由AR引擎802生成的AR内容用于在用户设备830处呈现。例如,AR内容可以显示在用户界面836上。照此,用户设备830可以使用户能够参与由AR引擎802提供的AR体验。在图5中,作为示例示出了一个用户设备。然而,不止一个用户设备可以与AR引擎802通信和/或从AR引擎接收AR内容。
作为示例提供了AR引擎802。还设想AR引擎的其他实现。在一些实现中,AR引擎至少部分地由电子商务平台提供,或者作为电子商务平台的核心功能,或者作为电子商务平台支持或与之通信的应用或服务。在一些实现中,AR引擎被实现为生成AR内容的独立服务。虽然AR引擎802被示为单个组件,但AR引擎可以替代地由经由网络通信的多个不同组件来提供。
在一些实现中,用户设备830具有AR内容生成能力。例如,类似于AR引擎802的AR引擎可以部分或全部实现在用户设备830上。软件应用或实例可以安装在本地(即,在用户设备830上)生成AR内容的用户设备830上。软件应用可以从AR引擎802接收3D模型记录810、图像分析器812、3D模型扭曲器814和/或AR内容生成器816中的至少一些。
现在参考图9,示出了流程图,其示出根据实施例的用于使用扭曲的3D模型生成AR内容的方法900。方法900将被描述为由图8的AR引擎802执行以虚拟地更改现实世界物品850。然而,方法900的至少一部分可以替代地在别处执行,例如诸如在用户设备830处。此外,虽然上面关于现实世界物品850描述了方法900,但是方法900可以更一般地应用以虚拟地更改任何物品和/或物品的任何部分。这些物品可以是可变形物品,其非限制性示例包括服装、鞋子和家具。
步骤902包括处理器804确定现实世界物品850上的多个点的相对方位。这些点可以包括但绝不限于点852。现实世界物品850上的多个点的相对方位可以在某一时间实例指示或提供现实世界物品850(或现实世界物品850的至少一部分)的近似形状,并且可以在步骤902之后被存储在存储器806中。
在一些实现中,在AR体验的虚拟坐标系内定义现实世界物品850上的点的确定方位。例如,可以使用SLAM过程将虚拟坐标系映射到现实世界物品850周围的现实世界空间。然后可以将现实世界物品850上的多个点的方位定义为虚拟坐标系内的坐标。也可以在虚拟坐标系内定义用户和/或用户设备830的方位。
应当注意,现实世界物品上的点的确定方位可以包括位置和定向。例如,现实世界物品850的表面上的点可以由表面上的点的位置(例如,诸如点在虚拟坐标系中的坐标)和到该点处的表面的法向量来定义。
在一些实现中,步骤902包括可选地使用传感器840获得现实世界物品850的测量结果。此类测量结果的非限制性示例包括光学测量结果、无线电波测量结果、惯性测量结果和/或磁测量结果。测量结果可以由用户设备830的处理器832分析以确定现实世界物品850上的多个点的相对方位。然后可以将点的相对方位传输到AR引擎802。替代地或另外地,测量结果可以从用户设备830传输到AR引擎802以供处理器804分析。例如,可以将光学图像输入到图像分析器812中以确定现实世界物品850上的多个点的相对方位。
在一些实现中,在步骤902中使用ML模型来帮助确定现实世界物品850上的多个点的相对方位。如本文别处进一步详细讨论的,可以训练ML模型以使用现实世界物品850的光学测量结果和/或其他测量结果来检测和定位现实世界物品850上的点。步骤902可以包括将这些测量结果输入到ML模型中并获得ML模型的输出。然后可以基于ML模型的输出来确定现实世界物品850上的点的相对方位。例如,该ML模型可以由图像分析器812实现。
如以上所指出的,可以在现实世界物品850上的多个点处实现标记。步骤902可以包括确定每个标记的相对方位,然后可以将其用作现实世界物品850上的相应点的方位。在一些实现中,标记可以是或包括光学标记。在这些实现中,步骤902可以包括例如从传感器840获得现实世界物品850的一个或多个图像,并且对图像执行图像分析(例如使用图像分析器812)以检测和/或定位标记。
在某些情况下,现实世界物品850的某些部分可能不可通过测量检测到。例如,当现实世界物品850是诸如衣服之类的可变形物品时,现实世界物品850的流动或褶皱可能导致一些部分在视觉上被遮挡。现实世界物品850的一部分的未检测到可以被AR引擎802解释为现实世界物品850的表面中的褶皱或折痕。举例来说,当现实世界物品850包括QR码并且QR码中的一些不可通过光学测量检测到时,被遮挡的QR码的方位可以被指定为一个或多个褶皱。替代地或附加地,现实世界物品850的一部分的未检测到可以被AR引擎802解释为另一个对象阻挡了现实世界物品850的该部分。例如,通过图像分析对现实世界物品850上的阴影的检测是用于确定现实世界物品850中的褶皱或折痕的方位的另一种潜在方法。
例如,现实世界物品850中的褶皱或折痕的检测不同于运动捕获套装的使用。运动捕获套装在定义的控制点处有标记,并被配置为通过使套装紧身来防止那些标记移位和变得不必要地被遮挡。运动捕获套装的紧身性质可以有意地减少套装的褶皱。相比之下,许多产品(诸如衣服)例如易于褶皱,并且甚至可以被设计以褶皱。
步骤904包括处理器804基于在步骤902中确定的现实世界物品850上的多个点的相对方位来扭曲虚拟物品的3D模型。虚拟物品的3D模型可以对应于现实世界物品850。例如,3D模型可能已经被生成以表示现实世界物品850并且甚至可能已经基于现实世界物品850或类似物品(例如,由商家销售的相同产品的物品)的3D扫描被生成。然而,3D模型可能仅表示现实世界物品850的一部分,而不是整个现实世界物品850。
在一些实现中,步骤904包括修改3D模型以将3D模型中的点重新定位为处于与在步骤902中确定的点的相对方位对应的相对方位中。然后可以使用多边形建模、曲线建模和/或数字雕刻来连接重新定位的点并形成扭曲的3D模型。作为结果,扭曲的3D模型的形状可能与现实世界物品850的形状基本匹配。
在一些实现中,步骤904包括将3D模型和/或现实世界物品850的多个点的相对方位输入到3D模型扭曲器814中。虚拟物品的扭曲的3D模型可以从来自3D模型扭曲器814的输出中获得。
在步骤904生成的扭曲的3D模型可以用于更改用户对现实世界物品850的感知。在一些实现中,3D模型包括现实世界物品850的视觉外观。3D模型还可以或替代地包括现实世界物品850的虚拟声音和/或纹理。视觉外观、声音和/或纹理可以模拟现实世界物品850的某个变体。例如,当现实世界物品850对应于商家销售的特定产品时,那么3D模型可以模拟该产品的特定变体。
可以从3D模型记录810中获得在步骤904中扭曲的3D模型。从3D模型记录810中选择特定的3D模型可以以多种不同方式中的任何方式来执行。在某些情况下,例如,可以经由在用户设备830处的用户输入从一组3D模型中主动地选择3D模型。例如,所选择的3D模型可以对应于用户希望与之虚拟交互的现实世界物品850的特定变体。
在一些实现中,在步骤904中扭曲的3D模型可以由计算机平台自动选择或建议。例如,AR引擎802可以为用户设备830的用户建议一个或多个3D模型。用户然后可以经由在用户界面836处的输入来选择建议的3D模型之一。
例如,为现实世界物品850自动选择或建议3D模型可能涉及使用关于现实世界物品850的一些信息,诸如对应于现实世界物品850的产品或产品类型和/或销售现实世界物品850的商家的身份。产品、产品类型和/或商家的身份可以由用户通过在用户设备830处的用户输入来提供。替代地或另外地,现实世界物品850的测量可以用于自动标识对应于现实世界物品850的产品、产品类型和/或商家。
根据一个示例,现实世界物品850上的标记的特定布置可能对应于商家销售的特定产品。通过分析标记的相对方位,可能使用ML模型,处理器804可以获得产品的产品编号和/或销售产品的商家的身份。根据另一个示例,现实世界物品850上的QR码可以编码信息以帮助标识产品编号和/或商家。在获得产品编号和/或商家的身份之后,AR引擎802可以为现实世界物品850选择或建议3D模型。这些3D模型可能已经被生成用于更改由商家销售的产品的外观的特定目的。
用户偏好也可以或替代地用于帮助为现实世界物品850自动选择或建议3D模型。例如,一旦标识对应于现实世界物品850的产品和/或商家,就可以从3D模型记录810中获得对应于该产品和/或商家的3D模型列表。然后AR引擎802可以使用用户偏好来从该列表中选择3D模型的子集。在一个示例中,如果用户设备830的用户历史上购买过与现实世界物品850相似的黄色产品,则为用户选择或建议的3D模型可能提供现实世界物品850的黄色变体。在另一个示例中,如果其他用户通常购买和/或查看现实世界物品850的特定变体(即,该变体受顾客欢迎),则对应于该变体的3D模型可以由AR引擎802为用户设备830的用户选择或建议。
AR引擎802可以存储用户偏好的记录以帮助为用户自动选择或建议3D模型,但情况可能并非总是如此。用户偏好的记录也可以存储在别处并由AR引擎802访问。例如,可以以查找表的形式存储用户偏好的记录。
在一些实现中,可选地由AR引擎802提供的ML模型被训练以基于用户过去的购买、其他用户的偏好和/或其他用户活动来预测用户的偏好。用户偏好的记录可以形成用于这种ML模型的训练数据集的至少一部分。然后可以实现经训练的ML模型以建议或选择现实世界物品850的3D模型,该模型与跟用户设备830相关联的用户的偏好匹配。
步骤906包括处理器804生成AR内容用于在用户设备830或别处呈现。在步骤906生成的AR内容可以基于在步骤904生成的扭曲的3D模型。例如,步骤906可以包括渲染扭曲的3D模型。AR内容可以使用渲染来覆盖现实世界物品850并虚拟地更改现实世界物品850的外观。图6至图7提供了将AR内容覆盖到现实世界物品上以更改现实世界物品的外观的示例。在步骤906生成的AR内容还可以或替代地提供更改现实世界物品850的声音和/或纹理。
在一些实现中,例如,在步骤906生成的AR内容基于扭曲的3D模型和诸如色度键合成之类的图像处理技术的组合。考虑其中生成AR内容以描绘现实世界物品850的变体的情况,该变体是统一颜色并且在一个位置处具有标志。色度键合成可以用于虚拟地将统一颜色添加到现实世界物品850。扭曲的3D模型可能仅表示标志,并且3D模型的渲染可以用于提供基于现实世界物品850的形状的标志的描绘。这可以节省AR引擎802处的计算资源,因为只有标志的3D模型(或与标志对应的现实世界物品850的一部分)被扭曲和渲染,而不是整个现实世界物品850的3D模型。
在可选步骤908中,在步骤906中生成的AR内容由处理器804输出以显示在用户设备830上。AR内容的形式在本文中不受限制。如果用户设备830的传感器840包括相机,则AR内容可以包括与由相机捕获的现实世界物品850的图像(或视频的帧)合成的扭曲的3D模型的渲染。渲染可以将现实世界物品850的描绘覆盖在图像上以更改现实世界物品850的外观。
在一些实现中,扭曲的3D模型是从对应于现实世界物品850的图像的视点或角度渲染的,使得渲染与图像中现实世界物品850的尺寸和定向基本匹配。图像分析(例如,使用图像分析器812)可以用于确定对应于图像的视点。由传感器840捕获的相同图像也可以用在步骤902中以确定现实世界物品850上的点的相对方位。
如果用户设备830是具有透明显示器的设备,则扭曲的3D模型的渲染可以通过透明显示器覆盖在现实世界物品850的用户视图上。这里,可以基于用户设备830和/或用户相对于现实世界物品850的方位来渲染扭曲的3D模型,以便从用户的角度准确地反映现实世界物品850的尺寸和定向。方法900还可以包括确定用户和/或用户设备830相对于现实世界物品850的这个方位。例如,可以可选地使用SLAM过程分析传感器840捕获的测量结果以确定用户设备830和/或用户相对于现实世界物品850的方位、视点和/或角度。
步骤902、904、906、908可以重复多次以提供反映用户和/或用户设备830随时间的流逝相对于现实世界物品850的移动的更新的AR内容。更新的AR内容也可以或替代地反映现实世界物品850的形状的变化。例如,现实世界物品850可以是具有柔性表面的衣服,从而允许现实世界物品850改变形状。间歇地或连续地执行步骤902、904、906、908可以跟踪现实世界物品850的变化形状,基于变化形状扭曲3D模型,并生成AR内容以用反映其变化形状的方式更改现实世界物品850的外观。
根据一个示例,现实世界物品850以第一形状开始。执行步骤902的第一实例以确定以该第一形状的现实世界物品850上的多个点的第一相对方位,这可以允许AR引擎802确定第一形状。在步骤904的第一实例中,基于多个点的第一相对方位扭曲3D模型以生成反映第一形状的第一扭曲的3D模型。然后在步骤906基于第一扭曲模型生成第一AR内容。稍后,现实世界物品850可以是第二形状。执行步骤902的第二实例以确定以第二形状的现实世界物品850上的多个点的第二相对方位,由此潜在地确定第二形状。步骤904、906的第二实例然后可以基于第二扭曲的3D模型生成第二AR内容,其中第二扭曲的3D模型可以通过基于现实世界物品850上的点的第二相对方位扭曲第一扭曲的3D模型或扭曲原始3D模型来产生。
可选步骤910包括处理器804获得用虚拟物品的第二3D模型替换在步骤904中扭曲的虚拟物品的3D模型(称为第一3D模型)的指令。该指令可以源自用户设备830处的用户输入。例如,第一3D模型可以对应于现实世界物品850的一个变体,但用户设备830的用户可能希望查看现实世界物品850的不同变体。使用用户设备830,用户可以生成经由AR内容查看不同变体的指令,AR引擎802将其解释为用第二3D模型替换第一3D模型的指令。然后可以重复步骤902、904、906、908以基于第二3D模型的扭曲版本生成另外的AR内容。
方法900可以在商务应用中实现以允许商家避免在零售商店中存储产品的多种不同的变体,由此允许相对较小的商店向顾客提供各种产品变体。方法900也可以应用于商务环境之外。例如:
● 方法900可以被应用以允许视频聊天的参与者虚拟地更改他们的服装。参与者穿着的一件服装可以包括标记以帮助确定服装的形状。
● 方法900可以应用以虚拟地更改体育赛事中运动员的服装。例如,方法900可以用于在比赛期间改变曲棍球毛衣上的商标和/或可以用于在广播期间将区域赞助商添加到运动员的服装。
● 方法900可以被应用以允许用户将虚拟元素放置在服装上。此类元素的非限制性示例包括关于约会的信息、时钟、关于天气的信息和穿戴者的情绪的指示。可以使用带有透明显示器的头戴式耳机查看这些元素,并且这些元素可以随着穿戴者的移动而与服装一起流动。
生成AR内容以虚拟地更改现实世界物品的另外的示例
图10到18提供了AR内容的示例,所述AR内容使用扭曲的3D模型而生成以虚拟地更改可变形的现实世界物品。
图10示出了根据实施例的显示屏幕页面1002的用户设备1000。屏幕页面1002包括穿着衬衫1010站在镜子前的用户的图像1004。在所示示例中,图像1004由用户设备1000上的相机捕获。
在一些实现中,图像1004是在用户正在试穿衬衫1010的零售商店内捕获的。替代地,衬衫1010可能已经邮寄给用户并且用户可能正在他们的家中试穿衬衫1010。
衬衫1010是商家销售的可变形的现实世界产品的一种变体,并且甚至可能被认为是该产品的空白物品。然而,在某些情况下,用户可能有兴趣查看产品的不同变体。产品的这些变体可能无法在零售商店中实际得到或可能尚未邮寄给用户,并且因此用户可能不能够实际试穿不同的变体。
为了允许用户经由用户设备1000与衬衫1010的不同变体虚拟地交互,屏幕页面1002包括多个选项1006、1008。如所示,选项1006、1008中的每一个对应于衬衫1010的不同图案。这些图案描绘了衬衫1010的不同变体。选择选项1006、1008之一可以导致图9的方法900被实现以生成将对应图案添加到衬衫1010的AR内容。以这种方式,方法900可以允许用户查看衬衫1010的多个不同变体而不必试穿不同的现实世界物品。
在一些实现中,选项1006、1008是基于已经由AR引擎自动生成的产品建议来提供的。例如,AR引擎可以通过分析图像1004来确定衬衫1010的产品编号和/或销售衬衫1010的商家的身份。使用产品编号和/或商家的身份,AR引擎可以获得提供对应于选项1006、1008的图案的3D模型。这些3D模型可以是与产品编号和/或商家相关联的所有3D模型,或者它们可以是总可用3D模型的子集。如上面进一步详细概述的,可以基于用户偏好来选择该子集。
图11示出了响应于用户选择屏幕页面1002中的选项1008而生成的扭曲的3D模型1100。扭曲的3D模型1100提供选项1008中所示的衬衫1010的图案,并在虚拟坐标系1102的原点处定义。用户设备1000的方位1104也在虚拟坐标系1102内定义。该方位1104对应于衬衫1010在图像1004中的相对方位。换言之,扭曲的3D模型1100和虚拟坐标系1102中的方位1104之间的距离近似等于从用户设备1000到镜子的现实世界距离加上从衬衫1010到镜子的距离。方位1104可能已经通过对图像1004的分析和/或通过对其他测量结果的分析而被确定。
扭曲的3D模型1100包括在虚拟坐标系1102内定义的多个点1106。点1106的相对方位对应于衬衫1010上的多个点的相对方位,其可能已经在方法900的步骤902中确定。例如,图像1004和/或其他测量结果可能已经被分析以确定衬衫1010上的点的相对方位。尽管在图像1004中不可见,但是衬衫1010可以包括标记以帮助确定点的相对方位。
扭曲的3D模型1100可能已经通过将点1106重新定位为处于与衬衫1010上的点的相对方位相对应的相对方位中来生成,可选地在方法900的步骤904中。作为结果,扭曲的3D模型1100的形状与图像1004中所示的衬衫1010的形状基本匹配。例如,这反映在扭曲的3D模型1100的轮廓、褶皱和折痕中。此外,由扭曲的3D模型1100提供的图案变形以对应于衬衫1010的形状。照此,扭曲的3D模型1100可以用于以真实的方式更改衬衫1010的外观。
图12示出了用户设备1000显示响应于用户选择屏幕页面1002中的选项1008而生成的屏幕页面1202。屏幕页面1202包括AR内容1204,其包括扭曲的3D模型1100的渲染1206。例如,AR内容1204可以在方法900的步骤906中生成。基于用户设备1000在虚拟坐标系1102中相对于扭曲的3D模型1100的方位1104生成渲染1206,使得AR内容1204中渲染1206的尺寸和定向对应于衬衫1010在图像1004中的尺寸和定向。
在AR内容1204中,渲染1206覆盖图像1004,使得渲染1206更改衬衫1010的外观。衬衫1010的更改的外观包括由扭曲的3D模型1100提供的图案。渲染1206考虑了衬衫1010中的褶皱和折痕,并且因此图案真实地反映在这些褶皱和折痕中。以这种方式,用户设备1000的用户能够虚拟地查看由扭曲的3D模型1100在衬衫1010上提供的图案。
可以为用户设备1000实时连续或间歇地更新AR内容,其可以反映用户和/或用户设备1000在现实世界中相对于衬衫1010的移动。值得注意的是,在这种实时/近实时实现中,AR内容可以基于现实世界中衬衫1010的捕获图像连续或间歇地更新。照此,在至少一些这样的实现中,衬衫1010的现实世界图像可以被依次捕获然后被短暂地缓冲,诸如通过将所捕获的图像中的一些或全部存储在存储器中的缓冲器中,以便促进基于那些缓冲图像生成AR内容。更广泛地,在一些实现中,现实世界中衬衫1010的捕获图像可以另外地或替代地被存储(例如,在存储器中、在缓冲器中或在持久存储装置中)达比生成实时/近实时AR内容所需的时间更长的时段。然后,方便的是,可以在稍后的某个时间基于此类存储的图像生成类似于AR内容的内容。
图13示出了图11的扭曲的3D模型1100和用户设备1000在虚拟坐标系1102内的新方位1300。新方位1300可以反映用户设备1000在现实世界中相对于衬衫1010的新方位(包括新位置和定向)。例如,方位1300可以是用户在现实世界中相对于用户设备1000旋转衬衫1010的结果,使得用户设备1000正在对衬衫1010的右侧进行成像。
图14示出了用户设备1000显示包括更新的AR内容1404的屏幕页面1402,该内容基于用户设备1000在虚拟坐标系1102内的方位1300。AR内容1404包括显示穿着衬衫1010的用户的右侧的图像1408。AR内容1404还包括扭曲的3D模型1100的更新的渲染1406,其基于用户设备1000在虚拟坐标系1102中相对于扭曲的3D模型1100的方位1300。渲染1406描绘了扭曲的3D模型1100的右侧,并且从图像1408的视点来看,与衬衫1010的尺寸和定向基本匹配。渲染1406与图像1408合成以覆盖AR内容1404中的衬衫1010,从而虚拟地更改衬衫1010的外观。
渲染1406考虑了衬衫1010的在图像1408中被遮挡的部分。例如,用户的手臂,一般在图14中在1410处示出,遮挡衬衫1010的一部分。例如,可以通过在方法900的步骤902中对图像1408的分析来标识衬衫1010的这个被遮挡的部分。生成扭曲的3D模型1100的渲染1406以考虑被遮挡部分并且不覆盖用户的手臂1410。
图11至14示出了使用方法900生成的AR内容例如可以如何在AR体验中适应现实世界物品相对于用户设备的移动的示例。
除了反映在现实世界中用户和/或用户设备1000相对于衬衫1010的移动之外,更新的AR内容也可以或替代地反映衬衫1010的实时变形。
图15示出了在虚拟坐标系1102内定义的另一个扭曲的3D模型1500。用户设备1000的方位1502在图15中也在虚拟坐标系1102内定义。扭曲的3D模型1500为衬衫1010提供与扭曲的3D模型1100相同的图案。然而,扭曲的3D模型1500不同于扭曲的3D模型1100而被扭曲,这反映在图11和15中所示的扭曲的3D模型1100、1500的不同形状中。在某些情况下,扭曲的3D模型1100、1500是相同原始3D模型的不同扭曲。
扭曲的3D模型1500可能已响应于衬衫1010在现实世界中改变形状而生成。例如,扭曲的3D模型1100可能对应于在一个时间实例测量的衬衫1010的第一形状,并且扭曲的3D模型1500可能对应于在另一个时间实例测量的衬衫1010的第二形状。扭曲的3D模型1500包括在相对方位处的多个点1506,所述相对方位对应于以其第二形状的衬衫1010上的多个点的相对方位。点1506可能对应于扭曲的3D模型1100上的点1106,但是由于扭曲的3D模型1100、1500的不同形状,点1506与点1106处于不同的相对方位。
图16示出了用户设备1000显示包括更新的AR内容1604的屏幕页面1602。AR内容1604包括以其第二形状的衬衫1010的图像1608。AR内容1604还包括扭曲的3D模型1500的渲染1606,其基于用户设备1000在虚拟坐标系1102中相对于扭曲的3D模型1500的方位1502。渲染1606覆盖AR内容1604中的衬衫1010并提供符合衬衫1010的第二形状的图案。
图11、12、15和16示出了使用方法900生成的AR内容例如可以如何适应现实世界物品的实时变形的示例。
由扭曲的3D模型1100、1500提供的图案只是可以用于更改衬衫1010外观的图案的一个示例。在一些实现中,衬衫1010的多个不同3D模型是可用的,其中每个3D模型提供不同的图案。不同的图案可以对应于衬衫1010的不同变体。举例来说,屏幕页面1002、1202、1402、1602中所示的选项1006对应于为衬衫1010提供与由扭曲的3D模型1100、1500提供的图案不同的图案的3D模型。在屏幕页面1202、1402、1602中的任一个中选择选项1006可以生成用提供这种不同图案的3D模型替换扭曲的3D模型1100或扭曲的3D模型1500的指令。
图17示出了响应于选择屏幕页面1202中的选项1006而生成的扭曲的3D模型1700。扭曲的3D模型在虚拟坐标系1102内定义。扭曲的3D模型1700上的多个点1706的相对方位对应于在选择选项1006之后衬衫1010上的多个点的测量相对方位。因此,在选择选项1006之后,扭曲的3D模型1700的形状通常对应于衬衫1010的形状。用户设备1000的方位1702在图17中也在虚拟坐标系1102内定义。
图18示出了用户设备1000显示响应于选择屏幕页面1202中的选项1006而生成的屏幕页面1802。屏幕页面1802包括具有扭曲的3D模型1700的渲染1806的AR内容1804。在AR内容1804中,渲染1806覆盖衬衫1010的图像1808,使得渲染1806将由扭曲的3D模型1700提供的图案添加到衬衫1010。
图11、12、17和18示出了使用方法900生成的AR内容例如可以如何允许用户在AR体验中在现实世界物品的多个不同变体之间虚拟地切换。
屏幕页面1002、1202、1402、1602、1802和扭曲的3D模型1100、1500、1700可以由在用户设备1000上或别处执行的软件应用生成。该软件应用可以实现图9的方法900或本文公开的任何其他方法。软件应用可以是电子商务应用,其使用户能够使用AR与衬衫1010的多个变体进行交互,并且还使用户能够购买衬衫1010的变体。例如,屏幕页面1002、1202、1402、1602、1802中的任何、一个、一些或全部可以包括使用户能够购买衬衫1010的变体的另外的选项。
结论
尽管已经参考本发明的具体特征和实施例描述了本发明,但是在不脱离本发明的情况下可以对其进行各种修改和组合。因此,说明书和附图应被简单地看作是对由所附权利要求限定的本发明的一些实施例的说明,并且被认为覆盖了落入本发明的范围内的任何和所有修改、改变、组合或等同物。因此,尽管已经详细描述了本发明及其优点,但是在不背离由所附权利要求限定的本发明的情况下,可以在此进行各种改变、替换和变更。此外,本申请的范围并不旨在限于说明书中描述的过程、机器、制造、物质组成、装置、方法和步骤的特定实施例。如本领域普通技术人员从本发明的公开内容中可以容易理解的,根据本发明,也可以利用目前存在的或以后将开发的、执行与本文所述的相应实施例基本相同的功能或实现与本文所述的相应实施例基本相同的结果的过程、机器、制造、物质组成、设备、方法或步骤。因此,所附权利要求旨在将这些过程、机器、制造、物质组成、设备、方法或步骤包括在其范围内。
此外,本文中例示的执行指令的任何模块、组件或设备都可以包括或以其他方式访问用于存储信息的非暂时性计算机/处理器可读存储介质,诸如计算机/处理器可读指令、数据结构、程序模块和/或其他数据。非暂时性计算机/处理器可读存储介质的示例的非穷举列表包括磁带盒、磁带、磁盘存储或其他磁存储设备、诸如压缩盘只读存储器(CD-ROM)、数字视频盘或数字多功能盘(DVD)、Blu-rayDisc™或其他光学存储之类的光盘、以任何方法或技术实现的易失性和非易失性、可移动和不可移动介质、随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存或其他存储器技术。任何这样的非暂时性计算机/处理器存储介质都可以是设备的一部分或者可接入或可连接到该设备上。本文描述的任何应用或模块可使用可由这样的非暂时性计算机/处理器可读存储介质存储或以其他方式保持的计算机/处理器可读/可执行指令来实现。
本教导还可以扩展到以下编号条款中的一个或多个的特征。
条款
1. 一种计算机实现的方法,包括:
确定现实世界物品上的多个点的相对方位;
基于多个点的相对方位扭曲虚拟物品的三维模型,以产生虚拟物品的扭曲的三维模型;和
生成增强现实(AR)内容用于呈现,AR内容基于扭曲的三维模型。
2. 根据条款1所述的计算机实现的方法,其中生成AR内容包括渲染扭曲的三维模型。
3. 根据条款2所述的计算机实现的方法,其中:
扭曲的三维模型是从与现实世界物品的捕获图像对应的视点渲染的;和
生成AR内容还包括将渲染与图像合成以覆盖现实世界物品。
4. 根据条款2所述的计算机实现的方法,还包括:
确定用户相对于现实世界物品的方位,其中基于用户的方位渲染扭曲的三维模型。
5. 根据条款1所述的计算机实现的方法,其中基于多个点的相对方位扭曲虚拟物品的三维模型包括修改三维模型以将三维模型中的点重新定位为处于与多个点的相对方位对应的相对方位中。
6. 根据条款1所述的计算机实现的方法,其中现实世界物品包括柔性表面。
7. 根据条款6所述的计算机实现的方法,其中现实世界物品是或包括衣服。
8. 根据条款1所述的计算机实现的方法,其中:
现实世界物品包括多个标记,多个标记中的每一个位于现实世界物品上的多个点中的相应不同的一个点处;和
确定现实世界物品上的多个点的相对方位包括确定多个标记的相对方位。
9. 根据条款8所述的计算机实现的方法,其中所述多个标记包括光学标记,所述方法还包括:
获得现实世界物品的至少一个图像,其中确定多个标记的相对方位包括对所述至少一个图像执行图像分析以检测光学标记。
10. 根据条款1所述的计算机实现的方法,其中确定现实世界物品上的多个点的相对方位包括:
获得现实世界物品的测量结果;
将测量结果输入到机器学习(ML)模型中;和
获得ML模型的输出,其中现实世界物品上的多个点的相对方位基于ML模型的输出。
11. 根据条款1所述的计算机实现的方法,其中:
多个点的相对方位是多个点的第一相对方位,虚拟物品的扭曲模型是虚拟物品的第一扭曲模型,并且AR内容是第一AR内容;
多个点的第一相对方位对应于以第一形状的现实世界物品;和
所述方法还包括:
确定现实世界物品上的多个点的第二相对方位,第二相对方位对应于以第二形状的现实世界物品;
基于多个点的第二相对方位扭曲虚拟物品的三维模型,以产生虚拟物品的第二扭曲三维模型;和
生成第二AR内容用于呈现,第二AR内容基于第二扭曲三维模型。
12. 根据条款1所述的计算机实现的方法,其中所述三维模型包括现实世界物品的视觉外观。
13. 根据条款1所述的计算机实现的方法,其中:
现实世界物品上的多个点的相对方位基于从设备获得的测量结果;和
AR内容用于在该设备处呈现。
14. 根据条款1所述的计算机实现的方法,其中虚拟物品的三维模型是虚拟物品的第一三维模型,多个点的相对方位是多个点的第一相对方位,并且AR内容是第一AR内容,所述方法还包括:
获得用虚拟物品的第二三维模型替换虚拟物品的第一三维模型的指令,该指令源自在设备处的用户输入;
确定现实世界物品上的多个点的第二相对方位;
基于多个点的第二相对方位扭曲虚拟物品的第二三维模型,以产生虚拟物品的扭曲的第二三维模型;和
生成第二AR内容用于呈现,第二AR内容基于扭曲的第二三维模型。
15. 一种系统,包括:
存储器,用以存储现实世界物品上的多个点的相对方位;和
至少一个处理器,用以:
基于多个点的相对方位扭曲虚拟物品的三维模型,以产生虚拟物品的扭曲的三维模型;和
生成增强现实(AR)内容用于呈现,AR内容基于扭曲的三维模型。
16. 根据条款15所述的系统,其中:
至少一个处理器进一步用以渲染扭曲的三维模型;和
AR内容包括渲染。
17. 根据条款16所述的系统,其中:
扭曲的三维模型是从与现实世界物品的捕获图像对应的视点渲染的;和
AR内容包括与图像合成的渲染以覆盖现实世界物品。
18. 根据条款15所述的系统,其中扭曲的三维模型包括重新定位为处于与多个点的相对方位相对应的相对方位中的点。
19. 根据条款15所述的系统,其中:
现实世界物品包括多个标记,多个标记中的每一个位于现实世界物品上的多个点中的相应不同的一个点处;和
至少一个处理器进一步用以确定多个标记的相对方位。
20. 根据条款19所述的系统,其中:
多个标记包括光学标记;和
至少一个处理器进一步用以对现实世界物品的至少一个图像执行图像分析以检测光学标记。
21. 根据条款15所述的系统,其中所述至少一个处理器进一步用以:
获得现实世界物品的测量结果;
将测量结果输入到机器学习(ML)模型中;和
获得ML模型的输出,其中现实世界物品上的多个点的相对方位基于ML模型的输出。
22. 根据条款15所述的系统,其中:
多个点的相对方位是多个点的第一相对方位,虚拟物品的扭曲模型是虚拟物品的第一扭曲模型,并且AR内容是第一AR内容;
多个点的第一相对方位对应于以第一形状的现实世界物品;
存储器进一步用以存储现实世界物品上的多个点的第二相对方位,第二相对方位对应于以第二形状的现实世界物品;和
所述至少一个处理器进一步用以:
基于多个点的第二相对方位扭曲虚拟物品的三维模型,以产生虚拟物品的第二扭曲三维模型;和
生成第二AR内容用于呈现,第二AR内容基于第二扭曲三维模型。
23. 根据条款15所述的系统,其中:
现实世界物品上的多个点的相对方位基于从设备获得的测量结果;和
AR内容用于在该设备处呈现。
24. 根据条款15所述的系统,其中虚拟物品的三维模型是虚拟物品的第一三维模型,多个点的相对方位是多个点的第一相对方位,AR内容是第一AR内容,并且至少一个处理器进一步用以:
获得用虚拟物品的第二三维模型替换虚拟物品的第一三维模型的指令,该指令源自在设备处的用户输入;
存储器进一步用以存储现实世界物品上的多个点的第二相对方位;和
所述至少一个处理器进一步用以:
基于多个点的第二相对方位扭曲虚拟物品的第二三维模型,以产生虚拟物品的扭曲的第二三维模型;和
生成第二AR内容用于呈现,第二AR内容基于扭曲的第二三维模型。
25. 一种存储计算机可执行指令的非暂时性计算机可读介质,所述计算机可执行指令当由计算机执行时,使计算机执行包括以下各项的方法:
确定现实世界物品上的多个点的相对方位;
基于多个点的相对方位扭曲虚拟物品的三维模型,以产生虚拟物品的扭曲的三维模型;和
生成增强现实(AR)内容用于呈现,AR内容基于扭曲的三维模型。
Claims (15)
1.一种计算机实现的方法,包括:
接收标识显示在用户设备的显示器上的现实世界物品的输入;
确定所标识的现实世界物品上的多个预定义点的相对方位;
基于多个预定义点的所确定的相对方位扭曲虚拟物品的三维模型以产生虚拟物品的扭曲的三维模型,扭曲的三维模型维持多个预定义点之间的相对距离;和
生成增强现实AR内容用于呈现,AR内容基于扭曲的三维模型。
2.根据权利要求1所述的计算机实现的方法,其中:
多个预定义点的相对方位是多个点的第一相对方位,虚拟物品的扭曲模型是虚拟物品的第一扭曲模型,并且AR内容是第一AR内容;和
多个点的第一相对方位对应于以具有第一尺寸的第一形状的现实世界物品。
3.根据权利要求2所述的方法,还包括:
确定现实世界物品上的多个点的第二相对方位,第二相对方位对应于以具有第二尺寸的第二形状的现实世界物品,第二尺寸不同于第一尺寸;可选地,还包括基于多个点的第二相对方位扭曲虚拟物品的三维模型以产生虚拟物品的第二扭曲三维模型;和
生成第二AR内容用于呈现,第二AR内容基于第二扭曲三维模型。
4.根据任一项前述权利要求所述的方法,包括在生成AR内容之后,将AR内容渲染为对所显示的现实世界物品的覆盖。
5.根据权利要求4所述的方法,还包括监视设备的移动并随着设备相对于现实世界物品的移动而动态地更新AR内容,使得从设备的角度来看,渲染的AR内容与现实世界物品的尺寸和定向匹配。
6.根据任一项前述权利要求所述的计算机实现的方法,其中生成AR内容包括渲染扭曲的三维模型,并且其中:
扭曲的三维模型是从与现实世界物品的捕获图像对应的视点渲染的;和
生成AR内容还包括将渲染与图像合成以覆盖现实世界物品。
7.根据权利要求6所述的计算机实现的方法,还包括:
确定用户相对于现实世界物品的方位,其中基于用户的方位渲染扭曲的三维模型。
8.根据任一项前述权利要求所述的计算机实现的方法,其中基于所述多个点的相对方位扭曲虚拟物品的三维模型包括修改三维模型以将三维模型中的点重新定位为处于与多个点的相对方位对应的相对方位中。
9.根据任一项前述权利要求所述的计算机实现的方法,其中:
现实世界物品包括多个可标识标记,多个标记中的每一个位于现实世界物品上的多个点中的相应不同的一个点处;和
确定现实世界物品上的多个点的相对方位包括确定多个标记的相对方位。
10.根据权利要求9所述的计算机实现的方法,其中所述多个可标识标记包括光学标记,所述方法还包括:
获得现实世界物品的至少一个图像,其中确定多个标记的相对方位包括对所述至少一个图像执行图像分析以检测光学标记。
11.根据任一项前述权利要求所述的计算机实现的方法,其中确定现实世界物品上的多个点的相对方位包括:
获得现实世界物品的测量结果;
将测量结果输入到机器学习ML模型中;和
获得ML模型的输出,其中现实世界物品上的多个点的相对方位基于ML模型的输出。
12.根据任一项前述权利要求所述的计算机实现的方法,其中:
现实世界物品上的多个点的相对方位基于从设备获得的测量结果;和
AR内容用于在该设备处呈现。
13.根据任一项前述权利要求所述的计算机实现的方法,其中虚拟物品的三维模型是虚拟物品的第一三维模型,多个点的相对方位是多个点的第一相对方位,并且AR内容是第一AR内容,所述方法还包括:
获得用虚拟物品的第二三维模型替换虚拟物品的第一三维模型的指令,该指令源自在设备处的用户输入;
确定现实世界物品上的多个点的第二相对方位;
基于多个点的第二相对方位扭曲虚拟物品的第二三维模型,以产生虚拟物品的扭曲的第二三维模型;和
生成第二AR内容用于呈现,第二AR内容基于扭曲的第二三维模型。
14.一种系统,包括:
存储器,用以存储现实世界物品上的多个点的相对方位;和
至少一个处理器,被配置为执行任一项前述权利要求所述的方法。
15.一种计算机程序,其当由计算机执行时,使计算机执行权利要求1至13中任一项所述的方法。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/029463 | 2020-09-23 | ||
US17/029,463 US11398079B2 (en) | 2020-09-23 | 2020-09-23 | Systems and methods for generating augmented reality content based on distorted three-dimensional models |
EP21174376.0 | 2021-05-18 | ||
EP21174376.0A EP3975131A1 (en) | 2020-09-23 | 2021-05-18 | Systems and methods for generating augmented reality content based on distorted three-dimensional models |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114299264A true CN114299264A (zh) | 2022-04-08 |
Family
ID=75977669
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111114770.5A Pending CN114299264A (zh) | 2020-09-23 | 2021-09-23 | 用于基于扭曲的三维模型生成增强现实内容的系统和方法 |
Country Status (7)
Country | Link |
---|---|
US (3) | US11398079B2 (zh) |
EP (1) | EP3975131A1 (zh) |
JP (1) | JP2022052750A (zh) |
CN (1) | CN114299264A (zh) |
AU (1) | AU2021221868A1 (zh) |
CA (1) | CA3128767A1 (zh) |
TW (1) | TW202219904A (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11360733B2 (en) | 2020-09-10 | 2022-06-14 | Snap Inc. | Colocated shared augmented reality without shared backend |
US11398079B2 (en) | 2020-09-23 | 2022-07-26 | Shopify Inc. | Systems and methods for generating augmented reality content based on distorted three-dimensional models |
US20220366470A1 (en) * | 2021-05-14 | 2022-11-17 | Inter Ikea Systems B.V. | Augmented reality conversion system |
US20220375110A1 (en) * | 2021-05-18 | 2022-11-24 | Snap Inc. | Augmented reality guided depth estimation |
WO2024043088A1 (ja) * | 2022-08-25 | 2024-02-29 | 日本電気株式会社 | 仮想試着システム、仮想試着方法及び記録媒体 |
US20240119679A1 (en) * | 2022-10-05 | 2024-04-11 | Snap Inc. | External screen streaming for an eyewear device |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004070519A (ja) * | 2002-08-02 | 2004-03-04 | Digital Fashion Ltd | 画像処理装置、画像処理方法、画像処理プログラム及びそのプログラムを記録した記録媒体 |
CN102156810A (zh) * | 2011-03-30 | 2011-08-17 | 北京触角科技有限公司 | 增强现实实时虚拟试衣系统及方法 |
US20140168217A1 (en) * | 2012-12-14 | 2014-06-19 | Electronics And Telecommunications Research Institute | Method of fitting virtual item using human body model and system for providing fitting service of virtual item |
US20150221069A1 (en) * | 2014-02-05 | 2015-08-06 | Elena Shaburova | Method for real time video processing involving changing a color of an object on a human face in a video |
KR20150124208A (ko) * | 2014-04-28 | 2015-11-05 | (주)에프엑스기어 | 증강 현실 기반 가상 피팅을 위한 의상의 물리적 시뮬레이션 장치 및 방법 |
WO2017029488A2 (en) * | 2015-08-14 | 2017-02-23 | Metail Limited | Methods of generating personalized 3d head models or 3d body models |
CN107111996A (zh) * | 2014-11-11 | 2017-08-29 | 本特图像实验室有限责任公司 | 实时共享的增强现实体验 |
CN107209950A (zh) * | 2015-01-29 | 2017-09-26 | 微软技术许可有限责任公司 | 从现实世界材料自动生成虚拟材料 |
CN110363867A (zh) * | 2019-07-16 | 2019-10-22 | 芋头科技(杭州)有限公司 | 虚拟装扮系统、方法、设备及介质 |
US20190333277A1 (en) * | 2018-04-27 | 2019-10-31 | Nicholas T. Hariton | Systems and methods for generating and facilitating access to a personalized augmented rendering of a user |
US20200005386A1 (en) * | 2018-04-09 | 2020-01-02 | Eric Blossey | Systems and methods for virtual body measurements and modeling apparel |
US20200066029A1 (en) * | 2017-02-27 | 2020-02-27 | Metail Limited | Method of generating an image file of a 3d body model of a user wearing a garment |
US20200184732A1 (en) * | 2011-07-15 | 2020-06-11 | Dar Enterprises Llc | Augmented Reality Using Lenticular Images |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201102794D0 (en) * | 2011-02-17 | 2011-03-30 | Metail Ltd | Online retail system |
JP5786463B2 (ja) * | 2011-06-01 | 2015-09-30 | ソニー株式会社 | 画像処理装置、画像処理方法、およびプログラム |
JP5605885B1 (ja) * | 2014-02-27 | 2014-10-15 | 木下 泰男 | 仮想試着システムおよび仮想試着プログラム |
US10475113B2 (en) * | 2014-12-23 | 2019-11-12 | Ebay Inc. | Method system and medium for generating virtual contexts from three dimensional models |
EP3115971B1 (en) * | 2015-06-02 | 2020-06-03 | Samsung Electronics Co., Ltd. | Method and apparatus for providing three-dimensional data of cloth |
US10430867B2 (en) * | 2015-08-07 | 2019-10-01 | SelfieStyler, Inc. | Virtual garment carousel |
US9905019B2 (en) * | 2015-08-07 | 2018-02-27 | Selfiestyler Inc. | Virtual apparel fitting systems and methods |
US10176636B1 (en) * | 2015-12-11 | 2019-01-08 | A9.Com, Inc. | Augmented reality fashion |
WO2017203262A2 (en) * | 2016-05-25 | 2017-11-30 | Metail Limited | Method and system for predicting garment attributes using deep learning |
US20200349758A1 (en) * | 2017-05-31 | 2020-11-05 | Ethan Bryce Paulson | Method and System for the 3D Design and Calibration of 2D Substrates |
US20190088033A1 (en) * | 2017-09-20 | 2019-03-21 | Sudhakar Kuchibotla | System and method of digitally overlaying clothing on an image of a user |
WO2020081376A1 (en) * | 2018-10-19 | 2020-04-23 | Perfitly, Llc. | Perfitly ar/vr platform |
US11250639B2 (en) * | 2018-12-19 | 2022-02-15 | Seddi, Inc. | Learning-based animation of clothing for virtual try-on |
WO2020203656A1 (ja) * | 2019-04-05 | 2020-10-08 | ソニー株式会社 | 情報処理装置、情報処理方法及びプログラム |
US20210097758A1 (en) * | 2019-09-26 | 2021-04-01 | Ulsee Inc. | 3D Garment Fitting Method |
US11080817B2 (en) * | 2019-11-04 | 2021-08-03 | Adobe Inc. | Cloth warping using multi-scale patch adversarial loss |
US11398079B2 (en) * | 2020-09-23 | 2022-07-26 | Shopify Inc. | Systems and methods for generating augmented reality content based on distorted three-dimensional models |
-
2020
- 2020-09-23 US US17/029,463 patent/US11398079B2/en active Active
-
2021
- 2021-05-18 EP EP21174376.0A patent/EP3975131A1/en active Pending
- 2021-08-23 CA CA3128767A patent/CA3128767A1/en active Pending
- 2021-08-26 AU AU2021221868A patent/AU2021221868A1/en active Pending
- 2021-09-02 TW TW110132636A patent/TW202219904A/zh unknown
- 2021-09-21 JP JP2021152884A patent/JP2022052750A/ja active Pending
- 2021-09-23 CN CN202111114770.5A patent/CN114299264A/zh active Pending
-
2022
- 2022-06-21 US US17/845,387 patent/US11836877B2/en active Active
-
2023
- 2023-10-25 US US18/494,248 patent/US20240071015A1/en active Pending
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004070519A (ja) * | 2002-08-02 | 2004-03-04 | Digital Fashion Ltd | 画像処理装置、画像処理方法、画像処理プログラム及びそのプログラムを記録した記録媒体 |
CN102156810A (zh) * | 2011-03-30 | 2011-08-17 | 北京触角科技有限公司 | 增强现实实时虚拟试衣系统及方法 |
US20200184732A1 (en) * | 2011-07-15 | 2020-06-11 | Dar Enterprises Llc | Augmented Reality Using Lenticular Images |
US20140168217A1 (en) * | 2012-12-14 | 2014-06-19 | Electronics And Telecommunications Research Institute | Method of fitting virtual item using human body model and system for providing fitting service of virtual item |
US20150221069A1 (en) * | 2014-02-05 | 2015-08-06 | Elena Shaburova | Method for real time video processing involving changing a color of an object on a human face in a video |
KR20150124208A (ko) * | 2014-04-28 | 2015-11-05 | (주)에프엑스기어 | 증강 현실 기반 가상 피팅을 위한 의상의 물리적 시뮬레이션 장치 및 방법 |
CN107111996A (zh) * | 2014-11-11 | 2017-08-29 | 本特图像实验室有限责任公司 | 实时共享的增强现实体验 |
CN107209950A (zh) * | 2015-01-29 | 2017-09-26 | 微软技术许可有限责任公司 | 从现实世界材料自动生成虚拟材料 |
WO2017029488A2 (en) * | 2015-08-14 | 2017-02-23 | Metail Limited | Methods of generating personalized 3d head models or 3d body models |
US20200066029A1 (en) * | 2017-02-27 | 2020-02-27 | Metail Limited | Method of generating an image file of a 3d body model of a user wearing a garment |
US20200005386A1 (en) * | 2018-04-09 | 2020-01-02 | Eric Blossey | Systems and methods for virtual body measurements and modeling apparel |
US20190333277A1 (en) * | 2018-04-27 | 2019-10-31 | Nicholas T. Hariton | Systems and methods for generating and facilitating access to a personalized augmented rendering of a user |
CN110363867A (zh) * | 2019-07-16 | 2019-10-22 | 芋头科技(杭州)有限公司 | 虚拟装扮系统、方法、设备及介质 |
Non-Patent Citations (3)
Title |
---|
CONSTINE JOSH: "Snapchat Acquires Looksery To Power Its Animated Lenses", pages 1 - 9, Retrieved from the Internet <URL:https://techcrunch.com/2015/09/15/snapchat-looksery/> * |
L. ROGGE等: "Monocular Pose Reconstruction for an Augmented Reality Clothing System", VISION, MODELING, AND VISUALIZATION, 1 October 2011 (2011-10-01), pages 1 - 8 * |
VOLKER SCHOLZ等: "Garment Motion Capture Using Color-Coded Patterns", COMPUTER GRAPHICS FORUM, vol. 24, no. 3, 7 September 2005 (2005-09-07), pages 439 - 447, XP055146790, DOI: 10.1111/j.1467-8659.2005.00869.x * |
Also Published As
Publication number | Publication date |
---|---|
US20220092857A1 (en) | 2022-03-24 |
US20240071015A1 (en) | 2024-02-29 |
US20220319133A1 (en) | 2022-10-06 |
US11398079B2 (en) | 2022-07-26 |
JP2022052750A (ja) | 2022-04-04 |
CA3128767A1 (en) | 2022-03-23 |
TW202219904A (zh) | 2022-05-16 |
AU2021221868A1 (en) | 2022-04-07 |
US11836877B2 (en) | 2023-12-05 |
EP3975131A1 (en) | 2022-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11568620B2 (en) | Augmented reality-assisted methods and apparatus for assessing fit of physical objects in three-dimensional bounded spaces | |
US11676200B2 (en) | Systems and methods for generating augmented reality scenes for physical items | |
US11836877B2 (en) | Systems and methods for generating augmented reality content based on distorted three-dimensional models | |
US11908159B2 (en) | Systems and methods for representing user interactions in multi-user augmented reality | |
US11222434B2 (en) | Systems and methods for measuring body size | |
US11847716B2 (en) | Systems and methods for generating multi-user augmented reality content | |
CN113538085A (zh) | 用于店内产品推荐的计算机实现的系统和方法 | |
CN114510626A (zh) | 用于提供增强的媒体的系统和方法 | |
US11494153B2 (en) | Systems and methods for modifying multi-user augmented reality | |
JP7495034B2 (ja) | 物理的アイテムに関する拡張現実シーンを生成するシステムおよび方法 | |
US20240087251A1 (en) | Methods for calibrating augmented reality scenes | |
US20240029279A1 (en) | Systems and methods for generating augmented reality scenes | |
US20240192770A1 (en) | Systems and methods for responsive user interface based on gaze depth | |
CA3165645A1 (en) | Systems and methods for identifying items having complementary material properties |
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 |