最近項目中客戶須要實現身份證識別功能,合理計劃了以後決定使用百度ai的身份證識別。php
身份證識別是文字識別的一種,相似的功能有不少好比駕駛證識別等等,原理都是相同的。前端
對於前端初學者來講,若是要實現這種功能靠頁面,js是實現不了的,能夠肯定地說就是讓後臺配合實現。實現過程是上傳一張圖片給後臺,後臺使用java,php等服務端語言來調取百度ai的sdk,獲取到的參數再返回到前臺頁面來展現。這個接口的調用必須是服務端的,前端若是想實現,只能經過node.js來實現。java
那麼下面就具體說明一下整個流程:node
1.nodenpm
首先須要對node進行下載安裝,node的安裝教程在官網或者菜鳥教程中有明確的實例。json
安裝以後,在cmd命令行中輸入 node -v,若是返回版本號,證實安裝成功。後端
一樣在命令行中輸入 npm -v,能夠查看cmd版本,如今node集成cmd,若是照着教程來安裝,node成功npm應該是成功的。api
2.項目搭建網絡
先找到項目根目錄或者新建一個文件夾做爲根目錄ide
安裝百度的組件有兩種方式,一種是經過去百度ai下載baidu-aip-SDK,另外一種是經過命令行直接安裝baidu-aip-SDK的包,這裏一切從簡,經過命令行安裝:
在該目錄下運行cmd命令行,若是對命令行操做不是太好的童鞋,能夠在當前文件夾 Shift+右鍵 右鍵菜單中就會增長在此處打開命令窗口的選項
輸入 npm install baidu-aip-sdk
等候安裝完成以後目錄中會新增這樣的一個文件夾和一個.json格式文件
能夠打開node_modules文件夾中,確認是否有baidu-aip-sdk文件夾
這樣的話,功能就算是搭建好了。
3.功能代碼
新建一個js文件在根目錄下,如圖
這個js就是圖像識別的node客戶端,用來提供一系列交互方法的地方。
在js中加入以下代碼:
var AipOcrClient = require("baidu-aip-sdk").ocr; // 設置APPID/AK/SK var APP_ID = "你的 App ID"; var API_KEY = "你的 Api Key"; var SECRET_KEY = "你的 Secret Key"; // 新建一個對象,建議只保存一個對象調用服務接口 var client = new AipOcrClient(APP_ID, API_KEY, SECRET_KEY);
這裏的APP ID / Api Key / Secret Key 須要在百度雲管理中心去申請 https://cloud.baidu.com/
以後在這個js中繼續添加功能代碼,咱們如今在作的是身份證識別,那麼就去將身份證識別的相關代碼拷入js中。
var fs = require('fs'); var image = fs.readFileSync("你的身份證路徑").toString("base64"); var idCardSide = "front"; // 調用身份證識別 client.idcard(image, idCardSide).then(function(result) { console.log(JSON.stringify(result)); }).catch(function(err) { // 若是發生網絡錯誤 console.log(err); });
將你須要識別的身份證圖片放到根目錄中,如圖
將js中的身份證路徑改爲圖片路徑 ,例如
var image = fs.readFileSync("./png1.png").toString("base64");
4.調用
在根目錄打開命令行,輸入 node start.js
稍等個幾秒鐘,在命令行中就會返回身份證圖片中的各項參數。
好啦,這裏只是提供了node調用百度ai,身份證識別的一種思路,在項目實現過程當中,若是整個項目並無使用到node,就交給後端人員實現這個功能,就算用了node,推薦也讓後臺人員實現...畢竟前端大佬們的時間但是很寶貴的。
百度ai 的功能很強大,基本涵蓋了如今市面上全部需求的技術,身份證識別甚至文字識別只是其中一丟丟的小部分,識別功能的原理都是相同的,在熟悉node的前提下,多看看api sdk文檔,都能寫出來。
以上純屬我的看法與經驗,不喜勿噴,謝謝!