一、目标检测的定义
基于深度学习的目标检测方法主要包括两大类,一类是基于区域建议网络(Region Proposal Network, RPN)的两阶段检测网络,其首先生成区域候选框,然后对每个区域候选框的特征进行预测,这类方法的主要研究有R-CNN系列网络、SPP网络和R-FCN网络等。另一类是端到端的单阶段检测网络,它可以实现一次性对整张图像中目标的坐标定位与分类,一般这类方法的检测速度要快于前者,这类方法的主要研究有YOLO和SSD等。
而最新的目标检测算法出现了以Transformers为代表的算法,如DETR (2020)和Deformable DETR (2021)等。
两阶段目标检测网络Two-Stage Detectors
以faster RCNN为例,网络主要分为两部分。第一部分为主干特征提取网络,采用ResNet50/101网络提取图像特征并得到特征图。第二部分为区域建议网络和RoI Align层,由区域建议网络对特征图进行卷积运算得到候选框并对候选框进行首次校正,然后候选框再截取特征图得到局部特征图。因为局部特征图的长宽是不固定的,不利于模型的学习,因此需要通过RoI Align将局部特征图归一化到相同大小上。
单阶段目标检测网络One-Stage Detectors
单阶段算法直接通过密集预测产生检测框,相比于两阶段算法,模型结构简单、速度快,易于在设备上部署。早期由于主干网络、多尺度技术等相关技术不成熟,单阶段算法在性能上不如两阶段算法,但因为速度和简洁的优势仍受到工业界青睐。随着单阶段算法性能逐渐提升,成为目标检测的主流方法。
Sigmoid函数能把输入的值输出为范围在0--1之间的值,太大的值输出1,太小的值输出0,中间的随输入的值的大小变化,同时它输出的值都是大于0而且不是中心对称。
tanh函数能把输入的值输出为范围在-1--1之间的值,从图像上可以知道当输入值小于-2.5或大于2.5时,输出一直是-1或1。同时输出的值是中心对称的,在数据处理时由于有正负的数据因此它比Sigmoid函数更好。
ReLU函数也就是我们前面一直提到的max函数,输入的值大于0则直接输出这个值,如果输入的值小于0则输出0。
Leaky ReLU函数将输入小于0的值乘上0.1后在输出。对于小于0的输入值不那么绝对的输出0。
激活函数是对前一层输出的每一个维度分别进行处理。
对于神经网络的结构设计并没有统一的答案。神经网络结构设计有三个要素,分别是深度设计(多少个隐层)、宽度设计(每个隐层多少个神经元)、激活函数。
对于梯度图来说,正向计算可以通过输入找到输出,反向计算可以找到中间任意门单元的梯度。
一些常见的门单元,加法门,正向就是相加,反向是上游梯度直接传过去;乘法门,正向相乘,反向相互交换后与上游梯度相乘;拷贝门,正向直接拷贝,反向则将上游的梯度都回传后相加;max,门正向将更大的数往后传,反向将上游梯度传给更大数的那一段,其余为零。
之前介绍了梯度消失,是由于链式法则的乘法特性导致的一种情况,还有另一种情况就是梯度爆炸,在断崖处的梯度乘以学习率后会是一个非常大的值,从而飞出了合理区域,最终导致算法不收敛。解决方案就是把沿梯度方向前进的步长限制在某个值内,这叫做梯度裁剪。这些情况并不适合网络中信息流的传递,于是在网络中的激活函数并不会选择sigmoid函数,与此类似的还有tanh函数。而ReLU函数则比较合适,不过由于在小于0的部分过于绝对,因此在全连接神经网络中一般使用Leakly ReLU函数。
CNN两大核心:
卷积层最主要的两个特征就是局部连接和权值共享,有些地方又叫做稀疏连接和参数共享。
-
通过卷积操作实现局部连接,这个局部区域的大小就是滤波器filter,避免了全连接中参数过多造成无法计算的情况,
-
再通过参数共享来缩减实际参数的数量,为实现多层网络提供了可能。
机器学习的根本问题就是优化(调节模型参数,让模型在数据上得到最佳性能)和泛化(训练好的模型在前所未见的数据上的性能好坏)的问题。
三、目标检测模型的评估方法
1.检测结果的正确/错误类型
正确结果(True Positive, TP):算法检测到了某类物体(Positive),图中也确实有这个物体,检测结果正确(True)
假阳性(False Positive, FP):算法检测到了某类物体(Positive),但图中其实没有这个物体,检测结果错误(False)
假阴性(False Negative, FN):算法没有检测到物体(Negative),但图中其实有某类物体,检测结果错误(False)
准确率Precision和召回率Recall
准确率,表示正确结果总数占检测框总数的比例,即TP/(TP+FN)
召回率,表示正确结果总数占真值框总数的比例,即TP/(TP+FP)
Average Precision
Average Precision = Precision 对Recall 的平均值,即PR 曲线下的面积,作为检测器的性能衡量指标
Mean AP
分类别统计AP,并按类别平均即得到Mean AP