Research + Projects

This page presents a brief summary of some of the research and projects I have done to date, starting with newer work at the top.


Leveraging Adversarial training for Monocular Depth Estimation

In this project, we tackle the problem of estimating the depth of a scene given a single 2D RGB image. We propose a generative adversarial approach to extend the recent work done by Hu et al. [baseline]. A discriminator network is added to their proposed architecture which is fed with ground truth depth maps as well as the depth maps estimated by the generator network. The discriminator network learns to differentiate between the real depth maps and artificial depth maps that are generated by the generator. We also utilize the structural similarity between the generated depth maps and ground truth as a loss term for depth estimation training. We then evaluate our proposed approach on the NYU v2. dataset. The experimental results show that when adversarial training is used, the performance of the existing method is improved.


Advanced Driver Assistance System(ADAS) using Monocular Depth Estimation

In this project an advanced driver assistant system is designed and implemented in order to prevent an autonomous car, its passengers and the pedestrians moving in the proximity of the car from possible dangers and control safety of them in higher levels. This task is done through a computer vision system using a monocular camera, by warning the driver in the case of probability of collision with near cars or pedestrians. This system uses the input images from camera to perform two separate tasks; detecting cars and pedestrians in the field of view and estimating the depth of the image in order to extract distance with the detected objects and using these information in the case of a probable collision gives warning signal to the driver.


Comparing Corresponding fMRI, ECOG and EEG data in Human VTC

This research is focused on validating the correlation between corresponding ECOG, EEG and fMRI data. The data are collected from epilepsy patients and we will design a task for showing same active regions in the brain by Blood-oxygen-level dependent and related signals. This research is supported by Royan institute under supervision of Dr. Khaligh-Razavi.


Realistic Simulation of Wireless Communication in Multi-Robot Scenarios

WCS

Goal of this project is an experimental study on the role of communication models in multirobot exploration algorithms. for this purpose a wireless communication simulator implemented that interacts both with the ROS nodes of the robots and with a simulator(Gazebo), in order to receive requests and uses various models of signal propagation to decide if two robots can communicate or not.
this project is cunducted under the supervision of Prof. F.Amigoni during my internship at AIRLab of Department of Electronics, Information and Bioengineering of Polytechnic University of Milan.

Codes are available on [github]

Implementing and Evaluating Naive Bayes Model and PGM for Heart Disease Classification

Linear Regression

In this project, we implemented naive bayes model on a data set of heart disease.(UCI Heart Disease Data). Pre processing operations like discretizing continuous values and filling missing values were done. 2 probabilistic graphical model and 3 bayesian network using different subsets of data were designed and evaluated.

Codes are available on [github] [Technical Report(Persian)]


Parametric and Non-Parametric Model for Power Usage Data Time Series Analysis

Linear Regression

The analysis of experimental data that have been observed at different points in time leads to new and unique problems in statistical modeling and inference. In this project, our goal was to predict the power usage of Ontario state, Canada, using recorded usage data from January 2002 to December 2016. We implemented parametric and non-parametric models and compared them with respect to various evaluation metrics. Second project of Statistical Machine Learning course.

Codes are available on [github] [Technical Report(English)] [Technical Report(Persian)]

Implementing and Analysing Linear Regression on a Data Set of Student Grades

Linear Regression
Lasso Regression

Implementation of a Simple Linear Regression and Lasso on 2 different datasets. Various evaluation metrics like RSS, R2, AIC and LOOCV were calculated and analyzed, on both train and test sets. Backward and Forward methods of model selection were examined and results were compared as first project of Statistical Machine Learning course.

Codes are available on [github] [Technical Report(Persian)]

Face Recognition Using SVD

This is implementation of a face recognition system, Descriebd in the paper "Facial Recognition with Singular Value Decomposition". The approach of this paper is to apply the concepts of vector space and subspace to face recognition. The set of known faces with m × n pixels forms a subspace, called “face space”, of the “image space” containing all images with m × n pixels. This face space best defines the variation of the known faces. The basis of the face space is defined by the singularvectors of the set of known faces. The projection of a new image onto this face space is then compared to the available projections of known faces to identify the person. Since the dimension of face subspace is much less than the whole image space, it is much easier to compare projections than origin images pixel by pixel.


