WO2016118371A1 - Mixed reality system - Google Patents
Mixed reality system Download PDFInfo
- Publication number
- WO2016118371A1 WO2016118371A1 PCT/US2016/013127 US2016013127W WO2016118371A1 WO 2016118371 A1 WO2016118371 A1 WO 2016118371A1 US 2016013127 W US2016013127 W US 2016013127W WO 2016118371 A1 WO2016118371 A1 WO 2016118371A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- camera
- head mounted
- camera assembly
- image
- display device
- 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.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/0093—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00 with means for monitoring data relating to the user, e.g. head-tracking, eye-tracking
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/017—Head mounted
-
- 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/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/50—Constructional details
- H04N23/51—Housings
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/0101—Head-up displays characterised by optical features
- G02B2027/0138—Head-up displays characterised by optical features comprising image capture systems, e.g. camera
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/017—Head mounted
- G02B2027/0178—Eyeglass type
Definitions
- Mixed reality is a technology that allows virtual imagery to be mixed with a real- world physical environment.
- a see-through, head mounted, mixed reality display device may be worn by a user to view the mixed imagery of real objects and virtual objects displayed in the user's field of view.
- others not having a head mounted display device cannot see the mixed reality environment. They can see the real objects, but not the virtual objects.
- Embodiments of the present technology in general relate to a system and method for capturing views of a mixed reality environment from various perspectives which can be displayed on a monitor.
- the system includes one or more physical cameras at user-defined positions within the mixed reality environment.
- the system time syncs with the one or more physical cameras, and renders virtual objects in the mixed reality environment from the perspective of the one or more cameras.
- Real and virtual objects from the mixed reality environment may then be displayed from the perspective of the one or more cameras on one or more external, 2D monitor for viewing by others.
- Figure 1 is an illustration of a virtual reality environment including real and virtual objects.
- Figure 2 is a display on a monitor of a mixed reality environment captured by a camera assembly of Fig. 1
- Figure 3 is a block diagram of a camera assembly according to embodiments of the present technology.
- Figure 4 is a perspective view of one embodiment of a head mounted display unit.
- Figure 5 is a side view of a portion of one embodiment of a head mounted display unit.
- Figure 6 is a block diagram of one embodiment of the components of a head mounted display unit.
- Figure 7 is a block diagram of one embodiment of the components of a processing unit associated with a head mounted display unit.
- Figure 8 is a block diagram of one embodiment of the software components of a processing unit associated with the head mounted display unit.
- Figure 9 is a flowchart showing the operation of one or more processing units associated with a head mounted display unit of the present system.
- Figures 10-12 are more detailed flowcharts of examples of various steps shown in the flowchart of Fig. 9.
- Figure 13 is a display on a monitor of a mixed reality environment captured by a camera assembly of the present technology.
- Figure 14 is a block diagram of a system according to embodiments of the present technology.
- Embodiments of the present technology will now be described with reference to the figures, which in general relate to a system and method for capturing views of a mixed reality environment from various perspectives which can be displayed on a monitor to an unlimited number of people.
- the system includes one or more physical cameras at user- defined positions within the mixed reality environment.
- the system time syncs with the one or more physical cameras, and renders the mixed reality environment from the perspective of the one or more cameras.
- the scene may then be displayed on one or more external, 2D monitor for viewing by others.
- Fig. 1 illustrates a mixed reality environment 10 including virtual objects mixed with real world objects.
- the present technology may be used in conjunction with a content generation software application for generating virtual objects.
- a user 18 is generating virtual content 40, in this example, a virtual robot.
- the virtual robot is being constructed on a table 42, which may be real or virtual.
- the user is applying a virtual tool 44, in this example, a painting tool, for coloring portions of the robot.
- the present technology for displaying virtual and real content from the perspective of one or more cameras may be used with a wide variety of mixed reality applications other than content generation applications.
- the mixed reality environment including the virtual and real objects may be viewed by the user 18 via a head mounted display device 2 working in conjunction with a processing unit 4.
- the head mounted display device 2 may communicate with the processing unit 4 via a flexible cable 6.
- the head mounted display device may alternatively communicate wirelessly with the processing unit 4.
- the processing unit 4 may be integrated into the head mounted display device 2.
- Head mounted display device 2 which in one embodiment is in the shape of glasses, is worn on the head of a user so that the user can see through a display and thereby have an actual direct view of the space in front of the user. More details of the head mounted display device 2 and processing unit 4 are provided below.
- the processing unit 4 may include hardware components and/or software components to execute applications such as gaming applications, non-gaming applications, or the like.
- processing unit 4 may include a processor such as a standardized processor, a specialized processor, a microprocessor, or the like that may execute instructions stored on a processor readable storage device for performing the processes described herein.
- the processing unit 4 may communicate wirelessly (e.g., WiFi, Bluetooth, infra-red, or other wireless communication means) to one or more remote computing systems. These remote computing systems may include a computer, a gaming system or console, or remote service provider.
- the head mounted display device 2 and processing unit 4 may cooperate with each other to present virtual objects, e.g., objects 40, 44, to a user in a mixed reality environment 10.
- the mixed reality environment 10 may further include one or more camera assemblies 50 which may be used to generate views of the mixed reality environment 10 that can be displayed on an external monitor for viewing by others.
- the camera assemblies 50 may be used to generate views of the mixed reality environment 10 including virtual and real objects, that can be viewed on the monitor by others not wearing a head mounted display device 2.
- the camera assemblies 50 include camera assemblies 50a and 50b. However, it is understood that the present technology may operate with a single camera assembly 50 or more than two camera assemblies 50 in further embodiments.
- the virtual objects and real objects in the mixed reality environment may be displayed on the external monitor, from the perspective of the selected camera assembly. That is, real world objects may be displayed on the monitor from the viewing perspective of the physical location of the selected camera assembly. And virtual objects may be displayed on the monitor from the viewing perspective of the physical location of the selected camera assembly.
- the view of the mixed reality environment would be from the perspective of the physical location of camera assembly 50a, as shown in Fig. 2.
- Real world objects such as for example user 18 camera assembly 50b and possibly table 42, are within the frustum view of camera assembly 50a.
- the image captured of such real world objects by camera assembly 50a may be displayed on a monitor 60 from the perspective of camera assembly 50a. It is understood that multiple camera assemblies may be selected at the same time so that the views of the multiple camera assemblies are shown on one or more monitors 60 at the same time.
- virtual objects within the mixed reality environment have defined positions in three-dimensional space, and may be viewed from different angles and sides, depending on the viewing perspective from which the virtual objects are viewed.
- virtual objects such as virtual content 40 and virtual tool 44 are within the frustum view of the camera assembly 50a.
- virtual objects may be displayed on the monitor 60 from the position in three-dimensional space coinciding with the position of the camera assembly 50a.
- the result is a view of the mixed reality environment 10 on the monitor 60 from the perspective of the camera assembly 50a.
- the virtual and real objects are shown from a given perspective. This perspective may be seen for example through a second head mounted display device 2 (not shown) worn by another user. This perspective may alternatively be seen for example on the monitor 60 captured from the position of a third camera assembly 50 (not shown).
- the processing unit 4 may build a model of the environment including the x, y, z Cartesian positions of users, real world objects and virtual three-dimensional objects in the room or other environment.
- the positions of each head mounted display device 2 may be calibrated to the model of the mixed reality environment as explained below.
- the positions of each camera assembly 50 may also be calibrated to the model of the mixed reality environment as explained below.
- the positions of the one or more head mounted display devices 2 and camera assemblies 50 may be calibrated to each other, instead of to the mixed reality environment.
- the three-dimensional model of the environment referred to herein as a scene map, as well as all tracking of each user's FOV, each camera assembly's frustum, and objects in the environment may be generated by the mobile processing unit 4 by itself, or working in tandem with other processing devices as explained hereinafter.
- These calibration operations allows the system to determine each user's line of sight and FOV of the mixed reality environment, and each camera assembly's line of sight and frustum view of the mixed reality environment.
- a virtual image may be displayed to each user, but the system determines the display of the virtual image from each user's perspective or camera assembly's perspective.
- the head mounted display devices 2 and camera assemblies 50 may include depth sensors and/or other image sensors. These sensors are able to determine whether a first virtual object is occluding, or is occluded by, a second virtual object or real object from a given device 2 or camera assembly 50 perspective.
- Fig. 3 is a schematic block diagram of a camera assembly 50 in communication with an external monitor 60 and a computing system 70.
- Computing system 70 may be or include processing unit 4, or alternatively, computing system 70 may work together with processing unit 4.
- the camera assembly 50 shown in Fig. 3 may be any of the camera assemblies 50 described herein.
- the one or more camera assemblies 50 may be located anywhere within or around the mixed reality environment 10, to capture the real and/or virtual objects within the mixed reality environment 10 from any angle.
- Camera assemblies 50 may for example be mounted on tripods, or otherwise supported at desired positions in or around the mixed reality environment to provide a birds-eye view of the mixed reality environment.
- a bird's eye view is a view of the mixed reality environment from the sides, below, above or within the mixed reality environment.
- the camera assemblies may be in fixed positions, or they may move around within a mixed reality environment.
- Camera assembly 50 includes a camera 52, position sensor 54 and an image sensor 56. Camera assembly 50 may include additional components in further embodiments. Camera 52 may be a video camera such as for example the Scarlet® camera from Red.com, Inc. of Irvine, California. Other video cameras are contemplated. In embodiments, the camera 52 may capture video of dynamic real objects and display them as they move or change. In further embodiments, the camera 52 of camera assembly 50 may alternatively or additionally capture still images of the real objects.
- Position sensor 54 may be used to calibrate the position of camera assembly 50 within the mixed reality environment 10 relative to virtual objects, other camera assemblies 50 and/or head mounted display devices 2.
- position sensor 54 may be an inertial measurement unit similar to inertial measurement unit 132 described below.
- the inertial measurement unit of position sensor 54 may include inertial sensors such as a three axis magnetometer, a three axis gyro and/or a three axis accelerometer.
- the inertial measurement unit senses position, orientation, and sudden accelerations (pitch, roll and yaw) of the camera assembly 50.
- a position and orientation of the camera assembly 50 (or head mounted display device 2) are referred to herein as a pose of the camera assembly 50 (or head mounted display device 2).
- the inertial measurement unit may include other inertial sensors in addition to or instead of the magnetometer, gyro and accelerometer.
- the inertial measurement unit of position sensor 54 may be used to determine the position and orientation of the camera assembly 50, for example using the known position and orientation of the camera assembly 50 from an earlier time.
- the inertial information from the inertial measurement unit may then be used to update the position and orientation of the camera assembly 50.
- Information from the inertial measurement unit may provide accurate kinematic data for the camera assembly, but the inertial measurement unit typically does not provide absolute position information regarding camera assembly position.
- This absolute position information also referred to as "ground truth,” may be provided from the image data obtained from the camera 52 and/or image sensor 56 of the camera assembly 50.
- the head mounted device 2 includes inertial measurement unit 132.
- position sensor 54 may be or include a head mounted display device 2 affixed to the camera 52.
- the inertial measurement unit 132 (and possibly some of the other assemblies described below) may be active as part of position sensor 54, and other assemblies described below (for example micro display 120) may be disabled or otherwise inactive.
- Image sensor 56 may be used to obtain depth data from the camera assembly 50 to real world objects within the mixed reality environment 10.
- the image sensor 56 may be a Kinect® camera used for example with the Xbox One® platform from Microsoft Corporation of Redmond, Washington.
- Data from image sensor 56 may be used to implement an opacity filter, identical to opacity filter 114 described below with respect to the head mounted display device 2.
- Such opacity filters ensure that virtual objects which are partially or fully blocked from view from the perspective of the camera assembly 50 are displayed with the proper occlusions.
- the camera assembly 50 may communicate with the monitor 60 via cable 62.
- the monitor 60 may for example be a television, a monitor, a high-definition television (HDTV), or the like that may provide video and/or audio to a user.
- the camera assembly 50 may include a video adapter such as a graphics card and/or an audio adapter such as a sound card that may provide audio/visual signals associated with the mixed reality environment 10.
- the monitor 60 may receive the audio/visual signals from the camera assembly 50 and may then output the video and/or audio associated with the audio/visual signals to any number of people watching monitor 60.
- the monitor may be a two- dimensional or three-dimensional monitor.
- a camera assembly 50 instead of sending the feed from a camera assembly 50 to a monitor, it may be sent to a head mounted display device 2.
- This device 2 may be worn by the user 18 present in the environment where the one or more camera assemblies 50 are, or it may be remote and worn by a user other than user 18.
- All of the camera assemblies 50 may be connected to a single monitor 60. Moreover, instead of a single monitor 60, it is understood that one or more of camera assemblies 50 may output audio/video signals to a large number of monitors 60. In embodiments, it is contemplated that there be two monitors 60, one displaying the raw camera feed (including only real world objects), and the second showing the same raw camera feed, but further displaying the virtual objects fused with the raw camera feed. According to one embodiment, the monitor 60 may be connected to the camera assembly 50 via cable 62, which may be, for example, an SDI video cable, an S-Video cable, a coaxial cable, an HDMI cable, a DVI cable, a VGA cable, a component video cable, or the like.
- cable 62 which may be, for example, an SDI video cable, an S-Video cable, a coaxial cable, an HDMI cable, a DVI cable, a VGA cable, a component video cable, or the like.
- Feed from a camera assembly 50 may be sent to a monitor for real-time display, or it may be recorded for later playback (with any virtual obj ects being stored for later playback as well). Instead of sending the feed to an attached monitor 60, the feed may be stored on a webserver and made accessible as a web stream, or otherwise broadcast to a remote location.
- the head mounted display device 2 and processing unit 4 may be used to define a scene map including the three-dimensional coordinates of virtual objects, real objects and the camera assemblies within the mixed reality environment 10.
- the one or more camera assemblies 50 working in conjunction with the processing unit 4 and/or a computing system 70 may assist in determining the scene map.
- computing system 70 may be coupled to the camera assembly 50, for example with a cable 62 as described above.
- the computing system 70 may be remote from the camera assembly 50, and connected thereto by some other wired or wireless network.
- the computing system 70 may be communication with all camera assemblies 50 and/or head mounted display devices 2.
- Figs. 4 and 5 show perspective and side views of the head mounted display device 2.
- Fig. 5 shows only the right side of head mounted display device 2, including a portion of the device having temple 102 and nose bridge 104.
- a microphone 110 for recording sounds and transmitting that audio data to processing unit 4, as described below.
- room-facing video camera 112 At the front of head mounted display device 2 is room-facing video camera 112 that can capture video and still images. Those images are transmitted to processing unit 4, as described below.
- a portion of the frame of head mounted display device 2 will surround a display (that includes one or more lenses). In order to show the components of head mounted display device 2, a portion of the frame surrounding the display is not depicted.
- the display includes a light-guide optical element 115, opacity filter 114, see-through lens 116 and see- through lens 118.
- opacity filter 114 is behind and aligned with see- through lens 116
- light-guide optical element 115 is behind and aligned with opacity filter 114
- see-through lens 118 is behind and aligned with light-guide optical element 1 15.
- See-through lenses 116 and 118 are standard lenses used in eye glasses and can be made to any prescription (including no prescription).
- see-through lenses 116 and 118 can be replaced by a variable prescription lens.
- Opacity filter 114 filters out natural light (either on a per pixel basis or uniformly) to enhance the contrast of the virtual imagery.
- Light-guide optical element 115 channels artificial light to the eye. More details of opacity filter 114 and light-guide optical element 115 are provided below.
- an image source mounted to or inside temple 102 is an image source, which (in one embodiment) includes microdisplay 120 for projecting a virtual image and lens 122 for directing images from microdisplay 120 into light-guide optical element 115.
- lens 122 is a collimating lens.
- Control circuits 136 provide various electronics that support the other components of head mounted display device 2. More details of control circuits 136 are provided below with respect to Fig. 6.
- the inertial measurement unit 132 (or FMU 132) includes inertial sensors such as a three axis magnetometer 132A, three axis gyro 132B and three axis accelerometer 132C.
- the inertial measurement unit 132 senses position, orientation, and sudden accelerations (pitch, roll and yaw) of head mounted display device 2.
- the IMU 132 may include other inertial sensors in addition to or instead of magnetometer 132A, gyro 132B and accelerometer 132C.
- Microdisplay 120 projects an image through lens 122.
- image generation technologies can be used to implement microdisplay 120.
- microdisplay 120 can be implemented in using a transmissive projection technology where the light source is modulated by optically active material, backlit with white light. These technologies are usually implemented using LCD type displays with powerful backlights and high optical energy densities.
- Microdisplay 120 can also be implemented using a reflective technology for which external light is reflected and modulated by an optically active material. The illumination is forward lit by either a white source or RGB source, depending on the technology.
- DLP digital light processing
- LCOS liquid crystal on silicon
- Mirasol® display technology from Qualcomm, Inc.
- microdisplay 120 can be implemented using an emissive technology where light is generated by the display.
- a PicoPTM display engine from Microvision, Inc. emits a laser signal with a micro mirror steering either onto a tiny screen that acts as a transmissive element or beamed directly into the eye (e.g., laser).
- Light-guide optical element 115 transmits light from microdisplay 120 to the eye 140 of the user wearing head mounted display device 2.
- Light-guide optical element 115 also allows light from in front of the head mounted display device 2 to be transmitted through light-guide optical element 115 to eye 140, as depicted by arrow 142, thereby allowing the user to have an actual direct view of the space in front of head mounted display device 2 in addition to receiving a virtual image from microdisplay 120.
- the walls of light-guide optical element 115 are see-through.
- Light-guide optical element 115 includes a first reflecting surface 124 (e.g., a mirror or other surface). Light from microdisplay 120 passes through lens 122 and becomes incident on reflecting surface 124.
- the reflecting surface 124 reflects the incident light from the microdisplay 120 such that light is trapped inside a planar substrate comprising light-guide optical element 115 by internal reflection. After several reflections off the surfaces of the substrate, the trapped light waves reach an array of selectively reflecting surfaces 126. Note that only one of the five surfaces is labeled 126 to prevent over-crowding of the drawing. Reflecting surfaces 126 couple the light waves incident upon those reflecting surfaces out of the substrate into the eye 140 of the user. [0041] As different light rays will travel and bounce off the inside of the substrate at different angles, the different rays will hit the various reflecting surfaces 126 at different angles. Therefore, different light rays will be reflected out of the substrate by different ones of the reflecting surfaces.
- each eye will have its own light- guide optical element 115.
- each eye can have its own microdisplay 120 that can display the same image in both eyes or different images in the two eyes.
- Opacity filter 114 which is aligned with light-guide optical element 115, selectively blocks natural light, either uniformly or on a per-pixel basis, from passing through light-guide optical element 115. Details of an example of opacity filter 114 are provided in U.S. Patent Publication No. 2012/0068913 to Bar-Zeev et al., entitled “Opacity Filter For See-Through Mounted Display,” filed on September 21, 2010. However, in general, an embodiment of the opacity filter 114 can be a see-through LCD panel, an electrochromic film, or similar device which is capable of serving as an opacity filter.
- Opacity filter 114 can include a dense grid of pixels, where the light transmissivity of each pixel is individually controllable between minimum and maximum transmissivities. While a transmissivity range of 0-100% is ideal, more limited ranges are also acceptable, such as for example about 50% to 90% per pixel.
- a mask of alpha values can be used from a rendering pipeline, after z-buffering with proxies for real -world objects.
- the system When the system renders a scene for the mixed reality display, it takes note of which real -world objects are in front of which virtual objects as explained below. If a virtual object is in front of a real-world object, then the opacity may be on for the coverage area of the virtual object. If the virtual object is (virtually) behind a real -world object, then the opacity may be off, as well as any color for that pixel, so the user will see just the real -world object for that corresponding area (a pixel or more in size) of real light.
- Coverage would be on a pixel-by-pixel basis, so the system could handle the case of part of a virtual object being in front of a real -world object, part of the virtual object being behind the real -world object, and part of the virtual object being coincident with the real -world object.
- Displays capable of going from 0% to 100% opacity at low cost, power, and weight are the most desirable for this use.
- the opacity filter can be rendered in color, such as with a color LCD or with other displays such as organic LEDs.
- Head mounted display device 2 also includes a system for tracking the position of the user's eyes. As will be explained below, the system will track the user's position and orientation so that the system can determine the FOV of the user. In alternative embodiments, the system may include technology for tracking the position of the user's eyes in order to refine the measurement of the FOV of the user.
- head mounted display device 2 may include an eye tracking assembly (not shown), which has an eye tracking illumination device and eye tracking camera.
- the eye tracking illumination device includes one or more infrared (IR) emitters, which emit IR light toward the eye.
- the eye tracking camera includes one or more cameras that sense the reflected IR light.
- the position of the pupil can be identified by known imaging techniques which detect the reflection of the cornea.
- eye tracking involves obtaining an image of the eye and using computer vision techniques to determine the location of the pupil within the eye socket. In one embodiment, it is sufficient to track the location of one eye since the eyes usually move in unison. However, it is possible to track each eye separately.
- Fig. 5 only shows half of the head mounted display device 2.
- a full head mounted display device may include another set of see-through lenses, another opacity filter, another light-guide optical element, another microdisplay 120, another lens 122, room-facing camera, earphones, and temperature sensor.
- Fig. 6 is a block diagram depicting the various components of head mounted display device 2.
- Fig. 7 is a block diagram describing the various components of processing unit 4.
- Head mounted display device 2 the components of which are depicted in Fig. 6, is used to provide a virtual experience to the user by fusing one or more virtual images seamlessly with the user's view of the real world. Additionally, the head mounted display device components of Fig. 6 include many sensors that track various conditions. Head mounted display device 2 will receive instructions about the virtual image from processing unit 4 and will provide the sensor information back to processing unit 4. Processing unit 4 may determine where and when to provide a virtual image to the user and send instructions accordingly to the head mounted display device of Fig. 6. [0047] Some of the components of Fig.
- Control circuit 200 includes processor 210, memory controller 212 in communication with memory 214 (e.g., D-RAM), camera interface 216, camera buffer 218, display driver 220, display formatter 222, timing generator 226, display out interface 228, and display in interface 230.
- memory 214 e.g., D-RAM
- control circuit 200 are in communication with each other via dedicated lines or one or more buses. In another embodiment, the components of control circuit 200 is in communication with processor 210.
- Camera interface 216 provides an interface to the two room -facing cameras 112 and stores images received from the room-facing cameras in camera buffer 218.
- Display driver 220 will drive microdisplay 120.
- Display formatter 222 provides information, about the virtual image being displayed on microdisplay 120, to opacity control circuit 224, which controls opacity filter 114.
- Timing generator 226 is used to provide timing data for the system.
- Display out interface 228 is a buffer for providing images from room-facing cameras 112 to the processing unit 4.
- Display in interface 230 is a buffer for receiving images such as a virtual image to be displayed on microdisplay 120.
- Display out interface 228 and display in interface 230 communicate with band interface 232 which is an interface to processing unit 4.
- Power management circuit 202 includes voltage regulator 234, eye tracking illumination driver 236, audio DAC and amplifier 238, microphone preamplifier and audio ADC 240, temperature sensor interface 242 and clock generator 244.
- Voltage regulator 234 receives power from processing unit 4 via band interface 232 and provides that power to the other components of head mounted display device 2.
- Audio DAC and amplifier 238 output audio information to the earphones 130.
- Microphone preamplifier and audio ADC 240 provides an interface for microphone 110.
- Temperature sensor interface 242 is an interface for temperature sensor 138.
- Power management circuit 202 also provides power and receives data back from three axis magnetometer 132A, three axis gyro 132B and three axis accelerometer 132C.
- Fig. 7 is a block diagram describing the various components of processing unit 4.
- Control circuit 304 includes a central processing unit (CPU) 320, graphics processing unit (GPU) 322, cache 324, RAM 326, memory controller 328 in communication with memory 330 (e.g., D-RAM), flash memory controller 332 in communication with flash memory 334 (or other type of non-volatile storage), display out buffer 336 in communication with head mounted display device 2 via band interface 302 and band interface 232, display in buffer 338 in communication with head mounted display device 2 via band interface 302 and band interface 232, microphone interface 340 in communication with an external microphone connector 342 for connecting to a microphone, PCI express interface for connecting to a wireless communication device 346, and USB port(s) 348.
- CPU central processing unit
- GPU graphics processing unit
- RAM random access memory
- memory controller 328 in communication with memory 330 (e.g., D-RAM)
- flash memory controller 332 in communication with flash memory 334 (or other type of non-volatile
- wireless communication device 346 can include a Wi-Fi enabled communication device, BlueTooth communication device, infrared communication device, etc.
- the USB port can be used to dock the processing unit 4 to processing unit computing system 22 in order to load data or software onto processing unit 4, as well as charge processing unit 4.
- CPU 320 and GPU 322 are the main workhorses for determining where, when and how to insert virtual three-dimensional objects into the view of the user. More details are provided below.
- Power management circuit 306 includes clock generator 360, analog to digital converter 362, battery charger 364, voltage regulator 366, head mounted display power source 376, and temperature sensor interface 372 in communication with temperature sensor 374 (possibly located on the wrist band of processing unit 4).
- Analog to digital converter 362 is used to monitor the battery voltage, the temperature sensor and control the battery charging function.
- Voltage regulator 366 is in communication with battery 368 for supplying power to the system.
- Battery charger 364 is used to charge battery 368 (via voltage regulator 366) upon receiving power from charging jack 370.
- HMD power source 376 provides power to the head mounted display device 2.
- Fig. 8 illustrates a high-level block diagram of the mobile mixed reality assembly 30 including the room-facing camera 112 of the display device 2 and some of the software modules on the processing unit 4. Some or all of these software modules may alternatively be implemented on a processor 210 of the head mounted display device 2.
- the room -facing camera 112 provides image data to the processor 210 in the head mounted display device 2.
- the room-facing camera 112 may include a depth camera, an RGB color image camera and an IR light component to capture image data of a scene.
- the room-facing camera 112 may include less than all of these components.
- the IR light component may emit an infrared light onto the scene and may then use sensors (not shown) to detect the backscattered light from the surface of one or more objects in the scene using, for example, the depth camera and/or the RGB camera.
- pulsed infrared light may be used such that the time between an outgoing light pulse and a corresponding incoming light pulse may be measured and used to determine a physical distance from the room-facing camera 112 to a particular location on the objects in the scene, including for example a user's hands.
- the phase of the outgoing light wave may be compared to the phase of the incoming light wave to determine a phase shift. The phase shift may then be used to determine a physical distance from the capture device to a particular location on the targets or objects.
- time-of-flight analysis may be used to indirectly determine a physical distance from the room-facing camera 112 to a particular location on the objects by analyzing the intensity of the reflected beam of light over time via various techniques including, for example, shuttered light pulse imaging.
- the room-facing camera 1 12 may use a structured light to capture depth information.
- patterned light i.e., light displayed as a known pattern such as a grid pattern, a stripe pattern, or different pattern
- the pattern may become deformed in response.
- Such a deformation of the pattern may be captured by, for example, the 3-D camera and/or the RGB camera (and/or other sensor) and may then be analyzed to determine a physical distance from the room-facing camera 112 to a particular location on the objects.
- the IR light component is displaced from the depth and/or RGB cameras so triangulation can be used to determined distance from depth and/or RGB cameras.
- the room-facing camera 112 may include a dedicated IR sensor to sense the IR light, or a sensor with an IR filter.
- the present technology may sense objects and three- dimensional positions of the objects without each of a depth camera, RGB camera and IR light component.
- the room-facing camera 112 may for example work with just a standard image camera (RGB or black and white). Such embodiments may operate by a variety of image tracking techniques used individually or in combination.
- a single, standard image room-facing camera 112 may use feature identification and tracking. That is, using the image data from the standard camera, it is possible to extract interesting regions, or features, of the scene. By looking for those same features over a period of time, information for the objects may be determined in three-dimensional space.
- the head mounted display device 2 may include two spaced apart standard image room-facing cameras 112.
- depth to objects in the scene may be determined by the stereo effect of the two cameras.
- Each camera can image some overlapping set of features, and depth can be computed from the parallax difference in their views.
- SLAM simultaneous localization and mapping
- the processing unit 4 may include a scene mapping module 452. Using the data from the front-facing camera(s) 112 as described above, the scene mapping module is able to map objects in the scene (including one or both of the user's hands) to a three- dimensional frame of reference. Further details of the scene mapping module are described below.
- the processing unit 4 may implement a skeletal recognition and tracking module 448.
- An example of a skeletal tracking module 448 is disclosed in U.S. Patent Publication No. 2012/0162065, entitled, "Skeletal Joint Recognition And Tracking System," filed March 2, 2012. Such systems may also track a user's hands.
- the processing unit 4 may further execute a hand recognition and tracking module 450.
- the module 450 receives the image data from the room-facing camera 112 and is able to identify a user's hand, and a position of the user's hand, in the FOV.
- An example of the hand recognition and tracking module 450 is disclosed in U.S.
- the processing unit 4 may further include a gesture recognition engine 454 for receiving skeletal model and/or hand data for one or more users in the scene and determining whether the user is performing a predefined gesture or application-control movement affecting an application running on the processing unit 4. More information about gesture recognition engine 454 can be found in U.S. Patent Application No. 12/422,661, entitled “Gesture Recognizer System Architecture,” filed on April 13, 2009.
- the present system further includes a speech recognition engine 456.
- the speech recognition engine 456 may operate according to any of various known technologies.
- the processing unit 4 may further implement a synchronization software engine 480 and a calibration software engine 482 for calibrating the one or more head mounted display devices 2 and camera assemblies 50 to the scene map.
- a synchronization software engine 480 and a calibration software engine 482 for calibrating the one or more head mounted display devices 2 and camera assemblies 50 to the scene map. The operation of the synchronization engine 480 and calibration engine 482 is explained below.
- camera assembly 50 includes an image sensor 56.
- the image sensor 56 may include a depth camera and an IR light component to capture image data of a scene. Using these components, the image sensor 56 may capture depth data of the scene, from the perspective of the camera assembly 50, according to any of the above-described methods by which room-facing cameras 112 capture image data. It is further understood that image sensor 56 may build a scene map by any of a variety of other technologies, using for example depth sensors alone, RGB cameras alone, black and white cameras alone or two or more of these sensors/cameras working together. For example, depth data may be generated using two color cameras and stereo analysis. Such scene maps may be built using data from a single camera assembly, or a plurality of camera assemblies (and possibly head mounted display devices 2) working together.
- camera assembly 50 may communicate with a computing system 70.
- computing system 70 and processing unit 4 are separate from each other, computing system 70 may execute some or all of the processing unit 4 software modules 448, 450, 452, 454, 456, 480 and/or 482, described above with respect to Fig. 8, instead of or in addition to the processing unit 4.
- the head mounted display device 2 and processing unit 4 work together to create the scene map or model of the environment that the user is in and tracks various moving or stationary objects in that environment.
- data from the sensors of the one or more camera assemblies 50 may assist in generating the scene map.
- the processing unit 4 tracks the FOV of the head mounted display device 2 worn by the user 18 by tracking the position and orientation of the head mounted display device 2.
- Sensor information for example from the room-facing cameras 112 and EVIU 132, obtained by head mounted display device 2 is transmitted to processing unit 4.
- the processing unit 4 processes the data and updates the scene model.
- the processing unit 4 further provides instructions to head mounted display device 2 on where, when and how to insert any virtual three-dimensional objects.
- the computing system 70 may track the position, orientation and frustum view of the one or more camera assemblies 50, and update the scene model accordingly.
- Fig. 9 is a high level flowchart of the operation and interactivity of the processing unit 4, head mounted display device 2, one or more camera assemblies 50 and computing system 70 during a discrete time period such as the time it takes to generate, render and display a single frame of image data.
- data may be refreshed at a rate of 60 Hz, though it may be refreshed more often or less often in further embodiments.
- the system for presenting a virtual environment may be configured in step 600.
- a user 18 or operator of the system may specify virtual content that is to be presented, and where it is to be presented.
- a virtual tool case including a plurality of virtual tools may be opened and displayed.
- steps 604 the processing unit 4 gathers data from the scene.
- This may be data sensed by the head mounted display device 2, and in particular, by the room-facing cameras 112 and the EVIU 132.
- This may also include image and inertial data sensed by the camera assembly 50, and in particular, by the camera 50, the position senor 54 and the image sensor 56.
- the positions of the one or more head mounted display devices 2 and one or more camera assemblies 50 may be calibrated to each other within the scene map. However, it may happen that image data received in the camera 52 and image sensor 56 of the one or more camera assemblies 50, and the room-facing cameras 112 of the one or more head mounted display devices 2, are received at different rates. Thus, before the camera assemblies and head mounted display devices may be calibrated to the scene map, embodiments of the present technology time synchronize the image data received from the image capture devices of the different camera assemblies and head mounted display devices in step 606 to remove time as a variable. This way, the calibration engine 482 can perform its analysis on the image data from the different image capture devices captured at the same time. In the following description, the camera 52, image sensor 56 and/or room facing camera 112 are collectively referred to as image capture devices.
- the synchronization step 606 is performed by the synchronization engine 480. Further details relating to step 606 are now described with reference to the flowchart of Fig. 10. The following description may be applied to synchronization of data received from the depth cameras and RGB cameras of the different image capture devices. Thus, all image capture devices of the one or more head mounted display devices 2 and one or more camera assemblies 50 may be synchronized together.
- each image capture device frames of scene information are captured by the depth camera and RGB camera in step 720.
- the depth and RGB frame data for each capture device are transmitted to the processing unit 4 and/or computing system 70.
- the incoming depth/RGB data is time stamped off a single master clock in either the processing unit 4 or computing system 70.
- the synchronization engine 480 looks at the frame data received from all of the devices 2 and assemblies 50 for a given frame number. Using the time stamps for such data for a given frame, as well as the known resolution for each of the cameras, the synchronization engine determines the required time offsets for the depth and RGB data from each device/assembly generating the data. From this, the synchronization engine may determine a required adjustment in the timing of each image capture device. The synchronization engine may select as a reference a time stamp from a single device' s frame data (e.g., the device that generated the first data for that frame) and set that time stamp as the reference time stamp. The frame data for all other devices may then be adjusted to that reference time stamp. Alternatively, the synchronization engine may generate an internal clock reference, and set the adjustment for all frame data to that internal clock reference.
- the synchronization engine may send commands to each device 2/assembly 50 in step 734 to adjust the rate at which that device generates its frame data.
- the synchronization engine may add to or subtract from a blanking interval for the capture devices generating the frame data, so that all frame data from all capture devices is generated and sent at the same time. If the synchronization engine 480 needs to have frames from one device or assembly come in sooner, for example to avoid buffer underflows, it can send a command to the device/assembly to reduce the blanking interval for that device. If the synchronization engine 480 needs to have the frame data for a device or assembly generated later, for example to avoid buffer overflows, it can increase the vertical blanking interval for that device/assembly.
- synchronization steps may be omitted from the initial calibration process.
- Such embodiments may make use of motion vectors to predict locations of captured image data points at times other than the capture point. While computationally difficult and processing intensive, such embodiments are possible.
- a z-axis is defined straight out from a camera lens, and the x-axis and y-axis are horizontal and vertical offsets, respectively, from the z- axis.
- This definition of x, y and z axes is by way of example only, and the axes may be oriented differently in further embodiments.
- Each capture device may have an x, y, z Cartesian space that is different than that of other capture devices. As explained hereinafter, once all capture devices are calibrated, a single 3-D real world Cartesian coordinate system may be defined which includes all of the image capture devices.
- the calibration operation is performed by calibration engine 482 using both the depth information and RGB information from the different capture devices.
- Depth cameras provide information about an x, y and z position of points in an image, but may have low resolution.
- RGB cameras do not provide depth information in the z direction, but typically have high resolution and texture for discerning discontinuities, or cues, used to correlate one capture device's view to another. Accordingly, embodiments of the present technology may use both depth and RGB cameras from a capture device for the calibration process.
- a step 740 the different image capture devices capture depth and RGB image data from a scene.
- the camera view of each depth camera and RGB camera for the different capture devices is converted from a camera-centric view to an orthogonal 3-D world view specific to the generating camera.
- Some depth cameras measure captured data using a perpendicular frame of reference. That is, the camera defines a plane in a z-direction which increases for objects that are farther away from the camera.
- the x and y dimensions represent the horizontal and vertical variance from the z-axis.
- Other depth cameras measure captured data using a radial frame of reference. That is, the camera measures vectors having a first point (xl, yl, zl) at the camera and a second point (x2, y2, z2) at an object.
- the calibration engine 482 may next correct for camera distortion for both depth and RGB cameras in the image capture devices in devices 2 and assemblies 50.
- the distortion of a given camera may be a known property provided by the camera manufacturer. If not, algorithms are known for calculating a camera's distortion, including for example imaging an object of known dimensions such as a checker board pattern at different locations within a camera's field of view. The deviations in the camera view coordinates of points in that image will be the result of camera lens distortion.
- distortion may be corrected by known inverse matrix transformations that result in a uniform camera view map of points in a point cloud for a given capture device.
- the calibration engine 482 may next translate the distortion-corrected image data points captured by a capture device from the camera view to an orthogonal 3-D world view in step 746.
- This orthogonal 3-D world view is a point cloud map of all data captured by an image capture device in an orthogonal x, y, z Cartesian coordinate system with respect to the capture device (e.g., the capture device may be at (0, 0, 0) in the 3-D world view).
- the matrix transformation equations for translating camera view to an orthogonal 3-D world view are known. See, for example, David H. Eberly, "3d Game Engine Design: A Practical Approach To Real-Time Computer Graphics," Morgan Kaufman Publishers (2000).
- Data from a capture device depth camera may be sufficient to construct the orthogonal 3-D world view in step 746.
- data from a capture device RGB camera may also be used in constructing the 3-D world view in step 746.
- RGB cameras return a 2-D map of data points, so it is computationally more difficult to derive a 3-D world map from RGB data alone.
- it may be possible to construct a 3-D world map from RGB data See for example, U.S. Patent Publication No. 2007/0110338, previously mentioned.
- Each image capture device in the head mounted devices 2 and camera assemblies 50 may construct an orthogonal 3-D world view in step 746.
- the x, y, z world coordinates of data points from a given capture device are still from the perspective of that capture device at the conclusion of step 746, and not yet correlated to the x, y, z world coordinates of data points from other capture devices in the devices 2 and camera assemblies 50.
- the step of correcting for camera lens distortion may be performed after the step 746 of transforming camera view to the orthogonal 3-D world view.
- the next step is to translate the various orthogonal 3-D world views of the different image capture devices into a single overall 3-D world view shared by all image capture devices in the head mounted display devices 2 and camera assemblies 50.
- embodiments of the calibration engine 482 next look for key-point discontinuities, or cues, in the point clouds of the world views of the respective capture devices in step 748, and then identifies cues that are the same between different point clouds of different capture devices in step 750.
- the calibration engine 482 is able to determine that two world views of two different capture devices include the same calibration cues, the engine 482 is able to determine the position, orientation and focal length of the two capture devices with respect to each other and the cues in step 752.
- not all image capture devices in the one or more devices 2 and/or camera assemblies 50 will share the same common cues. However, as long as a first and second capture device have shared cues, and a second and third capture device have shared cues, the calibration engine is able to determine the positions, orientations and focal lengths of the first, second and third capture devices relative to each other and a single, overall 3-D world view. The same is true for additional capture devices.
- the first step 748 in this process is to identify cues in a 3-D real world view point cloud for each capture device.
- a cue may be a data point that is discontinuous with neighboring points, and hence is easily identified between point clouds from different capture devices. Ideally, a number of such cues are identified within each point cloud, and may possibly define an edge and/or a corner of an object within the point cloud. Aspects of other objects within an image point cloud may be cues as well.
- SIFT Scale- Invariant Feature Transform
- MSER Maximally Stable Extremal Regions
- step 750 cues which are shared between point clouds from two or more capture devices are identified.
- a first set of vectors exist between a first capture device and a set of cues in the first capture device's Cartesian coordinate system
- a second set of vectors exist between a second capture device and that same set of cues in the second capture device's Cartesian coordinate system
- the two systems may be resolved with respect to each other into a single Cartesian coordinate system including both capture devices.
- a matrix correlating the two point clouds together may be estimated, for example by Random Sampling Consensus (RANSAC), or a variety of other estimation techniques. Matches that are outliers to the recovered fundamental matrix may then be removed. After finding a set of assumed, geometrically consistent matches between a pair of point clouds, the matches may be organized into a set of tracks for the respective point clouds, where a track is a set of mutually matching cues between point clouds.
- a first track in the set may contain a projection of each common cue in the first point cloud.
- a second track in the set may contain a projection of each common cue in the second point cloud.
- every connected component of this graph comprises a track.
- the tracks associated with some connected components might be inconsistent; in particular, a track is inconsistent if it contains more than one cue for the same image.
- only the consistent tracks containing at least two cues are kept for the step 752 of determining relative capture device position, described below.
- the point clouds from different capture devices may be resolved into a single point cloud in a single orthogonal 3-D real world view.
- the positions and orientations of all capture devices are calibrated with respect to this single point cloud and single orthogonal 3-D real world view.
- the projections of the cues in the set of tracks for two point clouds are analyzed. From these projections, the calibration engine 482 can determine the perspective of a first capture device with respect to the cues, and can also determine the perspective of a second capture device with respect to the cues. From that, the calibration engine 482 can resolve the point clouds into a best estimate of a single point cloud and single orthogonal 3-D real world view containing the cues and other data points from both point clouds.
- the calibration engine can determine the relative positions and orientations of the capture devices relative to the single orthogonal 3-D real world view and each other. The calibration engine can further determine the focal length of each capture device with respect to the single orthogonal 3-D real world view.
- two or more capture devices may capture one or more images of a calibration cue.
- This calibration cue may be captured from multiple different orientations.
- the captured images are processed as described above to determine the position/orientation and lens characteristics of each image capture device.
- IMU data from IMU 132 of the head mounted display device, and from position sensor 54 of the camera assembly 50, may be used to refine and/or confirm the positions and orientations of the one or more head mounted display devices 2 and camera assemblies 50.
- the calibration steps performed by the calibration engine 482 and described above with respect to Figs. 9 through 11 may be performed once, upon initial use of the one or more head mounted display devices 2 and camera assemblies 50.
- the users and objects within the scene may change, and thus the point clouds generated by the respective capture devices may change, but the calibration of the cameras with respect to each other may stay the same. Where a camera assembly is moved, the calibration steps may be repeated.
- the calibration engine may continue to gather data regarding cues from the point clouds of various capture devices, and in the event the calibration engine identifies better cues from two or more capture devices, it may repeat the above steps in an attempt to improve the calibration of the capture devices.
- a scene map may be developed in step 610 identifying the geometry of the scene as well as the geometry, the positions of devices 2 and camera assemblies 50, and positions of objects within the scene.
- the scene map generated in a given frame may include the x, y and z positions of a user' s hand(s), other real world objects and virtual objects in the scene. Methods for gathering depth and position data have been explained above.
- step 612 the system may detect and track a user's skeleton and/or hands as described above, and update the scene map based on the positions of moving body parts and other moving objects.
- step 614 the processing unit 4 determines the x, y and z position, the orientation and the FOV of the head mounted display device 2 within the scene. Further details of step 614 are now described with respect to the flowchart of Fig. 12.
- step 760 the image data for the scene is analyzed by the processing unit 4 to determine both the user head position and a face unit vector looking straight out from a user's face.
- the head position may be identified from feedback from the head mounted display device 2, and from this, the face unit vector may be constructed.
- the face unit vector may be used to define the user's head orientation and, in examples, may be considered the center of the FOV for the user.
- the face unit vector may also or alternatively be identified from the camera image data returned from the room-facing cameras 112 on head mounted display device 2. In particular, based on what the cameras 112 on head mounted display device 2 see, the processing unit 4 is able to determine the face unit vector representing a user's head orientation.
- the position and orientation of a user's head may also or alternatively be determined from analysis of the position and orientation of the user's head from an earlier time (either earlier in the frame or from a prior frame), and then using the inertial information from the IMU 132 to update the position and orientation of a user's head.
- Information from the IMU 132 may provide accurate kinematic data for a user's head, but the FMU typically does not provide absolute position information regarding a user's head. This absolute position information, or ground truth, may be provided from the image data obtained from the cameras on the head mounted display device 2.
- the position and orientation of a user's head may be determined by steps 760 and 764 acting in tandem. In further embodiments, one or the other of steps 769 and 764 may be used to determine head position and orientation of a user's head.
- the processing unit may further consider the position of the user's eyes in his head. This information may be provided by the eye tracking assembly described above.
- the eye tracking assembly is able to identify a position of the user's eyes, which can be represented as an eye unit vector showing the left, right, up and/or down deviation from a position where the user's eyes are centered and looking straight ahead (i.e., the face unit vector).
- a face unit vector may be adjusted to the eye unit vector to define where the user is looking.
- the FOV of the user may next be determined.
- the range of view of a user of a head mounted display device 2 may be predefined based on the up, down, left and right peripheral vision of a hypothetical user.
- this hypothetical user may be taken as one having a maximum possible peripheral vision.
- Some predetermined extra FOV may be added to this to ensure that enough data is captured for a given user in embodiments.
- the FOV for the user at a given instant may then be calculated by taking the range of view and centering it around the face unit vector, adjusted by any deviation of the eye unit vector.
- this determination of a user' s FOV is also useful for determining what may not be visible to the user. As explained below, limiting processing of virtual objects to those areas that are within a particular user's FOV may improve processing speed and reduces latency.
- step 620 the frustum view of the one or more camera assemblies 50 may be determined. This determination may be made in the same or analogous way as described above with respect to steps 764 and 770.
- a view of the virtual and real objects of a mixed reality scene may be displayed on the one or more monitors 60.
- the processing unit 4 and/or computing system 70 may receive selection from a user or operator of a head mounted display device 2 or camera assembly 50.
- steps 630 - 658 for rendering and displaying virtual objects use the view perspective of the selected head mounted display device 2 or camera assembly 50.
- the following steps 630-658 relate to displaying an image on the one or more monitors 60.
- a similar set of steps 630-658 may also be performed in parallel for displaying an image to the head mounted display devices 2, from the perspective of the head mounted display device 2.
- step 630 the processing unit 4 may cull the rendering operations so that just those virtual objects which could possibly appear within the final frustum view of the selected camera assembly or head mounted display device are rendered. The positions of other virtual objects may still be tracked, but they are not rendered. It is also conceivable that, in further embodiments, step 630 may be skipped altogether and the entire image is rendered.
- the processing unit 4 and/or computing system 70 may next perform a rendering setup step 638 where setup rendering operations are performed using the scene map and FOV received in steps 610, 614 and 620.
- the processing unit may perform rendering setup operations in step 638 for the virtual objects which are to be rendered on the monitor 60.
- the setup rendering operations in step 638 may include common rendering tasks associated with the virtual object(s) to be displayed. These rendering tasks may include for example, shadow map generation, lighting, and animation.
- the rendering setup step 638 may further include a compilation of likely draw information such as vertex buffers, textures and states for virtual objects to be displayed in the predicted final FOV.
- the processing unit 4/computing system 70 may next determine occlusions and shading from the view of the selected device 2/assembly 50 in step 644.
- the scene map has x, y and z positions of objects in the scene, including any moving and non-moving virtual or real objects. Knowing the location of the selected view and its line of sight to objects in the FOV, the processing unit 4 and/or computing system 70 may then determine whether a virtual object partially or fully occludes the view of a real world object. Additionally, the processing unit 4 and/or computing system 70 may determine whether a real world object partially or fully occludes the view of a virtual object.
- step 646 the GPU 322 of processing unit 4 (or a GPU in the computing system 70) may next render an image to be displayed on the monitor 60. Portions of the rendering operations may have already been performed in the rendering setup step 638 and periodically updated. Any occluded virtual objects may not be rendered, or they may be rendered. Where rendered, occluded objects will be omitted from display by the opacity filter 114 as explained above.
- step 650 the processing unit 4 and/or computing system 70 checks whether it is time to send a rendered image to the monitor 60, or whether there is still time for further refinement of the image using more recent position feedback data from the head mounted display device 2 and/or camera assemblies 50.
- a single frame is about 16ms.
- the image from the selected camera assembly 50 or head mounted device 2 is sent to the monitor 60.
- the real world image captured by the camera 52 is sent to the monitor 60 for display.
- the real world image captured by the RGB camera of the room-facing camera 112 is sent to the monitor for display.
- any virtual objects in the determined frustum view are also sent to the monitor 60 to be displayed at the appropriate pixels, accounting for perspective and occlusions.
- the control data for the opacity filter is also transmitted from processing unit 4 and/or computing system 70 to the monitor 60 to apply the opacity filter settings.
- the monitor 60 may then display the fused image of real and virtual objects in step 658.
- depth and other image data from a camera assembly 50 is used to determine occlusions in the view of the camera assembly.
- Data from the scene map established by the processing unit 4 and head mounted display device 2 may also be used in determining a surface mesh of objects in the scene map. This data and surface mesh may also be used when determining occlusions in the view of the camera assembly.
- a user 18 is blocking the view of a virtual object from the perspective of the selected camera assembly 50.
- the depth and other image data from the camera assembly 50 and/or the scene map from the processing unit 4 and head mounted display device 2 may be used to determine occlusions of virtual objects due to the user 18 blocking part or all of a virtual object from the perspective of the selected camera assembly 50.
- the known location of a user 18 may be used to determine occlusions from the selected camera assembly 50 perspective.
- the position of the head mounted display device 2 worn by the user 18 is known.
- the position of the user 18 may alternatively or additionally be detected by a skeletal tracking algorithm.
- a geometric shape approximating the size and shape of the user 18 may be constructed and used for the purpose of determining occlusions of virtual content by the user from the perspective of the selected camera assembly 50.
- the processing unit and/or computing system 70 may loop back for more recent sensor data to refine the predictions of the final view and the final positions of objects in the view. In particular, if there is still time in step 650, the processing unit 4 and/or computing system 70 may return to step 604 to get more recent sensor data from the head mounted display device 2 and camera assemblies 50.
- processing steps 600 through 658 are described above by way of example only. It is understood that one or more of these steps may be omitted in further embodiments, the steps may be performed in differing order, or additional steps may be added.
- a mixed reality experience including virtual and real objects may be displayed on a monitor for viewing by people not wearing a head mounted display device. Moreover, by positioning the camera assemblies 50 at desired positions around a mixed reality scene, different views of the mixed reality environment may be selected and displayed on the monitor.
- Fig. 13 illustrates a screen shot captured by a first camera assembly 50a (not shown) and displayed on a first monitor 60a.
- the screen shot shows real objects and virtual objects (including virtual content 40 and virtual tools 44).
- a second camera assembly 50b is also within the scene and is captured in the screen shot.
- the first monitor 60a is also displaying a second monitor 60b that is also in the scene.
- the second monitor 60b is showing the same image as is shown in the Fig. 13 (i.e., the same image that is being shown on the first monitor 60a).
- Fig. 14 illustrates a block diagram of an embodiment of the system according to the present technology. While communications between components are shown with specific wired or wireless connections, it is understood that communications between components may be wired or wireless in further embodiments.
- a video feed of a mixed reality environment may be sent over a network connection to a remote location.
- the mixed reality environment may then be viewed, either on a monitor or via a head mounted display device at the remote location.
- the present technology employs a time synchronization system and method of gathering poses at the moment that the sensor exposes itself to get solid world locked virtual objects.
- the virtual objects are rendered at a later time than the time when the real world image is obtained from the cameras 52. That's because poses from the tracking device on the camera assembly are received 60 Hz.
- the system may take camera poses at distinct, successive periods of time. The system is then able to interpolate between these periods of time to precisely know the camera pose at a given instant in time with sub millisecond accuracy. With the position of a camera assembly known at a precise instant in time, the virtual objects to be rendered for that precise instant in time, to provide an extremely close matching of virtual objects to the real world video feed.
- Such a method employs a slight delay, e.g., 100 to 150 ms delay, in rendering objects but provides for seamless fusion of virtual and real objects in an image generated by a camera assembly 50.
- the zoom/focus/exposure/white balance/ISO settings of the camera 52 of the camera assembly 50 may be electronically communicated to the processing unit 4 and/or computing system 70 so the proper zoom, blur and other settings can be used for that exact frame. This allows rendering of a virtual image that geometrically and qualitatively matches the image produced by the lens on the sensor of the high end camera.
- Embodiments described above have included camera assemblies 50 and the user wearing a head mounted display device 2.
- the head mounted display device 2 may be omitted.
- the user 18 may have a device including sensors allowing it to track its position in space.
- Such device may for example be a cellular telephone or computing tablet.
- the scene map could be built by sensors in the one or more camera assemblies 50, and/or the device held by the user 18.
- the mixed reality environment to be displayed to the user via a monitor 60 or the device held by the user.
- the present technology relates to a system for presenting a mixed reality environment including real and virtual objects, the system comprising: a head mounted display device including a display unit for displaying a three- dimensional virtual object in the virtual environment; one or more camera assemblies; and a processing unit operatively coupled to the display device and one or more camera assemblies, the processing unit generating a scene map comprising a three-dimensional coordinate space in which the head mounted display, the three-dimensional virtual object and the one or more camera assemblies are registered, the processing unit and a camera assembly of the one or more camera assemblies generating an image for display of the mixed reality environment, using the scene map, from a perspective of the camera assembly.
- the present technology relates to a system for presenting a mixed reality environment including real and virtual objects, the system comprising: a plurality of image capture devices for capturing images of real world objects in the mixed reality environment from different perspectives; and a processing unit operatively coupled to the plurality of image capture devices, the processing unit identifying positions of the plurality of image capture devices with respect to each other, the processing unit further generating a virtual object in the mixed reality environment and identifying a position of the virtual object with respect to the plurality of image capture devices, the processing unit and an image capture device of the plurality of image capture devices generating an image of the mixed reality environment for display on a two- dimensional monitor from a perspective of the image capture device.
- the present technology relates to a method of presenting a mixed reality environment including real and virtual objects, the method comprising: (a) capturing a first image of the mixed reality environment from a first perspective via a first camera incorporated into a head mounted display device; (b) capturing a second image of the mixed reality environment from a second perspective via a second camera incorporated into a camera assembly; (c) generating a virtual object at a position in the mixed reality environment; (d) displaying the virtual object onto optics on the head mounted display device, the virtual object being displayed from a perspective of the head mounted display device; and (e) displaying the second image from the camera assembly together with the virtual object onto a two-dimensional display device, the virtual object being displayed from a perspective of the camera assembly.
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Optics & Photonics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Computer Graphics (AREA)
- Human Computer Interaction (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- User Interface Of Digital Computer (AREA)
- Studio Devices (AREA)
- Processing Or Creating Images (AREA)
- Controls And Circuits For Display Device (AREA)
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2017538330A JP6860488B2 (ja) | 2015-01-20 | 2016-01-13 | 複合現実システム |
| EP16702463.7A EP3248176A1 (en) | 2015-01-20 | 2016-01-13 | Mixed reality system |
| CN201680006581.7A CN107408314B (zh) | 2015-01-20 | 2016-01-13 | 混合现实系统 |
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201562105701P | 2015-01-20 | 2015-01-20 | |
| US62/105,701 | 2015-01-20 | ||
| US14/728,650 | 2015-06-02 | ||
| US14/728,650 US9846968B2 (en) | 2015-01-20 | 2015-06-02 | Holographic bird's eye view camera |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2016118371A1 true WO2016118371A1 (en) | 2016-07-28 |
Family
ID=56408228
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/US2016/013127 Ceased WO2016118371A1 (en) | 2015-01-20 | 2016-01-13 | Mixed reality system |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US9846968B2 (enExample) |
| EP (1) | EP3248176A1 (enExample) |
| JP (1) | JP6860488B2 (enExample) |
| CN (1) | CN107408314B (enExample) |
| WO (1) | WO2016118371A1 (enExample) |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2019015261A1 (en) * | 2017-07-17 | 2019-01-24 | Chengdu Topplusvision Technology Co., Ltd. | DEVICES AND METHODS FOR SCENE DETERMINATION |
| JP2019152899A (ja) * | 2018-02-28 | 2019-09-12 | 株式会社バンダイナムコスタジオ | シミュレーションシステム及びプログラム |
| JPWO2018142494A1 (ja) * | 2017-01-31 | 2019-11-21 | 株式会社ニコン | 表示制御システム、及び、表示制御方法 |
| JP2020511718A (ja) * | 2017-03-17 | 2020-04-16 | マジック リープ, インコーポレイテッドMagic Leap,Inc. | 拡張現実データを記録するための手法 |
| CN112669671A (zh) * | 2020-12-28 | 2021-04-16 | 北京航空航天大学江西研究院 | 一种基于实物交互的混合现实飞行仿真系统 |
| JP2022088420A (ja) * | 2016-12-13 | 2022-06-14 | マジック リープ, インコーポレイテッド | 検出された特徴を用いた3dオブジェクトレンダリング |
| US12333066B2 (en) | 2020-05-29 | 2025-06-17 | Magic Leap, Inc. | Determining angular acceleration |
Families Citing this family (51)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9986225B2 (en) * | 2014-02-14 | 2018-05-29 | Autodesk, Inc. | Techniques for cut-away stereo content in a stereoscopic display |
| KR102331164B1 (ko) | 2015-03-05 | 2021-11-24 | 매직 립, 인코포레이티드 | 증강 현실을 위한 시스템들 및 방법들 |
| US10838207B2 (en) | 2015-03-05 | 2020-11-17 | Magic Leap, Inc. | Systems and methods for augmented reality |
| US10180734B2 (en) | 2015-03-05 | 2019-01-15 | Magic Leap, Inc. | Systems and methods for augmented reality |
| US10133532B2 (en) * | 2015-09-25 | 2018-11-20 | Seiko Epson Corporation | Display system, display device, information display method, and program |
| KR20180090355A (ko) | 2015-12-04 | 2018-08-10 | 매직 립, 인코포레이티드 | 리로컬리제이션 시스템들 및 방법들 |
| JP7133470B2 (ja) * | 2016-02-18 | 2022-09-08 | イーディーエックス テクノロジーズ インコーポレイテッド | ネットワークの拡張現実表現のためのシステムおよび方法 |
| WO2017159063A1 (ja) * | 2016-03-14 | 2017-09-21 | ソニー株式会社 | 表示装置並びに情報処理端末装置 |
| US10210661B2 (en) * | 2016-04-25 | 2019-02-19 | Microsoft Technology Licensing, Llc | Location-based holographic experience |
| WO2018026737A1 (en) * | 2016-08-02 | 2018-02-08 | Magic Leap, Inc. | Fixed-distance virtual and augmented reality systems and methods |
| JP2018081543A (ja) * | 2016-11-17 | 2018-05-24 | セイコーエプソン株式会社 | 表示装置、頭部装着型表示装置、表示装置の制御方法、及び、プログラム |
| JP6849430B2 (ja) * | 2016-12-27 | 2021-03-24 | キヤノン株式会社 | 画像処理装置、画像処理方法、及びプログラム |
| US10812936B2 (en) | 2017-01-23 | 2020-10-20 | Magic Leap, Inc. | Localization determination for mixed reality systems |
| US10628950B2 (en) * | 2017-03-01 | 2020-04-21 | Microsoft Technology Licensing, Llc | Multi-spectrum illumination-and-sensor module for head tracking, gesture recognition and spatial mapping |
| AU2018236457B2 (en) | 2017-03-17 | 2021-04-29 | Magic Leap, Inc. | Mixed reality system with virtual content warping and method of generating virtual content using same |
| IL298822B2 (en) | 2017-03-17 | 2025-05-01 | Magic Leap Inc | Mixed reality system with color virtual content distortion and method for creating virtual content therewith |
| EP3596702A4 (en) | 2017-03-17 | 2020-07-22 | Magic Leap, Inc. | MIXED REALITY SYSTEM WITH MULTI-SOURCE VIRTUAL CONTENT COMPOSITION AND ASSOCIATED VIRTUAL CONTENT GENERATION PROCESS |
| US11861255B1 (en) | 2017-06-16 | 2024-01-02 | Apple Inc. | Wearable device for facilitating enhanced interaction |
| CN107976811B (zh) * | 2017-12-25 | 2023-12-29 | 河南诺控信息技术有限公司 | 一种基于虚拟现实混合的仿真实验室及其仿真方法 |
| WO2019136588A1 (zh) * | 2018-01-09 | 2019-07-18 | 深圳前海达闼云端智能科技有限公司 | 基于云端计算的标定方法、装置、电子设备和计算机程序产品 |
| CN112262361A (zh) * | 2018-04-20 | 2021-01-22 | Pcms控股公司 | 用于对混合现实内容进行基于注视的控制的方法和系统 |
| JP6688337B2 (ja) * | 2018-06-06 | 2020-04-28 | 任天堂株式会社 | 情報処理プログラム、情報処理システム、情報処理装置および情報処理方法 |
| US10964053B2 (en) * | 2018-07-02 | 2021-03-30 | Microsoft Technology Licensing, Llc | Device pose estimation using 3D line clouds |
| GB201811249D0 (en) * | 2018-07-09 | 2018-08-29 | Digitalbridge | System and method for virtual image alignment |
| EP3827299B1 (en) | 2018-07-23 | 2025-07-09 | Magic Leap, Inc. | Mixed reality system with virtual content warping and method of generating virtual content using same |
| CN112470464B (zh) | 2018-07-23 | 2023-11-28 | 奇跃公司 | 场顺序显示器中的场内子码时序 |
| US10839556B2 (en) | 2018-10-23 | 2020-11-17 | Microsoft Technology Licensing, Llc | Camera pose estimation using obfuscated features |
| WO2020101892A1 (en) | 2018-11-12 | 2020-05-22 | Magic Leap, Inc. | Patch tracking image sensor |
| CN118921450A (zh) * | 2018-12-21 | 2024-11-08 | 奇跃公司 | 多相机交叉现实设备 |
| CN113711587B (zh) | 2019-02-07 | 2025-08-08 | 奇跃公司 | 具有无源深度提取的轻型交叉显示设备 |
| US12013979B2 (en) | 2019-02-07 | 2024-06-18 | Magic Leap, Inc. | Lightweight and low power cross reality device with high temporal resolution |
| US11372474B2 (en) * | 2019-07-03 | 2022-06-28 | Saec/Kinetic Vision, Inc. | Systems and methods for virtual artificial intelligence development and testing |
| CN110456905A (zh) * | 2019-07-23 | 2019-11-15 | 广东虚拟现实科技有限公司 | 定位跟踪方法、装置、系统及电子设备 |
| CN114207557B (zh) * | 2019-09-09 | 2025-04-11 | 苹果公司 | 虚拟和物理相机的位置同步 |
| CN111260793B (zh) * | 2020-01-10 | 2020-11-24 | 中国电子科技集团公司第三十八研究所 | 面向增强和混合现实的远程虚实高精度匹配定位的方法 |
| US11288877B2 (en) | 2020-01-10 | 2022-03-29 | 38th Research Institute, China Electronics Technology Group Corp. | Method for matching a virtual scene of a remote scene with a real scene for augmented reality and mixed reality |
| US11475242B2 (en) * | 2020-07-27 | 2022-10-18 | Seiko Epson Corporation | Domain adaptation losses |
| CN116981978A (zh) * | 2020-09-21 | 2023-10-31 | 苹果公司 | 用于动态确定呈现和过渡区域的方法和设备 |
| US11657578B2 (en) | 2021-03-11 | 2023-05-23 | Quintar, Inc. | Registration for augmented reality system for viewing an event |
| US12028507B2 (en) | 2021-03-11 | 2024-07-02 | Quintar, Inc. | Augmented reality system with remote presentation including 3D graphics extending beyond frame |
| US11527047B2 (en) | 2021-03-11 | 2022-12-13 | Quintar, Inc. | Augmented reality system for viewing an event with distributed computing |
| US11645819B2 (en) | 2021-03-11 | 2023-05-09 | Quintar, Inc. | Augmented reality system for viewing an event with mode based on crowd sourced images |
| US12159359B2 (en) | 2021-03-11 | 2024-12-03 | Quintar, Inc. | Use of multiple registrations for augmented reality system for viewing an event |
| US12244782B2 (en) | 2021-03-11 | 2025-03-04 | Quintar, Inc. | Augmented reality system for remote presentation for viewing an event |
| US12003806B2 (en) * | 2021-03-11 | 2024-06-04 | Quintar, Inc. | Augmented reality system for viewing an event with multiple coordinate systems and automatically generated model |
| US20230260240A1 (en) * | 2021-03-11 | 2023-08-17 | Quintar, Inc. | Alignment of 3d graphics extending beyond frame in augmented reality system with remote presentation |
| US12482192B2 (en) * | 2021-11-03 | 2025-11-25 | The Regents Of The University California | Collaborative mixed-reality system for immersive surgical telementoring |
| US12390104B2 (en) | 2022-05-25 | 2025-08-19 | Microsoft Technology Licensing, Llc | Enhanced eye tracking using lens inverse transform |
| US12299827B2 (en) | 2022-10-17 | 2025-05-13 | T-Mobile Usa, Inc. | Generating mixed reality content based on a location of a wireless device |
| JP2024092551A (ja) * | 2022-12-26 | 2024-07-08 | 国立研究開発法人情報通信研究機構 | 仮想物体操作装置およびそのプログラム、ならびに、仮想物体表示システム |
| TWI897136B (zh) * | 2023-12-07 | 2025-09-11 | 宏達國際電子股份有限公司 | 虛擬影像顯示裝置以及立體影像的建立方法 |
Citations (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6711293B1 (en) | 1999-03-08 | 2004-03-23 | The University Of British Columbia | Method and apparatus for identifying scale invariant features in an image and use of same for locating an object in an image |
| US20070110338A1 (en) | 2005-11-17 | 2007-05-17 | Microsoft Corporation | Navigating images using image based geometric alignment and object based controls |
| US7401920B1 (en) | 2003-05-20 | 2008-07-22 | Elbit Systems Ltd. | Head mounted eye tracking and display system |
| US20080285140A1 (en) | 2003-09-10 | 2008-11-20 | Lumus Ltd. | Substrate-guided optical devices |
| US7774158B2 (en) | 2002-12-17 | 2010-08-10 | Evolution Robotics, Inc. | Systems and methods for landmark generation for visual simultaneous localization and mapping |
| US20120068913A1 (en) | 2010-09-21 | 2012-03-22 | Avi Bar-Zeev | Opacity filter for see-through head mounted display |
| US20120162065A1 (en) | 2010-06-29 | 2012-06-28 | Microsoft Corporation | Skeletal joint recognition and tracking system |
| US20120308140A1 (en) | 2011-06-06 | 2012-12-06 | Microsoft Corporation | System for recognizing an open or closed hand |
| US20120306850A1 (en) * | 2011-06-02 | 2012-12-06 | Microsoft Corporation | Distributed asynchronous localization and mapping for augmented reality |
| US20130335405A1 (en) * | 2012-06-18 | 2013-12-19 | Michael J. Scavezze | Virtual object generation within a virtual environment |
| US20140168261A1 (en) * | 2012-12-13 | 2014-06-19 | Jeffrey N. Margolis | Direct interaction system mixed reality environments |
Family Cites Families (22)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3363861B2 (ja) * | 2000-01-13 | 2003-01-08 | キヤノン株式会社 | 複合現実感提示装置及び複合現実感提示方法並びに記憶媒体 |
| CN101273368A (zh) | 2005-08-29 | 2008-09-24 | 埃韦里克斯技术股份有限公司 | 经由移动图像识别的交互 |
| KR100809479B1 (ko) | 2006-07-27 | 2008-03-03 | 한국전자통신연구원 | 혼합 현실 환경을 위한 얼굴 착용형 디스플레이 장치 |
| EP2193825B1 (en) | 2008-12-03 | 2017-03-22 | Alcatel Lucent | Mobile device for augmented reality applications |
| KR20100138700A (ko) | 2009-06-25 | 2010-12-31 | 삼성전자주식회사 | 가상 세계 처리 장치 및 방법 |
| US8884984B2 (en) * | 2010-10-15 | 2014-11-11 | Microsoft Corporation | Fusing virtual content into real content |
| US9348141B2 (en) * | 2010-10-27 | 2016-05-24 | Microsoft Technology Licensing, Llc | Low-latency fusing of virtual and real content |
| US20120113223A1 (en) | 2010-11-05 | 2012-05-10 | Microsoft Corporation | User Interaction in Augmented Reality |
| US8576276B2 (en) * | 2010-11-18 | 2013-11-05 | Microsoft Corporation | Head-mounted display device which provides surround video |
| WO2013028908A1 (en) | 2011-08-24 | 2013-02-28 | Microsoft Corporation | Touch and social cues as inputs into a computer |
| CA2750287C (en) | 2011-08-29 | 2012-07-03 | Microsoft Corporation | Gaze detection in a see-through, near-eye, mixed reality display |
| CN102346660A (zh) * | 2011-10-13 | 2012-02-08 | 苏州梦想人软件科技有限公司 | 一种混合现实与虚拟物体的系统及方法 |
| US8611015B2 (en) | 2011-11-22 | 2013-12-17 | Google Inc. | User interface |
| US9229231B2 (en) | 2011-12-07 | 2016-01-05 | Microsoft Technology Licensing, Llc | Updating printed content with personalized virtual data |
| US20130326364A1 (en) * | 2012-05-31 | 2013-12-05 | Stephen G. Latta | Position relative hologram interactions |
| US9417692B2 (en) | 2012-06-29 | 2016-08-16 | Microsoft Technology Licensing, Llc | Deep augmented reality tags for mixed reality |
| KR101360061B1 (ko) * | 2012-12-05 | 2014-02-12 | 현대자동차 주식회사 | 증강 현실 제공 방법 및 그 장치 |
| CN105359063B (zh) * | 2013-06-09 | 2018-08-17 | 索尼电脑娱乐公司 | 利用追踪的头戴式显示器 |
| US9329682B2 (en) | 2013-06-18 | 2016-05-03 | Microsoft Technology Licensing, Llc | Multi-step virtual object selection |
| US10175483B2 (en) | 2013-06-18 | 2019-01-08 | Microsoft Technology Licensing, Llc | Hybrid world/body locked HUD on an HMD |
| US10955665B2 (en) | 2013-06-18 | 2021-03-23 | Microsoft Technology Licensing, Llc | Concurrent optimal viewing of virtual objects |
| US9824498B2 (en) * | 2014-12-30 | 2017-11-21 | Sony Interactive Entertainment Inc. | Scanning display system in head-mounted display for virtual reality |
-
2015
- 2015-06-02 US US14/728,650 patent/US9846968B2/en active Active
-
2016
- 2016-01-13 EP EP16702463.7A patent/EP3248176A1/en active Pending
- 2016-01-13 CN CN201680006581.7A patent/CN107408314B/zh active Active
- 2016-01-13 WO PCT/US2016/013127 patent/WO2016118371A1/en not_active Ceased
- 2016-01-13 JP JP2017538330A patent/JP6860488B2/ja active Active
Patent Citations (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6711293B1 (en) | 1999-03-08 | 2004-03-23 | The University Of British Columbia | Method and apparatus for identifying scale invariant features in an image and use of same for locating an object in an image |
| US7774158B2 (en) | 2002-12-17 | 2010-08-10 | Evolution Robotics, Inc. | Systems and methods for landmark generation for visual simultaneous localization and mapping |
| US7401920B1 (en) | 2003-05-20 | 2008-07-22 | Elbit Systems Ltd. | Head mounted eye tracking and display system |
| US20080285140A1 (en) | 2003-09-10 | 2008-11-20 | Lumus Ltd. | Substrate-guided optical devices |
| US20070110338A1 (en) | 2005-11-17 | 2007-05-17 | Microsoft Corporation | Navigating images using image based geometric alignment and object based controls |
| US20120162065A1 (en) | 2010-06-29 | 2012-06-28 | Microsoft Corporation | Skeletal joint recognition and tracking system |
| US20120068913A1 (en) | 2010-09-21 | 2012-03-22 | Avi Bar-Zeev | Opacity filter for see-through head mounted display |
| US20120306850A1 (en) * | 2011-06-02 | 2012-12-06 | Microsoft Corporation | Distributed asynchronous localization and mapping for augmented reality |
| US20120308140A1 (en) | 2011-06-06 | 2012-12-06 | Microsoft Corporation | System for recognizing an open or closed hand |
| US20130335405A1 (en) * | 2012-06-18 | 2013-12-19 | Michael J. Scavezze | Virtual object generation within a virtual environment |
| US20140168261A1 (en) * | 2012-12-13 | 2014-06-19 | Jeffrey N. Margolis | Direct interaction system mixed reality environments |
Non-Patent Citations (4)
| Title |
|---|
| ARYA, S.; MOUNT, D.M.; NETANYAHU, N.S.; SILVERMAN, R.; WU, A.Y.: "An Optimal Algorithm For Approximate Nearest Neighbor Searching Fixed Dimensions", JOURNAL OF THE ACM, vol. 45, no. 6, 1998, pages 891 - 923, XP058146321, DOI: doi:10.1145/293347.293348 |
| DAVID H. EBERLY: "3d Game Engine Design: A Practical Approach To Real-Time Computer Graphics", 2000, MORGAN KAUFMAN PUBLISHERS |
| J. MATAS; O. CHUM; M. URBA; T. PAJ DLA: "Robust Wide Baseline Stereo From Maximally Stable Extremal Regions", PROC. OF BRITISH MACHINE VISION CONFERENCE, 2002, pages 384 - 396 |
| MIKOLAJCZYK, K.; SCHMID, C.: "A Performance Evaluation Of Local Descriptors", IEEE TRANSACTIONS ON PATTERN ANALYSIS & MACHINE INTELLIGENCE, vol. 27, no. 10, 2005, pages 1615 - 1630, XP002384824, DOI: doi:10.1109/TPAMI.2005.188 |
Cited By (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2022088420A (ja) * | 2016-12-13 | 2022-06-14 | マジック リープ, インコーポレイテッド | 検出された特徴を用いた3dオブジェクトレンダリング |
| JP7482163B2 (ja) | 2016-12-13 | 2024-05-13 | マジック リープ, インコーポレイテッド | 拡張現実ディスプレイシステム |
| JP2023159118A (ja) * | 2016-12-13 | 2023-10-31 | マジック リープ, インコーポレイテッド | 検出された特徴を用いた3dオブジェクトレンダリング |
| JPWO2018142494A1 (ja) * | 2017-01-31 | 2019-11-21 | 株式会社ニコン | 表示制御システム、及び、表示制御方法 |
| JP2022040219A (ja) * | 2017-03-17 | 2022-03-10 | マジック リープ, インコーポレイテッド | 拡張現実データを記録するための手法 |
| JP7007396B2 (ja) | 2017-03-17 | 2022-01-24 | マジック リープ, インコーポレイテッド | 拡張現実データを記録するための手法 |
| JP7068562B2 (ja) | 2017-03-17 | 2022-05-16 | マジック リープ, インコーポレイテッド | 拡張現実データを記録するための手法 |
| US11380068B2 (en) | 2017-03-17 | 2022-07-05 | Magic Leap, Inc. | Technique for recording augmented reality data |
| JP2022103218A (ja) * | 2017-03-17 | 2022-07-07 | マジック リープ, インコーポレイテッド | 拡張現実データを記録するための手法 |
| JP7133115B2 (ja) | 2017-03-17 | 2022-09-07 | マジック リープ, インコーポレイテッド | 拡張現実データを記録するための手法 |
| JP2020511718A (ja) * | 2017-03-17 | 2020-04-16 | マジック リープ, インコーポレイテッドMagic Leap,Inc. | 拡張現実データを記録するための手法 |
| WO2019015261A1 (en) * | 2017-07-17 | 2019-01-24 | Chengdu Topplusvision Technology Co., Ltd. | DEVICES AND METHODS FOR SCENE DETERMINATION |
| JP2019152899A (ja) * | 2018-02-28 | 2019-09-12 | 株式会社バンダイナムコスタジオ | シミュレーションシステム及びプログラム |
| US12333066B2 (en) | 2020-05-29 | 2025-06-17 | Magic Leap, Inc. | Determining angular acceleration |
| CN112669671A (zh) * | 2020-12-28 | 2021-04-16 | 北京航空航天大学江西研究院 | 一种基于实物交互的混合现实飞行仿真系统 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN107408314A (zh) | 2017-11-28 |
| US20160210783A1 (en) | 2016-07-21 |
| EP3248176A1 (en) | 2017-11-29 |
| US9846968B2 (en) | 2017-12-19 |
| JP6860488B2 (ja) | 2021-04-14 |
| JP2018511098A (ja) | 2018-04-19 |
| CN107408314B (zh) | 2022-01-25 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9846968B2 (en) | Holographic bird's eye view camera | |
| US10242504B2 (en) | Head-mounted display device and computer program | |
| US10269139B2 (en) | Computer program, head-mounted display device, and calibration method | |
| US9710973B2 (en) | Low-latency fusing of virtual and real content | |
| EP3000020B1 (en) | Hologram anchoring and dynamic positioning | |
| US20140168261A1 (en) | Direct interaction system mixed reality environments | |
| US10620779B2 (en) | Navigating a holographic image | |
| US11915453B2 (en) | Collaborative augmented reality eyewear with ego motion alignment | |
| US20160210780A1 (en) | Applying real world scale to virtual content | |
| US10469836B2 (en) | Head-mounted display device and computer program | |
| US20140176591A1 (en) | Low-latency fusing of color image data | |
| US20130326364A1 (en) | Position relative hologram interactions | |
| US20170161956A1 (en) | Head-mounted display device and computer program | |
| EP3011382A1 (en) | Shared and private holographic objects |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 16702463 Country of ref document: EP Kind code of ref document: A1 |
|
| REEP | Request for entry into the european phase |
Ref document number: 2016702463 Country of ref document: EP |
|
| ENP | Entry into the national phase |
Ref document number: 2017538330 Country of ref document: JP Kind code of ref document: A |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |