A method for improving biometric systems such as facial recognition systems

By converting facial data into irreversible hash values for authentication, the method addresses privacy concerns in facial recognition systems, ensuring secure and instant access without storing sensitive biometric information.

WO2025191564A1PCT designated stage Publication Date: 2025-09-18FACE-INT COM LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
PCT/IL2025/050235
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-03-13
Filing Date
2025-03-12
Publication Date
2025-09-18

AI Technical Summary

Technical Problem

Existing biometric systems, particularly facial recognition systems, face challenges in maintaining user privacy by storing and retrieving sensitive biometric information, which can lead to security breaches and privacy violations.

Method used

Implementing a method that converts facial data into irreversible hash values during enrollment, ensuring no original biometric data is stored, and comparing hashed values for authentication, thus maintaining privacy and enhancing security.

Benefits of technology

Ensures secure and instant access for authenticated users while preventing unauthorized access by not storing raw biometric data, thereby enhancing privacy and security in biometric systems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure IL2025050235_18092025_PF_FP_ABST
    Figure IL2025050235_18092025_PF_FP_ABST
Patent Text Reader

Abstract

Face recognition method comprising, in an enrollment phase, capturing a biometric feature e.g. face of user / s uE, and / or extracting therefrom a biometric template for the user, and / or extracting a hash-value from the template and / or deriving a value more stable and / or more deterministic and / or less noisy than the template; and / or hashing and / or saving this value e.g. as hashed and / or subsequently processing a user uL alleging s / he is uE by comparing this value as saved to a value derived from a biometric feature e.g. face captured from user uL.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] A Method For Improving Biometric Systems Such As Facial Recognition Systems

[0002] REFERENCE TO CO-PENDING APPLICATIONS

[0003] Priority is claimed from United States Provisional Patent Application No. 63 / 564,778 "A Method for Improving Biometric Systems Such as Facial Recognition Systems" filed March 13, 2024, the disclosure of which is hereby incorporated herein by reference in its entirety.

[0004] FIELD OF THIS DISCLOSURE

[0005] The present invention relates generally to verification, and more particularly to biometric systems such as face recognition systems.

[0006] BACKGROUND FOR THIS DISCLOSURE

[0007] Access control based on biometric data is known.

[0008] Many face recognition systems are known.

[0009] Face recognition based on hashing functions is known.

[0010] The disclosures of all publications and patent documents mentioned in the specification, and of the publications and patent documents cited therein directly or indirectly, are hereby incorporated by reference, other than subject matter disclaimers or disavowals. If the incorporated material is inconsistent with the express disclosure herein, the interpretation is that the express disclosure herein describes certain embodiments, whereas the incorporated material describes other embodiments. Definition / s within the incorporated material may be regarded as one possible definition for the term / s in question.

[0011] Materiality of such publications and patent documents to patentability is not conceded.

[0012] SUMMARY OF CERTAIN EMBODIMENTS

[0013] Certain embodiments of the present invention seek to provide methods for improving biometric systems, such as facial recognition systems, by maintaining the privacy of users in the biometric system, in a way that the system does not save biometric information. Certain embodiments include user registration in which users present their face to the system for data capture e.g. by a camera or other imager, data processing in which facial data, e.g. as captured, is converted into a unique numerical representation aka faceprint, hashing for privacy in which faceprints are hashed into irreversible values, ensuring no original biometric data is stored or retrievable, and authentication in which the system compares hashed values to grant secure, instant access to authenticated users, but not to non-authenticated users. Usecases include but are not limited to property management, healthcare in which certain areas are off-limits, say, for patients, hospitality to provide selective access to hotel rooms, retail in which facial recognition may provide store security and / or customer analytics, smart home, smart office, border control, law enforcement, public safety, traveltech, e.g. at airports and border passings.

[0014] Certain embodiments of the present invention seek to provide circuitry typically comprising at least one processor in communication with at least one memory, with instructions stored in such memory executed by the processor to provide functionalities which are described herein in detail. Any functionality described herein may be firmware-implemented or processor- implemented, as appropriate.

[0015] It is appreciated that any reference herein to, or recitation of, an operation being performed, e.g. if the operation is performed at least partly in software, is intended to include both an embodiment where the operation is performed in its entirety by a server A, and also to include any type of "outsourcing" or "cloud" embodiments in which the operation, or portions thereof, is or are performed by a remote processor P (or several such), which may be deployed off-shore or "on a cloud", and an output of the operation is then communicated to, e.g. over a suitable computer network, and used by, server A. Analogously, the remote processor P may not, itself, perform all of the operations, and, instead, the remote processor P itself may receive output / s of portion / s of the operation from yet another processor / s P', may be deployed offshore relative to P, or "on a cloud", and so forth.

[0016] The present invention typically includes at least the following embodiments:

[0017] Embodiment 1. A face recognition method comprising: i. in an enrollment phase, capturing a face of at least one user uE, extracting therefrom a biometric template for the user, e.g. using a face recognition face engine, extracting a hash-value from the template; deriving a value which is more stable and / or deterministic and / or less noisy than the template; and / or (hashing and / or) saving this value and / or, ii. later, e.g. during login of a user uL, alleging s / he is uE, comparing this value as saved to a value derived from a face captured from user uL, e.g. during login.

[0018] Embodiment 2. The method according to any of the preceding embodiments wherein uL is deemed to be uE if the value as saved is over-threshold similar to the value derived from uL's face.

[0019] Embodiment 3. The method according to any of the preceding embodiments wherein the template is no longer in memory in the login phase.

[0020] Embodiment 4. The method according to any of the preceding embodiments wherein the template is compared to plural faces including selecting N ordered pairs of faces wherein, in each of said ordered pairs, one face is more similar to user uE's face, and one is less similar.

[0021] Embodiment 5. The method according to any of the preceding embodiments wherein the value which is more stable comprises a bit-vector which includes N bits, where the k'th bit indicates whether the face in the k'th pair (k - 1, ...N) which is more similar to uE's face is the first face in the pair, or the second face.

