JOURNAL OF AUTOMATIC CONTROL, UNIVERSITY OF BELGRADE , VOL.

20:17-25, 2010

A Novel Framework for Farsi and Latin Script Identification and Farsi Handwritten Digit RecognitionAlireza Behrad, Malike Khoddami and Mehdi SalehpourAbstract Optical character recognition is an important task for converting handwritten and printed documents to digital format. In multilingual systems, a necessary process before OCR algorithm is script identification. In this paper novel methods for the script language identification and the recognition of Farsi handwritten digits are proposed. Our method for script identification is based on curvature scale space features. The proposed features are rotation and scale invariant and can be used to identify scripts with different fonts. We assumed that the bilingual scripts may have Farsi and English words and characters together; therefore the algorithm is designed to be able to recognize scripts in the connected components level. The output of the recognition is then generalized to word, line and page levels. We used cluster based weighted support vector machine for the classification and recognition of Farsi handwritten digits that is reasonably robust against rotation and scaling. The algorithm extracts the required features using principle component analysis (PCA) and linear discrimination analysis (LDA) algorithms. The extracted features are then classified using a new classification algorithm called cluster based weighted SVM (CBWSVM). The experimental results showed the promise of the algorithms. Index Terms Curvature scale space, Script identification, Optical character recognition, CBWSVM , Clustering, Handwritten digit recognition, PCA, PCA-LDA .

I. INTRODUCTION

high volume of available printed and paper documents are converted to digital image documents by use of scanners or cameras. Storage, retrieval and efficient management of these image documents are very important in many applications, such as office automation and digital libraries. It is sometimes necessary to retrieve required information from such digital documents. Therefore optical character recognition systems have been developed which are techniques for converting text images into computer readable/editable texts. In multilingual documents, script identification is a main stage before applying OCR algorithms. Among different applications of OCR, the recognition of handwritten digits has many usages including the recognition of digits in post office and bank applications [1]. Different algorithms and features are used for the identification of digits and characters. In [2],[3] the combination of classifiers are used for recognition of handwritten Farsi digits. In [4] normalized Gabor filter bank Alireza Behrad is with the Faculty of Engineering, Electrical Engineering Department of Shahed University Tehran, Iran. (phone: (+98 -21) 51212036; e-mail: behrad@shahed.ac.ir). Malike Khoddami is Msc. Student of Faculty of Engineering, Shahed University Tehran, Iran (e-mail: khoddami@shahed.ac.ir). Mehdi Salehpour is Msc. Student of Faculty of Engineering, Shahed University Tehran, Iran (e-mail: salehpour@shahed.ac.ir).

ODAY,

DOI: 10.2298/JAC1001017B

with zero DC response is used for indexing and the retrieval of character images. However the algorithm is sensitive to selection of Gabor filter parameters including bandwidth and orientation. In [5] one-dimension geometric moments with Bayes classifier is used for the recognition of Arabic characters; however the method is only tested for the recognition of printed documents and the efficiency of the algorithm has not been demonstrated for the recognition of the handwritten characters. In [6] the recognition of Persian digits is performed by overlaying different normalized images of one class and counting the number of black pixels in different pixel coordinates. The resultant image representing the number of black pixels in different pixel coordinates is used for the classification of test images. However the method is sensitive to the location of digits in the area and outliers. In addition, the rotation of the digits gives rise to the generation of different patterns than patterns of database and hence erroneous recognition. Neuro-fuzzy algorithm is another method for the recognition of handwritten characters proposed by [7]. However the method needs the intervention of human experts in some parts of the algorithm. Script identification is a main stage before applying OCR algorithms in multilingual documents. Different methods have been presented for script identification which can be divided into two well-known groups including algorithms based on global features and algorithms based on local features. The first group is based on global features of the text such as textures. For example, in [8] co-occurrence matrix and wavelet analysis are used to extract texture features for differentiation between eight languages. In [9] and [10] recognition of scripts is performed in word-level using texture analysis through Gabor filter. The second group of script identification algorithms is based on local analysis which relies on local features and mostly acts on word and connected components levels. Features in these methods are further divided into four categories including 1- Structural or geometric features, 2- Morphological features, 3- Statistical features and 4- Spatial spread features. Structural features include features such as physical size of the blocks, black pixels density, width, height, aspect ratio, area and so forth [11], [12]. Morphological features are general description of text, according to script and connected components, regardless of its physical structure. The morphological features such as number of holes and upward concavities are related to inherent shape features of each script [12], [13]. Statistical features are simple mathematical approaches dealing with distribution of pixels in the character image. This set of structural features are mostly based on connected components inside the specified image blocks; such as mean and variance of the width, height, ratio and the area of connected components.

