Detect and Track

Created module for detection and tracking. Detection can be done using SSD Network or YoloV3 and tracking has been implemented using Kalman Filter.

Keywords: Deep Learning, Kalman Filter, Detection, Tracking, PyTorch, Tensorflow, Python, Autonomous Driving

Transfer Learning from Expert to Novice

Gained over 50% in training time by using using attention map obtained from a CNN based expert bird classifier (trained using PyTorch) train a CNN based novice classifier. Currently working for a two headed architecture to perform simultaneous attention mapping and training.

Keywords: Deep Learning, Transfer Learning, Attention Modelling, Cognitive Science

Imitation Learning for Behavior Planning

Currently, working towards data collection to train reinforcement learning and imitation learning model to clone human driving behavior for for prediction of steering angle and throttle. We plan to deploy a hybrid system that switches between imitation learning based model to rule based model to smooth behavior.

Keywords: Deep Learning, Computer Vision, Semantic Segmentaion, Reinforcement Learning, Tensorflow, Keras, Python, Autonomous Driving

Reinforcement Learning for OpenAI Gym Games

Implemented Actor-Critic and DDPG algorithms on continuous (Cheetah and Walker) and discreet control tasks (Lunar Lander Atari Game) in OpenAI Gym Environment. Also, experiemnted with REINFORCE and DQN models for the same tasks.

Keywords: Deep Reinforcement Learning, Pytorch, Keras, Python

Visual Based Perception System for Autonomous Driving

The task includes development and testing vision based perception system to perform lane-detection, pedestrian detection, and traffic-sign detection and recognition using Deep Learning Techniques (TensorFlow and PyTorch). The system is finally to be deployed as a ROS node.

Keywords: Deep Learning, Computer Vision, Transfer Learning, Tensorflow, Keras, Python, Autonomous Driving

Day in a Life

Individuals vary in how well they recognize, remember, and categorize faces and objects. This collaborative network aims at a broad understanding of such individual differences across a wide range of visual abilities and domains, to elucidate how both variation in general visual abilities and specific visual experiences affect our visual behavior. The project combines (1) ultra-high-field brain imaging to map functional and anatomical brain measures trajectories in visual learning, (2) modern psychometric methods to create the necessary measures of individual differences in high-level visual ability, and (3) deep convolutional neural network models of vision that will be informed by brain and behavioral measures. These state-of-the-art tools will be integrated to account for individual differences in brain and behavior and to predict visual learning and performance.

Keywords: Deep Learning, Cognitive Science, Visual Processing

Human Activity Recognition using Echo State Convolutional Neural Network

Recognize human activity using Echo State Convolutional Neural Network.

Keywords: Echo State Networks, Deep Learning, Human Activity Recognition

Integration of Autonomous Vehicles Modules

Wrote ROS nodes to implement core functionality of the autonomous vehicle system, including traffic light detection, control, and waypoint following.

Keywords: Path Planning, Way Point Detection, Traffic Light Detection, ROS, Artificial Intelligence, Autonomous Driving

Semantic Segmentation for Autonomous Driving

Constructed and designed a fully convolutional neural network based on the VGG-16 image classifier architecture for performing semantic segmentation to identify drivable road area from an car dashcam image (trained and tested on the KITTI data set)

Keywords: Encoder-Decoder Model, Deep Learning, VGG-16. Semantic Segmentation

Path Planning for Autonomous Vehicle

The goal in this project is to create a path planner that is able to create smooth, safe paths for the car to follow. The highway track has other vehicles, all going different speeds, but approximately obeying the 50 MPH speed limit. The car will be transmitting its localization information, along with its sensor fusion data, which estimates the location of all the vehicles on the same side of the road. Use the map, which consists of waypoints along the middle of the highway, to figure out where the lanes are, and what the curvature of the road is.

Keywords: Path Planning, Artificial Intelligence, Autonomous Driving

Google Rating and Visit Prediction

Wrote an Google Rating Predictor based on Latent Model Factorization and an Google Visit Prediction based on Bayesian Personalized Ranking Algorithm. The models were among the top-5% of over 600 submissions.

