Credit Card Processing Using Cell Phone Images

Similar documents
Image Processing Fundamentals. Nicolas Vazquez Principal Software Engineer National Instruments

Mobile Camera Based Text Detection and Translation

EE368 Project Report CD Cover Recognition Using Modified SIFT Algorithm

Solving Word Jumbles

EECS490: Digital Image Processing. Lecture #19

Image-Based Competitive Printed Circuit Board Analysis

Mobile Camera Based Calculator

EE795: Computer Vision and Intelligent Systems

Lecture 10 Detectors and descriptors

SIFT: Scale Invariant Feature Transform

Anno accademico 2006/2007. Davide Migliore

Chapter 3 Image Registration. Chapter 3 Image Registration

Part-Based Skew Estimation for Mathematical Expressions

Identification of Paintings in Camera-Phone Images

IMAGE-GUIDED TOURS: FAST-APPROXIMATED SIFT WITH U-SURF FEATURES

Face Detection on Similar Color Photographs

IRIS SEGMENTATION OF NON-IDEAL IMAGES

Critique: Efficient Iris Recognition by Characterizing Key Local Variations

Comparative Study of ROI Extraction of Palmprint

Lecture 4.1 Feature descriptors. Trym Vegard Haavardsholm

EECS150 - Digital Design Lecture 14 FIFO 2 and SIFT. Recap and Outline

Keywords: Thresholding, Morphological operations, Image filtering, Adaptive histogram equalization, Ceramic tile.

Computer and Machine Vision

Sobel Edge Detection Algorithm

SIMULATIVE ANALYSIS OF EDGE DETECTION OPERATORS AS APPLIED FOR ROAD IMAGES

CORRELATION BASED CAR NUMBER PLATE EXTRACTION SYSTEM

SIFT: SCALE INVARIANT FEATURE TRANSFORM SURF: SPEEDED UP ROBUST FEATURES BASHAR ALSADIK EOS DEPT. TOPMAP M13 3D GEOINFORMATION FROM IMAGES 2014

Feature descriptors. Alain Pagani Prof. Didier Stricker. Computer Vision: Object and People Tracking

OBJECT detection in general has many applications

Outline 7/2/201011/6/

Your Flowchart Secretary: Real-Time Hand-Written Flowchart Converter

Lecture 6: Edge Detection

CS 223B Computer Vision Problem Set 3

Local invariant features

Image Processing: Final Exam November 10, :30 10:30

Adaptive Local Thresholding for Fluorescence Cell Micrographs

Color and Shading. Color. Shapiro and Stockman, Chapter 6. Color and Machine Vision. Color and Perception

Computer and Machine Vision

CS 4495 Computer Vision. Linear Filtering 2: Templates, Edges. Aaron Bobick. School of Interactive Computing. Templates/Edges

Fast Natural Feature Tracking for Mobile Augmented Reality Applications

Features Points. Andrea Torsello DAIS Università Ca Foscari via Torino 155, Mestre (VE)

Key properties of local features

An ICA based Approach for Complex Color Scene Text Binarization

Topic 4 Image Segmentation

Digital Image Processing COSC 6380/4393

SUMMARY: DISTINCTIVE IMAGE FEATURES FROM SCALE- INVARIANT KEYPOINTS

Determining Document Skew Using Inter-Line Spaces

(Refer Slide Time 00:17) Welcome to the course on Digital Image Processing. (Refer Slide Time 00:22)

A Novel Algorithm for Color Image matching using Wavelet-SIFT

BSB663 Image Processing Pinar Duygulu. Slides are adapted from Selim Aksoy

Local Image preprocessing (cont d)

Image Processing

Filtering Images. Contents

Edges and Binary Images

LOCAL AND GLOBAL DESCRIPTORS FOR PLACE RECOGNITION IN ROBOTICS

Identifying and Reading Visual Code Markers

An Edge Detection Algorithm for Online Image Analysis

International Journal of Advanced Research in Computer Science and Software Engineering

CITS 4402 Computer Vision