Statistical features are extracted at higher levels such as words, lines and text blocks [12], [13]. Spatial spread features provide information about scattering of ascenders and descenders, regional pixels concentration and characters density [10], [11]. In Latin based languages that have similar texture characteristics, identification is performed using word and character shape coding. Word shape coding convert the word images into shape codes using shape characteristics [14], [15]. In this paper we propose new algorithms for Farsi and Latin script identification and Farsi handwritten digit recognition. We assumed that the bilingual scripts may have Farsi and English words, characters and digits together; therefore we used new local features based on curvature scale space (CSS) representation to identify scripts in different levels [16]. The proposed algorithms can operates in different levels such as connected component, word, line and page levels. We used cluster based weighted support vector machine for the classification and recognition of Farsi handwritten digits that is reasonably robust against rotation and scaling [17]. We used two different methods for feature extraction as well as two different methods for classification and the results are compared with each other and those of other methods. Experimental results showed the effectiveness of the proposed algorithms. The structure of this paper is as follows: in the next section we review the fundamentals of curvature scale space representation, and the proposed algorithm for script identification. In section 3 the proposed algorithm for recognition of Farsi handwritten digits are described. Experimental results are given in section 4 and conclusions appear in section 5. II. SCRIPT IDENTIFICATION IN FARSI AND LATIN BILINGUALDOCUMENTS

In the above equation the first and second derivatives of X and Y are estimated using the first and second derivative of Gaussian function. The function defined by the equation, K (u , ) = 0 , is called the CSS image of a planar curve [18]. In [18], [19] different properties of CSS image are discussed. It is shown that renormalized CSS image is more robust against curve noise. In renormalized CSS image the evolved curve length parameter as follows:

Fig. 1 shows the renormalized CSS image for letter H at different scales. The renormalized CSS representation is robust with respect to scale, noise and change in orientation. The rotation of the curve usually causes a circular shift on its representation. Due to arc length normalization, scaling does not change the representation, and noise may create some small contours in the CSS image, but the main contours and therefore the corresponding maximums remain unaffected. CSS image retains the local properties of the shape. Every contour of the CSS image corresponds to a concavity or a convexity of the shape. A local deformation of the shape mainly causes a change in the corresponding contour of the CSS image.

To make the curvature values robust against the curve noises, the evolved version of the curve is used to calculate the curvature. The evolved version of a curve is calculated by convolving the curve with a 1D Gaussian kernel of width as follows: Y (u, ) = y (u ) g (u , ) X (u, ) = x(u ) g (u, ) = R (u, ) = ( X (u , ), Y (u, )) (3) (4) (5) B. The proposed algorithm We assumed that the bilingual scripts may have Farsi andFig. 1. CSS images of letter H at different scales

JOURNAL OF AUTOMATIC CONTROL, UNIVERSITY OF BELGRADE, VOL. 20, 2010 English words and characters together; therefore we proposed an algorithm to recognize scripts in the connected components level. The output of recognition is then generalized to word identification. For the scripts that a complete line or page contains characters of one language, the algorithm can be extended to identify scripts in line or page levels by checking the number of recognized Farsi and Latin word in the line or the number of the recognized Farsi and Latin lines in the page. Therefore the proposed algorithm can be used in connected component, word, line and page levels. The proposed algorithm has the following steps: Apply required preprocessing to extract lines, words and connected components. Represent each connected component as planar curve and extract required features. Classify the features and identify script language in connected component level Recognize script language in higher levels Preprocessing The first stage of the proposed algorithm is the identification based on connected components. To identify connected components we first smooth the input image and apply threshold to convert it to binary image. We used Otsu method [20] to calculate threshold. We then extract connected components and remove small components such as dots and commas which are common in both Farsi and Latin language. To obtain the threshold for removing small connected components, we calculate the number of pixels for largest component in the text and divide it by 13 to calculate the required threshold. The number was obtained experimentally. To recognize script in higher levels we need to extract word and line in the text. To extract lines in the input text, the image profile in horizontal directions are calculated. When the lines are extracted the vertical profile of each line is used to extract words. Feature extraction To obtain proper features for the classification of connected components, we first extract the outer contour of connected components and represent them as planar curve = r(u) = (x( u), y(u)) . To extract outer contours, we fill holes in the connected components and find pixels in the boundary of connected components. To normalize the arc length, the extracted curves are resampled and represented by 200 equally distant samples. We used renormalized CSS representation to extract features from curves. As it is shown in Fig. 1, CSS image contains several contours with different local maximums. We used local maximums of CSS contours to extract proper features for script identification. CSS contours with local maximum of less amplitude are related to noise or small ripples of the curve. In order to avoid noisy feature we remove CSS contours with maximum amplitude value of less than 0.2 of the largest maximum value in CSS image. Each local maximum in CSS image is specified with amplitude value and the renormalized curve index . Although the general shape of CSS image doesnt change with curve scale and rotation, the rotation and change in the starting point of a curve causes a circular shift in and the CSS representation. The change in curve scale also scales the amplitude of CSS representation. To cope with this problem

