Mark authentication using strain tolerance values

JP2025517602A5Pending Publication Date: 2026-04-28SYS TECH SOLUTIONS INC
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
SYS TECH SOLUTIONS INC
Filing Date
2023-04-21
Publication Date
2026-04-28

AI Technical Summary

Technical Problem

Existing anti-counterfeiting technologies require additional equipment and materials, increasing manufacturing costs and complexity, and are often ineffective in distinguishing genuine products from counterfeits due to geometric distortions and varying illumination conditions.

Method used

The use of a data series conversion technique that allows for the authentication of marks using an ordinary mobile phone, without the need for special lenses or controlled illumination, by converting and correcting for geometric distortions and other image variations, thereby enhancing the accuracy of mark authentication.

Benefits of technology

This approach minimizes the information required for identification and correction, reduces the risk of long-tail errors, simplifies the user experience, and extends the application domain with minimal increase in computational complexity, effectively authenticating marks across various distortions and environments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

Methods, systems, and apparatuses include a computer program product encoded on a medium for mark authentication using strain tolerances. An electronic signature can be obtained as a data series for a candidate mark. The data series values of the electronic signature can be transformed to generate two or more transformed data series versions of the electronic signature. Hash identifiers can be derived for the electronic signature and for two or more transformed data series versions of the electronic signature. The hash identifiers can be used to retrieve a set of two or more results from a database of genuine mark signatures. At least one electronic signature retrieved for at least one of the two or more results from the database can be compared to the electronic signature for the candidate mark to confirm that the candidate mark is genuine.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Cross - Reference to Related Applications This application claims the benefit of U.S. Provisional Patent Application No. 63 / 333,516, filed Apr. 21, 2022, which is incorporated herein by reference.

[0002] This disclosure generally relates to anti - counterfeiting technology, and more particularly, to methods and computing devices for determining whether a mark is authentic.

Background Art

[0003] Counterfeit products are unfortunately widely available and often difficult to distinguish. When counterfeiters create counterfeit products, they often copy labels and barcodes in addition to the actual product. At a superficial level, the labels and barcodes look authentic and even yield valid data when scanned (e.g., decode to a proper universal product code). There are many technologies currently available to combat such copies, but most of these solutions involve the insertion of various types of codes, patterns, microfibers, microdots, and other markings to help prevent counterfeiting. Such techniques require manufacturers to use additional equipment and materials and add cost and complexity to the manufacturing process.

Prior Art Documents

Patent Documents

[0004]

Patent Document 1

Patent Document 2

Patent Document 3

Patent Document 4

Summary of the Invention

Means for Solving the Problem

[0005] This specification relates to authenticating physical objects, and more particularly to techniques for compensating for geometric distortions introduced when an image of a physical object is taken by an easily accessible camera such as a camera of a mobile phone. It does not require the use of special lenses to limit geometric appearance variations and / or the appropriate method of illumination to minimize the contrast of desirable image features against consistently undesirable image features. Rather, an ordinary mobile phone may be employed at a location selected by a user to capture an image of a mark to be authenticated, and the authentication process can work across the imaging components of a variety of built-in mobile phones that have variable optical systems and are accompanied by various lighting conditions present in the environment.

[0006] The subject matter of these techniques can be implemented using one or more of the systems and techniques of U.S. Patent Nos. 9,519,942, 9,940,572, 10,235,597, and / or 10,061,958, which are hereby incorporated by reference in their entirety. Specific implementations of the subject matter described herein can be implemented to realize one or more of the following advantages. The technique can operate without knowledge of the geometric shape of the physical object. The technique can be used for slightly curved surfaces without the need to know the exact geometric surface shape when significant image deviations are present. Thus, the technique is suitable for allowing curved surfaces with somewhat flexible (not rigid) materials. In addition, the technique can be used to authenticate patterns having an asymmetric directional feature distribution, such as bars where geometric distortion can be easily corrected in a direction perpendicular to the bar but not easily corrected in the direction of the bar due to self-similarity in the direction of the bar.

[0007] The benefits and advantages of the systems and techniques described can further 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 extending the application domain with a minimal increase in computational complexity. The types of distortion that can be corrected and / or addressed include projective distortion that corrects the curvature due to a cylindrical object with a variable radius or an arbitrarily curved surface, and distortion due to sensor pose variations and illumination variations. The data series conversion technique can be applied to any mark, for example, a barcode captured or visually presented with, among many distortions, tilt, diffused glare, and shadow. Data series conversion can be used to correct image distortion with fingerprint deficiencies that result in loss of fingerprint information. The data series conversion technique can be used to improve hash identifier (HID) searches, which are related to finding the correct reference fingerprint, and that reference fingerprint can be used to determine whether the mark is genuine. The data series conversion technique can include shift corrections that can correct some types of distortion. In general, the various search algorithms used during mark authentication can be improved using the data series conversion techniques of this specification, such as bit shift techniques, to find the appropriate reference fingerprint and thereby improve the accuracy of mark authentication. Data series conversion may not depend on the type of distortion, for example, by applying multiple correction conversions, and thus the techniques of this specification are effective across a variety of distortions without the need to identify a specific type of distortion.

[0008] In general, one or more aspects of the subject matter described in this specification can be embedded in one or more methods that include authenticating candidate marks in an image using a strain adaptation process that converts a data series of electronic signatures for the candidate marks. Other embodiments of this aspect include corresponding systems, devices, and computer program products recorded on one or more computer storage devices each configured to perform an action of the method. Accordingly, one or more aspects of the subject matter described in this specification can be embedded in one or more systems that include a user interface and one or more computers operable to interact with a user interface device and programmed to perform the actions of the method described herein, and one or more aspects of the subject matter described in this specification can be embedded in one or more non-transitory computer-readable media tangibly encoding a computer program operable to cause a data processing apparatus to perform the actions of the method described herein.

[0009] The foregoing and other embodiments can optionally include one or more of the following features, either alone or in combination. The adaptation process can use multiple transformation functions, each of which can approximate a particular strain correction type. The data series can be a vector of numbers, where the numbers can be a data type that includes at least one of bits, bytes, floats, doubles, hexadecimal, or other data representations. The transformation functions of the adaptation process can include at least one of shifting, warping, stretching, scaling, performing geometric operations, or using a reference table of transformed values. A transformation function can be selected that enables approximate correction of the target strain removed from the data series. The transformation function can be parameterized and applied more than once with two or more parameter values to enable approximate correction of the target strain removed from the data series. The transformation function can be a shift, and the parameter of the parameterization can be the number of positions in the data series to shift. The transformation function can map data series elements from one value to another within the same vector space. The fingerprint can be a member of the data series in the vector space. Authenticating can include obtaining an electronic signature as a data series for the candidate mark, where the electronic signature is generated from the measured characteristics of the image of the candidate mark, obtaining, transforming the data series values of the electronic signature to generate two or more transformed data series versions of the electronic signature, deriving hash identifiers for the electronic signature and for the two or more transformed data series versions of the electronic signature, using the hash identifiers to retrieve a set of two or more results from a database of genuine mark signatures, and comparing at least one of the at least one electronic signature retrieved for at least one of the two or more results from the database to the electronic signature for the candidate mark to confirm that the candidate mark is genuine. Transforming can include performing a data series shift of several spots in at least one direction that is executed a specific number of times to generate at least four transformed data series versions of the electronic signature.At least one of the two or more results can be one of the two or more results having the maximum match score. Obtaining can include receiving an image of a candidate mark, measuring characteristics to create a set of measurement criteria for the characteristics, and generating an electronic signature based on the set of measurement criteria.

[0010] Furthermore, generally, one or more aspects of the subject matter described herein can be obtaining an electronic signature as a data series for a candidate mark, where the electronic signature is generated from the measured characteristics of the image of the candidate mark, identifying at least one specific strain type within the electronic signature, selecting one transformation function from a plurality of transformation functions based on the identified specific strain type, transforming the data series using the selected transformation function to generate at least one transformed data series, and utilizing the data series and the transformed data series to confirm that the candidate mark is genuine, and can be embedded within one or more methods including these. Other embodiments of this aspect include corresponding systems, devices, and computer program products recorded on one or more computer storage devices configured to perform the actions of the method, respectively.

[0011] Details of one or more implementations of the subject matter described herein are set forth in the accompanying drawings and the following description. Other features, aspects, and advantages of the invention will be apparent from the description, drawings, and claims.

Brief Description of the Drawings

[0012]

Fig. 1A

Fig. 1B

Fig. 2A

Fig. 2B

Fig. 2C

Fig. 3A

Fig. 3B

Fig. 3C

Fig. 4

Fig. 5

Fig. 6

Fig. 7

Fig. 8

Fig. 9

Fig. 10

Fig. 11

Best Mode for Carrying Out the Invention

[0013] Like reference numbers and symbols in the various figures indicate like elements.

[0014] Today's manufacturers can use automated mass production to produce millions of products that are virtually indistinguishable to the human eye. However, in order to prevent the production and sale of counterfeits, it is important to authenticate the products to ensure that they are genuine and not fakes. The techniques herein generate a fingerprint for such products by using an image capture device to capture random surface printing variations on the genuine version of the product or product package. More specifically, the techniques can identify printing variations on marks or standard product codes (e.g., Universal Product Code (UPC), Quick Response (QR) code, and Data Matrix (DM) code) that are already being used to identify the product or product type.

[0015] The authentication technique can include: (1) capturing images during product production using an in-line machine vision system; (2) calculating reference fingerprints from those images; (3) storing the calculated reference fingerprints in a database system for later access; (4) capturing an image from a test product, for example, using a mobile phone on-site; (5) calculating a second fingerprint; and (6) comparing the reference fingerprint stored in the database with the second fingerprint to verify whether a match exists. Additionally, as further described below, the technique can include generating a transformed version of the data series representing the captured image and using the transformed version to determine the authenticity of the product. Applying the transformation enables the system herein to determine the authenticity of the product with enhanced accuracy.

