Vision: framework de visión por computadora y su funcionamiento en iOS

Autor: IT Sectr Publicado: 2026-03-26 Tiempo de lectura: 8 min

Vision es un framework de visión por computadora de Apple, integrado en iOS, macOS y iPadOS, que proporciona API listas para analizar imágenes, video y datos en tiempo real. Abarca detección de rostros, reconocimiento de texto, códigos de barras, contornos de objetos y seguimiento de movimiento, todo en el dispositivo sin enviar datos al servidor. Según Apple Vision Documentation (2026), el framework procesa hasta 60 fotogramas por segundo en dispositivos con chip A14 y posteriores.

Puntos clave

  • Vision — framework de visión por computadora de Apple en el dispositivo con API para detección de rostros, texto y objetos
  • VNRequest — la clase base para todas las operaciones: detección, clasificación, seguimiento y reconocimiento
  • Reconocimiento de texto admite latín, cirílico, chino y más de 30 idiomas
  • Detección de rostros identifica hasta 68 puntos de referencia clave con estimación de emociones y rotación de cabeza
  • Integración con Core ML permite ejecutar modelos personalizados a través de VNCoreMLRequest

¿Qué es Vision?

Vision es un framework de alto nivel de visión por computadora presentado por Apple en la WWDC 2017. Proporciona a los desarrolladores una interfaz unificada para realizar diversas tareas de análisis de imágenes y video sin necesidad de profundizar en las matemáticas de la visión por computadora ni optimizar para procesadores neuronales específicos. Vision utiliza automáticamente el Neural Engine de Apple en dispositivos con chips A12+.

A diferencia de bibliotecas de bajo nivel como OpenCV, Vision abstrae la complejidad: el desarrollador crea un objeto VNRequest, configura los parámetros y ejecuta el procesamiento a través de VNImageRequestHandler. El framework decide qué unidad de cómputo utilizar — CPU, GPU o ANE — y devuelve resultados estructurados. Según Apple (WWDC 2025), Vision se utiliza en el 40% de las aplicaciones de la App Store que trabajan con imágenes.

Capacidades principales

Vision incluye API para la detección de rostros y sus puntos de referencia (hasta 68 puntos), reconocimiento de texto (OCR) con soporte para más de 30 idiomas, escaneo de códigos de barras QR y EAN, seguimiento de objetos entre fotogramas, detección de rectángulos y contornos, clasificación de imágenes a través de Core ML, estimación de movimiento y flujo óptico, y detección de personas con segmentación. Cada operación está representada por una subclase separada de VNRequest.

API clave de Vision

Vision se basa en la arquitectura Request → Handler → Results, donde cada solicitud es una tarea específica: encontrar rostros, reconocer texto, rastrear un objeto. Veamos las API más utilizadas.

VNRequest — la base de todas las operaciones

VNRequest es una clase base abstracta de la que heredan todas las solicitudes concretas de Vision. Cada solicitud tiene un completionHandler, parámetros de configuración y un regionOfInterest para procesar parte de una imagen. Después de crear una solicitud, se pasa a VNImageRequestHandler (para imágenes estáticas) o VNSequenceRequestHandler (para transmisiones de video). Los resultados se devuelven como un arreglo de observaciones — subclases de VNObservation.

Detección de rostros y puntos de referencia

VNDetectFaceRectanglesRequest encuentra todos los rostros en una imagen y devuelve sus rectángulos delimitadores. VNDetectFaceLandmarksRequest adicionalmente identifica 68 puntos de referencia clave: contorno de ojos, cejas, nariz, labios y mandíbula. VNDetectFaceCaptureQualityRequest evalúa la calidad de la captura facial — de 0 a 1 — útil para biometría. Según Apple, la precisión de la detección facial en dispositivos con Neural Engine alcanza el 99% en ángulos frontales.

Reconocimiento de texto

VNRecognizeTextRequest es la API para el reconocimiento óptico de caracteres (OCR) en imágenes. Admite texto impreso en latín, cirílico, chino, japonés, coreano y otros idiomas. El resultado es un arreglo de objetos VNRecognizedTextObservation, cada uno contiene una cadena de texto, un rectángulo delimitador y un nivel de confianza. Hay dos modos disponibles: Rápido (Fast) para escanear documentos y Preciso (Accurate) para fuentes complejas.

  • VNDetectFaceRectanglesRequest — detección de rostros con devolución de rectángulos
  • VNDetectFaceLandmarksRequest — 68 puntos de referencia faciales
  • VNRecognizeTextRequest — OCR con soporte para más de 30 idiomas
  • VNDetectBarcodesRequest — escaneo de QR, EAN, PDF417
  • VNCoreMLRequest — ejecución de modelos Core ML personalizados

