Code Monkey home page Code Monkey logo

Comments (4)

dagshub avatar dagshub commented on July 19, 2024

Join the discussion on DagsHub!

from super-gradients.

ofrimasad avatar ofrimasad commented on July 19, 2024

Hi @antopost .
Unfortunately, this feature is not available.
But as you suggested, a small change to the function you were pointing to will do the trick.

    @staticmethod
    def target_transform(target):
        """
        target_transform - Transforms the sample image
        This function overrides the original function from SegmentationDataSet and changes target pixels with value
        255 to value = CITYSCAPES_IGNORE_LABEL. This was done since current IoU metric from torchmetrics does not
        support such a high ignore label value (crashed on OOM)

            :param target: The target mask to transform
            :return:       The transformed target mask
        """
        out = SegmentationDataSet.target_transform(target)
        out[out == 255] = CITYSCAPES_IGNORE_LABEL

        # if 4, 6, 7, 8 are values you would like to ignore:
        out[out == 4] = CITYSCAPES_IGNORE_LABEL 
        out[out == 6] = CITYSCAPES_IGNORE_LABEL
        out[out == 7] = CITYSCAPES_IGNORE_LABEL
        out[out == 8] = CITYSCAPES_IGNORE_LABEL
        return out

from super-gradients.

ofrimasad avatar ofrimasad commented on July 19, 2024

One thing you need to consider.
Your data needs to have at least two classes (CITYSCAPES_IGNORE_LABEL is not considered a class).
if you remove ALL classes but the road, you may want to use the mapping instead of the CITYSCAPES_IGNORE_LABEL.
map all labels to one label (i.e. label 1) that you will consider to be the background

from super-gradients.

antopost avatar antopost commented on July 19, 2024

Thanks, @ofrimasad
For the case of binary segmentation, the following worked for me:

CITYSCAPES_IGNORE_LABEL = 1  # default: 19

@staticmethod
def target_transform(target):
    """
    target_transform - Transforms the sample image
    This function overrides the original function from SegmentationDataSet and changes target pixels with value
    255 to value = CITYSCAPES_IGNORE_LABEL. This was done since current IoU metric from torchmetrics does not
    support such a high ignore label value (crashed on OOM)

        :param target: The target mask to transform
        :return:       The transformed target mask
    """
    out = SegmentationDataSet.target_transform(target)

    keep_labels = (0,)  # road

    for lb in keep_labels:
        out[out != lb] = CITYSCAPES_IGNORE_LABEL

    # invert labels (works only for binary segmentation)
    out = (out - 1.) * (-1.)

    return out

from super-gradients.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.