[0022] Embodiment 6. The method according to any of the preceding embodiments wherein, in a login phase, a bit-vector may be generated similarly, and the login into uE's account is approved if the bit-vector generated during login is similar to the bit-vector saved from user uE.

[0023] Embodiment 7. A computer program product, comprising a non-transitory tangible computer-readable medium having computer readable program code embodied therein, said computer readable program code adapted to be executed to implement a face recognition method comprising: i. in an enrollment phase, capturing a face of at least one user uE, extracting therefrom a biometric template for the user, e.g. using a face recognition face engine; extracting a hash-value from the template; deriving a value which is more stable and / or deterministic and / or less noisy than the template; and (hashing and) saving this value; and / or ii. later, e.g. during login of a user uL alleging s / he is uE, comparing this value as saved to a value derived from a face captured from user uL, e.g. during login. Embodiment 8. A system comprising at least one processor configured to carry out face recognition by: i. in an enrollment phase, capturing a face of at least one user uE and / or extracting therefrom a biometric template for the user, e.g. using a face recognition face engine, and / or extracting a hash-value e.g. from the template; and / or deriving a value which is typically more stable and / or deterministic and / or less noisy than the template; and / or (hashing and / or) saving this value; and / or, ii. later, e.g. during login of a user uL alleging s / he is uE, comparing this value as saved to a value derived from a face captured from user uL e.g. during login.

[0024] Also provided, excluding signals, is a computer program comprising computer program code means for performing any of the methods shown and described herein when said program is run on at least one computer; and a computer program product, comprising a typically non- transitory computer-usable or -readable medium e.g. non-transitory computer -usable or - readable storage medium, typically tangible, having a computer-readable program code embodied therein, said computer-readable program code adapted to be executed to implement any or all of the methods shown and described herein. The operations in accordance with the teachings herein may be performed by at least one computer specially constructed for the desired purposes, or a general-purpose computer specially configured for the desired purpose by at least one computer program stored in a typically non-transitory computer-readable storage medium. The term "non-transitory" is used herein to exclude transitory, propagating signals or waves, but to otherwise include any volatile or non-volatile computer memory technology suitable to the application.

[0025] Any suitable processor / s, display, and input means may be used to process, display e.g. on a computer screen or other computer output device, store, and accept information such as information used by or generated by any of the methods and apparatus shown and described herein; the above processor / s, display, and input means including computer programs, in accordance with all or any subset of the embodiments of the present invention. Any or all functionalities of the invention shown and described herein, such as but not limited to operations within flowcharts, may be performed by any one or more of: at least one conventional personal computer processor, workstation, or other programmable device or computer or electronic computing device or processor, either general-purpose or specifically constructed, used for processing; a computer display screen and / or printer and / or speaker for displaying; machine- readable memory such as flash drives, optical disks, CDROMs, DVDs, BluRays, magnetic-optical discs or other discs; RAMs, ROMs, EPROMs, EEPROMs, magnetic or optical or other cards, for storing, and keyboard or mouse for accepting. Modules illustrated and described herein may include any one or a combination or plurality of: a server, a data processor, a memory / computer storage, a communication interface (wireless (e.g. BLE) or wired (e.g. USB)), or a computer program stored in memory / computer storage.

[0026] The term "process" as used above is intended to include any type of computation or manipulation or transformation of data represented as physical, e.g. electronic, phenomena which may occur or reside e.g. within registers and / or memories of at least one computer or processor. Use of nouns in singular form is not intended to be limiting; thus, the term processor is intended to include a plurality of processing units which may be distributed or remote, the term server is intended to include plural typically interconnected modules running on plural respective servers, and so forth.

[0027] The above devices may communicate via any conventional wired or wireless digital communication means, e.g. via a wired or cellular telephone network or a computer network such as the Internet.

[0028] The apparatus of the present invention may include, according to certain embodiments of the invention, machine-readable memory containing or otherwise storing a program of instructions which, when executed by the machine, implements all or any subset of the apparatus, methods, features and functionalities of the invention shown and described herein. Alternatively or in addition, the apparatus of the present invention may include, according to certain embodiments of the invention, a program as above which may be written in any conventional programming language, and optionally a machine for executing the program, such as but not limited to a general-purpose computer which may optionally be configured or activated in accordance with the teachings of the present invention. Any of the teachings incorporated herein may, wherever suitable, operate on signals representative of physical objects or substances. The embodiments referred to above, and other embodiments, are described in detail in the next section.

[0029] Any trademark occurring in the text or drawings is the property of its owner and occurs herein merely to explain or illustrate one example of how an embodiment of the invention may be implemented.

[0030] Unless stated otherwise, terms such as, "processing", "computing", "estimating", "selecting", "ranking", "grading", "calculating", "determining", "generating", "reassessing", "classifying", "generating", "producing", "stereo-matching", "registering", "detecting", "associating", "superimposing", "obtaining", "providing", "accessing", "setting" or the like, refer to the action and / or processes of at least one computer / s or computing system / s, or processor / s or similar electronic computing device / s or circuitry, that manipulate and / or transform data which may be represented as physical, such as electronic, quantities e.g. within the computing system's registers and / or memories, and / or may be provided on-the-fly, into other data which may be similarly represented as physical quantities within the computing system's memories, registers or other such information storage, transmission or display devices, or may be provided to external factors, e.g. via a suitable data network. The term "computer" should be broadly construed to cover any kind of electronic device with data processing capabilities, including, by way of non-limiting example, personal computers, servers, embedded cores, computing system, communication devices, processors (e.g. digital signal processors (DSPs), microcontrollers, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), etc.) and other electronic computing devices. Any reference to a computer, controller, or processor is intended to include one or more hardware devices e.g. chips, which may be co-located or remote from one another. Any controller or processor may, for example, comprise at least one CPU, DSP, FPGA, or ASIC, suitably configured in accordance with the logic and functionalities described herein.

