基于百度OCR的Android图片文字识别(一)

0、前言

本篇主要记录导入百度OCR的SDK的相关步骤,及解决相关bug。

1、下载第三方SDK

1.1 创建应用

https://console.bce.baidu.com
(百度智能云-管理中心)点击创建应用


创建应用过程中,填写包名时要注意和后面新建Android Project的包名要一致。

1.2下载License文件


也可以使用ak/sk方式。但用License文件(产品许可文件)更安全。

1.3下载SDK


解压后:



各部分介绍

2、工程配置

2.1 复制文件

新建Android 工程(笔者选择SDK的版本是28,最好不要低于28),将百度OCR的SDK中的libs\ocr-sdk.jar复制,放入Android工程目录app/libs下。
在Android工程目录app\src\main下新建两个文件夹assertsjniLibs,将先前下载的License文件移至asserts中,百度OCR的SDK中的libs\arm64-v8alibs\armeabilibs\armeabi-v7alibs\x86移至jniLibs中。

2.2 导入OCR-UI模块

2.2.1 新建Module

OCR-UI模块提供了一套默认的UI。将ocr_ui模块包含到工程,以Module方式导入。


2.2.2 选择 Import Gradle Project

2.2.3 填写Source directory

Source directory选中百度ORC的SDK下的ocr_ui

2.2.4 添加依赖

在Android工程目录中的Gradle Scripts\build.gradle(Module:app)中,添加implementation project(":ocr_ui")项目依赖:

image.png

2.2.5 添加权限

接着在AndroidManifest.xml中添加权限:(分别是网络请求权限,数据的读存取权限,以及相机权限。)

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

2.3 改bug

2.3.1 原先的SDK要接受许可协议

导入后碰到第一个错



是电脑上之前已经安装过SDK,没有接受 许可协议导致的。
参考链接【2】(见底部)解决:




解决后再在AndroidStudio中Try Again。结果应该是这样的:

2.3.2 compile要改成implementation

发现Gradle Sync还有Issues,原来compile快被移除了,将相应的compile换成implementation即可。还有testCompile换成testImplementation等等。

2.3.3 修改导入模块的compileSdkVersion版本等

没想到还有错:



“The specified Android SDK Build Tools version (25.0.2) is ignored, as it is below the minimum supported version (28.0.3) for Android Gradle Plugin 3.5.2.Android SDK Build Tools 28.0.3 will be used.”

版本问题,笔者修改成和builder.gradle(app)中一样的版本号了(使用的是28)。

2.3.4 android.support与androidx不能共存问题

完成上述工作后,你也许还会出现如下问题:未能找到android.support.v4、未能找到android.support.annotation等。这是由于androidx与android.support不能共存引起的。笔者这里将其转换成androidx。


操作方式如上图。操作完后,笔者的只有android.support.annotation没有转换成功,还需要手动转换:
比如:
import android.support.annotation.NonNull改成import androidx.annotation.NonNull;
(可能还会有import android.support.v7.app.AlertDialog改成import androidx.app.AlertDialog等等)

笔者完成到这一步,基本没报其他的错了(可能还要加一些依赖)。

Demo在下一篇。

3、主要参考链接

【1】https://www.okcode.net/article/43369

【2】https://blog.csdn.net/a_salty_fish/article/details/88748428

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容