Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
Recibosse esperan en el ajetreado mundo de hoy. Ya sea que compres comestibles o comas en un restaurante, tener un recibo ayuda a informar la cantidad gastada y puede ser usado para presupuestar en consecuencia. Mientras tanto, cuando los supermercados utilizan un escáner de recibos para escanear recibos, pueden obtener información sobre cómo se venden sus productos y planificarlos de acuerdo con un pronóstico de ventas.
Sin embargo, los recibos suelen ser difíciles de leer y, a veces, la gente no está segura de cuál es el total. Además, si alguien quiere controlar su presupuesto, introducir manualmente todos los datos de los recibos es agotador, considerando la cantidad de artículos que alguien puede comprar. Perder un recibo podría significar que de repente no estés seguro de por qué se ha excedido el presupuesto del mes.
Para este problema, las aplicaciones de presupuesto y finanzas se han orientado hacia la utilización deOCR(Reconocimiento óptico de caracteres)para ayudar a los clientes a rastrear fácilmente todos los recibos escaneándolos y convirtiéndolos en digitales. Esto, a su vez, minimiza el error humano al ingresar recibos mientras permite a los clientes automatizar la entrada de datos, rastrear gastos y obtener información sobre el comportamiento de compra.
La tecnología OCR extrae datos de recibos e imágenes digitales utilizando algoritmos de aprendizaje automático para identificar áreas de texto o números. Sin embargo, no está exento de fallos. Si la imagen tiene mucho ruido digital, como desenfoque y manchas, los datos devueltos a menudo se vuelven incorrectos o confusos. Por lo tanto, elegir una biblioteca confiable que permita a los desarrolladores depurar y optimizar métodos para leer recibos es esencial.
IronOCRes una de esas bibliotecas. Ofrece métodos especializados para leer recibos mientras proporciona personalización para los desarrolladores que desean filtrar la imagen antes de extraer los datos. Incluso permite a los desarrolladores depurar y probar si los datos son precisos.
Este artículo probablemente discutirá ejemplos de la vida real sobre cómo IronOCR procesa y filtra los recibos del supermercado para garantizar la precisión de los datos.
IronOCRes una biblioteca de C# que utiliza una versión personalizada del TesseractMotor OCR bajo el capó. La biblioteca ofrece métodos fáciles de usar y una funcionalidad flexible para todas las necesidades relacionadas con OCR. Además de las técnicas estándar, IronOCR permite a los desarrolladores utilizar y personalizar completamente una versión personalizada de Tesseract para lograr todas las tareas relacionadas. Algunos de los aspectos críticos que ayudan con los recibos de supermercado:
Compatibilidad cruzada: IronOCR es completamente compatible con una amplia gama de plataformas .NET, incluidas .NET 8, 7, 6 y 5, y .NET Framework 4.6.2 en adelante. Admite sin problemas todos los sistemas operativos, incluidos Windows, macOS, Azure y Linux, por lo que la compatibilidad cruzada no es un problema.
Flexibilidad y escalabilidad: La flexibilidad de la biblioteca se destaca por su capacidad para manejar varios formatos de entrada de OCR, incluidos formatos de imagen populares como jpg, png y gif. También se integra perfectamente con "System.Drawings.Objects" nativo de C#, facilitando la integración en bases de código existentes.
Facilidad de uso y amplio soporte: IronOCR está extensamente documentado, con una API robusta y tutoriales que cubren todas las funcionalidades. Además, los desarrolladores pueden contar con soporte 24/5 para cualquier asistencia.
Recuerda que IronOCR requiere una clave de licencia para su funcionamiento. Puede obtener una clave como parte de una prueba gratuita visitando este enlaceenlace.
//Replace the license key variable with the trial key you obtained
IronOCr.License.LicenseKey = "REPLACE-WITH-YOUR-KEY";
//Replace the license key variable with the trial key you obtained
IronOCr.License.LicenseKey = "REPLACE-WITH-YOUR-KEY";
'Replace the license key variable with the trial key you obtained
IronOCr.License.LicenseKey = "REPLACE-WITH-YOUR-KEY"
Tras recibir una clave de prueba, establezca esta variable en su proyecto.
Supongamos un escenario en el que un desarrollador crea aplicaciones móviles que permiten a los clientes escanear sus recibos con sus teléfonos para ganar puntos adicionales basados en el total de compras.
El código a continuación muestra cómo IronOCR toma un recibo de supermercado estándar y, usando la API de OCR, extrae todos los datos relevantes, como el nombre del producto, las partidas, los precios y cualquier nombre.
using IronOcr;
#region
IronOcr.License.LicenseKey = "YOUR-KEY";
#endregion
// Instantiate OCR engine
var ocr = new IronTesseract();
using var inputPhoto = new OcrInput();
inputPhoto.LoadImage("supermarketexample.jpg");
// Perform OCR
OcrResult result = ocr.Read(inputPhoto);
string text = result.Text;
Console.WriteLine(text);
using IronOcr;
#region
IronOcr.License.LicenseKey = "YOUR-KEY";
#endregion
// Instantiate OCR engine
var ocr = new IronTesseract();
using var inputPhoto = new OcrInput();
inputPhoto.LoadImage("supermarketexample.jpg");
// Perform OCR
OcrResult result = ocr.Read(inputPhoto);
string text = result.Text;
Console.WriteLine(text);
Imports IronOcr
#Region ""
IronOcr.License.LicenseKey = "YOUR-KEY"
'#End Region
' Instantiate OCR engine
Dim ocr = New IronTesseract()
Dim inputPhoto = New OcrInput()
inputPhoto.LoadImage("supermarketexample.jpg")
' Perform OCR
Dim result As OcrResult = ocr.Read(inputPhoto)
Dim text As String = result.Text
Console.WriteLine(text)
Primero importamos el módulo `IronOcr` en el ejemplo de código.
Luego instanciamos el motor de OCR y creamos una nueva variable `IronTesseract`.
Luego creamos un nuevo `OcrInput` y cargamos la imagen. En este ejemplo, proporcionamos la `ruta del archivo` a la variable. Aunque el formato del recibo viene en varias formas, el método puede aceptar todos los formatos populares.
Luego leemos la imagen utilizando el método `Read`.
Tenga en cuenta que la salida de la consola arriba imprime el producto y los elementos de línea en una sola línea. El método opera en modo de segmentación de página, ignorando los bloques de líneas que actúan como divisores en el recibo.
El recibo anterior es una imagen refinada y no es típico de un cliente que simplemente toma una foto de su recibo. Al tratar con ejemplos de la vida real, tendríamos que verificar la confianza de los datos extraídos para garantizar un umbral donde los datos se consideren inválidos para asegurar la consistencia en su aplicación.
IronOCR tiene una propiedad incorporada llamada `confidence` que permite a los desarrolladores verificar la exactitud de los datos extraídos.
OcrResult result = ocr.Read(inputPhoto);
string text = result.Text;
Console.WriteLine(text);
Console.WriteLine(result.Confidence);
OcrResult result = ocr.Read(inputPhoto);
string text = result.Text;
Console.WriteLine(text);
Console.WriteLine(result.Confidence);
Dim result As OcrResult = ocr.Read(inputPhoto)
Dim text As String = result.Text
Console.WriteLine(text)
Console.WriteLine(result.Confidence)
Este código es idéntico al anterior. La principal diferencia es que también muestra el nivel de confianza.
La propiedad `Confidence` en el `OcrResult` es un número de punto flotante crucial que representa la confianza estadística de precisión del OCR. Este valor se calcula como un promedio de cada carácter. Un valor más bajo indica posibles problemas, como una imagen de pasaporte borrosa o información adicional. El nivel de confianza más alto está representado por 1, mientras que el más bajo está representado por 0. Cuanto más alto sea el valor, más podemos asumir con seguridad que los datos extraídos son precisos y exactos.
Como puede ver, el nivel de confianza, incluso en una imagen de archivo, es solo del 75%. En escenarios de la vida real, la confianza podría ser incluso menor debido al ruido digital.
Como se muestra arriba, además de rechazar datos con baja confianza, IronOCR también permite a los desarrolladores limpiar y filtrar el ruido antes de ingresarlo como una imagen, asegurando una alta precisión en la extracción de datos. Aquí hay algunas configuraciones que podemos hacer antes de usar los recibos duplicados del supermercado.
inputPhoto.DeNoise();
inputPhoto.ToGrayScale();
inputPhoto.DeNoise();
inputPhoto.ToGrayScale();
inputPhoto.DeNoise()
inputPhoto.ToGrayScale()
El primer método, "DeNoise," aplana el canal alfa a blanco, lo que podría aumentar la precisión de la foto ya que las fotos digitales tienen mucho ruido esperado.
El segundo método, "ToGrayScale," aunque no es estrictamente una forma de mejorar la precisión, sí ayuda a la eficiencia del procesamiento por lotes de recibos al convertir cada tono de píxel en escala de grises.
Junto con estos métodos, los desarrolladores deben probar y ajustar las configuraciones disponibles utilizando IronOCR para filtrar según los criterios deseados para los datos extraídos de los recibos de supermercado.
Junto con la automatización, el Reconocimiento Óptico de Caracteres (OCR) de recibos es una tecnología poderosa que puede ayudar a las empresas a extraer información valiosa de los datos de los recibos. También es una herramienta poderosa para que las personas ayuden a presupuestar sus gastos e identifiquen áreas de interés personal. No solo eso, sino que la tecnología OCR también puede servir como una forma de mejorar la prevención de recibos manipulados o alterados al verificar los números de transacción en el recibo.
Por lo tanto, elegir la solución adecuada de OCR para recibos es crucial y fundamental para la precisión, velocidad y escalabilidad. IronOCR incorpora todo eso y es fácil de integrar con plataformas existentes, dando a los desarrolladores una ventaja en cuanto al escaneo de recibos.
Puede usar IronOCR'slicencia de pruebasi los desarrolladores están interesados.
10 productos API de .NET para sus documentos de oficina