Overcomplete fingerprint extraction

By capturing an overcomplete spectrum of information from a product's code or mark, the technology addresses the limitations of traditional e-fingerprinting methods, enhancing discriminative power and scalability, and providing a robust solution for authenticating items.

WO2025072281A1PCT designated stage expired Publication Date: 2025-04-03SYS TECH SOLUTIONS INC
View PDF 8 Cites 0 Cited by

Patent Information

Application Number
PCT/US2024/048335
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-09-25
Filing Date
2024-09-25
Publication Date
2025-04-03

AI Technical Summary

Technical Problem

Traditional e-fingerprinting methods are limited by customization and scalability, requiring manual tuning of configuration parameters for each product or application, which is resource-intensive and time-consuming. Additionally, these methods lack sufficient discriminative power to reliably authenticate items, especially in scenarios involving similar photocopies, variable lighting conditions, and different sensors.

Method used

The technology involves capturing an 'overcomplete' broad spectrum of information from a product's code or mark, eliminating the need for upfront configuration and manual tuning. This universal fingerprinting process generates a unique electronic representation of a mark, which can be used for authentication, providing a robust solution against counterfeiting and ensuring product integrity.

Benefits of technology

The solution significantly simplifies the fingerprinting process, enhances the discriminative power of fingerprints, and optimizes them for both search and authentication applications. It provides increased scalability and efficiency, enabling reliable authentication of items across diverse scenarios.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure US2024048335_03042025_PF_FP_ABST
    Figure US2024048335_03042025_PF_FP_ABST
Patent Text Reader

Abstract

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for overcomplete fingerprint extraction. One of the methods includes determining a transform for a first electronic signature generated for an authentic mark after the first electronic signature is generated and stored in a database, the transform converts at least a proper subset of data in the first electronic signature into a reduced dataset vector space that is indicative of measured characteristics that are usable for mark authentication, obtaining a second electronic signature for a candidate mark, retrieving, from the database, a set of electronic signatures including the first electronic signature that are similar to the second electronic signature, applying the transform to the second electronic signature and to one or more of the set of electronic signatures to produce reduced dataset vector space signatures, utilizing the reduced dataset vector space signatures to confirm the candidate mark is genuine.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] OVERCOMPLETE FINGERPRINT EXTRACTION

[0002] BACKGROUND

[0003] Technical Field

[0004] The present disclosure is related to anti-counterfeiting technology and, more particularly, to methods and a computing device for determining whether a mark is genuine.

[0005] Background

[0006] Counterfeit products are, unfortunately, widely available, and often hard to spot. When counterfeiters produce fake goods, they typically copy the labeling and bar codes in addition to the actual products. At a superficial level, the labels and bar codes may appear genuine and even yield valid data when scanned (e.g., decode to the appropriate Universal Product Code). While there are many technologies currently available to counter such copying, most of these solutions involve the insertion of various types of codes, patterns, microfibers, microdots, and other indicia to help thwart counterfeiting. Such techniques require manufacturers to use additional equipment and material and add a layer of complexity to the production process.

[0007] Today’s manufacturers can use automated mass production to produce millions of items that are practically indistinguishable to the human eye. Fingerprinting and identifying or authenticating such items can be performed by capturing random surface print variations on the product or product packaging using imaging devices. More specifically, print variations on marks or standard product codes, e.g., UPC (universal product code), QR (Quick Response), and DM (data matrix) that are already used to identify items or product types can be used to authenticate the items.

[0008] Traditional e-fingerprinting process can be limited by customization and scalability. Manual tuning of configuration parameters for each product or application can be resourceintensive and time-consuming, which can be impractical for organizations dealing with a diverse range of products. This approach can be limited in scalability, especially for organizations with a vast array of products. If the configuration must be changed (e.g., due to equipment updates), all fingerprints have to then be recaptured. Additionally, traditional methods often lack sufficient discriminative power to reliably authenticate items, especially in scenarios involving similar photocopies, variable lighting conditions, different sensors, and user behavior.

[0009] SUMMARY

[0010] This specification describes technologies for e-fingerprinting including capturing an “over complete,” broad spectrum of information from the product's code or mark, eliminating the need for upfront configuration and manual tuning.

[0011] The described methods can be used for product authentication and security through a universal fingerprinting process. Authentication, as used in this disclosure, is the process of verifying the authenticity of a product or item using its unique reference fingerprint. Authentication involves generating a candidate fingerprint of a mark on a product item and comparing the candidate fingerprint of the mark on the product item with a reference fingerprint, i.e., a “genuine fingerprint,” that was captured previously from the genuine mark on the product item to determine if they match, indicating that the product item is genuine. In this context, fingerprinting refers to the creation of a fingerprint (i.e., an “electronic signature”) for a product or item based on a physical mark or code. A fingerprint is a unique electronic representation of the mark or code on a product and is generated by analyzing metrics associated with characteristics of the mark. The fingerprint can then be used to verify the authenticity of the item, providing a robust solution against counterfeiting, and ensuring product integrity.

[0012] A non-genuine mark, as used in this disclosure, is a mark or code applied to a product or item that is not genuine or authentic. Non-genuine marks can include counterfeit marks, photocopies, or marks that have been tampered with or altered. A non-genuine mark can include, for example, (i) a counterfeit printed mark which is a reprint, (ii) an uncaptured sibling, i.e., a mark printed by the same machine as genuine marks printed on other genuine items but was never captured, or (iii) photocopied duplicates of a genuine mark. In some implementations, the methods include using the systems and techniques of one or more of U.S. Patent Nos. 9519942, 9940572, 10235597, 10061958, and / or PCT / US2023 / 019484 filed 21 -April-2023, which are hereby incorporated by reference in their entireties.

[0013] The technology described in this specification can be implemented so as to realize one or more of the following advantages. This technology not only significantly simplifies the fingerprinting process but also enhances the discriminative power of fingerprints, making them optimized for both search and authentication applications. The discriminative power is the ability of the fingerprinting system to distinguish between genuine and non-genuine marks. The more discriminative power a system has, the more accurately it can authenticate items. The technology described in this disclosure provides increased discriminative power by storing high-resolution, high-dimensionality signature information captured from mark edges, within areas of uniform added material and / or ablated material (intentionally altered areas that change an optical characteristic of the product or packaging), and from areas of uniform substrate (outside of intentionally marked areas), in separate channels which can be processed independently or in combination.

[0014] The discriminative power of existing fingerprinting technologies may not suffice for reliable authentication, particularly in scenarios involving similar photocopies, high sibling scores, variable lighting conditions, diverse sensors, and user behavior. Additionally, in scenarios where product marks are damaged or affected by processing, the identifying features used for the fingerprint may not be available for authentication. In such cases, additional (and / or alternative) features captured using the universal fingerprint capture (described herein) can be included in generating the fingerprint for authentication. The technology described in this disclosure can provide fingerprints having more discriminative power by storing application-specific signature filter operations and signal processing that are applied after the OC fingerprints are captured but before performing the matching operation.

[0015] The process of optimizing fingerprints for authentication often leads to the elimination of information beneficial for search, thereby creating a design conflict between the two objectives of simplifying the fingerprinting process and enhancing the discriminative power of the fingerprints. The technology described herein can significantly enhance the discriminative power of the fingerprints, making them more reliable for authentication. It can also optimize the fingerprints for large-scale search applications, enabling the use of larger datasets for performance optimization.

[0016] The technology described herein can eliminate the need for manual fine-tuning of fingerprint configuration parameters before capturing fingerprints. For example, the processes described herein can eliminate the need to fine-tune settings or variables that influence the process of creating a fingerprint, e.g., settings related to the image capture process, the characteristic measurement process, or the signature formation process. As such, the fingerprint configuration processing can be delayed to be performed during authentication prior to computing matching scores for classification rather than having to perform such fingerprint configuration processing at the point of capture. It can also address the potential lack of sufficient discriminative power for reliable authentication and the lack of optimization for large-scale search applications in traditional fingerprinting processes.

[0017] Furthermore, the fingerprints can also be developed using a generalized signature extraction process, which captures information independently from the edges (e.g., boundary areas between foreground and background), ink (e.g., foreground), and background of the code image. This allows for a wide range of print types, substrates, and packages to be captured using the same process. In other words, the capturing processes is standardized across different print types and substrates without manual configuration, and can rely on the same feature extraction, feature processing, and encoding methods for different signature feature types. By using the most generic high-resolution, e.g., high-dimensionality, feature extraction method and applying a same processing and encoding for all signature feature types extracted, the process of generating fingerprints is substantially simplified for the user and reduces internal algorithm complexity.

[0018] In some implementations, the fingerprints also contain both sibling information and authentication features, facilitating effective search and authentication. The sibling information can be captured and preserved during the fingerprinting process rather than discarding the information before an authentication process. As noted above, capturing and preserving sibling information can assist in discriminating between marks printed on the same machine from other non-genuine marks.

[0019] This technology offers a scalable, efficient, and reliable solution for product authentication and security. Authentication features can include print and substrate deviations or attributes of a single mark that are used to verify its authenticity. The deviations or attributes are natural variations created by the printing process, including intentionally and / or unintentionally produced printing or marking artifacts that are unique to each item instance and thus are not reproducible. The details of one or more embodiments of the subject matter of this specification are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the subject matter will become apparent from the description, the drawings, and the claims.

[0020] BRIEF DESCRIPTION OF THE DRAWINGS

[0021] FIG. 1 is a block diagram of an example operating environment for the overcomplete fingerprint system.

[0022] FIG. 2 is a flow diagram of an example of a process for the overcomplete fingerprint system.

[0023] FIG. 3 depicts an example of code detection within an example image.

[0024] FIG. 4 is a flow diagram of an example of a process for the overcomplete fingerprint system, for performing image quality evaluation.

[0025] FIG. 5 depicts an example of grid placement on a ID barcode.

[0026] FIGS. 6A-6C depict examples of signature feature regions for fingerprint extraction.

[0027] FIGS. 6D-6E depict an example of calculating projected average pixel values for extracted features.

[0028] FIG. 7 depicts a flow diagram of an example of a process of feature extraction.

[0029] FIG. 8 depicts an example of the stacked-up feature vectors for each bar of the bar code for a channel.

[0030] FIG. 9 is a flow diagram of an example of a process for the overcomplete fingerprint system, e.g., a process for verifying the authenticity of a candidate mark.

[0031] FIG. 10 is a flow diagram of an example process of the overcomplete fingerprint system, e.g., a process for applying a transform to an overcomplete fingerprint to produce a reduced dataset vector space fingerprint.

[0032] FIG. 11 is a flow diagram of an example process of applying a cluster filter to remove common patterns between blocks of a single fingerprint as part of the transformation sequence.

[0033] FIG. 12 depicts a flow diagram of an example process for performing the transform on the candidate fingerprint and the set of K-nearest neighbor (KNN) fingerprints.

[0034] FIGS. 13A-13E depict an example process of using a 2D barcode to generate an overcomplete fingerprint usable for authenticating and tracking a product item. FIG. 14A depicts an example of single cross features identified in a portion of a mark. FIG. 14B depicts an example of feature doubling of the single cross feature.

