Systems and methods for measuring interpupillary distance and uses thereof - Patents.com

The system uses image processing and 3D depth-sensing to accurately measure interpupillary distance, addressing the inaccuracies and resource intensiveness of existing methods and improving eyewear fitting and consumer experience.

JP7664953B2Active Publication Date: 2025-04-18WARBY PARKER INC
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2022577452
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-06-17
Filing Date
2021-06-11
Publication Date
2025-04-18
Estimated Expiration
2041-06-11

AI Technical Summary

Technical Problem

Existing methods for measuring interpupillary distance (PD) are inaccurate, resource-intensive, and often require human intervention, leading to potential errors and discomfort in eyewear fitting.

Method used

A system and method using image processing algorithms to locate pupils in 2D images and combine this with 3D depth-sensing data to accurately calculate PD, reducing human error and increasing convenience.

Benefits of technology

The method provides accurate, efficient, and convenient PD measurements, enhancing the consumer experience in eyewear selection and fitting, while also improving manufacturing processes and product recommendations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007664953000004
    Figure 0007664953000004
  • Figure 0007664953000005
    Figure 0007664953000005
  • Figure 0007664953000006
    Figure 0007664953000006
Patent Text Reader

Abstract

A method for operating an interpupillary distance system is disclosed. The method includes capturing 2D images and corresponding 3D depth maps of a subject's face with at least one camera of the interpupillary distance system. The 2D images and corresponding 3D depth maps are used to determine pupil localization information. The pupil locations are further refined based on the pupil localization information. Pupil center coordinates are determined, and the interpupillary distance of the subject is calculated between the centers of the respective pupils. Processes and uses thereof are also disclosed.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This PCT international application claims the benefit of and priority to U.S. patent application Ser. No. 63 / 040,184, filed June 17, 2020, which is incorporated herein by reference in its entirety.

[0002] The present disclosure relates generally to the art of optometry. More specifically, the present disclosure is directed to systems and methods for measuring interpupillary distance and uses thereof. [Background technology]

[0003] The following contains information that may be useful in understanding the present invention. It is not an admission that any of the information specifically or implicitly referenced herein is prior art or essential to the invention described or claimed. All patents, patent applications, publications, and products mentioned herein are incorporated by reference in their entirety.

[0004] The interpupillary distance (PD) is the distance between the pupils of a subject, such as a human. The accuracy of this distance is one of the determining factors in the comfort and fit of eyeglasses, sunglasses, or virtual reality headsets. An incorrectly measured PD can lead to lenses with a prismatic effect that can cause headaches, blurred vision, eye strain, nausea, dizziness, lightheadedness, disorientation, and other problems for the subject. Traditionally, PD measurements are not taken with eyeglass or sunglass prescriptions, but are required to fill orders for custom prescription eyeglasses or sunglasses. The average PD for an adult is approximately 63 mm. However, PD measurements can vary widely, between 51 mm and 74.5 mm for women and between 53 mm and 77 mm for men. PD is very important when fitting eyeglasses or sunglasses that use progressive lenses, because accurate lens-to-pupillary alignment is required to ensure comfortable vision at all distances.

[0005] Currently, there are various ways to measure PD. For example, there are two main methods of measuring PD: single PD and dual PD. Single PD (or binocular PD) is a pupil-to-pupil measurement between both eyes. Dual PD (or monocular PD) is a measurement from the bridge of the nose to each eye.

[0006] Traditional methods for obtaining PD measurements may include the use of a ruler. In this type of measurement, the subject is asked to stand approximately 8 inches from a mirror, and a ruler is aligned from the pupil of one eye across the subject's forehead to the other pupil to obtain the PD measurement. This type of measurement is inaccurate because facial contours and ruler alignment can vary.

[0007] A subject may obtain their own PD measurement with the assistance of another person, possibly in a commercial setting. In this example, PD may be measured using a corneal reflex pupillometer. Alternatively, an e-commerce customer may submit a photograph of their face holding a standard-sized reference object (such as a credit card) and the photograph may be processed remotely to obtain the PD.

[0008] Each of the conventional methods described above is a cumbersome and / or resource-intensive method of obtaining PD measurements. Additionally, certain conventional methods, such as using a corneal reflection pupillometer, may require the subject to be less than six feet away from the person taking the measurement, which would cause them to violate social distancing rules during a pandemic such as COVID-19. Additionally, corneal reflection pupillometers are prone to human error and may be miscalibrated, and therefore are not always reliable measures of PD. Because PD is required to fill orders for custom prescription eyeglasses and sunglasses, developing a smooth, convenient, contact-free method of obtaining PD measurements would improve the consumer experience. Additionally, developing an easier and more accurate method of obtaining PD measurements would facilitate e-commerce and expand consumer options in obtaining comfortable, high-precision eyewear. Finally, retailers may use images and / or statistical information regarding PD measurements to improve manufacturing processes and / or provide eyewear recommendations based on user satisfaction and purchase history correlated with PD measurements.

[0009] Thus, a need exists to develop improved systems or methods for measuring PD that increase accuracy, efficiency, reliability, convenience and use, while reducing or eliminating human intervention and / or human error. Summary of the Invention

[0010] The invention described and claimed herein has many characteristics and aspects, including but not limited to those set forth, described, or referenced in this Summary. Not intended to be all-inclusive, the invention described and claimed herein is not limited to, and is not limited by, the features or embodiments identified in this Summary, which are included for purposes of illustration and not limitation.

[0011] In various embodiments of the present disclosure, systems and methods are provided that obtain and use a set of image processing algorithms to locate the pupils in a two-dimensional ("2D") image. The pupils are then located in world coordinates using three-dimensional ("3D") data provided by the depth-sensing image. Using the world coordinates, the physical distance between the pupils can be calculated. The systems and methods described herein advantageously provide an accurate and more convenient way to obtain PD measurements. Furthermore, the obtained PD measurements can be used for eyeglasses (or spectacles), sunglasses, virtual reality headsets, goggles, safety glasses, smart glasses (including but not limited to augmented reality glasses), and other eyewear. Finally, the subject's facial measurements, including PD, can be associated with a user account, whereby product recommendations can be provided based on the user's facial measurements and past customer satisfaction data and purchase history associated with the facial measurements.

