-
Lee documentos con la estructura Vision
Conoce los últimos avances en la estructura Vision. Presentaremos RecognizeDocumentsRequest y cómo usarlo para leer líneas de texto y agruparlas en párrafos, leer tablas, etc. También profundizaremos en la detección de manchas en el lente de la cámara y cómo identificar imágenes potencialmente manchadas en fototecas o en tu propio canal de tomas fotográficas.
Capítulos
- 0:00 - Introducción
- 1:22 - Lectura de documentos
- 13:35 - Detección de manchas en el lente de la cámara
- 17:59 - Actualización de la postura de la mano
Recursos
- Recognizing tables within a document
- Classifying Images with Vision and Core ML
- Image Classification with Vision and CoreML
- Vision
Videos relacionados
WWDC25
WWDC24
WWDC23
-
Buscar este video…
-
-
6:39 - Detect tables
/// Process an image and return the first table detected func extractTable(from image: Data) async throws -> DocumentObservation.Container.Table { // The Vision request. let request = RecognizeDocumentsRequest() // Perform the request on the image data and return the results. let observations = try await request.perform(on: image) // Get the first observation from the array. guard let document = observations.first?.document else { throw AppError.noDocument } // Extract the first table detected. guard let table = document.tables.first else { throw AppError.noTable } return table } -
10:50 - Parse contacts
/// Extract name, email addresses, and phone number from a table into a list of contacts. private func parseTable(_ table: DocumentObservation.Container.Table) -> [Contact] { var contacts = [Contact]() // Iterate over each row in the table. for row in table.rows { // The contact name will be taken from the first column. guard let firstCell = row.first else { continue } // Extract the text content from the transcript. let name = firstCell.content.text.transcript // Look for emails and phone numbers in the remaining cells. var detectedPhone: String? = nil var detectedEmail: String? = nil for cell in row.dropFirst() { // Get all detected data in the cell, then match emails and phone numbers. let allDetectedData = cell.content.text.detectedData for data in allDetectedData { switch data.match.details { case .emailAddress(let email): detectedEmail = email.emailAddress case .phoneNumber(let phoneNumber): detectedPhone = phoneNumber.phoneNumber default: break } } } // Create a contact if an email was detected. if let email = detectedEmail { let contact = Contact(name: name, email: email, phoneNumber: detectedPhone) contacts.append(contact) } } return contacts }
-
-
- 0:00 - Introducción
La estructura Vision proporciona las API para integrar el aprendizaje automático en apps en varias plataformas de Apple. Con estas API se pueden realizar tareas como detección de personas y objetos, seguimiento posicional y análisis de trayectorias, todo ello ejecutándose en el dispositivo para lograr un rendimiento y una seguridad óptimos. La estructura actualmente incluye 31 API, con dos nuevas incorporaciones para la lectura de documentos y la detección de manchas en el lente de la cámara, y una actualización para el reconocimiento de la postura de la mano.
- 1:22 - Lectura de documentos
Hay una nueva API llamada “RecognizeDocumentsRequest” que se basa en la funcionalidad existente “RecognizeTextRequest”, con la cual puedes extraer información estructurada de los documentos. Con “RecognizeDocumentsRequest”, ahora puedes procesar imágenes y obtener una estructura jerárquica del contenido del documento. La API puede detectar varios elementos, como tablas, listas, párrafos y códigos legibles por máquinas como códigos QR. Se trata de mucho más que extraer texto; detecta el formato del texto, así es mucho más fácil analizar e interpretar los datos. Por ejemplo, piensa en una hoja de registro con nombres, direcciones de correo electrónico y números de teléfono. Antes, el proceso para extraer esta información era complejo y requería la determinación manual de las relaciones de celda. Sin embargo, con 'RecognizeDocumentsRequest', el sistema analiza automáticamente la tabla y agrupa las celdas en filas, simplificando el proceso de creación de contactos a partir de la hoja escaneada.
- 13:35 - Detección de manchas en el lente de la cámara
La nueva funcionalidad de Vision de detección de manchas en el lente de la cámara, “DetectLensSmudgeRequest”, reconoce imágenes manchadas con un puntaje de confianza entre 0 y 1. Puedes establecer umbrales para filtrar imágenes de mala calidad; los valores de confianza más altos indican una imagen falsa. Los umbrales más altos procesan más imágenes, pero pueden incluir las de menor calidad, mientras que los umbrales más bajos rechazan más imágenes, e incluyen potencialmente las de buena calidad. Factores como el desenfoque por movimiento de la cámara, la exposición prolongada, las nubes o la niebla a veces pueden provocar falsos positivos. Además, Vision ofrece otras API para evaluar la calidad de la imagen, como “DetectFaceCaptureQualityRequest” para imágenes con rostros y “CalculateImageAestheticScoresRequest” para imágenes sin rostros, como documentos o recibos.
- 17:59 - Actualización de la postura de la mano
La estructura Vision también tiene un modelo actualizado de reconocimiento de la postura de la mano. El original, disponible desde 2020, identifica 21 articulaciones de una mano para el reconocimiento de gestos en apps. El nuevo modelo es más pequeño, rápido y preciso, pero usa ubicaciones de las articulaciones distintas, por lo que hay que volver a entrenar los clasificadores existentes.