I am a third year Undergraduate student of Computer Science and Engineering at Indian Institute of Technology, Delhi. Life here is really exciting- working on new things, exploring new topics, and hearing new ideas every day.

On the whole, I love to code and am an enthusiastic coder. In general, I am highly enthusiastic about learning new things and trying out new ideas. My hobbies include robotics, competitive coding and chess. I am also an avid reader. I actively participate in sports, and run and swim to keep fit. I love to listen to western classical music as well as pop. I also enjoy watching movies and TV series. I absolutely adore good food (which is sadly not very abundant here at IITD). I can generally be found in my room or the GCL in front of my laptop.

I am interested in learning about all aspects of Computer Science Engineering in general and in computer vision, machine learning, and artificial intelligence in particular. The projects I have undertaken and the activities I have participated in reflect my varied interests.



Chekkoo Technologies
Semester Internship (remote) June - September 2016

  1. Used a deep autoencoder network to obtain a condensed representation of face images (obtained from video)
  2. Implemented agglomerative clustering with hybrid parameters on feature vectors to separate individual faces.
    This was able to predict person from a new face irrespective of scale, intensity and orientation.
  3. Indexed labeled faces found in videos to make them search-able by name.

Signzy Technologies
Summer Internship Summer 2016

  1. Implemented and deployed an identity verification, background check, and forgery detection system as part of a team at Signzy Technologies. (This product was awarded the 'most innovative solution' award by the Reserve Bank of India)
  2. Preprocessed identity card images to correct intensity variation and orientation, and used machine learning together with a rule based expert system to extract specific fields from a generic id card.
  3. Extracted face from id card and returned match confidence with live image for identity verification.
  4. Trained a machine learning model to detect image splicing and other forgery techniques in identity cards.

Independent Projects:

Local Path Planning for Self-Driving Car code report
| Industrial-Academic Partnership Project under Prof. Subhasis Banerjee August - December 2016

  1. Improved and calibrated distance and angle measurements for precise control of bot movement.
  2. Performed free space modelling for detection of empty area and obstacles.
  3. Developed an algorithm for local path planning given high confidence free space and obstacles.

Video Search Framework code
| Deep Learning Project under Dr. Raghvendra Singh, IBM Research September - November 2016

  1. Developed an LSTM encoder-decoder network to learn video embeddings for action recognition.
  2. The network consisted of an LSTM encoder, two LSTM decoders for input reconstruction and future prediction, and one LSTM classifier network. The loss was a sum of the reconstruction loss, future prediction loss, and classifier loss.
  3. The search engine indexed the database videos as a sequence of embeddings by performing shot detection on the videos, and constructing an embedding for each shot (using trained LSTM network). For an input video, an embedding was constructed using the network, and its nearest neighbours were found among the embeddings of the database videos.

Bot for playing TAK game code
| Assignment: Artificial Intelligence Course October - November 2016

  1. Developed a bot to play the TAK board game on boards of size 5, 6, and 7.
  2. Implemented several search techniques such as alpha-beta search, MTDF, etc. and improved search efficiency and pruning using iterative deepening, selective extension, null move pruning, probabilistic cuts etc. to search the game tree. Transposition tables were also used for efficient implementation of search.
  3. Implemented a comprehensive evaluation function to evaluate board position by taking into account stacks, groups, threats, influence etc. Weights of each component were tuned to improve evaluation. A bitboard representation of the game state was used to improve efficiency of evaluation function.

Language Correction using Recurrent Neural Networks report
| Assignment: Deep Learning November 2016

  1. Used a sequence to sequence RNN to perform language corection on data from CoNLL-2013 challenge.
  2. Problem was modelled by both considering a sequence of characters and sequence of word embeddings.
  3. Final model used a sequence to sequence model with an attention mechanism on embeddings obtained from word2vec.

Classification of fashion dataset report1 report2
| Assignment: Deep Learning September 2016

  1. Trained a deep network (variation of caffenet) in caffe to categorize a dataset (catalogue of online fashion site) into 16 categories, as well as to learn pose invariance between categories.
  2. Trained a siamese network as well as an autoencoder to learn similarity between products(invariant to pose and scale) in both a supervised and unsupervised environment.
  3. The dataset was augmented to increase training accuracy, and then balanced by sampling equal data from all classes.
  4. Accuracy was increased while keeping overfitting in check using regularization, dropout, pretrained networks, fine-tuning learning rate, momentum etc.

Resource allocation system code
| Assignment: Artificial Intelligence August 2016

  1. Developed a program to allocate regions to companies based on bid amounts and regions, such that revenue collection from region allocation was maximized.
  2. Modeled problem as a local search as well as a constraint satisfaction problem. Used techniques such as stochastic gradient descent, beam search, randomized greedy climbing, ant colony optimization, genetic algorithms etc. to find global maxima.
  3. Used several methods such as shoulder handling, randomization, etc. to escape local maxima during search.

Virtual assistant for mobile
Wishup technologies February - March 2016

  1. Used natural language processing to classify messages sent by user into one of 128 categories.
  2. Generated FSMs for each category to send messages to user to get remaining details and take actions (as part of automating operations).