[0012] In various embodiments of the present disclosure, the systems and methods described herein can obtain facial measurements for use in a virtual try-on and try-on system or application. In some embodiments, the virtual try-on and try-on system can provide a user with an interface to virtually try on and / or purchase eyeglasses or sunglasses using facial measurements, including PD measurements, obtained from the present disclosure described herein. The systems and methods described herein, when incorporated into a virtual try-on and try-on system, can enhance a user's e-commerce experience by allowing a user to virtually try on potential eyeglasses or sunglasses, obtain PD measurements, and select and purchase custom prescription eyeglasses or sunglasses online without having to visit a physical store. The systems and methods described herein also improve the virtual try-on and try-on system by obtaining and storing additional facial measurements that can lead to better product recommendations. The systems and methods of the present disclosure can advantageously interface with the virtual try-on systems and methods described in U.S. Patent Application No. 16 / 550,614, filed Aug. 26, 2019, entitled "Virtual Fitting Systems and Methods for Spectacles." In various embodiments of the present disclosure, a method of operating an interpupillary distance system is described. In some embodiments, the method includes capturing a first 2D image and a corresponding 3D depth map of a subject's face with at least one camera of the interpupillary distance system, determining pupil localization information using the first 2D image and the corresponding 3D depth map, refining one or more pupil positions based on the pupil localization information, determining one or more pupil center coordinates, and calculating the subject's PD between the centers of the respective pupils.

[0013] In some embodiments of the present disclosure, to obtain one or more initial pupil positions on a subject, pupil localization information is determined using multiple face mesh landmarks to generate multiple face mesh vertices close to the center of the eye.

[0014] In some embodiments of the present disclosure, one or more pupil locations are refined using a convolution with one or more kernels and one or more 2D center-periphery filters, in some embodiments, the one or more kernels use a pupil estimation size of approximately 12 mm.

[0015] In some embodiments of the present disclosure, the step of calculating PD uses depth map values ​​that correspond to the refined pupil position or positions in the 2D image.

[0016] In some embodiments of the present disclosure, the PD is determined by using points on a 3D face mesh that correspond to the centers of each pupil.

[0017] In some embodiments of the present disclosure, the method further includes making a correction to the calculated PD using a distance at which the first 2D image is taken from the at least one camera.

[0018] Various embodiments of the present disclosure provide a non-transitory computer-readable medium having computer-executable instructions embodied thereon that, when executed by a processor, cause the processor to obtain a first 2D image and a corresponding 3D depth map of a subject's face from at least one camera, determine pupil localization information using the first 2D image and the corresponding 3D depth map, refine one or more pupil positions based on the pupil localization information, determine one or more pupil center coordinates, and calculate a PD of the subject between the centers of the respective pupils.

[0019] In some embodiments of the present disclosure, to obtain one or more initial pupil positions of a subject, pupil localization information is determined using multiple face mesh landmarks to generate multiple face mesh vertices close to the centers of the eyes.

[0020] In some embodiments of the present disclosure, one or more pupil locations are refined using a convolution with one or more kernels and one or more 2D center-periphery filters, in some embodiments, the one or more kernels use a pupil estimation size of approximately 12 mm.

[0021] In some embodiments of the present disclosure, calculating the PD uses depth map values ​​that correspond to one or more refined pupil positions in the 2D image.

[0022] In some embodiments of the present disclosure, calculating PD is determined by using points on the 3D face mesh that correspond to the centers of each pupil.

[0023] In some embodiments of the present disclosure, the computer-executable instructions further cause the processor to perform a correction to the calculated PD using a distance at which the first 2D image is taken from the at least one camera.

[0024] In various embodiments of the present disclosure, a pupillary distance system is provided, which comprises one or more mobile devices. In some embodiments, the one or more mobile devices include a mobile device comprising at least one camera, a memory for storing information related to images and information obtained from the at least one camera, and a processor. The processor is configured to obtain 2D images and corresponding 3D depth maps of a subject's face from the at least one camera, determine pupil localization information using the 2D images and corresponding 3D depth maps, refine one or more pupil positions based on the pupil localization information, determine one or more pupil center coordinates, and calculate a PD between the centers of the subject's respective pupils.

[0025] In some embodiments of the present disclosure, to obtain one or more initial pupil positions of a subject, a pupil localization is determined using multiple face mesh landmarks to generate multiple face mesh vertices close to the center of the eye.

[0026] In some embodiments of the present disclosure, one or more pupil locations are refined using a convolution with one or more kernels and one or more 2D center-periphery filters, in some embodiments, the one or more kernels use a pupil estimation size of approximately 12 mm.

[0027] In some embodiments of the present disclosure, calculating the PD uses depth map values ​​that correspond to one or more refined pupil positions in the 2D image.

[0028] In some embodiments of the present disclosure, calculating PD is determined by using points on the 3D face mesh that correspond to the centers of each pupil.

[0029] In some embodiments of the present disclosure, the distance at which the first 2D image is taken from at least one camera is used to make a correction to the calculated PD.

[0030] The accompanying drawings, which are incorporated in and form a part of this specification, illustrate aspects of the present disclosure and, together with the description, further serve to explain the principles of the aspects and to enable those skilled in the art to make and use the aspects. The drawings are for purposes of illustration only, depict exemplary, non-limiting embodiments, and are not necessarily drawn to scale. [Brief description of the drawings]

[0031] [Figure 1A] FIG. 1 illustrates an example of a system according to some embodiments of the present disclosure. [Figure 1B] FIG. 2 illustrates an example of an architecture of a mobile device according to some embodiments of the present disclosure. [Diagram 2]1 is a flow diagram illustrating an example PD measurement process using a depth map, according to some embodiments of the present disclosure. [Diagram 3] 9 is an exemplary image of a user's pupil region superimposed with a face mesh 905 (represented by multiple lines 910 connected to multiple vertices 920), showing key vertices 950 and a centroid 951 of the key vertices, in accordance with some embodiments of the present disclosure. [Figure 4] 4A-4C are exemplary diagrammatic representations of refining an initial pupil position using convolution with a 2D image, according to some embodiments of the present disclosure: FIG. 4A shows a filter kernel (or kernels) with a center-periphery structure, FIG. 4B shows an image patch having a circle 990 with a cross symbol indicating where it has the maximum response to the kernel, and FIG. 4C shows the image response to convolution with the kernel. [Diagram 5] 5 is an exemplary illustration of a Random Sample Consensus ("RANSAC") iterative method for pupil region images, according to some embodiments of the present disclosure. In FIG. 5, solid circle 2000 indicates an initial estimate of the iris boundary, solid cross symbol 2001 indicates an initial estimate of the iris center, closed dots 3010 indicate inlier boundary points, open dots 3020 indicate outlier boundary points, dotted circle 3000 indicates a final estimate of the iris boundary, and dotted cross symbol 3001 indicates a final estimate of the iris center. [Figure 6] 1 is an exemplary illustration of a process for measuring or estimating distance PD, according to some embodiments of the present disclosure. [Figure 7] FIG. 8 is a diagram of an example PD calculation interface 800, according to some embodiments of the present disclosure. "Method A" refers to a depth map method, which is described further below. "Method B" refers to a face mesh method, which is also described further below. [Figure 8] 8A-8C are diagrams of exemplary interfaces 801, 802, 803, and 804, respectively, for measuring PD in accordance with some embodiments of the present disclosure. [Figure 9]8A-8C are diagrams of exemplary interfaces 801, 802, 803, and 804, respectively, for measuring PD in accordance with some embodiments of the present disclosure. [Figure 10] 8A-8C are diagrams of exemplary interfaces 801, 802, 803, and 804, respectively, for measuring PD in accordance with some embodiments of the present disclosure. [Figure 11] 8A-8C are diagrams of exemplary interfaces 801, 802, 803, and 804, respectively, for measuring PD in accordance with some embodiments of the present disclosure. [Figure 12] FIG. 13 is a diagram of another example of a PD calculation interface 805 according to some embodiments of the present disclosure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0032] This description of exemplary embodiments is intended to be read in conjunction with the accompanying drawings, which are to be considered as part of the entire written description. The use of the singular includes the plural unless otherwise specified. The use of "or" means "and / or" unless otherwise specified. Furthermore, the word "comprises" and other forms such as "comprises" and "includes" are not limiting. In addition, words such as "element" and "component" encompass both elements and components of a single unit and elements and components of two or more subunits, unless otherwise specified. Additionally, the section headings used herein are for organizational purposes only and should not be construed as limiting the subject matter described.

