【问题标题】:Best approach to build a model to recognise licence plates (ALPR)建立车牌识别模型的最佳方法 (ALPR)
【发布时间】:2017-11-18 20:41:12
【问题描述】:

我正在尝试制作一个深度学习模型,以使用 CNN 等深度学习技术检测和读取车牌。我将在 tensorflow 中制作模型。但我仍然不知道构建此类模型的最佳方法是什么。

我检查过几个这样的模型 https://matthewearl.github.io/2016/05/06/cnn-anpr/

我也检查了一些研究论文,但没有一个显示确切的方法。

所以我打算遵循的步骤是

  1. 使用opencv进行图像预处理(灰度、转换等我对这部分不太了解)

  2. 车牌检测(可能通过滑动窗口法)

  3. 通过构建合成数据集,使用 CNN 进行训练,如上述链接所示。

我的问题

有没有更好的方法来做到这一点?

RNN也可以在CNN之后组合变长数吗?

我应该更喜欢检测和识别单个字符而不是整个盘子吗?

还有很多老方法,他们更喜欢图像预处理和直接传递给 OCR。什么是最好的?

PS- 我想做一个商业实时系统。所以我需要良好的准确性。

【问题讨论】:

  • 如果您希望 CNN 能够在现实生活中的光线、运动、角度和有目的的混淆下读取现实生活中的车牌,那么您将需要大量示例图像数据集。综合数据只会让你到目前为止。就像 Kathy Lee 所建议的那样,构建受约束步骤的管道可能是您最好的选择,但您的系统仅与最薄弱的环节一样强大。如果你的车牌检测只有 97%,那么 97% 就是你的准确率上限。如果你的 CNN 每个字符有 99% 的准确率并且有 8 个字符,那么你的上限准确率为 .99^8 = 92%。
  • 是的,我明白了。我需要一种方法来确保我只从车牌中读取并忽略图像中的其他文本,如招牌或其他东西

标签: opencv tensorflow conv-neural-network anpr


【解决方案1】:

首先,我不认为将 RNN 和 CNN 结合起来可以实现实时系统。如果我想要实时系统,我个人更喜欢检测单个字符,因为车牌上的字符不会超过 10 个。在检测可变长度的车牌时,检测单个字符可能更可行。

在学习深度学习之前,我也尝试过使用 OCR 来检测车牌。就我而言,OCR 速度很快,但准确度有限,尤其是在印版不够清晰的情况下。即使是图像处理也无法挽救一些不清楚的情况......

所以如果我是你,我会尝试如下:

  1. 对整幅图像进行简单的图像预处理
  2. 车牌检测(可能通过滑动窗口法)
  3. 对提取的板件进行图像处理(过滤器和几何变换),使其更加清晰。分隔字符。
  4. 为每个角色部署 CNN。 (也许我会尝试一些短的 CNN,因为它是实时的,例如 MNIST 手写数字数据中使用的 LeNet)(可能需要多线程)

希望我的回答能有所帮助。

【讨论】:

  • 嗯...如何“分隔”字符。在我的国家/地区,数字格式不是静态的。它可以有多种形式,所以我认为滑动窗口方法不能用于检测。我想我需要以某种方式找到白色和黄色的盘子(区域)。但这会在光线较暗的情况下停止工作。
  • 字符分离和车牌检测都需要一些图像处理技术。你可以自己搜索那些。我相信很多论文都与他们有关。可用于字符分隔的一种常用方法是连接组件标签。对于车牌检测,也要先对图像做一些预处理,比如filters,shape dection等。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-12-14
  • 2018-11-20
  • 1970-01-01
  • 2015-09-27
  • 2014-11-04
  • 2014-12-31
  • 1970-01-01
相关资源
最近更新 更多