-
Leia documentos usando o framework Vision
Saiba mais sobre as últimas novidades do framework Vision. Vamos apresentar o RecognizeDocumentsRequest e como você pode usá-lo para ler linhas de texto e agrupá-las em parágrafos, ler tabelas, etc. Também vamos nos aprofundar na detecção de manchas na lente da câmera e em como identificar imagens possivelmente borradas em fototecas ou no seu próprio pipeline de captura de câmera.
Capítulos
- 0:00 - Introdução
- 1:22 - Ler documentos
- 13:35 - Detecção de manchas na lente da câmera
- 17:59 - Atualização na detecção de pose das mãos
Recursos
- Recognizing tables within a document
- Classifying Images with Vision and Core ML
- Image Classification with Vision and CoreML
- Vision
Vídeos relacionados
WWDC25
WWDC24
WWDC23
-
Buscar neste vídeo...
-
-
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 - Introdução
O framework Vision fornece APIs para integrar o aprendizado de máquina a apps em várias plataformas da Apple. Essas APIs permitem tarefas como detecção de pessoa e objetos, rastreamento de pose e análise de trajetória, todas executadas no dispositivo para oferecer melhor desempenho e segurança. Atualmente, o framework é composto por 31 APIs, com duas novas adições para leitura de documentos e detecção de manchas na lente da câmera e uma atualização para detecção de pose manual.
- 1:22 - Ler documentos
Há uma nova API chamada 'RecognizeDocumentsRequest' que se baseia no recurso 'RecognizeTextRequest' existente, permitindo a extração de informações estruturadas de documentos. Com 'RecognizeDocumentsRequest', é possível processar imagens e obter uma estrutura hierárquica do conteúdo do documento. A API pode detectar vários elementos, como tabelas, listas, parágrafos e códigos legíveis por máquina, como códigos QR. Ela vai além de extrair o texto; ela entende a formatação do texto, o que facilita a análise e interpretação dos dados. Por exemplo, imagine uma folha de inscrição com nomes, endereços de e-mail e números de telefone. Antes, a extração dessas informações era complexa, exigindo a determinação manual das relações celulares. No entanto, com 'RecognizeDocumentsRequest', o sistema analisa automaticamente a tabela e agrupa as células em linhas, simplificando o processo de criação de contatos a partir da planilha digitalizada.
- 13:35 - Detecção de manchas na lente da câmera
O novo recurso de detecção de manchas na lente da câmera da Vision, 'DetectLensSmudgeRequest', identifica imagens borradas usando uma pontuação de confiança entre 0 e 1. É possível definir limites para filtrar imagens de baixa qualidade, em que pontuações mais altas indicam uma imagem borrada. Limiares mais altos processam mais imagens, mas podem incluir algumas de qualidade inferior, enquanto limiares mais baixos rejeitam mais imagens, podendo descartar algumas que são boas. Fatores como desfoque de movimento da câmera, longa exposição, nuvens ou nevoeiro podem causar falsos positivos. Além disso, o Vision oferece outras APIs para avaliar a qualidade da imagem, como 'DetectFaceCaptureQualityRequest' para imagens com rostos e 'CalculateImageAestheticScoresRequest' para imagens sem rostos, incluindo documentos ou recibos.
- 17:59 - Atualização na detecção de pose das mãos
O framework Vision também tem um modelo atualizado de detecção de pose das mãos. O original, disponível desde 2020, identifica 21 articulações em uma mão para reconhecimento de movimentos em apps. O novo modelo é menor, mais rápido e preciso, mas se baseia em articulações diferentes, o que requer novo treinamento dos classificadores existentes.