Keywords: Recommender Systems, Bayesian Personalized Ranking, Latent Factor Matrix Factorization, Item-based Collaborative Filtering, User-Based Collaborative Filtering

Facial Keypoint Detection

Build an end-to-end facial keypoint recognition system based on Deep Learning. Facial keypoints include points around the eyes, nose, and mouth on any face.

Keywords: Computer Vision, Image Segmentation, Deep Learning, Tensorflow, OpenCV, Autonomous Driving

Deep Learning to Clone Human Driving Behavior

Built and trained a convolutional neural network for end-to-end driving in a simulator, using TensorFlow and Keras. Used optimization techniques such as regularization and dropout to generalize the network for driving on multiple tracks.

Keywords: Deep Learning, Computer Vision, Transfer Learning, Tensorflow, Keras, Python, Autonomous Driving

Audience Pooling Framework

The aim of the project was to develop query engine to filter data from daily feed satisfying any given combination of rules (geospatial: latlonradius, sitedomain, keywords, postal codes, etc.). Since the aim was fast retrieval of records satisfying predefined conditions, I implemented data structures, which despite higher insertion and deletion cost, were fast when it came to retrieval. Storing this data structure in memory of individual mappers, and using Hadoop streaming API, the platform is capable of handling complex queries. Also, the current code can be easily scaled to define new rules owing to the modular code which is built upon design patterns like Factory Pattern, Command Pattern, and Chain of Responsibility. For the ease of usage, I also added an UI on top of the platform for configuring rules. The platform now powers insights which previously were quite difficult to obtain.

Keywords: Map-Reduce, Hadoop Streaming, Data Structures, Design Pattern, Scalable Search Platform, Big Data, Haddop Streaming, Java

Model Predictive Control

Implemented Model Predictive Control to drive a vehicle around a track even with additional latency between commands.

Keywords: Artificial Intelligence, Control System, Model Predictive Control (MPC), Localization, Motion Tracking, C++, Autonomous Driving

Particle Filter for Localization of Autonomus Vehicle

Implemented a 2 dimensional particle filter in C++ capable of localizing a vehicle within desired accuracy and time.

Keywords: Artificial Intelligence, Particle Filter, Localization, Motion Tracking, C++, Autonomous Driving

Kalman Filter for Pedestrian Motion Tracking

Implemented a Extended as well as Unscented Kalman Filter algorithm in C++ capable of tracking a pedestrian''s motion in two dimensions

Keywords: Artificial Intelligence, Extended Kalman Filter, Unscented Kalman Filter, Motion Tracking, C++, Autonomous Driving

Sign Language Recognizer

Built a system that can recognize words communicated using the American Sign Language (ASL). Trained a set of Hidden Markov Models (HMMs) using part of a preprocessed dataset of tracked hand and nose positions extracted from video to try and identify individual words from test sequences. Experimented with model selection techniques including BIC, DIC, and K-fold Cross Validation.

Keywords: Artificial Intelligence, Hidden Markov Models (HMMs), Bayesian Information Creterion, Deviance Information Creterion, Sign Langauage, Python

PID Controller for Autonomous Driving

Implemented a PID controller in C++ to maneuver a vehicle around a track.

Keywords: Control Systems, PID Controller, C++, Autonomous Driving

Deep Learning for Parking Slot Occupancy

The aim of the project was to develop a vision based model for identification of empty parking slot. I used PKLot dataset (Almeida, P., Oliveira, L. S., Silva Jr, E., Britto Jr, A., Koerich, A., PKLot - A robust dataset for parking lot classification, Expert Systems with Applications, 42(11):4937-4949, 2015) for training the model. As preprocessing I resized all the images to 32x32 before proceeding with the training. The model was designed as multinomial classification and was built upon Google’s Inception Model. By using Transfer Learning Technique, I achieved a classification accuracy of 96% on the balanced dataset. Further, randomly sampling images with a replacement for generation of training batches gave better results as compared to predefined batches, and boosted the accuracy to 98%.

Keywords: Deep Learning, Computer Vision, Transfer Learning, Tensorflow, Keras, Python, Autonomous Driving

Vehicle Detection

