Label identification method

The tag recognition method based on dynamic matching and conflict feature generation solves the problem of low tag recognition efficiency in high-density scenarios and achieves more efficient tag recognition and resource utilization.

CN120805948APending Publication Date: 2025-10-17GUANGDONG UNIV OF TECH
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510784113.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-06-12
Publication Date
2025-10-17

AI Technical Summary

Technical Problem

Existing tag recognition technology has a significant increase in query times in high-density scenarios, is inefficient, and cannot dynamically adjust conflict handling, resulting in a waste of communication resources.

Method used

A tag recognition method is adopted to generate a tag set through first rule matching, calculate tag conflict features using the second rule, generate a query string, and remove the identified tags when the termination condition is met to avoid redundant queries.

Benefits of technology

It reduces the number of queries, improves tag recognition efficiency, and reduces the waste of communication resources, especially in large-scale tag environments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120805948A_ABST
    Figure CN120805948A_ABST
Patent Text Reader

Abstract

The invention discloses a tag identification method, and relates to the technical field of RFID tag identification. The method comprises the following steps: acquiring a to-be-identified tag set; creating and initializing a query queue; the query queue comprises a query character string; selecting a first query character string in the query queue as a first query character string; popping the first query character string out of a query queue; according to the first query character string and a to-be-identified tag set, matching by using a first rule to obtain a first tag set; judging whether a first termination condition is met or not according to the first label set and the first query character string; if the first termination condition is met, the tags in the first tag set are identified tags; matching by utilizing a second rule according to the first query character string and a first label set to obtain a label conflict feature; generating one or more query character strings according to the first query character string and the label conflict feature, and pressing the generated query character strings into a query queue; and repeatedly executing until the query queue is empty, and taking all the identified tags as final identification tags. The method is high in label identification efficiency.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of RFID, and more specifically, to a tag identification method. Background Art

[0002] With the development of technology, tags are increasingly used in various scenarios. Faced with an increasing number of tags, tag recognition has become a key point in the tag application process.

[0003] Traditional tag identification technologies handle tag conflicts bit by bit. Each time a conflict is detected, only a single conflicting bit is selected for splitting (for example, prioritizing the leftmost conflicting bit), generating two sub-query strings that are queued (for example, replacing the conflicting bit * with 0 and 1). This bit-by-bit binary tree structure causes the number of queries to increase linearly with the number of conflicting bits. This significantly increases in efficiency in high-density tag scenarios. Furthermore, traditional tag identification technologies cannot dynamically adjust conflict handling based on actual conditions. Regardless of whether conflicts are evenly distributed, traditional tag identification technologies use a single-bit splitting approach, resulting in redundant queries when tags are concentrated or unevenly distributed. For example, if multiple tags have highly similar prefixes, traditional tag identification technologies must examine subsequent bits bit by bit, preventing them from quickly splitting the tag set. Furthermore, traditional tag identification technologies still require sub-queries even when the remaining conflicting bits can uniquely identify the tag. For example, if the remaining query string is 10*1 (only the third bit is a wildcard), the BQT algorithm must send two additional queries (1001 and 1011) to identify the two tags. This design leads to a waste of communication resources, which accumulates significantly, especially when the number of tags is large.

[0004] The prior art discloses a multi-tag dynamic bit arbitration anti-collision method for RFID systems. This method uses an 8-bit register in the tag to store the tag's collision position information during the identification process. A collision position stack, a prefix stack, and a temporary memory are set up in the reader's memory unit to record information during the collision process. The method first initializes and queries the tag's entire identification code; then queries the collision bit bit by bit and records the collision bit information. The tag is then identified and the next batch of active tags is determined based on a standard, ultimately completing the identification of all tags. This method queries tags bit by bit, resulting in a linear increase in query times as the number of collision bits increases, resulting in low efficiency. Summary of the Invention

[0005] The present invention addresses the drawback of low tag recognition efficiency in the prior art and provides a tag recognition method that has the characteristic of high tag recognition efficiency.

