阿里雲ocr雲伺服器
⑴ 阿里雲ocr身份證拍照不能識別
接入API.做的項目裡面涉及到了身份證識別輸入的真實姓名與身份證號碼是否匹配功能,於是在阿里雲接了智能身份證OCR文字識別API,登錄阿里雲找到對應的產品。
⑵ 阿里雲ocr服務返回空串啥意思
一般情況下是你填寫掩碼出錯,就會這樣提示
⑶ 國內有做雲端OCR識別平台的嗎就是能調用API,按次識別收費的。求大神回答。
國內OCR雲端平台推薦雲脈OCR SDK開發者平台,支持API接入介面,可以按次也可以包年
⑷ 如何用阿里雲的API進行身份證識別
以下內容屬於引用復制,但可以回復你的問題:
准備工作:在libs下添加 alicloud-Android-apigateway-sdk-1.0.1.jar,commons-codec-1.10-1.jar
在build.gradle添加 compile'com.squareup.okhttp3:okhttp:3.4.1'
在onCreate,或者afterViews初始化API網關
private void initGatewaySdk() {
// 初始化API網關
ApiGatewayClient.init(getApplicationContext(), false);
}
調用拍照功能
private void getPhotoCard(){
final String status = Environment.getExternalStorageState();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
requestPermissions(new String[]{Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE}, CAMERA_REQUEST_CODE);
}
if (status.equals(Environment.MEDIA_MOUNTED)) {
defaultPhotoAddress = PHOTO_DIR + "/" + getPhotoName();
PreferenceUtils.(CardActivity.this, Preferences.IMAGE_3, defaultPhotoAddress);
imageUri = Uri.fromFile(new File(defaultPhotoAddress));
Intent intentPhoto = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);//action is capture
intentPhoto.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
startActivityForResult(intentPhoto, CAMERA_REQUEST_CODE);
} else {
Toast.makeText(CardActivity.this, "沒有sd卡", Toast.LENGTH_SHORT).show();
}
}
可以對照片進行裁剪
private void cropImageUri(Uri desUri, int outputX, int outputY, int requestCode){
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(desUri, "image/*");
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 5);
intent.putExtra("aspectY", 3);
intent.putExtra("outputX", outputX);
intent.putExtra("outputY", outputY);
intent.putExtra("scale", true);
intent.putExtra(MediaStore.EXTRA_OUTPUT, desUri);
intent.putExtra("return-data", false);
intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());
intent.putExtra("noFaceDetection", true);
startActivityForResult(intent, requestCode);
}
用base64上傳照片
private void trygetCardNum() {
if (NetworkUtils.isConnectWithTip(this, "您未連接網路,無法獲取數據")) {
LoadingUtil.show(this);
String imgBase64 = "";
try {
defaultPhotoAddress = PreferenceUtils.getStringValueInPreferences(this, Preferences.IMAGE_3);
File file = new File(defaultPhotoAddress);
byte[] content = new byte[(int) file.length()];
FileInputStream finputstream = new FileInputStream(file);
finputstream.read(content);
finputstream.close();
imgBase64 = new String(Base64.encodeBase64(content));
// imgBase64 = Base64Img.Bitmap2StrByBase64(bitmap);
if(imgBase64!=null||!imgBase64.equals("")){
PreferenceUtils.(CardActivity.this, Preferences.IMAGE_3, null);
}
} catch (IOException e) {
e.printStackTrace();
return;
}
// 獲取服務
RpcService rpcService = ApiGatewayClient.getRpcService();
final ApiRequest apiRequest = new ApiRequest();
// 設置請求地址、Path及Method
apiRequest.setAddress("https://dm-51.data.aliyun.com");
apiRequest.setPath("/rest/160601/ocr/ocr_idcard.json");
apiRequest.setMethod(HttpMethod.POST);
// 按照文檔設置二進制形式Body,支持設置Query參數、Header參數、Form形式Body
apiRequest.setStringBody("{\"inputs\":[{\"image\":{\"dataType\":50,\"dataValue\":\""+imgBase64+"\"},\"configure\":{\"dataType\":50,\"dataValue\":\"{\\\"side\\\":\\\"face\\\"}\"}}]}");
// 設置支持自簽等形式的證書,如果服務端證書合法請勿設置該值,僅在開發測試或者非常規場景下設置。
apiRequest.setTrustServerCertificate(true);
// 設置超時
apiRequest.setTimeout(10000);
rpcService.call(apiRequest, new ApiResponseCallback() {
@Override
public void onSuccess(ApiResponse apiResponse) {
// 處理apiResponse
LoadingUtil.dismiss();
String s = apiResponse.getStringBody();
NumBean result = JSONObject.parseObject(s, NumBean.class);
String dataValue = result.getOutputs().get(0).getOutputValue().getDataValue();
DataValueBean dataValueBean = JSONObject.parseObject(dataValue, DataValueBean.class);
Number = dataValueBean.getNum();
name = dataValueBean.getName();
address = dataValueBean.getAddress();
birth = dataValueBean.getBirth();
nationality = dataValueBean.getNationality();
sex = dataValueBean.getSex();
if(dataValueBean.getError_msg()==null){
runOnUiThread(new Runnable() {
public void run() {
if(Number == null||Number.equals("")||name == null||name.equals("")||address == null||address.equals("")||birth == null||birth.equals("")||sex == null||sex.equals("")){
Toast.makeText(CardActivity.this, "掃描失敗,請重試", Toast.LENGTH_LONG).show();
}else {
//掃描成功
}
}
});
}else {
errString = dataValueBean.getError_msg();
runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(CardActivity.this, "掃描失敗,請重試", Toast.LENGTH_LONG).show();
}
});
}
}
@Override
public void onException(ApiInvokeException e) {
// 處理異常
LoadingUtil.dismiss();
runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(CardActivity.this, "掃描失敗,請重試", Toast.LENGTH_LONG).show();
}
});
}
});
}
}
附:
public class NumBean implements Serializable{
private List<OutputsBean> outputs;
public List<OutputsBean> getOutputs() {
return outputs;
}
public void setOutputs(List<OutputsBean> outputs) {
this.outputs = outputs;
}
public static class OutputsBean {
private String outputLabel;
private OutputMultiBean outputMulti;
private OutputValueBean outputValue;
public String getOutputLabel() {
return outputLabel;
}
public void setOutputLabel(String outputLabel) {
this.outputLabel = outputLabel;
}
public OutputMultiBean getOutputMulti() {
return outputMulti;
}
public void setOutputMulti(OutputMultiBean outputMulti) {
this.outputMulti = outputMulti;
}
public OutputValueBean getOutputValue() {
return outputValue;
}
public void setOutputValue(OutputValueBean outputValue) {
this.outputValue = outputValue;
}
public static class OutputMultiBean {
}
public static class OutputValueBean {
private int dataType;
private String dataValue;
public int getDataType() {
return dataType;
}
public void setDataType(int dataType) {
this.dataType = dataType;
}
public String getDataValue() {
return dataValue;
}
public void setDataValue(String dataValue) {
this.dataValue = dataValue;
}
}
}
}
public class DataValueBean implements Serializable{
private String address;
private String birth;
private String config_str;
private String error_msg;
private String name;
private String nationality;
private String num;
private String request_id;
private String sex;
private boolean success;
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getBirth() {
return birth;
}
public void setBirth(String birth) {
this.birth = birth;
}
public String getConfig_str() {
return config_str;
}
public void setConfig_str(String config_str) {
this.config_str = config_str;
}
public String getError_msg() {
return error_msg;
}
public void setError_msg(String error_msg) {
this.error_msg = error_msg;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getNationality() {
return nationality;
}
public void setNationality(String nationality) {
this.nationality = nationality;
}
public String getNum() {
return num;
}
public void setNum(String num) {
this.num = num;
}
public String getRequest_id() {
return request_id;
}
public void setRequest_id(String request_id) {
this.request_id = request_id;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public boolean isSuccess() {
return success;
}
public void setSuccess(boolean success) {
this.success = success;
}
}
在AndroidManifest.xml下添加
<meta-data android:name="com.alibaba.apigateway.appKey" android:value="" />
<meta-data android:name="com.alibaba.apigateway.appSecret" android:value="" />
⑸ 身份證雲識別是什麼原理
身份證雲識別,簡單來講,就是將身份證圖片,傳到阿里雲上,通過OCR技術,將證件圖片上的信息提取出來,整個過程大概在1秒左右
⑹ 用漢王OCR掃描文件時候顯示伺服器程序正在運行(附圖)
一般由於軟體作者的程序沒有檢測資源的沖突才會出現的。
但沒一個權威的解釋,在微軟網站也沒相應的答復。後台運行程序造成沖突或伺服器本身問題,一般情況下重啟或注銷可解決。
可試一下禁用BITS服務。
關閉服務名稱為:「Background Intelligent Transfer Service」
服務說明:「在後台傳輸客戶端和伺服器之間的數據。如果禁用了 BITS,一些功能,如 Windows Update,就無法正常運行。」
請嘗試禁止此服務,然後重新啟動一下看看。 就好了
⑺ 別人用我身份證開通阿里雲伺服器能找回嗎
阿里雲的身份證識別api是這兩年才發展起來的,效果如何不敢說。不過你可以到雲脈ocr
sdk開發者平台下載身份證識別api,裡面有文檔說明,直接嵌入開發系統即可調用ocr功能。
⑻ 身份證識別是什麼原理
身份證雲識別,簡單來講,就是將身份證圖片,傳到阿里雲上,通過ocr技術,將證件圖片上的信息提取出來,整個過程大概在1秒左右