SuperAPI AI 工具集

vision-framework

编程与开发

查看项目

更新于 10-16 05:53

技能介绍

用途:在 iOS 应用中实现或审查端侧计算机视觉功能,使用 Apple 的 Vision 与 VisionKit 框架检测图像和实时视频中的文字、人脸、条码、物体、轮廓与姿态。目标环境为 Swift 6.3 / iOS 26+。

主要能力:分为两代 API。现代 Vision(iOS 18+)使用 Swift 结构体(如 RecognizeTextRequest、DetectBarcodesRequest),通过 try await request.perform(on: image) 执行,返回强类型观察数组,原生支持 async/await;旧版 Vision(iOS 18 之前)使用 Objective-C 类(如 VNRecognizeTextRequest),通过 VNImageRequestHandler(cgImage:).perform([request]) 执行。所有现代请求遵循 ImageProcessingRequest 协议。可通过 CoreMLModelContainer 集成自定义 Core ML 模型:编译模型(.mlpackage 或 .mlmodelc)、用容器包装、创建图像请求。任务分流:OCR、条码、人脸检测、人物分割、物体跟踪参见 Vision Requests 与 Detectors;实时相机扫描界面、文档扫描与 DataScannerViewController 光学条码流程参见 VisionKit Scanner。

必要用法与限制:Vision 观察的边界框使用归一化坐标(0.0...1.0),原点在左下角(笛卡尔),而 UIKit/SwiftUI 原点在左上角,需转换并翻转 Y 轴,例如使用 VNImageRectForNormalizedRect 后再计算 y = viewHeight - rect.origin.y - rect.size.height。常见错误包括:忘记翻转 Y 轴;在主线程同步执行重量级请求(如 .accurate 文字识别);直接传 UIImage 而未提取 cgImage 或未保留方向元数据;未检查 DataScannerViewController.isSupported 和 isAvailable 就使用;跨无关图像序列保留有状态跟踪请求(TrackObjectRequest)。审查清单涉及:iOS 18+ 优先使用现代请求类型、向 perform(on:orientation:) 正确传入方向、转换并翻转边界框、展示前检查相机扫描支持、在 @MainActor 之外的后台任务执行重处理、裁剪前将边界框限制在图像范围内。

适用场景:需要端侧 OCR、条码与文档扫描、人脸/物体检测、分割与姿态分析的 iOS 功能开发与代码审查。

限制:资料未提供具体平台兼容细节之外的价格、收费或效果数据,相关事实暂未提供。