毕业设计So Easy:Spring Boot+Maven+OpenCV实现车牌识别

目录

1、项目概述

2、开发环境

3、项目架构

4、项目功能

5、项目实现

5.1、提取车牌图像

5.1.1、轮廓提取算法

5.1.2、色彩分割提取算法

5.1.3、特征识别提取算法

5.2、车牌字符识别

6、项目效果演示

6.1、车牌识别

6.2、图像处理工具


很多计算机专业大学生经常和我交流:毕业设计没思路、不会做、论文不会写、太难了......

针对这些问题,决定分享一些软、硬件项目的设计思路和实施方法,希望可以帮助大家,也祝愿各位学子,顺利毕业!

项目专栏:7天搞定毕业设计和论文

计算机技术感兴趣的小伙伴请关注公众号:美男子玩编程,公众号优先推送最新技术博文,创作不易,请各位朋友多多点赞、收藏、关注支持\~     


1、项目概述

基于Spring Boot+Maven+OpenCV实现车牌识别,项目贯穿样本处理、模型训练、图像处理、对象检测、对象识别等技术点。

项目资源下载请参见:https://download.csdn.net/download/m0_38106923/87574521 

2、开发环境

  • jdk 1.8.61+
  • maven 3.0+
  • opencv 4.0.1 [或者:javacpp1.4.4、opencv-platform 4.0.1-1.4.4]
  • tess4j 4.3.1
  • spring boot 2.1.5.RELEASE
  • yx-image-recognition 1.0.0版本

3、项目架构

  • B/S 架构,前端html + requireJS,后端java;
  • 数据库使用 sqlite3.0;
  • 接口文档使用swagger 2.0。

4、项目功能

  • 蓝、绿、黄车牌检测及车牌号码识别;
  • 网上常见的轮廓提取车牌算法Java实现;
  • HSV色彩分割提取车牌算法Java实现;
  • harrcascade特征识别算法 Java实现;
  • 基于SVM算法的车牌检测训练Java实现;
  • 基于ANN算法的车牌号码识别训练Java实现;
  • 图片工具:目前实现了HSV色彩切割,后续将添加更多使用的图片处理工具,用于辅助算法优化。

5、项目实现

 车牌识别整体流程主要分两个大的步骤:

  • 使用多种算法,提取到车牌的轮廓,按轮廓从原图片获取车牌的切图,使用SVM算法模型,判断该切图是否是车牌;
  • 根据车牌切图,判定车牌颜色,同时使用轮廓提取算法,提取车牌字符轮廓,按轮廓从二值图片获取车牌切图;使用ANN算法模型,分别使用中文字符模型、蓝牌模型、绿牌模型识别字符切图的文字内容。

5.1、提取车牌图像

其目的是从车牌图片中,提取到包含车牌的图块,这里有三种实现方式:

  • 轮廓提取算法;
  • 色彩分割提取算法;
  • 特征识别提取算法。

5.1.1、轮廓提取算法

  • 该方法是互联网上常见的处理办法,大体流程基本一致,我这里稍微整理,也增加了一些优化;
  • 以上操作步骤,还会包含一些其他小的步骤,比如:轮廓筛选、图像旋转校正等;
  • 这种方法可以说比较具有通用性,自己调整一下一下各个步骤的一些参数,也能在特定场景下,大大增加识别准确率。

- 读取图像,转换大小,然后灰度化图像; - 高斯模糊,去除噪点; - sobel运算,检测图像边缘 - 图像二值化,将边缘转成白色(取值255),其他内容转为黑色(取值0) - 图像闭操作,将临近的边缘线,合并成块 - 边缘腐蚀操作,将一些细小的连接线去掉,分离出一些大的块装区域 - 边缘膨胀,还原腐蚀操作影响的块状区域大小 - 还原图像到原始图像大小,根据二值图像,提取轮廓 - 根据提取的轮廓,从原始图像上,切图 - 将得到的切图,调整到固定大小: 136*36像素,用于SVM算法模型,判断是否是车牌

5.1.2、色彩分割提取算法

这种方法在特定场景下,识别准确率比较高。

- 转换到HSV色彩空间,对hsv取值范围过滤(取值范围,可以使用我的色彩切割工具,大体定位); - 蓝牌、绿牌、黄牌的操作步骤基本一致,区别仅在于HSV取值范围不一样 - 图像均衡化,增强对比度 - 图像二值化,得到车牌区域 - 图像闭操作,将车牌区域连成片 - 还原图像到原始图像大小,根据二值图像,提取轮廓 - 根据提取的轮廓,从原始图像上,切图 - 将得到的切图,调整到固定大小: 136*36像素,用于SVM算法模型,判断是否是车牌

5.1.3、特征识别提取算法

 这种方法,应用应该也比较广泛,人脸识别也常用这种方法。

- 使用harrcascade模型,直接识别图片中的图块位置,提取图块切图 - 将得到的切图,调整到固定大小: 136*36像素,用于SVM算法模型,判断是否是车牌

5.2、车牌字符识别

车牌字符识别的目的是从车牌图块中,识别车牌的颜色、车牌号码。

- 使用SVM模型算法,判断图块是否是车牌 - 将图块转到HSV色彩空间,图像均衡化之后,根据H的取值范围及占比,计算属于何种颜色车牌 - 原图灰度化、高斯模糊 - 然后直接二值化;对于车牌来说一般仅包含两种颜色 - 边缘腐蚀、膨胀 - 水平或者垂直方向投影去除边框、铆钉干扰等 - 错切校正 - 轮廓提取,轮廓位置、大小校正、轮廓过滤等 - 提取字符图块,调整为统一大小20*20像素,使用ANN算法,识别图块的字符,计算置信度等

车牌字符识别,这种方式比较通用,成功率也比较高。

6、项目效果演示

6.1、车牌识别

6.2、图像处理工具

项目资源下载请参考:https://download.csdn.net/download/m0_38106923/87574521 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_44079197

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值