Creating a Web Interface for WinBank



Creating a Web Interface for WinBank

6.199 Advanced Undergraduate Project

Carolyn Ng

ngc@mit.edu

MIT EECS

Supervisors: Professor Amar Gupta

Dr. Rafael Palacios

Abstract

The goal of this project is to create a web interface for internet users to access the WinBank electronic checking system. The WinBank electronic checking system is a check truncation tool that allows check amounts to be read electronically by a software program. The backend of this system was originally a Matlab program that runs on its own. The Matlab program consists of a suite of functions that utilize neural networks to read check values from an image of the check submitted by the user. In order to expand the usage of this system, this project will make the WinBank system available to users on the web so that it can be easily demonstrated and tested by anyone who has access to the internet. This paper will proceed to discuss the background of WinBank, the motivation behind moving it to the World Wide Web, and the details of design and implementation for such a tool.

Table of Contents

1 Introduction 3

2 Background 4

3 Project Design 5

4 Project Implementation 6

5 Concluding Remarks 7

6 References 8

7 Appendix A: Code 9

8 Appendix B: Screenshots 12

1 Introduction

Each year in the United States alone, about 50 million checks are written and processed. The costs of processing these checks are extremely high because all the checks must be read by the human eye and then transported from depository banks to intermediaries until the check gets to the paying bank. The best solution to cut down costs would be for banks to electronically process these checks.

Check truncation is the practice of processing checks electronically between banks. It’s become an increasingly popular new possibility for processing checks and the Federal Reserve has just proposed the Check Truncation Act to help remove legal restrictions put on check truncation. In the past, banks have had problems with putting check truncation into practice partly because of the difficulties they have in reaching agreements on how to implement such a system. Many of the concerns that surround check truncation is based on the question of whether a reliable check recognition system can be developed to save the trouble of having checks read mechanically by humans.

WinBank is a system that focuses around Intelligent Character Recognition technology to automate recognition of handwritten numerals on bank checks. It was originally developed as a Matlab application that’s capable of reading any United States and Brazilian check for its value from a scanned image of the check. If check truncation were to be adopted by banks as the new innovative way to process checks, the new way to transport information from bank to bank will most likely take place on the web. The goal of this project is to create a straightforward web user interface to better simulate how real banks might use the system and allow anyone who has access to the internet try out the WinBank program.

2 Background

Most checks are partially processed automatically. Fields such as the account number and bank code are printed on a magnetic strip on the check, which allow them to be processed automatically to near accuracy. Currently, most banks require their employees to manually read the value of the check. The check value is written twice, once in words and once in numbers. The amount written in numbers is only supposed to be used for courtesy purposes, thus given the label “courtesy amount”. Most employees are only reading the courtesy amount when they record the check value. This value gets printed on to the bottom of the check in magnetic ink, so that it may be processed further.

WinBank was designed with the objective of identifying the courtesy amount of the check at a very high speed and level of accuracy. Emerging optical character recognition techniques and neural networks help WinBank to process checks automatically in a fast and cost efficient manner. The WinBank check recognition process is divided into three stages: preprocessing, recognition, and postprocessing.

Preprocessing starts with segmentation, where each numeral of the courtesy amount is divided into individual digits. Once separated, each digit gets normalized to a standard size of 16 X 16 pixels. Next, each digit goes through “slant correct” so the resulting character is completely vertical. This is followed by a process of thinning and thickening the character. If a character is connected well, thinning it to its skeleton would still retain connectivity and the original structural pattern.

During the recognition stage, each of the preprocessed characters is passed to a neural network to be read and determined the value of. The neural network has 256 inputs, for each of the 16 X 16 matrix. There 40 hidden nodes within the neural network to be connected to the inputs. These nodes connect to 10 outputs, digits that range from 0 to 9. The neural network does the work of recognizing the characters because any input would result to an output between 0 and 9.

