Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
EasyOCR — OCR pronto all'uso con oltre 80 lingue supportate e tutti i sistemi di scrittura più diffusi, tra cui latino, cinese, arabo, devanagari, cirillico, ecc. | Kitploit
Strumenti/GitHubGitHub/jaidedai/easyocr
Utilità GenericheScripting e AutomazioneMachine Learning
GitHubjaidedai/easyocr

EasyOCR

OCR pronto all'uso con oltre 80 lingue supportate e tutti i sistemi di scrittura più diffusi, tra cui latino, cinese, arabo, devanagari, cirillico, ecc.

Vedi RepositorySito web
29.9k3.6k8 mesi faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

EasyOCR

PyPI Status license Tweet Twitter

OCR pronto all'uso con oltre 80 lingue supportate e tutti i sistemi di scrittura più diffusi, tra cui: latino, cinese, arabo, devanagari, cirillico, ecc.

Prova la demo sul nostro sito web

Integrato in Huggingface Spaces 🤗 usando Gradio. Prova la Web Demo: Hugging Face Spaces

Novità

  • 24 settembre 2024 - Versione 1.7.2

    • Correzioni di diverse compatibilità
  • Leggi tutte le note di rilascio

Prossimamente

  • Supporto al testo scritto a mano

Esempi

example

example2

example3

Installazione

Installazione tramite pip

Per l'ultima versione stabile:

root@kitploit:~
pip install easyocr

Per l'ultima versione di sviluppo:

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

Nota 1: per Windows, installa prima torch e torchvision seguendo le istruzioni ufficiali qui https://pytorch.org. Sul sito di pytorch, assicurati di selezionare la versione CUDA giusta per il tuo sistema. Se intendi eseguire solo in modalità CPU, seleziona CUDA = None.

Nota 2: forniamo anche un Dockerfile qui.

Utilizzo

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

L'output sarà in formato lista; ogni elemento rappresenta rispettivamente un bounding box, il testo rilevato e il livello di confidenza.

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'] è l'elenco delle lingue che vuoi leggere. Puoi passare più lingue contemporaneamente, ma non tutte le lingue possono essere usate insieme. L'inglese è compatibile con ogni lingua e le lingue che condividono caratteri comuni sono di solito compatibili tra loro.

Nota 2: invece del percorso del file chinese.jpg, puoi anche passare un oggetto immagine OpenCV (array numpy) o un file immagine come byte. Anche un URL di un'immagine grezza è accettabile.

Nota 3: la riga reader = easyocr.Reader(['ch_sim','en']) serve a caricare un modello in memoria. Richiede tempo, ma deve essere eseguita una sola volta.

Puoi anche impostare detail=0 per un output più semplice.

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

Risultato:

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

I pesi del modello per la lingua scelta verranno scaricati automaticamente, oppure puoi scaricarli manualmente dall'model hub e inserirli nella cartella '~/.EasyOCR/model'

Se non hai una GPU, o la tua GPU ha poca memoria, puoi eseguire il modello in modalità solo CPU aggiungendo gpu=False.

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

Per maggiori informazioni, leggi il tutorial e la Documentazione API.

Esecuzione da riga di comando

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

Addestrare/usare il proprio modello

Per il modello di riconoscimento, leggi qui.

Per il modello di rilevamento (CRAFT), leggi qui.

Roadmap di implementazione

  • Supporto al testo scritto a mano
  • Ristrutturare il codice per supportare algoritmi di rilevamento e riconoscimento sostituibili L'API dovrebbe essere semplice come
root@kitploit:~
reader = easyocr.Reader(['en'], detection='DB', recognition = 'Transformer')

L'idea è di poter collegare qualsiasi modello all'avanguardia a EasyOCR. Ci sono molti geni che cercano di creare modelli di rilevamento/riconoscimento migliori, ma qui non stiamo cercando di essere geni. Vogliamo solo rendere i loro lavori rapidamente accessibili al pubblico... gratuitamente. (beh, crediamo che la maggior parte dei geni voglia che il proprio lavoro abbia un impatto positivo il più veloce e grande possibile) La pipeline dovrebbe essere simile al diagramma qui sotto. Gli slot grigi sono segnaposto per i moduli azzurri sostituibili.

