WO2023011296A1 - 交互方法、电子设备、存储介质和程序产品 - Google Patents
交互方法、电子设备、存储介质和程序产品 Download PDFInfo
- Publication number
- WO2023011296A1 WO2023011296A1 PCT/CN2022/108408 CN2022108408W WO2023011296A1 WO 2023011296 A1 WO2023011296 A1 WO 2023011296A1 CN 2022108408 W CN2022108408 W CN 2022108408W WO 2023011296 A1 WO2023011296 A1 WO 2023011296A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- interaction
- session
- information
- camera
- interface
- Prior art date
Links
- 230000003993 interaction Effects 0.000 title claims abstract description 205
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000003860 storage Methods 0.000 title claims abstract description 14
- 230000006854 communication Effects 0.000 claims description 56
- 238000004891 communication Methods 0.000 claims description 55
- 230000006870 function Effects 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 12
- 230000002452 interceptive effect Effects 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 abstract description 3
- 230000000694 effects Effects 0.000 description 22
- 239000011159 matrix material Substances 0.000 description 20
- 230000008569 process Effects 0.000 description 16
- 239000013598 vector Substances 0.000 description 15
- 230000009471 action Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 14
- 238000012545 processing Methods 0.000 description 12
- 230000000007 visual effect Effects 0.000 description 11
- 230000009466 transformation Effects 0.000 description 6
- 230000003190 augmentative effect Effects 0.000 description 4
- 238000012790 confirmation Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005304 joining Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/164—Adaptation or special uses of UDP protocol
Definitions
- Various implementations of the present disclosure relate to the field of computers, and more specifically, to interactive methods, electronic devices, computer storage media, and computer program products.
- an interaction method includes: receiving, by the first device, a first interaction on the first interface; based on the first interaction, generating a first graphical object presented on the first interface, the first interface also presenting at least a first graphic object displayed by the first interface of the first device.
- the interaction information and the second camera parameters of the second camera of the second device present a second graphic object corresponding to the first interaction on the second interface, and the second interface also presents at least a second image captured by the second camera.
- an electronic device in a second aspect of the present disclosure, includes: an interaction module configured to receive a first interaction on the first interface; based on the first interaction, generate a first graphic object presented on the first interface, and the first interface also presents at least the first graphic object presented by the electronic device the first image captured by the first camera; based on the first camera parameters of the first camera, generating first interaction information indicating the first interaction; and a network module configured to send the first interaction information to the second device, causing the second device to present on the second interface a second graphic object corresponding to the first interaction based on the first interaction information and the second camera parameters of the second camera of the second device, and the second interface at least presents a second graphic object generated by the second camera The captured second image.
- an electronic device including: a memory and a processor; wherein the memory is used to store one or more computer instructions, wherein the one or more computer instructions are executed by the processor to implement the method of the first aspect.
- a computer-readable storage medium on which one or more computer instructions are stored, wherein one or more computer instructions are executed by a processor to implement the method according to the first aspect of the present disclosure .
- a computer program product comprising one or more computer instructions, wherein the one or more computer instructions are executed by a processor to implement the method according to the first aspect of the present disclosure.
- AR session interaction between multiple users can be efficiently implemented, and user experience can be improved.
- the embodiments of the present disclosure can effectively reduce the network bandwidth required for transmitting interactive information.
- FIG. 1A-1M illustrate example user interfaces according to various embodiments of the present disclosure
- 2A-2K illustrate example user interfaces according to various embodiments of the present disclosure
- Figure 3 shows a flowchart of an example interaction process according to some embodiments of the present disclosure
- Fig. 4 shows a schematic structural block diagram of an interactive system according to some embodiments of the present disclosure
- Figure 5 shows a flowchart of an interaction method according to some embodiments of the present disclosure.
- Figure 6 shows a block diagram of a computing device capable of implementing various embodiments of the present disclosure.
- the embodiments of the present disclosure provide an interaction solution.
- the first device receives the user's first interaction on the first interface, and generates the first graphic object presented on the first interface based on the first interaction, wherein the first interface may also present a The first image captured by the device's first camera.
- the first device generates first interaction information indicating the first interaction based on the first camera parameters of the first camera, and sends the first interaction information to the second device.
- the second device may further present a second graphic object corresponding to the first interaction on the second interface based on the received first interaction information and second camera parameters of the second camera of the second device.
- the second interface may also present at least a second image captured by the second camera.
- the embodiments of the present disclosure can support multiple users to implement cross-device augmented reality AR interaction, so that the graphic object generated by the AR interaction action of the first user on the first device can be converted into The graphics object seen on the second device.
- Such graphical objects can, for example, be represented by corresponding visual effects.
- the embodiments of the present disclosure can effectively reduce the network bandwidth required for transmitting interaction information, thereby improving the efficiency of multi-user interaction.
- FIGS. 1A to 1M and FIGS. 2A to 2K An example process of AR interaction according to an embodiment of the present disclosure will be described below with reference to FIGS. 1A to 1M and FIGS. 2A to 2K .
- 1A-1M illustrate example user interfaces according to embodiments of the present disclosure.
- computing device 102 may present user interface 104 as shown in FIG. 1A .
- computing device 102 may present user interface 104 in response to user manipulation of a video application installed on computing device 102 .
- User interface 104 may include, for example, an interface provided by a video application for authoring and presenting video content.
- user interface 104 may, for example, present an image captured by a camera of computing device 102 as background scene 106 . As computing device 102 or the camera is moved, background scene 106 may change accordingly.
- Capture controls 110 may allow a user associated with computing device 102 (eg, User A) to record a video and one or more visual effects associated with the video, such as filter effects, sticker effects, or subtitle effects, among others.
- a special effect control 108 may also be presented on the user interface 104, which the user may activate to select a desired special effect.
- computing device 102 may present a special effects panel in user interface 112 .
- the effects panel may include a number of different effects available to a user of computing device 102 .
- the special effect panel may include an augmented reality AR session special effect, for example, represented by E for example. Accordingly, after user A selects the AR session effect 114 , the computing device 102 can present the user interface 116 . As shown in FIG. 1C, an invitation control 118 may appear in the user interface 116, and the invitation control 118 may trigger to invite one or more other users to join the AR session after being selected by user A.
- computing device 102 may present user interface 120 after user A selects invitation control 118 .
- user interface 120 may include an invitation interface 122 to display a set of friends and/or contacts for user A to select and invite to join the session.
- user A may, for example, select "user 1" through the invitation interface 122 as an invitation object of the AR interactive session. Further, user A may click the invitation confirmation control 128 in the friend invitation interface 122, so that the computing device 102, for example, sends a request to the server to invite the selected user.
- Computing device 102 may present user interface 130 , for example, upon sending a session invitation request by clicking invite confirmation control 128 .
- the user interface 130 may, for example, present an invitation indication 132 for indicating that the selected user "user1" has been invited to join the AR session.
- computing device 102 may, for example, present user interface 134 when a selected user (eg, "User 1") receives a corresponding request (as will be described with reference to FIGS. 2A-2K ). As shown in FIG. 1G , user interface 134 may present a join indication 136 indicating that the invited user has joined the AR session.
- a selected user eg, "User 1”
- join indication 136 indicating that the invited user has joined the AR session.
- computing device 102 may further present user interface 138 .
- user interface 138 may include drawing controls 140, which may provide a user (eg, User A) with a set of selectable drawing tools.
- user A may have selected the drawing tool 142 , for example.
- different drawing tools may correspond to different brushes, for example, different ink styles, different brush thicknesses, or different brush colors.
- the shooting control 144 in the user interface 138 may also provide a countdown indication, for example, to inform the user that the video recording will start automatically in 3 seconds, for example.
- computing device 102 may initiate video recording and present user interface 146 as shown in FIG. 11 .
- User interface 146 may include, for example, a progress indicator 148 for indicating the progress of the video recording.
- the shooting control 154 may, for example, indicate that the video is being recorded through a specific visual element.
- the computing device 102 can also receive the user's user interaction on the user interface 146 (for example, a drawing action on the touch screen), and based on the drawing tool 142 selected by the user A, generate and present on the user interface 146 an image corresponding to the user A.
- the graphic object 150 corresponding to the interaction.
- computing device 102 may also present, in user interface 146 Graphical object 152 generated by a drawing action on a touch screen on another computing device).
- Graphical object 152 generated by a drawing action on a touch screen on another computing device. The specific generating process of the graphic object 150 and the graphic object 152 will be described in detail below with reference to FIG. 4 .
- user interface 146 may also present a buddy drawing indication associated with invited User 1 .
- a buddy draw indication can be used to represent the location of a cursor where the invited user is currently drawing a graphical object.
- user A may, for example, move the position of computing device 102 (or camera) or adjust the orientation of computing device 102 (or camera), so that the image captured by the camera of computing device 102 changes to present a new background scene 158 that is different from the background scene 106 .
- current User A and invited User 1 may have completed their drawn visual object (ie, graphical object) 160 and visual object (ie, graphical object) 162 , respectively.
- visual objects 160 and 162 may be presented in user interface 156 according to their respective positions in the world coordinate system, in such a way that an augmented reality effect superimposed with background scene 158 may be presented.
- computing device 102 may present user interface 164, which may, for example, display an initial background scene 106 and one or more graphical objects (e.g., graphical object 160 drawn by current user A). and the graphical object 162 drawn by the invited user 1).
- user interface 164 may, for example, display an initial background scene 106 and one or more graphical objects (e.g., graphical object 160 drawn by current user A). and the graphical object 162 drawn by the invited user 1).
- the user can further interact with the user interface 164 to edit the captured video. For example, users can add text, music or emoticons, etc. Further, for example, the user can also click on the control 166 in the user interface 164 (for example, indicating the "next step" operation) to enter the publishing interface.
- User A may configure one or more settings associated with posting the video. For example, User A may set the title 170 of the video content. Alternatively, user A can also configure which users can view the video content, whether comments are allowed on the video content, whether downloading is allowed on the video content, and so on. Further, when user A selects the publishing control 172, the video content may be uploaded to a video platform, for example, to provide other users of the video platform with the video content created by user A through a video application. As shown in FIG. 1M , after user A finishes publishing the video content, the computing device 102 may present a user interface 176 to play the video content created by user A.
- a computing device 202 associated with invited User 1 may present a user interface 204 .
- user interface 204 may include prompt message 206 to alert user A of computing device 102 that current user 1 is being invited to join the AR session.
- the prompt message 206 may include a prompt message presented on the interface.
- the computing device 202 may also present a prompt message about inviting the current user 1 to join the AR session in other ways.
- Computing device 202 may present user interface 208 when, for example, user A of computing device 102 invites current user 1 of computing device 202 to join an AR session via invite confirmation control 128 , as shown in FIG. 2B .
- the user interface 208 may include a prompt message 212 displayed superimposed on the background interface 210 , wherein the background interface 210 presents a picture captured by the camera of the computing device 202 .
- the prompt message may also be presented in any other appropriate manner, for example, a top bar prompt and the like.
- the computing device 202 may also provide a user interface 214 to allow the user 1 to view the current reminder message 216 and other messages 218 , for example.
- computing device 202 may automatically connect to the AR session with computing device 102 when user 1 selects prompt message 206 , prompt message 212 , or prompt message 216 .
- the prompt message 206, the prompt message 212, or the prompt message 216 may be time-sensitive. For example, when the user 1 of the computing device 202 does not click to join within a predetermined time (for example, 30 seconds) after receiving the prompt message 206, then when the user 1 clicks the prompt message 206 again, the computing device 202 can provide information about that the session has not been accepted. Activation prompt.
- computing device 202 may present user interface 220 .
- the user interface 220 may include, for example, a prompt message 224 superimposed on the background interface 222 to indicate that the AR session invited to join has expired.
- computing device 202 may present user interface 206 , for example.
- the user interface 206 may include, for example, a prompt message 228 for indicating that the current user 1 is joining the invited AR session.
- computing device 202 may present user interface 230 .
- the user interface 230 may include a prompt message 232 that the current user 1 has joined the AR session.
- computing device 202 may also automatically enable a camera to capture an image of the environment as background scene 234 presented by computing device 202 in user interface 230 . As computing device 202 or the camera is moved, the content of background scene 234 may change accordingly.
- computing device 202 may automatically initiate video recording after a predetermined time or may initiate video recording in response to user selection of a capture control in user interface 230 .
- computing device 202 may present user interface 236 .
- User interface 236 may include drawing controls 238 that may provide user 1 with a selectable set of drawing tools.
- the user may have selected drawing tool 240 , for example.
- different drawing tools may correspond to different brushes, for example, different ink styles, different brush thicknesses, or different brush colors.
- the user interface 236 may further include a progress indication 242 for indicating the progress of video recording.
- the shooting control can, for example, indicate that the video is being recorded through a specific visual element.
- computing device 202 may also receive user 1's user interaction on user interface 236 (for example, a drawing action on a touch screen), and draw based on the drawing tool 240 selected by the user.
- Graphical objects 244 corresponding to user interactions are generated and presented.
- computing device 202 may also present in user interface 236 an action based on an action performed on computing device 202 by another user in the AR session (e.g., user A associated with computing device 102 ).
- Graphical object 246 generated by a user interaction eg, a drawing action on a touch screen on another computing device. The specific generating process of the graphic object 244 and the graphic object 246 will be described in detail below with reference to FIG. 4 .
- user 1 can, for example, move the position of computing device 202 (or camera) or adjust the orientation of computing device 202 (or camera), so that the image captured by the camera of computing device 102 changes to present a new background scene 252 that is different from background scene 234 .
- user 1 and user A in the AR session may continue to interact to further obtain updated visual objects (ie, graphical objects) 254 and visual objects (ie, graphical objects) 256 .
- visual object 254 and visual object 256 are presented in user interface 248 according to their respective positions in the world coordinate system, in such a way that an augmented reality effect superimposed with background scene 252 may be presented.
- FIG. 2I in the user interface 258 , when both user 1 and user A in the AR session complete the drawn graphic object, the updated graphic object will be presented in the user interface 258 .
- the invited user 1 can similarly publish the video content superimposed with the graphic object co-authored with the user A.
- User 1 may configure one or more settings associated with posting a video. For example, User 1 may set the title 262 of the video content. Alternatively, the user can also configure which users can view the video content, whether to allow comments on the video content, whether to allow downloading of the video content, and so on.
- the video content may be uploaded to a video platform, for example, to provide other users of the video platform with the video content created by user 1 through a video application.
- the computing device 202 may present a user interface 266 to play the video content created by the invited user 1 in the AR session.
- computing device 102 and/or computing device 202 are shown as a smart terminal device in FIGS. 1A to 1M and 2A to 2K, they may also include any other suitable portable or non-portable , examples of which include, but are not limited to, smartphones, tablets, laptops, desktops, smart watches, smart glasses or other wearable devices, smart home devices, etc.
- FIG. 3 further shows a specific process 300 for the computing device 102 to interact with the computing device 202 to implement the AR session interaction as described with reference to FIGS. 1A to 1M and FIGS. 2A to 2K .
- computing device 102 may send a create session request to session server 305 .
- computing device 102 may initiate the create session request in response to user A selecting a corresponding special effect in a video application in computing device 102 .
- the session server 305 may be configured to manage various processes of the session, such as session creation, session destruction, session data management and other processes.
- the session server 305 sends information to the computing device 102 indicating that the session creation was successful.
- computing device 102 may send a request to session server 305 requesting historical data.
- the historical data may include, for example, historical graphic objects generated based on the user's historical interactions in the session (eg, the user's historical interactions in the session).
- session server 305 may send historical data to computing device 102, if historical data exists, such that computing device 102 accordingly generates a user interface corresponding to the session in which historical graphical objects may be presented.
- computing device 102 may send a session invitation to invitation server 310 inviting another user (eg, User 1) to join the current session.
- session server 305 and invitation server 310 may be implemented by different hardware devices, for example.
- the functions of session server 305 and invitation server 310 may also be integrated and implemented by the same server 315 , for example.
- invitation server 310 may send a session invitation to computing device 202 associated with invited User 1 to join the current session request.
- the session invitation may include, for example, a link address corresponding to the session.
- the link address may be an encrypted session link address.
- computing device 202 can connect to session server 305 based on the link address included in the session invitation.
- session server 305 notifies computing device 102 that User 1 associated with computing device 202 has accepted the invitation request and joined the session.
- computing device 102 sends interaction information generated based on user A's user interaction on computing device 102 to session server 305 .
- session server 305 may send to computing device 202 the interaction information received from computing device 102, such that computing device 202 generates a graphic corresponding to user A's user interaction on computing device 102 based on the received interaction information object.
- computing device 202 can notify session server 305 that the current session has been exited. For example, invited User 1 may operate on computing device 202 to exit the current AR session. Accordingly, computing device 202 may send a message to session server 305 that User 1 has exited the AR session.
- session server 305 may notify computing device 102 that another user 1 in the session has exited the current session.
- the computing device 202 may also send interaction information to the session server 305 , such interaction information may be generated based on the user interaction of the user 1 on the computing device 202 .
- the session server 305 may further send the interaction information to the computing device 102, so that the computing device 102 generates a graphical object corresponding to the user interaction of the user 1 on the computing device 202 based on the received interaction information.
- the specific process of generating and transmitting the interaction information will be described in detail below with reference to FIG. 4 .
- Fig. 4 further shows a schematic structural block diagram of an interaction system 400 according to some embodiments of the present disclosure.
- the interactive system 400 may include a lightweight plug-in module 410 .
- the lightweight plug-in module 410 may be an application plug-in written in a scripting language, which has a small program size and can be updated in a hot update manner. In this way, it is more convenient for developers to upgrade the lightweight plug-in module 410, thereby improving the flexibility of development.
- the lightweight plug-in module 410 may include, for example, a corresponding AR session special effect module in an application program installed on a computing device (for example, computing device 102).
- a computing device for example, computing device 102
- the AR special effect module written in a lightweight scripting language can be activated to provide the user with functions related to the AR session.
- the lightweight plug-in module 410 may include a user interface (UI) module 415, which may be configured, for example, to provide a user interface related to an AR session to a user.
- UI user interface
- the lightweight plug-in module 410 may also include an interaction module 420 that may be configured to generate graphical objects based on user interactions received by the computing device 102 running the lightweight plug-in module 410 . Additionally, interaction module 420 can also generate graphics corresponding to user interactions performed by other users in the session on associated other computing devices based on interaction information received from other computing devices in the session (e.g., computing device 202). object.
- the interaction module 420 may detect the user's operation such as pressing on the screen of the computing device to determine the screen coordinates for interacting with the user. Further, the interaction module may determine the presentation position of the graphic object based on the screen coordinates and the camera parameters of the camera mounted on the computing device.
- the camera parameters may include, for example, camera up coordinates, camera world coordinates, camera projection matrix or camera to world coordinate clipping matrix, and the like.
- the interaction module 420 can transform the screen coordinates into coordinates relative to the camera coordinate system or into coordinates relative to the world coordinate system based on the camera parameters, so that corresponding graphic objects are presented at corresponding positions .
- the lightweight plug-in module 410 running on the computing device 102 can convert the screen coordinates corresponding to user A's interaction on the user interface 156 into coordinates for displaying the graphical object 150 based on the camera parameters of the camera mounted on the computing device 102.
- World position coordinates Exemplarily, the graphic object 150 may be presented as a brush effect as shown in FIG. 1I , which may have corresponding world position coordinates, so as to present the AR effect superimposed on the real world image to the user.
- the interaction module 420 may also generate interaction information based on the camera parameters and user interaction for sending to the session Computing devices associated with other users in .
- determining the presentation position of a graphic object usually requires the following information: the screen coordinates corresponding to the user interaction, which can be represented as a two-dimensional vector; the camera upward direction vector, which can be represented as a three-dimensional vector;
- the world coordinates of the camera can be expressed as a three-dimensional vector;
- the projection matrix of the camera can be expressed as a 4*4 matrix;
- the clipping matrix of the camera to the world coordinates can be expressed as a 4*4 matrix.
- the interaction module 420 may only include the position information of the camera and the orientation information of the camera. In the interaction message, instead of sending the screen coordinates, the camera's up coordinates, the camera's projection matrix, and the camera-to-world clipping matrix.
- the position information of the camera may represent the position of the camera in the world coordinate system, which may be determined by, for example, a positioning module of the computing device.
- the orientation information of the camera can be represented by, for example, the forward vector of the camera.
- the front vector of the camera represents a vector in the forward direction of the camera (also referred to as a look direction vector), which can be represented by, for example, a three-dimensional vector.
- a current computing device may send interaction information to session server 305, which may be further forwarded to a computing device associated with another user in the session (referred to as a first device for ease of description) called the second device).
- the interaction module in the lightweight plug-in module running on the second device can extract the position information of the camera and the orientation information of the camera from the interaction information, and further determine the The following information is required: screen coordinates, camera up coordinates, camera world coordinates, camera projection matrix, camera-to-world clipping matrix.
- the computing device when the user uses the device for AR rendering, the computing device is usually in a substantially upward position.
- the camera's upward direction vector (eg, denoted U) may be estimated as (0, 1, 0), for example.
- the second device may further calculate a rightward direction vector orthogonal to the two based on the upward direction vector and the forward direction vector (for example, , denoted as R).
- the second device may further determine the rotation transformation matrix R view based on the above three direction vectors U, V and R:
- the second device may determine the translation transformation matrix T view based on the position information of the first camera (eg, denoted as P):
- the second device may also by default approximate the center coordinates of the screen of the second device as the screen coordinates corresponding to the user interaction on the first device.
- the transmission bandwidth of the interaction information can be further reduced.
- the first device may also include screen coordinate information corresponding to the user interaction in the interaction information, and send the screen coordinate information to the second device, so that the second device generates an A graphical object corresponding to user interaction on the device.
- the second device may also generate interaction information to be sent to the first device based on user interaction on the second device.
- the interaction module 420 on the first device can also be based on the method discussed above, and based on the camera parameters of the first camera of the first device and the interaction information received from the second device to generate The rendered graphics object.
- the specific manner of generating the graphics object is similar to the manner of generating the graphics object of the second device, and will not be repeated here.
- the embodiments of the present disclosure can effectively reduce the network bandwidth required to transmit interaction information, thereby reducing the interaction delay and improving the friendliness and experience of user interaction.
- the lightweight plug-in module 410 may also include a network module 425, which may be configured to perform operations related to the session communication process discussed above.
- the network module 425 can also be configured to obtain communication data associated with the session, and encapsulate the communication data into data packets, wherein the data packets include type information, type Information is used to indicate the type of communication data that is encapsulated.
- the type information may include, for example, first type information, which is used to indicate that the communication data includes network data for maintaining a session connection, for example, ping data used as a network heartbeat packet.
- the type information may further include second type information, which is used to indicate that the communication data includes identification data of users participating in the session, for example, user identification and the like.
- the type information may also include third type information, which is used to indicate that the communication data includes session control data, for example, data related to user actions such as creating a session, joining a session, leaving a session, and destroying a session.
- the type information may further include fourth type information, which is used to indicate that the communication data includes session snapshot data, for example, graphic object information completed by the user before the session ends.
- the type information may further include fifth type information indicating that the communication data includes time data, for example, global time data and the like.
- the type information may also include sixth type information indicating that the communication data includes interaction data generated in a session, such as the above-discussed graphic object used to generate a graphic object corresponding to user interaction on other devices Relevant interaction information (for example, the interaction information sent by the computing device 102 or the interaction information sent by the computing device 202, etc.).
- the above different data types can be represented by adding a type identifier corresponding to the data type in the data packet. Based on this approach, the embodiments of the present disclosure can allow more effective management of various types of data packets, for example, to support fast filtering or screening of data packets, and the like.
- the network module 425 can also be configured to encrypt the link address of the session.
- the network module 425 may use any appropriate encryption algorithm to encrypt the link address, such algorithm may include but not limited to MD5 algorithm and the like.
- the lightweight plug-in module 410 may further include a general module 430 .
- general module 430 may be configured to support decoupled communication between different engines.
- the lightweight plug-in module 410 can serve as a plug-in program of the client application 460 .
- the lightweight plug-in module 410 can realize the interaction with the client application 460 through the system support module 440 .
- system support module 440 may, for example, include a plurality of different engines to implement different functions associated with an AR session. The running programs corresponding to these engines may be included in the installation program corresponding to the client application 460 , for example, so that these engines can run as independent processes from the client application 460 .
- the target application may include engine 445 and engine 450 , and as shown in FIG. 4 , engine 445 may communicate with session server 305 .
- engine 445 and engine 450 can implement different functions associated with an AR session, eg, engine 445 can implement session logic functions, while engine 450 can implement functions related to user invitations, for example.
- the system support module 440 may also include an operating system AR module, for example, to provide calls to the underlying AR capabilities of the operating system.
- the common module 430 can realize decoupled communication between the engine 445 and the engine 450 through an event mechanism.
- the general module 430 may include, for example, an event generator configured to, in response to an operation of the engine 445 or the engine 450 , generate an event message corresponding to the operation.
- the event message may include an event identifier corresponding to the operation.
- the general module 430 may further include an event listener configured to listen to the event message generated by the event generator, so as to trigger the engine 445 or the engine 450 to perform an action corresponding to the event message.
- the engine 450 may trigger the general module 430 to dispatch an event corresponding to the avatar update. Further, the engine 445 can use the general module 430 to monitor that an event corresponding to the avatar update has occurred, and extract a link address corresponding to the updated avatar from the event information. Further, the engine 445 may communicate with the session server 305 to update the image corresponding to the user's avatar in the current AR session.
- FIG. 5 shows a flowchart of an interaction method 500 according to some embodiments of the present disclosure.
- Method 500 may be implemented, for example, by computing device 102 discussed with reference to FIGS. 1A-1M or computing device 202 discussed with reference to FIGS. 2A-2K .
- the first device receives a first interaction on a first interface.
- the first device Based on the first interaction, the first device generates a first graphical object presented on a first interface that also presents at least a first image captured by a first camera of the first device.
- the first device generates first interaction information indicating a first interaction based on a first camera parameter of the first camera.
- the first device sends the first interaction information to the second device, so that the second device presents an interaction with the first interaction on the second interface based on the first interaction information and the second camera parameters of the second camera of the second device.
- the second interface corresponds to the second graphic object, the second interface at least presents the second image captured by the second camera.
- the first interaction is received via the screen of the first device, and based on the first interaction, generating the first graphical object presented on the first interface includes: acquiring screen coordinates corresponding to the first interaction; The screen coordinates and the first camera parameter determine the presentation position of the first graphic object; and present the first graphic object on the first interface based on the presentation position.
- the method 500 further includes: receiving second interaction information from the second device, the second interaction information is generated by the second device based on the second camera parameters and the second interaction on the second interface; and based on the second For the interaction information and the first camera parameters, a third graphic object corresponding to the second interaction is presented on the first interface.
- the first interaction information includes: position information of the first camera; and orientation information of the first camera.
- the first interaction information does not include screen coordinate information corresponding to the first interaction.
- the method 500 further includes: creating a session; sending a session invitation to the second device to join the session; and generating a first interface corresponding to the session in response to receiving a confirmation of the session invitation from the second device.
- the session invitation includes an encrypted link generated by the first device.
- generating the first interaction information for indicating the first interaction includes: generating the first interaction information by a lightweight plug-in module in the first device based on the first camera parameter.
- the lightweight plug-in module further includes an event manager, and the event manager includes: an event generator configured to, in response to a first operation performed by the first engine and associated with the session, generate a An event message corresponding to an operation, wherein the event message includes an event identifier corresponding to the first operation; and an event listener configured to listen to the event message generated by the event generator, so as to trigger the second engine to execute the event corresponding to the first operation A second operation of , wherein the first engine and the second engine are respectively configured to implement different functions associated with the session.
- the event manager includes: an event generator configured to, in response to a first operation performed by the first engine and associated with the session, generate a An event message corresponding to an operation, wherein the event message includes an event identifier corresponding to the first operation; and an event listener configured to listen to the event message generated by the event generator, so as to trigger the second engine to execute the event corresponding to the first operation A second operation of , wherein the first engine and the second engine are respectively configured to implement different functions associated with
- the type information includes at least one of the following: a first type of information indicating that the communication data includes network data for maintaining a session connection, and a second type of information indicating that the communication data includes an identification with a user participating in the session Data, a third type of information indicating that the communication data includes session control data, a fourth type of information indicating that the communication data includes session snapshot data, a fifth type of information indicating that the communication data includes time data, or a sixth type of information indicating that the communication The data includes interaction data generated in the session.
- FIG. 6 illustrates a computing device 600 in which one or more embodiments of the present disclosure may be implemented (eg, computing device 102 as discussed with reference to FIGS. 1A-1M and/or a computing device as discussed with reference to FIGS. A block diagram of the device 202). It should be understood that the computing device 600 shown in FIG. 6 is exemplary only and should not constitute any limitation on the functionality and scope of the embodiments described herein.
- the computing device 600 may include an interaction module configured to receive a first interaction on the first interface; based on the first interaction, generate a first graphical object presented on the first interface, the first interface also presents at least one of the graphics objects displayed by the electronic device.
- the computing device 600 may further include a network module, configured to send the first interaction information to the second device, so that the second device based on the first interaction information and the second camera parameters of the second camera of the second device will perform A second graphic object corresponding to the first interaction is presented on the interface, and at least a second image captured by the second camera is presented on the second interface.
- the first interaction is received via the screen of the electronic device, and the interaction module is further configured to: obtain screen coordinates corresponding to the first interaction; a presentation position; and based on the presentation position, presenting the first graphical object on the first interface.
- the network module is further configured to receive second interaction information from the second device, the second interaction information is generated by the second device based on the second camera parameters and the second interaction on the second interface; and the interaction module It is further configured to present a third graphic object corresponding to the second interaction on the first interface based on the second interaction information and the first camera parameter.
- the first interaction information includes: position information of the first camera; and orientation information of the first camera.
- the first interaction information does not include screen coordinate information corresponding to the first interaction.
- the network module is further configured to create a session, and sends a session invitation to the second device to join the session; and the interaction module is further configured to generate an the first interface of .
- the session invitation includes an encrypted link generated by the electronic device.
- the interaction module and the network module are implemented by lightweight plug-in modules.
- the lightweight plug-in module further includes an event manager
- the event manager includes: an event generator configured to, in response to a first operation performed by the first engine and associated with the session, generate a An event message corresponding to an operation, wherein the event message includes an event identifier corresponding to the first operation; and an event listener configured to listen to the event message generated by the event generator to trigger the second engine to execute the event message corresponding to the first operation A corresponding second operation, wherein the first engine and the second engine are configured to respectively implement different functions associated with the session.
- the network module is further configured to: obtain communication data associated with the session; and encapsulate the communication data into a data packet, wherein the data packet includes type information, and the type information is used to indicate the type of the encapsulated communication data .
- the type information includes at least one of the following: first type information indicating that the communication data includes network data for maintaining a session connection; second type information indicating that the communication data includes identification data of users participating in the session ; The third type of information indicates that the communication data includes session control data; the fourth type of information indicates that the communication data includes session snapshot data; the fifth type of information indicates that the communication data includes association with time data; or type information indicates communication The data includes interaction data generated in the session.
- computing device 600 is in the form of a general-purpose computing device.
- Components of computing device 600 may include, but are not limited to, one or more processors or processing units 610, memory 620, storage devices 630, one or more communication units 640, one or more input devices 650, and one or more output devices 660.
- the processing unit 610 may be an actual or virtual processor and is capable of performing various processes according to programs stored in the memory 620 .
- multiple processing units execute computer-executable instructions in parallel to increase the parallel processing capability of the computing device 600 .
- Computing device 600 typically includes a plurality of computer storage media. Such media can be any available media that is accessible by computing device 600 , including but not limited to, volatile and nonvolatile media, removable and non-removable media.
- Memory 620 can be volatile memory (eg, registers, cache, random access memory (RAM)), nonvolatile memory (eg, read only memory (ROM), electrically erasable programmable read only memory (EEPROM) , flash memory) or some combination of them.
- Storage device 630 may be removable or non-removable media, and may include machine-readable media, such as flash drives, magnetic disks, or any other media that may be capable of storing information and/or data (e.g., training data for training ) and can be accessed within computing device/server 600.
- Computing device 600 may further include additional removable/non-removable, volatile/nonvolatile storage media.
- a disk drive for reading from or writing to a removable, nonvolatile disk such as a "floppy disk"
- a disk drive for reading from a removable, nonvolatile disk may be provided.
- CD-ROM drive for reading or writing.
- each drive may be connected to the bus (not shown) by one or more data media interfaces.
- Memory 620 may include a computer program product 625 having one or more program modules configured to perform the various methods or actions of the various embodiments of the present disclosure.
- the communication unit 640 enables communication with other computing devices through the communication medium. Additionally, the functionality of the components of computing device 600 may be implemented in a single computing cluster or as a plurality of computing machines capable of communicating via communication links. Accordingly, computing device 600 may operate in a networked environment using logical connections to one or more other servers, a network personal computer (PC), or another network node.
- PC network personal computer
- Input device 650 may be one or more input devices, such as a mouse, keyboard, trackball, and the like.
- Output device 660 may be one or more output devices, such as a display, speakers, printer, or the like.
- the computing device 600 can also communicate with one or more external devices (not shown) through the communication unit 640 as needed, such as storage devices, display devices, etc., and one or more devices that enable the user to interact with the computing device 600 In communication, or with any device (eg, network card, modem, etc.) that enables computing device 600 to communicate with one or more other computing devices. Such communication may be performed via an input/output (I/O) interface (not shown).
- I/O input/output
- a computer-readable storage medium on which one or more computer instructions are stored, wherein the one or more computer instructions are executed by a processor to implement the method described above.
- These computer-readable program instructions may be provided to a processing unit of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine such that when executed by the processing unit of the computer or other programmable data processing apparatus , producing an apparatus for realizing the functions/actions specified in one or more blocks in the flowchart and/or block diagram.
- These computer-readable program instructions can also be stored in a computer-readable storage medium, and these instructions cause computers, programmable data processing devices and/or other devices to work in a specific way, so that the computer-readable medium storing instructions includes An article of manufacture comprising instructions for implementing various aspects of the functions/acts specified in one or more blocks in flowcharts and/or block diagrams.
- each block in a flowchart or block diagram may represent a module, a program segment, or a portion of an instruction that contains one or more executable instruction.
- the functions noted in the block may occur out of the order noted in the figures. For example, two blocks in succession may, in fact, be executed substantially concurrently, or they may sometimes be executed in the reverse order, depending upon the functionality involved.
- each block of the block diagrams and/or flowchart illustrations, and combinations of blocks in the block diagrams and/or flowchart illustrations can be implemented by a dedicated hardware-based system that performs the specified function or action , or may be implemented by a combination of dedicated hardware and computer instructions.
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
根据本公开的实施例,提供了一种交互方法、系统、设备、存储介质和程序产品。该方法包括:由第一设备接收在第一界面上的第一交互;基于第一交互,生成在第一界面上呈现的第一图形对象,第一界面至少还呈现由第一设备的第一相机所捕获的第一图像;基于第一相机的第一相机参数,生成用于指示第一交互的第一交互信息;以及向第二设备发送第一交互信息,以使第二设备基于第一交互信息和第二设备的第二相机的第二相机参数在第二界面上呈现与第一交互对应的第二图形对象,第二界面至少还呈现由第二相机所捕获的第二图像。根据本公开的实施例,可以高效地实现多个用户之间的交互,并通过复用相机参数来降低交互信息的传输带宽。
Description
相关申请的交叉引用
本申请要求申请号为202110899083.2,题为“交互方法、电子设备、存储介质和程序产品”、申请日为2021年8月4日的中国发明专利申请的优先权,通过引用方式将该申请整体并入本文。
本公开的各实现方式涉及计算机领域,更具体地,涉及交互方法、电子设备、计算机存储介质和计算机程序产品。
随着互联网时代的发展,越来越多的用户开始创作视频内容,并将创作后的视频内容发布到互联网以与其他用户分享。在视频内容的创作过程中,一些视频平台通常为用户提供个性化创作方式,例如,滤镜、特效、个性贴纸等。然而,这样的视频创作方式通常依赖于单个用户本身的创造力,而无法为多个用户之间的交互提供支持。
发明内容
在本公开的第一方面,提供了一种交互方法。该方法包括:由第一设备接收在第一界面上的第一交互;基于第一交互,生成在第一界面上呈现的第一图形对象,第一界面至少还呈现由第一设备的第一相机所捕获的第一图像;基于第一相机的第一相机参数,生成用于指示第一交互的第一交互信息;以及向第二设备发送第一交互信息,以使第二设备基于第一交互信息和第二设备的第二相机的第二相机参数在第二界面上呈现与第一交互对应的第二图形对象,第二界面至少还呈现由第二相机所捕获的第二图像。
在本公开的第二方面中,提供了一种电子设备。该电子设备包括:交互模块,被配置为接收在第一界面上的第一交互;基于第一交互,生 成在第一界面上呈现的第一图形对象,第一界面至少还呈现由电子设备的第一相机所捕获的第一图像;基于第一相机的第一相机参数,生成用于指示第一交互的第一交互信息;以及网络模块,被配置为向第二设备发送第一交互信息,以使第二设备基于第一交互信息和第二设备的第二相机的第二相机参数在第二界面上呈现与第一交互对应的第二图形对象,第二界面至少还呈现由第二相机所捕获的第二图像。
在本公开的第三方面,提供了一种电子设备,包括:存储器和处理器;其中存储器用于存储一条或多条计算机指令,其中一条或多条计算机指令被处理器执行以实现根据本公开的第一方面的方法。
在本公开的第四方面,提供了一种计算机可读存储介质,其上存储有一条或多条计算机指令,其中一条或多条计算机指令被处理器执行实现根据本公开的第一方面的方法。
在本公开的第五方面,提供了一种计算机程序产品,其包括一条或多条计算机指令,其中一条或多条计算机指令被处理器执行实现根据本公开的第一方面的方法。
根据本公开的各种实施例,能够高效地实现多个用户之间的AR会话交互,提升用户的体验。此外,通过复用相机参数,本公开的实施例可以有效地降低传输交互信息所需的网络带宽。
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标注表示相同或相似的元素,其中:
图1A至图1M示出了根据本公开的多个实施例的示例用户界面;
图2A至图2K示出了根据本公开的多个实施例的示例用户界面;
图3示出了根据本公开的一些实施例的示例交互过程的流程图;
图4示出了根据本公开的一些实施例的交互系统的示意性结构框图;
图5示出了根据本公开的一些实施例的交互方法的流程图;以及
图6示出了能够实施本公开的多个实施例的计算设备的框图。
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
当前,越来越多的用户开始创作视频内容,并将创作后的视频内容发布到互联网以与其他用户分享。在视频内容的创建过程中,一些视频平台通常为用户提供诸多视频创作或者编辑的方式,例如,滤镜、特效、个性贴纸等。然而,这样的视频创作方式通常依赖于单个用户本身的创造力,其无法为多个用户之间的交互提供支持。
有鉴于此,本公开的实施例提供了一种交互方案。根据本公开的方案,第一设备接收用户在第一界面上的第一交互,并基于第一交互来生成在第一界面上呈现的第一图形对象,其中第一界面还可以呈现由第一设备的第一相机所捕获的第一图像。进一步地,第一设备基于第一相机的第一相机参数,生成用于指示第一交互的第一交互信息并向第二设备发送第一交互信息。第二设备可以进一步基于所接收的第一交互信息和第二设备的第二相机的第二相机参数而在第二界面上呈现与第一交互对应的第二图形对象。此外,第二界面至少可以还呈现由第二相机所捕获的第二图像。
由此,本公开的实施例能够支持多个用户实现跨设备的增强现实AR交互,以使得第一用户在第一设备上的AR交互动作所生成的图形对象 可以被转换为第二用户在第二设备上所看到的图形对象。这样的图形对象例如可以表现为对应的视觉特效。此外,通过复用相机参数,本公开的实施例还能够有效地降低传输交互信息所需的网络带宽,从而提高多用户交互的效率。
以下将参照附图来具体描述本公开的实施例。
AR会话
以下将参考图1A至图1M和图2A至图2K来描述根据本公开实施例的AR交互的示例过程。图1A至图1M示出了根据本公开的实施例的示例用户界面。
在一些实施例中,如图1A所示,计算设备102可以呈现用户界面104。示例性地,计算设备102可以响应于用户对计算设备102上所安装的视频应用的操作而呈现用户界面104。用户界面104例如可以包括视频应用所提供的用于创作和呈现视频内容的界面。
如图1A所示,用户界面104例如可以呈现由计算设备102的相机所捕获的图像,以作为背景场景106。随着计算设备102或者相机的运动,背景场景106可以相应地发生变化。
此外,如图1A所示,用户界面104还可以呈现拍摄控件110。拍摄控件110可以允许与计算设备102相关联的用户(例如,用户A)录制视频以及与视频相关联的一个或多个视觉特效,例如,滤镜特效、贴纸特效、或字幕特效等等。
在一些实施例中,用户界面104上还可以呈现特效控件108,用户可以触发该特效控件108以选择所需的特效。如图1B所示,在用户A触发特效控件108后,计算设备102可以在用户界面112中呈现特效面板。特效面板可以包括计算设备102的用户可用的多个不同特效。
在一些实施例中,特效面板中可以包括增强现实AR会话特效,例如,示例性地用E表示。相应地,在用户A选择该AR会话特效114后,计算设备102可以呈现用户界面116。如图1C所示,用户界面116中可以呈现邀请控件118,邀请控件118在被用户A选择后可以触发邀请其 他一个或者多个用户加入AR会话。
在一些实施例中,在用户A选择邀请控件118后,计算设备102可以呈现用户界面120。如图1D所示,用户界面120可以包括邀请界面122,以显示一组好友和/或联系人以供用户A进行选择并邀请加入会话。
示例性地,如图1E所示,用户A可以通过邀请界面122例如选择“用户1”以作为AR交互会话的邀请对象。进一步地,用户A可以点击好友邀请界面122中的邀请确认控件128,以使得计算设备102例如向服务器发送邀请所选择用户的请求。
在通过点击邀请确认控件128发送会话邀请请求后,计算设备102例如可以呈现用户界面130。如图1F所示,用户界面130例如可以呈现邀请指示132,该邀请指示132用于指示已经邀请了所选择的用户“用户1”加入AR会话。
进一步地,在一些实施例中,当所选择的用户(例如,“用户1”)接收相应请求(如将参考图2A至图2K所介绍的)后,计算设备102例如可以呈现用户界面134。如图1G所示,用户界面134可以呈现加入指示136,该加入指示136用于指示所邀请的用户已经加入AR会话。
在一些实施例中,计算设备102可以进一步呈现用户界面138。如图1H所示,用户界面138可以包括绘制控件140,该绘制控件140可以向用户(例如,用户A)提供一组可选择的绘制工具。如图1H所示,用户A例如可以选择了绘制工具142。示例性地,不同的绘制工具例如可以对应于不同的画笔,例如,不同的墨迹风格、不同的画笔粗度、或者不同的画笔颜色等。
在一些实施例中,如图1H所示,用户界面138中的拍摄控件144例如还可以提供倒计时指示,以通知用户视频录制例如将在3秒后自动开始。
进一步地,如图1I所示,计算设备102可以开始视频录制并呈现用户界面146。用户界面146例如可以包括进度指示148,以用于指示视频录制的进度。相应地,拍摄控件154例如可以通过特定的视觉元素来表示视频正在录制中。
此外,计算设备102还可以接收用户在用户界面146上的用户交互(例如,在触摸屏幕上的绘制动作),并基于用户A所选择的绘制工具142来生成并在用户界面146上呈现与用户交互所对应的图形对象150。
在一些实施例中,如图1I所示,计算设备102还可以在用户界面146中呈现基于由所邀请的用户(例如,用户1)在另一计算设备上所执行的用户交互(例如,在另一计算设备上的触摸屏上的绘制动作)而生成的图形对象152。关于图形对象150和图形对象152的具体生成过程,将在下文参考图4详细描述。
在一些实施例中,用户界面146还可以呈现与被邀请用户1相关联的好友绘制指示。例如,好友绘制指示可以用于表示受邀请用户当前绘制图形对象的光标的位置。
如图1J所示,在视频录制过程中,用户A例如可以移动计算设备102(或相机)的位置或者调整计算设备102(或相机)的朝向,以使得由计算设备102的相机所捕获的图像发生变化,从而呈现不同于背景场景106的新的背景场景158。
在用户界面156中,当前用户A和所邀请的用户1可以分别完成了其绘制的视觉对象(即,图形对象)160和视觉对象(即,图形对象)162。在一些实施例中,这样的视觉对象160和视觉对象162可以根据世界坐标系中的相应位置而在用户界面156中被呈现,以此方式,可以呈现与背景场景158叠加的增强现实效果。
如图1K所示,在视频录制结束时,计算设备102可以呈现用户界面164,其例如可以显示初始的背景场景106以及一个或多个图形对象(例如,由当前用户A所绘制的图形对象160和由所邀请用户1所绘制的图形对象162)。
在一些实施例中,用户还可以进一步与用户界面164交互以编辑所拍摄到的视频。例如,用户可以添加文本、音乐或表情等。进一步地,用户例如还可以通过点击用户界面164中的控件166(例如,指示“下一步”操作)以进入到发布界面。
如图1L所示,在用户界面168所呈现的发布页面,用户A可以配 置与发布视频相关联的一个或多个设置。例如,用户A可以设置该视频内容的标题170。或者,用户A还可以配置哪些用户可以查看该视频内容,该视频内容是否允许评论,该视频内容是否允许下载等等。进一步地,当用户A选择发布控件172后,该视频内容例如可以被上传到视频平台,以例如通过视频应用来向该视频平台的其他用户提供用户A所创作的视频内容。如图1M所示,当用户A完成视频内容的发布后,计算设备102可以呈现用户界面176,以播放用户A所创作完成的视频内容。
以下将结合图2A至图2K来从被邀请的用户(例如,用户1)的角度来描述根据本公开实施例的AR交互的示例过程。如图2A所示,被邀请的用户1所关联的计算设备202可以呈现用户界面204。在一些实施例中,用户界面204可以包括提示消息206,以提示计算设备102的用户A正邀请当前用户1加入AR会话。示例性地,如图2A所示,提示消息206可以包括在界面上所呈现的提示消息。
在一些实施例中,当计算设备202还可以通过其他方式来呈现关于邀请当前用户1加入AR会话的提示消息。如图2B所示,当例如计算设备102的用户A通过邀请确认控件128来邀请计算设备202的当前用户1加入AR会话时,计算设备202可以呈现用户界面208。如图2B所示,用户界面208可以包括叠加在背景界面210上所显示的提示消息212,其中,背景界面210中呈现的是计算设备202的相机所捕捉到的画面。应当理解,提示消息例如还可以通过其他任何适当的方式被呈现,例如,顶栏提示等。在一些实施例中,计算设备202例如还可以提供用户界面214,以允许用户1查看当前的提示消息216和其他消息218。
在一些实施例中,当用户1选择提示消息206、提示消息212或提示消息216时,计算设备202可以自动地连接到与计算设备102的AR会话。在一些实施例中,提示消息206、提示消息212或提示消息216可以具备时效性。例如,当计算设备202的用户1在收到提示消息206的预定时间(例如,30秒)内没有点击加入,则当用户1再次点击提示消息206时,计算设备202可以提供关于此会话未被激活的提示。
示例性地,如图2D所示,当用户1选择了过期的提示消息时,计算 设备202可以呈现用户界面220。用户界面220例如可以包括在背景界面222上叠加显示的提示消息224,以指示受邀请加入的AR会话已经过期。
在另一些实施例中,如果用户1选择了未过期的提示消息(例如,提示消息206、提示消息212或提示消息216)时,计算设备202例如可以呈现用户界面206。如图2E所示,用户界面206例如可以包括用于指示当前用户1正在加入所邀请的AR会话的提示消息228。
在一些实施例中,在AR会话加载完毕,计算设备202可以呈现用户界面230。如图2F所示,用户界面230可以包括关于当前用户1已经加入了AR会话的提示消息232。此外,计算设备202还可以自动启用相机以捕捉环境图像,以作为计算设备202在用户界面230中所呈现的背景场景234。随着计算设备202或者相机的运动,背景场景234的内容可以相应地发生变化。
类似地,计算设备202可以自动地在预定时间后启动视频录制或者可以响应于用户对于用户界面230中拍摄控件的选择而启动视频录制。
如图2G所示,计算设备202可以呈现用户界面236。用户界面236可以包括绘制控件238,该绘制控件238可以向用户1提供一组可选择的绘制工具。如图2G所示,用户例如可以选择了绘制工具240。示例性地,不同的绘制工具例如可以对应于不同的画笔,例如,不同的墨迹风格、不同的画笔粗度、或者不同的画笔颜色等。
进一步地,如图2G所示,用户界面236例如还可以包括进度指示242,以用于指示视频录制的进度。相应地,拍摄控件例如可以通过特定的视觉元素来表示视频正在录制中。
在一些实施例中,如图2G所示,计算设备202还可以接收用户1在用户界面236上的用户交互(例如,在触摸屏幕上的绘制动作),并基于用户所选择的绘制工具240来生成并呈现与用户交互所对应的图形对象244。
在一些实施例中,如图2G所示,计算设备202还可以在用户界面236中呈现基于由AR会话中的另一用户(例如,计算设备102的关联用 户A)在计算设备202上所执行的用户交互(例如,在另一计算设备上的触摸屏上的绘制动作)而生成的图形对象246。关于图形对象244和图形对象246的具体生成过程,将在下文参考图4详细描述。
如图2H所示,在视频录制过程中,用户1例如可以移动计算设备202(或相机)的位置或者调整计算设备202(或相机)的朝向,以使得由计算设备102的相机所捕获的图像发生变化,从而呈现不同于背景场景234的新的背景场景252。
如图2H所示,在用户界面248中,AR会话中的用户1和用户A可以继续交互,以进一步得到更新的视觉对象(即,图形对象)254和视觉对象(即,图形对象)256。在一些实施例中,视觉对象254和视觉对象256根据世界坐标系中的相应位置而在用户界面248中被呈现,以此方式,可以呈现与背景场景252叠加的增强现实效果。进一步地,如图2I所示,在用户界面258中,当AR会话中的用户1和用户A均完成了所描绘的图形对象,用户界面258中会呈现更新后的图形对象。
与发起会话邀请的用户A类似,受邀请的用户1也可以类似地发布叠加了与用户A协同创作的图形对象的视频内容。如图2J所示,在用户界面260,用户1可以配置与发布视频相关联的一个或多个设置。例如,用户1可以设置该视频内容的标题262。或者,用户还可以配置哪些用户可以查看该视频内容,该视频内容是否允许评论,该视频内容是否允许下载等等。进一步地,当用户1选择发布控件264后,该视频内容例如可以被上传到视频平台,以例如通过视频应用来向该视频平台的其他用户提供用户1所创作的视频内容。如图2K所示,当用户1完成视频内容的发布后,计算设备202可以呈现用户界面266,以地播放受邀请用户1在AR会话中所创作完成的视频内容。
应当理解,虽然计算设备102和/或计算设备202在图1A至图1M和图2A至图2K中被示出为一种智能终端设备,但是其还可以包括其他任何适当的便携式或非便携式设备,其示例包括但不限于智能手机、平板电脑、笔记本电脑、台式机、智能手表、智能眼镜或其他可穿戴设备、智能家居设备等。
示例交互过程
图3进一步示出了计算设备102与计算设备202实现如参考图1A至图1M和图2A至图2K所描述的AR会话交互的具体过程300。
如图3所示,在320,计算设备102可以向会话服务器305发送创建会话请求。在一些实施例中,计算设备102可以响应于用户A在计算设备102中的视频应用中选择的相应特效来发起创建会话请求。
在一些实施例中,会话服务器305可以被配置为管理会话的各项进程,例如会话的创建、会话的销毁、会话数据的管理等进程。
在322,会话服务器305向计算设备102发送会话创建成功的指示信息。
在324,响应于会话创建成功的指示,计算设备102可以向会话服务器305发送请求历史数据的请求。在一些实施例中,历史数据例如可以包括在会话中基于用户的历史交互(例如,会话中的用户的历史交互)而生成的历史图形对象等。
在326,如果存在历史数据,则会话服务器305可以向计算设备102发送历史数据,以使得计算设备102相应地生成与会话所对应的用户界面,在该用户界面中,可以呈现历史图形对象。
在328,计算设备102可以向邀请服务器310发送邀请另一用户(例如,用户1)加入当前会话的会话邀请。在一些实施例中,会话服务器305和邀请服务器310例如可以由不同的硬件设备来实施。在一些实施例中,会话服务器305和邀请服务器310的功能例如也可以集成并由同一服务器315来实施。
在330,邀请服务器310可以向与所邀请的用户1相关联的计算设备202发送邀请加入当前会话请求的会话邀请。在一些实施例中,该会话邀请例如可以包括与会话所对应的链接地址。在一些实施例中,该链接地址可以是经加密后的会话链接地址。
在332,计算设备202可以基于会话邀请中所包括的链接地址连接到会话服务器305。
在334,会话服务器305通知计算设备102,与计算设备202相关联的用户1已经接受邀请请求并加入会话。
在336,计算设备102向会话服务器305发送基于计算设备102上的用户A的用户交互而生成的交互信息。
在338,会话服务器305可以向计算设备202发送从计算设备102所接收的交互信息,以使得计算设备202基于所接收的交互信息而生成与计算设备102上的用户A的用户交互相对应的图形对象。
在340,计算设备202可以通知会话服务器305退出了当前会话。示例性地,所邀请的用户1可以在计算设备202上操作,以退出当前AR会话。相应地,计算设备202可以向会话服务器305发送用户1退出了AR会话的消息。
在342,会话服务器305可以通知计算设备102,会话中的另一用户1已经退出当前会话。
应当理解,与步骤336和步骤338类似,计算设备202也可以向会话服务器305发送交互信息,这样的交互信息可以是基于计算设备202上的用户1的用户交互所生成的。会话服务器305可以进一步将该交互信息发送至计算设备102,以使得计算设备102基于所接收的交互信息而生成与计算设备202上的用户1的用户交互相对应的图形对象。关于交互信息的生成与传输的具体过程将在下文参考图4详细描述。
示例交互系统
图4进一步示出了根据本公开的一些实施例的交互系统400的示意性结构框图。
如图4所示,交互系统400可以包括轻量级插件模块410。在一些实施例中,轻量级插件模块410可以是利用脚本语言所编写的应用插件,其例如具有较小的程序量级,并可以通过热更新的方式来进行更新。通过这样的方式,可以更加方便开发者对轻量级插件模块410进行升级,从而提高开发的灵活性。
示例性地,轻量级插件模块410例如可以包括计算设备(例如,计 算设备102)安装的应用程序中所对应的AR会话特效模块。当用户例如通过用户界面112选择AR会话特效114后,以轻量级脚本语言所编写的AR特效模块可以被启用,以向用户提供与AR会话有关的功能。
在一些实施例中,如图4所示,轻量级插件模块410可以包括用户界面(UI)模块415,其例如可以被配置为向用户提供与AR会话有关的用户界面。
在一些实施例中,轻量级插件模块410还可以包括交互模块420,其可以被配置为基于由运行该轻量级插件模块410的计算设备102接收的用户交互来生成图形对象。此外,交互模块420还可以基于从会话中的其他计算设备(例如,计算设备202)接收的交互信息来生成与会话中的其他用户在所关联的其他计算设备上执行的用户交互相对应的图形对象。
在一些实施例中,交互模块420可以检测用户在计算设备的屏幕上的诸如按压操作,以确定与用户交互的屏幕坐标。进一步地,交互模块可以基于屏幕坐标和计算设备所搭载相机的相机参数来确定图形对象的呈现位置。在一些实施例中,相机参数例如可以包括相机向上坐标、相机世界坐标、相机的投影矩阵或相机到世界坐标裁剪矩阵等。
在一些实施例中,交互模块420可以基于相机参数将屏幕坐标转换为相对于相机坐标系的坐标,或者转换为相对于世界坐标系的坐标,从而使得相应的图形对象在相应的位置处被呈现。
例如,计算设备102上运行的轻量级插件模块410可以基于计算设备102所搭载相机的相机参数,将用户A在用户界面156上的交互所对应的屏幕坐标转换为用于显示图形对象150的世界位置坐标。示例性地,该图形对象150可以呈现为如图1I所示的笔刷效果,其可以具有相应的世界位置坐标,以向用户呈现叠加在现实世界图像中的AR效果。
在一些实施例中,为了向当前AR会话中的其他用户同步当前用户在计算设备上所创作的图形对象,交互模块420还可以基于相机参数和用户交互来生成交互信息,以用于发送到会话中的其他用户相关联的计算设备。
在现有技术中,确定图形对象的呈现位置通常需要以下信息:用户交互所对应的屏幕坐标,其例如可以表示为一个二维向量;相机向上方向向量,其例如可以表示为一个三维向量;相机的世界坐标,其例如可以表示为一个三维向量;相机的投影矩阵,其例如可以表示为一个4*4的矩阵;相机到世界坐标的裁剪矩阵,其例如可以表示为一个4*4的矩阵。
当计算设备完整地将以上信息发送至会话中其他用户相关联的其他计算设备时,这样的通信开销通常是巨大的,这将造成较大的带宽压力,并导致不期望的交互时延。例如,用户在计算设备执行一个滑动交互动作,这可能会导致1000字节以上的数据传输开销。
根据本公开的实施例,为了降低交互数据的传输带宽,在向与会话中的其他用户相关联的其他计算设备发送交互信息时,交互模块420可以仅将相机的位置信息和相机的朝向信息包括在交互信息中,而不发送屏幕坐标、相机的向上坐标、相机的投影矩阵和相机到世界的裁剪矩阵。
具体地,相机的位置信息可以表示相机在世界坐标系中的位置,其例如可以通过计算设备的定位模块所确定。相机的朝向信息例如可以通过相机的前向量来表示。相机的前向量表示相机向前方向的向量(也被称为look方向向量),其例如可以通过一个三维向量来表示。
例如,当前计算设备(为了方便描述,称为第一设备)可以向会话服务器305发送交互信息,该交互信息可以进一步被转发至与会话中的另一用户相关联的计算设备(为了方便描述,称为第二设备)。
进一步地,在接收到交互信息后,第二设备上运行的轻量级插件模块中的交互模块可以从交互信息中提取相机的位置信息和相机的朝向信息,并进一步确定用于绘制图形对象所需要的以下信息:屏幕坐标、相机向上坐标、相机的世界坐标、相机的投影矩阵、相机到世界的裁剪矩阵。
在一些实施例中,考虑到用户在使用设备进行AR绘制时,计算设备通常处于基本上朝上的状态。因此,相机的向上方向向量(例如,表示为U)例如可以被估计为(0,1,0)。此外,基于所接收的交互信息 中的向前方向向量(例如,表示为V),第二设备可以进一步基于向上方向向量和向前方向向量计算出与两者正交的向右方向向量(例如,表示为R)。
进一步地,第二设备可以进一步基于以上三个方向向量U、V和R来确定旋转变换矩阵R
view:
此外,第二设备可以基于第一相机的位置信息(例如,表示为P)来确定平移变换矩阵T
view:
第二设备可以进一步基于旋转变换矩阵R
view和平移变换矩阵T
view来确定坐标变换矩阵C=R
view*T
view。进一步地,第二设备可以基于所确定的坐标变换矩阵C和第二设备上的第二相机的相机参数来确定相机到世界坐标裁剪矩阵。此外,第二设备可以复用第二相机的投影矩阵,并将第二相机的投影矩阵以作为第一设备未传输的第一相机的投影矩阵。
在一些实施例中,考虑到在AR交互中,用户通常习惯于通过移动计算设备来执行用户交互。因此,第二设备也可以默认将第二设备的屏幕的中心坐标近似作为第一设备上的用户交互所对应的屏幕坐标。由此,可以进一步降低交互信息的传输带宽。
在一些实施例中,第一设备也可以在交互信息中包括与用户交互对应的屏幕坐标信息,并将屏幕坐标信息发送至第二设备,以使得第二设备基于屏幕坐标信息来生成与第一设备上的用户交互相对应的图形对象。
应当理解,第二设备也可以基于第二设备上的用户交互来生成向第一设备发送的交互信息。第一设备上的交互模块420也可以基于上文所 讨论的方式,并基于第一设备的第一相机的相机参数和从第二设备所接收的交互信息来生成在第一设备的用户界面中所呈现的图形对象。具体的生成图形对象的方式与第二设备的生成图形对象的方式类似,此处不再赘述。
基于以上所讨论的方式,本公开的实施例能够有效地降低传输交互信息所需要的网络带宽,从而降低交互的时延,提升用户交互的友好程度和体验。
继续参考图4,轻量级插件模块410还可以包括网络模块425,其可以被配置为执行与上文所讨论的会话通信过程有关的操作。在一些实施例中,为了方便通信数据的数据包的管理,网络模块425还可以被配置为获取与会话相关联的通信数据,并将通信数据封装为数据包,其中数据包包括类型信息,类型信息用于指示经封装的通信数据的类型。
在一些实施例中,类型信息例如可以包括第一类型信息,用于指示通信数据包括用于保持会话连接的网络数据,例如,用作网络心跳包的ping数据。备选地或附加地,类型信息还可以包括第二类型信息,用于指示通信数据包括参与会话的用户的标识数据,例如,用户的标识等。备选地或附加地,类型信息还可以包括第三类型信息,用于指示通信数据包括会话的控制数据,例如与用户创建会话、加入会话、离开会话、销毁会话等动作有关的数据。
备选地或附加地,类型信息还可以包括第四类型信息,用于指示通信数据包括会话的快照数据,例如,用户在会话未结束前所完成的图形对象信息等。备选地或附加地,类型信息还可以包括第五类型信息,指示通信数据包括时间数据,例如,全局时间数据等。备选地或附加地,类型信息还可以包括第六类型信息,指示通信数据包括会话中生成的交互数据,例如上文所讨论的与用于生成与其他设备上的用户交互相对应的图形对象有关的交互信息(例如,计算设备102发送的交互信息或者计算设备202发送的交互信息等)。
在一些实施例中,以上不同的数据类型可以通过在数据包中添加与数据类型对应的类型标识符来表示。基于这样的方式,本公开的实施例 可以允许更为有效地管理各种类型的数据包,例如,以支持对数据包快速地进行过滤或筛选等。
在一些实施例中,网络模块425还可以配置为对会话的链接地址进行加密。例如,网络模块425可以利用任何适当的加密算法来对链接地址进行加密,这样的算法可以包括但不限于MD5算法等。
在一些实施例中,如图4所示,轻量级插件模块410还可以包括通用模块430。在一些实施例中,通用模块430可以被配置为支持不同引擎之间的解耦合通信。
如图4所示,轻量级插件模块410可以作为客户端应用460的插件程序。示例性地,轻量级插件模块410可以通过系统支持模块440来实现与客户端应用460的交互。在一些实施例中,系统支持模块440例如可以包括多个不同的引擎,以实现与AR会话相关联的不同功能。与这些引擎所对应的运行程序例如可以被包括在与客户端应用460对应的安装程序中,使得这些引擎能够运行作为与客户端应用460独立的进程。
例如,如图4所示,目标应用可以包括引擎445和引擎450,如图4所示,引擎445可以与会话服务器305通信引擎450可以与客户端应用460以及上文讨论的邀请服务器310通信。以此方式,引擎445和引擎450可以实现与AR会话相关联的不同功能,例如,引擎445可以实现会话逻辑功能,而引擎450例如可以实现与用户邀请相关的功能。此外,系统支持模块440例如还可以包括操作系统AR模块,以例如提供对于操作系统的底层AR能力的调用。
在一些实施例中,通用模块430可以通过事件机制来实现引擎445和引擎450之间的解耦合通信。具体地,通用模块430例如可以包括事件生成器,其被配置为响应于引擎445或引擎450的操作,生成与该操作对应的事件消息。在一些实施例中,事件消息可以包括与该操作对应的事件标识。
在一些实施例中,通用模块430还可以包括事件监听器,其被配置为监听由事件生成器所生成的事件消息,以触发引擎445或引擎450执行与事件消息相对应的动作。
示例性地,例如,在引擎450例如确定当前AR会话中的用户1在应用中更新了头像的情况下,引擎450可以触发通用模块430来派发与头像更新对应的事件。进一步地,引擎445可以利用通用模块430来监听与头像更新对应的事件已经发生,并从事件信息中提取与更新的头像所对应的链接地址。进一步地,引擎445可以与会话服务器305通信,以在当前AR会话中更新与用户的头像对应的图像。
应当理解,以上的具体头像更新事件仅是一种示例性的事件,还可以根据场景需要来定义其他任何适当类型的事件。基于这样的方式,可以实现不同引擎之间的解耦合通信,从而提高了轻量级插件模块410的可拓展性。
示例过程与设备
图5示出了根据本公开一些实施例的交互方法500的流程图。方法500例如可以由参考图1A至图1M所讨论的计算设备102或参考图2A至图2K所讨论的计算设备202来实施。
如图5所示,在框510,第一设备接收在第一界面上的第一交互。
在框520,基于第一交互,第一设备生成在第一界面上呈现的第一图形对象,第一界面至少还呈现由第一设备的第一相机所捕获的第一图像。
在框530,第一设备基于第一相机的第一相机参数,生成用于指示第一交互的第一交互信息。
在框540,第一设备向第二设备发送第一交互信息,以使第二设备基于第一交互信息和第二设备的第二相机的第二相机参数在第二界面上呈现与第一交互对应的第二图形对象,第二界面至少还呈现由第二相机所捕获的第二图像。
在一些实施例中,第一交互经由第一设备的屏幕而被接收,并且基于第一交互,生成在第一界面上呈现的第一图形对象包括:获取与第一交互对应的屏幕坐标;基于屏幕坐标和第一相机参数,确定第一图形对象的呈现位置;以及基于呈现位置,在第一界面上呈现第一图形对象。
在一些实施例中,方法500还包括:从第二设备接收第二交互信息,第二交互信息由第二设备基于第二相机参数和第二界面上的第二交互所生成;以及基于第二交互信息和第一相机参数,在第一界面中呈现与第二交互对应的第三图形对象。
在一些实施例中,第一交互信息包括:第一相机的位置信息;以及第一相机的朝向信息。
在一些实施例中,第一交互信息不包括与第一交互对应的屏幕坐标信息。
在一些实施例中,方法500还包括:创建会话;向第二设备发送加入会话的会话邀请;以及响应于接收到第二设备针对会话邀请的确认,生成与会话对应的第一界面。
在一些实施例中,其中会话邀请包括由第一设备所生成的加密链接。
在一些实施例中,生成用于指示第一交互的第一交互信息包括:由第一设备中的轻量级插件模块基于第一相机参数,生成第一交互信息。
在一些实施例中,轻量级插件模块还包括事件管理器,事件管理器包括:事件生成器,被配置为响应于由第一引擎执行的、与会话相关联的第一操作,生成与第一操作对应的事件消息,其中事件消息包括与第一操作对应的事件标识;以及事件监听器,被配置为监听由事件生成器所生成的事件消息,以触发第二引擎执行与第一操作对应的第二操作,其中第一引擎和第二引擎被配置为分别实现与会话相关联的不同功能。
在一些实施例中,类型信息包括以下中的至少一项:第一类型信息,指示通信数据包括用于保持会话连接的网络数据,第二类型信息,指示通信数据包括与参与会话的用户的标识数据,第三类型信息,指示通信数据包括会话的控制数据,第四类型信息,指示通信数据包括会话的快照数据,第五类型信息,指示通信数据包括时间数据,或第六类型信息,指示通信数据包括会话中生成的交互数据。
图6示出了其中可以实施本公开的一个或多个实施例的计算设备600(例如,如参考图1A至图1M所讨论的计算设备102和/或参考图2A 至图2K所讨论的计算设备202)的框图。应当理解,图6所示出的计算设备600仅仅是示例性的,而不应当构成对本文所描述的实施例的功能和范围的任何限制。
计算设备600可以包括交互模块,被配置为接收在第一界面上的第一交互;基于第一交互,生成在第一界面上呈现的第一图形对象,第一界面至少还呈现由电子设备的第一相机所捕获的第一图像;基于第一相机的第一相机参数,生成用于指示第一交互的第一交互信息。此外,计算设备600还可以包括网络模块,被配置为向第二设备发送第一交互信息,以使第二设备基于第一交互信息和第二设备的第二相机的第二相机参数在第二界面上呈现与第一交互对应的第二图形对象,第二界面至少还呈现由第二相机所捕获的第二图像。
在一些实施例中,第一交互经由电子设备的屏幕被接收,并且交互模块还被配置为:获取与第一交互对应的屏幕坐标;基于屏幕坐标和第一相机参数,确定第一图形对象的呈现位置;以及基于呈现位置,在第一界面上呈现第一图形对象。
在一些实施例中,网络模块还被配置为从第二设备接收第二交互信息,第二交互信息由第二设备基于第二相机参数和第二界面上的第二交互所生成;并且交互模块还被配置为基于第二交互信息和第一相机参数,在第一界面中呈现与第二交互对应的第三图形对象。
在一些实施例中,第一交互信息包括:第一相机的位置信息;以及第一相机的朝向信息。
在一些实施例中,第一交互信息不包括与第一交互对应的屏幕坐标信息。
在一些实施例中,网络模块还被配置为创建会话,向第二设备发送加入会话的会话邀请;并且交互模块还被配置为响应于接收到第二设备针对会话邀请的确认,生成与会话对应的第一界面。
在一些实施例中,会话邀请包括由电子设备所生成的加密链接。
在一些实施例中,交互模块和网络模块由轻量级插件模块来实现。
在一些实施例中,轻量级插件模块还包括事件管理器,事件管理 器包括:事件生成器,被配置为响应于由第一引擎执行的、与会话相关联的第一操作,生成与第一操作对应的事件消息,其中,事件消息包括与第一操作对应的事件标识;以及事件监听器,被配置为监听由事件生成器所生成的事件消息,以触发第二引擎执行与第一操作对应的第二操作,其中,第一引擎和第二引擎被配置为分别实现与会话相关联的不同功能。
在一些实施例中,网络模块还被配置为:获取与会话相关联的通信数据;以及将通信数据封装为数据包,其中数据包包括类型信息,类型信息用于指示经封装的通信数据的类型。
在一些实施例中,类型信息包括以下中的至少一项:第一类型信息,指示通信数据包括用于保持会话连接的网络数据;第二类型信息,指示通信数据包括参与会话的用户的标识数据;第三类型信息,指示通信数据包括会话的控制数据;第四类型信息,指示通信数据包括会话的快照数据;第五类型信息,指示通信数据包括与时间数据相关联;或类型信息,指示通信数据包括会话中生成的交互数据。
如图6所示,计算设备600是通用计算设备的形式。计算设备600的组件可以包括但不限于一个或多个处理器或处理单元610、存储器620、存储设备630、一个或多个通信单元640、一个或多个输入设备650以及一个或多个输出设备660。处理单元610可以是实际或虚拟处理器并且能够根据存储器620中存储的程序来执行各种处理。在多处理器系统中,多个处理单元并行执行计算机可执行指令,以提高计算设备600的并行处理能力。
计算设备600通常包括多个计算机存储介质。这样的介质可以是计算设备600可访问的任何可以获得的介质,包括但不限于易失性和非易失性介质、可拆卸和不可拆卸介质。存储器620可以是易失性存储器(例如寄存器、高速缓存、随机访问存储器(RAM))、非易失性存储器(例如,只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存)或它们的某种组合。存储设备630可以是可拆卸或不可拆卸的介质,并且可以包括机器可读介质,诸如闪存驱动、磁盘或者任何其他介 质,其可以能够用于存储信息和/或数据(例如用于训练的训练数据)并且可以在计算设备/服务器600内被访问。
计算设备600可以进一步包括另外的可拆卸/不可拆卸、易失性/非易失性存储介质。尽管未在图6中示出,可以提供用于从可拆卸、非易失性磁盘(例如“软盘”)进行读取或写入的磁盘驱动和用于从可拆卸、非易失性光盘进行读取或写入的光盘驱动。在这些情况中,每个驱动可以由一个或多个数据介质接口被连接至总线(未示出)。存储器620可以包括计算机程序产品625,其具有一个或多个程序模块,这些程序模块被配置为执行本公开的各种实施例的各种方法或动作。
通信单元640实现通过通信介质与其他计算设备进行通信。附加地,计算设备600的组件的功能可以以单个计算集群或多个计算机器来实现,这些计算机器能够通过通信连接进行通信。因此,计算设备600可以使用与一个或多个其他服务器、网络个人计算机(PC)或者另一个网络节点的逻辑连接来在联网环境中进行操作。
输入设备650可以是一个或多个输入设备,例如鼠标、键盘、追踪球等。输出设备660可以是一个或多个输出设备,例如显示器、扬声器、打印机等。计算设备600还可以根据需要通过通信单元640与一个或多个外部设备(未示出)进行通信,外部设备诸如存储设备、显示设备等,与一个或多个使得用户与计算设备600交互的设备进行通信,或者与使得计算设备600与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)进行通信。这样的通信可以经由输入/输出(I/O)接口(未示出)来执行。
根据本公开的示例性实现方式,提供了一种计算机可读存储介质,其上存储有一条或多条计算机指令,其中一条或多条计算机指令被处理器执行以实现上文描述的方法。
这里参照根据本公开实现的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其他可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其他可编程数据处理装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实现的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实现,上述说明是示例性的,并非穷尽性的,并且也不限于所公开的各实现。在不偏离所说明的各实现的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实现的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普 通技术人员能理解本文公开的各实现。
Claims (25)
- 一种交互方法,包括:由第一设备接收在第一界面上的第一交互;基于所述第一交互,生成在所述第一界面上呈现的第一图形对象,所述第一界面至少还呈现由所述第一设备的第一相机所捕获的第一图像;基于所述第一相机的第一相机参数,生成用于指示所述第一交互的第一交互信息;以及向第二设备发送所述第一交互信息,以使所述第二设备基于所述第一交互信息和所述第二设备的第二相机的第二相机参数在第二界面上呈现与所述第一交互对应的第二图形对象,所述第二界面至少还呈现由所述第二相机所捕获的第二图像。
- 根据权利要求1所述的方法,其中,所述第一交互经由所述第一设备的屏幕而被接收,并且基于所述第一交互,生成在所述第一界面上呈现的第一图形对象包括:获取与所述第一交互对应的屏幕坐标;基于所述屏幕坐标和所述第一相机参数,确定所述第一图形对象的呈现位置;以及基于所述呈现位置,在所述第一界面上呈现所述第一图形对象。
- 根据权利要求1所述的方法,还包括:从所述第二设备接收第二交互信息,所述第二交互信息由所述第二设备基于所述第二相机参数和所述第二界面上的第二交互所生成;以及基于所述第二交互信息和所述第一相机参数,在所述第一界面中呈现与所述第二交互对应的第三图形对象。
- 根据权利要求1所述的方法,其中,所述第一交互信息包括:所述第一相机的位置信息;以及所述第一相机的朝向信息。
- 根据权利要求4所述的方法,其中,所述第一交互信息不包括与所述第一交互对应的屏幕坐标信息。
- 根据权利要求1所述的方法,还包括:创建会话;向所述第二设备发送加入所述会话的会话邀请;以及响应于接收到所述第二设备针对所述会话邀请的确认,生成与所述会话对应的所述第一界面。
- 根据权利要求6所述的方法,其中,所述会话邀请包括由所述第一设备所生成的加密链接。
- 根据权利要求6所述的方法,其中,生成用于指示所述第一交互的第一交互信息包括:由所述第一设备中的轻量级插件模块基于所述第一相机参数,生成所述第一交互信息。
- 根据权利要求8所述的方法,其中,所述轻量级插件模块还包括事件管理器,所述事件管理器包括:事件生成器,被配置为响应于由第一引擎执行的、与所述会话相关联的第一操作,生成与所述第一操作对应的事件消息,其中,所述事件消息包括与所述第一操作对应的事件标识;以及事件监听器,被配置为监听由所述事件生成器所生成的所述事件消息,以触发第二引擎执行与所述第一操作对应的第二操作,其中,所述第一引擎和所述第二引擎被配置为分别实现与所述会话相关联的不同功能。
- 根据权利要求8所述的方法,其中,所述轻量级插件模块还包括网络模块,所述网络模块被配置为:获取与所述会话相关联的通信数据;以及将所述通信数据封装为数据包,其中所述数据包包括类型信息,所述类型信息用于指示经封装的所述通信数据的类型。
- 根据权利要求10所述的方法,其中所述类型信息包括以下中的至少一项:第一类型信息,指示所述通信数据包括用于保持会话连接的网络数据;第二类型信息,指示所述通信数据包括参与所述会话的用户的标识 数据;第三类型信息,指示所述通信数据包括所述会话的控制数据;第四类型信息,指示所述通信数据包括所述会话的快照数据;第五类型信息,指示所述通信数据包括时间数据;或第六类型信息,指示所述通信数据包括所述会话中生成的交互数据。
- 一种电子设备,包括:交互模块,被配置为接收在第一界面上的第一交互;基于所述第一交互,生成在所述第一界面上呈现的第一图形对象,所述第一界面至少还呈现由所述电子设备的第一相机所捕获的第一图像;基于所述第一相机的第一相机参数,生成用于指示所述第一交互的第一交互信息;以及网络模块,被配置为向第二设备发送所述第一交互信息,以使所述第二设备基于所述第一交互信息和所述第二设备的第二相机的第二相机参数在第二界面上呈现与所述第一交互对应的第二图形对象,所述第二界面至少还呈现由所述第二相机所捕获的第二图像。
- 根据权利要求12所述的电子设备,其中,所述第一交互经由所述电子设备的屏幕被接收,并且所述交互模块还被配置为:获取与所述第一交互对应的屏幕坐标;基于所述屏幕坐标和所述第一相机参数,确定所述第一图形对象的呈现位置;以及基于所述呈现位置,在所述第一界面上呈现所述第一图形对象。
- 根据权利要求12所述的电子设备,其中:所述网络模块还被配置为从所述第二设备接收第二交互信息,所述第二交互信息由所述第二设备基于所述第二相机参数和所述第二界面上的第二交互所生成;并且所述交互模块还被配置为基于所述第二交互信息和所述第一相机参数,在所述第一界面中呈现与所述第二交互对应的第三图形对象。
- 根据权利要求12所述的电子设备,其中,所述第一交互信息包括:所述第一相机的位置信息;以及所述第一相机的朝向信息。
- 根据权利要求15所述的电子设备,其中,所述第一交互信息不包括与所述第一交互对应的屏幕坐标信息。
- 根据权利要求12所述的电子设备,其中:所述网络模块还被配置为创建会话,向所述第二设备发送加入所述会话的会话邀请;并且所述交互模块还被配置为响应于接收到所述第二设备针对所述会话邀请的确认,生成与所述会话对应的所述第一界面。
- 根据权利要求17所述的电子设备,其中,所述会话邀请包括由所述电子设备所生成的加密链接。
- 根据权利要求17所述的电子设备,其中,所述交互模块和所述网络模块由轻量级插件模块来实现。
- 根据权利要求19所述的电子设备,其中,所述轻量级插件模块还包括事件管理器,所述事件管理器包括:事件生成器,被配置为响应于由第一引擎执行的、与所述会话相关联的第一操作,生成与所述第一操作对应的事件消息,其中,所述事件消息包括与所述第一操作对应的事件标识;以及事件监听器,被配置为监听由所述事件生成器所生成的所述事件消息,以触发第二引擎执行与所述第一操作对应的第二操作,其中,所述第一引擎和所述第二引擎被配置为分别实现与所述会话相关联的不同功能。
- 根据权利要求19所述的电子设备,其中,所述网络模块还被配置为:获取与所述会话相关联的通信数据;以及将所述通信数据封装为数据包,其中所述数据包包括类型信息,所述类型信息用于指示经封装的所述通信数据的类型。
- 根据权利要求21所述的电子设备,其中,所述类型信息包括以下中的至少一项:第一类型信息,指示所述通信数据包括用于保持会话连接的网络数 据;第二类型信息,指示所述通信数据包括参与所述会话的用户的标识数据;第三类型信息,指示所述通信数据包括所述会话的控制数据;第四类型信息,指示所述通信数据包括所述会话的快照数据;第五类型信息,指示所述通信数据包括与时间数据相关联;或第六类型信息,指示所述通信数据包括所述会话中生成的交互数据。
- 一种电子设备,包括:存储器;以及处理器;其中,所述存储器用于存储一条或多条计算机指令,其中所述一条或多条计算机指令被所述处理器执行以使得所述电子设备实现根据权利要求1至11中任一项所述的方法。
- 一种计算机可读存储介质,其上存储有一条或多条计算机指令,其中,所述一条或多条计算机指令被处理器执行以实现根据权利要求1至11中任一项所述的方法。
- 一种计算机程序产品,包括一条或多条计算机指令,其中所述一条或多条计算机指令被处理器执行以实现根据权利要求1至11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18/567,602 US20240272761A1 (en) | 2021-08-04 | 2022-07-27 | Interaction method, electronic device, storage medium and program product |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110899083.2 | 2021-08-04 | ||
CN202110899083.2A CN115705116A (zh) | 2021-08-04 | 2021-08-04 | 交互方法、电子设备、存储介质和程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023011296A1 true WO2023011296A1 (zh) | 2023-02-09 |
Family
ID=85155231
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2022/108408 WO2023011296A1 (zh) | 2021-08-04 | 2022-07-27 | 交互方法、电子设备、存储介质和程序产品 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240272761A1 (zh) |
CN (1) | CN115705116A (zh) |
WO (1) | WO2023011296A1 (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105843396A (zh) * | 2010-03-05 | 2016-08-10 | 索尼电脑娱乐美国公司 | 在共享的稳定虚拟空间上维持多视图 |
WO2016173326A1 (zh) * | 2015-04-30 | 2016-11-03 | 北京贝虎机器人技术有限公司 | 基于主题的交互系统及方法 |
CN108170277A (zh) * | 2018-01-08 | 2018-06-15 | 杭州赛鲁班网络科技有限公司 | 一种智能可视化交互的装置和方法 |
CN110851095A (zh) * | 2018-08-21 | 2020-02-28 | 迪士尼企业公司 | 虚拟和增强现实中的多屏幕交互 |
CN112583822A (zh) * | 2020-12-09 | 2021-03-30 | 海信视像科技股份有限公司 | 通信设备及通信方法 |
CN112684995A (zh) * | 2020-12-25 | 2021-04-20 | 科大讯飞股份有限公司 | 跨屏输入方法及装置 |
-
2021
- 2021-08-04 CN CN202110899083.2A patent/CN115705116A/zh active Pending
-
2022
- 2022-07-27 US US18/567,602 patent/US20240272761A1/en active Pending
- 2022-07-27 WO PCT/CN2022/108408 patent/WO2023011296A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105843396A (zh) * | 2010-03-05 | 2016-08-10 | 索尼电脑娱乐美国公司 | 在共享的稳定虚拟空间上维持多视图 |
WO2016173326A1 (zh) * | 2015-04-30 | 2016-11-03 | 北京贝虎机器人技术有限公司 | 基于主题的交互系统及方法 |
CN108170277A (zh) * | 2018-01-08 | 2018-06-15 | 杭州赛鲁班网络科技有限公司 | 一种智能可视化交互的装置和方法 |
CN110851095A (zh) * | 2018-08-21 | 2020-02-28 | 迪士尼企业公司 | 虚拟和增强现实中的多屏幕交互 |
CN112583822A (zh) * | 2020-12-09 | 2021-03-30 | 海信视像科技股份有限公司 | 通信设备及通信方法 |
CN112684995A (zh) * | 2020-12-25 | 2021-04-20 | 科大讯飞股份有限公司 | 跨屏输入方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN115705116A (zh) | 2023-02-17 |
US20240272761A1 (en) | 2024-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11936733B2 (en) | Application sharing | |
JP3694167B2 (ja) | パーソナル会議方法及びシステム | |
US8850319B2 (en) | Method and system to process video effects | |
KR20210135683A (ko) | 인터넷 전화 기반 통화 중 리액션을 표시하는 방법, 시스템, 및 컴퓨터 프로그램 | |
JP6313037B2 (ja) | クラウドコンピューティングシステムによってサービス提供されるコンピュータアプリケーションのミニアプリケーション生成および実行のための方法およびシステム | |
KR20120050980A (ko) | 실시간 네트워크 통신을 위한 공간 인터페이스 | |
WO2019114328A1 (zh) | 一种基于增强现实的视频处理方法及其装置 | |
JP6861287B2 (ja) | 映像のための効果共有方法およびシステム | |
EP2579588B1 (en) | Collaborative meeting systems that enable parallel multi-user input to mark up screens | |
US12086378B2 (en) | Moving a digital representation of a video conference participant to a new location in a virtual environment | |
US12022234B2 (en) | Multi-user interaction slates for improved video conferencing | |
WO2023093698A1 (zh) | 游戏直播的交互方法、存储介质、程序产品及电子设备 | |
WO2024099340A1 (zh) | 基于虚拟形象的交互方法、装置、设备及存储介质 | |
WO2024055845A1 (zh) | 渲染任务处理方法、装置、设备和介质 | |
WO2023011296A1 (zh) | 交互方法、电子设备、存储介质和程序产品 | |
CN115510348A (zh) | 用于内容呈现的方法、装置、设备和存储介质 | |
JP2024530183A (ja) | ビデオエフェクトをレンダリングするための共有拡張現実セッション | |
JP4080295B2 (ja) | 仮想空間における複数メディア表示方法、仮想空間における複数メディア表示端末装置、仮想空間管理サーバ装置、仮想空間における複数メディア表示プログラム及びこのプログラムを記録した記録媒体 | |
CN115941876A (zh) | 音视频会议实现方法、装置、存储介质及计算机设备 | |
TWI652582B (zh) | 以虛擬實境/擴增實境為基礎並結合即時通訊服務的檔案分享系統及方法 | |
KR101983837B1 (ko) | 사용자 피드백이 가능한 봇을 기반으로 영상을 제작하는 방법과 시스템 및 비-일시적인 컴퓨터 판독가능한 기록 매체 | |
WO2023142601A1 (zh) | 一种基于区块链的数据处理方法、设备以及可读存储介质 | |
WO2022189795A1 (en) | Communication platform | |
KR20230032488A (ko) | 아바타 회전을 위한 인터페이스 제공 방법, 장치, 및 컴퓨터 프로그램 | |
CN118698132A (zh) | 用于管理虚拟场景中权限的方法、装置、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22852010 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 18567602 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 16.05.2024) |