Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/abdallahabusidu/dcnn

A detailed low-level chip that applies a CNN classifier over a grayscaled image (MNIST handwritten digits dataset).
https://github.com/abdallahabusidu/dcnn

Last synced: 5 days ago
JSON representation

A detailed low-level chip that applies a CNN classifier over a grayscaled image (MNIST handwritten digits dataset).

Awesome Lists containing this project

README

        

![](https://i.ibb.co/z607zXT/DCNN-ACCELERATORlogos-transparent.png)

[![GitHub stars](https://img.shields.io/github/stars/abdallahabusedo/DCNN)](https://github.com/abdallahabusedo/DCNN/stargazers) [![GitHub issues](https://img.shields.io/github/issues/abdallahabusedo/DCNN)](https://github.com/abdallahabusedo/DCNN/issues) [![GitHub forks](https://img.shields.io/github/forks/abdallahabusedo/DCNN)](https://github.com/abdallahabusedo/DCNN/network) [![GitHub](https://img.shields.io/github/license/abdallahabusedo/DCNN)](https://github.com/abdallahabusedo/DCNN/blob/main/LICENSE)

## Description
A detailed low-level chip that applies a CNN classifier over a grayscaled image (MNIST handwritten digits dataset).
The chip is a stand-alone chip that reads the image & CNN layers from user, applies the layers (convolution / pooling) consequently, and generates the output label (0 - 9).

## Design

[![](https://i.ibb.co/n8NYzqX/1.png)]()

[![](https://i.ibb.co/GVfLPGB/CPU-CHIP.png)]()

The process is divided into 3 modules:

1. IO Module

The image & CNN info will be compressed before sending them to the DCNN accelerator (this part is a software script that applies the compression algorithm - RLE - on the input). Then the compressed files are sent over a parallel port (16bit) to the DCNN accelerator. The received data will be decompressed by the hardware and saved on a local RAM.

![](https://i.ibb.co/T0Xs5mW/2.png)

2. CNN Module

The CNN layers are read and applied one by one in the CNN module.
For each layer the module loops over the image using sliding 2D windows and computing the filter result for the middle pixels.
The result of each layer is saved in the local RAM to be processed by the next layer.

![](https://i.ibb.co/6Z5w6qJ/4.png)

3. FC Module

The last CNN layer result is passed to a fully connected neural network that generates the probability for each label.
Finally a softmax layer is used to choose the classifier prediction.

![](https://i.ibb.co/H74XTYJ/3.png)

## TOOLS

- Vhdl
- Verilog
- Modelsim
- Python

## Contributors
Thanks goes to these wonderful people ✨


Omar Mostafa


Menna Mahmoud


Nada Abdelmaboud


Kareem Mohamed


Ebrahim Gomaa


Eman Othman


Tarek Samy


Abdullah Zaher


Aya Samir


Hager Ismael


Nihal Mansour


Asmaa Sayed

## License

> This software is licensed under MIT License, See [License](https://github.com/abdallahabusedo/DCNN/blob/main/LICENSE)