帮助与文档 > 产品文档 > 文字识别OCR > Android_SDK文档 > 整题识别(含公式)服务
整题识别(含公式)服务

表格OCR Android SDK 简介

概述

(1) 概念解释

表格识别:基于深度学习技术,自动定位并识别图片中表格的位置、结构及文字内容,结构化返回可编辑的表格结果。支持用户上传报表、带有表格的图片等。

(2) 说明

Hi,您好,欢迎使用有道智云表格识别OCR Android SDK。如果您想快速体验服务,建议您前往官网体验中心或者搜索小程序(有道智云体验中心)进行试用。

本文档主要针对需要集成表格识别服务OCR Android SDK的开发工程师,详细描述有道表格识别能力及集成过程。

如果您有与我们商务合作的需求,可以通过一下方式联系我们:

商务邮箱: AIcloud_Business@corp.youdao.com

如果您对文档内容有任何疑问,可以通过以下几种方式联系我们:

客服QQ:1906538062

智云OCR技术交流QQ 1群: 654064748(已满)

智云OCR技术交流QQ 2群: 471638046

联系邮箱: zyservice@corp.youdao.com

温馨提示:

本文档主要针对开发人员,接入测试前需要在后台创建Android应用,并绑定文字识别OCR实例;如果您还没有,请按照新手指南操作。

平台向每个账户赠送50元的体验金,供用户集成前测试所用,具体资费规则详见表格识别OCR服务报价

功能介绍

整题识别(含公式) SDK是有道整题识别(含公式)服务进行封装,支持在题目识别。提供快速的接入方式;同时提供数据统计能力,方便了解用户使用情况。

兼容性

支持设备:运行了 Android 4.0.3以及以上系统的 Android 设备

集成指南

集成前提

开始集成SDK之前开发者需要登录有道智云平台(http://ai.youdao.com),创建应用获取应用ID(或者通过运营人员获取应用ID),以便使用整题识别(含公式)服务。

SDK 集成步骤

(1) SDK包导入

请在工程文件根目录下创建一个名为 libs 的子目录(有的话则不需要创建),并将YoudaoBase.jar和YoudaoTableRecognize.jar拷贝到 libs 目录下,并将以下代码添加到app的build.gradle中:

dependencies {
    compile files('libs/YoudaoBase.jar')
    compile files('YoudaoTableRecognize.jar')
}

(2) AndroidManifest配置

<uses-permission android:name="android.permission.INTERNET" />
<!-- 获取WiFi状态 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!-- 获取网络信息状态,如当前的网络连接是否有效 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<!-- 往SDCard读写数据权限   storage group -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

(3)代码混淆配置

代码混淆文件proguard-project.txt,添加如下内容:

-ignorewarnings
-libraryjars libs/ YoudaoBase.jar
-libraryjars libs/ YoudaoTableRecognize.jar
-keep class com.youdao.sdk.ydtranslate.** { ;}
-keep class com.youdao.yd_table_recognize.* { *;}

(4) SDK初始化

使用之前请在程序的Application中调用SDK初始化代码,可以参考demo中DemoApplication。

YouDaoApplication.init(this, appkey);

功能集成

说明:请参考 yd_latex_demo 中 LatexDemoActivity 的使用

(1) 参数说明
detectType:识别类型,10011:识别结果公式完美还原;10012:识别结果适合搜题,默认为10011

输入图片格式支持:jpg/png

输入图片尺寸限制:2MB以下

输入图片数据:需要转换为Base64编码。

(2) 构造表格OCR识别参数对象

//识别对象
LatexParameters tps = new LatexParameters.Builder().source("youdaolatex").timeout(100000)
                .detectType(LatexConstants.DETECT_TYPE).build();

(3) 设置回调和开始识别

通过ImageLatexRecognizer,设置上一步构造的参数对象,调用recognize方法传入图片base64编码的数据和回调接口开始查询

识别回调接口包含两个方法:onResult表示识别成功,结果LatexResult对象形式给用户,onError表示失败,失败信息已错误码的形式给用户。

注意:整个识别是异步的,回调在子线程进行,若涉及到界面操作,请切回主线程。

//开始识别
ImageLatexRecognizer.getInstance(tps).recognize(base64Data, new LatexListener() {
            @Override
            public void onError(final LatexErrorCode error) {
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        // TODO Auto-generated method stub
                        resultText.setText("识别失败" + error.name());
                    }
                });
            }

            @Override
            public void onResult(final LatexResult result, String input) {
                //若有更新界面操作,请切换到主线程
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        YouDaoLog.d("latex end");
                        mResultView.setVisibility(View.VISIBLE);
                        mResultView.setText(getResult(result));
                        resultText.setText("识别完成");
                    }
                });
            }
        });

