Constraints in Developing a Complete Bengali Optical Character Recognition System

Technological advancement has led to digitizing hard copies of media effortlessly with optical character recognition (OCR) system. As OCR systems are being used constantly, converting printed or handwritten documents and books have become simple and time efficient. To be a fully functional structure, Bengali OCR system needs to overcome some constraints involved in pre-processing, segmentation and recognition phase. The aim of this research is to analyze the challenges prevalent in developing a Bengali OCR system through robust literature review and implementation.



There are no comments yet.


page 1

page 2

page 3

page 4


Handwritten Optical Character Recognition (OCR): A Comprehensive Systematic Literature Review (SLR)

Given the ubiquity of handwritten documents in human transactions, Optic...

A Survey on Optical Character Recognition System

Optical Character Recognition (OCR) has been a topic of interest for man...

A Topological Code for Plane Images

It is proposed a new code for contours of plane images. This code was ap...

A Framework for On-Line Devanagari Handwritten Character Recognition

The main challenge in on-line handwritten character recognition in India...

A Review of Research on Devnagari Character Recognition

English Character Recognition (CR) has been extensively studied in the l...

EASTER: Efficient and Scalable Text Recognizer

Recent progress in deep learning has led to the development of Optical C...

A Gaussian Process Upsampling Model for Improvements in Optical Character Recognition

Optical Character Recognition and extraction is a key tool in the automa...
This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.

1 Introduction

Optical character recognition (OCR) is important for language digitization. Valuable documents which are printed or handwritten have a fast decay speed. OCR system coverts these hard copies into editable digital media. This can replace the usage of scanners (not editable) for Bengali documents.

Ideally, an OCR system needs to abide by some methods to obtain higher accuracy rate in digitizing hard copies of Bengali media. To be able to recognize each character apart from the others in a word is a challenge itself. A lot of limitations occur from this area alone, which result in unfavorable instances. The major steps of Bengali OCR include image pre-processing, segmentation, recognition and reconstruction. At first an image needs to be put into the system as input for pre-processing. Then the image goes through line segmentation, word segmentation and character segmentation. The next phase is to recognize the segmented characters. Lastly, Bengali text is reconstructed using the recognized characters as an editable digital media.

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16] are some of the relevant works performed on Bengali OCR system. The drawbacks of these systems involve resolution of images, different fonts and their sizes, segmentation and character recognition. The character recognition of a Bengali OCR is difficult due to some similar looking characters and due to the complexity of Bengali compound characters. This makes the character recognition phase of Bengali OCR significantly more challenging than most other languages.

In this research, our contributions are as follows:

  • Reviewing Bengali OCR literature from the perspective of limitation finding

  • Implementing pre-processing, segmentation and recognition phase of Bengali OCR to gain full understanding of the challenges associated with Bengali OCR development

  • Broad discussion on existing limitations of Bengali OCR with a view to facilitating a better functional Bengali OCR system development

2 Literature Review

A lot of research works have been undertaken regarding Bengali OCR system. Some problem scopes of Bengali OCR system are mentioned in [1], which include lack of standard samples and complex structure of documents. One of the drawbacks of the OCR system is that it does not work properly if the resolution of the image is less than 300dpi [2, 3]. A printed Bengali OCR system was developed using a single hidden BLSTM-CTC architecture which includes pre-processing, line detection and recognition [3]. But the system only works for fixed font size which was used to train the model. One of the approaches include two zone approach for character segmentation [4], which do not work for all fonts and sizes. The accuracy of the model was reduced due to some connected characters. A group of researchers suggested a complete Bengali OCR system methodology where they have experimented their methods for different fonts and sizes and got a good accuracy rate only for larger font size [5]

. Tesseract is an open source OCR engine which works for many languages

[6]. Recently, it has started to work on Bengali script as well. But one drawback of this OCR engine is that it does not work for all Bengali fonts and sizes. An effective way of a complete model for Bengali OCR system was proposed in [7], but it was performed only for three fixed fonts and no conjunctive characters where included in training data. A research showed some degradation of printed Bengali script due to connected characters, broken characters, light or heavy printed documents [8].

