标签:nts 配置 factor lis 文件 地址 res sha class
前言在之前的文章《超简单集成华为HMS Core MLKit通用卡证识别SDK,一键实现各种卡绑定》中我们给大家介绍了华为HMS ML Kit通用卡证识别技术是如何通过拍照自动识别卡证上的关键信息从而实现绑卡,那么有的小伙伴可能会问,我想识别账单上的单号信息或者折扣券上的折扣信息可以吗?当然可以啦。在这篇文章里小编将给大家演示HMS ML Kit文本识别技术是怎么实现账单号或者折扣代码自动录入的。
文本识别技术的应用场景非常多。比如说扫描下面这张账单,定义账单服务号的开头是“NO.DE SERVICIO”并且服务号是12位字符,就可以很快速地通过文本识别技术得到账单服务号“123456789123”。
或者扫描下面这张折扣券,定义折扣代码的开头是“FAVE-”并且折扣代码是4位字符,一样地,可以通过文本识别技术得到折扣代码“8329”然后完成支付。
怎么样,是不是很方便?软件集成了文本识别技术后,开发者可以自定义需要识别的结构化信息,极大地提升用户的交互体验。
本次的开发实战中实现了对账单号的处理,大家可以参考。
buildscript {
repositories {
...
maven {url ‘https://developer.huawei.com/repo/‘}
}
}
dependencies {
...
classpath ‘com.huawei.agconnect:agcp:1.3.1.300‘
}
allprojects {
repositories {
...
maven {url ‘https://developer.huawei.com/repo/‘}
}
}
集成SDK后,在文件头添加配置
apply plugin: ‘com.android.application‘
apply plugin: ‘com.huawei.agconnect‘
dependencies {
// 引入基础SDK
implementation ‘com.huawei.hms:ml-computer-vision-ocr:2.0.1.300‘
// 引入拉丁语文字识别模型包
implementation ‘com.huawei.hms:ml-computer-vision-ocr-latin-model:2.0.1.300‘
// 引入日韩语文字识别模型包
implementation ‘com.huawei.hms:ml-computer-vision-ocr-jk-model:2.0.1.300‘
// 引入中英文文字识别模型包
implementation ‘com.huawei.hms:ml-computer-vision-ocr-cn-model:2.0.1.300‘
}
<manifest>
...
<meta-data
android:name="com.huawei.hms.ml.DEPENDENCY"
android:value="ocr" />
...
</manifest>
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
//type为识别语言参数设置,中文为:“zh”
MLTextAnalyzer analyzer = new MLTextAnalyzer.Factory(context).setLanguage(type).create();
analyzer.setTransactor(new OcrDetectorProcessor());
lensEngine = new LensEngine.Creator(context, analyzer)
.setLensType(LensEngine.BACK_LENS)
.applyDisplayDimension(width, height)
.applyFps(30.0f)
.enableAutomaticFocus(true)
.create();
try {
lensEngine.run(holder);
} catch (IOException e) {
// 异常处理逻辑。
Log.e("TAG", "e=" + e.getMessage());
}
public class OcrDetectorProcessor implements MLAnalyzer.MLTransactor<MLText.Block> {
@Override
public void transactResult(MLAnalyzer.Result<MLText.Block> results) {
SparseArray<MLText.Block> items = results.getAnalyseList();
// 开发者根据需要处理识别结果,需要注意,这里只对检测结果进行处理。
// 不可调用ML Kit提供的其他检测相关接口。
…
}
@Override
public void destroy() {
// 检测结束回调方法,用于释放资源等。
}
}
if (analyzer != null) {
try {
analyzer.stop();
} catch (IOException e) {
// 异常处理。
}
}
if (lensEngine != null) {
lensEngine.release();
}
下面这个demo展示了扫描出行账单,识别账单编号,开发者可根据实际开发需要进行拓展。
当然,除了账单号,文本识别技术还可以扫描其他文本内容,例如下面在这个demo中,扫描折扣代码,可以快速获得线上折扣并完成支付。效果是不是很棒?
更详细的开发指南参考华为开发者联盟官网:华为开发者联盟机器学习服务开发指南
原文链接:https://developer.huawei.com/consumer/cn/forum/topicview?tid=0203343372058830370&fid=18
原作者:留下落叶
超简单集成华为HMS ML Kit文本识别SDK,一键实现账单号自动录入
标签:nts 配置 factor lis 文件 地址 res sha class
原文地址:https://blog.51cto.com/14772288/2527316