基于深度学习的车牌检测识别(Pytorch)(ResNet +Transformer)

 
 

点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

车牌识别

概述

基于深度学习的车牌识别,其中,车辆检测网络直接使用YOLO侦测。而后,才是使用网络侦测车牌与识别车牌号。

车牌的侦测网络,采用的是resnet18,网络输出检测边框的仿射变换矩阵,可检测任意形状的四边形。

车牌号序列模型,采用Resnet18+transformer模型,直接输出车牌号序列。

数据集上,车牌检测使用CCPD 2019数据集,在训练检测模型的时候,会使用程序生成虚假的车牌,覆盖于数据集图片上,来加强检测的能力。

车牌号的序列识别,直接使用程序生成的车牌图片训练,并佐以适当的图像增强手段。模型的训练直接采用端到端的训练方式,输入图片,直接输出车牌号序列,损失采用CTCLoss。

一、网络模型

1、车牌的侦测网络模型:

网络代码定义如下:

1e0a354edda5117fb2ae3e0f070e2fc7.png

该网络,相当于直接对图片划分cell,即在16X16的格子中,侦测车牌,输出的为该车牌边框的反射变换矩阵。

2、车牌号的序列识别网络:

车牌号序列识别的主干网络:采用的是ResNet18+transformer,其中有ResNet18完成对图片的编码工作,再由transformer解码为对应的字符。

网络代码定义如下:

54683dae69609ade1c1f35d21af76dee.png

d5bd72c86ef3b539863ee2c3e9320c69.png

其中的Block类的代码如下:

c7f23295a7b998a8129eb64b3dd5aa0e.png

807ae4bb6652428d9ce11341b9195f6c.png

位置编码的代码如下:

618c126f536f2508b1489b1f2233b314.png

Block类使用的自注意力代码如下:

958da6a22a55fdf5c7cdff9019413605.png

57daa5f77086ca00774446405b494076.png

930ef027aac9b218dd18be39d0aa43f1.png

二、数据加载

1、车牌号的数据加载

同过程序生成一组车牌号:

3556e5ce0ef605243f0e8b862748ccd9.png

再通过数据增强,

主要包括:

aae78d4ef72e922bc3f678af184287d2.png

bfc6a3a9887286c45ab00fa21627b4e3.png

47c997b2622f753f173de3a255382aaa.png

三、训练

分别训练即可

其中,侦测网络的损失计算,如下:

96c29dd658b95d28a0c80cd7b20a9792.png

bf9bfbfa216ab23d198ad3664070a232.png

侦测网络输出的反射变换矩阵,但对车牌位置的标签给的是四个角点的位置,所以需要响应转换后,做损失。其中,该cell是否有目标,使用CrossEntropyLoss,而对车牌位置损失,采用的则是L1Loss。

四、推理

1、侦测网络的推理

按照一般侦测网络,推理即可。只是,多了一步将反射变换矩阵转换为边框位置的计算。

另外,在YOLO侦测到得测量图片传入该级进行车牌检测的时候,会做一步操作。代码见下,将车辆检测框的图片扣出,然后resize到长宽均为16的整数倍。

4cd57754bdaee6b8cf450f72123f6f6e.png

2、序列检测网络的推理

对网络输出的序列,进行去重操作即可,如间隔标识符为“*”时:

8bb35f0ab6c1acbea69d4490d374ad78.png

完整代码

https://github.com/HibikiJie/LicensePlate

原文地址

https://blog.csdn.net/weixin_48866452/article/details/120319588

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。


下载2:Python视觉实战项目52讲
在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。


下载3:OpenCV实战项目20讲
在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。


交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值