[0031] Any feature or logic or functionality described herein may be implemented by processor / s or controller / s configured as per the described feature or logic or functionality, even if the processor / s or controller / s are not specifically illustrated for simplicity. The controller or processor may be implemented in hardware, e.g., using one or more Application-Specific Integrated Circuits (ASICs) or Field-Programmable Gate Arrays (FPGAs), or may comprise a microprocessor that runs suitable software, or a combination of hardware and software elements.

[0032] The present invention may be described, merely for clarity, in terms of terminology specific to, or references to, particular programming languages, operating systems, browsers, system versions, individual products, protocols, and the like. It will be appreciated that this terminology or such reference / s is intended to convey general principles of operation clearly and briefly, by way of example, and is not intended to limit the scope of the invention solely to a particular programming language, operating system, browser, system version, or individual product or protocol. Nonetheless, the disclosure of the standard or other professional literature defining the programming language, operating system, browser, system version, or individual product or protocol in question, is incorporated by reference herein in its entirety.

[0033] Elements separately listed herein need not be distinct components, and alternatively may be the same structure. A statement that an element or feature may exist is intended to include (a) embodiments in which the element or feature exists; (b) embodiments in which the element or feature does not exist; and (c) embodiments in which the element or feature exist selectably, e.g. a user may configure or select whether the element or feature does or does not exist.

[0034] Any suitable input device, such as but not limited to a sensor, may be used to generate or otherwise provide information received by the apparatus and methods shown and described herein. Any suitable output device or display may be used to display or output information generated by the apparatus and methods shown and described herein. Any suitable processor / s may be employed to compute or generate or route, or otherwise manipulate or process, information as described herein, and / or to perform functionalities described herein, and / or to implement any engine, interface, or other system illustrated or described herein. Any suitable computerized data storage e.g. computer memory may be used to store information received by or generated by the systems shown and described herein. Functionalities shown and described herein may be divided between a server computer and a plurality of client computers. These or any other computerized components shown and described herein may communicate between themselves via a suitable computer network. The system shown and described herein may include a user interface which may, for example, include all or any subset of: an interactive voice response interface, automated response tool, speech-to-text transcription system, automated digital or electronic interface having interactive visual components, web portal, visual interface loaded as web page / s or screen / s from server / s via communication network / s to a web browser or other application downloaded onto a user's device, automated speech-to-text conversion tool, including a frontend interface portion thereof and back-end logic interacting therewith. Thus, the term user interface or "Ul" as used herein includes also the underlying logic which controls the data presented to the user, e.g. by the system display, and receives and processes data entered by a user, e.g. using her or his workstation / device.

[0035] BRIEF DESCRIPTION OF THE DRAWINGS

[0036] Certain embodiments of the present invention are illustrated in the following drawings; in the block diagrams, arrows between modules may be implemented as APIs, and any suitable technology may be used for interconnecting functional components or modules illustrated herein in a suitable sequence or order e.g. via a suitable API / interface. For example, state-of- the-art tools may be employed, such as but not limited to Apache Thrift and Avro which provide remote call support. Or, a standard communication protocol may be employed, such as but not limited to HTTP or MQTT, and may be combined with a standard data format, such as but not limited to JSON or XML.

[0037] Fig. 1 is a simplified diagram of bit-vector extraction during an enrollment process, according to certain embodiments.

[0038] Fig. 2 is a simplified diagram of partitioning of a Biometric Template or vector into parts or groups or subgroups e.g. during enrollment, according to certain embodiments.

[0039] Fig. 3 is a simplified flow diagram of hashing during enrollment, according to certain embodiments.

[0040] Fig. 4 is a simplified diagram of shift-vector generation according to certain embodiments e.g. during enrollment, shown for only two of eight enrollment parts, for simplicity. Fig, 5 is a simplified diagram of meta-data being saved according to certain embodiments, e.g. during enrollment, wherein the biometric template is typically discarded rather than saved.

[0041] Fig. 6 is a simplified diagram of a verification process according to certain embodiments, e.g. during login, to enable users to login, if and only if each user's face is verified vis a vis data stored for that user during enrollment, e.g. as per all or any subset of Figs. 1- 5.

[0042] Figs. 7 - 9, taken together, form a simplified flowchart illustration of a method for improving biometric systems such as facial recognition systems according to certain embodiments.

[0043] Figs. 10a ■■■• 10c, taken together, illustrate an example iterative method according to embodiments herein; all or any subset of the illustrated operations may be performed in any suitable order e.g. as shown and may be combined with any operation shown and described herein e.g. with any operation in any of Figs. 7, 8 or 9.

[0044] Methods and systems included in the scope of the present invention may include some (e.g. any suitable subset) or all of the functional blocks shown in the specifically illustrated implementations by way of example, in any suitable order e.g. as shown.

[0045] Computational, functional, or logical components described and illustrated herein can be implemented in various forms, for example as hardware circuits, such as but not limited to custom VLSI circuits or gate arrays, or programmable hardware devices, such as but not limited to FPGAs, or as software program code stored on at least one tangible or intangible computer- readable medium and executable by at least one processor, or any suitable combination thereof. A specific functional component may be formed by one particular sequence of software code, or by a plurality of such, which collectively act or behave or act as described herein with reference to the functional component in question. For example, the component may be distributed over several code sequences such as but not limited to objects, procedures, functions, routines, and programs and may originate from several computer files which typically operate synergistically.

[0046] Each functionality or method herein may be implemented in software (e.g. for execution on suitable processing hardware such as a microprocessor or digital signal processor), firmware, hardware (using any conventional hardware technology such as Integrated Circuit technology), or any combination thereof.

