《人工智能概论》实验7 知识点复习提纲 第一部分知识点复习提纲一、香蕉数据集d2l内置1.1 数据集基本信息来源李沐教材d2l.load_data_bananas(batch_size)。图像尺寸256×256像素。数据量训练集1000张验证集100张。每张图像包含一个香蕉类别0背景多样。加载返回train_iter, val_iter每个batch包含(images, labels)。1.2 标签格式labels形状(batch_size, 每张图像的标注数, 5)。每张图像只有一个香蕉所以标注数1。批量处理时若某图无目标会用-1填充。每个标注是长度为5的数组[类别, x1, y1, x2, y2]。类别0表示香蕉-1表示填充无效。(x1,y1)边界框左上角坐标归一化到[0,1]。(x2,y2)边界框右下角坐标归一化到[0,1]。示例batch[1][0][0]是一个标注例如[0, 0.2, 0.3, 0.7, 0.8]。1.3 为什么归一化不同图像尺寸统一处理模型不依赖绝对像素值。便于数据增强缩放、裁剪等后坐标仍有效。二、YOLO标注格式与转换2.1 YOLO格式每行表示一个目标class x_center y_center width height。所有值归一化到[0,1]相对于图像宽高。文件存储每张图像对应一个同名.txt标签文件。2.2 转换公式d2l → YOLO已知(x1, y1, x2, y2)归一化坐标则x_center (x1 x2) / 2 y_center (y1 y2) / 2 width x2 - x1 height y2 - y1注意结果仍在[0,1]范围内。2.3 为什么YOLO用这种格式直接预测中心点偏移和宽高缩放损失函数计算简单。归一化便于不同尺度图像训练。三、迁移学习3.1 概念预训练在大型通用数据集如COCO80类上训练模型使其学会通用视觉特征边缘、纹理、形状等。微调在预训练模型基础上用目标任务的小数据集继续训练通常用小学习率使模型适应新类别。优势不需要大量标注数据。训练速度快效果好。避免从零训练。3.2 本实验体现加载yolov8n.ptCOCO预训练权重。COCO数据集不包含香蕉可以验证model.names中没有banana。在香蕉数据集上微调模型学会检测香蕉。四、YOLOv8训练参数data: 数据配置文件路径包含类别数、类别名、路径。epochs: 训练轮数本实验10轮。imgsz: 输入图像尺寸256。batch: 批大小16。device: cuda:0GPU。patience: 早停验证指标连续5轮不提升则停止。五、评估指标5.1 IoU交并比公式IoU 交集面积 / 并集面积。取值范围[0,1]。作用衡量预测框与真实框的重叠程度常用于判断检测是否成功一般IoU0.5认为正确。5.2 mAPmean Average PrecisionmAP50IoU阈值0.5时的平均精度。mAP50-95计算IoU阈值从0.5到0.95步长0.05的平均mAP。更严格因为要求模型在不同重叠程度下都准确。5.3 精确率Precision与召回率Recall精确率 TP / (TP FP) → 预测为真的里面有多少是真的。召回率 TP / (TP FN) → 真的里面有多少被预测出来了。六、非极大值抑制NMS6.1 为什么需要NMS检测时一个目标可能产生多个重叠的候选框需要去除冗余。6.2 算法步骤所有框按置信度得分降序排序。选择最高分框加入保留列表。计算其余框与该框的IoU删除IoU 阈值的框。重复直到无框剩余。6.3 IoU阈值的影响阈值越低删除条件越宽松更多框被删除 → 保留的框越少。阈值越高删除条件越严格保留的框越多可能有冗余。七、YOLO网格划分的优势滑动窗口需要枚举所有位置和尺度计算量巨大。YOLO将图像划分为S×S网格每个网格预测固定数量的边界框。一次前向传播得到所有候选框实时性强。八、训练损失曲线分析训练损失模型在训练集上的拟合程度。验证损失模型在未见数据上的泛化能力。过拟合训练损失下降验证损失上升。欠拟合两者都高且不降。良好两者同步下降并趋于平稳。九、对比实验预训练 vs 微调预训练模型检测COCO图片能检测COCO中的80类物体如人、球等效果较好。预训练模型检测香蕉图片无法检测香蕉因为COCO无香蕉类可能输出无目标或错误类别。微调后模型检测香蕉图片能准确检测香蕉边界框准确。结论迁移学习让模型学会新类别无需从头训练。十、扩展多类别检测配置若要检测香蕉和苹果两类需要修改数据集标注中包含两类类别0和1。配置文件data.yaml中nc: 2。names: [banana, apple]。重新训练微调。第二部分考试题一、单选题每题3分共15分香蕉数据集中每张图像标注的边界框坐标是 A. 绝对像素坐标B. 归一化到[0,1]的坐标C. 相对于图像中心的坐标D. 极坐标YOLO格式的标签中width和height表示 A. 边界框的像素宽度和高度B. 边界框的归一化宽度和高度C. 边界框对角线长度D. 边界框的面积在目标检测中IoU的取值范围是 A. [0,1]B. [0,∞)C. [-1,1]D. (0,1]关于迁移学习下列说法正确的是 A. 必须使用与目标任务完全相同的数据集进行预训练B. 微调时只能调整最后一层其他层必须冻结C. 可以大幅减少对标注数据量的需求D. 预训练模型在COCO上学到的特征对香蕉检测完全无用非极大值抑制NMS中删除一个候选框的条件是它与当前最高分框的 超过阈值。A. 欧氏距离B. 余弦相似度C. IoUD. 面积比二、填空题每空2分共20分香蕉数据集的图像尺寸为×像素训练集共有 ______ 张图像。将d2l格式的边界框(x1, y1, x2, y2)转换为YOLO格式时中心点坐标计算公式为x_center ______,y_center ______。评估指标中mAP50表示IoU阈值为 ______ 时的平均精度mAP50-95比mAP50 ______填“更严格”或“更宽松”。在NMS算法中iou_threshold设置得越 ______填“高”或“低”保留的框越少。YOLO将图像划分为×的网格。三、判断题正确打“√”错误打“×”每题2分共10分 COCO数据集的80个类别中包含香蕉因此不需要迁移学习。 YOLO格式的标签中x_center和y_center的取值范围是 [0,1]。 IoU值越大表示两个框重叠程度越小。 训练时若训练损失下降但验证损失上升说明模型发生了过拟合。 迁移学习时通常会用较小的学习率进行微调。四、简答题共35分简答题13分batch[1].shape的输出结果应该是什么形状第二维代表什么简答题24分YOLO格式的标注与d2l原始格式有什么不同YOLO标签中的x_center, y_center, width, height是什么含义简答题34分什么是迁移学习本实验中如何体现迁移学习的思想简答题44分mAP50和mAP50-95分别代表什么哪个指标更严格简答题54分IoU的取值范围是多少它在目标检测中有什么作用简答题64分对比三组实验结果预训练模型检测COCO图片、预训练模型检测香蕉图片、微调后模型检测香蕉图片你发现了什么这说明迁移学习有什么作用简答题74分IoU阈值越低保留的框越少还是越多为什么简答题84分YOLO将图像划分为网格的设计相比于滑动窗口有什么优势简答题94分如果要训练一个能同时检测香蕉和苹果的模型需要修改哪些配置五、计算题10分已知两个边界框绝对像素坐标框A左上角(20,30)右下角(80,90)框B左上角(50,60)右下角(100,120)计算1两个框的交集面积。2两个框的并集面积。3IoU值保留三位小数。六、代码填空题每空2分共10分说明以下代码片段完整可运行请根据上下文和YOLO格式规范填写______处的代码。代码填空1YOLO坐标转换# 从d2l数据集中读取一个标注示例值 import torch import numpy as np label torch.tensor([0, 0.2, 0.3, 0.7, 0.8]) # [类别, x1, y1, x2, y2] x1, y1, x2, y2 label[1:5].numpy() # 转换为YOLO格式 x_center _____________ # 例如 (0.2 0.7) / 2 0.45 y_center _____________ # 例如 (0.3 0.8) / 2 0.55 width _____________ # 例如 0.7 - 0.2 0.5 height _____________ # 例如 0.8 - 0.3 0.5 print(fYOLO标签: 0 {x_center:.6f} {y_center:.6f} {width:.6f} {height:.6f})代码填空2IoU计算—— 本题无需填空理解即可def compute_iou(box1, box2): x1 max(box1[0], box2[0]) y1 max(box1[1], box2[1]) x2 min(box1[2], box2[2]) y2 min(box1[3], box2[3]) inter_area max(0, x2 - x1) * max(0, y2 - y1) area1 (box1[2] - box1[0]) * (box1[3] - box1[1]) area2 (box2[2] - box2[0]) * (box2[3] - box2[1]) union_area area1 area2 - inter_area iou inter_area / (union_area 1e-6) return iou代码填空3NMS中的条件判断def nms(boxes, scores, iou_threshold0.5): indices sorted(range(len(scores)), keylambda i: scores[i], reverseTrue) keep [] while indices: current indices.pop(0) keep.append(current) remaining [] for idx in indices: if compute_iou(boxes[current], boxes[idx]) _______: remaining.append(idx) indices remaining return keep第三部分参考答案与超详细解析一、单选题1. B解析d2l香蕉数据集的标签中坐标已经通过除以图像宽度和高度归一化到[0,1]区间。这样做的优点是无论图像尺寸如何变化坐标值都在标准范围内便于模型学习。如果选A绝对坐标当图像缩放时坐标会失效。2. B解析YOLO格式要求所有数值归一化。width (x2-x1) / 原图宽height (y2-y1) / 原图高因此它们在0~1之间。若选A则不同尺寸图像无法统一处理。3. A解析IoU 交集面积 / 并集面积。两个框不相交时交集0IoU0完全重合时交集并集IoU1。所以取值范围是[0,1]。选项D不包含0错误。4. C解析迁移学习的核心是利用预训练模型学到的通用特征边缘、纹理等只需少量目标域标注数据即可获得好效果。A错不需要完全相同的数据集B错可以微调多层只是常用小学习率D错通用特征非常有用。5. C解析NMS判断两个框是否冗余重叠用的是IoU。若IoU大于阈值说明它们几乎覆盖同一区域保留得分高的删除得分低的。其他选项与重叠程度无关。二、填空题6. 2562561000解析实验代码中edge_size 256训练迭代器共1000张。7. (x1 x2)/2(y1 y2)/2解析中心点坐标是左上角和右下角坐标的平均值。8. 0.5更严格解析mAP50只看IoU0.5一个阈值mAP50-95计算多个阈值下的平均要求边界框更精准因此更严格。9. 低解析阈值低意味着即使两个框只有少量重叠如IoU0.3也会被删除因此保留的框更少。10. SS或写“S×S”也可写具体数值如13×13但不确定答S×S即可解析YOLO的核心设计是划分网格网格数量是超参数。三、判断题11. ×COCO数据集不包含香蕉类所以需要迁移学习12. √所有YOLO坐标都是归一化的13. ×IoU越大重叠程度越大14. √过拟合的典型特征15. √小学习率可以保护预训练学到的特征不被破坏四、简答题超详细解析简答题1batch[1].shape输出(4, 1, 5)。第二维代表每张图像中标注的边界框数量香蕉数据集每张图只有一个香蕉故为1。若某图无目标会用-1填充。简答题2d2l格式[类别, x1, y1, x2, y2]左上角右下角归一化。YOLO格式[类别, x_center, y_center, width, height]中心点宽高归一化。x_center, y_center是边界框中心点的归一化坐标width, height是归一化的宽和高。简答题3迁移学习将在大型数据集上预训练的模型作为起点然后在特定小数据集上微调。本实验中使用在COCO80类上预训练的YOLOv8n模型然后在香蕉数据集单类上继续训练。模型已经学会通用特征只需少量香蕉图像就能学会检测香蕉。简答题4mAP50IoU阈值0.5时的平均精度。mAP50-95计算IoU阈值从0.5到0.95步长0.05的平均mAP。后者更严格因为要求模型在不同重叠程度下都能精准检测。简答题5IoU ∈ [0,1]。作用衡量预测框与真实框的重叠程度是目标检测中的核心评价指标也用于NMS中判断冗余框IoU大于阈值则删除。简答题6预训练模型能检测COCO图片中的多种物体人、球等但不能检测香蕉因为COCO无香蕉类。微调后模型能准确检测香蕉。这说明迁移学习让模型保留通用特征只需少量新数据就能快速学会新类别避免从头训练。简答题7IoU阈值越低保留的框越少。因为低阈值下两个框只要少量重叠如IoU0.3就被视为冗余并删除导致更多框被抑制。简答题8滑动窗口需要枚举所有可能的位置和尺度计算量巨大。YOLO将图像划分为网格每个网格预测固定数量的边界框一次前向传播就能得到所有候选框速度极快且能检测不同长宽比的目标。简答题9需要修改数据集中标注两类香蕉和苹果。修改配置文件中的类别数nc2。修改类别名称列表names: [banana, apple]。重新训练微调。五、计算题已知A左上(20,30)右下(80,90) → 宽60高60面积3600。B左上(50,60)右下(100,120) → 宽50高60面积3000。交集左边界 max(20,50)50上边界 max(30,60)60右边界 min(80,100)80下边界 min(90,120)90交集的宽 80-5030高 90-6030 → 面积 30×30900。并集并集面积 3600 3000 - 900 5700。IoU 900 / 5700 ≈0.158保留三位小数。六、代码填空题代码填空1x_center (x1 x2) / 2 y_center (y1 y2) / 2 width x2 - x1 height y2 - y1解析中心点坐标是左上角和右下角的平均值宽和高直接相减坐标已归一化。代码填空3if compute_iou(boxes[current], boxes[idx]) iou_threshold:解析NMS中只有当候选框与当前最高分框的IoU小于阈值时才保留即不重叠或重叠很少。如果IoU大于等于阈值则删除。iou_threshold是函数参数通常设为0.5。