一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

交互方法、电子设备、存储介质和程序产品与流程

2023-02-19 05:19:11 来源:中国专利 TAG:


1.本公开的各实现方式涉及计算机领域,更具体地,涉及交互方法、电子设备、计算机存储介质和计算机程序产品。


背景技术:

2.随着互联网时代的发展,越来越多的用户开始创作视频内容,并将创作后的视频内容发布到互联网以与其他用户分享。在视频内容的创作过程中,一些视频平台通常为用户提供个性化创作方式,例如,滤镜、特效、个性贴纸等。然而,这样的视频创作方式通常依赖于单个用户本身的创造力,而无法为多个用户之间的交互提供支持。


技术实现要素:

3.在本公开的第一方面,提供了一种交互方法。该方法包括:由第一设备接收在第一界面上的第一交互;基于第一交互,生成在第一界面上呈现的第一图形对象,第一界面至少还呈现由第一设备的第一相机所捕获的第一图像;基于第一相机的第一相机参数,生成用于指示第一交互的第一交互信息;以及向第二设备发送第一交互信息,以使第二设备基于第一交互信息和第二设备的第二相机的第二相机参数在第二界面上呈现与第一交互对应的第二图形对象,第二界面至少还呈现由第二相机所捕获的第二图像。
4.在本公开的第二方面中,提供了一种电子设备。该电子设备包括:交互模块,被配置为接收在第一界面上的第一交互;基于第一交互,生成在第一界面上呈现的第一图形对象,第一界面至少还呈现由电子设备的第一相机所捕获的第一图像;基于第一相机的第一相机参数,生成用于指示第一交互的第一交互信息;以及网络模块,被配置为向第二设备发送第一交互信息,以使第二设备基于第一交互信息和第二设备的第二相机的第二相机参数在第二界面上呈现与第一交互对应的第二图形对象,第二界面至少还呈现由第二相机所捕获的第二图像。
5.在本公开的第三方面,提供了一种电子设备,包括:存储器和处理器;其中存储器用于存储一条或多条计算机指令,其中一条或多条计算机指令被处理器执行以实现根据本公开的第一方面的方法。
6.在本公开的第四方面,提供了一种计算机可读存储介质,其上存储有一条或多条计算机指令,其中一条或多条计算机指令被处理器执行实现根据本公开的第一方面的方法。
7.在本公开的第五方面,提供了一种计算机程序产品,其包括一条或多条计算机指令,其中一条或多条计算机指令被处理器执行实现根据本公开的第一方面的方法。
8.根据本公开的各种实施例,能够高效地实现多个用户之间的ar会话交互,提升用户的体验。此外,通过复用相机参数,本公开的实施例可以有效地降低传输交互信息所需的网络带宽。
附图说明
9.结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标注表示相同或相似的元素,其中:
10.图1a至图1m示出了根据本公开的多个实施例的示例用户界面;
11.图2a至图2k示出了根据本公开的多个实施例的示例用户界面;
12.图3示出了根据本公开的一些实施例的示例交互过程的流程图;
13.图4示出了根据本公开的一些实施例的交互系统的示意性结构框图;
14.图5示出了根据本公开的一些实施例的交互方法的流程图;以及
15.图6示出了能够实施本公开的多个实施例的计算设备的框图。
具体实施方式
16.下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
17.在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
18.当前,越来越多的用户开始创作视频内容,并将创作后的视频内容发布到互联网以与其他用户分享。在视频内容的创建过程中,一些视频平台通常为用户提供诸多视频创作或者编辑的方式,例如,滤镜、特效、个性贴纸等。然而,这样的视频创作方式通常依赖于单个用户本身的创造力,其无法为多个用户之间的交互提供支持。
19.有鉴于此,本公开的实施例提供了一种交互方案。根据本公开的方案,第一设备接收用户在第一界面上的第一交互,并基于第一交互来生成在第一界面上呈现的第一图形对象,其中第一界面还可以呈现由第一设备的第一相机所捕获的第一图像。进一步地,第一设备基于第一相机的第一相机参数,生成用于指示第一交互的第一交互信息并向第二设备发送第一交互信息。第二设备可以进一步基于所接收的第一交互信息和第二设备的第二相机的第二相机参数而在第二界面上呈现与第一交互对应的第二图形对象。此外,第二界面至少可以还呈现由第二相机所捕获的第二图像。
20.由此,本公开的实施例能够支持多个用户实现跨设备的增强现实ar交互,以使得第一用户在第一设备上的ar交互动作所生成的图形对象可以被转换为第二用户在第二设备上所看到的图形对象。这样的图形对象例如可以表现为对应的视觉特效。此外,通过复用相机参数,本公开的实施例还能够有效地降低传输交互信息所需的网络带宽,从而提高多用户交互的效率。
21.以下将参照附图来具体描述本公开的实施例。
22.ar会话
23.以下将参考图1a至图1m和图2a至图2k来描述根据本公开实施例的ar交互的示例过程。图1a至图1m示出了根据本公开的实施例的示例用户界面。
24.在一些实施例中,如图1a所示,计算设备102可以呈现用户界面104。示例性地,计算设备102可以响应于用户对计算设备102上所安装的视频应用的操作而呈现用户界面104。用户界面104例如可以包括视频应用所提供的用于创作和呈现视频内容的界面。
25.如图1a所示,用户界面104例如可以呈现由计算设备102的相机所捕获的图像,以作为背景场景106。随着计算设备102或者相机的运动,背景场景106可以相应地发生变化。
26.此外,如图1a所示,用户界面104还可以呈现拍摄控件110。拍摄控件110可以允许与计算设备102相关联的用户(例如,用户a)录制视频以及与视频相关联的一个或多个视觉特效,例如,滤镜特效、贴纸特效、或字幕特效等等。
27.在一些实施例中,用户界面104上还可以呈现特效控件108,用户可以触发该特效控件108以选择所需的特效。如图1b所示,在用户a触发特效控件108后,计算设备102可以在用户界面112中呈现特效面板。特效面板可以包括计算设备102的用户可用的多个不同特效。
28.在一些实施例中,特效面板中可以包括增强现实ar会话特效,例如,示例性地用e表示。相应地,在用户a选择该ar会话特效114后,计算设备102可以呈现用户界面116。如图1c所示,用户界面116中可以呈现邀请控件118,邀请控件118在被用户a选择后可以触发邀请其他一个或者多个用户加入ar会话。
29.在一些实施例中,在用户a选择邀请控件118后,计算设备102可以呈现用户界面120。如图1d所示,用户界面120可以包括邀请界面122,以显示一组好友和/或联系人以供用户a进行选择并邀请加入会话。
30.示例性地,如图1e所示,用户a可以通过邀请界面122例如选择“用户1”以作为ar交互会话的邀请对象。进一步地,用户a可以点击好友邀请界面122中的邀请确认控件128,以使得计算设备102例如向服务器发送邀请所选择用户的请求。
31.在通过点击邀请确认控件128发送会话邀请请求后,计算设备102例如可以呈现用户界面130。如图1f所示,用户界面130例如可以呈现邀请指示132,该邀请指示132用于指示已经邀请了所选择的用户“用户1”加入ar会话。
32.进一步地,在一些实施例中,当所选择的用户(例如,“用户1”)接收相应请求(如将参考图2a至图2k所介绍的)后,计算设备102例如可以呈现用户界面134。如图1g所示,用户界面134可以呈现加入指示136,该加入指示136用于指示所邀请的用户已经加入ar会话。
33.在一些实施例中,计算设备102可以进一步呈现用户界面138。如图1h所示,用户界面138可以包括绘制控件140,该绘制控件140可以向用户(例如,用户a)提供一组可选择的绘制工具。如图1h所示,用户a例如可以选择了绘制工具142。示例性地,不同的绘制工具例如可以对应于不同的画笔,例如,不同的墨迹风格、不同的画笔粗度、或者不同的画笔颜色等。
34.在一些实施例中,如图1h所示,用户界面138中的拍摄控件144例如还可以提供倒计时指示,以通知用户视频录制例如将在3秒后自动开始。
35.进一步地,如图1i所示,计算设备102可以开始视频录制并呈现用户界面146。用户界面146例如可以包括进度指示148,以用于指示视频录制的进度。相应地,拍摄控件154例如可以通过特定的视觉元素来表示视频正在录制中。
36.此外,计算设备102还可以接收用户在用户界面146上的用户交互(例如,在触摸屏
幕上的绘制动作),并基于用户a所选择的绘制工具142来生成并在用户界面146上呈现与用户交互所对应的图形对象150。
37.在一些实施例中,如图1i所示,计算设备102还可以在用户界面146中呈现基于由所邀请的用户(例如,用户1)在另一计算设备上所执行的用户交互(例如,在另一计算设备上的触摸屏上的绘制动作)而生成的图形对象152。关于图形对象150和图形对象152的具体生成过程,将在下文参考图4详细描述。
38.在一些实施例中,用户界面146还可以呈现与被邀请用户1相关联的好友绘制指示。例如,好友绘制指示可以用于表示受邀请用户当前绘制图形对象的光标的位置。
39.如图1j所示,在视频录制过程中,用户a例如可以移动计算设备102(或相机)的位置或者调整计算设备102(或相机)的朝向,以使得由计算设备102的相机所捕获的图像发生变化,从而呈现不同于背景场景106的新的背景场景158。
40.在用户界面156中,当前用户a和所邀请的用户1可以分别完成了其绘制的视觉对象(即,图形对象)160和视觉对象(即,图形对象)162。在一些实施例中,这样的视觉对象160和视觉对象162可以根据世界坐标系中的相应位置而在用户界面156中被呈现,以此方式,可以呈现与背景场景158叠加的增强现实效果。
41.如图1k所示,在视频录制结束时,计算设备102可以呈现用户界面164,其例如可以显示初始的背景场景106以及一个或多个图形对象(例如,由当前用户a所绘制的图形对象160和由所邀请用户1所绘制的图形对象162)。
42.在一些实施例中,用户还可以进一步与用户界面164交互以编辑所拍摄到的视频。例如,用户可以添加文本、音乐或表情等。进一步地,用户例如还可以通过点击用户界面164中的控件166(例如,指示“下一步”操作)以进入到发布界面。
43.如图1l所示,在用户界面168所呈现的发布页面,用户a可以配置与发布视频相关联的一个或多个设置。例如,用户a可以设置该视频内容的标题170。或者,用户a还可以配置哪些用户可以查看该视频内容,该视频内容是否允许评论,该视频内容是否允许下载等等。进一步地,当用户a选择发布控件172后,该视频内容例如可以被上传到视频平台,以例如通过视频应用来向该视频平台的其他用户提供用户a所创作的视频内容。如图1m所示,当用户a完成视频内容的发布后,计算设备102可以呈现用户界面176,以播放用户a所创作完成的视频内容。
44.以下将结合图2a至图2k来从被邀请的用户(例如,用户1)的角度来描述根据本公开实施例的ar交互的示例过程。如图2a所示,被邀请的用户1所关联的计算设备202可以呈现用户界面204。在一些实施例中,用户界面204可以包括提示消息206,以提示计算设备102的用户a正邀请当前用户1加入ar会话。示例性地,如图2a所示,提示消息206可以包括在界面上所呈现的提示消息。
45.在一些实施例中,当计算设备202还可以通过其他方式来呈现关于邀请当前用户1加入ar会话的提示消息。如图2b所示,当例如计算设备102的用户a通过邀请确认控件128来邀请计算设备202的当前用户1加入ar会话时,计算设备202可以呈现用户界面208。如图2b所示,用户界面208可以包括叠加在背景界面210上所显示的提示消息212,其中,背景界面210中呈现的是计算设备202的相机所捕捉到的画面。应当理解,提示消息例如还可以通过其他任何适当的方式被呈现,例如,顶栏提示等。在一些实施例中,计算设备202例如还可以
提供用户界面214,以允许用户1查看当前的提示消息216和其他消息218。
46.在一些实施例中,当用户1选择提示消息206、提示消息212或提示消息216时,计算设备202可以自动地连接到与计算设备102的ar会话。在一些实施例中,提示消息206、提示消息212或提示消息216可以具备时效性。例如,当计算设备202的用户1在收到提示消息206的预定时间(例如,30秒)内没有点击加入,则当用户1再次点击提示消息206时,计算设备202可以提供关于此会话未被激活的提示。
47.示例性地,如图2d所示,当用户1选择了过期的提示消息时,计算设备202可以呈现用户界面220。用户界面220例如可以包括在背景界面222上叠加显示的提示消息224,以指示受邀请加入的ar会话已经过期。
48.在另一些实施例中,如果用户1选择了未过期的提示消息(例如,提示消息206、提示消息212或提示消息216)时,计算设备202例如可以呈现用户界面206。如图2e所示,用户界面206例如可以包括用于指示当前用户1正在加入所邀请的ar会话的提示消息228。
49.在一些实施例中,在ar会话加载完毕,计算设备202可以呈现用户界面230。如图2f所示,用户界面230可以包括关于当前用户1已经加入了ar会话的提示消息232。此外,计算设备202还可以自动启用相机以捕捉环境图像,以作为计算设备202在用户界面230中所呈现的背景场景234。随着计算设备202或者相机的运动,背景场景234的内容可以相应地发生变化。
50.类似地,计算设备202可以自动地在预定时间后启动视频录制或者可以响应于用户对于用户界面230中拍摄控件的选择而启动视频录制。
51.如图2g所示,计算设备202可以呈现用户界面236。用户界面236可以包括绘制控件238,该绘制控件238可以向用户1提供一组可选择的绘制工具。如图2g所示,用户例如可以选择了绘制工具240。示例性地,不同的绘制工具例如可以对应于不同的画笔,例如,不同的墨迹风格、不同的画笔粗度、或者不同的画笔颜色等。
52.进一步地,如图2g所示,用户界面236例如还可以包括进度指示242,以用于指示视频录制的进度。相应地,拍摄控件例如可以通过特定的视觉元素来表示视频正在录制中。
53.在一些实施例中,如图2g所示,计算设备202还可以接收用户1在用户界面236上的用户交互(例如,在触摸屏幕上的绘制动作),并基于用户所选择的绘制工具240来生成并呈现与用户交互所对应的图形对象244。
54.在一些实施例中,如图2g所示,计算设备202还可以在用户界面236中呈现基于由ar会话中的另一用户(例如,计算设备102的关联用户a)在计算设备202上所执行的用户交互(例如,在另一计算设备上的触摸屏上的绘制动作)而生成的图形对象246。关于图形对象244和图形对象246的具体生成过程,将在下文参考图4详细描述。
55.如图2h所示,在视频录制过程中,用户1例如可以移动计算设备202(或相机)的位置或者调整计算设备202(或相机)的朝向,以使得由计算设备102的相机所捕获的图像发生变化,从而呈现不同于背景场景234的新的背景场景252。
56.如图2h所示,在用户界面248中,ar会话中的用户1和用户a可以继续交互,以进一步得到更新的视觉对象(即,图形对象)254和视觉对象(即,图形对象)256。在一些实施例中,视觉对象254和视觉对象256根据世界坐标系中的相应位置而在用户界面248中被呈现,以此方式,可以呈现与背景场景252叠加的增强现实效果。进一步地,如图2i所示,在用户界
面258中,当ar会话中的用户1和用户a均完成了所描绘的图形对象,用户界面258中会呈现更新后的图形对象。
57.与发起会话邀请的用户a类似,受邀请的用户1也可以类似地发布叠加了与用户a协同创作的图形对象的视频内容。如图2j所示,在用户界面260,用户1可以配置与发布视频相关联的一个或多个设置。例如,用户1可以设置该视频内容的标题262。或者,用户还可以配置哪些用户可以查看该视频内容,该视频内容是否允许评论,该视频内容是否允许下载等等。进一步地,当用户1选择发布控件264后,该视频内容例如可以被上传到视频平台,以例如通过视频应用来向该视频平台的其他用户提供用户1所创作的视频内容。如图2k所示,当用户1完成视频内容的发布后,计算设备202可以呈现用户界面266,以地播放受邀请用户1在ar会话中所创作完成的视频内容。
58.应当理解,虽然计算设备102和/或计算设备202在图1a至图1m和图2a至图2k中被示出为一种智能终端设备,但是其还可以包括其他任何适当的便携式或非便携式设备,其示例包括但不限于智能手机、平板电脑、笔记本电脑、台式机、智能手表、智能眼镜或其他可穿戴设备、智能家居设备等。
59.示例交互过程
60.图3进一步示出了计算设备102与计算设备202实现如参考图1a至图1m和图2a至图2k所描述的ar会话交互的具体过程300。
61.如图3所示,在320,计算设备102可以向会话服务器305发送创建会话请求。在一些实施例中,计算设备102可以响应于用户a在计算设备102中的视频应用中选择的相应特效来发起创建会话请求。
62.在一些实施例中,会话服务器305可以被配置为管理会话的各项进程,例如会话的创建、会话的销毁、会话数据的管理等进程。
63.在322,会话服务器305向计算设备102发送会话创建成功的指示信息。
64.在324,响应于会话创建成功的指示,计算设备102可以向会话服务器305发送请求历史数据的请求。在一些实施例中,历史数据例如可以包括在会话中基于用户的历史交互(例如,会话中的用户的历史交互)而生成的历史图形对象等。
65.在326,如果存在历史数据,则会话服务器305可以向计算设备102发送历史数据,以使得计算设备102相应地生成与会话所对应的用户界面,在该用户界面中,可以呈现历史图形对象。
66.在328,计算设备102可以向邀请服务器310发送邀请另一用户(例如,用户1)加入当前会话的会话邀请。在一些实施例中,会话服务器305和邀请服务器310例如可以由不同的硬件设备来实施。在一些实施例中,会话服务器305和邀请服务器310的功能例如也可以集成并由同一服务器315来实施。
67.在330,邀请服务器310可以向与所邀请的用户1相关联的计算设备202发送邀请加入当前会话请求的会话邀请。在一些实施例中,该会话邀请例如可以包括与会话所对应的链接地址。在一些实施例中,该链接地址可以是经加密后的会话链接地址。
68.在332,计算设备202可以基于会话邀请中所包括的链接地址连接到会话服务器305。
69.在334,会话服务器305通知计算设备102,与计算设备202相关联的用户1已经接受
邀请请求并加入会话。
70.在336,计算设备102向会话服务器305发送基于计算设备102上的用户a的用户交互而生成的交互信息。
71.在338,会话服务器305可以向计算设备202发送从计算设备102所接收的交互信息,以使得计算设备202基于所接收的交互信息而生成与计算设备102上的用户a的用户交互相对应的图形对象。
72.在340,计算设备202可以通知会话服务器305退出了当前会话。示例性地,所邀请的用户1可以在计算设备202上操作,以退出当前ar会话。相应地,计算设备202可以向会话服务器305发送用户1退出了ar会话的消息。
73.在342,会话服务器305可以通知计算设备102,会话中的另一用户1已经退出当前会话。
74.应当理解,与步骤336和步骤338类似,计算设备202也可以向会话服务器305发送交互信息,这样的交互信息可以是基于计算设备202上的用户1的用户交互所生成的。会话服务器305可以进一步将该交互信息发送至计算设备102,以使得计算设备102基于所接收的交互信息而生成与计算设备202上的用户1的用户交互相对应的图形对象。关于交互信息的生成与传输的具体过程将在下文参考图4详细描述。
75.示例交互系统
76.图4进一步示出了根据本公开的一些实施例的交互系统400的示意性结构框图。
77.如图4所示,交互系统400可以包括轻量级插件模块410。在一些实施例中,轻量级插件模块410可以是利用脚本语言所编写的应用插件,其例如具有较小的程序量级,并可以通过热更新的方式来进行更新。通过这样的方式,可以更加方便开发者对轻量级插件模块410进行升级,从而提高开发的灵活性。
78.示例性地,轻量级插件模块410例如可以包括计算设备(例如,计算设备102)安装的应用程序中所对应的ar会话特效模块。当用户例如通过用户界面112选择ar会话特效114后,以轻量级脚本语言所编写的ar特效模块可以被启用,以向用户提供与ar会话有关的功能。
79.在一些实施例中,如图4所示,轻量级插件模块410可以包括用户界面(ui)模块415,其例如可以被配置为向用户提供与ar会话有关的用户界面。
80.在一些实施例中,轻量级插件模块410还可以包括交互模块420,其可以被配置为基于由运行该轻量级插件模块410的计算设备102接收的用户交互来生成图形对象。此外,交互模块420还可以基于从会话中的其他计算设备(例如,计算设备202)接收的交互信息来生成与会话中的其他用户在所关联的其他计算设备上执行的用户交互相对应的图形对象。
81.在一些实施例中,交互模块420可以检测用户在计算设备的屏幕上的诸如按压操作,以确定与用户交互的屏幕坐标。进一步地,交互模块可以基于屏幕坐标和计算设备所搭载相机的相机参数来确定图形对象的呈现位置。在一些实施例中,相机参数例如可以包括相机向上坐标、相机世界坐标、相机的投影矩阵或相机到世界坐标裁剪矩阵等。
82.在一些实施例中,交互模块420可以基于相机参数将屏幕坐标转换为相对于相机坐标系的坐标,或者转换为相对于世界坐标系的坐标,从而使得相应的图形对象在相应的位置处被呈现。
83.例如,计算设备102上运行的轻量级插件模块410可以基于计算设备102所搭载相机的相机参数,将用户a在用户界面156上的交互所对应的屏幕坐标转换为用于显示图形对象150的世界位置坐标。示例性地,该图形对象150可以呈现为如图1i所示的笔刷效果,其可以具有相应的世界位置坐标,以向用户呈现叠加在现实世界图像中的ar效果。
84.在一些实施例中,为了向当前ar会话中的其他用户同步当前用户在计算设备上所创作的图形对象,交互模块420还可以基于相机参数和用户交互来生成交互信息,以用于发送到会话中的其他用户相关联的计算设备。
85.在现有技术中,确定图形对象的呈现位置通常需要以下信息:用户交互所对应的屏幕坐标,其例如可以表示为一个二维向量;相机向上方向向量,其例如可以表示为一个三维向量;相机的世界坐标,其例如可以表示为一个三维向量;相机的投影矩阵,其例如可以表示为一个4*4的矩阵;相机到世界坐标的裁剪矩阵,其例如可以表示为一个4*4的矩阵。
86.当计算设备完整地将以上信息发送至会话中其他用户相关联的其他计算设备时,这样的通信开销通常是巨大的,这将造成较大的带宽压力,并导致不期望的交互时延。例如,用户在计算设备执行一个滑动交互动作,这可能会导致1000字节以上的数据传输开销。
87.根据本公开的实施例,为了降低交互数据的传输带宽,在向与会话中的其他用户相关联的其他计算设备发送交互信息时,交互模块420可以仅将相机的位置信息和相机的朝向信息包括在交互信息中,而不发送屏幕坐标、相机的向上坐标、相机的投影矩阵和相机到世界的裁剪矩阵。
88.具体地,相机的位置信息可以表示相机在世界坐标系中的位置,其例如可以通过计算设备的定位模块所确定。相机的朝向信息例如可以通过相机的前向量来表示。相机的前向量表示相机向前方向的向量(也被称为look方向向量),其例如可以通过一个三维向量来表示。
89.例如,当前计算设备(为了方便描述,称为第一设备)可以向会话服务器305发送交互信息,该交互信息可以进一步被转发至与会话中的另一用户相关联的计算设备(为了方便描述,称为第二设备)。
90.进一步地,在接收到交互信息后,第二设备上运行的轻量级插件模块中的交互模块可以从交互信息中提取相机的位置信息和相机的朝向信息,并进一步确定用于绘制图形对象所需要的以下信息:屏幕坐标、相机向上坐标、相机的世界坐标、相机的投影矩阵、相机到世界的裁剪矩阵。
91.在一些实施例中,考虑到用户在使用设备进行ar绘制时,计算设备通常处于基本上朝上的状态。因此,相机的向上方向向量(例如,表示为u)例如可以被估计为(0,1,0)。此外,基于所接收的交互信息中的向前方向向量(例如,表示为v),第二设备可以进一步基于向上方向向量和向前方向向量计算出与两者正交的向右方向向量(例如,表示为r)。
92.进一步地,第二设备可以进一步基于以上三个方向向量u、v和r来确定旋转变换矩阵r
view

