Patent Description:
A head-worn device may be implemented with a transparent or semi-transparent display through which a user of the wearable device can view the surrounding environment. Such devices enable a user to see through the transparent or semi-transparent display to view the surrounding environment, and to also see objects (e.g., virtual objects such as 3D renderings, images, video, text, and so forth) that are generated for display to appear as a part of, and/or overlaid upon, the surrounding environment. This is typically referred to as "augmented reality.

A head-worn device may additionally completely occlude a user's visual field and display a virtual environment through which a user may move or be moved. This is typically referred to as "virtual reality. " As used herein, the term "augmented reality" or "AR" refers to both augmented reality and virtual reality as traditionally understood, unless the context indicates otherwise.

<CIT> discloses a control system that supports visual enhancement and mitigation of challenges and with basic image modification algorithms. The control system can be used with any known hardware from contact lenses to IOLs to AR hardware glasses. The system moves, modifies, or reshapes image sets and components to take advantage of a user's remaining useful retinal area.

<CIT> discloses method of augmenting sight in an individual, comprising obtaining an image of a scene using a camera carried by the individual; transmitting the image to a processor carried by the individual; applying an image modification to the image by the processor using either analog or digital imaging techniques, and displaying the modified image on a display device worn by the individual. The display device may comprise eyeglass frames generally available, in which the transparent lenses have been replaced with one or two display screens.

<CIT> discloses digital therapeutic corrective spectacles that provide visual field correction or enhancement. The spectacles include one or more digital monitors that are used to recreate an entire visual field as a digitized corrected image, or include custom-reality glasses that can be used to overlay a visual scene with generated image to correct or enhance the visual field of the subject.

<NPL> discloses an optical head-mounted display (OHMD) being a wearable device that has the capability of reflecting projected images as well as allowing the user to see through it. Two main families of OHMD are disclosed: "Curved Mirror" (or Curved Combiner) based and" Waveguide" or "Light-guide" based.

<CIT> discloses an optical device for a visually-impaired individual comprising a spaced array of discrete light sources in proximate relation to at least one eye of the visually-impaired individual. An image capture device is configured to capture images of at least part of the individual's immediate environment, wherein the array is configured to convey information to the individual by selectively illuminating one or more of the discrete light sources based on the content of the captured images.

The invention is a method, a head-worn device system and a computer-readable storage medium as defined in the appended claims.

To easily identify the discussion of any particular, element or act, the most significant digit or digits in a reference number refer to the figure number in which that element is first introduced.

Known wearable devices, such as AR spectacles, include a transparent or semi-transparent display that enables a user to see through the transparent or semi-transparent display to view the surrounding environment. Additional information or objects (e.g., virtual objects such as 3D renderings, images, video, text, and so forth) are shown on the display and appear as a part of, and/or overlaid upon, the surrounding environment to provide an augmented reality experience for the user. The display may for example include a waveguide that receives a light beam from a projector but any appropriate display for presenting augmented or virtual content to the wearer may be used.

Such wearable devices are based on the assumption that the wearer has good or optically-correctable foveal vision, and are thus primarily directed to the presentation of information directly in front of the user. Individuals with macular degeneration may still have normal peripheral vision but impaired central vision due to degeneration of the macula.

People with degenerative vision issues may benefit from having centrally-located visual information remapped to or re-presented in a more peripheral location in which their vision has not been compromised. As disclosed in more detail below, central visual information captured by a forward-facing camera on a wearable device can be displayed on a display located in the user's peripheral vision, or this visual information can be remapped to an outer location on a forward or primary display on the wearable device. In some cases, the forward display may be a ring-shaped waveguide.

<FIG> is perspective view of a wearable device (e.g., glasses <NUM>), in accordance with some examples. The glasses <NUM> can include a frame <NUM> made from any suitable material such as plastic or metal, including any suitable shape memory alloy. In one or more examples, the frame <NUM> includes a first or left optical element holder <NUM> (e.g., a display or lens holder) and a second or right optical element holder <NUM> connected by a bridge <NUM>. A first or left optical element <NUM> and a second or right optical element <NUM> can be provided within respective left optical element holder <NUM> and right optical element holder <NUM>. Each of the right optical element <NUM> and the left optical element <NUM> can be a lens, a display, a display assembly, or a combination of the foregoing. Any suitable display assembly can be provided in the glasses <NUM>.

The frame <NUM> additionally includes a left arm or temple piece <NUM> and a right arm or temple piece <NUM>. In some examples the entire frame <NUM> can be formed from a single piece of material so as to have a unitary or integral construction.

The glasses <NUM> can include a computing device, such as a computer <NUM>, which can be of any suitable type so as to be carried by the frame <NUM> and, in one or more examples, of a suitable size and shape, so as to be at least partially disposed in one of the temple pieces <NUM> and the temple piece <NUM>. The computer <NUM> can include one or more processors with memory, wireless communication circuitry, and a power source. As discussed below, the computer <NUM> comprises low-power circuitry, high-speed circuitry, and a display processor. Various other examples may include these elements in different configurations or integrated together in different ways. Additional details of aspects of computer <NUM> may be implemented as illustrated by the data processor <NUM> discussed below.

The computer <NUM> additionally includes a battery <NUM> or other suitable portable power supply. In one example, the battery <NUM> is disposed in left temple piece <NUM> and is electrically coupled to the computer <NUM> disposed in the right temple piece <NUM>. The glasses <NUM> can include a connector or port (not shown) suitable for charging the battery <NUM>, a wireless receiver, transmitter or transceiver (not shown), or a combination of such devices.

