OCR of English alphabets in Python OpenCV
Last Updated :
03 Jan, 2023
OCR which stands for Optical character recognition is a computer vision technique used to recognize characters such as digits, alphabets, signs, etc. These characters are common in day-to-day life and we can perform character recognition based on our requirements. We will implement optical character recognition of the English alphabets using OpenCV. here we will use the KNN algorithm which is used for classification.
Note: You can find the data here data for which we will perform the OCR.
There are 20000 rows of data containing 17 columns where the first column represents the alphabet and the remaining 16 will represent its different features. We have to process the data by converting the alphabets into ASCII characters. To perform classification we will use 10000 rows as training_data and 10000 row as testing_data.
Below is the implementation.
Python3
import cv2 as cv
import numpy as np
data = np.loadtxt( 'letter-recognition' ,
dtype = 'float32' ,
delimiter = ',' ,
converters = { 0 : lambda ch: ord (ch) - ord ( 'A' )})
train_data, test_data = np.vsplit(data, 2 )
responses, training = np.hsplit(train_data,[ 1 ])
classes, testing = np.hsplit(test_data,[ 1 ])
knn = cv.ml.KNearest_create()
knn.train(training, cv.ml.ROW_SAMPLE, responses)
ret, Output, neighbours,
distance = knn.findNearest(testing, k = 7 )
correct_OP = np.count_nonzero(Output = = classes)
accuracy = (correct_OP * 100.0 ) / ( 10000 )
print ( accuracy )
|
Output
92.82
Share your thoughts in the comments
Please Login to comment...