RecognizeIdentityCard可以识别二代身份证关键字段内容,关键字段包括:姓名、性别、民族、身份证号、出生日期、地址信息、有效起始时间、签发机关,同时可输出身份证区域位置和人脸位置信息。
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
Action | String | 是 | RecognizeIdentityCard | 系统规定参数。取值:RecognizeIdentityCard。 |
ImageURL | String | 是 | https://viapi-demo.oss-cn-shanghai.aliyuncs.com/viapi-demo/images/DetectImageElements/detect-elements-src.png | 图片URL地址。 |
Side | String | 是 | face | 身份证正反面类型。 - face:正面。 - back:反面。 |
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
Data | Struct | 返回的结果数据内容。 | |
BackResult | Struct | 反面照结果。 | |
EndDate | String | 19800101 | 有效期结束时间,格式:YYYYMMDD,例如19800101,即1980年01月01日。 |
Issue | String | 杭州市公安局 | 签发机关。 |
StartDate | String | 19700101 | 有效期起始时间,格式:YYYYMMDD,例如19800101,即1980年01月01日。 |
FrontResult | Struct | 正面照结果。 | |
Address | String | 浙江省杭州市余杭区文一西路969号 | 地址信息。 |
BirthDate | String | 20000101 | 出生日期,格式:YYYYMMDD,例如19800101,即1980年01月01日。 |
CardAreas | Array | 身份证区域位置,四个顶点表示,顺序是逆时针(左上、左下、右下、右上)。 | |
X | Float | 165 | 身份证区域横坐标。 |
Y | Float | 657 | 身份证区域纵坐标。 |
FaceRectVertices | Array | 人脸位置,四个顶点表示。 | |
X | Float | 1024.6600341796875 | 人脸位置横坐标。 |
Y | Float | 336.629638671875 | 人脸位置纵坐标。 |
FaceRectangle | Struct | 人脸位置。 | |
Angle | Float | -90 | 表示矩形顺时针旋转的度数,范围-180~180。 |
Center | Struct | 人脸矩形中心坐标。 | |
X | Float | 952 | 人脸矩形中心横坐标。 |
Y | Float | 325.5 | 人脸矩形中心纵坐标。 |
Size | Struct | 人脸矩形尺寸。 | |
Height | Float | 181.99 | 高度。 |
Width | Float | 164.99 | 宽度。 |
Gender | String | 男 | 性别。 |
IDNumber | String | 1234567890 | 身份证号。 |
Name | String | 张三 | 姓名。 |
Nationality | String | 汉 | 民族。 |
RequestId | String | D6C24839-91A7-41DA-B31F-98F08EF80CC0 | 请求ID。 |
请求示例
http(s)://ocr.cn-shanghai.aliyuncs.com/?Action=RecognizeIdentityCard
&ImageURL=https://viapi-demo.oss-cn-shanghai.aliyuncs.com/viapi-demo/images/DetectImageElements/detect-elements-src.png
&Side=face
&<公共请求参数>
正常返回示例XML
格式
<RequestId>D6C24839-91A7-41DA-B31F-98F08EF80CC0RequestId>
<Data>
<FrontResult>
<Address>浙江省杭州市余杭区文一西路969号Address>
<Name>张三Name>
<Nationality>汉Nationality>
<IDNumber>1234567890IDNumber>
<Gender>男Gender>
<BirthDate>20000101BirthDate>
<FaceRectangle>
<Angle>-90Angle>
<Center>
<X>952X>
<Y>325.5Y>
Center>
<Size>
<Height>181.99Height>
<Width>164.99Width>
Size>
FaceRectangle>
<CardAreas>
<X>165X>
<Y>657Y>
CardAreas>
<CardAreas>
<X>534X>
<Y>658Y>
CardAreas>
<CardAreas>
<X>535X>
<Y>31Y>
CardAreas>
<CardAreas>
<X>165X>
<Y>30Y>
CardAreas>
<FaceRectVertices>
<X>1024.6600341796875X>
<Y>336.629638671875Y>
FaceRectVertices>
<FaceRectVertices>
<X>906.6610717773438X>
<Y>336.14801025390625Y>
FaceRectVertices>
<FaceRectVertices>
<x>907.1590576171875x>
<Y>214.1490478515625Y>
FaceRectVertices>
<FaceRectVertices>
<x>1025.157958984375x>
<Y>214.63067626953125Y>
FaceRectVertices>
FrontResult>
Data>
JSON
格式
{
"RequestId": "D6C24839-91A7-41DA-B31F-98F08EF80CC0",
"Data": {
"FrontResult": {
"Address": "浙江省杭州市余杭区文一西路969号",
"Name": "张三",
"Nationality": "汉",
"IDNumber": "1234567890",
"Gender": "男",
"BirthDate": "20000101",
"FaceRectangle": {
"Angle": -90,
"Center": {
"X": 952,
"Y": 325.5
},
"Size": {
"Height": 181.99,
"Width": 164.99
}
},
"CardAreas": [
{
"X": 165,
"Y": 657
},
{
"X": 534,
"Y": 658
},
{
"X": 535,
"Y": 31
},
{
"X": 165,
"Y": 30
}
],
"FaceRectVertices": [
{
"X": 1024.6600341796875,
"Y": 336.629638671875
},
{
"X": 906.66107177734375,
"Y": 336.14801025390625
},
{
"x": 907.1590576171875,
"Y": 214.1490478515625
},
{
"x": 1025.157958984375,
"Y": 214.63067626953125
}
]
}
}
}
引入POM包
。
<dependency>
<groupId>com.aliyungroupId>
<artifactId>ocr20191230artifactId>
<version>${aliyun.ocr.version}version>
dependency>
[https://mvnrepository.com/artifact/com.aliyun/](https://mvnrepository.com/artifact/com.aliyun/)**SDK包名称**
查看不同服务SDK的版本。例如[https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-ocr](https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-ocr)
查看aliyun-java-sdk-ocr的版本。下面介绍新版本的参数构建和调用方法。
<dependency>
<groupId>com.aliyungroupId>
<artifactId>aliyun-java-sdk-coreartifactId>
<version>4.4.8version>
dependency>
<dependency>
<groupId>com.alibabagroupId>
<artifactId>fastjsonartifactId>
<version>1.2.52version>
dependency>
<dependency>
<groupId>com.aliyungroupId>
<artifactId>ocr20191230artifactId>
<version>${aliyun.ocr.version}version>
dependency>
<dependency>
<groupId>com.aliyungroupId>
<artifactId>facebody20191230artifactId>
<version>${aliyun.facebody.version}version>
dependency>
<dependency>
<groupId>com.aliyungroupId>
<artifactId>imagerecog20190930artifactId>
<version>${aliyun.imagerecog.version}version>
dependency>
<dependency>
<groupId>com.aliyungroupId>
<artifactId>imageseg20191230artifactId>
<version>${aliyun.imageseg.version}version>
dependency>
<dependency>
<groupId>com.aliyungroupId>
<artifactId>imageenhan20190930artifactId>
<version>${aliyun.imageenhan.version}version>
dependency>
<dependency>
<groupId>com.aliyungroupId>
<artifactId>goodstech20191230artifactId>
<version>${aliyun.goodstech.version}version>
dependency>
<dependency>
<groupId>com.aliyungroupId>
<artifactId>objectdet20191230artifactId>
<version>${aliyun.objectdet.version}version>
dependency>
<dependency>
<groupId>com.aliyungroupId>
<artifactId>imgsearch20200320artifactId>
<version>${aliyun.imgsearch.version}version>
dependency>
<dependency>
<groupId>com.aliyungroupId>
<artifactId>videorecog20200320artifactId>
<version>${aliyun.videorecog.version}version>
dependency>
<dependency>
<groupId>com.aliyungroupId>
<artifactId>videoseg20200320artifactId>
<version>${aliyun.videoseg.version}version>
dependency>
<dependency>
<groupId>com.aliyungroupId>
<artifactId>videoenhan20200320artifactId>
<version>${aliyun.videoenhan.version}version>
dependency>
// 你的accessKeyId
config.accessKeyId="######";
//你的accessKeySecret
config.accessKeySecret="#######";
config.type="access_key";
config.regionId="cn-shanghai";
config.endpointType="internal";
Client client = new Client(config);
config.endpoint="ocr.cn-shanghai.aliyuncs.com";
//此处endpoint以文字识别为例。不同服务的Endpoint参见访问域名。
private static void RecognizeIdentityCard(Client client, RuntimeOptions runtimeOptions) throws Exception {
try {
RecognizeIdentityCardRequest req = new RecognizeIdentityCardRequest();
req.imageURL="https://viapi-demo.oss-cn-shanghai.aliyuncs.com/viapi-demo/images/RecognizeIdentityCard/IdentityCard.jpg";
RecognizeIdentityCardResponse rep = client.recognizeBankCard(req, runtimeOptions);
System.out.println("身份证识别="+JSON.toJSONString(rep));
}
catch (TeaException e){
System.out.println("身份证识别异常了");
System.out.println(JSON.toJSONString(e.getData()));
}
}
private static void RecognizeIdentityCardAdvance(Client client, RuntimeOptions runtimeOptions) throws Exception {
try {
RecognizeIdentityCardAdvanceRequest req = new RecognizeBankCardAdvanceRequest();
InputStream inputStream = new FileInputStream(new File("/Users/robinqu/Library/IdentityCard.png"));
req.imageURLObject=inputStream;
RecognizeIdentityCardResponse rep = client.recognizeBankCardAdvance(req, runtimeOptions);
System.out.println("银行卡识别="+JSON.toJSONString(rep));
}
catch (TeaException e){
System.out.println("银行卡识别异常了");
System.out.println(JSON.toJSONString(e.getData()));
}
}
对于同一个接口,如果SDK中包含类似xxxAdvanceRequest的结构,那么这个接口支持本地文件上传,否则不支持。
例如下图中ChangeImageSize是支持本地文件的,而RecolorImage则不支持本地文件,只支持OSS链接。
如果调用发生异常,则异常信息会在TeaException.getData()
中显示出来。
{
"RequestId": "6B8A283F-DFFA-4F30-9DF1-A85D8609AD88",
"HostId": "ocr.cn-shanghai.aliyuncs.com",
"Code": "InvalidImage.Content",
"Message": "Invalid Input - wrong category"
}