The glasses <NUM> include cameras <NUM>. Although two cameras are depicted, other examples contemplate the use of a single or additional (i.e., more than two) cameras. In one or more examples, the glasses <NUM> include any number of input sensors or other input/output devices in addition to the camera <NUM>. Such sensors or input/output devices can additionally include biometric sensors, location sensors, motion sensors, and so forth.

The glasses <NUM> may also include peripheral displays <NUM> mounted to the left temple piece <NUM> and right temple piece <NUM>. The peripheral displays <NUM> may be curved or include a curved portion <NUM> to provide a "wrap-around effect.

The cameras <NUM> are used to capture a forward view from the glasses <NUM>. As described below, this forward view is then reprojected onto one or more displays provided in or on the glasses <NUM>, such as peripheral displays <NUM> or near eye displays <NUM>. The displays are described in more detail below with reference to <FIG>.

<FIG> is perspective view of a wearable device (e.g., glasses <NUM>), in accordance with another example. As can be seen, in this example, peripheral displays <NUM> are integrated into a frame <NUM>, the front part of which wraps around the user's eyes. The presence of the peripheral displays <NUM> in glasses <NUM> is thus less obtrusive and the overall appearance of the wearable device is more aesthetically pleasing. In yet another example, a single display may be provided for each eye, which wraps around the eye to permit the display of information both in a forward or near peripheral view and a side or far peripheral view.

<FIG> is a block diagram illustrating a networked system <NUM> including details of the glasses <NUM>, in accordance with some examples.

The networked system <NUM> includes the glasses <NUM>, a client device <NUM>, and a server system <NUM>. The client device <NUM> may be a smartphone, tablet, phablet, laptop computer, access point, or any other such device capable of connecting with the glasses <NUM> using both a low-power wireless connection <NUM> and a high-speed wireless connection <NUM>. The client device <NUM> is connected to the server system <NUM> via the network <NUM>. The network <NUM> may include any combination of wired and wireless connections. The server system <NUM> may be one or more computing devices as part of a service or network computing system. The client device <NUM> and any elements of the server system <NUM> and network <NUM> may be implemented using details of the software architecture <NUM> or the machine <NUM> described in <FIG> and <FIG>.

The glasses <NUM> include a data processor <NUM>, displays <NUM>, one or more cameras <NUM>, and additional input/output elements <NUM>. The input/output elements <NUM> may include microphones, audio speakers, biometric sensors, additional sensors, or additional display elements integrated with the data processor <NUM>. Examples of the input/output elements <NUM> are discussed further with respect to <FIG> and <FIG>. For example, the input/output elements <NUM> may include any of I/O components <NUM> including output components <NUM>, motion components <NUM>, and so forth. Examples of the displays <NUM> are discussed in <FIG>. In the particular examples described herein, the displays <NUM> include a display for each one of a user's left and right eyes.

The data processor <NUM> includes an image processor <NUM> (e.g., a video processor), a GPU & display driver <NUM>, a tracking module <NUM>, an interface <NUM>, low-power circuitry <NUM>, and high-speed circuitry <NUM>. The components of the data processor <NUM> are interconnected by a bus <NUM>.

The interface <NUM> refers to any source of a user command that is provided to the data processor <NUM>. In one or more examples, the interface <NUM> is a physical button on a camera that, when depressed, sends a user input signal from the interface <NUM> to a low-power processor <NUM>. A depression of such a camera button followed by an immediate release may be processed by the low-power processor <NUM> as a request to capture a single image. A depression of such a camera button for a first period of time may be processed by the low-power processor <NUM> as a request to capture video data while the button is depressed, and to cease video capture when the button is released, with the video captured while the button was depressed stored as a single video file. In other examples, the interface <NUM> may be any mechanical switch or physical interface capable of accepting user inputs associated with a request for data from the camera <NUM>. In other examples, the interface <NUM> may have a software component, or may be associated with a command received wirelessly from another source, such as from the client device <NUM>.

The image processor <NUM> includes circuitry to receive signals from the camera <NUM> and process those signals from the camera <NUM> into a format suitable for storage in the memory <NUM> or for transmission to the client device <NUM>. In one or more examples, the image processor <NUM> (e.g., video processor) comprises a microprocessor integrated circuit (IC) customized for processing sensor data from the camera <NUM>, along with volatile memory used by the microprocessor in operation.

The low-power circuitry <NUM> includes the low-power processor <NUM> and the low-power wireless circuitry <NUM>. These elements of the low-power circuitry <NUM> may be implemented as separate elements or may be implemented on a single IC as part of a system on a single chip. The low-power processor <NUM> includes logic for managing the other elements of the glasses <NUM>. As described above, for example, the low-power processor <NUM> may accept user input signals from the interface <NUM>. The low-power processor <NUM> may also be configured to receive input signals or instruction communications from the client device <NUM> via the low-power wireless connection <NUM>. The low-power wireless circuitry <NUM> includes circuit elements for implementing a low-power wireless communication system. Bluetooth™ Smart, also known as Bluetooth™ low energy, is one standard implementation of a low power wireless communication system that may be used to implement the low-power wireless circuitry <NUM>. In other examples, other low power communication systems may be used.

