Pipeline OCR end-to-end con Keras e TensorFlow
Utilizza Keras-OCR per un riconoscimento del testo semplice ma potente in Python.
Cos'è l'API Keras-OCR?
Keras-OCR è una libreria Python open-source di alto livello progettata per semplificare le attività di riconoscimento ottico dei caratteri (OCR) sfruttando la potenza di Keras e TensorFlow. A differenza dei sistemi OCR tradizionali che richiedono un'ampia configurazione, Keras-OCR offre una pipeline completa con modelli pre-addestrati per la rilevazione del testo (utilizzando l'algoritmo CRAFT) e il riconoscimento del testo (tramite un modello CRNN). Questa combinazione consente agli sviluppatori di estrarre testo da immagini, documenti scansionati o persino appunti scritti a mano con poche righe di codice.
La libreria è ottimizzata per casi d'uso reali, tra cui:
- Digitalizzazione documenti: Converti documenti cartacei o PDF in testo ricercabile.
- Inserimento dati automatizzato: Estrai testo da fatture, ricevute o moduli.
- Strumenti di accessibilità: Genera testo alternativo per immagini in applicazioni web.
- Analisi social media: Elabora testo incorporato in meme o contenuti generati dagli utenti.
Con il supporto integrato per l'elaborazione in batch e l'accelerazione GPU opzionale, Keras-OCR bilancia facilità d'uso e prestazioni, rendendolo ideale sia per prototipazione che per deployment in produzione.
Caratteristiche principali di Keras-OCR
- Modelli pre-addestrati: Include CRAFT (rilevatore) e CRNN (riconoscitore) per un uso immediato.
- Configurazione semplice: Dipendenze minime (Keras, TensorFlow, OpenCV).
- Elaborazione in batch: Processa più immagini in parallelo per efficienza.
- Addestramento personalizzato: Affina i modelli sui tuoi dataset.
- GPU non richiesta: Funziona su CPU ma accelera con GPU.
- Output bounding box: Restituisce testo con coordinate per analisi spaziali.
- Open source: Gratuito, guidato dalla comunità e con licenza MIT.
Installazione
Installa Keras-OCR via pip (richiede Python 3.6+):
Installa Keras-OCR
pip install keras-ocr
Per il supporto GPU, assicurati di avere TensorFlow con GPU installato:
Installa TensorFlow GPU
pip install tensorflow-gpu
Esempi di codice
Di seguito esempi pratici per estrarre testo da immagini utilizzando Keras-OCR.
Esempio 1: Rilevamento e riconoscimento testo base
Questo esempio mostra come usare la pipeline pre-addestrata per estrarre testo da un'immagine:
Pipeline OCR base
import keras_ocr
pipeline = keras_ocr.pipeline.Pipeline()
images = ["receipt.jpg"]
predictions = pipeline.recognize(images)
print(predictions)
Esempio 2: Elaborazione in batch
Processa più immagini contemporaneamente per efficienza:
Elaborazione in batch
import keras_ocr
pipeline = keras_ocr.pipeline.Pipeline()
images = ["image1.jpg", "image2.jpg", "image3.jpg"]
batch_predictions = pipeline.recognize(images)
for prediction in batch_predictions:
print(prediction)
Esempio 3: Visualizzazione bounding box
Disegna i riquadri del testo rilevato sull'immagine originale:
Visualizza risultati
import matplotlib.pyplot as plt
import keras_ocr
pipeline = keras_ocr.pipeline.Pipeline()
image = keras_ocr.tools.read("document.jpg")
predictions = pipeline.recognize([image])
keras_ocr.tools.drawAnnotations(image, predictions[0])
plt.imshow(image)
plt.show()
Conclusione
Keras-OCR semplifica l'estrazione del testo con la sua pipeline pronta all'uso, rendendolo una scelta eccellente per sviluppatori che necessitano di OCR veloce e preciso senza configurazioni complesse. La sua integrazione con Keras e TensorFlow permette personalizzazioni, mentre l'elaborazione in batch assicura scalabilità.
Che tu stia costruendo scanner di documenti, automatizzando l'inserimento dati o analizzando contenuti social media, Keras-OCR fornisce una soluzione leggera ma potente.