Raspberry Pi车牌识别系统

在这个项目中,您将学习如何使用Raspberry Pi和Node-RED构建汽车识别系统。 在此项目中,我们将使用自动许可位置识别的软件,该软件具有一个API,可用于基于图像识别车牌和车型。

介绍

该项目分为两个部分。

  • 首先,我们将使用车牌识别库和Node-RED确定一辆汽车
  • 然后,我们将基于检测到的汽车触发事件(例如,当检测到您的汽车回家时打开车库);

下图显示了检测过程的工作方式:

在此示例中,我们使用PIR运动传感器来检测汽车是否到了家。还有其他一些传感器可能更适合检测汽车,例如:

  • 霍尔效应传感器:感应在汽车靠近时的磁场变化;
  • 超声波传感器:检测到物体的距离
  • 有源红外探测器:通过检测红外光的反射来检测物体的存在

识别汽车后,我们将进行一些验证,如果找到授权的汽车,我们将触发一个事件(例如,可以在车库中打开)。 下图包含显示该过程的流程图。

这就是发生的情况:确定了汽车后,我们将检查车牌和汽车型号是否匹配。 如果匹配,我们将检查汽车是否在授权车辆列表中。 如果是这样,我们将触发一个事件。 例如:打开车库。 之后,我们要等待一段确定的时间,直到汽车进入车库。 然后,您需要添加多个验证以检查汽车是否已经进入车库。 如果是,您可以关闭车库。

零件需求

连接Raspberry Pi相机模块

关闭Pi后,如下图所示将相机连接到Pi CSI端口。 确保以正确的方向连接相机,使带状蓝色字母朝上.

您还应该在Pi中安装Node-RED,并安装node-red-contrib-camerapi节点:

原理图

组装电路以测试该项目。请遵循以下示意图:

准备好Raspberry Pi并配置Node-RED软件后,您可以继续执行此项目。

车牌识别库

创建免费账户

您可以创建一个免费帐户。完成帐户创建后,您应该可以访问以下页面:

打开Cloud API标签以访问您的密钥。您需要它来向API发出请求。

将您的密钥保存在安全的地方,因为您很快就会需要它。

测试摄像头和服务

首先,您应该首先使用Pi Camera和服务识别您的汽车。 因此,从提供的示例流程开始,该示例流程会拍照并向Cloud API发出请求以识别您的汽车。 要导入提供的Node-RED流,首先复制提供的代码。

接下来,在右上角的Node-RED窗口中,选择菜单,然后转到Import> Clipboard。

然后,粘贴提供的代码,然后单击导入。下一个节点应显示在您的流中:

配置测试流

导入流后,您需要进行一些更改以使其适合您。打开“拍照”节点:

编辑节点,使其具有下图所示的相同设置:

  • 文件名:car-photo.jpeg
  • 文件默认路径:否
  • 文件路径:/ home / pi / Pictures /

重要提示:有时上一个节点可能会覆盖默认设置。确保您再次检查其设置正确。然后,单击部署按钮。

准备您的Cloud API请求

双击cURL POST节点:

然后,更改“命令”字段以包括您的密钥和国家/地区代码:

默认情况下,它应具有以下命令:

添加您之前检索的密钥和国家/地区代码:

将确切的命令复制并粘贴到cURL POST节点的“命令”字段中,然后按Node-RED软件中的“部署”按钮以使所有更改生效:

测试流

部署流程后,让我们测试一下汽车识别过程。将汽车移到可以使用Raspberry Pi拍照的地方:

将相机对准汽车,然后点击时间戳节点旁边的方块以触发流程。

那应该用您的Pi相机拍照,将其保存在/home/pi/Pictures/car-photo.jpeg并向云API发出请求以识别您的车牌和型号。它应该在“调试”窗口中打印JSON响应。

理解响应

打开调试窗口,您应该看到一个对象,其中包含有关JSON响应的所有详细信息。 结果数组应至少有一个结果(数组[1]),否则它可能正在分析没有汽车的照片或无法识别汽车(确保在拍照时将Pi Camera指向汽车) )。

单击结果旁边的箭头:array [1]展开对象。您应该在车板上看到一个板物体。以API检索的格式保存车牌。就我而言,它是“ 61CP–”。您稍后需要使用它来识别您的汽车:

展开车辆对象> make_model> 0:对象,您应该看到您的汽车名称以及API如何识别汽车模型。 在我们的案例中,它以77.2%的置信度将该汽车确定为Toyota Yaris。 我们应该保存由API检索的确切字符串“ toyota_yaris”,因为在下一个流程中需要它。 以API检索的格式保存您的汽车模型。

如果您的响应返回无效结果,请确保仔细检查以下详细信息:

  • ``拍摄照片’'节点将照片存储在正确的文件路径中:/ home / pi / Pictures /
  • 确保相机拍摄的照片不错(访问/home/pi/Pictures/car-photo.jpeg的Raspberry Pi Pictures文件夹,查看所拍摄的照片是否看起来不错)
  • 查看照片中是否可见汽车和车牌,否则API可能无法正确识别汽车
  • 确保在cURL POST命令中使用自己的API密钥和国家/地区代码输入了正确的命令

车牌识别系统流程

在这一部分中,我们将汽车检测和事件触发添加到流程中。 当检测到运动时,Pi相机会使用Pi相机拍摄照片并发出请求。 然后,根据响应,它将触发一个事件(在这种情况下,我们将打开一个输出以点亮LED)。

要导入提供的Node-RED流,复制提供的代码。

接下来,在右上角的Node-RED窗口中,选择菜单,然后转到Import> Clipboard。

然后,粘贴提供的代码,然后单击导入。下一个节点应在您的流中加载:

配置流程

导入流后,您需要进行一些更改以使其适合您。打开“拍照”节点:

编辑节点,使其具有下图所示的相同设置:

  • 文件名:car-photo.jpeg
  • 文件默认路径:否
  • 文件路径:/ home / pi / Pictures /

准备您的Cloud API请求

双击cURL POST节点:

然后,更改“命令”字段以包括您的密钥和国家/地区代码:

默认情况下,它应具有以下命令:

添加您之前检索的密钥和国家/地区代码:

将您的汽车详细信息添加到流程中

打开功能节点“识别汽车”以添加汽车的车牌和型号。

您需要用自己的车牌和型号名称(与前面检索的格式完全相同)替换carPlate和carModel变量。在我们的例子中,我们得到:

下图显示了应在功能节点上添加车牌和模型的位置:

注意:如果要添加另一个车牌,则需要编辑“识别车”功能。声明另一个carPlate2和carModel2:

然后,在else if语句之后,添加以下内容:

添加完汽车详细信息后,按完成,然后单击部署按钮:

现在,当汽车到达时,PIR传感器会检测到运动,Pi相机会拍照,然后使用OpenALPR API识别汽车。

您的Node-RED应该标识您的汽车牌照和汽车型号。然后,它将触发一个事件:它将GPIO 17打开几秒钟,然后关闭。这模拟了打开/关闭车库门命令。

详情参阅 - 亚图跨际

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值