Git Product home page Git Product logo

Comments (3)

jacobgil avatar jacobgil commented on June 2, 2024 1

It's a BGR<>RGB issue.
show_cam_on_image Creates the colorful image in BGR format, unless use_rgb is passed.
But then you save the image with PIL, which is RGB, so the colors are inverted.
You can pass use_rgb=True to show_cam_on_image.

from pytorch-grad-cam.

jacobgil avatar jacobgil commented on June 2, 2024

It could be, but need to make sure it's not and rgb <> bgr issue.

How did you create it?
And details will help.

from pytorch-grad-cam.

liuxiangchao369 avatar liuxiangchao369 commented on June 2, 2024

It could be, but need to make sure it's not and rgb <> bgr issue.

How did you create it? And details will help.

actually, my inputs_image is a one-channel image. I repeat it to 3-channels. here is my code

`
dirs = "data/AFD/AFDB_train"
for d in os.listdir(dirs):
for file in os.listdir(f"{dirs}/{d}"):
image_path = f"{dirs}/{d}/{file}"
FACE_SHAPE = (128, 128)
input_tensor = preprocess_image(image_path, FACE_SHAPE)

        # Apply the heatmap on the original image
        image = Image.open(image_path)
        image = image.resize(FACE_SHAPE)

        image_array = np.array(image)
        # image_array = np.moveaxis(image_array, -1, 0)

        # print(image_array/255)

        for name, layer in model.named_modules():
            if "conv" not in name or "." in name:
                continue
            target_layers = [layer, ]
            # Construct the GradCAM object
            cam = ScoreCAM(model=model, target_layers=target_layers)

            # Perform CAM and generate heatmap
            targets = [ClassifierOutputTarget(0)]
            grayscale_cam = cam(input_tensor=input_tensor, targets=targets, aug_smooth=False)
            grayscale_cam = np.repeat(grayscale_cam, 3, axis=0)
            grayscale_cam = grayscale_cam[0, :]
            # print(grayscale_cam)
            # print(image_array.shape,grayscale_cam.shape)
            try:
                visualization = show_cam_on_image(image_array / 255, grayscale_cam)
            except ValueError:
                continue
            pil_image = Image.fromarray(visualization)
            # Save the PIL Image object to a file
            if not os.path.exists(f"pic/{d}"):
                os.mkdir(f"pic/{d}")
            pil_image.save(f"pic/{d}/{file}{name}.jpg")

`

from pytorch-grad-cam.

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.