iOS 17更新后DataScannerViewController识别精度骤降问题咨询
iOS 17下DataScannerViewController证件识别精度骤降问题
我开发的iPhone应用用DataScannerViewController做护照和身份证识别,iOS 16下精度和速度都很靠谱,但升级到iOS 17后,同款证件的识别精度掉得厉害,所有iOS 17设备都有这个问题,iOS 16.4.1则完全正常。翻了API文档没找到相关变更记录,想问问有没有同行遇到过同样的坑,以及可行的解决办法。
初始化代码如下:
let controller = DataScannerViewController( recognizedDataTypes: [.text()], qualityLevel: .accurate, recognizesMultipleItems: true, isHighFrameRateTrackingEnabled: true, isGuidanceEnabled: false, isHighlightingEnabled: true )
一些可尝试的解决思路
- 缩小识别范围:当前用的是全局文本识别,试试给
DataScannerViewController设置recognizedArea,把识别框限定在证件的文本区域内,减少无关内容干扰。 - 调整参数组合:iOS 17可能对
isHighFrameRateTrackingEnabled和qualityLevel的兼容性做了调整,试试关掉高帧率(把isHighFrameRateTrackingEnabled设为false),毕竟证件识别不需要实时追踪高帧率,优先保证精度。也可以把qualityLevel改成.balanced测试下效果。 - 检查权限与配置:确认iOS 17下相机权限是否正常申请,有没有新增的隐私权限要求导致识别受限。
- 提交苹果Bug反馈:如果排除了代码问题,大概率是系统API的兼容性问题,去苹果开发者后台提交Bug Report,附上测试用的证件样本和复现步骤,苹果后续版本可能会修复。
- 临时换第三方OCR:如果精度问题影响业务,可以先集成第三方OCR SDK过渡,比如Tesseract或者国内大厂OCR,等iOS 17的问题解决后再切回来。
内容的提问来源于stack exchange,提问作者kchkg
相关产品推荐
相关产品推荐

