向AI转型的程序员都关注了这个号????????????

人工智能大数据与深度学习  公众号:datayx

1.车牌定位

首先贴一下图像分割的效果图:

我们可以通过图像分割算法对一张输入图片进行分割,分割后的图形其实是对原图中的区域进行的分类标注,例如这里我们可以将原图标注为2类,一类就是车牌区域,还有一类就是无关的背景区域。说到标注图形就不得不说labelme了,我们可以在cmd界面通过命令 pip install labelme 进行labelme库的安装,安装结束在cmd界面输入labelme即可打开lablem软件的标注界面如下:

1. 点击OpenDir ,选择我们准备好的车辆数据集(注意:一定要先把图片全都resize为训练时所需的大小,再进行标注。我们知道图片数据的范围是0-255,背景为黑色0,车牌区域为255,我们需要的是标注好的图片即img_mask中值只有{0,255}这2种,如果我们不先resize,标注完再resize会导致一个大问题,就是数据的值并不是二类,会出现{0,1,10,248,251,255}等类似的多值问题,我在之前就遇到这样的问题,不得已又重新标注了300多张图)

2. 点击左上角File—>将Save Automatically勾选上,点击Change Output Dir选择保存路径,我这里是在桌面D:/desktop/下新建了一个文件夹命名为labelme,在labelm文件夹中新建了一个json文件夹用于保存我们标注的json数据,这里我们Change Output Dir的保存路径就选它,还新建了一个data文件夹用于存放后续转换的图片数据,而待标注图片在pic文件中,存放的都是resize好的512×512的图片,命名格式最好像我这样

3. 准备好上述一切就可以开始标注了,点击软件左侧的   这是画任意多边形的按钮,鼠标左键点击进行标注,最后双击鼠标左键会锁定标注区域,出现如下图界面,第一次标注需输入名称,后续标注就自动显示了,点击ok后标注的线条变为红色,同时json文件夹也会相应保存和pic名字对应的json文件:

4. 全部标注结束后,使用如下代码将json数据提取出来并保存到train_image和train_label文件夹中,u-net部分的数据集我一共标注了1200多张,最终效果很棒,达到了定位的效果。

标注好的u-net训练图片就准备好了,分别在train_image和train_label文件夹中,一并放在unet_datasets文件夹内,如下图所示:

接下来是u-net模型搭建和训练,使用tensorflow的keras实现,贴一下我训练u-net用的代码:

代码 ,模型 获取方式

关注微信公众号 datayx  然后回复 unet 即可获取。

AI项目体验地址 https://loveai.tech

2.车牌矫正

训练u-net得到unet.h5

u-net分割和cv2矫正的代码

上述代码关键部分是要获取车牌四边形的四个顶点,一开始只使用cont中坐标到外接矩形四个端点的距离,发现对于倾斜度很高的车牌效果可能不佳,见下图,可以观察到,计算得到的4个黄色坐标中,左右有2个黄色点并不处在四边形的顶点位置,这样矫正效果大打折扣,同时也会影响后续的识别效果

发现上述问题后,我又想了个方法就是加入了上述的point_to_line_distance函数,即还计算坐标点到上下两条边的距离,并添加了权重,经过调整权重设置为0.975倍的点线距离,0.025点到端点距离时整体效果较佳,最终矫正效果如下图:

矫正效果大大改善后,识别率也将大大提高。

最终运行后上述代码后,提取的license文件夹中的车牌图如下:


阅读过本文的人还看了以下文章:

TensorFlow 2.0深度学习案例实战

基于40万表格数据集TableBank,用MaskRCNN做表格检测

《基于深度学习的自然语言处理》中/英PDF

Deep Learning 中文版初版-周志华团队

【全套视频课】最全的目标检测算法系列讲解,通俗易懂!

《美团机器学习实践》_美团算法团队.pdf

《深度学习入门:基于Python的理论与实现》高清中文PDF+源码

特征提取与图像处理(第二版).pdf

python就业班学习视频,从入门到实战项目

2019最新《PyTorch自然语言处理》英、中文版PDF+源码

《21个项目玩转深度学习:基于TensorFlow的实践详解》完整版PDF+附书代码

《深度学习之pytorch》pdf+附书源码

PyTorch深度学习快速实战入门《pytorch-handbook》

【下载】豆瓣评分8.1,《机器学习实战:基于Scikit-Learn和TensorFlow》

《Python数据分析与挖掘实战》PDF+完整源码

汽车行业完整知识图谱项目实战视频(全23课)

李沐大神开源《动手学深度学习》,加州伯克利深度学习(2019春)教材

笔记、代码清晰易懂!李航《统计学习方法》最新资源全套!

《神经网络与深度学习》最新2018版中英PDF+源码

将机器学习模型部署为REST API

FashionAI服装属性标签图像识别Top1-5方案分享

重要开源!CNN-RNN-CTC 实现手写汉字识别

yolo3 检测出图像中的不规则汉字

同样是机器学习算法工程师,你的面试为什么过不了?

前海征信大数据算法:风险概率预测

【Keras】完整实现‘交通标志’分类、‘票据’分类两个项目,让你掌握深度学习图像分类

VGG16迁移学习,实现医学图像识别分类工程项目

特征工程(一)

特征工程(二) :文本数据的展开、过滤和分块

特征工程(三):特征缩放,从词袋到 TF-IDF

特征工程(四): 类别特征

特征工程(五): PCA 降维

特征工程(六): 非线性特征提取和模型堆叠

特征工程(七):图像特征提取和深度学习

