Un paquete de Python pytesseract, ¡unas pocas líneas de código para lograr la tecnología de reconocimiento de texto OCR!

Si cree que el artículo está bien escrito y desea obtener los datos del artículo del blog, preste atención a la cuenta oficial: [Nota del Sr. Z], se han preparado más de 50 libros electrónicos de Python y más de 200G de materiales de video de alta calidad. Usted. Las palabras clave de respuesta entre bastidores: 1024 se pueden obtener; agregue el autor [WeChat personal], puede comunicarse directamente con el autor,

La tecnología de reconocimiento de texto OCR ahora está bastante madura, no importa que su precisión o velocidad de reconocimiento pueda satisfacer nuestras necesidades diarias; hoy les presentaré un paquete de Python, la función principal del paquete es para el reconocimiento de OCR, el nombre del paquete es Pyteeseract, con con la ayuda de algunas líneas de código en este paquete, puede identificar rápidamente una imagen de texto

pytesseract.jpg

El paquete Pytesseract se obtiene mediante la herramienta de código abierto Tesseract, desarrollada por Hewlett Packard Lab, e implementada como código abierto en 2005; desde 2006, ha sido desarrollado y mantenido conjuntamente por Google y algunos colaboradores destacados de código abierto.

Tesseract ha madurado gradualmente después de la versión 3.x, admitiendo múltiples formatos de imagen y agregando gradualmente reconocimiento de texto multilingüe; pero la versión Tesseract 3.x todavía se basa en algoritmos tradicionales de visión por computadora y se ha beneficiado de la rápida iteración de Deep Learning en el pasado. Tanto la precisión como la velocidad son mejores que los algoritmos tradicionales, después de la versión 4.0, Tesseract ha agregado el módulo Deep Learning, que se basa en Recognition LSTM, y LSTM puede clasificarse como RNN (red neuronal convolucional cíclica);

El experimento de este artículo se basa en la versión Tesseract3.05. Por último, la precisión del reconocimiento del idioma chino es ligeramente menor. Puede deberse a que no se utiliza 4.0+. Más tarde supe que existen 4.0+ o incluso 5.0+ ( pero no demasiado estable) y se basan en el módulo de aprendizaje profundo, pero no quiero cambiarlo porque soy demasiado vago ,,,

Primero explique el entorno experimental:

  • sistema operativo: Win10;

  • Python 3.8;

  • pyteeseract 0.3.8;

  • Tesseract 3.05 ;

instalación de pyteeseract

1. Instale la herramienta tesseract

En comparación con otros paquetes, los pasos de instalación de pyteeseract serán un poco más engorrosos, porque la función de reconocimiento de pyteeseract se basa en la herramienta de código abierto tesseract, por lo que el primer paso es instalar tesseract, el enlace de descarga del paquete de instalación:

https://digi.bib.uni-mannheim.de/tesseract/

Snipaste_2020-09-12_14-30-55.jpg

Disponible en versiones 3.0+, 4.0+ y 5.0+, instale después de descargar (el método de instalación es una instalación de tipo tonto)

Una vez que tesseract se haya instalado correctamente, debe agregar la ruta del archivo donde se almacena tesseract.exe a la variable de entorno. Como se muestra en la figura siguiente, la carpeta donde se almacena mi tesseract.exe es F: / Program Files / Tesseract-OCR y agregue la variable de entorno;

Snipaste_2020-09-12_14-35-04.jpg

2, pip instalar pytesseract

En la línea de comando, use la herramienta pip para descargar el paquete pytesseract

pip install pyteeseract

3. Modifique el script pytesseract.py

Sobre la base del paso 2, busque la ruta de instalación de pytesseract. Si Python se instala a través de Anaconda, la ruta de instalación generalmente se encuentra en la carpeta Anaconda / Lib / site-packages; después de encontrarla, busque pytesseract.py en la carpeta pytesseract Script archivo,

Snipaste_2020-09-12_15-54-20.jpg