[0033] The following description is provided as an enabling teaching for a representative set of examples. Many modifications can be made to the embodiments described herein while still obtaining beneficial results. Some of the desirable benefits described below can be obtained by selecting some of the features described herein without utilizing other features. Thus, many variations and modifications, as well as a subset of the features described herein, are possible and may even be desirable in some circumstances. Thus, the following description is provided by way of example and not of limitation.

[0034] As used herein, singular articles such as "a", "an" and "the" are not intended to exclude a plural of the object of the article, unless the context clearly and unambiguously dictates otherwise.

[0035] Systems and methods for determining the PD of a subject are provided in the present disclosure. The subject is a mammal or human, where the mammal or human is a male (man), female (woman), non-binary mammal or human (or other gender identity) adult or child. As described throughout this specification, the present systems and methods advantageously provide accurate and efficient real-time facial measurements for the subject. The present systems and methods advantageously provide facial measurements to users, which may be stored in an account associated with each user to enable users to receive product recommendations based on the facial measurements and / or based on consumer satisfaction data and / or purchase history associated with past facial measurements. Such users are humans, where the humans are male, female, non-binary human (or other gender identity) adults or children. Finally, the present systems and methods may advantageously use consumer satisfaction data to refine the measurement calculations using artificial intelligence, such as machine learning and deep learning.

[0036] System Overview In various embodiments, the PD measurement system may interact with client devices for information exchange. FIG. 1A illustrates an example of a system 100 in which multiple client devices 110-1, 110-2, and 110-3 (collectively, “client devices 110”) are connected to one or more computer system networks 50-1, 50-2 (the “computer network 50”) and a management server 130 via a communication network 142. The communication network 142 may be a wide area network (“WAN”), a local area network (“LAN”), a personal area network (“PAN”), or the like. In one embodiment, the communication network 142 is the Internet, and the client devices 110 are online. “Online” may mean connecting to or accessing source data and information from a location remote from other devices or networks coupled to the communication network 142.

[0037] The management server 130 includes a processing unit 24 coupled to one or more data storage units 150-1, 150-2 (collectively referred to as "database management system 150" or "DBMS 150"). The processing unit 24, in some embodiments, is configured to provide a front-end graphical user interface ("GUI") (e.g., a PD measurement GUI 28 and a client user GUI 30), as well as a back-end or administrative graphical user interface or portal 32 to one or more remote computers 54 or to one or more local computers 34. In some embodiments, a PD measurement interface is provided that accesses the management server 130 via the GUI 28, described in further detail below. The GUI can take the form of, for example, a web page displayed using a browser program local to the remote computer 54 or one or more local computers 34. It is understood that the system 100 may be implemented on one or more computers, servers, or other computing devices. In some embodiments, the GUI may be displayed on the client device 110 via a software application. For example, system 100 may include additional servers that are programmed or partitioned based on permitted access to data stored in DBMS 150. As used herein, "portal" is not limited to general purpose Internet portals such as YAHOO!® or GOOGLE®, but also includes GUIs that target specific, limited audiences and provide interested parties with access to multiple different types of related or unrelated information, links, and tools, as described below. "Web page" and "website" are sometimes used interchangeably herein.

[0038] The remote computers 54 may be part of the computer system networks 50-1, 50-2 and may gain access to the communications network 142 through Internet Service Providers ("ISPs") 52-1, 52-2 ("ISPs 52"). The client devices 110 may gain access to the communications network 142 through a wireless cellular communications network, a WAN hotspot, or through a wired or wireless connection to a computer, as will be appreciated by those skilled in the art. Client users and administrative personnel may gain access to the system 100 using the remote computers 54 and / or client devices 110, as described below. The computer system networks 50-1, 50-2 may include one or more data storage units 56-1, 56-2.

[0039] In one embodiment, client device 110 includes any mobile device capable of transmitting and receiving wireless signals. Examples of mobile devices include, but are not limited to, mobile or cellular phones, smart phones, personal digital assistants ("PDAs"), laptop computers, tablet computers, music players, and e-book readers, to name a few possible devices.

[0040] FIG. 1B is a block diagram of an example of an architecture of a client device 110. As shown in FIG. 1B, the client device 110 includes one or more processors, such as processor 102. The processor 102 may be any central processing unit ("CPU"), microprocessor, microcontroller, or computing device or circuit for executing instructions. The processor is connected to a communication infrastructure 104 (e.g., a communication bus, crossover bar, or network). Various software embodiments are described in the context of this exemplary client device 110. After reading this description, it will be apparent to one of ordinary skill in the art how to implement the method using a client device 110 with other systems or architectures. One of ordinary skill in the art will understand that the computer 34, 54 may have a similar and / or identical architecture to the client device 110. In other words, the computer 34, 54 may include some, all, or additional functional components to the functional components of the client device 110 shown in FIG. 1B.

[0041] The client device 110 includes a display 168 that displays graphics, video, text, and other data received from the communications infrastructure 104 (or from a frame buffer, not shown) to a user (e.g., a subscriber, a commercial user, a back-end user, or other user). Examples of such a display 168 include, but are not limited to, an LCD screen, an OLED display, a capacitive touch screen, and a plasma display, to name a few possible displays. The client device 110 also includes a main memory 108, such as a random access ("RAM") memory, and may also include a secondary memory 110. The secondary memory 121 may include a hard disk drive ("HDD") 112 and / or a more permanent memory, such as a removable storage drive ("RSD") 114, which may represent a magnetic tape drive, an optical disk drive, a solid state drive ("SSD"), or the like. In some embodiments, the removable storage drive 114 reads from and / or writes to a removable storage unit ("RSU") 116 in a manner understood by those skilled in the art. The removable storage unit 116 represents a magnetic tape, optical disk, etc., which may be read by and written to by the removable storage drive 114. As will be appreciated by those skilled in the art, the removable storage unit 116 may include a tangible, non-transitory, machine-readable storage medium having computer software and / or data stored thereon.