Cloud based backend for IoT applications
Independent project under Prof. Saif K.M. January - February 2016

  1. Developed a home automation system using openhab. Mqtt was used as a lightweight protocol to communicate between nodes. (Raspberry pi was used as a server to control communication between nodes)
  2. Developed an app to control devices at different levels in the system. The app also received notfications on particular ouputs of sensors. (Eg. to detect fire, excess electricity usage, gas leak, dog barking etc.)
  3. Extended openhab to develop a flexible and scalable cloud-based service backend for IoT applications.

Compiler for imperative language code
| Course Project: Programming languages January - March 2016

  1. Implemented a compiler for a simple imperative programming language in Haskell.
  2. The compiler had a lexer, parser, AST generator, code generator. Basic library functions were also implemented which could be used by the program and would be used for code generation by the compiler.
  3. The compiler also had a framework for determining error at each stage in compilation.

Peer to peer multiplayer game code report
| Course project: Design Practices April 2016

  1. Developed a peer to peer networked multiplayer ping-pong game.
  2. The game had several graphics options and difficulty levels, and functioned smoothly even when there was high latency at one player's end.

IITD complaints management app code report
| Course project: Design Practices March 2016

  1. Worked in a team of 3 to develop an android application for managing complaints at IIT Delhi.
  2. The backend was developed using the Codeigniter framework and was exposed to the app via RESTful APIs.
  3. The app had separate complaint submission and resolution systems for personal, hostel and institute level all provided inside a single application, as well as features such as discussion threads, commenting, notifcations etc.

Microprocessor for ARM code
| Course Project: Computer Architecture February - March 2016

  1. Implemented a pipelined processor for ARM in VHDL.
  2. Extended the basic ARM processor by implementing branch prediction, caching, virtual memory, I/O, and co-processors (for string and vector manipulations).

App to aid visually challenged people code report video
| Goldman Sachs ABLE challenge August - October 2016

  1. Used preprocessing techniques such as local adaptive thresholding to convert image (taken programmatically from mobile camera) into a suitably clear binary image so that OCR can be applied.
  2. De-skewing of image (in 3D) and noise filtering was done to increase the accuracy of the OCR.
  3. Tesseract open source library was used to perform OCR on preprocessed image.
  4. Google text to speech API was used to convert the obtained text to audio. Google translate API was also used to provide a choice of language to user.
  5. This application is being developed as a product in a contest organized by Goldman Sachs to aid visually challenged people. The app can be used to read any label, title newspaper, book etc. in real time.

Search Engine
Course Project October 2015

  1. Developed a search engine in Java to search in a set of webpages using a given relevance function.
  2. Hashmaps were implemented and used to store word and page indices, while balanced binary search trees were implemented to store the words on a page.
  3. The search engine was capable of searching for a single word as well as complex queries such as a phrase, any of the given keywords, or all of the gien keywords.

Article Classification into newsgroups
Course Project September 2015

  1. Implemented a Naive Bayes Classifier in java to classify an article into 8 newsgroups (supervised learning).
  2. The training and test dataset consisted of about 10,000 articles. Cross correlation was used for testing.
  3. The classifier was able to classify the test data of 1470 articles with an average accuracy of 96% in ~3ms.

Web service to connect lawyers to clients
Nutanix Hackathon September 2015

  1. Worked in a team of 3 in developing a web-based application to reduce the communication gap that exists between lawyers and clients. (hosted on local server).
  2. Developed secure backend using codeigniter3 framework to protect against SQLi and xss attacks.
  3. Used Google Maps API to paste new labels on the map, display places in search results on map, find shortest paths, etc.

Autonomous Robot for playing brick breaker game in virtual arena
Project under Robotics Club, IITD January, 2015

  1. Worked in a team of 4 to develop a bot to compete in event Aughit in Kshitij, 2015 (technological fest of IIT Kharagpur) according to pre-determined problem statement. The team reached the final round and also won the best algorithm award.
  2. The bot had to play the brick breaker game in a virtual arena. Image processing (template matching) using matlab was used to detect the position of bricks, paddle and ball. Matlab was also used to predict the final position of ball.
  3. A GUI for the game on windows was later built and the bot was used to play it. (demonstrated in open House IITD)

Website and App for facilitating easy navigation in IIT Delhi campus
Independent Project under Prof. Subhashis Banerjee Summer 2015

  1. Worked in a team of 3 in developing a web-based application and mobile application for facilitating easy navigation in IIT Delhi campus and disseminating information on public utilities and facilities required by students in-and-around IIT Delhi.
  2. Designed web pages and connected them to server using php, mysql, javascript, css and html5.
  3. Used Google Custom Search API to search for keywords in IIT, Delhi database.
  4. Used Google Maps API to paste new labels on the map, display places in search results on map, find shortest paths, etc.



WA-07, Girnar House,
IIT Delhi,
New Delhi-100016


Or reach me via

  • facebook
  • google+
  • linkedin
  • github