目标检测主要分为传统机器学习的方法和深度学习的方法两大类。传统方法在一定程度上可以实现目标检测任务,但依赖手工提取特征,其泛化能力有限并且在复杂场景下的性能较差,而深度学习的目标检测方法在大量标注数据中不断迭代,学习权重参数,从而得到与任务最匹配的特征,实现了比传统机器学习方法更优秀的性能,逐渐成为目标检测领域的主流方法。
(一)卷积神经网络
卷积神经网络是专门用于处理图像等具有明显网格结构数据的深度学习模型,被广泛应用在物体识别、目标检测和语义分割等领域。现今卷积神经网络主要由卷积层、批量规范化、激活函数、池化层和全连接层构成,如图2所示。
卷积层:卷积层负责提取输入数据的特征,是卷积神经网络的核心。每个卷积的参数都是在训练过程中通过优化算法经反向传播得到的。随着卷积神经网络深度增加,卷积提取的特征从纹理特征、形状特征逐渐变为高级的抽象特征。
批量规范化:在深度神经网络模型训练过程中,网络中的参数会随着优化算法经反向传播不断被更新,参数的微小变化经过多层传播和激活函数的作用会被放大,导致每层输入数据的分布发生变化,它会使得模型难以训练和收敛。
激活函数:卷积运算是线性运算,纯粹的线性组合表达能力有限,无法解决更复杂的问题。非线性激活函数常用在卷积层和批量规范化的后方,为网络提供非线性元素,使模型能够学习到更复杂的数据模式,提高模型的非线性建模能力。
池化层:池化层作用是对输入特征图进行下采样操作来提取关键数据、减小特征图的空间尺寸、减小模型的计算量和参数量以及增加神经网络的感受野。目前卷积神经网络中常用最大池化和平均池化,池化核在输入特征图上滑动,在池化核到达的每个位置,计算池化核所覆盖区域的最大值或平均值,与卷积不同的是,池化没有参数且为非线性运算。
全连接层:全连接层一般处于卷积神经网络的尾部,它将前面特征提取层输出的特征数据加权汇总后,输出一维向量,实现特征维度的重塑,为后续分类或回归任务提供全局信息。
(二)目标检测模型YOLOv7原理
YOLOv7是卷积神经网络的一个重要分支。YOLOv7系列包含YOLOv7-tiny、YOLOv7和YOLOv7-X 3个不同规模的模型,其均采用一个卷积神经网络提取输入图像的特征,输出含有预测参数的3个特征层,对输出特征层解码、边界框筛选和非极大抑制操作得到最终预测结果,完成目标检测任务。YOLOv7系列模型预测流程如图3所示。