La tecnología OCR (Optical Character Recognition) es una herramienta poderosa que permite convertir imágenes en texto legible por máquinas. Esta tecnología analiza la imagen y extrae el texto contenido en ella, lo que resulta útil para una serie de aplicaciones prácticas. Podemos usar OCR para analizar fotografías, señales de tráfico, etiquetas de productos, facturas, informes, artículos, y está disponible en una amplia gama de idiomas.
El reconocimiento óptico de caracteres es un componente clave en el procesamiento de documentos y en la extracción automática de información. Este proceso optimiza la eficiencia al ahorrar tiempo y minimizar errores humanos en la transcripción manual de datos.
¿Cuáles son las capacidades de la API de lectura de OCR?
La API de lectura de OCR soporta varios formatos de archivos, como imágenes en JPG, PNG, así como documentos en PDF y TIF. Es capaz de procesar manuscritos y texto impreso, lo que maximiza su aplicación en diferentes sectores y usos. A continuación, las principales características:
Diversos formatos soportados: JPG, PNG, PDF hasta dos mil páginas.
Tamaño de archivos: Hasta 50 MB y dimensiones entre 50x50 píxeles y 10,000x10,000 píxeles.
Idiomas: Capaz de extraer texto en 73 idiomas y manuscritos en inglés.
Integración sencilla: No es necesario especificar el idioma, el servicio realiza el análisis y procesamiento automáticamente.
Flexibilidad de implementación: Puede utilizarse en servicios alojados en la nube o contenedores locales.
Esta flexibilidad y eficiencia convierten a la API de OCR en una herramienta valiosa para la extracción de información crítica sin necesidad de intervención manual.
¿Cómo implementar la API de OCR paso a paso?
Implementar la API de OCR requiere configurar ciertos parámetros y crear una instancia del cliente de Computer Vision, una tarea sencilla y flexible. Se utiliza un enfoque basado en Python, en el que crearemos una aplicación para analizar imágenes.
Creando un cliente de Computer Vision
Para interactuar con la API de OCR, necesitamos crear un cliente de ComputerVisionClient usando un endpoint y una Subscription Key de Azure. Estos son los pasos básicos:
from azure.cognitiveservices.vision.computervision import ComputerVisionClient
from msrest.authentication import CognitiveServicesCredentials
# Configuración del clientesubscription_key ="TU_SUBSCRIPTION_KEY"endpoint ="TU_ENDPOINT"client = ComputerVisionClient(endpoint, CognitiveServicesCredentials(subscription_key))
Análisis de una imagen
Una vez que tenemos el cliente, podemos pasarle la URL de una imagen para que sea analizada mediante el método read_file_url:
El cliente de Computer Vision es capaz de manejar operaciones asíncronas para obtener resultados. Utilizando el operation ID, podemos obtener los resultados del análisis.
Extracción de resultados
El ciclo de proceso es esperar a que la operación se complete y luego extraer resultados como texto:
operation_id = resultados.headers["Operation-Location"].split("/")[-1]whileTrue: resultado = client.get_read_result(operation_id)if resultado.status notin['notStarted','running']:break# Iterar sobre las líneas detectadasif resultado.status =='succeeded':for plan_result in resultado.analyze_result.read_results:for line in plan_result.lines:print(line.text)
Esta integración permite detectar y mostrar el texto presente en la imagen, lo cual proporciona la oportunidad de experimentación y desarrollo adicional en diversas aplicaciones.
Invitamos a los desarrolladores y estudiantes a explorar esta poderosa herramienta, integrando OCR en sus proyectos para optimizar flujos de trabajo y mejorar la eficiencia en la gestión de información. Recuerden consultar el código fuente disponible y adaptar las soluciones a distintos lenguajes y entornos.
Servicio OCR: Conversión de Imágenes a Texto Usando Azure
Servicio OCR: Conversión de Imágenes a Texto Usando Azure
Recursos
Resumen
¿Qué es el OCR y por qué es relevante?
La tecnología OCR (Optical Character Recognition) es una herramienta poderosa que permite convertir imágenes en texto legible por máquinas. Esta tecnología analiza la imagen y extrae el texto contenido en ella, lo que resulta útil para una serie de aplicaciones prácticas. Podemos usar OCR para analizar fotografías, señales de tráfico, etiquetas de productos, facturas, informes, artículos, y está disponible en una amplia gama de idiomas.
El reconocimiento óptico de caracteres es un componente clave en el procesamiento de documentos y en la extracción automática de información. Este proceso optimiza la eficiencia al ahorrar tiempo y minimizar errores humanos en la transcripción manual de datos.
¿Cuáles son las capacidades de la API de lectura de OCR?
La API de lectura de OCR soporta varios formatos de archivos, como imágenes en JPG, PNG, así como documentos en PDF y TIF. Es capaz de procesar manuscritos y texto impreso, lo que maximiza su aplicación en diferentes sectores y usos. A continuación, las principales características:
Diversos formatos soportados: JPG, PNG, PDF hasta dos mil páginas.
Tamaño de archivos: Hasta 50 MB y dimensiones entre 50x50 píxeles y 10,000x10,000 píxeles.
Idiomas: Capaz de extraer texto en 73 idiomas y manuscritos en inglés.
Integración sencilla: No es necesario especificar el idioma, el servicio realiza el análisis y procesamiento automáticamente.
Flexibilidad de implementación: Puede utilizarse en servicios alojados en la nube o contenedores locales.
Esta flexibilidad y eficiencia convierten a la API de OCR en una herramienta valiosa para la extracción de información crítica sin necesidad de intervención manual.
¿Cómo implementar la API de OCR paso a paso?
Implementar la API de OCR requiere configurar ciertos parámetros y crear una instancia del cliente de Computer Vision, una tarea sencilla y flexible. Se utiliza un enfoque basado en Python, en el que crearemos una aplicación para analizar imágenes.
Creando un cliente de Computer Vision
Para interactuar con la API de OCR, necesitamos crear un cliente de ComputerVisionClient usando un endpoint y una Subscription Key de Azure. Estos son los pasos básicos:
from azure.cognitiveservices.vision.computervision import ComputerVisionClient
from msrest.authentication import CognitiveServicesCredentials
# Configuración del cliente
subscription_key = "TU_SUBSCRIPTION_KEY"
endpoint = "TU_ENDPOINT"
client = ComputerVisionClient(endpoint, CognitiveServicesCredentials(subscription_key))
Análisis de una imagen
Una vez que tenemos el cliente, podemos pasarle la URL de una imagen para que sea analizada mediante el método read_file_url:
El cliente de Computer Vision es capaz de manejar operaciones asíncronas para obtener resultados. Utilizando el operation ID, podemos obtener los resultados del análisis.
Extracción de resultados
El ciclo de proceso es esperar a que la operación se complete y luego extraer resultados como texto:
operation_id = resultados.headers["Operation-Location"].split("/")[-1]
while True:
resultado = client.get_read_result(operation_id)
if resultado.status not in ['notStarted', 'running']:
break
# Iterar sobre las líneas detectadas
if resultado.status == 'succeeded':
for plan_result in resultado.analyze_result.read_results:
for line in plan_result.lines:
print(line.text)
Esta integración permite detectar y mostrar el texto presente en la imagen, lo cual proporciona la oportunidad de experimentación y desarrollo adicional en diversas aplicaciones.
Invitamos a los desarrolladores y estudiantes a explorar esta poderosa herramienta, integrando OCR en sus proyectos para optimizar flujos de trabajo y mejorar la eficiencia en la gestión de información. Recuerden consultar el código fuente disponible y adaptar las soluciones a distintos lenguajes y entornos.
Una tecnología que en ingles significa Optical Caracter Recognition, permite analizar la imagen y extraer el texto.
API de Lectura
Es la tecnología OCR más reciente de Azure que permite extraer texto impreso (en varios idiomas), texto manuscrito (sólo en inglés), dígitos y símbolos de divisas.
Requisitos de entrada
Las llamadas a la API de lectura usa las imágenes y documentos como entrada y requiere:
Formatos de archivos admitidos: JPEG, PNG; PDF y TIFF.
En el caso de archivos PDF y TIFF se procesan hasta 2000 páginas.
El tamaño del archivo debe ser inferior a 50 MB y de al menos 50 x 50 píxeles y hasta 10,000 x 10,000 píxeles.
Características principales
La API de lectura incluye las siguientes características
Extracción de texto impreso en 73 idiomas.
Extracción de texto manuscrito en inglés.
No se requiere identificación del idioma.
Compatibilidad con idiomas mixtos y modo mixto (impresión y escritura a mano).
Disponible como contenedor para implementación local o a través de la API en Azure.
using System;
using System.Collections.Generic;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision.Models;
using System.Threading.Tasks;
using System.IO;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.Threading;
using System.Linq;
namespace _8_OCR
{
class Program
{
// Add your Computer Vision subscription key and endpoint
static string subscriptionKey= "e492c2af38464ab5a6aa449a8ef4328a";
static string endpoint = "https://cognitivelrs.cognitiveservices.azure.com/";
private const string READ_TEXT_URL_IMAGE = "https://intelligentkioskstore.blob.core.windows.net/visionapi/suggestedphotos/3.png";
static void Main(string[] args)
{
ComputerVisionClient client = Authenticate(endpoint, subscriptionKey);
// Extract text (OCR) from a URL image using the Read API
ReadFileUrl(client, READ_TEXT_URL_IMAGE).Wait();
}
/*
* AUTHENTICATE
* Creates a Computer Vision client used by each example.
*/
public static ComputerVisionClient Authenticate(string endpoint, string key)
{
ComputerVisionClient client =
new ComputerVisionClient(new ApiKeyServiceClientCredentials(key))
{ Endpoint = endpoint };
return client;
}
/*
* READ FILE - URL
* Extracts text.
*/
public static async Task ReadFileUrl(ComputerVisionClient client, string urlFile)
{
Console.WriteLine("----------------------------------------------------------");
Console.WriteLine("READ FILE FROM URL");
Console.WriteLine();
// Read text from URL
var textHeaders = await client.ReadAsync(urlFile);
// After the request, get the operation location (operation ID)
string operationLocation = textHeaders.OperationLocation;
Thread.Sleep(2000);
// Retrieve the URI where the extracted text will be stored from the Operation-Location header.
// We only need the ID and not the full URL
const int numberOfCharsInOperationId = 36;
string operationId = operationLocation.Substring(operationLocation.Length - numberOfCharsInOperationId);
// Extract the text
ReadOperationResult results;
Console.WriteLine($"Extracting text from URL file {Path.GetFileName(urlFile)}...");
Console.WriteLine();
do
{
results = await client.GetReadResultAsync(Guid.Parse(operationId));
}
while ((results.Status == OperationStatusCodes.Running ||
results.Status == OperationStatusCodes.NotStarted));
// Display the found text.
Console.WriteLine();
var textUrlFileResults = results.AnalyzeResult.ReadResults;
foreach (ReadResult page in textUrlFileResults)
{
foreach (Line line in page.Lines)
{
Console.WriteLine(line.Text);
}
}
Console.WriteLine();
}
}
}
La imagen del link en el código del repositorio no está disponible y produce un error. La pueden sustituir con cualquier enlace de una imagen que encuentren en internet.