SuperAPI AI 工具集

vision-framework

设计与创作

查看项目

更新于 10-15 23:34

技能介绍

用途:在 iOS 应用中实现设备端计算机视觉能力,包括文字识别(OCR)、人脸与关键点检测、条码识别、文档扫描、图像分割、目标跟踪等。资料针对 iOS 26+ 与 Swift 6.3 的场景给出模式,并标注向后兼容条件。

主要能力:请求层分现代 API(iOS 18+,遵循 ImageProcessingRequest 协议,使用 async/await 与类型化返回值)和旧版 API(VNImageRequestHandler 加回调)。覆盖 RecognizeTextRequest 文字识别(可设识别级别、语言、语言纠正、自定义词)、DetectFaceRectanglesRequest 与 DetectFaceLandmarksRequest 人脸与人脸关键点、DetectBarcodesRequest 条码(含 QR、EAN13、Code128、PDF417 等)、iOS 26+ 的 RecognizeDocumentsRequest 结构化文档读取(段落、表格、列表、内嵌条码)、GeneratePersonSegmentationRequest 与 GeneratePersonInstanceMaskRequest 人物分割与实例分割、TrackObjectRequest 等有状态跟踪请求,以及 ClassifyImageRequest、显著性、矩形、水平线、人体姿态、手部姿态、动物姿态、人脸拍摄质量等请求。还可通过 CoreMLRequest 运行自定义 Core ML 模型并自动做图像预处理。VisionKit 的 DataScannerViewController 提供全屏实时文字与条码扫描。

使用方式:现代请求的典型模式为创建请求结构体、调用 perform(on:) 并处理类型化结果,例如 request.perform(on: cgImage);旧版则用 VNImageRequestHandler 的 perform([request])。分割掩膜可配合 Core Image 的 CIFilter.blendWithMask() 合成。DataScannerViewController 需先用 isSupported 与 isAvailable 判断可用性,再设置 dataTypes、质量级别并调用 startScanning(),在 SwiftUI 中通过 UIViewControllerRepresentable 包装;使用时需在 Info.plist 声明 NSCameraUsageDescription。

限制与常见错误:Vision 使用归一化坐标且原点在左下角,展示前需转换到 UIKit 坐标;图像分析消耗 CPU/GPU,不应在主线程执行;实时视频宜用 .fast 识别级别,静态图像用 .accurate;应按需指定条码类型,并依据置信度过滤结果;视频跟踪应使用 VNSequenceRequestHandler 保持时序上下文而非逐帧新建 handler;DataScannerViewController 需要 A12 及以上芯片与相机权限。具体细节参见资料中的 references/vision-requests.md 与 references/visionkit-scanner.md。