一般信息
在之前的文章中,我们讨论了如何使用HUAWEI ML Kit创建微笑检测功能和用于文档照片的小程序。在本文中,我将向您展示如何实现银行卡识别功能,以便用户可以以最少的时间花费链接银行卡。
银行卡识别功能的目的
在开始开发之前,让我们看一下银行卡识别功能的作用。它与具有支付功能的应用程序(例如银行应用程序和在线商店)最相关。这些应用程序通常具有一些共同的要求:
- 链接银行卡
用户可以链接其银行卡以进行快速的在线支付。
- 银行转帐
用户可以在同一家银行的帐户之间或不同银行之间进行转帐。
- 实名认证和身份验证
用户可以使用其真实姓名快速进行身份验证,并根据其银行卡信息验证其身份。
要使用每个选项,用户必须输入其银行卡详细信息,包括卡号和有效期。您当然知道,在手动输入数据时很容易犯错误并浪费大量时间。但是,借助HUAWEI ML Kit银行卡识别服务,用户将能够快速无误地输入数据。
银行卡识别服务的应用
银行卡识别服务使相机可以识别银行卡并读取密钥数据,例如卡号和有效期。在ID识别服务的支持下,它提供了许多受欢迎的功能,例如身份验证和信用卡号输入。
我们提供了一个银行卡识别插件,您可以将其集成以在您的应用程序中使用此服务。该插件将为您处理相机数据。
开发开始
1.准备
将1.1 Huawei的Maven存储库添加到项目级别
的文件build.gradle在Android Studio项目的根文件夹中打开build.gradle文件,并添加Maven存储库的地址。
buildscript {
repositories {
maven {url 'http://developer.huawei.com/repo/'}
} }allprojects {
repositories {
maven { url 'http://developer.huawei.com/repo/'}
}}
1.2将SDK依赖项添加到应用程序级文件build.gradle
dependencies{
implementation 'com.huawei.hms:ml-computer-vision-bcr:1.0.3.303'
implementation 'com.huawei.hms:ml-computer-card-bcr-plugin:1.0.3.300'
implementation 'com.huawei.hms:ml-computer-card-bcr-model:1.0.3.300' }
1.3启用自动将应用程序更新为最新模型
从HUAWEI AppGallery下载后,要让您的应用程序自动更新机器学习模型,请将以下数据添加到AndroidManifest.xml文件中:
<manifest
...
<meta-data
android:name="com.huawei.hms.ml.DEPENDENCY"
android:value= "bcr"/>
<!--If multiple models are required,set the parameter as follows:
android:value="object,ocr,face,label,icr,bcr,imgseg"-->
... </manifest>
1.4在AndroidManifest.xml文件中请求对摄像头和内存的访问权限
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
2.代码开发
2.1创建在收到识别结果后调用的回调函数
重写onSuccess,onCanceled ,onFailure和onDenied函数:
- onSuccess:识别完成后调用。MLBcrCaptureResult显示识别结果。
- onCanceled:如果用户取消识别,则调用。
- onFailure:识别失败时调用。
- onDenied:如果由于任何原因(例如,相机不可用)而拒绝了识别请求,则调用。
private MLBcrCapture.Callback callback = new MLBcrCapture.Callback() {
@Override
public void onSuccess(MLBcrCaptureResult bankCardResult){
}
@Override
public void onCanceled(){
}
@Override
public void onFailure(int retCode, Bitmap bitmap){
}
@Override
public void onDenied(){
} };
2.2设置识别器的captureFrame API调用的识别参数识别
数据由2.1中创建的回调函数返回。
private void startCaptureActivity(MLBcrCapture.Callback callback) {
MLBcrCaptureConfig config = new MLBcrCaptureConfig.Factory()
.setOrientation(MLBcrCaptureConfig.ORIENTATION_AUTO)
.create();
MLBcrCapture bankCapture = MLBcrCaptureFactory.getInstance().getBcrCapture(config);
bankCapture.captureFrame(this, callback); }
2.3使用识别按钮的回调调用第2.2节中指定的方法
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.detect:
startCaptureActivity(callback);
break;
default:
break;
} }
自己尝试
让我们看一下银行卡识别功能的工作原理。
资源
我们已将源代码上传到GitHub,请随时进行更改。
github.com/HMS-Core/hms-ml-demo
您可以访问更多详细信息,请
参见MLKit-Sample \ module-text \ src \ main \ java \ com \ mlkit \ sample \ activity \中的识别银行卡的示例代码。 BankCardRecognitionActivity.java。
请访问我们的官方网站了解详细信息。
新例子
我们将与您分享HUAWEI ML Kit的其他有用功能。敬请关注!