专栏首页算法与数据结构微信小程序接入百度OCR(身份证识别)

微信小程序接入百度OCR(身份证识别)

微信小程序接入百度OCR(身份证识别)

1.接口描述

支持对二代居民身份证正反面所有8个字段进行结构化识别,包括姓名、性别、民族、出生日期、住址、身份证号、签发机关、有效期限,识别准确率超过99%;同时支持身份证正面头像检测,并返回头像切片的base64编码及位置信息。

同时,支持对用户上传的身份证图片进行图像风险和质量检测,可识别图片是否为复印件或临时身份证,是否被翻拍或编辑,是否存在正反颠倒、模糊、欠曝、过曝等质量问题。

请求示例

HTTP 方法:POST

请求URL: https://aip.baidubce.com/rest/2.0/ocr/v1/idcard

URL参数:

参数

access_token

通过API Key和Secret Key获取的access_token,参考“Access Token获取”

Header如下:

参数

Content-Type

application/x-www-form-urlencoded

Body中放置请求参数,参数详情如下:

请求参数

参数

是否必选

类型

可选值范围

说明

image

string

-

图像数据,base64编码后进行urlencode,要求base64编码和urlencode后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/jpeg/png/bmp格式

id_card_side

string

front/back

front:身份证含照片的一面;back:身份证带国徽的一面

detect_direction

string

true/false

是否检测图像旋转角度,默认检测,即:true。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。可选值包括: - true:检测旋转角度; - false:不检测旋转角度。

detect_risk

string

true/false

是否开启身份证风险类型(身份证复印件、临时身份证、身份证翻拍、修改过的身份证)功能,默认不开启,即:false。可选值:true-开启;false-不开启

detect_photo

string

true/false

是否检测头像内容,默认不检测。可选值:true-检测头像并返回头像的 base64 编码及位置信息

detect_rectify

string

true/false

是否进行完整性校验,默认为true,需上传各字段内容完善的图片方可识别;如果设置为false,则对于身份证切片(如仅身份证号区域)也可识别

2.小程序端调用

需要参数access_token,存放在云数据库中,并定时刷新,不明白如何获取并定时刷新的参考文章:

[小程序开发技巧总结(三)-- 云开发时效数据刷新和存储 (access_token等)]

tips:核心部分是在本地完成base64 编码

2.1 自定义文件 profunc.js,实现函数并封装

function OcrIdCard(access_token){
  return new Promise(function(resolve,reject){
    var that = this;
    //识别身份证
    wx.chooseImage({
      count: 1,
      sizeType: ['compressed'],
      sourceType: ['album', 'camera'],
      success: function (res) {
        console.log(res.tempFilePaths)
          //核心代码
        wx.getFileSystemManager().readFile({
          filePath: res.tempFilePaths[0],
          encoding: 'base64', //编码格式
          success(ans) {
            // console.log(ans.data)
            wx.showLoading({ title: '识别中' })
            wx.request({
              url: 'https://aip.baidubce.com/rest/2.0/ocr/v1/idcard?access_token=' + access_token,
              method: 'POST',
              header: {
                'Content-Type': 'application/x-www-form-urlencoded'
              },
              data: {
                image: ans.data,
                id_card_side: 'front'
              },
              success(_res) {
                wx.hideLoading();
                resolve(_res)
                
              }, fail(_res) {
                wx.hideLoading();
                wx.showToast({
                  title: '请求出错',
                })
                reject(_res)
              }
            })
          }
        })
      }
    })
  })
}

module.exports = {
  OcrIdCard: OcrIdCard
}

2.2 在小程序页面引用,需要传入access_token

const cwx = require('profunc.js'); //在小程序页面引入该js 文件
...
ocridcard(){
      var that = this;
      cwx.OcrIdCard(that.data.access_token).then(function(_res){
        var trdata = _res.data.words_result;
        console.log(trdata)
        that.setData({
          name: trdata['姓名'].words,
          idcard: trdata['公民身份号码'].words,
          userloc: trdata['住址'].words
        })
    })      
}

3.效果展示

接口返回数据如下

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 微信小程序开发技巧总结(二) -- 文件的选取、移动、上传和下载

    也为其提供了视频和图片的二合一接口,这个接口不建议调用,图片和视频的上传建议区分开。

    Kindear
  • uniapp 在回调函数中赋值 is not an object

    Kindear
  • 小程序开发技巧总结(三)-- 云开发时效数据刷新和存储 (access_token等)

    小程序中经常有需要进行OCR识别,或者使用外部api例如百度AI识别等接口,请求调用这些接口需要令牌,即一些具有时效性的数据。本文以小程序云开发使用百度API接...

    Kindear
  • Python接口自动化-requests模块之get请求

    Requests是Python语言的第三方的库,专门用于发送HTTP请求。在Python语言中,虽然提供了urllib2和urllib的库,但是相比较而言,Re...

    ITester软件测试小栈
  • oauth2四种授权方式小结

    codecraft
  • MongoDB系列10:Change Streams构建实时同步数据流

    本文是第10篇,主要讲述Change Streams构建实时同步数据流的实战经验,非常值得一看。

    大数据和云计算技术
  • Android PMS处理APK的安装

    阅读本文前最好阅读Android PMS处理APK的复制这篇文章,因为它和本篇文章本来是一篇文章,由于公号文章的字数限制,被拆分为了两篇文章,这一篇我们接着来学...

    用户1269200
  • 多种批次效应去除的方法比较

    前面我在生信技能树推文:你确定你的差异基因找对了吗? 提出了文章的转录组数据的60个样品并没有按照毒品上瘾与否这个表型来区分,而是不同人之间的异质性非常高,这个...

    生信技能树
  • PHP实现一个轻量级容器

    在开发过程中,经常会用到的一个概率就是依赖注入。我们借助依懒注入来解耦代码,选择性的按需加载服务,而这些通常都是借助容器来实现。

    猿哥
  • 这款黑科技,不会代码也能玩自动化,高效摸鱼

    说在前面:今日次条推荐的是JS逆向加密连载文章,正在学习的朋友记得围观,点击阅读原文有京东99元选10套书的优惠活动,送给有需要的朋友.

    叫我龙总

扫码关注云+社区

领取腾讯云代金券