以下是 YOLOv5-seg 在代码层面的核心改动详解,涵盖训练/测试入口、数据加载、网络结构、损失函数及评价指标的调整。结合源码结构与实际项目经验,分模块说明:
一、代码入口变动
YOLOv5-seg 继承了 YOLOv5 的基础框架,但针对分割任务调整了以下入口:
-
训练入口 (
train.py
)- 新增分割参数:通过
--seg
标志启用分割模式,加载分割模型配置(yolov5s-seg.yaml
)。 - 损失函数扩展:在
train()
函数中同时计算检测损失(det_loss
)和分割损失(seg_loss
)。
python train.py --data coco128-seg.yaml --cfg yolov5s-seg.yaml --weights yolov5s-seg.pt --img 640 --batch 16 --seg
- 新增分割参数:通过
-
验证/测试入口 (
val.py
)