CI
- Updated notebooks CI workflow to include notebook data caching.
Documentation
- Added text discussing black box methods to
introduction.rst
. - Added a section to
introduction.rst
that describes the links between saliency algorithms and implementations. - Edited all text.
- Update top-level
README.md
file to have more useful content. - Update misc. doc on local SonarQube scanning.
Examples
- Add example notebook for saliency on Atari deep RL agent, including updates on top of the original work to normalize saliency maps and conform to our API standards.
- Add example demonstrating saliency map generation for COCO formatted serialized detections.
- Updated examples to all use a common data sub-directory when downloading or saving generated data.
Implementations
- Add
SquaredDifferenceScoring
implementation of theGenerateClassifierConfidenceSaliency
interface that uses squared difference. - Add
RandomGrid
implementation ofPerturbImage
. This generates masks of randomly occluded cells with a given size in pixels.
Utilities
- Add
gen_coco_sal
function to compute saliency maps for detections in akwcoco
dataset, with accompanying cli scriptsal-on-coco-dets
which does this on a COCO formatted json file and writes saliency maps to disk. - Add multi-threaded functionality to
occlude_image_batch
utility.
Containerization
- Added Dockerfile and compose file that create base xaitk_saliency image.
Build
- Fix incorrect specification of actually-optional papermill in relation to its intended inclusion in the example_deps extra.
- Update patch version of Pillow transitive dependency locked in the
poetry.lock
file to address CVE-2021-23437. - Update the developer dependency and locked version of ipython to address a security vulnerability.
Implementations
- Fix incorrect cosine similarity computation and mask inversion in implementation of
DRISEScoring
detector saliency.
Examples
- Updated example Jupyter notebooks with more consistent dependency checks and also fixed minor header formatting issues.
Tests
- Fix deprecation warnings around the use of
numpy.random.random_integers
.
Utilities
- Fix
xaitk_saliency.utils.detection.format_detection
to not upcast the data type output whenobjectness is None
. - Fix
xaitk_saliency.utils.masking.weight_regions_by_scalar
to not upcast the data type output wheninv_masks is True
. - Update
xaitk_saliency.utils.masking.weight_regions_by_scalar
to not use fully vectorized operation which significantly improves efficiency.