v0.5.0
Updates / New Features
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.
Fixes
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.