[0016] As background, in one ideal authentication process, the reference fingerprint signature and the second verification fingerprint signature exactly match when the signatures are derived from the same product, and they do not match when the signatures are derived from two different products. However, in practice, two fingerprints generated from the same product may not exactly match due to image noise, differences in the image sensors used for capture and verification, and uncontrolled lighting conditions and pose variations introduced when a mobile phone camera captures an image during verification. Such variations can change the appearance of the product surface and, in addition to other deviations from image formation, propagate into the image as signal noise components and then into the fingerprint generated for the image.

[0017] As a result, the fingerprint is a mixture of an ideal fingerprint and various noise components. Additional noise may cause two fingerprints derived from the same item but using different imaging processes to differ, and the magnitude of the noise can increase until the reference fingerprint and the verification fingerprint do not match with respect to the magnitude of the deviation. To address such mismatches, the transformations herein can adapt to distortion, and the system for item identification and authentication (the counterfeiting detection system) becomes almost invariant with respect to the expected deviations generated during authentication (i.e., accurately authenticates only genuine marks, even though it is not without the rare failure to authenticate a genuine mark). In other words, the counterfeiting detection system can be made more robust by the distortion adaptation techniques described herein, thereby reducing both false positives and false negatives for genuine mark detection. The distortion adaptation techniques can be applied either by applying a linear search for the highest resolution fingerprint (e.g., in Hamming space) or for a reduced resolution fingerprint, or in a tree search, at various stages throughout the authentication stage. The computational time does not visibly increase in standard hardware (e.g., multi-core multi-threaded processing or other hardware or operating system optimizations) as further described below. The factor limiting accuracy can be the number of fingerprints in the database, rather than the minimal additional computational resources required to process the additional candidates generated by the distortion adaptation process.

[0018] In some implementations, the highest resolution fingerprint may be used. The highest resolution fingerprint includes a deeper bit depth than the reduced resolution fingerprint. In such implementations, the distortion adaptation process can apply a transformation that utilizes, for example, a multi-position transformation (e.g., a shift transformation) to the highest resolution fingerprint as described below with reference to, for example, FIG. 2B.

[0019] In addition, variations in the transformation can be applied to the reference fingerprint at maximum resolution to generate a set of candidate fingerprints that are used to determine the authenticity of the merchandise. For example, a first variation of the transformation can be applied to the fingerprint to generate a first transformed candidate, a second variation of the transformation can be applied to the fingerprint to generate a second transformed candidate, and so on. The original fingerprint and the transformed candidates can be compared to the stored fingerprint of the genuine merchandise to determine with enhanced accuracy whether the fingerprint represents a genuine item.

[0020] Figure 1A shows fingerprint match scores for a series of fingerprint pairs using different techniques. Each plot includes the score for the exactly matching item (upper line) and the score for the next most similar non-exactly matching item in the database (lower line). When the exactly matching item is sufficiently different from the next most similar non-exactly matching item, genuine and non-genuine marks are clearly distinguishable and the accuracy of the authentication process is higher.

[0021] As background, Graph 10A shows match scores for a series of fingerprint pairs within a system that is not invariant to deviations, and Graph 10B shows a system that is sufficiently invariant such that the match scores enable a reliable distinction between an exact match (upper line) and the most inaccurate match score (lower line). Higher match scores are associated with better matches. Graph 10A shows match scores for a system that is sensitive to deviations, where the match scores within the sequence (upper line) drop to a lower level where they cannot distinguish themselves from the best matches with other items (lower line). Such a system may have low accuracy in merchandise authentication. Graph 10B shows fingerprint matching for the same sequence using a second system where the match scores enable a reliable distinction between an exact match and the highest score inaccurate match. The second system is sufficiently invariant to expected deviations and, therefore, improves the matching accuracy.

[0022] To produce results similar to Graph 10B, this specification uses an uncontrolled environment for mobile phone image capture (e.g., positional placement variations from hand movements of holding the phone and holding the merchandise, as well as merchandise tilt, shallow depth of field resulting from high magnification and / or shorter working distance, image variations including image noise, glare, diffused glare, projection distortion, tilt, out-of-focus images and partial blurriness, variations in image contrast, non-uniform image brightness, easily variable resolution from different mobile phone devices and easily variable optical systems, subject blur, optical aberrations, and easily variable mobile phone camera post-processing functions for noise reduction and image enhancement that cannot be corrected by a person) to consider the application domain of image-based merchandise (or product) identification and / or authentication and to describe techniques for generating the invariance of fingerprint matching. This specification describes multiple techniques for generating invariance to deviations, including matching multiple transformed versions of a candidate mark against the genuine mark.

[0023] In general, image formation variations that introduce geometric distortions propagating within a fingerprint can be effectively eliminated. Instead of correcting geometric distortions in the image space, corrections in the image space can be avoided, which propagates the deviations into the fingerprint space where they can be corrected with lower computational complexity using the systems and techniques described herein. Corrections in the fingerprint space can be approximated using a more general low-order model that allows corrections of multiple types of distortions with lower parameter estimation complexity. Due to the reduced complexity of the parameter estimation problem, the methods described are more robust in scenarios where multiple deviations are present simultaneously in the image, which can easily generate estimation errors for conventional methods. Note that more complex models may introduce more noise and errors because more parameters are estimated in the presence of image noise components such as unexpected errors introduced when the inverse transformation is applied, so more complex correction methods such as methods that use a regularization process to compute the inverse transformation are not necessarily better.

[0024] Moreover, in some implementations, fewer assumptions are made about the types of deviations present compared to conventional corrections in the image space. This makes the method more general and requires little prior knowledge of the image capture system for effective operation, e.g., it does not require careful selection of imaging components and / or control and constraint variables between partial presentations (e.g., at a preferred normal direction at an optimal operating distance and aligned with the center of the optical axis) of the image capture system. Projection distortions can be corrected for flat and slightly curved surfaces without additional knowledge about surface curvature. The method can be integrated into existing mark authentication systems without adding significant additional computations. In some cases, the computational complexity mainly depends on the number of reference fingerprints in the database, and the additional generated corrected candidates do not add to the computational complexity.

[0025] Figure 1B shows an exemplary system for mark authentication using strain tolerance values. The system can include a first computing device 108, a second computing device 110, and a third computing device 120, although fewer devices can be used. For example, the second computing device 110 can perform the functions of the first computing device 108, the third computing device 120, or both.

[0026] The mark application device 100 applies a genuine mark 102 (the "mark 102") to a regular physical object 104 (the "object 104"). In some implementations, the object 104 is a manufactured item such as a piece of clothing, a handbag, or a fashion accessory. In some implementations, the object 104 is a label such as a barcode label or a package for some other physical object. The mark 102 can be something that identifies a brand (e.g., a logo), something that has information (e.g., a barcode), or a decoration. Possible implementations of the mark application device 100 include printers (e.g., laser printers or thermal printers), etching devices, engraving devices, casting devices, branding devices, sewing devices, and thermal transfer devices. The mark application device 100 applies the mark 102, for example, by printing, etching, engraving, casting, branding, sewing, or thermal transferring the mark 102 onto the object 104. The mark 102 includes one or more artifacts. In some implementations, the mark 102 also includes an intentionally created anti-counterfeiting feature such as a micro pattern.

[0027] After the first image capture device 106 (e.g., a camera, a machine vision device, a scanner, etc.) applies the mark 102, it captures an image of the mark 102. The environment in which the first image capture device 106 captures the image of the mark 102 is controlled so that there is a reasonable assurance that the image is actually an image of the genuine mark 102. For example, the time interval between the mark application device 100 that applies the mark 102 and the first image capture device 106 that acquires the image of the mark 102 can be reduced, and the first image capture device 106 can be physically installed adjacent to the mark application device 100 along the packaging line. Thus, when the term "genuine mark" is used, it refers to the mark applied by the mark application device at a legitimate source (i.e., not illegally or fraudulently copied).

[0028] The first image capture device 106 transmits the captured image to the first computing device 108. Possible implementations of the first computing device 108 include desktop computers, rack-mounted servers, laptop computers, tablet computers, and mobile phones. (Mobile phones, tablet computers, portable virtual reality devices, and similar portable devices are collectively referred to as mobile devices.) In some implementations, the first image capture device 106 is integrated with the first computing device 108, in which case the first image capture device 106 transmits the captured image to the logic circuit of the first computing device 108. The first computing device 108 or the logic circuit therein receives the captured image and transmits the captured image to the second computing device 110. Possible implementations of the second computing device 110 include all of those devices enumerated for the first computing device 108.

[0029] The second computing device 110 receives the captured image and uses the captured image to measure various characteristics of the mark 102, resulting in a set of measurement criteria that includes data regarding artifacts of the mark 102. As further explained, the set of measurement criteria can be one of several sets of measurement criteria that the second computing device 110 generates for the mark 102. The second computing device 110 can perform measurements at various locations on the mark 102. In so doing, the second computing device 110 can divide the mark 102 into a plurality of sub-areas (e.g., according to industry standards). In some implementations, when the mark 102 is a two-dimensional (2D) barcode, the second computing device 110 performs measurements on all or a subset of the total number of sub-areas of the mark 102 (e.g., all or a subset of the total number of cells). Examples of characteristics of the mark 102 that the second computing device 110 can measure include (a) the shape of the feature, (b) the aspect ratio of the feature, (c) the location of the feature, (d) the size of the feature, (e) the contrast of the feature, (f) the linearity of the edge, (g) the discontinuity of the region, (h) heterogeneous 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 on the same location for each mark for each characteristic, but measures on different locations for different characteristics. For example, the second computing device 110 can measure the average pigmentation on a first set of locations of the mark and on that same first set of locations for subsequent marks, but measure the linearity of the edge on a second set of locations on the mark and on subsequent marks for the linearity of the edge. Two sets of locations (for different characteristics) can be referred to as "different" if there is at least one location that is not common to both sets.

