APP下载

基于OP_YOLOv3 Tiny算法的电路实验器材检测

2021-02-11梁铭炬

中国新技术新产品 2021年22期
关键词:开发板池化器材

梁铭炬

(广东顺德工业设计研究院(广东顺德创新设计研究院),广东 佛山 528300)

0 引言

在现存的初中物理电路实验教学中,由于存在单个老师无法同时对多个学生的实验操作进行评分的问题,因此需要开发基于嵌入式设备的智能电路实验评分系统,利用该系统对人工智能进行评分,基于目标检测算法的电路元器件检测是该系统的的关键之一。

目前,应用较为广泛的基于深度学习的目标检测算法可分为2 类:1) 基于候选区域的目标检测算法。具有代表性的算法有R-CNN、Fast R-CNN 和Faster R-CNN 等[1]。2) 基于回归的目标检测。具有代表性的算法有SSD、YOLOv2 和YOLOv3 等[2]。与第一类算法相比,它们具有检测速度高、检测精准率低的特点。

针对嵌入式设备存在计算能力不足的问题,该文以YOLOv3-Tiny 算法为基础提出了OP_YOLOv3 Tiny 算法。首先,采用5 层MAX Pooling 对特征矩阵进行OP 降维操作,削弱池化的特征弱化现象。其次,优化调整图像尺寸,丰富小目标的浅、深层语义信息,提高检测小目标的精准率;同时,在训练算法模型前,使用K-means聚类算法获得训练集最佳Anchor box 参数。最后,在采集到的电路实验器材数据集上进行训练和测试。

1 相关工作

1.1 YOLOv3-Tiny 算法

在网络结构上,YOLOv3-Tiny 算法使用卷积层、批归一化层及激活函数层融合的结构提取输入图像的特征,并采用非重叠最大池化操作对特征矩阵进行降采样,同时,使用2 个不同尺度的特征图(feature map)进行目标预测。YOLOv3-Tiny 算法的模型结构如图1 所示。

图1 YOLOv3_Tiny 算法网络结构图

YOLOv3-Tiny 算法可以接受任意尺寸的图像数据,输入数据在送入卷积神经网络之前被调整为固定尺寸。输入图像经过卷积神经网络后被划分为S×S个网格,每个网格单元分别预测3 个锚框,每个锚框都有5 个基本参数:(x、y、w、h和confidence),分别代表检测框的中心点坐标(x,y)、宽高(w,h)和置信度评分(confidence),置信度评分Cobj如式(1)所示。

1.2 MAX Pooling 层

YOLOv3-Tiny 算法采用最大池化模型对输入特征图进行非重叠池化降维。最大池化模型则是取池化区域中的最大值作为该区域池化降采样后的特征值。假设某最大池化层池化域为C×C、步长为C且偏置为B,输入特征图矩阵F通过该层非重叠池化操作后得到的降采样特征图为S,那么最大池化层如公式(3)所示。

2 算法优化

2.1 优化YOLOv3-Tiny 算法

在实际检测物理电路实验器材的过程中,为了最大程度地减小检测摄像头对学生操作的影响,需要使摄像头与实验台保持一定的距离(通常大约为1 m)。这个距离会导致一些尺寸较小的实验器材(例如小灯泡、单刀开关等)在YOLOv3-Tiny 算法的13×13、26×26 尺寸的feature map 下并不能取得令人满意的检测效果[4]。该文在YOLOv3-Tiny 算法的基础上提出OP_YOLOv3 Tiny 算法,其特征提取主干网络结构如图2 所示。

图2 优化YOLOv3-Tiny 算法特征提取主干网络

首先,在YOLOv3-Tiny 算法特征提取主干网络的前五层MAX Pooling 层中引入重叠池化降维操作,选取重叠池化域中的最大值作为该区域降维后的特征值。假设MAX Pooling层输入特征图大小为M×M,经过重叠池化操作后输出特征图大小为N×N,池化域尺寸为K、步长为S,则其满足公式(4)。该文在试验过程中认真权衡算法模型的检测精准率和计算复杂度,最终选取池化域尺寸K为3、步长S为2 的MAX Pooling 层对特征矩阵进行降维。其次,删除YOLOv3-Tiny 算法中第六层池化域尺寸K为1、步长S为1 的MAX Pooling 层,减少模型训练测试过程中的冗余计算量;同时,重新定义网络结构的初始输入图像尺寸,以639×639×3 的像素作为初始输入图像的大小,经过5 层融合的归一化及激活函数层结构提取特征以及4 层池化域尺寸K为3、步长S为2 的MAX Pooling 层降采样后,得到尺寸为39×39×256的浅层语义信息输出特征矩阵;再经过3 层DBL 结构及1层池化域尺寸K为3、步长S为2 的MAX Pooling 层再次提取该输出特征矩阵的特征并进行及降采样,得到尺寸为19×19×256 的深层语义信息输出特征矩阵。最后,通过特征融合的方式进行目标检测。

2.2 锚框(Anchor)聚类

针对初中物理电路实验器材数据集的特点,该文采用K-means 聚类算法对训练集边界框进行聚类分析,从而得到锚框[5]。但是在实际的聚类分析中,分析误差会随着边界框尺寸的变大而变大。为解决这一问题并保证聚类分析误差与边界框尺寸无关,该文重新定义了K-means 聚类算法中的距离公式,如公式(5)所示。

该文采用重新定义距离公式的K-means 聚类算法对采集到的电路实验器材训练集边界框进行聚类分析。在聚类过程中,将聚类中心的数值设置为K=6,得到得新的Anchor box参数分别为(37,63)、(69,74)、(51,125)、(131,87)、(87,161)以及(157,254)。

3 试验

3.1 试验数据集制作与标注

