有道智云 OCR iOS SDK 说明文档

1. 有道智云OCR SDK简介

有道OCR SDK是有道开放平台提供的云服务之一,是有道在线OCR接口的一种实现,支持在线文本识别。

通过SDK接入优势:

  1. 接入简单,不用实现整个OCR协议
  2. 方便进行数据统计,了解用户OCR使用情况

2. 集成前提

开始集成SDK之前开发者需要登录有道开放平台(http://ai.youdao.com),创建应用获取应用ID(或者通过运营人员获取应用ID),以便使用翻译服务。

OCRsdk由如下几个sdk组成,用户可根据需要组合使用:

1)OCRSDK.h:头文件(必选)

2)libbase.a:OCR相关sdk基础库(必选)

3)libocronline.a:在线OCR SDK(必选,使用在线OCR时使用)

3. SDK集成步骤

3.1 头文件及SDK库引入(所有功能都需要这一步)

  1. 添加头文件和库文件:将OCRSDK添加到工程中,包括OCRSDK.h头文件、libbase.a和libocronline.a文件。可以直接将translateSDK文件夹拖动到工程中,也可以选择File “Add files to ‘Project Name’…”
  2. 设置工程Other Linker Flags为-ObjC
  3. 修改工程中任意一个类后缀名为.mm,参见demo中ViewController.mm
  4. 在工程build Phases – Link Binary With Libraries中添加libbase.a, AdSupport.framework, libstc++.6.0.9.tbd, CoreTelephony.framework, SystemConfiguration, libz.tbd和libsqlite3.tbd。如下:
_static/o_ios_1.png _static/o_ios_2.png

3.2 功能集成说明

3.2.1 初始化key

说明:所有的查询都需要初始化key,只执行初始化一次即可。

//初始化key
YDTranslateInstance *yd = [YDTranslateInstance sharedInstance];
yd.appKey = @"your appkey";

3.2.2 在线OCR识别功能

说明:请参考demo中OCROnlineController的使用

  1. 使用的库文件:头文件、libbase.a、libocronline.a;
  2. 构造查询器
YDOCRRequest *request = [YDOCRRequest request];
YDOCRParameter *param = [YDOCRParameter param];
param.langType = @"en"; //设置识别语言为英文,langType支持"zh-en"和"en",其中"zh-en"为中英识别,"en"参数表示只识别英文。若为 纯英文识别,"zh-en"的识别效果不如"en",请妥善选择
param.source = @"youdaoocr"; //设置源
param.detectType = @"10011"; //设置识别类型,10011位片段识别,目前只支持片段识别
request.param = param;
  1. 将图片转化为base64编码
NSString *base64Str = [self image2DataURL:self.imgView.image];
  1. 执行识别过程

识别返回两种情况,一种是成功,相关结果存储在result参数中,另外一种是失败,失败信息放在error,是一个枚举类,整个识别是异步的。

[request lookup:base64Str WithCompletionHandler:^(YDOCRRequest *request, YDOCRResult *result, NSError *error) {
    if (error) {
        //失败
        NSLog(@"error:%@", error);
    }else {
        //成功
        [self handleOCRReuslt:result];
    }
}];

4. 识别结果说明

对于在线OCR,服务器查询结果返回数据如下:

{
       "errorCode": "0",
       "Result": {
               "orientation": "Up",
               "regions": [{
                       "boundingBox": "81,325,552,64",
                       "lines": [{
                               "boundingBox": "81,325,552,64",
                               "words": [{
                                       "boundingBox": "81,329,259,59",
                                       "text": "NetEase"
                               }, {
                                       "boundingBox": "364,325,270,62",
                                       "text": "YouDao"
                               }]
                       }]
               }],
               "textAngle": 1.07417,
               "language": "en"
       }
}

服务器是按照区域,行,字的格式返回的,即一张图片会识别出图片对应的Result,其上可能有多个区域Region,每个区域会包含一行或多行Line,每行又包括一个或多个字Word,每个区域、行或者字符,都会通过boundingBox字段返回坐标和大小。 SDK对上述json数据解析封装为YDOCRResult对象,如下:

@interface YDOCRResult : NSObject
@property (nonatomic, copy) NSString *orientation;
@property (nonatomic, copy) NSString *textAngle;
@property (nonatomic, copy) NSString *language;
@property (nonatomic, strong) NSArray *regions; //YDOCRRegion数组
+ (instancetype)initWithDict:(NSDictionary *)info;
@end

@interface YDOCRRegion : NSObject
@property (nonatomic, copy) NSString *boundingBox;
@property (nonatomic, strong) NSArray *lines;//YDOCRLine数组
+ (instancetype)initWithDict:(NSDictionary *)info;
@end

@interface YDOCRLine : NSObject
@property (nonatomic, copy) NSString *boundingBox;
@property (nonatomic, strong) NSArray *words;//YDOCRWord数组
+ (instancetype)initWithDict:(NSDictionary *)info;
@end

@interface YDOCRWord : NSObject
@property (nonatomic, copy) NSString *boundingBox;
@property (nonatomic, copy) NSString *text;
+ (instancetype)initWithDict:(NSDictionary *)info;
@end

5. 支持语言

中英识别, 英文识别

6. 错误码

(1)参数错误

INPUT_PARAM_ILLEGAL = 100, INPUT_PARAM_ILLEGAL_MUST = 101, INPUT_PARAM_ILLEGA_LANGUAGE = 102, INPUT_PARAM_ILLEGAL_TEXT_LONG = 103, INPUT_PARAM_ILLEGAL_VER_NOT_SUPPORT = 104, INPUT_PARAM_ILLEGAL_SIGN_TYPE_NOT_SUPPORT = 105, INPUT_PARAM_ILLEGAL_RESPONSE = 106, INPUT_PARAM_ILLEGAL_ET = 107, INPUT_PARAM_ILLEGAL_APPKEY = 108, INPUT_PARAM_ILLEGAL_SERVICE = 110, INPUT_PARAM_ILLEGAL_DEVELOP = 111,

OFFLINE_WORD_INIT_FAIL = -3000, OFFLINE_WORD_MISS = -3001

(2)验证错误
INPUT_DECRYPTION_ERROR = 201, INPUT_DECRYPTION_ERROR_SIGN = 202,
(3)服务器错误
DICT_QUERY_ERROR = 301, SMALL_LANG_QUERY_ERROR = 302, SERVER_EXCEPTION = 303,
(4)账户异常
ACCOUNT_CHECK_ERROR = 401,
(5)未知错误
UNKNOWN = -1000,
(6)查询输入为空
EMPTY = -2000

7. 常见问题及注意事项

1. 参数错误 108

appKey无效,注册账号, 登录后台创建应用和实例并完成绑定, 可获得应用ID和密钥等信息,其中应用ID就是appKey( 注意不是应用密钥)

 
有道智云平台介绍
网易有道旗下一个为开发者、企业和政府机构等提供自然语言翻译、文字识别OCR等服务以及行业解决方案的云服务平台,致力于提供安全、可靠和高效的云服务。
联系方式
联系电话:010-8255-8901
商务合作:
投诉反馈:
地址:北京市海淀区西北旺东路10号院 中关村软件园二期西区7号 网易(北京)公司
微信公众号
 
 
 
©2017 网易公司 京ICP证080268号