[0035] FIG. 15 depicts a flow diagram of an example process for updating a transform to convert the overcomplete signature.

[0036] Like reference numbers and designations in the various drawings indicate like elements.

[0037] DETAILED DESCRIPTION

[0038] FIG. l is a block diagram of an example operating environment 100 for the overcomplete fingerprint system. As depicted in FIG. 1, the process of authentication involves applying (1) a mark to a product item by a mark-applying device. A mark, e.g., symbology, as used in this disclosure, is a physical or digital symbol or code applied to a product or item in manufacturing for logistics, consumer engagement, compliance or other purposes useful to the brand owner. For example, a mark can be a brand logo, a barcode, or a decorative element, and it includes intentionally and / or unintentionally produced printing or marking printing or marking artifacts that are unique and are not reproducible. A printed mark can include something that identifies a brand (e.g., a logo) or something that bears information. For example a barcode (e.g., a one-dimensional (" 1 D") barcode, such as such as European Article Number (EAN), Universal Product Code (UPC), Interleaved Two of Five (ITF) code, etc., a two-dimensional ("2D") data matrix barcode as specified in the International Organization for Standardization ("ISO") and the International Electrotechnical Commission ("IEC") standard ISO / IEC 16022, a Quick Response (QR) code, etc.), an expiration date, or tracking information such as a serial number), or a decoration. In some implementations, the printed mark can include another suitable region of interest on the product item.

[0039] Printed marks can be found, for example, on the product item itself, product packaging, or a product label. Although referred to herein as a “printed” mark, the term should not be read as limiting to traditionally printed (e.g., inkjet or Laserlet) marks. Printed can refer to, for example, a scribed mark (e.g., laser scribed), an indentation-type mark (e.g., stamping, pressing), or another form of establishing a mark on a product item.

[0040] The mark-applying device can be a printer, a print and apply machine, or another suitable device, which is configured to apply a genuine mark to a physical object. The genuine mark, e.g., a printed mark, is applied to a product or item during the manufacturing process that is used to create a reference fingerprint and can include intentionally and / or unintentionally produced printing or marking artifacts that are unique and are not reproducible. Although the process below is described with reference to a single mark, the process below can be used to capture multiple different types of marks from multiple different types of mark-applying devices using the same universal " overcomplete" signature extraction process, as well as different types of marks for the same product (e.g., capturing both a logo and a barcode from a single instance of a product). An overcomplete signature, as used in this description, refers to the process of storing much more information than necessary within the overcomplete signatures, i.e., electronic signatures or fingerprints, during the generation of the overcomplete signatures. The additional information is stored as a result of not knowing in advance which information will ultimately be useful and which will not be useful in the validation process at a later time. The fingerprints are encoded prior to storage, where the encoding process, as described below, reduces a memory storage requirement for storing the encoded high-dimensional fingerprint that includes the additional information while minimizing a loss of information. The fingerprint can then be decoded at a later point in time, e.g., during an authentication process, where the high-dimensional fingerprint is transformed, as described below, to a reduced-dimensional vector space including only that information used for performing the matching process.

[0041] The system can capture and process images including the mark during item production, e.g., using an in-line machine vision system to locate a mark in the image. For example, as depicted in FIG. 1, an image-capturing device operating under controlled circumstances, captures (2) image data including the genuine mark, e.g., as it is moved by the product transporter. This can include a camera, a machine-vision device or a scanner, or the self-contained high speed capturing technology described herein.

[0042] The image-capturing device transmits (3) the captured image to a processor. The processor can be a desktop computer, a rack-mounted server, a laptop computer, a tablet computer, a mobile phone, a multi-core high speed processing device on a label converter or a smart camera on a packaging line. In some implementations, the camera and processor are components of a standalone image processing system, e.g., a standalone system deployable in a production environment. The processor generates, from the image of the genuine mark, an overcomplete fingerprint of the genuine mark which can be transmitted (4) and stored in a database for future authentication processes, as described in further detail below.

[0043] The system converts (using the local processor) the overcomplete (i.e., universal) fingerprint-extraction reference fingerprints to a compact fingerprint, e.g., using an encoding process to reduce a memory storage requirement while minimizing information loss, and provides the compact fingerprints in a cloud-based system to store (5) the compact fingerprints in a databased for later access. The cloud-based system receives (6) captured images of a test item. For example, a cell phone in the field, a standalone imaging system or the like, can be used to capture a candidate fingerprint using the universal fingerprint extraction process.

[0044] The system, e.g., at a cloud-based or locally-hosted version of the overcomplete fingerprint system, applies a transform to the candidate fingerprint and a set of reference fingerprints, including the additional features not used for discrimination, to reduce a dimensionality of the aggregate of features of the printed mark that are used to compare the candidate fingerprint with the reference fingerprints in the database to establish if a match exists or not.

[0045] In some implementations, the system receives, as input, a fingerprint string and performs a data-reduction transform on the string to generate a fingerprint vector as output. The data-reduction transform can selectively remove noisy information from the fingerprint data, rather than reducing the overall data size, e.g., targeted removal of data. An example process of the transform is described in further detail with reference to FIG. 2.

[0046] As previously discussed, the processor generates an “overcomplete” or universal fingerprint for the genuine mark, including both data of measured characteristics for features that will be usable for authenticating the particular genuine mark (e.g., an aggregate of features that are usable for authenticating the particular genuine mark) as well as data of measured characteristics of features that will not be usable for authenticating the particular genuine mark (but may be useable to authenticate a different genuine mark). In other words, each fingerprint includes data for measured characteristics that indicate one or more common features found in the two or more different types of authentic marks, where the one or more common features are not usable to distinguish different marks from a first of the different types of authentic marks, while also being usable to distinguish different marks from a second of the different types of authentic marks. For example, a first type of mark printed by a first machine can include a first set of features that are useable to distinguish between different instances of the first type of mark printed by the first machine on multiple products. A second type of mark printed by a second machine can include a second set of features that are useable to distinguish between different instances of the second type of mark printed by the second machine on multiple products. The first set of features and the second set of features can include at least some features that are not in common, i.e., that some subset of the first features are not useable to distinguish the marks of the second type and that some subset of the second features are not useable to distinguish the marks of the first type. The fingerprints captured for the marks of the first type and the second type include the first set of features and the second set of features, such that each fingerprint will include features not useable to distinguish the corresponding mark type.

[0047] The output fingerprint vector is still a high-dimensional vector, but the intrinsic dimensionality has been reduced by removing redundant or noisy components. A compact fingerprint can be generated from the output fingerprint vector using an encoding process to reduce the storage memory size of the information while minimizing information loss. The encoding process, as described in further detail below with reference to FIG. 2, includes a process of a non-linear transformation or other discretization, and optionally, composition of the fingerprint information into a text-based string.

[0048] In some instances, the processing steps are applied uniformly across all channel s / feature types and can be customized by parameters. The specific parameter settings for the processing steps to capture, encode, decode, and transform the fingerprints, e.g., filters, normalization, etc., can be optimized experimentally to maximize the discriminative power of the final fingerprint representation. In other words, while the processing steps are applied universally across multiple marks, the parameters of the universal processing steps can be tuned to optimize its compatibility and discriminatory power across the multiple marks.

[0049] In some implementations, generating the overcomplete fingerprint includes a process of measuring various characteristics of the mark at multiple locations, resulting in a set of metrics. Characteristics can include, for example, feature shape, feature aspect ratios, feature locations, feature size, feature contrast, edge linearity, region discontinuities, extraneous marks, printing defects, color, pigmentation, and contrast variations. Additionally, the overcomplete fingerprint process can include three different feature types or areas each stored in a respective channel, from which characteristics are measured. For example, each channel can be designated for a respective, different signature type, e.g., foreground (ink, e.g., channel 6), background (substrate, e.g., channel 7) and transition (edge, e.g., channel 5) individually. The feature types can be differentiated by the type of area in the mark they cover.

[0050] The following description explains an example of a process for encoding an overcomplete fingerprint of a symbology. FIG. 2 is a flow diagram of an example of a process 200 for the overcomplete fingerprint system. The processor receives, as input, a captured image 202 and configuration settings 204 for the system, e.g., camera settings. In some implementations, a product configuration is used to adjusts the system's configuration parameters to maximize performance. The configuration includes, for example, determining a product identifier (ID), product type, product serialization status, and fingerprinting and authentication parameters. The fingerprinting and authentication parameters can include image quality control thresholds, feature extraction methods, signature encoding techniques, and classification thresholds.

[0051] The system pre-processes the image including performing code detection 206 and decoding 208 the code in the image. In some implementations, the processor performs a code layout estimation to identify the geometry and the matrix pattern of a code after locating the code in an image. The processor can then identify feature placement and performing feature extraction. The processor then decodes the located code to obtain the data, performs an image quality test using the code region of interest (ROI). A ROI is a designated area of the image that is specifically chosen for analysis or processing. In some cases, ROI (e.g., a bounding box within the image) can be used to specify the area for image quality analysis. In some cases, the ROI specifies the area where the code is located on the product.

[0052] FIG. 3 depicts an example of code detection within an example image. As depicted, FIG. 3 includes an identified barcode 300 in a captured image 302 where boundaries of each bar, e.g., bar 304, of the barcode are demarcated, e.g., left and right boundaries of each bar.

[0053] Referring again to FIG. 2, the system performs 210 an image quality test. An image quality test is performed on a captured fingerprint image inside the bounding box that encapsulates the detected code / mark (or more generally, within the ROI) to evaluate its quality and suitability for further processing. In some implementations, the image quality test involves assessing whether image quality analysis values are within a specified range to ensure that the image meets required quality standards for fingerprinting. For example, image quality analysis includes a process of assessing and outputting quantitative measures representing the quality of an image, e.g., in terms of factors such as brightness, focus, and code module size. In some implementations, the image quality analysis includes generating, by the processor, a glare map that indicates the areas in an image where glare is present. Signature features that are extracted from areas identified in the glare map can be assigned lower weight during a fusion process, where signatures from multiple images are combined. This can reduce the effects of glare on the generated fingerprint. The glare map can be used by the processor in the weighted averaging step of a feature space fusion process, as described in further detail below.

[0054] After the processor locates a code in the image data, the processor performs one or more image quality evaluation steps on the detected mark. For example, the image quality evaluation steps can include validating image focus, brightness, and code resolution within the bounding box, e.g., bounding box indicated in FIG. 3, which encapsulates the detected code / mark (or more generally within the ROI). FIG. 4 is a flow diagram of an example of a process 400 for the overcomplete fingerprint system, e.g., for performing image quality evaluation. The processor obtains 402 an input image, ROI with code, and quality configuration settings for the captured image as input. The processor obtains 404 a robust maximum image brightness from the image and computes 406 a robust single image focus circle of confusion (CoC) estimate. The processor determines 408 if the brightness value is within range, determines 410 if the focus value is within range, and determines 412 if the module size is within range. At each of these three determining operation checks, if the processor determines that the input image fails, the processor can return an error. For example, the processor can provide a request for a replacement image or provide instructions causing an imaging system to capture a replacement image. The processor can provide instructions including an adjustment to the image capture to resolve the particular image quality issue, e.g., that the image was out of focus. In instances where each of these three determining operation checks is met, then the processor confirms 414 the image quality of the input image.