[0042] In some embodiments, the secondary memory 110 may include other devices that allow computer programs or other instructions to be loaded into the client device 110. Such devices may include, for example, a removable storage unit ("RSU") 118 and corresponding interface ("RSI") 120. Examples of such units 118 and interfaces 120 may include removable memory chips (such as erasable programmable read-only memory ("EPROM")), programmable read-only memory ("PROM"), secure digital ("SD") cards and associated sockets, and other removable storage units 118 and interfaces 120 that allow software and data to be transferred from the removable storage unit 118 to the client device 110.

[0043] The client device 110 may also include a speaker 122, an oscillator 123, a camera 124, a light emitting diode ("LED") 125, a microphone 126, an input device 128, an accelerometer (not shown), and a global positioning system ("GPS") module 129. Example features of the camera 124 include, but are not limited to, optical image stabilization ("OIS"), a large sensor, a bright lens, 4K video, optical zoom plus RAW images and HDR, a "bokeh mode" with multiple lenses and a multi-shot night mode. The camera 124 may include one or more lenses with different capabilities. By way of example, the camera 124 may include an ultra-wide sensor, a telephoto sensor, a time-of-flight sensor, a macro sensor, a megapixel ("MP") sensor, and / or a depth sensor. The camera 124 described herein is not limited to a single camera. The camera 124 may include a camera system including multiple different types of cameras, sensors, and the like. As an example, Apple® has released the TrueDepth® camera system, which includes a 7MP front-facing “selfie” camera, an infrared emitter, an infrared camera, a proximity sensor, an ambient light sensor, a flood illuminator, and a dot projector that work together to obtain a depth map and associated imagery. In other words, camera 124 of client device 110 may have multiple sensors, cameras, emitters, or other associated components that act as a system to obtain image information used by client device 110.

[0044] Examples of input device 128 include, but are not limited to, a keyboard, buttons, a trackball, or any other interface or device through which a user may input data. In some embodiments, input device 128 and display 168 are integrated into the same device. For example, display 168 and input device 128 may be a touch screen for a user to input data into client device 110 using a finger, pen, and / or stylus.

[0045] The client device 110 also includes one or more communication interfaces 169, which allow software and data to be transferred between the client device 110 and external devices, such as another client device 110, the computers 34, 54, and other devices that may be locally or remotely connected to the system 100. Examples of the one or more communication interfaces 169 may include, but are not limited to, a modem, a network interface (such as an Ethernet card or a wireless card), a communication port, a Personal Computer Memory Card International Association ("PCMCIA") slot and card, one or more Personal Component Interconnect ("PCI") Express slots and cards, or any combination thereof. The one or more communication interfaces 169 may also include a wireless interface configured for short-range communication, such as near field communication ("NFC"), Bluetooth, or other interfaces for communication via another wireless communication protocol. As briefly mentioned above, those skilled in the art will understand that the computers 34, 54 and portions of the system 100 may include some or all of the components of the client device 110.

[0046] Software and data transferred through one or more communications interfaces 169 are in the form of signals, which may be electronic, electromagnetic, optical, or other signals capable of being received by communications interfaces 169. These signals are provided to communications interfaces 169 over communications paths or channels. The channels may be implemented using wire or cable, fiber optics, a telephone line, a cellular link, a radio frequency ("RF") link, or other communications channels.

[0047] As used herein, the terms "non-transitory computer program medium" and "non-transitory computer readable medium" refer to media such as a removable storage unit 116, 118, or a hard disk installed in the hard disk drive 112. These computer program products provide software to the client device 110. Computer programs (also referred to as "computer control logic") may be stored in the main memory 108 and / or in the secondary memory 110. Computer programs may be received via one or more communications interfaces 169. Such computer programs, when executed by the processor 102, enable the client device 110 to perform the functions of the methods and systems discussed herein.

[0048] In various embodiments, as shown in FIG. 1A and FIG. 1B, the client device 110 may include a computing device, such as a hashing computer, a personal computer, a laptop computer, a tablet computer, a notebook computer, a handheld computer, a personal digital assistant, a portable navigation device, a mobile phone, a smartphone, a wearable computing device (e.g., a smart watch, a wearable activity monitor, a wearable smart jewelry, and other optical devices including eyeglasses and optical head mounted displays ("OHMD")), an embedded computing device (e.g., communicating with a smart fiber or electronic textile), or any other suitable computing device configured to store data and software instructions, execute the software instructions to perform operations, and / or display information on a display device, etc. The client device 110 may be associated with one or more users (not shown). For example, a user may operate the client device 110 to cause it to perform one or more operations according to various embodiments.

[0049] The client device 110 includes one or more tangible, non-transitory memories that store data and / or software instructions, and one or more processors configured to execute the software instructions. The client device 110 may include one or more display devices that display information to a user, and one or more input devices (e.g., a keypad, a keyboard, a touch screen, voice-activated control technology, or any other suitable type of known input device) that allow the user to input information into the client device. The processor of the client device 110 may be any central processing unit ("CPU"), microprocessor, microcontroller, or computing device or circuitry for executing instructions. The processor is connected to a communications infrastructure (e.g., a communications bus, a crossover bar, or a network). Various software embodiments are described in the context of this exemplary client device 110. After reading this description, it will be apparent to one of ordinary skill in the art how to implement the method using a client device 110 that includes other systems or architectures. One of ordinary skill in the art will understand that a computer may have a similar and / or identical architecture to the client device 110. Stated another way, a computer may include some, all, or additional functional components of the client device 110 shown in FIGS. 1A and 1B.

[0050] The client device 110 also includes one or more communication interfaces 169, which allow software and data to be transferred between the client device 110 and external devices, such as another client device 110 and other devices that may be locally or remotely connected to the client device 110. Examples of the one or more communication interfaces may include, but are not limited to, a modem, a network interface (e.g., a communication interface 169 such as an Ethernet card or a wireless card), a communication port, a PCMCIA slot and card, one or more PCI Express slots and cards, or any combination thereof. The one or more communication interfaces 169 may also include a wireless interface configured for short-range communication, such as NFC, Bluetooth, or other interface for communication via another wireless communication protocol.

[0051] Software and data transferred through one or more communications interfaces 169 are in the form of signals, which may be electronic, electromagnetic, optical, or other signals capable of being received by communications interfaces 169. These signals are provided to communications interfaces 169 over communications paths or channels. The channels may be implemented using wire or cable, fiber optics, a telephone line, a cellular link, a radio frequency ("RF") link, or other communications channels.

