Open shbkukuk opened 9 months ago
Hello!
Thanks for your interest in our project.
We have corrected this explanation.
We used as the reference for stain normalization the following image from the TUPAC-16 dataset: 67/01.tif
. The file sample.jpg
should be sample.tif
instead. You can find more updated details in Mitosis-UTS/local_data/color_norm/README.md
.
Regards,
Mitosis-UTS Team.
@jusiro I would like to express my gratitude for your prompt response. I have thoroughly reviewed your paper, and while it provides comprehensive insights into the application of normalization, I couldn't find specific information on how the model's performance improves after the normalization process. My curiosity stems from a desire to understand the comparative results between applying normalization and not applying it. If there are any findings or results related to the performance of the model without normalization, I would greatly appreciate it if you could share them.
bests regards
@shbkukuk As for the impact of stain normalization, we found it to be beneficial especially when evaluating on external datasets (e.g., training on TUPAC16 and evaluating on MIDOG21). However, our work focuses on weakly supervised localization and hard sample mining, so we do not provide comprehensive experiments in this regard. We apply stain normalization as a safety measure, to minimize the impact of inter-center variability in our experiments.
Please feel free to use the Mitosis-UTS repository to further explore this topic.
Regards,
Mitosis-UTS Team.
Thank you for your prompt response. I have another question regarding training on the MIDOG21 dataset. Following your guidance, I successfully applied stain normalization. However, I encountered a RAM issue as your dataset loading approach loads all images into an array. To address this, I made some modifications to your code by loading images in the get_item
function. While this resolves the memory issue, I'm now facing challenges in obtaining the mean-full loss and F1 score as the implementation is not straightforward.
Could you please guide me on how to replicate your implementation, considering the changes I made in loading images within the getitem
function? I appreciate your assistance.
` def getitem(self, index): im = np.array(io.imread(self.dir_dataset + self.dir_images + '/' + self.images[index]), dtype=np.float32) im = imutils.resize(im, height=self.input_shape[1])
# Stain Normalization
if self.stain_normalization:
if not os.path.exists(self.dir_dataset + 'images_norm/' + self.images[index]):
im = self.color_normalization_function(im)
if self.save_normalized:
io.imsave(self.dir_dataset + 'images_norm/' + self.images[index], np.uint8(im))
im = np.transpose(im, (2, 0, 1))
# Intensity normalization
im = im / 255
if os.path.isfile(self.dir_dataset + self.dir_masks + '/' + self.images[index]):
mask = np.array(io.imread(self.dir_dataset + self.dir_masks + '/' + self.images[index]))
mask = imutils.resize(mask, height=self.input_shape[1]) / 255
mask = np.double(mask > 0)
else:
mask = np.zeros((self.input_shape[1], self.input_shape[1]))
x= im.astype(np.float16)
m = mask.astype(np.int)
y = np.array([np.max(mask[:, :]).astype(np.int)])
n= np.sum(mask[:, :])
return x, y, m`
Hello, firstly i want to thank you for excellent work. I was trying reproduce your implementation with MIDOG21 dataset. I download TUPAC-16 for colour normalization sample but i could not find images that is ID 02. So how can i arrive the sample.jpg ?