US20220139051A1 - Creating a viewport in a hybrid-reality system - Google Patents
Creating a viewport in a hybrid-reality system Download PDFInfo
- Publication number
- US20220139051A1 US20220139051A1 US17/574,770 US202217574770A US2022139051A1 US 20220139051 A1 US20220139051 A1 US 20220139051A1 US 202217574770 A US202217574770 A US 202217574770A US 2022139051 A1 US2022139051 A1 US 2022139051A1
- Authority
- US
- United States
- Prior art keywords
- real
- occluded
- dhr
- viewport
- view
- 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.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual 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
- G02B27/01—Head-up displays
- G02B27/017—Head mounted
-
- 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
- G02B27/0172—Head mounted characterised by optical features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/017—Gesture based interaction, e.g. based on a set of recognized hand gestures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
-
- 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/0101—Head-up displays characterised by optical features
- G02B2027/014—Head-up displays characterised by optical features comprising information/image processing systems
-
- 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/0179—Display position adjusting means not related to the information to be displayed
- G02B2027/0187—Display position adjusting means not related to the information to be displayed slaved to motion of at least a part of the body of the user, e.g. head, eye
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/048—Indexing scheme relating to G06F3/048
- G06F2203/04805—Virtual magnifying lens, i.e. window or frame movable on top of displayed information to enlarge it for better reading or selection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/30—Clipping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/24—Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2016—Rotation, translation, scaling
Definitions
- the present subject matter relates to displaying information, and more specifically, to presenting objects and information on a computer display that are hidden or obscured in a real-world scene.
- HMD head-mounted display
- VR virtual reality
- AR augmented reality
- Textual information can be presented to the emergency responder through the display and the information can be updated in real-time through the digital wireless interface from a command center or other information sources.
- FIG. 1 shows a scene presented to a user wearing an embodiment of a head-mounted display showing personnel and objects beyond an opaque wall;
- FIG. 2A /B show an avatar presented to a user wearing an embodiment of a head-mounted display with different the positional errors
- FIG. 3 shows a scene presented to a user wearing an embodiment of a head-mounted display showing internal details of a machine
- FIG. 4A shows a scene presented to a user wearing an embodiment of a head-mounted display showing internal details of a machine in a separate popup X-ray window.
- FIG. 4B shows the scene of FIG. 4A with an embodiment of hierarchical display of internal details of a machine in separate X-ray windows.
- FIG. 5 shows a scene presented to a user wearing an embodiment of a head-mounted display where details obscured in the view are enhanced
- FIG. 6 shows a block diagram of an embodiment of an HR system
- FIG. 7A /B show a single X-ray window rendered on a real-world machine on an embodiment of an HR system as a user perspective changes.
- FIG. 8A /B show a single X-ray window rendered on an embodiment of a head-mounted display in different apparent positions between a user and a real-world object with different magnifications.
- FIG. 8C /D show an alternative X-ray window rendered on an embodiment of a head-mounted display in associated with different positions on a real-world object.
- FIG. 9A /B show different views of a snapshot of the internals of a machine presented on an embodiment of a head-mounted display rendered as if in free space.
- FIG. 10 shows a scene presented to a user wearing an embodiment of a head-mounted display showing internal details of a machine and a hand inserted into an access panel.
- FIG. 11 shows a flowchart of an embodiment of a method for creating a magnifying glass
- FIG. 12 shows a flowchart of an embodiment of a method for creating a 3D snapshot
- FIG. 13 shows a flowchart of a first embodiment of a method for providing information obscured to a user through a display of a hybrid-reality system (DHR);
- DHR hybrid-reality system
- FIG. 14 shows a flowchart of a second embodiment of a method to provide information obscured to a user through a DHR
- FIG. 15 shows a flowchart of a third embodiment of a method to provide information obscured to a user through a DHR
- FIG. 16 shows a flowchart of a fourth embodiment of a method provide information obscured to a user through a display of a hybrid-reality system (DHR).
- DHR hybrid-reality system
- FIG. 17 shows a flowchart of a fifth embodiment of a method provide information obscured to a user through a display of a hybrid-reality system (DHR).
- DHR hybrid-reality system
- Hybrid-reality refers to an image that merges real-world imagery with imagery created in a computer, which is sometimes called virtual imagery. While an HR image can be a still image, it can also be a moving image, such as imagery created using a video stream. HR can be displayed by a traditional two-dimensional display device, such as a computer monitor, one or more projectors, or a smartphone screen. An HR system can be based on a device such as a microscope, binoculars, or a telescope, with virtual imagery is superimposed over the image captured by the device. In such HR systems, an eyepiece of a device may be considered the display of the system. HR imagery can also be displayed by a head-mounted display (HMD).
- HMD head-mounted display
- a virtual reality (VR) HMD system may receive images of a real-world object, objects, or scene, and composite those images with a virtual object, objects, or scene to create an HR image.
- An augmented reality (AR) HMD system may present a virtual object, objects, or scene on a transparent screen which then naturally mixes the virtual imagery with a view of a scene in the real-world.
- a display which mixes live video with virtual objects is sometimes denoted AR, but for the purposes of this disclosure, an AR HMD includes at least a portion of the display area that is transparent to allow at least some of the user's view of the real-world to be directly viewed through the transparent portion of the AR HMD.
- the display used by an HR system represents a scene which is a visible portion of the whole environment.
- the term “scene” and “field of view” (FOV) are used to indicate what is visible to a user.
- the word “occlude” is used herein to mean that a pixel of a virtual element is mixed with an image of another object to change the way the object is perceived by a viewer.
- this can be done through use of a compositing process to mix the two images, a Z-buffer technique to remove elements of the image that are hidden from view, a painter's algorithm to render closer objects later in the rendering process, or any other technique that can replace a pixel of the image of the real-world object with a different pixel value generated from any blend of real-world object pixel value and an HR system determined pixel value.
- the virtual object occludes the real-world object if the virtual object is rendered, transparently or opaquely, in the line of sight of the user as they view the real-world object.
- the terms “occlude”, “transparency”, “rendering” and “overlay” are used to denote the mixing or blending of new pixel values with existing object pixel values in an HR display.
- a sensor may be mounted on or near the display, on the viewer's body, or be remote from the user.
- Remote sensors may include, but are not limited to, fixed sensors attached in an environment, sensors attached to robotic extensions, sensors attached to autonomous or semi-autonomous drones, or sensors attached to other persons.
- Data from the sensors may be raw or filtered.
- Data from the sensors may be transmitted wirelessly or using a wired connection.
- Sensors used by some embodiments of HR systems include, but are not limited to, a camera that captures images in the visible spectrum, an infrared depth camera, a microphone, a sound locator, a Hall effect sensor, an air-flow meter, a fuel level sensor, an oxygen sensor, an electronic nose, a gas detector, an anemometer, a mass flow sensor, a Geiger counter, a gyroscope, an infrared temperature sensor, a flame detector, a barometer, a pressure sensor, a pyrometer, a time-of-flight camera, radar, or lidar.
- Sensors in some HR system embodiments that may be attached to the user include, but are not limited to, a biosensor, a biochip, a heartbeat sensor, a pedometer, a skin resistance detector, or skin temperature detector.
- the display technology used by an HR system embodiment may include any method of projecting an image to an eye.
- Conventional technologies include, but are not limited to, cathode ray tube (CRT), liquid crystal display (LCD), light emitting diode (LED), plasma, or organic LED (OLED) screens, or projectors based on those technologies or digital micromirror devices (DMD).
- CTR cathode ray tube
- LCD liquid crystal display
- LED light emitting diode
- OLED organic LED
- virtual retina displays such as direct drawing on the eye's retina using a holographic grating, may be used.
- direct machine to brain interfaces may be used in the future.
- the display of an HR system may also be an HMD or a separate device, such as, but not limited to, a hand-held mobile phone, a tablet, a fixed monitor or a TV screen.
- connection technology used by an HR system may include any physical link and associated protocols, such as, but not limited to, wires, transmission lines, solder bumps, near-field connections, infra-red connections, or radio frequency (RF) connections such as cellular, satellite or Wi-Fi® (a registered trademark of the Wi-Fi Alliance).
- RF radio frequency
- Virtual connections, such as software links, may also be used to connect to external networks and/or external compute.
- aural stimuli and information may be provided by a sound system.
- the sound technology may include monaural, binaural, or multi-channel systems.
- a binaural system may include a headset or another two-speaker system but may also include systems with more than two speakers directed to the ears.
- the sounds may be presented as 3D audio, where each sound has a perceived position in space, achieved by using reverberation and head-related transfer functions to mimic how sounds change as they move in a particular space.
- objects in the display may move.
- the movement may be due to the user moving within the environment, for example walking, crouching, turning, or tilting the head.
- the movement may be due to an object moving, for example a dog running away, a car coming towards the user, or a person entering the FOV.
- the movement may also be due to an artificial movement, for example the user moving an object on a display or changing the size of the FOV.
- the motion may be due to the user deliberately distorting all or part of the FOV, for example adding a virtual fish-eye lens.
- all motion is considered relative; any motion may be resolved to a motion from a single frame of reference, for example the user's viewpoint.
- the perspective of any generated object overlay may be corrected so that it changes with the shape and position of the associated real-world object. This may be done with any conventional point-of-view transformation based on the angle of the object from the viewer; note that the transformation is not limited to simple linear or rotational functions, with some embodiments using non-Abelian transformations. It is contemplated that motion effects, for example blur or deliberate edge distortion, may also be added to a generated object overlay.
- images from cameras may be processed before algorithms are executed.
- Algorithms used after image processing for embodiments disclosed herein may include, but are not limited to, object recognition, motion detection, camera motion and zoom detection, light detection, facial recognition, text recognition, or mapping an unknown environment.
- the image processing may also use conventional filtering techniques, such as, but not limited to, static, adaptive, linear, non-linear, and Kalman filters. Deep-learning neural networks may be trained in some embodiments to mimic functions which are hard to create algorithmically. Image processing may also be used to prepare the image, for example by reducing noise, restoring the image, edge enhancement, or smoothing.
- objects may be detected in the FOV of one or more cameras.
- Objects may be detected by using conventional algorithms, such as, but not limited to, edge detection, feature detection (for example surface patches, corners and edges), greyscale matching, gradient matching, pose consistency, or database look-up using geometric hashing.
- edge detection for example surface patches, corners and edges
- feature detection for example surface patches, corners and edges
- greyscale matching for example surface patches, corners and edges
- gradient matching for example surface patches, corners and edges
- pose consistency for example geometric hashing.
- database look-up using geometric hashing such as, but not limited to, edge detection, feature detection (for example surface patches, corners and edges), greyscale matching, gradient matching, pose consistency, or database look-up using geometric hashing.
- Genetic algorithms and trained neural networks using unsupervised learning techniques may also be used in embodiments to detect types of objects, for example people, dogs, or trees.
- object may be performed on a single frame of a video stream, although techniques using multiple frames are also envisioned.
- Advanced techniques such as, but not limited to, Optical Flow, camera motion, and object motion detection may be used between frames to enhance object recognition in each frame.
- rendering the object may be done by the HR system embodiment using databases of similar objects, the geometry of the detected object, or how the object is lit, for example specular reflections or bumps.
- the locations of objects may be generated from maps and object recognition from sensor data.
- Mapping data may be generated on the fly using conventional techniques, for example the Simultaneous Location and Mapping (SLAM) algorithm used to estimate locations using Bayesian methods, or extended Kalman filtering which linearizes a non-linear Kalman filter to optimally estimate the mean or covariance of a state (map), or particle filters which use Monte Carlo methods to estimate hidden states (map).
- SLAM Simultaneous Location and Mapping
- the locations of objects may also be determined a priori, using techniques such as, but not limited to, reading blueprints, reading maps, receiving GPS locations, receiving relative positions to a known point (such as a cell tower, access point, or other person) determined using depth sensors, WiFi time-of-flight, or triangulation to at least three other points.
- a known point such as a cell tower, access point, or other person
- Gyroscope sensors on or near the HMD may be used in some embodiments to determine head position and to generate relative motion vectors which can be used to estimate location.
- sound data from one or microphones may be processed to detect specific sounds. Sounds that might be identified include, but are not limited to, human voices, glass breaking, human screams, gunshots, explosions, door slams, or a sound pattern a particular machine makes when defective.
- Gaussian Mixture Models and Hidden Markov Models may be used to generate statistical classifiers that are combined and looked up in a database of sound models.
- One advantage of using statistical classifiers is that sounds can be detected more consistently in noisy environments.
- Eye tracking of one or both viewer's eyes may be performed. Eye tracking may be used to measure the point of the viewer's gaze.
- the position of each eye is known, and so there is a reference frame for determining head-to-eye angles, and so the position and rotation of each eye can be used to estimate the gaze point.
- Eye position determination may be done using any suitable technique and/or device, including, but not limited to, devices attached to an eye, tracking the eye position using infra-red reflections, for example Purkinje images, or using the electric potential of the eye detected by electrodes placed near the eye which uses the electrical field generated by an eye independently of whether the eye is closed or not.
- input is used to control the HR system, either from the user of the HR system or from external actors.
- the methods of input used varies by embodiment, and each input type may control any or a subset of an HR system's function.
- gestures are used as control input.
- a gesture may be detected by using other systems coupled to the HR system, such as, but not limited to, a camera, a stereo camera, a depth camera, a wired glove, or a controller.
- the video stream is analyzed to detect the position and movement of an object, for example a hand, a finger, or a body pose.
- the position and motion can be used to generate a 3D or 2D path and, by using stochastic or pattern matching techniques, determine the most likely gesture used.
- the user's head position and movement may be used as a gesture or direct control.
- the head position and movement may be determined by gyroscopes mounted into an HMD.
- a fixed source such as an electromagnetic beam may be affixed to a user or mounted in an HMD; coupled sensors can then track the electromagnetic beam as the user's head is moved.
- the user may have a touch-pad or a plurality of touch sensors affixed to the body, for example built-in to a glove, a suit, or an HMD, coupled to the HR system.
- a touch-pad or a plurality of touch sensors affixed to the body, for example built-in to a glove, a suit, or an HMD, coupled to the HR system.
- touch sensors By touching a specific point, different input data can be generated.
- the time of a touch or the pattern of touches may also generate different input types.
- touchless sensors using a proximity to the sensor can be used.
- a physical input device is coupled to the HR system.
- the physical input device may be a mouse, a pen, a keyboard, or a wand. If a wand controller is used, the HR system tracks the position and location of the wand as well as presses of any buttons on the wand; the wand may be tracked using a camera, for example using object boundary recognition, using marker tracking where a specific shape or marker is detected in each video frame, or by wired/wireless data from the wand received by the HR system.
- a physical input device may be virtual, where a device is rendered on the head-mounted display and the user interacts with the virtual controller using other HR systems, such as, but not limited to, gaze direction, hand tracking, finger tracking, or gesture detection.
- HR systems such as, but not limited to, gaze direction, hand tracking, finger tracking, or gesture detection.
- gaze direction interaction with virtual menus rendered on the display may be used.
- a backwards-facing camera mounted in an HMD may be used to detect blinking or facial muscle movement. By tracking blink patterns or facial muscle motion, input gestures can be determined.
- breathing patterns may be detected using a pressure sensor mounted in a breathing system coupled to the HR system to detect changes in pressure. Breath patterns such as, but not limited to, blowing softly, exhaling hard, or inhaling suddenly may be used as input data for an HR control system.
- sounds may be detected by one or more microphones coupled to the HR system.
- Specific sounds such as, but limited to, vocalizations (e.g. scream, shout, lip buzz, snort, whistle), stamping, or clapping, may detected using stochastic or pattern matching techniques on received audio data.
- more than one microphone may be used to place a sound in a location, allowing the position of a sound, for example a clap, to provide additional input control data.
- voice control using natural language is used; speech recognition techniques such as trained neural networks or hidden Markov model algorithms are used by an HR system to determine what has been said.
- direct neural interfaces may be used in some embodiments to control an HR system.
- Any input to the HR system may be used for any purpose, depending on the embodiment.
- sounds, eye movement and/or direction, gestures, touch inputs, other physical human input devices e.g. a keyboard, mouse, or the like
- other physical human input devices e.g. a keyboard, mouse, or the like
- controlling the HR system including but not limited to controlling the size, direction, color, or other expressions of video images of virtual objects displayed in the display screen, switching on and off state of the HR system, changing the user interface and settings of the display screen, switching running applications, or selection/deselection of target objects to be virtualized.
- HR imagery are becoming increasingly common and are making their way from entertainment and gaming into industrial and commercial applications.
- Examples of systems that may find HR imagery useful include aiding a person doing a task, for example repairing machinery, testing a system, or responding to an emergency.
- HR imagery might be used also provide information to a user.
- This information may be associated with real objects in the environment or may be related to the environment as a whole, for example an ambient or average value.
- the information to be provided to the user is unrelated to the real environment they are working in. Providing the various types of information to the user in a way that can be readily understood by the user and is not confusing, distracting or obscuring details that the user needs can be a challenge.
- an HR system which aids a person doing a task, for example repairing machinery, testing a system, performing routine maintenance, or responding to an emergency
- there may be areas of the environment that cannot be seen because of a visual impairment such as a wall, an opaque cover, lack of light, or smoke.
- the X-ray window is an artificial object created as an overlay on the screen used to show objects and information in the environment that cannot be seen or are obscured.
- the X-ray window does not necessarily have anything to do with electromagnetic radiation in the X-ray spectrum, but simply refers to a virtual object displayed for the user which shows a representation of one or more objects that would otherwise be hidden from the view of the user.
- the X-ray window may cover the whole field-of-view, enhance only a portion of the field-of-view, or may be added to an object that is being displayed in a separate window on the display.
- the X-ray window shows details of, and information related to, occluded or obscured objects.
- the details may be rendered schematically or photo-realistically, but the displayed representation adds details that would otherwise be obscured, for example internal components of a covered machine or a floor collapse just beyond the field-of-view or the position of personnel behind an opaque barrier.
- a visible object may be identified by user input, object recognition by a camera or other sensor, self-identification through an electronic message such as an RFID tag response or a computer network message, or any other way of identifying the object.
- the identity may include a model designation, a serial number, an address, or any other information that can be used to clearly identify objects hidden by the object, such as internal structure or nearby objects.
- the visible object may not be identified in all cases, but simply may be treated as an unidentified object occluding the view of hidden structure and details known to the HR system.
- the information used to render hidden structure and detail as part of the X-ray window may be obtained from schematics or blueprints, for example the internal schematics of an engine or the position of air ducts, wiring, or plumbing in a building. Additionally, in some example embodiments, the information used to render the hidden structure and detail as part of the X-ray window may be obtained by using object recognition and data from one or more sensors in the current environment, such as, but not limited to, building security cameras, sensors or cameras attached to other personnel, sensors or cameras attached to autonomous or semi-autonomous drones, or robotic extensions which may place sensors or cameras into spaces obscured by a barrier.
- Data from sensors may be received in real-time or near real-time (which are considered to be equivalent for the purposes of this disclosure, including the claims), or may be received in a delayed fashion.
- the data from the sensors may be received in packets that may be buffered during transmission, so the delay in the data from the sensors may be non-uniform.
- the information used to render the hidden structure and detail as part of the X-ray window may be obtained from historical data, for example maps from a previous scouting mission or from video streams available before smoke obscured the view. Note that the hidden structure and detail may be computed or rendered locally or directly transmitted to a head-mounted display after being generated or rendered using remote computing resources.
- the hidden or obscured details may be presented as a window into a real-world object.
- the X-ray window may be considered fixed to the object in that the details are rendered at the correct perspective if there is movement.
- the X-ray window may be fixed to the HMD user's perspective, so the X-ray window moves across the object if there is motion, in effect allowing internal details to be scanned.
- the shape and size of the X-ray window, or viewport may be rendered in any manner, such as, but not limited to, the whole object, a rectilinear shape, an object cut-away, or an organic shape.
- the apparent position in 3D space of the X-ray window may be touching the object, on the object or away from the object, for example the window may be presented as a view-port on the surface of the object or presented as a window in a plane near the object.
- the X-ray window may be rendered as a window that can be moved in a path that changes the distance to the object; as the window is moved, a magnification factor is applied to the internal details in the window.
- relative motion may be used to update the rendering of an X-ray view.
- relative motion may update the perspective of the rendered detail so appearing fixed in real-world space.
- relative rotation and/or linear movement may be used as input commands to manipulate the X-ray view, for example rotating, looking behind or enlarging specific details.
- a “snap-shot” of the X-ray rendering may be taken to allow the user to “pull” the snapshot into a real-world space and so move around the snapshot to observe extra details hidden by the limited perspective of being inside or behind a physical barrier. Note that the snap-shot may also be rotated or magnified using other input commands to the HR system. After viewing the snapshot, it may be removed on user command—the previous X-ray view may return or finish at that time.
- the X-ray view may render detail that represents hidden real-world data; note that the rendering may be photo-realistic, a non-realistic representation such as a schematic rendering such a wire-model or an avatar, a two-dimensional representation of the occluded object generated from a fixed perspective, or any other type of representation of the hidden real-world data or object.
- the real-world detail rendered by the X-ray view may also be enhanced by the addition of virtual objects, such as, but not limited to, alerts, timers, pop-up data, associated haptic stimuli, associated sounds such as pre-recorded audio clips, or directions for the user.
- the virtual objects may be controlled in any manner using input control as described herein.
- the X-ray view may also support further X-ray views within hidden components.
- a machine with an opaque cover may have an internal cylinder showing points of electrical connections.
- the X-ray view may also allow the cylinder to support an X-ray view, where the location of internal sub-components can be shown. It is anticipated that a hierarchy of X-ray views may be constructed, with the user covering and uncovering levels of hierarchy using input commands.
- the X-ray view may be generated using a live camera feed, for example from cameras in the environment, cameras on a drone, or cameras on a robotic arm. Since the perspective correction of a live video stream may be too computationally complex in near real-time, only simple perspective changes may be possible.
- real-world objects that were previously visible may become hidden, for example inserting a hand, a tool, or a robotic extension into a hidden space through an access panel.
- the HR system may track the position of the inserted object and show it in correct perspective in an X-ray view.
- the position of a gloved hand may be tracked by an HR system and the hand shown in an X-ray view so that hidden objects can more easily be manipulated.
- the tracking of the hidden object can be done using any suitable mechanism, including, but not limited to, location sensors on the object, geometric analysis of the position of a structure supporting the object, or external sensors that may be able to track the object.
- hidden objects in an X-ray view may move.
- the new position may be calculated by the HR system and the rendering updated. For example, personnel behind a wall may move position as determined by attached GPS locators.
- a ball bearing may be pushed into a race or a screw turned and the new position computed using simple Newtonian mechanics.
- the new position of objects may be computed by using view changes of a camera attached to a drone or a robotic arm—changes in camera view may be deliberate, for example using a motor to jitter the camera position.
- the X-ray view may be manipulated by an external actor, such as, but not limited to, commanding personnel, an expert guide, or an AI system.
- the details shown in an X-ray view may be changed as the user performs a task, such as, but not limited to, highlighting the next object to be manipulated, adding instructions to an object, or only rendering photo-realistic details in the area to be addressed at that time.
- FIG. 1 shows how one embodiment of the HR system displays an X-ray window 110 added to a real-world field-of-view 102 in a head-mounted display 105 including an opaque wall 150 .
- the visible objects in the real world such as the opaque wall 150 , may be rendered from a model, shown as a video from a camera, or passed through a transparent portion of the head-mounted display 105 , depending on the embodiment.
- Shown in the computer-generated X-ray window 110 are personnel 120 , 122 , 124 rendered at the correct location and perspective to user 100 wearing the head-mounted display 105 .
- the X-ray window 110 may have any shape, including a rectangular shape, a shape of a regular polygon, a circle, an ellipse, an asymmetric shape, a continuous curve shape, an irregular polygonal shape, or any other shape, depending on the embodiment.
- the X-ray window 110 may correspond to the shape of the real-world object 150 .
- the X-ray window 110 may be positioned to act as a cut-away view of an occluded space behind the real-world object 150 or may be a separate window, depending on the embodiment.
- Cameras in the space behind wall 150 and/or personnel locators are used to determine the size and position of personnel 120 , 122 , 124 in the hidden space. Note that the perspective of the occluded personnel 120 , 122 , 124 is computed as if wall 150 was not present.
- the occluded personnel 120 , 122 , 124 may be rendered in any manner, such as, but not limited to, avatars, photos of a face attached to an avatar, or photo-realistically using 3-D models of the personnel, or by using images extracted from a camera feed.
- X-ray window 110 may be initiated by a trigger event caused by user 100 , occluded personnel 120 , 122 , 124 , or a third party.
- a trigger event caused by user 100 , occluded personnel 120 , 122 , 124 , or a third party.
- one of occluded personnel 120 , 122 and 124 may want to show the user 100 the progress of their task, and may use their work terminal to send a notice to the user 100 and initiate the X-ray window 110 .
- a predetermined threshold distance such as 10 meters
- the HR system may initiate additional functions and/or run other applications upon initiation of the X-ray window 110 .
- FIG. 2A shows an example embodiment of a HR system rendering an avatar 210 A in an X-ray view 200 A.
- the position, size and orientation of avatar 210 A may be determined using cameras in the hidden space and/or locators attached to the person represented by avatar 210 A, for example relative positions determined by infra-red depth sensors or absolute positions from GPS.
- X-ray view 200 A also includes position error bars 220 A shown as concentric circles the avatar 210 A stands on. The position of the outermost error bars 220 A shows the worst-case placement of the avatar.
- FIG. 2B shows an example embodiment of a HR system rendering an avatar 210 B in an X-ray view 200 B at a different time than X-ray view 200 A. Similar to the vignette shown in FIG. 2A , the position, size and orientation of avatar 210 B may be determined using cameras in the hidden space and/or locators attached to the person represented by avatar 210 B, for example relative positions determined by infra-red depth sensors or absolute positions from GPS. Updated X-ray view 200 B also includes position error bars 220 B shown as concentric circles the avatar 210 B stands on. The position of the outermost error bars 220 B shows the worst-case placement of the avatar. Note that although avatar 220 B is closer to the user at the time of FIG. 2B than FIG.
- the position uncertainty is greater than for FIG. 2A , as shown by the wider error bars 220 B.
- the position uncertainty may be larger because of smoke or other environmental factors, different accuracy of sensors in different areas, an estimation rather than measurement of the position of avatar 220 B, or any other factor that can affect the accuracy of the determination of the position of avatar 200 B.
- FIG. 2A /B One display metaphor, the concentric circles, is shown in FIG. 2A /B for indicating an uncertainty in the position.
- Other embodiments may use other mechanisms to indicate position uncertainty to the user, including, but not limited to, using fuzzy edges on the avatar, adding a halo around the avatar, having different size platforms for an avatar, or by shaking the avatar edges by an amount in time on subsequent video frames.
- FIG. 3 shows how one embodiment of the HR system shows an X-ray window 310 added to a real-world rendering of a machine 350 enclosed by an opaque cover on each side and shown on a display of the HR system.
- machine 350 includes a physical access panel 320 opened using knob 324 on door 322 .
- several hidden components including cylinder 330 , block 332 , rod 334 , rod 336 , and gears 340 , 342 , 344 .
- the location of components cylinder 330 , block 332 , rod 334 , rod 336 , and gears 340 , 342 , 344 may be obtained from schematics of machine 350 transmitted to the HR system worn by user 300 after the machine 350 is identified.
- Components cylinder 330 , block 332 , rod 334 , rod 336 , and gears 340 , 342 , 344 are within X-ray window 310 from the perspective of user 300 and so are rendered within the window 310 .
- the X-ray window 310 does not include some portions of cylinder 330 , rod 334 , rod 336 , and gear 344 .
- Those portions that are not in window 310 are occluded by the cover of the machine 350 and are shown by dotted line groups 331 , 335 , 337 , 345 in FIG. 3 for clarity but are not be rendered by this embodiment of the HR system.
- X-ray window 310 may be initiated by a trigger event, such as opening the physical access panel 320 .
- the HR system may initiate additional functions and/or run other applications upon initiation of the X-ray window 310 .
- virtual objects may be attached to the rendered occluded objects.
- the system may automatically attach a virtual object, and/or a user may determine which virtual object to attach to a rendered occluded object.
- the virtual objects can be used for any purpose but can include tags to identify an occluded object, such as the GEAR 1 tag 352 attached to gear 340 .
- the tags may provide information about the occluded object such as a name of the object, a part number of an object, procurement information for a replacement for the object, diagnostic procedures for the object, or any other type of information related to the object.
- the virtual objects may be attached to monitor a status of an occluded object, such as indicating that a sound made by the gear 342 should be monitored by placing a virtual stethoscope 354 on gear 342 or that a temperature of cylinder 330 should be monitored by placing a virtual thermometer 356 on cylinder 330 .
- Data may be collected directly from the occluded object, for example from sensors monitoring the occluded object, or from an external source.
- Some or all of the data may be used to generate the information provided by the virtual object on the HMD based on a type of virtual object selected and/or a placement of the virtual object, such as showing a digital read-out of the temperature of the occluded object next to the virtual thermometer 356 at the location of the virtual thermometer 356 , changing a fill amount, a shape or a color of the virtual object, or playing the sound made by gear 342 on an audio output device heard by the user.
- the data may be logged and stored by the HR system and/or provided to other users and/or software applications for analysis.
- X-ray window 310 may be initiated by a trigger event, such as receiving signals transmitted from sensors monitoring the occluded object or an external source.
- the HR system may automatically, without any additional action by a user, initiate X-ray window 310 . Also, when receiving such signals, the HR system may initiate a part of its functions or start to run certain types of applications thereon.
- a certain parameter such as temperature, humidity, noise, gas concentration
- FIG. 4A shows how one embodiment of the HR system shows an X-ray window 420 added to a view 402 presented to a user 400 wearing a head-mounted display (HMD) 405 .
- the view 402 includes a real-world machine 410 and a view of the internal components 440 of the machine 410 presented as a separate popup X-ray window 420 .
- the real-world machine 410 is shown as rendered machine 430 ; note that the rendered machine 430 may or may not track the position of real-world machine 410 if there is relative motion.
- popup window 420 internal components 440 are rendered within machine 430 with respect to the perspective of machine 430 .
- X-ray window 420 may be initiated and/or controlled by a trigger event.
- the HMD 405 may contain a sensor to detect a gesture by user, such as ToF (Time of Flight) sensor which detects motion of user 400 . By detecting the motion of user 400 , such as hand movement, X-ray window 420 may be initiated.
- ToF Time of Flight
- X-ray window 420 may be initiated. Also, in some cases, a user 400 may wear a glove or ring to detect hand movement. By detecting hand movement of the user 400 , X-ray window 420 may be controlled in some embodiments.
- FIG. 4B shows the scene of FIG. 4A with an embodiment of a hierarchical display of internal details of a machine in separate X-ray windows.
- the internal components 440 of the machine 410 are shown in X-ray window 420 inside of rendered machine 430 .
- the internal components 440 include the block 442 and the pipe 444 .
- the user has created a virtual window 477 on the view of block 442 which created a second pop-up X-ray window 470 showing the internal components 444 , 478 of block 442 which would be visible through virtual window 477 .
- Any number of levels of hierarchy may be created in embodiments to allow occluded components to be shown no matter how many layers of structure may interfere with their visibility.
- FIG. 5 shows how one embodiment of the HR system shows an X-ray window 520 added to a real-world rendered field-of-view 510 shown a display of the HR system.
- field of view 510 there is a wall 530 , hazard 540 and particulate matter 550 obscuring objects in the field-of-view 510 , for example smoke or water droplets.
- the positions of the wall 530 obscured by particulate matter 550 are shown by dotted lines 535 .
- the positions of the hazard 540 obscured by particulate matter 550 are shown by shaded area 545 .
- the portions of the wall 530 and hazard 540 may be only partially visible or may not be visible in the field of view 510 .
- wall portions 530 and hazard portions 540 are shown clearly rendered by the HR system to user 500 , with all other details in the field of view 510 obscured by particulate matter 550 .
- the position and size of wall 530 and hazard 540 may be estimated from maps obtained from data provided before the particulate matter 550 was present. In other example embodiments, the position of wall 530 may be obtained from building blueprints or from personnel present at an earlier time.
- the position of hazard 540 may be obtained from other sensors, for example IR cameras, or from other personnel, for example people behind the wall 530 or on the floor below who have an unobscured view.
- X-ray window 520 may be initiated and/or controlled by a trigger event. For example, in some cases, when hazardous situation 540 is detected in the obscured area, the X-ray window 520 may be automatically initiated.
- the hazardous situation such as fire, high temperature, air pollution, gas leak, or dangerous liquid leak, may be detected by a sensor located in occluded area.
- FIG. 6 is a block diagram of an embodiment of an HR system 600 which may have some components implemented as part of a head-mounted assembly (HMD).
- the HR system 600 may be considered a computer system that can be adapted to be worn on the head, carried by hand, or otherwise attached to a user.
- a structure 605 is included which is adapted to be worn on the head of a user.
- the structure 605 may include straps, a helmet, a hat, or any other type of mechanism to hold the HR system on the head of the user as a HMD.
- the HR system 600 also includes a display 650 positioned in a field-of-view (FOV) of the user.
- the structure 605 may position the display 650 in the field of view of the user.
- the display 650 may be a stereoscopic display with two separate views of the FOV, such as view 652 for the user's left eye, and view 654 for the user's right eye.
- the two views 652 , 654 may be shown as two images on a single display device or may be shown using separate display devices that are included in the display 650 .
- the display 650 may be transparent, such as in an augmented reality (AR) HMD.
- AR augmented reality
- the view of the FOV of the real-world as seen through the display 650 by the user is composited with virtual objects that are shown on the display 650 .
- the virtual objects may occlude real objects in the FOV as overlay elements and may themselves be transparent or opaque, depending on the technology used for the display 650 and the rendering of the virtual object.
- a virtual object, such as an overlay element may be positioned in a virtual space, which could be two-dimensional or three-dimensional, depending on the embodiment, to be in the same position as an associated real object in real space.
- the display 650 is a stereoscopic display
- two different views of the overlay element may be rendered and shown in two different relative positions on the two views 652 , 654 , depending on the disparity as defined by the inter-ocular distance of a viewer.
- the HR system 600 includes one or more sensors in a sensing block 640 to sense at least a portion of the FOV of the user by gathering the appropriate information for that sensor, for example visible light from a visible light camera, from the FOV of the user. Any number of any type of sensor, including sensors described previously herein, may be included in the sensor block 640 , depending on the embodiment.
- sensor(s) in the sensing block 640 may be configured to detect a motion of the user. The motion of a hand, finger, head, eye, arm, leg, body, and/or any other body part of the user or object held or moved by the user may be detected by the sensor(s) in the sensing block 640 .
- the processor 610 may then use the geometry, appearance, gesture and/or location of the movement to instantiate and/or control an X-ray window presented on the display 650 .
- the HR system 600 may also include an I/O block 620 to allow communication with external devices.
- the I/O block 620 may include one or both of a wireless network adapter 622 coupled to an antenna 624 and a network adapter 626 coupled to a wired connection 628 .
- the wired connection 628 may be plugged into a portable device, for example a mobile phone, or may be a component of an umbilical system such as used in extreme environments.
- the HR system 600 includes a sound processor 660 which takes input from one or microphones 662 .
- the microphones 662 may be attached to the user.
- External microphones for example attached to an autonomous drone, may send sound data samples through wireless or wired connections to I/O block 620 instead of, or in addition to, the sound data received from the microphones 662 .
- the sound processor 660 may generate sound data which is transferred to one or more speakers 664 , which are a type of sound reproduction device.
- the generated sound data may be analog samples or digital values. If more than one speaker 664 is used, the sound processor may generate or simulate 2D or 3D sound placement.
- a first speaker may be positioned to provide sound to the left ear of the user and a second speaker may be positioned to provide sound to the right ear of the user. Together, the first speaker and the second speaker may provide binaural sound to the user.
- the HR system 600 includes a stimulus block 670 .
- the stimulus block 670 is used to provide other stimuli to expand the HR system user experience.
- Embodiments may include numerous haptic pads attached to the user that provide a touch stimulus.
- Embodiments may also include other stimuli, such as, but not limited to, changing the temperature of a glove, changing the moisture level or breathability of a suit, or adding smells to a breathing system.
- the HR system 600 may include a processor 610 and one or more memory devices 630 , which may also be referred to as a tangible medium or a computer readable medium.
- the processor 610 is coupled to the display 650 , the sensing block 640 , the memory 630 , I/O block 620 , sound block 660 , and stimulus block 670 , and is configured to execute the instructions 632 encoded on (i.e. stored in) the memory 630 .
- the HR system 600 may include an article of manufacture comprising a tangible medium 630 , that is not a transitory propagating signal, encoding computer-readable instructions 632 that, when applied to a computer system 600 , instruct the computer system 600 to perform one or more methods described herein, thereby configuring the processor 610 .
- the processor 610 included in the HR system 600 may be able to perform methods described herein autonomously, in some embodiments, processing facilities outside of that provided by the processor 610 included inside of the HR system 600 may be used to perform one or more elements of methods described herein.
- the processor 610 may receive information from one or more of the sensors 640 and send that information through the wireless network adapter 622 to an external processor, such as a cloud processing system or an external server.
- the external processor may then process the sensor information to identify an object in the FOV and send information about the object, such as its shape and location in the FOV and/or information about the internal structure of the object, to the processor 610 through the wireless network adapter 622 .
- the processor 610 may then use the geometry, appearance and location of the object in the FOV as well as the internal structure of the object, to render an X-ray view of the object as an overlay element and show the overlay element on the display 650 .
- the instructions 632 may instruct the HR system 600 to detect one or more objects in a field-of-view (FOV) using at least one sensor 640 coupled to the computer system 600 .
- the instructions 632 may further instruct the HR system 600 to determine the world position of the one or more objects using at least one sensor 640 .
- the instructions 632 may instruct the HR system 600 to use object detection to determine if one of the objects is a hand and so determine the path of the hand over time using time-based samples from the at least one sensor 640 .
- the instructions 632 may further instruct the HR system 600 to match the path of the hand to known path shapes using stochastic methods to determine a gesture. If a gesture is recognized, the instructions 632 may instruct HR system 600 to generate an input event of a specific type.
- the instructions 632 may instruct the HR system 600 to detect one or more objects in a field-of-view (FOV) using at least one sensor 640 coupled to the computer system 600 .
- the instructions 632 may further instruct the HR system 600 to determine the world position of the one or more objects using at least one sensor 640 .
- the instructions 632 may instruct the HR system 600 to create an X-ray window on one or more of the objects and establish a view position for the X-ray window on an object.
- the instructions 632 may further instruct the HR system 600 to receive data associated with one or more at least partially occluded objects at the view position.
- the instructions 632 may further instruct the HR system 600 to render the one or more partially occluded objects in the created X-ray window.
- FIG. 7A shows a single X-ray window 710 A rendered on a real-world machine presented on an embodiment of an HR system in view 701 A.
- the real-world machine 700 is completely enclosed by opaque covers 702 , 704 , 706 .
- a rectilinear X-ray window 710 A is rendered to reveal internal components 720 , such as gears 722 , 724 , 726 , cylinder 728 , blocks 730 , 732 , and rods 734 , 736 , 738 .
- internal components 720 are presented in the correct position and perspective; for example, block 730 is partially occluded by gear 724 and only part of gear 726 can be seen in window 710 A.
- the X-ray window 710 A may be initiated and/or controlled by a trigger event, such as a hand gesture by the user using their right hand 752 and left hand 754 .
- the hands 752 , 754 may be visible in the view 701 A.
- the user may use their hands 753 , 754 to create a rectangular shape.
- the HR system may initiate the X-ray window 710 A.
- the location of X-ray window 710 A may be determined based on the relative location of the hands 752 , 754 and the machine 700 in the view 701 A.
- the location of the X-ray window 710 B may be controlled by the relative location of hands 752 , 753 to a sensor of the HR system.
- FIG. 7B shows the machine 700 of FIG. 7A presented on an embodiment of a head-mounted display with a rendered X-ray window 710 B from a different user perspective in view 701 B. Similar to the vignette in FIG. 7A , the added X-ray window 710 B is maintained as user perspective is changed. Note that in the example embodiment, the X-ray window 710 B remains perpendicular to the user's eye-line which may be determined by the position of an HMD worn by the user.
- the X-ray window 710 A may remain in a fixed position with respect to the real-world machine 700 (e.g. appearing as anchored to a location on the real-world machine 700 ), acting as a view-port into the machine 700 , with the determination of which internal components 720 are visible dependent upon the relative positions of the user and the X-ray window 710 A.
- the change in position of X-ray window 710 B from the position of FIG. 7A renders the internal components 720 of machine 700 from the new user perspective and location.
- the change in position of X-ray window 710 B may be made using specific commands to the HR system, thus not requiring the user of the HR system to move, although the user perspective may change due to movement by the user, various gestures, or other command to the HR system.
- FIG. 8A shows a single X-ray window 820 A rendered on an embodiment of a head-mounted display (HMD) in an apparent position between a user and a real-world object.
- HMD head-mounted display
- FIG. 8A shows a single X-ray window 820 A rendered on an embodiment of a head-mounted display (HMD) in an apparent position between a user and a real-world object.
- HMD head-mounted display
- FIG. 8A shows a single X-ray window 820 A rendered on an embodiment of a head-mounted display (HMD) in an apparent position between a user and a real-world object.
- HMD head-mounted display
- X-ray window 820 A the HR system that includes the HMD renders a representation 812 A of machine 810 at a specific magnification determined by the HR system. Additionally, X-ray window 820 A renders a sub X-ray window 830 A, which reveals internal components 840 A. Note that internal components 840 A are rendered at the correct perspective and location with respect to representation 812 A and at the same magnification.
- FIG. 8B shows a single X-ray window 820 B rendered on an embodiment of a head-mounted display in an apparent position between a user 800 and a real-world object 810 with magnification. Similar to the vignette in FIG. 8A , X-ray window 820 B is rendered as an opaque window between user 800 and real-world machine 810 in a view 802 B shown on the HMD. At the time of FIG. 8B , the X-ray window 820 B is in an apparent position closer to machine 810 compared to the time of FIG. 8A .
- the position of the X-ray window 820 B may be manipulated by the user 800 using hand gestures, eye gestures, voice commands, human input devices coupled to the HR system such as a keyboard, traditional mouse, or 3D input device, or any other type of input to the HR system.
- X-ray window 820 B partially occludes machine 810 at the new position.
- the HR system computes a new magnification factor based on the new position of X-ray window 820 B.
- the HR system renders a representation 812 B of machine 810 at the new magnification determined by the HR system.
- X-ray window 820 B renders a sub X-ray window 830 B, which reveals internal components 840 B. Note that internal components 840 B are rendered at the correct perspective and location with respect to representation 812 B and at the same magnification.
- FIG. 8C shows an X-ray window 820 C rendered in view 802 C on an embodiment of a head-mounted display of an HR system.
- the X-ray window 820 C shows internal structure 840 C of the real-world machine 810 behind the virtual window 830 C.
- the user 800 may provide input to the HR system to change the size and position of the virtual window 830 C to show different views and/or magnifications of the internal structure.
- the portion of the internal structure of the machine 810 occluded by the virtual window 830 C is then rendered into the X-ray window 820 C with proper magnification, and perspective.
- the size and position of the X-ray window 820 C may also be changed by the user 800 independently from the size and position of the virtual window 830 C.
- FIG. 8D shows an X-ray window 820 D rendered in view 802 D on an embodiment of a head-mounted display of an HR system.
- the user has changed the size and position of the virtual window 830 D to be smaller and to include only a center portion of the virtual window 830 C shown in FIG. 8C .
- the X-ray window 820 D is in the same position and has the same size as the X-ray window 820 C of FIG. 8C , so it shows a magnified view of the internal structure 840 D of the real-world machine 810 that is occluded by virtual window 830 D.
- the amount of magnification may be altered by either changing the size or position of the virtual window 830 D, or by issuing input commands specific to the X-ray window 820 D.
- FIG. 9A shows a snapshot of the internals 942 , 944 of a machine 910 presented in a view 902 A on an embodiment of a head-mounted display rendered as if in free space.
- the example HR system has taken a first “snapshot” 940 A of internal components 942 , 944 of machine 910 .
- the HR system Prior to the time of FIG. 9A , the HR system had rendered an X-ray window 920 on machine 910 on the HMD of user 900 .
- internal components 942 , 944 were rendered in the correct perspective and at the geometrically correct location with respect to machine 910 .
- component 942 is rendered in free space as representation 942 A in the same orientation as representation 942 .
- component 944 is rendered in free space as representation 944 A in the same orientation as representation 944 .
- the X-ray window 920 may be removed from view 902 A or retained, depending on user preferences and/or commands supported by the embodiment.
- the magnification factor and apparent position of snapshot 940 A may take any initial value as determined by the HR system embodiment. Note further that the snapshot in some embodiments will maintain the correct relative positions between representations 942 A and 944 A at the determined perspective and magnification.
- FIG. 9B shows a snapshot of the internals 942 , 944 of a machine 910 presented in a view 902 B on an embodiment of a head-mounted display rendered as if in free space with a rotation applied. Similar to the vignette in FIG. 9A , a snapshot 940 B is rendered on the HMD embodiment worn by user 900 . FIG. 9B is at an instant of time after the initial creation of FIG. 9A , and the user has rotated the snapshot in the direction of arrow 950 . The rotation may be due to user 900 moving around a static snapshot 940 B, user 900 issuing commands to the HR system, or any other suitable mechanism.
- the orientation of representations 942 B, 944 B in snapshot 940 B is rendered at the new perspective and position maintaining the relative positions of representations 942 B, 944 B.
- the snapshot may be viewed at different positions using translational and rotational user 900 movement and/or commands issued to the HR system. It is also contemplated that the snapshot may be manipulated using other interactions that aid the user 900 in obtaining information about internal components 942 , 944 of machine 910 , such as, but not limited to, snapshot magnification, pulling apart snapshot components, hiding one or more snapshot components, or changing the appearance (e.g. color, transparency, wire-frame) of one or more snapshot components.
- FIG. 10 shows a scene presented to a user wearing an embodiment of a head-mounted display showing internal details of a machine 1050 and a hand 1070 inserted into an access panel 1020 .
- the scene of FIG. 10 shows an X-ray window 1010 added to a view of a real-world machine 1050 enclosed by an opaque cover 1052 , 1054 , 1056 on each side.
- Included on machine 1050 is an access panel 1020 opened using knob 1024 on door 1022 .
- Within machine 1050 are several hidden components, including cylinder 1030 , block 1032 , rods 1034 , 1036 , and gears 1040 , 1042 .
- components cylinder 1030 , block 1032 , rods 1034 , 1036 , and gears 1040 , 1042 may be obtained from schematics of machine 1050 transmitted to the HR system based on, for example, an identification or location of machine 1050 . At least portions of components cylinder 1030 , block 1032 , rods 1034 , 1036 , and gears 1040 , 1042 are within X-ray window 1010 and so are rendered within the window 1010 .
- window 1010 occludes some portions of cylinder 1030 , rod 1034 , rod 1036 , and gear 1042 , and that the relative positions of components cylinder 1030 , block 1032 , rods 1034 , 1036 , and gears 1040 , 1042 is shown by, for example, block 1032 being occluded by gear 1040 .
- the user 1060 is manipulating internal components by inserting hand 1068 wearing glove 1070 into the open access panel 1020 .
- a portion of user's arm 1066 is visible because it is outside machine 1050 , but the rest of the user's arm, including hand 1068 , is occluded by cover 1052 .
- a portion of the arm, i.e. hand 1068 is shown within X-ray window 1010 .
- a portion of the arm, indicated by dotted lines 1062 , 1064 may not be rendered on the HMD.
- the rendered representation of hand 1068 may be photo-realistic, use an avatar, or any other representation to indicate a hand to a user.
- the position of hand 1068 may be received from data provided by sensors in glove 1070 , for example gyroscopes. In other example embodiments, the position of hand 1068 may be received from a device being held by hand 1068 , for example a robotic extension, a tool, or a controller. In yet other example embodiments, the position of the hand may be determined using computation, such as, but not limited to, body position physics as the arm is moved, an internal camera in the machine, using data from external sensors that may partially penetrate a cover, or computed from the visible portion of the arm and known body dimensions.
- the glove 1070 may be used to control the HR system.
- Glove 1070 may incorporate sensors, such as, but not limited to, a gyroscope and accelerometer for detecting and tracking the position and movement of a hand, a finger, or a body pose.
- the user may raise her right hand encased in the glove 1070 and the HR system may receive signals representing the gesture from the glove 1070 .
- the HR system may then interpret the gesture to represent one or more commands, such as, but not limited to, changing a size of a video image, changing the size of images of virtual objects, and then execute those commands.
- a wave of the hand in the glove 1070 may be interpreted to represent a command to rotate or move a virtual object.
- a movement of the glove 1070 may be used for changing an on/off state of the HR system.
- occluded objects viewed in an X-ray window may be rendered in other ways than those explicitly described herein without departing from the concepts disclosed. Whether to display all, some, or none of an occluded object may be done in any manner, including, but not limited to, a position and size of virtual window or X-ray window, a user preference, a context (e.g. a task at hand), or an explicit user command.
- the X-ray window showing the occluded objects may be separate from, or aligned with, a virtual window used to select the occluded objects and the size and position of the X-window may be controlled together with, or separately from, a virtual window.
- the X-ray window may show only occluded objects, or may show a combination of visible and occluded objects, depending on the embodiment.
- a magnification of the occluded objects shown in the X-ray window may be determined in any manner, including, but not limited to, a virtual position of the X-ray window, a size of a virtual window, a size of the X-ray window, or a separate magnification input provided to the HR system by the user or some other entity.
- a border of the X-ray window may or might not be shown, depending on the embodiment.
- the rendering of the occluded objects in the X-ray window may be opaque or partially transparent, and a background area of the X-ray window may be completely transparent, partially transparent, or opaque depending on the embodiment.
- These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
- the computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
- each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s).
- the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved.
- FIG. 11 shows a flowchart 1100 of an embodiment of a method for creating a magnifying X-ray window.
- the method starts 1101 by setting a magnification ‘m’ to an initial value, such as unity, and a position for an X-ray window is received 1102 from commands, for example a “create magnifying window” command input to the HR system in some embodiments.
- the distance ‘d’ from the X-ray window apparent position in 3D space to the real-world object with the X-ray view is determined 1103 ; in some embodiments is a default value and in some embodiments ‘d’ is computed from the position of the user at the time of creating the X-ray window, for example placing the window at some known ratio of the distance between the user and the real-world object with the X-ray view.
- the flowchart 1100 continues by rendering 1104 the X-ray window at magnification ‘m’ (in this case unity) at apparent distance in 3D space.
- the flowchart 1100 continues by receiving 1105 a new position for the X-ray window, for example a “drag magnifying window” command input to the HR system in some embodiments.
- the flowchart 1100 continues by determining 1106 a new distance ‘d’, for example using relative motion specified by the user when applying a “drag magnifying window command” input to the HR system in some embodiments.
- a new magnification factor ‘m’ is computed 1107 using the previous and current values of ‘d’. In some embodiments, a fixed scaling factor may also be applied to keep the magnification ‘m’ within specific limits defined by the HR system.
- the flowchart 1100 continues by rendering 1108 the X-ray window at new magnification factor ‘m’ at current apparent distance ‘d’ in 3D space.
- the flowchart 1100 continues by determining whether a close window instruction has been received during stages 1105 , 1106 , 1107 , 1108 . If the window is to be closed, the X-ray window stops 1110 rendering and returns to start 1101 . If the window remains active, the flowchart 1100 loops to receiving 1105 an X-ray window position.
- any input command loop in flowchart 1100 is purely notional; an interrupt-driven handler or software event handler may be used in some embodiments to save power or simplify code creation.
- FIG. 12 shows a flowchart 1200 of an embodiment of a method for creating a 3D snapshot of an X-ray window.
- the method starts 1201 and a create snapshot command is received 1202 as input to the HR system.
- the flowchart 1200 continues by determining 1203 a center ‘c’ for the snapshot in real-world space.
- ‘c’ is a default value and in some embodiments ‘c’ is computed from the position of the user at the time of creating the snapshot, for example placing the ‘c’ at some known ratio of the distance between the user and the real-world object with the X-ray view.
- ‘c’ may be determined using locations of known real-world objects to place ‘c’ at a position of maximum clearance from real-world objects so the user can physically move around the virtual snapshot in the real-world.
- the flowchart 1200 continues by rendering 1204 the snapshot at apparent distance ‘c’ in 3D space.
- the flowchart 1200 continues by receiving 1205 a new position for user, for example a relative motion determined by the HR system in some embodiments.
- the flowchart 1200 continues by determining 1106 a new perspective to point ‘c’ for the user using triangulation.
- the hidden surfaces of components in the snapshot are computed 1207 , and the snapshot rendered 1208 at the new perspective, making the snapshot appear fixed in real-world space.
- the flowchart 1200 continues by determining whether a close window instruction has been received during stages 1205 , 1206 , 1207 , 1208 . If the window is to be closed, the X-ray window stops 1210 rendering and returns to start 1201 . If the window remains active, the flowchart 1200 loops to receiving 1205 a new user position.
- any input command loop in flowchart 1200 is purely notional; an interrupt-driven handler or software event handler may be used in some embodiments to save power or simplify code creation.
- FIG. 13 shows a flowchart 1300 of a first embodiment of a method for providing information obscured to a user through a display of a hybrid-reality system (DHR).
- the DHR may be a head-mounted display (HMD).
- the method starts 1301 and a view position is established 1310 relative to a real-world object.
- the view position establishes a position of a viewer with respect to the real-world object and so sets a field of view for the viewer.
- the view position may be established in many different ways, for example a user of the hybrid-reality system may manually provide the view position.
- the view position is received from an entity that is not the user of the hybrid-reality system.
- the view position may be established based on a real-world position of the DHR and/or a user of the hybrid-reality system.
- the view position may set to the real-world location of the DHR with a field of view based on the orientation of the DHR, or the view position may be set at a location between the DHR and the real-world object.
- the position may be determined using sensors in the DHR, such as a GPS receiver and/or accelerometers, based on triangulation from other radio-frequency sources such as WiFi access points, cellular towers, dedicated radio-frequency beacons, or any other location determination mechanism.
- a field of view from the view position may be mapped to a full screen of the DHR.
- the view position is established 1310 by capturing 1312 an image of the field-of-view using a camera coupled to the HR system.
- object recognition objects in the field of view are detected 1314 .
- the position of the detected objects is computed using depth information from a sensor coupled to the HR system.
- depth and object orientation the objects can be located 1316 in 3D real-world space.
- the flowchart 1300 continues by receiving 1320 data associated with an occluded object that is at least partially occluded at the user's viewpoint.
- the occluded object may be occluded by the real-world object.
- a characteristic of the real-world object is determined and the data associated with the occluded object is based on the characteristic of the real-world object, and in at least one embodiment the data associated with the occluded object includes information related to the real-world object.
- the characteristic of the real-world object may, for example, be an image of the real-world object, an identity of the real-world object, a message received from the real-world object, or the location of the real-world object.
- the data associated with the occluded object may include a schematic, plan, blueprint, or map of the real-world object.
- the received data associated with the occluded object is based on data from one or more sensors.
- the sensors may be integrated into the DHR, the hybrid-reality system, or be remote from the hybrid-reality system.
- the data from the sensors may be received in real-time or near real-time in some cases.
- the received data associated with the occluded object may have been established at an earlier time, such as data collected during a visit at an earlier time to an area near the occluded object by one or more people using hybrid-reality systems with integrated sensors.
- the occluded object data is received 1320 by requesting 1322 data within a vicinity of the view position.
- the HR system generates 1324 a list of objects in the vicinity, and computes 1326 an intersection of the list within the desired field-of-view at the view position to generate an occlude list.
- Data is received by de-referencing 1328 the objects on the occlude list, for example indexing a database.
- the flowchart 1300 continues by rendering 1330 an image of at least a portion of the occluded object on the DHR.
- the image of at least the portion of the occluded object may be rendered at any level of detail or with any perspective or viewing parameters depending on the embodiment.
- Image rendering and/or viewing parameters may be received from the user or from an entity that is not the user and the parameters may be stored within the hybrid-reality system.
- the image is rendered with a perspective based on a user position with respect to the real-world object or with a perspective based on parameters stored within the hybrid-reality system.
- the method may also include establishing a window into the object to show the image, although some embodiments may simply show any occluded object visible in the field of view from the view position.
- the window may have any shape and may have an asymmetric shape in some embodiments.
- the image may be clipped to the window in some embodiments.
- the window may also be referred to as an X-ray window, a view-port, or a virtual window.
- the flowchart 1300 then returns to the start 1301 .
- the window may be positioned to at least partially occlude the real-world object and the image rendered in a position in the window corresponding to a real-world position of the occluded object. This may present the appearance of an opening in the surface of the real-world object which allows the user to see inside of, or behind, the real-world object, so creating a view of a space occluded behind a surface of the real-world object.
- the window may be positioned to fully occlude the real-world object, for example with a shape of the window corresponding to a shape of the real-world object. This may create an appearance of making the entirety of any occluded objects hidden by the real-world object visible.
- the window may be positioned independently from a real-world position of the occluded object, so allowing the user to view the occluded object in a different location in the field of view.
- a window is created on the DHR that includes the image, the window positioned, at least in part, as a cut-away view of an occluded space behind a surface of the real-world object.
- the portion of the occluded object to render is determined as well as a perspective of the occluded object based on relative positions of the view position, the window, the real-world object, and the occluded object.
- a new view position is then established based on a new real-world position of the DHR.
- a new portion of the occluded object to render and a new perspective of the occluded object are then determined based on relative positions of the new view position, the window, the real-world object, and the occluded object.
- the window is moved to a new position on the DH. Then the new portion of the occluded object to render and a new perspective of the occluded object are determined based on relative positions of the view position, the new position of the window, the real-world object, and the occluded object.
- a hierarchical set of windows may be used to show different layers of occluded objects.
- a view position relative to a real-world object is established and data associated with an object occluded at the view position is received, where the occluded object at least partially occluded by the real-world object at the view position.
- a first window is created on the DHR and an image of at least a portion of the occluded object is rendered and clipped to the first window.
- a subsection of the occluded object in the first window is then selected and data associated with a second object occluded by the subsection of the occluded object is received.
- a second window is created on the DHR and a second image of at least a portion of the second object is rendered into in the second window.
- the second object may be located within or behind the occluded object.
- the second window may be positioned on the DHR independent of a position of the first window on the DHR in some embodiments. In other embodiments, the second window may be positioned to fully occlude the selected subsection of the occluded object in the first window, with a shape of the second window corresponding to a shape of the selected subsection of the occluded object.
- FIG. 14 shows a flowchart 1400 of a second embodiment of a method for manipulating occluded objects shown through a display of a hybrid-reality system.
- the method starts 1401 , and a first view position including a direction and location on a real-world object is established 1410 .
- Data for one or more objects that are at least partially occluded by the real-world object at the first view position is received 1420 .
- the data that is received includes information that may be used to determine dimensions and the location of the occluded objects, allowing the hybrid-reality system to render 1440 a first image of the occluded object as if the object were not occluded at the first view point.
- a viewport is created 1442 on the real-world object by the hybrid-reality system and the rendering of the first image is clipped 1444 to the viewport.
- the flowchart 1400 continues by selecting 1460 one or more occluded objects; in some embodiments the selection is made through user commands and in at least one embodiment the selection default is all occluded objects visible in first image.
- the selecting of the at least one occluded object includes receiving one or more commands from a user of the hybrid-reality system to select the at least one occluded object so that the at least one occluded object includes a first occluded object of the one or more occluded objects rendered in the first image and excludes a second occluded object of the one or more occluded objects rendered in the first image.
- a gesture of the user may be detected using a sensor coupled to the hybrid-reality system and the one or more commands may be determined based on the gesture.
- the flowchart 1400 continues by establishing 1480 a second view position; in example embodiments the second view position is a point in space outside the real-world object that the user can move around. A change of location of the DHR may be detected to establish the second view position in some embodiments.
- input from the user of the hybrid-reality system such as commands, one or more gestures, or any other type of input, may be received to establish the second view position.
- the flowchart also includes rendering 1490 a second image of the selected objects at the second view position.
- a view port on the image of the real-world object is manipulated to set a size and/or a position of the view port and the rendering 1440 of the first image is clipped to the view port.
- the selecting 1460 is based on what is visible in the view port.
- a gesture by the user is detected using a sensor coupled to the hybrid-reality system to manipulate the size and/or position of the view-port.
- gestures may also be used to command the hybrid-reality system to select 1460 the occluded object from the first image and deselect previously selected objects.
- the second image may be rendered at a position on the DHR independent of (i.e. without regard to) a position of an image of the real-world object on the DHR.
- the establishing 1480 a second view position uses a position that is not related to the position of an image of the real-world object on the DHR, such as, but not limited to, a point in the field-of-view that is determined to be empty of visible data, a point in space between the user and the real-world object, or a point in real-world space that the user can access determined to have no physical obstructions.
- the establishing 1480 a second view position is made iteratively to place the second image at an optimal position with maximum unobstructed surrounding space.
- the establishing 1480 a second view position is a fixed point on the display (e.g. set using a system default or previously set by the user) used to create a separate window in which to render the second image on the DHR.
- the second image is a representation of the selected occluded object as if it were a real-world object at the second position.
- the second view position may be set by user movement, such as pointing to a point in space or using a point between a new user position and the real-world object.
- the rendering 1490 of a second image causes the first image to be removed; whether to remove or keep the first image may be a parameter in the hybrid-reality system or controlled by an explicit command issued by the user. So in some embodiments, the first image and the second image may be presented on the DHR simultaneously.
- the establishing 1480 a second view position continues as a series of subsequent view positions 1480 and the rendering 1490 of the second image updated based on each view position (which has both direction and location) to create an interactive display on the DHR.
- the user may move around the rendered second image in space to observe the selected occluded object from different perspectives. This may be achieved in at least one embodiment by using sensors coupled to the DHR (e.g. cameras in the environment, gyroscopes in a head-mounted system, a GPS receiver, or cameras mounted on the user) to establish a set of user positions in space and so generate a series of view positions used to render the interactive display of the selected occluded object.
- sensors coupled to the DHR e.g. cameras in the environment, gyroscopes in a head-mounted system, a GPS receiver, or cameras mounted on the user
- the series of view positions used to render the interactive display of the selected occluded object may be set by the user issuing a series of commands interpreted by the hybrid-reality system as a series of view positions, such as, but not limited to, tracking hand motion or a pointer, tracking eye movement, or tracking head orientation over time.
- a first location and a first orientation of the DHR may be determined using sensors in the DHR at a first time to establish the first view position based on the first location and the first orientation of the DHR.
- a virtual position may be established with respect to the first view location for a virtual presentation of the at least one selected objects.
- a second location and a second orientation of the DHR may be determined using the sensors in the DHR at a second time to establish the second view position based on the second location and the second orientation of the DHR.
- the at least one selected object may then be rendered from the second view position at the virtual position in the second image.
- subsequent locations and subsequent orientations of the DHR may be determined using sensors in the DHR over a period of time to establish subsequent view positions, and subsequent images of the at least one selected occluded object generated on the DHR from the subsequent view positions at the virtual position in near real-time to create an interactive display on the DHR.
- the DHR may be a part of a head-mounted display.
- FIG. 15 shows flowchart 1500 of a third embodiment of a method to provide information obscured to a user through a display of a hybrid-reality system (DHR).
- the method starts 1501 by establishing a view position relative to a real-world object 1510 and receiving first dimension and position data 1520 associated with an occluded object.
- the occluded object is at least partially occluded by the real-world object at the view position.
- a first image of at least a portion of the occluded object is rendered 1530 on the DHR using the first data.
- a virtual tool is selected 1532 .
- the virtual tool may allow various parameters or measurements of the occlude object to be monitored.
- the virtual tool can include a visual indicator of the tool, such as, but not limited to, an icon, an image, or text. Examples include a thermometer icon, a stethoscope icon, and an image of an analog voltage meter.
- the virtual tool may then be associated 1534 with the occluded object. The association may include placing the virtual tool at a first location of the first image.
- a second image of at least the portion of the occluded object is rendered along with an image of its associated virtual tool on the DHR.
- a sensor monitoring the occluded object is selected 1536 based on the association of the virtual tool with the occluded object, based on the type of virtual tool selected, or based on the first location of the first image where the virtual tool is placed.
- the sensor may be physically coupled to the DHR or may be separate from the DHR.
- the first location may represent a particular location on the occluded object, such as a particular part of the occluded object, a particular object within the occluded object, a test point of the occluded object, or any other interesting feature of the occluded object.
- the selected sensor may be activated upon its selection.
- Second data associated with the occluded object is received 1540 .
- the second data may represent information about the occluded object, such as a temperature measurement, a voltage, a pressure level, a stress measurement, a noise level, or any other information about the occluded object.
- the second data may be received from a sensor monitoring the occluded object.
- the second data may be received from the selected sensor, but in other embodiments, the second data may be received from an external source, such as a remote computer in communication with the occluded object or a human observing the occluded object.
- the external source may be selected based on the selection of the virtual tool or on the type of virtual tool.
- at least a portion of the second data is stored and the portion of the second data to be stored may be based on a type of the virtual tool.
- a stimulus is provided 1550 to the user representing the second data.
- the stimulus may be a virtual object presented on the DHR on or near the occluded object.
- the stimulus may include text displayed on the DHR, a fill amount of the rendered occluded object, a color of at least a portion of the rendered occluded object, a haptic stimulus, or audio content, depending on the embodiment.
- the stimulus includes text associated with the virtual tool, a fill amount or a color of the virtual tool, audio content, or a haptic stimulus.
- the stimulus may be selected based on a location of the virtual tool on the occluded object.
- the virtual tool includes an image of a thermometer
- the second data represents a temperature of the occluded object at a location of the virtual tool on the occluded object.
- FIG. 16 shows a flowchart 1600 of a fourth embodiment of a method provide information obscured to a user through a display of a hybrid-reality system (DHR).
- the method starts 1601 by receiving data associated with an occluded object 1610 , the occluded object at least partially occluded by a real-world object at a position of the user.
- DHR hybrid-reality system
- the method continues by creating 1620 a display window on the DHR.
- One or more parameters such as a size, a shape, and/or a position, may be received for the display window.
- the parameters may be received from the user of the DHR, a third party, or may be received from a configuration file of the hybrid-reality system stored locally or remotely. So the display window may be created at a position on the DHR based on the one or more parameters.
- a first magnification factor is obtained 1630 .
- the first magnification factor may be obtained in many different ways.
- the first magnification factor may be set to a default value, such as unity.
- the first magnification factor may be set based on one or more commands received or based on the one or more parameters received for the display window.
- the method may include creating a view-port having a first size associated with a first portion of the real-world object.
- the view port may be used to show the occluded object in-situ in an apparent opening on the real-world object that is occluding the occluded object.
- the first magnification factor may be determined based on at least a first size of the display window and the first size of the view-port, such as by using a ratio of the first size of the display window to the first size of the view-port as the first magnification factor as one non-limiting example. Once the first magnification factor has been determined, a first image of at least the portion of the occluded object is rendered 1640 in the display window at the first magnification factor at a first time.
- a second magnification factor, different than the first magnification factor, is obtained 1650 and a second image of at least the portion of the occluded object is rendered 1660 in the display window at the second magnification factor at a second time after the first time.
- the second magnification factor may be obtained in many different ways.
- a command may be received and the second magnification factor determined based, at least in part, on the command.
- the command may be received from any source, including from the user or from an external source.
- a first virtual distance between the display window and the real-world object is obtained at about the first time and a second virtual distance between the display window and the real-world object is obtained at about the second time.
- a first real-world distance between the user and the real-world object may be obtained at about the time that the display window is created and the first virtual distance may be determined based on the first real-world distance in some embodiments.
- the second magnification factor may be calculated based, at least in part, on the first magnification factor, the first virtual distance, and the second virtual distance.
- Control information related to the display window may be received between the first time and the second time in some embodiments and the second virtual distance determined based on the control information.
- a user may use gestures, voice commands, or other types of control input to adopt a metaphor of a magnifying glass to change the second magnification factor by moving the display window in and out to change the second magnification factor.
- the view-port may be changed to have a second size and the second magnification factor may be determined based on at least the first size of the display window and the second size of the view-port.
- Input from an external source or the user may be received to change the first size of the view port to a second size of the view port.
- the second magnification factor may also be manipulated by changing the display window to have a second size so the second magnification factor may be based on at least the second size of the display window and the first size of the view-port.
- the sizes of both the display window and view-port may be changed so that the second magnification factor may also be based on both the second size of the display window and the second size of the view-port.
- the second magnification factor may be based on a ratio of the size of the display window to the size of the view-port at the second time.
- the view-port may be moved to a second portion of the real-world object that occluded a different portion of the occluded object.
- a third image of at least a different portion of the occluded object may then be rendered in the display window.
- the method of flowchart 1600 may also be used in a hierarchical viewing environment where the real-world object is at least partially occluded from view at the position of the user by another object, and the occluded object is occluded by both the real-world object and the other object.
- the occluded object may be located within the real-world object or behind the real-world object.
- the display window referred to above may be a second display window showing the occluded object.
- the second display window on the DHR may be positioned independent of a position of the first display window on the DHR.
- the second display window may be positioned to fully occlude the selected portion of the real-world object in the first window, wherein a shape of the second window corresponds to a shape of the selected portion of the real-world object.
- An image of the real-world object may be displayed in a first display window on the DHR.
- a portion of the real-world object that is occluding the portion of the occluded object may be selected in the first display window and may be used to determine what to show in the second display window that is subject to a change in magnification.
- FIG. 17 shows a flowchart 1700 of a fifth embodiment of a method provide information obscured to a user through a display of a hybrid-reality system (DHR).
- the method starts 1701 by establishing a view position 1710 relative to a real-world object and first data associated with an occluded object is received 1720 .
- the first data provides information about a first position, at a first time, of at least a moveable portion of the occluded object.
- the occluded object is at least partially occluded from the view position by a surface of the real-world object at the first time.
- the first data may indicate that the moveable portion of the occluded object is occluded from the view position by the surface of the real-world object at the first time, but in other cases, the first data may indicate that the moveable portion of the occluded object is, at least in part, not occluded from the view position by the surface of the real-world object at the first time.
- a first image of at least the moveable portion of the occluded object in the first position is then rendered 1730 on the display.
- Second data associated with the occluded object is received 1740 .
- the second data provides information about a second position, at a second time, of the moveable portion of the occluded object.
- the occluded object is at least partially occluded from the view position by the surface of the real-world object at the second time.
- the second data may indicate that the moveable portion of the occluded object is occluded from the view position by the surface of the real-world object at the second time.
- the moveable portion of the occluded object may be occluded by the surface of the real-world staying at both the first time and the second time.
- the moveable portion of the occluded object may move into occlusion or may move out of occlusion between the first time and the second time.
- first sensor data may be received from a sensor included in the occluded object or a separate sensor that monitors the occluded object.
- the first data may include the first sensor data.
- the first position of the moveable portion of the occluded object may be determined based on the first sensor data.
- Second sensor data, included in the second data may be received from the sensor, and the second position of the moveable portion of the occluded object determined based on the second sensor data.
- Sensor data providing information about a third position of a second object may be received in some embodiments.
- the second position of the moveable portion of the occluded object may be determined based, at least in part, on the third position of the second object. This may be done where the third position may at least partially alter the position of the occluded object.
- Non-limiting examples of this are a wrench or screwdriver (second object) turning a nut (portion of the occluded object), an segment of a mechanical arm (second object) which is attached to its base moving a next segment of mechanical arm having (portion of the occluded object), or a first gear (second object) moving an engaged second gear (portion of the occluded object).
- the second object may be separate from the occluded object and/or coupled to the occluded object.
- the second object may, at least in part, move the moveable portion of the occluded object.
- the sensor data may be stored, and in at least one embodiment, the second position may be calculated based, at least in part, on previously stored sensor data.
- a second image of at least the moveable portion of the occluded object in the second position is then rendered 1750 on the display to replace the first image.
- Some embodiments may create a window on the display positioned to at least partially occlude the real-world object and render the second image into the window consistent with a real-world position of the second set of occluded objects relative to the view position.
- the occluded object may include a first object and a second object, and the moveable portion of the occluded object may consist of only the second object.
- third data associated with the occluded object may be received with the third data providing information about a third position, at a third time, of the first object without information related to the second object.
- the first object may be at least partially occluded from the view position by the surface of the real-world object at the third time.
- a third image of the first portion of the first object in the third position, without the second object may then be rendered on the display.
- the third time may occur at any time with respect to the first time and the second time, and in some cases the third time may occur before the second time.
- the second object may become occluded by a surface of the real-world object between the third time and the second time.
- the moveable portion of the occluded object is under control of a user of the hybrid-reality system. Some embodiments may provide guidance to the user on where to move the moveable portion of the occluded object. This guidance may take any form including, but not limited to, audio messages, textual messages presented on the DHR, or graphical messages presented on the DHR.
- the occluded object is associated with a body part of a user of the hybrid-reality system. A non-limiting example of this is a glove (the occluded object) worn on a hand (body part) of a user.
- aspects of the various embodiments may be embodied as a system, device, method, or computer program product apparatus. Accordingly, elements of the present disclosure may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, or the like) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “server,” “circuit,” “module,” “client,” “computer,” “logic,” or “system,” or other terms. Furthermore, aspects of the various embodiments may take the form of a computer program product embodied in one or more computer-readable medium(s) having computer program code stored thereon.
- a computer-readable storage medium may be embodied as, for example, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or other like storage devices known to those of ordinary skill in the art, or any suitable combination of computer-readable storage mediums described herein.
- a computer-readable storage medium may be any tangible medium that can contain, or store a program and/or data for use by or in connection with an instruction execution system, apparatus, or device.
- a computer data transmission medium such as a transmission line, a coaxial cable, a radio-frequency carrier, and the like, may also be able to store data, although any data storage in a data transmission medium can be said to be transitory storage. Nonetheless, a computer-readable storage medium, as the term is used herein, does not include a computer data transmission medium.
- Computer program code for carrying out operations for aspects of various embodiments may be written in any combination of one or more programming languages, including object oriented programming languages such as Java, Python, C++, or the like, conventional procedural programming languages, such as the “C” programming language or similar programming languages, or low-level computer languages, such as assembly language or microcode.
- object oriented programming languages such as Java, Python, C++, or the like
- conventional procedural programming languages such as the “C” programming language or similar programming languages
- low-level computer languages such as assembly language or microcode.
- the computer program code if loaded onto a computer, or other programmable apparatus, produces a computer implemented method.
- the instructions which execute on the computer or other programmable apparatus may provide the mechanism for implementing some or all of the functions/acts specified in the flowchart and/or block diagram block or blocks.
- the program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server, such as a cloud-based server.
- the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
- LAN local area network
- WAN wide area network
- the computer program code stored in/on (i.e. embodied therewith) the non-transitory computer-readable medium produces an article of manufacture.
- the computer program code if executed by a processor causes physical changes in the electronic devices of the processor which change the physical flow of electrons through the devices. This alters the connections between devices which changes the functionality of the circuit. For example, if two transistors in a processor are wired to perform a multiplexing operation under control of the computer program code, if a first computer instruction is executed, electrons from a first source flow through the first transistor to a destination, but if a different computer instruction is executed, electrons from the first source are blocked from reaching the destination, but electrons from a second source are allowed to flow through the second transistor to the destination. So a processor programmed to perform a task is transformed from what the processor was before being programmed to perform that task, much like a physical plumbing system with different valves can be controlled to change the physical flow of a fluid.
- a computer system renders one or more virtual objects on a display of the computer system which represents occluded or obscured details in the field-of-view.
- the virtual rendering covers all or a portion of a real-world object and, if there is motion, displayed in the correct perspective.
- the information used to render one or more virtual objects may be known, for example blueprints or maps.
- the information used to render one or more virtual objects may be obtained from external sources, for example drones, mounted sensors or other personnel.
- the information used to render one or more virtual objects may be obtained from historical data, for example a video stream obtained prior to smoke obscuring the scene.
- information obscured to a user is provided through a display of a hybrid-reality system (DHR).
- DHR hybrid-reality system
- a view position relative to a real-world object is established and data associated with an occluded object is received.
- the occluded object is at least partially occluded by the real-world object at the view position.
- An image of at least a portion of the occluded object is then rendered on the DHR.
- an occluded object displayed through a display of a hybrid-reality system is manipulated by establishing a first view position relative to a real-world object and receiving three-dimensional data associated with occluded objects at the first view position.
- a first image of at least a portion of the occluded objects is rendered on the DHR from the first view position at a geometrically correct location with respect to an image of the real-world object on the HMD using the three-dimensional data.
- One or more occluded objects are selected from the first image and a second image of the selected objects is rendered on the DHR either in a separate window or as an object in a field of view. The second image can then be manipulated by the user of the hybrid-reality system to obtain more detailed information.
- a computer system renders one or more virtual objects on a display of a hybrid-reality system (DHR), such as head-mounted display (HMD), which represents occluded or obscured details in the field-of-view.
- DHR hybrid-reality system
- HMD head-mounted display
- Information is presented to a user by establishing a view position relative to a real-world object and receiving dimension and position data associated with an occluded object.
- the occluded object is at least partially occluded by the real-world object at the view position.
- a first image of at least a portion of the occluded object is rendered on the DHR using the first data.
- Second data associated with the occluded object is received and a stimulus is provided to the user representing the second data.
- information obscured to a user is provided through a display of a hybrid-reality system (DHR).
- DHR hybrid-reality system
- Data associated with an occluded object at least partially occluded by a real-world object at a position of the user is received and a display window is created on the DHR.
- a first magnification factor is obtained and a first image of at least the portion of the occluded object is rendered in the display window at the first magnification factor at a first time.
- a second magnification factor, different than the first magnification factor, is obtained, and a second image of at least the portion of the occluded object is rendered in the display window at the second magnification factor at a second time after the first time.
- information obscured to a user is provided through a display of a hybrid-reality system (DHR), such as a head-mounted display (HMD).
- DHR hybrid-reality system
- HMD head-mounted display
- a view position relative to a real-world object is established, the real-world object at least partially occluding a view of an occluded object.
- First data providing information about a first position, at a first time, of at least a moveable portion of an occluded object is received and a first image of at least the moveable portion of the occluded object in the first position is then rendered on the display.
- Second data providing information about a second position, at a second time, of the moveable portion of the occluded object is then received, and a second image of at least the moveable portion of the occluded object in the second position is rendered on the display to replace the first image.
- Embodiment 1 A method to provide information obscured to a user through a display of a hybrid-reality system (DHR), the method comprising: establishing a view position relative to a real-world object; receiving data associated with an occluded object, the occluded object at least partially occluded by the real-world object at the view position; and rendering an image of at least a portion of the occluded object on the DHR.
- DHR hybrid-reality system
- Embodiment 2 The method of embodiment 1, further comprising creating a window on the DHR that includes the image and clipping the image to the window.
- Embodiment 3 The method of embodiment 2, further comprising: positioning the window to at least partially occlude the real-world object; and rendering the image in a position in the window corresponding to a real-world position of the occluded object.
- Embodiment 4 The method of embodiment 3, further comprising positioning the window to fully occlude the real-world object, wherein a shape of the window corresponds to a shape of the real-world object.
- Embodiment 5 The method of embodiment 2, further comprising positioning the window independently from a real-world position of the occluded object.
- Embodiment 6 The method of embodiment 2, wherein the window is positioned, at least in part, as a view of a space occluded behind a surface of the real-world object.
- Embodiment 7 The method of embodiment 2, wherein the window has an asymmetric shape.
- Embodiment 8 The method of embodiment 2, wherein the window is a first window, the method further comprising: selecting a subsection of the occluded object in the first window; receiving data associated with a second object occluded by the subsection of the occluded object; and creating a second window on the DHR and rendering a second image of at least a portion of the second object in the second window.
- Embodiment 9 The method of embodiment 8, wherein the second object is located within the occluded object.
- Embodiment 10 The method of embodiment 8, wherein the second object is located behind the occluded object.
- Embodiment 11 The method of embodiment 8, further comprising positioning the second window on the DHR independent of a position of the first window on the DHR.
- Embodiment 12 The method of embodiment 8, further comprising positioning the second window to fully occlude the selected subsection of the occluded object in the first window, wherein a shape of the second window corresponds to a shape of the selected subsection of the occluded object.
- Embodiment 13 The method of embodiment 1, further comprising rendering the image of at least the portion of the occluded object with a perspective based on a user position with respect to the real-world object.
- Embodiment 14 The method of embodiment 1, further comprising rendering the image of at least the portion of the occluded object with a perspective based on viewing parameters stored within the hybrid-reality system.
- Embodiment 15 The method of embodiment 1, further comprising receiving the view position from an entity that is not the user.
- Embodiment 16 The method of embodiment 1, further comprising: determining a real-world position of the DHR; and establishing the view position based on the real-world position of the DHR.
- Embodiment 17 The method of embodiment 16, further comprising: creating a window on the DHR that includes the image, the window positioned, at least in part, as a cut-away view of an occluded space behind a surface of the real-world object; determining the portion of the occluded object to render and a perspective of the occluded object based on relative positions of the view position, the window, the real-world object, and the occluded object; establishing a new view position based on a new real-world position of the DHR; determining a new portion of the occluded object to render and a new perspective of the occluded object based on relative positions of the new view position, the window, the real-world object, and the occluded object; and rendering a new image of at least the new portion of the occluded object in the window on the DHR to replace the image of at least the portion of the occluded object on the DHR.
- Embodiment 18 The method of embodiment 16, further comprising: creating a window on the DHR that includes the image, the window positioned, at least in part, as a cut-away view of an occluded space behind a surface of the real-world object; determining the portion of the occluded object to render and a perspective of the occluded object based on relative positions of the view position, the window, the real-world object, and the occluded object; moving the window to a new position on the DHR; determining a new portion of the occluded object to render and a new perspective of the occluded object based on relative positions of the view position, the new position of the window, the real-world object, and the occluded object; and rendering a new image of at least the new portion of the occluded object in the window on the DHR to replace the image of at least the portion of the occluded object on the DHR.
- Embodiment 19 The method of embodiment 1, further comprising determining a characteristic of the real-world object, wherein the data associated with the occluded object is based on the characteristic of the real-world object.
- Embodiment 20 The method of embodiment 1, wherein the data associated with the occluded object comprises information related to the real-world object.
- Embodiment 21 The method of embodiment 20, wherein the data associated with the occluded object comprises a schematic, plan, blueprint, or map of the real-world object.
- Embodiment 22 The method of embodiment 1, wherein the received data associated with the occluded object is based on data from one or more sensors.
- Embodiment 23 The method of embodiment 1, wherein the received data associated with the occluded object was established at an earlier time.
- Embodiment 24 The method of embodiment 23, wherein the received data associated with the occluded object was collected during a visit at an earlier time to an area near the occluded object by one or more people using hybrid-reality systems with integrated sensors.
- Embodiment 25 An article of manufacture comprising a tangible medium, that is not a transitory propagating signal, encoding computer-readable instructions that, when applied to a computer system, instruct the computer system to perform a method comprising: establishing a view position relative to a real-world object; receiving data associated with an occluded object, the occluded object at least partially occluded by the real-world object at the view position; and rendering an image of at least a portion of the occluded object on the DHR.
- Embodiment 26 A hybrid-reality system comprising: a display; a structure, coupled to the display and adapted to position the display in a field-of-view (FOV) of the user; and a processor, coupled to the display, the processor configured to: establish a view position relative to a real-world object; receive data associated with an occluded object, the occluded object at least partially occluded by the real-world object at the view position; and render an image of at least a portion of the occluded object on the display.
- FOV field-of-view
- Embodiment 27 A method to virtually manipulate an occluded object shown through a display of a hybrid-reality system (DHR), the method comprising: establishing a first view position including a first view location and a first direction of view relative to a real-world object; receiving position data associated with one or more occluded objects, the one or more occluded objects at least partially occluded by the real-world object at the first view position; rendering a first image of at least a portion of the one or more occluded objects on the HMD at the first view position, the portion of the one or more occluded objects rendered at a geometrically correct location with respect to an image of the real-world object on the DHR using the received position data; selecting at least one occluded object from the portion of the one or more occluded objects rendered in the first image; establishing a second view position including a second location and a second direction of view relative to the at least one selected occluded object; and rendering a second image of the at least one selected
- Embodiment 28 The method of embodiment 27, said selecting comprising: manipulating a size and/or position of a view-port on the image of the real-world object, wherein the first image is clipped to the view-port; and selecting the at least one occluded object based on what is visible in the view-port.
- Embodiment 29 The method of embodiment 28, the manipulating comprising: detecting a gesture of the user using a sensor coupled to the hybrid-reality system; and manipulating a size and/or position of a view-port based on the gesture.
- Embodiment 30 The method of embodiment 27, said selecting comprising receiving one or more command s from a user of the hybrid-reality system to select the at least one occluded object, wherein the at least one occluded object includes a first occluded object of the one or more occluded objects rendered in the first image and excludes a second occluded object of the one or more occluded objects rendered in the first image.
- Embodiment 31 The method of embodiment 30, the receiving command s comprising: detecting a gesture of the user using a sensor coupled to the hybrid-reality system; and determining the one or more command s based on the gesture.
- Embodiment 32 The method of embodiment 27, further comprising rendering the second image at a position on the DHR independent of a position of an image of the real-world object on the DHR.
- Embodiment 33 The method of embodiment 32, wherein the second image is displayed in a window on the DHR.
- Embodiment 34 The method of embodiment 32, wherein the at least one selected occluded object is displayed on the DHR as an object in a field of view.
- Embodiment 35 The method of embodiment 27, further comprising presenting the first image and the second image on the DHR simultaneously.
- Embodiment 36 The method of embodiment 27, further comprising detecting a change of location of the DHR to establish the second view position.
- Embodiment 37 The method of embodiment 27, further comprising receiving input from the user of the hybrid-reality system to establish the second view position.
- Embodiment 38 The method of embodiment 37, the receiving input comprising:
- Embodiment 39 The method of embodiment 27, further comprising: receiving input from a user of the hybrid-reality system over a period of time to establish subsequent view positions; and generating subsequent images of the at least one selected occluded object on the DHR from the subsequent view positions in near real-time to create an interactive display on the DHR.
- Embodiment 40 The method of embodiment 39, the receiving input comprising: detecting gestures of the user using a sensor coupled to the hybrid reality system; and determining the input based on the gestures.
- Embodiment 41 The method of embodiment 39, the receiving input comprising determining locations of the DHR over the period of time using sensors included in the DHR.
- Embodiment 42 The method of embodiment 27, further comprising: determining a first location and a first orientation of the DHR using sensors in the DHR at a first time; establishing the first view position based on the first location and the first orientation of the DHR; establishing a virtual position with respect to the first view location for a virtual presentation of the at least one selected objects; determining a second location and a second orientation of the DHR using the sensors in the DHR at a second time; establishing the second view position based on the second location and the second orientation of the DHR; and rendering the at least one selected object from the second view position at the virtual position in the second image.
- Embodiment 43 The method of embodiment 42, wherein the DHR comprises a head-mounted display (HMD).
- HMD head-mounted display
- Embodiment 44 The method of embodiment 42, further comprising: determining subsequent locations and subsequent orientations of the DHR using sensors in the DHR over a period of time to establish subsequent view positions; and generating subsequent images of the at least one selected occluded object on the DHR from the subsequent view positions at the virtual position in near real-time to create an interactive display on the DHR.
- Embodiment 45 An article of manufacture comprising a tangible medium, that is not a transitory propagating signal, encoding computer-readable instructions that, when applied to a computer system, instruct the computer system to perform a method comprising: establishing a first view position including a first view location and a first direction of view relative to a real-world object; receiving position data associated with one or more occluded objects, the one or more occluded objects at least partially occluded by the real-world object at the first view position; rendering a first image of at least a portion of the one or more occluded objects on the HMD at the first view position, the portion of the one or more occluded objects rendered at a geometrically correct location with respect to an image of the real-world object on the DHR using the received position data; selecting at least one occluded object from the portion of the the one or more occluded objects rendered in the first image; establishing a second view position including a second location and a second direction of view relative to the at least one
- Embodiment 46 A hybrid-reality system comprising: a display; a structure, coupled to the display and adapted to position the display in a field-of-view (FOV) of the user; a processor, coupled to the display, the processor configured to: establish a first view position including a first view location and a first direction of view relative to a real-world object; receive position data associated with one or more occluded objects, the one or more occluded objects at least partially occluded by the real-world object at the first view position; render a first image of at least a portion of the one or more occluded objects on the HMD at the first view position, the portion of the one or more occluded objects rendered at a geometrically correct location with respect to an image of the real-world object on the DHR using the received position data; select at least one occluded object from the portion of the the one or more occluded objects rendered in the first image; establish a second view position including a second location and a second direction of view relative to
- Embodiment 47 A method to provide information obscured to a user through a display associated with a hybrid-reality system (DHR), the method comprising: establishing a view position relative to a real-world object; receiving first dimension and position data associated with an occluded object, the occluded object at least partially occluded by the real-world object at the view position; rendering a first image of at least a portion of the occluded object on the DHR using the first data; receiving second data associated with the occluded object; and providing a stimulus to the user representing the second data.
- DHR hybrid-reality system
- Embodiment 48 The method of embodiment 47, wherein the stimulus comprises a virtual object presented on the DHR on or near the occluded object
- Embodiment 49 The method of embodiment 47, the stimulus comprising text displayed on the DHR, a fill amount of the rendered occluded object, a color of at least a portion of the rendered occluded object, a haptic stimulus, or audio content or any combination thereof.
- Embodiment 50 The method of embodiment 47, further comprising receiving the second data from a sensor monitoring the occluded object.
- Embodiment 51 The method of embodiment 50, wherein the sensor is physically coupled to the occluded object.
- Embodiment 52 The method of embodiment 47, further comprising: selecting a virtual tool; associating the virtual tool with the occluded object; and rendering a second image of at least the portion of the occluded object with its associated virtual tool on the DHR.
- Embodiment 53 The method of embodiment 52, the stimulus comprising text associated with the virtual tool.
- Embodiment 54 The method of embodiment 52, the stimulus comprising a fill amount or a color of the virtual tool.
- Embodiment 55 The method of embodiment 52, wherein the virtual tool comprises an image of a thermometer, and the second data represents a temperature of the occluded object at a location of the virtual tool on the occluded object.
- Embodiment 56 The method of embodiment 52, the stimulus comprising audio content or a haptic stimulus selected based on a location of the virtual tool on the occluded object.
- Embodiment 57 The method of embodiment 52, further comprising: selecting a sensor monitoring the occluded object based on the association of the virtual tool with the occluded object; and receiving the second data from the selected sensor.
- Embodiment 58 The method of embodiment 57, further comprising activating the selected sensor.
- Embodiment 59 The method of embodiment 52, further comprising: placing the virtual tool at a first location of the first image; selecting a sensor monitoring the occluded object based on the first location; and receiving the second data from the selected sensor.
- Embodiment 60 The method of embodiment 59, further comprising activating the selected sensor.
- Embodiment 61 The method of embodiment 52, further comprising: selecting an external data source based on the selection of the virtual tool; and receiving the second data from the selected external data source.
- Embodiment 62 The method of embodiment 61, the selecting of the external data source is based, at least in part, on a type of the virtual tool.
- Embodiment 63 The method of embodiment 47, further comprising storing at least a portion of the second data.
- Embodiment 64 The method of embodiment 63, further comprising determining the portion of the second data to be stored based on a type of the virtual tool.
- Embodiment 65 An article of manufacture comprising a tangible medium, that is not a transitory propagating signal, encoding computer-readable instructions that, when applied to a computer system, instruct the computer system to perform a method comprising: establishing a view position relative to a real-world object; receiving first dimension and position data associated with an occluded object, the occluded object at least partially occluded by the real-world object at the view position; rendering a first image of at least a portion of the occluded object on the DHR using the first data; receiving second data associated with the occluded object; and providing a stimulus to the user representing the second data.
- Embodiment 66 A hybrid-reality system comprising: a display; a structure, coupled to the display and adapted to position the display in a field-of-view (FOV) of the user; a processor, coupled to the display, the processor configured to: establish a view position relative to a real-world object; receive first dimension and position data associated with an occluded object, the occluded object at least partially occluded by the real-world object at the view position; render a first image of at least a portion of the occluded object on the DHR using the first data; receive second data associated with the occluded object; and provide a stimulus to the user representing the second data.
- FOV field-of-view
- Embodiment 67 A method to provide information obscured to a user through a display of a hybrid reality system (DHR), the method comprising: receiving data associated with an occluded object, the occluded object at least partially occluded by a real-world object at a position of the user; creating a display window on the DHR; obtaining a first magnification factor; rendering a first image of at least the portion of the occluded object in the display window at the first magnification factor at a first time; obtaining a second magnification factor, different than the first magnification factor; and rendering a second image of at least the portion of the occluded object in the display window at the second magnification factor at a second time after the first time.
- DHR hybrid reality system
- Embodiment 68 The method of embodiment 67, further comprising: receiving a command; determining the second magnification factor based, at least in part, on the command.
- Embodiment 69 The method of embodiment 68, wherein the command is received from the user.
- Embodiment 70 The method of embodiment 68, wherein the command is received from an external source.
- Embodiment 71 The method of embodiment 67, further comprising: obtaining a first virtual distance between the display window and the real-world object at about the first time; obtaining a second virtual distance between the display window and the real-world object at about the second time; and calculating the second magnification factor based, at least in part, on the first magnification factor, the first virtual distance, and the second virtual distance.
- Embodiment 72 The method of embodiment 71, further comprising: obtaining a first real-world distance between the user and the real-world object at about the time that the display window is created; and determining the first virtual distance based on the first real-world distance.
- Embodiment 73 The method of embodiment 71, further comprising: receiving control information related to the display window between the first time and the second time; and determining the second virtual distance based on the control information.
- Embodiment 74 The method of embodiment 67, further comprising: receiving one or more parameters for the display window; determining the first magnification factor based on the one or more parameters; and creating the display window at a position on the DHR based on the one or more parameters.
- Embodiment 75 The method of embodiment 67, further comprising: creating a view-port associated with a first portion of the real-world object, the view-port having a first size; determining the first magnification factor based on at least a first size of the display window and the first size of the view-port.
- Embodiment 76 The method of embodiment 75, further comprising receiving input from an external source to change the first size of the view port to a second size of the view port.
- Embodiment 77 The method of embodiment 75, further comprising: changing the view-port to have a second size; determining the second magnification factor based on at least the first size of the display window and the second size of the view-port.
- Embodiment 78 The method of embodiment 75, further comprising: changing the display window to have a second size; determining the second magnification factor based on at least the second size of the display window and the first size of the view-port.
- Embodiment 79 The method of embodiment 75, further comprising: moving the view-port to a second portion of the real-world object; rendering a third image of at least a different portion of the occluded object in the display window, the different portion of the occluded object occluded by the second portion of the real-world object.
- Embodiment 80 The method of embodiment 67, wherein the display window is a second display window, the method further comprising: displaying an image of the real-world object in a first display window on the DHR, the real-world object at least partially occluded from view at the position of the user; and selecting a portion of the real-world object in the first display window that is occluding the portion of the occluded object.
- Embodiment 81 The method of embodiment 80, wherein the occluded object is located within the real-world object.
- Embodiment 82 The method of embodiment 80, wherein the occluded object is located behind the real-world object.
- Embodiment 83 The method of embodiment 80, further comprising positioning the second display window on the DHR independent of a position of the first display window on the DHR.
- Embodiment 84 The method of embodiment 80, further comprising positioning the second display window to fully occlude the selected portion of the real-world object in the first window, wherein a shape of the second window corresponds to a shape of the selected portion of the real-world object.
- Embodiment 85 An article of manufacture comprising a tangible medium, that is not a transitory propagating signal, encoding computer-readable instructions that, when applied to a computer system, instruct the computer system to perform a method comprising: receiving data associated with an occluded object, the occluded object at least partially occluded by a real-world object at a position of the user; creating a display window on a display of a hybrid reality system (DHR); obtaining a first magnification factor; rendering a first image of at least the portion of the occluded object in the display window at the first magnification factor at a first time; obtaining a second magnification factor, different than the first magnification factor; and rendering a second image of at least the portion of the occluded object in the display window at the second magnification factor at a second time after the first time.
- DHR hybrid reality system
- Embodiment 86 A hybrid reality system comprising: a display; a structure, coupled to the display and adapted to position the display in a field-of-view (FOV) of the user; a processor, coupled to the display, the processor configured to: receive data associated with an occluded object, the occluded object at least partially occluded by a real-world object at a position of the user; create a display window on the display; obtain a first magnification factor; render a first image of at least the portion of the occluded object in the display window at the first magnification factor at a first time; obtain a second magnification factor, different than the first magnification factor; and render a second image of at least the portion of the occluded object in the display window at the second magnification factor at a second time after the first time.
- FOV field-of-view
- Embodiment 87 A method to provide information obscured to a user through a display of a hybrid-reality system (DHR), the method comprising: establishing a view position relative to a real-world object; receiving first data associated with an occluded object, the first data providing information about a first position, at a first time, of at least a moveable portion of the occluded object, the occluded object at least partially occluded from the view position by a surface of the real-world object at the first time; rendering a first image of at least the moveable portion of the occluded object in the first position on the display; receiving second data associated with the occluded object, the second data providing information about a second position, at a second time, of the moveable portion of the occluded object, the occluded object at least partially occluded from the view position by the surface of the real-world object at the second time; and rendering a second image of at least the moveable portion of the occluded object in the second position
- Embodiment 88 The method of embodiment 87, wherein: the first data indicates that the moveable portion of the occluded object is occluded from the view position by the surface of the real world object at the first time; and the second data indicates that the moveable portion of the occluded object is occluded from the view position by the surface of the real world object at the second time.
- Embodiment 89 The method of embodiment 87, wherein: the first data indicates that the moveable portion of the occluded object is, at least in part, not occluded from the view position by the surface of the real world object at the first time; and the second data indicates that the moveable portion of the occluded object is occluded from the view position by the surface of the real world object at the second time.
- Embodiment 90 The method of embodiment 87, the occluded object comprising a first object and a second object, and the moveable portion of the occluded object consisting of the second object.
- Embodiment 91 The method of embodiment 90, further comprising: receiving third data associated with the occluded object, the third data providing information about a third position, at a third time, of the first object without information related to the second object, the first object at least partially occluded from the view position by the surface of the real-world object at the third time; and rendering a third image of the first portion of the first object in the third position, without the second object, on the display.
- Embodiment 92 The method of embodiment 91, wherein the third time occurs before the second time; and the second object becomes occluded by a surface of the real-world object between the third time and the second time.
- Embodiment 93 The method of embodiment 87, further comprising: creating a window on the display positioned to at least partially occlude the real-world object; and rendering the second image into the window consistent with a real-world position of the second set of occluded objects relative to the view position.
- Embodiment 94 The method of embodiment 87, further comprising: receiving first sensor data from a sensor included in the occluded object, the first data comprising the first sensor data; determining the first position of the moveable portion of the occluded object based on the first sensor data; receiving second sensor data from the sensor, the second data comprising the second sensor data; and determining the second position of the moveable portion of the occluded object based on the second sensor data.
- Embodiment 95 The method of embodiment 87, further comprising: receiving first sensor data from a sensor separate from the occluded object, the first data comprising the first sensor data; determining the first position of the moveable portion of the occluded object based on the first sensor data; receiving second sensor data from the sensor, the second data comprising the second sensor data; and determining the second position of the moveable portion of the occluded object based on the second sensor data.
- Embodiment 96 The method of embodiment 87, wherein the moveable portion of the occluded object is under control of a user of the hybrid-reality system.
- Embodiment 97 The method of embodiment 96, further comprising providing guidance to the user on where to move the moveable portion of the occluded object.
- Embodiment 98 The method of embodiment 87, wherein the occluded object is associated with a body part of a user of the hybrid-reality system.
- Embodiment 99 The method of embodiment 87, further comprising: receiving sensor data from a sensor, the sensor data providing information about a third position of a second object; and determining the second position of the moveable portion of the occluded object based, at least in part, on the third position of the second object.
- Embodiment 100 The method of embodiment 99, wherein the second object is separate from the occluded object.
- Embodiment 101 The method of embodiment 99, wherein the second object is coupled to the occluded object.
- Embodiment 102 The method of embodiment 100, wherein the second object, at least in part, moves the moveable portion of the occluded object.
- Embodiment 103 The method of embodiment 99, further comprising: storing the sensor data; and computing the second position based, at least in part, on previously stored sensor data.
- Embodiment 104 An article of manufacture comprising a tangible medium, that is not a transitory propagating signal, encoding computer-readable instructions that, when applied to a computer system, instruct the computer system to perform a method comprising: establishing a view position relative to a real-world object; receiving first data associated with an occluded object, the first data providing information about a first position, at a first time, of at least a moveable portion of the occluded object, the occluded object at least partially occluded from the view position by a surface of the real-world object at the first time; rendering a first image of at least the moveable portion of the occluded object in the first position on the display; receiving second data associated with the occluded object, the second data providing information about a second position, at a second time, of the moveable portion of the occluded object, the occluded object at least partially occluded from the view position by the surface of the real-world object at the second time; and rendering a
- a hybrid-reality system comprising: a display; a structure, coupled to the display and adapted to position the display in a field-of-view (FOV) of the user; and a processor, coupled to the display, the processor configured to: establish a view position relative to a real-world object; receive first data associated with an occluded object, the first data providing information about a first position, at a first time, of at least a moveable portion of the occluded object, the occluded object at least partially occluded from the view position by a surface of the real-world object at the first time; render a first image of at least the moveable portion of the occluded object in the first position on the display; receive second data associated with the occluded object, the second data providing information about a second position, at a second time, of the moveable portion of the occluded object, the occluded object at least partially occluded from the view position by the surface of the real-world object at the second
- the singular forms “a”, “an”, and “the” include plural referents unless the content clearly dictates otherwise.
- the term “or” is generally employed in its sense including “and/or” unless the content clearly dictates otherwise.
- the term “coupled” includes direct and indirect connections. Moreover, where first and second devices are coupled, intervening devices including active devices may be located there between.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Human Computer Interaction (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Optics & Photonics (AREA)
- Geometry (AREA)
- Computing Systems (AREA)
- User Interface Of Digital Computer (AREA)
- Processing Or Creating Images (AREA)
Abstract
A first position of a hybrid reality system (DHR) relative to a first real-world object is determined and data associated with an occluded object is received. A viewport is established anchored to a first location on the first real-world object and a first image showing a first virtual view of the hidden portion of the occluded object as it would be seen from the first position of the DHR through the viewport is presented on the DHR overlaid on a first view of the first real-world object.
Description
- This application is a continuation of U.S. patent application Ser. No. 17/154,228, now U.S. Pat. No. 11,238,666, entitled Display of an Occluded Object in a Hybrid Reality System, filed on Jan. 21, 2021, which is a continuation of U.S. patent application Ser. No. 16/123,543, now U.S. Pat. No. 10,902,678, entitled Display of Hidden Information, filed on Sep. 6, 2018. The entire contents of both aforementioned applications are incorporated by reference herein for any and all purposes.
- The present subject matter relates to displaying information, and more specifically, to presenting objects and information on a computer display that are hidden or obscured in a real-world scene.
- Many situations require the presentation information to a user in a way that the user can receive the information when it is needed and ensures that the user acts accordingly. One of many different professions where this is important is for emergency responders where the ability to receive the right information at the right time can be a matter of life or death. Traditionally, emergency responders have relied on audio transmissions over a radio for a majority of their information, but that is changing with the advent of widespread wireless digital communication.
- Another new technology that is making its way into the world of emergency responders is digital displays. These displays may be on a handheld device, such as a mobile phone, or on a head-mounted display (HMD), such as a virtual reality (VR) display or an augmented reality (AR) display, which may be integrated into their emergency equipment, such as their helmet. Textual information can be presented to the emergency responder through the display and the information can be updated in real-time through the digital wireless interface from a command center or other information sources.
- The accompanying drawings, which are incorporated in and constitute part of the specification, illustrate various embodiments. Together with the general description, the drawings serve to explain various principles. In the drawings:
-
FIG. 1 shows a scene presented to a user wearing an embodiment of a head-mounted display showing personnel and objects beyond an opaque wall; -
FIG. 2A /B show an avatar presented to a user wearing an embodiment of a head-mounted display with different the positional errors; -
FIG. 3 shows a scene presented to a user wearing an embodiment of a head-mounted display showing internal details of a machine; -
FIG. 4A shows a scene presented to a user wearing an embodiment of a head-mounted display showing internal details of a machine in a separate popup X-ray window. -
FIG. 4B shows the scene ofFIG. 4A with an embodiment of hierarchical display of internal details of a machine in separate X-ray windows. -
FIG. 5 shows a scene presented to a user wearing an embodiment of a head-mounted display where details obscured in the view are enhanced; -
FIG. 6 shows a block diagram of an embodiment of an HR system; -
FIG. 7A /B show a single X-ray window rendered on a real-world machine on an embodiment of an HR system as a user perspective changes. -
FIG. 8A /B show a single X-ray window rendered on an embodiment of a head-mounted display in different apparent positions between a user and a real-world object with different magnifications. -
FIG. 8C /D show an alternative X-ray window rendered on an embodiment of a head-mounted display in associated with different positions on a real-world object. -
FIG. 9A /B show different views of a snapshot of the internals of a machine presented on an embodiment of a head-mounted display rendered as if in free space. -
FIG. 10 shows a scene presented to a user wearing an embodiment of a head-mounted display showing internal details of a machine and a hand inserted into an access panel. -
FIG. 11 shows a flowchart of an embodiment of a method for creating a magnifying glass; -
FIG. 12 shows a flowchart of an embodiment of a method for creating a 3D snapshot; -
FIG. 13 shows a flowchart of a first embodiment of a method for providing information obscured to a user through a display of a hybrid-reality system (DHR); -
FIG. 14 shows a flowchart of a second embodiment of a method to provide information obscured to a user through a DHR; -
FIG. 15 shows a flowchart of a third embodiment of a method to provide information obscured to a user through a DHR; -
FIG. 16 shows a flowchart of a fourth embodiment of a method provide information obscured to a user through a display of a hybrid-reality system (DHR); and -
FIG. 17 shows a flowchart of a fifth embodiment of a method provide information obscured to a user through a display of a hybrid-reality system (DHR). - In the following detailed description, numerous specific details are set forth by way of examples in order to provide a thorough understanding of the relevant teachings. However, it should be apparent to those skilled in the art that the present teachings may be practiced without such details. In other instances, well known methods, procedures and components have been described at a relatively high-level, without detail, in order to avoid unnecessarily obscuring aspects of the present concepts. A number of descriptive terms and phrases are used in describing the various embodiments of this disclosure. These descriptive terms and phrases are used to convey a generally agreed upon meaning to those skilled in the art unless a different definition is given in this specification. Some descriptive terms and phrases are presented in the following paragraphs for clarity.
- Hybrid-reality (HR), as the phrase is used herein, refers to an image that merges real-world imagery with imagery created in a computer, which is sometimes called virtual imagery. While an HR image can be a still image, it can also be a moving image, such as imagery created using a video stream. HR can be displayed by a traditional two-dimensional display device, such as a computer monitor, one or more projectors, or a smartphone screen. An HR system can be based on a device such as a microscope, binoculars, or a telescope, with virtual imagery is superimposed over the image captured by the device. In such HR systems, an eyepiece of a device may be considered the display of the system. HR imagery can also be displayed by a head-mounted display (HMD). Many different technologies can be used in an HMD to display HR imagery. A virtual reality (VR) HMD system may receive images of a real-world object, objects, or scene, and composite those images with a virtual object, objects, or scene to create an HR image. An augmented reality (AR) HMD system may present a virtual object, objects, or scene on a transparent screen which then naturally mixes the virtual imagery with a view of a scene in the real-world. A display which mixes live video with virtual objects is sometimes denoted AR, but for the purposes of this disclosure, an AR HMD includes at least a portion of the display area that is transparent to allow at least some of the user's view of the real-world to be directly viewed through the transparent portion of the AR HMD. The display used by an HR system represents a scene which is a visible portion of the whole environment. As used herein, the term “scene” and “field of view” (FOV) are used to indicate what is visible to a user.
- The word “occlude” is used herein to mean that a pixel of a virtual element is mixed with an image of another object to change the way the object is perceived by a viewer. In a VR HMD, this can be done through use of a compositing process to mix the two images, a Z-buffer technique to remove elements of the image that are hidden from view, a painter's algorithm to render closer objects later in the rendering process, or any other technique that can replace a pixel of the image of the real-world object with a different pixel value generated from any blend of real-world object pixel value and an HR system determined pixel value. In an AR HMD, the virtual object occludes the real-world object if the virtual object is rendered, transparently or opaquely, in the line of sight of the user as they view the real-world object. In the following description, the terms “occlude”, “transparency”, “rendering” and “overlay” are used to denote the mixing or blending of new pixel values with existing object pixel values in an HR display.
- In some embodiments of HR systems, there are sensors which provide the information used to render the HR imagery. A sensor may be mounted on or near the display, on the viewer's body, or be remote from the user. Remote sensors may include, but are not limited to, fixed sensors attached in an environment, sensors attached to robotic extensions, sensors attached to autonomous or semi-autonomous drones, or sensors attached to other persons. Data from the sensors may be raw or filtered. Data from the sensors may be transmitted wirelessly or using a wired connection.
- Sensors used by some embodiments of HR systems include, but are not limited to, a camera that captures images in the visible spectrum, an infrared depth camera, a microphone, a sound locator, a Hall effect sensor, an air-flow meter, a fuel level sensor, an oxygen sensor, an electronic nose, a gas detector, an anemometer, a mass flow sensor, a Geiger counter, a gyroscope, an infrared temperature sensor, a flame detector, a barometer, a pressure sensor, a pyrometer, a time-of-flight camera, radar, or lidar. Sensors in some HR system embodiments that may be attached to the user include, but are not limited to, a biosensor, a biochip, a heartbeat sensor, a pedometer, a skin resistance detector, or skin temperature detector.
- The display technology used by an HR system embodiment may include any method of projecting an image to an eye. Conventional technologies include, but are not limited to, cathode ray tube (CRT), liquid crystal display (LCD), light emitting diode (LED), plasma, or organic LED (OLED) screens, or projectors based on those technologies or digital micromirror devices (DMD). It is also contemplated that virtual retina displays, such as direct drawing on the eye's retina using a holographic grating, may be used. It is also contemplated that direct machine to brain interfaces may be used in the future.
- The display of an HR system may also be an HMD or a separate device, such as, but not limited to, a hand-held mobile phone, a tablet, a fixed monitor or a TV screen.
- The connection technology used by an HR system may include any physical link and associated protocols, such as, but not limited to, wires, transmission lines, solder bumps, near-field connections, infra-red connections, or radio frequency (RF) connections such as cellular, satellite or Wi-Fi® (a registered trademark of the Wi-Fi Alliance). Virtual connections, such as software links, may also be used to connect to external networks and/or external compute.
- In many HR embodiments, aural stimuli and information may be provided by a sound system. The sound technology may include monaural, binaural, or multi-channel systems. A binaural system may include a headset or another two-speaker system but may also include systems with more than two speakers directed to the ears. The sounds may be presented as 3D audio, where each sound has a perceived position in space, achieved by using reverberation and head-related transfer functions to mimic how sounds change as they move in a particular space.
- In many HR system embodiments, objects in the display may move. The movement may be due to the user moving within the environment, for example walking, crouching, turning, or tilting the head. The movement may be due to an object moving, for example a dog running away, a car coming towards the user, or a person entering the FOV. The movement may also be due to an artificial movement, for example the user moving an object on a display or changing the size of the FOV. In one embodiment, the motion may be due to the user deliberately distorting all or part of the FOV, for example adding a virtual fish-eye lens. In the following description, all motion is considered relative; any motion may be resolved to a motion from a single frame of reference, for example the user's viewpoint.
- When there is motion in an HR system, the perspective of any generated object overlay may be corrected so that it changes with the shape and position of the associated real-world object. This may be done with any conventional point-of-view transformation based on the angle of the object from the viewer; note that the transformation is not limited to simple linear or rotational functions, with some embodiments using non-Abelian transformations. It is contemplated that motion effects, for example blur or deliberate edge distortion, may also be added to a generated object overlay.
- In some HR embodiments, images from cameras, whether sensitive to one or more of visible, infra-red, or microwave spectra, may be processed before algorithms are executed. Algorithms used after image processing for embodiments disclosed herein may include, but are not limited to, object recognition, motion detection, camera motion and zoom detection, light detection, facial recognition, text recognition, or mapping an unknown environment. The image processing may also use conventional filtering techniques, such as, but not limited to, static, adaptive, linear, non-linear, and Kalman filters. Deep-learning neural networks may be trained in some embodiments to mimic functions which are hard to create algorithmically. Image processing may also be used to prepare the image, for example by reducing noise, restoring the image, edge enhancement, or smoothing.
- In some HR embodiments, objects may be detected in the FOV of one or more cameras. Objects may be detected by using conventional algorithms, such as, but not limited to, edge detection, feature detection (for example surface patches, corners and edges), greyscale matching, gradient matching, pose consistency, or database look-up using geometric hashing. Genetic algorithms and trained neural networks using unsupervised learning techniques may also be used in embodiments to detect types of objects, for example people, dogs, or trees.
- In embodiments of an HR system, object may be performed on a single frame of a video stream, although techniques using multiple frames are also envisioned. Advanced techniques, such as, but not limited to, Optical Flow, camera motion, and object motion detection may be used between frames to enhance object recognition in each frame.
- After object recognition, rendering the object may be done by the HR system embodiment using databases of similar objects, the geometry of the detected object, or how the object is lit, for example specular reflections or bumps.
- In some embodiments of an HR system, the locations of objects may be generated from maps and object recognition from sensor data. Mapping data may be generated on the fly using conventional techniques, for example the Simultaneous Location and Mapping (SLAM) algorithm used to estimate locations using Bayesian methods, or extended Kalman filtering which linearizes a non-linear Kalman filter to optimally estimate the mean or covariance of a state (map), or particle filters which use Monte Carlo methods to estimate hidden states (map). The locations of objects may also be determined a priori, using techniques such as, but not limited to, reading blueprints, reading maps, receiving GPS locations, receiving relative positions to a known point (such as a cell tower, access point, or other person) determined using depth sensors, WiFi time-of-flight, or triangulation to at least three other points.
- Gyroscope sensors on or near the HMD may be used in some embodiments to determine head position and to generate relative motion vectors which can be used to estimate location.
- In embodiments of an HR system, sound data from one or microphones may be processed to detect specific sounds. Sounds that might be identified include, but are not limited to, human voices, glass breaking, human screams, gunshots, explosions, door slams, or a sound pattern a particular machine makes when defective. Gaussian Mixture Models and Hidden Markov Models may be used to generate statistical classifiers that are combined and looked up in a database of sound models. One advantage of using statistical classifiers is that sounds can be detected more consistently in noisy environments.
- In some embodiments of an HR system, eye tracking of one or both viewer's eyes may be performed. Eye tracking may be used to measure the point of the viewer's gaze. In an HMD, the position of each eye is known, and so there is a reference frame for determining head-to-eye angles, and so the position and rotation of each eye can be used to estimate the gaze point. Eye position determination may be done using any suitable technique and/or device, including, but not limited to, devices attached to an eye, tracking the eye position using infra-red reflections, for example Purkinje images, or using the electric potential of the eye detected by electrodes placed near the eye which uses the electrical field generated by an eye independently of whether the eye is closed or not.
- In some HR embodiments, input is used to control the HR system, either from the user of the HR system or from external actors. The methods of input used varies by embodiment, and each input type may control any or a subset of an HR system's function. For example, in some embodiments gestures are used as control input. A gesture may be detected by using other systems coupled to the HR system, such as, but not limited to, a camera, a stereo camera, a depth camera, a wired glove, or a controller. In some embodiments using a camera for gesture detection, the video stream is analyzed to detect the position and movement of an object, for example a hand, a finger, or a body pose. The position and motion can be used to generate a 3D or 2D path and, by using stochastic or pattern matching techniques, determine the most likely gesture used.
- In another example embodiment, the user's head position and movement may be used as a gesture or direct control. The head position and movement may be determined by gyroscopes mounted into an HMD. In another example, a fixed source such as an electromagnetic beam may be affixed to a user or mounted in an HMD; coupled sensors can then track the electromagnetic beam as the user's head is moved.
- In yet other example embodiments, the user may have a touch-pad or a plurality of touch sensors affixed to the body, for example built-in to a glove, a suit, or an HMD, coupled to the HR system. By touching a specific point, different input data can be generated. Note that the time of a touch or the pattern of touches may also generate different input types. In some technologies, touchless sensors using a proximity to the sensor can be used.
- In some embodiments a physical input device is coupled to the HR system. The physical input device may be a mouse, a pen, a keyboard, or a wand. If a wand controller is used, the HR system tracks the position and location of the wand as well as presses of any buttons on the wand; the wand may be tracked using a camera, for example using object boundary recognition, using marker tracking where a specific shape or marker is detected in each video frame, or by wired/wireless data from the wand received by the HR system. In other example embodiments, a physical input device may be virtual, where a device is rendered on the head-mounted display and the user interacts with the virtual controller using other HR systems, such as, but not limited to, gaze direction, hand tracking, finger tracking, or gesture detection. In embodiments which use gaze direction as input, interaction with virtual menus rendered on the display may be used.
- Further, in another example embodiment, a backwards-facing camera mounted in an HMD may be used to detect blinking or facial muscle movement. By tracking blink patterns or facial muscle motion, input gestures can be determined.
- In some embodiments, breathing patterns may be detected using a pressure sensor mounted in a breathing system coupled to the HR system to detect changes in pressure. Breath patterns such as, but not limited to, blowing softly, exhaling hard, or inhaling suddenly may be used as input data for an HR control system.
- In yet other example embodiments, sounds may be detected by one or more microphones coupled to the HR system. Specific sounds, such as, but limited to, vocalizations (e.g. scream, shout, lip buzz, snort, whistle), stamping, or clapping, may detected using stochastic or pattern matching techniques on received audio data. In some embodiments, more than one microphone may be used to place a sound in a location, allowing the position of a sound, for example a clap, to provide additional input control data. In some embodiments, voice control using natural language is used; speech recognition techniques such as trained neural networks or hidden Markov model algorithms are used by an HR system to determine what has been said.
- It is anticipated that direct neural interfaces may be used in some embodiments to control an HR system.
- Any input to the HR system may be used for any purpose, depending on the embodiment. For example, sounds, eye movement and/or direction, gestures, touch inputs, other physical human input devices (e.g. a keyboard, mouse, or the like), may be used for controlling the HR system, including but not limited to controlling the size, direction, color, or other expressions of video images of virtual objects displayed in the display screen, switching on and off state of the HR system, changing the user interface and settings of the display screen, switching running applications, or selection/deselection of target objects to be virtualized.
- Turning now to the current disclosure, systems that display HR imagery are becoming increasingly common and are making their way from entertainment and gaming into industrial and commercial applications. Examples of systems that may find HR imagery useful include aiding a person doing a task, for example repairing machinery, testing a system, or responding to an emergency.
- Many of the same environments where HR imagery might be used also provide information to a user. This information may be associated with real objects in the environment or may be related to the environment as a whole, for example an ambient or average value. In other cases, the information to be provided to the user is unrelated to the real environment they are working in. Providing the various types of information to the user in a way that can be readily understood by the user and is not confusing, distracting or obscuring details that the user needs can be a challenge.
- In an HR system which aids a person doing a task, for example repairing machinery, testing a system, performing routine maintenance, or responding to an emergency, there may be areas of the environment that cannot be seen because of a visual impairment such as a wall, an opaque cover, lack of light, or smoke.
- The X-ray window is an artificial object created as an overlay on the screen used to show objects and information in the environment that cannot be seen or are obscured. The X-ray window, as the term is used herein, does not necessarily have anything to do with electromagnetic radiation in the X-ray spectrum, but simply refers to a virtual object displayed for the user which shows a representation of one or more objects that would otherwise be hidden from the view of the user. The X-ray window may cover the whole field-of-view, enhance only a portion of the field-of-view, or may be added to an object that is being displayed in a separate window on the display.
- The X-ray window shows details of, and information related to, occluded or obscured objects. The details may be rendered schematically or photo-realistically, but the displayed representation adds details that would otherwise be obscured, for example internal components of a covered machine or a floor collapse just beyond the field-of-view or the position of personnel behind an opaque barrier. A visible object may be identified by user input, object recognition by a camera or other sensor, self-identification through an electronic message such as an RFID tag response or a computer network message, or any other way of identifying the object. The identity may include a model designation, a serial number, an address, or any other information that can be used to clearly identify objects hidden by the object, such as internal structure or nearby objects. The visible object may not be identified in all cases, but simply may be treated as an unidentified object occluding the view of hidden structure and details known to the HR system.
- In some embodiments, the information used to render hidden structure and detail as part of the X-ray window may be obtained from schematics or blueprints, for example the internal schematics of an engine or the position of air ducts, wiring, or plumbing in a building. Additionally, in some example embodiments, the information used to render the hidden structure and detail as part of the X-ray window may be obtained by using object recognition and data from one or more sensors in the current environment, such as, but not limited to, building security cameras, sensors or cameras attached to other personnel, sensors or cameras attached to autonomous or semi-autonomous drones, or robotic extensions which may place sensors or cameras into spaces obscured by a barrier. Data from sensors may be received in real-time or near real-time (which are considered to be equivalent for the purposes of this disclosure, including the claims), or may be received in a delayed fashion. In some embodiments, the data from the sensors may be received in packets that may be buffered during transmission, so the delay in the data from the sensors may be non-uniform. Additionally, in some embodiments, the information used to render the hidden structure and detail as part of the X-ray window may be obtained from historical data, for example maps from a previous scouting mission or from video streams available before smoke obscured the view. Note that the hidden structure and detail may be computed or rendered locally or directly transmitted to a head-mounted display after being generated or rendered using remote computing resources.
- In some embodiments, the hidden or obscured details may be presented as a window into a real-world object. The X-ray window may be considered fixed to the object in that the details are rendered at the correct perspective if there is movement. In some embodiments, the X-ray window may be fixed to the HMD user's perspective, so the X-ray window moves across the object if there is motion, in effect allowing internal details to be scanned. The shape and size of the X-ray window, or viewport, may be rendered in any manner, such as, but not limited to, the whole object, a rectilinear shape, an object cut-away, or an organic shape. The apparent position in 3D space of the X-ray window may be touching the object, on the object or away from the object, for example the window may be presented as a view-port on the surface of the object or presented as a window in a plane near the object. In some embodiments, the X-ray window may be rendered as a window that can be moved in a path that changes the distance to the object; as the window is moved, a magnification factor is applied to the internal details in the window.
- In some embodiments, relative motion, as described herein, may be used to update the rendering of an X-ray view. For example, when a user of an HR system observes a real-world scene, relative motion may update the perspective of the rendered detail so appearing fixed in real-world space. In some embodiments, relative rotation and/or linear movement may be used as input commands to manipulate the X-ray view, for example rotating, looking behind or enlarging specific details. In one example embodiment, a “snap-shot” of the X-ray rendering may be taken to allow the user to “pull” the snapshot into a real-world space and so move around the snapshot to observe extra details hidden by the limited perspective of being inside or behind a physical barrier. Note that the snap-shot may also be rotated or magnified using other input commands to the HR system. After viewing the snapshot, it may be removed on user command—the previous X-ray view may return or finish at that time.
- In example embodiments, the X-ray view may render detail that represents hidden real-world data; note that the rendering may be photo-realistic, a non-realistic representation such as a schematic rendering such a wire-model or an avatar, a two-dimensional representation of the occluded object generated from a fixed perspective, or any other type of representation of the hidden real-world data or object. In some embodiments, the real-world detail rendered by the X-ray view may also be enhanced by the addition of virtual objects, such as, but not limited to, alerts, timers, pop-up data, associated haptic stimuli, associated sounds such as pre-recorded audio clips, or directions for the user. The virtual objects may be controlled in any manner using input control as described herein.
- Further, in some embodiments the X-ray view may also support further X-ray views within hidden components. For example, a machine with an opaque cover may have an internal cylinder showing points of electrical connections. The X-ray view may also allow the cylinder to support an X-ray view, where the location of internal sub-components can be shown. It is anticipated that a hierarchy of X-ray views may be constructed, with the user covering and uncovering levels of hierarchy using input commands.
- In some embodiments, the X-ray view may be generated using a live camera feed, for example from cameras in the environment, cameras on a drone, or cameras on a robotic arm. Since the perspective correction of a live video stream may be too computationally complex in near real-time, only simple perspective changes may be possible.
- In example embodiments, real-world objects that were previously visible may become hidden, for example inserting a hand, a tool, or a robotic extension into a hidden space through an access panel. The HR system may track the position of the inserted object and show it in correct perspective in an X-ray view. For example, the position of a gloved hand may be tracked by an HR system and the hand shown in an X-ray view so that hidden objects can more easily be manipulated. The tracking of the hidden object can be done using any suitable mechanism, including, but not limited to, location sensors on the object, geometric analysis of the position of a structure supporting the object, or external sensors that may be able to track the object.
- In some embodiments, hidden objects in an X-ray view may move. The new position may be calculated by the HR system and the rendering updated. For example, personnel behind a wall may move position as determined by attached GPS locators. In another example, a ball bearing may be pushed into a race or a screw turned and the new position computed using simple Newtonian mechanics. In yet another example, the new position of objects may be computed by using view changes of a camera attached to a drone or a robotic arm—changes in camera view may be deliberate, for example using a motor to jitter the camera position.
- In example embodiments, the X-ray view may be manipulated by an external actor, such as, but not limited to, commanding personnel, an expert guide, or an AI system. In some embodiments, the details shown in an X-ray view may be changed as the user performs a task, such as, but not limited to, highlighting the next object to be manipulated, adding instructions to an object, or only rendering photo-realistic details in the area to be addressed at that time.
-
FIG. 1 shows how one embodiment of the HR system displays anX-ray window 110 added to a real-world field-of-view 102 in a head-mounteddisplay 105 including anopaque wall 150. The visible objects in the real world, such as theopaque wall 150, may be rendered from a model, shown as a video from a camera, or passed through a transparent portion of the head-mounteddisplay 105, depending on the embodiment. Shown in the computer-generatedX-ray window 110 arepersonnel user 100 wearing the head-mounteddisplay 105. TheX-ray window 110 may have any shape, including a rectangular shape, a shape of a regular polygon, a circle, an ellipse, an asymmetric shape, a continuous curve shape, an irregular polygonal shape, or any other shape, depending on the embodiment. In some embodiments, theX-ray window 110 may correspond to the shape of the real-world object 150. TheX-ray window 110 may be positioned to act as a cut-away view of an occluded space behind the real-world object 150 or may be a separate window, depending on the embodiment. Cameras in the space behindwall 150 and/or personnel locators, for example relative positions determined by infra-red depth sensors or absolute positions from GPS, are used to determine the size and position ofpersonnel occluded personnel wall 150 was not present. Theoccluded personnel occluded personnel X-ray window 110 may be initiated by a trigger event caused byuser 100,occluded personnel occluded personnel user 100 the progress of their task, and may use their work terminal to send a notice to theuser 100 and initiate theX-ray window 110. Or in some embodiments, if theuser 100 moves to within a predetermined threshold distance, such as 10 meters, of thewall 150, then X-raywindow 110 may be automatically initiated. In some embodiments, the HR system may initiate additional functions and/or run other applications upon initiation of theX-ray window 110. -
FIG. 2A shows an example embodiment of a HR system rendering anavatar 210A in anX-ray view 200A. The position, size and orientation ofavatar 210A may be determined using cameras in the hidden space and/or locators attached to the person represented byavatar 210A, for example relative positions determined by infra-red depth sensors or absolute positions from GPS.X-ray view 200A also includes position error bars 220A shown as concentric circles theavatar 210A stands on. The position of theoutermost error bars 220A shows the worst-case placement of the avatar. -
FIG. 2B shows an example embodiment of a HR system rendering anavatar 210B in anX-ray view 200B at a different time thanX-ray view 200A. Similar to the vignette shown inFIG. 2A , the position, size and orientation ofavatar 210B may be determined using cameras in the hidden space and/or locators attached to the person represented byavatar 210B, for example relative positions determined by infra-red depth sensors or absolute positions from GPS. UpdatedX-ray view 200B also includes position error bars 220B shown as concentric circles theavatar 210B stands on. The position of the outermost error bars 220B shows the worst-case placement of the avatar. Note that althoughavatar 220B is closer to the user at the time ofFIG. 2B thanFIG. 2A , the position uncertainty is greater than forFIG. 2A , as shown by the wider error bars 220B. The position uncertainty may be larger because of smoke or other environmental factors, different accuracy of sensors in different areas, an estimation rather than measurement of the position ofavatar 220B, or any other factor that can affect the accuracy of the determination of the position ofavatar 200B. - One display metaphor, the concentric circles, is shown in
FIG. 2A /B for indicating an uncertainty in the position. Other embodiments may use other mechanisms to indicate position uncertainty to the user, including, but not limited to, using fuzzy edges on the avatar, adding a halo around the avatar, having different size platforms for an avatar, or by shaking the avatar edges by an amount in time on subsequent video frames. -
FIG. 3 shows how one embodiment of the HR system shows anX-ray window 310 added to a real-world rendering of amachine 350 enclosed by an opaque cover on each side and shown on a display of the HR system. Included onmachine 350 is aphysical access panel 320 opened using knob 324 ondoor 322. Withinmachine 350 are several hidden components, includingcylinder 330, block 332,rod 334,rod 336, and gears 340, 342, 344. The location ofcomponents cylinder 330, block 332,rod 334,rod 336, and gears 340, 342, 344, may be obtained from schematics ofmachine 350 transmitted to the HR system worn by user 300 after themachine 350 is identified.Components cylinder 330, block 332,rod 334,rod 336, and gears 340, 342, 344 are withinX-ray window 310 from the perspective of user 300 and so are rendered within thewindow 310. Note that theX-ray window 310 does not include some portions ofcylinder 330,rod 334,rod 336, andgear 344. Those portions that are not inwindow 310 are occluded by the cover of themachine 350 and are shown by dottedline groups FIG. 3 for clarity but are not be rendered by this embodiment of the HR system. Note that the correct positions and occluding nature ofcomponents cylinder 330, block 332,rod 334,rod 336, and gears 340, 342, 344 are rendered inwindow 310; for example,gear 340 occludes a portion ofrods machine 350, the user can insert their hand 300 into the access panel in direction ofarrow 360 to manipulate the machine, for example oiling gears 340, 342, 344. This allows tasks to be performed inside of themachine 350 safely and with confidence.X-ray window 310 may be initiated by a trigger event, such as opening thephysical access panel 320. If theX-ray window 110 is initiated automatically through other actions, such as opening thephysical access panel 320, the user can naturally, and without any additional action, view inside themachine 350 throughX-ray window 110. In some embodiments, the HR system may initiate additional functions and/or run other applications upon initiation of theX-ray window 310. - In some embodiments, virtual objects may be attached to the rendered occluded objects. The system may automatically attach a virtual object, and/or a user may determine which virtual object to attach to a rendered occluded object. The virtual objects can be used for any purpose but can include tags to identify an occluded object, such as the
GEAR1 tag 352 attached togear 340. The tags may provide information about the occluded object such as a name of the object, a part number of an object, procurement information for a replacement for the object, diagnostic procedures for the object, or any other type of information related to the object. - In some embodiments, the virtual objects may be attached to monitor a status of an occluded object, such as indicating that a sound made by the
gear 342 should be monitored by placing avirtual stethoscope 354 ongear 342 or that a temperature ofcylinder 330 should be monitored by placing avirtual thermometer 356 oncylinder 330. Data may be collected directly from the occluded object, for example from sensors monitoring the occluded object, or from an external source. Some or all of the data may be used to generate the information provided by the virtual object on the HMD based on a type of virtual object selected and/or a placement of the virtual object, such as showing a digital read-out of the temperature of the occluded object next to thevirtual thermometer 356 at the location of thevirtual thermometer 356, changing a fill amount, a shape or a color of the virtual object, or playing the sound made bygear 342 on an audio output device heard by the user. In some embodiments the data may be logged and stored by the HR system and/or provided to other users and/or software applications for analysis.X-ray window 310 may be initiated by a trigger event, such as receiving signals transmitted from sensors monitoring the occluded object or an external source. When receiving signals that indicate a certain parameter, such as temperature, humidity, noise, gas concentration, exceeds a predetermined threshold, the HR system may automatically, without any additional action by a user, initiateX-ray window 310. Also, when receiving such signals, the HR system may initiate a part of its functions or start to run certain types of applications thereon. -
FIG. 4A shows how one embodiment of the HR system shows anX-ray window 420 added to aview 402 presented to auser 400 wearing a head-mounted display (HMD) 405. Theview 402 includes a real-world machine 410 and a view of theinternal components 440 of themachine 410 presented as a separatepopup X-ray window 420. Inpopup window 420, the real-world machine 410 is shown as renderedmachine 430; note that the renderedmachine 430 may or may not track the position of real-world machine 410 if there is relative motion. Inpopup window 420,internal components 440 are rendered withinmachine 430 with respect to the perspective ofmachine 430. The presence, the relative location and size ofinternal components 440 may be obtained from schematics ofmachine 410 transmitted to the HR system worn byuser 400 based, for example, on identification of themachine 410 or the location ofmachine 410. Sinceinternal components 440 ofmachine 410 are shown, representation ofmachine 430 may be a simple wire-frame model in at least some embodiments.X-ray window 420 may be initiated and/or controlled by a trigger event. For example, in some cases, theHMD 405 may contain a sensor to detect a gesture by user, such as ToF (Time of Flight) sensor which detects motion ofuser 400. By detecting the motion ofuser 400, such as hand movement,X-ray window 420 may be initiated. For example, if auser 400 claps their hands,X-ray window 420 may be initiated. Also, in some cases, auser 400 may wear a glove or ring to detect hand movement. By detecting hand movement of theuser 400,X-ray window 420 may be controlled in some embodiments. -
FIG. 4B shows the scene ofFIG. 4A with an embodiment of a hierarchical display of internal details of a machine in separate X-ray windows. Theinternal components 440 of themachine 410 are shown inX-ray window 420 inside of renderedmachine 430. Theinternal components 440 include theblock 442 and thepipe 444. The user has created avirtual window 477 on the view ofblock 442 which created a second pop-upX-ray window 470 showing theinternal components block 442 which would be visible throughvirtual window 477. Any number of levels of hierarchy may be created in embodiments to allow occluded components to be shown no matter how many layers of structure may interfere with their visibility. -
FIG. 5 shows how one embodiment of the HR system shows anX-ray window 520 added to a real-world rendered field-of-view 510 shown a display of the HR system. In field ofview 510, there is awall 530,hazard 540 andparticulate matter 550 obscuring objects in the field-of-view 510, for example smoke or water droplets. The positions of thewall 530 obscured byparticulate matter 550 are shown by dottedlines 535. The positions of thehazard 540 obscured byparticulate matter 550 are shown by shadedarea 545. Depending on environmental factors and the density of theparticulate matter 550, the portions of thewall 530 andhazard 540 may be only partially visible or may not be visible in the field ofview 510. Within theX-ray window 520,wall portions 530 andhazard portions 540 are shown clearly rendered by the HR system touser 500, with all other details in the field ofview 510 obscured byparticulate matter 550. The position and size ofwall 530 andhazard 540 may be estimated from maps obtained from data provided before theparticulate matter 550 was present. In other example embodiments, the position ofwall 530 may be obtained from building blueprints or from personnel present at an earlier time. In other example embodiments, the position ofhazard 540 may be obtained from other sensors, for example IR cameras, or from other personnel, for example people behind thewall 530 or on the floor below who have an unobscured view.X-ray window 520 may be initiated and/or controlled by a trigger event. For example, in some cases, whenhazardous situation 540 is detected in the obscured area, theX-ray window 520 may be automatically initiated. The hazardous situation, such as fire, high temperature, air pollution, gas leak, or dangerous liquid leak, may be detected by a sensor located in occluded area. -
FIG. 6 is a block diagram of an embodiment of anHR system 600 which may have some components implemented as part of a head-mounted assembly (HMD). TheHR system 600 may be considered a computer system that can be adapted to be worn on the head, carried by hand, or otherwise attached to a user. In the embodiment of theHR system 600 shown, astructure 605 is included which is adapted to be worn on the head of a user. Thestructure 605 may include straps, a helmet, a hat, or any other type of mechanism to hold the HR system on the head of the user as a HMD. - The
HR system 600 also includes adisplay 650 positioned in a field-of-view (FOV) of the user. Thestructure 605 may position thedisplay 650 in the field of view of the user. In some embodiments, thedisplay 650 may be a stereoscopic display with two separate views of the FOV, such asview 652 for the user's left eye, and view 654 for the user's right eye. The twoviews display 650. In some embodiments, thedisplay 650 may be transparent, such as in an augmented reality (AR) HMD. In systems where thedisplay 650 is transparent, the view of the FOV of the real-world as seen through thedisplay 650 by the user is composited with virtual objects that are shown on thedisplay 650. The virtual objects may occlude real objects in the FOV as overlay elements and may themselves be transparent or opaque, depending on the technology used for thedisplay 650 and the rendering of the virtual object. A virtual object, such as an overlay element, may be positioned in a virtual space, which could be two-dimensional or three-dimensional, depending on the embodiment, to be in the same position as an associated real object in real space. Note that if thedisplay 650 is a stereoscopic display, two different views of the overlay element may be rendered and shown in two different relative positions on the twoviews - In some embodiments, the
HR system 600 includes one or more sensors in asensing block 640 to sense at least a portion of the FOV of the user by gathering the appropriate information for that sensor, for example visible light from a visible light camera, from the FOV of the user. Any number of any type of sensor, including sensors described previously herein, may be included in thesensor block 640, depending on the embodiment. In some embodiments, sensor(s) in thesensing block 640 may be configured to detect a motion of the user. The motion of a hand, finger, head, eye, arm, leg, body, and/or any other body part of the user or object held or moved by the user may be detected by the sensor(s) in thesensing block 640. Theprocessor 610 may then use the geometry, appearance, gesture and/or location of the movement to instantiate and/or control an X-ray window presented on thedisplay 650. - The
HR system 600 may also include an I/O block 620 to allow communication with external devices. The I/O block 620 may include one or both of awireless network adapter 622 coupled to anantenna 624 and anetwork adapter 626 coupled to awired connection 628. Thewired connection 628 may be plugged into a portable device, for example a mobile phone, or may be a component of an umbilical system such as used in extreme environments. - In some embodiments, the
HR system 600 includes asound processor 660 which takes input from one ormicrophones 662. In someHR systems 600, themicrophones 662 may be attached to the user. External microphones, for example attached to an autonomous drone, may send sound data samples through wireless or wired connections to I/O block 620 instead of, or in addition to, the sound data received from themicrophones 662. Thesound processor 660 may generate sound data which is transferred to one ormore speakers 664, which are a type of sound reproduction device. The generated sound data may be analog samples or digital values. If more than onespeaker 664 is used, the sound processor may generate or simulate 2D or 3D sound placement. In someHR systems 600, a first speaker may be positioned to provide sound to the left ear of the user and a second speaker may be positioned to provide sound to the right ear of the user. Together, the first speaker and the second speaker may provide binaural sound to the user. - In some embodiments, the
HR system 600 includes astimulus block 670. Thestimulus block 670 is used to provide other stimuli to expand the HR system user experience. Embodiments may include numerous haptic pads attached to the user that provide a touch stimulus. Embodiments may also include other stimuli, such as, but not limited to, changing the temperature of a glove, changing the moisture level or breathability of a suit, or adding smells to a breathing system. - The
HR system 600 may include aprocessor 610 and one ormore memory devices 630, which may also be referred to as a tangible medium or a computer readable medium. Theprocessor 610 is coupled to thedisplay 650, thesensing block 640, thememory 630, I/O block 620,sound block 660, andstimulus block 670, and is configured to execute theinstructions 632 encoded on (i.e. stored in) thememory 630. Thus, theHR system 600 may include an article of manufacture comprising atangible medium 630, that is not a transitory propagating signal, encoding computer-readable instructions 632 that, when applied to acomputer system 600, instruct thecomputer system 600 to perform one or more methods described herein, thereby configuring theprocessor 610. - While the
processor 610 included in theHR system 600 may be able to perform methods described herein autonomously, in some embodiments, processing facilities outside of that provided by theprocessor 610 included inside of theHR system 600 may be used to perform one or more elements of methods described herein. In one non-limiting example, theprocessor 610 may receive information from one or more of thesensors 640 and send that information through thewireless network adapter 622 to an external processor, such as a cloud processing system or an external server. The external processor may then process the sensor information to identify an object in the FOV and send information about the object, such as its shape and location in the FOV and/or information about the internal structure of the object, to theprocessor 610 through thewireless network adapter 622. Theprocessor 610 may then use the geometry, appearance and location of the object in the FOV as well as the internal structure of the object, to render an X-ray view of the object as an overlay element and show the overlay element on thedisplay 650. - In some embodiments, the
instructions 632 may instruct theHR system 600 to detect one or more objects in a field-of-view (FOV) using at least onesensor 640 coupled to thecomputer system 600. Theinstructions 632 may further instruct theHR system 600 to determine the world position of the one or more objects using at least onesensor 640. Theinstructions 632 may instruct theHR system 600 to use object detection to determine if one of the objects is a hand and so determine the path of the hand over time using time-based samples from the at least onesensor 640. Theinstructions 632 may further instruct theHR system 600 to match the path of the hand to known path shapes using stochastic methods to determine a gesture. If a gesture is recognized, theinstructions 632 may instructHR system 600 to generate an input event of a specific type. - In some embodiments, the
instructions 632 may instruct theHR system 600 to detect one or more objects in a field-of-view (FOV) using at least onesensor 640 coupled to thecomputer system 600. Theinstructions 632 may further instruct theHR system 600 to determine the world position of the one or more objects using at least onesensor 640. Theinstructions 632 may instruct theHR system 600 to create an X-ray window on one or more of the objects and establish a view position for the X-ray window on an object. Theinstructions 632 may further instruct theHR system 600 to receive data associated with one or more at least partially occluded objects at the view position. Finally, theinstructions 632 may further instruct theHR system 600 to render the one or more partially occluded objects in the created X-ray window. -
FIG. 7A shows a single X-ray window 710A rendered on a real-world machine presented on an embodiment of an HR system inview 701A. The real-world machine 700 is completely enclosed byopaque covers internal components 720, such asgears cylinder 728, blocks 730, 732, androds internal components 720 are presented in the correct position and perspective; for example, block 730 is partially occluded bygear 724 and only part ofgear 726 can be seen in window 710A. In some embodiments, the X-ray window 710A may be initiated and/or controlled by a trigger event, such as a hand gesture by the user using theirright hand 752 andleft hand 754. Thehands view 701A. As one non-limiting example gesture, the user may use theirhands 753, 754 to create a rectangular shape. In response to such a gesture, the HR system may initiate the X-ray window 710A. The location of X-ray window 710A may be determined based on the relative location of thehands machine 700 in theview 701A. In an alternative embodiment, the location of theX-ray window 710B may be controlled by the relative location ofhands 752, 753 to a sensor of the HR system.FIG. 7B shows themachine 700 ofFIG. 7A presented on an embodiment of a head-mounted display with a renderedX-ray window 710B from a different user perspective inview 701B. Similar to the vignette inFIG. 7A , the addedX-ray window 710B is maintained as user perspective is changed. Note that in the example embodiment, theX-ray window 710B remains perpendicular to the user's eye-line which may be determined by the position of an HMD worn by the user. In other embodiments, the X-ray window 710A may remain in a fixed position with respect to the real-world machine 700 (e.g. appearing as anchored to a location on the real-world machine 700), acting as a view-port into themachine 700, with the determination of whichinternal components 720 are visible dependent upon the relative positions of the user and the X-ray window 710A. The change in position ofX-ray window 710B from the position ofFIG. 7A renders theinternal components 720 ofmachine 700 from the new user perspective and location. Note that in some embodiments, the change in position ofX-ray window 710B may be made using specific commands to the HR system, thus not requiring the user of the HR system to move, although the user perspective may change due to movement by the user, various gestures, or other command to the HR system. -
FIG. 8A shows asingle X-ray window 820A rendered on an embodiment of a head-mounted display (HMD) in an apparent position between a user and a real-world object. In the real-world, there is auser 800 and amachine 810 which is completely enclosed by opaque covers. On the display of the HMD worn byuser 800, aview 802A includes anexample X-ray window 820A which has been rendered between theuser 800 andmachine 810. In the example embodiment, theX-ray window 820A is opaque and may occlude or partially occlude real-world objects. In other example embodiments, the X-ray window may be transparent with only some real-world objects partially occluded. InX-ray window 820A, the HR system that includes the HMD renders arepresentation 812A ofmachine 810 at a specific magnification determined by the HR system. Additionally,X-ray window 820A renders asub X-ray window 830A, which revealsinternal components 840A. Note thatinternal components 840A are rendered at the correct perspective and location with respect torepresentation 812A and at the same magnification. -
FIG. 8B shows asingle X-ray window 820B rendered on an embodiment of a head-mounted display in an apparent position between auser 800 and a real-world object 810 with magnification. Similar to the vignette inFIG. 8A ,X-ray window 820B is rendered as an opaque window betweenuser 800 and real-world machine 810 in aview 802B shown on the HMD. At the time ofFIG. 8B , theX-ray window 820B is in an apparent position closer tomachine 810 compared to the time ofFIG. 8A . The position of theX-ray window 820B may be manipulated by theuser 800 using hand gestures, eye gestures, voice commands, human input devices coupled to the HR system such as a keyboard, traditional mouse, or 3D input device, or any other type of input to the HR system. Note thatX-ray window 820B partially occludesmachine 810 at the new position. In the example embodiment, the HR system computes a new magnification factor based on the new position ofX-ray window 820B. InX-ray window 820B, the HR system renders arepresentation 812B ofmachine 810 at the new magnification determined by the HR system. Additionally,X-ray window 820B renders asub X-ray window 830B, which revealsinternal components 840B. Note thatinternal components 840B are rendered at the correct perspective and location with respect torepresentation 812B and at the same magnification. -
FIG. 8C shows anX-ray window 820C rendered inview 802C on an embodiment of a head-mounted display of an HR system. TheX-ray window 820C showsinternal structure 840C of the real-world machine 810 behind thevirtual window 830C. Theuser 800 may provide input to the HR system to change the size and position of thevirtual window 830C to show different views and/or magnifications of the internal structure. The portion of the internal structure of themachine 810 occluded by thevirtual window 830C is then rendered into theX-ray window 820C with proper magnification, and perspective. In some embodiments, the size and position of theX-ray window 820C may also be changed by theuser 800 independently from the size and position of thevirtual window 830C. -
FIG. 8D shows anX-ray window 820D rendered inview 802D on an embodiment of a head-mounted display of an HR system. The user has changed the size and position of thevirtual window 830D to be smaller and to include only a center portion of thevirtual window 830C shown inFIG. 8C . TheX-ray window 820D is in the same position and has the same size as theX-ray window 820C ofFIG. 8C , so it shows a magnified view of theinternal structure 840D of the real-world machine 810 that is occluded byvirtual window 830D. Note that in some embodiments, the amount of magnification may be altered by either changing the size or position of thevirtual window 830D, or by issuing input commands specific to theX-ray window 820D. -
FIG. 9A shows a snapshot of theinternals machine 910 presented in aview 902A on an embodiment of a head-mounted display rendered as if in free space. At the time ofFIG. 9A , the example HR system has taken a first “snapshot” 940A ofinternal components machine 910. Prior to the time ofFIG. 9A , the HR system had rendered anX-ray window 920 onmachine 910 on the HMD ofuser 900. During rendering ofX-ray window 920,internal components machine 910. When thefirst snapshot 940A is created by the HR system,component 942 is rendered in free space asrepresentation 942A in the same orientation asrepresentation 942. Similarly,component 944 is rendered in free space asrepresentation 944A in the same orientation asrepresentation 944. Once the snapshot has been captured, theX-ray window 920 may be removed fromview 902A or retained, depending on user preferences and/or commands supported by the embodiment. Note that the magnification factor and apparent position ofsnapshot 940A may take any initial value as determined by the HR system embodiment. Note further that the snapshot in some embodiments will maintain the correct relative positions betweenrepresentations -
FIG. 9B shows a snapshot of theinternals machine 910 presented in aview 902B on an embodiment of a head-mounted display rendered as if in free space with a rotation applied. Similar to the vignette inFIG. 9A , asnapshot 940B is rendered on the HMD embodiment worn byuser 900.FIG. 9B is at an instant of time after the initial creation ofFIG. 9A , and the user has rotated the snapshot in the direction ofarrow 950. The rotation may be due touser 900 moving around astatic snapshot 940B,user 900 issuing commands to the HR system, or any other suitable mechanism. Note that the orientation ofrepresentations snapshot 940B is rendered at the new perspective and position maintaining the relative positions ofrepresentations rotational user 900 movement and/or commands issued to the HR system. It is also contemplated that the snapshot may be manipulated using other interactions that aid theuser 900 in obtaining information aboutinternal components machine 910, such as, but not limited to, snapshot magnification, pulling apart snapshot components, hiding one or more snapshot components, or changing the appearance (e.g. color, transparency, wire-frame) of one or more snapshot components. -
FIG. 10 shows a scene presented to a user wearing an embodiment of a head-mounted display showing internal details of amachine 1050 and ahand 1070 inserted into anaccess panel 1020. The scene ofFIG. 10 shows anX-ray window 1010 added to a view of a real-world machine 1050 enclosed by anopaque cover machine 1050 is anaccess panel 1020 opened usingknob 1024 ondoor 1022. Withinmachine 1050 are several hidden components, includingcylinder 1030,block 1032,rods components cylinder 1030,block 1032,rods machine 1050 transmitted to the HR system based on, for example, an identification or location ofmachine 1050. At least portions ofcomponents cylinder 1030,block 1032,rods X-ray window 1010 and so are rendered within thewindow 1010. Note that thewindow 1010 occludes some portions ofcylinder 1030,rod 1034,rod 1036, andgear 1042, and that the relative positions ofcomponents cylinder 1030,block 1032,rods gear 1040. - At the time of
FIG. 10 , theuser 1060 is manipulating internal components by insertinghand 1068 wearingglove 1070 into theopen access panel 1020. A portion of user'sarm 1066 is visible because it isoutside machine 1050, but the rest of the user's arm, includinghand 1068, is occluded bycover 1052. In the rendering of the example HR embodiment, a portion of the arm, i.e.hand 1068, is shown withinX-ray window 1010. Note that a portion of the arm, indicated bydotted lines hand 1068 may be photo-realistic, use an avatar, or any other representation to indicate a hand to a user. The position ofhand 1068 may be received from data provided by sensors inglove 1070, for example gyroscopes. In other example embodiments, the position ofhand 1068 may be received from a device being held byhand 1068, for example a robotic extension, a tool, or a controller. In yet other example embodiments, the position of the hand may be determined using computation, such as, but not limited to, body position physics as the arm is moved, an internal camera in the machine, using data from external sensors that may partially penetrate a cover, or computed from the visible portion of the arm and known body dimensions. - In some embodiments, the
glove 1070 may be used to control the HR system.Glove 1070 may incorporate sensors, such as, but not limited to, a gyroscope and accelerometer for detecting and tracking the position and movement of a hand, a finger, or a body pose. As a non-limiting example, the user may raise her right hand encased in theglove 1070 and the HR system may receive signals representing the gesture from theglove 1070. The HR system may then interpret the gesture to represent one or more commands, such as, but not limited to, changing a size of a video image, changing the size of images of virtual objects, and then execute those commands. In yet another embodiment, a wave of the hand in theglove 1070 may be interpreted to represent a command to rotate or move a virtual object. In some embodiments, a movement of theglove 1070 may be used for changing an on/off state of the HR system. - Note that occluded objects viewed in an X-ray window may be rendered in other ways than those explicitly described herein without departing from the concepts disclosed. Whether to display all, some, or none of an occluded object may be done in any manner, including, but not limited to, a position and size of virtual window or X-ray window, a user preference, a context (e.g. a task at hand), or an explicit user command. The X-ray window showing the occluded objects may be separate from, or aligned with, a virtual window used to select the occluded objects and the size and position of the X-window may be controlled together with, or separately from, a virtual window. The X-ray window may show only occluded objects, or may show a combination of visible and occluded objects, depending on the embodiment. A magnification of the occluded objects shown in the X-ray window may be determined in any manner, including, but not limited to, a virtual position of the X-ray window, a size of a virtual window, a size of the X-ray window, or a separate magnification input provided to the HR system by the user or some other entity. A border of the X-ray window may or might not be shown, depending on the embodiment. The rendering of the occluded objects in the X-ray window may be opaque or partially transparent, and a background area of the X-ray window may be completely transparent, partially transparent, or opaque depending on the embodiment.
- Aspects of various embodiments are described with reference to flowchart illustrations and/or block diagrams of methods, apparatus, systems, and computer program products according to various embodiments disclosed herein. It will be understood that various blocks of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general-purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
- These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks. The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
- The flowchart and/or block diagrams in the figures help to illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products of various embodiments. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
-
FIG. 11 shows aflowchart 1100 of an embodiment of a method for creating a magnifying X-ray window. The method starts 1101 by setting a magnification ‘m’ to an initial value, such as unity, and a position for an X-ray window is received 1102 from commands, for example a “create magnifying window” command input to the HR system in some embodiments. The distance ‘d’ from the X-ray window apparent position in 3D space to the real-world object with the X-ray view is determined 1103; in some embodiments is a default value and in some embodiments ‘d’ is computed from the position of the user at the time of creating the X-ray window, for example placing the window at some known ratio of the distance between the user and the real-world object with the X-ray view. - The
flowchart 1100 continues by rendering 1104 the X-ray window at magnification ‘m’ (in this case unity) at apparent distance in 3D space. Theflowchart 1100 continues by receiving 1105 a new position for the X-ray window, for example a “drag magnifying window” command input to the HR system in some embodiments. Theflowchart 1100 continues by determining 1106 a new distance ‘d’, for example using relative motion specified by the user when applying a “drag magnifying window command” input to the HR system in some embodiments. A new magnification factor ‘m’ is computed 1107 using the previous and current values of ‘d’. In some embodiments, a fixed scaling factor may also be applied to keep the magnification ‘m’ within specific limits defined by the HR system. - The
flowchart 1100 continues by rendering 1108 the X-ray window at new magnification factor ‘m’ at current apparent distance ‘d’ in 3D space. Theflowchart 1100 continues by determining whether a close window instruction has been received duringstages flowchart 1100 loops to receiving 1105 an X-ray window position. - Note that any input command loop in
flowchart 1100 is purely notional; an interrupt-driven handler or software event handler may be used in some embodiments to save power or simplify code creation. -
FIG. 12 shows aflowchart 1200 of an embodiment of a method for creating a 3D snapshot of an X-ray window. The method starts 1201 and a create snapshot command is received 1202 as input to the HR system. In some embodiments, there must be an X-ray window active at the time the create snapshot command is received, but in others a default X-ray window is created. Theflowchart 1200 continues by determining 1203 a center ‘c’ for the snapshot in real-world space. In some embodiments ‘c’ is a default value and in some embodiments ‘c’ is computed from the position of the user at the time of creating the snapshot, for example placing the ‘c’ at some known ratio of the distance between the user and the real-world object with the X-ray view. In yet another example embodiment, ‘c’ may be determined using locations of known real-world objects to place ‘c’ at a position of maximum clearance from real-world objects so the user can physically move around the virtual snapshot in the real-world. - The
flowchart 1200 continues by rendering 1204 the snapshot at apparent distance ‘c’ in 3D space. Theflowchart 1200 continues by receiving 1205 a new position for user, for example a relative motion determined by the HR system in some embodiments. Theflowchart 1200 continues by determining 1106 a new perspective to point ‘c’ for the user using triangulation. Depending on the perspective, the hidden surfaces of components in the snapshot are computed 1207, and the snapshot rendered 1208 at the new perspective, making the snapshot appear fixed in real-world space. - The
flowchart 1200 continues by determining whether a close window instruction has been received duringstages flowchart 1200 loops to receiving 1205 a new user position. - Note that any input command loop in
flowchart 1200 is purely notional; an interrupt-driven handler or software event handler may be used in some embodiments to save power or simplify code creation. -
FIG. 13 shows aflowchart 1300 of a first embodiment of a method for providing information obscured to a user through a display of a hybrid-reality system (DHR). The DHR may be a head-mounted display (HMD). The method starts 1301 and a view position is established 1310 relative to a real-world object. The view position establishes a position of a viewer with respect to the real-world object and so sets a field of view for the viewer. The view position may be established in many different ways, for example a user of the hybrid-reality system may manually provide the view position. In at least one embodiment, the view position is received from an entity that is not the user of the hybrid-reality system. In other embodiments, the view position may be established based on a real-world position of the DHR and/or a user of the hybrid-reality system. As non-limiting examples, the view position may set to the real-world location of the DHR with a field of view based on the orientation of the DHR, or the view position may be set at a location between the DHR and the real-world object. The position may be determined using sensors in the DHR, such as a GPS receiver and/or accelerometers, based on triangulation from other radio-frequency sources such as WiFi access points, cellular towers, dedicated radio-frequency beacons, or any other location determination mechanism. In some embodiments, a field of view from the view position may be mapped to a full screen of the DHR. - In some embodiments the view position is established 1310 by capturing 1312 an image of the field-of-view using a camera coupled to the HR system. Using object recognition, objects in the field of view are detected 1314. The position of the detected objects is computed using depth information from a sensor coupled to the HR system. By using depth and object orientation, the objects can be located 1316 in 3D real-world space.
- The
flowchart 1300 continues by receiving 1320 data associated with an occluded object that is at least partially occluded at the user's viewpoint. The occluded object may be occluded by the real-world object. In some embodiments a characteristic of the real-world object is determined and the data associated with the occluded object is based on the characteristic of the real-world object, and in at least one embodiment the data associated with the occluded object includes information related to the real-world object. The characteristic of the real-world object may, for example, be an image of the real-world object, an identity of the real-world object, a message received from the real-world object, or the location of the real-world object. As a non-limiting example, the data associated with the occluded object may include a schematic, plan, blueprint, or map of the real-world object. In some embodiments, the received data associated with the occluded object is based on data from one or more sensors. The sensors may be integrated into the DHR, the hybrid-reality system, or be remote from the hybrid-reality system. The data from the sensors may be received in real-time or near real-time in some cases. The received data associated with the occluded object may have been established at an earlier time, such as data collected during a visit at an earlier time to an area near the occluded object by one or more people using hybrid-reality systems with integrated sensors. - In some embodiments the occluded object data is received 1320 by requesting 1322 data within a vicinity of the view position. The HR system generates 1324 a list of objects in the vicinity, and computes 1326 an intersection of the list within the desired field-of-view at the view position to generate an occlude list. Data is received by de-referencing 1328 the objects on the occlude list, for example indexing a database.
- The
flowchart 1300 continues by rendering 1330 an image of at least a portion of the occluded object on the DHR. The image of at least the portion of the occluded object may be rendered at any level of detail or with any perspective or viewing parameters depending on the embodiment. Image rendering and/or viewing parameters may be received from the user or from an entity that is not the user and the parameters may be stored within the hybrid-reality system. In some embodiments, the image is rendered with a perspective based on a user position with respect to the real-world object or with a perspective based on parameters stored within the hybrid-reality system. - The method may also include establishing a window into the object to show the image, although some embodiments may simply show any occluded object visible in the field of view from the view position. The window may have any shape and may have an asymmetric shape in some embodiments. The image may be clipped to the window in some embodiments. The window may also be referred to as an X-ray window, a view-port, or a virtual window. The
flowchart 1300 then returns to thestart 1301. - In some embodiments the window may be positioned to at least partially occlude the real-world object and the image rendered in a position in the window corresponding to a real-world position of the occluded object. This may present the appearance of an opening in the surface of the real-world object which allows the user to see inside of, or behind, the real-world object, so creating a view of a space occluded behind a surface of the real-world object. In some embodiments, the window may be positioned to fully occlude the real-world object, for example with a shape of the window corresponding to a shape of the real-world object. This may create an appearance of making the entirety of any occluded objects hidden by the real-world object visible. In other embodiments, the window may be positioned independently from a real-world position of the occluded object, so allowing the user to view the occluded object in a different location in the field of view.
- In at least one embodiment a window is created on the DHR that includes the image, the window positioned, at least in part, as a cut-away view of an occluded space behind a surface of the real-world object. The portion of the occluded object to render is determined as well as a perspective of the occluded object based on relative positions of the view position, the window, the real-world object, and the occluded object. A new view position is then established based on a new real-world position of the DHR. A new portion of the occluded object to render and a new perspective of the occluded object are then determined based on relative positions of the new view position, the window, the real-world object, and the occluded object. A new image of at least the new portion of the occluded object in the window on the DHR to replace the image of at least the portion of the occluded object on the DHR. In another embodiment, the window is moved to a new position on the DH. Then the new portion of the occluded object to render and a new perspective of the occluded object are determined based on relative positions of the view position, the new position of the window, the real-world object, and the occluded object.
- In some embodiments, a hierarchical set of windows may be used to show different layers of occluded objects. A view position relative to a real-world object is established and data associated with an object occluded at the view position is received, where the occluded object at least partially occluded by the real-world object at the view position. A first window is created on the DHR and an image of at least a portion of the occluded object is rendered and clipped to the first window. A subsection of the occluded object in the first window is then selected and data associated with a second object occluded by the subsection of the occluded object is received. A second window is created on the DHR and a second image of at least a portion of the second object is rendered into in the second window. The second object may be located within or behind the occluded object. The second window may be positioned on the DHR independent of a position of the first window on the DHR in some embodiments. In other embodiments, the second window may be positioned to fully occlude the selected subsection of the occluded object in the first window, with a shape of the second window corresponding to a shape of the selected subsection of the occluded object.
-
FIG. 14 shows aflowchart 1400 of a second embodiment of a method for manipulating occluded objects shown through a display of a hybrid-reality system. The method starts 1401, and a first view position including a direction and location on a real-world object is established 1410. Data for one or more objects that are at least partially occluded by the real-world object at the first view position is received 1420. The data that is received includes information that may be used to determine dimensions and the location of the occluded objects, allowing the hybrid-reality system to render 1440 a first image of the occluded object as if the object were not occluded at the first view point. In some embodiments, a viewport is created 1442 on the real-world object by the hybrid-reality system and the rendering of the first image is clipped 1444 to the viewport. - The
flowchart 1400 continues by selecting 1460 one or more occluded objects; in some embodiments the selection is made through user commands and in at least one embodiment the selection default is all occluded objects visible in first image. In at least one embodiment the selecting of the at least one occluded object includes receiving one or more commands from a user of the hybrid-reality system to select the at least one occluded object so that the at least one occluded object includes a first occluded object of the one or more occluded objects rendered in the first image and excludes a second occluded object of the one or more occluded objects rendered in the first image. A gesture of the user may be detected using a sensor coupled to the hybrid-reality system and the one or more commands may be determined based on the gesture. Theflowchart 1400 continues by establishing 1480 a second view position; in example embodiments the second view position is a point in space outside the real-world object that the user can move around. A change of location of the DHR may be detected to establish the second view position in some embodiments. In some embodiments, input from the user of the hybrid-reality system, such as commands, one or more gestures, or any other type of input, may be received to establish the second view position. The flowchart also includes rendering 1490 a second image of the selected objects at the second view position. - In some embodiments a view port on the image of the real-world object is manipulated to set a size and/or a position of the view port and the
rendering 1440 of the first image is clipped to the view port. In at least one embodiment the selecting 1460 is based on what is visible in the view port. In an example embodiment, a gesture by the user is detected using a sensor coupled to the hybrid-reality system to manipulate the size and/or position of the view-port. As a non-limiting example, gestures may also be used to command the hybrid-reality system to select 1460 the occluded object from the first image and deselect previously selected objects. - The second image may be rendered at a position on the DHR independent of (i.e. without regard to) a position of an image of the real-world object on the DHR. In some embodiments, the establishing 1480 a second view position uses a position that is not related to the position of an image of the real-world object on the DHR, such as, but not limited to, a point in the field-of-view that is determined to be empty of visible data, a point in space between the user and the real-world object, or a point in real-world space that the user can access determined to have no physical obstructions. In one example embodiment, the establishing 1480 a second view position is made iteratively to place the second image at an optimal position with maximum unobstructed surrounding space. In some embodiments, the establishing 1480 a second view position is a fixed point on the display (e.g. set using a system default or previously set by the user) used to create a separate window in which to render the second image on the DHR. In at least one embodiment, the second image is a representation of the selected occluded object as if it were a real-world object at the second position. In one non-limiting example, the second view position may be set by user movement, such as pointing to a point in space or using a point between a new user position and the real-world object.
- In some embodiments the
rendering 1490 of a second image causes the first image to be removed; whether to remove or keep the first image may be a parameter in the hybrid-reality system or controlled by an explicit command issued by the user. So in some embodiments, the first image and the second image may be presented on the DHR simultaneously. - In at least one embodiment, the establishing 1480 a second view position continues as a series of
subsequent view positions 1480 and therendering 1490 of the second image updated based on each view position (which has both direction and location) to create an interactive display on the DHR. In some embodiments, the user may move around the rendered second image in space to observe the selected occluded object from different perspectives. This may be achieved in at least one embodiment by using sensors coupled to the DHR (e.g. cameras in the environment, gyroscopes in a head-mounted system, a GPS receiver, or cameras mounted on the user) to establish a set of user positions in space and so generate a series of view positions used to render the interactive display of the selected occluded object. In example embodiments, the series of view positions used to render the interactive display of the selected occluded object may be set by the user issuing a series of commands interpreted by the hybrid-reality system as a series of view positions, such as, but not limited to, tracking hand motion or a pointer, tracking eye movement, or tracking head orientation over time. - In some embodiments, a first location and a first orientation of the DHR may be determined using sensors in the DHR at a first time to establish the first view position based on the first location and the first orientation of the DHR. A virtual position may be established with respect to the first view location for a virtual presentation of the at least one selected objects. A second location and a second orientation of the DHR may be determined using the sensors in the DHR at a second time to establish the second view position based on the second location and the second orientation of the DHR. The at least one selected object may then be rendered from the second view position at the virtual position in the second image. In some embodiments, subsequent locations and subsequent orientations of the DHR may be determined using sensors in the DHR over a period of time to establish subsequent view positions, and subsequent images of the at least one selected occluded object generated on the DHR from the subsequent view positions at the virtual position in near real-time to create an interactive display on the DHR. The DHR may be a part of a head-mounted display.
-
FIG. 15 shows flowchart 1500 of a third embodiment of a method to provide information obscured to a user through a display of a hybrid-reality system (DHR). The method starts 1501 by establishing a view position relative to a real-world object 1510 and receiving first dimension andposition data 1520 associated with an occluded object. The occluded object is at least partially occluded by the real-world object at the view position. A first image of at least a portion of the occluded object is rendered 1530 on the DHR using the first data. - In some embodiments, a virtual tool is selected 1532. The virtual tool may allow various parameters or measurements of the occlude object to be monitored. The virtual tool can include a visual indicator of the tool, such as, but not limited to, an icon, an image, or text. Examples include a thermometer icon, a stethoscope icon, and an image of an analog voltage meter. The virtual tool may then be associated 1534 with the occluded object. The association may include placing the virtual tool at a first location of the first image. In some embodiments, a second image of at least the portion of the occluded object is rendered along with an image of its associated virtual tool on the DHR.
- In some embodiments, a sensor monitoring the occluded object is selected 1536 based on the association of the virtual tool with the occluded object, based on the type of virtual tool selected, or based on the first location of the first image where the virtual tool is placed. The sensor may be physically coupled to the DHR or may be separate from the DHR. The first location may represent a particular location on the occluded object, such as a particular part of the occluded object, a particular object within the occluded object, a test point of the occluded object, or any other interesting feature of the occluded object. In some embodiments, the selected sensor may be activated upon its selection.
- Second data associated with the occluded object is received 1540. The second data may represent information about the occluded object, such as a temperature measurement, a voltage, a pressure level, a stress measurement, a noise level, or any other information about the occluded object. The second data may be received from a sensor monitoring the occluded object. In some embodiments, the second data may be received from the selected sensor, but in other embodiments, the second data may be received from an external source, such as a remote computer in communication with the occluded object or a human observing the occluded object. The external source may be selected based on the selection of the virtual tool or on the type of virtual tool. In some embodiments, at least a portion of the second data is stored and the portion of the second data to be stored may be based on a type of the virtual tool.
- A stimulus is provided 1550 to the user representing the second data. In some embodiments, the stimulus may be a virtual object presented on the DHR on or near the occluded object. The stimulus may include text displayed on the DHR, a fill amount of the rendered occluded object, a color of at least a portion of the rendered occluded object, a haptic stimulus, or audio content, depending on the embodiment. In some embodiments, the stimulus includes text associated with the virtual tool, a fill amount or a color of the virtual tool, audio content, or a haptic stimulus. The stimulus may be selected based on a location of the virtual tool on the occluded object. In one example embodiment, the virtual tool includes an image of a thermometer, and the second data represents a temperature of the occluded object at a location of the virtual tool on the occluded object.
-
FIG. 16 shows aflowchart 1600 of a fourth embodiment of a method provide information obscured to a user through a display of a hybrid-reality system (DHR). The method starts 1601 by receiving data associated with an occluded object 1610, the occluded object at least partially occluded by a real-world object at a position of the user. - The method continues by creating 1620 a display window on the DHR. One or more parameters, such as a size, a shape, and/or a position, may be received for the display window. The parameters may be received from the user of the DHR, a third party, or may be received from a configuration file of the hybrid-reality system stored locally or remotely. So the display window may be created at a position on the DHR based on the one or more parameters.
- A first magnification factor is obtained 1630. The first magnification factor may be obtained in many different ways. In some embodiments the first magnification factor may be set to a default value, such as unity. In at least one embodiment the first magnification factor may be set based on one or more commands received or based on the one or more parameters received for the display window. The method may include creating a view-port having a first size associated with a first portion of the real-world object. The view port may be used to show the occluded object in-situ in an apparent opening on the real-world object that is occluding the occluded object. The first magnification factor may be determined based on at least a first size of the display window and the first size of the view-port, such as by using a ratio of the first size of the display window to the first size of the view-port as the first magnification factor as one non-limiting example. Once the first magnification factor has been determined, a first image of at least the portion of the occluded object is rendered 1640 in the display window at the first magnification factor at a first time.
- A second magnification factor, different than the first magnification factor, is obtained 1650 and a second image of at least the portion of the occluded object is rendered 1660 in the display window at the second magnification factor at a second time after the first time. The second magnification factor may be obtained in many different ways. In some embodiments, a command may be received and the second magnification factor determined based, at least in part, on the command. The command may be received from any source, including from the user or from an external source.
- In some embodiments, a first virtual distance between the display window and the real-world object is obtained at about the first time and a second virtual distance between the display window and the real-world object is obtained at about the second time. A first real-world distance between the user and the real-world object may be obtained at about the time that the display window is created and the first virtual distance may be determined based on the first real-world distance in some embodiments. The second magnification factor may be calculated based, at least in part, on the first magnification factor, the first virtual distance, and the second virtual distance. Control information related to the display window may be received between the first time and the second time in some embodiments and the second virtual distance determined based on the control information. In some embodiments a user may use gestures, voice commands, or other types of control input to adopt a metaphor of a magnifying glass to change the second magnification factor by moving the display window in and out to change the second magnification factor.
- In some embodiments, the view-port may be changed to have a second size and the second magnification factor may be determined based on at least the first size of the display window and the second size of the view-port. Input from an external source or the user may be received to change the first size of the view port to a second size of the view port. The second magnification factor may also be manipulated by changing the display window to have a second size so the second magnification factor may be based on at least the second size of the display window and the first size of the view-port. The sizes of both the display window and view-port may be changed so that the second magnification factor may also be based on both the second size of the display window and the second size of the view-port. In at least one embodiment the second magnification factor may be based on a ratio of the size of the display window to the size of the view-port at the second time.
- In some embodiments the view-port may be moved to a second portion of the real-world object that occluded a different portion of the occluded object. A third image of at least a different portion of the occluded object may then be rendered in the display window.
- The method of
flowchart 1600 may also be used in a hierarchical viewing environment where the real-world object is at least partially occluded from view at the position of the user by another object, and the occluded object is occluded by both the real-world object and the other object. The occluded object may be located within the real-world object or behind the real-world object. In such cases, the display window referred to above may be a second display window showing the occluded object. The second display window on the DHR may be positioned independent of a position of the first display window on the DHR. In at least one embodiment the second display window may be positioned to fully occlude the selected portion of the real-world object in the first window, wherein a shape of the second window corresponds to a shape of the selected portion of the real-world object. An image of the real-world object may be displayed in a first display window on the DHR. A portion of the real-world object that is occluding the portion of the occluded object may be selected in the first display window and may be used to determine what to show in the second display window that is subject to a change in magnification. -
FIG. 17 shows aflowchart 1700 of a fifth embodiment of a method provide information obscured to a user through a display of a hybrid-reality system (DHR). The method starts 1701 by establishing aview position 1710 relative to a real-world object and first data associated with an occluded object is received 1720. The first data provides information about a first position, at a first time, of at least a moveable portion of the occluded object. The occluded object is at least partially occluded from the view position by a surface of the real-world object at the first time. In some cases, the first data may indicate that the moveable portion of the occluded object is occluded from the view position by the surface of the real-world object at the first time, but in other cases, the first data may indicate that the moveable portion of the occluded object is, at least in part, not occluded from the view position by the surface of the real-world object at the first time. A first image of at least the moveable portion of the occluded object in the first position is then rendered 1730 on the display. - Second data associated with the occluded object is received 1740. The second data provides information about a second position, at a second time, of the moveable portion of the occluded object. The occluded object is at least partially occluded from the view position by the surface of the real-world object at the second time. The second data may indicate that the moveable portion of the occluded object is occluded from the view position by the surface of the real-world object at the second time. In some cases, the moveable portion of the occluded object may be occluded by the surface of the real-world staying at both the first time and the second time. In other cases, the moveable portion of the occluded object may move into occlusion or may move out of occlusion between the first time and the second time.
- In some embodiments, first sensor data may be received from a sensor included in the occluded object or a separate sensor that monitors the occluded object. The first data may include the first sensor data. The first position of the moveable portion of the occluded object may be determined based on the first sensor data. Second sensor data, included in the second data, may be received from the sensor, and the second position of the moveable portion of the occluded object determined based on the second sensor data.
- Sensor data providing information about a third position of a second object may be received in some embodiments. The second position of the moveable portion of the occluded object may be determined based, at least in part, on the third position of the second object. This may be done where the third position may at least partially alter the position of the occluded object. Non-limiting examples of this are a wrench or screwdriver (second object) turning a nut (portion of the occluded object), an segment of a mechanical arm (second object) which is attached to its base moving a next segment of mechanical arm having (portion of the occluded object), or a first gear (second object) moving an engaged second gear (portion of the occluded object). Depending on the occluded object, the second object may be separate from the occluded object and/or coupled to the occluded object. The second object may, at least in part, move the moveable portion of the occluded object. In some embodiments, the sensor data may be stored, and in at least one embodiment, the second position may be calculated based, at least in part, on previously stored sensor data.
- A second image of at least the moveable portion of the occluded object in the second position is then rendered 1750 on the display to replace the first image. Some embodiments may create a window on the display positioned to at least partially occlude the real-world object and render the second image into the window consistent with a real-world position of the second set of occluded objects relative to the view position.
- In various embodiments, the occluded object may include a first object and a second object, and the moveable portion of the occluded object may consist of only the second object. In at least one embodiment, third data associated with the occluded object may be received with the third data providing information about a third position, at a third time, of the first object without information related to the second object. The first object may be at least partially occluded from the view position by the surface of the real-world object at the third time. A third image of the first portion of the first object in the third position, without the second object, may then be rendered on the display. The third time may occur at any time with respect to the first time and the second time, and in some cases the third time may occur before the second time. The second object may become occluded by a surface of the real-world object between the third time and the second time.
- In some embodiments the moveable portion of the occluded object is under control of a user of the hybrid-reality system. Some embodiments may provide guidance to the user on where to move the moveable portion of the occluded object. This guidance may take any form including, but not limited to, audio messages, textual messages presented on the DHR, or graphical messages presented on the DHR. In some cases the occluded object is associated with a body part of a user of the hybrid-reality system. A non-limiting example of this is a glove (the occluded object) worn on a hand (body part) of a user.
- As will be appreciated by those of ordinary skill in the art, aspects of the various embodiments may be embodied as a system, device, method, or computer program product apparatus. Accordingly, elements of the present disclosure may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, or the like) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “server,” “circuit,” “module,” “client,” “computer,” “logic,” or “system,” or other terms. Furthermore, aspects of the various embodiments may take the form of a computer program product embodied in one or more computer-readable medium(s) having computer program code stored thereon.
- Any combination of one or more computer-readable storage medium(s) may be utilized. A computer-readable storage medium may be embodied as, for example, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or other like storage devices known to those of ordinary skill in the art, or any suitable combination of computer-readable storage mediums described herein. In the context of this document, a computer-readable storage medium may be any tangible medium that can contain, or store a program and/or data for use by or in connection with an instruction execution system, apparatus, or device. Even if the data in the computer-readable storage medium requires action to maintain the storage of data, such as in a traditional semiconductor-based dynamic random access memory, the data storage in a computer-readable storage medium can be considered to be non-transitory. A computer data transmission medium, such as a transmission line, a coaxial cable, a radio-frequency carrier, and the like, may also be able to store data, although any data storage in a data transmission medium can be said to be transitory storage. Nonetheless, a computer-readable storage medium, as the term is used herein, does not include a computer data transmission medium.
- Computer program code for carrying out operations for aspects of various embodiments may be written in any combination of one or more programming languages, including object oriented programming languages such as Java, Python, C++, or the like, conventional procedural programming languages, such as the “C” programming language or similar programming languages, or low-level computer languages, such as assembly language or microcode. The computer program code if loaded onto a computer, or other programmable apparatus, produces a computer implemented method. The instructions which execute on the computer or other programmable apparatus may provide the mechanism for implementing some or all of the functions/acts specified in the flowchart and/or block diagram block or blocks. In accordance with various implementations, the program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server, such as a cloud-based server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). The computer program code stored in/on (i.e. embodied therewith) the non-transitory computer-readable medium produces an article of manufacture.
- The computer program code, if executed by a processor causes physical changes in the electronic devices of the processor which change the physical flow of electrons through the devices. This alters the connections between devices which changes the functionality of the circuit. For example, if two transistors in a processor are wired to perform a multiplexing operation under control of the computer program code, if a first computer instruction is executed, electrons from a first source flow through the first transistor to a destination, but if a different computer instruction is executed, electrons from the first source are blocked from reaching the destination, but electrons from a second source are allowed to flow through the second transistor to the destination. So a processor programmed to perform a task is transformed from what the processor was before being programmed to perform that task, much like a physical plumbing system with different valves can be controlled to change the physical flow of a fluid.
- In at least one embodiment, a computer system renders one or more virtual objects on a display of the computer system which represents occluded or obscured details in the field-of-view. In some embodiments, the virtual rendering covers all or a portion of a real-world object and, if there is motion, displayed in the correct perspective. The information used to render one or more virtual objects may be known, for example blueprints or maps. The information used to render one or more virtual objects may be obtained from external sources, for example drones, mounted sensors or other personnel. The information used to render one or more virtual objects may be obtained from historical data, for example a video stream obtained prior to smoke obscuring the scene.
- In at least one embodiment, information obscured to a user is provided through a display of a hybrid-reality system (DHR). A view position relative to a real-world object is established and data associated with an occluded object is received. The occluded object is at least partially occluded by the real-world object at the view position. An image of at least a portion of the occluded object is then rendered on the DHR.
- In at least one embodiment, an occluded object displayed through a display of a hybrid-reality system (DHR) is manipulated by establishing a first view position relative to a real-world object and receiving three-dimensional data associated with occluded objects at the first view position. A first image of at least a portion of the occluded objects is rendered on the DHR from the first view position at a geometrically correct location with respect to an image of the real-world object on the HMD using the three-dimensional data. One or more occluded objects are selected from the first image and a second image of the selected objects is rendered on the DHR either in a separate window or as an object in a field of view. The second image can then be manipulated by the user of the hybrid-reality system to obtain more detailed information.
- In at least one embodiment, a computer system renders one or more virtual objects on a display of a hybrid-reality system (DHR), such as head-mounted display (HMD), which represents occluded or obscured details in the field-of-view. Information is presented to a user by establishing a view position relative to a real-world object and receiving dimension and position data associated with an occluded object. The occluded object is at least partially occluded by the real-world object at the view position. A first image of at least a portion of the occluded object is rendered on the DHR using the first data. Second data associated with the occluded object is received and a stimulus is provided to the user representing the second data.
- In at least one embodiment, information obscured to a user is provided through a display of a hybrid-reality system (DHR). Data associated with an occluded object at least partially occluded by a real-world object at a position of the user is received and a display window is created on the DHR. A first magnification factor is obtained and a first image of at least the portion of the occluded object is rendered in the display window at the first magnification factor at a first time. A second magnification factor, different than the first magnification factor, is obtained, and a second image of at least the portion of the occluded object is rendered in the display window at the second magnification factor at a second time after the first time.
- In at least one embodiment, information obscured to a user is provided through a display of a hybrid-reality system (DHR), such as a head-mounted display (HMD). A view position relative to a real-world object is established, the real-world object at least partially occluding a view of an occluded object. First data providing information about a first position, at a first time, of at least a moveable portion of an occluded object is received and a first image of at least the moveable portion of the occluded object in the first position is then rendered on the display. Second data providing information about a second position, at a second time, of the moveable portion of the occluded object is then received, and a second image of at least the moveable portion of the occluded object in the second position is rendered on the display to replace the first image.
- Various embodiments are described below. The embodiments described here are not exhaustive of the embodiments disclosed and are non-limiting examples.
-
Embodiment 1. A method to provide information obscured to a user through a display of a hybrid-reality system (DHR), the method comprising: establishing a view position relative to a real-world object; receiving data associated with an occluded object, the occluded object at least partially occluded by the real-world object at the view position; and rendering an image of at least a portion of the occluded object on the DHR. - Embodiment 2. The method of
embodiment 1, further comprising creating a window on the DHR that includes the image and clipping the image to the window. - Embodiment 3. The method of embodiment 2, further comprising: positioning the window to at least partially occlude the real-world object; and rendering the image in a position in the window corresponding to a real-world position of the occluded object.
- Embodiment 4. The method of embodiment 3, further comprising positioning the window to fully occlude the real-world object, wherein a shape of the window corresponds to a shape of the real-world object.
- Embodiment 5. The method of embodiment 2, further comprising positioning the window independently from a real-world position of the occluded object.
- Embodiment 6. The method of embodiment 2, wherein the window is positioned, at least in part, as a view of a space occluded behind a surface of the real-world object.
- Embodiment 7. The method of embodiment 2, wherein the window has an asymmetric shape.
- Embodiment 8. The method of embodiment 2, wherein the window is a first window, the method further comprising: selecting a subsection of the occluded object in the first window; receiving data associated with a second object occluded by the subsection of the occluded object; and creating a second window on the DHR and rendering a second image of at least a portion of the second object in the second window.
- Embodiment 9. The method of embodiment 8, wherein the second object is located within the occluded object.
- Embodiment 10. The method of embodiment 8, wherein the second object is located behind the occluded object.
- Embodiment 11. The method of embodiment 8, further comprising positioning the second window on the DHR independent of a position of the first window on the DHR.
- Embodiment 12. The method of embodiment 8, further comprising positioning the second window to fully occlude the selected subsection of the occluded object in the first window, wherein a shape of the second window corresponds to a shape of the selected subsection of the occluded object.
- Embodiment 13. The method of
embodiment 1, further comprising rendering the image of at least the portion of the occluded object with a perspective based on a user position with respect to the real-world object. - Embodiment 14. The method of
embodiment 1, further comprising rendering the image of at least the portion of the occluded object with a perspective based on viewing parameters stored within the hybrid-reality system. - Embodiment 15. The method of
embodiment 1, further comprising receiving the view position from an entity that is not the user. - Embodiment 16. The method of
embodiment 1, further comprising: determining a real-world position of the DHR; and establishing the view position based on the real-world position of the DHR. - Embodiment 17. The method of embodiment 16, further comprising: creating a window on the DHR that includes the image, the window positioned, at least in part, as a cut-away view of an occluded space behind a surface of the real-world object; determining the portion of the occluded object to render and a perspective of the occluded object based on relative positions of the view position, the window, the real-world object, and the occluded object; establishing a new view position based on a new real-world position of the DHR; determining a new portion of the occluded object to render and a new perspective of the occluded object based on relative positions of the new view position, the window, the real-world object, and the occluded object; and rendering a new image of at least the new portion of the occluded object in the window on the DHR to replace the image of at least the portion of the occluded object on the DHR.
- Embodiment 18. The method of embodiment 16, further comprising: creating a window on the DHR that includes the image, the window positioned, at least in part, as a cut-away view of an occluded space behind a surface of the real-world object; determining the portion of the occluded object to render and a perspective of the occluded object based on relative positions of the view position, the window, the real-world object, and the occluded object; moving the window to a new position on the DHR; determining a new portion of the occluded object to render and a new perspective of the occluded object based on relative positions of the view position, the new position of the window, the real-world object, and the occluded object; and rendering a new image of at least the new portion of the occluded object in the window on the DHR to replace the image of at least the portion of the occluded object on the DHR.
- Embodiment 19. The method of
embodiment 1, further comprising determining a characteristic of the real-world object, wherein the data associated with the occluded object is based on the characteristic of the real-world object. - Embodiment 20. The method of
embodiment 1, wherein the data associated with the occluded object comprises information related to the real-world object. - Embodiment 21. The method of embodiment 20, wherein the data associated with the occluded object comprises a schematic, plan, blueprint, or map of the real-world object.
- Embodiment 22. The method of
embodiment 1, wherein the received data associated with the occluded object is based on data from one or more sensors. - Embodiment 23. The method of
embodiment 1, wherein the received data associated with the occluded object was established at an earlier time. - Embodiment 24. The method of embodiment 23, wherein the received data associated with the occluded object was collected during a visit at an earlier time to an area near the occluded object by one or more people using hybrid-reality systems with integrated sensors.
- Embodiment 25. An article of manufacture comprising a tangible medium, that is not a transitory propagating signal, encoding computer-readable instructions that, when applied to a computer system, instruct the computer system to perform a method comprising: establishing a view position relative to a real-world object; receiving data associated with an occluded object, the occluded object at least partially occluded by the real-world object at the view position; and rendering an image of at least a portion of the occluded object on the DHR.
- Embodiment 26. A hybrid-reality system comprising: a display; a structure, coupled to the display and adapted to position the display in a field-of-view (FOV) of the user; and a processor, coupled to the display, the processor configured to: establish a view position relative to a real-world object; receive data associated with an occluded object, the occluded object at least partially occluded by the real-world object at the view position; and render an image of at least a portion of the occluded object on the display.
- Embodiment 27. A method to virtually manipulate an occluded object shown through a display of a hybrid-reality system (DHR), the method comprising: establishing a first view position including a first view location and a first direction of view relative to a real-world object; receiving position data associated with one or more occluded objects, the one or more occluded objects at least partially occluded by the real-world object at the first view position; rendering a first image of at least a portion of the one or more occluded objects on the HMD at the first view position, the portion of the one or more occluded objects rendered at a geometrically correct location with respect to an image of the real-world object on the DHR using the received position data; selecting at least one occluded object from the portion of the one or more occluded objects rendered in the first image; establishing a second view position including a second location and a second direction of view relative to the at least one selected occluded object; and rendering a second image of the at least one selected occluded object on the DHR from the second view position using the received position data.
- Embodiment 28. The method of embodiment 27, said selecting comprising: manipulating a size and/or position of a view-port on the image of the real-world object, wherein the first image is clipped to the view-port; and selecting the at least one occluded object based on what is visible in the view-port.
- Embodiment 29. The method of embodiment 28, the manipulating comprising: detecting a gesture of the user using a sensor coupled to the hybrid-reality system; and manipulating a size and/or position of a view-port based on the gesture.
- Embodiment 30. The method of embodiment 27, said selecting comprising receiving one or more command s from a user of the hybrid-reality system to select the at least one occluded object, wherein the at least one occluded object includes a first occluded object of the one or more occluded objects rendered in the first image and excludes a second occluded object of the one or more occluded objects rendered in the first image.
- Embodiment 31. The method of embodiment 30, the receiving command s comprising: detecting a gesture of the user using a sensor coupled to the hybrid-reality system; and determining the one or more command s based on the gesture.
- Embodiment 32. The method of embodiment 27, further comprising rendering the second image at a position on the DHR independent of a position of an image of the real-world object on the DHR.
- Embodiment 33. The method of embodiment 32, wherein the second image is displayed in a window on the DHR.
- Embodiment 34. The method of embodiment 32, wherein the at least one selected occluded object is displayed on the DHR as an object in a field of view.
- Embodiment 35. The method of embodiment 27, further comprising presenting the first image and the second image on the DHR simultaneously.
- Embodiment 36. The method of embodiment 27, further comprising detecting a change of location of the DHR to establish the second view position.
- Embodiment 37. The method of embodiment 27, further comprising receiving input from the user of the hybrid-reality system to establish the second view position.
- Embodiment 38. The method of embodiment 37, the receiving input comprising:
- detecting a gesture of the user using a sensor coupled to the hybrid-reality system; and determining the input based on the gesture.
- Embodiment 39. The method of embodiment 27, further comprising: receiving input from a user of the hybrid-reality system over a period of time to establish subsequent view positions; and generating subsequent images of the at least one selected occluded object on the DHR from the subsequent view positions in near real-time to create an interactive display on the DHR.
- Embodiment 40. The method of embodiment 39, the receiving input comprising: detecting gestures of the user using a sensor coupled to the hybrid reality system; and determining the input based on the gestures.
- Embodiment 41. The method of embodiment 39, the receiving input comprising determining locations of the DHR over the period of time using sensors included in the DHR.
- Embodiment 42. The method of embodiment 27, further comprising: determining a first location and a first orientation of the DHR using sensors in the DHR at a first time; establishing the first view position based on the first location and the first orientation of the DHR; establishing a virtual position with respect to the first view location for a virtual presentation of the at least one selected objects; determining a second location and a second orientation of the DHR using the sensors in the DHR at a second time; establishing the second view position based on the second location and the second orientation of the DHR; and rendering the at least one selected object from the second view position at the virtual position in the second image.
- Embodiment 43. The method of embodiment 42, wherein the DHR comprises a head-mounted display (HMD).
- Embodiment 44. The method of embodiment 42, further comprising: determining subsequent locations and subsequent orientations of the DHR using sensors in the DHR over a period of time to establish subsequent view positions; and generating subsequent images of the at least one selected occluded object on the DHR from the subsequent view positions at the virtual position in near real-time to create an interactive display on the DHR.
- Embodiment 45. An article of manufacture comprising a tangible medium, that is not a transitory propagating signal, encoding computer-readable instructions that, when applied to a computer system, instruct the computer system to perform a method comprising: establishing a first view position including a first view location and a first direction of view relative to a real-world object; receiving position data associated with one or more occluded objects, the one or more occluded objects at least partially occluded by the real-world object at the first view position; rendering a first image of at least a portion of the one or more occluded objects on the HMD at the first view position, the portion of the one or more occluded objects rendered at a geometrically correct location with respect to an image of the real-world object on the DHR using the received position data; selecting at least one occluded object from the portion of the the one or more occluded objects rendered in the first image; establishing a second view position including a second location and a second direction of view relative to the at least one selected occluded object; and rendering a second image of the at least one selected occluded object on the DHR from the second view position using the received position data.
- Embodiment 46. A hybrid-reality system comprising: a display; a structure, coupled to the display and adapted to position the display in a field-of-view (FOV) of the user; a processor, coupled to the display, the processor configured to: establish a first view position including a first view location and a first direction of view relative to a real-world object; receive position data associated with one or more occluded objects, the one or more occluded objects at least partially occluded by the real-world object at the first view position; render a first image of at least a portion of the one or more occluded objects on the HMD at the first view position, the portion of the one or more occluded objects rendered at a geometrically correct location with respect to an image of the real-world object on the DHR using the received position data; select at least one occluded object from the portion of the the one or more occluded objects rendered in the first image; establish a second view position including a second location and a second direction of view relative to the at least one selected occluded object; and render a second image of the at least one selected occluded object on the DHR from the second view position using the received position data.
- Embodiment 47. A method to provide information obscured to a user through a display associated with a hybrid-reality system (DHR), the method comprising: establishing a view position relative to a real-world object; receiving first dimension and position data associated with an occluded object, the occluded object at least partially occluded by the real-world object at the view position; rendering a first image of at least a portion of the occluded object on the DHR using the first data; receiving second data associated with the occluded object; and providing a stimulus to the user representing the second data.
- Embodiment 48. The method of embodiment 47, wherein the stimulus comprises a virtual object presented on the DHR on or near the occluded object
- Embodiment 49. The method of embodiment 47, the stimulus comprising text displayed on the DHR, a fill amount of the rendered occluded object, a color of at least a portion of the rendered occluded object, a haptic stimulus, or audio content or any combination thereof.
- Embodiment 50. The method of embodiment 47, further comprising receiving the second data from a sensor monitoring the occluded object.
- Embodiment 51. The method of embodiment 50, wherein the sensor is physically coupled to the occluded object.
- Embodiment 52. The method of embodiment 47, further comprising: selecting a virtual tool; associating the virtual tool with the occluded object; and rendering a second image of at least the portion of the occluded object with its associated virtual tool on the DHR.
- Embodiment 53. The method of embodiment 52, the stimulus comprising text associated with the virtual tool.
- Embodiment 54. The method of embodiment 52, the stimulus comprising a fill amount or a color of the virtual tool.
- Embodiment 55. The method of embodiment 52, wherein the virtual tool comprises an image of a thermometer, and the second data represents a temperature of the occluded object at a location of the virtual tool on the occluded object.
- Embodiment 56. The method of embodiment 52, the stimulus comprising audio content or a haptic stimulus selected based on a location of the virtual tool on the occluded object.
- Embodiment 57. The method of embodiment 52, further comprising: selecting a sensor monitoring the occluded object based on the association of the virtual tool with the occluded object; and receiving the second data from the selected sensor.
- Embodiment 58. The method of embodiment 57, further comprising activating the selected sensor.
- Embodiment 59. The method of embodiment 52, further comprising: placing the virtual tool at a first location of the first image; selecting a sensor monitoring the occluded object based on the first location; and receiving the second data from the selected sensor.
- Embodiment 60. The method of embodiment 59, further comprising activating the selected sensor.
- Embodiment 61. The method of embodiment 52, further comprising: selecting an external data source based on the selection of the virtual tool; and receiving the second data from the selected external data source.
- Embodiment 62. The method of embodiment 61, the selecting of the external data source is based, at least in part, on a type of the virtual tool.
- Embodiment 63. The method of embodiment 47, further comprising storing at least a portion of the second data.
- Embodiment 64. The method of embodiment 63, further comprising determining the portion of the second data to be stored based on a type of the virtual tool.
- Embodiment 65. An article of manufacture comprising a tangible medium, that is not a transitory propagating signal, encoding computer-readable instructions that, when applied to a computer system, instruct the computer system to perform a method comprising: establishing a view position relative to a real-world object; receiving first dimension and position data associated with an occluded object, the occluded object at least partially occluded by the real-world object at the view position; rendering a first image of at least a portion of the occluded object on the DHR using the first data; receiving second data associated with the occluded object; and providing a stimulus to the user representing the second data.
- Embodiment 66. A hybrid-reality system comprising: a display; a structure, coupled to the display and adapted to position the display in a field-of-view (FOV) of the user; a processor, coupled to the display, the processor configured to: establish a view position relative to a real-world object; receive first dimension and position data associated with an occluded object, the occluded object at least partially occluded by the real-world object at the view position; render a first image of at least a portion of the occluded object on the DHR using the first data; receive second data associated with the occluded object; and provide a stimulus to the user representing the second data.
- Embodiment 67. A method to provide information obscured to a user through a display of a hybrid reality system (DHR), the method comprising: receiving data associated with an occluded object, the occluded object at least partially occluded by a real-world object at a position of the user; creating a display window on the DHR; obtaining a first magnification factor; rendering a first image of at least the portion of the occluded object in the display window at the first magnification factor at a first time; obtaining a second magnification factor, different than the first magnification factor; and rendering a second image of at least the portion of the occluded object in the display window at the second magnification factor at a second time after the first time.
- Embodiment 68. The method of embodiment 67, further comprising: receiving a command; determining the second magnification factor based, at least in part, on the command.
- Embodiment 69. The method of embodiment 68, wherein the command is received from the user.
- Embodiment 70. The method of embodiment 68, wherein the command is received from an external source.
- Embodiment 71. The method of embodiment 67, further comprising: obtaining a first virtual distance between the display window and the real-world object at about the first time; obtaining a second virtual distance between the display window and the real-world object at about the second time; and calculating the second magnification factor based, at least in part, on the first magnification factor, the first virtual distance, and the second virtual distance.
- Embodiment 72. The method of embodiment 71, further comprising: obtaining a first real-world distance between the user and the real-world object at about the time that the display window is created; and determining the first virtual distance based on the first real-world distance.
- Embodiment 73. The method of embodiment 71, further comprising: receiving control information related to the display window between the first time and the second time; and determining the second virtual distance based on the control information.
- Embodiment 74. The method of embodiment 67, further comprising: receiving one or more parameters for the display window; determining the first magnification factor based on the one or more parameters; and creating the display window at a position on the DHR based on the one or more parameters.
- Embodiment 75. The method of embodiment 67, further comprising: creating a view-port associated with a first portion of the real-world object, the view-port having a first size; determining the first magnification factor based on at least a first size of the display window and the first size of the view-port.
- Embodiment 76. The method of embodiment 75, further comprising receiving input from an external source to change the first size of the view port to a second size of the view port.
- Embodiment 77. The method of embodiment 75, further comprising: changing the view-port to have a second size; determining the second magnification factor based on at least the first size of the display window and the second size of the view-port.
- Embodiment 78. The method of embodiment 75, further comprising: changing the display window to have a second size; determining the second magnification factor based on at least the second size of the display window and the first size of the view-port.
- Embodiment 79. The method of embodiment 75, further comprising: moving the view-port to a second portion of the real-world object; rendering a third image of at least a different portion of the occluded object in the display window, the different portion of the occluded object occluded by the second portion of the real-world object.
- Embodiment 80. The method of embodiment 67, wherein the display window is a second display window, the method further comprising: displaying an image of the real-world object in a first display window on the DHR, the real-world object at least partially occluded from view at the position of the user; and selecting a portion of the real-world object in the first display window that is occluding the portion of the occluded object.
- Embodiment 81. The method of embodiment 80, wherein the occluded object is located within the real-world object.
- Embodiment 82. The method of embodiment 80, wherein the occluded object is located behind the real-world object.
- Embodiment 83. The method of embodiment 80, further comprising positioning the second display window on the DHR independent of a position of the first display window on the DHR.
- Embodiment 84. The method of embodiment 80, further comprising positioning the second display window to fully occlude the selected portion of the real-world object in the first window, wherein a shape of the second window corresponds to a shape of the selected portion of the real-world object.
- Embodiment 85. An article of manufacture comprising a tangible medium, that is not a transitory propagating signal, encoding computer-readable instructions that, when applied to a computer system, instruct the computer system to perform a method comprising: receiving data associated with an occluded object, the occluded object at least partially occluded by a real-world object at a position of the user; creating a display window on a display of a hybrid reality system (DHR); obtaining a first magnification factor; rendering a first image of at least the portion of the occluded object in the display window at the first magnification factor at a first time; obtaining a second magnification factor, different than the first magnification factor; and rendering a second image of at least the portion of the occluded object in the display window at the second magnification factor at a second time after the first time.
- Embodiment 86. A hybrid reality system comprising: a display; a structure, coupled to the display and adapted to position the display in a field-of-view (FOV) of the user; a processor, coupled to the display, the processor configured to: receive data associated with an occluded object, the occluded object at least partially occluded by a real-world object at a position of the user; create a display window on the display; obtain a first magnification factor; render a first image of at least the portion of the occluded object in the display window at the first magnification factor at a first time; obtain a second magnification factor, different than the first magnification factor; and render a second image of at least the portion of the occluded object in the display window at the second magnification factor at a second time after the first time.
- Embodiment 87. A method to provide information obscured to a user through a display of a hybrid-reality system (DHR), the method comprising: establishing a view position relative to a real-world object; receiving first data associated with an occluded object, the first data providing information about a first position, at a first time, of at least a moveable portion of the occluded object, the occluded object at least partially occluded from the view position by a surface of the real-world object at the first time; rendering a first image of at least the moveable portion of the occluded object in the first position on the display; receiving second data associated with the occluded object, the second data providing information about a second position, at a second time, of the moveable portion of the occluded object, the occluded object at least partially occluded from the view position by the surface of the real-world object at the second time; and rendering a second image of at least the moveable portion of the occluded object in the second position on the display to replace the first image.
- Embodiment 88. The method of embodiment 87, wherein: the first data indicates that the moveable portion of the occluded object is occluded from the view position by the surface of the real world object at the first time; and the second data indicates that the moveable portion of the occluded object is occluded from the view position by the surface of the real world object at the second time.
- Embodiment 89. The method of embodiment 87, wherein: the first data indicates that the moveable portion of the occluded object is, at least in part, not occluded from the view position by the surface of the real world object at the first time; and the second data indicates that the moveable portion of the occluded object is occluded from the view position by the surface of the real world object at the second time.
- Embodiment 90. The method of embodiment 87, the occluded object comprising a first object and a second object, and the moveable portion of the occluded object consisting of the second object.
- Embodiment 91. The method of embodiment 90, further comprising: receiving third data associated with the occluded object, the third data providing information about a third position, at a third time, of the first object without information related to the second object, the first object at least partially occluded from the view position by the surface of the real-world object at the third time; and rendering a third image of the first portion of the first object in the third position, without the second object, on the display.
- Embodiment 92. The method of embodiment 91, wherein the third time occurs before the second time; and the second object becomes occluded by a surface of the real-world object between the third time and the second time.
- Embodiment 93. The method of embodiment 87, further comprising: creating a window on the display positioned to at least partially occlude the real-world object; and rendering the second image into the window consistent with a real-world position of the second set of occluded objects relative to the view position.
- Embodiment 94. The method of embodiment 87, further comprising: receiving first sensor data from a sensor included in the occluded object, the first data comprising the first sensor data; determining the first position of the moveable portion of the occluded object based on the first sensor data; receiving second sensor data from the sensor, the second data comprising the second sensor data; and determining the second position of the moveable portion of the occluded object based on the second sensor data.
- Embodiment 95. The method of embodiment 87, further comprising: receiving first sensor data from a sensor separate from the occluded object, the first data comprising the first sensor data; determining the first position of the moveable portion of the occluded object based on the first sensor data; receiving second sensor data from the sensor, the second data comprising the second sensor data; and determining the second position of the moveable portion of the occluded object based on the second sensor data.
- Embodiment 96. The method of embodiment 87, wherein the moveable portion of the occluded object is under control of a user of the hybrid-reality system.
- Embodiment 97. The method of embodiment 96, further comprising providing guidance to the user on where to move the moveable portion of the occluded object.
- Embodiment 98. The method of embodiment 87, wherein the occluded object is associated with a body part of a user of the hybrid-reality system.
- Embodiment 99. The method of embodiment 87, further comprising: receiving sensor data from a sensor, the sensor data providing information about a third position of a second object; and determining the second position of the moveable portion of the occluded object based, at least in part, on the third position of the second object.
-
Embodiment 100. The method of embodiment 99, wherein the second object is separate from the occluded object. - Embodiment 101. The method of embodiment 99, wherein the second object is coupled to the occluded object.
-
Embodiment 102. The method ofembodiment 100, wherein the second object, at least in part, moves the moveable portion of the occluded object. - Embodiment 103. The method of embodiment 99, further comprising: storing the sensor data; and computing the second position based, at least in part, on previously stored sensor data.
- Embodiment 104. An article of manufacture comprising a tangible medium, that is not a transitory propagating signal, encoding computer-readable instructions that, when applied to a computer system, instruct the computer system to perform a method comprising: establishing a view position relative to a real-world object; receiving first data associated with an occluded object, the first data providing information about a first position, at a first time, of at least a moveable portion of the occluded object, the occluded object at least partially occluded from the view position by a surface of the real-world object at the first time; rendering a first image of at least the moveable portion of the occluded object in the first position on the display; receiving second data associated with the occluded object, the second data providing information about a second position, at a second time, of the moveable portion of the occluded object, the occluded object at least partially occluded from the view position by the surface of the real-world object at the second time; and rendering a second image of at least the moveable portion of the occluded object in the second position on the display to replace the first image.
-
Embodiment 105. A hybrid-reality system comprising: a display; a structure, coupled to the display and adapted to position the display in a field-of-view (FOV) of the user; and a processor, coupled to the display, the processor configured to: establish a view position relative to a real-world object; receive first data associated with an occluded object, the first data providing information about a first position, at a first time, of at least a moveable portion of the occluded object, the occluded object at least partially occluded from the view position by a surface of the real-world object at the first time; render a first image of at least the moveable portion of the occluded object in the first position on the display; receive second data associated with the occluded object, the second data providing information about a second position, at a second time, of the moveable portion of the occluded object, the occluded object at least partially occluded from the view position by the surface of the real-world object at the second time; and render a second image of at least the moveable portion of the occluded object in the second position on the display to replace the first image. - Unless otherwise indicated, all numbers expressing quantities, properties, measurements, and so forth, used in the specification and claims are to be understood as being modified in all instances by the term “about.” The recitation of numerical ranges by endpoints includes all numbers subsumed within that range, including the endpoints (e.g. 1 to 5 includes 1, 2.78, π, 3.
33 , 4, and 5). - As used in this specification and the appended claims, the singular forms “a”, “an”, and “the” include plural referents unless the content clearly dictates otherwise. Furthermore, as used in this specification and the appended claims, the term “or” is generally employed in its sense including “and/or” unless the content clearly dictates otherwise. As used herein, the term “coupled” includes direct and indirect connections. Moreover, where first and second devices are coupled, intervening devices including active devices may be located there between.
- The description of the various embodiments provided above is illustrative in nature and is not intended to limit this disclosure, its application, or uses. Thus, different variations beyond those described herein are intended to be within the scope of embodiments. Such variations are not to be regarded as a departure from the intended scope of this disclosure. As such, the breadth and scope of the present disclosure should not be limited by the above-described exemplary embodiments, but should be defined only in accordance with the following claims and equivalents thereof.
Claims (20)
1. A method to display an occluded object to a user on a display of a hybrid reality system (DHR), the method comprising:
determining, at a first time, a first position of the DHR relative to a first real-world object;
establishing a viewport on the first real-world object by receiving, from the user, an indication of a first location on the first real-world object to use as an anchor point for the viewport;
receiving data associated with the occluded object at the hybrid-reality system over a computer network from a device separate from the hybrid reality system, wherein the occluded object is a second real-world object or a part of the first real-world object;
rendering a first image showing a first virtual view of at least some of the occluded object from a first perspective of the first position of the DHR using the received data associated with the occluded object; and
presenting at least a portion of the first image on the DHR, clipped to fit inside of the viewport and overlaid on a first view of the first real-world object shown from the first position of the DHR.
2. The method of claim 1 , further comprising receiving a selection of a size and/or shape of the viewport from the user and using the selection in said establishment of the viewport.
3. The method of claim 2 , further comprising:
receiving, from the user, a selection of a different size and/or shape of the viewport;
adjusting the viewport to have the different size and or shape; and
presenting a different portion of the first image on the DHR, clipped to fit inside of the viewport having the different size and or shape.
4. The method of claim 1 , further comprising:
receiving, from the user, an indication of a second location on the first real-world object;
moving the viewport on the first real-world object to be anchored to the second location; and
presenting a different portion of the first image on the DHR, clipped to fit inside of the viewport anchored to the second location.
5. The method of claim 1 , further comprising:
determining, at a second time after the first time, that the DHR is at a second position relative to the first real-world object;
rendering a second image showing a second virtual view of at least some of the occluded object from a second perspective of the second position of the DHR using the received data associated with the occluded object; and
presenting at least a portion of the second image on the DHR, clipped to fit inside of the viewport and overlaid on a second view of the first real-world object shown from the second position of the DHR, wherein the viewport is still anchored to the first location on the first real-world object.
6. The method of claim 5 , wherein a real-world position of one or both of the DHR and the first real-world object changes between the first time and the second time.
7. The method of claim 1 , further comprising:
receiving additional data associated with the occluded object at the hybrid-reality system over a computer network from the device separate from the hybrid reality system indicating that an aspect of the occluded object has changed,
rendering a second image showing a second virtual view of at least some of the occluded object with the changed aspect from the first perspective using the received additional data associated with the occluded object; and
presenting at least a portion of the second image on the DHR, clipped to fit inside of the viewport and overlaid on the first view of the first real-world object shown from the first position of the DHR.
8. An article of manufacture comprising a tangible medium, that is not a transitory propagating signal, encoding computer-readable instructions that, when applied to a computer system coupled to a display of a hybrid reality system (DHR), instruct the computer system to perform a method comprising:
determining, at a first time, a first position of the DHR relative to a first real-world object;
establishing a viewport on the first real-world object by receiving, from the user, an indication of a first location on the first real-world object to use as an anchor point for the viewport;
receiving data associated with the occluded object at the hybrid-reality system over a computer network from a device separate from the hybrid reality system, wherein the occluded object is a second real-world object or a part of the first real-world object;
rendering a first image showing a first virtual view of at least some of the occluded object from a first perspective of the first position of the DHR using the received data associated with the occluded object; and
presenting at least a portion of the first image on the DHR, clipped to fit inside of the viewport and overlaid on a first view of the first real-world object shown from the first position of the DHR.
9. The article of manufacture of claim 8 , the method further comprising receiving a selection of a size and/or shape of the viewport from the user and using the selection in said establishment of the viewport.
10. The article of manufacture of claim 9 , the method further comprising:
receiving, from the user, a selection of a different size and/or shape of the viewport;
adjusting the viewport to have the different size and or shape; and
presenting a different portion of the first image on the DHR, clipped to fit inside of the viewport having the different size and or shape.
11. The article of manufacture of claim 8 , the method further comprising:
receiving, from the user, an indication of a second location on the first real-world object;
moving the viewport on the first real-world object to be anchored to the second location; and
presenting a different portion of the first image on the DHR, clipped to fit inside of the viewport anchored to the second location.
12. The article of manufacture of claim 8 , the method further comprising:
determining, at a second time after the first time, that the DHR is at a second position relative to the first real-world object;
rendering a second image showing a second virtual view of at least some of the occluded object from a second perspective of the second position of the DHR using the received data associated with the occluded object; and
presenting at least a portion of the second image on the DHR, clipped to fit inside of the viewport and overlaid on a second view of the first real-world object shown from the second position of the DHR, wherein the viewport is still anchored to the first location on the first real-world object.
13. The article of manufacture of claim 8 , the method further comprising:
receiving additional data associated with the occluded object at the hybrid-reality system over a computer network from the device separate from the hybrid reality system indicating that an aspect of the occluded object has changed,
rendering a second image showing a second virtual view of at least some of the occluded object with the changed aspect from the first perspective using the received additional data associated with the occluded object; and
presenting at least a portion of the second image on the DHR, clipped to fit inside of the viewport and overlaid on the first view of the first real-world object shown from the first position of the DHR.
14. A hybrid reality system comprising:
a display;
a sensor;
a structure, coupled to the display and the sensor, and adapted to position the display in a field-of-view (FOV) of the user;
a human input device;
a computer network interface; and
a processor, coupled to the display, the sensor, the human input device, and the computer network interface, the processor programmed to:
determine, at a first time using the sensor, a first position of the display relative to a first real-world object;
establish a viewport on the first real-world object by receiving, from human input device, an indication of a first location on the first real-world object to use as an anchor point for the viewport;
receive data associated with the occluded object at the hybrid-reality system through the computer network interface from a device separate from the hybrid reality system, wherein the occluded object is a second real-world object or a part of the first real-world object;
render a first image showing a first virtual view of at least some of the occluded object from a first perspective of the first position of the display using the received data associated with the occluded object; and
present at least a portion of the first image on the display, clipped to fit inside of the viewport and overlaid on a first view of the first real-world object shown from the first position of the display.
15. The system of claim 14 , wherein the display is at least partially transparent and the first view of the first real-world object comprises light from the first real-world object passing through the display.
16. The system of claim 14 , processor further programmed to receive a selection of a size and/or shape of the viewport through the human input device and use the selection in said establishment of the viewport.
17. The system of claim 16 , the processor further programmed to:
receive, from the user, a selection of a different size and/or shape of the viewport;
adjust the viewport to have the different size and or shape; and
present a different portion of the first image on the DHR, clipped to fit inside of the viewport having the different size and or shape.
18. The system of claim 14 , the processor further programmed to:
receive, from the user, an indication of a second location on the first real-world object;
move the viewport on the first real-world object to be anchored to the second location; and
present a different portion of the first image on the DHR, clipped to fit inside of the viewport anchored to the second location.
19. The system of claim 14 , the processor further programmed to:
determine, at a second time after the first time, that the DHR is at a second position relative to the first real-world object;
render a second image showing a second virtual view of at least some of the occluded object from a second perspective of the second position of the DHR using the received data associated with the occluded object; and
present at least a portion of the second image on the DHR, clipped to fit inside of the viewport and overlaid on a second view of the first real-world object shown from the second position of the DHR, wherein the viewport is still anchored to the first location on the first real-world object.
20. The system of claim 14 , the processor further programmed to:
receive additional data associated with the occluded object at the hybrid-reality system over a computer network from the device separate from the hybrid reality system indicating that an aspect of the occluded object has changed,
render a second image showing a second virtual view of at least some of the occluded object with the changed aspect from the first perspective using the received additional data associated with the occluded object; and
present at least a portion of the second image on the DHR, clipped to fit inside of the viewport and overlaid on the first view of the first real-world object shown from the first position of the DHR.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/574,770 US20220139051A1 (en) | 2018-09-06 | 2022-01-13 | Creating a viewport in a hybrid-reality system |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/123,543 US10902678B2 (en) | 2018-09-06 | 2018-09-06 | Display of hidden information |
US17/154,228 US11238666B2 (en) | 2018-09-06 | 2021-01-21 | Display of an occluded object in a hybrid-reality system |
US17/574,770 US20220139051A1 (en) | 2018-09-06 | 2022-01-13 | Creating a viewport in a hybrid-reality system |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/154,228 Continuation US11238666B2 (en) | 2018-09-06 | 2021-01-21 | Display of an occluded object in a hybrid-reality system |
Publications (1)
Publication Number | Publication Date |
---|---|
US20220139051A1 true US20220139051A1 (en) | 2022-05-05 |
Family
ID=69719873
Family Applications (7)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/123,543 Active US10902678B2 (en) | 2018-09-06 | 2018-09-06 | Display of hidden information |
US16/135,175 Active US10861239B2 (en) | 2018-09-06 | 2018-09-19 | Presentation of information associated with hidden objects |
US16/135,198 Active US10803668B2 (en) | 2018-09-06 | 2018-09-19 | Controlling presentation of hidden information |
US16/135,214 Active 2038-09-22 US10636197B2 (en) | 2018-09-06 | 2018-09-19 | Dynamic display of hidden information |
US16/135,119 Active US10636216B2 (en) | 2018-09-06 | 2018-09-19 | Virtual manipulation of hidden objects |
US17/154,228 Active US11238666B2 (en) | 2018-09-06 | 2021-01-21 | Display of an occluded object in a hybrid-reality system |
US17/574,770 Abandoned US20220139051A1 (en) | 2018-09-06 | 2022-01-13 | Creating a viewport in a hybrid-reality system |
Family Applications Before (6)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/123,543 Active US10902678B2 (en) | 2018-09-06 | 2018-09-06 | Display of hidden information |
US16/135,175 Active US10861239B2 (en) | 2018-09-06 | 2018-09-19 | Presentation of information associated with hidden objects |
US16/135,198 Active US10803668B2 (en) | 2018-09-06 | 2018-09-19 | Controlling presentation of hidden information |
US16/135,214 Active 2038-09-22 US10636197B2 (en) | 2018-09-06 | 2018-09-19 | Dynamic display of hidden information |
US16/135,119 Active US10636216B2 (en) | 2018-09-06 | 2018-09-19 | Virtual manipulation of hidden objects |
US17/154,228 Active US11238666B2 (en) | 2018-09-06 | 2021-01-21 | Display of an occluded object in a hybrid-reality system |
Country Status (1)
Country | Link |
---|---|
US (7) | US10902678B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230014562A1 (en) * | 2019-12-27 | 2023-01-19 | Sony Group Corporation | Image processing apparatus, image processing method, and image processing program |
US12039139B1 (en) * | 2022-06-24 | 2024-07-16 | Freedom Scientific, Inc. | Bifurcation of rendered and system pointing indicia to enable input via a viewport |
Families Citing this family (103)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3062142B1 (en) | 2015-02-26 | 2018-10-03 | Nokia Technologies OY | Apparatus for a near-eye display |
US11106273B2 (en) | 2015-10-30 | 2021-08-31 | Ostendo Technologies, Inc. | System and methods for on-body gestural interfaces and projection displays |
US10650552B2 (en) | 2016-12-29 | 2020-05-12 | Magic Leap, Inc. | Systems and methods for augmented reality |
EP4300160A3 (en) | 2016-12-30 | 2024-05-29 | Magic Leap, Inc. | Polychromatic light out-coupling apparatus, near-eye displays comprising the same, and method of out-coupling polychromatic light |
US10319109B2 (en) * | 2017-03-31 | 2019-06-11 | Honda Motor Co., Ltd. | Interaction with physical objects as proxy objects representing virtual objects |
US11184574B2 (en) | 2017-07-17 | 2021-11-23 | Facebook, Inc. | Representing real-world objects with a virtual reality environment |
US10578870B2 (en) | 2017-07-26 | 2020-03-03 | Magic Leap, Inc. | Exit pupil expander |
JP7282090B2 (en) | 2017-12-10 | 2023-05-26 | マジック リープ, インコーポレイテッド | Antireflection coating on optical waveguide |
KR20200100720A (en) | 2017-12-20 | 2020-08-26 | 매직 립, 인코포레이티드 | Insert for augmented reality viewing device |
US10755676B2 (en) | 2018-03-15 | 2020-08-25 | Magic Leap, Inc. | Image correction due to deformation of components of a viewing device |
US11885871B2 (en) | 2018-05-31 | 2024-01-30 | Magic Leap, Inc. | Radar head pose localization |
EP3804306B1 (en) | 2018-06-05 | 2023-12-27 | Magic Leap, Inc. | Homography transformation matrices based temperature calibration of a viewing system |
US20190377538A1 (en) | 2018-06-08 | 2019-12-12 | Curious Company, LLC | Information Presentation Through Ambient Sounds |
WO2020010097A1 (en) | 2018-07-02 | 2020-01-09 | Magic Leap, Inc. | Pixel intensity modulation using modifying gain values |
US11856479B2 (en) | 2018-07-03 | 2023-12-26 | Magic Leap, Inc. | Systems and methods for virtual and augmented reality along a route with markers |
US11510027B2 (en) | 2018-07-03 | 2022-11-22 | Magic Leap, Inc. | Systems and methods for virtual and augmented reality |
US10650600B2 (en) | 2018-07-10 | 2020-05-12 | Curious Company, LLC | Virtual path display |
US10818088B2 (en) | 2018-07-10 | 2020-10-27 | Curious Company, LLC | Virtual barrier objects |
WO2020023543A1 (en) | 2018-07-24 | 2020-01-30 | Magic Leap, Inc. | Viewing device with dust seal integration |
EP4270016A3 (en) | 2018-07-24 | 2024-02-07 | Magic Leap, Inc. | Temperature dependent calibration of movement detection devices |
US11112862B2 (en) | 2018-08-02 | 2021-09-07 | Magic Leap, Inc. | Viewing system with interpupillary distance compensation based on head motion |
US10795458B2 (en) | 2018-08-03 | 2020-10-06 | Magic Leap, Inc. | Unfused pose-based drift correction of a fused pose of a totem in a user interaction system |
JP7487176B2 (en) | 2018-08-22 | 2024-05-20 | マジック リープ, インコーポレイテッド | Patient Visibility System |
US10902678B2 (en) | 2018-09-06 | 2021-01-26 | Curious Company, LLC | Display of hidden information |
US11030458B2 (en) * | 2018-09-14 | 2021-06-08 | Microsoft Technology Licensing, Llc | Generating synthetic digital assets for a virtual scene including a model of a real-world object |
EP3877831A4 (en) * | 2018-11-09 | 2022-08-03 | Beckman Coulter, Inc. | Service glasses with selective data provision |
US11288733B2 (en) * | 2018-11-14 | 2022-03-29 | Mastercard International Incorporated | Interactive 3D image projection systems and methods |
JP7472127B2 (en) | 2018-11-16 | 2024-04-22 | マジック リープ, インコーポレイテッド | Image size triggered clarification to maintain image clarity |
US10943410B2 (en) * | 2018-11-19 | 2021-03-09 | Medtronic, Inc. | Extended reality assembly modeling |
US11055913B2 (en) | 2018-12-04 | 2021-07-06 | Curious Company, LLC | Directional instructions in an hybrid reality system |
CN113454507B (en) | 2018-12-21 | 2024-05-07 | 奇跃公司 | Cavitation structure for promoting total internal reflection within a waveguide |
US10970935B2 (en) | 2018-12-21 | 2021-04-06 | Curious Company, LLC | Body pose message system |
US11030812B2 (en) * | 2019-01-02 | 2021-06-08 | The Boeing Company | Augmented reality system using enhanced models |
US11425189B2 (en) | 2019-02-06 | 2022-08-23 | Magic Leap, Inc. | Target intent-based clock speed determination and adjustment to limit total heat generated by multiple processors |
US11189047B2 (en) * | 2019-03-11 | 2021-11-30 | Disney Enterprises, Inc. | Gaze based rendering for audience engagement |
EP3939030A4 (en) | 2019-03-12 | 2022-11-30 | Magic Leap, Inc. | Registration of local content between first and second augmented reality viewers |
US10783671B1 (en) * | 2019-03-12 | 2020-09-22 | Bell Textron Inc. | Systems and method for aligning augmented reality display with real-time location sensors |
US11150788B2 (en) * | 2019-03-14 | 2021-10-19 | Ebay Inc. | Augmented or virtual reality (AR/VR) companion device techniques |
US10890992B2 (en) | 2019-03-14 | 2021-01-12 | Ebay Inc. | Synchronizing augmented or virtual reality (AR/VR) applications with companion device interfaces |
US10872584B2 (en) | 2019-03-14 | 2020-12-22 | Curious Company, LLC | Providing positional information using beacon devices |
CN114127837A (en) | 2019-05-01 | 2022-03-01 | 奇跃公司 | Content providing system and method |
US11334212B2 (en) | 2019-06-07 | 2022-05-17 | Facebook Technologies, Llc | Detecting input in artificial reality systems based on a pinch and pull gesture |
WO2020261292A1 (en) * | 2019-06-24 | 2020-12-30 | Touchmagix Media Pvt. Ltd. | Interactive reality activity augmentation |
US11514673B2 (en) * | 2019-07-26 | 2022-11-29 | Magic Leap, Inc. | Systems and methods for augmented reality |
US20220146822A1 (en) * | 2019-08-15 | 2022-05-12 | Ostendo Technologies, Inc. | Wearable Display Systems and Design Methods Thereof |
US11086406B1 (en) | 2019-09-20 | 2021-08-10 | Facebook Technologies, Llc | Three-state gesture virtual controls |
US11176745B2 (en) | 2019-09-20 | 2021-11-16 | Facebook Technologies, Llc | Projection casting in virtual environments |
US11170576B2 (en) * | 2019-09-20 | 2021-11-09 | Facebook Technologies, Llc | Progressive display of virtual objects |
US11189099B2 (en) | 2019-09-20 | 2021-11-30 | Facebook Technologies, Llc | Global and local mode virtual object interactions |
US10991163B2 (en) | 2019-09-20 | 2021-04-27 | Facebook Technologies, Llc | Projection casting in virtual environments |
US12033240B2 (en) * | 2019-09-27 | 2024-07-09 | Apple Inc. | Method and device for resolving focal conflict |
CN112581628A (en) * | 2019-09-27 | 2021-03-30 | 苹果公司 | Method and apparatus for resolving focus conflicts |
US12033081B2 (en) | 2019-11-14 | 2024-07-09 | Magic Leap, Inc. | Systems and methods for virtual and augmented reality |
EP4058979A4 (en) | 2019-11-15 | 2023-01-11 | Magic Leap, Inc. | A viewing system for use in a surgical environment |
US11175730B2 (en) | 2019-12-06 | 2021-11-16 | Facebook Technologies, Llc | Posture-based virtual space configurations |
US11609627B2 (en) * | 2019-12-09 | 2023-03-21 | Lenovo (Singapore) Pte. Ltd. | Techniques for processing audible input directed to second device based on user looking at icon presented on display of first device |
US11816757B1 (en) * | 2019-12-11 | 2023-11-14 | Meta Platforms Technologies, Llc | Device-side capture of data representative of an artificial reality environment |
US11475639B2 (en) | 2020-01-03 | 2022-10-18 | Meta Platforms Technologies, Llc | Self presence in artificial reality |
DE112021001094T5 (en) * | 2020-02-19 | 2023-01-12 | Sony Group Corporation | INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING METHOD AND COMPUTER PROGRAM |
US11699267B1 (en) * | 2020-03-26 | 2023-07-11 | Apple Inc. | Coherent occlusion of objects |
JP6970774B2 (en) * | 2020-03-30 | 2021-11-24 | Sppテクノロジーズ株式会社 | Mobile terminals, methods and programs |
GB2609863A (en) * | 2020-05-06 | 2023-02-15 | Apple Inc | 3D photos |
US11257280B1 (en) | 2020-05-28 | 2022-02-22 | Facebook Technologies, Llc | Element-based switching of ray casting rules |
US11410270B2 (en) * | 2020-06-03 | 2022-08-09 | University Of Central Florida Research Foundation, Inc. | Intelligent object magnification for augmented reality displays |
GB202009562D0 (en) * | 2020-06-23 | 2020-08-05 | Univ Of Essex Enterprise Limited | Visual assistance |
US11486836B1 (en) * | 2020-06-29 | 2022-11-01 | The United States Of America As Represented By The Secretary Of The Navy | Method and system for determining the location in 3D space of an object within an enclosed opaque container |
US11256336B2 (en) | 2020-06-29 | 2022-02-22 | Facebook Technologies, Llc | Integration of artificial reality interaction modes |
US11106328B1 (en) | 2020-07-28 | 2021-08-31 | Qualcomm Incorporated | Private control interfaces for extended reality |
US11227445B1 (en) | 2020-08-31 | 2022-01-18 | Facebook Technologies, Llc | Artificial reality augments and surfaces |
US11176755B1 (en) | 2020-08-31 | 2021-11-16 | Facebook Technologies, Llc | Artificial reality augments and surfaces |
US11178376B1 (en) | 2020-09-04 | 2021-11-16 | Facebook Technologies, Llc | Metering for display modes in artificial reality |
KR102596341B1 (en) * | 2020-09-25 | 2023-11-01 | 애플 인크. | Methods for manipulating objects in the environment |
US11113893B1 (en) * | 2020-11-17 | 2021-09-07 | Facebook Technologies, Llc | Artificial reality environment with glints displayed by an extra reality device |
CN112506345B (en) * | 2020-12-10 | 2024-04-16 | 北京达佳互联信息技术有限公司 | Page display method and device, electronic equipment and storage medium |
US11461973B2 (en) | 2020-12-22 | 2022-10-04 | Meta Platforms Technologies, Llc | Virtual reality locomotion via hand gesture |
US11409405B1 (en) | 2020-12-22 | 2022-08-09 | Facebook Technologies, Llc | Augment orchestration in an artificial reality environment |
FR3118493B1 (en) * | 2020-12-28 | 2023-01-13 | Thales Sa | METHOD AND DEVICE FOR CONTROLLING THE POSITIONING DETERMINATION OF A WEARED INFORMATION DISPLAY DEVICE |
US11294475B1 (en) | 2021-02-08 | 2022-04-05 | Facebook Technologies, Llc | Artificial reality multi-modal input switching model |
JP2022148382A (en) * | 2021-03-24 | 2022-10-06 | キヤノン株式会社 | Display device, display control system, information processing device, and method of controlling display device |
JP2024514614A (en) | 2021-04-13 | 2024-04-02 | アップル インコーポレイテッド | Methods for providing immersive experiences within environments |
WO2022220459A1 (en) * | 2021-04-14 | 2022-10-20 | Samsung Electronics Co., Ltd. | Method and electronic device for selective magnification in three dimensional rendering systems |
US11295503B1 (en) | 2021-06-28 | 2022-04-05 | Facebook Technologies, Llc | Interactive avatars in artificial reality |
US11762952B2 (en) | 2021-06-28 | 2023-09-19 | Meta Platforms Technologies, Llc | Artificial reality application lifecycle |
US11521361B1 (en) | 2021-07-01 | 2022-12-06 | Meta Platforms Technologies, Llc | Environment model with surfaces and per-surface volumes |
US12008717B2 (en) | 2021-07-07 | 2024-06-11 | Meta Platforms Technologies, Llc | Artificial reality environment control through an artificial reality environment schema |
WO2023009112A1 (en) * | 2021-07-28 | 2023-02-02 | Innopeak Technology, Inc. | Augmented reality content rendering |
US12056268B2 (en) | 2021-08-17 | 2024-08-06 | Meta Platforms Technologies, Llc | Platformization of mixed reality objects in virtual reality environments |
WO2023023628A1 (en) * | 2021-08-18 | 2023-02-23 | Advanced Neuromodulation Systems, Inc. | Systems and methods for providing digital health services |
US11748944B2 (en) | 2021-10-27 | 2023-09-05 | Meta Platforms Technologies, Llc | Virtual object structures and interrelationships |
US11798247B2 (en) | 2021-10-27 | 2023-10-24 | Meta Platforms Technologies, Llc | Virtual object structures and interrelationships |
US12093447B2 (en) | 2022-01-13 | 2024-09-17 | Meta Platforms Technologies, Llc | Ephemeral artificial reality experiences |
US12067688B2 (en) | 2022-02-14 | 2024-08-20 | Meta Platforms Technologies, Llc | Coordination of interactions of virtual objects |
US20230316644A1 (en) * | 2022-03-31 | 2023-10-05 | Topcon Corporation | Point cloud information generating system, control method of point cloud information generating system, and control program of point cloud information generating system |
US12026527B2 (en) | 2022-05-10 | 2024-07-02 | Meta Platforms Technologies, Llc | World-controlled and application-controlled augments in an artificial-reality environment |
US12097427B1 (en) | 2022-08-26 | 2024-09-24 | Meta Platforms Technologies, Llc | Alternate avatar controls |
US12112011B2 (en) | 2022-09-16 | 2024-10-08 | Apple Inc. | System and method of application-based three-dimensional refinement in multi-user communication sessions |
US12099653B2 (en) | 2022-09-22 | 2024-09-24 | Apple Inc. | User interface response based on gaze-holding event assessment |
US11947862B1 (en) | 2022-12-30 | 2024-04-02 | Meta Platforms Technologies, Llc | Streaming native application content to artificial reality devices |
FR3145637A1 (en) * | 2023-02-02 | 2024-08-09 | Orange | Method for generating data for enriching a view of an environment, corresponding rendering device, server equipment, system and computer program |
US12108012B2 (en) | 2023-02-27 | 2024-10-01 | Apple Inc. | System and method of managing spatial states and display modes in multi-user communication sessions |
US11991222B1 (en) | 2023-05-02 | 2024-05-21 | Meta Platforms Technologies, Llc | Persistent call control user interface element in an artificial reality environment |
US12118200B1 (en) | 2023-06-02 | 2024-10-15 | Apple Inc. | Fuzzy hit testing |
US12113948B1 (en) | 2023-06-04 | 2024-10-08 | Apple Inc. | Systems and methods of managing spatial groups in multi-user communication sessions |
Citations (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080267490A1 (en) * | 2007-04-26 | 2008-10-30 | General Electric Company | System and method to improve visibility of an object in an imaged subject |
US20090109244A1 (en) * | 2007-10-26 | 2009-04-30 | Mitel Nteworks Corporation | Method and apparatus for maintaining a visual appearance of at least one window when a resolution of the screen changes |
US20090251537A1 (en) * | 2008-04-02 | 2009-10-08 | David Keidar | Object content navigation |
US20100302015A1 (en) * | 2009-05-29 | 2010-12-02 | Microsoft Corporation | Systems and methods for immersive interaction with virtual objects |
US20120105473A1 (en) * | 2010-10-27 | 2012-05-03 | Avi Bar-Zeev | Low-latency fusing of virtual and real content |
US20120289290A1 (en) * | 2011-05-12 | 2012-11-15 | KT Corporation, KT TECH INC. | Transferring objects between application windows displayed on mobile terminal |
US20130073637A1 (en) * | 2011-09-15 | 2013-03-21 | Pantech Co., Ltd. | Mobile terminal, server, and method for establishing communication channel using augmented reality (ar) |
US20130336629A1 (en) * | 2012-06-19 | 2013-12-19 | Qualcomm Incorporated | Reactive user interface for head-mounted display |
US8863039B2 (en) * | 2011-04-18 | 2014-10-14 | Microsoft Corporation | Multi-dimensional boundary effects |
US20150130790A1 (en) * | 2013-11-14 | 2015-05-14 | Nintendo Of America Inc. | Visually Convincing Depiction of Object Interactions in Augmented Reality Images |
US20150278604A1 (en) * | 2014-03-30 | 2015-10-01 | Gary Stephen Shuster | Systems, Devices And Methods For Person And Object Tracking And Data Exchange |
US20160147408A1 (en) * | 2014-11-25 | 2016-05-26 | Johnathan Bevis | Virtual measurement tool for a wearable visualization device |
US20160270656A1 (en) * | 2015-03-16 | 2016-09-22 | Magic Leap, Inc. | Methods and systems for diagnosing and treating health ailments |
US20170005826A1 (en) * | 2015-07-01 | 2017-01-05 | Samsung Electronics Co., Ltd. | Notification apparatus and object position notification method thereof |
US20170173457A1 (en) * | 2014-06-09 | 2017-06-22 | Immersion Corporation | System and method for outputting a haptic effect based on a camera zoom state, camera perspective, and/or a direction in which a user's eyes are directed |
US20170269712A1 (en) * | 2016-03-16 | 2017-09-21 | Adtile Technologies Inc. | Immersive virtual experience using a mobile communication device |
US20170330376A1 (en) * | 2016-05-10 | 2017-11-16 | Disney Enterprises, Inc. | Occluded virtual image display |
US20170354878A1 (en) * | 2016-06-13 | 2017-12-14 | Sony Interactive Entertainment America Llc | Browser-based cloud gaming |
US10065074B1 (en) * | 2014-12-12 | 2018-09-04 | Enflux, Inc. | Training systems with wearable sensors for providing users with feedback |
US20180299543A1 (en) * | 2015-05-11 | 2018-10-18 | Vayyar Imaging Ltd | System, device and methods for imaging of objects using electromagnetic array |
US20180307310A1 (en) * | 2015-03-21 | 2018-10-25 | Mine One Gmbh | Virtual 3d methods, systems and software |
US20190026592A1 (en) * | 2017-07-18 | 2019-01-24 | Lenovo (Singapore) Pte. Ltd. | Indication of characteristic based on condition |
US20200082601A1 (en) * | 2018-09-06 | 2020-03-12 | Curious Company, LLC | Virtual manipulation of hidden objects |
US20210199973A1 (en) * | 2019-03-14 | 2021-07-01 | Curious Company, LLC | Hybrid reality system including beacons |
Family Cites Families (116)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3861350A (en) | 1971-07-23 | 1975-01-21 | Albert B Selleck | Warning system and device, and malodorous warning composition of matter and process for its preparation |
US5309169A (en) | 1993-02-01 | 1994-05-03 | Honeywell Inc. | Visor display with fiber optic faceplate correction |
US5815411A (en) | 1993-09-10 | 1998-09-29 | Criticom Corporation | Electro-optic vision system which exploits position and attitude |
US7406214B2 (en) | 1999-05-19 | 2008-07-29 | Digimarc Corporation | Methods and devices employing optical sensors and/or steganography |
US20020176259A1 (en) | 1999-11-18 | 2002-11-28 | Ducharme Alfred D. | Systems and methods for converting illumination |
US20020196202A1 (en) | 2000-08-09 | 2002-12-26 | Bastian Mark Stanley | Method for displaying emergency first responder command, control, and safety information using augmented reality |
US20020191004A1 (en) | 2000-08-09 | 2002-12-19 | Ebersole John Franklin | Method for visualization of hazards utilizing computer-generated three-dimensional representations |
US6903752B2 (en) | 2001-07-16 | 2005-06-07 | Information Decision Technologies, Llc | Method to view unseen atmospheric phenomenon using augmented reality |
EP1466300A1 (en) | 2002-01-15 | 2004-10-13 | Information Decision Technologies LLC | Method and system to display both visible and invisible hazards and hazard information |
US20030210812A1 (en) | 2002-02-26 | 2003-11-13 | Ali Khamene | Apparatus and method for surgical navigation |
JP5145534B2 (en) | 2005-07-01 | 2013-02-20 | 独立行政法人物質・材料研究機構 | Phosphor, method of manufacturing the same, and lighting fixture |
US20070045641A1 (en) | 2005-08-23 | 2007-03-01 | Yin Chua Janet B | Light source with UV LED and UV reflector |
US9015029B2 (en) | 2007-06-04 | 2015-04-21 | Sony Corporation | Camera dictionary based on object recognition |
US20090065715A1 (en) | 2007-08-24 | 2009-03-12 | Lee Wainright | Universal ultraviolet/ IR/ visible light emitting module |
WO2009120303A1 (en) | 2008-03-24 | 2009-10-01 | Google Inc. | Panoramic images within driving directions |
US20100117828A1 (en) | 2008-11-07 | 2010-05-13 | Stuart Owen Goldman | Alarm scheme with olfactory alerting component |
US10019634B2 (en) | 2010-06-04 | 2018-07-10 | Masoud Vaziri | Method and apparatus for an eye tracking wearable computer |
US20110270135A1 (en) | 2009-11-30 | 2011-11-03 | Christopher John Dooley | Augmented reality for testing and training of human performance |
US8614539B2 (en) | 2010-10-05 | 2013-12-24 | Intematix Corporation | Wavelength conversion component with scattering particles |
US9122053B2 (en) | 2010-10-15 | 2015-09-01 | Microsoft Technology Licensing, Llc | Realistic occlusion for a head mounted augmented reality display |
US9129438B2 (en) | 2011-01-18 | 2015-09-08 | NedSense Loft B.V. | 3D modeling and rendering from 2D images |
JP5960796B2 (en) | 2011-03-29 | 2016-08-02 | クアルコム,インコーポレイテッド | Modular mobile connected pico projector for local multi-user collaboration |
US20130249947A1 (en) | 2011-08-26 | 2013-09-26 | Reincloud Corporation | Communication using augmented reality |
US20130249948A1 (en) | 2011-08-26 | 2013-09-26 | Reincloud Corporation | Providing interactive travel content at a display device |
US20130222371A1 (en) | 2011-08-26 | 2013-08-29 | Reincloud Corporation | Enhancing a sensory perception in a field of view of a real-time source within a display screen through augmented reality |
US9229231B2 (en) | 2011-12-07 | 2016-01-05 | Microsoft Technology Licensing, Llc | Updating printed content with personalized virtual data |
US9361530B2 (en) | 2012-01-20 | 2016-06-07 | Medivators Inc. | Use of human input recognition to prevent contamination |
US9165381B2 (en) | 2012-05-31 | 2015-10-20 | Microsoft Technology Licensing, Llc | Augmented books in a mixed reality environment |
JP5991039B2 (en) | 2012-06-18 | 2016-09-14 | 株式会社リコー | Information processing apparatus and conference system |
US9645394B2 (en) | 2012-06-25 | 2017-05-09 | Microsoft Technology Licensing, Llc | Configured virtual environments |
US9292085B2 (en) | 2012-06-29 | 2016-03-22 | Microsoft Technology Licensing, Llc | Configuring an interaction zone within an augmented reality environment |
US8953841B1 (en) | 2012-09-07 | 2015-02-10 | Amazon Technologies, Inc. | User transportable device with hazard monitoring |
WO2014078811A1 (en) | 2012-11-16 | 2014-05-22 | Flir Systems, Inc. | Synchronized infrared beacon / infrared detection system |
AU2014204252B2 (en) | 2013-01-03 | 2017-12-14 | Meta View, Inc. | Extramissive spatial imaging digital eye glass for virtual or augmediated vision |
KR101962062B1 (en) | 2013-03-14 | 2019-03-25 | 애플 인크. | Acoustic beacon for broadcasting the orientation of a device |
JP5915813B2 (en) | 2013-03-19 | 2016-05-11 | 株式会社村田製作所 | Multilayer ceramic electronic components |
US9367136B2 (en) | 2013-04-12 | 2016-06-14 | Microsoft Technology Licensing, Llc | Holographic object feedback |
WO2015077767A1 (en) | 2013-11-25 | 2015-05-28 | Daniel Ryan | System and method for communication with a mobile device via a positioning system including rf communication devices and modulated beacon light sources |
CN103697900A (en) | 2013-12-10 | 2014-04-02 | 郭海锋 | Method for early warning on danger through augmented reality by vehicle-mounted emotional robot |
US10586395B2 (en) | 2013-12-30 | 2020-03-10 | Daqri, Llc | Remote object detection and local tracking using visual odometry |
KR20150101612A (en) | 2014-02-27 | 2015-09-04 | 엘지전자 주식회사 | Head Mounted Display with closed-view and Method for controlling the same |
US10203762B2 (en) | 2014-03-11 | 2019-02-12 | Magic Leap, Inc. | Methods and systems for creating virtual and augmented reality |
US10430985B2 (en) | 2014-03-14 | 2019-10-01 | Magic Leap, Inc. | Augmented reality systems and methods utilizing reflections |
KR20150118813A (en) | 2014-04-15 | 2015-10-23 | 삼성전자주식회사 | Providing Method for Haptic Information and Electronic Device supporting the same |
US20150325047A1 (en) | 2014-05-06 | 2015-11-12 | Honeywell International Inc. | Apparatus and method for providing augmented reality for maintenance applications |
US10564714B2 (en) | 2014-05-09 | 2020-02-18 | Google Llc | Systems and methods for biomechanically-based eye signals for interacting with real and virtual objects |
IL232853A (en) | 2014-05-28 | 2015-11-30 | Elbit Systems Land & C4I Ltd | Method and system for image georegistration |
KR20160013748A (en) | 2014-07-28 | 2016-02-05 | 엘지전자 주식회사 | Protable electronic device and control method thereof |
CN107004363B (en) | 2014-12-10 | 2020-02-18 | 三菱电机株式会社 | Image processing device, on-vehicle display system, display device, and image processing method |
US9746921B2 (en) | 2014-12-31 | 2017-08-29 | Sony Interactive Entertainment Inc. | Signal generation and detector systems and methods for determining positions of fingers of a user |
US9953216B2 (en) | 2015-01-13 | 2018-04-24 | Google Llc | Systems and methods for performing actions in response to user gestures in captured images |
KR102317803B1 (en) | 2015-01-23 | 2021-10-27 | 삼성전자주식회사 | Electronic device and method for controlling a plurality of displays |
US10212355B2 (en) | 2015-03-13 | 2019-02-19 | Thales Defense & Security, Inc. | Dual-mode illuminator for imaging under different lighting conditions |
JP6609994B2 (en) | 2015-05-22 | 2019-11-27 | 富士通株式会社 | Display control method, information processing apparatus, and display control program |
CN208354713U (en) | 2015-06-19 | 2019-01-11 | 奥克利有限公司 | Eyewear adapter, the helmet, component, modularization headgear system and modularization sports helmet |
US9911290B1 (en) | 2015-07-25 | 2018-03-06 | Gary M. Zalewski | Wireless coded communication (WCC) devices for tracking retail interactions with goods and association to user accounts |
US20170103440A1 (en) | 2015-08-01 | 2017-04-13 | Zhou Tian Xing | Wearable augmented reality eyeglass communication device including mobile phone and mobile computing via virtual touch screen gesture control and neuron command |
US9852599B1 (en) | 2015-08-17 | 2017-12-26 | Alarm.Com Incorporated | Safety monitoring platform |
WO2017039308A1 (en) | 2015-08-31 | 2017-03-09 | Samsung Electronics Co., Ltd. | Virtual reality display apparatus and display method thereof |
US10297129B2 (en) | 2015-09-24 | 2019-05-21 | Tyco Fire & Security Gmbh | Fire/security service system with augmented reality |
FR3042925B1 (en) | 2015-10-26 | 2017-12-22 | St Microelectronics Crolles 2 Sas | SYSTEM FOR CONVERTING THERMAL ENERGY INTO ELECTRICAL ENERGY. |
US20170169170A1 (en) | 2015-12-11 | 2017-06-15 | Yosko, Inc. | Methods and systems for location-based access to clinical information |
US20180239417A1 (en) | 2015-12-30 | 2018-08-23 | Shenzhen Royole Technologies Co. Ltd. | Head-mounted display device, head-mounted display system, and input method |
US20170193705A1 (en) | 2015-12-31 | 2017-07-06 | Daqri, Llc | Path visualization for motion planning |
US20170192091A1 (en) | 2016-01-06 | 2017-07-06 | Ford Global Technologies, Llc | System and method for augmented reality reduced visibility navigation |
US9978180B2 (en) | 2016-01-25 | 2018-05-22 | Microsoft Technology Licensing, Llc | Frame projection for augmented reality environments |
US20180190011A1 (en) | 2017-01-04 | 2018-07-05 | Osterhout Group, Inc. | Content rendering systems for head-worn computers |
AU2017227708A1 (en) | 2016-03-01 | 2018-10-18 | ARIS MD, Inc. | Systems and methods for rendering immersive environments |
CN105781618A (en) | 2016-03-15 | 2016-07-20 | 华洋通信科技股份有限公司 | Coal mine safety integrated monitoring system based on Internet of Things |
US20170277257A1 (en) | 2016-03-23 | 2017-09-28 | Jeffrey Ota | Gaze-based sound selection |
US10551826B2 (en) | 2016-03-24 | 2020-02-04 | Andrei Popa-Simil | Method and system to increase operator awareness |
US20180188537A1 (en) | 2017-01-04 | 2018-07-05 | Osterhout Group, Inc. | Audio systems for head-worn computers |
US9928662B2 (en) | 2016-05-09 | 2018-03-27 | Unity IPR ApS | System and method for temporal manipulation in virtual environments |
US9925920B2 (en) | 2016-05-24 | 2018-03-27 | Ford Global Technologies, Llc | Extended lane blind spot detection |
WO2017221216A1 (en) | 2016-06-23 | 2017-12-28 | Killham Josh | Positional audio assignment system |
US10102732B2 (en) | 2016-06-28 | 2018-10-16 | Infinite Designs, LLC | Danger monitoring system |
US9906885B2 (en) | 2016-07-15 | 2018-02-27 | Qualcomm Incorporated | Methods and systems for inserting virtual sounds into an environment |
KR20230133940A (en) | 2016-07-25 | 2023-09-19 | 매직 립, 인코포레이티드 | Imaging modification, display and visualization using augmented and virtual reality eyewear |
CN107657662A (en) | 2016-07-26 | 2018-02-02 | 金德奎 | Augmented reality equipment and its system and method that can be directly interactive between a kind of user |
US10486742B2 (en) | 2016-08-01 | 2019-11-26 | Magna Electronics Inc. | Parking assist system using light projections |
EP3285213A1 (en) | 2016-08-16 | 2018-02-21 | Hexagon Technology Center GmbH | Lod work package |
US10155159B2 (en) | 2016-08-18 | 2018-12-18 | Activision Publishing, Inc. | Tactile feedback systems and methods for augmented reality and virtual reality systems |
US10656731B2 (en) | 2016-09-15 | 2020-05-19 | Daqri, Llc | Peripheral device for head-mounted display |
US10281982B2 (en) | 2016-10-17 | 2019-05-07 | Facebook Technologies, Llc | Inflatable actuators in virtual reality |
US10134192B2 (en) | 2016-10-17 | 2018-11-20 | Microsoft Technology Licensing, Llc | Generating and displaying a computer generated image on a future pose of a real world object |
US10088902B2 (en) | 2016-11-01 | 2018-10-02 | Oculus Vr, Llc | Fiducial rings in virtual reality |
DE102016121663A1 (en) | 2016-11-11 | 2018-05-17 | Osram Gmbh | Activating a transmitting device of a lighting device |
US9911020B1 (en) | 2016-12-08 | 2018-03-06 | At&T Intellectual Property I, L.P. | Method and apparatus for tracking via a radio frequency identification device |
WO2018129051A1 (en) | 2017-01-04 | 2018-07-12 | Advanced Functional Fabrics Of America | Uniquely identifiable articles of fabric and social networks employing them |
US11347054B2 (en) | 2017-02-16 | 2022-05-31 | Magic Leap, Inc. | Systems and methods for augmented reality |
CN110337318B (en) | 2017-02-28 | 2024-06-14 | 奇跃公司 | Virtual and real object recording in mixed reality devices |
US10250328B2 (en) | 2017-03-09 | 2019-04-02 | General Electric Company | Positioning system based on visible light communications |
US10408624B2 (en) | 2017-04-18 | 2019-09-10 | Microsoft Technology Licensing, Llc | Providing familiarizing directional information |
US10460585B2 (en) | 2017-06-05 | 2019-10-29 | Symbol Technologies, Llc | RFID directed video snapshots capturing targets of interest |
GB201709199D0 (en) | 2017-06-09 | 2017-07-26 | Delamont Dean Lindsay | IR mixed reality and augmented reality gaming system |
US10528228B2 (en) | 2017-06-21 | 2020-01-07 | Microsoft Technology Licensing, Llc | Interaction with notifications across devices with a digital assistant |
US20190007548A1 (en) | 2017-06-28 | 2019-01-03 | The Travelers Indemnity Company | Systems and methods for discrete location-based functionality |
EP3422146A1 (en) | 2017-06-28 | 2019-01-02 | Nokia Technologies Oy | An apparatus and associated methods for presenting sensory scenes |
EP3422149B1 (en) | 2017-06-30 | 2023-03-01 | Nokia Technologies Oy | Methods, apparatus, systems, computer programs for enabling consumption of virtual content for mediated reality |
WO2019023271A1 (en) | 2017-07-24 | 2019-01-31 | Cyalume Technologies, Inc. | Light weight appliance to be used with smart devices to produce shortwave infrared emission |
US10725537B2 (en) | 2017-10-02 | 2020-07-28 | Facebook Technologies, Llc | Eye tracking system using dense structured light patterns |
JP7449856B2 (en) | 2017-10-17 | 2024-03-14 | マジック リープ, インコーポレイテッド | mixed reality spatial audio |
US10748426B2 (en) | 2017-10-18 | 2020-08-18 | Toyota Research Institute, Inc. | Systems and methods for detection and presentation of occluded objects |
US20190132815A1 (en) | 2017-10-27 | 2019-05-02 | Sentry Centers Holdings LLC | Systems and methods for beacon integrated with displays |
WO2019122912A1 (en) | 2017-12-22 | 2019-06-27 | Ultrahaptics Limited | Tracking in haptic systems |
US11113883B2 (en) | 2017-12-22 | 2021-09-07 | Houzz, Inc. | Techniques for recommending and presenting products in an augmented reality scene |
KR102050999B1 (en) | 2017-12-27 | 2019-12-05 | 성균관대학교산학협력단 | Method and apparatus for transmitting of energy and method and node for receiving of energy |
US10773169B2 (en) | 2018-01-22 | 2020-09-15 | Google Llc | Providing multiplayer augmented reality experiences |
US11032662B2 (en) | 2018-05-30 | 2021-06-08 | Qualcomm Incorporated | Adjusting audio characteristics for augmented reality |
US20190377538A1 (en) | 2018-06-08 | 2019-12-12 | Curious Company, LLC | Information Presentation Through Ambient Sounds |
US10706629B2 (en) | 2018-06-15 | 2020-07-07 | Dell Products, L.P. | Coordinate override in virtual, augmented, and mixed reality (xR) applications |
US10650600B2 (en) | 2018-07-10 | 2020-05-12 | Curious Company, LLC | Virtual path display |
KR102532358B1 (en) | 2018-07-10 | 2023-05-16 | 생-고뱅 퍼포먼스 플라스틱스 렌콜 리미티드 | Torque assemblies and methods of making and using them |
US10818088B2 (en) | 2018-07-10 | 2020-10-27 | Curious Company, LLC | Virtual barrier objects |
US11055913B2 (en) | 2018-12-04 | 2021-07-06 | Curious Company, LLC | Directional instructions in an hybrid reality system |
US10970935B2 (en) | 2018-12-21 | 2021-04-06 | Curious Company, LLC | Body pose message system |
-
2018
- 2018-09-06 US US16/123,543 patent/US10902678B2/en active Active
- 2018-09-19 US US16/135,175 patent/US10861239B2/en active Active
- 2018-09-19 US US16/135,198 patent/US10803668B2/en active Active
- 2018-09-19 US US16/135,214 patent/US10636197B2/en active Active
- 2018-09-19 US US16/135,119 patent/US10636216B2/en active Active
-
2021
- 2021-01-21 US US17/154,228 patent/US11238666B2/en active Active
-
2022
- 2022-01-13 US US17/574,770 patent/US20220139051A1/en not_active Abandoned
Patent Citations (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080267490A1 (en) * | 2007-04-26 | 2008-10-30 | General Electric Company | System and method to improve visibility of an object in an imaged subject |
US20090109244A1 (en) * | 2007-10-26 | 2009-04-30 | Mitel Nteworks Corporation | Method and apparatus for maintaining a visual appearance of at least one window when a resolution of the screen changes |
US20090251537A1 (en) * | 2008-04-02 | 2009-10-08 | David Keidar | Object content navigation |
US20100302015A1 (en) * | 2009-05-29 | 2010-12-02 | Microsoft Corporation | Systems and methods for immersive interaction with virtual objects |
US20120105473A1 (en) * | 2010-10-27 | 2012-05-03 | Avi Bar-Zeev | Low-latency fusing of virtual and real content |
US8863039B2 (en) * | 2011-04-18 | 2014-10-14 | Microsoft Corporation | Multi-dimensional boundary effects |
US20120289290A1 (en) * | 2011-05-12 | 2012-11-15 | KT Corporation, KT TECH INC. | Transferring objects between application windows displayed on mobile terminal |
US20130073637A1 (en) * | 2011-09-15 | 2013-03-21 | Pantech Co., Ltd. | Mobile terminal, server, and method for establishing communication channel using augmented reality (ar) |
US20130336629A1 (en) * | 2012-06-19 | 2013-12-19 | Qualcomm Incorporated | Reactive user interface for head-mounted display |
US20150130790A1 (en) * | 2013-11-14 | 2015-05-14 | Nintendo Of America Inc. | Visually Convincing Depiction of Object Interactions in Augmented Reality Images |
US20150278604A1 (en) * | 2014-03-30 | 2015-10-01 | Gary Stephen Shuster | Systems, Devices And Methods For Person And Object Tracking And Data Exchange |
US20170173457A1 (en) * | 2014-06-09 | 2017-06-22 | Immersion Corporation | System and method for outputting a haptic effect based on a camera zoom state, camera perspective, and/or a direction in which a user's eyes are directed |
US20160147408A1 (en) * | 2014-11-25 | 2016-05-26 | Johnathan Bevis | Virtual measurement tool for a wearable visualization device |
US10065074B1 (en) * | 2014-12-12 | 2018-09-04 | Enflux, Inc. | Training systems with wearable sensors for providing users with feedback |
US20160270656A1 (en) * | 2015-03-16 | 2016-09-22 | Magic Leap, Inc. | Methods and systems for diagnosing and treating health ailments |
US20180307310A1 (en) * | 2015-03-21 | 2018-10-25 | Mine One Gmbh | Virtual 3d methods, systems and software |
US20180299543A1 (en) * | 2015-05-11 | 2018-10-18 | Vayyar Imaging Ltd | System, device and methods for imaging of objects using electromagnetic array |
US20170005826A1 (en) * | 2015-07-01 | 2017-01-05 | Samsung Electronics Co., Ltd. | Notification apparatus and object position notification method thereof |
US20170269712A1 (en) * | 2016-03-16 | 2017-09-21 | Adtile Technologies Inc. | Immersive virtual experience using a mobile communication device |
US20170330376A1 (en) * | 2016-05-10 | 2017-11-16 | Disney Enterprises, Inc. | Occluded virtual image display |
US20170354878A1 (en) * | 2016-06-13 | 2017-12-14 | Sony Interactive Entertainment America Llc | Browser-based cloud gaming |
US20190026592A1 (en) * | 2017-07-18 | 2019-01-24 | Lenovo (Singapore) Pte. Ltd. | Indication of characteristic based on condition |
US20200082601A1 (en) * | 2018-09-06 | 2020-03-12 | Curious Company, LLC | Virtual manipulation of hidden objects |
US20200082600A1 (en) * | 2018-09-06 | 2020-03-12 | Curious Company, LLC | Display of Hidden Information |
US20200082629A1 (en) * | 2018-09-06 | 2020-03-12 | Curious Company, LLC | Controlling presentation of hidden information |
US20200082628A1 (en) * | 2018-09-06 | 2020-03-12 | Curious Company, LLC | Presentation of information associated with hidden objects |
US20200082602A1 (en) * | 2018-09-06 | 2020-03-12 | Curious Company, LLC | Dynamic display of hidden information |
US10803668B2 (en) * | 2018-09-06 | 2020-10-13 | Curious Company, LLC | Controlling presentation of hidden information |
US10902678B2 (en) * | 2018-09-06 | 2021-01-26 | Curious Company, LLC | Display of hidden information |
US20210142582A1 (en) * | 2018-09-06 | 2021-05-13 | Curious Company, LLC | Display of an occluded object in a hybrid-reality system |
US11238666B2 (en) * | 2018-09-06 | 2022-02-01 | Curious Company, LLC | Display of an occluded object in a hybrid-reality system |
US20210199973A1 (en) * | 2019-03-14 | 2021-07-01 | Curious Company, LLC | Hybrid reality system including beacons |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230014562A1 (en) * | 2019-12-27 | 2023-01-19 | Sony Group Corporation | Image processing apparatus, image processing method, and image processing program |
US12039139B1 (en) * | 2022-06-24 | 2024-07-16 | Freedom Scientific, Inc. | Bifurcation of rendered and system pointing indicia to enable input via a viewport |
Also Published As
Publication number | Publication date |
---|---|
US20200082600A1 (en) | 2020-03-12 |
US10803668B2 (en) | 2020-10-13 |
US10636197B2 (en) | 2020-04-28 |
US10636216B2 (en) | 2020-04-28 |
US20200082602A1 (en) | 2020-03-12 |
US20200082629A1 (en) | 2020-03-12 |
US11238666B2 (en) | 2022-02-01 |
US20200082601A1 (en) | 2020-03-12 |
US20210142582A1 (en) | 2021-05-13 |
US20200082628A1 (en) | 2020-03-12 |
US10902678B2 (en) | 2021-01-26 |
US10861239B2 (en) | 2020-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11238666B2 (en) | Display of an occluded object in a hybrid-reality system | |
US10650600B2 (en) | Virtual path display | |
US11995772B2 (en) | Directional instructions in an hybrid-reality system | |
US20210043007A1 (en) | Virtual Path Presentation | |
US11972530B2 (en) | Rendering virtual objects in 3D environments | |
US11282248B2 (en) | Information display by overlay on an object | |
CN106662925B (en) | Multi-user gaze projection using head mounted display devices | |
US20190171463A1 (en) | Context-Based Discovery of Applications | |
US20190213792A1 (en) | Providing Body-Anchored Mixed-Reality Experiences | |
US10922889B2 (en) | Directing user attention | |
CN107004279A (en) | Natural user interface camera calibrated | |
US10970935B2 (en) | Body pose message system | |
US20220301264A1 (en) | Devices, methods, and graphical user interfaces for maps | |
CN113678173A (en) | Method and apparatus for graph-based placement of virtual objects | |
US20180330543A1 (en) | Directional video feed and augmented reality system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: CURIOUS COMPANY, LLC, OREGON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:JONES, ANTHONY MARK;JONES, JESSICA A.F.;YOUNG, BRUCE A.;SIGNING DATES FROM 20180819 TO 20180917;REEL/FRAME:058642/0892 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |