Saltar al contenido
Think Tecno
iOS

iPhone: cómo usar las funciones de detección de texto de iOS

Vision en iOS 11 tiene todo lo que necesita para crear una aplicación que pueda reconocer caracteres de texto simultáneamente con la implementación. No necesita un conocimiento técnico del código: navegar por la función es bastante simple. Además, la implementación es perfecta.

Marco de visión

El marco de visión le permite implementar fácilmente cualquier actividad que involucre detalles de la computadora. La instalación realiza la detección de marcas faciales y faciales, reconocimiento de códigos de barras, grabación de imágenes, detección de funciones generales y detección de texto. Vision también le permite utilizar modelos Core ML personalizados para actividades como la clasificación o la detección de objetos.

VN DetectTextRectanglesRequest

los VN DetectTextRectanglesRequest es una solicitud de análisis de imagen que encuentra áreas de texto visibles en una imagen; La función devuelve los caracteres de texto como un rectángulo de selección rectangular con origen y tamaño.

Si está acostumbrado a usar Swift y ha programado por un tiempo, probablemente se esté preguntando qué está usando Vision cuando hay otras características como imagen y AVFoundation. Bueno, la visión es más precisa y más simple. La función también está disponible en una variedad de plataformas. Sin embargo, usar Vision puede requerir más potencia de procesamiento y tiempo de procesamiento.

Para usar Vision para la detección de texto, se requieren Xcode 9 y un dispositivo con iOS 11.

Crear una cámara con Avcapture

En primer lugar, debes crear una cámara con AVCapture; Esto se realiza inicializando un objeto AVcapturesession para realizar la adquisición en tiempo real o sin conexión. Luego, inicie sesión cuando el dispositivo se conecte.

Para ahorrar tiempo al crear una interfaz de usuario de su aplicación, en primer lugar considere tener un proyecto inicial, esto le dará tiempo para concentrarse en aprender el marco de Vision.

  1. Abre tu proyecto inicial. Las vistas en el guión gráfico deberían estar listas y configuradas para usted.
  2. Sobre el ViewController.swift, busque la sección de códigos con funciones y puntos de venta.
  3. Debajo de la salidaImageView, ddeclarar una sesión para AVcapturesession : Se usa cada vez que desea que se realicen acciones basadas en una transmisión en vivo.
  4. Selecciona el AVcapturesession y el AVmediatype al video, ya que disparará la cámara para permitir que continúe disparando
  5. Definir el dispositivo de salida y entrada.
  6. La entrada es lo que verá la cámara y la salida es el video en un formato de tipo establecido por KCVPixelFormatType_32GRA.
  7. Finalmente, agregue a subnivel que contiene videos a ImageView y comenzar la sesión. La función se conoce como inViewdidload. También necesita establecer el marco de la capa.

Llamar a la función en viewWillAppear método.

Como los límites aún no se han finalizado, sobrescriba el viewDidLayoutSubviews () Método para actualizar las capas asociadas.

Después del lanzamiento de iOS 10, se necesita una entrada adicional en Info.plist, que proporciona una razón para usar la cámara. También es necesario establecer la descripción del uso de la cámara.

Detección de texto; Cómo funciona Vision Framework

Hay tres pasos para implementar Vision en la aplicación.

  1. Gerentes – Esto es cuando desea que el marco haga algo después de que se haya llamado la solicitud.
  2. Observaciones esto es lo que desea hacer con los datos proporcionados por usted a partir de una solicitud
  3. Peticiones – esto es cuando pides el marco Detect

Idealmente, crea una solicitud de texto como VNdetecttextrectanglesrequest. Este es un tipo de VNrequest rodeando el texto. Una vez que el marco ha completado la aplicación, procedemos a llamar al Dettexthandler función. También necesitará saber el marco exacto que se ha reconocido, configúrelo en Reportcharacterboxes= Verdadero

A continuación, defina las observaciones que contienen todos los resultados de VNdetecttextrectanglesrequest, recuerde agregar Vision a la cámara de salida. Dado que Vision expone API de alto nivel, trabajar con él es seguro.

La función verifica si el Cmsamplebuffer existe y PutOut Salida de captura. Luego debe proceder con la creación de una variable Solicitudes como 1 tipo de diccionario VNimageoption. los VNmage La opción es un tipo de estructura que contiene propiedades y datos de la cámara. Por lo tanto, debe crear el archivo VNimagerequesthandler y ejecuta la solicitud de texto.

Dibuja los bordes alrededor del texto detectado

Puede comenzar teniendo el marco para dibujar dos cuadros, uno para cada letra que detecta y el otro para cada palabra. Las tablas son la combinación de todos los cuadros de caracteres que encontrarán su solicitud.

  • Defina los puntos en su vista para ayudarlo a colocar los cuadros.
  • Luego, crea un CALayer; utilizar V Observación deleobservación para definir sus restricciones, facilitando el proceso de definición del cuadro.

Ahora tiene todas sus funciones definidas.

Para conectar sus puntos, comience ejecutando el código de forma asincrónica. Por lo tanto, debe verificar para ver si hay una región en sus resultados de los suyos VNTextObservation.

Ahora puede llamar a su función, que dibujará un cuadro dentro del área. Verifique si hay cuadros de caracteres dentro de la región, luego llame al servicio que lleva un cuadro alrededor de cada letra.

Luego, crea una variable RequestOptions. Ahora puedes crear un VNImageRequestHandler objetar y ejecutar la solicitud de texto creada.

Finalmente, el último paso es ejecutar el código de visualización con transmisión en vivo. Deberá tomar la salida de video y convertirla a Cmsamplebuffer.

Consejos adicionales

  1. Intente siempre recortar la imagen y procesar solo la sección que necesita. Esto reducirá el tiempo de procesamiento y la huella de memoria
  2. Habilite la corrección de idioma cuando trabaje con caracteres no numéricos, luego desactívela cuando trabaje con un carácter numérico
  3. Incluya la validación de cadenas de números reconocidas para confirmar la precisión y eliminar la visualización de un valor falso para el usuario.
  4. El controlador de cámara de documentos es el mejor compañero para el reconocimiento de texto, ya que la calidad de imagen juega un papel importante en el reconocimiento de texto.
  5. Considere establecer una altura mínima de texto para aumentar el rendimiento.

Con Vision, tiene todo lo que necesita para el reconocimiento de texto. Dado que Vision es fácil de usar y lleva poco tiempo implementarlo, usarlo es casi equivalente a jugar con Legos. Intente probar su aplicación en diferentes objetos, fuentes, iluminación y tamaños. También puede sorprenderse al combinar Vision con Core ML.