19

we used the difference of and the ratio of values for two successive local maximums as features. We used 5 largest local maximums of CSS image to extract 10 CSS based features including 5 differences and 5 ratios. It is important to note that considering the circular shift property of CSS image, the fifth local maximum is compared to the first local maximum. Removing CSS curve with less amplitude, may result in CSS images with less than five local maximums, in this case we fill the empty elements with a constant number larger than max and max . For CSS image with only one local maximum, it is also impossible to calculate the difference and ratio. In this situation, we find the values for = 0.5 max and the difference of the obtained values is used as feature. The ratio for this case is assumed to be one. Curvature scale space representation produce no local maximum for sphere like connected components such as "o" letter in Latin and " "letter in Farsi, in this case the feature vectors are similar for both letters. To handle this problem we added five other shape based and structural features to our feature vector as follows: The ratio of vertical profile maximum after filling holes to the height of connected component (VPMXHR). The ratio of vertical profile mean after filling its holes to the height of connected component (VPMNHR). Height to width ratio of connected component (HWR). The number of holes in connected component (NH). The number of local maximums extracted from CSS image (NLM). Table I shows the summary of the proposed feature vector for the recognition of connected component language.TABLE ITHE SUMMARY OF THE PROPOSED FEATURE VECTOR FOR SCRIPT IDENTIFICATION

Feature Title Number of Elements

VPMXHR Differences Ratios 5 5 1

VPMN HR 1

H W R 1

NH

NL M 1

Classification

We used improved KNN1 classifier for the language identification in connected component level. In KNN classifier the distance between input feature vector and feature vectors in database are calculated. Then K nearest feature vectors are selected from the database. Finally the output class is determined using a voting algorithm. The calculation of distance is the most important part of the KNN algorithm and affects the accuracy of algorithm. Our experimental results showed that the Euclidian distance is not a proper distance measurement method for the proposed feature vector. This is mainly because of difference in the type and the number range of feature elements in the feature vector. To handle this problem we used a new algorithm to calculate distance for two feature vector as follows: Build a vector with the same size of the proposed feature vector which is called distance vector. Calculate the difference between the first five elements of two feature vectors. The first five elements in the distance vector are set to zero if the calculated difference is less than1

6, otherwise they are set to one. The value of 6 has been obtained experimentally. Calculate the difference between the second five elements of two feature vectors. The second five elements in the distance vector are set to zero if the calculated difference is less than 0.5, otherwise they are set to one. The value of 0.5 has been obtained experimentally. The remaining elements of the distance vector are filled with squared difference of remaining elements in two vectors. The distance between two feature vectors is defined as the sum of distance vector elements. C. Script identification at higher levels In addition to script identifications in connected components level, it is possible to recognize script language in higher levels like word, line or page levels where the identification in word level is more important. In script identification in line and page levels it is assumed whole words in line and page belong to one language. The proposed algorithm for script identification in higher levels has the following steps: The lines and words in the input image are extracted using image profile in horizontal and vertical directions. The number of connected components forming the word is calculated. If the majority of components belong to Latin language, the word is Latin; otherwise it is a Farsi word. If the number of Farsi and Latin components is the same, the word will be recognized as Farsi word experimentally. The words of each line are extracted. If the majority of words in a line belong to Farsi language, the line is considered as Farsi, otherwise it is Latin. Similarly according to the number of Farsi and Latin lines in a page, identification in page level is carried out. III. RECOGNITION OF FARSI HANDWRITTEN DIGITS A. Block scheme of the proposed algorithm Fig. 2 shows the block scheme of the proposed algorithm for training and test stages. The algorithm starts by applying required preprocessing to input image. In preprocessing stage the input image is first converted to binary image and using morphology based algorithms noisy points are removed. We then extract the bounding box and center of mass for the handwritten digit and normalize it to a constant size of 40 40. Feature extraction is the next stage of the proposed algorithm. We used two different algorithms for feature extraction including PCA and PCA-LDA algorithms. The extracted features are then used for training and testing the classifier algorithm. We utilized cluster based weighted (fuzzy) SVM for the classification and recognition of handwritten Farsi digits. B. Feature extraction We used two different methods for feature extraction including PCA and PCA-LDA algorithms which are explained in the following sections. Feature extraction using PCA method In this method, all the images in the database are represented as one dimensional vectors Xi after applying required preprocessing. Then covariance matrix (C) is calculated for all training images in database of handwritten

