My Projects


LiFeOnACID: Online algorithms for calcium imaging data applied to light field imaging


Online inference of optimal stimulus for a network of simulated retinal ganglion cells


Population dynamics encoding uncertainty and reward in the fronto parietal cortex (ongoing)

In this research, we are trying to find evidence that the brain encodes information about uncertainty, risk, and reward. We also want to know how different types of attention proposed by Professor J. Gottlieb (attention for action, attention for learning, and attention for reward) play role in decision making and how do uncertainty and reward compete for attention in different task contexts?

The research is sponsored by Columbia University and investigated by Professor J. Gottlieb. The data collection is done at Professor J. Gottlieb's lab by Dr N. Foley. Our team in brain engineering center at IPM (V. Davoodnia, H. Rahimi Nasrabadi, E. Zabeh and I) is mainly responsible for behavioral and neural data analysis.


Implementation of a Voice Recognition System based on the Rat's Auditory System

While the structure and dynamics of spiking neural networks (SNNs) may increase their computational power compared to traditional neural networks, the complexity of such networks is the main reason that they are less being used in the implementation of real intelligent systems in the field of artificial intelligence. On the other hand, the nervous system of animals have been evolved in such a way that they can solve hard problems easily such as the problem of voice recognition.

In this project, I proposed a new approach based on the structure and mechanisms of the rat's auditory system to implement a SNN for the problem of voice recognition.

Project as my B.Sc. thesis advised by Dr Soleymani-Baghshah. I implemented this system in Python using brian simulator for SNNs.


Neuroscience Experimental Design and Data Collection System

In this project, I implemented an object oriented system with the aim of providing researchers the possibility to design visual or auditory neuroscience tasks for human or animal subjects and collect the data based on their behavior.

In this system, each task is assumed to be a set of states. In each state a set of stimuli (image, video, sound, or geometrical shape) is represented to the subject of the task. A number of devices are involved in each task, some of them are used by the subject of the task so that the subject can interact with the task while other devices are used as controls to track the subject’s behavior. Using the first group of devices, the subject can move between states of the task. While the task is running, the data of the subject’s interaction with devices and state transitions are collected. Currently, we are using this system in our lab to teach specific tasks to the monkeys and collect their behavioral data.

Project for Prof. Lashgari's brain-engineering center at IPM. I implemented this system in Matlab using Psychtoolbox for the graphics and SQL Server for the database.


Analyzing LFP Signals to Cluster V1 Neurons

Grating stimulus in multiple orientations were shown to the monkey while recording from its V1 layers. We implemented a system to cluster V1 neurons based on their orientation selectivity and features obtained from signals such as peaks and fourier transform. I used svd to reduce the dimension of the feature space and gaussian mixture model for the clustering system.

Project for Neuroscience course done with M. Hasanshahi. Implemented in Matlab using its machine learning toolbox.


3D Soccer Simulation

The RoboCup 3D Simulated Soccer League allows software agents to control humanoid robots to compete against one another in a realistic simulation of the rules and physics of a game of soccer.

Done in Paaydar team with M. Razeghi, E. Tavakkoli and A. Arabzadeh. Implemented in C++ using KDL library.


Traffic Control and Vehicle Counting System

We used different image filters (gaussian filters, erosion and dilation), background subtraction methods (frame differences, gaussian mixture model and adaptive background learning), vehicle detection methods (edge analysis, haarcascade training and deformable parts model), and object tracking methods (optical flow pattern) to reach a high accuracy.

Done in Paaydar team (I was team leader in this project) with M. Razeghi, E. Tavakkoli and A. Arabzadeh. Implemented in C++ using OpenCV library.


ERP System

In this project, we followed Unified Process methodology and developed an object oriented ERP system. We extracted use cases based on a set of customer requirements and prepared deliverables based on those use cases. Deliverables are use case diagrams, activity diagrams, CRC cards, analysis class diagram, analysis package diagram, analysis sequence diagrams, design class diagram, design package diagram, design sequence diagrams, component diagram, database schema, deployment diagram, server software, client software, installation guide, and user manual.

