PaddleOCR是一款应用于iOS设备上的通用文字识别的OCR库,基于飞浆团队的Paddle Lite库制作,能同时支持动态图和静态图两种方式,对文本的识别效率极高。
部分识别效率不高的场景可以通过调整图片的处理方式来提高识别率,如需要更精确的识别结果,建议前往 PaddleOCR官方下载更高精度的模型替换本项目内的模型文件来提高识别精确度。
在项目的Podfile文件中添加pod 'PaddleOCR',并执行pod install.
- 本项目因相关资源过大,使用了
Git LFS配置,在进行pod install前请先安装Git LFS,使用说明参考https://git-lfs.github.com/ - 将项目
Targets->Build Settings->Enable Bitcode的值改为No. - 在项目
Targets->Build Settings->Other Linker Flags中,用$(inherited)代替其他输入项.
将OpenCV2.framework, PaddleOCR.framework, PaddleOCRResource.bundle依次导入到你的iOS项目中.
- 将项目
Targets->Build Settings->Enable Bitcode的值改为No. - 在项目
Targets->Build Settings->Other Linker Flags中,添加-lc++. 或者在Frameworks and Libraries中手动添加libC++.tbd. - 如还有报错信息,需添加系统库
CoreMedia.framework,CoreVideo.framework,AVFoundation.framework到你的项目中.
- 使用
SampleBuffer作为参数进行扫描,可以使用以下方式:
/// Incoming the video stream recognized by the camera, and returns the scanned text
/// sampleBuffer is video stream of the camera
- (void)scanTextFromSampleBuffer:(CMSampleBufferRef)sampleBuffer
complete:(void(^)(NSArray<MLOcrData *> *))complete;
- 使用
UIImage作为参数进行扫描,可以使用以下方式:
/// Incoming picture starts scanning, and returns the scanned text
/// image is picture to be recognized of you want
- (void)scanTextFrom:(UIImage *)image
complete:(void(^)(NSArray<MLOcrData *> *))complete;
- 也可以随时通过
cancelScanTask来结束扫描任务.
Demo下载后打开Podfile中的注释,并执行pod install,资源加载完毕后即可查看Demo预览效果。
PaddleOCR库的部分功能依赖OpenCV,在pod install时可能会提示网络错误等情况,有条件的开发者可以使用代理解决,或者使用其他开发者提供的OpenCV库.- 因
PaddleOCR的相关资源限制,使用了Git LFS大文件处理方案,可能会出现文件缺失或资源类型不正确的情况。 - 在使用cocopods集成后出现下面的情况,说明
PaddleOCR.framework文件没有正确下载,请检查PaddleOCR.framework文件的大小,正常约为180M左右。 - 如大小不正确请使用
git clone的方式下载本项目源代码,将下载下来的PaddleOCR.framework内的PaddleOCR和libpaddle_api_light_bundled.a文件替换到项目中再次编译,如仍无法正常编译,可以联系作者解决。
undefined symbols for architecture arm64:
"OBJC_CLASS$_OcrData", referenced from:
objc-class-ref in ViewController.o
"OBJC_CLASS$_RYPaddleOCR", referenced from:
objc-class-ref in ViewController.o
ld: symbol(s) not found for architecture arm64
如果有好的建议或使用中有疑问可以通过下面的联系方式联系我,目前PaddleOCR iOS开发者交流群已经创建,有希望入群的开发者可以在邮件中备注自己的加群要求和联系方式,让我们共同来讨论如何做出一个更好的iOS OCR工具.