Projects

YOHO (You Only Hear Once)

Aug. 2022 - Oct. 2022

Technologies used: Python, TensorFlow, Keras

With YOHO, a visually impaired person would be able to take out their smartphone, put in their earbuds, and take a walk in the street while their phone lets them know about their surroundings.

This project consists of two main parts: first, transfer learning on a pre-trained YOLOv2 model on the Berkeley Deep Drive dataset and fine-tuning the last two layers, and second, placing an inference engine - Tell a Vision - on top of the model to get audible output from its predictions.

YOHO's architecture


Tell a Vision

Aug. 2022 - Sep. 2022

Technologies used: Python, NumPy, Google Text to Speech

Tell a Vision (tv) is an inference engine, in the form of a Python package that describes the scenes for object detection tasks in computer vision. tv can provide explanatory analysis on the output of object detection algorithms. It takes bounding boxes, and the classes of the objects found and answers questions such as:

And in the end, using TTS (Text To Speech) it can describe the scene.


DeepRay

Sep. 2022 - Oct. 2022

Technologies used: Python, Pytorch, Scikit Image

DeepRay is able to detect infected areas in patients’ chest X-ray images to help in COVID-19 diagnosis. The project’s main part was to train a U-Net model on the QaTa-COV19 dataset.


SharpEye

Jun. 2022

Technologies used: MATLAB

SharpEye is a collection of MATLAB functions for the logistic regression algorithm and its application has been implemented for binary image classification. This project trains a logistic regression model as an example, to predict if the person in a picture is wearing a mask or not.


GitGat

Jun. 2022

Technologies used: Python, beautifulSoup

GitGat is a Telegram bot that can send GitHub repositories or subdirectories in them to the user as .zip. Imagine a 20 Gb repository that you only need a 50 Mb directory in that repository. Instead of cloning the whole repository, with GitGat you can download just the desired directory. Saves data and time!


MicroLab

Oct. 2021 - Nov. 2021

Technologies used: C, C++, Proteus Professional, ATMega16, Arduino

MicroLab is a collection of embedded systems’ programs. The programs are written for Atmel’s ATMega microcontroller. The following concepts are covered in the programs:


Robot and Battery

Feb. 2021

Technologies used: Java, Swing

An implementation of the classic A* search algorithm, as a part of my Artificial Intelligence and Expert Systems course’s final project in Kharazmi.


SynTAXI

Feb. 2021

Technologies used: Java

SynTAXI is a syntax analyzer for programming languages. It takes the grammar rules of a language, and a program as input and checks for syntax errors. Here’s an example of what it can detect:

int main() {
    int = 10;
}
Exception in thread "main" SynTAXI.TaxiException: Syntax Error: Expected Identifier At row: 2 Column: 9

SynTAXI was implemented as a part of my Compiler Design Principles course’s final project in Kharazmi.


CoffeeLEX

Jan. 2021

Technologies used: Java

CoffeeLEX is a lexical analyzer for programming languages. It takes the Lexical Rules of a language and a program as input and checks for lexical errors.

The output of CoffeeLEX is a linked list of the tokens of the program. Here is what it would look like with the given example in SynTAXI’s decription, if it was correct!

Value  Type               Row  Column  
-----  ----               ---  -----   
int    Int Keyword        1    1       
main   Main Keyword       1    5       
(      Parentheses Open   1    9       
)      Parentheses Close  1    10      
{      Accolade Open      1    11      
int    Int Keyword        2    5       
x      Identifier         2    9       
=      Assignment         2    11      
10     Number             2    13      
;      Semicolon          2    14      
}      Accolade Close     3    0       
_________________________________

CoffeeLEX was implemented as a part of my Compiler Design Principles course’s final project in Kharazmi.


LoseRAR

Feb. 2020

Technologies used: Java

LoseRAR (WinRAR’s competition) is an implementation of the Huffman coding compression algorithm. It was developed as my Data Structures and Algorithms course’s final project in Kharazmi.