Semantic Segmentation and Object Detection
Release Note v1.2.0
New features
Semantic Segmentation
See related documentation and tutorial.
explainer = Method(model, operator=xplique.Tasks.SEMANTIC_SEGMENTATION)
A new operator was designed to treat the semantic segmentation task, with the relative documentation and tutorial. It is used similarly to classification and regression, as shown in the example above. But the model
specification changes and targets
parameter definition differs (to design them, the user should use xplique.utils_functions.segmentation
set of functions).
Object Detection
See related documentation and tutorial.
explainer = Method(model, operator=xplique.Tasks.OBJECT_DETECTION)
The object detection API was adapted to the operator API, hence an object detection operator was designed to enable white box methods for object detection. Furthermore, the relative documentation and tutorials were introduced. Here also, targets
and model
specifications differ from classification ones.
Therefore, the BoundingBoxExplainer
is now deprecated.
Documentation
Merge model, operator, and API description page into one
As @fel-thomas highlighted in #132 remarks, the documentation was too divided, furthermore, a lot of information was redundant between those pages and they were interdependent. Hence the choice was made to merge the model, operator, and API description page into one. We believe it will simplify the use of the library.
Create task-related pages
As aforementioned, two tasks (Object Detection and Semantic Segmentation) were introduced in the documentation, their complexity induced a specific documentation page. However, it was not consistent to have documentation pages only for those two tasks. Therefore information about Classification and Regression was extracted from the common API page to create two other new task-specific pages. Finally, four task-specific were introduced to the documentation
Bug fixes
Regression
The regression operator was set to the MAE function in the previous release to allow the explanation of multi-output regression. However, such a function is not differentiable in zero, thus gradient-based methods were not working.
Hence, the behavior was set back to the previous behavior (a sum of the targeted outputs). Nonetheless, this operator is limited to single-output explanations, hence for multi-output regression, each output should be explained individually.