[0006] The primary purpose of the present invention is to solve the above technical problems, and the technical solutions of the present invention are as follows: A label identification method, comprising: S1: obtaining a set of to-be-identified labels; creating and initializing a query queue; the query queue includes a query string; S2: selecting a first query string in the query queue as a first query string; and popping the first query string from the query queue; S3: obtaining a first label set by using a first rule matching according to the first query string and the set of to-be-identified labels; S4: judging whether a first termination condition is met according to the first label set and the first query string; if the first termination condition is met, the labels in the first label set are identified labels, the labels in the first label set are removed from the set of to-be-identified labels, and step S7 is executed; otherwise, step S5 is executed; S5: obtaining a label conflict feature by using a second rule matching according to the first query string and the first label set; S6: generating one or more query strings according to the first query string and the label conflict feature, and pushing the generated query strings into the query queue; S7: repeatedly executing steps S2-S6 until the query queue is empty, and taking all the identified labels as final identified labels.

[0007] Further, the first query string includes one or more combinations of a wildcard, a 0 character and a 1 character.

[0008] Further, in step S3, obtaining the first label set by using the first rule matching according to the first query string and the set of to-be-identified labels, comprises: S301: selecting a label in the set of to-be-identified labels as a first label; S302: matching bits without wildcards in the first query string with corresponding bits in the first label to obtain a first conflict number; S303: judging whether the first conflict number is 0; if the first conflict number is 0, the first label is put into the first label set; S304: selecting another label in the set of to-be-identified labels as a new first label, and repeating steps S302-S303 until all the labels in the set of to-be-identified labels are selected.

[0009] Further, the first termination condition is as follows:

[0010] k represents the number of bits of wildcards in the first query string.

[0011] Further, in step S5, according to the first query string, the first label set, and the second rule, a label conflict feature is obtained by matching, including: S501: selecting one bit containing a wildcard in the first query string as a first bit; S502: counting values of bits corresponding to the first bit in the first label set as a plurality of first bit values; S503: calculating a first bit conflict frequency according to the plurality of first bit values; and putting the first bit, the first bit values, and the first bit conflict frequency into a conflict feature set; S504: selecting another bit containing a wildcard in the first query string as a new first bit, and repeating steps S502-S503 until all bits containing wildcards in the first query string are selected; S505: calculating a conflict variance and a conflict threshold according to the conflict feature set; S506: determining whether the conflict variance is less than the conflict threshold; if the conflict variance is less than the conflict threshold, selecting a second preset number of bits with the highest conflict frequency in the conflict feature set as combination generation bits; otherwise, selecting a third preset number of bits with the highest conflict frequency in the conflict feature set as combination generation bits; S507: selecting bits with a conflict frequency of 0 in the conflict feature set as non-conflict bits; S508: taking the combination generation bits, the non-conflict bits, and values corresponding to the non-conflict bits as label conflict features.

[0012] Further, the calculation formula of the conflict variance is as follows:

[0013] k represents the number of bits containing wildcards in the first query string, represents the mean value of the conflict frequency, represents the conflict frequency of the i-th bit.

[0014] Further, the calculation formula of the conflict threshold is as follows:

[0015] represents a threshold coefficient, represents the mean value of the conflict frequency.

[0016] Further, in step S6, according to the first query string and the label conflict features, one or more query strings are generated, including: S601: generating a second query string according to the non-conflict bits and values corresponding to the non-conflict bits; S602: generating a plurality of one or more query strings according to the second query string and the combination generation bit.

[0017] A label identification system comprises: A queue creation module: obtaining a set of labels to be identified; creating and initializing a query queue; the query queue comprising a query string; A string selection module: selecting a first query string in the query queue as a first query string; and popping the first query string out of the query queue; A first rule matching module: obtaining a first label set by using first rule matching according to the first query string and the set of labels to be identified; A label judgment module: judging whether a first termination condition is met according to the first label set and the first query string; if the first termination condition is met, the labels in the first label set are identified labels, the labels in the first label set are removed from the set of labels to be identified, and a loop module is executed; otherwise, a second rule matching module is executed; The second rule matching module: obtaining a label conflict feature by using a second rule matching according to the first query string and the first label set; A string generation module: generating one or more query strings according to the first query string and the label conflict feature, and pushing the generated query strings into the query queue; The loop module: repeatedly executed until the query queue is empty, and all identified labels are final identified labels.

[0018] A computer readable storage medium comprising a label identification method program, wherein the label identification method program is executed by a processor to implement the steps of the label identification method.

[0019] Compared with the prior art, the present application has the following advantages: The present application uses first rule matching to obtain a first label set, and uses a second rule matching according to the first query string and the first label set to obtain a label conflict feature; thereby generating one or more query strings; the method generates sub-queries according to the label conflict feature in the same set, so that the number of queries does not increase rapidly with the increase of the number of conflict bits.