A proposed method for character segmentation in a handwritten document suggests vertex characterization of outer isothetic polygonal covers. This method shows poor performance for some pathological cases, as it suffers from under-segmentation and over-segmentation problem [9]. For improving the character segmentation accuracy, a new algorithm was proposed using BPNN [10] though the accuracy was not good. A high performance OCR for Bengali script was presented in [11]

which works only for some specific documents and articles. But the proposed method has problems with segmentation which lowers the accuracy of the system . Another OCR system was proposed to recognize the segmented characters by using an artificial neural network in

[12]. But this approach shows poor accuracy for character segmentation and fail to recognize similar Bengali characters.

In order to improve the output result of Bengali OCR system, different correction algorithms were proposed. The main problem of these research is the misclassification of some compound characters [13]

. To recognize these compound characters, a deep CNN with RELU as nonlinear function was proposed in

[14], but it only works for fixed data-set and cannot recognize all the character classes. Performance evaluation of different algorithms related to Bengali character recognition has been presented in [15] though this approach misclassifies some similar characters. Another recognition method [16] was proposed for handwritten Bengali numeral which includes three variants of Local Binary Pattern (LBP) using neural network. They compared the performances of these three variants.

3 Steps Of Bengali OCR

Figure 1: Steps of Bengali OCR System Development

A Bengali OCR system scheme is divided into five basic steps (Fig. 1). The steps are as follows:

  1. An image of regular format is converted into gray scale image.

  2. Pre-processing steps are conducted on the gray scale image. This is an important step of Bengali OCR system as the image may contain noise, or it maybe skewed. This step helps us prepare the image for segmentation by a number of processes such as resizing the image, noise reduction, binarization and skew correction.

  3. In segmentation phase, line segmentation is conducted at first followed by word segmentation and character segmentation.

  4. Character recognition is conducted through the use of learning based algorithms.

  5. Finally, the recognized characters are reconstructed into editable text.

4 Limitations and Challenges Of Bengali OCR System Development

4.1 Pre-processing

Figure 2: Different Coloured Texts after Binarization

The initial step of an OCR system is to scan the image and convert it into a gray scale image. The problem with this step is that for coloured text, lighter colours tend to disappear as the RGB value increases. Our study shows that lighter colours with RGB values closer to red tends to disappear more when converted to gray scale than colours with RGB value closer to blue or green. Fig. 2 shows some results of different coloured text after conversion to gray scale and binarization.

Noise reduction is another pre-processing step where we have faced issues. We have used two different noise reduction techniques, FastNlMeanDenoising (to reduce Salt and Pepper Noise) and GaussianBlur (to remove background noise). Noise reduction is important for an OCR system as some of the noises can be assumed as part of a line, word or character which result in poor outcomes of the segmentation step. Noise reduction makes the image blurry. When binarized, some pixels of the characters disappear. This loss of pixels later affects character recognition.

Figure 3: Unwanted Chunk of Black Pixels

Scanned images may be skewed due to position of the printed document while capturing image. OCR systems may fail to segment all the lines separately due to this skewness. For this reason, an important part of the pre-processing step is to rotate the image to an angle where the image is vertically straight. If the image is not straight, two or more different lines may be considered as single line during segmentation, which will result in poor outcome. One of the challenges in this step is to detect the angle in which the image has to be rotated. Another important challenge includes identifying the four corners of the page and cropping the image so that the unwanted parts outside of the page can be eliminated. When binarized, these unwanted parts provide a chunk of black pixels which result in poor segmentation of lines. Fig. 3 shows unwanted chunk of black pixels marked in a red box.

4.2 Line segmentation

Figure 4: Problem with Multiple Font Size in Line Segmentation

The first task of segmentation is to segment all the lines correctly. The drawback of this step is that it does not work for multiple font sizes. Line segmentation is accomplished by scanning the image horizontally. The lines are segmented where the sum of the pixels are minimum or is close to zero. When multiple font sizes are present on the same image, line segmentation is performed for the bigger font size. As a result, all the lines are not segmented correctly. As shown in Fig. 4, the first two lines get segmented together due to different font sizes.

Figure 5: Curved Lines Due to Different Thickness of the Document