[0030] In some implementations, the results of the characteristic measurements by the second computing device 110 include a set of measurement criteria. There may be one or more sets of measurement criteria for each of the measured characteristics. The second computing device 110 analyzes the set of measurement criteria and generates a signature of the mark 102 based on the analysis and a data series based on the set of measurement criteria. The data series can be any series of characteristics. For example, each data series can be a vector of numbers represented by bits, bytes, floats, doubles, hexadecimal, or other data representations. Since the set of measurement criteria includes data regarding one (or multiple) artifacts of the mark 102, the signature is indirectly based on the artifacts. When the mark 102 conveys 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 both the artifacts of the mark 102 and the data conveyed by the mark 102.

[0031] In some implementations, to generate the signature, for each measured characteristic of the mark 102, the second computing device 110 ranks the measurement criteria related to the characteristic by magnitude and uses only those measurement criteria that reach a predetermined threshold as part of the signature. For example, the second computing device 110 can refrain from ranking those measurement criteria that are below a predetermined threshold. In some implementations, there may be different predetermined thresholds for each characteristic being measured. One or more of the predetermined thresholds can be based on a noise threshold and the resolution of the first image capture device 106.

[0032] For example, the second computing device 110 can obtain 100 data points for each characteristic and collect six groups of measurement results, where the six groups are one set of measurement results for pigmentation, one set of measurement results for deviation from the optimal grid, one set of measurement results for heterogeneous marks or voids, and three separate sets of measurement results for edge linearity.

[0033] As part of the ordering process, the second computing device 110 can group measurement criteria below a predetermined threshold into one group regardless of their respective locations (i.e., regardless of their locations on the mark 102). Similarly, the second computing device 110 can order the measurement criteria within each characteristic category as part of the ordering process (e.g., by size). Likewise, the second computing device 110 can simply ignore measurement criteria that are below a predetermined threshold. Similarly, the ordering process can simply consist of separating measurement criteria above the threshold from those below the threshold.

[0034] In some implementations, the second computing device 110 orders the measured characteristics according to how sensitive the characteristic is to image resolution issues. For example, if the first image capture device 106 does not have the ability to capture images at high resolution, it may be difficult for the second computing device 110 to identify non-linearity of edges. However, in some cases, the second computing device 110 may not have difficulty identifying deviations in pigmentation. Thus, based on this, the second computing device 110 can prioritize pigmentation over non-linearity of edges. In some implementations, the second computing device 110 orders the measured characteristics in reverse order of resolution dependence, such as sub-area pigmentation, sub-area position bias, location of voids or heterogeneous markings, and edge non-linearity.

[0035] In some implementations, the second computing device 110 weights the measured characteristics of the mark 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 mark 102. For example, if the resolution of the first image capture device 106 is low, the second computing device 110 can give more weight to the average pigmentation of various sub-areas of the mark 102. If the resolution of the first image capture device 106 is high, the second computing device 110 can give a higher weight to the measurement results of the edge irregularity of various sub-areas than other characteristics.

[0036] If the mark 102 contains error correction information as specified by 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-areas of the mark 102 have errors, and reduce the weight of the measured characteristics of such sub-areas.

[0037] In some implementations, in generating the signature, the second computing device 110 weights the measurement results for one or more of the characteristics of the mark 102 based on the mark application device 100. For example, if the mark application device 100 is a thermal transfer printer, it is known that for those marks applied by the mark application device 100, the edge projection parallel to the direction of movement of the substrate material is unlikely to result in an edge linearity measurement result large enough to reach the minimum threshold for the edge linearity characteristic. The second computing device 110 can reduce the weighting of the edge linearity characteristic measurement result for the mark 102 based on this known uniqueness of the mark application device 100.

[0038] FIG. 2A shows an example of how a computing device can generate an electronic signature for a mark. In some implementations, the computing device generates an electronic signature for the mark by encoding the signature as a string of bytes, which can be represented as American Standard Code for Information Interchange ("ASCII") characters rather than as data of numerical magnitude. This alternative format allows the computing device to directly use the signature data as an index for searching for marks within a media storage device. Instead of storing the location and magnitude of each signature criterion for an authentic mark, the computing device can store the presence (or absence) of significant signature features and each of the evaluated locations within the authentic mark. For example, in the case of a 2D data matrix symbol that does not carry or encode a unique identifier or serial number, the computing device can store the signature data for the mark as a string, each of which encodes the presence or absence of features exceeding a minimum magnitude threshold for each characteristic within a subarea, but does not encode further data about the magnitude or number of features within any one characteristic. In this example, each subarea within mark 200 of FIG. 2A has 4 bits of data, 1 bit for each of a set of criteria, where "1" indicates that a particular criterion has a significant feature in that subarea. For example, 0000 (hexadecimal 0) can mean that none of the four tested characteristics are present to a degree greater than the threshold magnitude within that particular subarea. A value of 1111 (hexadecimal F) means that all four of the tested characteristics are present to a degree greater than the minimum value within that particular subarea.

[0039] In the example of Mark 200, the first six sub-areas are coded as follows. (1) The first sub-area 202 has no artifacts with respect to the average luminance, and it is sufficiently black. It has no grid bias. It has a large white void. It has no edge-shaped artifacts, and its edges are straight and uniform. Therefore, the computing device codes it as 0010. (2) The second sub-area 204 has a void and edge-shaped artifacts. Therefore, the computing device codes it as 0011. (3) The third sub-area 206 is significantly gray rather than black, but has no other artifacts. Therefore, the computing device codes it as 1000. (4) The fourth sub-area 208 has no artifacts. Therefore, the computing device codes it as 0000. (5) The fifth sub-area 210 has a grid bias but no other artifacts. Therefore, the computing device codes it as 0100. (6) The sixth module 212 has no artifacts. Therefore, the computing device codes it as 0000. Therefore, the first six modules are coded, for example, as the binary number 001000111000000001000000, the hexadecimal number 238040, the decimal number 35 - 128 - 64, or the ASCII characters # E @. Using a 2D data matrix code as an example, with a typical symbol size of 22×22 sub-areas, assuming the data is compressed to 2 modules per character (byte), the ASCII character portion containing the unique signature data will be 242 characters long. The computing device can store the signature string of the genuine mark in a database, flat file, text document, or any other configuration suitable for storing a population of distinguishable strings. In some implementations, the signature can be processed by a signature converter 214 and / or a HID generator 216 that can generate multiple transformed signatures as described below.In some implementations, the HID is first generated and the transformation is performed on the HID. As will be further described below, by performing multiple comparisons, an increased match accuracy is achieved, but note that the execution time is dominated by memory transfers, such as persistent storage to random access memory (RAM), and not by the calculations required for the collation, so there is no performance loss.

[0040] Returning to FIG. 1B, the second computing device 110 uses a location identifier corresponding to a subset of the signature measurement criteria to derive the HID. In some implementations, the second computing device 110 uses an index number corresponding to a subset of the signature's largest measurement criteria to derive the HID. The second computing device 110 can use the index number corresponding to each set of subsets of the measurement criteria as one block within the entire HID in the derivation of the HID. The second computing device 110 stores the signature and the HID (e.g., using a database program) within 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 search for the signature (e.g., the second computing device 110 sets the HID as an index key for the signature using a database program). In some implementations, the media storage device 112 consists of multiple devices that are geographically and temporally distributed, as is often seen in cloud storage services. In some implementations, one or more of the measurement of characteristics, analysis of various sets of measurement criteria, generation of signatures, derivation of HIDs, and storage of signatures and HIDs are performed by the first computing device 108. In some implementations, all of those 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 sends the signature and the HID to a separate database server (i.e., another computing device), and that database server stores the signature and the HID within the media storage device 112.

[0041] Continuing with FIG. 1B, an unproven physical object 114 (the "unproven object 114"), which may or may not be a regular physical object 104, needs to be tested to compensate for the fact that it is not a fake or, in some cases, not regular. Possible implementations of the unproven object 114 are the same as those of the regular physical object 104. There is a candidate mark 116 on the unproven object 114. Possible implementations of the candidate mark 116 are the same as those of the genuine mark 102. A second image capture device 118 (e.g., a camera, a machine vision device, a scanner, etc.) captures an image of the candidate mark 116 and transmits the image to a third computing device 120. The image can be (but does not have to be) a photograph captured using a conventional camera (e.g., the second image capture device 118), and it should be noted that the image can further include visual data from a video recording, visual data from a part of an augmented reality or virtual reality environment, and image data from other sources.

[0042] Similar to the first image capture device 106 and the first computing device 108, the second image capture device 118 can be part of the third computing device 120, and the transmission of the captured image of the candidate mark 116 can be internal (i.e., from the second image capture device 118 to the logic circuitry of the third computing device 120).

[0043] The third computing device 120 (or the logic circuitry therein) receives the captured image and transmits the captured image to the second computing device 110. The second computing device 110 uses the captured image to measure various characteristics of the candidate mark 116 that include the same characteristics as those measured by the second computing device 110 on the genuine mark 102. The result of this measurement is a set of measurement criteria for the characteristics. Across successful measurement results, the result can include one or more sets of measurement criteria for each of the measured characteristics. The second computing device 110 then generates a signature based on one (or more) sets of measurement criteria and does so using the same technique as that used to generate the signature for the genuine mark 102. If the candidate mark 116 is actually the genuine mark 102 (or is generated by the same process as the genuine mark 102), the signature generated by the second computing device 110 is based on the artifact of the genuine mark 102, similar to the signature generated from the captured image of the genuine mark 102. On the other hand, if the candidate mark 116 is not the genuine mark 102 (e.g., is a forgery), the signature generated by this latest image will be based on whether the candidate mark 116 presents other characteristics, such as artifacts of the forgery process, absence of artifacts from the marking device 100, etc. The second computing device 110 uses a location identifier (e.g., the index number of the subset of measurement criteria of the largest size) corresponding to a subset of the measurement criteria of the signature of the candidate mark 116 to derive the HID for the candidate mark 116.

