Multi-feature patterns for determining lens parameters
The system uses image analysis to determine eyeglass lens parameters by comparing imaged and pre-imaged feature positions, addressing the challenge of precise image capture and enabling accurate lens parameter determination.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- 6 OVER 6 VISION LTD
- Filing Date
- 2025-10-05
- Publication Date
- 2026-04-23
AI Technical Summary
Existing methods for determining eyeglass lens parameters are challenging for the average user to implement, requiring precise hand movements and coordination to capture images through the lenses, making it difficult to accurately determine optical parameters.
A system and method that uses image analysis to determine lens parameters by capturing an image of a multi-feature pattern through and outside the lens, comparing imaged feature positions with pre-imaged positions, and calculating parameters based on distances and angles between features.
Enables quick, convenient, and accurate determination of lens parameters without the need for precise positioning, allowing users to easily capture images for lens parameter analysis.
Smart Images

Figure IB2025060038_23042026_PF_FP_ABST
Abstract
Description
SIX-P-03913-PCTMULTI-FEATURE PATTERNS FOR DETERMINING LENS PARAMETERSCROSS-REFERENCE TO RELATED APPLICATIONS
[0001] The present application claims the benefit of U.S. Provisional Application No. 63 / 707,589, filed 15 October 2024, the entire disclosure of which is hereby incorporated by reference.FIELD
[0002] The present disclosure relates generally to determining one or more optical parameters of a lens. More specifically, the present disclosure relates to determining optical parameters of a lens by analyzing an image taken through the lens.BACKGROUND
[0003] Eyeglasses and / or prescription eyeglasses can include lenses assembled in a frame.The lenses include one or more optical parameters or properties. The optical parameters of a lens may include, for example, a spherical power, a cylindrical power, and / or a cylindrical axis. The ability to quickly, conveniently, and accurately determine lens parameters is desired. For example, lens parameters may be required in order to duplicate eyeglasses as replacements or spares.
[0004] Existing methods of determining eyeglass parameters are challenging for the average user to implement. In some cases, the user needs to hold an image capturing device in one hand and the eyeglasses in the other hand, while keeping some objects inside the lenses area and other objects outside. Users may struggle to accomplish this maneuver. There is a constant need for improvements to systems and methods for determining lens parameters.-i-SIX-P-03913-PCTSUMMARY
[0005] According to some aspects of the present disclosure, a non-transitory storage medium having computer-executable instructions can be operable to, when executed by at least one computer processor, enable the at least one computer processor to cause a computing device to: process an image of an assortment of features, the assortment of features including a first displayed feature, a second displayed feature, and a third displayed feature; identify in the image: a first imaged feature corresponding to the first displayed feature; a second imaged feature corresponding to the second displayed feature; and a third imaged feature corresponding to the third displayed feature. At least one of the first imaged feature, the second imaged feature, or the third imaged feature can be captured through a lens. The computing device can compare imaged position data of the first imaged feature, the second imaged feature, and the third imaged feature with pre-imaged position data of the first displayed feature, the second displayed feature, and the third displayed feature. The computing device can determine one or more parameters of the lens based on a change in the imaged position data from the pre-imaged position data.
[0006] In some examples, the one or more parameters of the lens can be determined based on a first distance between the first imaged feature and the second imaged feature, a second distance between the first imaged feature and the third imaged feature, and a third distance between the second imaged feature and the third imaged feature.
[0007] In some examples, the first distance can be measured from a center of the first imaged feature and a center of the second imaged feature. The one or more parameters of the lens can be determined based on an angle between the first imaged feature, the second imaged feature, and the third imaged feature. The instructions, when executed, can cause the computing device to generate the assortment of features.
[0008] In some examples, at least one of the first imaged feature, the second imaged feature, or the third imaged feature is not captured through the lens. The first imaged feature can be identifiable based on neighboring features of the first imaged feature. The first imaged feature, the second imaged feature, and the third imaged feature can be identified through image analysis.SIX-P-03913-PCT
[0009] In some examples, the lens can be a multi-focal lens. The assortment of features can be randomly generated. The assortment of features can be customized by a user. The one or more parameters of the lens can include at least one of a spherical power, a cylindrical power, a cylindrical axis, a lens addition power, or a center of the lens.
[0010] According to some aspects, a system to measure one or more parameters of a lens can include an imaging device to capture an image of a plurality of objects, at least a portion of the image being captured through a lens. A processor can identify a first center position of a first object of the plurality of objects in the image, identify a second center position of a second object of the plurality of objects in the image, and determine one or more parameters of the lens based on the first center position and the second center position.
[0011] In some examples, a display can display the plurality of objects. Determining the one or more parameters of the lens can include comparing an imaged distance in the image that separates the first object and the second object against a predetermined distance. Each object of the plurality of objects can include at least one of a unique color, unique shape, or unique collection of adjacent objects.
[0012] According to some aspects, a method for determining one or more parameters of a lens can include receiving an image of a set of unique objects, a subset of the set of unique objects being captured through a lens, identifying the set of unique objects in the image to determine imaged position data of the set of unique objects, comparing the imaged position data with preimaged position data of the set of unique objects, and determining one or more parameters of the lens based on a difference between the imaged position data and the pre-imaged position data.
[0013] In some examples, the image can be a first image and the subset can be a first subset. The method can include receiving a second image of the set of unique objects, the second image including a second subset of the set of unique objects captured through the lens, the second subset being different than the first subset, and determining one or more parameters of the lens based on a difference between imaged position data of the second image and the pre-imaged position data.
[0014] In some examples, the method can include establishing the pre-imaged position data by comparing the set of unique objects against a reference object. The image can be analyzed- i -SIX-P-03913-PCT using image analysis to identify at least one of a color, shape, or size of each object in the set of unique objects.SIX-P-03913-PCTBRIEF DESCRIPTION OF THE DRAWINGS
[0015] The disclosure will be readily understood by the following detailed description in conjunction with the accompanying drawings, wherein like reference numerals designate like structural elements, and in which:
[0016] FIG. 1 shows a schematic block diagram of a computer system.
[0017] FIG. 2 shows an example system for determining lens parameters.
[0018] FIG. 3 shows a plurality of example object classes.
[0019] FIG. 3 A shows a plurality of example object classes arranged in an example multifeature pattern.
[0020] FIG. 4 shows an example multi-feature pattern.
[0021] FIG. 5 shows an image of the multi-feature pattern viewed through eyeglasses.
[0022] FIG. 6A shows a set of objects separated by predetermined distances.
[0023] FIG. 6B shows the set of objects of FIG. 6A separated by imaged distances.
[0024] FIG. 7A shows a set of objects forming a predetermined angle.
[0025] FIG. 7B shows the set of objects partially viewed through a lens and forming an imaged angle.
[0026] FIG. 8 shows an example calibration scheme.
[0027] FIG. 9 shows a process flow diagram of a method for determining lens parameters.
[0028] FIG. 10 shows a process flow diagram of a method for calibrating a display.SIX-P-03913-PCTDETAILED DESCRIPTION
[0030] Reference will now be made in detail to representative embodiments illustrated in the accompanying drawings. It should be understood that the following descriptions are not intended to limit the embodiments to one preferred embodiment. To the contrary, it is intended to cover alternatives, modifications, and equivalents as can be included within the spirit and scope of the described embodiments as defined by the appended claims.
[0031] The following disclosure relates generally to systems and methods for determining lens parameters based on image analysis of images taken through the subject lens. The systems and methods described herein can determine lens qualities, such as a prescription of a pair of eyeglasses. U.S. Patent No. 10,876,921, which is hereby incorporated by reference in its entirety, provides further information regarding such systems and methods.
[0032] The present disclosure details systems and methods for lens refraction and parameter analysis, based on detecting properties (e.g., positions) of a multi-feature pattern (MFP) of features imaged using an image-capturing device and properties of the same pre-imaged features. The present processes and methods permit to position the lens(es) and tilt them more freely in space while an image of features is captured, rather than needing to position the lenses at a predefined location or orientation relative to the features being imaged.
[0033] The MFP can be a non-periodic, random assortment of features e.g., including scattered shapes, colors, symbols, or objects). The pattern design displays target features imaged through the lens, and marker / anchor features imaged at the same time not through the lens to enable the application to extract lens parameters.
[0034] In some examples, one or more parameters of eyeglass lenses can be determined by positioning the eyeglasses in front of a display that is depicting an array of objects having unique positions, orientations, appearance classifications, etc. The array of objects may be referred to herein as a multi-feature pattern (MFP) or multi-feature scattered pattern (MFSP). As used herein, the term “pattern” does not carry the connotation of a predictably repeating design or sequence. Indeed the multi-feature patterns described herein can explicitly avoid repetition or predictability- i -SIX-P-03913-PCT in their arrangement. The MFP can include a plurality of objects that are unique in their color, their shape, their absolute location in the overall image space, or their location or orientation relative to a collection of other immediately adjacent or neighboring objects.
[0035] An image of the MFP can then be taken with at least a portion of the multi-feature pattern captured through the lens. The image taken by the user can then be used to determine parameters of the eyeglasses.
[0036] To do so, the image can be analyzed by a processor. The processor can be part of (e.g., located in) the imaging device, part of or in the device housing the display, or in another remotely connected computing device. As discussed herein, by comparing positions of the objects in the MFP as viewed through the lens against known or predetermined positions (i.e., pre-imaged properties) of the objects (e.g., the distance actually separating the objects as displayed), it is possible to determine lens characteristics.
[0037] As used herein, “display” or “displayed” can refer to electronically presented and / or physically presenting visual information. For example, the systems and methods described herein can be implemented using objects displayed on an electronic display, such as a liquid crystal display (LCD) or organic light emitting diode (OLED) computer screen, or can also be implemented using objects physically displayed, such as printed or projected on a paper or other sheet of material.
[0038] In some examples, a processor can cause a computing device to identify, in the image of the MFP, multiple imaged features. For example, a first imaged feature corresponding to the first displayed feature, a second imaged feature corresponding to the second displayed feature, and a third imaged feature corresponding to the third displayed feature. In some examples, the imaged features can be identifiable based on neighboring features surrounding or near to the imaged features. In other words, once a feature is identified e.g., using image analysis / object recognition algorithms), the neighboring features can be identified based on their position relative to the identified feature. Neighboring features can refer to features close in proximity to the relevant imaged feature. It should be understood that the same techniques and method described herein for identifying the imaged features or objects can be similarly implemented to identify the displayed features or objects.- 1 -SIX-P-03913-PCT
[0039] In some examples, a subset of imaged features can be captured through a lens, while another, different subset of imaged features are not captured through the lens (i.e., outside of the surface area of subset of the features of the MFP viewed through the lens). A processor can compare imaged position data of the imaged features with predetermined position data of the displayed features. The predetermined position data can also be referred to as pre-imaged data and refers to information related to the features as they are displayed to the user.
[0040] In some examples, the processor can determine one or more parameters of the lens based on a change in the imaged position data from the predetermined (pre-imaged) position data. As used herein, parameters of the lens can refer to any number of optical qualities or characteristics of the lens. The parameters can include at least one of a spherical power, a cylindrical power, a cylindrical axis, or a center of the lens.
[0041] The parameters of the lens can be determined by comparing distances between imaged features. The distances can be measured from the centers of the imaged features. For example, one or more parameters of the lens can be determined based on a first distance between the first imaged feature and the second imaged feature, a second distance between the first imaged feature and the third imaged feature, and a third distance between the second imaged feature and the third imaged feature. The first distance can be a distance between a center of the first imaged feature and a center of the second imaged feature. The center of an imaged feature can be a center point or center position, such as a center of mass or geometric centroid of the imaged feature.
[0042] In some examples, the parameters of the lens can be determined by analyzing a change in relative angles between the imaged features. For example, one or more parameters of the lens can be determined based on an angle between the first imaged feature, the second imaged feature, and the third imaged feature.
[0043] These and other embodiments are discussed below with reference to FIGS. 1 - 10. However, those skilled in the art will readily appreciate that the detailed description given herein with respect to these figures is for explanatory purposes only and should not be construed as limiting. Furthermore, as used herein, a system, a method, an article, a component, a feature, or a sub-feature comprising at least one of a first option, a second option, or a third option should be- i -SIX-P-03913-PCT understood as referring to a system, a method, an article, a component, a feature, or a sub-feature that can include one of each listed option (e.g., only one of the first option, only one of the second option, or only one of the third option), multiple of a single listed option e.g., two or more of the first option), two options simultaneously e.g., one of the first option and one of the second option), or combination thereof (e.g., two of the first option and one of the second option).
[0044] FIG. 1 shows a high-level block diagram of a computer system 100 that can be used to implement embodiments of the present disclosure. In various embodiments, the computer system 100 can comprise various sets and subsets of the components shown in FIG. 1. Thus, FIG. 1 shows a variety of components that can be included in various combinations and subsets based on the operations and functions performed by the system 100 in different embodiments. For example, the computer system 100 can be part of the system 200 described below in connection with FIG. 2. More specifically, the computer system 100 can be part of the electronic device 204 or the mobile device 208. It is noted that, when described or recited herein, the use of the articles such as “a” or “an” is not considered to be limiting to only one, but instead is intended to mean one or more unless otherwise specifically noted herein.
[0045] The computer system 100 can comprise a central processing unit (CPU) or processor 102 connected via a bus 104 for electrical communication to a memory device 106, a power source 108, an electronic storage device 110, a network interface 112, an input device adapter 116, and an output device adapter 120. For example, one or more of these components can be connected to each other via a substrate (e.g., a printed circuit board or other substrate) supporting the bus 104 and other electrical connectors providing electrical communication between the components. The bus 104 can comprise a communication mechanism for communicating information between parts of the system 100.
[0046] The processor 102 can be a microprocessor or similar device configured to receive and execute a set of instructions 124 stored by the memory 106. The memory 106 can be referred to as main memory, such as random access memory (RAM) or another dynamic electronic storage device for storing information and instructions to be executed by the processor 102. The memory 106 can also be used for storing temporary variables or other intermediate information- i -SIX-P-03913-PCT during execution of instructions executed by the processor 102. The processor 102 can include one or more processors or controllers, and a touch controller or similar sensor or I / O interface used for controlling and receiving signals. The power source 108 can comprise a power supply capable of providing power to the processor 102 and other components connected to the bus 104, such as a connection to an electrical utility grid or a battery system.
[0047] The storage device 110 can comprise read-only memory (ROM) or another type of static storage device coupled to the bus 104 for storing static or long-term (i.e., non-dynamic) information and instructions for the processor 102. For example, the storage device 110 can comprise a magnetic or optical disk (e.g., hard disk drive (HDD)), solid state memory (e.g., a solid state disk (SSD)), or a comparable device.
[0048] The instructions 124 can comprise information for executing processes and methods using components of the system 100. Such processes and methods can include, for example, the methods described in connection with other embodiments elsewhere herein, including, for example, the methods and processes described in connection with FIGS. 2, 9, and 10.
[0049] The network interface 112 can comprise an adapter for connecting the system 100 to an external device via a wired or wireless connection. For example, the network interface 112 can provide a connection to a computer network 126 such as a cellular network, the Internet, a local area network (LAN), a separate device capable of wireless communication with the network interface 112, other external devices or network locations, and combinations thereof. In one example embodiment, the network interface 112 is a wireless networking adapter configured to connect via WLFI(R), BLUETOOTH(R), BLE, Bluetooth mesh, or a related wireless communications protocol to another device having interface capability using the same protocol. In some embodiments, a network device or set of network devices in the network 126 can be considered part of the system 100. In some cases, a network device can be considered connected to, but not a part of, the system 100.
[0050] The input device adapter 116 can be configured to provide the system 100 with connectivity to various input devices such as, for example, a touch input device, a keyboard or other peripheral input device, one or more sensors, related devices, and combinations thereof.SIX-P-03913-PCT
[0051] The output device adapter 120 can be configured to provide the system 100 with the ability to output information to a user, such as by providing visual output using one or more displays 132, by providing audible output using one or more speakers 135, or providing haptic feedback sensed by touch via one or more haptic feedback devices 137. Other output devices can also be used. The processor 102 can be configured to control the output device adapter 120 to provide information to a user via the output devices connected to the adapter 120. In some embodiments, the processor 102 can be used to determine one or more parameters of a lens by processing an image of a plurality of objects being displayed on the display 132.
[0052] The sensor 128 can be an image capturing device, such as a camera. The sensor 128 can be a camera or similar imaging sensor, and can be implemented in a smartphone, mobile device, tablet, or any other personal electronic device. The sensor 128 can be communicatively coupled to components of the system 100 via a wired or wireless communications link. The communications link can be a physical connection, such as an electrical wire, or can be a wireless connection, such as BLUETOOTH(R), Wi-Fi, or a similar wireless communications system.
[0053] In some embodiments, the sensor 128 can be used to capture an image of the display 132. For example, the sensor 128 can capture an image of a plurality of objects or image features displayed by the display 132 while a lens is positioned between the sensor 128 and the display 132. This may allow the system 100 to determine one or more parameters of a lens positioned between the sensor 128 and the display 132.
[0054] Any of the features, components, and / or parts, including the arrangements and configurations thereof shown in FIG. 1 can be included, either alone or in any combination, in any of the other examples of devices, features, components, and parts shown in the other figures described herein. Likewise, any of the features, components, and / or parts, including the arrangements and configurations thereof shown and described with reference to the other figures can be included, either alone or in any combination, in the example of the devices, features, components, and parts shown in FIG. 1. Example systems and methods are discussed in more detail below with respect to FIGS. 2-10.SIX-P-03913-PCT
[0055] Any of the systems, processes, features, components, and / or parts, including the arrangements and configurations thereof shown in FIG. 1 can be included, either alone or in any combination, in any of the other examples of systems, processes, devices, features, components, and parts shown in the other figures described herein. Likewise, any of the system, processes, features, components, and / or parts, including the arrangements and configurations thereof shown and described with reference to the other figures can be included, either alone or in any combination, in the example of the systems, processes, devices, features, components, and parts shown in FIG. 1.
[0056] FIG. 2 shows an example system 200 for determining one or more parameters of lenses 212a, 212b (collectively referred to as “lenses 212”) of eyeglasses 210. According to some embodiments, the system 200 can include a mobile device 208 and an electronic device 204. The mobile device 208 can be a personal electronic device such as a smartphone. The mobile device208 can include an image capturing device or camera 209. The electronic device 204 can include a screen or display 206 on which images can be displayed (not shown in FIG. 2).
[0057] In an example operation, a user can be instructed (e.g., by instructions provided on the display 206 or via the mobile device 208) to use the camera 209 to capture an image of the display 206 through the lenses 212 of the eyeglasses 210. In other words, the user can be instructed to position the eyeglasses 210 in a line of sight of the camera 209 between the camera209 and the display 206 such that at least some of the light paths 216a, 216b travelling from the display 206 to the camera 209 pass through the lenses 212a, 212b, respectively. In some examples, the user can be instructed to position the eyeglasses 210 at an approximate distance from the display 206. For example, the user might be instructed to position the eyeglasses 210 roughly 30 centimeters from the display 206. The user can be instructed to position the camera 209 a certain distance from the display 206 and / or from the eyeglasses 210 when capturing the image. In some embodiments, the light paths 216 may be indirect, such as by reflecting from a mirror or other reflective object that grants visibility of the display 206 to the camera 209 without the camera 209 necessarily directly facing the display 206.
[0058] In some embodiments, the user is not required to precisely position the eyeglasses 210, camera 209, and display 206 relative to one another. Using the systems and methods described in greater detail below, the user is provided significant freedom with regard to the relative positionsSIX-P-03913-PCT of the eyeglasses 210 and the camera 209 when capturing an image of the display 206. Further, the user is not obligated to capture specific target features or objects displayed on the display 206, thereby making the capture process easier, more reliable, and less prone to error.
[0059] Any of the systems, processes, features, components, and / or parts, including the arrangements and configurations thereof shown in FIG. 2 can be included, either alone or in any combination, in any of the other examples of systems, processes, devices, features, components, and parts shown in the other figures described herein. Likewise, any of the system, processes, features, components, and / or parts, including the arrangements and configurations thereof shown and described with reference to the other figures can be included, either alone or in any combination, in the example of the systems, processes, devices, features, components, and parts shown in FIG. 2.
[0060] FIG. 3 shows a plurality of example object classes that can be used to populate an MFP. As used herein, a “class” can refer to an object or feature having a unique shape and / or color combination. For example, a green triangle and a green square can each represent a different class despite being the same color. Likewise, a green triangle and a red triangle can each represent different classes despite being the same shape. A star, hand shape, animal shape, dots, numeral, or letter within a circle or other shape can likewise represent different classes. See, e.g., FIG. 3A. The assortment of objects in multi-feature patterns, as described herein, can include several classes, with each class containing one or more individual objects.
[0061] The objects of the MFP can be identified using any suitable object detection or image analysis. In some embodiments, the object density of the MFP is high enough to enable sampling a majority of the optical surface of the lens. As the number or density of classes within the captured portions of the MFP increases, the ability of the system to pair pre-imaged objects to imaged objects in the MFP may also increase. However, a high density of classes within the MFP can increase computational demands on the processor and can increase computing time. Thus, a trade-off may exist between pairing accuracy (i.e., accuracy of determining that certain objects in an image are paired with the same objects in a known pattern) from the number of objects classes in the MFP / image and the complexity of the pairing algorithms. However, in some examples, the performance of the object detection algorithm is not affected by the numberSIX-P-03913-PCT of classes. Advantageously, some object detection algorithms, such as YOLO can enable faster analysis of the imaged pattern due to high density of classes.
[0062] There may be trade-offs between the number of shape classes and the complexity of the pairing algorithms. The pairing algorithm can become more accurate as more classes are added, and vice versa. There is no minimum number of classes. In some examples, a single class can be used with developed and complex matching algorithms (e.g., based on the positioning or orientation of the various individual instances of the single class). In some examples, the MFP can include approximately 70 classes. In some examples, the pattern can include more than 80 classes. In some examples, the pattern can include fewer than 65 classes. In some examples, the pattern can include 4 classes. In some examples, the pattern can include 3 classes. It will be understood from the present disclosure that a higher number of classes can increase the complexity of pairing / identifying the objects, while using a low number of classes increases the complexity of accurately determining lens parameters.
[0063] In order for a processor to accurately analyze the image of the pattern, the pattern may need to include a minimum number of object classes with few repetitions. In some examples, the pattern can be configured to have no repeating class (i.e., only one object having a specific shape and color in the MFP). In some examples, the pattern can be randomly generated using assigned or predetermined classes.
[0064] FIG. 3 illustrates non-limiting examples of classes that can be used in the pattern. For example, rows 301, 303, 305, 307, 309, and 311 illustrate a variety of shapes that can be used to populate an MFP. It should be noted that the shapes are not limited to simple, or even continuous shapes, such as those shown in rows 301, 303, and 305. For example, row 309 illustrates several classes including a non-continuous shape having multiple e.g., three) segmented bars. Further, the shapes of the classes can form known patterns, such as letters, words, numbers, symbols, etc. For example, row 307 illustrates multiple classes composed on a number. The shape of an object can be depict an item or animal, as shown in row 311. In some examples, the object can comprise a logo, such as a company trademark. In some examples, an object may simply be rotated to define a new class (e.g., a square rotated to be a diamond shape). As shown in FIG. 3A, objects 330 of an MFP can be surrounded by or contained within other objects, such asSIX-P-03913-PCT various objects, words, or symbols that are all contained with a shape (e.g., a circle), as further described below.
[0065] In some examples, the MFP can include randomly scattered words or ordered words. The words can be in any language, or can have no meaning at all and simply be random grouping of letters. In some examples, a newspaper, book, online article or other arrangement of words can be used as the MFP. Words or the letters that form the words can be used to define the classes.
[0066] The shapes depicted in FIGS. 3 and 3 A are non-limiting. Other shapes not depicted herein can be used in the pattern. In some examples, the shapes of the objects can be specifically selected based on their ability to be quickly and easily identified using object or shape detection analyses and algorithms. In some examples, the shapes can be customized and / or chosen by the user. In some examples, the shapes of the objects can be randomly generated using random generation or artificial intelligence algorithms known in the art.
[0067] Columns 313, 315, 317, and 319 represent different colors e.g., wavelengths, hues, or saturation intensities) that can be associated with the different classes of the objects. For example, each of the shapes in column 313 can be a first color (e.g., red). Thus, any object that belongs to a certain row (i.e., shape) and column (i.e., color) will be considered to be in that class. Columns 321 and 323 represent different textured visual patterns or fills that can occupy an area of the shape. As with colors, the fill patterns can be used to assign objects into unique classes. In some examples, the same object detection analysis that is used to identify an object’s shape can be used to identify a fill pattern of an object. Furthermore, classes may be defined by the scale or orientation of a shape of the object, such as by the direction toward which the bill of the duck shape e.g., in row 311) points or by the size of the duck relative to the other shapes (or other ducks).
[0068] Thus, as used herein, the objects are “unique.” For example, each may have a unique combination of shape, color, fill, position, and / or relation to other objects. Using the unique classes of objects, the pattern can be populated such that any given object can be identified using any known image analysis, object detection, edge detection, etc.
[0069] In an embodiment in which a class includes multiple different substantially similar or identical class objects (i.e, objects having the same shape and color), the system can differentiateSIX-P-03913-PCT between the objects by reference to the object and its neighboring objects (that are next to or closest to the class objects) in order to identify the class objects. Thus, a combination of detected objects can collectively be detected as a combined object or grouped object. For example, if the pattern includes two green circles, but one of the green circles is adjacent a red square, while the other green circle is adjacent a blue triangle, the processor can rely on the information of the neighboring objects to determine which green circle is being detected in the pattern when an image of the pattern is captured. In this manner, sets of nearby objects can be referred to as an “object” as used herein in addition to other objects (e.g., row 309) described above.
[0070] Any of the systems, processes, features, components, and / or parts, including the arrangements and configurations thereof shown in FIG. 3 can be included, either alone or in any combination, in any of the other examples of systems, processes, devices, features, components, and parts shown in the other figures described herein. Likewise, any of the system, processes, features, components, and / or parts, including the arrangements and configurations thereof shown and described with reference to the other figures can be included, either alone or in any combination, in the example of the systems, processes, devices, features, components, and parts shown in FIG. 3.
[0071] FIG. 3A illustrates an additional set of objects 330 that may be presented as part of a multi-feature pattern (MFP). The objects 330 may each have a shape or set of shapes surrounded by or contained within a shape e.g., a circle) that is consistent among a subset, or all, of the objects 330. Using shape-bounded e.g., circle-bounded) objects can be beneficial when determining a center point location of a bounding box of the MFP containing the objects 330.For example, using circular objects can help ensure that the center point location of the MFP is invariant to rotation of the MFP (e.g., when it is displayed on a display screen).
[0072] When the objects 330 are assembled into an MFP, they may be shown on a background that contrasts with the outer contour color or brightness of the objects 330. This may beneficially improve the accuracy of the object detection algorithms. Contrasting objects and backgrounds can also help to ease detection under blur effects (e.g., when the test subject views the pattern without vision correction).
[0073] Colors for the objects 320, 330 can be selected to reduce chromatic aberrations of the MFP in which they are shown. For example, the objects 320, 330 can be at least partially greenSIX-P-03913-PCT rather than blue to help reduce the chance of chromatic aberrations interfering with the test subject’s perception of the shapes and positioning of the objects 320, 330. Different shades or saturation of the same color can be used to help enhance this effect while still preserving readability of the objects.
[0074] The individual objects 320, 330 may be assembled into the MFP in a known sequence to form “words” or “clusters” of objects that may be identified and used to complete the pairing process. In some embodiments, the objects forming a “word” or “cluster” of objects have the same size to help in pairing as well. For example, the top line of the objects 330 of FIG. 3A can have a known sequence to help complete the pairing process when an image of the objects 330 is obtained after showing the objects 330 on a display.
[0075] FIG. 4 shows an example display 406 depicting a multi-feature pattern (MFP) 407 that includes a plurality of individual objects 420. The objects 420 can be substantially similar to, including some or all of the features of, the objects described above, such as the objects described in FIG. 3.
[0076] The objects 420 can be referred to as displayed objects 420 because they represent the classes in the positions, shapes, colors, orientations, and other properties as they are actually displayed on the display 406. The objects 420 of the pattern depicted on the display 406 can include known (i.e., predetermined or predefined) visual characteristics, such as shape, size, color, orientation, and position (e.g., position relative to other objects or position relative to an origin point e.g., a corner or edges of the display 406)). In some examples, the visual characteristics of the objects 420 of the display 406 can be detected by performing an image analysis on the pattern. In some examples, the visual characteristics of the objects 420 of the display 406 can be assigned, input, or retrieved from a predetermined database of information about the pattern 407.
[0077] In some examples, all of the objects 420 in an MFP 407 can be referred to as a set of objects 420. The MFP 407 can include a subset 600a of the set of objects 420. As described in greater detail in connection with FIG. 5, the subset 600a of objects 420 can be imaged through a lens in order to determine lens parameters of the lens through which the image is obtained. The subset 600a imaged through the lens to determine lens parameters can be located at any position on the display 406 while still enabling the image of the subset 600a to be used for determiningSIX-P-03913-PCT lens parameters. Further, the subset 600a imaged through the lens to determine lens parameters can include a group of any of the objects 420 and can be different each time the pattern 407 is imaged via a different lens.
[0078] Any of the systems, processes, features, components, and / or parts, including the arrangements and configurations thereof shown in FIG. 4 can be included, either alone or in any combination, in any of the other examples of systems, processes, devices, features, components, and parts shown in the other figures described herein. Likewise, any of the system, processes, features, components, and / or parts, including the arrangements and configurations thereof shown and described with reference to the other figures can be included, either alone or in any combination, in the example of the systems, processes, devices, features, components, and parts shown in FIG. 4.
[0079] FIG. 5 shows an example image (e.g., a digital- or film-based photograph or video still) captured of the display 406 of FIG. 4. The image can be captured using an image capturing device, such as device 208 described in connection with FIG. 2. The image can be captured after the user has positioned a pair of eyeglasses 510 between the image capturing device and the display 406 displaying the MFP 407.
[0080] In order to calculate and detect physical parameters of the lens, the original, nonrefracted coordinates of each refracted object 420 may be determined. For example, each object 420 may be assigned a set of position coordinates relative to a reference point, such as a reference point relative to a corner of the display or relative to an origin point on the display e.g., its center point). The position of the object 420 may be defined as its area center point or centroid relative to the reference point on the display. The coordinates may be determined as a number of pixels e.g., the number of pixels, in Cartesian (e.g., x- and y-directions) or radial coordinates (e.g., radius length at a predetermined angle from an origin axis) between the reference point and the centroid of the object. In some embodiments, the position of an object may be determined using absolute distances, such as the number of inches or millimeters, instead of, or in addition to, a pixel distance. For example, a position of the object relative to a reference point can be determined as coordinates of the vertical (e.g., y-axis) and horizontal (e.g., x-axis) distance between the points. Further, in some embodiments, the reference point may be a point on or within at least one object of the MFP. Thus, the position of an object may be determinedSIX-P-03913-PCT as a relative position between two or more objects in the MFP. See also FIG. 8 and its related descriptions of calibration methods. Once every object 420 in the image is identified and its coordinates are determined, the algorithm can pair every imaged object to its corresponding original displayed object, as explained in further detail below.
[0081] The image represented in FIG. 5 can include a pair of eyeglasses 510 having two lenses 512a, 512b (collectively referred to as lenses 512). The image can include imaged features or imaged objects 520. The imaged objects 520 can correspond to or match the displayed objects 420 captured in the image. As described above with regards to FIG. 2, the user can position the eyeglasses 510 such that at least some of the objects 420 are captured through the lenses 512.
[0082] The image of the display 406 can include objects 520 imaged through both lenses 512a and 512b in the same image or through only a single lens 512a or 512b of the eyeglasses 510. For example, in some embodiments, the display 406 may be too small for the image to include objects 520 as shown through both lenses 512a, 512b simultaneously. Thus, the image of the display 406 can include objects 520 (e.g., subset 600b) visible through one lens 512b to determine properties of that lens 512b, and a second, separate image of the display 406 can be captured to include objects 520 (e.g., subset 600b) visible through the other lens 512a to determine properties of that lens 512a.
[0083] As shown in FIG. 5, portions of the MFP 407 are refracted through the lenses 512, thereby deforming the original pattern. The deformation of the refracted portions of the MFP 407 can be a deterministic transformation that is determined by the sphere, cylinder, axis, color, and other properties of each lens 512, the distance between the display 406 and the image capturing device, and the relative angle between each of the lenses 512 / frames 510 and the display 406. Accordingly, the appearance of the objects in the MFP 407 is altered in the image captured via the lenses 512. From the transformed objects 520, the parameters of the lenses 512 can be calculated based on the positions and other characteristics of the imaged objects as they appear through the lenses 512 and as they appear in the image without having been captured through the lenses 512 e.g., objects 520 surrounding the frames 510).
[0084] For example, an imaged subset 600b corresponding to the subset 600a shown in FIG. 4 may be imaged through lens 512b. The imaged subset 600b can include multiple imaged features. As described in greater detail below, the imaged subset 600b can be compared againstSIX-P-03913-PCT the displayed or pre-imaged subset 600a in order to determine one or more parameters of the lens 512b. It will be understood that the dimensions and distances of the objects 420 in the imaged subset 600b can be different than those of the pre-imaged subset 600a because the imaged subset 600b is captured through the lens 512b. Such changes are discussed in greater detail below with reference to FIGS. 6A-7B. In some examples, as shown in FIG. 5, one or more objects 520 are not captured through the lenses 512.
[0085] By comparing the displayed subset 600a and the imaged subset 600b, one or more optical parameters of the lenses 512 can be determined. Example optical parameters can include a spherical power, a cylindrical power and / or a cylindrical axis of the lenses 512. In some examples, a magnification may be determined based on a comparison between dimensions of an objects not imaged through a lens, and an object imaged through the lens.
[0086] In some examples, a center of a lens can be determined by analyzing the image shown in FIG. 5. The center can be determined, for example, based on an axis of a lens, the locations or of displayed objects 420, the locations or coordinates imaged objects 520, and a magnification of the lens, for example, for a primary axis and / or a secondary axis of the lens.
[0087] In some examples, the methods and processes described herein can determine a relative angle between a plane of the lenses 512 and the plane of the camera and / or display 406. In some examples, the relative angle may be determined for example, based on one or more calculated or provided optical parameters and in view of the appearance and location of the imaged objects viewed within and surrounding the lenses 512.
[0088] Once the initially displayed objects 420 and the imaged objects 520 have been detected and paired, as explained in further detail below, mathematical regression methods can be used to reconstruct the lens parameters. In operation, upon receiving and / or determining the distances between imaged objects and original objects, a processor can compare the distances to determine a change. If a change is present, the processor can determine what lens parameters would cause the detected change in the distances (e.g., the distortion in the image caused by the lenses and by the positioning of the image-capturing device relative to the display). In some examples, the processor can draw on a bank of stored preprogrammed parameters that match the change in distances. In other words, the processor can match the change in distance between objects to a known lens parameter predetermined to cause such a change in distance. ForSIX-P-03913-PCT example, a database of different lenses (e.g., lenses with common prescriptions or other properties that are predetermined) may be established. The processor can then reference that database to match an observed / measured distortion caused by a newly tested lens to the properties of a predetermined lens with similar distortion properties.
[0089] The objects in the image can be detected and classified into their classes e.g., as discussed in connection with FIG. 3) by a processor processing the image using object recognition algorithms including, for example, deep learning algorithms such as YOLO or SSD. After the objects are identified and classified, a pairing algorithm can be performed to match the imaged e.g., distorted) objects to the originally displayed objects (e.g., the objects as they are expected to appear without distortion). Algorithms such as nearest neighbors, graph calculations, and related computational methods can be used, as will be understood by those having skill in the art. For some embodiments of algorithms, the pattern can be optimized to include encoded “words” or collections of objects that are viewed or detected as a group. For example, groups of each objects can each be detected as “letters” of a “word.” By grouping the objects together in this manner, the pairing of imaged “words” to original “words” of objects can be performed more efficiently or accurately as compared to detecting single objects.
[0090] The detection and / or pairing methods described herein can be performed with a synthetically generated pattern, and it can also be done with text as the pattern. Given an image of text, OCR (optical character recognition) can be used in order to detect each character (letters, digits, symbols, glyphs, and / or punctuation marks) in the image. These characters can be used as the objects, and they can be detected and compared in the same manner as other types of objects. The pairing algorithm can then use not only the class of the character (i.e., what letter is the object) but can use the word of which the character is a part of, in order to pair more accurately and efficiently between letters in the original and transformed image.
[0091] In order to determine a magnification parameter of the lens through which objects are imaged, in some embodiments, a regression can be performed to the magnification transformation equation parameters using least-squares and random sample consensus (RANSAC). The magnification equation of a lens for a single 2-dimensional point is shown below (Equation 1), where (x, y) is the original shape’s center of mass point, (x, y) is the refracted magnified shape’s center of mass point, the short axis magnification is Ms, the longSIX-P-03913-PCT axis magnification is Mi, the axis rotation angle is 0, the x-coordinate of the lens center is C, and y-coordinates of the lens center is Cy.(1)
[0092] The regression problem is an optimization of Equation 1 parameters (e.g., magnifications, rotation and lens center coordinates) over the pairs of data points before and after the lens refraction. In order to solve this problem, the least squares method can be used, which minimizes the error of Equation 1 refracted data points calculations results to the real value.
[0093] After calculating the lens magnification parameters, and by using additional calculation of the distance between the image capturing device and the lens, the final lens parameters (e.g., prescription parameters) can be calculated using Equation 2, wherein M is the magnification of the long or short axis, P is the power in Diopter of the short or the long axis (in respect to the magnification), Dp is the image capturing device’s distance to the display, and Dgis the glasses’ or lens’s distance to the display. p > M-l Dp(2) M Dg(Dp~Dg)
[0094] The lens power can then be calculated using a single lens parameter calculation using Equation 3, wherein P / is the power of the long axis and Psis the power of the short axis of the lens being tested.SIX-P-03913-PCT
[0095] In some examples, lens parameters can be found through regression using ray tracing. This approach models lens function under certain assumptions. Roughly speaking, lens parameters (e.g., prescription) may be recovered by tracking multiple incoming rays that come from the image capturing device’s e.g., the camera's) origin through the lens and observing how they “bend” towards known three-dimensional (3D) targets.
[0096] The regression using ray tracing approach can model lens function under the following assumptions: a thin lens e.g., a lens with a thickness that is negligible compared to the radii of curvature, such as a lens having a standard thickness for a pair of eyeglasses), a known glasses distance (Dg) to the display, a known field of view of the image-capturing device, a width of the lens, a height of the lens, an approximately Plano setting (i.e., the lens is orthogonal to the optical axis), and a paraxial approximation (i.e., all ray directions are at a small angle 0 relative to the optical axis. Under these assumptions, the lens function can be modeled using the ray tracing matrix of Equation 4.
[0097] The lens parameters may be extracted using singular value decomposition (SVD) when 40xis 0out— 0jnin the X-axis (with 0jnbeing the angle of the incoming ray relative to the optical axis before passing through the lens, and 0outbeing the angle of the ray relative to the optical axis after passing through the lens), 40yis 0out— 0jnin the Y-axis, $ is the Axis of the lens, Msis the magnification of the lens along the X-axis, Myis the magnification of the lens along the Y-axis, xcis the lens center in the X-axis, and ycis the lens center in the Y-axis.
[0098] In some examples, using a set of paired matching points, the sphere power and optical center, and the cylinder power and axis can be estimated. In some examples, trajectories created by the translation of all the matching points of the objects from the target image (the displayed MFP) to the damaged / distorted image (the imaged MFP) can be used to find the optical lens center. The center can be calculated by calculating each pair of trajectories’ cross point (using Equations 5, 6, and 7) and calculating the average of all the cross points (using Equations 8 and 9). Consider two trajectories (i) and (j) described by two lines equations y - a, x = bLand y - aj- 3 -SIX-P-03913-PCT x + bj. The crossing point of these two lines which is the center of all trajectories can be calculated by the following equations:(5) a,x + b — a. X + bjThe crossing point of these trajectories can be calculated and expressed by the following:(6)( ) ^ =a^+ btAn average over all the crossing points, assumed distributed evenly and effected by random noise, will produce a good estimation for the center of magnification, described by:
[0099] To reduce measurement errors, pairs of trajectories can be used with relative angles greater than a (e.g., a = 10 degrees) or calculate the average using noise reduction such as random sample consensus (RANSAC) or other optimized average.
[0100] In some examples, the lens power can be calculated using single points translation. Each matching points translation e.g., step and angle) can be used to calculate the magnification at a specific meridian. The magnification can be translated into power using the lens distance and the point distance. Then the data can be fit to the power in the meridian function to get the lens power.
[0101] For each point, the distance of an object from the lens center (in displayed and imaged MFPs) can be calculated. Then the ratio e.g., the magnification) can be calculated. For each point, the relative angle and power can be calculated to obtain lens parameters.- M -SIX-P-03913-PCT
[0102] In some examples, the lens power can be calculated using a pair of points. For each pair of matching points distance, the distance between each pair of points at the damaged image and the target image can be compared, and used to calculate the magnification at a specific meridian. The magnification can be translated into power using lens distance the point distance. The data can then be fit to the power in meridian function to get the lens power.
[0103] In some examples, since there is a strong dependence in the distances between the lens and display, the image-capturing device and the lens, or the image capturing device and the display, only pairs of points in which the image capturing device’s distance is about the same, and the distance between the points is not too small are used. In some examples, the regression problems can be solved using deep learning algorithms.
[0104] Any of the systems, processes, features, components, and / or parts, including the arrangements and configurations thereof shown in FIG. 5 can be included, either alone or in any combination, in any of the other examples of systems, processes, devices, features, components, and parts shown in the other figures described herein. Likewise, any of the system, processes, features, components, and / or parts, including the arrangements and configurations thereof shown and described with reference to the other figures can be included, either alone or in any combination, in the example of the systems, processes, devices, features, components, and parts shown in FIG. 5.
[0105] FIG. 6A shows a selection of objects of the subset 600a of objects 620 as displayed to a user (e.g., before they are modified or distorted by a lens). The displayed subset 600a can include a first object 620a, a second object 620b, and a third object 620c). As presented to the user, the objects 620 can be separated from each other according to predetermined, known, or determinable distances. In the embodiment illustrated in FIG. 6A, the first object 620a and the second object 620b are separated by a distance di, the first object 620a and third object 620c are separated by a distance d2, and the second object 620b and third object 620c are separated by a distance da. In some embodiments, the distances separating objects 620 within a displayed pattern e.g., 407) can be referred to as displayed distances, predetermined distances, assigned distances, true distances, actual distances or any other suitable wording to convey that the distances are those between the objects as displayed to the user (i.e., without being imaged through a lens).- S -SIX-P-03913-PCT
[0106] The distances separating the objects can be measured from a variety of reference points on the objects. In some examples, the distances are measured between center points of each of the objects (e.g., an area center or centroid). In some examples, the distances between objects can be measured from an edge or external-most point of the objects. In some examples, the distance between objects can be measured as the minimum distance between the objects (i.e., the distance between the closest points on the edges of the respective objects). In some examples, the distance between the objects can be measured as the maximum distance between outer edges of the objects (i.e., the respective furthest points between each object). A distance separating two objects within a displayed pattern can be assigned and stored in a database or other data store e.g., using an electronic memory device). In some examples, the distance separating two objects within a displayed pattern can be determined, for example, using any suitable object detection and measurement tool.
[0107] FIG. 6B shows the subset 600b of objects 620 as they appear in an image captured through a lens. In other words, the imaged subset 600b represents the displayed subset 600a of FIG. 6A after having been imaged through a lens e.g., lens 512b of FIG. 5). Because the lens can have certain optical properties that affect light passing through the lens, the imaged subset of objects 600b can differ from the displayed subset of objects 600a due to refraction. Importantly, changes in the imaged subset 600b can be used to determine one or more lens parameters by comparing the imaged subset 600b against the displayed subset 600a. Although three objects are shown in the embodiments of FIGS. 6A and 6B, the methods described herein can also be used with only two objects to determine lens parameters. In some embodiments, pre- and post-lens- distortion distances between more than three objects can be compared to each other. In some embodiments, pre- and post-lens-distortion distances between two or three points on (or portions of) a single object can be compared to each other.
[0108] The imaged subset 600b can include a first imaged feature or first object 621a, a second imaged feature or second object 621b, and a third imaged feature or third object 621c (collectively referred to as “objects 621” or “imaged objects 621”). As imaged by the user through a lens, the imaged subset 600b of objects 621 can be separated from each other by determinable distances. The distances separating the imaged objects 621 can be potentially different than the distances separating the displayed objects 620 of the originally displayed subset 600a. In the embodiment illustrated in FIG. 6B, as imaged through the lens, the firstSIX-P-03913-PCT object 621a and the second object 621b are separated by a distance di’, the first object 621a and third object 621c are separated by a distance d2’, and the second object 621b and third object 621c are separated by a distance ds’. The distances separating objects in an image captured by the user can be referred to as imaged distances, modified distances, lens-distorted distances, or any other suitable terminology to convey that the distances are those between the objects as captured in the image by the image-capturing device (whether or not those objects are both imaged through the lens in the image). For example, the objects may be positioned outside the lens in the image (e.g., objects 520 in FIG. 5).
[0109] The imaged distances (e.g., di’, d2’, and ds’) can be measured from a variety of reference points on the objects. In some examples, the distances are measured between center points of the objects e.g., the area centers, center positions, or centroids). In some examples, the distances between objects can be measured from an edge or external-most point of the objects. In some examples, the distance between objects can be measured as the minimum distance between the objects (i.e., the distance between the closest points on the edges of the respective objects). In some examples, the distance between the objects can be measured as the maximum distance between outer edges of the objects (i.e., the respective furthest points between each object). It should be noted that for purposes of comparing the displayed distances (e.g., di, d2, and ds) and the imaged distances (e.g., di’, d2’, and ds’), the measuring method may beneficially be consistent (e.g., always measuring from the centers of the objects).
[0110] The imaged distances separating two objects within the imaged pattern can be recorded and analyzed by the processor in order to determine lens parameters. In some examples, the distance separating two objects within the imaged pattern can be determined, for example, using any suitable object detection and measurement tool, including the methods and algorithms discussed above and in connection with FIGS. 7 A- 10.
[0111] Any of the systems, processes, features, components, and / or parts, including the arrangements and configurations thereof shown in FIGS. 6A and 6B, can be included, either alone or in any combination, in any of the other examples of systems, processes, devices, features, components, and parts shown in the other figures described herein. Likewise, any of the system, processes, features, components, and / or parts, including the arrangements and configurations thereof shown and described with reference to the other figures can be included,SIX-P-03913-PCT either alone or in any combination, in the example of the systems, processes, devices, features, components, and parts shown in FIGS. 6A and 6B.
[0112] FIG. 7A shows a subset 700a of objects 720 as they would be displayed to a user without being viewed or captured through a lens. The displayed subset 700a of objects 720 can include a first object 720a, a second object 720b, and a third object 720c (collectively referred to as “objects 720” or “displayed objects 720”). As presented to the user, the displayed objects 720 can be positioned relative to each other according to predetermined, known, or determinable angles. In the embodiment illustrated in FIG. 7A, the second object 720b and the third object 720c and are separated by a first angle 0i as measured between axes 721, 723 extending from the first object 720a. The first object 720a can serve as the vertex or source of the first angle 0i. In some examples, a first line or axis 721 extends between respective centers of the first object 720a and the second object 720b, and a second line or axis 723 extends between the respective centers of the first object 720a and the third object 720c. The angle 0i separates the first line 721 and the second line 723. The angle 0i may be configured as the smallest angle separating the first line 721 and the second line 723. In some example embodiments, the larger or obtuse angle separating the first line 721 and the second line 723 can be measured and used in the calculations described herein. The angle 0i may be referred to as a displayed angle, a predetermined angle, an assigned angle, a true angle, an actual angle or similar titles, such as to convey that the angle 0i represents the measured angle between the objects as displayed to the user (i.e., before being imaged by an image capturing device).
[0113] Although the angle 0i is illustrated as being measured from the centers of the objects, it will be understood that the angle 0i can be measured from a variety of reference points on the objects. In some examples, an angle between objects can be measured from other points of the objects discussed in connection with FIGS. 6 A and 6B.
[0114] In some examples, the angle 0i between the objects can be measured at the maximum distance separating the objects (i.e., the respective furthest points between each object). The angle 0i can be assigned and stored on a memory. In some examples, the angle 0i can be randomly generated and determined, using any suitable object detection and measurement tools.
[0115] FIG. 7B shows an imaged subset 700b of imaged objects 722. The imaged subset 700b depicts the displayed subset 700a of FIG. 7A after having been imaged through a lens 712. In the- 1 -SIX-P-03913-PCT example of FIG. 7B, the second object 722b and the third object 722c are imaged through the lens 712, while the first object 722a is not imaged through the lens 712. It will be understood that the methods and systems described herein for determining lens parameters can be partially or fully accomplished viewing one object through a lens, viewing multiple objects through a lens, and / or viewing all of the objects through a lens.
[0116] Because the lens 712 can have optical properties that affect or modify light passing through the lens 712, the imaged subset 700b can differ in their appearance and relative positioning as compared to the displayed subset 700a. Importantly, changes in the imaged subset 700b can be used to determine one or more lens parameters by comparing the positions of the imaged objects 722 against the originally displayed or predetermined positions of objects 720. Specifically, in some examples, the lens parameters can cause a change in one or more relative angle separating the objects.
[0117] The imaged subset of objects 700b can include the first object 722a (corresponding to object 720a), the second object 722b (corresponding to object 720b), and the third object 722c (corresponding to object 720c). As imaged by the user through the lens 712, the imaged subset of objects 700b can be separated from each other by determinable angles, potentially different than the angles separating the displayed subset of objects 700a.
[0118] In the embodiment illustrated in FIG. 7B, as imaged through the lens 712, the second object 722b and the third object 722c are separated by a second angle 02 measured from the first object 722a. The first object 722a can serve as the vertex or source of the second angle 02. In some examples, the angle 02 separates the first line 721 and the second line 723 connecting the objects 722 as shown in FIG. 7B. The angle 02 can represent the smallest angle separating the first line 721 and the second line 723 of FIG. 7B. In some examples, the larger or obtuse angle separating the first line 721 and the second line 723 can be measured and used in the calculations described herein. The angle 02 can be referred to as an imaged angle, a modified angle, or any other suitable title to convey that the angle 02 represents the measured angle between the objects as imaged through the lens 712 (i.e., after being imaged by an image capturing device).
[0119] In some embodiments, for purposes of comparing the displayed angle 0i the imaged angle 02, the measuring method may beneficially be consistent (e.g., if 0i was measured from the centers of the objects, then 02 should also be measured from the centers of the objects).SIX-P-03913-PCT
[0120] The imaged angle separating two objects within the imaged pattern can be recorded and analyzed by the processor in order to determined lens parameters. In some examples, the angle separating two objects within the imaged pattern can be determined, for example, using any suitable object detection and measurement tool.
[0121] In operation, upon receiving and / or determining the angles 0i and 02 a processor can compare the angles to determine a change. If a change is present, the processor can determine what lens parameter(s) would cause the detected change in the angles. In some examples, the processor can draw on a bank of stored preprogrammed parameters that would produce the detected change in the angles.
[0122] Any of the systems, processes, features, components, and / or parts, including the arrangements and configurations thereof shown in FIGS. 7A and 7B can be included, either alone or in any combination, in any of the other examples of systems, processes, devices, features, components, and parts shown in the other figures described herein. Likewise, any of the system, processes, features, components, and / or parts, including the arrangements and configurations thereof shown and described with reference to the other figures can be included, either alone or in any combination, in the example of the systems, processes, devices, features, components, and parts shown in FIGS. 7A and 7B.
[0123] FIG. 8 shows an example calibration scheme. As used herein, the term “calibration” refers to the act of comparing and can, but does not necessarily, include subsequent adjustments or modifications based on the comparison. As shown in FIG. 8, a reference object 850, such as a credit card or other standard-dimensioned piece of material, may be placed against a display 806 (e.g., computer screen or printed material) that is displaying a multi-feature pattern including a plurality of objects 820, such as those described herein. An image-capturing device, such as camera 109 of FIG. 1, can capture an image of the reference object 850 placed against the display 806. The reference object 850 can be any object with known or easily determinable dimensions. The reference object 850 may be a common household item that has standardized dimensions or that includes a scale or other features that intrinsically indicate its dimensions when viewed in an image.
[0124] In some examples, the user can be prompted to place the reference object 850 against the display 806 and transmit an image of the reference object 850 against the display 806 beforeSIX-P-03913-PCT capturing an image of the multi-feature pattern (MFP) 807 through a lens. In some embodiments, the MFP 807 used during the calibration scheme of FIG. 8 can be the same multi-feature pattern used to determine lens parameters, as shown in FIG. 5.
[0125] By comparing the reference object 850 and the objects 820, one or more parameters of the display 806 can be determined and calculated. In some examples, an aspect ratio or a pixel / resolution density (e.g., pixel-to-millimeter ratio) of display 806 can be determined, for example, by comparing the reference object 850 to the dimensions of the objects 820 in the image as compared to the known dimensions of the reference object 850, e.g., as described above. The objects 820 can be the same or substantially similar to the objects of a multi-feature pattern described herein, such as objects 320, 420, 520, 620, and 720.
[0126] In some examples, upon determining one or more parameters of the display 806 using the above-described calibration scheme, the system can calculate the relative positions of the objects 820 as displayed on a display having those characteristics. In some examples, the system can have a stored list of common display parameters and can reference predetermined object positions based on the identified display parameter.
[0127] In some examples, in response to determine one or more parameters of the display 806 using the above-described calibration scheme, a processor can modify the multi-feature pattern to compensate for the display settings. For example, the processor can shrink or expand the objects 820 of the multi-feature pattern to have predetermined dimensions relative to the reference object 850.
[0128] Advantageously, the calibration process may be implemented regardless of where the reference object 850 is placed on the display 806. In other words, the reference object 850 can be compared against any of the objects 820 in the MFP 807, thereby helping to enable easier and more convenient calibration as compared to having to position the reference object in a preset position relative to the display or relative to certain objects shown by the display.
[0129] Any of the systems, processes, features, components, and / or parts, including the arrangements and configurations thereof shown in FIG. 8 can be included, either alone or in any combination, in any of the other examples of systems, processes, devices, features, components, and parts shown in the other figures described herein. Likewise, any of the system, processes, features, components, and / or parts, including the arrangements and configurations thereof shownSIX-P-03913-PCT and described with reference to the other figures can be included, either alone or in any combination, in the example of the systems, processes, devices, features, components, and parts shown in FIG. 8.
[0130] FIG. 9 shows a flow diagram of a process 900 for determining lens parameters. The process 900 can be substantially similar to, including some or all of the features of, the methods and processes described above, such as the embodiments shown in FIGS. 2-8. The process 900 illustrates several steps or blocks, and while FIG. 9 depicts the blocks in a certain order, it will be understood that the order or progression of the blocks can be changed. Further, it will be understood that additional steps can be added to the process 900 and that, in some examples, steps can be removed from the process 900.
[0131] At block 901, a multi-feature pattern (MFP) can be generated. In some examples, the MFP can be automatically generated using image building software. In some examples, the MFP is randomly generated. In some examples, the MFP is computer generated in accordance with guidelines or rules established by a user or programmer. For example, a processor can be instructed to randomly generate the pattern using any shapes, colors, and arrangements, so long as the pattern is non-repeating (i.e., all objects in the pattern are identifiable and unique according to their respective classes and their positions in the display or positions relative to each other). A calibration process (e.g., as discussed in connection with FIG. 8) may be used to determine or adjust the pattern as it is generated or displayed.
[0132] In some examples, the MFP is merely given or assigned and stored in a memory device, such as memory 106 or storage device 110. For example, the MFP can be previously created with known and assigned object characteristics and positioning. The MFP can also be displayed or presented to a user as part of block 901. As used herein, to be “displayed” refers to various electronic and non-electronic methods of presenting visual information to a user. In some examples, the MFP is displayed on a computer screen or display. In some examples, the MFP is displayed on a physical sheet of paper.
[0133] At block 903, an image of the MFP can be captured using an image capturing device, such as the camera 209 on the electronic device 208 of FIG. 2. At least a portion of the image of the MFP can be captured through an objective lens e.g., the lens for which lens parameters areSIX-P-03913-PCT desired). In some examples, the captured image can be analyzed using the image-capturing device itself, such as by a processor of a camera phone. In some examples, the image can be sent to the electronic device that displayed the MFP to be processed, such as by a computer / controller / processor connected to an electronic display on which the MFP is displayed. In some examples, the image of the MFP can be sent to a remote server to be processed. For example, the user can be prompted to upload the image onto an internet website.
[0134] At block 905, the captured image of the MFP can be compared against the generated (i.e., displayed) MFP. As described herein, the comparison of the imaged MFP and the displayed MFP can include determining a change in the relative positions of the objects in the MFP, e.g., as discussed in connection with FIGS. 6A-6B and 7A-7B. In order to determine a change in the relative positions of the objects in the MFP, the objects themselves may need to be identified. The objects can be identified using any number of object detection or image analysis techniques, including techniques described above. Upon identifying the objects, the distances and / or angles separating the objects can be determined and compared against the known distances / angles of the displayed MFP. The systems and methods for comparing the imaged MFP and the displayed MFP are discussed above in greater detail.
[0135] At block 907, based on the comparison of block 905, one or more lens parameters can be calculated as described above, for example, with reference to equations 1-9. In some examples a gradient lens prescription can be calculated using the MFP. This calculation can extract multi-focal glasses prescription. Data transmitted to a server can be reduced by sending only the pattern detections and center of mass points instead of whole images, as is done with conventional methods.
[0136] Any of the systems, processes, features, components, and / or parts, including the arrangements and configurations thereof shown in FIG. 9 can be included, either alone or in any combination, in any of the other examples of systems, processes, devices, features, components, and parts shown in the other figures described herein. Likewise, any of the system, processes, features, components, and / or parts, including the arrangements and configurations thereof shown and described with reference to the other figures can be included, either alone or in any combination, in the example of the systems, processes, devices, features, components, and parts shown in FIG. 9.SIX-P-03913-PCT
[0137] FIG. 10 shows a process flow diagram of a method 1000 for calibrating a display. The process 1000 can take place before the process 900 in order to determine display parameters and, consequently, parameters of the MFP. The process 1000 can be substantially similar to, e.g., including some or all of the features of, the methods and processed described above, such as the embodiment shown in FIG. 8. The process 1000 illustrates several steps or blocks, and while FIG. 10 depicts the blocks in a certain order, it will be understood that the order or progression of the blocks can be changes. Further, it will be understood that additional steps can be added to the process 1000 and that, in some examples, steps can be removed from the process 1000.
[0138] At block 1001, a multi-feature pattern (MFP) can be displayed on a display. In some examples, the MFP can be automatically generated using image building software. In some examples, the MFP is randomly generated. In some examples, the MFP is computer generated in accordance with guidelines or rules established by a user or programmer. For example, a processor can be instructed to randomly generate the MFP using any shapes, colors, and arrangements. In some examples, the MFP is intentionally constrained to be non-repeating (i.e., all objects in the pattern are identifiable, non-overlapping, and unique).
[0139] In some examples, the pattern is merely given or assigned to be stored in a memory. For example, the pattern can be previously created with known and assigned object characteristics. The MFP can be displayed or presented to a user. As used herein, to be displayed can refer to electronic and non-electronic methods of presenting visual information to a user. In some examples, the MFP is displayed on a computer screen or display. In some examples, the MFP is displayed on a physical sheet of paper.
[0140] At block 1003, a user is instructed to place a reference object against the display (i.e., in front of, but substantially in-plane with, the surface of the display showing the MFP). The reference object can be substantially similar to the reference object 850 discussed in FIG. 8. The reference object can be any item having known dimensions. Items commonly found as easily accessible, such as a credit card, can be convenient reference objects. In some examples, the reference object can be an item that has standardized dimensions that are already known or readily determinable by the system. In some examples, the system can determine or be told the dimensions of the reference object by the user.- 31 -SIX-P-03913-PCT
[0141] At block 1005, an image of the reference object placed against the display may be captured. The image of the reference object and MFP can be taken by any suitable image capturing device. The captured image can then be sent to a processor to analyze the captured image. In some examples, the image is processed on the image capturing device. In some examples, the image can be sent to the electronic device that displayed the MFP to be processed. In some examples, the image of the MFP can be sent to a remote server to be processed. For example, the user can be prompted to upload the image onto an internet website or network database.
[0142] At block 1007, the parameters of the display displaying the MFP can be determined based on the captured image of block 1005. In some examples, the user can be instructed to transmit the image of the reference object against the display (e.g., at block 1005) before capturing an image of the multi-feature pattern through a lens (e.g., process 900). Advantageously, the multi-feature pattern used during the calibration process 1000 can be the same multi-feature pattern used to determine lens parameters in process 900.
[0143] By comparing the reference object and the objects in the MFP, one or more parameters of the display can be determined. In some examples, an aspect ratio, a resolution, or a pixel density e.g., a pixel to millimeter ratio) of the display can be determined by comparing the reference object to the size and positioning of the objects and the display as a whole in the manner described above. The objects making up the MFP in the process 1000 can be substantially similar or identical to the objects of a multi-feature pattern described herein, such as objects 320, 420, 520, 620, and 720.
[0144] In some examples, upon determining one or more parameters of the display, the system can calculate the relative positions of the objects as displayed e.g., the distances or angles between the objects, as discussed in connection with FIGS. 6A and 7A). In some examples, the system can have a stored list of common display parameters (e.g., typical pixel densities for certain sized display screens or pixel densities matched to certain makes and models of displays) and can reference predetermined object positions based on the identified display parameters.
[0145] In some examples, in response to determine one or more parameters of the display using the process 1000, a processor can modify the multi-feature pattern to compensate for the- is -SIX-P-03913-PCT display settings. For example, the processor can shrink or expand the objects of the MFP to fit a predetermined sizing. Thus, the size and relative positioning of the objects of the MFP can be controlled so that they have a consistent appearance on various different types and sizes of displays. The consistent appearance of the objects may help improve efficiency and accuracy of object detection in a captured image through a lens, and can therefore also help improve the efficiency and accuracy of detecting lens parameters.
[0146] Advantageously, the process 1000 is able to be implemented regardless of the position of the reference object relative to the display. The multi-feature pattern and principles described herein can provide accurate calibration (i.e., via process 1000) regardless of where on the display the user places the reference object on the display surface rather than needing to correctly orient or position the reference object relative to the display or objects shown therein.
[0147] In other words, using the reference object, the feature sizes can be scaled, and their coordinates (e.g., in millimeters) can be calculated to calibrate the display of objects. For the camera calibration, the user can be instructed to take several pictures of the MFP screen from different angles. Using these images, the user’s intrinsic camera matrix can be calibrated. As part of this process, the user camera’s distortion coefficient can also be calculated.
[0148] Any of the systems, processes, features, components, and / or parts, including the arrangements and configurations thereof shown in FIG. 10 can be included, either alone or in any combination, in any of the other examples of systems, processes, devices, features, components, and parts shown in the other figures described herein. Likewise, any of the system, processes, features, components, and / or parts, including the arrangements and configurations thereof shown and described with reference to the other figures can be included, either alone or in any combination, in the example of the systems, processes, devices, features, components, and parts shown in FIG. 10.
[0149] As used herein, conjunctive terms (e.g., "and") and disjunctive terms (e.g., "or") should be read as being interchangeable (e.g., "and / or") whenever possible. Furthermore, in claims reciting a selection from a list of elements following the phrase "at least one of," usage of "and" (e.g., "at least one of A and B") requires at least one of each of the listed elements (i.e., at least one of A and at least one of B), and usage of "or" (e.g., "at least one of A or B") requires at least one of any individual listed element (i.e., at least one of A or at least one of B).SIX-P-03913-PCT
[0150] As used herein, parts in "electrical communication" with each other are configured to exchange electrical signals, directly or indirectly, between each other, whether uni-directionally or bi-directionally. An electronic device can be said to be in electrical communication with a processor or controller device if the processor or controller device is using signals generated by the device or if the processor or controller device is using signals reliant upon or derived at least in part on the signals generated by the device. For example, the electronic device can be in electrical communication with a processor via an input device adapter (i.e., a touch controller board or similar component) and an electrical communications bus.
Claims
SIX-P-03913-PCTCLAIMSWhat is claimed is:
1. A non-transitory storage medium comprising computer-executable instructions operable to, when executed by at least one computer processor, enable the at least one computer processor to cause a computing device to: process an image of an assortment of features, the assortment of features comprising a first displayed feature, a second displayed feature, and a third displayed feature; identify in the image: a first imaged feature corresponding to the first displayed feature; a second imaged feature corresponding to the second displayed feature; and a third imaged feature corresponding to the third displayed feature; wherein at least one of the first imaged feature, the second imaged feature, or the third imaged feature is captured through a lens; compare imaged position data of the first imaged feature, the second imaged feature, and the third imaged feature with pre-imaged position data of the first displayed feature, the second displayed feature, and the third displayed feature; and determine one or more parameters of the lens based on a change in the imaged position data from the pre-imaged position data.
2. The non-transitory storage medium of claim 1 , wherein the one or more parameters of the lens are determined based on a first distance between the first imaged feature and the second imaged feature, a second distance between the first imaged feature and the third imaged feature, and a third distance between the second imaged feature and the third imaged feature.
3. The non-transitory storage medium of claim 2, wherein the first distance is measured from a center of the first imaged feature and a center of the second imaged feature.SIX-P-03913-PCT4. The non-transitory storage medium of claim 1 , wherein the one or more parameters of the lens are determined based on an angle between the first imaged feature, the second imaged feature, and the third imaged feature.
5. The non-transitory storage medium of claim 1, wherein the instructions, when executed, cause the computing device to generate the assortment of features.
6. The non-transitory storage medium of claim 1 , wherein at least one of the first imaged feature, the second imaged feature, or the third imaged feature is not captured through the lens.
7. The non-transitory storage medium of claim 1, wherein the first imaged feature is identifiable based on neighboring features of the first imaged feature.
8. The non-transitory storage medium of claim 1, wherein the first imaged feature, the second imaged feature, and the third imaged feature are identified through image analysis.
9. The non-transitory storage medium of claim 1, wherein the lens is a multi-focal lens.
10. The non-transitory storage medium of claim 1, wherein the assortment of features is randomly generated.
11. The non-transitory storage medium of claim 1 , wherein the assortment of features is customized by a user.
12. The non-transitory storage medium of claim 1, wherein the one or more parameters of the lens comprise at least one of a spherical power, a cylindrical power, a cylindrical axis, a lens addition power, or a center of the lens.
13. A system to measure one or more parameters of a lens, the system comprising: an imaging device configured to capture an image of a plurality of objects, at least a portion of the image being captured through a lens; a processor configured to:SIX-P-03913-PCT identify a first center position of a first object of the plurality of objects in the image; identify a second center position of a second object of the plurality of objects in the image; and determine one or more parameters of the lens based on the first center position and the second center position.
14. The system of claim 13, further comprising a display configured to display the plurality of objects.
15. The system of claim 13, wherein determining the one or more parameters of the lens comprises comparing an imaged distance in the image that separates the first object and the second object against a predetermined distance.
16. The system of claim 13, wherein each object of the plurality of objects comprises at least one of a unique color, unique shape, or unique collection of adjacent objects.
17. A method for determining one or more parameters of a lens, the method comprising: receiving an image of a set of unique objects, a subset of the set of unique objects being captured through a lens; identifying the set of unique objects in the image to determine imaged position data of the set of unique objects; comparing the imaged position data with pre-imaged position data of the set of unique objects; and determining one or more parameters of the lens based on a difference between the imaged position data and the pre-imaged position data.
18. The method of claim 17, wherein: the image is a first image; the subset is a first subset; the method further comprises:SIX-P-03913-PCT receiving a second image of the set of unique objects, the second image comprising a second subset of the set of unique objects captured through the lens, the second subset being different than the first subset; and determining one or more parameters of the lens based on a difference between imaged position data of the second image and the pre-imaged position data.
19. The method of claim 17, further comprising establishing the pre-imaged position data by comparing the set of unique objects against a reference object.
20. The method of claim 17, wherein the image is analyzed using image analysis to identify at least one of a color, shape, or size of each object in the set of unique objects.
Citation Information
Patent Citations
Multi-focal eyewear
US11372266B1
Imaging patterns of features with varying resolutions
US20100309280A1
Apparatus, system and method of determining one or more optical parameters of a lens
US20190368970A1
Image generation method, electronic device, and storage medium
US20220044054A1
Device, system and method for making custom printed products
US20220143859A1