在本文中,将探讨如何使用计算机视觉技术构建一个车牌识别和读取系统。通过Roboflow Workflows,可以在不编写任何应用逻辑代码的情况下,通过Web界面构建系统,并使用云API或边缘设备如NVIDIA Jetson或Raspberry Pi进行部署。
将通过以下逻辑来构建车牌识别系统:
- 使用目标检测模型检测汽车。
- 过滤模型检测结果,仅处理汽车。
- 裁剪每辆汽车。
- 对每辆汽车运行车牌目标检测模型。
- 裁剪每个车牌。
- 将每个车牌发送给GPT-4视觉模型以读取车牌上的文本。
- 以JSON格式返回结果,供应用程序使用。
通过首先检测汽车,然后对每辆汽车运行车牌检测,可以隔离每个车牌,从而在将车牌发送到多模态模型时提高准确性。上述系统还允许保持汽车检测模型识别的每辆汽车与处理车牌时产生的文本之间的关系。这意味着可以为图像中的每辆汽车返回一张汽车的图像、一张聚焦于车牌的图像以及车牌上的文本。
Roboflow Workflows是一个低代码计算机视觉应用构建器。通过Workflows,可以在Web界面中构建复杂的计算机视觉应用,然后使用Roboflow云、NVIDIA Jetson等边缘设备或任何云提供商如GCP或AWS部署Workflows。Workflows为项目提供了广泛的预构建功能,并且可以在Workflows Web编辑器中测试管道,允许在不编写任何代码的情况下迭代开发逻辑。
在本指南中,使用的模型是在Microsoft COCO数据集上训练的。此模型可以检测车辆等对象。在Workflow中,可以通过点击目标检测模型块并自定义配置窗格中的值来配置模型:
coco/24
这是一个在COCO数据集上训练的公开可用模型。可以使用Roboflow Universe上可用的公共模型以及工作区中的私有模型。在模型运行后,使用Detections Filter块仅包括汽车类别的检测。然后使用Dynamic Crop块裁剪所有汽车,以便可以独立处理它们。
为了读取车牌,将使用OpenAI的GPT-4视觉模型。GPT-4视觉模型是一个准确的多模态模型。可以使用GPT-4视觉模型进行OCR和视觉问题回答等任务。GPT-4视觉模型是Workflows支持的大型多模态模型(LMMs)之一。
向模型提供以下提示:
read the license plate, output should just be the text
此提示将确保模型仅返回车牌中的文本。要使用GPT-4视觉模型与Workflows,需要提供OpenAI API密钥。可以将密钥粘贴到与Workflow关联的“Remote API key”字段中。
Workflow配置为返回:
- 由车辆检测模型识别的裁剪汽车;
- 由车牌识别模型识别的裁剪车牌区域;
- 多模态模型返回的车牌文本。
Workflow以JSON数据形式返回。