Created a vehicle detection and tracking pipeline with OpenCV, histogram of oriented gradients (HOG), and support vector machines (SVM). Optimized and evaluated the model on video data from a automotive camera taken during highway driving.

Keywords: Computer Vision, Image Processing, HOG, SVM, OpenCV, Python, scikit-learn, Autonomous Driving

Analyzing Social Network

The aim of the project was to visualize my social network, and find clusters on basis of connections. To accomplished the task, I wrote a python based web crawler using PhantomJS and Selenium to crawl friends’ list on Facebook (as Graph API restricts a number of results substantially). The data so obtained was then used to draw a graph by modeling people as charges and connection between them as spring. The modeling of charge and spring brought together the clusters which were closely connected and thus provided clusters without any other attributes. The clusters obtained once the people (charges) are similar despite their random initialization. Closely looking at the clusters, we find that there are clusters within clusters. Also, the people lying between two clusters are usually common to both of the clusters.

Keywords: Visualization, Mathematical Modelling, Social Network, Graphs, WebCrawler, Python, Selenium, PhantomJS, d3.j

Predictive Client-side Profiling for Behavioral Advertising

The methodology is currently under scrutiny for patent application. The idea was harnessed as part of a Hackathon at Media IQ Digital India Ltd. Leveraging know-how of Web Development and Data Science, I proposed a novel scalable approach for client-side user profiling to offer personalized advertising experience. The proposed methodology’s merit includes near-real-time user profiling, high scalability, low-bandwidth requirement, privacy issues redressal, and minimal changes to existing ad-exchange architecture. The scalability and privacy issue are addressed by avoiding server-side data aggregation, which in turn also reduces server’s storage and computational requirements. The approach can be easily integrated with existing ad-exchange platforms, and bid optimization frameworks, allowing advertisers highly-granular ad personalization without significant infrastructure investments

Keywords: Real-time Prediction, Machine Learning, Client-side Profiling, Behavioral Targeting, Ad-exchange Architecture, JavaScript, HTML, Python, Kafka, NLP

Electronics Aid for elder and Sick

The project started as a development of Smart Home module, and later got focused on the development of wireless switches as an aid for elderly and sick people. The choice of infra-red for wireless communication was to avoid interference with other medical devices in hospitals. The task was accomplished by using decoding IR Signal from TV-remote controller and triggering relays to operate electrical appliances. Since the frequency at which the IR Signals are emitted from the remote controller is high, the input from IR receiver was read using a lower level of abstractions. The control signals from the remote were easy to identify as the remote controller had a distinctive start and end sequence. The work done was published in IEEE Conference Proceeding of Recent Advances and Innovations in Engineering (ICRAIE), 2014. The project was further enhanced by integrating it with a web layer and establishing a connection between Arduino and server using serial communication.

Keywords: Embedded System, Assistive Aid, Microcontroller Programming, Wireless Switches, IR Reciever, C, Arduino, Sensor Interfacing

Traffic Sign Classification

Built and trained a deep neural network to classify traffic signs, using TensorFlow. Experimented with different network architectures. Performed image pre-processing and validation to guard against overfitting.

Keywords: Deep Learning, Transfer Learning, Tensorflow, Keras, Python, Autonomous Driving

Predict (Predicting Users for Advertising)

The project aims at predicting users who would take desirable action after an advertisement is displayed to them, and target them in real time. The previous model was powered by Naives Bayes Classifier built by aggregating user’s browsing behavior and geolocation. We migrated the model to Random Forest which provided about 10% uplift in the preliminary analysis. To combat memory issues stemming out of the large feature set while using Random Forest, we grouped the features by K-Means Clustering and used aggregated count of the group to train the model. Moving forward we would be incorporating temporal behavior in the model’s feature set, and move to real-time prediction using Spark Streaming.

Keywords: Machine Learning, Big Data, Naïve Bayes, Random Forest, K-Means Clustering, Behavioral Targeting, Hive, Spark MLlib, Spark Streaming, Kafka

Realtime Reactor Control Simulator

