前期回顾:

在上一期中,正当我信心满满的准备将模型应用在车牌识别的时候,遇到了很大的问题。就是在视频中,会把同一个车牌识别成很多不同的车牌号。这样会严重影响最终的统计精度。如下图所示,同一个这牌,由于拍摄角度不同会被识别出很多不同的车牌号。因此这期的主要目的就是要解决同一个车牌的不同角度下,被识别成不同车牌号的问题。

把该车牌在不同帧里面截取下来,进行预测,结果如下所示:

不同角度下,识别出了不同的车牌号,这显示是有问题的。

审核之前的数据增强

首先我对之前的车牌识别网络的数据增强做了审核,发现自己竟然使用了水平反转操作。要知道我们是7个车牌号一起识别的,水平翻转之后,车牌号的顺序是完全乱的,因此属于一个大Bug。我抑制住内心的激动,感觉找到了问题的本质。于是我删除了这个水平翻转的数据增强,重新进行了训练。最终的top1准确率从原来的0.9683提升到了0.9699,好像没有太大的提升。然后在同一个车牌的不同拍摄角度上进行测试,发现并没有实质性的改善。依然很糟糕的识别。

增加数据量

第一个直觉就是要增加数据量,但是由于ccpd中的蓝牌非常多,而绿牌非常的少,一共就1万张左右。因此通过增加数据量或许能够解决蓝牌的识别问题,但是依旧无法解决绿牌的识别问题。因此我pass掉了这个方案。

MixUp数据增强

再次审核代码,感觉数据增强确实有点少,但是对于现在这个特殊的车牌识别,左右顺序是非常重要的,因此不敢做一些几何增强。突然我想到了MixUp数据增强方式,刚好适合我这个项目。Mixup的原理非常简单。将多张图片按照比例粘贴在一起。计算loss的时候,分分计算两种图片的loss,再按照贴图的比例,加权loss。

使用了mixup数据增强之后,测试集的Top1准确率提升到了0.9806,相对于之前的0.9683有1.2个点的提升,看来还是有效果的。然后在之前的三个车牌上做测试,后面两个角度仍然出现了预测错误。

仿射变换数据增强

再次分析训练数据,由于在实际推理的时候,车牌的角度和透视形状往往是千差万别的,那么是否可以利用图像的彷射变换进行数据增强,从而提升精度呢?利用opencv的彷射变换函数,可以很方便的对车牌进行彷射变换,如下图所示:左边为原图,右边为经过彷射变换后的图片。

增加彷射变换之后,最终测试集的Top1准确率为0.9866,比mixup的0.9806提升了0.6个点,看来还是有效果的。然后在之前的三个车牌上做测试,发现第一个和第三个出现了错误。

由于增加mixup以及彷射变换后,都没有增加训练的epoch,理论上增加丰富的数据增强,需要增加epoch数目。于是,我将epoch从9增加到18个。最终的精度为0.991,推理可视化之后,效果非常nice。全部预测正确了。

模糊数据增强

同时考虑到车牌通常会有一些模型的情况,因此对车牌又增加了模糊处理,如下图所示,左边为原图,右边为模糊后的图片。期望能够增加模型的泛化性能。

训练后的最终top1精度0.9885,稍微差了一点,看看推理效果,如下图所示:

真实视频测试

通过上面的各种数据增强,已经训练出了比较好的模型,用之前拍摄的一些真实视频进行测试,发现仍然存在一个车牌被检测出多个不同的车牌号的情况发生。也就是说虽然模型在CCPD数据集里面已经拟合的很好,但是在真实环境下,准确率大大降低!因此不光从数据增强角度。还需要从网络设计等其他方面重新审视我们的车牌识别网络。真是道阻且长,但是不能放弃,坚持!

总结

这一期通过数据增强角度,对车牌识别进行了mixup,彷射变换,模糊处理等,最终在ccpd数据集的测试集上面将top1准确率从0.9683提升到了0.991(提升了2.3个点),但是在实际拍摄的视频中,仍然出现了很多的误检。将一个车牌的不同角度图片识别成很多个不同的车牌。虽然这期没有达到目的,但是也让我们更加清晰的认识到,深度学习项目落地的困难。并不是在公开数据集或者某一个数据集上效果很好,在落地项目中效果也会很棒。还是需要针对具体项目进行具体分析。下一期将会从网络结构等角度重新审视我们的车牌识别项目,敬请期待哦。