[0044] In addition, the second computing device 110 can include a converter 110A that applies a conversion function to convert the data series values of the signature in order to generate a converted series of data of the electronic signature (collectively referred to as "converted signature 112"), such as converted signature versions 112A, 112B, 112C. The second computing device 110 can use various data series conversion techniques to generate the converted signature 112. Examples of conversion can include shifting, warping, stretching, scaling, performing geometric operations, or utilizing a reference table of conversion values. The conversion function can map data series elements from one value to another within the same vector space 113, and the fingerprint can be a member of the data series in the vector space 113.

[0045] In some implementations, it is presumed that some types of distortion may exist (even if unconfirmed), and thus at least one conversion is applied by the converter 110A to all candidate marks 116, thereby avoiding the need to detect whether distortion actually exists. In some implementations, one or more types of conversions (e.g., shift operations) are applied by multiple offsets in multiple directions. By applying multiple variations of the modification and then using the modification variation that works best (i.e., maximizes the fingerprint similarity score), various image distortions can be accounted for in the mark authentication process without actually identifying the exact distortion type. As a result of the converter 110A always applying multiple modified conversions, the system can act in an agnostic manner without the need to precisely parameterize the distortion for which the system is operating. This can be understood as an effective "blind" correction across various distortions without the need to identify the type of distortion present in the image.

[0046] However, in some implementations, the conversion function can be selected based on the detected image distortion. For example, if the distortion is a tilt, a bit shift conversion can be applied. Thus, in some implementations, the conversion function enables approximate correction of the target distortion removed from the data series. In some implementations, the conversion function is parameterized and applied more than once using two or more parameter values to enable approximate correction of the target distortion removed from the data series. For example, by applying the conversion function one or more times, the values in the distorted data series are corrected (or approximately corrected), thereby removing the distortion completely or mostly from the data series.

[0047] The second computing device 110 can generate a predetermined number and / or a configurable number of the transformed signatures 112, such as 2, 3, 5, 10, etc., from the signature of the candidate mark 116. As further described below, the second computing device 110 can use the signatures of the candidate mark 116 and the transformed signature 112 to authenticate the mark, which improves the authentication accuracy. The second computing device 110 derives the HID for the transformed signature 112 using the same technique used to derive the HID for the signature of the candidate mark 116.

[0048] Generally, at least some (and potentially all) of the noise components from image formation are allowed to propagate within the image and then within the space of the fingerprint signature. During fingerprint extraction, since the signature feature areas can be accurately aligned along the edges of the bars, the geometric alignment deviations in the direction orthogonal to the bars are mostly removed. However, geometric deviations in other directions remain. By propagating the geometric strain function from the image space to the fingerprint signature space, it can be seen that the application of the transformation within the fingerprint space is not overly complex from a computational perspective, while still achieving similar or even better results. The projection strains for curved and flat surfaces can be approximated using simpler low-order one-dimensional functions within the fingerprint signature space. Without estimating the model parameters, the parameter space can be sampled, a small population of transformed fingerprint signatures can be generated, and at least one of the population members can be made close to the ideal, un-deformed fingerprint signature.

[0049] FIG. 2B shows a flow diagram for bit shift conversion and an example of bit shift conversion. Bit shift conversion is an example of a function that can be used to generate a transformed signature. The original sequence 230A is shown at the top of the list of bit signatures 230, and a series of four conversions 230B, 230C, 230D, 230E are shown at the bottom. The topmost transformed signature 230B is generated by shifting each bit 2 positions to the left from the original sequence 230A. For example, the 3rd position in the original sequence 230A becomes the 1st position in the transformed sequence 230B, the 4th position in the original sequence 230A becomes the 2nd position in the transformed sequence 230B, and so on. The bits at the beginning of the original sequence 230A are appended to the end of the transformed sequence 230B. For example, since the transformed sequence 230B is generated by shifting 2 positions, the 1st bit on the original sequence 230A becomes the 2nd from the last bit within the transformed sequence 230B. The second transformed sequence 230C is generated by shifting the bits 1 position to the left, the third transformed sequence 230D is generated by shifting the bits 1 position to the right, and the fourth transformed sequence 230E is generated by shifting the bits 2 positions to the right. The number of bits to shift within the data series (e.g., 1 bit left, 2 bits left, 1 bit right, etc.) can be configured or parameterized. As described above, any number of transformed sequences can be generated, techniques other than bit shift can be used, and other shift techniques can also be used. For example, in a right shift, instead of appending bits from the end of the series to the beginning of the series, a predetermined set of bits (e.g., all zeros) can be appended to the beginning.

[0050] Data converted by bit shift conversion can be generated using the technique described in U.S. Patent No. 9,940,572 and shown in Flow Diagram 220, which is particularly effective with respect to "high variability" printing technologies (e.g., thermal transfer or inkjet) where outlier artifacts of a sufficiently distinguishable size serve as repeatable HID locations and are immediately available for use. However, other printing technologies do not exhibit the same type of obvious variations.

[0051] In some implementations, a computing device filters a waveform, resulting in a filtered waveform. Examples of possible filters include smoothing processes such as moving average, time domain convolution, Fourier series operations, spatial bandpass filters, and low-pass filters. In some implementations, to calculate a moving average, the computing device takes two or more data points from a set of measurement criteria, 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 with each subsequent data point until the end of the set of measurement criteria is reached.

[0052] In Flow Diagram 220, a computing device can extract a waveform from measurement criteria (222). For example, the computing device can analyze the measurement criteria as a set of ordered pairs (measurement criteria for identifiers (e.g., index values) of locations within a mark where the measurement criteria were obtained) and analyze those ordered pairs as a waveform.

[0053] A computing device can filter a waveform in a way that allows for information "divergence" (224). For example, applying a spatial filter before a window average allows the data within each window to include some of the information contained within neighboring windows. In other words, the computing device incorporates information from neighboring windows into the averaged data points within a particular window.

[0054] A computing device can extract attributes of a filtered waveform, such as the zero-crossing position, peak-to-peak distance, integration or differentiation of data (226). Some or all of these techniques can be used as a basis for constructing an HID. In some implementations, the computing device divides the filtered waveform into sections or “bands” and calculates the local average of the waveform within each band. In some implementations, the computing device extracts attributes of an unfiltered waveform (i.e., one that does not undergo the filtering process).

[0055] The computing device can form a hash identifier from the extracted attributes (of one or more filtered waveforms) (228). The computing device can normalize the band average to construct a binary representation of the data. The binary string represents the local average as being above or below the overall average of the band average. This binary string then becomes an HID block for this particular measurement criterion. The computing device similarly constructs the remainder of the HID block for each of the remaining measurement criteria. Once the hash identifier is determined, it can be transformed, for example, using a bit shift transformation as described above (229).

[0056] In some implementations, when using this technique, the computing device evaluates the stored HID of the genuine mark against the HID of the incoming mark in a different manner than described above. For example, instead of a fuzzy logic search, the computing device can use a boolean operation to calculate an HID match score. In some implementations, the computing device applies an exclusive OR with bits inverted for each bit of the original and incoming candidate bit patterns. As an example, if the original HID block is 110101011, the computing device can evaluate the incoming candidate as follows. Genuine (Block 1): 110101011 Candidate (Block 1): 110001101 NOT(XOR) result: 111011001

[0057] Next, the "agreement" bits represented by the Boolean TRUE result (1) are totaled by the computing device (e.g., to calculate the Hamming distance). This total becomes the HID score for that block. The computing device performs this process for all blocks within all original HID records for the HID of the candidate mark. When this is complete, the computing device evaluates the culled list of the original electronic signatures provided for the complete candidate (e.g., presented to a mobile phone) electronic signature as described above. If any of the electronic signatures from the culled list results in a "genuine" result for the candidate electronic signature data, the computing device reports the verification result as such. If none of the culled lists results in a "genuine" result, the computing device reports the verification result as "forgery" (e.g., to the user via the user interface by sending a message locally or to a remote device (e.g., a mobile phone)).

[0058] In some implementations, rather than representing each band of the waveform as a binary value, the computing device can retain some of the amplitude information during filtering. The computing device can use, for example, the actual band average to construct the HID. Then, instead of using the Hamming distance as a similarity metric (to determine if the HIDs closely match), the computing device uses covariance or numerical correlation to evaluate the match score of the incoming candidate HIDs. By varying the width and number of the averaging windows, the computing device can increase or decrease the HID resolution as needed, where more and / or narrower windows result in a higher discriminative power HID (but also larger and require more memory for storage), and wider and / or fewer windows have a lower storage requirement (to reduce more data) but relatively lower discriminative power.

[0059] To illustrate the reduction of data (and thus increased search speed and reduced storage requirements) by using one or more of the techniques described, for example, the raw waveform can have 700 data points. Each is a 32-bit floating point number that exceeds 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 (actual band average), the dimensionality reduction is 32×9 = 288 bytes. Thus, the dimensionality reduction in that example is from 700 32-bit points to 9 32-bit points.