Codes are available on [github] [Paper]


Image Compression using SVD Low-Rank Approximation

Rank 20 Approximation
Rank 100 Approximation
MSE

One of the Engineering Mathematics course projects, implemented in matlab.


Codes and full descreptions are available on [github] [Technical Report(Persian)]


Victim Detection and 3D Pose Estimation from 2D Images for a Rescue Robot

Robot and Victim model in simulation Environment body joints annotated
Eskeleton Estimated 3D pose reconstructed

2 phase Victim Detection and 3D pose estimation system implemented for a rescue robot.
- In the first stage an Object Detection method used to detect the lying-down human bodies(victims).
- In second stage a CNN algorithm is used to find body joints information then this joints are used to reconstruct a 3D model of human body and camera pose by applying matching pursuit algorithm in order to estimate the sparse representation of 3D pose and the relative camera from only 2D image evidence.

Alpha version of Codes and demos are avilable here[github]


Community Detection in Social Networks

MSRC clusters
MSRC segments

In this project we used Louvain Method implementation from pyhton NetworkX library for community detection in social networks. Modularity is a scale value between -1 and 1 that measures the density of edges inside communities to edges outside communities. Optimizing this value theoretically results in the best possible grouping of the nodes of a given network. This method is a greedy optimization method that appears to run in time O(n log n).
Report and Codes are available on:
[github] [Technical Report(Persian)]


Magnet: Shopping Recommender System App

Sharif Hackaton 2016: Mobile Programming Competition - 9th place out of 60 teams

A Shopping Recommeder System implemented using Apache PredictionIO and PHP Laravel as Back-Edn and Android as Client by "Havij Team" in the Sharif Mobile Programing Challenge 2016. Resulted in achieving 9th place out of 60 participating teams.
Apache PredictionIO is an open source machine learning framework for developers, data scientists, and end users. It supports event collection, deployment of algorithms, evaluation, querying predictive results via REST APIs. It is based on scalable open source services like Hadoop, HBase (and other DBs), Elasticsearch, Spark and implements what is called a Lambda Architecture.

Album clusters
Album clusters

RoboCup Rescue Simulation League Base Code

We all know that natural disasters and accidents take a huge toll on us and the people we love. Although we cannot prevent these kind of accidents (Atleast not yet), we can use our tools and technology to aid us in these situations.
This is our contribution on Robot Rescue Simulation platform as a base code for starters to develop new high-level algorithms faster and without wasting time on low-level implementation of base structures. That’s what we are trying to achieve here specifically by using robots. Our main goal is to develop basic modules that can later be used in a bigger framework and interact with each other. The team description paper briefly explains these modules and the framework that we are prototyping to optimize them with respect to the tasks in the challenge. Therefore, as discussed in the “future of robot rescue simulation” workshop, our team has designed a new structure of ros framework and Gazebo simulation environment that we’re going to explain its details in the following. We the ”S.O.S VR” are participating in RoboCup Rescue Virtual Robot for the first time, yet our team has already been the winner of agent simulation league in two tournaments.


[Technical Report][Codes]

Robust Cross Sign Detection for Arial Robot using Template Matching Algorithm

template input example
output example

Template matching is a technique used to find a smaller image in a larger one. It works by sliding the small image accross the big one and calculates which part of the bigger image is most likely to be the small image. This algorithm always returns a value, unlike Haar cascades which is returns a position only if it finds a exact match. Template matching uses a template (picture of desired shape in this problem) which is shifted horizontal and vertical over the whole test image. But as the yaw of the taget is not known (build in first round) the template matching does not give good results. Therefore I implemented a turning algorithm of the template image. The matching is done with 1° offset each round until 30°. The highest score of each round is saved and compared to all rounds. The highest score is the best matched target with it's corresponding angle.


Codes are available on [github]