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 MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...