个性化阅读
专注于IT技术分析

如何在Windows中使用Open ALPR(自动车牌识别)从图像中识别车辆牌照

本文概述

OpenALPR是一个用C ++编写的开源自动车牌识别库, 具有C#, Java, Node.js, Go和Python的绑定。图书馆分析图像和视频流以识别车牌。输出是在处理后的图像中识别的任何车牌字符的文本表示。但是, 出于对本文的兴趣, 我们仅使用CLI工具, 它将使与库的交互更加容易, 而无需知道使用此工具需要使用什么编程语言。 OpenALPR包含一个命令行实用程序, 只需键入” alpr [图像文件路径]”就足以开始识别车牌图像!

在本文中, 我们将向你介绍如何在Windows环境中使用此CLI工具轻松识别车牌。

1.下载最新的Open ALPR版本

第一步, 你需要Windows Open ALPR的可执行文件(二进制文件)。幸运的是, 你无需构建它们, 因为你可以在此处从Github的项目的Releases页面轻松下载它们。根据你的体系结构(x86或x64)下载zip后, 将其内容解压缩到某个目录中, 例如, 因为我们将可执行文件的路径添加为Windows中的环境变量, 因此我们只需键入alpr而不是整个可执行文件的路径, 我们将其解压缩到C:\ Program Files \ openalpr_64目录中。

在文件夹中, 你将找到alpr.exe文件, 这是我们在本教程中将使用的CLI实用程序, 因此现在你可以定义可执行文件在Windows PATH中的目录(请参阅本文以了解如何编辑和设置环境变量)或使用绝对路径运行命令, 例如:

"C:\\Program Files\\openalpr_64\\alpr.exe" "C:\\Program Files\\openalpr_64\\demo.jpg"

但是, 如果在路径中注册目录, 该命令将更易于编写:

alpr "C:\\Program Files\\openalpr_64\\demo.jpg"

拥有二进制文件后, 请继续下一步以学习如何使用它。有关ALPR的更多信息, 请访问Github上的官方存储库。

2.从CLI使用

现在有了二进制文件, 你可以切换到可执行文件所在的目录, 在我们的例子中是:

cd C:\Program Files\openalpr_64

然后, 只需运行命令alpr作为第一个参数, 提供要扫描图像的绝对/相对路径:

alpr ./demo.jpg

就是这样, alpr将开始处理给定的图像并在控制台中打印结果:

ALPR车牌识别

指定板区

如你所知, 世界各地有不同种类的车牌, 其长度和分布也不同, 这意味着在某些情况下, alpr需要一些帮助来正确识别标识。这就是为什么你可以指定alpr用来正确识别车牌标识的区域代码的原因, 例如, 如果你尝试识别另一个地区样式的车牌(默认分配为US的欧洲车牌), 则会找到”找不到牌照。”为了避免这种情况, 请在CLI中显示一条消息, 以了解板的区域, 使用-c或–country标志指定值(默认为我们), 以指定代码:

REM An european vehicle
alpr image.jpg --c eu

REM An american vehicle
alpr image.jpg --c us

请参见以下示例:

欧罗巴车牌

注意

尽管世界上每个国家都没有代码, 但是你需要指定代码。通常, 它几乎适用于带有us和eu代码的任何板块, 但是其他有效值包括:us, eu, au, auwide, gb, kr, mx, sg。例如, 在文章的图片中, 我们使用的是哥伦比亚的车辆, 但是美国代码在识别时遵循了类似的模式。

生成输出为JSON

如果你愿意从你的权限中解析应用程序生成的输出, 例如以某种编程语言(如PHP, Node.js, Python等)编写的应用程序, 则可以以通用可读格式(如JSON)检索信息, 只需添加命令的–json标志:

alpr image.jpg --json

带有输出而不是原始文本的CLI工具, 是具有以下结构的JSON结构化对象:

{
  "version": 2, "data_type": "alpr_results", "epoch_time": 1546207403000, "img_width": 768, "img_height": 1024, "processing_time_ms": 33.806999, "regions_of_interest": [], "results": [
    {
      "plate": "KKV939", "confidence": 89.048828, "matches_template": 0, "plate_index": 0, "region": "", "region_confidence": 0, "processing_time_ms": 10.102, "requested_topn": 10, "coordinates": [
        {
          "x": 305, "y": 535
        }, {
          "x": 481, "y": 533
        }, {
          "x": 484, "y": 613
        }, {
          "x": 308, "y": 616
        }
      ], "candidates": [
        {
          "plate": "KKV939", "confidence": 89.048828, "matches_template": 0
        }, {
          "plate": "KKV9S9", "confidence": 80.908226, "matches_template": 0
        }, {
          "plate": "KKV99", "confidence": 78.569084, "matches_template": 0
        }, {
          "plate": "KXV939", "confidence": 75.373528, "matches_template": 0
        }, {
          "plate": "KV939", "confidence": 74.683296, "matches_template": 0
        }, {
          "plate": "KXV9S9", "confidence": 67.232918, "matches_template": 0
        }, {
          "plate": "KV9S9", "confidence": 66.542694, "matches_template": 0
        }, {
          "plate": "KXV99", "confidence": 64.893784, "matches_template": 0
        }, {
          "plate": "KV99", "confidence": 64.203545, "matches_template": 0
        }
      ]
    }
  ]
}

始终欢迎对OpenALPR库进行改进。因此, 请查看OpenALPR设计说明并开始使用。代码贡献不是唯一的帮助方法。你是否拥有大型车牌图像库?如果是这样, 请将你的数据上传到位于upload.openalpr.com上的匿名FTP。你是否有时间在输入图像中”标记”印版图像或以其他方式提供帮助?请在论坛上发布便条, 让大家知道。

编码愉快!

赞(0)
未经允许不得转载:srcmini » 如何在Windows中使用Open ALPR(自动车牌识别)从图像中识别车辆牌照

评论 抢沙发

评论前必须登录!