-
Notifications
You must be signed in to change notification settings - Fork 36
Expand file tree
/
Copy pathquiz.json
More file actions
64 lines (64 loc) · 4.07 KB
/
Copy pathquiz.json
File metadata and controls
64 lines (64 loc) · 4.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
{
"questions": [
{
"stage": "pre",
"question": "为什么 Mask R-CNN 用 RoIAlign 取代了 RoIPool?",
"options": [
"RoIAlign 在 GPU 上更快",
"RoIPool 在多个步骤把框坐标四舍五入为整数,使特征图相对输入像素错位最多达一个特征图像素;RoIAlign 使用不做取整的双线性采样,保留了定位精度",
"RoIPool 只能在 CPU 上工作",
"RoIPool 涉及版权问题"
],
"correct": 1,
"explanation": "RoIPool 的取整会带来最多一个步长大小的错位(例如在 stride-32 特征图上是 32 像素)。RoIAlign 通过双线性插值在精确的浮点坐标处采样。这一改动在原论文中把 COCO 上的掩码 AP 提升了 3-4 个点,如今已成为每个重视定位的检测器的标准做法。"
},
{
"stage": "pre",
"question": "Mask R-CNN 的掩码头为每个提议、每个类别输出一个 28x28 的掩码。为什么按类别输出?",
"options": [
"因为二值掩码的反向传播需要按类别的通道",
"把掩码预测与分类解耦:掩码头只需分别学习每个类别的形状,因此分类器的决定不影响产生哪个掩码,只影响推理时读取哪个通道",
"二值掩码在单个通道中会溢出",
"论文要求这样做"
],
"correct": 1,
"explanation": "为每个提议、每个类别产生一个掩码,把掩码形状学习与分类解耦。在推理时你只读取与预测类别匹配的通道。这种多任务解耦很重要,因为掩码形状和类别概率是用不同梯度训练的不同目标。"
},
{
"stage": "post",
"question": "torchvision 的 Mask R-CNN 预测字典中 `labels` 从 1 开始,而不是 0。为什么?",
"options": [
"遗留 bug",
"类别 0 被保留给背景;用户类别始终从 1 开始计数,这样分类头就能把背景当作一个有自己 logits 和梯度的真实类别",
"torchvision 全程使用从 1 开始的索引",
"是训练数据决定的"
],
"correct": 1,
"explanation": "大多数检测器把背景当作类别 0,把显式的前景类别当作 1..C。在 (C+1) 个类别上的 softmax 让网络能够主动预测“这里没有目标”,而不只是对所有类别给出低置信度。一个有 4 个真实类别的数据集在替换预测器时需要 num_classes = 5。"
},
{
"stage": "post",
"question": "你在一个 500 张图像的数据集上微调 Mask R-CNN,验证 mAP 停滞而训练损失持续下降。首先应该尝试什么?",
"options": [
"增加更多 epoch",
"冻结主干和 FPN,使模型只微调 RPN 和各头部;500 张图像太少,无法在不过拟合的情况下更新 2300 万个主干参数",
"改用分割用的 U-Net",
"使用更高的学习率"
],
"correct": 1,
"explanation": "在小数据集上,你没有足够的信号去微调每个参数。冻结预训练的主干和 FPN(ImageNet + COCO 特征)、只训练 RPN 目标置信度头和分类/掩码这两个头,是标准做法,通常一次训练就能解决这种停滞。"
},
{
"stage": "post",
"question": "Mask R-CNN 内部的 FPN 有四个层级(P2、P3、P4、P5),步长分别为 4、8、16、32。为什么不只用一个层级?",
"options": [
"为了占用更多 GPU 内存",
"自然图像中的目标跨越一系列尺度;把每个提议路由到与其大小匹配的 FPN 层级,能给头部一张对该目标具有合适感受野的特征图,这严格优于总是使用单一尺度",
"四个层级是随意定的",
"为了减少参数量"
],
"correct": 1,
"explanation": "一个小目标在 stride-32 特征图上只占一个单元,几乎没有空间信息。FPN 把小目标路由到高分辨率的浅层(P2),把大目标路由到低分辨率的深层(P5),使感受野与目标大小相匹配。这就是为什么每个现代检测器都有一个金字塔。"
}
]
}