Fingerprint identification method and device

CN119678194APending Publication Date: 2025-03-21HONOR DEVICE CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380059223.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-08-18
Filing Date
2023-05-05
Publication Date
2025-03-21

AI Technical Summary

Technical Problem

In existing fingerprint recognition technology, a large number of feature points are stored in the fingerprint template, causing the data to occupy a large amount of memory space, and the matching complexity is high, which affects the user experience.

Method used

By performing dimensionality reduction processing on the fingerprint feature data, the first orthogonal matrix is ​​used to reduce the dimensionality of the feature vectors of the fingerprint image to be verified and the fingerprint template, thereby reducing storage space occupation, and matching is performed through Hamming distance to reduce computational complexity.

Benefits of technology

It effectively reduces the storage space occupied by fingerprint templates, increases the matching speed, and improves the user's fingerprint recognition experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119678194A_ABST
    Figure CN119678194A_ABST
Patent Text Reader

Abstract

The invention discloses a fingerprint identification method and device. The method is applied to the technical field of fingerprint identification. The method comprises the steps of collecting a to-be-verified fingerprint image; determining a first feature vector based on the fingerprint image to be verified, the first feature vector being obtained by performing dimension reduction processing on a second feature vector by using a first orthogonal matrix, and the second feature vector being used for representing features of the fingerprint image to be verified; and fingerprint matching is carried out based on the first feature vector and a third feature vector, the third feature vector is obtained by carrying out dimension reduction processing on a fourth feature vector by using a first orthogonal matrix, the fourth feature vector is used for representing features of the first fingerprint template, and the third feature vector is stored in a fingerprint template library. By storing the dimension-reduced fingerprint template, the occupation of the fingerprint data on the storage space of the electronic equipment can be reduced. Moreover, matching is carried out by utilizing the feature data after dimension reduction processing, so that the complexity can be reduced, the matching speed is improved, and the fingerprint identification experience of the user is greatly improved.
Need to check novelty before this filing date? Find Prior Art

Description

Fingerprint recognition method and device

[0001] This application claims priority to the Chinese patent application filed with the State Intellectual Property Office on August 18, 2022, with application number 202210995240.4 and application name “Method and Device for Fingerprint Identification”, the entire contents of which are incorporated by reference into this application. Technical Field

[0002] The present application relates to the field of biometrics, and in particular, to a fingerprint recognition method and device. Background Art

[0003] With the widespread adoption of smart devices, fingerprint recognition technology has also rapidly developed in the terminal sector. Especially in scenarios where users wear masks, fingerprint unlocking, compared to facial unlocking, is indispensable. The fingerprint unlocking process requires pre-registering a fingerprint template for use. The fingerprint template contains a large number of feature points. This causes the feature data of the fingerprint image stored in the fingerprint template to occupy a large amount of memory. Therefore, reducing the memory space occupied by the fingerprint template has become a pressing issue.

[0004] Summary of the Invention

[0005] In view of this, the present application provides a fingerprint recognition method, device, computer-readable storage medium and computer program product. By performing dimensionality reduction processing on fingerprint feature data, the memory space occupied by the fingerprint template can be reduced, and the matching complexity can be reduced, thereby greatly improving the user's fingerprint recognition experience.

[0006] In a first aspect, a fingerprint recognition method is provided, the method being applied to an electronic device, the method comprising:

[0007] Collect the fingerprint image to be verified;

[0008] determining a first eigenvector based on the fingerprint image to be verified, where the first eigenvector is obtained by performing dimensionality reduction processing on the second eigenvector using a first orthogonal matrix, and the second eigenvector is used to characterize the characteristics of the fingerprint image to be verified;

[0009] Performing fingerprint matching based on the first eigenvector and the third eigenvector, wherein the third eigenvector is obtained by performing dimensionality reduction processing on the fourth eigenvector using the first orthogonal matrix, the fourth eigenvector is used to characterize the features of the first fingerprint template, and the third eigenvector is stored in a fingerprint template library;

[0010] The first orthogonal matrix includes a plurality of vectors, which are generated by iterative calculation based on pre-collected fingerprint feature points, and each of the plurality of vectors can divide the pre-collected fingerprint feature points into two parts.

[0011] The above method can be executed by a terminal device or a chip within the terminal device. Based on the above solution, after acquiring a fingerprint image to be verified, the image is subjected to dimensionality reduction processing using a first orthogonal matrix to obtain a first eigenvector. This first eigenvector is then used to perform fingerprint matching with a third eigenvector stored in a fingerprint template library. This can reduce the storage space occupied by fingerprint data in the electronic device. Furthermore, matching using the dimensionality-reduced feature data can reduce complexity and improve matching speed.

[0012] In a possible implementation, performing fingerprint matching based on the first feature vector and the third feature vector includes:

[0013] Calculating a Hamming distance based on the first eigenvector and the third eigenvector;

[0014] When the Hamming distance is less than a first distance threshold, it is determined that the fingerprint image to be verified matches the first fingerprint template successfully.

[0015] Optionally, the Hamming distance satisfies the following formula: d=count(XOR(H1,H2))

[0016] Wherein, d represents the Hamming distance, count() represents the operation of counting the number of non-zeros, XOR represents the exclusive OR operation, H1 represents the first eigenvector, and H2 represents the third eigenvector.

[0017] Therefore, compared with the prior art in which matching is performed by calculating the Euclidean distance, the embodiment of the present application determines whether the matching is successful by calculating the Hamming distance. While ensuring the matching accuracy, it can reduce the matching complexity and help improve the matching speed.

[0018] In a possible implementation, the first orthogonal matrix is ​​obtained in the following manner:

[0019] Initializing a first orthogonal vector group, where the first orthogonal vector group is empty;

[0020] generating a first random vector, wherein the first random vector is an n-dimensional vector;

[0021] Determining whether the first random vector is orthogonal to a vector in the first orthogonal vector group;

[0022] When the first random vector is orthogonal to a vector in the first orthogonal vector group, determining whether the first random vector can divide the pre-collected fingerprint feature points into two parts;

[0023] When the first random vector divides the fingerprint feature point, adding the first random vector to the first orthogonal vector group;

[0024] Determining whether the number of vectors included in the first orthogonal vector group is n;

[0025] When the number of vectors in the first orthogonal vector group is n, the vectors in the first orthogonal vector group are expanded row by row to obtain the first orthogonal matrix, wherein the first orthogonal matrix includes n row vectors, and the n row vectors of the first orthogonal matrix are orthogonal to each other.

[0026] Therefore, by continuously trying to generate the first orthogonal vector group, it is possible to find the orthogonal matrix that is most suitable for distinguishing fingerprint features, so as to prepare for dimensionality reduction using the first orthogonal matrix.

[0027] In a possible implementation, the third eigenvector is obtained using the following method:

[0028] Multiplying the first orthogonal matrix by the transposed matrix of the fourth eigenvector to obtain a product;

[0029] Processing the obtained product through a sign function to obtain a fifth eigenvector;

[0030] Perform binary conversion on the vector elements in the fifth eigenvector to obtain the third eigenvector.

[0031] By using the first orthogonal matrix to perform dimensionality reduction processing on the fourth eigenvector in the above manner to obtain the third eigenvector, the storage space occupied by the fingerprint template can be effectively reduced.

[0032] In a possible implementation, the number of bytes occupied by the third feature vector is smaller than the number of bytes occupied by the fourth feature vector.

[0033] After the dimensionality reduction process, the number of bytes occupied by the third feature vector stored in the fingerprint template library is smaller than the number of bytes occupied by the fourth feature vector, thereby greatly reducing the storage space occupied.

[0034] In a possible implementation, the method further includes:

[0035] A first interface is displayed, wherein the first interface includes a first option, and the first option is used to turn on or off the fingerprint matching optimization function.

[0036] Therefore, the embodiment of the present application also provides a switch option for the fingerprint feature matching optimization function, allowing users to choose to turn the fingerprint feature matching optimization function on or off.

[0037] In a second aspect, a fingerprint recognition device is provided, comprising a unit for executing the method of any one of the implementations of the first aspect. The device can be a terminal (or terminal device) or a chip within the terminal (or terminal device). The device includes an input unit, a display unit, and a processing unit.