识别结果说明

其中LatexResult是对json结果的封装。result中json字段如下所示:

{
    "errorCode": "0",
    "Result": {
        "orientation": "",
        "regions": [{
            "boundingBox": "13,15,584,15,584,83,13,83",
            "dir": "h",
            "lang": "",
            "lines": [
                [{
                    "boundingBox": "13,22,110,22,110,76,13,76",
                    "text_height": 53,
                    "words": [{
                        "boundingBox": "13,23,74,22,74,75,13,76",
                        "word": "13."
                    }, {
                        "boundingBox": "86,22,110,22,110,75,86,75",
                        "word": "若"
                    }],
                    "text": "13.若",
                    "type": "text"
                }, {
                    "boundingBox": "111,15,326,15,326,82,111,82",
                    "text_height": 67,
                    "words": [{
                        "boundingBox": "111,15,326,15,326,82,111,82",
                        "word": " x = ( \\sqrt { 3 } { - 5 } ) ^ { 3 }"
                    }],
                    "text": "x = ( \\sqrt { 3 } { - 5 } ) ^ { 3 }",
                    "type": "formula"
                }, {
                    "boundingBox": "327,22,384,22,384,76,327,76",
                    "text_height": 53,
                    "words": [{
                        "boundingBox": "327,22,338,22,338,75,327,75",
                        "word": ","
                    }, {
                        "boundingBox": "350,23,384,23,384,76,350,76",
                        "word": "则"
                    }],
                    "text": ",则",
                    "type": "text"
                }, {
                    "boundingBox": "385,15,584,15,584,83,385,83",
                    "text_height": 67,
                    "words": [{
                        "boundingBox": "385,16,584,15,584,82,385,83",
                        "word": " \\sqrt { - x - 1 } ="
                    }],
                    "text": "\\sqrt { - x - 1 } =",
                    "type": "formula"
                }]
            ]
        }],
        "exif": "UP"
    }
}

错误代码列表

错误码含义
101缺少必填的参数,出现这个情况还可能是 et 的值和实际加密方式不对应
102不支持的语言类型
103翻译文本过长
104不支持的 API 类型
105不支持的签名类型
106不支持的响应类型
107不支持的传输加密类型
108appKey 无效,注册账号, 登录后台创建应用和实例并完成绑定, 可获得应用ID和密钥等信息,其中应用ID就是appKey( 注意不是应用密钥)
109batchLog 格式不正确
110无相关服务的有效实例
111开发者账号无效
112请求服务无效
113请求q不能为空
114不支持的图片传输方式
201解密失败
202签名检验失败
203访问 IP 地址不在可访问 IP 列表
205请求的接口与应用的平台类型不一致
206时间戳无效
207重放请求
301辞典查询失败
302翻译查询失败
303服务端的其它异常
401账户已经欠费停
402offlinesdk不可用
411访问频率受限,请稍后访问
412超过最大请求字符数
10001无效的OCR类型
10002不支持的OCR image类型
10004识别图片过大
10201图片base64解密失败
10301OCR段落识别失败
10411访问频率受限
10412超过最大识别流量

常见问题及注意事项

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

版本更新记录

上线日期版本号更新内容
2019.06.11v1.0.0有道整题识别(含公式) Android SDK