2017-06-16 91 views
0

我正在尝试使用像CNN这样的深度学习技术来检测和读取车牌号码的深度学习模型。我将在张量流中建立一个模型。但我仍然不知道构建这种模型的最佳方法是什么。构建识别车牌模型的最佳方法(ALPR)

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

我也查了一些研究论文,但没有显示具体的方式。

所以我就准备要遵循的步骤是

  1. 图像使用OpenCV的预处理(灰度,转换等我不知道很多关于这部分)

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

  3. 使用CNN通过构建合成数据集来训练,如上面的链接。

我的问题

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

RNN也可以结合CNN后的可变长度数字吗?

我应该更喜欢检测和识别个别字符,而不是整个板块?

有许多老方法喜欢图像预处理和直接传递到OCR.What会是最好的?

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

+0

如果您希望CNN能够在真实的光照,移动,角度和故意混淆的情况下阅读真实生活中的车牌,那么您将需要大量的示例图像数据集。综合数据只会让你到目前为止。就像凯西李建议的那样,建立一系列约束步骤可能是你最好的选择,但是你的系统只能和最薄弱的环节一样强大。如果您的牌照检测只有97%,那么97%是您的准确度上限。如果您的CNN每个字符的准确率为99%,并且有8个字符,那么您的上限精度为.99^8 = 92%。 – Wontonimo

+0

是的,我明白了。我需要一种方法来确保我只是从号码牌中读取,忽略图像中的其他文本,如招牌或其他东西 –

回答

0

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

在我学会深度学习之前,我也尝试过使用OCR来检测钢板。在我的情况下,OCR速度很快,但精度有限,特别是当版面不够清晰时。即使图像处理无法施救一些不清楚的情况下.......

所以,如果我是你,我会尝试如下:整个图像

  • 车牌检测上

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

    希望我的回答能帮上忙。

  • +0

    那么......如何“分隔”字符。并且这里以我的国家/地区号码格式不是静态的。它可以有很多形式,所以我不认为滑动窗口方法可以用于检测。我需要以某种方式找到我猜想的白色和黄色的盘子(区域),但是那样会在较低的光线下停止工作。 –

    +0

    字符分离和版检测需要一些图像处理技术。你可以自己搜索那些。我相信很多论文都与他们有关。一种可用于字符分离的常用方法是连接组件标签。对于平板检测,首先对图像进行一些预处理,如滤波器,形状检测等。 –