Implementation Details
The backbone model used by IDUS is U-Net[1]} equipped with ResNet-18 encoder that pre-trained on ImageNet [2]}.  REF  shows the decoder and segmentation head (pixel-level linear classifier) of U-Net. For the initialization, we first concatenate the feature maps of the output of the first and third convolutional blocks in ResNet-18 of every image; and then, we use the idea of texton [3]} to initialize the pseudo labels and a two-step texton selection [4]} to reduce the computation time. We train the IDUS with mini-batch size fifteen on an NVIDIA Titan X GPU (12GB) with the PyTorch package [5]}. The loss function we use is the mean of dice loss [6]} and cross-entropy loss. We use weights \(w_m^{ept} = 1/r_m\)  and \(w_m^{dice} = 1/\sqrt{r_m}\) , where \(r_m\)  was the proportion of \(m\) th class label in training samples, to balance the class weights of two losses, respectively. Batch normalization layers [7]} are added after each convolutional layer (except the segmentation head) to accelerate the loss convergence. The model's parameters are initialed by a uniform distribution following the scaling of [8]} and optimized by Adam [9]} algorithm with weight decay value \(10^{-9}\) . In every iteration, the learning rate of the model is initialized at \(10^{-4}\)  and decreased by \(0.1\)  every fifty epochs. The updating interval of superpixel labels and boundaries is 200 and we do this five times throughout training. Consequently, we train for 1000 epochs where every 200 epochs we update the superpixel labels and boundaries.
