阿里云高校计划视觉AI五天训练营 Day02 学习笔记

简介: 终于又在这一章看到了又爱又恨的JaveEE全家桶,Apache MAVEN 和 Springboot 真生产力!

Day 02

作者:第五组 邓佳阳

打卡截图

Aliyun 打卡02.jpg

学习笔记

身份证识别系统搭建

项目简介

(不废话,先看东西...)

用户上传身份证人像面和国徽面之后,点击开始识别,就可以得到身份证正反面的内容了。

image.png

image.png

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

(进视觉智能开放平台找Java-OCR就对了)

image.png

Gradle和MAVEN都提供了,Aliyun做的是真滴全而省心。

项目实现逻辑

前端

喜闻乐见的HTML,具体实现基于 thymeleaf 做的一个模版。
上传方面,对input控件进行一定限制,有一个格式的规定,并且还写了一个alert,给用户的误操作提供了一个警示报错。
正确上传后的大致逻辑为两部分:一是展示上传的图片,二是对 OCR 识别出的信息进行展示,包括姓名、性别、民族、出生日期等信息。

控制层

(个人Java比较菜,年纪轻轻就上了C++的贼船)

控制层主要包括如下几部分:
● 定义的若干个私有成员;
● MainController;
● saveFile;
● index;
● uploadFile。

私有成员

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

MainController

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

saveFile

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

index

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

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

总结

自从转了C++和Python后,在这一块的具体应用方面再度看到官方文档出现Java,真的唏嘘不已。果然还是得两手抓,以及在Web方面Java还是老大哥。牛!

目录
相关文章
|
3天前
|
人工智能 编解码 安全
[译][AI OpenAI-doc] 视觉
学习如何使用 GPT-4 来理解图像。具有视觉功能的 GPT-4 Turbo 允许模型接收图像并回答与之相关的问题。了解图像上传、处理、成本计算、模型限制等详细信息。
|
18天前
招募!阿里云x魔搭社区发起Create@AI创客松邀你探索下一代多维智能体应用
招募!阿里云x魔搭社区发起Create@AI创客松邀你探索下一代多维智能体应用
285 0
|
2月前
|
人工智能 运维 Kubernetes
阿里云容器服务ACK AI助手正式上线带来的便利性
作为开发者想必大家都知道,云原生容器技术的优势,尤其是近两年的随着容器技术的迅猛发展,Kubernetes(K8s)已成为广泛应用于容器编排和管理的领先解决方案,但是K8s的运维复杂度一直是挑战之一。为了应对这一问题,就在最近,阿里云容器服务团队正式发布了ACK AI助手,这是一款旨在通过大模型增强智能诊断的产品,旨在帮助企业和开发者降低Kubernetes(K8s)的运维复杂度。那么本文就来详细讲讲关于这款产品,让我们结合实际案例分享一下K8s的运维经验,探讨ACK AI助手能否有效降低K8s的运维复杂度,并展望ACK AI助手正式版上线后的新功能。
269 2
阿里云容器服务ACK AI助手正式上线带来的便利性
|
11天前
|
人工智能 编解码 安全
揭秘AI幻觉:GPT-4V存在视觉编码漏洞,清华联合NUS提出LLaVA-UHD
【4月更文挑战第14天】清华大学与新加坡国立大学团队针对大型多模态模型(LMMs)在处理高分辨率图像时的局限,提出新模型LLaVA-UHD。该模型通过图像模块化、压缩和空间模式组织策略,有效提升了处理任意比例和高分辨率图像的能力。实验显示,LLaVA-UHD在9个基准测试中超越现有模型,且在TextVQA任务上准确率提升6.4%,同时训练时间更短。然而,模型训练成本高、泛化能力待优化是未来需解决的问题。
21 8
揭秘AI幻觉:GPT-4V存在视觉编码漏洞,清华联合NUS提出LLaVA-UHD
|
14天前
|
弹性计算 人工智能 数据挖掘
阿里云高校计划“云工开物”解读,适合学生及高校教师参考
阿里云推出“云工开物”高校计划,向学生和教师提供优惠,旨在支持高等教育和培养科技人才。学生通过学信网认证可获300元优惠券和3折云服务器优惠;教师享5折全线产品折扣。此外,还有“极速上云”活动和各类挑战赛,促进实践和创新。
阿里云高校计划“云工开物”解读,适合学生及高校教师参考
|
1月前
|
存储 人工智能 自然语言处理
“智能+”时代,深维智信如何借助阿里云打造AI内容生成系统
随着数字经济的发展,线上数字化远程销售模式越来越成为一种主流,销售流程也演变为线上视频会议、线下拜访等多种方式的结合。根据Gartner报告,到2025 年60%的B2B 销售组织将从基于经验和直觉的销售转变为数据驱动的销售,将销售流程、销售数据、销售分析合并形成一致的运营实践。
404 0
“智能+”时代,深维智信如何借助阿里云打造AI内容生成系统
|
1月前
|
云安全 人工智能 安全
|
1月前
|
人工智能 UED
“视觉AI任意门”AnyDoor,只需点两下鼠标就可以实现任意场景物体交换
【2月更文挑战第17天】“视觉AI任意门”AnyDoor,只需点两下鼠标就可以实现任意场景物体交换
75 1
“视觉AI任意门”AnyDoor,只需点两下鼠标就可以实现任意场景物体交换
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
探索无限:Sora与AI视频模型的技术革命 - 开创未来视觉艺术的新篇章
探索无限:Sora与AI视频模型的技术革命 - 开创未来视觉艺术的新篇章
58 1
|
1月前
|
机器学习/深度学习 人工智能 知识图谱
LeCun视觉世界模型论文,揭示AI学习物理世界的关键
【2月更文挑战第16天】LeCun视觉世界模型论文,揭示AI学习物理世界的关键
18 2
LeCun视觉世界模型论文,揭示AI学习物理世界的关键