[0020] At the same time, by judging whether a first termination condition is met and removing successfully identified labels from the set of labels to be identified, in the case of uniquely determining labels, sub-queries do not need to be generated for re-querying, thereby reducing the total number of queries.

[0021] In summary, the present application has a low number of queries and high efficiency of label identification. BRIEF DESCRIPTION OF DRAWINGS

[0022] Figure 1 A flow chart of a tag identification method provided for embodiment 1.

[0023] Figure 2 A flow chart of matching using a first rule provided for embodiment 1.

[0024] Figure 3 A flow chart of matching using a second rule provided for embodiment 1.

[0025] Figure 4 A curve graph of the relationship between a conflict threshold and a number of queries provided for embodiment 1.

[0026] Figure 5 A flow chart of generating one or more query strings provided for embodiment 1.

[0027] Figure 6 A schematic diagram of generating a query string provided for embodiment 1.

[0028] Figure 7 A line graph of the number of queries and the number of tags provided for embodiment 1.

[0029] Figure 8 A line graph of the communication overhead and the number of tags provided for embodiment 1.

[0030] Figure 9 A line graph of the throughput and the number of tags provided for embodiment 1. DETAILED DESCRIPTION

[0031] The drawings are only used for illustrative purposes and should not be understood as limiting the patent; In order to better illustrate the embodiments, some components in the drawings may be omitted, enlarged or reduced, and do not represent the actual size of the product; It is understandable that some well-known structures and their descriptions in the drawings may be omitted for those skilled in the art.

[0032] The technical solutions of the present application will be further described below in combination with the drawings and embodiments.

[0033] Embodiment 1 As shown in the drawings, a tag identification method comprises: Figure 1 S1: obtaining a set of tags to be identified; creating and initializing a query queue; the query queue includes a query string; S2: selecting the first query string in the query queue as the first query string; and popping the first query string out of the query queue; S3: selecting the first rule from the rule set; and matching the first query string with the first rule; S3: According to the first query string and the tag set to be identified, a first tag set is obtained by matching using a first rule; S4: Determine whether a first termination condition is met based on the first tag set and the first query string; if the first termination condition is met, the tags in the first tag set are identified tags, and the tags in the first tag set are removed from the tag set to be identified, and execute step S7; otherwise, execute step S5; S5: Matching the first query string and the first tag set using a second rule to obtain a tag conflict feature; S6: Generate one or more query strings based on the first query string and the tag conflict feature, and push the generated query strings into a query queue; S7: Repeat steps S2 to S6 until the query queue is empty, and take all identified tags as the final identified tags.

[0034] In a specific embodiment, the initialization query queue in step S1 includes a character string containing all wildcard characters.

[0035] In a specific embodiment, the first termination condition may be determined as one tag remaining in the first tag set.

[0036] Furthermore, the first query string includes one or more combinations of wildcards, zero characters, and one character.

[0037] Furthermore, if Figure 2 As shown, in step S3, according to the first query string and the tag set to be identified, a first tag set is obtained by matching using a first rule, including: S301: Select a tag from the set of tags to be identified as the first tag; S302: Match the bits in the first query string that do not contain wildcard characters with the corresponding bits in the first tag to obtain a first number of conflicts; S303: Determine whether the first conflict number is 0; if the first conflict number is 0, add the first tag to the first tag set; S304: Select another tag in the tag set to be identified as a new first tag, and repeat steps S302 to S303 until all tags in the tag set to be identified are selected.

[0038] It should be noted that the number of conflicts is the minimum number of characters in a certain position in the tag. For example, in a set of tags to be identified, if a certain position in all tags has 10 zero characters and 6 ones, then the number of conflicts is 6, and the conflicting value is 0 characters.

[0039] It should be noted that by introducing the above early termination mechanism, the identification is directly completed when the remaining conflict bits can uniquely determine the label, avoiding the step of redundant query.

[0040] Further, the first termination condition is as follows:

[0041] k represents the number of wildcard bits in the first query string.

[0042] It should be noted that if the above condition is met, it means that the permutation and combination of the new query string can cover all labels in the first label set. Therefore, all labels in the first label set can be correctly identified.