Another problem with line segmentation is skewness of the lines due to view angle of camera or warped pages due to thickness of the document or book which results in curved lines (Fig. 5). This is a major problem for the OCR system as it is very difficult to correct the skewness of each line separately. This is because skewness of lines can vary from image to image. As a result, all the lines cannot be segmented correctly. Due to overlapping, multiple lines get segmented as a single line. This problem also effects the word segmentation phase of the OCR system and reduces the overall accuracy of the system.

4.3 Word segmentation

In word segmentation, each of the words are segmented from the segmented lines. Word segmentation is accomplished by scanning the images vertically. The words are segmented where the sum of the pixels are minimum or is close to zero. If the line segmentation can be accomplished correctly without any complication, word segmentation task becomes trivial.

4.4 Character segmentation

Figure 6: Matra Line Detection

The initial task of character segmentation in Bengali OCR system is matra line detection (Fig. 6). Matra line is detected when a row consists of 65% or more black pixels. The matra line is the region which keeps all the Bengali characters connected together. If the matra line is detected correctly, removing the matra line makes character segmentation easy as we can find space between the characters which we can use to segment each of the characters. However, Bengali language consists of vowels, modified vowels and consonants which are very difficult to separate due to the overlapping of the characters. As a result, some of the overlapped characters are segmented together. But in some cases, these overlapped characters cannot be separated providing poor character segmentation. Fig. 7 shows an example of such a scenario where such segmentation fault occurred in the last part where two characters are segmented together.

Figure 7: Poor Segmentation of Character Due to Overlapping

4.5 Character Recognition

Bengali as a language is very different and more complex than English. This is due to the large number of compound characters and modified vowels existing in Bengali. For this reason, multiple characters may appear at once while character segmentation is performed and a huge number of classes may form as such. The class-wise learning task for the model becomes difficult for such complexity.

Figure 8: Example of Compound Character and Modified Vowel Problem

4.5.1 Compound Characters

Bengali script has many compound characters which can be a combination of two to three characters. The second character of the second word in Fig. 8 shows an example of a compound character where two characters are combined. There are 170 such commonly used compound characters in Bengali according to [17] which are formed by combining two to three characters. Due to the diversity of the compound characters, character recognition gets challenging as number of classes increase.

4.5.2 Modified Vowels

Bengali language also has modified vowels. Such modified vowels can be present in left, right, top or bottom of a character. The first character of the first word in Fig. 8 shows an example of such a modified vowel. There are around ten modified vowels in the Bengali script. The position of different modified vowels alongside a character creates complexity in recognition. The combination of these modified vowels with each of the characters also creates a large set of classes for the model to learn from.

4.5.3 Multiple Character Segmentation

Due to the overlapping of modified vowels in Bengali script, characters including the modified vowel can be segmented together. If a compound character has a modified vowel alongside it, recognition of the multiple characters becomes very challenging. The last two words in Fig. 8 shows examples of multiple character segmentation. The first of these two words has no modified vowel included whereas the second word has such a modified vowel. The compound characters themselves have a lot of possible combinations. The modified vowels simply scale up the diversity of this classification task.

4.5.4 Large Number of Classes

The problems mentioned in this section about character recognition shows how diverse Bengali script is. For a better recognition system, the model needs to learn a large number of classes to be able to identify the words correctly and reconstruct the Bengali words into editable text.

5 Conclusion

