阿里视觉AI训练营-day02-身份证识别系统搭建

本文涉及的产品
文档理解,结构化解析 100页
OCR统一识别,每月200次
小语种识别,小语种识别 200次/月
简介: 身份证识别系统搭建

本章内容出自《5天入门视觉AI》电子书,点击下载完整版。
身份证识别系统搭建

在进行实践之前,我们先看一下最终的效果,如下图所示,该系统是一个简单的身份证识别系统。
用户上传身份证人像面和国徽面之后,点击开始识别,就可以得到身份证正反面的内容了。

image.png

一、项目简介

下图是这个项目的文件结构,它是通过spring-boot-starter创建的一个spring-boot项目。

image.png

项目中主要文件的介绍如下:

Application:Spring-Boot的一个启动类;
MainController:控制器层,负责模版的渲染、路由等功能;
OcrService:负责通过SDK调用视觉智能开放平台的OCR能力;
index.html:基于thymeleaf的前端模版;
application.properties:包含若干配置项的配置文件;
pom.xml:pom依赖。

二、如何获取视觉智能开放平台提供的SDK?

进入到视觉智能开放平台的官网https://vision.aliyun.com/ 后往下拉,我们可以发现平台已经开放了包括人脸识别、文字识别、商品理解等在内的多项视觉AI能力,点击文字识别菜单,可以找到身份证识别项,然后我们点击进入,之后点击文档链接查看具体文档。

image.png

在文档页面,我们点击SDK参考,可以看到有两个Java的SDK说明,两个SDK的区别主要是新的JavaSDK支持本地上传图片,也就是说通过这个新的SDK可以直接把本地的图片交给视觉智能开放平台来进行OCR识别、人脸识别等任务。

image.png

点击Java(支持本地上传)进入相应的说明页,我们可以看出其中有很多SDK,我们需要找到需要的OCR SDK。如下图所示,我们可以通过https://mvnrepository.com/artifact/com.aliyun/ocr 来找到我们所需要的相应版本的SDK,然后获取我们需要的Maven坐标。

image.png

在获取了Maven坐标之后,如下图所示,我们可以通过在pom.xml文件中添加Maven依赖安装java SDK,这样便成功获取到了视觉智能开放平台提供的SDK。

image.png

三、项目实现逻辑
(一)前端

前端的实现是基于thymeleaf做的一个模版,其页面如下图所示,包括一个标题、2个表单、2个上传文件的组件以及一个开始识别的按钮。

image.png

下图所示是相应的标题、表单和按钮的实现代码。这里我们用到了bootstrap和jquery来进行页面的美化,我们用代理的方式来实现美化,相当于我们点击“上传人像面”的组件时候,会把表达上传到input组件中,再把input中的内容传给form表单,“上传国徽面”也是如此。在input组件中,我们限制了可以上传图片的类型,最前面还设置了一个alert,在用户上传的图片出现问题的时候会进行提示或者报错。

image.png

下图是在用户上传正确的图片并提交之后的相关代码逻辑,主要分为两部分:一是对上传的图片进行展示,二是对OCR识别出的信息进行展示,包括姓名、性别、民族、出生日期等信息。

image.png

(二)控制层

控制层主要包括如下几部分:

定义的若干个私有成员;
MainCntroller;
saveFile;
index;
uploadFile。

image.png

(1)私有成员
私有成员变量如下图所示,包括上传图片文件本地保存地址(uploadDirectory)、调用视觉智能开放平台能力的封装(ocrService)、上传图片的缓存路径地址(faceImage、backImage)、识别结果的缓存(faceResults、backResults)。

image.png

(2)MainController
MainController构造方法的代码如下图所示,其中file.upload.path变量是在配置文件中的,是本机的一个上传文件的目录地址,大家可以在实践的时候根据自己的情况进行设置。这里有个小技巧,这里配置的目录地址其实是项目target目录下的一个子目录,这是因为springboot会默认取target下的static目录作为静态文件的地址,如果我们这么设置的话,上传和读取文件对应的是同一目录,可以更方便的进行文件的读取和存储操作。

image.png

image.png

(3)saveFile
saveFile是一个私有方法,用来保存文件,其代码如下图所示。

image.png

(4)index
index是一个控制方法,是一开始进入页面时候用来加载模版的。首先是判断faceImage和backImage缓存是否一样,如果不一样,就全部清除掉;其次就是将已经上传的结果进行展示,起到一个重新刷新页面也不会丢失识别结果的作用。

image.png

(5)uploadFile
uploadFile也是一个控制方法,有三个参数,一个正面的人像面的文件,一个背面的国徽面的文件,还有一个用来重定向的参数。首先,判断两张图片是否是空的,如果是空的,将会重定向到index,相当于重新进入首页,并且会有一个message来提示用户必须要上传一个文件,否则是无效的;接下来判断上传目录是否存在,如果不存在就递归的进行创建;然后如果人像面的文件不为空,将其保存到本地,紧接着调用视觉智能开放平台的能力去进行识别,在拿到结果之后将上传的图片和识别结果加入到缓存池中,国徽面的处理方式也类似;最后几行代码是异常的处理,并且会告知用户是哪种报错。

image.png

(三)OcrService

CcrService的实现代码如下所示。首先,是4个私有变量,ocrClient、runtime、accessKeyId和accessKeySecret,其中accessKeyId和accessKeySecret要在配置文件中进行配置;其次是一个初始化方法,初始化Client和runtime;接下来是真正调用视觉智能开放平台身份证识别的方法,具体来说,在设置好request之后,我们将request和runtime作为参数传递给ocrClient来调用身份证识别的方法,之后我们得到相应的response,也就是识别的结果,之后我们将结果处理成哈希Map返回给控制层。

