Open liuxiangchao369 opened 8 months ago
It could be, but need to make sure it's not and rgb <> bgr issue.
How did you create it? And details will help.
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")
`
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.
I found that the color of eyes,mouth of the face if blue and other part of the face is red.
Does it mean that the eyes,mouth are not important in my model?