Projects



Medical Image Classification on the MURA dataset

I worked under Dr. Amit Dua and Dr.Murari Mandal to obtain significantly improved results on medical radiology image classification. The focus of the study was on the Stanford MURA dataset.

The dataset was part of an online competition held by Stanford University. The study tests conventional techniques like vanilla CNNs and compares them to the performance of the state-of-the-art model by Stanford. It also discusses a few other approaches which I tried but were not significant and did not perform as well as I had initially hoped.

The study examines another technique which uses the concept of Attention. Finally, the project attempts another approach by combining a DenseNet with a Hierarchical Attention Network and then concludes by suggesting potential strategies which may give promising results.



Fan Control System in Assembly

In partial fulfillment of the course Microprocessors and Interfacing offered at BITS Pilani, my team and I designed a fan control system in assembly (MASM). The system senses the speed at which the fan is currently rotating and adjusts the speed, based on user input. The user can set the fan to a particular speed. Then, the current speed is taken into account and gradually updated to reflect the user's selection.

The project involved programming in Assembly and modeling the circuit using Proteus. More information regarding the project can be found here.



Earthquake Forecasting

The goal of this team project is to use statistical techniques to forecast earthquakes. We used earthquake data from areas in and around the Himalayas over the last few decades.

Some initial de-clustering was required on our time series. We used Maximum Likelihood Estimation, or MLE for short, and Method of Moments (MoM) to find the best parameters for each of our candidate distributions for the earthquake data. To choose the best one out of these, we used AIC and the KS test, and effectively concluded that the Gamma distribution fit our data the best.

For more information, please have a look at the repository on GitHub.



Evolution Working Group, CHAOSS, GSoC '19

My Summer of Code project was to implement a system for computing the values of several metrics on Perceval data, along with reference implementations for calculating those metrics, to serve as a guide. I used the Python programming language along with technologies like jupyter notebooks, pandas and matplotlib.

Though I made several contributions to other repositories and working groups under the CHAOSS project, the Evolution Working Group was where the majority of my efforts were concentrated.

For more information, please have a look at the repository for this project, hosted on GitHub.

Microtasks for CHAOSS, GSoC'19

All students interested in working with CHAOSS for Google Summer of Code are suggested to submit solutions to at least a few of the problem statements, or microtasks, given by the mentors for a particular project. The project I was interested in, Implementing CHAOSS metrics with Perceval, involved working with jupyter notebooks, pandas and matplotlib, using the Python programming language.

Thus, these microtasks revolve around these technologies. For more information, please check the repository for this project, hosted on GitHub.



Personal website

This website is hosted on GitHub Pages and uses the Jekyll static site generator. I started this website way back in January 2018, but didn't start actively developing until six months later. In early 2019, I revamped the site, making the pages darker and making different parts of the site more accessible. The website serves as a portfolio as well as a blog.

With about 300 commits and several thousand lines of code, the site is actively developed, with more features and enhancements added regularly.



RAM using Dynamic Sets

As part of our Data Structures and Algorithms course at BITS Pilani, Pilani campus, we were asked to implement a simple abstraction of a computer's RAM using multiple dynamic sets. Put simply, the project entailed using dynamic arrays with the functionality of doubly linked lists. Though computer memory can have heterogeneous objects, the project assumes homogeneous objects.

The implementation, apart from having allocation and freeing of memory, also has defragmentation. The project repository is available on GitHub here.

Social Authentication and Custom User Models

While learning to use the Django, a python backend web development framework, I created a simple website to improve my understanding of social authentication and using custom user models.

Social authentication is very popular, since one can use an existing social account, like a Facebook or GitHub account to log in to multiple site. This saves the time and effort required in creating a separate account, just for that site, while providing the benefit of a tailored user experience.

The repository for this project can be found here.

LinkRot

LinkRot recursively checks all urls on a page and reports any broken links. The script outputs a brief summary of the scan. For a more detailed view -- including all verified links and broken links -- the script outputs checked_urls.csv and broken_urls.csv. To check for valid extensions, the script consults tld.txt, which has a list of several commonly used tld's.

The script is built using requests and bs4 and only considers those urls which share the same domain as the provided url. This prevents the obvious infinite recursion that would occur due to the presence of outgoing links, each linking to more such links.

For more details, have a look at the repository on GitHub.