Bangla Handwritten Pin Code String Recognition for Indian Postal Automation Umapada Pal
Kaushik Roy
Fumitaka Kimura
CVPR Unit, Indian Statistical Institute, Kolkata108, India Email:
[email protected]
Dept. of Comp. Sc. & Engg. West Bengal University of Technology, Kol64, India
Graduate School of Engg., Mie University; 1577 Kurimamachiyacho, TSU, Mie 5148507, Japan
Abstract Indian pin code is a sixdigit string. Because of the writing style of different individuals some of the digits in a pin code string may touch with its neighboring digits. Accurate segmentation of such touching components into individual digits is a difficult task. To avoid such segmentation, here we consider a pin code string as word and the pin code recognition problem is treated as lexicon free word recognition. In the proposed method, at first, binarization of the input document is done. Next, water reservoir concept is applied to presegment a pin code string into possible primitive components (individual digits or its parts). Presegmented components of the pin code are then merged into possible digits to get the best pin code. In order to merge these primitive components into digits and to find optimum segmentation, dynamic programming (DP) is applied using total likelihood of digits as the objective function. To compute the likelihood of a digit, modified quadratic discriminant function (MQDF) is used. The features used in the MQDF are based on the directional information of the components. Our system on handwritten Bangla pin code shows 99.08% reliability when rejection and error rates are 19.28% and 0.74%, respectively. Key words: Handwritten digit recognition, Pin code recognition, Bangla script, Indian postal automation.
1. Introduction Postal automation is a topic of research interest for last two decades and many pieces of published article are available towards postal automation of nonIndian language documents [3,5]. At present postal sorting machines are available in several countries like USA, UK, Canada, Japan, France, Germany etc. But no postal automation machine is available for India. System development towards postal automation for a country like India is more difficult than other countries because of its multilingual and multiscript behavior. In India there are 22 official languages and 11 different scripts are used to write these languages. An Indian postal document may be written in any of these official languages. Although there are many languages and scripts in India, only a few pieces of work have been done towards postal automation in India [6,8]. Indian pin code (postal code) is a sixdigit number and we can locate a post office with this pin code. There are four postal regions in India. The first digit of pin code indicates one
of these regions. The first two digits together indicate the subregion or one of the postal circles. The first three digits together indicate a sorting revenue district. The last three digits refer to the delivery post office. Because of the writing style of different individuals some of the digits in a pin code may touch with its neighboring digits. For pin code recognition, researchers mainly segment the pin code into individual digits and then use recognition algorithm on each of the segmented digits. The segmentation of touching digits is the main bottleneck in the handwritten recognition system and many algorithms for the segmentation of touching digit string have been proposed in the past years [2,7]. To take care of touching strings some of the researchers used segmentation based recognition scheme and some researchers used holistic approach for touching string recognition [9]. Bangla is a popular Indian language and like other languages it contains ten digits. The digits of Bangla are shown in Fig.1. In Bangla postal document digits in a pin code may touch in different manners like top touching, middle touching and bottom touching. Some examples of such touching categories are shown in Fig.2. Also touching may be categorized as single point touching, multiple point touching, ligature point touching etc. Moreover, two, three, four and five digit touching strings are also available in Indian pin code. See Fig.3 where Bangla touching strings of different digits are shown. It is very difficult for accurate segmentation of such touching string. To avoid such segmentation of touching string into individual digits, in this paper, we consider sixdigit pin code string as a word and the pin code recognition problem is treated as lexicon free word recognition.
Figure 1. Examples of printed digits. (a) English digit (b) Corresponding Bangla digits.
The recognition approach proposed in this paper is as follows. At first binarization of the input document is done and pin code is presegmented into possible components (individual digits or its parts). It is noted that when two or more digits touch each other in a pin code they generate big cavity regions (spaces). For example see Fig.4. Because of this touching behavior, we use water reservoir based concept [7] for the presegmentation of pin code into primitives. Each
primitive ideally consists of a single digit or a subimage of a single digit. Presegmented components of a pin code are then merged into possible digits to get the best possible pin code. In order to merge these primitive components into digits and to find optimum segmentation, dynamic programming (DP) is applied using total likelihood of digits as the objective function. To compute the likelihood of a digit, Modified Quadratic Discriminant Function (MQDF) is used.
group is very similar and such shape similarity reduces the recognition accuracy of a system.
Figure 5. Some similar shape Bangla digits.
3. Pin code presegmentation
Figure 2. Example of different touching manners of Bangla digits.
Figure 3. Example of touching Bangla digits: (a) Two digit touching (b) Three digit touching (c) Four digit touching (d) Five digit touching string.
Figure 4. Big cavity region is marked gray shade.
2. Properties of Bangla script Bangla, the second most popular language in India and the fifth most popular language in the world, is an ancient IndoAryans language. More than 200 million people in the eastern part of Indian subcontinent speak in this language. Bangla script alphabet is used in texts of Bangla, Assamese and Manipuri languages. Also, Bangla is the national language of Bangladesh. As shown in Fig.1, there are 10 digits in Bangla and the modern Bangla script consists of 11 vowels and 39 consonants. Main difficulty of any recognition system is shape similarity. In Bangla some digits have shape similarity. Examples of some similar shaped digits are shown in Fig.5. From the figure it can be seen that shapes of two digits of a
To find optimal segmentation by the segmentationrecognition scheme using dynamic programming, we presegmented the pin code into primitives. In digit presegmentation our aim was to get oversegmentation instead of under segmentation. As mentioned earlier when two or more digits sit side by side in a touching pin code, they generate big cavity regions (spaces). Because of such touching nature we use water reservoir concept for digit presegmentation. For segmentation we find top and bottom water reservoirs from an input pin code. Water reservoir is a metaphor to illustrate the cavity region of a component. If water is poured from a side of a component, the cavity regions of the background portion of the component where water will be stored are considered as reservoirs of the component. Water reservoir concept is not new and we have used it in other applications. For details about water reservoir and its different property see our paper [7]. To detect presegmentation point in a reservoir of a component, we first find two candidate border points of the reservoir. Computation of candidate border points is done as follows. From the reservoir baseline we consider the portion of the reservoir up to height 4*RL and we note two border points of the reservoir at this height. (By baseline we mean a line, passing through the deepest point of a reservoir and parallel to its water flow level. RL is stroke length and its computation is discussed later.) These two border points are considered as candidate border points. For illustration see Fig.6 where two candidate border points are shown and marked as A and B. Let the coordinates of these two candidate border points A and B be (xl yl) and (xr yr), respectively. Here y is the vertical axis and considered as row and x is the horizontal axis and considered as column. We scan the component vertically for each of the columns between xl and xr and find the number of crossing (black run) in each of the columns. The column from which we get minimum number of crossing is considered for presegmentation. If we get two or more such columns with minimum number of crossing then the column having minimum stroke width is considered for segmentation. Note that when two components touch, generally the stroke near the touching portion is thinner than the neighboring part. Based on this property, we decided to use the column having minimum stroke width for segmentation. If the height of a reservoir is less than 4*RL then we consider the portion of the entire reservoir for candidate border points detection.
Figure 6. Candidate border point detection. Here two candidate border points A and B of a bottom reservoir are shown by small circles.
The presegmentation columns, obtained from a pin code shown in Fig.7(a), are marked by small vertical lines in Fig.7(b). Please note that all the reservoirs are not considered for presegmentation. Those reservoirs having height greater than 1.5*RL are considered for segmentation. Because of the structural shape of some digits in Bangla, some small reservoirs may be obtained where segmentation should not be done and we use this threshold to ignore the segmentations of such small reservoirs. In digit presegmentation our aim was to segment a pin code into individual digits as much as possible avoiding much over segmentation. Note that we assumed there was no under segmentation in our presegmentation stage.
segmentation column and separated into horizontally nonoverlapping zones. A connected component analysis is applied to the split image to detect the boxes enclosing each connected component. These boxes are usually disjoint and do not include parts of other connected components. Connected components in the split pin code image and their enclosing boxes are shown in Fig.7(c). These boxes are numbered (from left to right) and these numbers are also shown in Fig.7(c). These connected components are regarded as primitive segments and each of which corresponds to a full digit or a part of a digit.
4. Feature extraction For our recognition purpose we have used two sets of feature. For faster internal merging of presegmented primitives in dynamic programming we used 64dimensional features. Histograms of direction chain code of the contour points of the components are used for this feature. Once internal merging is accomplished, higher dimensional feature (here we use 400dimension) obtained from gradient information is used to get better accuracy. Feature extraction procedures are described below.
4.1.
Figure 7. Example of digit segmentation from a pin code. (a) An input pin code. (b) Top (marked by light gray) and bottom reservoirs (marked by dark gray) obtained from the digits of the pin code are shown. Small vertical lines define presegmentation columns. (c) Individual primitives obtained through segmentation are marked by disjoint boxes and they are numbered in English. (d) Optimum digit segmentation. Here segmented individual digits and their respective printed Bangla digit are shown. The stroke length (RL) is calculated as follows. The image is scanned in row and columnwise and different runlengths with their frequencies are computed. If from the scanning of a component we get n different runs of length r1, r2,..rn with frequencies f1, f2 ...fn, respectively, then RL=ri where fi = max(fj), j = 1...n. After detection of presegmentation columns from an input pin code image, the image is split vertically at each pre
64 dimensional feature extraction
At first the bounding box is divided into 7 × 7 blocks (as shown in Fig.8c). In each of these blocks the direction chain code for each contour point is noted and frequency of direction codes is computed. Here we use chain code of four directions only as shown in Fig.9. [direction n0 (horizontal), n1 (45 degree slanted), n2 (vertical) and n3 (135 degree slanted)]. Thus, in each block, we get an array of four integer values representing the frequencies of chain code in these four directions. These frequencies are used as feature. Histogram of the values of these four direction codes in each block of a Bangla digit is shown in Fig.8(d). Thus, for 7 × 7 blocks we get 7 × 7 × 4 =196 features. To reduce the feature dimension, after the histogram calculation in 7 × 7 blocks, the blocks are down sampled into 4 × 4 blocks using a Gaussian filter. As a result we have 64 (4 × 4 × 4) dimensional features for recognition. Histogram of these values of all the four directions obtained after down sampling is shown in Fig.8(e). The feature vector is normalized by dividing each of its elements by the height of the character to make it size independent. One critical point in segmentationrecognition techniques using dynamic programming is the speed of feature extraction, because the correct segmentation points have to be determined in optimization process with respect to the total likelihood of the resultant digits. The use of the cumulative orientation histogram enables one to realize highspeed feature extraction. Border following for feature extraction and orientation labeling are performed only once to an input pin code image, and the orientation feature vector of a rectangular region including one or more boxes is extracted by a small number of arithmetic operations for highspeed feature extraction [3].
segments of an input pin code image are merged and matched against the most likely digits so that the average digit likelihood is maximized using dynamic programming.
5.1. Markov chain representation
Figure 8. Example of feature extraction (a) Bangla digit six. (b) Contour of the digit. (c) 7 x 7 segmented blocks shown in the zoomed version of the digit of 8(b). (d) Blockwise chain code histogram of contour points. (e) Histogram of chain code direction of the contour points after down sampling into 4 x 4 blocks from 7 x 7 blocks.
The number of the primitive segments of a pin code image is usually 1 to 2 times as many as the number of digits in the pin code. In order to merge these primitive components into digits and find the optimum digit segmentation, dynamic programming is applied using the total likelihood of digits as the objective function [4]. The number of digits in a pin code is utilized in the process of dynamic programming to incorporate contextual information. The likelihood of each digit is calculated using the MQDF. To apply the dynamic programming, the primitive segments (boxes) are sorted from left to right according to the location of their centroids. If two or more boxes have the same x coordinates of their centroids, they are sorted from top to bottom. Numbers at the top/bottom of the boxes in Fig.7(c) show the order of the sorted boxes. It is worth observing that the disjoint box segmentation and the box sorting process reduce the segmentation problem to a simple Markov process, in most cases. For example, the boxes 1 and 2 of Fig.7(c) correspond to digit “৭ ” (seven) of the Bangla pin code ৭ ১ ১ ৩ ২ ৫ , box 3 corresponds to “১ ” (one), box 4 to 6 correspond to “১ ” (one), box 7 and 8 correspond to “৩ ” (three), box 9 corresponds to “২ ”(two),
Figure 9. Different chain codes used are shown.
4.2 400 dimensional feature extraction The accuracy of the classifier employed in internal merging is restricted due to the requirement on the computation time. However, once the internal merging of presegmented primitives is accomplished, a higher dimensional feature set can be applied to each segmented digit to obtain more accurate digit likelihood. We use 400 dimensional features for the purpose and it is computed in the similar way as for 64dimensional feature vector. The number of blocks was initially 9 x 9 and it is down sampled to 5 x 5. The quantization level of orientation was 16 instead of 4 orientations. To obtain 16 directions, Gaussian filter and Roberts filter are applied to a digit image to obtain a gradient image. The arc tangent of the gradient is quantized into 16 directions and the strength of the gradient is accumulated in each direction in each block. For details of 400dimensional feature extraction see [4].
5. Segmentationrecognition using dynamic programming The core of a dynamic programming algorithm is the module that takes an input pin code image, number of digits (= 6, because Indian pin code string contains 6 digits), and a list of the primitives from the input pin code image and returns a value that indicates the confidence that the input pin code image represents a six digit numeral string. The primitive
and finally boxes 10 and 11 correspond to Bangla digit “৫ ” (five). See Fig.7(d) where representation codes of this pin code image are given. The assignments of boxes to digits are represented, for example, by ৭ ১ ১ ৩ ২ ৫  where "" is used to denote the continuation. The assignment is also represented, for example, by ৭ ১ ১ ৩২ ৫ i > 1 2 3 4 5 6 j(i) > 2 3 6 8 9 11 where i denotes the digit number, j(i) denotes the number of the last box corresponding to the ith digit. Note that the number of the first box corresponding to the ith digit is j(i1)+1. Given [j(i),i=1,2,..,n] the total likelihood of digits is represented by n L = ∑l(i,j(i1)+1,j(i)) (1) i=1 where l(i,j(i1)+1,j(i)) is the likelihood for ith digit. The optimal assignment (the optimal segmentation) that maximizes the total likelihood is found in terms of the dynamic programming as follows: The optimal assignment j(n)* for nth digit is the one such that L*= L(n,j(n)*) = Max L(n,j(n)) (2) j(n)
where L(k,j(k)) is the maximum likelihood of partial solutions given j(k) for the kth digit, which is defined and calculated recursively by k L(k,j(k)) = Max { ∑l(i,j(i1)+1,j(i)) } j (1), j ( 2 )...... j ( k −1) i=1 k1 Max [l(k,j(k1)+1,j(k))+ ∑l(i,j(i1)+1,j(i)) }] = j (1), j ( 2 )... j ( k −1) i=1 k1 { ∑l(i,j(i1)+1,j(i)) = Max [l(k,j(k1)+1,j(k)) + Max j ( k −1) j (1), j ( 2 )...... j ( k − 2 ) i=1 }] (3) = Max [l(k,j(k1)+1,j(k))+ L(k1,j(k1))] j ( k −1)
and L(0,j(0)) = 0 for j(0)=1,2,...,m (4) Starting from (4), all L(k,j(k))'s are calculated for k=1,2,...,n using (3) to find j(n)* using (2). The rest of j(k)*'s (k=n1,n2,...,1) are found by back tracking a pointer array representing the optimal j(k1)*'s which maximizes L(k,j(k)) in (3).
5.2.
MQDF for digit likelihood
Digit likelihood is calculated by the following modified quadratic discriminant function [4]. k λi [φ T(XM ^ ^ 2 2 g(X)={XM 2 ∑ )] }/h + i 2 i =1 λi + h

