FakeLPR车牌识别(3) ----- 车牌端到端识别

介绍

前一篇介绍了车牌的角点定位,这一篇就到端到端识别车牌了

1.粗定位

2.角点检测矫正

3.端到端识别字符

 

本文介绍第三步,端到端识别车牌,思路和前一篇中的角点检测一样,通过 caffe 实现多标签分类来识别车牌


主要步骤

1.生成训练数据和lmdb文件

# 从项目主目录里
cd train/datasets

# 生成端到端车牌检测训练数据
python creat_e2e_data.py

# 生成端到端车牌检测lmdb文件
python creat_e2e_lmdb.py

2.启动训练

# 从项目主目录里
cd train
sh ./train_e2e.sh

以上两步就可以训练出端到端车牌检测模型,模型文件保存在 .../FakeLPR/train/e2e_snapshot

下面详细介绍一下


生成车牌数据

cd 到 train/datasets 文件夹

# 项目目录里
cd train/datasets

运行  creat_e2e_data.py 生成角点检测训练数据

# 生成角点检测训练数据
python creat_e2e_data.py

生成的数据长这样

FakeLPR车牌识别(3) ----- 车牌端到端识别_第1张图片

脚本实际上就是把前一步 keypoint 得到的结果保存下来,具体的可以看代码

还可以替换成自己的角点检测模型,在 .../FakeLPR/train/datasets/models/keypoint.caffemodel


生出e2e车牌检测 LMDB 文件

运行  creat_e2e_lmdb.py 生成角点检测训练用的两个lmdb文件

# 生成端到端车牌检测lmdb文件
python creat_e2e_lmdb.py

生成的 lmdb 文件存在 .../FakeLPR/train/datasets/lmdb 文件夹下,两个 lmdb 也是分别对应着数据和标签

因为在 keypoint 中生成的数据包含了车牌信息,我们直接读取就行了,矫正车牌的文件名没有变

和前面 keypoint 一样的,先将车牌信息生成 e2e_label.txt ,再生成 lmdb 文件

FakeLPR车牌识别(3) ----- 车牌端到端识别_第2张图片

文件名和7个字符对应的类别

同样,这里也可以用你自己的真实车牌图片,生成 e2e_label.txt ,再生成 LMDB 来训练

 

其他说明:

类别分别是

第1个字符——省份:31类

第2个字符——城市:24类 (24个英文字符,I/O 除外)

第3-7个字符——其他字符:34类 (24个英文字符和 0-9)


训练

启动训练

# 从项目主目录里
cd train
sh ./train_e2e.sh

模型文件保存在 .../FakeLPR/train/e2e_snapshot

 

模型调用和前面的差不多,代码在 .../FakeLPR/py2/e2e_char.py 中


结束

到这里就结束,训练过程也完了,过程并不复杂,容易实现并自行修改

如果有朋友用真实车牌训练了这个项目,请告诉我一下结果怎么样

希望这个项目对你有帮助,有问题也可留言

 

FakeLPR车牌识别(3) ----- 车牌端到端识别_第3张图片            FakeLPR车牌识别(3) ----- 车牌端到端识别_第4张图片

(打赏个鸡腿吧)

FakeLPR车牌识别(3) ----- 车牌端到端识别_第5张图片

(没有鸡腿也行,那就关注下我的公众号吧,不是技术号哦)

 

你可能感兴趣的:(caffe,opencv,LPR)