image.png

控制层拿到返回的结果之后,结合前端的优化进行结果的展示,至此,我们便完成了一个身份证识别系统的构建。

目录
相关文章
|
11天前
|
人工智能 自然语言处理 调度
Casevo:开源的社会传播模拟系统,基于 AI 模拟人类认知、决策和社会交互,预测社会传播现象
Casevo 是中国传媒大学推出的开源社会传播模拟系统,结合大语言模型和多智能体技术,支持复杂社会网络建模与动态交互,适用于新闻传播、社会计算等领域。
71 22
Casevo:开源的社会传播模拟系统,基于 AI 模拟人类认知、决策和社会交互,预测社会传播现象
|
10天前
|
数据采集 人工智能 算法
Seer:上海 AI Lab 与北大联合开源端到端操作模型,结合视觉预测与动作执行信息,使机器人任务提升成功率43%
Seer是由上海AI实验室与北大等机构联合推出的端到端操作模型,结合视觉预测与动作执行,显著提升机器人任务成功率。
49 20
Seer:上海 AI Lab 与北大联合开源端到端操作模型,结合视觉预测与动作执行信息,使机器人任务提升成功率43%
|
16天前
|
机器学习/深度学习 人工智能 自然语言处理
AigcPanel:开源的 AI 虚拟数字人系统,一键安装开箱即用,支持视频合成、声音合成和声音克隆
AigcPanel 是一款开源的 AI 虚拟数字人系统,支持视频合成、声音克隆等功能,适用于影视制作、虚拟主播、教育培训等多种场景。
144 12
AigcPanel:开源的 AI 虚拟数字人系统,一键安装开箱即用,支持视频合成、声音合成和声音克隆
|
6天前
|
人工智能 缓存 Ubuntu
AI+树莓派=阿里P8技术专家。模拟面试、学技术真的太香了 | 手把手教学
本课程由阿里P8技术专家分享,介绍如何使用树莓派和阿里云服务构建AI面试助手。通过模拟面试场景,讲解了Java中`==`与`equals`的区别,并演示了从硬件搭建、语音识别、AI Agent配置到代码实现的完整流程。项目利用树莓派作为核心,结合阿里云的实时语音识别、AI Agent和文字转语音服务,实现了一个能够回答面试问题的智能玩偶。课程展示了AI应用的简易构建过程,适合初学者学习和实践。
55 22
|
17天前
|
存储 人工智能 开发框架
Eliza:TypeScript 版开源 AI Agent 开发框架,快速搭建智能、个性的 Agents 系统
Eliza 是一个开源的多代理模拟框架,支持多平台连接、多模型集成,能够快速构建智能、高效的AI系统。
125 8
Eliza:TypeScript 版开源 AI Agent 开发框架,快速搭建智能、个性的 Agents 系统
|
18天前
|
人工智能 UED
VersaGen:生成式 AI 代理,基于 Stable Diffusion 生成图像,专注于控制一至多个视觉主体等生成细节
VersaGen 是一款生成式 AI 代理,专注于文本到图像合成中的视觉控制能力,支持多种视觉控制类型,并通过优化策略提升图像生成质量和用户体验。
38 8
VersaGen:生成式 AI 代理,基于 Stable Diffusion 生成图像,专注于控制一至多个视觉主体等生成细节
|
2天前
|
人工智能 自然语言处理 数据可视化
校企合作|TsingtaoAI携手潍坊学院,共建AI驱动的党建信息化系统
TsingtaoAI与潍坊学院近日达成合作,正式签署《人工智能党建信息化系统开发》技术开发合同,计划在未来两年内联合开发一套集党员教育、党务管理、党建活动智能化以及数据可视化于一体的智能党建系统。本次合作将充分结合TsingtaoAI在AI大模型领域的技术优势和潍坊学院的学术资源,为推动党建工作的数字化、智能化和高效化注入新的动力。
26 10
|
15天前
|
机器学习/深度学习 人工智能 监控
AI在交通管理系统中的应用
AI在交通管理系统中的应用
65 23
|
10天前
|
人工智能 API 开发者
阿里CEO吴泳铭-2024互联网大会发言:AI的最大价值是推动生产力变革
11月21日,2024年世界互联网大会“互联网企业家论坛”在乌镇召开。阿里巴巴CEO吴泳铭表示,AI的最大价值在于推动各行各业的生产力变革,而非仅限于开发超级APP。他强调,发展AI需建设繁荣的技术、产品和市场生态。目前,30多万家企业已接入阿里“通义”大模型,应用于代码开发、药物研发等场景。阿里巴巴坚持开源路线,全球开发者基于“通义千问”开发的衍生模型已突破7.8万个。吴泳铭认为,AI的发展需要行业共同努力,建设繁荣生态以实现高质量持续发展。
|
16天前
|
人工智能 运维 API
PAI企业级能力升级:应用系统构建、高效资源管理、AI治理
PAI平台针对企业用户在AI应用中的复杂需求,提供了全面的企业级能力。涵盖权限管理、资源分配、任务调度与资产管理等模块,确保高效利用AI资源。通过API和SDK支持定制化开发,满足不同企业的特殊需求。典型案例中,某顶尖高校基于PAI构建了融合AI与HPC的科研计算平台,实现了作业、运营及运维三大中心的高效管理,成功服务于校内外多个场景。

热门文章

最新文章