实践一下使用aspose.ocr来识别身份证
aspose.ocradmin 发布于:2024-11-29 13:29:31
阅读:loading
OCR识别我一直认为是门好东西,最近几天aspose.ocr组件升级了24.11.1的版本,经过尝试发现这个版本较之于前面的版本对中文的支持不可谓不好,实属非常棒,所以在使用它编写了对车牌号的识别后,又趁热打铁来实践一下aspose.ocr的身份证识别,识别的结果仍然是非常好。
本篇文章对于aspose.ocr图片识别的示例实践,笃定你对aspose.ocr已经有了一定的了解,或者也看到过本站此系列的其他相关文章,所以直接上示例素材、示例代码、示例结果,详细如下。
本次示例共计有三组身份证图片的正反面,均来源于网络,侵权联删,具体如下图所示:
(第一组正反面)
(第二组正反面)
(第三组正反面)
本次示例中使用了aspose.ocr提供的识别方式中的两种,分别是RecognitionSettings、IDCardRecognitionSettings,且称之为自动识别和身份证识别吧;识别的素材源仍然是单张图片;识别的结果仍然是打印至控制台,参考代码如下:
public void testImages() throws Exception {
//加载语言包
Resources.FetchAll();
//输出本地的语言包
final List<String> list = Resources.ListLocal();
System.out.println("list = " + list);
AsposeOCR ocr = new AsposeOCR();
RecognitionSettings settings = new RecognitionSettings();
settings.setLanguage(Language.Chinese);
settings.setThreadsCount(5);
OcrInput input = new OcrInput(InputType.SingleImage);
input.add(URLDecoder.decode(getClass().getResource("/id/id111_a.jpg").getPath() , StandardCharsets.UTF_8.name()));
input.add(URLDecoder.decode(getClass().getResource("/id/id111_b.jpg").getPath() , StandardCharsets.UTF_8.name()));
input.add(URLDecoder.decode(getClass().getResource("/id/id222_a.jpg").getPath() , StandardCharsets.UTF_8.name()));
input.add(URLDecoder.decode(getClass().getResource("/id/id222_b.jpg").getPath() , StandardCharsets.UTF_8.name()));
input.add(URLDecoder.decode(getClass().getResource("/id/id333_a.jpg").getPath() , StandardCharsets.UTF_8.name()));
input.add(URLDecoder.decode(getClass().getResource("/id/id333_b.jpg").getPath() , StandardCharsets.UTF_8.name()));
{
final ArrayList<RecognitionResult> results = ocr.Recognize(input, settings);
for (int i = 0; i < results.size(); i++) {
RecognitionResult result = results.get(i);
System.out.println("常规识别:" + (i + 1) + "---" + result.recognitionAreasText + "---" + result.recognitionText);
}
}
IDCardRecognitionSettings idSettings = new IDCardRecognitionSettings ();
idSettings.setLanguage(Language.Chinese);
//idSettings.setAllowedCharacters(CharactersAllowedType.LATIN_ALPHABET);
idSettings.setAllowedCharacters(CharactersAllowedType.ALL);
final ArrayList<RecognitionResult> results = ocr.RecognizeIDCard(input, idSettings);
for (int i = 0; i < results.size(); i++) {
RecognitionResult result = results.get(i);
System.out.println("身份证识别:" + (i + 1) + "---" + result.recognitionAreasText + "---" + result.recognitionText);
}
}
常规识别:1---[姓名代用名
性别男
民族汉
出生
2013年05
月06
日
住址湖南省长沙市开福区巡道街
幸福小区居民组
公民身份证号码
430512198908131367
全集民者
]---姓名代用名
性别男
民族汉
出生
2013年05
月06
日
住址湖南省长沙市开福区巡道街
幸福小区居民组
公民身份证号码
430512198908131367
全集民者
常规识别:2---[中华人民共和国
居民身份证
签发机关
长沙市公安局天心分局
有效期限
2016.04.14-2036.04.14
]---中华人民共和国
居民身份证
签发机关
长沙市公安局天心分局
有效期限
2016.04.14-2036.04.14
常规识别:3---[姓名王小五
性别女民族汉
出生1989年02月17日
住址
贵州省遵义市绥阳县龙杨镇
103号
公民身份号码
520323198902170622
]---姓名王小五
性别女民族汉
出生1989年02月17日
住址
贵州省遵义市绥阳县龙杨镇
103号
公民身份号码
520323198902170622
常规识别:4---[中华人民共和国
居民身份证
签发机关天津市公安局和平分局
2008.09.17-2028.09.17
有效期限
]---中华人民共和国
居民身份证
签发机关天津市公安局和平分局
2008.09.17-2028.09.17
有效期限
常规识别:5---[钱晓东
姓名蚨
性别男
民族汉
出生1986年02月28日
住址
广东省清远市清新县祥云小区
6栋15单元
公民身份号码
441827198602283975
]---钱晓东
姓名蚨
性别男
民族汉
出生1986年02月28日
住址
广东省清远市清新县祥云小区
6栋15单元
公民身份号码
441827198602283975
常规识别:6---[中华人民共和国
居民身份证
签发机关广东省清远市清新县派出所
2003.01.19-2023.01.19
有效期限
]---中华人民共和国
居民身份证
签发机关广东省清远市清新县派出所
2003.01.19-2023.01.19
有效期限
(常规识别)
身份证识别:1---[姓名代用名
性别男民族汉
出生2013年05月06日
住址湖南省长沙市开福区巡道街
幸福小区居民组
430512198908131367
公民身份证号码
]---姓名代用名
性别男民族汉
出生2013年05月06日
住址湖南省长沙市开福区巡道街
幸福小区居民组
430512198908131367
公民身份证号码
身份证识别:2---[中华人民共和国
居民身份证
签发机关长沙市公安局天心分局
有效期限
2016.04.14-2036.04.14
]---中华人民共和国
居民身份证
签发机关长沙市公安局天心分局
有效期限
2016.04.14-2036.04.14
身份证识别:3---[姓名王小五
性别女民族汉
出生1989年02月17日
佳址贵州省遵义市绥阳县龙杨镇
103号
公民身份号码
520323198902170622
]---姓名王小五
性别女民族汉
出生1989年02月17日
佳址贵州省遵义市绥阳县龙杨镇
103号
公民身份号码
520323198902170622
身份证识别:4---[中华人民共和国
居民身份证
签发机关天津市公安局和平分局
有效期限
2008.09.17-2028.09.17
]---中华人民共和国
居民身份证
签发机关天津市公安局和平分局
有效期限
2008.09.17-2028.09.17
身份证识别:5---[姓名钱晓东
性别男民族汉
出生1986年02月28日
住址广东省清远市清新县祥云小区
6栋15单元
441827198602283975
公民身份号码
]---姓名钱晓东
性别男民族汉
出生1986年02月28日
住址广东省清远市清新县祥云小区
6栋15单元
441827198602283975
公民身份号码
身份证识别:6---[中华人民共和国
居民身份证
签发机关广东省清远市清新县派出所
有效期限
2003.01.19-2023.01.19
]---中华人民共和国
居民身份证
签发机关广东省清远市清新县派出所
有效期限
2003.01.19-2023.01.19
(身份证识别)
(1)文章的排版若是使用上方图片+下方识别结果的布局,也许更加直观,但是已经写好了,就不调整了吧;
(2)上面可以看到识别的结果和代码均是使用当前(2024-11-29)最新版本(24.11.1);
(3)上面识别的结果特别的好(因为此前的所有版本识别的都特别差,特别是使用了中文的识别方式);
(4)仔细一些可以看到的是`常规识别`第三组身份证人像图片时,也就是常规识别5那部分的“姓名蚨”有问题,姓名后多出来了一个字,使用身份证识别的模式正确无误;
(5)给出来两种方式识别的Beyond Compare的对比结果吧,除了一些排版上的区别外,身份证识别属于定制化识别,理应更加准确和科学,如下图所示:
(6)《参考下载.zip》包下载;
点赞