[0055] In some implementations, the processor performs image rectification on one or more images captured of the mark. Image rectification includes, for example, a process of correcting or adjusting an image to remove geometric distortions caused by tilt or other pose deviations or otherwise improve its quality for better feature extraction alignment during fingerprinting.

[0056] After locating the code in the image, the processor extracts a geometry and a matrix pattern from the mark. The geometric location of the layout matrix can be used for placing signature feature regions for fingerprint extraction, e.g., as described below with reference to FIGS. 6A-6C.

[0057] In some implementations, the processor estimates focus from a single image and divides the image’s ROI (e.g., the bounding box) into sections of a grid, e.g., a grid of 4x4 sub-regions, to detect non-uniform deviation caused by tilt, or curved surfaces, e.g., as depicted in FIG. 5, which shows a 4x4 grid placement for an example mark captured in an image 500 used for image quality evaluation, e.g., grid 502 on mark 504, which divides the mark into sub-regions, e.g., subregion 506. In some instances, the image quality evaluation includes estimating, by the processor, blur from the image area where the mark is detected. Performing the blur estimation can include dividing the image area, e.g., bounding box, encompassing the mark into multiple sub-regions, e.g., a 4x4 cell. The processor computes, for each sub-region, a horizontal and a vertical CoC estimate if threshold gradient information in the corresponding direction is available.

[0058] The processor can determine the focus estimate from image edge strength versus the slope height in each sub-region of the grid, and can convert the focus estimate to the corresponding diameter of the CoC measured in pixels. In order to detect motion blur, the processor can estimate the CoC for the x and y directions separately. At times, e.g., because the barcode in the example of FIG. 5 is expected to be made of dominantly horizontal and vertical components, the processor uses only the horizontal and vertical components. In image areas that lack gradient information in one direction, the corresponding CoC estimate can be omitted. This can be seen in FIG. 5, where in image areas at the center, that lack vertical gradient information, the "y" component is not shown. For the focus test, the processor validates that at least a certain percentage of cells have CoC estimates within a specified range. Otherwise the processor returns an error.

[0059] Referring again to FIG. 2, the processor performs grid fine alignment 212 and feature extraction area placement 214. For example, as depicted in FIGS. 6A, 6B, and 6C, the processor locates the placement of features on mark 601 relative to the barcode of the mark, e.g., bar 603 of the mark 601. For example, the processor locates edge features, e.g., edge features 605, as depicted by the outlined rectangles in FIG. 6A. The processor locates ink features, e.g., ink features 607, as depicted by the outlined rectangles in FIG. 6B. The processor locates background features, e.g., background features 609, as depicted by the outlined rectangles in FIG. 6C.

[0060] Referring to FIG. 2, the processor performs feature extraction 216. Feature extraction includes a process of identifying and measuring the properties of an image of a mark by the processor to generate a set of numerical data in a vector (i.e., vector embedding) that can be used to represent the characteristics of the mark. For example, as depicted in FIG. 6D, a portion 600 of a barcode has an interior area 602 (typically printed in black) and an edge 604. FIG. 6D also depicts a first reference axis 606 and extending out beyond the edge 604 to a second reference axis 608. There are many possible values for the distance between the first reference axis 606 and the second reference axis 608. For example, the distance can be the distance to the next printed area (the white space gap) or one-half the width of the printed area in which the processor, i.e., computing device, is taking measurements currently operating (the interior area 602). The distance can be a larger or smaller fraction of the width of the interior area 602. In some embodiments, both the first reference axis 606 and the second reference axis 608 are within the interior area 602. In some embodiments, both axes are outside of the interior area 602 (e.g., only in the white space). The processor in such embodiments measures the grayscale value (e.g., on a scale from 0 to 255) of each of the pixels along a first line 610, along a second line 612, along a third line 614, and along a fourth line 616. Each of the first line 610, second line 612, third line 614, and fourth line 616 starts at the first axis 606, extends out towards and beyond the edge 604, and terminates at the second axis 608.

[0061] In FIG. 6D, the lines 610, 612, 614, and 616 are depicted as being perpendicular to the first reference axis 606 and second reference axis 608 but need not be. Although depicted in FIG. 6D as being spaced apart from one another, the lines 610, 612, 614, and 616 may have no space in between one another. Furthermore, although four lines are depicted, there may be fewer (even as few as one) or more. Additionally, the lines 610, 612, 614, and 616 may be straight, but need not be. For example, if the barcode (of which the portion 600 is part) is on a curved surface, then the lines 610, 612, 614, and 616 might be straight in the x-y plane but be curved with respect to the z-axis (i.e. , bulging outwardly from the page).

[0062] Although the edge 604 is depicted as generally linear with regard to the y direction, it need not be. For example, the edge could be an offset curve (e.g., resemble a wavy line). Furthermore, while the first reference axis 606 and second reference axis 608 are depicted as being generally parallel to the edge 606, they need not be.

[0063] In some embodiments, if the feature is an edge, for a given edge of a mark, the processor develops profile for the edge. The edge profile, in some embodiments, includes a data series of the projected average pixel values calculated for a portion of the mark that includes the edge. The processor calculates a projected average pixel value of the pixels along each of the first line 610, second line 612, third line 614, and fourth line 616. The processor may carry out this projected average pixel value operation on multiple edges of the mark and do so on the entire length of an edge or less than the entire length of an edge. For example, on a 2D barcode 1300, e.g., as depicted in FIG. 13 A, the processor may carry out the operation on any combination of top edges of one or more cells, bottom edges of one or more cells, left edges of one or more cells, and right edges of one or more cells. In another example, on a ID barcode, such as that shown in FIG. 3, the processor may carry out the projected average pixel value operation on each of the bars of the portions of the bars of the barcode. The processor may carry out this operation on the leading and trailing edges of each of the bars.

[0064] Turning to FIG. 6E, the pixels of the first line 620 are represented by four individual pixels. Naturally, there may be many more pixels, but only four are shown for ease of description. Pixels 1 and 2 each have a value of 255, Pixel 3 has a value of 84, and Pixels 4 and 5 each have a value of 0. The average of those values (the projected average pixel value) is 106.

[0065] Taking an average along the projection lines allows the processor to account for artifacts that are within the interior area 602 of the barcode portion 600 in addition to the artifacts along the edge 604. These extraneous marks and voids affect the individual values of pixels, so that Pixel 2 has a value of 220, Pixel 3 has a value of 100, Pixels 4 has a value of 25, and Pixel 5 has a value of 53.

[0066] Further details related to the feature extracting process can be found in U.S. Patent No. 10,235,597, fded on June 13, 2016, and entitled “Methods and a computing device for determining whether a mark is genuine,” the entirety of which is incorporated by reference in its entirety.

[0067] FIG. 7 depicts a flow diagram of an example of a process 700 of feature extraction. The system identifies 702 a feature at a location of the mark and at least one characteristic of the feature, e.g., an edge feature, a background feature, an ink feature, etc. The system removes 704, from the identified feature, an average (i.e., mean or optionally median) background signal using a Gaussian kernel to remove background noise and generate an extracted feature. The system stores 706 the extracted feature in a corresponding channel.

[0068] Measured characteristics from the extracted features can include, for example, feature shape, feature aspect ratios, feature locations, feature size, feature contrast, edge linearity, region discontinuities, extraneous marks, printing defects, color, pigmentation, and contrast variations. Measured characteristics can include information from the foreground, background, and edge captured in separate channels. For example, a processor can designate a respective channel for each of the foreground, background, and edge captured characteristics. In some instances, parallel or concurrent processing can be used to process each of the channels in parallel. As used in this description, the term "channel" refers to distinct data streams captured and processed independently to represent different aspects or components of the printed mark. Each channel corresponds to a different data source or type of data extracted from the printed mark. Each channel can be processed. For example, a foreground channel can include data for measured characteristics located inside marked areas, e.g., ink, a background channel can include data for measured characteristics located in non-marked areas, e.g., substrate or background, and an edge channel can include data for measured characteristics located in boundary areas that span marked and non-marked regions, e.g., edges of a barcode. In some implementations, a multi-channel approach allows the system to optimize the processing and weighting of the different signal components independently, rather than treating them as a single, mixed fingerprint. This can improve the discriminative power and robustness of the overall fingerprint representation. Importantly, the channels are maintained as separate data streams all the way through to the final fingerprint string format. The fingerprint is not a single vector, but rather a high-dimensionality composite of the independently processed foreground, background, and edge channel data.

[0069] In some implementations, an “overcomplete” (i.e., universal, comprehensive, or extensive) fingerprint is captured for the mark in the image that includes a diversity of features using multiple channels, e.g., three channels, and the independent components they carry. Although described here as a system using primarily three channels, e.g., foreground, background, and edge channels, the system can accommodate more or fewer channels depending on an amount of information needed to provide robust discrimination across multiple different printed mark types and substrates. For example, additional channels can be implemented, e.g., 4, 5, 6, or more independent channels, for additional sources of discriminative information. In another example, fewer channels, e.g., 1 or 2 channels, can be implemented where less information is needed for discrimination.

[0070] The overcomplete signature is generated from measured characteristics of the image of the mark and represented as a vector including, for example, at least 1000 dimensions, at least 2000 dimensions, at least 4000 dimensions (e.g., between 1000 and 8000 dimensions) and including, for example, at least 50 mark features, at least 500 mark features, at least one thousand mark features (e.g., 1000 mark features, 2000 mark features, or more) in a vector space. At times, determining which of the mark features to capture in the overcomplete signature includes capturing images of two or more different types of authentic marks produced by one or more different marking systems and determining overlapping sets of features and measurable characteristics usable for authenticating the different types of marks produced by the different marking systems.

[0071] In some implementations, signature information from two different fingerprints is in correspondence, such that the feature areas used to extract the features and the sequential ordering of the feature information into vectors match. In such cases, the system can rely on correspondence of overlapping sets of features and measurable characteristics usable for authenticating the marks. In some instances, the system can implement bit pattern corrections to avoid the correspondence issues.

[0072] In some implementations, the features in the vector include distributed components, where the vector is comprised of components that are distributed across the entire vector and spanning multiple measured characteristics (in contrast to a single feature which is only a single measurement). In other words, the components can represent information from different sources of origin, and represent different types of information, which are relevant for mark authentication, search, or system authentication (determining a print system type or instance that it came from).

[0073] In some implementations, the technology described in this disclosure can be leveraged to identify the specific printer system used to produce a set of printed samples. A printer system identification capability can be valuable in various applications, for example, supply chain monitoring, counterfeit detection, and forensic analysis. Detecting and leveraging printer-specific patterns or signatures within the fingerprints can enable printer system identification. For example, printer-specific characteristics may manifest as repeating structures, correlated features, or other higher-order relationships that are unique to the printing process of a particular printer system.

[0074] Conventional fingerprinting approaches that rely solely on isolated local features may struggle to reliably detect and distinguish these printer-specific signatures. However, the distributed component representation of the fingerprint vector provides an enhanced capability for capturing such printer-specific structural information. Through the transformation process, the fingerprint vector is transformed to encode distributed components that represent correlated patterns spanning multiple original feature measurement regions. These distributed components can effectively encode repeating motifs, sibling patterns, and other printer-specific characteristics that would be difficult to isolate using individual local features.