The third stage, postprocessing, exists to handle invalid results. It’s always possible that segmentation was not performed effectively, causing results to be wrong. Postprocessing produces confidence values for each of the numeral bitmap and result pairs.

3 Project Design

The web version of WinBank will consist of three main types of files interacting with one another in order to make the client side web GUI communicate effectively with the backend Matlab program. The goal is to have the Matlab program run unnoticed on the server side while the client only directly interacts with HTML webpages.

In addition, HTML must be coupled with a scripting language in order to process user inputs and outputs. The scripting language will also be acting as a bridge between user input/output and the Matlab program on the server side. Figure 3.1 is an image of the components we need for this project and how they interact with one another.

On the server side, a new Matlab program must be written to interact with the original WinBank check recognition program. All the HTML and PHP scripting files will be interacting with this new Matlab program. This way, we can keep the original WinBank program decoupled from the new web GUI addition, without having to change anything from the original program.

[pic]

Figure 3.1

4 Project Implementation

The first part that must be implemented is a Matlab program, program.m, that would call read_checks, the original function that performs all the check recognition processes given the image of a check. This program.m has three main functions: it must be able to take in the image of a check as a parameter, call read_check.m with the check image along with various other parameters. Since read_check is a function that needs a total of four parameters, program.m is currently setting the rest of the parameters to default values. In the future, as read_checks is able to recognize checks from more countries, certain parameters, such as the pixels of the courtesy amount must be changed.

The HTML code for this project is very simple. Its main function is to prompt for user input of the check image and calling a php file to process the image. After the check image is uploaded, the php script calls program.m with the check image so its value can be read by the backend Matlab program. After Matlab outputs a value for the check, that value is saved to a data file with its corresponding confidence value. Another php script is then used to extract the output from the data file and output it to the user. If the client is satisfied with the output, check value matches the WinBank prediction, the program ends. If the user isn’t satisfied, he’s asked if he would like to be redirected back to the main page to try again.

5 Concluding Remarks

The ultimate purpose of this project is to serve as a demo for performing WinBank check processing over the web. The significance of the project lies in the expectation that when check truncation does take place, it will be done through the internet where banks can communicate with one another most effectively. The internet is the only network currently robust enough to handle communication and file sharing on such a large scale.

As WinBank expands its functionality to recognize more checks of various formats, or improves its performance and accuracy level, the design of this project will allow the client side web files to continue interacting with the backend functions effectively.

There are also many possible expansions that can be made to the current web interface. At this point, it’s only performing the most basic and essential methods. When the number of clients increase, there will be a need to handle threading issues. The program might also need to make use of a database where check images can be stored along with their results. The possibilities of expanding this web interface will largely parallel the functions of the original Matlab program. Most of the web interface expansions might mainly focus around scaling and timing issues.

6 References

[1] Rafael Palacios and Amar Gupta, “A System for Processing Handwritten Checks Automatically”, March 19, 2002 .

[2] Rafael Palacios, Amar Gupta, and Patrick S.P. Wang, “Reading Courtesy Amounts on Handwritten Paper Checks”, May 31, 2002.

[3] Winnie Chan, “Improving the Automatic Processing of Handwritten Bank Checks”, February 2002.

[4] Daniel Gonzalez, “Improvement of the Recognition Module of WinBank”, June 2002

[5]

[6]

7 Appendix A: Code

program.m (Matlab program that calls WinBank Program)

function program(checkImg)

a=read_checks(checkImg,[290,1410,380,1720],170,0);

f=fopen('result.txt','w');

fprintf(f,'%s',a);

fclose(f);

quit;

upload.html (asks user to input a check image and sends the image to myupload.php)

WinBank Online

Welcome to WinBank

This is a web version of the Winbank program where you will be prompted to submit the image of a check you wish to have processed. After the check image's been uploaded and

processed successfully, you will be shown the check value Winbank was able to detect.

Please upload a check image:

myupload.php (checks to see if user image is uploaded, if not, it will use a default image. Runs program.m with the check image)

WinBank Online

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download