[0043] Further, as shown in Figure 3 In step S5, according to the first query string and the first label set, the second rule is used for matching to obtain label conflict features, including: S501: Select a wildcard-containing bit in the first query string as the first bit; S502: Count the values of the bit corresponding to the first bit in the first label set as a plurality of first bit values; S503: Calculate the first bit conflict frequency according to the plurality of first bit values; put the first bit, the first bit value, and the first bit conflict frequency into the conflict feature set; S504: Select another wildcard-containing bit in the first query string as a new first bit, and repeat steps S502-S503 until all wildcard-containing bits in the first query string are selected; S505: Calculate the conflict variance and the conflict threshold according to the conflict feature set; S506: Determine whether the conflict variance is less than the conflict threshold; if the conflict variance is less than the conflict threshold, select the bit with the highest conflict frequency in the second preset number of conflict feature sets as the combination generation bit; otherwise, select the bit with the highest conflict frequency in the third preset number of conflict feature sets as the combination generation bit; S507: Put the bit with a conflict frequency of 0 in the conflict feature set as a non-conflict bit; S508: Put the combination generation bit, the non-conflict bit, and the value corresponding to the non-conflict bit as the label conflict features.

[0044] In one specific embodiment, in step S503, Manchester coding is used to detect specific conflict bits, thereby counting the conflict frequency.

[0045] In one specific embodiment, the second preset number is 2 and the third preset number is 1.

[0046] It should be noted that the present application determines the second preset number or the third preset number of parallel processing by calculating the variance of the conflict bits, in this way, if the conflicts of the tags are concentrated in a few bits, at this time, the single-bit processing (i.e. m=1) is degenerated to avoid generating a large number of redundant sub-queries; if the conflicts of the tags are evenly distributed in multiple bits, then a multi-bit processing mode can generate 2 m (m>1) sub-queries to avoid invalid queries.

[0047] Further, the calculation formula of the conflict variance is as follows:

[0048] k represents the number of wildcard bits in the first query string, represents the mean of the number of conflicts, represents the number of conflicts of the i-th bit.

[0049] Further, the calculation formula of the conflict threshold is as follows:

[0050] represents the threshold coefficient, represents the mean of the number of conflicts.

[0051] In one specific embodiment, the threshold coefficient is 0.25. The specific value is as follows: The number of tags is 200, and the length of the tag ID is 32 bits (in line with the EPC Gen2 standard). The tag distribution rules are divided into uniform distribution and concentrated distribution. The tag ID under uniform distribution is randomly generated, and the conflict bits are dispersed; and the first six bits of the tag ID under concentrated distribution are fixed as "101011", and the last 26 bits are random, so that the conflict is more concentrated. The threshold coefficient α range is "0.1≤α≤0.5", and the step is 0.05. The simulation can obtain the relationship curve between α and the number of queries, as shown in Figure 4 .

[0052] When α=0.25, the average number of queries corresponding to the tag concentrated distribution obtains the minimum value; and the average number of queries corresponding to the tag uniform distribution obtains the maximum value. Considering that the threshold coefficient α has less effect on the average number of queries when the tags are concentrated, the average number of queries is distributed around 520. When the tags are uniformly distributed, the threshold coefficient α has a greater effect on the average number of queries, which can change from the minimum value 509 to the maximum value 538.6667. Therefore, in the tag environment with a tag ID length of 32 bits, the optimal value of the threshold coefficient α is 0.25.

[0053] In one specific embodiment, the mean of the number of conflicts can be obtained by the following formula:

[0054] Further, as shown in step S6, one or more query strings are generated according to the first query string and the label conflict characteristics, including: Figure 5 S601: generating a second query string according to the conflict-free bit and the value corresponding to the conflict-free bit; S602: generating one or more query strings according to the second query string and the combination generation bit.

[0055] It should be noted that the first few bits with the highest conflict frequency are preferentially selected to generate the query string, and by processing multiple conflict bits in parallel, the binary tree structure of a single query is improved to a multi-tree structure, significantly reducing the total number of queries. For example, if the first bit and the third bit are detected to conflict, all possible combinations (00, 01, 10, 11) of the two bits are fixed at the same time, generating four sub-queries.

[0056] In one embodiment, in step S601, the second query string is generated according to the following steps.

[0057] i. For a given bit, if all corresponding bits of the response are 0, the bit will not conflict, and the request string of the bit can be updated by 0.

[0058] ii. For a given bit, if all corresponding values of the response are 1, the bit will not conflict, and the request string of the bit can be updated by 1.

[0059] iii. For a given response bit, if there are both 0 and 1, a collision will occur, and only the wildcard will be retained.

[0060] Step S602 replaces the combination generation bit with the possible combination in a permutation and combination manner.