Después de encontrarlo, abra pyresseract.py con el Bloc de notas, ubique tesseract_cmd a través de la función de búsqueda rápida ctrl + f y modifique la siguiente información de ruta de archivo (reemplácela con la ruta de instalación de tesseract.exe mencionada anteriormente);

Snipaste_2020-09-12_15-54-30.jpg

2. Uso de pytesseract

Usar el paquete es relativamente simple, puede obtener algunas líneas de código, el siguiente código es para identificar un carácter en la imagen e imprimirlo en una cadena, seleccione los idiomas de reconocimiento Inglés (Cambiar los parámetros lang = 'eng' pueden ser )

import pytesseract
import cv2

img_path = "G:/Coding/One_hundred_days/Data/orc_image2.jpg"

# 下面一行代码很重要
tessdata_dir_config = '--tessdata-dir "F://Program Files//Tesseract-OCR//tessdata"'

im = cv2.imread(img_path)
img = cv2.cvtColor(im,cv2.COLOR_BGR2RGB)

text = pytesseract.image_to_string(img,lang= 'eng',config= tessdata_dir_config,)
print(text)

Vista previa del efecto, antes del reconocimiento

orc_image1.jpg

Después del reconocimiento

Snipaste_2020-09-12_12-54-01.png

pytesseract admite la imagen leída por OpenCV y PIL como entrada, pero el formato de imagen debe ser el modo RGB, por lo que después de que OpenCV lee, se agrega una línea de código para convertir el modo BGR de la imagen a RGB

Otra cosa a tener en cuenta es que la siguiente línea de código en el ejemplo anterior no se puede eliminar (se usa para configurar el parámetro de configuración en la función image_to_string () más adelante)

tessdata_dir_config = '--tessdata-dir "F://Program Files//Tesseract-OCR//tessdata"'

De lo contrario, será el siguiente error, ubicación de la ruta de archivos tessdata fracasó ,

Error al cargar el idioma 'eng' ¡Tesseract no pudo cargar ningún idioma! No se pudo inicializar tesseract. ')

La ruta del archivo tessdata almacena el archivo del paquete de idioma, que se usa para identificar diferentes idiomas en la imagen y se establece modificando el parámetro lang; pero lo que necesita saber es que el idioma predeterminado de la herramienta tesseract es eng (inglés ) al principio, si necesita usar tesseract para identificar diferentes idiomas, debe descargar los archivos del paquete de idioma correspondiente e instalarlos en la carpeta tessdata.

Por ejemplo, utilicé inglés en el caso anterior. Aquí quiero reconocer los caracteres chinos en la imagen. Necesito descargar el paquete de idioma chino para testdata. La dirección de descarga de cada paquete de idioma es https://github.com/ tesseract-ocr / tessdata

Luego configure el parámetro lang en image_to_string () en el código a chi_sim

Vista previa del efecto, antes del reconocimiento

orc_image2.jpg

Después del reconocimiento, el efecto de reconocimiento no es muy bueno para los chinos, pero adivina el motivo de la versión:

Snipaste_2020-09-12_15-57-06.jpg

pyteeseract otro uso

1. Además de lo anterior, el reconocimiento de contenido en la imagen se puede convertir directamente en una cadena, y también se puede convertir directamente en un archivo pdf para exportar

# Get a searchable PDF
pdf = pytesseract.image_to_pdf_or_hocr('test.png', extension='pdf')
with open('test.pdf', 'w+b') as f:
    f.write(pdf) # pdf type is bytes by default

Snipaste_2020-09-12_15-35-49.jpg

2. Se estima que se reconoce la información del cuadro de cada personaje y el rango de resolución de la posición en la imagen:

print(pytesseract.image_to_boxes(img_path,lang = 'chi_sim',config= tessdata_dir_config))

Snipaste_2020-09-12_15-38-26.jpg

3. Aún quedan muchos usos del pyteeseract que aún no se han introducido. Quienes estén interesados ​​pueden ir a la web oficial para presentarlos. El enlace es el siguiente:

https://pypi.org/project/pytesseract/

Supongo que te gusta

Origin blog.csdn.net/weixin_42512684/article/details/108702142
Recomendado
Clasificación