-
Lire des documents à l’aide du framework Vision
Découvrez les dernières avancées du framework Vision. Nous allons présenter RecognizeDocumentsRequest et comment vous pouvez l'utiliser pour lire des lignes de texte et les regrouper en paragraphes, lire des tableaux, etc. Et nous nous pencherons également sur la détection des taches sur l'objectif des appareils photo et sur la façon d'identifier les images potentiellement tachées dans les bibliothèques de photos ou votre propre pipeline de capture d'appareil photo.
Chapitres
- 0:00 - Introduction
- 1:22 - Lire des documents
- 13:35 - Détection des taches sur l’objectif de l’appareil photo
- 17:59 - Mise à jour de la pose de la main
Ressources
- Recognizing tables within a document
- Classifying Images with Vision and Core ML
- Image Classification with Vision and CoreML
- Vision
Vidéos connexes
WWDC25
WWDC24
WWDC23
-
Rechercher dans cette vidéo…
-
-
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 - Introduction
Le framework Vision fournit des API permettant d’intégrer l’apprentissage automatique dans des apps sur diverses plateformes Apple. Ces API permettent d’effectuer des tâches telles que la détection de personnes et d’objets, le suivi de poses et l’analyse de trajectoires, le tout sur l’appareil pour des performances et une sécurité optimales. Le framework comprend actuellement 31 API, avec deux nouveaux ajouts pour la lecture de documents et la détection des traces sur l’objectif de l’appareil photo, ainsi qu’une mise à jour de la détection de la position des mains.
- 1:22 - Lire des documents
Une nouvelle API appelée RecognizeDocumentsRequest s’appuie sur la fonctionnalité existante RecognizeTextRequest pour vous permettre d’extraire des informations structurées à partir de documents. Grâce à RecognizeDocumentsRequest, vous pouvez désormais traiter des images et obtenir une structure hiérarchique du contenu du document. L’API est capable de détecter divers éléments, tels que des tables, des listes, des paragraphes et des codes lisibles par machine, comme les codes QR. Cela va au-delà de la simple extraction de texte et comprend également sa mise en forme, ce qui facilite considérablement l’analyse et l’interprétation des données. Prenons l’exemple d’une feuille d’inscription contenant des noms, des adresses e-mail et des numéros de téléphone. Auparavant, l’extraction de ces informations était complexe et nécessitait une détermination manuelle des relations entre les cellules. Avec RecognizeDocumentsRequest, le système analyse automatiquement la table et regroupe les cellules en lignes, ce qui simplifie le processus de création de contacts à partir de la feuille numérisée.
- 13:35 - Détection des taches sur l’objectif de l’appareil photo
La nouvelle fonctionnalité de détection des traces de doigts sur l’objectif de la caméra Vision, DetectLensSmudgeRequest, identifie les images tachées à l’aide d’un score de confiance compris entre 0 et 1. Vous pouvez définir des seuils pour filtrer les images de mauvaise qualité, les scores de confiance élevés indiquant une image tachée. Des seuils plus élevés traitent davantage d’images, mais peuvent inclure des images de qualité inférieure, tandis que des seuils plus bas rejettent davantage d’images, y compris éventuellement des images de bonne qualité. Des facteurs tels que le flou dû au mouvement de l’appareil photo, une longue exposition, des nuages ou du brouillard peuvent parfois entraîner des faux positifs. Vision propose également d’autres API pour évaluer la qualité des images, telles que DetectFaceCaptureQualityRequest pour les images contenant des visages et CalculateImageAestheticScoresRequest pour les images sans visages, y compris les documents ou les reçus.
- 17:59 - Mise à jour de la pose de la main
Le framework Vision dispose également d’un modèle de détection des poses des mains mis à jour. La version originale, disponible depuis 2020, identifie 21 articulations de la main pour la reconnaissance gestuelle dans les apps. Le nouveau modèle est plus compact, plus rapide et plus précis, mais il utilise des emplacements d’articulation différents, ce qui nécessite un nouvel entraînement des classificateurs existants.