The high-speed circuitry <NUM> includes a high-speed processor <NUM>, a memory <NUM>, and a high-speed wireless circuitry <NUM>. The high-speed processor <NUM> may be any processor capable of managing high-speed communications and operation of any general computing system needed for the data processor <NUM>. The high-speed processor <NUM> includes processing resources needed for managing high-speed data transfers on the high-speed wireless connection <NUM> using the high-speed wireless circuitry <NUM>. In certain examples, the high-speed processor <NUM> executes an operating system such as a LINUX operating system or other such operating system such as the operating system <NUM> of <FIG>. In addition to any other responsibilities, the high-speed processor <NUM> executing a software architecture for the data processor <NUM> is used to manage data transfers with the high-speed wireless circuitry <NUM>. In certain examples, the high-speed wireless circuitry <NUM> is configured to implement Institute of Electrical and Electronic Engineers (IEEE) <NUM> communication standards, also referred to herein as Wi-Fi. In other examples, other high-speed communications standards may be implemented by the high-speed wireless circuitry <NUM>.

The memory <NUM> includes any storage device capable of storing camera data generated by the camera <NUM> and the image processor <NUM>. While the memory <NUM> is shown as integrated with the high-speed circuitry <NUM>, in other examples, the memory <NUM> may be an independent standalone element of the data processor <NUM>. In certain such examples, electrical routing lines may provide a connection through a chip that includes the high-speed processor <NUM> from image processor <NUM> or the low-power processor <NUM> to the memory <NUM>. In other examples, the high-speed processor <NUM> may manage addressing of the memory <NUM> such that the low-power processor <NUM> will boot the high-speed processor <NUM> any time that a read or write operation involving the memory <NUM> is needed.

The tracking module <NUM> estimates a pose of the glasses <NUM>. For example, the tracking module <NUM> uses image data and corresponding inertial data from the camera <NUM> and the position components <NUM>, as well as GPS data, to track a location and determine a pose of the glasses <NUM> relative to a frame of reference (e.g., real-world environment). The tracking module <NUM> continually gathers and uses updated sensor data describing movements of the glasses <NUM> to determine updated three-dimensional poses of the glasses <NUM> that indicate changes in the relative position and orientation relative to physical objects in the real-world environment. The tracking module <NUM> permits visual placement of virtual objects relative to physical objects by the glasses <NUM> within the field of view of the user via the displays <NUM>.

The GPU & display driver <NUM> may use the pose of the glasses <NUM> to generate frames of virtual content or other content to be presented on the displays <NUM> when the glasses <NUM> are functioning in a traditional augmented reality mode. In this mode, the GPU & display driver <NUM> generates updated frames of virtual content based on updated three-dimensional poses of the glasses <NUM>, which reflect changes in the position and orientation of the user in relation to physical objects in the user's real-world environment.

Additionally, when operating in a mode to provide an augmented reality display for visual impairment as described herein, the GPU & display driver <NUM> perform any required image processing as described in more detail below.

One or more functions or operations described herein may also be performed in an application resident on the glasses <NUM> or on the client device <NUM>, or on a remote server. For example, one or more functions or operations described herein may be performed by one of the applications <NUM> such as messaging application <NUM> or a custom eye test application.

<FIG> illustrates a wearable device (e.g., glasses <NUM>) including forward and peripheral optical assemblies. As described in <FIG>, the glasses <NUM> shown in <FIG> include left optical element <NUM> and right optical element <NUM> secured within each of the left optical element holder <NUM> and the right optical element holder <NUM> respectively.

The glasses <NUM> include forward optical assembly <NUM> comprising a projector <NUM> and a near eye display <NUM>, and a peripheral optical assembly <NUM> comprising a projector <NUM> and a peripheral display <NUM>. In an actual implementation, the forward and peripheral optical assemblies may be provided on both the left and right halves of the glasses <NUM>. For purposes of clarity, the forward optical assembly <NUM> is shown on the right side and the peripheral optical assembly <NUM> is shown on the left side of the glasses <NUM>, but it will be appreciated that either or both of these optical assemblies can, but are not required to be, mirrored about the plane of symmetry illustrated by dashed line <NUM>, to provide one or both of a forward optical assembly <NUM> and a peripheral optical assembly <NUM> on each side of the glasses <NUM>.

In one embodiment, the near eye display <NUM> is an optical waveguide <NUM> in the shape of a ring (e.g., an annulus or flattened torus). The waveguide <NUM> includes reflective or diffractive structures (e.g., gratings and/or optical elements such as mirrors, lenses, or prisms). Light <NUM> emitted by the projector <NUM> encounters the diffractive structures of the waveguide <NUM>, which directs the light towards the eye of a user to provide an image on or in the right optical element <NUM> that overlays the view of the real world seen by the user. In an alternative embodiment, the near eye display <NUM> is provided as a rectangular shaped optical waveguide.

As described in more detail below, a video stream comprising a forward view from the glasses <NUM>, captured by one of the cameras <NUM>, is projected by the projector <NUM> onto the near eye display <NUM> such that a central portion of the forward view is remapped to an annular region corresponding to the waveguide <NUM>. Central visual information that would not be seen, or only seen poorly, due to visual impairment resulting from macular degeneration is thus displayed to the user in a more peripheral perceptual region.