[0075] Furthermore, the distributed component representation is more robust to spatial distortions that can occur in printed samples, such as warping or skewing. Since the information is spread across multiple vector dimensions, the fingerprint matching is less reliant on precise alignment of individual local features. To leverage this printer system identification capability, the system first generates reference fingerprints from a set of printed samples known to originate from specific printer systems. These reference fingerprints, with their distributed component representations, serve as a database of printer signatures.

[0076] When evaluating an unknown printed sample, the system computes the fingerprint and compares it against the reference printer fingerprints. The distributed component representation provides a more discriminative signature for this matching process, allowing the system to accurately associate the unknown sample with the originating printer system.

[0077] This printer system identification can be particularly valuable in scenarios where counterfeit goods or diverted supply chain items need to be traced back to their source. By analyzing the distributed component fingerprint, the system can determine the specific printer used, potentially providing crucial forensic evidence.

[0078] FIG. 8 depicts an example 800 of the stacked-up feature vectors for each bar of the bar code for a channel. As depicted, a top pixel of each bar of the barcode, e.g., illustrated as row of pixels 802 in FIG. 8, can be color-coded to visualize a quality metric for each bar. A color of the respective bar can indicate, for example, whether a bar was impacted by glare or another image quality factor. For example, a color of the top pixel can be rendered as blue to indicate high quality and rendered as red to indicate low quality. A color of the pixel also designates the top of the bar of the barcode so that a user inspecting the stacked-up feature vectors can identify an orientation of the pixel image, e.g., where a top of the image is color- coded and the bottom of the image is not. The components of the different channels can have different properties with respect to the transfer behavior or feature repeatability, sibling-ness, and sensitivity to duplication by photocopy of the respective components. The universal fingerprint can include features that can be used to authenticate the mark, as well as additional features that are not usable for authenticating the mark, but which may be usable to authenticate a different type of mark. For example, an overcomplete fingerprint of a set of overcomplete fingerprints includes data for measured characteristics for a first set of features useable for mark authentication for marks generated from a first system of the two or more different systems and for a second, different set of features usable for mark authentication for marks generated from a second, different system of the two or more different systems. In another example, each overcomplete fingerprint of a set of overcomplete fingerprints includes data for measured characteristics usable for searching and to authenticate marks from another, different marking system, but are unusable to authenticate marks in a current marking system. The universal fingerprint can include features that are common amongst multiple different marks. Additionally, the universal fingerprint can include a first set of features that can be used to authenticate a first mark and a second, different set of features that can be used to authenticate a second, different mark.

[0079] In some implementations, the overcomplete fingerprint includes sibling information. Sibling information includes data about similar or related fingerprints where multiple reference fingerprints of genuine items, e.g., genuine marks on products, share fixed patterns. Sibling information can be useful for search and authentication purposes. For example, a sibling item is a mark that shares signature information with genuine item such that the shared information indicates the sibling item was printed on the same machine which produces shared fixed patterns between items, e.g., between printed marks. In some implementations, the system generates scores from both the highest and the second-highest reference fingerprints in a set of reference fingerprints. Sibling scores can be used to estimate the authenticity of a mark by using the highest score and the second highest score from the sorted list of matched reference fingerprints as an input into the classifier. In some instances, the second highest score corresponding to a reference fingerprint can be used during parameter optimization with the triplet loss function. This approach can enhance the authentication process by considering the similarities and differences between genuine marks from the same product or item.

[0080] The universal fingerprint is converted into a compact fingerprint, e.g., by encoding the fingerprint, prior to transmitting to a server-based database for storage, e.g., to reduce the amount of data being transmitted to the server-based database. In some instances, the system can generate a compact fingerprint through a set of sub transforms including, for example, standardization, non-linear transformation, quantization, encoding to text format, variance encoding, composition into a fingerprint string, and syntax verification. The set of sub transforms are selected in part to optimize a reduction of the memory storage requirement for storing each compact fingerprint while minimizing a loss of information from the universal fingerprint.

[0081] Referring back to FIG. 2, the processor converts 218 the features of the universal fingerprint to a compact fingerprint while minimizing loss of information, for example, including the steps of (i) standardizing and / or discretizing the data, (ii) applying a linear or non-linear transform (e.g., a log-transform) to the data, and (iii) quantizing the data using a linear quantizer.

[0082] In some implementations, standardizing the fingerprint includes a process of bringing data into a uniform format that allows researchers to compare and contrast data from different sources. For example, the processor transforms a vector to have zero mean and a standard deviation of one. The variance can be encoded such that the system can reconstruct the original magnitudes of the values of the fingerprint during the decoding process.

[0083] In some implementations, a non-linear (log) transform is applied to the data to extend the dynamic range of the signature encoding while optimizing a preservation of the original data without increasing the bit depth, thereby reducing a memory storage requirement to preserve the information of the original data while minimizing information loss. A logtransform is a mathematical transformation that replaces each variable x with a log(x) and can be used, for example, to extend the dynamic range of the signature encoding, i.e., to reduce the values of the larger numbers. At times, a linear transform is applied to the data, where a bit depth is increased in the encoding for each dimension which is undesirable. As is described in further detail below, the decoding process can include applying a reverse logarithmic function.

[0084] In some implementations, applying a linear quantizer or a non-linear quantizer includes a process that converts a continuous range of values into a finite number of discrete intervals or bins. For example, the quantization during the encoding process converts floating point values with 32-bit to 6-bit, e.g., from 4 bytes to less than one byte. For example, quantizing the fingerprint includes reducing a numerical float number to a discretized value with only 64 quantization steps. The system can reduce the bit depth of each numerical value in the signature vector, thereby reducing a memory storage requirement to store the information of the original data while minimizing information loss. The quantized fingerprint can be encoded to text format, e.g., each of the 64 discretized values are encoded to a character in the ASCII table such that each character represents a respective discretized value from the original signature vector. For example, as used herein, the process in the context of fingerprinting is used to convert a four byte value, e.g., a floating point value, into a six bit encoding to reduce memory use when encoding the signature. The processor composes 220 the fingerprint. For example, the characters which result from the encoding process are combined to a sequence of characters forming a string that can be added to the fingerprint. A type of encoding scheme used to compose the fingerprint can be selected based in part on an application of the fingerprint generation process, e.g., if the data is substantially noisy, and / or based in part on a data transmission considerations, e.g., text-based encoding requires low data transmission. For example, the processor encodes the fingerprint using a signature hash ID (HID) encoding scheme. A HID encoding scheme include a method for encoding data in the fingerprinting process. The encoding scheme is used to convert the features extracted from the product's mark or code into a compact fingerprint It should be noted that the term “hash” in the name “hash ID” is a misnomer because the signatures as implemented in this disclosure preserve spatial dependencies unlike actual hashes which are designed to exactly not preserve spatial dependencies.

[0085] The text-based fingerprint string encoded using the HID encoding scheme can be readily stored, transmitted, and processed within the system, without the need for specialized binary or numeric data handling. The use of a text-based format also makes the fingerprint data more human-readable and simplifies the debugging process, which can be valuable during development and troubleshooting. Additionally, the HID encoding scheme is well- suited for handling the noise and variability present in the fingerprint data. The compression from the original 32-bit floating-point values down to the 6-bit HID characters helps to reduce the impact of outliers and anomalies in the feature measurements. This makes the fingerprint representation more robust and less sensitive to minor variations in the input data.

[0086] Furthermore, the HID encoding scheme aligns well with the system's overall approach of maintaining an overcomplete fingerprint representation, i.e., minimizing the information loss when converting the universal fingerprint to the compact fingerprint. Even with the compression from 32-bit to 6-bit, the HID encoding can still preserve a significant amount of the original feature information within the textual fingerprint string. This helps to ensure that the system does not discard potentially valuable data during the encoding process.

[0087] In some implementations, other encoding schemes are utilized, depending on the specific requirements and constraints of the application. Another example of an encoding scheme includes direct numerical encoding, where fingerprint features are stored as raw numerical values, without any encoding or compression. This can provide higher fidelity but may require more storage space and specialized data handling. Another example of an encoding scheme includes binary encoding, where fingerprint data are represented in a compact binary format, potentially with additional error-correcting codes or other protective measures. This can optimize storage and transmission but may introduce additional complexity. Another example of an encoding scheme includes alternative character-based encodings, e.g., other character-based encoding schemes, such as base-64 or custom character sets, to balance compression, readability, and robustness. Ultimately, the selection of the fingerprint encoding scheme can involve trade-offs between factors such as data fidelity, storage efficiency, processing complexity, and human readability, and the system can be flexible to adjust to different encoding scheme depending on any number of these factors.

[0088] Composing the fingerprint includes (i) encoding the quantized data to text format, (ii) performing a variance encoding, and (iii) composing the fingerprint string. The processor can then verify 222 the syntax of the fingerprint to identify any encoding issues. The system can perform a fingerprint syntax test on a fingerprint string to ensure its correctness and validity. The process includes, for example checking the length of the fingerprint string, verifying the presence of required blocks and headers, and ensuring that the fingerprint follows the specified syntax and format. In some instances, the processor assigns a fingerprint version number to the fingerprint to indicate the format or version of the fingerprint. Assigning a version number can help ensure compatibility between different versions of fingerprint processing software and allows for future enhancements and updates to the fingerprint format.

[0089] The processor can then transmit the compact and encoded fingerprint 224 to the database 226 for storage, e.g., in a cloud-based database. In this way, the transmitted data volume is lower than the volume of captured data to generate the universal fingerprint.

[0090] In some implementations, the processor performs the variance encoding to preserve the scale of the data that otherwise may be lost due of vector standardization. Variance encoding takes into account the variance or spread of the data, quantifying the variability or dispersion of a set of values, such as the characteristics of a mark. In this context, it can be used in the process of composing the fingerprint string. Variance values are encoded into the generated fingerprints such that the system can reconstruct original magnitudes of the signals at a later point in the time, e.g., during an authentication process.

[0091] The processor can store reference fingerprints for many different genuine marks collected from many different systems to generate a large repository of fingerprints all collected using the universal fingerprint extraction methods describe herein. As such, the processor can access stored overcomplete fingerprints in the database to identify, from the features included in the high-dimensional feature vectors of the overcomplete fingerprints, a subset of the original information of the overcomplete fingerprint that is retained as a subset of features, i.e., a lower-dimensional manifold or subspace, that are useful for authenticating a particular mark. For example, a type of mark or a mark produced on a type of system, the system can determine a projection or transformation that retains the essential information, e.g., a subset of the original information stored in the overcomplete fingerprint, for the specific task of authentication. In some instances, the subset of features includes fewer than all collected features for the mark. The transformations and processing applied to the overcomplete signature, i.e., the high-dimensional feature vector, are aimed at preserving the information that is most useful for authentication purposes, while filtering out or reducing the impact of noise or irrelevant components, and without necessarily reducing the dimensionality by removing certain dimensions. As such, the reduced dataset vector space used for authentication is representative of a projection or transformation of the original overcomplete signature that retains the essential information for the specific task of authentication.