Designing Applications that See Lecture 7: Object Recognition

N.Priya. Keywords Compass mask, Threshold, Morphological Operators, Statistical Measures, Text extraction

ECEN 447 Digital Image Processing

Detection of Edges Using Mathematical Morphological Operators

Vision. OCR and OCV Application Guide OCR and OCV Application Guide 1/14

Local Feature Detectors

CS 231A Computer Vision (Fall 2012) Problem Set 3

Previously. Edge detection. Today. Thresholding. Gradients -> edges 2/1/2011. Edges and Binary Image Analysis

Feature Detection. Raul Queiroz Feitosa. 3/30/2017 Feature Detection 1

2D Image Processing Feature Descriptors

Lecture 7: Most Common Edge Detectors

CAP 5415 Computer Vision Fall 2012

Robust color segmentation algorithms in illumination variation conditions

[10] Industrial DataMatrix barcodes recognition with a random tilt and rotating the camera

Biometric Security System Using Palm print

An algorithm of lips secondary positioning and feature extraction based on YCbCr color space SHEN Xian-geng 1, WU Wei 2

Text Information Extraction And Analysis From Images Using Digital Image Processing Techniques

OCR For Handwritten Marathi Script

A Simple Automated Void Defect Detection for Poor Contrast X-ray Images of BGA

Finger Vein Biometric Approach for Personal Identification Using IRT Feature and Gabor Filter Implementation

Advanced Vision System Integration. David Dechow Staff Engineer, Intelligent Robotics/Machine Vision FANUC America Corporation

Auto-Digitizer for Fast Graph-to-Data Conversion

Motion Estimation and Optical Flow Tracking

Optical Verification of Mouse Event Accuracy

Finger Print Enhancement Using Minutiae Based Algorithm

EECS 556 Image Processing W 09. Image enhancement. Smoothing and noise removal Sharpening filters

Introduction. Introduction. Related Research. SIFT method. SIFT method. Distinctive Image Features from Scale-Invariant. Scale.

Broad field that includes low-level operations as well as complex high-level algorithms

A NEW FEATURE BASED IMAGE REGISTRATION ALGORITHM INTRODUCTION

Implementation and Comparison of Feature Detection Methods in Image Mosaicing

Video Processing for Judicial Applications

Edge and corner detection

A Novel Extreme Point Selection Algorithm in SIFT

Comparison of Feature Detection and Matching Approaches: SIFT and SURF

A Fast and Accurate Eyelids and Eyelashes Detection Approach for Iris Segmentation

CS231A Course Project Final Report Sign Language Recognition with Unsupervised Feature Learning

Robust PDF Table Locator

Image Matching Using SIFT, SURF, BRIEF and ORB: Performance Comparison for Distorted Images

Improving License Plate Recognition Rate using Hybrid Algorithms

EE368 Project: Visual Code Marker Detection

COMPARATIVE STUDY OF IMAGE EDGE DETECTION ALGORITHMS

Transcription:

