【阿里云高校计划】未完成(车牌识别)停车场车辆管理系统 day5 【以小见大】

  • 【阿里云高校计划】未完成(车牌识别)停车场车辆管理系统 day5 【以小见大】
    • 实施前——项目实现思路
      • 1.简要描述
      • 2.功能思路
      • 3.设计思路
    • 项目实施——设计步骤
      • 一、OSS的实现
        • 1.新建spring项目
        • 2.在maven中导入所需依赖
        • 3.Upload利用oss上传图片的类
    • 二、车牌识别的实现
      • 1.在maven中导入所需依赖
      • 2.RecognizeLicensePlate根据URL进行车牌识别
      • 3.结果展示
    • 加入高校计划

【阿里云高校计划】未完成(车牌识别)停车场车辆管理系统 day5 【以小见大】

由于前些天学校还有特别多的课程,所以这次训练营的任务推到了现在。

之前也花过一下午的时间去看,看阿里云视觉智能开放平台的说明文档,看OSS的文档等等。可惜学渣的我当时没有看懂。

可能由于自身专业知识和技能的匮乏,比如js和jsp都没有掌握,比如oss听都没听到过。

于是今天又花费了一晚上的时间捣鼓,终于,我实现了其中oss和车牌识别的功能(并不是项目全部)。

实施前——项目实现思路

1.简要描述

在许多小区和商场的停车场都设有无人进出口管理系统,通过摄像头进行识别,对进出口的车辆进行判断和记录。从而达到抬杆、计时、收费、场内车辆数量的管理。

2.功能思路

简单思路如下:

  1. 进场显示:剩余车位/总车位;
  2. 进场识别:车牌;
  3. 进场记录:车牌号、进入时间、总车辆数量;
  4. 出场识别:车牌;
  5. 出场记录:车牌号、出场时间、总车辆数量;
  6. 出场显示:应缴费数额。
3.设计思路

当前设计思路如下:

  1. 根据实时记录未出场车辆数量和停车场总车位之比显示剩余车位/总车位;
  2. 由于这里硬件缺失,我只将车辆正面照片上传至OSS,通过OSS再调用阿里云智能开放平台中文字识别的车牌识别API,从而获取车辆信息;
  3. 根据车辆信息中的可信度进行筛选,如果不符合设定的阈值,则显示识别失败,并再次提示上传并识别,直至成功;
  4. 将需要的识别结果进行记录,上传到后台数据库;
  5. 出场时同理,只是将相同车牌号的车辆的出入场时间进行差值运算获得停车总时间,再进行设定好的收费计算规则进行计算,将得到的应收费数额并显示出来。
  6. 这次并不涉及收费接口,所以到上一步系统截止。

项目实施——设计步骤

一、OSS的实现

对象存储(Object Storage Service,简称OSS),是阿里云对外提供的海量、安全和高可靠的云存储服务。

在我看来,oss就是一个类似远端硬盘的一个东西,只不过它可以提供给我们一个URL,具有平台无关性和安全可靠的服务。

1.新建spring项目
2.在maven中导入所需依赖

Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。

这个maven也是在本次训练营第一次接触,初步感觉是像一个类似js里一个CDN的东西。

<dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.8.0</version>
</dependency>
3.Upload利用oss上传图片的类
package com.example.demo;import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.model.PutObjectRequest;import java.io.File;
import java.net.URL;
import java.security.SecureRandom;
import java.util.Date;
import java.lang.*;
import java.util.Scanner;public class UploadPic {public static String UploadPic(){// Endpoint以上海为例,其它Region请按实际情况填写。String endpoint = "oss-cn-shanghai.aliyuncs.com";// 阿里云主账号AccessKey。String accessKeyId = "*******************";String accessKeySecret = "*******************";//本地文件名System.out.println("请输入本地图片path:");Scanner scanner = new Scanner(System.in);String fileName = scanner.nextLine();String bucketName = "number-plates";// 获取文件的后缀名String suffixName = fileName.substring(fileName.lastIndexOf("."));// 生成上传文件名String objectName = System.currentTimeMillis() + "" + new SecureRandom().nextInt(0x0400) + suffixName;// 创建OSSClient实例。OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);// 如果需要上传时设置存储类型与访问权限,请参考以下示例代码。// ObjectMetadata metadata = new ObjectMetadata();// metadata.setHeader(OSSHeaders.OSS_STORAGE_CLASS, StorageClass.Standard.toString());// metadata.setObjectAcl(CannedAccessControlList.Private);// putObjectRequest.setMetadata(metadata);// 上传文件。ossClient.putObject(bucketName, objectName, new File(fileName));// 设置URL过期时间为1小时。Date expiration = new Date(System.currentTimeMillis() + 3600 * 1000);// 生成以GET方法访问的签名URL,访客可以直接通过浏览器访问相关内容。URL url = ossClient.generatePresignedUrl(bucketName, objectName, expiration);// 关闭OSSClient。ossClient.shutdown();return url.toString();}
}

二、车牌识别的实现

1.在maven中导入所需依赖
<dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.5</version></dependency><!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-ocr --><!--    内容识别对应依赖    --><!-- https://mvnrepository.com/artifact/com.aliyun/objectdet --><dependency><groupId>com.aliyun</groupId><artifactId>objectdet</artifactId><version>0.0.5</version></dependency><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId><version>4.4.8</version></dependency><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-ecs</artifactId><version>4.17.6</version></dependency><!--    图片识别    --><dependency><groupId>com.aliyun</groupId><artifactId>ocr</artifactId><version>1.0.3</version></dependency><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-ocr</artifactId><version>1.0.7</version></dependency>
2.RecognizeLicensePlate根据URL进行车牌识别
package com.example.demo;import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.ocr.model.v20191230.RecognizeLicensePlateRequest;
import com.aliyuncs.ocr.model.v20191230.RecognizeLicensePlateResponse;
import com.aliyuncs.profile.DefaultProfile;
import com.google.gson.Gson;public class RecognizeLicensePlate {public RecognizeLicensePlate() {{String accessKeyId = "*********************";String accessKeySecret = "*********************";String PicURL = UploadPic.UploadPic();DefaultProfile profile = DefaultProfile.getProfile("cn-shanghai", accessKeyId, accessKeySecret);IAcsClient client = new DefaultAcsClient(profile);RecognizeLicensePlateRequest request = new RecognizeLicensePlateRequest();request.setRegionId("cn-shanghai");request.setImageURL(PicURL);try {RecognizeLicensePlateResponse response = client.getAcsResponse(request);System.out.println(response.getData().getPlates());System.out.println("------------------------------------------------------------------");String result = new Gson().toJson(response);System.out.println(result);System.out.println(new Gson().toJson(response.getData().getPlates()));System.out.println("------------------------------------------------------------------");} catch (ServerException e) {e.printStackTrace();} catch (ClientException e) {System.out.println("ErrCode:" + e.getErrCode());System.out.println("ErrMsg:" + e.getErrMsg());System.out.println("RequestId:" + e.getRequestId());System.out.println(PicURL);}}}
}
3.结果展示

识别正确

emmm,目前的话就只做到了这里,希望接下来我可以利用上个星期学的Vue来进行前端的搭建,同时也实现时间、订单的数据库储存。

加入高校计划

本人是参加的达摩院特别版-视觉AI训练营第二期
训练营里面的小哥哥小姐姐说话超级好听,也有超多大佬,我超喜欢这里!

【阿里云高校计划】未完成(车牌识别)停车场车辆管理系统 day5 【以小见大】相关推荐

  1. 【阿里云高校计划】身份证识别系统搭建 day2 【抛砖引玉】

    身份证识别系统搭建 [阿里云高校计划]身份证识别系统搭建 day2 [抛砖引玉] 身份证识别系统搭建 一.项目简介 二.获取视觉智能开放平台提供的SDK 三.项目实现 (一)前端index.html ...

  2. 【阿里云高校计划】视觉AI-身份证识别系统搭建

    [阿里云高校计划]视觉AI-身份证识别系统搭建 由大佬书写的项目源码:https://github.com/aliyun/alibabacloud-viapi-demo/tree/master 阿里云 ...

  3. 【阿里云高校计划】实现简单的身份证识别系统!

    实现简单的身份证识别系统: 借助阿里云视觉平台提供的ocr识别能力完成简单的身份证识别系统. (这个系统最终在web前端页面上呈现.) 实现的核心逻辑: 最终的wed端界面效果 项目结构: { App ...

  4. [阿里云高校计划]Day4-车辆保险应用

    [阿里云高校计划]Day4-车辆保险应用 首先使用JAVA SDK 引入资源. 可以通过在pom.xml文件中添加Maven依赖安装java SDK. <dependency><gr ...

  5. 【阿里云高校计划】车辆保险应用 day4 【拨云见日】

    [阿里云高校计划]车辆保险应用 day4 [拨云见日] [阿里云高校计划]车辆保险应用 day4 [拨云见日] 实施前准备工作 一.本地图片上传为OSS 1.开通oss 2.创建Bucket 二.开通 ...

  6. 2021第一场 | 阿里云高校计划训练营全面升级!0成本体验云计算入门到进阶

    简介:2021,走进云计算的美妙世界(参加训练营免费获取ACA考试资格) 近年来云计算越来越受到重用,它不再仅仅是开源发烧友们的选择,已经在多方面得到了价值体现. 甚至网上流传一句话:云计算适合零基础 ...

  7. 【阿里云高校计划】阿里云AI训练营_Day04_车辆检测系统

    项目介绍 参加阿里云AI训练营的第4天,完成一个车辆检测系统 主要思路:用户上传身份证和受损车辆图片,识别结果返回前端,同时将数据存入数据库. 项目用到文档地址 阿里云达摩院视觉开放平台:https: ...

  8. 阿里云高校计划视觉AI五天训练营教程学习笔记

    阿里云高校计划视觉AI五天训练营教程学习笔记 Day 1 Topic: 视觉生产技术 定义:通过(一个或者一系列)视觉过程,产出 **新的** 视觉表达. 分类 通用基础框架 关键维度 精细理解--举 ...

  9. 【阿里云高校计划】视觉Al训练营五天训练第二天

    学习身份证识别系统搭建笔记 SDK 正文 链接 名词解释 搭建过程可以看看这个博客 link 下面是一个小白的记录,还没做完. SDK 阿里云达摩院视觉开放平台:http://vision.aliyu ...

最新文章

  1. android easylink 搜索设备_手把手教你将数据从Android移动到iPhone步骤与技巧
  2. 图像点云数据融合方法汇总
  3. csdn上传资源提示“该资源已存在,请重新上传”
  4. UVA 536 TreeRocvery 树重建 (递归)
  5. JS图表工具FusionCharts调整图表百分比大小
  6. 通过History Trends Unlimited通过统计服务器上Edge浏览器Top10网页历史访问量(2021.11.23)
  7. 用python做公众号网页_Python---微信公众号或网页自动导出
  8. 视频云的全景蓝图,想象力的允诺之地
  9. 使用Android 隐藏API和内部 API
  10. sql join后显示二维数据_大数据交叉报表解决案例(方案)
  11. 单晶X射线衍射法和粉末X射线衍射法有哪些不同?
  12. stm32 USB HID多点触摸屏上报安卓触摸信号
  13. java跳转_java后端实现页面跳转的方法
  14. 整理总结:英语口语发音技巧
  15. 成都市绿色建筑创建行动实施计划通知
  16. 用浏览器轻松录制音频、视频—— MediaRecorder API
  17. python批量改名
  18. Centos安装MegaCli
  19. netty ChannelFuture的不解?
  20. [转]商业模式新生代

热门文章

  1. SAP系统 开关账期
  2. 刷爆力扣之电话号码的字母组合
  3. 多式联运成为行业热点 物流企业迎来新机遇
  4. 小心这种思维正在慢慢地吞噬掉你的前程
  5. java过滤器配置白名单,万字解析!
  6. Hibernate inverse 详解
  7. Linux errno详解
  8. 帅小伙的MFC VC++ 图片的旋转
  9. jQuery入门基础-附案例
  10. C++/Qt结构体初始化