[0060] In some implementations, the computing device employs procedures for selecting or preferentially weighting measurement criteria extracted from some areas of the mark over measurement criteria from non-preferred areas of the mark. This explains the fact that in low-variability scenarios, some areas of the mark carry more effective signature features for constructing a more reliable HID than other areas. This weighting can be done in a variety of ways, including time-domain signal amplitude analysis, frequency-domain energy analysis, and other methods. That is, the computing device uses various sets of rules to weight the measurement criteria, for example, according to whether the area being analyzed exhibits high energy.

[0061] In some implementations, the computing device uses a measure of total signal energy, derived from the Fourier power series of the measurement criteria data, to establish a "weighting score" for each of the available signature feature measurement criteria datasets. 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.

[0062] In some implementations, to calculate the weighting score, the computing device sums the amplitudes of each band within a particular power series being analyzed. Once the computing device has a weighting score for each measurement criteria dataset, the computing device can classify the weighting scores by descending score and select the measurement criteria dataset with the highest score (highest signal energy) for use in constructing the HID for that mark.

[0063] In some implementations, when the computing device operates on a UPC linear barcode, it uses the techniques described above. In this case, 52 HID blocks are available, with two per "bar" in the symbol (one series of measurement reference data extracted from the leading edge of each bar and one from the trailing edge, excluding the left and right guard bars). The computing device can choose, for example, to perform HID block operations using the top five highest "signature energies" measurement references.

[0064] In some implementations, when generating the HID key for the original UPC barcode, the computing device stores all 52 signature measurement reference data sets along with the HID derived from them. Assuming a 10-bit length HID block, the computing device will result in an HID with a total length of 520 bits.

[0065] For efficient processing, the computing device can adopt a weighting scheme that is compatible with the bitwise operations used in the HID comparison method described above. In some implementations, the computing device constructs a mask that has a Boolean TRUE value at the bit locations corresponding to the high / preferred weighted HID blocks and a Boolean FALSE value at all other bit locations. In this regard, a single bitwise AND operation using the mask is all that is needed to calculate the HID similarity measurement unit between two HIDs that uses only the blocks with the highest energy signals (and thus the best discriminative power).

[0066] As a simple example, when a computing device constructs an 8-block HID, each having 10 bits per block, an 80-bit HID can be obtained. Further, in this example, the computing device uses only the top 5 high-energy HID blocks to compare the HID (A) of the signature of the original (real) mark with the HID (B) of the candidate mark.

[0067] Figure 2C shows an example of a comparison between the signatures of two images of a real mark. The first example 250A shows the offsets between waveforms representing images of a mark taken by different imaging devices for four images. The solid line represents the waveform from training (during training, each image is taken in a controlled environment), and the dashed line represents the waveform from testing (during testing, each image is taken in an uncontrolled environment). Note that the waveforms are generally offset horizontally due to projection distortion in each image. From this perspective, bit-shift correction (such as that shown in Figure 2B) can be an effective correction. When such a shift technique is used to correct projection distortion, for example, in the second set of example 250B, the waveforms become better aligned. The dotted line represents the waveform after the dashed waveform has been shifted. Elimination of the phase-shift effect caused by trapezoidal distortion enables the calculation of the "true" similarity between fingerprint data, effectively correcting image distortion in the fingerprint data domain and enabling a more accurate determination of mark accuracy. This same principle can be utilized in search algorithms where similarity measurements are performed on this same reduced-resolution representation of fingerprint data. For HID search, the data bit depth can be reduced to 1 and Hamming comparison can be performed.