The project aimed at stimulating dynamics of a nuclear reactor in real-time. To simulate the behavior of reactor, we solved Point Kinetic Equation using Runge-Kutta Method (which was selected after benchmarking it against other numerical techniques like Euler Method and Newton-Rhapson Method with an aim to optimize speed for bigger step sizes). We then designed feedback system by formulating the relationship between error and gain value, obtained by plotting optimum gain values vs. equilibrium power, and thus, empowered the system to take a decision based on a mathematical model. The system UI was built using LabVIEW and the data acquisition was done using NI PCI-6031e.

Keywords: Numerical Techniques, Euler’s Method, Ruge-Kutta Method, Control Systems, MATLAB, LabVIEW, NI PCI-6031e

Artificial Intelligence for Game Playing Agent

Created an AI that beats human opponents in the game of Isolation using Minimax, Alpha-Beta Search, and Iterative Deepening.

Keywords: Artificial Intelligence, Minimax, Alpha-beta Pruning, Iterative Deepening, Python

Air Cargo Transport Planning

Used logic and planning techniques to create an AI that finds the most efficient route to route cargo around the world to their respective destinations. This project used a combination of propositional logic and search along with A* heuristics to find optimal planning solutions.

Keywords: Artificial Intelligence, A* Heuristics, Planning, Python

Lane Finding

Built an advanced lane-finding algorithm using distortion correction, image rectification, color transforms, and gradient thresholding. Identified lane curvature and vehicle displacement. Overcame environmental challenges such as shadows and pavement changes.

Keywords: Computer Vision, Image Processing, OpenCV, Python, Autonomous Driving

Pupil Detection for Gaze Tracking

The aim of the project was to generate heatmap by tracking user’s gaze on screen. We implemented gaze tracking system by implementing pupil capturing using eye center localization as proposed by Timm F. and Erhardt B. in their paper Accurate Eye Centre Localisation by Means of Gradients VISAPP 11 (2011) and later trained SVM model to track user’s gaze on screen. The output by SVM model was wavy and to get a smoother distribution, we later added unimodal probability distribution obtained by Kalman Filter.

Keywords: Pupil Detection, Support Vector Machines, Kalman Filter, Python, OpenCV, scikit-learn, pandas

Extraction of Biomedical Implant

At GlobalLogic, I worked for one of the top-3 medical technological conglomerates in the world, and worked on the development of image processing pipeline for extraction of the biomedical implant from the x-ray. The task was preceded by denoising image using a median filter, and improving contrast in an image by applying adaptive histogram equalization. The denoised-contrast-enhanced image was then passed to morphological filters to find possible candidates for the implant, and finally, the candidates were narrowed down using pattern matching (on image descriptors). The final decision still to select the position of implant still lied with the operator. The prototyping of the approach was done using MATLAB, and the code was later ported to Android.

Keywords: Biomedical Imaging, Image Processing, Pattern Matching, Morphological Transformations, MATLAB, OpenCV, Android SDK

Geocleansing of Location Data

The project aimed at cleansing massive geographical datasets to get rid of typographical errors and duplicate records. I initially found similar records by using Levenshtein Distance as similarity matrix, however, this led to a high number of false positives (about 30% of predicted duplicates). To tighten the false positives, I later implemented fuzzy logic using Levenshtein Distance, Soundex, and New York State Identification and Intelligence System. The accuracy of the model was further enhanced by imposing hierarchy constraints on locations (e.g. only cities in same states would be considered for matching, and the states should have been already cleaned before proceeding with cities). The precision for the tool was 88%, with a miss of 4%.

Keywords: Natural Language Processing, Phonetic Algorithm, Soundex, Fuzzy Logic, PLSQL

Recreation of Virtual 3D-World from SLAM Map

The project aimed at a recreation of virtual 3d-world from the SLAM Map obtained using Laser-SLAM. The task was accomplished by denoising the image by the median filter to remove speckles, and Gaussian Blur followed by contour detection. The detected contours were then scaled and used to obtain the position of walls to be recreated in Virtual World.

Keywords: Virtual Reality, Image Processing, Morphological Transformation, OpenCV, Python

Virtual Immersive Cognitive Exercises

