Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
EasyOCR — OCR pronto para usar com mais de 80 idiomas suportados e todos os sistemas de escrita populares, incluindo latim, chinês, árabe, devanágari, cirílico e etc. | Kitploit
Ferramentas/GitHubGitHub/jaidedai/easyocr
Utilitários de Propósito GeralScripting e AutomaçãoAprendizado de Máquina
GitHubjaidedai/easyocr

EasyOCR

OCR pronto para usar com mais de 80 idiomas suportados e todos os sistemas de escrita populares, incluindo latim, chinês, árabe, devanágari, cirílico e etc.

Ver RepositórioSite
29.9k3.6khá 8 mesesRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

EasyOCR

PyPI Status license Tweet Twitter

OCR pronto para uso com mais de 80 idiomas suportados e todos os sistemas de escrita populares, incluindo: latim, chinês, árabe, devanágari, cirílico, etc.

Experimente a Demonstração no nosso site

Integrado ao Huggingface Spaces 🤗 usando Gradio. Experimente a Demonstração Web: Hugging Face Spaces

O que há de novo

  • 24 de setembro de 2024 - Versão 1.7.2

    • Correção de várias compatibilidades
  • Leia todas as notas de versão

O que vem a seguir

  • Suporte a texto manuscrito

Exemplos

exemplo

exemplo2

exemplo3

Instalação

Instale usando pip

Para a versão estável mais recente:

root@kitploit:~
pip install easyocr

Para a versão de desenvolvimento mais recente:

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

Nota 1: Para Windows, instale primeiro o torch e o torchvision seguindo as instruções oficiais aqui https://pytorch.org. No site do pytorch, certifique-se de selecionar a versão correta do CUDA que você possui. Se você pretende executar apenas no modo CPU, selecione CUDA = None.

Nota 2: Também fornecemos um Dockerfile aqui.

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')

A saída estará em formato de lista; cada item representa uma caixa delimitadora (bounding box), o texto detectado e o nível de confiança, 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'] é a lista de idiomas que você deseja ler. Você pode passar vários idiomas de uma vez, mas nem todos os idiomas podem ser usados juntos. O inglês é compatível com todos os idiomas, e idiomas que compartilham caracteres comuns geralmente são compatíveis entre si.

Nota 2: Em vez do caminho do arquivo chinese.jpg, você também pode passar um objeto de imagem OpenCV (array numpy) ou um arquivo de imagem como bytes. Uma URL para uma imagem bruta também é aceitável.

Nota 3: A linha reader = easyocr.Reader(['ch_sim','en']) serve para carregar um modelo na memória. Leva algum tempo, mas precisa ser executada apenas uma vez.

Você também pode definir detail=0 para uma saída mais simples.

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

Resultado:

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

Os pesos do modelo para o idioma escolhido serão baixados automaticamente ou você pode baixá-los manualmente do model hub e colocá-los na pasta '~/.EasyOCR/model'

Caso você não tenha uma GPU, ou sua GPU tenha pouca memória, você pode executar o modelo apenas em modo CPU adicionando gpu=False.

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

Para mais informações, leia o tutorial e a Documentação da API.

Executar pela linha de comando

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

Treine/use seu próprio modelo

Para o modelo de reconhecimento, leia aqui.

Para o modelo de detecção (CRAFT), leia aqui.

Roteiro de implementação

  • Suporte a texto manuscrito
  • Reestruturar o código para suportar algoritmos de detecção e reconhecimento intercambiáveis A API deve ser tão simples quanto
root@kitploit:~
reader = easyocr.Reader(['en'], detection='DB', recognition = 'Transformer')

A ideia é poder plugar qualquer modelo de última geração no EasyOCR. Há muitos gênios tentando criar melhores modelos de detecção/reconhecimento, mas não estamos tentando ser gênios aqui. Só queremos tornar seus trabalhos rapidamente acessíveis ao público... de graça. (bem, acreditamos que a maioria dos gênios quer que seu trabalho cause um impacto positivo o mais rápido/amplo possível) O pipeline deve ser algo como o diagrama abaixo. Os espaços cinza são placeholders para os módulos azul-claros intercambiáveis.

