Tabella dei contenuti |
---|
Author(s)
Name | Institution | Mail Address | Social Contacts |
---|---|---|---|
Camilla Scapicchio | University of Pisa, INFN Sezione di Pisa | Linkedin: Camilla Scapicchio | |
Francesca Lizzi | University of Pisa, INFN Sezione di Pisa | francesca.lizzi@sns.it |
How to Obtain Support
General Information
ML/DL Technologies | CNN (ResNet) |
---|---|
Science Fields | Medical Physics |
Difficulty | Low |
Language | English |
Type | Fully annotated and runnable |
Software and Tools
Programming Language | Python |
---|---|
ML Toolset | Keras, Tensorflow |
Additional libraries | sklearn, pandas, OpenCv |
Suggested Environments | INFN-Cloud VM, bare Linux Node, Google CoLab |
Needed datasets
Data Type | Preprocessed Mammographic Images |
---|---|
Data Source | Examples of test images on GitHub repository: https://github.com/camillascapicchio/MLINFN-CNNBreastDensityClassifier-Explainability |
Short Description of the Use Case
Deep neural network explainability is a critical issue in Artificial Intelligence (AI). In this use case, we develop a method to explain a deep Residual Convolutional Neural Network able to automatically classify mammograms into breast density classes.
...
2) The scripts in Jupiter notebooks can be run on Google CoLab or you can clone the GitHub repo and execute the notebook locally.
Annotated Description
- Train_ResNet.py: this is the first script to execute if you want to train the CNN ResNet model from scratch. You may train the network four times, one per projection. You can use your own dataset as training set. It should consist of at least about 1000 images and it should be divided in 4 different folders (CC_R, CC_L, MLO_L, MLO_R) and each folder divided into 4 sub-folders, one per class (A, B, C, D). In "CC_R_model" directory we saved the output of a training as an example.
- Prediction_ResNet.py: this is the script to test the saved trained model on new images. It is suggested to use your own test set also for testing. The test set of images should be organized in folders as the training set. If you don't have enough images to train the model but you just want to test it, you can use a pre-trained model ('weights-improvement-46-0.80.h5') saved in the folder "CC_R_model".
- Figure_merit.ipynb: this is the script to obtain the metrics, the final figures of merit to evaluate the classification performance on the test set. You need as input the .txt files, obtained with the script "Prediction_ResNet.py" and containing the prediction outcomes. We uploaded "predictions_mlor.txt, predictions_ccr.txt, predictions_mlol.txt, predictions_ccl.txt" files in folder "Prediction", obtained from a pre-trained and tested ResNet model to use them as examples.
- ClassActivationMaps.ipynb: this is the script to obtain the Class Activation Maps based on the Grad-CAM technique. You can use the test images we uploaded as example in the folder “TestSet”, they are just one image per class for each projection. You can use them and the pre-trained model in the folder "CC_R_model" to try the script as tutorial the first time. Then, you can execute the script on your own larger dataset and on your trained model to obtain the maps in your specific case.
References
Here you can find a more detailed description of the ResNet model architecture: https://link.springer.com/chapter/10.1007/978-3-030-29930-9_3
Here you can find a more detailed description of the Grad-CAM technique: https://openaccess.thecvf.com/content_iccv_2017/html/Selvaraju_Grad-CAM_Visual_Explanations_ICCV_2017_paper.html