plan

Riconoscimenti e riferimenti

Questo progetto si basa su ricerca e codice provenienti da diversi articoli scientifici e repository open-source.

Tutta l'esecuzione del deep learning è basata su Pytorch. ❤️

L'esecuzione del rilevamento usa l'algoritmo CRAFT di questo repository ufficiale e il loro articolo (Grazie @YoungminBaek di @clovaai). Usiamo anche il loro modello pre-addestrato. Lo script di addestramento è fornito da @gmuffiness.

Il modello di riconoscimento è una CRNN (articolo). È composto da 3 componenti principali: estrazione delle caratteristiche (attualmente usiamo Resnet) e VGG, etichettatura delle sequenze (LSTM) e decodifica (CTC). La pipeline di addestramento per l'esecuzione del riconoscimento è una versione modificata del framework deep-text-recognition-benchmark. (Grazie @ku21fan di @clovaai) Questo repository è una gemma che merita più riconoscimento.

Il codice del beam search è basato su questo repository e sul suo blog. (Grazie @githubharald)

La sintesi dei dati è basata su TextRecognitionDataGenerator. (Grazie @Belval)

E una buona lettura sul CTC da distill.pub qui.

Vuoi Contribuire?

Facciamo avanzare l'umanità insieme rendendo l'AI disponibile a tutti!

3 modi per contribuire:

Programmatore: invia una PR per piccoli bug/miglioramenti. Per quelli più grandi, discutine con noi aprendo prima una issue. C'è un elenco di possibili issue di bug/miglioramenti etichettate con 'PR WELCOME'.

Utente: dicci come EasyOCR è utile a te/alla tua organizzazione per incoraggiare ulteriori sviluppi. Inoltre, segnala i casi di errore nella Sezione Issue per aiutare a migliorare i modelli futuri.

Tech leader/Guru: se hai trovato utile questa libreria, spargi la voce! (Vedi il post di Yann Lecun su EasyOCR)

Linee guida per richieste di nuove lingue

Per richiedere una nuova lingua, devi inviarci una PR con i 2 file seguenti:

  1. Nella cartella easyocr/character, serve 'yourlanguagecode_char.txt' che contiene l'elenco di tutti i caratteri. Consulta gli esempi di formato dagli altri file in quella cartella.
  2. Nella cartella easyocr/dict, serve 'yourlanguagecode.txt' che contiene l'elenco delle parole nella tua lingua. In media, abbiamo ~30000 parole per lingua, con più di 50000 parole per le lingue più popolari. In questo file, più è meglio.

Se la tua lingua ha elementi unici (come 1. arabo: i caratteri cambiano forma quando sono collegati tra loro + scrittura da destra a sinistra 2. tailandese: alcuni caratteri devono stare sopra la riga e altri sotto), istruiscici al meglio delle tue capacità e/o fornisci link utili. È importante curare i dettagli per ottenere un sistema che funzioni davvero.

Infine, comprendi che la nostra priorità dovrà andare alle lingue popolari o agli insiemi di lingue che condividono grandi porzioni dei loro caratteri tra loro (diccelo anche se è il caso della tua lingua). Ci vogliono almeno una settimana per sviluppare un nuovo modello, quindi potresti dover attendere un po' per il rilascio del nuovo modello.

Vedi Elenco delle lingue in sviluppo

Issue su Github

A causa delle risorse limitate, una issue più vecchia di 6 mesi verrà chiusa automaticamente. Riapri una issue se è critica.

Richieste commerciali

Per il supporto aziendale, Jaided AI offre un servizio completo per sistemi OCR/AI personalizzati, dall'implementazione all'addestramento/finetuning fino alla distribuzione. Clicca qui per contattarci.

Scarica lo strumento