百度AI人像特效AI小程序之护照识别

百度AI人像特效AI小程序之护照识别

发布时间:2021-01-06 作者:未知
  今天给大家带来开发者小伙伴关于百度人像特效在AI小程序上实现护照识别的详细教程,下面我们来看具体详情:
  支持对中国大陆护照个人资料页所有15个字段进行结构化识别,包括国家码、护照号、姓名、姓名拼音、性别、出生地点、出生日期、签发地点、签发日期、有效期、签发机关、护照类型、国籍、MRZCode1、MRZCode2。
  1、系统框架
  用到的技术主要有:百度护照识别和微信小程序。小程序将用户上传的图片提交给百度护照识别服务,返回护照所有信息。全部功能都在小程序客户端完成,不需要服务器,适合个人开发者学习调试使用,同时也为商业应用提供相应解决方案。
  2、创建小程序项目
  在根目录的全局配置文件app.json中增加:"pages/passport/passport",会自动创建相关页面文件,结构如下:
  passport.js:功能逻辑模块
  passport.wxss:页面样式文件
  passport.wxml:页面布局文件
  passport.json:页面配置文件
 
百度AI人像特效AI小程序之护照识别
 
  3、调用护照识别API
  1,首先要在控制台创建应用,调用护照识别API,“获取API Key/Secret Key”。
  接口文档地址:https://ai.baidu.com/ai-doc/OCR/Wk3h7y1gi
  请求URL:https://aip.baidubce.com/rest/2.0/ocr/v1/passport
  Body中放置请求参数,参数详情如下:

 
百度AI人像特效AI小程序之护照识别
  返回参数:
 
百度AI人像特效AI小程序之护照识别
 
  2,护照识别功能实现
  (1)发送URL请求核心代码
  //在baiduai.js中发送URL请求,并进行封装。
  //护照识别接口请求,此处添加
  let business_licenseUrl='https://aip.baidubce.com/rest/2.0/ocr/v1/passport';
  let business_licenseRequest=(base64Img,callback)=>{
  var accessToken=app.globalData.access_token;
  //拼接接口body参数
  let params={
  image:base64Img,
  detectorId:0
  }
  //发送接口请求
  wx.request({
  url:business_licenseUrl+'?access_token='+accessToken,
  data:params,
  header:{
  'content-type':'application/x-www-form-urlencoded'
  },
  method:'POST',
  success:function(res){
  callback.success(res.data)
  },
  fail:function(res){
  if(callback.fail)
  callback.fail()
  }
  })
  }
  //暴露出去的接口
  module.exports={
  passportRequest:passportRequest,
  }
  (2)定义按钮点击事件
  //在passport.js中定义定义按钮点击事件
  //按钮点击事件
  uploads:function(){
  var that=this
  wx.chooseImage({
  count:1,//默认9
  sizeType:['compressed'],//可以指定是原图还是压缩图,默认二者都有
  sourceType:['album','camera'],//可以指定来源是相册还是相机,默认二者都有
  success:function(res){
  //返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片
  if(res.tempFiles[0].size>4096*1024){
  wx.showToast({
  title:'图片文件过大哦',
  icon:'none',
  mask:true,
  duration:1500
  })
  }else{
  that.setData({
  img:res.tempFilePaths[0]
  })
  }
  wx.showLoading({
  title:"分析中...",
  mask:true
  })
  //根据上传的图片读取图片的base64
  var fs=wx.getFileSystemManager();
  fs.readFile({
  filePath:res.tempFilePaths[0].toString(),
  encoding:'base64',
  success(res){
  //获取到图片的base64进行请求接口
  api.passport Request(res.data,{
  success(res){
  if(res.data!=''){
  wx.hideLoading();
  var text='';
  text+="n";
  var list=[];
  var list=res.words_result;
  var len=res.words_result_num;
  console.info(list);
  //遍历打印字典元素
  for(var key in list){
  text+=key+":"+list[key].words+"n";
  console.info(key+":"+list[key].words);
  }
  /*for(var j=0;j<len;j++){
  text+=list[j]['words']+"n";
  console.info(text);
  }*/
  that.setData({
  output:text
  })
  }else{
  wx.hideLoading();
  wx.showModal({
  showCancel:false,
  title:'温馨提示',
  content:'貌似没有识别出结果'
  })
  }
  }
  })
  }
  })
  },
  })
  },
  (3)修改页面样式文件
  /*pages/passport/passport.wxss*/
  .image{
  width:100%;
  height:360rpx;
  }
  .container{
  margin-top:-110px;
  background-repeat:no-repeat;
  background-size:auto;
  background-position:bottom;
  background-position-x:right;
  }
  button{
  font-family:微软雅黑;
  }
  .page-body-info{
  display:flex;
  box-sizing:border-box;
  padding:30rpx;
  height:420rpx;
  border-top:1rpx solid#d9d9d9;
  border-bottom:1rpx solid#d9d9d9;
  align-items:center;
  justify-content:center;
  }
  .atbottom{
  width:100%;
  height:50px;
  display:flex;
  flex-direction:row;
  justify-content:center;
  position:fixed;
  background:#3366FF;
  bottom:0;
  }
  .img_wrap{
  margin-bottom:10px;
  width:750rpx;
  height:550rpx;
  background:#ececec;
  }
  image{
  width:100%;
  height:100%;
  max-height:1
  }
  .msg{
  margin:10px 0;
  text-align:center;
  }
  .table{
  margin-top:10rpx;
  border:0px solid darkgray;
  width:100%;
  }
  .tr{
  display:flex;
  width:100%;
  justify-content:center;
  height:80rpx;
  }
  .td{
  font-family:微软雅黑;
  font-size:28rpx;
  width:100%;
  display:flex;
  justify-content:center;
  text-align:center;
  align-items:center;
  }
  .bg-g{
  background:white;
  }
  .result{
  font-size:32rpx;
  color:#fa4627;
  border-top:1rpx solid#eeeeee;
  margin:30rpx 20rpx 0rpx 20rpx;
  padding:10rpx;
  }
  .th{
  font-size:28rpx;
  width:48%;
  justify-content:center;
  background:#3366FF;
  color:#fff;
  display:flex;
  height:80rpx;
  align-items:center;
  }
  4、实现效果
 
百度AI人像特效AI小程序之护照识别
 
  更多百度人像特效小程序实现教程,腾佑AI人工智能持续分享中!

7x24小时服务热线:400-996-8756

公司地址:河南省郑州市姚砦路133号金成时代广场6号楼13层

I CP备案号:豫B2-20110005-1

公安备案号: 41010502003271

法律顾问:河南天坤律师事务所-段志刚律师