0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

银行卡信息精准识别-智能快速绑卡

DS小龙哥-嵌入式技术 来源:DS小龙哥-嵌入式技术 作者:DS小龙哥-嵌入式技 2023-07-12 09:57 次阅读

1. 前言

AI人工智能的潮流下,出现了很多方便人们生活的产品:人脸识别技术-完成人脸开锁,人脸核身;车牌识别-完成停车场无人计费系统设计;自动驾驶-辅助车主行车,自动泊车等等,还有很多相关的应用。

这篇文章就是利用华为云提供的银行卡信息识别接口来提取识别银行卡详细信息,这个接口是文字识别接口中的一个,银行卡信息识别主要是应用在各种购物app里绑卡、保险在线理赔填卡号、社交软件绑卡、证券软件绑卡等等很多地方,以前都是人工输入卡号,非常不方便,有了AI识别功能,可以提前将银行卡图片保存在手机里,也可以选择现场拍摄,这样软件通过图片快速识别出当前银行卡的类别、所属银行、卡号等信息完成自动填充,极大的方便用户体验。

2. 文字识别云服务

2.1 开通文字识别服务功能

地址: https://console.huaweicloud.com/ocr/?region=cn-north-4&locale=zh-cn#/ocr/overview

image-20220211111123655

文字识别服务接口支持API方式调用,支持按需计费,每个用户每月有1000次的免费调用额度,前期的体验调试比较方便。

接口的计费使用说明: https://support.huaweicloud.com/productdesc-ocr/ocr_01_0070.html

image-20220211111348612

2.2 API接口使用介绍

帮助文档地址: https://support.huaweicloud.com/api-ocr/ocr_03_0104.html

接口识别银行卡上的关键文字信息后,是以json格式返回识别的结果,根据说明解析就能拿到信息。

接口格式:

URL请求格式:POST https://{endpoint}/v2/{project_id}/ocr/bankcard
 ​
 endpoint 指定承载REST服务端点的服务器域名或IP,不同服务不同区域的endpoint不同,可以从终端节点中获取。
 例如,OCR服务在"华北-北京四"区域的"endpoint""ocr.cn-north-4.myhuaweicloud.com"。
 ​
 project_id是项目ID,可以从这里 https://support.huaweicloud.com/api-ocr/ocr_03_0130.html 获取。
 ​
 ​
 完整请求示例: 
 https://ocr.cn-north-4.myhuaweicloud.com/v2/0e5957be8a00f53c2fa7c0045e4d8fbf/ocr/bankcard
 ​
 请求头:
 {
  "X-Auth-Token": "******",
  "Content-Type": "application/json;charset=UTF-8"
 }
 ​
 X-Auth-Token参考在这里获取:https://support.huaweicloud.com/api-ocr/ocr_03_0005.html
 ​
 请求体里包含了图片的bash编码数据
 {
  "image": ..............
 }
 ​
 ​
 识别后响应的结果:
 {
  "result": {
   "bank_name": "中国建设银行",
   "card_number": "6217003860002354304",
   "issue_date": "",
   "expiry_date": "09/22",
   "type": "借记卡",
   "confidence": {
    "bank_name": 0.9608,
    "card_number": 0.9793,
    "issue_date": 0,
    "expiry_date": 0.8646,
    "type": 0
   }
  }
 }
 ​
 响应结果里字段含义解释:
 ​
 bank_name  发卡行。
 ​
 card_number 银行卡号。
 ​
 issue_date 有效期开始日期。
 ​
 expiry_date 有效期截止日期。
 ​
 type 银行卡类别,如:借记卡,信用卡,准贷记卡,预付费卡。

2.3 在线调试

在线调试地址: https://apiexplorer.developer.huaweicloud.com/apiexplorer/debug?product=OCR&api=RecognizeBankcard

先通过调试接口体验之后,再编写代码可以少走一些弯路,很多参数都比较清楚了。

image-20220211112958274

