我是按照【语义分割与MMSegmentation】 https://www.bilibili.com/video/BV1qN411z7hz/?share_source=copy_web&vd_source=e6512529dd3ff573c1205bd41d938fec里面的步骤来跑的。
我的标签只有两个类别
0:background
255: liver
注意以下几点:
1.在/root/autodl-tmp/mmsegmentation/mmseg/datasets/transforms/loading.py中添加第118行代码,经过调试发现读取label数据的时候,对于单通道数据,像素值要和类别的id
相等。比如我的数’background’,‘building’在单通道的label数据中要像素值分别要为‘background’=0,‘building’= 1,因为我的数据是background’=0,‘building’= 255,所以我修改了源代码将标签中为255的像素值改成了1。
2.遇到的评价指标为0或者100%的问题
修改LOSS函数应该可以解决此问题,修改/root/autodl-tmp/mmsegmentation/configs/_base_/models/upernet_swin.py中第46,59行代码,将函数改成’DiceLoss‘函数。