[0047] Functionality or operations stipulated as being software-implemented may alternatively be wholly or fully implemented by an equivalent hardware or firmware module, and vice-versa. Firmware implementing functionality described herein, if provided, may be held in any suitable memory device, and a suitable processing unit (aka processor) may be configured for executing firmware code. Alternatively, certain embodiments described herein may be implemented partly or exclusively in hardware, in which case all or any subset of the variables, parameters, and computations described herein may be in hardware.

[0048] Any module or functionality described herein may comprise a suitably configured hardware component or circuitry. Alternatively or in addition, modules or functionality described herein may be performed by a general-purpose computer, or more generally by a suitable microprocessor, configured in accordance with methods shown and described herein, or any suitable subset, in any suitable order, of the operations included in such methods, or in accordance with methods known in the art.

[0049] Any logical functionality described herein may be implemented as a real-time application, if and as appropriate, and which may employ any suitable architectural option, such as but not limited to FPGA, ASIC, or DSP, or any suitable combination thereof.

[0050] Any hardware component mentioned herein may, in fact, include either one or more hardware devices e.g. chips, which may be co-located or remote from one another.

[0051] Any method described herein is intended to include within the scope of the embodiments of the present invention also any software or computer program performing all or any subset of the method's operations, including a mobile application, platform, or operating system e.g. as stored in a medium, as well as combining the computer program with a hardware device to perform all or any subset of the operations of the method.

[0052] Data can be stored on one or more tangible or intangible computer-readable media stored at one or more different locations, different network nodes, or different storage devices at a single node or location. It is appreciated that any computer data storage technology, including any type of storage or memory and any type of computer components and recording media that retain digital data used for computing for an interval of time, and any type of information retention technology, may be used to store the various data provided and employed herein. Suitable computer data storage or information retention apparatus may include apparatus which is primary, secondary, tertiary or off-line; which is of any type or level or amount or category of volatility, differentiation, mutability, accessibility, addressability, capacity, performance and energy use; and which is based on any suitable technologies such as semiconductor, magnetic, optical, paper, and others.

[0053] DETAILED DESCRIPTION OF CERTAIN EMBODIMENTS

[0054] In the example used herein to explain the invention in general, a templates^ typically comprises a feature-vectorsi2 of 512 floating point numbers created by the ABIS (Automated Biometric Identification System). Its length is exactly 2048 (=2I< bytes). It can also be viewed as 8 blocks64 of 64 elements each.

[0055] Main-Repo is an example of a data repository that typically comprises a set of about 8,600 feature-vectorssi2 with 512 elements, each collected from extracting the templatessi2 by the ABIS from 8,600 different faces. Typically, this repo is a pre-generated repository, and may never change.

[0056] Second-Repo typically comprises a set of 10,000 random-blocks64 with 64 elements each. Typically, this repo aka repository is also a pre-generated repository, and may never change.

[0057] Vector Similarity - may for example be computed by Cosine similarity - Wikipedia (returned value is [0..1] thus typically 0 means exact opposite, 0.5 means complete decorrelation, and 1.0 means exact match.) The system may use vector similarity as a measure of the similarity between feature-vectorssi2. ABIS aka Automated Biometric Identification System, is intended to include, in the context of face recognition, a system configured to automatically capture and / or process, and / or compare biometric data, such as for example facial images.

[0058] This disclosure specifies various specific number values (to represent the length of the vectors, thresholds, storage capacities, and so on) like: 512, 2048, 8600, 64, 10k, 60, 8k, and so on. However, this is merely by way of non-limiting example, in an effort to present a simplified, hence easier to understand, example embodiment.

[0059] Face recognition herein may include two parts: capturing a face aka part 1, and / or comparing to an identity threshold part 2. Any suitable threshold may be employed in this context and others herein. For example, a face recognition may include:

[0060] 1. Capture an enrollment-face, using a suitable imaging device e.g. a camera. With the ABIS convert it to a templates^ (feature-vectors^) and create stored meta-data for the user which may include all or any subset of: a. A set of Shuffled Component Random Pairs SCRPeo b. A shift vector SV512 c. Hash value

[0061] 2. Receive a new face, with the ABIS convert it to a templatesi2, with this template and the meta-data (containing {a,b}), restore the enrollment templatesi2 and create a HASH value.

[0062] Check the new template vs. the reconstructed enrollment template with the ABIS. If the result is above the configured identity threshold, return the HASH.

[0063] Typically, if the new-face is biometrically similar to the enrollment-face, the computed

[0064] HASH is always the same.

[0065] It is appreciated that face-recognition based login is but one possible use-case of the facerecognition system and method herein; examples of other use-cases are described here: ity-and- securi rnmen ere-facial-recognition-used

[0066] It is appreciated that instead of designating "1" to mean x and "0" to mean y, alternatively the opposite implementation may be used, mutatis mutandis, e.g. 1 and 0 may designate y and x respectively, instead of the other way round. Enrollment - a process for performing the above part 1:

[0067] May include all or any subset of the following operations, suitably ordered e.g. as shown:

[0068] 1. Get Image

[0069] 2. Detect a face

[0070] 3. Extract enrollment-feature-vectorsi2 (templates^)

[0071] 4. Provide pairs e.g. by choosing pairssi2 , randomly or otherwise, from the Main-Repo (typically, the number of pairs to be provided is defined in the configuration (for example, 60 pairs may be provided, thus 60 bits may be created). a. Similarity with Main-Repo: compute the similarity value of the enrollment-feature- vectorsi2 and all vectors in Main-Repo, sort the results, and get the best and worst similarity indexes. b. Pair creation: Select pairs such that one has a similarity score just above >0.6 and the second has a similarity score similarity below < 0.5. c. Shuffling the pairs: The method shuffles the vectorssi2 in each pair such that the fact that the first was chosen to be similar and the second was chosen to be different and / or in a way that each of the vectorssi2 in the pair (the similar vector and the different vector) can (typically are equally likely to) be either first or second, is lost. For example, given two pairs: {33Simiiar, 222different} and {llllsimiiar, 9999different} after the shuffle, it could be {222, 33} and {1111, 9999}, and it is not known which one is similar and which one is different. Save the Shuffled Component Random Pairs SCRPeo in the meta-data (a) (as mentioned elsewhere herein e.g. above). d. Bit-Vectoreo creation: Loop through the SCRPeo and check the similarityfirstffirst vectors^, enrollment-vectors ) vs. similaritySecond(second vectors^, enrollmentvectors^). If the similarityfirst > similaritySecondset the bit-value to 1, otherwise, set the bit-value to be 0. e. Random vector selection: Randomly select 8 Random Vectors, Hereinafter "R- vectors[i]e4", from the Second-Repoe4. Keep the indices 8, in RVSI [1..8] 8], f . Manipulating the selected R-Vector64: 1 n order to disassociate the selected R-Vector64 from the original vectors in Second-Repo64, each vector, e.g. all 8, is manipulated R- Vector64-m- All or any subset of the following operations, suitably ordered e.g. as shown, follow:

