Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
EasyOCR — OCR listo para usar con más de 80 idiomas compatibles y todos los sistemas de escritura populares, incluidos latino, chino, árabe, devanagari, cirílico, etc. | Kitploit
Herramientas/GitHubGitHub/jaidedai/easyocr
Utilidades de Propósito GeneralScripting y AutomatizaciónAprendizaje Automático
GitHubjaidedai/easyocr

EasyOCR

OCR listo para usar con más de 80 idiomas compatibles y todos los sistemas de escritura populares, incluidos latino, chino, árabe, devanagari, cirílico, etc.

Ver RepositorioSitio web
29.9k3.6khace 8 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

EasyOCR

PyPI Status license Tweet Twitter

OCR listo para usar con más de 80 idiomas compatibles y todos los sistemas de escritura populares, incluidos: latino, chino, árabe, devanagari, cirílico, etc.

Prueba la demo en nuestro sitio web

Integrado en Huggingface Spaces 🤗 usando Gradio. Prueba la demo web: Hugging Face Spaces

Novedades

  • 24 de septiembre de 2024 - Versión 1.7.2

    • Se corrigen varias compatibilidades
  • Lee todas las notas de versión

Próximamente

  • Soporte para texto manuscrito

Ejemplos

example

example2

example3

Instalación

Instalar usando pip

Para la última versión estable:

root@kitploit:~
pip install easyocr

Para la última versión en desarrollo:

root@kitploit:~
pip install git+https://github.com/JaidedAI/EasyOCR.git

Nota 1: Para Windows, instala primero torch y torchvision siguiendo las instrucciones oficiales en https://pytorch.org. En el sitio web de pytorch, asegúrate de seleccionar la versión correcta de CUDA que tengas. Si tienes intención de ejecutar solo en modo CPU, selecciona CUDA = None.

Nota 2: También proporcionamos un Dockerfile aquí.

Uso

root@kitploit:~
import easyocr
reader = easyocr.Reader(['ch_sim','en']) # this needs to run only once to load the model into memory
result = reader.readtext('chinese.jpg')

La salida estará en formato de lista. Cada elemento representa un cuadro delimitador, el texto detectado y el nivel de confianza, respectivamente.

root@kitploit:~
[([[189, 75], [469, 75], [469, 165], [189, 165]], '愚园路', 0.3754989504814148),
 ([[86, 80], [134, 80], [134, 128], [86, 128]], '西', 0.40452659130096436),
 ([[517, 81], [565, 81], [565, 123], [517, 123]], '东', 0.9989598989486694),
 ([[78, 126], [136, 126], [136, 156], [78, 156]], '315', 0.8125889301300049),
 ([[514, 126], [574, 126], [574, 156], [514, 156]], '309', 0.4971577227115631),
 ([[226, 170], [414, 170], [414, 220], [226, 220]], 'Yuyuan Rd.', 0.8261902332305908),
 ([[79, 173], [125, 173], [125, 213], [79, 213]], 'W', 0.9848111271858215),
 ([[529, 173], [569, 173], [569, 213], [529, 213]], 'E', 0.8405593633651733)]

Nota 1: ['ch_sim','en'] es la lista de idiomas que quieres leer. Puedes pasar varios idiomas a la vez, pero no todos los idiomas pueden usarse juntos. El inglés es compatible con todos los idiomas y los idiomas que comparten caracteres comunes suelen ser compatibles entre sí.

Nota 2: En lugar de la ruta de archivo chinese.jpg, también puedes pasar un objeto de imagen de OpenCV (array de numpy) o un archivo de imagen como bytes. Una URL a una imagen sin procesar también es aceptable.

Nota 3: La línea reader = easyocr.Reader(['ch_sim','en']) sirve para cargar un modelo en memoria. Tarda un poco, pero solo necesita ejecutarse una vez.

También puedes establecer detail=0 para una salida más simple.

root@kitploit:~
reader.readtext('chinese.jpg', detail = 0)

Resultado:

root@kitploit:~
['愚园路', '西', '东', '315', '309', 'Yuyuan Rd.', 'W', 'E']

Los pesos del modelo para el idioma elegido se descargarán automáticamente, o puedes descargarlos manualmente desde el model hub y colocarlos en la carpeta '~/.EasyOCR/model'.

En caso de que no tengas una GPU, o tu GPU tenga poca memoria, puedes ejecutar el modelo en modo solo CPU añadiendo gpu=False.

root@kitploit:~
reader = easyocr.Reader(['ch_sim','en'], gpu=False)

Para más información, lee el tutorial y la Documentación de la API.

Ejecutar en la línea de comandos

root@kitploit:~
$ easyocr -l ch_sim en -f chinese.jpg --detail=1 --gpu=True