[0038] When the device is a terminal, the processing unit may be a processor, the input unit may be a communication interface, and the display unit may be a graphics processing module and a screen; the terminal may also include a memory for storing computer program code, and when the processor executes the computer program code stored in the memory, the terminal executes the method in any one of the implementations of the first aspect.

[0039] When the device is a chip in a terminal, the processing unit may be a logic processing unit inside the chip, the input unit may be an input interface, pin or circuit, etc., and the display unit may be a graphics processing unit inside the chip; the chip may also include a memory, which may be a memory inside the chip (for example, a register, a cache, etc.) or a memory located outside the chip (for example, a read-only memory, a random access memory, etc.); the memory is used to store computer program code, and when the processor executes the computer program code stored in the memory, the chip executes the method in any one of the implementations of the first aspect.

[0040] According to a third aspect, a computer-readable storage medium is provided, wherein the computer-readable storage medium stores a computer program code. When the computer program code is executed by a fingerprint recognition device, the device executes the method in any one of the implementations of the first aspect.

[0041] In a fourth aspect, a computer program product is provided, comprising: computer program code, which, when executed by a fingerprint recognition device, causes the device to execute the method in any one of the implementations of the first aspect. BRIEF DESCRIPTION OF THE DRAWINGS

[0042] FIG1 is an example diagram of an application scenario of an embodiment of the present application;

[0043] FIG2 is a schematic diagram of a hardware system of an electronic device applicable to the present application;

[0044] FIG3 is a schematic diagram of a software system of an electronic device applicable to the present application;

[0045] FIG4 is a schematic flow chart of a fingerprint recognition method according to an embodiment of the present application;

[0046] FIG5 is a schematic diagram of obtaining a first orthogonal matrix according to an embodiment of the present application;

[0047] FIG6 is a schematic flow chart of a fingerprint recognition method according to an embodiment of the present application;

[0048] FIG7 is an example diagram of an interface according to an embodiment of the present application;

[0049] FIG8 is a schematic block diagram of a fingerprint recognition device according to an embodiment of the present application. DETAILED DESCRIPTION

[0050] The technical solutions in the embodiments of the present application will be described below with reference to the accompanying drawings.

[0051] The fingerprint recognition method provided in the embodiments of the present application can be applied to electronic devices with fingerprint recognition functions. For example, the electronic device can be a mobile phone, a tablet computer, a laptop computer, a wearable device, a multimedia player, an e-book reader, a personal computer, a personal digital assistant (PDA), a netbook, an augmented reality (AR) device, a virtual reality (VR) device, or other electronic device. This application does not limit the specific form of the electronic device.

[0052] As an example and not a limitation, when the electronic device is a wearable device, the wearable device can be a general term for wearable devices that are intelligently designed and developed using wearable technology for daily wear, such as glasses, gloves, watches, clothing, and shoes. A wearable device is a portable device that is worn directly on the human body or integrated into the user's clothes or accessories, and can collect the user's biometric data. Wearable devices are not just hardware devices, but also achieve powerful functions through software support, data interaction, and cloud interaction. In one implementation, wearable smart devices include devices that are full-featured, large in size, and can achieve full or partial functions without relying on smartphones, such as smart watches or smart glasses. In another implementation, wearable smart devices can be devices that only focus on a certain type of application function and need to be used in conjunction with other devices (such as smartphones), such as smart bracelets and smart jewelry with unlocked touch screens.

[0053] The embodiments of this application do not specifically limit the application scenarios of fingerprint recognition, and are applicable to any scenario involving fingerprint recognition, such as when a user uses a fingerprint to unlock, pay, or authenticate an identity.

[0054] The embodiments of the present application can be applied to optical fingerprint recognition scenarios. Optical fingerprint recognition mainly uses the principles of light reflection and refraction. When a finger presses the screen, the screen lights up and emits a bright light, which illuminates the fingerprint. The fingerprint is then transmitted to the sensor under the screen through reflection and refraction for recognition. The embodiments of the present application do not specifically limit the fingerprint recognition scenario and can also be reasonably applied to other fingerprint recognition scenarios, such as ultrasonic fingerprint recognition, capacitive fingerprint recognition, etc.

[0055] It is understood that the embodiments of this application do not specifically limit the location of the fingerprint module. For example, if optical fingerprint recognition technology is used, the fingerprint module can be placed below the screen of the electronic device, that is, under-screen fingerprint recognition. For another example, the fingerprint module device can also be placed on the back of the electronic device.

[0056] FIG1 is a schematic diagram of an application scenario of an embodiment of the present application. Taking a mobile phone as an example, the electronic device adopts an under-screen fingerprint unlocking method. As shown in FIG1 (1), the user presses the fingerprint unlocking area 10 of the screen with a finger to attempt fingerprint unlocking. After the user presses the fingerprint unlocking area 10, the mobile phone will match the collected fingerprint with the fingerprint template pre-stored by the user. If the match is successful, the mobile phone screen is successfully unlocked.

[0057] It should be understood that the fingerprint unlocking area 10 shown in (1) of Figure 1 is only an exemplary description, and the embodiments of the present application are not limited thereto. In fact, the fingerprint unlocking area 10 can be located in other areas of the screen, such as the screen area near the power button.

[0058] It should also be understood that the fingerprint unlocking shown in (1) in Figure 1 is illustrated by taking the fingerprint unlocking under the screen as an example, and the embodiments of the present application are not limited to this. For example, the embodiments of the present application are also applicable to fingerprint unlocking on the back of the mobile phone.

[0059] If the user successfully matches the fingerprint, the user can enter the main interface of the mobile phone. In one possible scenario, for example, after the fingerprint is successfully unlocked, the mobile phone displays the interface shown in (2) in Figure 1, which displays icons of multiple applications, such as Application 1 to Application 8. Of course, the interface shown in (2) in Figure 1 is only one possible scenario, and the embodiments of the present application are not limited to this.

[0060] It should be understood that the scenario in Figure 1 is only a schematic illustration of an application scenario of the present application, which does not constitute a limitation on the embodiments of the present application, and the present application is not limited to this.

[0061] The following describes the hardware system and software architecture applicable to the embodiments of the present application in conjunction with Figures 2 and 3.

[0062] FIG2 shows a hardware system of an electronic device suitable for the present application.

[0063] The electronic device 100 can be a mobile phone, a smart screen, a tablet computer, a wearable electronic device, an in-vehicle electronic device, an augmented reality (AR) device, a virtual reality (VR) device, a laptop computer, an ultra-mobile personal computer (UMPC), a netbook, a personal digital assistant (PDA), a projector, etc. The embodiment of the present application does not impose any restrictions on the specific type of the electronic device 100.

[0064] The electronic device 100 may include a processor 110, an external memory interface 120, an internal memory 121, a universal serial bus (USB) interface 130, a charging management module 140, a power management module 141, a battery 142, an antenna 1, an antenna 2, a mobile communication module 150, a wireless communication module 160, an audio module 170, a speaker 170A, a receiver 170B, a microphone 170C, an earphone interface 170D, a sensor module 180, a button 190, a motor 191, an indicator 192, a camera 193, a display screen 194, and a subscriber identification module (SIM) card interface 195, etc. The sensor module 180 may include a pressure sensor 180A, a gyroscope sensor 180B, an air pressure sensor 180C, a magnetic sensor 180D, an acceleration sensor 180E, a distance sensor 180F, a proximity light sensor 180G, a fingerprint sensor 180H, a temperature sensor 180J, a touch sensor 180K, an ambient light sensor 180L, a bone conduction sensor 180M, etc.

[0065] It should be noted that the structure shown in FIG2 does not constitute a specific limitation on the electronic device 100. In other embodiments of the present application, the electronic device 100 may include more or fewer components than those shown in FIG2, or the electronic device 100 may include a combination of some of the components shown in FIG2, or the electronic device 100 may include sub-components of some of the components shown in FIG2. For example, the proximity light sensor 180G shown in FIG2 may be optional. The components shown in FIG2 may be implemented in hardware, software, or a combination of software and hardware.

[0066] The processor 110 may include one or more processing units. For example, the processor 110 may include at least one of the following processing units: an application processor (AP), a modem processor, a graphics processing unit (GPU), an image signal processor (ISP), a controller, a video codec, a digital signal processor (DSP), a baseband processor, and a neural-network processing unit (NPU). The different processing units may be independent devices or integrated devices.

[0067] The controller can generate operation control signals according to the instruction operation code and timing signal to complete the control of instruction fetching and execution.

