LiWentomng / Point2Mask

The code for "Point2Mask: Point-supervised Panoptic Segmentation via Optimal Transport", ICCV2023
Apache License 2.0
63 stars 6 forks source link

default supervision #2

Open DevinCheung opened 1 year ago

DevinCheung commented 1 year ago

Hi,

Thanks for your awesome work! I am not sure whether I tried accurately. But I found that the default setting uses full supervision (classification labels, bboxes, and masks). Although the path to point supervision is set in "coco_points.py" and "voc_points.py". They are actually not used during training. How to use point supervision properly? Also where is the edge detection model used? Thanks!

LiWentomng commented 1 year ago

@DevinCheung Hello, our data_load pipline still uses the same way like full mask supervision, while it loads the point-based mask label. Our data_load pipline may incur some confusion, we will refine the codes of this part.

For details, in the loss calculation , the "gt_labels_list" represents the categories of all the thing points, the "gt_masks_list" contains the corresponding masks for each point, and the "gt_semantics_list" indicates the category of each pixel (with non-labeled points represented as 255). These are all for point supervision. As for "gt_bboxes_list", we do not utilize it in our code.

Regarding the edge detection model, it is an optional component that can be employed for low-level edge detection in the line. Using low-level edge detection can result in some performance improvement, while it also demands more time for training. Therefore, we have opted to disable it by default. When using it, the edge model path should be specified in the corresponding config file, and set "use_low_level_edge" to True, as demonstrated here: https://github.com/LiWentomng/Point2Mask/blob/321353665a15c6a2ca92ca997d121dbb61464ac5/configs/point2mask/voc/voc_wsup_r50.py#L48-L49