Project for Object Oriented Design course done with M. Shafiei and E. Imani. Diagrams were drawn using UML, database was implemented using SQL, and the software was implemented in java.


Intelligent 2048 Game Player

We developed this system based on a huristic funtion that maps each state of 2048 game into a real number. To reduce time complexity, we used alpha/beta algorithm to prune state space graph.

Project for Artificial Intelligence course done with M. Chavoshian. Implemented in prolog.


Torob Automatic Feature Extraction and Clustering System

Torob is an intelligent shopping search engine which searches for a specific product through Iranian E-Stores. In order to find the minimum price for a product among different stores, a system was needed to cluster html pages into groups, each of which was representive of one specific product. For this purpose, I translated the data into english, wrote a code to find similar words based on their semantic relations, extracted features from the data, and implemented a clustering system based on affinity propagation algorithm.

Project for Torob Company. Implemented in Python using goslate library for translation, nltk library for finding similar words and sickit-learn library for clustering system.


Crawler and Search Engine on Goodreads Books

I implemented multithreaded crawler to crawl goodreads books data (considering politeness rules). Based on this data, an information retrieval system is developed which allows users to search for books and see the results through a web interface.

Project for Modern Information Retrival course. Implemented in Java using Elastic and Lucene frameworks for information retrieval part and Play framework for web interface.


Feature Extraction and Classification System on Corel Image Dataset

In this project, an image feature extraction system is developed to convert texture, color and gradient of images into feature vectors. I implemented LDA to reduce feature space dimension and both SVM and KNN methods for classifying images. Also I implemented different evalution methods to compare two classification methods.

Project for Machine Learning course. Implemented in Matlab using image processing and machine learning toolboxes.


Hotel Reservation System

This project is a hotel reservations system. Users are either hotel managers or normal users. Hotel managers can add/edit/delete hotels or rooms through their account. Normal users are able to search for rooms specifying required information. I also added a recommender system using collaborative filtering algorithm.

Project for Systems Analysis and Design course done with A. Rostami and S. Masoudian. Implemented in Python using django framework for the server side.


Conversion Tool Between Regular Expressions and DFA/NFA Graphs

Both sides of conversion is available through the graphical user interface.

Project for Theory of Languages and Automata course. Implemented in Java using Swing for the GUI.


Gramophone iOS Application

Gramophone is an iOS music marketplace for both iPhone and iPad. Users can search for Iranian music, download them and listen to them through it's integrated player.

Project for Hasin Company. Implemented in Objective-C using Cocoa framework for graphics and SQLite for database system.


Taaghche iOS Application

Taaghche is an iOS E-book marketplace along with an integrated pdf reader that allows its users to download and read Iranian E-books.

Project for Hasin Company. Implemented in Objective-C using Cocoa framework for graphics and SQLite for database system.


Cinemas of India iOS Application

An iOS indian movie marketplace developed for both iPad and iPhone. Users can buy movies through this application and watch movies in their iOS device.

Project for an Indian Company done with A. Rostami. Implemented in Objective-C using Cocoa framework.


Advanced Numerical Calculator

A numerical calculator which allows users to perform advanced mathematical calculations and analysis such as integrating or differentiating a function, matrix calculations, etc.

Project for Numerical Analysis course done with V. Haratian and S. Taeb. Implemented in Matlab.


Social Network

This project is a social network along with a dataset of movies. Users can follow/unfollow other users and write reviews about movies. Users are also able to like/dislike or put comments on others' reviews.

Project for Web Programming course done with V. Haratian. Implemented in Python using django framework for the server side and HTML, CSS and JS for the client side.


Messaging System

A simple messaging system that allows users to chat through it's web interface. Some features such as offline messaging and notifications are also implemented.

Project for Web course done with V. Haratian. Implemeted in Javascript using NodeJS environment.