Skip to content

PaddleOCR是一款应用于iOS设备上的通用文字识别的OCR库.

License

Notifications You must be signed in to change notification settings

Leonard-iOS/PaddleOCR

Repository files navigation

PaddleOCR

PaddleOCR是一款应用于iOS设备上的通用文字识别的OCR库,基于飞浆团队的Paddle Lite库制作,能同时支持动态图和静态图两种方式,对文本的识别效率极高。 部分识别效率不高的场景可以通过调整图片的处理方式来提高识别率,如需要更精确的识别结果,建议前往 PaddleOCR官方下载更高精度的模型替换本项目内的模型文件来提高识别精确度。

集成说明

CocoaPods集成(推荐使用

在项目的Podfile文件中添加pod 'PaddleOCR',并执行pod install.

  1. 本项目因相关资源过大,使用了Git LFS配置,在进行pod install前请先安装Git LFS,使用说明参考https://git-lfs.github.com/
  2. 将项目Targets -> Build Settings -> Enable Bitcode 的值改为No.
  3. 在项目Targets -> Build Settings -> Other Linker Flags中,用$(inherited)代替其他输入项.

手动集成(需自行下载OpenCV库资源)

OpenCV2.framework, PaddleOCR.framework, PaddleOCRResource.bundle依次导入到你的iOS项目中.

  1. 将项目Targets -> Build Settings -> Enable Bitcode 的值改为No.
  2. 在项目Targets -> Build Settings -> Other Linker Flags中,添加-lc++. 或者在Frameworks and Libraries中手动添加libC++.tbd.
  3. 如还有报错信息,需添加系统库CoreMedia.framework, CoreVideo.framework, AVFoundation.framework到你的项目中.

使用说明

  1. 使用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;
  1. 使用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;
  1. 也可以随时通过cancelScanTask来结束扫描任务.

Demo使用说明

Demo下载后打开Podfile中的注释,并执行pod install,资源加载完毕后即可查看Demo预览效果。

Git LFS及其他说明

  • PaddleOCR库的部分功能依赖OpenCV,在pod install时可能会提示网络错误等情况,有条件的开发者可以使用代理解决,或者使用其他开发者提供的OpenCV库.
  • PaddleOCR的相关资源限制,使用了Git LFS大文件处理方案,可能会出现文件缺失或资源类型不正确的情况。
  • 在使用cocopods集成后出现下面的情况,说明PaddleOCR.framework文件没有正确下载,请检查PaddleOCR.framework文件的大小,正常约为180M左右。
  • 如大小不正确请使用git clone的方式下载本项目源代码,将下载下来的PaddleOCR.framework内的PaddleOCRlibpaddle_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工具.

邮箱moyusword@gmail.com

About

PaddleOCR是一款应用于iOS设备上的通用文字识别的OCR库.

Resources

License

Stars

Watchers

Forks

Packages

No packages published