WO2025263291A1 - Information processing device, information processing method, and recording medium - Google Patents
Information processing device, information processing method, and recording mediumInfo
- Publication number
- WO2025263291A1 WO2025263291A1 PCT/JP2025/019981 JP2025019981W WO2025263291A1 WO 2025263291 A1 WO2025263291 A1 WO 2025263291A1 JP 2025019981 W JP2025019981 W JP 2025019981W WO 2025263291 A1 WO2025263291 A1 WO 2025263291A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- superimposed
- real object
- virtual object
- real
- virtual
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/0346—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/04815—Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
Definitions
- This disclosure relates to an information processing device, an information processing method, and a recording medium, and in particular to an information processing device, an information processing method, and a recording medium that are capable of appropriately displaying virtual objects superimposed on real objects.
- Smartphones and XR head-mounted displays can overlay three-dimensional virtual objects onto the real world. For example, by displaying a product as a virtual object in front of the user's eyes before actually manufacturing or purchasing it, the user can check its size and appearance.
- Virtual objects are merely virtual objects displayed on a smartphone or XR HMD, and cannot be grasped or moved in the same way as real objects. If virtual objects could be handled like real objects, it would be possible to check the shape and color in more detail during the product manufacturing process or before purchasing, and there is a growing demand for this.
- Patent Document 1 discloses a technique for blurring the boundaries of a virtual object when overlaying it on a real object.
- Patent Document 2 discloses a technique for aligning a specified plane of a virtual object so that it is parallel to a plane along the hand or a specified plane of a mockup.
- Patent Document 3 discloses a technique for overlaying a virtual object of a different size or shape on a real object, and for displaying the virtual object as semi-transparent when the user's hand is not touching the real object.
- An information processing device is an information processing device that acquires information about the status of a real object onto which a virtual object is to be superimposed and a second real object different from the real object onto which the virtual object is to be superimposed, and that includes a control unit that controls the display of the virtual object based on the acquired information.
- An information processing method includes an information processing device acquiring information about the status of a real object onto which a virtual object is to be superimposed and a second real object different from the real object onto which the virtual object is to be superimposed, and controlling the display of the virtual object based on the acquired information.
- a recording medium is a computer-readable recording medium having recorded thereon a program for causing a computer to function as a control unit that acquires information regarding the status of a real object onto which a virtual object is to be superimposed and a second real object different from the real object onto which the virtual object is to be superimposed, and controls the display of the virtual object based on the acquired information.
- information is acquired regarding the status of a real object onto which a virtual object is to be superimposed, and a second real object different from the real object onto which the virtual object is to be superimposed, and the display of the virtual object is controlled based on the acquired information.
- the information processing device of one aspect of the present disclosure may be an independent device, or may be an internal block constituting a single device.
- FIG. 1 is a diagram illustrating a first example of a conventional method.
- FIG. 10 is a diagram illustrating a second example of a conventional method.
- FIG. 1 illustrates a first problem of the conventional method.
- FIG. 10 is a diagram illustrating a second problem of the conventional method.
- FIG. 10 is a diagram illustrating a third problem of the conventional method.
- FIG. 10 is a diagram illustrating a fourth problem of the conventional method.
- 1 is a block diagram illustrating a configuration example of an embodiment of an information processing device to which the present disclosure is applied. A diagram showing an example configuration of an XR HMD to which the present disclosure is applied.
- FIG. 1 is a diagram illustrating a configuration example of a smartphone to which the present disclosure is applied.
- FIG. 1 is a diagram illustrating an example of the configuration of a stationary 3D display to which the present disclosure is applied.
- FIG. 1 is a diagram illustrating an example of the configuration of a photographing camera to which the present disclosure is applied.
- FIG. 10 is a block diagram illustrating another exemplary configuration of an embodiment of an information processing device to which the present disclosure is applied.
- 10 is a flowchart showing the flow of processing for displaying a virtual object on a real object to be superimposed.
- FIG. 10 is a diagram showing an example of a virtual object displayed in a wireframe.
- FIG. 10 is a diagram illustrating an example of setting a grip origin.
- 10 is a flowchart showing the flow of a process for setting a tracking target.
- FIG. 10 is a flowchart showing the flow of a process for setting a tracking target.
- 10 is a diagram illustrating an example of visualization of a region to be grasped of a virtual object.
- 10A and 10B are diagrams illustrating an example of tracking feature points of a real object to be superimposed and a second real object.
- 10 is a flowchart showing the flow of processing for enlarging, reducing, and rotating a virtual object superimposed on a target real object.
- FIG. 10 is a diagram illustrating an example of enlarging a virtual object.
- FIG. 10 is a diagram illustrating an example of rotation of a virtual object.
- 10 is a flowchart showing a processing flow when a physical object to be superimposed is placed on a plane.
- 10 is a diagram showing an example in which a virtual object is rotated so as to be perpendicular to a plane.
- 10 is a flowchart showing a processing flow when a physical object to be superimposed is changed.
- 10A and 10B are diagrams illustrating an example of resetting the grip origin when the real object to be superimposed is changed;
- FIG. 2 is a block diagram illustrating an example of the hardware configuration of a computer.
- XR Cross-Referenced Reality
- VR Virtual Reality
- AR Augmented Reality
- MR Mated Reality
- Figure 1 shows a situation where a virtual object 11 is displayed to a user wearing an XR HMD and a hand gesture 13 is made by the user's hand 12.
- a hand gesture 13 is made by the user's hand 12.
- Figure 1 by capturing and recognizing hand gesture 13 made by moving hand 12 in the direction of arrow A1 with a camera mounted on the XR HMD, it is possible to virtually grasp virtual object 11 and display it as moving in the direction of arrow A2.
- Figure 2 shows how a virtual object 22 is displayed to a user wearing an XR HMD using a physical object such as a marker 21.
- the marker 21 is captured and recognized by a camera mounted on the XR HMD, and the virtual object 22 is superimposed according to the position and orientation of the marker 21.
- the virtual object 22 can be moved indirectly in conjunction with the movement of the marker 21.
- the method of indirectly grasping a virtual object by superimposing it on a real object of a different shape or size and then grasping the real object has the following problems:
- This disclosure proposes a method for appropriately displaying a virtual object by changing the display of the virtual object depending on the status of a real object (hereinafter also referred to as a second real object) that is different from the real object that is the superimposed object, in response to issues such as the user being unable to grasp the desired part of the virtual object due to differences in shape or size between the virtual object and the real object that is the superimposed object (hereinafter also referred to as the superimposed real object).
- a real object hereinafter also referred to as a second real object
- FIG. 7 is a block diagram showing a configuration example of an embodiment of an information processing device to which the present disclosure is applied.
- the information processing device 70 is composed of a sensor unit 71, an object detection unit 72, a trigger detection unit 73, a superimposition target determination unit 74, a gripping area determination unit 75, a data management unit 76, a data storage unit 77, a virtual object position determination unit 78, a drawing unit 79, and a display unit 80.
- the sensor unit 71 is composed of various sensors such as an image sensor, a gyro sensor, and an acceleration sensor. The sensor unit 71 performs sensing using the various sensors and outputs the resulting sensor data (image data, etc.) to the object detection unit 72, the virtual object position determination unit 78, and the display unit 80.
- the image sensor can capture the real world in front of the device as a video see-through image.
- An image sensor that captures images to be used as input for environmental recognition processing such as object recognition and position and orientation estimation may be provided separately from the image sensor for capturing video see-through images.
- An inertial sensor such as an IMU (Inertial Measurement Unit) may also be provided.
- an image sensor that captures the user's eyeballs may be provided to detect the line of sight of the user wearing the XR HMD.
- the object detection unit 72 estimates the position and orientation of any real object, such as a real object onto which a virtual object is to be superimposed or the user's hand holding that real object, based on the image data output from the sensor unit 71.
- any real object such as a real object onto which a virtual object is to be superimposed or the user's hand holding that real object.
- known 3D object recognition technology can be used.
- the object detection unit 72 outputs the detection results (estimation results) to the trigger detection unit 73, the superimposition target determination unit 74, the gripping area determination unit 75, and the virtual object position determination unit 78.
- the trigger detection unit 73 detects the user's decision action based on the detection result output from the object detection unit 72. For example, the trigger detection unit 73 determines whether the user's hand detected by the object detection unit 72 has a specific shape, and if it determines that the hand has a specific shape, it can consider that the user's decision action has been detected.
- the trigger detection unit 73 outputs the detection result (decision trigger) to the superimposition target determination unit 74, the grip area determination unit 75, and the virtual object position determination unit 78.
- the superimposition target determination unit 74 determines the real object to be superimposed based on the detection results output from the object detection unit 72 and the detection results (decision trigger) output from the trigger detection unit 73. Since multiple objects can be detected here, for example, the object that is most central on the screen, or the object the user is gazing at if a gaze detection function is installed, can be selected, and the object that is selected when the decision trigger is detected can be set as the real object to be superimposed.
- the superimposition target determination unit 74 outputs the determination result (real object to be superimposed) to the gripping area determination unit 75.
- the gripping area determination unit 75 determines whether the distance between the real object to be superimposed and the virtual object drawn by the drawing unit 79 is less than a certain distance. If the gripping area determination unit 75 determines that the distance between the real object to be superimposed and the virtual object is less than a certain distance, it outputs a command to the drawing unit 79 to draw the virtual object semi-transparently or in a wireframe.
- the gripping area determination unit 75 receives the detection result (gripping area determination trigger) output from the trigger detection unit 73, it determines the gripping area and grip origin for the real object to be superimposed based on the positional relationship between the real object to be superimposed and the virtual object, and the position of a second real object (e.g., the user's hand) relative to the real object to be superimposed, and outputs (notifies) the determination result to the data management unit 76.
- the detection result gripping area determination trigger
- the data management unit 76 stores the determination results notified by the grasping area determination unit 75 (for example, the type of real object to be superimposed, the type of linked virtual object, the positional relationship, and the grasping area and grasping origin of the real object to be superimposed) as data.
- the area in which the data management unit 76 stores data is typically volatile memory, and data is written to the data storage unit 77 when the device is powered off, an application is terminated, or the device is in standby mode.
- the data management unit 76 also reads data from the data storage unit 77 when the device is powered on, an application is started, or the like.
- the data storage unit 77 is made up of non-volatile memory such as NAND flash memory, and stores data from the data management unit 76.
- the virtual object position determination unit 78 outputs to the drawing unit 79 a command to draw a virtual object according to the position and setting values specified by the user, based on the sensor data output from the sensor unit 71, the detection results output from the object detection unit 72, the detection results output from the trigger detection unit 73, or data from the data management unit 76.
- the user's designation is determined by receiving a decision trigger output from the trigger detection unit 73 while the user is designating any position on the plane detected by the object detection unit 72 with their finger or by directing their gaze.
- AR applications for XR HMDs and smartphones implement self-position and orientation estimation technologies such as SLAM (Simultaneous Localization and Mapping) and VIO (Visual Inertial Odometry), which make it possible to obtain the three-dimensional coordinates of the shooting camera in real space. This technology may be used to display a virtual object at any relative position to the camera. If the data management unit 76 holds setting values for the real object to be superimposed (setting values related to superimposition), the virtual object position determination unit 78 commands the drawing unit 79 to draw the virtual object in accordance with the setting values received from the data management unit 76.
- SLAM Simultaneous Localization and Mapping
- VIO Visual Inertial Odometry
- the rendering unit 79 renders virtual objects using 3DCG (3-Dimensional Computer Graphics) technology based on commands (commands for rendering position, orientation, etc.) output from the virtual object position determination unit 78.
- the display unit 80 combines an image (an image capturing the real world) based on the image data output from the sensor unit 71 with an image (virtual object) based on the rendering results output from the rendering unit 79, and displays it on a display device.
- the display device may be configured as an LCD (Liquid Crystal Display) panel, an organic EL (Electro Luminescence) panel, or the like.
- the display unit 80 is also equipped with an optical engine.
- the object detection unit 72, trigger detection unit 73, superimposition target determination unit 74, gripping area determination unit 75, virtual object position determination unit 78, and drawing unit 79 are provided as functions of the control unit 70A.
- the functions of the control unit 70A are realized by a processor such as a CPU (Central Processing Unit) executing a program.
- the number of processors is not limited to one, and two or more processors may be installed.
- the drawing unit 79 may be configured as a GPU (Graphics Processing Unit), and the object detection unit 72, trigger detection unit 73, superimposition target determination unit 74, gripping area determination unit 75, and virtual object position determination unit 78 may be configured as a CPU.
- the information processing device 70 can be configured as a device such as an XR HMD, a smartphone, a 3D display, or a camera for photography.
- FIG. 8 is a diagram showing an example configuration of an XR HMD to which the present disclosure is applied.
- an XR HMD 92 is worn on the head of a user 91, with a sensor unit 93 provided on the front of the part covering the head and a display unit 94 on the back.
- the XR HMD 92 has a configuration similar to that of the information processing device 70 in FIG. 7, with the sensor unit 93 corresponding to the sensor unit 71 in FIG. 7 and the display unit 94 corresponding to the display unit 80 in FIG. 7.
- Functions such as the object detection unit 72 in FIG. 7 are realized by a processor such as a CPU mounted on the XR HMD 92 executing a program.
- a processor such as a CPU mounted on the XR HMD 92 executing a program.
- the user 91 is holding a real object 95 to be superimposed in his or her hand (second real object) within the shooting range of the sensor unit 93, and can see a virtual object superimposed on the real object 95 to be superimposed, which is displayed on the display unit 94.
- FIG. 9 is a diagram showing an example configuration of a smartphone to which the present disclosure is applied.
- a smartphone 102 is held in the hand of a user 101, and a sensor unit 103 is provided on the back of the housing and a display unit 104 is provided on the front.
- the smartphone 102 has a configuration similar to that of the information processing device 70 in FIG. 7, with the sensor unit 103 corresponding to the sensor unit 71 in FIG. 7 and the display unit 104 corresponding to the display unit 80 in FIG. 7.
- Functions such as the object detection unit 72 in FIG. 7 are realized by a processor such as a CPU mounted on the smartphone 102 executing a program.
- a processor such as a CPU mounted on the smartphone 102 executing a program.
- the user 101 holds the smartphone 102 in one hand and a real object 105 to be superimposed within the shooting range of the sensor unit 103 with the other hand (second real object), and can view a virtual object superimposed on the real object 105 to be superimposed, which is displayed on the display unit 104.
- FIG. 10 is a diagram showing an example configuration of a stationary 3D display to which the present disclosure is applied.
- a 3D display 112 is installed in an arbitrary location, and a sensor unit 113 and a display unit 114 are provided for a user 111 who is in a predetermined position.
- the 3D display 112 has a configuration similar to that of the information processing device 70 in FIG. 7, with the sensor unit 113 corresponding to the sensor unit 71 in FIG. 7 and the display unit 114 corresponding to the display unit 80 in FIG. 7.
- the functions of the object detection unit 72 in FIG. 7 and the like are realized by a processor such as a CPU mounted on the 3D display 112 executing a program.
- a processor such as a CPU mounted on the 3D display 112 executing a program.
- the user 111 is holding a real object 115 to be superimposed in his or her hand (second real object) within the shooting range of the sensor unit 113, and can view a virtual object superimposed on the real object 115 to be superimposed, which is displayed in 3D on the display unit 114.
- photographing camera 122 has a sensor unit 123 and a display unit 124, is installed in an arbitrary location, and is operated by first user 121.
- Photographing camera 122 has a configuration similar to that of information processing device 70 in FIG. 7, with sensor unit 123 corresponding to sensor unit 71 in FIG. 7 and display unit 124 corresponding to display unit 80 in FIG. 7.
- Functions such as object detection unit 72 in FIG. 7 are realized by a processor such as a CPU mounted on photographing camera 122 executing a program.
- a processor such as a CPU mounted on photographing camera 122 executing a program.
- second user 125 is holding real object 126 to be superimposed in his hand (second real object) within the photographing range of sensor unit 123, and first user 121 can see a virtual object superimposed on real object 126 to be superimposed, which is displayed on display unit 124.
- Trigger detection is not limited to gesture determination by the trigger detection unit 73 as shown in the configuration of the information processing device 70 in Figure 7, but may also be, for example, a controller-type device, an input device such as a keyboard connected to a PC (Personal Computer) connected to the XR HMD, or a packet reception program that receives voice input from the user or commands from an external source via a network.
- Figure 12 shows a configuration for performing trigger detection using such devices and programs.
- FIG. 12 is a block diagram showing another example configuration of an embodiment of an information processing device to which the present disclosure is applied.
- the information processing device 130 includes a sensor unit 131, an object detection unit 132, a trigger detection unit 133, a superimposition target determination unit 134, a gripping area determination unit 135, a data management unit 136, a data storage unit 137, a virtual object position determination unit 138, a drawing unit 139, and a display unit 140.
- the trigger detection unit 133 can use a button input from a controller or input device as a trigger.
- the trigger detection unit 133 may also use a command received as a packet over a network such as the Internet as a trigger.
- the trigger detection unit 133 outputs the detection result (decision trigger) to the superimposition target determination unit 134, the grasped area determination unit 135, and the virtual object position determination unit 138.
- the configuration other than the trigger detection unit 133 is the same as the configuration shown in FIG. 7, and therefore a description thereof will be omitted.
- the object detection unit 132, trigger detection unit 133, superimposition target determination unit 134, gripping area determination unit 135, virtual object position determination unit 138, and drawing unit 139 are also provided as functions of the control unit 130A.
- the functions of the control unit 130A are realized by one or more processors executing programs.
- Fig. 13 is a flowchart showing the flow of processing for displaying a virtual object on a real object to be superimposed.
- the processing is described as being executed by the control unit 70A of the information processing device 70 in Fig. 7, but the processing may also be executed by the control unit 130A of the information processing device 130 in Fig. 12. The same applies to the processing of the other flowcharts shown in the subsequent figures.
- step S11 the data management unit 76 reads setting values (data) from the data storage unit 77.
- step S12 the virtual object position determination unit 78 commands the drawing unit 79 to draw a virtual object at a location specified by the user, and the display unit 80 displays the drawing results by the drawing unit 79.
- step S13 the superimposition target determination unit 74 selects (determines) a real object to be superimposed based on the detection results by the object detection unit 72 and the detection results by the trigger detection unit 73 (user's decision trigger).
- step S14 the virtual object position determination unit 78 determines whether a setting value exists for the real object to be superimposed. If it is determined in step S14 that a setting value exists, processing proceeds to step S15.
- step S15 the virtual object position determination unit 78 commands the rendering unit 79 to superimpose the virtual object on the real object to be superimposed based on the setting value, and the display unit 80 displays the rendering result by the rendering unit 79.
- step S16 the gripping area determination unit 75 checks whether a user decision trigger has been detected by the trigger detection unit 73. If a decision trigger has not been detected in step S16, processing proceeds to step S17.
- step S17 the gripping area determination unit 75 measures the distance between the current real object and virtual object to be superimposed, and determines whether the distance between the virtual object and real object is less than a threshold. For example, the distance can be measured by calculating the distance between the origins of the real object and virtual object to be superimposed.
- step S17 If it is determined in step S17 that the distance is less than the threshold, the process proceeds to step S18.
- the grasping area determination unit 75 commands the drawing unit 79 to display the virtual object in a wireframe, and the display unit 80 displays the drawing result by the drawing unit 79.
- Figure 14 is a diagram showing an example of a virtual object displayed in a wireframe according to the distance between the virtual object and a real object.
- Figure 14 shows a virtual object 151, a real object 152 selected as an object to be superimposed, and a user's hand 153 holding the real object 152 to be superimposed.
- the virtual object 151 is displayed in a wireframe.
- a shape represented by vertices and lines is displayed without using surfaces.
- step S17 if it is determined in step S17 that the distance is equal to or greater than the threshold, the process proceeds to step S19.
- step S19 the gripping area determination unit 75 instructs the rendering unit 79 not to display the virtual object in a wireframe, and the display unit 80 displays the rendering result by the rendering unit 79. For example, as shown at the base (starting point) of arrow A1 in FIG. 14, if the superimposed real object 152 is located far from the virtual object 151, the wireframe display of the virtual object 151 is terminated. Note that in this example, the virtual object is displayed in a wireframe when the distance between the virtual object and the superimposed real object is less than the threshold before the positional relationship between the virtual object and the superimposed real object is linked.
- step S18 or S19 ends, the process returns to step S16, and the subsequent processes are repeated.
- step S16 If a decision trigger is detected in step S16, processing proceeds to step S20.
- step S20 the grasping area determination unit 75 determines whether or not the user is grasping the physical object to be superimposed. If it is determined in step S20 that the user is not grasping the physical object, processing returns to step S16, and the subsequent processing is repeated. If it is determined in step S20 that the user is grasping the physical object, processing proceeds to step S21.
- step S21 the grasping area determination unit 75 determines the grasping origin based on the current positional relationship between the real object and virtual object to be superimposed and the user's grasping position relative to the real object to be superimposed, and notifies the data management unit 76.
- the data management unit 76 then saves the local origin and grasping origin of the virtual object as setting values.
- step S15 the virtual object position determination unit 78 commands the rendering unit 79 to superimpose the virtual object on the real object to be superimposed based on the saved setting values, and the display unit 80 displays the rendering result by the rendering unit 79.
- Figure 15 is a diagram showing an example of setting the grip origin.
- Figure 15A (top row) shows a virtual object 161, a real object 162 to be superimposed that has a rectangular parallelepiped shape, and a user's hand 163 holding the real object 162 to be superimposed.
- the user's hand 163 is a second real object that is different from the real object to be superimposed.
- the grip origin 164 is determined by the positional relationship between the real object 162 to be superimposed and the user's hand 163 holding the real object 162 to be superimposed, and is usually set near the center of the palm of the user near the wrist.
- the virtual object 161 will be superimposed on a real object of a different shape.
- the virtual object 161 may be displayed at a location (position) a certain distance away from the real object 165 to be superimposed.
- the grip origin 166 is usually set near the center of the palm of the user's hand near the wrist, but it can be set as follows.
- the midpoint thereof may be set as the grip origin 167 (left side of B of FIG. 15).
- the grip origin 168 can be set at the center of the intersecting area.
- the grasping area determination unit 75 detects a reset trigger by the trigger detection unit 73, it erases the positional relationship between the real object to be superimposed and the virtual object, and the setting of the grasping origin, and the process returns to step S16.
- the process of step S15 ends, the series of processes ends.
- the control unit 70A determines the positional relationship between the virtual object and the real object to be superimposed, as well as the grasping area and grasping origin, and saves them as setting values, and the virtual object is displayed based on the saved setting values.
- Fig. 16 is a flowchart showing the flow of a process for setting a tracking target. This process is performed when a user grasps a virtual object with his/her hand, whose positional relationship between the virtual object and the real object and whose grasping origin have already been set by the process shown in the flowchart of Fig. 13.
- step S41 the virtual object position determination unit 78 determines whether the distance between the user's hand detected by the object detection unit 72 and the real object to be superimposed is less than a threshold (less than a certain distance). If it is determined in step S41 that the distance is less than the threshold, processing proceeds to step S42.
- step S42 the virtual object position determination unit 78 commands the drawing unit 79 to draw the gripping area restored from the gripping origin superimposed on the virtual object, making the gripping area visible.
- FIG. 17 is a diagram showing an example of visualizing the area of a virtual object to be grasped.
- a virtual object 171 is displayed superimposed on a real object 172 to be superimposed, but the real object 172 is not visible to the user.
- the display of the virtual object is controlled so that the part of the real object 172 to be superimposed that should be grasped becomes visible.
- a guide 174 indicating which part of the real object 172 to be superimposed should be grasped may be displayed, or the display of the virtual object 171 may be changed so that the real object 172 to be superimposed becomes visible.
- the grasping area when changing the display of the virtual object 171, the grasping area may be displayed transparently or semi-transparently, and the grasping area may be made transparent with a predetermined transparency (transparency).
- a predetermined transparency transmission
- the display of the virtual object 171 or a second virtual object different from the virtual object 171 e.g., guide 174 is controlled so that the portion of the physical object 172 to be superimposed that is being grasped becomes visible.
- step S43 the object detection unit 72 detects whether the user's hand is grasping the real object to be superimposed. If it is detected in step S43 that the user's hand is grasping the real object to be superimposed, the process proceeds to step S44.
- step S44 the object detection unit 72 treats the real object to be superimposed and the hand grasping the real object to be superimposed as a single object and tracks them. In other words, not only the real object to be superimposed but also the grasping hand as a second real object are tracked.
- Figure 18 is a diagram showing an example of tracking feature points of a real object to be superimposed and a second real object.
- feature points 182 of real object 181 to be superimposed are represented by black squares.
- Object tracking is a technique for tracking a group of feature points of an object; the more feature points that are tracked, the less likely an object is to be lost (the less likely it is to become untrackable).
- the tip of arrow A1 when real object 181 to be superimposed is held by a user's hand 183, the user's hand 183 becomes the second real object, and its feature points 184 are also tracked.
- feature points 184 of user's hand 183 are represented by white squares.
- superimposed real object 181 and user's hand 183 are considered to be a single object, and tracking is performed by tracking a group of feature points including feature point 182 and feature point 184 as the tracking target.
- tracking is performed by tracking a group of feature points including feature point 182 and feature point 184 as the tracking target.
- the superimposed real object is grasped by a second real object (the user's hand)
- the feature points of the superimposed real object and the second real object are tracked, and the second real object is also included in the tracking targets.
- the probability of the superimposed real object being lost can be reduced based on the tracking results of at least the feature points of the second real object.
- the control unit 70A controls the display of the virtual object to be superimposed on the real object to be superimposed based on the tracking results.
- the display of the virtual object can be controlled based on the position and orientation of the second real object, and the positional relationship between the second real object and the real object to be superimposed when grasped.
- the object compared with the second real object (user's hand) in step S41 is not limited to the real object to be superimposed, but may also be, for example, a virtual object or a grasp origin, and it may be determined whether the distance to the virtual object or the grasp origin is less than a threshold. In short, it is sufficient to determine an appropriate timing for making visible the grasp area of the real object to be superimposed, grasped by the second real object (user's hand).
- FIG. 19 is a flowchart showing the flow of processing for enlarging, reducing, and rotating a virtual object superimposed on a target real object.
- step S61 the virtual object position determination unit 78 checks whether an enlargement trigger has been detected by the trigger detection unit 73. If an enlargement trigger is detected in step S61, the process proceeds to step S62.
- step S62 the virtual object position determination unit 78 commands the drawing unit 79 to enlarge and draw the virtual object in the positive x, y, and z directions of the coordinate system of the grip origin saved as setting values.
- Figure 20 is a diagram showing an example of enlarging a virtual object.
- Figure 20 shows a virtual object 191, a real object 193 to be superimposed, and a user's hand 194 holding the real object 193 to be superimposed.
- the virtual object 191 is enlarged, starting from a grip origin 195 determined according to the state of the real object 193 to be superimposed and the user's hand 194, and virtual object 192 is displayed.
- the enlarged virtual object 192 is displayed. Note that this example shows a case where the virtual object is displayed as a wireframe.
- step S63 the virtual object position determination unit 78 checks whether a reduction trigger has been detected by the trigger detection unit 73. If a reduction trigger is detected in step S63, the process proceeds to step S64.
- step S64 the virtual object position determination unit 78 commands the drawing unit 79 to reduce and draw the virtual object in the negative x, y, and z directions of the coordinate system of the grip origin saved as the setting values. For example, in FIG. 20, by reducing the virtual object 192 before reduction, the reduced virtual object 191 is displayed.
- step S65 the virtual object position determination unit 78 checks whether a rotation trigger has been detected by the trigger detection unit 73. If a rotation trigger is detected in step S65, processing proceeds to step S66. In step S66, the virtual object position determination unit 78 commands the drawing unit 79 to rotate and draw the virtual object around the grip origin point saved as a setting value.
- FIG. 21 is a diagram showing an example of virtual object rotation.
- FIG. 21 shows a virtual object 201, a real object 202 to be superimposed, and a user's hand 203 grasping the real object 202 to be superimposed.
- the virtual object 201 is displayed rotated from a grasping origin 204 determined according to the state of the real object 202 to be superimposed and the user's hand 203.
- the unrotated virtual object 201 indicated by the dashed line in the direction of arrow A2 counterclockwise
- the rotated virtual object 201 indicated by the solid line is displayed.
- steps S62, S64, and S66 are completed, processing returns to step S61, and the above-described processing is repeated. Furthermore, if no trigger is detected in steps S61, S63, or S65, the series of processing steps ends.
- FIG. 22 is a flowchart showing the flow of processing when a physical object to be superimposed is arranged on a plane.
- step S81 the object detection unit 72 detects that the real object to be superimposed has been placed on the plane.
- step S82 the virtual object position determination unit 78 commands the rendering unit 79 to rotate the virtual object around the grip origin saved as a setting value, so that it is perpendicular to the plane, and render it.
- FIG. 23 is a diagram showing an example in which a virtual object is rotated so that it is perpendicular to a plane.
- FIG. 23 shows a virtual object 211, a real object 212 to be superimposed, and a user's hand 213 holding the real object 212 to be superimposed.
- the virtual object 211 is displayed rotated so that it is perpendicular to the plane 214, starting from a gripping origin 215 determined according to the state of the real object 212 to be superimposed and the user's hand 213.
- ⁇ Processing flow when changing the overlay target> 24 is a flowchart showing the flow of processing when a user changes the grip of a real object to be superimposed. This processing is performed when, for example, the real object to be superimposed and the virtual object are similar but not identical in size or shape, and the user currently holding the real object to be superimposed in one hand changes the real object to be superimposed to another hand.
- step S101 the object detection unit 72 detects that the user has switched the real object to be superimposed, which is currently being held in one hand, to another hand.
- step S102 the gripping area determination unit 75 notifies the data management unit 76 of the gripping origin of the switched hand as a setting value and stores it.
- step S103 the virtual object position determination unit 78 updates the position and orientation of the virtual object in accordance with the saved settings, and commands the rendering unit 79 to superimpose the virtual object on the target real object.
- step S104 the object detection unit 72 treats the hand that has been swapped with the target real object as a single object to be tracked, and begins tracking it.
- Figure 25 is a diagram showing an example of resetting the grip origin when the real object to be superimposed is changed.
- Figure 25 shows a real object 221 to be superimposed, a virtual object 222, and the user's hand holding the real object 221 to be superimposed.
- the real object 221 to be superimposed is configured in the shape of a camera, and is similar in size and shape to the virtual object 222 to be superimposed.
- the real object 221 to be superimposed is slightly smaller in size than the virtual object 222, and is held in the user's hand.
- the virtual object 222 is displayed with a gripping origin 226 determined in accordance with the state of the superimposed real object 221 and the user's hand 225.
- the grip origin can be reset (redetermined) to correct the position and orientation of the virtual object. Furthermore, by tracking the real object to be superimposed and the hand that grips it, tracking can be performed reliably as described above.
- the origin (grasp origin) for displaying the virtual object can be determined depending on the status of the real object to be superimposed (e.g., a controller) and a second real object (e.g., a user's hand), and the display of the virtual object can be controlled depending on the determined origin. That is, with the present disclosure, information is acquired regarding the status of the real object to be superimposed on which the virtual object is to be superimposed and a second real object different from the real object to be superimposed, and the display of the virtual object is controlled based on the acquired information.
- the virtual object to be superimposed on the real object to be superimposed for example, the user can grasp a desired portion of the virtual object superimposed on the real object to be superimposed.
- Patent Document 1 proposes a technology that blurs the boundary between a virtual object when it is superimposed on a real object. While this reduces the retinal rivalry that occurs when a real object and a virtual object are simultaneously in the field of view, it does not resolve the discomfort that occurs when grasping a virtual object due to differences in shape or size between the real object and the virtual object.
- Patent Document 2 proposes a technology that aligns a specified plane of a virtual object so that it is parallel to a plane along the hand or a specified plane of a mockup, but does not propose which part of a real object on which a virtual object should be grasped, nor does it mention any criteria for enlarging, reducing, or rotating the virtual object.
- Patent Document 3 proposes a technology that, when superimposing a virtual object of a different size or shape on a real object, displays the virtual object semi-transparently when the user's hand is not touching the real object, but does not mention any criteria for enlarging, reducing, or rotating the virtual object.
- the information processing device 70 of FIG. 7 and the information processing device 130 of FIG. 12 are not limited to the above-described configurations and may employ other configurations.
- the information processing device 70 of FIG. 7 is configured as a server connected to a network such as the Internet, it may be configured without the sensor unit 71 and the display unit 80, i.e., with only a control unit 70A and a communication unit.
- a terminal device e.g., an XR HMD, a smartphone, etc.
- the information processing device 70 may receive sensor data transmitted from the terminal device via the network, the control unit 70A may process the received data, and the resulting processed data may be transmitted to the terminal device via the network. Meanwhile, the terminal device may transmit sensor data acquired by the sensor unit 71 to the information processing device 70 (server) via the network. Furthermore, the terminal device may receive processed data from the information processing device 70 (server) via the network, and a virtual object based on the received data may be displayed on the display unit 80.
- the control unit 70A only needs to have at least some of the blocks among the object detection unit 72, the trigger detection unit 73, the superimposition target determination unit 74, the gripping area determination unit 75, the data management unit 76, the data storage unit 77, the virtual object position determination unit 78, and the drawing unit 79, and the remaining blocks may be provided on the terminal device side.
- the drawing unit 79 may be provided on the terminal device side instead of the server side.
- a camera is displayed as a virtual object superimposed on the real object to be superimposed, but other objects (e.g., products that have not yet been manufactured or purchased) may also be displayed as virtual objects.
- the user's hand is used as an example of a second real object that is different from the real object to be superimposed, but other objects such as objects around the user (e.g., a table) may also be used.
- a CPU Central Processing Unit
- ROM Read Only Memory
- RAM Random Access Memory
- An input/output interface 305 is also connected to the bus 304.
- An input unit 306, an output unit 307, a memory unit 308, a communication unit 309, and a drive 310 are connected to the input/output interface 305.
- the program executed by the computer (CPU 301) can be provided by being recorded on a removable recording medium 311, such as a packaged medium.
- the program can also be provided via a wired or wireless transmission medium, such as a local area network, the Internet, or digital satellite broadcasting.
- a program can be installed in the storage unit 308 via the input/output interface 305 by inserting the removable recording medium 311 into the drive 310.
- the program can also be received by the communication unit 309 via a wired or wireless transmission medium and installed in the storage unit 308.
- the program can be pre-installed in the ROM 302 or storage unit 308.
- the processing performed by a computer according to a program includes processing that is executed in parallel or individually (for example, parallel processing or object-based processing). Furthermore, a program may be processed by a single computer (processor), or may be distributed across multiple computers.
- Each step described in the above flowchart can be executed by a single device, or can be shared and executed by multiple devices. Furthermore, if a single step includes multiple processes, the multiple processes included in that single step can be executed by a single device, or can be shared and executed by multiple devices. Note that the effects described in this specification are merely examples and are not limiting, and other effects may also be present.
- An information processing device comprising: a control unit that controls display of the virtual object based on the acquired information.
- the control unit determining a starting point for displaying the virtual object in accordance with the situations of the real object to be superimposed and the second real object;
- the information processing device according to (1) wherein display of the virtual object is controlled in accordance with the determined starting point.
- the information processing device according to (2) wherein the control unit determines a starting point when enlarging or reducing the virtual object according to a state of the real object to be superimposed and the second real object.
- the control unit when the user holds the physical object to be superimposed with one hand, determining the starting point in accordance with the physical object to be superimposed and the one hand holding the physical object to be superimposed;
- the information processing device described in (6) wherein when the user switches the hand holding the physical object to be superimposed from one hand to the other, the starting point is re-determined based on the physical object to be superimposed and the other hand holding the physical object to be superimposed.
- the control unit displays the virtual object semi-transparently or in a wireframe when a distance between the virtual object and the real object to be superimposed is less than a threshold before linking a positional relationship between the virtual object and the real object to be superimposed.
- (11) The information processing device according to (9), wherein the control unit displays a guide indicating a portion of the real object to be superimposed that is to be grasped.
- the information processing device controls the display of the virtual object based on the position and orientation of the second physical object and the positional relationship between the second physical object and the physical object to be superimposed when grasped.
- the information processing device acquiring information about a situation of a real object to be superimposed on which the virtual object is to be superimposed and a second real object different from the real object to be superimposed; and controlling display of the virtual object based on the acquired information.
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)
- User Interface Of Digital Computer (AREA)
- Processing Or Creating Images (AREA)
Abstract
Description
本開示は、情報処理装置、情報処理方法、及び記録媒体に関し、特に、現実物体に重畳する仮想物体を適切に表示することができるようにした情報処理装置、情報処理方法、及び記録媒体に関する。 This disclosure relates to an information processing device, an information processing method, and a recording medium, and in particular to an information processing device, an information processing method, and a recording medium that are capable of appropriately displaying virtual objects superimposed on real objects.
スマートフォンやXRヘッドマウントディスプレイ(以下、XR HMDという)では、現実世界に3次元の仮想物体を重畳することができる。例えば、実際に製品を製造、購入する前に仮想物体として目の前に表示することで、ユーザは、そのサイズ感や見た目を確認することができる。仮想物体はあくまでスマートフォンやXR HMDに表示される仮想の物体であり、現実物体と同じように把持したり、移動したりすることはできない。仮想物体を現実物体のように取り扱うことができれば、製品の製造工程や購買前により詳細に形状や色見を確認できるため、そのニーズが高まっている。 Smartphones and XR head-mounted displays (hereafter referred to as XR HMDs) can overlay three-dimensional virtual objects onto the real world. For example, by displaying a product as a virtual object in front of the user's eyes before actually manufacturing or purchasing it, the user can check its size and appearance. Virtual objects are merely virtual objects displayed on a smartphone or XR HMD, and cannot be grasped or moved in the same way as real objects. If virtual objects could be handled like real objects, it would be possible to check the shape and color in more detail during the product manufacturing process or before purchasing, and there is a growing demand for this.
現実物体に仮想物体を重畳する技術としては、例えば、特許文献1~3に開示された技術が知られている。特許文献1には、現実物体に仮想物体を重畳する際にその境界をぼかす技術が開示されている。特許文献2には、手に沿った平面やモックアップの指定した平面に平行になるように、仮想物体の指定した平面を合わせる技術が開示されている。特許文献3には、現実物体に大きさや形が異なる仮想物体を重畳する際に、ユーザの手が現実物体に触れていないときには仮想物体を半透明にして表示する技術が開示されている。 Technologies for overlaying virtual objects on real objects include those disclosed in Patent Documents 1 to 3, for example. Patent Document 1 discloses a technique for blurring the boundaries of a virtual object when overlaying it on a real object. Patent Document 2 discloses a technique for aligning a specified plane of a virtual object so that it is parallel to a plane along the hand or a specified plane of a mockup. Patent Document 3 discloses a technique for overlaying a virtual object of a different size or shape on a real object, and for displaying the virtual object as semi-transparent when the user's hand is not touching the real object.
現実物体に仮想物体を重畳するに際し、仮想物体と現実物体との形状や大きさが異なることに起因して、ユーザが仮想物体の把持したい部分を把持できないなどの問題があり、現実物体に重畳する仮想物体を適切に表示することが求められていた。 When superimposing a virtual object on a real object, there are problems such as the user being unable to grasp the desired part of the virtual object due to differences in shape and size between the virtual object and the real object, so there is a need for an appropriate display of the virtual object to be superimposed on the real object.
本開示はこのような状況に鑑みてなされたものであり、現実物体に重畳する仮想物体を適切に表示することができるようにするものである。 This disclosure has been made in light of these circumstances, and makes it possible to appropriately display virtual objects superimposed on real objects.
本開示の一側面の情報処理装置は、仮想物体を重畳する重畳対象の現実物体、及び前記重畳対象の現実物体と異なる第2の現実物体の状況に関する情報を取得し、取得した前記情報に基づいて、前記仮想物体の表示を制御する制御部を備える情報処理装置である。 An information processing device according to one aspect of the present disclosure is an information processing device that acquires information about the status of a real object onto which a virtual object is to be superimposed and a second real object different from the real object onto which the virtual object is to be superimposed, and that includes a control unit that controls the display of the virtual object based on the acquired information.
本開示の一側面の情報処理方法は、情報処理装置が、仮想物体を重畳する重畳対象の現実物体、及び前記重畳対象の現実物体と異なる第2の現実物体の状況に関する情報を取得することと、取得した前記情報に基づいて、前記仮想物体の表示を制御することとを含む情報処理方法である。 An information processing method according to one aspect of the present disclosure includes an information processing device acquiring information about the status of a real object onto which a virtual object is to be superimposed and a second real object different from the real object onto which the virtual object is to be superimposed, and controlling the display of the virtual object based on the acquired information.
本開示の一側面の記録媒体は、コンピュータを、仮想物体を重畳する重畳対象の現実物体、及び前記重畳対象の現実物体と異なる第2の現実物体の状況に関する情報を取得し、取得した前記情報に基づいて、前記仮想物体の表示を制御する制御部として機能させるためのプログラムを記録したコンピュータが読み取り可能な記録媒体である。 A recording medium according to one aspect of the present disclosure is a computer-readable recording medium having recorded thereon a program for causing a computer to function as a control unit that acquires information regarding the status of a real object onto which a virtual object is to be superimposed and a second real object different from the real object onto which the virtual object is to be superimposed, and controls the display of the virtual object based on the acquired information.
本開示の一側面の情報処理装置、情報処理方法、及び記録媒体においては、仮想物体を重畳する重畳対象の現実物体、及び前記重畳対象の現実物体と異なる第2の現実物体の状況に関する情報が取得され、取得された前記情報に基づいて、前記仮想物体の表示が制御される。 In an information processing device, information processing method, and recording medium according to one aspect of the present disclosure, information is acquired regarding the status of a real object onto which a virtual object is to be superimposed, and a second real object different from the real object onto which the virtual object is to be superimposed, and the display of the virtual object is controlled based on the acquired information.
なお、本開示の一側面の情報処理装置は、独立した装置であってもよいし、1つの装置を構成している内部ブロックであってもよい。 Note that the information processing device of one aspect of the present disclosure may be an independent device, or may be an internal block constituting a single device.
<従来手法>
スマートフォンやXR HMDに表示した仮想物体を、現実物体と同じように取り扱う技術として、例えば、図1、図2に示した技術がある。XR(クロスリアリティ)は、Extended Reality/Cross Realityの略称であり、現実空間と仮想空間を融合させて、現実では知覚できない新たな体験を提供する技術である。例えば、VR(Virtual Reality), AR(Augmented Reality), MR(Mixed Reality)は、XRに含まれる。
<Conventional method>
Examples of technologies that allow virtual objects displayed on smartphones or XR HMDs to be treated in the same way as real objects include the technologies shown in Figures 1 and 2. XR (Cross Reality) is an abbreviation for Extended Reality/Cross Reality, and is a technology that combines real and virtual spaces to provide new experiences that cannot be perceived in reality. For example, XR includes VR (Virtual Reality), AR (Augmented Reality), and MR (Mixed Reality).
図1においては、XR HMDを装着したユーザに対して、仮想物体11を表示している場合に、ユーザの手12によるハンドジェスチャ13が行われたときの様子を示している。図1に示すように、矢印A1の方向に手12を移動するによるハンドジェスチャ13を、XR HMDに搭載されたカメラでキャプチャして認識することで、仮想物体11を擬似的に把持して、矢印A2の方向に移動させる表示を行うことができる。 Figure 1 shows a situation where a virtual object 11 is displayed to a user wearing an XR HMD and a hand gesture 13 is made by the user's hand 12. As shown in Figure 1, by capturing and recognizing hand gesture 13 made by moving hand 12 in the direction of arrow A1 with a camera mounted on the XR HMD, it is possible to virtually grasp virtual object 11 and display it as moving in the direction of arrow A2.
図2においては、マーカ21のような物理的な物体を利用して、XR HMDを装着したユーザに仮想物体22を表示したときの様子を示している。この例では、マーカ21を、XR HMDに搭載されたカメラでキャプチャして認識することで、マーカ21の位置と姿勢に応じて仮想物体22を重畳している。このとき、ユーザが、マーカ21を手23で把持して、矢印A1の方向に移動させた場合、マーカ21の移動に伴って仮想物体22を間接的に移動させることができる。 Figure 2 shows how a virtual object 22 is displayed to a user wearing an XR HMD using a physical object such as a marker 21. In this example, the marker 21 is captured and recognized by a camera mounted on the XR HMD, and the virtual object 22 is superimposed according to the position and orientation of the marker 21. In this case, if the user holds the marker 21 in their hand 23 and moves it in the direction of arrow A1, the virtual object 22 can be moved indirectly in conjunction with the movement of the marker 21.
XR HMDのカメラでキャプチャした画像から現実物体を3次元的に認識して、その位置とサイズを推定する技術も提案されており、この技術を応用して仮想物体と同じ形状のカメラモック(カメラを原寸大で本物そっくりに作成した模型)に仮想物体を重畳すれば、ユーザは仮想物体を把持することができる。しかし、仮想物体を表示する度に、同じ形状の現実物体を作成することは、時間もコストもかかるため、形状や大きさが似通った現実物体を用いて違和感のない把持ができることが望ましい。 Technology has also been proposed that recognizes real objects in three dimensions from images captured by an XR HMD camera and estimates their position and size. Applying this technology, a virtual object can be superimposed on a camera mockup (a life-size model of a camera that looks exactly like the real thing) of the same shape as the virtual object, allowing the user to grasp the virtual object. However, creating a real object of the same shape each time a virtual object is displayed takes time and money, so it is preferable to use a real object of a similar shape and size so that the user can grasp it without feeling uncomfortable.
仮想物体と異なる形状や大きさの現実物体に対して仮想物体を重畳させて、現実物体を把持することで間接的に仮想物体を把持する方式には、次のような問題がある。 The method of indirectly grasping a virtual object by superimposing it on a real object of a different shape or size and then grasping the real object has the following problems:
第1に、形状や大きさが異なる現実物体に対して仮想物体を重畳する場合に、ユーザが手で把持したい場所を把持できないときがあるという問題がある。例えば、図3に示すように、平面上に突き出した直方体の形状からなる現実物体31に対し、仮想物体32を重畳した場合を想定する。この場合において、矢印A1の先に示すように、ユーザが手33で仮想物体32を把持しようとしたとき、把持したい部分に現実物体31が存在せず、仮想物体32の把持したい部分を把持することができない。 First, when a virtual object is superimposed on a real object of a different shape or size, there is a problem in that the user may not be able to grasp the desired location with their hand. For example, as shown in Figure 3, consider a case in which virtual object 32 is superimposed on real object 31, which is a rectangular parallelepiped protruding from a plane. In this case, as shown by the tip of arrow A1, when the user tries to grasp virtual object 32 with their hand 33, real object 31 is not present in the desired location, and the user is unable to grasp the desired portion of virtual object 32.
第2に、形状や大きさが異なる現実物体に対して重畳した仮想物体を拡大可能な場合に、仮想物体を適切に拡大できないときがあるという問題がある。例えば、図4に示すように、平面42上の現実物体41に対して仮想物体43を重畳しているときに、ユーザの手44によるハンドジェスチャ45が行われた場合を想定する。この場合において、矢印A1の先に示すように、人差し指と親指を離すようなハンドジェスチャ45に応じて、仮想物体43を、矢印A2の方向に拡大することが可能である。しかし、仮想物体43は、予め定義された原点を中心に拡大されるため、必ずしも、現実物体41が把持したい部分に合うように拡大されるとは限らない。また、図4に示すように、仮想物体43が拡大した結果、平面42にめり込むことも想定される。 Secondly, when a virtual object superimposed on a real object of a different shape or size can be enlarged, there is a problem in that the virtual object may not be enlarged appropriately. For example, as shown in Figure 4, consider a case in which a user performs hand gesture 45 with their hand 44 while superimposing virtual object 43 on real object 41 on plane 42. In this case, as shown at the tip of arrow A1, in response to hand gesture 45 of separating the index finger and thumb, virtual object 43 can be enlarged in the direction of arrow A2. However, because virtual object 43 is enlarged around a predefined origin, it is not necessarily enlarged to fit the part of real object 41 that the user wants to grasp. Furthermore, as shown in Figure 4, it is possible that virtual object 43 will sink into plane 42 as a result of being enlarged.
第3に、重畳対象の現実物体の形状が仮想物体の形状と一致せず、仮想物体が平面に鉛直しない置き方も可能な場合、ユーザが、仮想物体を平面に対して鉛直になるように意識する必要があるという問題がある。例えば、図5に示すように、平面52上の現実物体51に仮想物体53を重畳する場合に、仮想物体53を平面52に対して鉛直になるように意識する必要があるが、矢印A1の先に示すように、仮想物体53が平面52に対して鉛直にならない場合がある。この例では、仮想物体53が、平面52に対して鉛直とならずに、平面52上の現実物体54に対して鉛直となっており、適切に表示されていない。 Thirdly, when the shape of the real object to be superimposed does not match the shape of the virtual object, and it is possible to place the virtual object not perpendicular to the plane, there is a problem in that the user needs to be conscious of making the virtual object perpendicular to the plane. For example, as shown in Figure 5, when superimposing virtual object 53 on real object 51 on plane 52, the user needs to be conscious of making virtual object 53 perpendicular to plane 52, but as shown at the tip of arrow A1, there are cases in which virtual object 53 is not perpendicular to plane 52. In this example, virtual object 53 is not perpendicular to plane 52, but is perpendicular to real object 54 on plane 52, and is not displayed appropriately.
第4に、重畳対象の現実物体が仮想物体よりも小さい場合、特にユーザが手で把持した際に重畳対象の現実物体が手で隠され、XR HMDに搭載されたカメラでキャプチャして認識できなくなった結果、仮想物体を表示できなくなるという問題がある。例えば、図6に示すように、仮想物体62が重畳された現実物体61を、ユーザが手63で把持している場合を想定する。この場合において、仮想物体62よりも現実物体61の方が小さく、矢印A1の先に示すように、ユーザの手63によって現実物体61が隠されて認識できなくなったとき、仮想物体62を現実物体61に重畳させて表示することができなくなる。 Fourthly, when the real object to be superimposed is smaller than the virtual object, there is a problem that, particularly when the user holds it in their hand, the real object to be superimposed is hidden by the hand and cannot be captured or recognized by the camera mounted on the XR HMD, making it impossible to display the virtual object. For example, as shown in Figure 6, consider a case in which the user holds a real object 61 with a virtual object 62 superimposed thereon in their hand 63. In this case, real object 61 is smaller than virtual object 62, and as shown at the tip of arrow A1, when real object 61 is hidden by the user's hand 63 and cannot be recognized, it becomes impossible to superimpose virtual object 62 on real object 61 and display it.
本開示では、仮想物体と、その重畳対象である現実物体(以下、重畳対象の現実物体ともいう)との形状や大きさが異なることに起因して、ユーザが仮想物体の把持したい部分を把持できないなどの問題に対し、重畳対象の現実物体とは異なる現実物体(以下、第2の現実物体ともいう)の状況に応じて仮想物体の表示を変化させることで、仮想物体を適切に表示する手法を提案する。 This disclosure proposes a method for appropriately displaying a virtual object by changing the display of the virtual object depending on the status of a real object (hereinafter also referred to as a second real object) that is different from the real object that is the superimposed object, in response to issues such as the user being unable to grasp the desired part of the virtual object due to differences in shape or size between the virtual object and the real object that is the superimposed object (hereinafter also referred to as the superimposed real object).
<システム構成>
図7は、本開示を適用した情報処理装置の一実施の形態の構成例を示すブロック図である。
<System Configuration>
FIG. 7 is a block diagram showing a configuration example of an embodiment of an information processing device to which the present disclosure is applied.
図7において、情報処理装置70は、センサ部71、物体検出部72、トリガ検出部73、重畳対象決定部74、把持領域決定部75、データ管理部76、データ保存部77、仮想物位置決定部78、描画部79、及び表示部80から構成される。 In FIG. 7, the information processing device 70 is composed of a sensor unit 71, an object detection unit 72, a trigger detection unit 73, a superimposition target determination unit 74, a gripping area determination unit 75, a data management unit 76, a data storage unit 77, a virtual object position determination unit 78, a drawing unit 79, and a display unit 80.
センサ部71は、イメージセンサ、ジャイロセンサ、加速度センサ等の各種センサで構成される。センサ部71は、各種センサによるセンシングを行い、その結果得られるセンサデータ(画像データ等)を、物体検出部72、仮想物位置決定部78、表示部80に出力する。 The sensor unit 71 is composed of various sensors such as an image sensor, a gyro sensor, and an acceleration sensor. The sensor unit 71 performs sensing using the various sensors and outputs the resulting sensor data (image data, etc.) to the object detection unit 72, the virtual object position determination unit 78, and the display unit 80.
例えば、イメージセンサは、デバイス前面の現実世界をビデオシースルー画像として撮影することができる。物体認識や位置姿勢推定等の環境認識処理の入力として用いる画像を撮影するイメージセンサを、ビデオシースルー画像撮影用のイメージセンサとは別に設けてもよい。IMU(Inertial Measurement Unit)のような慣性センサ(ジャイロセンサ、加速度センサ)を設けてもよい。情報処理装置70がXR HMDとして構成される場合、XR HMDを装着したユーザの視線検出のために、ユーザの眼球を撮影するイメージセンサを設けてもよい。 For example, the image sensor can capture the real world in front of the device as a video see-through image. An image sensor that captures images to be used as input for environmental recognition processing such as object recognition and position and orientation estimation may be provided separately from the image sensor for capturing video see-through images. An inertial sensor (gyro sensor, acceleration sensor) such as an IMU (Inertial Measurement Unit) may also be provided. If the information processing device 70 is configured as an XR HMD, an image sensor that captures the user's eyeballs may be provided to detect the line of sight of the user wearing the XR HMD.
物体検出部72は、センサ部71から出力された画像データに基づいて、仮想物体の重畳対象の現実物体や、その現実物体を把持するユーザの手など、任意の現実物体の位置及び姿勢を推定する。任意の現実物体の位置及び姿勢の推定には、例えば、公知の3D物体認識技術を用いることができる。物体検出部72は、検出結果(推定結果)を、トリガ検出部73、重畳対象決定部74、把持領域決定部75、仮想物位置決定部78に出力する。 The object detection unit 72 estimates the position and orientation of any real object, such as a real object onto which a virtual object is to be superimposed or the user's hand holding that real object, based on the image data output from the sensor unit 71. To estimate the position and orientation of any real object, for example, known 3D object recognition technology can be used. The object detection unit 72 outputs the detection results (estimation results) to the trigger detection unit 73, the superimposition target determination unit 74, the gripping area determination unit 75, and the virtual object position determination unit 78.
トリガ検出部73は、物体検出部72から出力される検出結果に基づいて、ユーザの決定動作を検出する。例えば、トリガ検出部73は、物体検出部72により検出されたユーザの手が特定の形状であるか否かを判定し、特定の形状であると判定した場合に、ユーザの決定動作を検出したとみなすことができる。トリガ検出部73は、検出結果(決定トリガ)を、重畳対象決定部74、把持領域決定部75、仮想物位置決定部78に出力する。 The trigger detection unit 73 detects the user's decision action based on the detection result output from the object detection unit 72. For example, the trigger detection unit 73 determines whether the user's hand detected by the object detection unit 72 has a specific shape, and if it determines that the hand has a specific shape, it can consider that the user's decision action has been detected. The trigger detection unit 73 outputs the detection result (decision trigger) to the superimposition target determination unit 74, the grip area determination unit 75, and the virtual object position determination unit 78.
重畳対象決定部74は、物体検出部72から出力される検出結果、及びトリガ検出部73から出力される検出結果(決定トリガ)に基づいて、重畳対象の現実物体を決定する。ここでは、複数の物体が検出され得るため、例えば、画面内で最も中央領域に存在する物体や、視線検出機能が搭載されている場合にはユーザが注視している物体を選択状態とし、決定トリガを検出したときに選択状態にある物体を、重畳対象の現実物体とすることができる。重畳対象決定部74は、決定結果(重畳対象の現実物体)を、把持領域決定部75に出力する。 The superimposition target determination unit 74 determines the real object to be superimposed based on the detection results output from the object detection unit 72 and the detection results (decision trigger) output from the trigger detection unit 73. Since multiple objects can be detected here, for example, the object that is most central on the screen, or the object the user is gazing at if a gaze detection function is installed, can be selected, and the object that is selected when the decision trigger is detected can be set as the real object to be superimposed. The superimposition target determination unit 74 outputs the determination result (real object to be superimposed) to the gripping area determination unit 75.
把持領域決定部75は、重畳対象決定部74から出力される決定結果に基づいて、重畳対象の現実物体と、描画部79により描画された仮想物体とが一定距離未満であるか否かを判定する。把持領域決定部75は、重畳対象の現実物体と仮想物体とが一定距離未満であると判定した場合、仮想物体を半透過又はワイヤフレームで描画させるための命令を、描画部79に出力する。また、把持領域決定部75は、トリガ検出部73から出力される検出結果(把持領域の決定トリガ)を受け取ったとき、重畳対象の現実物体と仮想物体の位置関係、及び重畳対象の現実物体に対する第2の現実物体(例えばユーザの手)の位置から、重畳対象の現実物体における把持領域と把持原点を決定し、その決定結果をデータ管理部76に出力(通知)する。 Based on the determination result output from the superimposition target determination unit 74, the gripping area determination unit 75 determines whether the distance between the real object to be superimposed and the virtual object drawn by the drawing unit 79 is less than a certain distance. If the gripping area determination unit 75 determines that the distance between the real object to be superimposed and the virtual object is less than a certain distance, it outputs a command to the drawing unit 79 to draw the virtual object semi-transparently or in a wireframe. Furthermore, when the gripping area determination unit 75 receives the detection result (gripping area determination trigger) output from the trigger detection unit 73, it determines the gripping area and grip origin for the real object to be superimposed based on the positional relationship between the real object to be superimposed and the virtual object, and the position of a second real object (e.g., the user's hand) relative to the real object to be superimposed, and outputs (notifies) the determination result to the data management unit 76.
データ管理部76は、把持領域決定部75から通知された決定結果(例えば、重畳対象の現実物体の種類、紐付けられた仮想物体の種類、位置関係、及び重畳対象の現実物体における把持領域と把持原点)をデータとして保持する。データ管理部76がデータを保持する領域は、通常、揮発性メモリであり、デバイス電源オフ、アプリケーション終了時、スタンバイ時などに、データ保存部77にデータを書き込む。また、データ管理部76は、デバイス電源オン、アプリケーション起動時などに、データ保存部77からデータを読み出す。データ保存部77は、NAND型フラッシュメモリ等の不揮発性メモリで構成され、データ管理部76からのデータを保存する。 The data management unit 76 stores the determination results notified by the grasping area determination unit 75 (for example, the type of real object to be superimposed, the type of linked virtual object, the positional relationship, and the grasping area and grasping origin of the real object to be superimposed) as data. The area in which the data management unit 76 stores data is typically volatile memory, and data is written to the data storage unit 77 when the device is powered off, an application is terminated, or the device is in standby mode. The data management unit 76 also reads data from the data storage unit 77 when the device is powered on, an application is started, or the like. The data storage unit 77 is made up of non-volatile memory such as NAND flash memory, and stores data from the data management unit 76.
仮想物位置決定部78は、センサ部71から出力されるセンサデータ、物体検出部72から出力される検出結果、トリガ検出部73から出力される検出結果、又はデータ管理部76からのデータに基づいて、ユーザが指定した位置や設定値に従って仮想物体を描画させるための命令を、描画部79に出力する。 The virtual object position determination unit 78 outputs to the drawing unit 79 a command to draw a virtual object according to the position and setting values specified by the user, based on the sensor data output from the sensor unit 71, the detection results output from the object detection unit 72, the detection results output from the trigger detection unit 73, or data from the data management unit 76.
例えば、ユーザの指定は、物体検出部72により検出された平面の任意の位置を、ユーザの指で指定した状態又は視線を向けた状態で、トリガ検出部73から出力される決定トリガを受け取ることで決定される。XR HMDやスマートフォン向けのARアプリケーションでは、SLAM(Simultaneous Localization and Mapping)やVIO(Visual Inertial Odometry)などによる自己位置姿勢推定技術が実装されており、現実空間における撮影カメラの3次元座標を取得することができる。この技術を利用して、カメラとの任意の相対位置に、仮想物体を表示してもよい。データ管理部76が、重畳対象の現実物体に対する設定値(重畳に関する設定値)を保持している場合、仮想物位置決定部78は、データ管理部76から受け取った設定値に従って仮想物体を描画するように、描画部79に命令する。 For example, the user's designation is determined by receiving a decision trigger output from the trigger detection unit 73 while the user is designating any position on the plane detected by the object detection unit 72 with their finger or by directing their gaze. AR applications for XR HMDs and smartphones implement self-position and orientation estimation technologies such as SLAM (Simultaneous Localization and Mapping) and VIO (Visual Inertial Odometry), which make it possible to obtain the three-dimensional coordinates of the shooting camera in real space. This technology may be used to display a virtual object at any relative position to the camera. If the data management unit 76 holds setting values for the real object to be superimposed (setting values related to superimposition), the virtual object position determination unit 78 commands the drawing unit 79 to draw the virtual object in accordance with the setting values received from the data management unit 76.
描画部79は、仮想物位置決定部78から出力された命令(位置や姿勢等の描画の命令)に基づいて、3DCG(3 Dimensional Computer Graphics)技術を用いて、仮想物体を描画する。表示部80は、センサ部71から出力される画像データに基づく画像(現実世界をキャプチャした画像)と、描画部79から出力される描画結果に基づく画像(仮想物体)とを合成し、表示デバイスに表示する。表示デバイスは、LCD(Liquid Crystal Display)パネル、有機EL(Electro Luminescence)パネルなどで構成される。情報処理装置70がXR HMDとして構成される場合、表示部80には、光学エンジンも搭載される。 The rendering unit 79 renders virtual objects using 3DCG (3-Dimensional Computer Graphics) technology based on commands (commands for rendering position, orientation, etc.) output from the virtual object position determination unit 78. The display unit 80 combines an image (an image capturing the real world) based on the image data output from the sensor unit 71 with an image (virtual object) based on the rendering results output from the rendering unit 79, and displays it on a display device. The display device may be configured as an LCD (Liquid Crystal Display) panel, an organic EL (Electro Luminescence) panel, or the like. When the information processing device 70 is configured as an XR HMD, the display unit 80 is also equipped with an optical engine.
以上のように構成される情報処理装置70において、物体検出部72、トリガ検出部73、重畳対象決定部74、把持領域決定部75、仮想物位置決定部78、及び描画部79は、制御部70Aの機能として提供される。制御部70Aの機能は、CPU(Central Processing Unit)等のプロセッサがプログラムを実行することで実現される。プロセッサは、1つに限らず、2つ以上搭載されてもよい。例えば、描画部79がGPU(Graphics Processing Unit)で構成され、物体検出部72、トリガ検出部73、重畳対象決定部74、把持領域決定部75、仮想物位置決定部78が、CPUで構成されてもよい。 In the information processing device 70 configured as described above, the object detection unit 72, trigger detection unit 73, superimposition target determination unit 74, gripping area determination unit 75, virtual object position determination unit 78, and drawing unit 79 are provided as functions of the control unit 70A. The functions of the control unit 70A are realized by a processor such as a CPU (Central Processing Unit) executing a program. The number of processors is not limited to one, and two or more processors may be installed. For example, the drawing unit 79 may be configured as a GPU (Graphics Processing Unit), and the object detection unit 72, trigger detection unit 73, superimposition target determination unit 74, gripping area determination unit 75, and virtual object position determination unit 78 may be configured as a CPU.
情報処理装置70は、例えば、XR HMD,スマートフォン、3Dディスプレイ、撮影用カメラなどの機器として構成することができる。 The information processing device 70 can be configured as a device such as an XR HMD, a smartphone, a 3D display, or a camera for photography.
図8は、本開示を適用したXR HMDの構成例を示す図である。図8において、XR HMD92は、ユーザ91の頭部に装着され、頭部を覆う部分の前面にはセンサ部93、背面には表示部94が設けられる。XR HMD92は、図7の情報処理装置70と同様の構成を有し、センサ部93は、図7のセンサ部71に相当し、表示部94は、図7の表示部80に相当する。図7の物体検出部72等の機能については、XR HMD92に搭載されたCPU等のプロセッサがプログラムを実行することで実現される。図8において、ユーザ91は、センサ部93の撮影範囲内で重畳対象の現実物体95を手(第2の現実物体)で把持しており、表示部94に表示される、重畳対象の現実物体95に重畳された仮想物体を見ることができる。 FIG. 8 is a diagram showing an example configuration of an XR HMD to which the present disclosure is applied. In FIG. 8, an XR HMD 92 is worn on the head of a user 91, with a sensor unit 93 provided on the front of the part covering the head and a display unit 94 on the back. The XR HMD 92 has a configuration similar to that of the information processing device 70 in FIG. 7, with the sensor unit 93 corresponding to the sensor unit 71 in FIG. 7 and the display unit 94 corresponding to the display unit 80 in FIG. 7. Functions such as the object detection unit 72 in FIG. 7 are realized by a processor such as a CPU mounted on the XR HMD 92 executing a program. In FIG. 8, the user 91 is holding a real object 95 to be superimposed in his or her hand (second real object) within the shooting range of the sensor unit 93, and can see a virtual object superimposed on the real object 95 to be superimposed, which is displayed on the display unit 94.
図9は、本開示を適用したスマートフォンの構成例を示す図である。図9において、スマートフォン102は、ユーザ101の手により把持され、筐体の背面にはセンサ部103、前面には表示部104が設けられる。スマートフォン102は、図7の情報処理装置70と同様の構成を有し、センサ部103は、図7のセンサ部71に相当し、表示部104は、図7の表示部80に相当する。図7の物体検出部72等の機能については、スマートフォン102に搭載されたCPU等のプロセッサがプログラムを実行することで実現される。図9において、ユーザ101は、スマートフォン102を一方の手で、センサ部103の撮影範囲内で重畳対象の現実物体105を他方の手(第2の現実物体)で把持しており、表示部104に表示される、重畳対象の現実物体105に重畳された仮想物体を見ることができる。 FIG. 9 is a diagram showing an example configuration of a smartphone to which the present disclosure is applied. In FIG. 9, a smartphone 102 is held in the hand of a user 101, and a sensor unit 103 is provided on the back of the housing and a display unit 104 is provided on the front. The smartphone 102 has a configuration similar to that of the information processing device 70 in FIG. 7, with the sensor unit 103 corresponding to the sensor unit 71 in FIG. 7 and the display unit 104 corresponding to the display unit 80 in FIG. 7. Functions such as the object detection unit 72 in FIG. 7 are realized by a processor such as a CPU mounted on the smartphone 102 executing a program. In FIG. 9, the user 101 holds the smartphone 102 in one hand and a real object 105 to be superimposed within the shooting range of the sensor unit 103 with the other hand (second real object), and can view a virtual object superimposed on the real object 105 to be superimposed, which is displayed on the display unit 104.
図10は、本開示を適用した据え置き型の3Dディスプレイの構成例を示す図である。図10において、3Dディスプレイ112は、任意の場所に設置され、所定の位置にいるユーザ111に対してセンサ部113と表示部114が設けられる。3Dディスプレイ112は、図7の情報処理装置70と同様の構成を有し、センサ部113は、図7のセンサ部71に相当し、表示部114は、図7の表示部80に相当する。図7の物体検出部72等の機能については、3Dディスプレイ112に搭載されたCPU等のプロセッサがプログラムを実行することで実現される。図10において、ユーザ111は、センサ部113の撮影範囲内で重畳対象の現実物体115を手(第2の現実物体)で把持しており、表示部114で3D表示される、重畳対象の現実物体115に重畳された仮想物体を見ることができる。 10 is a diagram showing an example configuration of a stationary 3D display to which the present disclosure is applied. In FIG. 10, a 3D display 112 is installed in an arbitrary location, and a sensor unit 113 and a display unit 114 are provided for a user 111 who is in a predetermined position. The 3D display 112 has a configuration similar to that of the information processing device 70 in FIG. 7, with the sensor unit 113 corresponding to the sensor unit 71 in FIG. 7 and the display unit 114 corresponding to the display unit 80 in FIG. 7. The functions of the object detection unit 72 in FIG. 7 and the like are realized by a processor such as a CPU mounted on the 3D display 112 executing a program. In FIG. 10, the user 111 is holding a real object 115 to be superimposed in his or her hand (second real object) within the shooting range of the sensor unit 113, and can view a virtual object superimposed on the real object 115 to be superimposed, which is displayed in 3D on the display unit 114.
図11は、本開示を適用した撮影用カメラの構成例を示す図である。図11において、撮影用カメラ122は、センサ部123と表示部124を有し、任意の場所に設置されて第1ユーザ121により操作される。撮影用カメラ122は、図7の情報処理装置70と同様の構成を有し、センサ部123は、図7のセンサ部71に相当し、表示部124は、図7の表示部80に相当する。図7の物体検出部72等の機能については、撮影用カメラ122に搭載されたCPU等のプロセッサがプログラムを実行することで実現される。図11において、センサ部123の撮影範囲内で、第2ユーザ125が重畳対象の現実物体126を手(第2の現実物体)で把持しており、第1ユーザ121は、表示部124に表示される、重畳対象の現実物体126に重畳された仮想物体を見ることができる。 11 is a diagram showing an example configuration of a photographing camera to which the present disclosure is applied. In FIG. 11, photographing camera 122 has a sensor unit 123 and a display unit 124, is installed in an arbitrary location, and is operated by first user 121. Photographing camera 122 has a configuration similar to that of information processing device 70 in FIG. 7, with sensor unit 123 corresponding to sensor unit 71 in FIG. 7 and display unit 124 corresponding to display unit 80 in FIG. 7. Functions such as object detection unit 72 in FIG. 7 are realized by a processor such as a CPU mounted on photographing camera 122 executing a program. In FIG. 11, second user 125 is holding real object 126 to be superimposed in his hand (second real object) within the photographing range of sensor unit 123, and first user 121 can see a virtual object superimposed on real object 126 to be superimposed, which is displayed on display unit 124.
トリガ検出は、図7の情報処理装置70の構成で示したような、トリガ検出部73によるジェスチャ判定に限らず、例えば、コントローラ型デバイス、XR HMDと接続したPC(Personal Computer)に接続されたキーボード等の入力デバイス、ユーザによる音声入力又は外部からネットワーク経由で命令(コマンド)を受信するパケット受信プログラムなどであってもよい。そのようなデバイスやプログラムを用いて、トリガ検出を行う場合の構成を、図12に示している。 Trigger detection is not limited to gesture determination by the trigger detection unit 73 as shown in the configuration of the information processing device 70 in Figure 7, but may also be, for example, a controller-type device, an input device such as a keyboard connected to a PC (Personal Computer) connected to the XR HMD, or a packet reception program that receives voice input from the user or commands from an external source via a network. Figure 12 shows a configuration for performing trigger detection using such devices and programs.
図12は、本開示を適用した情報処理装置の一実施の形態の他の構成例を示すブロック図である。図12において、情報処理装置130は、センサ部131、物体検出部132、トリガ検出部133、重畳対象決定部134、把持領域決定部135、データ管理部136、データ保存部137、仮想物位置決定部138、描画部139、及び表示部140を備える。 FIG. 12 is a block diagram showing another example configuration of an embodiment of an information processing device to which the present disclosure is applied. In FIG. 12, the information processing device 130 includes a sensor unit 131, an object detection unit 132, a trigger detection unit 133, a superimposition target determination unit 134, a gripping area determination unit 135, a data management unit 136, a data storage unit 137, a virtual object position determination unit 138, a drawing unit 139, and a display unit 140.
トリガ検出部133は、コントローラや入力デバイスのボタン入力等をトリガとすることができる。また、トリガ検出部133は、インターネット等のネットワークでパケットとして受信した命令をトリガとしてもよい。トリガ検出部133は、検出結果(決定トリガ)を、重畳対象決定部134、把持領域決定部135、仮想物位置決定部138に出力する。 The trigger detection unit 133 can use a button input from a controller or input device as a trigger. The trigger detection unit 133 may also use a command received as a packet over a network such as the Internet as a trigger. The trigger detection unit 133 outputs the detection result (decision trigger) to the superimposition target determination unit 134, the grasped area determination unit 135, and the virtual object position determination unit 138.
図12において、トリガ検出部133を除いたその他の構成は、図7に示した構成と同様であるため、その説明は省略する。なお、図12の情報処理装置130においても、物体検出部132、トリガ検出部133、重畳対象決定部134、把持領域決定部135、仮想物位置決定部138、及び描画部139は、制御部130Aの機能として提供される。制御部130Aの機能は、1以上のプロセッサがプログラムを実行することで実現される。 In FIG. 12, the configuration other than the trigger detection unit 133 is the same as the configuration shown in FIG. 7, and therefore a description thereof will be omitted. Note that in the information processing device 130 of FIG. 12, the object detection unit 132, trigger detection unit 133, superimposition target determination unit 134, gripping area determination unit 135, virtual object position determination unit 138, and drawing unit 139 are also provided as functions of the control unit 130A. The functions of the control unit 130A are realized by one or more processors executing programs.
<処理の流れ>
図13は、重畳対象の現実物体に対して仮想物体を表示する処理の流れを示すフローチャートである。図13においては、図7の情報処理装置70の制御部70Aによって処理が実行されるとして説明するが、図12の情報処理装置130の制御部130Aによって処理が実行されてもよい。以降の図に示した他のフローチャートの処理についても同様である。
<Processing flow>
Fig. 13 is a flowchart showing the flow of processing for displaying a virtual object on a real object to be superimposed. In Fig. 13, the processing is described as being executed by the control unit 70A of the information processing device 70 in Fig. 7, but the processing may also be executed by the control unit 130A of the information processing device 130 in Fig. 12. The same applies to the processing of the other flowcharts shown in the subsequent figures.
ステップS11では、データ管理部76が、データ保存部77から設定値(データ)を読み込む。ステップS12では、仮想物位置決定部78が、ユーザの指定した場所に仮想物体を描画するように描画部79に命令し、描画部79による描画結果を、表示部80が表示する。ステップS13では、重畳対象決定部74が、物体検出部72による検出結果と、トリガ検出部73による検出結果(ユーザの決定トリガ)に基づき、重畳対象の現実物体を選択(決定)する。 In step S11, the data management unit 76 reads setting values (data) from the data storage unit 77. In step S12, the virtual object position determination unit 78 commands the drawing unit 79 to draw a virtual object at a location specified by the user, and the display unit 80 displays the drawing results by the drawing unit 79. In step S13, the superimposition target determination unit 74 selects (determines) a real object to be superimposed based on the detection results by the object detection unit 72 and the detection results by the trigger detection unit 73 (user's decision trigger).
ステップS14では、仮想物位置決定部78が、重畳対象の現実物体に対する設定値が存在するか否かを判定する。ステップS14において、設定値が存在すると判定された場合、処理はステップS15に進められる。ステップS15では、仮想物位置決定部78が、設定値に基づき、重畳対象の現実物体に対して仮想物体を重畳するように描画部79に命令し、描画部79による描画結果を、表示部80が表示する。 In step S14, the virtual object position determination unit 78 determines whether a setting value exists for the real object to be superimposed. If it is determined in step S14 that a setting value exists, processing proceeds to step S15. In step S15, the virtual object position determination unit 78 commands the rendering unit 79 to superimpose the virtual object on the real object to be superimposed based on the setting value, and the display unit 80 displays the rendering result by the rendering unit 79.
一方で、ステップS14において、設定値が存在しないと判定された場合、処理はステップS16に進められる。ステップS16では、把持領域決定部75が、トリガ検出部73によるユーザの決定トリガを検知したか否かを確認する。ステップS16において、決定トリガを検知していない場合、処理はステップS17に進められる。ステップS17では、把持領域決定部75が、現在の重畳対象の現実物体と仮想物体との距離を計測し、仮想物体と現実物体との距離が閾値未満であるか否かを判定する。例えば、距離の計測は、重畳対象の現実物体と仮想物体について、お互いの原点どうしの距離で計算することができる。 On the other hand, if it is determined in step S14 that a set value does not exist, processing proceeds to step S16. In step S16, the gripping area determination unit 75 checks whether a user decision trigger has been detected by the trigger detection unit 73. If a decision trigger has not been detected in step S16, processing proceeds to step S17. In step S17, the gripping area determination unit 75 measures the distance between the current real object and virtual object to be superimposed, and determines whether the distance between the virtual object and real object is less than a threshold. For example, the distance can be measured by calculating the distance between the origins of the real object and virtual object to be superimposed.
ステップS17において、距離が閾値未満であると判定された場合、処理はステップS18に進められる。ステップS18では、把持領域決定部75が、仮想物体をワイヤフレームで表示するように描画部79に命令し、描画部79による描画結果を、表示部80が表示する。図14は、仮想物体と現実物体との距離に応じて、仮想物体をワイヤフレーム表示した例を示す図である。図14においては、仮想物体151と、重畳対象として選択された現実物体152と、重畳対象の現実物体152を把持したユーザの手153を示している。矢印A1の先に示すように、重畳対象の現実物体152が、仮想物体151に近い位置にある場合、仮想物体151はワイヤフレームで表示される。ワイヤフレーム表示では、面を使わずに、頂点と線で表現した形状が表示される。 If it is determined in step S17 that the distance is less than the threshold, the process proceeds to step S18. In step S18, the grasping area determination unit 75 commands the drawing unit 79 to display the virtual object in a wireframe, and the display unit 80 displays the drawing result by the drawing unit 79. Figure 14 is a diagram showing an example of a virtual object displayed in a wireframe according to the distance between the virtual object and a real object. Figure 14 shows a virtual object 151, a real object 152 selected as an object to be superimposed, and a user's hand 153 holding the real object 152 to be superimposed. As indicated by the tip of arrow A1, if the real object 152 to be superimposed is located close to the virtual object 151, the virtual object 151 is displayed in a wireframe. In the wireframe display, a shape represented by vertices and lines is displayed without using surfaces.
一方で、ステップS17において、距離が閾値以上であると判定された場合、処理はステップS19に進められる。ステップS19では、把持領域決定部75が、仮想物体をワイヤフレームで表示しないように描画部79に命令し、描画部79による描画結果を、表示部80が表示する。例えば、図14において、矢印A1の元(始点側)に示すように、重畳対象の現実物体152が、仮想物体151から離れた位置にある場合、仮想物体151のワイヤフレーム表示は終了される。なお、この例では、仮想物体と重畳対象の現実物体との位置関係を紐付ける前である場合に、仮想物体と重畳対象の現実物体との距離が閾値未満であるとき、仮想物体をワイヤフレームで表示する例を示したが、ワイヤフレーム表示に限らず、他の表示形態で表示してもよい。例えば、仮想物体を半透過で表示して、所定の透過度(透明度)で透過させてもよい。ステップS18又はS19が終了すると、処理はステップS16に戻り、それ以降の処理が繰り返される。 On the other hand, if it is determined in step S17 that the distance is equal to or greater than the threshold, the process proceeds to step S19. In step S19, the gripping area determination unit 75 instructs the rendering unit 79 not to display the virtual object in a wireframe, and the display unit 80 displays the rendering result by the rendering unit 79. For example, as shown at the base (starting point) of arrow A1 in FIG. 14, if the superimposed real object 152 is located far from the virtual object 151, the wireframe display of the virtual object 151 is terminated. Note that in this example, the virtual object is displayed in a wireframe when the distance between the virtual object and the superimposed real object is less than the threshold before the positional relationship between the virtual object and the superimposed real object is linked. However, this is not limited to a wireframe display, and other display formats may also be used. For example, the virtual object may be displayed semi-transparently with a predetermined transparency. When step S18 or S19 ends, the process returns to step S16, and the subsequent processes are repeated.
ステップS16において、決定トリガを検知した場合、処理はステップS20に進められる。ステップS20では、把持領域決定部75が、ユーザが重畳対象の現実物体を把持しているか否かを判定する。ステップS20において、現実物体を把持していないと判定された場合、処理はステップS16に戻り、それ以降の処理が繰り返される。また、ステップS20において、現実物体を把持していると判定された場合、処理はステップS21に進められる。 If a decision trigger is detected in step S16, processing proceeds to step S20. In step S20, the grasping area determination unit 75 determines whether or not the user is grasping the physical object to be superimposed. If it is determined in step S20 that the user is not grasping the physical object, processing returns to step S16, and the subsequent processing is repeated. If it is determined in step S20 that the user is grasping the physical object, processing proceeds to step S21.
ステップS21では、把持領域決定部75が、現在の重畳対象の現実物体と仮想物体との位置関係、及び重畳対象の現実物体に対するユーザの把持位置から、把持原点を決定し、データ管理部76に通知する。そして、データ管理部76が、仮想物体のローカル原点と把持原点を設定値として保存する。ステップS15では、仮想物位置決定部78が、保存された設定値に基づき、重畳対象の現実物体に対して仮想物体を重畳するように描画部79に命令し、描画部79による描画結果を、表示部80が表示する。 In step S21, the grasping area determination unit 75 determines the grasping origin based on the current positional relationship between the real object and virtual object to be superimposed and the user's grasping position relative to the real object to be superimposed, and notifies the data management unit 76. The data management unit 76 then saves the local origin and grasping origin of the virtual object as setting values. In step S15, the virtual object position determination unit 78 commands the rendering unit 79 to superimpose the virtual object on the real object to be superimposed based on the saved setting values, and the display unit 80 displays the rendering result by the rendering unit 79.
図15は、把持原点の設定例を示す図である。図15のA(上段)においては、仮想物体161と、直方体の形状からなる重畳対象の現実物体162と、重畳対象の現実物体162を把持したユーザの手163を示している。ユーザの手163は、重畳対象の現実物体と異なる第2の現実物体である。このとき、把持原点164は、重畳対象の現実物体162と、重畳対象の現実物体162を把持するユーザの手163との位置関係により決定され、通常は、ユーザの手首寄りの手のひら中央付近とされる。 Figure 15 is a diagram showing an example of setting the grip origin. Figure 15A (top row) shows a virtual object 161, a real object 162 to be superimposed that has a rectangular parallelepiped shape, and a user's hand 163 holding the real object 162 to be superimposed. The user's hand 163 is a second real object that is different from the real object to be superimposed. In this case, the grip origin 164 is determined by the positional relationship between the real object 162 to be superimposed and the user's hand 163 holding the real object 162 to be superimposed, and is usually set near the center of the palm of the user near the wrist.
図15のB(下段)に示すように、例えば、重畳対象の現実物体165がコントローラである場合、形状の異なる現実物体に対して、仮想物体161が重畳されることになる。このような場合、図15のBの左側に示すように、重畳対象の現実物体165と一定距離離れた場所(位置)に、仮想物体161を表示してもよい。このとき、重畳対象の現実物体165と、重畳対象の現実物体165を把持するユーザの手163との位置関係から、通常はユーザの手首寄りの手のひら中央付近を把持原点166とするが、次のように設定することができる。すなわち、仮想物体161とユーザの手163が一定距離離れており、重畳対象の現実物体165と仮想物体161が交差していない場合には、その中点を把持原点167に設定してもよい(図15のBの左側)。 As shown in B (bottom) of FIG. 15, for example, if the real object 165 to be superimposed is a controller, the virtual object 161 will be superimposed on a real object of a different shape. In such a case, as shown on the left side of B of FIG. 15, the virtual object 161 may be displayed at a location (position) a certain distance away from the real object 165 to be superimposed. In this case, based on the positional relationship between the real object 165 to be superimposed and the user's hand 163 holding the real object 165 to be superimposed, the grip origin 166 is usually set near the center of the palm of the user's hand near the wrist, but it can be set as follows. That is, if the virtual object 161 and the user's hand 163 are a certain distance apart and the real object 165 to be superimposed and the virtual object 161 do not intersect, the midpoint thereof may be set as the grip origin 167 (left side of B of FIG. 15).
あるいは、図15のBの右側に示すように、重畳対象の現実物体165と仮想物体161が交差しているが、重畳対象の現実物体165を把持するユーザの手163が、仮想物体161から一定距離離れている場合には、交差している領域の中心に、把持原点168を設定することができる。 Alternatively, as shown on the right side of B in Figure 15, if the real object 165 to be superimposed and the virtual object 161 intersect, but the user's hand 163 holding the real object 165 to be superimposed is a certain distance away from the virtual object 161, the grip origin 168 can be set at the center of the intersecting area.
なお、図13のフローチャートでは、把持領域決定部75が、トリガ検出部73によるリセットのトリガを検知した場合、重畳対象の現実物体と仮想物体との位置関係、及び把持原点の設定を消去して、処理はステップS16に戻る。ステップS15の処理が終了すると、一連の処理は終了する。このようにして、図7の情報処理装置70では、制御部70Aによって、仮想物体と重畳対象の現実物体の位置関係、及び把持領域と把持原点が決定されて設定値として保存され、保存された設定値に基づいて仮想物体が表示される。 In the flowchart of FIG. 13, when the grasping area determination unit 75 detects a reset trigger by the trigger detection unit 73, it erases the positional relationship between the real object to be superimposed and the virtual object, and the setting of the grasping origin, and the process returns to step S16. When the process of step S15 ends, the series of processes ends. In this way, in the information processing device 70 of FIG. 7, the control unit 70A determines the positional relationship between the virtual object and the real object to be superimposed, as well as the grasping area and grasping origin, and saves them as setting values, and the virtual object is displayed based on the saved setting values.
<トラッキング対象設定処理の流れ>
図16は、トラッキング対象を設定する処理の流れを示すフローチャートである。この処理は、図13のフローチャートに示した処理によって仮想物体と現実物体の位置関係、及び把持原点が設定済みの仮想物体を、ユーザが手で把持する際に行われる処理とされる。
<Tracking target setting process flow>
Fig. 16 is a flowchart showing the flow of a process for setting a tracking target. This process is performed when a user grasps a virtual object with his/her hand, whose positional relationship between the virtual object and the real object and whose grasping origin have already been set by the process shown in the flowchart of Fig. 13.
ステップS41では、仮想物位置決定部78が、物体検出部72により検出されたユーザの手と、重畳対象の現実物体との距離が閾値未満(一定距離未満)であるか否かを判定する。ステップS41において、距離が閾値未満であると判定された場合、処理はステップS42に進められる。ステップS42では、仮想物位置決定部78が、把持原点から復元した把持領域を仮想物体に重ねて描画するように描画部79に命令し、把持領域を視認できるようにする。 In step S41, the virtual object position determination unit 78 determines whether the distance between the user's hand detected by the object detection unit 72 and the real object to be superimposed is less than a threshold (less than a certain distance). If it is determined in step S41 that the distance is less than the threshold, processing proceeds to step S42. In step S42, the virtual object position determination unit 78 commands the drawing unit 79 to draw the gripping area restored from the gripping origin superimposed on the virtual object, making the gripping area visible.
図17は、仮想物体の把持すべき領域の可視化の例を示す図である。図17においては、仮想物体171を、重畳対象の現実物体172に重畳して表示しているが、重畳対象の現実物体172は、ユーザから視認できない状態にある。このとき、矢印A1の先に示すように、仮想物体171に、ユーザの手173が近づいたとき、重畳対象の現実物体172の把持すべき部分を視認可能となるように、仮想物体の表示が制御される。例えば、重畳対象の現実物体172のどこを把持するのかを示すガイド174を表示したり、重畳対象の現実物体172が視認可能になるように仮想物体171の表示を変更したりする。例えば、仮想物体171の表示の変更に際しては、把持領域を透過又は半透過で表示して、把持領域を所定の透過度(透明度)で透過させてもよい。つまり、仮想物体171と重畳対象の現実物体172との位置関係が紐付けられている場合に、重畳対象の現実物体172と、重畳対象の現実物体172を把持しようとする第2の現実物体(ユーザの手173)との距離が閾値未満であるとき、重畳対象の現実物体172の把持される部分が視認可能となるように、仮想物体171又は仮想物体171と異なる第2の仮想物体(例えばガイド174)の表示が制御される。 17 is a diagram showing an example of visualizing the area of a virtual object to be grasped. In FIG. 17, a virtual object 171 is displayed superimposed on a real object 172 to be superimposed, but the real object 172 is not visible to the user. In this case, as shown by the tip of arrow A1, when the user's hand 173 approaches the virtual object 171, the display of the virtual object is controlled so that the part of the real object 172 to be superimposed that should be grasped becomes visible. For example, a guide 174 indicating which part of the real object 172 to be superimposed should be grasped may be displayed, or the display of the virtual object 171 may be changed so that the real object 172 to be superimposed becomes visible. For example, when changing the display of the virtual object 171, the grasping area may be displayed transparently or semi-transparently, and the grasping area may be made transparent with a predetermined transparency (transparency). In other words, when the positional relationship between the virtual object 171 and the physical object 172 to be superimposed is linked, if the distance between the physical object 172 to be superimposed and a second physical object (user's hand 173) attempting to grasp the physical object 172 to be superimposed is less than a threshold value, the display of the virtual object 171 or a second virtual object different from the virtual object 171 (e.g., guide 174) is controlled so that the portion of the physical object 172 to be superimposed that is being grasped becomes visible.
ステップS43では、物体検出部72が、ユーザの手が重畳対象の現実物体を把持したかどうかを検出する。ステップS43において、ユーザの手が重畳対象の現実物体を把持したことを検出した場合、処理はステップS44に進められる。ステップS44では、物体検出部72が、重畳対象の現実物体と、重畳対象の現実物体を把持した手を1つの物体とみなしてトラッキングの対象とする。つまり、重畳対象の現実物体のみならず、第2の現実物体としての把持した手もトラッキング対象とされる。 In step S43, the object detection unit 72 detects whether the user's hand is grasping the real object to be superimposed. If it is detected in step S43 that the user's hand is grasping the real object to be superimposed, the process proceeds to step S44. In step S44, the object detection unit 72 treats the real object to be superimposed and the hand grasping the real object to be superimposed as a single object and tracks them. In other words, not only the real object to be superimposed but also the grasping hand as a second real object are tracked.
図18は、重畳対象の現実物体と第2の現実物体の特徴点のトラッキングの例を示す図である。図18において、重畳対象の現実物体181の特徴点182を、黒い四角で表している。物体トラッキングは、物体の特徴点群をトラッキングする技術であり、追跡する特徴点が多いほど、ロストし難くなる(追跡できなくなる可能性は低くなる)。矢印A1の先に示すように、重畳対象の現実物体181を、ユーザの手183で把持するとき、ユーザの手183を第2の現実物体として、その特徴点184もトラッキング対象とする。図18において、ユーザの手183の特徴点184を、白い四角で表している。 Figure 18 is a diagram showing an example of tracking feature points of a real object to be superimposed and a second real object. In Figure 18, feature points 182 of real object 181 to be superimposed are represented by black squares. Object tracking is a technique for tracking a group of feature points of an object; the more feature points that are tracked, the less likely an object is to be lost (the less likely it is to become untrackable). As shown at the tip of arrow A1, when real object 181 to be superimposed is held by a user's hand 183, the user's hand 183 becomes the second real object, and its feature points 184 are also tracked. In Figure 18, feature points 184 of user's hand 183 are represented by white squares.
矢印A2の先に示すように、重畳対象の現実物体181とユーザの手183を1つの物体とみなして、特徴点182と特徴点184を含む特徴点群をトラッキング対象として追跡するトラッキングが行われる。このように、仮想物体と重畳対象の現実物体との位置関係が紐付けられている場合に、重畳対象の現実物体が第2の現実物体(ユーザの手)で把持されたとき、重畳対象の現実物体と第2の現実物体の特徴点をトラッキング対象とし、第2の現実物体をもトラッキング対象に含めるようにする。これにより、第2の現実物体によって、重畳対象の現実物体の少なくとも一部が遮蔽されてその特徴点が見えなくなったとしても、第2の現実物体の特徴点をトラッキングすることで、少なくとも第2の現実物体の特徴点のトラッキング結果に基づき、重畳対象の現実物体がロストする確率を減らすことができる。 As indicated by the tip of arrow A2, superimposed real object 181 and user's hand 183 are considered to be a single object, and tracking is performed by tracking a group of feature points including feature point 182 and feature point 184 as the tracking target. In this way, when the positional relationship between the virtual object and the superimposed real object is linked, when the superimposed real object is grasped by a second real object (the user's hand), the feature points of the superimposed real object and the second real object are tracked, and the second real object is also included in the tracking targets. In this way, even if at least a portion of the superimposed real object is occluded by the second real object and its feature points become invisible, by tracking the feature points of the second real object, the probability of the superimposed real object being lost can be reduced based on the tracking results of at least the feature points of the second real object.
そして、制御部70Aでは、トラッキング結果に基づいて、重畳対象の現実物体に重畳される仮想物体の表示を制御する。例えば、第2の現実物体の位置と姿勢、及び把持時の第2の現実物体と重畳対象の現実物体との位置関係に基づいて、仮想物体の表示を制御することができる。なお、ステップS41における第2の現実物体(ユーザの手)との比較対象は、重畳対象の現実物体に限らず、例えば、仮想物体や把持原点等であってもよく、仮想物体や把持原点等との距離が閾値未満であるか否かを判定してもよい。要は、第2の現実物体(ユーザの手)により把持される重畳対象の現実物体の把持領域を視認可能にするタイミングとして、適切なタイミングが決定されればよい。 Then, the control unit 70A controls the display of the virtual object to be superimposed on the real object to be superimposed based on the tracking results. For example, the display of the virtual object can be controlled based on the position and orientation of the second real object, and the positional relationship between the second real object and the real object to be superimposed when grasped. Note that the object compared with the second real object (user's hand) in step S41 is not limited to the real object to be superimposed, but may also be, for example, a virtual object or a grasp origin, and it may be determined whether the distance to the virtual object or the grasp origin is less than a threshold. In short, it is sufficient to determine an appropriate timing for making visible the grasp area of the real object to be superimposed, grasped by the second real object (user's hand).
<仮想物体の拡大・縮小・回転処理の流れ>
図19は、重畳対象の現実物体に重畳した仮想物体を拡大、縮小、回転する処理の流れを示すフローチャートである。
<Flow of processing for enlarging, reducing, and rotating virtual objects>
FIG. 19 is a flowchart showing the flow of processing for enlarging, reducing, and rotating a virtual object superimposed on a target real object.
ステップS61では、仮想物位置決定部78が、トリガ検出部73による拡大トリガを検知したか否かを確認する。ステップS61において、拡大トリガを検知した場合、処理はステップS62に進められる。ステップS62では、仮想物位置決定部78が、設定値として保存された把持原点の座標系のx, y, zの正の向きに仮想物体を拡大して描画をするように、描画部79に命令する。 In step S61, the virtual object position determination unit 78 checks whether an enlargement trigger has been detected by the trigger detection unit 73. If an enlargement trigger is detected in step S61, the process proceeds to step S62. In step S62, the virtual object position determination unit 78 commands the drawing unit 79 to enlarge and draw the virtual object in the positive x, y, and z directions of the coordinate system of the grip origin saved as setting values.
図20は、仮想物体の拡大の例を示す図である。図20においては、仮想物体191と、重畳対象の現実物体193と、重畳対象の現実物体193を把持するユーザの手194を示している。拡大トリガが検知されたとき、重畳対象の現実物体193とユーザの手194の状況に応じて決定された把持原点195を起点にして、仮想物体191が拡大され、仮想物体192が表示される。つまり、拡大前の仮想物体191を拡大することで、拡大後の仮想物体192が表示される。なお、この例では、仮想物体をワイヤフレーム表示した場合の例を示している。 Figure 20 is a diagram showing an example of enlarging a virtual object. Figure 20 shows a virtual object 191, a real object 193 to be superimposed, and a user's hand 194 holding the real object 193 to be superimposed. When an enlargement trigger is detected, the virtual object 191 is enlarged, starting from a grip origin 195 determined according to the state of the real object 193 to be superimposed and the user's hand 194, and virtual object 192 is displayed. In other words, by enlarging the virtual object 191 before enlargement, the enlarged virtual object 192 is displayed. Note that this example shows a case where the virtual object is displayed as a wireframe.
ステップS61において、拡大トリガを検知していない場合、処理はステップS63に進められる。ステップS63では、仮想物位置決定部78が、トリガ検出部73による縮小トリガを検知したか否かを確認する。ステップS63において、縮小トリガを検知した場合、処理はステップS64に進められる。ステップS64では、仮想物位置決定部78が、設定値として保存された把持原点の座標系のx, y, zの負の向きに仮想物体を縮小して描画をするように、描画部79に命令する。例えば、図20において、縮小前の仮想物体192を縮小することで、縮小後の仮想物体191が表示される。 If an enlargement trigger is not detected in step S61, the process proceeds to step S63. In step S63, the virtual object position determination unit 78 checks whether a reduction trigger has been detected by the trigger detection unit 73. If a reduction trigger is detected in step S63, the process proceeds to step S64. In step S64, the virtual object position determination unit 78 commands the drawing unit 79 to reduce and draw the virtual object in the negative x, y, and z directions of the coordinate system of the grip origin saved as the setting values. For example, in FIG. 20, by reducing the virtual object 192 before reduction, the reduced virtual object 191 is displayed.
ステップS63において、縮小トリガを検知していない場合、処理はステップS65に進められる。ステップS65では、仮想物位置決定部78が、トリガ検出部73による回転トリガを検知したか否かを確認する。ステップS65において、回転トリガを検知した場合、処理はステップS66に進められる。ステップS66では、仮想物位置決定部78が、設定値として保存された把持原点を中心に仮想物体を回転して描画をするように、描画部79に命令する。 If a reduction trigger is not detected in step S63, processing proceeds to step S65. In step S65, the virtual object position determination unit 78 checks whether a rotation trigger has been detected by the trigger detection unit 73. If a rotation trigger is detected in step S65, processing proceeds to step S66. In step S66, the virtual object position determination unit 78 commands the drawing unit 79 to rotate and draw the virtual object around the grip origin point saved as a setting value.
図21は、仮想物体の回転の例を示す図である。図21においては、仮想物体201と、重畳対象の現実物体202と、重畳対象の現実物体202を把持するユーザの手203を示している。矢印A1の先に示すように、回転トリガが検知されたとき、重畳対象の現実物体202とユーザの手203の状況に応じて決定された把持原点204を起点として、回転させた仮想物体201が表示される。つまり、破線で示した回転前の仮想物体201を、矢印A2の方向(反時計回り)に回転させることで、実線で示した回転後の仮想物体201が表示される。 FIG. 21 is a diagram showing an example of virtual object rotation. FIG. 21 shows a virtual object 201, a real object 202 to be superimposed, and a user's hand 203 grasping the real object 202 to be superimposed. As indicated by the tip of arrow A1, when a rotation trigger is detected, the virtual object 201 is displayed rotated from a grasping origin 204 determined according to the state of the real object 202 to be superimposed and the user's hand 203. In other words, by rotating the unrotated virtual object 201 indicated by the dashed line in the direction of arrow A2 (counterclockwise), the rotated virtual object 201 indicated by the solid line is displayed.
ステップS62,S64,S66が終了すると、処理はステップS61に戻り、上述した処理が繰り返される。また、ステップS61,S63,S65でいずれのトリガも検知していない場合には、一連の処理は終了する。 Once steps S62, S64, and S66 are completed, processing returns to step S61, and the above-described processing is repeated. Furthermore, if no trigger is detected in steps S61, S63, or S65, the series of processing steps ends.
<重畳対象の平面配置時の処理の流れ>
図22は、重畳対象の現実物体を平面に配置する際の処理の流れを示すフローチャートである。
<Processing flow when arranging superimposition targets on a plane>
FIG. 22 is a flowchart showing the flow of processing when a physical object to be superimposed is arranged on a plane.
ステップS81では、物体検出部72が、重畳対象の現実物体が平面に置かれたことを検知する。ステップS82では、仮想物位置決定部78が、設定値として保存された把持原点を中心として、平面に対して鉛直になるように仮想物体を回転して描画をするように、描画部79に命令する。 In step S81, the object detection unit 72 detects that the real object to be superimposed has been placed on the plane. In step S82, the virtual object position determination unit 78 commands the rendering unit 79 to rotate the virtual object around the grip origin saved as a setting value, so that it is perpendicular to the plane, and render it.
図23は、仮想物体を平面に対して鉛直になるように回転した例を示す図である。図23において、仮想物体211と、重畳対象の現実物体212と、重畳対象の現実物体212を把持するユーザの手213を示している。図23に示すように、重畳対象の現実物体212が平面214に置かれたとき、重畳対象の現実物体212とユーザの手213の状況に応じて決定された把持原点215を起点として、平面214に対して鉛直になるように回転させた仮想物体211が表示される。つまり、破線で示した回転前の仮想物体211を、矢印A1の方向(時計回り)に回転するように位置姿勢を補正することで、実線で示した回転後の仮想物体211が平面214上に表示される。 FIG. 23 is a diagram showing an example in which a virtual object is rotated so that it is perpendicular to a plane. FIG. 23 shows a virtual object 211, a real object 212 to be superimposed, and a user's hand 213 holding the real object 212 to be superimposed. As shown in FIG. 23, when the real object 212 to be superimposed is placed on a plane 214, the virtual object 211 is displayed rotated so that it is perpendicular to the plane 214, starting from a gripping origin 215 determined according to the state of the real object 212 to be superimposed and the user's hand 213. In other words, by correcting the position and orientation of the virtual object 211 before rotation, indicated by the dashed line, so that it rotates in the direction of arrow A1 (clockwise), the virtual object 211 after rotation, indicated by the solid line, is displayed on the plane 214.
<重畳対象を持ち替え時の処理の流れ>
図24は、重畳対象の現実物体を持ち替えた場合の処理の流れを示すフローチャートである。この処理は、例えば、重畳対象の現実物体と仮想物体の大きさ(サイズ)や形状が同一ではないが、似ている場合などに、重畳対象の現実物体を手で把持しているユーザが、別の手に重畳対象の現実物体を持ち替えたときの処理とされる。
<Processing flow when changing the overlay target>
24 is a flowchart showing the flow of processing when a user changes the grip of a real object to be superimposed. This processing is performed when, for example, the real object to be superimposed and the virtual object are similar but not identical in size or shape, and the user currently holding the real object to be superimposed in one hand changes the real object to be superimposed to another hand.
ステップS101では、物体検出部72が、ユーザが手で把持している重畳対象の現実物体を、別の手で持ち替えたことを検知する。ステップS102では、把持領域決定部75が、持ち替えた手の把持原点を、設定値としてデータ管理部76に通知して保存する。 In step S101, the object detection unit 72 detects that the user has switched the real object to be superimposed, which is currently being held in one hand, to another hand. In step S102, the gripping area determination unit 75 notifies the data management unit 76 of the gripping origin of the switched hand as a setting value and stores it.
ステップS103では、仮想物位置決定部78が、保存された設定値に従って、仮想物体の位置姿勢を更新して仮想物体を重畳対象の現実物体に重畳するように、描画部79に命令する。ステップS104では、物体検出部72が、重畳対象の現実物体と持ち替えた手を、1つの物体としてトラッキング対象とし、トラッキングを開始する。 In step S103, the virtual object position determination unit 78 updates the position and orientation of the virtual object in accordance with the saved settings, and commands the rendering unit 79 to superimpose the virtual object on the target real object. In step S104, the object detection unit 72 treats the hand that has been swapped with the target real object as a single object to be tracked, and begins tracking it.
図25は、重畳対象の現実物体を持ち替えた場合における把持原点の再設定の例を示す図である。図25において、重畳対象の現実物体221と、仮想物体222と、重畳対象の現実物体221を把持するユーザの手を示している。この例では、重畳対象の現実物体221がカメラの形状で構成され、重畳される仮想物体222と大きさや形状が類似している。重畳対象の現実物体221は、仮想物体222よりもサイズが若干小さく、ユーザにより手で把持される。 Figure 25 is a diagram showing an example of resetting the grip origin when the real object to be superimposed is changed. Figure 25 shows a real object 221 to be superimposed, a virtual object 222, and the user's hand holding the real object 221 to be superimposed. In this example, the real object 221 to be superimposed is configured in the shape of a camera, and is similar in size and shape to the virtual object 222 to be superimposed. The real object 221 to be superimposed is slightly smaller in size than the virtual object 222, and is held in the user's hand.
矢印A1の先に示すように、ユーザが一方の手223で把持していた重畳対象の現実物体221を、他方の手225でも把持し、矢印A2の先に示すように、重畳対象の現実物体221から一方の手223を離して、重畳対象の現実物体221を把持する手を、一方の手223から他方の手225に持ち替えた場合を想定する。この場合において、重畳対象の現実物体221を一方の手223で把持していたときは、重畳対象の現実物体221とユーザの手223の状況に応じて決定された把持原点224を起点として仮想物体222を表示していた。また、重畳対象の現実物体221を他方の手225に持ち替えたとき、重畳対象の現実物体221とユーザの手225の状況に応じて決定された把持原点226を起点として仮想物体222を表示している。このように、仮想物体を持ち替えた際に、把持原点を再設定(再決定)して、仮想物体の位置や姿勢を補正することができる。また、重畳対象の現実物体とそれを把持する持ち替えた手をトラッキング対象にすることで、上述したように確実にトラッキングを行うことができる。 As shown at the end of arrow A1, it is assumed that the user grasps the superimposed real object 221 that they have been holding with one hand 223 with the other hand 225, and then, as shown at the end of arrow A2, releases the one hand 223 from the superimposed real object 221 and switches the hand holding the superimposed real object 221 from one hand 223 to the other hand 225. In this case, when the superimposed real object 221 was being held with one hand 223, the virtual object 222 was displayed with a gripping origin 224 determined in accordance with the state of the superimposed real object 221 and the user's hand 223. Furthermore, when the superimposed real object 221 is shifted to the other hand 225, the virtual object 222 is displayed with a gripping origin 226 determined in accordance with the state of the superimposed real object 221 and the user's hand 225. In this way, when a virtual object is gripped differently, the grip origin can be reset (redetermined) to correct the position and orientation of the virtual object. Furthermore, by tracking the real object to be superimposed and the hand that grips it, tracking can be performed reliably as described above.
以上のように、本開示では、重畳対象の現実物体に仮想物体を重畳するに際して、重畳対象の現実物体(例えば、コントローラ)及び第2の現実物体(例えば、ユーザの手)の状況に応じて仮想物体を表示する際の起点(把持原点)を決定し、決定した起点に応じて、仮想物体の表示を制御することができる。すなわち、本開示では、仮想物体を重畳する重畳対象の現実物体、及び重畳対象の現実物体と異なる第2の現実物体の状況に関する情報を取得し、取得した情報に基づいて、仮想物体の表示を制御している。これにより、仮想物体と重畳対象の現実物体との形状や大きさが異なることに起因して、ユーザが仮想物体の把持したい部分を把持できないなどの問題に対し、重畳対象の現実物体と第2の現実物体の状況に応じて仮想物体の表示を変化させることで、仮想物体を適切に表示することができる。重畳対象の現実物体に重畳される仮想物体を適切に表示することで、例えば、ユーザは、重畳対象の現実物体に重畳された仮想物体の把持したい部分を把持することができる。 As described above, with the present disclosure, when superimposing a virtual object on a real object to be superimposed, the origin (grasp origin) for displaying the virtual object can be determined depending on the status of the real object to be superimposed (e.g., a controller) and a second real object (e.g., a user's hand), and the display of the virtual object can be controlled depending on the determined origin. That is, with the present disclosure, information is acquired regarding the status of the real object to be superimposed on which the virtual object is to be superimposed and a second real object different from the real object to be superimposed, and the display of the virtual object is controlled based on the acquired information. This addresses issues such as a user being unable to grasp a desired portion of a virtual object due to differences in shape or size between the virtual object and the real object to be superimposed, by changing the display of the virtual object depending on the status of the real object to be superimposed and the second real object, making it possible to appropriately display the virtual object. By appropriately displaying the virtual object to be superimposed on the real object to be superimposed, for example, the user can grasp a desired portion of the virtual object superimposed on the real object to be superimposed.
なお、上述した特許文献1では、現実物体に仮想物体を重畳する際にその境界をぼかす技術が提案されており、現実物体と仮想物体が同時に視野に入ったときに発生する視野闘争を軽減するものの、仮想物体と現実物体の形状や大きさが異なることに起因する把持時の違和感を解決するものではない。また、特許文献2では、手に沿った平面やモックアップの指定した平面に平行になるように、仮想物体の指定した平面を合わせる技術が提案されているが、仮想物体を重畳した現実物体のどこを把持すべきかの提案ではなく、また、仮想物体を拡大、縮小、回転する際の基準について何ら言及されていない。さらに、特許文献3では、現実物体に大きさや形が異なる仮想物体を重畳する際に、ユーザの手が現実物体に触れていないときには仮想物体を半透明にして表示する技術が提案されているが、仮想物体を拡大、縮小、回転する際の基準について何ら言及されていない。 Note that the above-mentioned Patent Document 1 proposes a technology that blurs the boundary between a virtual object when it is superimposed on a real object. While this reduces the retinal rivalry that occurs when a real object and a virtual object are simultaneously in the field of view, it does not resolve the discomfort that occurs when grasping a virtual object due to differences in shape or size between the real object and the virtual object. Furthermore, Patent Document 2 proposes a technology that aligns a specified plane of a virtual object so that it is parallel to a plane along the hand or a specified plane of a mockup, but does not propose which part of a real object on which a virtual object should be grasped, nor does it mention any criteria for enlarging, reducing, or rotating the virtual object. Furthermore, Patent Document 3 proposes a technology that, when superimposing a virtual object of a different size or shape on a real object, displays the virtual object semi-transparently when the user's hand is not touching the real object, but does not mention any criteria for enlarging, reducing, or rotating the virtual object.
<変形例>
図7の情報処理装置70、図12の情報処理装置130は、上述した構成に限らず、他の構成を採用してもよい。例えば、図7の情報処理装置70が、インターネット等のネットワークに接続されたサーバとして構成される場合、センサ部71、表示部80を除いた構成、すなわち、制御部70Aと通信部を備える構成としてもよい。また、端末装置(例えば、XR HMD,スマートフォン等)は、センサ部71と、表示部80と、通信部等を備える。この場合において、情報処理装置70(サーバ)では、端末装置からネットワークを介して送信されるセンサデータが受信され、制御部70Aが受信データに基づく処理を行い、その結果得られる処理データを、ネットワークを介して端末装置に送信してもよい。一方で、端末装置では、センサ部71により取得したセンサデータが、ネットワークを介して情報処理装置70(サーバ)に送信される。また、端末装置では、ネットワークを介して情報処理装置70(サーバ)からの処理データが受信され、受信データに基づく仮想物体が表示部80に表示される。なお、情報処理装置70(サーバ)において、制御部70Aは、物体検出部72、トリガ検出部73、重畳対象決定部74、把持領域決定部75、データ管理部76、データ保存部77、仮想物位置決定部78、及び描画部79のうち、少なくとも一部のブロックを有していればよく、残りのブロックは、端末装置側に設けられてもよい。例えば、描画部79は、サーバ側でなく、端末装置側に設けてもよい。
<Modification>
The information processing device 70 of FIG. 7 and the information processing device 130 of FIG. 12 are not limited to the above-described configurations and may employ other configurations. For example, if the information processing device 70 of FIG. 7 is configured as a server connected to a network such as the Internet, it may be configured without the sensor unit 71 and the display unit 80, i.e., with only a control unit 70A and a communication unit. Furthermore, a terminal device (e.g., an XR HMD, a smartphone, etc.) may include the sensor unit 71, the display unit 80, and a communication unit. In this case, the information processing device 70 (server) may receive sensor data transmitted from the terminal device via the network, the control unit 70A may process the received data, and the resulting processed data may be transmitted to the terminal device via the network. Meanwhile, the terminal device may transmit sensor data acquired by the sensor unit 71 to the information processing device 70 (server) via the network. Furthermore, the terminal device may receive processed data from the information processing device 70 (server) via the network, and a virtual object based on the received data may be displayed on the display unit 80. In the information processing device 70 (server), the control unit 70A only needs to have at least some of the blocks among the object detection unit 72, the trigger detection unit 73, the superimposition target determination unit 74, the gripping area determination unit 75, the data management unit 76, the data storage unit 77, the virtual object position determination unit 78, and the drawing unit 79, and the remaining blocks may be provided on the terminal device side. For example, the drawing unit 79 may be provided on the terminal device side instead of the server side.
上述した例では、重畳対象の現実物体に重畳する仮想物体としてカメラを表示した例を示したが、他の物体(例えば、製造、購入前の製品)が仮想物体として表示されてもよい。また、上述した例では、重畳対象の現実物体と異なる第2の現実物体として、ユーザの手を例示したが、ユーザの周囲の物体(例えば、テーブル)などの他の物体でもよい。 In the above example, a camera is displayed as a virtual object superimposed on the real object to be superimposed, but other objects (e.g., products that have not yet been manufactured or purchased) may also be displayed as virtual objects. Furthermore, in the above example, the user's hand is used as an example of a second real object that is different from the real object to be superimposed, but other objects such as objects around the user (e.g., a table) may also be used.
<コンピュータ構成>
上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、コンピュータにインストールされる。図26は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
<Computer Configuration>
The above-described series of processes can be executed by hardware or software. When the series of processes is executed by software, a program constituting the software is installed in a computer. Fig. 26 is a block diagram showing an example of the hardware configuration of a computer that executes the above-described series of processes by a program.
コンピュータにおいて、CPU(Central Processing Unit)301、ROM(Read Only Memory)302、RAM(Random Access Memory)303は、バス304により相互に接続されている。バス304には、さらに、入出力インタフェース305が接続されている。入出力インタフェース305には、入力部306、出力部307、記憶部308、通信部309、及びドライブ310が接続されている。 In a computer, a CPU (Central Processing Unit) 301, a ROM (Read Only Memory) 302, and a RAM (Random Access Memory) 303 are interconnected by a bus 304. An input/output interface 305 is also connected to the bus 304. An input unit 306, an output unit 307, a memory unit 308, a communication unit 309, and a drive 310 are connected to the input/output interface 305.
入力部306は、キーボード、マウス、マイクロフォンなどよりなる。出力部307は、ディスプレイ、スピーカなどよりなる。記憶部308は、ハードディスクや不揮発性のメモリなどよりなる。通信部309は、ネットワークインタフェースなどよりなる。ドライブ310は、半導体メモリ、磁気ディスク、光ディスク、又は光磁気ディスクなどのリムーバブル記録媒体311を駆動する。 The input unit 306 includes a keyboard, mouse, microphone, etc. The output unit 307 includes a display, speaker, etc. The storage unit 308 includes a hard disk, non-volatile memory, etc. The communication unit 309 includes a network interface, etc. The drive 310 drives a removable recording medium 311 such as a semiconductor memory, magnetic disk, optical disk, or magneto-optical disk.
以上のように構成されるコンピュータでは、CPU301が、ROM302や記憶部308に記録されているプログラムを、入出力インタフェース305及びバス304を介して、RAM303にロードして実行することにより、上述した一連の処理が行われる。 In a computer configured as described above, the CPU 301 loads programs stored in the ROM 302 or memory unit 308 into the RAM 303 via the input/output interface 305 and bus 304, and executes them, thereby performing the series of processes described above.
コンピュータ(CPU301)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブル記録媒体311に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線又は無線の伝送媒体を介して提供することができる。 The program executed by the computer (CPU 301) can be provided by being recorded on a removable recording medium 311, such as a packaged medium. The program can also be provided via a wired or wireless transmission medium, such as a local area network, the Internet, or digital satellite broadcasting.
コンピュータでは、プログラムは、リムーバブル記録媒体311をドライブ310に装着することにより、入出力インタフェース305を介して、記憶部308にインストールすることができる。また、プログラムは、有線又は無線の伝送媒体を介して、通信部309で受信し、記憶部308にインストールすることができる。その他、プログラムは、ROM302や記憶部308に、予めインストールしておくことができる。 In a computer, a program can be installed in the storage unit 308 via the input/output interface 305 by inserting the removable recording medium 311 into the drive 310. The program can also be received by the communication unit 309 via a wired or wireless transmission medium and installed in the storage unit 308. Alternatively, the program can be pre-installed in the ROM 302 or storage unit 308.
コンピュータがプログラムに従って行う処理は、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含む。また、プログラムは、1のコンピュータ(プロセッサ)により処理されてもよいし、複数のコンピュータによって分散処理されてもよい。 The processing performed by a computer according to a program includes processing that is executed in parallel or individually (for example, parallel processing or object-based processing). Furthermore, a program may be processed by a single computer (processor), or may be distributed across multiple computers.
なお、本開示の実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。例えば、本開示は、1つの機能を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。 Note that the embodiments of the present disclosure are not limited to the above-described embodiments, and various modifications are possible without departing from the spirit of the present disclosure. For example, the present disclosure may take the form of a cloud computing configuration in which a single function is shared and processed collaboratively by multiple devices via a network.
上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。なお、本明細書に記載された効果はあくまで例示であって限定されるものではなく、他の効果があってもよい。 Each step described in the above flowchart can be executed by a single device, or can be shared and executed by multiple devices. Furthermore, if a single step includes multiple processes, the multiple processes included in that single step can be executed by a single device, or can be shared and executed by multiple devices. Note that the effects described in this specification are merely examples and are not limiting, and other effects may also be present.
また、本開示は、以下のような構成をとることができる。 Furthermore, the present disclosure can be configured as follows:
(1)
仮想物体を重畳する重畳対象の現実物体、及び前記重畳対象の現実物体と異なる第2の現実物体の状況に関する情報を取得し、
取得した前記情報に基づいて、前記仮想物体の表示を制御する
制御部を備える
情報処理装置。
(2)
前記制御部は、
前記仮想物体を表示する際の起点を、前記重畳対象の現実物体及び前記第2の現実物体の状況に応じて決定し、
決定した前記起点に応じて、前記仮想物体の表示を制御する
(1)に記載の情報処理装置。
(3)
前記制御部は、前記仮想物体を拡大又は縮小する際の起点を、前記重畳対象の現実物体及び前記第2の現実物体の状況に応じて決定する
(2)に記載の情報処理装置。
(4)
前記制御部は、前記仮想物体を回転する際の起点を、前記重畳対象の現実物体及び前記第2の現実物体の状況に応じて決定する
(2)又は(3)に記載の情報処理装置。
(5)
前記制御部は、前記重畳対象の現実物体を平面に配置する際に、前記仮想物体を、前記起点に応じて回転して、前記平面に対して鉛直になるように表示する
(4)に記載の情報処理装置。
(6)
前記重畳対象の現実物体は、ユーザにより把持される物体であり、
前記第2の現実物体は、前記ユーザの手である
(2)~(5)のいずれかに記載の情報処理装置。
(7)
前記制御部は、
前記ユーザが一方の手で、前記重畳対象の現実物体を把持したとき、前記起点を、前記重畳対象の現実物体、及び前記重畳対象の現実物体を把持した一方の手に応じて決定し、
前記ユーザが、前記重畳対象の現実物体を把持する手を、一方の手から他方の手に持ち替えたとき、前記起点を、前記重畳対象の現実物体、及び前記重畳対象の現実物体を把持した他方の手に応じて再決定する
(6)に記載の情報処理装置。
(8)
前記制御部は、前記仮想物体と前記重畳対象の現実物体との位置関係を紐付ける前である場合に、前記仮想物体と前記重畳対象の現実物体との距離が閾値未満であるとき、前記仮想物体を、半透過又はワイヤフレームで表示する
(1)又は(6)に記載の情報処理装置。
(9)
前記制御部は、前記仮想物体と前記重畳対象の現実物体との位置関係が紐付けられている場合に、前記重畳対象の現実物体と、前記重畳対象の現実物体を把持しようとする前記第2の現実物体との距離が閾値未満であるとき、前記重畳対象の現実物体の把持される部分が視認可能となるように、前記仮想物体又は前記仮想物体と異なる第2の仮想物体の表示を制御する
(1)又は(6)に記載の情報処理装置。
(10)
前記制御部は、
前記仮想物体と前記重畳対象の現実物体との位置関係が紐付けられている場合に、前記重畳対象の現実物体が前記第2の現実物体で把持されたとき、前記重畳対象の現実物体と前記第2の現実物体の特徴点をトラッキング対象とし、
前記重畳対象の現実物体の少なくとも一部が前記第2の現実物体で遮蔽されたとき、少なくとも前記第2の現実物体のトラッキング結果に基づいて、前記仮想物体の表示を制御する
(1)又は(6)に記載の情報処理装置。
(11)
前記制御部は、前記重畳対象の現実物体の把持される部分を示すガイドを表示する
(9)に記載の情報処理装置。
(12)
前記制御部は、前記第2の現実物体の位置と姿勢、及び把持時の前記第2の現実物体と前記重畳対象の現実物体との位置関係に基づいて、前記仮想物体の表示を制御する
(10)に記載の情報処理装置。
(13)
情報処理装置が、
仮想物体を重畳する重畳対象の現実物体、及び前記重畳対象の現実物体と異なる第2の現実物体の状況に関する情報を取得することと、
取得した前記情報に基づいて、前記仮想物体の表示を制御することと
を含む情報処理方法。
(14)
前記仮想物体を表示する際の起点を、前記重畳対象の現実物体及び前記第2の現実物体の状況に応じて決定することと、
決定した前記起点に応じて、前記仮想物体の表示を制御することと
をさらに含む(13)に記載の情報処理方法。
(15)
前記仮想物体を拡大又は縮小する際の起点を、前記重畳対象の現実物体及び前記第2の現実物体の状況に応じて決定することをさらに含む
(14)に記載の情報処理方法。
(16)
前記仮想物体を回転する際の起点を、前記重畳対象の現実物体及び前記第2の現実物体の状況に応じて決定することをさらに含む
(14)又は(15)に記載の情報処理方法。
(17)
前記仮想物体と前記重畳対象の現実物体との位置関係を紐付ける前である場合に、前記仮想物体と前記重畳対象の現実物体との距離が閾値未満であるとき、前記仮想物体を、半透過又はワイヤフレームで表示することをさらに含む
(13)~(16)のいずれかに記載の情報処理方法。
(18)
前記仮想物体と前記重畳対象の現実物体との位置関係が紐付けられている場合に、前記重畳対象の現実物体と、前記重畳対象の現実物体を把持しようとする前記第2の現実物体との距離が閾値未満であるとき、前記重畳対象の現実物体の把持される部分が視認可能となるように、前記仮想物体又は前記仮想物体と異なる第2の仮想物体の表示を制御することをさらに含む
(13)~(16)のいずれかに記載の情報処理方法。
(19)
前記仮想物体と前記重畳対象の現実物体との位置関係が紐付けられている場合に、前記重畳対象の現実物体が前記第2の現実物体で把持されたとき、前記重畳対象の現実物体と前記第2の現実物体の特徴点をトラッキング対象とすることと、
前記重畳対象の現実物体の少なくとも一部が前記第2の現実物体で遮蔽されたとき、少なくとも前記第2の現実物体のトラッキング結果に基づいて、前記仮想物体の表示を制御することと
をさらに含む(13)~(16)のいずれかに記載の情報処理方法。
(20)
コンピュータを、
仮想物体を重畳する重畳対象の現実物体、及び前記重畳対象の現実物体と異なる第2の現実物体の状況に関する情報を取得し、
取得した前記情報に基づいて、前記仮想物体の表示を制御する
制御部として機能させるためのプログラムを記録したコンピュータが読み取り可能な記録媒体。
(1)
acquiring information about a situation of a real object to be superimposed on which the virtual object is to be superimposed and a second real object different from the real object to be superimposed;
An information processing device comprising: a control unit that controls display of the virtual object based on the acquired information.
(2)
The control unit
determining a starting point for displaying the virtual object in accordance with the situations of the real object to be superimposed and the second real object;
The information processing device according to (1), wherein display of the virtual object is controlled in accordance with the determined starting point.
(3)
The information processing device according to (2), wherein the control unit determines a starting point when enlarging or reducing the virtual object according to a state of the real object to be superimposed and the second real object.
(4)
The information processing device according to (2) or (3), wherein the control unit determines a starting point when rotating the virtual object according to a state of the real object to be superimposed and the second real object.
(5)
The information processing device according to (4), wherein, when placing the physical object to be superimposed on a plane, the control unit rotates the virtual object according to the origin and displays the virtual object so as to be perpendicular to the plane.
(6)
the real object to be superimposed is an object to be held by a user,
The information processing device according to any one of (2) to (5), wherein the second physical object is a hand of the user.
(7)
The control unit
when the user holds the physical object to be superimposed with one hand, determining the starting point in accordance with the physical object to be superimposed and the one hand holding the physical object to be superimposed;
The information processing device described in (6), wherein when the user switches the hand holding the physical object to be superimposed from one hand to the other, the starting point is re-determined based on the physical object to be superimposed and the other hand holding the physical object to be superimposed.
(8)
The information processing device according to (1) or (6), wherein the control unit displays the virtual object semi-transparently or in a wireframe when a distance between the virtual object and the real object to be superimposed is less than a threshold before linking a positional relationship between the virtual object and the real object to be superimposed.
(9)
The information processing device according to (1) or (6), wherein, when the positional relationship between the virtual object and the real object to be superimposed is linked, if a distance between the real object to be superimposed and the second real object attempting to grasp the real object to be superimposed is less than a threshold, the control unit controls display of the virtual object or a second virtual object different from the virtual object so that a grasped portion of the real object to be superimposed is visible.
(10)
The control unit
when the virtual object and the real object to be superimposed are associated in positional relationship and the real object to be superimposed is grasped by the second real object, feature points of the real object to be superimposed and the second real object are targeted for tracking;
The information processing device according to (1) or (6), wherein when at least a part of the real object to be superimposed is occluded by the second real object, the display of the virtual object is controlled based on at least a tracking result of the second real object.
(11)
The information processing device according to (9), wherein the control unit displays a guide indicating a portion of the real object to be superimposed that is to be grasped.
(12)
The information processing device according to (10), wherein the control unit controls the display of the virtual object based on the position and orientation of the second physical object and the positional relationship between the second physical object and the physical object to be superimposed when grasped.
(13)
The information processing device
acquiring information about a situation of a real object to be superimposed on which the virtual object is to be superimposed and a second real object different from the real object to be superimposed;
and controlling display of the virtual object based on the acquired information.
(14)
determining a starting point for displaying the virtual object in accordance with the situations of the real object to be superimposed and the second real object;
The information processing method according to (13), further comprising: controlling display of the virtual object in accordance with the determined starting point.
(15)
The information processing method according to (14), further comprising determining a starting point when enlarging or reducing the virtual object according to the situations of the real object to be superimposed and the second real object.
(16)
The information processing method according to (14) or (15), further comprising determining a starting point for rotating the virtual object according to the situations of the real object to be superimposed and the second real object.
(17)
The information processing method according to any one of (13) to (16), further comprising displaying the virtual object semi-transparently or in a wireframe when a distance between the virtual object and the real object to be superimposed is less than a threshold value before linking the positional relationship between the virtual object and the real object to be superimposed.
(18)
The information processing method according to any one of (13) to (16), further comprising, when the positional relationship between the virtual object and the real object to be superimposed is linked and the distance between the real object to be superimposed and the second real object attempting to grasp the real object to be superimposed is less than a threshold, controlling display of the virtual object or a second virtual object different from the virtual object so that the grasped portion of the real object to be superimposed becomes visible.
(19)
when the virtual object and the real object to be superimposed are linked in positional relationship and the real object to be superimposed is held by the second real object, feature points of the real object to be superimposed and the second real object are targeted for tracking;
The information processing method according to any one of (13) to (16), further comprising: when at least a part of the real object to be superimposed is occluded by the second real object, controlling the display of the virtual object based on at least a tracking result of the second real object.
(20)
Computer,
acquiring information about a situation of a real object to be superimposed on which the virtual object is to be superimposed and a second real object different from the real object to be superimposed;
A computer-readable recording medium on which a program is recorded for causing the device to function as a control unit that controls the display of the virtual object based on the acquired information.
70 情報処理装置, 70A 制御部, 71 センサ部, 72 物体検出部, 73 トリガ検出部, 74 重畳対象決定部, 75 把持領域決定部, 76 データ管理部, 77 データ保存部, 78 仮想物位置決定部, 79 描画部, 80 表示部, 130 情報処理装置, 130A 制御部, 131 センサ部, 132 物体検出部, 133 トリガ検出部, 134 重畳対象決定部, 135 把持領域決定部, 136 データ管理部, 137 データ保存部, 138 仮想物位置決定部, 139 描画部, 140 表示部 70 Information processing device, 70A Control unit, 71 Sensor unit, 72 Object detection unit, 73 Trigger detection unit, 74 Superimposition target determination unit, 75 Grasping area determination unit, 76 Data management unit, 77 Data storage unit, 78 Virtual object position determination unit, 79 Rendering unit, 80 Display unit, 130 Information processing device, 130A Control unit, 131 Sensor unit, 132 Object detection unit, 133 Trigger detection unit, 134 Superimposition target determination unit, 135 Grasping area determination unit, 136 Data management unit, 137 Data storage unit, 138 Virtual object position determination unit, 139 Rendering unit, 140 Display unit
Claims (20)
取得した前記情報に基づいて、前記仮想物体の表示を制御する
制御部を備える
情報処理装置。 acquiring information about a situation of a real object to be superimposed on which the virtual object is to be superimposed and a second real object different from the real object to be superimposed;
An information processing device comprising: a control unit that controls display of the virtual object based on the acquired information.
前記仮想物体を表示する際の起点を、前記重畳対象の現実物体及び前記第2の現実物体の状況に応じて決定し、
決定した前記起点に応じて、前記仮想物体の表示を制御する
請求項1に記載の情報処理装置。 The control unit
determining a starting point for displaying the virtual object in accordance with the situations of the real object to be superimposed and the second real object;
The information processing apparatus according to claim 1 , wherein the display of the virtual object is controlled in accordance with the determined starting point.
請求項2に記載の情報処理装置。 The information processing device according to claim 2 , wherein the control unit determines a starting point when enlarging or reducing the virtual object depending on the status of the real object to be superimposed and the second real object.
請求項2に記載の情報処理装置。 The information processing device according to claim 2 , wherein the control unit determines a starting point for rotating the virtual object depending on the situations of the real object to be superimposed and the second real object.
請求項4に記載の情報処理装置。 The information processing device according to claim 4 , wherein when placing the physical object to be superimposed on a plane, the control unit rotates the virtual object according to the origin and displays the virtual object so as to be perpendicular to the plane.
前記第2の現実物体は、前記ユーザの手である
請求項2に記載の情報処理装置。 the real object to be superimposed is an object to be held by a user,
The information processing apparatus according to claim 2 , wherein the second physical object is a hand of the user.
前記ユーザが一方の手で、前記重畳対象の現実物体を把持したとき、前記起点を、前記重畳対象の現実物体、及び前記重畳対象の現実物体を把持した一方の手に応じて決定し、
前記ユーザが、前記重畳対象の現実物体を把持する手を、一方の手から他方の手に持ち替えたとき、前記起点を、前記重畳対象の現実物体、及び前記重畳対象の現実物体を把持した他方の手に応じて再決定する
請求項6に記載の情報処理装置。 The control unit
when the user holds the physical object to be superimposed with one hand, determining the starting point in accordance with the physical object to be superimposed and the one hand holding the physical object to be superimposed;
The information processing device according to claim 6, wherein when the user switches the hand holding the physical object to be superimposed from one hand to the other, the starting point is re-determined depending on the physical object to be superimposed and the other hand holding the physical object to be superimposed.
請求項1に記載の情報処理装置。 2. The information processing device according to claim 1, wherein, before a positional relationship between the virtual object and the real object to be superimposed is linked, if a distance between the virtual object and the real object to be superimposed is less than a threshold, the control unit displays the virtual object semi-transparently or in a wireframe.
請求項1に記載の情報処理装置。 2. The information processing device according to claim 1, wherein, when a positional relationship between the virtual object and the real object to be superimposed is linked and a distance between the real object to be superimposed and the second real object attempting to grasp the real object to be superimposed is less than a threshold, the control unit controls display of the virtual object or a second virtual object different from the virtual object so that a grasped portion of the real object to be superimposed is visible.
前記仮想物体と前記重畳対象の現実物体との位置関係が紐付けられている場合に、前記重畳対象の現実物体が前記第2の現実物体で把持されたとき、前記重畳対象の現実物体と前記第2の現実物体の特徴点をトラッキング対象とし、
前記重畳対象の現実物体の少なくとも一部が前記第2の現実物体で遮蔽されたとき、少なくとも前記第2の現実物体のトラッキング結果に基づいて、前記仮想物体の表示を制御する
請求項1に記載の情報処理装置。 The control unit
when the virtual object and the real object to be superimposed are associated in positional relationship and the real object to be superimposed is grasped by the second real object, feature points of the real object to be superimposed and the second real object are targeted for tracking;
The information processing apparatus according to claim 1 , wherein when at least a part of the real object to be superimposed is occluded by the second real object, the display of the virtual object is controlled based on at least a tracking result of the second real object.
請求項9に記載の情報処理装置。 The information processing device according to claim 9 , wherein the control unit displays a guide indicating a portion of the real object to be superimposed that is to be grasped.
請求項10に記載の情報処理装置。 The information processing device according to claim 10 , wherein the control unit controls the display of the virtual object based on a position and orientation of the second physical object and a positional relationship between the second physical object and the physical object to be superimposed when held.
仮想物体を重畳する重畳対象の現実物体、及び前記重畳対象の現実物体と異なる第2の現実物体の状況に関する情報を取得することと、
取得した前記情報に基づいて、前記仮想物体の表示を制御することと
を含む情報処理方法。 The information processing device
acquiring information about a situation of a real object to be superimposed on which the virtual object is to be superimposed and a second real object different from the real object to be superimposed;
and controlling display of the virtual object based on the acquired information.
決定した前記起点に応じて、前記仮想物体の表示を制御することと
をさらに含む請求項13に記載の情報処理方法。 determining a starting point for displaying the virtual object in accordance with the situations of the real object to be superimposed and the second real object;
The information processing method according to claim 13 , further comprising: controlling display of the virtual object in accordance with the determined starting point.
請求項14に記載の情報処理方法。 The information processing method according to claim 14 , further comprising determining a starting point for enlarging or reducing the virtual object according to the situations of the real object to be superimposed and the second real object.
請求項14に記載の情報処理方法。 The information processing method according to claim 14 , further comprising determining a starting point for rotating the virtual object according to the situations of the real object to be superimposed and the second real object.
請求項13に記載の情報処理方法。 The information processing method according to claim 13 , further comprising: displaying the virtual object semi-transparently or in a wireframe when a distance between the virtual object and the real object to be superimposed is less than a threshold value before the positional relationship between the virtual object and the real object to be superimposed is linked.
請求項13に記載の情報処理方法。 14. The information processing method according to claim 13, further comprising: controlling display of the virtual object or a second virtual object different from the virtual object so that a portion of the real object to be superimposed that is to be grasped becomes visible when a distance between the virtual object to be superimposed and the second real object attempting to grasp the real object to be superimposed is less than a threshold value in a case where a positional relationship between the virtual object and the real object to be superimposed is linked.
前記重畳対象の現実物体の少なくとも一部が前記第2の現実物体で遮蔽されたとき、少なくとも前記第2の現実物体のトラッキング結果に基づいて、前記仮想物体の表示を制御することと
をさらに含む請求項13に記載の情報処理方法。 when the virtual object and the real object to be superimposed are linked in positional relationship and the real object to be superimposed is held by the second real object, feature points of the real object to be superimposed and the second real object are targeted for tracking;
14. The information processing method according to claim 13, further comprising: when at least a part of the real object to be superimposed is occluded by the second real object, controlling display of the virtual object based on at least a tracking result of the second real object.
仮想物体を重畳する重畳対象の現実物体、及び前記重畳対象の現実物体と異なる第2の現実物体の状況に関する情報を取得し、
取得した前記情報に基づいて、前記仮想物体の表示を制御する
制御部として機能させるためのプログラムを記録したコンピュータが読み取り可能な記録媒体。 Computer,
acquiring information about a situation of a real object to be superimposed on which the virtual object is to be superimposed and a second real object different from the real object to be superimposed;
A computer-readable recording medium on which a program is recorded to function as a control unit that controls the display of the virtual object based on the acquired information.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2024-099578 | 2024-06-20 | ||
| JP2024099578 | 2024-06-20 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025263291A1 true WO2025263291A1 (en) | 2025-12-26 |
Family
ID=98213226
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2025/019981 Pending WO2025263291A1 (en) | 2024-06-20 | 2025-06-03 | Information processing device, information processing method, and recording medium |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2025263291A1 (en) |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009025918A (en) * | 2007-07-17 | 2009-02-05 | Canon Inc | Image processing apparatus and image processing method |
| JP2016033800A (en) * | 2014-07-31 | 2016-03-10 | キヤノンマーケティングジャパン株式会社 | Information processing device, information processing system, control method thereof and program |
| JP2017188041A (en) * | 2016-04-08 | 2017-10-12 | 株式会社バンダイナムコエンターテインメント | Program and computer system |
| JP2018064836A (en) * | 2016-10-20 | 2018-04-26 | 株式会社Bbq | Virtual game device |
| WO2023014561A1 (en) * | 2021-08-06 | 2023-02-09 | Kinoo, Inc. | Systems and methods for bimanual or collective control of virtual objects |
| JP2023079161A (en) * | 2021-11-26 | 2023-06-07 | ソニーグループ株式会社 | Display control device, display control method, and program |
-
2025
- 2025-06-03 WO PCT/JP2025/019981 patent/WO2025263291A1/en active Pending
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009025918A (en) * | 2007-07-17 | 2009-02-05 | Canon Inc | Image processing apparatus and image processing method |
| JP2016033800A (en) * | 2014-07-31 | 2016-03-10 | キヤノンマーケティングジャパン株式会社 | Information processing device, information processing system, control method thereof and program |
| JP2017188041A (en) * | 2016-04-08 | 2017-10-12 | 株式会社バンダイナムコエンターテインメント | Program and computer system |
| JP2018064836A (en) * | 2016-10-20 | 2018-04-26 | 株式会社Bbq | Virtual game device |
| WO2023014561A1 (en) * | 2021-08-06 | 2023-02-09 | Kinoo, Inc. | Systems and methods for bimanual or collective control of virtual objects |
| JP2023079161A (en) * | 2021-11-26 | 2023-06-07 | ソニーグループ株式会社 | Display control device, display control method, and program |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR102903733B1 (en) | Dynamic configuration of user interface layout and input for extended reality systems. | |
| US11003307B1 (en) | Artificial reality systems with drawer simulation gesture for gating user interface elements | |
| US10930075B2 (en) | User interface discovery and interaction for three-dimensional virtual environments | |
| US11043192B2 (en) | Corner-identifiying gesture-driven user interface element gating for artificial reality systems | |
| CN118435151A (en) | Method for moving objects in a three-dimensional environment | |
| US10921879B2 (en) | Artificial reality systems with personal assistant element for gating user interface elements | |
| CN119473001A (en) | Methods for displaying and repositioning objects in the environment | |
| US11086475B1 (en) | Artificial reality systems with hand gesture-contained content window | |
| US20200387286A1 (en) | Arm gaze-driven user interface element gating for artificial reality systems | |
| US10607403B2 (en) | Shadows for inserted content | |
| WO2025024469A1 (en) | Devices, methods, and graphical user interfaces for sharing content in a communication session | |
| US10852839B1 (en) | Artificial reality systems with detachable personal assistant for gating user interface elements | |
| WO2016203792A1 (en) | Information processing device, information processing method, and program | |
| WO2024253979A1 (en) | Methods for moving objects in a three-dimensional environment | |
| US20250245942A1 (en) | Devices, methods, and graphical user interfaces for modifying avatars in three-dimensional environments | |
| US20230042447A1 (en) | Method and Device for Managing Interactions Directed to a User Interface with a Physical Object | |
| EP4652516A1 (en) | Devices, methods, and graphical user interfaces for using a cursor to interact with three-dimensional environments | |
| CN112562088B (en) | Presenting an environment based on user movement | |
| KR20250173999A (en) | Indicating a position of an occluded physical object | |
| WO2024238997A1 (en) | Methods for displaying mixed reality content in a three-dimensional environment | |
| WO2025263291A1 (en) | Information processing device, information processing method, and recording medium | |
| EP3702008A1 (en) | Displaying a viewport of a virtual space | |
| US12518473B1 (en) | Method and device for dynamically adjusting a pointer visualization | |
| US20230334676A1 (en) | Adjusting Display of an Image based on Device Position | |
| WO2025072024A1 (en) | Devices, methods, and graphical user interfaces for processing inputs to a three-dimensional environment |