In an example in which the near eye display <NUM> is a rectangular optical waveguide, the central portion of the waveguide is unused. In the example in which the near eye display <NUM> is ring-shaped waveguide <NUM>, the central reflective or diffractive structures are not present but the waveguide <NUM> is otherwise structurally the same as a rectangular waveguide. By eliminating unused reflective or diffractive structures, the performance of the near eye display <NUM> in regions of interest may be improved. For example, less power may be required to provide the same brightness levels.

It will be appreciated however that other display technologies or configurations may be provided that can display an image to a user in a forward field of view. For example, instead of a projector <NUM> and a waveguide <NUM>, an LCD, LED or other display panel or surface may be provided instead.

In the case where left and right forward optical assemblies <NUM> are provided, the same remapped video feed from a single camera <NUM> (which may be centrally located on the glasses <NUM>) may be provided on both left and right near eye displays <NUM>. Alternatively, a remapped video feed from a left side camera <NUM> may be provided to a left near eye display <NUM> while a remapped video feed from a right-side camera <NUM> may be provided to a right side near eye display <NUM>. Still further, the images displayed on the left and right near eye displays <NUM> may be a remapped video feed of respective left and right sides of a forward field of view. In such a case, the left and right side forward fields of view from which the images displayed on the left and right near eye displays <NUM> are derived may overlap partially or not overlap, with or without a gap between them if not overlapping.

In the illustrated example, the peripheral optical assembly <NUM> comprises a projector <NUM> and a peripheral display <NUM>. As before, the peripheral display <NUM> may comprise a waveguide including reflective or diffractive structures (e.g., gratings and/or optical elements such as mirrors, lenses, or prisms). Light <NUM> emitted by the projector <NUM> encounters the diffractive structures of the peripheral display <NUM>, which directs the light towards the eye of a user to provide an image in a peripheral perceptual region of a user wearing the glasses <NUM>. It will be appreciated however that other display technologies or configurations may be provided that can display an image to a user in a peripheral field of view. For example, instead of a projector <NUM> and the peripheral display <NUM> being a waveguide, the peripheral display <NUM> may be an LCD, LED or other display panel or surface instead.

In use, a video stream comprising a forward view from the glasses <NUM>, captured by one of the cameras <NUM>, is projected by the projector <NUM> onto the peripheral display <NUM> such that a central portion of the forward view is displayed on the peripheral display <NUM>. Central visual information that would not be seen, or only seen poorly, due to visual impairment resulting from macular degeneration, is thus displayed to the user in a more peripheral perceptual region.

The images displayed via the peripheral optical assembly <NUM> may be an unmodified video feed from one or more of the cameras <NUM>. In the case where left and right peripheral optical assemblies <NUM> are provided, the same video feed from a single camera <NUM> (which may be centrally located on the glasses <NUM>) may be provided on both left and right peripheral displays <NUM>. Alternatively, a video feed from a left side camera <NUM> may be provided to a left peripheral display <NUM> while a video feed from a right-side camera <NUM> may be provided to a right-side peripheral display <NUM>. Still further, the images displayed on the left and right peripheral displays <NUM> may be a video feed of respective left and right sides of a forward field of view. In such a case, the images displayed on the left and right peripheral displays <NUM> may overlap partially or not overlap, with or without a gap between them if not overlapping.

<FIG> illustrates the pixel mapping performed on a central portion of the forward view captured by one or more of the cameras <NUM>, for display to a user via the forward optical assembly <NUM>. In <FIG>, the central portion of the forward view, corresponding to what would normally be perceived by a macula or fovea, is represented by a disk <NUM>, while the remapped forward view as displayed via the forward optical assembly <NUM> is represented by an annulus <NUM>.

As can be seen, the center <NUM> of the disk <NUM> is mapped onto the inner circumference <NUM> of the annulus <NUM> while the circumference <NUM> of the disk <NUM> is mapped onto the outer circumference <NUM> of the annulus <NUM>, with corresponding mappings of intermediate points between the center <NUM> and circumference <NUM> to intermediate points between the inner circumference <NUM> and the outer circumference <NUM>.

A sector <NUM> of the disk <NUM> is thus mapped to a sector <NUM> of the annulus <NUM>. More particularly, point <NUM> and point <NUM> of sector <NUM> can be seen to correspond to center <NUM> of sector <NUM>, while point <NUM> and point <NUM> of sector <NUM> can be seen correspond to point <NUM> and point <NUM> of sector <NUM> in the mapping.

This mapping of the forward view captured by one or more of the cameras <NUM> can be achieved by conformal mapping or other image processing techniques. Additional image processing may also be applied as needed. For example, the area of the sector <NUM> can be seen to be larger than the area of the sector <NUM>, and the area of the annulus <NUM> is larger than the area of the disk <NUM>. Accordingly, it may be necessary to adjust the resolution of the video feed from that captured by a camera <NUM> or generate interpolated or other intermediate pixels for display via the forward optical assembly <NUM>.

For example, using a polar coordinate system centered on the center <NUM> of the disk <NUM>, the annulus <NUM> can be generated from the disk <NUM> as follows, where:.

Stepping through all values of θ from <NUM> to 2Pi radians and all values of rd from <NUM> to Rd, <MAT>.

<FIG> is a flowchart <NUM> illustrating a process for capturing and displaying a portion of the forward view from a head-worn device according to some examples. For explanatory purposes, the operations of the flowchart <NUM> are described herein as occurring in serial, or linearly. However, multiple operations of the flowchart <NUM> may occur in parallel. In addition, the operations of the flowchart <NUM> need not be performed in the order shown and/or one or more blocks of the flowchart <NUM> need not be performed and/or can be replaced by other operations.