k
ln[h 2 ( n − k ) Π (λi + h 2 )] i =1
^ where X denotes the input feature vector, M denotes the sample mean vector for each digit class, and λi and φi denote the eigen values and eigen vectors of the sample covariance matrix. Values of constants h2 and k are selected experimentally to achieve the best performance. In the following experiments, k is set to 20 and h2 to 3/8*σ2, where σ2is the mean of eigen values λi’s over i and digit classes. Given a feature vector, g(X) is calculated for all digit classes to find the maximum likelihood and the digit class. Based on the digit likelihood, total likelihood of a pin code is found in terms of the dynamic programming technique as discussed above.
6. Results and discussion For the experiment of the pin code recognition scheme proposed in this paper we collected 2692 handwritten pin codes samples in Bangla script. Number of total pin code class was 250. Minimum (maximum) number of samples in a class was 6 (20). These data are digitized at 300 DPI from handwritten address block of Indian postal documents as well as from some individuals. We have used 5fold cross validation scheme for recognition result computation. Here database is divided into 5 subsets and testing is done on each subset using other four subsets for learning. The recognition
rates for all the test subsets are averaged to calculate recognition accuracy. For recognition result computation we used different measures and they are defined as follows: Recognition rate = (NC*100) / NT, Error rate = (NE*100) / NT, Reject rate = (NR*100) / NT, Reliability = (NC*100) / (NE+NC), Where NC is the number of correctly classified pin codes, NE is the number of misclassified pin codes, NR is the number of rejected pin codes and NT is the total number of pin codes tested by the classifier. Here NT = (NC +NE +NR).
6.1. Global recognition results From the experiment we noted that the pin code recognition accuracy of the proposed scheme was 92.50%, when 0.15% rejection was considered. Also, from the experiment we noted that 95.32% (96.10%) accuracy was obtained when first two (three) top choices of the recognition results were considered. Detail results with different choices are shown in Table 1. From the table it can be noted that recognition accuracy increases 2.82% when we consider two top choices instead of one top choice. We analyzed the results and noted that increment of this 2.82% accuracy is mainly due to the presence of some similar shape digits that make two pin codes similar in shape. Table 1: Pin code recognition results based on different top choices (when rejection is 0.15%)
Number of top choices Only 1 choice Only first 2 choices Only first 3 choices Only first 4 choices
Recognition rate 92.50% 95.32% 96.10% 96.29%
6.2. Rejection versus error rate From the experiment we also computed reliability of our system. We obtained 99.08% reliability when error rate is 0.74% and rejection rate is 19.28%. Pin code recognition reliability with different rejection rates is given in Table 2. Rejection is done based on the following criteria: (i) minimum optimal likelihood value of the best recognized pin code, and (ii) minimum difference of the optimal likelihood values of the best and the secondbest recognized pin codes. Table 2: Error and reliability results of the proposed system with respect to different rejection rates.
Reliability (%) 95.02 97.00 98.07 99.08
Error rate (%) 4.68 2.67 1.60 0.74
Rejection rate (%) 3.75 7.13 11.37 19.28
6.3. Confusing pin code digit pair From the experiment we also noticed the main confusing digit pairs of the pin codes. The digits 0 and 5 were confused most
and their confusion rate was 0.173%. The next most confusing pair was 0 and 1, and they confused 0.170% cases. The confusion matrix of the pin code digits is given in Table 3. Table 3: Confusion matrix of the erroneous digits.
Table 5: Comparative results on isolated digits.
Approach Xiang et al. [12] Wen et al.[11] Basu et al. [1] Roy et al. [10] Proposed method
Data size 10000 16000 6000 14650 16128
Accuracy 90.12% 95.05% 95.10% 96.66% 98.10%
7. Conclusion In this paper we proposed a system for Indian handwritten pin code string recognition and the pin code string recognition problem is treated as lexicon free word recognition. We obtained 99.08% reliability from our proposed system when error and rejection rates are 0.74% and 19.28%, respectively. This is the first work of its kind among Indian languages and the proposed method can be used for other Indian scripts.
References
6.4. Error analysis From the experiment we noted that some errors occurred when the set of digit presegmentation points obtained from our presegmentation module did not contain actual digit segmentation points. Some examples of such erroneous pin codes with their segmentation are shown in Fig.10. Another reason of misrecognition was the shape similarity of some of the pin codes.
Figure 10. Examples of some missrecognized pin codes due to improper segmentation.
6.5. Digitwise error computation We also classified different pin code recognition errors in term of the error in number of digits. We noted that 70.5% of the pin code errors are onedigit error. That means 70.5% cases the pin code errors occurred in single digit place only. In 15.5% (7.5%) cases the error was in two (three) digit place. Distribution of pin code errors in terms of the error in number of digit is shown in Table 4. Table 4: Distribution of different digit error.
Error in number of digits 1 2 3 Other
Percentage (%) of error 70.5 15.5 7.5 6.5
6.6. Comparison of results To the best of our knowledge there is no work on full pin code recognition on Indian script, although there are some works on isolated pin code digit recognition. Hence we cannot compare our results. However to compare the results on isolated digits we computed the accuracy of our classifier on isolated digits and the comparative result is shown in Table 5.
[1] S. Basu, R. Sarkar, N. Das, M. Kundu, M. Nasipuri and D. K. Basu, “Handwritten Bangla Digit Recognition Using Classifier Combination Through DS Technique”, In Proc. PReMI2005, pp. 236241, 2005. [2] Y. K. Chen and J. F. Wang, “Segmentation of Single or MultipleTouching Handwritten Numeral String Using Background and Foreground Analysis”, IEEE Trans PAMI, vol. 22, pp. 1304  1317, 2000. [3] F. Kimura, Y. Miyake and M. Sridhar, “Handwritten ZIP Code Recognition Using Lexicon Free Word Recognition Algorithm”, In Proc. Int. Conf. Document Anal. Recog, pp. 906910, 1995. [4] F. Kimura, T. Wakabayashi, S. Tsuruoka and Y. Miyake, “Improvement of handwritten Japanese character recognition using weighted direction code histogram”, Pattern Recognition, vol. 30, pp. 13291337, 1997. [5] L. Liu and M. Koga and H, Fujisawa, “Lexicon Driven Segmentation and Recognition of Handwritten Character Strings for Japanese Address Reading”, IEEE Trans PAMI, vol. 24, pp. 14251437, 2002. [6] P. Nagabhushan, S. A. Angadi, S. Basavaraj and A. Anami, “A Fuzzy Symbolic Inference System for Postal Address Component Extraction and Labeling”, FSKD, pp. 937946, 2006. [7] U. Pal, A. Belaid and C. Choisy “Touching digit segmentation using water reservoir concept”, PRL, vol.24, pp. 261272, 2003. [8] U. Pal, K. Roy and F. Kimura, "A Lexicon Driven Method for Unconstrained Bangla Handwritten word Recognition", In Proc. Int. Work. Frontiers in Handwriting Recog, pp. 601606, 2006. [9] R. Plamondon and S. N. Srihari, “OnLine and offline handwritten recognition: A comprehensive survey”, IEEE Trans PAMI, vol. 22, pp. 6284, 2000. [10] K. Roy, T. Pal, U. Pal, and F. Kimura, “System for Bangla handwritten digit recognition based of directional feature”, In Proc. ICCR05, pp. 497505, 2005. [11] Y. Wen, Y. Lu and P. Shi, “Handwritten Bangla digit recognition system and its application to postal automation”, PR, vol. 40, pp. 99107, 2007. [12] J. Y. Xiang, S. L. Sun and Y. Lu, “A high reliability classifier using decision trees and AdaBoost for recognizing handwritten Bangla numerals”, In Proc. ICWAPR, pp. 11551160, 2007.