Entrenar/usar tu propio modelo

Para el modelo de reconocimiento, lee aquí.

Para el modelo de detección (CRAFT), lee aquí.

Hoja de ruta de implementación

  • Soporte para texto manuscrito
  • Reestructurar el código para admitir algoritmos de detección y reconocimiento intercambiables La API debería ser tan sencilla como
root@kitploit:~
reader = easyocr.Reader(['en'], detection='DB', recognition = 'Transformer')

La idea es poder conectar cualquier modelo de última generación en EasyOCR. Hay muchos genios tratando de crear mejores modelos de detección/reconocimiento, pero nosotros no intentamos ser genios aquí. Solo queremos hacer que su trabajo sea rápidamente accesible al público... de forma gratuita. (bueno, creemos que la mayoría de los genios quieren que su trabajo genere un impacto positivo lo más rápido/grande posible). El flujo de trabajo debería ser algo como el siguiente diagrama. Los espacios grises son marcadores de posición para los módulos azul claro intercambiables.

plan

Agradecimientos y referencias

Este proyecto se basa en la investigación y el código de varios artículos y repositorios de código abierto.

Toda la ejecución de aprendizaje profundo se basa en Pytorch. ❤️

La detección utiliza el algoritmo CRAFT de este repositorio oficial y su artículo (Gracias @YoungminBaek de @clovaai). También usamos su modelo preentrenado. El script de entrenamiento es proporcionado por @gmuffiness.

El modelo de reconocimiento es un CRNN (artículo). Se compone de 3 componentes principales: extracción de características (actualmente usamos Resnet y VGG), etiquetado de secuencias (LSTM) y decodificación (CTC). El flujo de trabajo de entrenamiento para la ejecución del reconocimiento es una versión modificada del framework deep-text-recognition-benchmark. (Gracias @ku21fan de @clovaai) Este repositorio es una joya que merece más reconocimiento.

El código de búsqueda de haz (beam search) se basa en este repositorio y su blog. (Gracias @githubharald)

La síntesis de datos se basa en TextRecognitionDataGenerator. (Gracias @Belval)

Y una buena lectura sobre CTC de distill.pub aquí.

¿Quieres contribuir?

¡Avancemos juntos en beneficio de la humanidad haciendo que la IA esté disponible para todos!

3 formas de contribuir:

Programador: Envía un PR para errores/mejoras pequeños. Para los más grandes, discute con nosotros abriendo primero un issue. Hay una lista de posibles errores/mejoras etiquetados con 'PR WELCOME'.

Usuario: Cuéntanos cómo EasyOCR te beneficia a ti/tu organización para fomentar el desarrollo continuo. También publica casos de fallo en la Sección de Issues para ayudar a mejorar los modelos futuros.

Líder técnico/Gurú: Si encuentras útil esta biblioteca, ¡corre la voz! (Mira la publicación de Yann Lecun sobre EasyOCR)

Directrices para solicitar un nuevo idioma

Para solicitar un nuevo idioma, necesitamos que envíes un PR con los 2 archivos siguientes:

  1. En la carpeta easyocr/character, necesitamos 'yourlanguagecode_char.txt' que contenga la lista de todos los caracteres. Consulta los ejemplos de formato de otros archivos de esa carpeta.
  2. En la carpeta easyocr/dict, necesitamos 'yourlanguagecode.txt' que contenga la lista de palabras en tu idioma. Por término medio, tenemos ~30000 palabras por idioma, con más de 50000 palabras para los más populares. Cuanto más, mejor en este archivo.

Si tu idioma tiene elementos únicos (como 1. Árabe: los caracteres cambian de forma cuando se unen entre sí + se escribe de derecha a izquierda 2. Tailandés: algunos caracteres deben estar sobre la línea y otros debajo), por favor, instrúyenos lo mejor que puedas y/o proporciona enlaces útiles. Es importante cuidar el detalle para lograr un sistema que realmente funcione.

Por último, ten en cuenta que nuestra prioridad tendrá que ser para idiomas populares o conjuntos de idiomas que compartan grandes porciones de sus caracteres entre sí (también dinos si este es el caso de tu idioma). Nos lleva al menos una semana desarrollar un nuevo modelo, así que puede que tengas que esperar un tiempo para que se publique el nuevo modelo.

Ver Lista de idiomas en desarrollo

Problemas de GitHub

Debido a los recursos limitados, un issue con más de 6 meses se cerrará automáticamente. Por favor, abre un issue de nuevo si es crítico.

Consultas comerciales

Para soporte empresarial, Jaided AI ofrece un servicio completo para sistemas personalizados de OCR/IA, desde la implementación, el entrenamiento/ajuste fino y el despliegue. Haz clic aquí para contactarnos.

Descargar herramienta