用途:指导在 Apple 平台上实现计算机视觉功能,包括主体分割(subject lifting)、手部与人体姿态检测、人物检测、文字识别(OCR)、条码/二维码检测、文档扫描,以及组合多个 Vision API 解决复杂问题。
主要能力与选型:主体分割可用 VisionKit 的 ImageAnalysisInteraction(iOS/iPadOS)或 ImageAnalysisOverlayView(macOS)获得系统级交互;需要自定义管线、HDR 或大图时用 VNGenerateForegroundInstanceMaskRequest。人物分割用 VNGeneratePersonSegmentationRequest(整体掩码)或 VNGeneratePersonInstanceMaskRequest(每人独立掩码,最多 4 人)。手部姿态用 VNDetectHumanHandPoseRequest(21 个关键点),人体姿态用 VNDetectHumanBodyPoseRequest(2D)或 VNDetectHumanBodyPose3DRequest(3D)。文字识别用 VNRecognizeTextRequest,实时相机场景可用 DataScannerViewController;条码用 VNDetectBarcodesRequest;文档扫描用 VNDocumentCameraViewController 或 VNDetectDocumentSegmentationRequest,结构化文档用 RecognizeDocumentsRequest(iOS 26+)。
使用方式:Vision 请求不应在主线程执行,示例使用 DispatchQueue 后台队列;视频帧应使用 VNSequenceRequestHandler 以保持帧间状态,单图用 VNImageRequestHandler。资料给出多个组合模式,例如用主体掩码加手部关键点排除手持物体、用 CoreImage 的 CIBlendWithMask 保留 HDR 合成、按点击点选择实例、用拇指与食指距离判断捏合手势、用 60 帧姿态数据配合 CreateML 做动作分类。
限制:需注意各 API 的最低系统版本(如实例掩码 iOS 17+、VisionKit 主体提取 iOS 16+、3D 姿态 iOS 17+、RecognizeDocumentsRequest iOS 26+);应检查置信度、转换坐标系(左下原点与 UIKit 左上原点不同)、避免逐帧全量处理、只启用需要的条码类型。资料未提供收费、价格或平台之外的信息。