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

本文涉及的产品
车辆物流识别,车辆物流识别 200次/月
教育场景识别,教育场景识别 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

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

目录
相关文章
|
25天前
|
人工智能 监控 搜索推荐
给RAG打分:小白也能懂的AI系统评测全攻略
RAG系统评估听起来高深,其实跟我们生活中的'尝鲜评测'没啥两样!本文用轻松幽默的方式,带你从检索质量、生成质量到用户体验,全方位掌握如何科学评测RAG系统,避免踩坑,让你的AI应用又快又准。#RAG技术 #AI评估 #信息检索 #大模型 #数据科学
|
19天前
|
SQL 人工智能 数据可视化
高校迎新管理系统:基于 smardaten AI + 无代码开发实践
针对高校迎新痛点,基于smardaten无代码平台构建全流程数字化管理系统,集成信息采集、绿色通道、宿舍管理等七大模块,通过AI生成框架、可视化配置审批流与权限,实现高效、精准、可扩展的迎新服务,大幅提升管理效率与新生体验。
|
13天前
|
人工智能 Java API
AI 超级智能体全栈项目阶段一:AI大模型概述、选型、项目初始化以及基于阿里云灵积模型 Qwen-Plus实现模型接入四种方式(SDK/HTTP/SpringAI/langchain4j)
本文介绍AI大模型的核心概念、分类及开发者学习路径,重点讲解如何选择与接入大模型。项目基于Spring Boot,使用阿里云灵积模型(Qwen-Plus),对比SDK、HTTP、Spring AI和LangChain4j四种接入方式,助力开发者高效构建AI应用。
531 122
AI 超级智能体全栈项目阶段一:AI大模型概述、选型、项目初始化以及基于阿里云灵积模型 Qwen-Plus实现模型接入四种方式(SDK/HTTP/SpringAI/langchain4j)
|
3天前
|
人工智能 小程序 Java
电子班牌管理系统源代码,基于AI人脸识别技术的智能电子班牌云平台解决方案
电子班牌管理系统源码,基于AI人脸识别的智慧校园云平台,支持SaaS架构,涵盖管理端、小程序与安卓班牌端。集成考勤、课表、通知、门禁等功能,提供多模式展示与教务联动,助力校园智能化管理。
40 0
|
14天前
|
人工智能 数据库 索引
超越幻觉:检索增强生成如何为AI大模型“装上”事实核查系统
超越幻觉:检索增强生成如何为AI大模型“装上”事实核查系统
190 107
|
13天前
|
人工智能 数据处理 云栖大会
云栖现场|让评测与标注成为AI进化引擎!阿里发布全新评测平台,3大创新评测集亮相
云栖现场|让评测与标注成为AI进化引擎!阿里发布全新评测平台,3大创新评测集亮相
146 9
云栖现场|让评测与标注成为AI进化引擎!阿里发布全新评测平台,3大创新评测集亮相
|
7天前
|
人工智能 自然语言处理 安全
AI助教系统:基于大模型与智能体架构的新一代教育技术引擎
AI助教系统融合大语言模型、教育知识图谱、多模态交互与智能体架构,实现精准学情诊断、个性化辅导与主动教学。支持图文语音输入,本地化部署保障隐私,重构“教、学、评、辅”全链路,推动因材施教落地,助力教育数字化转型。(238字)
|
5天前
|
机器学习/深度学习 人工智能 自然语言处理
用AI守护迷途少年:戒毒所青少年心理疏导系统的技术实践
在戒毒所中,青少年心理更脆弱却难言苦痛。我们打造AI心理疏导系统,以多模态情绪识别、个性化疏导引擎与隐私优先架构,用技术补位心理支持,主动发现风险,精准干预,守护迷途少年重拾希望。(239字)
|
2天前
|
人工智能 API 开发工具
AskTable:可嵌入任何系统的 AI 数据智能体引擎
AskTable 是一款以 Table 为核心的数据 AI 基础设施。它通过标准化 API、SDK、iFrame 与智能体协议(MCP),让 AI 能直接理解、查询和分析表格数据,轻松嵌入企业现有系统。 AskTable 提供从数据接入、语义分析到可视化生成的完整能力,可无缝集成至网页、移动端、钉钉、企业微信或 Dify/HiAgent 等智能体平台。
|
6天前
|
人工智能 监控 Java
Java与AI智能体:构建自主决策与工具调用的智能系统
随着AI智能体技术的快速发展,构建能够自主理解任务、制定计划并执行复杂操作的智能系统已成为新的技术前沿。本文深入探讨如何在Java生态中构建具备工具调用、记忆管理和自主决策能力的AI智能体系统。我们将完整展示从智能体架构设计、工具生态系统、记忆机制到多智能体协作的全流程,为Java开发者提供构建下一代自主智能系统的完整技术方案。
67 4

热门文章

最新文章