[0092] FIG. 9 is a flow diagram of an example of a process 900 for the overcomplete fingerprint system, e.g., a process for verifying the authenticity of a candidate mark. The verification process involves analyzing the similarities and differences between the signature generated for the candidate mark and one or more genuine signatures and computing a similarity score. The processor compares the fingerprint of the candidate mark with the fingerprint of the genuine mark to determine whether the candidate mark is genuine. For example, the processor compares each respective channel of the two or more channels of the fingerprint of the genuine mark to that of the corresponding channel of the fingerprint of the candidate mark. The similarity score can be used to make an authentication decision, or during search to solve the nearest neighbor problem when searching for the reference mark. To verify the authenticity of a candidate mark, the processor receives 902 a captured image of the candidate mark and a request to determine whether the candidate mark is genuine. The processor can additionally receive 904 the configuration of the imaging system used to capture the candidate mark. The processor can generate a universal fingerprint for the candidate mark following a same process for generating an overcomplete fingerprint as described with respect to the genuine mark above in FIGS. 1 to 8, the processor reads and processes 906 the candidate fingerprint to a vector.

[0093] The resulting candidate overcomplete signature is represented, by the processor, as a vector including, for example, at least 1000 dimensions, at least 2000 dimensions, at least 4000 dimensions (e.g., between 1000 and 8000 dimensions) and including, for example, at least 50 mark features, at least 500 mark features, at least one thousand mark features (e.g., 1000 mark features, 2000 mark features, or more) in the vector space.

[0094] In some implementations, the processor can use parameter optimization to determine an optimized number, e.g., a minimum threshold number, of dimensions and of mark features represented in vector space to achieve a threshold discriminative power. For example, the processor defines a data set with reference fingerprints and candidate fingerprints. The candidate fingerprints are labeled as a “genuine” type or a “suspect” type, where genuine represents candidate fingerprints that were captured from a same item from which there is also a reference fingerprint, and suspect represents a candidate fingerprint for which there is no reference fingerprint.

[0095] A cost function is defined to minimize, where the processor optimizes for a largest gap between the lowest genuine and highest suspect matching scores. A genuine matching score is a matching score between a “genuine” candidate fingerprint and the highest-scoring reference fingerprint. All matches between the same "genuine" candidate and all other reference fingerprints (not captured from the same item) are suspect matching scores. All matching scores between suspect fingerprints and reference fingerprints are also suspect matching scores. The processor minimizes the largest distance between all reference fingerprints and their corresponding "genuine" (positive) candidate fingerprints while maximizing the distance between all (negative) suspect-reference fingerprint pairs. A related cost function is the triplet loss at the set level. The optimization space can be defined by a set of parameters that customize the fingerprint transformation function and the channel mixing parameters. In total, this can yield 20 degrees of freedom for the optimization space. The values of each parameter can be limited to a predefined range or set of possible values, e.g., to avoid invalid configurations. For example, for each signature channel, the processor uses 6 configuration parameters (i.e., 6 degrees of freedom), as described by Listing 1 :

[0096] Listing 1

[0097] The sum of mix5, mix6, and mix7 is one, which leaves two degrees of freedom for the mixing parameters. With three channels and mixing, the processor generates 3x6 + 2 = 20 degrees of freedom.

[0098] In some implementations, the search space for optimization of the cost function is a non-convex space, i.e., there are local maxima in the search space of the cost function. In order to compensate for the non-convex space, the processor can implement an exhaustive search to avoid local minima. In some instances, for example, when the search space is too large for an exhaustive search, a greedy algorithm is implemented where an exhaustive search is applied to sub-spaces in multiple rounds until the entire space is covered. The processor can first optimize the transformation parameter for each channel individually and then can optimize the channel mixing parameter with an exhaustive grid search.

[0099] The candidate fingerprint can be quantized in a non-linear or linear manner. The processor reads and processes 908 a K-nearest neighbor (KNN) database of stored fingerprints corresponding to genuine marks to generate vector arrays. The processor searches the database of reference fingerprints to obtain a set of reference fingerprints that are a threshold match the candidate fingerprint. For example, the processor can use an HID2 or coarse search of the database of reference fingerprints to search for K-nearest neighbors of the candidate fingerprint.

[0100] In some implementations, the processor uses an FHD2 search, where the processor searches for n-nearest neighbors of a candidate fingerprint, e.g., each identified by its HID2, or second-level hierarchical identifier, in a database of reference fingerprints. The output of the HID2 search is a list of n-nearest neighbors related to the candidate fingerprint. The list of K-nearest neighbors is used as the set of reference fingerprints to which the candidate fingerprint is compared.

[0101] The processor performs a transform on the candidate fingerprint and the set of KNN fingerprints to produce reduced dataset vector space fingerprints. FIG. 12 depicts a flow diagram of an example process 1200 for performing the transform on the candidate fingerprint and the set of KNN fingerprints.

[0102] The system determines 1202 a transform for the genuine fingerprint generated for an authentic mark, where the transform is determined after the genuine fingerprint is generated for the authentic mark and stored in a database, the genuine fingerprint having been generated from measured characteristics of an image of the authentic mark, the first electronic signature represented as a vector comprising at least 1000 dimensions and including at least 50 mark features in a vector space using data values that have been quantized in a non-linear manner, the transform converts at least a proper subset of data in the genuine mark into a reduced dataset vector space, e.g., a noise-reduced dataset vector space, and data in the reduced dataset vector space for the genuine fingerprint is indicative of a proper subset of the measured characteristics that are usable for mark authentication

[0103] The system obtains 1204 a candidate fingerprint for a candidate mark, the candidate fingerprint generated from measured characteristics of an image of the candidate mark. The system retrieves 1206, from the database, a set of KNN fingerprints including the genuine fingerprints that are similar to the candidate fingerprint.

[0104] The system applies 1208 the transform to the candidate fingerprint and to one or more fingerprints in the set of KNN fingerprints to produce reduced dataset vector space signatures. The transform is applied to the candidate fingerprint and the set of KNN fingerprints after the candidate fingerprint and the KNN fingerprints have been generated using the universal fingerprint extraction methods described herein. In other words, the transform need not be determined at the time of generation of the fingerprint, and instead is determined at the time of authentication of the candidate mark. As such, the transform can be determined after the candidate fingerprint and the KNN fingerprints have been generated, where the parameters of the transform may not be known or well-understood at the time of the generation of the candidate fingerprint and the KNN fingerprints. Determining a transform to convert the candidate fingerprint and the set of KNN fingerprints to a reduced dataset vector space fingerprint includes identifying an aggregate of features being usable to authenticate an authentic mark from other (photocopied or counterfeit) marks. For example, principal component analysis (PCA) or discriminative component analysis (DCA) can be used to determine a transform. Applying the transform to produce reduced dataset vector space fingerprints includes converting at least the proper subset of data including the aggregate of features usable to authenticate the mark into the reduced dataset vector space.

[0105] The transform converts at least a proper subset of data in the first fingerprint into a reduced dataset vector space, and data in the reduced dataset vector space for the first fingerprint is indicative of a proper subset of the measured characteristics that are usable for mark authentication. The transform maintains the same vector space while reducing an intrinsic dimensionality by projecting the data onto a lower dimensional manifold (i.e., reduced dataset). In other words, the features of the overcomplete fingerprint are maintained, where the entire vector is transformed into a second vector of a same length but representing an aggregation of features (i.e., a large volume of ‘weak’ features) which can be used to authenticate the mark.

[0106] The system utilizes 1210 the reduced dataset vector space signatures to confirm the candidate mark is genuine. Overcomplete fingerprints include data for measured characteristics in two or more channels, such that determining a transform for the overcomplete fingerprints to produce reduced dataset vector space fingerprints includes determining data from different ones of the two or more channels to specify the conversion to the reduced dataset vector space for the transform.

[0107] In some implementations, the transform includes a sequence of two or more subtransforms, e.g., post processing and / or filtering steps, which are performed after the capture of the candidate mark and during the generation of the reduced dataset vector space fingerprint for the candidate mark. In other words, the post processing and / or filtering steps to generate a reduced dataset vector space fingerprint including the aggregate of features usable for authentication are not performed during the capture and storing of the initial genuine marks, and instead are performed at the point where the processor receives a request to authenticate a candidate mark. Determining a transform process to use to convert the overcomplete fingerprints the reduced dataset vector space fingerprint includes comparing data from the candidate fingerprint to fingerprints that are similar to the candidate.

[0108] The sequence of sub-transforms can include at least one of masking, filtering, signal trimming, outlier removal, cluster filtering, low pass filtering, and high pass filtering. The sequence of sub-transforms selected to produce the reduced dataset vector space fingerprint can depend in part on the type of mark, for example, the sequence of sub-transforms can be different between ID code-type marks and 2D code-type marks. The sequence of subtransforms represents a generalized and optimized processing pipeline that has been developed to handle a wide variety of printed mark types and use cases. The individual steps within the data reduction transform can be selected and refined based on extensive analysis and testing across multiple target use cases and printed mark types. This includes ID barcodes, 2D matrix codes, and other types of printed marks on various substrates. The system can use this evaluation to select a sequence of core signal processing operations that effectively isolate the most discriminative features of the printed mark, while also being robust to noise, distortions, and other variability.

[0109] Importantly, while the overall sequence can remain consistent, the specific parameter settings for each step can be customized and optimized for the characteristics of the target application or printed mark type. This flexibility allows the system to adapt to the unique requirements of different use cases, without having to fundamentally change the underlying processing architecture. For example, the filter cutoff frequencies in the low-pass / high-pass filtering step can be adjusted based on the expected frequency content of the target printed mark. The sensitivity of the outlier trimming can be tuned according to the noise levels in the input data. And the masking can be configured to exclude specific regions that are known to be problematic for a given application.

[0110] FIG. 10 is a flow diagram of an example process 1000 of the overcomplete fingerprint system, e.g., a process for applying a transform to an overcomplete fingerprint to produce a reduced dataset vector space fingerprint. As depicted in FIG. 10, the transform applied to the compact vector includes decoding the encoded vectors with the processes of obtaining 1002 a fingerprint string, reading 1004 data from string to vector, reading 1006 mask data, and applying 1008 a reverse log(x) transformation (if previously applied to the compact vector). The transform performed by the processor further includes trimming 1010 outlier values, normalizing 1012 blocks, applying 1014 a cluster filter (as described with reference to FIG. 11), applying 1016 a low-pass (LP) filter and a high-pass (HP) filter, and applying 1018 a mask. For example, the transform performed by the processor uses Gaussian filter kernels.

[0111] The transformation as applied to the vector produces 1020 the reduced dataset vector space signature (RVSS). The processor can apply the transformation or filtering to the candidate fingerprint from scanning by the cell phone and to the top N or KNN (k-nearest neighbor) reference fingerprints from the database.

[0112] FIG. 11 is a flow diagram of an example process 1100 of applying a cluster filter to remove common patterns between blocks of a single fingerprint as part of the transformation sequence (e.g., as described with reference to FIG. 10.) of the overcomplete fingerprint system. The processor obtains 1102 a vector space representation of an overcomplete fingerprint, and a block size for the vector. The processor performs 1104 K-mean clustering and subtracts 1106 a centroid from each cluster member determined from the K-mean clustering. The processor generates 1108, from the cluster filtered vector, a modified signature vector for the candidate mark.

