CS231N Lecture15 目标检测
Lecture15 Object Detection
物体检测:Classification+Localization(分类+定位)
多任务损失:

滑动窗口
使用滑动窗口来检测物体(将窗口内图片进行分类,k种类别or背景)

R-CNN : Region-Based CNN
存在的问题:运行过慢
将选择的区域(RoI : region of Interest)作为input,扭曲后再进入Conv Net进行分类。
扭曲时使用四个参数:(超参数)
tx,ty对其大小进行改变;tw、th对其进行放缩。

测试时的步骤如下:
(第三步可以选择的策略:对背景/每个种类设置预设值,或者采用前k个提议;使用验证集来测试,并不包含在训练过程)

比较边界框:Intersection over Union(IoU)
得到比值(类似于交集/并集)

去除重叠边界框: Non-Max Suppression(NMS 非最大抑制)
一个简单的贪婪算法:将具有高重叠的框删去(例如高于0.7的IoU)
具体步骤:
1.选择次高分数的框
2.测定与该框IoU大于阈值的其他框,并删去
3.重复第一步
存在问题:当图片中确实有很多高重叠对象,无法识别

Fast R-CNN
存在的问题:主要花费时间在region proposal上
步骤:
- Run whole image through ConvNet 将图片通过卷积层(没有全连接层,被称为backbone network),得到卷积后的特征图(Image features map) ——主要的计算发生在backbone
- 使用 Region proposal method(如selective search),得到原始输入(image)上的区域,再对特征图对应区域裁剪&调整大小
- 在裁剪得到的区域上运行Pre-Region Network (轻量级CNN网络) , 输出分类分数和边界框变换(Class+bbox,可以由不同结构网络得到)

Cropping Features 裁剪特征
1.Rol Pool :RoI池化
例如:将 RoI 划分为2x2的网格,每个子区域相等;再对子区域进行最大池化;之后可以传入cnn进行前向or反向传播

2.Rol Align
使输入特征和输出特征更好地对齐。
步骤:1.对每个子区域用双线性插值采样;
2.对随机点 (x,y) ,其特征是附近四个子区域单元的线性组合:(如图中公式)(可微操作)
3.对每个子区域进行最大池化

Faster R-CNN:Make CNN do proposals!
放弃选择性搜索的启发式算法,训练神经网络来proposal.
不同之处:将特征图传入RPN中,来获取proposals

Region Proposal Network(RPN)
1.对每个点使用固定尺寸的anchor box,predict 这个anchor box是否包含一个物体(通过binary classification)
2.对于positive的方框,还要预测从锚点到ground truth方框的修正(每像素回归4个数字)
3.在实践中,使用k个不同大小的锚框,根据“objectness”得分对 Kx20x15 个框进行排序,取前 300 个作为我们的提案

loss
这个模型有四个loss;

忽略的细节
如何确定锚点?
如何采样正样本?

fast R-CNN分为两个阶段

Single-Stage Object Detection
在每个网格单元内:
- 从每个 B个基本框回归到具有5 个数字的最终框:(dx、dy、dh、dw、confidence)
- 预测每个 C类的分数(包括背景作为一个类)
- 看起来很像 RPN,但是特定于类别的!

YOLO
输出:一组边界框(bounding boxes),每个框都有一个置信度值和与之对应的类标签。
主要步骤:
1.首先将输入图像划分成一个S x S的网格。每个网格单元负责检测该区域内的物体。
2.每个网格单元预测多个边界框(通常是B个),每个框包含以下信息:
- 物体的位置(通过边界框的中心坐标、宽度和高度表示)
- 置信度(表示该框包含物体的概率,且与框的准确性相关)
3.每个网格单元还预测类概率:每个框与特定类别的匹配程度
损失:YOLO采用复合损失函数进行训练,主要包括:
- 定位损失:用于衡量预测边界框与真实边界框之间的差距(通常采用均方误差来计算)。
- 置信度损失:用于衡量预测的置信度与实际框是否包含物体的差异。
- 类别损失:用于衡量预测的类别概率与实际类别之间的差距。

衡量模型指标
1.Mean Average Precision (mAP 平均精度)
对精度和召回率都有权衡
计算步骤:
1.在测试集上使用模型
2.对每个类别,计算AP(Average Precision):
a. 对每次检测:
1.如果与GT box的IoU值>0.5,认为positive,否则negative
2.在PR曲线上画点
b.AP = PR曲线下的面积
3.计算AP平均值,得到mAP
4.“COCO mAP”:对不同值的IoU(0.5,0.55,0.6…,0.95)计算mAP,最终取平均

- Title: CS231N Lecture15 目标检测
- Author: Rongying Liu
- Created at : 2025-03-05 19:32:28
- Updated at : 2025-03-05 20:01:03
- Link: https://github.com/Roinnnn11/Roinnnn11.github.io/2025/03/05/CS231N/15 目标检测/
- License: This work is licensed under CC BY-NC-SA 4.0.