当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]它的工作原理是:捕获印版图像,对其进行处理以隔离印版区域,然后应用光学字符识别(OCR)将印版字符图像转换为数字文本数据。这些数据通常用于执法(识别被盗车辆或交通违规)、收费、停车管理、交通监控和安全区域的访问控制等应用。

智能监控:自动车牌识别系统,用于智能交通和安全系统,具有实时车辆洞察

什么是ANPR系统

自动车牌识别(ANPR)系统是一种使用专用摄像头和软件从图像或视频流中自动检测、读取和记录车辆车牌的技术。

它的工作原理是:捕获印版图像,对其进行处理以隔离印版区域,然后应用光学字符识别(OCR)将印版字符图像转换为数字文本数据。这些数据通常用于执法(识别被盗车辆或交通违规)、收费、停车管理、交通监控和安全区域的访问控制等应用。

世界各地的牌照

世界各地的汽车牌照差异很大,反映了政府法规、用途和设计美学的差异。一般来说,车牌可以根据功能分为几种类型:私人车辆号牌、商业号牌、外交号牌、军用号牌和临时或过境号牌。在许多国家,出租车、出租车辆、警察和公共交通工具都有专用车牌。它们通常在背景颜色、字母数字格式、前缀或符号方面有所不同。

例如,在印度,私家车使用白色背景和黑色字母,而商用车辆使用黄色车牌和黑色文字。同样,在英国,外交车牌有一个明显的“D”或大使馆代码,而在美国,军用车牌通常带有各自武装部队的标志。

在设计方面,盘子的形状、大小和字体各不相同。欧盟国家通常使用左边有蓝色欧盟带的标准化车牌,而北美车牌则更加多样化,通常包括州/省名称和独特的图形元素。像日本这样的一些国家使用汉字和彩色车牌来指示车辆类别和发动机大小。

此外,随着科技的兴起,一些地区已经开始试验数字车牌,这些车牌可以电子更新,并可以集成跟踪或防盗功能。这些全球性的变化使得车牌识别系统在计算机视觉领域尤其具有挑战性和吸引力。

项目的灵感

你有没有想过,一个口袋大小的设备是否可以识别汽车号牌并将结果发送到云端?随着边缘计算和AI api(如Gemini)的蓬勃发展,现在可以在没有繁重GPU设置的情况下构建ANPR系统。我想将谷歌的Gemini AI的强大功能与DFRobot的紧凑型ESP32-S3 AI相机模块结合起来,构建一个便携式、低成本、实时的车牌检测系统。

现有的技术

在深入研究之前,让我们看看传统的ANPR系统是如何工作的:

我们这个项目的实现属于最后一类-边缘相机+云AI,在成本,可移植性和性能方面取得了很好的平衡。

介绍

该项目采用DFRobot的ESP32-S3 AI摄像头模块和谷歌Gemini Vision API,是一款智能、经济高效的自动车牌识别(ANPR)系统。它捕获车辆图像,使用基于云的人工智能处理它们,并可选择将识别的车牌数据与时间戳和Base64图像一起发送到Firebase。

与传统的树莓派或繁重的Linux环境不同,它使用一个支持摄像头的微控制器,几乎可以在边缘运行所有东西。

我非常感谢DFRobot为我提供了他们出色的硬件,并支持我的项目构想与ESP32-S3 AI相机模块

现在让我们详细看看项目的实现。

在这个项目中,我们将使用以下设备——ESP32-S3 AI Camera Module

ESP32-S3 AI摄像头模块-(视频由DFRobot提供和提供)

设备带组件

ESP32-S3 AI Camera是一款基于高性能ESP32-S3芯片的尖端智能摄像头模块,旨在实现高效的视频处理、边缘AI和语音交互。它具有广角红外摄像头,板载麦克风和扬声器,非常适合电子窥视孔,婴儿监视器和车牌识别等应用。

人工智能助手

凭借强大的人工智能处理能力,它无缝集成到物联网生态系统中,通过Wi-Fi连接支持边缘图像识别和在线人工智能模型交互,使其成为物联网应用的重要组成部分,从安全监控到人工智能助手。

ESP32-S3 AI摄像头模主要特性

•处理器:Xtensa®双核32位LX7微处理器,240 MHz

•内置OV3660 300万像素摄像头。

•16mb闪存,8MB PSRAM平滑图像捕获

•机载麦克风和工具包配有扬声器

•USB: USB 2.0 OTG全速接口

•SD卡插槽

•ALS: lr -308环境光传感器

•4个LED用于IR:红外线照明

相机规格

ESP32-S3 AI camera上的广角红外摄像头,结合红外照明和光传感器,即使在低光或完全黑暗的情况下,也能确保出色的图像清晰度。无论白天还是夜晚,ESP32-S3 AI Camera都能保证监控画面的稳定性和清晰度,为安防和监控系统提供可靠的支持。

•传感器型号:OV3660

•像素:300万像素

•灵敏度:可见光,940nm红外线

•视野:160°

•焦距:0.95

•光圈:2.0

•失真:< 8%

这都是关于这个很棒的硬件。你可以在它的维基页面上了解更多。他们解释了详细的细节,功能,规格,引脚,入门指南等。

开始使用DFRobot ESP32-S3 AI相机

查看我们在Hackster上的博客文章,了解有关ESP32-S3 AI相机模块的更多信息。

项目运作

现在让我们看看这个项目是如何运作的。以下是重要的步骤

•捕获:ESP32-S3使用板载OV3660传感器捕获图像。

•Encode:将图像转换为Base64格式。

•AI检测:向Gemini Vision API发送请求,检测并提取车牌号码。

