YOLO 目标检测中三个关键参数
目标检测模型的效果高度依赖三个核心参数的调优:置信度阈值、IoU 阈值和图像尺寸。本文详细解析这三个参数的作用、推荐值及实战组合。
一、置信度阈值(Confidence Threshold)
定义
置信度是模型对「检测框内存在目标」的确信程度,取值范围 0~1。
- 值越高 → 模型越自信,框越可靠
- 值越低 → 可能包含噪声或模糊目标
作用
过滤低置信度预测框,减少误报。
示例
1 | results = model(img, conf=0.5) |
- 只保留置信度 ≥ 0.5 的检测结果
- 置信度 0.4 的头盔会被丢弃
推荐值
| 场景 | 推荐值 | 说明 |
|---|---|---|
| 高召回(不漏检) | 0.3~0.4 |
安防监控,宁可误报不漏检 |
| 平衡精度与召回 | 0.5 |
通用推荐 |
| 高精度(少误报) | 0.6~0.7 |
自动报警系统 |
⚠️ 太高漏检,太低误报
二、IoU 阈值(Intersection over Union)
定义
IoU 是两个边界框的重叠程度:
$$IoU = \frac{交集面积}{并集面积}$$
0→ 完全不重叠1→ 完全重合
作用
用于非极大值抑制(NMS),去除重复检测框。
示例
1 | results = model(img, iou=0.45) |
- 两个框 IoU > 0.45 → 认为是同一目标,只保留置信度高的
推荐值
| IoU 值 | 效果 |
|---|---|
0.2~0.3 |
严格,易漏检 |
0.4~0.5 |
推荐,平衡去重与保留 |
0.6~0.7 |
宽松,可能保留多框 |
⚠️ 太低过度去重,太高重复框多
三、图像尺寸(Image Size)
定义
推理时输入模型的图像尺寸,如 640x640。训练时固定尺寸,推理时自动缩放。
作用
- 决定模型看到的分辨率
- 影响检测精度和推理速度
示例
1 | results = model(img, imgsz=640) |
图像保持比例缩放,短边拉伸,长边补灰边。
推荐值
| imgsz | 精度 | 速度 | 适用场景 |
|---|---|---|---|
320 |
较低 | 快 | 实时性高、大目标 |
480 |
中等 | 快 | 小目标不多 |
640 |
高 | 一般 | 通用推荐 |
800~960 |
更高 | 慢 | 小目标多(远处物体) |
⚠️ 太小小目标丢失,太大计算慢
四、参数对比总结
| 参数 | 全称 | 作用 | 默认值 | 推荐值 |
|---|---|---|---|---|
conf |
Confidence | 过滤低置信预测 | 0.25 |
0.5 |
iou |
Intersection over Union | 去除重复框 | 0.45 |
0.45 |
imgsz |
Image Size | 输入分辨率 | 640 |
640 |
五、实战代码
1 | from ultralytics import YOLO |
六、场景组合推荐
| 场景 | conf | iou | imgsz | 说明 |
|---|---|---|---|---|
| 通用检测 | 0.5 |
0.45 |
640 |
推荐起点 |
| 安全报警 | 0.6 |
0.45 |
640 |
减少误报 |
| 小目标检测 | 0.4 |
0.45 |
800 |
提高召回率 |
| 实时检测 | 0.5 |
0.45 |
480 |
提升速度 |
七、调优建议
- 先用默认值测试:
conf=0.5, iou=0.45, imgsz=640 - 根据结果微调:
- 漏检 → 降低
conf或增大imgsz - 多框 → 降低
iou - 太慢 → 降低
imgsz
- 漏检 → 降低
- 可视化验证:保存带标签图像观察效果