93.94.此外,第二设备可以基于第一相机的位置信息(例如,表示为p)来确定平移变换矩阵t
view

[0095][0096]
第二设备可以进一步基于旋转变换矩阵r
view
和平移变换矩阵t
view
来确定坐标变换矩阵c=r
view
*t
view
。进一步地,第二设备可以基于所确定的坐标变换矩阵c和第二设备上的第二相机的相机参数来确定相机到世界坐标裁剪矩阵。此外,第二设备可以复用第二相机的投影矩阵,并将第二相机的投影矩阵以作为第一设备未传输的第一相机的投影矩阵。
[0097]
在一些实施例中,考虑到在ar交互中,用户通常习惯于通过移动计算设备来执行用户交互。因此,第二设备也可以默认将第二设备的屏幕的中心坐标近似作为第一设备上的用户交互所对应的屏幕坐标。由此,可以进一步降低交互信息的传输带宽。
[0098]
在一些实施例中,第一设备也可以在交互信息中包括与用户交互对应的屏幕坐标信息,并将屏幕坐标信息发送至第二设备,以使得第二设备基于屏幕坐标信息来生成与第一设备上的用户交互相对应的图形对象。
[0099]
应当理解,第二设备也可以基于第二设备上的用户交互来生成向第一设备发送的交互信息。第一设备上的交互模块420也可以基于上文所讨论的方式,并基于第一设备的第一相机的相机参数和从第二设备所接收的交互信息来生成在第一设备的用户界面中所呈现的图形对象。具体的生成图形对象的方式与第二设备的生成图形对象的方式类似,此处不再赘述。
[0100]
基于以上所讨论的方式,本公开的实施例能够有效地降低传输交互信息所需要的网络带宽,从而降低交互的时延,提升用户交互的友好程度和体验。
[0101]
继续参考图4,轻量级插件模块410还可以包括网络模块425,其可以被配置为执行与上文所讨论的会话通信过程有关的操作。在一些实施例中,为了方便通信数据的数据包的管理,网络模块425还可以被配置为获取与会话相关联的通信数据,并将通信数据封装为数据包,其中数据包包括类型信息,类型信息用于指示经封装的通信数据的类型。
[0102]
在一些实施例中,类型信息例如可以包括第一类型信息,用于指示通信数据包括用于保持会话连接的网络数据,例如,用作网络心跳包的ping数据。备选地或附加地,类型信息还可以包括第二类型信息,用于指示通信数据包括参与会话的用户的标识数据,例如,用户的标识等。备选地或附加地,类型信息还可以包括第三类型信息,用于指示通信数据包括会话的控制数据,例如与用户创建会话、加入会话、离开会话、销毁会话等动作有关的数据。
[0103]
备选地或附加地,类型信息还可以包括第四类型信息,用于指示通信数据包括会话的快照数据,例如,用户在会话未结束前所完成的图形对象信息等。备选地或附加地,类型信息还可以包括第五类型信息,指示通信数据包括时间数据,例如,全局时间数据等。备选地或附加地,类型信息还可以包括第六类型信息,指示通信数据包括会话中生成的交互数据,例如上文所讨论的与用于生成与其他设备上的用户交互相对应的图形对象有关的交互信息(例如,计算设备102发送的交互信息或者计算设备202发送的交互信息等)。
[0104]
在一些实施例中,以上不同的数据类型可以通过在数据包中添加与数据类型对应的类型标识符来表示。基于这样的方式,本公开的实施例可以允许更为有效地管理各种类型的数据包,例如,以支持对数据包快速地进行过滤或筛选等。
[0105]
在一些实施例中,网络模块425还可以配置为对会话的链接地址进行加密。例如,网络模块425可以利用任何适当的加密算法来对链接地址进行加密,这样的算法可以包括但不限于md5算法等。
[0106]
在一些实施例中,如图4所示,轻量级插件模块410还可以包括通用模块430。在一些实施例中,通用模块430可以被配置为支持不同引擎之间的解耦合通信。
[0107]
如图4所示,轻量级插件模块410可以作为客户端应用460的插件程序。示例性地,轻量级插件模块410可以通过系统支持模块440来实现与客户端应用460的交互。在一些实施例中,系统支持模块440例如可以包括多个不同的引擎,以实现与ar会话相关联的不同功能。与这些引擎所对应的运行程序例如可以被包括在与客户端应用460对应的安装程序中,使得这些引擎能够运行作为与客户端应用460独立的进程。
[0108]
例如,如图4所示,目标应用可以包括引擎445和引擎450,如图4所示,引擎445可以与会话服务器305通信引擎450可以与客户端应用460以及上文讨论的邀请服务器310通信。以此方式,引擎445和引擎450可以实现与ar会话相关联的不同功能,例如,引擎445可以实现会话逻辑功能,而引擎450例如可以实现与用户邀请相关的功能。此外,系统支持模块440例如还可以包括操作系统ar模块,以例如提供对于操作系统的底层ar能力的调用。
[0109]
在一些实施例中,通用模块430可以通过事件机制来实现引擎445和引擎450之间的解耦合通信。具体地,通用模块430例如可以包括事件生成器,其被配置为响应于引擎445或引擎450的操作,生成与该操作对应的事件消息。在一些实施例中,事件消息可以包括与该操作对应的事件标识。
[0110]
在一些实施例中,通用模块430还可以包括事件监听器,其被配置为监听由事件生成器所生成的事件消息,以触发引擎445或引擎450执行与事件消息相对应的动作。
[0111]
示例性地,例如,在引擎450例如确定当前ar会话中的用户1在应用中更新了头像的情况下,引擎450可以触发通用模块430来派发与头像更新对应的事件。进一步地,引擎445可以利用通用模块430来监听与头像更新对应的事件已经发生,并从事件信息中提取与更新的头像所对应的链接地址。进一步地,引擎445可以与会话服务器305通信,以在当前ar会话中更新与用户的头像对应的图像。
[0112]
应当理解,以上的具体头像更新事件仅是一种示例性的事件,还可以根据场景需要来定义其他任何适当类型的事件。基于这样的方式,可以实现不同引擎之间的解耦合通信,从而提高了轻量级插件模块410的可拓展性。
[0113]
示例过程与设备
[0114]
图5示出了根据本公开一些实施例的交互方法500的流程图。方法500例如可以由参考图1a至图1m所讨论的计算设备102或参考图2a至图2k所讨论的计算设备202来实施。
[0115]
如图5所示,在框510,第一设备接收在第一界面上的第一交互。
[0116]
在框520,基于第一交互,第一设备生成在第一界面上呈现的第一图形对象,第一界面至少还呈现由第一设备的第一相机所捕获的第一图像。
[0117]
在框530,第一设备基于第一相机的第一相机参数,生成用于指示第一交互的第一
交互信息。
[0118]
在框540,第一设备向第二设备发送第一交互信息,以使第二设备基于第一交互信息和第二设备的第二相机的第二相机参数在第二界面上呈现与第一交互对应的第二图形对象,第二界面至少还呈现由第二相机所捕获的第二图像。
[0119]
在一些实施例中,第一交互经由第一设备的屏幕而被接收,并且基于第一交互,生成在第一界面上呈现的第一图形对象包括:获取与第一交互对应的屏幕坐标;基于屏幕坐标和第一相机参数,确定第一图形对象的呈现位置;以及基于呈现位置,在第一界面上呈现第一图形对象。
[0120]
在一些实施例中,方法500还包括:从第二设备接收第二交互信息,第二交互信息由第二设备基于第二相机参数和第二界面上的第二交互所生成;以及基于第二交互信息和第一相机参数,在第一界面中呈现与第二交互对应的第三图形对象。
[0121]
在一些实施例中,第一交互信息包括:第一相机的位置信息;以及第一相机的朝向信息。
[0122]
在一些实施例中,第一交互信息不包括与第一交互对应的屏幕坐标信息。
[0123]
在一些实施例中,方法500还包括:创建会话;向第二设备发送加入会话的会话邀请;以及响应于接收到第二设备针对会话邀请的确认,生成与会话对应的第一界面。
[0124]
在一些实施例中,其中会话邀请包括由第一设备所生成的加密链接。
[0125]
在一些实施例中,生成用于指示第一交互的第一交互信息包括:由第一设备中的轻量级插件模块基于第一相机参数,生成第一交互信息。
[0126]
在一些实施例中,轻量级插件模块还包括事件管理器,事件管理器包括:事件生成器,被配置为响应于由第一引擎执行的、与会话相关联的第一操作,生成与第一操作对应的事件消息,其中事件消息包括与第一操作对应的事件标识;以及事件监听器,被配置为监听由事件生成器所生成的事件消息,以触发第二引擎执行与第一操作对应的第二操作,其中第一引擎和第二引擎被配置为分别实现与会话相关联的不同功能。
[0127]
在一些实施例中,类型信息包括以下中的至少一项:第一类型信息,指示通信数据包括用于保持会话连接的网络数据,第二类型信息,指示通信数据包括与参与会话的用户的标识数据,第三类型信息,指示通信数据包括会话的控制数据,第四类型信息,指示通信数据包括会话的快照数据,第五类型信息,指示通信数据包括时间数据,或第六类型信息,指示通信数据包括会话中生成的交互数据。
[0128]
图6示出了其中可以实施本公开的一个或多个实施例的计算设备600(例如,如参考图1a至图1m所讨论的计算设备102和/或参考图2a至图2k所讨论的计算设备202)的框图。应当理解,图6所示出的计算设备600仅仅是示例性的,而不应当构成对本文所描述的实施例的功能和范围的任何限制。
[0129]
计算设备600可以包括交互模块,被配置为接收在第一界面上的第一交互;基于第一交互,生成在第一界面上呈现的第一图形对象,第一界面至少还呈现由电子设备的第一相机所捕获的第一图像;基于第一相机的第一相机参数,生成用于指示第一交互的第一交互信息。此外,计算设备600还可以包括网络模块,被配置为向第二设备发送第一交互信息,以使第二设备基于第一交互信息和第二设备的第二相机的第二相机参数在第二界面上呈现与第一交互对应的第二图形对象,第二界面至少还呈现由第二相机所捕获的第二图像。
[0130]
在一些实施例中,第一交互经由电子设备的屏幕被接收,并且交互模块还被配置为:获取与第一交互对应的屏幕坐标;基于屏幕坐标和第一相机参数,确定第一图形对象的呈现位置;以及基于呈现位置,在第一界面上呈现第一图形对象。
[0131]
在一些实施例中,网络模块还被配置为从第二设备接收第二交互信息,第二交互信息由第二设备基于第二相机参数和第二界面上的第二交互所生成;并且交互模块还被配置为基于第二交互信息和第一相机参数,在第一界面中呈现与第二交互对应的第三图形对象。
[0132]
在一些实施例中,第一交互信息包括:第一相机的位置信息;以及第一相机的朝向信息。
[0133]
在一些实施例中,第一交互信息不包括与第一交互对应的屏幕坐标信息。
[0134]
在一些实施例中,网络模块还被配置为创建会话,向第二设备发送加入会话的会话邀请;并且交互模块还被配置为响应于接收到第二设备针对会话邀请的确认,生成与会话对应的第一界面。
[0135]
在一些实施例中,会话邀请包括由电子设备所生成的加密链接。
[0136]
在一些实施例中,交互模块和网络模块由轻量级插件模块来实现。
[0137]
在一些实施例中,轻量级插件模块还包括事件管理器,事件管理器包括:事件生成器,被配置为响应于由第一引擎执行的、与会话相关联的第一操作,生成与第一操作对应的事件消息,其中,事件消息包括与第一操作对应的事件标识;以及事件监听器,被配置为监听由事件生成器所生成的事件消息,以触发第二引擎执行与第一操作对应的第二操作,其中,第一引擎和第二引擎被配置为分别实现与会话相关联的不同功能。
[0138]
在一些实施例中,网络模块还被配置为:获取与会话相关联的通信数据;以及将通信数据封装为数据包,其中数据包包括类型信息,类型信息用于指示经封装的通信数据的类型。
[0139]
在一些实施例中,类型信息包括以下中的至少一项:第一类型信息,指示通信数据包括用于保持会话连接的网络数据;第二类型信息,指示通信数据包括参与会话的用户的标识数据;第三类型信息,指示通信数据包括会话的控制数据;第四类型信息,指示通信数据包括会话的快照数据;第五类型信息,指示通信数据包括与时间数据相关联;或类型信息,指示通信数据包括会话中生成的交互数据。
[0140]
如图6所示,计算设备600是通用计算设备的形式。计算设备600的组件可以包括但不限于一个或多个处理器或处理单元610、存储器620、存储设备630、一个或多个通信单元640、一个或多个输入设备650以及一个或多个输出设备660。处理单元610可以是实际或虚拟处理器并且能够根据存储器620中存储的程序来执行各种处理。在多处理器系统中,多个处理单元并行执行计算机可执行指令,以提高计算设备600的并行处理能力。
[0141]
计算设备600通常包括多个计算机存储介质。这样的介质可以是计算设备600可访问的任何可以获得的介质,包括但不限于易失性和非易失性介质、可拆卸和不可拆卸介质。存储器620可以是易失性存储器(例如寄存器、高速缓存、随机访问存储器(ram))、非易失性存储器(例如,只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、闪存)或它们的某种组合。存储设备630可以是可拆卸或不可拆卸的介质,并且可以包括机器可读介质,诸如闪存驱动、磁盘或者任何其他介质,其可以能够用于存储信息和/或数据(例如用于训练的
训练数据)并且可以在计算设备/服务器600内被访问。
[0142]
计算设备600可以进一步包括另外的可拆卸/不可拆卸、易失性/非易失性存储介质。尽管未在图6中示出,可以提供用于从可拆卸、非易失性磁盘(例如“软盘”)进行读取或写入的磁盘驱动和用于从可拆卸、非易失性光盘进行读取或写入的光盘驱动。在这些情况中,每个驱动可以由一个或多个数据介质接口被连接至总线(未示出)。存储器620可以包括计算机程序产品625,其具有一个或多个程序模块,这些程序模块被配置为执行本公开的各种实施例的各种方法或动作。
[0143]
通信单元640实现通过通信介质与其他计算设备进行通信。附加地,计算设备600的组件的功能可以以单个计算集群或多个计算机器来实现,这些计算机器能够通过通信连接进行通信。因此,计算设备600可以使用与一个或多个其他服务器、网络个人计算机(pc)或者另一个网络节点的逻辑连接来在联网环境中进行操作。
[0144]
输入设备650可以是一个或多个输入设备,例如鼠标、键盘、追踪球等。输出设备660可以是一个或多个输出设备,例如显示器、扬声器、打印机等。计算设备600还可以根据需要通过通信单元640与一个或多个外部设备(未示出)进行通信,外部设备诸如存储设备、显示设备等,与一个或多个使得用户与计算设备600交互的设备进行通信,或者与使得计算设备600与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)进行通信。这样的通信可以经由输入/输出(i/o)接口(未示出)来执行。
[0145]
根据本公开的示例性实现方式,提供了一种计算机可读存储介质,其上存储有一条或多条计算机指令,其中一条或多条计算机指令被处理器执行以实现上文描述的方法。
[0146]
这里参照根据本公开实现的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
[0147]
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其他可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
[0148]
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其他可编程数据处理装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
[0149]
附图中的流程图和框图显示了根据本公开的多个实现的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图
中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0150]
以上已经描述了本公开的各实现,上述说明是示例性的,并非穷尽性的,并且也不限于所公开的各实现。在不偏离所说明的各实现的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实现的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文公开的各实现。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献