[0072] 1. Cyclically loop on the bits of Bit-Vectoreo.

[0073] 2. Loop {n=0..63} on each component of R-Vector64.

[0074] 3. If the Bit-Vectoreo[n mod 60] -- 1 add "manipulatedValue" from the configuration file to the component of R-Vector64[n]. If --0 subtract "manipulatedValue". g. Compute the shift vector

[0075] 1. Divides the Enrollment-Vectors into 8(n) EV-groups64. (the number of sub-groups can be configured).

[0076] 2. Create a shift vector SV64 for each EV-groups64 with the corresponding manipulated R-Vectore4-m-

[0077] 3. Where SVe4[n] - R-Vectore4-m[i] - EV-groups64[n],

[0078] 4. Save the eight components of SVe4[n] - SV512 in the meta-data(b). h. Hash Generating - the Hash typically comprises the selected indexes of R-Vectors and bits from Second-Repo64. The example uses the SHA256 Method for hashing, but alternatively any effective reliable hash can be used, such as, say, MD5, or other SHA hashes.

[0079] The hash formula is: SHA256 [Bit-Vectoreo, RVSI[1..8]]

[0080] For example: SHA256 (OllOlOlOOllOOOllll6o, 555, 1222, 333, 2121 .. n) i. Finaly create the meta-data for user that typically does not contain the biometric data like the enrollment-vector, and typically includes all or any subset of: {UserID, SCRPeo, SV512, Hash25e}

[0081] It is appreciated that pairs may be randomly chosen from the Main-Repo, or may alternatively be chosen on some other basis. For example, the system may machine-learn that certain sets of pairs, which may have been chosen randomly from among the face- representations e.g. vectors in the main repository, have been more successful e.g. in terms of less false positives and / or less false negatives, than other sets of pairs. The system may henceforth prefer or prioritize more successful sets over less successful sets. For example, sets which, though rare, happen to include many pairs of vectors respectively corresponding to one individual of one race such as African American, and another corresponding to another race such as Asian, may be less successful than sets which include more pairs of vectors, both of which correspond to an individual of a single race, e.g. both of which correspond to an Asian individual. Or, sets which, though rare, happen to include many pairs of vectors respectively corresponding to one female individual and one male, may be less successful than sets which include more pairs of vectors, both of which correspond to females (or both males). The system may optionally store or learn the race and / or gender of individuals, and then ensure that each pair or that a given ratio of pairs, includes vectors both corresponding to the same race and gender.

[0082] Login - (Identity verification) - a process for performing the above part 2:

[0083] A method to create a HASH for the user may include all or any subset of the following operations, suitably ordered e.g. as shown:

[0084] 1. Get Image.

[0085] 2. Detect a face with the ABIS.

[0086] 3. Extract Iogin-vectorsi2 (templates^) by the ABIS.

[0087] 4. Get the Shuffled Component Random Pairs SCRPeo from the meta-data(a).

[0088] 5. Generate the Login Bit Vector LBVeo with the login-vectors . a. Loop through the SCRPeo and for each pair check the similarityfirstffi rst vectors^, login-vectors ) vs. similaritySecond(second vectors^, login-vectors ). If the si mi larityfirst > similaritySecond set the bit-value to one, otherwise, set the bit-value to be 0.

[0089] 6. Divide the Iogin-vectorsi2 into eight groupse4, each group may be called LVGe4 (Login Vector Group). 7. For at least one group e.g. for each group l..n the method may select a vector from the Second-Repo typically using the following logic:

[0090] Iterate, typically through all i=1..10,000 R-Vectors[i]64 in Second-Repo, including performing all or any subset of the following operations, suitably ordered e.g. as shown: a. Manipulate current R-Vectors64[i] with LBVeo as described above in the enrollment phase (e.g. operation 4e), to yield the R-Vectors64-m[i]. b. With SV64[n] from meta-data(b) compute the Result Vector RVG4 as follows: ,RV[i]64 = R-Vectors64-m[i] + SVe4[n],

[0091] 1. (Because:SV64[n] - EV-groups64[n] - R-Vector64-m[i] e.g. as described above in the enrollment phase 4f iii.) c. Compute the similarity between Similarity(LVG64, RV[i]64). Save the maximum similarity vector and its index in RVe4[n]={max Similarity, imax}. (The system may get 10,000 similarities between the login vector group64 and the manipulated random vectors)

[0092] 8. The system now typically has eight components RVe4,imax[n] which are with the maximum similarity, and the indexes (i) values of them. The saved indexes may be called selected indexes, and the system may save them for the next operation (Hash Generating, e.g. as described herein). The RVe4,imax[n] vectors may be called selected vectors, and the system may concatenate all eight selected vectors into one big vector, which may be called a result-vectorsi2, which may be used by the system in the next operation (Similarity Comparing, e.g. as described herein).

[0093] After all the above login operations, the system may now compute and compare the hash values (from login operation to the stored hash in meta-data), and the similarity between the Iogin-vectorsi2 and the result-vectorsi2.

