Apple 的 Vision 框架(Vision.framework) 是一个功能强大的计算机视觉框架,可以对图像和视频内容进行分析处理,常用于人脸识别、文字识别(OCR)、图像分类、手势识别、目标跟踪等。
支持iOS, macOS, tvOS, visionOS等平台,最低系统要求为iOS 11.0+ / macOS 10.13+,支持Core ML自定义模型。
核心功能
1、文字识别(OCR)
功能:识别图像中的文字,支持多语言、纠错、自定义词典
支持中英混排、PDF、手写等(精度视版本而定)
2、人脸识别
类:VNDetectFaceRectanglesRequest, VNDetectFaceLandmarksRequest
功能:检测人脸、五官轮廓、表情等
可用于美颜、AR、对焦、打码等场景
3、图像分类
类:VNCoreMLRequest + CoreML 模型
功能:将图像传入训练好的模型中进行推理(如猫狗识别)
4、物体检测与识别
类:VNDetectRectanglesRequest, VNDetectBarcodesRequest, VNDetectTextRectanglesRequest
检测二维码、条形码、矩形框、目标物体等
5、物体追踪
类:VNTrackObjectRequest, VNTrackRectangleRequest
功能:在视频中追踪目标物体,结合图像识别构建视频分析
6、人体姿态识别
类:VNDetectHumanBodyPoseRequest, VNDetectHumanHandPoseRequest
功能:识别身体或手部关键点(骨骼识别)
支持实时相机追踪(iOS 14+)
7、图像对比 / 相似度分析
类:VNGenerateImageFeaturePrintRequest
功能:可用于相似图检索、人脸聚类、重复图去重等
使用场景
1、OCR文字识别
let request = VNRecognizeTextRequest { request, error in
if let observations = request.results as? [VNRecognizedTextObservation] {
for observation in observations {
if let candidate = observation.topCandidates(1).first {
print("识别文字:", candidate.string)
}
}
}
}
let handler = VNImageRequestHandler(cgImage: inputCGImage, options: [:])
try? handler.perform([request])
实际OCR文字识别场景,请见《Swift实现OCR(光学字符识别)功能》。
图像输入支持
VNImageRequestHandler 支持以下类型的图像数据:
1、CGImage
2、CIImage
3、CVPixelBuffer
4、URL(如图像文件)
5、CMSampleBuffer(视频帧)
相关文章
1、Framework Version:https://developer.apple.com/documentation/vision
2、Swift实现OCR(光学字符识别)功能:https://fangjunyu.com/2025/07/28/swift%e5%ae%9e%e7%8e%b0ocr%ef%bc%88%e5%85%89%e5%ad%a6%e5%ad%97%e7%ac%a6%e8%af%86%e5%88%ab%ef%bc%89%e5%8a%9f%e8%83%bd/