[0113] The post processing or filtering is executed by the processer before performing a matching process between the vector of the candidate mark and each of the vectors corresponding to stored genuine marks from the database. The transformation includes performing, by the processor, a filtering operation, removing information not useful for the matching. The classifier parameter configuration includes the parameters for the transformation or filtering operation. The classifier configuration also includes the parameters, e.g., for selecting classifier types and thresholds, for the classifier itself.

[0114] In some implementations, the processor applies post processing steps, e.g., as described with reference to FIGS. 10 and 11, for each channel independently, e.g., channel 5, channel 6, and channel 7, to derive the filtered vectors that are then used for matching candidates with references.

[0115] Referring back to FIG. 9, the processor computes 910 matching scores for each channel, e.g., performs a signature ranking and weighting of the metrics for each channel. The processor ranks the metrics associated with each characteristic by magnitude, and only those metrics that reach a predetermined threshold are used as part of the signature, e.g., used to match the candidate signature to the KNN genuine signatures from the database. The processor may rank the metrics for each channel of the two or more (e.g., 3 channels) separately and then aggregate the ranked metrics. The processor also weights the measured characteristics based on factors like image resolution, the idiosyncrasies of the mark-applying device, or error-correcting information included in the mark, e.g., image rectification. In some instances, the processor applies the matching to each channel individually before fusing the matching scores.

[0116] In some implementations, the processor performs 912 feature space fusion to reduce noise and variations from the image formation and increase the genuine matching scores. Feature space fusion includes aggregating multiple captured images from the same mark during an authentication process. For example, feature space fusion can include a process of aggregating extracted features, e.g., a weighted linear combination, from multiple captured cell phone images from the same mark during authentication to reduce noise and variations from the image formation, thereby increasing the genuine matching scores. This can involve combining the features of multiple fingerprints in feature space using weighted averaging of the measurements based on their respective standard deviations or other fusion methods.

[0117] Referring back to FIG. 9, the processor computes 914 a matching score for each channel of the candidate mark to each respective channel of the KNN genuine marks from the database. For example, the processor computes an aggregated score from all the component products, e.g., vector dot products, cosine similarity, or another similarity measures compatible with high-dimensional space vectors. Each channel, e.g., channel 5, channel 6, and channel 7, includes a respective set of processing parameters, and the processor can use mixing parameters that fuses, e.g., combines, the scores from each channel into a single score that is used by the classifier for authentication. For example, fusing the data can include generating, by the processor, a single score from the data in each respective channel. In another example, fusing the data includes mixing, by the processor, the scores using a mixing function. The fused score is then provided to the threshold-based classifier.

[0118] In some implementations, a classifier includes a set of configuration parameters that define a transformation that converts an overcomplete fingerprint vector into a post processed vector optimized for the purpose of matching, e.g., a reduced dimensionality vector. In some implementations, the optimization process includes identifying optimal classifier configuration parameters that maximize a given cost function, related to authentication. In some instances, the cost function is the maximum gap between genuine and non-genuine samples.

[0119] In some implementations, as described in further detail below, a fingerprint authentication step involves reading and converting the cell phone fingerprint, reading and isolating the database fingerprints, computing matching scores between the cell phone fingerprint and database fingerprints, performing score fusion, classifying the fingerprints using the universal (overcomplete) classifier and a threshold-based classifier (e.g., an HID3 classifier which uses a similarity score from HID3 data as input), and consolidating the classifier results and composing a JSON (JavaScript Object Notation) result string. The threshold-based classifier determines whether a matching score is above or below a threshold to authenticate a fingerprint.

[0120] In some implementations, the system uses a dual-classifier approach to maintain backwards compatibility with previous versions of fingerprints, especially when dealing with a database that contains a mix of older and newer fingerprint formats. An example classifier is provided in Listing 2:

[0121] Listing 2

[0122] For example, a primary classifier can be an overcomplete classifier (OC). When evaluating a candidate fingerprint, the system can initially process the candidate fingerprint through the OC classifier. During the OC classification, the system performs a score fusion operation, as described in further detail below. The score fusion combines the individual matching scores from the different feature channels, e.g., such as the edge, ink, and background channels, into a single overall OC similarity score. In instances where the fused OC similarity score is above a defined threshold, the system can determine that the two fingerprints are likely from the same physical item and establish a match. An example of score fusion between the results of the OC Classifier and the threshold-based (HID3) classifier is provided in Listing 3:

[0123]

[0124] Listing 3

[0125] In some implementations, the database contains a mix of older fingerprints without the OC components and newer fingerprints with the OC components, the system can additionally employ the threshold-based classifier as a secondary check. The threshold-based classifier was the previous generation classifier used before the OC classifier was developed. In such cases, if the initial OC classifier does not result in a match above the threshold, the system can use the threshold-based classifier as a secondary process. For example, if the threshold-based classifier scores the candidate fingerprint as a match, the system can accept it as authentic, even if the OC score from the OC classifier was below a threshold match value.

[0126] In implementations in which the system uses a dual-classifier approach to perform score fusion, e.g., aggregating the score output from the two classifying processes, which allows for seamless handling of a database that contains a mixture of older and newer fingerprint formats. In other words, even in instances where the OC classifier is the primary method, the threshold-based classifier provides a backwards-compatible option to ensure that the system can still authenticate fingerprints from previous system versions. If the candidate mark is determined to be genuine, the processor transmits a message to the requestor indicating that the mark is determined to be genuine. If the candidate mark is not genuine, the processor may transmit a message indicating that the mark failed authentication. Note, this does not mean the item is not genuine, because in some cases the mark provider might not have captured all genuine items.

[0127] When evaluating a candidate fingerprint for authentication, the system has a process in place to handle situations where the fingerprint does not definitively match a known genuine item, but also cannot be conclusively deemed a counterfeit. In these cases, the system may mark the item as “suspect” rather than outright declaring it as either genuine or counterfeit. Suspect items are items where the candidate fingerprint does not match any of the reference fingerprints, but the system cannot conclusively determine if the item is counterfeit or if it is a genuine item that was simply not captured in the reference database.

[0128] A reason for this “suspect” designation is that there may be situations where the mark provider or user has not captured all of the genuine items in their database. Even though the candidate fingerprint does not match any of the reference fingerprints, it does not necessarily mean the item is a counterfeit. Instead, the system marks the item as “suspect” to indicate that further investigation or analysis may be required to determine its authenticity. This suspect designation provides a middle ground, acknowledging that the item could not be conclusively matched to a known genuine item, without jumping to conclusion that it is definitively a counterfeit.

[0129] In some implementations, a mark can be altered between a time where an initial image is captured of the genuine mark and a subsequent time (e.g., further along a processing line, in transit, etc.) when another image is captured (i.e., scanned) of the mark. An alternation can include, for example, damage to the mark, image capture effects (e.g., glare, lighting conditions, pose), or image formation issues (e.g., device dependent issues).

[0130] In such cases, it may be that the set of features usable to authenticate the mark is different than a previous set of features usable to authenticate the mark. For example, if a portion of the mark is obscured by damage, features representative of the newly-damaged region will not be available to form the overcomplete signature for the mark and a thus a different set of features will be captured by the overcomplete signature of the altered mark to form the overcomplete signature, which the system can use to authenticate the mark (if possible).

[0131] FIG. 15 depicts a flow diagram of an example process 1500 for updating a transform to convert the overcomplete signature. The system obtains 1502 an updated fingerprint for the candidate mark generated from measured characteristics of a new image of the candidate mark. At least a portion of the candidate mark captured in the new image includes an alteration, such that the updated fingerprint represents an update to at least one thousand mark features in the vector space using data values that have been quantized in the non-linear manner.

[0132] The system determines 1504 based on the alteration captured in the new image, an updated transform for the updated fingerprint, the updated transform different from the transform. An updated transform to convert the overcomplete signature of the altered mark to produce the reduced dataset vector space signature can include an updated subset of the measured characteristics that are usable for mark authentication, while filtering out or reducing the impact of noise or irrelevant components. This can include, for example, using different ratios of data from different ones of the two or more channels to specify conversion to the reduced dataset vector space for the transform or to the updated reduced dataset vector space for the updated transform. In some instances, the system can iteratively combine different ratios to determine a combination that results in a positive authentication result. For example, masking information can be removed from the fingerprints and the system determines if a match is identified. In some implementations, different mixture settings can be implemented in different damaged regions.

[0133] The system applies 1506 the updated transform to the updated fingerprint and to one or more fingerprints in the set of KNN fingerprints to produce updated reduced dataset vector space signatures, the updated reduced dataset vector space signatures indicative of an updated proper subset of the measured characteristics that are usable for mark authentication and different from the proper subset. The system utilizes 1508 the updated reduced dataset vector space signatures to confirm the candidate mark is genuine.

[0134] In some implementations, a machine-learned (ML) model or a numerically-optimized (NO) model can be used to determine a transform to convert the overcomplete fingerprints into reduced dataset vector space fingerprints in order to authenticate marks. For example, the ML model or NO model can be trained on at least one of authentic marks generated from one or more different types of systems and non-authentic marks from one or more different types of systems (e.g., systems for producing photocopies, counterfeit prints, etc., which can be used as a third anchor point in a triple loss during an optimization of a transform) to specify the transform to convert overcomplete fingerprints into the reduced dataset vector space fingerprints.

[0135] Example process for a 2D mark

[0136] In some implementations, two-dimensional (2D) barcodes can store machine readable information in a small space. 2D codes are printed during the regular manufacturing process of the package or item and can be used, e.g., dual use, for the purpose of fingerprinting as described in this disclosure. In general, the process of generating a fingerprint from a 2D mark, e.g., feature extraction, processing, and encoding, is similar to the process described above with reference to a ID mark example, with a main difference being the placement and number of features within the mark. For example, the feature locations and counts in a 2D mark are defined by the shape of the mark. FIGS. 13A-13E depict an example process of using a 2D barcode to generate an overcomplete fingerprint usable for authenticating and tracking a product item.

[0137] In some implementations, the processor implements auto scaling, i.e., the ability of the system to automatically adjust to detect and process different sizes of 2D codes. For example, image resolution auto scaling includes using a feature that helps locate and detect smaller 2D codes during fingerprinting by adjusting the low-resolution image size so that it does not fall below a minimum size.

[0138] As described with reference to the ID mark example, the system can similarly process an image including a 2D mark to locate the 2D and apply an estimated grid layout 1302 for the 2D code 1300, e.g., as depicted in FIG. 13A. In some instances, the system can further refine the alignment of the grid layout on the 2D mark using a semi-rigged grid alignment, as depicted in FIG. 13B, which additionally depicts a visualization of cell size, e.g., cell 1304, of the mark as well as alignment vectors, e.g., alignment vector 1306.

