v0.3.0 ====== This minor release provides updates to example notebooks, interface naming updating for consistency, as well as added a "high level" interface for visual saliency map generation from black-box classifiers. Updates / New Features ---------------------- Documentation * Add "SuperPixelSaliency" notebook to demonstrate use of arbitrary perturbation masks based on superpixels for saliency map generation. * Add "VIAME_OcclusionSaliency" notebook demonstrating integration with VIAME toolkit based on saliency map generation for a fish classification task. * Add "covid_classification" notebook demonstrating integration with MONAI based on saliency map generation for a COVID-19 X-ray classification task. * Updated notebook demonstration for ``SimilarityScoring`` usage to better track the notebook structures across the repo. * Introduce class naming philosophy in the ``CONTRIBUTING.md`` file. * Updated notebooks to make use of ``GenerateImageClassifierBlackboxSaliency`` interface/implementations where appropriate. * Updated wording of the ``SuperPixelSaliency.ipynb`` notebook as to cover a use-case where the ``GenerateImageClassifierBlackboxSaliency`` interface API is not appropriate, i.e. already have masks computed. * Added support for doc building on Windows by adding a platform check so that ``make.bat`` is called for and not ``make html``. Interfaces * Update ``PerturbImage`` to only output perturbation masks, dropping physical image perturbation output. Since this output generation was the same across all known implementations, that part has been split out into a utility function. * Added support for positive and negative saliency values as output by the saliency map generation interfaces. * Updated ``PerturbImage`` interface to take in ``numpy.ndarray`` as the image data structure. * Added new, higher-level ``GenerateImageClassifierBlackboxSaliency`` interface for transforming an image and black-box classifier into visual saliency maps. * Renamed ``ImageClassifierSaliencyMapGenerator`` interface to be ``GenerateClassifierConfidenceSaliency``. * Renamed ``ImageSimilaritySaliencyMapGenerator`` interface to be ``GenerateDescriptorSimilaritySaliency``. * Renamed ``ImageDetectionSaliencyMapGenerator`` interface to be ``GenerateDetectorProposalSaliency``. Implementations * Add ``RISEScoring`` implementation, with the ability to also compute a de-biased form of RISE with an optional input parameter. * Add ``RISEStack`` implementation of the ``GenerateImageClassifierBlackboxSaliency`` interface as a simple way to invoke the combination of RISE component algorithms. * Add ``SlidingWindowStack`` implementation of the ``GenerateImageClassifierBlackboxSaliency`` interface as a simple way to invoke the combination of the Sliding Window perturbation method and the occlusion-based based scoring method. Misc. * Update locked dependency versions to latest defined by abstract requirements. Utils * Masking * Added utility functions for occluded image generation that was previously duplicated across ``PerturbImage`` implementations. Added both batch and streaming versions of this utility. Fixes ----- Documentation * Fixed misspelled "miscellaneous" file. Implementations * Fix saliency map normalization in both ``OcclusionScoring`` as well as ``SimilarityScoring`` to disallow cross-class pollution in the norm. Misc. * Fixed up module naming inconsistencies.