[0068] Returning to FIG. 1B, the second computing device 110 compares the HID of the candidate mark 116 with the HID of the converted signature having the HID of the genuine mark stored in the media storage device 112 (e.g., via querying a database). As a result of the comparison, the second computing device 110 either does not receive a closely matching result (e.g., no result meeting 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 can indicate to the third computing device 120 (e.g., by sending a message) that the candidate mark 116 cannot be verified (e.g., send a message indicating that the candidate mark 116 is not genuine). The third computing device 120 receives the message and can indicate that the candidate mark 116 cannot be verified (or that the candidate mark 116 is a forgery), e.g., by recording the message on a user interface or within a log file. In some implementations, the third computing device 120 performs one or more of the steps of measuring, generating, and deriving, and sends a signature (or HID if the third computing device 120 derives the HID) to the second computing device 110.

[0069] On the other hand, if the second computing device 110 discovers one or more HIDs that closely match the HID of the candidate mark 116 or the HID of the converted signature, the second computing device 110 responds by retrieving the signature associated with the closely matching HID from the media storage device 112. The second computing device can retrieve, for example, a predetermined and / or configurable number of results (e.g., the 100 most closely matching results, 500 results, 1000 results, etc.), all results that meet a matching criterion (e.g., 70% matching, 80% matching, 90% matching, etc.), or results up to a predetermined and / or configurable number (e.g., the most closely matching results that are 90% matching and do not exceed 100 results). The second computing device 110 then compares the actual signature it generated for the candidate mark 116 with the converted signature having the retrieved genuine signature. The second computing device 110 repeats this process for each signature associated with the closely matching HID. If the second computing device 110 cannot closely match either the signature of the candidate mark 116 or any of the converted signatures having the retrieved signature, the second computing device 110 can indicate to the third computing device 120 (e.g., by sending a message) that the candidate mark 116 cannot be verified. The third computing device 120 receives the message and can indicate, for example, on a user interface, that the candidate mark 116 cannot be verified. On the other hand, if the second computing device 110 can closely match either the signature of the candidate mark 116 or the converted signature having the retrieved signature, the second computing device 110 indicates to the third computing device 120 (e.g., by sending a message) that the candidate mark 116 is genuine.

[0070] Figure 3A shows a flowchart of an exemplary process for mark authentication using a strain tolerance value. For convenience, process 300 is described as being executed by a system for mark authentication using a strain tolerance value, such as the strain tolerance system of FIG. 1B appropriately programmed to execute the process. The operations of process 300 can also be implemented as instructions stored on one or more non-transitory computer-readable media, and the execution of the instructions by one or more processing devices can cause the operations of process 300 to be executed by one or more data processing devices. One or more other components described herein can execute the operations of process 300. Process 300 authenticates candidate marks in an image using a strain adaptation process that transforms a data series of electronic signatures for the candidate marks, as further described below.

[0071] As background, FIG. 3B shows exemplary mark strains. Process 300 is configured to correct such strains that can occur when an image of a mark is taken in an uncontrolled environment, such as when the image is taken by a human user using a mobile phone camera. The figure includes an image 370A of a mark taken in ambient light without obvious strain. The figure further includes distorted images of marks taken using a low-angle spotlight (370B), shadow and spotlight glare (370C), low-angle light and rotation (370D), tilt (370E, 370F), shadow and diffused glare (370G, 370H), shadow and tilt (370I), and low-angle side light (370J).

[0072] Returning to FIG. 3A, the system can obtain an image of the genuine mark (310). As described above, a first image capture device, such as a camera, machine vision device, scanner, or other image capture device, can capture an image of the genuine mark and transmit the captured image to a computing device within the system, for example, by transmitting the mark over a network. In some implementations, obtaining an image of the genuine mark (310) involves simply receiving an image from another system or process rather than actually performing the image capture directly.

[0073] The system can determine an electronic signature for the genuine mark by generating a signature using the measured characteristics of the image of the genuine mark (315). The system can determine the signature using the techniques described with respect to FIG. 1B or similar techniques. For example, the system can measure and rank the characteristics of the mark or use measurement criteria that reach a predetermined threshold as part of the signature. The system can store the signature in a persistent storage device.

[0074] The system can obtain data describing the candidate mark (320), which can include the distortion described with respect to FIG. 3B or other image distortions. As described above, a second image capture device, which can be a camera, machine vision device, scanner, or other image capture device, can capture an image of the candidate mark and transmit the captured image to a second computing device. The second computing device can transmit the mark to the system, for example, by transmitting the mark over a network. Obtaining (320) can involve capturing an image or receiving an image captured by another system or process.

[0075] The system can generate (325) a candidate mark signature. The system can use the technique of operation 315. In some implementations, the system can receive a candidate mark signature instead of or in addition to generating a signature. For example, a computing device coupled to the system can generate a signature and provide the signature to the system.

[0076] The system can generate (330) two or more transformed data series versions of an electronic signature by transmitting data series values of an electronic candidate mark signature. These transformed data series versions of the candidate signature and the electronic signature can be referred to as a "candidate signature set", which can be used to determine mark authentication as further described below.

[0077] In some implementations, the system can generate a data series that is transformed using predetermined and / or configurable transformations. For example, the system can be configured to create four transformed data series versions of a signature by (i) shifting bits two positions to the left, (ii) shifting bits one position to the left, (iii) shifting bits one position to the left, and (iv) shifting bits two positions to the right. This example is described in detail with respect to FIG. 2B. In some implementations, the system can include multiple transformation functions, each of which can be related to or approximate one or more strain correction types as described below with respect to FIG. 3C. Note that since the strain is local to a part of the mark, the transformation can be applied only to a part of the data series generated for the mark. For example, one transformation can be applied to the data series values representing the first part of the mark, the transformation can not be applied to the data series values representing the second part of the mark, and a third transformation (which may or may not be the same as the second transformation) can be applied to the data values representing the third part of the mark.

[0078] As described above, in some implementations, the system can include a plurality of transformations related to or approximating one or more strain correction types, and the system can apply the transformations based on the strain types present within the electronic signature. FIG. 3C shows a flowchart and example of generating a signature transformed within the system using a plurality of transformations. In this example, the system applies one or more transformation functions 382A... 382M, 382N... 382Z (collectively referred to as "transformation functions 382") to a candidate signature 380. The transformation functions 382 can include shifting, warping, stretching, scaling, performing geometric operations, using a reference table of transformation values, and / or other transformation functions. Some of the transformation functions (e.g., 382N... 382Z) can be parameterized. The result is transformed signature_1 384A to transformed signature_N 384N. The candidate signature 380 and the transformed signatures 384A, 384N form a candidate signature set.

[0079] Flowchart 390 shows a more detailed process. Obtained as a data series for a candidate mark (e.g., candidate signature 380) generated from measured characteristics of an image of a candidate mark for an electronic signature, the system identifies at least one strain type within the electronic signature (390A).

[0080] The system selects a transformation function based on the identified specific strain type (390B). In some implementations, the system can include mapping from the strain type to the transformation function. For example, according to the mapping, the system can apply a first transformation if the signature exhibits glare, a second transformation if the signature exhibits rotation, and a third transformation if the signature exhibits tilt. In some implementations, the system can apply a plurality of transformations based on the strain types present. For example, if the signature exhibits glare and rotation, the system can apply the first and second transformations.

[0081] The system transforms the data series using a conversion function selected to generate at least one transformed data series, for example, using the technique of step 330 in FIG. 3A (390C). The system can utilize the data series and the transformed data series to confirm that the candidate mark is genuine, for example, as described below with respect to step 350 (390D). The result of applying the transformation is one or more transformed data series, which can be added to the candidate signature set along with the data series (i.e., signature) for the original candidate mark.

[0082] Returning to FIG. 3A, the system can determine a hash identifier (HID) for the signature within the candidate signature set (335). Turning to FIGS. 4 and 5, techniques are described for using a computing device to determine an HID from a signature (including the signature determined by transforming the candidate signature) by identifying a subset of the highest magnitude measurement criteria for the electronic signature for the mark and deriving the HID from the location identifier associated with the subset.

[0083] For each measured characteristic (and for each set of measurement criteria for the characteristic in those cases where the characteristic is measured multiple times), the computing device can take a set of measurement criteria that constitutes part of the electronic signature and classify that set by value. In FIG. 4, for example, a first set 402 of measurement criteria (shown as a list) represents the pigment deposition for various cells of a 2D barcode, where each cell has an associated index number. The data for each cell is, at this point, a dimensionless number, but when the computing device first made the pigment deposition measurement, the computing device did so with respect to the shade value. The first set 402 is only one of a plurality of sets of measurement criteria that constitute the electronic signature for the 2D barcode. The computing device classifies the first set 402 by the magnitude of the data values and extracts a subset 404 of the index numbers corresponding to the subset of data values with the highest magnitude. The computing device then makes the subset 404 of index values into a HID block for the first set 402 of measurement criteria. Once the complete HID is generated, the converter 410 can apply a conversion function to generate the converted signatures 412A, 412N, as further described below.

[0084] In another example, in FIG. 5, a first set 502 of measurement criteria corresponds to a first characteristic of a mark (e.g., a genuine mark or a candidate mark), a second set 504 of measurement criteria corresponds to a second characteristic of the mark, and a third set 506 (the “nth” set or the last set) of measurement criteria corresponds to a third characteristic of the mark. However, any number of sets of measurement criteria may exist. Each member of each set of measurement criteria in this example includes (1) an index value that correlates with the raster position of the sub - area of the mark where the measurement result of the characteristic was obtained, and (2) a data value that is either the measurement result itself or a magnitude derived from the measurement result (e.g., after some statistical processing and normalization). The computing device classifies each set of measurement criteria by the data value. For each set of measurement criteria, the computing device extracts the index value corresponding to the subset of data values with the highest magnitude. In this example, each subset of the highest magnitude is the top 25 data values of the set of measurement criteria. The computing device derives a first HID block 508 from the index values corresponding to the subset of the highest magnitude of the first set 502 of measurement criteria. Similarly, the computing device derives a second HID block 510 from the index values corresponding to the subset of the highest magnitude of the second set 504 of measurement criteria. The computing device continues this process for each of the sets of measurement criteria until it has completed this process for each set (i.e., through the nth set 506 of measurement criteria to derive the third or “nth” HID block 512), resulting in a set of HID blocks. The computing device forms an HID by integrating the HID blocks. In this example, the HID block includes the extracted index values themselves. As described above, once a complete HID is generated, the converter 510 can apply a conversion function to generate the converted signatures 512A, 512N, as further described below.

[0085] Returning to FIG. 3A, the system can extract the genuine mark signature (340) using the HID determined in step 335. FIG. 6 shows an example of how a computing device can compare all of the HIDs 602A, 602B of a genuine mark with all of the HIDs of candidate marks. The computing device can take each individual HID block of the HID value of the genuine signature, compare it with the corresponding block of the HID value of the candidate signature, and assign a match score. The computing device can then combine each of the scores into an overall match score. Generally, if the overall match score meets or exceeds a predetermined threshold score, the computing device considers the HIDs to closely match. For example, the computing device can use a predetermined threshold score of 20, meaning that if the score is 20 or higher, the computing device considers the two HIDs to closely match. This threshold can drop to zero, for example, when the match score can be negative. In the example of FIG. 6, HID 602A has 21 match scores and HID 602B has 4 match scores. Therefore, HID 602A has the highest match score, and since that 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 values and simply considers the top N HID scores (for example, if N is 10, the top 10). In such a case, the computing device is consistently performing tests on the top 10 best HID matches. This addresses the possibility of cutting off inaccurate HIDs and thereby generating false negatives through the filtering step (incurring the cost of unnecessary calculations for candidates that are not actually genuine). The computing device then extracts the signature associated with the genuine HID value. The computing device repeats this process until it has compared the candidate HID values with some (possibly all) of the HID values stored in the database of genuine mark signatures.The result of this process is a subset of the full set of genuine mark signatures, each of which the computing device can then compare with the signature of a candidate mark (using, for example, a "brute force" comparison). The computing device can further perform this comparison for all HID601 derived from the candidate signature set.

[0086] There are various ways in which one or more of the computing devices described herein can compare electronic signatures (e.g., of candidate marks and genuine marks) with each other. In some implementations, the computing device uses a direct numerical correlation to compare one electronic signature (e.g., of a candidate mark) with another electronic signature (e.g., of a genuine mark). For example, the array index of the computing device can match a set of rows of measurement criteria for the two marks for each characteristic. The computing device can also subject each of the raw sets of genuine marks to a normalized correlation with a corresponding extracted set of measurement criteria from the candidate marks. The computing device can then use the correlation results to arrive at a match / mismatch decision (genuine vs. counterfeit).

[0087] In another example, the computing device can compare a candidate signature with a genuine signature through the use of autocorrelation by, for example, comparing an autocorrelation series of the classified measurement criteria of the candidate mark with an autocorrelation series of the classified genuine signatures (stored). For the sake of brevity, well-known statistical operations

[0088]

Number

[0089] is a general normalized correlation equation, where r is the correlation result, n is the length of the measurement reference data list, and x and y are the measurement reference data sets for the genuine mark and the candidate mark, respectively. When the computing device performs the autocorrelation function, the data sets x and y are the same.

[0090] To create the autocorrelation series, in some implementations, the computing device can perform the operations described in the normalized correlation equation multiple times, each time offsetting the series x by one additional index position with respect to the series y (for safety, y is a copy of x). As the offset progresses, when the last index within the y data series is exceeded due to the x index offset, 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 in order up to offset n to generate the autocorrelation series.

[0091] In some implementations, instead of storing the full signature in the media storage device, the computing device stores a set of polynomial coefficients that describe the best-fit curve (for a given order and accuracy) that matches the shape of the autocorrelation result. This is highly practical because the computing device performs the process of generating the signature on the classified measurement reference data, and as a result, the autocorrelation series for the characteristic data (i.e., the measurement reference that helps represent the artifacts within the genuine mark) is generally a simple polynomial curve.

[0092] In some implementations, the computing device is r xycan be calculated, where each term xi is an artifact represented by its magnitude and location, each term yi = x(i + i), where j is the offset of the two data sets for j = 0 to (n - 1). xi is classified by magnitude, and since the magnitude is the most significant digit of xi, there is a very strong correlation at or near j = 0, which drops rapidly towards j = n / 2. Since y is a copy of x, j and n - j are interchangeable, and the autocorrelation series forms a U-shaped curve, an example 700 of which is shown in FIG. 7, which is necessarily symmetric with respect to j = 0 and j = n / 2. Thus, the computing device in this implementation does not need to calculate only half of the curve, but in FIG. 7, for clarity, the entire curve from j = 0 to j = n is shown.

[0093] In some implementations, the computing device can use the actual autocorrelation function and then repeat the process on the candidate marks using a polynomial-modeled curve. In practice, it has been found that a sixth-degree equation using 6-byte floating-point values for the coefficients tends to match the genuine signature data with a curve fitting error or "recognition fidelity" within 1 percent. The resulting match scores obtained by the computing device can be within 1 percent of each other. This can be true for both high match scores (expected if the candidate mark is genuine) and low match scores (expected if the candidate mark is not genuine).

[0094] In some implementations, a computing device that analyzes a marking criterion for the purpose of generating an electronic signature can bound and normalize the marking criterion used to generate the signature. For example, the computing device can represent polynomial coefficients to a fixed precision, represent the autocorrelation data itself as values between -1 and +1, and use the array index locations within the analyzed mark (genuine or candidate) as a sorted order list. If the mark being analyzed is a 2D data matrix, the array index can be a raster-ordered index of the cell positions within the mark, ordered from the original data for the symbology being used. In one common type of 2D data matrix, the origin is the point where two solid lines bounding the left and bottom of the grid intersect.

[0095] In some implementations, a computing device can compare (attempt to match) a genuine signature to a candidate signature as follows. The computing device can reconstruct the signature using the stored polynomial coefficients, autocorrelate the marking criteria within each list (i.e., for each measured characteristic) used to generate the polynomial coefficients, and compare two sets of polynomial coefficients (compare two autocorrelation series). The computing device can perform this comparison in several ways. For example, the computing device can attempt to associate the autocorrelation series of the candidate mark to the (reconstructed) autocorrelation curve of the genuine mark's signature. Alternatively or in addition, the computing device can construct curves for each of the autocorrelation series (candidate and genuine) and perform curve fitting errors on pairs of curves, such as curves 700 in FIG. 7 and curves 800 in FIG. 8. The degree of correlation between two sets of autocorrelation values for a given characteristic (or a given set of marking criteria for a characteristic) becomes a match score for that characteristic or set of marking criteria.

[0096] In some implementations, a computing device that analyzes measurement criteria of a mark for the purpose of generating an electronic signature can apply power-law analysis to autocorrelation data for candidate marks and autocorrelation data for genuine marks. The computing device can apply such power-law analysis using a discrete Fourier transform ("DFT"):

[0097] [Number]

[0098] where X k is the k-th frequency component, N is the length of the list of measurement criteria, and x is the measurement criteria data set. The computing device can calculate the power series of the DFT, analyze each frequency component with respect to magnitude (represented by a complex number in the DFT series), and discard the phase component. The resulting data describes the distribution of measurement criteria data spectrum energy from low frequencies to high frequencies, which serves as a basis for further analysis.

[0099] In some implementations, a computing device that analyzes measurement criteria of a mark for the purpose of generating an electronic signature can use two frequency domain analyses, kurtosis, and distribution bias. In this context, distribution bias refers to a measure of the energy distribution around the center band frequency of the entire spectrum. To perform kurtosis, the computing device can use the following equation,

[0100] [Number]

[0101] where Y is the mean of the data of the magnitude of the power series, s is the standard deviation of the magnitude, and N is the number of discrete spectrum frequencies analyzed.

[0102] In some implementations, to calculate the distribution bias, the second computing device uses the following formula,

[0103]

Number

[0104] where N is the number of discrete spectral frequencies analyzed. When using frequency domain analysis (e.g., using DFT), in some implementations, the computing device considers the following criterion: that is, the smooth polynomial curve of the genuine mark's signature (resulting from the classification by magnitude) brings about distinct characteristics in the spectral signature when analyzed within the frequency domain. A candidate mark will present a similar spectral energy distribution if the symbol is genuine when its measurement reference data is extracted in the same order as the measurement reference data extracted from the genuine mark. In other words, the genuine classification order "matches" the magnitude of the candidate measurement reference. Discrepancies or other superimposed signals (such as photocopy artifacts) in the classified magnitude tend to appear as high-frequency components that would not otherwise be present within the genuine symbol spectrum, thus providing an additional measurement unit for mark authenticity. This addresses the possibility that the autocorrelation series of a counterfeit may still meet the minimum statistical matching threshold of the genuine mark. The distribution characteristics of the DFT power series of such signals reveal the low matching quality through the high frequencies present in the small amplitude collation error of the candidate series. Such conditions can be indicative of photocopies of genuine marks. In particular, the computing device considers that high kurtosis and high distribution ratios are present within the spectrum of the genuine mark. In some implementations, the computing device uses this power series distribution information as a measurement unit of reliability in the verification of candidate marks together with the matching score.

[0105] Next, the computing device can determine whether the candidate mark is genuine based on all of the match scores for the various characteristics. In FIG. 7, the scores can be used to determine (710) whether the mark is genuine, for example using the operation of step 350 in FIG. 3A. If the mark is genuine, mark verification is provided (715), for example using the operation of step 355 in FIG. 3A, and if the mark is not genuine, a failure notice can be provided (720), for example using the operation of step 360 in FIG. 3B. The same technique is shown in FIG. 8, where the scores can be used to determine (810) whether the mark is genuine. If the mark is genuine, mark verification can be provided (815), and if the mark is not genuine, a failure notice can be provided (820). Steps 350, 355, and 360 are described below.

[0106] Returning to FIG. 3A, as described above, the system can determine (350) whether the candidate mark is genuine by using the data series and the transformed data series, i.e., the candidate signature set, and comparing the data series to the genuine mark. For example, the system can compare at least one electronic signature of the genuine mark retrieved from the set of stored genuine marks.

[0107] In some implementations, the system uses HID to retrieve multiple results from a database of genuine mark signatures. For example, the system can retrieve N genuine results that best match the candidate mark, e.g., have the highest match score when compared to values within the candidate signature set. Note that N can be 1 (matching only the most genuine - looking mark) or can be 2 or more (matching multiple genuine marks). Once such genuine marks are retrieved, the system can compare the signatures within the candidate signature set instead of or in addition to comparing the HIDs. Comparing the signatures can provide a more accurate comparison.

[0108] If the mark is genuine, the system can provide mark verification (355), and if the mark is not genuine, the system can provide a failure notice (360). In either case, the system can display the result on the user interface or record it in a log file.

[0109] Figures 9 and 10 show exemplary results of applying the conversion function. In Figure 9, the first graph 910 shows the results of comparing the signature with marks having various strains. Lines 915A and 915B show the similarity between the scores for the signature of the genuine mark (915A) and the signature for the next best match (915B), and each point on the line scores a signature for one mark. (For example, the point at 9 on the X-axis is the result for the 9th sample.) In graph 910, no shift correction is applied, and for some samples, such as 3, 4, and 12, the lines cross or nearly cross, indicating that the system cannot distinguish between genuine and counterfeit marks.

[0110] In graph 920, lines 925A and 925B again show the similarity between the score for the genuine mark (925A) and the score for the next best match (925B), but shift correction has been applied. In this case, the genuine sample 925A is clearly distinguished from the next best match 925B.

[0111] In Figure 10, graphs 1030 and 1040 show the same data, but it is data for the HID for the signature rather than the data for the signature itself. As described above, for the untransformed data (graph 1030), the score 1035A for the genuine sample crosses or nearly crosses the score 1035B for the next best match. In contrast, for the transformed data (graph 1040), the score 1045A for the genuine sample is clearly distinguished from the score 1035B for the next best match, indicating that the genuine sample can be appropriately distinguished from the counterfeit sample.

[0112] FIG. 11 is a block diagram of an exemplary computer system 1100 that can be used to execute the operations described above. System 1100 includes a processor 1110, a memory 1120, a storage device 1130, and an input / output device 1140. Each of the components 1110, 1120, 1130, and 1140 can be interconnected, for example, using a system bus 1150. The processor 1110 can process instructions for execution within the system 1100. In some implementations, the processor 1110 is a single-threaded processor. In another implementation, the processor 1110 is a multi-threaded processor. The processor 1110 can process instructions stored in the memory 1120 or on the storage device 1130.

[0113] The memory 1120 stores information within the system 1100. In some implementations, the memory 1120 is a computer-readable medium. In some implementations, the memory 1120 is a volatile memory unit. In another implementation, the memory 1120 is a non-volatile memory unit.

[0114] The storage device 1130 can provide mass storage for the system 1100. In some implementations, the storage device 1130 is a computer-readable medium. In various different implementations, the storage device 1130 can include, for example, a hard disk device, an optical disk device, a storage device shared over a network by multiple computing devices (e.g., a cloud storage device), or some other large-capacity storage device.

[0115] The input / output device 1140 provides input / output operations for the system 1100. In some implementations, the input / output device 1140 can include one or more of a network interface device 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 device can 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 the display device 1160. However, other implementations can also be used, such as mobile computing devices, mobile communication devices, set-top box television client devices, etc.

[0116] Although an exemplary processing system has been described with reference to FIG. 11, implementations of the subject matter and the functional operations described in this specification can be implemented in other types of digital electronic circuits, or in computer software, firmware or hardware including the structures disclosed in this specification and their structural equivalents, or in one or more combinations thereof.

[0117] The implementations of the subject matter and the functional operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, hardware, or in combinations of one or more of them, including the structures disclosed in this specification and their structural equivalents. The implementations of the subject matter described in this specification can be implemented using one or more modules of computer program instructions encoded on a computer-readable medium for execution by, or to control the operation of, a data processing apparatus. A computer-readable medium can be a manufactured product, such as a hard drive within a computer system, an optical disk sold through a retail distribution channel, or an embedded system. A computer-readable medium can be obtained individually and then encoded, for example, through the distribution of one or more modules of computer program instructions via a wired or wireless network, with one or more modules of computer program instructions. A 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.

[0118] The term "data processing apparatus" encompasses all apparatus, devices, and machines for processing data, including, by way of example, a programmable processor, a computer, or multiple processors or computers. The apparatus can include, in addition to hardware, code that creates an execution environment for the relevant computer program, such as code that constitutes processor firmware, a protocol stack, a database management system, an operating system, a runtime environment, or a combination of one or more of them. In addition, the apparatus can adopt various different computing model infrastructures, such as web services, distributed computing, and grid computing infrastructures.

[0119] A computer program (also known as a program, software, software application, script, or code) can be written in any suitable form of programming language, including compiler-type or interpreter-type languages, declarative or procedural languages, and a computer program can be deployed in any suitable form, including as a stand-alone program or as included 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. The program can be stored in part of a file that holds other programs or data (e.g., one or more scripts stored within a markup language document), in a single file dedicated to the program, or in a plurality of cooperating files (e.g., files that store one or more modules, subprograms, or portions of code). A computer program can be deployed to be executed on one computer or on a plurality of computers, which may be located at one site or distributed across a plurality of sites and interconnected by a communication network.

[0120] The processes and logical 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 logical flows can also be performed by, and the apparatus can also be implemented as, special purpose logic circuitry, such as an FPGA (Field Programmable Gate Array) or an ASIC (Application Specific Integrated Circuit).

[0121] Processors suitable for the execution of a computer program include, by way of example, dedicated microprocessors. In general, a processor receives instructions and data from a read-only memory or a random access memory or both. Essential elements of a computer are a processor for executing instructions and one or more memory devices for storing the instructions and data. In general, a computer also includes or is operatively coupled to one or more mass storage devices for storing data, such as magnetic disks, magneto-optical disks, or optical disks, or receives data from such storage devices or transfers data to such storage devices or both. However, a computer does not necessarily have such devices. Moreover, a computer can be incorporated within another device, such as, by way of several examples, a mobile phone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a global positioning system (GPS) receiver, or a portable storage device (e.g., a universal serial bus (USB) flash drive). Devices suitable for storing computer program instructions and data include, by way of example, all forms of non-volatile memory, media, and memory devices, including exemplary 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 within, dedicated logic circuitry.

[0122] To provide interaction with a user, implementations of the subject matter described herein can be implemented on a computing device that can provide information to the user. The information can be provided to the user in a perceptual format that includes vision, hearing, touch, or combinations thereof. The computing device can 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, etc., to display information to the user. The computing device can be coupled to an input device. The input device can include a touch screen, a keyboard, and a pointing device, such as a mouse or a trackball, through which a user can provide input to the computing device. Other types of devices can similarly be used to provide interaction with the user. For example, the feedback provided to the user can be any suitable form of perceptual feedback, such as visual feedback, auditory feedback, or tactile feedback, and the input received from the user can be in any suitable form, including acoustic, voice, or tactile input.

[0123] A computing system can include a client and a server. The client and the server are generally separated from each other and typically interact via a communication network. The relationship between the client and the server is created by computer programs that operate on respective computers and have a client-server relationship with each other. Implementations of the subject matter described herein can be implemented in, for example, a computing system that includes back-end components as a data server, or includes middleware components such as an application server, or includes front-end components such as a client computer having a graphical user interface or a web browser through which a user can interact with an implementation of the subject matter described herein, or in any combination of one or more such back-end, middleware, or front-end components. The components of the system can be interconnected by any suitable form or medium of digital data communication, such as a communication network. Examples of communication networks include local area networks ("LANs") and wide area networks ("WANs"), the Internet network (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).

[0124] This specification includes details of many implementations, which should not be construed as limiting the scope of what is claimed or what may be claimed, but rather as describing features particular to specific implementations of the disclosed subject matter. Some features described herein in the context of individual implementations may also be implemented in combination within a single implementation. Conversely, various features described in the context of a single implementation may also be implemented separately in multiple implementations or in any suitable subcombination. Further, features may be described above as functioning in certain combinations and initially claimed as such, but one or more features of the claimed combination may in some cases be removable from that combination, and the claimed combination may be directed to a subcombination or variation of a subcombination. Thus, unless specifically recited otherwise or as would be apparent to one of ordinary skill in the art, any of the features of the implementations described above may be combined with any of the other features of the implementations described above.

[0125] Similarly, operations are illustrated in a particular order in the figures, which should not be understood as requiring that such operations be performed in the particular order shown in the figures or in a sequential order, or that all of the illustrated operations be performed. In some circumstances, multitasking and / or parallel processing may be advantageous. Also, with respect to the separation of various system components in the implementations described above, not all implementations require such separation, and it should be understood that the described program components and systems may generally be integrated into a single software product or packaged into multiple software products.

[0126] Accordingly, particular implementations of the invention have been described. Other implementations are within the following claims. For example, actions recited in the claims may be performed in a different order and still achieve desirable results.

Description of the Reference Numerals

[0127] 10A Graph 10B Graph 100 Mark Application Device 102 Genuine Mark 104 Regular Physical Object 106 First Image Capture Device 108 First Computing Device 110 Second Computing Device 110A Converter 112 Media Storage Device 112A Converted Data Series Version of Electronic Signature 112B Converted Data Series Version of Electronic Signature 112C Converted Data Series Version of Electronic Signature 113 Vector Space 114 Unverified Physical Object 116 Candidate Mark 118 Second Image Capture Device 120 Third Computing Device 200 Mark 202 First Sub - area 204 Second Sub - area 206 Third Sub - area 208 Fourth Sub - area 210 Fifth Sub - area 212 Sixth Module 214 Signature Converter 216 Hash Identifier (HID) Generator 220 Flow Diagram 230 List of Bit Signatures 230A Original Sequence 230B First Converted Sequence 230C Second Converted Sequence 230D Third Converted Sequence 230E Fourth Converted Sequence 250A First Example Second set of 250B examples 370A image 370B low-angle spotlight 370C shadow and spotlight glare 370D low-angle light and rotation 370E tilt 370F tilt 370G shadow and diffused glare 370H shadow and diffused glare 370I shadow and tilt 370J low-angle side light 380 candidate signature 382 conversion function 382A conversion function 382M conversion function 382N conversion function 382Z conversion function 384A converted signature 384N converted signature 390 flowchart 402 first set of measurement criteria 404 subset of index values 410 converter 412A converted signature 412N converted signature 502 first set of measurement criteria 504 second set of measurement criteria 506 third set of measurement criteria 508 first HID block 510 second HID block 512 nth HID block 512A converted signature 512N converted signature 601 all HIDs 602A HID 602B HID 700 curve of Figure 7 800 curve of Figure 8 910 first graph 915A signature of genuine mark Signature for the next best match of 915B 920 Second graph 925A Score for the genuine mark 925B Score for the next best match 1030 Graph 1035A Score 1035B Score 1040 Graph 1045A Score 1100 Computer system 1110 Processor 1120 Memory 1130 Storage device 1140 Input / output device 1150 System bus 1160 Other input / output devices

Claims

1. It is a system, User interface devices and The user interface device includes one or more computers capable of operating to interact with the user interface device, the one or more computers being programmed to perform operations according to machine-readable instructions, and the operations are Obtaining an electronic signature for the candidate marks in the image, To obtain a converted data series of the electronic signature with the value distortion in the data series of the electronic signature for the candidate mark corrected, a distortion adaptation process is used to convert the data series of the electronic signature for the candidate mark, Authenticating the candidate mark using the converted data series of the electronic signature for the candidate mark and the data series of the electronic signature for the genuine mark, A system characterized by including

2. The system according to claim 1, wherein the strain adaptation process utilizes multiple transformation functions, each transformation function approximating a specific strain correction type.

3. The system according to claim 1, wherein the data series is a vector of numbers, and the numbers are of a data type that includes at least one of bits, bytes, floats, doubles, hexadecimals, or other data representations.

4. The system according to claim 1, wherein the transformation function of the strain adaptation process includes at least one of shifting, warping, stretching, scaling, performing geometric operations, or using a reference table of transformed values.

5. The system according to claim 4, wherein one or more computers are programmed to select a transformation function that enables an approximate correction of the target strain to be removed from the data series.

6. The system according to claim 4, wherein the transformation function is parameterized and applied two or more times using two or more parameter values ​​to enable approximate correction of the target strain to be removed from the data series.

7. The system according to claim 6, wherein, when the transformation function is a shift, the parameter of the parameterization is the number of positions in the data series to be shifted.

8. The system according to claim 4, wherein the transformation function maps data series elements from one value to another in the same vector space.

9. The system according to claim 8, wherein the fingerprint is a data series member in the vector space.

10. The electronic signature is generated from the measured characteristics of the image of the candidate mark, and the use of the strain adaptation process includes converting the data series values ​​of the electronic signature to generate two or more converted data series versions of the electronic signature, and the authentication is Deriving hash identifiers for the electronic signature and for the two or more converted data series versions of the electronic signature, Using the hash identifier to retrieve two or more sets of results from a database of authentic Mark signatures, In order to verify that the candidate mark is authentic, at least one digital signature retrieved from the database for at least one of the two or more results is compared with the digital signature for the candidate mark. The system according to claim 1, including the following:

11. The system according to claim 10, wherein the conversion includes performing several spot data series shifts in at least one direction, which are performed a certain number of times to generate at least four converted data series versions of the electronic signature.

12. The system according to claim 10, wherein at least one of the two or more results is one of the two or more results having the highest match score.

13. To obtain the above means, Receiving the image of the candidate mark, To create a set of measurement criteria for the aforementioned characteristics, the characteristics are measured, To generate the electronic signature based on the set of measurement criteria and The system according to claim 10, including the system described in claim 10.

14. The system according to claim 10, wherein the one or more computers include a server capable of operating to interact with the user interface device via a data communication network, and the user interface device is capable of operating to interact with the server as a client.

15. The system according to claim 10, wherein the user interface device includes a personal computer, a mobile device, or a mobile phone running a web browser.

16. The system according to claim 10, wherein the one or more computers include one personal computer, and the personal computer includes the user interface device.

17. A step of obtaining an electronic signature as a data series for a candidate mark, wherein the electronic signature is generated from measured characteristics of the image of the candidate mark. The steps include identifying at least one specific strain type within the electronic signature, The steps include selecting one transformation function from a plurality of transformation functions based on the identified at least one specific strain type, The steps include transforming the data series using the selected transformation function to generate at least one transformed data series in which the strain in the data series values ​​is corrected for at least one specific strain type identified, A step of using the data series and the converted data series to verify that the candidate mark is genuine. Methods that include...

18. A non-temporary computer-readable medium, which allows a data processing device to perform the following operations, namely: A step of obtaining an electronic signature as a data series for a candidate mark, wherein the electronic signature is generated from the measured characteristics of the image of the candidate mark, Identifying at least one specific strain type within the electronic signature, Selecting one transformation function from a plurality of transformation functions based on the identified at least one specific strain type, The data series is transformed using the selected transformation function to generate at least one transformed data series in which the strain in the data series values ​​is corrected for at least one specific strain type identified above. The data series and the converted data series are used to verify that the candidate mark is genuine. A non-temporary, computer-readable medium that tangibly encodes a computer program capable of performing an action that includes [a specific action].