This complete deep learning platform was developed for the design of deep neural networks deployed in constrained operating environments. Industrial companies can use N2D2 to integrate advanced data processing functions into their embedded systems.
N2D2 (Neural Network Design and Deployment) addresses the need to integrate image recognition (object classification and detection), signal processing, and other AI functions into systems constrained by power consumption or dissipation, latency, form factor (dimensions, size, etc.), and/or cost criteria.
CEA-List embedded systems engineers developed N2D2 for the design of deep neural networks optimized specifically for embedded systems. N2D2 has functions to reduce the computational complexity of models and their memory requirements, most often using quantization (during or after training) and topological optimization techniques. Comparative analyses are performed to select the best hardware target (MCU, GPU, or FPGA) according to the constraints involved and then generate an optimized implementation using the most appropriate programming model (C++, TensorRT, OpenCL, RTL, etc.).
N2D2 is available on GitHub under the CeCILL-C open-source license (equivalent to LGPL, a non-contaminating license). N2D2 is open to contributions and improvements from its users.
N2D2 has many advantages:
We decided to work with N2D2 because of the flexibility of porting applications to different platforms—N2D2’s primary advantage.
Use cases:
ArcelorMittal used N2D2 to deploy machine vision systems to improve its surface inspection processes and detect product defects in real time. Because the code is portable, their teams were able to retrieve C executables, run them on their machines, and then deploy their developments to GPUs and FPGA/DSP platforms.
With the core of N2D2 now open source, ArcelorMittal has confidence that the platform is here to stay and that new functions will be added over time.