To verify robustness, we need to rely on the Intersection over Union (IoU), a common metric for evaluating the performance of object detection.
We introduce a novel Interval Bound Propagation (IBP) approach for the formal verification of object detection models, specifically targeting the Intersection over Union (IoU) metric. The approach is compatible with popular abstract interpretation based verification tools. The resulting verifier is evaluated on:
Comparisons against a baseline (Vanilla IBP IoU) highlight the superior performance of Optimal IBP IoU in ensuring robustness, contributing to more secure machine learning applications.
For a hands-on learning experience, a tutorial is available as Jupyter notebooks in tutorial
!
main.py
: Main script to compute IBP IoU.solver/
: Contains trained networks, datasets, and algorithms for perturbation (brightness, contrast, white-noise) on the input with Auto-LIRPA (step 1).iou_calculator/
: Contains propagation effect on the IoU (step 2: IBP IoU).
pip
install: You can use therequirements.txt
to install packages through:
pip install -r requirements.txt
IBP IoU can be computed via the following command:
python main.py -d <dataset> -m <methods list> -nb <nb images> -w <list whitenoise> -b <list brightness> -c <list contrast>
dataset
: Either 'MNIST' or 'LARD'.methods
: Defines the methods used to compute bounds. It can includes 'IBP', 'IBP+backward (CROWN-IBP)', and 'backward (CROWN)'. By default, these 3 methods are included.nb images
: Determines the number of images to be processed. The default value is set to 40.list whitenoise
: Sets the range of variation for whitenoise perturbation. The default range is from 0 to 0.002, divided into 10 intervals.list brightness
: Similar to whitenoise, this argument sets the range for brightness perturbation, also defaulting to a range from 0 to 0.002 over 10 intervals.list contrast
: Specifies the range for contrast perturbation, with a default range from 0 to 0.01 over 10 intervals.
For more configuration seetings, see main.py.
This project is licensed under the GNU Lesser General Public License v3.0 - see the LICENSE.md file for details.
For more information on the GNU LGPL v3, please visit LGPL-3.0.html.
This project is a joint research work from ONERA and AIRBUS.