baidu-aip-SDK node.js 身份證識別

来源:https://www.cnblogs.com/Lmey/archive/2018/07/13/9305621.html
-Advertisement-
Play Games

最近項目中客戶需要實現身份證識別功能,合理計划了之後決定使用百度ai的身份證識別。 身份證識別是文字識別的一種,類似的功能有很多比如駕駛證識別等等,原理都是相同的。 對於前端初學者來說,如果要實現這種功能靠頁面,js是實現不了的,可以確定地說就是讓後臺配合實現。實現過程是上傳一張圖片給後臺,後臺使用 ...


  最近項目中客戶需要實現身份證識別功能,合理計划了之後決定使用百度ai的身份證識別。

  身份證識別是文字識別的一種,類似的功能有很多比如駕駛證識別等等,原理都是相同的。

  對於前端初學者來說,如果要實現這種功能靠頁面,js是實現不了的,可以確定地說就是讓後臺配合實現。實現過程是上傳一張圖片給後臺,後臺使用java,php等服務端語言來調取百度ai的sdk,獲取到的參數再返回到前臺頁面來展示。這個介面的調用必須是服務端的,前端如果想實現,只能通過node.js來實現。


 

  那麼下麵就具體說明一下整個流程:

1.node

  首先需要對node進行下載安裝,node的安裝教程在官網或者菜鳥教程中有明確的實例。

安裝之後,在cmd命令行中輸入 node -v,如果返回版本號,證明安裝成功。

同樣在命令行中輸入 npm -v,可以查看cmd版本,現在node集成cmd,如果照著教程來安裝,node成功npm應該是成功的。

2.項目搭建

  先找到項目根目錄或者新建一個文件夾作為根目錄

  

