openseg-group / openseg.pytorch

The official Pytorch implementation of OCNet, OCRNet, and SegFix.
MIT License
1.19k stars 140 forks source link

About Segfix #101

Open DuHao55 opened 1 month ago

DuHao55 commented 1 month ago

I'm using hrnet2w20 to train the segfix network on my own dataset (label_list=[0, 1, 2, 3]) for refining the prediction results. Since one of my foreground classes is cracks, which are relatively small, I set both max-distance and min-distance to 1 to allow it to find the edge region better. However, the training process was a bit incomprehensible to me.When training to the 3rd epoch, its Result for dir (GT) ACC reached 63%, which is the highest. Subsequent to the training process, although the loss keeps getting smaller, the ACC of all of them doesn't get higher as a result.

  1. What is the cause of the above situation? 2, I read in your reply to the other question that the segfix network works when the ACC is over 60%. I trained to get the 3rd epoch (ACC of 63%) to generate offset_map on the test set, and then applied it to the results predicted by other segmentation models. The result is that pixel points that are not [0,1,2,3] appear at the edges of the object. Is this caused by mode='bilinear' in the following code? x = F.grid_sample(x.unsqueeze(1).float(), grid, padding_mode='border', mode='bilinear').squeeze().numpy() I changed mode='bilinear' to mode='nearst' again,although there will be no non-[0,1,2,3] pixel points,but the refined prediction results obtained by both methods, the mIoU is not improved but decreased by about 3%. The cracks segmented by semantic segmentation are internally intact. However, after segfix, there are so many pixels inside the crack that are treated as background. 1 2 Why does this cause the mIoU to drop?And why the cracks got so bad? @hsfzxjy @PkuRainBow
DuHao55 commented 1 month ago

Here is the log file of my training output for your reference. segfix_hrnet_hrnet2x20_segfixloss.log