The operations illustrated in <FIG> will typically execute on the data processor <NUM> and associated hardware in or associated with the glasses <NUM>. For the purposes of clarity, flowchart <NUM> is discussed herein with reference to such an example. Various implementations are of course possible, with some of the operations taking place in client device <NUM> in an application such as messaging application <NUM>, on server system <NUM>, or with one application on the client device <NUM> calling another application or SDK for required functionality. In one example, the operations are performed jointly between messaging application <NUM> running on the client device <NUM> and the data processor <NUM> and associated hardware in or associated with the glasses <NUM>.

The method starts at operation <NUM> with the messaging application <NUM> receiving user input corresponding to selection or activation of a visual-assistance operating mode. The nature of the selections that are available will depend on the configuration of the glasses <NUM>. For example, if the forward optical assembly <NUM> includes a ring-shaped waveguide <NUM>, then the glasses <NUM> are specifically for use in by persons with visual impairment and it may not be necessary to select a mode in which the forward view is mapped to the waveguide <NUM>, since that mode is likely the default mode. On the other hand, if the near eye display <NUM> is a rectangular waveguide or some other rectangular display, then receipt of specific user selection of a visual assistance mode may be required to initiate the visual assistance mode.

Also, user selection to display forward information on the peripheral displays <NUM> will depend on whether or not those displays are present. If they are present, receipt of user selection may be required to initiate the visual assistance mode since the use of these displays is likely to be an optional and not a default mode. Furthermore, express selection or activation of these modes may also be required to preserve the battery life of the glasses <NUM>. Selection of the mode may include selection of visual assistance mode for either the near eye displays or the peripheral displays, or both.

Upon receipt of user selection or activation of a visual assistance mode, an image feed corresponding to a forward view from the glasses <NUM> is captured by one or more of the cameras <NUM> at operation <NUM>. If a near eye display visual assistance mode has been selected, the method proceeds at operation <NUM>. If a peripheral display vision assistance mode has been selected, the method proceeds at operation <NUM>. If both modes have been selected, the method proceeds at operation <NUM> and operation <NUM>.

If a near eye display visual assistance mode has been selected, then at operation <NUM> the forward field(s) of view captured by the cameras <NUM> is/are mapped for display outside a central field of view by the data processor <NUM>. The amount by which the mapping moves the field of view from the central field of view depends on the implementation. The fovea has an approximately <NUM> deg. field of view, paracentral vision is considered to be a field of view of approximately <NUM> deg. , while the macula has an approximately <NUM> deg. field of view. Mid-peripheral vision is considered to be plus/minus <NUM> deg. In one example, the mapping takes the macular field of view (plus/minus approximately <NUM> deg. ) and maps it to the mid-peripheral zone from between plus/minus approximately <NUM> deg to approximately plus/minus <NUM> deg. In another example, a central field of view from plus/minus <NUM> deg is mapped to a zone from between plus/minus approximately <NUM> deg to approximately plus/minus <NUM> deg.

In some embodiments, visual impairment of users may vary, and the angle of the field of view of the central field of view for mapping and the angular zone of the annulus to which the central field of view is mapped may be user-selectable via a user interface on the client device <NUM>.

Additionally, it is not necessary that the field of views of the central t0-be mapped region and the as-mapped regions be adjacent. For example, a central field of view of plus/minus <NUM> deg. might be mapped to a mid-peripheral zone from outside plus/minus approximately <NUM> deg to approximately plus/minus <NUM> deg. This might be done to ensure that sufficient visual information is provided to the user, since the mapped and displayed visual information will otherwise obscure the user's mid-peripheral visual field.

As mentioned above, the central field of view that is mapped may differ for each eye, may come from different cameras for each eye, or may be different parts of the central field of view for each eye.

The mapped field of view is then displayed by the data processor <NUM> on one or both of the near-eye displays <NUM> at operation <NUM>. The display(s) of the mapped field(s) of view continue until terminating user input is received at operation <NUM> and the method ends at operation <NUM>.

If a peripheral display vision assistance mode has been selected, the method proceeds at operation <NUM> with selection of the portion of field(s) of view by the data processor <NUM> from one or more of the cameras <NUM> for display on the peripheral display <NUM>. As described above, the same video feed from a single camera <NUM> (which may be centrally located on the glasses <NUM>) may be provided on both left and right near eye displays <NUM>. Alternatively, a video feed from a left side camera <NUM> may be provided to a left near eye display <NUM> while a video feed from a right-side camera <NUM> may be provided to a right side near eye display <NUM>. Still further, the images displayed on the left and right near eye displays <NUM> may be a video feed of respective left and right forward fields of view. In such a case, the left and right forward fields of view from which the images displayed on the left and right near eye displays <NUM> are derived may overlap partially or not overlap, with or without a gap between them if not overlapping. Additionally, a central portion of the field(s) of view of the camera(s) might be cropped from the field of view of the camera(s) so that more relevant central visual information is presented on the peripheral display(s).

This selection of the nature and scope of the displayed portions of the forward field of view by the data processor <NUM> is based on parameters that may be user selectable, for example which and how many cameras to use, how much of the central field of view to display, which portions to display to each eye, and so forth.

The selected forward view(s) are then displayed to the user on the peripheral displays <NUM> at operation <NUM>. The display(s) of the mapped field(s) of view continue until terminating user input is received at operation <NUM> and the method ends at operation <NUM>.