Limitations of Bengali OCR system holds back the digitization of hard copies of Bengali media. For the OCR system to work properly, the whole process starting from the input of an image to reconstruction of text has to be precise. If our proposed limitations are considered throughout the system construction, the solutions might help make a better optical character recognition system than the existing ones. Future work may aim at solving the limitations mentioned in this research.


  • [1] Omee, Farjana Yeasmin and Himel, Shiam Shabbir and Bikas, Md and Naser, Abu, A complete workflow for development of Bengali ocr, arXiv preprint arXiv:1204.1198, 2012.
  • [2] Rownak, Ahnaf Farhan and Rabby, Md Fazle and Ismail, Sabir and Islam, Md Saiful, An efficient way for segmentation of Bengali characters in printed document using curved scanning, 2016 5th International Conference on Informatics, Electronics and Vision (ICIEV), pp. 938–943, 2016, IEEE.
  • [3] Paul, Debabrata and Chaudhuri, Bidyut Baran, A BLSTM Network for Printed Bengali OCR System with High Accuracy, arXiv preprint arXiv:1908.08674, 2019.
  • [4] Zahan, Tasnim and Iqbal, Muhammed Zafar and Selim, Mohammad Reza and Rahman, Mohammad Shahidur, Connected Component Analysis Based Two Zone Approach for Bengali Character Segmentation, 2018 International Conference on Bengali Speech and Language Processing (ICBSLP), pp. 1–4, 2018, IEEE.
  • [5] Alam, Md Mahbub and Kashem, M Abul, A complete Bengali OCR system for printed characters, JCIT, vol. I, pp. 30–35, 2010.
  • [6] Smith, Ray, An overview of the Tesseract OCR engine, Ninth International Conference on Document Analysis and Recognition (ICDAR 2007), vol. II, pp. 629–633, 2007, IEEE.
  • [7] Chowdhury, Ahmed Asif and Ahmed, Ejaj and Ahmed, Shameem and Hossain, Shohrab and Rahman, Chowdhury Mofizur, Optical Character Recognition of Bengali Characters using neural network: A better approach, 2nd ICEE, 2002.
  • [8] Shukla, Manoj Kumar and Banka, Haider, A study of different kinds of degradation in printed Bengali script, 2012 1st International Conference on Recent Advances in Information Technology (RAIT), pp. 119–123, 2012, IEEE.
  • [9]

    Bag, Soumen and Bhowmick, Partha and Harit, Gaurav and Biswas, Arindam, Character segmentation of handwritten Bengali text by vertex characterization of isothetic covers, 2011 Third National Conference on Computer Vision, Pattern Recognition, Image Processing and Graphics, pp. 21–24, 2011, IEEE.

  • [10] Ahmed, Shamim and Kashem, Mohammod Abul, Enhancing the Character Segmentation Accuracy of Bengali OCR using BPNN, International Journal of Science and Research (IJSR) ISSN (Online), pp. 2319–7064, 2013.
  • [11] Hasnat, Md Abul and Habib, SM Murtoza and Khan, Mumit, A high performance domain specific OCR for Bengali script, Novel Algorithms and Techniques In Telecommunications, Automation and Industrial Electronics, pp. 174–178, 2008, Springer.
  • [12] Neural net based complete character recognition scheme for Bengali printed text books, Hossain, SK Alamgir and Tabassum, Tamanna, 16th Int’l Conf. Computer and Information Technology, pp. 71–75, 2014, IEEE.
  • [13] Ahmed, Md Sajib and Gonçalves, Teresa and Sarwar, Hasan, Improving Bengali OCR output through correction algorithms, 2016 10th International Conference on Software, Knowledge, Information Management & Applications (SKIMA), pp. 338–343, 2016, IEEE.
  • [14] Fardous, Asfi and Afroge, Shyla, Handwritten Isolated Bengali Compound Character Recognition, 2019 International Conference on Electrical, Computer and Communication Engineering (ECCE), pp. 1–5, 2019, IEEE.
  • [15] Meerza, Syed Irfan Ali and Islam, Moinul and Uzzal, Md Mohiuddin, Performance Evaluation of Different Algorithms for Handwritten Isolated Bengali Character Recognition, 2019 International Conference on Robotics, Electrical and Signal Processing Techniques (ICREST), pp. 412–416, 2019, IEEE.
  • [16] Hassan, Tasnuva and Khan, Haider Adnan, Handwritten Bengali numeral recognition using local binary pattern, 2015 International Conference on Electrical Engineering and Information Communication Technology (ICEEICT), pp. 1–4, 2015, IEEE.
  • [17] Sifat, Md and Rahman, Habibur and Rahman, Chowdhury Rafeed and Rafsan, Mohammad and Rahman, Md and others, Synthetic Error Dataset Generation Mimicking Bengali Writing Pattern, arXiv preprint arXiv:2003.03484, 2020.