项目主页:https://github.com/zeusees/HyperLPR

1 C++中端到端的字符识别方法

此部分C++代码在HyperLPR-master\Prj-Win中test_segmentationFree.cpp、SegmentationFreeRecognizer.h、SegmentationFreeRecognizer.cpp、Pipeline.h,模型文件是\HyperLPR-master\Prj-Linux\lpr\model中SegmenationFree-Inception.caffemodel、SegmenationFree-Inception.prototxt。

1.1 模型网络结构

C++代码中的模型是用caffe实现的,在现有代码中,没有模型网络结构和模型训练,只给出了训练好的模型文件,所以如果要重新训练,需实现模型网络结构。模型网络结构详见SegmenationFree-Inception.caffemodel,模型的输入shape为 3 * 160 *40,输出shape为1 * 84 * 20(此模型能够识别长度可变的车牌字符,且python中端到端的字符识别采用ctc loss作为损失函数,后处理过程与ctc loss也极为相似,但没看见此模型的训练代码,只能猜测此模型是用ctc los训练)。如图:

1.2 测试结果

经过测试,该模型能够识别蓝牌和绿牌等长度可变的车牌,性能较好。用CCPD数据集测试结果如下:

2 python中端到端的字符识别方法

此部分测试的python代码在HyperLPR-master中demo.py、HyperLPRLite.py;此部分训练的python代码在hyperlpr-train-master中main.py。

2.1 模型网络结构

python代码中端到端的字符识别方法有两种:第一,ocr_plate_all_w_rnn_2.h5模型,此模型有训练代码(详见main.py,用keras实现),模型的输入shape为? * 160 * 40 * 3,输出shape为? * 16 * 1 * 84,损失函数为ctc loss。第二,ocr_plate_all_gru.h5模型,此模型是在ocr_plate_all_w_rnn_2.h5模型的基础上加入GRU单元,性能最好但无法转换成tensorRT模型。ocr_plate_all_w_rnn_2.h5模型的网络结构如下所示:

'''
功能:构建端到端车牌识别的网络结构
参数:width 输入图像宽度,模型中取160num_channels 通道,模型中取3
return:模型的输入和输出tensor
'''
def build_model(width, num_channels):input_tensor = Input(name='the_input', shape=(width, 40, num_channels), dtype='float32')x = input_tensorbase_conv = 32for i in range(3):x = Conv2D(base_conv * (2 ** (i)), (3, 3), padding="same")(x)x = BatchNormalization()(x)x = Activation('relu')(x)x = MaxPooling2D(pool_size=(2, 2))(x)x = Conv2D(256, (5, 5))(x)x = BatchNormalization()(x)x = Activation('relu')(x)x = Conv2D(1024, (1, 1))(x)x = BatchNormalization()(x)x = Activation('relu')(x)x = Conv2D(NUM_CHARS+1, (1, 1))(x)x = Activation('softmax')(x)y_pred = xreturn input_tensor, y_pred

2.2 ocr_plate_all_w_rnn_2.h5模型训练

以CCPD数据集作为训练数据集,目前得到ctc loss的值为0.01,训练速度很慢。

车牌字符识别HyperLPR中端到端的字符识别方法相关推荐

  1. 基于深度学习的端到端的车牌检测与识别

    论文题目:Towards End-to-End Car License Plates Detection and Recognition with Deep Neural Networks 摘要: 对 ...

  2. 基于u-net,cv2以及cnn的中文车牌定位,矫正和端到端识别软件

    本文链接:https://blog.csdn.net/qq_32194791/article/details/106748685,转载请注明出处 完整项目已上传至github: https://git ...

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

    介绍 前一篇介绍了车牌的角点定位,这一篇就到端到端识别车牌了 1.粗定位 2.角点检测矫正 3.端到端识别字符 本文介绍第三步,端到端识别车牌,思路和前一篇中的角点检测一样,通过 caffe 实现多标 ...

  4. 利用 AssemblyAI 在 PyTorch 中建立端到端的语音识别模型

    作者 | Comet 译者 | 天道酬勤,责编 | Carol 出品 | AI 科技大本营(ID:rgznai100) 这篇文章是由AssemblyAI的机器学习研究工程师Michael Nguyen ...

  5. 端到端加密(E2EE)技术分析:在移动应用中实现安全通信的利器

    什么是端到端加密? 实际上,我们可以将端到端加密(E2EE)视作一种目前比较安全的通信系统.在这个系统中,只有参与通信的双方用户可以读取通信数据.不仅网络犯罪分子无法窃听到这种通信信息,甚至连互联网服 ...

  6. flask项目中无法更改端口号

    flask项目中无法更改端口号 app.run(port=8000) 问题 启动后是 127.0.0.1:5000 解决方法

  7. 独家 | 构建端到端数据科学项目,从我的Data Scientist Ideal Profiles项目中学习(附链接)...

    翻译:张睿毅 校对:吴金笛 本文约1500字,建议阅读5分钟. 本文为你介绍了构建数据科学项目中重要的思维能力及训练建议. Joseph Barrientos 拍照于 Unsplash (链接:htt ...

  8. Qt中TCP服务端编程

    文章目录 1 Qt中的TCP服务端编程 1.1 TCP服务端编程介绍 1.2 Qt中的TCP服务端编程 1 Qt中的TCP服务端编程 1.1 TCP服务端编程介绍 网络中的服务端: 服务端是为客户端服 ...

  9. 机器学习中什么是端到端的训练方法(端到端学习)?(end2end learning)

    相对于深度学习,传统机器学习的流程往往由多个独立的模块组成,比如在一个典型的自然语言处理(Natural Language Processing)问题中,包括分词.词性标注.句法分析.语义分析等多个独 ...

最新文章

  1. ASP绕过防注入的新思路
  2. python课程水平测试成绩查询_学业水平测试成绩查询
  3. latex强调/重音符号
  4. 记录SpringBoot集成Shiro使用Redis作缓存遇到的一个问题(Key-Value)互换
  5. java虚拟机性能监控调优及原则
  6. java 关闭语句_java.sql.SQLRecoverableException: 关闭的语句
  7. 2019蓝桥杯省赛---java---C---5(最大降雨量)
  8. 【英语学习】【Daily English】U14 Transportation L03 Sorry for keeping you waiting
  9. [Ext JS]5.8 Group Grid-分组网格
  10. 三调 图斑地类面积_关于三调,国土空间规划中至少需要这些知识
  11. 电流(或电压)的平均值与有效值
  12. 聊一聊,android程序员前景如何
  13. pythonscrapy爬虫ip代理池_Scrapy 框架插件之 IP 代理池
  14. Nginx 400 Bad Request: The plain HTTP request was sent to HTTPS port
  15. 如何应对微软的强制黑屏(转)
  16. ctf题库--天下武功唯快不破
  17. R语言 重命名指定列
  18. 汽车充电桩的功能有哪些
  19. 【iOS】Sign in with Apple
  20. 时尚新享受,告别鼠标手

热门文章

  1. 计算机硬件软件资料,计算机硬软件资料
  2. Unity两个物体发生碰撞的条件
  3. Osmo Pocket 分辨率、帧率怎么设置?什么是4k分辨率?ccd和cmos像素都一亿了,为啥视频分辨率才4k?
  4. Unix, Linux 和MacOS
  5. SendMessage 用法详解及消息详解
  6. ftp服务器账号,Serv-U中的FTP服务器账号管理
  7. 2023整装待发,开启新的征程
  8. Python之Paramiko、前端之html学习_Day14
  9. REDIS实践之在线人数统计几种方案分析
  10. 解决socket连接超时问题