This code refers to the NN-based image classification methods specifically designed and deployed for low power and low resources devices, as described in the [Reference Software specification](https://mpai.community/wp-content/uploads/2024/06/Reference-Software-Specification-Neural-Network-Watermarking-MPAI-NNW-V1.2.pdf). It aims to prove that Neural Network Watermarking (NNW) approach standardized by Moving Pictures, Audio and Data Coding by Artificial Intelligence (MPAI) community is the solution for protecting intellectual property such as the tiny Neural Network (NN), deployable on resource-constrained devices. The standard is named IEEE 3304-2023.
We start with the MLCommon Tiny benchmark model for Image Classification (ResNet8) (https://mlcommons.org/) and watermark it with a state-of-the-art method. Later on we explore its robustness and efficiency through a series of tests. These tests include attack simulations such as quantization, pruning, and Gaussian attacks done following the MPAI NNW standardazed procedure.
By subjecting the mentioned neural networks to these tests, we aim to learn more about the trade-offs between parameters, accuracy, and computational costs, ultimately facilitating the deployment of robust, efficient and secure machine learning solutions on Micro Controller Units (MCUs) for various edge computing applications by embedding a watermark.
For MCUs deployability analysis, ST Edge AI Unified Core Technology has been used.
All the code is based in Python and delivered as a standalone Python Notebook.
**Folders**
-**pics** stores all the pics
-**model** stores all the Neural Network (NN) models
## Installation
Code was designed and tested on an WSL ubuntu 20.04 using venv and Python 3.9.13.
An environment with all the necessary libraries can be created using venv and installign the required packages following: