- GradCam : Implemented for classification problems, for PyTorch and Tensorflow/Keras.
- GradCam++ : Implemented for classification problems, for PyTorch and Tensorflow/Keras.
- Visual Correspondence is implemented for PyTorch, see tutorials . Huge thanks Giang Nguyen for his support. ref: https://github.com/anguyen8/visual-correspondence-XAI
- Example(Prototype) based methods such as ProtoPNet (To be done)
- To be done
pip install Why-XAI==0.1.0
from why import Explain
from PIL import Image
filename = "my_perfect_image.png"
original_image = Image.open(filename)
preprocessed_image = preprocess_image(original_image)
raw_model = keras.applications.EfficientNetV2B0(weights='imagenet', include_top=True)
why_explain = Explain(raw_model)
heatmap = why_explain.explain(preprocessed_image,explain_class=999)
overlay_heatmap = why_explain.overlay_heatmap(original_image, heatmap, filename="my_saving_path.png", image_size=(1024,1024), alpha=0.5, colormap_name="jet", return_bytes=False)
extract_xai_area = why_explain.extract_area(
preprocessed_image,
original_image,
threshold=0.85,
explain_class=999,
method="GradCam",
)
segment_xai_area_coordinates = why_explain.annotate(
img_batch,
imgorig.size,
threshold=0.85,
explain_class=None,
method="GradCam",
)
im = plt.imread(filename)
implot = plt.imshow(im)
for p,q in [(x["x"],x["y"]) for x in segment_xai_area_coordinates]:
x_cord = p # try this change (p and q are already the coordinates)
y_cord = q
plt.scatter([x_cord], [y_cord])
plt.savefig("my_segment_area.png)
plt.clf()