The invention relates generally to systems and methods that enable vison training through software and/or hardware fixation controls.
Improved vision training is ideally enables by the repeated visual stimulation of a specific area of a retina within an eye. An impediment to this training is the movement of the eye. When an individual participating in a given visual training exercises either voluntarily and/or involuntarily moves his or her eye (e.g., changes his or her point of focus) this repeated stimulation is complicated and generally, not possible and thus, the efficacy of the training is compromised.
Shortcomings of the prior art are also overcome and additional advantages are provided through the provision of a method to stimulate a consistent part of a retina of a user, the method comprising displaying, by one or more processors, at a first location in an interface of a computing device, one or more images comprising a fixation point; obtaining, by the one or more processors, from an eye tracking device communicatively coupled to the one or more processors, a first indication that a user whose eye movement is being tracked by the eye tracking device has at least one eye focused on the fixation point; based on the first indication, rendering, by the one or more processors, at a second location in the interface, a visual stimulus, wherein the second location is a fixed vertical distance and a fixed horizontal distance from the first location, and wherein based on being rendered at the second location, the stimulus stimulates a predefined location in a retina of the at least one eye of the user when the user has at least one eye focused on the fixation point; obtaining, by the one or more processors, from the eye tracking device, a second indication that a user whose eye movement is being tracked by the eye tracking device does not have the at least one eye focused on the fixation point; identifying, by the one or more processors, based on utilizing the eye tracking device, a third location in the interface, wherein the third location comprises a focal point of the at least one eye of the user, in the interface; and based on identifying the third location, reorienting, by the one or more processors, the one or more images such that the fixation point is at the third location and the stimulus is moved relative to the fixation point, maintaining the fixed vertical distance and the fixed horizontal distance.
Systems and methods relating to one or more aspects of the technique are also described and may be claimed herein. Further, services relating to one or more aspects of the technique are also described and may be claimed herein.
Additional features are realized through the techniques of the present invention. Other embodiments and aspects of the invention are described in detail herein and are considered a part of the claimed invention.
One or more aspects of the present invention are particularly pointed out and distinctly claimed as examples in the claims at the conclusion of the specification. The foregoing and objects, features, and advantages of one or more aspects of the invention are apparent from the following detailed description taken in conjunction with the accompanying drawing.
Aspects of the present invention and certain features, advantages, and details thereof, are explained more fully below with reference to the non-limiting examples illustrated in the accompanying drawings. Descriptions of well-known materials, fabrication tools, processing techniques, etc., are omitted so as not to unnecessarily obscure the invention in detail. It should be understood, however, that the detailed description and the specific examples, while indicating aspects of the invention, are given by way of illustration only, and not by way of limitation. Various substitutions, modifications, additions, and/or arrangements, within the spirit and/or scope of the underlying inventive concepts will be apparent to those skilled in the art from this disclosure. The terms software and program code are used interchangeably throughout this application.
As understood by one of skill in the art, to enable vision training, one would ideally want to stimulate a specific area of the retina within the eye. If the eye moves, one cannot stimulate the same part of the retina. In order to overcome this and allow vision training when eye movement occurs, program code executing on one or more processors, in embodiments of the present invention, renders a simulation (e.g., an image on a display) and when a viewer moves his or her eye(s), the program code moves the stimulation by the same amount that the eye(s) moved, so that the stimulation is back training the same area of the retina it was before the eye movement occurred.
Embodiments of the present invention include program code executing on one or more processors that enable eye tracking technologies, that when combined with a visual display (graphical user interface on a computing device) and/or an interface of a virtual reality (VR) device, including but not limited to a headset, enable vision training with fixation control. In embodiments of the present invention, program code executing on at least one processor moves an object within the view of a user through a computing interface, including but not limited to a graphical user interface on a screen and/or within a viewer of a VR device. As understood by one of skill in the art, VR devices include, but are not limited to, virtual reality headsets, which are head-mounted devices that provides a virtual reality experience for the wearer. A VR headset can comprise a stereoscopic head-mounted display, which provides separate images for each eye and head motion tracking sensors (e.g., gyroscopes, accelerometers, magnetometers, structured light systems, etc.). VR headsets utilized in embodiments of the present invention can also include integrated eye tracking sensors. Other computing interfaces utilized in embodiments of the present invention include various user interfaces, including screens of various computing devices, which render graphical user interfaces to the user. In embodiments of the present invention, when the program code moves the object within the view of a user (e.g., the view on an interface including a screen and/or a head-mounted display), the program code forces the user to fixate on a given portion of the image. The program code manipulates the placement of an image or a portion of an image in the interface, based on obtain the focus point of a user's eyes and displaying the image at the user's focus point, even if the user moves his or her eyes and attempts to focus on a different part of the image. Thus, the program code moves the image to maintain the same portion of the image at a location in the interface that coordinates with the focus point of the user. By shifting an image on an interface to comport with a focus point of a user, program code in embodiments of the present invention can provide various training exercises and vison assessments of the user, via the interface. Because the program code identifies and isolates are area of an eye of the user, the training and vison assessments that the program code displays to the user, through the interface, are more effective.
Embodiments of the present invention are inextricably tied to computing and are directed to a practical application.
Embodiments of the present invention provide significant advantages over existing approaches to eye training. In general, to enable vision training, one would ideally want to stimulate a specific area of the retina within the eye. If the eye moves, one cannot stimulate the same part of the retina. In order to overcome this and allow vision training when eye movement occurs, in embodiments of the present invention, the program code moves the stimulation (the image and/or images rendered by the program code in the interface 110,
As illustrated in
Referring to
Turning to
Once the program code determines that the user is no longer looking at the fixation cue 520, the program code immediately (i.e., at a speed that is transparent to the user), can change the orientation of the training exercise being provided by the program code in the interface 510. Thus, the amount of time that the orientation of the interface 510 relative to the eye 515, as depicted in
Referring to
Returning to
Embodiments of the present invention include a computer-implemented method, a computer program product, and a computer system, where program code executed by one or more processors, displays, at a first location in an interface of a computing device, one or more images comprising a fixation point. The program code obtains, from an eye tracking device communicatively coupled to the one or more processors, a first indication that a user whose eye movement is being tracked by the eye tracking device has at least one eye focused on the fixation point. Based on the first indication, rendering, at a second location in the interface, a visual stimulus, where the second location is a fixed vertical distance and a fixed horizontal distance from the first location, and where based on being rendered at the second location, the stimulus stimulates a predefined location in a retina of the at least one eye of the user when the user has at least one eye focused on the fixation point. The program code obtains, from the eye tracking device, a second indication that a user whose eye movement is being tracked by the eye tracking device does not have the at least one eye focused on the fixation point. The program code identifies, based on utilizing the eye tracking device, a third location in the interface, wherein the third location comprises a focal point of the at least one eye of the user, in the interface. Based on identifying the third location, the program code reorients the one or more images such that the fixation point is at the third location and the stimulus is moved relative to the fixation point, maintaining the fixed vertical distance and the fixed horizontal distance.
In some embodiments of the present invention, the interface comprises a head-mounted display.
In some embodiments of the present invention, obtaining the first indication and obtaining the second indication is based on the one or more processors continuously monitoring the eye tracking device.
In some embodiments of the present invention, obtaining the first indication and obtaining the second indication is based on the one or more processors intermittently obtaining data from the eye tracking device.
In some embodiments of the present invention, the program code obtaining the first indication comprises: the program code obtaining video data captured by the eye tracking device; the program code analyzing the video data to determine a focal point of the at least one eye in the interface; the program code comparing the focal point to the fixation point; and the program code determining that the focal point is equivalent to the fixation point
In some embodiments of the present invention, the program code rendering the visual stimulus comprises displaying one or more images in a manner selected from the group consisting of: displaying an the one or more images sequentially in the interface at the second location, and pulsing the one or more image on and off at the second location.
In some embodiments of the present invention, the stimulus is moved relative to the fixation point to a fourth location in the interface.
In some embodiments of the present invention, the program code, based on obtaining the second indication, stops the displaying of the one or more images.
In some embodiments of the present invention, based on reorienting the one or more images, the program code resumes the displaying of the one or more images at the fourth location.
In some embodiments of the present invention, the reorienting by the program code is timed such that the user cannot perceive the reorienting.
In certain embodiments, the program logic 510 including code 512 may be stored in the storage 508, or memory 506. In certain other embodiments, the program logic 510 may be implemented in the circuitry 502. Therefore, while
Using the processing resources of a resource 600 to execute software, computer-readable code or instructions, does not limit where this code can be stored. Referring to
As will be appreciated by one skilled in the art, aspects of the technique may be embodied as a system, method or computer program product. Accordingly, aspects of the technique may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system”. Furthermore, aspects of the technique may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus or device.
A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain or store a program for use by or in connection with an instruction execution system, apparatus, or device.
Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus or device.
Program code embodied on a computer readable medium may be transmitted using an appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the technique may be written in any combination of one or more programming languages, including an object oriented programming language, such as Java, Smalltalk, C++ or the like, and conventional procedural programming languages, such as the “C” programming language, PHP, ASP, assembler or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
Aspects of the technique are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions, also referred to as software and/or program code, may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the technique. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
In addition to the above, one or more aspects of the technique may be provided, offered, deployed, managed, serviced, etc. by a service provider who offers management of customer environments. For instance, the service provider can create, maintain, support, etc. computer code and/or a computer infrastructure that performs one or more aspects of the technique for one or more customers. In return, the service provider may receive payment from the customer under a subscription and/or fee agreement, as examples. Additionally or alternatively, the service provider may receive payment from the sale of advertising content to one or more third parties.
In one aspect of the technique, an application may be deployed for performing one or more aspects of the technique. As one example, the deploying of an application comprises providing computer infrastructure operable to perform one or more aspects of the technique.
As a further aspect of the technique, a computing infrastructure may be deployed comprising integrating computer readable code into a computing system, in which the code in combination with the computing system is capable of performing one or more aspects of the technique.
As yet a further aspect of the technique, a process for integrating computing infrastructure comprising integrating computer readable code into a computer system may be provided. The computer system comprises a computer readable medium, in which the computer medium comprises one or more aspects of the technique. The code in combination with the computer system is capable of performing one or more aspects of the technique.
Further, other types of computing environments can benefit from one or more aspects of the technique. As an example, an environment may include an emulator (e.g., software or other emulation mechanisms), in which a particular architecture (including, for instance, instruction execution, architected functions, such as address translation, and architected registers) or a subset thereof is emulated (e.g., on a native computer system having a processor and memory). In such an environment, one or more emulation functions of the emulator can implement one or more aspects of the technique, even though a computer executing the emulator may have a different architecture than the capabilities being emulated. As one example, in emulation mode, the specific instruction or operation being emulated is decoded, and an appropriate emulation function is built to implement the individual instruction or operation.
In an emulation environment, a host computer includes, for instance, a memory to store instructions and data; an instruction fetch unit to fetch instructions from memory and to optionally, provide local buffering for the fetched instruction; an instruction decode unit to receive the fetched instructions and to determine the type of instructions that have been fetched; and an instruction execution unit to execute the instructions. Execution may include loading data into a register from memory; storing data back to memory from a register; or performing some type of arithmetic or logical operation, as determined by the decode unit. In one example, each unit is implemented in software. For instance, the operations being performed by the units are implemented as one or more subroutines within emulator software.
Further, a data processing system suitable for storing and/or executing program code is usable that includes at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements include, for instance, local memory employed during actual execution of the program code, bulk storage, and cache memory which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution.
Input/Output or I/O devices (including, but not limited to, keyboards, displays, pointing devices, DASD, tape, CDs, DVDs, thumb drives and other memory media, etc.) can be coupled to the system either directly or through intervening I/O controllers. Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modems, and Ethernet cards are just a few of the available types of network adapters.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising”, when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components and/or groups thereof.
The corresponding structures, materials, acts, and equivalents of all means or steps plus function elements in the descriptions below, if any, are intended to include any structure, material, or act for performing the function in combination with other elements as specifically noted. The description of the technique has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. The embodiment was chosen and described in order to best explain the principles of the invention and the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular uses contemplated.
This application claims priority to U.S. Provisional Application No. 62/698,571 filed Jul. 16, 2018, entitled, “VIRTUAL FORCED FIXATION” which is incorporated herein by reference in its entirety.
| Number | Date | Country | |
|---|---|---|---|
| 62698571 | Jul 2018 | US |