Credit Card Processing Using Cell Phone Images Keshav Datta Department of Electrical Engineering Stanford University Stanford, CA keshavd@stanford.edu Abstract A new method to extract credit card information from cell phone images is described. The credit card image is preprocessed using Contrast Limited Adaptive Histogram Equalization (CLAHE) for contrast enhancement and non-linear soft coring technique for noise removal. The card bounding box is detected using Hough transform and geometric line processing, with iterative algorithm to improve robustness. The image is then morphed into a normalized template and the type of the card is detected using phase correlation. A novel method using feature detection and key-point projection is used to further segment the image into regions of interest (ROI). The ROIs are processed using an adaptive threshold computation technique which is important for obtaining reliable results from the Optical Character Recognition (OCR) system used to extract text information from the images. Multi-channel data processing from the color image is applied to improve the accuracy of the detection and an arbitration scheme is used to determine the extracted text. Experimental results demonstrate high hit-rate for number recognition, but show poor extraction of name field. Further work is needed before this system can be used in a commercial environment. Keywords-credit card processing, OCR, contrast enhancement, non-linear noise reduction I. INTRODUCTION In the recent past the use of smart mobile phones has exploded world-wide. With the advent of development platforms like Android and iphone, there is a tremendous effort involved in developing applications for various commercial needs. Additionally, ecommerce transactions over mobile platforms have also increased. Credit card processing using mobiles phones is a novel usage of this technology which is especially beneficial to small vendors & individual sellers. A survey of the present technology reveals that there are many companies that provide credit card processing using mobile phones ([1], [2], [3]). However, to the best of the author s knowledge, all these applications either require the interface to an external card reader or use a payment processing system (eg. PayPal, Google etc.). Since most of the smart phones are packaged with an in-built camera, the proposal is to develop an application that can take images of credit card and infer the details to process the transaction. With this application, there is no need for any external hardware interface. Additionally, this method can be extended to read other cards as well. Credit card processing falls into the category of textual information processing from an image which is commonly referred to as Optical Character Recognition (OCR). However, there are several requirements before the image can be processed using an OCR system, which are typically designed to handle print information. In the case of credit cards, the numbers, expiration date and the name are embossed into the card, making it harder for character recognition due to the shadows created by the 3D characters. Additionally, the need to handle rotational, translational, scale variance under a variety of illumination conditions makes the problem more challenging. Several Shape from Shade (SFS) methods have been proposed to reconstruct 3D surfaces from 2D images. A survey of these methods can be found in [4]. As concluded by the authors of the survey, there are several practical limitations of these methods that need to be overcome before they can be used for real images. In this work, Hough transform based line detection and geometric line processing is used to detect the bounding box of the card in a translational, rotational and scale invariant manner. A novel feature-point-projection based scheme is proposed to accurately segment the different regions in the image so that noise and background clutter is eliminated as much as possible. Additionally an adaptive thresholding scheme based on region density estimation is employed to effectively determine the right threshold for character recognition. Multi-channel data is processed and used to further improve the robustness and accuracy of the system. II. METHODS A credit card has fixed dimensions (54mm height x 86mm width) and the locations of the number, expiration date and name fields are fixed for a given type of card (VISA, American Express etc.). Further, the font sizes and field dimensions are also fixed. Fig. 1 shows a sample of the cards used and the fields of interest. The overview of the image processing scheme and the individual steps are described in the following sections.. Figure 1. American Express & VISA cards with their dimensions and fields of interest