[0139] The system then extracts the feature information into respective channels, as described previously with reference to the ID mark example. For example, as depicted in the partial view 1310 of the 2D mark in FIG. 13C, the system extracts features from the 2D mark including edge features, e.g., edge features 1312 into channel 5. In another example, as depicted in the partial view 1314 of the 2D mark in FIG. 13D the system extracts features from the 2D mark including ink features, e.g., ink features 1316, into channel 6. In another example, as depicted in the partial view 1318 of the 2D mark in FIG. 13E, the system extracts features from the 2D mark including substrate features, e.g., substrate features 1320, into channel 7.

[0140] In some implementations, the size of the fingerprint for 2D marks in most cases is adjusted to create a constant fingerprint size with sufficient information regardless of code module count. The processor encodes 3 channels independently instead of one and use feature doubling if the codes are small. For example, as depicted in FIG. 14A depicts an example of single cross features, e.g., cross feature 1400, identified in a portion of a mark 1402. FIG. 14B depicts an example of feature doubling of the single cross feature, resulting in double cross features, e.g., double cross feature 1406, identified in the portion of the mark 1402. In some instances, feature skipping and / or feature doubling can be implemented to keep the fingerprint size for 2D codes in the range of 250 features per channel. This leads to an enhanced authentication performance for small 2D codes where otherwise there might be insufficient information to authenticate.

[0141] For example, the channel-based encoding provides several advantages, particularly when dealing with printed marks of varying sizes, such as 2D barcodes. For smaller 2D barcodes, the system may implement a "feature doubling" technique to ensure sufficient discriminative information is captured in the fingerprint. In these cases, the limited number of features inherent to the small, printed mark size could otherwise result in an insufficient fingerprint for reliable authentication. The feature doubling process involves extracting the available features multiple times, or extracting features from additional locations within the small, printed mark. This effectively increases the total number of features represented in each of the three independently encoded channels. Through this approach, the system is able to maintain a consistent fingerprint size, with approximately 250 features per channel, even when the underlying printed mark has a limited number of discernible elements.

[0142] The benefit of this consistent fingerprint size is enhanced authentication performance, particularly for small 2D barcodes. Without the feature doubling, the limited number of features in these small, printed marks could lead to insufficient information to accurately authenticate the item. By contrast, for larger 2D barcodes that contain a greater number of discernible features, the system employs "feature skipping" to avoid an overly large fingerprint size. This feature skipping selectively omits the extraction of certain features, again maintaining the target fingerprint size range. The fingerprinting system's use of three independently encoded channels, combined with feature doubling for small, printed marks and feature skipping for large ones, can ensure fingerprint size and quality for accurate and consistent authentication.

[0143] Embodiments of the subject matter and the functional operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Embodiments 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, data processing apparatus. The computer-readable medium can be a manufactured product, such as hard drive in a computer system or an optical disc sold through retail channels, or an embedded system. The computer-readable medium can be acquired separately and later encoded with the one or more modules of computer program instructions, such as by delivery of the one or more modules of computer program instructions over a wired or wireless network. The computer-readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, or a combination of one or more of them.

[0144] 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 computer program in question, e.g., 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 employ various different computing model infrastructures, such as web services, distributed computing, and grid computing infrastructures. 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 compiled or interpreted languages, declarative or procedural languages, and it can be deployed in any suitable form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub-programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.

[0145] The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).

[0146] Processors suitable for the execution of a computer program include, by way of example, special purpose microprocessors. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for performing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. However, a computer need not have such devices. Moreover, a computer can be embedded in another device, e.g., a mobile telephone, 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), to name just a few. Devices suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM (Erasable Programmable Read-Only Memory), EEPROM (Electrically Erasable Programmable Read-Only Memory), and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD- ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.

[0147] To provide for interaction with a user, embodiments of the subject matter described in this specification can be implemented on a computer having a display device, e.g., an LCD (liquid crystal display) display device, an OLED (organic light emitting diode) display device, or another monitor, for displaying information to the user, and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any suitable form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any suitable form, including acoustic, speech, or tactile input.

[0148] The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. Embodiments of the subject matter described in this specification can be implemented in a computing system that includes a back-end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front-end component, e.g., 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 is this specification, or 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, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), an inter-network (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).

[0149] This specification uses the term “configured to” in connection with systems, apparatus, and computer program components. That a system of one or more computers is configured to perform particular operations or actions means that the system has installed on its software, firmware, hardware, or a combination of them that in operation cause the system to perform the operations or actions. That one or more computer programs is configured to perform particular operations or actions means that the one or more programs include instructions that, when executed by data processing apparatus, cause the apparatus to perform the operations or actions. That special-purpose logic circuitry is configured to perform particular operations or actions means that the circuitry has electronic logic that performs the operations or actions.

[0150] In addition to the embodiments of the attached claims and the embodiments described above, the following numbered embodiments are also innovative.

[0151] Embodiment l is a method comprising determining a transform for at least a first electronic signature generated for an authentic mark, wherein the transform is determined after the first electronic signature is generated for the authentic mark and stored in a database, the first electronic signature having been generated from measured characteristics of an image of the authentic mark, the first electronic signature represented as a vector comprising at least 1000 dimensions and including at least 50 mark features in a vector space using data values that have been quantized in a non-linear manner, the transform converts at least a proper subset of data in the first electronic signature into a reduced dataset vector space, and data in the reduced dataset vector space for the first electronic signature is indicative of a proper subset of the measured characteristics that are usable for mark authentication, obtaining a second electronic signature for a candidate mark, the second electronic signature generated from measured characteristics of an image of the candidate mark, retrieving, from the database, a set of electronic signatures including the first electronic signature that are similar to the second electronic signature, applying the transform to the second electronic signature and to one or more electronic signatures in the set of electronic signatures to produce reduced dataset vector space signatures, and utilizing the reduced dataset vector space signatures to confirm the candidate mark is genuine.

[0152] Embodiment 2 is a method of embodiment 1, wherein the determining comprises comparing data from the second electronic signature to the electronic signatures in the set of electronic signatures similar to the second electronic signature to specify conversion to the reduced dataset vector space for the transform. Embodiment 3 is a method of any one of embodiments 1 or 2, wherein each electronic signature includes data for measured characteristics in two or more channels, and the determining comprises using data from different ones of the two or more channels to specify conversion to the reduced dataset vector space for the transform.

[0153] Embodiment 4 is a method of embodiment 3, wherein using data from different one of the two or more channels comprises fusing the data from different ones of the two or more channels to specify conversion to the reduced dataset vector space for the transform.

[0154] Embodiment 5 is a method of embodiment 4, wherein fusing the data comprises generating a single score from the data in each respective channel.

[0155] Embodiment 6 is a method of any one of embodiments 4 or 5, wherein fusing the data comprises mixing scores using a mixing function.

[0156] Embodiment 7 is a method of any one of embodiments 3 to 6, wherein the two or more channels comprise a first channel with data for measured characteristics located inside marked areas, a second channel with data for measured characteristics located in non-marked areas, and a third data channel with data for measured characteristics located in boundary areas that span marked and non-marked regions.

[0157] Embodiment 8 is a method of any one of embodiments 1 to 7, further including obtaining a third electronic signature for the candidate mark, the third electronic signature generated from measured characteristics of a new image of the candidate mark, wherein at least a portion of the candidate mark captured in the new image includes an alteration, and wherein the third electronic signature represents an updated at least one thousand mark features in the vector space using data values that have been quantized in the non-linear manner, determining, based on the alteration captured in the new image, an updated transform for the third electronic signature, the updated transform different from the transform, applying the updated transform to the third electronic signature and to one or more electronic signatures in the set of electronic signatures to produce updated reduced dataset vector space signatures, the updated reduced dataset vector space signatures indicative of an updated proper subset of the measured characteristics that are usable for mark authentication and different from the proper subset, utilizing the updated reduced dataset vector space signatures to confirm the candidate mark is genuine. Embodiment 9 is a method of embodiment 8, wherein the alteration comprises damage to the candidate mark, image capture effects, or a combination thereof.

[0158] Embodiment 10 is a method of any one of embodiments 3 or 8, wherein determining the transform or determining the updated transform comprises using different ratios of data from different ones of the two or more channels to specify conversion to the reduced dataset vector space for the transform or to the updated reduced dataset vector space for the updated transform.

[0159] Embodiment 11 is a method of any one of embodiments 1 to 10, wherein the second electronic signature represents the at least 50 mark features in the vector space using data values that have been quantized in a linear or the non-linear manner.

[0160] Embodiment 12 is a method of any one of embodiments 1 to 11, the first electronic signature having been generated from measured characteristics of the at least 50 mark features identified in the image.

[0161] Embodiment 13 is a method of any one of embodiments 1 to 12, wherein the at least 50 mark features have been determined from two or more different types of authentic marks produced by one or more different marking systems.

[0162] Embodiment 14 is a method of embodiment 13, wherein each electronic signature of the set of electronic signatures includes data for measured characteristics usable for searching and to authenticate marks from another, different marking system, but are unusable to authenticate marks in a current marking system, and wherein unusable data is removed by the transform.

[0163] Embodiment 15 is a method of embodiment 13, wherein each electronic signature of the set of electronic signatures includes data for measured characteristics for a first set of features useable for mark authentication for marks generated from a first system of the one or more different systems and for a second, different set of features usable for mark authentication for marks generated from a second, different system of the one or more different systems.

[0164] Embodiment 16 is a method of embodiment 13, wherein the determining comprises identifying an aggregate of features being usable to distinguish the at least one of the two or more different types of authentic marks, and wherein the applying of the transform to produce reduced dataset vector space signatures comprises converting at least the proper subset of data including the aggregate of features into the reduced dataset vector space.

[0165] Embodiment 17 is a method of embodiment 13, wherein each electronic signature includes data for measured characteristics that indicate one or more common features found in the two or more different types of authentic marks, the one or more common features not being usable to distinguish different marks from a first of the different types of authentic marks, while being usable to distinguish different marks from a second of the different types of authentic marks.

[0166] Embodiment 18 is a method of embodiment 16, comprising using the data that indicates the aggregate of features to support or enhance a search operation, an authentication operation, or both.

[0167] Embodiment 19 is a method of any one of embodiments 1 to 18, wherein the determining occurs after the second electronic signature is obtained.

[0168] Embodiment 20 is a method of any one of embodiments 1 to 19, wherein the data values that have been quantized in the non-linear manner comprise data values that are quantized versions of log values of received data values for the measured characteristics.

[0169] Embodiment 21 is a method of any one of embodiments 1 to 20, wherein applying the transform to the second electronic signature and to one or more electronic signatures in the set of electronic signatures to produce reduced dataset vector space signatures comprises applying a sequence of two or more sub-transformations to produce reduced dataset vector space signatures.

[0170] Embodiment 22 is a method of embodiment 21, wherein applying the sequence of sub-transformations comprises at least one of masking, filtering, signal trimming, outlier removal, cluster filtering, low pass filtering, and high pass filtering.

[0171] Embodiment 23 is a method of any one of embodiments 1 to 22, wherein the determining comprises using a machine-learned model or a numerically-optimized model trained on at least one of authentic marks generated from one or more different types of systems and non-authentic marks from one or more different types of systems to specify the transform to convert electronic signatures into the reduced dataset vector space signatures. Embodiment 24 is a method of any one of embodiments 1 to 23, wherein the features in the vector include distributed components, wherein the vector is comprised of components that are distributed across the entire vector and spanning multiple measures.

