Accumulation and confidence assignment of iris codes

By generating bitwise representation of iris images and applying statistical methods, the problem of insufficient accuracy of iris recognition systems in the prior art under different conditions is solved, and higher recognition accuracy and reliability are achieved.

CN117576773BActive Publication Date: 2025-03-11MAGIC LEAP INC
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
CN202311552501.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2017-03-24
Filing Date
2018-03-23
Publication Date
2025-03-11
Estimated Expiration
2038-03-23

AI Technical Summary

Technical Problem

Existing iris recognition systems have difficulty maintaining accuracy when image acquisition and changes in quality, object status, orientation and lighting conditions, resulting in high error acceptance and error rejection rates.

Method used

By generating bitwise representations of iris images (iri codes), the orientation data of iris structures is determined using normalization and filtering techniques, and the accuracy of iris code comparison is improved through accumulation and application of statistical methods.

Benefits of technology

It improves the accuracy of iris code comparison, reduces the error acceptance rate and error rejection rate, and enhances the reliability of the system under different conditions.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117576773B_ABST
    Figure CN117576773B_ABST
Patent Text Reader

Abstract

A system and method related to iris recognition is disclosed. A system is disclosed, the system comprising: an iris imager configured to acquire an iris image; and a processor configured to receive a first plurality of iris images from the iris imager, generate a first plurality of iris codes corresponding to the first plurality of iris images, generate a distribution metric corresponding to iris unit locations, generate a first composite iris code using the distribution metric, and generate a first match value using the first composite iris code and a first stored iris code.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the Chinese patent application “Accumulation and confidence allocation of iris codes” with application number 201880034222.1 (filing date March 23, 2018).

[0002] CROSS-REFERENCE TO RELATED APPLICATIONS

[0003] This application claims the benefit of priority to U.S. Provisional Application Serial No. 62 / 476,513, filed on March 24, 2017, the entire contents of which are hereby incorporated by reference in their entirety. Technical Field

[0004] The disclosed examples generally relate to iris recognition, including iris recognition systems for access control or identity screening, and systems incorporated into user wearable devices (including head-mounted display devices). Background Art

[0005] The iris of the human eye presents a visual pattern that is typically unique and permanent to a single user, is consistent over time, and can be reliably imaged. Therefore, recognition and analysis of iris image data can be an advantageous mechanism for identifying a single user. Systems designed to recognize the iris of the human eye are particularly useful in security and access control applications. Such systems benefit from being accurate, reliable, and available under many conditions. Therefore, it is desirable that iris recognition systems be tolerant of changes in, for example, image acquisition and quality, object state, orientation, and lighting conditions; and be accurate, including achieving low false acceptance and false rejection rates. Summary of the invention

[0006] Apparatus and methods for performing iris recognition are described herein. In some examples, an iris image is acquired from a human user of the system, such as by a camera, and a bitwise representation of the iris image (an "iris code") is generated. In some examples, the iris code is generated by normalizing the iris image and dividing it into a plurality of cells, determining orientation data corresponding to the iris structure in the cell using known methods (such as filtering techniques or wavelet techniques), and assigning a binary representation to the orientation data. In some examples, variable cells of the generated iris code may be identified and excluded to adjust and improve the accuracy of iris code comparisons. In some examples, the generated iris codes are accumulated and used to generate "fuzzy" iris code values; applying various statistical methods to these fuzzy iris code values ​​may result in improved accuracy of iris code comparisons. BRIEF DESCRIPTION OF THE DRAWINGS

[0007] Figure 1 Depicts a mixed reality scene with virtual reality objects and physical objects viewed by a person.

[0008] Figure 2An example of a wearable system is depicted.

[0009] Figure 3 Example components of a wearable system are depicted.

[0010] Figure 4 An example of a waveguide stack for a wearable device that outputs image information to a user is depicted.

[0011] Figure 5 An example of an eye is depicted.

[0012] Figure 5A Depicted is an example coordinate system for determining eye pose of an eye.

[0013] Figure 6 A wearable system including an eye tracking system is depicted.

[0014] Figure 7 Depicts an example of an iris recognition system.

[0015] Figure 8 An example process for comparing iris codes is depicted.

[0016] Fig. 9 An example process for accumulating and comparing iris codes is depicted.

[0017] Fig. 10A An example binary iris code and an example blurred iris code are depicted.

[0018] Fig. 10B Two example blurred iris codes are depicted.

[0019] Fig.11 An example of a system architecture is shown that may be embodied within any portable or non-portable device. DETAILED DESCRIPTION

[0020] Example 3D display for a wearable system

[0021] A wearable system (also referred to herein as an augmented reality (AR) system) can be configured to present a 2D or 3D virtual image to a user. The image can be a still image, a frame of a video, a combination of videos, etc. At least a portion of the wearable system can be implemented on a wearable device, which can present a virtual reality (VR), AR, or mixed reality (MR) environment alone or in combination for user interaction. The wearable device can be used interchangeably as an AR device (ARD). In addition, for the purposes of this disclosure, the term "AR" is used interchangeably with the term "MR".

[0022] Figure 1 An illustration of a mixed reality scene with certain VR objects and certain physical objects viewed by a person is depicted in accordance with some embodiments. Figure 1 , an MR scene 100 is depicted in which a user of MR technology sees a real-world park-like setting 110 featuring people, trees, and buildings in the background, as well as a physical platform 120. In addition to these items, the user of MR technology also perceives that they "see" a robotic statue 130 standing on the concrete platform 120, and a cartoon-like avatar character 140 that looks like an avatar of a flying bee, even though these elements do not exist in the real world.

[0023] In order for a 3D display to produce a realistic sense of depth, and more specifically, a simulated sense of surface depth, it may be desirable for each point in the display's field of view to generate an accommodation response corresponding to its virtual depth. If the accommodation response to a displayed point does not correspond to the virtual depth of that point (as determined by the binocular depth cues of convergence and stereopsis), the human eye may experience an accommodation conflict, resulting in unstable imaging, harmful eye fatigue, headaches, and, in the absence of accommodation information, an almost complete lack of surface depth.

[0024] VR, AR, and MR experiences may be provided by a display system having a display in which images corresponding to one or more depth planes are provided to a viewer. For each depth plane, the images may be different (e.g., providing a slightly different rendering of a scene or object) and may be focused on separately by the viewer's eyes, thereby facilitating providing depth cues to the user based on the eye accommodation required to bring different image features of a scene located at different depth planes into focus, or based on observing different image features at different depth planes that are out of focus. As discussed elsewhere herein, such depth cues provide a credible perception of depth.

[0025] Figure 2 An example of a wearable system 200 that can be configured to provide an AR / VR / MR scene according to some embodiments is shown. The wearable system 200 may also be referred to as an AR system 200. The wearable system 200 includes a display 220 and various mechanical and electronic modules and systems that support the functions of the display 220. The display 220 can be coupled to a frame 230, which can be worn by a user, wearer, or viewer 210. The display 220 can be positioned in front of the eyes of the user 210. The display 220 can present an AR / VR / MR scene to the user 210. The display 220 may include a head-mounted display (HMD) worn on the head of the user 210.

[0026] In some embodiments, speaker 240 is coupled to frame 230 and positioned near the ear canal of user 210 (in some embodiments, another speaker not shown is positioned near the other ear canal of user 210 to provide stereo / plastic sound control). Display 220 may include an audio sensor (e.g., microphone) 232 for detecting an audio stream from the environment and capturing ambient sound. In some embodiments, one or more other audio sensors not shown are positioned to provide stereo reception. Stereo reception can be used to determine the location of the sound source. Wearable system 200 can perform voice or speech recognition on the audio stream.

[0027] The wearable system 200 may include an outward-facing imaging system 464 ( Figure 4 ), the outward-facing imaging system 464 observes the world in the environment surrounding the user 210. The wearable system 200 may also include an inward-facing imaging system 462 ( Figure 4 ), the inward-facing imaging system 462 can track the eye movement of user 210. Inward-facing imaging system 462 can track the movement of one eye or the movement of both eyes. Inward-facing imaging system 462 captures an image of the iris of user 210, and the image of the iris of user 210 can be used to generate a bitwise representation of the iris image ("iris code"). Inward-facing imaging system 462 can be attached to frame 230 and can be in electrical communication with module 260 or 270, which module 260 or 270 can process the image information acquired by inward-facing imaging system 462 to determine, for example, pupil diameter or orientation of the eye, eye movement or eye gesture of user 210, a bitwise representation of the iris image ("iris code"), etc. Inward-facing imaging system 462 may include one or more cameras. For example, at least one camera may be used to image each eye. The images acquired by the camera can be used to determine the pupil size, eye gesture and / or iris code of each eye, respectively.

[0028] As an example, wearable system 200 can acquire an image of a user's gesture using outward-facing imaging system 464 or inward-facing imaging system 462. The image can be a still image, a video frame, or a video.

[0029] The display 220 can be operably coupled 250, such as by wired leads or wireless connectivity, to a local processing and data module 260, which can be mounted in a variety of configurations, such as fixedly attached to the frame 230, fixedly attached to a helmet or hat worn by the user 210, embedded in headphones, or otherwise removably attached to the user 210 (e.g., in a backpack configuration, in a belt-coupled configuration).

[0030] The local processing and data module 260 may include a hardware processor and digital memory, such as non-volatile memory (e.g., flash memory), both of which may be used to assist in the processing, caching, and storage of data. The data may include data that is: a) captured from a sensor (e.g., that may be operably coupled to the frame 230 or otherwise attached to the user 210), such as an image capture device (e.g., a camera in the inward-facing imaging system 462 or the outward-facing imaging system 464), an audio sensor (e.g., microphone 232), an inertial measurement unit (IMU), an accelerometer, a compass, a global positioning system (GPS) unit, a wireless device, or a gyroscope; or b) acquired or processed using the remote processing module 270 or remote data repository 280, and may be passed to the display 220 after such processing or acquisition. The local processing and data module 260 may be operably coupled to the remote processing module 270 and / or the remote data repository 280 via communication links 262 and / or 264, such as via a wired or wireless communication link, so that these remote modules can be used as resources for the local processing and data module 260. Furthermore, the remote processing module 280 and the remote data repository 280 may be operably coupled to each other.

[0031] In some embodiments, the remote processing module 270 may include one or more processors configured to analyze and process data or image information. In some embodiments, the remote data repository 280 may include a digital data storage facility that may be used via the Internet or other network configuration in a "cloud" resource configuration. In some embodiments, all data is stored in the local processing and data module 260 and all calculations are performed in the local processing and data module 260, allowing for fully autonomous use from the remote module.

[0032] Example Wearable System

[0033] Figure 3 Example components of a wearable system according to some embodiments are schematically illustrated. Figure 3 2 shows a wearable system 200, which may include a display 220 and a frame 230. An enlarged view 202 schematically shows various components of the wearable system 200. In some embodiments, Figure 3 One or more of the components shown in the figure can be part of the display 220. The various components, alone or in combination, can collect various data (such as, for example, audio or visual data) associated with the user 210 of the wearable system 200 or the user's environment. It should be understood that other embodiments may have additional or fewer components depending on the application for which the wearable system 200 is used. Nevertheless, Figure 3An idea of ​​some of the various components and types of data that may be collected, analyzed, and stored by wearable system 200 is provided.

[0034] Figure 3 An example wearable system 200 is shown, which may include a display 220. The display 220 may include a display lens 226 that may be mounted to the head of the user 210 or a housing corresponding to the frame 230. The display lens 226 may include one or more transparent reflectors positioned by the frame 230 in front of the eyes 302, 304 of the user 210, and may be configured to bounce projected light 338 into the eyes 302, 304 and facilitate beam shaping while also allowing transmission of at least some light from the local environment. The wavefront of the projected light 338 may be bent or focused to coincide with the desired focal length of the projected light. As shown, two wide field of view machine vision cameras 316 (also referred to as world cameras) may be coupled to the frame 230 to image the environment surrounding the user 210. These cameras 316 may be dual capture visible light / non-visible (e.g., infrared) light cameras 316. The cameras 316 may be Figure 4 316. The images acquired by camera 316 may be processed by gesture processor 336. For example, gesture processor 336 may implement one or more object recognizers to recognize the gestures of user 210 or another person in the environment of user 210, or to recognize physical objects in the environment of user 210.

[0035] A pair of scanning laser shaping wavefront (e.g., for depth) light projector modules are shown having display mirrors and optics configured to project light 338 into the eyes 302, 304. The depicted view also shows two miniature infrared (IR) cameras 324 paired with IR light sources 326 (such as light emitting diodes "LEDs") that are configured to be able to track the eyes 302, 304 of the user 210 to support rendering, user input, iris code generation, etc. The IR cameras 324 may be Figure 4 , which may be configured to calculate real-time or near real-time head pose of the user based on the wide field of view image information output from the capture device 316. The head pose processor 336 may be a hardware processor and may be implemented as a processor. Figure 2 . The wearable system may also include one or more depth sensors 234. The depth sensor 234 may be configured to measure the distance between an object in the environment and the wearable device. The depth sensor 234 may include a laser scanner (e.g., LIDAR), an ultrasonic depth sensor, or a depth sensing camera. In some implementations, where the camera 316 has depth sensing capabilities, the camera 316 may also be considered to be a depth sensor 234. A processor 332 is also shown, which is configured to perform digital or analog processing to derive a pose from the sensor assembly 339 from the gyroscope, compass, or accelerometer data. The processor 332 may be Figure 2 337 (Global Positioning System) to assist with posture and location analysis. In addition, GPS 337 can further provide remote-based (e.g., cloud-based) information about the environment of user 210. This information can be used to identify objects or information in the environment of user 210.

