
使用小规模卷积神经网络识别交通标志
自从自动驾驶汽车和驾驶辅助系统的需求出现以来,交通标志识别就变得至关重要。对数据进行有效的预处理在自主驾驶系统中非常重要。目前没有适用于这种实时目的的复杂变换或高度计算的图像处理技术。这项工作提出了一种使用小规模的深度卷积神经网络(CNN)来识别交通标志的方法,并且可以应用于不同的用途。所提出的解决方案是使用德国交通标志识别基准(GTSRB)数据集实现的。这个数据集是可靠的、活跃的,并已被用于不同系统的训练。拟议的系统是基于高级驾驶员辅助系统 (ADAS) 的解决方案,可提供有效的辅助。测试、训练和验证的准确率分别为97.71%、99.19%和99.61%。
1 引言
识别各种交通标志在自动驾驶汽车的部署中日趋重要,为司机提供帮助,保障交通安全和地图/导航。人类即使在认识了交通标志之后,也会在驾驶时犯很多错误。由于这个原因和汽车技术的发展,像特斯拉、宝马等公司一直在积极投资ADAS的研究领域。ADAS包括对交通标志的识别,以使驾驶员的注意力保持在最佳状态。随着行进过程中自动化需求的增加,有必要使用不同的计算机技术来整合自动化的需求。一方面,ADAS被广泛研究,另一方面,自动驾驶汽车的研究也在快速进行。自动驾驶赛车、自动驾驶汽车成为需要 TSR 的突出领域之一。
交通标志经过专门设计,以便驾驶员轻松检测和识别。他们在背景和标志之间有明显的颜色差异。关于交通标志的这个特征也有助于自动识别。
如今,深度学习的成果尤其在计算机视觉基础应用领域引起了大家的关注。在此类应用中,不同参数的结果得到了显着改善。在深度学习中,CNN 相当引人注目。CNN 已经一再证明了它们的重要性和优势。交通标志的识别也是通过使用不同的CNN模型来完成的,如基于卷积网络的深度感知,大规模交通标志的深度学习,可变形深度CNN,多任务级联神经网络。
提出的解决方案的动机包括以更快的方式和更高的准确性学习小规模 CNN。
2 文献综述
交通标志识别分为两类。这包括使用经典模型的一类技术,它依赖于交通标志的特征,另一类包括最近的基于深度学习的方法,它在数据集的帮助下学习一般特征。基于交通标志识别的各种文献数量不在少数,因为自从计算机自动化和计算机视觉出现以来,TSR一直是一个具有巨大范围和重要性的话题。由于该领域已经进行了大量的研究,因此比较现有的文献很困难。许多论文提出了使用预定义和所有数据集中最流行的解决方案,如德国交通标志检测基准(GTSDB)和GTSRB。许多论文使用了其他数据集,如比利时交通标志(BTS)和交通基础设施状况绘图和评估(MASTIF)数据集。瑞典交通标志数据集(STSD)、智能和安全汽车实验室(LISA)也是TSR 训练过程中使用的一些预定义数据集。有些论文使用由这些预定义的数据集组合而成的抽样数据集。大多数也使用他们自己专门定义的数据集,以获得最大的准确性和可靠性。私人数据集的一个非常方便和有用的特点是,它可以包括根据要求所需的所有不同类别。
根据所使用的方法,存在许多方法并已被使用。一些人使用了非常精确的CNN。有些人使用 Mask R-CNN,它是 Region Proposal Network 和 Fast R-CNN 的组合。两个网络的卷积特征以这样一种适当的方式合并,使CNN方法更加有效和快速。Fast R-CNN 模块被 RPN 模块告知它必须查找的位置。因此,吞噬感兴趣的区域和识别相同的区域成为一项合作工作。最近,人们采用了基于CNN的分而治之的方法进行交通标志识别。据观察,在使用CNN时,对图像的某些部分进行识别也是非常可行和有效的。这种方法不是在整个图像上运行算法,而是建议在同一图像的平均分割部分上运行算法,然后在图像上运行。以这样的方式进行训练可以显著提高系统的准确性、效率和可靠性。一种显著的数据增强方法也用于生成有效的训练数据。
显然,交通标志的识别会受到平移变化、对比度变化、旋转等的影响。一些专家使用空间变换网络的方法来处理这些不均匀性。给定图像的自动变换生成由空间变换网络进行。此外,该层是一个独立层,可以插入 CNN 中的任何位置,计算开销非常低。
许多其他基于CNN的交通标志识别方法包括使用深度学习架构的新方法,也被称为胶囊网络。胶囊网络不包含神经元,而是包含胶囊。胶囊能够对输入进行计算,并以小矢量的形式生成结果。在胶囊内,壁球函数用于计算和路由算法使用。
许多传统方法还包括线性判别分析(LDA)、定向梯度直方图(HOG)。 NARX RNN、MultRT、BagRT被一些人用来对基于RNN的识别模型进行改进。衍生出各种基线方法和突出的竞争算法的结果也已经完成,结论是早期的算法与后来的算法相比有缺陷 。颜色和形状建模、归一化和用数学模型进行分类被证明在该领域研究的早期阶段非常突出。其中一个挑战是在恶劣的光线条件下工作。T. Hibi研究了恶劣光线条件下的交通标志识别。表. 1. 展示了最近进行的不同工作。
3 小规模的CNN
CNN 是一种深度学习算法,我们可以将图像作为输入,将重要性(固定权重和偏差)分配给图像中的不同对象,以区分图像。CNN 在图像分类方面被证明是最好的。
3.1 小规模CNN
图1.是一个深度学习的CNN模型,被认为是这项工作的一部分。小规模的CNN由三个卷积层和两个全连接层组成。在卷积层之后应用最大池化,以提供抽象的表示形式,从而避免过度拟合。小规模的CNN在每个阶段都使用整顿的线性(ReLU)激活函数。最后一层给出了每43类交通标志的softmax概率。在我们的CNN模型中,总共有478763个参数,都是可用于训练的。
图1. CNN架构
3.2.GTSRB 数据集
一般来说,交通标志都是以特定的典型形状为框架,并带有容易察觉的颜色。图2显示了一些交通标志的图像。
图2. 交通标志的例子
在我们的系统中,交通标志将使用CNN进行分类。这个神经网络将在GTSRB数据集上进行训练。这个GTSRB数据集包含43个不同类别的交通标志。其中总共有50,000多张不同的图像。
我们将GTSRB数据集分为三类,即训练数据、验证数据和测试数据。在这个数据集中,每个交通标志的图像都不是恒定的。图3.显示了每一类交通标志的图像的分布。
图3. 训练数据的分布
3.3 损失函数
在提出的CNN模型中,我们使用了分类交叉熵。使用分类交叉熵的主要动机是,在我们的分类问题中只有一个结果是正确的。以下损失函数用于训练模型。
ŷ 表示预测值。
分类交叉熵将预测的分布与实际分布进行比较。这里,真实类的概率是1,而其他类的概率是0。
3.4 优化
我们在小规模 CNN 模型中使用了 Adam 优化算法。Adam可以被认为是随机梯度下降法和均方根传播法的结合。由于它采用了自适应的学习方法,每个不同的参数都计算了单独的学习率。Adam使用梯度的第一和第二时刻的估计来调整神经网络的每个权重的学习率。
一个数字的分布的第N个时刻是指该变量的期望值提高到n次方,在数学上可以表示为m是时刻,X是随机变量。
在神经网络中,成本函数的梯度可以被视为一个随机变量。Adam的更新规则由下面的公式给出。
其中w为模型权重,η为步长(取决于迭代次数)。
4 实施与结果
4.1 实验设置
我们使用google-colab进行了关于实施、训练和测试的所有实验。Google-colab 提供近12GB的内存,在GPU的支持下可以扩展到25GB。我们模型的整个代码是用python编写的。我们使用keras API实现了我们的CNN模型。数据集中的图像被调整为32*32的3个通道,这样就可以被送入CNN模型。整个 GTSRB 数据集上传到 gitlab 上,因此在 google-colab 上运行代码时,可以轻松获取它以加载到内存中。为了进行比较,这个小规模的CNN模型还在一个拥有8GB内存的系统上进行了测试。光照条件较差的交通标志,例如交通标志被落在其上的太阳光线反射的日出时间、日落时间、黄昏时间和夜间时间,在这项工作中没有涉及。在如此具有挑战性的条件下,缺乏数据,需要深入分析。
4.2 结果
我们对我们的模型进行了50次的训练。小规模CNN模型的每一次训练都需要近11秒的时间。图4.(a)和图4.(b)中绘制了训练和验证数据的准确性和损失。
图4.(a) 准确性 图4.(b) 损失
在这个实验中,训练准确率达到99.19%,损失减少到0.0289。验证准确率达到99.62%,损失减少到0.0177。在数据集上取得的测试准确性为97.71%。
LeNet-5架构有7层,与本研究中使用的小规模CNN架构相似。两种架构的输入大小相似,都是32*32。使用LeNet架构的32*32输入大小的测试准确率为90%。
使用CPU和GPU的小规模CNN模型的训练时间有微小差异,这不是主要的问题。小规模的CNN模型可以使用CPU或GPU用于实时目的。新标志的加入并没有给小规模的CNN模型带来任何影响。最近,基于物联网的技术由于其准确性和远程操作的特点而得到了普及。在未来,拟议的系统可以设计出具有物联网功能的决策能力。
5 结论
交通标志识别是自动驾驶汽车和驾驶员辅助车辆中的一项具有挑战性的任务。这项工作重点研究了最近为交通标志识别所做的工作。所提出的小规模 CNN 模型适用于使用 GTSRB 数据集的基于 ADAS 的系统。实现的测试、训练和验证准确率分别为 97.71%、99.19% 和 99.61%。与 LeNet 深度学习模型相比,该结果在测试准确性方面有重要的提高。此外,小规模的CNN模型在训练方面所需的时间较少,每一个历时约为10秒。因此,这个模型可以用于不同的实时目的,因为它的计算时间最短,计算资源最优。
文章转载自公众号:智能汽车开发者平台