[0068] Processor 110 may also include a memory for storing instructions and data. In some embodiments, the memory in processor 110 is a cache memory. This memory can store instructions or data that have just been used or are being recycled by processor 110. If processor 110 needs to use the same instruction or data again, it can directly access the memory. This avoids duplicate accesses, reduces processor 110 latency, and thus improves system efficiency.

[0069] 2 is merely a schematic illustration and does not limit the connection relationship between the modules of the electronic device 100. Optionally, the modules of the electronic device 100 may also adopt a combination of the multiple connection modes in the above embodiments.

[0070] Electronic device 100 can implement display functionality through a GPU, display screen 194, and an application processor. A GPU is a microprocessor for image processing that connects display screen 194 and the application processor. The GPU is used to perform mathematical and geometric calculations for graphics rendering. Processor 110 may include one or more GPUs that execute program instructions to generate or modify display information.

[0071] The display screen 194 can be used to display images or videos. The display screen 194 includes a display panel. The display panel can use a liquid crystal display (LCD), an organic light-emitting diode (OLED), an active-matrix organic light-emitting diode (AMOLED), a flexible light-emitting diode (FLED), a mini light-emitting diode (Mini LED), a micro light-emitting diode (Micro LED), a micro OLED, or a quantum dot light-emitting diode (QLED). In some embodiments, the electronic device 100 may include one or N display screens 194, where N is a positive integer greater than one.

[0072] The electronic device 100 can implement a shooting function through an ISP, a camera 193, a video codec, a GPU, a display screen 194, and an application processor.

[0073] The ISP processes data fed back by camera 193. For example, when taking a photo, the shutter is opened, and light is transmitted through the lens to the camera's photosensitive element. The light signal is converted into an electrical signal, which is then passed to the ISP for processing and converted into a visible image. The ISP can perform algorithmic optimization on image noise, brightness, and color. It can also optimize parameters such as exposure and color temperature of the captured scene. In some embodiments, the ISP can be located within camera 193.

[0074] The camera 193 is used to capture still images or videos. The object generates an optical image through the lens and projects it onto the photosensitive element. The photosensitive element can be a charge coupled device (CCD) or a complementary metal-oxide-semiconductor (CMOS) phototransistor. The photosensitive element converts the light signal into an electrical signal, and then passes the electrical signal to the ISP for conversion into a digital image signal. The ISP outputs the digital image signal to the DSP for processing. The DSP converts the digital image signal into an image signal in a standard red, green, blue (RGB), YUV or other format. In some embodiments, the electronic device 100 may include 1 or N cameras 193, where N is a positive integer greater than 1.

[0075] The digital signal processor is used to process digital signals. In addition to processing digital image signals, it can also process other digital signals. For example, when the electronic device 100 selects a frequency point, the digital signal processor is used to perform Fourier transform on the frequency point energy.

[0076] The electronic device 100 can implement audio functions, such as music playback and recording, through the audio module 170, the speaker 170A, the receiver 170B, the microphone 170C, the headphone jack 170D, and the application processor.

[0077] Pressure sensor 180A is used to sense pressure signals and convert them into electrical signals. In some embodiments, pressure sensor 180A can be located on display screen 194. There are many types of pressure sensors 180A, including resistive, inductive, and capacitive pressure sensors. A capacitive pressure sensor may comprise at least two parallel plates made of conductive material. When force is applied to pressure sensor 180A, the capacitance between the electrodes changes, and electronic device 100 determines the intensity of the pressure based on the change in capacitance. When a touch operation is applied to display screen 194, electronic device 100 detects the touch operation based on pressure sensor 180A. Electronic device 100 can also calculate the touch location based on the detection signal from pressure sensor 180A. In some embodiments, touch operations applied to the same touch location but with different touch operation intensities can correspond to different operation instructions. For example, when a touch operation with an intensity less than a first pressure threshold is applied to a short message application icon, an instruction to view short messages is executed; when a touch operation with an intensity greater than or equal to the first pressure threshold is applied to a short message application icon, an instruction to create a new short message is executed.

[0078] The proximity light sensor 180G may include, for example, a light-emitting diode (LED) and a light detector, such as a photodiode. The LED may be an infrared LED. The electronic device 100 emits infrared light outward through the LED. The electronic device 100 uses a photodiode to detect infrared reflected light from nearby objects. When reflected light is detected, the electronic device 100 may determine that there is an object nearby. When no reflected light is detected, the electronic device 100 may determine that there is no object nearby. The electronic device 100 may use the proximity light sensor 180G to detect whether the user is holding the electronic device 100 close to the ear to talk, so as to automatically turn off the screen to save power. The proximity light sensor 180G may also be used for automatic unlocking and automatic screen locking in holster mode or pocket mode. It should be understood that the proximity light sensor 180G described in FIG2 may be an optional component. In some scenarios, an ultrasonic sensor may be used instead of the proximity light sensor 180G to detect proximity light.

[0079] The fingerprint sensor 180H is used to collect fingerprints. The electronic device 100 can use the collected fingerprint characteristics to implement functions such as unlocking, accessing application locks, taking photos, and answering calls.

[0080] The touch sensor 180K is also referred to as a touch-sensitive device. The touch sensor 180K can be disposed on the display screen 194. The touch sensor 180K and the display screen 194 form a touch screen, also referred to as a touch screen. The touch sensor 180K is used to detect touch operations applied thereto or in the vicinity thereof. The touch sensor 180K can transmit the detected touch operations to an application processor to determine the type of touch event. Visual output related to the touch operations can be provided via the display screen 194. In other embodiments, the touch sensor 180K can also be disposed on the surface of the electronic device 100 and at a different location from the display screen 194.

[0081] The buttons 190 include a power button and a volume button. The buttons 190 can be mechanical buttons or touch buttons. The electronic device 100 can receive button input signals and implement functions related to the case input signals.

[0082] Motor 191 can generate vibration. Motor 191 can be used for incoming call reminders or for touch feedback. Motor 191 can produce different vibration feedback effects for touch operations acting on different applications. Motor 191 can also produce different vibration feedback effects for touch operations acting on different areas of the display screen 194. Different application scenarios (for example, time reminders, receiving messages, alarm clocks, and games) can correspond to different vibration feedback effects. The touch vibration feedback effect can also support customization.

[0083] The hardware system of electronic device 100 is described in detail above. The following describes the software system of electronic device 100. The software system can adopt a layered architecture, event-driven architecture, microkernel architecture, microservice architecture, or cloud architecture. In the embodiment of the present application, the layered architecture is used as an example to exemplify the software system of electronic device 100.

[0084] As shown in Figure 3, a software system using a layered architecture is divided into several layers, each with clear roles and divisions of labor. Layers communicate with each other through software interfaces. In some embodiments, the software system can be divided into five layers: from top to bottom, the application layer, the application framework layer, the Android runtime and system libraries, the kernel layer, and the trusted execution environment (TEE) layer.

[0085] The application layer may include applications such as camera, gallery, calendar, call, map, navigation, WLAN, Bluetooth, music, video, and short message.

[0086] The application framework layer provides an application programming interface (API) and a programming framework for applications in the application layer. The application framework layer may include some predefined functions.

[0087] For example, the application framework layer includes the window manager, content provider, view system, telephony manager, resource manager, and notification manager.

[0088] The window manager is used to manage window programs. The window manager can obtain the display size, determine whether there is a status bar, lock the screen, and take screenshots.

[0089] Content providers are used to store and retrieve data and make it accessible to applications. The data may include videos, images, audio, calls made and received, browsing history and bookmarks, and phone books.

[0090] The view system includes visual controls, such as controls for displaying text and images. The view system can be used to build applications. A display interface can consist of one or more views. For example, a display interface containing a text notification icon can include a view for displaying text and a view for displaying images.

[0091] The phone manager is used to provide communication functions of the electronic device 100, such as management of call status (connected or hung up).

[0092] The resource manager provides various resources for applications, such as localized strings, icons, images, layout files, and video files.

[0093] The Notification Manager allows applications to display notification information in the status bar. It can be used to convey notification-type messages and can disappear automatically after a short stay without user interaction. For example, the Notification Manager is used to notify downloads and message reminders. The Notification Manager can also manage notifications that appear in the status bar at the top of the system in the form of icons or scrolling text, such as notifications from applications running in the background. The Notification Manager can also manage notifications that appear on the screen in the form of dialog windows, such as prompting text messages in the status bar, emitting alert sounds, vibrating electronic devices, and flashing indicator lights.