plan

Agradecimentos e Referências

Este projeto é baseado em pesquisa e código de vários artigos e repositórios de código aberto.

Toda a execução de aprendizado profundo é baseada em Pytorch. ❤️

A execução da detecção usa o algoritmo CRAFT deste repositório oficial e seu artigo (Obrigado @YoungminBaek do @clovaai). Também usamos o modelo pré-treinado deles. O script de treinamento é fornecido por @gmuffiness.

O modelo de reconhecimento é uma CRNN (artigo). Ele é composto por 3 componentes principais: extração de características (atualmente usamos Resnet) e VGG, rotulagem de sequências (LSTM) e decodificação (CTC). O pipeline de treinamento para a execução do reconhecimento é uma versão modificada do framework deep-text-recognition-benchmark. (Obrigado @ku21fan do @clovaai) Este repositório é uma joia que merece mais reconhecimento.

O código de busca em feixe (beam search) é baseado neste repositório e no blog dele. (Obrigado @githubharald)

A síntese de dados é baseada em TextRecognitionDataGenerator. (Obrigado @Belval)

E uma boa leitura sobre CTC do distill.pub aqui.

Quer Contribuir?

Vamos avançar a humanidade juntos, tornando a IA disponível para todos!

3 maneiras de contribuir:

Programador: Envie um PR para pequenos bugs/melhorias. Para os maiores, discuta conosco abrindo uma issue primeiro. Existe uma lista de possíveis issues de bugs/melhorias marcadas com 'PR WELCOME'.

Usuário: Conte-nos como o EasyOCR beneficia você/sua organização para incentivar o desenvolvimento contínuo. Também publique casos de falha na Seção de Issues para ajudar a melhorar os modelos futuros.

Líder de tecnologia/Guru: Se você achou esta biblioteca útil, por favor divulgue! (Veja o post de Yann Lecun sobre o EasyOCR)

Diretriz para solicitação de novo idioma

Para solicitar um novo idioma, precisamos que você envie um PR com os 2 arquivos seguintes:

  1. Na pasta easyocr/character, precisamos de 'yourlanguagecode_char.txt' contendo a lista de todos os caracteres. Consulte os exemplos de formato dos outros arquivos nessa pasta.
  2. Na pasta easyocr/dict, precisamos de 'yourlanguagecode.txt' contendo a lista de palavras no seu idioma. Em média, temos ~30000 palavras por idioma, com mais de 50000 palavras para os mais populares. Quanto mais, melhor neste arquivo.

Se o seu idioma tem elementos únicos (como 1. Árabe: os caracteres mudam de forma quando conectados uns aos outros + escrita da direita para a esquerda 2. Tailandês: alguns caracteres precisam estar acima da linha e outros abaixo), por favor, nos ensine da melhor forma possível e/ou forneça links úteis. É importante cuidar dos detalhes para alcançar um sistema que realmente funcione.

Por fim, entenda que nossa prioridade terá que ser para idiomas populares ou conjuntos de idiomas que compartilham grandes porções de seus caracteres entre si (nos diga também se esse é o caso do seu idioma). Leva pelo menos uma semana para desenvolver um novo modelo, então você pode ter que esperar um pouco até que o novo modelo seja lançado.

Veja Lista de idiomas em desenvolvimento

Issues do Github

Devido a recursos limitados, uma issue com mais de 6 meses será fechada automaticamente. Abra uma nova issue novamente se for crítica.

Consultas Comerciais

Para Suporte Empresarial, a Jaided AI oferece serviço completo para sistemas personalizados de OCR/IA, desde implementação, treinamento/ajuste fino e implantação. Clique aqui para entrar em contato conosco.

Baixar ferramenta