[0061] A label identification system, comprising: a queue creation module: obtaining a set of labels to be identified; creating and initializing a query queue; the query queue includes a query string; a string selection module: selecting the first query string in the query queue as the first query string; and popping the first query string from the query queue; a first rule matching module: according to the first query string and the set of labels to be identified, a first set of labels is obtained by using the first rule matching; ​Tag judgment module: according to the first label set and the first query string, it is judged whether the first termination condition is met; if the first termination condition is met, the label in the first label set is the identified label, the label in the first label set is removed from the set of to-be-identified labels, and the loop module is executed; otherwise, the second rule matching module is executed; Second rule matching module: according to the first query string and the first label set, the second rule is used for matching to obtain a label conflict feature; String generation module: according to the first query string and the label conflict feature, one or more query strings are generated, and the generated query strings are pushed into a query queue; Loop module: repeated execution until the query queue is empty, and all identified labels are taken as final identified labels.

[0062] The following will illustrate how a specific identification is performed: The existing to-be-identified labels are A (101100), B (110000), C (110100), D (111000), E (101000) and F (100100).

[0063] First, initialize the query string Q (******) and the queue Queue.

[0064] First round of query: Send Q (******) to all to-be-identified labels, and all labels reply complete IDs. The reader detects the conflict bits, and it can be found that the second bit, the third bit and the fourth bit have conflicts.

[0065] For the conflict of the second bit, the reader has counted that there are 3 ones and 3 zeros in this bit, so the conflict frequency of this bit is 3, that is, . Similarly, .

[0066] The average conflict frequency , the variance , the threshold value . Therefore, , so the conflict variance is less than the set threshold value, and is taken for parallel processing. Since the conflict frequency is 3, in this case, the second bit and the third bit can be selected as the conflict bits. Then update the query strings Q1 (100*00), Q2 (101*00), Q3 (110*00) and Q4 (111*00).

[0067] Push the above updated query strings into the queue to obtain a new queue: Queue (100*00, 101*00, 110*00, 111*00).

[0068] Second query: The first element of the queue is popped out as the query string Q (100*00), and the tag F is identified directly.

[0069] The 100*00 in the queue is popped out, and the remaining elements are taken as a new queue Queue (101*00, 110*00, 111*00).

[0070] Third query: The first element of the queue is popped out as the query string Q (101*00), and the tags A and E respond to the reader at the same time. Since the wildcard * of Q only exists in the third position at this time, and there are two tags in conflict at this time, the termination mechanism of the DMBQT algorithm is triggered, and the tags A and E are identified at the same time.

[0071] The 101*00 in the queue is popped out, and the remaining elements are taken as a new queue Queue (110*00, 111*00).

[0072] Fourth query: The first element of the queue is popped out as the query string Q (110*00), and the tags B and C are identified at the same time, similar to the third query.

[0073] The 110*00 in the queue is popped out, and the remaining elements are taken as a new queue Queue (111*00).

[0074] Fifth query: The first element of the queue is popped out as the query string Q (111*00), and the tag D is identified directly.

[0075] The 111*00 in the queue is popped out, and the queue is empty, the query is ended, and all tags are identified.

[0076] As can be seen, the above query process is divided into five times, of which the first time generates four sub-queries due to tag response initialization query string and tag conflict; and from the second time, the reader successfully identifies the tags each time.

[0077] Another example of specific tag identification is as follows: The existing tags to be identified: tag A (11101000), tag B (11101001), tag C (11101010), tag D (11101011), tag E (11101100), tag F (11101101), tag G (11101110), tag H (11101111), tag I (11111111).

[0078] First round of query: The initialization query string (********) is sent to all tags. All tags respond to the initialization query string, and the reader detects that the conflict bits are the fourth, sixth, seventh, and eighth bits. The fourth bit conflict frequency is c4=1, the sixth bit conflict frequency is c6=4, the seventh bit conflict frequency is c7=4, and the eighth bit conflict frequency is c8=4. Thus, the average conflict frequency is calculated as , and the conflict variance is . Assuming that the threshold coefficient a=0.25, the size relationship between the conflict variance and the threshold value is . The conflict variance is greater than the threshold value, and the reader determines that the variance is large at this time. Thus, the first bit is taken for conflict processing at this time. Considering that the conflict frequencies of the sixth, seventh, and eighth bits are all 4 and that the conflict frequencies of these bits are the highest, the DMBQT algorithm takes the bit with the highest conflict frequency for conflict processing. Here, the sixth bit of the query string is taken for processing. Thus, 111*10** and 111*11** are pushed into the queue.