The operating system <NUM> manages hardware resources and provides common services. The operating system <NUM> includes, for example, a kernel <NUM>, services <NUM>, and drivers <NUM>. The kernel <NUM> acts as an abstraction layer between the hardware and the other software layers. For example, the kernel <NUM> provides memory management, processor management (e.g., scheduling), component management, networking, and security settings, among other functionality. The services <NUM> can provide other common services for the other software layers. The drivers <NUM> are responsible for controlling or interfacing with the underlying hardware. For instance, the drivers <NUM> can include display drivers, camera drivers, BLUETOOTH® or BLUETOOTH® Low Energy drivers, flash memory drivers, serial communication drivers (e.g., Universal Serial Bus (USB) drivers), WI-FI® drivers, audio drivers, power management drivers, and so forth.

The libraries <NUM> provide a low-level common infrastructure used by the applications <NUM>. The libraries <NUM> can include system libraries <NUM> (e.g., C standard library) that provide functions such as memory allocation functions, string manipulation functions, mathematic functions, and the like. In addition, the libraries <NUM> can include API libraries <NUM> such as media libraries (e.g., libraries to support presentation and manipulation of various media formats such as Moving Picture Experts Group-<NUM> (MPEG4), Advanced Video Coding (H. <NUM> or AVC), Moving Picture Experts Group Layer-<NUM> (MP3), Advanced Audio Coding (AAC), Adaptive Multi-Rate (AMR) audio codec, Joint Photographic Experts Group (JPEG or JPG), or Portable Network Graphics (PNG)), graphics libraries (e.g., an OpenGL framework used to render in two dimensions (2D) and three dimensions (3D) in a graphic content on a display), database libraries (e.g., SQLite to provide various relational database functions), web libraries (e.g., WebKit to provide web browsing functionality), and the like. The libraries <NUM> can also include a wide variety of other libraries <NUM> to provide many other APIs to the applications <NUM>.

The frameworks <NUM> provide a high-level common infrastructure that is used by the applications <NUM>. For example, the frameworks <NUM> provide various graphical user interface (GUI) functions, high-level resource management, and high-level location services. The frameworks <NUM> can provide a broad spectrum of other APIs that can be used by the applications <NUM>, some of which may be specific to a particular operating system or platform.

In an example, the applications <NUM> may include a home application <NUM>, a contacts application <NUM>, a browser application <NUM>, a book reader application <NUM>, a location application <NUM>, a media application <NUM>, a messaging application <NUM>, a game application <NUM>, and a broad assortment of other applications such as third-party applications <NUM>. The applications <NUM> are programs that execute functions defined in the programs. Various programming languages can be employed to create one or more of the applications <NUM>, structured in a variety of manners, such as object-oriented programming languages (e.g., Objective-C, Java, or C++) or procedural programming languages (e.g., C or assembly language). In a specific example, the third-party applications <NUM> (e.g., applications developed using the ANDROID™ or IOS™ software development kit (SDK) by an entity other than the vendor of the particular platform) may be mobile software running on a mobile operating system such as IOS™, ANDROID™, WINDOWS® Phone, or another mobile operating system. In this example, the third-party applications <NUM> can invoke the API calls <NUM> provided by the operating system <NUM> to facilitate functionality described herein.

<FIG> is a diagrammatic representation of a machine <NUM> within which instructions <NUM> (e.g., software, a program, an application, an applet, an app, or other executable code) for causing the machine <NUM> to perform any one or more of the methodologies discussed herein may be executed. For example, the instructions <NUM> may cause the machine <NUM> to execute any one or more of the methods described herein. The instructions <NUM> transform the general, non-programmed machine <NUM> into a particular machine <NUM> programmed to carry out the described and illustrated functions in the manner described. The machine <NUM> may operate as a standalone device or may be coupled (e.g., networked) to other machines. In a networked deployment, the machine <NUM> may operate in the capacity of 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 <NUM> may comprise, but not be 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 telephone, 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 appliance, a network router, a network switch, a network bridge, or any machine capable of executing the instructions <NUM>, sequentially or otherwise, that specify actions to be taken by the machine <NUM>. Further, while only a single machine <NUM> is illustrated, the term "machine" shall also be taken to include a collection of machines that individually or jointly execute the instructions <NUM> to perform any one or more of the methodologies discussed herein.

The machine <NUM> may include processors <NUM>, memory <NUM>, and I/O components <NUM>, which may be configured to communicate with each other via a bus <NUM>. In an example, the processors <NUM> (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), another processor, or any suitable combination thereof) may include, for example, a processor <NUM> and a processor <NUM> that execute the instructions <NUM>. The term "processor" is intended to include multi-core processors that may comprise two or more independent processors (sometimes referred to as "cores") that may execute instructions contemporaneously. Although <FIG> shows multiple processors <NUM>, the machine <NUM> 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 multiples cores, or any combination thereof.

