El reconeixement òptic de caràcters, o OCR, és una tecnologia que converteix el text escrit a màquina, imprès o escrit a mà en un format digital. Atès que la tecnologia pot llegir text d'imatges, documents escanejats i fins i tot vídeos, és una eina habitual en diverses indústries, com ara les finances, la sanitat, la venda al detall, l'educació i molt més.
A causa de la seva capacitat per automatitzar processos i racionalitzar els fluxos de treball, la tecnologia OCR ha experimentat un enorme creixement en popularitat en els últims anys. En aquest article, repassarem la importància de la tecnologia OCR, les seves tècniques en diverses indústries i com utilitzar Python per implementar OCR.
OCR en diversos camps
La tecnologia OCR té molts usos en diverses indústries. La tecnologia OCR s'utilitza a la indústria sanitària per digitalitzar els registres dels pacients i les històries clíniques, facilitant l'accés i la gestió de la informació dels pacients als treballadors sanitaris. La tecnologia OCR s'utilitza al sector financer per processar documents financers com extractes bancaris, factures i rebuts.
El text d'aquests documents es pot llegir mitjançant la tecnologia OCR, que pot extreure automàticament informació crucial com sumes, dates i noms de proveïdors que es poden utilitzar per a la comptabilitat. En el sector educatiu, la tecnologia OCR s'utilitza per digitalitzar llibres de text i altres recursos d'aprenentatge. Com a resultat, tant els estudiants amb discapacitat com els professors trobaran més senzill gestionar i distribuir aquests materials als seus alumnes.
Visió general de Python i les seves biblioteques
Python és un llenguatge de programació molt conegut que s'utilitza en el desenvolupament web, la ciència de dades i altres camps de la informàtica. És un llenguatge d'alt nivell molt utilitzat entre els desenvolupadors perquè és senzill d'aprendre i utilitzar. La tecnologia OCR es pot implementar mitjançant una de les moltes biblioteques disponibles per a Python. Tesseract, OpenCV, JPG a text i Pytesseract són algunes de les biblioteques OCR conegudes. Aquestes biblioteques ofereixen als programadors eines fortes per a l'extracció de text i la manipulació d'imatges.
Objectius i abast
L'objectiu és donar una introducció pràctica a la tecnologia OCR basada en Python. adreçat a desenvolupadors interessats a aprendre a utilitzar Python per implementar la tecnologia OCR. Cobreix tant els fonaments de la tecnologia OCR, com ara la detecció i el reconeixement de text, i estratègies més complexes com l'OCR basat en l'aprenentatge profund.
Introducció a la tecnologia OCR
És vital examinar els fonaments de la tecnologia OCR abans de passar a la implementació de la tecnologia Python. La tecnologia OCR converteix el text d'una imatge en un format digital identificant primer el text dins de la imatge. Això s'aconsegueix mitjançant la tecnologia inspeccionant la imatge i detectant patrons que s'assemblen a lletres i números.
1. Instal·lació del motor Tesseract OCR
Tesseract és un motor OCR de codi obert que s'utilitza àmpliament a la indústria. Per instal·lar Tesseract, podeu utilitzar l'ordre següent:
!sudo apt install tesseract-ocr
2. Instal·lació de biblioteques Python
Per implementar la tecnologia OCR amb Python, hem d'instal·lar unes quantes biblioteques. Algunes de les biblioteques populars utilitzades per a OCR inclouen Tesseract, OpenCV i Pytesseract.
!pip install pytesseract opencv-python pillow
3. Lectura i visualització d'arxius d'imatge
Per llegir i mostrar una imatge amb Python, podem utilitzar la biblioteca Pillow. El codi següent mostra com llegir i mostrar una imatge:
from PIL import Image
# Open the image
img = Image.open("image.jpg")
# Display the image
img.show()
4. Tècniques bàsiques de manipulació d'imatges
Python proporciona eines potents per manipular imatges. Algunes de les tècniques bàsiques de manipulació d'imatges inclouen retallar, canviar la mida i girar imatges.
5. Detecció de textos
La detecció de text és el procés d'identificar àrees d'una imatge que contenen text. Aquest és un pas important en OCR, ja que ens permet centrar-nos en les àrees de la imatge que contenen text i ignorar la resta. El codi següent mostra com realitzar la detecció de text mitjançant OpenCV i Tesseract:
import cv2
import pytesseract
# Load the image
img = cv2.imread("image.jpg")
# Convert the image to grayscale
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# Perform adaptive thresholding
thresh_img = cv2.adaptiveThreshold(gray_img, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 11, 2)
# Perform dilation and erosion to remove noise
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (3, 3))
dilated_img = cv2.dilate(thresh_img, kernel, iterations=1)
eroded_img = cv2.erode(dilated_img, kernel, iterations=1)
# Perform text detection
text = pytesseract.image_to_string(eroded_img)
# Display the detected text
print(text)
6. Maneig de múltiples idiomes i tipus de lletra
La tecnologia OCR admet diversos idiomes i tipus de lletra. Tesseract, per exemple, admet més de 100 idiomes i pot reconèixer diversos tipus de lletra. Per reconèixer text en diversos idiomes i tipus de lletra, hem d'especificar l'idioma i el tipus de lletra al motor OCR. El codi següent mostra com especificar l'idioma i el tipus de lletra a Tesseract:
import pytesseract
# Set the language and font
config = '--tessdata-dir "./tessdata" -l eng+fra --oem 1 --psm 3'
# Perform OCR
text = pytesseract.image_to_string("image.jpg", config=config)
# Display the recognized text
print(text)
7. Reconeixement de text
El reconeixement de text és el procés de convertir el text d'una imatge a un format digital. Això implica utilitzar motors OCR com Tesseract per identificar el text d'una imatge i convertir-lo en un format digital. El codi següent mostra com realitzar el reconeixement de text mitjançant Tesseract:
import pytesseract
# Load the image
img = cv2.imread("image.jpg")
# Convert the image to grayscale
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# Perform thresholding
ret, thresh_img = cv2.threshold(gray_img, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)
# Perform dilation and erosion to remove noise
kernel = np.ones((3, 3), np.uint8)
dilated_img = cv2.dilate(thresh_img, kernel, iterations=1)
eroded_img = cv2.erode(dilated_img, kernel, iterations=1)
# Perform OCR
text = pytesseract.image_to_string(eroded_img)
# Display the recognized text
print(text)
Tècniques avançades d'OCR
Amb els avenços tecnològics, l'OCR s'ha tornat més avançat i eficient. En aquest context, aquí teniu algunes tècniques avançades d'OCR.
1. OCR basat en aprenentatge profund
Un mètode OCR avançat anomenat OCR basat en l'aprenentatge profund implica ensenyar un model de xarxa neuronal per reconèixer el text a les imatges. Amb aquest mètode, que és molt precís, es pot reconèixer text en diferents tipus de lletra, mides i idiomes. Es basa en xarxes neuronals recurrents (RNN) i xarxes neuronals convolucionals (CNN), que poden identificar patrons en el text i extreure característiques de les imatges.
2. Maneig d'imatges complexes
Quan el text està present en imatges complexes amb soroll, ombres o text distorsionat, l'OCR té dificultats per reconèixer-lo. L'OCR utilitza mètodes de processament d'imatges d'avantguarda com ara la desviació, la binarització i la reducció de soroll per gestionar aquest tipus d'imatges. Aquests mètodes ajuden a millorar la qualitat de la imatge i a extreure el text amb més precisió.
3. OCR en vídeos
L'OCR dels vídeos implica eliminar el text del vídeo fotograma per fotograma. Aquest mètode és útil quan el text canvia dinàmicament, com en les emissions de notícies o els subtítols. Els motors OCR utilitzen algorismes de flux òptic per fer un seguiment del moviment del text i reconèixer-lo en temps real per utilitzar l'OCR als vídeos.
4. OCR amb múltiples motors
L'ús de diversos motors OCR per extreure text de les imatges es coneix com a OCR amb diversos motors. Aquesta tècnica ajuda a millorar l'eficàcia i la precisió de l'OCR. Cada motor OCR vota el text més precís que ha pogut reconèixer. Aquest mètode és útil en circumstàncies en què la qualitat del text varia molt i els motors OCR poden tenir problemes per llegir-lo.
En poques paraules
Python OCR és una eina potent que ha canviat completament la manera com convertim les imatges escanejades en text llegible per màquina. Els desenvolupadors poden crear aplicacions OCR personalitzades precises i efectives mitjançant Python OCR. Aquesta guia pràctica ha donat una visió completa de la tecnologia OCR i els seus diferents usos. En general, Python OCR ha creat noves oportunitats per a l'automatització i la digitalització, i té un potencial pràcticament infinit.