模型架构
目标检测模型采用的是YOLOv5,语义分割模型采用的是部分BiSeNet结构,放张BiSeNet的结构图:
原作者目标检测使用的Coco数据集,语义分割使用的是Cityscapes数据集。
模型主要是在YOLOv5-5.0版本上进行修改的,基准模型采用的是YOLOv5m,语义分割的实现主要是在模型输出的Head部分添加了一个头: yolov5m_city_seg.yaml
代码中,在最后的输出部分,作者添加了3个和Detect平行的分割头,其中,SegMaskLab、SegMaskPSP、SegMaskBiSe、SegMaskBase分别是不同的独立结构,是作者实验所用。在yolo.py中,可以看到它们详细的结构:
下面是模型检测(detect.py)中的主要改动,在模型输出部分使用seg来获取语义分割结果,再利用提前定义好的颜色图Cityscapes_COLORMAP分别给分割部分上色。