[0094] It is appreciated that even if a given user, say Georgina, looks slightly different each time a picture of her is taken (due to lighting, angles, or facial expressions), there is still a consistent pattern in how her face is compared to others. If her face is compared with faces of two other people (named Alice and Bob), and Georgina's face is compared to theirs. If, in one photo, Georgina's face looks more like Alice's than Bob's, then in most cases, when you take another picture of Georgina, her face will still look more like Alice's than Bob's. Thus even if a person's appearance changes slightly, the way their face is ranked in similarity to others remains stable e.g. because their face's similarities to others tend to be consistently ordered such that if a given person's face is more similar to faceA than to faceB, then even after the person's appearance changes, her or his face will still, typically, remain more similar to faceA than to faceB, for many (faceA, faceB) pairs such that similarity rankings, relative to other faces, tend to be robust, or tend to remain consistent or fixed or stable.

[0095] 1. Hash Generating

[0096] The hash value may be created by two components computed in login operations 5 and 8, e.g. with the following formula: Hash (LBVeo, RV64,imax [0..7]). This hash value is compared to the stored hash value in the meta-data.

[0097] 2. Similarity Comparing

[0098] Compute the similarity between the login-vectors and the result-vectorsi2 (e.g. from login operation 8).

[0099] Decision

[0100] According to the hash and similarity results, the system can decide whether the login user is the saved user in the system.

[0101] Example embodiments are illustrated in Figs. 1 - 6; these embodiments may be provided stand-alone, in combination, or in any sub-combination.

[0102] Fig. 1 shows a system configured to extract Bit-Vectoreo from the user Biometric Template.

[0103] Fig. 2 shows an enrollment system configured to divide, e.g. partition the Biometric Template (vector), into 8 parts or groups or subgroups.

[0104] Fig. 3 shows an enrollment system configured to perform hashing by Bit Vector +8 random selected numbers. Fig. 4 shows an enrollment system configured to generate the shift-vector (the diagram shows the process for only 2 of 8 enrollment parts, for simplicity).

[0105] Fig. 5 shows an enrollment system configured for saving the meta-data in DB. Typically the system discards, rather than saves, the biometric template.

[0106] Fig. 6 shows a Login Process which may be provided in conjunction with a process for selecting appropriate indexes from Second-Repo according to the LVG64[0](which is the first group of 8 of the login-vectors ). The diagram shows the process for two of 10K R-Vectors, (1 and 101) for simplicity, and the selected index in the illustrated embodiment is, by way of nonlimiting example, 101. (Because the distance between the result vector[0]64 to the LVGe4[0] is the lowest distance)

[0107] The invention herein includes more generally any method which performs all or any subset of the following operations, suitably ordered e.g. as shown in Fig. 7:

[0108] Operation 100. In a set-up phase, providing a repository of faces;

[0109] 200. In an enrollment phase:

[0110] Operation 200a. capturing a face of at least one user uE, e.g. using a camera or other imager, thereby to provide a first digital representation of uE's face;

[0111] Operation 200b. Deriving a hash-value or hash-key from the face, e.g. by performing all or any subset of the operations of Fig. 8, suitably ordered e.g. as follows:

[0112] Operation 200b-l. Comparing the first digital representation of uE's face, or a second digital representation derived therefrom, to plural faces in the repository, including generating, for user uE, N ordered pairs of faces selected from the repository wherein, in each of said ordered pairs, one face is more similar to user uE's face, and one is less similar. For example, the method may derive the second digital representation by extracting, from uE's face, a biometric template for user uE, e.g. using a face recognition face engine, then may compare the template to plural faces including selecting, for user uE, N ordered pairs of faces wherein, in each of said ordered pairs, one face is more similar to user uE's face, and one is less similar.

[0113] Operation 200b-2. computing (and then, typically, hashing) an N-bit vector whose k'th bit for k - 1, ...N indicates whether the face more similar to uE's face, from among the 2 faces in the k'th of the N ordered pairs selected for user uE, is the first face in the pair or the second face. For example, the k'th bit may be 1 if the first face in the k'th ordered pair is more similar to uE's face (e.g. to any digital representation derived therefrom) than the second face in the k'th ordered pair, whereas the k'th bit may be 0 if the first face in the k'th ordered pair is less similar to uE's face (e.g. to any digital representation derived therefrom) than the second face in the k'th ordered pair. Typically, this yields a hash-value or hash-key which is typically more stable and / or deterministic and / or less noisy than the first digital representation and / or the second digital representation and / or the template.

[0114] Operation 200b-3. saving the hash-value or hash-key in association with a unique identifier of user uE.

[0115] It is appreciated that verification may be used to ensure selective access to system software assets, or systems or may occur more generally in any sort of selected access use-case e.g. verification outputs may activate a gate or turnstile or other selective physical barrier conditionally restricting access to a physical area, such that the gate or turnstile opens to enable verified users to pass, but does not open to restrict non-verified users from passing.

[0116] Operation 300. Later, e.g. in a recognition or verification phase, e.g. during login of a user uL alleging s / he is uE, perform all or any subset of (Fig. 9):

[0117] Operation 300a. Retrieving the hash-value or hash-key stored in association with the unique identifier of user uE in operation 200b-3;

[0118] Operation 300b. Comparing the hash-value or hash-key as saved to a value V derived from a face captured from user uL e.g. during login; the value V may be derived from user uL's face as the hash-value or hash-key was derived, during the enrollment phase, from user uE's face. For example, an N-bit vector may be generated for uL similarly to determine how the N-bit vector was generated for uE's face, and uL may be verified to be uE, e.g. uL may be approved to login into uE's account, if the bit-vector generated for uL during login or a hash thereof is similar to the bit-vector saved from user uE or a hash thereof.

[0119] Operation 300c. Outputting that uL is uE if similarity between value V derived from uL's face and the hash-value or hash-key as saved which was derived from uE's face, is over-threshold.

