Abstract: Embodiments provide methods and systems for detecting counterfeit payment cards. Method performed by server system includes receiving request for determining authenticity of payment card from payment terminal. The request includes image of payment card associated with cardholder. Method includes extracting combination of local texture features associated with payment card by processing image based on image processing models and generating numerical representation of image upon masking predetermined spatial portions in image. Method includes determining first validation score corresponding to payment card based on classification model and local texture features and determining second validation score corresponding to payment card based on autoencoder and numerical representation. Autoencoder is trained based on loss function sensitive to detect threshold changes in global features of payment card. Method includes identifying whether payment card is authentic or counterfeit based on first and second validation scores and transmitting authentication message to payment terminal based on identifying step.
Claims:CLAIMS
We claim:
1. A computer-implemented method, comprising:
receiving, by a server system, a request for determining authenticity of a payment card from a payment terminal, the request comprising an image of the payment card associated with a cardholder;
extracting, by the server system, a combination of local texture features associated with the payment card by processing the image based on a plurality of image processing models;
generating, by the server system, a numerical representation of the image upon masking predetermined spatial portions in the image;
determining, by the server system, a first validation score corresponding to the payment card based, at least in part, on a classification model and the local texture features;
determining, by the server system, a second validation score corresponding to the payment card based, at least in part, on an autoencoder and the numerical representation of the masked image, the autoencoder trained based on a loss function sensitive to detect threshold changes in global features of the payment card;
identifying, by the server system, whether the payment card is authentic or counterfeit based, at least in part, on a combination of the first validation score and the second validation score; and
transmitting, by the server system, an authentication message to the payment terminal based, at least in part, on the identifying step.
2. The computer-implemented method as claimed in claim 1, wherein the local texture features correspond to one or more of:
a plurality of number sequences,
a chip or QR-code embedded in the payment card,
textual data; and
a logo image.
3. The computer implemented method as claimed in claim 2, further comprising:
determining, by the server system, a first set of potential text bounding boxes by processing the image based, at least in part, on a pre-trained efficient and accurate scene text (EAST) model;
determining, by the server system, a second set of potential text bounding boxes by processing the image based, at least in part, on a morphology based box generation model; and
generating, by the server system, an ensemble output of the first and second sets of potential text bounding boxes to detect the textual data present in the payment card.
4. The computer-implemented method as claimed in claim 1, wherein the classification model comprises a fully-connected layer based neural network architecture.
5. The computer-implemented method as claimed in claim 4, wherein the classification model is trained based, at least in part, on training data, the training data comprising a plurality of authentic payment card samples stored at a database and negative payment card samples generated by perturbing local texture features corresponding to a set of authentic payment card samples from the plurality of authentic payment card samples.
6. The computer-implemented method as claimed in claim 1, wherein the global features comprise one or more of:
color, and
component placement in the payment card.
7. The computer-implemented method as claimed in claim 6, wherein the autoencoder is a masked convolution neural network (CNN) autoencoder trained based on a plurality of authentic payment card samples, and wherein the masked CNN autoencoder is configured to capture the global features of the payment card.
8. The computer-implemented method as claimed in claim 7, wherein the loss function is defined as a difference of a first term and a second term, the first term correspond to a reconstruction error associated with an authentic payment card sample, and the second term correspond to a reconstruction error associated with an altered image of the authentic payment card sample.
9. The computer-implemented method as claimed in claim 1, wherein the server system is a payment server associated with a payment network.
10. A server system configured to perform the computer-implemented method as claimed in any of the claims 1-9.
, Description:
FORM 2
THE PATENTS ACT 1970
(39 of 1970)
&
The Patent Rules 2003
COMPLETE SPECIFICATION
(refer section 10 & rule 13)
TITLE OF THE INVENTION:
ARTIFICIAL INTELLIGENCE BASED METHODS AND SYSTEMS FOR DETECTING COUNTERFEIT PAYMENT CARDS
APPLICANT(S):
Name:
Nationality:
Address:
MASTERCARD INTERNATIONAL INCORPORATED
United States of America
2000 Purchase Street, Purchase, NY 10577, United States of America
PREAMBLE TO THE DESCRIPTION
The following specification particularly describes the invention and the manner in which it is to be performed.
DESCRIPTION
(See next page)
ARTIFICIAL INTELLIGENCE BASED METHODS AND SYSTEMS FOR DETECTING COUNTERFEIT PAYMENT CARDS
TECHNICAL FIELD
The present disclosure relates to artificial intelligence processing systems and, more particularly to, electronic methods and complex processing systems for detecting fake or counterfeit payment cards with minor card design variations at payment terminals.
BACKGROUND
Payment card skimming is a practice wherein a fraudster steals the payment card details of a customer or the cardholder at the merchant’s point of sale (POS) terminal. The stolen payment card details are often used to create counterfeit or fake debit/credit cards which are then used at other POS terminals or billing centers for fraudulent transactions. The fraudsters use these counterfeit or fake cards at various other point of sale to debit money present in the cardholders account. The merchants are required to cover the cost of the fraudulent transactions being made using the counterfeit cards of the customer. The usage of counterfeit or fake cards affects the brand’s trust and the brand’s reputation of card issuer.
In existing systems, to detect the payment card type and the other generic information of the payment card, the most commonly used approach is to read the personal data of the cardholder such as Primary Account Number (PAN) and find the Bank Identification Number (BIN) for the payment card, and match the BIN with card issuer and relevant card program. The personal data and the payment card information provided by the fraudster may have been acquired illicitly. A minor alteration in the design of the payment card is not detected by the merchant or the bank. Neither the merchant nor the billing center is able to reliably verify whether the individual providing the personal data and the payment card information is the true authorized cardholder of the payment card. Additionally, neither the merchant nor the billing center is able to reliably verify that the individual providing the payment card details has physical possession of the actual payment card, or assess whether such payment card is authentic or a counterfeit payment card.
Thus, there exists a technological need for technical solutions for detecting counterfeit payment cards at payment terminals to prevent fraudulent transactions.
SUMMARY
Various embodiments of the present disclosure provide systems, methods, electronic devices and computer program products for counterfeit payment card detection.
In an embodiment, a computer-implemented method is disclosed. The computer-implemented method performed by a server system includes receiving a request for determining authenticity of a payment card from a payment terminal. The request includes an image of the payment card associated with a cardholder. The method includes extracting a combination of local texture features associated with the payment card by processing the image based on a plurality of image processing models and generating a numerical representation of the image upon masking predetermined spatial portions in the image. The method includes determining a first validation score corresponding to the payment card based, at least in part, on a classification model and the local texture features and determining a second validation score corresponding to the payment card based, at least in part, on an autoencoder and the numerical representation of the masked image. The autoencoder is trained based on a loss function sensitive to detect threshold changes in global features of the payment card. The method further includes identifying whether the payment card is authentic or counterfeit based, at least in part, on a combination of the first validation score and the second validation score and transmitting an authentication message to the payment terminal based, at least in part, on the identifying step.
BRIEF DESCRIPTION OF THE FIGURES
For a more complete understanding of example embodiments of the present technology, reference is now made to the following descriptions taken in connection with the accompanying drawings in which:
FIG. 1 is an example representation of an environment, related to at least some example embodiments of the present disclosure;
FIG. 2 is a simplified block diagram of a server system, in accordance with one embodiment of the present disclosure;
FIG. 3A is a process flow for training a classification model, in accordance with an embodiment of the present disclosure;
FIG. 3B is a process flow for training an autoencoder, in accordance with an embodiment of the present disclosure;
FIG. 4 is a sequential flow diagram for determining authenticity of payment card of a cardholder, in accordance with an embodiment of the present disclosure;
FIG. 5 is an example representation of a process for extracting longer textual regions from an image of a payment card, in accordance with an embodiment of the present disclosure;
FIG. 6 shows a schematic block diagram representation of a classification model, in accordance with an embodiment of the present disclosure;
FIG. 7 shows a schematic block diagram representation of a masked CNN autoencoder, in accordance with an embodiment of the present disclosure;
FIG. 8 is a flow diagram of a computer-implemented method for detecting counterfeit payment cards at a payment terminal, in accordance with one embodiment of the present disclosure; and
FIG. 9 is a simplified block diagram of a payment server, in accordance with an embodiment of the present disclosure.
The drawings referred to in this description are not to be understood as being drawn to scale except if specifically noted, and such drawings are only exemplary in nature.
DETAILED DESCRIPTION
In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present disclosure. It will be apparent, however, to one skilled in the art that the present disclosure can be practiced without these specific details.
Reference in this specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present disclosure. The appearance of the phrase “in an embodiment” in various places in the specification is not necessarily all referring to the same embodiment, nor are separate or alternative embodiments mutually exclusive of other embodiments. Moreover, various features are described which may be exhibited by some embodiments and not by others. Similarly, various requirements are described which may be requirements for some embodiments but not for other embodiments.
Moreover, although the following description contains many specifics for the purposes of illustration, anyone skilled in the art will appreciate that many variations and/or alterations to said details are within the scope of the present disclosure. Similarly, although many of the features of the present disclosure are described in terms of each other, or in conjunction with each other, one skilled in the art will appreciate that many of these features can be provided independently of other features. Accordingly, this description of the present disclosure is set forth without any loss of generality to, and without imposing limitations upon, the present disclosure.
The term “issuer”, used throughout the description, refers to a financial institution normally called as an "issuer bank" or "issuing bank" in which an individual or an institution may have an account. The issuer also issues a payment card, such as a credit card or a debit card, etc. Further, the issuer may also facilitate online banking services such as electronic money transfer, bill payment, etc., to the account holders through a server system called as “issuer server” throughout the description.
Further, the term "acquirer" is an organization that transmits a purchase transaction to a payment card system for routing to the issuer of the payment card account in question. Typically, the acquirer has an agreement with merchants, wherein the acquirer receives authorization requests for purchase transactions from the merchants, and routes the authorization requests to the issuers of the payment cards being used for the purchase transactions. The terms “acquirer”, “acquiring bank”, “acquiring bank” or “acquirer bank” will be used interchangeably herein. Further, one or more server systems associated with the acquirer are referred to as "acquirer server" to carry out its functions.
The term "cardholder" is used throughout the description, and refer to a person who holds a credit or a debit card that will be used by a merchant to perform a card present payment transaction.
The term "payment network", used throughout the description, refers to a network or collection of systems used for the transfer of funds through the use of cash-substitutes. Payment networks may use a variety of different protocols and procedures in order to process the transfer of money for various types of transactions. Transactions that may be performed via a payment network may include product or service purchases, credit purchases, debit transactions, fund transfers, account withdrawals, etc. Payment networks may be configured to perform transactions via cash-substitutes, which may include payment cards, letters of credit, checks, financial accounts, etc. Examples of networks or systems configured to perform as payment networks include those operated by such as Mastercard®.
OVERVIEW
Various example embodiments of the present disclosure provide methods and systems for detecting counterfeit payment cards at payment terminals.
Existing solutions report frauds happening due to usage of counterfeit payment cards at payment terminals in very passive manner. Once fraudulent transactions are performed at the payment terminals, the existing solutions detect fraudulent transactions later after some days or months. Since, reactive strategies are no longer effective against fraudsters or emerging card skimming techniques. Too often, financial institutions learn about the frauds very late. It is no longer realistic to attempt to stop fraudsters by performing static card design validation after the fraudulent act. This prompts an immense loss in revenue and impacts customer experience negatively. Generally, in conventional systems, POS or ATM transaction is allowed to proceed based on entered card information obtained via network transmission.
In addition to the conventional steps, the present disclosure also checks the authenticity of the payment card whether the payment card is genuine or not using card features. Hence, the present disclosure aims to identify counterfeit payment cards before executing payment transaction requests at the payment terminals and provide real-time notification messages to the merchants for such identifications. During authentication, the system can extract local and global features of the payment card, input the extracted card features to trained neural network models and generate validation scores of the payment card, e.g., as a part of the security of transaction.
In various example embodiments, the present disclosure describes a server system for detecting counterfeit payment cards at payment terminals in real-time. The server system includes a processor and a memory. The server system is configured to receive a request for determining authenticity of a payment card from a payment terminal. The request includes an image of the payment card associated with a cardholder captured using a camera device associated with a payment terminal (e.g., POS terminal, ATM terminal, etc.). The card features of the payment card is divided into two category: (a) local texture features (e.g., a plurality of number sequences, a chip or QR-code embedded in the payment card, textual data, a logo image, corners, security feature, etc.) and (b) global or holistic features (e.g., color, component placement in the payment card, etc.)
The server system is configured to extract a combination of local texture features associated with the payment card by processing the image based on a plurality of image processing models. The plurality of image processing models may include, but is not limited to, edge detection model, text identifier model, etc.
To detect textual regions in the image, the server system is configured to utilize an ensemble of pre-trained efficient and accurate scene text (EAST) model and morphology based box generation model. Since, the EAST model is often not able to detect text bounding boxes for longer textual regions, therefor, a combination of both the models result in higher retrieval performance. The EAST model determines a first set of potential text bounding boxes by processing the image and the morphology based box generation model determines a second set of potential text bounding boxes by processing the image. Then, the server system is configured to generate an ensemble output of the first and second sets of potential text bounding boxes to detect the textual data present in the payment card.
In one embodiment, the server system is configured to determine a first validation score corresponding to the payment card based, at least in part, on a classification model and the local texture features. The classification model includes a fully-connected layer based neural network architecture. The classification model is trained based, at least in part, on training data and a triplet loss function. The training data includes a plurality of authentic payment card samples stored at a database and negative payment card samples generated by perturbing local texture features corresponding to a set of authentic payment card samples from the plurality of authentic payment card samples.
In one embodiment, the server system is configured to generate a numerical representation of the image upon masking predetermined spatial portions in the image. Thereafter, the server system is configured to determine a second validation score corresponding to the payment card based, at least in part, on an autoencoder and the numerical representation of the masked image. The autoencoder is a masked convolution neural network (CNN) autoencoder trained based on a plurality of authentic payment card samples and the masked CNN autoencoder is configured to capture the global features of the payment card. In one embodiment, the autoencoder is trained based on a loss function sensitive to detect threshold changes in the global features of the payment card. The loss function is defined as a difference of a first term and a second term. The first term corresponds to a reconstruction error associated with an authentic payment card sample and the second term corresponds to a reconstruction error associated with an altered image of the authentic payment card sample.
Based on a combination of the first validation score and second validation score, the server system is configured to identify whether the payment card is authentic or counterfeit. The server system is configured to send an authentication message to the payment terminal based, at least in part, on the identification. In one scenario, when the payment card is identified as counterfeit, the payment terminal may reject current payment transaction initiated by the payment card of the cardholder or may ask for additional authentication to the cardholder for facilitating payment transactions.
Various embodiments of the present disclosure offer multiple advantages and technical effects. For instance, the present disclosure allows payment terminals to extract local and global features of a physical payment card based on various image processing techniques and generates validation scores of the payment card using deep neural network models in near real-time which can be used to take pre-emptive actions. Further, utilizing an ensemble model of the EAST model and the morphology based box generation model enables detection of longer textual regions and provides more accurate detection of textual regions in the payment card. Furthermore, the present disclosure provides significantly more robust solutions for detecting fraudulent payment cards by determining the local texture features and the global features, simultaneously.
Additionally, to improve training of classification model, the system generates negative payment card samples by perturbing local texture features of the authentic payment card samples. Thus, the system supports training of the classification model in a semi-supervised way, where only genuine card images are required. A semi-supervised loss function (i.e., triplet loss function) is designed to maximally separate the real authentic payment card samples from the generated negative payment card samples during each training iteration. And the learned decision boundary in each step can be fed back to the system to generate further negative payment card samples closer to the decision boundary. Such feedback mechanism between semi-supervision and negative sample generation process is a unique feature of the present disclosure enabling smarter fake card detector system tuned to the limitation of only authentic payment card samples availability.
Various example embodiments of the present disclosure are described hereinafter with reference to FIGS. 1 to 9.
FIG. 1 illustrates an exemplary representation of an environment 100 related to at least some example embodiments of the present disclosure. Although the environment 100 is presented in one arrangement, other embodiments may include the parts of the environment 100 (or other parts) arranged otherwise depending on, for example, identifying counterfeit payment cards at payment terminals, etc. The environment 100 generally includes a server system 102, an acquirer server 104, an issuer server 106, a cardholder 108 associated with a payment card 110, a payment terminal 112, a payment network 114 including a payment server 116 each coupled to, and in communication with (and/or with access to) a network 118. The network 118 may include, without limitation, a light fidelity (Li-Fi) network, a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), a satellite network, the Internet, a fiber optic network, a coaxial cable network, an infrared (IR) network, a radio frequency (RF) network, a virtual network, and/or another suitable public and/or private network capable of supporting communication among two or more of the parts or users illustrated in FIG. 1, or any combination thereof.
Various entities in the environment 100 may connect to the network 118 in accordance with various wired and wireless communication protocols, such as Transmission Control Protocol and Internet Protocol (TCP/IP), User Datagram Protocol (UDP), 2nd Generation (2G), 3rd Generation (3G), 4th Generation (4G), 5th Generation (5G) communication protocols, Long Term Evolution (LTE) communication protocols, future communication protocols or any combination thereof. For example, the network 118 may include multiple different networks, such as a private network made accessible by the server system 102 and a public network (e.g., the Internet etc.) through which the server system 102, the acquirer server 104, the payment terminal 112, and the payment server 116 may communicate.
Examples of the payment card 110 may include, but are not limited to, a smartcard, a debit card, a credit card, etc. The cardholder such as the cardholder 108 may be any individual, representative of a corporate entity, non-profit organization, or any other person. The cardholder may have a payment account issued by corresponding issuing banks (associated with the issuer server 106) and may be provided the payment card with financial or other account information encoded onto the payment card such that the cardholder 108 may use the payment card to initiate and complete a transaction using a bank account at the issuing bank. In general, the payment card 110 includes both card design features and personal data. The card features may include background, card name, card issuer name, card type, contactless payment feature, card network, and embedded chip (i.e., integrated circuit). Some of the card features, such as card type, contactless payment feature, card network and embedded chip are generic across different payment card designs while other features, such as background, card name and issuer name are specific to a certain payment card design. The personal data encoded on the payment card 110 may include at least one of: primary account number (PAN), expiration date, service code, and cardholder name. The PAN refers to the entire string of numbers of an account and its associated payment card. The leading digits (usually the first six) of the PAN are referred to as the Bank Identification Number (BIN). The service code determines where and how the payment card can be used (e.g., as an ATM card only, domestic use only, international use, etc.). Typically, the payment card 110 is sized according to a standard, for example, standards promulgated by the International Organization for Standardization (ISO) and the International Electro-technical Commission (IEC). The personal data is normally disposed at predetermined spatial positions on the payment card 110.
In one embodiment, the issuer server 106 is a financial institution that manages accounts of multiple cardholders. Account details of the accounts established with the issuer bank are stored in cardholder profiles of the cardholders in a memory of the issuer server 106 or on a cloud server associated with the issuer server 106. The terms “issuer server”, “issuer”, or “issuing bank” will be used interchangeably herein.
The environment 100 is further depicted to include the payment terminal 112. The payment terminal 112 may include, but not limited to, a Point-of-Sale (POS) terminal, an ATM terminal, credit card terminal or any terminal equipped with a payment card reader for payment transactions. In an illustrative example scenario, a merchant 122 is associated with the POS terminal 120. Examples of the merchant 122 may include any retail shop, restaurant, supermarket or establishment, government and/or private agencies, or any such place equipped with POS terminals, such as the POS terminal 120 where customers visit for performing financial transaction in exchange for any goods and/or services or any transaction that requires financial transaction between customers and the merchant 122. In another example scenario, the cardholder 108 may swipe his/her payment card 110 at the ATM terminal 124 for withdrawing a payment amount.
In one embodiment, the acquirer server 104 is associated with a financial institution (e.g., a bank) that processes financial transactions. This can be an institution that facilitates the processing of payment transactions for physical stores, ATM terminals, merchants, or an institution that owns platforms that make online purchases or purchases made via software applications possible (e.g., shopping cart platform providers and in-app payment processing providers). The terms “acquirer”, “acquirer bank”, “acquiring bank” or “acquirer server” will be used interchangeably herein.
In one non-limiting example, to initiate a payment transaction, a cardholder 108 may visit a retail store operated by a merchant, select goods that he/she wishes to purchase, and present his/her payment card 110 to a merchant's Point Of Sale (POS) terminal 120. The POS terminal 120 reads the cardholder's payment card account number from the payment card, and then sends a payment authorization request to the acquirer server 104 associated with a financial institution with which the merchant has a relationship. The payment authorization request typically includes payment card account number, the amount of the transaction and other information, such as merchant identification and location. The payment authorization request message is routed via the payment network 114 to the issuer 106 that issued the cardholder's payment card. In addition to POS transactions, the acquirer 104 may process payment transactions associated with Automated Teller Machine (“ATM”) withdrawals and Card Not Present (CNP) transactions in a similar manner.
In one example, it may be possible that the payment card 110 can be replicated to create counterfeit or fake payment cards via card skimming techniques that can be used at other POS terminals for fraudulent transactions. In order to solve the above problem, the present disclosure seeks to identify whether payment cards used at the payment terminals are authentic or not.
In one embodiment, the server system 102 is configured to perform one or more of the operations described herein. In one example, the server system 102 coupled with a database is embodied in the payment network 114. In general, the server system 102 is configured to utilize image processing models along with artificial intelligence techniques to identify counterfeit or fake payment cards. The server system 102 is a separate part of the environment 100, and may operate apart from (but still in communication with, for example, via the network 118) the issuer server 106, the payment server 116, the acquirer server 104, and any third party external servers (to access data to perform the various operations described herein). However, in other embodiments, the server system 102 may actually be incorporated, in whole or in part, into one or more parts of the environment 100, for example, the payment server 116, the issuer server 106, or the acquirer server 104. In addition, the server system 102 should be understood to be embodied in at least one computing device in communication with the network 118, which may be specifically configured, via executable instructions, to perform steps as described herein, and/or embodied in at least one non-transitory computer-readable media.
In one embodiment, the database 126 is configured to store authentic payment card samples in indexed form that are received from a plurality of issuers.
In one embodiment, the payment network 114 may be used by the payment cards issuing authorities as a payment interchange network. The payment network 114 may include a plurality of payment servers such as, the payment server 116. Examples of payment interchange network include, but are not limited to, Mastercard® payment system interchange network. The Mastercard® payment system interchange network is a proprietary communications standard promulgated by Mastercard International Incorporated® for the exchange of financial transactions among a plurality of financial activities that are members of Mastercard International Incorporated®. (Mastercard is a registered trademark of Mastercard International Incorporated located in Purchase, N.Y.).
The number and arrangement of systems, devices, and/or networks shown in FIG. 1 are provided as an example. There may be additional systems, devices, and/or networks; fewer systems, devices, and/or networks; different systems, devices, and/or networks; and/or differently arranged systems, devices, and/or networks than those shown in FIG. 1. Furthermore, two or more systems or devices shown in FIG. 1 may be implemented within a single system or device, or a single system or device shown in FIG. 1 may be implemented as multiple, distributed systems or devices. Additionally, or alternatively, a set of systems (e.g., one or more systems) or a set of devices (e.g., one or more devices) of the environment 100 may perform one or more functions described as being performed by another set of systems or another set of devices of the environment 100.
Referring now to FIG. 2, a simplified block diagram of a server system 200 is shown, in accordance with an embodiment of the present disclosure. The server system 200 is similar to the server system 102. In some embodiments, the server system 200 is embodied as a cloud-based and/or SaaS-based (software as a service) architecture. In one embodiment, the server system 200 is a part of the payment network 114 or is integrated within the payment server 116. In another embodiment, the server system 200 is embodied within the issuer server 106. In yet another embodiment, the server system 200 is embodied within the acquirer server 104. The server system 200 is configured to detect fake payment cards at a POS terminal and send an authentication message to the POS terminal for additional authentication based upon detection.
In one embodiment, the server system 200 includes a computer system 202 and a database 204. The computer system 202 includes at least one processor 206 for executing instructions, a memory 208, and a communication interface 210. The one or more components of the computer system 202 communicate with each other via a bus 212.
In some embodiments, the database 204 is integrated within computer system 202. For example, the computer system 202 may include one or more hard disk drives as the database 204. A storage interface 214 is any component capable of providing the processor 206 with access to the database 204. The storage interface 214 may include, for example, an Advanced Technology Attachment (ATA) adapter, a Serial ATA (SATA) adapter, a Small Computer System Interface (SCSI) adapter, a RAID controller, a SAN adapter, a network adapter, and/or any component providing the processor 206 with access to the database 204. In one embodiment, the database 204 is configured to store metadata associated with authentic payment card data 228, a classification model 230, and a masked convolutional neural network (CNN) autoencoder 232.
The processor 206 includes suitable logic, circuitry, and/or interfaces to execute computer readable instructions for detecting counterfeit payment cards at payment terminals. Examples of the processor 206 include, but are not limited to, an application-specific integrated circuit (ASIC) processor, a reduced instruction set computing (RISC) processor, a complex instruction set computing (CISC) processor, a graphical processing unit (GPU) processor, a field-programmable gate array (FPGA), and the like. The memory 208 includes suitable logic, circuitry, and/or interfaces to store a set of computer readable instructions for performing operations. Examples of the memory 208 include a random-access memory (RAM), a read-only memory (ROM), a removable storage drive, a hard disk drive (HDD), and the like. It will be apparent to a person skilled in the art that the scope of the disclosure is not limited to realizing the memory 208 in the server system 200, as described herein. In another embodiment, the memory 208 may be realized in the form of a database server or a cloud storage working in conjunction with the server system 200, without departing from the scope of the present disclosure.
The processor 206 is operatively coupled to the communication interface 210 such that the processor 206 is capable of communicating with a remote device 216 such as, the payment terminal 112, or communicated with any entity connected to the network 118 (as shown in FIG. 1). It is noted that the server system 200 as illustrated and hereinafter described is merely illustrative of an apparatus that could benefit from embodiments of the present disclosure and, therefore, should not be taken to limit the scope of the present disclosure. It is noted that the server system 200 may include fewer or more components than those depicted in FIG. 2.
In one embodiment, the processor 206 includes a data pre-processing engine 218, a classifier 220, a neural network engine 222, a scoring engine 224, and a notification engine 226. It should be noted that the components, described herein, can be configured in a variety of ways, including electronic circuitries, digital arithmetic and logic blocks, and memory systems in combination with software, firmware, and embedded technologies.
The data pre-processing engine 218 includes suitable logic and/or interfaces for receiving an image of the payment card 110 associated with the cardholder 108 from the payment terminal 112. The image of the payment card 110 is captured using a camera device associated with the payment terminal 112. The data pre-processing engine 218 is configured to perform processing on the image to extract features. The features of the payment card can be divided into two parts: (1) local texture features and (2) global or holistic features. The local texture features may include, but not limited to, number sequences, a chip or a QR-code, textual data, a company logo, and corners. The global features may include, but are not limited to, color, component placements, etc. The number sequences may represent, but are not limited to, a payment card number, an expiry date, a security number, etc. The textual data may include, but are not limited to, a cardholder's name, a bank name, bank contact information, etc.
The data pre-processing engine 218 is configured to utilize a plurality of image processing models for extracting the local texture features of the payment card 110.
To extract number sequences from the image of the payment card 110, the data pre-processing engine 218 is configured to convert the image into a grayscale image and perform number extraction using one or more image processing models. In one embodiment, before converting the image into a grayscale image, the data pre-processing engine 218 performs a de-noising process to reduce the influence of noise in the image during the processing of the image. The noise in an image can include two types of noises: "Gaussian noise" and "salt-and-pepper noise." The Gaussian noise refers to a type of noise with a probability density function that complies with a Gaussian distribution (e.g., a normal distribution). The salt-and-pepper noise refers to black and white, bright and dark spot noise generated by an image sensor, a transmission channel, decoding processing, and the like. These two types of noise can be reduced or eliminated by methods such as low-pass filtering, median filtering, and the like.
To identify textual data in the image, the data pre-processing engine 218 is configured to utilize an ensemble result of two techniques: (a) a pre-trained EAST model and (b) Morphology based Box generation (MorBox) model. Based on the pre-processed image, the EAST model and the MorBox model are configured to output potential text bounding boxes containing textual information along with probability scores, respectively. The potential text bounding boxes obtained from the two techniques are fused by analyzing the overlap between the detected regions. If there is over 90% overlap between two regions (obtained from two techniques), the larger region is considered as the textual region, while discarding the other regions. The above is repeated for the different pairs of bounding box, resulting in a final set of textual regions. Detailed explanation of the pre-trained EAST model and the MorBox model is provided with reference to FIG. 5.
To determine corners of the image, the data pre-processing engine 218 uses an edge detection algorithm. The "edge" refers to a set of pixel points with surrounding pixel grays having step changes or roof changes, and the “edge detection” refers to extracting a set of the pixel points by using an algorithm based on the boundary of a main body object and a background in the image. Specifically, the data pre-processing engine 218 can perform a search-based edge detection algorithm by calculating the edge strength based on a first-order derivative expression. The data pre-processing engine 218 can also perform a zero-crossing based edge detection algorithm by searching for zero crossings in a second-order derivative expression.
Thus, the data pre-processing engine 218 is configured to generate a combination of the local texture features corresponding to the payment card 110 by concatenating a numerical representation of each local texture feature.
For facilitating extraction of the global features of the image, the data pre-processing engine 218 is configured to perform masking of predetermined spatial portions of the image showing specific card components (such as, card number, logo, security feature, etc.). These portions typically can be determined based on the card design standard. In other words, the data pre-processing engine 218 is configured to determine a numerical representation of the payment card upon masking the predetermined portions of the image.
During training phase, the data pre-processing engine 218 is configured to access images or card features of a plurality of genuine or authentic payment cards from authentic payment card data 228. The plurality of authentic payment cards represents a list of user authenticated cards. Each issuer includes a master or clean list of payment card characteristics for a respective payment card obtained during a secure activation process involving the true cardholder of the payment card. In one example, the clean list includes payment card characteristics of the respective payment card issued to the true cardholder, which are, in some implementations, obtained during a secure activation process involving the true cardholder. In other words, the data pre-processing engine 218 is configured to obtain card features of a known payment card sample set. Thereafter, the data pre-processing engine 218 is configured to extract local texture features of the authentic payment cards and provide the local texture features to a classification model. In general, the classification model needs to train based on both positive samples (e.g., authentic payment cards) and negative samples (e.g., fake payment cards). Since, the server system 200 does not have access to any fake payment cards (i.e., negative samples), therefore, the data pre-processing engine 218 is configured to generate the negative samples with the same level of precision and minute variations as would be observed in the actual fraud payment cards. Therefore, the data pre-processing engine 218 is configured to generate local texture features of the negative samples by perturbing the local texture features of the positive samples (e.g., authentic payment cards) with minor variations. For a given genuine (true) card, a feature vector of length 'n', random 'm' features are chosen (where m < n) and minute alternations are performed on those feature components to generate negative card samples. Mathematically, it can be represented as:
Negative Card Feature Sample= Authentic Card Feature Sample + Δ…..Eqn. (1)
Here, Δ represents a small value to cause feature alterations. Since the local texture features are precise measurements (such as the logo length, logo position etc.,), therefore, small amount of alterations in these measurements result in the generation of features that pertain to fraud cards.
The classifier 220 includes suitable logic and/or interfaces for classifying the payment card based on a combination of the local texture features of the payment card and a classification model. The classification model maybe an example of a fully-connected layer based classification model. The classification model is provided with concatenated features vectors of the local texture features of the payment card as an input and outputs a representation vector for the input local texture features. The representation vector is used to generate a first validation score representing authenticity of the payment card.
During the training phase, the classifier 220 is trained based, at least in part, on training data and a triplet loss function. The training data includes a plurality of authentic payment card samples stored at authentic payment card data 228 in the database 204 and negative payment card samples generated by perturbing local texture features corresponding to a set of authentic payment card samples from the plurality of authentic payment card samples. In one embodiment, the classifier 220 is trained based on a triplet loss function and Adam optimizer with an initial learning rate of 0.01. Detailed explanation of training process of the classification model is described with reference to the following figures.
In some embodiments, the classification model may be, but is not limited to, perceptron, Naive Bayes, decision tree, logistic regression, K-Nearest neighbor, artificial neural networks/deep learning, and support vector machine.
The neural network engine 222 includes suitable logic and/or interfaces for determining authenticity of the payment card 110 based on an autoencoder and the numerical representation of the masked image of the payment card 110. The neural network engine 222 is configured to capture the global features of the payment card 110 using the autoencoder by processing selective card components of the masked image. The neural network engine 222 is configured to take masked card image as input and output a reconstructed image along with a similarity metric between the reconstructed and input images.
In one example, the autoencoder is a masked CNN autoencoder 232 that learns the representation of the card image which captures the holistic features. The masked CNN autoencoder 232 is trained based on masked card images of authentic payment card samples.
In general, autoencoders are a type of deep neural network models that can be used to reduce data dimensionality. Deep neural network models are composed of many layers of neural units, and in autoencoders, every pair of adjacent layers forms a full bipartite graph of connectivity. The layers of an autoencoder collectively create an hourglass figure where the input layer is large and subsequent layer sizes reduce in size until the center-most layer is reached. From there until the output layer, layer sizes expand back to the original input size. In one embodiment, data passed into the masked CNN autoencoder 232 experiences a reduction in dimensionality. With each reduction, the masked convolutional autoencoder 232 summarizes the data as a set of global features. With each dimensionality reduction, the features become increasingly abstract. For example, originally the masked card image is a collection of pixels, which can first be summarized as a collection of edges, then as a collection of surfaces formed by those edges, then a collection of objects formed by those surfaces, etc. At the center-most layer, the dimensionality is at a minimum. From there, the masked CNN autoencoder 232 reconstructs the original data from the abstract features and compares the reconstruction result against the original data. Based on the error between the two, the neural network uses back-propagation to adjust its weights to minimize the reconstruction error (i.e., loss function). When the reconstruction error is low, one can be confident that the feature set found in the center-most layer of the convolutional autoencoder 232 still carries important information that accurately represents the original data despite the reduced dimensionality. The weights and the activation function parameters can be modified by the learning process.
In one embodiment, the masked CNN autoencoder 232 is trained based on a loss function that is sensitive to detect threshold changes in the global features of payment cards. The loss function can be defined as follows:
f= (‖x-├ x'┤‖- ‖x_alter- ├ x_alter'┤‖┤┤)….Eqn. (2)
wherein g= ‖x┤-├ x'┤‖ is the loss function corresponding to the authentic payment card samples and x represents the card image and x' represents the reconstructed image and p= ‖x_alter- ├ x_alter'┤‖┤ is the loss function corresponding to the altered samples and xalter and xalter’ represent the input and the reconstructed altered image, respectively.
In other words, the loss function is defined as a difference of a first term (i.e., 'g' function) and a second term (i.e., 'p' function). The first term corresponds to a reconstruction error associated with an authentic payment card sample and the second term corresponds to a reconstruction error associated with an altered image of the authentic payment card sample.
In one embodiment, in order to enhance detection of minor changes in payment card designs, the 'p' function of the loss function f may be maximized and the 'g' function of the loss function f may be minimized.
The scoring engine 224 includes suitable logic and/or interfaces for generating the first validation score and the second validation score based on outputs of the classification model 230 and the masked CNN autoencoder 232, respectively. The first validation score represents a comparison of the local texture features of the payment card to card features of the previously captured and authentic payment cards. The second validation score represents an anomaly of the payment card 110 with reference to global features of authentic payment cards.
Further, the scoring engine 224 is configured to aggregate the first and second validation scores to generate an aggregated authentication score. The scoring engine 224 is configured to determine whether the aggregated authentication score satisfies a threshold level indicative of an authentication score for an authentic payment card.
When the aggregated authentication score satisfies the threshold level, the notification engine 226 is configured to send an authentication message indicating that the payment card 110 is authentic, to the payment terminal 112 or the acquirer server 104. When the aggregated authentication score does not satisfy the threshold level, the notification engine 226 is configured to send an authentication message indicating that the payment card 110 is counterfeit, to the payment terminal 112 or the acquirer server 104.
FIG. 3A is a process flow 300 for training the classification model, in accordance with an embodiment of the present disclosure. As mentioned earlier, the classification model is configured to classify the payment card 110 into certain class based on the local texture features of the payment card 110.
At step 302, the server system 200 accesses a plurality of authentic payment card samples from the database 204. The database 204 stores images or card features of the plurality of authentic payment card samples.
At 304, the server system 200 extracts local texture features of the plurality of authentic payment card samples by processing the images or the card features of the plurality of authentic payment card samples (i.e., positive samples) based on a plurality of image processing models.
At 306, the server system 200 concatenates numerical representations of the local texture features for each authentic payment card sample.
At 308, the server system 200 creates negative samples (e.g., fraud payment cards) by generating local texture features of the negative samples based on perturbation of the local texture features of the positive samples (e.g., authentic payment cards) with minor variations.
At 310, the server system 200 trains fully-connected layer based neural network architecture based on a triplet loss function, positive and negative samples. The triplet loss function facilitates the training of the fully-connected layers in such a way that a distance between representations of the fraud payment cards (i.e., negative samples) and authentic payment cards (i.e., positive samples) is bigger than a distance between the authentic payment card and the positive sample representations.
FIG. 3B is a process flow 320 for training an autoencoder, in accordance with an embodiment of the present disclosure. As previously mentioned, the autoencoder is an example of the masked CNN autoencoder 232 that is trained based on global features of a plurality of authentic payment cards stored in the database 204.
At 320, the server system 200 accesses a plurality of authentic payment card samples from the database 204. The training is carried out based on the authentic payment card samples. Using card designs of the authenticated payment cards, the masked CNN autoencoder may be trained to determine minor alterations in the input.
At 324, the server system 200 performs masking process over predetermined portions of images of the authentic payment cards.
At 326, the server system 200 inputs a masked image associated with each authentic payment card sample into encoder layers of the masked CNN autoencoder 232.
At 328, the server system 200 compares reconstructed image and input image by calculating a loss value associated with each authentic payment card sample based on a loss function. The formula of the loss function is defined as Eqn. (2). The loss function is configured to detect threshold changes in global features of the payment cards.
At 330, the server system 200 updates neural network parameters (e.g., weights and biases) of the masked CNN autoencoder 232 based on the comparison. The same process steps 326-330 are repeated for next authentic payment card samples to facilitate training of the masked CNN autoencoder 232.
FIG. 4 is a sequential flow diagram 400 for determining authenticity of payment card of a cardholder, in accordance with an embodiment of the present disclosure. The sequence of operations of the sequence flow diagram 400 may not be necessarily executed in the same order as they are presented. Further, one or more operations may be grouped together and performed in form of a single step, or one operation may have several sub-steps that may be performed in parallel or in a sequential manner.
In one example, the cardholder 108 purchases a product from the merchant 122. To perform the purchase transaction, at 402, the cardholder 108 swipes his/her payment card 110 at the POS terminal 120 associated with the merchant 124.
At 404, the POS terminal 120 captures an image of the payment card 110 using a camera device installed within a surrounding of the POS terminal 120.
At 406, the POS terminal 120 sends a request to the server system 102 to check authenticity of the payment card 110. The request includes, but is not limited to, the image of the payment card 110.
At 408, the server system 102 extracts local texture features of the payment card 110 by processing the image based on a plurality of image processing models. The local texture features may include, but not limited to, number sequences, a chip or a QR-code embedded in the payment card, textual data, a company logo, corners, etc.
At 410, the server system 102 concatenates numerical representations of the local texture features of the payment card 110.
At 412, the server system 102 classifies the payment card based on the classification model 230 and the concatenated numerical representations of the local texture features.
At 414, the server system 102 generates a first validation score based upon the classification.
At 416, the server system 102 performs masking process over the image to mask predetermined spatial portions of the image of the payment card 110.
At 418, the server system 102 generates a second validation score based on the trained masked CNN autoencoder and the masked image of the payment card 110.
At 420, the server system 102 aggregates the first and second validation scores to generate an aggregate authentication score for the payment card 110.
At 422, the server system 102 transmits an authentication message to the POS terminal 120 based on the aggregated authentication score. When the aggregated authentication score satisfies the threshold level, the server system 102 sends an authentication message indicating that the payment card 110 is authentic, to the POS terminal 120. When the aggregated authentication score does not satisfy the threshold level, the server system 102 sends an authentication message indicating that the payment card 110 is counterfeit, to the POS terminal 120.
FIG. 5 is an example representation 500 of a process for extracting longer textual regions from the image of the payment card 110, in accordance with an embodiment of the present disclosure. As mentioned earlier, while extracting longer textual regions from the image of the payment card, the server system 200 is configured to utilize an ensemble of two techniques: (a) pre-trained EAST (Efficient and Accurate Scene Text) model and (b) Morphology based Box generation (MorBox) model, to extract textual data included in the image.
An image (see, 502) of the payment card 110 is provided as input to the EAST model 504 and the MorBox model 506. As is typical of a credit card, the payment card 110 may include a cardholder name (i.e., the true authorized user of the card), a credit card number, an expiry date, a card issuer name or logo (e.g., XYZ bank), one or more security features (e.g., a hologram), a logo for the card type (e.g., VISA or MasterCard), etc. Further, the payment card 110 may also include a Card Verification Value Code (CVV or CVC), which is typically printed or engraved one either the front or back surface of the card. Additionally, these features are typically arranged in a very precise way and have other precise characteristics associated with them, which can be checked to ensure that the payment card 110 is authentic.
The EAST model 504 is a deep learning-based neural network architecture used for identifying text in a given image. The EAST model 504 utilizes a convolutional neural network (CNN) as its backbone and consists of three stages: (i) feature extraction stage, (ii) feature fusion stage, and the (iii) prediction network. The EAST model 504 is trained with a combination of two loss functions: (i) balanced cross-entropy loss and the (ii) intersection over union (IOU) loss. In one embodiment, the image 502 is passed through a set of convolutional layers to get four levels of feature maps: f1, f2, f3, f4. Thereafter, the feature maps are un-pooled and concatenated. The concatenated feature maps are then passed through 1x1 convolutional layer followed by 3x3 convolutional layers. The features from different spatial resolutions are merged together to predict smaller word regions. The final feature volume will then be used to generate score and box predictions using the convolutional layer. At the end, the EAST model 504 outputs a first set of potential text bounding boxes (see, 508) containing textual information along with respective probability scores. In one embodiment, the first set of text potential bounding boxes of the EAST model 504 is filtered based on the probability score with respect to a pre-defined threshold value.
Since the EAST model 504 does not perform well with continuous long textual data, therefore, the MorBox model 506 is utilized in conjunction with the EAST model 504. The MorBox model 506 is configured to determine a list of textual regions in the image with larger or wider textual regions. Initially, the MorBox model 506 converts the image 502 into a grayscale image (e.g., a “graying method”). The color of each pixel in a color image is determined by three components: red (R); green (G); and blue (B) (together, “RGB”). The range for the value of each component is 0-255, for a total of 256 possible values for each component. Thus, each pixel point can have 16 million (e.g., 256*256*256) different values. The grayscale image is a particular image in which the three components R, G, and B are the same. To reduce the complexity of subsequent digital image processing, the color image can first be converted into a grayscale image. A variety of graying methods can be used. In one method, for each pixel point, the processor 206 is configured to determine the average value of the three components R, G, and B, and then assign the average value to the respective pixel point.
Upon converting the image 502 into grayscale image, the MorBox model 506 applies dilation and erosion morphological operations on the gray-scale image to obtain a gradient image, followed by Otsu’s thresholding and closing operation. In particular, the gradient image is then iterated through all the possible threshold values and the MorBox model 506 calculates a measure of spread for the pixel levels each side of the threshold using Otsu’s thresholding operation followed by closing operations. Further, a contour detection technique is applied onto the closed image to obtain a second set of potential text bounding boxes (see, 510) of the textual region of the payment card image.
Hence, after the application of the EAST model 504 and the MorBox model 506 over the payment card image 502, the two sets of potential bounding boxes are obtained. It should be noted that the EAST model 504 may not be able to detect the bounding boxes for longer textual regions of the payment card image 502, while achieving high retrieval rate for correct textual regions. And on the other hand, the MorBox model 506 retrieves longer textual regions. However, the MorBox model 506 might also result in higher false positives. Therefore, an ensemble (see, 512) of both model outputs 508 and 510 is calculated to generate an ensemble output (see, 514).
Thereafter, the processor 206 is configured to perform a tesseract based text extraction method 516 to extract the text from the text bounding boxes of the two models. The text bounding boxes are obtained by analyzing the overlap between the detected text bounding boxes of the two models. If there is over 90% overlap between the textual regions detected from both the two models, the larger textual region is considered as detected textual region, while discarding the other textual regions. The above method is repeated for the different pairs of text bounding boxes, resulting in a final set of textual regions.
Referring now to FIG. 6, a schematic block diagram representation of a classification model 600 is shown, in accordance with an embodiment of the present disclosure. As mentioned earlier, the classification model 600 is implemented based on a fully-connected layer based neural network architecture (see, 602).
During the training phase, the classification model 500 is trained based, at least in part, on training data and a triplet loss function. The training data includes a plurality of authentic payment card samples (see, 604 and 606) stored at authentic payment card data 228 in the database 204 and negative payment card samples (see, 608) generated by perturbing local texture features corresponding to a set of authentic payment card samples from the plurality of authentic payment card samples. The authentic payment card samples 604 and 606 represent concatenated numerical representations of the respective local texture features.
In one embodiment the negative payment card sample 608 is generated using perturbation based negative sample generation technique, where one or more local texture features of an authentic payment card image are minutely altered or changed to generate a counterfeit payment card. The minute alterations may at least one of: a change in component placement, a change in orientation of components or characters, a change in the font of the text, a change in logo dimension, a change in logo position, a change in shape of the corners, a change in the number sequence, etc. Thus, the negative payment card sample 608 is created at an image embedding stage by perturbation. The negative payment card sample 608 represents concatenated numerical representations of local texture features.
In one embodiment, the classification model 600 is further trained based on a triplet loss function and Adam optimizer with an initial learning rate of 0.01.
More illustratively, the fully connected (fc) layers based neural network architecture 602 includes convolutional neural network (e.g., 2x2 CNN filter) fully operating on a flattened input, wherein each input is connected to all neurons present in the fc layer based neural network architecture 602. The fc-layers 602 inputs concatenated feature vectors obtained from the plurality of image processing models capturing local texture features of an image of the payment card and classify to output a single dimension representation vector (see, 610) for the input local texture features. The single dimension representation vector is be used to generate a first validation score (see, 614) followed by triplet loss calculation (see, 612).
In one embodiment, the classification model 600 is trained by calculating a triplet loss corresponding to each payment card sample (e.g., 604, 606, and 608) in semi-supervised manner. In one example, triplet values for the triplet loss function includes (a) card features of an anchor payment card sample, (b) negative payment card sample, and (c) authentic payment card sample. In one embodiment, the triplet loss function utilizes one or more distance functions, where the single dimension representation vector corresponding to a payment card sample is represented as a point. The distance between points can be calculated based on, for example, the Euclidean distance, or the Manhattan distance, or the Minkowski distance, or any other form of self-defined distance. The value of k may be pre-set after taking into account factors, such as computational requirements for subsequent steps, noise effects, relative distinctiveness of the various designs (i.e., how discriminative one design is compared to others).
The triplet loss facilitates the training in such a way that the processor 206 is configured to condition on reducing a distance between the anchor payment card sample and authentic payment card sample and maximizing a distance between the anchor payment card sample and negative payment card sample. In the training phase, the triplet loss function is designed to maximally separate the authentic payment card sample samples from the generated negative payment card samples for every each iteration. A small perturbation value is chosen using which negative payment card sample is generated which would have been classified as authentic payment card sample by the classification model. Thereafter, the negative payment card sample is then used during training in the next iteration to build a more robust classification model. The learned decision boundary in each step can be fed back to the processor 206 to generate negative payment card samples closer to the decision boundary.
Referring now to FIG. 7, a simplified block diagram 700 of a masked CNN autoencoder is shown, in accordance with an embodiment of the present disclosure. In general, the masked CNN autoencoder 700 is a feed forward neural network in which the encoder layer and the decoder layer have the same number of neurons (the same number of units) and the middle layers (hidden layers) has less neuron (units) than the input layer (output layer). While two encoder layers and two decoder layers are depicted in figures, this is not meant to be limiting; in various embodiments, more or less encoder and/or decoder layers may be employed.
As shown in the FIG. 7, a pair of CNN encoder-decoder structure facilitates end-to-end mapping between masked image of a payment card and its reconstructed image. The masked CNN autoencoder 700 includes one or more encoder layers (see, 706a, 706b), a hidden layer 708, and one or more decoder layers (see, 710a, 710b).
In one embodiment, the processor 206 is configured to perform masking over an image 702 of a payment card 110 associated with a cardholder 108 to generate a masked card image 704. The masking process involves hiding the sensitive information like payment card number, payment card validity, payment card CVV, issuer logo etc. present on the payment card 110. The sensitive information present on the image 702 is masked in order to prevent the sensitive information from being stolen or misused.
In one embodiment, the masked CNN autoencoder 700 is configured to capture holistic features such as color and component placements of the masked image 704. The masked CNN autoencoder 700 is trained based on a plurality of authentic card samples stored in the database 126. Thus, during the training phase, the masked CNN autoencoder 700 learns global features associated with the plurality of authentic card samples. In other words, the masked CNN autoencoder 700 learns a representation learning of the input vector and tries to reconstruct the same input vector as an output. To the extent the reconstructed output from the masked CNN autoencoder 700 differs from the original input vector, various training techniques, (such as, back propagation, stochastic gradient descent, etc.,) may be employed to adjust various weights associated with the masked CNN autoencoder 700 to reduce the reconstruction error and train the masked CNN autoencoder 700.
At first, the masked image 704 is provided as input to a first encoder layer 706a. Each encoder layer from the one or more encoder layers reduces the dimensions of the masked image 704 by mapping the masked payment card image 704 onto a low-dimensional space. The dimensions of each encoder layers are different from the previous encoder layer (e.g., are not subsets of the dimensions from the previous encoder layer). In one embodiment, max-pooling method maybe applied after each convolution layer of the masked CNN autoencoder 700 for reducing the dimension of the extracted features. The last encoder layer 706b feeds an output into a hidden layer 708.
The one or more decoder layers 710a and 710b take an output of the hidden layer 708 as an input and try to reconstruct the masked image 704 at the last decoder layer 710b. In one embodiment the number of decoder layers 710 maybe equal to the number of encoder layers 706 with four transposed convolutional layers having 3*3 kernels and filter sizes of 32, 64, 64 & 128. Further after each layer, a rectified linear activation (ReLU) function is used. A reconstructed image 712 may then be compared with the original input masked payment card image 704 by calculating a reconstruction error (i.e., mean squared error ∥x−x′∥2). In one embodiment the reconstruction error is calculated using binary cross-entropy between the input and reconstructed output. During the training process, the goal is to ensure that the reconstructed image is the same as the input masked image 704. If the original input masked image 704 and the reconstructed image 712 are different, various optimization techniques such as back propagation, stochastic gradient descent, etc., may be employed to adjust weights associated with the various encoder and decoder layers. In one embodiment the masked CNN autoencoder 700 will be trained using an Adam optimizer. The output of the masked CNN autoencoder includes reconstructed sample (output of the last decoder layer) and reconstruction error (i.e., similarity score) between the reconstruction and the input images.
Since the objective of counterfeit payment card detection method requires the masked CNN autoencoder 700 to be very sensitive in minor alterations of the input, therefore, the masked CNN autoencoder 700 is trained/fine-tuned based on an overall loss function (see, Eqn. (2)) that is utilized for updating weight parameters of connections among one or more encoder and decoder layers.
f= (‖x-├ x'┤‖- ‖x_alter- ├ x_alter'┤‖┤┤)…Eqn. (3)
Wherein g= ‖x┤-├ x'┤‖ is the loss function corresponding to the genuine card samples and x represents the card image and x’ represents the reconstructed image and p= ‖x_alter- ├ x_alter'┤‖┤ is the loss function corresponding to the altered samples and xalter and xalter’ represent the input and the reconstructed altered image, respectively.
More illustratively, the masked CNN autoencoder 700 evaluates the loss function that compares the output vector generated by the last decoder layer 710b to the input vector. In one example, the masked CNN autoencoder 700 also evaluates a condition whether sum of all values present in the reconstructed vector is equal to ‘1’ or not. Based on the evaluation, the masked autoencoder 700 adjusts one or more parameters of one or both of the encoder layers and the decoder layers to improve (e.g., reduce or otherwise optimize) the overall loss function.
In one embodiment, in order to enhance the masked CNN autoencoder 700 to be sensitive to minor variations, the 'p' function of the loss function f may be maximized and the 'g' function of the overall loss function 'f' may be minimized.
Once, after being trained the masked CNN autoencoder 700 encounters a masked image with a loss value using the loss function greater than a predetermined threshold value, then it indicates the minor differences in the global features of the masked image. In other words, when the reconstruction error is greater than a predetermined threshold value, it means that the input masked image considered to have an anomaly and is marked as being "counterfeit." Thus, a counterfeit payment card will have a lower similarity (higher distance) between the input and reconstruction image.
Based on the loss value, the processor 206 is configured to generate a second validation score corresponding to authenticity of the global features of the payment card 110.
FIG. 8 is a flow diagram of a computer-implemented method 800 for detecting counterfeit payment cards at a payment terminal, in accordance with an example embodiment of the present disclosure. The method 800 depicted in the flow diagram may be executed by the payment server 116, or the server system 102, or the issuer server 106 as explained with reference to FIG. 1. Operations of the method 800, and combinations of operation in the method 800, may be implemented by, for example, hardware, firmware, a processor, circuitry and/or a different device associated with the execution of software that includes one or more computer program instructions. It is noted that the operations of the method 800 can be described and/or practiced by using a system other than the server systems. The method 800 starts at operation 802.
At the operation 802, the method 800 includes receiving a request to determine authenticity of a payment card 110 from a payment terminal 112. The request includes an image of the payment card 110 associated with a cardholder 108.
At 804, the method 800 includes extracting a combination of local texture features associated with the payment card by processing the image based on a plurality of image processing models. The combination of local texture features is represented as a concatenated representation of numerical representations of the local texture features.
At 806, the method 800 includes generating a numerical representation of the image upon masking predetermined spatial portions in the image.
At 808, the method 800 includes determining a first validation score corresponding to the payment card 110 based, at least in part, on a classification model and the local texture features.
At 810, the method 800 includes determining a second validation score corresponding to the payment card 110 based, at least in part, on an autoencoder and the numerical representation of the masked image. The autoencoder is trained based on a loss function sensitive to detect threshold changes in global features of the payment card 110.
At 812, the method 800 includes identifying whether the payment card 110 is authentic or counterfeit based, at least in part, on a combination of the first validation score and the second validation score.
At 814, the method 800 includes transmitting an authentication message to the payment terminal based, at least in part, on the identifying step.
FIG. 9 is a simplified block diagram of a payment server 900, in accordance with an embodiment of the present disclosure. The payment server 900 is an example of the payment server 116 of FIG. 1. A payment network may be used by the payment server 900 as a payment interchange network. Examples of payment interchange network include, but not limited to, Mastercard® payment system interchange network. The payment server 900 includes a processing system 905 configured to extract programming instructions from a memory 910 to provide various features of the present disclosure. Further, two or more components may be embodied in one single component, and/or one component may be configured using multiple sub-components to achieve the desired functionalities. Some components of the payment server 900 may be configured using hardware elements, software elements, firmware elements and/or a combination thereof. In one embodiment, the payment server 900 is configured to determine authenticity of the payment card based on the card image and send a payment transaction request to the issuer server 106 via the acquirer server 104 and the payment network 114.
Via a communication interface 915, the processing system 905 receives a payment authorization request from a remote device 920 such as the server system 102, the acquirer server 104, or administrators managing server activities. The payment server 900 may also perform similar operations as performed by the server system 200. For the sake of brevity, the detailed explanation of the payment server 900 is omitted herein with reference to the FIG. 2.
The disclosed method with reference to FIG. 8, or one or more operations of the server system 200 may be implemented using software including computer-executable instructions stored on one or more computer-readable media (e.g., non-transitory computer-readable media, such as one or more optical media discs, volatile memory components (e.g., DRAM or SRAM), or nonvolatile memory or storage components (e.g., hard drives or solid-state nonvolatile memory components, such as Flash memory components) and executed on a computer (e.g., any suitable computer, such as a laptop computer, net book, Web book, tablet computing device, smart phone, or other mobile computing device). Such software may be executed, for example, on a single local computer or in a network environment (e.g., via the Internet, a wide-area network, a local-area network, a remote web-based server, a client-server network (such as a cloud computing network), or other such network) using one or more network computers. Additionally, any of the intermediate or final data created and used during implementation of the disclosed methods or systems may also be stored on one or more computer-readable media (e.g., non-transitory computer-readable media) and are considered to be within the scope of the disclosed technology. Furthermore, any of the software-based embodiments may be uploaded, downloaded, or remotely accessed through a suitable communication means. Such suitable communication means include, for example, the Internet, the World Wide Web, an intranet, software applications, cable (including fiber optic cable), magnetic communications, electromagnetic communications (including RF, microwave, and infrared communications), electronic communications, or other such communication means.
Although the invention has been described with reference to specific exemplary embodiments, it is noted that various modifications and changes may be made to these embodiments without departing from the broad spirit and scope of the invention. For example, the various operations, blocks, etc., described herein may be enabled and operated using hardware circuitry (for example, complementary metal oxide semiconductor (CMOS) based logic circuitry), firmware, software and/or any combination of hardware, firmware, and/or software (for example, embodied in a machine-readable medium). For example, the apparatuses and methods may be embodied using transistors, logic gates, and electrical circuits (for example, application specific integrated circuit (ASIC) circuitry and/or in Digital Signal Processor (DSP) circuitry).
Particularly, the server system 200 and its various components may be enabled using software and/or using transistors, logic gates, and electrical circuits (for example, integrated circuit circuitry such as ASIC circuitry). Various embodiments of the invention may include one or more computer programs stored or otherwise embodied on a computer-readable medium, wherein the computer programs are configured to cause a processor or computer to perform one or more operations. A computer-readable medium storing, embodying, or encoded with a computer program, or similar language, may be embodied as a tangible data storage device storing one or more software programs that are configured to cause a processor or computer to perform one or more operations. Such operations may be, for example, any of the steps or operations described herein. In some embodiments, the computer programs may be stored and provided to a computer using any type of non-transitory computer readable media. Non-transitory computer readable media include any type of tangible storage media. Examples of non-transitory computer readable media include magnetic storage media (such as floppy disks, magnetic tapes, hard disk drives, etc.), optical magnetic storage media (e.g. magneto-optical disks), CD-ROM (compact disc read only memory), CD-R (compact disc recordable), CD-R/W (compact disc rewritable), DVD (Digital Versatile Disc), BD (BLU-RAY® Disc), and semiconductor memories (such as mask ROM, PROM (programmable ROM), EPROM (erasable PROM), flash memory, RAM (random access memory), etc.). Additionally, a tangible data storage device may be embodied as one or more volatile memory devices, one or more non-volatile memory devices, and/or a combination of one or more volatile memory devices and non-volatile memory devices. In some embodiments, the computer programs may be provided to a computer using any type of transitory computer readable media. Examples of transitory computer readable media include electric signals, optical signals, and electromagnetic waves. Transitory computer readable media can provide the program to a computer via a wired communication line (e.g., electric wires, and optical fibers) or a wireless communication line.
Various embodiments of the invention, as discussed above, may be practiced with steps and/or operations in a different order, and/or with hardware elements in configurations, which are different than those which, are disclosed. Therefore, although the invention has been described based upon these exemplary embodiments, it is noted that certain modifications, variations, and alternative constructions may be apparent and well within the spirit and scope of the invention.
Although various exemplary embodiments of the invention are described herein in a language specific to structural features and/or methodological acts, the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as exemplary forms of implementing the claims.
| # | Name | Date |
|---|---|---|
| 1 | 202141041744-STATEMENT OF UNDERTAKING (FORM 3) [15-09-2021(online)].pdf | 2021-09-15 |
| 2 | 202141041744-POWER OF AUTHORITY [15-09-2021(online)].pdf | 2021-09-15 |
| 3 | 202141041744-FORM 1 [15-09-2021(online)].pdf | 2021-09-15 |
| 4 | 202141041744-FIGURE OF ABSTRACT [15-09-2021(online)].jpg | 2021-09-15 |
| 5 | 202141041744-DRAWINGS [15-09-2021(online)].pdf | 2021-09-15 |
| 6 | 202141041744-DECLARATION OF INVENTORSHIP (FORM 5) [15-09-2021(online)].pdf | 2021-09-15 |
| 7 | 202141041744-COMPLETE SPECIFICATION [15-09-2021(online)].pdf | 2021-09-15 |
| 8 | 202141041744-Correspondence_Power of Attorney_01-11-2021.pdf | 2021-11-01 |
| 9 | 202141041744-Proof of Right [19-11-2021(online)].pdf | 2021-11-19 |
| 10 | 202141041744-Correspondence_Copy of Assignment_06-12-2021.pdf | 2021-12-06 |
| 11 | 202141041744-FORM 18 [28-08-2025(online)].pdf | 2025-08-28 |