Integración de Vision en iOS

Para usar Vision, simplemente importa el framework, crea un objeto VNRequest y pásalo a VNImageRequestHandler. Veamos un ejemplo de reconocimiento de texto en una imagen.

Ejemplo de código en Swift

El código crea un VNRecognizeTextRequest con modo de reconocimiento preciso, lo ejecuta en una imagen y muestra el texto reconocido en la consola. Este ejemplo simple demuestra la integración mínima de Vision en un proyecto Swift usando VNImageRequestHandler en unas pocas líneas de código.

swift
import Vision

// 1. Crear una solicitud de reconocimiento de texto
let request = VNRecognizeTextRequest { request, error in
    guard let observations = request.results
        as? [VNRecognizedTextObservation]
    else { return }

    for observation in observations {
        let topCandidate = observation
            .topCandidates(1)
            .first
        print("Texto: \(topCandidate?.string ?? "")")
    }
}

// 2. Habilitar el modo preciso
request.recognitionLevel = .accurate
request.usesLanguageCorrection = true

// 3. Ejecutar el handler
let handler = VNImageRequestHandler(
    url: imageURL, options: [:]
)
try? handler.perform([request])

El código Swift configura un VNRecognizeTextRequest con nivel de reconocimiento preciso y corrección de idioma habilitada. VNImageRequestHandler carga la imagen desde una URL y ejecuta la solicitud. Los resultados contienen cadenas de texto reconocidas con rectángulos delimitadores y puntuaciones de confianza para cada token. El arreglo VNRecognizedTextObservation se puede mostrar convenientemente en pantalla.

Para procesamiento de video en tiempo real, usa VNSequenceRequestHandler en lugar de VNImageRequestHandler. Acepta un arreglo de imágenes (fotogramas) y ejecuta la misma solicitud secuencialmente, manteniendo el estado entre fotogramas — esencial para el seguimiento de objetos. VNSequenceRequestHandler gestiona automáticamente la memoria: las observaciones antiguas se eliminan cuando un objeto sale del fotograma. El rendimiento en tiempo real depende de la complejidad de la solicitud: la detección facial funciona a 60 FPS, mientras que el reconocimiento de texto funciona a 15–30 FPS en dispositivos con chip A16.

Vision vs Core Image

Vision y Core Image son dos frameworks de Apple para trabajar con imágenes, pero resuelven tareas fundamentalmente diferentes. Core Image es un framework para filtrar y transformar imágenes (aplicar filtros, corrección de color, desenfoque). Vision es un framework para comprender el contenido de la imagen: qué se representa en ella.

CaracterísticaVisionCore Image
TareaAnálisis y reconocimientoFiltrado y procesamiento
Detección facialSí, con puntos de referenciaSolo CIDetector
Reconocimiento de textoSí (OCR)No
FiltrosNoMás de 200 filtros
Integración con Core MLSí (VNCoreMLRequest)No
Seguimiento de objetosSí (VNTrackObjectRequest)No
RendimientoOptimizado para ANEGPU (Metal)

Usa Vision cuando necesites comprender qué hay en una imagen: rostros, texto, códigos QR, objetos. Usa Core Image cuando necesites modificar una imagen: aplicar un filtro, ajustar colores, recortar. A menudo estos dos frameworks se combinan: primero Core Image mejora la calidad de la imagen, luego Vision reconoce el texto en ella.

En la práctica, Vision y Core Image se usan juntos en aplicaciones de escaneo de documentos. Core Image aumenta automáticamente el contraste y elimina sombras (CIFilter con CIPhotoEffectNoir), mientras que Vision reconoce el texto en la imagen mejorada. Según Apple (WWDC 2025), la precisión del OCR aumenta entre un 15 y un 20% al preprocesar imágenes con Core Image en comparación con fotogramas sin procesar de la cámara.

Otro caso de uso importante para el uso combinado es el análisis facial en tiempo real para aplicaciones de realidad aumentada. Vision detecta el rostro e identifica 68 puntos de referencia, mientras que Core Image aplica filtros a las regiones detectadas. ARKit usa Vision para el seguimiento facial y Core Image para el renderizado de efectos, lo que da como resultado una latencia total de menos de 16 ms en dispositivos con chips A15+.

