十行 Python 程式碼就提取了韋小寶的身份證資訊!
記得以前有個廣告詞叫:“學好數理化,走遍天下都不怕”,感覺應該再加一句:“帶上身份證”,本文我們看一下如何使用 Python 提取身份證資訊。
實現方式
實現方式大致可以分為兩種:
-
自己造輪子,如:使用 OpenCV 等自己編碼實現,該方式所有功能都需自己來實現,比較耗時耗力,優點是更靈活一些
-
使用現成的輪子,如:百度雲,平臺已經實現好了核心功能,並對外提供了 API 介面,我們直接呼叫介面即可,該方式省時省力,但靈活性可能差一些
實現過程
因為我們要實現的功能也比較簡單,這裡就用第二種方式來演示一下,下面簡單看一下實現過程。
SDK 安裝
百度雲 SDK 對多種語言提供了支援,這裡我們安裝 Python 版的 SDK,使用 pip install baidu-aip 命令即可,SDK 目錄結構如下:
├── README.md ├── aip // SDK 目錄 │ ├── __init__.py // 匯出類 │ ├── base.py // aip 基類 │ ├── http.py // http 請求 │ └── ocr.py //OCR └── setup.py // setuptools 安裝
建立應用
SDK 安裝好後,我們接著需要建立應用了,這裡需要一個百度賬號或百度雲賬號,如果沒有的話自己註冊一個即可,登入及註冊地址為: https://login.bce.baidu.com/?redirect=http%3A%2F%2Fcloud.baidu.com%2Fcampaign%2Fcampus-2018%2Findex.html ,具體過程與 車牌識別 基本類似,如果不清楚的話,可以看一下車牌識別這篇文章。
具體實現
我們先找一張身份證圖片,如圖所示:
接著看一下程式碼實現,首先建立 AipOcr,AipOcr 是 OCR 的 Python SDK 客戶端,程式碼實現如下:
# 自己的 APPID AK SK APP_ID = '自己的 App ID' API_KEY = '自己的 Api Key' SECRET_KEY = '自己的 Secret Key' client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
上面三個引數也可以參照 車牌識別 中的介紹。
資訊的提取有普通和高精度兩種模式,普通模式程式碼實現如下:
# 開啟並讀取檔案內容 fp = open("card.jpg", "rb").read() res = client.basicGeneral(fp) # 普通 # 遍歷結果 for tex in res["words_result"]: row = tex["words"] print(row)
輸出結果如下:
姓名韋小寶 性別男民族漢 出生1654年12月20日 住址北京市東城區景山前街4號 紫禁城敬事房 公民身份證號碼112441654122日2438
再來試一下高精度模式,程式碼實現如下:
# 開啟並讀取檔案內容 fp = open("card.jpg", "rb").read() res = client.basicAccurate(fp) # 高精度 # 遍歷結果 for tex in res["words_result"]: row = tex["words"] print(row)
輸出結果如下:
姓名韋小寶 性別男民族漢 出生1654年12月20日 住址北京市東城區景山前街4號 紫禁城敬事房 公民身份證號碼11204416541220243X
通過輸入結果我們可以看到:高精度模式提取了正確的身份證號碼,普通模式提取的身份證號碼是有一些誤差的。
總結
本文我們使用 Python 結合百度雲介面幾行程式碼就提取了身份證資訊,其實除了身份證資訊也可以提取其他卡片資訊,比如銀行卡資訊等,有興趣的可以試一下。
後記
近期有很多朋友通過私信諮詢有關Python學習問題。為便於交流,點選藍色自己加入討論解答資源基地
相關文章
- javascript實現的身份證號碼驗證程式碼JavaScript
- 精確驗證身份證號碼程式碼
- C++身份核驗介面程式碼、身份證OCR、身份證實名認證APIC++API
- 根據身份證號碼獲取性別資訊程式碼例項
- Ext實現的身份證格式驗證程式碼
- javascript實現的身份證號碼合法性驗證程式碼JavaScript
- js實現的身份證合法性驗證程式碼JS
- 增強版實名認證介面-Java身份證實名認證介面程式碼-身份認證Java
- 身份證真偽查詢介面、身份證實名認證一行python程式碼即可實現,實時資料Python
- 七牛雲:呼叫七牛OCR介面,幾行程式碼識別身份證資訊行程
- PHP 驗證身份證號碼PHP
- 十行Python程式碼搞定圖片中的物體檢測Python
- 精確驗證身份證號碼合法性程式碼例項
- java身份證驗證程式碼IdcardUtils.java分享Java
- java 實現從15位~18位的身份證號碼轉換,校驗中國大陸公民身份證、香港居民身份證、澳門身份證和臺灣身份證。Java
- 身份證號碼驗證系統
- 身份證號碼之js驗證JS
- 身份證號碼驗證演算法演算法
- js實現身份證號碼驗證JS
- 身份證校驗碼的計算方法
- javascript身份證號碼校驗JavaScript
- Java身份證號碼的打碼隱藏(加*)Java
- 微信小程式身份證識別微信小程式
- excel身份證號提取年齡公式 身份證號碼提取精確年齡的公式Excel公式
- Python 使用xpath爬蟲查詢身份證資訊和手機號資訊並寫入Excel表格Python爬蟲Excel
- 精準實現身份證號碼格式校驗程式碼例項
- 十行程式碼實現牛頓方法行程
- 二十行C#程式碼打造Ruby Markup BuilderC#UI
- 用幾十行程式碼實現python中英文分詞行程Python分詞
- Oracle的身份驗證Oracle
- javascript 驗證身份證JavaScript
- 免費實名認證介面python語言-身份核驗-身份證二、三要素Python
- 身份證號碼校驗位的計算方式
- 十行程式碼實現高仿Promise行程Promise
- Java身份證實名認證、身份證識別介面讓您認證任性的“懶”Java
- 直播app原始碼,進行身份驗證時,檢測身份證位數夠不夠APP原始碼
- 身份證驗證工具類
- 驗證手機、郵箱、漢字、身份證、URL、IP地址等java程式碼工具類Java