Figure 2. Image processing pipeline for credit card text retrieval A. Overview of Image Processing Pipeline Fig. 2 illustrates the image processing steps involved in the credit card reader. Preprocessing is performed to reduce noise and improve contrast. This is followed by a template morphing step to transform the given image into a normalized representation. The card type is detected and segmentation is performed to determine the regions of interest, which are then processed individually for text retrieval. A key step to reduce noise and clutter due to background graphics often found on credit cards, is to detect the features related to characters and zoom into the desired region of interest (ROI). Multi-channel information, from the RGB color and HSV representations, is used to improve the robustness and accuracy of the reader. An OCR system is used to retrieve the text from the regions and the results from the multiple channels combined to extract the field information. B. Preprocessing The first step in preprocessing the image is to enhance the contrast using a Contrast Limited Adaptive Histogram Equalization (CLAHE) technique [5] since the image has large regions of background that could be uniform in intensity (depending on the graphics on the card), and increasing the contrast in these background regions is undesirable. The second step is to reduce noise using a non-linear soft coring technique. This method is preferred to linear noise filtering techniques since the edges and contrast of the features of interest need to be preserved. Using a linear technique like the Wiener filter would eliminate the high frequency contents and reduce the sharpness of the edges that is needed for this application. C. Image Normalization A credit card has fixed dimensions and fields are located in relatively fixed positions. To process credit cards in a translational, rotational and scale invariant manner, the image needs to be normalized to a known template. In this step, the location of the card in an image is identified, the card region extracted and then morphed to a normalized scale and orientation. Alternative techniques like Scale Invariant Feature Transform (SIFT) [6] and Speeded Up Robust Features (SURF) [7] used to reliably identify features, may not be suitable for credit cards since the background graphics, number, name are different from card to card and cannot provide a consistent feature set for card identification (except perhaps the logo). The method used in this work is based on the fact that the aspect ratio of the card is invariant to shift, rotation and scale changes. Since all the credit cards have the same dimensions, their aspect ratio is fixed and can be used to identify the location of the card in an image. The overview of the steps involved in the identification of the location of the card and the subsequent morphing to a standard template is given in Fig.3. Locally adaptive thresholding using moving window and applying Otsu s method [8] to determine the threshold in the local region is used to binarize the image, as an input to edge detection algorithm. Several edge detection algorithms (Sobel, Prewitt, Roberts, Canny, Laplacian of Gaussian and Morphological operators) were compared for their effectiveness with respect to the problem in hand. After experimenting with various parameters and methods, it was found that Sobel, Prewitt and Roberts gave very similar results in comparable runtime. Canny edge detector typically resulted in more number of edges, but at the expense of longer computation time. The Laplacian of Gaussian was similar in performance as the Canny detector and the morphological operators (dilate and erode) resulted in relatively thinner edges. A larger mask size can be used in the morphological detector to increase the edge thickness, but inherently there is no notion of the strength of the edges and there is no provision for thresholding. Since the edge detection is a fundamental step in the identification of the bounding box of the card, which in turn in key to the functioning of the rest of the image processing steps, an iterative approach is chosen to improve the robustness and error tolerance of the system. First the Sobel s method is used to detect the edges and perform bounding box identification. If this fails, a second call with Robert s edge detector is invoked. In case, this too fails, a Canny edge detector is used. This is combined with an outer loop that includes all the three color channels (RGB) to further strengthen the bounding box detection algorithm. Once the edges are detected, the resulting image could have a large number of points which give rise to a large number of lines in the Hough transform. To avoid this, dilation with a 7x7 mask is performed to remove small regions and a density reduction algorithm applied to reduce the number of points. A moving window is used to determine the density of a region and if the density exceeds a given threshold, the region pixels are set to zero. Figure 3. Card detection in an image and morphing to template

After performing a Hough transform to find the lines in the image, a line binning and matching algorithm is used to determine the bounding box of the card. The lines are binned based on their orientation such that all the lines in a bin are parallel (within an angle of tolerance). Then, a pair-wise matching of lines from each bin to every other bin is performed to locate another pairs of parallel lines that is perpendicular to the given pair (can be improved to search only bins that are 90 degree apart). This set determines a rectangle that is a potential bounding box. The key step is to apply the aspect ratio match so that the bounding box conforms to a credit card boundary. Additional constraints are needed, like size and distance to edge of the image, to eliminate rectangles with matching aspect ratio falsely being identified as bounding boxes. Subsequent to the bounding box determination, the center and the orientation of the box is used to translate, rotate, scale and crop the image to a standard template of the credit card, based on the image dimensions and desired resolution. D. Card Type Detection and Image Segmentation From the normalized image, the type of the credit card is deduced using a frequency domain phase correlation technique. A set of template images of the credit card logos for VISA, American Express etc. is matched against the image and correlation scores are used to determine the strongest match. Once the type of the card is established, a pre-stored template for that card type is used to segment the image and identify the fields corresponding to number, expiration date and cardholder name. The output of this step is illustrated in Fig. 4. Each field in this template is processed as a separate image in the subsequent steps to improve accuracy and performance. Feature extraction using Harris corner detection. The 3D characters provide a strong basis for corner detection, thus making this method very robust. A row projection of the detected features Vertical feature localization using the row projections. A moving sum of the projections using a window the size of the font height, results in the peak at the center of the character. A column projection of the detected features Horizontal feature localization using the sum in a moving window, the size of the feature width. The vertical and horizontal extents thus found are used to determine the desired ROI and further localize the characters to be detected. These steps are illustrated in Fig. 5. Figure 4. Logo detection using phase correlation & template based segmentation E. Feature Detection and ROI Extraction A credit card typically has background images and graphics that can severely interfere with the character recognition using OCR. Additionally, the reflective 3D structure of the card font creates irregular shadows, bright spots and non-uniform illumination, making it even more challenging to infer the characters. To ensure a high degree of success, it is important to remove as much background clutter as possible and localize the desired features. A novel scheme using horizontal and vertical projection of features is used to localize the characters. The various steps in this algorithm are: Figure 5. Steps outlining the ROI extraction process. F. Multi-Channel Processing and OCR The available OCR systems are designed for reading text with high contrast, usually from print, and cannot handle these images with shadows and bright spots in them. Several techniques (Locally adaptive binarization, Dual adaptive threshold in which the average background value is computed and the pixels in a region with values below a thresholdcorresponding to dark shadows and above a thresholdcorresponding to bright spots are set to 1, a rudimentary implementation of Shape From Shade method) were tried to identify the dark and bright regions around the fonts and apply corrective action, but none of them worked universally for all test images. The problem is that the intra-structure shadow is indistinguishable from inter character shadow. Any corrective

