Skip to content

Semantic Segmentation and Object Detection

Compare
Choose a tag to compare
@AntoninPoche AntoninPoche released this 05 Oct 10:17
· 115 commits to master since this release

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.