[0052] In embodiments where the system 100 and methods are implemented partially or completely using software, the software may be stored in a computer program product and loaded into the client device 110 using a removable storage drive, a hard drive, and / or a communications interface. The software, when executed by a processor, causes the processor to perform the functions of the methods described herein. In another embodiment, the methods are implemented primarily in hardware, using hardware components such as, for example, application specific integrated circuits ("ASICs"). Implementation of hardware state machines to perform the functions described herein will be understood by those skilled in the art. In yet another embodiment, the methods are performed using a combination of both hardware and software.

[0053] An embodiment of the subject matter described herein may be implemented within a system 100 that includes a back-end component, e.g., a data server, or includes a middleware component, e.g., an application server, or includes a front-end component (e.g., client device 110) having a graphical user interface or web browser through which a user may interact with an implementation of the subject matter described herein, or includes any combination of one or more such back-end, middleware, or front-end components. The components of the system may be interconnected by any form or medium of digital data communication (e.g., communication network 142). Communication network 142 may include one or more communication networks or media of digital data communication. Examples of communication network 142 include a local area network ("LAN"), a wireless LAN, an RF network, an NFC network, (e.g., a "WiFi" network), a wireless metropolitan area network ("MAN") connecting multiple wireless LANs, an NFC communication link, and a wide area network ("WAN"), e.g., the Internet, and combinations thereof. According to various embodiments of the present disclosure, communications network 142 may include the Internet and any one or more publicly accessible networks interconnected via one or more communications protocols, including, but not limited to, Hypertext Transfer Protocol ("HTTP") and Hypertext Transfer Protocol Secured ("HTTPS") and Secured Sockets Layer / Transport Layer Security ("SSL / TLS"), and Transmission Control Protocol / Internet Protocol ("TCP / IP"). Communications protocols according to various embodiments also include protocols that facilitate data transfer using radio frequency identification ("RFID") communications and / or NFC.Additionally, the communications network 142 may also include one or more mobile device networks, such as a GSM or LTE network or a PCS network, to enable client devices to transmit and receive data via applicable communications protocols, including those described herein. For ease of illustration, the communications network 142 is shown as an extension of the management server 130.

[0054] Client device 110 and server 130 are generally remote from each other and typically interact through communications network 142. The relationship of client device 110 and management server 130 arises by virtue of computer programs executing on the respective system components and having a client-server relationship to each other. System 100 may include a web / application server (not shown) in an embodiment that is used to gain access to the many services provided by management server 130.

[0055] In one aspect, client device 110 stores in memory one or more software applications that operate on the client device and are executed by one or more processors. In some cases, each client device stores a software application that, when executed by the one or more processors, operates to establish communication with management server 130 (e.g., via communications interface 169, over communications network 142) and retrieve information or data from management server 130 via database management system 150, according to various embodiments.

[0056] In various embodiments, the client device 110 may execute stored software applications to interact with the management server 130 over a network connection. The executed software applications may cause the client device 110 to communicate information (e.g., facial measurements (e.g., PD), user profile information, etc.). As described below, the executed software applications may be configured to enable a user associated with the client device 110 to obtain PD measurements using the camera 124. The stored software applications on the client device 110 may be configured to access web pages on the Internet or other suitable network based on communications that may interact with the communications network 142, as would be understood by one skilled in the art. For example, a user may access a user account on the management server 130 via an Internet web page. In this example, the management server 130 is configured to render the Internet web page for the user on the client device 110. Alternatively, the management server 130 may provide information to the stored software applications on the client device 110 over the communications network 142. In this example, client device 110 uses a graphical user interface display of a stored software application to display information provided by management server 130. In the above example, each user account may be associated with a developer, a client user, or an administrator / oversight authority, as will be appreciated by those skilled in the art and as described below.

[0057] According to various embodiments, system 100 includes a database management system / storage 150 for managing and storing data, such as face measurement information (e.g., PD, etc.), user account authentication information, and other data maintained by administration server 130. The database management system and / or storage is referred to herein for convenience as simply DBMS 150. DBMS 150 may be communicatively coupled to various modules and engines (not shown).

[0058] It should be understood that various forms of data storage or repositories accessible by a computing system may be used within system 100, such as hard drives, tape drives, flash memory, random access memory, read only memory, EEPROM storage, in-memory databases such as SAP HANA, and the like, as well as combinations thereof. The stored data may be formatted within the data store in one or more formats, such as flat text file storage, relational databases, non-relational databases, XML, comma separated values, Microsoft Excel files, or any other format known to those skilled in the art, as well as any combination thereof suitable for a particular application. The data store may provide various forms of access to the stored data, such as through file system access, network access, SQL protocols (e.g., ODBC), HTTP, FTP, NES, CIFS, and the like, as well as any combination thereof.

[0059] According to various embodiments, the client device 110 is configured to access the DBMS 150 via the management server 130. In various embodiments, the DBMS 150 is configured to maintain a database schema. For example, the database schema may be configured to maintain identifiers for columns in the DBMS 150 associated with face measurements or user account information. In this aspect, the identifiers refer to specific information related to the categories described above. The database schema in the DBMS 150 may be configured or organized in any suitable manner within the system. Although the examples described above identify category identifiers, any number of suitable identifiers may be used to maintain records related to the system described herein. In addition, the database schema may include additional categories and identifiers not described above to maintain record data within the system 100. The database may also provide statistical and marketing information related to users of the system 100.

[0060] The above database schema advantageously organizes the identifiers in a manner that allows the system to operate more efficiently. In some embodiments, the categories of identifiers in the database schema improve efficiency by grouping identifiers with the administrative model of the associated management server 130.

[0061] In various embodiments, the management server 130 includes computing components configured to store, maintain, and generate data and software instructions. For example, the management server 130 may include or have access to one or more processors 24, one or more servers (not shown), and tangible, non-transitory memory devices for storing software or code to execute (e.g., a local data store (in addition to the DBMS 150)), and / or additional data stores. The servers may include one or more computing devices configured to execute stored software instructions to perform one or more processes according to various embodiments. In some embodiments, the DBMS 150 includes a server that executes software instructions to perform operations that provide information to at least one other component of the computing environment 100, such as providing data over a network, such as the communications network 142, to another data store, or to a third party recipient (e.g., a banking system, a third party vendor, an information collection agency, etc.).

[0062] Management server 130 may be configured to provide one or more websites, digital portals, or any other suitable services configured to perform various functions of the components of management server 130. In some embodiments, management server 130 maintains an application programming interface ("API") through which the functions and services provided by server 130 may be accessed through one or more application programs executed by client device 110. In various embodiments, management server 130 may provide information to software applications on client device 110 for display in graphical user interface 168.

