用途:为 Apple Vision 框架的计算机视觉开发提供 API 参考,覆盖目标分割、手部/人体姿态、人脸分析、文字识别(OCR)、条码检测和文档扫描。
主要能力:
- 目标分割:VNGenerateForegroundInstanceMaskRequest 生成前景实例掩码,可读取单实例掩码、按点命中测试并按实例集生成缩放掩码;VisionKit 提供 ImageAnalysisInteraction / ImageAnalysisOverlayView 及 ImageAnalyzer 程序化取用。
- 人体分割:VNGeneratePersonSegmentationRequest 返回全部人物掩码;VNGeneratePersonInstanceMaskRequest 最多区分 4 人,人多时可能漏检或合并。
- 姿态:VNDetectHumanHandPoseRequest 检测每只手 21 个关键点;VNDetectHumanBodyPoseRequest 检测 18 个 2D 点;VNDetectHumanBodyPose3DRequest 返回 17 关节 3D 骨架。
- 人脸与人体:VNDetectFaceRectanglesRequest、VNDetectFaceLandmarksRequest、VNDetectHumanRectanglesRequest。
使用方式:创建请求(如 VNDetectHumanHandPoseRequest());用 VNImageRequestHandler(cgImage: image) 或 VNSequenceRequestHandler 创建处理器;调用 handler.perform([request]);从 request.results 读取观测。单图用 VNImageRequestHandler,视频/相机帧用 VNSequenceRequestHandler 以保持帧间状态并平滑结果;坐标系为左下原点、归一化 0.0–1.0。
限制:处理资源开销大,应放后台队列,主线程会阻塞 UI;一个 VNImageRequestHandler 只对应一张图像,每帧新建会丢失时序信息;每人实例掩码最多 4 人;部分 API(如 3D 姿态、RecognizeDocumentsRequest)有系统版本要求(资料提到 iOS 17+/26+ 等)。