[0094] Android Runtime includes core libraries and a virtual machine. Android Runtime is responsible for scheduling and management of the Android system.

[0095] The core library consists of two parts: one is the function that needs to be called by the Java language, and the other is the Android core library.

[0096] The application layer and application framework layer run in a virtual machine. The virtual machine executes Java files in the application layer and application framework layer as binary files. The virtual machine performs functions such as object lifecycle management, stack management, thread management, security and exception management, and garbage collection.

[0097] The system library can include multiple functional modules, such as a surface manager, a media library, a 3D graphics processing library (such as the open graphics library for embedded systems (OpenGL ES)) and a 2D graphics engine (such as the skia graphics library (SGL)).

[0098] The surface manager is used to manage the display subsystem and provide the fusion of 2D layers and 3D layers for multiple applications.

[0099] The media library supports playback and recording of multiple audio and video formats, as well as still image files. It supports a variety of audio and video codecs, such as MPEG4, H.264, Moving Picture Experts Group Audio Layer III (MP3), Advanced Audio Coding (AAC), Adaptive Multi-Rate (AMR), Joint Photographic Experts Group (JPG), and Portable Network Graphics (PNG).

[0100] The 3D graphics processing library can be used to implement 3D graphics drawing, image rendering, compositing and layer processing.

[0101] A 2D graphics engine is a drawing engine for 2D drawings.

[0102] The kernel layer is the layer between hardware and software. The kernel layer can include driver modules such as fingerprint module driver, display driver, camera driver, audio driver, and sensor driver.

[0103] The TEE layer provides security services for the Android system. It is used to execute various biometric algorithms. The TEE layer is typically used to run key operations: (1) mobile payments: fingerprint verification, PIN code entry, etc.; (2) confidential data: secure storage of private keys, certificates, etc.; (3) content: digital copyright protection or digital rights management (DRM), etc.

[0104] In some possible embodiments, the TEE layer includes a fingerprint entry module, a fingerprint verification module and an orthogonal matrix generation module. Optionally, the orthogonal matrix generation module can be independently provided in the TEE layer (for example, as shown in FIG3 ), or it can be located in the fingerprint verification module or the fingerprint entry module, and the embodiment of the present application does not specifically limit this. In an embodiment of the present application, the orthogonal matrix generation module is used to generate a first orthogonal matrix. The first orthogonal matrix is ​​used to perform dimensionality reduction processing on the features of the fingerprint image (the fingerprint image can be characterized by a fingerprint feature descriptor, such as a eigenvector).

[0105] It should be understood that the above example illustrates the structural diagram of the electronic device based on FIG2 , and the software architecture of the embodiment of the present application is illustrated through FIG3 , but the embodiment of the present application is not limited thereto.

[0106] Currently, the feature point descriptors of fingerprint images stored in fingerprint templates are typically represented by an N-dimensional vector generated by the SIFT algorithm. However, this method of representing fingerprint features results in an excessively large amount of data stored in the fingerprint template, which in turn consumes a significant amount of memory in electronic devices. Furthermore, matching the fingerprint template with the fingerprint image to be verified is computationally complex and time-consuming, significantly impacting the user experience.

[0107] For example, feature point descriptors can be used to describe the properties of fingerprint feature points (such as bifurcation points and endpoints). For unified explanation here, the representation of feature point descriptors can be feature vectors. For example, the feature point descriptor is an n-dimensional vector, that is, V = (v1, v2, ..., v n ).

[0108] In view of this, the embodiment of the present application intends to reduce the memory space occupied by fingerprint features by reducing the dimension of the fingerprint features. In addition, matching based on the reduced dimension fingerprint features can reduce the computational complexity.

[0109] The following describes a fingerprint recognition method according to an embodiment of the present application in conjunction with Figures 4 to 7. It is understood that the fingerprint recognition method shown below can be implemented in an electronic device with the above hardware structure (for example, the electronic device shown in Figure 2).

[0110] Figure 4 is a schematic block diagram of the global fingerprint recognition process. As shown in Figure 4, fingerprint recognition generally includes a fingerprint entry process and a fingerprint verification process. In the embodiments of the present application, an orthogonal matrix generation process has been added. It is understood that the fingerprint entry process in Figure 4 can be implemented using the fingerprint entry module in Figure 3; the fingerprint verification process can be implemented using the fingerprint verification module in Figure 3; and the orthogonal matrix generation process can be implemented using the orthogonal matrix generation module in Figure 3.

[0111] The fingerprint entry process can be understood as: preprocessing the collected user fingerprint image, extracting features based on the preprocessed fingerprint image, reducing the dimension of the extracted features, and finally storing the reduced fingerprint features as a fingerprint template.

[0112] For example, the fingerprint entry process usually involves the following processing steps: preprocessing (including brightness normalization, denoising, etc.), quality control, extraction of traditional fingerprint features, extraction of high-order fingerprint features, feature dimensionality reduction, and template compression storage.

[0113] Among them, preprocessing is the process of performing image processing such as brightness normalization and denoising on the collected fingerprint image.

[0114] Denoising is the process of performing image denoising on the pre-processed fingerprint image to remove noise interference from the fingerprint image. The present embodiment does not specifically limit the denoising method. For example, the denoising method may use wavelet transform, bilateral filtering, etc.

[0115] It should be understood that the above description is based on the example of preprocessing including brightness normalization and denoising, and the embodiments of the present application are not limited thereto. In fact, preprocessing may include other processing operations, such as filtering, image enhancement, binarization, etc.

[0116] Quality control: refers to judging the image quality of the denoised fingerprint image, obtaining high-quality fingerprint images for recording, and not recording low-quality fingerprint images.

[0117] Extracting traditional fingerprint features refers to the preliminary extraction of fingerprint features based on the denoised fingerprint image. Traditional fingerprint features can be understood as the overall features (or global features) of the fingerprint.

[0118] Extracting high-order fingerprint features refers to extracting detailed feature points from the refined fingerprint image. High-order fingerprint features can be understood as local features that are more detailed than traditional fingerprint features.

[0119] Feature dimensionality reduction refers to the process of mapping feature points to a subspace using the first orthogonal matrix. An example of using the first orthogonal matrix to perform feature dimensionality reduction in an embodiment of the present application will be described in detail below.

[0120] Template compression storage refers to the process of storing fingerprint features after dimensionality reduction. Generally speaking, the extracted fingerprint features are saved as feature templates for storage. In the embodiment of the present application, the first orthogonal matrix generated by the orthogonal matrix generation module can be called to reduce the dimensionality of the features of the recorded fingerprint image, and then the reduced dimensionality fingerprint features are stored in the fingerprint template library, which can reduce the memory space occupied.

[0121] The fingerprint verification process can be understood as: after collecting the fingerprint image to be verified, the fingerprint image to be verified is preprocessed, and features are extracted based on the preprocessed fingerprint image to be verified, and the extracted features are reduced in dimension. Finally, the features of the fingerprint to be verified after the dimension reduction are matched with the fingerprint features after the dimension reduction stored in the fingerprint template. In the embodiments of the present application, the fingerprint features after the dimension reduction are used for matching or verification.

[0122] Exemplarily, the fingerprint verification process involves the following processing steps: preprocessing (including brightness normalization, denoising, etc.), quality control, extraction of traditional fingerprint features, extraction of high-order fingerprint features, feature dimensionality reduction (or descriptor dimensionality reduction), feature matching, and authentication of whether it is a user (the user refers to the user who entered the fingerprint).

[0123] For the description of preprocessing, denoising, quality control, extraction of traditional fingerprint features, and extraction of high-order fingerprint features, please refer to the description of the fingerprint entry process. For the sake of brevity, we will not repeat it here.

[0124] Feature matching refers to matching the features of the fingerprint image to be verified after dimensionality reduction (features can be represented by feature descriptors, such as the first feature vector) with the fingerprint features stored in the fingerprint template (such as the third feature vector).

[0125] The process of generating an orthogonal matrix can be understood as a process of generating a first orthogonal matrix based on a large number of fingerprint feature points collected in advance.

