WO2021018214A1 - 虚拟对象处理方法及装置、存储介质和电子设备 - Google Patents
虚拟对象处理方法及装置、存储介质和电子设备 Download PDFInfo
- Publication number
- WO2021018214A1 WO2021018214A1 PCT/CN2020/105578 CN2020105578W WO2021018214A1 WO 2021018214 A1 WO2021018214 A1 WO 2021018214A1 CN 2020105578 W CN2020105578 W CN 2020105578W WO 2021018214 A1 WO2021018214 A1 WO 2021018214A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- virtual object
- frame
- scene
- location
- information
- Prior art date
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 40
- 238000012545 processing Methods 0.000 claims abstract description 43
- 230000004044 response Effects 0.000 claims abstract description 11
- 238000001514 detection method Methods 0.000 claims description 16
- 238000010801 machine learning Methods 0.000 claims description 14
- 230000002452 interceptive effect Effects 0.000 claims description 13
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 abstract description 9
- 230000003190 augmentative effect Effects 0.000 abstract description 3
- 238000000034 method Methods 0.000 description 40
- 230000008569 process Effects 0.000 description 19
- 230000003993 interaction Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 239000003999 initiator Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 239000010985 leather Substances 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- 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
- G06F3/0482—Interaction with lists of selectable items, e.g. menus
-
- 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/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04842—Selection of displayed objects or displayed text elements
-
- 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/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04845—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
-
- 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/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2004—Aligning objects, relative positioning of parts
Definitions
- the present disclosure relates to the field of augmented reality technology, and in particular to a virtual object processing method, virtual object processing device, storage medium, and electronic equipment.
- Augmented Reality is a technology that integrates the virtual world and the real world. It has been applied to many fields such as education, games, medical care, Internet of Things, and intelligent manufacturing. With the continuous improvement of the performance of mobile devices and the rapid development of AR technology, the realization of AR applications on mobile devices has a broad market prospect. In particular, the use of multi-person AR technology can realize AR interaction between multiple users.
- the current multi-person AR technology requires multiple users to be in the same environment or use the same visual information as the basis for interaction, which limits the scope of application of AR technology; on the other hand, it requires manual labeling devices or auxiliary equipment. , The cost is high and it affects the convenience of AR interaction.
- the purpose of the present disclosure is to provide a virtual object processing method, virtual object processing device, storage medium, and electronic equipment, thereby at least to some extent overcome the problem of limiting the scope of application of multi-person AR due to the need for the same environment.
- a virtual object processing method including: detecting a spatial plane in a scene where a first device is located; detecting real objects in the scene to determine multiple real object position frames; The matching relationship between the real object position frame and the space plane in the scene, the candidate position frame set is determined from multiple real object position frames; in response to the virtual object configuration operation for a target position frame in the candidate position frame set, the virtual The position information of the object in the target position frame; the information of the virtual object and the position information of the virtual object in the target position frame are sent to the second device, so as to display the virtual object on the second device.
- a virtual object processing method including: detecting the spatial plane in the scene where the second device is located; detecting real objects in the scene to determine multiple real object position frames; The matching relationship between a real object position box and the space plane in the scene, a set of candidate position boxes is determined from multiple real object position boxes; the information of the virtual object sent by the first device and the virtual object’s location on the first device
- determine the virtual object placement frame from the candidate position frame set; determine the virtual object in the virtual object based on the position information of the virtual object in the target location frame of the first device Place the position information in the frame to display the virtual object on the second device.
- a virtual object processing apparatus including: a first plane detection module configured to detect a spatial plane in a scene where the first device is located; and a first position frame determination module configured to Detect real objects in the scene to determine multiple real object position frames; the first position frame set determining module is configured to determine from multiple real object position frames based on the matching relationship between the multiple real object position frames and the space plane in the scene
- the candidate position frame set is determined in the real object position frame; the object position determination module is configured to respond to a virtual object configuration operation for a target position frame in the candidate position frame set to determine the position information of the virtual object in the target position frame;
- information The sending module is configured to send the information of the virtual object and the location information of the virtual object in the target location frame to the second device, so as to display the virtual object on the second device.
- a virtual object processing apparatus including: a second plane detection module configured to detect a spatial plane in a scene where the second device is located; and a second position frame determination module configured to Detect real objects in the scene to determine multiple real object position frames; the second position frame set determination module is configured to determine from multiple real object position frames based on the matching relationship between the multiple real object position frames and the space plane in the scene A set of candidate location frames is determined in the real object location frame; an information acquisition module configured to acquire information about the virtual object sent by the first device and location information of the virtual object in the target location frame of the first device; a placement frame determination module , Is configured to respond to a virtual object configuration operation to determine the virtual object placement frame from the candidate location frame set; the position conversion module is configured to determine the virtual object in the target location frame based on the location information of the virtual object in the target location frame of the first device The position information of the virtual object placement frame to display the virtual object on the second device.
- a storage medium on which a computer program is stored, and when the computer program is executed by a processor, the virtual object processing method of any one of the above aspects is realized.
- an electronic device including: a processor; and a memory configured to store executable instructions of the processor; wherein the processor is configured to execute any of the foregoing by executing the executable instructions.
- a processor including: a processor; and a memory configured to store executable instructions of the processor; wherein the processor is configured to execute any of the foregoing by executing the executable instructions.
- FIG. 1 schematically shows a flowchart of a virtual object processing method according to an exemplary embodiment of the present disclosure
- FIG. 2 schematically shows a flowchart of a virtual object processing method according to another exemplary embodiment of the present disclosure
- FIG. 3 shows a schematic diagram of the second device determining the position of the virtual object in the virtual object placement frame
- FIG. 4 schematically shows a flowchart of AR data processing performed by the first device and the second device
- Fig. 5 schematically shows a block diagram of a virtual object processing apparatus according to an exemplary embodiment of the present disclosure
- Fig. 6 schematically shows a block diagram of a virtual object processing apparatus according to another exemplary embodiment of the present disclosure
- Fig. 7 schematically shows a block diagram of a virtual object processing apparatus according to still another exemplary embodiment of the present disclosure
- FIG. 8 schematically shows a block diagram of an electronic device according to an exemplary embodiment of the present disclosure.
- the virtual object processing method of the exemplary embodiment of the present disclosure may be applied in a remote multi-person AR interactive scene.
- Multiple users located in different locations can use the data collected by electronic devices to reconstruct the scene environment and detect the plane area based on SLAM (Simultaneous Localization And Mapping) technology.
- SLAM Simultaneous Localization And Mapping
- a user can place a virtual object in an area that belongs to a plane, and send the location information of the virtual object to electronic devices used by other users.
- the electronic device used by other users can select the area where the virtual object is placed in the respective scene, and determine the location of the virtual object in the placement area according to the corresponding position of the received virtual object.
- the process of the virtual object processing method described in the present disclosure does not require that each user must be in the same scene, and does not require a manual identification device for AR interaction.
- the terminal devices that execute the virtual object processing method such as the first device, the second device, and the electronic device described in the present disclosure may include, but are not limited to, mobile phones, tablet computers, smart wearable devices, etc.
- the virtual object processing process described below can be integrated into an APP application, and when the user starts the APP application, the display and interaction process of the virtual object can be realized.
- Fig. 1 schematically shows a flowchart of a virtual object processing method according to an exemplary embodiment of the present disclosure.
- the method shown in FIG. 1 can be implemented by a first device, where the first device is the device that initially configures the virtual object, that is, after the first device configures the virtual object, the virtual object and its location are sent to other devices,
- the second device may be a device that receives virtual object information.
- the first device may be the initiator of multi-person AR interaction. It is easy to understand that in other instances, the second device may also be the initiator of multi-person AR interaction. That is, for an electronic device, it can be a device that initially configures a virtual object or a device that receives virtual object information, or it can be a device that initially configures a virtual object and a device that receives information about another virtual object.
- the virtual object processing method may include the following steps:
- the first device may collect multiple video frame images for a scene, and inertial information corresponding to the images.
- the video frame image may be the visual information collected by the camera of the first device
- the inertial information may be obtained by means of the IMU (Inertial Measurement Unit) device of the first device.
- the IMU device may include a gyroscope and an accelerometer. , Can measure the angular velocity and acceleration of the terminal device separately. Since the operating frequency of the IMU device is usually higher than the frequency at which the camera collects images, the IMU pre-integration method can be used to evaluate the inertial information of the corresponding frame.
- the IMU pre-integration is a time-based integration, and inertial information such as the position, speed, and rotation angle of the corresponding two images can be obtained.
- VI-SLAM Vehicle-Inertial SLAM
- a feature point cloud composed of feature points can be obtained.
- the purpose of constructing a feature point cloud in the present disclosure is mainly for plane detection, in addition, based on the processing capability of an electronic device such as a mobile phone, in order to facilitate calculation and fast processing, the feature point cloud in the present disclosure is usually a sparse feature point cloud.
- semi-dense feature point clouds and dense feature point clouds can also be used as feature point clouds constructed in the present disclosure.
- the constructed feature point cloud can be used to detect the spatial plane in the scene.
- the feature point cloud can be divided into triangles, the normal vector of each triangle can be determined, and each normal vector can be clustered, and the spatial plane in the scene can be determined according to the clustering result.
- the 3D Hough plane detection algorithm may be used to detect the feature point cloud to determine the spatial plane in the scene where the first device is located. The specific process of detecting the spatial plane is not specifically limited in this exemplary embodiment.
- the number of detected spatial planes can be one or more, which is related to the specific scene.
- the space plane can be represented by a normal vector or a coordinate point in the plane.
- the current frame image taken by the first device can be acquired as the target frame image.
- the target frame image can be input into the trained machine learning model, and the trained machine learning model can be used to determine multiple real object position frames.
- the machine learning model used in the present disclosure is a deep learning model for target detection.
- the model may be a MobileNet model.
- the present disclosure does not impose special restrictions on the network structure and training process of the model.
- those skilled in the art can determine that other models can also be used to achieve target detection.
- some convolutional neural networks that output multiple classification results can be used as the machine learning model described in the present disclosure.
- the solutions of applying this processing means to the virtual object processing method of the present disclosure all belong to the concept of the present disclosure.
- the position frame described in the present disclosure is usually a rectangular frame.
- the determined position frame can be regarded as a 2D rectangular bounding box (2D box).
- the position frame may also include other shapes, such as triangles, circles, other polygons, etc., which are not particularly limited in this exemplary embodiment.
- the real object position frame mentioned in the present disclosure refers to a position frame containing a real object.
- the real object may be a flat and real object in the scene, such as a table, a coffee table, a TV, a chair, and so on.
- step S106 the matching relationship between the multiple real object position frames and the spatial plane in the scene can be determined.
- the characteristic position points may be position points (or called coordinate points) corresponding to the four corners of the rectangular frame. It is easy to understand that for a triangular frame, the position points corresponding to the three corners may be the characteristic position points described herein.
- multiple feature location points can be converted to the coordinate system of the feature point cloud. Since the real object location frame is a two-dimensional frame, it is necessary to map the two-dimensional coordinates of multiple feature location points to the three-dimensional coordinate system of the feature point cloud to determine the coordinate points in the coordinate system of the feature point cloud.
- the normal direction of the multiple feature location points of the real object location frame is determined. Specifically, determine the plane of the real object position frame in the three-dimensional coordinate system of the feature point cloud, and determine the direction perpendicular to the plane as the normal direction of the real object position frame.
- the normal direction can be The normal direction of multiple feature position points as the real object position frame.
- the real object position frame is determined as the candidate position frame, and the real object position frame is added to the candidate position frame set. At this time, it can be determined that the real object position frame matches the spatial plane.
- the determined candidate position frame set contains multiple candidate position frames. However, in some other embodiments of the present disclosure, there are cases where only one candidate position box is included in the candidate position box set.
- the virtual object described in the present disclosure may be an object used for AR interaction.
- the virtual object is related to a specific AR scene.
- it may be a leather ball, a chess piece of a board game, a presentation interface, a cartoon character, etc. There are no specific restrictions on the type.
- the candidate position frame in the candidate position frame set may be displayed on the screen of the device for the user to select.
- the candidate position box in the candidate position box set may not be displayed.
- the user can judge the possible position of the virtual object according to his own vision. In this case, if the position judged by the user is different from the determined candidate position Only when the positions of the candidate position frames in the frame set are the same, the first device can respond.
- the user can perform virtual object configuration operations on a target location frame in the candidate location frame set. For example, the user can click on a candidate location box. In addition, when there are multiple candidate virtual objects, the user can select a virtual object for configuration.
- the candidate position box is the target position box.
- the position of the touch point when the user clicks the target position frame may be determined as the position of the virtual object in the target position frame.
- the user click operation described in the present disclosure may include short-press, long-press and other operations.
- the position information of the virtual object in the target position frame may be characterized by the center coordinate point of the virtual object, for example. After determining the location information of the virtual object in the target location frame, based on the location information, determine the three-dimensional location information of the virtual object in the scene (feature point cloud), and display the virtual object on the first device according to the three-dimensional location information.
- feature point cloud three-dimensional location information of the virtual object in the scene
- the first device may send the information of the virtual object and the location information of the virtual object in the target location frame to the second device.
- the information of the virtual object may be information that uniquely identifies the virtual object, or may be information that describes the virtual object.
- the second device can uniquely and indiscriminately determine the virtual object based on the information of the virtual object, so as to display the virtual object.
- the display position of the virtual object is related to the position information of the virtual object in the target position frame of the first device, that is, the position information of the virtual object in the target position frame of the first device can be combined with the first device.
- the operation of the user on the second device side determines the position of the virtual object in the second device.
- the first device can also send the information of the virtual object and the location information of the virtual object in the target location frame to other devices except the second device, so as to realize AR between two or more devices. Interactive.
- the virtual object processing method of the second device will be described below.
- FIG. 2 schematically shows a flowchart of a virtual object processing method according to another exemplary embodiment of the present disclosure. Wherein, the method shown in FIG. 2 can be implemented by the second device.
- the virtual object processing method corresponding to the second device may include the following steps:
- step S102 The specific process is similar to the process of step S102, and will not be repeated here.
- the current frame image taken by the second device can be acquired as the target frame image, the target frame image is input into the trained machine learning model, and the trained machine learning model is used to determine multiple real object position frames.
- step S104 The specific process is similar to the process of step S104, and will not be repeated here.
- any real object position frame in the multiple real object position frames determine multiple feature location points of the real object location frame; next, determine the multiple feature location points in the feature point cloud of the second device scene The coordinate point and normal direction in the coordinate system. The coordinate points of multiple feature location points in the coordinate system of the feature point cloud of the second device scene. If the projections along the normal direction are all on the same spatial plane, the real object location frame is determined as the candidate location frame, and the real The object position frame is added to the set of candidate position frames.
- step S106 The specific process is similar to the process of step S106, and will not be repeated here.
- the second device may obtain the virtual object information sent by the first device and the location information of the virtual object in the target location frame of the first device.
- the user of the second device can determine a position frame from the candidate position frame set as the virtual object placement frame. Similarly, the candidate position boxes in the candidate position box set can be displayed on the second device for the user to select.
- the method of the present disclosure may also perform step S210 first, and then perform step S208.
- the size ratio of the target position frame to the virtual object position frame may be determined. For example, if the size of the target location frame sent by the first device is 10*10, and the size of the virtual object location frame in the second device is 5*5, the size ratio is 2:1.
- the second device may scale the position information of the virtual object in the target position frame of the first device according to the size ratio, and determine the result of the scaling process as the position of the virtual object in the virtual object placement frame information.
- the position of the virtual object in the virtual object position frame can be determined according to the equal scaling process of the two-dimensional coordinate system. Taking a rectangular frame as an example, any one of the four corners can be used as a coordinate origin to construct a rectangular coordinate system, so that the rectangular coordinate system can be used to determine the specific position of the virtual object in the virtual object position frame.
- the zoom processing is only for position information, and the size of the virtual object usually does not change.
- the first device 31 may determine multiple candidate position frames. As shown in the figure, each candidate position frame is a rectangular frame. The user of the first device 31 determines the target location frame 311, and the location of the virtual object in the first device 31 is the location 310. The first device 31 sends the location information of the location 310 in the target location box 311 to the second device 32.
- the user of the second device 32 selects the virtual object placement frame 321 from the multiple candidate position boxes, corresponding to the location information of the location 310 in the target location frame 311, and can place the virtual object at the position 320 of the virtual object placement frame 321 .
- the position of the position 310 in the target position frame 311 is consistent with the position of the position 320 in the virtual object placement frame 321.
- the second device After determining the position information of the virtual object in the virtual object placement frame, the second device can determine the three-dimensional position information of the virtual object in the scene where the second device is located based on the position information, and according to the three-dimensional position of the virtual object in the scene The location information displays the virtual object on the second device.
- the second device after the second device displays the virtual object, it can respond to the interactive operation of the user of the second device with respect to the virtual object, and send the interactive operation data to the first device.
- the first device may display the image corresponding to the interactive operation.
- the user of the second device can use AR interaction means (for example, by means of gestures) to rotate the virtual object, and on the first device, the virtual object will have a rotating effect.
- the collected visual information and inertial information can be used to construct a sparse feature point cloud; in step S404, the spatial plane in the scene can be detected based on the constructed sparse feature point cloud; in step S406 In step S408, a set of candidate position boxes is determined based on the matching relationship between the plurality of real object position boxes and the spatial plane in the scene; in step S410, a response The operation of the user of the first device determines the location of the virtual object, and sends the virtual object information and the location information of the virtual object in the location frame to the second device.
- step S412 to step S418 is similar to step S402 to step S408, and will not be repeated here.
- step S420 based on the position information of the virtual object of the first device in the position frame and the user operation of the second device, determine the display position of the virtual object in the second device, and display the virtual object; in step S422, The user of the second device can operate the virtual object and send the operation data to the first device.
- the first device may display the operation process of the user of the second device with respect to the virtual object, and may further respond to the operation of the user of the first device to implement AR interaction between the first device and the second device.
- AR interaction can be realized between devices in different environments, which eliminates the limitation brought by the scene and improves the performance of multi-person AR technology. Scope of application; on the other hand, because the scene is not required to be the same, it can realize remote or remote multi-person AR interaction; on the other hand, the method of the present disclosure can be directly implemented by a mobile device without the need for specially configured annotations for realizing the AR process Devices, auxiliary equipment, etc., reduce costs; on the other hand, the first device and the second device have similar processing procedures in determining the set of candidate location frames. Algorithms can be configured in advance and adapted to various mobile devices to achieve AR interaction process between two or more devices.
- this exemplary embodiment also provides a virtual object processing device.
- Fig. 5 schematically shows a block diagram of a virtual object processing apparatus according to an exemplary embodiment of the present disclosure.
- the virtual object processing apparatus 5 may include a first plane detection module 501, a first position frame determination module 503, a first position frame set determination module 505, an object position determination module 507, and Information sending module 509.
- the first plane detection module 501 may be configured to detect the spatial plane in the scene where the first device is located; the first position frame determination module 503 may be configured to detect real objects in the scene to determine multiple real objects Position frame; the first position frame set determining module 505 can be configured to determine a candidate position frame set from the multiple real object position frames based on the matching relationship between the multiple real object position frames and the spatial plane in the scene; The position determining module 507 may be configured to determine the position information of the virtual object in the target position frame in response to a virtual object configuration operation for a target position frame in the candidate position frame set; the information sending module 509 may be configured to transfer information about the virtual object And the location information of the virtual object in the target location frame is sent to the second device, so that the virtual object is displayed on the second device.
- the first plane detection module 501 may be configured to execute: extract feature points of the scene according to multiple video frame images collected by the first device and corresponding inertial information; construct based on the extracted feature points Feature point cloud: Use the feature point cloud to detect the spatial plane in the scene where the first device is located.
- the first position frame determination module 503 may be configured to execute: determine a target frame image, input the target frame image into the trained machine learning model, and use the trained machine learning model to determine A real object position box.
- the first position frame set determination module 505 may be configured to execute: for any real object position frame in the multiple real object position frames, determine multiple characteristic positions of the real object position frame Point; determine the coordinate points and the normal direction of the multiple feature location points in the coordinate system of the feature point cloud; for the coordinate points of the multiple feature location points in the coordinate system of the feature point cloud, if along the normal When the projections of the directions are all on the same spatial plane, the real object position frame is determined as a candidate position frame, and the real object position frame is added to the candidate position frame set.
- the object position determining module 507 may be further configured to execute: after determining the position information of the virtual object in the target position frame, determine the virtual object based on the position information of the virtual object in the target position frame The three-dimensional position information in the scene; the virtual object is displayed on the first device according to the three-dimensional position information of the virtual object in the scene.
- Fig. 6 schematically shows a block diagram of a virtual object processing apparatus according to another exemplary embodiment of the present disclosure.
- the virtual object processing apparatus 6 may include a second plane detection module 601, a second position frame determination module 603, a second position frame set determination module 605, and an information acquisition module 607 , Place the frame determination module 609 and the position conversion module 611.
- the second plane detection module 601 may be configured to detect the spatial plane in the scene where the second device is located; the second position frame determination module 603 may be configured to detect real objects in the scene to determine multiple real objects Position frame; the second position frame set determining module 605 may be configured to determine a candidate position frame set from the multiple real object position frames based on the matching relationship between the multiple real object position frames and the spatial plane in the scene; information The obtaining module 607 may be configured to obtain the information of the virtual object sent by the first device and the position information of the virtual object in the target location frame of the first device; the placement frame determining module 609 may be configured to respond to a virtual object configuration operation, Determine the virtual object placement frame from the candidate position frame set; the position conversion module 611 may be configured to determine the location information of the virtual object in the virtual object placement frame based on the location information of the virtual object in the target location frame of the first device, so that The virtual object is displayed on the second device.
- the second plane detection module 601 may be configured to execute: extract feature points of the scene according to multiple video frame images collected by the second device and corresponding inertial information; construct based on the extracted feature points Feature point cloud: Use the feature point cloud to detect the spatial plane in the scene where the second device is located.
- the second position frame determination module 603 may be configured to execute: determine a target frame image, input the target frame image into the trained machine learning model, and use the trained machine learning model to determine A real object position box.
- the second position frame set determination module 605 may be configured to execute: for any real object position frame in the multiple real object position frames, determine multiple characteristic positions of the real object position frame Point; determine the coordinate points and the normal direction of the multiple feature location points in the coordinate system of the feature point cloud; for the coordinate points of the multiple feature location points in the coordinate system of the feature point cloud, if along the normal When the projections of the directions are all on the same spatial plane, the real object position frame is determined as a candidate position frame, and the real object position frame is added to the candidate position frame set.
- the position conversion module 611 may be configured to perform: determine the size ratio of the target position frame to the virtual object position frame: compare the size of the virtual object in the target position frame of the first device according to the size ratio.
- the position information is zoomed, and the result of the zooming process is determined as the position information of the virtual object in the virtual object placement frame.
- the position conversion module 611 may also be configured to execute: determine the three-dimensional position information of the virtual object in the scene based on the position information of the virtual object in the virtual object placement frame; The three-dimensional position information of the virtual object is displayed on the second device.
- the virtual object processing device 7 may further include an interactive processing module 701.
- the interactive processing module 701 may be configured to, after displaying the virtual object on the second device, respond to the interactive operation on the virtual object, and send the interactive operation data to the first device so as to display and interact on the first device.
- the corresponding image may be configured to, after displaying the virtual object on the second device, respond to the interactive operation on the virtual object, and send the interactive operation data to the first device so as to display and interact on the first device. The corresponding image.
- a computer-readable storage medium on which is stored a program product capable of implementing the above method of this specification.
- various aspects of the present disclosure may also be implemented in the form of a program product, which includes program code.
- the program product runs on a terminal device, the program code is used to enable the The terminal device executes the steps according to various exemplary embodiments of the present disclosure described in the above "Exemplary Method" section of this specification.
- the program product for implementing the above method according to the embodiment of the present disclosure may adopt a portable compact disk read-only memory (CD-ROM) and include program code, and may run on a terminal device, such as a personal computer.
- CD-ROM portable compact disk read-only memory
- the program product of the present disclosure is not limited thereto.
- the readable storage medium can be any tangible medium that contains or stores a program, and the program can be used by or in combination with an instruction execution system, device, or device.
- the program product can use any combination of one or more readable media.
- the readable medium may be a readable signal medium or a readable storage medium.
- the readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or device, or any combination of the above. More specific examples (non-exhaustive list) of readable storage media include: electrical connections with one or more wires, portable disks, hard disks, random access memory (RAM), read only memory (ROM), erasable Type programmable read only memory (EPROM or flash memory), optical disk, portable compact disk read only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination of the above.
- the computer-readable signal medium may include a data signal propagated in baseband or as a part of a carrier wave, and readable program code is carried therein. This propagated data signal can take many forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the foregoing.
- the readable signal medium may also be any readable medium other than a readable storage medium, and the readable medium may send, propagate, or transmit a program for use by or in combination with the instruction execution system, apparatus, or device.
- the program code contained on the readable medium can be transmitted by any suitable medium, including but not limited to wireless, wired, optical cable, RF, etc., or any suitable combination of the foregoing.
- the program code used to perform the operations of the present disclosure can be written in any combination of one or more programming languages.
- the programming languages include object-oriented programming languages—such as Java, C++, etc., as well as conventional procedural styles. Programming language-such as "C" language or similar programming language.
- the program code can be executed entirely on the user's computing device, partly on the user's device, executed as an independent software package, partly on the user's computing device and partly executed on the remote computing device, or entirely on the remote computing device or server Executed on.
- the remote computing device can be connected to a user computing device through any kind of network, including a local area network (LAN) or a wide area network (WAN), or can be connected to an external computing device (for example, using Internet service providers) Business to connect via the Internet).
- LAN local area network
- WAN wide area network
- Internet service providers Internet service providers
- an electronic device capable of implementing the above method is also provided.
- the electronic device 800 according to this embodiment of the present disclosure will be described below with reference to FIG. 8.
- the electronic device 800 shown in FIG. 8 is only an example, and should not bring any limitation to the function and scope of use of the embodiments of the present disclosure.
- the electronic device 800 is represented in the form of a general-purpose computing device.
- the components of the electronic device 800 may include, but are not limited to: the aforementioned at least one processing unit 810, the aforementioned at least one storage unit 820, a bus 830 connecting different system components (including the storage unit 820 and the processing unit 810), and a display unit 840.
- the storage unit stores program code, and the program code can be executed by the processing unit 810, so that the processing unit 810 executes various exemplary methods described in the "Exemplary Method" section of this specification. Implementation steps.
- the processing unit 810 may perform step S102 to step S110 as shown in FIG. 1 and/or may perform step S202 to step S212 as shown in FIG. 2.
- the storage unit 820 may include a readable medium in the form of a volatile storage unit, such as a random access storage unit (RAM) 8201 and/or a cache storage unit 8202, and may further include a read-only storage unit (ROM) 8203.
- RAM random access storage unit
- ROM read-only storage unit
- the storage unit 820 may also include a program/utility tool 8204 having a set (at least one) program module 8205.
- program module 8205 includes but is not limited to: an operating system, one or more application programs, other program modules, and program data, Each of these examples or some combination may include the implementation of a network environment.
- the bus 830 may represent one or more of several types of bus structures, including a storage unit bus or a storage unit controller, a peripheral bus, a graphics acceleration port, a processing unit, or a local area using any bus structure among multiple bus structures. bus.
- the electronic device 800 can also communicate with one or more external devices 900 (such as keyboards, pointing devices, Bluetooth devices, etc.), and can also communicate with one or more devices that enable a user to interact with the electronic device 800, and/or communicate with Any device (such as a router, modem, etc.) that enables the electronic device 800 to communicate with one or more other computing devices. This communication can be performed through an input/output (I/O) interface 850.
- the electronic device 800 may also communicate with one or more networks (such as a local area network (LAN), a wide area network (WAN), and/or a public network, such as the Internet) through the network adapter 860.
- networks such as a local area network (LAN), a wide area network (WAN), and/or a public network, such as the Internet
- the network adapter 860 communicates with other modules of the electronic device 800 through the bus 830. It should be understood that although not shown in the figure, other hardware and/or software modules can be used in conjunction with the electronic device 800, including but not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives And data backup storage system, etc.
- the exemplary embodiments described herein can be implemented by software, or can be implemented by combining software with necessary hardware. Therefore, the technical solution according to the embodiments of the present disclosure can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (can be a CD-ROM, U disk, mobile hard disk, etc.) or on the network , Including several instructions to make a computing device (which may be a personal computer, a server, a terminal device, or a network device, etc.) execute the method according to the embodiments of the present disclosure.
- a computing device which may be a personal computer, a server, a terminal device, or a network device, etc.
- modules or units of the device for action execution are mentioned in the above detailed description, this division is not mandatory.
- the features and functions of two or more modules or units described above may be embodied in one module or unit.
- the features and functions of a module or unit described above can be further divided into multiple modules or units to be embodied.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Architecture (AREA)
- Processing Or Creating Images (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本公开提供了一种虚拟对象处理方法、虚拟对象处理装置、存储介质和电子设备,涉及增强现实技术领域。该虚拟对象处理方法包括:检测第一设备所处场景中的空间平面;对场景中真实对象进行检测,以确定多个真实对象位置框;基于多个真实对象位置框与场景中的空间平面之间的匹配关系,从多个真实对象位置框中确定出候选位置框集合;响应针对候选位置框集合中一目标位置框的虚拟对象配置操作,确定虚拟对象在目标位置框中的位置信息;将虚拟对象的信息以及虚拟对象在目标位置框中的位置信息发送给第二设备,以便在第二设备上显示虚拟对象。本公开可以提高多人AR技术的适用范围。 (图1)
Description
相关申请的交叉引用
本申请要求于2019年07月30日提交的申请号为201910695983.8、名称为“虚拟对象处理方法及装置、存储介质和电子设备”的中国专利申请的优先权,该中国专利申请的全部内容通过引用全部并入本文。
本公开涉及增强现实技术领域,具体而言,涉及一种虚拟对象处理方法、虚拟对象处理装置、存储介质和电子设备。
增强现实(Augmented Reality,AR)是一种把虚拟世界和现实世界融合的技术,其已应用到教育、游戏、医疗、物联网、智能制造等多个领域。随着移动设备性能的不断提高以及AR技术的快速发展,在移动设备上实现AR应用具有广阔的市场前景,尤其利用多人AR技术,可以实现多用户之间的AR交互。
然而,一方面,目前多人AR技术需要多个用户处于相同的环境,或者以相同的视觉信息作为交互的基础,限制了AR技术的适用范围;另一方面,需要配置人工标注装置或辅助设备,成本较高且影响了AR交互的便利性。
发明内容
本公开的目的在于提供一种虚拟对象处理方法、虚拟对象处理装置、存储介质和电子设备,进而至少在一定程度上克服由于需要相同环境而限制多人AR适用范围的问题。
根据本公开的第一方面,提供一种虚拟对象处理方法,包括:检测第一设备所处场景中的空间平面;对场景中真实对象进行检测,以确定多个真实对象位置框;基于多个真实对象位置框与场景中的空间平面之间的匹配关系,从多个真实对象位置框中确定出候选位置框集合;响应针对候选位置框集合中一目标位置框的虚拟对象配置操作,确定虚拟对象在目标位置框中的位置信息;将虚拟对象的信息以及虚拟对象在目标位置框中的位置信息发送给第二设备,以便在第二设备上显示虚拟对象。
根据本公开的第二方面,还提供一种虚拟对象处理方法,包括:检测第二设备所处场景中的空间平面;对场景中真实对象进行检测,以确定多个真实对象位置框;基于多个真实对象位置框与场景中的空间平面之间的匹配关系,从多个真实对象位置框中确定出候选位置框集合;获取由第一设备发送的虚拟对象的信息以及虚拟对象在第一设备的目标位置框中的位置信息;响应一虚拟对象配置操作,从候选位置框集合中确定虚拟对象放置框;基于虚拟对象在第一设备的目标位置框中的位置信息,确定虚拟对象在虚拟对象放置框中的位置信息,以便在第二设备上显示虚拟对象。
根据本公开的第三方面,提供了一种虚拟对象处理装置,包括:第一平面检测模块,被配置为检测第一设备所处场景中的空间平面;第一位置框确定模块,被配置为对场景中真实对象进行检测,以确定多个真实对象位置框;第一位置框集合确定模块,被配置为基于多个真实对象位置框与场景中的空间平面之间的匹配关系,从多个真实对象位置框中确定出候选位置框集合;对象位置确定模块,被配置为响应针对候选位置框集合中一目标位置框的虚拟对象配置操作,确定虚拟对象在目标位置框中的位置信息;信息发送模块,被配置为将虚拟对象的信息以及虚拟对象在目标位置框中的位置信息发送给第二设备,以便在第二设备上显示虚拟对象。
根据本公开的第四方面,提供了一种虚拟对象处理装置,包括:第二平面检测模块, 被配置为检测第二设备所处场景中的空间平面;第二位置框确定模块,被配置为对场景中真实对象进行检测,以确定多个真实对象位置框;第二位置框集合确定模块,被配置为基于多个真实对象位置框与场景中的空间平面之间的匹配关系,从多个真实对象位置框中确定出候选位置框集合;信息获取模块,被配置为获取由第一设备发送的虚拟对象的信息以及虚拟对象在第一设备的目标位置框中的位置信息;放置框确定模块,被配置为响应一虚拟对象配置操作,从候选位置框集合中确定虚拟对象放置框;位置转换模块,被配置为基于虚拟对象在第一设备的目标位置框中的位置信息,确定虚拟对象在虚拟对象放置框中的位置信息,以便在第二设备上显示虚拟对象。
根据本公开的第五方面,提供了一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任一方面的虚拟对象处理方法。
根据本公开的第六方面,提供了一种电子设备,包括:处理器;以及存储器,被配置为存储处理器的可执行指令;其中,该处理器配置为经由执行可执行指令来执行上述任一方面的虚拟对象处理方法。
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示意性示出了根据本公开的示例性实施方式的虚拟对象处理方法的流程图;
图2示意性示出了根据本公开的另一示例性实施方式的虚拟对象处理方法的流程图;
图3示出了第二设备确定虚拟对象在虚拟对象放置框中的位置的示意图;
图4示意性示出了第一设备与第二设备进行AR数据处理的流程图;
图5示意性示出了根据本公开的示例性实施方式的虚拟对象处理装置的方框图;
图6示意性示出了根据本公开的另一示例性实施方式的虚拟对象处理装置的方框图;
图7示意性示出了根据本公开的再一示例性实施方式的虚拟对象处理装置的方框图;
图8示意性示出了根据本公开的示例性实施方式的电子设备的方框图。
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的步骤。例如,有的步骤还可以分解,而有的步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。另外,术语“第一”、“第二”仅是为了区分的目的,不应作为本公开内容的限制。
本公开示例性实施方式的虚拟对象处理方法可以应用于异地多人AR的交互场景中。位于不同地点的多个用户,可以利用电子设备采集到的数据,基于SLAM(Simultaneous Localization And Mapping,即时定位与地图构建)技术,重建场景环境,检测平面区域。接下来,一个用户可以在属于平面的区域放置虚拟物体,并将虚拟物体的位置信息发送给其他用户所使用的电子设备。其他用户所使用的电子设备接收到虚拟物体以及虚拟物体的对应位置后,可以在各自场景中选择放置虚拟物体的区域,并根据接收到的虚拟物体的对应位置,各自确定虚拟物体在放置区域的位置,显示虚拟物体,并可以进行后续虚拟物体的交互操作。
本公开所述的虚拟对象处理方法的过程不要求各用户必须处于相同的场景下,并不需要用于AR交互的人工标识装置。
本公开所述的第一设备、第二设备、电子设备等执行虚拟对象处理方法的终端设备,可以包括但不限于手机、平板电脑、智能可穿戴设备等。
另外,可以将下面描述的虚拟对象处理过程集成在一APP应用中,当用户启动该APP应用,即可实现虚拟对象的显示和交互过程。
下面将对本公开的示例性实施方式的虚拟对象处理方法进行详细地说明。
图1示意性示出了本公开的示例性实施方式的虚拟对象处理方法的流程图。图1所示的方法可以由第一设备实现,其中,第一设备是初始配置虚拟对象的设备,也就是说,在第一设备配置虚拟对象后,将虚拟对象和其位置发送给其他设备,对应的,第二设备可以是接收虚拟对象信息的设备。在一些场景下,第一设备可以是多人AR交互的发起端。容易理解的是,在另一些实例中,第二设备也可以是多人AR交互的发起端。也就是说,对于一个电子设备,其可以是初始配置虚拟对象的设备或接收虚拟对象信息的设备,还可以既是初始配置一虚拟对象的设备又是接收另一虚拟对象信息的设备。
参考图1,所述虚拟对象处理方法可以包括以下步骤:
S102.检测第一设备所处场景中的空间平面。
在本公开的示例性实施方式中,首先,第一设备可以针对场景采集多个视频帧图像,以及与图像对应的惯性信息。其中,视频帧图像可以是第一设备的摄像头采集到的视觉信息,而惯性信息可以借助于第一设备的IMU(Inertial Measurement Unit,惯性测量单元)器件获取,IMU器件可以包括陀螺仪和加速度计,可以分别测量终端设备的角速度和加速度。由于IMU器件的工作频率通常比相机采集图像的频率高,可以采用IMU预积分的方式评估对应帧的惯性信息。其中,IMU预积分是基于时间的积分,可以得到对应两个图像的位置、速度与旋转角度等惯性信息。
在这种情况下,可以根据第一设备采集的多个视频帧图像以及对应的惯性信息,并结合VI-SLAM(Visual-Inertial SLAM,视觉惯性SLAM)得到各视频帧图像的位姿以及场景中稀疏或者半稠密特征点的3D(3 Dimensions,三维)位置。
接下来,可以得到由特征点构成的特征点云。考虑到本公开构建特征点云的目的主要是为了平面检测,另外,基于例如手机的电子设备的处理能力,为了方便计算及快速处理,本公开所述特征点云通常是稀疏特征点云。然而,容易理解的是,半稠密特征点云和稠密特征点云也可以作为本公开所构建的特征点云。
随后,可以利用构建的特征点云检测场景中的空间平面。例如,可以对特征点云进行三角面划分,确定出各三角面的法向量,并对各法向量进行聚类,并根据聚类的结果确定出场景中的空间平面。又例如,可以利用3D霍夫平面检测算法对特征点云进行检测,以确定出第一设备所处场景中的空间平面。本示例性实施方式中对检测空间平面的具体过程不做特殊限定。
需要注意的是,检测出的空间平面的数量可以为一个或多个,这与具体场景相关。另外,空间平面可以采用法向量或平面内一个坐标点来表示。
S104.对场景中真实对象进行检测,以确定多个真实对象位置框。
根据本公开的一些实施例,首先,在确定出第一设备所处场景的特征点云的情况下,可以获取第一设备拍摄的当前帧图像,作为目标帧图像。接下来,可以将该目标帧图像输入训练后的机器学习模型中,利用训练后的机器学习模型确定多个真实对象位置框。
一方面,本公开采用的机器学习模型为用于目标检测的深度学习模型,例如,该模型可以是MobileNet模型,本公开对模型的网络结构和训练过程均不做特殊限制。另外,本领域技术人员可以确定出还可以采用其他模型来实现目标检测,例如,一些输出多分类结果的卷积神经网络等均可以作为本公开所述的机器学习模型。然而,将这种处理手段应用于本公开虚拟对象处理方法的方案均属于本公开内容的构思。
另一方面,本公开所述的位置框通常是矩形框,在这种情况下,可以将确定出的位置框认为是2D矩形包围盒(2D box)。然而,位置框还可以包括其他形状,例如,三角形、圆形、其他多边形等,本示例性实施方式中对此不做特殊限定。
另外,本公开所述的真实对象位置框指的是,包含真实对象的位置框。其中,真实对象可以是场景下包括平面且真实存在的物体,如桌子、茶几、电视机、椅子等。
S106.基于多个真实对象位置框与场景中的空间平面之间的匹配关系,从多个真实对象位置框中确定出候选位置框集合。
在步骤S104确定出多个真实对象位置框后,在步骤S106中,可以确定多个真实对象位置框与场景中的空间平面之间的匹配关系。
具体的,针对确定出的每一个真实对象位置框,首先,可以确定真实对象位置框的多个特征位置点。以位置框为矩形为例,特征位置点可以是矩形框的四个角对应的位置点(或称为坐标点)。容易理解的是,对于三角形框,其三个角对应的位置点可以是此处所述的特征位置点。
接下来,可以将多个特征位置点转换到上述特征点云的坐标系下。由于真实对象位置框是二维框,因此,需要将多个特征位置点的二维坐标映射到上述特征点云的三维坐标系下,以确定在特征点云的坐标系下的坐标点。
随后,在特征点云的三维坐标系下,确定真实对象位置框的多个特征位置点的法线方向。具体的,确定真实对象位置框在特征点云三维坐标系下的平面,并将与该平面垂直的方向确定为真实对象位置框的法线方向,在这种情况下,可以将该法线方向作为真实对象位置框的多个特征位置点的法线方向。
然后,在特征点云的三维坐标系下,针对一个真实对象位置框的每一个特征位置点,确定沿法线方向的投影是否均在同一空间平面上。如果均在同一个空间平面上,则将该真实对象位置框确定为候选位置框,并将该真实对象位置框添加至候选位置框集合。此时,可以确定出该真实对象位置框与该空间平面匹配。
此外,如果对应的投影不能满足在同一空间平面上的条件,则可以确定出该真实对象位置框与该空间平面不匹配。
需要注意的是,通常确定出的候选位置框集合中包含多个候选位置框。然而,在本公开另一些实施例中,候选位置框集合中也存在仅包括一个候选位置框的情况。
S108.响应针对候选位置框集合中一目标位置框的虚拟对象配置操作,确定虚拟对象在目标位置框中的位置信息。
本公开所述的虚拟对象可以是用于进行AR交互的对象,该虚拟对象与具体AR场景相关,例如,可以是皮球、棋类游戏的棋子、演示界面、卡通人物等,本公开对虚拟对象的类型不作具体限制。
在本公开的示例性实施方式中,候选位置框集合中的候选位置框可以显示在设备的屏幕上,供用户选择。然而,候选位置框集合中的候选位置框也可以不显示出来,用户可以根据自己的视觉判断出可能的放置虚拟对象的位置,在这种情况下,如果用户判断的位置 与确定出的候选位置框集合中候选位置框的位置相同,则第一设备才可以作出响应。
用户可以针对候选位置框集合中一目标位置框进行虚拟对象配置操作。例如,用户可以点击一个候选位置框。另外,在存在多个备选虚拟对象的情况下,用户可以选择一个虚拟对象进行配置。
容易理解的是,当候选位置框集合中仅存在一个候选位置框时,该候选位置框为目标位置框。
可以将用户点击目标位置框时触摸点的位置确定为虚拟对象在目标位置框中的位置。本领域技术人员可以理解的是,本公开所述的用户点击操作可以包括短按、长按等操作。
此外,可以例如以虚拟对象的中心坐标点来表征虚拟对象在目标位置框中的位置信息。在确定出虚拟对象在目标位置框中的位置信息后,可以基于该位置信息,确定虚拟对象在场景(特征点云)中的三维位置信息,并根据该三维位置信息在第一设备上显示虚拟对象。
S110.将虚拟对象的信息以及虚拟对象在目标位置框中的位置信息发送给第二设备,以便在第二设备上显示虚拟对象。
在本公开的示例性实施方式中,第一设备可以将虚拟对象的信息以及虚拟对象在目标位置框中的位置信息发送给第二设备。其中,虚拟对象的信息可以是唯一标识虚拟对象的信息,或者可以是描述虚拟对象的信息。也就是说,第二设备可以根据虚拟对象的信息唯一且无差别地确定出虚拟对象,以便显示出虚拟对象。
第二设备中,虚拟对象的显示位置与虚拟对象在第一设备的目标位置框中的位置信息相关,也就是说,可以根据虚拟对象在第一设备的目标位置框中的位置信息并结合第二设备端用户的操作,确定出虚拟对象在第二设备中的位置。
此外,应当注意的是,第一设备还可以将虚拟对象的信息以及虚拟对象在目标位置框中的位置信息发送给除第二设备之外的其他设备,以实现两个以上设备之间的AR交互。
下面将对第二设备的虚拟对象处理方法进行说明。
图2示意性示出了本公开的另一示例性实施方式的虚拟对象处理方法的流程图。其中,图2所示的方法可以由第二设备实现。
参考图2,第二设备对应的虚拟对象处理方法可以包括以下步骤:
S202.检测第二设备所处场景中的空间平面。
首先,根据第二设备采集的多个视频帧图像以及对应的惯性信息提取第二设备所处场景的特征点;接下来,基于提取到的特征点构建特征点云;随后,利用特征点云检测第二设备所处场景中的空间平面。
具体过程与步骤S102过程类似,在此不再赘述。
S204.对场景中真实对象进行检测,以确定多个真实对象位置框。
可以获取第二设备拍摄的当前帧图像作为目标帧图像,将目标帧图像输入训练后的机器学习模型中,利用训练后的机器学习模型确定多个真实对象位置框。
具体过程与步骤S104过程类似,在此不再赘述。
S206.基于多个真实对象位置框与场景中的空间平面之间的匹配关系,从多个真实对象位置框中确定出候选位置框集合。
首先,针对多个真实对象位置框中的任意一个真实对象位置框,确定该真实对象位置框的多个特征位置点;接下来,确定多个特征位置点在第二设备场景的特征点云的坐标系下的坐标点以及法线方向。多个特征位置点在第二设备场景的特征点云的坐标系下的坐标点,如果沿法线方向的投影均在同一空间平面上,则确定真实对象位置框为候选位置框,并将真实对象位置框添加至候选位置框集合。
具体过程与步骤S106过程类似,在此不再赘述。
S208.获取由第一设备发送的虚拟对象的信息以及虚拟对象在第一设备的目标位置框中的位置信息。
在第二设备与第一设备进行AR交互的过程中,第二设备可以获取由第一设备发送的虚拟对象的信息以及虚拟对象在第一设备的目标位置框中的位置信息。
S210.响应一虚拟对象配置操作,从候选位置框集合中确定虚拟对象放置框。
第二设备的用户可以从候选位置框集合中确定一个位置框作为虚拟对象放置框。类似地,候选位置框集合中的候选位置框可以显示在第二设备上以便用户进行选择。
另外,本公开的方法还可以先执行步骤S210,后执行步骤S208。
S212.基于虚拟对象在第一设备的目标位置框中的位置信息,确定虚拟对象在虚拟对象放置框中的位置信息,以便在第二设备上显示虚拟对象。
在本公开的示例性实施方式中,首先,可以确定目标位置框与虚拟对象位置框的尺寸比例。例如,第一设备发送的目标位置框的尺寸为10*10,第二设备中虚拟对象位置框的尺寸为5*5,则尺寸比例为2:1。
接下来,第二设备可以按该尺寸比例对虚拟对象在所述第一设备的目标位置框中的位置信息进行缩放处理,并将缩放处理的结果确定为虚拟对象在虚拟对象放置框中的位置信息。也就是说,如果虚拟对象在目标位置框的正中心,则虚拟对象也在虚拟对象位置框的正中心。针对其余情况,可以按照二维坐标系的等比例缩放过程,来确定虚拟对象在虚拟对象位置框中的位置。以矩形框为例,可以将四个角中任意一个作为坐标原点,构建直角坐标系,以便利用该直角坐标系确定虚拟对象在虚拟对象位置框中的具体位置。应当注意的是,缩放处理仅针对的是位置信息,虚拟对象的尺寸通常不发生变化。
参考图3,第一设备31可以确定出多个候选位置框,如图所示,各候选位置框为矩形框。第一设备31的用户确定出目标位置框311,虚拟对象在第一设备31中的位置为位置310。第一设备31将位置310在目标位置框311中的位置信息发送给第二设备32。
第二设备32的用户从多个候选位置框中选择出虚拟对象放置框321,对应于位置310在目标位置框311中的位置信息,可以将虚拟对象放置在虚拟对象放置框321的位置320处。其中,位置310在目标位置框311中的位置与位置320在虚拟对象放置框321中的位置一致。
确定出虚拟对象在虚拟对象放置框中的位置信息后,第二设备可以基于该位置信息,确定虚拟对象在第二设备所处场景中的三维位置信息,并根据虚拟对象在该场景中的三维位置信息在第二设备上显示所述虚拟对象。
此外,第二设备显示虚拟对象后,可以响应第二设备的用户针对该虚拟对象的交互操作,将交互操作的数据发送给第一设备。在这种情况下,第一设备可以显示于该交互操作对应的图像。例如,第二设备的用户可以采用AR交互手段(如借助于手势),使虚拟对象旋转,在第一设备上,该虚拟对象会出现旋转的效果。
下面将参考图4对本公开示例性的虚拟对象处理方法的处理过程进行说明。
针对第一设备,在步骤S402中,可以利用采集的视觉信息和惯性信息构建稀疏特征点云;在步骤S404中,可以基于构建的稀疏特征点云对场景中的空间平面进行检测;在步骤S406中,对场景进行目标检测,确定多个真实对象位置框;在步骤S408中,基于多个真实对象位置框与场景中的空间平面的匹配关系,确定候选位置框集合;在步骤S410中,响应第一设备用户的操作,确定虚拟对象的位置,并将虚拟对象信息以及虚拟对象在位置框中的位置信息发送给第二设备。
针对第二设备,步骤S412至步骤S418的过程与步骤S402至步骤S408类似,在此不再赘述。在步骤S420中,基于第一设备的虚拟对象在位置框中的位置信息以及第二设备的用户操作,确定虚拟对象在第二设备中的显示位置,并显示虚拟对象;在步骤S422中,第二设备的用户可以对虚拟对象进行操作,并将操作数据发送给第一设备。
在步骤S424中,第一设备可以显示第二设备用户针对虚拟对象的操作过程,并可以进一步响应第一设备用户的操作,实现第一设备与第二设备之间的AR交互。
通过上述示例性描述的虚拟对象处理方法,一方面,通过本公开示例性的方法,使得处于不同环境的设备之间可以实现AR交互,消除了场景带来的限制,提高了多人AR技术的适用范围;另一方面,由于不要求场景相同,因此,可以实现远程或异地多人AR交互;又一方面,本公开的方法可以直接由移动设备实现,无需为了实现AR过程而专门配置的标注装置、辅助设备等,降低了成本;再一方面,第一设备与第二设备在确定候选位置框集合方面,处理过程类似,可以提前进行算法配置,并适配于各种移动设备,以便实现两个或更多个设备之间的AR交互过程。
应当注意,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
进一步的,本示例实施方式中还提供了一种虚拟对象处理装置。
图5示意性示出了本公开的示例性实施方式的虚拟对象处理装置的方框图。参考图5,根据本公开的示例性实施方式的虚拟对象处理装置5可以包括第一平面检测模块501、第一位置框确定模块503、第一位置框集合确定模块505、对象位置确定模块507和信息发送模块509。
具体的,第一平面检测模块501可以被配置为检测第一设备所处场景中的空间平面;第一位置框确定模块503可以被配置为对场景中真实对象进行检测,以确定多个真实对象位置框;第一位置框集合确定模块505可以被配置为基于多个真实对象位置框与场景中的空间平面之间的匹配关系,从多个真实对象位置框中确定出候选位置框集合;对象位置确定模块507可以被配置为响应针对候选位置框集合中一目标位置框的虚拟对象配置操作,确定虚拟对象在目标位置框中的位置信息;信息发送模块509可以被配置为将虚拟对象的信息以及虚拟对象在目标位置框中的位置信息发送给第二设备,以便在第二设备上显示虚拟对象。
根据本公开的示例性实施例,第一平面检测模块501可以被配置为执行:根据第一设备采集的多个视频帧图像以及对应的惯性信息提取场景的特征点;基于提取到的特征点构建特征点云;利用特征点云检测第一设备所处场景中的空间平面。
根据本公开的示例性实施例,第一位置框确定模块503可以被配置为执行:确定一目标帧图像,将目标帧图像输入训练后的机器学习模型中,利用训练后的机器学习模型确定多个真实对象位置框。
根据本公开的示例性实施例,第一位置框集合确定模块505可以被配置为执行:针对多个真实对象位置框中的任意一个真实对象位置框,确定该真实对象位置框的多个特征位置点;确定所述多个特征位置点在特征点云的坐标系下的坐标点以及法线方向;针对所述多个特征位置点在特征点云的坐标系下的坐标点,如果沿法线方向的投影均在同一空间平面上,则确定该真实对象位置框为候选位置框,并将该真实对象位置框添加至候选位置框集合。
根据本公开的示例性实施例,对象位置确定模块507还可以被配置为执行:在确定虚拟对象在目标位置框中的位置信息后,基于虚拟对象在目标位置框中的位置信息,确定虚拟对象在场景中的三维位置信息;根据虚拟对象在场景中的三维位置信息在第一设备上显示虚拟对象。
图6示意性示出了根据本公开的另一示例性实施方式的虚拟对象处理装置的方框图。参考图6,根据本公开的另一示例性实施方式的虚拟对象处理装置6可以包括第二平面检测模块601、第二位置框确定模块603、第二位置框集合确定模块605、信息获取模块607、放置框确定模块609和位置转换模块611。
具体的,第二平面检测模块601可以被配置为检测第二设备所处场景中的空间平面; 第二位置框确定模块603可以被配置为对场景中真实对象进行检测,以确定多个真实对象位置框;第二位置框集合确定模块605可以被配置为基于多个真实对象位置框与场景中的空间平面之间的匹配关系,从多个真实对象位置框中确定出候选位置框集合;信息获取模块607可以被配置为获取由第一设备发送的虚拟对象的信息以及虚拟对象在第一设备的目标位置框中的位置信息;放置框确定模块609可以被配置为响应一虚拟对象配置操作,从候选位置框集合中确定虚拟对象放置框;位置转换模块611可以被配置为基于虚拟对象在第一设备的目标位置框中的位置信息,确定虚拟对象在虚拟对象放置框中的位置信息,以便在第二设备上显示虚拟对象。
根据本公开的示例性实施例,第二平面检测模块601可以被配置为执行:根据第二设备采集的多个视频帧图像以及对应的惯性信息提取场景的特征点;基于提取到的特征点构建特征点云;利用特征点云检测第二设备所处场景中的空间平面。
根据本公开的示例性实施例,第二位置框确定模块603可以被配置为执行:确定一目标帧图像,将目标帧图像输入训练后的机器学习模型中,利用训练后的机器学习模型确定多个真实对象位置框。
根据本公开的示例性实施例,第二位置框集合确定模块605可以被配置为执行:针对多个真实对象位置框中的任意一个真实对象位置框,确定该真实对象位置框的多个特征位置点;确定所述多个特征位置点在特征点云的坐标系下的坐标点以及法线方向;针对所述多个特征位置点在特征点云的坐标系下的坐标点,如果沿法线方向的投影均在同一空间平面上,则确定该真实对象位置框为候选位置框,并将该真实对象位置框添加至候选位置框集合。
根据本公开的示例性实施例,位置转换模块611可以被配置为执行:确定目标位置框与虚拟对象位置框的尺寸比例:按所述尺寸比例对虚拟对象在第一设备的目标位置框中的位置信息进行缩放处理,并将缩放处理的结果确定为虚拟对象在虚拟对象放置框中的位置信息。
根据本公开的示例性实施例,位置转换模块611还可以被配置为执行:基于虚拟对象在虚拟对象放置框中的位置信息,确定虚拟对象在场景中的三维位置信息;根据虚拟对象在场景中的三维位置信息在第二设备上显示虚拟对象。
根据本公开的示例性实施例,参考图7,相比于虚拟对象处理装置6,虚拟对象处理装置7还可以包括交互处理模块701。
具体的,交互处理模块701可以被配置为在第二设备上显示虚拟对象后,响应针对虚拟对象的交互操作,将交互操作的数据发送给第一设备,以便在第一设备上显示与交互操作对应的图像。
由于本公开实施方式的程序运行性能分析装置的各个功能模块与上述方法公开实施方式中相同,因此在此不再赘述。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。
根据本公开的实施方式的用于实现上述方法的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或 半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光盘、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图8来描述根据本公开的这种实施方式的电子设备800。图8显示的电子设备800仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图8所示,电子设备800以通用计算设备的形式表现。电子设备800的组件可以包括但不限于:上述至少一个处理单元810、上述至少一个存储单元820、连接不同系统组件(包括存储单元820和处理单元810)的总线830、显示单元840。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元810执行,使得所述处理单元810执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。例如,所述处理单元810可以执行如图1中所示的步骤S102至步骤S110,以及/或者可以执行如图2中所示的步骤S202至步骤S212。
存储单元820可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)8201和/或高速缓存存储单元8202,还可以进一步包括只读存储单元(ROM)8203。
存储单元820还可以包括具有一组(至少一个)程序模块8205的程序/实用工具8204,这样的程序模块8205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线830可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备800也可以与一个或多个外部设备900(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备800交互的设备通信,和/或与使得该电子设备800能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解 调器等等)通信。这种通信可以通过输入/输出(I/O)接口850进行。并且,电子设备800还可以通过网络适配器860与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器860通过总线830与电子设备800的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备800使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限。
Claims (20)
- 一种虚拟对象处理方法,包括:检测第一设备所处场景中的空间平面;对所述场景中真实对象进行检测,以确定多个真实对象位置框;基于所述多个真实对象位置框与所述场景中的空间平面之间的匹配关系,从所述多个真实对象位置框中确定出候选位置框集合;响应针对所述候选位置框集合中一目标位置框的虚拟对象配置操作,确定虚拟对象在所述目标位置框中的位置信息;将所述虚拟对象的信息以及所述虚拟对象在所述目标位置框中的位置信息发送给第二设备,以便在所述第二设备上显示所述虚拟对象。
- 根据权利要求1所述的虚拟对象处理方法,其中,检测第一设备所处场景中的空间平面包括:根据所述第一设备采集的多个视频帧图像以及对应的惯性信息提取所述场景的特征点;基于提取到的特征点构建特征点云;利用所述特征点云检测所述第一设备所处场景中的空间平面。
- 根据权利要求2所述的虚拟对象处理方法,其中,对所述场景中真实对象进行检测,以确定多个真实对象位置框包括:确定一目标帧图像,将所述目标帧图像输入训练后的机器学习模型中,利用所述训练后的机器学习模型确定多个真实对象位置框。
- 根据权利要求2所述的虚拟对象处理方法,其中,基于所述多个真实对象位置框与所述场景中的空间平面之间的匹配关系,从所述多个真实对象位置框中确定出候选位置框集合包括:针对所述多个真实对象位置框中的任意一个真实对象位置框,确定所述真实对象位置框的多个特征位置点;确定所述多个特征位置点在所述特征点云的坐标系下的坐标点以及法线方向;针对所述多个特征位置点在所述特征点云的坐标系下的坐标点,如果沿所述法线方向的投影均在同一空间平面上,则确定所述真实对象位置框为候选位置框,并将所述真实对象位置框添加至所述候选位置框集合。
- 根据权利要求1至4中任一项所述的虚拟对象处理方法,其中,在确定虚拟对象在所述目标位置框中的位置信息后,所述虚拟对象处理方法还包括:基于所述虚拟对象在所述目标位置框中的位置信息,确定所述虚拟对象在所述场景中的三维位置信息;根据所述虚拟对象在所述场景中的三维位置信息在所述第一设备上显示所述虚拟对象。
- 一种虚拟对象处理方法,包括:检测第二设备所处场景中的空间平面;对所述场景中真实对象进行检测,以确定多个真实对象位置框;基于所述多个真实对象位置框与所述场景中的空间平面之间的匹配关系,从所述多个真实对象位置框中确定出候选位置框集合;获取由第一设备发送的虚拟对象的信息以及所述虚拟对象在所述第一设备的目标位置框中的位置信息;响应一虚拟对象配置操作,从所述候选位置框集合中确定虚拟对象放置框;基于所述虚拟对象在所述第一设备的目标位置框中的位置信息,确定所述虚拟对象在 所述虚拟对象放置框中的位置信息,以便在所述第二设备上显示所述虚拟对象。
- 根据权利要求6所述的虚拟对象处理方法,其中,检测第二设备所处场景中的空间平面包括:根据所述第二设备采集的多个视频帧图像以及对应的惯性信息提取所述场景的特征点;基于提取到的特征点构建特征点云;利用所述特征点云检测所述第二设备所处场景中的空间平面。
- 根据权利要求7所述的虚拟对象处理方法,其中,对所述场景中真实对象进行检测,以确定多个真实对象位置框包括:确定一目标帧图像,将所述目标帧图像输入训练后的机器学习模型中,利用所述训练后的机器学习模型确定多个真实对象位置框。
- 根据权利要求7所述的虚拟对象处理方法,其中,基于所述多个真实对象位置框与所述场景中的空间平面之间的匹配关系,从所述多个真实对象位置框中确定出候选位置框集合包括:针对所述多个真实对象位置框中的任意一个真实对象位置框,确定所述真实对象位置框的多个特征位置点;确定所述多个特征位置点在所述特征点云的坐标系下的坐标点以及法线方向;针对所述多个特征位置点在所述特征点云的坐标系下的坐标点,如果沿所述法线方向的投影均在同一空间平面上,则确定所述真实对象位置框为候选位置框,并将所述真实对象位置框添加至所述候选位置框集合。
- 根据权利要求6至9中任一项所述的虚拟对象处理方法,其中,基于所述虚拟对象在所述第一设备的目标位置框中的位置信息,确定所述虚拟对象在所述虚拟对象放置框中的位置信息包括:确定所述目标位置框与所述虚拟对象位置框的尺寸比例:按所述尺寸比例对所述虚拟对象在所述第一设备的目标位置框中的位置信息进行缩放处理,并将缩放处理的结果确定为所述虚拟对象在所述虚拟对象放置框中的位置信息。
- 根据权利要求10所述的虚拟对象处理方法,其中,在所述第二设备上显示所述虚拟对象包括:基于所述虚拟对象在所述虚拟对象放置框中的位置信息,确定所述虚拟对象在所述场景中的三维位置信息;根据所述虚拟对象在所述场景中的三维位置信息在所述第二设备上显示所述虚拟对象。
- 根据权利要求11所述的虚拟对象处理方法,其中,在所述第二设备上显示所述虚拟对象后,所述虚拟对象处理方法还包括:响应针对所述虚拟对象的交互操作,将交互操作的数据发送给所述第一设备,以便在所述第一设备上显示与所述交互操作对应的图像。
- 一种虚拟对象处理装置,包括:第一平面检测模块,被配置为检测第一设备所处场景中的空间平面;第一位置框确定模块,被配置为对所述场景中真实对象进行检测,以确定多个真实对象位置框;第一位置框集合确定模块,被配置为基于所述多个真实对象位置框与所述场景中的空间平面之间的匹配关系,从所述多个真实对象位置框中确定出候选位置框集合;对象位置确定模块,被配置为响应针对所述候选位置框集合中一目标位置框的虚拟对象配置操作,确定虚拟对象在所述目标位置框中的位置信息;信息发送模块,被配置为将所述虚拟对象的信息以及所述虚拟对象在所述目标位置框 中的位置信息发送给第二设备,以便在所述第二设备上显示所述虚拟对象。
- 根据权利要求13所述的虚拟对象处理装置,其中,第一平面检测模块被配置为执行:根据所述第一设备采集的多个视频帧图像以及对应的惯性信息提取所述场景的特征点,基于提取到的特征点构建特征点云,利用所述特征点云检测所述第一设备所处场景中的空间平面。
- 根据权利要求14所述的虚拟对象处理装置,其中,第一位置框集合确定模块被配置为执行:针对所述多个真实对象位置框中的任意一个真实对象位置框,确定所述真实对象位置框的多个特征位置点,确定所述多个特征位置点在所述特征点云的坐标系下的坐标点以及法线方向,针对所述多个特征位置点在所述特征点云的坐标系下的坐标点,如果沿所述法线方向的投影均在同一空间平面上,则确定所述真实对象位置框为候选位置框,并将所述真实对象位置框添加至所述候选位置框集合。
- 一种虚拟对象处理装置,包括:第二平面检测模块,被配置为检测第二设备所处场景中的空间平面;第二位置框确定模块,被配置为对所述场景中真实对象进行检测,以确定多个真实对象位置框;第二位置框集合确定模块,被配置为基于所述多个真实对象位置框与所述场景中的空间平面之间的匹配关系,从所述多个真实对象位置框中确定出候选位置框集合;信息获取模块,被配置为获取由第一设备发送的虚拟对象的信息以及所述虚拟对象在所述第一设备的目标位置框中的位置信息;放置框确定模块,被配置为响应一虚拟对象配置操作,从所述候选位置框集合中确定虚拟对象放置框;位置转换模块,被配置为基于所述虚拟对象在所述第一设备的目标位置框中的位置信息,确定所述虚拟对象在所述虚拟对象放置框中的位置信息,以便在所述第二设备上显示所述虚拟对象。
- 根据权利要求16所述的虚拟对象处理装置,其中,第二平面检测模块601被配置为执行:根据所述第二设备采集的多个视频帧图像以及对应的惯性信息提取所述场景的特征点,基于提取到的特征点构建特征点云,利用所述特征点云检测所述第二设备所处场景中的空间平面。
- 根据权利要求17所述的虚拟对象处理装置,其中,第二位置框集合确定模块被配置为执行:针对所述多个真实对象位置框中的任意一个真实对象位置框,确定所述真实对象位置框的多个特征位置点;确定所述多个特征位置点在所述特征点云的坐标系下的坐标点以及法线方向;针对所述多个特征位置点在所述特征点云的坐标系下的坐标点,如果沿所述法线方向的投影均在同一空间平面上,则确定所述真实对象位置框为候选位置框,并将所述真实对象位置框添加至所述候选位置框集合。
- 一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至12中任一项所述的虚拟对象处理方法。
- 一种电子设备,包括:处理器;以及存储器,被配置为存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至12中任一项所述的虚拟对象处理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP20845989.1A EP4006847A4 (en) | 2019-07-30 | 2020-07-29 | VIRTUAL OBJECT PROCESSING METHOD AND APPARATUS, AND STORAGE MEDIA AND ELECTRONIC DEVICE |
US17/586,617 US11893702B2 (en) | 2019-07-30 | 2022-01-27 | Virtual object processing method and apparatus, and storage medium and electronic device |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910695983.8A CN110473293B (zh) | 2019-07-30 | 2019-07-30 | 虚拟对象处理方法及装置、存储介质和电子设备 |
CN201910695983.8 | 2019-07-30 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/586,617 Continuation US11893702B2 (en) | 2019-07-30 | 2022-01-27 | Virtual object processing method and apparatus, and storage medium and electronic device |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021018214A1 true WO2021018214A1 (zh) | 2021-02-04 |
Family
ID=68509179
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2020/105578 WO2021018214A1 (zh) | 2019-07-30 | 2020-07-29 | 虚拟对象处理方法及装置、存储介质和电子设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11893702B2 (zh) |
EP (1) | EP4006847A4 (zh) |
CN (1) | CN110473293B (zh) |
WO (1) | WO2021018214A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113838217A (zh) * | 2021-09-23 | 2021-12-24 | 北京百度网讯科技有限公司 | 信息展示方法、装置、电子设备及可读存储介质 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110473293B (zh) * | 2019-07-30 | 2023-03-24 | Oppo广东移动通信有限公司 | 虚拟对象处理方法及装置、存储介质和电子设备 |
CN112306243A (zh) * | 2020-11-19 | 2021-02-02 | 深圳前海微众银行股份有限公司 | 数据处理方法、装置、设备及存储介质 |
US11741676B2 (en) | 2021-01-21 | 2023-08-29 | Samsung Electronics Co., Ltd. | System and method for target plane detection and space estimation |
CN112947748A (zh) * | 2021-02-03 | 2021-06-11 | 深圳前海微众银行股份有限公司 | 增强现实ar远程交互方法及其系统 |
CN112784002B (zh) * | 2021-02-07 | 2023-09-26 | 腾讯科技(深圳)有限公司 | 一种虚拟场景生成方法、装置、设备和存储介质 |
US11657569B1 (en) * | 2021-07-13 | 2023-05-23 | All Tingz Co. | Method for creating a tangible objection and digitizing the tangible object using an artificial intelligence process |
CN114887321A (zh) * | 2022-04-26 | 2022-08-12 | 广州宸境科技有限公司 | 一种多人ar互动方法、装置、设备及存储介质 |
CN117055996B (zh) * | 2023-08-07 | 2024-07-23 | 香港科技大学(广州) | 虚拟场景界面显示方法、装置、设备及存储介质 |
CN117635888B (zh) * | 2023-12-07 | 2024-04-26 | 腾讯科技(深圳)有限公司 | 一种数据处理方法及相关装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150097865A1 (en) * | 2013-10-08 | 2015-04-09 | Samsung Electronics Co., Ltd. | Method and computing device for providing augmented reality |
CN106200944A (zh) * | 2016-06-30 | 2016-12-07 | 联想(北京)有限公司 | 一种对象的控制方法、控制装置和控制系统 |
CN106997281A (zh) * | 2017-04-10 | 2017-08-01 | 北京小米移动软件有限公司 | 共享虚拟对象的方法及智能设备 |
CN109992108A (zh) * | 2019-03-08 | 2019-07-09 | 北京邮电大学 | 多用户交互的增强现实方法及系统 |
CN110473293A (zh) * | 2019-07-30 | 2019-11-19 | Oppo广东移动通信有限公司 | 虚拟对象处理方法及装置、存储介质和电子设备 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3281403A4 (en) | 2015-04-06 | 2018-03-07 | Scope Technologies US Inc. | Methods and apparatus for augmented reality applications |
US10169917B2 (en) * | 2015-08-20 | 2019-01-01 | Microsoft Technology Licensing, Llc | Augmented reality |
CN110036359B (zh) * | 2017-06-23 | 2022-08-26 | 杰创科虚拟现实有限公司 | 第一人称角色扮演互动式增强现实 |
CN107390875B (zh) * | 2017-07-28 | 2020-01-31 | 腾讯科技(上海)有限公司 | 信息处理方法、装置、终端设备和计算机可读存储介质 |
CN107393017A (zh) * | 2017-08-11 | 2017-11-24 | 北京铂石空间科技有限公司 | 图像处理方法、装置、电子设备及存储介质 |
CN109840947B (zh) * | 2017-11-28 | 2023-05-09 | 广州腾讯科技有限公司 | 增强现实场景的实现方法、装置、设备及存储介质 |
CN108830894B (zh) | 2018-06-19 | 2020-01-17 | 亮风台(上海)信息科技有限公司 | 基于增强现实的远程指导方法、装置、终端和存储介质 |
WO2020056692A1 (zh) | 2018-09-20 | 2020-03-26 | 太平洋未来科技(深圳)有限公司 | 一种信息交互方法、装置及电子设备 |
CN109754471B (zh) * | 2019-01-10 | 2023-06-27 | 网易(杭州)网络有限公司 | 增强现实中的图像处理方法及装置、存储介质、电子设备 |
CN109903129A (zh) * | 2019-02-18 | 2019-06-18 | 北京三快在线科技有限公司 | 增强现实显示方法与装置、电子设备、存储介质 |
CN109847361B (zh) | 2019-02-27 | 2020-11-10 | 腾讯科技(深圳)有限公司 | 运动状态的同步方法和装置、存储介质、电子装置 |
US11120639B1 (en) * | 2020-04-24 | 2021-09-14 | Microsoft Technology Licensing, Llc | Projecting telemetry data to visualization models |
-
2019
- 2019-07-30 CN CN201910695983.8A patent/CN110473293B/zh active Active
-
2020
- 2020-07-29 WO PCT/CN2020/105578 patent/WO2021018214A1/zh unknown
- 2020-07-29 EP EP20845989.1A patent/EP4006847A4/en active Pending
-
2022
- 2022-01-27 US US17/586,617 patent/US11893702B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150097865A1 (en) * | 2013-10-08 | 2015-04-09 | Samsung Electronics Co., Ltd. | Method and computing device for providing augmented reality |
CN106200944A (zh) * | 2016-06-30 | 2016-12-07 | 联想(北京)有限公司 | 一种对象的控制方法、控制装置和控制系统 |
CN106997281A (zh) * | 2017-04-10 | 2017-08-01 | 北京小米移动软件有限公司 | 共享虚拟对象的方法及智能设备 |
CN109992108A (zh) * | 2019-03-08 | 2019-07-09 | 北京邮电大学 | 多用户交互的增强现实方法及系统 |
CN110473293A (zh) * | 2019-07-30 | 2019-11-19 | Oppo广东移动通信有限公司 | 虚拟对象处理方法及装置、存储介质和电子设备 |
Non-Patent Citations (1)
Title |
---|
See also references of EP4006847A4 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113838217A (zh) * | 2021-09-23 | 2021-12-24 | 北京百度网讯科技有限公司 | 信息展示方法、装置、电子设备及可读存储介质 |
CN113838217B (zh) * | 2021-09-23 | 2023-09-12 | 北京百度网讯科技有限公司 | 信息展示方法、装置、电子设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US11893702B2 (en) | 2024-02-06 |
EP4006847A1 (en) | 2022-06-01 |
CN110473293B (zh) | 2023-03-24 |
US20220148279A1 (en) | 2022-05-12 |
CN110473293A (zh) | 2019-11-19 |
EP4006847A4 (en) | 2022-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021018214A1 (zh) | 虚拟对象处理方法及装置、存储介质和电子设备 | |
US9639988B2 (en) | Information processing apparatus and computer program product for processing a virtual object | |
WO2020168792A1 (zh) | 增强现实显示方法与装置、电子设备、存储介质 | |
US9268410B2 (en) | Image processing device, image processing method, and program | |
KR101453815B1 (ko) | 사용자의 시점을 고려하여 동작인식하는 인터페이스 제공방법 및 제공장치 | |
US8850337B2 (en) | Information processing device, authoring method, and program | |
KR101890459B1 (ko) | 3차원으로 디스플레이된 오브젝트의 사용자 선택 제스쳐에 응답하기 위한 방법 및 시스템 | |
US20140168268A1 (en) | Information processing device, information processing method, and program | |
WO2020029554A1 (zh) | 增强现实多平面模型动画交互方法、装置、设备及存储介质 | |
CN107646109B (zh) | 管理电子设备上的环境映射的特征数据 | |
Caputo et al. | 3D Hand Gesture Recognition Based on Sensor Fusion of Commodity Hardware. | |
CN111950521A (zh) | 一种增强现实交互的方法、装置、电子设备及存储介质 | |
US11561651B2 (en) | Virtual paintbrush implementing method and apparatus, and computer readable storage medium | |
US11562545B2 (en) | Method and device for providing augmented reality, and computer program | |
JP2013164697A (ja) | 画像処理装置、画像処理方法、プログラム及び画像処理システム | |
JP7043601B2 (ja) | 環境モデルを生成するための方法および装置ならびに記憶媒体 | |
US11721037B2 (en) | Indoor positioning method and apparatus, electronic device and storage medium | |
CN115578432B (zh) | 图像处理方法、装置、电子设备及存储介质 | |
US20240233172A1 (en) | Video processing method and device, and electronic device | |
CN113096254B (zh) | 目标物渲染方法及装置、计算机设备和介质 | |
WO2023160072A1 (zh) | 增强现实ar场景中的人机交互方法、装置和电子设备 | |
WO2023274205A1 (zh) | 一种poi的显示方法及设备 | |
CN114119737A (zh) | 室内导航的视觉定位方法及相关设备 | |
WO2021012096A1 (zh) | 媒体资源推送装置、方法、电子设备及存储介质 | |
CN117453037A (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: 20845989 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2020845989 Country of ref document: EP Effective date: 20220228 |