[0063] In some embodiments, management server 130 provides information to client devices 110 (e.g., through APIs associated with executed application programs), which in turn present portions of that information to corresponding users through corresponding respective graphical user interfaces 168 or web pages.

[0064] In various embodiments, the management server 130 is configured to provide or receive information related to services provided by the management server 130 to the client devices 110. For example, the client devices 110 may receive information via the communication network 142 and store portions of the information in locally accessible storage and / or network accessible storage and data stores (e.g., cloud-based storage). For example, the client devices 110 may execute stored instructions (e.g., application programs, web browsers, and / or mobile applications) to process portions of the stored data and render portions of the stored data for presentation to respective users. The management server 130 may include additional servers (not shown) that may be incorporated as corresponding nodes in a distributed network or as corresponding networked servers in a cloud computing environment. Additionally, the server may communicate via the communication network 142 with one or more additional servers (not shown) that may facilitate distribution of processing for parallel execution by the additional servers.

[0065] PD Processing Management In various embodiments of the present disclosure, a process for measuring or estimating a user's PD on a client device 110 is provided. Referring now to FIG. 2, a flow diagram illustrating an example PD measurement process 200 using a depth map, according to some embodiments of the present disclosure. First, at step 202, an image is taken by a user on the client device 110 via at least one camera (such as camera 124). In some embodiments, before using the PD system, instructions for using the PD system (as shown, e.g., instructions 900 in FIG. 9) are provided to the user. In some embodiments, feedback is provided to the user as to whether the user's head is properly positioned for accurate measurement (i.e., whether the head is in a position for accurate image taking). Such feedback may be communicated, for example, in the form of text, speech, and / or symbols, instructing the user to move their head and / or client device 110 in various directions, such as further away, closer, up, down, right, left, diagonally, rotate clockwise or counterclockwise, and / or look at a point or area on the screen of the client device 110 or look off the screen. The feedback may include one or more indicators on the screen of the client device 110 that the user can follow with their head and / or eyes. As the user follows the feedback, the user eventually positions their head for an accurate measurement. By way of example, FIGS. 10 and 11 show an exemplary indicator 1000 with text instructions instructing the user to "Focus on the dot. Follow the dot as it moves." As the indicator moves from a start position to an end position on the screen of the client device 110, the user moves their head and / or eyes to follow the indicator. Prior to image capture, additional feedback may be given to the user, such as, for example, "move further away" as shown in FIG. 10, to further move the client device 110 having the head and / or eyes and / or at least one camera (such as camera 124).Once the user's head is properly positioned for accurate measurements, an image is captured by the user on the client device 110 via at least one camera (such as the camera 124). The above feedback may occur in conjunction with step 202. According to various embodiments, the captured image is a 2D image and a corresponding depth map. In some embodiments, the depth map is obtained using a TrueDepth® camera. As an example, the TrueDepth® camera emits an array of infrared dots (e.g., 30,000 dots) in a known pattern onto the subject, and an infrared sensor records how the dots interact with the scene, from which information a 3D structure is generated. The TrueDepth® camera includes a proximity sensor for activation and an ambient light sensor for setting the output light level. The 3D information may be used to determine the physical size of the captured object. Although a TrueDepth® camera is disclosed in connection with this embodiment, those skilled in the art will understand that a variety of other depth-sensing cameras may be used to perform processing in the systems and methods described herein (e.g., The Point Cloud Depth Camera™, Intel RealSense®, Kinect® depth cameras, Depth+Multi-Spectral Camera™, etc.).

[0066] In various embodiments, the 2D image and corresponding 3D depth map may be retrieved from a storage unit on the client device 110. In some embodiments, the 2D image and corresponding 3D depth map information may be received by the client device 110 for processing as described herein. It should be appreciated that the 2D image and corresponding 3D depth map may be retrieved by different devices and / or generated non-concurrently with the steps described herein.

[0067] In various embodiments, a coarse pupil localization is obtained in step 203 using a number of face mesh landmarks. According to various embodiments, the 3D information identified in step 202 is used to generate coordinates of face mesh vertices close to the center of the eye (e.g., 0-5 mm from the pupil) to obtain an approximate location of the pupil. By way of example, vertices 1095, 1094, 1107, and 1108 are close to the right pupil, and vertices 1076, 1075, 1062, and 1063 are close to the left pupil. Those skilled in the art will appreciate that the vertices identified in the above example will vary based on the coordinates generated for an individual, as opposed to the actual vertices determined. FIG. 3 is an exemplary image of a user's pupil region superimposed with a face mesh 905 (represented by a number of lines 910 connected to a number of vertices 920), according to some embodiments of the present disclosure, the face mesh showing a primary vertex 950 and a centroid 951 of the primary vertices. In some embodiments, for each pupil, the 3D centroid of the vertices corresponding to each pupil is calculated to determine the 2D image coordinates of the corresponding centroid. In various embodiments, this calculation is performed by SceneKit's projectPoint(_:) method or other method of projecting one or more points from a 3D world coordinate system of a scene to a 2D pixel coordinate system of a renderer. Those skilled in the art will recognize that the calculations to determine the corresponding 2D image coordinates of the 3D centroid may be performed by any suitable application or system.

[0068] In step 204, according to various embodiments, the initial pupil location obtained in step 203 is refined using convolution with a 2D center-periphery filter. In this context, convolution can be thought of as a method for finding a region in an image that best matches the appearance of a test pattern, known as a kernel. In some embodiments, a kernel with a dark circle surrounded by a white annulus is used to find a region in the image that resembles that kernel. In various embodiments, the convolution method may be run multiple times with kernels of different sizes if the pattern to be located has an unknown size. In some embodiments, an estimate of the pupil size (e.g., approximately 12 mm in diameter; approximately = + / - 2 mm) may be used to determine the approximate eye distance from the camera using the associated face mesh. Using the estimate of the pupil size and the following formula, a prediction can be made of how large the iris will appear in the image: The pixel diameter D of the iris is given by:

[0069]

number

[0070] In various embodiments, the kernel is constructed as follows:

[0071]

number

[0072]

number

[0073] 4(a)-4(c) are exemplary diagrammatic representations of refining an initial pupil position using convolution with a 2D image of step 204 in accordance with some embodiments of the present disclosure, where FIG. 4A shows a filter kernel (or kernels) with a center-periphery structure, FIG. 4B shows an image patch having a circle 990 with a cross symbol indicating where it has the maximum response to the kernel, and FIG. 4C shows the image response to convolution with the kernel.