[0126] The first orthogonal matrix is ​​used to reduce the dimension of the fingerprint features. It should be understood that the first orthogonal matrix can also be named, for example, a dimensionality reduction orthogonal matrix, a descriptor dimensionality reduction orthogonal matrix, a fingerprint feature dimensionality reduction orthogonal matrix, etc. This embodiment of the present application does not specifically limit this.

[0127] In the embodiment of the present application, the first orthogonal matrix can be obtained by iterative calculation, or generated by continuous trial and error. The first orthogonal matrix can be generated offline based on a large number of fingerprint feature points collected in advance.

[0128] Exemplarily, the process of generating the first orthogonal matrix can be performed by the orthogonal matrix generation module in Figure 4. A large number of pre-collected fingerprint feature point descriptors are input into the orthogonal matrix generation module, which is used to output the first orthogonal matrix.

[0129] The following describes the process of generating the first orthogonal matrix in conjunction with Figure 5. Figure 5 shows a schematic flow chart of a method 500 for generating a first orthogonal matrix according to an embodiment of the present application. As shown in Figure 5, the method 500 includes the following steps:

[0130] Step 501: Initialize a first orthogonal vector group, where the first orthogonal vector group is empty.

[0131] Exemplarily, the first orthogonal vector group is represented by R={}. In the initial stage, the first orthogonal vector group R is empty.

[0132] Step 502: Generate a first random vector, where the first random vector is an n-dimensional vector.

[0133] For example, the first random vector can be expressed as r=(r1, r2, ..., r n ). n is an integer greater than or equal to 2.

[0134] The embodiment of the present application does not specifically limit the method for generating the first random vector. For example, the first random vector can be generated by a random function.

[0135] Step 503: Determine whether the first random vector is orthogonal to a vector in the first orthogonal vector group.

[0136] The embodiment of the present application does not limit the specific method of determining orthogonality. For example, if the inner product of the first random vector and the vectors in the first orthogonal vector group is 0, then the first random vector is orthogonal to the vectors in the first orthogonal vector group.

[0137] The first random vector being orthogonal to the vectors in the first orthogonal vector group can be understood as being approximately orthogonal. Optionally, an orthogonal threshold can be introduced to determine whether the first random vector is orthogonal to the vectors in the first orthogonal vector group.

[0138] Exemplarily, if an inner product of the first random vector and a vector in the first orthogonal vector group is less than a preset orthogonal threshold, the first random vector is orthogonal to the vector in the first orthogonal vector group.

[0139] It is understandable that the value of the above-mentioned preset orthogonality threshold can be infinitely small. The embodiment of the present application does not limit the specific value of the orthogonality threshold.

[0140] When the first random vector is orthogonal to the vectors in the first orthogonal vector group, step 504 is executed; when the first random vector is not orthogonal to the vectors in the first orthogonal vector group, the process returns to step 502 .

[0141] Step 504: determine whether the first random vector can divide the pre-collected fingerprint feature points into two parts.

[0142] For example, the pre-collected fingerprint feature points are divided into two parts using the first random vector r as the dividing plane. If the number of feature points in the two parts is equal (or approximately equal), the first random vector can be included in the first orthogonal vector group.

[0143] Optionally, for the fingerprint feature points divided into two parts by the first random vector r, a number difference threshold may be introduced to determine whether the number of feature points in the two parts is equal.

[0144] Exemplarily, if the difference in the number of feature points in the two parts is less than a predetermined number difference threshold, it is considered that the first random vector r can evenly divide the pre-collected fingerprint feature points.

[0145] The pre-collected fingerprint feature points are segmented using the first random vector. If the first random vector can segment the pre-collected fingerprint feature points into two parts, step 505 is executed; if the first random vector cannot segment the pre-collected fingerprint feature points into two parts, the process returns to step 502.

[0146] Step 505: Add the first random vector to the first orthogonal vector group.

[0147] If the first random vector r can divide the pre-collected fingerprint feature points into two parts, then the first random vector r is added to the first orthogonal vector group R, that is, the first orthogonal vector group R=R∪r.

[0148] Step 506: Determine whether the number of vectors included in the first orthogonal vector group reaches n.

[0149] When the number of vectors included in the first orthogonal vector group reaches n, step 507 is executed; when the number of vectors included in the first orthogonal vector group does not reach n, the process returns to step 502 and steps 502 to 505 are repeated.

[0150] Step 507: Expand the n vectors in the first orthogonal vector group by rows to obtain the first orthogonal matrix, wherein the first orthogonal matrix includes n row vectors, and the n row vectors of the first orthogonal matrix are orthogonal to each other.

[0151] Exemplarily, the first orthogonal matrix can be expressed as the following n*n dimensional orthogonal matrix:

[0152] Wherein, A represents a first orthogonal matrix. A includes n row vectors, each row vector includes n vector elements. Each row vector can be generated based on the above steps 502-505.

[0153] Based on the above process, the first orthogonal vector group is generated by continuous trial and error, so that the orthogonal matrix that is most suitable for distinguishing fingerprint features can be found, such as the first orthogonal matrix.

[0154] The above describes the process of generating the first orthogonal matrix. An embodiment of how to use the first orthogonal matrix will be described below with reference to FIG. 6 .

[0155] FIG6 is a schematic flow chart of a fingerprint recognition method 600 according to an embodiment of the present application. It should be understood that the first orthogonal matrix involved in the method 600 in FIG6 can be obtained by the method 500 in FIG5. It should also be understood that the method in FIG6 can be applied to the fingerprint unlocking scenario shown in FIG1. ​​As shown in FIG6, the method 600 includes:

[0156] Step 601: Collect the fingerprint image to be verified.

[0157] The fingerprint image to be verified may also refer to the fingerprint image to be matched. For example, the fingerprint image to be verified is an image captured when the user presses the fingerprint unlocking area. For example, an example of a user pressing the fingerprint unlocking area is shown in (1) in Figure 1.

[0158] Step 602: Determine a first eigenvector based on the fingerprint image to be verified. The first eigenvector is obtained by performing dimensionality reduction processing on the second eigenvector using a first orthogonal matrix. The second eigenvector is used to represent the characteristics of the fingerprint image to be verified.

[0159] The second feature vector is used to represent: features (including all features) extracted from the preprocessed fingerprint image after the fingerprint image to be verified is preprocessed. In other words, the second feature vector is used to represent the features of the fingerprint image to be verified before dimensionality reduction processing is performed. In other words, the second feature vector is used to represent the fingerprint image to be verified after preprocessing.

[0160] The first orthogonal matrix includes multiple vectors (e.g., row vectors) generated by iterative calculation based on pre-collected fingerprint feature points, and each of the multiple vectors can divide the pre-collected fingerprint feature points into two parts. Exemplarily, the first orthogonal matrix is ​​obtained using method 500 shown in FIG5 .

[0161] Optionally, determining the first feature vector based on the fingerprint image to be verified includes:

[0162] Preprocessing the fingerprint image to be verified to obtain a preprocessed fingerprint image;

[0163] Performing feature extraction on the preprocessed fingerprint image to obtain features of the fingerprint image to be verified, and using a second feature vector to represent the features of the fingerprint image to be verified;

[0164] Perform dimensionality reduction processing on the second eigenvector based on the first orthogonal matrix to obtain the first eigenvector.

[0165] Exemplarily, the collected fingerprint image to be verified can be preprocessed (such as brightness normalization, denoising, image enhancement, etc.), and the preprocessed fingerprint image can be subjected to feature extraction (such as extracting traditional fingerprint features and extracting high-order fingerprint features as mentioned above). Then, the features of the fingerprint image to be verified are represented by the second eigenvector, and finally, the second eigenvector is subjected to dimensionality reduction processing using the first orthogonal matrix to obtain the first eigenvector.

[0166] After the feature data of the fingerprint image to be verified is subjected to dimensionality reduction processing, the reduced feature data can be used for fingerprint matching.

[0167] It is understood that the above description is based on an example of a feature point descriptor represented by a feature vector, and the embodiments of the present application are not limited thereto. For example, taking the first feature vector as an example, the first feature vector can be called a first feature point descriptor, or a first feature matrix, or a first descriptor matrix, or a first feature point matrix, etc.

[0168] Step 603: Perform fingerprint matching based on the first eigenvector and the third eigenvector, wherein the third eigenvector is obtained by performing dimensionality reduction processing on the fourth eigenvector using the first orthogonal matrix, the third eigenvector is stored in the fingerprint template library, and the fourth eigenvector is used to characterize the characteristics of the first fingerprint template.

