Interactive augmented reality experience using positional tracking
By integrating a visible light camera and an inertial measurement unit into an eye-wearing device, the user's position is monitored in real time and a 3D projection is generated, solving the problem of poor integration between virtual and real objects in existing technologies and realizing an immersive interactive augmented reality experience.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- SNAP INC
- Filing Date
- 2021-05-21
- Publication Date
- 2026-05-01
AI Technical Summary
Existing augmented reality technologies struggle to effectively combine real-world objects with virtual objects in the physical environment to provide an immersive and rich interactive experience.
By using an eye-worn device equipped with a visible light camera and an inertial measurement unit, the user's position and orientation are monitored in real time. Combined with an image processor to generate a 3D projection, the virtual object is accurately integrated with the physical environment, and an interactive user interface is provided through a touchpad and image display.
It achieves an immersive 3D interactive augmented reality experience, improves the user's ability to interact with virtual objects, and enhances the realism and operability of virtual objects in the real environment.
Smart Images

Figure CN115768537B_ABST
Abstract
Description
[0001] Cross-reference to related applications
[0002] This application claims priority to U.S. Patent Application Serial No. 16 / 883,612, filed May 26, 2020, entitled “Interactive Augmented Reality Experience Using Location Tracking,” the entire contents of which are incorporated herein by reference. Technical Field
[0003] The examples set forth in this disclosure relate to the fields of augmented reality (AR) and wearable mobile devices, such as eye-worn devices. More specifically, but not as a limitation, this disclosure describes user interaction with virtual images to provide an interactive augmented reality experience. Background Technology
[0004] Many types of computers and electronic devices available today, such as mobile devices (e.g., smartphones, tablets, and laptops), handheld devices, and wearable devices (e.g., smart glasses, digital eyewear, headbands, head-mounted displays), include a variety of cameras, sensors, wireless transceivers, input systems (e.g., touch-sensitive surfaces, indicators), peripherals, displays, and graphical user interfaces (GUIs) through which users interact with displayed content.
[0005] Augmented reality (AR) combines real-world objects with virtual objects in the physical environment and displays this combination to the user. The combined display gives the impression that the virtual objects truly exist in the environment, especially when the virtual objects look and behave like real objects.
[0006] Advanced AR technologies, such as computer vision and object tracking, can be used to create perceptually rich and immersive experiences. Computer vision algorithms extract 3D data about the physical world from data captured in digital images or videos. Object recognition and tracking algorithms can be used to detect objects in digital images or videos, estimate their orientation or pose, and track their movement over time. Attached Figure Description
[0007] The features of the various examples described will be readily understood from the following detailed embodiments with reference to the accompanying drawings. In the specification and several views of the drawings, each element is represented by a reference numeral. When multiple similar elements exist, a single reference numeral may be assigned to the similar elements, using a lowercase letter to designate the specific element.
[0008] Unless otherwise stated, the various components shown in the figures are not drawn to scale. The dimensions of the individual components may be enlarged or reduced for clarity. Several figures depict one or more specific embodiments and are presented by way of example only and should not be construed as limiting. The following figures are included in the figures:
[0009] Figure 1A This is a side view (right) of an exemplary hardware configuration for an eye-worn device suitable for an augmented reality generation system;
[0010] Figure 1B yes Figure 1A A partial cross-sectional perspective view of the right corner of the eye-wearing device, depicting the right visible light camera and circuit board;
[0011] Figure 1C yes Figure 1A A side view (left) of an exemplary hardware configuration of an eye-wearing device, showing the left visible light camera;
[0012] Figure 1D yes Figure 1C A partial cross-sectional perspective view of the left corner of the eye-wearing device, depicting the left visible light camera and circuit board;
[0013] Figure 2A and Figure 2B This is a rear view of an exemplary hardware configuration of an eye-wearing device used in an augmented reality generation system;
[0014] Figure 3 It is a graphical depiction of a 3D scene, the left raw image captured by the left visible light camera, and the right raw image captured by the right visible light camera;
[0015] Figure 4 It is a functional block diagram of an exemplary augmented reality generation system that includes wearable devices (e.g., eye-wearing devices) and server systems connected via various networks;
[0016] Figure 5 It is used for Figure 4 A graphical representation of an exemplary hardware configuration of a mobile device that generates augmented reality;
[0017] Figure 6 This is a schematic illustration of a user in an exemplary environment used to describe real-time location and map building;
[0018] Figure 7 This is a flowchart listing the steps in an exemplary method for displaying virtual objects in a physical environment;
[0019] Figure 8A , Figure 8B , Figure 8C and Figure 8D It is a flowchart that lists the steps in an exemplary interactive augmented reality experience;
[0020] Figure 9A , Figure 9B and Figure 9E It is a perspective illustration of a virtual hand-raising and high-five to enhance the real-world experience;
[0021] Figure 9C and Figure 9D These are perspective views of a grid representation of exemplary user-controlled virtual game blocks and exemplary interactive virtual game blocks, respectively, for use with... Figure 9A , Figure 9B and Figure 9E Use it together with the virtual hand-raising and high-five augmented reality experience;
[0022] Figure 10A , Figure 10B , Figure 10C and Figure 10D It is a perspective illustration of a virtual, spherical, balanced augmented reality experience;
[0023] Figure 10E and Figure 10F It shows the... Figure 10A , Figure 10B , Figure 10C and Figure 10D A side view of the user-controlled virtual game blocks; and
[0024] Figure 10G and Figure 10H These are perspective views of a grid representation of exemplary user-controlled virtual game blocks and exemplary interactive virtual game blocks, respectively, for use with... Figure 10A , Figure 10B , Figure 10C and Figure 10D Use it together with a virtual, spherical, balanced augmented reality experience. Detailed Implementation
[0025] The reference examples describe various specific implementations and details, including a system for providing an interactive augmented reality experience using an eye-worn device comprising a positioning detection system and a display system. The eye-worn device registers a first marker positioning of a user-controlled virtual game block and a second marker of an interactive virtual game block. The eye-worn device monitors its positioning (e.g., location and orientation) and updates the positioning of the user-controlled virtual game block accordingly. The eye-worn device also monitors the positioning of the user-controlled virtual game block relative to the interactive virtual game block for the purpose of generating a score. Two examples described below are a "beat walking" augmented reality experience and a "sphere-like balance" augmented reality experience.
[0026] The following detailed description includes systems, methods, techniques, instruction sequences, and computer program products illustrating the examples set forth in this disclosure. Numerous details and examples are included to provide a thorough understanding of the disclosed subject matter and its associated teachings. However, those skilled in the art will understand how the associated teachings can be applied without such details. Aspects of the disclosed subject matter are not limited to the specific devices, systems, and methods described, as the associated teachings can be applied or practiced in various ways. The terminology and naming used herein are for descriptive purposes only and are not intended to be limiting. Typically, well-known examples of instructions, protocols, structures, and techniques are not necessarily shown in detail.
[0027] As used herein, the terms “coupled” or “connected” refer to any logical, optical, physical, or electrical connection (including links, etc.) through which electrical or magnetic signals generated or provided by one system element are transmitted to another coupled or connected system element. Unless otherwise stated, coupled or connected elements or devices are not necessarily directly connected to each other and may be separated by intermediate components, elements, or communication media, one or more of which may modify, manipulate, or carry electrical signals. The term “on” means directly supported by an element or indirectly supported by an element through another element integrated into or supported by that element.
[0028] The term "proximal" is used to describe an object or part of an object that is located near, to the left of, or next to an object or person; or it is closer to other parts of the object that can be described as "distal." For example, the end of an object that is closest to an object can be called the proximal end, while the roughly opposite end can be called the distal end.
[0029] For purposes of illustration and discussion, the orientation of eye-wearing devices, other mobile devices, associated components, and any other devices incorporating a camera, inertial measurement unit, or both, as shown in any of the accompanying figures, is given by way of example only. In operation, the eye-wearing device may be oriented in any other direction suitable for the particular application of the eye-wearing device, such as up, down, sideways, or any other orientation. Furthermore, for the purposes of this document, any directional terms such as front, back, inside, outside, towards, left, right, sideways, longitudinal, up, down, high, low, top, bottom, side, horizontal, vertical, and diagonal are used by way of example only and do not limit the orientation or orientation of any camera or inertial measurement unit as constructed or otherwise described herein.
[0030] Other objects, advantages, and novel features of the example will be set forth in part in the detailed description below, and in part will become apparent to those skilled in the art upon examination of the following description and the accompanying drawings, or may be learned by production or operation of the example. The objects and advantages of this subject matter may be realized and achieved by means of the methods, means, and combinations particularly pointed out in the appended claims.
[0031] Now refer in detail to the accompanying drawings and the examples discussed below.
[0032] Figure 1A This is a side view (right) of an exemplary hardware configuration of an eye-wearing device 100 including a touch-sensitive input device or touchpad 181. As shown, the touchpad 181 may have a subtle and barely perceptible boundary; alternatively, the boundary may be clearly visible or include raised or otherwise tactile edges that provide feedback to the user about the position and boundaries of the touchpad 181. In other embodiments, the eye-wearing device 100 may include a touchpad on the left side.
[0033] The surface of touchpad 181 is configured to detect finger touches, taps, and gestures (e.g., movement touches) for use with the GUI displayed on the image display of the eye-wearing device, thereby allowing users to navigate and select menu options in an intuitive way, which improves and simplifies the user experience.
[0034] Detection of finger input on touchpad 181 enables several functions. For example, touching anywhere on touchpad 181 can cause the GUI to display or highlight an item on a display screen, which can be projected onto at least one of optical components 180A, 180B. Double-clicking on touchpad 181 selects an item or icon. Sliding or swiping a finger in a specific direction (e.g., from front to back, from back to front, from top to bottom, or from bottom to top) allows an item or icon to slide or scroll in that direction; for example, to move to the next item, icon, video, image, page, or slideshow. Sliding a finger in another direction allows sliding or scrolling in the opposite direction; for example, to move to the previous item, icon, video, image, page, or slideshow. Touchpad 181 can be located virtually anywhere on the eye-wearing device 100.
[0035] In one example, a recognized finger gesture clicked on touchpad 181 initiates the selection or pressing of a graphical user interface element in an image displayed on the optical components 180A, 180B. Adjustments to the image displayed on the optical components 180A, 180B based on the recognized finger gesture can be a primary action of selecting or submitting a graphical user interface element on the image display of the optical components 180A, 180B for further display or execution.
[0036] As shown in the figure, the eye-wearing device 100 includes a right visible light camera 114B. As further described herein, two cameras 114A and 114B capture image information of the scene from two separate viewpoints. The two captured images can be used to project a 3D display onto an image display for viewing using 3D glasses.
[0037] The eye-worn device 100 includes a right optical component 180B, which has an image display for presenting images, such as depth images. Figure 1A and Figure 1B As shown, the eye-wearing device 100 includes a right visible light camera 114B. The eye-wearing device 100 may include multiple visible light cameras 114A, 114B forming a passive three-dimensional camera, such as a stereo camera, wherein the right visible light camera 114B is located at the right corner 110B. Figure 1C As shown in Figure D, the eye-wearing device 100 also includes a left visible light camera 114A.
[0038] Left and right visible light cameras 114A and 114B are sensitive to wavelengths within the visible light range. Each of the visible light cameras 114A and 114B has a different forward field of view, which overlaps to enable the generation of a three-dimensional depth image; for example, the right visible light camera 114B depicts a right field of view 111B. Generally, a "field of view" is the portion of a scene visible through a camera at a specific location and orientation in space. Fields of view 111A and 111B have an overlapping field of view 304. Figure 3 When a visible light camera captures an image, objects or object features outside the field of view 111A, 111B are not recorded in the original image (e.g., a photograph or picture). The field of view describes the angular range or amplitude of electromagnetic radiation of a given scene picked up by the image sensors of visible light cameras 114A, 114B in an image captured of that scene. The field of view can be expressed as the angular size of the view frustum; i.e., the viewing angle. The viewing angle can be measured horizontally, vertically, or diagonally.
[0039] In the examples, visible light cameras 114A and 114B have a field of view between 15° and 30°, for example, 24°, and a resolution of 480×480 pixels. "Coverage angle" describes the visible light camera 114A, 114B or the infrared camera 410 that can effectively image the image (see...). Figure 2A The angular range of the lens. Typically, a camera lens produces an image circle large enough to completely cover the camera's film or sensor, which may include some degree of vignetting (e.g., the image darkens towards the edges compared to the center). If the camera lens's coverage angle does not extend across the sensor, the image circle will be visible, typically with strong vignetting towards the edges, and the effective angle of view will be limited to the coverage angle.
[0040] Examples of such visible light cameras 114A and 114B include high-resolution complementary metal-oxide-semiconductor (CMOS) image sensors and digital VGA cameras (video graphics arrays) capable of having resolutions of 640p (e.g., 640 × 480 pixels, totaling 0.3 megapixels), 720p, or 1080p. Other examples of visible light cameras 114A and 114B can capture high-definition (HD) still images and store these images at a resolution of 1642 × 1642 pixels (or greater); or record high-definition video at a high frame rate (e.g., thirty to sixty frames per second or more) and store the recording at a resolution of 1216 × 1216 pixels (or greater).
[0041] The eye-wearing device 100 can capture image sensor data from visible light cameras 114A and 114B, as well as geolocation data digitized by an image processor, for storage in memory. The visible light cameras 114A and 114B capture corresponding left and right raw images in a two-dimensional spatial domain. These raw images include a pixel matrix in a two-dimensional coordinate system, which includes an X-axis for horizontal positioning and a Y-axis for vertical positioning. Each pixel includes color attribute values (e.g., red pixel light value, green pixel light value, or blue pixel light value); and positioning attributes (e.g., X-axis coordinates and Y-axis coordinates).
[0042] In order to capture stereoscopic images for later display as a 3D projection, image processor 412 (in...) Figure 4 (As shown in the diagram) Visible light cameras 114A and 114B can be coupled to receive and store visual image information. Image processor 412 or another processor controls the operation of visible light cameras 114A and 114B to act as stereo cameras simulating human binocular vision and can add timestamps to each image. The timestamps on each pair of images allow the images to be displayed together as part of a 3D projection. The 3D projection produces an immersive and realistic experience, which is desired in various contexts including virtual reality (VR) and video games.
[0043] Figure 1B yes Figure 1A A cross-sectional perspective view of the right corner portion 110B of the eye-wearing device 100, which depicts the right visible light camera 114B and the circuit board of the camera system. Figure 1C yes Figure 1A A side view (left) of an exemplary hardware configuration of an eye-wearing device 100, showing the left visible light camera 114A of the camera system. Figure 1D yes Figure 1C A cross-sectional perspective view of the left corner portion 110A of the eye-wearing device, which depicts the left visible light camera 114A of the three-dimensional camera and the circuit board.
[0044] Except for the connection and coupling located on the left side 170A, the structure and arrangement of the left visible light camera 114A are basically similar to those of the right visible light camera 114B. For example... Figure 1B As shown in the example, the eye-wearing device 100 includes a right visible light camera 114B and a circuit board 140B, which may be a flexible printed circuit board (PCB). A right hinge 126B connects the right corner 110B to the right temple 125B of the eye-wearing device 100. In some examples, the right visible light camera 114B, the flexible PCB 140B, or other components such as electrical connectors or contacts may be located on the right temple 125B or the right hinge 126B.
[0045] The right corner portion 110B includes a corner body 190 and a corner cover. Figure 1B The corner cover is omitted in the cross-section. Inside the right corner 110B are various interconnected circuit boards, such as PCBs or flexible PCBs, which include controller circuitry for the right visible light camera 114B, microphone, low-power wireless circuitry (e.g., for short-range wireless network communication via Bluetooth™), and high-speed wireless circuitry (e.g., for wireless LAN communication via Wi-Fi).
[0046] The right visible light camera 114B is coupled to or disposed on the flexible PCB 140B and covered by a visible light camera lens cap, the lens being aimed through an opening formed in the frame 105. For example, the right edge 107B of the frame 105, as... Figure 2A As shown, the frame is connected to the right corner 110B and includes an opening for a visible light camera lens cap. The frame 105 includes a front side configured to face outwards and away from the user's eye. The opening for the visible light camera lens cap is formed on and extends through the front or outer side of the frame 105. In the example, the right visible light camera 114B has an outward-facing field of view 111B. Figure 3 (As shown), its line of sight or viewing angle is related to the right eye of the user of the eye-wearing device 100. The visible light camera lens cap may also be attached to the front side or outward-facing surface of the right corner 110B, wherein the opening forms an outward-facing coverage angle, but in a different outward direction. Coupling may also be achieved indirectly via an intermediary member.
[0047] like Figure 1B As shown, the flexible PCB 140B is disposed within the right corner portion 110B and coupled to one or more other components housed in the right corner portion 110B. Although shown as being formed on a circuit board on the right corner portion 110B, the right visible light camera 114B may be formed on a circuit board on the left corner portion 110A, temples 125A, 125B, or frame 105.
[0048] Figure 2A and Figure 2BThis is a rear perspective view of an exemplary hardware configuration of an eye-wearing device 100 that includes two different types of image displays. The size and shape of the eye-wearing device 100 are designed to be configured for wear by a user; in this example, it is in the form of eyeglasses. The eye-wearing device 100 may take other forms and may be combined with other types of frames, such as headbands, headphones, or helmets.
[0049] In the example of eyeglasses, the eye-wearing device 100 includes a frame 105 comprising a left edge 107A connected to the right edge 107B via a nose bridge 106 adapted for support by the user's nose. The left and right edges 107A, 107B include corresponding apertures 175A, 175B that hold corresponding optical elements 180A, 180B, such as lenses and display devices. As used herein, the term "lens" is intended to include a sheet of transparent or translucent glass or plastic having a curved or flat surface that causes light to converge / diverge or to cause little or no convergence or divergence.
[0050] Although shown as having two optical elements 180A, 180B, the eyewear device 100 may include other arrangements, such as a single optical element (or it may not include any optical elements 180A, 180B), depending on the application of the eyewear device 100 or the intended user. As further shown, the eyewear device 100 includes a left corner portion 110A adjacent to the left side face 170A of the frame 105 and a right corner portion 110B adjacent to the right side face 170B of the frame 105. The corner portions 110A, 110B may be integrated into the frame 105 on the respective sides 170A, 170B (as shown) or implemented as separate components attached to the frame 105 on the respective sides 170A, 170B. Alternatively, the corner portions 110A, 110B may be integrated into temples (not shown) attached to the frame 105.
[0051] In one example, the image display of optical components 180A and 180B includes an integrated image display. For example... Figure 2A As shown, each optical component 180A, 180B includes a suitable display matrix 177, such as a liquid crystal display (LCD), an organic light-emitting diode (OLED) display, or any other such display. Each optical component 180A, 180B also includes one or more optical layers 176, which can be in any combination including lenses, optical coatings, prisms, mirrors, waveguides, optical strips, and other optical components. Optical layers 176A, 176B, ..., 176N (in... Figure 2AThe optical layer 176A-N (shown herein as 176A-N) may include a prism having suitable dimensions and construction and including a first surface for receiving light from a display matrix and a second surface for emitting light toward a user's eye. The prism of the optical layer 176A-N extends over all or at least a portion of corresponding apertures 175A, 175B formed in the left and right edges 107A, 107B, to allow the user to see the second surface of the prism when viewing through the corresponding left and right edges 107A, 107B. The first surface of the prism of the optical layer 176A-N faces upward from the frame 105, and the display matrix 177 covers the prism such that photons and light emitted by the display matrix 177 illuminate the first surface. The prism is sized and shaped such that light is refracted within the prism and directed to the user's eye by the second surface of the prism of the optical layer 176A-N. In this respect, the second surface of the prism of the optical layer 176A-N may be convex to direct light toward the center of the eye. The size and shape of the prism can be optionally designed to magnify the image projected by the display matrix 177, and the light travels through the prism such that the image viewed from the second surface is larger than the image emitted from the display matrix 177 in one or more dimensions.
[0052] In one example, optical layers 176A-N may include a transparent LCD layer (keeping the lens open) unless and until a voltage is applied that makes the layer opaque (closing or blocking the lens). Image processor 412 on the eyewear device 100 may execute a program to apply voltage to the LCD layer to create an active shutter system, thereby adapting the eyewear device 100 for viewing visual content displayed as a three-dimensional projection. Technologies other than LCDs may be used in the active shutter mode, including other types of reactive layers that respond to voltage or another type of input.
[0053] In another example, the image display device with optical components 180A and 180B includes, for example... Figure 2B The projected image is displayed on the screen. Figure 2B The corner caps are omitted in the cross-section. Each optical component 180A, 180B includes a laser projector 150, which is a three-color laser projector using a scanning mirror or galvanometer. During operation, a light source such as the laser projector 150 is positioned within or above one of the temples 125A, 125B of the eyewear device 100. In this example, optical component 180B includes one or more optical strips 155A, 155B, ... 155N (in... Figure 2B (shown as 155A-N), which are spaced apart on the width of the lens of each optical component 180A, 180B, or on the depth of the lens between the front and rear surfaces of the lens.
[0054] As photons projected by the laser projector 150 travel through the lens of each optical component 180A, 180B, they encounter optical strips 155A-N. When a particular photon encounters a particular optical strip, it is either redirected toward the user's eye or propagated to the next optical strip. A combination of modulation of the laser projector 150 and modulation of the optical strips can control a particular photon or beam of light. In the example, the processor controls the optical strips 155A-N by emitting mechanical, acoustic, or electromagnetic signals. Although shown as having two optical components 180A, 180B, the eye-wearing device 100 may include other arrangements, such as single or three optical components, or each optical component 180A, 180B may be arranged in a different configuration, depending on the application of the eye-wearing device 100 or the intended user.
[0055] like Figure 2A and Figure 2B As further shown, the eye-worn device 100 includes a left corner portion 110A adjacent to the left side surface 170A of the frame 105 and a right corner portion 110B adjacent to the right side surface 170B of the frame 105. The corner portions 110A and 110B may be integrated into the frame 105 on the respective sides 170A and 170B (as shown) or implemented as separate components attached to the frame 105 on the respective sides 170A and 170B. Alternatively, the corner portions 110A and 110B may be integrated into the temples 125A and 125B attached to the frame 105.
[0056] In another example, Figure 2B The eye-wearing device 100 shown may include two projectors, a left projector 150A (not shown) and a right projector 150B (shown as projector 150). The left optical assembly 180A may include a left display matrix 177A (not shown) or left optical strips 155'A, 155'B, ..., 155'N (155'', A to N, not shown), configured to interact with light from the left projector 150A. Similarly, the right optical assembly 180B may include a right display matrix 177B (not shown) or right optical strips 155'A, 155'B, ..., 155'N (155'', A to N, not shown), configured to interact with light from the right projector 150B. In this example, the eye-wearing device 100 includes a left display and a right display.
[0057] Figure 3This is a graphical depiction of a 3D scene 306, a left raw image 302A captured by a left visible light camera 114A, and a right raw image 302B captured by a right visible light camera 114B. As shown, the left field of view 111A may overlap with the right field of view 111B. The overlapping field of view 304 represents the portion captured by both cameras 114A and 114B in the image. The term "overlap" in relation to field of view means that the pixel matrix in the generated raw image overlaps by thirty percent (30%) or more. "Substantially overlapping" means that the pixel matrix in the generated raw image or the pixel matrix in the infrared image of the scene overlaps by fifty percent (50%) or more. As described herein, the two raw images 302A and 302B may be processed to include a timestamp that allows the images to be displayed together as part of a 3D projection.
[0058] To capture stereoscopic images, such as Figure 3 The diagram shows a pair of raw red-green-blue (RGB) images capturing a real-world scene 306 at a given moment: a left raw image 302A captured by the left camera 114A and a right raw image 302B captured by the right camera 114B. When these raw images 302A and 302B are processed (e.g., by an image processor 412), a depth image is generated. The generated depth image can be viewed on the optical components 180A and 180B of an eye-wearing device, on another display (e.g., an image display 580 on a mobile device 401), or on a screen.
[0059] The generated depth image is in a three-dimensional spatial domain and may include a vertex matrix in a three-dimensional positional coordinate system, which includes an X-axis for horizontal positioning (e.g., length), a Y-axis for vertical positioning (e.g., height), and a Z-axis for depth (e.g., distance). Each vertex may include color attributes (e.g., red pixel light value, green pixel light value, or blue pixel light value); positional attributes (e.g., X-coordinate, Y-coordinate, and Z-coordinate); texture attributes; reflectance attributes; or combinations thereof. Texture attributes quantify the perceptual texture of the depth image, such as the spatial arrangement of colors or intensities in the vertex regions of the depth image.
[0060] In one example, an interactive augmented reality system 400 ( Figure 4 The device includes an eye-wearing device 100, which includes a frame 105, a left temple 110A extending from the left side 170A of the frame 105, and a right temple 125B extending from the right side 170B of the frame 105. The eye-wearing device 100 may further include at least two visible light cameras 114A, 114B having overlapping fields of view. In one example, the eye-wearing device 100 includes a left visible light camera 114A having a left field of view 111A, such as... Figure 3As shown. The left camera 114A is attached to the frame 105 or the left temple 110A to capture a left raw image 302A from the left side of scene 306. The eye-wearing device 100 further includes a right visible light camera 114B having a right field of view 111B. The right camera 114B is attached to the frame 105 or the right temple 125B to capture a right raw image 302B from the right side of scene 306.
[0061] Figure 4 This is a functional block diagram of an exemplary interactive augmented reality system 400, which includes wearable devices (e.g., eye-wearing device 100), mobile devices 401, and server systems 498 connected via various networks 495 such as the Internet. The interactive augmented reality system 400 includes a low-power wireless connection 425 and a high-speed wireless connection 437 between the eye-wearing device 100 and the mobile device 401.
[0062] like Figure 4 As shown and described herein, the eye-wearing device 100 includes one or more visible light cameras 114A, 114B that capture still images, video images, or both. Cameras 114A, 114B may have direct memory access (DMA) to high-speed circuitry 430 and function as stereo cameras. Cameras 114A, 114B can be used to capture initial depth images, which can be rendered into three-dimensional (3D) models, which are texture-mapped images of a red-green-blue (RGB) imaged scene. Device 100 may also include a depth sensor 213 that uses infrared signals to estimate the location of an object relative to device 100. In some examples, depth sensor 213 includes one or more infrared emitters 215 and an infrared camera 410.
[0063] The eye-wear device 100 further includes two image displays for each optical component 180A, 180B (one associated with the left side 170A and one associated with the right side 170B). The eye-wear device 100 also includes an image display driver 442, an image processor 412, low-power circuitry 420, and high-speed circuitry 430. The image displays for each optical component 180A, 180B are used to present images, including still images, video images, or still and video images. The image display driver 442 is coupled to the image displays for each optical component 180A, 180B to control the display of the images.
[0064] The eye-wearing device 100 also includes one or more speakers 440 (e.g., one associated with the left side of the eye-wearing device and another associated with the right side of the eye-wearing device). The speakers 440 may be incorporated into the frame 105, temple 125, or corner 110 of the eye-wearing device 100. The one or more speakers 440 are driven by an audio processor 443 under the control of a low-power circuit 420, a high-speed circuit 430, or both. The speakers 440 are used to present audio signals, including, for example, a beat track. The audio processor 443 is coupled to the speakers 440 to control the presentation of sound.
[0065] Figure 4 The components shown for the eye-wearing device 100 are located on one or more circuit boards, such as printed circuit boards (PCBs) or flexible printed circuit boards (FPCs) located in the edges or temples. Alternatively or additionally, the depicted components may be located in the corners, frames, hinges, or nose bridge of the eye-wearing device 100. The left and right visible light cameras 114A, 114B may include digital camera elements, such as complementary metal-oxide-semiconductor (CMOS) image sensors, charge-coupled devices, lenses, or any other corresponding visible or light-capturing elements that can be used to capture data, including still images or videos of scenes with unknown objects.
[0066] like Figure 4 As shown, the high-speed circuit 430 includes a high-speed processor 432, a memory 434, and a high-speed wireless circuit 436. In this example, an image display driver 442 is coupled to the high-speed circuit 430 and operated by the high-speed processor 432 to drive the left and right image displays of each optical component 180A, 180B. The high-speed processor 432 can be any processor capable of managing the high-speed communication and operation of any general-purpose computing system required by the eye-wear device 100. The high-speed processor 432 includes the processing resources required to manage high-speed data transmission over a high-speed wireless connection 437 to a wireless local area network (WLAN) using the high-speed wireless circuit 436.
[0067] In some examples, the high-speed processor 432 executes an operating system, such as the LINUX operating system or other such operating system of the eye-wear device 100, and the operating system is stored in memory 434 for execution. Among other duties, the high-speed processor 432, which executes the software architecture of the eye-wear device 100, also manages data transmissions utilizing the high-speed wireless circuit 436. In some examples, the high-speed wireless circuit 436 is configured to implement the Institute of Electrical and Electronics Engineers (IEEE) 802.11 communication standard, also referred to herein as Wi-Fi. In other examples, the high-speed wireless circuit 436 may implement other high-speed communication standards.
[0068] Low-power circuitry 420 includes a low-power processor 422 and a low-power wireless circuitry 424. The low-power wireless circuitry 424 and high-speed wireless circuitry 436 of the eye-wear device 100 may include a short-range transceiver (Bluetooth™ or Bluetooth Low Energy (BLE)) and a wireless wide-area network, local area network, or wide-area network transceiver (e.g., cellular or Wi-Fi). The mobile device 401, including transceivers communicating via low-power wireless connection 425 and high-speed wireless connection 437, can be implemented using the architectural details of the eye-wear device 100, as can other elements of the network 495.
[0069] Memory 434 includes any storage device capable of storing various data and applications, including camera data generated by the left and right visible light cameras 114A, 114B, the infrared camera 410, the image processor 412, and images generated by the image display driver 442 for display on the image display of each optical component 180A, 180B. While memory 434 is shown as integrated with high-speed circuitry 430, in other examples, memory 434 may be a separate, independent component of the eye-wearing device 100. In some such examples, electrical wiring may provide a connection from the image processor 412 or the low-power processor 422 through a chip including the high-speed processor 432 to memory 434. In other examples, the high-speed processor 432 may manage addressing of memory 434 such that the low-power processor 422 will initiate the high-speed processor 432 whenever a read or write operation involving memory 434 is required.
[0070] like Figure 4 As shown, the high-speed processor 432 of the eye-wearing device 100 can be coupled to a camera system (visible light cameras 114A, 114B), an image display driver 442, a user input device 491, and a memory 434. Figure 5 As shown, the CPU 530 of the mobile device 401 can be coupled to the camera system 570, the mobile display driver 582, the user input layer 591, and the memory 540A.
[0071] Server system 498 may be one or more computing devices as part of a service or network computing system, such as computing devices including a processor, memory, and network communication interface for communicating with eye-wearing device 100 and mobile device 401 via network 495.
[0072] The output components of the eye-worn device 100 include visual elements, such as left and right image displays associated with each lens or optical assembly 180A, 180B, such as Figure 2A and Figure 2BThe device 100 may include user-facing indicators (e.g., LEDs, speakers, or vibration actuators) or outward-facing signals (e.g., LEDs, speakers). The image display of each optical component 180A, 180B is driven by an image display driver 442. In some exemplary configurations, the output components of the eye-wearing device 100 may further include additional indicators, such as audible elements (e.g., speakers), tactile elements (e.g., actuators, such as vibration motors for generating tactile feedback), and other signal generators. For example, the device 100 may include a set of user-facing indicators and a set of outward-facing signals. The set of user-facing indicators is configured to be seen or otherwise perceived by a user of the device 100. For example, the device 100 may include an LED display positioned so that a user can see it, one or more speakers positioned to generate sounds that a user can hear, or actuators providing tactile feedback that a user can feel. Outward-facing signal arrays are configured to be seen or otherwise perceived by an observer near device 100. Similarly, device 100 may include LEDs, speakers, or actuators configured and positioned to be perceived by an observer.
[0073] The input components of the eye-wearing device 100 may include alphanumeric input components (e.g., a touchscreen or touchpad configured to receive alphanumeric input, a photographic optical keyboard, or other alphanumeric-configured elements), point-based input components (e.g., a mouse, touchpad, trackball, joystick, motion sensor, or other pointing instrument), haptic input components (e.g., a push-button switch, a touchscreen or touchpad that senses the position, force, or position and force of a touch or touch gesture, or other haptic-configured elements), and audio input components (e.g., a microphone). The mobile device 401 and server system 498 may include alphanumeric, point-based, haptic, audio, and other input components.
[0074] In some examples, the eye-wearing device 100 includes a collection of motion-sensing components referred to as an inertial measurement unit (IMU) 472. These motion-sensing components can be microelectromechanical systems (MEMS) with micro-moving parts, typically small enough to be part of a microchip. In some exemplary configurations, the IMU 472 includes an accelerometer, a gyroscope, and a magnetometer. The accelerometer senses the linear acceleration (including acceleration due to gravity) of the device 100 relative to three orthogonal axes (x, y, z). The gyroscope senses the angular velocity of the device 100 about three rotational axes (pitch, roll, yaw). Together, the accelerometer and gyroscope provide positioning, orientation, and motion data about the device relative to six axes (x, y, z, pitch, roll, yaw). If a magnetometer is present, it senses the heading of the device 100 relative to the magnetic north pole. The positioning of device 100 can be determined by position sensors such as GPS unit 473, one or more transceivers for generating relative positioning coordinates, altitude sensors or barometers, and other orientation sensors. Such positioning system coordinates can also be received from mobile device 401 via low-power wireless circuit 424 or high-speed wireless circuit 436 through wireless connections 425 and 437.
[0075] IMU 472 may include, or cooperate with, a digital motion processor or program that acquires raw data from components and calculates multiple useful values regarding the positioning, orientation, and motion of device 100. For example, acceleration data acquired from an accelerometer may be integrated to obtain velocity relative to each axis (x, y, z); and integrated again to obtain the positioning of device 100 (represented in linear coordinates x, y, and z). Angular velocity data from a gyroscope may be integrated to obtain the positioning of device 100 (represented in spherical coordinates). The program used to calculate these effective values may be stored in memory 434 and executed by the high-speed processor 432 of the eye-wearing device 100.
[0076] The eye-worn device 100 may optionally include additional peripheral sensors, such as biometric sensors, characteristic sensors, or display elements integrated with the eye-worn device 100. For example, peripheral device elements may include any I / O components, including output components, motion components, positioning components, or any other such components described herein. For example, biometric sensors may include components that detect facial expressions (e.g., gestures, facial expressions, vocal expressions, body posture, or eye tracking), measure biosignals (e.g., blood pressure, heart rate, body temperature, sweating, or brain waves), or identify a person (e.g., identification based on voice, retina, facial features, fingerprints, or electrophysiological signals such as electroencephalogram data).
[0077] Mobile device 401 may be a smartphone, tablet, laptop, access point, or any other such device capable of connecting to eye-wearing device 100 using both low-power wireless connection 425 and high-speed wireless connection 437. Mobile device 401 connects to server system 498 and network 495. Network 495 may include any combination of wired and wireless connections.
[0078] like Figure 4 The illustrated interactive augmented reality system 400 includes a computing device, such as a mobile device 401, coupled via a network to an eye-wearing device 100. The interactive augmented reality system 400 includes a memory for storing instructions and a processor for executing the instructions. The processor 432 executes the instructions of the interactive augmented reality system 400 to configure the eye-wearing device 100 to cooperate with the mobile device 401. The interactive augmented reality system 400 may utilize the memory 434 of the eye-wearing device 100 or the memory elements 540A, 540B, 540C of the mobile device 401. Figure 5 Furthermore, the interactive augmented reality system 400 may utilize the processor elements 432, 422 of the eye-wearing device 100 or the central processing unit (CPU) 530 of the mobile device 401. Figure 5 Furthermore, the interactive augmented reality system 400 may further utilize the memory and processor elements of the server system 498. In this respect, the memory and processing capabilities of the interactive augmented reality system 400 may be shared or distributed across the eye-wearing device 100, the mobile device 401, and the server system 498.
[0079] Memory 434 includes song file 482 and virtual object 484. Song file 482 includes rhythm (e.g., beat track) and optional note sequences and note values. A note is a symbol representing a specific pitch or other musical sound. Note values include the duration of the played note relative to the rhythm and may include other qualities such as loudness, emphasis, articulation, and phrasing relative to other notes. In some implementations, the rhythm includes a default value as well as a user interface through which the user can select a specific rhythm to use during song playback. Virtual object 484 includes image data for identifying objects or features in images captured by camera 114. These objects may be physical features, such as known paintings or physical markers used to locate the eye-wearing device 100 within the environment.
[0080] The memory 434 further includes a positioning detection tool 460, a marker registration tool 462, a positioning tool 464, a virtual object rendering tool 466, a physics engine 468, and a prediction engine 470, all executed by the processor 432. The positioning detection tool 460 configures the processor 432 to determine, for example, using the positioning tool 464, positioning (location and orientation) within the environment. The marker registration tool 462 configures the processor 432 to register markers within the environment. Markers can be predefined physical markers with known locations within the environment, or specific locations specified by the processor 432 relative to the environment in which the eyewear device 100 is operating, or relative to the eyewear device itself. The positioning tool 464 configures the processor 432 to acquire positioning data for determining the positioning of the eyewear device 100, virtual objects rendered by the eyewear device, or combinations thereof. The positioning data can be derived from a series of images, the IMU unit 472, the GPS unit 473, or combinations thereof. Virtual object rendering tool 466 configures processor 432 to render virtual images for display by image display 180 under the control of image display driver 442 and image processor 412. Physics engine 468 configures processor 432 to apply physical laws (such as gravity and friction) to virtual words, for example, between virtual game objects. Prediction engine 470 configures processor 432 to predict the expected movement of an object (such as eye-wearing device 100) based on its current heading, input from sensors (such as IMU 472), images of the environment, or a combination thereof.
[0081] Figure 5 This is a high-level functional block diagram of an exemplary mobile device 401. Mobile device 401 includes flash memory 540A storing programs to be executed by CPU 530 to perform all or a subset of the functions described herein.
[0082] The mobile device 401 may include a camera 570, which includes at least two visible light cameras (first and second visible light cameras with overlapping fields of view) or at least one visible light camera with substantially overlapping fields of view and a depth sensor. Flash memory 540A may further include a plurality of images or videos generated via camera 570.
[0083] As shown in the figure, the mobile device 401 includes an image display 580, a mobile display driver 582 that controls the image display 580, and a display controller 584. Figure 5 In one example, the image display 580 includes a user input layer 591 (e.g., a touchscreen) that is overlaid on top of the screen used by the image display 580 or otherwise integrated into the screen.
[0084] Examples of usable touchscreen mobile devices include (but are not limited to) smartphones, personal digital assistants (PDAs), tablets, laptops, or other portable devices. However, the structure and operation of touchscreen devices are provided by way of example; the subject matter described herein is not intended to be limited thereto. For the purposes of this discussion, Figure 5 Therefore, a block diagram illustration of an exemplary mobile device 401 with a user interface is provided, the user interface including a touch screen input layer 891 for receiving input (touch via hand, stylus or other tool, multi-touch or gesture, etc.) and an image display 580 for displaying content.
[0085] like Figure 5 As shown, mobile device 401 includes at least one digital transceiver (XCVR) 510 for digital wireless communication via a wide-area wireless mobile communication network, shown as a WWAN XCVR. Mobile device 401 also includes additional digital or analog transceivers, such as those for communication via NFC, VLC, DECT, ZigBee, Bluetooth, etc. TM Or a short-range transceiver (XCVR) 520 for short-range network communication via Wi-Fi. For example, the short-range XCVR 520 may take the form of any available bidirectional wireless local area network (WLAN) transceiver that is compatible with one or more standard communication protocols implemented in a wireless local area network (e.g., one of the Wi-Fi standards compliant with IEEE 802.11).
[0086] To generate location coordinates for locating mobile device 401, mobile device 401 may include a Global Positioning System (GPS) receiver. Alternatively or additionally, mobile device 401 may utilize either or both of a short-range XCVR 520 and a WWAN XCVR 510 to generate location coordinates for positioning. For example, based on cellular networks, Wi-Fi, or Bluetooth. TM The positioning systems can generate very accurate location coordinates, especially when used in combination. These location coordinates can be transmitted to the eye-wearing device via one or more network connections through the XCVR510, 520.
[0087] Transceivers 510 and 520 (i.e., network communication interfaces) conform to one or more of the various digital wireless communication standards utilized by modern mobile networks. Examples of WWAN transceivers 510 include (but are not limited to) transceivers configured to operate according to Code Division Multiple Access (CDMA) and 3rd Generation Partnership Project (3GPP) network technologies, including, for example, but not limited to, 3GPP Type 2 (or 3GPP2) and LTE, sometimes referred to as "4G". For example, transceivers 510 and 520 provide bidirectional wireless communication of information including digitized audio signals, still images and video signals, web page information for display and web-related input, and various types of mobile messaging communications to / from mobile device 401.
[0088] Mobile device 401 further includes a microprocessor used as a central processing unit (CPU); such as Figure 4 The CPU 530 is shown in the example. A processor is a circuit having elements constructed and arranged to perform one or more processing functions (typically various data processing functions). Although discrete logic components can be used, these examples utilize components that form a programmable CPU. A microprocessor includes, for example, one or more integrated circuit (IC) chips that incorporate electronic components that perform the functions of the CPU. For example, the CPU 530 may be based on any known or available microprocessor architecture, such as Reduced Instruction Set Computing (RISC) using the ARM architecture, as is commonly used today in mobile devices and other portable electronic devices. Of course, other arrangements of the processor circuitry can be used to form the CPU 530 or processor hardware in smartphones, laptops, and tablets.
[0089] By configuring the mobile device 401 to perform various operations, for example, according to instructions or programs executable by the CPU 530, the CPU 530 acts as a programmable host controller for the mobile device 401. Such operations may include, for example, various general operations of the mobile device, as well as operations related to programs for applications on the mobile device. Although the processor can be configured using hardwired logic, a typical processor in a mobile device is a general-purpose processing circuit configured by executing programs.
[0090] Mobile device 401 includes a memory or storage system for storing programs and data. In this example, the memory system may include, as needed, flash memory 540A, random access memory (RAM) 540B, and other memory components 540C. RAM 540B serves as a short-term storage device for instructions and data processed by CPU 530, for example, as working data processing memory. Flash memory 540A typically provides long-term storage.
[0091] Therefore, in the example of mobile device 401, flash memory 540A is used to store programs or instructions executed by CPU 530. Depending on the type of device, mobile device 401 stores and runs a mobile operating system, through which specific applications are executed. Examples of mobile operating systems include Google Android, Apple iOS (for iPhone or iPad devices), Windows Mobile, Amazon Fire OS, RIM BlackBerry OS, etc.
[0092] The processor 432 within the eye-wearing device 100 can construct a map of the environment surrounding the eye-wearing device 100, determine the position of the eye-wearing device within the mapped environment, and determine the relative position of the eye-wearing device with respect to one or more objects in the mapped environment. The processor 432 can construct the map and use a Simultaneous Localization and Mapping (SLAM) algorithm applied to data received from one or more sensors to determine location and positioning information. In the context of augmented reality, the SLAM algorithm is used to construct and update a map of the environment while tracking and updating the position of the device (or user) within the mapped environment. Mathematical solutions can be approximated using various statistical methods, such as particle filters, Kalman filters, extended Kalman filters, and covariance intersection.
[0093] Sensor data includes images received from one or both of cameras 114A and 114B, distances received from a laser rangefinder, positioning information received from GPS unit 473, or a combination of two or more such sensor data, or data from other sensors that provide data for determining positioning information.
[0094] Figure 6 An exemplary environment 600 and elements for natural feature tracking (NFT; for example, tracking applications using SLAM algorithms) are depicted. A user 602 of the eye-wearing device 100 exists in the exemplary physical environment 600 (in... Figure 6 In the interior room (where the image is located), the processor 432 of the eye-wearing device 100 uses the captured images to determine its position relative to one or more objects 604 within the environment 600, constructs a map of the environment 600 using the coordinate system (x, y, z) of the environment 600, and determines its position within the coordinate system. Additionally, the processor 432 determines the head pose (roll, pitch, and yaw) of the eye-wearing device 100 within the environment by using two or more location points (e.g., three location points 606a, 606b, and 606c) associated with a single object 604a, or by using one or more location points 606 associated with two or more objects 604a, 604b, and 604c. The processor 432 of the eye-wearing device 100 can also locate virtual objects 408 within the environment 600 (such as...). Figure 6 (The key shown) is used for augmented reality viewing via image display 180.
[0095] Figure 7 This is a flowchart 700 depicting a method for implementing the augmented reality applications described herein on a wearable device (e.g., an eye-wearing device). Although these steps are described herein with reference to an eye-wearing device 100, those skilled in the art will understand from the description herein that the described steps are for other specific implementations on other types of devices. Additionally, it is conceivable that in Figure 7 One or more steps shown in the figures and described herein may be omitted, performed simultaneously or sequentially, performed in a different order than those shown and described, or performed in combination with additional steps.
[0096] At frame 702, the eye-wearing device 100 captures one or more input images of the physical environment 600 in the vicinity of the eye-wearing device 100. The processor 432 can continuously receive input images from the visible light camera 114 and store these images in memory 434 for processing. Additionally, the eye-wearing device 100 can capture information from other sensors (e.g., location information from the GPS unit 473, orientation information from the IMU 472, or distance information from a laser distance sensor).
[0097] At frame 704, the eye-wearing device 100 compares objects in the captured image with objects stored in an image library to identify matches. In some implementations, the processor 432 stores the captured image in memory 434. The image library of known objects is stored in a virtual object database 484.
[0098] In one example, processor 432 is programmed to identify predefined specific objects (e.g., a specific photograph 604a hanging at a known location on a wall, a window 604b on another wall, or an object such as a safe 604c located on the floor). Other sensor data, such as GPS data, can be used to narrow down the number of known objects used in the comparison (e.g., images associated only with rooms identified via GPS coordinates). In another example, processor 432 is programmed to identify predefined general objects (e.g., one or more trees in a park).
[0099] At frame 706, the eye-wearing device 100 determines its position relative to an object. The processor 432 determines its position relative to an object by comparing and processing the distances between two or more points in the captured image (e.g., between two or more location points on an object 604 or between location points 606 on each of two objects 604) with known distances between corresponding points in the identified object. If the distances between points in the captured image are greater than the distances between points in the identified object, it indicates that the eye-wearing device 100 is closer to the identified object than the imager capturing the image including the identified object. Conversely, if the distances between points in the captured image are less than the distances between points in the identified object, it indicates that the eye-wearing device 100 is farther from the identified object than the imager capturing the image including the identified object. By processing relative distances, the processor 432 is able to determine its position relative to the object. Alternatively or additionally, other sensor information (such as laser distance sensor information) may be used to determine the position relative to the object.
[0100] At box 708, the eye-wearing device 100 constructs a map of the environment 600 surrounding the eye-wearing device 100 and determines its position within the environment. In one example, if the identified object (box 704) has a predefined coordinate system (x, y, z), the processor 432 of the eye-wearing device 100 uses that predefined coordinate system to construct the map and determines its position within that coordinate system based on its determined location relative to the identified object (box 706). In another example, the eye-wearing device uses an image of a permanent or semi-permanent object 604 within the environment (e.g., a tree or park bench in a park) to construct the map. According to this example, the eye-wearing device 100 may define a coordinate system (x′, y′, z′) for the environment.
[0101] At frame 710, the eye-wearing device 100 determines the head pose (roll, pitch, and yaw) of the eye-wearing device 100 within the environment. The processor 432 determines the head pose using two or more location points on one or more objects 604 (e.g., three location points 606a, 606b, and 606c) or by using one or more location points 606 on two or more objects 604. Using conventional image processing algorithms, the processor 432 determines roll, pitch, and yaw by comparing the angle and length of a line extending between the location points in the captured image and a known image.
[0102] At frame 712, the eye-wearing device 100 presents a visual image to the user. Processor 432 uses image processor 412 and image display driver 442 to present the image to the user on image display 180. The processor develops and presents the visual image via image display in response to the position of the eye-wearing device 100 within environment 600.
[0103] At frame 714, as the user moves within environment 600, the steps described in reference frames 706-712 above are repeated to update the positioning of the eye-wearing device 100 and the content viewed by the user 602.
[0104] Refer again Figure 6 In this example, the method for implementing the interactive augmented reality application described herein includes a virtual tag 610a associated with a virtual object 608 in environment 600. In an AR system, the tag is registered at a location in the environment to assist the device in tracking and updating the positions of the user, device, and objects (virtual and physical) within the mapped environment. Sometimes, the tag is registered with a high-contrast physical object (such as a relatively dark object 604a mounted on a light-colored wall) to aid cameras and other sensors in detecting the tag. The tag can be pre-specified or can be specified by the eye-wearing device 100 upon entering the environment.
[0105] The tag may be encoded with information or otherwise linked to information. The tag may include location information, physical codes (such as barcodes or QR codes; visible or hidden from the user), or a combination thereof. A set of data associated with the tag is stored in the memory 434 of the eye-wearing device 100. This set of data includes information about the tag 610a, the tag's location (position and orientation), one or more virtual objects, or a combination thereof. Tag location may include the three-dimensional coordinates of one or more tag landmarks 616a, such as... Figure 6 The corners of the roughly rectangular marker 610a are shown. Marker positioning can be represented relative to real-world geographic coordinates, the marker coordinate system, the positioning of the eye-wearing device 100, or other coordinate systems. The one or more virtual objects associated with marker 610a can include any material from a variety of sources, including still images, videos, audio, haptic feedback, executable applications, interactive user interfaces and experiences, and combinations or sequences of such materials. In this context, any type of content that can be stored in memory and retrieved upon encountering marker 610a or associated with the specified marker can be classified as a virtual object. For example, Figure 6 The key 608 shown is a virtual object displayed as a 2D or 3D still image at the marked location.
[0106] In one example, marker 610a can be registered in memory to be located at physical object 604a (e.g., Figure 6 The marker is located near and associated with the framed artwork shown. In another example, the marker can be registered in memory for a specific location relative to the eye-wearing device 100.
[0107] Figures 8A to 8DFlowcharts 800, 820, 830, and 840 are flowcharts outlining the steps in an exemplary method for creating an interactive augmented reality experience. Although these steps are described herein with reference to an eye-worn device 100, those skilled in the art will understand from the description herein that the described steps are applicable to other specific implementations on other types of wearable mobile devices. Additionally, it is conceivable that in Figure 8A One or more steps shown in D and in other figures and described herein may be omitted, performed simultaneously or sequentially, performed in a different order than those shown and described, or performed in combination with additional steps.
[0108] exist Figure 8A In block 802, processor 432 utilizes cameras 114A, 114B coupled to or part of eye-wear device 100 to capture a series of video data frames. In some embodiments, cameras 114A, 114B include one or more high-resolution digital cameras equipped with CMOS image sensors capable of capturing high-definition still images and high-definition video. Each digital video frame includes depth information of multiple pixels in the image. In this respect, cameras 114A, 114B act as high-definition scanners by capturing detailed input images of the environment. In some embodiments, cameras 114A, 114B include a pair of high-resolution digital cameras 114A, 114B coupled to eye-wear device 100 and spaced apart to acquire raw images from the left and right cameras. When combined, the raw images form an input image including a three-dimensional pixel position matrix. In some implementations, at step 802, the method includes storing, at least temporarily, a series of captured video data frames in memory 434 on the eye-wearing device 100, such that the frames can be used for analysis, for example, to determine the location of the eye-wearing device 100 relative to other objects in the environment and to track movement in the environment.
[0109] The movement of the eye-wearing device 100 alters the positioning and orientation of a series of video data frames captured by the camera. This series of video data frames can be used to locate the eye-wearing device 100 within its environment and to update the positioning as the wearer / user moves within the environment. In this respect, the method continuously updates the current local positioning of the eye-wearing device 100 as the wearer moves relative to the physical environment, ensuring that the presented virtual objects are persistently visible in their logically real locations relative to the physical environment.
[0110] At box 804, processor 432 registers user-controlled virtual game blocks (e.g., such as...). Figure 9A Hand 902 as shown, or as Figure 10BThe first marker position (as shown in sandwich 1006) is determined by the processor 432 using the marker registration tool 462 relative to the current position of the eye-wearing device 100. According to this example, the processor 432 determines its position based on video data frames and determines the position of the first marker relative to its position, objects in the environment, or both. Figure 9A The hand in the 902 is 12 inches from the right side, 6 inches from below, and 18 inches in front of the eye-wearing device 100, or for Figure 10B The sandwich 1006 is located 36 inches directly in front of the eye-wearing device 100 and 36 inches above the floor. Figure 10B The corner caps are omitted from the cross-section. Marker registration involves storing marker locations in memory (e.g., memory 434). In one example, marker locations include depth information obtained from a digital image or digital video frame, or a set of associated three-dimensional marker coordinates. In another example, marker positioning includes GPS information or other positioning information obtained by processor 432, or a set of associated three-dimensional marker coordinates.
[0111] In some implementations, the marker position coincides with the origin (0,0,0) of the marker coordinate system. The marker coordinate system can be used as a reference for the marker position and various other locations where the marker is placed or nearby. In one example, the origin corresponds to the eye-wearing device 100, and all marker positioning is defined relative to the eye-wearing device 100.
[0112] At frame 806, processor 432 presents a user-controlled virtual game block at the first marker location. Image processor 412 uses image display driver 442 to present the user-controlled virtual game block on image displays 180A-B such that it appears at the first marker location. For example, using the position and orientation results obtained from positioning using captured video data frames (step 802), and in some implementations using virtual object rendering tool 466, eyewear device 100 performs step 806 to present the user-controlled virtual game block on the display with size, shape, and orientation related to the marker location. The user-controlled virtual game block is presented on one or both lenses of eyewear device 100 to facilitate viewing both the virtual game block and the physical environment. For example, the right lens (right optics 180B) includes a right display matrix 177B configured to interact with light from a right projector 150B positioned to project an image onto the inner surface of lens 180B. In this respect, virtual game blocks are presented as an overlay relative to the physical environment, making the virtual game blocks persistently visible.
[0113] At box 808, processor 432 registers an interactive virtual game block (e.g., such as...). Figure 9A The other hand shown is 904, or as... Figure 10A The second marker location is shown for a spherical object such as egg 1008. Processor 432 uses marker registration tool 462 to select and register the second marker location relative to the current position of the eye-wearing device 100, the first marker location, or a combination thereof. In one example, the second marker location is defined relative to the eye-wearing device 100, for example, 72 inches in front of the eye-wearing device 100 (such as...). Figure 9A The other hand in the image (904). In another example, the second marker positioning is defined relative to the first marker position, for example, centered on the top surface of the virtual object associated with the first marker position (such as...). Figure 10A (1008 is located at the top center of sandwich 1006).
[0114] At box 810, processor 432 presents an interactive virtual game block at the second marker location. Image processor 412 uses image display driver 442 to present the interactive virtual game block on image displays 180A-B, such that it appears at the second marker location, for example, as described above for user-controlled virtual game blocks.
[0115] At box 812, processor 432 updates the first marker positioning in response to movement of the eye-wearing device 100. Image processor 412 updates the first marker positioning based on the positioning (position and orientation) of the eye-wearing device 100 (and thus updates the apparent positioning of the user-controlled virtual game block). In one example, image processor 412 updates the first marker positioning such that the positioning of the user-controlled virtual game block relative to the eye-wearing device 100 remains at a fixed position.
[0116] At box 814, processor 432 updates the second marker positioning in response to at least one of movement of the eye-wearing device 100 or a user-controlled virtual game block. Image processor 412 updates the second marker positioning based on the positioning (location and orientation) of the eye-wearing device 100, the first marker positioning, objects in the environment, or a combination thereof. In one example, image processor 412 updates the second marker positioning such that the interactive virtual game block is positioned along a predicted path of the eye-wearing device 100. In another example, image processor 412 updates the second marker positioning by applying physics engine 468 at the intersection between the interactive virtual game block (e.g., a spherical object such as egg 1008) and a user-controlled virtual game block (e.g., the planar surface of sandwich 1006).
[0117] In one example, processor 432 further updates the appearance of the virtual game block in response to the relative positioning between the user-controlled virtual game block and the interactive game block. For example, when the virtual game block is greater than or equal to a first predefined distance, the interactive virtual game block may have a first appearance (e.g., such as...). Figure 9AThe clasped hands depicted in the image (904), and when the virtual game block is within a first predefined distance, the interactive virtual game block may have a second appearance (e.g., such as...). Figure 9B The open hand depicted in the painting is 904'.
[0118] In another example, processor 432 further updates the appearance of the virtual game block in response to the environment. For example, when the interactive game block is not in contact with the ground, the interactive virtual game block may have a first appearance (e.g., such as...). Figure 10B The entire egg 1008 depicted in the image, and the interactive virtual game block may have a second appearance (e.g., a broken egg; not shown) when it touches the ground.
[0119] At box 816, processor 432 monitors the interaction between a user-controlled virtual game block and an interactive virtual game block. Processor 432 monitors the interaction between the user-controlled virtual game block and the interactive virtual game block. In one example, processor 432 monitors the distance between the user-controlled virtual game block (e.g., hand 902) and the interactive virtual game block (e.g., another hand 904) within a threshold distance. In another example, processor 432 monitors when the user-controlled virtual game block (e.g., sandwich 1006) comes into contact with the interactive virtual game block (e.g., egg 1008).
[0120] At box 818, processor 432 generates a score in response to interaction between a user-controlled virtual game block and an interactive virtual game block. In one example, processor 432 increments a counter, for example, to display to the user on image display 180, when the distance between a user-controlled virtual game block (e.g., hand 902) and an interactive virtual game block (e.g., another hand 904) is within a threshold distance (e.g., this represents a slap or a high five). In another example, processor 432 increments the counter at a predefined rate (e.g., once per second) when a user-controlled virtual game block (e.g., sandwich 1006) and an interactive virtual game block (e.g., egg 1008) come into contact with each other (e.g., this represents egg 1008 being balanced on sandwich 1006). In another example, when a user-controlled virtual game block (e.g., sandwich 1006) comes into contact with an interactive virtual game block (e.g., egg 1008) (e.g., this means egg 1008 is balanced on sandwich 1006), processor 432 increments a counter for each step the user takes. A step can be determined by continuously monitoring the positioning of the eye-wearing device 100 and incrementing the counter when the distance exceeds a predefined step length defined by the user, or by monitoring an inertial measurement unit in the eye-wearing device and incrementing the counter in response to a measurement indicating a step.
[0121] Figure 8BA flowchart 820 depicts exemplary steps for updating the positioning of a second marker associated with an interactive virtual game block. At block 822, processor 432 monitors a user-controlled virtual game block. Processor 432 may monitor a planar surface (e.g., defined as...) Figure 10G The top planar surface of the grid 1014 of the user-controlled virtual game blocks depicted in the figure is defined relative to the positioning of the first marker.
[0122] At box 824, processor 432 monitors interactive virtual game blocks. Processor 432 can monitor surfaces (e.g., defined as...) Figure 10H The spherical surface of the grid 1014 of the interactive virtual game block depicted in the image is defined relative to the positioning of the second marker.
[0123] At box 826, processor 432 applies physics engine 468 at the junction between user-controlled virtual game blocks and interactive virtual game blocks to derive positioning updates. For example, physics engine 468 derives positioning updates for the interactive virtual game block when the monitored positioning tilt of the top planar surface of the mesh defining the user-controlled virtual game block occurs. Physics engine 468 may take into account the spherical surface defining the mesh of the interactive virtual game block, the degree and direction of tilt of the planar mesh surface of the user-controlled virtual game block, applicable gravity, and applicable frictional forces to derive positioning updates.
[0124] At box 828, processor 432 uses the derived positioning update to update the second marker positioning, and thus updates the viewing positioning of the interactive virtual game block. For example, when the top plane surface of the user-controlled virtual game block is tilted, the sphere-like interactive game block will appear to roll in the downward direction along the surface of the user-controlled virtual game block.
[0125] Figure 8C A flowchart 830 depicts exemplary steps of another technique for updating the positioning of a second marker associated with an interactive virtual game block. At block 832, processor 432 monitors the physical positioning of eye-wearing device 100. Processor 432 may monitor the physical positioning (location and orientation) of eye-wearing device 100 via visual positioning technology, inertial measurement unit 472, GPS unit 473, or a combination thereof.
[0126] At box 834, processor 432 predicts the heading of eye-wearing device 100. Processor 432 may predict the heading of eye-wearing device 100 based on data from inertial measurement unit 472, visual cues in the environment (e.g., a corner ahead in a corridor), or a combination thereof. For example, if IMU 472 generates data indicating a left turn for the user, processor 432 predicts a heading to the left from the current heading, the degree of left turn depending on the amplitude of the signal from IMU 472. In another example, if the corridor turns right, processor 432 predicts a heading to the right from the current heading, the degree of right turn depending on the gentleness / sharpness of the curve in the corridor. When using both IMU 472 data and image data, the data from IMU 472 and the image can be weighted to match the desired outcome in different situations.
[0127] At box 836, processor 432 updates the second marker positioning so that the interactive virtual game block appears along the predicted heading. This causes the interactive virtual game block to appear along the path the user is likely to travel.
[0128] Figure 8D A flowchart 840 depicts exemplary steps for combining sound effects with visual effects to enhance an interactive augmented reality experience. At block 842, processor 432 renders a beat track. The beat track can be a piece of music comprising beats (i.e., regularly repeating and distinguishable audible pulses) retrieved from song file 482 in memory 434. Processor 432 may use audio processor 443 and speaker 440 to render the beat track.
[0129] At block 844, processor 432 detects virtual contact between a user-controlled virtual game block and an interactive virtual game block. Processor 432 monitors the interaction, as described above with reference to block 816, to detect, for example, when a user-controlled virtual hand contacts an interactive virtual hand.
[0130] At box 846, processor 432 presents a contact beat in response to detected virtual contact between a user-controlled virtual game block (e.g., hand 902) and an interactive virtual game block (e.g., another hand 904). Audio processor 443 may present the contact beat via speaker 442 under the control of processor 432. The contact beat is a distinguishable audio pulse. Audio processor 443 may increase the intensity of the contact beat as it gets closer to the beat of the beat track to provide the user with timing feedback on the virtual contact, thereby improving the augmented reality experience.
[0131] In some examples, the image processor 412 may add additional visual features for display on the image display 180 based on the time proximity of the virtual touch to the beat of the beat track. When the time difference is less than a first predefined amount but greater than a second predefined amount, a first image (e.g., a halo 908 around a hand 902) is added. When the time difference is less than the second predefined amount, a second image (e.g., a lightning ball; not shown) is added.
[0132] At frame 848, processor 432 monitors the speed of eye-wearing device 100. Processor 432 may monitor the speed of eye-wearing device 100 via multi-frame visual positioning technology, inertial measurement unit 472, GPS unit 473, or a combination thereof.
[0133] At box 850, processor 432 adjusts the beat track in response to the monitored speed. Audio processor 443 can adjust the beat track under the control of processor 432. Audio processor 443 can speed up the beat track / reduce the time between beats when the user speeds up, and can slow down the beat track / increase the time between beats when the user speeds up (e.g., to synchronize the beat track with the user's walking pace) to improve the augmented reality experience.
[0134] Figure 9A -E illustrates a "beat walking" augmented reality experience, in which a user-controlled virtual game block (in the illustrated example, a hand) of an eye-wearing device 100 touches ("taps") an interactive virtual game block (in the illustrated example, another hand). Figure 9A An opening image depicting a beat-walking experience is presented. In the opening image, the eye-wearing device 100 displays a hand 902 (which is a user-controlled virtual game block) and another hand 904 (which is an interactive virtual game block) along with an image overlay on the optical assembly 180. The wearer / user of the eye-wearing device 100 views the image overlay against the backdrop of the physical environment in front of the eye-wearing device 100 (which is a corridor 906 in the illustrated example).
[0135] When hand 902 approaches other hand 904, if the distance between them is less than a first predefined threshold, the other hand 904 moves away from it. Figure 9A The clenched hand shown in Figure 904 has been changed to... Figure 9BThe open hand 904' is shown. Additionally, when hand 902 and the other hand 904' are within a second predefined threshold (which may be the same as or different from the first predefined threshold), a visual indicator (such as a halo 908) is added as an image overlay for the wearer to see, indicating a successful virtual hand slap or high-five. An audio signal may also be presented by the eye-wearing device 100, at least substantially simultaneously with the visual indicator, to further enhance the interactive augmented reality experience. The processor 432 may additionally track and add a fraction 914 to the image overlay, such as... Figure 9E As depicted in the text. For example, a score of 914 could represent the number of times a virtual hand was successfully clapped or raised during the game.
[0136] Figure 9C A grid 910 representing the surface of hand 902 is depicted. Figure 9D A grid 912 is drawn to represent the surface of the other hand 904'. Each intersection of the grid lines represents a surface point on grids 910 and 912, defined by reference to the corresponding marked positions of the respective hands 902 and 904'. The processor 432 tracks the relative positioning of the surface points between the two hands to determine the distance between them. Depending on the desired accuracy and available processing power, more or fewer grid lines / surface points can be used.
[0137] Figure 10A -H illustrates a “spherical balance” augmented reality experience, in which a user-controlled virtual game block (sandwich 1006 in the illustrated example) of an eye-wearing device 100 maintains the balance of an interactive virtual game block (egg 1008 or other spherical shape in the illustrated example) on the user-controlled virtual game block. Figure 10A An opening image depicting a spherical balance experience is provided. In the opening image, the eye-wearing device 100 presents an opening message 1002 (“Tap to start” in the illustrated example). The processor 432 presents the opening message 1002 as an image overlay on the optical assembly 180. The wearer of the eye-wearing device 100 views the image overlay against the background of the physical environment in front of the eye-wearing device 100 (which is a corridor 1004 in the illustrated example).
[0138] The wearer can start the game, for example, by tapping the user input 181 on the temple 125 of the eyewear device 100 with their index finger. Figure 10BAn opening image of the game is depicted, in which egg 1008 (which is an interactive virtual game block) is positioned on the top planar surface of sandwich 1006 (which is a user-controlled virtual game block). Processor 432 presents game blocks 1006 and 1008 as an image overlay on optical assembly 180. Processor 432 may additionally track and add a score 1010 to the image overlay. For example, score 1010 may represent the number of steps taken while egg 1008 remains on top of sandwich 1006. For example, as... Figure 10D As shown, the score 1010' increases to indicate that the wearer took a step before the egg 1008 fell off the sandwich 1006.
[0139] When the user tilts the sandwich 1006 by moving the eye-wearing device 100, the processor 432 considers physical principles (such as gravity and friction) and uses the physics engine 468 to move the egg 1008 (see...). Figure 10C The processor 432 continuously updates the positioning (position and orientation) of the game blocks and renders the game blocks 1006 and 1008 as an image overlay on the optical assembly 180.
[0140] Figure 10E and Figure 10F Control of an interactive game block in two dimensions is illustrated (i.e., in this example, up / down movement along the z-axis and pitch rotation about the y-axis of sandwich 1006). Although two dimensions are shown, any combination of one or more of the six degrees of freedom (pitch, yaw, roll, x-axis, y-axis, z-axis) can be adjusted based on the orientation of the eyewear device 100. In the illustrated example, when the wearer is looking straight ahead (assuming the wearer's head 1012 is not tilted to the left or right), sandwich 1006 is presented flat in front of the wearer. When the wearer tilts his head downwards (detected by processor 432), sandwich 1006 tilts and moves downwards. Tilting the head 1012 to the left or right will cause sandwich 1006 to tilt (i.e., roll rotation about the x-axis).
[0141] Figure 10G A grid 1014 representing the surface of sandwich 1006 is depicted. Figure 10H A grid 1016 is drawn to represent the surface of egg 1008. Each intersection of the grid lines represents a surface point on grids 1014 and 1016, defined by reference to corresponding marker positions on sandwich 1006 and egg 1008, respectively. Processor 432 tracks the relative positioning of the surface points between sandwich 1006 and egg 1008 to determine whether egg 1008 is still in contact with the top surface of sandwich 1006. Depending on the desired accuracy and available processing power, more or fewer grid lines / surface points can be used.
[0142] As described herein, any function of the eye-wearing device 100, mobile device 401, and server system 498 can be embodied in one or more computer software applications or sets of programming instructions. According to some examples, a “function,” “application,” “instruction,” or “program” is a program that performs a function defined in a program. Various programming languages can be used to develop one or more applications that are structured in various ways, such as object-oriented programming languages (e.g., Objective-C, Java, or C++) or procedural programming languages (e.g., C or assembly language). In a particular example, a third-party application (e.g., an entity other than a platform-specific vendor using Android) may be used. TM or iOS TM Applications developed using a Software Development Kit (SDK) can be included in mobile operating systems such as iOS. TM ANDROID TM , Mobile software running on a phone or another mobile operating system. In this example, a third-party application may invoke API calls provided by the operating system to facilitate the functionality described herein.
[0143] Therefore, machine-readable media can take many forms of tangible storage media. Non-volatile storage media include, for example, optical discs or disks, any storage device such as any computer device, such as client devices, media gateways, code converters, etc., that can be used to implement the figures shown. Volatile storage media include dynamic memory, such as the main memory of computer platforms. Tangible transmission media include coaxial cables; copper wires and optical fibers, including wires that form buses within a computer system. Carrier transmission media can take the form of electrical or electromagnetic signals, or sound or light waves, such as those generated during radio frequency (RF) and infrared (IR) data communications. Therefore, common forms of computer-readable media include, for example: floppy disks, floppy disks, hard disks, magnetic tapes, any other magnetic media, CD-ROMs, DVDs or DVD-ROMs, any other optical media, punched card tapes, any other physical storage media with a perforated pattern, RAM, PROMs and EPROMs, FLASH-EPROMs, any other memory chips or cartridges, carrier waves for transmitting data or instructions, cables or links for transmitting such carrier waves, or any other medium from which a computer can read program code or data. Many of these forms of computer-readable media can be used to carry one or more sequences of one or more instructions to a processor for execution.
[0144] In addition to what has just been stated above, whether or not it is stated in the claims, the stated or described content is not intended or should not be construed as causing any part, step, feature, object, benefit, advantage or equivalent to be offered to the public.
[0145] It should be understood that, unless otherwise specified herein, the terms and expressions used herein have the general meaning consistent with those in the corresponding fields of investigation and research. Relational terms such as “first” and “second” are used only to distinguish one entity or action from another, and do not necessarily require or imply any actual such relationship or order between these entities or actions. The terms “comprising,” “including,” “containing,” “having,” or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that includes or comprises a list of elements or steps includes not only those elements or steps, but may also include other elements or steps not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, an element prefixed with “a” or “an” does not exclude the presence of additional identical elements in the process, method, article, or apparatus that includes that element.
[0146] Unless otherwise stated, any and all measurements, values, ratings, positions, quantities, dimensions, and other specifications set forth in this specification, including those in the appended claims, are approximate, not precise. Such quantities are intended to have a reasonable range consistent with the functions they relate to and the conventions in the fields to which they pertain. For example, unless otherwise expressly stated, parameter values, etc., can vary from said quantity or range by up to plus or minus ten percent.
[0147] Furthermore, as can be seen in the foregoing specific embodiments, various features have been combined in various examples for the purpose of simplifying this disclosure. The disclosed method should not be construed as reflecting an intention to require more features than expressly recited in each claim in the claimed examples. Rather, as reflected in the following claims, the claimed subject matter lies in fewer features than in any single disclosed example. Therefore, the following claims are hereby incorporated into the specific embodiments, wherein each claim exists independently as a separately claimed subject matter.
[0148] While examples considered to be best practices and other examples have been described above, it should be understood that various modifications may be made therein, and the subject matter disclosed herein can be implemented in various forms and examples, and is applicable to many applications, of which only some have been described herein. The appended claims are intended to claim protection for any and all modifications and variations falling within the true scope of the inventive concept.
Claims
1. An interactive augmented reality system, comprising: Positioning detection system; Display system; An eye-wearing device, the eye-wearing device including the positioning detection system, the display system, the processor, and the memory; and The program in the memory, wherein the processor executes the program to configure the eye-wearing device to perform functions, including functions for the following: The positioning detection system is used to register a first marker positioning of a user-controlled virtual game block, the first marker positioning being defined relative to the eye-wearing device and responsive to movement of the eye-wearing device; The user-controlled virtual game block is displayed on the display system at the first marked location; The positioning detection system is used to register a second marker positioning for an interactive virtual game block, the second marker positioning being defined relative to the eye-wearing device; The interactive virtual game block is displayed on the display system at the second marked location; The first marker positioning is updated in response to movement of the eye-wearing device; The interaction between the user-controlled virtual game block and the interactive virtual game block is monitored as the first marker location is updated; as well as During the monitored interaction, a score is generated in response to the duration of contact between the user-controlled virtual game block and the interactive virtual game block, wherein the duration is determined by starting a timer when the interactive virtual game block virtually contacts the user-controlled virtual game block, stopping the timer when the interactive virtual game block no longer virtually contacts the user-controlled virtual game block, and incrementing the score in response to the timer.
2. The system according to claim 1, wherein the positioning detection system comprises: A camera, coupled to the eye-wearing device, is configured to capture a series of video data frames, each video data frame including depth information of multiple pixels.
3. The system according to claim 1, wherein the display system comprises: A see-through display, supported by the eye-wearing device, to present the user-controlled virtual game blocks and the interactive virtual game blocks.
4. The system according to claim 1, further comprising: Physics engine; The processor executes the program to further configure the eye-wearing device as follows: Monitor the user-controlled virtual game blocks; Monitor the interactive virtual game blocks; The physics engine is applied at the junction between the user-controlled virtual game block and the interactive virtual game block to derive the positioning update of the second marker positioning; as well as The exported location update is used to update the second marker location.
5. The system according to claim 1, further comprising: Prediction engine; The processor executes the program to further configure the eye-wearing device as follows: The positioning detection system is used to monitor the physical positioning of the eye-wearing device; The prediction engine is used to predict the heading of the eye-wearing device; and The second marker positioning is updated so that the interactive virtual game block appears along the predicted heading.
6. The system according to claim 5, further comprising: Audio system; The processor executes the program to further configure the eye-wearing device as follows: The audio system presents the beat track; Detecting virtual contact between the user-controlled virtual game block and the interactive virtual game block; and It presents a contact beat in response to the detected virtual contact.
7. The system of claim 5, wherein the eye-wearing device further comprises an audio system, and wherein the system further comprises: The audio system presents the beat track; The positioning detection system is used to monitor the speed of the eye-wearing device; as well as The beat track is adjusted in response to the speed monitored by the eye-wearing device.
8. An interactive augmented reality method for use with an eye-worn device, the eye-worn device having a positioning detection system and a display system, the method comprising: The positioning detection system is used to register a first marker positioning of a user-controlled virtual game block, the first marker positioning being defined relative to the eye-wearing device and responsive to movement of the eye-wearing device; The user-controlled virtual game block is displayed on the display system at the first marked location; The positioning detection system is used to register a second marker positioning for an interactive virtual game block, the second marker positioning being defined relative to the eye-wearing device; The interactive virtual game block is displayed on the display system at the second marked location; The first marker positioning is updated in response to movement of the eye-wearing device; The interaction between the user-controlled virtual game block and the interactive virtual game block is monitored as the first marker location is updated; as well as During the monitored interaction, a score is generated in response to the duration of contact between the user-controlled virtual game block and the interactive virtual game block, wherein the duration is determined by starting a timer when the interactive virtual game block virtually contacts the user-controlled virtual game block, stopping the timer when the interactive virtual game block no longer virtually contacts the user-controlled virtual game block, and incrementing the score in response to the timer.
9. The method of claim 8, wherein the display system comprises a see-through display supported by the eye-wearing device, and wherein the presenting step comprises: The user-controlled virtual game blocks and the interactive virtual game blocks are displayed on the perspective display.
10. The method of claim 8, further comprising: Update the second marker positioning; The monitoring interaction includes monitoring the interaction between the user-controlled virtual game block and the interactive virtual game block as the first marker location and the second marker location are updated.
11. The method of claim 10, wherein the eye-wearing device further comprises a physical engine, and wherein updating the second marker positioning comprises: Monitor the user-controlled virtual game blocks; Monitor the interactive virtual game blocks; The physics engine is applied at the junction between the user-controlled virtual game block and the interactive virtual game block to derive the positioning update of the second marker positioning; as well as The exported location update is used to update the second marker location.
12. The method of claim 11, further comprising: When the interactive virtual game block virtually comes into contact with the user-controlled virtual game block, the starting position corresponding to the user-controlled virtual game block is identified; Monitor the current location of the user-controlled virtual game block, whereby the interactive virtual game block virtually contacts the user-controlled virtual game block; and The score is adjusted in response to the distance between the identified starting location and the monitored current location.
13. The method of claim 11, wherein the user-controlled virtual game block comprises a planar surface and the interactive virtual game block has a spherical surface, the orientation of the planar surface responds to the positioning of the eye-wearing device, and the positioning of the spherical surface responds to the intersection between the planar surface and the spherical surface.
14. The method of claim 10, wherein the eye-wearing device further comprises a prediction engine, and wherein updating the second marker positioning comprises: The positioning detection system is used to monitor the physical positioning of the eye-wearing device; The prediction engine is used to predict the heading of the eye-wearing device; as well as The second marker positioning is updated so that the interactive virtual game block appears along the predicted heading.
15. The method of claim 14, further comprising: Detect the virtual contact between the user-controlled virtual game block and the interactive virtual game block; as well as The score is increased in response to detected virtual contact.
16. The method of claim 14, wherein the eye-wearing device further comprises an audio system, and wherein the method further comprises: The audio system presents the beat track; Detect the virtual contact between the user-controlled virtual game block and the interactive virtual game block; as well as It presents a contact beat in response to the detected virtual contact.
17. The method of claim 14, wherein the eye-wearing device further comprises an audio system, and wherein the method further comprises: The audio system presents the beat track; The positioning detection system is used to monitor the speed of the eye-wearing device; as well as The beat track is adjusted in response to the speed monitored by the eye-wearing device.
18. A non-transitory computer-readable medium storing program code, which, when executed, causes an electronic processor to perform the following steps: A series of video data frames are captured using a camera, each video data frame including depth information of multiple pixels, and the camera is coupled to an eye-wearing device including a processor, memory and a display. A positioning detection system is used to register a first marker positioning of a user-controlled virtual game block, the first marker positioning being defined relative to and in response to movement of the eye-wearing device; The user-controlled virtual game block is displayed on the display system of the eye-wearing device at the first marked location; The positioning detection system is used to register a second marker positioning for an interactive virtual game block, the second marker positioning being defined relative to the eye-wearing device; The interactive virtual game block is presented on the display system of the eye-wearing device at the second marked location; The first marker positioning is updated in response to movement of the eye-wearing device; The interaction between the user-controlled virtual game block and the interactive virtual game block is monitored as the first marker location is updated; as well as During the monitored interaction, a score is generated in response to the duration of contact between the user-controlled virtual game block and the interactive virtual game block, wherein the duration is determined by starting a timer when the interactive virtual game block virtually contacts the user-controlled virtual game block, stopping the timer when the interactive virtual game block no longer virtually contacts the user-controlled virtual game block, and incrementing the score in response to the timer.
19. The non-transitory computer-readable medium storing program code according to claim 18, wherein the program code, when executed, causes an electronic processor to perform the following additional steps: The beat track is presented by the audio system; The positioning detection system is used to monitor the speed of the eye-wearing device; and The beat track is adjusted in response to the speed monitored by the eye-wearing device.
Citation Information
Patent Citations
Virtual object shooting control method and device, electronic equipment and storage medium
CN110170168A
Multi-Sensor Monitoring of Athletic Performance
US20190299059A1
Accelerated gaze-supported manual cursor control
US20190361521A1
Transmodal input fusion for a wearable system
US20190362557A1
Image-recognition based game
US9541996B1