YOLOv5-seg的Segment
模块通过继承Detect
类并扩展分割功能实现实例分割,其核心设计包含以下五部分技术实现:
一、模块继承与功能扩展
Segment
类继承自目标检测头Detect
,保留原有检测功能(边界框回归、分类预测),新增分割分支处理掩模生成。这种设计复用检测模块的锚框匹配、坐标计算等基础能力,减少冗余代码。
代码实现上,Segment
类在初始化时调用父类构造函数:
class Segment(Detect):
# YOLOv5 Segment head for segmentation models
def __init__(self, nc=80, anchors=(), nm=32, npr=256, ch=(), inplace=True):
super().__init__(nc, anchors, ch, inplace)
self.nm = nm # number of masks
self.npr = npr # number of protos
self.no = 5 + nc + self.nm # number of outputs per anchor
self.m = nn.Mo