[0169] The fourth eigenvector is used to represent: features (including all features) extracted from the preprocessed fingerprint image to be recorded (corresponding to the first fingerprint template) after preprocessing. In other words, the fourth eigenvector is used to represent the features of the first fingerprint template before dimensionality reduction processing. In other words, the fourth eigenvector is used to represent the fingerprint image to be recorded after preprocessing.

[0170] In an embodiment of the present application, the feature data of the fingerprint template stored in the fingerprint template library is the feature data after dimensionality reduction processing using the first orthogonal matrix. For example, taking the first fingerprint template as an example, after collecting the fingerprint image to be recorded (corresponding to the first fingerprint template), the features extracted based on the fingerprint image to be recorded can be characterized by the fourth eigenvector before dimensionality reduction processing; after using the first orthogonal matrix to reduce the dimensionality of the fourth eigenvector, the feature data after dimensionality reduction can be obtained, such as the third eigenvector, and the third eigenvector is stored in the fingerprint template library. In an embodiment of the present application, the memory space occupied by the feature data after dimensionality reduction (the third eigenvector) is less than the memory space occupied by the feature data before dimensionality reduction (the fourth eigenvector), which can reduce the occupancy of the storage space of the electronic device by the fingerprint data. Moreover, matching using the feature data after dimensionality reduction processing can reduce complexity, increase matching speed, and greatly enhance the user's fingerprint recognition experience.

[0171] It should be understood that the fingerprint template library can store one or more fingerprint templates. This description uses the first fingerprint template as an example. The process of storing other fingerprint templates in the fingerprint template library is similar to the processing principle of the first fingerprint template. For the sake of brevity, it will not be repeated here.

[0172] It should be noted that the physical meaning of "dimensionality reduction" is that the space can be divided into 2 by n orthogonal vectors. n Subspaces can be represented by n bits. For example, the space can be understood as the space composed of fingerprint feature points.

[0173] Optionally, in one expression, the number of bytes occupied by the third feature vector is smaller than the number of bytes occupied by the fourth feature vector.

[0174] For example, using an 8-dimensional vector as an example, the fourth eigenvector consists of 8 vector elements, each of which occupies 4 bytes of storage space. Therefore, the fourth eigenvector occupies 32 bytes of storage space. After dimensionality reduction processing on the fourth eigenvector, the third eigenvector is obtained. The third eigenvector can be represented by 8 bits, occupying only 1 byte. In this way, the occupied storage space is reduced to 1 / 32 of the original.

[0175] For ease of understanding, the dimensionality reduction process is described below with reference to specific examples.

[0176] Exemplarily, the feature descriptor of the first fingerprint template is represented by the following 8-dimensional vector: V = [1, 2, 3, 4, 5, 6, 7, 8]

[0177] The above eigenvector V represents the fourth eigenvector. Each vector element in the eigenvector V occupies 4 bytes of memory space, that is, the eigenvector V occupies 8*4=32 bytes in total.

[0178] Exemplarily, the first orthogonal matrix obtained by the method 500 shown in FIG5 is the following 8*8 matrix:

[0179] It should be understood that the above matrix A is an example of a first orthogonal matrix, and the embodiments of the present application are not limited thereto.

[0180] Optionally, as an embodiment, the third eigenvector is obtained by the following method, or the dimension of the fourth eigenvector is reduced:

[0181] Multiplying the first orthogonal matrix by the transposed matrix of the fourth eigenvector to obtain a product;

[0182] Processing the obtained product through a sign function to obtain a fifth eigenvector;

[0183] The fifth eigenvector is subjected to binary conversion processing to obtain the third eigenvector.

[0184] That is, first, the first orthogonal matrix and the transposed matrix of the fourth eigenvector are multiplied, and then the resulting product is processed by a sign function to obtain the fifth eigenvector, and finally, the vector elements in the fifth eigenvector are processed into binary values ​​to obtain the third eigenvector.

[0185] Illustratively, multiplying the first orthogonal matrix by the transposed matrix of the fourth eigenvector includes:

[0186] The following formula is used for calculation:

[0187] Wherein, A represents the first orthogonal matrix, V′ represents the transposed matrix of the fourth eigenvector, and A·V′ represents the product of the first orthogonal matrix and the transposed matrix of the fourth eigenvector.

[0188] Exemplarily, the product is processed by a sign function to obtain a fifth eigenvector, including:

[0189] The following formula is used for processing:

[0190] Here, sign(A·V′) represents the fifth eigenvector.

[0191] Exemplarily, processing the vector elements in the fifth eigenvector into binary values ​​includes:

[0192] Use the following formula for binary processing:

[0193] Where H(V) represents the third eigenvector. When A·V′<0, H(V) takes the value of 0; when A·V′≥0, H(V) takes the value of 1.

[0194] Through the dimensionality reduction process described above, we can see that the resulting third eigenvector only requires 8 bits (10101111), or 1 byte. Compared to the 32-byte fourth eigenvector, the third eigenvector only requires 1 byte, a reduction of 1 / 32 of the original, significantly reducing storage space.

[0195] It should be understood that the above description is based on an example of using the first orthogonal matrix to perform dimensionality reduction processing on the fourth eigenvector to obtain the third eigenvector, and the embodiments of the present application are not limited thereto.

[0196] Similarly, the acquisition of the first eigenvector may refer to the acquisition method of the third eigenvector.

[0197] Exemplarily, the first feature vector is obtained using the following method:

[0198] Multiplying the first orthogonal matrix by the transposed matrix of the second eigenvector to obtain a product;

[0199] Processing the obtained product through a sign function to obtain a sixth eigenvector;

[0200] Perform binary conversion on the vector elements in the sixth eigenvector to obtain the first eigenvector.

[0201] It should also be understood that the dimensionality reduction process of the second eigenvector using the first orthogonal matrix to obtain the first eigenvector can refer to the above example, which will not be described here for the sake of brevity.

[0202] The following describes how to implement feature matching using the feature point descriptors after dimensionality reduction.

[0203] Optionally, as an embodiment, step 603 includes: calculating a Hamming distance based on the first eigenvector and the third eigenvector; and determining that the fingerprint image to be verified successfully matches the first fingerprint template when the Hamming distance is less than a first distance threshold.

[0204] In other words, the Hamming distance can be calculated to determine whether the match is successful. If the Hamming distance is less than a set threshold (such as the first distance threshold), it is considered that the feature points of the two match each other, and the subsequent process can be executed. For example, it can be further verified whether the fingerprint image to be verified is the user who recorded the fingerprint. Compared with calculating the Euclidean distance between two feature point descriptors, calculating the Hamming distance can reduce the computational complexity and save time while ensuring the matching accuracy, thus improving the matching speed and providing users with a better unlocking experience.

[0205] It should be noted that the Hamming distance is used to represent the distance between two subspaces. A subspace can be understood as the subspace to which feature point descriptors (such as the feature vectors mentioned above) are mapped. The Hamming distance can effectively represent the distance between feature point descriptors.

[0206] It should be understood that the above description uses the example of determining that the fingerprint image to be verified successfully matches the first fingerprint template when the Hamming distance is less than the first distance threshold. The present embodiments are not limited to this. In fact, "Hamming distance less than the first distance threshold" can also be replaced with other reasonable conditions to determine whether a match is successful. For example, "Hamming distance less than the first distance threshold" can be replaced with "Hamming distance within a certain distance range."

[0207] Of course, if the fingerprint image to be verified does not match the first fingerprint template successfully, other fingerprint templates stored in the fingerprint template library can be used for matching. When the fingerprint image to be verified is matched with other fingerprint templates, the specific process is similar to that of the first fingerprint template, and the matching is also performed using the fingerprint features after dimensionality reduction, which reduces the computational complexity, saves time, and improves the matching speed.

[0208] The present embodiment does not limit the specific method for determining the Hamming distance, and is described below with reference to a specific formula.

[0209] Exemplarily, calculating the Hamming distance based on the first eigenvector and the third eigenvector includes: calculating the Hamming distance using the following formula: d=count(XOR(H1,H2))

[0210] Wherein, d represents the Hamming distance, count() represents the operation of counting the number of non-zeros, XOR represents the exclusive OR operation, H1 represents the first eigenvector, and H2 represents the third eigenvector.