[0120] Figs. 10a - 10c, taken together, illustrate an example iterative method according to embodiments herein; all or any subset of the illustrated operations may be performed in any suitable order e.g. as shown and may be combined with any operation shown and described herein. In Fig. 10a, the logic vector 1030 (e.g. as shown in Fig. 2) may serve as input to the iterative operation 1040 which typically performs operation 1050, iterating over all meta-data items in DB.

[0121] In Fig. 10b, to generate the manipulated vector in operation 2040, the current R-vector and bit vector may be combined e.g. added. To generate the result vector in operation 2050, the manipulated vector and shift vector may be combined e.g. added. Still referring to fig. 10b, in operations 2060 and / or 2070 and / or 2080 it is appreciated that any suitable distance metric may be employed to quantify how similar a given result vector is to the vector group in Ioop3, where smaller distances indicate greater similarity. Any suitable method such as averaging or selecting a maximal value or minimal value or median or mode value, may be used to combine distances between a given result vector and various vectors in a group respectively, into a single similarity score. Distances between vectors may be computed using, say, Cosine Similarity, Euclidean Distance, Manhattan Distance / Ll norm, all or any subset of the operations in Fig. 10c may be employed to implement operation 2080 in Fig. 10b.

[0122] Typically, the template is no longer in memory in the login phase.

[0123] Typically, the hash key is never decrypted by the system.

[0124] Typically, the system never stores raw biometric data. Instead, hashing converts face recognition data into a unique hash value that cannot be reversed back to the original source value, yielding a hash-based process which typically ensures privacy, making breaches virtually impossible.

[0125] It is appreciated that the ordered pairs generated for a given user uE may more generally comprise ordered tuples, where the order of faces in each tuple is indicative of degree of similarity with uE's face or with any digital representation derived directly or indirectly therefrom.

[0126] It is appreciated that the embodiments described herein are merely exemplary and are not intended to be limiting and many modifications may be made as would be known to a man of the art. For example, the facial recognition engine might be FaceOnLive, which is commercially available, or alternatively any other suitable facial recognition engine that may extract an embedding vector from a user's face image, such as but not limited to DLIB. Or, any suitable database (DB) may be employed to store any data used for the process herein and / or meta-data for user registration e.g. a cloud DB on the high end or plain text files e.g. on a mobile device, on the low end. More generally, any system configured to extract a hash from a biometric template and to derive therefrom a more stable, fixed, and deterministic value, and typically, to apply hashing to this value, is included in the scope.

[0127] Any or all of computerized sensors, output devices, or displays, processors, data storage and networks, may be used as appropriate to implement any of the methods and apparatus shown and described herein.

[0128] It is appreciated that terminology such as "mandatory", "required", "need", and "must" refer to implementation choices made within the context of a particular implementation or application described herewithin for clarity, and are not intended to be limiting, since, in an alternative implementation, the same elements might be defined as not mandatory and not required, or might even be eliminated altogether.

[0129] Components described herein as software may, alternatively, be implemented wholly or partly in hardware and / or firmware, if desired, using conventional techniques, and vice-versa. Each module or component or processor may be centralized in a single physical location or physical device or distributed over several physical locations or physical devices.

[0130] Included in the scope of the present disclosure, inter alia, are electromagnetic signals in accordance with the description herein. These may carry computer-readable instructions for performing any or all of the operations of any of the methods shown and described herein, in any suitable order, including simultaneous performance of suitable groups of operations, as appropriate. Included in the scope of the present disclosure, inter alia, are machine-readable instructions for performing any or all of the operations of any of the methods shown and described herein, in any suitable order; program storage devices readable by machine, tangibly embodying a program of instructions executable by the machine to perform any or all of the operations of any of the methods shown and described herein, in any suitable order i.e. not necessarily as shown, including performing various operations in parallel or concurrently rather than sequentially as shown; a computer program product comprising a computer useable medium having computer readable program code, such as executable code, having embodied therein, and / or including computer readable program code for performing, any or all of the operations of any of the methods shown and described herein, in any suitable order; any technical effects brought about by any or all of the operations of any of the methods shown and described herein, when performed in any suitable order; any suitable apparatus or device or combination of such, programmed to perform, alone or in combination, any or all of the operations of any of the methods shown and described herein, in any suitable order; electronic devices each including at least one processor and / or cooperating input device and / or output device and operative to perform e.g. in software any operations shown and described herein; information storage devices or physical records, such as disks or hard drives, causing at least one computer or other device to be configured so as to carry out any or all of the operations of any of the methods shown and described herein, in any suitable order; at least one program prestored e.g. in memory or on an information network such as the Internet, before or after being downloaded, which embodies any or all of the operations of any of the methods shown and described herein, in any suitable order, and the method of uploading or downloading such, and a system including server / s and / or client / s for using such; at least one processor configured to perform any combination of the described operations or to execute any combination of the described modules; and hardware which performs any or all of the operations of any of the methods shown and described herein, in any suitable order, either alone or in conjunction with software. Any computer-readable or machine-readable media described herein is intended to include non-transitory computer- or machine-readable media.

[0131] Any computations or other forms of analysis described herein may be performed by a suitable computerized method. Any operation or functionality described herein may be wholly or partially computer-implemented, e.g. by one or more processors. The invention shown and described herein may include (a) using a computerized method to identify a solution to any of the problems or for any of the objectives described herein, the solution optionally including at least one of a decision, an action, a product, a service, or any other information described herein, that impacts, in a positive manner, a problem or objectives described herein; and (b) outputting the solution. The system may if desired be implemented as a web-based system employing software, computers, routers and telecommunications equipment as appropriate.

[0132] Any suitable deployment may be employed to provide functionalities, e.g. software functionalities, shown and described herein. For example, a server may store certain applications, for download to clients, which are executed at the client side, the server side serving only as a storehouse. Any or all functionalities, e.g. software functionalities, shown and described herein, may be deployed in a cloud environment. Clients, e.g. mobile communication devices such as smartphones, may be operatively associated with, but external to the cloud.

