OCR de alfabetos ingleses en Python OpenCV

OCR , que significa reconocimiento óptico de caracteres, es una técnica de visión por computadora utilizada para reconocer caracteres como dígitos, alfabetos, signos, etc. Estos caracteres son comunes en la vida cotidiana y podemos realizar el reconocimiento de caracteres según nuestros requisitos. Implementaremos el reconocimiento óptico de caracteres de los alfabetos ingleses utilizando OpenCV. aquí usaremos el algoritmo KNN que se usa para la clasificación. 

Nota: Aquí puede encontrar los datos para los que realizaremos el OCR. 

Hay 20000 filas de datos que contienen 17 columnas donde la primera columna representa el alfabeto y las 16 restantes representarán sus diferentes características. Tenemos que procesar los datos convirtiendo los alfabetos en caracteres ASCII. Para realizar la clasificación, usaremos 10000 filas como datos de entrenamiento y 10000 filas como datos de prueba.

A continuación se muestra la implementación. 

Python3

#Import the libraries
import cv2 as cv
import numpy as np
  
 
# Read data and use converters
# to convert the alphabets to
# Numeric value.
data= np.loadtxt('letter-recognition',
                 dtype= 'float32',
                 delimiter = ',',
                 converters= {0: lambda ch: ord(ch)-ord('A')})
 
# split the data into train_data
# and test_data
train_data, test_data = np.vsplit(data,2)
  
# split train_data and test_data
# to features and responses.
responses, training = np.hsplit(train_data,[1])
classes, testing = np.hsplit(test_data,[1])
  
# Create the knn classifier
knn = cv.ml.KNearest_create()
knn.train(training, cv.ml.ROW_SAMPLE, responses)
  
# Obtain the results of the classifier
# determine the number of neighbors.
ret, Output, neighbours,
distance = knn.findNearest(testing, k=7)
  
# Match the Output to find the
# number of wrong predictions.
correct_OP = np.count_nonzero(Output == classes)
  
#calculate accuracy and display it.
accuracy = (correct_OP*100.0)/(10000)
print( accuracy )

Producción 

92.82

Publicación traducida automáticamente

Artículo escrito por KaranGupta5 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *