Finger vein recognition method and device based on weighted graph
By constructing a weighted graph of finger veins, the problems of inefficient and insufficient accuracy of finger veins recognition in the prior art are solved, and more efficient and accurate finger veins recognition are achieved.
Patent Information
- Application Number
- CN202210442056.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-04-25
- Publication Date
- 2025-05-09
- Estimated Expiration
- 2042-04-25
AI Technical Summary
The existing finger vein recognition technology has defects in the structural relationship description of image content, resulting in low recognition efficiency and low accuracy.
Using a weighted graph-based finger vein recognition method, by constructing a finger vein weighted graph, the structure of the blood vessel network is described and the description of image content is taken into account, reflecting the local randomness of the image.
It improves the efficiency and accuracy of finger vein recognition, and can more effectively describe the randomness of vascular networks and image content.
Smart Images

Figure CN114821648B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of biometric identification, and in particular to a finger vein identification method and device based on a weighted graph. Background Art
[0002] Using the finger vein network for identity authentication has always been a hot topic in the field of biometric recognition. In the existing technology, finger vein recognition technology is mostly based on images, and uses image texture feature analysis and extraction methods to solve the finger vein recognition problem. These methods ignore the structural relationship of image content and lose the superior distinction of the finger vein network; and there is a serious degradation problem in the finger vein acquisition image, which cannot accurately and reliably extract the finger vein network structure.
[0003] At the same time, because the graph structure has good data structure feature description capabilities, the existing finger vein recognition technology attempts to combine the graph structure with finger vein recognition, but the graph tends to describe relatively certain structural relationships, while the finger vein vascular network structure has strong randomness, and there are large individual differences between different samples. The existing finger vein graph model composition method is rigid, which is not conducive to the description of the randomness of finger veins, and is prone to low efficiency and low recognition accuracy in the later stage of finger vein recognition. Therefore, further research and exploration is needed to find a graph model suitable for the finger vein recognition task, aiming to improve the graph model's ability to describe the randomness of the vascular network and image content, and at the same time, improve the efficiency and accuracy of finger vein recognition. Summary of the invention
[0004] The technical problem to be solved by the present invention is: to provide a finger vein recognition method based on a weighted graph, which can describe the structure of the vascular network and take into account the description of the image content by constructing a finger vein weighted graph, reflecting the local randomness characteristics of the image, and realize the recognition of finger veins based on the finger vein weighted graph, which can effectively improve the recognition efficiency and accuracy.
[0005] In order to solve the above technical problems, the present invention provides a finger vein recognition method based on weighted graph, comprising:
[0006] Acquire a finger vein image, and preprocess the finger vein image to obtain a finger vein blood vessel skeleton image;
[0007] Dividing the finger vein skeleton image into blocks, and using the divided blocks as nodes to generate a node set;
[0008] Obtain the neighbor nodes corresponding to each node, connect the node and its corresponding neighbor nodes to obtain edges, and integrate all edges to form an edge set;
[0009] Obtain the node features corresponding to each node in the node set, calculate and generate a weight set based on the edge set weight according to the preset weight calculation formula;
[0010] Based on the node set, the edge set and the weight set, generate and obtain an adjacency matrix of the finger vein weighted graph based on the finger vein weighted graph;
[0011] The similarities between the adjacency matrix and each preset adjacency matrix in the preset adjacency matrix set are calculated respectively, and based on the similarities, the finger vein weighted graph is identified to obtain a finger vein identification result.
[0012] In a possible implementation, the finger vein skeleton image is divided into blocks, specifically:
[0013] Execute the preset boundary reset-based tile partitioning strategy;
[0014] Wherein, the block division strategy based on boundary resetting is used to divide the finger vein blood vessel skeleton image into a plurality of blocks of preset sizes;
[0015] Obtaining a blood vessel skeleton curve in the image block, calculating a closed area formed by the blood vessel skeleton curve and the image block boundary, and calculating a proportion of the closed area in the image block, and judging whether the image block is divided reasonably based on the proportion result;
[0016] When it is determined that the image block division is unreasonable, the coordinates of the intersection of the blood vessel skeleton curve and the image block boundary are obtained; and the image block is re-divided.
[0017] In a possible implementation, the finger vein skeleton image is divided into blocks, specifically:
[0018] Executing the block partitioning strategy based on adjusting the block center;
[0019] The block division strategy based on adjusting the block center is used to divide the finger vein blood vessel skeleton image into a plurality of blocks of preset sizes to obtain the blood vessel skeleton curves in the blocks;
[0020] A preset point on the blood vessel skeleton curve is selected to determine whether the preset point is an intersection point of the blood vessel skeleton curve. If so, the preset point is used as a new center point of the image block and the image block is re-divided.
[0021] In one possible implementation, the neighbor nodes corresponding to each node are obtained, and the node and its corresponding neighbor nodes are connected to obtain edges, specifically:
[0022] Obtain a one-hop neighbor node corresponding to each node, connect the node and its corresponding one-hop neighbor node, and obtain a first edge;
[0023] Obtain the two-hop neighbor node corresponding to each node, and determine whether the two-hop neighbor node contains the finger vein skeleton. If not, discard the two-hop neighbor node; if yes, connect the node and its corresponding two-hop neighbor node to obtain the second edge.
[0024] In a possible implementation, the node feature of each node in the node set is obtained, specifically:
[0025] The directional energy of each node in the node set at each angle is calculated based on the filter, and the directional energies at each angle are combined and converted into vectors to obtain a directional energy distribution feature vector of each node, and based on the directional energy distribution feature vector, a node feature of each node is obtained.
[0026] The present invention also provides a finger vein recognition device based on weighted graph, comprising: an image preprocessing module, a node set generation module, an edge set generation module, a weight set generation module, a weighted graph generation module and a recognition module;
[0027] The image preprocessing module is used to obtain a finger vein image, preprocess the finger vein image, and obtain a finger vein vascular skeleton image;
[0028] The node set generation module is used to divide the finger vein skeleton image into blocks, and use the divided blocks as nodes to generate a node set;
[0029] The edge set generation module is used to obtain the neighbor nodes corresponding to each node, connect the node and its corresponding neighbor nodes to obtain edges, and integrate all edges to form an edge set;
[0030] The weight set generation module is used to obtain the node features corresponding to each node in the node set, calculate and generate the weight set based on the edge set weight according to a preset weight calculation formula;
[0031] The weighted graph generation module is used to generate a finger vein weighted graph based on the node set, the edge set and the weight set, and obtain an adjacency matrix of the finger vein weighted graph based on the finger vein weighted graph;
[0032] The recognition module is used to respectively calculate the similarity between the adjacency matrix and each preset adjacency matrix in the preset adjacency matrix set, and based on the similarity, recognize the finger vein weighted graph to obtain the finger vein recognition result.
[0033] In a possible implementation, the node set generation module includes a block partitioning unit based on boundary resetting;
[0034] Wherein, the block division strategy unit based on boundary resetting is used to divide the finger vein blood vessel skeleton image into a plurality of blocks of preset sizes;
[0035] The block division strategy unit based on boundary resetting is used to obtain the blood vessel skeleton curve in the block, calculate the closed area formed by the blood vessel skeleton curve and the block boundary, and calculate the proportion of the closed area in the block, and judge whether the block is divided reasonably based on the proportion result;
[0036] The block division strategy unit based on boundary resetting is used to obtain the coordinates of the intersection of the blood vessel skeleton curve and the block boundary when it is determined that the block division is unreasonable; and to re-divide the block.
[0037] In a possible implementation, the node set generation module includes a block partitioning unit based on adjusting the center of the block;
[0038] The block division strategy based on adjusting the block center is used to divide the finger vein blood vessel skeleton image into a plurality of blocks of preset sizes to obtain the blood vessel skeleton curves in the blocks;
[0039] The block division strategy based on adjusting the block center is used to select a preset point on the vascular skeleton curve, determine whether the preset point is an intersection of the vascular skeleton curve, and if so, use the preset point as the new center point of the block and re-divide the block.
[0040] In a possible implementation, the edge set generation module is used to obtain the neighbor nodes corresponding to each node, connect the node and its corresponding neighbor nodes to obtain edges, specifically:
[0041] Obtain a one-hop neighbor node corresponding to each node, connect the node and its corresponding one-hop neighbor node, and obtain a first edge;
[0042] Obtain the two-hop neighbor node corresponding to each node, and determine whether the two-hop neighbor node contains the finger vein skeleton. If not, discard the two-hop neighbor node; if yes, connect the node and its corresponding two-hop neighbor node to obtain the second edge.
[0043] In a possible implementation, the weight set generation module is used to obtain the node feature of each node in the node set, specifically:
[0044] The directional energy of each node in the node set at each angle is calculated based on the filter, and the directional energies at each angle are combined and converted into vectors to obtain a directional energy distribution feature vector of each node, and based on the directional energy distribution feature vector, a node feature of each node is obtained.
[0045] The present invention also provides a terminal device, comprising a processor, a memory, and a computer program stored in the memory and configured to be executed by the processor, wherein when the processor executes the computer program, the weighted graph-based finger vein recognition method as described in any one of the above is implemented.
[0046] The present invention also provides a computer-readable storage medium, which includes a stored computer program, wherein when the computer program is running, the device where the computer-readable storage medium is located is controlled to execute the weighted graph-based finger vein recognition method as described in any one of the above.
[0047] Compared with the prior art, the finger vein recognition method and device based on weighted graph in the embodiment of the present invention have the following beneficial effects:
[0048] By dividing the preprocessed finger vein image, a node set is generated, and the neighbor nodes corresponding to each node in the node set are connected to generate an edge set. Based on the edge set and the node features of each node, the edge set weight is calculated to generate a weight set; by combining the node set, the edge set and the weight set, a finger vein weighted graph is generated, so that the finger veins are recognized based on the similarity between the adjacency matrix corresponding to the finger vein weighted graph and the preset matrix. Compared with the prior art, the present invention can describe the structure of the vascular network and take into account the description of the image content by constructing a finger vein weighted graph, reflecting the local randomness characteristics of the image. Subsequently, the finger veins are recognized only based on the similarity of the calculated adjacency matrix, which can effectively improve the recognition efficiency. BRIEF DESCRIPTION OF THE DRAWINGS
[0049] Figure 1 It is a flow chart of an embodiment of a finger vein recognition method based on a weighted graph provided by the present invention;
[0050] Figure 2 It is a structural schematic diagram of an embodiment of a finger vein recognition device based on a weighted graph provided by the present invention;
[0051] Figure 3 is a schematic diagram of a finger vein image according to an embodiment of the present invention;
[0052] Figure 4 This is a schematic diagram of a skeleton image of a finger vein blood vessel provided by an embodiment of the present invention;
[0053] Figure 5 is a schematic diagram of a block partitioning result based on a block partitioning strategy for adjusting the block center according to an embodiment of the present invention;
[0054] Figure 6 is a schematic diagram of a process of constructing an edge set according to an embodiment of the present invention;
[0055] Figure 7 is a schematic diagram of directional energy distribution characteristics of a block according to an embodiment of the present invention;
[0056] Figure 8 It is a schematic diagram of storing a sparse matrix in row sequence according to an embodiment of the present invention;
[0057] Fig. 9 is a schematic diagram of a block partitioning result of a block partitioning strategy based on boundary resetting according to an embodiment of the present invention;
[0058] Fig.10 It is a schematic diagram of the intersection of a blood vessel skeleton curve and a block boundary according to an embodiment of the present invention. DETAILED DESCRIPTION
[0059] The following will be combined with the accompanying drawings in the present invention to clearly and completely describe the technical solutions in the embodiments of the present invention. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present invention.
[0060] Example 1
[0061] See also Figure 1 , Figure 1 FIG. 1 is a flow chart of an embodiment of a finger vein recognition method based on a weighted graph provided by the present invention. Figure 1 As shown, the method includes steps 101 to 106, which are specifically as follows:
[0062] Step 101: Acquire a finger vein image, and preprocess the finger vein image to obtain a finger vein vascular skeleton image.
[0063] In one embodiment, the finger vein image is preprocessed, wherein the image preprocessing operations include image enhancement, binarization and thinning processing.
[0064] In one embodiment, the acquired finger vein image is enhanced to obtain an enhanced image, the enhanced image is binarized to obtain a binarized image, and the binarized image is refined to obtain a finger vein skeleton image. Figure 3As shown, the skeleton image of the finger vein is as follows Figure 4 shown.
[0065] Step 102: Divide the finger vein skeleton image into blocks, and use the divided blocks as nodes to generate a node set.
[0066] In one embodiment, a block division strategy based on adjusting the block center is executed to divide the finger vein skeleton image into blocks.
[0067] In one embodiment, a block partitioning strategy based on adjusting the center of a block is used to evenly divide the finger vein skeleton image into a plurality of blocks of a preset size; wherein the preset size is h×h. Each divided block is taken as a node to generate a node set; for each node in the node set, obtain the node V i The vascular skeleton curve in the image is tracked and recorded as P = {p1, p2, ..., p N}.
[0068] In one embodiment, a preset point p on the blood vessel skeleton curve is selected. i , where the preset point p i is any point on the vascular skeleton curve, and based on the preset point p i As the center, obtain the neighborhood block with a size of 3×3, and record the pixels of the neighborhood block as {p i,0 , p i,1 ,…,p i,7}.
[0069] In one embodiment, based on a preset blood vessel skeleton detail point determination formula, it is determined whether the preset point is an intersection point of the blood vessel skeleton curve. If so, the preset point is used as a new center point of the node; the blood vessel skeleton detail point determination formula is as follows:
[0070]
[0071] Z i ={p i |N trans (p i )≥6};
[0072]
[0073] Among them, N trans (p i ) represents the i,0 to p i,7 The total number of times the adjacent pixel values change; p i,0 =p i,8 ; When N trans (p i)≥6, representing p i is an intersection point; Z i N trans (p i ) subset; c i ′ is the updated node center.
[0074] In one embodiment, based on the updated node center c i ′, re-divide the block corresponding to the node, specifically, calculate the updated node center c i ′The maximum distance D to the original boundary of the tile, update node V according to the maximum distance D i The size of is 2D×2D, and based on this size, the tiles corresponding to the nodes are re-divided to form a new node set. The tile division result is as follows Figure 5 As shown, the new blocks are obtained after the dotted box part in the figure is re-divided.
[0075] As an example in this embodiment, since N trans (p i ) i There may be multiple elements in {Z K}, but only one center is needed in a node, so Z i Filter the elements in .
[0076] For subset Z i The elements in can be filtered to calculate the subset Z i Each element Z K With node V i The distance d from the geometric center K , select the distance d K The element Z corresponding to the minimum K C is the new center of the tile i , for the subset Z i The other elements in are discarded.
[0077] For subset Z i The elements in can also be filtered to determine whether there are blank blocks in the 3×3 neighborhood blocks. If so, the element Z closest to the blank block is K Assigned to the blank tile as the blank tile V J until Z i The elements in are allocated, and the subset Z is obtained i There are no elements in the distribution, calculate the subset Z i There is no element Z to be allocated in K With node V i The distance d from the geometric center K , select the distance d KThe element Z corresponding to the minimum K C is the new center of the tile i , for the subset Z i The other elements in are discarded.
[0078] In this embodiment, since the positions of the intersections and the blood vessel distribution near the intersections of the finger vein skeletons show large individual differences, but uniform division often destroys the structural integrity of these areas, based on the regular division of the finger vein skeleton image, the blocks are re-divided according to the local structure of the blood vessel skeleton network to construct a node set, so that the local structure division of the finger vein skeleton image is more reasonable, the randomness of the local content of the image is introduced into the node set, and the random description ability of the node set is improved.
[0079] Step 103: Obtain the neighbor nodes corresponding to each node, connect the node and its corresponding neighbor nodes to obtain edges, and integrate all edges to form an edge set.
[0080] In one embodiment, a one-hop neighbor node corresponding to each node is obtained; and the node and its corresponding one-hop neighbor node are connected according to a triangulation method to obtain a first edge.
[0081] In one embodiment, the triangulation method is also improved to obtain the two-hop neighbor node corresponding to each node, and determine whether the two-hop neighbor node contains the finger vein skeleton. If not, the two-hop neighbor node is discarded; if so, the node and its corresponding two-hop neighbor node are connected to obtain the second edge.
[0082] In this embodiment, by improving the triangulation method, the constructed edge set includes both the edge between the node and the one-hop neighbor node and the edge between the node and the two-hop neighbor node containing the finger vein vascular skeleton. The construction process of the edge set is as follows: Figure 6 As shown, it avoids the situation in the existing triangulation method where there are unconnected nodes but the vascular network they contain has a significant structural relationship, further reflects the local differences in the distribution of the finger vein vascular network, introduces the description of structural randomness in the edge set construction, and increases the differences in the graph models of samples of different categories.
[0083] Step 104: Obtain the node features corresponding to each node in the node set, calculate and generate a weight set based on the edge set weight according to a preset weight calculation formula.
[0084] In one embodiment, a Steerable filter is used to extract directional energy distribution features of a block as node features of a node.
[0085] In one embodiment, the general formula of the Steerable filter is:
[0086]
[0087] Where k(θ) is the interpolation function; f(x, y) is an arbitrary filter function; θ is the angle of the Steerable filter; θ j is the rotation angle of the basic filter in the basic filter group, and N represents the number of basic filters.
[0088] In one embodiment, the calculation formula of the directional energy of a block at a certain angle is as follows:
[0089] E(θ)=(h θ *I i ) 2 ;
[0090]
[0091] Among them, h θ For Steerable filter, I i The ith tile in the image, '*' represents the convolution operation, X and Y are the filter sizes, and the filter size is the same as the tile size.
[0092] In one embodiment, based on the calculation formula of the directional energy of the block at a certain angle, the directional energy of the block at each angle is calculated, and the directional energy at each angle is combined into a vector to obtain the directional energy distribution feature vector of the block. The directional energy distribution feature diagram of the block is as follows: Figure 7 As shown in the figure, it can be seen from the schematic diagram that the directional energy distribution feature can more completely and accurately describe the texture curve structure in the block; and the directional energy distribution feature vector of the block is used as the node feature of the node. Among them, the directional energy distribution feature vector of the block is as follows:
[0093] f i ={E(1),E(2),…,E(θ),…,E(360)}.
[0094] In one embodiment, since the image contents contained in the nodes obtained by dividing the finger vein image are different from each other, in order to measure the local difference of the image content, the image feature W(v i ), where the image feature W(v i ) is defined as follows:
[0095] W(v i )=1;
[0096] W(v i )=AAD(B i );
[0097]
[0098] Among them, AAD is the average absolute deviation operator, B i is the enhancement result of the block corresponding to the i-th node. If W(v i )=1 means that the content of the local image corresponding to the node is not considered.
[0099] In one embodiment, in order to more reliably describe the local differences of the vascular network structure and the image content, the weight value of each edge connecting the nodes is calculated by a preset weight calculation formula; the preset weight calculation formula is as follows:
[0100] W(v i ,v j |e ij ∈E)=W(v i )*S(v i ,v j );
[0101]
[0102] Among them, W(v i ) represents node v i The corresponding image feature, S(v i ,v j ) represents node v i and one-hop neighbor node v j The similarity of the corresponding image features, S(v i ,v j ) can also represent node v i and two-hop neighbor node v j The similarity of the corresponding image features, f i , f j Represents v i 、v j The corresponding block feature, L is the feature length, and σ is a fixed value.
[0103] In one embodiment, the weight value corresponding to each edge in the edge set is calculated, and the weight values corresponding to each edge are aggregated to generate a weight set.
[0104] Step 105: generating an adjacency matrix of the finger vein weighted graph based on the node set, the edge set and the weight set;
[0105] In one embodiment, the finger vein weighted graph G(V, E, W) is generated by combining the node set, edge set and weight set generated in the above steps, where V, E, W represent the node set, edge set and weight set respectively. V = {V1, V2, V3, ..., V n}, E = [e ij ]n×n,W=[wij ]n×n, where i≠j. The elements in W are non-negative real numbers, when w i,j =w j,i When , the weight function is symmetric and the graph is an undirected graph, otherwise it is a directed graph.
[0106] In one embodiment, the adjacency matrix not only describes the connection relationship between nodes in the finger vein weighted graph, but also needs to describe the weight of the edge. The adjacency matrix of the generated finger vein weighted graph is as follows:
[0107]
[0108] Among them, A w is the adjacency matrix of the finger vein weighted graph, w i,j Represents the weight value of the edge. The number of rows and columns of the weighted adjacency matrix is the same as the number of nodes in the finger venous skeleton graph. If the node v i With node v j If there is an edge connection, then A w The value w at the i-th row and j-th column of i,j It is not 0, but the weight value of the edge, that is, w in the weight set W i,j .
[0109] In one embodiment, since there is a connection relationship only between adjacent nodes in the generated finger vein weighted graph, most of the elements in the adjacency matrix are 0, and the adjacency matrix is a sparse matrix.
[0110] Step 106: respectively calculating the similarity between the adjacency matrix and each preset adjacency matrix in the preset adjacency matrix set, and based on the similarity, identifying the finger vein weighted graph to obtain a finger vein identification result.
[0111] In one embodiment, the preset adjacency matrix set is composed of adjacency matrices corresponding to the classified finger vein weighted graphs, wherein each preset adjacency matrix in the preset adjacency matrix set includes a fixed finger vein category label.
[0112] In one embodiment, the identification of the weighted graph G(V, E, W) of finger veins is complex and time-consuming, so the similarity of the adjacency matrix is used to simplify the matching problem of the weighted graph:
[0113]
[0114] in, Represents the adjacency matrix A of the weighted graph of finger veins w The mean of Represents a single classified finger vein weighted graph B w The mean of the corresponding adjacency matrix, n is the number of nodes in the finger vein weighted graph.
[0115] In one embodiment, since the adjacency matrix of the finger vein weighted graph is a sparse matrix, in order to pay more attention to the non-zero elements of the adjacency matrix when calculating the similarity of the adjacency matrix, the accuracy of subsequent finger vein recognition is improved. In this embodiment, the sparse matrix is compressed by row sequence storage (Compress row storage, CRS), wherein the schematic diagram of the sparse matrix stored in row sequence is as follows: Figure 8 As shown, vector A in the figure stores the non-zero elements of the matrix, and vectors I and J store the row order and column order corresponding to the non-zero elements respectively.
[0116] In one embodiment, the adjacency matrix is compressed based on the CRS method. Due to the limitation of the composition method, the adjacency matrix A w For the non-zero elements that need to be concerned, the positions of them are fixed and known, so the vectors I and J can be omitted in the application, and the vector A storing the non-zero elements of the matrix is used instead of the adjacency matrix A in the identification. w Calculate the similarity M between the adjacency matrix and each preset adjacency matrix in the preset adjacency matrix set s , which can effectively improve the efficiency and accuracy of recognition.
[0117] In one embodiment, after calculating the similarity between the adjacency matrix and each preset adjacency matrix in the preset adjacency matrix set, a similarity result data set is generated, and the maximum value in the similarity result data set is obtained. It is determined whether the maximum value is greater than a preset threshold. If so, the finger vein category label of the preset adjacency matrix corresponding to the maximum value is set as the finger vein category label of the current adjacency matrix, and the recognition result of the finger vein is output to realize the recognition of the finger vein; if not, a new finger vein category label is customized for the adjacency matrix.
[0118] Example 2
[0119] With respect to Embodiment 1, the difference in step 102 is that the manner of dividing the finger vein skeleton image into blocks is different.
[0120] Step 102: Divide the finger vein skeleton image into blocks, and use the divided blocks as nodes to generate a node set.
[0121] In one embodiment, a block division strategy based on boundary resetting is executed to divide the finger vein skeleton image into blocks.
[0122] In one embodiment, a block partitioning strategy based on boundary resetting is used to evenly divide the finger vein skeleton image into a plurality of blocks of preset sizes, and use the divided blocks as nodes to generate a node set, wherein the preset size is h×h.
[0123] In one embodiment, the blood vessel skeleton curve in the image block is obtained, that is, the blood vessel skeleton curve in the node is obtained, and the blood vessel skeleton curve in the node is tracked and recorded as {l1, ..., l i ,…,l n}, take the node center as the origin, and i Perform curve integration, calculate the closed area formed by the blood vessel skeleton curve and the block boundary, and calculate the proportion of the closed area in the block.
[0124]
[0125]
[0126]
[0127] Among them, n1 and n2 are the vascular skeleton curve l i The intersection points with the block boundary are marked with coordinates (x1, y1) and (x2, y2). The schematic diagram of the intersection points of the vascular skeleton curve and the block boundary is as follows: Fig.10 As shown; the vertex of the block in the closed area formed by the vascular skeleton curve and the block boundary is taken as the coordinate origin, L1 is the distance from the coordinate origin to the vascular skeleton curve on the x-axis, and L2 is the distance from the coordinate origin to the vascular skeleton curve on the y-axis; S i is the vascular skeleton curve l i The enclosed area formed with the tile boundary, r i is the proportion of the enclosed area in the block.
[0128] In one embodiment, the proportion r i Take an experience value and set the proportion r i Judge with experience value, when the proportion r i When it is less than the empirical value, the vascular skeleton curve l i The segmentation is unreasonable, and then judge t i Is it greater than 1, that is, is the distance L1 from the coordinate origin on the x-axis to the vascular skeleton curve greater than the distance L2 from the coordinate origin on the y-axis to the vascular skeleton curve? If so, the vascular skeleton curve l i to another block connected to the x-axis of the current block; if not, the vascular skeleton curve l i Divide it into another block connected to the y-axis of the current block to realize the redivision of the block and generate a new node set, such as Fig. 9 As shown in the figure, the dotted box part is the new block obtained after re-division.
[0129] In this embodiment, due to the uncertainty of the distribution and direction of the finger vein vascular network, when it is evenly divided, there is an unreasonable division of the vascular network in the node concentration. A block division strategy based on boundary reset is adopted to redefine the block boundaries according to the network skeleton curve contained in the node, so that the local division of the vascular network tends to be reasonable. Since the network structure is random, the corresponding constructed node set is also random.
[0130] In summary, the finger vein recognition method based on weighted graph provided by Example 1 and Example 2 first re-divides the finger vein skeleton image obtained after preprocessing according to the local structure-guided blocks of the vascular skeleton network to construct a node set; generates an edge set according to the node connotation and the node position relationship; and jointly measures the edge weight according to the local image content change and the feature similarity of adjacent blocks. The weighted graph jointly describes the structural randomness of the finger vein network through the generation of nodes, the connection of edges, and the similarity measurement of adjacent block features; and describes the differential changes in image content through the re-division of blocks and the measurement of local block content changes. Compared with the prior art, the method of the present invention changes the construction method of the node set, edge set, and weight function, and can better describe the randomness contained in the finger vein network and image content.
[0131] Example 3
[0132] See also Figure 2 , Figure 2 FIG. 1 is a flow chart of an embodiment of a finger vein recognition method based on a weighted graph provided by the present invention. Figure 2 As shown, the device includes an image preprocessing module 201, a node set generation module 202, an edge set generation module 203, a weight set generation module 204, a weighted graph generation module 205 and a recognition module 206, which are specifically as follows:
[0133] An image preprocessing module 201 is used to obtain a finger vein image, and preprocess the finger vein image to obtain a finger vein blood vessel skeleton image;
[0134] A node set generation module 202 is used to divide the finger vein skeleton image into blocks, and use the divided blocks as nodes to generate a node set;
[0135] The edge set generation module 203 is used to obtain the neighbor nodes corresponding to each node, connect the node and its corresponding neighbor nodes to obtain edges, and integrate all edges to form an edge set;
[0136] The weight set generation module 204 is used to obtain the node features corresponding to each node in the node set, calculate and generate the weight set based on the edge set weight according to the preset weight calculation formula;
[0137] A weighted graph generation module 205, configured to generate a finger vein weighted graph based on the node set, the edge set and the weight set, and obtain an adjacency matrix of the finger vein weighted graph;
[0138] The recognition module 206 is used to respectively calculate the similarity between the adjacency matrix and each preset adjacency matrix in the preset adjacency matrix set, and recognize the finger vein weighted graph based on the similarity to obtain a finger vein recognition result.
[0139] In one embodiment, the node set generation module includes a block division unit based on adjusting the block center; wherein the block division strategy based on adjusting the block center is used to divide the finger vein vascular skeleton image into multiple blocks of preset sizes and obtain the vascular skeleton curve in the block; the block division strategy based on adjusting the block center is used to select a preset point on the vascular skeleton curve, determine whether the preset point is an intersection of the vascular skeleton curve, and if so, use the preset point as the new center point of the block and re-divide the block.
[0140] In one embodiment, the edge set generation module 203 is used to obtain the neighbor nodes corresponding to each node, connect the node and its corresponding neighbor nodes, and obtain edges. Specifically, the one-hop neighbor node corresponding to each node is obtained, and the node and its corresponding one-hop neighbor node are connected to obtain the first edge; the two-hop neighbor node corresponding to each node is obtained, and it is determined whether the two-hop neighbor node contains the finger vein vascular skeleton. If not, the two-hop neighbor node is discarded; if yes, the node and its corresponding two-hop neighbor node are connected to obtain the second edge.
[0141] In one embodiment, the weight set generation module 204 is used to obtain the node characteristics of each node in the node set. Specifically, the directional energy of each node in the node set at each angle is calculated based on a filter, and the directional energies at each angle are merged and converted into vectors to obtain the directional energy distribution feature vector of each node, and the node characteristics of each node are obtained based on the directional energy distribution feature vector.
[0142] Those skilled in the art can clearly understand that, for the convenience and brevity of description, the specific working process of the device described above can refer to the corresponding process in the aforementioned method embodiment, and will not be repeated here.
[0143] Example 4
[0144] Regarding the third embodiment, the difference with respect to the node set generation module 202 is that the structure of the node set generation module 202 is different.
[0145] In this embodiment, the node set generation module includes a block division unit based on boundary resetting; wherein the block division strategy unit based on boundary resetting is used to divide the finger vein blood vessel skeleton image into a plurality of blocks of preset sizes;
[0146] The block division strategy unit based on boundary resetting is used to obtain the blood vessel skeleton curve in the block, calculate the closed area formed by the blood vessel skeleton curve and the block boundary, and calculate the proportion of the closed area in the block, and judge whether the block is divided reasonably based on the proportion result;
[0147] The block division strategy unit based on boundary resetting is used to obtain the coordinates of the intersection of the blood vessel skeleton curve and the block boundary when it is determined that the block division is unreasonable; and to re-divide the block.
[0148] Those skilled in the art can clearly understand that, for the convenience and brevity of description, the specific working process of the device described above can refer to the corresponding process in the aforementioned method embodiment, and will not be repeated here.
[0149] It should be noted that the above-mentioned embodiment of the finger vein recognition device based on the weighted graph is only illustrative, wherein the modules described as separate components may or may not be physically separated, and the components displayed as modules may or may not be physical units, that is, they may be located in one place, or may be distributed on multiple network units. Some or all of the modules may be selected according to actual needs to achieve the purpose of the present embodiment.
[0150] Based on the above-mentioned embodiment of the weighted graph-based finger vein recognition method, another embodiment of the present invention provides a weighted graph-based finger vein recognition terminal device, and the weighted graph-based finger vein recognition terminal device includes a processor, a memory, and a computer program stored in the memory and configured to be executed by the processor. When the processor executes the computer program, the weighted graph-based finger vein recognition method of any embodiment of the present invention is implemented.
[0151] Exemplarily, in this embodiment, the computer program may be divided into one or more modules, which are stored in the memory and executed by the processor to complete the present invention. The one or more modules may be a series of computer program instruction segments capable of completing specific functions, which are used to describe the execution process of the computer program in the weighted graph-based finger vein recognition terminal device.
[0152] The weighted graph-based finger vein recognition terminal device may be a computing device such as a desktop computer, a notebook, a PDA, a cloud server, etc. The weighted graph-based finger vein recognition terminal device may include, but is not limited to, a processor and a memory.
[0153] The processor may be a central processing unit (CPU), other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASIC), field-programmable gate arrays (FPGA) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components, etc. The general-purpose processor may be a microprocessor or any conventional processor, etc. The processor is the control center of the weighted graph-based finger vein recognition terminal device, and uses various interfaces and lines to connect the various parts of the entire weighted graph-based finger vein recognition terminal device.
[0154] The memory can be used to store the computer program and / or module, and the processor realizes various functions of the weighted graph-based finger vein recognition terminal device by running or executing the computer program and / or module stored in the memory, and calling the data stored in the memory. The memory can mainly include a program storage area and a data storage area, wherein the program storage area can store an operating system, at least one application required for a function, etc.; the data storage area can store data created according to the use of the mobile phone, etc. In addition, the memory can include a high-speed random access memory, and can also include a non-volatile memory, such as a hard disk, a memory, a plug-in hard disk, a smart memory card (Smart Media Card, SMC), a secure digital (Secure Digital, SD) card, a flash card (Flash Card), at least one disk storage device, a flash memory device, or other volatile solid-state storage devices.
[0155] Based on the above-mentioned embodiment of the weighted graph-based finger vein recognition method, another embodiment of the present invention provides a storage medium, wherein the storage medium includes a stored computer program, wherein when the computer program is running, the device where the storage medium is located is controlled to execute the weighted graph-based finger vein recognition method of any embodiment of the present invention.
[0156] In this embodiment, the storage medium is a computer-readable storage medium, and the computer program includes computer program code, which may be in source code form, object code form, executable file or some intermediate form, etc. The computer-readable medium may include: any entity or device capable of carrying the computer program code, recording medium, USB flash drive, mobile hard disk, magnetic disk, optical disk, computer memory, read-only memory (ROM), random access memory (RAM), electric carrier signal, telecommunication signal and software distribution medium, etc. It should be noted that the content contained in the computer-readable medium may be appropriately increased or decreased according to the requirements of legislation and patent practice in the jurisdiction. For example, in some jurisdictions, according to legislation and patent practice, computer-readable media do not include electric carrier signals and telecommunication signals.
[0157] In summary, the present invention provides a finger vein recognition method and device based on a weighted graph, which generates a node set by dividing the preprocessed finger vein vascular skeleton image into blocks; and connects each node in the node set and its corresponding neighbor nodes to form an edge set; based on the edge set and the node features corresponding to the acquired nodes, the edge set weights are calculated to generate a weight set; the generated node set, edge set and weight set are used to construct a finger vein weighted graph, and the finger veins are recognized based on the similarity between the adjacency matrix of the finger vein weighted graph and the preset adjacency matrix, so as to obtain the recognition result of the finger veins. Compared with the prior art, the technical solution provided by the present invention can describe the structure of the vascular network and take into account the description of the image content by constructing a finger vein weighted graph, reflecting the local randomness characteristics of the image, and subsequently only based on the similarity of the calculated adjacency matrix to realize the recognition of the finger veins, which can effectively improve the recognition efficiency.
[0158] The above is only a preferred embodiment of the present invention. It should be pointed out that for ordinary technicians in this technical field, several improvements and substitutions can be made without departing from the technical principles of the present invention. These improvements and substitutions should also be regarded as the scope of protection of the present invention.
Claims
1. A finger vein recognition method based on weighted graph, characterized in that: include: Acquire a finger vein image, and preprocess the finger vein image to obtain a finger vein blood vessel skeleton image; Dividing the finger vein skeleton image into blocks, and using the divided blocks as nodes to generate a node set; Obtain the neighbor nodes corresponding to each node, connect the node and its corresponding neighbor nodes to obtain edges, and integrate all edges to form an edge set; Obtain the node features corresponding to each node in the node set, calculate and generate a weight set based on the edge set weight according to the preset weight calculation formula; Based on the node set, the edge set and the weight set, generate and obtain an adjacency matrix of the finger vein weighted graph based on the finger vein weighted graph; Respectively calculating the similarity between the adjacency matrix and each preset adjacency matrix in the preset adjacency matrix set, and based on the similarity, identifying the finger vein weighted graph to obtain a finger vein identification result; The block division of the finger vein skeleton image is specifically as follows: Executing a preset block partitioning strategy based on boundary resetting; or executing the block partitioning strategy based on adjusting the block center; Wherein, the block division strategy based on boundary resetting is used to divide the finger vein blood vessel skeleton image into a plurality of blocks of preset sizes; Obtaining a blood vessel skeleton curve in the image block, calculating a closed area formed by the blood vessel skeleton curve and the image block boundary, and calculating a proportion of the closed area in the image block, and judging whether the image block is divided reasonably based on the proportion result; When it is determined that the image block division is unreasonable, obtaining the coordinates of the intersection of the blood vessel skeleton curve and the image block boundary; Re-dividing the image block; The block division strategy based on adjusting the block center is used to divide the finger vein blood vessel skeleton image into a plurality of blocks of preset sizes to obtain the blood vessel skeleton curves in the blocks; A preset point on the blood vessel skeleton curve is selected to determine whether the preset point is an intersection point of the blood vessel skeleton curve. If so, the preset point is used as a new center point of the image block and the image block is re-divided.
2. A finger vein recognition method based on weighted graph as claimed in claim 1, characterized in that: Get the neighbor nodes corresponding to each node, connect the node and its corresponding neighbor nodes to get the edge, specifically: Obtain a one-hop neighbor node corresponding to each node, connect the node and its corresponding one-hop neighbor node, and obtain a first edge; Obtain the two-hop neighbor node corresponding to each node, and determine whether the two-hop neighbor node contains the finger vein skeleton. If not, discard the two-hop neighbor node; if yes, connect the node and its corresponding two-hop neighbor node to obtain the second edge.
3. The finger vein recognition method based on weighted graph as claimed in claim 1, characterized in that: Get the node features of each node in the node set, specifically: The directional energy of each node in the node set at each angle is calculated based on the filter, and the directional energies at each angle are combined and converted into vectors to obtain a directional energy distribution feature vector of each node, and based on the directional energy distribution feature vector, a node feature of each node is obtained.
4. A finger vein recognition device based on weighted graph, characterized in that: include: An image preprocessing module, a node set generation module, an edge set generation module, a weight set generation module, a weighted graph generation module and a recognition module; The image preprocessing module is used to obtain a finger vein image, preprocess the finger vein image, and obtain a finger vein vascular skeleton image; The node set generation module is used to divide the finger vein skeleton image into blocks, and use the divided blocks as nodes to generate a node set; The edge set generation module is used to obtain the neighbor nodes corresponding to each node, connect the node and its corresponding neighbor nodes to obtain edges, and integrate all edges to form an edge set; The weight set generation module is used to obtain the node features corresponding to each node in the node set, calculate and generate the weight set based on the edge set weight according to a preset weight calculation formula; The weighted graph generation module is used to generate a finger vein weighted graph based on the node set, the edge set and the weight set, and obtain an adjacency matrix of the finger vein weighted graph based on the finger vein weighted graph; The recognition module is used to respectively calculate the similarity between the adjacency matrix and each preset adjacency matrix in the preset adjacency matrix set, and recognize the finger vein weighted graph based on the similarity to obtain a finger vein recognition result; The node set generation module includes a block partitioning unit based on boundary resetting or a block partitioning unit based on adjusting the center of a block; Wherein, the block division strategy unit based on boundary resetting is used to divide the finger vein blood vessel skeleton image into a plurality of blocks of preset sizes; The block division strategy unit based on boundary resetting is used to obtain the blood vessel skeleton curve in the block, calculate the closed area formed by the blood vessel skeleton curve and the block boundary, and calculate the proportion of the closed area in the block, and judge whether the block is divided reasonably based on the proportion result; The block division strategy unit based on boundary resetting is used to obtain the coordinates of the intersection of the blood vessel skeleton curve and the block boundary when it is determined that the block division is unreasonable; and to re-divide the block; The block division strategy based on adjusting the block center is used to divide the finger vein blood vessel skeleton image into a plurality of blocks of preset sizes to obtain the blood vessel skeleton curves in the blocks; The block division strategy based on adjusting the block center is used to select a preset point on the vascular skeleton curve, determine whether the preset point is an intersection of the vascular skeleton curve, and if so, use the preset point as the new center point of the block and re-divide the block.
5. A terminal device, characterized in that: The invention comprises a processor, a memory and a computer program stored in the memory and configured to be executed by the processor, wherein when the processor executes the computer program, the weighted graph-based finger vein recognition method according to any one of claims 1 to 3 is implemented.
6. A computer-readable storage medium, characterized in that: The computer-readable storage medium includes a stored computer program, wherein when the computer program is executed, the device where the computer-readable storage medium is located is controlled to execute the weighted graph-based finger vein recognition method according to any one of claims 1 to 3.
Citation Information
Patent Citations
Vascular network restoration method based on a finger vein image
CN109522842A
Finger vein recognition method and device and storage medium
CN111950406A