The instructions <NUM> may also reside, completely or partially, within the main memory <NUM>, within the static memory <NUM>, within machine-readable medium <NUM> within the storage unit <NUM>, within at least one of the processors <NUM> (e.g., within the processor's cache memory), or any suitable combination thereof, during execution thereof by the networked system <NUM>.

The I/O components <NUM> may include a wide variety of components to receive input, provide output, produce output, transmit information, exchange information, capture measurements, and so on. The specific I/O components <NUM> that are included in a particular machine will depend on the type of machine. For example, portable machines such as mobile phones may include a touch input device or other such input mechanisms, while a headless server machine will likely not include such a touch input device. It will be appreciated that the I/O components <NUM> may include many other components that are not shown in <FIG>. In various examples, the I/O components <NUM> may include output components <NUM> and input components <NUM>. The output components <NUM> may include visual components (e.g., a display such as a plasma display panel (PDP), a light emitting diode (LED) display, a liquid crystal display (LCD), a projector, or a cathode ray tube (CRT)), acoustic components (e.g., speakers), haptic components (e.g., a vibratory motor, resistance mechanisms), other signal generators, and so forth. The input components <NUM> may include alphanumeric input components (e.g., a keyboard, a touch screen configured to receive alphanumeric input, a photo-optical keyboard, or other alphanumeric input components), point-based input components (e.g., a mouse, a touchpad, a trackball, a joystick, a motion sensor, or another pointing instrument), tactile input components (e.g., a physical button, a touch screen that provides location and/or force of touches or touch gestures, or other tactile input components), audio input components (e.g., a microphone), and the like.

For example, the biometric components <NUM> include components to detect expressions (e.g., hand expressions, facial expressions, vocal expressions, body gestures, or eye tracking), measure biosignals (e.g., blood pressure, heart rate, body temperature, perspiration, or brain waves), identify a person (e.g., voice identification, retinal identification, facial identification, fingerprint identification, or electroencephalogram-based identification), and the like. The motion components <NUM> include acceleration sensor components (e.g., accelerometer), gravitation sensor components, rotation sensor components (e.g., gyroscope), and so forth. The environmental components <NUM> include, for example, illumination sensor components (e.g., photometer), temperature sensor components (e.g., one or more thermometers that detect ambient temperature), humidity sensor components, pressure sensor components (e.g., barometer), acoustic sensor components (e.g., one or more microphones that detect background noise), proximity sensor components (e.g., infrared sensors that detect nearby objects), gas sensors (e.g., gas detection sensors to detection concentrations of hazardous gases for safety or to measure pollutants in the atmosphere), or other components that may provide indications, measurements, or signals corresponding to a surrounding physical environment. The position components <NUM> include location sensor components (e.g., a GPS receiver component), altitude sensor components (e.g., altimeters or barometers that detect air pressure from which altitude may be derived), orientation sensor components (e.g., magnetometers), and the like.

Communication may be implemented using a wide variety of technologies. The I/O components <NUM> further include communication components <NUM> operable to couple the networked system <NUM> to a network <NUM> or devices <NUM> via a coupling <NUM> and a coupling <NUM>, respectively. For example, the communication components <NUM> may include a network interface component or another suitable device to interface with the network <NUM>. In further examples, the communication components <NUM> may include wired communication components, wireless communication components, cellular communication components, Near Field Communication (NFC) components, Bluetooth® components (e.g., Bluetooth® Low Energy), Wi-Fi® components, and other communication components to provide communication via other modalities. The devices <NUM> may be another machine or any of a wide variety of peripheral devices (e.g., a peripheral device coupled via a USB).

The various memories (e.g., memory <NUM>, main memory <NUM>, static memory <NUM>, and/or memory of the processors <NUM>) and/or storage unit <NUM> may store one or more sets of instructions and data structures (e.g., software) embodying or used by any one or more of the methodologies or functions described herein.

The instructions <NUM> may be transmitted or received over the network <NUM>, using a transmission medium, via a network interface device (e.g., a network interface component included in the communication components <NUM>) and using any one of a number of well-known transfer protocols (e.g., hypertext transfer protocol (HTTP)). Similarly, the instructions <NUM> may be transmitted or received using a transmission medium via the coupling <NUM> (e.g., a peer-to-peer coupling) to the devices <NUM>.

A "carrier signal" refers to any intangible medium that is capable of storing, encoding, or carrying instructions for execution by the machine, and includes digital or analog communications signals or other intangible media to facilitate communication of such instructions.

A "client device" refers to any machine that interfaces to a communications network to obtain resources from one or more server systems or other client devices.

A "communication network" refers to one or more portions of a network that 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 portion of the Internet, a portion of the Public Switched Telephone Network (PSTN), a plain old telephone service (POTS) network, a cellular telephone network, a wireless network, a Wi-Fi® network, another type of network, or a combination of two or more such networks.

A "component" refers to a device, physical entity, or logic having boundaries defined by function or subroutine calls, branch points, APIs, or other technologies that provide for the partitioning or modularization of particular processing or control functions. Components may be combined via their interfaces with other components to carry out a machine process. A component may be a packaged functional hardware unit designed for use with other components and a part of a program that usually performs a particular function of related functions. Components may constitute either software components (e.g., code embodied on a machine-readable medium) or hardware components. A "hardware component" is a tangible unit capable of performing certain operations and may be configured or arranged in a certain physical manner. In various examples, one or more computer systems (e.g., a standalone computer system, a client computer system, or a server computer system) or one or more hardware components of a computer system (e.g., a processor or a group of processors) may be configured by software (e.g., an application or application portion) as a hardware component that operates to perform certain operations as described herein. A hardware component may also be implemented mechanically, electronically, or any suitable combination thereof. For example, a hardware component may include dedicated circuitry or logic that is permanently configured to perform certain operations. A hardware component may be a special-purpose processor, such as a field-programmable gate array (FPGA) or an application specific integrated circuit (ASIC). A hardware component may also include programmable logic or circuitry that is temporarily configured by software to perform certain operations. For example, a hardware component may include software executed by a general-purpose processor or other programmable processor. Once configured by such software, hardware components become specific machines (or specific components of a machine) uniquely tailored to perform the configured functions and are no longer general-purpose processors. It will be appreciated that the decision to implement a hardware component mechanically, in dedicated and permanently configured circuitry, or in temporarily configured circuitry (e.g., configured by software), may be driven by cost and time considerations. Accordingly, the phrase "hardware component"(or "hardware-implemented component") should be understood to encompass a tangible entity, be that an entity that is physically constructed, permanently configured (e.g., hardwired), or temporarily configured (e.g., programmed) to operate in a certain manner or to perform certain operations described herein. Considering examples in which hardware components are temporarily configured (e.g., programmed), each of the hardware components need not be configured or instantiated at any one instance in time. For example, where a hardware component comprises a general-purpose processor configured by software to become a special-purpose processor, the general-purpose processor may be configured as respectively different special-purpose processors (e.g., comprising different hardware components) at different times. Software accordingly configures a particular processor or processors, for example, to constitute a particular hardware component at one instance of time and to constitute a different hardware component at a different instance of time. Hardware components can provide information to, and receive information from, other hardware components. Accordingly, the described hardware components may be regarded as being communicatively coupled. Where multiple hardware components exist contemporaneously, communications may be achieved through signal transmission (e.g., over appropriate circuits and buses) between or among two or more of the hardware components. In examples in which multiple hardware components are configured or instantiated at different times, communications between such hardware components may be achieved, for example, through the storage and retrieval of information in memory structures to which the multiple hardware components have access. For example, one hardware component may perform an operation and store the output of that operation in a memory device to which it is communicatively coupled. A further hardware component may then, at a later time, access the memory device to retrieve and process the stored output. Hardware components may also initiate communications with input or output devices, and can operate on a resource (e.g., a collection of information). Whether temporarily or permanently configured, such processors may constitute processor-implemented components that operate to perform one or more operations or functions described herein. As used herein, "processor-implemented component" refers to a hardware component implemented using one or more processors. Similarly, the methods described herein may be at least partially processor-implemented, with a particular processor or processors being an example of hardware. For example, at least some of the operations of a method may be performed by one or more processors or processor-implemented components. For example, at least some of the operations may be performed by a group of computers (as examples of machines including processors), with these operations being accessible via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., an API). The performance of certain of the operations may be distributed among the processors, not only residing within a single machine, but deployed across a number of machines. In some examples, the processors or processor-implemented components may be located in a single geographic location (e.g., within a home environment, an office environment, or a server farm). In other examples, the processors or processor-implemented components may be distributed across a number of geographic locations.