安裝百度的組件有兩種方式,一種是通過去百度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文檔,都能寫出來。

  以上純屬個人見解與經驗,不喜勿噴,謝謝!

  

 

 

 

 

 

 

 

 

  


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在IT界已經混了5年了,5年中瀏覽了不少的網站,在上面查詢自己想要的東西,解決工作中遇到的問題,心裡總想有天自己能夠有自己的博客,能給分享一些自己在生活中、工作中遇到的問題,讓其他有類似經歷的朋友能夠少走彎路,今天終於鼓起勇氣在博客園寫下第一篇隨筆。其他不做過多的介紹,下麵將介紹今天在工作中遇到的一 ...
  • 全局安裝是把包安裝在Node安裝目錄下的node_modules文件夾中,一般在 \Users\用戶名\AppData\Roaming\ 目錄下,可以使用npm root -g查看全局安裝目錄 本地(局部)安裝是把包安裝在指定項目(要在指定的根目錄下輸入命令)的node_modules文件夾下(若沒 ...
  • 主要用於調試,顯示信息,重點看例子在瀏覽器 JavaScript 中,通常 window 是全局對象, Node.js 中的全局對象是 global####__filename__filename 表示當前正在執行的腳本的文件名。它將輸出文件所在位置的絕對路徑,且和命令行參數所指定的文件名不一定相同 ...
  • 第一階段: C/S(client server) B/S(browser server) 網頁製作 + 技術棧: PhotoShop、HTML、CSS 第二階段: 從靜態到動態,從後端到前端 前端開發工程師 前後端分離 + 後臺: 完成數據的分析和業務邏輯編寫(包含API介面編寫) + 前端: 網頁 ...
  • 先上源碼,版本是ES6 13行常規(700bytes) shortest snake game.html 壓縮後的500bytes(當然兩處document還是可以用eval壓縮的) index.500bytes.html 之前很火的20行代碼地址(有BUG)(900bytes) hj7jay/ar ...
  • 冒泡的概念就是 當子元素觸發事件的時候 相應的祖宗十八代素也會觸發相同的事件(前提父元素也添加了一樣的事件)eg:兒子 有一個onclick 祖宗十八代 也有onclick 當點擊兒子的時候 祖宗十八代的點擊事件也會被觸發 有時候這種情況會導致很多問題 所以要阻止冒泡 只有被點擊的元素才觸發事件 不... ...
  • 一. 什麼是消息隊列? 消息(Message)是指在應用間傳送的數據。消息可以非常簡單,比如只包含文本字元串,也可以更複雜,可能包含嵌入對象。 消息隊列(Message Queue)是一種應用間的通信方式,消息發送後可以立即返回,由消息系統來確保消息的可靠傳遞。消息發佈者只管把消息發佈到 MQ 中而 ...
  • // my.js function $(id){return document.getElementById(id)};function show(obj){obj.style.display = "block"};function hide(obj){obj.style.display = "no ...
一周排行
    -Advertisement-
    Play Games
  • 基於.NET Framework 4.8 開發的深度學習模型部署測試平臺,提供了YOLO框架的主流系列模型,包括YOLOv8~v9,以及其系列下的Det、Seg、Pose、Obb、Cls等應用場景,同時支持圖像與視頻檢測。模型部署引擎使用的是OpenVINO™、TensorRT、ONNX runti... ...
  • 十年沉澱,重啟開發之路 十年前,我沉浸在開發的海洋中,每日與代碼為伍,與演算法共舞。那時的我,滿懷激情,對技術的追求近乎狂熱。然而,隨著歲月的流逝,生活的忙碌逐漸占據了我的大部分時間,讓我無暇顧及技術的沉澱與積累。 十年間,我經歷了職業生涯的起伏和變遷。從初出茅廬的菜鳥到逐漸嶄露頭角的開發者,我見證了 ...
  • C# 是一種簡單、現代、面向對象和類型安全的編程語言。.NET 是由 Microsoft 創建的開發平臺,平臺包含了語言規範、工具、運行,支持開發各種應用,如Web、移動、桌面等。.NET框架有多個實現,如.NET Framework、.NET Core(及後續的.NET 5+版本),以及社區版本M... ...
  • 前言 本文介紹瞭如何使用三菱提供的MX Component插件實現對三菱PLC軟元件數據的讀寫,記錄了使用電腦模擬,模擬PLC,直至完成測試的詳細流程,並重點介紹了在這個過程中的易錯點,供參考。 用到的軟體: 1. PLC開發編程環境GX Works2,GX Works2下載鏈接 https:// ...
  • 前言 整理這個官方翻譯的系列,原因是網上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 開源項目 從零手寫實現 tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 系列文章 web server apache tomcat11-01-官方文檔入門介紹 web serv ...
  • 1、jQuery介紹 jQuery是什麼 jQuery是一個快速、簡潔的JavaScript框架,是繼Prototype之後又一個優秀的JavaScript代碼庫(或JavaScript框架)。jQuery設計的宗旨是“write Less,Do More”,即倡導寫更少的代碼,做更多的事情。它封裝 ...
  • 前言 之前的文章把js引擎(aardio封裝庫) 微軟開源的js引擎(ChakraCore))寫好了,這篇文章整點js代碼來測一下bug。測試網站:https://fanyi.youdao.com/index.html#/ 逆向思路 逆向思路可以看有道翻譯js逆向(MD5加密,AES加密)附完整源碼 ...
  • 引言 現代的操作系統(Windows,Linux,Mac OS)等都可以同時打開多個軟體(任務),這些軟體在我們的感知上是同時運行的,例如我們可以一邊瀏覽網頁,一邊聽音樂。而CPU執行代碼同一時間只能執行一條,但即使我們的電腦是單核CPU也可以同時運行多個任務,如下圖所示,這是因為我們的 CPU 的 ...
  • 掌握使用Python進行文本英文統計的基本方法,並瞭解如何進一步優化和擴展這些方法,以應對更複雜的文本分析任務。 ...
  • 背景 Redis多數據源常見的場景: 分區數據處理:當數據量增長時,單個Redis實例可能無法處理所有的數據。通過使用多個Redis數據源,可以將數據分區存儲在不同的實例中,使得數據處理更加高效。 多租戶應用程式:對於多租戶應用程式,每個租戶可以擁有自己的Redis數據源,以確保數據隔離和安全性。 ...