[0133] The scope of the present invention is not limited to structures and functions specifically described herein, and is also intended to include devices which have the capacity to yield a structure, or perform a function described herein, such that even though users of the device may not use the capacity, they are, if they so desire, able to modify the device to obtain the structure or function.

[0134] Any "if-then" logic described herein is intended to include embodiments in which a processor is programmed to repeatedly determine whether condition x, which is sometimes true and sometimes false, is currently true or false, and to perform y each time x is determined to be true, thereby to yield a processor which performs y at least once, typically on an "if and only if" basis, e.g. triggered only by determinations that x is true, and never by determinations that x is false.

[0135] Any determination of a state or condition described herein, and / or other data generated herein, may be harnessed for any suitable technical effect. For example, the determination may be transmitted or fed to any suitable hardware, firmware, or software module, which is known or which is described herein to have capabilities to perform a technical operation responsive to the state or condition. The technical operation may, for example, comprise changing the state or condition, or may more generally cause any outcome which is technically advantageous, given the state or condition or data, and / or may prevent at least one outcome which is disadvantageous, given the state or condition or data. Alternatively, or in addition, an alert may be provided to an appropriate human operator or to an appropriate external system. Applicability of the subject matter disclosed herein is not limited to embodiments claimed, nor to solutions for specific disadvantages emphasized herein, nor need any element of any system and method described herein, on its own or in combination with other elements described herein, and may operate not only in environments or use-cases or technology areas such as those described herein.

[0136] Features of the present invention, including operations which are described in the context of separate embodiments, may also be provided in combination in a single embodiment. For example, a system embodiment is intended to include a corresponding process embodiment, and vice versa. Also, each system embodiment is intended to include a server-centered "view" or client centered "view", or "view" from any other node of the system, of the entire functionality of the system, computer-readable medium, or apparatus, including only those functionalities performed at that server or client or node. Features may also be combined with features known in the art, and particularly, although not limited, to those described in the Background section or in publications mentioned therein.

[0137] Conversely, features of the invention, including operations, which are described for brevity in the context of a single embodiment or in a certain order may be provided separately or in any suitable sub-combination, including with features known in the art (particularly although not limited to those described in the Background section or in publications mentioned therein) or in a different order, "e.g." is used herein in the sense of a specific example which is not intended to be limiting. Each method may comprise all or any subset of the operations illustrated or described, suitably ordered e.g. as illustrated or described herein.

[0138] Devices, apparatus or systems shown coupled in any of the drawings may in fact be integrated into a single platform in certain embodiments, or may be coupled via any appropriate wired or wireless coupling such as but not limited to optical fiber, Ethernet, Wireless LAN, HomePNA, power line communication, cell phone, Smart Phone (e.g. iPhone), Tablet, Laptop, PDA, Blackberry GPRS, Satellite including GPS, or other mobile delivery. It is appreciated that in the description and drawings shown and described herein, functionalities described or illustrated as systems and sub-units thereof can also be provided as methods and operations therewithin, and functionalities described or illustrated as methods and operations therewithin can also be provided as systems and sub-units thereof. The scale used to illustrate various elements in the drawings is merely exemplary and / or appropriate for clarity of presentation, and is not intended to be limiting.

Claims

CLAIMS1. A face recognition method comprising: i. in an enrollment phase, capturing a face of at least one user uE, extracting therefrom a biometric template for the user, e.g. using a face recognition face engine, extracting a hash-value from the template; deriving a value which is more stable and / or deterministic and / or less noisy than the template; and(hashing and) saving this value and, ii. later, e.g. during login of a user uL, alleging s / he is uE, comparing this value as saved to a value derived from a face captured from user uL, e.g. during login.

2. The method according to claim 1 wherein uL is deemed to be uE if the value as saved is overthreshold similar to the value derived from uL's face.

3. The method according to any previous claim wherein the template is no longer in memory in the login phase.

4. The method according to any previous claim wherein the template is compared to plural faces including selecting N ordered pairs of faces wherein, in each of said ordered pairs, one face is more similar to user uE's face, and one is less similar.

5. The method according to any previous claim wherein the value which is more stable comprises a bit-vector which includes N bits, where the k'th bit indicates whether the face in the k'th pair (k - 1, ...N) which is more similar to uE's face is the first face in the pair, or the second face.

6. The method according to any previous claim wherein, in a login phase, a bit-vector may be generated similarly, and the login into uE's account is approved if the bit-vector generated during login is similar to the bit-vector saved from user uE.

7. A computer program product, comprising a non-transitory tangible computer-readable medium having computer readable program code embodied therein, said computer readable program code adapted to be executed to implement a face recognition method comprising: i. in an enrollment phase, capturing a face of at least one user uE, extracting therefrom a biometric template for the user, e.g. using a face recognition face engine; extracting a hash-value from the template; deriving a value which is more stable and / or deterministic and / or less noisy than the template; and(hashing and) saving this value; and, ii. later, e.g. during login of a user uL alleging s / he is uE, comparing this value as saved to a value derived from a face captured from user uL, e.g. during login.

8. A system comprising at least one processor configured to carry out face recognition by: i. in an enrollment phase, capturing a face of at least one user uE, extracting therefrom a biometric template for the user, e.g. using a face recognition face engine, extracting a hash-value from the template; deriving a value which is more stable and / or deterministic and / or less noisy than the template; and(hashing and) saving this value; and,ii. later, e.g. during login of a user uL alleging s / he is uE, comparing this value as saved to a value derived from a face captured from user uL e.g. during login.

Citation Information

Patent Citations

  • A Method for a secure face recognition login to services

    IL278342A

  • User Authentication Via Biometric Hashing

    US20080209226A1

  • Method and system for biometric authentication and encryption

    US20100017618A1

  • Privacy preserving face-based authentication

    US20230081988A1