因为学校课程项目需要涉及到人工智能部分,我们希望在原有记账app的基础上实现一些账单识别的功能,于是选择调用百度ocr api(免费 )来实现识别发票和车票等功能。
本文是在原有项目的基础上引入sdk,期间遇到一些问题(比如百度官方自己给的demo在我电脑上甚至跑不了,又比如经典版本问题包冲突 ),文档又没有类似的问题,希望可以分享出来让大家避坑。
重要链接:
百度sdk
百度安卓sdk快速入门
百度控制台
百度文字识别文档
百度定额发票识别
类似项目OCR 身份证识别
1. SDK流程
百度安卓sdk快速入门
先把这个流程过一遍
- 前往SDK下载页面下载Android SDK压缩包。
- (必须)将下载包libs目录中的ocr-sdk.jar文件拷贝到工程libs目录中,并加入工程依赖。在原本项目里面添加一个libs文件夹(如果没有的话)。在build.gradle里第41行添加工程依赖(如果没有的话 我当时好像原本就有了,没有做任何操作)
- (必须)将libs目录下armeabi,arm64-v8a,armeabi-v7a,x86文件夹按需添加到android studio工程src/main/jniLibs目录中, eclipse用户默认为libs目录。
- (可选)如果需要使用UI模块,请在Android studio中以模块方式导入下载包中的ocr-ui文件夹。这部分推荐大家使用,相当于集成好了,直接调用里面的代码就可以。
前面三步都还好,大家要是把第四步的步骤做完了就会发现一片全红
然后问题基本上就出在这里了!
2.解决导入module的问题
需要修改的部分挺多的
我们先从导入的module开始:
- build.gradle版本问题
app和新导入的module两个版本不相容。我们得修改然后统一,这个是根据你原本项目的build.gradle来修改module的 - 其次是包的版本问题
比如implementation 'com.android.support:appcompat-v7:25.1.1'
标红了
因为我的版本最新的,这以前的包不能用,建议直接百度都有的,修改下换一个新包就ok ,像我就换成了implementation 'androidx.appcompat:appcompat:1.1.0''
- 同理很多代码也标红了
其实观察一下就会发现还是版本的问题,之前都是老版本import 老版本的
就是把这些包更改下,直接baidu搜索。举个例子,下面两个代码,我上面注释的报错的,下面的是我自己修改的com/baidu/ocr/ui/camera/Camera1Control.java
com/baidu/ocr/ui/camera/Camera2Control.java
等改好后不报错,module就可以用了
3.代码移入
当你解决ocr_ui的module导入的问题后,直接把代码拷进来,问题就不大了
具体怎么用可以看OCR 身份证识别
(看不懂的话我后期补一篇博客 其实就是嗯用就完事了)
看懂后直接copy他的代码放在自己项目里面(可以新建一个包)
等我缓缓给大家写一篇博客怎么使用