action applied to one is also applied to other resulting in undesirable artifacts and distorted characters. The key to solving this problem is to apply the right threshold that will give us only regions corresponding to the characters. Also, a representation of the image in which the shadows are minimized would help improve the robustness of the solution. Two helpful observations for addressing this problem are as follows: 1. In any given region that is being processed, the characters are of fixed dimensions. Therefore, the density of the white pixels in a character falls into a relatively narrow range. 2. The information from multiple channels (Red, Green, Blue, Hue, Saturation and Value) can be combined to improve the reliability of the method since different channels contain different information, providing a way to reduce the detrimental effects of shadows. These two premises were confirmed by inspecting data from the images. Indeed the density of all the fonts fall in a range of 0.15 to 0.3, making this metric a viable candidate for finding the right threshold automatically. Also, the different channels contain different information and it was observed that the saturation channel possessed information that was least impacted by shadows. Using these two facts, a dynamically computed thresholding scheme and multi-channel information processing system is implemented in this solution. The process of computing the threshold is outlined in Fig. 6. Figure 6. Algorithm to determine threshold for character recognition based on expected feature density A global threshold is first computed using Otsu s method [8] from the ROI. Based on this threshold, density is estimated for the region. If the density is not within the expected range, it is adjusted in steps until the region density falls within the desired range. The threshold thus determined is applied to the region image and this is input to the OCR. To further improve accuracy and robustness, data from multiple channels is thresholded individually using the above described scheme and fed to the OCR engine. The OCR results from the different channels are combined to arrive at the final text corresponding to the field in the credit card. In the current implementation, a simple majority is used to determine each character. This is not reliable when more than half of the channels are noisy. A more sophisticated algorithm with a weighting for the robustness of each channel needs to be incorporated in the arbitration scheme for better results. III. EXPERIMENTS AND RESULTS A Samsung Galaxy cell phone with an in-built camera was used to acquire 1920x2560 pixels RGB images. The JPEG images were imported into MATLAB for testing the image processing algorithms developed to process the credit card information. Four VISA and one American Express credit cards were used for the testing purpose. Images were taken under different illumination conditions, card orientations, zoom levels and backgrounds to evaluate the accuracy and robustness of the system. The results from four different tests are presented in the following sections: A. Test 1: American Express card photographed on white background In the first test, an American Express card illuminated under uniform lighting, oriented with the major axis horizontal and placed on a white background is tested. The outputs from various steps in the image processing pipeline are presented in Fig. 7. As can be seen from the results, the bounding box is correctly identified and the card center located correctly (Fig. 7G). The template based segmentation (Fig. 7J) shows the identified fields in the card. The output from the ROI identification step (Fig. 7 K,L) shows the selected ROIs and the final image used in OCR. The final result as reported from the consolidation of outputs from the OCRs for multiple channels is presented in Fig. 7M. It can be readily seen that all the numbers in the third number field and the date field are correctly identified. The first field has one digit mismatch (3743 is read as 3143). This is observed to be a general problem with the OCR software used (Tessaract). Upon inspection of the input image to OCR, it is confirmed that the number 7 is correctly highlighted. However, the OCR misinterprets this number and returns a 1 consistently. The second field has two digit mismatch (288823 is read as 222823). Finally, the name field has very poor detection rate. Several possible factors contribute to this: The font sizes are smaller than the numbers, and the letters have very tight spacing, both within the letter and between letters. As such, the images do not clearly capture the font shapes. Also, the close spacing of the structures causes shadows that exacerbate the problem. Additional work is required to process these characters in the name field to improve accuracy rate. B. Test 2: VISA card photographed on white background with rotation and scale changes The scale and rotational invariance of the system is checked in this test. A VISA card illuminated under uniform lighting, with the major axis tilted at an angle of approximately 30 degrees to the horizontal and placed on a white background is tested. The image is captured from a slightly longer distance compared to test1 so that the scale is different. The outputs from various steps in the image processing pipeline are presented in Fig. 8. Only outputs from key steps are presented here to avoid repetition. Once again, as can be seen from the results, the bounding box is correctly identified and the card center located appropriately (Fig. 8C). The normalized image(fig. 8D) demonstrates the rotational and scale invariance of the techniques used. In this case too, the success rate of identifying numbers correctly is high (all the digits in the number and date fields except one in each are accurately inferred. 4750 is read as 4150 once again highlighting a potential issue in the OCR software in correctly identifying the number 7.) The results from the name field demonstrate poor quality of the identification with respect to letters.