A "computer-readable medium" refers to both machine-storage media and transmission media.

An "ephemeral message" refers to a message that is accessible for a time-limited duration. An ephemeral message may be a text, an image, a video and the like. The access time for the ephemeral message may be set by the message sender. Alternatively, the access time may be a default setting, or a setting specified by the recipient. Regardless of the setting technique, the message is transitory.

A "machine-storage medium" refers to a single or multiple storage devices and/or media (e.g., a centralized or distributed database, and/or associated caches and servers) that store executable instructions, routines and/or data in a non-transitory manner. Specific examples of machine-storage media, computer-storage media and/or device-storage media include nonvolatile memory, including by way of example semiconductor memory devices, e.g., 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 medium," "device-storage medium," "computer-storage medium" mean the same thing and may be used interchangeably in this disclosure.

A "processor" refers to any circuit or virtual circuit (a physical circuit emulated by logic executing on an actual processor) that manipulates data values according to control signals (e.g., "commands", "op codes", "machine code", and so forth) and which produces corresponding output signals that are applied to operate a machine. A processor may, for example, be 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 Application Specific Integrated Circuit (ASIC), a Radio-Frequency Integrated Circuit (RFIC) or any combination thereof. A processor may further be a multi-core processor having two or more independent processors (sometimes referred to as "cores") that may execute instructions contemporaneously.

A "signal medium" refers to any intangible medium that is capable of storing, encoding, or carrying the instructions for execution by a machine and includes digital or analog communications signals or other intangible media to facilitate communication of software or data. The term "signal medium" shall be taken to include any form of a modulated data signal, carrier wave, and so forth. The term "modulated data signal" means a signal that has one or more of its characteristics set or changed in such a matter 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.

Claim 1:
A method of providing visual assistance using a head-worn device (<NUM>, <NUM>) including one or more display devices (<NUM>, <NUM>, <NUM>, <NUM>, <NUM>) and one or more cameras (<NUM>, <NUM>) for capturing a forward visual field, wherein the method comprises:
receiving user input defining a size of a central portion of the forward visual field;
receiving user input defining a size of a near-peripheral field of view;
capturing the forward visual field using at least one of the cameras;
mapping the central portion of the forward visual field to the near-peripheral field of view; and
displaying the mapped central portion of the forward visual field in the near-peripheral field of view using a forward display device (<NUM>, <NUM>) of the one or more display devices; characterized in that the method comprises:
receiving user input of a further portion of the forward visual field; and
displaying the further portion of the forward visual field in a peripheral field of view using a separate peripheral display device (<NUM>, <NUM>) of the head-worn device.