我用AI回怼美女汽车销售系列[yolo车牌识别](三)相关推荐

  1. 我用AI回怼美女汽车销售系列[yolo车牌识别](二)

    前期回顾: 在上一期介绍了事情的起因,为什么要做yolo车牌识别,以及最终的网络结构.(链接在这里:(141条消息) 我用AI回怼美女汽车销售系列[yolo车牌识别](一)_cjnewstar111的 ...

  2. 我用AI回怼美女汽车销售系列[yolo车牌识别](五) 完结

    上期回顾 上一期中,我们使用CTC技术,将蓝牌和车牌放在同一个网络里面训练和识别,取得了不错的效果.这一期主要是上路进行相关的统计,一方面检测程序的性能,一方面看看到底新能源车的占比有多少.结果还真是 ...

  3. 我用AI回怼美女汽车销售系列[yolo车牌识别](四)

    上期回顾 上一期中,我们从数据增强角度,对车牌识别进行了mixup,彷射变换,模糊处理等,最终在ccpd数据集的测试集上面将t将top1准确率从0.9683提升到了0.991(提升了2.3个点),但是 ...

  4. 《Mastering Opencv ...读书笔记系列》车牌识别(I)

    一.ANPR简介: Automatic Number Plate Recognition (ANPR),,是一种使用Optical Character Recognition (OCR)和其他分割.检 ...

  5. 华为回怼特朗普;中兴首款 5G 上市;iPhone 可免息分期购买 | 极客头条

    Python这么火,为什么还不学? https://edu.csdn.net/topic/python115?utm_source=csdn_bw 「CSDN 极客头条」,是从 CSDN 网站延伸至官 ...

  6. “我有技术到哪都是一样的”?年薪40W测试工程师被裁,回怼的这一番话,令人沉思

    一位年薪40W测试工程师被开除回怼道:"反正我有技术,在哪不一样" 一技傍身,万事不愁,当我们掌握了一技之长后,在职场上说话就硬气了许多,不用担心被炒,反过来还可以炒了老板,这一点 ...

  7. 一位年薪35W的测试被开除,回怼的一番话,令人沉思

    一位年薪35W测试工程师被开除回怼道:"反正我有技术,在哪不一样" 一技傍身,万事不愁,当我们掌握了一技之长后,在职场上说话就硬气了许多,不用担心被炒,反过来还可以炒了老板,这一点 ...

  8. python 微信机器人自动聊天+回怼表情包+Adidas公众号自动抽签 四、获取表情包中的文字并进行同类型回怼

    前言 在前文自动回怼表情包中, 只是做到爬取表情包存放在本地 ,然后当微信好友发送表情包给你的时候,随机抓取本地一个表情包进行回复.太不灵活 识别表情包中的文字 from __future__ imp ...

  9. 字节老板在群里diss员工:上班时间聊游戏,工作很闲吗?员工回怼:查聊天记录,看聊天时间占工作时间百分比!网友:真·扁平化管理!...

    上班时间聊天是大多数社畜的现状,如果不小心被老板抓包怎么办? 这几天,几张截图在网上火了起来,截图显示这是一个字节跳动的游戏群,某天字节张老板突然在里面说了长长的一段话,内容如下: 看来张老板对员工上 ...

最新文章

  1. OpenCV持久化(二)
  2. Leangoo 6.2.6 版发布
  3. Tomcat参数设置,解决内存溢出问题
  4. 聚类算法 sklearn k_means (返回一维数据的最优聚类)
  5. 深入V8引擎-AST(2)
  6. 12.oauth密码模式identity server4实现
  7. RTX5 | 消息队列01 - 创建消息队列
  8. 关于PreparedStatement.addBatch()方法 (转)
  9. NHibernate使用--环境搭建
  10. (转)对SQLSERVER数据库事务日志的疑问
  11. 软件工程第一次作业——数独的求解与生成
  12. ADS板级PCIE_SI仿真
  13. Idea导入项目及相关环境配置
  14. bmp图片批量改成jpg
  15. JavaScript严格检查模式strict的使用
  16. JPA中@Basic注解详解
  17. chm文件显示“已取消网页导航”的解决办法
  18. 关于‘go list‘ failed with: error obtaining VCS status error obtaining VCS status: exit status 128问题的解决
  19. 毕业设计__系友录ByJavaweb
  20. 2021招银网络提前批笔试编程题C++

热门文章

  1. 设置-关于手机里面硬件版本为空,如何完美甩锅
  2. 【上学吧】绕过验证码,网站答案获取
  3. KiTTY及cnKiTTY中新的可用命令行选项的简单注释
  4. 温老师的论坛,欢迎大家踊跃发言!
  5. 获取字符串长度、字符长度、字节长度
  6. 西门子PLC1200伺服库卡机器人12工位
  7. C语言编程用*号输出字母C的图案。
  8. 李开复:给创新工场求职者的一封信
  9. Python Flask简介请求勾子
  10. 福禄开放平台nodejs版本SDK