文章目录[隐藏]
目标检测
论文:A Survey of Modern Deep Learning based Object Detection Models
目标检测:在图像或视频中,找到目标位置并进行分类。其需要识别并定位视野中某个目标的所有实例,即目标检测目的是检测出图像中所有实例的类别,并用一个轴对齐的矩形框大致给出实例的位置。
在早期,目标检测模型是通过集成一系列手工设计的特征提取器来构造的,但这些模型速度慢、精度低、跨域性能差。近年来,基于CNNs的目标检测模型改变了视觉领域的格局。
目标检测中的挑战:
- 类内变换:自然场景中,统一对象的不同实例之间出现类内变化是常见的,例如:遮挡、光照、姿态、视角等。这些不受约束的外在因素会对目标的外观产生剧烈变换,因此,目标可能会由非刚性形变或旋转、缩放、模糊等变化,而且一些目标可能在环境中不显著,导致其提取变得困难。
- 类别数量:可用的目标种类绝对数量过少,因此需要高质量的标注数据。利用少样本训练检测器是一个待研究的问题
- 效率问题:模型需要大量的计算资源来生成准确的检测结果,但在移动或边缘设备上,计算效率更为关键。
常用数据集
PASCAL VOC 07/12
- VOC2007有5K个训练图像以及超过12K的标注目标;
- VOC2012有11K个训练图像并拥有超过27K个标注目标,目标类别也扩展到20类,同时增加了语义分割、动作识别等任务
ILSVRC
ImageNet Large Scale Visual Recognition Challenge (ILSVRC)
包含1000个类别,超过100万个图像,其中精选了200个类别、超500K个图像被用于目标检测。
MS-COCO
The Microsoft Common Objects in Context(MS-COCO)包含超过200万个实例,且平均每张图像中有3.5个类别、7.7个实例,也包含了多种视角的图像。
Open Image
谷歌的Open Image数据集由920万张图像组成,使用图像级标签、对象边界框和分割掩码等进行标注。
数据倾斜/偏差问题
在上述数据集中,除了少数类别的图片数量很多,其他类别的图片数量很少,而且极个别类别的图片数量极少,成长尾分布。这种现象是数据的倾斜问题,并且在目标检测模型训练过程中会产生一种偏差。即对于训练数据中图像数量较多的类,模型可以得到有效训练并表现出更好的检测性能;但对于训练数据中图像数量较少的类,模型无法有效训练并表现出较差的检测性能。
指标
目标检测器常用评价指标:FPS、precision、recall以及常用的mAP。
precision由IOU推导出来,IOU为预测边框和GT之间的交并比。通过设定一个IOU阈值来判断检测结果是否正确,即当IOU大于阈值时,该结果分类为TP(True Positive);当小于阈值时,该结果分类为FP(False Positive)。当模型没有检测出GT中存在的目标时,这些目标分类为FN(False Negative)。
average precision(AP)是每一类的平均精度。将所有类的AP取平均,即可得到mAP。
IOU(交并比)
IOU=两个矩形框相交的面积/两个矩形框相并的面积。
"""
param rec1: [x0, y0, x1, y1] (左上角,右下角)
param rec2: [x0, y0, x1, y1]
"""
rec1 = [x0, y0, x1, y1]
rec2 = [x0, y0, x1, y1]
# 计算各框的面积
S_rec1 = (rec1[2]-rec1[0]) * (rec1[3] - rec1[1])
S_rec2 = (rec2[2]-rec2[0]) * (rec2[3] - rec2[1])
# 计算总面积
sum_area = S_rec1 + S_rec2
# 计算相并的面积
left_line = max(rec1[0], rec2[0])
right_line = min(rec1[2], rec2[2])
top_line = max(rec1[1], rec2[1])
bottom_line = min(rec1[3],rec2[3])
# 判断是否存在相并区域
if left_line >= right_line or top_line >= bottom_line:
intersect = 0
else:
intersect = (right_line - left_line) * (bootom_line - top_line)
IOU = (intersect / (sum_area - intersect)) * 1.0
TP TN FP FN
混淆矩阵:
-
precision 精确率
TP+FP:模型预测的全体positive,即预测的正类数目。
TP:模型正确预测正例的数目
即P表示预测正确图片的个数占总的正类预测个数的比例。 -
recall 查全率
TP+FN:模型预测正确的数目(包括正例和负例)
TP:模型正确预测正例的数目
即R表示正类被预测的数目占全体正确预测数目的比例。 -
F1-score
F1值是precision和recall的调和平均值,旨在尽可能提高precision和recall的同时,也希望二者之间的差异尽可能小。 -
PR曲线
P-R曲线是精确率 VS 召回率的曲线,即以recall为横坐标,precision为纵坐标。 -
AP (average precision)
AP是平均精准度,即对PR曲线上precision值求平均值。
-
mAP
AP值在所有类别下的均值 -
TPR FPR
TPR:在所有实际为阳性样本中,被正确判断为阳性比率。(召回率)
FRP:假阳性,在所有实际为阴性的样本中,被错误地判断为阳性的比率。
-
ROC曲线
FPR为横轴,TPR为纵轴,得到ROC曲线。 -
AUC曲线
AUC被定义为ROC曲线下与坐标轴围成的面积(不大于1),AUC越接近1,模型性能越好。AUC代表着模型预测正例大于预测负类的概率
目标检测器组成部分
一个目标检测器包括两部分:backbone架构和检测器。
backbone架构
backbone架构是对输入图像进行特征提取,常利用图像分类网络作为backbone。
例如:AlexNet、VGG、GoogleNet、ResNet、ResNeXt、CSPNet、EfficientNet。
检测器
传统检测方法
Viola-Jones
用于人脸检测中,常用于检测人的正面脸相,对于侧脸图像效果不是很稳健。
算法步骤:
- 利用Haar特征描述人脸特征
- 建立积分图像,利用该图像快速获取几种不同的矩形特征
- 利用Adaboost算法进行训练
- 建立层级分类器
- 非极大值抑制
Histogram of Oriented Gradients(HOG)
HOG:方向梯度直方图特征,一种可以快速描述物体局部梯度特征的描述子。
HOG首先将窗口划分成若干个块,然后把每一块中划分若干个元胞,再统计每个元胞内部的梯度方向直方图作为该元胞的特征向量,接着把每一个元胞的特征向量相连接作为一个块的特征向量,最后把块的特征向量相连接,即为该窗口的HOG特征描述子
Deformable Parts Model(DPM)
DPM可以看作HOG的扩展,大体思路与HOG一致。
DPM采用分而治之的策略,利用目标的个别部分进行检测,即在推理阶段,目标的各个部分被单独检测,它们的一个可能的排列被标记为检测结果。利用多个模型,一个模型将被指定捕捉整个图像的一部分,并对所有这些部分重复这个过程,然后,另一个模型移除那些不可能的组合,来生成最终检测。
双阶段检测器
第一阶段网络用于候选区域提取;第二阶段对提取的候选区域进行分类和精确坐标回归。
例如:R-CNN、SPP-Net、Fast R-CNN、Faster R-CNN、FPN、R-FCN、Mask R-CNN、DetectoRS
单阶段检测器
只利用一级网络来完成分类和回归这两个任务。
例如:YOLO系列、SSD、RetinaNet、CenterNet、EfficientDet、Swin Transformer。
Anchor Free
取消anchor生成机制,加快速度。
例如CenterNet、CornerNet、 Fcos
版权声明:本文为CSDN博主「为算法工程师」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/gg13213/article/details/121422502
暂无评论