1. 程式人生 > >APIX_身份證影象識別技術(附程式碼)

APIX_身份證影象識別技術(附程式碼)

什麼是身份證影象識別

身份證識別應用要求文字清晰的大陸二代身份證,文字朝向為正向,影象清晰。同時,身份證號碼要求滿足國標編碼規範,否則不通過驗證。API支援支援圖片Base64編碼和圖片URL兩種方法,支援的影象格式有jpg、jpeg、gif、png和bmp格式,檔案大小在2M以內。

APIX 的身份證識別API,支援身份證正反面識別,其中cmd為idcardfront時,按正面識別,cmd為idcardback時,按反面識別。返回的資訊包括姓名、性別、身份證號碼、民族、地址,簽發機關和有效期等資訊。識別率高達92%。

注意事項

傳入的身份證圖片要求文字方向是正向的,部分手機拍照上傳識別的證件圖片,多為旋轉90度或者180度的身份證照片,導致無法識別。

輸出示例

姓名:謝*暢

性別:男

身份證號:330124××××××××9887

民族:漢

地址:廣東省汕頭市朝陽區光華路××街××號

簽發機關:北京市公安局海淀分局

有效期限:2010.05.26-2030.05.26

<span style="font-size:12px;">package com.apix.idcardrecog;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class IDCardRecog {
	
	public static String request(String httpUrl, String httpArg) {
		BufferedReader reader = null;
	    String result = null;
	    StringBuffer sbf = new StringBuffer();

	    try {
	        URL url = new URL(httpUrl);
	        HttpURLConnection connection = (HttpURLConnection) url
	                .openConnection();
	        connection.setRequestMethod("POST");
	        connection.setRequestProperty("Content-Type",
	                        "application/x-www-form-urlencoded");
							
	        // 填入apix-key到HTTP header
	        connection.setRequestProperty("apix-key",  "0d758082ac574c4f5***c401ba85");
	        connection.setDoOutput(true);
	        connection.getOutputStream().write(httpArg.getBytes("UTF-8"));
	        connection.connect();
	        InputStream is = connection.getInputStream();
	        reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
	        String strRead = null;
	        while ((strRead = reader.readLine()) != null) {
	            sbf.append(strRead);
	            sbf.append("\r\n");
	        }
	        reader.close();
	        result = sbf.toString();
	    } catch (Exception e) {
	        e.printStackTrace();
	    }
	    return result;
	}

	public static void main(String[] args) {
	    //傳送 GET 請求
		String httpUrl = "http://a.apix.cn/apixlab/idcardrecog/idcardurl";
		String httpArg = "{\"cmd\": \"idcard_front\",\"imgurl\": \"http://images0.cnblogs.com/blog2015/51591/201506/151449465134350.jpg\"}";
		String jsonResult = request(httpUrl, httpArg);
		System.out.println(jsonResult);
	}
}
</span>