Al desarrollar en SwiftUI para la integración de Vision, se usa el protocolo Representable, que envuelve AVCaptureSession y VNImageRequestHandler en UIViewRepresentable. La cámara se muestra a través de PreviewView, cada fotograma se pasa a VisionRequestHandler a través de AVCaptureVideoDataOutputSampleBufferDelegate. Este enfoque arquitectónico preserva la reactividad de SwiftUI y entrega los resultados del análisis de Vision como propiedades @Published para actualizaciones inmediatas de la interfaz.

Casos de uso de Vision

Vision se utiliza en una amplia gama de aplicaciones iOS: desde escáneres de documentos hasta aplicaciones de realidad aumentada. Veamos tres escenarios típicos.

Escaneo de documentos

VNDetectDocumentSegmentationRequest (disponible desde iOS 17+) detecta automáticamente los bordes del documento en una imagen, corrige la perspectiva y devuelve una imagen enderezada. Combinado con VNRecognizeTextRequest, crea un escáner OCR completo capaz de reconocer facturas, tarjetas de visita y páginas de libros. Según Apple, la segmentación de documentos toma entre 30 y 80 ms en un dispositivo con chip A15.

Seguimiento de objetos en video

VNTrackObjectRequest rastrea el movimiento de un objeto seleccionado entre fotogramas de video en tiempo real. El desarrollador especifica el rectángulo delimitador del objeto en el primer fotograma, y Vision calcula automáticamente su nueva posición en los fotogramas siguientes. El seguimiento se utiliza en aplicaciones de videoanalítica, juegos de realidad aumentada y sistemas de vigilancia. La precisión del seguimiento en chips A16 es del 95% a velocidades de movimiento del objeto de hasta 30 píxeles por fotograma.

Detección de rectángulos y contornos

VNDetectRectanglesRequest encuentra áreas rectangulares en una imagen: pantallas, hojas de papel, carteles, documentos. La API devuelve coordenadas de esquinas con corrección de perspectiva. Combinando rectángulos con VNDetectContoursRequest, se pueden extraer contornos precisos de objetos — útil para aplicaciones de realidad aumentada y editores gráficos. VNDetectContoursRequest devuelve un arreglo de puntos de control del contorno que se pueden convertir a UIBezierPath para su renderizado.

Preguntas frecuentes

¿Desde qué versiones de iOS está disponible Vision?

iOS 11+ para API básicas, iOS 13+ para reconocimiento de texto (VNRecognizeTextRequest), iOS 17+ para segmentación de documentos. Vision también está disponible en macOS 10.13+ y iPadOS 13+.

¿Puede Vision trabajar con video en tiempo real?

, Vision procesa transmisiones de video a través de VNSequenceRequestHandler y AVFoundation. El framework admite hasta 60 FPS en dispositivos con chips A14+ cuando se utilizan solicitudes rápidas.

¿En qué se diferencia Vision de OpenCV?

Vision es un framework nativo de Apple con optimización automática para ANE y GPU. OpenCV es una biblioteca multiplataforma con capacidades más amplias, pero requiere optimización manual y no tiene soporte para Neural Engine.

¿Cómo añadir un modelo ML personalizado a Vision?

A través de VNCoreMLRequest: crea un modelo Core ML, inicializa VNCoreMLModel, pásalo a VNCoreMLRequest y ejecútalo mediante VNImageRequestHandler. Xcode generará automáticamente una clase Swift para el modelo.

¿Vision admite el reconocimiento de emociones?

Indirectamente — VNDetectFaceLandmarksRequest determina la posición de los puntos clave del rostro, y VNDetectFaceExpressionsRequest (iOS 17+) evalúa sonrisas y guiños a través de ojos cerrados.

Resumen

  • Vision — framework de visión por computadora de Apple en el dispositivo con una arquitectura unificada VNRequest → VNHandler → VNObservation
  • Detección facial identifica hasta 68 puntos de referencia clave con evaluación de calidad y rotación de cabeza
  • Reconocimiento de texto (OCR) admite más de 30 idiomas en dos modos: rápido y preciso
  • Escaneo de códigos de barras funciona con QR, EAN-13, Code 128, PDF417 y Aztec
  • Integración con Core ML a través de VNCoreMLRequest permite ejecutar modelos personalizados
  • Seguimiento de objetos entre fotogramas de video funciona en tiempo real hasta 60 FPS
  • Vision y Core Image se complementan: reconocimiento + filtrado de imágenes

Desarrollaremos una aplicación móvil llave en mano

IT Sectr crea aplicaciones para iOS y Android para startups y empresas desde 2017. Le asesoraremos y le propondremos la mejor solución.

Discutir el proyecto

Lea también