训练数据集制作是基于深度学习的目标检测算法的基础。该文使用的初中物理电路实验器材数据集来源分为2 个部分:自行拍摄采集和互联网数据搜集。其中,自行拍摄采集为该文使用数据集的主要来源,互联网数据搜集为次要来源。

为了使采集到的数据集具有较高的质量且可以训练出具有较强的多场景、复杂场景检测能力的模型,在数据采集过程中,需要不断改变拍摄角度、背景以及光照等外界因素,从而初步增强数据集的鲁棒性。在数据集采集完毕之后,对数据集进行质量筛选,剔除存在模糊、失真以及特征不明显等问题的样本,同时兼顾不同角度、不同背景以及不同光照下的样本数量,使样本数量在整体上达到均衡。经过筛选的数据集的类别名称及数量见表1。

表1 数据集类别及数量

该文使用MRLabeler 标注软件并参照Pascal VOC 和COCO 数据集的图像标注格式对获得的数据集进行标注,生成训练所需要的xml 格式文件。

3.2 试验平台及网络训练

该文使用Python 语言在Darknet 深度学习框架下进行实验。PC 端搭载了i7-9700k 处理器、GTX 2080Ti 11G 显卡、64 GB 运行内存以及Ubuntu18.04 操作系统。

在训练模型的过程中,根据训练过程中的损失(loss)值和IOU值对网络参数进行微调。部分超参数设置见表2。

表2 部分超参数值

3.3 评价标准

该文从以下2 个方面评测OP_YOLOv3 Tiny 算法的网络模型性能。

精确率(AP)。精确度如公式(7)所示。

式中:Tp为真正标签;Fp为假正标签。

每秒处理帧数(fps)。在PC 端上通过USB 接口挂载嵌入式开发板RK3399Pro,模拟开发板的硬件性能,并通过终端打印OP_YOLOv3 Tiny 算法模型的每秒处理帧数。

3.4 实验结果分析

该文使用SSD300、SSD512[6]、YOLOv3、YOLOv3-Tiny和OP_YOLOv3 Tiny 算法在相同的条件下对采集到的电路实验器材数据集进行训练与测试,并通过在PC 端挂载嵌入式开发板RK3399Pro,模拟开发板硬件性能,得到AP、fps等技术指标(见表3)。由表3 可知,该文提出的OP_YOLOv3 Tiny 算法在实验器材数据集上的检测精准率达到88.1%,在嵌入式RK3399Pro 开发板上的检测帧率达到33.8 f/s,完全可以达到实时检测的效果。

表3 不同算法的技术指标

SSD300 与SSD512 均为基于回归及特征金字塔的目标检测算法,该系列算法使用与Anchor box 机制相似的预选框(Prior box)。从表3 中可以看出,SSD300 算法在电路实验器材数据集上的检测精准率达到75.6%,在嵌入式RK3399Pro开发板上的检测帧率达到37.6 f/s。SSD512 算法在SSD300 的基础上改变了算法网络结构输入图像尺寸的大小,在显著提高检测精确率的同时大幅增加了模型的计算量,其检测精准率与SSD300 算法相比提高了5.6%,检测帧率下降了12.3 f/s。综上所述,SSD300 算法在检测帧率上可以达到实时检测的效果,但其检测精确率较低;SSD512算法的检测精准率有所提升,检测帧率仅出现小幅度下降,但这2 种算法与该文提出的OP_YOLOv3 Tiny 算法相比都没有优势。

YOLOv3 算法与YOLOv3-Tiny 不同,其采用结构更为复杂的darknet-53 特征提取主干网络提取输入图像的特征,并在前向传播的过程中,放弃使用MAX Pooling 层,通过改变卷积核的步长来改变特征矩阵的尺寸,同时在输出方面采用3 种尺度的feature map 进行目标预测,因此该算法在电路实验器材数据集上的检测精准率达到了95.6%,但由于其权重模型计算复杂度过高,导致该算法在嵌入式RK3399Pro 开发板上的检测帧率仅有14.9 f/s,无法达到实时检测的效果。

该文提出的OP_YOLOv3 Tiny 算法在嵌入式RK3399Pro 开发板上检测帧率达到33.8 f/s,比YOLOv3-Tiny 算法低2.3 f/s,其检测精准率比YOLOv3-Tiny 算法高4.7%,可以满足实时检测的要求。因此,在实际的应用中,该文提出的OP_YOLOv3 Tiny 算法更具优势。

4 结语

该文以YOLOv3-Tiny 算法为基础提出OP_YOLOv3 Tiny算法。首先,在算法特征提取主干网络中采用5 层MAX Pooling 对特征矩阵进行重叠池化降维,削弱池化的特征弱化现象。其次,优化调整算法输入图像的尺寸,丰富小目标的浅层语义信息、深层语义信息,提高算法检测小目标的精准率。最后,使用K-means 聚类算法聚类获得契合电路实验器材数据集最佳Anchor 的个数与大小,改进算法参数。在该文采集的电路实验器材数据集上测试得出,OP_YOLOv3 Tiny 算法的检测精准率(AP)达到88.1%,在嵌入式开发板RK3399Pro 上的检测帧率(fps)高达33.8 f/s,满足实时检测的要求。

猜你喜欢

开发板池化器材
面向神经网络池化层的灵活高效硬件设计
基于Sobel算子的池化算法设计
卷积神经网络中的自适应加权池化
AV TOP 100!2020-2021年度优秀影音器材推荐榜简评
基于卷积神经网络和池化算法的表情识别研究
最贵的器材多少钱 Damian Demolder
Microchip最新推出两款PIC32 Curiosity开发板
浅析单片机开发板的设计与制作
视听器材个股表现
视听器材个股表现