阿里云高校计划视觉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还是老大哥。牛!

目录
相关文章
|
5天前
|
人工智能 搜索推荐 测试技术
|
5天前
|
人工智能 JavaScript Java
《AIGC+软件开发新范式》--10.阿里云参编业内首个代码大模型标准,通义灵码获 2023 AI4SE “银弹” 案例
阿里云参编业内首个代码大模型标准,通义灵码获 2023 AI4SE “银弹” 案例
|
5天前
|
人工智能 API
阿里云主力模型直降97%,AI行业起飞
【6月更文挑战第14天】阿里云主力模型直降97%,AI行业起飞
|
15天前
|
机器学习/深度学习 人工智能 运维
阿里云DAS-您的专属AI专家,引领数据库自治驾驶
阿里云数据库自治服务(DAS)可以被誉为“您的专属AI专家”,它确实在引领数据库进入自治驾驶的时代。 DAS的核心优势在于其结合了多年大规模数据库集群运维调优的专家经验与机器学习等智能化技术。这
|
20天前
|
机器学习/深度学习 人工智能 测试技术
阿里云连续三年入围Gartner云AI开发者服务挑战者象限
Gartner正式发布了《云AI开发者服务魔力象限》报告(Magic Quadrant for Cloud AI Developer Services),阿里云成功入选,是唯一一家入围“挑战者”(Challengers)象限的中国厂商,并且保持连续三年入围。
|
20天前
|
人工智能 运维 监控
|
22天前
|
弹性计算 运维 Serverless
阿里云Elasticsearch Serverless帮助某视觉科技公司平稳应对流量激增
某视觉科技公司借助阿里云Elasticsearch Serverless应对创意资源平台的流量激增,通过服务自动扩缩容,确保流量高峰时的快速响应,降低至少50%的成本。同时,它提供弹性数据容量支持,简化运维,提升开发效率,并保证高精确度的搜索体验。
439 1
|
25天前
|
存储 弹性计算 人工智能
【阿里云弹性计算】AI 训练与推理在阿里云 ECS 上的高效部署与优化
【5月更文挑战第25天】阿里云ECS为AI训练和推理提供弹性、可扩展的计算资源,确保高性能和稳定性。通过灵活配置实例类型、利用存储服务管理数据,以及优化模型和代码,用户能实现高效部署和优化。自动伸缩、任务调度和成本控制等策略进一步提升效率。随着AI技术发展,阿里云ECS将持续助力科研和企业创新,驱动人工智能新时代。
60 0
|
25天前
|
人工智能 网络协议 Linux
阿里云迎来AI网络领域两大重要突破
阿里云迎来AI网络领域两大重要突破
59 1
|
25天前
|
人工智能 JavaScript 前端开发
最新季报!阿里云AI相关收入三位数增长
最新季报!阿里云AI相关收入三位数增长
40 1

热门文章

最新文章