​用树莓派(Raspberry Pi)和机器学习制作一个DIY车牌阅读器

本文详述了使用树莓派和机器学习技术构建一个车牌识别系统的全过程,包括确定项目范围、选择模型、设计硬件、训练模型、部署到树莓派以及开发客户端。通过YOLOv3进行对象检测,CRAFT进行文本检测,CRNN进行文本识别。最终,作者成功实现了在实时视频流中识别车牌的功能,展示了将AI技术应用于边缘计算的潜力。
摘要由CSDN通过智能技术生成


全文共7733字,预计学习时长23分钟

来源:Pexels

 

几个月前,笔者有一些想法,想让自己的车能检测和识别物体。笔者之所以有如此想法,主要是因为已经见识了特斯拉的能力,虽然并不想马上买一辆特斯拉(不得不说,Model 3看起来一天比一天诱人),但笔者认为应该尝试实现自己的梦想。

 

所以,笔者实施了这个想法。

 

动图来自结果的预测视频。

下文记录了项目中的每个步骤。如果只想看到检测器运行的视频或者GitHub链接,请跳到底部。

 

第一步,确定项目范围

 

起初,笔者思考了这样一个系统应该有什么能力。如果说笔者这辈子学到了什么,那就是从小范围开始永远是最好的策略:小步走。所以,除了车道保持任务(每个人都已经做过),笔者只是想在驾驶时简单地识别车牌。此识别过程包括两个步骤:

 

1、检测车牌。

2、识别每个车牌边框内的文字。

 

笔者认为,如果能做到这一点,那么继续进行其他任务应该是相当容易的(比如确定碰撞风险、距离等)。甚至可以创建一个向量空间来表示环境,这就十分炫酷了。

 

在过于担心细节之前,笔者需要:

 

·       一个机器学习模型,将未标记图像作为输入并检测车牌。

·       一些硬件。粗略地说,需要一个连接到一个或多个摄像机的计算机系统来查询模型。

 

首先着手构建对象检测的正确模型。

 

第二步,选择正确模型

 

经过仔细研究,决定采用以下机器学习模型:

 

1.   YOLOv3——这是迄今为止速度最快的模型,具有可与其他先进模型相媲美的映射。这个模型是用来检测对象的。

2.   CRAFT文本检测器——用于检测图像中的文本。

3.   CRNN ——一个循环的CNN(卷积神经网络)模型。它必须进行循环,因为它需要将检测到的字符按正确的顺序组成单词。

 

这三个模型如何协同?操作流程如下:

 

1.   首先,YOLOv3模型在摄像头接收到的每一帧中检测每个车牌的边框。不建议预测的边框非常精确,超过检测到的对象的范围较为合适。如果范围太狭窄,那么可能会影响后续进程的性能。这与下面的模型是并行不悖的。

2.   CRAFT文本检测器从YOLOv3接收裁剪后的车牌。如果裁剪的帧太狭窄,那么很有可能会漏掉车牌的部分文字,导致预测失败。但当边框较大时,可以让CRAFT模型检测字的位置。这可以非常精确地预测每个字的位置。

3.   最后,可以将CRAFT中每个单词的边框输入CRNN模型来预测实际单词。

 

有了基本的模型架构,接下来可以解决硬件了。

 

第三步,设计硬件

 

当笔者知道自己需要一些简单的东西时,便想起了旧爱:树莓派。它有足够的计算能力来用合适的帧数对帧进行预处理,它也有Pi Camera。Pi Camera是树莓派的摄像机系统。它有一个非常棒的存储库,而且非常成熟。

 

至于互联网接入,可以只用一个EC25-E来实现4G接入,也有来自笔者曾经的项目的一个GPS模块嵌入。

 

笔者决定从外壳开始。把它挂在汽车的后视镜上应该会很好用,所以最后设计了一个双组件支撑结构:

 

1.   后视镜一侧,树莓派+GPS模块+4G模块。可以查看笔者关于EC25-E模块的文章,看看笔者对GPS和4G天线的选择。

2.   在另一侧,将用一个球关节臂来支撑Pi Camera进行定位。

 

这些支架/外壳将用笔者信任的Prusa i3 MK3S 3D打印机打印。

 

图1—树莓派+4G/GPS防护外壳

图2—用球关节支撑Pi Camera进行定位

 

图1和图2显示了实施时的结构。请注意,C型夹持器是可插拔的,所以已经打印的支架不附带树莓派的外壳和Pi Camera的支架。它们有一个插座,可将支架插入其中。如某一个读者决定复制该项目,这是非常有用的。只需调整支架,使其适应汽车后视镜。目前,笔者车上(是一台路虎神行者)的夹持器功能良好。

 

图3—PiCamera支架结构的侧视图

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值