刘 寅
(广西电力职业技术学院,广西 南宁 530007)
近年来,人工智能技术已在多个行业和领域得到广泛应用,并取得实质性应用价值。具备表征学习能力的卷积神经网络已成为深度学习中被广泛应用的架构之一,其在图像识别、物体识别、人数识别等方面已有较成熟的应用案例。在学校中,教室人数识别结合班级学生总数,经过统计可以得到班级出勤率、课程出勤率、院系出勤率等教学管理数据。通过教室内视频监控获取的图像,结合深度学习技术,运用卷积神经网络架构进行识别并统计,实现对教室中人数较准确的测算,可为教学管理等工作提供有效数据支持。
运用人工智能技术进行人数识别的传统方法大致有两类,一类是基于检测分析的方法;另一类是基于回归分析的方法。基于检测分析的方法常用Vapnik 等人提出的线性和非线性的支持向量机SVM 分类器以及Leo Breiman 和Adele Cutler 提出的随机森林决策分类器并结合Valiant 提出的Boosting 以提高弱分类算法的识别率。分类器通过识别人体局部或整体的结构特征,例如四肢、肩部、头部等部位,通过计算方向梯度直方图HOG、小波分析等算法来提取边缘特征进行分类识别进而识别人数。基于检测的分析在人与人之间的距离较大时采用整体检测效果较好,而对于人与人之间存在部分重叠时,人整体检测效果有所下降,则采用局部特征分析,这样能在一定程度上提高图像中的人物识别率[1]。而对于图像中人数比较多、人与人重叠也较多的情况,基于回归分析的识别方法则更加适合。回归分析的前提是进行特征提取,常用的特征有前景、背景、边缘、纹理和梯度分析等一维或多维特征[2]。回归分析方法就是通过学习建立所提取特征与人数的对应关系模型从而识别人数。常用的回归分析算法有线性回归、多段线性回归、岭回归、lasso 回归等[3]。
跟传统的机器学习人工智能识别方法相比,采用深度学习架构的人数识别模型更具优势,特别是在识别准确率方面有了更大提升。采用卷积神经网络为主流框架的深度学习技术,无论是在目标检测分析方式中还是在回归分析方式中,其人数识别所取得的测试结果都更优[4]。近年来,深度学习技术发展迅速,已在目标检测等领域取得很多成熟的应用并逐渐取代了基于机器学习的传统识别方法[5]。例如,有学者采用三列卷积神经网络训练密度回归人数识别模型,经测试,其在L1 损失和L2 损失数据上相比CNN 模型都有10%以上的下降。
Joseph Redmon 在2015 年提出了采用卷积神经网络架构的深度学习目标检测模型You Only Look Once,简称YOLO。起初YOLO 检测架构最多可以识别49 个目标,经过数年发展研究,先后发展出YOLOv1、YOLOv2、YOLOv3 等几个模板,其检测速度和准确率不断提升[6]。YOLOv3 架构在网络结构方面进一步调整,并采用不同尺度的多个特征图来增强不同尺寸目标的识别能力。与之前两个版本相比较,YOLOv3 架构识别类别更多,检测速度更快,准确度更高。在同样的硬件平台下采用COCO数据集测试,与RetinaNet 等深度学习架构相比,在mAP精度基本相近的情况下,YOLOv3 架构具备明显的识别速度优势[7]。YOLOv3 架构目标识别速度与其他架构对比如图1 所示。
图1 YOLOv3 识别速度
本文将深度学习架构YOLOv3 应用到教室内人数的识别中,通过教室内视频监控截图作为数据训练集,经数据训练得到教室内人数识别模型,经测试该模型具备较高的人数识别准确率。
YOLOv3 的网络模型是darknet-53 分类架构。整个网络架构由53 个卷积网络层构成,并根据残差网络结构在某些层之间进行了快捷链路。该网络架构采用3 个不同尺度的特征图以及9 种不同尺度的先验框来实现多尺度对象预测[8]。YOLOv3 的网络模型如图2 所示。
图2 YOLOv3 网络模型
本次实验数据来源于学校50 间教室的视频监控截图。为了保障目标检测模型的识别适应能力,本次数据采集特别针对不同角度、不同光照、不同人数的教室截图进行差异化的采集,目的是避免训练数据过于单一导致的目标检测系统的识别适应能力下降。
采用YOLO_mark 对采集来的教室截图进行标注。新建my_classroom.names 文件,建立单独分类person。依次对训练数据集的截图进行标注,标定目标类别为人物,标定其所在的x、y 坐标以及标注框的w、y 范围并生成txt文件。已标注的教室截图训练数据如图3 所示。
图3 已标注的教室截图
通过标注并整理得到训练数据集100 张截图以及验证数据集100 张截图。为了更好地验证效果,用于验证的数据集与训练数据集中的截图都不一样。实验数据集情况见表1 所示。
表1 实验数据集
YOLOv3 深度学习模型是基于darknet-53 架构,其训练模型的过程是通过不断的迭代而不断刷新架构参数,通过大量训练样本数据给神经网络进行学习,使得神经网络提取到的特征不断地接近预期输出。
本次模型训练采用随机初始化神经网络参数作为训练起点。卷积神经网络每一次正向传播迭代,都会将带有标签的截图输入进神经网络,而神经网络架构根据现有网络层参数来提取截图相关特征,最终得到此次迭代的特征输出。输出的特征包括目标坐标数据(x,y,w,h)、目标置信度和目标类别概率。而输入截图标签中有目标实际坐标和目标所属类别,卷积神经网络每次迭代输出与实际预期输出的误差则是关注的重点。通过计算损失函数可以有效反映迭代输出误差的真实情况,而神经网络模型训练的目的就是通过不断优化参数来减少损失(loss)。神经网络向前传播时可以计算每层的网络输出,在反向传播时可以计算每层的网络预期输出,计算输出与预期输出的差值得到单个神经元的残差,利用链式求导计算残差梯度,再利用梯度下降来调整参数,最终使得loss 逐步下降并趋于收敛。
训练时,神经网络模型的参数更新一次就是一次迭代。当每次迭代的loss 变化不大并趋于收敛时即可以得到最终的训练模型。模型训练loss 曲线如图4 所示。
图4 loss 曲线
卷积神经网络识别模型训练完之后即可进行模型的验证。将验证数据集100 张截图输入模型,识别输出效果,如图5 所示。
图5 识别输出效果
本次实验通过精确率(Precision)、召回率(Recall)和准确率(Accuracy)三个评价指标来衡量YOLOv3 模型识别教室人数的效果。计算公式为:
式中P 为精确率;R 为召回率;A 为准确率。TP 是正类预测为正类的数量;FP 是负类预测为正类的数量;FN 是正类预测为负类的数量;N 为被测样本真实人数。
精确率反映出模型识别为正类的样本中有多少是真正的正类。召回率反映出所有的正类样本中有多少被正确的识别出来。准确率反映出模型输出数据的可信度和有效性。
经过验证数据集100 个样本,统计验证数据,得到深度学习架构YOLOv3 在本次教室人数识别中的评价指标数据如表2 所示。
表2 实验的评价指标数据
通过实验验证,深度学习架构YOLOv3 模型在学校教室内人数识别时可以做到92.64%的正类召回率,而精确率能够达到97.74%,平均准确率可以达到93%以上,其识别结果可以有效地对教室内人数进行判断,能够为教学管理提供有效数据。
为了解决传统目标检测算法识别速度和精度相对较低等问题,本文采用深度学习技术中较为成熟的YOLOv3 神经网络架构来识别学校教室中的人物目标,通过统计数据进而取得了教室内的人数。经过数据训练的深度学习网络模型在100 张教室截图的数据验证时,其教室内人数识别的平均准确率可以达到93%以上,并且在模型精确率和召回率指标上都取得了较理想的效果。本次实验结果可以为教学管理提供有效参考数据支持。下一步计划针对单目标检测网络进行结构优化,尝试进一步提高教室内人数识别的准确率。