The present application is related to eye pressure measurement and estimation, and more specifically to methods and systems that determine eye pressures from contact with an eyelid with a mobile device.
High eye pressure can cause glaucoma and permanent vision loss in some individuals. Various types of devices are available for measuring eye pressure. Almost all of them are specialized devices typically operated by an eye doctor in the doctor's office. Many of them require direct contact with the eye, which is associated with sanitation and comfort issues.
Various embodiments are disclosed in the following detailed description and accompanying drawings.
This application is related to a system and related methods for measuring eye pressure. In some embodiments, the system includes a pressure sensor and a processor. The pressure sensor takes a measurement from a contact with an eyelid. The processor includes an engine that is built from a set of items, each comprising a list of user attribute values, the eye pressure measured by the pressure sensor, and the actual eye pressure level, and can estimate an actual eye pressure level. The user attributes include those that can account for the effect of an eyelid, such as the thickness or resilience of the eyelid. The user attributes also include those that can account for transitory or seasonal effects of environment and personal factors, such as the removal of contact lenses or exercise. By calibrating the measurement data based on the user attribute values using machine learning techniques, the engine can estimate the actual or normalized eye pressure level. Given a new measurement of a user's eye pressure made using the pressure sensor, the processor identifies the user attribute values for the user and runs the engine to estimate the actual or normalized eye pressure level.
Through the use of the system, a user can measure the eye pressure essentially anywhere and anytime. The user does not need to travel to an eye doctor's office, nor does the user need to acquire access to any specialized, delicate, or costly device. However, the user and the eye doctor can receive the measurement result and take actions right away for treatment, prevention, and other purposes. In addition, the user's eyes do not need to receive eye drops or any other external solution for sanitary, anesthetic, or other purposes. In fact, the user's eyes do not experience any particular discomfort from a light press of a regular surface on the eyelid. Furthermore, the user receives an abundance of information, such as a value for the current eye pressure, a value for a normalized eye pressure calibrated on multiple dimensions, and information explaining the deviation of the current eye pressure from the normalized eye pressure.
In some embodiments, the client device 106 includes a processor. The client device 106 also includes a display screen 108 that is connected (physically or through a computer network) with the rest of the client device 106. In some embodiments, the processor displays a graphical user interface (GUI) on the display screen 108. The processor receives basic data regarding a user through the GUI. The basic data can include the user's medical history, family history, contact information, various preferences, etc. The medical history can indicate previous diagnosis and treatment of the user's eyes. The family history can include the medical history of family members. The contact information can indicate how to reach eye doctor or personal emergency contacts. The preferences can indicate what types of information to receive or send, when to receive or send such information, how to share such information, etc. The processor can save the basic data locally or send the basic data to the server 102 for further processing and storage. For example, based on the basic data, the system can automatically send periodic reminders to measure eye pressure, or it can notify the user's physician and significant others when the user's eye pressure level exceeds a predetermined threshold.
In some embodiments, the client device 106 includes a touch-sensitive surface, which can coincide with the display screen 108, and a connected pressure sensor 110 that takes a pressure measurement when the surface comes in contact with an object, such as an eyelid of a user. The eyelid can be closed, fully covering the eye, which makes a large area available for contact, or the eyelid can be somewhat open, partially covering the eye, which makes a small area available for contact. The client device 106 instructs the user on how to handle the client device 106 to allow proper pressure measurement. The client device 106 can start communicating with the user when the display screen 108 detects a contact with an object, when the user makes an explicit a request for measuring the eye pressure, etc. The client device 106 can further determine whether the object is human skin (e.g., based on the temperature) or whether the object is an eyelid (e.g., based on the area of contact). The client device 106 can guide the user on how hard or for how long to press the display screen 108 against the eyelid, generally depending on when pressure sensor 112 can detect a stable pressure, using speech, sound, vibration, etc. This client setup can be implemented based on existing techniques, such as one that allows a pressure sensor to be embedded underneath the screen of a cellular phone. Alternatively, the client device 106 can include a pressure sensor 112 that acts as an air puffer, which takes a pressure measurement when the air pulse it transmits applanates the eyelid. In this case, the client device 106 can similarly instruct the user on how to handle the client device 106 to enable proper pressure measurement. For example, the client device 106 can guide the user on at what distance or for how long to hold the pressure sensor 112 near the eyelid. It is to be appreciated by those skilled in the art that the pressure sensor can generally be implemented by modifying existing techniques to require no direct eye contact. In order to use the measured eye pressure to estimate the actual eye pressure level, additional information is needed regarding the user operating the client device.
In some embodiments, the processor receives user attribute values from the user through the GUI. The user can supply values for one or more of those user attributes. The values of those user attributes for which the user does not supply values can be supplied by the user's eye doctor, attributed from the values of the other user attributes using known imputation techniques, and so on. The processor saves the user input for possible reuse and transmits the user input, together with the eye pressure measurement, to the server 102 for processing and possibly storage. Subsequently, the processor receives an estimated eye pressure level and other data from the server 102 and displays the received data to the user.
In some embodiments, the server 102 builds an engine for estimating an eye pressure level from a set of items, each comprising a list of user attribute values, the eye pressure measured by the pressure sensor, and the actual eye pressure level, and can estimate the actual eye pressure level. The set of items can be supplied by one or more eye doctors from their own medical practices through a specific user interface. The server can also gather the items from online sources. Using machine learning techniques, the server can build the engine using a subset of the set of items as the training set and a subset of the set of items as the test set. The engine takes a list of user attribute values and a measurement by the pressure sensor of the client device as input and produces an estimate of the actual pressure level as output. Examples of machine learning techniques include linear regression, decision trees, neural networks, etc.
In some embodiments, by accounting for the effect of the eyelid, the server can estimate the eye pressure level even if the pressure sensor takes the measure through the eyelid. Specifically, by training the engine over the set of user attributes that account for the effect of the eyelid, the server can determine the effect of the eyelid from data for other users having similar values in these user attributes and therefore estimate the normalized eye pressure level. It is also possible for the server to train the engine over the entire set of user attributes but only based on those items with normal values for the user attributes that do not account for the effect of the eyelid. By accounting for the transitory or seasonal effects of environmental or personal factors, the server can determine the actual eye pressure level and further focus on the health condition of the eyes. Specifically, by training the engine additionally over the set of user attributes that account for the transitory or seasonal effects (thus the full set), the server can determine those effects from data for other users having similar values in these user attributes and therefore estimate the actual eye pressure level. Therefore, the server can build a two-tier engine, where the first tier is aimed at eliminating the effect of an eyelid, and the second tier is aimed at reproducing the transitory and seasonal effects.
In some embodiments, in addition to an estimate of the actual eye pressure level and an estimate of the normalized eye pressure level, the server 102 generates related data to help the user better understand the computation or the significance of the estimates. The related data can indicate which factors are used in accounting for the presence of the eyelid or other transitory or seasonal effects and how they contribute to the computation of the estimates. For example, when the engine is implemented as a decision tree, the related data can include the attributes defining the final class to which the user's data belongs. The related data can indicate how the estimates compare to a known range for eye pressure levels, including whether they are considered extreme or how they compare to known ranges for specific groups of users. For example, the related data can indicate the percentile of the estimates with respect to the final class to which the user belongs, or the likelihood that the user's eyes suffer from a disease. When the user attributes include those corresponding to eye diseases, the way the user's values are clustered with the given items may directly indicate whether the estimates indicate eye diseases. In addition, the server 102 can rebuild the engine every time the set of items used to build the engine is updated or according to a specific schedule.
In some embodiments, some of the features supported by the server 102 can be additionally or alternatively supported by the client device 106, and vice versa. The system can also be implemented by a single apparatus.
In some embodiments, subsequently, the server can receive a determination request from the client device from time to time indicating the user's desire to determine his or her eye pressure levels. In step 310, the server receives such a determination request from the client device. The determination request contains values for the user attribute and eye pressure measured by the pressure sensor of the client device from a contact with the user's eyelid. In step 312, the server then applies the engine to the data contained in the determination request to determine the actual eye pressure level and the normalized eye pressure level. Before or as part of this application, the server may need to impute the values for some of the user attributes, based on values contained in the present determination request or previous determination requests submitted by the client device, in the basic data submitted by the client device, in the determination requests submitted by client devices of similar users, etc. The application also leads to additional information related to the actual and normalized eye pressure levels, such as how different factors or user attributes contribute to the determination of the user's eye pressure level, or how much confidence is assigned to the determination result. In step 314, the server interprets the estimates of the actual eye pressure level and the normalized eye pressure level. Specifically, the server compares the estimate of the actual or normalized eye pressure level against the general range for eye pressure levels and determines whether the estimates signal any abnormality in the eyes. In step 316, depending on the determination result, the server sends the estimates and the related information to appropriate destinations. For example, when the estimate of the normalized eye pressure level suddenly and significantly spikes or has risen to the level generally seen in glaucoma patients, the server not only sends the estimates and the related information to the client device of the user, but it also sends appropriate data to the devices of the user's eye doctor, emergency contact, or other relevant parties.
It is to be appreciated that the system disclosed in the present application can also be applied to other portions of a user's body to determine the user's blood pressure level. In that case, some of the user attributes discussed above continue to apply, and more can be added related to specific portions of the body.
The processor(s) 510 is/are the central processing unit (“CPU”) of the computer 500 and, thus, control the overall operation of the computer 500. In certain embodiments, the processor(s) 510 accomplish this by executing software or firmware stored in memory 520. The processor(s) 510 may be, or may include, one or more programmable general-purpose or special-purpose microprocessors, digital signal processors (“DSPs”), programmable controllers, application specific integrated circuits (“ASICs”), programmable logic devices (“PLDs”), field-programmable gate arrays (“FPGAs”), trusted platform modules (“TPMs”), or a combination of such or similar devices.
The memory 520 is or includes the main memory of the computer 500. The memory 520 represents any form of random access memory (“RAM”), read-only memory (“ROM”), flash memory, or the like, or a combination of such devices. In use, the memory 520 may contain code 570 containing instructions according to the techniques disclosed herein.
Also connected to the processor(s) 510 through the interconnect 530 are a network adapter 540 and a mass storage device 550. The network adapter 540 provides the computer 500 with the ability to communicate with remote devices over a network and may be, for example, an Ethernet adapter. The network adapter 540 may also provide the computer 500 with the ability to communicate with other computers.
The code 570 stored in memory 520 may be implemented as software and/or firmware to program the processor(s) 510 to carry out actions described above. In certain embodiments, such software or firmware may be initially provided to the computer 500 by downloading it from a remote system through the computer 500 (e.g., via network adapter 540).
The techniques introduced herein can be implemented by, for example, programmable circuitry (e.g., one or more microprocessors) programmed with software and/or firmware, or entirely in special-purpose hardwired circuitry, or in a combination of such forms. Software or firmware for use in implementing the techniques introduced here may be stored on a machine-readable storage medium and may be executed by one or more general-purpose or special-purpose programmable microprocessors.
In addition to the above-mentioned examples, various other modifications and alterations of the invention may be made without departing from the invention. Accordingly, the above disclosure is not to be considered as limiting, and the appended claims are to be interpreted as encompassing the true spirit and the entire scope of the invention.
The various embodiments are described above with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products. 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.
A “machine-readable storage medium”, as the term is used herein, includes any mechanism that can store information in a form accessible by a machine (a machine may be, for example, a computer, network device, cellular phone, personal digital assistant (PDA), manufacturing tool, or any device with one or more processors, etc.). For example, a machine-accessible storage medium includes recordable/non-recordable media (e.g., read-only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; etc.), etc.
These computer program instructions may also be stored in a computer-readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer, other programmable data processing apparatuses, 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 that 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 aforementioned flowchart and diagrams illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustrations, and combinations of blocks in the block diagrams and/or flowchart illustrations, 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.
Although various features of the invention may be described in the context of a single embodiment, the features may also be provided separately or in any suitable combination. Conversely, although the invention may be described herein in the context of separate embodiments for clarity, the invention may also be implemented in a single embodiment.
Reference in the specification to “some embodiments”, “an embodiment”, “one embodiment” or “other embodiments” means that a particular feature, structure, or characteristic described in connection with the embodiments is included in at least some embodiments, but not necessarily all embodiments, of the inventions.
It is to be understood that the phraseology and terminology employed herein is not to be construed as limiting and are for descriptive purposes only.
It is to be understood that the details set forth herein do not construe a limitation to an application of the invention.
Furthermore, it is to be understood that the invention can be carried out or practiced in various ways and that the invention can be implemented in embodiments other than the ones outlined in the description above.
It is to be understood that the terms “including”, “comprising”, “consisting” and grammatical variants thereof do not preclude the addition of one or more components, features, steps, or integers or groups thereof and that the terms are to be construed as specifying components, features, steps or integers.