[0074] In the final pupil location refinement step, step 205, the exact boundary of the iris is estimated and a robust fit of the boundary is performed using a circle. According to various embodiments, 1.5D pixel-wide regions are considered, centered on the results of the previous localization step in 204. For each region, a horizontal gradient kernel is applied to the left and right halves of the row. To the left half of the row, a kernel of [+1,0,-1] is applied, which elicits a strong response to light-to-dark transitions. To the right half of the row, a kernel of [-1,0,+1] is applied, which elicits a strong response to dark-to-light transitions. For each half of the row, the column with the strongest response is considered as a candidate boundary point. To account for the fact that the entire iris is not visible and that the top of the iris is often more hidden than the bottom, only rows corresponding to less than 30° above the center of the region and 45° below the center of the region are considered.

[0075] FIG. 5 is an exemplary illustration of a RANSAC iterative method for a pupil region image according to some embodiments of the present disclosure. In FIG. 5, solid circle 2000 indicates an initial estimate of the iris boundary, solid cross 2001 indicates an initial estimate of the iris center, filled dots 3010 indicate inner value boundary points, open dots 3020 indicate outlier boundary points, dotted circle 3000 indicates a final estimate of the iris boundary, and dotted cross 3001 indicates a final estimate of the iris center. According to various embodiments, and continuing with step 205, once candidate boundary points have been identified, the circle that best matches those points needs to be determined. Since there are often false boundary points due to corneal reflections and other irregularities, it is necessary to find a way to use only true edge points while rejecting false positives. In various embodiments, this is accomplished using a RANSAC technique. According to some embodiments, RANSAC works by fitting a model to a randomly selected subset of points and choosing the one that gives the lowest error. Points that are not well fitted by the final circle model are considered outliers, and the remainder of the points are considered "inside values."

[0076] In step 206 (collectively 206a and 206b), the coordinates of the pupil centers are related to a 3D coordinate system to calculate the physical distance between the pupil centers. In various embodiments, the physical distance between the pupil centers may be calculated in step 206a according to a depth map method. In this embodiment, camera calibration is used on the image frames provided by software to obtain the z coordinate. In various embodiments, this software may be Apple iOS™ or similar operating software of the client device 110. In this embodiment, a value corresponding to the refined position of the pupil in the 2D image may be determined in the depth map.

[0077] Alternatively, in step 206b, according to various embodiments, a procedure may be used to determine a point on the 3D face mesh that corresponds to the pupil center, in which a ray is cast to an image coordinate and the 3D world coordinate of the point where the ray intersects with the face mesh is returned.

[0078] Referring to step 206 (collectively 206a and 206b), according to various embodiments, using a transform provided by Apple iOS™, those 3D pupil points can be expressed in a face-centered coordinate system where x=0 corresponds to the midline of the face and the x-axis corresponds to the horizontal axis of the head, and the binocular PD is the x-distance between the pupil positions and the monocular PD is the x-distance between each pupil position and zero.

[0079] FIG. 6 is an exemplary illustration of a process for measuring or estimating distance PD according to some embodiments of the present disclosure. In step 207, a correction to PD is made based on the distance at which the image is taken from the camera 124. For example, the client device 110 (e.g., a mobile device) with the camera 124 is held at arm's length, which corresponds to approximately 400 mm. When the individual gazes at the screen / display 168 of the client device 110, the PD of the individual will be lower than the PD when gazing at a distance, which is the most suitable value for accurate PD determination. Often, near PD is converted to distance PD by adding a fixed value. However, in this example, the gaze distance from the subject is known and a more principled correction can be made. In some embodiments, the lateral radius of the eyeball can be assumed to be, for example, 12 mm. The eyeball center coordinate can then be calculated by extending the ray defined by the camera coordinate and the pupil center coordinate by another 12 mm. In some embodiments, the lateral radius of the eyeball is in the range of 10 mm to 14 mm, or any intermediate value within that range. In some embodiments, the ocular lateral radius is 10 mm, 11 mm, 12 mm, 13 mm, or 14 mm. In some embodiments, the ocular lateral radius is approximately 12 mm (where "approximately" is + / - 2 mm). This process is illustrated in FIG.

[0080] In various embodiments, it may be desirable to aggregate multiple measurements to discard potential outliers. Taking the median binocular PD measurement is the simplest way to do this. For monocular measurements, taking the median of the left eye ("OS (Oculus sinister)") and right eye ("OD (Oculus dexter)") values ​​will likely prevent them from being added to the median binocular value. It is more appropriate to determine the percentage of binocular PD assigned to the OS and OD PD values, calculate the median percentage, and then multiply it by the median binocular PD value. According to various embodiments, the PD measurement is within 0.5 mm of the pupillometer measurement. In some embodiments, the PD measurement is within 1.0 mm of the pupillometer measurement.

[0081] 7 is an example of a PD calculation interface 800 according to some embodiments of the present disclosure. "Method A" refers to the depth map method described herein. "Method B" refers to the face mesh method also described herein.

[0082] 8-11 are exemplary interfaces 801, 802, 803, and 804, respectively, for measuring PD according to some embodiments of the present disclosure, and FIG. 12 shows another example of a PD calculation interface 805 according to some embodiments of the present disclosure. Such interfaces may be found on the screen / display 168 of the client device 110 and may include one or more hyperlinks, web links, image links, and / or service buttons (e.g., an "add to order" button 1010 or other purchase-related buttons) to guide the user to review, select, and / or purchase a product, such as eyeglasses, for which PD information is required.

[0083] In various embodiments of the present disclosure, the system 100 may be configured to store facial measurement data (e.g., PD, etc.) of a particular user of the client device 110. In various embodiments, the facial measurement data of each user may be associated with a user account. In some embodiments, the client device 110 may transmit the facial measurement data to the management server 130 for storage in the DBMS 150 associated with the user account. In various embodiments, the facial measurement data may be aggregated with a consumer's satisfaction score or rating to improve the facial measurement processing. In some embodiments, product recommendations are provided to the user of the client device 110 based on the facial measurement data associated with the consumer's satisfaction score, purchase history, or other distinguishing characteristics such as the size, thickness, and / or dimensions of a particular product.

[0084] The present disclosure may be embodied in the form of methods and apparatus for carrying out those methods. The present disclosure may also be embodied in the form of program code embodied in a tangible medium, such as a secure digital ("SD") card, a USB flash drive, a diskette, a CD-ROM, a DVD-ROM, a Blu-ray® disk, a hard drive, or any other non-transitory machine-readable storage medium, which when loaded and executed by a machine, such as a computer, the machine becomes an apparatus for carrying out the present disclosure. The present disclosure may also be embodied in the form of program code, whether stored in a storage medium, loaded and / or executed by a machine, or transmitted over some transmission medium, such as through electrical wiring or cable, through optical fiber, or through electromagnetic radiation, which when loaded and executed by a machine, such as a computer, the machine becomes an apparatus for carrying out the present disclosure. When implemented on a general-purpose processor, the program code segments combine with the processor to provide a unique device that operates similarly to specific logic circuits.

