# Yolov7-LPRNet
基于Yolov7-LPRNet的动态车牌目标识别算法模型
博客地址:https://blog.csdn.net/master_hunter/article/details/133631461
## 数据集
CCPD:https://github.com/detectRecog/CCPD
CCPD是一个大型的、多样化的、经过仔细标注的中国城市车牌开源数据集。CCPD数据集主要分为CCPD2019数据集和CCPD2020(CCPD-Green)数据集。CCPD2019数据集车牌类型仅有普通车牌(蓝色车牌),CCPD2020数据集车牌类型仅有新能源车牌(绿色车牌)。
**在CCPD数据集中,每张图片仅包含一张车牌,车牌的车牌省份主要为皖。CCPD中的每幅图像都包含大量的标注信息,但是CCPD数据集没有专门的标注文件,每张图像的文件名就是该图像对应的数据标注**。
标注最困难的部分是注释四个顶点的位置。为了完成这项任务,数据发布者首先在10k图像上手动标记四个顶点的位置。然后设计了一个基于深度学习的检测模型,在对该网络进行良好训练后,对每幅图像的四个顶点位置进行自动标注。
## 前言
。我见过很多初学目标识别的同学基本上只花一周时间就可以参照案例实现一个目标检测的项目,这全靠YOLO强大的解耦性和部署简易性。初学者甚至只需要修改部分超参数接口,调整数据集就可以实现目标检测了。但是我想表达的并不是YOLO的原理有多么难理解,原理有多难推理。一般工作中要求我们能够运行并且能够完成目标检测出来就可以了,更重要的是数据集的标注。我们不需要完成几乎难以单人完成的造目标检测算法轮子的过程,我们需要理解YOLO算法中每个超参数的作用以及影响。就算我们能够训练出一定准确度的目标检测模型,我们还需要根据实际情况对生成结果进行一定的改写:例如对于图片来说一共出现了几种目标;对于一个视频来说,定位到具体时间出现了识别的目标。这都是需要我们反复学习再练习的本领。
完成目标检测后,我们应该输出定位出来的信息,YOLO是提供输出设定的超参数的,我们需要根据输出的信息对目标进行裁剪得到我们想要的目标之后再做上层处理。如果是车牌目标识别的项目,我们裁剪出来的车牌就可以进行OCR技术识别出车牌字符了,如果是安全帽识别项目,那么我们可以统计一张图片或者一帧中出现检测目标的个数做出判断,一切都需要根据实际业务需求为主。本篇文章主要是OCR模型对车牌进行字符识别,结合YOLO算法直接定位目标进行裁剪,裁剪后生成OCR训练数据集即可。
## 训练步骤
### 1.安装环境
利用Yolo训练模型十分简单并没有涉及到很复杂的步骤,如果是新手的话注意下载的torch版本是否符合本身NVDIA GPU的版本,需要根据NVIDIA支持最高的cuda版本去下载兼容的Torch版本,查看cuda版本可以通过终端输入:nvidia-smi
![f6b17a7a98f748ebaf58ee703f7489ef](https://github.com/Fanstuck/Yolov7-LPRNet/assets/62112487/04881d58-fc8e-4b82-97ae-a3348e0c8e6b)
### 2.修改Yolo配置文件
首先增加cfg/training/yolov7-e6e-ccpd.yaml文件,此配置文件可以参数动态调整网络规模,这里也不展开细讲,以后会有Yolov7源码详解系列,敬请期待,我们需要根据我们用到的官方yolo模型选择对于的yaml文件配置,我这里用的的yolov7-e6e模型训练,所以直接拿yolov7-e6e.yaml改写:
````
# parameters
nc: 1 # number of classes
depth_multiple: 1.0 # model depth multiple
width_multiple: 1.0 # layer channel multiple
````
其中nc是检测个数,depth_multiple是模型深度,width_multiple表示卷积通道的缩放因子,就是将配置里面的backbone和head部分有关Conv通道的设置,全部乘以该系数。通过这两个参数就可以实现不同复杂度的模型设计。然后是添加数据索引文件data/license.yaml:
````
train: ./split_dataset/images/train
val: ./split_dataset/images/val
test: ./split_dataset/images/test
# number of classes
nc : 1
#class names
names : ['license']
````
### 训练模型
前面train,val,test都对应着目录存放的训练数据集。之后修改train.py中的参数或者是直接在终端输入对应的参数自动目录,我一般是习惯直接在defalut下面修改,对应参数修改,一般来说修改这些就足够了:
````
parser.add_argument('--weights', type=str, default='weights/yolo7-e6e.pt', help='initial weights path')
parser.add_argument('--cfg', type=str, default='cfg/yolov7-e6e-ccpd', help='model.yaml path')
parser.add_argument('--data', type=str, default='data/license.yaml', help='data.yaml path')
````
当然也可能出现内存溢出等问题,需要修改:
````
arser.add_argument('--batch-size', type=int, default=16, help='total batch size for all GPUs')
parser.add_argument('--workers', type=int, default=8, help='maximum number of dataloader workers')
````
这两个参数,具体参数根据自己硬件条件修改。
### 推理
这里需要将刚刚训练好的最好的权重传入到推理函数中去。然后就可以对图像视频进行推理了。
主要需要修改的参数是:
````
parser.add_argument('--weights', nargs='+', type=str, default='runs/train/exp/weights/best.pt', help='model.pt path(s)')
parser.add_argument('--source', type=str, default='测试数据集目录或者图片', help='source')
````
有问题的私信博主或者直接评论就可以了博主会长期维护此开源项目,目前此项目运行需要多部操作比较繁琐,我将不断更新版本优化,下一版本将加入UI以及一键部署环境和添加sh指令一键运行项目代码。下篇文章将详细解读LPRNet模型如何进行OCR识别, 再次希望对大家有帮助不吝点亮star~:
没有合适的资源?快使用搜索试试~ 我知道了~
基于Yolov7-LPRNet的动态车牌目标识别算法模型
共91个文件
jpg:36个
py:20个
pyc:17个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 190 浏览量
2024-04-29
18:00:01
上传
评论
收藏 16.8MB ZIP 举报
温馨提示
CCPD是一个大型的、多样化的、经过仔细标注的中国城市车牌开源数据集。CCPD数据集主要分为CCPD2019数据集和CCPD2020(CCPD-Green)数据集。CCPD2019数据集车牌类型仅有普通车牌(蓝色车牌),CCPD2020数据集车牌类型仅有新能源车牌(绿色车牌)。 在CCPD数据集中,每张图片仅包含一张车牌,车牌的车牌省份主要为皖。CCPD中的每幅图像都包含大量的标注信息,但是CCPD数据集没有专门的标注文件,每张图像的文件名就是该图像对应的数据标注。 标注最困难的部分是注释四个顶点的位置。为了完成这项任务,数据发布者首先在10k图像上手动标记四个顶点的位置。然后设计了一个基于深度学习的检测模型,在对该网络进行良好训练后,对每幅图像的四个顶点位置进行自动标注。
资源推荐
资源详情
资源评论
收起资源包目录
Yolov7-LPRNet-main.zip (91个子文件)
JU-Yolov7-LPRNet-main
Yolov7
data
license.yaml 202B
hyp.scratch.custom.yaml 1KB
runs
detect
exp
0275-93_82-352&510_649&606-629&619_349&588_339&500_619&531-0_0_28_28_21_33_29-84-25.jpg 63KB
03-91_90-283&402_600&524-589&515_285&521_296&411_600&405-0_0_22_27_1_24_32-154-73.jpg 69KB
03-92_86-111&425_419&538-427&544_98&523_105&413_434&434-0_0_23_32_32_32_33-137-60.jpg 101KB
labels
03-92_86-111&425_419&538-427&544_98&523_105&413_434&434-0_0_23_32_32_32_33-137-60.txt 39B
03-91_90-283&402_600&524-589&515_285&521_296&411_600&405-0_0_22_27_1_24_32-154-73.txt 38B
0275-93_75-201&483_486&587-491&584_211&566_183&474_463&492-0_0_27_14_28_29_29-93-58.txt 38B
0275-93_82-352&510_649&606-629&619_349&588_339&500_619&531-0_0_28_28_21_33_29-84-25.txt 39B
0275-93_75-201&483_486&587-491&584_211&566_183&474_463&492-0_0_27_14_28_29_29-93-58.jpg 71KB
VOCCCPDlicense
images
try
0275-93_82-352&510_649&606-629&619_349&588_339&500_619&531-0_0_28_28_21_33_29-84-25.jpg 59KB
03-91_90-283&402_600&524-589&515_285&521_296&411_600&405-0_0_22_27_1_24_32-154-73.jpg 65KB
03-92_86-111&425_419&538-427&544_98&523_105&413_434&434-0_0_23_32_32_32_33-137-60.jpg 95KB
0275-93_75-201&483_486&587-491&584_211&566_183&474_463&492-0_0_27_14_28_29_29-93-58.jpg 68KB
utils
google_utils.py 5KB
loss.py 73KB
metrics.py 9KB
autoanchor.py 7KB
general.py 36KB
activations.py 2KB
plots.py 20KB
datasets.py 55KB
__pycache__
general.cpython-37.pyc 27KB
plots.cpython-37.pyc 18KB
datasets.cpython-37.pyc 40KB
autoanchor.cpython-37.pyc 6KB
google_utils.cpython-37.pyc 3KB
metrics.cpython-37.pyc 8KB
torch_utils.cpython-37.pyc 13KB
loss.cpython-37.pyc 41KB
torch_utils.py 15KB
add_nms.py 5KB
models
common.py 82KB
experimental.py 11KB
__pycache__
yolo.cpython-37.pyc 29KB
experimental.cpython-37.pyc 10KB
common.cpython-37.pyc 75KB
yolo.py 39KB
detect.py 9KB
cfg
training
yolov7-e6e-ccpd.yaml 9KB
LICENSE 11KB
LPRNet_Pytorch
weights
Final_LPRNet_model.pth 1.73MB
data
__init__.py 113B
load_data.py 3KB
NotoSansCJK-Regular.ttc 17.88MB
test
苏E9CD08.jpg 3KB
苏A0X3B2.jpg 3KB
沪AMS087.jpg 3KB
京PL3N67.jpg 3KB
沪C21F13.jpg 3KB
苏E5YR23.jpg 3KB
苏A53D97.jpg 3KB
皖A00E66.jpg 2KB
闽D33U29.jpg 3KB
苏BH828L.jpg 3KB
苏G2F335.jpg 2KB
皖A0C911.jpg 2KB
³BE31L9.jpg 2KB
苏E7R5Y0.jpg 3KB
皖A0C333.jpg 3KB
³R8D57Z.jpg 3KB
沪C8GK31.jpg 3KB
川JK0707.jpg 3KB
川X90621.jpg 3KB
苏HXN335.jpg 2KB
苏A8DC31.jpg 2KB
苏B810FT.jpg 2KB
苏A57NT9.jpg 3KB
³AW9V20.jpg 3KB
³Q08F99.jpg 3KB
苏AP48A8.jpg 2KB
苏EYV501.jpg 3KB
苏EW0806.jpg 3KB
__pycache__
load_data.cpython-38.pyc 3KB
load_data.cpython-37.pyc 3KB
__init__.cpython-37.pyc 174B
__init__.cpython-38.pyc 178B
predict_data.csv 479B
.idea
misc.xml 196B
inspectionProfiles
Project_Default.xml 500B
profiles_settings.xml 174B
modules.xml 280B
.gitignore 182B
LPRNet_Pytorch.iml 441B
model
__init__.py 110B
LPRNet.py 4KB
__pycache__
LPRNet.cpython-37.pyc 3KB
__init__.cpython-37.pyc 172B
train.py 10KB
test.py 7KB
README.md 6KB
共 91 条
- 1
资源评论
hakesashou
- 粉丝: 4227
- 资源: 1091
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功