Figure 7. Images from various stages of the image processing pipeline: A. Input Image B. After Binarization C. Edge detection output. D. After dilation and density reduction. E Hough transform peaks corresponding to the lines detected. F. Lines found by Hough transform. G. Detected Bounding Box and Center. H. Normalized Image, major axis oriented horizontally and image zoomed to the card. I.Phase Correlation to detect type of card. J. Template based segmentation of the image to identify fields corresponding to the card number, expiration date and name. K, L Sample outputs from a field showing detected Harris corners (top row), Region of Interest using horizontal and vertical projections (middle row) and the thresholded image(bottom row) used for OCR. M. The final result generated by the program showing the information read from the card. Figure 8. Test 2 results: A. Input Image B. Lines found by Hough transform. C. Detected Bounding Box and Center. D. Normalized Image, E.Template based segmentation of the image F. ROIs after applying adaptive threshold. G. The final result.

C. Test 3: VISA card photographed in outdoor under sunlight In this case, the credit card image is taken under sunlight with a non-uniform background(fig. 9A). Since the image is taken under sunlight, it casts strong shadows and bright spots in the image. The card is held with the thumb obscuring part of the card, which is a natural position to hold the card while taking a photo. The results from the image processing system are presented in Fig. 9. Once again, intermediate repetitive images are omitted for sake of brevity. The key highlight of this testcase is the exercise of the backup mechanism for edge detection and bounding box extraction (Fig. 9,D,E), once the initial method fails to obtain the set of lines required to identify the bounding box (Fig. 9B,C). This demonstrates the robustness of the implementation, which is required for handling real life test cases. The output from this test case also correlates with earlier results: The numbers are identified with a relatively high level of accuracy of 90% (18 out of 20 characters are identified correctly. The number 4750 is read as 1150, with the 7 appearing as 1 in this case as well, as seen in test1 and test2), whereas we see poor accuracy with respect to the name identification (71.5%, with 10 out of 14 characters identified correctly). Figure 9. Test 3 results: A. Input Image B. Lines found by Hough transform. C. Failed Bounding Box Detection Since there are no perpendicular lines found. D. Second attempt using different edge detector E. New Hough lines generated F. Bounding Box successfully detected. G. Segmented card H. ROI detection using Harris corners and feature projections I. Input to OCR from different channels. J Output of the image processing system. D. Test 4: VISA card photographed during the demo session in Packard atrium This is the test case as obtained during the demo session in Packard atrium. The lighting is reflective and the photo was taken with the card held in hand with the chair in the background. The results from this test are presented in Fig. 10 for key intermediate steps and the final result. Once again it can be seen that the bounding box detection and orientation correction is performed accurately. The card is then segmented and ROIs extracted(fig 10D,E). The results demonstrate a high degree of correlation to earlier tests with the numbers once again identified with a higher accuracy compared to the alphabets. Fig. 11 highlights the importance of processing multi channel data. Though the results are from relatively few runs (4 tests performed), the comparison between using an intensity grayscale image only versus multiple channels (Red,Greeb,Blue,Hue,Saturation & Value), demonstrates the significance of using additional channels to improve robustness of the system.