[0079] Thus, the queue is updated to Queue (111*10**, 111*11**).

[0080] Second round of query: The first element (i.e., 111*10**) in the queue is taken as the new query string at this time. Tags A, B, C, and D respond to the query string, and the reader detects that the conflict bits are concentrated in the seventh and eighth bits. Thus, the number of conflict bits k=2, and because there are four tags responding to the query string at this time, the ID on the conflict bit can be uniquely identified (i.e., the conflict bits are determined to be 00, 01, 10, and 11). The early termination mechanism is triggered, and tags A, B, C, and D are successfully identified.

[0081] Because the query string identifies four tags, the identification task is completed, and the first element in the queue is popped out at this time. Thus, the queue is updated to Queue (111*11**).

[0082] Third round of query: The first element (i.e., 111*11**) in the queue is taken as the new query string at this time. Tags E, F, G, H, and I respond to the query string, and the reader detects that the conflict bits are concentrated in the fourth, seventh, and eighth bits. Thus, the number of conflict bits k=3. If the early termination mechanism is to be satisfied at this time, there need to be eight tags responding, which can uniquely determine three conflict bits. However, only five tags respond at this time, and the early termination mechanism is not triggered. The conflict situation is counted as follows: the fourth bit conflict frequency c4=1, the seventh bit conflict frequency c7=2, and the eighth bit conflict frequency c8=2. The average conflict frequency is calculated as , and the conflict variance is calculated as , taking the threshold coefficient α=0.25, then the relationship between the conflict variance and the threshold is: . Take the two bits with the highest number of conflicts for processing (i.e. the seventh and eighth bits), pop the first element in the queue and push 111*1100, 111*1101, 111*1110, 111*1111 into the queue.

[0083] Therefore, the queue is updated to Queue(111*1100, 111*1101, 111*1110, 111*1111).

[0084] Fourth round of inquiry: The first element in the queue (i.e. 111*1100) is taken as the new query string. Only tag E responds to the query string, and the tag is successfully identified.

[0085] The original first element of the queue is popped out, and the queue is updated to Queue (111*1101, 111*1110, 111*1111).

[0086] Fifth round of query: The first element in the queue (i.e., 111*1101) is taken as the new query string. Only tag F responds to the query string, and the tag is successfully identified.

[0087] The original first element of the queue is popped out, and the queue is updated to Queue (111*1110, 111*11111).

[0088] Sixth round of inquiry: The first element in the queue (i.e., 111*1110) is taken as the new query string. Only tag G responds to the query string, and the tag is successfully identified.

[0089] The original first query in the queue is popped out, and the queue is updated to Queue (111*1111).

[0090] Seventh round of inquiry: Take the first element in the queue (i.e. 111*1111) as the new query string. At this time, tag H and tag I respond to the query string. Since the number of conflicting bits k=1 at this time, and two tags respond to the query string, the number of conflicting bits can be uniquely identified (i.e., the conflicting bits are determined to be 0 and 1), the early termination mechanism is triggered, and tags H and I are successfully identified. Pop the first element of the queue, the queue is empty, and the query terminates.

[0091] The above process is as follows Figure 6As shown, node A and node C have two and four sub-nodes respectively, because the algorithm can decide whether to take binary split or quad split according to the specific situation of conflict variance. Figure 6 There are 7 nodes in total, in which node A is expanded into node B and node C (representing the first query process), and node A stores the initial query string ********, node B stores 111*10**, and node C stores 111*11**. During the execution of the above algorithm, the initial query string stored in node A is expanded into node B and node C due to the conflict in the query process, and the query string stored in node B successfully identifies four labels (label A, label B, label C, and label D) in the query process without expansion. The query string (111*11**) stored in node C is identified as low variance by the reader and writer in the query process and is subjected to quad split (representing the third query process), and four nodes (node D, node E, node F, and node G) are expanded. Among them, node D stores 111*1100, node E stores 111*1101, node F stores 111*1110, and node G stores 111*1111. Nodes D to G all successfully identify labels without further expansion, in which the query string stored in node D identifies label E, the query string stored in node E identifies label F, the query string stored in node F identifies label G, and the query string stored in node H identifies labels H and I.