i =1 X iN

(10) (11) (12)

Xi = Xi X W = [ X 1 , X 2 , ..., X N ] C=

1 N T 1 (13) i =1 X i X i = N WW T N where and C are mean vectors and covariance matrix for digit images in the database and N is the total number of database images.

1. 2.

3. 4. 5.

Fig. 2. Block scheme for the proposed digit recognition algorithm

Then the principle component analysis (PCA) is applied to the covariance matrix C and M largest principle components are used for feature extraction as follows: Yi = ( X i X )T D (14)

where are the extracted features and D is the matrix of M principle vectors. Feature extraction using PCA-LDA method The feature extraction using PCA-LDA algorithm is similar to PCA method. In this method, the covariance matrix is calculated like PCA algorithm; However M2 largest principle components are used for feature extraction where M2>M. We then reduce the size of features using the LDA algorithm. The algorithm for size reduction and the extraction of features using the LDA algorithm has the following steps: The average of vectors for each digit is calculated using the output of PCA algorithm as follow: k=1,2,,10 (15) Nk where Nk is the number of images for digit k in the database, Yi k are the output of PCA algorithm for class k and are the mean vector value for class (digit) k. The scattering matrix for each class (digit) is calculated Yk

S k = i =1 (Yi k Yi ) k=1,2, ...,10

Fig 3. Ten-class SVM classifier using one against all method

A = S w1S B

Eigen value and eigen vectors for matrix A are calculated and M largest eigen values are used to map Y i vectors to obtain feature vectors [22]. C. Classification algorithmFig. 4. 4-class SVM classifier using one against one method

SVM algorithm classifies the input data by mapping the Training Process input samples to higher dimensions in which the separation Block diagram for training process is given in Fig. 5. For between classes is performed more efficiently according to training purpose we first cluster training data to N clusters covers theorem [3]. using k-means clustering algorithm. Then the statistical Binary SVM classifier is a classifier with two classes 1 , 2 properties of each cluster including mean vector and The SVM classifier in this case creates a hyper plane with the covariance matrix are calculated and hyper plane weights. following equation to separate these two classes [22]: Then SVM training process is carried out in each cluster individually by using the data of different classes in that (21) cluster. We used weighted SVM algorithm with quadratic G ( x) = T x + 0 kernel function and one against one method for classification The classification for the input vector x i is carried out in each cluster. Then the average distance between the data using the following equation: of one class in each cluster and the calculated hyper planes of that class is calculated. The output of training process T x i + 0 > 0 x i 1 includes parameters such as mean and covariance of feature (22) T vectors in each cluster, the average distance of different x i + 0 < 0 xi 2 classes in the clusters to different hyper planes and the weights of hyper planes. These parameters are used in the test In this article, we utilized weighted or fuzzy SVM process. algorithm based on K-means clustering. The advantage of this algorithm over SVM classifier is that in the fuzzy mode, Classification the input data is not exclusively assigned to a specified class Classification or test process also uses one against one and its membership function defines its dependency to structure. Fig. 6 shows the block scheme for the classification different classes. SVM is a binary classifier. In order to use it for the algorithm. For classification, the cluster weights for input classification of several classes there are two approaches, one data are calculated first. Cluster weights are Mahalanobis distance between input data and N different clusters which against all and one against one [22] are calculated using the following equation: 1 One against all wn = exp( (xt x n )T 1 (xt x n )) n 1 (23) In this method, the K binary SVM classifiers are used for 2 2 classification where K is the number of classes and the where and are covariance matrix and mean vector for nth separator line for each class separate it from all other classes. cluster respectively and wn is the weight for cluster n. Fig. 3 illustrates one against all method. For classification in this method, each sample is given to all SVM classifiers and the winner class is selected. One against one In this method, H different binary SVM classifiers are used and each SVM separates class i from class j where i and j are different class indexes [22]. Fig. 4 shows one against one method.

