-
Novidades na compreensão de imagens
Aproveite uma poderosa compreensão de imagens com as atualizações mais recentes do framework Vision e do framework Foundation Models. A nova solicitação tap-to-segment permite segmentar imagens de maneiras inovadoras, e o Vision agora é compatível com o watchOS. Combine o novo suporte a imagens no Foundation Model da Apple com OCR, leitura de códigos de barras e suas próprias ferramentas para oferecer compreensão visual baseada em LLM no seu app.
Capítulos
- 0:00 - Introdução
- 1:36 - Segmente imagens com tap-to-segment
- 5:50 - Entradas de imagem para Foundation Models
- 7:57 - Chamadas de ferramentas baseadas em imagens
- 13:09 - Vision disponível no watchOS
- 14:39 - Próximas etapas
Recursos
- Segmenting objects using taps, scribbles or rectangles
- Implementing saliency-based image cropping in iOS and watchOS
Vídeos relacionados
WWDC26
WWDC25
WWDC24
-
Buscar neste vídeo...
-
-
4:15 - Segment images (tap-to-segment)
// Generate a segmentation mask of an object with a seed point let handler = ImageRequestHandler(image) let request = GenerateIterativeSegmentationRequest(seed: point) let observation = try await handler.perform(request) let mask = observation?.pixelBuffer // Refine the mask with a new point request.addIncludedPoint(newPoint) let refinedObservation = try await handler.perform(request) -
6:41 - Generate an image caption with Foundation Models
// Generate an image caption with Foundation Models import FoundationModels let prompt = Prompt { "Generate a caption for this image" Attachment(image) } let response = try await session.respond(to: prompt) let caption = response.content -
9:55 - Create an image-based tool
// Create an image-based tool struct PlantIdentifierTool: Tool { @SessionProperty(\.history) var history @Generable struct Arguments { var image: ImageReference } func call(arguments: Arguments) async throws -> String { let imageReference = arguments.image let transcript = Transcript(history) guard let imageAttachment = imageReference.resolve(in: transcript) else { throw AppError.imageNotFound } let image = try imageAttachment.pixelBuffer() return classifyPlant(image) } } -
12:09 - Use Vision tools
// Use Vision tools import FoundationModels import Vision let session = LanguageModelSession(model: model, tools: [BarcodeReaderTool()]) let response = try await session.respond(generating: EventInfo.self) { "Get the date, location, and website from this flyer" Attachment(image) .label("flyer") } -
13:54 - Create a crop that highlights a prominent subject (watchOS / saliency)
// Create a crop that highlights a prominent subject func generateImageCrop(in image: CGImage) async throws -> NormalizedRect? { let request = GenerateObjectnessBasedSaliencyImageRequest() let observation = try await request.perform(on: image) let prominentObjects = observation.salientObjects return prominentObjects.first }
-