Lecture 5: Introduction to Computer Vision (Part 3)
主题:Object Detection
Region Proposals
Find image regions that are likely contain objects (any object at all)
Selective Search
算法步骤
- 建立初始区域集
- 初始化相似度集合
- 对于每一对相邻的 region
- 计算相似度
- 当 时,循环
- 从 中找到最高的相似度
- 合并
- 删除与 相关的相似度
- 删除与 相关的相似度
- 计算与 相关的相似度集合
- 执行
RCNN
- 对输入 image 使用 selective search 选取 region proposals。
- 选择一个预训练的卷积神经网络。将每一个 region proposals 变形为网格需要的输入尺寸,并通过前向传播输出抽取的提议区域特征。
- 将每个提议区域的特征连同其标注的类别作为一个样本,训练多个 SVM 对目标分类。
- 将每个提议区域的特征连同其标注的类别作为一个样本,训练 Linear Regression 来预测真实边界框。
速度太慢!
Fast-RCNN
ROI Pooling
ROI Pooling 对于每个区域的输出形状是可以直接指定的。
例如,指定每个区域输出的高和宽分别为 和 。对于任何形状为 的 region proposals,该窗口将被划分为 子窗口网格,其中每个子窗口的大小约为 。在实践中,任何子窗口的高度和宽度向上取整。
由于取整操作引起的误差,对应在原本的图像上有可能是很大的误差。
ROI Align
可以做 bilinear interpolation!
Faster R-CNN
Region Proposal Network, RPN
- 使用卷积层变换 CNN 的输出,并将输出通道数记为 。
- 以 feature map 的每个像素为中心,生成多个不同大小和宽高比的锚框并标注它们。
- 使用锚框中心单元长度为 的特征,分别预测该锚框的类别(object or background)和边界框。
- 使用非极大值抑制,从预测类别为 object 的边界框中移除相似的结果。剩余的边界框即为 region proposals。
YOLO: You Only Look Once
- 给定 input image,先将 image 划分为 的格子。对于每个 grid cell,生成 个 base box。(在图示中, )。
- 在每个 grid cell 中
- 输出每一类的 score(把 background 也看成一类)。
- 对于每个 base box,再输出 (dx, dy, dh, dw, confidence) 5 个数字。
- 总共的输出:
其中,confidence 定义为
测试的时候,每个 box 属于某一类的概率即为
Focal Loss
- 解决目标检测任务中类别不平衡的问题。
- 通过调整困难样本和容易样本的权重,减小容易样本对总损失的影响,提升模型对困难样本的关注。
- 是样本的真实类别标签。
- 是模型对于真实类别 的预测概率,即 。
- 是针对类别 的权重。
- 是调节因子。
当 较小(较难预测的类别)时, 较大(接近 1),对 loss 的影响较大。
IoU 交并比
用于测量两个边界框的相似性。
GIoU
其中, 是 和 的最小外包围框。
YOLO Family
YOLO v2
- Class Prediction for each BOX, not GRID
- Pretrained Network
- Batch Normalization
- Anchor Box (using K-means)
YOLO v3
- Multi-Scale Prediction
在三个不同的尺度上(大、中、小目标)分别进行检测,特征图来自深度不同的网络层,提高的小物体的检测精度。
YOLO v4
- CIoU Loss