Projects
Here are a few of the course projects I've done during my B.Sc. and M.Sc. degrees. Some of the related materials are linked for each project but a few of them are not in English. Please let me know if you are interested in any of them and I will provide more details.
Machine Vision
Implementation of different lens distortion correction methods in C++ using the OpenCV library
Implementation of methods used for creating blended composite images and hybrid images in C++ using the OpenCV library
Single-view metrology, computing 3D affine measurements from a single perspective view of a scene given only minimal geometric information determined from the image
Implementation of Kanade-Lucas-Tomasi (KLT) tracker and Tomasi-Kanade method for extracting structure from motion in C++ using OpenCV library
A survey on visual attention control and its applications
Robotics
Simulation and implementation of basic robotic applications such as forward and inverse kinematics and calibration in MATLAB environment and using Bioloid educational robot kit
Advanced Robotics
Distributed Artificial Intelligence
Design and implementation of a behavior-based system for soccer player NAO humanoid robot
Evolution of MLP network using learning and evolution for a creature to navigate in a two-dimensional task
Investigating the effect of knowledge transfer and in cooperative Q-Learning using a behavioral approach to estimate area of expertise
Proposing a learning methodology for an agent in the presence of multiple critics
Machine Learning
Implementation of an adaptive tile coding for value function approximation, materials available here.
Pattern Recognition
Implementation of different classifiers for classification of Persian hand-written letters including Bayes optimal classifier with parametric and non-parametric pdf estimates, K-nearest neighbor classifier, linear classifier, SVM classifier, MLP classifier, and RBF classifier, including the use of optimization methods to find the optimal parameters and also using feature conditioning methodologies.
Bio-inspired Computing
A survey on Self-Reproduction, available here.
Asynchronous System Design
History-Based Dynamic Voltage Scaling for Globally Asynchronous Locally Synchronous (GALS) Network On Chip (NoC):
A key concern in modern embedded systems is power consumption. Increasing demands for longer battery life and heating issues associated with power have led researchers to develop new ways to reduce power and energy consumption in embedded systems. Dynamic voltage and frequency scaling techniques are used to dynamically alter the voltage and frequency levels of the circuit to the lowest possible level to still yield high performance. In this research, we develop a History-Base Dynamic Voltage Scaling (DVS) scheme for a GALS NOC in 45nm technology. This DVS architecture exploits the link utilization and adjusts the router voltages among a few voltage modes.
The summary is available here.
VLSI System Design
Simulating an Equality Comparator in PVT Corners of 0.18μ Technology
Layout Design of an Equality Comparator and Analyzing the Effect of Layout
Comparing Software Implementation versus Hardware Implementation of a System Using NIOS Soft-Core CPU
Implementation of a Triple-DES Encryption Module using Verilog with Simulation, Analysis, Synthesis and Layout Overview
Computer Architecture Lab
Design and implementation of a SRAM controller, USART, and a pipelined MIPS processor in Verilog on FPGA
Computer Network
Implementation of a peer-to-peer network in Java
Computer Aided Design
Hardware implementation of an image decompressor on Altera DE2 board
General Workshop
Design and Implementation of a line tracking robot
Internship
Hardware Implementation of Proposed Architectures for Designing Systems in Electronic System Level | Supervisor: Prof. Z. Navabi
Download the full report here.
Microprocessor
Wireless control of servo and DC motors of a robot using RF modules
Operating System
Design and Implementation of a queue manager
Logic Design Lab
Design and Implementation of a CPU on FPGA using Quartus
Design and Implementation of Compilers
Design and implementation of a simple compiler using YACC
Computer Architecture
Design and implementation of Single Cycle, Multi Cycle and Pipeline processor using ModelSim
Advanced Programming
Design and implementation of a small strategic network game in C++
Fundamentals of Computers and Programming
Design and implementation of a simple text editor (SMTE)