Today, various forms of redeemable instruments are available. In particular, redeemable instruments in the form of transaction cards (e.g., gift cards, prepaid cards) are widely used. Generally, a gift or prepaid card does not have a value (e.g., monetary a value) until sold and activated. After activation, a redeemable value or amount can be assigned to the card. Typically, information stored on a gift or prepaid card can be used to identify the redeemable value when the gift or prepaid card is redeemed. By way of example, a number stored on a gift card can be used by a merchant or an online store to lookup the value assigned to the gift card at time when it was activated. Information can, for example, be stored on a barcode or magnetic stripe of a gift card. Typically, for security reasons, the redeemable value is not stored on the redeemable instrument itself.
More recently, transaction cards have become available for purchasing items online from online stores. The ability to purchase digital media items (e.g., music) for use with digital audio and video players allows owners of the digital audio and video players to download music onto their players. Gift cards or prepaid cards issued for websites that allow digital audio and/or video files to be purchased or otherwise obtained allow an owner of a gift card to use the monetary value of the gift card to purchase media items and download corresponding digital audio and/or video files. Online stores that allow monetary values associated with gift cards to be redeemed for media items include, for example, the iTunes® online store owned and operated by Apple Inc. of Cupertino, Calif.
As a result, the account number associated with the gift card may effectively be debited to effectuate the purchase of the media item. An account with an online store can be established or otherwise replenished using the value associated with the gift card.
To redeem a gift card at an online store, entry of a redemption code is required. Typically, a person attempting to redeem a gift or prepaid card is required to manually enter a the redemption code which is a long alphanumeric value (e.g., “1A76WJ789f8981A9”). The redemption code can be secured or sealed by a layer of material that can be scratched or peeled off to reveal the redemption code typically provided as an alphanumeric value or another readable form. For security, redemption codes are generally long. As such, manually entering a redemption code can be quite cumbersome, especially on a mobile device where having to enter a long redemption code can be very tedious and possibly frustrating.
Improved systems and techniques for submission and verification of redemption codes are disclosed. It will be appreciated that the submission and verification techniques can, among other things, automate the submission and verification of redemption codes for various redeemable instruments, including transaction cards (e.g., gift or prepaid cards) widely used for online transactions (e.g., purchase of media items from an online media store).
In accordance with one aspect of the system and techniques, a redemption code can be determined based on an image of a redeemable instrument. More particularly, an image of a redeemable instrument can be processed using image analysis or one or more image processing techniques to extract a redemption code for the redeemable instrument. By way of example, an image (e.g., a digital picture) of a redeemable instrument (e.g., gift card) can be processed by a device to extract an alphanumeric value printed on the redeemable instrument. This means that the alphanumeric value need not be entered manually by a person who seeks to redeem the redeemable instrument. As a result, a user can simply take a picture of a redeemable instrument rather than having to manually enter a long alphanumeric value.
In accordance with one exemplary embodiment, a method for allowing redemption of a redeemable instrument having a redeemable value can be provided. In accordance with the exemplary method, a least one image of a portion of the redeemable instrument can be obtained. Then, the at least one image can be processed to extract a redemption code that can be verified for redemption of the redemption value associated with the redeemable instrument.
In accordance with another exemplary embodiment, a device (e.g., a mobile phone, a personal computer, a server) can be operable to process at least one image of a redeemable instrument to extract a redemption code. It should be noted that the redemption code can be verified for redemption of a redemption value associated with the redeemable instrument. In accordance with another exemplary embodiment, the device may also be operable to obtain (e.g., receive, capture) one or more images of the redeemable instrument. In addition, in accordance with yet another exemplary embodiment, the device may be operable to extract the redemption code from one or more images of the redeemable instrument and transmit the redemption code for verification by another device.
In accordance with still another exemplary embodiment, a method for allowing redemption of a redeemable value associated with a redeemable instrument can be provided. In accordance with the exemplary method, a redemption code can be determined at least partly based on one or more images of a redeemable instrument. The exemplary method may also optionally determine whether the redemption code is valid and allow the redeemable value to be redeemed when it is determined that the redemption code is valid.
Another exemplary method processes a transaction card that includes a redemption code associated with a redeemable value. In accordance with the exemplary method, initially, an image of a redemption code can be located in an image of a transaction card. Then, the image can be processed to extract one or more characters representative of the redemption code. The exemplary method may optionally transmit the redemption code for verification.
As yet another exemplary embodiment, a computer readable storage medium can store executable computer code for processing a redeemable instrument indicative of at least one redemption value. The computer readable storage medium can include executable computer code for processing at least one image of the redeemable instrument to extract a redemption code that can be verified for redemption of at least one redemption value associated with the redeemable instrument.
The improved systems and techniques may best be understood by reference to the following description taken in conjunction with the accompanying drawings in which:
Improved systems and techniques for submission and verification of redemption codes are disclosed. It will be appreciated that the submission and verification techniques can, among other things, automate the submission and verification of redemption codes for various redeemable instruments, including transaction cards (e.g., gift or prepaid cards) widely used for online transactions (e.g., purchase of media items from an online media store).
In accordance with one aspect of the system and techniques, a redemption code can be determined based on an image of a redeemable instrument. More particularly, an image of a redeemable instrument can be processed using image analysis or one or more image processing techniques to extract a redemption code for the redeemable instrument. By way of example, an image (e.g., a digital picture) of a redeemable instrument (e.g., gift card) can be processed by a device to extract an alphanumeric value printed on the redeemable instrument. This means that the alphanumeric value need not be entered manually by a person who seeks to redeem the redeemable instrument. As a result, a user can simply take a picture of a redeemable instrument rather than having to manually enter a long alphanumeric value. The improved techniques for submission and verification of redemption codes are particularly useful for mobile devices.
Referring to
The redeemable instrument 108 can, for example, be a transaction card (e.g., a gift card). Generally, the redeemable instrument 108 is indicative of a redemption code (e.g., an alphanumeric value) provided for redemption of a value (e.g., a monetary value) associated with the redeemable instrument 108. The redemption code may be secured, for example, by a layer of material that can be peeled or scratched off in order to reveal the code to the purchaser of the redeemable instrument 108. In addition to the redemption code, the redeemable instrument 108 may include additional information (e.g., a serial number, a bar code) which can, for example, be used for activation or authentication of the redeemable instrument 108. By way of example, the redeemable instrument 108 can be a $50 gift card redeemable at an online store for a $50 credit that can be used to purchase items (e.g., downloadable songs and applications) available from the online store. As another example, the redeemable instrument 108 can be redeemable for one or more songs, albums and/or movies, a coupon, or entry into a contest or lottery.
Generally, the image 106 can be processed (image processing) to effectively extract the redemption code 104. As a result, the redemption code 104 can be determined automatically without requiring a user to manually enter the redemption code. Processing of the image 106 can depend on the type of the redemption code. As such, a general Optical Character Recognition (OCR) algorithm can be used to determine alphanumerical values. A “Quick Response” (QR) algorithm can be used for QR (or 2D) coded values. It should be noted that a customized (or specialized) algorithm can, for example, be used for determining redemption codes that have been provided in a scratch off or peel off portion of a transaction card. Peeling off or scratching off may remove a portion of the transaction code and/or cause residue to effectively obstruct a portion of the transaction code. For e.g., a customized OCR algorithm may be better suited when the redemption code 104 is provided as a scratch off or peel off.
In addition, it will be appreciated that additional measures can be taken into account for specific situations in which the image 106 is taken and information can be provided as feedback to facilitate capture of an image better suited for processing an extraction of a redemption code. By way of example, a user of a mobile device can be prompted that a brighter picture is needed, the camera needs to be closer to the redeemable instrument 108, or the camera should be held steady, etc. Additional examples of useful user prompts are discussed below.
Referring back to
As noted above, the image-based value redemption system 100 (shown in
To further elaborate,
In the exemplary configuration depicted in
A redemption code verification component 204A of the second device 204 can verify the redemption code transmitted by the first device 202. The redemption code verification component 204A can operate similar to the redemption code verification component 110 of the image-based redemption code extraction component 102 depicted in
On the other hand, the second device 204 may send a notice of failure to verify the redemption code to the first device 202. As a result, the first device 202 may attempt to determine the correct redemption code again, for example, by processing the same image 208 again (e.g., with different or more complex image processing/recognition techniques), processing another image of the redeemable instrument 210, or perform error recovery to yield the correct redemption code. It should be noted that the first device 202 may also be configured to transmit the image 208 to the second device 204 for processing.
Referring to
To further elaborate,
If it is determined (284) not to process the image locally, it can be determined (286) whether to transmit at least one image of the redeemable instrument for processing and extraction of a redemption code associated with the redeemable instrument. If it is determined (286) not to transmit an image of the redeemable instrument, the method 280 can end. However, if it is determined (286) to transmit at least one image of the redeemable instrument, one or more images of the redeemable instrument can be transmitted (288) for processing. Typically, an image can be transmitted to another device (e.g., second device 204) for processing. The processing can include extraction of a redemption code and verification of the redemption code. After transmission (288) of one or more images, the method 280 can effectively wait (290) for a verification result. Typically, the verification result is indicative of a successful or unsuccessful verification of the redemption code extracted from the image of the redeemable instrument. Unsuccessful verification may include failure to extract a redemption code from the image and possibly other situations where the redemption code cannot be ultimately verified. For example, even if a redemption (or verification) code is extracted successfully, the verification may still be unsuccessful if the redemption code has already been used, or a redeemable coupon has expired. In effect, method 280 can wait (290) to receive a verification result. Method 280 can end after a verification result has been received.
On the other hand, if it is determined (284) to process one or more images of the redeemable instrument, the image(s) can be processed (292). Thereafter, it can be determined (294) whether a redemption code has been extracted (294) from at least one image of the redeemable instrument. In other words, it can be determined (294) whether processing of the image has extracted a redemption code. If it is determined (294) that a redemption code has not been extracted, it can be determined (286) whether to transmit at least one image of the redeemable instrument to another device for more sophisticated processing. Here, the method 280 can proceed in a similar manner as discussed above to transmit (288) one or more images to another device (e.g., second device 204) and await (290) a verification result. However, if it is determined (294) that a redemption code has been extracted from at least one image of the redeemable instrument as a result of the image processing (292), the redemption code can be transmitted (296) to another device for verification. After transmission of the redemption code, the method 280 can effectively wait (290) for a verification result. Method 280 can end after the verification result has been received from the another device.
As noted above, mobile devices are extremely popular today. In fact, mobile devices are likely to eventually become the device of choice worldwide. Similarly, transaction cards (e.g., gift cards) are being widely used today. As such, a mobile device using a transaction card will be discussed in greater detail below.
To further elaborate,
A redemption process may be initiated by establishing a communication with the server 308 and effectively requesting redemption of a value of the transaction card 304. As a result, the mobile device 302 and/or server 308 can effectively provide the user of the mobile device 302 with the option of taking an image of the transaction card 304 instead of entering the redemption code (“15321”) manually. If this option is selected by the user, the mobile device 302 can be configured to set (or preset) one or more parameters associated with the camera in order to provide a better image of the transaction card for analysis. These parameters may be provided by the server 308 but it may be more feasible that the mobile device 302 be configured to at least initially preset or set camera parameters locally as it may be easier to discern the appropriate parameters for capturing an image locally. By way of example, camera shutter speed may be set to a determined minimum value before an image of the transaction card 304 is captured by the camera. As another example, flash light control and/or focus control can be configured to be more optimal for use in capturing an image of a transaction card. It should also be noted that these one or more parameters will vary with different mobile devices.
Generally, one or more images of the transaction card 304 can be captured by the camera of the mobile device 302 for processing and extraction of the redemption code (“15321”). There are numerous ways to capture one or more images of the transaction card 304 for processing. For example, a person may manually operate the camera to take one or more pictures of the transaction card. As another example, a person may be prompted to place the camera in front of the transaction card 304 so that the mobile device 302 can capture a video or as many pictures that are likely to be required for processing. As such, a video may be taken for a determined amount of time or until at least one image meeting a determined threshold of quality is obtained and so on. In other words, the mobile device 302 can be configured to pre-process images and select one or more images that are likely more useful among several images that may have been obtained for extraction of the redemption code (“15321”). Generally, an image of the transaction card 304 may be screened or checked for usability before it is used for the extraction process (i.e., extraction of the redemption code). As such, an image can be rejected prior to performing the extraction process on that image, and the mobile device 302 can, for example, be configured to prompt the user to take another image.
It will be appreciated that the mobile device 302 can also be configured to effectively provide feedback to assist the user in taking an image more suitable for the extraction process. Generally, feedback can be provided before or after an image is taken based on pre-screening or analyzing the image, for example by sampling a number of pixels. Feedback can be provided from a variety of sources that may be included in or available to or the mobile device 302. By way of example, if a low camera shutter speed is detected in conjunction with motion sensed by an accelerometer of the mobile device 302, it can be determined that the camera is not being held steady enough. Accordingly, the mobile device 302 can prompt the user to hold the camera more steadily and/or provide more light to compensate for the motion and lower shutter speed. As another example, if a Global Positioning System (GPS) of the mobile device 302 detects movement and the shutter speed is determined to be low, the mobile device 302 can prompt the user to stop moving and/or provide more light. A lower shutter speed for the camera in itself may result in feedback to the effect that more light is needed. Similarly, if an ambient light sensor of the mobile device 302 detects an amount of light determined to be low, the mobile device 302 can be configured to prompt the user for more light. As yet another example, feedback can be provided based on the focus distance of the camera which may be reported by the camera itself. The focus distance can be used to determine how far the transaction card 304 is from the camera. Accordingly, the mobile device 302 can use the focus distance to prompt the user when the transaction card 304 is too close or too far from the camera.
Feedback can also be provided based on an image of the transaction card 304. By way of example, image analysis or screening of an image can determine that the image is too dark or lacks sufficient contrast. As a result, the mobile device 302 can prompt the user to add more light. In the unlikely situation when an image is determined to be too bright or bright enough but determined to lack sufficient contrast, the mobile device 302 can prompt the user that less light is needed.
It will also be appreciated that additional features provided for the transaction card 302 can be used to provide feedback. One such feature is “landmarks” provided on the transaction card 304. The landmarks are visual references that can be provided (e.g., printed) on the transaction card 302. As an example, the landmarks can be characters, shapes, and the like that are placed on the transaction card 302. The landmarks can be placed at one or more positions on the transaction card 302 at know placement relative to placement of the redemption code provided on the transaction card 302. Extraction of the redemption code (“15321”) from the transaction card 304 can be accomplished by first locating the redemption code in the image. Various landmarks can be used to effectively locate the redemption code (“15321”) on the transaction card 304. As such, the landmarks can be useful in image processing to recognize the redemption code in the image. For example, the landmarks can help reference the orientation and position of the redemption code within the image. These landmarks can also be used to provide feedback to a user of the mobile device 302. For example, if landmarks cannot be detected in the image, the mobile device 302 can prompt the user that a valid transaction card could not be detected. As another example, if landmarks are detected to be too close to each other, it can be determined that the transaction card 304 is being held too far away from the camera.
Processing an image of the transaction card 304 may entail several phases and/or operations. As noted above, landmarks can be used to locate a redemption code. In addition, perspective transformation can be performed to, compensate for skewing in an image. Here, a predetermined shape can be provided on the transaction card 304. For example, the predetermined shape can correspond to a boundary box provided around a redemption code. The predetermined shape can be use for evaluating whether the image is skewed (though the predetermined shape can also act as a landmark). For example, if the predetermined shape is a rectangular box (with or without rounded corners), the processing of the image can initially evaluate whether the predetermined shape is recognized in the image as a rectangular box. If the predetermined shape is recognized in the image as a substantially rectangular box, then the image is deem not skewed and can be further processed to extract the redemption code. On the other hand, if the predetermined shape is not recognized in the image as a substantially rectangular box, then the image is deem skewed and further processing can be performed to transform the skewed image to an unskewed version where the predetermined shape in the image has its expected shape (e.g., rectangular box). The redemption code may also be isolated and/or enhanced to further facilitate extraction of the redemption code.
It should be noted that multiple images can be processed to improve accuracy, and statistical analysis can be used to determine the redemption code. As such, when four (4) images indicate the presence of a particular character (e.g., “B”) in a particular position and only one image indicates the presence of a different character (e.g., “D”) in the same position, the character indicated by the four (4) images (“B”) can be identified as a more likely possibility than the character (“D”) indicated by only one of the images.
Generally, the redemption code can be extracted using a code recognition or code analysis algorithm. The specific code analysis algorithm used typically depends on the type of the coding mechanism used to generate the redemption code, as will be readily appreciated by those skilled in the art. For example, a QR code analysis algorithm can be used for 2D bar code provided as a redemption code. For alphanumeric redemption codes, a general or customized OCR algorithm can be used to recognize (or effectively read) each one of the alphanumeric characters that collectively represent a redemption code that can be provided (e.g., printed) on the transaction card 304. Today, alphanumeric redemption codes are more often used especially on gift cards, and it may be more feasible to continue to use alphanumeric values in order to continue to provide users with the ability to read and enter redemption codes in case some individuals prefer to do so or as a last resort after attempts to automatically detect the redemption codes have failed. However, more often than not, image analysis can result in determination or extraction of a redemption code from one or more images. In addition, customized algorithms, machine learning, and other techniques can improve the efficiency of code extraction process. Error handling may also be used to further increase the likelihood of successfully extracting redemption values. An extracted redemption code can be provided to the server 308 for verification. It should also be noted that additional information, including one or more code values (or coded values,) can also be extracted from the image of the transaction card 304. By way of example, a bar code or serial number can be extracted from the image of the transaction card 304.
Referring back to
On the other hand, unsuccessful verification of the extracted redemption code by the server 308 can result in allowing the mobile device 302 to transmit another redemption code. The mobile device 302 can be configured to capture another image of the transaction card 304 and/or perform error recovery. As an example, for alphanumeric redemption codes, common image-reading errors can be considered. For example, an “I” character may be replaced by “L,” or an “8” may be replaced by “B,” and so on. In one embodiment, a database of common image-reading error is provided to allow regeneration of a redemption code by substituting one or more characters in an attempt to correct common image-reading errors that may have occurred. It should also be noted that a detection algorithm can be used to provide statistical confidence of each letter/code “chunk”. This statistical confidence can then be used to determine which letters to try replacing first.
If error recovery is unsuccessful, the same image must be reprocessed or a new image can be processed. As such, the mobile device 302 can extract another redemption code and transmit it for verification to the server 308 or authentication server 310. The number of attempts that can be made may, for example, be determined by the server 308. After several unsuccessful verifications, or simply based on user request, the server 308 may be configured to allow the mobile device 302 to transmit one or more images of the transaction card to the server 308 for processing. The processing may be performed by the server 308 or other devices, which may have far greater computational resources and capabilities for extracting the redemption code. The server 308 or another designated device may also have better error resolution capabilities with which to evaluate images for alternative redemption codes. Though, error resolution can be used, it should be restricted so that reliability and security are not significantly compromised. A human operator may even be employed to visually inspect an image received by the server 308 in the event the verification fails. In addition, the mobile device 302 may allow the user to manually enter a readable redemption code (e.g., an alphanumeric value) and submit it for verification to the server 308, or the authentication server 310 if automated verification fails.
Referring to
If it is determined (354) to capture an image, it can be determined (356) whether to set or preset the camera. As a result, one or more camera parameters can be set or preset (358) before an image of the redeemable instrument is captured. By way of example, shutter speed of the camera can be set to a minimum or a determined value. Next, it can be determined (360) whether an appropriate number of images of the redeemable instrument have been captured. For example, it can be determined (360) whether at least one image has been captured or a predetermined number of images have been captured. Images can, for example, be captured as a single or still images, or as video captured in real time.
In any case, after it is determined (360) that an appropriate number of images have been captured, the image(s) can be checked (362) for usability. In other words, one or more captured images can be screened to determine if they are suitable for processing to extract a redemption code. Accordingly, one or more images of the redeemable instrument can be checked (364) for usability before processing them for code extraction. After the usability of the image(s) has been checked (364), it can be determined (366) whether to process at least one of the images (shown in
Referring now to
Referring to
If it is determined (384) not perform error handling, perhaps after a number of attempts, it can be determined (388) whether to transmit one or more images for processing (shown in
Referring to
It should be noted that the steps associated with the described methods may vary widely. Steps may be added, removed, altered, combined, and reordered without departing from the spirit of the scope of the present invention. By way of example, referring to
The various aspects, features, embodiments or implementations of the invention described above can be used alone or in various combinations.
The many features and advantages of the present invention are apparent from the written description. Further, since numerous modifications and changes will readily occur to those skilled in the art, the invention should not be limited to the exact construction and operation as illustrated and described. Hence, all suitable modifications and equivalents may be resorted to as falling within the scope of the invention.