Mark verification with distortion tolerance
By collecting images on mobile phones and applying data sequence transformation technology, the accuracy of image distortion recognition in the prior art is solved, effective correction and authentication of curved surfaces and asymmetric patterns are achieved, and the accuracy of mark authentication is improved. Robustness.
Patent Information
- Application Number
- CN202380035386.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-04-21
- Filing Date
- 2023-04-21
- Publication Date
- 2025-01-10
AI Technical Summary
The prior art is difficult to effectively identify and verify authenticity marks, especially in the presence of geometric distortion and uncontrolled lighting conditions during image acquisition, resulting in reduced recognition accuracy and increased production costs and complexity.
By using ordinary mobile phones to acquire images and apply data sequence transformation technology, including transformation functions such as bit shift, distortion, and stretching, we correct distortion in the image, and generate a corrected hash identifier to verify the authenticity of the mark. It is suitable for Patterns of curved surface and asymmetrical direction features distribution.
Reduces the information required for identification and correction, reduces computational complexity, improves the accuracy and robustness of marker authentication, simplifies the operation process, and is suitable for various distortion types without the need to identify specific distortion types.
Smart Images

Figure CN119301648A_ABST
Abstract
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims priority to U.S. Provisional Patent Application No. 63 / 333,516, filed on April 21, 2022, which is incorporated herein by reference. Technical Field
[0002] The present disclosure relates generally to anti-counterfeiting technology and, more particularly, to methods and computing devices for determining whether a marking is authentic. Background Art
[0003] Unfortunately, counterfeit products are ubiquitous and often difficult to detect. When counterfeiters produce fake goods, they typically copy labels and barcodes in addition to the actual product. On the surface, labels and barcodes may appear authentic when scanned and even produce valid data (for example, decoding to an appropriate Universal Product Code). While many technologies are currently available to combat this copying, most of these solutions involve inserting various types of codes, patterns, microfibers, microdots, and other markings to help deter counterfeiting. These technologies require manufacturers to use additional equipment and materials and add cost and complexity to the production process. Summary of the Invention
[0004] This specification describes techniques related to authenticating physical objects, and more specifically, describes techniques for compensating for geometric distortions introduced when an off-the-shelf camera (e.g., a cell phone's camera) captures an image of a physical object. No special lenses are required to limit geometric appearance variations and / or suitable lighting methods are required to minimize the contrast between desired image features and undesired image features in a consistent manner. Instead, an ordinary cell phone can be used to capture an image of a mark to be authenticated at a location selected by the user, and the authentication process can be performed on a variety of built-in cell phone imaging components with variable optics and various lighting conditions present in the environment.
[0005] The subject matter of these techniques can be implemented using systems and techniques of one or more of U.S. Patents (Application Number: US9519942), U.S. Patents (Application Number: US9940572), U.S. Patents (Application Number: US10235597) and / or U.S. Patents (Application Number: US10061958), which are hereby incorporated by reference in their entirety. Specific implementations of the subject matter described in this specification can be implemented to achieve one or more of the following advantages. These techniques can operate without knowing the geometry of the physical object. These techniques can be used when there are significant image deviations, and for slightly curved surfaces, the exact geometric surface shape does not need to be known. Therefore, these techniques are suitable for tolerating curved surfaces of materials with a certain degree of flexibility (non-assembly). In addition, the technique can be used to verify patterns with asymmetric directional feature distributions, such as stripes, where geometric distortion can be easily corrected in directions orthogonal to the stripes, but is less easily corrected in the stripe direction due to self-similarity in the stripe direction.
[0006] Benefits and advantages of the systems and techniques may also include: minimizing the information required for identification, modeling, and correction; minimizing the risk of long-tail errors when applying corrections; simplifying the user experience during setup and operation; and expanding the application domain with minimal increase in computational complexity. Distortion types that can be corrected and / or addressed include perspective distortion, correction for curvature of cylindrical objects with variable radius or arbitrary curved surfaces, distortion due to sensor pose variations, and illumination variations. Data sequence transformation techniques can be applied to any mark, such as captured barcodes or visually presented distortions such as tilt, diffuse glare, and shadows. Data sequence transformation can be used to correct distortion in images with fingerprint defects that can cause loss of fingerprint information. Data sequence transformation techniques can be used to improve hash identifier (HID) searches, which are related to finding the correct reference fingerprint, and this reference fingerprint can be used to determine whether the mark is authentic. Data sequence transformation techniques can include offset correction and can correct for multiple types of distortion. Generally speaking, various search algorithms used in mark authentication processes can be improved using the data sequence transformation techniques (e.g., bit shifting techniques) described herein to find the appropriate reference fingerprint, thereby improving the accuracy of mark authentication. The data sequence transformation can be independent of the distortion type, for example by applying multiple correction transforms, so that the techniques of this description are effective in a variety of distortions without identifying a specific type of distortion.
[0007] Generally speaking, one or more aspects of the subject matter described in this specification can be embodied in one or more methods comprising: authenticating a candidate marker in an image using a distortion adjustment process that converts a data series of an electronic signature of the candidate marker. Other embodiments of this aspect include corresponding systems, apparatuses, and computer program products recorded on one or more computer storage devices, each of which is configured to perform the steps of these methods. Thus, one or more aspects of the subject matter described in this specification can be embodied in one or more systems including a user interface and one or more computers operable to interact with the user interface device and programmed to perform the operations of the methods described herein, and another or more aspects of the subject matter described in this specification can be embodied in one or more non-transitory computer-readable media tangibly encoding a computer program operable to cause a data processing device to perform the steps of the methods described herein.
[0008] The above and other embodiments may optionally include one or more of the following features, individually or in combination. The adjustment process may utilize multiple transformation functions, each of which may approximate a specific type of distortion correction. The data series may be a vector of numbers, the data type of which may include at least one of bits, bytes, floating point numbers, double precision numbers, hexadecimal numbers, or other data representations. The transformation function of the adjustment process may include at least one of shifting, distorting, stretching, scaling, performing a geometric operation, or utilizing a lookup table of transformation values. A transformation function may be selected that is capable of removing an approximate correction for a target distortion from the data series. The transformation function may be parameterized and applied two or more times using two or more parameter values, thereby removing an approximate correction for a target distortion from the data series. The transformation function may be a shift, where the parameterized parameter may be the number of data series positions to be shifted. The transformation function may map data series elements from one value to another within the same vector space. The fingerprint may be a data series member of the vector space. Authentication can include obtaining an electronic signature as a data sequence of a candidate marker, the electronic signature generated based on measured features of an image of the candidate marker; transforming the data sequence values of the electronic signature to generate two or more transformed data sequence versions of the electronic signature; deriving hash identifiers for the electronic signature and the two or more transformed data sequence versions of the electronic signature; retrieving a set of two or more results from a database of authentic marker signatures using the hash identifiers; and comparing at least one electronic signature of at least one of the two or more results retrieved from the database with the electronic signature of the candidate marker to confirm that the candidate marker is authentic. The transforming can include performing a data sequence transformation of multiple points in at least one direction a specified number of times to create at least four transformed data sequence versions of the electronic signature. At least one of the two or more results can be one of the two or more results with a maximum match score. The obtaining can include receiving an image of the candidate marker; measuring features to generate a set of measurements of the features; and generating the electronic signature based on the set of measurements.
[0009] Furthermore, generally speaking, one or more aspects of the subject matter described herein can be embodied in one or more methods, including: obtaining an electronic signature, using the obtained electronic signature as a data sequence for a candidate marker, the electronic signature being generated from measured characteristics of an image of the candidate marker; identifying at least one specific distortion type in the electronic signature; selecting a transformation function from a plurality of transformation functions based on the identified specific distortion type; transforming the data sequence using the selected transformation function to generate at least one transformed data sequence; and confirming that the candidate marker is authentic using the data sequence and the transformed data sequence. Other embodiments of this aspect include corresponding systems, apparatus, and computer program products recorded on one or more computer storage devices, each of which is configured to perform the steps of the method.
[0010] The details of one or more embodiments of the subject matter described in this specification are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the invention will become apparent from the description, drawings, and claims. BRIEF DESCRIPTION OF THE DRAWINGS
[0011] Figure 1A Fingerprint matching scores for the sequences using different techniques are shown.
[0012] Figure 1B An example system for mark authentication with distortion tolerance is shown.
[0013] Figure 2A An example of how a computing device can generate an electronic signature for a token is shown.
[0014] Figure 2B A flowchart of a bit shift transformation and an example of a bit shift transformation are shown.
[0015] Figure 2C An example of comparison between the signatures of two images of true labeling is shown.
[0016] Figure 3A A flow chart illustrating an example process for tag authentication with distortion tolerance is shown.
[0017] Figure 3B An exemplary marker distortion is shown.
[0018] Figure 3C A flow chart and example of creating a transformation signature in a system with multiple transformations is shown.
[0019] Figure 4 An example of a location identifier showing how a computing device can sort a set of metrics and select a subset of metrics.
[0020] Figure 5 An example is shown of how a computing device may form a hash identifier block from location identifiers corresponding to multiple subsets of metrics.
[0021] Figure 6 An example of how a computing device compares two hash identifier blocks and scores the comparison result is shown.
[0022] Figure 7 and Figure 8 The figure shows a process in which a computing device converts the correlation between two sets of autocorrelation values of a given feature (or a given set of metrics of the feature) into a matching score of the feature or the set of metrics.
[0023] Figure 9 and Figure 10 Example results of applying the transformation function are shown.
[0024] Figure 11 is a block diagram of an exemplary computer system.
[0025] Like reference numbers and names throughout the various drawings represent like elements. Specific description
[0026] Today's manufacturers can use automated mass production to produce millions of items that are almost indistinguishable to the naked eye. However, in order to prevent the manufacture and sale of counterfeit products, it is important to authenticate the items to ensure that they are authentic and not counterfeit products. The techniques described herein create fingerprints for products or product packaging by capturing random surface printing variations on authentic versions of such products using an image capture device. More specifically, these techniques can identify printing variations on markings or standard product codes (e.g., Universal Product Codes (UPCs), Quick Response (QR) Codes, and Data Matrix (DM) Codes) that have been used to identify item or product types.
[0026] Manufacturers today can use automated mass production to produce millions of items that are virtually indistinguishable to the human eye. However, to prevent the manufacture and sale of counterfeit products, it is important to authenticate items to ensure they are genuine and not counterfeit. The techniques of this specification create fingerprints for items by using an image capture device to capture random surface print variations on authentic versions of products or product packaging. More specifically, these techniques can identify print variations on markings or standard product codes (e.g., Universal Product Code (UPC), Quick Response (QR) Codes, and Data Matrix (DM) Codes) that have been used to identify item or product types.
[0027] Authentication techniques may include: (1) capturing images using an inline machine vision system during the production of an item, (2) calculating a reference fingerprint from these images, (3) storing the calculated reference fingerprint in a database system for later access, (4) capturing images from a test item, such as using a cell phone in the field, (5) calculating a second fingerprint, and (6) comparing the second fingerprint to the reference fingerprint stored in the database to determine if a match exists. In addition, as further described below, these techniques may include creating a transformed version of a data series representing the captured images and using the transformed version to determine the authenticity of the item. Applying the transformation enables the system of the present application to more accurately determine the authenticity of the item.
[0028] As background, in an ideal authentication process, a reference fingerprint signature and a second verification fingerprint signature would match exactly when the signatures originate from the same item, but they would not match when the signatures originate from two different items. However, in practice, two fingerprints created from the same item do not match exactly. This is due to a variety of reasons, including image noise, differences in the imaging sensors used for acquisition and verification, and, during the verification process, uncontrolled lighting conditions and pose variations caused by the phone's camera when capturing the image. Such variations alter the appearance of the item's surface, which, in addition to other deviations from the image, propagates into the image as a signal noise component and then into the fingerprint created for that image.
[0029] A fingerprint is a mixture of an ideal fingerprint and various noise components. Additional noise can cause two fingerprints derived from the same object but using different image formation processes to differ, with the magnitude of the noise increasing with the magnitude of the deviation until the reference and verification fingerprints do not match. To address this mismatch, the transformations of the present disclosure can adapt to distortion, and the system for object identification and authentication (counterfeit detection system) is largely invariant to the expected deviations introduced by the authentication process (i.e., only correctly authenticates genuine marks and rarely (if ever) fails to authenticate genuine marks). In other words, the distortion adjustment techniques described in the present disclosure can make the counterfeit detection system more robust, thereby reducing false positives and false negatives in the detection of genuine marks. The distortion adjustment techniques can be applied at various stages throughout the authentication phase, whether applying a linear search on the full-resolution fingerprint, a linear search on a low-resolution fingerprint (e.g., in Hamming space), or a linear search in a tree search. As further described below, on standard hardware (e.g., multi-core multi-threaded processing or other hardware or operating system optimizations), there is no significant increase in computation time. The limiting factor of precision can be the number of fingerprints in the database, rather than the small amount of additional computational resources required to process the additional candidates created by the distortion adaptation process.
[0030] In some implementations, a full-resolution fingerprint may be used. A full-resolution fingerprint includes more bit depth than a low-resolution fingerprint. In such an implementation, the distortion adaptation process may apply a transformation (e.g., a shift transformation) to the full-resolution fingerprint, for example, using a multi-position transformation, as described below with reference to Figure 2B The content described.
[0031] Furthermore, variants of the transformation can be applied to a full-resolution reference fingerprint to create a set of candidate fingerprints for determining the authenticity of an item. For example, a first variant of the transformation can be applied to a fingerprint to create a first transformed candidate, a second variant of the transformation can be applied to the fingerprint to create a second transformed candidate, and so on. The original fingerprint and the transformed candidates can be matched against stored fingerprints of authentic items to more accurately determine whether the fingerprint represents an authentic item.
[0032] Figure 1A Fingerprint matching scores for a sequence of fingerprint pairs using different techniques are shown. Each plot contains the score for the correct match in the database (top row) and the score for the next most similar incorrect match (bottom row). When the correct match is sufficiently different from the next most similar incorrect match, the genuine and inauthentic marks are strongly distinguished, and the authentication process is more accurate.
[0033] As background, Figure 10 A shows the matching scores of fingerprint-to-sequence pairs in a system that is not invariant to bias. Figure 10 B shows a system that is sufficiently invariant that its matching scores allow reliable discrimination between correct matches (top row) and the highest false matching scores (bottom row). The higher the matching score, the better the match. Figure 10 A shows the matching scores for a system that is sensitive to bias, where the matching scores in the sequence (top row) drop to a low level where they are indistinguishable from the best matches for other items (bottom row). Such a system may have lower accuracy in item authentication. Figure 10 B shows the same fingerprint matching sequence using the second system, where the matching scores allow reliable differentiation between correct matches and the highest scores for incorrect matches. The second system is sufficiently invariant to expected deviations, thus improving matching accuracy.
[0034] In order to produce Figure 10 B. Similar results, this specification describes techniques for creating fingerprint matching invariance for image-based object (or product) identification and / or authentication applications using the uncontrolled environment of mobile phone image acquisition (e.g., partial placement variations due to hand movements when holding the phone and the object, and the inability of individuals to correct for tilt of the object, shallow depth of field due to high magnification and / or short working distance, image variations including image noise, glare, diffuse glare, perspective distortion, tilt, image defocus and partial blur, image contrast variations, image brightness non-uniformity, variable and limited resolution across different mobile phone devices and variable optics, motion blur, optical aberrations, and various mobile phone camera post-processing features for noise reduction and image enhancement). This specification describes multiple methods for creating bias invariance, including matching multiple transformed versions of a candidate marker to a true marker.
[0035] In general, image formation variations that cause geometric distortions that propagate into the fingerprint can be effectively eliminated. Instead of correcting for geometric distortions in image space, corrections can be avoided in image space, which allows the deviations to propagate into fingerprint space, where they can be corrected with lower computational complexity using the systems and techniques described in this application. Corrections in fingerprint space can be approximated by more general, lower-order models that allow correction of multiple types of distortions with the same approach, with lower parameter estimation complexity. Due to the reduced complexity of the parameter estimation problem, the described methods are more robust to the simultaneous presence of multiple deviations in the image, which can easily lead to estimation errors for traditional methods. Note that more complex correction models, such as those that use a normalization process to compute the inverse transform, are not necessarily better, as more complex models may introduce more noise and errors due to the fact that more parameters are estimated in the presence of image noise components, such as unexpected errors introduced when applying the inverse transform.
[0036] Furthermore, in certain implementations, fewer assumptions are made about the types of biases present compared to traditional corrections in image space. This means that the approach is more general and requires less a priori knowledge of the image acquisition system to operate effectively, e.g., no careful selection of imaging components and / or control and constraint variables are required during presentation of the part to the image acquisition system (e.g., at an optimal working distance with a preferred normal orientation and aligned with the center of the optical axis). For planar and slightly curved surfaces, perspective distortion can be corrected without knowledge of the surface curvature. The approach can be integrated into existing mark authentication systems without adding significant additional computational effort. In some cases, the computational complexity depends primarily on the number of reference fingerprints in the database, and additional generated correction candidates do not increase the computational complexity.
[0037] Figure 1B An example system for distortion-tolerant tag authentication is shown. The system may include a first computing device 108, a second computing device 110, and a third computing device 120, although fewer computing devices may be used. For example, second computing device 110 may perform the functions of first computing device 108, third computing device 120, or both.
[0038] A marking application apparatus 100 applies an authentic marking 102 ("mark 102") to a legitimate physical object 104 ("object 104"). In some embodiments, object 104 is an article of manufacture, such as a piece of clothing, a handbag, or a fashion accessory. In some implementations, object 104 is a label, such as a barcode label or other packaging for a physical object. Mark 102 can be something that identifies a brand (e.g., a logo), something that carries information (such as a barcode), or a decoration. Possible embodiments of marking application apparatus 100 include a printer (e.g., a laser or thermal printer), an etching apparatus, an engraving apparatus, a mold application apparatus, a branding apparatus, a stitching apparatus, and a heat transfer apparatus. Mark application apparatus 100 applies marking 102 by, for example, printing, etching, engraving, molding, branding, stitching, or heat transferring marking 102 to object 104. Mark 102 includes one or more artifacts. In some embodiments, marking 102 also includes intentionally produced security features, such as microscopic patterns.
[0039] After the indicia 102 is applied, a first image capture device 106 (e.g., a camera, a machine vision device, a scanner, etc.) captures an image of the indicia 102. The circumstances under which the first image capture device 106 captures the image of the indicia 102 are controlled so as to provide reasonable assurance that the image is, in fact, an image of the authentic indicia 102. For example, the time interval between the indicia 102 being applied by the indicia application device 100 and the image of the indicia 102 being acquired by the first image capture device 106 can be small, and the first image capture device 106 can be physically located adjacent to the indicia application device 200 along the packaging line. Therefore, when the term "authentic indicia" is used, it refers to indicia that has been applied by the indicia application device from a legitimate source (i.e., not illegally or clandestinely copied).
[0040] The first image acquisition device 106 sends the acquired image to the first computing device 108. Possible implementations of the first computing device 108 include desktop computers, rack-mounted servers, laptops, tablet computers, and mobile phones. (Mobile phones, tablet computers, portable virtual reality devices, and similar portable devices may be collectively referred to as mobile devices.) In some implementations, the first image acquisition device 106 is integrated with the first computing device 108, in which case the first image acquisition device 106 transmits the acquired image to the logic circuitry of the first computing device. The first computing device 108, or the logic circuitry therein, receives the acquired image and sends the acquired image to the second computing device 110. Possible implementations of the second computing device 110 include all of the devices listed for the first computing device 108.
[0041] The second computing device 110 receives the captured image and uses the captured image to measure various features of the marker 102, thereby obtaining a set of metrics that includes data about artifacts of the marker 102. As will be further described, the set of metrics can be one of several sets of metrics generated by the second computing device 110 around the marker 102. The second computing device 110 can perform measurements at different locations on the marker 102. In doing so, the second computing device 110 can divide the marker 102 into multiple sub-regions (e.g., according to industry standards). In some implementations, if the marker 102 is a two-dimensional (2D) barcode, the second computing device 110 measures all sub-regions of the marker 102 or a subset of the total number of sub-regions (e.g., all cells or a subset of the total number of cells). Examples of features of the mark 102 that the second computing device 110 can measure include: (a) feature shape, (b) feature aspect ratio, (c) feature location, (d) feature size, (e) feature contrast, (f) edge linearity, (g) regional discontinuity, (h) extraneous marks, (i) printing defects, (j) color (e.g., brightness, hue, or both), (k) pigmentation, and (l) contrast variation. In some implementations, the second computing device 110 measures the same locations between marks for each feature, but measures different locations for different features. For example, the first second computing device 110 can measure the average pigmentation at a first set of locations on a mark, and the pigmentation at the same set of first locations on a subsequent mark, but can measure edge linearity on a second set of locations on the mark and on subsequent marks. Two sets of positions (for different features) can be said to be "different" if at least one of the positions in the two sets is different.
[0042] In some implementations, the feature measurement results of the second computing device 110 include a set of metrics. Each measured feature can have one or more sets of metrics. The second computing device 110 analyzes the set of metrics and, based on the analysis, generates a data series representing the signature of the tag 102, which is based on the set of metrics. The data sequence can be any sequence of characters. For example, each data series can be a digital vector represented by bits, bytes, floating point numbers, double precision numbers, hexadecimal numbers, or other data representations. Because the set of metrics includes data about the artifact (or multiple artifacts) of the tag 102, the signature will be indirectly based on the artifact. If the tag 102 carries data (as in the case of a 2D barcode), the second computing device 110 can also include such data as part of the signature. In other words, in some implementations, the signature can be based on the artifact of the tag 102 and the data carried by the tag 102.
[0043] In some implementations, to generate the signature, for each measured feature of the marker 102, the second computing device 110 ranks the metrics associated with that feature by magnitude and uses only those metrics that meet a predetermined threshold as part of the signature. For example, the second computing device 110 may avoid ranking metrics that fall below the predetermined threshold. In some implementations, a different predetermined threshold may be used for each measured feature. One or more predetermined thresholds may be based on a noise threshold and the resolution of the first image acquisition device 106.
[0044] For example, the second computing device 110 may obtain one hundred data points for each feature and collect six sets of measurements: one set for pigmentation, one set for deviation from the best fit grid, one set for extraneous marks or gaps, and three separate sets of measurements for edge linearity.
[0045] As part of the ranking process, the second computing device 110 may group together metrics that are below a predetermined threshold, regardless of their respective positions (i.e., regardless of their positions on the mark 102). Furthermore, as part of the ranking process, the second computing device 110 may sort the metrics within each feature category (e.g., by magnitude). Similarly, the second computing device 110 may simply discount metrics that are below a predetermined threshold. Furthermore, the ranking process may simply separate metrics that are above the threshold from metrics that are below the threshold.
[0046] In some implementations, the second computing device 110 ranks the measured features based on their sensitivity to image resolution issues. For example, if the first image acquisition device 106 does not have the ability to acquire images at high resolution, the second computing device 110 may have difficulty identifying edge nonlinearity. However, in some cases, the second computing device 110 will have no difficulty identifying deviations in pigmentation. Therefore, on this basis, the second computing device 110 may prioritize pigmentation over edge nonlinearity. In some implementations, the second computing device 110 ranks the measured features in reverse order of resolution dependency, which is as follows: sub-region coloring, sub-region position deviation, location of gaps or extraneous markers, and edge nonlinearity.
[0047] In some implementations, the second computing device 110 weights the measured features of the marker 102 based on one or more of the resolution of the first image capture device 106 and the resolution of the captured image of the marker 102. For example, if the resolution of the first image capture device 106 is low, the second computing device 110 may give more weight to the average pigmentation of each sub-region of the marker 102. If the resolution of the first image capture device 106 is high, the second computing device 110 may give more weight to the measurement of edge irregularity of each sub-region than to other features.
[0048] If the mark 102 includes error correction information, such as error correction information specified in ISO / IEC 16022, the second computing device 110 can use the error correction information to weight the measured characteristics. For example, the second computing device 110 can read the error correction information, use the error correction information to determine which sub-regions of the mark 102 have errors, and weight the measured characteristics of these sub-regions.
[0049] In some implementations, when generating the signature, the second computing device 110 weights the measurements of one or more characteristics of the mark 102 by the mark application device 100. For example, if the mark application device 100 is a thermal transfer printer, it is known that for marks applied by the mark application device 200, edge projections parallel to the direction of substrate motion are unlikely to produce edge linearity measurements sufficient to meet a minimum threshold for edge linearity. The second computing device 110 can weight the edge linearity measurements of the mark 102 based on this known characteristic of the mark application device 100.
[0050] Figure 2A An example of how a computing device may generate an electronic signature for a mark is shown. In some implementations, the computing device generates the electronic signature for a mark by encoding the signature as a string of bytes that can be represented as American Standard Code for Information Interchange ("ASCII") characters, rather than as digital magnitude data. This alternative format allows the computing device to use the signature data directly as an index to locate the mark in a media storage device. Instead of storing the location and magnitude of each signature measurement of a true mark, the computing device can store the presence or absence of significant signature features within the true mark and the location of each evaluation. For example, in the case of a two-dimensional data matrix symbol that does not carry or encode a unique identifier or serial number, the computing device may store the signature data for the mark as strings that each encode the presence or absence of each feature in a subregion that exceeds a minimum magnitude threshold, but no further data regarding the magnitude or number of features in any one feature. In this example, Figure 2AEach sub-region in the marker 200 has four data bits, one bit for each set of metrics, where a "1" indicates that a particular metric has a significant characteristic in that sub-region. For example, 0000 (hexadecimal 0) might mean that in that particular sub-region, none of the four tested characteristics are present to a degree greater than a threshold magnitude. A value of 1111 (hexadecimal F) means that all four tested characteristics are present to a degree greater than the minimum value in that particular sub-region.
[0051] In the example of mark 200, the encoding of the first six sub-regions is as follows. (1) The first sub-region 202 has no artifacts for average brightness: it is a satisfactory black. It has no grid deviation. It does have a large white gap. It has no edge shape artifacts: its edges are straight and uniform. Therefore, the computing device encodes it as 0010. (2) The second sub-region 204 has gaps and edge shape artifacts. Therefore, the computing device encodes it as 0011. (3) The third sub-region 206 is obviously gray rather than black, but has no other artifacts. Therefore, the computing device encodes it as 1000. (4) The fourth sub-region 208 has no artifacts. Therefore, the computing device encodes it as 0000. (5) The fifth sub-region 210 has grid deviation, but no other artifacts. Therefore, the computing device encodes it as 0100. (6) The sixth sub-region 212 has no artifacts. Therefore, the computing device encodes it as 0000. Thus, the first six modules are encoded as, for example, binary 001000111000000001000000, hexadecimal 238040, decimal 35-128-64, or ASCII characters #€@. Taking a two-dimensional Data Matrix code as an example, where the typical symbol size is 22×22 subregions, and assuming that the data is packed with two modules per character (byte), the length of the ASCII string portion containing the unique signature data is 242 characters. The computing device can store the signature string of the true mark in a database, a flat file, a text document, or any other structure suitable for storing varying numbers of strings. In some implementations, the signature can be processed by signature converter 214 and / or HID generator 216. Signature converter 214 can generate multiple converted signatures, as described below. In some implementations, the HID is generated first, and then the conversion is performed on the HID. Note that, as described further below, performing multiple comparisons can improve matching accuracy without incurring a performance penalty, since execution time is dominated by memory transfers (e.g., persisting to random access memory (RAM)) rather than the computation required for matching.
[0052] Back to Figure 1B, the second computing device 110 uses the location identifier corresponding to the subset of the signature's metrics to derive the HID. In some implementations, the second computing device 110 uses the index number corresponding to the subset of the highest magnitude metrics of the signature to derive the HID. When deriving the HID, the second computing device 110 may use the index number corresponding to each subset of metrics as a block within the overall HID. The second computing device 110 stores the signature and HID (e.g., using a database program) in a media storage device 112 (e.g., a redundant array of independent disks), such that the HID is associated with the signature. In some implementations, the HID can also be used to look up the signature (e.g., the second computing device 110 uses the database program to set the HID as an index key for the signature). In some implementations, the media storage device 112 is comprised of multiple devices distributed geographically and temporally, as in the case of cloud storage services. In some implementations, one or more of the feature measurement, analysis of the various metric sets, signature generation, HID derivation, and storage of the signature and HID is performed by the first computing device 108. In some implementations, all of these steps are performed by the first computing device 108, and the media storage device 112 is directly accessed by the first computing device 108. In some implementations, the second computing device 110 is not used. In some implementations, the second computing device 110 transmits the signature and HID to a separate database server (i.e., another computing device), which stores the signature and HID in the media storage device 112.
[0053] Continue to refer Figure 1B , an unverified physical object 114 ("unverified object 114"), which may or may not be a legitimate physical object 104, needs to be tested to ensure that it is not counterfeit or illegal. The possible implementations of the unverified object 114 are the same as the possible implementations of the legitimate physical object 104. A candidate marker 116 is on the unverified object 114. The possible implementations of the candidate marker 116 are the same as the possible implementations of the authentic marker 102. A second image acquisition device 118 (e.g., a camera, a machine vision device, a scanner, etc.) captures an image of the candidate marker 116 and transmits the image to a third computing device 120. Note that the image can be (but does not have to be) a picture captured with a traditional camera (e.g., the second image acquisition device 118), and the image can also include visual data from a video recording; visual data from a portion of an augmented reality or virtual reality environment; and other image data sources.
[0054] As with the first image acquisition device 106 and the first computing device 108 , the second image acquisition device 118 may be part of the third computing device 120 , and the transmission of the acquired image of the candidate marker 116 may be internal (i.e., from the second image acquisition device 118 to the logic circuitry of the third computing device 120 ).
[0055] The third computing device 120 (or the logic therein) receives the captured image and sends the captured image to the second computing device 110. The second computing device 110 uses the captured image to measure various features of the candidate marker 116, including the same features that the second computing device 110 measured on the true marker 102. The result of this measurement is a set of measurements of the characteristic. In continuous measurements, the result may include one or more sets of measurements for each measured feature. The second computing device 110 then generates a signature based on the set (or sets) of measurements and uses the same technique as used to generate the signature of the true marker 102. If the candidate marker 116 is actually the true marker 102 (or is generated by the same process as the true marker 102), the signature created by the second computing device 110 will be based on artifacts in the true marker 102, just like the signature generated from the captured image of the true marker 102. On the other hand, if the candidate marking 116 is not the authentic marking 102 (e.g., is forged), the signature generated from the latest image will be based on any other characteristics exhibited by the candidate marking 116 - artifacts of the forging process, the absence of artifacts in the marking application device 100, etc. The second computing device 110 uses the location identifier corresponding to the subset of metrics of the signature of the candidate marker 116 (eg, the index number of the subset of highest magnitude metrics) to derive the HID of the candidate marker 116 .
[0056] In addition, the second computing device 110 may include a transformer 110A that applies a transformation function to transform the signed data series values to generate transformed data series versions 112A, 112B, and 112C of the electronic signature, which may be referred to as transformed signatures (collectively, "transformed signatures 112"). The second computing device 110 may use various data sequence transformation techniques to generate the transformed signatures 112. Examples of transformations may include shifting, distorting, stretching, scaling, performing geometric operations, or utilizing a lookup table of transformed values. The transformation function may map data sequence elements from one value to another within the same vector space 113, and the fingerprint may be a data sequence member of the vector space 113.
[0057] In some implementations, it is assumed that some type of distortion may be present (even if not identified), so the transformer 110A applies at least one transformation to each candidate marker 116, thereby avoiding the need to detect whether any distortion is actually present. In some implementations, one or more types of transformations are applied in multiple directions with multiple offsets (e.g., shift operations). By applying multiple correction variants and then using the most effective variant (i.e., maximizing the fingerprint similarity score), various image distortions can be considered in the marker authentication process without actually identifying the exact type of distortion. Because the transformer 110A always applies multiple correction transforms, the system can operate in an agnostic manner without the need to precisely parameterize the distortion on which it operates. This can be understood as a "blind" correction that is effective across a variety of distortions without the need to identify the type of distortion present in the image.
[0058] However, in some implementations, the transform function can be selected based on the detected image distortion. For example, if the distortion is tilt, a bit shift transform can be applied. Thus, in some implementations, the transform function can remove an approximate correction of the target distortion from the data sequence. In some implementations, the transform function is parameterized and applied two or more times using two or more parameter values, thereby removing an approximate correction of the target distortion from the data sequence. For example, by applying the transform function one or more times, the distorted values in the data sequence are corrected (or approximately corrected), thereby completely or substantially eliminating the distortion in the data sequence.
[0059] The second computing device 110 can generate a predefined and / or configurable number of transformed signatures 112, such as 2, 3, 5, 10, etc., based on the signature of the candidate tag 116. As further described below, the second computing device 110 can use the signature of the candidate tag 116 and the transformed signature 112 to authenticate the tag, which improves the authentication accuracy. The second computing device 110 uses the same technique used to derive the HID of the signature of the candidate tag 116 to derive the HID of the transformed signature 112.
[0060] In general, at least some (possibly all) of the noise components from image formation are allowed to propagate into the image and then into the space of the fingerprint signature. During the fingerprint extraction process, geometric alignment deviations in directions orthogonal to the strips are mostly eliminated because the signature feature regions can be correctly aligned along the edges of the strips. However, geometric deviations in other directions still exist. By propagating the geometric distortion function from the image space to the fingerprint signature space, the application of the transformation in the fingerprint space is less complex from a computational point of view, while still achieving similar or even better results. The perspective distortion of surfaces and planes can be approximated by simpler low-order one-dimensional functions in the fingerprint feature space. Without estimating the model parameters, the parameter space can be sampled and a small number of transformed fingerprint signatures can be created, at least one of which will be close to the ideal fingerprint signature without distortion.
[0061] Figure 2B A flowchart and example of a bit-shift transformation are shown. The bit-shift transformation is an example of a function that can be used to create a transformation signature. The original sequence 230a is displayed at the top of the bit signature list 230, followed by a series of four transformations 230B, 230C, 230D, and 230E. The topmost transformation signature 230B is generated by shifting each bit of the original sequence 230A left by two bits. For example, the third position in the original sequence 230A becomes the first position in the transformed sequence 230B, the fourth position in the original sequence 2302 becomes the second position in the transformed sequence 230B, and so on. For example, since the transformed sequence 230B is created by shifting two positions, the first bit in the original sequence 230A becomes the second-to-last bit in the transformed sequence 230B. The second transformed sequence 230C is created by shifting the bits left by one position; the third transformed sequence 230D is created by shifting the bits right by one position; and the fourth transformed sequence 230E is created by shifting the bits right by two positions. The number of bits to be shifted in the data sequence (e.g., 1 bit to the left, 2 bits to the left, 1 bit to the right, etc.) can be configured or parameterized. As described above, any number of transformation sequences can be created, and techniques other than bit shifting can be used. For example, in a right shift, a predefined set of bits (e.g., all zeros) can be prepended instead of adding bits from the end of the sequence to the beginning of the sequence.
[0062] Data converted by displacement transform can be generated using the technique described in U.S. Patent No. 9940572, as shown in flowchart 220. This is particularly effective for "high variability" printing technologies (such as thermal transfer or inkjet), where sufficiently discernible abnormal artifacts can easily serve as repeatable HID positions. However, other printing technologies may not exhibit the same type of significant variation.
[0063] In some implementations, the computing device filters the waveform to obtain a filtered waveform. Examples of possible filters include smoothing processes such as moving averages, time-domain convolution, Fourier series operations, spatial bandpass filters, and low-pass filters. In some implementations, to calculate the moving average, the computing device obtains two or more data points from a set of metrics, adds them together, divides their sum by the total number of data points added, replaces the first data point with the average, and repeats this process for each successive data point until the end of the set of metrics is reached.
[0064] In flowchart 220, the computing device may extract (222) a waveform from the metric. For example, the computing device may parse the metric into a set of ordered pairs (the metric and an identifier (e.g., an index value) of a position in the tag where the metric was obtained) and parse the ordered pairs into waveforms.
[0065] The computing device may filter the waveform (224) in a manner that allows information to "diffuse." For example, applying a spatial filter before window averaging may cause the data within each window to include some information contained in adjacent windows. In other words, the computing device incorporates information from adjacent windows into the averaged data points within a particular window.
[0066] The computing device may extract (226) properties of the filtered waveform, such as zero crossing locations, peak-to-peak distances, integrals or differentials of the data, and the like. Any or all of these techniques may be used as a basis for constructing the HID. In some implementations, the computing device divides the filtered waveform into multiple sections or "bands" and calculates a local average of the waveform in each band. In some implementations, the computing device extracts properties of the unfiltered waveform (i.e., without performing a filtering process).
[0067] The computing device may form (228) a hash identifier based on the extracted attributes (of one or more filtered waveforms). The computing device may normalize the band averages and compose a binary representation of the data. The binary string represents the overall average value of the local average value above or below the band average value. This binary string now becomes the HID block for this particular metric. For each remaining metric, the computing device composes the remainder of the HID block in a similar manner. Once the hash identifier is determined, it may be transformed (229), for example using a bit shift transform, as described above.
[0068] In some implementations, when using this technique, the computing device evaluates the stored HID of the true tag against the HID of the incoming tag in a different manner than described above. For example, the computing device may use Boolean operations to calculate the HID match score instead of a fuzzy logic search. In some implementations, the computing device applies a bitwise inverted OR to the original and incoming candidate bit patterns. For example, if the original HID block is 110101011, the computing device may evaluate the incoming candidate as follows: Authentic (block 1): 1 1 0 1 0 1 0 1 1 Candidate (block 1): 1 1 0 0 0 1 1 0 1 NOT (XOR) result: 1 1 1 0 1 1 0 0 1
[0069] The computing device then sums the "identical" bits represented by the Boolean true result (1) (e.g., calculates the Hamming distance). This sum becomes the HID score for that block. The computing device performs this process for all blocks in all original HID records based on the HID of the candidate tag. Once this process is complete, the computing device evaluates the final filtered list of original electronic signatures against the complete candidate (e.g., submitted mobile phone) electronic signatures described previously. If any electronic signature in the filtered list produces a "true" result for the candidate electronic signature data, the computing device reports a verification result. If none of the filtered lists produce a "true" result, the computing device reports the verification result as "fake" (e.g., to the user through a user interface - locally or by sending a message to a remote device (such as a mobile phone)).
[0070] In some implementations, the computing device can retain some amplitude information during the filtering process, rather than representing each frequency band of the waveform as a binary value. For example, the computing device can use the actual frequency band average to compose the HID. The computing device then uses covariance or numerical correlation to evaluate the match score of the incoming candidate HID, rather than using the Hamming distance as a similarity metric (to determine whether the HID is a close match). By varying the width and number of averaging windows, the computing device can increase or decrease the HID resolution as needed, with more and / or narrower windows producing HIDs with higher discrimination power (but also larger and requiring more memory to store), and wider and / or fewer windows having lower storage requirements (due to greater data reduction), but proportionally lower discrimination power.
[0071] To illustrate how data can be reduced (thereby increasing search speed and reducing storage requirements) by using one or more of the techniques discussed, for example, the original waveform may have 700 data points. Each is a 32-bit floating point number, which is over 22 kB. In the Hamming / binary example, the computing device reduces the data to 9 bits. This represents a dimensionality reduction from 700 32-bit data points to 9 1-bit data points. When the computing device retains the amplitude information (the actual band average), the dimensionality is reduced to 32 × 9 = 288 bytes. Therefore, the dimensionality reduction in this example would be from 700 32-bit points to 9 32-bit points.
[0072] In some implementations, the computing device employs a procedure to select or prioritize metrics extracted from certain regions of the marker over metrics extracted from less preferred regions of the marker. This accounts for the fact that in low-variability scenarios, certain regions of the marker will carry more usable signature features than other regions to construct a reliable HID. This weighting can be accomplished in a variety of ways, including time-domain signal amplitude analysis, frequency-domain energy analysis, and other methods. In short, the computing device uses different sets of rules to weight metrics, depending on, for example, whether the region being analyzed exhibits high energy.
[0073] In some implementations, the computing device establishes a "weighted score" for each available signature feature metric data set using a measure of total signal energy derived from a Fourier power series of the metric data. The computing device calculates the total signal energy by summing the individual spectral energies over the power series, where the energy of each spectral component is calculated as the square root of the sum of the squares of the real and imaginary parts of the frequency domain number.
[0074] In some implementations, to calculate the weighted score, the computing device sums the amplitudes of each frequency band in the particular power sequence it is analyzing. Once the computing device has a weighted score for each metric data set, it can sort them in descending order of score and select the metric data set with the highest score (highest signal energy) to use in constructing the HID for that tag.
[0075] In some implementations, the computing device uses the above-described techniques when operating on a UPC linear barcode. In this case, there are 52 HID blocks available, two for each "bar" in the symbol (one metric data series extracted from the leading edge of each bar and one metric data series extracted from the trailing edge, excluding the left and right guard bars). For example, the computing device may choose to use the metrics with the top five highest "feature energies" to perform the HID block operation.
[0076] In some implementations, when creating the HID key for the original UPC barcode, the computing device stores all 52 signature measurement data sets and the HID derived therefrom. Assuming a HID block length of 10 bits, the computing device will ultimately obtain a HID with a total length of 520 bits.
[0077] For efficient processing, the computing device can use a weighting scheme that is compatible with the bit operations used in the above-mentioned HID comparison method. In some implementations, the computing device constructs a mask that has Boolean TRUE values at bit positions corresponding to high / priority weighted HID blocks and Boolean FALSE values at all other bit positions. In this case, only the block with the highest energy signal (and therefore the best discrimination power) is used to calculate the HID similarity metric between the two HIDs, and a simple bit-by-bit AND operation is performed on the mask.
[0078] As a simplified example, where the computing device has constructed an 8-block HID, each block may have 10 bits, resulting in an 80-bit HID. Furthermore, in this example, the computing device will only use the first 5 highest energy HID blocks to compare the signature HID (A) of the original (authentic) tag to the HID (B) of the candidate tag.
[0079] Figure 2C An example of a comparison between the signatures of two images of a true marker is shown. The first example 250A shows the offset between waveforms representing marker images taken by different imaging devices for four images. The solid line represents the training waveform (each image was taken in a controlled environment) and the dashed line represents the test waveform (each image was taken in an uncontrolled environment). Note that the waveforms are typically offset laterally due to perspective distortion in each image. Given this, bit shift correction (e.g., Figure 2B ) can be an effective correction. When this offset technique is used to correct for perspective distortion, such as in the second set of examples 250B, the waveforms become better aligned. The dotted line represents the waveform after the dotted waveform is offset. Eliminating the out-of-phase effect caused by keystone distortion allows the calculation of the "true" similarity between fingerprint data, effectively correcting image distortion in the fingerprint data domain, and enabling more accurate determination of marking accuracy. The same principle can be utilized in search algorithms, where a similarity measure is performed on a reduced resolution representation of the same fingerprint data. For HID searches, the data bit depth can be reduced to 1 and a Hamming comparison can be performed.
[0080] Back to Figure 1B, the second computing device 110 compares the HID of the candidate tag 116 and the HID of the converted signature with the HID of the authentic tag stored in the media storage device 112 (e.g., by querying a database). As a result of the comparison, the second computing device 110 either does not receive a closely matching result (e.g., a result that does not pass a predetermined threshold) or receives one or more closely matching HIDs from the media storage device 114. If the second computing device 110 does not receive a closely matching result, the second computing device 110 may indicate to the third computing device 120 (e.g., by sending a message) that the candidate tag 116 cannot be verified (e.g., sending a message indicating that the candidate tag 116 is not authentic). The third computing device 120 receives the message and may indicate, for example, on a user interface or by logging a message in a log file that the candidate tag 116 cannot be verified (or that the candidate tag 116 is forged). In some implementations, the third computing device 118 performs one or more of the measuring, generating, and deriving steps and sends the signature (or HID, if the third computing device 118 derives the HID) to the second computing device 110.
[0081] On the other hand, if the second computing device 110 finds one or more HIDs that closely match the HID of the candidate tag 116 or the HID of the converted signature, the second computing device 110 will respond by retrieving the signatures associated with the closely matching HDDs from the media storage device 112. The second computing device can retrieve, for example, a predefined and / or configurable number of results (e.g., the 100 closest matching results, 500 results, 1000 results, etc.), all results that meet the matching criteria (e.g., 70% matching, 80% matching, 90% matching, etc.), or up to a predefined and / or configurable number (e.g., the closest matching results at 90% matching, no more than 100 results). The second computing device 110 then compares the actual signature and the converted signature it generated for the candidate tag 116 with the retrieved true signature. The second computing device 110 repeats this process for each signature associated with the closely matching HID. If second computing device 110 cannot closely match the signature of candidate tag 116 or any transformed signature with any retrieved signature, second computing device 110 may indicate (e.g., by sending a message) to third computing device 120 that candidate tag 116 cannot be verified. Third computing device 120 receives the message and may indicate, for example, on a user interface, that candidate tag 116 cannot be verified. On the other hand, if second computing device 110 is able to closely match the signature of candidate tag 116 or any transformed signature with any retrieved signature, second computing device 110 indicates (e.g., by sending a message) to third computing device 120 that candidate tag 116 is authentic.
[0082] Figure 3A A flow chart illustrating an example process for distortion-tolerant tag authentication is shown. For convenience, process 300 will be described as being performed by a system for distortion-tolerant tag authentication, e.g. Figure 1B The process 300 is a distortion-tolerant marker authentication system that is suitably programmed to perform the process. The operations of process 300 may also be implemented as instructions stored on one or more computer-readable media, which may be non-transitory, and execution of the instructions by one or more data processing devices may cause the one or more data processing devices to perform the operations of process 300. One or more other components described herein may perform the operations of process 300. Process 300 uses a distortion adaptation process to authenticate a candidate marker in an image, which converts a data sequence of an electronic signature of the candidate marker, as further described below.
[0083] As background, Figure 3B Exemplary marker distortion is shown. Process 300 is configured to correct for such distortion, which may occur when an image of a marker is captured in an uncontrolled environment, such as when a human user captures the image with a cell phone camera. The figure includes an image 370A of a marker captured in ambient light, with no apparent distortion. The figure also includes distorted images of a marker captured with: a low-angle spotlight (370B); shadows and spotlight glare (370C); low-angle light and rotation (370D); tilt (370E, 370F); shadows and diffuse glare (370G, 370H); shadows and tilt (370I); and low-angle sidelight (370J).
[0084] Back to Figure 3A , the system can obtain (310) an image of the true marker. As described above, a first image acquisition device, such as a camera, machine vision device, scanner, or other image acquisition device, can acquire an image of the true marker and transmit the acquired image to a computing device in the system, such as by transmitting the marker over a network. In some implementations, obtaining (310) the image of the true marker includes simply receiving the image from another system or process, rather than directly acquiring the image.
[0085] The system can determine (315) the electronic signature of the authentic marker by generating the signature using measured features of the image of the authentic marker. The system can use a reference Figure 1B The system may determine a signature using the techniques described herein or similar techniques. For example, the system may measure and rank characteristics of the markers and use those metrics that meet a predetermined threshold as part of the signature. The system may store the signature in a persistent storage device.
[0086] The system may obtain (320) data describing the candidate marker, which may include reference Figure 3B The distortion described or other image distortion. As described above, a second image acquisition device, which can be a camera, machine vision device, scanner, or other image acquisition device, can acquire an image of the candidate marker and transmit the acquired image to a second computing device. The second computing device can transmit the marker to the system, such as by transmitting the marker over a network. The acquiring (320) can involve acquiring an image or receiving an image acquired by another system or process.
[0087] The system can generate (325) a candidate marker signature. The system can use the techniques of operation 315. In some implementations, the system can receive the candidate marker signature instead of, or in addition to, generating the signature. For example, a computing device coupled to the system can generate the signature and provide the signature to the system.
[0088] The system can generate (330) two or more transformed data series versions of the electronic signature by transforming the data series values of the electronic candidate token signature. The candidate signature and these transformed electronic signature data series versions can be referred to as a "candidate signature set," and the candidate signature set can be used to determine the authenticity of the token, as described below.
[0089] In some implementations, the system can use predefined and / or configurable transformations to generate the transformed data series. For example, the system can be configured to generate four transformed data sequence versions of the signature by: (i) shifting the bits to the left by two positions; (ii) shifting the bits to the left by one position; (iii) shifting the bits to the left by one position; and (iv) shifting the bits to the right by two positions. Figure 2B In some implementations, the system may include multiple transform functions, and each transform function may be associated with or approximate one or more distortion correction types, as described below with reference to Figure 3C Note that because the distortion may be limited to a portion of a marker, a transform can only be applied to a portion of the data series generated for the marker. For example, one transform can be applied to the data series values representing the first portion of the marker, but not to the data series values representing the second portion of the marker, and a third transform (which may be the same or different from the second transform) can be applied to the data values representing the third portion of the marker.
[0090] As described above, in some implementations, the system can include multiple transforms associated with or approximating one or more distortion correction types, and the system can apply the transforms based on the type of distortion present in the electronic signature. Figure 3CA flow chart and example of creating a transformed signature in a system with multiple transforms is shown. In this example, the system applies one or more transform functions 382A...382M, 382N...382Z (collectively referred to as "transform functions 382") to convert to a candidate signature 380. Transform functions 382 may include shifting, distorting, stretching, scaling, performing geometric operations, utilizing a lookup table of transformed values, and / or other transform functions. Some transform functions (e.g., 382N...382Z) may be parameterized. The result is a transformation of signature_1 384A to transformed signature_N 384N. Candidate signature 380 and transformed signatures 384A, 384N form a candidate signature set.
[0091] This process is shown in greater detail in flowchart 390. After obtaining an electronic signature (e.g., candidate signature 380) as a data series of a candidate marker, the system identifies (390A) at least one type of distortion in the electronic signature generated from measured characteristics of an image of the candidate marker.
[0092] The system selects (390B) a transform function based on the particular distortion type identified. In some implementations, the system can include a mapping from distortion type to transform function. For example, according to the mapping, if the signature indicates glare, the system can apply a first transform, if the signature indicates rotation, the system can apply a second transform, and if the signature indicates tilt, the system can apply a third transform. In some implementations, the system can apply multiple transforms based on the type of distortion present. For example, if the signature indicates glare and rotation, the system can apply a first and a second transform.
[0093] The system transforms (390C) the data sequence using the selected transformation function to generate at least one transformed data sequence, e.g., using Figure 3A The system can utilize (390D) the data sequence and the transformed data sequence to confirm that the candidate signature is genuine, for example, as described below with reference to step 350. The result of applying the transformation is one or more transformed data sequences, and these transformed data sequences, along with the data sequence of the original candidate signature (i.e., the signature), can be added to the candidate signature set.
[0094] return Figure 3A , the system can determine (335) a hash identifier (HID) of a signature in the candidate signature set. Figure 4 and Figure 5 , describes techniques that a computing device can use to determine a HID from a signature (including a signature determined by transforming a candidate signature) by identifying a subset of the highest magnitude metrics of a marked electronic signature and deriving the HID from a location identifier associated with the subset.
[0095] For each measured feature (and for each set of metrics for a feature if it is measured multiple times), the computing device may take the set of metrics that form part of the electronic signature and sort the set by value. Figure 4 In FIG, a first set 402 of measurements (shown in list form) represents the coloring of individual cells of the 2D barcode, with each cell having an associated index number. The data for each cell is unitless at this point, but when the computing device initially performs the coloring measurement, it is performed in the form of a grayscale value. The first set 402 constitutes exactly one of multiple sets of measurements for the electronic signature of the 2D barcode. The computing device sorts the first set 402 by the magnitude of the data values and extracts a subset 404 of index numbers corresponding to the subset of data values with the highest amplitude. The computing device then sets the subset 404 of index values as the HID block for the first set of measurements 402. Once the complete HID is created, the converter 410 can apply a transformation function to create the converted signatures 412A, 412N, as described below.
[0096] In another example, Figure 5 In , a first set 502 of metrics corresponds to a first feature of a marker (e.g., a true marker or a candidate marker), a second set 504 of metrics corresponds to a second feature of the marker, and a third set 506 of metrics (the "nth set" or final set) corresponds to a third feature of the marker. However, there can be any number of sets of metrics. In this example, each member of each set of metrics includes (1) an index value, which is associated with a raster position of a subregion of the marker from which the measurement of the feature was obtained, and (2) a data value, which is the measurement value itself or a quantification value derived from the measurement value (e.g., after some statistical processing and normalization). The computing device sorts each set of metrics by data value. For each set of metrics, the computing device extracts the index value corresponding to the highest magnitude subset of the data values. In this example, each highest magnitude subset is the first twenty-five data values of a set of metrics. The computing device derives a first HID block 508 from the index values corresponding to the highest magnitude subset of the first set 502 of metrics. The computing device similarly derives a second HID block 510 from the index values corresponding to the highest magnitude subset of the second set 504 of metrics. The computing device continues this process until it performs this process for each set of measurements (i.e., deriving the third or "nth" HID block 512 from the nth set 506 of measurements), thereby generating a set of HID blocks. The computing device forms a HID by aggregating the HID blocks. In this example, the HID blocks themselves contain the extracted index values. As described above, once the complete HID is created, the transformer 510 can apply the transformation function to create transformed signatures 512A, 512N, as further described below.
[0097] return Figure 3A , the system can retrieve ( 340 ) the true tag signature using the HID determined in step 335 . Figure 6 An example of how the computing device compares the overall HID 602A, 602B of the true tag to the overall HID of the candidate tag is shown. The computing device can take each individual HID block of the HID value of the true signature, compare it to the corresponding block of the HID value of the candidate signature, and assign a match score. The computing device can then combine each score into an overall match score. Generally, if the overall match score meets or exceeds a predetermined threshold score, the computing device considers the HID to be a close match. For example, the computing device can use a predetermined threshold score of 20, which means that if the score is 20 or higher, the computing device considers the two HIDs to be a close match. The threshold can be as low as zero, for example, when the match score can be a negative number. In Figure 6 In the example shown, HID 602A has a match score of 21, while HID 602B has a match score of 4. Therefore, HID 602A has the highest match score, and since this match score also exceeds the threshold, HID 602A can be included in the results retrieved from the database. In some implementations, the computing device ignores the minimum score and only considers the top N HID scores (e.g., if N is 10, the top 10 are considered). In this case, the computing device will always test the top 10 best HID matches. This addresses the possibility of an inaccurate HID cutoff value, resulting in false negatives during the filtering step (at the expense of unnecessary calculations for actual non-authentic candidates). The computing device then retrieves the signature associated with the authentic HID value. The computing device repeats this process until it has compared the candidate HID value with multiple (possibly all) HID values stored in the database of authentic tag signatures. The result of this process will be a subset of the entire set of authentic tag signatures, and the computing device can then compare each subset with the candidate tag's signature (e.g., using a "brute force" comparison). The computing device may further perform this comparison on all HIDs 601 from the candidate signature set.
[0098] One or more computing devices described herein can compare electronic signatures (e.g., electronic signatures of a candidate tag and a genuine tag) to each other in a variety of ways. In some embodiments, the computing device compares one electronic signature (e.g., electronic signature of a candidate tag) to another electronic signature (e.g., electronic signature of a genuine tag) using direct numerical correlation. For example, the computing device array index can match the raw measurement set of each feature of the two tags. The computing device can also perform a normalized correlation of each raw set of the genuine tag with the same order measurement set extracted from the candidate tag. The computing device can then use the correlation results to make a match / no match decision (authentic vs. counterfeit).
[0099] In another example, the computing device may compare the candidate signature to the true signature by using autocorrelation, for example by comparing the autocorrelation sequence of the ranked metrics of the candidate signature to the autocorrelation sequence of the (stored) ranked true signature. For clarity, the well-known statistical operation: is a common normalized correlation equation, where r is the correlation result, n is the length of the measurement data list, and x and y are the measurement data sets of the true label and the candidate label, respectively. When the computing device performs the autocorrelation function, the data sets x and y are the same.
[0100] To generate the autocorrelation sequence, in some implementations, the computing device may perform the operations described in the normalized correlation equation multiple times, each time offsetting the sequence x relative to the sequence y by one additional index position (remember that y is a copy of x). As the offset is performed, the last index in the y data sequence is exceeded due to the x index offset, so the data set "wraps around" to the beginning. In some implementations, the computing device achieves this by doubling the y data and sliding the x data from offset 0 to offset n to generate the autocorrelation sequence.
[0101] In some implementations, rather than storing the entire signature on a media storage device, the computing device stores a set of polynomial coefficients that describe (in a predetermined order and with a predetermined precision) a best-fit curve that matches the shape of the autocorrelation results. This is possible because the computing device performs the signature generation process on sorted metric data, and therefore, the autocorrelation sequence of the characteristic data (i.e., the metric that helps represent artifacts within the true signature) is typically a simple polynomial curve.
[0102] In some implementations, the computing device may calculate r xy , where each item x i are artifacts represented by their magnitude and position, and each item y i =x (i+i) , where j is the offset between the two data sets, j = 0 to (n-1). Because x i Sort by magnitude, and the magnitude is x i The most significant bit of , so there is a very strong correlation at or near j = 0, and it drops rapidly to j = n / 2. Since y is a copy of x, j and nj can be interchanged, and the autocorrelation sequence forms a U-shaped curve, an example of which is shown in 700. Figure 7 As shown in FIG, the curve is necessarily symmetric about j = 0 and j = n / 2. Therefore, the calculation device in this embodiment only needs to calculate half of the curve, although Figure 7 In FIG, for the sake of clarity, the entire curve from j=0 to j=n is shown.
[0103] In some embodiments, the computing device may use the actual autocorrelation number and then repeat the process for the candidate marker using a polynomial modeling curve. In practice, it has been found that a sixth-order equation using six-byte floating-point values as coefficients will tend to match the true signature data within a one percent curve fitting error or "recognition fidelity." The resulting match scores obtained by the computing device may be within one percent of each other. This is true for both high match scores (which would be expected if the candidate marker is genuine) and low match scores (which would be expected if the candidate marker is not genuine).
[0104] In some embodiments, a computing device that analyzes metrics of a mark for the purpose of generating an electronic signature may constrain and normalize the metrics it uses to generate the signature. For example, the computing device may represent the polynomial coefficients as fixed precision, the autocorrelation data itself as values between -1 and +1, and use array index positions within the analyzed mark (real or candidate) as a sorted order list. If the analyzed mark is a 2D data matrix, the array index may be a raster sort index of the cell position within the mark, sorted from a conventional origin data of the symbol being used. In one common type of 2D data matrix, the origin is the point where two solid lines defining the left and bottom sides of the grid intersect.
[0105] In some embodiments, the computing device may compare (attempt to match) the true signature to the candidate signature as follows. The computing device may reconstruct the signature using stored polynomial coefficients, autocorrelating the metrics in each list (i.e., for each measured feature) to generate polynomial coefficients, and comparing the two sets of polynomial coefficients (comparing the two autocorrelation sequences). The computing device may perform this comparison in a variety of ways. For example, the computing device may attempt to correlate the autocorrelation sequence of the candidate signature with the (reconstructed) autocorrelation curve of the signature of the true signature. Alternatively or additionally, the computing device may construct a curve for each autocorrelation sequence (candidate and true signature) and perform a pair of curves (e.g., Figure 7 The curve 700 and Figure 8 The correlation between two sets of autocorrelation values for a given feature (or a given set of metrics for a feature) becomes the matching score for that feature or metric set.
[0106] In some embodiments, a computing device analyzing metrics of a token for purposes of generating an electronic signature may apply a power series analysis to the autocorrelation data of the candidate token and the autocorrelation data of the true token. The computing device may apply this power series analysis using a discrete Fourier transform ("DFT"): where Xk is the kth thfrequency components, N is the length of the metric list, and x is the metric data set. The computing device can calculate the DFT power series, analyze the amplitude of each frequency component (represented by the complex number in the DFT series), and discard the phase component. The resulting data describes the distribution of spectral energy of the metric data from low to high frequencies and forms the basis for further analysis.
[0107] In some embodiments, a computing device analyzing the metrics of a signature to generate an electronic signature may use two frequency domain analyses: kurtosis and distribution deviation. In this context, distribution deviation refers to a measure of the energy distribution around a central band of frequencies across the entire frequency spectrum. To perform kurtosis, the computing device may use the following formula: where Y is the mean of the power series amplitude data, s is the standard deviation of the amplitude, and N is the number of discrete spectral frequencies analyzed.
[0108] In some embodiments, to calculate the distribution deviation, the second calculation device may use the following formula: Where N is the number of discrete spectral frequencies analyzed. When using frequency domain analysis (e.g., using the DFT), in some embodiments, the computing device considers the following criteria: when analyzed in the frequency domain, the smooth polynomial curve of the signature of the genuine marker (generated by sorting by magnitude) produces a recognizable feature in the spectral signature. If the order in which the metric data for the candidate marker is extracted is the same as the order in which it was extracted from the genuine marker, then if the symbol is the genuine marker, the candidate marker will exhibit a similar spectral energy distribution. In other words, the sort order of the genuine marker is "consistent" with the metric magnitude of the candidate marker. Inconsistencies in sort magnitude or other superimposed signals (such as copy artifacts) often appear as high-frequency components that are absent in the spectrum of the genuine marker, providing an additional measure of marker authenticity. This addresses the possibility that a fabricated autocorrelation sequence could still meet the minimum statistical match threshold for the genuine marker. The distribution characteristics of the DFT power levels of such a signal will reveal poor match quality through the presence of high frequencies in the candidate sequence's small magnitude matching errors. This can indicate a copy of the genuine marker. Specifically, the computing device considers the spectrum of the genuine marker to be high in kurtosis and high in distribution ratio. In some implementations, the computing device uses the power series distribution information in conjunction with the matching score as a confidence measure for candidate marker verification.
[0109] The computing device can then determine whether the candidate tag is a true tag based on all matching scores of the various features. Figure 7 In , the score can be used to determine (710) whether the tag is a true tag, for example, using Figure 3AIf the token is genuine, token verification (715) may be provided, for example, using Figure 3A If the flag is not true, a failure notification (720) may be provided, for example, using Figure 3B The operation of step 360. Figure 8 The same technique is shown in FIG, where a score can be used to determine (810) whether a token is genuine. If the token is genuine, token verification (815) can be provided; if the token is not genuine, a failure notification (820) can be provided. Steps 350, 355, and 360 are described below.
[0110] return Figure 3A , the system can determine (350) whether the candidate token is authentic by using the data series and the transformed data series (i.e., the candidate signature set) and comparing the data series with the authentic token, as described above. For example, the system can compare at least one electronic signature of the authentic token retrieved from the stored authentic token set.
[0111] In some implementations, the system uses the HID to retrieve multiple results from a database of true marker signatures. For example, the system can retrieve the N true results that are most likely to match the candidate marker, e.g., the results with the largest match scores compared to the values in the candidate signature set. Note that N can be 1 (matching only the most likely true marker) or greater than 1 (matching multiple true markers). Once such true markers are retrieved, the system can compare the signatures in the candidate signature set instead of, or in addition to, comparing the HIDs. Comparing the signatures can provide a more accurate comparison.
[0112] If the flag is true, the system can provide (355) flag verification, if the flag is not true, the system can provide (360) failure notification. In either case, the system can display the result on the user interface or record it in a log file.
[0113] Figure 9 and Figure 10 shows example results of applying the transformation function. Figure 9 In Figure 9, the first graph 910 shows the results of comparing signatures with markers having various distortions. Lines 915A and 915B show the similarity between the score of the authentic marker's signature (915A) and the next best matching signature (915B), with each point on the line representing the score of one marker's signature. (For example, the point at 9 on the X-axis is the result for the 9th sample.) In graph 910, no deskew correction is applied, and for some samples (e.g., 3, 4, and 12), the lines intersect or nearly intersect, indicating that the system will be unable to distinguish between authentic and forged markers.
[0114] In graph 920, lines 925A and 925B again show the similarity between the scores of the true label (925A) and the next best match (925B), but with offset correction applied. In this case, the true sample 925A is strongly distinguishable from the next best match 925B.
[0115] exist Figure 10 In Figure 1030, graphs 1030 and 1040 show the same data, but for the HID of the signature rather than the signature itself. As described above, for the untransformed data (graph 1030), the score 1035A for the real sample intersects or nearly intersects the score 1035B for the next best match. In contrast, for the transformed data (graph 1040), the score 1045A for the real sample is strongly different from the score 1035B for the next best match, indicating that the real sample can be correctly distinguished from the forged sample.
[0116] Figure 11 1 is a block diagram of an example computer system 1100 that can be used to perform the operations described above. System 1100 includes a processor 1110, a memory 1120, a storage device 1130, and an input / output device 1140. Each component 1110, 1120, 1130, and 1140 can be interconnected, for example, using a system bus 1150. Processor 1110 is capable of processing instructions for execution within system 1100. In some implementations, processor 1110 is a single-threaded processor. In another implementation, processor 1110 is a multi-threaded processor. Processor 1110 is capable of processing instructions stored in memory 1120 or on storage device 1130.
[0117] Memory 1120 stores information within system 1100. In some implementations, memory 1120 is a computer-readable medium. In some embodiments, memory 1120 is a volatile memory unit. In another embodiment, memory 1120 is a non-volatile memory unit.
[0118] The storage device 1130 can provide mass storage for the system 1100. In some embodiments, the storage device 1130 is a computer-readable medium. In various embodiments, the storage device 1130 can include, for example, a hard disk device, an optical disk device, a storage device shared by multiple computing devices over a network (e.g., a cloud storage device), or some other mass storage device.
[0119] The input / output devices 1140 provide input / output operations for the system 1100. In some implementations, the input / output devices 1140 may include one or more network interface devices, such as an Ethernet card, a serial communication device, such as an RS-232 port, and / or a wireless interface device, such as an 802.11 card. In another implementation, the input / output devices may include a driver device configured to receive input data and send output data to other input / output devices, such as a keyboard, a printer, and a display device 1160. However, other implementations may also be used, such as a mobile computing device, a mobile communication device, a set-top television client device, etc.
[0120] Despite Figure 11 An example processing system is described in the specification, but the implementation and functional operations of the subject matter described in this specification may be implemented in other types of digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in a combination of one or more of them.
[0121] The implementation of the subject matter and functional operations described in this specification can be implemented in digital electronic circuits, or in computer software, firmware or hardware, including the structures disclosed in this specification and their structural equivalents, or a combination of one or more of them. The implementation of the subject matter described in this specification can be implemented using one or more computer program instruction modules encoded on a computer-readable medium for execution by a data processing device or for controlling the operation of the data processing device. The computer-readable medium can be a manufactured product, such as a hard drive in a computer system or an optical disc sold through a retail channel, or an embedded system. The computer-readable medium can be obtained separately and then encoded using one or more computer program instruction modules, such as by transmitting one or more computer program instruction modules via a wired or wireless network. The computer-readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device or a combination of one or more of them.
[0122] The term "data processing apparatus" encompasses all devices, equipment, and machines for processing data, including, for example, a programmable processor, a computer, or multiple processors or computers. In addition to hardware, the apparatus may also include code that creates an execution environment for the computer program in question, such as code constituting processor firmware, a protocol stack, a database management system, an operating system, a runtime environment, or a combination of one or more of these. Furthermore, the apparatus may employ a variety of different computing model infrastructures, such as web services, distributed computing, and grid computing infrastructures.
[0123] A computer program (also referred to as a program, software, software application, script, or code) can be written in any suitable programming language, including compiled or interpreted languages, declarative or procedural languages, and can be deployed in any suitable form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, subroutines, or code portions). A computer program can be deployed on a single computer or located at a single site or distributed across multiple sites and executed on multiple computers interconnected by a communications network.
[0124] The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can be implemented as, special purpose logic circuitry, such as an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
[0125] Processors suitable for executing computer programs include, for example, dedicated microprocessors. Typically, a processor will receive instructions and data from read-only memory or random access memory, or both. The essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Typically, a computer will also include or be operatively coupled to receive data from or transmit data to or from one or more mass storage devices for storing data, such as magnetic disks, magneto-optical disks, or optical disks. However, a computer need not have such devices. Furthermore, a computer may be embedded in another device, such as a mobile phone, personal digital assistant (PDA), mobile audio or video player, game console, global positioning system (GPS) receiver, or portable storage device (such as a universal serial bus (USB) flash drive), to name a few. Devices suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and storage devices, including, for example, semiconductor memory devices such as EPROM (erasable programmable read-only memory), EEPROM (electrically erasable programmable read-only memory), and flash memory devices; magnetic disks, such as internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
[0126] To provide interaction with a user, implementations of the subject matter described in this specification may be implemented on a computing device capable of providing information to the user. The information may be provided to the user in any form of sensory modality, including visual, auditory, tactile, or a combination thereof. The computing device may be coupled to a display device, such as an LCD (liquid crystal display) display device, an OLED (organic light emitting diode) display device, another monitor, a head-mounted display device, or the like, for displaying information to the user. The computing device may be coupled to an input device. The input device may include a touch screen, a keyboard, and a pointing device, such as a mouse or trackball, through which a user may provide input to the computing device. Other types of devices may also be used to provide interaction with the user; for example, the feedback provided to the user may be any suitable form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback; and input from the user may be received in any suitable form, including acoustic, voice, or tactile input.
[0127] The computing system may include a client and a server. The client and the server are usually far away from each other and usually interact through a communication network. The relationship between the client and the server is generated by a computer program running on a respective computer and having a client-server relationship with each other. The implementation scheme of the theme described in this specification can be implemented in a computing system, and the computing system includes a back-end component, for example, as a data server, or includes a middleware component, for example, an application server, or includes a front-end component, for example, a client computer with a graphical user interface or a web browser, through which a user can interact with the implementation of the theme described in this specification, or any combination of one or more such back-ends, middleware or front-end components. The components of the system can be interconnected by any suitable digital data communication form or medium (for example, a communication network). The example of a communication network includes a local area network ("LAN") and a wide area network ("WAN"), the Internet (for example, the Internet) and a peer-to-peer network (for example, a self-organizing peer-to-peer network).
[0128] Although this specification contains many implementation details, these details should not be interpreted as limitations on the scope of what is or may be claimed, but rather as descriptions of specific features of specific implementations of the disclosed subject matter. Certain features described in this specification in the context of separate implementations may also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented individually or in any suitable subcombination in multiple implementations. In addition, although features may be described as working in certain combinations and even initially claimed, in some cases, one or more features from the claimed combination may be removed from the combination, and the claimed combination may be directed to a subcombination or variant of the subcombination. Therefore, unless expressly stated otherwise, or unless the knowledge of a person of ordinary skill in the art clearly indicates otherwise, any feature of the above-described embodiments may be combined with any other feature of the above-described embodiments.
[0129] Similarly, although operations are depicted in a particular order in the figures, it should not be understood that these operations must be performed in the particular order shown or in sequential order, or that all of the operations shown must be performed to achieve the desired result. In some cases, multitasking and / or parallel processing may be advantageous. Furthermore, the separation of various system components in the above-described embodiments should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.
[0130] Thus, certain embodiments of the present invention have been described. Other embodiments are within the scope of the following claims. For example, the actions recited in the claims can be performed in a different order and still achieve desirable results.
Claims
1. A system comprising: User interface device; and One or more computers that can interact with a user interface device, characterized in that the one or more computers are programmed to perform operations according to machine-readable instructions, and the operations include authenticating candidate markers in an image using a distortion adaptation process, and the distortion adaptation process transforms a data sequence of an electronic signature of the candidate marker.
2. The system of claim 1, wherein the adaptation process utilizes a plurality of transform functions, and wherein each transform function approximates a specific type of distortion correction.
3. A system according to claim 1 or claim 2, wherein the data sequence is a digital vector, and wherein the data type of the digital vector includes at least one of a bit, a byte, a floating point number, a double precision number, a hexadecimal number, or other data representation.
4. The system of claim 1 or claim 2, wherein the transformation function of the adaptation process comprises at least one of: shifting, distorting, stretching, scaling, performing a geometric operation, or utilizing a lookup table of transformation values.
5. The system according to claim 4, wherein: The one or more computers are programmed to select an approximately corrected transfer function capable of removing a target distortion from the data sequence.
6. The system according to claim 4, wherein: The transform function is parameterized and applied two or more times using two or more parameter values, thereby enabling an approximate correction to remove a target distortion from the data sequence.
7. The system according to claim 6, wherein: When the transformation function is a shift, the parameterized parameter is the number of data sequence positions to be shifted.
8. The system according to claim 4, wherein: The transformation function maps an element of a data sequence from one value to another value within the same vector space.
9. The method according to claim 8, wherein: A fingerprint is a data sequence member of the vector space.
10. The system of claim 1 or claim 2, wherein: The certification includes: Acquire the electronic signature and use the electronic signature as the data sequence of the candidate marker, wherein the electronic signature is generated from the measured features of the image of the candidate marker; transforming a data series value of the electronic signature to generate two or more transformed data series versions of the electronic signature; deriving a hash identifier of the electronic signature and two or more transformed data series versions of the electronic signature; retrieving a set of two or more results from a database of true marker signatures using the hash identifier; and At least one electronic signature of at least one of the two or more results retrieved from the database is compared to the electronic signature of the candidate marker to confirm that the candidate marker is authentic.
11. The system of claim 10, wherein the transforming comprises performing a data series shift of a plurality of points in at least one direction, performed a certain number of times to create at least four transformed data series versions of the electronic signature.
12. The system of claim 10, wherein at least one of the two or more results is a result having a maximum match score among the two or more results.
13. The system of claim 10, wherein the acquiring comprises: receiving an image of the candidate marker; measuring the characteristic to produce a set of metrics of the characteristic; as well as The electronic signature is generated based on the set of metrics.
14. The system of claim 10, wherein the one or more computers include a server, the server being operable to interact with the user interface device via a data communications network, and the user interface device being operable to interact with the server as a client.
15. The system of claim 10, wherein the user interface device comprises a personal computer, a mobile device, or a mobile phone running a web browser.
16. The system of claim 10, wherein the one or more computers comprises a personal computer, and the personal computer comprises the user interface device.
17. A method comprising: Acquire an electronic signature and use the electronic signature as a data series of a candidate marker, wherein the electronic signature is generated based on a measured feature of an image of the candidate marker; identifying at least one specific type of distortion in the electronic signature; selecting a transform function from a plurality of transform functions based on the identified specific distortion type; transforming the data sequence using the selected transformation function to generate at least one transformed data sequence; as well as The candidate marker is confirmed to be true using the data sequence and the transformed data sequence.
18. A non-transitory computer readable medium tangibly encoding a computer program, the computer program being operable to cause a data processing apparatus to perform the operations of any one of claims 1-17.
Citation Information
Patent Citations
Methods and a computing device for determining whether a mark is genuine
US10061958B2
Methods and a computing device for determining whether a mark is genuine
US10235597B2
Methods and a computing device for determining whether a mark is genuine
US9519942B2
Methods and a computing device for determining whether a mark is genuine
US9940572B2