将图片的base64编码贴到 image字段里,点击调试即可查看结果。

3. 示例代码

代码采用QT编写,主要是就是HTTP请求,获取结果,解析结果,API接口不依赖语言,任何语言使用都是一样的流程。

image-20220211115946809

image-20220211120010999

3.2 发起请求,获取银行卡信息

//获取银行卡信息
 void  Widget::getCardInfo(QString file)
 {
     function_select=1;
     QString requestUrl;
     QNetworkRequest request;
 ​
     //存放图片BASE64编码
     QString imgData;
 ​
     //设置请求地址
     QUrl url;
 ​
     //人脸搜索请求地址
     requestUrl = QString("https://ocr.%1.myhuaweicloud.com/v2/%2/ocr/bankcard")
             .arg(SERVER_ID)
             .arg(PROJECT_ID);
 ​
     //设置数据提交格式
     request.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/json"));
 ​
     //将图片进行Base64编码
     imgData = QString(toBase64(QImage(file))); //编码后的图片大小不超过2M
     //设置token
     request.setRawHeader("X-Auth-Token",Token);
 ​
     //构造请求
     url.setUrl(requestUrl);
     request.setUrl(url);
 ​
     QString post_param=QString
                ("{"
                  ""image": "%1""
                 "}").arg(imgData);
 ​
     //发送请求
     manager- >post(request, post_param.toUtf8());
 }

3.3 获取token

/*
 功能: 获取token
 */
 void Widget::GetToken()
 {
     //表示获取token
     function_select=3;
 ​
     QString requestUrl;
     QNetworkRequest request;
 ​
     //设置请求地址
     QUrl url;
 ​
     //获取token请求地址
     requestUrl = QString("https://iam.%1.myhuaweicloud.com/v3/auth/tokens")
                  .arg(SERVER_ID);
 ​
     //自己创建的TCP服务器,测试用
     //requestUrl="http://10.0.0.6:8080";
 ​
     //设置数据提交格式
     request.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/json;charset=UTF-8"));
 ​
     //构造请求
     url.setUrl(requestUrl);
 ​
     request.setUrl(url);
 ​
     QString text =QString("{"auth":{"identity":{"methods":["password"],"password":"
     "{"user":{"domain": {"
     ""name":"%1"},"name": "%2","password": "%3"}}},"
     ""scope":{"project":{"name":"%4"}}}}")
             .arg(MAIN_USER)
             .arg(IAM_USER)
             .arg(IAM_PASSWORD)
             .arg(SERVER_ID);
 ​
     //发送请求
     manager- >post(request, text.toUtf8());
 }

3.4 解析结果