[0211] For example, assuming H1 = (0 0 0 1) and H2 = (0 1 0 0), then the number of different values ​​at the same bit is 2, namely: the value of the second vector element of H1 is different from the value of the second vector element of H2; the value of the fourth vector element of H1 is different from the value of the fourth vector element of H2.

[0212] Therefore, compared with the prior art in which matching is performed by calculating the Euclidean distance, the embodiment of the present application determines whether the matching is successful by calculating the Hamming distance. While ensuring the matching accuracy, it can reduce the matching complexity and help improve the matching speed.

[0213] It should be understood that the above calculation formula for the Hamming distance is only an exemplary description and the embodiments of the present application are not limited thereto.

[0214] Before executing the above fingerprint method, it can also be determined whether the electronic device has enabled the fingerprint feature matching optimization function. If the fingerprint feature matching optimization function is enabled, the above fingerprint recognition method is executed. In the embodiment of the present application, the fingerprint feature matching optimization function can be enabled by default.

[0215] The fingerprint feature matching optimization function of the embodiment of the present application can be solidified in the terminal, without the user having to manually enable it, or an option can be provided for the user to manually enable or disable it. The embodiment of the present application also provides a switch option for the fingerprint feature matching optimization function, allowing the user to choose to enable or disable the fingerprint feature matching optimization function.

[0216] Optionally, the method further includes: displaying a first interface, the first interface including a first option, the first option being used to select whether to turn on or off the fingerprint feature matching optimization function.

[0217] The first interface is the fingerprint setting interface. It is understood that the embodiments of the present application do not specifically limit how to enter the first interface. For example, the fingerprint setting interface can be entered through the settings application. For another example, the fingerprint setting interface can also be entered through a fingerprint application.

[0218] For example, a switch option (corresponding to the first option) for the fingerprint feature matching optimization function may be added to the fingerprint setting interface.

[0219] FIG7 is an example interface diagram of an embodiment of the present application. As shown in FIG7 (1), the user clicks Settings 801 to enter the settings interface, such as the interface shown in FIG7 (2). It is understood that the interface shown in FIG7 (1) may also include icons of other applications, such as Application 1 to Application 7.

[0220] As shown in (2) of FIG7 , the interface includes a biometric device and password control 802. It is understood that the interface shown in (2) of FIG7 may also include other setting functions. For example, the application settings, battery settings, storage settings, privacy settings, etc. shown in (2) of FIG7 .

[0221] It should be understood that the setting options shown in (2) of Figure 7 are only examples of some setting functions, and the embodiments of the present application are not limited thereto. It should also be understood that (2) of Figure 7 also shows a search setting item bar, in which the user can quickly search for function settings.

[0222] When the user clicks on the biometric device and password control 802, the interface shown in (3) of Figure 7 is entered. As shown in (3) of Figure 7, the interface includes a fingerprint setting control 803.

[0223] Optionally, in addition to the fingerprint setting control 803, (3) in Figure 7 may also include a face recognition setting control, a lock screen password management control (including changing the lock screen password and turning off the lock screen password), a security lock setting control, and a smart unlock control. It should be understood that the biometric identification and password options shown in (3) in Figure 7 are only exemplary and the embodiments of the present application are not limited thereto.

[0224] When the user clicks on the fingerprint setting control 803, the interface is displayed as shown in Figure 7 (4). As shown in Figure 7 (4), the interface includes a fingerprint feature matching optimization option 804. The user can click on the fingerprint feature matching optimization 804 to turn on or off the fingerprint template update function. For example, the fingerprint feature matching optimization 804 shown in Figure 7 (4) is in the on state.

[0225] Optionally, in addition to the fingerprint feature matching optimization 804, (4) in FIG7 may also include other controls for fingerprint management. For example, (4) in FIG7 shows fingerprint usage options, including: an option for using fingerprints to unlock the device, an option for using fingerprints to access the application lock, an option for using fingerprints to automatically fill in accounts and passwords, and an option for using fingerprints for quick wallet payments. For another example, (4) in FIG7 shows fingerprint list management options, including management controls for fingerprint 1, management controls for fingerprint 2, a new fingerprint option, and an identification fingerprint option.

[0226] It should be understood that the application scenario in FIG. 7 is merely for facilitating understanding by those skilled in the art, and is not intended to limit the embodiments of the present application to the specific scenario in FIG. 7 .

[0227] The fingerprint recognition method provided by the embodiment of the present application is described in detail above with reference to Figures 1 to 7 . The device embodiment of the present application will be described in detail below with reference to Figure 8 . It should be understood that the fingerprint recognition device of the embodiment of the present application can perform the various fingerprint recognition methods of the aforementioned embodiments of the present application. That is, the specific working processes of the various products below can refer to the corresponding processes in the aforementioned method embodiments.

[0228] Figure 8 is a schematic block diagram of a fingerprint recognition device 800 according to an embodiment of the present application. It should be understood that device 800 can perform the fingerprint recognition methods shown in Figures 4 to 7 . As shown in Figure 8 , fingerprint recognition device 800 includes: an acquisition unit 810, a processing unit 820, and a matching unit 830. Optionally, device 800 also includes a display unit 840. In one possible example, device 800 can be a terminal device.

[0229] In one example, the acquisition unit 810 is used to acquire a fingerprint image to be verified;

[0230] The processing unit 820 is configured to determine a first eigenvector based on the fingerprint image to be verified, where the first eigenvector is obtained by performing dimensionality reduction processing on the second eigenvector using a first orthogonal matrix, and the second eigenvector is used to represent the characteristics of the fingerprint image to be verified;

[0231] The matching unit 830 is configured to perform fingerprint matching based on the first eigenvector and the third eigenvector, wherein the third eigenvector is obtained by performing dimensionality reduction processing on the fourth eigenvector using the first orthogonal matrix, the fourth eigenvector is used to characterize the features of the first fingerprint template, and the third eigenvector is stored in a fingerprint template library;

[0232] The first orthogonal matrix includes a plurality of vectors, which are generated by iterative calculation based on pre-collected fingerprint feature points, and each of the plurality of vectors can divide the pre-collected fingerprint feature points into two parts.

[0233] Optionally, as an embodiment, the matching unit 830 is configured to perform fingerprint matching based on the first feature vector and the third feature vector, specifically including:

[0234] Calculating a Hamming distance based on the first eigenvector and the third eigenvector;

[0235] When the Hamming distance is less than a first distance threshold, it is determined that the fingerprint image to be verified matches the first fingerprint template successfully.

[0236] Optionally, as an embodiment, the Hamming distance satisfies the following formula:

[0237] d=count(XOR(H1,H2))

[0238] Wherein, d represents the Hamming distance, count() represents the operation of counting the number of non-zeros, XOR represents the exclusive OR operation, H1 represents the first eigenvector, and H2 represents the third eigenvector.

[0239] Optionally, as an embodiment, the first orthogonal matrix is ​​obtained in the following manner:

[0240] Initializing a first orthogonal vector group, where the first orthogonal vector group is empty;

[0241] generating a first random vector, wherein the first random vector is an n-dimensional vector;

[0242] Determining whether the first random vector is orthogonal to a vector in the first orthogonal vector group;

[0243] When the first random vector is orthogonal to a vector in the first orthogonal vector group, determining whether the first random vector can divide the pre-collected fingerprint feature points into two parts;

[0244] When the first random vector divides the fingerprint feature point, adding the first random vector to the first orthogonal vector group;

[0245] Determining whether the number of vectors included in the first orthogonal vector group is n;

[0246] When the number of vectors in the first orthogonal vector group is n, the vectors in the first orthogonal vector group are expanded row by row to obtain the first orthogonal matrix, wherein the first orthogonal matrix includes n row vectors, and the n row vectors of the first orthogonal matrix are orthogonal to each other.

[0247] Optionally, as an embodiment, the third eigenvector is obtained by the following method:

[0248] Multiplying the first orthogonal matrix by the transposed matrix of the fourth eigenvector to obtain a product;

[0249] Processing the obtained product through a sign function to obtain a fifth eigenvector;

[0250] Perform binary conversion on the vector elements in the fifth eigenvector to obtain the third eigenvector.

[0251] Optionally, as an embodiment, the number of bytes occupied by the third feature vector is smaller than the number of bytes occupied by the fourth feature vector.

[0252] Optionally, as an embodiment, the display unit 840 is configured to:

[0253] A first interface is displayed, wherein the first interface includes a first option, and the first option is used to turn on or off the fingerprint matching optimization function.

[0254] In one possible example, the acquisition unit 810 may be implemented by a fingerprint module, the processing unit 820 and the matching unit 830 may be implemented by a processor or a processing unit, and the display unit 840 may be implemented by a screen.

[0255] It should be understood that the above-mentioned device 800 is embodied in the form of a functional unit. The term "unit" here can be implemented in the form of software and / or hardware, and this embodiment of the application does not specifically limit this.

[0256] For example, a "unit" may be a software program, a hardware circuit, or a combination of the two that implements the above functions. The hardware circuit may include an application specific integrated circuit (ASIC), an electronic circuit, a processor (such as a shared processor, a dedicated processor, or a group processor, etc.) that executes one or more software or firmware programs and a memory, an integrated logic circuit, and / or other suitable devices that can provide the above functions. In a simple embodiment, those skilled in the art will appreciate that the device 800 can take the form shown in Figure 2.

[0257] Those skilled in the art will appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0258] The present application also provides a computer program product, which, when executed by a processor, implements the method described in any method embodiment of the present application.

[0259] The computer program product can be stored in a memory and finally converted into an executable target file that can be executed by a processor through preprocessing, compilation, assembly and linking.

[0260] The present application also provides a computer-readable storage medium having a computer program stored thereon, which, when executed by a computer, implements the method described in any method embodiment of the present application. The computer program can be a high-level language program or an executable target program.

[0261] The computer-readable storage medium may be a volatile memory or a non-volatile memory, or may include both volatile and non-volatile memories. The non-volatile memory may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory may be a random access memory (RAM), which is used as an external cache. By way of example and not limitation, many forms of RAM are available, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM), and direct rambus RAM (DR RAM).

[0262] Those skilled in the art will appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0263] Those skilled in the art will clearly understand that, for the convenience and brevity of description, the specific working processes of the systems, devices and units described above can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.

[0264] In the several embodiments provided in this application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are merely schematic. For example, the division of the units is merely a logical function division. In actual implementation, there may be other division methods, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.

[0265] The units described as separate components may or may not be physically separate, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed across multiple network units. Some or all of these units may be selected to achieve the purpose of this embodiment according to actual needs.

[0266] In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.

[0267] If the functions are implemented in the form of software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application, or the part that contributes to the prior art, or the part of the technical solution, can be embodied in the form of a software product. The computer software product is stored in a storage medium and includes several instructions for enabling a computer device (which can be a personal computer, server, or network device, etc.) to execute all or part of the steps of the method described in each embodiment of the present application. The aforementioned storage medium includes various media that can store program codes, such as a USB flash drive, a mobile hard disk, a read-only memory ROM, a random access memory RAM, a magnetic disk, or an optical disk.

[0268] It should be understood that in the various embodiments of the present application, the size of the serial number of each process does not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present application.

[0269] Additionally, the terms "system" and "network" are often used interchangeably in this document. The term "and / or" in this document simply describes a relationship between related objects, indicating that three possible relationships exist. For example, "A and / or B" can mean: A exists alone, A and B exist simultaneously, or B exists alone. Furthermore, the character " / " in this document generally indicates that the related objects are in an "or" relationship. For example, A / B can mean either A or B.

[0270] The terms (or numbers) "first", "second", ... etc. that appear in the embodiments of the present application are only used for descriptive purposes, that is, only to distinguish different objects, such as different "feature vectors", etc., and cannot be understood as indicating or implying relative importance or implicitly indicating the number of technical features indicated. Thus, the features defined as "first", "second", ... etc. may explicitly or implicitly include one or more features. In the description of the embodiments of the present application, "at least one (item)" refers to one or more. "Multiple" means two or more. "At least one of the following (item)" or similar expressions refers to any combination of these items, including any combination of a single (item) or plural (items).

[0271] For example, the meaning of expressions similar to "the items include at least one of the following: A, B, and C" in the embodiments of the present application, unless otherwise specified, generally means that the item can be any one of the following: A; B; C; A and B; A and C; B and C; A, B and C; A and A; A, A and A; A, A and B; A, A and C, A, B and B; A, C and C; B and B, B, B and B, B, B and C, C and C; C, C and C, and other combinations of A, B and C. The above example uses A, B, and C as an example to illustrate the optional items of the item. When the expression is "the items include at least one of the following: A, B, ..., and X", that is, when the expression has more elements, the items that can be applied to the item can also be obtained according to the above rules.

[0272] In short, the above description is only a preferred embodiment of the technical solution of this application and is not intended to limit the scope of protection of this application. Any modifications, equivalent replacements, improvements, etc. made within the spirit and principles of this application shall be included in the scope of protection of this application.

Claims

1. A fingerprint recognition method, characterized in that: The method is applied to an electronic device, and includes: Collect the fingerprint image to be verified; determining a first eigenvector based on the fingerprint image to be verified, where the first eigenvector is obtained by performing dimensionality reduction processing on the second eigenvector using a first orthogonal matrix, and the second eigenvector is used to characterize the characteristics of the fingerprint image to be verified; Performing fingerprint matching based on the first eigenvector and the third eigenvector, wherein the third eigenvector is obtained by performing dimensionality reduction processing on the fourth eigenvector using the first orthogonal matrix, the fourth eigenvector is used to characterize the features of the first fingerprint template, and the third eigenvector is stored in a fingerprint template library; The first orthogonal matrix includes a plurality of vectors, which are generated by iterative calculation based on pre-collected fingerprint feature points, and each of the plurality of vectors can divide the pre-collected fingerprint feature points into two parts.

2. The method according to claim 1, characterized in that The fingerprint matching based on the first feature vector and the third feature vector includes: Calculating a Hamming distance based on the first eigenvector and the third eigenvector; When the Hamming distance is less than a first distance threshold, it is determined that the fingerprint image to be verified matches the first fingerprint template successfully.

3. The method according to claim 2, characterized in that The Hamming distance satisfies the following formula: d = count (XOR (H1, H2)) Wherein, d represents the Hamming distance, count() represents the operation of counting the number of non-zeros, XOR represents the exclusive OR operation, H1 represents the first eigenvector, and H2 represents the third eigenvector.

4. The method according to any one of claims 1 to 3, characterized in that The first orthogonal matrix is ​​obtained in the following manner: Initializing a first orthogonal vector group, wherein the first orthogonal vector group is empty; generating a first random vector, wherein the first random vector is an n-dimensional vector; Determining whether the first random vector is orthogonal to a vector in the first orthogonal vector group; When the first random vector is orthogonal to a vector in the first orthogonal vector group, determining whether the first random vector can divide the pre-collected fingerprint feature points into two parts; When the first random vector divides the fingerprint feature point, adding the first random vector to the first orthogonal vector group; Determining whether the number of vectors included in the first orthogonal vector group is n; When the number of vectors in the first orthogonal vector group is n, the vectors in the first orthogonal vector group are expanded row by row to obtain the first orthogonal matrix, wherein the first orthogonal matrix includes n row vectors, and the n row vectors of the first orthogonal matrix are orthogonal to each other.

5. The method according to any one of claims 1 to 4, characterized in that The third eigenvector is obtained by the following method: Multiplying the first orthogonal matrix by the transposed matrix of the fourth eigenvector to obtain a product; Processing the obtained product through a sign function to obtain a fifth eigenvector; Perform binary conversion on the vector elements in the fifth eigenvector to obtain the third eigenvector.

6. The method according to any one of claims 1 to 5, characterized in that The number of bytes occupied by the third feature vector is smaller than the number of bytes occupied by the fourth feature vector.

7. The method according to any one of claims 1 to 6, characterized in that The method further comprises: A first interface is displayed, wherein the first interface includes a first option, and the first option is used to turn on or off the fingerprint matching optimization function.

8. An electronic device, characterized in that: The electronic device comprises a processor and a memory, wherein the processor and the memory are coupled, and the memory is used to store a computer program. When the computer program is executed by the processor, the electronic device executes the method according to any one of claims 1 to 7.

9. A computer-readable storage medium, characterized in that The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the processor is caused to perform the method according to any one of claims 1 to 7.

10. A chip, characterized in that: The method comprises a processor, and when the processor executes instructions, the processor performs the method according to any one of claims 1 to 7.