Worked on a head mounted tracking system for spatial capability assessment of humans. As part of the project, we developed Virtual Immersive Cognitive Exercises for Alzheimer and Dementia’s patients using Oculus Rift as head mounted gear, and VR chair integrated with a joystick to move around the virtual world. For stabilizing the rendered content, I also worked on electro-oculography to understand eye-movements while walking with Oculus Rift. We also worked on the creation of a few neuro-rehabilitation games for the treatment of people who have visual processing problems.

Keywords: Virtual Reality, Game Engine, Collision Detection, Electro-oculography, C, C++, Oculus Rift

Histogram Equalization for Facial Features Extraction

The project aimed at developing robust image processing pipeline for enhancing contrast and edges in the facial image as a precursor to facial feature extraction. The task was accomplished by implementing Contrast Limited Adaptive Histogram Equalization (CLAHE). The image so obtained was noisy and to suppress the same, the CLAHE was followed by applying Bidirectional Weighted Median Filter. The Proof-of-Concept was tested using MATLAB and Python, and the code was later ported to VHDL for FPGA programming.

Keywords: Image Processing, Computer Vision, Contrast Enhancement, Adaptive Histogram Equalization, C, MATLAB, Python, OpenCV

Panorama: Image Stitching

Used Oriented FAST and Rotated BRIEF for keypoint extraction in individual images and matched the descriptors using FlannBasedMatcher to stitch the images.

Keywords: Image Processing, ORB Detector, Pattern Recognition, Python, OpenCV

Image Denoising using Deep Learning and Artificial Neural Networks

For a given dataset of images of scanned text, that has seen better days, removed noise using Artificial Neural Networks. Achieved decrease in error rate for OCR by about 60% as compared to unprocessed image.

Keywords: Computer Vision, Image Processing, Artificial Intelligence, MATLAB

Finger Print Recognition using BLPOC Algorithm

Implemented a Band Limited Phase Only Correlation (BLPOC) Fingerprint Matching Algorithm for Fingerprint Recognition.

Keywords: Image Processing, Pattern Recognition, Correlation, Python, MATLAB, OpenCV

Finger Point Detection for Human Computer Interaction

Developed a low-cost module for finger point detection using OpenCV library for Human Computer Interaction. The module could be used to perform click and point operations on Projector’s Screen

Keywords: Computer Vision, Image Processing, Microprocessor Programming, Hardware Interfacing, Arduino, OpenCV, Python

Unit Commitment: Optimizing Operation Schedule for Power Generation

The project aimed at determining the operation schedule for generating units for varying loads under different constraints and environments. The optimization problem was tackled by transforming it into an unconstrained optimization problem using Lagrange’s Relaxation.

Keywords: Mathematical Modelling, Unit Commitment, Dynamic Programming, Lagrange’s Relaxation, MATLAB

Predicting Building Abandonment

The project involved predicting building abandonment (“blight”) based on several public datasets including criminal incidents and permit violation. The datasets include latitude and longitude, which have been grouped together for identification of building. The grouping was accomplished by using Google Reverse Geo-Coding API, however considering millions of records to be fetched, the building had been approximated as 7-char geohash corresponding to the given latitude-longitude pair of incidents. The labeled dataset for training had been generated using blight-incidents dataset having incident marked as ‘Dismantle’. The code and report for the same can be found in following GitHub repository.

Keywords: Machine Learning, sckit-learn, pandas, Python

Billing and Inventory Management System

The project aimed at developing a credit-based billing system for the student, and inventory management system for messes and canteens in BITS Pilani. The system was designed and developed after multiple interactions with mess workers (many of whom were deprived of educations), to enhance the user experience. The system helped in increasing transparency in the billing system and our team was recognized for the same by SSMS. The system is currently deployed in all the messes and canteens of BITS Pilani.

Keywords: Software System, Database Management, Credit Management, C#, MySQL

AWS Bot

This is a Slack Bot which is used for monitoring AWS EMR Clusters spawned at the company, and provide notification in case the cluster is idle. It also automatically terminates clusters which had been idle for more than 2 hours. The bot had been paramount in cost saving with monthly saving greater than USD 1k monthly

Keywords: Notification Bot, Productivity Tool, NodeJs