如何利用全新的决策树集成级联结构gcForest做特征工程并打分?

Machine Learning Yearning 中文翻译稿

蚂蚁金服2018秋招-算法工程师(共四面)通过

全球AI挑战-场景分类的比赛源码(多模型融合)

斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)

python+flask搭建CNN在线识别手写中文网站

中科院Kaggle全球文本匹配竞赛华人第1名团队-深度学习与特征工程

不断更新资源

深度学习、机器学习、数据分析、python

 搜索公众号添加: datayx  


机大数据技术与机器学习工程

 搜索公众号添加: datanlp

长按图片,识别二维码

Unet车牌分割,矫正相关推荐

  1. 【Python4】字符分割识别,车牌识别矫正,移动物检测,Caffe_SSD三字码识别,ckpt文件转pb文件,人脸检测与识别

    文章目录 1.字符分割识别 2.车牌识别矫正 2.1 车牌识别项目安装 2.2 车牌矫正的方法 3.移动物检测 3.1 帧间差分法 3.2 相机捕捉照片 3.3 MindVision品牌的相机 3.4 ...

  2. Python基于YOLOv7和CRNN的车牌分割&识别系统(源码&教程)

    1.研究背景 随着科技的进步和社会需求的增长,近年来摄像头逐渐高清化.高帧率化,摄像头作为信息获取设备的载体也不再局限于固定场景.路口.路侧.室内.高位.低位等不同场景下产生了各种对于检测识别的需求, ...

  3. 基于matlab的蓝色车牌识别(车牌倾斜矫正)

    目录 一 处理流程 二 结果展示 三 核心要点解读 四 matlab代码实现 整套方案好包括以下博客: (1)基于matlab的蓝色车牌识别(绪论) (2)基于matlab的蓝色车牌识别(车牌定位) ...

  4. 用Matlab实现车牌分割(可识别大部分蓝色、绿色车牌)

    最近学习了数字图像处理的腐蚀.膨胀.闭运算.开运算等内容,于是想进行实践.车牌分割是一个不错的选择,里面涉及到了很多知识点. 这里先简述一下车牌分割的思路和流程(这里以绿色车牌为例): 1.定位绿色车 ...

  5. FCN与U-Net语义分割算法

    FCN与U-Net语义分割算法 图像语义分割(Semantic Segmentation)是图像处理和是机器视觉技术中关于图像理解的重要一环,也是 AI 领域中一个重要的分支.语义分割即是对图像中每一 ...

  6. u-net语义分割_使用U-Net的语义分割

    u-net语义分割 Picture By Martei Macru On Unsplash 图片由Martei Macru On Unsplash拍摄 Semantic segmentation is ...

  7. 语义分割重制版1——Pytorch 搭建自己的Unet语义分割平台

    转载:https://blog.csdn.net/weixin_44791964/article/details/108866828?spm=1001.2014.3001.5501 对应b站视频:ht ...

  8. Unet++语义分割网络(网络结构分析+代码分析)

    1. 前言 许多初入视觉深度学习的小伙伴都会以图像分类网络作为入门案例来学习,个人觉得语义分割网络可以作为分类网络之后第二个学习的案例,因为其网络结构一般较为简单,只要对每个像素点进行分类即可.刚好课 ...

  9. 憨批的语义分割重制版7——Tensorflow2 搭建自己的Unet语义分割平台

    憨批的语义分割重制版7--Tensorflow2 搭建自己的Unet语义分割平台 注意事项 学习前言 什么是Unet模型 代码下载 Unet实现思路 一.预测部分 1.主干网络介绍 2.加强特征提取结 ...

最新文章

  1. php项目后的感受,PHP项目感受4 - 刘景刘恒的个人空间 - OSCHINA - 中文开源技术交流社区...
  2. 《JAVA程序设计》第八周学习总结
  3. Qt只QStringList的简单使用方法
  4. npm install是什么命令_了解npm
  5. Shell变量作用域
  6. Python使用pyopencl在GPU上并行处理批量判断素数
  7. POST 一张 图像的调试来认识 http post
  8. bootstrap学习记录
  9. Struts2 - Action no cache
  10. 从单片机初学者迈向单片机工程师(对初学者非常有用)
  11. 矩阵 LUP 分解 解线性方程组 求行列式值 矩阵求逆 算法说解
  12. Android判断当前使用数据流量的是哪张卡
  13. 高中学计算机都是学什么,学计算机高中选什么科目
  14. 视频会议室预定小程序_6个最佳免费视频会议应用程序
  15. 基于STM32的ESP8266模块控制多路继电器
  16. caffe 损失函数
  17. xp系统打印机服务器设置,WinXP打印机纸张规格设置的方法
  18. ninja文件语法学习
  19. JavaScript资源大全中文版(Awesome最新版--转载自张果老师博客)
  20. 禁止Skype开机自启动

热门文章

  1. Python yaml模块
  2. 【Hadoop Summit Tokyo 2016】数据流与Apache NiFi
  3. python 学习之 WINDOWS 注册表学习(一)
  4. NA/NP/IE最好的模拟器GNS3 part2
  5. AjaxAtlas技术团队[公告]:请大家清理自己发布在团队页面上的post!
  6. Matlab使用rng固定随机数生成
  7. android tabspec英文自动大写问题,为什么不能在drawable下访问xml文件?所有的
  8. 【测试用例】2021年逢面试必考题
  9. java 的记住用户名和密码,JAVA--高级基础开发Cookie实现记住用户名和密码
  10. 面试高级测试工程师修炼之接口测试平台开发