vales unidos una tarjetas tarjeta sirve regalo que para pagar gratis este estados debe con como codigos codigo cargar canjearse app activar ios ocr

unidos - iOS: OCR en tiempo real en la parte superior de la alimentación de la cámara en vivo(similar a la tarjeta de regalo Canjear de iTunes)



tarjeta itunes para que sirve (5)

''Tiempo real'' es solo un conjunto de imágenes. Ni siquiera necesita pensar en procesarlos a todos, solo lo suficiente para representar ampliamente el movimiento del dispositivo (o el cambio en la posición de la cámara). No hay nada integrado en el SDK de iOS para hacer lo que quiere, pero puede usar una biblioteca de OCR de terceros (como Tesseract) para procesar las imágenes que toma de la cámara.

¿Hay alguna forma de lograr algo similar a lo que hacen las aplicaciones de iTunes y App Store cuando canjeas una Tarjeta de regalo con la cámara del dispositivo, reconociendo una pequeña cadena de caracteres en tiempo real en la parte superior de la alimentación de la cámara en vivo?

Sé que en iOS 7 ahora AVMetadataMachineReadableCodeObject clase AVMetadataMachineReadableCodeObject que, AFAIK, solo representa códigos de barras. Estoy más interesado en detectar y leer el contenido de una cadena corta. ¿Es posible utilizar métodos de API disponibles públicamente o algún SDK de terceros que pueda conocer?

También hay un video del proceso en acción:

https://www.youtube.com/watch?v=c7swRRLlYEo

Mejor,


Este hilo de preguntas y respuestas parece ser consistentemente uno de los principales éxitos de búsqueda para el tema de OCR en iOS, pero está bastante desactualizado, así que pensé en publicar algunos recursos adicionales que podrían ser útiles que he encontrado hasta el momento. hora de escribir este post:

Marco de visión
https://developer.apple.com/documentation/vision
A partir de iOS 11, ahora puede usar el marco de visión basado en CoreML incluido para cosas como la detección de rectángulos o texto. Descubrí que ya no necesito usar OpenCV con estas capacidades incluidas en el sistema operativo. Sin embargo, tenga en cuenta que la detección de texto no es lo mismo que el reconocimiento de texto u OCR, por lo que aún necesitará otra biblioteca como Tesseract (o posiblemente su propio modelo CoreML) para traducir las partes detectadas de la imagen a texto real.

SwiftOCR
https://github.com/garnele007/SwiftOCR
Si solo está interesado en reconocer códigos alfanuméricos, esta biblioteca de OCR reclama mejoras significativas de velocidad, consumo de memoria y precisión con respecto a Tesseract (no lo he probado yo mismo).

Kit ML
https://firebase.google.com/products/ml-kit/
Google ha lanzado ML Kit como parte de su conjunto de herramientas para desarrolladores Firebase, en versión beta en el momento de escribir este post. Al igual que el CoreML de Apple, es un marco de aprendizaje automático que puede usar sus propios modelos entrenados, pero también tiene modelos pre-entrenados para tareas comunes de procesamiento de imágenes como Vision Framework. A diferencia de Vision Framework, esto también incluye un modelo para el reconocimiento de texto de caracteres latinos en el dispositivo. Actualmente, el uso de esta biblioteca es gratuito para la funcionalidad en el dispositivo, con cargos por el uso de la nube / SAAS API de Google. He optado por usar esto en mi proyecto, ya que la velocidad y la precisión del reconocimiento parecen bastante buenas, y también crearé una aplicación Android con la misma funcionalidad, por lo que contar con una única solución multiplataforma es ideal para mí.

Reconocimiento ABKYY en tiempo real SDK
https://rtrsdk.com/
Este SDK comercial para iOS y Android se puede descargar de forma gratuita para evaluación y uso comercial limitado (hasta 5000 unidades en el momento de escribir este post). El uso comercial adicional requiere una licencia extendida. No evalué esta oferta debido a su precio opaco.


Estoy trabajando en un proyecto que hace algo similar a la tienda de aplicaciones de Apple canjear con la cámara como mencionaste.

Un gran punto de partida para procesar video en vivo es un proyecto que encontré en GitHub . Esto está utilizando el marco de AVFoundation e implementas los métodos AVCaptureVideoDataOutputSampleBufferDelegate.

Una vez que tenga el flujo de imagen (video), puede usar OpenCV para procesar el video. Debe determinar el área en la imagen que desea OCR antes de ejecutarla a través de Tesseract. Debe jugar con el filtrado, pero los pasos generales que sigue con OpenCV son:

  • Convierta las imágenes a B&W usando cv :: cvtColor (inputMat, outputMat, CV_RGBA2GRAY);
  • Umbral de las imágenes para eliminar elementos innecesarios. Usted especifica el valor de umbral para eliminar, y luego establece todo lo demás en negro (o blanco).
  • Determine las líneas que forman el límite del cuadro (o lo que esté procesando). Puede crear un "cuadro delimitador" si ha eliminado todo menos el área deseada, o usar el algoritmo HoughLines (o la versión probabilística, HoughLinesP). Usando esto, puede determinar la intersección de la línea para encontrar esquinas, y usar las esquinas para deformar el área deseada para enderezarla en un rectángulo adecuado (si este paso es necesario en su aplicación) antes de OCR.
  • Procese la parte de la imagen con la biblioteca OCR de Tesseract para obtener el texto resultante. Es posible crear archivos de entrenamiento para letras en OpenCV para que pueda leer el texto sin Tesseract. Esto podría ser más rápido pero también podría ser mucho más trabajo. En el caso de App Store, están haciendo algo similar para mostrar el texto que se leyó superpuesto sobre la imagen original. Esto se suma al factor cool, por lo que solo depende de lo que necesite.

Algunos otros consejos:

  • Utilicé el libro "OpenCV instantáneo" para comenzar rápidamente con esto. Fue muy útil.
  • Descargue OpenCV para iOS desde OpenCV.org/downloads.html
  • He encontrado que los umbrales adaptativos son muy útiles, puede leer todo acerca de ellos buscando "OpenCV adaptiveThreshold". Además, si tiene una imagen con muy poco entre los elementos claros y oscuros, puede utilizar la Binarización de Otsu . Esto determina automáticamente los valores de umbral en función del histograma de la imagen en escala de grises.


Tesseract en Tesseract . Es una biblioteca de código abierto de OCR que toma datos de imagen y los procesa. Puede agregar diferentes expresiones regulares y buscar solo caracteres específicos también. No es perfecto, pero desde mi experiencia funciona bastante bien. También se puede instalar como CocoaPod si te gusta ese tipo de cosas.

Si desea capturar eso en tiempo real, puede utilizar GPUImage para capturar imágenes en la transmisión en vivo y procesar las imágenes entrantes para acelerar Tesseract utilizando diferentes filtros o reduciendo el tamaño o la calidad de las imágenes entrantes.