????????在前三篇文章中完成了银行卡识别整个模型训练等工作,通过了解PaddleOCR的端侧部署,我们也可以将银行卡号检测模型和识别模型移植到手机中,做成一款uni-app手机端离线银行卡号识别的应用。
为了不占用过多篇幅,这里不讲解Android studio如何下载和SDK配置,请自行查找资料。
请根据 Android Studio 用户指南中的安装及配置 NDK 和 CMake 内容,预先配置好 NDK 。
插件包结构:
1、将插件包拷贝到nativeplugins中
2、manifest.json中选择离线插件
3、制作自定义基座后,就可以正常使用了
1、将插件里文件引入libs目录下
2、修改app包下的build.gradle
添加ndk配置
排除libc++_shared.so包冲突:
3、修改dcloud_uniplugins.json,添加插件配置
<template>
?? ?<div>
?? ??? ?<button type="primary" @click="takePhoto">银行卡识别</button>
?? ?</div>
</template>
?
<script>
?? ?var ocrModule = uni.requireNativePlugin("YY-TomatoOCRBank")
?? ?// var ocrModule = uni.requireNativePlugin("OCRModule")
?? ?const modal = uni.requireNativePlugin('modal');
?? ?export default {
?? ??? ?onLoad() {},
?? ??? ?methods: {
?? ??? ??? ?takePhoto() {
?? ??? ??? ??? ?uni.chooseImage({
?? ??? ??? ??? ??? ?count: 6, //默认9
?? ??? ??? ??? ??? ?sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
?? ??? ??? ??? ??? ?sourceType: ['camera'], //从相册选择
?? ??? ??? ??? ??? ?success: function(res) {
?? ??? ??? ??? ??? ??? ?console.log(JSON.stringify(res.tempFilePaths));
?
?? ??? ??? ??? ??? ??? ?uni.getImageInfo({
?? ??? ??? ??? ??? ??? ??? ?src: res.tempFilePaths[0],
?? ??? ??? ??? ??? ??? ??? ?success: function(image) {
?? ??? ??? ??? ??? ??? ??? ??? ?// 调用异步方法
?? ??? ??? ??? ??? ??? ??? ??? ?ocrModule.ocrAsyncFunc({
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?'filePath': image.path
?? ??? ??? ??? ??? ??? ??? ??? ??? ?},
?? ??? ??? ??? ??? ??? ??? ??? ??? ?(ret) => {
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?modal.toast({
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?message: ret,
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?duration: 30
?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?});
?? ??? ??? ??? ??? ??? ??? ??? ??? ?})
?? ??? ??? ??? ??? ??? ??? ?}
?? ??? ??? ??? ??? ??? ?});
?? ??? ??? ??? ??? ?}
?? ??? ??? ??? ?});
?? ??? ??? ?}
?? ??? ?}
?? ?}
</script>
制作一中的自定义基座打包并运行到手机上或导出离线页面在android studio中运行到手机上。
总结
? ? ? ? ?以上就是制作uni-app离线银行卡识别全流程步骤,当然如果你不会Android开发也没关系,在uni-app的插件市场中已经发布了本插件。
本文章中插件下载地址:基于PaddleOCR开发uni-app离线银行卡识别插件
uni-app的插件市场地址:本地离线银行卡识别TomatoOCR - DCloud 插件市场