//解析反馈结果
 void Widget::replyFinished(QNetworkReply *reply)
 {
     QString displayInfo="";
     int statusCode = reply- >attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
 ​
     //读取所有数据
     QByteArray replyData = reply- >readAll();
 ​
     qDebug()< < "状态码:"<

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • AI
    AI
    +关注

    关注

    87

    文章

    29611

    浏览量

    267904
  • 人工智能
    +关注

    关注

    1789

    文章

    46545

    浏览量

    236819
  • 人脸识别
    +关注

    关注

    76

    文章

    4002

    浏览量

    81626
  • 文字识别
    +关注

    关注

    0

    文章

    16

    浏览量

    8623
  • 华为云
    +关注

    关注

    3

    文章

    2388

    浏览量

    17219
收藏 人收藏

    评论

    相关推荐

    移动电话银行卡读卡器

    `描述此解决方案基于 MSP430G2432 微控制器实现了用于智能手机的磁卡读取器。读取器专用于读取基于 ISO7811 的银行卡并将信息(如
    发表于 04-08 11:23

    提供银行卡识别API免费接入的OCR SDK开发者平台

    、支付平台等搭载了银行卡识别技术,用户只要对准银行卡进行拍照扫描或者导入银行卡图片,系统就能自动快速的读取
    发表于 09-16 17:35

    银行卡刷卡的WAV转成0101信号问题

    具体应用是,1:刷银行卡,磁头接收到银行卡第2磁道的信息,直接转成声音文件记录下来2:把声音文件还原成0101,3:根据银行卡的编码,转换成银行卡
    发表于 03-16 12:09

    云端银行卡识别技术的特点和优势

    );识别速度:单张银行卡识别速度小于0.5秒;识别率:99.50%;云端银行卡识别服务支持自动旋
    发表于 07-25 19:46

    PN7150无法读取身份证和银行卡是怎么回事?

    使用PN7150读取身份证和银行卡,安卓版本为Android9 有些银行卡有刷卡声音,但不是正常的刷卡声音,比如刷卡失败的提示音。没有弹出 NFC 标签信息。 我在日志中发现了以下问题: 1.同一张
    发表于 05-06 07:10

    避开自助银行“门禁陷阱” 防范银行卡欺诈

    避开自助银行“门禁陷阱” 防范银行卡欺诈  如今,现代人生活越来越离不开银行卡了,但是银行卡的欺诈给持卡人留下不愉快的用经历。为了保障用
    发表于 12-10 17:56 957次阅读

    指纹识别技术在银行卡业务中的应用分析与设计_曾庆勇

    指纹识别技术在银行卡业务中的应用分析与设计_曾庆勇
    发表于 03-20 09:13 1次下载

    傻瓜式理财,造福百姓 银行卡将发生巨变?刘强东把京东“余额宝”搬进银行卡

    刚刚过去的周末,当我们忙于休闲中,刘强东又干了一件大事。我们手中几十年未变的银行卡,将发生一次翻天覆地的变化。京东联手银行正式推出“京东银行卡”。
    发表于 08-22 10:09 6172次阅读

    银行卡手机拍照识别sdk

    出错,而且用户体验非常差。那么如何使这一环节也能跟得上信息时代的脚步,彰显信息化时代的“高大上”,而不是停留在手动的输入那16—19位银行号码的阶段呢?中安未来银行卡手机拍照
    发表于 08-07 18:11 313次阅读

    微辰金服|激活银行卡需要交钱吗

    的话,无论是借记卡还是信用都无法正常使用。  银行卡为什么要进行激活,主要也是考虑到资金安全和风险,银行需要核实是不是你本人在使用这张银行卡,而
    发表于 12-25 13:21 306次阅读

    某恶意Google Chrome扩展程序会窃取您的银行卡信息

    一个Google Chrome扩展程序会窃取银行卡信息,但这个扩展程序目前还未在Chrome Web Store(Chrome网上应用商店)里下线。
    的头像 发表于 01-26 11:38 2870次阅读

    nfc手机读取银行卡

    自支付宝钱包8.0推出了NFC新功能,只要将支持NFC功能的手机靠近公交银行卡等带有芯片的IC上,可迅速读取内余额、
    的头像 发表于 02-28 11:49 3.5w次阅读

    移动端银行卡识别技术,基于Android、iOS系统

    快速的抢占新增客户市场,银行、保险、移动支付、财务管理等众多领域、行业均把为用户提供最贴心、高效的服务作为企业的业务重心。 与手工输入银行卡号相比,移动端银行卡
    发表于 06-17 17:29 590次阅读

    移动支付时代必不可少的移动端银行卡识别技术

    受支付宝银行卡识别的启发,腾讯随后在微信、QQ中添加银行卡识别功能,通过技术上的创新提升用户支付的体验,均得到用户的肯定。为此,更多的行业用户希望在其业务系统中集成移动端
    发表于 06-17 17:34 689次阅读

    移动端银行卡识别助力解决银行卡录入的困扰

    银行卡。为此,阿里首先在支付宝钱包中添加银行卡识别功能,腾讯随后在微信、QQ中添加银行卡识别功能,通过技术上的创新提升用户支付的体验,均得到
    发表于 06-17 17:40 559次阅读