对于我在大学的最终项目,我正在开发车辆牌照检测应用程序。我认为自己是一名中级程序员,但是我的数学知识在中学以上缺乏任何东西,这使得生成正确的公式比它应该更难。
我花了很多时间查阅学术论文,例如:
说到数学,我迷路了。由于这种测试,各种图形图像被证明是有效的,例如:
到
然而,这种方法仅适用于该特定图像,如果将这些技术应用于不同的图像,我肯定会发生较差的转换。我读过一个名为“底帽形态变换”的公式,它执行以下操作:
基本上,变换保留了图片的所有暗部细节,并消除了其他一切(包括更大的暗区和亮区)。
我找不到很多关于此的信息,但是报告末尾附近的文档中的图像显示了它的有效性。
我需要建议我应该关注哪些转换技术,以及哪些算法可以帮助我。
上的新信息答案 0 :(得分:13)
您可以采取多种方法,但首先要考虑的策略是:
就像我说的那样,这是许多策略中的一种策略,但我想到的是需要最少量的数学运算......就是如果你能找到适合你的OCR实现。
答案 1 :(得分:3)
答案 2 :(得分:3)
以下是我建议您应该执行此任务的方法。阅读我的详细答案here。
应用Sobel滤镜查找垂直边缘。
Sobel(gray, dst, -1, 1, 0)
minAreaRect
。根据纵横比,最小和最大面积选择矩形。adaptiveThreshold
之后从图像中剪切这些检测到的矩形部分并应用OCR。 答案 3 :(得分:1)
它告诉你究竟如何计算底帽变换(看起来像一个倒置的渐变阈值变换给我)。
首先要做的是实现两种形态函数的膨胀和侵蚀。
要做到这一点,你需要你的f和b然后你在一个保持最大值的点上计算图像的一个小区域的函数。
(f ⊕ b)(s, t) = max{f (s − x, t − y) + b(x, y)
|(s − x), (t − y) ∈ Df ; (x, y)∈Db}
这就是说,在域区域中的所有点上取表达式的最大值(例如以点(s,t)为中心的小矩形。
简单的伪代码将是
max = -infinity // for the point (s,t) on the image, must compute this for all points
for(x = -5 to 5)
for(y = -5 to 5)
max = Max(max, f(s - x, t - y) + b(x,y))
实际上我们现在有了一个最大值的新图像。
它实际上非常简单,所以不要让它变得比它更难(我们只是将b(x,y)添加到区域中的每个点并找出哪一个给出最大值)。
你对侵蚀做了同样的事情(非常类似于上面)
现在开幕式和闭幕式是两个
的组成你可以先把它想象为扩张,然后是开口的侵蚀。
它说最后从原始图像中减去结束,你应该进行转换。
答案 4 :(得分:1)
英国已经有一个系统可以做到这一点。我记得看到一个电视节目,他们证明他们可以在10分钟内在伦敦找到一辆车(假设他们知道号码并且汽车正在开车) 阅读维基百科可以为您提供开始思考问题所需的指示: http://en.wikipedia.org/wiki/Automatic_number_plate_recognition
答案 5 :(得分:1)
如果您对检测到牌照的存在感兴趣(而不是识别它),您应该查看图像中的文本检测,因为它与您正在做的事情有关。
答案 6 :(得分:1)
你也可以参考 Automatic License Plate Recognition library& this query。这也将为您提供有关如何处理事物以及现有解决方案的一些想法。
但正如保罗所回答的那样,您应首先尝试从完整图像中找到矩形数字牌,然后将其二值化,然后使用可用的OCR库(建议使用Tesseract)
您可以参考此link,它将帮助您找到矩形板。你需要使用openCV库,所以你不需要很多数学,但是基本了解幕后发生的事情可以帮助你更好地解决问题。
答案 7 :(得分:1)
我建议为此使用服务或第三方。 Open ALPR,提供了一个非常准确的开源软件包。
打开ALPR-https://www.openalpr.com/
视频打开ALPR演示
https://www.youtube.com/watch?v=E-U_H9EbW60
或者您可以使用API-
Macgyver计算机视觉API
https://askmacgyver.com/explore/program/license-plate-recognition/3X5D3d2k
在此API中,您只需向--
有效负载示例
{
id: "3X5D3d2k",
key: "free",
data: {
"image_url": "https://storage.googleapis.com/marketing-files/program-markdown-assets/license-detection/license-plate.jpg",
"country": "us",
"numberCandidates": 2
}
}
上面的图像将返回以下内容-
"plate": "284FH8"
"confidence": 90.601013