[0036] Wearable system 200 can combine data acquired by GPS 337 with a remote computing system (such as, for example, remote processing module 270, another user's ARD, etc.), which can provide more information about the environment of user 210. As one example, wearable system 200 can determine the location of user 210 based on GPS data and retrieve a world map (e.g., by communicating with remote processing module 270) that includes virtual objects associated with the location of user 210. As another example, wearable system 200 can use camera 316 (which can be a Figure 4 316) to monitor the environment of the user 210. Based on the images acquired by the camera 316, the wearable system 200 can detect objects in the environment. The wearable system 200 can further use the data acquired by the GPS 337 to interpret the objects.

[0037] The wearable system 200 may also include a rendering engine 334 that may be configured to provide rendering information local to the user 210 to facilitate operation of the scanner and imaging into the eyes 302, 304 of the user 210 for the user's 210 view of the world. The rendering engine 334 may be implemented by a hardware processor such as, for example, a central processing unit or a graphics processing unit. In some embodiments, the rendering engine 334 is part of the local processing and data module 260. The rendering engine 334 may be communicatively coupled (e.g., via a wired or wireless link) to other components of the wearable system 200. For example, the rendering engine 334 may be coupled to the IR camera 324 via a communication link 274, and may be coupled to the projection subsystem 318 via a communication link 272 (which may project light into the eyes 302, 304 of the user 210 via a scanning laser device in a manner similar to a retinal scanning display). Rendering engine 334 may also communicate with other processing units, such as, for example, sensor gesture processor 332 and gesture processor 336 via links 276 and 294, respectively.

[0038] IR camera 324 (e.g., a miniature infrared camera) can be used to track eyes to support rendering, user input, iris code generation, etc. Some example eye poses can include where the user is looking or what depth he or she is focusing on (which can be estimated by eye vergence). GPS 337, gyroscope, compass and accelerometer, sensor assembly 339, etc. can be used to provide rough or fast pose estimates. One or more of cameras 316 can acquire images and poses, which, combined with data from associated cloud computing resources, can be used to map the local environment and share the user 210's view with other users.

[0039] Figure 3 The example components depicted in the figure are for illustration purposes only. For ease of illustration and description, multiple sensors and other functional modules are shown together. Some embodiments may include only one or a subset of these sensors or modules. In addition, the location of these components is not limited to Figure 3 . Some components may be mounted to or housed in other components, such as a belt-mounted component, a hand-held component, or a helmet component. As an example, the gesture processor 336, the sensor gesture processor 332, and the rendering engine 334 can be located in a waist pack and configured to communicate with other components of the wearable system 200 via wireless communication (such as ultra-wideband, Wi-Fi, Bluetooth, etc.) or via wired communication. The depicted frame 230 is preferably head-mountable and wearable by the user 210. However, some components of the wearable system 200 can be worn to other parts of the body of the user 210. For example, the speaker 240 can be inserted into the ear of the user 210 to provide sound to the user 210.

[0040] With respect to projected light 338, in some embodiments, the IR camera 324 can be used to measure the location to which the center of the user's eye geometrically extends (verge), which is generally consistent with the focal location or "focal depth" of the eye. The three-dimensional surface of all points to which the eye extends can be called a "horopter". The focal length can take a finite number of depths, or can vary infinitely. Light projected from the vergence distance appears to be focused to the eyes 302, 304, while light before or after the vergence distance is blurred. Examples of wearable devices and other display systems of the present disclosure are also described in U.S. Patent Publication No. 2016 / 0270656, the entire contents of which are incorporated herein by reference.

[0041] The human visual system is complex, and providing a realistic perception of depth is challenging. A viewer of an object may perceive the object as "three-dimensional" due to a combination of vergence and accommodation. The vergence movement of the two eyes relative to each other (e.g., the rolling movement of the pupils toward or away from each other to converge the eyes' line of sight to look at an object) is closely related to the focusing (or "accommodation") of the eye lenses. Under normal circumstances, changing the focus of the eye lenses, or accommodating the eyes, to change the focus from one object at a different distance to another object, will automatically result in a matching change in vergence to the same distance under a relationship called the "accommodation-vergence reflex." Likewise, under normal circumstances, a change in vergence will trigger a matching change in accommodation. A display system that provides a better match between accommodation and vergence can form a more realistic and comfortable three-dimensional image simulation.

[0042] The human eye can correctly resolve additional spatially coherent light with a beam diameter less than about 0.7 millimeters, regardless of where the eye is focused. Therefore, to create the illusion of proper depth of focus, eye vergence can be tracked with IR camera 324, and rendering engine 334 and projection subsystem 318 can be utilized to render all objects on or near the horopter in focus, and all other objects in varying degrees of defocus (e.g., using intentionally created blur). Preferably, display 220 renders to the user at a frame rate of about 60 frames per second or higher. As described above, preferably, IR camera 324 can be used for eye tracking, and the software can be configured to pick up not only vergence geometry but also focus position cues for use as user input, and also pick up iris encoder generation. Preferably, such a display system is configured with brightness and contrast suitable for day or night use.

[0043] In some embodiments, the display 220 preferably has a latency of less than about 20 milliseconds for visual object alignment, an angular alignment of less than about 0.1 degrees, and a resolution of about 1 arc minute, which, without being limited by theory, is believed to be about the limit of the human eye. The display 220 can be integrated with a positioning system that can include a GPS element, optical tracking, a compass, an accelerometer, or other data source to assist in position and attitude determination; the positioning information can be utilized to facilitate accurate rendering in the user's 210 field of view of the relevant world (e.g., such information will help the glasses know where they are relative to the real world).

[0044] In some embodiments, the wearable system 200 is configured to display one or more virtual images based on the adaptation of the eyes 302, 304 of the user 210. Unlike other 3D display methods that force the user 210 to focus at the location of the projected image, in some embodiments, the wearable system 200 is configured to automatically change the focus of the projected virtual content to allow for more comfortable viewing of one or more images presented to the user 210. For example, if the eyes 302, 304 of the user 210 have a current focus of 1m, the image can be projected to coincide with the focus of the user 210. If the user 210 moves the focus to 3m, the image will be projected to coincide with the new focus. Therefore, in some embodiments, rather than forcing the user 210 to focus to a predetermined focus, the wearable system 200 allows the eyes 302, 304 of the user 210 to function in a more natural manner.

[0045] Such a wearable system 200 can eliminate or reduce the occurrence of eyestrain, headaches, and other physiological symptoms typically observed with VR devices. To achieve this, various embodiments of the wearable system 200 are configured to project virtual images at varying focal lengths via one or more variable focal length elements (VFEs). In some embodiments, 3D perception can be achieved via a multi-plane focusing system that projects images at a fixed focal plane away from the user 210. Some embodiments employ variable plane focusing, where the focal plane moves back and forth in the z-direction to coincide with the current focus state of the user 210.

[0046] In both the multi-plane focusing system and the variable plane focusing system, the wearable system 200 can use eye tracking to determine the vergence of the eyes 302, 304, determine the current focus of the user 210 and project a virtual image at the determined focus. In other embodiments, the wearable system 200 includes an optical modulator that variably projects light beams of different focal points in a raster pattern across the entire retina through a fiber scanner or other light generating source. Therefore, the ability of the display of the wearable system 200 to project images with varying focal lengths not only alleviates the user's adaptation to viewing 3D objects, but can also be used to compensate for the user's eye abnormalities, as further described in U.S. Patent Publication No. 2016 / 0270656, the entire contents of which are incorporated herein by reference. In some embodiments, the spatial light modulator can project an image to the user 210 through various optical components. For example, as further described below, the spatial light modulator can project an image onto one or more waveguides, which then transmit the image to the user 210.

[0047] Waveguide stack components

[0048] Figure 4 An example of a waveguide stack for outputting image information to a user is shown. The wearable system 400 includes a stack of waveguides or a stacked waveguide assembly 480, which can be used to provide a three-dimensional perception to the eye / brain using multiple waveguides 432b, 434b, 436b, 438b, 4400b. In some embodiments, the wearable system 400 can correspond to Figure 2 Wearable system 200, Figure 4 Some parts of the wearable system 200 are schematically shown in more detail. For example, in some embodiments, the waveguide assembly 480 can be integrated into Figure 2 in the display 220 .

[0049] Continue to refer Figure 4 , the waveguide assembly 480 may also include a plurality of features 458, 456, 454, 452 between the waveguides. In some embodiments, the features 458, 456, 454, 452 may be lenses. In other embodiments, the features 458, 456, 454, 452 may not be lenses. Instead, they may simply be spacers (e.g., cladding or structures used to form air gaps).

[0050] The waveguides 456, 454, 452 can be configured to send image information to the eye at various levels of wavefront curvature or light divergence. Each waveguide level can be associated with a particular depth plane and can be configured to output image information corresponding to that depth plane. The image injection devices 420, 422, 424, 426, 428 can be used to inject image information into the waveguides 440b, 438b, 436b, 434b, 432b, each of which can be configured to distribute incident light across each respective waveguide for output toward the eye 410. Light exits the output surface of the image injection devices 420, 422, 424, 426, 428 and is injected into the corresponding input edges of the waveguides 440b, 438b, 436b, 434b, 432b. In some embodiments, a single beam (e.g., a collimated beam) can be injected into each waveguide to output a cloned collimated beam for the entire field of view directed toward the eye 410 at a specific angle (and divergence) corresponding to the depth plane associated with the particular waveguide.

[0051] In some embodiments, the image injection devices 420, 422, 424, 426, 428 are discrete displays that each generate image information for injection into the corresponding waveguides 440b, 438b, 436b, 434b, 432b, respectively. In some other embodiments, the image injection devices 420, 422, 424, 426, 428 are outputs of a single multiplexed display that can transmit image information to each of the image injection devices 420, 422, 424, 426, 428, for example, via one or more light guides (such as fiber optic cables).

[0052] Controller 460 controls the operation of stacked waveguide assembly 480 and image injection devices 420, 422, 424, 426, 428. Controller 460 includes programming (e.g., instructions in a non-transitory computer readable medium) that regulates the timing and provision of image information to waveguides 440b, 438b, 436b, 434b, 432b. In some embodiments, controller 460 may be a single integrated device, or a distributed system connected via wired or wireless communication channels. In some embodiments, controller 460 may be a processing module 260 or 270 (in Figure 2 ).

[0053] The waveguides 440b, 438b, 436b, 434b, 432b can be configured to propagate light within each respective waveguide by total internal reflection (TIR). The waveguides 440b, 438b, 436b, 434b, 432b can each be planar or have another shape (e.g., curved) with major top and bottom surfaces and edges extending between those major top and bottom surfaces. In the illustrated configuration, the waveguides 440b, 438b, 436b, 434b, 432b can each include a light extraction optical element 440a, 438a, 436a, 434a, 432a configured to extract light out of the waveguide by redirecting light propagating within each respective waveguide to output image information to the eye 410. The extracted light can also be referred to as out-coupled light, and the light extraction optical element can also be referred to as an out-coupling optical element. The extracted light beam is output by the waveguide at the location where the light propagating in the waveguide strikes the light redirecting element. The light extraction optical element (440a, 438a, 436a, 434a, 432a) can be, for example, a reflective or diffractive optical feature. For ease of description and clarity, although shown as being disposed on the bottom major surface of the waveguide 440b, 438b, 436b, 434b, 432b, in some embodiments, the light extraction optical element 440a, 438a, 436a, 434a, 432a can be disposed on the top major surface or the bottom major surface, or can be disposed directly in the volume of the waveguide 440b, 438b, 436b, 434b, 432b. In some embodiments, the light extraction optical elements 440a, 438a, 436a, 434a, 432a can be formed as a layer of material that is attached to a transparent substrate to form waveguides 440b, 438b, 436b, 434b, 432b. In some other embodiments, the waveguides 440b, 438b, 436b, 434b, 432b can be a single piece of material, and the light extraction optical elements 440a, 438a, 436a, 434a, 432a can be formed on the surface or in the interior of the piece of material.

[0054] Continue to refer Figure 4As discussed herein, each waveguide 440b, 438b, 436b, 434b, 432b is configured to output light to form an image corresponding to a particular depth plane. For example, the waveguide 432b closest to the eye can be configured to transmit collimated light as injected into such waveguide 432b to the eye 410. The collimated light can represent an optical infinity focal plane. The next waveguide upward 434b can be configured to emit the collimated light through a first lens 452 (e.g., a negative lens) before it can reach the eye 410. The first lens 452 can be configured to produce a slightly convex wavefront curvature so that the eye / brain interprets the light from the next waveguide upward 434b as coming from a first focal plane that is closer inward from optical infinity toward the eye 410. Similarly, the third upward waveguide 436b outputs light through the first lens 452 and the second lens 454 before reaching the eye 410. The combined optical power of the first lens 452 and the second lens 454 can be configured to produce another incremental wavefront curvature so that the eye / brain interprets light from the third waveguide 436b as coming from a second focal plane that is closer inward toward the person from optical infinity than light from the next waveguide up 434b.

[0055] The other waveguide layers (e.g., waveguides 438b, 440b) and lenses (e.g., lenses 456, 458) are similarly configured, with the highest waveguide 440b in the stack sending its output through all lenses between it and the eye for an aggregate focal power that represents the closest focal plane to the person. To compensate for the stack of lenses 458, 456, 454, 452 when viewing / interpreting light from the world 470 on the other side of the stacked waveguide assembly 480, a compensating lens layer 430 may be provided at the top of the stack to compensate for the aggregate focal power of the underlying lens stack 458, 456, 454, 452. (The compensating lens layer 430 and the stacked waveguide assembly 480 as a whole may be configured so that light from the world 470 is delivered to the eye 410 with substantially the same level of divergence (or collimation) that the light had when originally received by the stacked waveguide assembly 480.) This configuration provides as many perceived focal planes as there are available waveguide / lens pairs. The light extraction optics of the waveguide and the focusing aspects of the lens can be static (e.g., not dynamic or electrically activated). In some alternative embodiments, one or both can be dynamic using electrically activated features.

[0056] Continue to refer Figure 4, the light extraction optical elements 440a, 438a, 436a, 434a, 432a can be configured to redirect light out of their respective waveguides and output the light with an appropriate amount of divergence or collimation for a particular depth plane associated with the waveguide. As a result, waveguides with different associated depth planes can have light extraction optical elements with different configurations that output light with different amounts of divergence depending on the associated depth plane. In some embodiments, as discussed herein, the light extraction optical elements 440a, 438a, 436a, 434a, 432a can be volume or surface features that can be configured to output light at a specific angle. For example, the light extraction optical elements 440a, 438a, 436a, 434a, 432a can be volume holograms, surface holograms, and / or diffraction gratings. Light extraction optical elements such as diffraction gratings are described in U.S. Patent Publication No. 2015 / 0178939, published on June 25, 2015, which is incorporated herein by reference in its entirety.

[0057] In some embodiments, the light extraction optical elements 440a, 438a, 436a, 434a, 432a are diffractive features that form a diffraction pattern or "diffractive optical element" (also referred to herein as a "DOE"). Preferably, the DOE has a relatively low diffraction efficiency so that only a portion of the light beam is deflected toward the eye 410 through each intersection of the DOE, while the remainder continues to move through the waveguide via total internal reflection. The light carrying the image information can thus be split into a plurality of related exit beams that exit the waveguide at a plurality of locations, and the result is a fairly uniform pattern of exit emissions toward the eye 304 for that particular collimated beam that bounces within the waveguide.

[0058] In some embodiments, one or more DOEs may be switchable between an "on" state in which they actively diffract and an "off" state in which they do not significantly diffract. For example, a switchable DOE may include a polymer dispersed liquid crystal layer in which droplets contain a diffraction pattern in a host medium, and the refractive index of the droplets may be switched to substantially match the refractive index of the host material (in which case the pattern does not significantly diffract incident light), or the droplets may be switched to an index that does not match the index of the host medium (in which case the pattern actively diffracts incident light).

[0059] In some embodiments, the number and distribution of depth planes or depth of field can be dynamically changed based on the pupil size or orientation of the viewer's eye. The depth of field can be inversely proportional to the viewer's pupil size. Therefore, as the size of the viewer's eye pupil decreases, the depth of field increases, so that a plane that is not discernible due to the plane's position beyond the eye's depth of focus may become discernible and appear more focused as the pupil size decreases and the depth of field increases accordingly. Similarly, the number of spaced-apart depth planes used to present different images to the viewer may decrease as the pupil size decreases. For example, a viewer may not be able to clearly perceive details in a first depth plane and a second depth plane at one pupil size without adjusting the adaptability of the eyes away from one depth plane and to another depth plane. However, the two depth planes can be fully focused at the same time for a user at another pupil size without changing the adaptability.

[0060] In some embodiments, the display system may change the number of waveguides that receive image information based on a determination of pupil size or orientation or based on receiving an electrical signal indicative of a particular pupil size or orientation. For example, if the user's eye cannot distinguish between two depth planes associated with two waveguides, the controller 460 (which may be an embodiment of the local processing and data module 260) may be configured or programmed to stop providing image information to one of the waveguides. Advantageously, this may reduce the processing burden on the system, thereby increasing the responsiveness of the system. In embodiments where the DOE of a waveguide is switchable between an on and off state, the DOE may be switched to an off state when the waveguide does receive image information.

[0061] In some embodiments, it may be desirable to conform the exit beam to a condition of having a diameter less than the diameter of the viewer's eye. However, given the variability of the viewer's pupil size, meeting this condition may be challenging. In some embodiments, this condition is met over a wide range of pupil sizes by varying the size of the exit beam in response to a determination of the viewer's pupil size. For example, as the pupil size decreases, the size of the exit beam may also decrease. In some embodiments, a variable aperture may be used to vary the exit beam size.

[0062] The wearable system 400 may include an outward-facing imaging system 464 (e.g., a digital camera) that images a portion of the world 470. This portion of the world 470 may be referred to as the field of view (FOV) of the world camera, and the imaging system 464 is sometimes referred to as the FOV camera. The FOV of the world camera may be the same as or different from the FOV of the viewer 210, where the FOV of the viewer 210 encompasses a portion of the world 470 that the viewer 210 perceives at a given time. For example, in some cases, the FOV of the world camera may be larger than that of the viewer 210 of the wearable system 400. The entire area that can be viewed or imaged by the viewer may be referred to as the field of regard (FOR). Since the wearer can move his body, head, or eyes to perceive substantially any direction in space, the FOR may include 4n steradians of solid angle around the wearable system 400. In other contexts, the wearer's movement may be more limited, and thus the wearer's FOR may subtend a smaller solid angle. Images obtained from outward-facing imaging system 464 may be used to track gestures made by a user (eg, hand or finger gestures), detect objects in world 470 in front of the user, and so forth.

[0063] The wearable system 400 may include an audio sensor 232, such as a microphone, to capture the sounds of the surrounding environment. As described above, in some embodiments, one or more additional audio sensors may be provided to provide stereo reception useful for determining the location of the speech source. As another example, the audio sensor 232 may include a directional microphone, which may also provide useful directional information about the location of the audio source. The wearable system 400 may use information from both the outward-facing imaging system 464 and the audio sensor 230 when locating the speech source, or determine the active speaker at a particular moment, etc. For example, the wearable system 400 may use speech recognition alone or in combination with a reflected image of the speaker (e.g., as seen in a mirror) to determine the identity of the speaker. As another example, the wearable system 400 may determine the location of the speaker in the environment based on the sound obtained from the directional microphone. The wearable system 400 may use a speech recognition algorithm to parse the sound from the speaker's location to determine the content of the speech, and use speech recognition technology to determine the identity of the speaker (e.g., name or other demographic information).

[0064] The wearable system 400 may also include an inward-facing imaging system 466 (e.g., a digital camera) that observes the user's movements, such as eye movements and facial movements. The inward-facing imaging system 466 may be used to capture images of the eye 410 to determine the size and / or orientation of the pupil of the eye 304. The inward-facing imaging system 466 may be used to obtain images that are used to determine the direction in which the user is looking (e.g., eye posture) or for biometric identification of the user (e.g., via iris recognition). In some embodiments, each eye may utilize at least one camera to independently determine the pupil size or eye posture of each eye, respectively, thereby allowing the image information presented to each eye to dynamically fit the eye. In some other embodiments, only the pupil diameter or orientation of a single eye 410 is determined and assumed (e.g., only a single camera is used for each pair of eyes) to be similar to the user's two eyes. The images obtained by the inward-facing imaging system 466 may be analyzed to determine the user's eye posture or emotion, which may be used by the wearable system 400 to decide which audio or visual content should be presented to the user. Wearable system 400 may also use sensors such as an IMU, accelerometer, gyroscope, etc. to determine head pose (eg, head position or head orientation).

[0065] The wearable system 400 may include a user input device 466 through which a user may input commands to the controller 460 to interact with the wearable system 400. For example, the user input device 466 may include a touchpad, a touch screen, a joystick, a multi-degree-of-freedom (DOF) controller, a capacitive sensing device, a game controller, a keyboard, a mouse, a directional pad (D-pad), a stick, a haptic device, a totem (e.g., used as a virtual user input device), etc. A multi-DOF controller may sense user input in some or all possible translations (e.g., left / right, forward / backward, or up / down) or rotations (e.g., yaw, pitch, or roll) of the controller. A multi-DOF controller that supports translational motion may be referred to as 3DOF, while a multi-DOF controller that supports translation and rotation may be referred to as 6DOF. In some cases, a user may use a finger (e.g., a thumb) to press or slide on a touch-sensitive input device to provide input to the wearable system 400 (e.g., to provide user input to a user interface provided by the wearable system 400). The user input device 466 can be held by a user's hand during use of the wearable system 400. The user input device 466 can communicate with the wearable system 400 by wire or wirelessly.

[0066] Other components of wearable systems

[0067] In many embodiments, in addition to or in lieu of the components of the wearable system described above, the wearable system may include other components. For example, the wearable system may include one or more haptic devices or components. The haptic device or component may be operable to provide a tactile sensation to the user. For example, the haptic device or component may provide a tactile sensation of pressure or texture when contacting virtual content (e.g., a virtual object, a virtual tool, other virtual constructions). The tactile sensation may replicate the feeling of a physical object represented by the virtual object, or may replicate the feeling of an imaginary object or character (e.g., a dragon) represented by the virtual content. In some embodiments, the haptic device or component may be worn by the user (e.g., a user may wear gloves). In some embodiments, the haptic device or component may be held by the user.

[0068] For example, a wearable system may include one or more physical objects that can be manipulated by a user to allow input or interaction with the wearable system. These physical objects may be referred to as totems here. Some totems may take the form of inanimate objects, such as a piece of metal or plastic, a wall, or a surface of a table. In some embodiments, a totem may not actually have any physical input structure (e.g., a key, a trigger, a joystick, a trackball, a rocker switch). Instead, a totem may simply provide a physical surface, and the wearable system may render a user interface so that the user appears to be on one or more surfaces of the totem. For example, a wearable system may render images of a computer keyboard and a trackpad so that they appear to reside on one or more surfaces of the totem. For example, a wearable system may render a virtual computer keyboard and a virtual trackpad so that they appear to be on the surface of a thin aluminum rectangular plate used as a totem. The rectangular plate itself does not have any physical keys or trackpads or sensors. However, the wearable system may detect user manipulation or interaction or touching of the rectangular plate as a selection or input via a virtual keyboard or a virtual trackpad. User input device 466 ( Figure 4 ) may be an embodiment of a totem, which may include a touchpad, a touch pad, a trigger, a joystick, a trackball, a rocker or a virtual switch, a mouse, a keyboard, a multi-degree-of-freedom controller, or another physical input device. A user may use a totem alone or in combination with a gesture to interact with a wearable system or other users.

[0069] Examples of haptic devices and totems of the present disclosure for use with wearable devices, HMDs, and display systems are described in U.S. Patent Publication No. 2015 / 0016777, which is incorporated herein by reference in its entirety.

[0070] Example eye image

[0071] Figure 5An image of an eye 500 is shown having an eyelid 504, a sclera 508 (the "white part" of the eye), an iris 512, and a pupil 516. Curve 516a shows the pupil boundary between the pupil 516 and the iris 512, and curve 512a shows the limbal boundary between the iris 512 and the sclera 508. The eyelid 504 includes an upper eyelid 504a and a lower eyelid 504b. The eye 500 is shown in a natural resting pose (e.g., with the user's face and gaze both oriented toward a distant object directly in front of the user). The natural resting pose of the eye 500 can be indicated by a natural resting direction 520, which is the direction in which the eye 500 is viewed when in a natural resting pose (e.g., directly in front of the user). Figure 5 516) and in this example is located at the center of the pupil 516 in a direction orthogonal to the surface of the eye 500.

[0072] As eye 500 moves to look at different objects, the pose of the eye will change relative to natural resting direction 520. The current eye pose can be determined with reference to eye pose direction 524, which is normal to the surface of eye 500 but oriented toward the object the eye is currently pointing at (and centered within pupil 516). Figure 5A In the example coordinate system shown in , the posture of the eye 500 can be expressed as two angular parameters, which indicate the azimuthal deflection and zenithal deflection of the eye posture direction 524 of the eye relative to the natural resting direction 520 of the eye. For the purpose of illustration, these angular parameters can be expressed as θ (azimuthal deflection, determined by the reference orientation) and Φ (zenithal deflection, sometimes also referred to as polar deflection). In some embodiments, the angular roll of the eye around the eye posture direction 524 can be included in the determination of the eye posture, and the angular roll can be included in the following analysis. In some embodiments, other techniques for determining eye posture (e.g., pitch, yaw, and optionally roll systems) can be used.

[0073] The eye image can be obtained from the video using any suitable process, for example, using a video processing algorithm that can extract images from one or more consecutive frames. The pose of the eye can be determined from the eye image using a variety of eye tracking techniques. For example, the eye pose can be determined by considering the lens effect of the cornea on a provided light source. Any suitable eye tracking technique can be used to determine the eye pose in the eyelid shape estimation technique described herein.

[0074] Example Eye Tracking System

[0075] Figure 6A schematic diagram of a wearable system 600 including an eye tracking system is shown. In some embodiments, the wearable system 600 may include components located in a head-mounted unit 602 and components located in a non-head-mounted unit 604. The non-head-mounted unit 604 may be, for example, a belt-mounted component, a hand-held component, a component in a backpack, a remote component, etc. Incorporating some components of the wearable system 600 into the non-head-mounted unit 604 may help reduce the size, weight, complexity, and cost of the head-mounted unit 602. In some implementations, some or all of the functions described as being performed by one or more components of the head-mounted unit 602 and / or the non-head-mounted unit 604 may be provided by one or more components included elsewhere in the wearable system 600. For example, some or all of the functions described below associated with the CPU 612 of the head-mounted unit 602 may be provided by the CPU 616 of the non-head-mounted unit 604, and vice versa. In some examples, some or all of such functions may be provided by peripheral devices of the wearable system 600. In addition, in some implementations, the above referenced computing devices may be used by one or more cloud computing devices or other remotely located computing devices. Figure 2 Some or all of such functionality may be provided in a manner similar to that described herein.

[0076] like Figure 6 As shown in , the wearable system 600 may include an eye tracking system that includes a camera 324 that captures an image of the user's eye 610. If desired, the eye tracking system may also include light sources 326a and 326b (such as light emitting diodes "LEDs"). The light sources 326a and 326b may produce glints (i.e., reflections of the eye 610 that appear in the image of the eye captured by the camera 324). The position of the light sources 326a and 326b relative to the camera 324 may be known, and therefore, the position of the glints within the image captured by the camera 324 may be used to track the eye 610. In some embodiments, there may be one light source 326 and one camera 324 associated with a single eye in the eye 610. In some embodiments, there may be one light source 326 and one camera 324 associated with each eye in the eye 610. In some embodiments, there may be one or more cameras 324 and one or more light sources 326 associated with one or each eye in the eye 610. In some embodiments, there may be two light sources 326a and 326b and one or more cameras 324 associated with each eye in the eye 610. In some embodiments, there may be three or more light sources associated with each of eyes 610 , such as light sources 326 a and 326 b , and one or more cameras 324 .

[0077] The eye tracking module 614 may receive images from the eye tracking camera 324 and may analyze the images to extract various pieces of information. As examples, the eye tracking module 614 may detect the pose of the eyes 610, the three-dimensional position of the eyes 610 relative to the eye tracking camera 324 (and relative to the head mounted unit 602), the direction in which one or both of the eyes 610 are focused, the user's vergence depth (i.e., the depth from the user at which the user is focusing), the position of the pupil, the position of the cornea and corneal sphere, the center of rotation of each of the eyes, and the center of view of each of the eyes, the irises of the eyes, etc. Figure 6 As shown in , the eye tracking module 614 can be a module implemented using the CPU 612 in the head mounted unit 602.

[0078] Data from the eye tracking module 614 may be provided to other components in the wearable system 600. For example, such data may be sent to components in the non-head mounted unit 604, such as the CPU 616, which includes a module for a light field rendering controller 618, and the iris module 620.

[0079] The rendering controller 618 may use information from the eye tracking module 614 to adjust the images displayed to the user by the rendering engine 624 (e.g., a rendering engine that may be a module in the GPU 6620 and that may provide images to the display 220).

[0080] A "rendering camera", sometimes also referred to as a "pinhole perspective camera" (or simply "perspective camera") or a "virtual pinhole camera" (or simply "virtual camera"), is a simulated camera used to render virtual image content that may come from a database of objects in a virtual world. Objects may have positions and orientations relative to a user or wearer and possibly relative to real objects in the environment surrounding the user or wearer. In other words, the rendering camera may represent a perspective within a rendering space from which the user or wearer will view 3D virtual content (e.g., virtual objects) of the rendering space. The rendering camera may be managed by a rendering engine 624 to render virtual images based on a database of virtual objects to be presented to the eye 610. The virtual image may be rendered as if it were from the user's perspective. For example, the virtual image may be rendered as if it were captured by a pinhole camera (corresponding to the "rendering camera") having a specific set of intrinsic parameters (e.g., focal length, camera pixel size, principal point coordinates, skew / distortion parameters, etc.) and a specific set of extrinsic parameters (e.g., translational and rotational components relative to the virtual world). A virtual image is captured from the perspective of a rendering camera having a position and orientation of such camera (e.g., extrinsic parameters of the rendering camera). Thus, the system can define and / or adjust intrinsic and extrinsic rendering camera parameters. For example, the system can define a particular set of extrinsic rendering camera parameters such that a virtual image can be rendered as if captured from the perspective of a camera having a particular position relative to the eye, thereby providing an image that appears to be from the user's perspective. The system can then dynamically adjust the extrinsic rendering camera parameters on the fly to maintain alignment with the particular position. Similarly, intrinsic rendering camera parameters can be defined and dynamically adjusted over time. In some implementations, an image is rendered as if captured from the perspective of a camera having an aperture (e.g., a pinhole) at a particular position relative to the user's or wearer's eye (such as a center of view or a center of rotation or elsewhere).

[0081] In some embodiments, the system may create or dynamically reposition and / or reorient one rendering camera for the user's left eye and another rendering camera for the user's right eye, since the user's eyes are physically separated from each other and are therefore always positioned at different locations. Thus, in at least some implementations, virtual content rendered from the perspective of a rendering camera associated with the viewer's left eye may be presented to the user through an eyepiece on the left side of a head-mounted display (e.g., head-mounted unit 602), and virtual content rendered from the perspective of a rendering camera associated with the right eye may be presented to the user through an eyepiece on the right side of such head-mounted display. Further details discussing the creation, adjustment, and use of rendering cameras in the rendering process are provided in U.S. Patent Application No. 15 / 274,823, entitled “METHODS AND SYSTEMS FOR DETECTING AND COMBINING STRUCTURAL FEATURES IN 3D RECONSTRUCTION,” which is expressly incorporated herein by reference in its entirety for all purposes.

[0082] In some examples, one or more modules (or components) of the wearable system 600 (e.g., light field rendering controller 618, rendering engine 624, etc.) can determine the position and orientation of a rendering camera within a rendering space based on the position and orientation of the user's head and eyes (e.g., as determined based on head pose and eye tracking data, respectively). That is, the wearable system 600 can effectively map the position and orientation of the user's head and eyes to a specific position and angular position within the 3D virtual environment, place and orient the rendering camera at the specific position and angular position within the 3D virtual environment, and render virtual content for the user as if captured by the rendering camera. Further details discussing the real world to virtual world mapping process are provided in U.S. Patent Application No. 15 / 296,869, entitled "SELECTING VIRTUAL OBJECTS IN ATHREE-DIMENSIONAL SPACE", which patent application is expressly incorporated herein in its entirety by reference for all purposes. As an example, the rendering controller 618 can adjust the depth of a displayed image by selecting which depth plane (or multiple depth planes) to utilize to display the image at any given time. In some implementations, such depth plane switching can be performed by adjusting one or more intrinsic rendering camera parameters.

[0083] For example, as described below, iris module 620 can generate an iris code using information from eye tracking module 614. For example, iris module 620 can include an image processor, an iris code generator, an iris code analyzer, a database, an access control module, and any other suitable components, such as described below.

[0084] Iris recognition

[0085] Iris recognition systems are used in a variety of environments: for example, building / room access control systems, bank identification confirmations, and airport screening procedures to identify specific people from a population database. The iris recognition system can attempt to compare acquired image data from one or more acquired iris images (e.g., an iris code in an iris image acquired from a user's eye using a camera) with a set (e.g., in a database) of data from one or more iris images. If the acquired image data is found in the set (a "match"), the iris recognition system can indicate that the user is in the group and can identify and / or authenticate the user. If the acquired image data is not found in the group (a "no match"), the iris recognition system can indicate that the user is not in the group and can not authenticate the user. The systems and methods described herein can be used with various iris recognition systems, including those systems that incorporate user wearable devices. Such user wearable devices can include head-mounted display devices, which can include imaging devices configured to acquire image data from the user's irises.

[0086] Iris recognition may be more tolerant and robust than other biometric systems (such as those designed to recognize a person's fingerprint, voice, or face). For example, an iris recognition system can adapt to significant changes in image size (including pupil size), position, and orientation. An iris recognition system may also exhibit high sensitivity even when input data (such as an iris image) is acquired under very different conditions and the input data (such as an iris image) may look completely different.

[0087] Iris recognition systems may be particularly desirable for use in conjunction with head-mounted display devices such as those described above. The goal of such devices is often to achieve immersion in a virtual environment, for example, as presented on the display of the device. Immersion can be enhanced by replacing or enhancing input devices (such as mice and keyboards) with iris scanning, which may psychologically attract users outside the virtual environment. Providing iris input via an iris recognition system can be perceived as more natural or intuitive than using traditional input devices. In addition, in applications (e.g., virtual reality) that block the user's view of his or her real environment, using such input devices may be difficult because the user's ability to see the device may be impaired. For example, unlike a mouse or keyboard, a camera fixed relative to a head-mounted device (and extended to the user's eyes) can obtain user input (e.g., by scanning the user's eyes) with little or no user action; when the user's view of the real environment is blocked; and / or when the user's hands are busy with other tasks. As an example application, using iris recognition to authenticate a user of a virtual reality device that presents a virtual environment can maintain or preserve the user's immersion in the virtual environment by avoiding a potentially cumbersome authentication process (such as using a keyboard to enter a password). Similarly, iris recognition can be used in a head-mounted device to provide input to a payment system; unlock or enable a security system or function; provide access to personally identifiable information (e.g., medical records); or perform other suitable functions in a relatively seamless and intuitive manner.

[0088] With respect to an iris recognition system, an iris code may be generated from an iris image and used to compare with iris codes from other iris images. In general, comparing two iris codes to determine whether they belong to the same iris involves applying a statistical independence test, where a failure of the test indicates that the iris codes are a match. In some examples where the iris codes have many degrees of freedom, the likelihood of a false match between iris codes of iris images of two different eyes (i.e., a false identification that two iris codes of an iris image belong to the same user) is very low. For example, depending on the matching parameters used, the hypothetical odds of a false match may range from 1 / 100,000 to 1 / 100 trillion. For example, if iris recognition is used to perform verification on a relatively small number of potential users (e.g., against a small iris code database), the odds of a false match may be low, and if iris recognition is used to perform verification on a relatively large number of potential users (e.g., against a large iris code database), the odds may be high.

[0089] Figure 7An example of an iris recognition system in accordance with some embodiments is depicted. An example iris recognition system 1000 (hereinafter “system 1000”) is configured to input and analyze one or more images of an iris 1020 of an eye of a user of the system 1000, and may control access to one or more functions 1200 (hereinafter “functions 1200”). In some examples, the iris recognition system 1000 may be configured to include an eye imaging camera 1040 (hereinafter “camera 1040”) that may be used to generate an image of the iris 1020 (such as a digital intensity image). In some examples, the one or more images generated by the camera 1040 are input to an image processor 1060. In some examples, the image processor 1060 (alone or with additional input from an internal sensor 1080 and / or an external sensor 1100) manipulates the image so that it may be converted into a digital iris code by an iris code generator 1120. In some examples, the iris code analyzer 1140 compares the iris code to existing iris codes (which may be stored in a database 1160, such as a relational database) to determine one or more values ​​related to the user's identity. In some examples, the access controller 1180 uses these one or more values ​​to determine whether and how the user should utilize the functionality 1200. In some examples, input from the internal sensor 1080 and / or the external sensor 1100 may be used to assist the access controller 1180. In some examples, as described above with respect to Figure 6 As described, one or more of these components may be included in the iris module 620 .

[0090] The camera 1040 outputs image data corresponding to an image of the iris 1020. The camera 1040 may be a general purpose optical camera, or a camera specifically configured to image the human iris - for example, by having the ability to image the subject at a close focus distance (e.g., so that the camera 1040 can be mounted close to the iris 1020 in a head mounted device) or having sufficient depth of field to obtain a focused image of the entire iris 1020. While some examples may be configured for close-up eye imaging (e.g., less than 12 inches between the camera 1040 and the eye in a head mounted device), other examples may be configured for medium or longer distance eye imaging, such as 2 to 10 feet, or 10 to 30 feet or more. In some examples, the camera 1040 includes a digital image sensor (such as a CCD sensor) and outputs an array of values ​​corresponding to the intensity of light incident on a corresponding area (e.g., pixel) of the image sensor. For example, the image sensor may output an 8-bit grayscale image, in which the intensity of light incident on a pixel is represented as a single value between 0 and 255. In some examples, the image sensor may output a 24-bit color image where the intensity of light incident on a pixel is represented as three values ​​between 0 and 255, representing the intensity of red, green, and blue light, respectively. Other eye imaging techniques and image data representations are possible and may be preferred depending on the specific system requirements.

[0091] In an example using an image processor 1060, image data output by the camera 1040 may be input to the image processor 1060. The image processor 1060 may perform one or more processing operations on the image data, for example, to improve the reliability of an iris code generated from the image data, and then output the processed image data to, for example, the iris code generator 1120. In some examples, the image processor 1060 may determine the degree to which the iris image is focused, for example, by determining the presence of intermediate and high frequencies associated with a focused image using a Fourier or wavelet transform. Focus information may be useful for rejecting low-quality images, or for marking an iris code generated from a focused image as potentially more reliable or more informative than an iris code generated from an unfocused image. For example, a threshold for a minimum acceptable focused image may be set so that images below the threshold may be rejected. In some examples, the focus may be adjusted to increase the presence of intermediate and high frequencies in the image. In some examples, to achieve greater processing efficiency, image focus may be evaluated before any image processing or iris encoding operation. In some examples, image focus may be evaluated after one or more image processing or iris encoding operations.

[0092] In some examples, the image processor 1060 can arrange the image data in a format that facilitates the generation of the iris code. One such format is a pseudopolar format that aligns the image data relative to coordinates in a two-dimensional space that includes an annular region of the iris between the limbus of the iris and the edge of the pupil. The image processor 1060 can also perform edge detection operations to identify the edges of the limbus and the pupil. In some examples, the image processor 1060 can detect an area of ​​the image data in which the iris is obscured, such as by an eyelid; and delete the image data, or present the image data in a manner that does not interfere with operations on the iris data (such as iris code generation).

[0093] In some examples, system 1000 may include: one or more internal sensors 1080, which may be directed to the same user as camera 1040; and / or one or more external sensors 1100, which are configured to detect information in a local environment and / or a remote environment (e.g., an Internet or cloud-based sensor). Sensors 1080 and / or 1100 may provide data to assist in various features of system 1000. Example sensors may include accelerometers, external light sensors, internal light sensors (i.e., facing the user), retinal sensors, geolocation / fence sensor systems, etc. In some examples, sensors 1080 and / or 1100 may be incorporated into a head-mounted display device. In some examples, sensors 1080 and / or 1100 may be used to make an initial assessment of eye orientation to determine the likelihood of an appropriate iris image, or to assist in correcting off-axis images. In some examples, sensor information may be used to set a matching threshold for iris recognition. For example, the geolocation sensor system may indicate that the user is in a home environment, where iris images are generated under consistent lighting conditions, and a relatively low error rate can be expected, or that the user is in an outdoor environment, where iris images may be less consistent, and a higher error rate may be expected. In some examples, the geolocation sensor system may include a hardware component such as a "fob" that can be used to detect proximity to the head mounted display device, or to provide additional security, such as by connecting to a local networking component.

[0094] Internal sensors 1080 and / or external sensors 1100 may also help determine when a user has disengaged the head mounted display device. For example, disengagement of the head mounted display device may be indicated by accelerometer measurements, by light measurements, or by the position of eyeglass stems. Light measurements may be based on reflected light from the user's face or skin and / or based on the absence of infrared signals detected by the sensors originating from the user. Disengagement may also be determined when the system 1000 is no longer able to successfully image the iris 1020. For example, a determination may occur after many match failures have been detected over a period of time.

[0095] In some examples, the processed image data output by the image processor 1060 may be used as an input to the iris code generator 1120. The iris code generator 1120 receives iris data representing one or more iris images and generates one or more digital iris codes corresponding to the iris data. In some examples, the iris code generator 1120 divides the iris data into cells and generates an iris code including one or more values ​​that each correspond to an iris cell. For example, the iris code may use 2 bits per cell to represent 1024 cells, which may correspond to the coordinates of the phase vector in the complex plane, for a total of 2048 bits or 256 bytes. Some examples may use more or fewer cells and more or less data per cell, resulting in smaller or larger iris codes. For example, the iris code may be in the range of 64 bytes to 1024 bytes or 256 bytes to 4096 bytes. In addition, the iris code does not have to be a multiple of 8 bits or bytes.

[0096] In some examples, the iris code generator 1120 can be configured to accumulate one or more iris images and generate an iris code from the one or more images. Increasing the number of iris images used to generate an iris code can improve the reliability and robustness of the iris code, particularly in environments where the iris image data may be unreliable, at the expense of potentially requiring more computing and processing power.

[0097] The iris code generated by the iris code generator 1120 can be used as an input to the iris code analyzer 1140. The iris code analyzer 1140 can compare one or more input iris codes with a set of data (such as a set of iris code-user pairs stored in the database 1160) to determine one or more values ​​related to the identity of the user. In some examples, the iris code analyzer 1140 can compare one or more input iris codes with stored iris codes (such as iris codes in a set of iris code-user pairs) to generate a match value. In some examples, the iris code analyzer 1140 can output the identity of the user corresponding to the input iris code. In some examples, the iris code analyzer 1140 can output a binary value corresponding to whether a match is found: that is, whether the input iris code corresponds to iris data, such as a stored iris code in a set of iris data (such as in the database 1160). In some examples, the iris code analyzer 1140 outputs one or more values ​​corresponding to statistical data related to the iris data (such as a statistical confidence that there is a match for the input iris code). In some examples, the iris code analyzer 1140 can continuously update a set of generated iris codes from a user session. For example, the generated iris codes can be accumulated in a first-in, first-out (FIFO) buffer configured to store a specified number of generated iris codes. In some examples, the iris code analyzer 1140 can accumulate multiple iris codes and generate a single iris code (such as a fuzzy iris code) from the multiple iris codes. In some examples, the buffer size can be changed during a user session, depending on the needs of a particular application, or depending on input from the internal sensor 1080 and / or the external sensor 1100.

[0098] In some examples, the iris code analyzer 1140 can periodically reset the iris codes generated during a user session. In some examples, the reset can be performed after a certain number of mismatches are detected or after a period of time has passed. In some examples, the reset can be triggered by an event. For example, in a system incorporating a head mounted display device, a reset can be performed if the internal sensor 1080 and / or the external sensor 1100 detects that the head mounted display device is detached from the user, or the ambient lighting conditions suddenly change (indicating possible removal of the head mounted display device).

[0099] In some examples, the access controller 1180 uses the value output by the iris code analyzer 1140 to provide security or access control for the function 1200 or other features or functions of the system 1000. For example, the function 1200 may include a function of controlling a door lock in a secure area of ​​a building so that only certain users are allowed to unlock the door to the secure area. Based on the output value of the iris code analyzer 1140 that identifies the user as a user with authority to unlock the door lock, for example, the output value is an iris match value that exceeds a threshold, the access controller 1180 may, for example, activate the door unlock function by instructing the function 1200 to unlock the door. Similarly, based on the output value of the iris code analyzer 1140 that does not identify the user as a user with authority to unlock the door lock, the access controller 1180 may instruct the function 1200 to keep the door in a locked state.

[0100] Figure 7 Some or all of the elements of the system 1000 shown in the figure may be implemented using software instructions executed by one or more processors. Such processors may be embodied in portable or non-portable devices, including but not limited to communication devices (e.g., mobile phones, smart phones), multimedia devices (e.g., MP3 players, televisions, radios), portable or handheld computers (e.g., tablet computers, netbooks, laptop computers), desktop computers, all-in-one desktop computers, peripheral devices, wearable devices (including head-mounted devices, which may include head-mounted display devices), or any other system or device suitable for incorporating the system 1000, including combinations of two or more of these types of devices.

[0101] It is obvious that Figure 7 The system 1000 shown in FIG. 1 is only one example architecture of the system 1000 , and the system 1000 may have more or fewer components than shown, or a different configuration of components. Figure 7 The various components shown in the can be implemented with hardware, software, firmware or any combination thereof including one or more signal processing and / or application specific integrated circuits. In addition, in the case of performing the disclosed methods, the steps of those methods do not need to be performed sequentially.

[0102] This disclosure is not limited to Figure 7. For example, system 1000 may be implemented in a single physical housing, or in two or more separate housings. In some examples, one or more components may be provided in a wearable computing device such as a virtual reality (VR) or augmented reality (AR) head-mounted display device, while one or more other components may be bound, wired or wirelessly, to a separate housing or enclosure, such as for a mobile phone, tablet computer, laptop computer, desktop computer, watch, clothing, belt bag, backpack, or headband. For example, one or more of camera 1040 and sensor 1080 / 1100 may be mounted to a head-mounted display device so that the camera and / or sensor remain fixed relative to the user's head and eyes (which itself may be fixed relative to the head-mounted display device).

[0103] System 1000 is not limited to imaging only a single iris 1020. Although in some examples, system 1000 may image and process only a single iris of a user, in some examples, system 1000 may be configured to image and process both an eye of a user (which typically exhibits independent iris patterns) or multiple eyes from multiple users.

[0104] Image Processing

[0105] The available iris image data corresponds to the eye region between the limbus of the iris and the edge of the pupil that is not obstructed by the eyelid. The image processor 1060 can be configured to detect the limbus of the iris and the edge of the pupil and the eyelid boundary. In some examples, performing this edge detection utilizes a circular edge detector operation, such as, for example, Daugman's Transactions on Circuits and Systems for Video Technology (January 2004, Issue 1, Volume 14, Pages 21-30), "How Iris Recognition Works", as taught in equation (1):

[0106]

[0107] In equation (1), I(x, y) represents the intensity of the iris image data at the Cartesian coordinate (x, y), the * symbol represents the convolution operator, r represents the radius, and G σ(r) is a smooth function. As described in Daugman, for example, the above operation can be used to detect iris boundaries in an image by iteratively identifying the maximum of the fuzzy partial derivative of the contour integral of I(x, y) along an arc ds with radius r and center coordinates (x0, y0) in the image domain (x, y). After detecting the iris boundary, a measure of interference or image anomaly can be evaluated (e.g., by calculating the amount of eyelid coverage). In some examples, if excessive interference or image anomalies are found, the image data can be rejected (e.g., by the image processor 1060), and / or the corresponding iris code can be omitted from the analysis (e.g., by the iris code analyzer 1140).

[0108] The initial iris image may be converted or transformed from a Cartesian coordinate system to a pseudo-polar coordinate system. In some examples, after identifying the limbus and pupil edges of the iris 1020 and any overlap of the eyelashes and eyelids, the resulting annular iris image is "unwrapped" using a rectangular rubber sheet model and / or converted from a Cartesian (e.g., x, y) coordinate system to a polar (e.g., r, θ) coordinate system. For example, this may be performed in part by converting the iris image I(x, y) to a dimensionless non-concentric polar coordinate system (r, θ), where r ranges from the pupil boundary to the limbus in the unit interval [0, 1], such as described in Daugman as in equation (2):

[0109]

[0110] In equation (2), x p and p are the pupil boundary points defining the inner iris boundary, and x s and s are the sclera boundary points that define the outer iris boundaries. These boundaries can be detected by maximizing the x(r,θ) and y(r,θ) equations.

[0111] Iris code generation

[0112] The present disclosure is not limited to a particular manner of generating an iris code from image data. In some examples, the iris code can be represented by dividing the image data into a plurality of regions or cells and encoding a vector in the complex plane corresponding to phase information using two bits for each cell. Generating the iris code from phase information rather than image intensity can be advantageous because phase information is typically preserved even in blurred or low-resolution images, allowing phase information to be reliably recovered even under poor imaging conditions. Phase information can be extracted from an iris image. For example, as described in Daugman, a two-dimensional Gabor wavelet can be used to phase demodulate an iris pattern and generate complex-valued coefficients having real and imaginary components, such as in equation (3):

[0113]

[0114] In equation (3), h {Re,Im} is a phasor whose real and imaginary parts are either 1 or 0 based on the sign of the 2D integral, I(ρ, φ) is the intensity of the iris image in pseudo-polar coordinates (after normalization using the rubber sheet model), α and β are wavelet parameters, ω is the wavelet frequency which is inversely proportional to β, and (r0, θ0) are the polar coordinates of the iris cell. The complex value of the cell can be quantized into one of four quadrants in the complex plane (e.g., [0, 1], [1, 1], [1, 0], and [0, 0]), each represented by 2 bits. Variations in the angular orientation of the iris image data can be accounted for by cyclic scrolling of the angular components of the polar coordinate system to seek an optimal match. Alternatively, the base image data can be rotationally matched before generating the iris code, for example using an Euler matrix or another transformation.

[0115] In some examples, cell values ​​from one or more iris images may not meet assignment requirements or other determinations of cell stability or variability. A mask or map of such cells may be generated (similar to the iris code itself). For example, some complex values ​​projected from a two-dimensional Gabor wavelet transform may lie near one or both axes of the complex plane, and sample variations may cause these values ​​to be inconsistent or incorrectly quantized. Ignoring these inconsistent bit or cell values ​​from iris code analysis may improve the accuracy of iris recognition. In some examples, a bitwise map representing a mask may be applied to the iris code to identify, for example, bits or cell values ​​that should be ignored by an iris code analyzer (e.g., iris code analyzer 1140). The bitwise map may be used to mask or exclude variable or inconsistent cells of the iris code when determining a match between a stored iris code and a generated iris code. In some examples, the map may include both consistent and inconsistent cells of the iris code corresponding to an iris region of an iris image, but exclude eyelids, eyelashes, and / or specular light effects.

[0116] In some examples, a second set of complex values ​​can be projected from a second set of 2D Gabor wavelet transforms having a different orientation than the first set of 2D Gabor wavelet transforms. The second set of complex values ​​can have inconsistent bits with a different pattern, or be otherwise quantized to a coordinate system rotated 45 degrees relative to the coordinate system of the first set of 2D Gabor wavelet transforms. The inconsistent bits in the first set of 2D Gabor wavelet transforms can then be replaced with the unit values ​​generated by the second set of 2D Gabor wavelet transforms, which can be more consistent and thereby improve the accuracy of the match verification. In some examples, the complex values ​​for each unit of the iris image can be directly averaged and / or compared with the complex values ​​generated from the stored iris image to reduce or avoid inconsistencies that may be caused by quantization.

[0117] In some examples, one or more iris images may be acquired and used to generate a composite iris code. For each cell of the composite iris code, a final value may be assigned to the cell. In some examples, a "voting scheme" (e.g., simple majority) may be used to calculate the final value. In some examples, each value may be statistically compared to other category values ​​for each grouping to determine if there is a dominant value for that cell in the one or more iris images. In some examples, a distribution metric such as a probability distribution (with or without a measure of confidence in the distribution) may be used to determine the likelihood of a match between iris codes.

[0118] Iris code analysis and matching

[0119] The iris code analyzer 1140 can compare the generated iris code (such as a composite iris code) to a stored iris code (stored in database 1160 in some examples) to determine whether the generated iris code is a match for the stored iris code. The present disclosure is not limited to a particular mechanism for determining whether a match exists. In some examples, a test result of whether two iris codes are statistically independent is used to determine whether a match exists: if the test fails, such that the generated iris code is not statistically independent from the stored iris code, then the generated iris code can be considered a match for the stored iris code.

[0120] In some embodiments, it may be desirable to maximize the accuracy of the iris code analysis. For example, it may be desirable to reduce: the false acceptance rate (FAR) or type II error, which is the probability that a non-match is mistakenly identified as a match; and the false rejection rate (FRR) or type I error, which is the probability that a match is mistakenly identified as a non-match. These error rates may depend on the thresholds used to classify matches and non-matches. A metric that can be used to compare the accuracy of different iris recognition systems and algorithms is the equal error rate (EER), or the error rate of a threshold where the false rejection rate for matching image pairs is equal to the false acceptance rate for non-matching image pairs. In general, a system with a lower EER may achieve more accurate results than a system with a higher EER.

[0121] Improved accuracy in iris recognition systems can be achieved in a variety of ways. For example, better system components can allow for higher resolution images, better focusing mechanisms, and / or improved methods of shielding the imaging area from unwanted light in the environment. This can achieve higher quality, more reproducible iris images, from which iris codes can be generated more accurately and reliably. Accuracy can also be improved by discarding low-quality images. For example, an iris image can be assigned a quality score related to the usefulness of the image in iris recognition. For example, an image that is out of focus, has too many mirror components, has too much eyelid coverage, or is taken at an extreme angle may be assigned a low quality score because these factors limit its usefulness in iris recognition. The system can compare the quality score of the image with a threshold, and if the quality score of the image does not reach the threshold, the image is discarded. In some examples, the system can acquire additional images until sufficient or higher quality images are obtained. In some examples, the system can provide user instructions or user prompts, such as a flash, to facilitate the desired eye orientation for image acquisition.

[0122] Various methods can be used to quantify the difference between two iris codes in an iris recognition system, and one or more of the methods used can inform or affect the EER of the system. One such metric used to quantify the difference is the Hamming Distance (HD). The Hamming distance between codeA and codeB to which maskA and maskB (identifying iris code bits to be excluded from the Hamming distance calculation) are applied, respectively, can be defined as Equation (4):

[0123]

[0124] In equation (4), the Boolean XOR operator Output the bitwise difference between two iris codes (e.g., codeA and codeB). The bitwise values ​​maskA and maskB can use zero values ​​to represent iris code regions corresponding to eyelids, eyelashes, illumination aberrations, or other obstacles to iris recognition, for example by performing a bitwise AND operation between maskA, maskB, and the output of an XOR operation, and then normalizing the result by the total number of unmasked bits, excluding them from the Hamming distance calculation (i.e., ||maskA∩maskB||).

[0125] The resulting Hamming distance (HD) provides a measure of the bitwise similarity between the two iris codes. A smaller Hamming distance corresponds to a higher similarity between the two iris codes. In some examples, the Hamming distance between the two iris codes is compared to a threshold to determine whether a match exists. For example, a Hamming distance between two iris codes that falls below a threshold may indicate that the two iris codes match. A lower threshold may result in fewer matches being identified, but at the risk of producing more false rejections. Similarly, a higher threshold may result in more matches being identified, but at the risk of producing more false acceptances. In some examples, the threshold may be set in a range of about 0.25 to about 0.36, depending on considerations such as the reliability and consistency of the image data from which the iris code is generated. In some examples, multiple thresholds may be employed.

[0126] In some examples, the masks of the stored and generated iris codes (e.g., maskA and maskB corresponding to iris codes codeA and codeB) may also be compared, for example, using the same calculations used to generate the iris codes themselves, and the results may be used to further improve the accuracy of the match determination between the two iris codes. For each iris code, a map may be generated that conveys the reliability of each bit / feature. For example, the similarity between two maps generated for two iris codes (corresponding to, for example, eyelid regions) may indicate that the iris codes belong to the same iris, and therefore there is a match between the two iris codes. Similarly, a first map of variable or inconsistent cells in a first iris code may be compared to a second map of variable or inconsistent cells from one or more iris codes. The similarity between the first map and the second map may indicate that the first iris code corresponds to the same iris as the one or more iris codes.

[0127] refer to Figure 7 In some examples, the iris code analyzer 1140 can analyze and quantify the variations in the cells of the iris code and utilize the variability or probability information to improve the accuracy of the iris matching calculation. In some examples, cells that exhibit relatively high variability and therefore may convey less useful information may be excluded from match detection. In some examples, information corresponding to the cell variations (such as statistical information) may be used to more accurately assign quantized values ​​to variable cells. In some examples, partial match values ​​or other weighted values ​​may be assigned to variable cells for match detection.

[0128] The iris code analyzer 1140 can use probability values ​​to represent the iris code. This can improve iris recognition accuracy, particularly in systems using small sample sizes or where the iris code or image data exhibits high variability. For example, in an example where the iris code includes one or more units expressed as single bit results (e.g., 1 and 0, corresponding to positive or negative values ​​of the convolution of the filter with the iris image region), each such bit can be characterized as a probability or weighted value based on the sample size. This is similar to a weighted coin that generates a front value with a certain probability x, and a back value with a probability (1-x). In order to calculate the quality of a match between two iris codes, an estimate of x can be used, including information about the statistical quality of the estimate. For example, for each bit in the iris code, the probability x can be estimated using a prior distribution of possible results for the weight of the bit. The prior probability distribution over possible weights can be modeled using a Beta distribution, and the state of prior knowledge can be modeled using shape parameters a and b. An example Beta distribution can be expressed as equation (5):

[0129]

[0130] In equation (5), example values ​​for shape parameters a and b may include 0.01 and 0.1, respectively. Γ is the gamma function (ie, Γ(n)=(n-1)!).

[0131] After n+m observations of the bit, where the bit is observed to have a value of 1 n times and a value of 0 m times, the probability distribution of possible weights can be expressed as Beta(x; a+n, b+m). The model, the expectation E[x] and the variance var[x] of the model distribution for x can be expressed as equations (6), (7) and (8), respectively:

[0132] Beta(x;a+n,b+m)(6)

[0133]

[0134]

[0135] Therefore, the expectation and variance can be expressed for the weight of each bit in the iris that has been observed n+m times. The iris code analyzer 1140 can use this statistical information to quantify the confidence in the iris code operation. In some embodiments, it may be sufficient for the iris code analyzer 1140 to store the expectation E[x] and variance var[x] or (a+n) and (b+m) for each bit in the iris code, rather than storing all the original sample bit information. Therefore, in some examples, the iris code consisting of 2048 single bit entries can be replaced in the iris code analyzer 1140 with 2048 pairs of real numbers representing the expectation and variance. This can be called a "fuzzy iris code" (FIC).

[0136] The iris code analyzer 1140 can use various difference metrics to quantify the difference between two ambiguous iris codes. Such metrics can be characterized in the form of a "distance" metric similar to the Hamming distance described above. In some examples, the difference metric can be normalized relative to the number of bits in the iris code.

[0137] An example difference metric is the "soft Hamming distance" (SHD). Define the expected value of bit i in the ambiguous code j as E[x i (j) ], SHD can be expressed in the iris code analyzer 1140 as the sum of absolute differences of expected values ​​over all bits, such as in equation (9):

[0138]

[0139] Another example difference metric is the "Median Hamming Distance" (MHD). Define the median value (here the most likely value between zero and one) of bit i in ambiguous code j as med[x i (j) ], the MHD can be expressed in the iris code analyzer 1140 as the sum of the absolute differences of the medians over all bits, such as in equation (10):

[0140]

[0141] Another example difference metric is the "Fuzzy Z Score" (FZS). The variance of the distribution of the weights for bit i in fuzzy code j can be defined as var[x i (j) ]. FZS can then be expressed in the iris code analyzer 1140 as the sum of the absolute differences of the expected values ​​over all bits, where each such difference is weighted by the sum of the associated variances, such as in equation (11):

[0142]

[0143] Using one or more of these example difference metrics, the iris code analyzer 1140 can compare two ambiguous iris codes to determine whether there is a match to the same iris, for example, based on some predetermined threshold.

[0144] Some difference measures can be described as treating groups of z bits as random processes with basis weights such that K = 2 z The probabilities of the possible outcomes are specified by a multinomial distribution. In some embodiments, a mapping can be applied to the possible outcomes to group the possible outcomes. The mapping can be determined / applied using supervised or unsupervised machine learning, clustering, or analytical constructs. For example, the bit pairs corresponding to the convolution of two different filters at the same location on the iris will constitute a vector with z=2 and therefore K=2. z = 4 possible results. (However, the bits in the group may or may not correspond to the same position on the iris image, as they may be the result of applying the filter to the same, adjacent, or completely different areas of the iris.) This can be expressed as a probability vector It has one element for each of the K categories (i.e., possible outcomes of the bit group). k The values ​​of can be normalized so that their sum equals 1. The weights can be obtained by a Dirichlet distribution with K shape parameter (or "centrality parameter") The shape parameters are similar to the parameters a and b described above for the Beta distribution in the binomial case. The shape parameters may start from the values ​​of the a priori information for the coding bit groups and may be updated as separate measurements are made on the corresponding groups in different iris images.

[0145] In some examples, the iris code analyzer 1140 may use a "Fuzzy Multinomial Iris Code" (FMIC) instead of FIC. For a group size of z, the FMIC may have 2048 / z entries, each of which consists of K=2 z The true shape parameter of . The example difference measure defined above for the binomial case can be generalized to the multinomial case as follows. In some examples, the indicator vector can be a set of K-dimensional vectors in which all elements are set to zero except the element corresponding to the highest probability in the weight vector for a particular group, which is set to one. can be defined as the indicator vector corresponding to the i-th bit group in the j-th FMIC. It can be defined as the expected value of the K-dimensional weight vector of the i-th group (i.e., the optimal estimate of the weight of the group), and can be expressed as equation (12):

[0146]

[0147]

[0148] Equation (13) can represent the sum of shape parameters for a particular group. Define μ i =E(X i ), the covariance matrix ∑ can be expressed as equation (14):

[0149]

[0150] Defining N to represent the number of bit groups (rather than the number of bits), a polynomial version of the example difference metric can be expressed as equations (15), (16), and / or (17):

[0151]

[0152]

[0153]

[0154] In some examples, the above example difference measures may be evaluated with a minimum variance ∈. In these examples, the variance used in the calculation may be the observed variance plus the minimum variance ∈, or the larger of the observed variance and the minimum variance ∈. The minimum variance ∈ may be added to better fit the difference measure. This may be done to compensate for a lack of data.

[0155] Figure 8 Depicted is an example process for comparing iris codes according to some embodiments. Figure 8 , an iris code analyzer 1140 is shown performing a process of comparing two iris codes. The iris code analyzer 1140 may be configured to reset (2020) a cell probability distribution, accumulate (2040) a plurality of iris codes from a current user session, and calculate (2060) a cell probability distribution for one or more cells. A value for one or more cells may be identified or determined (2080), and a size-related confidence value may be calculated (2100) for one or more cells. In some examples, values ​​are not calculated for cells that do not meet certain variability criteria. In some examples, a value may be assigned (2120) to a cell, or omitted, before calculating (2140) a Hamming distance between the generated iris code and the stored iris code, based on a statistical comparison, such as comparing a confidence interval / value of the generated iris code to a confidence interval / value of a stored iris code. In some examples, the iris code analyzer 1140 may use the SHD, MHD, and / or FZS metrics, or another fuzzy metric, to compare two (fuzzy) iris codes.

[0156] In some examples, the iris code analyzer 1140 can be configured to compare a single generated iris code with stored iris codes, or to generate a composite iris code based on two or more generated iris codes. In some examples, the iris code analyzer 1140 may require a minimum or predetermined number (e.g., 2, 50, 1000, 3000) of iris images or iris codes to generate a composite iris code.

[0157] Fig. 9 Depicted is an example process for accumulating and comparing iris codes according to some embodiments. Fig. 9 In some examples, the iris code analyzer 1140 can be configured to accumulate (3020) multiple generated iris codes and then generate (3040) a fuzzy iris code for each cell. In some examples, a non-binary value ranging from 0 to 1 can be calculated, which corresponds to the average of the bits over a set of iris codes (or the probability that the binary bit value is 1). In examples with a sufficiently large sample size, the confidence level of each non-binary value can be reliably reproduced. For example, in a non-binary composite iris code where the probability of a 0 or 1 result is equal (e.g., the average bit value is 0.5), inconsistent bits may be reproducible (i.e., the probabilities may be fairly reliable and may behave like random Bernoulli variables). In some examples, instead of omitting the corresponding bit or cell value from the Hamming distance calculation, the average non-binary bit value can be used to perform a modified Hamming distance calculation (3060). The non-binary composite iris code can be used to match another non-binary composite iris code or a binary composite iris code, where the binary value of each bit is treated as a continuous value in the range of 0 to 1. This can improve the separation between matching and non-matching Hamming distance distributions, thereby reducing the effective EER.

[0158] Fig. 10A Depicted are example binary iris codes and example fuzzy iris codes according to some embodiments. Line 4000 shows an example 10-bit portion of a stored binary iris code having a value of 1011000100. Line 4100 shows a fuzzy iris code, representing the probability of a "1" value for each corresponding bit value in one or more generated iris codes. Based on the corresponding probability values ​​of some bits, they may be characterized as inconsistent. For example, such as for Fig. 10AThe probability values ​​of bit 1 in the range of 0.40 to 0.60 can be characterized as uncertain. The remaining bits of the generated set of iris codes are then quantized to 0 or 1 values ​​so that the bit portion has a value of X011000000 (where "X" represents an inconsistent bit), indicating a mismatch at bit 8, where the binary iris code has a value of 1 and the ambiguous iris code has a value of 0. If the inconsistent bits are considered as mismatched bits, the Hamming distance of the two iris code portions can be calculated as 2 / 10 or 0.2 due to the mismatch at bit 1 and bit 8. In some examples, if bit 1 is omitted from the Hamming distance calculation, the result will be 1 / 10 or 0.1. In some examples, if bit 1 is omitted from the Hamming distance calculation, the result will be 1 / 9. In some examples, if bit 1 is considered to have a value of 0.5, the difference in bit 1 will be |1-0.5| or 0.5, resulting in a Hamming distance of 1.5 / 10 or 0.15.

[0159] In an example where the iris code analyzer 1140 is configured to characterize any probability value from 0.2 to 0.8 as an inconsistency, an exemplary set of generated iris codes will have values ​​of X01X0X0000, reflecting three inconsistent bits (bits 1, 4, and 6), and a mismatch at bit 8. In some examples, if the three inconsistent bits are characterized as mismatches, the Hamming distance will be 4 / 10 or 0.4000. In some examples, if the inconsistent bits 1, 4, and 6 are assigned their probability values ​​of 0.5, 0.8, and 0.3, respectively, then the corresponding difference values ​​of |1-0.5|, |1-0.8|, and |0-0.3| will be used to calculate the Hamming distance (0.5+0.2+0.3+1) / 10=0.20.

[0160] Although for Fig. 10A While the examples described involve a matching comparison between a fuzzy composite iris code and a binary iris code, some examples may involve a matching comparison between two fuzzy iris codes. Fig. 10B Two example blurred iris codes are depicted. Fig. 10B The values ​​of the stored blurred iris code are shown at 4200: 0.7 / 0.0 / 1.0 / 1.0 / 0.2 / 0.2 / 0.2 / 1.0 / 0.0 / 0.0. Fig. 10B The values ​​of the generated blurred iris code are also shown at 4300: 0.5 / 0.1 / 1.0 / 0.8 / 0.1 / 0.3 / 0.1 / 1.0 / 0.0 / 0.0. When comparing these two non-binary composite iris codes, the modified Hamming distance is (0.2+0.1+0.0+0.2+0.1+0.1+0.1+1.0+0.0+0.0) / 10.0 or 0.18.

[0161] In some examples, more than one stored iris code may be associated with a user. These stored iris codes may be associated with a user condition, an environmental condition, a state detectable by an internal and / or external sensor, or other criteria. For example, a stored iris code may be associated with certain lighting conditions detected by an internal and / or external sensor, or with certain eye orientations identified by an internal sensor (such as by gaze tracking). In some examples, to reduce the risk of false positive matches from a large number of stored sets of iris codes, the iris code analyzer 1140 may be configured to utilize additional iris codes only under certain conditions: for example, if the sensor input satisfies certain input parameters. In some examples, the iris code analyzer 1140 may be configured to utilize different Hamming distance thresholds for different iris codes. For example, the iris code analyzer 1140 may use: a first Hamming distance threshold to verify a match using a first iris code; and a second, lower (and therefore more stringent) Hamming distance threshold to verify a match using a second iris code.

[0162] Systems incorporating head mounted display devices may provide opportunities for improved iris code comparisons. For example, unlike systems that acquire an initial iris image using an imaging device that is not coupled to the user, a user wearable system may remain engaged with the user after initial user identification, allowing for continued iris image acquisition even after an initial user match has been confirmed. Post-match images may be used to reconfirm the user's identity, to further refine stored iris codes for future user identifications, and / or to improve the statistical confidence of the match.

[0163] In some examples, the iris recognition system, whether in a head-mounted system or a non-head-mounted system, can collect and / or calculate other data related to the matching process itself. For example, this can include the distribution of positive matches (e.g., the Hamming distance achieved at the initial match verification and / or re-verification during the session), or the average Hamming distance achieved (with or without confidence or variance metrics). This data can be used, for example, to calibrate the access controller. For example, some users may be able to consistently achieve a lower Hamming distance than other users, and the thresholds set by the system can be adjusted accordingly to achieve the desired security and / or user experience. In some examples, the system can also collect or process data from other sensor systems, which may or may not be related to matching or non-matching. In some examples, a user or account can be associated with multiple iris codes of the same user. In some examples, a match with any iris code may be sufficient to achieve a match, and in some examples, one or more iris codes may be secondary iris codes, where a match is allowed only if other sensor criteria are met.

[0164] In some examples, matches can be periodically reverified, which can enhance security by confirming the continued presence of matched users. Reverification may occur, for example, every second, every ten seconds, every minute, or every hour. In some examples, the rate of reassessment may vary depending on the user function used or requested. For example, when performing a game function, reverification may not be required, or it may start at the end of a game session; but access to sensitive financial or health information may require regular reverification during the access period. In some examples, access controller 1180 may be configured to allow a user to temporarily or conditionally suspend reverification-for example, if a user wishes to allow another user (with a different iris) to use the system. In some examples, the ability to suspend reverification of a user may be selectively blocked relative to certain user functions or data (such as sensitive financial or health information or content marked as confidential).

[0165] In some examples, different levels of security access can be associated with different levels of account access or functionality. For example, a lower level of security access may enable faster iris verification under suboptimal image acquisition conditions and may be sufficient for basic user functionality; whereas a higher level of security (corresponding to a higher level of confidence in the user's identity) may be granted only after multiple iris images have been acquired and analyzed. Figure 7 In some embodiments, the system 1000 may be configured such that iris verification provides not only a match value corresponding to a non-match or a complete match, but also a value corresponding to a conditional or partial match. In some examples, a first function of the system 1000 (such as one or more of the functions 1200) may be activated in response to a complete match, while a second function of the system 1000 may be activated in response to a conditional match. The second function may be a subset of the first function, may be more limited than the first function, or may be different from the first function. In some examples, one or more of the functions 1200 may be used with little or no iris verification, while other functions 1200 may require a higher level of confidence in the user's identity. In some examples, less sensitive applications (such as games) may allow for a higher Hamming distance threshold; while more sensitive applications (such as access to financial or health information) may require a lower or more stringent Hamming distance threshold. In some examples, in response to determining that the match value corresponds to a conditional match, the system 1000 may obtain additional iris images, generate additional iris codes, generate a composite iris code, and generate a new match value corresponding to a complete match or a non-match.

[0166] The above example processes can be implemented in a computer system using any appropriate logic circuitry. Suitable logic circuitry may include one or more computer processors (e.g., CPUs, GPUs, etc.) that perform processing when executing instructions implemented in a software program. In addition, such processes may also be provided via corresponding logic designs implemented in hardware logic circuits, such as programmable logic (e.g., PLDs, FPGAs, etc.) or custom logic (e.g., ASICs, etc.) that implement logic designs that provide the processes. In addition, such processing may be provided via an implementation that combines one or more processors that run software and hardware logic circuits.

[0167] Fig.11 An example system 5000 is shown that can be used to implement any or all of the above examples. The example system 5000 can be included in a portable device (including a wearable device) or a non-portable device - for example, a communication device (e.g., a mobile phone, a smart phone), a multimedia device (e.g., an MP3 player, a TV, a radio), a portable or handheld computer (e.g., a tablet computer, a netbook, a laptop computer), a desktop computer, an all-in-one desktop computer, a peripheral device, a head-mounted device (e.g., which can include an integrated display), or any other system or device suitable for including the example system 5000, including combinations of two or more of these types of devices. The above examples can be embodied in two or more physically separate devices, such as two or more computers communicating via a wireless network. The above examples can be embodied in two or more physically different devices, such as a belt pack that transmits data to and / or from a head-mounted display device. The example system 5000 includes one or more computer-readable media 5010, a processing system 5040, an I / O subsystem 5060, wireless communication circuitry (e.g., RF circuitry) 5080, an audio device (e.g., speaker, microphone) 5100, and a sensor 5110. These components may be coupled via one or more communication buses or signal lines 5030.

[0168] Fig.11 The architecture shown in is only one example architecture of the example system 5000, and the example system 5000 may have more or fewer components than shown, or a different configuration of components. Fig.11 The various components shown in the present invention may be implemented in hardware, software, firmware, or any combination thereof, including one or more digital signal processors (DSPs) and / or application specific integrated circuits (ASICs).

[0169] refer to Fig.11In the example system 5000 in the example system 5000, the wireless communication circuit 5080 can be used to send information to one or more other devices and receive information from one or more other devices via a wireless (e.g., RF) link or network, and can include circuits for performing this function. The wireless communication circuit 5080 and the audio device 5100 can be coupled to the processing system 5040 via the peripheral device interface 5160. The peripheral device interface 5160 may include various known components for establishing and maintaining communication between the peripheral device (e.g., the wireless communication circuit 5080, the audio device 5100, and the sensor 5110) and the processing system 5040. The audio device 5100 may include circuits for processing voice signals received from the peripheral device interface 5160 to enable the user to communicate with other users in real time. The audio device 5100 may include, for example, one or more speakers and / or one or more microphones. In some examples, the audio device 5100 may include a headphone jack (not shown).

[0170] Sensors 5110 may include various sensors including, but not limited to, one or more light emitting diodes (LEDs) or other light emitters, one or more photodiodes or other light sensors, one or more photothermal sensors, a magnetometer, an accelerometer, a gyroscope, a barometer, a compass, a proximity sensor, a camera, an ambient light sensor, a thermometer, a GPS sensor, an electro-oculogram (EOG) sensor, and various system sensors that may sense remaining battery life, power consumption, processor speed, CPU load, etc. In examples such as involving a head-mounted device (which may include a display), one or more sensors may be employed in conjunction with functionality related to the user's eyes (such as tracking the user's eye movements, or identifying a user based on images of his or her eyes).

[0171] The peripheral device interface 5160 can couple the input and output peripheral devices of the system 5000 to one or more processors 5180 and one or more computer-readable media 5010. The one or more processors 5180 can communicate with the one or more computer-readable media 5010 via the controller 5200. The computer-readable medium 5010 can be any device or medium (except signals) that can store code and / or data for use by one or more processors 5180. In some examples, the computer-readable medium 5010 can be a non-transitory computer-readable storage medium. The computer-readable medium 5010 may include a memory hierarchy, including but not limited to cache, main memory, and auxiliary memory. The memory hierarchy can be implemented using any combination of RAM (e.g., SRAM, DRAM, DDRAM), ROM, FLASH, magnetic and / or optical storage devices (such as disk drives, tapes, CDs (compact disks), and DVDs (digital video disks)). The computer-readable medium 5010 may also include a transmission medium for carrying information-carrying signals indicating computer instructions or data (but excluding signals and excluding carriers on which signals are modulated). For example, the transmission medium may include communication networks including but not limited to the Internet (including the World Wide Web), an intranet, a local area network (LAN), a wide area network (WLAN), a storage area network (SAN), a metropolitan area network (MAN), etc.

[0172] The one or more processors 5180 can run various software components stored in the computer-readable medium 5010 to perform various functions of the example system 5000. In some examples, the software components may include an operating system 5220, a communication module (or instruction set) 5240, an I / O processing module (or instruction set) 5260, a graphics module (or instruction set) 5280, and one or more applications (or instruction sets) 5300. Each of these modules and the above-mentioned applications can correspond to an instruction set for performing one or more of the above-mentioned functions and methods described in this application (e.g., computer-implemented methods and other information processing methods described herein). These modules (i.e., instruction sets) do not need to be implemented as separate software programs, processes, or modules, and therefore, in various examples, various subsets of these modules can be combined or otherwise rearranged. In some examples, the computer-readable medium 5010 can store a subset of the modules and data structures identified above. In addition, the computer-readable medium 5010 can store additional modules and data structures not described above.

[0173] The operating system 5220 may include various processes, instruction sets, software components and / or drivers for controlling and managing general system tasks (e.g., memory management, storage device control, power management, etc.) and facilitating communications between various hardware and software components.

[0174] Communications module 5240 may facilitate communications with other devices through one or more external ports 5360 or via wireless communications circuitry 5080 , and may include various software components for processing data received from wireless communications circuitry 5080 and / or external ports 5360 .

[0175] The graphics module 5280 may include various known software components for rendering, animating, and displaying graphical objects on one or more display surfaces. The display surface may include a 2D or 3D display. The display surface may be directly or indirectly coupled to one or more components of the example system 5000. In examples involving a touch sensing display (e.g., a touch screen), the graphics module 5280 may include components for rendering, displaying, and animating objects on the touch sensing display. In some examples, the graphics module 5280 may include components for rendering to a remote display. In some examples, such as those that include a camera, the graphics module 5280 may include components for creating and / or displaying an image formed by composite camera data (such as captured from a head-mounted camera) or photographic data (such as images captured by a satellite) with rendered graphical objects. In some examples, the graphics module 5280 may include components for rendering images to a head-mounted display device. In some examples, the image may include a view of an element of virtual content (e.g., an object in a three-dimensional virtual environment) and / or a view of the physical world (e.g., a camera input indicating the user's physical environment). In some examples, the display may present a combination of views of the virtual content and the physical world. In some examples, the view of the physical world may be a rendered image; in some examples, the view of the physical world may be an image from a camera.

[0176] The one or more applications 5300 may include any application installed on the example system 5000, including but not limited to browsers, address books, contact lists, email, instant messaging, word processing, keyboard emulation, widgets, JAVA-enabled applications, encryption, digital rights management, voice recognition, voice replication, location determination functionality (such as that provided by a global positioning system (GPS)), music players, and the like.

[0177] The I / O subsystem 5060 can be coupled to one or more I / O devices 5140 for controlling or performing various functions. In examples involving processing eye data, such as examples including eye tracking or iris recognition functions, the I / O subsystem 5060 can be coupled to one or more I / O devices 5120 dedicated to processing eye-related input and output. The one or more eye I / O devices 5120 can communicate with the processing system 5040 via an eye I / O device controller 5320, which can include various components for processing eye input (e.g., sensors for eye tracking) or user gesture input (e.g., optical sensors). One or more other I / O controllers 5340 can send electrical signals to other I / O devices 5140, and can also receive electrical signals from other I / O devices 5140. Such I / O devices 5140 can include physical buttons, dials, slider switches, joysticks, keyboards, touchpads, additional display screens, or any combination thereof.

[0178] The I / O processing module 5260 may include various software components for performing various tasks associated with one or more eye I / O devices 5120 and / or one or more other I / O devices 5140, including but not limited to receiving and processing input received from the eye I / O device 5120 via the eye I / O device controller 5320 or from other I / O devices 5140 via the I / O controller 5340. In some examples, the I / O device 5140 and / or the I / O processing module 5260 may perform various tasks associated with gesture input, which may be provided by tactile or non-tactile means. In some examples, the gesture input may be provided by a camera or another sensor, such as for detecting movement of the user's eyes, arms, hands, and / or fingers. In some examples, the one or more I / O devices 5140 and / or the I / O processing module 5260 may be configured to identify an object on the display that the user wishes to interact with, such as a GUI element that the user is pointing to. In some examples, one or more eye I / O devices 5120 and / or I / O processing modules 5260 may be configured to perform eye tracking tasks (such as with the aid of an optical or EOG sensor), such as identifying an object or area on a display that a user is viewing. In some examples, a device (such as a hardware "beacon") may be worn or held by a user to assist one or more I / O devices 5140 and / or I / O processing modules 5260 in completing gesture-related tasks, such as identifying the position of a user's hand relative to a 2D or 3D environment. In some examples, one or more eye I / O devices 5120 and / or I / O processing modules 5260 may be configured to identify a user based on sensor input (such as data from a camera sensor relating to the user's eyes).

[0179] In some examples, the graphics module 5280 can display visual output to the user in a graphical user interface (GUI). The visual output can include text, graphics, video, and any combination thereof. Some or all of the visual output can correspond to user interface objects. In some examples, one or more I / O devices 5120 and / or 5140 and / or controllers 5320 and / or 5340 (and any associated modules and / or instruction sets in the medium 5010) can detect and track gestures and / or eye movements, and can convert detected gestures and / or eye movements into interactions with graphical objects (such as one or more user interface objects). In examples where one or more eye I / O devices 5120 and / or eye I / O device controllers 5320 are configured to track the user's eye movements, the user can interact directly with the graphical objects by viewing them.

[0180] Feedback may be provided, such as by one or more eye I / O devices 5120 or one or more other I / O devices 5140, based on the content being displayed and / or one or more states of the example system 5000. Feedback may be sent optically (e.g., a light signal or a displayed image), mechanically (e.g., tactile feedback, touch feedback, force feedback, etc.), electrically (e.g., electrical stimulation), olfactory, auditory (e.g., a beep, etc.), etc., or any combination thereof and in a variable or invariant manner.

[0181] The example system 5000 may also include a power system 5440 for powering various hardware components, and may include a power management system, one or more power supplies, a charging system, a power fault detection circuit, a power converter or inverter, a power status indicator, and any other components generally related to the generation, management, and distribution of power in a portable device.

[0182] In some examples, peripherals interface 5160, one or more processors 5180, and controller 5200 can be implemented on a single chip, such as processing system 5040. In some other examples, they can be implemented on separate chips.

[0183] In some examples, a system is disclosed. The system may include an iris imager configured to acquire an iris image; and a processor configured to receive a first plurality of iris images from the iris imager, generate a first plurality of iris codes corresponding to the first plurality of iris images, generate a distribution metric corresponding to an iris unit location, generate a first composite iris code using the distribution metric, and generate a first match value using the first composite iris code and a first stored iris code. In addition to or as an alternative to one or more of the above examples, each iris code in the first plurality of iris codes may include a plurality of values, each value in the plurality of values ​​corresponding to an iris unit. In addition to or as an alternative to one or more of the above examples, the iris unit location may correspond to a first iris unit, and each iris code in the first plurality of iris codes may include a value corresponding to the first iris unit. In addition to or as an alternative to one or more of the above examples, the processor may be further configured to, in response to determining that the first match value exceeds a threshold, activate a function of the system. In addition to or as an alternative to one or more of the above examples, the system may further include a head mounted display. Additionally or alternatively to one or more of the above examples, the first composite iris code and the first stored iris code may each be a fuzzy iris code. Additionally or alternatively to one or more of the above examples, the first match value may be at least one of a soft Hamming distance, a median Hamming distance, and a fuzzy Z score. Additionally or alternatively to one or more of the above examples, generating a distribution metric may include determining a sample size-dependent confidence value. Additionally or alternatively to one or more of the above examples, generating a first match value may include comparing a confidence interval of the first composite iris code to a confidence interval of the first stored iris code. Additionally or alternatively to one or more of the above examples, generating a distribution metric may include determining a probability of a cell value. Additionally or alternatively to one or more of the above examples, generating a distribution metric may include quantizing a number of occurrences of a cell value. Additionally or alternatively to one or more of the above examples, an iris code in the first plurality of iris codes may include a binary cell value, and the first composite iris code may include a non-binary cell value. In addition to or as an alternative to one or more of the above examples, the processor may be further configured to: assign a quality score to an iris image in the first plurality of iris images; and compare the quality score to a threshold; in response to determining that the quality score does not meet the threshold, exclude the iris image. In addition to or as an alternative to one or more of the above examples, generating the first match value may include calculating a Hamming distance. In addition to or as an alternative to one or more of the above examples, the processor may be further configured to determine whether the first match value corresponds to a perfect match.In addition to or as an alternative to one or more of the above examples, the processor may be further configured to determine whether the first match value corresponds to a conditional match. In addition to or as an alternative to one or more of the above examples, the processor may be further configured to: in response to determining that the first match value corresponds to a complete match, activate a first function of the system; and in response to determining that the first match value corresponds to a conditional match, activate a second function of the system, the second function being different from the first function. In addition to or as an alternative to one or more of the above examples, the processor may be further configured to: in response to determining that the first match value corresponds to a conditional match: receive a second plurality of iris images from the iris imager, generate a second plurality of iris codes, generate a second composite iris code, and generate a second match value using the second composite iris code and the first stored iris code. In addition to or as an alternative to one or more of the above examples, the first plurality of iris images may include a predetermined minimum number of iris images.

[0184] In some examples, a method is disclosed. The method may include receiving a first plurality of iris images; generating a first plurality of iris codes corresponding to the first plurality of iris images; generating a distribution metric corresponding to an iris unit location; generating a first composite iris code using the distribution metric; and generating a first match value using the first composite iris code and a first stored iris code. Additionally or alternatively to one or more of the above examples, each iris code in the first plurality of iris codes may include a plurality of values, each value in the plurality of values ​​corresponding to an iris unit. Additionally or alternatively to one or more of the above examples, the iris unit location may correspond to a first iris unit, and each iris code in the first plurality of iris codes includes a value corresponding to the first iris unit.

[0185] In some examples, a system is disclosed. The system may include a headband unit configured to be worn by a user, the headband unit including: a display configured to display a virtual environment to the user, the display including a transmissive eyepiece through which a real environment is visible; an iris imager configured to acquire an image of an iris of the user, the iris imager configured to remain fixed relative to the user; and a processor configured to: receive a first plurality of iris images from the iris imager, the plurality of images being associated with the user; generate a first plurality of iris codes corresponding to the first plurality of iris images, generate a distribution metric corresponding to iris unit locations, generate a first composite iris code using the distribution metric, and generate a first match value using the first composite iris code and a first stored iris code, the first match value corresponding to the user.

[0186] While the disclosure has been particularly shown and described with reference to examples thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the scope of the disclosure.

Claims

1. A system comprising: an iris imager configured to output an iris image of an eye having an iris associated with a first iris unit location and a second iris unit location; as well as One or more processors configured to perform a method comprising: receiving a first iris image from the iris imager, the first iris image including a first iris element corresponding to a first iris element location; receiving a second iris image from the iris imager, the second iris image including a second iris element corresponding to a second iris element position different from the first iris element position; generating a first composite iris code associated with the eye, the first composite iris code being based on the first iris image and further based on the second iris image, the first composite iris code comprising first composite iris code elements corresponding to the first iris element positions and further comprising second composite iris code elements corresponding to the second iris element positions; comparing the first composite iris code to a first stored iris code; and Based on the comparison, a first iris matching value is generated, Wherein, generating the first composite iris code comprises: determining a first distribution metric based on the first iris image, determining a value of the first composite iris code unit based on the first distribution metric, determining a second distribution metric based on the second iris image, and Based on the second distribution metric, a value of the second composite iris code unit is determined.

2. The system according to claim 1, further comprising a wearable head device having a display, wherein: The eye is an eye of a user of the wearable head device, and the wearable head device includes the iris imager.

3. The system according to claim 2, wherein: The method further comprises: Determining whether the first iris matching value exceeds a threshold; Based on determining that the first iris matching value exceeds the threshold, allowing the user to access a function associated with the wearable head device; and Based on determining that the first iris matching value does not exceed the threshold, denying the user access to the function.

4. The system according to claim 1, wherein: The first iris matching value includes one of the following: a soft Hamming distance, a median Hamming distance, and a fuzzy Z-score.

5. The system of claim 1, wherein: Determining the first distribution metric based on the first iris image includes: Based on the first iris image, determining a first iris code; and determining that a value of the first iris code is a dominant value, the value corresponding to the first iris unit; and Determining the second distribution metric based on the second iris image includes: Based on the second iris image, determining a second iris code; and It is determined that a value of the second iris code is a dominant value, the value corresponding to the second iris unit.

6. The system according to claim 5, wherein: Applying the first distribution metric to the first iris image further includes determining the first iris code in response to determining that the first iris image exceeds a reliability threshold.

7. A method comprising: receiving a first iris image from an iris imager configured to output an iris image of an eye having an iris associated with a first iris element location and a second iris element location, the first iris image including a first iris element corresponding to the first iris element location; receiving a second iris image from the iris imager, the second iris image including a second iris element corresponding to a second iris element position different from the first iris element position; generating a first composite iris code associated with the eye, the first composite iris code being based on the first iris image and further based on the second iris image, the first composite iris code comprising first composite iris code elements corresponding to the first iris element positions and further comprising second composite iris code elements corresponding to the second iris element positions; comparing the first composite iris code to a first stored iris code; as well as Based on the comparison, a first iris matching value is generated, Wherein, generating the first composite iris code comprises: determining a first distribution metric based on the first iris image, determining a value of the first composite iris code unit based on the first distribution metric, determining a second distribution metric based on the second iris image, and Based on the second distribution metric, a value of the second composite iris code unit is determined.

8. The method according to claim 7, wherein: The eye is an eye of a user of a wearable head device, and the wearable head device includes the iris imager.

9. The method according to claim 8, further comprising: Determining whether the first iris matching value exceeds a threshold; Based on determining that the first iris matching value exceeds the threshold, allowing the user to access a function associated with the wearable head device; as well as Based on determining that the first iris matching value does not exceed the threshold, denying the user access to the function.

10. The method according to claim 7, wherein: The first iris matching value includes one of the following: a soft Hamming distance, a median Hamming distance, and a fuzzy Z-score.

11. The method according to claim 7, wherein: Determining the first distribution metric based on the first iris image includes: Based on the first iris image, determining a first iris code; and determining that a value of the first iris code is a dominant value, the value corresponding to the first iris unit; and Determining the second distribution metric based on the second iris image includes: Based on the second iris image, determining a second iris code; and It is determined that a value of the second iris code is a dominant value, the value corresponding to the second iris unit.

12. The method according to claim 11, wherein: Applying the first distribution metric to the first iris image further includes determining the first iris code in response to determining that the first iris image exceeds a reliability threshold.

13. A non-transitory computer readable medium comprising instructions that, when executed by one or more processors, cause the one or more processors to perform a method comprising: receiving a first iris image from an iris imager configured to output an iris image of an eye having an iris associated with a first iris element location and a second iris element location, the first iris image including a first iris element corresponding to the first iris element location; receiving a second iris image from the iris imager, the second iris image including a second iris element corresponding to a second iris element position different from the first iris element position; generating a first composite iris code associated with the eye, the first composite iris code being based on the first iris image and further based on the second iris image, the first composite iris code comprising first composite iris code elements corresponding to the first iris element positions and further comprising second composite iris code elements corresponding to the second iris element positions; comparing the first composite iris code to a first stored iris code; as well as Based on the comparison, a first iris matching value is generated, Wherein, generating the first composite iris code comprises: determining a first distribution metric based on the first iris image, determining a value of the first composite iris code unit based on the first distribution metric, determining a second distribution metric based on the second iris image, and Based on the second distribution metric, a value of the second composite iris code unit is determined.

14. The non-transitory computer readable medium of claim 13, wherein: The eye is an eye of a user of a wearable head device, and the wearable head device includes the iris imager.

15. The non-transitory computer readable medium of claim 14, wherein: The method further comprises: Determining whether the first iris matching value exceeds a threshold; Based on determining that the first iris matching value exceeds the threshold, allowing the user to access a function associated with the wearable head device; and Based on determining that the first iris matching value does not exceed the threshold, denying the user access to the function.

16. The non-transitory computer readable medium of claim 13, wherein: The first iris matching value includes one of the following: a soft Hamming distance, a median Hamming distance, and a fuzzy Z-score.

17. The non-transitory computer readable medium of claim 13, wherein: Determining the first distribution metric based on the first iris image includes: Based on the first iris image, determining a first iris code; and determining that a value of the first iris code is a dominant value, the value corresponding to the first iris unit; and Determining the second distribution metric based on the second iris image includes: Based on the second iris image, determining a second iris code; and It is determined that a value of the second iris code is a dominant value, the value corresponding to the second iris unit.

18. The non-transitory computer readable medium of claim 17, wherein: Applying the first distribution metric to the first iris image further includes determining the first iris code in response to determining that the first iris image exceeds a reliability threshold.

Citation Information

Patent Citations

  • Selecting virtual objects in a three-dimensional space

    US10521025B2

  • Methods and systems for detecting and combining structural features in 3D reconstruction

    US10559127B2

  • Planar waveguide apparatus with diffraction element(s) and system employing same

    US20150016777A1

  • Virtual and augmented reality systems and methods

    US20150178939A1

  • Methods and systems for diagnosing and treating health ailments

    US20160270656A1