Macroscopic Fingerprinting
The fingerprint engine addresses counterfeiting in luxury goods by registering and comparing product images using mobile and cloud systems, leveraging machine learning for effective authentication.
Patent Information
- Application Number
- JP2024536376
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2021-12-15
- Filing Date
- 2022-12-15
- Publication Date
- 2024-12-10
AI Technical Summary
Global counterfeiting of luxury goods poses a significant threat due to their high value and unique, handmade, or machine-manufactured characteristics that leave unique surface marks, necessitating effective authentication methods.
A fingerprint engine that registers a reference image of a product using a mobile device and cloud-based system, performs blur detection and segmentation, and compares query images to determine authenticity through machine learning models, enabling authentication via smartphone applications and cloud-based systems.
Enables accurate and user-friendly authentication of luxury goods by detecting unique surface textures and manufacturing marks, ensuring product authenticity.
Smart Images

Figure 2024545683000001_ABST
Abstract
Description
[Technical field]
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims the benefit of Indian Patent Application No. 202121058401 entitled Naked Eye Fingerprint Method, filed on December 15, 2021, the entire contents of which are incorporated by reference. [Background technology]
[0002] background Global counterfeiting of products is a serious problem. For high-end luxury items such as leather goods, watches, clothing, antiques, and fine art, this problem seriously threatens manufacturers and famous brands. Apart from being highly valuable, these products (or articles) are also the most sought after, which makes them more susceptible to counterfeiting. As a protection against counterfeiting, brands require that all their products be uniquely identified. Summary of the Invention
[0003] overview Luxury brands typically use naturally occurring (and sometimes treated) materials, such as leather, in their products. The surfaces of these materials have a uniquely identifiable texture. Furthermore, these products may be handcrafted. Even if the product is made by machine, the manufacturing process leaves a unique mark on the surface of each individual instance of the product.
[0004] Various embodiments of a fingerprint engine are disclosed herein that determine a digital fingerprint of a physical instance of a product type (i.e., object type, article type). The fingerprint engine further performs a comparison between the digital fingerprint and an image of a target object to determine whether the target object is, in fact, the same object instance that corresponds to the digital fingerprint. Thus, embodiments of the fingerprint engine allow customers to establish the authenticity of physical instances of object types that they currently own.
[0005] Various embodiments of the apparatus, methods, systems, and computer program products described herein are directed to a fingerprint engine that enrolls a reference image depicting a physical instance of an object. The fingerprint engine obtains a query image depicting a physical instance of a target object. The fingerprint engine compares the reference image to the query image. The fingerprint engine determines authenticity of the target object based on detecting a match between the reference image and the query image. In determining authenticity, the fingerprint engine determines a Fingerprint-FP for the target object. Various embodiments disclosed herein may also involve generating a Fingerprint-FP for the object.
[0006] One or more embodiments of the fingerprint engine may perform an enrollment phase and a comparison phase. During the enrollment phase, an image of a defined area of a physical instance of a type of object may be captured via a camera of a mobile computing device (such as a smartphone) and a software application of the fingerprint engine mobile device. The fingerprint engine then stores an enrollment image of the physical instance of a type of object generated by the enrollment phase. The enrollment image may then be used as a reference image in the comparison phase.
[0007] In one embodiment, the first part of the fingerprint engine can be a smartphone-based software application that can be easily utilized by the end customer (i.e., the end user). The second part of the fingerprint engine can be a cloud-based system. In one embodiment, blur detection for generic object registration and segmentation plus blur detection for predefined object registration can be performed by the fingerprint engine via the smartphone-based software application. The fingerprint engine stored the registration image in the cloud-based system.
[0008] In one embodiment, the generation and coarse alignment of the semi-transparent image (with the enrollment image) for global object comparison may be performed by the fingerprint engine via a smartphone-based software application. In one embodiment, the generation, coarse alignment and segmentation of the semi-transparent image for predefined object comparison may be performed by the fingerprint engine via a smartphone-based software application. In one embodiment, the semi-transparent image may be a semi-transparent overlay of the enrollment image.
[0009] In some embodiments, fine alignment, feature extraction and match scoring for global object comparison may be performed by a fingerprint engine in a cloud-based system. In some embodiments, homography estimation, alignment, feature extraction and match scoring for predefined object comparison may be performed by a fingerprint engine in a cloud-based system.
[0010] Further areas of applicability of the present disclosure will become apparent from the detailed description, claims and drawings. The detailed description and specific examples are intended for purposes of illustration only and are not intended to limit the scope of the present disclosure. [Brief description of the drawings]
[0011] BRIEF DESCRIPTION OF THE DRAWINGS DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS In the present specification, reference is made in detail to certain embodiments, some of which or aspects thereof are illustrated in the drawings.
[0012] [Figure 1] FIG. 1 illustrates an exemplary environment in which an embodiment may operate.
[0013] [Diagram 2] FIG. 2 illustrates an exemplary method that may be implemented in an embodiment.
[0014] [Figure 4]FIG. 4 illustrates an exemplary environment in which an embodiment may operate.
[0015] [Diagram 5] FIG. 5 illustrates an exemplary method that may be implemented in an embodiment.
[0016] [Figure 6] FIG. 6 illustrates an exemplary environment in which an embodiment may operate. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0017] Detailed Description DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS In this specification, reference is made in detail to certain embodiments, some of which or aspects thereof are illustrated in the drawings.
[0018] It is understood that the discussion, explanations, elaborations and illustrations contained herein, in whole or at least in part, may be represented by data and may be embodied and / or processed by one or more computer software modules and / or computer hardware modules.
[0019] In addition, the discussion, descriptions, elaborations, and illustrations contained herein may be embodied on a non-transitory computer-readable medium, a computer system, and / or a computer program product. In addition, any portion and any feature contained in the discussion, descriptions, elaborations, and illustrations contained herein may further be represented as data.
[0020] Although the present invention has been described with reference to specific embodiments for clarity of explanation, it should be understood that the present invention is not limited to the described embodiments. On the contrary, the present invention is intended to cover alternatives, modifications, and equivalents as may be included within the scope defined by any claims. The following embodiments of the present invention are described without loss of generality and without imposing limitations on the claimed invention. In the following description, specific details are set forth in order to provide a thorough understanding of the present invention. The present invention may be practiced without some or all of these specific details. Additionally, well-known features may not be described in detail in order to avoid unnecessarily obscuring the present invention.
[0021] Additionally, it should be understood that the steps of the exemplary method described in this exemplary patent may be performed in a different order than presented herein, some steps of the exemplary method may be performed in parallel rather than sequentially, and the steps of the exemplary method may be performed in a networked environment where some steps are performed by different computers in the networked environment.
[0022] Some embodiments are implemented by a computer system, which may include a processor, a memory, and a non-transitory computer-readable medium. The memory and the non-transitory medium may store instructions for performing the methods and steps described herein.
[0023] FIG. 1 is a diagram of an exemplary network environment in which embodiments may operate. Figure 1 In this exemplary environment 140, two clients 141, 142 are connected over a network 145 to a server 150 having local storage 151. The clients and servers in this environment may be computers. The server 150 may be configured to handle requests from the clients.
[0024] This exemplary environment 140 is shown for simplicity as having only two clients and one server, although in practice there may be more or fewer clients and servers. Although computers are referred to as clients and servers, a client may also act as a server and a server may also act as a client. In some embodiments, clients 141, 142 may communicate with each other as well as with a server. Also, server 150 may communicate with other servers.
[0025] Network 145 may be, for example, a local area network (LAN), a wide area network (WAN), a telephone network, a wireless network, an intranet, the Internet, or a combination of networks. Server 150 may be connected to storage 152 over a connection medium 160. Connection medium 160 may be a bus, crossbar, network, or other interconnect device. Storage 152 is illustrated as a single entity, although it may be implemented as a network of multiple storage devices. Storage 152 may be a file system, disk, database, or other storage.
[0026] In one embodiment, client 141 may perform method 200 or other methods herein and, as a result, store a file in storage 152. This may be accomplished via communication over network 145 between client 141 and server 150. For example, client may communicate a request to server 150 to store a file in storage 152 under a particular name. Server 150 may respond to the request by storing the file in storage 152 under the particular name. The file being stored may be one that resides on client 141 or may already reside in server's local storage 151. In another embodiment, server 150 may respond to the request by storing the file in storage 151 under the particular name. The file being stored may be one that resides on client 141 or may reside in other storage accessible over a network, such as storage 152, or may even reside in storage on client 142 (e.g., in a peer-to-peer system).
[0027] According to the above discussion, the embodiments may be used to store files on local storage such as a disk or on removable media such as a flash drive, CD-R, or DVD-R. Furthermore, the embodiments may be used to store files on external storage devices connected to a computer over a connection medium such as a bus, crossbar, network, or other interconnect equipment. In addition, the embodiments may be used to store files on a remote server or on a storage device accessible to a remote server.
[0028] Additionally, cloud computing is another example where files are often stored on remote servers or remote storage systems. Cloud computing refers to pooled network resources that can be quickly stockpiled for easy scalability. Cloud computing can be used to provide software as a service, platform as a service, infrastructure as a service, and similar features. In a cloud computing environment, end users can store files in the "cloud." "Cloud" means that the actual hardware storing the files is not visible to the end user, but the files are stored on remote network resources.
[0029] Figure 2 As shown in flowchart 200, the fingerprint engine enrolls a reference image depicting a physical instance of an object (step 202). The fingerprint engine obtains a query image depicting a physical instance of a target object (step 204). The fingerprint engine compares the reference image to the query image. The fingerprint engine determines the authenticity of the target object based on detecting a match between the reference image and the query image (step 206).
[0030] Figure 3 As shown in FIG. 1, the fingerprint engine may be deployed simultaneously via a software application 302 and via a cloud-based system 304. The software application 302 and the cloud-based system 304 send data to each other regarding the execution, completion and / or reporting of one or more operations of the fingerprint engine. Thus, the software application 302 may be a front-end portion of the fingerprint engine and the cloud-based system 304 may be a back-end portion of the fingerprint engine. In one embodiment, the software application 302 may be a software computer application on a mobile device.
[0031] In various embodiments, one or more modules of the fingerprint engine may be implemented via the software application 302. A portion of one or more modules of the fingerprint engine may be implemented via the software application 302. One or more operations of the fingerprint engine may be performed via the software application. A portion of one or more operations of the fingerprint engine may be performed via the software application 302.
[0032] In various embodiments, one or more modules of the fingerprint engine may be implemented via the cloud-based system 304. Portions of one or more modules of the fingerprint engine may be implemented via the cloud-based system 304. One or more operations of the fingerprint engine may be performed via the cloud-based system 304. Portions of one or more operations of the fingerprint engine may be performed via the cloud-based system 304.
[0033]
[0034] Registration Phase: Blur Detection and Segmentation
[0035]
[0036] The fingerprint engine performs blur detection and segmentation during the enrollment stage 402 . Figure 4 As shown in FIG. 1, there are two different routes for the registration stage 402, a first registration route for generic object image registration ("generic object registration") 404 and a second registration route for predefined object image registration ("defined object registration") 406. It is understood that a predefined object is a type of object that has a certain expected shape (or size) that is known. For example, a predefined object can be a clock or a baseball. Blur detection is performed for generic object registration 404. Segmentation plus blur detection is performed for predefined object registration 406.
[0037] For the generic object registration 404 route of the registration phase 402, the fingerprint engine implements a machine learning ("ML") model for blur detection. For example, the machine learning model can be the MobileNet V2 model. As the end user attempts to capture an image of an object via a mobile computing device, the fingerprint engine attempts to detect blur in the image of the object before an actual image of the target object is captured. Image blur can be caused by the end user moving the mobile device too close or too far from the object.
[0038] For blur detection, the fingerprint engine constantly monitors the degree of blur in the preview image on the mobile computing device. For example, an end user may attempt to physically place the camera of the mobile computing device close to an object, resulting in a video feed that includes multiple images. Each of the images in the video feed may be considered a preview image. That is, a preview image is a depiction of the object in a frame of the video feed before the image is captured. In real time, the fingerprint engine constantly determines and updates a blur score that indicates the current degree of blur depicted in the preview image.
[0039] Upon determining that the current blur score is within the acceptable blur score range, the fingerprint engine notifies the end user that the preview image represents an acceptable image suitable for enrollment. Based on receipt of the notification, the end user may capture an image of the object. The captured image of the object is transmitted to the fingerprint engine and stored therein as an enrollment image for that object.
[0040] For the predefined object registration 406 route of the registration stage 402, the fingerprint engine performs an additional step of segmentation before also performing blur detection. The predefined object registration 406 route is executed when an end user attempts to capture an image of an object via the mobile computing device's camera. In various embodiments, the fingerprint engine's segmentation ML model may be implemented on the mobile computing device for the predefined object registration route.
[0041] When an end user attempts to capture an image of an object via the camera of a mobile computing device, the fingerprint engine inputs the preview image into a segmentation ML model. This segmentation ML model returns a segmentation output that describes the shape of the region of interest of the object. For example, if the object is a watch, the region of interest may be the bezel and lugs, but may not include the watch strap. Thus, the segmentation output may be a template (or segmentation mask) defined by the region of interest. For example, the segmentation output for an object that is a watch may be a silhouette of the shape of the bezel and lugs.
[0042] When an end user attempts to capture an image of the object, the end user can use the segmentation output as a template. The fingerprint engine constantly monitors a current alignment between the template and the preview image of the object. The fingerprint engine constantly determines a Dice coefficient based on a current placement of the template relative to the preview image of the object. If the fingerprint engine determines that the current Dice coefficient is within a Dice coefficient threshold, it notifies the end user that the template is properly aligned to the preview image of the object. Based on receipt of the notification, the end user can capture an image when properly aligned to the template. The fingerprint engine receives the captured image of the object and performs blur detection on the captured image.
[0043] After blur detection, the fingerprint engine saves the image as an enrollment image for the object. It is understood that the saving of the enrollment image during either route of the enrollment stage 402 may include extraction of features of the enrollment image. In one embodiment, the saving of the enrollment image and feature extraction may be performed in a fingerprint engine cloud-based system separate from the mobile computing device where the enrollment image was captured.
[0044]
[0045] Comparison stage: coarse alignment, time-axis smoothing and homography estimation
[0046]
[0047] During the comparison phase, an end user may wish to determine the authenticity of a physical instance of a target object ("target object") currently in their possession. To do so, the comparison phase utilizes a previously stored enrollment image as a reference image that is compared against a query image of the target object. The fingerprint engine compares and analyzes features of the reference and query images to determine whether the current target object depicted in the query image is the same object depicted in the reference image. That is, the fingerprint engine attempts to determine whether the current target object is the same instance of the physical object used to obtain the enrollment image that is being used as the reference image.
[0048] The fingerprint engine generates a semi-transparent (transparent) version of the reference image and provides the semi-transparent image to the end user, who can use the semi-transparent image as a guide when attempting to align the semi-transparent image displayed on the mobile computing device with a preview image of the target object (from a video feed) simultaneously displayed on the mobile computing device.
[0049] As the end user attempts to align the preview image of the target object to the semi-transparent image, the fingerprint engine continually determines an alignment score based on a measurement of the current degree of alignment between the preview image of the target object and the enrollment image. Upon determining that the current alignment score is within the alignment score threshold range, the fingerprint engine notifies the end user to obtain a query image of the target object. By utilizing the semi-transparent image as a guide, the end user is more likely to obtain a query image that is closely aligned to the reference image.
[0050] In one embodiment, to determine the degree of alignment, the fingerprint engine utilizes one or more ML models used during the previous enrollment phase 402. In one embodiment, the one or more ML models of the enrollment phase 402 may be implemented by a fingerprint engine software application on the mobile computing device. For example, the fingerprint engine may use the encoder output of the blur detection ML model as a feature vector for comparing the current alignment of the semi-transparent enrollment image with the preview of the query image. The fingerprint engine may further determine Dice coefficients (similar to those done during the enrollment phase 402) while determining the degree of alignment of the semi-transparent image and the preview of the query image (i.e., each frame of the video feed from the mobile computing device).
[0051] As the preview image of the target object is received by the fingerprint engine via each frame of the video feed, the fingerprint engine further evaluates the alignment by time-axis smoothing. As the end user manipulates the mobile computing device to align the preview image with the translucent image, jitteriness of each frame may occur. The result of the jitteriness may be a jitter effect that may cause the user to have a frustrating experience as the prompt to acquire a query image appears quickly and then disappears.
[0052] To avoid jitter effects, the fingerprint engine further processes each preview image from the video feed such that the alignment score of each preview image is smoothed. The fingerprint engine applies temporal smoothing to a smoothing window of multiple preview images (i.e., individual frames of the video feed). For example, a smoothing window may be defined as including seven consecutive frames. The fingerprint engine determines a smoothed alignment score by applying a median filter to the individual raw alignment scores of the frames in the smoothing window. The fingerprint engine notifies the user to obtain a query based on whether the current smoothed alignment score is within a query alignment threshold range. The end user, upon being notified, obtains the query image.
[0053] Figure 5 As shown in flowchart 500, if the comparison step 502 involves a query image depicting a generic target object, the fingerprint engine crops the reference and query images (step 504). The fingerprint engine determines point correspondences between the cropped images via an ML model such as local feature matching with transformer ML (LoFTR) model (step 506). The fingerprint engine performs homography image alignment (step 508). The fingerprint engine determines a dense descriptor product of the aligned images (step 510). The fingerprint engine determines a histogram of the dot product descriptors (step 512).
[0054] In various embodiments, during the comparison step 502, the fingerprint engine identifies regions of interest in the query image and the reference image. The fingerprint engine crops 504 both images to depict the regions of interest. Because the query image was closely aligned when acquired, the similarity between the cropped reference image and the query image is high. The fingerprint engine further aligns the cropped reference image and the query image by local feature matching using a transformer ML (LoFTR) model, which calculates matching points between the cropped reference image and the query image (506). The fingerprint engine rotates and translates the cropped query image by the matching points ("transformed query image") so that both images are ultimately perfectly aligned. The embodiments herein are not limited to using the LoFTR model.
[0055] The fingerprint engine divides both the reference image and the transformed query image by an equal number of block sections. The fingerprint engine calculates features of each block section of both the reference image and the transformed query image. The fingerprint engine compares the features of the same block sections from the reference image and the transformed query image.
[0056] The comparison of features from both images by the Fingerprint Engine generates a heat map corresponding to each block section, which indicates which block sections between the images are highly correlated with each other and which block sections between the images are not. The Fingerprint Engine determines whether there is a match between the images based on the distribution of matches between the block sections. If the distribution satisfies a threshold, the Fingerprint Engine determines that execution of the comparison step 502 has identified a match between the reference image and the query image, and that the object depicted in the query image is the same instance of a physical object in the enrollment image used for the reference image.
[0057] However, if the query image depicts a defined object, the comparison step 502 involves an additional step in which the fingerprint engine uses a segmentation network to mask background regions of the query and reference images, thereby identifying mask regions within the query and reference images. To determine the match, the fingerprint engine calculates features of only those block sections that are located within the mask regions.
[0058] As mentioned above, the fingerprint engine runs the LoFTR model to identify matching points. The fingerprint engine runs the LoFTR model by extracting features at a lower range of image resolution. The fingerprint engine then runs homography scaling to the original image resolution (i.e., reference image resolution, query image resolution).
[0059]
[0060] fingerprint extraction
[0061]
[0062] Since the embodiment of the fingerprint engine handles the lighting changes, controlled lighting conditions are not required. There are many variations in the appearance of fingerprintable surfaces of various types of objects captured by smartphone cameras. To ensure that the fingerprint of an object can be used consistently regardless of the lighting conditions in the image of the object, a training phase of the fingerprint engine is performed to build a feature extraction network based on the SuperPoint network. The training phase includes generating multiple images of various types of objects, and then randomly and artificially modifying the texture of the objects in the images and the lighting of the objects in the images using computer graphic tools.
[0063] In other words, the training phase involves generating an image training dataset based on randomized modifications of texture quality and / or lighting conditions of numerous images for different objects and for different orientations (i.e., views of the images from which the objects are depicted). An image of an object in the image training dataset may then be represented by numerous versions of that image, each version depicting the same object with different textures and lighting. A feature extraction network is then trained on the generated image training dataset.
[0064] Figure 6 1 illustrates an example machine of a computer system upon which a set of instructions may be executed to cause the machine to perform any one or more of the methodologies described herein. In another embodiment, the machine may be connected (e.g., networked) to other machines in a LAN, an intranet, an extranet, and / or the Internet. The machine may operate in the capacity of a server or a client machine in a client-server network environment, as a peer machine in a peer-to-peer (or distributed) network environment, or as a server or client machine in a cloud computing infrastructure or environment.
[0065] The machine may be a personal computer (PC), tablet PC, set-top box (STB), personal digital assistant (PDA), mobile phone, web appliance, server, network router, switch or bridge, or other machine capable of executing a set of instructions (sequential or otherwise) that specify operations to be performed by the machine. Moreover, although a single machine is illustrated, the term "machine" should be interpreted to include a collection of machines that individually or together execute a set (or sets) of instructions that implement any one or more of the methods described herein.
[0066] The example computer system 700 includes a processing device 702, a main memory 704 (e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM) or Rambus DRAM (RDRAM), etc.), a static memory 706 (e.g., flash memory, static random access memory (SRAM), etc.), and a data storage device 718, which are in communication with each other via a bus 730.
[0067] The processing device 702 represents one or more general-purpose processing devices, such as a microprocessor, a central processing unit, or the like. More specifically, the processing device may be a complex instruction set computer (CISC) microprocessor, a reduced instruction set computer (RISC) microprocessor, a very long instruction word (VLIW) microprocessor, or a processor implementing other instruction sets, or a processor implementing a combination of instruction sets. The processing device 702 may also be one or more special-purpose processing devices, such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), a network processor, or the like. The processing device 702 is configured to execute instructions 726 to perform the operations and steps described herein.
[0068] The computer system 700 may further include a network interface device 708 for communicating over a network 720. The computer system 700 may also include a video display unit 710 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)), an alphanumeric input device 712 (e.g., a keyboard), a cursor control device 714 (e.g., a mouse), a graphics processing unit 722, a signal generation device 716 (e.g., a speaker), a video processing unit 728, and an audio processing unit 732.
[0069] The data storage device 718 may include a machine-readable storage medium 724 (also known as a computer-readable medium) on which is stored one or more set of instructions or software 726 that embody one or more of the methods or functions described herein. Additionally, the instructions 726 may reside, completely or at least partially, within the main memory 704 and / or within the processing device 702 during execution thereof by the computer system 700, the main memory 704 and the processing device 702 also constituting a machine-readable storage medium.
[0070] In one embodiment, instructions 726 include instructions for implementing functions corresponding to components of a device implementing the disclosure herein. Although machine-readable storage medium 724 is shown in the embodiment as being a single medium, the term "machine-readable storage medium" should be interpreted to include a single medium or multiple media (e.g., a centralized or distributed database, and / or associated caches and servers) that store one or more sets of instructions. The term "machine-readable storage medium" should also be interpreted to include any medium capable of storing or encoding a set of instructions for execution by a device that causes the device to perform one or more of the methods of the present disclosure. Thus, the term "machine-readable storage medium" should be interpreted to include, but is not limited to, solid-state memory, optical media, and magnetic media.
[0071] Some of the preceding detailed descriptions have been presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is herein, and generally, conceived to be a self-consistent sequence of operations leading to a desired result. These operations require physical manipulations of physical quantities. Usually, though not necessarily, these physical quantities take the form of electrical or magnetic signals capable of being stored, combined, compared and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
[0072] It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these physical quantities. Unless otherwise stated, which is clear from the above discussion, descriptions throughout the specification using terms such as "identifying" or "determining" or "executing" or "performing" or "collecting" or "generating" or "transmitting" are understood to refer to operations and processes of a computer system or similar electronic computing device that manipulates data represented as physical (electronic) quantities in the registers and memory of the computer system and converts data into other data that are similarly represented as physical quantities in the memory or registers of the computer system or other such information storage devices.
[0073] The present disclosure also relates to an apparatus for performing the operations herein. The apparatus may be specially configured for the intended purposes. Alternatively, the apparatus may include a general purpose computer selectively activated or reconfigured by a computer program stored within the computer. Such computer programs may be stored on a computer readable storage medium, such as, but not limited to, any type of floppy disk, optical disk, CD-ROM, magneto-optical disk, read-only memory (ROM), random access memory (RAM), EPROM, EEPROM, magnetic or optical card, or any type of medium suitable for storing electronic instructions, each coupled to a computer system bus.
[0074] Various general-purpose systems may be used with programs in accordance with the teachings herein. Alternatively, it may prove convenient to construct more specialized apparatus to carry out the methods. The structure for these various systems is as set forth in the above description. In addition, the present disclosure has not been described with reference to any particular programming language. It will be understood that a variety of programming languages can be used to implement the teachings of the disclosure as described herein.
[0075] The present disclosure may be provided as a computer program product, or software, that may include a machine-readable medium having instructions recorded thereon, which may be used to program a computer system (or other electronic device) to perform a process according to the present disclosure. A machine-readable medium includes any mechanism for storing information in a form readable by a machine (e.g., a computer). For example, machine-readable (e.g., computer-readable) media includes machine (e.g., computer) readable media such as read-only memory ("ROM"), random access memory ("RAM"), magnetic disk storage media, optical storage media, flash memory devices, and the like.
[0076] In this disclosure, the disclosed embodiments have been described with reference to specific embodiments thereof. It will be apparent that various modifications can be made thereto without departing from the broader spirit and scope of the disclosed embodiments as set forth in the following claims. Accordingly, the disclosure and drawings are to be regarded in an illustrative and not a restrictive sense.
Claims
1. 1. A computer-implemented method comprising: Registering a reference image depicting a physical instance of the object; obtaining a query image depicting a physical instance of a target object; Comparing the reference image with the query image; determining the authenticity of the target object based on detecting a match between the reference image and the query image; method.
2. Registering the reference image includes: receiving a video feed of a plurality of preview images of the object; For each preview image, determining a degree of blur for each of the preview images; generating a blur score for each of the preview images; determining whether the blur score satisfies a blur threshold; triggering a prompt to initiate image capture of the object upon determining that the blur score satisfies the blur threshold; The acquired image is stored as a registered image of the object. Including, 2. The computer-implemented method of claim 1.
3. receiving a video feed of a plurality of preview images of the object; identifying an area of interest in each preview image by applying a segmentation machine learning model to each preview image as the preview image is received; receiving a template for the region of interest from the segmentation machine learning model; triggering a prompt to initiate image capture of the object upon determining that an alignment between the template and the respective preview image satisfies an alignment threshold; applying blur detection to the captured image; Saving the captured image as a registered image of the object. The computer-implemented method of claim 1 , further comprising:
4. Obtaining a query image depicting a physical instance of a target object includes: receiving a video feed of a plurality of preview images of the target object; generating a semi-transparent overlay of the registered image; determining a degree of alignment between the enrollment image and each target preview image as each target preview image is received; determining a degree of alignment between the semi-transparent image version of the registration image and the respective target preview image; triggering a prompt to initiate query image capture of the target object upon determining that the degree of alignment satisfies an alignment threshold. Including, 2. The computer-implemented method of claim 1.
5. Determining a degree of alignment between the registration image and the respective target preview image includes: Apply time axis smoothing to multiple target preview image windows, Determine alignment score based on applying temporal smoothing wherein the alignment represents a current degree of alignment.
2. The computer-implemented method of claim 1.
6. Comparing the reference image to the query image includes: Cropping the query image and the reference image according to regions of interest depicted in the query image and the reference image; Aligning the cropped query image and the cropped reference image by local feature matching using a TransformerML (LoFTR) model. Including, 2. The computer-implemented method of claim 1.
7. aligning the cropped query image and the cropped reference image by local feature matching using a Transformer ML (LoFTR) model, generating a transformed query image based on one or more matching points identified by the LoFTR model; Dividing the transformed query image and the reference image by a plurality of corresponding block sections; Extracting feature quantities of block sections of the transformed query image and the reference image, for each block section, comparing features of the respective block section of the transformed query image with features of the respective block section of the corresponding reference image; determining a match between the query image and the reference image based on a distribution of similarities between the block sections; Including, 7. The computer-implemented method of claim 6.
8. A system comprising one or more processors and a non-transitory computer readable medium containing one or more instructions, the instructions, when executed by the one or more processors, cause the system to Registering a reference image depicting a physical instance of the object; receiving a query image depicting a physical instance of a target object; Comparing the reference image with the query image; Determining the authenticity of the target object based on detecting a match between the reference image and the query image. Perform an action, including system.
9. 1. A computer program product comprising a non-transitory computer readable medium having computer readable program code embodied thereon for execution by one or more processors, the program code comprising: Registering a reference image depicting a physical instance of the object; receiving a query image depicting a physical instance of a target object; Comparing the reference image with the query image; Determining the authenticity of the target object based on detecting a match between the reference image and the query image. Including instructions, Computer program products.
