Low power architecture for augmented reality devices
By adopting a combined management strategy of low power and high power modes in AR devices, the problem of high power consumption in existing AR devices is solved, achieving longer battery life and better user experience.
Patent Information
- Application Number
- CN202380052399.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-07-07
- Filing Date
- 2023-07-06
- Publication Date
- 2025-02-25
AI Technical Summary
Existing augmented reality (AR) devices consume a lot of power in high power mode, resulting in shorter battery life and poor user experience.
Adopting a combined management strategy of low power mode and high power mode, running basic applications in low power mode through a low power processor and switching to high power mode when high power application requests are detected, leveraging high power processors to access more sensor data to support high performance applications.
Effectively reduces the power consumption of AR devices during idle states and low-performance tasks, extends battery life, and quickly switches to high-power mode when needed, ensuring the normal operation of high-performance applications.
Smart Images

Figure CN119522408A_ABST
Abstract
Description
[0001] Priority Claim
[0002] This application claims the benefit of priority to U.S. patent application serial number 17 / 859,588, filed on July 7, 2022, which is incorporated herein by reference in its entirety. Technical Field
[0003] The subject matter disclosed herein generally relates to augmented reality (AR) systems. Specifically, the present disclosure proposes a low-power architecture for AR systems. Background Art
[0004] Augmented reality (AR) allows a user to observe a scene while seeing related virtual content that can be aligned with items, images, objects, or environments in the field of view of the AR device. AR devices include 6DOF (six degrees of freedom) tracking systems that can require a lot of power. To save power, AR devices can be set to sleep mode and awakened in response to a user request to start an AR experience. BRIEF DESCRIPTION OF THE DRAWINGS
[0005] In the drawings, which are not necessarily drawn to scale, similar reference numerals may describe similar components in different views. To easily identify the discussion of any particular element or action, the highest digit or digits in the reference numeral refer to the figure number in which the element is first introduced. Some non-limiting examples are shown in the figures of the accompanying drawings, in which:
[0006] Figure 1 is a block diagram illustrating an environment for operating an AR device according to one example embodiment.
[0007] Figure 2 is a block diagram illustrating an AR device according to an example embodiment.
[0008] Figure 3 is a block diagram illustrating a high power mode system according to an example implementation.
[0009] Figure 4 is a block diagram illustrating a low power mode system according to an example implementation.
[0010] Figure 5 A method for operating an AR device in a low power mode according to an example implementation is shown.
[0011] Figure 6 A method for activating a high power mode according to an example implementation is shown.
[0012] Figure 7 A head wearable device 700 is shown according to an example implementation.
[0013] Figure 8 A network environment in which a head wearable device may be implemented according to an example implementation is shown.
[0014] Fig. 9 is a block diagram illustrating a software architecture within which the present disclosure may be implemented according to an example implementation.
[0015] Fig.10 is a diagrammatic representation of a machine in the form of a computer system within which a set of instructions may be executed for causing the machine to perform any one or more of the methodologies discussed herein according to an example embodiment. DETAILED DESCRIPTION
[0016] The following description describes the system, method, technology, instruction sequence and computing machine program product of the example implementation of this theme. In the following description, for the purpose of illustration, many specific details are set forth in order to provide an understanding of the various implementations of this theme. However, it will be apparent to those skilled in the art that the implementation of this theme can be put into practice without some or other details in these specific details. Examples represent possible variations only. Unless otherwise clearly stated, structures (e.g., structural components such as modules) are optional and can be combined or subdivided, and operations (e.g., in processes, algorithms or other functions) can be changed in order or combined or subdivided.
[0017] The term "augmented reality" (AR) is used herein to refer to an interactive experience of a real-world environment in which physical objects residing in the real world are "augmented" or enhanced by computer-generated digital content (also referred to as virtual content or synthetic content). AR may also refer to a system that enables the combination of the real and virtual worlds, real-time interaction, and 3D registration of virtual and real objects. Users of AR systems perceive virtual content that appears to be attached to or interacting with real-world physical objects.
[0018] The term "virtual reality" (VR) is used herein to refer to a simulated experience of a virtual world environment that is completely different from the real world environment. Computer-generated digital content is displayed in a virtual world environment. VR also refers to a system that enables a user of a VR system to be fully immersed in a virtual world environment and interact with virtual objects presented in the virtual world environment.
[0019] The term "AR application" is used herein to refer to a computer-operated application that implements an AR experience. The term "VR application" is used herein to refer to a computer-operated application that implements a VR experience. The term "AR / VR application" refers to a computer-operated application that implements a combination of an AR experience or a VR experience.
[0020] The term "visual tracking system" is used herein to refer to a computer-operated application or system that enables the system to track visual features identified in images captured by one or more cameras of the visual tracking system. The visual tracking system builds a model of the real-world environment based on the tracked visual features. Non-limiting examples of visual tracking systems include: visual simultaneous localization and mapping systems (VSLAM) and visual inertial odometry (VIO) systems. VSLAM can be used to construct a target from an environment or scene based on one or more cameras of the visual tracking system. VIO (also known as visual inertial tracking system and visual odometry system) determines the latest posture (e.g., position and orientation) of a device based on data obtained from multiple sensors of the device (e.g., optical sensors, inertial sensors).
[0021] The term "inertial measurement unit" (IMU) is used herein to refer to a device that can report the inertial state of a mobile subject, including the acceleration, velocity, orientation, and positioning of the mobile subject. The IMU tracks the movement of the subject by integrating the acceleration and angular velocity measured by the IMU. The IMU may also refer to a combination of an accelerometer and a gyroscope, which can determine and quantify linear acceleration and angular velocity, respectively. The values obtained from the IMU gyroscope can be processed to obtain the pitch, roll, and heading of the IMU, and thus obtain the pitch, roll, and heading of the subject associated with the IMU. The signal from the accelerometer of the IMU can also be processed to obtain the velocity and displacement of the IMU.
[0022] Both AR applications and VR applications allow a user to access information, for example, in the form of virtual content rendered in a display of an AR / VR display device (also referred to as an "AR device," "VR device," and display device). The rendering of the virtual content can be based on the positioning of the display device relative to physical objects or relative to a reference frame (external to the display device) so that the virtual content appears correctly in the display. For AR, the virtual content appears to be aligned with physical objects perceived by the user and the camera of the AR display device. The virtual content appears to be attached to the physical world (e.g., a physical object of interest).
[0023] Displaying and aligning virtual content within the physical world requires a significant amount of device computing power. In some examples, an AR device detects physical objects and tracks the pose of the AR device relative to the physical object. The pose identifies the position and orientation of the display device relative to a reference frame or relative to another object. Thus, the virtual content is refreshed based on the latest pose of the device.
[0024] In order to improve the user experience of the user of the display device, the AR device can operate in one of the following two modes: a low power mode using a low power processor (e.g., MCU) and a high power mode using a high power processor (e.g., SoC). In one example, the AR device operates in a low power mode in which a first set of applications is configured to operate on the MCU by accessing a first set of sensor data (e.g., limited data from a limited set of sensors of the AR device). The AR device operates in a high power mode in which a second set of applications is configured to operate on the SoC by accessing a second set of sensor data (e.g., data from any sensor in the AR device). In another example, the AR device operates in a low power mode by default, detects a request to operate in a high power mode (e.g., a user launches an AR application on the AR device), and switches to a high power mode in response (e.g., activating a six degree of freedom (6DOF) tracking system instead of the current zero DOF tracking). In another example, the AR device detects a predefined trigger event (e.g., detecting new AR data such as a filter / lens based on the geographic location of the AR device, a gesture is not recognized after 3 attempts, and a wake-up key phrase is detected by the recorder) and activates the high power mode in response to the predefined trigger event.
[0025] Thus, low-power applications reduce certain computations that are not necessarily needed for low-level AR (e.g., not using visual inertial odometry (VIO), limiting the AR experience to zero DOF instead of using 6DOF, or partially displaying). Using the techniques presented in this application results in substantial power savings, and the experience can run on a microcontroller instead of a high-power processor.
[0026] In one example implementation, the present application describes a method for managing applications of an AR device. The method includes: configuring a low power mode to run on a low power processor of the AR device using a first set of sensor data from a first set of sensors of the AR device, and configuring a high power mode to run on a high power processor of the AR device using a second set of sensor data from a second set of sensors of the AR device; operating a low power application in the low power mode based on the first set of sensor data using the low power processor; detecting a request to operate a high power application at the AR device; activating a second set of sensors of the AR device corresponding to the high power mode in response to detecting the request; accessing the second set of sensor data from the second set of sensors using the high power processor; and operating the high power application in the high power mode based on the second set of sensor data using the high power processor.
[0027] Thus, one or more of the methods described herein help address the technical problem of power resource management for AR devices. The presently described methods provide improvements to the operation of computer functions by reducing the power consumption of an AR device when the device is idle (e.g., when a user is not enjoying an experience that requires 6DOF tracking).
[0028] Figure 1 1 is a network diagram illustrating an environment 100 suitable for operating an AR device 108, according to some example implementations. The environment 100 includes a user 104, an AR device 108, and a physical object 106. The user 104 operates the AR device 108. The user 104 may be a human user (e.g., a human), a machine user (e.g., a computer configured by a software program to interact with the AR device 108), or any suitable combination thereof (e.g., a human assisted by a machine or a machine supervised by a human). The user 104 is associated with the AR device 108.
[0029] AR device 108 may be a computing device with a display, such as a smartphone, a tablet computer, or a wearable computing device (e.g., a watch or glasses). The computing device may be handheld or may be removably mounted to the head of user 104. In one example, the display includes a screen that displays images captured using a camera of AR device 108. In another example, the display of the device may be transparent, such as in the lenses of wearable computing glasses. In other examples, the display may be opaque, partially transparent, or partially opaque. In yet other examples, the display may be wearable by user 104 to cover the field of view of user 104.
[0030] The AR device 108 includes an augmented reality system 114 that generates virtual content based on images detected using a camera of the AR device 108. For example, the user 104 may direct the camera of the AR device 108 to capture an image of the physical object 106. The augmented reality system 114 generates virtual content corresponding to the object identified in the image (e.g., the physical object 106) and presents the virtual content in a display of the AR device 108. In another example, the augmented reality system 114 generates the virtual content and presents the virtual content in the display of the AR device 108 relative to a reference frame (external to the display device) so that the virtual content appears correctly in the display.
[0031] In one example implementation, the augmented reality system 114 includes a low power mode system 112 and a high power mode system 110. The low power mode system 112 operates in a low power mode using a low power processor (e.g., an MCU). The high power mode system 110 operates in a high power mode using a high power processor (e.g., an SoC). The terms "high power" and "low power" are used in relative terms: a low power processor consumes less power than a high power processor. Similarly, the augmented reality system 114 consumes more power in the high power mode system 110 than in the low power mode system 112.
[0032] The augmented reality system 114 operates in a low power mode in which a first group of applications is configured to operate on a low power processor by accessing a first set of sensor data (e.g., limited data from a limited set of sensors of the AR device 108). Non-limiting examples of the first group of applications include: low power heads-up display (HUD) applications, low power new virtual object applications, low power audio input / output applications, low power gesture applications, low power navigation applications, and low power persistent applications (see below). Figure 4 described in more detail).
[0033] The augmented reality system 114 operates in a high power mode in which a second set of applications is configured to operate on the high power processor by accessing a second set of sensor data (e.g., data from any sensor in the AR device 108). Non-limiting examples of the second set of applications include a 6DOF tracking system, a depth sensing system, an AR application using the gestures of the AR device 108 (see below), and a second set of applications that are configured to operate on the high power processor by accessing a second set of sensor data (e.g., data from any sensor in the AR device 108). Figure 3 described in more detail).
[0034] In one example, the augmented reality system 114 operates in low power mode by default using the low power mode system 112. The augmented reality system 114 detects a request to operate in high power mode (e.g., a user launches an AR application on the AR device 108) and switches to high power mode in response (e.g., activating a six degree of freedom (6DOF) tracking system instead of the current zero DOF tracking). In another example, the augmented reality system 114 detects a predefined trigger event (e.g., detecting new AR data such as a filter / lens based on the geolocation of the low power mode system 112, a gesture is not recognized after several attempts, a recorder detects a preset key phrase) and activates the high power mode of the high power mode system 110 in response to the predefined trigger event.
[0035] In another example, in the low power mode of the low power mode system 112, the augmented reality system 114 uses IMU sensors (e.g., accelerometers, gyroscopes, and magnetometers) without using data from any optical sensors of the AR device 108 (e.g., in other words, the camera of the AR device 108 does not operate in the low power mode of the low power mode system 112) to track the pose (e.g., position and orientation) of the AR device 108 relative to the real-world environment 102.
[0036] In one example, in the high power mode of the high power mode system 110, the augmented reality system 114 activates additional sensors and uses, for example, optical sensors (e.g., depth-enabled 3D cameras, image cameras), inertial sensors (e.g., gyroscopes, accelerometers), wireless sensors (Bluetooth, Wi-Fi), GPS sensors, and audio sensors to track the pose of the AR device 108 relative to the real world environment 102. In one example, the AR device 108 displays virtual content based on the pose of the AR device 108 relative to the real world environment 102 and / or the physical objects 106.
[0037] Figure 1 Any of the machines, databases, or devices shown may be implemented in a general-purpose computer that is modified (e.g., configured or programmed) by software to be a special-purpose computer to perform one or more of the functions described herein for the machine, database, or device. As used herein, a "database" is a data storage resource and may store data structured as a text file, table, spreadsheet, relational database (e.g., object-relational database), triple store, hierarchical data store, or any suitable combination thereof. In addition, Figure 1 Any two or more of the machines, databases, or devices shown in the may be combined into a single machine, and the functionality described herein for any single machine, database, or device may be subdivided among multiple machines, databases, or devices.
[0038] The AR device 108 may be operated via a computer network. A computer network may be any network that enables communication between or among machines, databases, and devices. Thus, a computer network may be a wired network, a wireless network (e.g., a mobile network or a cellular network), or any suitable combination thereof. A computer network may include one or more parts that constitute a private network, a public network (e.g., the Internet), or any suitable combination thereof.
[0039] Figure 22 is a block diagram illustrating modules (e.g., components) of an AR device 108 according to some example implementations. The AR device 108 includes a sensor 202, a display 204, a display controller 218, a graphics processing unit 216, a high-power processor 208, a low-power processor 220, and a storage device 206. Examples of the AR device 108 include a wearable computing device, a mobile computing device, a navigation device, a portable media device, or a smartphone.
[0040] Sensors 202 include, for example, optical sensors 210 (e.g., cameras such as color cameras, thermal cameras, depth sensors, and one or more grayscale, global / rolling shutter tracking cameras) and inertial sensors 212 (e.g., gyroscopes, accelerometers). Other examples of sensors 202 include proximity or position sensors (e.g., near field communication, GPS, Bluetooth, Wi-Fi), audio sensors (e.g., microphones), or any suitable combination thereof. Note that sensors 202 are described herein for illustrative purposes, and thus sensors 202 are not limited to the sensors described above.
[0041] In one example, the first group of sensors corresponds to a low power mode of the low power mode system 112, and the second group of sensors corresponds to a high power mode of the high power mode system 110. The first group of sensors includes a portion of each sensor available at the AR device 108, and the second group of sensors includes each sensor available at the AR device 108. For example, the first group of sensors includes sensors A, B, and C, and the second group of sensors includes all of sensors A, B, C, D, and F.
[0042] In another example, a first set of sensor data (in low power mode) refers to a portion of data generated by a sensor, while a second set of sensor data (in high power mode) refers to data provided by the sensor. For example, sensor A of the AR device 108 generates a data stream. The first set of sensor data in low power mode may include a portion of the data stream, while the second set of sensor data includes the entire data stream.
[0043] The low power processor 220 includes the low power mode system 112. The low power mode system 112 operates at least one application from the first group of applications by accessing the first group of sensor data from the first group of sensors of the sensor 202. Non-limiting examples of the first group of applications include: a low power head-up display (HUD) application, a low power new virtual object application, a low power audio input / output application, a low power gesture application, a low power navigation application, and a low power persistent application (hereinafter referred to as Figure 4 described in more detail).
[0044] The high power processor 208 includes a high power mode system 110. The high power mode system 110 operates at least one application from the second group of applications by accessing a second set of sensor data from the second group of sensors of the sensor 202. Examples of applications from the second group of applications include an AR application (the AR application 302 in Figure 3 ). The AR application uses computer vision to detect and identify the physical environment or physical object 106. The AR application retrieves virtual content (e.g., a 3D object model) based on the identified physical object 106 or physical environment. The AR application renders the virtual object in the display 204. In one example embodiment, the AR application includes a local rendering engine that generates a visualization of the virtual content overlaid (e.g., superimposed on or otherwise displayed in conjunction with) the image of the physical object 106 captured by the optical sensor 210. The visualization of the virtual content can be manipulated by adjusting the positioning of the physical object 106 relative to the optical sensor 210 (e.g., its physical position, orientation, or both). Similarly, the visualization of the virtual content can be manipulated by adjusting the posture of the AR device 108 relative to the physical object 106.
[0045] In one example, in the low power mode system 112, the low power processor 220 uses sensor data from an IMU sensor (e.g., inertial sensor 212) to access rotational motion data of the AR device 108. In the high power mode system 110, the high power processor 208 captures rotational and translational motion data of the AR device 108. For example, the high power processor 208 uses image data from the optical sensor 210 and corresponding inertial data from the inertial sensor 212 to track the position and pose of the AR device 108 relative to a reference frame (e.g., the real world environment 102).
[0046] In one example implementation, instead of continuously running the high power mode system 110 or only running the high power mode system 110 when requested by an AR application, the low power mode system 112 begins running when the AR device 108 is powered on. The low power mode system 112 runs until the user requests to launch an AR application. Once the AR application is launched, the AR device 108 switches from the low power mode system 112 to the high power mode system 110.
[0047] In one example, the graphics processing unit 216 includes a rendering engine (not shown) configured to render frames of 3D models of virtual objects based on the virtual content provided by the AR application and the pose of the AR device 108. In other words, the graphics processing unit 216 uses the three-dimensional pose of the AR device 108 to generate frames of virtual content to be presented on the display 304. For example, the graphics processing unit 216 uses the three-dimensional pose to render frames of virtual content so that the virtual content is presented in a certain orientation and position in the display 204 to appropriately enhance the user's sense of reality. As an example, the graphics processing unit 216 can use the three-dimensional pose data to render frames of virtual content so that when presented on the display 204, the virtual content overlaps with physical objects in the user's real-world environment 102. The graphics processing unit 216 generates an updated frame of virtual content based on the updated three-dimensional pose of the graphics processing unit 216, which reflects the change in the position and orientation of the user relative to the physical objects in the user's real-world environment 102.
[0048] The graphics processing unit 216 transmits the rendered frames to the display controller 218. The display controller 218 is positioned as an intermediary between the display controller 218 and the display 204, receiving image data (eg, rendered frames) from the graphics processing unit 216 and providing the rendered frames to the display 204.
[0049] The display 204 comprises a screen or monitor configured to display images generated by the high-power processor 208. In one example implementation, the display 204 may be transparent or translucent so that the user 104 can see through the display 204 (in an AR use case). In another example implementation, the display 204 covers the eyes of the user 104 and blocks the entire field of view of the user 104 (in a VR use case). In another example, the display 204 comprises a touch screen display configured to receive user input via contact on the touch screen display.
[0050] Storage device 206 stores virtual content 214. Virtual content 214 includes, for example, a database of visual references (e.g., images of physical objects) and corresponding experiences (e.g., three-dimensional virtual object models). Other augmented data that may be stored in storage device 206 include augmented reality content items (e.g., corresponding to application lenses or augmented reality experiences). Augmented reality content items may be real-time special effects and sounds that may be added to images or videos.
[0051] As described above, augmented data includes augmented reality content items, overlays, image transformations, AR images, and similar terms that refer to modifications that can be applied to image data (e.g., video or images). This includes real-time modifications that modify images when they are captured using the device sensor (e.g., one or more cameras) of the AR device 108, and then display the modified images on the screen of the AR device 108. This also includes modifications to stored content such as video clips in a gallery that can be modified. For example, in an AR device 108 that accesses multiple augmented reality content items, a user can use a single video clip with multiple augmented reality content items to see how different augmented reality content items will modify the stored clips. For example, by selecting different augmented reality content items for the content, multiple augmented reality content items that apply different pseudo-random movement models can be applied to the same content. Similarly, real-time video capture can be used with the modifications shown to show how the video image currently being captured by the sensor of the AR device 108 will modify the captured data. Such data can be displayed only on the screen without being stored in the memory, or the content captured by the device sensor can be recorded and stored in the memory with or without modification (or both). In some systems, the preview function can simultaneously show how different augmented reality content items will look in different windows of the display. This can, for example, enable viewing of multiple windows with different pseudo-random animations on the display at the same time.
[0052] Thus, data and various systems using augmented reality content items or other such transformation systems that modify content using such data may involve: detection of objects (e.g., faces, hands, bodies, cats, dogs, surfaces, objects, etc.) in video frames, tracking of such objects as they leave, enter, and move around the field of view, and modification or transformation of such objects as they are tracked. In various examples, different methods for implementing such transformations may be used. Some examples may involve: generating a three-dimensional mesh model of one or more objects, and using transformations and animated textures of the models within a video to implement the transformations. In other examples, tracking of points on an object may be utilized to place an image or texture (which may be two-dimensional or three-dimensional) at the tracked location. In yet another example, neural network analysis of a video frame may be used to place an image, model, or texture in content (e.g., a frame of an image or video). Thus, augmented reality content items refer to both images, models, and textures used to create transformations in content, as well as additional modeling and analysis information required to implement such transformations using object detection, tracking, and placement.
[0053] Real-time video processing can be performed using any type of video data (e.g., video streams, video files, etc.) stored in the memory of any type of computerized system. For example, a user can load video files and store them in the memory of the device, or a sensor of the device can be used to generate a video stream. In addition, computer animation models can be used to process any object, such as human faces and body parts, animals, or inanimate objects (e.g., chairs, cars, or other objects).
[0054] In some examples, when a specific modification is selected together with the content to be transformed, the elements to be transformed are identified by the computing device, and then if the elements to be transformed are present in the frame of the video, they are detected and tracked. The elements of the object are modified according to the request for modification, thereby transforming the frame of the video stream. For different types of transformations, the transformation of the frame of the video stream can be performed by different methods. For example, for the transformation of the frame that mainly involves changing the form of the elements of the object, the feature points of each element of the object are calculated (for example, using an active shape model (ASM) or other known methods). Then, for each element of at least one element of the object, a grid based on the feature points is generated. The grid is used for the subsequent stages of tracking the elements of the object in the video stream. During the tracking process, the grid mentioned for each element is aligned with the positioning of each element. Then, additional points are generated on the grid. A first set of first points is generated for each element based on the request for modification, and a set of second points is generated for each element based on the set of first points and the request for modification. Then, the frame of the video stream can be transformed by modifying the elements of the object based on the set of first points and the set of second points and the grid. In such methods, the background of the modified object may also be changed or deformed by tracking and modifying the background.
[0055] In some examples, a transformation that changes some areas of an object using elements of an object can be performed by calculating feature points of each element of the object and generating a grid based on the calculated feature points. Points are generated on the grid, and then various areas are generated based on the points. Then, the elements of the object are tracked by aligning the area of each element with the position of each element of at least one element, and the properties of the area can be modified based on a request for modification, thereby transforming the frame of the video stream. Depending on the specific request for modification, the properties of the mentioned area can be transformed in different ways. Such modifications may involve: changing the color of the area; removing at least some parts of the area from the frame of the video stream; including one or more new objects in the area based on the request for modification; and modifying or deforming the elements of the area or object. In various examples, any combination of such modifications or other similar modifications may be used. For certain models to be animated, some feature points may be selected as control points for the entire state space to be used to determine options for model animation.
[0056] In some examples of computer animation models that use face detection to transform image data, faces are detected on an image using a specific face detection algorithm (e.g., Viola-Jones). An active shape model (ASM) algorithm is then applied to the face region of the image to detect facial feature reference points.
[0057] Other methods and algorithms suitable for face detection can be used. For example, in some examples, landmarks are used to locate features, which represent distinguishable points that exist in most of the images considered. For example, for facial landmarks, the location of the left pupil can be used. If the initial landmarks are not recognizable (for example, if the person is wearing an eye patch), secondary landmarks can be used. Such a landmark recognition process can be used for any such object. In some examples, a set of landmarks forms a shape. The shape can be represented as a vector using the coordinates of the points in the shape. One shape is aligned with another shape using a similarity transformation (allowing translation, scaling, and rotation) that minimizes the average Euclidean distance between the shape points. The mean shape (meanshape) is the average value of the aligned training shapes.
[0058] In some examples, a landmark search begins with a mean shape aligned with the location and size of a face determined by a global face detector. Such a search then repeats the steps of proposing tentative shapes by adjusting the positions of shape points by template matching of the image texture around each point, and then conforming the tentative shapes to a global shape model until convergence occurs. In some systems, individual template matches are unreliable, and the shape model aggregates the results of weak template matches to form a stronger overall classifier. The entire search is repeated at each level in the image pyramid from coarse resolution to fine resolution.
[0059] The transformation system can capture an image or video stream on a client device (e.g., AR device 108) and perform complex image manipulations locally on the AR device 108 while maintaining an appropriate user experience, computational time, and power consumption. Complex image manipulations can include size and shape changes, emotion transitions (e.g., changing a face from a frown to a smile), state transitions (e.g., aging a subject, reducing apparent age, changing gender), style transitions, application of graphical elements, and any other suitable image or video manipulations enabled by a convolutional neural network that has been configured to execute efficiently on the AR device 108.
[0060] In some examples, a computer-animated model for transforming image data may be used by a system in which a user may capture an image or video stream of the user (e.g., a selfie) using an AR device 108 having a neural network operating as part of an AR application operating on the AR device 108. A transformation system operating within the AR application determines the presence of a face within the image or video stream and provides a modification icon associated with the computer-animated model to transform the image data, or the computer-animated model may be presented in association with an interface described herein. The modification icon includes changes that may be a basis for modifying the user's face within the image or video stream as part of the modification operation. Once the modification icon is selected, the transformation system initiates a process of transforming the user's image to reflect the selected modification icon (e.g., generating a smiley face on the user). Once the image or video stream is captured and the specified modification is selected, the modified image or video stream may be presented in a graphical user interface displayed on the AR device 108. The transformation system may implement a complex convolutional neural network on a portion of the image or video stream to generate and apply the selected modification. That is, a user can capture an image or video stream, and once a modification icon has been selected, the modified result can be presented to the user in real time or near real time. In addition, the modification can be persistent while the video stream is being captured and the selected modification icon remains toggled. A machine learning neural network can be used to implement such modification.
[0061] The graphical user interface presenting the modifications performed by the transformation system can supply additional interactive options for the user. Such options can be based on the interface for initiating the selection of a particular computer animation model and content capture (e.g., initiated from a content creator user interface). In various examples, the modifications can be persistent after the initial selection of the modification icon. The user can switch the modification on or off by tapping or otherwise selecting the face being modified by the transformation system, and store it for later viewing or browsing of other areas of the imaging application. In the case of multiple faces being modified by the transformation system, the user can globally switch the modification on or off by tapping or selecting a single face modified and displayed within the graphical user interface. In some examples, each face in a group of multiple faces can be modified individually, or such modifications can be switched individually by tapping or selecting a single face or a series of single faces displayed within the graphical user interface.
[0062] Any one or more modules in the modules described herein can be implemented using hardware (e.g., a processor of a machine) or a combination of hardware and software. For example, any module described herein can configure a processor to perform the operation described herein for the module. In addition, any two or more modules in these modules can be combined into a single module, and the function described herein for a single module can be subdivided among multiple modules. In addition, according to various example embodiments, the modules described herein as implemented in a single machine, database, or device can be distributed across multiple machines, databases, or devices.
[0063] Figure 3 A high power mode system 110 is shown according to an example implementation. The high power mode system 110 includes, for example, a high power sensor module 308, an AR application 302, a 6DOF tracker 304, a 3DOF tracker 310, and a depth system 306.
[0064] The high power sensor module 308 communicates with a second set of sensors. In one example, the second set of sensors includes all sensors 202 of the AR device 108. In another example, the second set of sensors includes sensors mapped to the high power mode system 110. The high power sensor module 308 accesses a second set of sensor data from the second set of sensors. In one example, the second set of sensor data includes all data available from all sensors 202 of the AR device 108. In another example, the second set of sensor data includes sensor data from sensors mapped to the high power mode system 110. The high power sensor module 308 can activate at least one sensor in the second set of sensors to access its data.
[0065] The AR application 302 uses computer vision to detect and identify the physical environment or physical objects 106. The AR application 302 retrieves virtual content (e.g., 3D object models) based on the identified physical objects 106 or physical environment, and renders the virtual objects in the display 204. In one example embodiment, the AR application 302 includes a local rendering engine that generates a visualization of the virtual content overlaid (e.g., superimposed on or otherwise displayed in conjunction with) on the image of the physical object 106 captured by the optical sensor 210. The visualization of the virtual content can be manipulated by adjusting the positioning of the physical object 106 relative to the optical sensor 210 (e.g., its physical position, orientation, or both). Similarly, the visualization of the virtual content can be manipulated by adjusting the posture of the AR device 108 relative to the physical object 106.
[0066] The pose of the AR device 108 can be determined based on the 6DOF tracker 304 / 3DOF tracker 310 and the depth system 306. The 3DOF tracker 310 allows the AR device 108 to track rotational motion. For example, the 3DOF tracker 310 can track whether the user of the AR device 108 is looking left or right, rotating their head up or down, and pivoting left or right. The AR device 108 cannot use the 3DOF tracking system to determine whether the user has moved around the scene by moving in the real world environment 102. The 3DOF tracker 310 uses sensor data from the AR device 108, such as an inertial measurement unit (IMU) sensor. For example, the 3DOF tracker 310 system uses sensor data from sensors such as accelerometers, gyroscopes, and magnetometers.
[0067] The 6DOF tracker 304 allows the AR device 108 to track rotational and translational motion. For example, the 6DOF tracker 304 can track whether the user has rotated their head and moved forward or backward, sideways or vertically, and up or down. The 6DOF tracker 304 includes a visual odometry system that relies on data acquired from multiple sensors (e.g., depth cameras, inertial sensors). The 6DOF tracker 304 analyzes the data from the sensors to accurately determine the pose of the AR device 108.
[0068] In one example, the 6DOF tracker 304 determines the pose (e.g., location, position, orientation) of the AR device 108 relative to a reference frame (e.g., the real-world environment 102). In one example implementation, the 6DOF tracker 304 includes a visual odometry system that estimates the pose of the AR device 108 based on a 3D map of feature points from images captured with the depth system 306 and inertial sensor data captured with the inertial sensors 212. The high power sensor module 308 accesses image data from the optical sensor 210.
[0069] In one example implementation, the 6DOF tracker 304 computes the position and orientation of the AR device 108. The AR device 108 includes one or more optical sensors 210 and one or more inertial sensors 212 mounted on a rigid platform (frame of the AR device 108). The optical sensors 210 may be mounted with non-overlapping (distributed aperture) or overlapping (stereo or more) fields of view.
[0070] In some example implementations, the 6DOF tracker 304 includes an algorithm that combines inertial information from the inertial sensors 212 and image information from the optical sensors 210 coupled to a rigid platform (e.g., the AR device 108) or rig. In one implementation, the rig may consist of a plurality of cameras mounted on a rigid platform and an inertial navigation unit (e.g., the inertial sensors 212). Thus, the rig may have at least one inertial navigation unit and at least one camera.
[0071] Figure 4 4 is a block diagram illustrating a low power mode system 112 according to an example implementation. The low power mode system 112 includes a low power virtual object application 402, a low power HUD application 404, a low power gesture application 406, a low power audio application 408, a low power persistent application 410, a low power navigation application 412, a low power sensor module 414, and a high power mode switching module 416. One of ordinary skill in the art will recognize that other applications that operate on the first set of sensor data may be executed using the low power mode system 112 with the low power processor 220. Figure 4 The applications described are for illustrative purposes only and are not intended to be limiting.
[0072] When the AR device 108 is operating in the low power mode system 112, the low power virtual object application 402 enables the AR device 108 to access newly available virtual content items (e.g., "lenses" or "AR filters"). In one example, the AR application 302 is not working and the AR device 108 is considered "offline". A new geo-tag specific lens is available. The mobile device connected to the AR device 108 downloads the new virtual content item and uploads it to the AR device 108 via BLE. Once the upload is complete, the AR device 108 is awakened and the lens will be made available and announced to the user 104. Once the file (of the new virtual content item) is uploaded, the low power mode system 112 transitions to the high power mode system 110. When the main high power processor 208 is turned off or in a low power state, by caching the data on the low power processor 220 and using the low power processor 220 for transmission, it can be made more energy-efficient to transmit data (lenses, media) over a slow link (BLE / BTC). This process reduces the overall power consumption per MB transmitted.
[0073] The low power HUD application 404 enables the use of the display 204 as a heads-up display (HUD) to display information and notify the user 104. For example, sometimes it is necessary to notify the user of certain events. However, the battery cost may be prohibitive because a short display notification will require the high power processor 208 to be started, thereby starting the entire operating system (OS), then displayed, and then entering a suspended state (high power processor 208) or powered off. Both methods consume power even when relatively frequent (once every few minutes) but short-lived activities occur. Using low power BLE / BT technology to transmit notifications consumes less power than higher power Wi-Fi.
[0074] The low power HUD application 404 operates on the low power processor 220 to drive the display 204 and output non-AR content. For example, the low power HUD application 404 uses an MCU with a DSI interface and a frame buffer and a display interface (MIPI) switch to display the latest information without waking up / starting the main CPU.
[0075] In one example implementation, the low power HUD application 404 operates with zero DOF tracking. For example, text or simple 2D graphic images are presented to the user 104 in the display 204. The displayed content is not anchored to the real world environment 102. Non-limiting examples of displayed content using 0DOF include: speech to text output, search results, biometric health data, GPS data, shared images, animations, videos.
[0076] The low power gesture application 406 operates on the low power processor 220 to detect and recognize wake-up gestures. One solution uses a very low resolution sensor (4×4) combined with an MCU for coarse gesture recognition. In one example, the MCU is capable of processing higher resolution monocular camera data (using, for example, CV camera streaming) and running a stripped down version of neural network software (such as TensorFlow lite) to provide higher end recognition features. In another example implementation, the low power gesture application 406 recognizes a limited set of hand commands such as yes, no, cancel, redo, forward, and back.
[0077] The low power audio application 408 operates on the low power processor 220 and uses BLE or UWB to enable the AR device 108 to operate as a wireless earphone or headset while using very little power. In conjunction with a TensorFlow-based speech recognizer, the low power audio application 408 implements basic voice control capabilities. When connected to a mobile device via BLE / UWB, the mobile device can implement a voice assistant interface to remove the assistant service server.
[0078] In another example, the low power audio application 408 operates a voice activated memo recording feature. The user 104 can activate the memo / voice note feature by saying "Snap! Jot down a memo." The AR device 108 starts recording to local storage and tags the recording with the current location and timestamp. The AR device 108 stops recording by saying "Snap! Stop."
[0079] The low power navigation application 412 operates on the low power processor 220 to provide navigation / orientation instructions. In conjunction with the low power HUD feature and equipped with a UWB module (or BLE 5.1 stack), the AR device 108 can be used to find marked items (beacons) and overlay the beacon indicators onto the field of view in the display 204. Using frame buffer overlays and quickly modifying the overlay origin, a smooth visual indication of located objects can be achieved.
[0080] In another example, the low-power navigation application 412 operates a magnetometer and GPS that provide heading and positioning information for navigation. The low-power navigation application 412 displays geo-based information that can be provided and superimposed on the display 204 when the user 104 moves around with the AR device 108. When the user 104 leaves or enters a geo-fence (e.g., home, work), the geo-fence application is triggered. UWB / BLE-based beacons can be used to enhance short-range and indoor proximity, and short-range and indoor proximity can provide indoor geo-triggered applications and deals / offers / specials within shopping malls-which are broadcast to the AR device 108. Using low-power BLE and UWB beacon mechanisms, the AR device 108 can avoid using computer vision-based matching with the world grid. Based on a specific location, 0DOF-based information and scene enhancement can generally be provided.
[0081] The low power persistent application 410 operates on the low power processor 220 to maintain a persistent connection with the paired mobile device of the user 104. For example, the low power persistent application 410 enables the AR device 108 to perform the following operations: send URL requests to the backend server, receive text / image responses, send voice packets, receive voice responses from the backend voice service, and receive music over BLE audio or A2DP audio from the mobile device.
[0082] Another example of a low power application includes a health tracking application using the following: low power IMU and GPS, various aspects of human motion (e.g., distance traveled, type of exercise, steps taken). By using a bone conductor combined with a microphone, the health tracking application can detect breathing patterns, which in turn can determine the health of the user 104, increase alertness. Additional sensors can measure body temperature, SpO2 levels, perspiration levels, skin conductivity.
[0083] The low power sensor module 414 communicates with the first and second groups of sensors. In one example, the first group of sensors includes a limited number of sensors from all sensors 202 of the AR device 108. In one example, the first group of sensors includes sensors mapped to the low power mode system 112. The low power sensor module 414 can activate at least one sensor in the first group of sensors to access its data.
[0084] The high power mode switching module 416 communicates with the high power mode system 110. In one example, the high power mode switching module 416 detects that the user 104 has requested to operate the AR application 302. In response, the high power mode switching module 416 signals the high power mode system 110 to take over. In another example, the AR device 108 detects a predefined trigger event (e.g., new AR data such as filters / lenses are detected based on the geolocation of the AR device, a gesture is not recognized after several attempts, an audio recorder detects a wake-up key phrase) and activates the high power mode system 110 in response to the predefined trigger event.
[0085] In one example implementation, the AR device 108 is programmed in low power mode to recognize a limited set of gestures (utilizing a much smaller NN model and using a TOF based sensor (which enables gesture recognition to work with varying positioning and depth) compared to recognizing fingers of a hand. For example, the AR device 108 may detect (in low power mode) moving a hand from right to left or moving a hand in a circle.
[0086] Figure 5 is a flow chart illustrating a method 500 according to an example implementation. The operations of the method 500 may be performed by the augmented reality system 114. In one example, the method 500 may be operated using the high power processor 208, the low power processor 220, or any combination thereof.
[0087] In block 502, the low power processor 220 operates the AR device 108 in a default low power mode using a first set of sensors. In block 504, the low power mode system 112 detects an operation on the AR device 108 that indicates a feature corresponding to / assigned to / mapped to a high power mode. For example, the low power mode system 112 detects that the user 104 has powered on the AR device 108 or has launched the AR application 302.
[0088] In block 506, the high power mode switching module 416 switches the AR device 108 to operate with the high power processor 208. In block 508, the high power processor 208 operates the high power processor 208 in the high power mode with the second set of sensors.
[0089] It should be noted that other embodiments can use different sorting, additional or less operations and different nomenclature or terminology to complete similar functions. In some embodiments, various operations can be performed in parallel with other operations in a synchronous or asynchronous manner. The operations described herein are selected to illustrate some operating principles in a simplified form.
[0090] Figure 6 6 is a flow chart illustrating a method 600 according to an example implementation. The operations of the method 600 may be performed by the augmented reality system 114. In one example, the method 600 may be operated using the high power processor 208, the low power processor 220, or any combination thereof.
[0091] At 602 , the low power processor 220 operates an application from a low power mode system running on a low power chip at the AR device 108 using a first set of sensor data.
[0092] In 604, the low power processor 220 receives an augmented reality experience request at the AR device 108. In 606a, in response to the augmented reality experience request. In 606b, the low power processor 220 activates the high power mode system running on the high power chip. In 606c, the high power processor 208 activates a second set of sensors corresponding to the high power chip. In 608, the high power processor 208 receives a second set of sensor data based on the activated second set of sensors. In 610, the high power processor 208 updates the operation and display of the augmented reality content item based on the second set of sensor data.
[0093] It should be noted that other embodiments can use different sorting, additional or less operations and different nomenclature or terminology to complete similar functions. In some embodiments, various operations can be performed in parallel with other operations in a synchronous or asynchronous manner. The operations described herein are selected to illustrate some operating principles in a simplified form.
[0094] Figure 7 A head wearable device 700 is shown according to an example implementation. Figure 7 A perspective view of a head wearable device 700 is shown according to an example implementation. In some examples, the AR device 108 may be the head wearable device 700 .
[0095] exist Figure 7, the head wearable device 700 is a pair of glasses. In some embodiments, the head wearable device 700 may be sunglasses or goggles. Some embodiments may include one or more wearable devices, such as a pendant with an integrated camera that is integrated with, communicates with, or is coupled to the head wearable device 700 or the AR device 108. Any desired wearable device may be used in conjunction with embodiments of the present disclosure, such as a watch, headphones, wristbands, earbuds, clothing (e.g., a hat or jacket with integrated electronics), a clip-on electronic device, or any other wearable device. It should be understood that, although not shown, one or more portions of the system included in the head wearable device 700 may be included in an AR device 108 that may be used in conjunction with the head wearable device 700.
[0096] exist Figure 7 In the embodiment, the head wearable device 700 is a pair of glasses including a frame 710, which includes a frame (or frame) respectively coupled to two handles (or temples) via hinges and / or end pieces. The frame of the frame 710 carries or holds a pair of lenses (e.g., lens 712 and lens 714). The frame 710 includes a first (e.g., right) side coupled to the first handle and a second (e.g., left) side coupled to the second handle. The first side is opposite to the second side of the frame 710.
[0097] The head wearable device 700 also includes a camera module (not shown), which includes a camera lens (e.g., camera lens 706, camera lens 708) and at least one image sensor. The camera lens 706 and the camera lens 708 can be a perspective camera lens or a non-perspective camera lens. The non-perspective camera lens can be, for example, a fisheye lens, a wide-angle lens, an omnidirectional lens, etc. The image sensor captures digital video through the camera lens 706 and the camera lens 708. The image can also be a still image frame or a video including multiple still image frames. The camera module can be coupled to the frame 710. As shown in FIG. Figure 7 As shown, frame 710 is coupled to camera lens 706 and camera lens 708 so that the camera lenses (e.g., camera lens 706, camera lens 708) face forward. Camera lens 706 and camera lens 708 can be perpendicular to lens 712 and lens 714. The camera module can include dual front cameras separated by the width of frame 710 or the width of the head of the user of head wearable device 700.
[0098] exist Figure 7, two handles (or temples) are coupled to microphone housing 702 and microphone housing 704, respectively. The first handle and the second handle are coupled to opposite sides of the frame 710 of the head wearable device 700. The first handle is coupled to the first microphone housing 702, and the second handle is coupled to the second microphone housing 704. The microphone housing 702 and the microphone housing 704 can be coupled to the handles between the position of the frame 710 and the position of the temple tip. When the user wears the head wearable device 700, the microphone housing 702 and the microphone housing 704 can be located on either side of the temple of the user.
[0099] like Figure 7 As shown, microphone housing 702 and microphone housing 704 enclose multiple microphones (not shown). A microphone is an air interface sound pickup device that converts sound into an electrical signal. More specifically, a microphone is a transducer that converts sound pressure into an electrical signal (e.g., an acoustic signal). The microphone may be a digital or analog micro-electromechanical system (MEMS) microphone. The acoustic signal generated by the microphone may be a pulse density modulation (PDM) signal.
[0100] System with head wearable device
[0101] Figure 8 A network environment 800 is shown in which a head wearable device 802 may be implemented according to an example implementation. Figure 8 is a high-level functional block diagram of an example head wearable device 802 that communicatively couples a mobile client device 838 and a server system 832 via various networks 840 .
[0102] The head wearable device 802 includes a camera, such as at least one of a visible light camera 812, an infrared emitter 814, and an infrared camera 816. The client device 838 may be able to connect to the head wearable device 802 using both communication 834 and communication 836. The client device 838 is connected to the server system 832 and the network 840. The network 840 may include any combination of wired connections and wireless connections.
[0103] The head wearable device 802 also includes two image displays of the optical assembly image display 804. The two image displays include one image display associated with the left lateral side of the head wearable device 802 and one image display associated with the right lateral side of the head wearable device 802. The head wearable device 802 also includes an image display driver 808, an image processor 810, low power circuitry 826, and high speed circuitry 818. The image display 804 of the optical assembly is used to present images and videos to a user of the head wearable device 802, including images that may include a graphical user interface.
[0104] The image display driver 808 commands and controls the image display in the image display 804 of the optical assembly. The image display driver 808 may deliver the image data directly to the image display in the image display 804 of the optical assembly for presentation, or may have to convert the image data into a signal or data format suitable for delivery to the image display device. For example, the image data may be video data formatted according to a compression format (e.g., H.264 (MPEG-4 Part 10), HEVC, Theora, Dirac, RealVideo RV40, VP8, VP9, etc.), and still image data may be formatted according to a compression format (e.g., Portable Network Graphics Group (PNG), Joint Photographic Experts Group (JPEG), Tagged Image File Format (TIFF), or Exchangeable Image File Format (Exif), etc.).
[0105] As described above, the head wearable device 802 includes a frame and a handle (or temple) extending from a lateral side of the frame. The head wearable device 802 also includes a user input device 806 (e.g., a touch sensor or a push button), including an input surface on the head wearable device 802. The user input device 806 (e.g., a touch sensor or a push button) is used to receive input selections from the user for manipulating the graphical user interface of the presented image.
[0106] Figure 8 The components for the head wearable device 802 shown in are located on one or more circuit boards (e.g., PCBs or flexible PCBs) in the frame or temples. Alternatively or additionally, the depicted components can be located in a block, frame, hinge, or nose bridge of the head wearable device 802. The left and right can include digital camera elements, such as complementary metal oxide semiconductor (CMOS) image sensors, charge coupled devices, camera lenses, or any other corresponding visible light or light capturing elements that can be used to capture data (including images of scenes with unknown objects).
[0107] The head wearable device 802 includes a memory 822 that stores instructions for performing a subset or all of the functions described herein. The memory 822 may also include a storage device.
[0108] like Figure 8As shown, the high-speed circuit system 818 includes a high-speed processor 820, a memory 822, and a high-speed wireless circuit system 824. In this example, the image display driver 808 is coupled to the high-speed circuit system 818 and is operated by the high-speed processor 820 to drive the left image display and the right image display in the image display 804 of the optical assembly. The high-speed processor 820 can be any processor capable of managing high-speed communications and the operation of any general computing system required by the head wearable device 802. The high-speed processor 820 includes the processing resources required to manage high-speed data transmission on the communication 836 to the wireless local area network (WLAN) using the high-speed wireless circuit system 824. In some examples, the high-speed processor 820 executes an operating system (e.g., a LINUX operating system or other such operating system of the head wearable device 802), and the operating system is stored in the memory 822 for execution. In addition to any other duties, the high-speed processor 820 that executes the software architecture of the head wearable device 802 is used to manage data transmission with the high-speed wireless circuit system 824. In some examples, high-speed wireless circuit system 824 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, other high-speed communication standards can be implemented by high-speed wireless circuit system 824.
[0109] The low-power wireless circuit system 830 and the high-speed wireless circuit system 824 of the head wearable device 802 may include a short-range transceiver (Bluetooth TM ) and a wireless wide area network, local area network, or wide area network transceiver (e.g., cellular or WiFi). Client device 838 including a transceiver for communicating via communication 834 and communication 836 can be implemented using details of the architecture of head wearable device 802, as can other elements of network 840.
[0110] The memory 822 includes any storage device capable of storing various data and applications, including camera data generated by the left and right, infrared cameras 816 and the image processor 810, and images generated by the image display driver 808 for display on the image display in the image display 804 of the optical assembly, etc. Although the memory 822 is shown as being integrated with the high-speed circuit system 818, in other examples, the memory 822 can be a separate independent element of the head wearable device 802. In some such examples, the circuit routing line can provide a connection from the image processor 810 or the low-power processor 828 to the memory 822 through a chip including the high-speed processor 820. In other examples, the high-speed processor 820 can manage the addressing of the memory 822 so that the low-power processor 828 will start the high-speed processor 820 at any time when a read or write operation involving the memory 822 is required.
[0111] like Figure 8 As shown in the figure, the low-power processor 828 or the high-speed processor 820 of the head wearable device 802 can be coupled to a camera device (a visible light camera device 812; an infrared transmitter 814 or an infrared camera device 816), an image display driver 808, a user input device 806 (for example, a touch sensor or a push button), and a memory 822.
[0112] The head wearable device 802 is connected to a host computer. For example, the head wearable device 802 is paired with a client device 838 via communication 836, or is connected to a server system 832 via a network 840. For example, the server system 832 can be one or more computing devices as part of a service or network computing system, which includes a processor, a memory, and a network communication interface to communicate with the client device 838 and the head wearable device 802 through the network 840.
[0113] The client device 838 includes a processor and a network communication interface coupled to the processor. The network communication interface allows communication via network 840, communication 834, or communication 836. The client device 838 may also store at least a portion of the instructions for generating binaural audio content in a memory of the client device 838 to implement the functions described herein.
[0114] The output components of the head wearable device 802 include visual components, such as a display (e.g., a liquid crystal display (LCD), a plasma display panel (PDP), a light emitting diode (LED) display, a projector, or a waveguide). The image display of the optical assembly is driven by an image display driver 808. The output components of the head wearable device 802 also include acoustic components (e.g., speakers), tactile components (e.g., vibration motors), other signal generators, etc. The input components (e.g., user input devices 806) of the head wearable device 802, the client device 838, and the server system 832 may include alphanumeric input components (e.g., keyboards, touch screens configured to receive alphanumeric input, optical keyboards, or other alphanumeric input components), pointing-based input components (e.g., mice, touch pads, trackballs, joysticks, motion sensors, or other pointing instruments), tactile input components (e.g., physical buttons, touch screens or other tactile input components that provide the location and force of touch or touch gestures), audio input components (e.g., microphones), etc.
[0115] The head wearable device 802 may optionally include additional peripheral device elements. Such peripheral device elements may include biometric sensors, additional sensors, or display elements integrated with the head wearable device 802. For example, the peripheral device element may include any I / O component, including an output component, a motion component, a positioning component, or any other such component described herein.
[0116] For example, the biometric component includes a component that detects expression (e.g., hand expression, facial expression, voice expression, body posture, or eye tracking), measures biological signals (e.g., blood pressure, heart rate, body temperature, sweat, or brain waves), identifies a person (e.g., voice recognition, retinal recognition, facial recognition, fingerprint recognition, or electroencephalogram-based recognition), etc. The motion component includes an acceleration sensor component (e.g., an accelerometer), a gravity sensor component, a rotation sensor component (e.g., a gyroscope), etc. The positioning component includes a position sensor component that generates position coordinates (e.g., a global positioning system (GPS) receiver component), a Wi-Fi or Bluetooth receiver that generates positioning system coordinates, etc. TM transceiver, altitude sensor components (e.g., an altimeter or barometer that detects air pressure, from which altitude can be derived), orientation sensor components (e.g., a magnetometer), etc. Such positioning system coordinates can also be received from client device 838 via communication 836 via low power wireless circuitry 830 or high speed wireless circuitry 824.
[0117] When phrases similar to "at least one of A, B, or C," "at least one of A, B, and C," "one or more A, B, or C," or "one or more of A, B, and C" are used, it is intended that the phrase be interpreted to mean that A can exist alone in an embodiment, B can exist alone in an embodiment, C can exist alone in an embodiment, or any combination of elements A, B, and C can exist in a single embodiment; for example, A and B, A and C, B and C, or A and B and C.
[0118] Changes and modifications may be made to the disclosed embodiments without departing from the scope of the present disclosure. These and other changes or modifications are intended to be included within the scope of the present disclosure as expressed in the appended claims.
[0119] Fig. 9900 is a block diagram illustrating a software architecture 904 that can be installed on any one or more of the devices described herein. The software architecture 904 is supported by hardware such as a machine 902, which includes a processor 920, a memory 926, and an I / O component 938. In this example, the software architecture 904 can be conceptualized as a stack of layers, where each layer provides specific functionality. The software architecture 904 includes layers such as an operating system 912, a library 910, a framework 908, and an application 906. In operation, the application 906 calls an API call 950 through the software stack and receives a message 952 in response to the API call 950.
[0120] The operating system 912 manages hardware resources and provides public services. The operating system 912 includes, for example, a kernel 914, services 916, and drivers 922. The kernel 914 serves as an abstraction layer between the hardware and other software layers. For example, the kernel 914 provides memory management, processor management (e.g., scheduling), component management, networking and security settings, and other functions. Services 916 can provide other public services for other software layers. Drivers 922 are responsible for controlling or interfacing with the underlying hardware. For example, drivers 922 may include display drivers, camera drivers, or Low-power drivers, Flash drivers, Serial communications drivers (e.g., Universal Serial Bus (USB) drivers), Drivers, audio drivers, power management drivers, etc.
[0121] The library 910 provides a low-level common infrastructure used by the application 906. The library 910 may include a system library 918 (e.g., a C standard library) that provides functions such as memory allocation functions, string manipulation functions, mathematical functions, etc. In addition, the library 910 may include an API library 924, such as a media library (e.g., a library for supporting the presentation and manipulation of various media formats, such as Moving Picture Experts Group-4 (MPEG4), Advanced Video Coding (H.264 or AVC), Moving Picture Experts Group Layer-3 (MP3), Advanced Audio Coding (AAC), Adaptive Multi-Rate (AMR) audio codec, Joint Photographic Experts Group (JPEG or JPG), or Portable Network Graphics (PNG)), a graphics library (e.g., an OpenGL framework for rendering in two dimensions (2D) and three dimensions (3D) in graphics content on a display), a database library (e.g., SQLite providing various relational database functions), a web library (e.g., WebKit providing web browsing functions), etc. The library 910 may also include various other libraries 928 to provide many other APIs to the application 906.
[0122] The framework 908 provides a high-level common infrastructure used by the applications 906. For example, the framework 908 provides various graphical user interface (GUI) functions, advanced resource management, and advanced location services. The framework 908 can provide a wide range of other APIs that can be used by the applications 906, some of which can be specific to a specific operating system or platform.
[0123] In an example embodiment, applications 906 may include a home application 936, a contacts application 930, a browser application 932, a book reader application 934, a location application 942, a media application 944, a messaging application 946, a game application 948, and a variety of other applications such as third-party applications 940. Application 906 is a program that executes the functions defined in the program. Various programming languages can be used to create one or more of the applications 906 constructed in various ways, such as an object-oriented programming language (e.g., Objective-C, Java, or C++) or a procedural programming language (e.g., C language or assembly language). In a specific example, third-party application 940 (e.g., a third-party application created by an entity other than the vendor of a particular platform using ANDROID TM or IOS TM Software Development Kit (SDK) can be used to develop applications on platforms such as IOS TM ANDROID TM , Mobile software running on the mobile operating system of the phone or another mobile operating system. In this example, third-party application 940 can call API call 950 provided by operating system 912 to facilitate the functions described in this article.
[0124] Fig.101000 within which instructions 1008 (e.g., software, programs, applications, applet, app, or other executable code) may be executed for causing the machine 1000 to perform any one or more of the methods discussed herein. For example, the instructions 1008 may cause the machine 1000 to perform any one or more of the methods described herein. The instructions 1008 transform a general purpose, unprogrammed machine 1000 into a specific machine 1000 that is programmed to perform the functions described and illustrated in the manner described. The machine 1000 may operate as a standalone device or may be coupled (e.g., networked) to other machines. In a networked deployment, the machine 1000 may operate as a server machine or a client machine in a server-client network environment or as a peer machine in a peer-to-peer (or distributed) network environment. The machine 1000 may include, but is not limited to, a server computer, a client computer, a personal computer (PC), a tablet computer, a laptop computer, a netbook, a set-top box (STB), a PDA, an entertainment media system, a cellular phone, a smart phone, a mobile device, a wearable device (e.g., a smart watch), a smart home device (e.g., a smart appliance), other smart devices, a web device, a network router, a network switch, a network bridge, or any machine capable of executing instructions 1008 that specify actions to be taken by the machine 1000, either sequentially or otherwise. In addition, while only a single machine 1000 is shown, the term "machine" should also be taken to include a collection of machines that individually or jointly execute instructions 1008 to perform any one or more of the methodologies discussed herein.
[0125] The machine 1000 may include a processor 1002, a memory 1004, and an I / O component 1042 configured to communicate with each other via a bus 1044. In an example embodiment, the processor 1002 (e.g., a central processing unit (CPU), a reduced instruction set computing (RISC) processor, a complex instruction set computing (CISC) processor, a graphics processing unit (GPU), a digital signal processor (DSP), an ASIC, a radio frequency integrated circuit (RFIC), other processors, or any suitable combination thereof) may include, for example, a processor 1006 and a processor 1010 that execute instructions 1008. The term "processor" is intended to include multi-core processors, which may include two or more independent processors (sometimes referred to as "cores") that can execute instructions simultaneously. Although Fig.10 Multiple processors 1002 are shown, but the machine 1000 may include a single processor with a single core, a single processor with multiple cores (e.g., a multi-core processor), multiple processors with a single core, multiple processors with multiple cores, or any combination thereof.
[0126] The memory 1004 includes a main memory 1012, a static memory 1014, and a storage unit 1016, which are all accessible by the processor 1002 via a bus 1044. The main memory 1004, the static memory 1014, and the storage unit 1016 store instructions 1008 that embody any one or more of the methodologies or functions described herein. The instructions 1008 may also reside, completely or partially, within the main memory 1012, within the static memory 1014, within the machine-readable medium 1018 within the storage unit 1016, within at least one of the processors 1002 (e.g., within a cache memory of a processor), or within any suitable combination thereof during execution thereof by the machine 1000.
[0127] I / O components 1042 may include a variety of components that receive input, provide output, generate output, send information, exchange information, capture measurements, etc. The specific I / O components 1042 included in a particular machine will depend on the type of machine. For example, a portable machine such as a mobile phone may include a touch input device or other such input mechanism, while a headless server machine will be less likely to include such a touch input device. It should be understood that I / O components 1042 may be included in Fig.10 1042. In various example embodiments, the I / O components 1042 may include output components 1028 and input components 1030. The output components 1028 may include visual components (e.g., displays such as plasma display panels (PDPs), light emitting diode (LED) displays, liquid crystal displays (LCDs), projectors, or cathode ray tubes (CRTs)), acoustic components (e.g., speakers), tactile components (e.g., vibration motors, resistance mechanisms), other signal generators, etc. The input components 1030 may include alphanumeric input components (e.g., keyboards, touch screens configured to receive alphanumeric input, optical keyboards, or other alphanumeric input components), pointing-based input components (e.g., mice, touch pads, trackballs, joysticks, motion sensors, or other pointing instruments), tactile input components (e.g., physical buttons, touch screens or other tactile input components that provide location and / or force of touch or touch gestures), audio input components (e.g., microphones), etc.
[0128] In other example embodiments, the I / O component 1042 may include a biometric component 1032, a motion component 1034, an environment component 1036, or a positioning component 1038, as well as various other components. For example, the biometric component 1032 includes components for detecting expressions (e.g., hand expressions, facial expressions, voice expressions, body postures, or eye tracking), measuring biosignals (e.g., blood pressure, heart rate, body temperature, sweating, or brain waves), identifying people (e.g., voice recognition, retinal recognition, facial recognition, fingerprint recognition, or EEG-based recognition), etc. The motion component 1034 includes an acceleration sensor component (e.g., an accelerometer), a gravity sensor component, a rotation sensor component (e.g., a gyroscope), etc. The environment component 1036 includes, for example, an illumination sensor component (e.g., a photometer), a temperature sensor component (e.g., one or more thermometers that detect ambient temperature), a humidity sensor component, a pressure sensor component (e.g., a barometer), an auditory sensor component (e.g., one or more microphones that detect background noise), a proximity sensor component (e.g., an infrared sensor that detects nearby objects), a gas sensor (e.g., a gas detection sensor that detects the concentration of dangerous gases to ensure safety or measures pollutants in the atmosphere), or other components that can provide indications, measurements, or signals corresponding to the surrounding physical environment. The positioning component 1038 includes a position sensor component (e.g., a GPS receiver component), an altitude sensor component (e.g., an altimeter or barometer that detects air pressure, from which the altitude can be obtained), an orientation sensor component (e.g., a magnetometer), etc.
[0129] A variety of technologies may be used to achieve communication. I / O components 1042 also include communication components 1040 that are operable to couple machine 1000 to network 1020 or device 1022 via coupling 1024 and coupling 1026, respectively. For example, communication components 1040 may include a network interface component or another suitable device to interface with network 1020. In other examples, communication components 1040 may include wired communication components, wireless communication components, cellular communication components, near field communication (NFC) components, Components (e.g. Low power consumption), Components and other communication components for providing communication via other modalities. Device 1022 can be another machine or any peripheral device among various peripheral devices (e.g., a peripheral device coupled via USB).
[0130] In addition, the communication component 1040 can detect the identifier or include a component operable to detect the identifier. For example, the communication component 1040 may include a radio frequency identification (RFID) tag reader component, an NFC smart tag detection component, an optical reader component (e.g., an optical sensor for detecting one-dimensional bar codes such as universal product code (UPC) bar codes, multi-dimensional bar codes such as quick response (QR) codes, Aztec codes, data matrix, data symbol (Dataglyph), MaxiCode, PDF417, Ultra Code, UCC RSS-2D bar codes and other optical codes) or an acoustic detection component (e.g., a microphone for identifying an audio signal of a tag). In addition, various information can be obtained via the communication component 1040, such as a location via Internet Protocol (IP) geolocation, a location via Internet Protocol (IP), ... The location of signal triangulation, the location of an NFC beacon signal via detection that can indicate a specific location, and the like.
[0131] Various memories (e.g., memory 1004, main memory 1012, static memory 1014, and / or memory of processor 1002) and / or storage unit 1016 may store one or more sets of instructions and data structures (e.g., software) that embody or are used by any one or more of the methods or functions described herein. These instructions (e.g., instructions 1008) when executed by processor 1002 cause various operations to implement the disclosed embodiments.
[0132] Instructions 1008 may be sent or received over network 1020 using a transmission medium via a network interface device (e.g., a network interface component included in communications component 1040) and using any of a number of well-known transmission protocols (e.g., Hypertext Transfer Protocol (HTTP)). Similarly, instructions 1008 may be sent or received to device 1022 via coupling 1026 (e.g., a peer-to-peer coupling) using a transmission medium.
[0133] As used herein, the terms "machine storage medium", "device storage medium" and "computer storage medium" mean the same thing and may be used interchangeably in this disclosure. These terms refer to a single or multiple storage devices and / or media (e.g., centralized or distributed databases, and / or associated caches and servers) that store executable instructions and / or data. Therefore, these terms should be considered to include, but are not limited to, solid-state memory and optical and magnetic media, including memory internal or external to the processor. Specific examples of machine storage media, computer storage media and / or device storage media include: non-volatile memory, including, for example, semiconductor memory devices such as erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), field programmable gate arrays (FPGAs), and flash memory devices; magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The terms "machine storage medium", "computer storage medium" and "device storage medium" explicitly exclude carrier waves, modulated data signals and other such media, at least some of which are covered by the term "signal media" discussed below.
[0134] The terms "transmission medium" and "signal medium" mean the same thing and may be used interchangeably in this disclosure. The terms "transmission medium" and "signal medium" should be understood to include any intangible medium that is capable of storing, encoding, or carrying instructions 1416 for execution by the machine 1400, and include digital or analog communication signals or other intangible media that facilitate the communication of such software. Thus, the terms "transmission medium" and "signal medium" should be taken to include any form of modulated data signals, carrier waves, etc. The term "modulated data signal" means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal.
[0135] The terms "machine-readable medium," "computer-readable medium," and "device-readable medium" mean the same thing and may be used interchangeably in this disclosure. These terms are defined to include both machine storage media and transmission media. Thus, these terms include both storage devices / medium and carrier / modulated data signals.
[0136] Although the embodiments have been described with reference to specific example embodiments, it will be apparent that various modifications and changes may be made to these embodiments without departing from the broader scope of the present disclosure. Therefore, the description and the drawings should be considered in an illustrative sense, rather than a restrictive sense. The drawings forming a part of the present invention show, by way of illustration and not limitation, specific embodiments in which the subject matter may be practiced. The embodiments shown are described in sufficient detail to enable those skilled in the art to practice the teachings disclosed herein. Other embodiments may be utilized and derived therefrom so that structural and logical substitutions and changes may be made without departing from the scope of the present disclosure. Therefore, this specific embodiment should not be understood as a restrictive sense, and the scope of the various embodiments is limited only by the appended claims and the full scope of the equivalents given by these claims.
[0137] An abstract of the disclosure is provided to enable the reader to quickly determine the nature of the technical disclosure. The abstract is submitted with the understanding that the abstract will not be used to interpret or limit the scope or meaning of the claims. In addition, in the aforementioned detailed description, it can be seen that various features are combined together in a single embodiment for the purpose of simplifying the disclosure. This method of the disclosure should not be interpreted as reflecting the intention that the claimed embodiment requires more features than the features explicitly recited in each claim. On the contrary, as reflected in the attached claims, the subject matter of the present invention lies in less than all the features of a single disclosed embodiment. Therefore, the claims are incorporated into the detailed description herein, wherein each claim exists independently as a separate embodiment.
[0138] Example
[0139] Example 1 is a method, comprising: configuring a low power mode to run on a low power processor of an AR device using a first set of sensor data from a first set of sensors of the AR device, and configuring a high power mode to run on a high power processor of the AR device using a second set of sensor data from a second set of sensors of the AR device; operating a low power application in the low power mode based on the first set of sensor data using the low power processor; detecting a request to operate a high power application at the AR device; in response to detecting the request, activating a second set of sensors of the AR device corresponding to the high power mode; accessing the second set of sensor data from the second set of sensors using the high power processor; and operating the high power application in the high power mode based on the second set of sensor data using the high power processor.
[0140] Example 2 includes the method of Example 1, wherein the low-power application includes: a low-power head-up display (HUD) application configured to display virtual content items in a display of the AR device based on a first set of sensor data, the first set of sensor data being independent of a posture of the AR device, wherein the high-power application includes an AR application configured to display the virtual content items in the display of the AR device based on a second set of sensor data, the second set of sensor data indicating a posture of the AR device based on tracking data from a six-degree-of-freedom tracking system of the AR device.
[0141] Example 3 includes the method of Example 2, wherein the low-power application includes a low-power navigation application, and the low-power navigation application is configured to: use a low-power processor to identify a tracking device that generates a beacon signal based on a magnetometer sensor at the AR device, and display a visual indicator based on the beacon signal in a display of the AR device.
[0142] Example 4 includes the method of Example 1, wherein the low-power application includes a low-power virtual object application, the low-power virtual object application is configured to: receive notification of a new virtual content item based on a geographic location of a mobile device connected to the AR device; retrieve the new virtual content item from the AR device when the AR device is operating in a low-power mode; cache the new virtual content item using a low-power processor when the AR device is operating in the low-power mode; and in response to caching the new virtual content item, switch the AR device to a high-power mode, and wherein the high-power application includes a high-power virtual object application, the high-power virtual object application is configured to: detect the new virtual content item based on the geographic location of the AR device using a second set of sensor data; access the new virtual content item from a cache of the low-power processor or from a server using the high-power processor; and store the new virtual content item in a memory of the AR device.
[0143] Example 5 includes the method of Example 1, wherein the low-power application includes a low-power gesture-based wake-up application using camera data from a low-resolution camera of the AR device, wherein the low-power gesture-based wake-up application is configured to detect gestures of a user of the AR device, wherein the low-power processor is configured to process the camera data and operate a neural network to recognize a first set of gestures, and wherein the high-power application includes a high-power gesture-based application, the high-power gesture-based application is configured to use the high-power processor to recognize a second set of gestures using camera data from a higher-resolution camera of the AR device, the second set of gestures being larger than the first set of gestures.
[0144] Example 6 includes the method of Example 1, wherein the low-power application includes a low-power audio application, the low-power audio application is configured to: generate audio based on audio data from a mobile device paired with the AR device; record audio data from a microphone of the AR device; detect local voice commands based on the audio data; offload remote service voice commands based on the audio data to the mobile device, and wherein the high-power application includes a high-power audio application, the high-power audio application is configured to operate a local voice recognition engine using a high-power processor.
[0145] Example 7 includes the method of Example 1, wherein the low-power application includes a low-power persistent application, the low-power persistent application is configured to: maintain a wireless connection with a mobile device paired with the AR device and provide data for processing using the mobile device, and wherein the high-power application includes a high-power non-persistent application, the high-power non-persistent application is configured to: disconnect the AR device from the mobile device and process data locally on the AR device.
[0146] Example 8 includes the method of Example 1, further comprising: detecting, using the low-power processor, a predefined trigger event corresponding to the high-power application; and generating, using the low-power processor, a request to the high-power processor to operate the high-power application.
[0147] Example 9 includes the method of Example 1, wherein the low-power processor includes an MCU processor and the high-power processor includes a SoC processor.
[0148] Example 10 includes the method of Example 1, wherein the AR device is a head wearable device.
[0149] Example 11 is a computing device comprising: a processor; and a memory storing instructions, which, when executed by the processor, configure the device to: configure a low power mode to run on the low power processor of the AR device using a first set of sensor data from a first set of sensors of the AR device, and configure a high power mode to run on the high power processor of the AR device using a second set of sensor data from a second set of sensors of the AR device; use the low power processor to operate a low power application in the low power mode based on the first set of sensor data; detect a request to operate the high power application at the AR device; in response to detecting the request, activate a second set of sensors of the AR device corresponding to the high power mode; use the high power processor to access the second set of sensor data from the second set of sensors; and use the high power processor to operate the high power application in the high power mode based on the second set of sensor data.
[0150] Example 12 includes the computing device of Example 11, wherein the low-power application includes: a low-power heads-up display (HUD) application configured to display virtual content items in a display of the AR device based on a first set of sensor data, the first set of sensor data being independent of a posture of the AR device, wherein the high-power application includes an AR application configured to display the virtual content items in the display of the AR device based on a second set of sensor data, the second set of sensor data indicating a posture of the AR device based on tracking data from a six-degree-of-freedom tracking system of the AR device.
[0151] Example 13 includes the computing device of Example 12, wherein the low-power application includes a low-power navigation application, and the low-power navigation application is configured to: use a low-power processor to identify a tracking device that generates a beacon signal based on a magnetometer sensor at the AR device, and display a visual indicator in a display of the AR device based on the beacon signal.
[0152] Example 14 includes the computing device of Example 11, wherein the low-power application includes a low-power virtual object application, the low-power virtual object application is configured to: receive notification of a new virtual content item based on a geographic location of a mobile device connected to the AR device; retrieve the new virtual content item from the AR device when the AR device is operating in a low-power mode; cache the new virtual content item using a low-power processor when the AR device is operating in a low-power mode; and in response to caching the new virtual content item, switch the AR device to a high-power mode, and wherein the high-power application includes a high-power virtual object application, the high-power virtual object application is configured to: detect the new virtual content item based on the geographic location of the AR device using a second set of sensor data; access the new virtual content item from a cache of the low-power processor or from a server using the high-power processor; and store the new virtual content item in a memory of the AR device.
[0153] Example 15 includes the computing device of Example 11, wherein the low-power application includes a low-power gesture-based wake-up application using camera data from a low-resolution camera of the AR device, wherein the low-power gesture-based wake-up application is configured to detect gestures of a user of the AR device, wherein the low-power processor is configured to process the camera data and operate a neural network to recognize a first set of gestures, and wherein the high-power application includes a high-power gesture-based application, the high-power gesture-based application is configured to use the high-power processor to recognize a second set of gestures using camera data from a higher-resolution camera of the AR device, the second set of gestures being larger than the first set of gestures.
[0154] Example 16 includes the computing device of Example 11, wherein the low-power application includes a low-power audio application, the low-power audio application is configured to: generate audio based on audio data from a mobile device paired with the AR device; record audio data from a microphone of the AR device; detect local voice commands based on the audio data; offload remote service voice commands based on the audio data to the mobile device, and wherein the high-power application includes a high-power audio application, the high-power audio application is configured to operate a local speech recognition engine using a high-power processor.
[0155] Example 17 includes the computing device of Example 11, wherein the low-power application includes a low-power persistent application, the low-power persistent application is configured to: maintain a wireless connection with a mobile device paired with the AR device and provide data for processing using the mobile device, and wherein the high-power application includes a high-power non-persistent application, the high-power non-persistent application is configured to: disconnect the AR device from the mobile device and process data locally on the AR device.
[0156] Example 18 includes the computing device of Example 11, wherein the instructions further configure the device to: detect, with the low-power processor, a predefined trigger event corresponding to the high-power application; and generate, with the low-power processor, a request to the high-power processor to operate the high-power application.
[0157] Example 19 includes the computing device of Example 11, wherein the low-power processor comprises an MCU processor and the high-power processor comprises a SoC processor.
[0158] Example 20 is a non-transitory computer-readable storage medium comprising instructions that, when executed by a computer, cause the computer to: configure a low power mode to run on a low power processor of the AR device using a first set of sensor data from a first set of sensors of the AR device, and configure a high power mode to run on a high power processor of the AR device using a second set of sensor data from a second set of sensors of the AR device; use the low power processor to operate a low power application in the low power mode based on the first set of sensor data; detect a request to operate a high power application at the AR device; in response to detecting the request, activate a second set of sensors of the AR device corresponding to the high power mode; use the high power processor to access the second set of sensor data from the second set of sensors; and use the high power processor to operate the high power application in the high power mode based on the second set of sensor data.
[0159] Glossary
[0160] "Carrier signal" refers to any intangible medium that can store, encode or carry instructions for execution by a machine and includes digital or analog communications signals or other intangible media to facilitate communication of such instructions. Instructions may be sent or received over a network using a transmission medium via a network interface device.
[0161] "Client Device" refers to any machine that interfaces with a communications network to obtain resources from one or more server systems or other client devices. A client device may be, but is not limited to, a mobile phone, a desktop computer, a laptop computer, a portable digital assistant (PDA), a smart phone, a tablet computer, an ultrabook, a netbook, a laptop computer, a multiprocessor system, a microprocessor-based or programmable consumer electronics product, a game console, a set-top box, or any other communications device that a user may use to access a network.
[0162] "Communications network" means one or more parts of a network, which may be an ad hoc network, an intranet, an extranet, a virtual private network (VPN), a local area network (LAN), a wireless LAN (WLAN), a wide area network (WAN), a wireless WAN (WWAN), a metropolitan area network (MAN), the Internet, a part of the Internet, a part of the public switched telephone network (PSTN), a plain old telephone service (POTS) network, a cellular telephone network, a wireless network, A network, other type of network, or a combination of two or more such networks. For example, the network or a portion of the network may include a wireless network or a cellular network, and the coupling may be a code division multiple access (CDMA) connection, a global system for mobile communications (GSM) connection, or other type of cellular or wireless coupling. In this example, the coupling may implement any of various types of data transmission technologies, such as single carrier radio transmission technology (1xRTT), evolution data optimized (EVDO) technology, general packet radio service (GPRS) technology, enhanced data rates for GSM evolution (EDGE) technology, the third generation partnership project (3GPP) including 3G, fourth generation wireless (4G) network, universal mobile telecommunications system (UMTS), high speed packet access (HSPA), world wide interoperability for microwave access (WiMAX), long term evolution (LTE) standards, other data transmission technologies defined by various standard setting organizations, other long distance protocols, or other data transmission technologies.
[0163] "Component" refers to a device, physical entity or logic with boundaries defined by function or subroutine calls, branch points, APIs or other technologies provided for partitioning or modularizing specific processing or control functions. Components can be combined with other components via their interfaces to perform machine processing. Components can be encapsulated functional hardware units designed for use with other components, and are usually part of a program that performs specific functions of related functions. Components can constitute software components (e.g., codes embodied on machine-readable media) or hardware components. "Hardware components" are tangible units that can perform certain operations and can be configured or arranged in certain physical ways. In various examples, one or more computer systems (e.g., independent computer systems, client computer systems, or server computer systems) or one or more hardware components (e.g., processors or processor groups) of a computer system can be configured by software (e.g., applications or application parts) to operate to perform certain operations as described herein. Hardware components can also be implemented mechanically, electronically, or in any suitable combination thereof. For example, a hardware component may include a dedicated circuit system or logic that is permanently configured to perform certain operations. The hardware component may be a dedicated processor, such as a field programmable gate array (FPGA) or an application specific integrated circuit (ASIC). The hardware component may also include a programmable logic or circuit system that is temporarily configured to perform certain operations by software. For example, the hardware component may include software executed by a general-purpose processor or other programmable processor. Once configured by such software, the hardware component becomes a specific machine (or a specific component of a machine) that is specially customized to perform the configured function, and is no longer a general-purpose processor. It will be understood that the decision to mechanically implement the hardware component in a dedicated and permanently configured circuit system or in a temporarily configured (e.g., configured by software) circuit system can be driven by cost and time considerations. Accordingly, the phrase "hardware component" (or "hardware-implemented component") should be understood to include a tangible entity, that is, an entity that is physically constructed, permanently configured (e.g., hardwired) or temporarily configured (e.g., programmed) to operate in some way or perform certain operations described herein. Considering an example in which a hardware component is temporarily configured (e.g., programmed), it is not necessary to configure or instantiate each of the hardware components at any one time. For example, in the case where a hardware component includes a general-purpose processor that is configured by software to become a special-purpose processor, the general-purpose processor can be respectively configured as different special-purpose processors (e.g., including different hardware components) at different times. Software accordingly configures one or more specific processors to, for example, constitute a specific hardware component at one time, and to constitute different hardware components at different times. Hardware components can provide information to other hardware components and receive information from other hardware components. Accordingly, the described hardware components can be considered to be coupled in communication.In the case of multiple hardware components being present at the same time, communication can be achieved by signal transmission (e.g., by appropriate circuits and buses) between or among two or more hardware components in the hardware components. In examples where multiple hardware components are configured or instantiated at different times, communication between such hardware components can be achieved, for example, by storing information in a memory structure accessible to multiple hardware components and retrieving information in the memory structure. For example, a hardware component can perform an operation, and the output of the operation is stored in a memory device coupled to it in communication. Then, another hardware component can access the memory device at a subsequent time to retrieve the stored output and process it. The hardware component can also initiate communication with an input device or an output device, and can operate on resources (e.g., a collection of information). The various operations of the example methods described herein can be performed at least in part by one or more processors that are temporarily configured (e.g., by software) or permanently configured to perform related operations. Whether it is temporarily configured or permanently configured, such a processor can constitute a processor-implemented component that operates to perform one or more operations or functions described herein. As used herein, "processor-implemented components" refer to hardware components implemented using one or more processors. Similarly, the method described herein can be implemented at least in part by a processor, wherein one or more specific processors are examples of hardware. For example, at least some of the operations in the operation of the method can be performed by one or more processors or the parts implemented by the processor. In addition, one or more processors can also operate to support the execution of related operations in a "cloud computing" environment or as a "software as a service" (SaaS) operation. For example, at least some of the operations in the operation can be performed by a group of computers (as an example of a machine including a processor), wherein these operations can be accessed via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., API). The execution of some operations in the operation can be distributed between processors, not only residing in a single machine, but deployed across multiple machines. In some examples, a processor or a part implemented by a processor can be located in a single geographical location (e.g., in a home environment, an office environment, or a server cluster). In other examples, a processor or a part implemented by a processor can be distributed across multiple geographical locations.
[0164] "Computer-readable storage media" refers to both machine storage media and transmission media. Therefore, these terms include both storage devices / media and carrier / modulated data signals. The terms "machine-readable medium", "computer-readable medium" and "device-readable medium" mean the same thing and can be used interchangeably in this disclosure.
[0165] "Transient message" refers to a message that is accessible for a time-limited duration. Transient messages can be text, images, videos, etc. The access time for transient messages can be set by the message sender. Alternatively, the access time can be a default setting or a setting specified by the recipient. Regardless of the setting technique, the message is transient.
[0166] "Machine storage media" refers to a single or multiple storage devices and media (e.g., centralized or distributed databases, and associated caches and servers) that store executable instructions, routines, and data. Thus, the term should be considered to include, but is not limited to, solid-state memory and optical and magnetic media, including memory internal or external to the processor. Specific examples of machine storage media, computer storage media, and device storage media include: non-volatile memory, including, for example, semiconductor memory devices, such as erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), FPGA, and flash memory devices; magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The terms "machine storage media", "device storage media", and "computer storage media" mean the same thing and may be used interchangeably in this disclosure. The terms "machine storage media", "computer storage media", and "device storage media" explicitly exclude carrier waves, modulated data signals, and other such media (at least some of which are covered by the term "signal media").
[0167] “Non-transitory computer-readable storage medium” refers to tangible media capable of storing, encoding, or carrying instructions to be executed by a machine.
[0168] "Signal media" refers to any intangible medium that is capable of storing, encoding or carrying instructions executed by a machine and includes digital or analog communication signals or other intangible media that facilitate the communication of software or data. The term "signal medium" should be deemed to include any form of modulated data signals, carrier waves, etc. The term "modulated data signal" means a signal that has one or more of its various characteristics set or changed in such a manner as to encode information in the signal. The terms "transmission medium" and "signal medium" mean the same thing and may be used interchangeably in this disclosure.
Claims
1. A method comprising: configuring a low power mode to operate on a low power processor of the AR device using a first set of sensor data from a first set of sensors of the AR device, and configuring a high power mode to operate on a high power processor of the AR device using a second set of sensor data from a second set of sensors of the AR device; operating a low power application in the low power mode based on the first set of sensor data using the low power processor; detecting a request to operate a high-power application at the AR device; In response to detecting the request, activating the second set of sensors of the AR device corresponding to the high power mode; accessing the second set of sensor data from the second set of sensors using the high-power processor; as well as A high power application is operated in the high power mode based on the second set of sensor data using the high power processor.
2. The method according to claim 1, wherein: The low-power application comprises: a low-power heads-up display (HUD) application configured to display a virtual content item in a display of the AR device based on the first set of sensor data, the first set of sensor data being independent of a pose of the AR device, Wherein, the high-power application includes an AR application, which is configured to display a virtual content item in a display of the AR device based on the second set of sensor data, and the second set of sensor data indicates a posture of the AR device based on tracking data from a six-degree-of-freedom tracking system of the AR device.
3. The method according to claim 2, wherein: The low-power application includes a low-power navigation application, which is configured to: use the low-power processor to identify a tracking device that generates a beacon signal based on a magnetometer sensor at the AR device, and display a visual indicator based on the beacon signal in a display of the AR device.
4. The method according to claim 1, wherein: The low-power application includes a low-power virtual object application, the low-power virtual object application being configured to: receive a notification of a new virtual content item based on a geographic location of a mobile device connected to the AR device; retrieve the new virtual content item from the AR device when the AR device is operating in the low-power mode; and cache the new virtual content item using the low-power processor when the AR device is operating in the low-power mode; and in response to caching the new virtual content item, switching the AR device to the high power mode, and Wherein, the high-power application comprises a high-power virtual object application, and the high-power virtual object application is configured to: detect a new virtual content item based on a geographic location of the AR device using the second set of sensor data; The new virtual content item is accessed from a cache of the low-power processor or from a server using the high-power processor; and the new virtual content item is stored in a memory of the AR device.
5. The method according to claim 1, wherein: The low-power application comprises a low-power gesture-based wake-up application using camera data from a low-resolution camera of the AR device, wherein the low-power gesture-based wake-up application is configured to detect gestures of a user of the AR device, wherein the low-power processor is configured to process the camera data and operate a neural network to recognize a first set of gestures, and Wherein the high-power application comprises a high-power gesture-based application, and the high-power gesture-based application is configured to use the high-power processor to use camera data from a higher resolution camera of the AR device to recognize a second set of gestures, and the second set of gestures is larger than the first set of gestures.
6. The method according to claim 1, wherein: The low-power application includes a low-power audio application configured to: generate audio based on audio data from a mobile device paired with the AR device; record audio data from a microphone of the AR device; detecting a local voice command based on the audio data; offloading a remote service voice command based on the audio data to the mobile device, and The high-power application includes a high-power audio application, and the high-power audio application is configured to operate a local speech recognition engine using the high-power processor.
7. The method according to claim 1, wherein: The low-power application includes a low-power persistent application configured to: maintain a wireless connection with a mobile device paired with the AR device and provide data for processing using the mobile device, and The high-power application includes a high-power non-persistent application, and the high-power non-persistent application is configured to: disconnect the AR device from the mobile device and process data locally on the AR device.
8. The method according to claim 1, wherein: Also includes: detecting, using the low-power processor, a predefined triggering event corresponding to a high-power application; as well as A request is generated, using the low power processor, to the high power processor to operate the high power application.
9. The method according to claim 1, wherein: The low-power processor comprises an MCU processor, and the high-power processor comprises a SoC processor.
10. The method according to claim 1, wherein: The AR device is a head wearable device.
11. A computing device comprising: processor; and a memory storing instructions that, when executed by the processor, configure the apparatus to: configuring a low power mode to operate on a low power processor of the AR device using a first set of sensor data from a first set of sensors of the AR device, and configuring a high power mode to operate on a high power processor of the AR device using a second set of sensor data from a second set of sensors of the AR device; operating a low power application in the low power mode based on the first set of sensor data using the low power processor; detecting a request to operate a high-power application at the AR device; In response to detecting the request, activating the second set of sensors of the AR device corresponding to the high power mode; accessing the second set of sensor data from the second set of sensors using the high-power processor; as well as A high power application is operated in the high power mode based on the second set of sensor data using the high power processor.
12. The computing device according to claim 11, wherein: The low-power application comprises: a low-power heads-up display (HUD) application configured to display a virtual content item in a display of the AR device based on the first set of sensor data, the first set of sensor data being independent of a pose of the AR device, Wherein, the high-power application includes an AR application, which is configured to display a virtual content item in a display of the AR device based on the second set of sensor data, and the second set of sensor data indicates a posture of the AR device based on tracking data from a six-degree-of-freedom tracking system of the AR device.
13. The computing device of claim 12, wherein: The low-power application includes a low-power navigation application, which is configured to: use the low-power processor to identify a tracking device that generates a beacon signal based on a magnetometer sensor at the AR device, and display a visual indicator based on the beacon signal in a display of the AR device.
14. The computing device of claim 11, wherein: The low-power application includes a low-power virtual object application, the low-power virtual object application being configured to: receive a notification of a new virtual content item based on a geographic location of a mobile device connected to the AR device; retrieve the new virtual content item from the AR device when the AR device is operating in the low-power mode; and cache the new virtual content item using the low-power processor when the AR device is operating in the low-power mode; and in response to caching the new virtual content item, switching the AR device to the high power mode, and Wherein, the high-power application comprises a high-power virtual object application, and the high-power virtual object application is configured to: detect a new virtual content item based on a geographic location of the AR device using the second set of sensor data; The new virtual content item is accessed from a cache of the low-power processor or from a server using the high-power processor; and the new virtual content item is stored in a memory of the AR device.
15. The computing device of claim 11, wherein: The low-power application comprises a low-power gesture-based wake-up application using camera data from a low-resolution camera of the AR device, wherein the low-power gesture-based wake-up application is configured to detect gestures of a user of the AR device, wherein the low-power processor is configured to process the camera data and operate a neural network to recognize a first set of gestures, and Wherein the high-power application comprises a high-power gesture-based application, and the high-power gesture-based application is configured to use the high-power processor to use camera data from a higher resolution camera of the AR device to recognize a second set of gestures, and the second set of gestures is larger than the first set of gestures.
16. The computing device of claim 11, wherein: The low-power application includes a low-power audio application configured to: generate audio based on audio data from a mobile device paired with the AR device; record audio data from a microphone of the AR device; detecting a local voice command based on the audio data; offloading a remote service voice command based on the audio data to the mobile device, and The high-power application includes a high-power audio application, and the high-power audio application is configured to operate a local speech recognition engine using the high-power processor.
17. The computing device of claim 11, wherein: The low-power application includes a low-power persistent application configured to: maintain a wireless connection with a mobile device paired with the AR device and provide data for processing using the mobile device, and The high-power application includes a high-power non-persistent application, and the high-power non-persistent application is configured to: disconnect the AR device from the mobile device and process data locally on the AR device.
18. The computing device of claim 11, wherein: The instructions further configure the apparatus to: detecting, using the low-power processor, a predefined triggering event corresponding to a high-power application; and A request is generated, using the low power processor, to the high power processor to operate the high power application.
19. The computing device of claim 11, wherein: The low-power processor comprises an MCU processor, and the high-power processor comprises a SoC processor.
20. A non-transitory computer-readable storage medium comprising instructions that, when executed by a computer, cause the computer to: configuring a low power mode to operate on a low power processor of the AR device using a first set of sensor data from a first set of sensors of the AR device, and configuring a high power mode to operate on a high power processor of the AR device using a second set of sensor data from a second set of sensors of the AR device; operating a low power application in the low power mode based on the first set of sensor data using the low power processor; detecting a request to operate a high-power application at the AR device; In response to detecting the request, activating the second set of sensors of the AR device corresponding to the high power mode; accessing the second set of sensor data from the second set of sensors using the high-power processor; as well as A high power application is operated in the high power mode based on the second set of sensor data using the high power processor.
Citation Information
Cited By
Augmented reality experience power usage prediction
US12762782B2