Project-MONAI / Project-MONAI/MONAILabel

Deepedit has low resolution and non responsive to new clicks

Open
#1,299 3 comments 0 reactions 1 assignee View on GitHub

@diazandr3s is already working on this.

Since Mar 20, 2023.

Dominant language
Python
Stars
891
Forks
269
Avg merge
15h 41m
Merged PRs (30d)
1

Description

Describe the bug
Testing deep edit model to annotate new volumes gives a great initial start. However the resolution is very low to our usecase. We need high res 1x1x1 or even more in the future. I think the reason is that deepedit resize the image. So for our large volumes of chest or full body CT the resolution is lost.

Another issue is the model doesn't seem to respond to my clicks. May be it is relegated to the low resolution issue above or something with the model itself

Side note: Any plans to redesign deep edit to take only 3 channels as deepgrow? I am not sure how we can use deepedit with more labels as the new 104 total segmentor CT data. Also fine tuning is basically impossible with this architecture.

Tied solutions
Retraining by replacing the resize with random crop, solved the resolution issue. However, I am unable to resolve the clicks being unresponsive

    def train_pre_transforms(self, context: Context):
        return [
            LoadImaged(keys=("image", "label"), reader="ITKReader"),
            EnsureChannelFirstd(keys=("image", "label")),
            NormalizeLabelsInDatasetd(keys="label", label_names=self._labels),
            Orientationd(keys=["image", "label"], axcodes="RAS"),
            # This transform may not work well for MR images
            Spacingd(keys=("image", "label"), pixdim=self.target_spacing, mode=("bilinear", "nearest")),
            ScaleIntensityRanged(keys="image", a_min=-175, a_max=250, b_min=0.0, b_max=1.0, clip=True),
            RandFlipd(keys=("image", "label"), spatial_axis=[0], prob=0.10),
            RandFlipd(keys=("image", "label"), spatial_axis=[1], prob=0.10),
            RandFlipd(keys=("image", "label"), spatial_axis=[2], prob=0.10),
            RandRotate90d(keys=("image", "label"), prob=0.10, max_k=3),
            RandShiftIntensityd(keys="image", offsets=0.10, prob=0.50),
            # Resized(keys=("image", "label"), spatial_size=self.spatial_size, mode=("area", "nearest")),
            RandCropByPosNegLabeld(keys=("image", "label"), label_key="label",
                                   pos=1, neg=1, num_samples=self.num_samples,spatial_size=self.spatial_size,),
            # Transforms for click simulation
            FindAllValidSlicesMissingLabelsd(keys="label", sids="sids"),
            AddInitialSeedPointMissingLabelsd(keys="label", guidance="guidance", sids="sids"),
            AddGuidanceSignalDeepEditd(keys="image", guidance="guidance", number_intensity_ch=self.number_intensity_ch),
            #
            ToTensord(keys=("image", "label")),
            SelectItemsd(keys=("image", "label", "guidance", "label_names")),
        ]

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.