[0092] The following is an analysis of the number of queries and communication overhead of the algorithm of the present application: When the algorithm detects a low-variance conflict, two conflict bits are processed in parallel each time, and four sub-queries are generated to divide the labels into four subsets, and the size of each subset is about When , the total number of layers is solved . Since each layer is queried only once, four sub-queries are generated, so the optimal case for the total number of queries is: (4.4) When a high-variance conflict is detected each time, it degenerates into single-bit processing, generating two sub-queries. When , the recursion terminates, and the number of layers is . The worst case for the total number of queries is: (4.5) For the optimal case of communication overhead, two conflict bits are fixed each time, the label is entered and the remaining wildcard bits are replied, and the initial response is K bits, and each subsequent layer will reduce two bits. Therefore, for the 0th layer, the communication overhead is ; for the 1st layer, the communication overhead is ; and so on, and the communication overhead of the ith layer is The total communication overhead is the sum of the overheads of each layer: (4.6) For the worst case of communication overhead, the tag replies with the remaining wildcard, and the initial response is bits, and each subsequent layer decreases by one bit. Similarly, the total communication overhead is: (4.7) Similar to the throughput rates of QT and BQT, the throughput rate of the algorithm of the present application (DMBQT algorithm) can be easily obtained as: (4.8) wherein, is the single query time of the algorithm of the present application (DMBQT algorithm).

[0093] According to the above content, when the algorithm of the present application (DMBQT algorithm) obtains the conflict processing bit number m = 1, it degenerates into the BQT algorithm; and when m = 2, the query number, communication overhead and throughput rate of the algorithm of the present application (DMBQT algorithm) all obtain the optimal case. The performance indicators of the DMBQT algorithm are all superior to those of the BQT algorithm.

[0094] As shown in Figure 7 , the query number of the algorithm of the present application (DMBQT algorithm) is significantly lower than those of the other two algorithms; the BQT algorithm is the second, but its performance is better than that of the QT algorithm. When the number of tags is 500, the DMBQT algorithm only needs 600 queries, which is reduced by 40% compared with the BQT algorithm (1000 times). This advantage is due to the dynamic multi-bit processing mechanism of the DMBQT algorithm: through the conflict distribution variance analysis, the number of parallel processing bits (m = 1 or m = 2) is adaptively selected, and the early termination strategy is combined to avoid redundant queries.

[0095] As shown in Figure 8 , the communication overhead of the QT algorithm is the highest, especially when the number of tags exceeds 500, its overhead growth is the most obvious, reaching about 3x unit value. This indicates that the QT algorithm has poor scalability in large-scale tag scenarios. The communication overhead of the BQT algorithm is significantly lower than that of the QT algorithm, but it is still higher than that of the algorithm of the present application (DMBQT algorithm). Its overhead is about 1.5x unit value when the number of tags is 500, showing good optimization effect. The communication overhead of the algorithm of the present application (DMBQT algorithm) is the lowest, even when the number of tags increases to 500, its overhead still maintains at a low level. This shows that the algorithm of the present application (DMBQT algorithm) has a significant advantage in reducing communication overhead, and is especially suitable for large-scale tag environment.

[0096] As shown in Figure 9As shown in the figure, the throughput of the algorithm of the present invention (DMBQT algorithm) is significantly better than the other two algorithms, maintaining at around 0.7. The throughput of the QT algorithm is maintained at around 0.35, which is the worst performance among the three algorithms. The throughput of the BQT algorithm is around 0.5.

[0097] A computer-readable storage medium includes a tag identification method program. When the tag identification method program is executed by a processor, the steps of the tag identification method are implemented.

[0098] The same or similar reference numerals correspond to the same or similar components; The terms used in the drawings to describe positional relationships are for illustrative purposes only and should not be construed as limiting this patent; Obviously, the above embodiments of the present invention are merely examples for the purpose of clearly illustrating the present invention, and are not intended to limit the embodiments of the present invention. Those skilled in the art will appreciate that other variations or modifications can be made based on the above description. It is not necessary and impossible to enumerate all embodiments here. Any modifications, equivalent substitutions, and improvements made within the spirit and principles of the present invention shall be included within the scope of protection of the claims of the present invention.

Claims