22

BEHRAD A, KHODDAMI M, SALEHPOUR M, A NOVEL FRAMEWORK FOR FARSI AND LATIN SCRIPT IDENTIFICATION... Then sum of all calculated distance for class m is considered as Mahalanobis distance between input data and class m in the cluster n. The calculated Mahalanobis distances between input image and 10 different classes in a cluster is further normalized to a value between 0 and 1 and represented by

% C nm where n and m are cluster and class indexes

respectively. We then calculate membership function of input image for each class using the following equation:m %% F m = w nC n n =1 N

where Fm is the membership function of input data for class m. Among 10 resultant membership functions, the maximum value is selected and compared to a threshold value obtained experimentally. If it is less than the threshold value, it is known as outlier data. Otherwise the related class is known as the winner class. IV. EXPERIMENTAL RESULTS A. Results of script identification We implemented the proposed algorithm for script identification using a MATLAB program and tested with the provided data set. Our data set contains 99 pages including 62 Farsi and 37 Latin pages. This data set contains documents with resolution of 300dpi that are randomly provided from Internet. Each page has an average of 28 lines. For both Farsi and Latin scripts, three fonts in different sizes and three different types of pens including natural, bold and italic pen are used. In Latin scripts each letter is a connected component while because of the cursive nature of Farsi scripts, connected components include letters, words and sub-words. Additionally letters may appear differently at the start, end and middle of the word in Farsi scripts. Therefore we need more scripts for the classification of Farsi scripts in database. Table II shows the results of script identification in connected component level. Table III and IV show the identification results in word and line levels respectively. We obtained the recognition rate of 100% for script identification in page level.TABLE II THE RESULTS OF SCRIPT IDENTIFICATION IN CONNECTED COMPONENT LEVEL Farsi Latin accuracy Farsi 16129 73 99.55% Latin 307 23698 98.72% TABLE III THE RESULTS OF SCRIPT IDENTIFICATION RESULTS IN WORD LEVEL Farsi Latin accuracy Farsi 6046 12 99.8% Latin 24 4285 99.44%

We then normalize wn weights to a value between 0 and 1 as follow: w ~ wn = N n (24) wk

~ wn is the normalized cluster weight for cluster n.

We then calculate the Mahalanobis distance between input data and 10 different classes in each cluster. To calculate Mahalanobis distance between input data and class m in a cluster, the Mahalanobis distance between input data and all hyper planes related to class m are calculated in that cluster.

Farsi Latin

JOURNAL OF AUTOMATIC CONTROL, UNIVERSITY OF BELGRADE , VOL. 20, 2010 To show the efficiency of the proposed algorithm, the results of the proposed method has been compared to the results of the method presented in [9]. This method uses a 16 channel Gabor filter in different frequencies and channels applied to fixed size 128 128 input image. The input image is formed by repeating the connected component image. In each channel, two features are extracted from the image which results in a 32 dimensional feature vector. We tested the mentioned method using our database. Table V shows the results of script identification using this method in connected component level on our dataset. Comparing the results of table II with table V illustrates that the results of the proposed method is more satisfactory.TABLE V IDENTIFICATIONS RESULTS IN CONNECTED COMPONENT LEVEL FOR METHOD PRESENTED IN [9] Farsi Latin accuracy Farsi 5872 186 96.93% Latin 1004 3305 76.71%

23

B. Results of digit recognition The proposed algorithm for digit recognition, implemented using a MATLAB program and tested by Farsi handwritten database [2], [3]. The database includes 8600 samples for ten Farsi handwritten digits, 860 samples for each digit. Fig. 7 shows samples of Farsi handwritten digits in the database.

Fig. 7. Samples of Farsi handwritten digits in the database

Testing algorithm with fonts not presented in training dataset To show the efficiency of proposed features for script identification, we tested the proposed algorithm on documents with different fonts that were not presented in the training set. The test documents contain 5 Farsi documents with 5 different fonts, and 5 Latin documents with 5 different fonts. The results of this test in connected component and word levels presented in tables VI and VII respectively. The results of tables VI and VII show good accuracy especially in word level.TABLE VI IDENTIFICATION RESULTS IN CONNECTED COMPONENT LEVEL WITH FONTS NOT PRESENTED INTRAINING DATASET

Farsi Latin