[0085] It may be emphasized that the above-described embodiments are merely possible examples of implementations and merely set forth a clear understanding of the principles of the present disclosure. Many variations and modifications may be made to the above-described embodiments of the present disclosure without significantly departing from the spirit and principles of the present disclosure. All such variations and modifications are intended to be included within the scope of the present disclosure and protected by the following claims.

[0086] Although the present specification contains many specific details, they should not be construed as limitations on the scope of the disclosure or claimed subject matter, but as descriptions of features that may be specific to certain embodiments of a particular disclosure. Certain features described herein in the context of separate embodiments may also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented separately as multiple embodiments or in any suitable subcombination. Furthermore, although features may be described above in a particular combination and initially claimed as such, one or more features from the claimed combination may, in some cases, be removed from the combination, and the claimed combination may be directed to a subcombination or a variation of the subcombination.

[0087] While various embodiments have been described, it should be understood that the described embodiments are merely illustrative and that the scope of the subject matter is to be given the fullest range of equivalents, numerous modifications and variations that will naturally occur to those skilled in the art from consideration thereof. [Explanation of symbols]

[0088] 100 Systems 110, 110-1, 110-2, 110-3 Client Devices 142 Communication Networks 50, 50-1, 50-2 Computer System Network 130 Management Server 150-1, 150-2 Data storage unit 150 Database Management System, DBMS 24 Processing unit, processor 28 PD measurement GUI 30 Client User GUI 32 Graphical User Interfaces, Portals 54 Remote Computer 34 Local Computer 102 processors 104 Communications Infrastructure 168 Display, Graphical User Interface 108 Main Memory 110 Secondary Memory 114 Removable Memory Drive 116 Removable Storage Unit 118 Removable Storage Unit 120 Interface 122 Speaker 123 Oscillator 124 Camera 125 Light Emitting Diode 126 Microphones 128 Input Devices 129 Global Positioning System Module 169 Communication Interface 1000 indicator 1095, 1094, 1107, 1108, 1076, 1075, 1062, 1063 Vertex 905 Face Mesh 920 Vertex 910 line 950 Major Vertex 951 Center of gravity 990 yen 2000 yen 2001 Cross Sign 3010 dots 3020 dots 3000 yen 3001 Cross sign 800 PD Calculation Interface 801, 802, 803, 804 Interfaces 805 PD calculation interface 1010 Button

Claims

1. 1. A method of operating an interpupillary distance ("PD") system, comprising: capturing a first 2D image and a corresponding 3D depth map of a subject's face with at least one camera of the interpupillary distance system; determining pupil localization information using the first 2D image and a corresponding 3D depth map; refining one or more pupil locations based on the pupil location information; determining one or more pupil center coordinates; and calculating the PD of the subject between the centers of each pupil.

2. 2. The method of claim 1, further comprising: determining the pupil localization information using a plurality of face mesh landmarks to generate a plurality of face mesh vertices proximate to centers of the eyes to obtain one or more initial pupil locations on the subject.

3. The method of claim 1 , wherein the one or more pupil locations are refined using convolution with one or more kernels and one or more 2D center-periphery filters.

4. The method of claim 3 , wherein the one or more kernels use an estimated pupil size of approximately 12 mm.

5. The method of claim 1 , wherein the step of calculating the PD uses depth map values ​​corresponding to the refined one or more pupil positions in the 2D image.

6. The method of claim 1 , wherein the step of calculating the PD is determined by using a point on a 3D face mesh that corresponds to a center of each pupil.

7. The method of claim 1 , further comprising: making a correction to the calculated PD using a distance at which the first 2D image is taken from the at least one camera.

8. A program including computer-executable instructions, which when executed by a processor, cause the processor to: acquiring a first 2D image and a corresponding 3D depth map of a subject's face from at least one camera; determining pupil localization information using the first 2D image and a corresponding 3D depth map; refining one or more pupil locations based on the pupil location information; and Determining one or more pupil center coordinates; calculating the PD of the subject between the centers of each pupil; A program that causes the

9. 9. The program of claim 8, further comprising: determining the pupil localization information using a plurality of face mesh landmarks to generate a plurality of face mesh vertices proximate to centers of the eyes to obtain one or more initial pupil positions for the subject.

10. The program of claim 8 , wherein the one or more pupil locations are refined using convolution with one or more kernels and one or more 2D center-periphery filters.

11. The program of claim 9 , wherein the one or more kernels use an estimated pupil size of approximately 12 mm.

12. The method of claim 8 , wherein calculating the PD uses depth map values ​​corresponding to the refined one or more pupil positions in the 2D image.

13. 9. The program of claim 8, wherein calculating the PD is determined by using a point on a 3D face mesh that corresponds to a center of each pupil.

14. 9. The program of claim 8, wherein the computer executable instructions further cause the processor to perform a correction to the calculated PD using a distance at which the first 2D image is taken from the at least one camera.

15. 1. A pupillary distance ("PD") system comprising: a mobile device, the mobile device comprising: At least one camera; a memory for storing information relating to images and information obtained from said at least one camera; 1. A processor comprising: acquiring a 2D image and a corresponding 3D depth map of a subject's face from the at least one camera; determining pupil localization information using the 2D images and corresponding 3D depth maps; refining one or more pupil locations based on the pupil location information; and Determining one or more pupil center coordinates; calculating the PD between centers of each of the subject's pupils; A processor configured to:

1. An interpupillary distance ("PD") system comprising:

16. 16. The PD system of claim 15, wherein the pupil localization is determined using a plurality of facial mesh landmarks to generate a plurality of facial mesh vertices proximate to the center of the eye to obtain one or more initial pupil positions for the subject.

17. The PD system of claim 15 , wherein the one or more pupil locations are refined using convolution with one or more kernels and one or more 2D center-periphery filters.

18. 20. The PD system of claim 17, wherein the one or more kernels use an estimated pupil size of approximately 12 mm.

19. The PD system of claim 15 , wherein calculating the PD uses depth map values ​​corresponding to the refined one or more pupil positions in the 2D image.

20. 16. The PD system of claim 15, wherein calculating the PD is determined by using a point on a 3D face mesh that corresponds to a center of each pupil.

Citation Information

Patent Citations

  • Actual pupil distance measuring method, device and equipment based on monocular camera

    CN111854620A

  • method for determining distances at the anterior segment of the eye

    DE10108797A1

  • Method of setting reference front of three-dimensional facial image, method of selecting spectacles using the same, and method of generating customer records using the same

    JP2019109491A

  • Method for determining ocular measurements using a consumer sensor

    US20160166145A1

  • Eye tracking using a depth sensor

    WO2016142489A1