1. A tag recognition method, characterized in that: include: S1: Obtain a set of tags to be identified; create an initial query string and a query queue, and place the initial query string into the query queue; S2: Select the first query string in the query queue as the first query string; and pop the first query string out of the query queue; S3: According to the first query string and the tag set to be identified, a first tag set is obtained by matching using a first rule; S4: Determine whether a first termination condition is met based on the first tag set and the first query string; If the first termination condition is met, the tags in the first tag set are identified tags, and the tags in the first tag set are removed from the tag set to be identified, and step S7 is executed; Otherwise, execute step S5; S5: Matching the first query string and the first tag set using a second rule to obtain a tag conflict feature; S6: Generate one or more query strings based on the first query string and the tag conflict feature, and push the generated query strings into a query queue; S7: Repeat steps S2 to S6 until the query queue is empty, and take all identified tags as the final identified tags.

2. A tag recognition method according to claim 1, characterized in that: The first query string includes one or more combinations of wildcards, zero characters, and one character.

3. A tag recognition method according to claim 2, characterized in that: In step S3, a first set of tags is obtained by matching the first query string and the tag set to be identified using a first rule, including: S301: Select a tag from the set of tags to be identified as the first tag; S302: Match the bits in the first query string that do not contain wildcard characters with the corresponding bits in the first tag to obtain a first number of conflicts; S303: Determine whether the first conflict number is 0; if the first conflict number is 0, add the first tag to the first tag set; S304: Select another tag in the tag set to be identified as a new first tag, and repeat steps S302 to S303 until all tags in the tag set to be identified are selected.

4. A tag recognition method according to claim 2, characterized in that: In step S4, the first termination condition is as follows: k represents the number of wildcard characters in the first query string.

5. A tag recognition method according to claim 2, characterized in that: In step S5, a second rule is used to perform matching based on the first query string and the first tag set to obtain a tag conflict feature, including: S501: Select a position containing a wildcard character in the first query string as the first position; S502: Counting the values ​​of the bits corresponding to the first bit in the first tag set as multiple first bit values; S503: Calculate the number of first bit conflicts based on the multiple first bit values; add the first bit, the first bit value, and the number of first bit conflicts into a conflict feature set; S504: Select another position containing a wildcard in the first query string as the new first position, and repeat steps S502 to S503 until all positions containing wildcards in the first query string are selected; S505: Calculating the conflict variance and the conflict threshold according to the conflict feature set; S506: Determine whether the conflict variance is less than the conflict threshold; if the conflict variance is less than the conflict threshold, select the bit with the highest number of conflicts in the second preset number of conflict feature sets as the combination generation bit; otherwise, select the bit with the highest number of conflicts in the third preset number of conflict feature sets as the combination generation bit; S507: The bit with the conflict count of 0 in the conflict feature set is regarded as a non-conflict bit; S508: The combined generated bit, the non-conflict bit, and the value corresponding to the non-conflict bit are used as a label conflict feature.

6. A tag recognition method according to claim 5, characterized in that: The calculation formula of the conflict variance is as follows: k represents the number of wildcard characters in the first query string, represents the mean number of conflicts, Indicates the number of conflicts at the i-th position.

7. A tag recognition method according to claim 5, characterized in that: The calculation formula of the conflict threshold is as follows: represents the threshold coefficient, represents the mean number of conflicts.

8. A tag recognition method according to claim 5, characterized in that: In step S6, one or more query strings are generated based on the first query string and the tag conflict feature, including: S601: Generate a second query string according to the non-conflict bit and the value corresponding to the non-conflict bit; S602: Generate one or more query strings according to the second query string and the combination generation bit.

9. A tag recognition system, applied to the recognition method according to any one of claims 1 to 8, characterized in that: include: Queue creation module: obtains a set of tags to be identified; creates an initial query string and a query queue, and places the initial query string into the query queue; String selection module: selects the first query string in the query queue as the first query string; and pops the first query string out of the query queue; A first rule matching module: according to the first query string and the tag set to be identified, using the first rule matching to obtain a first tag set; Termination condition judgment module: judging whether the first termination condition is met according to the first tag set and the first query string; If the first termination condition is met, the tags in the first tag set are identified tags, the tags in the first tag set are removed from the tag set to be identified, and the loop module is executed; Otherwise, execute the second rule matching module; A second rule matching module is configured to match the first query string and the first tag set using a second rule to obtain a tag conflict feature; A string generation module: generates one or more query strings according to the first query string and the tag conflict feature, and pushes the generated query strings into a query queue; Loop module: Repeatedly execute until the query queue is empty, and take all identified tags as the final identified tags.

10. A computer-readable storage medium, characterized in that The computer-readable storage medium includes a tag identification method program, and when the tag identification method program is executed by a processor, the steps of the tag identification method according to any one of claims 1 to 8 are implemented.