帮助与文档 > 产品文档 > 文字识别OCR > Android_SDK文档 > 名片识别服务
名片识别服务

名片识别服务Android SDK 简介

概述

(1) 概念解释

名片识别服务:自动定位并识别名片中的文字信息,返回对名片的识别结果,包含名片中包含的姓名、职业和电话等主要信息。

(2) 说明

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

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

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

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

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

客服QQ:1906538062

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

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

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

温馨提示:

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

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

功能介绍

名片识别 SDK是对有道名片识别服务进行封装,支持对名片的识别。提供快速的接入方式;同时提供数据统计能力,方便了解用户使用情况。

兼容性

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

集成指南

集成前提

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

SDK 集成步骤

(1) SDK包导入

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

dependencies {
    compile files('libs/YoudaoBase_v2.0.0.jar')
    compile files('libs/YoudaoOCRStructure_v2.0.0.jar')
}

添加so文件:在模块的配置文件中增加jni配置

sourceSets.main.jniLibs.srcDirs = ['libs']

YoudaoBase_v2.0.0.jarYoudaoOCRStructure_v2.0.0.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_v2.0.0.jar
-libraryjars libs/YoudaoOCRStructure_v2.0.0.jar
-keep class com.youdao.sdk.ydtranslate.** { ;}
-keep class com.youdao.yd_ocr_structure.* { *;}

(4) SDK初始化

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

YouDaoApplication.init(this, appkey);

功能集成

说明:请参考 yd_ocr_structure_demo 中 OCRStructureActivity 的使用

(1) 参数说明
structureType:namecard 为名片识别服务

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

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

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

(2) 构造名片识别参数对象

//识别对象
OCRStructure.getInstance(new OCRStructureParameters
    .Builder()
    .docType("json")
    .type(OCRStructureParameters.TYPE_BASE64)
    .structureType("namecard")
    .build())
    .recognize(base64Data, new OCRStructureListener() 

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

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

识别回调接口包含两个方法:onResult表示识别成功,结果将以String的形式将json数据返回,onError表示失败,失败信息以错误码的形式给用户。

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

//开始识别
OCRStructure.getInstance(new OCRStructureParameters
    .Builder()
    .docType("json")
    .type(OCRStructureParameters.TYPE_BASE64)
    .structureType("namecard")
    .build())
    .recognize(base64Data, new OCRStructureListener() {

        @Override
        public void onError(final int errorCode) {
            handler.post(new Runnable() {
        @Override
        public void run() {
            resultText.setText("识别失败 " + OCRStructureErrorCode.getErrorString(errorCode));
                YouDaoLog.w("TableRecognize onError,errorCode = " + errorCode);
            }
        });
    }

        @Override
        public void onResult(final String resultJson, final String input) {

            handler.post(new Runnable() {
        @Override
        public void run() {
            resultText.setText("识别完成");
            YouDaoLog.w("TableRecognize onResult,result = " + resultJson);
            showResult(resultJson);
            }
        });
    }
});

识别结果说明

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

{
    "errorCode": "0",
    "Result": {
        "Store": "商店名称",
        "Date": "20190725",
        "Total_Amount": "100.00"
        //“errormsg”: ""   识别失败原因,完成识别但是没有识别到指定内容时存在
    }
}

错误代码列表

错误码含义
101缺少必填的参数
102不支持的语言类型
103请求文本过长
104不支持的API类型
105不支持的签名类型
106不支持的响应类型
107不支持的传输加密类型
108appKey无效
109batchLog格式不正确
110无相关服务的有效实例
111用户无效
112请求服务无效
113请求文本不能为空
114不支持的图片传输方式
201解密失败
202签名检验失败
203访问IP地址不在可访问IP列表
205请求的接口与应用的平台类型不一致
206时间戳无效
207重放请求
301词典查询失败
302小语种翻译失败
303服务的异常
401账户已经欠费停止
402offlinesdk不可用
411访问频率受限,请稍后访问
412超过最大请求字符数
17001需要图片
17002图片过大(3M)
17003识别类型未找到
17004不支持的识别类型
17005服务调用失败

常见问题及注意事项

  • 返回110

应用没有绑定服务实例,可以新建服务实例,绑定服务实例。

  • 返回108

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

  • 返回101

首先确保必填参数齐全,然后,确认参数书写是否正确。

  • 返回202

如果确认 appKeyappSecret 的正确性,仍返回202,一般是编码问题。请确保 q 为UTF-8编码。

版本更新记录

上线日期版本号更新内容
2019.08.19v1.0.0有道名片识别 Android SDK
2019.11.07v2.0.0兼容多个sdk同时使用