基于pytorch的无需分割字符的车牌识别

传统车牌识别

传统的车牌识别需要先检测出车牌,检测出车牌后通过“像素映射”或者“联通区查找”的方法分割出单个的文字,然后单独识别每个文字。传统的车牌识别不仅繁琐,而且切割文字的效果也很难令人满意。因此,能不能绕开字符分割的问题,直接识别车牌中的字符呢?当然可以的。有两种方法:

  1. crnn+ctc
  2. 卷积only

crnn+ctc是自然场景下ocr比较通用的方法,用来识别车牌当然可以的,但是难免有点杀鸡用牛刀了。因为车牌本身是比较特殊的,车牌号码的数量也是基本固定的。

有了这个设想,今天做了简单的尝试,效果很好,因此开源出来和大家交流。源码已上传至github: 

车牌识别, 如果对你有帮助,给个star鼓励下,谢谢!

以下是该项目的简单介绍。

数据集

这个项目中,使用了自动生成训练和识别的车牌,因此,你需要寻找车牌数据集,不需要做任何数据处理,就能轻松愉快的完成车牌识别的训练与预测。

随机生成的车牌示例:

车牌1

一般的车牌检测模型应该都能检测到这个水准,因此这个这牌是比较接近真实情况下的车牌的。

模型

神经网络

使用

第一步:生成训练和测试数据集  
    cd generateCarPlate
    python3 genCarPlate.py

第二步:训练
    cd pytorch_model
    python3 train.py 30 0.0001

30是在训练集训练的次数,)0.0001是学习速率  
第三步:测试
    python3 test.py

将会输出准确率,我训练的car_plate_javer.pt模型能达到98.2的准确率(由于训练和测试数据集都是随机生成的,因此可能不同人测试有差异)。
这个准确率不算高,由于我的笔记本算力有限,没能进一步训练更大、更好的模型,不过我想,这个项目已足以证明不分割直接识别车牌的可行性

 

 

发布了116 篇原创文章 · 获赞 247 · 访问量 54万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章