支持對二代居民身份證正反面全部8個字段進行結構化識別,包括姓名、性別、民族、出生日期、住址、身份證號、簽發機關、有效期限,識別準確率超過99%;同時支持身份證正面頭像檢測,並返回頭像切片的base64編碼及位置信息。html
同時,支持對用戶上傳的身份證圖片進行圖像風險和質量檢測,可識別圖片是否爲複印件或臨時身份證,是否被翻拍或編輯,是否存在正反顛倒、模糊、欠曝、過曝等質量問題。數據庫
請求示例小程序
HTTP 方法:POST
微信小程序
請求URL: https://aip.baidubce.com/rest/2.0/ocr/v1/idcard
微信
URL參數:app
參數 | 值 |
---|---|
access_token | 經過API Key和Secret Key獲取的access_token,參考「Access Token獲取」 |
Header以下:ide
參數 | 值 |
---|---|
Content-Type | application/x-www-form-urlencoded |
Body中放置請求參數,參數詳情以下:函數
請求參數ui
參數 | 是否必選 | 類型 | 可選值範圍 | 說明 |
---|---|---|---|---|
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,則對於身份證切片(如僅身份證號區域)也可識別 |
須要參數access_token,存放在雲數據庫中,並定時刷新,不明白如何獲取並定時刷新的參考文章:this
[小程序開發技巧總結(三)-- 雲開發時效數據刷新和存儲 (access_token等)]
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 }) }) }
接口返回數據以下
小程序 Android Web 等開發歡迎聯繫 QQ 1025584691