Figure 10. Test 4 results: A. Input Image B. Bounding Box Detection.C. Normalized image D. Segmented card E. Input to OCR from one of the channels. F Output of the image processing system Total Tested Multi Channel Grayscale (Single Channel) Pass # Pass # Pass % Pass % Pass # Pass # Pass % Pass % Numbers Letters Numbers Letters Numbers Letters Numbers Letters Numbers Letters AMEX 19 11 16 1 84.21053 9.090909 15 10 78.94737 90.90909 VISA 20 14 18 9 90 64.28571 15 1 75 7.142857 VISA 20 14 18 9 90 64.28571 8 4 40 28.57143 VISA 20 14 18 10 90 71.42857 0 1 0 7.142857 Figure 11. Comparison of accuracy between multi-channel processing and grayscale intensity based processing, for numbers and letters. The multi-channel outperforms the single channel. However, even with multi-channel, letter recognition is very poor. IV. CONCLUSION An image processing based credit card reader is designed and implemented. There are many challenges that arise due to the 3D structures of the characters on the card. To improve the robustness and accuracy of the system several algorithms were implemented: an iterative bounding box detector, a novel scheme using feature detection and keypoint projection to accurately segment the image into regions of interest (ROI), a thresholding method based on region density and multiple channel information processing. More work is required for the system to function at commercially acceptable levels. The key limitation in the current system is the inability of the OCR software to handle images that are not from printed material. An OCR designed specifically to deal with the characters on a credit card, is required to address the problems seen. Multi-channel processing can be significantly improved by incorporating ratings and learning mechanism for determining reliability scores of the channels. Based on that, a weighted arbitration scheme can be used to improve the fault tolerance of the system. ACKNOWLEDGMENT I would like to express my sincere thanks to my project mentor Sam Tsai for various ideas, for his continuous support and help in acquiring credit cards. Thanks to David Chen for his help on various topics, Prof. Girod for his valuable suggestions, Reeve Ingle & Prof. Nishimura for discussions on the topic. REFERENCES [1] A comparison of top 10 credit card processing solutions on mobile platforms: http://credit-card-processing-review.toptenreviews.com/mobilecredit-card-processing/ [2] An alternative to hardware credit card readers: http://www.google.com/wallet/what-is-google-wallet.html [3] Credit card reader demos on you-tube: http://www.youtube.com/watch?v=ld_csdngbxo&feature=related [4] Ruo Zhang, Ping-Sing Tsai, James Edwin Cryer, and Mubarak Shah, Shape from Shading: A Survey, IEEE Trans. on Pattern analysis and machine intelligence., vol.21,o. 8, Aug. 1999. [5] S. M. Pizer, E. P. Amburn, J. D. Austin, Adaptive Histogram Equalization and Its Variation, Computer Vision, Graphics, and Image Processing 39 (1987) 355-368. [6] Lowe, David G., Distinctive image features from scale-invariant key points, International Journal of Computer Vision 60(2): 91-110. [7] Herbert Bay, Tinne Tuytelaars and Luc Van Gool, SURF: Speeded Up Robust Features, Lecture Notes in Computer Science, 2006, Volume 3951, Computer Vision ECCV 2006, Pages 404-417. [8] Nobuyuki Otsu, "A threshold selection method from gray-level histograms", IEEE Trans. Sys., Man., Cyber. 9 (1): 62 66