Farsi 3710 226 TABLE VII

DATASET

Latin 426 7925

accuracy 89.7% 97.23%

We used 660 samples of each digit for training and remaining 200 samples for test. We repeated the test and train process several times and calculate the average of results as final results. To compare the results of proposed algorithm with those of other algorithms, we implemented two methods presented in references [2] and [3] as well. In [2] the combination three Perceptron neural networks with different number of neurons in middle layer are used for digit recognition. The paper use PCA features for recognition. Table VIII shows the results of this algorithm for different number of PCA features and different number of neurons in middle layer. The maximum recognition rate for this algorithm is 80.1%. The algorithm in reference [3] utilizes 10 two-class MLP classifiers for digit recognition. Table IX shows the results of this algorithm for different number of PCA features and different number of neurons in middle layer. The maximum recognition rate for this algorithm is 95.4%. Table X illustrates the results of proposed method for different number of features. As it is shown in this table, the result of the proposed algorithm is better than two previous methods.TABLE VIII DIGIT RECOGNITION RATES FOR DIFFERENT NUMBER OF PCA FEATURES AND DIFFERENT NUMBER OF NEURONS IN MIDDLE LAYERS FOR ALGORITHM OF REFERENCE [2]. Number of neurons in middle layer of MLP PCA Features 400 600 700 800 10 60 73.1 75.2 72.5 20 55.4 74.7 80.1 77.1 30 65.2 77.2 77 78.2

Error analysis We analyzed the source of errors for the proposed algorithm. The main error originated from some symbols that are common in two languages such as bracket, parenthesis, comma and so forth. This error mostly occurs for test images which have fonts with different sizes in a page. This makes some of small symbols not to be removed in preprocessing step and results in some errors. Another source of error that occurs mostly in Latin scripts is related to two adjacent connected components touched to each other. This contact causes the change in features extracted from CSS image as well as other features such as holes number and results in erroneous recognition. Unlike to Latin scripts, most of errors in Farsi scripts are related to the disconnection of connected components in some of Farsi fonts. Most errors in line level belong to short lines that have few words.

TABLE IX DIGIT RECOGNITION RATES FOR DIFFERENT NUMBER OF PCA FEATURES AND DIFFERENT NUMBER OF NEURONS IN MIDDLE LAYERS FOR ALGORITHM OF REFERENCE [3]. Number of neurons in middle layer of MLP PCA Features 10 15 20 25 30 35 10 91.3 92.5 93.2 93.5 93.9 94 20 92.2 93.4 94.4 95 95.4 95.3 30 92.2 93.4 93.3 93.6 94.5 94.1 TABLE X DIGIT RECOGNITION RATES FOR DIFFERENT NUMBER OF FEATURES USING THE PROPOSEDALGORITHM

Feature Extraction PCA PCA-LDA

10 91.3 93.1

20 93.4 94.2

Number of features 30 40 95.1 94.6 96.5 95.3

50 94.2 93.7

Some parts of errors of the proposed algorithms are related to images taken with low resolution.

To show the efficiency of proposed algorithm in the presence of digit rotation, we tested the proposed algorithm using images with rotation. For this purpose we rotated 30 percent of test images with different angles. Table XI shows the results of proposed algorithm and the algorithm of reference [3] for test data with different rotations which are applied randomly clockwise or counter clockwise to test data. As it is shown in table XI, the proposed algorithm is more robust to digit rotation and PCA-LDA feature extraction algorithm exhibits more stability.TABLE XI DIGIT RECOGNITION RATE FOR TEST DATA WITH DIFFERENT ROTATION. Rotation angle Algorithm 15 30 45 [Algorithm of reference [3 88.7 85.2 84.6 Proposed algorithm with PCA 94.2 93.3 92.6 features Proposed algorithm with PCA95.6 94.8 93.2 LDA features

V. CONCLUSION In this paper we introduced new algorithms for the identification of Farsi and Latin documents as well as Farsi handwritten digits recognition. Our language identification algorithm is based on features extracted from curvature scale space representation of connected components in the scripts. The proposed algorithm is able to identify script language in four levels including connected component, word, line and page levels. The proposed features and algorithm are robust against font and scale change. For Farsi handwritten digits recognition, we used PCA and PCA-LDA algorithm for feature extraction which PCA-LDA algorithm is more robust against image rotation. We used a new method called cluster based weighted SVM for classification. We tested the proposed algorithms with different data and compared the results with those of other methods. The experimental results showed the efficiency of the proposed algorithms.