Method and apparatus for analyzing image of portion of article for pattern indicative of authenticity of article
By training a machine learning model to generate a feature set based on a predetermined part of the card, the problem of slow and inaccurate card identification in existing technologies is solved, and fast and accurate card identification is achieved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- COLLECTORS UNIVERSE INC
- Filing Date
- 2024-10-02
- Publication Date
- 2026-05-01
AI Technical Summary
Existing authentication technologies are slow, inaccurate, and inefficient when used to determine the authenticity of items, making it difficult to quickly and accurately identify the authenticity of items such as cards.
By using non-transitory processor-readable medium to store instructions, a machine learning model is trained to generate a feature set based on a predetermined portion of the card, and the authenticity of the card is determined using multiple trained ML models without performing feature extraction.
It enables rapid and accurate identification of card authenticity, saves storage space, is applicable to various types of collectibles, and improves identification speed and accuracy.
Smart Images

Figure CN121970092A_ABST
Abstract
Description
[0001] Cross-reference to related applications
[0002] This application claims priority to U.S. Patent Application No. 63 / 587,280, filed October 2, 2023, entitled “METHODS AND APPARATUS TOANALYZE AN IMAGE OF A PORTION OF AN ITEM FOR A PATTERN INDICATING AUTHENTICITY OF THE ITEM”, the entire contents of which are incorporated herein by reference. Technical Field
[0003] One or more embodiments involve pattern analysis of a portion of an image of an item to indicate its authenticity. Background Technology
[0004] Items such as cards, coins, dolls, comic books, paintings, photographs, and / or similar objects can be valuable and desirable assets. Therefore, image analysis might be desirable for quickly, accurately, and efficiently determining the authenticity of such items. However, known authentication techniques are slow, inaccurate, and inefficient. Summary of the Invention
[0005] In an embodiment, a non-transitory processor-readable medium stores instructions that, when executed by a processor, cause the processor to receive a plurality of images having an image type. Each of the plurality of images includes a predetermined portion. The non-transitory processor-readable medium also stores instructions that, when executed by a processor, cause the processor to perform feature extraction based on the predetermined portion of the image, rather than the remainder of the image, for each of the plurality of images and in order to generate a plurality of feature sets associated with the plurality of images, to generate a feature set associated with the image. The non-transitory processor-readable medium also stores instructions that, when executed by a processor, cause the processor to train an ML model using the plurality of feature sets associated with the plurality of images to generate a trained machine learning (ML) model. The non-transitory processor-readable medium also stores instructions that, when executed by a processor, cause the processor to receive an image that (1) is not included in the plurality of images, (2) is of the image type, and (3) has the predetermined portion. The non-transitory processor-readable medium also stores instructions that, when executed by a processor, cause the processor to perform feature extraction based on the predetermined portion of the image rather than the rest of the image to generate a feature set associated with the image. The non-transitory processor-readable medium also stores instructions that, when executed by a processor, cause the processor to input the feature set associated with the image into the trained ML model to generate an output indicating the realism of the image.
[0006] In one embodiment, a method includes receiving a plurality of card images having a plurality of image types. The method further includes, for each of the plurality of image types and in order to generate a plurality of image subsets, using an image classifier to identify a subset of images from the plurality of images that is of that image type. The method further includes, for each subset of images from the plurality of image subsets, performing feature extraction on each image from the subset of images to generate features associated with that image. The method further includes inputting the features associated with each image from the subset of images into a trained ML model from a plurality of trained ML models to generate output indicating whether the collectible associated with the image is genuine or counterfeit. Each trained ML model from the plurality of trained ML models is associated with an image type from the plurality of image types that is distinct from the remaining trained ML models from the plurality of trained ML models.
[0007] In one embodiment, an apparatus includes a memory and a processor operatively coupled to the memory. The processor is configured to receive multiple images of multiple collectibles having multiple collectible types. The processor is also configured to, for each of the multiple collectible types and in order to generate multiple image subsets, use an image classifier to identify a subset of images representing a collectible of that collectible type from the multiple collectibles. The processor is further configured to, for each subset of images from the multiple image subsets, input a representation of each image from the image subset, without performing feature extraction on the image, into a trained ML model from a plurality of trained ML models to generate an output indicating whether the collectible represented by the image is genuine or counterfeit. Each trained ML model from the plurality of trained ML models is associated with a collectible type from the multiple collectible types, which is distinct from the remaining trained ML models from the plurality of trained ML models. The trained ML models include at least one of the following: a deep autoencoder model, a deep nearest neighbor anomaly detection model, a semantic pyramid anomaly detection (SPADE) model, a patch distribution modeling framework for anomaly detection and segmentation (PaDiM) model, or an anomaly detection (PatchCore) model that uses patch-level features and core set selection. Attached Figure Description
[0008] Figure 1 A block diagram of a system for training and using an ML model to determine the authenticity of cards, according to an embodiment, is shown.
[0009] Figure 2A The illustration depicts a method for training and using a model according to an embodiment.
[0010] Figure 2B The computation of the Local Binary Pattern (LBP) according to the embodiment is visualized.
[0011] Figure 3 The illustration shows the use of an image classifier to determine the authenticity of different card types according to an embodiment.
[0012] Figure 4 The illustration shows an example of performing feature extraction using a directional gradient histogram (HoG) according to an embodiment.
[0013] Figure 5 An example of execution anomaly detection and execution feature extraction according to an embodiment is illustrated.
[0014] Figure 6 The illustration shows an example of performing anomaly detection without performing feature extraction, according to an embodiment.
[0015] Figure 7 A flowchart illustrating a method for training an ML model, according to an embodiment, to generate outputs indicating the authenticity of collectibles associated with images.
[0016] Figure 8 A flowchart illustrating a method for determining whether a collection associated with different images of different image types is genuine or counterfeit, according to an embodiment.
[0017] Figure 9 A flowchart illustrating a method for training a machine learning model using images of multiple real cards, according to an embodiment, is shown.
[0018] Figure 10 A flowchart is shown, according to an embodiment, of a method for determining whether a collection associated with different images of different image types is genuine or counterfeit without performing feature extraction. Detailed Implementation
[0019] Some implementations involve generating a training dataset by performing feature extraction on predetermined portions of multiple cards (e.g., only real cards, only counterfeit cards, a combination of real and counterfeit cards, etc.), all of which have the same card type. This training dataset can then be used to train a machine learning (ML) model to produce outputs indicating the authenticity of cards. After training is complete, the trained ML model can receive features not included in the training dataset and produce outputs indicating the authenticity of cards generated from those cards. In some implementations, different ML models can be trained using different sets of cards, such that each ML model is configured to be trained using cards of a unique card type and is configured to produce outputs indicating whether a card is of that unique card type.
[0020] As an example, feature extraction can be performed using the backs of multiple Magic: The Gathering cards. The extracted features can be used to train a first ML model. If all Magic: The Gathering cards are real, the first ML model can be trained via unsupervised learning. If the Magic: The Gathering cards include some real cards and some counterfeit cards, the first ML model can be trained via supervised learning. Subsequently, features extracted from the different Magic: The Gathering cards can be fed into the first ML model, and the first ML model can produce an output indicating whether the different Magic: The Gathering cards are real or not (e.g., counterfeit). Additionally, continuing this example, feature extraction can be performed using the top-left areas of multiple Yu-Gi-Oh! cards. The extracted features can be used to train a second ML model different from the first ML model. If the Yu-Gi-Oh! cards are real, the second ML model can be trained via unsupervised learning. If the Yu-Gi-Oh! cards include some real cards and some counterfeit cards, the second ML model can be trained via supervised learning. Subsequently, features extracted from different Yu-Gi-Oh! cards (e.g., unknown) can be input into a second ML model, and the second ML model can produce an output indicating whether the different Yu-Gi-Oh! card is real or not (e.g., counterfeit).
[0021] Some implementations involve using a trained ML model to determine whether a collectible is genuine or a forgery without performing feature extraction. For example, an image of the collectible can be preprocessed and fed into a trained ML model without performing feature extraction before being input. In other words, feature extraction is not performed after preprocessing and before the preprocessed version of the image is fed into the trained ML model. In response to the received input, the trained ML model generates output indicating whether the collectible is genuine or a forgery. In some implementations, the trained ML model is generated by training the ML model via supervised learning using a training dataset that includes images of genuine collectibles and images of forgeries. In some implementations, the trained model is generated by training the ML model via unsupervised learning using a training dataset that includes images of genuine collectibles but excludes images of forgeries. In some implementations, the trained model is generated by training an ML model using a training dataset that includes non-synthetic images of cards and synthetic images of cards; in other implementations, the non-synthetic images of cards are augmented to generate synthetic images of cards (e.g., by augmenting a predetermined portion of the non-synthetic image instead of the rest of the non-synthetic image).
[0022] Compared to known authentication techniques, the technique described in this paper can determine whether a card is genuine or not (e.g., counterfeit) more quickly and accurately. In some implementations, features can be extracted at speeds and levels of detail that are unattainable or impractical for humans. Therefore, the technique described in this paper can be faster and more accurate than authentication performed solely by humans. Furthermore, the technique described in this paper uses predetermined portions of the card to determine its authenticity. By analyzing certain parts of the card (e.g., the back of the card, the logo in the lower right corner, etc.) rather than other parts of the card, fewer features are extracted; this can bring other benefits, such as saving memory space, allowing ML models to process less data, and determining the authenticity of the card more quickly, etc. In addition, compared to some known techniques that are limited to determining the authenticity of only one type of collectible, the technique described in this paper can use multiple networks, including an image classifier, to determine the authenticity of multiple collectibles, which can categorize collectibles according to type. Furthermore, the technique described in this paper can be applied to images of cards / cards. Cards have characteristics, such as real cards of a particular card type sharing certain common features (e.g., common back designs, common markings at corners, etc.), and the techniques described herein utilize these common features to determine authenticity; for example, some techniques described herein extract features only from the parts of the card / card image that are typically shared by all cards across that card type and / or enhance those parts (e.g., generate additional training data).
[0023] While this article will discuss some implementations in the context of cards, in some implementations, the techniques discussed herein can also be applied to various items and / or images of such items. For example, the techniques discussed herein can be applied to coins, dolls, books, currency, hardware, clothing, video game cartridges, watches, shoes, paintings, photographs, and / or similar items, and / or their images.
[0024] Figure 1 A block diagram of a system for training and using an ML model for determining card authenticity, according to an embodiment, is shown. Figure 1 This includes a user computing device 100 that is communicatively coupled to a real computing device 140 via a network 120.
[0025] Network 120 can be any suitable communications network used for transmitting data (e.g., operating over public and / or private communications networks). For example, network 120 may include a private network, a Virtual Private Network (VPN), a Multiprotocol Label Switching (MPLS) circuit, the Internet, an intranet, a Local Area Network (LAN), a Wide Area Network (WAN), a Metropolitan Area Network (MAN), the Global Microwave Access Interoperability Network (WiMAX®), a fiber-optic (or optical fiber-based) network, a Bluetooth® network, a virtual network, and / or any combination thereof. In some instances, network 120 may be a wireless network, such as, for example, Wi-Fi® or a Wireless Local Area Network (“WLAN”), a Wireless Wide Area Network (“WWAN”), and / or a cellular network. In other instances, network 120 may be a wired network, such as, for example, an Ethernet network, a Digital Subscriber Line (“DSL”) network, a broadband network, and / or a fiber optic network. In some instances, network 120 may use application programming interfaces (APIs) and / or data exchange formats (e.g., Representation of State Transition (REST), JavaScript Object Notation (JSON), Extensible Markup Language (XML), Simple Object Access Protocol (SOAP), and / or Java Message Service (JMS)). Communication sent via network 120 may be encrypted or unencrypted. In some instances, network 120 may include multiple networks or subnetworks operatively coupled to each other via, for example, network bridges, routers, switches, gateways, and / or the like.
[0026] The real computing device 140 includes a processor 142 operatively coupled to memory 144 (e.g., via a system bus). The real computing device 140 can be any type of computing device, such as a server, desktop computer, laptop computer, tablet computer, smartphone, and / or the like.
[0027] Processor 142 may be, for example, a hardware-based integrated circuit (IC) or any other suitable processing device configured to run and / or execute a set of instructions or code. For example, processor 142 may be a general-purpose processor, a central processing unit (CPU), an accelerated processing unit (APU), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a programmable logic array (PLA), a complex programmable logic device (CPLD), a programmable logic controller (PLC), and / or the like. In some implementations, processor 142 may be configured to run and / or execute the methods and / or portions thereof discussed herein.
[0028] Memory 144 may be, for example, random access memory (RAM), a memory buffer, a hard drive, read-only memory (ROM), erasable programmable read-only memory (EPROM), and / or the like. Memory 144 may be configured to store data used by processor 142 for performing the techniques (methods, processes, etc.) discussed herein. In some instances, memory 144 may store, for example, one or more software programs and / or code, which may include instructions to cause processor 142 to perform one or more processes, functions, etc. In some implementations, memory 144 may include expandable storage units that can be incrementally added and used. In some implementations, memory 144 may be a portable memory (e.g., flash memory drive, portable hard disk, secure digital (SD) card, and / or the like) operatively coupled to processor 142. In some instances, memory 144 may be remotely coupled to a computing device (not in...) Figure 1 (As shown in the diagram) Operationally coupled. In some instances, memory 144 is a virtual memory driver (e.g., a RAM disk), which can improve I / O speed and thus accelerate image reading and writing.
[0029] Memory 144 includes (e.g., stores) a representation (e.g., an image) of card 146. Card 146 can be any type of card, such as trading cards. In some implementations, card 146 may include only real cards, in others only counterfeit cards, and in still others a combination of real and counterfeit cards. Each card from card 146 can be a card type. For example, the first card from card 146 may be of a first card type, the second card from card 146 may be of a second card type, and so on. Examples of card types include, for example, trading cards of different types, series, and / or brands. For example, card types can include various collectible card games (CCGs) or trading card games (TCGs) (such as, for example, Pokémon cards, Magic: The Gathering cards, Yu-Gi-Oh! cards, One Piece cards and / or similar), sports trading cards (such as, for example, baseball cards, rugby cards, basketball cards, hockey cards and / or similar), and / or any other type or brand of collectible cards.
[0030] In some implementations, real cards of a particular card type share at least one common identifier (e.g., identical backs, a specific mark in a specific position, etc.); in other words, a card type can refer to a predetermined set of cards, each of which includes (or claims to include) a common predetermined portion. For example, the predetermined set of cards could be Magic: The Gathering cards, and the predetermined portion could be a back designed and / or manufactured to be common across real Magic: The Gathering cards. As another example, the predetermined set of cards could be Yu-Gi-Oh! cards, and the predetermined portion could be a top-left corner designed and / or manufactured to be common across real Yu-Gi-Oh! cards.
[0031] The memory 144 also includes (e.g., storing) a representation of the feature set 148. The feature set 148 can be extracted from the card 146. The feature set 148 can be generated based on the card 146 using any suitable feature extraction technique, such as, for example, feature extraction via Local Binary Pattern (LBP), Local Triple Pattern (LTP), Local Phase Quantization (LPQ), Local Derivative Triple Pattern (LDTP), Histogram of Oriented Gradients (HOG), Gabor filters, Local Phase Consistency (LPC), deep learning, Local Binary Pattern Histogram (LBPH), and / or similar techniques. In some implementations, feature extraction includes performing feature extraction based on predetermined portions of one or more card images from the card 146, rather than based on other portions of the one or more card images from the card 146. In some implementations, feature extraction includes performing feature extraction based on substantially all (e.g., at least 95%, at least 99%, 100%, and / or similar) portions of one or more card images from the card 146. In some implementations, feature set 148 is not generated; in other words, feature set 148 is not generated and is not used to determine the authenticity of the cards.
[0032] Memory 144 also includes (e.g., storing) representations of the trained ML model 150. The trained ML model 150 can be / includes any type(s) of ML model(s), such as a support vector machine (SVM), an isolated forest model, a local outlier model, an autoencoder, a density-based model, a statistics-based model, a deep nearest neighbor anomaly detection model, a semantic pyramid anomaly detection (SPADE) model, a patch distribution modeling framework (PaDiM) model for anomaly detection and localization, an autoencoder, a full recall (PatchCore) model for industrial anomaly detection, a neural network model, and / or the like. In some implementations, such as when card 146 includes only real cards or only counterfeit cards, at least some models from the trained ML model 150 may be trained using unsupervised learning (e.g., instead of supervised learning). Additionally or alternatively, in some implementations, such as when card 146 includes a combination of real and counterfeit cards, some models from the trained ML model 150 may be trained using supervised learning (e.g., instead of unsupervised learning). In some implementations, both unsupervised and supervised learning can be used to train trained ML models150
[0033] In some implementations, the trained ML model 150 can be trained using feature set 148. In some implementations, each ML model from the trained ML model 150 can be trained using a subset of feature set 148 associated with different card types. For example, a first ML model from the trained ML model 150 can be trained using a first subset of features extracted from real cards from card 146 as a first card type, a second ML model from the trained ML model 150 can be trained using a second subset of features extracted from real cards from card 146 as a second card type, and so on.
[0034] In some implementations, the trained ML model 150 can be trained via supervised learning using a training dataset that includes images of real cards and images of counterfeit cards, without using feature set 148. In other implementations, the trained ML model 150 can be trained via unsupervised learning using a training dataset that includes images of real cards but excludes images of counterfeit cards, without using feature set 148.
[0035] In some implementations, a training dataset comprising both non-synthetic images and synthetic images of collectibles is used to train the trained ML model 150. For example, at least some of the non-synthetic images may be augmented to generate synthetic images. In some implementations, where the trained ML model 150 is trained to determine the authenticity of a particular card type, and real cards of that particular card type share common identifiers (e.g., common backs, common marker designs, common marker positions, etc.) across real cards of that card type, the common identifiers may be augmented to generate one or more synthetic images (e.g., without augmenting the cards or other parts of the images). Augmenting the common identifiers may include, for example, changing the color (e.g., changing to a different hue), changing the text (e.g., introducing spelling errors, adding words, using a different font, changing the text size, etc.), changing the position or orientation of elements of the common identifier, changing the pattern and / or similar methods used in the common identifier. By augmenting and using synthetic images, the size and diversity of the training dataset can be increased, and the trained ML model 150 can be made more accurate, adaptive, and complete.
[0036] After training is complete, the trained ML model 150 can be configured to receive a representation of a card (e.g., an image) and produce output indicating the authenticity of the card. For example, the output could indicate whether the card is real or fake. As another example, the output could provide a value (e.g., a score between 1 and 10) and / or a percentage indicating the probability that the card is real (or fake).
[0037] In some implementations, memory 144 also includes (e.g., storing) a representation of image classifier 152. Image classifier 152 can be any type of statistical model, such as artificial intelligence (AI) or ML model. In some implementations, image classifier 152 is a directed gradient histogram feature model, a multi-class support vector machine, a random forest, a neural network, and / or the like. Image classifier 152 can be configured to (1) receive a representation of a card whose authenticity is to be determined, and (2) determine the card type of the card, such that the authenticity of the card can be determined from among trained ML models 150 using one or more ML models trained to determine the authenticity of cards of that card type.
[0038] User computing device 100 includes a processor 102 operatively coupled to memory 104 (e.g., via a system bus). User computing device 100 can be any type of computing device, such as a server, desktop computer, laptop computer, tablet computer, smartphone, and / or the like. In some implementations, although in Figure 1Not shown, but the user computing device 100 may include an area with controlled lighting conditions that can be used to capture images and / or videos of cards whose authenticity is to be determined. In some implementations, the user computing device 100 is a mobile device capable of capturing images and / or videos of cards whose authenticity is to be determined.
[0039] Processor 102 may be, for example, a hardware-based integrated circuit (IC) or any other suitable processing device configured to run and / or execute a set of instructions or code. For example, processor 102 may be a general-purpose processor, a central processing unit (CPU), an accelerated processing unit (APU), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a programmable logic array (PLA), a complex programmable logic device (CPLD), a programmable logic controller (PLC), and / or the like. In some implementations, processor 102 may be configured to run and / or execute the methods and / or portions thereof discussed herein.
[0040] Memory 104 may be, for example, random access memory (RAM), a memory buffer, a hard disk drive, read-only memory (ROM), erasable programmable read-only memory (EPROM), and / or the like. Memory 104 may be configured to store data used by processor 102 to perform the techniques (methods, processes, etc.) discussed herein. In some instances, memory 104 may store, for example, one or more software programs and / or code, which may include instructions to cause processor 102 to perform one or more processes, functions, and / or the like. In some implementations, memory 104 may include expandable storage units that can be incrementally added and used. In some implementations, memory 104 may be a portable memory (e.g., a flash drive, portable hard disk, SD card, and / or the like) operatively coupled to processor 102. In some instances, memory 104 may be remotely coupled to a computing device (not in...) Figure 1 (As shown in the diagram) Operationally coupled. In some instances, memory 104 is a virtual storage drive (e.g., a RAM disk), which can improve I / O speed and thus accelerate image reading and writing.
[0041] Memory 104 includes (e.g., storing) a representation (e.g., an image) of card 106. Card 106 represents a card whose authenticity is to be determined. Card 106 can be, for example, an image or video of a card (including predetermined portions of the card). In some implementations, user computing device 100 includes a camera (not in... Figure 1As shown in the diagram, the camera is configured to capture one or more images and / or one or more videos including a predetermined portion of card 106. In some implementations, card 106 is an image of the card captured under controlled lighting conditions. In some implementations, an image of the card can be captured, and any area other than the card can be cropped from the image to generate card 106. A representation of card 106 (e.g., via network 120) can then be sent to a realism computing device 140.
[0042] Upon receiving card 106, the authenticity calculation device 140 can be configured to use image classifier 152 to determine the card type of card 106. For example, image classifier 152 can determine that card 106 is a 1996 "Pokémon" card. As another example, image classifier 152 can determine that card 106 is a 1996 "Pokémon" Holofoil version Pokémon card. As yet another example, image classifier 152 can determine that card 106 is a Yu-Gi-Oh! card. The authenticity calculation device can then determine from trained ML models 150 trained to determine the authenticity of the card type, optionally extracting features from predetermined portions of card 106, and providing the image of card 106 and / or the extracted features to trained ML models to generate output indicating the authenticity of card 106.
[0043] In some implementations, after determining the authenticity of the card, the user computing device 100, the authenticity computing device 140, and / or Figure 1 The authenticity indication is output at various computing devices not shown. For example, authenticity computing device 140 may (e.g., via network 120) send an electronic signal indicating the authenticity of card 106 to user computing device 100, and user computing device 100 may display the authenticity indication via a display included in user computing device 100. The indication may be, for example, "authentic," "fake," "95% probability of being authentic," and / or similar indications.
[0044] In some implementations, subsequent actions (e.g., automatically and without human intervention) can occur when it is determined that the card is genuine or the probability of the card being genuine is higher than a predetermined threshold. Examples of subsequent actions include providing options for grading the card (e.g., brand new, good condition, etc.) or grading the card (e.g., as discussed in U.S. Patent Application No. 17,674,328, entitled "METHODS AND APPARATUS FORGRADING IMAGES OF COLLECTABLES USING IMAGE SEGMENTATION AND IMAGE ANALYSIS", filed February 17, 2022, the entire contents of which are incorporated herein by reference).
[0045] In some implementations, if the authenticity of card 106 cannot be determined (e.g., the image of card 106 is too blurry for the authenticity calculation device 140 to analyze), the authenticity calculation device 140 may send an electronic signal to the user computing device 100 indicating that the authenticity of card 106 cannot be determined. Additionally or alternatively, the authenticity calculation device 140 may send an electronic signal to the user computing device 100 with suggestions to increase the likelihood of determining the authenticity of card 106, such as providing a less blurry card image, providing a card image with a different background, providing a brighter card image, providing a larger card image, and / or similar suggestions.
[0046] In some implementations, the image quality of card 106 is determined, such as blur, noise, exposure, distortion, size, orientation, etc. In some implementations, the authenticity of card 106 is not determined if the image quality of card 106 is outside a predetermined acceptable range. For example, in response to user computing device 100 and / or authenticity computing device 140 determining that the image quality of card 106 is outside a predetermined acceptable range, features of card 106 are not extracted, card 106 is not input into trained ML model 150, and / or card 106 is not input into image classifier 152. As another example, in response to user computing device 100 and / or authenticity computing device 140 determining that the image quality of card 106 is within a predetermined acceptable range, features of card 106 are extracted, card 106 is input into trained ML model 150, and / or card 106 is input into image classifier 152.
[0047] In some implementations, a trained ML model (not in) is used. Figure 1(as shown in the figure) to determine the image quality of card 106; for example, the trained ML model may be a neural network trained using images with different image qualities as input learning data and the associated quality representations (e.g., quality scores) of these images as target learning data. In some implementations, such as where the trained ML model 150 includes different types of ML models, these different types of models may be associated with different predetermined acceptable ranges. For example, a first trained ML model from the trained ML model 150 may be configured to receive (1) a first card type and (2) card images with image quality scores between 8 / 10 and 10 / 10, while a second trained ML model from the trained ML model 150 may be configured to receive (1) a second card type and (2) card images with image quality scores between 6 / 10 and 10 / 10.
[0048] In some implementations, since the real computing device 140 is remotely / communically coupled to the network 120, the real computing device 140 is configured to receive data from multiple remote user computing devices (e.g., user computing device 100 and others not in the network). Figure 1 The user computing device shown receives multiple cards as multiple card types. Therefore, instead of having multiple remote user computing devices perform steps such as preprocessing, feature extraction, and / or application modeling (which may depend on the hardware and operating system of each end user; this may be time-consuming due to multiple end-user client machines; this may require frequent software updates from the end-user client machines to implement the techniques described herein), the realism computing device 140 can perform such functions. The realism computing device 140 can then perform these functions in a manner specific to each card and card type.
[0049] although Figure 1 It includes two computing devices, but in some implementations, any number of computing devices can be used. For example, a single computing device can be configured to perform the functions of both user computing device 100 and real computing device 140 (e.g., if local processing is desired, if no network is available, etc.). As another example, in addition to user computing device 100, the first computing device can be configured to use image classifier 152 to determine card types, and the second computing device can be configured to use cards 146 and feature set 148 to train, generate, and use the trained ML model 150.
[0050] Figure 2A The illustration depicts a method for training and using a model according to an embodiment. At 202, a real card of the card type is received. The real card can be a real card of the card type. For example, such as... Figure 2AAs shown at position 202, the real card can be a Magic: The Gathering card. At position 206, feature extraction can be performed using the real card from position 202 (e.g., a predetermined portion specific to and / or unique to the card type for each card). An example of a feature extraction technique that can be used is local binary patterns. Additional details related to position 206 are in... Figure 2B The following is illustrated at point 208. At point 208, features extracted from card 202 at point 206 can be used to train an ML model, such as, for example, a support vector machine (SVM). After training is complete, the model can be saved at point 210. At point 204, the card whose authenticity needs to be determined can be received. Features from card 204 can be extracted at point 206, and these features can be fed to the model from point 210 at point 212 to predict whether the card is real or counterfeit.
[0051] Figure 2B The computation of the Local Binary Pattern (LBP) according to the embodiment is visualized. Figure 2B This includes an original image 214. The original image 214 can be a predetermined portion, such as the back of a card or a predefined upper-left area of the card. In other implementations, the original image 214 can be the entire card image. Each pixel (or group of pixels) in the original image 214 can be associated with a pixel value. For example, original image pixel 216 shows a selected portion of the original image 214. In original image pixel 216, the center pixel has a pixel value of 4, the top leftmost pixel in the selected portion of the original image 214 has a pixel value of 5, and so on. For each pixel value, neighboring pixel values can be identified. For example, as shown in original image pixel 216, the neighboring pixel values of the center pixel value 4 are 5, 8, 1, 1, 2, 7, 3, and 5. As shown in binary pattern extraction 218, the center pixel value (4 in this example) from the original image pixel 216 can be compared with neighboring pixel values to derive a binary pattern. In this example, if the center pixel value from the original image pixel 216 is equal to or greater than (or, in other implementations, greater than) a given neighboring pixel value, the value associated with that given neighboring pixel value is 0 in binary mode; if the center pixel value from the original image pixel 216 is less than (or, in other implementations, equal to or less than) a given neighboring pixel value, the value associated with that given neighboring pixel value is 1 in binary mode. This transformation can be seen in binary mode 220, where pixel values greater than or equal to 4 are set to 0 and pixel values less than 4 are set to 1.
[0052] Next, as shown in decimal value 222, an array of binary values can be determined and / or defined based on the predetermined positions of 1s and 0s in binary pattern 220. For example, bit values for binary values can be assigned to each position (e.g., the top right corner is bit 0 and the bit value increments as you move clockwise around binary pattern 220).
[0053] Then, binary values can be defined based on this array. Specifically, in this example, the binary number "00010111" shown in decimal value 222 corresponds to the decimal number 23. The decimal value (e.g., 23 in this example) can then be provided as the value of the pixel to be processed in the output LBP image 224. Similarly, since the pixel values around the center pixel(s) of a portion(s) of the input image 226 are used to obtain 23, the center pixel(s) of the output LBP image 224 is converted to 23. The aforementioned process can occur for each value in the input image 226 (or a predetermined portion of the input image 226), such that each element in the output LBP image 224 is associated with a value. Next, the output LBP image 224 can be used to generate an LBP histogram 228. The LBP histogram 228 can represent the number of pixels (Y-axis) with a given output LBP value (or within a given range of output LBP values) (X-axis). The LBP histogram 228 and / or the output LBP image 224 can represent features associated with the original image 214 (e.g., included in feature set 148). This can be defined for training and / or as a basis for machine learning models (e.g., Figure 1 150 trained ML models or 152 image classifiers Figure 2A The feature vector of the input of a class of SVMs (e.g., 208) Figure 1 Feature set 148).
[0054] Although discussed in the context of training with real cards Figures 2A-2B However, in other implementations, counterfeit cards can also be used in training. If both real and counterfeit cards are used in training, supervised learning can occur in some implementations.
[0055] Figure 3 The illustration shows the use of an image classifier to determine the authenticity of different card types according to an embodiment. Figure 3 Various cards of different card types are shown, including card 302 as an English Pokémon card, card 304 as a Yu-Gi-Oh! card, card 306 as a Japanese Pokémon card, card 308 as a Magic: The Gathering card, card 310 as a vintage Pokémon card, and card 312 as a One Piece card. Figure 3Various models trained to determine the authenticity of predetermined card types are also shown (e.g., included in trained ML model 150), including model 316 for determining the authenticity of Cited Pokémon cards, model 318 for determining the authenticity of Yu-Gi-Oh! cards, model 320 for determining the authenticity of Japanese Pokémon cards, model 322 for determining the authenticity of Magic: The Gathering cards, model 324 for determining the authenticity of Old Pokémon cards, and model 326 for determining the authenticity of One Piece cards.
[0056] For each card, image classifier 314 (e.g., similar to image classifier 152) can determine the card type, allowing the use of an ML model trained to determine the authenticity of the determined card type. For example, image classifier 314 can determine that card 302 is an English Pokémon card type, allowing model 316 to determine whether card 302 is a genuine English Pokémon card; image classifier 314 can determine that card 304 is a Yu-Gi-Oh! card type, allowing model 318 to determine whether card 304 is a genuine Yu-Gi-Oh! card; image classifier 314 can determine that card 306 is a Japanese Pokémon card type, allowing model 320 to determine whether card 306 is a genuine Japanese Pokémon card. The image classifier 314 can determine that card 308 is a Magic: The Gathering card type, so that model 320 can be used to determine whether card 308 is a real Magic: The Gathering card. The image classifier 314 can determine that card 310 is an old Pokémon card type, so that model 324 can be used to determine whether card 310 is a real old Pokémon card. The image classifier 314 can determine that card 312 is a One Piece card type, so that model 326 can be used to determine whether card 312 is a real One Piece card.
[0057] Image classifier 314 can use any suitable technique to determine card types. For example, in some implementations, image classifier 314 compares text (e.g., extracted using optical character recognition (OCR)) and / or images (e.g., using image analysis) from card representations of unknown card types with text and / or images from card representations of known card types to perform a match (the match indicates the card type). For example, if a card of unknown type includes the text "Pocket Monster" and has an old-fashioned Poké Ball icon, image classifier 314 can determine what known card types include the text "Pocket Monster" and have an old-fashioned Poké Ball icon. As another example, in some implementations, image classifier 314 is a machine learning model trained with different card types (e.g., a neural network trained using card representations as input learning data and associated card types as target learning data). The trained image classifier 314 can then receive representations of unknown cards and can identify the type of that unknown card. In some implementations, histograms of oriented gradients (HoG) can be used to extract features from card representations, and machine learning models (e.g., multi-class SVMs or random forests) can be used to classify cards.
[0058] In some implementations, a histogram of oriented gradients (HoG) can be used to extract features (e.g., to extract feature set 148 from card 146). Figure 4 The illustration shows an example of using HoG to perform feature extraction according to an embodiment. Image 402 is an image of the back of a Pokémon card, and representation 404 represents the result of applying HoG to image 402. For example, representation 404 could represent the intensity of each gradient from each cell of image 402.
[0059] Figure 5 The illustration depicts an example of performing anomaly detection while performing feature extraction, according to an embodiment. At 502, (e.g., from the realism computing device 140) Figure 1 The user computing device 100 receives an image of the card (e.g., Figure 1At 504, preprocessing is performed using the card image 502. Preprocessing may include, for example, noise removal, contrast modification, background removal or modification, determining whether the quality of the card image 502 is within a predetermined acceptable range, and / or similar processing. Preprocessing may, for example, modify the card image 502 to a standard format, which may allow for a more accurate determination of the authenticity of the card represented in the card image 502. At 506, feature extraction is performed based on the preprocessed card image generated at 504. Feature extraction at 506 may include, for example, performing LBP, LTP, LPQ, LDTP, HoG, Gabor filters, LPC, deep learning, LBPH, and / or similar techniques. At 508, the output from 506 is input into an anomaly detection model (e.g., ...). Figure 1 In a trained ML model 150, the anomaly detection model determines whether the card represented by the card image 502 is real or includes anomalies indicating that the card is counterfeit. The anomaly detection model may include, for example, a class of SVMs, isolated forests, local anomaly factors, density-based models, statistical models, and / or similar models.
[0060] Figure 6 The illustration depicts an example of performing anomaly detection without feature extraction, according to an embodiment. At 602, (e.g., from the realism computing device 140) Figure 1 The user computing device 100 receives an image of the card (e.g., Figure 1 Card 106). At 604, preprocessing is performed using the card image. Preprocessing may include, for example, noise removal, contrast modification, background removal or modification, determining whether the quality of card image 602 is within a predetermined acceptable range, and / or the like. Preprocessing may, for example, modify card image 602 to a standard format, which may allow for a more accurate determination of the authenticity of the card represented in card image 602. At 606, the output from 604 is input to an anomaly detection model (e.g., Figure 1 In a trained ML model 150, the anomaly detection model determines whether the card represented by card image 602 is real or includes anomalies indicating that the card is counterfeit. The anomaly detection model may include, for example, a deep autoencoder model, a deep nearest neighbor anomaly detection model, a SPADE model, a PaDiM model, a PatchCore model, and / or similar models. In some implementations, 606 occurs in response to 604 without performing feature extraction; in other words, no feature extraction is performed between 604 and 606.
[0061] Although discussed in the context of cards Figures 1-6However, the techniques described herein can be applied to any type of object whose authenticity needs to be determined based on its pattern or material, such as coins, dolls, books, currency, hardware, clothing, video game cassettes, watches, shoes, paintings, photographs, and / or the like. For example, a predetermined section of a type of comic book can be designed and / or manufactured to be generic in authentic comic books of that type. About Figures 1-6 The systems, apparatus, and methods shown and described can extract features from predetermined portions of a comic book and identify whether the comic book is real or not. Similarly, predetermined portions of currency can be designed and / or manufactured to be universally applicable in real currency of that type, and regarding Figures 1-6 The systems, apparatus, and methods shown and described can extract features from predetermined portions of currency and identify whether the currency is genuine or not. In some implementations, regarding Figure 6 The described systems and methods can also be used to identify the type of item (e.g., type of comic book, type of currency, etc.). In some implementations, the techniques described herein analyze the characteristics of the pattern / material of a collectible (e.g., printed, embossed, manufactured, etc.) to determine the authenticity of the collectible. Therefore, in some implementations, the techniques described herein may not be applicable to collectibles where analysis of the pattern / material of the collectible does not reveal its authenticity.
[0062] Figure 7 A flowchart of a method 700 for training an ML model, according to an embodiment, to generate outputs indicating the authenticity of collectibles associated with images is shown. In some implementations, method 700 is stored in memory (e.g., Figure 1 The code in memory 144) and processed by the processor (e.g., Figure 1 The processor 142) runs and / or executes.
[0063] At 702, multiple images of image type (e.g., card type) are received. Figure 1 Card 146). Each image from the plurality of images includes a predetermined portion (e.g., back, corner portion, logo, etc.). At 704, for each image from the plurality of images, and in order to generate a plurality of feature sets associated with the plurality of images (e.g., Figure 1 The feature set 148 is used to perform feature extraction based on the predetermined portion of the image rather than the rest of the image to generate a feature set associated with the image. In some implementations, 704 occurs automatically in response to completion 702 (e.g., without human intervention). At 706, the multiple feature sets associated with the multiple images are used to train a machine learning (ML) model to generate (e.g., Figure 1The trained ML model is included in 150. In some implementations, 706 occurs automatically in response to completion of 704 (e.g., without human intervention). At 708, (e.g., from...) Figure 1 User computing device 100) receives images (e.g., Figure 1 The image (1) is not included in the plurality of images, (2) is of the image type, and (3) has the predetermined portion. At 710, feature extraction is performed based on the predetermined portion of the image rather than the rest of the image to generate a feature set associated with the image. In some implementations, 708 occurs automatically in response to completion of 708 (e.g., without human intervention). At 712, the feature set associated with the image is fed into a trained ML model to generate an output indicating the authenticity of the collectible associated with the image (e.g., the collectible represented by the image, the collectible being the subject of the image, the collectible being included in the image). In some implementations, 712 occurs automatically in response to completion of 710 (e.g., without human intervention).
[0064] In some implementations of Method 700, the ML model is a type of Support Vector Machine (SVM).
[0065] In some implementations of method 700, performing feature extraction includes performing feature extraction via a directional gradient (HoG) histogram.
[0066] In some implementations of method 700, performing feature extraction includes performing feature extraction via at least one of the following: Local Binary Pattern (LBP), Local Triple Pattern (LTP), Local Phase Quantization (LPQ), Local Derivative Triple Pattern (LDTP), Gabor filter, Local Phase Consistency (LPC), deep learning, or Local Binary Pattern Histogram (LBPH).
[0067] In some implementations of method 700, the plurality of images are a first plurality of images, the image type is a first image type, the trained ML model is a first trained ML model, the ML model is a first ML model, the images are first images, and method 700 further includes receiving a second plurality of images having a second image type different from the first image type. Each image from the second plurality of images has a predetermined portion. Some implementations of method 400 further include performing feature extraction based on the predetermined portion of the image rather than the remainder of the image for each image from the second plurality of images and in order to generate a plurality of feature sets associated with the second plurality of images, to generate a feature set associated with the image. Some implementations of method 700 further include using the plurality of feature sets associated with the second plurality of images to train a second ML model to generate a second trained ML model different from the first trained ML model (e.g., included in trained ML model 150). Some implementations of method 700 further include receiving a second image as a second image type and having a predetermined portion. Some implementations of method 400 further include performing feature extraction based on the predetermined portion of the second image rather than the remainder of the second image to generate a feature set associated with the second image. Some implementations of method 700 also include inputting a feature set associated with the second image into a second trained ML model instead of a first trained ML model to generate an output indicating the authenticity of the collection associated with the second image.
[0068] In some implementations of method 700, the multiple images include images of real collectibles and images of forged collectibles, and the ML model is trained via supervised learning to generate a trained ML model.
[0069] In some implementations of method 700, the plurality of images includes images of genuine collectibles but excludes images of counterfeit collectibles, and the ML model is trained via unsupervised learning to generate a trained ML model.
[0070] In some implementations of Method 700, the ML model includes at least one of the following: isolated forest model, local anomaly factor model, autoencoder, density-based model, or statistics-based model.
[0071] In some implementations of Method 700, the ML model includes at least one of the following: a deep nearest neighbor anomaly detection model, a semantic pyramid anomaly detection (SPADE) model, a patch distribution modeling framework (PaDiM) model for anomaly detection and localization, an autoencoder, or a full recall (PatchCore) model in industrial anomaly detection.
[0072] Some implementations of method 700 also include confirming that the quality associated with the image is within a predetermined acceptable quality range before performing feature extraction at 710 or inputting at least one of the feature sets at 712. The predetermined acceptable quality range can be determined based on a trained ML model.
[0073] In some implementations of method 700, the image is a first image and method 700 further includes receiving a second image, which (1) is not included in a plurality of images, (2) is of the image type, and (3) has a predetermined portion. Some implementations of method 700 further include determining that the quality associated with the second image is outside a predetermined acceptable quality range associated with the trained ML model. Some implementations of method 700 further include avoiding at least one of performing feature extraction based on the second image or inputting features associated with the second image into the trained ML model in response to determining that the quality associated with the second image is outside the predetermined acceptable quality range.
[0074] Figure 8 A flowchart illustrating a method 800 for determining whether a collection associated with different images of different image types is genuine or counterfeit, according to an embodiment, is shown. In some implementations, method 800 is stored in memory (e.g., Figure 1 The code in memory 144) and processed by the processor (e.g., Figure 1 The processor 142) runs and / or executes.
[0075] At 802, multiple images of multiple image types are received (e.g., Figure 3 Cards 302, 304, 306, 308, 310, and 312. At 804, for each image type from these multiple image types and in order to generate multiple image subsets, an image classifier (e.g., ...) is used. Figure 1 Image classifier 152 and / or Figure 3 An image classifier 314 identifies a subset of images from the plurality of images that are of the image type. In some implementations, 804 occurs automatically in response to completion of 802 (e.g., without human intervention). At 806, for each image subset from the plurality of image subsets, feature extraction is performed on each image from that image subset to generate features associated with that image. In some implementations, 806 occurs automatically in response to completion of 804 (e.g., without human intervention). At 808, for each image subset from the plurality of image subsets, the features associated with each image from that image subset are input into a trained ML model from a plurality of trained ML models (e.g., ...). Figure 1 150 and / or trained ML models Figure 3Models 316, 318, 320, 322, 324, and 326 are used to generate output indicating whether the collectible associated with the image is genuine or a forgery. Each of the multiple trained ML models is associated with an image type from the multiple image types, which are different for the remaining trained ML models. In some implementations, step 808 occurs automatically in response to step 806 (e.g., without human intervention).
[0076] Figure 9 A flowchart of a method 900 for training a machine learning model using images of multiple real cards, each of which is a card type, is shown according to an embodiment. In some implementations, method 900 is stored in memory (e.g., Figure 1 The code in memory 144) and processed by the processor (e.g., Figure 1 The processor 142) runs and / or executes.
[0077] At position 902, multiple cards of card type are received (e.g., ...). Figure 1 The representation of card 146). Each card from the plurality of cards has a predetermined portion associated with that card type. At 904, for each card from the plurality of cards and in order to generate a plurality of feature sets associated with the plurality of cards (e.g., Figure 1 The feature set 148 is used to perform Local Binary Pattern (LBP) feature extraction based on a predetermined portion of the card rather than the rest of the card to generate a feature set associated with the card. In some implementations, 904 occurs automatically in response to completion of 902 (e.g., without human intervention). At 906, the multiple feature sets associated with the multiple cards are used to train an ML model to generate a trained ML model (e.g., included in trained ML model 150). In some implementations, 906 occurs automatically in response to completion of 904 (e.g., without human intervention).
[0078] In some implementations of method 900, the multiple cards include real cards and counterfeit cards, and the training of the ML model to generate the trained ML model is accomplished through supervised learning.
[0079] In some implementations of method 900, the multiple cards include real cards instead of counterfeit cards, and the training of the ML model to generate the trained ML model is accomplished via unsupervised learning.
[0080] Figure 10A flowchart of a method 1000, according to an embodiment, for determining whether a collection associated with different images of different image types is genuine or counterfeit without performing feature extraction, is shown. In some implementations, method 1000 is stored in memory (e.g., ...). Figure 1 The code in memory 144) and processed by the processor (e.g., Figure 1 The processor 142) runs and / or executes.
[0081] At point 1002, multiple collections with multiple collection types are received (e.g., Figure 3 Multiple images of cards 302, 304, 306, 308, 310, and 312. At 1004, for each of the multiple collection types and in order to generate multiple image subsets, an image classifier (e.g., ...) is used. Figure 1 Image classifier 152 and / or Figure 3 The image classifier 314 identifies a subset of images from the plurality of images, the subset representing collectibles from the plurality of collections that are of that collectible type. In some implementations, 1004 occurs automatically in response to completion 1002 (e.g., without human intervention). At 1006, for each subset of images from the plurality of image subsets, the representation of each image from that subset is input into multiple trained ML models (e.g., [model name missing]) without performing feature extraction on that image. Figure 1 The trained ML models (150) generate output indicating whether the collection represented by the image is real or fake. Each trained ML model is associated with a collection type from the plurality of collection types, which is distinct from the remaining trained ML models. The plurality of trained ML models includes at least one of a deep autoencoder model, a deep nearest neighbor anomaly detection model, a semantic pyramid anomaly detection (SPADE) model, a patch distribution modeling framework for anomaly detection and segmentation (PaDiM) model, or an anomaly detection (PatchCore) model using patch-level features and core set selection.
[0082] In some implementations of method 1000, at least one ML model from the plurality of trained ML models is trained by: (1) using a training dataset that includes images of real collectibles and images of fake collectibles, and (2) via supervised learning.
[0083] In some implementations of Method 1000, at least one ML model from the plurality of trained ML models is trained using the following: (1) a training dataset that includes images of real collectibles but excludes images of fake collectibles, and (2) unsupervised learning.
[0084] In some embodiments of method 1000, at least one ML model from the plurality of trained ML models is trained using a training dataset comprising non-synthetic images of cards and synthetic images of cards. The real images of the cards can be augmented to generate synthetic images of the cards. In some implementations, augmenting the non-synthetic images of the cards to generate synthetic images of the cards includes augmenting a predetermined portion of the non-synthetic image rather than the rest of the non-synthetic image.
[0085] The combination of the foregoing concepts and the additional concepts discussed herein (provided that these concepts do not contradict each other) is considered part of the subject matter disclosed herein. Terms explicitly used herein may also appear in any disclosure incorporated by reference, and these terms should be given the meaning most consistent with the specific concepts disclosed herein.
[0086] Those skilled in the art will understand that the accompanying drawings are primarily for illustrative purposes and are not intended to limit the scope of the subject matter described herein. The drawings are not necessarily drawn to scale; in some instances, various aspects of the subject matter disclosed herein may be shown as enlarged or magnified in the drawings to facilitate understanding of different features. In the drawings, similar reference numerals generally refer to similar features (e.g., functionally similar and / or structurally similar elements).
[0087] To address various problems and advance the technology, this application (including the cover page, title, heading, background art, summary of the invention, description of drawings, detailed description, embodiments, abstract, drawings, appendices, etc.) illustrates various embodiments in which they can be practiced through description. Therefore, all examples and / or embodiments are considered to be non-limiting throughout this disclosure.
[0088] It should be understood that the logical and / or topological structure of any program component (component set), other components and / or any presented feature set described herein and / or in the accompanying drawings is not limited to a fixed order of operation and / or arrangement, but rather, any disclosed order is exemplary and all equivalents, regardless of the order, are within the scope of this disclosure.
[0089] Various concepts can be embodied as one or more methods, of which at least one example has been provided. Actions performed as part of a method can be ordered in any suitable manner. Therefore, embodiments can be constructed in which actions are performed in an order different from the illustrated order, which may include performing some actions simultaneously, even if they are shown as sequential actions in the illustrative embodiments. In other words, it is to be understood that these features are not necessarily limited to a particular order of execution, but rather, any number of threads, processes, services, servers, and / or the like can be performed serially, asynchronously, concurrently, in parallel, simultaneously, synchronously, and / or similarly in a manner consistent with this disclosure. Therefore, some of these features may be contradictory, i.e., they cannot both exist in a single embodiment. Similarly, some features may apply to one aspect of the innovation but not to others.
[0090] The indefinite articles “a” and “an”, as used herein in the specification and examples, shall be understood to mean “at least one” unless clearly indicated otherwise.
[0091] The phrase “and / or,” as used herein in the specification and embodiments, should be understood to mean “either one or both” of the elements thus linked, i.e., elements that exist in conjunction in some cases and disjunctive in others. Multiple elements listed with “and / or” should be interpreted in the same way, i.e., “one or more” of the elements thus linked. Other elements may exist besides those specifically identified by the “and / or” clause, whether or not they are related to the specifically identified element. Thus, as a non-limiting example, the reference to “A and / or B,” when used with open-ended language such as “including,” can refer to only A (optionally including elements other than B) in one embodiment; only B (optionally including elements other than A) in another embodiment; both A and B (optionally including other elements) in yet another embodiment; and so on.
[0092] As used herein in the specification and embodiments, “or” should be understood to have the same meaning as “and / or” as defined above. For example, when separating items in a list, “or” or “and / or” should be interpreted as inclusive, that is, including at least one, but also including more than one number or element in the list, and optionally including additional unlisted items. Only terms that clearly indicate the opposite, such as “only one” or “exactly one,” or in embodiments, “consisting of…,” will refer to the inclusion of exactly one of the numbers or elements in the list. In general, the term “or” as used herein is interpreted as indicating an exclusive substitution (i.e., “one or the other but not both”) only when modified by exclusive terms such as “either,” “one of,” “only one,” or “exactly one”. “Substantially consisting of…”, when used in embodiments, should have the ordinary meaning as used in the field of patent law.
[0093] As used in this specification and embodiments, the phrase "at least one," referring to a list of one or more elements, should be understood to mean at least one element selected from any one or more elements in the list of elements, but does not necessarily include at least one of each and all specifically listed elements, nor excludes any combination of elements in the list. This definition also allows for the optional presence of other elements besides those specifically identified within the list of elements referred to by the phrase "at least one," regardless of whether they are related to the specifically identified elements. Thus, as a non-limiting example, "at least one of A and B" (or equivalently, "at least one of A or B," or equivalently, "at least one of A and / or B") may in one embodiment refer to at least one, optionally including more than one A, with no B present (optionally including elements other than B); in another embodiment, refer to at least one, optionally including more than one B, with no A present (optionally including elements other than A); in yet another embodiment, at least one, optionally including more than one A, and at least one, optionally including more than one B (optionally including other elements); and so on.
[0094] In the embodiments, and in the description above, all transitional phrases such as “comprising,” “including,” “carrying,” “having,” “containing,” “involving,” “holding,” “consisting of,” etc., should be understood as open-ended, that is, meaning including but not limited to. Only the transitional phrases “consisting of” and “substantially consisting of” are closed or semi-closed transitional phrases, respectively, as specified in Section 2111.03 of the U.S. Patent Examination Procedure Manual.
[0095] Some embodiments described herein relate to computer storage products having a non-transitory computer-readable medium (also referred to as a non-transitory processor-readable medium) on which instructions or computer code for performing various computer-implemented operations are stored. A computer-readable medium (or processor-readable medium) is non-transitory in the sense that it excludes the transient propagation signal itself (e.g., propagating electromagnetic waves carrying information on a transmission medium such as space or cable). The medium and computer code (also referred to as code) can be designed and constructed for a particular purpose or one or more. Examples of non-transitory computer-readable media include, but are not limited to, magnetic storage media such as hard disks, floppy disks, and magnetic tapes; optical storage media such as optical discs / digital video discs (CD / DVD), optical disc-read-only memories (CD-ROMs), and holographic devices; magneto-optical storage media such as optical discs; carrier signal processing modules; and hardware devices specifically configured to store and execute program code, such as application-specific integrated circuits (ASICs), programmable logic devices (PLDs), read-only memories (ROMs), and random access memory (RAM) devices. Other embodiments described herein relate to computer program products that may include, for example, the instructions and / or computer code discussed herein.
[0096] Some of the embodiments and / or methods described herein can be implemented in software (executing on hardware), hardware, or a combination of both. Hardware modules may include, for example, processors, field-programmable gate arrays (FPGAs), and / or application-specific integrated circuits (ASICs). Software modules (executing on hardware) may include instructions stored in memory operatively coupled to the processor and may be expressed in various software languages (e.g., computer code), including C, C++, Java, etc. TM Ruby, Visual Basic TM and / or other object-oriented, procedural, or other programming languages and development tools. Examples of computer code include, but are not limited to, microcode or microinstructions, machine instructions (such as machine instructions generated by a compiler), code for generating web services, and files containing higher-level instructions that are executed by a computer using an interpreter. For example, embodiments may be implemented using imperative programming languages (e.g., C, Fortran, etc.), functional programming languages (Haskell, Erlang, etc.), logic programming languages (e.g., Prolog), object-oriented programming languages (e.g., Java, C++, etc.), or other suitable programming languages and / or development tools. Additional examples of computer code include, but are not limited to, control signals, encryption code, and compression code.
[0097] The terms “instruction” and “code” should be interpreted broadly to include any type of computer-readable statement(s). For example, the terms “instruction” and “code” can refer to one or more programs, routines, subroutines, functions, procedures, etc. “Instruction” and “code” can comprise a single computer-readable statement or many computer-readable statements.
[0098] Although specific embodiments of this disclosure have been outlined, many alternatives, modifications, and variations will be apparent to those skilled in the art. Therefore, the embodiments set forth herein are intended to be illustrative and not restrictive.
Claims
1. A non-transitory processor-readable medium storing instructions that, when executed by a processor, cause the processor to: Receive multiple images of image type, each of the multiple images including a predetermined portion; For each of the plurality of images, in order to generate a plurality of feature sets associated with the plurality of images, feature extraction is performed based on the predetermined portion of the image rather than the rest of the image to generate the feature set associated with the image; The machine learning (ML) model is trained using the multiple feature sets associated with the multiple images to generate a trained ML model; Receive an image, wherein (1) the image is not included in the plurality of images, (2) the image type is, and (3) the image has the predetermined portion; Feature extraction is performed based on the predetermined portion of the image rather than the rest of the image to generate a feature set associated with the image; as well as The feature set associated with the image is input into the trained ML model to generate an output indicating the authenticity of the collection associated with the image.
2. The non-transitory processor-readable medium according to claim 1, wherein, The ML model mentioned is a type of support vector machine (SVM).
3. The non-transitory processor-readable medium according to claim 1, wherein, Performing the feature extraction includes performing feature extraction via a directional gradient histogram (HOG).
4. The non-transitory processor-readable medium according to claim 1, wherein, Performing the feature extraction includes performing feature extraction via at least one of the following: Local Binary Pattern (LBP), Local Triple Pattern (LTP), Local Phase Quantization (LPQ), Local Derivative Triple Pattern (LDTP), Gabor filter, or Local Phase Coherence (LPC).
5. The non-transitory processor-readable medium according to claim 1, wherein, The plurality of images are a first plurality of images, the image type is a first image type, the trained ML model is a first trained ML model, the ML model is a first ML model, the image is a first image, and the non-transitory processor-readable medium also stores instructions to cause the processor to: Receive a second plurality of images having a second image type different from the first image type, each of the second plurality of images having the predetermined portion; For each of the second plurality of images, in order to generate a plurality of feature sets associated with the second plurality of images, feature extraction is performed based on the predetermined portion of the image rather than the rest of the image to generate the feature set associated with the image; The second ML model is trained using the multiple feature sets associated with the second plurality of images to generate a second trained ML model that is different from the first trained ML model. Receive a second image as a second image type and having the predetermined portion; Feature extraction is performed based on the predetermined portion of the second image, rather than the rest of the second image, to generate a feature set associated with the second image; as well as The feature set associated with the second image is input into a second trained ML model instead of a first trained ML model to generate an output indicating the authenticity of the collection associated with the second image.
6. The non-transitory processor-readable medium according to claim 1, wherein, The multiple images include images of genuine collectibles and images of counterfeit collectibles, and The ML model is trained via supervised learning to generate the trained ML model.
7. The non-transitory processor-readable medium according to claim 1, wherein, The images include images of genuine collectibles but exclude images of counterfeit collectibles, and The ML model is trained via unsupervised learning to generate the trained ML model.
8. The non-transitory processor-readable medium according to claim 1, wherein, The ML model includes at least one of the following: isolated forest model, local anomaly factor model, autoencoder, density-based model, or statistics-based model.
9. The non-transitory processor-readable medium according to claim 1, wherein, The ML model includes at least one of the following: a deep nearest neighbor anomaly detection model, a semantic pyramid anomaly detection (SPADE) model, a patch distribution modeling framework (PaDiM) model for anomaly detection and localization, an autoencoder, or a complete recall (PatchCore) model for industrial anomaly detection.
10. The non-transitory processor-readable medium according to claim 1, wherein, The non-transitory processor-readable medium also stores instructions to cause the processor to: Before performing the feature extraction or inputting at least one of the feature set, it is confirmed that the quality associated with the image is within a predetermined acceptable quality range, which is determined based on the trained ML model.
11. The non-transitory processor-readable medium according to claim 1, wherein, The image is a first image, and the non-transitory processor-readable medium also stores instructions to cause the processor to: Receive a second image, wherein the second image (1) is not included in the plurality of images, (2) is of the image type, and (3) has the predetermined portion; The quality associated with the second image is determined to be outside a predetermined acceptable quality range associated with the trained ML model; as well as In response to determining that the quality associated with the second image is outside the predetermined acceptable quality range, at least one of performing feature extraction based on the second image or inputting the features associated with the second image into the trained ML model is avoided.
12. A method comprising: Receive multiple images with multiple image types; For each of the plurality of image types, in order to generate multiple image subsets, an image classifier is used to identify the subset of images from the plurality of images that are of that image type; as well as For each of the multiple image subsets: Feature extraction is performed on each image from this subset of images to generate features associated with that image, and Features associated with each image from the subset of images are input into a trained ML model from a plurality of trained ML models to generate output indicating whether the collection associated with the image is genuine or fake. Each of the plurality of trained ML models is associated with an image type from the plurality of image types, which are different for the remaining trained ML models from the plurality of trained ML models.
13. The method according to claim 12, wherein, For at least one image subset from the plurality of image subsets, performing the feature extraction on each image from the at least one image subset includes performing feature extraction based on a predetermined portion of the image rather than the rest of the image.
14. The method according to claim 12, wherein, For at least one image subset from the plurality of image subsets, performing the feature extraction on each image from the at least one image subset includes performing feature extraction based on substantially all parts of the image.
15. The method of claim 12, further comprising: For each of the multiple image subsets: Before performing feature extraction or inputting at least one of the features, it is confirmed that the quality associated with each image from the subset of images is within a predetermined acceptable quality range, which (1) comes from a plurality of predetermined acceptable quality ranges associated with the plurality of trained ML models and (2) is associated with the trained ML models.
16. An apparatus comprising: Memory; as well as A processor operatively coupled to the memory, the processor being configured to: Receive multiple images of multiple collectibles with multiple collectible types; For each of the plurality of collectible types, in order to generate a plurality of image subsets, an image classifier is used to identify the image subsets from the plurality of images, the image subsets representing collectibles of that collectible type from the plurality of collectibles; as well as For each of the plurality of image subsets The representation of each image from the subset of images is input into a trained ML model from a plurality of trained ML models without performing feature extraction on the image, to generate an output indicating whether the collection represented by the image is real or fake. Each of the plurality of trained ML models is associated with a collection type from a plurality of collection types, which are different for the remaining trained ML models from the plurality of trained ML models. The plurality of trained ML models include at least one of the following: a deep autoencoder model, a deep nearest neighbor anomaly detection model, a semantic pyramid anomaly detection (SPADE) model, a patch distribution modeling framework for anomaly detection and segmentation (PaDiM) model, or an anomaly detection (PatchCore) model using patch-level features and core set selection.
17. The apparatus according to claim 16, wherein, At least one ML model from the plurality of trained ML models is trained by: (1) using a training dataset that includes images of real collectibles and images of fake collectibles, and (2) through supervised learning.
18. The apparatus according to claim 16, wherein, At least one ML model from the plurality of trained ML models is trained by using: (1) a training dataset that includes images of real collectibles but excludes images of fake collectibles, and (2) unsupervised learning.
19. The apparatus according to claim 16, wherein, At least one ML model from the plurality of trained ML models is trained using a training dataset that includes non-synthetic images of cards and synthetic images of cards, wherein the non-synthetic images of cards are augmented to generate synthetic images of cards.
20. The apparatus according to claim 19, wherein, Enhancing the non-synthetic image of the card to generate a synthetic image of the card involves enhancing a predetermined portion of the non-synthetic image rather than the rest of the non-synthetic image.