[0172] Embodiment 25 is a system comprising a user interface device, and one or more computers operable to interact with the user interface device and programmed to perform operations in accordance with any of the preceding method claims.

[0173] Embodiment 26 is a system of embodiment 25, wherein the one or more computers comprise a server operable to interact with the user interface device through a data communication network, and the user interface device is operable to interact with the server as a client.

[0174] Embodiment 27 is a system of embodiment 26, wherein the user interface device comprises a personal computer or a mobile telephone running a web browser.

[0175] Embodiment 28 is a system of any one of embodiments 25 or 27, wherein the one or more computers comprises one personal computer, and the personal computer comprises the user interface device.

[0176] Embodiment 29 is a non-transitory computer-readable medium encoding instructions of a computer program product configured to cause one or more computers to perform operations in accordance with any of the preceding method claims.

[0177] While this specification contains many implementation details, these should not be construed as limitations on the scope of what is being or may be claimed, but rather as descriptions of features specific to particular embodiments of the disclosed subject matter. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination. Thus, unless explicitly stated otherwise, or unless the knowledge of one of ordinary skill in the art clearly indicates otherwise, any of the features of the embodiments described above can be combined with any of the other features of the embodiments described above.

[0178] Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and / or parallel processing may be advantageous. Moreover, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.

[0179] Thus, particular embodiments of the invention have been described. Other embodiments are within the scope of the following claims. For example, the actions recited in the claims can be performed in a different order and still achieve desirable results. As another example, we are not limited to applying a shift in the distortion accommodation process; we can use other transformation functions. Other transformation functions can include warping, stretching, scaling, performing a geometric operation, and utilizing a lookup table of transformation values. Other transformation functions can be applied in different geometric circumstances. Warping can be applied to a flexible substrate or a nonplanar or wrinkled substrate, with non-uniform radius curvature. If the curvature of the mark is arbitrarily curved, this can be handled. Shifting for keystone or perspective distortions. Stretching for curved surfaces, among other possibilities. One way to perform a stretch would be to include padding data within the data series.

Claims

CLAIMSWhat is claimed is:

1. A method compri sing : determining a transform for at least a first electronic signature generated for an authentic mark, wherein the transform is determined after the first electronic signature is generated for the authentic mark and stored in a database, the first electronic signature having been generated from measured characteristics of an image of the authentic mark, the first electronic signature represented as a vector comprising at least 1000 dimensions and including at least 50 mark features in a vector space using data values that have been quantized in a non-linear manner, the transform converts at least a proper subset of data in the first electronic signature into a reduced dataset vector space, and data in the reduced dataset vector space for the first electronic signature is indicative of a proper subset of the measured characteristics that are usable for mark authentication; obtaining a second electronic signature for a candidate mark, the second electronic signature generated from measured characteristics of an image of the candidate mark; retrieving, from the database, a set of electronic signatures including the first electronic signature that are similar to the second electronic signature; applying the transform to the second electronic signature and to one or more electronic signatures in the set of electronic signatures to produce reduced dataset vector space signatures; and utilizing the reduced dataset vector space signatures to confirm the candidate mark is genuine.

2. The method of claim 1, wherein the determining comprises comparing data from the second electronic signature to the electronic signatures in the set of electronic signatures similar to the second electronic signature to specify conversion to the reduced dataset vector space for the transform.

3. The method of claim 2, wherein each electronic signature includes data for measured characteristics in two or more channels, and the determining comprises using data from different ones of the two or more channels to specify conversion to the reduced dataset vector space for the transform.

4. The method of claim 3, wherein using data from different one of the two or more channels comprises fusing the data from different ones of the two or more channels to specify conversion to the reduced dataset vector space for the transform.

5. The method of claim 4, wherein fusing the data comprises generating a single score from the data in each respective channel.

6. The method of claim 4 or 5, wherein fusing the data comprises mixing scores using a mixing function.

7. The method of claim 3, wherein the two or more channels comprise a first channel with data for measured characteristics located inside marked areas, a second channel with data for measured characteristics located in non-marked areas, and a third data channel with data for measured characteristics located in boundary areas that span marked and non-marked regions.

8. The method of claim 3, further comprising: obtaining a third electronic signature for the candidate mark, the third electronic signature generated from measured characteristics of a new image of the candidate mark, wherein at least a portion of the candidate mark captured in the new image includes an alteration, and wherein the third electronic signature represents an updated at least one thousand mark features in the vector space using data values that have been quantized in the non-linear manner; determining, based on the alteration captured in the new image, an updated transform for the third electronic signature, the updated transform different from the transform; applying the updated transform to the third electronic signature and to one or more electronic signatures in the set of electronic signatures to produce updated reduced dataset vector space signatures, the updated reduced dataset vector space signatures indicative of an updated proper subset of the measured characteristics that are usable for mark authentication and different from the proper subset; and utilizing the updated reduced dataset vector space signatures to confirm the candidate mark is genuine.

9. The method of claim 8, wherein the alteration comprises damage to the candidate mark, image capture effects, or a combination thereof.

10. The method of claims 3 or 8, wherein determining the transform or determining the updated transform comprises using different ratios of data from different ones of the two or more channels to specify conversion to the reduced dataset vector space for the transform or to the updated reduced dataset vector space for the updated transform.

11. The method of claim 1, wherein the second electronic signature represents the at least 50 mark features in the vector space using data values that have been quantized in a linear or the non-linear manner.

12. The method of claim 1, the first electronic signature having been generated from measured characteristics of the at least 50 mark features identified in the image.

13. The method of claims 11 or 12, wherein the at least 50 mark features have been determined from two or more different types of authentic marks produced by one or more different marking systems.

14. The method of claim 13, wherein each electronic signature of the set of electronic signatures includes data for measured characteristics usable for searching and to authenticate marks from another, different marking system, but are unusable to authenticate marks in a current marking system, and wherein unusable data is removed by the transform.

15. The method of claim 13, wherein each electronic signature of the set of electronic signatures includes data for measured characteristics for a first set of features useable for mark authentication for marks generated from a first system of the one or more different systems and for a second, different set of features usable for mark authentication for marks generated from a second, different system of the one or more different systems.

16. The method of claim 13, wherein the determining comprises identifying an aggregate of features being usable to distinguish the at least one of the two or more different types of authentic marks, and wherein the applying of the transform to produce reduced dataset vector space signatures comprises converting at least the proper subset of data including the aggregate of features into the reduced dataset vector space.

17. The method of claim 13, wherein each electronic signature includes data for measured characteristics that indicate one or more common features found in the two or more different types of authentic marks, the one or more common features not being usable to distinguish different marks from a first of the different types of authentic marks, while being usable to distinguish different marks from a second of the different types of authentic marks.

18. The method of claim 16, comprising using the data that indicates the aggregate of features to support or enhance a search operation, an authentication operation, or both.

19. The method of claim 1, wherein the determining occurs after the second electronic signature is obtained.

20. The method of claim 1, wherein the data values that have been quantized in the nonlinear manner comprise data values that are quantized versions of log values of received data values for the measured characteristics.

21. The method of claim 1, wherein applying the transform to the second electronic signature and to one or more electronic signatures in the set of electronic signatures to produce reduced dataset vector space signatures comprises applying a sequence of two or more sub-transformations to produce reduced dataset vector space signatures.

22. The method of claim 21, wherein applying the sequence of sub-transformations comprises at least one of masking, filtering, signal trimming, outlier removal, cluster filtering, low pass filtering, and high pass filtering.

23. The method of claim 1, wherein the determining comprises using a machine-learned model or a numerically-optimized model trained on at least one of authentic marks generated from one or more different types of systems and non-authentic marks from one or more different types of systems to specify the transform to convert electronic signatures into the reduced dataset vector space signatures.

24. The method of claim 1, wherein the features in the vector include distributed components, wherein the vector is comprised of components that are distributed across the entire vector and spanning multiple measures.

25. A system comprising: a user interface device; and one or more computers operable to interact with the user interface device and programmed to perform operations in accordance with any of the preceding method claims.

26. The system of claim 25, wherein the one or more computers comprise a server operable to interact with the user interface device through a data communication network, and the user interface device is operable to interact with the server as a client.

27. The system of claim 26, wherein the user interface device comprises a personal computer or a mobile telephone running a web browser.

28. The system of claim 25, wherein the one or more computers comprises one personal computer, and the personal computer comprises the user interface device.

29. A non-transitory computer-readable medium encoding instructions of a computer program product configured to cause one or more computers to perform operations in accordance with any of the preceding method claims.

30. A system comprising: a user interface device; and one or more computers operable to interact with the user interface device and programmed to perform operations comprising: determining a transform for at least a first electronic signature generated for an authentic mark, wherein the transform is determined after the first electronic signature is generated for the authentic mark and stored in a database, the first electronic signature having been generated from measured characteristics of an image of the authentic mark, the first electronic signature represented as a vector comprising at least 1000 dimensions and including at least 50 mark features in a vector space using data values that have been quantized in a non-linear manner, the transform converts at least a proper subset of data in the first electronic signature into a reduced dataset vector space, and data in the reduced dataset vector space for the first electronic signature is indicative of a proper subset of the measured characteristics that are usable for mark authentication; obtaining a second electronic signature for a candidate mark, the second electronic signature generated from measured characteristics of an image of the candidate mark; retrieving, from the database, a set of electronic signatures including the first electronic signature that are similar to the second electronic signature; applying the transform to the second electronic signature and to one or more electronic signatures in the set of electronic signatures to produce reduced dataset vector space signatures; and utilizing the reduced dataset vector space signatures to confirm the candidate mark is genuine.

31. A non-transitory computer-readable medium encoding instructions of a computer program product configured to cause one or more computers to perform operations comprising: determining a transform for at least a first electronic signature generated for an authentic mark, wherein the transform is determined after the first electronic signature is generated for the authentic mark and stored in a database, the first electronic signature having been generated from measured characteristics of an image of the authentic mark, the first electronic signature represented as a vector comprising at least 1000 dimensions and including at least 50 mark features in a vector space using data values that have been quantized in a non-linear manner, the transform converts at least a proper subset of data in the first electronic signature into a reduced dataset vector space, and data in the reduced dataset vector space for the first electronic signature is indicative of a proper subset of the measured characteristics that are usable for mark authentication; obtaining a second electronic signature for a candidate mark, the second electronic signature generated from measured characteristics of an image of the candidate mark; retrieving, from the database, a set of electronic signatures including the first electronic signature that are similar to the second electronic signature; applying the transform to the second electronic signature and to one or more electronic signatures in the set of electronic signatures to produce reduced dataset vector space signatures; and utilizing the reduced dataset vector space signatures to confirm the candidate mark is genuine.

Citation Information

Patent Citations

  • Methods and a computing device for determining whether a mark is genuine

    US10061958B2

  • Methods and a computing device for determining whether a mark is genuine

    US9519942B2

  • Methods and a computing device for determining whether a mark is genuine

    US9940572B2

  • Mark authentication with distortion tolerance

    WO2023205473A1

  • Methods and a computing device for determining whether a mark is genuine

    US10235597B2