•验证:逻辑滤波和验证输出,以确保板的质量。

•存储(可选):将结果与日期/时间和图像一起推送到Firebase Realtime DB。

•重复:每20秒周期性运行一次。

在这个项目中,ESP32-S3 AI摄像头捕获车辆图像并将其转换为base64编码的字符串,然后将其嵌入到JSON有效载荷中,并伴有请求提取车牌的自然语言提示。此有效负载通过HTTP POST请求发送到b谷歌的Gemini API (generateContent端点)。Gemini API处理图像并返回json格式的响应,其中提取的车牌(或相关消息)在嵌套的文本字段中找到。ESP32然后使用ArduinoJson解析这个JSON响应,提取纯文本号牌,如果有效,将其记录下来或将其发送到Firebase进行存储和进一步监控。

在这个项目中,我们需要以下软件组件-

•Arduino IDE(带ESP32板包)

•用于图像理解的Gemini Vision API

•Firebase实时数据库(可选)

图书使用:

•Wi-Fi - Wi-Fi连接

•h - REST API通信

•ArduinoJson.h - JSON解析

•esp_camera.h -摄像头接口

•time.h -通过NTP同步日期和时间

获得Gemini API密钥

为什么我们Gemini API ?

Gemini API是自动车牌识别(ANPR)系统的智能核心。虽然ESP32-S3 AI相机可以捕获高质量的图像,但它缺乏准确执行光学字符识别(OCR)和解释复杂图像数据所需的计算能力和深度学习模型。Gemini通过使用其强大的多模式功能来分析图像、理解内容和提取车牌文本,填补了这一空白。与传统的OCR库不同,Gemini利用先进的视觉语言模型健壮而灵活地执行这项任务——所有这些都来自一个简单的API请求。它只需一个HTTP调用就可以将原始图像转换为可操作的洞察(车牌),使其成为低功耗边缘设备的理想选择。

Firebase实时数据

为什么我们需要Firebase时数据库?

Firebase实时数据库作为一个安全的、基于云的存储系统,用于记录和监控检测到的车牌以及相关的时间戳和图像。由于ESP32是一种瞬时设备,板载内存有限,没有持久存储,因此Firebase可以确保保留有价值的检测数据,以供将来参考、分析或警报系统使用。它允许多个利益相关者(如管理员、安全人员或应用程序)从任何地方实时访问数据。此外,Firebase与其他谷歌服务无缝集成,并提供可扩展性,使其成为在智能停车、访问控制或监视场景中部署该项目的理想后端。

代码

一旦你得到Gemini API Key和Firebase数据库(Realtime)的URL,然后将它们输入到代码中。

你还需要输入你的WiFi证书。

对于Firebase数据库实现-我们将其保留为可选的。

如果不想使用Database,可以将上述定义设置为false。

如果您使用谷歌Firebase Database -那么不要忘记输入正确的URL

在上面的URL中不要忘记添加data.json

在Firebase实时数据库中,只有在通过REST API访问数据库时才需要URL末尾的.json,这正是ESP32使用HTTPClient所做的。这是在你的台词里的意思:

Data指的是要在数据库中存储数据的节点或路径。您可以输入任何名称。例如:numberplate。Json或车牌。json等

.json是Firebase REST API指定发送或接收json格式数据所必需的。

这个URL告诉Firebase:

“访问数据库根节点中的数据,并将请求体视为JSON。”

NTP定设置

以上代码以秒为单位设置与GMT/UTC的时区偏移量。值为0表示您正在使用GMT/UTC时间(没有偏移)。

所以对于印度,我们遵循印度标准时间(IST),即UTC +5小时30分钟。

所以把它设为印度,把5小时30分钟换算成秒:

这确保您的ESP32将同步并显示正确的当地时间为印度时,使用NTP服务器。

代码的解释

项目代码运行在DFRobot ESP32-S3 AI Camera模块上,并使用谷歌的Gemini API执行自动车牌识别(ANPR)。它首先连接到Wi-Fi,并通过NTP同步实时时钟。相机用正确的GPIO引脚初始化,并定期捕获图像

每个图像都是base64编码的,并作为HTTP POST请求的一部分发送给Gemini API,并提示它检测车辆的车牌。

响应从JSON中解析,如果提取出有效的车牌号,代码将检测时间和车牌号记录到串行监视器中。如果启用了Firebase集成,结果(车牌号码、时间戳和图像)也会发送到Firebase实时数据库。这为实时车辆监控和记录创造了一个紧凑但智能的边缘人工智能管道。

当ESP32使用generateContent端点(例如,对于模型Gemini -2.0-flash)向Gemini API发送图像和提示时,返回的响应是JSON格式的。

但是,您感兴趣的实际车牌文本(或任何ai生成的响应)都嵌入在特定字段下的JSON中。以下是一个示例回复格式:

在ESP32上,我们:

从http.getString()获取字符串形式的响应;

使用ArduinoJson解析它

使用以下命令提取有用的文本值:

因此我们的最后

响应是JSON

号牌是嵌套在JSON中的纯文本字符串

项目演示

如下图所示,系统正确检测到车牌号/车牌

在firebase实时数据库中,我们使用时间戳获取车牌号

项目的潜在应用

有几个地方/领域可以使用这个项目

•智能停车系统

•执法和交通监控

•出入口自动化

•住宅智能监控

•车队管理系统

AI 驱动的边缘图像测试平台

未来改进

在未来,我想升级这个项目与车库门打开器的下一个应用。但这块板没有分离引脚接口。因此,我们必须使用带有MQTT接口的另一个ESP32板。

本文编译hackster.io

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