Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mohazamani/snn-visual-cortex-simulation
Simulates image processing in the visual cortex using Gabor and DoG filters in spiking neural networks.
https://github.com/mohazamani/snn-visual-cortex-simulation
computational-neuroscience computational-vision dog-filter gabor-filter neural-coding neural-networks neuroscience primary-visual-cortex spiking-neural-networks ttfs vision-neuroscience
Last synced: 3 days ago
JSON representation
Simulates image processing in the visual cortex using Gabor and DoG filters in spiking neural networks.
- Host: GitHub
- URL: https://github.com/mohazamani/snn-visual-cortex-simulation
- Owner: MohaZamani
- Created: 2024-10-17T07:32:55.000Z (28 days ago)
- Default Branch: main
- Last Pushed: 2024-10-17T13:01:17.000Z (28 days ago)
- Last Synced: 2024-10-17T23:23:17.484Z (27 days ago)
- Topics: computational-neuroscience, computational-vision, dog-filter, gabor-filter, neural-coding, neural-networks, neuroscience, primary-visual-cortex, spiking-neural-networks, ttfs, vision-neuroscience
- Language: Jupyter Notebook
- Homepage:
- Size: 18 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Processing in Primary Visual Cortex and Interlayer Communication in Spiking Neural Networks
This project focuses on simulating image processing mechanisms inspired by the **primary visual cortex (V1)** and investigating **interlayer communication** in **Spiking Neural Networks (SNNs)**. The project implements filters like **Difference of Gaussians (DoG)** and **Gabor filters** to simulate the functionality of V1 neurons, and uses neural coding schemes such as **Time to First Spike (TTFS)** and **Poisson coding**. The **Spike-Timing-Dependent Plasticity (STDP)** learning rule is applied to enhance the learning process in SNNs.
## Table of Contents
- [Project Overview](#project-overview)
- [Implemented Features](#implemented-features)
- [How to Run](#how-to-run)
- [Results](#results)
- [References](#references)## Project Overview
This project aims to simulate the functionality of visual cortex neurons through the application of **DoG** and **Gabor filters** on grayscale images, mimicking edge detection processes in biological vision systems. Furthermore, the project explores the encoding of visual information using **TTFS** and **Poisson coding**, and analyzes the performance of **spiking neural networks** with interlayer communication using the **STDP learning rule**.## Implemented Features
1. **DoG Filter**:
- Simulates on-center off-surround and off-center on-surround retinal receptive fields for edge detection.
2. **Gabor Filter**:
- Simulates simple cells in the primary visual cortex (V1), detecting edges at specific orientations and spatial frequencies.
3. **Neural Coding**:
- **Time to First Spike (TTFS)**: Encodes images based on the timing of neuron spikes.
- **Poisson Coding**: Encodes images using Poisson-distributed spike times.
4. **Spike-Timing-Dependent Plasticity (STDP)**:
- STDP learning rule adjusts synaptic weights based on spike timing to optimize the SNN’s performance in recognizing visual patterns.
## How to Run
1. Clone the repository:
```bash
git clone https://github.com/MohaZamani/SNN-Visual-Cortex-Simulation.git
2. Install the necessary dependencies:
```bash
pip install -r requirements.txt
3. Run the simulation notebooks:
- **For DoG and Gabor Filters**: Open and run `Filters.ipynb`
- **For SNN with STDP**: Open and run `SNN.ipynb`You can launch the notebooks by executing:
```bash
jupyter notebook
## Results
Results from the simulations include:
- **Edge Detection**: Visualization of the effects of DoG and Gabor filters on input images, showing enhanced edge detection.
- **Spike Raster Plots**: Visualization of neural activity using TTFS and Poisson coding.
- **Weight Changes**: Visualization of synaptic weight adjustments using the STDP learning rule.All simulation results and detailed analysis is provided in the [report](./Report/Report-P5.pdf).
## References
- **Gabor Filters**: [Gabor Filters in Visual Processing](https://en.wikipedia.org/wiki/Gabor_filter)
- **STDP Learning**: [Spike-Timing-Dependent Plasticity on Wikipedia](https://en.wikipedia.org/wiki/Spike-timing-dependent_plasticity)
- **Primary Visual Cortex (V1)**: [Visual Cortex Overview](https://en.wikipedia.org/wiki/Visual_cortex)